From 83634d7732e59f0b96c8b793486136b1c4fd5c3c Mon Sep 17 00:00:00 2001 From: Maschga Date: Thu, 6 Feb 2025 18:50:56 +0100 Subject: [PATCH 01/35] install @asyncapi/react-component --- package-lock.json | 2229 ++++++++++++++++++++++++++++++++++++++++++++- package.json | 1 + 2 files changed, 2205 insertions(+), 25 deletions(-) diff --git a/package-lock.json b/package-lock.json index 27ee3991f..5095ff525 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "name": "evcc-docs", "version": "0.0.0", "dependencies": { + "@asyncapi/react-component": "^2.5.1", "@docusaurus/core": "^3.7.0", "@docusaurus/faster": "^3.7.0", "@docusaurus/plugin-client-redirects": "^3.7.0", @@ -297,6 +298,133 @@ "url": "https://github.com/sponsors/antfu" } }, + "node_modules/@asamuzakjp/css-color": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-2.8.3.tgz", + "integrity": "sha512-GIc76d9UI1hCvOATjZPyHFmE5qhRccp3/zGfMPapK3jBi+yocEzp6BBB0UnfRYP9NP4FANqUZYb0hnfs3TM3hw==", + "license": "MIT", + "dependencies": { + "@csstools/css-calc": "^2.1.1", + "@csstools/css-color-parser": "^3.0.7", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "lru-cache": "^10.4.3" + } + }, + "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/@asyncapi/avro-schema-parser": { + "version": "3.0.24", + "resolved": "https://registry.npmjs.org/@asyncapi/avro-schema-parser/-/avro-schema-parser-3.0.24.tgz", + "integrity": "sha512-YMyr2S2heMrWHRyECknjHeejlZl5exUSv9nD1gTejAT13fSf0PqIRydZ9ZuoglCLBg55AeehypR2zLIBu/9kHQ==", + "license": "Apache-2.0", + "dependencies": { + "@asyncapi/parser": "^3.1.0", + "@types/json-schema": "^7.0.11", + "avsc": "^5.7.6" + } + }, + "node_modules/@asyncapi/openapi-schema-parser": { + "version": "3.0.24", + "resolved": "https://registry.npmjs.org/@asyncapi/openapi-schema-parser/-/openapi-schema-parser-3.0.24.tgz", + "integrity": "sha512-7wz2yVDedJMS+TzOuqCvRWJMc6pNHICKZcOhnW6ZvyVLAh7hYIqQE1WA4OoXT4cKVbwSU3V2Q4bZagSsAIQd6Q==", + "license": "Apache-2.0", + "dependencies": { + "@asyncapi/parser": "^3.1.0", + "@openapi-contrib/openapi-schema-to-json-schema": "~3.2.0", + "ajv": "^8.11.0", + "ajv-errors": "^3.0.0", + "ajv-formats": "^2.1.1" + } + }, + "node_modules/@asyncapi/parser": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-3.4.0.tgz", + "integrity": "sha512-Sxn74oHiZSU6+cVeZy62iPZMFMvKp4jupMFHelSICCMw1qELmUHPvuZSr+ZHDmNGgHcEpzJM5HN02kR7T4g+PQ==", + "license": "Apache-2.0", + "dependencies": { + "@asyncapi/specs": "^6.8.0", + "@openapi-contrib/openapi-schema-to-json-schema": "~3.2.0", + "@stoplight/json": "3.21.0", + "@stoplight/json-ref-readers": "^1.2.2", + "@stoplight/json-ref-resolver": "^3.1.5", + "@stoplight/spectral-core": "^1.18.3", + "@stoplight/spectral-functions": "^1.7.2", + "@stoplight/spectral-parsers": "^1.0.2", + "@stoplight/spectral-ref-resolver": "^1.0.3", + "@stoplight/types": "^13.12.0", + "@types/json-schema": "^7.0.11", + "@types/urijs": "^1.19.19", + "ajv": "^8.17.1", + "ajv-errors": "^3.0.0", + "ajv-formats": "^2.1.1", + "avsc": "^5.7.5", + "js-yaml": "^4.1.0", + "jsonpath-plus": "^10.0.0", + "node-fetch": "2.6.7" + } + }, + "node_modules/@asyncapi/protobuf-schema-parser": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@asyncapi/protobuf-schema-parser/-/protobuf-schema-parser-3.4.0.tgz", + "integrity": "sha512-aBBj8pKeYXJqXNRpw45mb4eBQ2LAA6ul9hMnDjvQ+YYyax58DmHqHvG9sDvFBlWBQM3KYQrC1GJG6Q6MDXCsNQ==", + "license": "Apache-2.0", + "dependencies": { + "@asyncapi/parser": "^3.4.0", + "@types/protocol-buffers-schema": "^3.4.3", + "protobufjs": "^7.4.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@asyncapi/react-component": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@asyncapi/react-component/-/react-component-2.5.1.tgz", + "integrity": "sha512-/HPIMCcrKHsyzUHlN0DG4z4USkZXKJ6hKr4gnw1pPUfSHIteV2cOUg7SP9U9hdjLusCijjbH1Oqjyg6LYiMgaQ==", + "license": "Apache-2.0", + "dependencies": { + "@asyncapi/avro-schema-parser": "^3.0.24", + "@asyncapi/openapi-schema-parser": "^3.0.24", + "@asyncapi/parser": "^3.3.0", + "@asyncapi/protobuf-schema-parser": "^3.4.0", + "highlight.js": "^10.7.2", + "isomorphic-dompurify": "^2.14.0", + "marked": "^4.0.14", + "openapi-sampler": "^1.2.1", + "react-error-boundary": "^4.1.2", + "use-resize-observer": "^9.1.0" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@asyncapi/react-component/node_modules/marked": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/@asyncapi/specs": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/@asyncapi/specs/-/specs-6.8.1.tgz", + "integrity": "sha512-czHoAk3PeXTLR+X8IUaD+IpT+g+zUvkcgMDJVothBsan+oHN3jfcFcFUNdOPAAFoUCQN1hXF1dWuphWy05THlA==", + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.11" + } + }, "node_modules/@babel/code-frame": { "version": "7.26.2", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", @@ -4227,6 +4355,48 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@jsep-plugin/assignment": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@jsep-plugin/assignment/-/assignment-1.3.0.tgz", + "integrity": "sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==", + "license": "MIT", + "engines": { + "node": ">= 10.16.0" + }, + "peerDependencies": { + "jsep": "^0.4.0||^1.0.0" + } + }, + "node_modules/@jsep-plugin/regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@jsep-plugin/regex/-/regex-1.0.4.tgz", + "integrity": "sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==", + "license": "MIT", + "engines": { + "node": ">= 10.16.0" + }, + "peerDependencies": { + "jsep": "^0.4.0||^1.0.0" + } + }, + "node_modules/@jsep-plugin/ternary": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@jsep-plugin/ternary/-/ternary-1.1.4.tgz", + "integrity": "sha512-ck5wiqIbqdMX6WRQztBL7ASDty9YLgJ3sSAK5ZpBzXeySvFGCzIvM6UiAI4hTZ22fEcYQVV/zhUbNscggW+Ukg==", + "license": "MIT", + "engines": { + "node": ">= 10.16.0" + }, + "peerDependencies": { + "jsep": "^0.4.0||^1.0.0" + } + }, + "node_modules/@juggle/resize-observer": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", + "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==", + "license": "Apache-2.0" + }, "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", @@ -4391,6 +4561,15 @@ "node": ">= 8" } }, + "node_modules/@openapi-contrib/openapi-schema-to-json-schema": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@openapi-contrib/openapi-schema-to-json-schema/-/openapi-schema-to-json-schema-3.2.0.tgz", + "integrity": "sha512-Gj6C0JwCr8arj0sYuslWXUBSP/KnUlEGnPW4qxlXvAl543oaNQgMgIgkQUA6vs5BCCvwTEiL8m/wdWzfl4UvSw==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + } + }, "node_modules/@pnpm/config.env-replace": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", @@ -4438,6 +4617,70 @@ "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", "license": "MIT" }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "license": "BSD-3-Clause" + }, "node_modules/@puppeteer/browsers": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.3.0.tgz", @@ -4701,6 +4944,288 @@ "micromark-util-symbol": "^1.0.1" } }, + "node_modules/@stoplight/better-ajv-errors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@stoplight/better-ajv-errors/-/better-ajv-errors-1.0.3.tgz", + "integrity": "sha512-0p9uXkuB22qGdNfy3VeEhxkU5uwvp/KrBTAbrLBURv6ilxIVwanKwjMc41lQfIVgPGcOkmLbTolfFrSsueu7zA==", + "license": "Apache-2.0", + "dependencies": { + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + }, + "engines": { + "node": "^12.20 || >= 14.13" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, + "node_modules/@stoplight/json": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@stoplight/json/-/json-3.21.0.tgz", + "integrity": "sha512-5O0apqJ/t4sIevXCO3SBN9AHCEKKR/Zb4gaj7wYe5863jme9g02Q0n/GhM7ZCALkL+vGPTe4ZzTETP8TFtsw3g==", + "license": "Apache-2.0", + "dependencies": { + "@stoplight/ordered-object-literal": "^1.0.3", + "@stoplight/path": "^1.3.2", + "@stoplight/types": "^13.6.0", + "jsonc-parser": "~2.2.1", + "lodash": "^4.17.21", + "safe-stable-stringify": "^1.1" + }, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/@stoplight/json-ref-readers": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@stoplight/json-ref-readers/-/json-ref-readers-1.2.2.tgz", + "integrity": "sha512-nty0tHUq2f1IKuFYsLM4CXLZGHdMn+X/IwEUIpeSOXt0QjMUbL0Em57iJUDzz+2MkWG83smIigNZ3fauGjqgdQ==", + "license": "Apache-2.0", + "dependencies": { + "node-fetch": "^2.6.0", + "tslib": "^1.14.1" + }, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/@stoplight/json-ref-readers/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/@stoplight/json-ref-resolver": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@stoplight/json-ref-resolver/-/json-ref-resolver-3.1.6.tgz", + "integrity": "sha512-YNcWv3R3n3U6iQYBsFOiWSuRGE5su1tJSiX6pAPRVk7dP0L7lqCteXGzuVRQ0gMZqUl8v1P0+fAKxF6PLo9B5A==", + "license": "Apache-2.0", + "dependencies": { + "@stoplight/json": "^3.21.0", + "@stoplight/path": "^1.3.2", + "@stoplight/types": "^12.3.0 || ^13.0.0", + "@types/urijs": "^1.19.19", + "dependency-graph": "~0.11.0", + "fast-memoize": "^2.5.2", + "immer": "^9.0.6", + "lodash": "^4.17.21", + "tslib": "^2.6.0", + "urijs": "^1.19.11" + }, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/@stoplight/ordered-object-literal": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@stoplight/ordered-object-literal/-/ordered-object-literal-1.0.5.tgz", + "integrity": "sha512-COTiuCU5bgMUtbIFBuyyh2/yVVzlr5Om0v5utQDgBCuQUOPgU1DwoffkTfg4UBQOvByi5foF4w4T+H9CoRe5wg==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/@stoplight/path": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@stoplight/path/-/path-1.3.2.tgz", + "integrity": "sha512-lyIc6JUlUA8Ve5ELywPC8I2Sdnh1zc1zmbYgVarhXIp9YeAB0ReeqmGEOWNtlHkbP2DAA1AL65Wfn2ncjK/jtQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/@stoplight/spectral-core": { + "version": "1.19.4", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-core/-/spectral-core-1.19.4.tgz", + "integrity": "sha512-8hnZXfssTlV99SKo8J8BwMt5LsiBFHkCh0V3P7j8IPcCNl//bpG92U4TpYy7AwmUms/zCLX7sxNQC6AZ+bkfzg==", + "license": "Apache-2.0", + "dependencies": { + "@stoplight/better-ajv-errors": "1.0.3", + "@stoplight/json": "~3.21.0", + "@stoplight/path": "1.3.2", + "@stoplight/spectral-parsers": "^1.0.0", + "@stoplight/spectral-ref-resolver": "^1.0.4", + "@stoplight/spectral-runtime": "^1.1.2", + "@stoplight/types": "~13.6.0", + "@types/es-aggregate-error": "^1.0.2", + "@types/json-schema": "^7.0.11", + "ajv": "^8.17.1", + "ajv-errors": "~3.0.0", + "ajv-formats": "~2.1.0", + "es-aggregate-error": "^1.0.7", + "jsonpath-plus": "10.2.0", + "lodash": "~4.17.21", + "lodash.topath": "^4.5.2", + "minimatch": "3.1.2", + "nimma": "0.2.3", + "pony-cause": "^1.1.1", + "simple-eval": "1.0.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": "^16.20 || ^18.18 || >= 20.17" + } + }, + "node_modules/@stoplight/spectral-core/node_modules/@stoplight/types": { + "version": "13.6.0", + "resolved": "https://registry.npmjs.org/@stoplight/types/-/types-13.6.0.tgz", + "integrity": "sha512-dzyuzvUjv3m1wmhPfq82lCVYGcXG0xUYgqnWfCq3PCVR4BKFhjdkHrnJ+jIDoMKvXb05AZP/ObQF6+NpDo29IQ==", + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.4", + "utility-types": "^3.10.0" + }, + "engines": { + "node": "^12.20 || >=14.13" + } + }, + "node_modules/@stoplight/spectral-formats": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-formats/-/spectral-formats-1.8.2.tgz", + "integrity": "sha512-c06HB+rOKfe7tuxg0IdKDEA5XnjL2vrn/m/OVIIxtINtBzphZrOgtRn7epQ5bQF5SWp84Ue7UJWaGgDwVngMFw==", + "license": "Apache-2.0", + "dependencies": { + "@stoplight/json": "^3.17.0", + "@stoplight/spectral-core": "^1.19.2", + "@types/json-schema": "^7.0.7", + "tslib": "^2.8.1" + }, + "engines": { + "node": "^16.20 || ^18.18 || >= 20.17" + } + }, + "node_modules/@stoplight/spectral-functions": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-functions/-/spectral-functions-1.9.3.tgz", + "integrity": "sha512-jy4mguk0Ddz0Vr76PHervOZeyXTUW650zVfNT2Vt9Ji3SqtTVziHjq913CBVEGFS+IQw1McUXuHVLM6YKVZ6fQ==", + "license": "Apache-2.0", + "dependencies": { + "@stoplight/better-ajv-errors": "1.0.3", + "@stoplight/json": "^3.17.1", + "@stoplight/spectral-core": "^1.19.4", + "@stoplight/spectral-formats": "^1.8.1", + "@stoplight/spectral-runtime": "^1.1.2", + "ajv": "^8.17.1", + "ajv-draft-04": "~1.0.0", + "ajv-errors": "~3.0.0", + "ajv-formats": "~2.1.0", + "lodash": "~4.17.21", + "tslib": "^2.8.1" + }, + "engines": { + "node": "^16.20 || ^18.18 || >= 20.17" + } + }, + "node_modules/@stoplight/spectral-parsers": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-parsers/-/spectral-parsers-1.0.5.tgz", + "integrity": "sha512-ANDTp2IHWGvsQDAY85/jQi9ZrF4mRrA5bciNHX+PUxPr4DwS6iv4h+FVWJMVwcEYdpyoIdyL+SRmHdJfQEPmwQ==", + "license": "Apache-2.0", + "dependencies": { + "@stoplight/json": "~3.21.0", + "@stoplight/types": "^14.1.1", + "@stoplight/yaml": "~4.3.0", + "tslib": "^2.8.1" + }, + "engines": { + "node": "^16.20 || ^18.18 || >= 20.17" + } + }, + "node_modules/@stoplight/spectral-parsers/node_modules/@stoplight/types": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/@stoplight/types/-/types-14.1.1.tgz", + "integrity": "sha512-/kjtr+0t0tjKr+heVfviO9FrU/uGLc+QNX3fHJc19xsCNYqU7lVhaXxDmEID9BZTjG+/r9pK9xP/xU02XGg65g==", + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.4", + "utility-types": "^3.10.0" + }, + "engines": { + "node": "^12.20 || >=14.13" + } + }, + "node_modules/@stoplight/spectral-ref-resolver": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-ref-resolver/-/spectral-ref-resolver-1.0.5.tgz", + "integrity": "sha512-gj3TieX5a9zMW29z3mBlAtDOCgN3GEc1VgZnCVlr5irmR4Qi5LuECuFItAq4pTn5Zu+sW5bqutsCH7D4PkpyAA==", + "license": "Apache-2.0", + "dependencies": { + "@stoplight/json-ref-readers": "1.2.2", + "@stoplight/json-ref-resolver": "~3.1.6", + "@stoplight/spectral-runtime": "^1.1.2", + "dependency-graph": "0.11.0", + "tslib": "^2.8.1" + }, + "engines": { + "node": "^16.20 || ^18.18 || >= 20.17" + } + }, + "node_modules/@stoplight/spectral-runtime": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-runtime/-/spectral-runtime-1.1.3.tgz", + "integrity": "sha512-uoKSVX/OYXOEBRQN7EtAaVefl8MlyhBkDcU2aDYEGALwYXHAH+vmF3ljhZrueMA3fSWLHTL3RxWqsjeeCor6lw==", + "license": "Apache-2.0", + "dependencies": { + "@stoplight/json": "^3.20.1", + "@stoplight/path": "^1.3.2", + "@stoplight/types": "^13.6.0", + "abort-controller": "^3.0.0", + "lodash": "^4.17.21", + "node-fetch": "^2.6.7", + "tslib": "^2.8.1" + }, + "engines": { + "node": "^16.20 || ^18.18 || >= 20.17" + } + }, + "node_modules/@stoplight/types": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/@stoplight/types/-/types-13.20.0.tgz", + "integrity": "sha512-2FNTv05If7ib79VPDA/r9eUet76jewXFH2y2K5vuge6SXbRHtWBhcaRmu+6QpF4/WRNoJj5XYRSwLGXDxysBGA==", + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.4", + "utility-types": "^3.10.0" + }, + "engines": { + "node": "^12.20 || >=14.13" + } + }, + "node_modules/@stoplight/yaml": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@stoplight/yaml/-/yaml-4.3.0.tgz", + "integrity": "sha512-JZlVFE6/dYpP9tQmV0/ADfn32L9uFarHWxfcRhReKUnljz1ZiUM5zpX+PH8h5CJs6lao3TuFqnPm9IJJCEkE2w==", + "license": "Apache-2.0", + "dependencies": { + "@stoplight/ordered-object-literal": "^1.0.5", + "@stoplight/types": "^14.1.1", + "@stoplight/yaml-ast-parser": "0.0.50", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=10.8" + } + }, + "node_modules/@stoplight/yaml-ast-parser": { + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@stoplight/yaml-ast-parser/-/yaml-ast-parser-0.0.50.tgz", + "integrity": "sha512-Pb6M8TDO9DtSVla9yXSTAxmo9GVEouq5P40DWXdOie69bXogZTkgvopCq+yEvTMA0F6PEvdJmbtTV3ccIp11VQ==", + "license": "Apache-2.0" + }, + "node_modules/@stoplight/yaml/node_modules/@stoplight/types": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/@stoplight/types/-/types-14.1.1.tgz", + "integrity": "sha512-/kjtr+0t0tjKr+heVfviO9FrU/uGLc+QNX3fHJc19xsCNYqU7lVhaXxDmEID9BZTjG+/r9pK9xP/xU02XGg65g==", + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.4", + "utility-types": "^3.10.0" + }, + "engines": { + "node": "^12.20 || >=14.13" + } + }, "node_modules/@svgr/babel-plugin-add-jsx-attribute": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", @@ -6305,6 +6830,15 @@ "@types/ms": "*" } }, + "node_modules/@types/es-aggregate-error": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/es-aggregate-error/-/es-aggregate-error-1.0.6.tgz", + "integrity": "sha512-qJ7LIFp06h1QE1aVxbVd+zJP2wdaugYXYfd6JxsyRMrYHaxb6itXPogW2tz+ylUJ1n1b+JF1PHyYCfYHm0dvUg==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/eslint": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", @@ -6524,7 +7058,16 @@ "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", "license": "MIT" }, - "node_modules/@types/qs": { + "node_modules/@types/protocol-buffers-schema": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@types/protocol-buffers-schema/-/protocol-buffers-schema-3.4.3.tgz", + "integrity": "sha512-8cCg6BiIj4jS0LXUFq3sndmd46yyPLYqMzvXLcTM1MRubh3sfZlQiehoCjGDxSHTqGSjjx8EtVNryIAl0njQWg==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/qs": { "version": "6.9.18", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz", "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==", @@ -6646,8 +7189,7 @@ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", "license": "MIT", - "optional": true, - "peer": true + "optional": true }, "node_modules/@types/unist": { "version": "3.0.3", @@ -6655,6 +7197,12 @@ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", "license": "MIT" }, + "node_modules/@types/urijs": { + "version": "1.19.25", + "resolved": "https://registry.npmjs.org/@types/urijs/-/urijs-1.19.25.tgz", + "integrity": "sha512-XOfUup9r3Y06nFAZh3WvO0rBU4OtlfPB/vgxpjg+NRdGU6CN6djdc6OEiH+PcqHCY6eFLo9Ista73uarf4gnBg==", + "license": "MIT" + }, "node_modules/@types/use-sync-external-store": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz", @@ -6859,6 +7407,18 @@ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "license": "Apache-2.0" }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -6949,7 +7509,6 @@ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", "license": "MIT", - "optional": true, "engines": { "node": ">= 14" } @@ -6983,6 +7542,29 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ajv-draft-04": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", + "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", + "license": "MIT", + "peerDependencies": { + "ajv": "^8.5.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-3.0.0.tgz", + "integrity": "sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^8.0.1" + } + }, "node_modules/ajv-formats": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", @@ -7171,6 +7753,22 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "license": "Python-2.0" }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", @@ -7186,6 +7784,27 @@ "node": ">=8" } }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/ast-types": { "version": "0.13.4", "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", @@ -7208,6 +7827,15 @@ "astring": "bin/astring" } }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -7269,6 +7897,30 @@ "postcss": "^8.1.0" } }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/avsc": { + "version": "5.7.7", + "resolved": "https://registry.npmjs.org/avsc/-/avsc-5.7.7.tgz", + "integrity": "sha512-9cYNccliXZDByFsFliVwk5GvTq058Fj513CiR4E60ndDwmuXzTJEp/Bp8FyuRmGyYupLjHLs+JA9/CBoVS4/NQ==", + "license": "MIT", + "engines": { + "node": ">=0.11" + } + }, "node_modules/axios": { "version": "1.7.9", "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", @@ -9086,6 +9738,19 @@ "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", "license": "CC0-1.0" }, + "node_modules/cssstyle": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.2.1.tgz", + "integrity": "sha512-9+vem03dMXG7gDmZ62uqmRiMRNtinIZ9ZyuF6BdxzfOD+FdN5hretzynkn0ReS2DO2GSw76RWHs0UmJPI2zUjw==", + "license": "MIT", + "dependencies": { + "@asamuzakjp/css-color": "^2.8.2", + "rrweb-cssom": "^0.8.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", @@ -9653,6 +10318,70 @@ "node": ">= 14" } }, + "node_modules/data-urls": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", + "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", + "license": "MIT", + "dependencies": { + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/dayjs": { "version": "1.11.13", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", @@ -9683,6 +10412,12 @@ } } }, + "node_modules/decimal.js": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", + "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==", + "license": "MIT" + }, "node_modules/decode-named-character-reference": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", @@ -9870,6 +10605,15 @@ "node": ">= 0.8" } }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -10065,7 +10809,6 @@ "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.4.tgz", "integrity": "sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==", "license": "(MPL-2.0 OR Apache-2.0)", - "peer": true, "optionalDependencies": { "@types/trusted-types": "^2.0.7" } @@ -10259,6 +11002,93 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/es-abstract": { + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-aggregate-error": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/es-aggregate-error/-/es-aggregate-error-1.0.13.tgz", + "integrity": "sha512-KkzhUUuD2CUMqEc8JEqsXEMDHzDPE8RCjZeUBitsnB1eNcAJWQPiciKsMXe3Yytj4Flw1XLl46Qcf9OxvZha7A==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.2", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/es-define-property": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", @@ -10295,6 +11125,38 @@ "node": ">= 0.4" } }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/esast-util-from-estree": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", @@ -10623,6 +11485,15 @@ "node": ">= 0.8" } }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -10841,6 +11712,12 @@ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "license": "MIT" }, + "node_modules/fast-memoize": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/fast-memoize/-/fast-memoize-2.5.2.tgz", + "integrity": "sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==", + "license": "MIT" + }, "node_modules/fast-uri": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", @@ -10857,6 +11734,28 @@ ], "license": "BSD-3-Clause" }, + "node_modules/fast-xml-parser": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.1.tgz", + "integrity": "sha512-y655CeyUQ+jj7KBbYMc4FG01V8ZQqjN+gDYGJ50RtfsUB8iG9AmwmwoAgeKLJdmueKKMrH1RJ7yXHTSoczdv5w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + }, + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + } + ], + "license": "MIT", + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, "node_modules/fastq": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz", @@ -11121,6 +12020,27 @@ } } }, + "node_modules/for-each": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.4.tgz", + "integrity": "sha512-kKaIINnFpzW6ffJNDjjyjrk21BkDx38c0xa/klsT8VzLCaMEefv4ZTacrcVR4DmgTeBra++jMDAfS/tS799YDw==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/foreach": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz", + "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==", + "license": "MIT" + }, "node_modules/fork-ts-checker-webpack-plugin": { "version": "6.5.3", "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", @@ -11360,6 +12280,35 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -11438,10 +12387,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-uri": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.4.tgz", - "integrity": "sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==", + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-uri": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.4.tgz", + "integrity": "sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==", "license": "MIT", "optional": true, "dependencies": { @@ -11569,6 +12535,22 @@ "node": ">=4" } }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -11727,6 +12709,18 @@ "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "license": "MIT" }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -11748,6 +12742,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-symbols": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", @@ -11760,6 +12769,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-yarn": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", @@ -12923,6 +13947,18 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/html-encoding-sniffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", + "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^3.1.1" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/html-entities": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", @@ -13131,7 +14167,6 @@ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "license": "MIT", - "optional": true, "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" @@ -13194,7 +14229,6 @@ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "license": "MIT", - "optional": true, "dependencies": { "agent-base": "^7.1.2", "debug": "4" @@ -13217,7 +14251,6 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "license": "MIT", - "peer": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -13381,6 +14414,20 @@ "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==", "license": "MIT" }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/internmap": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", @@ -13456,12 +14503,63 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "license": "MIT" }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -13474,6 +14572,22 @@ "node": ">=8" } }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-buffer": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", @@ -13498,6 +14612,18 @@ "node": ">=4" } }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-ci": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", @@ -13525,6 +14651,39 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-decimal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", @@ -13568,6 +14727,21 @@ "node": ">=0.10.0" } }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -13577,6 +14751,24 @@ "node": ">=8" } }, + "node_modules/is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -13615,6 +14807,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-npm": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", @@ -13636,6 +14840,22 @@ "node": ">=0.12.0" } }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", @@ -13687,6 +14907,30 @@ "node": ">=0.10.0" } }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "license": "MIT" + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", @@ -13705,24 +14949,142 @@ "node": ">=6" } }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "license": "MIT", "engines": { - "node": ">=8" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "license": "MIT" + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "license": "MIT" - }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -13765,6 +15127,19 @@ "node": ">=0.10.0" } }, + "node_modules/isomorphic-dompurify": { + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/isomorphic-dompurify/-/isomorphic-dompurify-2.21.0.tgz", + "integrity": "sha512-IjBG/D6ApEiO6ciXvrzPqbE4xOLbjRTshSWRSeeycQVhvsxf1O9PhA7LoqwMYS0/2PKLNFJRugwsNV5UihtLxQ==", + "license": "MIT", + "dependencies": { + "dompurify": "^3.2.3", + "jsdom": "^26.0.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/isomorphic-rslog": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/isomorphic-rslog/-/isomorphic-rslog-0.0.6.tgz", @@ -13939,6 +15314,55 @@ "license": "MIT", "optional": true }, + "node_modules/jsdom": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.0.0.tgz", + "integrity": "sha512-BZYDGVAIriBWTpIxYzrXjv3E/4u8+/pSG5bQdIYCbNCGOvsPkDQfTVLAIXAf9ETdCpduCVTkDe2NNZ8NIwUVzw==", + "license": "MIT", + "dependencies": { + "cssstyle": "^4.2.1", + "data-urls": "^5.0.0", + "decimal.js": "^10.4.3", + "form-data": "^4.0.1", + "html-encoding-sniffer": "^4.0.0", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.6", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.16", + "parse5": "^7.2.1", + "rrweb-cssom": "^0.8.0", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^5.0.0", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^3.1.1", + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.1.0", + "ws": "^8.18.0", + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "canvas": "^3.0.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsep": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz", + "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==", + "license": "MIT", + "engines": { + "node": ">= 10.16.0" + } + }, "node_modules/jsesc": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", @@ -13963,6 +15387,15 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "license": "MIT" }, + "node_modules/json-pointer": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.2.tgz", + "integrity": "sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==", + "license": "MIT", + "dependencies": { + "foreach": "^2.0.4" + } + }, "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -13981,6 +15414,12 @@ "node": ">=6" } }, + "node_modules/jsonc-parser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.2.1.tgz", + "integrity": "sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w==", + "license": "MIT" + }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -13993,6 +15432,33 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/jsonpath-plus": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-10.2.0.tgz", + "integrity": "sha512-T9V+8iNYKFL2n2rF+w02LBOT2JjDnTjioaNFrxRy0Bv1y/hNsqR/EBK7Ojy2ythRHwmz2cRIls+9JitQGZC/sw==", + "license": "MIT", + "dependencies": { + "@jsep-plugin/assignment": "^1.3.0", + "@jsep-plugin/regex": "^1.0.4", + "jsep": "^1.4.0" + }, + "bin": { + "jsonpath": "bin/jsonpath-cli.js", + "jsonpath-plus": "bin/jsonpath-cli.js" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/katex": { "version": "0.16.21", "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.21.tgz", @@ -14444,12 +15910,24 @@ "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", "license": "MIT" }, + "node_modules/lodash.topath": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/lodash.topath/-/lodash.topath-4.5.2.tgz", + "integrity": "sha512-1/W4dM+35DwvE/iEd1M9ekewOSTlpFekhw9mhAtrwjVqUr83/ilQiyAvmg4tVX7Unkcfl1KC+i9WdaT4B6aQcg==", + "license": "MIT" + }, "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", "license": "MIT" }, + "node_modules/long": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.4.tgz", + "integrity": "sha512-qtzLbJE8hq7VabR3mISmVGtoXP8KGc2Z/AT8OuqlYD7JTR3oqrgwdjnk07wpj1twXxYmgDXgoKVWUG/fReSzHg==", + "license": "Apache-2.0" + }, "node_modules/longest-streak": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", @@ -18141,6 +19619,25 @@ "node": ">= 0.4.0" } }, + "node_modules/nimma": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/nimma/-/nimma-0.2.3.tgz", + "integrity": "sha512-1ZOI8J+1PKKGceo/5CT5GfQOG6H8I2BencSK06YarZ2wXwH37BSSUWldqJmMJYA5JfqDqffxDXynt6f11AyKcA==", + "license": "Apache-2.0", + "dependencies": { + "@jsep-plugin/regex": "^1.0.1", + "@jsep-plugin/ternary": "^1.0.2", + "astring": "^1.8.1", + "jsep": "^1.2.0" + }, + "engines": { + "node": "^12.20 || >=14.13" + }, + "optionalDependencies": { + "jsonpath-plus": "^6.0.1 || ^10.1.0", + "lodash.topath": "^4.5.2" + } + }, "node_modules/no-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", @@ -18201,6 +19698,26 @@ "node": ">=18" } }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, "node_modules/node-fetch-commonjs": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/node-fetch-commonjs/-/node-fetch-commonjs-3.3.2.tgz", @@ -18218,6 +19735,28 @@ "url": "https://opencollective.com/node-fetch" } }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/node-forge": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", @@ -18374,6 +19913,12 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/nwsapi": { + "version": "2.2.16", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.16.tgz", + "integrity": "sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==", + "license": "MIT" + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -18504,6 +20049,17 @@ "node": ">=12.20.0" } }, + "node_modules/openapi-sampler": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.6.1.tgz", + "integrity": "sha512-s1cIatOqrrhSj2tmJ4abFYZQK6l5v+V4toO5q1Pa0DyN8mtyqy2I+Qrj5W9vOELEtybIMQs/TBZGVO/DtTFK8w==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.7", + "fast-xml-parser": "^4.5.0", + "json-pointer": "0.6.2" + } + }, "node_modules/openapi-server-url-templating": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/openapi-server-url-templating/-/openapi-server-url-templating-1.3.0.tgz", @@ -18525,6 +20081,23 @@ "opener": "bin/opener-bin.js" } }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/p-cancelable": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", @@ -18989,6 +20562,24 @@ "points-on-curve": "0.2.0" } }, + "node_modules/pony-cause": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pony-cause/-/pony-cause-1.1.1.tgz", + "integrity": "sha512-PxkIc/2ZpLiEzQXu5YRDOUgBlfGYBY8156HY5ZcRAwwonMk5W/MrJP2LLkG/hF7GEQzaHo2aS7ho6ZLCOvf+6g==", + "license": "0BSD", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postcss": { "version": "8.5.1", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", @@ -20566,6 +22157,30 @@ "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", "license": "ISC" }, + "node_modules/protobufjs": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", + "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -21150,6 +22765,18 @@ "react": "^18.3.1" } }, + "node_modules/react-error-boundary": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-4.1.2.tgz", + "integrity": "sha512-GQDxZ5Jd+Aq/qUxbCm1UtzmL/s++V7zKgE8yMktJiCQXCCFZnMZh9ng+6/Ne6PjNSXH0L9CjeOEREfRnq6Duag==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "peerDependencies": { + "react": ">=16.13.1" + } + }, "node_modules/react-error-overlay": { "version": "6.0.11", "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", @@ -21514,6 +23141,28 @@ "immutable": "^3.8.1 || ^4.0.0-rc.1" } }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/refractor": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/refractor/-/refractor-3.6.0.tgz", @@ -21738,6 +23387,26 @@ "@babel/runtime": "^7.8.4" } }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regexpu-core": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", @@ -22545,6 +24214,12 @@ "points-on-path": "^0.2.1" } }, + "node_modules/rrweb-cssom": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", + "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==", + "license": "MIT" + }, "node_modules/rtlcss": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.3.0.tgz", @@ -22606,6 +24281,31 @@ "node": ">=6" } }, + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -22626,6 +24326,51 @@ ], "license": "MIT" }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-stable-stringify": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-1.1.1.tgz", + "integrity": "sha512-ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw==", + "license": "MIT" + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -22638,6 +24383,18 @@ "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", "license": "ISC" }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, "node_modules/scheduler": { "version": "0.23.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", @@ -22946,12 +24703,41 @@ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "license": "MIT", "dependencies": { - "define-data-property": "^1.1.4", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -23132,6 +24918,18 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "license": "ISC" }, + "node_modules/simple-eval": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-eval/-/simple-eval-1.0.1.tgz", + "integrity": "sha512-LH7FpTAkeD+y5xQC4fzS+tFtaNlvt3Ib1zKzvhjv/Y+cioV4zIuw4IZr2yhRLu67CWL7FR9/6KXKnjRoZTvGGQ==", + "license": "MIT", + "dependencies": { + "jsep": "^1.3.6" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/sirv": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", @@ -23456,6 +25254,62 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/stringify-entities": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", @@ -23526,6 +25380,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", + "license": "MIT" + }, "node_modules/style-to-object": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", @@ -23719,6 +25579,12 @@ "webpack": ">=2" } }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "license": "MIT" + }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -23890,6 +25756,24 @@ "license": "MIT", "peer": true }, + "node_modules/tldts": { + "version": "6.1.76", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.76.tgz", + "integrity": "sha512-6U2ti64/nppsDxQs9hw8ephA3nO6nSQvVVfxwRw8wLQPFtLI1cFI1a1eP22g+LUP+1TA2pKKjUTwWB+K2coqmQ==", + "license": "MIT", + "dependencies": { + "tldts-core": "^6.1.76" + }, + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/tldts-core": { + "version": "6.1.76", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.76.tgz", + "integrity": "sha512-uzhJ02RaMzgQR3yPoeE65DrcHI6LoM4saUqXOt/b5hmb3+mc4YWpdSeAQqVqRUlQ14q8ZuLRWyBR1ictK1dzzg==", + "license": "MIT" + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -23926,6 +25810,30 @@ "node": ">=6" } }, + "node_modules/tough-cookie": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.0.tgz", + "integrity": "sha512-rvZUv+7MoBYTiDmFPBrhL7Ujx9Sk+q9wwm22x8c8T5IJaR+Wsyc7TNxbVxo84kZoRJZZMazowFLqpankBEQrGg==", + "license": "BSD-3-Clause", + "dependencies": { + "tldts": "^6.1.32" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/tr46": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz", + "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/tree-sitter": { "version": "0.21.1", "resolved": "https://registry.npmjs.org/tree-sitter/-/tree-sitter-0.21.1.tgz", @@ -24061,6 +25969,80 @@ "node": ">= 0.6" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", @@ -24106,6 +26088,24 @@ "integrity": "sha512-Wlj/pum6dQtGTPD/lclDtoVPkSfpjPfy1dwnnKw/sZP5DpBH9fLhBgQfsqNhe5/gS1D+vkZUuB771NRMUPA5CA==", "license": "MIT" }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/unbzip2-stream": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", @@ -24479,6 +26479,12 @@ "punycode": "^2.1.0" } }, + "node_modules/urijs": { + "version": "1.19.11", + "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz", + "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==", + "license": "MIT" + }, "node_modules/url-loader": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", @@ -24593,6 +26599,19 @@ "license": "MIT", "optional": true }, + "node_modules/use-resize-observer": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/use-resize-observer/-/use-resize-observer-9.1.0.tgz", + "integrity": "sha512-R25VqO9Wb3asSD4eqtcxk8sJalvIOYBqS8MNZlpDSQ4l4xMQxC/J7Id9HoTqPq8FwULIn0PVW+OAqF2dyYbjow==", + "license": "MIT", + "dependencies": { + "@juggle/resize-observer": "^3.3.1" + }, + "peerDependencies": { + "react": "16.8.0 - 18", + "react-dom": "16.8.0 - 18" + } + }, "node_modules/use-sync-external-store": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", @@ -24841,6 +26860,18 @@ "license": "MIT", "peer": true }, + "node_modules/w3c-xmlserializer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", + "license": "MIT", + "dependencies": { + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/watchpack": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", @@ -24889,6 +26920,15 @@ "license": "MIT", "optional": true }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, "node_modules/webpack": { "version": "5.97.1", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.97.1.tgz", @@ -25291,6 +27331,40 @@ "node": ">=0.8.0" } }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-url": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.1.0.tgz", + "integrity": "sha512-jlf/foYIKywAt3x/XWKZ/3rz8OSJPiWktjmk891alJUEjiVxKX9LEO92qH3hv4aJ0mN3MWPvGMCy8jQi95xK4w==", + "license": "MIT", + "dependencies": { + "tr46": "^5.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -25306,6 +27380,96 @@ "node": ">= 8" } }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", + "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/widest-line": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", @@ -25461,6 +27625,21 @@ "xml-js": "bin/cli.js" } }, + "node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "license": "Apache-2.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "license": "MIT" + }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", diff --git a/package.json b/package.json index 36fdffbcc..196f245b9 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "write-heading-ids": "docusaurus write-heading-ids" }, "dependencies": { + "@asyncapi/react-component": "^2.5.1", "@docusaurus/core": "^3.7.0", "@docusaurus/faster": "^3.7.0", "@docusaurus/plugin-client-redirects": "^3.7.0", From dd51ca8f653ace763669829fe02cb222b9e270ee Mon Sep 17 00:00:00 2001 From: Maschga Date: Thu, 6 Feb 2025 18:51:02 +0100 Subject: [PATCH 02/35] Create mqtt-api.yaml --- static/mqtt-api.yaml | 206 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 206 insertions(+) create mode 100644 static/mqtt-api.yaml diff --git a/static/mqtt-api.yaml b/static/mqtt-api.yaml new file mode 100644 index 000000000..09ca0ba84 --- /dev/null +++ b/static/mqtt-api.yaml @@ -0,0 +1,206 @@ +asyncapi: 3.0.0 +info: + title: Streetlights Kafka API + version: 1.0.0 + description: |- + The Smartylighting Streetlights API allows you to remotely manage the city + lights. + ### Check out its awesome features: + + * Turn a specific streetlight on/off 🌃 + * Dim a specific streetlight 😎 + * Receive real-time information about environmental lighting conditions 📈 + license: + name: Apache 2.0 + url: https://www.apache.org/licenses/LICENSE-2.0 +defaultContentType: application/json +servers: + scram-connections: + host: test.mykafkacluster.org:18092 + protocol: kafka-secure + description: Test broker secured with scramSha256 + security: + - $ref: '#/components/securitySchemes/saslScram' + tags: + - name: env:test-scram + description: >- + This environment is meant for running internal tests through + scramSha256 + - name: kind:remote + description: This server is a remote server. Not exposed by the application + - name: visibility:private + description: This resource is private and only available to certain users + mtls-connections: + host: test.mykafkacluster.org:28092 + protocol: kafka-secure + description: Test broker secured with X509 + security: + - $ref: '#/components/securitySchemes/certs' + tags: + - name: env:test-mtls + description: This environment is meant for running internal tests through mtls + - name: kind:remote + description: This server is a remote server. Not exposed by the application + - name: visibility:private + description: This resource is private and only available to certain users +channels: + lightingMeasured: + address: smartylighting.streetlights.1.0.event.{streetlightId}.lighting.measured + messages: + lightMeasured: + $ref: '#/components/messages/lightMeasured' + description: The topic on which measured values may be produced and consumed. + parameters: + streetlightId: + $ref: '#/components/parameters/streetlightId' + lightTurnOn: + address: smartylighting.streetlights.1.0.action.{streetlightId}.turn.on + messages: + turnOn: + $ref: '#/components/messages/turnOnOff' + parameters: + streetlightId: + $ref: '#/components/parameters/streetlightId' + lightTurnOff: + address: smartylighting.streetlights.1.0.action.{streetlightId}.turn.off + messages: + turnOff: + $ref: '#/components/messages/turnOnOff' + parameters: + streetlightId: + $ref: '#/components/parameters/streetlightId' + lightsDim: + address: smartylighting.streetlights.1.0.action.{streetlightId}.dim + messages: + dimLight: + $ref: '#/components/messages/dimLight' + parameters: + streetlightId: + $ref: '#/components/parameters/streetlightId' +operations: + receiveLightMeasurement: + action: receive + channel: + $ref: '#/channels/lightingMeasured' + summary: >- + Inform about environmental lighting conditions of a particular + streetlight. + traits: + - $ref: '#/components/operationTraits/kafka' + messages: + - $ref: '#/channels/lightingMeasured/messages/lightMeasured' + turnOn: + action: send + channel: + $ref: '#/channels/lightTurnOn' + traits: + - $ref: '#/components/operationTraits/kafka' + messages: + - $ref: '#/channels/lightTurnOn/messages/turnOn' + turnOff: + action: send + channel: + $ref: '#/channels/lightTurnOff' + traits: + - $ref: '#/components/operationTraits/kafka' + messages: + - $ref: '#/channels/lightTurnOff/messages/turnOff' + dimLight: + action: send + channel: + $ref: '#/channels/lightsDim' + traits: + - $ref: '#/components/operationTraits/kafka' + messages: + - $ref: '#/channels/lightsDim/messages/dimLight' +components: + messages: + lightMeasured: + name: lightMeasured + title: Light measured + summary: >- + Inform about environmental lighting conditions of a particular + streetlight. + contentType: application/json + traits: + - $ref: '#/components/messageTraits/commonHeaders' + payload: + $ref: '#/components/schemas/lightMeasuredPayload' + turnOnOff: + name: turnOnOff + title: Turn on/off + summary: Command a particular streetlight to turn the lights on or off. + traits: + - $ref: '#/components/messageTraits/commonHeaders' + payload: + $ref: '#/components/schemas/turnOnOffPayload' + dimLight: + name: dimLight + title: Dim light + summary: Command a particular streetlight to dim the lights. + traits: + - $ref: '#/components/messageTraits/commonHeaders' + payload: + $ref: '#/components/schemas/dimLightPayload' + schemas: + lightMeasuredPayload: + type: object + properties: + lumens: + type: integer + minimum: 0 + description: Light intensity measured in lumens. + sentAt: + $ref: '#/components/schemas/sentAt' + turnOnOffPayload: + type: object + properties: + command: + type: string + enum: + - 'on' + - 'off' + description: Whether to turn on or off the light. + sentAt: + $ref: '#/components/schemas/sentAt' + dimLightPayload: + type: object + properties: + percentage: + type: integer + description: Percentage to which the light should be dimmed to. + minimum: 0 + maximum: 100 + sentAt: + $ref: '#/components/schemas/sentAt' + sentAt: + type: string + format: date-time + description: Date and time when the message was sent. + securitySchemes: + saslScram: + type: scramSha256 + description: Provide your username and password for SASL/SCRAM authentication + certs: + type: X509 + description: Download the certificate files from service provider + parameters: + streetlightId: + description: The ID of the streetlight. + messageTraits: + commonHeaders: + headers: + type: object + properties: + my-app-header: + type: integer + minimum: 0 + maximum: 100 + operationTraits: + kafka: + bindings: + kafka: + clientId: + type: string + enum: + - my-app-id From 5c978d0d71d6c4f79cac3c6c57df93d4091b2b5c Mon Sep 17 00:00:00 2001 From: Maschga Date: Thu, 6 Feb 2025 19:15:20 +0100 Subject: [PATCH 03/35] add AsyncUiWrapper --- .../{mqtt-api.md => mqtt-api.mdx} | 4 +++ src/components/AsyncUiWrapper.jsx | 34 +++++++++++++++++++ 2 files changed, 38 insertions(+) rename docs/integrations/{mqtt-api.md => mqtt-api.mdx} (96%) create mode 100644 src/components/AsyncUiWrapper.jsx diff --git a/docs/integrations/mqtt-api.md b/docs/integrations/mqtt-api.mdx similarity index 96% rename from docs/integrations/mqtt-api.md rename to docs/integrations/mqtt-api.mdx index 0cfbe7da0..9ae9b2ecd 100644 --- a/docs/integrations/mqtt-api.md +++ b/docs/integrations/mqtt-api.mdx @@ -2,11 +2,15 @@ sidebar_position: 2 --- +import AsyncUiWrapper from "../../src/components/AsyncUiWrapper"; + # MQTT API Die MQTT API folgt der [REST API](./rest-api) Struktur. Alle API IDs (z.B. die Loadpoint ID) beginnen bei `1`. + + - `evcc`: root topic - `evcc/status`: status (`online`/`offline`) - `evcc/updated`: timestamp of last update diff --git a/src/components/AsyncUiWrapper.jsx b/src/components/AsyncUiWrapper.jsx new file mode 100644 index 000000000..1139d44e2 --- /dev/null +++ b/src/components/AsyncUiWrapper.jsx @@ -0,0 +1,34 @@ +import AsyncApiComponent from "@asyncapi/react-component"; + +const configs = {}; +const customCss = ""; + +export default () => { + const containerRef = useRef(null); + + useEffect(() => { + if (containerRef.current?.attachShadow) { + try { + const shadowRoot = containerRef.current.attachShadow({ mode: "open" }); + const style = document.createElement("style"); + style.textContent = customCss; + shadowRoot.appendChild(style); + + const div = document.createElement("div"); + shadowRoot.appendChild(div); + + const root = ReactDOM.createRoot(div); + root.render( + , + ); + } catch (e) { + console.error(e); + } + } + }, []); + + return
; +}; From 8686494ad36958c79e0e9c677c085b68f492b6b7 Mon Sep 17 00:00:00 2001 From: Maschga Date: Thu, 6 Feb 2025 18:50:56 +0100 Subject: [PATCH 04/35] install @asyncapi/react-component --- package-lock.json | 2229 ++++++++++++++++++++++++++++++++++++++++++++- package.json | 1 + 2 files changed, 2205 insertions(+), 25 deletions(-) diff --git a/package-lock.json b/package-lock.json index 27ee3991f..5095ff525 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "name": "evcc-docs", "version": "0.0.0", "dependencies": { + "@asyncapi/react-component": "^2.5.1", "@docusaurus/core": "^3.7.0", "@docusaurus/faster": "^3.7.0", "@docusaurus/plugin-client-redirects": "^3.7.0", @@ -297,6 +298,133 @@ "url": "https://github.com/sponsors/antfu" } }, + "node_modules/@asamuzakjp/css-color": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-2.8.3.tgz", + "integrity": "sha512-GIc76d9UI1hCvOATjZPyHFmE5qhRccp3/zGfMPapK3jBi+yocEzp6BBB0UnfRYP9NP4FANqUZYb0hnfs3TM3hw==", + "license": "MIT", + "dependencies": { + "@csstools/css-calc": "^2.1.1", + "@csstools/css-color-parser": "^3.0.7", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "lru-cache": "^10.4.3" + } + }, + "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/@asyncapi/avro-schema-parser": { + "version": "3.0.24", + "resolved": "https://registry.npmjs.org/@asyncapi/avro-schema-parser/-/avro-schema-parser-3.0.24.tgz", + "integrity": "sha512-YMyr2S2heMrWHRyECknjHeejlZl5exUSv9nD1gTejAT13fSf0PqIRydZ9ZuoglCLBg55AeehypR2zLIBu/9kHQ==", + "license": "Apache-2.0", + "dependencies": { + "@asyncapi/parser": "^3.1.0", + "@types/json-schema": "^7.0.11", + "avsc": "^5.7.6" + } + }, + "node_modules/@asyncapi/openapi-schema-parser": { + "version": "3.0.24", + "resolved": "https://registry.npmjs.org/@asyncapi/openapi-schema-parser/-/openapi-schema-parser-3.0.24.tgz", + "integrity": "sha512-7wz2yVDedJMS+TzOuqCvRWJMc6pNHICKZcOhnW6ZvyVLAh7hYIqQE1WA4OoXT4cKVbwSU3V2Q4bZagSsAIQd6Q==", + "license": "Apache-2.0", + "dependencies": { + "@asyncapi/parser": "^3.1.0", + "@openapi-contrib/openapi-schema-to-json-schema": "~3.2.0", + "ajv": "^8.11.0", + "ajv-errors": "^3.0.0", + "ajv-formats": "^2.1.1" + } + }, + "node_modules/@asyncapi/parser": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-3.4.0.tgz", + "integrity": "sha512-Sxn74oHiZSU6+cVeZy62iPZMFMvKp4jupMFHelSICCMw1qELmUHPvuZSr+ZHDmNGgHcEpzJM5HN02kR7T4g+PQ==", + "license": "Apache-2.0", + "dependencies": { + "@asyncapi/specs": "^6.8.0", + "@openapi-contrib/openapi-schema-to-json-schema": "~3.2.0", + "@stoplight/json": "3.21.0", + "@stoplight/json-ref-readers": "^1.2.2", + "@stoplight/json-ref-resolver": "^3.1.5", + "@stoplight/spectral-core": "^1.18.3", + "@stoplight/spectral-functions": "^1.7.2", + "@stoplight/spectral-parsers": "^1.0.2", + "@stoplight/spectral-ref-resolver": "^1.0.3", + "@stoplight/types": "^13.12.0", + "@types/json-schema": "^7.0.11", + "@types/urijs": "^1.19.19", + "ajv": "^8.17.1", + "ajv-errors": "^3.0.0", + "ajv-formats": "^2.1.1", + "avsc": "^5.7.5", + "js-yaml": "^4.1.0", + "jsonpath-plus": "^10.0.0", + "node-fetch": "2.6.7" + } + }, + "node_modules/@asyncapi/protobuf-schema-parser": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@asyncapi/protobuf-schema-parser/-/protobuf-schema-parser-3.4.0.tgz", + "integrity": "sha512-aBBj8pKeYXJqXNRpw45mb4eBQ2LAA6ul9hMnDjvQ+YYyax58DmHqHvG9sDvFBlWBQM3KYQrC1GJG6Q6MDXCsNQ==", + "license": "Apache-2.0", + "dependencies": { + "@asyncapi/parser": "^3.4.0", + "@types/protocol-buffers-schema": "^3.4.3", + "protobufjs": "^7.4.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@asyncapi/react-component": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@asyncapi/react-component/-/react-component-2.5.1.tgz", + "integrity": "sha512-/HPIMCcrKHsyzUHlN0DG4z4USkZXKJ6hKr4gnw1pPUfSHIteV2cOUg7SP9U9hdjLusCijjbH1Oqjyg6LYiMgaQ==", + "license": "Apache-2.0", + "dependencies": { + "@asyncapi/avro-schema-parser": "^3.0.24", + "@asyncapi/openapi-schema-parser": "^3.0.24", + "@asyncapi/parser": "^3.3.0", + "@asyncapi/protobuf-schema-parser": "^3.4.0", + "highlight.js": "^10.7.2", + "isomorphic-dompurify": "^2.14.0", + "marked": "^4.0.14", + "openapi-sampler": "^1.2.1", + "react-error-boundary": "^4.1.2", + "use-resize-observer": "^9.1.0" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@asyncapi/react-component/node_modules/marked": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/@asyncapi/specs": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/@asyncapi/specs/-/specs-6.8.1.tgz", + "integrity": "sha512-czHoAk3PeXTLR+X8IUaD+IpT+g+zUvkcgMDJVothBsan+oHN3jfcFcFUNdOPAAFoUCQN1hXF1dWuphWy05THlA==", + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.11" + } + }, "node_modules/@babel/code-frame": { "version": "7.26.2", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", @@ -4227,6 +4355,48 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@jsep-plugin/assignment": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@jsep-plugin/assignment/-/assignment-1.3.0.tgz", + "integrity": "sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==", + "license": "MIT", + "engines": { + "node": ">= 10.16.0" + }, + "peerDependencies": { + "jsep": "^0.4.0||^1.0.0" + } + }, + "node_modules/@jsep-plugin/regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@jsep-plugin/regex/-/regex-1.0.4.tgz", + "integrity": "sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==", + "license": "MIT", + "engines": { + "node": ">= 10.16.0" + }, + "peerDependencies": { + "jsep": "^0.4.0||^1.0.0" + } + }, + "node_modules/@jsep-plugin/ternary": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@jsep-plugin/ternary/-/ternary-1.1.4.tgz", + "integrity": "sha512-ck5wiqIbqdMX6WRQztBL7ASDty9YLgJ3sSAK5ZpBzXeySvFGCzIvM6UiAI4hTZ22fEcYQVV/zhUbNscggW+Ukg==", + "license": "MIT", + "engines": { + "node": ">= 10.16.0" + }, + "peerDependencies": { + "jsep": "^0.4.0||^1.0.0" + } + }, + "node_modules/@juggle/resize-observer": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", + "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==", + "license": "Apache-2.0" + }, "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", @@ -4391,6 +4561,15 @@ "node": ">= 8" } }, + "node_modules/@openapi-contrib/openapi-schema-to-json-schema": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@openapi-contrib/openapi-schema-to-json-schema/-/openapi-schema-to-json-schema-3.2.0.tgz", + "integrity": "sha512-Gj6C0JwCr8arj0sYuslWXUBSP/KnUlEGnPW4qxlXvAl543oaNQgMgIgkQUA6vs5BCCvwTEiL8m/wdWzfl4UvSw==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + } + }, "node_modules/@pnpm/config.env-replace": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", @@ -4438,6 +4617,70 @@ "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", "license": "MIT" }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "license": "BSD-3-Clause" + }, "node_modules/@puppeteer/browsers": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.3.0.tgz", @@ -4701,6 +4944,288 @@ "micromark-util-symbol": "^1.0.1" } }, + "node_modules/@stoplight/better-ajv-errors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@stoplight/better-ajv-errors/-/better-ajv-errors-1.0.3.tgz", + "integrity": "sha512-0p9uXkuB22qGdNfy3VeEhxkU5uwvp/KrBTAbrLBURv6ilxIVwanKwjMc41lQfIVgPGcOkmLbTolfFrSsueu7zA==", + "license": "Apache-2.0", + "dependencies": { + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + }, + "engines": { + "node": "^12.20 || >= 14.13" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, + "node_modules/@stoplight/json": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@stoplight/json/-/json-3.21.0.tgz", + "integrity": "sha512-5O0apqJ/t4sIevXCO3SBN9AHCEKKR/Zb4gaj7wYe5863jme9g02Q0n/GhM7ZCALkL+vGPTe4ZzTETP8TFtsw3g==", + "license": "Apache-2.0", + "dependencies": { + "@stoplight/ordered-object-literal": "^1.0.3", + "@stoplight/path": "^1.3.2", + "@stoplight/types": "^13.6.0", + "jsonc-parser": "~2.2.1", + "lodash": "^4.17.21", + "safe-stable-stringify": "^1.1" + }, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/@stoplight/json-ref-readers": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@stoplight/json-ref-readers/-/json-ref-readers-1.2.2.tgz", + "integrity": "sha512-nty0tHUq2f1IKuFYsLM4CXLZGHdMn+X/IwEUIpeSOXt0QjMUbL0Em57iJUDzz+2MkWG83smIigNZ3fauGjqgdQ==", + "license": "Apache-2.0", + "dependencies": { + "node-fetch": "^2.6.0", + "tslib": "^1.14.1" + }, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/@stoplight/json-ref-readers/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/@stoplight/json-ref-resolver": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@stoplight/json-ref-resolver/-/json-ref-resolver-3.1.6.tgz", + "integrity": "sha512-YNcWv3R3n3U6iQYBsFOiWSuRGE5su1tJSiX6pAPRVk7dP0L7lqCteXGzuVRQ0gMZqUl8v1P0+fAKxF6PLo9B5A==", + "license": "Apache-2.0", + "dependencies": { + "@stoplight/json": "^3.21.0", + "@stoplight/path": "^1.3.2", + "@stoplight/types": "^12.3.0 || ^13.0.0", + "@types/urijs": "^1.19.19", + "dependency-graph": "~0.11.0", + "fast-memoize": "^2.5.2", + "immer": "^9.0.6", + "lodash": "^4.17.21", + "tslib": "^2.6.0", + "urijs": "^1.19.11" + }, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/@stoplight/ordered-object-literal": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@stoplight/ordered-object-literal/-/ordered-object-literal-1.0.5.tgz", + "integrity": "sha512-COTiuCU5bgMUtbIFBuyyh2/yVVzlr5Om0v5utQDgBCuQUOPgU1DwoffkTfg4UBQOvByi5foF4w4T+H9CoRe5wg==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/@stoplight/path": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@stoplight/path/-/path-1.3.2.tgz", + "integrity": "sha512-lyIc6JUlUA8Ve5ELywPC8I2Sdnh1zc1zmbYgVarhXIp9YeAB0ReeqmGEOWNtlHkbP2DAA1AL65Wfn2ncjK/jtQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/@stoplight/spectral-core": { + "version": "1.19.4", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-core/-/spectral-core-1.19.4.tgz", + "integrity": "sha512-8hnZXfssTlV99SKo8J8BwMt5LsiBFHkCh0V3P7j8IPcCNl//bpG92U4TpYy7AwmUms/zCLX7sxNQC6AZ+bkfzg==", + "license": "Apache-2.0", + "dependencies": { + "@stoplight/better-ajv-errors": "1.0.3", + "@stoplight/json": "~3.21.0", + "@stoplight/path": "1.3.2", + "@stoplight/spectral-parsers": "^1.0.0", + "@stoplight/spectral-ref-resolver": "^1.0.4", + "@stoplight/spectral-runtime": "^1.1.2", + "@stoplight/types": "~13.6.0", + "@types/es-aggregate-error": "^1.0.2", + "@types/json-schema": "^7.0.11", + "ajv": "^8.17.1", + "ajv-errors": "~3.0.0", + "ajv-formats": "~2.1.0", + "es-aggregate-error": "^1.0.7", + "jsonpath-plus": "10.2.0", + "lodash": "~4.17.21", + "lodash.topath": "^4.5.2", + "minimatch": "3.1.2", + "nimma": "0.2.3", + "pony-cause": "^1.1.1", + "simple-eval": "1.0.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": "^16.20 || ^18.18 || >= 20.17" + } + }, + "node_modules/@stoplight/spectral-core/node_modules/@stoplight/types": { + "version": "13.6.0", + "resolved": "https://registry.npmjs.org/@stoplight/types/-/types-13.6.0.tgz", + "integrity": "sha512-dzyuzvUjv3m1wmhPfq82lCVYGcXG0xUYgqnWfCq3PCVR4BKFhjdkHrnJ+jIDoMKvXb05AZP/ObQF6+NpDo29IQ==", + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.4", + "utility-types": "^3.10.0" + }, + "engines": { + "node": "^12.20 || >=14.13" + } + }, + "node_modules/@stoplight/spectral-formats": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-formats/-/spectral-formats-1.8.2.tgz", + "integrity": "sha512-c06HB+rOKfe7tuxg0IdKDEA5XnjL2vrn/m/OVIIxtINtBzphZrOgtRn7epQ5bQF5SWp84Ue7UJWaGgDwVngMFw==", + "license": "Apache-2.0", + "dependencies": { + "@stoplight/json": "^3.17.0", + "@stoplight/spectral-core": "^1.19.2", + "@types/json-schema": "^7.0.7", + "tslib": "^2.8.1" + }, + "engines": { + "node": "^16.20 || ^18.18 || >= 20.17" + } + }, + "node_modules/@stoplight/spectral-functions": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-functions/-/spectral-functions-1.9.3.tgz", + "integrity": "sha512-jy4mguk0Ddz0Vr76PHervOZeyXTUW650zVfNT2Vt9Ji3SqtTVziHjq913CBVEGFS+IQw1McUXuHVLM6YKVZ6fQ==", + "license": "Apache-2.0", + "dependencies": { + "@stoplight/better-ajv-errors": "1.0.3", + "@stoplight/json": "^3.17.1", + "@stoplight/spectral-core": "^1.19.4", + "@stoplight/spectral-formats": "^1.8.1", + "@stoplight/spectral-runtime": "^1.1.2", + "ajv": "^8.17.1", + "ajv-draft-04": "~1.0.0", + "ajv-errors": "~3.0.0", + "ajv-formats": "~2.1.0", + "lodash": "~4.17.21", + "tslib": "^2.8.1" + }, + "engines": { + "node": "^16.20 || ^18.18 || >= 20.17" + } + }, + "node_modules/@stoplight/spectral-parsers": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-parsers/-/spectral-parsers-1.0.5.tgz", + "integrity": "sha512-ANDTp2IHWGvsQDAY85/jQi9ZrF4mRrA5bciNHX+PUxPr4DwS6iv4h+FVWJMVwcEYdpyoIdyL+SRmHdJfQEPmwQ==", + "license": "Apache-2.0", + "dependencies": { + "@stoplight/json": "~3.21.0", + "@stoplight/types": "^14.1.1", + "@stoplight/yaml": "~4.3.0", + "tslib": "^2.8.1" + }, + "engines": { + "node": "^16.20 || ^18.18 || >= 20.17" + } + }, + "node_modules/@stoplight/spectral-parsers/node_modules/@stoplight/types": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/@stoplight/types/-/types-14.1.1.tgz", + "integrity": "sha512-/kjtr+0t0tjKr+heVfviO9FrU/uGLc+QNX3fHJc19xsCNYqU7lVhaXxDmEID9BZTjG+/r9pK9xP/xU02XGg65g==", + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.4", + "utility-types": "^3.10.0" + }, + "engines": { + "node": "^12.20 || >=14.13" + } + }, + "node_modules/@stoplight/spectral-ref-resolver": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-ref-resolver/-/spectral-ref-resolver-1.0.5.tgz", + "integrity": "sha512-gj3TieX5a9zMW29z3mBlAtDOCgN3GEc1VgZnCVlr5irmR4Qi5LuECuFItAq4pTn5Zu+sW5bqutsCH7D4PkpyAA==", + "license": "Apache-2.0", + "dependencies": { + "@stoplight/json-ref-readers": "1.2.2", + "@stoplight/json-ref-resolver": "~3.1.6", + "@stoplight/spectral-runtime": "^1.1.2", + "dependency-graph": "0.11.0", + "tslib": "^2.8.1" + }, + "engines": { + "node": "^16.20 || ^18.18 || >= 20.17" + } + }, + "node_modules/@stoplight/spectral-runtime": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@stoplight/spectral-runtime/-/spectral-runtime-1.1.3.tgz", + "integrity": "sha512-uoKSVX/OYXOEBRQN7EtAaVefl8MlyhBkDcU2aDYEGALwYXHAH+vmF3ljhZrueMA3fSWLHTL3RxWqsjeeCor6lw==", + "license": "Apache-2.0", + "dependencies": { + "@stoplight/json": "^3.20.1", + "@stoplight/path": "^1.3.2", + "@stoplight/types": "^13.6.0", + "abort-controller": "^3.0.0", + "lodash": "^4.17.21", + "node-fetch": "^2.6.7", + "tslib": "^2.8.1" + }, + "engines": { + "node": "^16.20 || ^18.18 || >= 20.17" + } + }, + "node_modules/@stoplight/types": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/@stoplight/types/-/types-13.20.0.tgz", + "integrity": "sha512-2FNTv05If7ib79VPDA/r9eUet76jewXFH2y2K5vuge6SXbRHtWBhcaRmu+6QpF4/WRNoJj5XYRSwLGXDxysBGA==", + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.4", + "utility-types": "^3.10.0" + }, + "engines": { + "node": "^12.20 || >=14.13" + } + }, + "node_modules/@stoplight/yaml": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@stoplight/yaml/-/yaml-4.3.0.tgz", + "integrity": "sha512-JZlVFE6/dYpP9tQmV0/ADfn32L9uFarHWxfcRhReKUnljz1ZiUM5zpX+PH8h5CJs6lao3TuFqnPm9IJJCEkE2w==", + "license": "Apache-2.0", + "dependencies": { + "@stoplight/ordered-object-literal": "^1.0.5", + "@stoplight/types": "^14.1.1", + "@stoplight/yaml-ast-parser": "0.0.50", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=10.8" + } + }, + "node_modules/@stoplight/yaml-ast-parser": { + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@stoplight/yaml-ast-parser/-/yaml-ast-parser-0.0.50.tgz", + "integrity": "sha512-Pb6M8TDO9DtSVla9yXSTAxmo9GVEouq5P40DWXdOie69bXogZTkgvopCq+yEvTMA0F6PEvdJmbtTV3ccIp11VQ==", + "license": "Apache-2.0" + }, + "node_modules/@stoplight/yaml/node_modules/@stoplight/types": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/@stoplight/types/-/types-14.1.1.tgz", + "integrity": "sha512-/kjtr+0t0tjKr+heVfviO9FrU/uGLc+QNX3fHJc19xsCNYqU7lVhaXxDmEID9BZTjG+/r9pK9xP/xU02XGg65g==", + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.4", + "utility-types": "^3.10.0" + }, + "engines": { + "node": "^12.20 || >=14.13" + } + }, "node_modules/@svgr/babel-plugin-add-jsx-attribute": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", @@ -6305,6 +6830,15 @@ "@types/ms": "*" } }, + "node_modules/@types/es-aggregate-error": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/es-aggregate-error/-/es-aggregate-error-1.0.6.tgz", + "integrity": "sha512-qJ7LIFp06h1QE1aVxbVd+zJP2wdaugYXYfd6JxsyRMrYHaxb6itXPogW2tz+ylUJ1n1b+JF1PHyYCfYHm0dvUg==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/eslint": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", @@ -6524,7 +7058,16 @@ "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", "license": "MIT" }, - "node_modules/@types/qs": { + "node_modules/@types/protocol-buffers-schema": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@types/protocol-buffers-schema/-/protocol-buffers-schema-3.4.3.tgz", + "integrity": "sha512-8cCg6BiIj4jS0LXUFq3sndmd46yyPLYqMzvXLcTM1MRubh3sfZlQiehoCjGDxSHTqGSjjx8EtVNryIAl0njQWg==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/qs": { "version": "6.9.18", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz", "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==", @@ -6646,8 +7189,7 @@ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", "license": "MIT", - "optional": true, - "peer": true + "optional": true }, "node_modules/@types/unist": { "version": "3.0.3", @@ -6655,6 +7197,12 @@ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", "license": "MIT" }, + "node_modules/@types/urijs": { + "version": "1.19.25", + "resolved": "https://registry.npmjs.org/@types/urijs/-/urijs-1.19.25.tgz", + "integrity": "sha512-XOfUup9r3Y06nFAZh3WvO0rBU4OtlfPB/vgxpjg+NRdGU6CN6djdc6OEiH+PcqHCY6eFLo9Ista73uarf4gnBg==", + "license": "MIT" + }, "node_modules/@types/use-sync-external-store": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz", @@ -6859,6 +7407,18 @@ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "license": "Apache-2.0" }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -6949,7 +7509,6 @@ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", "license": "MIT", - "optional": true, "engines": { "node": ">= 14" } @@ -6983,6 +7542,29 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ajv-draft-04": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", + "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", + "license": "MIT", + "peerDependencies": { + "ajv": "^8.5.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-3.0.0.tgz", + "integrity": "sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^8.0.1" + } + }, "node_modules/ajv-formats": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", @@ -7171,6 +7753,22 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "license": "Python-2.0" }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", @@ -7186,6 +7784,27 @@ "node": ">=8" } }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/ast-types": { "version": "0.13.4", "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", @@ -7208,6 +7827,15 @@ "astring": "bin/astring" } }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -7269,6 +7897,30 @@ "postcss": "^8.1.0" } }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/avsc": { + "version": "5.7.7", + "resolved": "https://registry.npmjs.org/avsc/-/avsc-5.7.7.tgz", + "integrity": "sha512-9cYNccliXZDByFsFliVwk5GvTq058Fj513CiR4E60ndDwmuXzTJEp/Bp8FyuRmGyYupLjHLs+JA9/CBoVS4/NQ==", + "license": "MIT", + "engines": { + "node": ">=0.11" + } + }, "node_modules/axios": { "version": "1.7.9", "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", @@ -9086,6 +9738,19 @@ "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", "license": "CC0-1.0" }, + "node_modules/cssstyle": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.2.1.tgz", + "integrity": "sha512-9+vem03dMXG7gDmZ62uqmRiMRNtinIZ9ZyuF6BdxzfOD+FdN5hretzynkn0ReS2DO2GSw76RWHs0UmJPI2zUjw==", + "license": "MIT", + "dependencies": { + "@asamuzakjp/css-color": "^2.8.2", + "rrweb-cssom": "^0.8.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", @@ -9653,6 +10318,70 @@ "node": ">= 14" } }, + "node_modules/data-urls": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", + "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", + "license": "MIT", + "dependencies": { + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/dayjs": { "version": "1.11.13", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", @@ -9683,6 +10412,12 @@ } } }, + "node_modules/decimal.js": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", + "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==", + "license": "MIT" + }, "node_modules/decode-named-character-reference": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", @@ -9870,6 +10605,15 @@ "node": ">= 0.8" } }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -10065,7 +10809,6 @@ "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.4.tgz", "integrity": "sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==", "license": "(MPL-2.0 OR Apache-2.0)", - "peer": true, "optionalDependencies": { "@types/trusted-types": "^2.0.7" } @@ -10259,6 +11002,93 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/es-abstract": { + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-aggregate-error": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/es-aggregate-error/-/es-aggregate-error-1.0.13.tgz", + "integrity": "sha512-KkzhUUuD2CUMqEc8JEqsXEMDHzDPE8RCjZeUBitsnB1eNcAJWQPiciKsMXe3Yytj4Flw1XLl46Qcf9OxvZha7A==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.2", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/es-define-property": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", @@ -10295,6 +11125,38 @@ "node": ">= 0.4" } }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/esast-util-from-estree": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", @@ -10623,6 +11485,15 @@ "node": ">= 0.8" } }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -10841,6 +11712,12 @@ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "license": "MIT" }, + "node_modules/fast-memoize": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/fast-memoize/-/fast-memoize-2.5.2.tgz", + "integrity": "sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==", + "license": "MIT" + }, "node_modules/fast-uri": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", @@ -10857,6 +11734,28 @@ ], "license": "BSD-3-Clause" }, + "node_modules/fast-xml-parser": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.1.tgz", + "integrity": "sha512-y655CeyUQ+jj7KBbYMc4FG01V8ZQqjN+gDYGJ50RtfsUB8iG9AmwmwoAgeKLJdmueKKMrH1RJ7yXHTSoczdv5w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + }, + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + } + ], + "license": "MIT", + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, "node_modules/fastq": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz", @@ -11121,6 +12020,27 @@ } } }, + "node_modules/for-each": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.4.tgz", + "integrity": "sha512-kKaIINnFpzW6ffJNDjjyjrk21BkDx38c0xa/klsT8VzLCaMEefv4ZTacrcVR4DmgTeBra++jMDAfS/tS799YDw==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/foreach": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz", + "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==", + "license": "MIT" + }, "node_modules/fork-ts-checker-webpack-plugin": { "version": "6.5.3", "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", @@ -11360,6 +12280,35 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -11438,10 +12387,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-uri": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.4.tgz", - "integrity": "sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==", + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-uri": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.4.tgz", + "integrity": "sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==", "license": "MIT", "optional": true, "dependencies": { @@ -11569,6 +12535,22 @@ "node": ">=4" } }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -11727,6 +12709,18 @@ "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "license": "MIT" }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -11748,6 +12742,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-symbols": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", @@ -11760,6 +12769,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-yarn": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", @@ -12923,6 +13947,18 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/html-encoding-sniffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", + "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^3.1.1" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/html-entities": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", @@ -13131,7 +14167,6 @@ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "license": "MIT", - "optional": true, "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" @@ -13194,7 +14229,6 @@ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "license": "MIT", - "optional": true, "dependencies": { "agent-base": "^7.1.2", "debug": "4" @@ -13217,7 +14251,6 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "license": "MIT", - "peer": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -13381,6 +14414,20 @@ "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==", "license": "MIT" }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/internmap": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", @@ -13456,12 +14503,63 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "license": "MIT" }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -13474,6 +14572,22 @@ "node": ">=8" } }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-buffer": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", @@ -13498,6 +14612,18 @@ "node": ">=4" } }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-ci": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", @@ -13525,6 +14651,39 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-decimal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", @@ -13568,6 +14727,21 @@ "node": ">=0.10.0" } }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -13577,6 +14751,24 @@ "node": ">=8" } }, + "node_modules/is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -13615,6 +14807,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-npm": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", @@ -13636,6 +14840,22 @@ "node": ">=0.12.0" } }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", @@ -13687,6 +14907,30 @@ "node": ">=0.10.0" } }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "license": "MIT" + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", @@ -13705,24 +14949,142 @@ "node": ">=6" } }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "license": "MIT", "engines": { - "node": ">=8" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "license": "MIT" + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "license": "MIT" - }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -13765,6 +15127,19 @@ "node": ">=0.10.0" } }, + "node_modules/isomorphic-dompurify": { + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/isomorphic-dompurify/-/isomorphic-dompurify-2.21.0.tgz", + "integrity": "sha512-IjBG/D6ApEiO6ciXvrzPqbE4xOLbjRTshSWRSeeycQVhvsxf1O9PhA7LoqwMYS0/2PKLNFJRugwsNV5UihtLxQ==", + "license": "MIT", + "dependencies": { + "dompurify": "^3.2.3", + "jsdom": "^26.0.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/isomorphic-rslog": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/isomorphic-rslog/-/isomorphic-rslog-0.0.6.tgz", @@ -13939,6 +15314,55 @@ "license": "MIT", "optional": true }, + "node_modules/jsdom": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.0.0.tgz", + "integrity": "sha512-BZYDGVAIriBWTpIxYzrXjv3E/4u8+/pSG5bQdIYCbNCGOvsPkDQfTVLAIXAf9ETdCpduCVTkDe2NNZ8NIwUVzw==", + "license": "MIT", + "dependencies": { + "cssstyle": "^4.2.1", + "data-urls": "^5.0.0", + "decimal.js": "^10.4.3", + "form-data": "^4.0.1", + "html-encoding-sniffer": "^4.0.0", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.6", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.16", + "parse5": "^7.2.1", + "rrweb-cssom": "^0.8.0", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^5.0.0", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^3.1.1", + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.1.0", + "ws": "^8.18.0", + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "canvas": "^3.0.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsep": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz", + "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==", + "license": "MIT", + "engines": { + "node": ">= 10.16.0" + } + }, "node_modules/jsesc": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", @@ -13963,6 +15387,15 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "license": "MIT" }, + "node_modules/json-pointer": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.2.tgz", + "integrity": "sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==", + "license": "MIT", + "dependencies": { + "foreach": "^2.0.4" + } + }, "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -13981,6 +15414,12 @@ "node": ">=6" } }, + "node_modules/jsonc-parser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.2.1.tgz", + "integrity": "sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w==", + "license": "MIT" + }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -13993,6 +15432,33 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/jsonpath-plus": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-10.2.0.tgz", + "integrity": "sha512-T9V+8iNYKFL2n2rF+w02LBOT2JjDnTjioaNFrxRy0Bv1y/hNsqR/EBK7Ojy2ythRHwmz2cRIls+9JitQGZC/sw==", + "license": "MIT", + "dependencies": { + "@jsep-plugin/assignment": "^1.3.0", + "@jsep-plugin/regex": "^1.0.4", + "jsep": "^1.4.0" + }, + "bin": { + "jsonpath": "bin/jsonpath-cli.js", + "jsonpath-plus": "bin/jsonpath-cli.js" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/katex": { "version": "0.16.21", "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.21.tgz", @@ -14444,12 +15910,24 @@ "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", "license": "MIT" }, + "node_modules/lodash.topath": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/lodash.topath/-/lodash.topath-4.5.2.tgz", + "integrity": "sha512-1/W4dM+35DwvE/iEd1M9ekewOSTlpFekhw9mhAtrwjVqUr83/ilQiyAvmg4tVX7Unkcfl1KC+i9WdaT4B6aQcg==", + "license": "MIT" + }, "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", "license": "MIT" }, + "node_modules/long": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.4.tgz", + "integrity": "sha512-qtzLbJE8hq7VabR3mISmVGtoXP8KGc2Z/AT8OuqlYD7JTR3oqrgwdjnk07wpj1twXxYmgDXgoKVWUG/fReSzHg==", + "license": "Apache-2.0" + }, "node_modules/longest-streak": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", @@ -18141,6 +19619,25 @@ "node": ">= 0.4.0" } }, + "node_modules/nimma": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/nimma/-/nimma-0.2.3.tgz", + "integrity": "sha512-1ZOI8J+1PKKGceo/5CT5GfQOG6H8I2BencSK06YarZ2wXwH37BSSUWldqJmMJYA5JfqDqffxDXynt6f11AyKcA==", + "license": "Apache-2.0", + "dependencies": { + "@jsep-plugin/regex": "^1.0.1", + "@jsep-plugin/ternary": "^1.0.2", + "astring": "^1.8.1", + "jsep": "^1.2.0" + }, + "engines": { + "node": "^12.20 || >=14.13" + }, + "optionalDependencies": { + "jsonpath-plus": "^6.0.1 || ^10.1.0", + "lodash.topath": "^4.5.2" + } + }, "node_modules/no-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", @@ -18201,6 +19698,26 @@ "node": ">=18" } }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, "node_modules/node-fetch-commonjs": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/node-fetch-commonjs/-/node-fetch-commonjs-3.3.2.tgz", @@ -18218,6 +19735,28 @@ "url": "https://opencollective.com/node-fetch" } }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/node-forge": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", @@ -18374,6 +19913,12 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/nwsapi": { + "version": "2.2.16", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.16.tgz", + "integrity": "sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==", + "license": "MIT" + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -18504,6 +20049,17 @@ "node": ">=12.20.0" } }, + "node_modules/openapi-sampler": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.6.1.tgz", + "integrity": "sha512-s1cIatOqrrhSj2tmJ4abFYZQK6l5v+V4toO5q1Pa0DyN8mtyqy2I+Qrj5W9vOELEtybIMQs/TBZGVO/DtTFK8w==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.7", + "fast-xml-parser": "^4.5.0", + "json-pointer": "0.6.2" + } + }, "node_modules/openapi-server-url-templating": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/openapi-server-url-templating/-/openapi-server-url-templating-1.3.0.tgz", @@ -18525,6 +20081,23 @@ "opener": "bin/opener-bin.js" } }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/p-cancelable": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", @@ -18989,6 +20562,24 @@ "points-on-curve": "0.2.0" } }, + "node_modules/pony-cause": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pony-cause/-/pony-cause-1.1.1.tgz", + "integrity": "sha512-PxkIc/2ZpLiEzQXu5YRDOUgBlfGYBY8156HY5ZcRAwwonMk5W/MrJP2LLkG/hF7GEQzaHo2aS7ho6ZLCOvf+6g==", + "license": "0BSD", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postcss": { "version": "8.5.1", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", @@ -20566,6 +22157,30 @@ "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", "license": "ISC" }, + "node_modules/protobufjs": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", + "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -21150,6 +22765,18 @@ "react": "^18.3.1" } }, + "node_modules/react-error-boundary": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-4.1.2.tgz", + "integrity": "sha512-GQDxZ5Jd+Aq/qUxbCm1UtzmL/s++V7zKgE8yMktJiCQXCCFZnMZh9ng+6/Ne6PjNSXH0L9CjeOEREfRnq6Duag==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "peerDependencies": { + "react": ">=16.13.1" + } + }, "node_modules/react-error-overlay": { "version": "6.0.11", "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", @@ -21514,6 +23141,28 @@ "immutable": "^3.8.1 || ^4.0.0-rc.1" } }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/refractor": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/refractor/-/refractor-3.6.0.tgz", @@ -21738,6 +23387,26 @@ "@babel/runtime": "^7.8.4" } }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regexpu-core": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", @@ -22545,6 +24214,12 @@ "points-on-path": "^0.2.1" } }, + "node_modules/rrweb-cssom": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", + "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==", + "license": "MIT" + }, "node_modules/rtlcss": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.3.0.tgz", @@ -22606,6 +24281,31 @@ "node": ">=6" } }, + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -22626,6 +24326,51 @@ ], "license": "MIT" }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-stable-stringify": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-1.1.1.tgz", + "integrity": "sha512-ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw==", + "license": "MIT" + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -22638,6 +24383,18 @@ "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", "license": "ISC" }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, "node_modules/scheduler": { "version": "0.23.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", @@ -22946,12 +24703,41 @@ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "license": "MIT", "dependencies": { - "define-data-property": "^1.1.4", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -23132,6 +24918,18 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "license": "ISC" }, + "node_modules/simple-eval": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-eval/-/simple-eval-1.0.1.tgz", + "integrity": "sha512-LH7FpTAkeD+y5xQC4fzS+tFtaNlvt3Ib1zKzvhjv/Y+cioV4zIuw4IZr2yhRLu67CWL7FR9/6KXKnjRoZTvGGQ==", + "license": "MIT", + "dependencies": { + "jsep": "^1.3.6" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/sirv": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", @@ -23456,6 +25254,62 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/stringify-entities": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", @@ -23526,6 +25380,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", + "license": "MIT" + }, "node_modules/style-to-object": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", @@ -23719,6 +25579,12 @@ "webpack": ">=2" } }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "license": "MIT" + }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -23890,6 +25756,24 @@ "license": "MIT", "peer": true }, + "node_modules/tldts": { + "version": "6.1.76", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.76.tgz", + "integrity": "sha512-6U2ti64/nppsDxQs9hw8ephA3nO6nSQvVVfxwRw8wLQPFtLI1cFI1a1eP22g+LUP+1TA2pKKjUTwWB+K2coqmQ==", + "license": "MIT", + "dependencies": { + "tldts-core": "^6.1.76" + }, + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/tldts-core": { + "version": "6.1.76", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.76.tgz", + "integrity": "sha512-uzhJ02RaMzgQR3yPoeE65DrcHI6LoM4saUqXOt/b5hmb3+mc4YWpdSeAQqVqRUlQ14q8ZuLRWyBR1ictK1dzzg==", + "license": "MIT" + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -23926,6 +25810,30 @@ "node": ">=6" } }, + "node_modules/tough-cookie": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.0.tgz", + "integrity": "sha512-rvZUv+7MoBYTiDmFPBrhL7Ujx9Sk+q9wwm22x8c8T5IJaR+Wsyc7TNxbVxo84kZoRJZZMazowFLqpankBEQrGg==", + "license": "BSD-3-Clause", + "dependencies": { + "tldts": "^6.1.32" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/tr46": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz", + "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/tree-sitter": { "version": "0.21.1", "resolved": "https://registry.npmjs.org/tree-sitter/-/tree-sitter-0.21.1.tgz", @@ -24061,6 +25969,80 @@ "node": ">= 0.6" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", @@ -24106,6 +26088,24 @@ "integrity": "sha512-Wlj/pum6dQtGTPD/lclDtoVPkSfpjPfy1dwnnKw/sZP5DpBH9fLhBgQfsqNhe5/gS1D+vkZUuB771NRMUPA5CA==", "license": "MIT" }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/unbzip2-stream": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", @@ -24479,6 +26479,12 @@ "punycode": "^2.1.0" } }, + "node_modules/urijs": { + "version": "1.19.11", + "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz", + "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==", + "license": "MIT" + }, "node_modules/url-loader": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", @@ -24593,6 +26599,19 @@ "license": "MIT", "optional": true }, + "node_modules/use-resize-observer": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/use-resize-observer/-/use-resize-observer-9.1.0.tgz", + "integrity": "sha512-R25VqO9Wb3asSD4eqtcxk8sJalvIOYBqS8MNZlpDSQ4l4xMQxC/J7Id9HoTqPq8FwULIn0PVW+OAqF2dyYbjow==", + "license": "MIT", + "dependencies": { + "@juggle/resize-observer": "^3.3.1" + }, + "peerDependencies": { + "react": "16.8.0 - 18", + "react-dom": "16.8.0 - 18" + } + }, "node_modules/use-sync-external-store": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", @@ -24841,6 +26860,18 @@ "license": "MIT", "peer": true }, + "node_modules/w3c-xmlserializer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", + "license": "MIT", + "dependencies": { + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/watchpack": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", @@ -24889,6 +26920,15 @@ "license": "MIT", "optional": true }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, "node_modules/webpack": { "version": "5.97.1", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.97.1.tgz", @@ -25291,6 +27331,40 @@ "node": ">=0.8.0" } }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-url": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.1.0.tgz", + "integrity": "sha512-jlf/foYIKywAt3x/XWKZ/3rz8OSJPiWktjmk891alJUEjiVxKX9LEO92qH3hv4aJ0mN3MWPvGMCy8jQi95xK4w==", + "license": "MIT", + "dependencies": { + "tr46": "^5.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -25306,6 +27380,96 @@ "node": ">= 8" } }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", + "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/widest-line": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", @@ -25461,6 +27625,21 @@ "xml-js": "bin/cli.js" } }, + "node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "license": "Apache-2.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "license": "MIT" + }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", diff --git a/package.json b/package.json index 36fdffbcc..196f245b9 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "write-heading-ids": "docusaurus write-heading-ids" }, "dependencies": { + "@asyncapi/react-component": "^2.5.1", "@docusaurus/core": "^3.7.0", "@docusaurus/faster": "^3.7.0", "@docusaurus/plugin-client-redirects": "^3.7.0", From b4c0520d83967d03a0f109a4ce543874129bf181 Mon Sep 17 00:00:00 2001 From: Maschga Date: Thu, 6 Feb 2025 18:51:02 +0100 Subject: [PATCH 05/35] Create mqtt-api.yaml --- static/mqtt-api.yaml | 206 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 206 insertions(+) create mode 100644 static/mqtt-api.yaml diff --git a/static/mqtt-api.yaml b/static/mqtt-api.yaml new file mode 100644 index 000000000..09ca0ba84 --- /dev/null +++ b/static/mqtt-api.yaml @@ -0,0 +1,206 @@ +asyncapi: 3.0.0 +info: + title: Streetlights Kafka API + version: 1.0.0 + description: |- + The Smartylighting Streetlights API allows you to remotely manage the city + lights. + ### Check out its awesome features: + + * Turn a specific streetlight on/off 🌃 + * Dim a specific streetlight 😎 + * Receive real-time information about environmental lighting conditions 📈 + license: + name: Apache 2.0 + url: https://www.apache.org/licenses/LICENSE-2.0 +defaultContentType: application/json +servers: + scram-connections: + host: test.mykafkacluster.org:18092 + protocol: kafka-secure + description: Test broker secured with scramSha256 + security: + - $ref: '#/components/securitySchemes/saslScram' + tags: + - name: env:test-scram + description: >- + This environment is meant for running internal tests through + scramSha256 + - name: kind:remote + description: This server is a remote server. Not exposed by the application + - name: visibility:private + description: This resource is private and only available to certain users + mtls-connections: + host: test.mykafkacluster.org:28092 + protocol: kafka-secure + description: Test broker secured with X509 + security: + - $ref: '#/components/securitySchemes/certs' + tags: + - name: env:test-mtls + description: This environment is meant for running internal tests through mtls + - name: kind:remote + description: This server is a remote server. Not exposed by the application + - name: visibility:private + description: This resource is private and only available to certain users +channels: + lightingMeasured: + address: smartylighting.streetlights.1.0.event.{streetlightId}.lighting.measured + messages: + lightMeasured: + $ref: '#/components/messages/lightMeasured' + description: The topic on which measured values may be produced and consumed. + parameters: + streetlightId: + $ref: '#/components/parameters/streetlightId' + lightTurnOn: + address: smartylighting.streetlights.1.0.action.{streetlightId}.turn.on + messages: + turnOn: + $ref: '#/components/messages/turnOnOff' + parameters: + streetlightId: + $ref: '#/components/parameters/streetlightId' + lightTurnOff: + address: smartylighting.streetlights.1.0.action.{streetlightId}.turn.off + messages: + turnOff: + $ref: '#/components/messages/turnOnOff' + parameters: + streetlightId: + $ref: '#/components/parameters/streetlightId' + lightsDim: + address: smartylighting.streetlights.1.0.action.{streetlightId}.dim + messages: + dimLight: + $ref: '#/components/messages/dimLight' + parameters: + streetlightId: + $ref: '#/components/parameters/streetlightId' +operations: + receiveLightMeasurement: + action: receive + channel: + $ref: '#/channels/lightingMeasured' + summary: >- + Inform about environmental lighting conditions of a particular + streetlight. + traits: + - $ref: '#/components/operationTraits/kafka' + messages: + - $ref: '#/channels/lightingMeasured/messages/lightMeasured' + turnOn: + action: send + channel: + $ref: '#/channels/lightTurnOn' + traits: + - $ref: '#/components/operationTraits/kafka' + messages: + - $ref: '#/channels/lightTurnOn/messages/turnOn' + turnOff: + action: send + channel: + $ref: '#/channels/lightTurnOff' + traits: + - $ref: '#/components/operationTraits/kafka' + messages: + - $ref: '#/channels/lightTurnOff/messages/turnOff' + dimLight: + action: send + channel: + $ref: '#/channels/lightsDim' + traits: + - $ref: '#/components/operationTraits/kafka' + messages: + - $ref: '#/channels/lightsDim/messages/dimLight' +components: + messages: + lightMeasured: + name: lightMeasured + title: Light measured + summary: >- + Inform about environmental lighting conditions of a particular + streetlight. + contentType: application/json + traits: + - $ref: '#/components/messageTraits/commonHeaders' + payload: + $ref: '#/components/schemas/lightMeasuredPayload' + turnOnOff: + name: turnOnOff + title: Turn on/off + summary: Command a particular streetlight to turn the lights on or off. + traits: + - $ref: '#/components/messageTraits/commonHeaders' + payload: + $ref: '#/components/schemas/turnOnOffPayload' + dimLight: + name: dimLight + title: Dim light + summary: Command a particular streetlight to dim the lights. + traits: + - $ref: '#/components/messageTraits/commonHeaders' + payload: + $ref: '#/components/schemas/dimLightPayload' + schemas: + lightMeasuredPayload: + type: object + properties: + lumens: + type: integer + minimum: 0 + description: Light intensity measured in lumens. + sentAt: + $ref: '#/components/schemas/sentAt' + turnOnOffPayload: + type: object + properties: + command: + type: string + enum: + - 'on' + - 'off' + description: Whether to turn on or off the light. + sentAt: + $ref: '#/components/schemas/sentAt' + dimLightPayload: + type: object + properties: + percentage: + type: integer + description: Percentage to which the light should be dimmed to. + minimum: 0 + maximum: 100 + sentAt: + $ref: '#/components/schemas/sentAt' + sentAt: + type: string + format: date-time + description: Date and time when the message was sent. + securitySchemes: + saslScram: + type: scramSha256 + description: Provide your username and password for SASL/SCRAM authentication + certs: + type: X509 + description: Download the certificate files from service provider + parameters: + streetlightId: + description: The ID of the streetlight. + messageTraits: + commonHeaders: + headers: + type: object + properties: + my-app-header: + type: integer + minimum: 0 + maximum: 100 + operationTraits: + kafka: + bindings: + kafka: + clientId: + type: string + enum: + - my-app-id From ece1b2ef28cb4fe02835d4461ec759e920527c82 Mon Sep 17 00:00:00 2001 From: Maschga Date: Thu, 6 Feb 2025 19:15:20 +0100 Subject: [PATCH 06/35] add AsyncUiWrapper --- .../{mqtt-api.md => mqtt-api.mdx} | 4 +++ src/components/AsyncUiWrapper.jsx | 34 +++++++++++++++++++ 2 files changed, 38 insertions(+) rename docs/integrations/{mqtt-api.md => mqtt-api.mdx} (96%) create mode 100644 src/components/AsyncUiWrapper.jsx diff --git a/docs/integrations/mqtt-api.md b/docs/integrations/mqtt-api.mdx similarity index 96% rename from docs/integrations/mqtt-api.md rename to docs/integrations/mqtt-api.mdx index 0cfbe7da0..9ae9b2ecd 100644 --- a/docs/integrations/mqtt-api.md +++ b/docs/integrations/mqtt-api.mdx @@ -2,11 +2,15 @@ sidebar_position: 2 --- +import AsyncUiWrapper from "../../src/components/AsyncUiWrapper"; + # MQTT API Die MQTT API folgt der [REST API](./rest-api) Struktur. Alle API IDs (z.B. die Loadpoint ID) beginnen bei `1`. + + - `evcc`: root topic - `evcc/status`: status (`online`/`offline`) - `evcc/updated`: timestamp of last update diff --git a/src/components/AsyncUiWrapper.jsx b/src/components/AsyncUiWrapper.jsx new file mode 100644 index 000000000..1139d44e2 --- /dev/null +++ b/src/components/AsyncUiWrapper.jsx @@ -0,0 +1,34 @@ +import AsyncApiComponent from "@asyncapi/react-component"; + +const configs = {}; +const customCss = ""; + +export default () => { + const containerRef = useRef(null); + + useEffect(() => { + if (containerRef.current?.attachShadow) { + try { + const shadowRoot = containerRef.current.attachShadow({ mode: "open" }); + const style = document.createElement("style"); + style.textContent = customCss; + shadowRoot.appendChild(style); + + const div = document.createElement("div"); + shadowRoot.appendChild(div); + + const root = ReactDOM.createRoot(div); + root.render( + , + ); + } catch (e) { + console.error(e); + } + } + }, []); + + return
; +}; From 01157d08a3eeca008e2c7c29ca83214fd3e3bf5e Mon Sep 17 00:00:00 2001 From: Maschga Date: Thu, 6 Feb 2025 19:19:55 +0100 Subject: [PATCH 07/35] Revert "add AsyncUiWrapper" This reverts commit 5c978d0d71d6c4f79cac3c6c57df93d4091b2b5c. --- .../{mqtt-api.mdx => mqtt-api.md} | 4 --- src/components/AsyncUiWrapper.jsx | 34 ------------------- 2 files changed, 38 deletions(-) rename docs/integrations/{mqtt-api.mdx => mqtt-api.md} (96%) delete mode 100644 src/components/AsyncUiWrapper.jsx diff --git a/docs/integrations/mqtt-api.mdx b/docs/integrations/mqtt-api.md similarity index 96% rename from docs/integrations/mqtt-api.mdx rename to docs/integrations/mqtt-api.md index 9ae9b2ecd..0cfbe7da0 100644 --- a/docs/integrations/mqtt-api.mdx +++ b/docs/integrations/mqtt-api.md @@ -2,15 +2,11 @@ sidebar_position: 2 --- -import AsyncUiWrapper from "../../src/components/AsyncUiWrapper"; - # MQTT API Die MQTT API folgt der [REST API](./rest-api) Struktur. Alle API IDs (z.B. die Loadpoint ID) beginnen bei `1`. - - - `evcc`: root topic - `evcc/status`: status (`online`/`offline`) - `evcc/updated`: timestamp of last update diff --git a/src/components/AsyncUiWrapper.jsx b/src/components/AsyncUiWrapper.jsx deleted file mode 100644 index 1139d44e2..000000000 --- a/src/components/AsyncUiWrapper.jsx +++ /dev/null @@ -1,34 +0,0 @@ -import AsyncApiComponent from "@asyncapi/react-component"; - -const configs = {}; -const customCss = ""; - -export default () => { - const containerRef = useRef(null); - - useEffect(() => { - if (containerRef.current?.attachShadow) { - try { - const shadowRoot = containerRef.current.attachShadow({ mode: "open" }); - const style = document.createElement("style"); - style.textContent = customCss; - shadowRoot.appendChild(style); - - const div = document.createElement("div"); - shadowRoot.appendChild(div); - - const root = ReactDOM.createRoot(div); - root.render( - , - ); - } catch (e) { - console.error(e); - } - } - }, []); - - return
; -}; From ed45f6e33b2bb04523ebc2831d6615d6daa4d509 Mon Sep 17 00:00:00 2001 From: Maschga Date: Thu, 6 Feb 2025 19:19:59 +0100 Subject: [PATCH 08/35] Revert "Create mqtt-api.yaml" This reverts commit dd51ca8f653ace763669829fe02cb222b9e270ee. --- static/mqtt-api.yaml | 206 ------------------------------------------- 1 file changed, 206 deletions(-) delete mode 100644 static/mqtt-api.yaml diff --git a/static/mqtt-api.yaml b/static/mqtt-api.yaml deleted file mode 100644 index 09ca0ba84..000000000 --- a/static/mqtt-api.yaml +++ /dev/null @@ -1,206 +0,0 @@ -asyncapi: 3.0.0 -info: - title: Streetlights Kafka API - version: 1.0.0 - description: |- - The Smartylighting Streetlights API allows you to remotely manage the city - lights. - ### Check out its awesome features: - - * Turn a specific streetlight on/off 🌃 - * Dim a specific streetlight 😎 - * Receive real-time information about environmental lighting conditions 📈 - license: - name: Apache 2.0 - url: https://www.apache.org/licenses/LICENSE-2.0 -defaultContentType: application/json -servers: - scram-connections: - host: test.mykafkacluster.org:18092 - protocol: kafka-secure - description: Test broker secured with scramSha256 - security: - - $ref: '#/components/securitySchemes/saslScram' - tags: - - name: env:test-scram - description: >- - This environment is meant for running internal tests through - scramSha256 - - name: kind:remote - description: This server is a remote server. Not exposed by the application - - name: visibility:private - description: This resource is private and only available to certain users - mtls-connections: - host: test.mykafkacluster.org:28092 - protocol: kafka-secure - description: Test broker secured with X509 - security: - - $ref: '#/components/securitySchemes/certs' - tags: - - name: env:test-mtls - description: This environment is meant for running internal tests through mtls - - name: kind:remote - description: This server is a remote server. Not exposed by the application - - name: visibility:private - description: This resource is private and only available to certain users -channels: - lightingMeasured: - address: smartylighting.streetlights.1.0.event.{streetlightId}.lighting.measured - messages: - lightMeasured: - $ref: '#/components/messages/lightMeasured' - description: The topic on which measured values may be produced and consumed. - parameters: - streetlightId: - $ref: '#/components/parameters/streetlightId' - lightTurnOn: - address: smartylighting.streetlights.1.0.action.{streetlightId}.turn.on - messages: - turnOn: - $ref: '#/components/messages/turnOnOff' - parameters: - streetlightId: - $ref: '#/components/parameters/streetlightId' - lightTurnOff: - address: smartylighting.streetlights.1.0.action.{streetlightId}.turn.off - messages: - turnOff: - $ref: '#/components/messages/turnOnOff' - parameters: - streetlightId: - $ref: '#/components/parameters/streetlightId' - lightsDim: - address: smartylighting.streetlights.1.0.action.{streetlightId}.dim - messages: - dimLight: - $ref: '#/components/messages/dimLight' - parameters: - streetlightId: - $ref: '#/components/parameters/streetlightId' -operations: - receiveLightMeasurement: - action: receive - channel: - $ref: '#/channels/lightingMeasured' - summary: >- - Inform about environmental lighting conditions of a particular - streetlight. - traits: - - $ref: '#/components/operationTraits/kafka' - messages: - - $ref: '#/channels/lightingMeasured/messages/lightMeasured' - turnOn: - action: send - channel: - $ref: '#/channels/lightTurnOn' - traits: - - $ref: '#/components/operationTraits/kafka' - messages: - - $ref: '#/channels/lightTurnOn/messages/turnOn' - turnOff: - action: send - channel: - $ref: '#/channels/lightTurnOff' - traits: - - $ref: '#/components/operationTraits/kafka' - messages: - - $ref: '#/channels/lightTurnOff/messages/turnOff' - dimLight: - action: send - channel: - $ref: '#/channels/lightsDim' - traits: - - $ref: '#/components/operationTraits/kafka' - messages: - - $ref: '#/channels/lightsDim/messages/dimLight' -components: - messages: - lightMeasured: - name: lightMeasured - title: Light measured - summary: >- - Inform about environmental lighting conditions of a particular - streetlight. - contentType: application/json - traits: - - $ref: '#/components/messageTraits/commonHeaders' - payload: - $ref: '#/components/schemas/lightMeasuredPayload' - turnOnOff: - name: turnOnOff - title: Turn on/off - summary: Command a particular streetlight to turn the lights on or off. - traits: - - $ref: '#/components/messageTraits/commonHeaders' - payload: - $ref: '#/components/schemas/turnOnOffPayload' - dimLight: - name: dimLight - title: Dim light - summary: Command a particular streetlight to dim the lights. - traits: - - $ref: '#/components/messageTraits/commonHeaders' - payload: - $ref: '#/components/schemas/dimLightPayload' - schemas: - lightMeasuredPayload: - type: object - properties: - lumens: - type: integer - minimum: 0 - description: Light intensity measured in lumens. - sentAt: - $ref: '#/components/schemas/sentAt' - turnOnOffPayload: - type: object - properties: - command: - type: string - enum: - - 'on' - - 'off' - description: Whether to turn on or off the light. - sentAt: - $ref: '#/components/schemas/sentAt' - dimLightPayload: - type: object - properties: - percentage: - type: integer - description: Percentage to which the light should be dimmed to. - minimum: 0 - maximum: 100 - sentAt: - $ref: '#/components/schemas/sentAt' - sentAt: - type: string - format: date-time - description: Date and time when the message was sent. - securitySchemes: - saslScram: - type: scramSha256 - description: Provide your username and password for SASL/SCRAM authentication - certs: - type: X509 - description: Download the certificate files from service provider - parameters: - streetlightId: - description: The ID of the streetlight. - messageTraits: - commonHeaders: - headers: - type: object - properties: - my-app-header: - type: integer - minimum: 0 - maximum: 100 - operationTraits: - kafka: - bindings: - kafka: - clientId: - type: string - enum: - - my-app-id From d121922649728295d6a40e5fdfb7bee9b1e294be Mon Sep 17 00:00:00 2001 From: Maschga Date: Thu, 6 Feb 2025 19:20:04 +0100 Subject: [PATCH 09/35] Revert "install @asyncapi/react-component" This reverts commit 83634d7732e59f0b96c8b793486136b1c4fd5c3c. --- package-lock.json | 2239 +-------------------------------------------- package.json | 1 - 2 files changed, 30 insertions(+), 2210 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5095ff525..27ee3991f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,6 @@ "name": "evcc-docs", "version": "0.0.0", "dependencies": { - "@asyncapi/react-component": "^2.5.1", "@docusaurus/core": "^3.7.0", "@docusaurus/faster": "^3.7.0", "@docusaurus/plugin-client-redirects": "^3.7.0", @@ -298,133 +297,6 @@ "url": "https://github.com/sponsors/antfu" } }, - "node_modules/@asamuzakjp/css-color": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-2.8.3.tgz", - "integrity": "sha512-GIc76d9UI1hCvOATjZPyHFmE5qhRccp3/zGfMPapK3jBi+yocEzp6BBB0UnfRYP9NP4FANqUZYb0hnfs3TM3hw==", - "license": "MIT", - "dependencies": { - "@csstools/css-calc": "^2.1.1", - "@csstools/css-color-parser": "^3.0.7", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "lru-cache": "^10.4.3" - } - }, - "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "license": "ISC" - }, - "node_modules/@asyncapi/avro-schema-parser": { - "version": "3.0.24", - "resolved": "https://registry.npmjs.org/@asyncapi/avro-schema-parser/-/avro-schema-parser-3.0.24.tgz", - "integrity": "sha512-YMyr2S2heMrWHRyECknjHeejlZl5exUSv9nD1gTejAT13fSf0PqIRydZ9ZuoglCLBg55AeehypR2zLIBu/9kHQ==", - "license": "Apache-2.0", - "dependencies": { - "@asyncapi/parser": "^3.1.0", - "@types/json-schema": "^7.0.11", - "avsc": "^5.7.6" - } - }, - "node_modules/@asyncapi/openapi-schema-parser": { - "version": "3.0.24", - "resolved": "https://registry.npmjs.org/@asyncapi/openapi-schema-parser/-/openapi-schema-parser-3.0.24.tgz", - "integrity": "sha512-7wz2yVDedJMS+TzOuqCvRWJMc6pNHICKZcOhnW6ZvyVLAh7hYIqQE1WA4OoXT4cKVbwSU3V2Q4bZagSsAIQd6Q==", - "license": "Apache-2.0", - "dependencies": { - "@asyncapi/parser": "^3.1.0", - "@openapi-contrib/openapi-schema-to-json-schema": "~3.2.0", - "ajv": "^8.11.0", - "ajv-errors": "^3.0.0", - "ajv-formats": "^2.1.1" - } - }, - "node_modules/@asyncapi/parser": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-3.4.0.tgz", - "integrity": "sha512-Sxn74oHiZSU6+cVeZy62iPZMFMvKp4jupMFHelSICCMw1qELmUHPvuZSr+ZHDmNGgHcEpzJM5HN02kR7T4g+PQ==", - "license": "Apache-2.0", - "dependencies": { - "@asyncapi/specs": "^6.8.0", - "@openapi-contrib/openapi-schema-to-json-schema": "~3.2.0", - "@stoplight/json": "3.21.0", - "@stoplight/json-ref-readers": "^1.2.2", - "@stoplight/json-ref-resolver": "^3.1.5", - "@stoplight/spectral-core": "^1.18.3", - "@stoplight/spectral-functions": "^1.7.2", - "@stoplight/spectral-parsers": "^1.0.2", - "@stoplight/spectral-ref-resolver": "^1.0.3", - "@stoplight/types": "^13.12.0", - "@types/json-schema": "^7.0.11", - "@types/urijs": "^1.19.19", - "ajv": "^8.17.1", - "ajv-errors": "^3.0.0", - "ajv-formats": "^2.1.1", - "avsc": "^5.7.5", - "js-yaml": "^4.1.0", - "jsonpath-plus": "^10.0.0", - "node-fetch": "2.6.7" - } - }, - "node_modules/@asyncapi/protobuf-schema-parser": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@asyncapi/protobuf-schema-parser/-/protobuf-schema-parser-3.4.0.tgz", - "integrity": "sha512-aBBj8pKeYXJqXNRpw45mb4eBQ2LAA6ul9hMnDjvQ+YYyax58DmHqHvG9sDvFBlWBQM3KYQrC1GJG6Q6MDXCsNQ==", - "license": "Apache-2.0", - "dependencies": { - "@asyncapi/parser": "^3.4.0", - "@types/protocol-buffers-schema": "^3.4.3", - "protobufjs": "^7.4.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@asyncapi/react-component": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@asyncapi/react-component/-/react-component-2.5.1.tgz", - "integrity": "sha512-/HPIMCcrKHsyzUHlN0DG4z4USkZXKJ6hKr4gnw1pPUfSHIteV2cOUg7SP9U9hdjLusCijjbH1Oqjyg6LYiMgaQ==", - "license": "Apache-2.0", - "dependencies": { - "@asyncapi/avro-schema-parser": "^3.0.24", - "@asyncapi/openapi-schema-parser": "^3.0.24", - "@asyncapi/parser": "^3.3.0", - "@asyncapi/protobuf-schema-parser": "^3.4.0", - "highlight.js": "^10.7.2", - "isomorphic-dompurify": "^2.14.0", - "marked": "^4.0.14", - "openapi-sampler": "^1.2.1", - "react-error-boundary": "^4.1.2", - "use-resize-observer": "^9.1.0" - }, - "peerDependencies": { - "react": ">=18.0.0", - "react-dom": ">=18.0.0" - } - }, - "node_modules/@asyncapi/react-component/node_modules/marked": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", - "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", - "license": "MIT", - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/@asyncapi/specs": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/@asyncapi/specs/-/specs-6.8.1.tgz", - "integrity": "sha512-czHoAk3PeXTLR+X8IUaD+IpT+g+zUvkcgMDJVothBsan+oHN3jfcFcFUNdOPAAFoUCQN1hXF1dWuphWy05THlA==", - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.11" - } - }, "node_modules/@babel/code-frame": { "version": "7.26.2", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", @@ -4355,48 +4227,6 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@jsep-plugin/assignment": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@jsep-plugin/assignment/-/assignment-1.3.0.tgz", - "integrity": "sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==", - "license": "MIT", - "engines": { - "node": ">= 10.16.0" - }, - "peerDependencies": { - "jsep": "^0.4.0||^1.0.0" - } - }, - "node_modules/@jsep-plugin/regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@jsep-plugin/regex/-/regex-1.0.4.tgz", - "integrity": "sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==", - "license": "MIT", - "engines": { - "node": ">= 10.16.0" - }, - "peerDependencies": { - "jsep": "^0.4.0||^1.0.0" - } - }, - "node_modules/@jsep-plugin/ternary": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@jsep-plugin/ternary/-/ternary-1.1.4.tgz", - "integrity": "sha512-ck5wiqIbqdMX6WRQztBL7ASDty9YLgJ3sSAK5ZpBzXeySvFGCzIvM6UiAI4hTZ22fEcYQVV/zhUbNscggW+Ukg==", - "license": "MIT", - "engines": { - "node": ">= 10.16.0" - }, - "peerDependencies": { - "jsep": "^0.4.0||^1.0.0" - } - }, - "node_modules/@juggle/resize-observer": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", - "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==", - "license": "Apache-2.0" - }, "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", @@ -4561,15 +4391,6 @@ "node": ">= 8" } }, - "node_modules/@openapi-contrib/openapi-schema-to-json-schema": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@openapi-contrib/openapi-schema-to-json-schema/-/openapi-schema-to-json-schema-3.2.0.tgz", - "integrity": "sha512-Gj6C0JwCr8arj0sYuslWXUBSP/KnUlEGnPW4qxlXvAl543oaNQgMgIgkQUA6vs5BCCvwTEiL8m/wdWzfl4UvSw==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3" - } - }, "node_modules/@pnpm/config.env-replace": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", @@ -4617,70 +4438,6 @@ "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", "license": "MIT" }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "license": "BSD-3-Clause", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", - "license": "BSD-3-Clause" - }, "node_modules/@puppeteer/browsers": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.3.0.tgz", @@ -4944,288 +4701,6 @@ "micromark-util-symbol": "^1.0.1" } }, - "node_modules/@stoplight/better-ajv-errors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@stoplight/better-ajv-errors/-/better-ajv-errors-1.0.3.tgz", - "integrity": "sha512-0p9uXkuB22qGdNfy3VeEhxkU5uwvp/KrBTAbrLBURv6ilxIVwanKwjMc41lQfIVgPGcOkmLbTolfFrSsueu7zA==", - "license": "Apache-2.0", - "dependencies": { - "jsonpointer": "^5.0.0", - "leven": "^3.1.0" - }, - "engines": { - "node": "^12.20 || >= 14.13" - }, - "peerDependencies": { - "ajv": ">=8" - } - }, - "node_modules/@stoplight/json": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/@stoplight/json/-/json-3.21.0.tgz", - "integrity": "sha512-5O0apqJ/t4sIevXCO3SBN9AHCEKKR/Zb4gaj7wYe5863jme9g02Q0n/GhM7ZCALkL+vGPTe4ZzTETP8TFtsw3g==", - "license": "Apache-2.0", - "dependencies": { - "@stoplight/ordered-object-literal": "^1.0.3", - "@stoplight/path": "^1.3.2", - "@stoplight/types": "^13.6.0", - "jsonc-parser": "~2.2.1", - "lodash": "^4.17.21", - "safe-stable-stringify": "^1.1" - }, - "engines": { - "node": ">=8.3.0" - } - }, - "node_modules/@stoplight/json-ref-readers": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@stoplight/json-ref-readers/-/json-ref-readers-1.2.2.tgz", - "integrity": "sha512-nty0tHUq2f1IKuFYsLM4CXLZGHdMn+X/IwEUIpeSOXt0QjMUbL0Em57iJUDzz+2MkWG83smIigNZ3fauGjqgdQ==", - "license": "Apache-2.0", - "dependencies": { - "node-fetch": "^2.6.0", - "tslib": "^1.14.1" - }, - "engines": { - "node": ">=8.3.0" - } - }, - "node_modules/@stoplight/json-ref-readers/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "license": "0BSD" - }, - "node_modules/@stoplight/json-ref-resolver": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@stoplight/json-ref-resolver/-/json-ref-resolver-3.1.6.tgz", - "integrity": "sha512-YNcWv3R3n3U6iQYBsFOiWSuRGE5su1tJSiX6pAPRVk7dP0L7lqCteXGzuVRQ0gMZqUl8v1P0+fAKxF6PLo9B5A==", - "license": "Apache-2.0", - "dependencies": { - "@stoplight/json": "^3.21.0", - "@stoplight/path": "^1.3.2", - "@stoplight/types": "^12.3.0 || ^13.0.0", - "@types/urijs": "^1.19.19", - "dependency-graph": "~0.11.0", - "fast-memoize": "^2.5.2", - "immer": "^9.0.6", - "lodash": "^4.17.21", - "tslib": "^2.6.0", - "urijs": "^1.19.11" - }, - "engines": { - "node": ">=8.3.0" - } - }, - "node_modules/@stoplight/ordered-object-literal": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@stoplight/ordered-object-literal/-/ordered-object-literal-1.0.5.tgz", - "integrity": "sha512-COTiuCU5bgMUtbIFBuyyh2/yVVzlr5Om0v5utQDgBCuQUOPgU1DwoffkTfg4UBQOvByi5foF4w4T+H9CoRe5wg==", - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, - "node_modules/@stoplight/path": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@stoplight/path/-/path-1.3.2.tgz", - "integrity": "sha512-lyIc6JUlUA8Ve5ELywPC8I2Sdnh1zc1zmbYgVarhXIp9YeAB0ReeqmGEOWNtlHkbP2DAA1AL65Wfn2ncjK/jtQ==", - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, - "node_modules/@stoplight/spectral-core": { - "version": "1.19.4", - "resolved": "https://registry.npmjs.org/@stoplight/spectral-core/-/spectral-core-1.19.4.tgz", - "integrity": "sha512-8hnZXfssTlV99SKo8J8BwMt5LsiBFHkCh0V3P7j8IPcCNl//bpG92U4TpYy7AwmUms/zCLX7sxNQC6AZ+bkfzg==", - "license": "Apache-2.0", - "dependencies": { - "@stoplight/better-ajv-errors": "1.0.3", - "@stoplight/json": "~3.21.0", - "@stoplight/path": "1.3.2", - "@stoplight/spectral-parsers": "^1.0.0", - "@stoplight/spectral-ref-resolver": "^1.0.4", - "@stoplight/spectral-runtime": "^1.1.2", - "@stoplight/types": "~13.6.0", - "@types/es-aggregate-error": "^1.0.2", - "@types/json-schema": "^7.0.11", - "ajv": "^8.17.1", - "ajv-errors": "~3.0.0", - "ajv-formats": "~2.1.0", - "es-aggregate-error": "^1.0.7", - "jsonpath-plus": "10.2.0", - "lodash": "~4.17.21", - "lodash.topath": "^4.5.2", - "minimatch": "3.1.2", - "nimma": "0.2.3", - "pony-cause": "^1.1.1", - "simple-eval": "1.0.1", - "tslib": "^2.8.1" - }, - "engines": { - "node": "^16.20 || ^18.18 || >= 20.17" - } - }, - "node_modules/@stoplight/spectral-core/node_modules/@stoplight/types": { - "version": "13.6.0", - "resolved": "https://registry.npmjs.org/@stoplight/types/-/types-13.6.0.tgz", - "integrity": "sha512-dzyuzvUjv3m1wmhPfq82lCVYGcXG0xUYgqnWfCq3PCVR4BKFhjdkHrnJ+jIDoMKvXb05AZP/ObQF6+NpDo29IQ==", - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.4", - "utility-types": "^3.10.0" - }, - "engines": { - "node": "^12.20 || >=14.13" - } - }, - "node_modules/@stoplight/spectral-formats": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@stoplight/spectral-formats/-/spectral-formats-1.8.2.tgz", - "integrity": "sha512-c06HB+rOKfe7tuxg0IdKDEA5XnjL2vrn/m/OVIIxtINtBzphZrOgtRn7epQ5bQF5SWp84Ue7UJWaGgDwVngMFw==", - "license": "Apache-2.0", - "dependencies": { - "@stoplight/json": "^3.17.0", - "@stoplight/spectral-core": "^1.19.2", - "@types/json-schema": "^7.0.7", - "tslib": "^2.8.1" - }, - "engines": { - "node": "^16.20 || ^18.18 || >= 20.17" - } - }, - "node_modules/@stoplight/spectral-functions": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@stoplight/spectral-functions/-/spectral-functions-1.9.3.tgz", - "integrity": "sha512-jy4mguk0Ddz0Vr76PHervOZeyXTUW650zVfNT2Vt9Ji3SqtTVziHjq913CBVEGFS+IQw1McUXuHVLM6YKVZ6fQ==", - "license": "Apache-2.0", - "dependencies": { - "@stoplight/better-ajv-errors": "1.0.3", - "@stoplight/json": "^3.17.1", - "@stoplight/spectral-core": "^1.19.4", - "@stoplight/spectral-formats": "^1.8.1", - "@stoplight/spectral-runtime": "^1.1.2", - "ajv": "^8.17.1", - "ajv-draft-04": "~1.0.0", - "ajv-errors": "~3.0.0", - "ajv-formats": "~2.1.0", - "lodash": "~4.17.21", - "tslib": "^2.8.1" - }, - "engines": { - "node": "^16.20 || ^18.18 || >= 20.17" - } - }, - "node_modules/@stoplight/spectral-parsers": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@stoplight/spectral-parsers/-/spectral-parsers-1.0.5.tgz", - "integrity": "sha512-ANDTp2IHWGvsQDAY85/jQi9ZrF4mRrA5bciNHX+PUxPr4DwS6iv4h+FVWJMVwcEYdpyoIdyL+SRmHdJfQEPmwQ==", - "license": "Apache-2.0", - "dependencies": { - "@stoplight/json": "~3.21.0", - "@stoplight/types": "^14.1.1", - "@stoplight/yaml": "~4.3.0", - "tslib": "^2.8.1" - }, - "engines": { - "node": "^16.20 || ^18.18 || >= 20.17" - } - }, - "node_modules/@stoplight/spectral-parsers/node_modules/@stoplight/types": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/@stoplight/types/-/types-14.1.1.tgz", - "integrity": "sha512-/kjtr+0t0tjKr+heVfviO9FrU/uGLc+QNX3fHJc19xsCNYqU7lVhaXxDmEID9BZTjG+/r9pK9xP/xU02XGg65g==", - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.4", - "utility-types": "^3.10.0" - }, - "engines": { - "node": "^12.20 || >=14.13" - } - }, - "node_modules/@stoplight/spectral-ref-resolver": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@stoplight/spectral-ref-resolver/-/spectral-ref-resolver-1.0.5.tgz", - "integrity": "sha512-gj3TieX5a9zMW29z3mBlAtDOCgN3GEc1VgZnCVlr5irmR4Qi5LuECuFItAq4pTn5Zu+sW5bqutsCH7D4PkpyAA==", - "license": "Apache-2.0", - "dependencies": { - "@stoplight/json-ref-readers": "1.2.2", - "@stoplight/json-ref-resolver": "~3.1.6", - "@stoplight/spectral-runtime": "^1.1.2", - "dependency-graph": "0.11.0", - "tslib": "^2.8.1" - }, - "engines": { - "node": "^16.20 || ^18.18 || >= 20.17" - } - }, - "node_modules/@stoplight/spectral-runtime": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@stoplight/spectral-runtime/-/spectral-runtime-1.1.3.tgz", - "integrity": "sha512-uoKSVX/OYXOEBRQN7EtAaVefl8MlyhBkDcU2aDYEGALwYXHAH+vmF3ljhZrueMA3fSWLHTL3RxWqsjeeCor6lw==", - "license": "Apache-2.0", - "dependencies": { - "@stoplight/json": "^3.20.1", - "@stoplight/path": "^1.3.2", - "@stoplight/types": "^13.6.0", - "abort-controller": "^3.0.0", - "lodash": "^4.17.21", - "node-fetch": "^2.6.7", - "tslib": "^2.8.1" - }, - "engines": { - "node": "^16.20 || ^18.18 || >= 20.17" - } - }, - "node_modules/@stoplight/types": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/@stoplight/types/-/types-13.20.0.tgz", - "integrity": "sha512-2FNTv05If7ib79VPDA/r9eUet76jewXFH2y2K5vuge6SXbRHtWBhcaRmu+6QpF4/WRNoJj5XYRSwLGXDxysBGA==", - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.4", - "utility-types": "^3.10.0" - }, - "engines": { - "node": "^12.20 || >=14.13" - } - }, - "node_modules/@stoplight/yaml": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@stoplight/yaml/-/yaml-4.3.0.tgz", - "integrity": "sha512-JZlVFE6/dYpP9tQmV0/ADfn32L9uFarHWxfcRhReKUnljz1ZiUM5zpX+PH8h5CJs6lao3TuFqnPm9IJJCEkE2w==", - "license": "Apache-2.0", - "dependencies": { - "@stoplight/ordered-object-literal": "^1.0.5", - "@stoplight/types": "^14.1.1", - "@stoplight/yaml-ast-parser": "0.0.50", - "tslib": "^2.2.0" - }, - "engines": { - "node": ">=10.8" - } - }, - "node_modules/@stoplight/yaml-ast-parser": { - "version": "0.0.50", - "resolved": "https://registry.npmjs.org/@stoplight/yaml-ast-parser/-/yaml-ast-parser-0.0.50.tgz", - "integrity": "sha512-Pb6M8TDO9DtSVla9yXSTAxmo9GVEouq5P40DWXdOie69bXogZTkgvopCq+yEvTMA0F6PEvdJmbtTV3ccIp11VQ==", - "license": "Apache-2.0" - }, - "node_modules/@stoplight/yaml/node_modules/@stoplight/types": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/@stoplight/types/-/types-14.1.1.tgz", - "integrity": "sha512-/kjtr+0t0tjKr+heVfviO9FrU/uGLc+QNX3fHJc19xsCNYqU7lVhaXxDmEID9BZTjG+/r9pK9xP/xU02XGg65g==", - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.4", - "utility-types": "^3.10.0" - }, - "engines": { - "node": "^12.20 || >=14.13" - } - }, "node_modules/@svgr/babel-plugin-add-jsx-attribute": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", @@ -6830,15 +6305,6 @@ "@types/ms": "*" } }, - "node_modules/@types/es-aggregate-error": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/es-aggregate-error/-/es-aggregate-error-1.0.6.tgz", - "integrity": "sha512-qJ7LIFp06h1QE1aVxbVd+zJP2wdaugYXYfd6JxsyRMrYHaxb6itXPogW2tz+ylUJ1n1b+JF1PHyYCfYHm0dvUg==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/eslint": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", @@ -7058,15 +6524,6 @@ "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", "license": "MIT" }, - "node_modules/@types/protocol-buffers-schema": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/@types/protocol-buffers-schema/-/protocol-buffers-schema-3.4.3.tgz", - "integrity": "sha512-8cCg6BiIj4jS0LXUFq3sndmd46yyPLYqMzvXLcTM1MRubh3sfZlQiehoCjGDxSHTqGSjjx8EtVNryIAl0njQWg==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/qs": { "version": "6.9.18", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz", @@ -7189,7 +6646,8 @@ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", "license": "MIT", - "optional": true + "optional": true, + "peer": true }, "node_modules/@types/unist": { "version": "3.0.3", @@ -7197,12 +6655,6 @@ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", "license": "MIT" }, - "node_modules/@types/urijs": { - "version": "1.19.25", - "resolved": "https://registry.npmjs.org/@types/urijs/-/urijs-1.19.25.tgz", - "integrity": "sha512-XOfUup9r3Y06nFAZh3WvO0rBU4OtlfPB/vgxpjg+NRdGU6CN6djdc6OEiH+PcqHCY6eFLo9Ista73uarf4gnBg==", - "license": "MIT" - }, "node_modules/@types/use-sync-external-store": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz", @@ -7407,18 +6859,6 @@ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "license": "Apache-2.0" }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "license": "MIT", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -7509,6 +6949,7 @@ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", "license": "MIT", + "optional": true, "engines": { "node": ">= 14" } @@ -7542,29 +6983,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ajv-draft-04": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", - "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", - "license": "MIT", - "peerDependencies": { - "ajv": "^8.5.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-3.0.0.tgz", - "integrity": "sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ==", - "license": "MIT", - "peerDependencies": { - "ajv": "^8.0.1" - } - }, "node_modules/ajv-formats": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", @@ -7753,22 +7171,6 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "license": "Python-2.0" }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", - "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "is-array-buffer": "^3.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", @@ -7784,27 +7186,6 @@ "node": ">=8" } }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", - "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/ast-types": { "version": "0.13.4", "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", @@ -7827,15 +7208,6 @@ "astring": "bin/astring" } }, - "node_modules/async-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", - "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -7897,30 +7269,6 @@ "postcss": "^8.1.0" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "license": "MIT", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/avsc": { - "version": "5.7.7", - "resolved": "https://registry.npmjs.org/avsc/-/avsc-5.7.7.tgz", - "integrity": "sha512-9cYNccliXZDByFsFliVwk5GvTq058Fj513CiR4E60ndDwmuXzTJEp/Bp8FyuRmGyYupLjHLs+JA9/CBoVS4/NQ==", - "license": "MIT", - "engines": { - "node": ">=0.11" - } - }, "node_modules/axios": { "version": "1.7.9", "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", @@ -9738,19 +9086,6 @@ "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", "license": "CC0-1.0" }, - "node_modules/cssstyle": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.2.1.tgz", - "integrity": "sha512-9+vem03dMXG7gDmZ62uqmRiMRNtinIZ9ZyuF6BdxzfOD+FdN5hretzynkn0ReS2DO2GSw76RWHs0UmJPI2zUjw==", - "license": "MIT", - "dependencies": { - "@asamuzakjp/css-color": "^2.8.2", - "rrweb-cssom": "^0.8.0" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", @@ -10318,70 +9653,6 @@ "node": ">= 14" } }, - "node_modules/data-urls": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", - "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", - "license": "MIT", - "dependencies": { - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^14.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/data-view-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", - "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", - "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/inspect-js" - } - }, - "node_modules/data-view-byte-offset": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", - "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/dayjs": { "version": "1.11.13", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", @@ -10412,12 +9683,6 @@ } } }, - "node_modules/decimal.js": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", - "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==", - "license": "MIT" - }, "node_modules/decode-named-character-reference": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", @@ -10605,15 +9870,6 @@ "node": ">= 0.8" } }, - "node_modules/dependency-graph": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", - "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -10809,6 +10065,7 @@ "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.4.tgz", "integrity": "sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==", "license": "(MPL-2.0 OR Apache-2.0)", + "peer": true, "optionalDependencies": { "@types/trusted-types": "^2.0.7" } @@ -11002,93 +10259,6 @@ "is-arrayish": "^0.2.1" } }, - "node_modules/es-abstract": { - "version": "1.23.9", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", - "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.2", - "arraybuffer.prototype.slice": "^1.0.4", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "data-view-buffer": "^1.0.2", - "data-view-byte-length": "^1.0.2", - "data-view-byte-offset": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.1.0", - "es-to-primitive": "^1.3.0", - "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.0", - "get-symbol-description": "^1.1.0", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "internal-slot": "^1.1.0", - "is-array-buffer": "^3.0.5", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.2", - "is-regex": "^1.2.1", - "is-shared-array-buffer": "^1.0.4", - "is-string": "^1.1.1", - "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.0", - "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.7", - "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.3", - "safe-array-concat": "^1.1.3", - "safe-push-apply": "^1.0.0", - "safe-regex-test": "^1.1.0", - "set-proto": "^1.0.0", - "string.prototype.trim": "^1.2.10", - "string.prototype.trimend": "^1.0.9", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.3", - "typed-array-byte-length": "^1.0.3", - "typed-array-byte-offset": "^1.0.4", - "typed-array-length": "^1.0.7", - "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.18" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-aggregate-error": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/es-aggregate-error/-/es-aggregate-error-1.0.13.tgz", - "integrity": "sha512-KkzhUUuD2CUMqEc8JEqsXEMDHzDPE8RCjZeUBitsnB1eNcAJWQPiciKsMXe3Yytj4Flw1XLl46Qcf9OxvZha7A==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "globalthis": "^1.0.3", - "has-property-descriptors": "^1.0.2", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/es-define-property": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", @@ -11125,38 +10295,6 @@ "node": ">= 0.4" } }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", - "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7", - "is-date-object": "^1.0.5", - "is-symbol": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/esast-util-from-estree": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", @@ -11485,15 +10623,6 @@ "node": ">= 0.8" } }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -11712,12 +10841,6 @@ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "license": "MIT" }, - "node_modules/fast-memoize": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/fast-memoize/-/fast-memoize-2.5.2.tgz", - "integrity": "sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==", - "license": "MIT" - }, "node_modules/fast-uri": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", @@ -11734,28 +10857,6 @@ ], "license": "BSD-3-Clause" }, - "node_modules/fast-xml-parser": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.1.tgz", - "integrity": "sha512-y655CeyUQ+jj7KBbYMc4FG01V8ZQqjN+gDYGJ50RtfsUB8iG9AmwmwoAgeKLJdmueKKMrH1RJ7yXHTSoczdv5w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" - }, - { - "type": "paypal", - "url": "https://paypal.me/naturalintelligence" - } - ], - "license": "MIT", - "dependencies": { - "strnum": "^1.0.5" - }, - "bin": { - "fxparser": "src/cli/cli.js" - } - }, "node_modules/fastq": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz", @@ -12020,27 +11121,6 @@ } } }, - "node_modules/for-each": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.4.tgz", - "integrity": "sha512-kKaIINnFpzW6ffJNDjjyjrk21BkDx38c0xa/klsT8VzLCaMEefv4ZTacrcVR4DmgTeBra++jMDAfS/tS799YDw==", - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/foreach": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz", - "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==", - "license": "MIT" - }, "node_modules/fork-ts-checker-webpack-plugin": { "version": "6.5.3", "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", @@ -12280,35 +11360,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/function.prototype.name": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", - "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "functions-have-names": "^1.2.3", - "hasown": "^2.0.2", - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -12387,29 +11438,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-symbol-description": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", - "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "node_modules/get-uri": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.4.tgz", + "integrity": "sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==", "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-uri": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.4.tgz", - "integrity": "sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==", - "license": "MIT", - "optional": true, + "optional": true, "dependencies": { "basic-ftp": "^5.0.2", "data-uri-to-buffer": "^6.0.2", @@ -12535,22 +11569,6 @@ "node": ">=4" } }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "license": "MIT", - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -12709,18 +11727,6 @@ "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "license": "MIT" }, - "node_modules/has-bigints": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", - "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -12742,21 +11748,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-proto": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", - "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-symbols": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", @@ -12769,21 +11760,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-yarn": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", @@ -13947,18 +12923,6 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/html-encoding-sniffer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", - "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", - "license": "MIT", - "dependencies": { - "whatwg-encoding": "^3.1.1" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/html-entities": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", @@ -14167,6 +13131,7 @@ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "license": "MIT", + "optional": true, "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" @@ -14229,6 +13194,7 @@ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "license": "MIT", + "optional": true, "dependencies": { "agent-base": "^7.1.2", "debug": "4" @@ -14251,6 +13217,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "license": "MIT", + "peer": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -14414,20 +13381,6 @@ "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==", "license": "MIT" }, - "node_modules/internal-slot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", - "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/internmap": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", @@ -14503,63 +13456,12 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/is-array-buffer": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", - "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "license": "MIT" }, - "node_modules/is-async-function": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", - "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", - "license": "MIT", - "dependencies": { - "async-function": "^1.0.0", - "call-bound": "^1.0.3", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", - "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -14572,22 +13474,6 @@ "node": ">=8" } }, - "node_modules/is-boolean-object": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", - "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-buffer": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", @@ -14612,18 +13498,6 @@ "node": ">=4" } }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-ci": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", @@ -14651,39 +13525,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-data-view": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", - "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", - "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-decimal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", @@ -14727,21 +13568,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-finalizationregistry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", - "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -14751,24 +13577,6 @@ "node": ">=8" } }, - "node_modules/is-generator-function": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", - "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "get-proto": "^1.0.0", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -14807,18 +13615,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-npm": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", @@ -14840,22 +13636,6 @@ "node": ">=0.12.0" } }, - "node_modules/is-number-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", - "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", @@ -14907,30 +13687,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "license": "MIT" - }, - "node_modules/is-regex": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", - "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", @@ -14949,142 +13705,24 @@ "node": ">=6" } }, - "node_modules/is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", - "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", - "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", - "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-symbols": "^1.1.0", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", - "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", - "license": "MIT", - "dependencies": { - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "license": "MIT" - }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", - "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", - "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "license": "MIT" + }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -15127,19 +13765,6 @@ "node": ">=0.10.0" } }, - "node_modules/isomorphic-dompurify": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/isomorphic-dompurify/-/isomorphic-dompurify-2.21.0.tgz", - "integrity": "sha512-IjBG/D6ApEiO6ciXvrzPqbE4xOLbjRTshSWRSeeycQVhvsxf1O9PhA7LoqwMYS0/2PKLNFJRugwsNV5UihtLxQ==", - "license": "MIT", - "dependencies": { - "dompurify": "^3.2.3", - "jsdom": "^26.0.0" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/isomorphic-rslog": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/isomorphic-rslog/-/isomorphic-rslog-0.0.6.tgz", @@ -15314,55 +13939,6 @@ "license": "MIT", "optional": true }, - "node_modules/jsdom": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.0.0.tgz", - "integrity": "sha512-BZYDGVAIriBWTpIxYzrXjv3E/4u8+/pSG5bQdIYCbNCGOvsPkDQfTVLAIXAf9ETdCpduCVTkDe2NNZ8NIwUVzw==", - "license": "MIT", - "dependencies": { - "cssstyle": "^4.2.1", - "data-urls": "^5.0.0", - "decimal.js": "^10.4.3", - "form-data": "^4.0.1", - "html-encoding-sniffer": "^4.0.0", - "http-proxy-agent": "^7.0.2", - "https-proxy-agent": "^7.0.6", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.16", - "parse5": "^7.2.1", - "rrweb-cssom": "^0.8.0", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^5.0.0", - "w3c-xmlserializer": "^5.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^3.1.1", - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^14.1.0", - "ws": "^8.18.0", - "xml-name-validator": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "canvas": "^3.0.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsep": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz", - "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==", - "license": "MIT", - "engines": { - "node": ">= 10.16.0" - } - }, "node_modules/jsesc": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", @@ -15387,15 +13963,6 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "license": "MIT" }, - "node_modules/json-pointer": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.2.tgz", - "integrity": "sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==", - "license": "MIT", - "dependencies": { - "foreach": "^2.0.4" - } - }, "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -15414,12 +13981,6 @@ "node": ">=6" } }, - "node_modules/jsonc-parser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.2.1.tgz", - "integrity": "sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w==", - "license": "MIT" - }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -15432,33 +13993,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/jsonpath-plus": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-10.2.0.tgz", - "integrity": "sha512-T9V+8iNYKFL2n2rF+w02LBOT2JjDnTjioaNFrxRy0Bv1y/hNsqR/EBK7Ojy2ythRHwmz2cRIls+9JitQGZC/sw==", - "license": "MIT", - "dependencies": { - "@jsep-plugin/assignment": "^1.3.0", - "@jsep-plugin/regex": "^1.0.4", - "jsep": "^1.4.0" - }, - "bin": { - "jsonpath": "bin/jsonpath-cli.js", - "jsonpath-plus": "bin/jsonpath-cli.js" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/jsonpointer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", - "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/katex": { "version": "0.16.21", "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.21.tgz", @@ -15910,24 +14444,12 @@ "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", "license": "MIT" }, - "node_modules/lodash.topath": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/lodash.topath/-/lodash.topath-4.5.2.tgz", - "integrity": "sha512-1/W4dM+35DwvE/iEd1M9ekewOSTlpFekhw9mhAtrwjVqUr83/ilQiyAvmg4tVX7Unkcfl1KC+i9WdaT4B6aQcg==", - "license": "MIT" - }, "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", "license": "MIT" }, - "node_modules/long": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.4.tgz", - "integrity": "sha512-qtzLbJE8hq7VabR3mISmVGtoXP8KGc2Z/AT8OuqlYD7JTR3oqrgwdjnk07wpj1twXxYmgDXgoKVWUG/fReSzHg==", - "license": "Apache-2.0" - }, "node_modules/longest-streak": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", @@ -19619,25 +18141,6 @@ "node": ">= 0.4.0" } }, - "node_modules/nimma": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/nimma/-/nimma-0.2.3.tgz", - "integrity": "sha512-1ZOI8J+1PKKGceo/5CT5GfQOG6H8I2BencSK06YarZ2wXwH37BSSUWldqJmMJYA5JfqDqffxDXynt6f11AyKcA==", - "license": "Apache-2.0", - "dependencies": { - "@jsep-plugin/regex": "^1.0.1", - "@jsep-plugin/ternary": "^1.0.2", - "astring": "^1.8.1", - "jsep": "^1.2.0" - }, - "engines": { - "node": "^12.20 || >=14.13" - }, - "optionalDependencies": { - "jsonpath-plus": "^6.0.1 || ^10.1.0", - "lodash.topath": "^4.5.2" - } - }, "node_modules/no-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", @@ -19698,26 +18201,6 @@ "node": ">=18" } }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, "node_modules/node-fetch-commonjs": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/node-fetch-commonjs/-/node-fetch-commonjs-3.3.2.tgz", @@ -19735,28 +18218,6 @@ "url": "https://opencollective.com/node-fetch" } }, - "node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "license": "MIT" - }, - "node_modules/node-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "license": "BSD-2-Clause" - }, - "node_modules/node-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/node-forge": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", @@ -19913,12 +18374,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/nwsapi": { - "version": "2.2.16", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.16.tgz", - "integrity": "sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==", - "license": "MIT" - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -20049,17 +18504,6 @@ "node": ">=12.20.0" } }, - "node_modules/openapi-sampler": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.6.1.tgz", - "integrity": "sha512-s1cIatOqrrhSj2tmJ4abFYZQK6l5v+V4toO5q1Pa0DyN8mtyqy2I+Qrj5W9vOELEtybIMQs/TBZGVO/DtTFK8w==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.7", - "fast-xml-parser": "^4.5.0", - "json-pointer": "0.6.2" - } - }, "node_modules/openapi-server-url-templating": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/openapi-server-url-templating/-/openapi-server-url-templating-1.3.0.tgz", @@ -20081,23 +18525,6 @@ "opener": "bin/opener-bin.js" } }, - "node_modules/own-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", - "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.6", - "object-keys": "^1.1.1", - "safe-push-apply": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/p-cancelable": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", @@ -20562,24 +18989,6 @@ "points-on-curve": "0.2.0" } }, - "node_modules/pony-cause": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pony-cause/-/pony-cause-1.1.1.tgz", - "integrity": "sha512-PxkIc/2ZpLiEzQXu5YRDOUgBlfGYBY8156HY5ZcRAwwonMk5W/MrJP2LLkG/hF7GEQzaHo2aS7ho6ZLCOvf+6g==", - "license": "0BSD", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/postcss": { "version": "8.5.1", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", @@ -22157,30 +20566,6 @@ "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", "license": "ISC" }, - "node_modules/protobufjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", - "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", - "hasInstallScript": true, - "license": "BSD-3-Clause", - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -22765,18 +21150,6 @@ "react": "^18.3.1" } }, - "node_modules/react-error-boundary": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-4.1.2.tgz", - "integrity": "sha512-GQDxZ5Jd+Aq/qUxbCm1UtzmL/s++V7zKgE8yMktJiCQXCCFZnMZh9ng+6/Ne6PjNSXH0L9CjeOEREfRnq6Duag==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.5" - }, - "peerDependencies": { - "react": ">=16.13.1" - } - }, "node_modules/react-error-overlay": { "version": "6.0.11", "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", @@ -23141,28 +21514,6 @@ "immutable": "^3.8.1 || ^4.0.0-rc.1" } }, - "node_modules/reflect.getprototypeof": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", - "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.1", - "which-builtin-type": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/refractor": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/refractor/-/refractor-3.6.0.tgz", @@ -23387,26 +21738,6 @@ "@babel/runtime": "^7.8.4" } }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", - "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/regexpu-core": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", @@ -24214,12 +22545,6 @@ "points-on-path": "^0.2.1" } }, - "node_modules/rrweb-cssom": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", - "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==", - "license": "MIT" - }, "node_modules/rtlcss": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.3.0.tgz", @@ -24281,31 +22606,6 @@ "node": ">=6" } }, - "node_modules/safe-array-concat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", - "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "has-symbols": "^1.1.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-array-concat/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "license": "MIT" - }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -24326,51 +22626,6 @@ ], "license": "MIT" }, - "node_modules/safe-push-apply": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", - "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-push-apply/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "license": "MIT" - }, - "node_modules/safe-regex-test": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", - "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-regex": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-stable-stringify": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-1.1.1.tgz", - "integrity": "sha512-ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw==", - "license": "MIT" - }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -24383,18 +22638,6 @@ "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", "license": "ISC" }, - "node_modules/saxes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", - "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", - "license": "ISC", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=v12.22.7" - } - }, "node_modules/scheduler": { "version": "0.23.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", @@ -24698,46 +22941,17 @@ } }, "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-proto": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", - "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "license": "MIT", "dependencies": { - "dunder-proto": "^1.0.1", + "define-data-property": "^1.1.4", "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0" + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -24918,18 +23132,6 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "license": "ISC" }, - "node_modules/simple-eval": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-eval/-/simple-eval-1.0.1.tgz", - "integrity": "sha512-LH7FpTAkeD+y5xQC4fzS+tFtaNlvt3Ib1zKzvhjv/Y+cioV4zIuw4IZr2yhRLu67CWL7FR9/6KXKnjRoZTvGGQ==", - "license": "MIT", - "dependencies": { - "jsep": "^1.3.6" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/sirv": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", @@ -25254,62 +23456,6 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/string.prototype.trim": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", - "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-data-property": "^1.1.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-object-atoms": "^1.0.0", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", - "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/stringify-entities": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", @@ -25380,12 +23526,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strnum": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", - "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", - "license": "MIT" - }, "node_modules/style-to-object": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", @@ -25579,12 +23719,6 @@ "webpack": ">=2" } }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "license": "MIT" - }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -25756,24 +23890,6 @@ "license": "MIT", "peer": true }, - "node_modules/tldts": { - "version": "6.1.76", - "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.76.tgz", - "integrity": "sha512-6U2ti64/nppsDxQs9hw8ephA3nO6nSQvVVfxwRw8wLQPFtLI1cFI1a1eP22g+LUP+1TA2pKKjUTwWB+K2coqmQ==", - "license": "MIT", - "dependencies": { - "tldts-core": "^6.1.76" - }, - "bin": { - "tldts": "bin/cli.js" - } - }, - "node_modules/tldts-core": { - "version": "6.1.76", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.76.tgz", - "integrity": "sha512-uzhJ02RaMzgQR3yPoeE65DrcHI6LoM4saUqXOt/b5hmb3+mc4YWpdSeAQqVqRUlQ14q8ZuLRWyBR1ictK1dzzg==", - "license": "MIT" - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -25810,30 +23926,6 @@ "node": ">=6" } }, - "node_modules/tough-cookie": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.0.tgz", - "integrity": "sha512-rvZUv+7MoBYTiDmFPBrhL7Ujx9Sk+q9wwm22x8c8T5IJaR+Wsyc7TNxbVxo84kZoRJZZMazowFLqpankBEQrGg==", - "license": "BSD-3-Clause", - "dependencies": { - "tldts": "^6.1.32" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/tr46": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz", - "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==", - "license": "MIT", - "dependencies": { - "punycode": "^2.3.1" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/tree-sitter": { "version": "0.21.1", "resolved": "https://registry.npmjs.org/tree-sitter/-/tree-sitter-0.21.1.tgz", @@ -25969,80 +24061,6 @@ "node": ">= 0.6" } }, - "node_modules/typed-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", - "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", - "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", - "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.15", - "reflect.getprototypeof": "^1.0.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", - "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0", - "reflect.getprototypeof": "^1.0.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", @@ -26088,24 +24106,6 @@ "integrity": "sha512-Wlj/pum6dQtGTPD/lclDtoVPkSfpjPfy1dwnnKw/sZP5DpBH9fLhBgQfsqNhe5/gS1D+vkZUuB771NRMUPA5CA==", "license": "MIT" }, - "node_modules/unbox-primitive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", - "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-bigints": "^1.0.2", - "has-symbols": "^1.1.0", - "which-boxed-primitive": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/unbzip2-stream": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", @@ -26479,12 +24479,6 @@ "punycode": "^2.1.0" } }, - "node_modules/urijs": { - "version": "1.19.11", - "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz", - "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==", - "license": "MIT" - }, "node_modules/url-loader": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", @@ -26599,19 +24593,6 @@ "license": "MIT", "optional": true }, - "node_modules/use-resize-observer": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/use-resize-observer/-/use-resize-observer-9.1.0.tgz", - "integrity": "sha512-R25VqO9Wb3asSD4eqtcxk8sJalvIOYBqS8MNZlpDSQ4l4xMQxC/J7Id9HoTqPq8FwULIn0PVW+OAqF2dyYbjow==", - "license": "MIT", - "dependencies": { - "@juggle/resize-observer": "^3.3.1" - }, - "peerDependencies": { - "react": "16.8.0 - 18", - "react-dom": "16.8.0 - 18" - } - }, "node_modules/use-sync-external-store": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", @@ -26860,18 +24841,6 @@ "license": "MIT", "peer": true }, - "node_modules/w3c-xmlserializer": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", - "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", - "license": "MIT", - "dependencies": { - "xml-name-validator": "^5.0.0" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/watchpack": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", @@ -26920,15 +24889,6 @@ "license": "MIT", "optional": true }, - "node_modules/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - } - }, "node_modules/webpack": { "version": "5.97.1", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.97.1.tgz", @@ -27331,40 +25291,6 @@ "node": ">=0.8.0" } }, - "node_modules/whatwg-encoding": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", - "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", - "license": "MIT", - "dependencies": { - "iconv-lite": "0.6.3" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/whatwg-mimetype": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", - "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/whatwg-url": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.1.0.tgz", - "integrity": "sha512-jlf/foYIKywAt3x/XWKZ/3rz8OSJPiWktjmk891alJUEjiVxKX9LEO92qH3hv4aJ0mN3MWPvGMCy8jQi95xK4w==", - "license": "MIT", - "dependencies": { - "tr46": "^5.0.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -27380,96 +25306,6 @@ "node": ">= 8" } }, - "node_modules/which-boxed-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", - "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", - "license": "MIT", - "dependencies": { - "is-bigint": "^1.1.0", - "is-boolean-object": "^1.2.1", - "is-number-object": "^1.1.1", - "is-string": "^1.1.1", - "is-symbol": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", - "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "function.prototype.name": "^1.1.6", - "has-tostringtag": "^1.0.2", - "is-async-function": "^2.0.0", - "is-date-object": "^1.1.0", - "is-finalizationregistry": "^1.1.0", - "is-generator-function": "^1.0.10", - "is-regex": "^1.2.1", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.1.0", - "which-collection": "^1.0.2", - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "license": "MIT" - }, - "node_modules/which-collection": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "license": "MIT", - "dependencies": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.18", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", - "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/widest-line": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", @@ -27625,21 +25461,6 @@ "xml-js": "bin/cli.js" } }, - "node_modules/xml-name-validator": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", - "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", - "license": "Apache-2.0", - "engines": { - "node": ">=18" - } - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "license": "MIT" - }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", diff --git a/package.json b/package.json index 196f245b9..36fdffbcc 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,6 @@ "write-heading-ids": "docusaurus write-heading-ids" }, "dependencies": { - "@asyncapi/react-component": "^2.5.1", "@docusaurus/core": "^3.7.0", "@docusaurus/faster": "^3.7.0", "@docusaurus/plugin-client-redirects": "^3.7.0", From 02129e7623175fa696eb193590bcbe0d3a2d65b5 Mon Sep 17 00:00:00 2001 From: Maschga Date: Fri, 21 Feb 2025 14:41:28 +0100 Subject: [PATCH 10/35] wip --- src/components/AsyncUiWrapper.jsx | 32 +++++++++++++++++-------------- static/asyncapi.css | 5 +++++ 2 files changed, 23 insertions(+), 14 deletions(-) create mode 100644 static/asyncapi.css diff --git a/src/components/AsyncUiWrapper.jsx b/src/components/AsyncUiWrapper.jsx index 1139d44e2..2ff6f3354 100644 --- a/src/components/AsyncUiWrapper.jsx +++ b/src/components/AsyncUiWrapper.jsx @@ -1,34 +1,38 @@ -import AsyncApiComponent from "@asyncapi/react-component"; +import React, { useRef, useEffect } from "react"; +import AsyncAPIStandalone from "@asyncapi/react-component/browser/standalone"; const configs = {}; -const customCss = ""; +const customCss = "@import url('/asyncapi.css');"; -export default () => { +export default function AsyncUiWrapper() { const containerRef = useRef(null); useEffect(() => { if (containerRef.current?.attachShadow) { try { const shadowRoot = containerRef.current.attachShadow({ mode: "open" }); + const style = document.createElement("style"); style.textContent = customCss; shadowRoot.appendChild(style); - const div = document.createElement("div"); - shadowRoot.appendChild(div); + const asyncDiv = document.createElement("div"); + shadowRoot.appendChild(asyncDiv); - const root = ReactDOM.createRoot(div); - root.render( - , + AsyncAPIStandalone.render( + { + schema: { + url: "/mqtt-api.yaml", + }, + config: configs, + }, + asyncDiv, ); - } catch (e) { - console.error(e); + } catch (error) { + console.error(error); } } }, []); return
; -}; +} diff --git a/static/asyncapi.css b/static/asyncapi.css new file mode 100644 index 000000000..f564223e2 --- /dev/null +++ b/static/asyncapi.css @@ -0,0 +1,5 @@ +.aui-root .hljs{display:block;overflow-x:auto;padding:.5em;background:#011627;color:#d6deeb}.aui-root .hljs-keyword{color:#c792ea;font-style:italic}.aui-root .hljs-built_in{color:#addb67;font-style:italic}.aui-root .hljs-type{color:#82aaff}.aui-root .hljs-literal{color:#ff5874}.aui-root .hljs-number{color:#f78c6c}.aui-root .hljs-regexp{color:#5ca7e4}.aui-root .hljs-string{color:#ecc48d}.aui-root .hljs-subst{color:#d3423e}.aui-root .hljs-symbol{color:#82aaff}.aui-root .hljs-class{color:#ffcb8b}.aui-root .hljs-function{color:#82aaff}.aui-root .hljs-title{color:#dcdcaa;font-style:italic}.aui-root .hljs-params{color:#7fdbca}.aui-root .hljs-comment{color:#637777;font-style:italic}.aui-root .hljs-doctag{color:#7fdbca}.aui-root .hljs-meta,.aui-root .hljs-meta-keyword{color:#82aaff}.aui-root .hljs-meta-string{color:#ecc48d}.aui-root .hljs-section{color:#82b1ff}.aui-root .hljs-attr,.aui-root .hljs-builtin-name,.aui-root .hljs-name,.aui-root .hljs-tag{color:#7fdbca}.aui-root .hljs-attribute{color:#80cbc4}.aui-root .hljs-variable{color:#addb67}.aui-root .hljs-bullet{color:#d9f5dd}.aui-root .hljs-code{color:#80cbc4}.aui-root .hljs-emphasis{color:#c792ea;font-style:italic}.aui-root .hljs-strong{color:#addb67;font-weight:700}.aui-root .hljs-formula{color:#c792ea}.aui-root .hljs-link{color:#ff869a}.aui-root .hljs-quote{color:#697098;font-style:italic}.aui-root .hljs-selector-tag{color:#ff6363}.aui-root .hljs-selector-id{color:#fad430}.aui-root .hljs-selector-class{color:#addb67;font-style:italic}.aui-root .hljs-selector-attr,.aui-root .hljs-selector-pseudo{color:#c792ea;font-style:italic}.aui-root .hljs-template-tag{color:#c792ea}.aui-root .hljs-template-variable{color:#addb67}.aui-root .hljs-addition{color:#addb67;font-style:italic}.aui-root .hljs-deletion{color:rgba(239,83,80,.5647058823529412);font-style:italic} + +/*! tailwindcss v2.2.19 | MIT License | https://tailwindcss.com*/ + +/*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */.aui-root html{-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.15;-webkit-text-size-adjust:100%}.aui-root body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji}.aui-root hr{height:0;color:inherit}.aui-root abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.aui-root b,.aui-root strong{font-weight:bolder}.aui-root code,.aui-root kbd,.aui-root pre,.aui-root samp{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}.aui-root small{font-size:80%}.aui-root sub,.aui-root sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.aui-root sub{bottom:-.25em}.aui-root sup{top:-.5em}.aui-root table{text-indent:0;border-color:inherit}.aui-root button,.aui-root input,.aui-root optgroup,.aui-root select,.aui-root textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}.aui-root button,.aui-root select{text-transform:none}.aui-root [type=button],.aui-root button{-webkit-appearance:button}.aui-root ::-moz-focus-inner{border-style:none;padding:0}.aui-root legend{padding:0}.aui-root progress{vertical-align:baseline}.aui-root ::-webkit-inner-spin-button,.aui-root ::-webkit-outer-spin-button{height:auto}.aui-root [type=search]{-webkit-appearance:textfield;outline-offset:-2px}.aui-root ::-webkit-search-decoration{-webkit-appearance:none}.aui-root ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.aui-root summary{display:list-item}.aui-root blockquote,.aui-root dd,.aui-root dl,.aui-root figure,.aui-root h1,.aui-root h2,.aui-root h3,.aui-root h4,.aui-root h5,.aui-root h6,.aui-root hr,.aui-root p,.aui-root pre{margin:0}.aui-root button{background-color:transparent;background-image:none}.aui-root fieldset{margin:0;padding:0}.aui-root ol,.aui-root ul{list-style:none;margin:0;padding:0}.aui-root html{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}.aui-root body{font-family:inherit;line-height:inherit}.aui-root *,.aui-root :after,.aui-root :before{box-sizing:border-box;border:0 solid}.aui-root hr{border-top-width:1px}.aui-root img{border-style:solid}.aui-root textarea{resize:vertical}.aui-root input::-moz-placeholder, .aui-root textarea::-moz-placeholder{opacity:1;color:#cbd5e0}.aui-root input::placeholder,.aui-root textarea::placeholder{opacity:1;color:#cbd5e0}.aui-root button{cursor:pointer}.aui-root table{border-collapse:collapse}.aui-root h1,.aui-root h2,.aui-root h3,.aui-root h4,.aui-root h5,.aui-root h6{font-size:inherit;font-weight:inherit}.aui-root a{color:inherit;text-decoration:inherit}.aui-root button,.aui-root input,.aui-root optgroup,.aui-root select,.aui-root textarea{padding:0;line-height:inherit;color:inherit}.aui-root code,.aui-root kbd,.aui-root pre,.aui-root samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.aui-root audio,.aui-root canvas,.aui-root embed,.aui-root iframe,.aui-root img,.aui-root object,.aui-root svg,.aui-root video{display:block;vertical-align:middle}.aui-root img,.aui-root video{max-width:100%;height:auto}.aui-root [hidden]{display:none}.aui-root *,.aui-root :after,.aui-root :before{--tw-border-opacity:1;border-color:rgba(203,213,224,var(--tw-border-opacity))}.aui-root .container{width:100%}@media (min-width:640px){.aui-root .container{max-width:640px}}@media (min-width:768px){.aui-root .container{max-width:768px}}@media (min-width:1024px){.aui-root .container{max-width:1024px}}@media (min-width:1280px){.aui-root .container{max-width:1280px}}@media (min-width:1536px){.aui-root .container{max-width:1536px}}.aui-root .prose{color:#4a5568;max-width:65ch}.aui-root .prose [class~=lead]{color:#718096;font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.aui-root .prose a{color:#1a202c;text-decoration:underline;font-weight:500}.aui-root .prose strong{color:#1a202c;font-weight:600}.aui-root .prose ol[type=a]{--list-counter-style:lower-alpha}.aui-root .prose ol[type=i]{--list-counter-style:lower-roman}.aui-root .prose ol[type="1"]{--list-counter-style:decimal}.aui-root .prose ol>li{position:relative;padding-left:1.75em}.aui-root .prose ol>li:before{content:counter(list-item,var(--list-counter-style,decimal)) ".";position:absolute;font-weight:400;color:#a0aec0;left:0}.aui-root .prose ul>li{position:relative;padding-left:1.75em}.aui-root .prose ul>li:before{content:"";position:absolute;background-color:#e2e8f0;border-radius:50%;width:.375em;height:.375em;top:.6875em;left:.25em}.aui-root .prose hr{border-color:#edf2f7;border-top-width:1px;margin-top:3em;margin-bottom:3em}.aui-root .prose blockquote{font-weight:500;font-style:italic;color:#1a202c;border-left-width:.25rem;border-left-color:#edf2f7;quotes:"\201C""\201D""\2018""\2019";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em}.aui-root .prose blockquote p:first-of-type:before{content:open-quote}.aui-root .prose blockquote p:last-of-type:after{content:close-quote}.aui-root .prose h1{color:#1a202c;font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.aui-root .prose h2{color:#1a202c;font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.aui-root .prose h3{color:#1a202c;font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.aui-root .prose h4{color:#1a202c;font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.aui-root .prose figure figcaption{color:#a0aec0;font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.aui-root .prose code{color:#1a202c;font-weight:600;font-size:.875em}.aui-root .prose code:after,.aui-root .prose code:before{content:"`"}.aui-root .prose a code{color:#1a202c}.aui-root .prose pre{color:#edf2f7;background-color:#1a202c;overflow-x:auto;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding:.8571429em 1.1428571em}.aui-root .prose pre code{background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:400;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.aui-root .prose pre code:after,.aui-root .prose pre code:before{content:none}.aui-root .prose table{width:100%;table-layout:auto;text-align:left;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.aui-root .prose thead{color:#1a202c;font-weight:600;border-bottom-width:1px;border-bottom-color:#e2e8f0}.aui-root .prose thead th{vertical-align:bottom;padding-right:.5714286em;padding-bottom:.5714286em;padding-left:.5714286em}.aui-root .prose tbody tr{border-bottom-width:1px;border-bottom-color:#edf2f7}.aui-root .prose tbody tr:last-child{border-bottom-width:0}.aui-root .prose tbody td{vertical-align:top;padding:.5714286em}.aui-root .prose{font-size:1rem;line-height:1.75}.aui-root .prose p{margin-top:1.25em;margin-bottom:1.25em}.aui-root .prose figure,.aui-root .prose img,.aui-root .prose video{margin-top:2em;margin-bottom:2em}.aui-root .prose figure>*{margin-top:0;margin-bottom:0}.aui-root .prose h2 code{font-size:.875em}.aui-root .prose h3 code{font-size:.9em}.aui-root .prose ol,.aui-root .prose ul{margin-top:1.25em;margin-bottom:1.25em}.aui-root .prose li{margin-top:.5em;margin-bottom:.5em}.aui-root .prose>ul>li p{margin-top:.75em;margin-bottom:.75em}.aui-root .prose>ul>li>:first-child{margin-top:1.25em}.aui-root .prose>ul>li>:last-child{margin-bottom:1.25em}.aui-root .prose>ol>li>:first-child{margin-top:1.25em}.aui-root .prose>ol>li>:last-child{margin-bottom:1.25em}.aui-root .prose ol ol,.aui-root .prose ol ul,.aui-root .prose ul ol,.aui-root .prose ul ul{margin-top:.75em;margin-bottom:.75em}.aui-root .prose h2+*,.aui-root .prose h3+*,.aui-root .prose h4+*,.aui-root .prose hr+*{margin-top:0}.aui-root .prose thead th:first-child{padding-left:0}.aui-root .prose thead th:last-child{padding-right:0}.aui-root .prose tbody td:first-child{padding-left:0}.aui-root .prose tbody td:last-child{padding-right:0}.aui-root .prose>:first-child{margin-top:0}.aui-root .prose>:last-child{margin-bottom:0}@media (min-width:1024px){.aui-root .container\:base .burger-menu{display:none}}@media (min-width:1024px){.aui-root .container\:base .sidebar{position:relative;display:block;height:auto;width:16rem}}@media (min-width:1280px){.aui-root .container\:xl .sidebar--wrapper{width:100%}}@media (min-width:640px){.aui-root .container\:xl .sidebar--wrapper{width:100%}}@media (min-width:1024px){.aui-root .container\:base .sidebar--content{width:14rem}}@media (min-width:1536px){.aui-root .container\:base .panel-item{display:flex}}.aui-root .container\:xl .panel-item{display:block}@media (min-width:1536px){.aui-root .container\:base .panel--center .panel-item--center{width:58.333333%}}@media (min-width:1536px){.aui-root .container\:base .panel--center .panel-item--right{width:41.666667%}}.aui-root .container\:xl .panel--center .panel-item--center,.aui-root .container\:xl .panel--center .panel-item--right{width:100%}@media (min-width:1536px){.aui-root .container\:base .examples{margin-top:0}}.aui-root .container\:base .panel--right{display:none}@media (min-width:1536px){.aui-root .container\:base .panel--right{display:block;width:41.666667%}}.aui-root .container\:xl .panel--right{display:none}.aui-root .prose pre{white-space:pre-wrap}.aui-root .fixed{position:fixed}.aui-root .absolute{position:absolute}.aui-root .relative{position:relative}.aui-root .top-0{top:0}.aui-root .right-0{right:0}.aui-root .right-8{right:2rem}.aui-root .bottom-16{bottom:4rem}.aui-root .z-10{z-index:10}.aui-root .z-20{z-index:20}.aui-root .z-30{z-index:30}.aui-root .mx-2{margin-left:.5rem;margin-right:.5rem}.aui-root .-mx-8{margin-left:-2rem;margin-right:-2rem}.aui-root .my-2{margin-top:.5rem;margin-bottom:.5rem}.aui-root .mt-1{margin-top:.25rem}.aui-root .mt-2{margin-top:.5rem}.aui-root .mt-4{margin-top:1rem}.aui-root .mt-9{margin-top:2.25rem}.aui-root .mt-10{margin-top:2.5rem}.aui-root .mt-16{margin-top:4rem}.aui-root .mr-1{margin-right:.25rem}.aui-root .mr-2{margin-right:.5rem}.aui-root .mb-2{margin-bottom:.5rem}.aui-root .mb-3{margin-bottom:.75rem}.aui-root .mb-4{margin-bottom:1rem}.aui-root .mb-12{margin-bottom:3rem}.aui-root .-mb-1{margin-bottom:-.25rem}.aui-root .ml-0{margin-left:0}.aui-root .ml-1{margin-left:.25rem}.aui-root .ml-2{margin-left:.5rem}.aui-root .ml-0\.5{margin-left:.125rem}.aui-root .block{display:block}.aui-root .inline-block{display:inline-block}.aui-root .flex{display:flex}.aui-root .table{display:table}.aui-root .hidden{display:none}.aui-root .h-5{height:1.25rem}.aui-root .h-6{height:1.5rem}.aui-root .h-8{height:2rem}.aui-root .h-11{height:2.75rem}.aui-root .h-16{height:4rem}.aui-root .h-full{height:100%}.aui-root .max-h-screen{max-height:100vh}.aui-root .w-1{width:.25rem}.aui-root .w-5{width:1.25rem}.aui-root .w-16{width:4rem}.aui-root .w-20{width:5rem}.aui-root .w-64{width:16rem}.aui-root .w-full{width:100%}.aui-root .min-w-1\/4{min-width:25%}.aui-root .max-w-none{max-width:none}.aui-root .flex-1{flex:1 1 0%}.aui-root .transform{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.aui-root .-rotate-180{--tw-rotate:-180deg}.aui-root .-rotate-90{--tw-rotate:-90deg}@keyframes spin{to{transform:rotate(1turn)}}@keyframes ping{75%,to{transform:scale(2);opacity:0}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.aui-root .cursor-pointer{cursor:pointer}.aui-root .flex-wrap{flex-wrap:wrap}.aui-root .items-center{align-items:center}.aui-root .justify-center{justify-content:center}.aui-root .gap-2{gap:.5rem}.aui-root .space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(0.5rem*var(--tw-space-x-reverse));margin-left:calc(0.5rem*(1 - var(--tw-space-x-reverse)))}.aui-root .space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0.5rem*var(--tw-space-y-reverse))}.aui-root .overflow-y-auto{overflow-y:auto}.aui-root .whitespace-pre-wrap{white-space:pre-wrap}.aui-root .break-words{overflow-wrap:break-word}.aui-root .break-all{word-break:break-all}.aui-root .rounded{border-radius:.25rem}.aui-root .rounded-full{border-radius:9999px}.aui-root .rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.aui-root .border{border-width:1px}.aui-root .border-l-8{border-left-width:8px}.aui-root .border-solid{border-style:solid}.aui-root .border-gray-400{--tw-border-opacity:1;border-color:rgba(203,213,224,var(--tw-border-opacity))}.aui-root .border-red-500{--tw-border-opacity:1;border-color:rgba(245,101,101,var(--tw-border-opacity))}.aui-root .border-orange-300{--tw-border-opacity:1;border-color:rgba(251,211,141,var(--tw-border-opacity))}.aui-root .border-green-600{--tw-border-opacity:1;border-color:rgba(56,161,105,var(--tw-border-opacity))}.aui-root .border-blue-300{--tw-border-opacity:1;border-color:rgba(144,205,244,var(--tw-border-opacity))}.aui-root .border-blue-600{--tw-border-opacity:1;border-color:rgba(49,130,206,var(--tw-border-opacity))}.aui-root .border-purple-300{--tw-border-opacity:1;border-color:rgba(214,188,250,var(--tw-border-opacity))}.aui-root .bg-white{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity))}.aui-root .bg-gray-100{--tw-bg-opacity:1;background-color:rgba(247,250,252,var(--tw-bg-opacity))}.aui-root .bg-gray-200{--tw-bg-opacity:1;background-color:rgba(237,242,247,var(--tw-bg-opacity))}.aui-root .bg-gray-800{--tw-bg-opacity:1;background-color:rgba(45,55,72,var(--tw-bg-opacity))}.aui-root .bg-red-600{--tw-bg-opacity:1;background-color:rgba(229,62,62,var(--tw-bg-opacity))}.aui-root .bg-orange-600{--tw-bg-opacity:1;background-color:rgba(221,107,32,var(--tw-bg-opacity))}.aui-root .bg-yellow-600{--tw-bg-opacity:1;background-color:rgba(214,158,46,var(--tw-bg-opacity))}.aui-root .bg-green-600{--tw-bg-opacity:1;background-color:rgba(56,161,105,var(--tw-bg-opacity))}.aui-root .bg-teal-500{--tw-bg-opacity:1;background-color:rgba(56,178,172,var(--tw-bg-opacity))}.aui-root .bg-blue-400{--tw-bg-opacity:1;background-color:rgba(99,179,237,var(--tw-bg-opacity))}.aui-root .bg-blue-500{--tw-bg-opacity:1;background-color:rgba(66,153,225,var(--tw-bg-opacity))}.aui-root .bg-blue-600{--tw-bg-opacity:1;background-color:rgba(49,130,206,var(--tw-bg-opacity))}.aui-root .bg-indigo-400{--tw-bg-opacity:1;background-color:rgba(127,156,245,var(--tw-bg-opacity))}.aui-root .bg-purple-600{--tw-bg-opacity:1;background-color:rgba(128,90,213,var(--tw-bg-opacity))}.aui-root .hover\:bg-orange-300:hover{--tw-bg-opacity:1;background-color:rgba(251,211,141,var(--tw-bg-opacity))}.aui-root .hover\:bg-blue-300:hover{--tw-bg-opacity:1;background-color:rgba(144,205,244,var(--tw-bg-opacity))}.aui-root .hover\:bg-purple-300:hover{--tw-bg-opacity:1;background-color:rgba(214,188,250,var(--tw-bg-opacity))}.aui-root .fill-current{fill:currentColor}.aui-root .p-1{padding:.25rem}.aui-root .p-2{padding:.5rem}.aui-root .p-4{padding:1rem}.aui-root .p-8{padding:2rem}.aui-root .px-1{padding-left:.25rem;padding-right:.25rem}.aui-root .px-2{padding-left:.5rem;padding-right:.5rem}.aui-root .px-3{padding-left:.75rem;padding-right:.75rem}.aui-root .px-4{padding-left:1rem;padding-right:1rem}.aui-root .px-8{padding-left:2rem;padding-right:2rem}.aui-root .py-0{padding-top:0;padding-bottom:0}.aui-root .py-1{padding-top:.25rem;padding-bottom:.25rem}.aui-root .py-2{padding-top:.5rem;padding-bottom:.5rem}.aui-root .py-4{padding-top:1rem;padding-bottom:1rem}.aui-root .py-8{padding-top:2rem;padding-bottom:2rem}.aui-root .py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.aui-root .pt-8{padding-top:2rem}.aui-root .pb-16{padding-bottom:4rem}.aui-root .text-left{text-align:left}.aui-root .text-center{text-align:center}.aui-root .align-baseline{vertical-align:baseline}.aui-root .font-sans{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.aui-root .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.aui-root .text-xs{font-size:.75rem}.aui-root .text-sm{font-size:.875rem}.aui-root .text-base{font-size:1rem}.aui-root .text-lg{font-size:1.125rem}.aui-root .text-2xl{font-size:1.5rem}.aui-root .text-3xl{font-size:1.875rem}.aui-root .text-4xl{font-size:2.25rem}.aui-root .font-thin{font-weight:100}.aui-root .font-extralight{font-weight:200}.aui-root .font-light{font-weight:300}.aui-root .font-bold{font-weight:700}.aui-root .uppercase{text-transform:uppercase}.aui-root .lowercase{text-transform:lowercase}.aui-root .capitalize{text-transform:capitalize}.aui-root .italic{font-style:italic}.aui-root .leading-normal{line-height:1.5}.aui-root .text-white{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.aui-root .text-gray-200{--tw-text-opacity:1;color:rgba(237,242,247,var(--tw-text-opacity))}.aui-root .text-gray-500{--tw-text-opacity:1;color:rgba(160,174,192,var(--tw-text-opacity))}.aui-root .text-gray-600{--tw-text-opacity:1;color:rgba(113,128,150,var(--tw-text-opacity))}.aui-root .text-gray-700{--tw-text-opacity:1;color:rgba(74,85,104,var(--tw-text-opacity))}.aui-root .text-gray-800{--tw-text-opacity:1;color:rgba(45,55,72,var(--tw-text-opacity))}.aui-root .text-red-600{--tw-text-opacity:1;color:rgba(229,62,62,var(--tw-text-opacity))}.aui-root .text-orange-500{--tw-text-opacity:1;color:rgba(237,137,54,var(--tw-text-opacity))}.aui-root .text-orange-600{--tw-text-opacity:1;color:rgba(221,107,32,var(--tw-text-opacity))}.aui-root .text-teal-500{--tw-text-opacity:1;color:rgba(56,178,172,var(--tw-text-opacity))}.aui-root .text-blue-500{--tw-text-opacity:1;color:rgba(66,153,225,var(--tw-text-opacity))}.aui-root .text-purple-500{--tw-text-opacity:1;color:rgba(159,122,234,var(--tw-text-opacity))}.aui-root .hover\:text-gray-900:hover{--tw-text-opacity:1;color:rgba(26,32,44,var(--tw-text-opacity))}.aui-root .hover\:text-orange-600:hover{--tw-text-opacity:1;color:rgba(221,107,32,var(--tw-text-opacity))}.aui-root .hover\:text-blue-600:hover{--tw-text-opacity:1;color:rgba(49,130,206,var(--tw-text-opacity))}.aui-root .hover\:text-purple-600:hover{--tw-text-opacity:1;color:rgba(128,90,213,var(--tw-text-opacity))}.aui-root .underline{text-decoration:underline}.aui-root .no-underline{text-decoration:none}.aui-root *,.aui-root :after,.aui-root :before{--tw-shadow:0 0 transparent}.aui-root .shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,0.1),0 1px 2px 0 rgba(0,0,0,0.06)}.aui-root .shadow,.aui-root .shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.aui-root .shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -1px rgba(0,0,0,0.06)}.aui-root .focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.aui-root *,.aui-root :after,.aui-root :before{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(66,153,225,0.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent}.aui-root .filter{--tw-blur:var(--tw-empty,/*!*/ /*!*/);--tw-brightness:var(--tw-empty,/*!*/ /*!*/);--tw-contrast:var(--tw-empty,/*!*/ /*!*/);--tw-grayscale:var(--tw-empty,/*!*/ /*!*/);--tw-hue-rotate:var(--tw-empty,/*!*/ /*!*/);--tw-invert:var(--tw-empty,/*!*/ /*!*/);--tw-saturate:var(--tw-empty,/*!*/ /*!*/);--tw-sepia:var(--tw-empty,/*!*/ /*!*/);--tw-drop-shadow:var(--tw-empty,/*!*/ /*!*/);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.aui-root .transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.aui-root .duration-150{transition-duration:.15s}.aui-root .ease-linear{transition-timing-function:linear}.aui-root .break-anywhere{overflow-wrap:anywhere}@media (min-width:768px){.aui-root .md\:flex{display:flex}}@media (min-width:1536px){.aui-root .\32xl\:mx-0{margin-left:0;margin-right:0}.aui-root .\32xl\:w-7\/12{width:58.333333%}.aui-root .\32xl\:rounded{border-radius:.25rem}.aui-root .\32xl\:px-4{padding-left:1rem;padding-right:1rem}} \ No newline at end of file From 0bc32d957a8953a8170a0c0d96805f9cc3def58e Mon Sep 17 00:00:00 2001 From: Maschga Date: Fri, 21 Feb 2025 14:48:24 +0100 Subject: [PATCH 11/35] wip --- docs/integrations/mqtt-api.mdx | 63 ++-------------------------------- 1 file changed, 2 insertions(+), 61 deletions(-) diff --git a/docs/integrations/mqtt-api.mdx b/docs/integrations/mqtt-api.mdx index 9ae9b2ecd..3b266872c 100644 --- a/docs/integrations/mqtt-api.mdx +++ b/docs/integrations/mqtt-api.mdx @@ -1,69 +1,10 @@ --- sidebar_position: 2 +hide_table_of_contents: true --- import AsyncUiWrapper from "../../src/components/AsyncUiWrapper"; # MQTT API -Die MQTT API folgt der [REST API](./rest-api) Struktur. -Alle API IDs (z.B. die Loadpoint ID) beginnen bei `1`. - - - -- `evcc`: root topic -- `evcc/status`: status (`online`/`offline`) -- `evcc/updated`: timestamp of last update - -## Site - -- `evcc/site`: site dynamic state -- `evcc/site/prioritySoc`: battery priority SoC (writable) -- `evcc/site/bufferSoc`: battery buffer SoC (writable) -- `evcc/site/bufferStartSoc`: battery buffer start SoC (writable) -- `evcc/site/residualPower`: grid residual power (writable) -- `evcc/site/smartCostLimit`: smart charging cost limit (previously known as "cheap" tariff) (writable) -- `evcc/site/batteryDischargeControl`: enable/disable battery discharge control (true/false) (writable) - -## Vehicles - -**Note**: for vehicle names see `evcc/vehicles`. - -- `evcc/vehicles`: number of vehicles -- `evcc/vehicles//minSoc`: minimum soc in % (writable) -- `evcc/vehicles//limitSoc`: limit soc in % (writable) -- `evcc/vehicles//planSoc`: plan soc (writable using JSON payload: `{"value": 50, "time": "2023-03-05T07:00:00Z"}`) - -## Loadpoints - -- `evcc/loadpoints`: number of available loadpoints -- `evcc/loadpoints/`: dynamic state -- `evcc/loadpoints//mode`: charge mode (writable) -- `evcc/loadpoints//minSoc`: minimum SoC (writable) -- `evcc/loadpoints//limitSoc`: limit SoC in % (writable) - only applicable for online vehicles -- `evcc/loadpoints//limitEnergy`: limit energy in kWh (writable) - only applicable for offline vehicles -- `evcc/loadpoints//plan/energy`: plan energy (writable using JSON payload: `{"value": 50, "time": "2023-03-05T07:00:00Z"}`) -- `evcc/loadpoints//phases`: enabled phases (writable) -- `evcc/loadpoints//minCurrent`: current minCurrent value (writable) -- `evcc/loadpoints//maxCurrent`: current maxCurrent value (writable) -- `evcc/loadpoints//enableThreshold`: threshold value (writable) -- `evcc/loadpoints//enableDelay`: delay value (s) (writable) -- `evcc/loadpoints//disableThreshold`: threshold value (writable) -- `evcc/loadpoints//disableDelay`: delay value (s) (writable) -- `evcc/loadpoints//batteryboost`: battery boost enabled (writeable: [1/0]) -- `evcc/loadpoints//priority`: priority value (writable) - -:::note -Um schreibbare Einstellungen durchzuführen, muss ein `/set` am Ende des Topics hinzugefügt werden an welches der neue Wert gesendet wird. -Beispiel: `mosquitto_pub -t "evcc/loadpoints/1/phases/set" -m "3"` um die Anzahl der netzseitigen Phasen am 1. Ladepunkt auf `3` festzulegen. -::: - -:::info -\*\* Zeitangabe efolgt in UTC im Format `yyyy-mm-ddThh:mm:ssZ` - -Beispiele: - -`2023-03-05T07:00:00Z` = 5. März 2023 um 8:00 Uhr MEZ - -`2023-08-17T19:30:00Z` = 17. August 2023 um 21:30 Uhr MESZ -::: + \ No newline at end of file From a2a638ee14023326d9ade70871c5a32f1e2183d6 Mon Sep 17 00:00:00 2001 From: Maschga Date: Fri, 21 Feb 2025 15:01:00 +0100 Subject: [PATCH 12/35] wip --- package.json | 2 +- src/copyAsyncAPIStyles.js | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 src/copyAsyncAPIStyles.js diff --git a/package.json b/package.json index 196f245b9..688d7255e 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "0.0.0", "private": true, "scripts": { - "generate": "node src/generateFromTemplate.js && node src/copySwaggerStyles.js", + "generate": "node src/generateFromTemplate.js && node src/copySwaggerStyles.js && node src/copyAsyncAPIStyles.js", "docusaurus": "docusaurus", "start": "npm run generate && docusaurus start", "restart": "npm run clear && npm run start", diff --git a/src/copyAsyncAPIStyles.js b/src/copyAsyncAPIStyles.js new file mode 100644 index 000000000..ea2652bc5 --- /dev/null +++ b/src/copyAsyncAPIStyles.js @@ -0,0 +1,9 @@ +const fs = require("fs"); +const path = require("path"); + +fs.copyFileSync( + path.join(__dirname, "../node_modules/@asyncapi/react-component/styles/default.min.css"), + path.join(__dirname, "../static/asyncapi.css"), +); + +console.log("Copied asyncapi.css to static directory"); From 811e4291f6c24eb79f7d68e41b6d5c9dd8a5c268 Mon Sep 17 00:00:00 2001 From: Maschga Date: Fri, 21 Feb 2025 15:05:20 +0100 Subject: [PATCH 13/35] wip --- src/components/AsyncUiWrapper.jsx | 2 +- static/mqtt-api.yaml | 207 +----------------------------- 2 files changed, 4 insertions(+), 205 deletions(-) diff --git a/src/components/AsyncUiWrapper.jsx b/src/components/AsyncUiWrapper.jsx index 2ff6f3354..668ad754d 100644 --- a/src/components/AsyncUiWrapper.jsx +++ b/src/components/AsyncUiWrapper.jsx @@ -1,7 +1,7 @@ import React, { useRef, useEffect } from "react"; import AsyncAPIStandalone from "@asyncapi/react-component/browser/standalone"; -const configs = {}; +const configs = { show: { info: false } }; const customCss = "@import url('/asyncapi.css');"; export default function AsyncUiWrapper() { diff --git a/static/mqtt-api.yaml b/static/mqtt-api.yaml index 09ca0ba84..36fc73bb4 100644 --- a/static/mqtt-api.yaml +++ b/static/mqtt-api.yaml @@ -1,206 +1,5 @@ asyncapi: 3.0.0 info: - title: Streetlights Kafka API - version: 1.0.0 - description: |- - The Smartylighting Streetlights API allows you to remotely manage the city - lights. - ### Check out its awesome features: - - * Turn a specific streetlight on/off 🌃 - * Dim a specific streetlight 😎 - * Receive real-time information about environmental lighting conditions 📈 - license: - name: Apache 2.0 - url: https://www.apache.org/licenses/LICENSE-2.0 -defaultContentType: application/json -servers: - scram-connections: - host: test.mykafkacluster.org:18092 - protocol: kafka-secure - description: Test broker secured with scramSha256 - security: - - $ref: '#/components/securitySchemes/saslScram' - tags: - - name: env:test-scram - description: >- - This environment is meant for running internal tests through - scramSha256 - - name: kind:remote - description: This server is a remote server. Not exposed by the application - - name: visibility:private - description: This resource is private and only available to certain users - mtls-connections: - host: test.mykafkacluster.org:28092 - protocol: kafka-secure - description: Test broker secured with X509 - security: - - $ref: '#/components/securitySchemes/certs' - tags: - - name: env:test-mtls - description: This environment is meant for running internal tests through mtls - - name: kind:remote - description: This server is a remote server. Not exposed by the application - - name: visibility:private - description: This resource is private and only available to certain users -channels: - lightingMeasured: - address: smartylighting.streetlights.1.0.event.{streetlightId}.lighting.measured - messages: - lightMeasured: - $ref: '#/components/messages/lightMeasured' - description: The topic on which measured values may be produced and consumed. - parameters: - streetlightId: - $ref: '#/components/parameters/streetlightId' - lightTurnOn: - address: smartylighting.streetlights.1.0.action.{streetlightId}.turn.on - messages: - turnOn: - $ref: '#/components/messages/turnOnOff' - parameters: - streetlightId: - $ref: '#/components/parameters/streetlightId' - lightTurnOff: - address: smartylighting.streetlights.1.0.action.{streetlightId}.turn.off - messages: - turnOff: - $ref: '#/components/messages/turnOnOff' - parameters: - streetlightId: - $ref: '#/components/parameters/streetlightId' - lightsDim: - address: smartylighting.streetlights.1.0.action.{streetlightId}.dim - messages: - dimLight: - $ref: '#/components/messages/dimLight' - parameters: - streetlightId: - $ref: '#/components/parameters/streetlightId' -operations: - receiveLightMeasurement: - action: receive - channel: - $ref: '#/channels/lightingMeasured' - summary: >- - Inform about environmental lighting conditions of a particular - streetlight. - traits: - - $ref: '#/components/operationTraits/kafka' - messages: - - $ref: '#/channels/lightingMeasured/messages/lightMeasured' - turnOn: - action: send - channel: - $ref: '#/channels/lightTurnOn' - traits: - - $ref: '#/components/operationTraits/kafka' - messages: - - $ref: '#/channels/lightTurnOn/messages/turnOn' - turnOff: - action: send - channel: - $ref: '#/channels/lightTurnOff' - traits: - - $ref: '#/components/operationTraits/kafka' - messages: - - $ref: '#/channels/lightTurnOff/messages/turnOff' - dimLight: - action: send - channel: - $ref: '#/channels/lightsDim' - traits: - - $ref: '#/components/operationTraits/kafka' - messages: - - $ref: '#/channels/lightsDim/messages/dimLight' -components: - messages: - lightMeasured: - name: lightMeasured - title: Light measured - summary: >- - Inform about environmental lighting conditions of a particular - streetlight. - contentType: application/json - traits: - - $ref: '#/components/messageTraits/commonHeaders' - payload: - $ref: '#/components/schemas/lightMeasuredPayload' - turnOnOff: - name: turnOnOff - title: Turn on/off - summary: Command a particular streetlight to turn the lights on or off. - traits: - - $ref: '#/components/messageTraits/commonHeaders' - payload: - $ref: '#/components/schemas/turnOnOffPayload' - dimLight: - name: dimLight - title: Dim light - summary: Command a particular streetlight to dim the lights. - traits: - - $ref: '#/components/messageTraits/commonHeaders' - payload: - $ref: '#/components/schemas/dimLightPayload' - schemas: - lightMeasuredPayload: - type: object - properties: - lumens: - type: integer - minimum: 0 - description: Light intensity measured in lumens. - sentAt: - $ref: '#/components/schemas/sentAt' - turnOnOffPayload: - type: object - properties: - command: - type: string - enum: - - 'on' - - 'off' - description: Whether to turn on or off the light. - sentAt: - $ref: '#/components/schemas/sentAt' - dimLightPayload: - type: object - properties: - percentage: - type: integer - description: Percentage to which the light should be dimmed to. - minimum: 0 - maximum: 100 - sentAt: - $ref: '#/components/schemas/sentAt' - sentAt: - type: string - format: date-time - description: Date and time when the message was sent. - securitySchemes: - saslScram: - type: scramSha256 - description: Provide your username and password for SASL/SCRAM authentication - certs: - type: X509 - description: Download the certificate files from service provider - parameters: - streetlightId: - description: The ID of the streetlight. - messageTraits: - commonHeaders: - headers: - type: object - properties: - my-app-header: - type: integer - minimum: 0 - maximum: 100 - operationTraits: - kafka: - bindings: - kafka: - clientId: - type: string - enum: - - my-app-id + title: evcc MQTT-API + description: "" + version: latest From b7b9d55b6e804c7470fd63c99d3b96d0e7d31e37 Mon Sep 17 00:00:00 2001 From: Maschga Date: Sun, 23 Feb 2025 18:24:08 +0100 Subject: [PATCH 14/35] wip --- static/mqtt-api.yaml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/static/mqtt-api.yaml b/static/mqtt-api.yaml index 36fc73bb4..ec847102d 100644 --- a/static/mqtt-api.yaml +++ b/static/mqtt-api.yaml @@ -1,5 +1,13 @@ asyncapi: 3.0.0 info: title: evcc MQTT-API - description: "" version: latest +servers: + evcc: + host: "{IP}:{PORT}" + protocol: mqtt + description: Your setup mqtt server. + variables: + IP: + default: 192.168.XXX.XXX + PORT: From 5a492077fd57b2a3dd33f7a28d3b28d82c2735c6 Mon Sep 17 00:00:00 2001 From: Maschga Date: Tue, 25 Feb 2025 18:49:39 +0100 Subject: [PATCH 15/35] wip --- static/mqtt-api.yaml | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/static/mqtt-api.yaml b/static/mqtt-api.yaml index ec847102d..ec86d97a4 100644 --- a/static/mqtt-api.yaml +++ b/static/mqtt-api.yaml @@ -6,8 +6,44 @@ servers: evcc: host: "{IP}:{PORT}" protocol: mqtt - description: Your setup mqtt server. + description: Your setup mqtt server - most common a [Eclipse Mosquitto](https://mosquitto.org/) instance. variables: IP: default: 192.168.XXX.XXX PORT: + default: "1883" +operations: + status: + action: receive + channel: + address: evcc/status + messages: + status: + payload: + type: string + enum: + - online + tags: + - $ref: "#/components/tags/general" + updated: + action: receive + channel: + address: evcc/updated + messages: + status: + payload: + type: integer + tags: + - $ref: "#/components/tags/general" +components: + # messages: + # status: + tags: + general: + name: General + site: + name: Site + loadpoints: + name: Loadpoints + vehicles: + name: Vehicles \ No newline at end of file From 6e5b2b4adfb3890d540da44c61420b6584b1d19b Mon Sep 17 00:00:00 2001 From: Maschga Date: Tue, 25 Feb 2025 20:46:04 +0100 Subject: [PATCH 16/35] use BrowserOnly --- src/components/AsyncUiWrapper.jsx | 51 ++++++++++++++++++++--------- src/components/SwaggerUiWrapper.jsx | 27 +++++++-------- 2 files changed, 50 insertions(+), 28 deletions(-) diff --git a/src/components/AsyncUiWrapper.jsx b/src/components/AsyncUiWrapper.jsx index 668ad754d..cb5095c94 100644 --- a/src/components/AsyncUiWrapper.jsx +++ b/src/components/AsyncUiWrapper.jsx @@ -1,38 +1,59 @@ import React, { useRef, useEffect } from "react"; -import AsyncAPIStandalone from "@asyncapi/react-component/browser/standalone"; +import BrowserOnly from "@docusaurus/BrowserOnly"; +import CodeBlock from "@theme/CodeBlock"; +import mqttApiYaml from "!!raw-loader!../../static/mqtt-api.yaml"; + +const configs = { + show: { + info: false, + }, +}; -const configs = { show: { info: false } }; const customCss = "@import url('/asyncapi.css');"; -export default function AsyncUiWrapper() { +function AsyncUiComponent() { const containerRef = useRef(null); useEffect(() => { if (containerRef.current?.attachShadow) { try { const shadowRoot = containerRef.current.attachShadow({ mode: "open" }); - const style = document.createElement("style"); style.textContent = customCss; shadowRoot.appendChild(style); - const asyncDiv = document.createElement("div"); shadowRoot.appendChild(asyncDiv); - AsyncAPIStandalone.render( - { - schema: { - url: "/mqtt-api.yaml", - }, - config: configs, - }, - asyncDiv, - ); + import("@asyncapi/react-component/browser/standalone") + .then((module) => { + module.default.render( + { + schema: { url: "/mqtt-api.yaml" }, + config: configs, + }, + asyncDiv + ); + }) + .catch((error) => console.error("AsyncAPI render error:", error)); } catch (error) { - console.error(error); + console.error("Shadow DOM error:", error); } } }, []); return
; } + +export default function AsyncUiWrapper() { + return ( + + {mqttApiYaml} + + } + > + {() => } + + ); +} diff --git a/src/components/SwaggerUiWrapper.jsx b/src/components/SwaggerUiWrapper.jsx index f5541522f..d58c887ca 100644 --- a/src/components/SwaggerUiWrapper.jsx +++ b/src/components/SwaggerUiWrapper.jsx @@ -1,6 +1,7 @@ -import React, { useRef, useEffect, useState } from "react"; +import React, { useRef, useEffect } from "react"; import ReactDOM from "react-dom/client"; import SwaggerUI from "swagger-ui-react"; +import BrowserOnly from "@docusaurus/BrowserOnly"; import CodeBlock from "@theme/CodeBlock"; import restApiYaml from "!!raw-loader!../../static/rest-api.yaml"; @@ -132,9 +133,8 @@ let customCss = ` `; }); -export default () => { +function SwaggerUIComponent() { const containerRef = useRef(null); - const [initialized, setInitialized] = useState(false); useEffect(() => { if (containerRef.current?.attachShadow) { @@ -143,28 +143,29 @@ export default () => { const style = document.createElement("style"); style.textContent = customCss; shadowRoot.appendChild(style); - const div = document.createElement("div"); shadowRoot.appendChild(div); - const root = ReactDOM.createRoot(div); root.render(); - setInitialized(true); } catch (e) { console.error(e); } } }, []); + return
; +} + +export default function SwaggerUIWrapper() { return ( - <> -
- {/* crawler fallback */} - {!initialized && ( + {restApiYaml} - )} - + } + > + {() => } + ); -}; +} From 0e53290fd1e70982e82d83decb0dcca47a6ca590 Mon Sep 17 00:00:00 2001 From: Maschga Date: Tue, 25 Feb 2025 20:58:08 +0100 Subject: [PATCH 17/35] remove servers --- static/mqtt-api.yaml | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/static/mqtt-api.yaml b/static/mqtt-api.yaml index ec86d97a4..bdbc998ae 100644 --- a/static/mqtt-api.yaml +++ b/static/mqtt-api.yaml @@ -2,18 +2,9 @@ asyncapi: 3.0.0 info: title: evcc MQTT-API version: latest -servers: - evcc: - host: "{IP}:{PORT}" - protocol: mqtt - description: Your setup mqtt server - most common a [Eclipse Mosquitto](https://mosquitto.org/) instance. - variables: - IP: - default: 192.168.XXX.XXX - PORT: - default: "1883" operations: status: + description: TODO action: receive channel: address: evcc/status @@ -26,13 +17,16 @@ operations: tags: - $ref: "#/components/tags/general" updated: + description: TODO action: receive channel: address: evcc/updated messages: status: + description: UTC in seconds payload: type: integer + example: 1740512847 tags: - $ref: "#/components/tags/general" components: From ebf0cc35e8a6e30731829b6aa21ba9c238df9d49 Mon Sep 17 00:00:00 2001 From: Maschga Date: Tue, 25 Feb 2025 21:34:33 +0100 Subject: [PATCH 18/35] change configs --- src/components/AsyncUiWrapper.jsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/components/AsyncUiWrapper.jsx b/src/components/AsyncUiWrapper.jsx index cb5095c94..fc34bef28 100644 --- a/src/components/AsyncUiWrapper.jsx +++ b/src/components/AsyncUiWrapper.jsx @@ -7,6 +7,9 @@ const configs = { show: { info: false, }, + expand: { + messageExamples: true, + }, }; const customCss = "@import url('/asyncapi.css');"; @@ -31,7 +34,7 @@ function AsyncUiComponent() { schema: { url: "/mqtt-api.yaml" }, config: configs, }, - asyncDiv + asyncDiv, ); }) .catch((error) => console.error("AsyncAPI render error:", error)); From 2b785d698d059420a0617cc6634834d97e5f0ebf Mon Sep 17 00:00:00 2001 From: Maschga Date: Tue, 25 Feb 2025 21:34:40 +0100 Subject: [PATCH 19/35] wip --- static/mqtt-api.yaml | 57 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 49 insertions(+), 8 deletions(-) diff --git a/static/mqtt-api.yaml b/static/mqtt-api.yaml index bdbc998ae..2d40effbc 100644 --- a/static/mqtt-api.yaml +++ b/static/mqtt-api.yaml @@ -3,7 +3,33 @@ info: title: evcc MQTT-API version: latest operations: - status: + receiveLoadpointMode: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/mode + parameters: + id: + $ref: "#/components/parameters/id" + messages: + mode: + $ref: "#/components/messages/mode" + tags: + - $ref: "#/components/tags/loadpoints" + sendLoadpointMode: + description: TODO + action: send + channel: + address: evcc/loadpoint/{id}/mode/set + parameters: + id: + $ref: "#/components/parameters/id" + messages: + mode: + $ref: "#/components/messages/mode" + tags: + - $ref: "#/components/tags/loadpoints" + receiveStatus: description: TODO action: receive channel: @@ -16,28 +42,43 @@ operations: - online tags: - $ref: "#/components/tags/general" - updated: + receiveUpdated: description: TODO action: receive channel: address: evcc/updated messages: status: - description: UTC in seconds + description: TODO payload: type: integer example: 1740512847 tags: - $ref: "#/components/tags/general" components: - # messages: - # status: + messages: + mode: + description: Charging mode. [Read more.](/en/docs/reference/configuration/loadpoints#mode) + payload: + type: string + enum: + - off + - pv + - minpv + - now + parameters: + id: + description: The index. Starts with 1. + examples: + - "1" + - "2" + - "5" tags: general: name: General - site: - name: Site loadpoints: name: Loadpoints vehicles: - name: Vehicles \ No newline at end of file + name: Vehicles + site: + name: Site From a04678e5946fa95e39df796a1d64cc6dcd8d1392 Mon Sep 17 00:00:00 2001 From: Maschga Date: Wed, 26 Feb 2025 12:30:51 +0100 Subject: [PATCH 20/35] wip --- static/mqtt-api.yaml | 989 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 988 insertions(+), 1 deletion(-) diff --git a/static/mqtt-api.yaml b/static/mqtt-api.yaml index 2d40effbc..2bf51041b 100644 --- a/static/mqtt-api.yaml +++ b/static/mqtt-api.yaml @@ -1,8 +1,954 @@ +# TODO: +# - check data types + asyncapi: 3.0.0 info: title: evcc MQTT-API version: latest operations: + receiveLoadpointTitle: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/title + parameters: + id: + $ref: "#/components/parameters/id" + messages: + loadpointTitle: + description: "[See documentation](/en/docs/reference/configuration/loadpoints#title)" + payload: + type: string + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointPriority: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/priority + parameters: + id: + $ref: "#/components/parameters/id" + messages: + priority: + $ref: "#/components/messages/priority" + tags: + - $ref: "#/components/tags/loadpoints" + sendLoadpointPriority: + description: TODO + action: send + channel: + address: evcc/loadpoint/{id}/priority + parameters: + id: + $ref: "#/components/parameters/id" + messages: + priority: + $ref: "#/components/messages/priority" + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointMinCurrent: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/minCurrent + parameters: + id: + $ref: "#/components/parameters/id" + messages: + minCurrent: + $ref: "#/components/messages/minCurrent" + tags: + - $ref: "#/components/tags/loadpoints" + sendLoadpointMinCurrent: + description: TODO + action: send + channel: + address: evcc/loadpoint/{id}/minCurrent/set + parameters: + id: + $ref: "#/components/parameters/id" + messages: + minCurrent: + $ref: "#/components/messages/minCurrent" + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointMaxCurrent: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/maxCurrent + parameters: + id: + $ref: "#/components/parameters/id" + messages: + maxCurrent: + $ref: "#/components/messages/maxCurrent" + tags: + - $ref: "#/components/tags/loadpoints" + sendLoadpointMaxCurrent: + description: TODO + action: send + channel: + address: evcc/loadpoint/{id}/maxCurrent/set + parameters: + id: + $ref: "#/components/parameters/id" + messages: + maxCurrent: + $ref: "#/components/messages/maxCurrent" + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointEnableThreshold: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/enableThreshold + parameters: + id: + $ref: "#/components/parameters/id" + messages: + enableThreshold: + $ref: "#/components/messages/enableThreshold" + tags: + - $ref: "#/components/tags/loadpoints" + sendLoadpointEnableThreshold: + description: TODO + action: send + channel: + address: evcc/loadpoint/{id}/enableThreshold/set + parameters: + id: + $ref: "#/components/parameters/id" + messages: + enableThreshold: + $ref: "#/components/messages/enableThreshold" + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointDisableThreshold: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/disableThreshold + parameters: + id: + $ref: "#/components/parameters/id" + messages: + disableThreshold: + $ref: "#/components/messages/disableThreshold" + tags: + - $ref: "#/components/tags/loadpoints" + sendLoadpointDisableThreshold: + description: TODO + action: send + channel: + address: evcc/loadpoint/{id}/disableThreshold/set + parameters: + id: + $ref: "#/components/parameters/id" + messages: + disableThreshold: + $ref: "#/components/messages/disableThreshold" + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointEnableDelay: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/enableDelay + parameters: + id: + $ref: "#/components/parameters/id" + messages: + enableDelay: + $ref: "#/components/messages/enableDelay" + tags: + - $ref: "#/components/tags/loadpoints" + sendLoadpointEnableDelay: + description: TODO + action: send + channel: + address: evcc/loadpoint/{id}/enableDelay/set + parameters: + id: + $ref: "#/components/parameters/id" + messages: + enableDelay: + $ref: "#/components/messages/enableDelay" + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointDisableDelay: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/disableDelay + parameters: + id: + $ref: "#/components/parameters/id" + messages: + disableDelay: + $ref: "#/components/messages/disableDelay" + tags: + - $ref: "#/components/tags/loadpoints" + sendLoadpointDisableDelay: + description: TODO + action: send + channel: + address: evcc/loadpoint/{id}/disableDelay/set + parameters: + id: + $ref: "#/components/parameters/id" + messages: + disableDelay: + $ref: "#/components/messages/disableDelay" + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointPhasesConfigured: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/phasesConfigured + parameters: + id: + $ref: "#/components/parameters/id" + messages: + phases: + $ref: "#/components/messages/phases" + tags: + - $ref: "#/components/tags/loadpoints" + sendLoadpointPhases: + description: TODO + action: send + channel: + address: evcc/loadpoint/{id}/phases/set + parameters: + id: + $ref: "#/components/parameters/id" + messages: + phases: + $ref: "#/components/messages/phases" + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointChargerPhases1p3p: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/chargerPhases1p3p + parameters: + id: + $ref: "#/components/parameters/id" + messages: + chargerPhases1p3p: + description: TODO + payload: + type: boolean + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointChargerSinglePhase: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/chargerSinglePhase + parameters: + id: + $ref: "#/components/parameters/id" + messages: + chargerSinglePhase: + description: TODO + payload: + type: boolean + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointPhasesActive: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/phasesActive + parameters: + id: + $ref: "#/components/parameters/id" + messages: + phasesActive: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointPhaseAction: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/phaseAction + parameters: + id: + $ref: "#/components/parameters/id" + messages: + phaseAction: + description: TODO + payload: + type: string + enum: + - TODO + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointPhaseRemaining: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/phaseRemaining + parameters: + id: + $ref: "#/components/parameters/id" + messages: + phaseRemaining: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointPvAction: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/pvAction + parameters: + id: + $ref: "#/components/parameters/id" + messages: + pvAction: + description: TODO + payload: + type: string + enum: + - TODO + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointPvRemaining: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/pvRemaining + parameters: + id: + $ref: "#/components/parameters/id" + messages: + pvRemaining: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointChargerFeatureIntegratedDevice: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/chargerFeatureIntegratedDevice + parameters: + id: + $ref: "#/components/parameters/id" + messages: + chargerFeatureIntegratedDevice: + description: TODO + payload: + type: boolean + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointChargerFeatureHeating: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/chargerFeatureHeating + parameters: + id: + $ref: "#/components/parameters/id" + messages: + chargerFeatureHeating: + description: TODO + payload: + type: boolean + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointVehicleOdometer: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/vehicleOdometer + parameters: + id: + $ref: "#/components/parameters/id" + messages: + vehicleOdometer: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointVehicleSoc: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/vehicleSoc + parameters: + id: + $ref: "#/components/parameters/id" + messages: + vehicleSoc: + description: TODO + payload: + type: number + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointVehicleRange: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/vehicleRange + parameters: + id: + $ref: "#/components/parameters/id" + messages: + vehicleRange: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointVehicleLimitSoc: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/vehicleLimitSoc + parameters: + id: + $ref: "#/components/parameters/id" + messages: + vehicleLimitSoc: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointEffectivePriority: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/effectivePriority + parameters: + id: + $ref: "#/components/parameters/id" + messages: + effectivePriority: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointEffectivePlanId: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/effectivePlanId + parameters: + id: + $ref: "#/components/parameters/id" + messages: + effectivePlanId: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointEffectivePlanSoc: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/effectivePlanSoc + parameters: + id: + $ref: "#/components/parameters/id" + messages: + effectivePlanSoc: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointEffectiveMinCurrent: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/effectiveMinCurrent + parameters: + id: + $ref: "#/components/parameters/id" + messages: + effectiveMinCurrent: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointEffectiveMaxCurrent: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/effectiveMaxCurrent + parameters: + id: + $ref: "#/components/parameters/id" + messages: + effectiveMaxCurrent: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointEffectiveLimitSoc: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/effectiveLimitSoc + parameters: + id: + $ref: "#/components/parameters/id" + messages: + effectiveLimitSoc: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointVehicleDetectionActive: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/vehicleDetectionActive + parameters: + id: + $ref: "#/components/parameters/id" + messages: + vehicleDetectionActive: + description: TODO + payload: + type: boolean + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointPlanEnergy: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/planEnergy + parameters: + id: + $ref: "#/components/parameters/id" + messages: + planEnergy: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointLimitSoc: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/limitSoc + parameters: + id: + $ref: "#/components/parameters/id" + messages: + limitSoc: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointLimitEnergy: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/limitEnergy + parameters: + id: + $ref: "#/components/parameters/id" + messages: + limitEnergy: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointPlanActive: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/planActive + parameters: + id: + $ref: "#/components/parameters/id" + messages: + planActive: + description: TODO + payload: + type: boolean + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointBatteryBoost: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/batteryBoost + parameters: + id: + $ref: "#/components/parameters/id" + messages: + batteryBoost: + description: TODO + payload: + type: boolean + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointChargeCurrent: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/chargeCurrent + parameters: + id: + $ref: "#/components/parameters/id" + messages: + chargeCurrent: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointChargePower: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/chargePower + parameters: + id: + $ref: "#/components/parameters/id" + messages: + chargePower: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointChargeCurrents: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/chargeCurrents + parameters: + id: + $ref: "#/components/parameters/id" + messages: + chargeCurrents: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointSmartCostActive: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/smartCostActive + parameters: + id: + $ref: "#/components/parameters/id" + messages: + smartCostActive: + description: TODO + payload: + type: boolean + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointSessionEnergy: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/sessionEnergy + parameters: + id: + $ref: "#/components/parameters/id" + messages: + sessionEnergy: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointSessionSolarPercentage: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/sessionSolarPercentage + parameters: + id: + $ref: "#/components/parameters/id" + messages: + sessionSolarPercentage: + description: TODO + payload: + type: number + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointChargedEnergy: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/chargedEnergy + parameters: + id: + $ref: "#/components/parameters/id" + messages: + chargedEnergy: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointChargedDuration: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/chargeDuration + parameters: + id: + $ref: "#/components/parameters/id" + messages: + chargeDuration: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointChargeTotalImport: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/chargeTotalImport + parameters: + id: + $ref: "#/components/parameters/id" + messages: + chargeTotalImport: + description: TODO + payload: + type: number + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointConnectedDuration: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/connectedDuration + parameters: + id: + $ref: "#/components/parameters/id" + messages: + connectedDuration: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointVehicleWelcomeActive: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/vehicleWelcomeActive + parameters: + id: + $ref: "#/components/parameters/id" + messages: + vehicleWelcomeActive: + description: TODO + payload: + type: boolean + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointConnected: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/connected + parameters: + id: + $ref: "#/components/parameters/id" + messages: + connected: + description: TODO + payload: + type: boolean + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointCharging: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/charging + parameters: + id: + $ref: "#/components/parameters/id" + messages: + charging: + description: TODO + payload: + type: boolean + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointEnabled: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/enabled + parameters: + id: + $ref: "#/components/parameters/id" + messages: + enabled: + description: TODO + payload: + type: boolean + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointPlanOverrun: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/planOverrun + parameters: + id: + $ref: "#/components/parameters/id" + messages: + planOverrun: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointSessionPricePerKWh: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/sessionPricePerKWh + parameters: + id: + $ref: "#/components/parameters/id" + messages: + sessionPricePerKWh: + description: TODO + payload: + type: number + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointSessionPrice: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/sessionPrice + parameters: + id: + $ref: "#/components/parameters/id" + messages: + sessionPrice: + description: TODO + payload: + type: number + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointSessionCo2PerKWh: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/sessionCo2PerKWh + parameters: + id: + $ref: "#/components/parameters/id" + messages: + sessionCo2PerKWh: + description: TODO + payload: + type: number + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointChargerStatusReason: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/chargerStatusReason + parameters: + id: + $ref: "#/components/parameters/id" + messages: + chargerStatusReason: + description: TODO + payload: + type: string + enum: + - TODO + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointChargeRemainingEnergy: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/chargeRemainingEnergy + parameters: + id: + $ref: "#/components/parameters/id" + messages: + chargeRemainingEnergy: + description: TODO + payload: + type: number + tags: + - $ref: "#/components/tags/loadpoints" + receiveLoadpointChargeRemainingDuration: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/chargeRemainingDuration + parameters: + id: + $ref: "#/components/parameters/id" + messages: + chargeRemainingDuration: + description: TODO + payload: + type: integer + receiveLoadpointChargeVehicleName: + description: TODO + action: receive + channel: + address: evcc/loadpoint/{id}/vehicleName + parameters: + id: + $ref: "#/components/parameters/id" + messages: + vehicleName: + $ref: "#/components/parameters/vehicleName" + tags: + - $ref: "#/components/tags/loadpoints" + sendLoadpointChargeVehicleName: + description: TODO + action: send + channel: + address: evcc/loadpoint/{id}/vehicle/set + parameters: + id: + $ref: "#/components/parameters/id" + messages: + vehicleName: + $ref: "#/components/parameters/vehicleName" + tags: + - $ref: "#/components/tags/loadpoints" receiveLoadpointMode: description: TODO action: receive @@ -36,6 +982,7 @@ operations: address: evcc/status messages: status: + description: TODO payload: type: string enum: @@ -48,7 +995,7 @@ operations: channel: address: evcc/updated messages: - status: + updated: description: TODO payload: type: integer @@ -66,6 +1013,46 @@ components: - pv - minpv - now + phases: + description: "Number of phases. (0: auto, 1: 1-phase, 3: 3-phase) [Read more.](/en/docs/reference/configuration/loadpoints#phases)" + payload: + type: integer + enum: + - "0" + - "1" + - "3" + priority: + description: TODO + payload: + type: integer + minCurrent: + description: TODO + payload: + type: integer + maxCurrent: + description: TODO + payload: + type: integer + enableThreshold: + description: TODO + payload: + type: number + disableThreshold: + description: TODO + payload: + type: number + enableDelay: + description: TODO + payload: + type: integer + disableDelay: + description: TODO + payload: + type: integer + vehicleName: + description: TODO + payload: + type: string parameters: id: description: The index. Starts with 1. From 7adaaa749b2fdc53e3a58e10c988193bc45c152d Mon Sep 17 00:00:00 2001 From: Maschga Date: Wed, 26 Feb 2025 13:46:37 +0100 Subject: [PATCH 21/35] wip --- static/mqtt-api.yaml | 106 +++++++++++++++++++++++++++++++++++++------ 1 file changed, 91 insertions(+), 15 deletions(-) diff --git a/static/mqtt-api.yaml b/static/mqtt-api.yaml index 2bf51041b..735d67eb8 100644 --- a/static/mqtt-api.yaml +++ b/static/mqtt-api.yaml @@ -1,5 +1,6 @@ # TODO: # - check data types +# - add examples asyncapi: 3.0.0 info: @@ -38,7 +39,7 @@ operations: description: TODO action: send channel: - address: evcc/loadpoint/{id}/priority + address: evcc/loadpoint/{id}/priority/set parameters: id: $ref: "#/components/parameters/id" @@ -423,9 +424,20 @@ operations: $ref: "#/components/parameters/id" messages: vehicleLimitSoc: - description: TODO - payload: - type: integer + $ref: "#/components/messages/vehicleLimitSoc" + tags: + - $ref: "#/components/tags/loadpoints" + sendLoadpointVehicleLimitSoc: + description: TODO + action: send + channel: + address: evcc/loadpoint/{id}/vehicleLimitSoc/set + parameters: + id: + $ref: "#/components/parameters/id" + messages: + vehicleLimitSoc: + $ref: "#/components/messages/vehicleLimitSoc" tags: - $ref: "#/components/tags/loadpoints" receiveLoadpointEffectivePriority: @@ -543,9 +555,20 @@ operations: $ref: "#/components/parameters/id" messages: planEnergy: - description: TODO - payload: - type: integer + $ref: "#/components/messages/planEnergy" + tags: + - $ref: "#/components/tags/loadpoints" + sendLoadpointPlanEnergy: + description: TODO + action: send + channel: + address: evcc/loadpoint/{id}/planEnergy/set + parameters: + id: + $ref: "#/components/parameters/id" + messages: + planEnergy: + $ref: "#/components/messages/planEnergy" tags: - $ref: "#/components/tags/loadpoints" receiveLoadpointLimitSoc: @@ -573,9 +596,20 @@ operations: $ref: "#/components/parameters/id" messages: limitEnergy: - description: TODO - payload: - type: integer + $ref: "#/components/messages/limitEnergy" + tags: + - $ref: "#/components/tags/loadpoints" + sendLoadpointLimitEnergy: + description: TODO + action: send + channel: + address: evcc/loadpoint/{id}/limitEnergy/set + parameters: + id: + $ref: "#/components/parameters/id" + messages: + limitEnergy: + $ref: "#/components/messages/limitEnergy" tags: - $ref: "#/components/tags/loadpoints" receiveLoadpointPlanActive: @@ -603,9 +637,20 @@ operations: $ref: "#/components/parameters/id" messages: batteryBoost: - description: TODO - payload: - type: boolean + $ref: "#/components/messages/batteryBoost" + tags: + - $ref: "#/components/tags/loadpoints" + sendLoadpointBatteryBoost: + description: TODO + action: send + channel: + address: evcc/loadpoint/{id}/batteryBoost/set + parameters: + id: + $ref: "#/components/parameters/id" + messages: + batteryBoost: + $ref: "#/components/messages/batteryBoost" tags: - $ref: "#/components/tags/loadpoints" receiveLoadpointChargeCurrent: @@ -933,7 +978,7 @@ operations: $ref: "#/components/parameters/id" messages: vehicleName: - $ref: "#/components/parameters/vehicleName" + $ref: "#/components/messages/vehicleName" tags: - $ref: "#/components/tags/loadpoints" sendLoadpointChargeVehicleName: @@ -946,7 +991,7 @@ operations: $ref: "#/components/parameters/id" messages: vehicleName: - $ref: "#/components/parameters/vehicleName" + $ref: "#/components/messages/vehicleName" tags: - $ref: "#/components/tags/loadpoints" receiveLoadpointMode: @@ -975,6 +1020,21 @@ operations: $ref: "#/components/messages/mode" tags: - $ref: "#/components/tags/loadpoints" + sendLoadpointSmartCostLimit: + description: TODO + action: send + channel: + address: evcc/loadpoint/{id}/smartCostLimit/set + parameters: + id: + $ref: "#/components/parameters/id" + messages: + smartCostLimit: + description: TODO + payload: + type: number + tags: + - $ref: "#/components/tags/loadpoints" receiveStatus: description: TODO action: receive @@ -1004,6 +1064,22 @@ operations: - $ref: "#/components/tags/general" components: messages: + limitEnergy: + description: TODO + payload: + type: integer + vehicleLimitSoc: + description: TODO + payload: + type: integer + batteryBoost: + description: TODO + payload: + type: boolean + planEnergy: + description: TODO + payload: + type: integer mode: description: Charging mode. [Read more.](/en/docs/reference/configuration/loadpoints#mode) payload: From 648ae4c2d14e8b08c70ef14a135f42a2f026c387 Mon Sep 17 00:00:00 2001 From: Maschga Date: Wed, 26 Feb 2025 14:03:29 +0100 Subject: [PATCH 22/35] wip --- package.json | 3 +- src/sortAsyncAPI.js | 40 +++ static/mqtt-api.yaml | 768 ++++++++++++++++++++++--------------------- 3 files changed, 427 insertions(+), 384 deletions(-) create mode 100644 src/sortAsyncAPI.js diff --git a/package.json b/package.json index 688d7255e..d35dcfe6f 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,8 @@ "deploy": "docusaurus deploy", "clear": "docusaurus clear", "serve": "docusaurus serve", - "format": "prettier --write . && node src/sortOpenAPI.js", + "format": "prettier --write . && npm run sort", + "sort": "node src/sortOpenAPI.js && node src/sortAsyncAPI.js", "write-translations": "docusaurus write-translations", "write-heading-ids": "docusaurus write-heading-ids" }, diff --git a/src/sortAsyncAPI.js b/src/sortAsyncAPI.js new file mode 100644 index 000000000..84fba3027 --- /dev/null +++ b/src/sortAsyncAPI.js @@ -0,0 +1,40 @@ +const fs = require("fs"); +const yaml = require("js-yaml"); +const { forEach } = require("lodash"); + +const filePath = "./static/mqtt-api.yaml"; + +function sortObject(obj) { + return Object.keys(obj) + .sort() + .reduce((sorted, key) => { + sorted[key] = obj[key]; + return sorted; + }, {}); +} + +function sortAsyncAPI(filePath) { + try { + const data = fs.readFileSync(filePath, "utf8"); + let asyncAPI = yaml.load(data); + + if (asyncAPI.operations) { + asyncAPI.operations = sortObject(asyncAPI.operations); + } + + if (asyncAPI.components) { + ["messages", "parameters", "tags"].forEach((key) => { + if (asyncAPI.components[key]) { + asyncAPI.components[key] = sortObject(asyncAPI.components[key]); + } + }); + } + + fs.writeFileSync(filePath, yaml.dump(asyncAPI, { quotingType: '"' })); + console.log("AsyncAPI YAML file successfully sorted and updated."); + } catch (error) { + console.error("Error processing AsyncAPI YAML file:", error); + } +} + +sortAsyncAPI(filePath); diff --git a/static/mqtt-api.yaml b/static/mqtt-api.yaml index 735d67eb8..330bcb59a 100644 --- a/static/mqtt-api.yaml +++ b/static/mqtt-api.yaml @@ -1,236 +1,236 @@ -# TODO: -# - check data types -# - add examples - asyncapi: 3.0.0 info: title: evcc MQTT-API version: latest operations: - receiveLoadpointTitle: + GeneralStatusReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/title - parameters: - id: - $ref: "#/components/parameters/id" + address: evcc/status messages: - loadpointTitle: - description: "[See documentation](/en/docs/reference/configuration/loadpoints#title)" + status: + description: TODO payload: type: string + enum: + - online tags: - - $ref: "#/components/tags/loadpoints" - receiveLoadpointPriority: + - $ref: "#/components/tags/general" + GeneralUpdatedReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/priority - parameters: - id: - $ref: "#/components/parameters/id" - messages: - priority: - $ref: "#/components/messages/priority" - tags: - - $ref: "#/components/tags/loadpoints" - sendLoadpointPriority: - description: TODO - action: send - channel: - address: evcc/loadpoint/{id}/priority/set - parameters: - id: - $ref: "#/components/parameters/id" + address: evcc/updated messages: - priority: - $ref: "#/components/messages/priority" + updated: + description: TODO + payload: + type: integer + example: 1740512847 tags: - - $ref: "#/components/tags/loadpoints" - receiveLoadpointMinCurrent: + - $ref: "#/components/tags/general" + LoadpointBatteryBoostReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/minCurrent + address: evcc/loadpoint/{id}/batteryBoost parameters: id: $ref: "#/components/parameters/id" messages: - minCurrent: - $ref: "#/components/messages/minCurrent" + batteryBoost: + $ref: "#/components/messages/batteryBoost" tags: - $ref: "#/components/tags/loadpoints" - sendLoadpointMinCurrent: + LoadpointBatteryBoostSet: description: TODO action: send channel: - address: evcc/loadpoint/{id}/minCurrent/set + address: evcc/loadpoint/{id}/batteryBoost/set parameters: id: $ref: "#/components/parameters/id" messages: - minCurrent: - $ref: "#/components/messages/minCurrent" + batteryBoost: + $ref: "#/components/messages/batteryBoost" tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointMaxCurrent: + LoadpointChargeCurrentReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/maxCurrent + address: evcc/loadpoint/{id}/chargeCurrent parameters: id: $ref: "#/components/parameters/id" messages: - maxCurrent: - $ref: "#/components/messages/maxCurrent" + chargeCurrent: + description: TODO + payload: + type: integer tags: - $ref: "#/components/tags/loadpoints" - sendLoadpointMaxCurrent: + LoadpointChargeCurrentsReceive: description: TODO - action: send + action: receive channel: - address: evcc/loadpoint/{id}/maxCurrent/set + address: evcc/loadpoint/{id}/chargeCurrents parameters: id: $ref: "#/components/parameters/id" messages: - maxCurrent: - $ref: "#/components/messages/maxCurrent" + chargeCurrents: + description: TODO + payload: + type: integer tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointEnableThreshold: + LoadpointChargePowerReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/enableThreshold + address: evcc/loadpoint/{id}/chargePower parameters: id: $ref: "#/components/parameters/id" messages: - enableThreshold: - $ref: "#/components/messages/enableThreshold" + chargePower: + description: TODO + payload: + type: integer tags: - $ref: "#/components/tags/loadpoints" - sendLoadpointEnableThreshold: + LoadpointChargeRemainingDurationReceive: description: TODO - action: send + action: receive channel: - address: evcc/loadpoint/{id}/enableThreshold/set + address: evcc/loadpoint/{id}/chargeRemainingDuration parameters: id: $ref: "#/components/parameters/id" messages: - enableThreshold: - $ref: "#/components/messages/enableThreshold" - tags: - - $ref: "#/components/tags/loadpoints" - receiveLoadpointDisableThreshold: + chargeRemainingDuration: + description: TODO + payload: + type: integer + LoadpointChargeRemainingEnergyReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/disableThreshold + address: evcc/loadpoint/{id}/chargeRemainingEnergy parameters: id: $ref: "#/components/parameters/id" messages: - disableThreshold: - $ref: "#/components/messages/disableThreshold" + chargeRemainingEnergy: + description: TODO + payload: + type: number tags: - $ref: "#/components/tags/loadpoints" - sendLoadpointDisableThreshold: + LoadpointChargeTotalImportReceive: description: TODO - action: send + action: receive channel: - address: evcc/loadpoint/{id}/disableThreshold/set + address: evcc/loadpoint/{id}/chargeTotalImport parameters: id: $ref: "#/components/parameters/id" messages: - disableThreshold: - $ref: "#/components/messages/disableThreshold" + chargeTotalImport: + description: TODO + payload: + type: number tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointEnableDelay: + LoadpointChargeVehicleNameReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/enableDelay + address: evcc/loadpoint/{id}/vehicleName parameters: id: $ref: "#/components/parameters/id" messages: - enableDelay: - $ref: "#/components/messages/enableDelay" + vehicleName: + $ref: "#/components/messages/vehicleName" tags: - $ref: "#/components/tags/loadpoints" - sendLoadpointEnableDelay: + LoadpointChargeVehicleNameSet: description: TODO action: send channel: - address: evcc/loadpoint/{id}/enableDelay/set + address: evcc/loadpoint/{id}/vehicle/set parameters: id: $ref: "#/components/parameters/id" messages: - enableDelay: - $ref: "#/components/messages/enableDelay" + vehicleName: + $ref: "#/components/messages/vehicleName" tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointDisableDelay: + LoadpointChargedDurationReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/disableDelay + address: evcc/loadpoint/{id}/chargeDuration parameters: id: $ref: "#/components/parameters/id" messages: - disableDelay: - $ref: "#/components/messages/disableDelay" + chargeDuration: + description: TODO + payload: + type: integer tags: - $ref: "#/components/tags/loadpoints" - sendLoadpointDisableDelay: + LoadpointChargedEnergyReceive: description: TODO - action: send + action: receive channel: - address: evcc/loadpoint/{id}/disableDelay/set + address: evcc/loadpoint/{id}/chargedEnergy parameters: id: $ref: "#/components/parameters/id" messages: - disableDelay: - $ref: "#/components/messages/disableDelay" + chargedEnergy: + description: TODO + payload: + type: integer tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointPhasesConfigured: + LoadpointChargerFeatureHeatingReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/phasesConfigured + address: evcc/loadpoint/{id}/chargerFeatureHeating parameters: id: $ref: "#/components/parameters/id" messages: - phases: - $ref: "#/components/messages/phases" + chargerFeatureHeating: + description: TODO + payload: + type: boolean tags: - $ref: "#/components/tags/loadpoints" - sendLoadpointPhases: + LoadpointChargerFeatureIntegratedDeviceReceive: description: TODO - action: send + action: receive channel: - address: evcc/loadpoint/{id}/phases/set + address: evcc/loadpoint/{id}/chargerFeatureIntegratedDevice parameters: id: $ref: "#/components/parameters/id" messages: - phases: - $ref: "#/components/messages/phases" + chargerFeatureIntegratedDevice: + description: TODO + payload: + type: boolean tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointChargerPhases1p3p: + LoadpointChargerPhases1p3pReceive: description: TODO action: receive channel: @@ -245,7 +245,7 @@ operations: type: boolean tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointChargerSinglePhase: + LoadpointChargerSinglePhaseReceive: description: TODO action: receive channel: @@ -260,318 +260,304 @@ operations: type: boolean tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointPhasesActive: + LoadpointChargerStatusReasonReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/phasesActive + address: evcc/loadpoint/{id}/chargerStatusReason parameters: id: $ref: "#/components/parameters/id" messages: - phasesActive: + chargerStatusReason: description: TODO payload: - type: integer + type: string + enum: + - TODO tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointPhaseAction: + LoadpointChargingReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/phaseAction + address: evcc/loadpoint/{id}/charging parameters: id: $ref: "#/components/parameters/id" messages: - phaseAction: + charging: description: TODO payload: - type: string - enum: - - TODO + type: boolean tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointPhaseRemaining: + LoadpointConnectedDurationReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/phaseRemaining + address: evcc/loadpoint/{id}/connectedDuration parameters: id: $ref: "#/components/parameters/id" messages: - phaseRemaining: + connectedDuration: description: TODO payload: type: integer tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointPvAction: + LoadpointConnectedReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/pvAction + address: evcc/loadpoint/{id}/connected parameters: id: $ref: "#/components/parameters/id" messages: - pvAction: + connected: description: TODO payload: - type: string - enum: - - TODO + type: boolean tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointPvRemaining: + LoadpointDisableDelayReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/pvRemaining + address: evcc/loadpoint/{id}/disableDelay parameters: id: $ref: "#/components/parameters/id" messages: - pvRemaining: - description: TODO - payload: - type: integer + disableDelay: + $ref: "#/components/messages/disableDelay" tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointChargerFeatureIntegratedDevice: + LoadpointDisableDelaySet: description: TODO - action: receive + action: send channel: - address: evcc/loadpoint/{id}/chargerFeatureIntegratedDevice + address: evcc/loadpoint/{id}/disableDelay/set parameters: id: $ref: "#/components/parameters/id" messages: - chargerFeatureIntegratedDevice: - description: TODO - payload: - type: boolean + disableDelay: + $ref: "#/components/messages/disableDelay" tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointChargerFeatureHeating: + LoadpointDisableThresholdReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/chargerFeatureHeating + address: evcc/loadpoint/{id}/disableThreshold parameters: id: $ref: "#/components/parameters/id" messages: - chargerFeatureHeating: - description: TODO - payload: - type: boolean + disableThreshold: + $ref: "#/components/messages/disableThreshold" tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointVehicleOdometer: + LoadpointDisableThresholdSet: description: TODO - action: receive + action: send channel: - address: evcc/loadpoint/{id}/vehicleOdometer + address: evcc/loadpoint/{id}/disableThreshold/set parameters: id: $ref: "#/components/parameters/id" messages: - vehicleOdometer: - description: TODO - payload: - type: integer + disableThreshold: + $ref: "#/components/messages/disableThreshold" tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointVehicleSoc: + LoadpointEffectiveLimitSocReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/vehicleSoc + address: evcc/loadpoint/{id}/effectiveLimitSoc parameters: id: $ref: "#/components/parameters/id" messages: - vehicleSoc: + effectiveLimitSoc: description: TODO payload: - type: number + type: integer tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointVehicleRange: + LoadpointEffectiveMaxCurrentReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/vehicleRange + address: evcc/loadpoint/{id}/effectiveMaxCurrent parameters: id: $ref: "#/components/parameters/id" messages: - vehicleRange: + effectiveMaxCurrent: description: TODO payload: type: integer tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointVehicleLimitSoc: + LoadpointEffectiveMinCurrentReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/vehicleLimitSoc + address: evcc/loadpoint/{id}/effectiveMinCurrent parameters: id: $ref: "#/components/parameters/id" messages: - vehicleLimitSoc: - $ref: "#/components/messages/vehicleLimitSoc" + effectiveMinCurrent: + description: TODO + payload: + type: integer tags: - $ref: "#/components/tags/loadpoints" - sendLoadpointVehicleLimitSoc: + LoadpointEffectivePlanIdReceive: description: TODO - action: send + action: receive channel: - address: evcc/loadpoint/{id}/vehicleLimitSoc/set + address: evcc/loadpoint/{id}/effectivePlanId parameters: id: $ref: "#/components/parameters/id" messages: - vehicleLimitSoc: - $ref: "#/components/messages/vehicleLimitSoc" + effectivePlanId: + description: TODO + payload: + type: integer tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointEffectivePriority: + LoadpointEffectivePlanSocReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/effectivePriority + address: evcc/loadpoint/{id}/effectivePlanSoc parameters: id: $ref: "#/components/parameters/id" messages: - effectivePriority: + effectivePlanSoc: description: TODO payload: type: integer tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointEffectivePlanId: + LoadpointEffectivePriorityReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/effectivePlanId + address: evcc/loadpoint/{id}/effectivePriority parameters: id: $ref: "#/components/parameters/id" messages: - effectivePlanId: + effectivePriority: description: TODO payload: type: integer tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointEffectivePlanSoc: + LoadpointEnableDelayReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/effectivePlanSoc + address: evcc/loadpoint/{id}/enableDelay parameters: id: $ref: "#/components/parameters/id" messages: - effectivePlanSoc: - description: TODO - payload: - type: integer + enableDelay: + $ref: "#/components/messages/enableDelay" tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointEffectiveMinCurrent: + LoadpointEnableDelaySet: description: TODO - action: receive + action: send channel: - address: evcc/loadpoint/{id}/effectiveMinCurrent + address: evcc/loadpoint/{id}/enableDelay/set parameters: id: $ref: "#/components/parameters/id" messages: - effectiveMinCurrent: - description: TODO - payload: - type: integer + enableDelay: + $ref: "#/components/messages/enableDelay" tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointEffectiveMaxCurrent: + LoadpointEnableThresholdReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/effectiveMaxCurrent + address: evcc/loadpoint/{id}/enableThreshold parameters: id: $ref: "#/components/parameters/id" messages: - effectiveMaxCurrent: - description: TODO - payload: - type: integer + enableThreshold: + $ref: "#/components/messages/enableThreshold" tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointEffectiveLimitSoc: + LoadpointEnableThresholdSet: description: TODO - action: receive + action: send channel: - address: evcc/loadpoint/{id}/effectiveLimitSoc + address: evcc/loadpoint/{id}/enableThreshold/set parameters: id: $ref: "#/components/parameters/id" messages: - effectiveLimitSoc: - description: TODO - payload: - type: integer + enableThreshold: + $ref: "#/components/messages/enableThreshold" tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointVehicleDetectionActive: + LoadpointEnabledReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/vehicleDetectionActive + address: evcc/loadpoint/{id}/enabled parameters: id: $ref: "#/components/parameters/id" messages: - vehicleDetectionActive: + enabled: description: TODO payload: type: boolean tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointPlanEnergy: + LoadpointLimitEnergyReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/planEnergy + address: evcc/loadpoint/{id}/limitEnergy parameters: id: $ref: "#/components/parameters/id" messages: - planEnergy: - $ref: "#/components/messages/planEnergy" + limitEnergy: + $ref: "#/components/messages/limitEnergy" tags: - $ref: "#/components/tags/loadpoints" - sendLoadpointPlanEnergy: + LoadpointLimitEnergySet: description: TODO action: send channel: - address: evcc/loadpoint/{id}/planEnergy/set + address: evcc/loadpoint/{id}/limitEnergy/set parameters: id: $ref: "#/components/parameters/id" messages: - planEnergy: - $ref: "#/components/messages/planEnergy" + limitEnergy: + $ref: "#/components/messages/limitEnergy" tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointLimitSoc: + LoadpointLimitSocReceive: description: TODO action: receive channel: @@ -586,299 +572,302 @@ operations: type: integer tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointLimitEnergy: + LoadpointMaxCurrentReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/limitEnergy + address: evcc/loadpoint/{id}/maxCurrent parameters: id: $ref: "#/components/parameters/id" messages: - limitEnergy: - $ref: "#/components/messages/limitEnergy" + maxCurrent: + $ref: "#/components/messages/maxCurrent" tags: - $ref: "#/components/tags/loadpoints" - sendLoadpointLimitEnergy: + LoadpointMaxCurrentSet: description: TODO action: send channel: - address: evcc/loadpoint/{id}/limitEnergy/set + address: evcc/loadpoint/{id}/maxCurrent/set parameters: id: $ref: "#/components/parameters/id" messages: - limitEnergy: - $ref: "#/components/messages/limitEnergy" + maxCurrent: + $ref: "#/components/messages/maxCurrent" tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointPlanActive: + LoadpointMinCurrentReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/planActive + address: evcc/loadpoint/{id}/minCurrent parameters: id: $ref: "#/components/parameters/id" messages: - planActive: - description: TODO - payload: - type: boolean + minCurrent: + $ref: "#/components/messages/minCurrent" tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointBatteryBoost: + LoadpointMinCurrentSet: + description: TODO + action: send + channel: + address: evcc/loadpoint/{id}/minCurrent/set + parameters: + id: + $ref: "#/components/parameters/id" + messages: + minCurrent: + $ref: "#/components/messages/minCurrent" + tags: + - $ref: "#/components/tags/loadpoints" + LoadpointModeReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/batteryBoost + address: evcc/loadpoint/{id}/mode parameters: id: $ref: "#/components/parameters/id" messages: - batteryBoost: - $ref: "#/components/messages/batteryBoost" + mode: + $ref: "#/components/messages/mode" tags: - $ref: "#/components/tags/loadpoints" - sendLoadpointBatteryBoost: + LoadpointModeSet: description: TODO action: send channel: - address: evcc/loadpoint/{id}/batteryBoost/set + address: evcc/loadpoint/{id}/mode/set parameters: id: $ref: "#/components/parameters/id" messages: - batteryBoost: - $ref: "#/components/messages/batteryBoost" + mode: + $ref: "#/components/messages/mode" tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointChargeCurrent: + LoadpointPhaseActionReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/chargeCurrent + address: evcc/loadpoint/{id}/phaseAction parameters: id: $ref: "#/components/parameters/id" messages: - chargeCurrent: + phaseAction: description: TODO payload: - type: integer + type: string + enum: + - TODO tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointChargePower: + LoadpointPhaseRemainingReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/chargePower + address: evcc/loadpoint/{id}/phaseRemaining parameters: id: $ref: "#/components/parameters/id" messages: - chargePower: + phaseRemaining: description: TODO payload: type: integer tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointChargeCurrents: + LoadpointPhasesActiveReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/chargeCurrents + address: evcc/loadpoint/{id}/phasesActive parameters: id: $ref: "#/components/parameters/id" messages: - chargeCurrents: + phasesActive: description: TODO payload: type: integer tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointSmartCostActive: + LoadpointPhasesConfiguredReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/smartCostActive + address: evcc/loadpoint/{id}/phasesConfigured parameters: id: $ref: "#/components/parameters/id" messages: - smartCostActive: - description: TODO - payload: - type: boolean + phases: + $ref: "#/components/messages/phases" tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointSessionEnergy: + LoadpointPhasesSet: description: TODO - action: receive + action: send channel: - address: evcc/loadpoint/{id}/sessionEnergy + address: evcc/loadpoint/{id}/phases/set parameters: id: $ref: "#/components/parameters/id" messages: - sessionEnergy: - description: TODO - payload: - type: integer + phases: + $ref: "#/components/messages/phases" tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointSessionSolarPercentage: + LoadpointPlanActiveReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/sessionSolarPercentage + address: evcc/loadpoint/{id}/planActive parameters: id: $ref: "#/components/parameters/id" messages: - sessionSolarPercentage: + planActive: description: TODO payload: - type: number + type: boolean tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointChargedEnergy: + LoadpointPlanEnergyReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/chargedEnergy + address: evcc/loadpoint/{id}/planEnergy parameters: id: $ref: "#/components/parameters/id" messages: - chargedEnergy: - description: TODO - payload: - type: integer + planEnergy: + $ref: "#/components/messages/planEnergy" tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointChargedDuration: + LoadpointPlanEnergySet: description: TODO - action: receive + action: send channel: - address: evcc/loadpoint/{id}/chargeDuration + address: evcc/loadpoint/{id}/planEnergy/set parameters: id: $ref: "#/components/parameters/id" messages: - chargeDuration: - description: TODO - payload: - type: integer + planEnergy: + $ref: "#/components/messages/planEnergy" tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointChargeTotalImport: + LoadpointPlanOverrunReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/chargeTotalImport + address: evcc/loadpoint/{id}/planOverrun parameters: id: $ref: "#/components/parameters/id" messages: - chargeTotalImport: + planOverrun: description: TODO payload: - type: number + type: integer tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointConnectedDuration: + LoadpointPriorityReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/connectedDuration + address: evcc/loadpoint/{id}/priority parameters: id: $ref: "#/components/parameters/id" messages: - connectedDuration: - description: TODO - payload: - type: integer + priority: + $ref: "#/components/messages/priority" tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointVehicleWelcomeActive: + LoadpointPrioritySet: description: TODO - action: receive + action: send channel: - address: evcc/loadpoint/{id}/vehicleWelcomeActive + address: evcc/loadpoint/{id}/priority/set parameters: id: $ref: "#/components/parameters/id" messages: - vehicleWelcomeActive: - description: TODO - payload: - type: boolean + priority: + $ref: "#/components/messages/priority" tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointConnected: + LoadpointPvActionReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/connected + address: evcc/loadpoint/{id}/pvAction parameters: id: $ref: "#/components/parameters/id" messages: - connected: + pvAction: description: TODO payload: - type: boolean + type: string + enum: + - TODO tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointCharging: + LoadpointPvRemainingReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/charging + address: evcc/loadpoint/{id}/pvRemaining parameters: id: $ref: "#/components/parameters/id" messages: - charging: + pvRemaining: description: TODO payload: - type: boolean + type: integer tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointEnabled: + LoadpointSessionCo2PerKWhReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/enabled + address: evcc/loadpoint/{id}/sessionCo2PerKWh parameters: id: $ref: "#/components/parameters/id" messages: - enabled: + sessionCo2PerKWh: description: TODO payload: - type: boolean + type: number tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointPlanOverrun: + LoadpointSessionEnergyReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/planOverrun + address: evcc/loadpoint/{id}/sessionEnergy parameters: id: $ref: "#/components/parameters/id" messages: - planOverrun: + sessionEnergy: description: TODO payload: type: integer tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointSessionPricePerKWh: + LoadpointSessionPricePerKWhReceive: description: TODO action: receive channel: @@ -893,7 +882,7 @@ operations: type: number tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointSessionPrice: + LoadpointSessionPriceReceive: description: TODO action: receive channel: @@ -908,220 +897,233 @@ operations: type: number tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointSessionCo2PerKWh: + LoadpointSessionSolarPercentageReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/sessionCo2PerKWh + address: evcc/loadpoint/{id}/sessionSolarPercentage parameters: id: $ref: "#/components/parameters/id" messages: - sessionCo2PerKWh: + sessionSolarPercentage: description: TODO payload: type: number tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointChargerStatusReason: + LoadpointSmartCostActiveReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/chargerStatusReason + address: evcc/loadpoint/{id}/smartCostActive parameters: id: $ref: "#/components/parameters/id" messages: - chargerStatusReason: + smartCostActive: description: TODO payload: - type: string - enum: - - TODO + type: boolean tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointChargeRemainingEnergy: + LoadpointSmartCostLimitSet: description: TODO - action: receive + action: send channel: - address: evcc/loadpoint/{id}/chargeRemainingEnergy + address: evcc/loadpoint/{id}/smartCostLimit/set parameters: id: $ref: "#/components/parameters/id" messages: - chargeRemainingEnergy: + smartCostLimit: description: TODO payload: type: number tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointChargeRemainingDuration: + LoadpointTitleReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/chargeRemainingDuration + address: evcc/loadpoint/{id}/title parameters: id: $ref: "#/components/parameters/id" messages: - chargeRemainingDuration: - description: TODO + loadpointTitle: + description: >- + [See + documentation](/en/docs/reference/configuration/loadpoints#title) payload: - type: integer - receiveLoadpointChargeVehicleName: + type: string + tags: + - $ref: "#/components/tags/loadpoints" + LoadpointVehicleDetectionActiveReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/vehicleName + address: evcc/loadpoint/{id}/vehicleDetectionActive parameters: id: $ref: "#/components/parameters/id" messages: - vehicleName: - $ref: "#/components/messages/vehicleName" + vehicleDetectionActive: + description: TODO + payload: + type: boolean tags: - $ref: "#/components/tags/loadpoints" - sendLoadpointChargeVehicleName: + LoadpointVehicleLimitSocReceive: description: TODO - action: send + action: receive channel: - address: evcc/loadpoint/{id}/vehicle/set + address: evcc/loadpoint/{id}/vehicleLimitSoc parameters: id: $ref: "#/components/parameters/id" messages: - vehicleName: - $ref: "#/components/messages/vehicleName" + vehicleLimitSoc: + $ref: "#/components/messages/vehicleLimitSoc" tags: - $ref: "#/components/tags/loadpoints" - receiveLoadpointMode: + LoadpointVehicleLimitSocSet: description: TODO - action: receive + action: send channel: - address: evcc/loadpoint/{id}/mode + address: evcc/loadpoint/{id}/vehicleLimitSoc/set parameters: id: $ref: "#/components/parameters/id" messages: - mode: - $ref: "#/components/messages/mode" + vehicleLimitSoc: + $ref: "#/components/messages/vehicleLimitSoc" tags: - $ref: "#/components/tags/loadpoints" - sendLoadpointMode: + LoadpointVehicleOdometerReceive: description: TODO - action: send + action: receive channel: - address: evcc/loadpoint/{id}/mode/set + address: evcc/loadpoint/{id}/vehicleOdometer parameters: id: $ref: "#/components/parameters/id" messages: - mode: - $ref: "#/components/messages/mode" + vehicleOdometer: + description: TODO + payload: + type: integer tags: - $ref: "#/components/tags/loadpoints" - sendLoadpointSmartCostLimit: + LoadpointVehicleRangeReceive: description: TODO - action: send + action: receive channel: - address: evcc/loadpoint/{id}/smartCostLimit/set + address: evcc/loadpoint/{id}/vehicleRange parameters: id: $ref: "#/components/parameters/id" messages: - smartCostLimit: + vehicleRange: description: TODO payload: - type: number + type: integer tags: - $ref: "#/components/tags/loadpoints" - receiveStatus: + LoadpointVehicleSocReceive: description: TODO action: receive channel: - address: evcc/status + address: evcc/loadpoint/{id}/vehicleSoc + parameters: + id: + $ref: "#/components/parameters/id" messages: - status: + vehicleSoc: description: TODO payload: - type: string - enum: - - online + type: number tags: - - $ref: "#/components/tags/general" - receiveUpdated: + - $ref: "#/components/tags/loadpoints" + LoadpointVehicleWelcomeActiveReceive: description: TODO action: receive channel: - address: evcc/updated + address: evcc/loadpoint/{id}/vehicleWelcomeActive + parameters: + id: + $ref: "#/components/parameters/id" messages: - updated: + vehicleWelcomeActive: description: TODO payload: - type: integer - example: 1740512847 + type: boolean tags: - - $ref: "#/components/tags/general" + - $ref: "#/components/tags/loadpoints" components: messages: - limitEnergy: + batteryBoost: + description: TODO + payload: + type: boolean + disableDelay: description: TODO payload: type: integer - vehicleLimitSoc: + disableThreshold: + description: TODO + payload: + type: number + enableDelay: description: TODO payload: type: integer - batteryBoost: + enableThreshold: description: TODO payload: - type: boolean - planEnergy: + type: number + limitEnergy: + description: TODO + payload: + type: integer + maxCurrent: + description: TODO + payload: + type: integer + minCurrent: description: TODO payload: type: integer mode: - description: Charging mode. [Read more.](/en/docs/reference/configuration/loadpoints#mode) + description: >- + Charging mode. [Read + more.](/en/docs/reference/configuration/loadpoints#mode) payload: type: string enum: - - off + - "off" - pv - minpv - now phases: - description: "Number of phases. (0: auto, 1: 1-phase, 3: 3-phase) [Read more.](/en/docs/reference/configuration/loadpoints#phases)" + description: >- + Number of phases. (0: auto, 1: 1-phase, 3: 3-phase) [Read + more.](/en/docs/reference/configuration/loadpoints#phases) payload: type: integer enum: - "0" - "1" - "3" - priority: - description: TODO - payload: - type: integer - minCurrent: - description: TODO - payload: - type: integer - maxCurrent: + planEnergy: description: TODO payload: type: integer - enableThreshold: - description: TODO - payload: - type: number - disableThreshold: - description: TODO - payload: - type: number - enableDelay: + priority: description: TODO payload: type: integer - disableDelay: + vehicleLimitSoc: description: TODO payload: type: integer @@ -1141,7 +1143,7 @@ components: name: General loadpoints: name: Loadpoints - vehicles: - name: Vehicles site: name: Site + vehicles: + name: Vehicles From 06b75e518b96fa89e54bfafdae60aebaafaba91e Mon Sep 17 00:00:00 2001 From: Maschga Date: Wed, 26 Feb 2025 14:55:12 +0100 Subject: [PATCH 23/35] wip --- static/mqtt-api.yaml | 358 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 285 insertions(+), 73 deletions(-) diff --git a/static/mqtt-api.yaml b/static/mqtt-api.yaml index 330bcb59a..e69a91884 100644 --- a/static/mqtt-api.yaml +++ b/static/mqtt-api.yaml @@ -34,7 +34,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/batteryBoost + address: evcc/loadpoints/{id}/batteryBoost parameters: id: $ref: "#/components/parameters/id" @@ -47,7 +47,7 @@ operations: description: TODO action: send channel: - address: evcc/loadpoint/{id}/batteryBoost/set + address: evcc/loadpoints/{id}/batteryBoost/set parameters: id: $ref: "#/components/parameters/id" @@ -60,7 +60,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/chargeCurrent + address: evcc/loadpoints/{id}/chargeCurrent parameters: id: $ref: "#/components/parameters/id" @@ -75,7 +75,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/chargeCurrents + address: evcc/loadpoints/{id}/chargeCurrents parameters: id: $ref: "#/components/parameters/id" @@ -90,7 +90,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/chargePower + address: evcc/loadpoints/{id}/chargePower parameters: id: $ref: "#/components/parameters/id" @@ -105,7 +105,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/chargeRemainingDuration + address: evcc/loadpoints/{id}/chargeRemainingDuration parameters: id: $ref: "#/components/parameters/id" @@ -118,7 +118,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/chargeRemainingEnergy + address: evcc/loadpoints/{id}/chargeRemainingEnergy parameters: id: $ref: "#/components/parameters/id" @@ -133,7 +133,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/chargeTotalImport + address: evcc/loadpoints/{id}/chargeTotalImport parameters: id: $ref: "#/components/parameters/id" @@ -148,7 +148,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/vehicleName + address: evcc/loadpoints/{id}/vehicleName parameters: id: $ref: "#/components/parameters/id" @@ -161,20 +161,28 @@ operations: description: TODO action: send channel: - address: evcc/loadpoint/{id}/vehicle/set + address: evcc/loadpoints/{id}/vehicle/set parameters: id: $ref: "#/components/parameters/id" messages: vehicleName: - $ref: "#/components/messages/vehicleName" + description: TODO + payload: + type: string + examples: + - Cupra Born + - "-" + - nil + - "null" + - none tags: - $ref: "#/components/tags/loadpoints" LoadpointChargedDurationReceive: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/chargeDuration + address: evcc/loadpoints/{id}/chargeDuration parameters: id: $ref: "#/components/parameters/id" @@ -189,7 +197,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/chargedEnergy + address: evcc/loadpoints/{id}/chargedEnergy parameters: id: $ref: "#/components/parameters/id" @@ -204,7 +212,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/chargerFeatureHeating + address: evcc/loadpoints/{id}/chargerFeatureHeating parameters: id: $ref: "#/components/parameters/id" @@ -219,7 +227,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/chargerFeatureIntegratedDevice + address: evcc/loadpoints/{id}/chargerFeatureIntegratedDevice parameters: id: $ref: "#/components/parameters/id" @@ -234,7 +242,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/chargerPhases1p3p + address: evcc/loadpoints/{id}/chargerPhases1p3p parameters: id: $ref: "#/components/parameters/id" @@ -249,7 +257,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/chargerSinglePhase + address: evcc/loadpoints/{id}/chargerSinglePhase parameters: id: $ref: "#/components/parameters/id" @@ -264,7 +272,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/chargerStatusReason + address: evcc/loadpoints/{id}/chargerStatusReason parameters: id: $ref: "#/components/parameters/id" @@ -281,7 +289,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/charging + address: evcc/loadpoints/{id}/charging parameters: id: $ref: "#/components/parameters/id" @@ -296,7 +304,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/connectedDuration + address: evcc/loadpoints/{id}/connectedDuration parameters: id: $ref: "#/components/parameters/id" @@ -311,7 +319,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/connected + address: evcc/loadpoints/{id}/connected parameters: id: $ref: "#/components/parameters/id" @@ -326,7 +334,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/disableDelay + address: evcc/loadpoints/{id}/disableDelay parameters: id: $ref: "#/components/parameters/id" @@ -339,7 +347,7 @@ operations: description: TODO action: send channel: - address: evcc/loadpoint/{id}/disableDelay/set + address: evcc/loadpoints/{id}/disableDelay/set parameters: id: $ref: "#/components/parameters/id" @@ -352,7 +360,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/disableThreshold + address: evcc/loadpoints/{id}/disableThreshold parameters: id: $ref: "#/components/parameters/id" @@ -365,7 +373,7 @@ operations: description: TODO action: send channel: - address: evcc/loadpoint/{id}/disableThreshold/set + address: evcc/loadpoints/{id}/disableThreshold/set parameters: id: $ref: "#/components/parameters/id" @@ -378,7 +386,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/effectiveLimitSoc + address: evcc/loadpoints/{id}/effectiveLimitSoc parameters: id: $ref: "#/components/parameters/id" @@ -393,7 +401,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/effectiveMaxCurrent + address: evcc/loadpoints/{id}/effectiveMaxCurrent parameters: id: $ref: "#/components/parameters/id" @@ -408,7 +416,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/effectiveMinCurrent + address: evcc/loadpoints/{id}/effectiveMinCurrent parameters: id: $ref: "#/components/parameters/id" @@ -423,7 +431,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/effectivePlanId + address: evcc/loadpoints/{id}/effectivePlanId parameters: id: $ref: "#/components/parameters/id" @@ -438,7 +446,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/effectivePlanSoc + address: evcc/loadpoints/{id}/effectivePlanSoc parameters: id: $ref: "#/components/parameters/id" @@ -453,7 +461,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/effectivePriority + address: evcc/loadpoints/{id}/effectivePriority parameters: id: $ref: "#/components/parameters/id" @@ -468,7 +476,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/enableDelay + address: evcc/loadpoints/{id}/enableDelay parameters: id: $ref: "#/components/parameters/id" @@ -481,7 +489,7 @@ operations: description: TODO action: send channel: - address: evcc/loadpoint/{id}/enableDelay/set + address: evcc/loadpoints/{id}/enableDelay/set parameters: id: $ref: "#/components/parameters/id" @@ -494,7 +502,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/enableThreshold + address: evcc/loadpoints/{id}/enableThreshold parameters: id: $ref: "#/components/parameters/id" @@ -507,7 +515,7 @@ operations: description: TODO action: send channel: - address: evcc/loadpoint/{id}/enableThreshold/set + address: evcc/loadpoints/{id}/enableThreshold/set parameters: id: $ref: "#/components/parameters/id" @@ -520,7 +528,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/enabled + address: evcc/loadpoints/{id}/enabled parameters: id: $ref: "#/components/parameters/id" @@ -535,7 +543,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/limitEnergy + address: evcc/loadpoints/{id}/limitEnergy parameters: id: $ref: "#/components/parameters/id" @@ -548,7 +556,7 @@ operations: description: TODO action: send channel: - address: evcc/loadpoint/{id}/limitEnergy/set + address: evcc/loadpoints/{id}/limitEnergy/set parameters: id: $ref: "#/components/parameters/id" @@ -561,7 +569,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/limitSoc + address: evcc/loadpoints/{id}/limitSoc parameters: id: $ref: "#/components/parameters/id" @@ -576,7 +584,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/maxCurrent + address: evcc/loadpoints/{id}/maxCurrent parameters: id: $ref: "#/components/parameters/id" @@ -589,7 +597,7 @@ operations: description: TODO action: send channel: - address: evcc/loadpoint/{id}/maxCurrent/set + address: evcc/loadpoints/{id}/maxCurrent/set parameters: id: $ref: "#/components/parameters/id" @@ -602,7 +610,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/minCurrent + address: evcc/loadpoints/{id}/minCurrent parameters: id: $ref: "#/components/parameters/id" @@ -615,7 +623,7 @@ operations: description: TODO action: send channel: - address: evcc/loadpoint/{id}/minCurrent/set + address: evcc/loadpoints/{id}/minCurrent/set parameters: id: $ref: "#/components/parameters/id" @@ -628,7 +636,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/mode + address: evcc/loadpoints/{id}/mode parameters: id: $ref: "#/components/parameters/id" @@ -641,7 +649,7 @@ operations: description: TODO action: send channel: - address: evcc/loadpoint/{id}/mode/set + address: evcc/loadpoints/{id}/mode/set parameters: id: $ref: "#/components/parameters/id" @@ -654,7 +662,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/phaseAction + address: evcc/loadpoints/{id}/phaseAction parameters: id: $ref: "#/components/parameters/id" @@ -671,7 +679,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/phaseRemaining + address: evcc/loadpoints/{id}/phaseRemaining parameters: id: $ref: "#/components/parameters/id" @@ -686,7 +694,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/phasesActive + address: evcc/loadpoints/{id}/phasesActive parameters: id: $ref: "#/components/parameters/id" @@ -701,7 +709,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/phasesConfigured + address: evcc/loadpoints/{id}/phasesConfigured parameters: id: $ref: "#/components/parameters/id" @@ -714,7 +722,7 @@ operations: description: TODO action: send channel: - address: evcc/loadpoint/{id}/phases/set + address: evcc/loadpoints/{id}/phases/set parameters: id: $ref: "#/components/parameters/id" @@ -727,7 +735,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/planActive + address: evcc/loadpoints/{id}/planActive parameters: id: $ref: "#/components/parameters/id" @@ -742,7 +750,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/planEnergy + address: evcc/loadpoints/{id}/planEnergy parameters: id: $ref: "#/components/parameters/id" @@ -755,7 +763,7 @@ operations: description: TODO action: send channel: - address: evcc/loadpoint/{id}/planEnergy/set + address: evcc/loadpoints/{id}/planEnergy/set parameters: id: $ref: "#/components/parameters/id" @@ -768,7 +776,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/planOverrun + address: evcc/loadpoints/{id}/planOverrun parameters: id: $ref: "#/components/parameters/id" @@ -783,7 +791,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/priority + address: evcc/loadpoints/{id}/priority parameters: id: $ref: "#/components/parameters/id" @@ -796,7 +804,7 @@ operations: description: TODO action: send channel: - address: evcc/loadpoint/{id}/priority/set + address: evcc/loadpoints/{id}/priority/set parameters: id: $ref: "#/components/parameters/id" @@ -809,7 +817,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/pvAction + address: evcc/loadpoints/{id}/pvAction parameters: id: $ref: "#/components/parameters/id" @@ -826,7 +834,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/pvRemaining + address: evcc/loadpoints/{id}/pvRemaining parameters: id: $ref: "#/components/parameters/id" @@ -841,7 +849,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/sessionCo2PerKWh + address: evcc/loadpoints/{id}/sessionCo2PerKWh parameters: id: $ref: "#/components/parameters/id" @@ -856,7 +864,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/sessionEnergy + address: evcc/loadpoints/{id}/sessionEnergy parameters: id: $ref: "#/components/parameters/id" @@ -871,7 +879,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/sessionPricePerKWh + address: evcc/loadpoints/{id}/sessionPricePerKWh parameters: id: $ref: "#/components/parameters/id" @@ -886,7 +894,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/sessionPrice + address: evcc/loadpoints/{id}/sessionPrice parameters: id: $ref: "#/components/parameters/id" @@ -901,7 +909,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/sessionSolarPercentage + address: evcc/loadpoints/{id}/sessionSolarPercentage parameters: id: $ref: "#/components/parameters/id" @@ -916,7 +924,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/smartCostActive + address: evcc/loadpoints/{id}/smartCostActive parameters: id: $ref: "#/components/parameters/id" @@ -931,7 +939,7 @@ operations: description: TODO action: send channel: - address: evcc/loadpoint/{id}/smartCostLimit/set + address: evcc/loadpoints/{id}/smartCostLimit/set parameters: id: $ref: "#/components/parameters/id" @@ -946,7 +954,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/title + address: evcc/loadpoints/{id}/title parameters: id: $ref: "#/components/parameters/id" @@ -963,7 +971,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/vehicleDetectionActive + address: evcc/loadpoints/{id}/vehicleDetectionActive parameters: id: $ref: "#/components/parameters/id" @@ -978,7 +986,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/vehicleLimitSoc + address: evcc/loadpoints/{id}/vehicleLimitSoc parameters: id: $ref: "#/components/parameters/id" @@ -991,7 +999,7 @@ operations: description: TODO action: send channel: - address: evcc/loadpoint/{id}/vehicleLimitSoc/set + address: evcc/loadpoints/{id}/vehicleLimitSoc/set parameters: id: $ref: "#/components/parameters/id" @@ -1004,7 +1012,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/vehicleOdometer + address: evcc/loadpoints/{id}/vehicleOdometer parameters: id: $ref: "#/components/parameters/id" @@ -1019,7 +1027,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/vehicleRange + address: evcc/loadpoints/{id}/vehicleRange parameters: id: $ref: "#/components/parameters/id" @@ -1034,7 +1042,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/vehicleSoc + address: evcc/loadpoints/{id}/vehicleSoc parameters: id: $ref: "#/components/parameters/id" @@ -1049,7 +1057,7 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoint/{id}/vehicleWelcomeActive + address: evcc/loadpoints/{id}/vehicleWelcomeActive parameters: id: $ref: "#/components/parameters/id" @@ -1060,6 +1068,205 @@ operations: type: boolean tags: - $ref: "#/components/tags/loadpoints" + VehicleCapacityReceive: + description: TODO + action: receive + channel: + address: evcc/vehicles/{vehicleName}/capacity + parameters: + vehicleName: + $ref: "#/components/parameters/vehicleName" + messages: + capacity: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/vehicles" + VehicleFeatureReceive: + description: TODO + action: receive + channel: + address: evcc/vehicles/{vehicleName}/features/{id} + parameters: + vehicleName: + $ref: "#/components/parameters/vehicleName" + id: + $ref: "#/components/parameters/id" + messages: + feature: + description: TODO + payload: + type: string + enum: + - offline + - TODO + tags: + - $ref: "#/components/tags/vehicles" + VehicleFeaturesReceive: + description: TODO + action: receive + channel: + address: evcc/vehicles/{vehicleName}/features + parameters: + vehicleName: + $ref: "#/components/parameters/vehicleName" + messages: + features: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/vehicles" + VehicleIconReceive: + description: TODO + action: receive + channel: + address: evcc/vehicles/{vehicleName}/icon + parameters: + vehicleName: + $ref: "#/components/parameters/vehicleName" + messages: + icon: + description: TODO + payload: + type: string + enum: + - TODO + tags: + - $ref: "#/components/tags/vehicles" + VehicleRepeatingPlanActiveReceive: + description: TODO + action: receive + channel: + address: evcc/vehicles/{vehicleName}/repeatingPlans/{id}/active + parameters: + vehicleName: + $ref: "#/components/parameters/vehicleName" + id: + $ref: "#/components/parameters/id" + messages: + active: + description: TODO + payload: + type: boolean + tags: + - $ref: "#/components/tags/vehicles" + VehicleRepeatingPlanSocReceive: + description: TODO + action: receive + channel: + address: evcc/vehicles/{vehicleName}/repeatingPlans/{id}/soc + parameters: + vehicleName: + $ref: "#/components/parameters/vehicleName" + id: + $ref: "#/components/parameters/id" + messages: + soc: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/vehicles" + VehicleRepeatingPlanTimeReceive: + description: TODO + action: receive + channel: + address: evcc/vehicles/{vehicleName}/repeatingPlans/{id}/time + parameters: + vehicleName: + $ref: "#/components/parameters/vehicleName" + id: + $ref: "#/components/parameters/id" + messages: + time: + description: TODO + payload: + type: string + tags: + - $ref: "#/components/tags/vehicles" + VehicleRepeatingPlanTzReceive: + description: TODO + action: receive + channel: + address: evcc/vehicles/{vehicleName}/repeatingPlans/{id}/tz + parameters: + vehicleName: + $ref: "#/components/parameters/vehicleName" + id: + $ref: "#/components/parameters/id" + messages: + tz: + description: TODO + payload: + type: string + tags: + - $ref: "#/components/tags/vehicles" + VehicleRepeatingPlanWeekdayReceive: + description: TODO + action: receive + channel: + address: evcc/vehicles/{vehicleName}/repeatingPlans/{planId}/weekdays/{weekdayId} + parameters: + vehicleName: + $ref: "#/components/parameters/vehicleName" + planId: + $ref: "#/components/parameters/id" + weekdayId: + $ref: "#/components/parameters/id" + messages: + weekday: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/vehicles" + VehicleRepeatingPlanWeekdaysReceive: + description: TODO + action: receive + channel: + address: evcc/vehicles/{vehicleName}/repeatingPlans/{id}/weekdays + parameters: + vehicleName: + $ref: "#/components/parameters/vehicleName" + id: + $ref: "#/components/parameters/id" + messages: + weekdays: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/vehicles" + VehicleRepeatingPlansReceive: + description: TODO + action: receive + channel: + address: evcc/vehicles/{vehicleName}/repeatingPlans + parameters: + vehicleName: + $ref: "#/components/parameters/vehicleName" + messages: + repeatingPlans: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/vehicles" + VehicleTitleReceive: + description: TODO + action: receive + channel: + address: evcc/vehicles/{vehicleName}/title + parameters: + vehicleName: + $ref: "#/components/parameters/vehicleName" + messages: + title: + $ref: "#/components/messages/vehicleName" + tags: + - $ref: "#/components/tags/vehicles" components: messages: batteryBoost: @@ -1138,6 +1345,11 @@ components: - "1" - "2" - "5" + vehicleName: + description: TODO + examples: + - db:19 + - vehicle_1 tags: general: name: General From 969de60667d23deb01d07eba22abf3b48a06a4d9 Mon Sep 17 00:00:00 2001 From: Maschga Date: Wed, 26 Feb 2025 14:59:07 +0100 Subject: [PATCH 24/35] wip --- static/mqtt-api.yaml | 54 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/static/mqtt-api.yaml b/static/mqtt-api.yaml index e69a91884..c3ea91ae5 100644 --- a/static/mqtt-api.yaml +++ b/static/mqtt-api.yaml @@ -1068,6 +1068,18 @@ operations: type: boolean tags: - $ref: "#/components/tags/loadpoints" + LoadpointsReceive: + description: TODO + action: receive + channel: + address: evcc/loadpoints + messages: + loadpoints: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/loadpoints" VehicleCapacityReceive: description: TODO action: receive @@ -1135,6 +1147,36 @@ operations: - TODO tags: - $ref: "#/components/tags/vehicles" + VehiclePlanSocReceive: + description: TODO + action: receive + channel: + address: evcc/vehicles/{vehicleName}/plan/soc + parameters: + vehicleName: + $ref: "#/components/parameters/vehicleName" + messages: + soc: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/vehicles" + VehiclePlanTimeReceive: + description: TODO + action: receive + channel: + address: evcc/vehicles/{vehicleName}/plan/time + parameters: + vehicleName: + $ref: "#/components/parameters/vehicleName" + messages: + time: + description: TODO + payload: + type: string + tags: + - $ref: "#/components/tags/vehicles" VehicleRepeatingPlanActiveReceive: description: TODO action: receive @@ -1267,6 +1309,18 @@ operations: $ref: "#/components/messages/vehicleName" tags: - $ref: "#/components/tags/vehicles" + VehiclesReceive: + description: TODO + action: receive + channel: + address: evcc/vehicles + messages: + vehicles: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/vehicles" components: messages: batteryBoost: From 706b834bede61f6fab9680b16fa08d1213fd1903 Mon Sep 17 00:00:00 2001 From: Maschga Date: Wed, 26 Feb 2025 16:18:47 +0100 Subject: [PATCH 25/35] wip --- static/mqtt-api.yaml | 101 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 95 insertions(+), 6 deletions(-) diff --git a/static/mqtt-api.yaml b/static/mqtt-api.yaml index c3ea91ae5..0f45fde0b 100644 --- a/static/mqtt-api.yaml +++ b/static/mqtt-api.yaml @@ -756,7 +756,9 @@ operations: $ref: "#/components/parameters/id" messages: planEnergy: - $ref: "#/components/messages/planEnergy" + description: TODO + payload: + type: integer tags: - $ref: "#/components/tags/loadpoints" LoadpointPlanEnergySet: @@ -769,7 +771,16 @@ operations: $ref: "#/components/parameters/id" messages: planEnergy: - $ref: "#/components/messages/planEnergy" + contentType: application/json + payload: + type: object + properties: + time: + description: TODO + type: string + value: + description: TODO + type: integer tags: - $ref: "#/components/tags/loadpoints" LoadpointPlanOverrunReceive: @@ -1147,6 +1158,66 @@ operations: - TODO tags: - $ref: "#/components/tags/vehicles" + VehicleLimitSocReceive: + description: TODO + action: receive + channel: + address: evcc/vehicles/{vehicleName}/limitSoc + parameters: + vehicleName: + $ref: "#/components/parameters/vehicleName" + messages: + limitSoc: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/vehicles" + VehicleLimitSocSet: + description: TODO + action: send + channel: + address: evcc/vehicles/{vehicleName}/limitSoc/set + parameters: + vehicleName: + $ref: "#/components/parameters/vehicleName" + messages: + limitSoc: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/vehicles" + VehicleMinSocReceive: + description: TODO + action: receive + channel: + address: evcc/vehicles/{vehicleName}/minSoc + parameters: + vehicleName: + $ref: "#/components/parameters/vehicleName" + messages: + minSoc: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/vehicles" + VehicleMinSocSet: + description: TODO + action: send + channel: + address: evcc/vehicles/{vehicleName}/minSoc/set + parameters: + vehicleName: + $ref: "#/components/parameters/vehicleName" + messages: + minSoc: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/vehicles" VehiclePlanSocReceive: description: TODO action: receive @@ -1162,6 +1233,28 @@ operations: type: integer tags: - $ref: "#/components/tags/vehicles" + VehiclePlanSocSet: + description: TODO + action: send + channel: + address: evcc/vehicles/{vehicleName}/planSoc/set + parameters: + vehicleName: + $ref: "#/components/parameters/vehicleName" + messages: + planSoc: + description: TODO + payload: + type: object + properties: + time: + description: TODO + type: string + value: + description: TODO + type: string + tags: + - $ref: "#/components/tags/vehicles" VehiclePlanTimeReceive: description: TODO action: receive @@ -1376,10 +1469,6 @@ components: - "0" - "1" - "3" - planEnergy: - description: TODO - payload: - type: integer priority: description: TODO payload: From 1ccdcce5533410d354441d0cdbd2a5c0cd04ed02 Mon Sep 17 00:00:00 2001 From: Maschga Date: Thu, 27 Feb 2025 20:59:30 +0100 Subject: [PATCH 26/35] wip --- static/mqtt-api.yaml | 447 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 447 insertions(+) diff --git a/static/mqtt-api.yaml b/static/mqtt-api.yaml index 0f45fde0b..3c6069bf0 100644 --- a/static/mqtt-api.yaml +++ b/static/mqtt-api.yaml @@ -1414,6 +1414,453 @@ operations: type: integer tags: - $ref: "#/components/tags/vehicles" + SitePvsReceive: + description: TODO + action: receive + channel: + address: evcc/site/pv + messages: + pvs: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/site" + SitePvPowerReceive: + description: TODO + action: receive + channel: + address: evcc/site/pv/{id}/power + parameters: + id: + $ref: "#/components/parameters/id" + messages: + pvPower: + description: TODO + payload: + type: number + tags: + - $ref: "#/components/tags/site" + SiteBatteriesReceive: + description: TODO + action: receive + channel: + address: evcc/site/battery + messages: + batteries: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/site" + SiteBatteryPowerReceive: + description: TODO + action: receive + channel: + address: evcc/site/battery/{id}/power + parameters: + id: + $ref: "#/components/parameters/id" + messages: + batteryPower: + description: TODO + payload: + type: number + tags: + - $ref: "#/components/tags/site" + SiteBatteryCapacityReceive: + description: TODO + action: receive + channel: + address: evcc/site/battery/{id}/capacity + parameters: + id: + $ref: "#/components/parameters/id" + messages: + capacity: + description: TODO + payload: + type: number + tags: + - $ref: "#/components/tags/site" + SiteBatterySocReceive: + description: TODO + action: receive + channel: + address: evcc/site/battery/{id}/soc + parameters: + id: + $ref: "#/components/parameters/id" + messages: + batterySoc: + description: TODO + payload: + type: number + tags: + - $ref: "#/components/tags/site" + SiteBatteryControllableReceive: + description: TODO + action: receive + channel: + address: evcc/site/battery/{id}/controllable + parameters: + id: + $ref: "#/components/parameters/id" + messages: + batteryControllable: + description: TODO + payload: + type: boolean + tags: + - $ref: "#/components/tags/site" + SiteEebusReceive: + description: TODO + action: receive + channel: + address: evcc/site/eebus + messages: + eebus: + description: TODO + payload: + type: boolean + tags: + - $ref: "#/components/tags/site" + SiteInfluxInsecureReceive: + description: TODO + action: receive + channel: + address: evcc/site/influx/insecure + messages: + influxInsecure: + description: TODO + payload: + type: boolean + tags: + - $ref: "#/components/tags/site" + SiteIntervalReceive: + description: TODO + action: receive + channel: + address: evcc/site/interval + messages: + interval: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/site" + SiteMessagingReceive: + description: TODO + action: receive + channel: + address: evcc/site/messaging + messages: + messaging: + description: TODO + payload: + type: boolean + tags: + - $ref: "#/components/tags/site" + SiteModbusproxyReceive: + description: TODO + action: receive + channel: + address: evcc/site/modbusproxy + messages: + modbusproxy: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/site" + SiteMqttBrokerReceive: + description: TODO + action: receive + channel: + address: evcc/site/mqtt/broker + messages: + mqttBroker: + description: TODO + payload: + type: string + tags: + - $ref: "#/components/tags/site" + SiteMqttTopicReceive: + description: TODO + action: receive + channel: + address: evcc/site/mqtt/topic + messages: + mqttTopic: + description: TODO + payload: + type: string + tags: + - $ref: "#/components/tags/site" + SiteMqttUserReceive: + description: TODO + action: receive + channel: + address: evcc/site/mqtt/user + messages: + mqttUser: + description: TODO + payload: + type: string + tags: + - $ref: "#/components/tags/site" + SiteMqttInsecureReceive: + description: TODO + action: receive + channel: + address: evcc/site/mqtt/insecure + messages: + mqttInsecure: + description: TODO + payload: + type: boolean + tags: + - $ref: "#/components/tags/site" + SiteNetworkSchemaReceive: + description: TODO + action: receive + channel: + address: evcc/site/network/schema + messages: + networkSchema: + description: TODO + payload: + type: string + tags: + - $ref: "#/components/tags/site" + SiteNetworkHostReceive: + description: TODO + action: receive + channel: + address: evcc/site/network/host + messages: + networkHost: + description: TODO + payload: + type: string + tags: + - $ref: "#/components/tags/site" + SiteNetworkPortReceive: + description: TODO + action: receive + channel: + address: evcc/site/network/port + messages: + networkPort: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/site" + SiteSponsorNameReceive: + description: TODO + action: receive + channel: + address: evcc/site/sponsor/name + messages: + sponsorName: + description: TODO + payload: + type: string + tags: + - $ref: "#/components/tags/site" + SiteSponsorExpiresAtReceive: + description: TODO + action: receive + channel: + address: evcc/site/sponsor/expiresAt + messages: + sponsorExpiresAt: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/site" + SiteVersionReceive: + description: TODO + action: receive + channel: + address: evcc/site/version + messages: + version: + description: TODO + payload: + type: string + tags: + - $ref: "#/components/tags/site" + SiteBufferSocReceive: + description: TODO + action: receive + channel: + address: evcc/site/bufferSoc + messages: + bufferSoc: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/site" + SitePrioritySocReceive: + description: TODO + action: receive + channel: + address: evcc/site/prioritySoc + messages: + prioritySoc: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/site" + SiteBatteryDischargeControlReceive: + description: TODO + action: receive + channel: + address: evcc/site/batteryDischargeControl + messages: + batteryDischargeControl: + description: TODO + payload: + type: boolean + tags: + - $ref: "#/components/tags/site" + SiteGridConfiguredReceive: + description: TODO + action: receive + channel: + address: evcc/site/gridConfigured + messages: + gridConfigured: + description: TODO + payload: + type: boolean + tags: + - $ref: "#/components/tags/site" + SiteGridPowerReceive: + description: TODO + action: receive + channel: + address: evcc/site/grid/power + messages: + gridPower: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/site" + SiteGridEnergyReceive: + description: TODO + action: receive + channel: + address: evcc/site/grid/energy + messages: + gridEnergy: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/site" + SiteAuxReceive: + description: TODO + action: receive + channel: + address: evcc/site/aux + messages: + aux: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/site" + SiteExtReceive: + description: TODO + action: receive + channel: + address: evcc/site/ext + messages: + ext: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/site" + SiteBufferStartSocReceive: + description: TODO + action: receive + channel: + address: evcc/site/bufferStartSoc + messages: + bufferStartSoc: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/site" + SiteBatteryModeReceive: + description: TODO + action: receive + channel: + address: evcc/site/batteryMode + messages: + batteryMode: + description: TODO + payload: + type: string + tags: + - $ref: "#/components/tags/site" + SiteResidualPowerReceive: + description: TODO + action: receive + channel: + address: evcc/site/residualPower + messages: + residualPower: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/site" + SiteCurrencyReceive: + description: TODO + action: receive + channel: + address: evcc/site/currency + messages: + currency: + description: TODO + payload: + type: string + tags: + - $ref: "#/components/tags/site" + SiteSmartCostTypeReceive: + description: TODO + action: receive + channel: + address: evcc/site/smartCostType + messages: + smartCostType: + description: TODO + payload: + type: string + tags: + - $ref: "#/components/tags/site" + SiteBatteryGridChargeActiveReceive: + description: TODO + action: receive + channel: + address: evcc/site/batteryGridChargeActive + messages: + batteryGridChargeActive: + description: TODO + payload: + type: boolean + tags: + - $ref: "#/components/tags/site" components: messages: batteryBoost: From efa3a8b719ae85dcba382460b5e9937d6e8a2d5c Mon Sep 17 00:00:00 2001 From: Maschga Date: Fri, 28 Feb 2025 11:13:46 +0100 Subject: [PATCH 27/35] wip --- static/mqtt-api.yaml | 292 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 292 insertions(+) diff --git a/static/mqtt-api.yaml b/static/mqtt-api.yaml index 3c6069bf0..35246b796 100644 --- a/static/mqtt-api.yaml +++ b/static/mqtt-api.yaml @@ -1861,6 +1861,291 @@ operations: type: boolean tags: - $ref: "#/components/tags/site" + SiteBatteriesCapacityReceive: + description: TODO + action: receive + channel: + address: evcc/site/batteryCapacity + messages: + batteryCapacity: + description: TODO + payload: + type: number + tags: + - $ref: "#/components/tags/site" + SiteBatteriesSocReceive: + description: TODO + action: receive + channel: + address: evcc/site/batterySoc + messages: + batterySoc: + description: TODO + payload: + type: number + tags: + - $ref: "#/components/tags/site" + SiteBatteriesPowerReceive: + description: TODO + action: receive + channel: + address: evcc/site/batteryPower + messages: + batteryPower: + description: TODO + payload: + type: number + tags: + - $ref: "#/components/tags/site" + SiteBatteryEnergyReceive: + description: TODO + action: receive + channel: + address: evcc/site/batteryEnergy + messages: + batteryEnergy: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/site" + SitePvsPowerReceive: + description: TODO + action: receive + channel: + address: evcc/site/pvPower + messages: + pvPower: + description: TODO + payload: + type: number + tags: + - $ref: "#/components/tags/site" + SitePvEnergyReceive: + description: TODO + action: receive + channel: + address: evcc/site/pvEnergy + messages: + pvEnergy: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/site" + SiteHomePowerReceive: + description: TODO + action: receive + channel: + address: evcc/site/homePower + messages: + homePower: + description: TODO + payload: + type: number + tags: + - $ref: "#/components/tags/site" + SiteGreenShareHomeReceive: + description: TODO + action: receive + channel: + address: evcc/site/greenShareHome + messages: + greenShareHome: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/site" + SiteGreenShareLoadpointsReceive: + description: TODO + action: receive + channel: + address: evcc/site/greenShareLoadpoints + messages: + greenShareLoadpoints: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/site" + SiteTariffGridReceive: + description: TODO + action: receive + channel: + address: evcc/site/tariffGrid + messages: + tariffGrid: + description: TODO + payload: + type: number + tags: + - $ref: "#/components/tags/site" + SiteTariffFeedInReceive: + description: TODO + action: receive + channel: + address: evcc/site/tariffFeedIn + messages: + tariffFeedIn: + description: TODO + payload: + type: number + tags: + - $ref: "#/components/tags/site" + SiteTariffPriceHomeReceive: + description: TODO + action: receive + channel: + address: evcc/site/tariffPriceHome + messages: + tariffPriceHome: + description: TODO + payload: + type: number + tags: + - $ref: "#/components/tags/site" + SiteTariffPriceLoadpointsReceive: + description: TODO + action: receive + channel: + address: evcc/site/tariffPriceLoadpoints + messages: + tariffPriceLoadpoints: + description: TODO + payload: + type: number + tags: + - $ref: "#/components/tags/site" + SiteStatisticsSolarPercentageReceive: + description: TODO + action: receive + channel: + address: evcc/site/statistics/{period}/solarPercentage + parameters: + period: + $ref: "#/components/parameters/period" + messages: + statisticsSolarPercentage: + description: TODO + payload: + type: number + tags: + - $ref: "#/components/tags/site" + SiteStatisticsChargedKWhReceive: + description: TODO + action: receive + channel: + address: evcc/site/statistics/{period}/chargedKWh + parameters: + period: + $ref: "#/components/parameters/period" + messages: + statisticsChargedKWh: + description: TODO + payload: + type: number + tags: + - $ref: "#/components/tags/site" + SiteStatisticsAvgPriceReceive: + description: TODO + action: receive + channel: + address: evcc/site/statistics/{period}/avgPrice + parameters: + period: + $ref: "#/components/parameters/period" + messages: + statisticsAvgPrice: + description: TODO + payload: + type: number + tags: + - $ref: "#/components/tags/site" + SiteStatisticsAvgCo2Receive: + description: TODO + action: receive + channel: + address: evcc/site/statistics/{period}/avgCo2 + parameters: + period: + $ref: "#/components/parameters/period" + messages: + statisticsAvgCo2: + description: TODO + payload: + type: number + tags: + - $ref: "#/components/tags/site" + SiteForecastCo2Receive: + description: TODO + action: receive + channel: + address: evcc/site/forecast/co2 + messages: + forecastCo2: + description: TODO + payload: + type: array + items: + type: object + properties: + start: + type: string + end: + type: string + price: + type: integer + tags: + - $ref: "#/components/tags/site" + SiteTariffCo2Receive: + description: TODO + action: receive + channel: + address: evcc/site/tariffCo2 + messages: + tariffCo2: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/site" + SiteTariffCo2HomeReceive: + description: TODO + action: receive + channel: + address: evcc/site/tariffCo2Home + messages: + tariffCo2Home: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/site" + SiteTariffCo2LoadpointsReceive: + description: TODO + action: receive + channel: + address: evcc/site/tariffCo2Loadpoints + messages: + tariffCo2Loadpoints: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/site" + SiteAvailableVersionReceive: + description: TODO + action: receive + channel: + address: evcc/site/availableVersion + messages: + availableVersion: + description: TODO + payload: + type: string + tags: + - $ref: "#/components/tags/site" components: messages: batteryBoost: @@ -1929,6 +2214,13 @@ components: payload: type: string parameters: + period: + description: TODO + enum: + - 30d + - 365d + - thisYear + - total id: description: The index. Starts with 1. examples: From e4c53f65628e0bfd586fd8ba3881039e7a1b87ad Mon Sep 17 00:00:00 2001 From: Maschga Date: Fri, 28 Feb 2025 11:32:12 +0100 Subject: [PATCH 28/35] wip --- src/sortAsyncAPI.js | 18 +- src/sortOpenAPI.js | 2 +- static/mqtt-api.yaml | 1404 ++++++++++++++++++++++++++---------------- 3 files changed, 896 insertions(+), 528 deletions(-) diff --git a/src/sortAsyncAPI.js b/src/sortAsyncAPI.js index 84fba3027..4d9d443bf 100644 --- a/src/sortAsyncAPI.js +++ b/src/sortAsyncAPI.js @@ -19,16 +19,20 @@ function sortAsyncAPI(filePath) { let asyncAPI = yaml.load(data); if (asyncAPI.operations) { + for (const operation in asyncAPI.operations) { + asyncAPI.operations[operation].channel.parameters = sortObject( + asyncAPI.operations[operation].channel.parameters, + ); + } + asyncAPI.operations = sortObject(asyncAPI.operations); } - if (asyncAPI.components) { - ["messages", "parameters", "tags"].forEach((key) => { - if (asyncAPI.components[key]) { - asyncAPI.components[key] = sortObject(asyncAPI.components[key]); - } - }); - } + ["messages", "parameters", "tags"].forEach((key) => { + if (asyncAPI.components[key]) { + asyncAPI.components[key] = sortObject(asyncAPI.components[key]); + } + }); fs.writeFileSync(filePath, yaml.dump(asyncAPI, { quotingType: '"' })); console.log("AsyncAPI YAML file successfully sorted and updated."); diff --git a/src/sortOpenAPI.js b/src/sortOpenAPI.js index 5713bd2c4..271fbe561 100644 --- a/src/sortOpenAPI.js +++ b/src/sortOpenAPI.js @@ -9,7 +9,7 @@ function sortObject(obj) { .reduce((sorted, key) => { sorted[key] = obj[key]; return sorted; - }, {}); + }, {}); } function sortOpenAPI(filePath) { diff --git a/static/mqtt-api.yaml b/static/mqtt-api.yaml index 35246b796..be2177157 100644 --- a/static/mqtt-api.yaml +++ b/static/mqtt-api.yaml @@ -7,7 +7,7 @@ operations: description: TODO action: receive channel: - address: evcc/status + address: "{topic}/status" messages: status: description: TODO @@ -15,29 +15,37 @@ operations: type: string enum: - online + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/general" GeneralUpdatedReceive: description: TODO action: receive channel: - address: evcc/updated + address: "{topic}/updated" messages: updated: description: TODO payload: type: integer example: 1740512847 + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/general" LoadpointBatteryBoostReceive: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/batteryBoost + address: "{topic}/loadpoints/{id}/batteryBoost" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: batteryBoost: $ref: "#/components/messages/batteryBoost" @@ -47,10 +55,12 @@ operations: description: TODO action: send channel: - address: evcc/loadpoints/{id}/batteryBoost/set + address: "{topic}/loadpoints/{id}/batteryBoost/set" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: batteryBoost: $ref: "#/components/messages/batteryBoost" @@ -60,10 +70,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/chargeCurrent + address: "{topic}/loadpoints/{id}/chargeCurrent" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: chargeCurrent: description: TODO @@ -75,10 +87,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/chargeCurrents + address: "{topic}/loadpoints/{id}/chargeCurrents" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: chargeCurrents: description: TODO @@ -90,10 +104,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/chargePower + address: "{topic}/loadpoints/{id}/chargePower" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: chargePower: description: TODO @@ -105,10 +121,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/chargeRemainingDuration + address: "{topic}/loadpoints/{id}/chargeRemainingDuration" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: chargeRemainingDuration: description: TODO @@ -118,10 +136,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/chargeRemainingEnergy + address: "{topic}/loadpoints/{id}/chargeRemainingEnergy" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: chargeRemainingEnergy: description: TODO @@ -133,10 +153,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/chargeTotalImport + address: "{topic}/loadpoints/{id}/chargeTotalImport" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: chargeTotalImport: description: TODO @@ -148,10 +170,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/vehicleName + address: "{topic}/loadpoints/{id}/vehicleName" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: vehicleName: $ref: "#/components/messages/vehicleName" @@ -161,10 +185,12 @@ operations: description: TODO action: send channel: - address: evcc/loadpoints/{id}/vehicle/set + address: "{topic}/loadpoints/{id}/vehicle/set" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: vehicleName: description: TODO @@ -182,10 +208,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/chargeDuration + address: "{topic}/loadpoints/{id}/chargeDuration" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: chargeDuration: description: TODO @@ -197,10 +225,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/chargedEnergy + address: "{topic}/loadpoints/{id}/chargedEnergy" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: chargedEnergy: description: TODO @@ -212,10 +242,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/chargerFeatureHeating + address: "{topic}/loadpoints/{id}/chargerFeatureHeating" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: chargerFeatureHeating: description: TODO @@ -227,10 +259,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/chargerFeatureIntegratedDevice + address: "{topic}/loadpoints/{id}/chargerFeatureIntegratedDevice" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: chargerFeatureIntegratedDevice: description: TODO @@ -242,10 +276,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/chargerPhases1p3p + address: "{topic}/loadpoints/{id}/chargerPhases1p3p" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: chargerPhases1p3p: description: TODO @@ -257,10 +293,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/chargerSinglePhase + address: "{topic}/loadpoints/{id}/chargerSinglePhase" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: chargerSinglePhase: description: TODO @@ -272,10 +310,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/chargerStatusReason + address: "{topic}/loadpoints/{id}/chargerStatusReason" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: chargerStatusReason: description: TODO @@ -289,10 +329,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/charging + address: "{topic}/loadpoints/{id}/charging" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: charging: description: TODO @@ -304,10 +346,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/connectedDuration + address: "{topic}/loadpoints/{id}/connectedDuration" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: connectedDuration: description: TODO @@ -319,10 +363,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/connected + address: "{topic}/loadpoints/{id}/connected" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: connected: description: TODO @@ -334,10 +380,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/disableDelay + address: "{topic}/loadpoints/{id}/disableDelay" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: disableDelay: $ref: "#/components/messages/disableDelay" @@ -347,10 +395,12 @@ operations: description: TODO action: send channel: - address: evcc/loadpoints/{id}/disableDelay/set + address: "{topic}/loadpoints/{id}/disableDelay/set" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: disableDelay: $ref: "#/components/messages/disableDelay" @@ -360,10 +410,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/disableThreshold + address: "{topic}/loadpoints/{id}/disableThreshold" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: disableThreshold: $ref: "#/components/messages/disableThreshold" @@ -373,10 +425,12 @@ operations: description: TODO action: send channel: - address: evcc/loadpoints/{id}/disableThreshold/set + address: "{topic}/loadpoints/{id}/disableThreshold/set" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: disableThreshold: $ref: "#/components/messages/disableThreshold" @@ -386,10 +440,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/effectiveLimitSoc + address: "{topic}/loadpoints/{id}/effectiveLimitSoc" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: effectiveLimitSoc: description: TODO @@ -401,10 +457,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/effectiveMaxCurrent + address: "{topic}/loadpoints/{id}/effectiveMaxCurrent" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: effectiveMaxCurrent: description: TODO @@ -416,10 +474,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/effectiveMinCurrent + address: "{topic}/loadpoints/{id}/effectiveMinCurrent" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: effectiveMinCurrent: description: TODO @@ -431,10 +491,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/effectivePlanId + address: "{topic}/loadpoints/{id}/effectivePlanId" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: effectivePlanId: description: TODO @@ -446,10 +508,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/effectivePlanSoc + address: "{topic}/loadpoints/{id}/effectivePlanSoc" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: effectivePlanSoc: description: TODO @@ -461,10 +525,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/effectivePriority + address: "{topic}/loadpoints/{id}/effectivePriority" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: effectivePriority: description: TODO @@ -476,10 +542,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/enableDelay + address: "{topic}/loadpoints/{id}/enableDelay" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: enableDelay: $ref: "#/components/messages/enableDelay" @@ -489,10 +557,12 @@ operations: description: TODO action: send channel: - address: evcc/loadpoints/{id}/enableDelay/set + address: "{topic}/loadpoints/{id}/enableDelay/set" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: enableDelay: $ref: "#/components/messages/enableDelay" @@ -502,10 +572,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/enableThreshold + address: "{topic}/loadpoints/{id}/enableThreshold" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: enableThreshold: $ref: "#/components/messages/enableThreshold" @@ -515,10 +587,12 @@ operations: description: TODO action: send channel: - address: evcc/loadpoints/{id}/enableThreshold/set + address: "{topic}/loadpoints/{id}/enableThreshold/set" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: enableThreshold: $ref: "#/components/messages/enableThreshold" @@ -528,10 +602,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/enabled + address: "{topic}/loadpoints/{id}/enabled" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: enabled: description: TODO @@ -543,10 +619,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/limitEnergy + address: "{topic}/loadpoints/{id}/limitEnergy" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: limitEnergy: $ref: "#/components/messages/limitEnergy" @@ -556,10 +634,12 @@ operations: description: TODO action: send channel: - address: evcc/loadpoints/{id}/limitEnergy/set + address: "{topic}/loadpoints/{id}/limitEnergy/set" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: limitEnergy: $ref: "#/components/messages/limitEnergy" @@ -569,10 +649,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/limitSoc + address: "{topic}/loadpoints/{id}/limitSoc" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: limitSoc: description: TODO @@ -584,10 +666,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/maxCurrent + address: "{topic}/loadpoints/{id}/maxCurrent" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: maxCurrent: $ref: "#/components/messages/maxCurrent" @@ -597,10 +681,12 @@ operations: description: TODO action: send channel: - address: evcc/loadpoints/{id}/maxCurrent/set + address: "{topic}/loadpoints/{id}/maxCurrent/set" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: maxCurrent: $ref: "#/components/messages/maxCurrent" @@ -610,10 +696,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/minCurrent + address: "{topic}/loadpoints/{id}/minCurrent" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: minCurrent: $ref: "#/components/messages/minCurrent" @@ -623,10 +711,12 @@ operations: description: TODO action: send channel: - address: evcc/loadpoints/{id}/minCurrent/set + address: "{topic}/loadpoints/{id}/minCurrent/set" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: minCurrent: $ref: "#/components/messages/minCurrent" @@ -636,10 +726,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/mode + address: "{topic}/loadpoints/{id}/mode" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: mode: $ref: "#/components/messages/mode" @@ -649,10 +741,12 @@ operations: description: TODO action: send channel: - address: evcc/loadpoints/{id}/mode/set + address: "{topic}/loadpoints/{id}/mode/set" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: mode: $ref: "#/components/messages/mode" @@ -662,10 +756,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/phaseAction + address: "{topic}/loadpoints/{id}/phaseAction" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: phaseAction: description: TODO @@ -679,10 +775,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/phaseRemaining + address: "{topic}/loadpoints/{id}/phaseRemaining" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: phaseRemaining: description: TODO @@ -694,10 +792,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/phasesActive + address: "{topic}/loadpoints/{id}/phasesActive" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: phasesActive: description: TODO @@ -709,10 +809,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/phasesConfigured + address: "{topic}/loadpoints/{id}/phasesConfigured" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: phases: $ref: "#/components/messages/phases" @@ -722,10 +824,12 @@ operations: description: TODO action: send channel: - address: evcc/loadpoints/{id}/phases/set + address: "{topic}/loadpoints/{id}/phases/set" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: phases: $ref: "#/components/messages/phases" @@ -735,10 +839,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/planActive + address: "{topic}/loadpoints/{id}/planActive" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: planActive: description: TODO @@ -750,10 +856,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/planEnergy + address: "{topic}/loadpoints/{id}/planEnergy" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: planEnergy: description: TODO @@ -765,10 +873,12 @@ operations: description: TODO action: send channel: - address: evcc/loadpoints/{id}/planEnergy/set + address: "{topic}/loadpoints/{id}/planEnergy/set" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: planEnergy: contentType: application/json @@ -787,10 +897,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/planOverrun + address: "{topic}/loadpoints/{id}/planOverrun" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: planOverrun: description: TODO @@ -802,10 +914,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/priority + address: "{topic}/loadpoints/{id}/priority" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: priority: $ref: "#/components/messages/priority" @@ -815,10 +929,12 @@ operations: description: TODO action: send channel: - address: evcc/loadpoints/{id}/priority/set + address: "{topic}/loadpoints/{id}/priority/set" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: priority: $ref: "#/components/messages/priority" @@ -828,10 +944,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/pvAction + address: "{topic}/loadpoints/{id}/pvAction" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: pvAction: description: TODO @@ -845,10 +963,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/pvRemaining + address: "{topic}/loadpoints/{id}/pvRemaining" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: pvRemaining: description: TODO @@ -860,10 +980,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/sessionCo2PerKWh + address: "{topic}/loadpoints/{id}/sessionCo2PerKWh" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: sessionCo2PerKWh: description: TODO @@ -875,10 +997,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/sessionEnergy + address: "{topic}/loadpoints/{id}/sessionEnergy" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: sessionEnergy: description: TODO @@ -890,10 +1014,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/sessionPricePerKWh + address: "{topic}/loadpoints/{id}/sessionPricePerKWh" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: sessionPricePerKWh: description: TODO @@ -905,10 +1031,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/sessionPrice + address: "{topic}/loadpoints/{id}/sessionPrice" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: sessionPrice: description: TODO @@ -920,10 +1048,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/sessionSolarPercentage + address: "{topic}/loadpoints/{id}/sessionSolarPercentage" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: sessionSolarPercentage: description: TODO @@ -935,10 +1065,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/smartCostActive + address: "{topic}/loadpoints/{id}/smartCostActive" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: smartCostActive: description: TODO @@ -950,10 +1082,12 @@ operations: description: TODO action: send channel: - address: evcc/loadpoints/{id}/smartCostLimit/set + address: "{topic}/loadpoints/{id}/smartCostLimit/set" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: smartCostLimit: description: TODO @@ -965,10 +1099,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/title + address: "{topic}/loadpoints/{id}/title" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: loadpointTitle: description: >- @@ -982,10 +1118,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/vehicleDetectionActive + address: "{topic}/loadpoints/{id}/vehicleDetectionActive" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: vehicleDetectionActive: description: TODO @@ -997,10 +1135,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/vehicleLimitSoc + address: "{topic}/loadpoints/{id}/vehicleLimitSoc" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: vehicleLimitSoc: $ref: "#/components/messages/vehicleLimitSoc" @@ -1010,10 +1150,12 @@ operations: description: TODO action: send channel: - address: evcc/loadpoints/{id}/vehicleLimitSoc/set + address: "{topic}/loadpoints/{id}/vehicleLimitSoc/set" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: vehicleLimitSoc: $ref: "#/components/messages/vehicleLimitSoc" @@ -1023,10 +1165,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/vehicleOdometer + address: "{topic}/loadpoints/{id}/vehicleOdometer" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: vehicleOdometer: description: TODO @@ -1038,10 +1182,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/vehicleRange + address: "{topic}/loadpoints/{id}/vehicleRange" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: vehicleRange: description: TODO @@ -1053,10 +1199,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/vehicleSoc + address: "{topic}/loadpoints/{id}/vehicleSoc" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: vehicleSoc: description: TODO @@ -1068,10 +1216,12 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints/{id}/vehicleWelcomeActive + address: "{topic}/loadpoints/{id}/vehicleWelcomeActive" parameters: id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: vehicleWelcomeActive: description: TODO @@ -1083,1069 +1233,1279 @@ operations: description: TODO action: receive channel: - address: evcc/loadpoints + address: "{topic}/loadpoints" messages: loadpoints: description: TODO payload: type: integer + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/loadpoints" - VehicleCapacityReceive: + SiteAuxReceive: description: TODO action: receive channel: - address: evcc/vehicles/{vehicleName}/capacity - parameters: - vehicleName: - $ref: "#/components/parameters/vehicleName" + address: "{topic}/site/aux" messages: - capacity: + aux: description: TODO payload: type: integer + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - - $ref: "#/components/tags/vehicles" - VehicleFeatureReceive: + - $ref: "#/components/tags/site" + SiteAvailableVersionReceive: description: TODO action: receive channel: - address: evcc/vehicles/{vehicleName}/features/{id} - parameters: - vehicleName: - $ref: "#/components/parameters/vehicleName" - id: - $ref: "#/components/parameters/id" + address: "{topic}/site/availableVersion" messages: - feature: + availableVersion: description: TODO payload: type: string - enum: - - offline - - TODO + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - - $ref: "#/components/tags/vehicles" - VehicleFeaturesReceive: + - $ref: "#/components/tags/site" + SiteBatteriesCapacityReceive: description: TODO action: receive channel: - address: evcc/vehicles/{vehicleName}/features - parameters: - vehicleName: - $ref: "#/components/parameters/vehicleName" + address: "{topic}/site/batteryCapacity" messages: - features: + batteryCapacity: description: TODO payload: - type: integer + type: number + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - - $ref: "#/components/tags/vehicles" - VehicleIconReceive: + - $ref: "#/components/tags/site" + SiteBatteriesPowerReceive: description: TODO action: receive channel: - address: evcc/vehicles/{vehicleName}/icon - parameters: - vehicleName: - $ref: "#/components/parameters/vehicleName" + address: "{topic}/site/batteryPower" messages: - icon: + batteryPower: description: TODO payload: - type: string - enum: - - TODO + type: number + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - - $ref: "#/components/tags/vehicles" - VehicleLimitSocReceive: + - $ref: "#/components/tags/site" + SiteBatteriesReceive: description: TODO action: receive channel: - address: evcc/vehicles/{vehicleName}/limitSoc - parameters: - vehicleName: - $ref: "#/components/parameters/vehicleName" + address: "{topic}/site/battery" messages: - limitSoc: + batteries: description: TODO payload: type: integer - tags: - - $ref: "#/components/tags/vehicles" - VehicleLimitSocSet: - description: TODO - action: send - channel: - address: evcc/vehicles/{vehicleName}/limitSoc/set parameters: - vehicleName: - $ref: "#/components/parameters/vehicleName" - messages: - limitSoc: - description: TODO - payload: - type: integer + topic: + $ref: "#/components/parameters/topic" tags: - - $ref: "#/components/tags/vehicles" - VehicleMinSocReceive: + - $ref: "#/components/tags/site" + SiteBatteriesSocReceive: description: TODO action: receive channel: - address: evcc/vehicles/{vehicleName}/minSoc - parameters: - vehicleName: - $ref: "#/components/parameters/vehicleName" + address: "{topic}/site/batterySoc" messages: - minSoc: + batterySoc: description: TODO payload: - type: integer + type: number + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - - $ref: "#/components/tags/vehicles" - VehicleMinSocSet: + - $ref: "#/components/tags/site" + SiteBatteryCapacityReceive: description: TODO - action: send + action: receive channel: - address: evcc/vehicles/{vehicleName}/minSoc/set + address: "{topic}/site/battery/{id}/capacity" parameters: - vehicleName: - $ref: "#/components/parameters/vehicleName" + id: + $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: - minSoc: + capacity: description: TODO payload: - type: integer + type: number tags: - - $ref: "#/components/tags/vehicles" - VehiclePlanSocReceive: + - $ref: "#/components/tags/site" + SiteBatteryControllableReceive: description: TODO action: receive channel: - address: evcc/vehicles/{vehicleName}/plan/soc + address: "{topic}/site/battery/{id}/controllable" parameters: - vehicleName: - $ref: "#/components/parameters/vehicleName" + id: + $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: - soc: + batteryControllable: description: TODO payload: - type: integer + type: boolean tags: - - $ref: "#/components/tags/vehicles" - VehiclePlanSocSet: + - $ref: "#/components/tags/site" + SiteBatteryDischargeControlReceive: description: TODO - action: send + action: receive channel: - address: evcc/vehicles/{vehicleName}/planSoc/set - parameters: - vehicleName: - $ref: "#/components/parameters/vehicleName" + address: "{topic}/site/batteryDischargeControl" messages: - planSoc: + batteryDischargeControl: description: TODO payload: - type: object - properties: - time: - description: TODO - type: string - value: - description: TODO - type: string + type: boolean + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - - $ref: "#/components/tags/vehicles" - VehiclePlanTimeReceive: + - $ref: "#/components/tags/site" + SiteBatteryEnergyReceive: description: TODO action: receive channel: - address: evcc/vehicles/{vehicleName}/plan/time - parameters: - vehicleName: - $ref: "#/components/parameters/vehicleName" + address: "{topic}/site/batteryEnergy" messages: - time: + batteryEnergy: description: TODO payload: - type: string + type: integer + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - - $ref: "#/components/tags/vehicles" - VehicleRepeatingPlanActiveReceive: + - $ref: "#/components/tags/site" + SiteBatteryGridChargeActiveReceive: description: TODO action: receive channel: - address: evcc/vehicles/{vehicleName}/repeatingPlans/{id}/active - parameters: - vehicleName: - $ref: "#/components/parameters/vehicleName" - id: - $ref: "#/components/parameters/id" + address: "{topic}/site/batteryGridChargeActive" messages: - active: + batteryGridChargeActive: description: TODO payload: type: boolean + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - - $ref: "#/components/tags/vehicles" - VehicleRepeatingPlanSocReceive: + - $ref: "#/components/tags/site" + SiteBatteryModeReceive: description: TODO action: receive channel: - address: evcc/vehicles/{vehicleName}/repeatingPlans/{id}/soc - parameters: - vehicleName: - $ref: "#/components/parameters/vehicleName" - id: - $ref: "#/components/parameters/id" + address: "{topic}/site/batteryMode" messages: - soc: + batteryMode: description: TODO payload: - type: integer + type: string + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - - $ref: "#/components/tags/vehicles" - VehicleRepeatingPlanTimeReceive: + - $ref: "#/components/tags/site" + SiteBatteryPowerReceive: description: TODO action: receive channel: - address: evcc/vehicles/{vehicleName}/repeatingPlans/{id}/time + address: "{topic}/site/battery/{id}/power" parameters: - vehicleName: - $ref: "#/components/parameters/vehicleName" id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: - time: + batteryPower: description: TODO payload: - type: string + type: number tags: - - $ref: "#/components/tags/vehicles" - VehicleRepeatingPlanTzReceive: + - $ref: "#/components/tags/site" + SiteBatterySocReceive: description: TODO action: receive channel: - address: evcc/vehicles/{vehicleName}/repeatingPlans/{id}/tz + address: "{topic}/site/battery/{id}/soc" parameters: - vehicleName: - $ref: "#/components/parameters/vehicleName" id: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: - tz: + batterySoc: description: TODO payload: - type: string + type: number tags: - - $ref: "#/components/tags/vehicles" - VehicleRepeatingPlanWeekdayReceive: + - $ref: "#/components/tags/site" + SiteBufferSocReceive: description: TODO action: receive channel: - address: evcc/vehicles/{vehicleName}/repeatingPlans/{planId}/weekdays/{weekdayId} - parameters: - vehicleName: - $ref: "#/components/parameters/vehicleName" - planId: - $ref: "#/components/parameters/id" - weekdayId: - $ref: "#/components/parameters/id" + address: "{topic}/site/bufferSoc" messages: - weekday: + bufferSoc: description: TODO payload: type: integer + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - - $ref: "#/components/tags/vehicles" - VehicleRepeatingPlanWeekdaysReceive: + - $ref: "#/components/tags/site" + SiteBufferStartSocReceive: description: TODO action: receive channel: - address: evcc/vehicles/{vehicleName}/repeatingPlans/{id}/weekdays - parameters: - vehicleName: - $ref: "#/components/parameters/vehicleName" - id: - $ref: "#/components/parameters/id" + address: "{topic}/site/bufferStartSoc" messages: - weekdays: + bufferStartSoc: description: TODO payload: type: integer + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - - $ref: "#/components/tags/vehicles" - VehicleRepeatingPlansReceive: + - $ref: "#/components/tags/site" + SiteCurrencyReceive: description: TODO action: receive channel: - address: evcc/vehicles/{vehicleName}/repeatingPlans - parameters: - vehicleName: - $ref: "#/components/parameters/vehicleName" + address: "{topic}/site/currency" messages: - repeatingPlans: + currency: description: TODO payload: - type: integer + type: string + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - - $ref: "#/components/tags/vehicles" - VehicleTitleReceive: + - $ref: "#/components/tags/site" + SiteEebusReceive: description: TODO action: receive channel: - address: evcc/vehicles/{vehicleName}/title - parameters: - vehicleName: - $ref: "#/components/parameters/vehicleName" + address: "{topic}/site/eebus" messages: - title: - $ref: "#/components/messages/vehicleName" + eebus: + description: TODO + payload: + type: boolean + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - - $ref: "#/components/tags/vehicles" - VehiclesReceive: + - $ref: "#/components/tags/site" + SiteExtReceive: description: TODO action: receive channel: - address: evcc/vehicles + address: "{topic}/site/ext" messages: - vehicles: + ext: description: TODO payload: type: integer + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - - $ref: "#/components/tags/vehicles" - SitePvsReceive: + - $ref: "#/components/tags/site" + SiteForecastCo2Receive: description: TODO action: receive channel: - address: evcc/site/pv + address: "{topic}/site/forecast/co2" messages: - pvs: + forecastCo2: description: TODO payload: - type: integer - tags: - - $ref: "#/components/tags/site" - SitePvPowerReceive: - description: TODO - action: receive - channel: - address: evcc/site/pv/{id}/power + type: array + items: + type: object + properties: + start: + type: string + end: + type: string + price: + type: integer parameters: - id: - $ref: "#/components/parameters/id" - messages: - pvPower: - description: TODO - payload: - type: number + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" - SiteBatteriesReceive: + SiteGreenShareHomeReceive: description: TODO action: receive channel: - address: evcc/site/battery + address: "{topic}/site/greenShareHome" messages: - batteries: + greenShareHome: description: TODO payload: type: integer + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" - SiteBatteryPowerReceive: + SiteGreenShareLoadpointsReceive: description: TODO action: receive channel: - address: evcc/site/battery/{id}/power - parameters: - id: - $ref: "#/components/parameters/id" + address: "{topic}/site/greenShareLoadpoints" messages: - batteryPower: + greenShareLoadpoints: description: TODO payload: - type: number + type: integer + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" - SiteBatteryCapacityReceive: + SiteGridConfiguredReceive: description: TODO action: receive channel: - address: evcc/site/battery/{id}/capacity - parameters: - id: - $ref: "#/components/parameters/id" + address: "{topic}/site/gridConfigured" messages: - capacity: + gridConfigured: description: TODO payload: - type: number + type: boolean + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" - SiteBatterySocReceive: + SiteGridEnergyReceive: description: TODO action: receive channel: - address: evcc/site/battery/{id}/soc - parameters: - id: - $ref: "#/components/parameters/id" + address: "{topic}/site/grid/energy" messages: - batterySoc: + gridEnergy: description: TODO payload: - type: number + type: integer + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" - SiteBatteryControllableReceive: + SiteGridPowerReceive: description: TODO action: receive channel: - address: evcc/site/battery/{id}/controllable - parameters: - id: - $ref: "#/components/parameters/id" + address: "{topic}/site/grid/power" messages: - batteryControllable: + gridPower: description: TODO payload: - type: boolean + type: integer + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" - SiteEebusReceive: + SiteHomePowerReceive: description: TODO action: receive channel: - address: evcc/site/eebus + address: "{topic}/site/homePower" messages: - eebus: + homePower: description: TODO payload: - type: boolean + type: number + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" SiteInfluxInsecureReceive: description: TODO action: receive channel: - address: evcc/site/influx/insecure + address: "{topic}/site/influx/insecure" messages: influxInsecure: description: TODO payload: type: boolean + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" SiteIntervalReceive: description: TODO action: receive channel: - address: evcc/site/interval + address: "{topic}/site/interval" messages: interval: description: TODO payload: type: integer + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" SiteMessagingReceive: description: TODO action: receive channel: - address: evcc/site/messaging + address: "{topic}/site/messaging" messages: messaging: description: TODO payload: type: boolean + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" SiteModbusproxyReceive: description: TODO action: receive channel: - address: evcc/site/modbusproxy + address: "{topic}/site/modbusproxy" messages: modbusproxy: description: TODO payload: type: integer + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" SiteMqttBrokerReceive: description: TODO action: receive channel: - address: evcc/site/mqtt/broker + address: "{topic}/site/mqtt/broker" messages: mqttBroker: description: TODO payload: type: string + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" - SiteMqttTopicReceive: + SiteMqttInsecureReceive: description: TODO action: receive channel: - address: evcc/site/mqtt/topic + address: "{topic}/site/mqtt/insecure" messages: - mqttTopic: + mqttInsecure: description: TODO payload: - type: string + type: boolean + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" - SiteMqttUserReceive: + SiteMqttTopicReceive: description: TODO action: receive channel: - address: evcc/site/mqtt/user + address: "{topic}/site/mqtt/topic" messages: - mqttUser: + mqttTopic: description: TODO payload: type: string + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" - SiteMqttInsecureReceive: - description: TODO - action: receive - channel: - address: evcc/site/mqtt/insecure - messages: - mqttInsecure: - description: TODO - payload: - type: boolean - tags: - - $ref: "#/components/tags/site" - SiteNetworkSchemaReceive: + SiteMqttUserReceive: description: TODO action: receive channel: - address: evcc/site/network/schema + address: "{topic}/site/mqtt/user" messages: - networkSchema: + mqttUser: description: TODO payload: type: string + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" SiteNetworkHostReceive: description: TODO action: receive channel: - address: evcc/site/network/host + address: "{topic}/site/network/host" messages: networkHost: description: TODO payload: type: string + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" SiteNetworkPortReceive: description: TODO action: receive channel: - address: evcc/site/network/port + address: "{topic}/site/network/port" messages: networkPort: description: TODO payload: type: integer + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" - SiteSponsorNameReceive: + SiteNetworkSchemaReceive: description: TODO action: receive channel: - address: evcc/site/sponsor/name + address: "{topic}/site/network/schema" messages: - sponsorName: + networkSchema: description: TODO payload: type: string + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" - SiteSponsorExpiresAtReceive: + SitePrioritySocReceive: description: TODO action: receive channel: - address: evcc/site/sponsor/expiresAt + address: "{topic}/site/prioritySoc" messages: - sponsorExpiresAt: + prioritySoc: description: TODO payload: type: integer + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" - SiteVersionReceive: + SitePvEnergyReceive: description: TODO action: receive channel: - address: evcc/site/version + address: "{topic}/site/pvEnergy" messages: - version: + pvEnergy: description: TODO payload: - type: string + type: integer + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" - SiteBufferSocReceive: + SitePvPowerReceive: description: TODO action: receive channel: - address: evcc/site/bufferSoc + address: "{topic}/site/pv/{id}/power" + parameters: + id: + $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: - bufferSoc: + pvPower: description: TODO payload: - type: integer + type: number tags: - $ref: "#/components/tags/site" - SitePrioritySocReceive: + SitePvsPowerReceive: description: TODO action: receive channel: - address: evcc/site/prioritySoc + address: "{topic}/site/pvPower" messages: - prioritySoc: + pvPower: description: TODO payload: - type: integer + type: number + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" - SiteBatteryDischargeControlReceive: + SitePvsReceive: description: TODO action: receive channel: - address: evcc/site/batteryDischargeControl + address: "{topic}/site/pv" messages: - batteryDischargeControl: + pvs: description: TODO payload: - type: boolean + type: integer + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" - SiteGridConfiguredReceive: + SiteResidualPowerReceive: description: TODO action: receive channel: - address: evcc/site/gridConfigured + address: "{topic}/site/residualPower" messages: - gridConfigured: + residualPower: description: TODO payload: - type: boolean + type: integer + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" - SiteGridPowerReceive: + SiteSmartCostTypeReceive: description: TODO action: receive channel: - address: evcc/site/grid/power + address: "{topic}/site/smartCostType" messages: - gridPower: + smartCostType: description: TODO payload: - type: integer + type: string + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" - SiteGridEnergyReceive: + SiteSponsorExpiresAtReceive: description: TODO action: receive channel: - address: evcc/site/grid/energy + address: "{topic}/site/sponsor/expiresAt" messages: - gridEnergy: + sponsorExpiresAt: description: TODO payload: type: integer + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" - SiteAuxReceive: + SiteSponsorNameReceive: description: TODO action: receive channel: - address: evcc/site/aux + address: "{topic}/site/sponsor/name" messages: - aux: + sponsorName: description: TODO payload: - type: integer + type: string + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" - SiteExtReceive: + SiteStatisticsAvgCo2Receive: description: TODO action: receive channel: - address: evcc/site/ext + address: "{topic}/site/statistics/{period}/avgCo2" + parameters: + period: + $ref: "#/components/parameters/period" + topic: + $ref: "#/components/parameters/topic" messages: - ext: + statisticsAvgCo2: description: TODO payload: - type: integer + type: number tags: - $ref: "#/components/tags/site" - SiteBufferStartSocReceive: + SiteStatisticsAvgPriceReceive: description: TODO action: receive channel: - address: evcc/site/bufferStartSoc + address: "{topic}/site/statistics/{period}/avgPrice" + parameters: + period: + $ref: "#/components/parameters/period" + topic: + $ref: "#/components/parameters/topic" messages: - bufferStartSoc: + statisticsAvgPrice: description: TODO payload: - type: integer + type: number tags: - $ref: "#/components/tags/site" - SiteBatteryModeReceive: + SiteStatisticsChargedKWhReceive: description: TODO action: receive channel: - address: evcc/site/batteryMode + address: "{topic}/site/statistics/{period}/chargedKWh" + parameters: + period: + $ref: "#/components/parameters/period" + topic: + $ref: "#/components/parameters/topic" messages: - batteryMode: + statisticsChargedKWh: description: TODO payload: - type: string + type: number tags: - $ref: "#/components/tags/site" - SiteResidualPowerReceive: + SiteStatisticsSolarPercentageReceive: description: TODO action: receive channel: - address: evcc/site/residualPower + address: "{topic}/site/statistics/{period}/solarPercentage" + parameters: + period: + $ref: "#/components/parameters/period" + topic: + $ref: "#/components/parameters/topic" messages: - residualPower: + statisticsSolarPercentage: description: TODO payload: - type: integer + type: number tags: - $ref: "#/components/tags/site" - SiteCurrencyReceive: + SiteTariffCo2HomeReceive: description: TODO action: receive channel: - address: evcc/site/currency + address: "{topic}/site/tariffCo2Home" messages: - currency: + tariffCo2Home: description: TODO payload: - type: string + type: integer + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" - SiteSmartCostTypeReceive: + SiteTariffCo2LoadpointsReceive: description: TODO action: receive channel: - address: evcc/site/smartCostType + address: "{topic}/site/tariffCo2Loadpoints" messages: - smartCostType: + tariffCo2Loadpoints: description: TODO payload: - type: string + type: integer + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" - SiteBatteryGridChargeActiveReceive: + SiteTariffCo2Receive: description: TODO action: receive channel: - address: evcc/site/batteryGridChargeActive + address: "{topic}/site/tariffCo2" messages: - batteryGridChargeActive: + tariffCo2: description: TODO payload: - type: boolean + type: integer + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" - SiteBatteriesCapacityReceive: + SiteTariffFeedInReceive: description: TODO action: receive channel: - address: evcc/site/batteryCapacity + address: "{topic}/site/tariffFeedIn" messages: - batteryCapacity: + tariffFeedIn: description: TODO payload: type: number + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" - SiteBatteriesSocReceive: + SiteTariffGridReceive: description: TODO action: receive channel: - address: evcc/site/batterySoc + address: "{topic}/site/tariffGrid" messages: - batterySoc: + tariffGrid: description: TODO payload: type: number + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" - SiteBatteriesPowerReceive: + SiteTariffPriceHomeReceive: description: TODO action: receive channel: - address: evcc/site/batteryPower + address: "{topic}/site/tariffPriceHome" messages: - batteryPower: + tariffPriceHome: description: TODO payload: type: number + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" - SiteBatteryEnergyReceive: + SiteTariffPriceLoadpointsReceive: description: TODO action: receive channel: - address: evcc/site/batteryEnergy + address: "{topic}/site/tariffPriceLoadpoints" messages: - batteryEnergy: + tariffPriceLoadpoints: description: TODO payload: - type: integer + type: number + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" - SitePvsPowerReceive: + SiteVersionReceive: description: TODO action: receive channel: - address: evcc/site/pvPower + address: "{topic}/site/version" messages: - pvPower: + version: description: TODO payload: - type: number + type: string + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" - SitePvEnergyReceive: + VehicleCapacityReceive: description: TODO action: receive channel: - address: evcc/site/pvEnergy + address: "{topic}/vehicles/{vehicleName}/capacity" + parameters: + topic: + $ref: "#/components/parameters/topic" + vehicleName: + $ref: "#/components/parameters/vehicleName" messages: - pvEnergy: + capacity: description: TODO payload: type: integer tags: - - $ref: "#/components/tags/site" - SiteHomePowerReceive: + - $ref: "#/components/tags/vehicles" + VehicleFeatureReceive: description: TODO action: receive channel: - address: evcc/site/homePower + address: "{topic}/vehicles/{vehicleName}/features/{id}" + parameters: + id: + $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" + vehicleName: + $ref: "#/components/parameters/vehicleName" messages: - homePower: + feature: description: TODO payload: - type: number + type: string + enum: + - offline + - TODO tags: - - $ref: "#/components/tags/site" - SiteGreenShareHomeReceive: + - $ref: "#/components/tags/vehicles" + VehicleFeaturesReceive: description: TODO action: receive channel: - address: evcc/site/greenShareHome + address: "{topic}/vehicles/{vehicleName}/features" + parameters: + topic: + $ref: "#/components/parameters/topic" + vehicleName: + $ref: "#/components/parameters/vehicleName" messages: - greenShareHome: + features: description: TODO payload: type: integer tags: - - $ref: "#/components/tags/site" - SiteGreenShareLoadpointsReceive: + - $ref: "#/components/tags/vehicles" + VehicleIconReceive: description: TODO action: receive channel: - address: evcc/site/greenShareLoadpoints + address: "{topic}/vehicles/{vehicleName}/icon" + parameters: + topic: + $ref: "#/components/parameters/topic" + vehicleName: + $ref: "#/components/parameters/vehicleName" messages: - greenShareLoadpoints: + icon: description: TODO payload: - type: integer + type: string + enum: + - TODO tags: - - $ref: "#/components/tags/site" - SiteTariffGridReceive: + - $ref: "#/components/tags/vehicles" + VehicleLimitSocReceive: description: TODO action: receive channel: - address: evcc/site/tariffGrid + address: "{topic}/vehicles/{vehicleName}/limitSoc" + parameters: + topic: + $ref: "#/components/parameters/topic" + vehicleName: + $ref: "#/components/parameters/vehicleName" messages: - tariffGrid: + limitSoc: description: TODO payload: - type: number + type: integer tags: - - $ref: "#/components/tags/site" - SiteTariffFeedInReceive: + - $ref: "#/components/tags/vehicles" + VehicleLimitSocSet: description: TODO - action: receive + action: send channel: - address: evcc/site/tariffFeedIn + address: "{topic}/vehicles/{vehicleName}/limitSoc/set" + parameters: + topic: + $ref: "#/components/parameters/topic" + vehicleName: + $ref: "#/components/parameters/vehicleName" messages: - tariffFeedIn: + limitSoc: description: TODO payload: - type: number + type: integer tags: - - $ref: "#/components/tags/site" - SiteTariffPriceHomeReceive: + - $ref: "#/components/tags/vehicles" + VehicleMinSocReceive: description: TODO action: receive channel: - address: evcc/site/tariffPriceHome + address: "{topic}/vehicles/{vehicleName}/minSoc" + parameters: + topic: + $ref: "#/components/parameters/topic" + vehicleName: + $ref: "#/components/parameters/vehicleName" messages: - tariffPriceHome: + minSoc: description: TODO payload: - type: number + type: integer tags: - - $ref: "#/components/tags/site" - SiteTariffPriceLoadpointsReceive: + - $ref: "#/components/tags/vehicles" + VehicleMinSocSet: + description: TODO + action: send + channel: + address: "{topic}/vehicles/{vehicleName}/minSoc/set" + parameters: + topic: + $ref: "#/components/parameters/topic" + vehicleName: + $ref: "#/components/parameters/vehicleName" + messages: + minSoc: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/vehicles" + VehiclePlanSocReceive: description: TODO action: receive channel: - address: evcc/site/tariffPriceLoadpoints + address: "{topic}/vehicles/{vehicleName}/plan/soc" + parameters: + topic: + $ref: "#/components/parameters/topic" + vehicleName: + $ref: "#/components/parameters/vehicleName" messages: - tariffPriceLoadpoints: + soc: description: TODO payload: - type: number + type: integer tags: - - $ref: "#/components/tags/site" - SiteStatisticsSolarPercentageReceive: + - $ref: "#/components/tags/vehicles" + VehiclePlanSocSet: + description: TODO + action: send + channel: + address: "{topic}/vehicles/{vehicleName}/planSoc/set" + parameters: + topic: + $ref: "#/components/parameters/topic" + vehicleName: + $ref: "#/components/parameters/vehicleName" + messages: + planSoc: + description: TODO + payload: + type: object + properties: + time: + description: TODO + type: string + value: + description: TODO + type: string + tags: + - $ref: "#/components/tags/vehicles" + VehiclePlanTimeReceive: description: TODO action: receive channel: - address: evcc/site/statistics/{period}/solarPercentage + address: "{topic}/vehicles/{vehicleName}/plan/time" parameters: - period: - $ref: "#/components/parameters/period" + topic: + $ref: "#/components/parameters/topic" + vehicleName: + $ref: "#/components/parameters/vehicleName" messages: - statisticsSolarPercentage: + time: description: TODO payload: - type: number + type: string tags: - - $ref: "#/components/tags/site" - SiteStatisticsChargedKWhReceive: + - $ref: "#/components/tags/vehicles" + VehicleRepeatingPlanActiveReceive: description: TODO action: receive channel: - address: evcc/site/statistics/{period}/chargedKWh + address: "{topic}/vehicles/{vehicleName}/repeatingPlans/{id}/active" parameters: - period: - $ref: "#/components/parameters/period" + id: + $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" + vehicleName: + $ref: "#/components/parameters/vehicleName" messages: - statisticsChargedKWh: + active: description: TODO payload: - type: number + type: boolean tags: - - $ref: "#/components/tags/site" - SiteStatisticsAvgPriceReceive: + - $ref: "#/components/tags/vehicles" + VehicleRepeatingPlanSocReceive: description: TODO action: receive channel: - address: evcc/site/statistics/{period}/avgPrice + address: "{topic}/vehicles/{vehicleName}/repeatingPlans/{id}/soc" parameters: - period: - $ref: "#/components/parameters/period" + id: + $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" + vehicleName: + $ref: "#/components/parameters/vehicleName" messages: - statisticsAvgPrice: + soc: description: TODO payload: - type: number + type: integer tags: - - $ref: "#/components/tags/site" - SiteStatisticsAvgCo2Receive: + - $ref: "#/components/tags/vehicles" + VehicleRepeatingPlanTimeReceive: description: TODO action: receive channel: - address: evcc/site/statistics/{period}/avgCo2 + address: "{topic}/vehicles/{vehicleName}/repeatingPlans/{id}/time" parameters: - period: - $ref: "#/components/parameters/period" + id: + $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" + vehicleName: + $ref: "#/components/parameters/vehicleName" messages: - statisticsAvgCo2: + time: description: TODO payload: - type: number + type: string tags: - - $ref: "#/components/tags/site" - SiteForecastCo2Receive: + - $ref: "#/components/tags/vehicles" + VehicleRepeatingPlanTzReceive: description: TODO action: receive channel: - address: evcc/site/forecast/co2 + address: "{topic}/vehicles/{vehicleName}/repeatingPlans/{id}/tz" + parameters: + id: + $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" + vehicleName: + $ref: "#/components/parameters/vehicleName" messages: - forecastCo2: + tz: description: TODO payload: - type: array - items: - type: object - properties: - start: - type: string - end: - type: string - price: - type: integer + type: string tags: - - $ref: "#/components/tags/site" - SiteTariffCo2Receive: + - $ref: "#/components/tags/vehicles" + VehicleRepeatingPlanWeekdayReceive: description: TODO action: receive channel: - address: evcc/site/tariffCo2 + address: >- + {topic}/vehicles/{vehicleName}/repeatingPlans/{planId}/weekdays/{weekdayId} + parameters: + planId: + $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" + vehicleName: + $ref: "#/components/parameters/vehicleName" + weekdayId: + $ref: "#/components/parameters/id" messages: - tariffCo2: + weekday: description: TODO payload: type: integer tags: - - $ref: "#/components/tags/site" - SiteTariffCo2HomeReceive: + - $ref: "#/components/tags/vehicles" + VehicleRepeatingPlanWeekdaysReceive: description: TODO action: receive channel: - address: evcc/site/tariffCo2Home + address: "{topic}/vehicles/{vehicleName}/repeatingPlans/{id}/weekdays" + parameters: + id: + $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" + vehicleName: + $ref: "#/components/parameters/vehicleName" messages: - tariffCo2Home: + weekdays: description: TODO payload: type: integer tags: - - $ref: "#/components/tags/site" - SiteTariffCo2LoadpointsReceive: + - $ref: "#/components/tags/vehicles" + VehicleRepeatingPlansReceive: description: TODO action: receive channel: - address: evcc/site/tariffCo2Loadpoints + address: "{topic}/vehicles/{vehicleName}/repeatingPlans" + parameters: + topic: + $ref: "#/components/parameters/topic" + vehicleName: + $ref: "#/components/parameters/vehicleName" messages: - tariffCo2Loadpoints: + repeatingPlans: description: TODO payload: type: integer tags: - - $ref: "#/components/tags/site" - SiteAvailableVersionReceive: + - $ref: "#/components/tags/vehicles" + VehicleTitleReceive: description: TODO action: receive channel: - address: evcc/site/availableVersion + address: "{topic}/vehicles/{vehicleName}/title" + parameters: + topic: + $ref: "#/components/parameters/topic" + vehicleName: + $ref: "#/components/parameters/vehicleName" messages: - availableVersion: + title: + $ref: "#/components/messages/vehicleName" + tags: + - $ref: "#/components/tags/vehicles" + VehiclesReceive: + description: TODO + action: receive + channel: + address: "{topic}/vehicles" + messages: + vehicles: description: TODO payload: - type: string + type: integer + parameters: + topic: + $ref: "#/components/parameters/topic" tags: - - $ref: "#/components/tags/site" + - $ref: "#/components/tags/vehicles" components: messages: batteryBoost: @@ -2214,6 +2574,12 @@ components: payload: type: string parameters: + id: + description: The index. Starts with 1. + examples: + - "1" + - "2" + - "5" period: description: TODO enum: @@ -2221,12 +2587,10 @@ components: - 365d - thisYear - total - id: - description: The index. Starts with 1. + topic: + description: TODO examples: - - "1" - - "2" - - "5" + - evcc vehicleName: description: TODO examples: From e59bc53b1c398f8e683e97579847d767c978dba7 Mon Sep 17 00:00:00 2001 From: Maschga Date: Fri, 28 Feb 2025 11:42:17 +0100 Subject: [PATCH 29/35] wip --- static/mqtt-api.yaml | 139 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 124 insertions(+), 15 deletions(-) diff --git a/static/mqtt-api.yaml b/static/mqtt-api.yaml index be2177157..a5ca22d7a 100644 --- a/static/mqtt-api.yaml +++ b/static/mqtt-api.yaml @@ -1375,9 +1375,20 @@ operations: address: "{topic}/site/batteryDischargeControl" messages: batteryDischargeControl: - description: TODO - payload: - type: boolean + $ref: "#/components/messages/batteryDischargeControl" + parameters: + topic: + $ref: "#/components/parameters/topic" + tags: + - $ref: "#/components/tags/site" + SiteBatteryDischargeControlSet: + description: TODO + action: send + channel: + address: "{topic}/site/batteryDischargeControl/set" + messages: + batteryDischargeControl: + $ref: "#/components/messages/batteryDischargeControl" parameters: topic: $ref: "#/components/parameters/topic" @@ -1413,6 +1424,21 @@ operations: $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/site" + SiteBatteryGridChargeLimitSet: + description: TODO + action: send + channel: + address: "{topic}/site/batteryGridChargeLimit/set" + parameters: + topic: + $ref: "#/components/parameters/topic" + messages: + batteryGridChargeLimit: + description: TODO + payload: + type: number + tags: + - $ref: "#/components/tags/site" SiteBatteryModeReceive: description: TODO action: receive @@ -1469,9 +1495,20 @@ operations: address: "{topic}/site/bufferSoc" messages: bufferSoc: - description: TODO - payload: - type: integer + $ref: "#/components/messages/bufferSoc" + parameters: + topic: + $ref: "#/components/parameters/topic" + tags: + - $ref: "#/components/tags/site" + SiteBufferSocSet: + description: TODO + action: send + channel: + address: "{topic}/site/bufferSoc/set" + messages: + bufferSoc: + $ref: "#/components/messages/bufferSoc" parameters: topic: $ref: "#/components/parameters/topic" @@ -1484,9 +1521,20 @@ operations: address: "{topic}/site/bufferStartSoc" messages: bufferStartSoc: - description: TODO - payload: - type: integer + $ref: "#/components/messages/bufferStartSoc" + parameters: + topic: + $ref: "#/components/parameters/topic" + tags: + - $ref: "#/components/tags/site" + SiteBufferStartSocSet: + description: TODO + action: send + channel: + address: "{topic}/site/bufferStartSoc/set" + messages: + bufferStartSoc: + $ref: "#/components/messages/bufferStartSoc" parameters: topic: $ref: "#/components/parameters/topic" @@ -1823,9 +1871,20 @@ operations: address: "{topic}/site/prioritySoc" messages: prioritySoc: - description: TODO - payload: - type: integer + $ref: "#/components/messages/prioritySoc" + parameters: + topic: + $ref: "#/components/parameters/topic" + tags: + - $ref: "#/components/tags/site" + SitePrioritySocSet: + description: TODO + action: send + channel: + address: "{topic}/site/prioritySoc/set" + messages: + prioritySoc: + $ref: "#/components/messages/prioritySoc" parameters: topic: $ref: "#/components/parameters/topic" @@ -1900,12 +1959,38 @@ operations: address: "{topic}/site/residualPower" messages: residualPower: - description: TODO - payload: - type: integer + $ref: "#/components/messages/residualPower" + parameters: + topic: + $ref: "#/components/parameters/topic" + tags: + - $ref: "#/components/tags/site" + SiteResidualPowerSet: + description: TODO + action: send + channel: + address: "{topic}/site/residualPower/set" + messages: + residualPower: + $ref: "#/components/messages/residualPower" + parameters: + topic: + $ref: "#/components/parameters/topic" + tags: + - $ref: "#/components/tags/site" + SiteSmartCostLimitSet: + description: TODO + action: send + channel: + address: "{topic}/site/smartCostLimit/set" parameters: topic: $ref: "#/components/parameters/topic" + messages: + smartCostLimit: + description: TODO + payload: + type: number tags: - $ref: "#/components/tags/site" SiteSmartCostTypeReceive: @@ -2512,6 +2597,18 @@ components: description: TODO payload: type: boolean + batteryDischargeControl: + description: TODO + payload: + type: boolean + bufferSoc: + description: TODO + payload: + type: integer + bufferStartSoc: + description: TODO + payload: + type: integer disableDelay: description: TODO payload: @@ -2565,6 +2662,18 @@ components: description: TODO payload: type: integer + prioritySoc: + description: TODO + payload: + type: integer + residualPower: + description: TODO + payload: + type: integer + smartCostLimit: + description: TODO + payload: + type: integer vehicleLimitSoc: description: TODO payload: From ce5a5e66ce45cb4ee8d18c695bfd226832a2a012 Mon Sep 17 00:00:00 2001 From: Maschga Date: Fri, 28 Feb 2025 11:50:26 +0100 Subject: [PATCH 30/35] wip --- static/mqtt-api.yaml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/static/mqtt-api.yaml b/static/mqtt-api.yaml index a5ca22d7a..e6c02f82c 100644 --- a/static/mqtt-api.yaml +++ b/static/mqtt-api.yaml @@ -66,6 +66,25 @@ operations: $ref: "#/components/messages/batteryBoost" tags: - $ref: "#/components/tags/loadpoints" + LoadpointChargeCurrentPhaseReceive: + description: TODO + action: receive + channel: + address: "{topic}/loadpoints/{id}/chargeCurrents/{phase}" + parameters: + id: + $ref: "#/components/parameters/id" + phase: + $ref: "#/components/parameters/phase" + topic: + $ref: "#/components/parameters/topic" + messages: + chargeCurrentPhase: + description: TODO + payload: + type: number + tags: + - $ref: "#/components/tags/loadpoints" LoadpointChargeCurrentReceive: description: TODO action: receive @@ -2696,6 +2715,12 @@ components: - 365d - thisYear - total + phase: + description: TODO + examples: + - l1 + - l2 + - l3 topic: description: TODO examples: From 7c3a7d44bff3e37b2719a6694f20bc9ffe15f17f Mon Sep 17 00:00:00 2001 From: Maschga Date: Fri, 28 Feb 2025 11:52:05 +0100 Subject: [PATCH 31/35] wip --- static/mqtt-api.yaml | 16 +-- static/mqtt.go | 327 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 332 insertions(+), 11 deletions(-) create mode 100644 static/mqtt.go diff --git a/static/mqtt-api.yaml b/static/mqtt-api.yaml index e6c02f82c..fc40846eb 100644 --- a/static/mqtt-api.yaml +++ b/static/mqtt-api.yaml @@ -70,14 +70,14 @@ operations: description: TODO action: receive channel: - address: "{topic}/loadpoints/{id}/chargeCurrents/{phase}" + address: "{topic}/loadpoints/{loadpointId}/chargeCurrents/l{phaseId}" parameters: - id: + loadpointId: $ref: "#/components/parameters/id" phase: $ref: "#/components/parameters/phase" - topic: - $ref: "#/components/parameters/topic" + phaseId: + $ref: "#/components/parameters/id" messages: chargeCurrentPhase: description: TODO @@ -2707,7 +2707,7 @@ components: examples: - "1" - "2" - - "5" + - "3" period: description: TODO enum: @@ -2715,12 +2715,6 @@ components: - 365d - thisYear - total - phase: - description: TODO - examples: - - l1 - - l2 - - l3 topic: description: TODO examples: diff --git a/static/mqtt.go b/static/mqtt.go new file mode 100644 index 000000000..324a4b03b --- /dev/null +++ b/static/mqtt.go @@ -0,0 +1,327 @@ +package server + +import ( + "encoding/json" + "fmt" + "reflect" + "strconv" + "strings" + "time" + + "github.com/evcc-io/evcc/api" + "github.com/evcc-io/evcc/core/loadpoint" + "github.com/evcc-io/evcc/core/site" + "github.com/evcc-io/evcc/core/vehicle" + "github.com/evcc-io/evcc/plugin/mqtt" + "github.com/evcc-io/evcc/util" +) + +// MQTTMarshaler is the interface implemented by types that +// can marshal themselves into valid an MQTT string representation. +type MQTTMarshaler interface { + MarshalMQTT() ([]byte, error) +} + +// MQTT is the MQTT server. It uses the MQTT client for publishing. +type MQTT struct { + log *util.Logger + Handler *mqtt.Client + root string + publisher func(topic string, retained bool, payload string) +} + +// NewMQTT creates MQTT server +func NewMQTT(root string, site site.API) (*MQTT, error) { + m := &MQTT{ + log: util.NewLogger("mqtt"), + Handler: mqtt.Instance, + root: root, + } + m.publisher = m.publishString + + err := m.Handler.Cleanup(m.root, true) + if err == nil { + err = m.Listen(site) + } + if err != nil { + err = fmt.Errorf("mqtt: %w", err) + } + + return m, err +} + +func (m *MQTT) encode(v interface{}) string { + // nil should erase the value + if v == nil { + return "" + } + + switch val := v.(type) { + case string: + return val + case float64: + return fmt.Sprintf("%.5g", val) + case time.Time: + if val.IsZero() { + return "" + } + return strconv.FormatInt(val.Unix(), 10) + case time.Duration: + // must be before stringer to convert to seconds instead of string + return strconv.Itoa(int(val.Seconds())) + case fmt.Stringer: + return val.String() + default: + return fmt.Sprintf("%v", val) + } +} + +func (m *MQTT) publishComplex(topic string, retained bool, payload interface{}) { + if _, ok := payload.(fmt.Stringer); ok || payload == nil { + m.publishSingleValue(topic, retained, payload) + return + } + + if mm, ok := payload.(MQTTMarshaler); ok { + if b, err := mm.MarshalMQTT(); err == nil { + m.publishSingleValue(topic, retained, string(b)) + } else { + m.log.ERROR.Printf("marshal mqtt: %v", err) + } + return + } + + switch typ := reflect.TypeOf(payload); typ.Kind() { + case reflect.Slice: + // publish count + val := reflect.ValueOf(payload) + m.publishSingleValue(topic, retained, val.Len()) + + // loop slice + for i := range val.Len() { + m.publishComplex(fmt.Sprintf("%s/%d", topic, i+1), retained, val.Index(i).Interface()) + } + + case reflect.Map: + // loop map + for iter := reflect.ValueOf(payload).MapRange(); iter.Next(); { + k := iter.Key().String() + m.publishComplex(fmt.Sprintf("%s/%s", topic, k), retained, iter.Value().Interface()) + } + + case reflect.Struct: + val := reflect.ValueOf(payload) + typ := val.Type() + + // loop struct + for i := range typ.NumField() { + if f := typ.Field(i); f.IsExported() { + topic := fmt.Sprintf("%s/%s", topic, strings.ToLower(f.Name[:1])+f.Name[1:]) + + if val.Field(i).IsZero() && omitEmpty(f) { + m.publishSingleValue(topic, retained, nil) + } else { + m.publishComplex(topic, retained, val.Field(i).Interface()) + } + } + } + + case reflect.Pointer: + if val := reflect.ValueOf(payload); !val.IsNil() { + m.publishComplex(topic, retained, reflect.Indirect(val).Interface()) + return + } + + payload = nil + fallthrough + + default: + m.publishSingleValue(topic, retained, payload) + } +} + +func (m *MQTT) publishString(topic string, retained bool, payload string) { + token := m.Handler.Client.Publish(topic, m.Handler.Qos, retained, m.encode(payload)) + go m.Handler.WaitForToken("send", topic, token) +} + +func (m *MQTT) publishSingleValue(topic string, retained bool, payload interface{}) { + m.publisher(topic, retained, m.encode(payload)) +} + +func (m *MQTT) publish(topic string, retained bool, payload interface{}) { + // publish phase values + if slice, ok := payload.([]float64); ok && len(slice) == 3 { + var total float64 + for i, v := range slice { + total += v + m.publishSingleValue(fmt.Sprintf("%s/l%d", topic, i+1), retained, v) + } + + // publish sum value + m.publishSingleValue(topic, retained, total) + + return + } + + m.publishComplex(topic, retained, payload) +} + +func (m *MQTT) Listen(site site.API) error { + if err := m.listenSiteSetters(m.root+"/site", site); err != nil { + return err + } + + // loadpoint setters + for id, lp := range site.Loadpoints() { + topic := fmt.Sprintf("%s/loadpoints/%d", m.root, id+1) + if err := m.listenLoadpointSetters(topic, site, lp); err != nil { + return err + } + } + + // vehicle setters + for _, vehicle := range site.Vehicles().Settings() { + topic := fmt.Sprintf("%s/vehicles/%s", m.root, vehicle.Name()) + if err := m.listenVehicleSetters(topic, vehicle); err != nil { + return err + } + } + + return nil +} + +func (m *MQTT) listenSiteSetters(topic string, site site.API) error { + for _, s := range []setter{ + // {"bufferSoc", floatSetter(site.SetBufferSoc)}, + // {"bufferStartSoc", floatSetter(site.SetBufferStartSoc)}, + // {"batteryDischargeControl", boolSetter(site.SetBatteryDischargeControl)}, + // {"prioritySoc", floatSetter(site.SetPrioritySoc)}, + // {"residualPower", floatSetter(site.SetResidualPower)}, + // {"smartCostLimit", floatPtrSetter(pass(func(limit *float64) { + // for _, lp := range site.Loadpoints() { + // lp.SetSmartCostLimit(limit) + // } + // }))}, + // {"batteryGridChargeLimit", floatPtrSetter(pass(site.SetBatteryGridChargeLimit))}, + } { + if err := m.Handler.ListenSetter(topic+"/"+s.topic, s.fun); err != nil { + return err + } + } + + return nil +} + +func (m *MQTT) listenLoadpointSetters(topic string, site site.API, lp loadpoint.API) error { + for _, s := range []setter{ + // {"mode", setterFunc(api.ChargeModeString, pass(lp.SetMode))}, + // {"phases", intSetter(lp.SetPhasesConfigured)}, + // {"limitSoc", intSetter(pass(lp.SetLimitSoc))}, + // {"priority", intSetter(pass(lp.SetPriority))}, + // {"minCurrent", floatSetter(lp.SetMinCurrent)}, + // {"maxCurrent", floatSetter(lp.SetMaxCurrent)}, + // {"limitEnergy", floatSetter(pass(lp.SetLimitEnergy))}, + // {"enableThreshold", floatSetter(pass(lp.SetEnableThreshold))}, + // {"disableThreshold", floatSetter(pass(lp.SetDisableThreshold))}, + // {"enableDelay", durationSetter(pass(lp.SetEnableDelay))}, + // {"disableDelay", durationSetter(pass(lp.SetDisableDelay))}, + // {"smartCostLimit", floatPtrSetter(pass(lp.SetSmartCostLimit))}, + // {"batteryBoost", boolSetter(lp.SetBatteryBoost)}, + // {"planEnergy", func(payload string) error { + // var plan struct { + // Time time.Time `json:"time"` + // Value float64 `json:"value"` + // } + // err := json.Unmarshal([]byte(payload), &plan) + // if err == nil { + // err = lp.SetPlanEnergy(plan.Time, plan.Value) + // } + // return err + // }}, + // {"vehicle", func(payload string) error { + // // https://github.com/evcc-io/evcc/issues/11184 empty payload is swallowed by listener + // if isEmpty(payload) { + // lp.SetVehicle(nil) + // return nil + // } + // vehicle, err := site.Vehicles().ByName(payload) + // if err == nil { + // lp.SetVehicle(vehicle.Instance()) + // } + // return err + // }}, + } { + if err := m.Handler.ListenSetter(topic+"/"+s.topic, s.fun); err != nil { + return err + } + } + + return nil +} + +func (m *MQTT) listenVehicleSetters(topic string, v vehicle.API) error { + for _, s := range []setter{ + // {"limitSoc", intSetter(pass(v.SetLimitSoc))}, + // {"minSoc", intSetter(pass(v.SetMinSoc))}, + // {"planSoc", func(payload string) error { + // var plan struct { + // Time time.Time `json:"time"` + // Value int `json:"value"` + // } + // err := json.Unmarshal([]byte(payload), &plan) + // if err == nil { + // err = v.SetPlanSoc(plan.Time, plan.Value) + // } + // return err + // }}, + } { + if err := m.Handler.ListenSetter(topic+"/"+s.topic, s.fun); err != nil { + return err + } + } + + return nil +} + +// Run starts the MQTT publisher for the MQTT API +func (m *MQTT) Run(site site.API, in <-chan util.Param) { + // number of loadpoints + topic := fmt.Sprintf("%s/loadpoints", m.root) + m.publish(topic, true, len(site.Loadpoints())) + + // number of vehicles + topic = fmt.Sprintf("%s/vehicles", m.root) + m.publish(topic, true, len(site.Vehicles().Settings())) + + for i := range 10 { + m.publish(fmt.Sprintf("%s/site/pv/%d", m.root, i), true, nil) + m.publish(fmt.Sprintf("%s/site/battery/%d", m.root, i), true, nil) + m.publish(fmt.Sprintf("%s/site/vehicles/%d", m.root, i), true, nil) + } + + // alive indicator + var updated time.Time + + // publish + for p := range in { + switch { + case p.Loadpoint != nil: + id := *p.Loadpoint + 1 + topic = fmt.Sprintf("%s/loadpoints/%d/%s", m.root, id, p.Key) + case p.Key == "vehicles": + topic = fmt.Sprintf("%s/vehicles", m.root) + default: + topic = fmt.Sprintf("%s/site/%s", m.root, p.Key) + } + + // alive indicator + if time.Since(updated) > time.Second { + updated = time.Now() + m.publish(fmt.Sprintf("%s/updated", m.root), true, updated.Unix()) + } + + // value + m.publish(topic, true, p.Val) + } +} From c55b795d11c761e2212ff9bb5be412b7f4901900 Mon Sep 17 00:00:00 2001 From: Maschga Date: Fri, 7 Mar 2025 10:44:27 +0100 Subject: [PATCH 32/35] wip --- static/mqtt-api.yaml | 263 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 209 insertions(+), 54 deletions(-) diff --git a/static/mqtt-api.yaml b/static/mqtt-api.yaml index fc40846eb..b8871527e 100644 --- a/static/mqtt-api.yaml +++ b/static/mqtt-api.yaml @@ -74,10 +74,10 @@ operations: parameters: loadpointId: $ref: "#/components/parameters/id" - phase: - $ref: "#/components/parameters/phase" phaseId: $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" messages: chargeCurrentPhase: description: TODO @@ -99,7 +99,7 @@ operations: chargeCurrent: description: TODO payload: - type: integer + type: number tags: - $ref: "#/components/tags/loadpoints" LoadpointChargeCurrentsReceive: @@ -116,7 +116,7 @@ operations: chargeCurrents: description: TODO payload: - type: integer + type: number tags: - $ref: "#/components/tags/loadpoints" LoadpointChargePowerReceive: @@ -133,7 +133,7 @@ operations: chargePower: description: TODO payload: - type: integer + type: number tags: - $ref: "#/components/tags/loadpoints" LoadpointChargeRemainingDurationReceive: @@ -254,7 +254,7 @@ operations: chargedEnergy: description: TODO payload: - type: integer + type: number tags: - $ref: "#/components/tags/loadpoints" LoadpointChargerFeatureHeatingReceive: @@ -486,7 +486,7 @@ operations: effectiveMaxCurrent: description: TODO payload: - type: integer + type: number tags: - $ref: "#/components/tags/loadpoints" LoadpointEffectiveMinCurrentReceive: @@ -503,7 +503,7 @@ operations: effectiveMinCurrent: description: TODO payload: - type: integer + type: number tags: - $ref: "#/components/tags/loadpoints" LoadpointEffectivePlanIdReceive: @@ -836,7 +836,7 @@ operations: $ref: "#/components/parameters/topic" messages: phases: - $ref: "#/components/messages/phases" + $ref: "#/components/messages/loadpointPhases" tags: - $ref: "#/components/tags/loadpoints" LoadpointPhasesSet: @@ -851,7 +851,7 @@ operations: $ref: "#/components/parameters/topic" messages: phases: - $ref: "#/components/messages/phases" + $ref: "#/components/messages/loadpointPhases" tags: - $ref: "#/components/tags/loadpoints" LoadpointPlanActiveReceive: @@ -885,7 +885,7 @@ operations: planEnergy: description: TODO payload: - type: integer + type: number tags: - $ref: "#/components/tags/loadpoints" LoadpointPlanEnergySet: @@ -909,7 +909,7 @@ operations: type: string value: description: TODO - type: integer + type: number tags: - $ref: "#/components/tags/loadpoints" LoadpointPlanOverrunReceive: @@ -1026,7 +1026,7 @@ operations: sessionEnergy: description: TODO payload: - type: integer + type: number tags: - $ref: "#/components/tags/loadpoints" LoadpointSessionPricePerKWhReceive: @@ -1109,9 +1109,7 @@ operations: $ref: "#/components/parameters/topic" messages: smartCostLimit: - description: TODO - payload: - type: number + $ref: "#/components/messages/smartCostLimit" tags: - $ref: "#/components/tags/loadpoints" LoadpointTitleReceive: @@ -1194,7 +1192,7 @@ operations: vehicleOdometer: description: TODO payload: - type: integer + type: number tags: - $ref: "#/components/tags/loadpoints" LoadpointVehicleRangeReceive: @@ -1422,7 +1420,7 @@ operations: batteryEnergy: description: TODO payload: - type: integer + type: number parameters: topic: $ref: "#/components/parameters/topic" @@ -1610,19 +1608,100 @@ operations: channel: address: "{topic}/site/forecast/co2" messages: - forecastCo2: + tariff: + $ref: "#/components/messages/tariff" + parameters: + topic: + $ref: "#/components/parameters/topic" + tags: + - $ref: "#/components/tags/site" + SiteForecastFeedinReceive: + description: TODO + action: receive + channel: + address: "{topic}/site/forecast/feedin" + messages: + tariff: + $ref: "#/components/messages/tariff" + parameters: + topic: + $ref: "#/components/parameters/topic" + tags: + - $ref: "#/components/tags/site" + SiteForecastGridReceive: + description: TODO + action: receive + channel: + address: "{topic}/site/forecast/grid" + messages: + tariff: + $ref: "#/components/messages/tariff" + parameters: + topic: + $ref: "#/components/parameters/topic" + tags: + - $ref: "#/components/tags/site" + SiteForecastSolarDayReceive: + description: TODO + action: receive + channel: + address: "{topic}/site/forecast/solar/{day}" + messages: + forecastGridDay: description: TODO payload: - type: array - items: - type: object - properties: - start: - type: string - end: - type: string - price: - type: integer + type: object + properties: + yield: + description: TODO + type: string + complete: + description: TODO + type: boolean + parameters: + day: + description: TODO + enum: + - today + - tomorrow + topic: + $ref: "#/components/parameters/topic" + tags: + - $ref: "#/components/tags/site" + SiteForecastSolarTimeseriesReceive: + description: TODO + action: receive + channel: + address: "{topic}/site/forecast/solar/timeseries/{id}" + messages: + forecastTimeseries: + description: TODO + payload: + type: object + properties: + timestamp: + description: TODO + type: integer + value: + description: TODO + type: number + parameters: + id: + $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" + tags: + - $ref: "#/components/tags/site" + SiteForecastSolarTimeseries_Receive: + description: TODO + action: receive + channel: + address: "{topic}/site/forecast/solar/timeseries" + messages: + forecastTimeseries_: + description: TODO + payload: + type: integer parameters: topic: $ref: "#/components/parameters/topic" @@ -1682,7 +1761,7 @@ operations: gridEnergy: description: TODO payload: - type: integer + type: number parameters: topic: $ref: "#/components/parameters/topic" @@ -1697,7 +1776,7 @@ operations: gridPower: description: TODO payload: - type: integer + type: number parameters: topic: $ref: "#/components/parameters/topic" @@ -1918,7 +1997,7 @@ operations: pvEnergy: description: TODO payload: - type: integer + type: number parameters: topic: $ref: "#/components/parameters/topic" @@ -2007,9 +2086,7 @@ operations: $ref: "#/components/parameters/topic" messages: smartCostLimit: - description: TODO - payload: - type: number + $ref: "#/components/messages/smartCostLimit" tags: - $ref: "#/components/tags/site" SiteSmartCostTypeReceive: @@ -2259,7 +2336,7 @@ operations: capacity: description: TODO payload: - type: integer + type: number tags: - $ref: "#/components/tags/vehicles" VehicleFeatureReceive: @@ -2354,6 +2431,36 @@ operations: type: integer tags: - $ref: "#/components/tags/vehicles" + VehicleMaxCurrentReceive: + description: TODO + action: receive + channel: + address: "{topic}/vehicles/{vehicleName}/maxCurrent" + parameters: + topic: + $ref: "#/components/parameters/topic" + vehicleName: + $ref: "#/components/parameters/vehicleName" + messages: + maxCurrent: + $ref: "#/components/messages/maxCurrent" + tags: + - $ref: "#/components/tags/vehicles" + VehicleMinCurrentReceive: + description: TODO + action: receive + channel: + address: "{topic}/vehicles/{vehicleName}/minCurrent" + parameters: + topic: + $ref: "#/components/parameters/topic" + vehicleName: + $ref: "#/components/parameters/vehicleName" + messages: + minCurrent: + $ref: "#/components/messages/minCurrent" + tags: + - $ref: "#/components/tags/vehicles" VehicleMinSocReceive: description: TODO action: receive @@ -2388,24 +2495,27 @@ operations: type: integer tags: - $ref: "#/components/tags/vehicles" - VehiclePlanSocReceive: + VehiclePhasesReceive: description: TODO action: receive channel: - address: "{topic}/vehicles/{vehicleName}/plan/soc" + address: "{topic}/vehicles/{vehicleName}/phases" parameters: topic: $ref: "#/components/parameters/topic" vehicleName: $ref: "#/components/parameters/vehicleName" messages: - soc: - description: TODO + vehiclePhases: payload: type: integer + enum: + - "1" + - "2" + - "3" tags: - $ref: "#/components/tags/vehicles" - VehiclePlanSocSet: + VehiclePlanSet: description: TODO action: send channel: @@ -2429,6 +2539,23 @@ operations: type: string tags: - $ref: "#/components/tags/vehicles" + VehiclePlanSocReceive: + description: TODO + action: receive + channel: + address: "{topic}/vehicles/{vehicleName}/plan/soc" + parameters: + topic: + $ref: "#/components/parameters/topic" + vehicleName: + $ref: "#/components/parameters/vehicleName" + messages: + soc: + description: TODO + payload: + type: integer + tags: + - $ref: "#/components/tags/vehicles" VehiclePlanTimeReceive: description: TODO action: receive @@ -2446,6 +2573,21 @@ operations: type: string tags: - $ref: "#/components/tags/vehicles" + VehiclePriorityReceive: + description: TODO + action: receive + channel: + address: "{topic}/vehicles/{vehicleName}/priority" + parameters: + topic: + $ref: "#/components/parameters/topic" + vehicleName: + $ref: "#/components/parameters/vehicleName" + messages: + priority: + $ref: "#/components/messages/priority" + tags: + - $ref: "#/components/tags/vehicles" VehicleRepeatingPlanActiveReceive: description: TODO action: receive @@ -2646,16 +2788,26 @@ components: type: number limitEnergy: description: TODO + payload: + type: number + loadpointPhases: + description: >- + Number of phases. (0: auto, 1: 1-phase, 3: 3-phase) [Read + more.](/en/docs/reference/configuration/loadpoints#phases) payload: type: integer + enum: + - "0" + - "1" + - "3" maxCurrent: description: TODO payload: - type: integer + type: number minCurrent: description: TODO payload: - type: integer + type: number mode: description: >- Charging mode. [Read @@ -2667,16 +2819,6 @@ components: - pv - minpv - now - phases: - description: >- - Number of phases. (0: auto, 1: 1-phase, 3: 3-phase) [Read - more.](/en/docs/reference/configuration/loadpoints#phases) - payload: - type: integer - enum: - - "0" - - "1" - - "3" priority: description: TODO payload: @@ -2692,7 +2834,20 @@ components: smartCostLimit: description: TODO payload: - type: integer + type: number + tariff: + description: TODO + payload: + type: array + items: + type: object + properties: + start: + type: string + end: + type: string + price: + type: integer vehicleLimitSoc: description: TODO payload: From f3b07b506dd71a8ba9a6b1212f773190e6880135 Mon Sep 17 00:00:00 2001 From: Maschga <88616799+Maschga@users.noreply.github.com> Date: Sun, 9 Mar 2025 14:52:13 +0100 Subject: [PATCH 33/35] wip --- static/mqtt-api.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/static/mqtt-api.yaml b/static/mqtt-api.yaml index b8871527e..1768eebb4 100644 --- a/static/mqtt-api.yaml +++ b/static/mqtt-api.yaml @@ -1664,6 +1664,7 @@ operations: enum: - today - tomorrow + - dayAfterTomorrow topic: $ref: "#/components/parameters/topic" tags: From 82420802bd787547bfef3e0d76682cce5250c09f Mon Sep 17 00:00:00 2001 From: Maschga Date: Mon, 10 Mar 2025 13:09:43 +0100 Subject: [PATCH 34/35] wip --- static/mqtt-api.yaml | 258 ++++++++++++++++++++++++++----------------- 1 file changed, 157 insertions(+), 101 deletions(-) diff --git a/static/mqtt-api.yaml b/static/mqtt-api.yaml index 1768eebb4..1627de8c5 100644 --- a/static/mqtt-api.yaml +++ b/static/mqtt-api.yaml @@ -4,7 +4,7 @@ info: version: latest operations: GeneralStatusReceive: - description: TODO + description: Whether the evcc loop runs as expected. action: receive channel: address: "{topic}/status" @@ -15,6 +15,7 @@ operations: type: string enum: - online + - offline parameters: topic: $ref: "#/components/parameters/topic" @@ -27,17 +28,16 @@ operations: address: "{topic}/updated" messages: updated: - description: TODO - payload: - type: integer - example: 1740512847 + $ref: "#/components/messages/time" parameters: topic: $ref: "#/components/parameters/topic" tags: - $ref: "#/components/tags/general" LoadpointBatteryBoostReceive: - description: TODO + description: > + Whether battery boost is enabled. [Read + more.](/en/docs/features/battery#battery-boost) action: receive channel: address: "{topic}/loadpoints/{id}/batteryBoost" @@ -52,7 +52,9 @@ operations: tags: - $ref: "#/components/tags/loadpoints" LoadpointBatteryBoostSet: - description: TODO + description: > + Enables or disables battery boost. [Read + more.](/en/docs/features/battery#battery-boost) action: send channel: address: "{topic}/loadpoints/{id}/batteryBoost/set" @@ -66,37 +68,37 @@ operations: $ref: "#/components/messages/batteryBoost" tags: - $ref: "#/components/tags/loadpoints" - LoadpointChargeCurrentPhaseReceive: + LoadpointChargeCurrentReceive: description: TODO action: receive channel: - address: "{topic}/loadpoints/{loadpointId}/chargeCurrents/l{phaseId}" + address: "{topic}/loadpoints/{id}/chargeCurrent" parameters: - loadpointId: - $ref: "#/components/parameters/id" - phaseId: + id: $ref: "#/components/parameters/id" topic: $ref: "#/components/parameters/topic" messages: - chargeCurrentPhase: + chargeCurrent: description: TODO payload: type: number tags: - $ref: "#/components/tags/loadpoints" - LoadpointChargeCurrentReceive: + LoadpointChargeCurrentsPhaseReceive: description: TODO action: receive channel: - address: "{topic}/loadpoints/{id}/chargeCurrent" + address: "{topic}/loadpoints/{loadpointId}/chargeCurrents/l{phaseId}" parameters: - id: + loadpointId: + $ref: "#/components/parameters/id" + phaseId: $ref: "#/components/parameters/id" topic: $ref: "#/components/parameters/topic" messages: - chargeCurrent: + chargeCurrentPhase: description: TODO payload: type: number @@ -186,7 +188,9 @@ operations: tags: - $ref: "#/components/tags/loadpoints" LoadpointChargeVehicleNameReceive: - description: TODO + description: > + Stores the associated vehicle of the loadpoint. [Read + more.](/en/docs/features/vehicle) action: receive channel: address: "{topic}/loadpoints/{id}/vehicleName" @@ -201,7 +205,9 @@ operations: tags: - $ref: "#/components/tags/loadpoints" LoadpointChargeVehicleNameSet: - description: TODO + description: > + Changes the association of a vehicle to the loadpoint. [Read + more.](/en/docs/features/vehicle) action: send channel: address: "{topic}/loadpoints/{id}/vehicle/set" @@ -467,9 +473,7 @@ operations: $ref: "#/components/parameters/topic" messages: effectiveLimitSoc: - description: TODO - payload: - type: integer + $ref: "#/components/messages/soc" tags: - $ref: "#/components/tags/loadpoints" LoadpointEffectiveMaxCurrentReceive: @@ -535,9 +539,22 @@ operations: $ref: "#/components/parameters/topic" messages: effectivePlanSoc: - description: TODO - payload: - type: integer + $ref: "#/components/messages/soc" + tags: + - $ref: "#/components/tags/loadpoints" + LoadpointEffectivePlanTimeReceive: + description: TODO + action: receive + channel: + address: "{topic}/loadpoints/{id}/effectivePlanTime" + parameters: + id: + $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" + messages: + effectivePlanTime: + $ref: "#/components/messages/timestamp" tags: - $ref: "#/components/tags/loadpoints" LoadpointEffectivePriorityReceive: @@ -676,9 +693,7 @@ operations: $ref: "#/components/parameters/topic" messages: limitSoc: - description: TODO - payload: - type: integer + $ref: "#/components/messages/soc" tags: - $ref: "#/components/tags/loadpoints" LoadpointMaxCurrentReceive: @@ -900,13 +915,13 @@ operations: $ref: "#/components/parameters/topic" messages: planEnergy: + description: TODO contentType: application/json payload: type: object properties: time: - description: TODO - type: string + $ref: "#/components/messages/timestamp" value: description: TODO type: number @@ -929,6 +944,36 @@ operations: type: integer tags: - $ref: "#/components/tags/loadpoints" + LoadpointPlanProjectedEnd: + description: TODO + action: receive + channel: + address: "{topic}/loadpoints/{id}/planProjectedEnd" + parameters: + id: + $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" + messages: + planProjectedEnd: + $ref: "#/components/messages/timestamp" + tags: + - $ref: "#/components/tags/loadpoints" + LoadpointPlanProjectedStart: + description: TODO + action: receive + channel: + address: "{topic}/loadpoints/{id}/planProjectedStart" + parameters: + id: + $ref: "#/components/parameters/id" + topic: + $ref: "#/components/parameters/topic" + messages: + planProjectedStart: + $ref: "#/components/messages/timestamp" + tags: + - $ref: "#/components/tags/loadpoints" LoadpointPriorityReceive: description: TODO action: receive @@ -1129,6 +1174,7 @@ operations: documentation](/en/docs/reference/configuration/loadpoints#title) payload: type: string + example: Garage tags: - $ref: "#/components/tags/loadpoints" LoadpointVehicleDetectionActiveReceive: @@ -1160,7 +1206,7 @@ operations: $ref: "#/components/parameters/topic" messages: vehicleLimitSoc: - $ref: "#/components/messages/vehicleLimitSoc" + $ref: "#/components/messages/soc" tags: - $ref: "#/components/tags/loadpoints" LoadpointVehicleLimitSocSet: @@ -1175,7 +1221,7 @@ operations: $ref: "#/components/parameters/topic" messages: vehicleLimitSoc: - $ref: "#/components/messages/vehicleLimitSoc" + $ref: "#/components/messages/soc" tags: - $ref: "#/components/tags/loadpoints" LoadpointVehicleOdometerReceive: @@ -1224,9 +1270,7 @@ operations: $ref: "#/components/parameters/topic" messages: vehicleSoc: - description: TODO - payload: - type: number + $ref: "#/components/messages/soc" tags: - $ref: "#/components/tags/loadpoints" LoadpointVehicleWelcomeActiveReceive: @@ -1283,9 +1327,7 @@ operations: address: "{topic}/site/availableVersion" messages: availableVersion: - description: TODO - payload: - type: string + $ref: "#/components/messages/version" parameters: topic: $ref: "#/components/parameters/topic" @@ -1343,9 +1385,7 @@ operations: address: "{topic}/site/batterySoc" messages: batterySoc: - description: TODO - payload: - type: number + $ref: "#/components/messages/soc" parameters: topic: $ref: "#/components/parameters/topic" @@ -1466,6 +1506,9 @@ operations: description: TODO payload: type: string + enum: + - unknown + - TODO parameters: topic: $ref: "#/components/parameters/topic" @@ -1500,9 +1543,7 @@ operations: $ref: "#/components/parameters/topic" messages: batterySoc: - description: TODO - payload: - type: number + $ref: "#/components/messages/soc" tags: - $ref: "#/components/tags/site" SiteBufferSocReceive: @@ -1512,7 +1553,7 @@ operations: address: "{topic}/site/bufferSoc" messages: bufferSoc: - $ref: "#/components/messages/bufferSoc" + $ref: "#/components/messages/soc" parameters: topic: $ref: "#/components/parameters/topic" @@ -1525,7 +1566,7 @@ operations: address: "{topic}/site/bufferSoc/set" messages: bufferSoc: - $ref: "#/components/messages/bufferSoc" + $ref: "#/components/messages/soc" parameters: topic: $ref: "#/components/parameters/topic" @@ -1538,7 +1579,7 @@ operations: address: "{topic}/site/bufferStartSoc" messages: bufferStartSoc: - $ref: "#/components/messages/bufferStartSoc" + $ref: "#/components/messages/soc" parameters: topic: $ref: "#/components/parameters/topic" @@ -1551,7 +1592,7 @@ operations: address: "{topic}/site/bufferStartSoc/set" messages: bufferStartSoc: - $ref: "#/components/messages/bufferStartSoc" + $ref: "#/components/messages/soc" parameters: topic: $ref: "#/components/parameters/topic" @@ -1567,6 +1608,9 @@ operations: description: TODO payload: type: string + example: EUR + enum: + - TODO parameters: topic: $ref: "#/components/parameters/topic" @@ -1654,13 +1698,12 @@ operations: properties: yield: description: TODO - type: string + type: integer complete: description: TODO type: boolean parameters: day: - description: TODO enum: - today - tomorrow @@ -1681,8 +1724,7 @@ operations: type: object properties: timestamp: - description: TODO - type: integer + $ref: "#/components/messages/timestamp" value: description: TODO type: number @@ -1868,6 +1910,7 @@ operations: description: TODO payload: type: string + example: localhost:1883 parameters: topic: $ref: "#/components/parameters/topic" @@ -1898,6 +1941,7 @@ operations: description: TODO payload: type: string + example: evcc parameters: topic: $ref: "#/components/parameters/topic" @@ -1913,6 +1957,7 @@ operations: description: TODO payload: type: string + example: mqttuser parameters: topic: $ref: "#/components/parameters/topic" @@ -1928,6 +1973,7 @@ operations: description: TODO payload: type: string + example: evcc.local parameters: topic: $ref: "#/components/parameters/topic" @@ -1958,6 +2004,9 @@ operations: description: TODO payload: type: string + enum: + - http + - https parameters: topic: $ref: "#/components/parameters/topic" @@ -1970,7 +2019,7 @@ operations: address: "{topic}/site/prioritySoc" messages: prioritySoc: - $ref: "#/components/messages/prioritySoc" + $ref: "#/components/messages/soc" parameters: topic: $ref: "#/components/parameters/topic" @@ -1983,7 +2032,7 @@ operations: address: "{topic}/site/prioritySoc/set" messages: prioritySoc: - $ref: "#/components/messages/prioritySoc" + $ref: "#/components/messages/soc" parameters: topic: $ref: "#/components/parameters/topic" @@ -2100,6 +2149,9 @@ operations: description: TODO payload: type: string + enum: + - pricestatic + - TODO parameters: topic: $ref: "#/components/parameters/topic" @@ -2112,9 +2164,7 @@ operations: address: "{topic}/site/sponsor/expiresAt" messages: sponsorExpiresAt: - description: TODO - payload: - type: integer + $ref: "#/components/messages/timestamp" parameters: topic: $ref: "#/components/parameters/topic" @@ -2130,6 +2180,9 @@ operations: description: TODO payload: type: string + examples: + - YourGithubUserName + - test@example.com parameters: topic: $ref: "#/components/parameters/topic" @@ -2315,9 +2368,7 @@ operations: address: "{topic}/site/version" messages: version: - description: TODO - payload: - type: string + $ref: "#/components/messages/version" parameters: topic: $ref: "#/components/parameters/topic" @@ -2410,9 +2461,7 @@ operations: $ref: "#/components/parameters/vehicleName" messages: limitSoc: - description: TODO - payload: - type: integer + $ref: "#/components/messages/soc" tags: - $ref: "#/components/tags/vehicles" VehicleLimitSocSet: @@ -2427,9 +2476,7 @@ operations: $ref: "#/components/parameters/vehicleName" messages: limitSoc: - description: TODO - payload: - type: integer + $ref: "#/components/messages/soc" tags: - $ref: "#/components/tags/vehicles" VehicleMaxCurrentReceive: @@ -2474,9 +2521,7 @@ operations: $ref: "#/components/parameters/vehicleName" messages: minSoc: - description: TODO - payload: - type: integer + $ref: "#/components/messages/soc" tags: - $ref: "#/components/tags/vehicles" VehicleMinSocSet: @@ -2491,9 +2536,7 @@ operations: $ref: "#/components/parameters/vehicleName" messages: minSoc: - description: TODO - payload: - type: integer + $ref: "#/components/messages/soc" tags: - $ref: "#/components/tags/vehicles" VehiclePhasesReceive: @@ -2508,6 +2551,7 @@ operations: $ref: "#/components/parameters/vehicleName" messages: vehiclePhases: + description: TODO payload: type: integer enum: @@ -2533,11 +2577,9 @@ operations: type: object properties: time: - description: TODO - type: string + $ref: "#/components/messages/time" value: - description: TODO - type: string + $ref: "#/components/messages/soc" tags: - $ref: "#/components/tags/vehicles" VehiclePlanSocReceive: @@ -2552,9 +2594,7 @@ operations: $ref: "#/components/parameters/vehicleName" messages: soc: - description: TODO - payload: - type: integer + $ref: "#/components/messages/soc" tags: - $ref: "#/components/tags/vehicles" VehiclePlanTimeReceive: @@ -2571,7 +2611,7 @@ operations: time: description: TODO payload: - type: string + type: integer tags: - $ref: "#/components/tags/vehicles" VehiclePriorityReceive: @@ -2622,9 +2662,7 @@ operations: $ref: "#/components/parameters/vehicleName" messages: soc: - description: TODO - payload: - type: integer + $ref: "#/components/messages/soc" tags: - $ref: "#/components/tags/vehicles" VehicleRepeatingPlanTimeReceive: @@ -2641,9 +2679,12 @@ operations: $ref: "#/components/parameters/vehicleName" messages: time: - description: TODO + description: Time in `HOURS:MINUTES` format payload: type: string + pattern: "[0-1][0-9]:[0-5][0-9]" + format: HH:MM + example: "12:30" tags: - $ref: "#/components/tags/vehicles" VehicleRepeatingPlanTzReceive: @@ -2660,9 +2701,7 @@ operations: $ref: "#/components/parameters/vehicleName" messages: tz: - description: TODO - payload: - type: string + $ref: "#/components/messages/IANATimeZone" tags: - $ref: "#/components/tags/vehicles" VehicleRepeatingPlanWeekdayReceive: @@ -2755,6 +2794,13 @@ operations: - $ref: "#/components/tags/vehicles" components: messages: + IANATimeZone: + description: >- + Timezone in IANA format - [See + Wikipedia](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List) + payload: + type: string + example: Europe/Berlin batteryBoost: description: TODO payload: @@ -2763,14 +2809,6 @@ components: description: TODO payload: type: boolean - bufferSoc: - description: TODO - payload: - type: integer - bufferStartSoc: - description: TODO - payload: - type: integer disableDelay: description: TODO payload: @@ -2824,10 +2862,6 @@ components: description: TODO payload: type: integer - prioritySoc: - description: TODO - payload: - type: integer residualPower: description: TODO payload: @@ -2836,6 +2870,13 @@ components: description: TODO payload: type: number + soc: + description: SOC in % + payload: + type: number + example: 60 + minimum: 0 + maximum: 100 tariff: description: TODO payload: @@ -2849,14 +2890,29 @@ components: type: string price: type: integer - vehicleLimitSoc: - description: TODO + time: + description: Time in RFC3339 format + payload: + type: string + format: date-time + example: "2025-07-19T12:30:00.000Z" + timestamp: + description: Timestamp in seconds payload: type: integer + example: 1742104800 vehicleName: + description: "[See documentation](/en/docs/reference/configuration/vehicles#name)" + payload: + type: string + minLength: 1 + pattern: "[a-zA-Z0-9_.:-]+" + example: vehicle_1 + version: description: TODO payload: type: string + example: 0.200.8 parameters: id: description: The index. Starts with 1. From 8aacab320fd50a31960bd0a3fc99dcaeef47cd41 Mon Sep 17 00:00:00 2001 From: Maschga Date: Mon, 10 Mar 2025 14:11:12 +0100 Subject: [PATCH 35/35] wip --- .../current/integrations/mqtt-api.md | 68 ------------------- .../current/integrations/mqtt-api.mdx | 10 +++ 2 files changed, 10 insertions(+), 68 deletions(-) delete mode 100644 i18n/en/docusaurus-plugin-content-docs/current/integrations/mqtt-api.md create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/integrations/mqtt-api.mdx diff --git a/i18n/en/docusaurus-plugin-content-docs/current/integrations/mqtt-api.md b/i18n/en/docusaurus-plugin-content-docs/current/integrations/mqtt-api.md deleted file mode 100644 index 51c33495b..000000000 --- a/i18n/en/docusaurus-plugin-content-docs/current/integrations/mqtt-api.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -sidebar_position: 2 ---- - -# MQTT API - -The MQTT API has the same structure as the [REST API](./rest-api). -All API IDs (e.g. the loadpoint ID) begin at `1`. - -- `evcc`: root topic -- `evcc/status`: status (`online`/`offline`) -- `evcc/updated`: timestamp of last update - -## Site - -- `evcc/site`: site dynamic state -- `evcc/site/prioritySoc`: battery priority SoC (writable) -- `evcc/site/bufferSoc`: battery buffer SoC (writable) -- `evcc/site/bufferStartSoc`: battery buffer start SoC (writable) -- `evcc/site/residualPower`: grid residual power (writable) -- `evcc/site/smartCostLimit`: smart charging cost limit (previously known as "cheap" tariff) (writable) -- `evcc/site/batteryDischargeControl`: enable/disable battery discharge control (true/false) (writable) - -## Vehicles - -**Note**: for vehicle names see `evcc/vehicles`. - -- `evcc/vehicles`: number of vehicles -- `evcc/vehicles//minSoc`: minimum soc in % (writable) -- `evcc/vehicles//limitSoc`: limit soc in % (writable) -- `evcc/vehicles//planSoc`: plan soc (writable using JSON payload: `{"value": 50, "time": "2023-03-05T07:00:00Z"}`) - -## Loadpoints - -- `evcc/loadpoints`: number of available loadpoints -- `evcc/loadpoints/`: dynamic state -- `evcc/loadpoints//mode`: charge mode (writable) -- `evcc/loadpoints//minSoc`: minimum SoC (writable) -- `evcc/loadpoints//limitSoc`: limit SoC in % (writable) - only applicable for online vehicles -- `evcc/loadpoints//limitEnergy`: limit energy in kWh (writable) - only applicable for offline vehicles -- `evcc/loadpoints//plan/energy`: plan energy (writable using JSON payload: `{"value": 50, "time": "2023-03-05T07:00:00Z"}`) -- `evcc/loadpoints//phases`: enabled phases (writable) -- `evcc/loadpoints//minCurrent`: current minCurrent value (writable) -- `evcc/loadpoints//maxCurrent`: current maxCurrent value (writable) -- `evcc/loadpoints//enableThreshold`: threshold value (writable) -- `evcc/loadpoints//enableDelay`: delay value (s) (writable) -- `evcc/loadpoints//disableThreshold`: threshold value (writable) -- `evcc/loadpoints//disableDelay`: delay value (s) (writable) -- `evcc/loadpoints//batteryboost`: battery boost enabled (writeable: [1/0]) -- `evcc/loadpoints//priority`: priority value (writable) - -:::note -To set any of the writable values, add a `/set` at the end of the topic for which a -change should be made. - -Example: `mosquitto_pub -t "evcc/loadpoints/1/phases/set" -m "3"` to set the number of -phases for the first loadpoint to `3`. -::: - -:::info -\*\* Times are in UTC in the following format: `yyyy-mm-ddThh:mm:ssZ` - -Examples: - -`2023-03-05T07:00:00Z` = 5th of March 2023 at 8:00 CET - -`2023-08-17T19:30:00Z` = 17th of August 2023 at 21:30 CEST -::: diff --git a/i18n/en/docusaurus-plugin-content-docs/current/integrations/mqtt-api.mdx b/i18n/en/docusaurus-plugin-content-docs/current/integrations/mqtt-api.mdx new file mode 100644 index 000000000..3b266872c --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/integrations/mqtt-api.mdx @@ -0,0 +1,10 @@ +--- +sidebar_position: 2 +hide_table_of_contents: true +--- + +import AsyncUiWrapper from "../../src/components/AsyncUiWrapper"; + +# MQTT API + + \ No newline at end of file