diff --git a/docs/package-lock.json b/docs/package-lock.json index 180a8bb6..0f8add88 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -8,22 +8,13 @@ "name": "backrest-docs", "version": "0.1.0", "devDependencies": { - "@nuxt-themes/docus": "latest", - "@nuxt/devtools": "^1.0.8", + "@nuxt-themes/docus": "^1.15.0", + "@nuxt/devtools": "^1.3.1", "@nuxt/eslint-config": "^0.2.0", "@nuxtjs/plausible": "^0.2.4", - "@types/node": "^20.11.24", + "@types/node": "^20.12.12", "eslint": "^8.57.0", - "nuxt": "^3.10.3" - } - }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "nuxt": "^3.11.2" } }, "node_modules/@ampproject/remapping": { @@ -150,9 +141,9 @@ } }, "node_modules/@antfu/utils": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.7.tgz", - "integrity": "sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg==", + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.8.tgz", + "integrity": "sha512-rWQkqXRESdjXtc+7NRfK9lASQjpXJu1ayp7qi1d23zZorY+wBHVLHHoVcMsEnkqEBWTFqbztO7/QdJFzyEcLTg==", "dev": true, "funding": { "url": "https://github.com/sponsors/antfu" @@ -181,21 +172,21 @@ } }, "node_modules/@babel/core": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.4.tgz", - "integrity": "sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz", + "integrity": "sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.4", + "@babel/generator": "^7.24.5", "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.24.4", - "@babel/parser": "^7.24.4", + "@babel/helper-module-transforms": "^7.24.5", + "@babel/helpers": "^7.24.5", + "@babel/parser": "^7.24.5", "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -220,12 +211,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.4.tgz", - "integrity": "sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz", + "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", "dev": true, "dependencies": { - "@babel/types": "^7.24.0", + "@babel/types": "^7.24.5", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" @@ -272,19 +263,19 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.4.tgz", - "integrity": "sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.5.tgz", + "integrity": "sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", - "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.24.5", "@babel/helper-optimise-call-expression": "^7.22.5", "@babel/helper-replace-supers": "^7.24.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-split-export-declaration": "^7.24.5", "semver": "^6.3.1" }, "engines": { @@ -338,12 +329,12 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.5.tgz", + "integrity": "sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA==", "dev": true, "dependencies": { - "@babel/types": "^7.23.0" + "@babel/types": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -362,16 +353,16 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz", + "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-module-imports": "^7.24.3", + "@babel/helper-simple-access": "^7.24.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/helper-validator-identifier": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -393,9 +384,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz", + "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==", "dev": true, "engines": { "node": ">=6.9.0" @@ -419,12 +410,12 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz", + "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -443,12 +434,12 @@ } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", + "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -464,9 +455,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", + "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", "dev": true, "engines": { "node": ">=6.9.0" @@ -482,26 +473,26 @@ } }, "node_modules/@babel/helpers": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.4.tgz", - "integrity": "sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz", + "integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==", "dev": true, "dependencies": { "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0" + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", - "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz", + "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-validator-identifier": "^7.24.5", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" @@ -582,9 +573,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", - "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz", + "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -701,14 +692,14 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.4.tgz", - "integrity": "sha512-79t3CQ8+oBGk/80SQ8MN3Bs3obf83zJ0YZjDmDaEZN8MqhMI760apl5z6a20kFeMXBwJX99VpKT8CKxEBp5H1g==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.5.tgz", + "integrity": "sha512-E0VWu/hk83BIFUWnsKZ4D81KXjN5L3MobvevOHErASk9IPwKHOkTgvqzvNo1yP/ePJWqqK2SpUR5z+KQbl6NVw==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.24.4", - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-create-class-features-plugin": "^7.24.5", + "@babel/helper-plugin-utils": "^7.24.5", "@babel/plugin-syntax-typescript": "^7.24.1" }, "engines": { @@ -739,9 +730,9 @@ } }, "node_modules/@babel/standalone": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.24.4.tgz", - "integrity": "sha512-V4uqWeedadiuiCx5P5OHYJZ1PehdMpcBccNCEptKFGPiZIY3FI5f2ClxUl4r5wZ5U+ohcQ+4KW6jX2K6xXzq4Q==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.24.5.tgz", + "integrity": "sha512-Sl8oN9bGfRlNUA2jzfzoHEZxFBDliBlwi5mPVCAWKSlBNkXXJOHpu7SDOqjF6mRoTa6GNX/1kAWG3Tr+YQ3N7A==", "dev": true, "engines": { "node": ">=6.9.0" @@ -762,19 +753,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", - "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz", + "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.24.1", - "@babel/generator": "^7.24.1", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.24.1", - "@babel/types": "^7.24.0", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/types": "^7.24.5", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -792,13 +783,13 @@ } }, "node_modules/@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", + "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", "to-fast-properties": "^2.0.0" }, "engines": { @@ -806,12 +797,15 @@ } }, "node_modules/@cloudflare/kv-asset-handler": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.3.1.tgz", - "integrity": "sha512-lKN2XCfKCmpKb86a1tl4GIwsJYDy9TGuwjhDELLmpKygQhw8X2xR4dusgpC5Tg7q1pB96Eb0rBo81kxSILQMwA==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.3.2.tgz", + "integrity": "sha512-EeEjMobfuJrwoctj7FA1y1KEbM0+Q1xSjobIEyie9k4haVEBB7vkDvsasw1pM3rO39mL2akxIAzLMUAtrMHZhA==", "dev": true, "dependencies": { "mime": "^3.0.0" + }, + "engines": { + "node": ">=16.13" } }, "node_modules/@cloudflare/kv-asset-handler/node_modules/mime": { @@ -827,9 +821,9 @@ } }, "node_modules/@csstools/cascade-layer-name-parser": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-1.0.9.tgz", - "integrity": "sha512-RRqNjxTZDUhx7pxYOBG/AkCVmPS3zYzfE47GEhIGkFuWFTQGJBgWOUUkKNo5MfxIfjDz5/1L3F3rF1oIsYaIpw==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-1.0.11.tgz", + "integrity": "sha512-yhsonEAhaWRQvHFYhSzOUobH2Ev++fMci+ppFRagw0qVSPlcPV4FnNmlwpM/b2BM10ZeMRkVV4So6YRswD0O0w==", "dev": true, "funding": [ { @@ -845,14 +839,14 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.6.1", - "@csstools/css-tokenizer": "^2.2.4" + "@csstools/css-parser-algorithms": "^2.6.3", + "@csstools/css-tokenizer": "^2.3.1" } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.6.1.tgz", - "integrity": "sha512-ubEkAaTfVZa+WwGhs5jbo5Xfqpeaybr/RvWzvFxRs4jfq16wH8l8Ty/QEEpINxll4xhuGfdMbipRyz5QZh9+FA==", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.6.3.tgz", + "integrity": "sha512-xI/tL2zxzEbESvnSxwFgwvy5HS00oCXxL4MLs6HUiDcYfwowsoQaABKxUElp1ARITrINzBnsECOc1q0eg2GOrA==", "dev": true, "funding": [ { @@ -868,13 +862,13 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-tokenizer": "^2.2.4" + "@csstools/css-tokenizer": "^2.3.1" } }, "node_modules/@csstools/css-tokenizer": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.4.tgz", - "integrity": "sha512-PuWRAewQLbDhGeTvFuq2oClaSCKPIBmHyIobCV39JHRYN0byDcUWJl5baPeNUcqrjtdMNqFooE0FGl31I3JOqw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.3.1.tgz", + "integrity": "sha512-iMNHTyxLbBlWIfGtabT157LH9DUx9X8+Y3oymFEuMj8HNc+rpE3dPFGFgHjpKfjeFDjLjYIAIhXPGvS2lKxL9g==", "dev": true, "funding": [ { @@ -1346,13 +1340,13 @@ } }, "node_modules/@floating-ui/core": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz", - "integrity": "sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.2.tgz", + "integrity": "sha512-+2XpQV9LLZeanU4ZevzRnGFg2neDeKHgFLjP6YLW+tly0IvrhqT4u8enLGjLH3qeh85g19xY5rsAusfwTdn5lg==", "dev": true, "peer": true, "dependencies": { - "@floating-ui/utils": "^0.2.1" + "@floating-ui/utils": "^0.2.0" } }, "node_modules/@floating-ui/dom": { @@ -1366,9 +1360,9 @@ } }, "node_modules/@floating-ui/utils": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz", - "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.2.tgz", + "integrity": "sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==", "dev": true, "peer": true }, @@ -1450,9 +1444,9 @@ } }, "node_modules/@iconify/vue": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@iconify/vue/-/vue-4.1.1.tgz", - "integrity": "sha512-RL85Bm/DAe8y6rT6pux7D2FJSiUEM/TPfyK7GrbAOfTSwrhvwJW+S5yijdGcmtXouA8MtuH9C7l4hiSE4mLMjg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@iconify/vue/-/vue-4.1.2.tgz", + "integrity": "sha512-CQnYqLiQD5LOAaXhBrmj1mdL2/NCJvwcC4jtW2Z8ukhThiFkLDkutarTOV2trfc9EXqUqRs0KqXOL9pZ/IyysA==", "dev": true, "dependencies": { "@iconify/types": "^2.0.0" @@ -1669,12 +1663,12 @@ } }, "node_modules/@netlify/functions": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@netlify/functions/-/functions-2.6.0.tgz", - "integrity": "sha512-vU20tij0fb4nRGACqb+5SQvKd50JYyTyEhQetCMHdakcJFzjLDivvRR16u1G2Oy4A7xNAtGJF1uz8reeOtTVcQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@netlify/functions/-/functions-2.7.0.tgz", + "integrity": "sha512-4pXC/fuj3eGQ86wbgPiM4zY8+AsNrdz6vcv6FEdUJnZW+LqF8IWjQcY3S0d1hLeLKODYOqq4CkrzGyCpce63Nw==", "dev": true, "dependencies": { - "@netlify/serverless-functions-api": "1.14.0" + "@netlify/serverless-functions-api": "1.18.1" }, "engines": { "node": ">=14.0.0" @@ -1690,16 +1684,21 @@ } }, "node_modules/@netlify/serverless-functions-api": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/@netlify/serverless-functions-api/-/serverless-functions-api-1.14.0.tgz", - "integrity": "sha512-HUNETLNvNiC2J+SB/YuRwJA9+agPrc0azSoWVk8H85GC+YE114hcS5JW+dstpKwVerp2xILE3vNWN7IMXP5Q5Q==", + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/@netlify/serverless-functions-api/-/serverless-functions-api-1.18.1.tgz", + "integrity": "sha512-DrSvivchuwsuQW03zbVPT3nxCQa5tn7m4aoPOsQKibuJXIuSbfxzCBxPLz0+LchU5ds7YyOaCc9872Y32ngYzg==", "dev": true, "dependencies": { "@netlify/node-cookies": "^0.1.0", + "@opentelemetry/core": "^1.23.0", + "@opentelemetry/otlp-transformer": "^0.50.0", + "@opentelemetry/resources": "^1.23.0", + "@opentelemetry/sdk-trace-base": "^1.23.0", + "@opentelemetry/semantic-conventions": "^1.23.0", "urlpattern-polyfill": "8.0.2" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": ">=18.0.0" } }, "node_modules/@nodelib/fs.scandir": { @@ -1779,18 +1778,18 @@ } }, "node_modules/@npmcli/agent/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", "dev": true, "engines": { "node": "14 || >=16.14" } }, "node_modules/@npmcli/fs": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", - "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", + "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", "dev": true, "dependencies": { "semver": "^7.3.5" @@ -1800,9 +1799,9 @@ } }, "node_modules/@npmcli/git": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.6.tgz", - "integrity": "sha512-4x/182sKXmQkf0EtXxT26GEsaOATpD7WVtza5hrYivWZeo6QefC6xq9KAXrnjtFKBZ4rZwR7aX/zClYYXgtwLw==", + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.7.tgz", + "integrity": "sha512-WaOVvto604d5IpdCRV2KjQu8PzkfE96d50CQGKgywXh2GxXmDeUO5EWcBC4V57uFyrNqx83+MewuJh3WTR3xPA==", "dev": true, "dependencies": { "@npmcli/promise-spawn": "^7.0.0", @@ -1828,9 +1827,9 @@ } }, "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", "dev": true, "engines": { "node": "14 || >=16.14" @@ -1852,16 +1851,16 @@ } }, "node_modules/@npmcli/installed-package-contents": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz", - "integrity": "sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz", + "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==", "dev": true, "dependencies": { "npm-bundled": "^3.0.0", "npm-normalize-package-bin": "^3.0.0" }, "bin": { - "installed-package-contents": "lib/index.js" + "installed-package-contents": "bin/index.js" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -1877,9 +1876,9 @@ } }, "node_modules/@npmcli/package-json": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.0.3.tgz", - "integrity": "sha512-cgsjCvld2wMqkUqvY+SZI+1ZJ7umGBYc9IAKfqJRKJCcs7hCQYxScUgdsyrRINk3VmdCYf9TXiLBHQ6ECTxhtg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.1.0.tgz", + "integrity": "sha512-1aL4TuVrLS9sf8quCLerU3H9J4vtCtgu8VauYozrmEyU57i/EdKleCnsQ7vpnABIH6c9mnTxcH5sFkO3BlV8wQ==", "dev": true, "dependencies": { "@npmcli/git": "^5.0.0", @@ -1895,31 +1894,31 @@ } }, "node_modules/@npmcli/package-json/node_modules/glob": { - "version": "10.3.12", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", - "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "version": "10.3.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", + "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.3.6", "minimatch": "^9.0.1", "minipass": "^7.0.4", - "path-scurry": "^1.10.2" + "path-scurry": "^1.11.0" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@npmcli/promise-spawn": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.1.tgz", - "integrity": "sha512-P4KkF9jX3y+7yFUxgcUdDtLy+t4OlDGuEBLNs57AZsfSfg+uV6MLndqGpnl4831ggaEdXwR50XFoZP4VFtHolg==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz", + "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==", "dev": true, "dependencies": { "which": "^4.0.0" @@ -1953,24 +1952,25 @@ } }, "node_modules/@npmcli/redact": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-1.1.0.tgz", - "integrity": "sha512-PfnWuOkQgu7gCbnSsAisaX7hKOdZ4wSAhAzH3/ph5dSGau52kCRrMMGbiSQLwyTZpgldkZ49b0brkOr1AzGBHQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-2.0.0.tgz", + "integrity": "sha512-SEjCPAVHWYUIQR+Yn03kJmrJjZDtJLYpj300m3HV9OTRZNpC5YpbMsM3eTkECyT4aWj8lDr9WeY6TWefpubtYQ==", "dev": true, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@npmcli/run-script": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-7.0.4.tgz", - "integrity": "sha512-9ApYM/3+rBt9V80aYg6tZfzj3UWdiYyCt7gJUD1VJKvWF5nwKDSICXbYIQbspFTq6TOpbsEtIC0LArB8d9PFmg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-8.1.0.tgz", + "integrity": "sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==", "dev": true, "dependencies": { "@npmcli/node-gyp": "^3.0.0", "@npmcli/package-json": "^5.0.0", "@npmcli/promise-spawn": "^7.0.0", "node-gyp": "^10.0.0", + "proc-log": "^4.0.0", "which": "^4.0.0" }, "engines": { @@ -2150,21 +2150,21 @@ "dev": true }, "node_modules/@nuxt/devtools": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@nuxt/devtools/-/devtools-1.1.5.tgz", - "integrity": "sha512-aDEqz4L1GDj4DDnX7PL9ety3Wx0kLyKTb2JOSoJR8uX09fC3gonCvj/gYHLSSIKqhPasUjoOO5RPCtT+r9dtsA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@nuxt/devtools/-/devtools-1.3.1.tgz", + "integrity": "sha512-SuiuqtlN6OMPn7hYqbydcJmRF/L86yxi8ApcjNVnMURYBPaAAN9egkEFpQ6AjzjX+UnaG1hU8FE0w6pWKSRp3A==", "dev": true, "dependencies": { - "@antfu/utils": "^0.7.7", - "@nuxt/devtools-kit": "1.1.5", - "@nuxt/devtools-wizard": "1.1.5", - "@nuxt/kit": "^3.11.1", - "@vue/devtools-applet": "^7.0.25", - "@vue/devtools-core": "^7.0.25", - "@vue/devtools-kit": "^7.0.25", + "@antfu/utils": "^0.7.8", + "@nuxt/devtools-kit": "1.3.1", + "@nuxt/devtools-wizard": "1.3.1", + "@nuxt/kit": "^3.11.2", + "@vue/devtools-applet": "^7.1.3", + "@vue/devtools-core": "^7.1.3", + "@vue/devtools-kit": "^7.1.3", "birpc": "^0.2.17", "consola": "^3.2.3", - "cronstrue": "^2.48.0", + "cronstrue": "^2.50.0", "destr": "^2.0.3", "error-stack-parser-es": "^0.1.1", "execa": "^7.2.0", @@ -2176,23 +2176,23 @@ "is-installed-globally": "^1.0.0", "launch-editor": "^2.6.1", "local-pkg": "^0.5.0", - "magicast": "^0.3.3", + "magicast": "^0.3.4", "nypm": "^0.3.8", "ohash": "^1.1.3", - "pacote": "^17.0.6", + "pacote": "^18.0.6", "pathe": "^1.1.2", "perfect-debounce": "^1.0.0", - "pkg-types": "^1.0.3", - "rc9": "^2.1.1", + "pkg-types": "^1.1.1", + "rc9": "^2.1.2", "scule": "^1.3.0", - "semver": "^7.6.0", - "simple-git": "^3.23.0", + "semver": "^7.6.2", + "simple-git": "^3.24.0", "sirv": "^2.0.4", "unimport": "^3.7.1", - "vite-plugin-inspect": "^0.8.3", - "vite-plugin-vue-inspector": "^4.0.2", + "vite-plugin-inspect": "^0.8.4", + "vite-plugin-vue-inspector": "^5.1.0", "which": "^3.0.1", - "ws": "^8.16.0" + "ws": "^8.17.0" }, "bin": { "devtools": "cli.mjs" @@ -2203,13 +2203,13 @@ } }, "node_modules/@nuxt/devtools-kit": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@nuxt/devtools-kit/-/devtools-kit-1.1.5.tgz", - "integrity": "sha512-Nb/NKFCRtxyqcPD6snB52rXtbRQMjGtn3ncpa8cLWsnoqnkd9emQ4uwV8IwCNxTnqUBtbGU79/TlJ79SKH9TAw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@nuxt/devtools-kit/-/devtools-kit-1.3.1.tgz", + "integrity": "sha512-YckEiiTef3dMckwLLUb+feKV0O8pS9s8ujw/FQ600oQbOCbq6hpWY5HQYxVYc3E41wu87lFiIZ1rnHjO3nM9sw==", "dev": true, "dependencies": { - "@nuxt/kit": "^3.11.1", - "@nuxt/schema": "^3.11.1", + "@nuxt/kit": "^3.11.2", + "@nuxt/schema": "^3.11.2", "execa": "^7.2.0" }, "peerDependencies": { @@ -2218,21 +2218,21 @@ } }, "node_modules/@nuxt/devtools-wizard": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@nuxt/devtools-wizard/-/devtools-wizard-1.1.5.tgz", - "integrity": "sha512-bWLgLvYFbYCQYlLPttZaUo58cS1VJo1uEFguHaCwZ7Fzkm4Iv+lFTv5BzD+gOHwohaXLr3YecgZOO4YNJTgXyA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@nuxt/devtools-wizard/-/devtools-wizard-1.3.1.tgz", + "integrity": "sha512-t6qTp573s1NWoS1nqOqKRld6wFWDiMzoFojBG8GeqTwPi2NYbjyPbQobmvMGiihkWPudMpChhAhYwTTyCPFE7Q==", "dev": true, "dependencies": { "consola": "^3.2.3", "diff": "^5.2.0", "execa": "^7.2.0", "global-directory": "^4.0.1", - "magicast": "^0.3.3", + "magicast": "^0.3.4", "pathe": "^1.1.2", - "pkg-types": "^1.0.3", + "pkg-types": "^1.1.1", "prompts": "^2.4.2", - "rc9": "^2.1.1", - "semver": "^7.6.0" + "rc9": "^2.1.2", + "semver": "^7.6.2" }, "bin": { "devtools-wizard": "cli.mjs" @@ -2427,31 +2427,31 @@ } }, "node_modules/@nuxthq/studio": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/@nuxthq/studio/-/studio-1.0.13.tgz", - "integrity": "sha512-C4j+K53om5Kj5xLrehWEbnDJlid5tDsHP7QdOIsK550dHOxPmvaXMH4YxsSNU8cDppMheMbN59zdYhQaQfko6g==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@nuxthq/studio/-/studio-1.1.0.tgz", + "integrity": "sha512-3Q2GW3jwAfRhwfhNAn8GMqDhaVkXsP/wOC4g6yqb6WD+RKvas9vMrr5TPhbzB3lclMb+mcNo68LU6hjyTfP3Ww==", "dev": true, "dependencies": { - "@nuxt/kit": "^3.10.3", + "@nuxt/kit": "^3.11.2", "defu": "^6.1.4", "git-url-parse": "^14.0.0", - "nuxt-component-meta": "^0.6.3", + "nuxt-component-meta": "^0.6.4", "parse-git-config": "^3.0.0", - "pkg-types": "^1.0.3", - "socket.io-client": "^4.7.4", - "ufo": "^1.4.0", + "pkg-types": "^1.1.1", + "socket.io-client": "^4.7.5", + "ufo": "^1.5.3", "untyped": "^1.4.2" } }, "node_modules/@nuxtjs/color-mode": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@nuxtjs/color-mode/-/color-mode-3.4.0.tgz", - "integrity": "sha512-rS51nG3zW8ksOwNubIP3BPQ+vBL0r2M6td1kkB/VaR1e1uVtNfWlBPfZjb604bgNCE2AeRNqaI0CrxkfnQ6h6Q==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@nuxtjs/color-mode/-/color-mode-3.4.1.tgz", + "integrity": "sha512-vZgJqDstxInGw3RGSWbLoCLXtU1mvh1LLeuEA/X3a++DYA4ifwSbNoiSiOyb9qZHFEwz1Xr99H71sXV4IhOaEg==", "dev": true, "dependencies": { "@nuxt/kit": "^3.11.2", "pathe": "^1.1.2", - "pkg-types": "^1.0.3", + "pkg-types": "^1.1.0", "semver": "^7.6.0" } }, @@ -2510,6 +2510,275 @@ "plausible-tracker": "^0.3.8" } }, + "node_modules/@opentelemetry/api": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.8.0.tgz", + "integrity": "sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@opentelemetry/api-logs": { + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.50.0.tgz", + "integrity": "sha512-JdZuKrhOYggqOpUljAq4WWNi5nB10PmgoF0y2CvedLGXd0kSawb/UBnWT8gg1ND3bHCNHStAIVT0ELlxJJRqrA==", + "dev": true, + "dependencies": { + "@opentelemetry/api": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/core": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.24.1.tgz", + "integrity": "sha512-wMSGfsdmibI88K9wB498zXY04yThPexo8jvwNNlm542HZB7XrrMRBbAyKJqG8qDRJwIBdBrPMi4V9ZPW/sqrcg==", + "dev": true, + "dependencies": { + "@opentelemetry/semantic-conventions": "1.24.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.9.0" + } + }, + "node_modules/@opentelemetry/otlp-transformer": { + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.50.0.tgz", + "integrity": "sha512-s0sl1Yfqd5q1Kjrf6DqXPWzErL+XHhrXOfejh4Vc/SMTNqC902xDsC8JQxbjuramWt/+hibfguIvi7Ns8VLolA==", + "dev": true, + "dependencies": { + "@opentelemetry/api-logs": "0.50.0", + "@opentelemetry/core": "1.23.0", + "@opentelemetry/resources": "1.23.0", + "@opentelemetry/sdk-logs": "0.50.0", + "@opentelemetry/sdk-metrics": "1.23.0", + "@opentelemetry/sdk-trace-base": "1.23.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.9.0" + } + }, + "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/core": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.23.0.tgz", + "integrity": "sha512-hdQ/a9TMzMQF/BO8Cz1juA43/L5YGtCSiKoOHmrTEf7VMDAZgy8ucpWx3eQTnQ3gBloRcWtzvcrMZABC3PTSKQ==", + "dev": true, + "dependencies": { + "@opentelemetry/semantic-conventions": "1.23.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.9.0" + } + }, + "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/resources": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.23.0.tgz", + "integrity": "sha512-iPRLfVfcEQynYGo7e4Di+ti+YQTAY0h5mQEUJcHlU9JOqpb4x965O6PZ+wMcwYVY63G96KtdS86YCM1BF1vQZg==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "1.23.0", + "@opentelemetry/semantic-conventions": "1.23.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.9.0" + } + }, + "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/sdk-trace-base": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.23.0.tgz", + "integrity": "sha512-PzBmZM8hBomUqvCddF/5Olyyviayka44O5nDWq673np3ctnvwMOvNrsUORZjKja1zJbwEuD9niAGbnVrz3jwRQ==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "1.23.0", + "@opentelemetry/resources": "1.23.0", + "@opentelemetry/semantic-conventions": "1.23.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.9.0" + } + }, + "node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.23.0.tgz", + "integrity": "sha512-MiqFvfOzfR31t8cc74CTP1OZfz7MbqpAnLCra8NqQoaHJX6ncIRTdYOQYBDQ2uFISDq0WY8Y9dDTWvsgzzBYRg==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/resources": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.24.1.tgz", + "integrity": "sha512-cyv0MwAaPF7O86x5hk3NNgenMObeejZFLJJDVuSeSMIsknlsj3oOZzRv3qSzlwYomXsICfBeFFlxwHQte5mGXQ==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "1.24.1", + "@opentelemetry/semantic-conventions": "1.24.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.9.0" + } + }, + "node_modules/@opentelemetry/sdk-logs": { + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.50.0.tgz", + "integrity": "sha512-PeUEupBB29p9nlPNqXoa1PUWNLsZnxG0DCDj3sHqzae+8y76B/A5hvZjg03ulWdnvBLYpnJslqzylG9E0IL87g==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "1.23.0", + "@opentelemetry/resources": "1.23.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.4.0 <1.9.0", + "@opentelemetry/api-logs": ">=0.39.1" + } + }, + "node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/core": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.23.0.tgz", + "integrity": "sha512-hdQ/a9TMzMQF/BO8Cz1juA43/L5YGtCSiKoOHmrTEf7VMDAZgy8ucpWx3eQTnQ3gBloRcWtzvcrMZABC3PTSKQ==", + "dev": true, + "dependencies": { + "@opentelemetry/semantic-conventions": "1.23.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.9.0" + } + }, + "node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/resources": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.23.0.tgz", + "integrity": "sha512-iPRLfVfcEQynYGo7e4Di+ti+YQTAY0h5mQEUJcHlU9JOqpb4x965O6PZ+wMcwYVY63G96KtdS86YCM1BF1vQZg==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "1.23.0", + "@opentelemetry/semantic-conventions": "1.23.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.9.0" + } + }, + "node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.23.0.tgz", + "integrity": "sha512-MiqFvfOzfR31t8cc74CTP1OZfz7MbqpAnLCra8NqQoaHJX6ncIRTdYOQYBDQ2uFISDq0WY8Y9dDTWvsgzzBYRg==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/sdk-metrics": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.23.0.tgz", + "integrity": "sha512-4OkvW6+wST4h6LFG23rXSTf6nmTf201h9dzq7bE0z5R9ESEVLERZz6WXwE7PSgg1gdjlaznm1jLJf8GttypFDg==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "1.23.0", + "@opentelemetry/resources": "1.23.0", + "lodash.merge": "^4.6.2" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.9.0" + } + }, + "node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/core": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.23.0.tgz", + "integrity": "sha512-hdQ/a9TMzMQF/BO8Cz1juA43/L5YGtCSiKoOHmrTEf7VMDAZgy8ucpWx3eQTnQ3gBloRcWtzvcrMZABC3PTSKQ==", + "dev": true, + "dependencies": { + "@opentelemetry/semantic-conventions": "1.23.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.9.0" + } + }, + "node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/resources": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.23.0.tgz", + "integrity": "sha512-iPRLfVfcEQynYGo7e4Di+ti+YQTAY0h5mQEUJcHlU9JOqpb4x965O6PZ+wMcwYVY63G96KtdS86YCM1BF1vQZg==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "1.23.0", + "@opentelemetry/semantic-conventions": "1.23.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.9.0" + } + }, + "node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.23.0.tgz", + "integrity": "sha512-MiqFvfOzfR31t8cc74CTP1OZfz7MbqpAnLCra8NqQoaHJX6ncIRTdYOQYBDQ2uFISDq0WY8Y9dDTWvsgzzBYRg==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@opentelemetry/sdk-trace-base": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.24.1.tgz", + "integrity": "sha512-zz+N423IcySgjihl2NfjBf0qw1RWe11XIAWVrTNOSSI6dtSPJiVom2zipFB2AEEtJWpv0Iz6DY6+TjnyTV5pWg==", + "dev": true, + "dependencies": { + "@opentelemetry/core": "1.24.1", + "@opentelemetry/resources": "1.24.1", + "@opentelemetry/semantic-conventions": "1.24.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.9.0" + } + }, + "node_modules/@opentelemetry/semantic-conventions": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.24.1.tgz", + "integrity": "sha512-VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw==", + "dev": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@parcel/watcher": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.1.tgz", @@ -3016,9 +3285,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.3.tgz", - "integrity": "sha512-X9alQ3XM6I9IlSlmC8ddAvMSyG1WuHk5oUnXGw+yUBs3BFoTizmG1La/Gr8fVJvDWAq+zlYTZ9DBgrlKRVY06g==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.17.2.tgz", + "integrity": "sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==", "cpu": [ "arm" ], @@ -3029,9 +3298,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.14.3.tgz", - "integrity": "sha512-eQK5JIi+POhFpzk+LnjKIy4Ks+pwJ+NXmPxOCSvOKSNRPONzKuUvWE+P9JxGZVxrtzm6BAYMaL50FFuPe0oWMQ==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.17.2.tgz", + "integrity": "sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==", "cpu": [ "arm64" ], @@ -3042,9 +3311,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.14.3.tgz", - "integrity": "sha512-Od4vE6f6CTT53yM1jgcLqNfItTsLt5zE46fdPaEmeFHvPs5SjZYlLpHrSiHEKR1+HdRfxuzXHjDOIxQyC3ptBA==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.17.2.tgz", + "integrity": "sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==", "cpu": [ "arm64" ], @@ -3055,9 +3324,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.14.3.tgz", - "integrity": "sha512-0IMAO21axJeNIrvS9lSe/PGthc8ZUS+zC53O0VhF5gMxfmcKAP4ESkKOCwEi6u2asUrt4mQv2rjY8QseIEb1aw==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.17.2.tgz", + "integrity": "sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==", "cpu": [ "x64" ], @@ -3068,9 +3337,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.14.3.tgz", - "integrity": "sha512-ge2DC7tHRHa3caVEoSbPRJpq7azhG+xYsd6u2MEnJ6XzPSzQsTKyXvh6iWjXRf7Rt9ykIUWHtl0Uz3T6yXPpKw==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.17.2.tgz", + "integrity": "sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==", "cpu": [ "arm" ], @@ -3081,9 +3350,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.14.3.tgz", - "integrity": "sha512-ljcuiDI4V3ySuc7eSk4lQ9wU8J8r8KrOUvB2U+TtK0TiW6OFDmJ+DdIjjwZHIw9CNxzbmXY39wwpzYuFDwNXuw==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.17.2.tgz", + "integrity": "sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==", "cpu": [ "arm" ], @@ -3094,9 +3363,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.14.3.tgz", - "integrity": "sha512-Eci2us9VTHm1eSyn5/eEpaC7eP/mp5n46gTRB3Aar3BgSvDQGJZuicyq6TsH4HngNBgVqC5sDYxOzTExSU+NjA==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.17.2.tgz", + "integrity": "sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==", "cpu": [ "arm64" ], @@ -3107,9 +3376,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.14.3.tgz", - "integrity": "sha512-UrBoMLCq4E92/LCqlh+blpqMz5h1tJttPIniwUgOFJyjWI1qrtrDhhpHPuFxULlUmjFHfloWdixtDhSxJt5iKw==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.17.2.tgz", + "integrity": "sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==", "cpu": [ "arm64" ], @@ -3120,9 +3389,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.14.3.tgz", - "integrity": "sha512-5aRjvsS8q1nWN8AoRfrq5+9IflC3P1leMoy4r2WjXyFqf3qcqsxRCfxtZIV58tCxd+Yv7WELPcO9mY9aeQyAmw==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.17.2.tgz", + "integrity": "sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==", "cpu": [ "ppc64" ], @@ -3133,9 +3402,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.14.3.tgz", - "integrity": "sha512-sk/Qh1j2/RJSX7FhEpJn8n0ndxy/uf0kI/9Zc4b1ELhqULVdTfN6HL31CDaTChiBAOgLcsJ1sgVZjWv8XNEsAQ==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.17.2.tgz", + "integrity": "sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==", "cpu": [ "riscv64" ], @@ -3146,9 +3415,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.14.3.tgz", - "integrity": "sha512-jOO/PEaDitOmY9TgkxF/TQIjXySQe5KVYB57H/8LRP/ux0ZoO8cSHCX17asMSv3ruwslXW/TLBcxyaUzGRHcqg==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.17.2.tgz", + "integrity": "sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==", "cpu": [ "s390x" ], @@ -3159,9 +3428,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.14.3.tgz", - "integrity": "sha512-8ybV4Xjy59xLMyWo3GCfEGqtKV5M5gCSrZlxkPGvEPCGDLNla7v48S662HSGwRd6/2cSneMQWiv+QzcttLrrOA==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.17.2.tgz", + "integrity": "sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==", "cpu": [ "x64" ], @@ -3172,9 +3441,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.14.3.tgz", - "integrity": "sha512-s+xf1I46trOY10OqAtZ5Rm6lzHre/UiLA1J2uOhCFXWkbZrJRkYBPO6FhvGfHmdtQ3Bx793MNa7LvoWFAm93bg==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.17.2.tgz", + "integrity": "sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==", "cpu": [ "x64" ], @@ -3185,9 +3454,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.14.3.tgz", - "integrity": "sha512-+4h2WrGOYsOumDQ5S2sYNyhVfrue+9tc9XcLWLh+Kw3UOxAvrfOrSMFon60KspcDdytkNDh7K2Vs6eMaYImAZg==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.17.2.tgz", + "integrity": "sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==", "cpu": [ "arm64" ], @@ -3198,9 +3467,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.14.3.tgz", - "integrity": "sha512-T1l7y/bCeL/kUwh9OD4PQT4aM7Bq43vX05htPJJ46RTI4r5KNt6qJRzAfNfM+OYMNEVBWQzR2Gyk+FXLZfogGw==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.17.2.tgz", + "integrity": "sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==", "cpu": [ "ia32" ], @@ -3211,9 +3480,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.14.3.tgz", - "integrity": "sha512-/BypzV0H1y1HzgYpxqRaXGBRqfodgoBBCcsrujT6QRcakDQdfU+Lq9PENPh5jB4I44YWq+0C2eHsHya+nZY1sA==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.17.2.tgz", + "integrity": "sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==", "cpu": [ "x64" ], @@ -3224,33 +3493,33 @@ ] }, "node_modules/@rushstack/eslint-patch": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.2.tgz", - "integrity": "sha512-hw437iINopmQuxWPSUEvqE56NCPsiU8N4AYtfHmJFckclktzK9YQJieD3XkDCDH4OjL+C7zgPUh73R/nrcHrqw==", + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.3.tgz", + "integrity": "sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg==", "dev": true }, "node_modules/@shikijs/core": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.3.0.tgz", - "integrity": "sha512-7fedsBfuILDTBmrYZNFI8B6ATTxhQAasUHllHmjvSZPnoq4bULWoTpHwmuQvZ8Aq03/tAa2IGo6RXqWtHdWaCA==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.5.2.tgz", + "integrity": "sha512-wSAOgaz48GmhILFElMCeQypSZmj6Ru6DttOOtl3KNkdJ17ApQuGNCfzpk4cClasVrnIu45++2DBwG4LNMQAfaA==", "dev": true }, "node_modules/@shikijs/transformers": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-1.3.0.tgz", - "integrity": "sha512-3mlpg2I9CjhjE96dEWQOGeCWoPcyTov3s4aAsHmgvnTHa8MBknEnCQy8/xivJPSpD+olqOqIEoHnLfbNJK29AA==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-1.5.2.tgz", + "integrity": "sha512-/Sh64rKOFGMQLCvtHeL1Y7EExdq8LLxcdVkvoGx2aMHsYMOn8DckYl2gYKMHRBu/YUt1C38/Amd1Jdh48tWHgw==", "dev": true, "dependencies": { - "shiki": "1.3.0" + "shiki": "1.5.2" } }, "node_modules/@sigstore/bundle": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.1.tgz", - "integrity": "sha512-eqV17lO3EIFqCWK3969Rz+J8MYrRZKw9IBHpSo6DEcEX2c+uzDFOgHE9f2MnyDpfs48LFO4hXmk9KhQ74JzU1g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.2.tgz", + "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==", "dev": true, "dependencies": { - "@sigstore/protobuf-specs": "^0.3.1" + "@sigstore/protobuf-specs": "^0.3.2" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -3266,51 +3535,53 @@ } }, "node_modules/@sigstore/protobuf-specs": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.1.tgz", - "integrity": "sha512-aIL8Z9NsMr3C64jyQzE0XlkEyBLpgEJJFDHLVVStkFV5Q3Il/r/YtY6NJWKQ4cy4AE7spP1IX5Jq7VCAxHHMfQ==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz", + "integrity": "sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==", "dev": true, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@sigstore/sign": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.0.tgz", - "integrity": "sha512-tsAyV6FC3R3pHmKS880IXcDJuiFJiKITO1jxR1qbplcsBkZLBmjrEw5GbC7ikD6f5RU1hr7WnmxB/2kKc1qUWQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.2.tgz", + "integrity": "sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==", "dev": true, "dependencies": { - "@sigstore/bundle": "^2.3.0", + "@sigstore/bundle": "^2.3.2", "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.1", - "make-fetch-happen": "^13.0.0" + "@sigstore/protobuf-specs": "^0.3.2", + "make-fetch-happen": "^13.0.1", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@sigstore/tuf": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.2.tgz", - "integrity": "sha512-mwbY1VrEGU4CO55t+Kl6I7WZzIl+ysSzEYdA1Nv/FTrl2bkeaPXo5PnWZAVfcY2zSdhOpsUTJW67/M2zHXGn5w==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.4.tgz", + "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==", "dev": true, "dependencies": { - "@sigstore/protobuf-specs": "^0.3.0", - "tuf-js": "^2.2.0" + "@sigstore/protobuf-specs": "^0.3.2", + "tuf-js": "^2.2.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@sigstore/verify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.0.tgz", - "integrity": "sha512-hQF60nc9yab+Csi4AyoAmilGNfpXT+EXdBgFkP9OgPwIBPwyqVf7JAWPtmqrrrneTmAT6ojv7OlH1f6Ix5BG4Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.1.tgz", + "integrity": "sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==", "dev": true, "dependencies": { - "@sigstore/bundle": "^2.3.1", + "@sigstore/bundle": "^2.3.2", "@sigstore/core": "^1.1.0", - "@sigstore/protobuf-specs": "^0.3.1" + "@sigstore/protobuf-specs": "^0.3.2" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -3341,9 +3612,9 @@ } }, "node_modules/@socket.io/component-emitter": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.1.tgz", - "integrity": "sha512-dzJtaDAAoXx4GCOJpbB2eG/Qj8VDpdwkLsWGzGm+0L7E8/434RyMbAHmk9ubXWVAb9nXmc44jUf8GKqVDiKezg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", "dev": true }, "node_modules/@trysound/sax": { @@ -3365,28 +3636,43 @@ } }, "node_modules/@tufjs/models": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.0.tgz", - "integrity": "sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.1.tgz", + "integrity": "sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==", "dev": true, "dependencies": { "@tufjs/canonical-json": "2.0.0", - "minimatch": "^9.0.3" + "minimatch": "^9.0.4" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@types/debug": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "node_modules/@tufjs/models/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dev": true, "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/estree": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "dev": true, + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", @@ -3417,9 +3703,9 @@ "dev": true }, "node_modules/@types/mdast": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz", - "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", "dev": true, "dependencies": { "@types/unist": "*" @@ -3432,9 +3718,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.12.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", - "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", + "version": "20.12.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -3690,22 +3976,22 @@ "dev": true }, "node_modules/@unhead/dom": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/@unhead/dom/-/dom-1.9.5.tgz", - "integrity": "sha512-t+JvAFX+Qkx+IEZFBQV5rZoj/6SKHd3tqXqxpsER588DWxU0J6dzvAVJrof/vRTMjJ1lM6B8SxKhZppSZ7H2iQ==", + "version": "1.9.10", + "resolved": "https://registry.npmjs.org/@unhead/dom/-/dom-1.9.10.tgz", + "integrity": "sha512-F4sBrmd8kG8MEqcVTGL0Y6tXbJMdWK724pznUzefpZTs1GaVypFikLluaLt4EnICcVhOBSe4TkGrc8N21IJJzQ==", "dev": true, "dependencies": { - "@unhead/schema": "1.9.5", - "@unhead/shared": "1.9.5" + "@unhead/schema": "1.9.10", + "@unhead/shared": "1.9.10" }, "funding": { "url": "https://github.com/sponsors/harlan-zw" } }, "node_modules/@unhead/schema": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/@unhead/schema/-/schema-1.9.5.tgz", - "integrity": "sha512-n0upGPplBn5Y/4PIqKp7/tzOhz7USos5lFjf8UKvMNoOIitEa+avP2u7gRQ9yOhHmOAH9AXDeX7mhSvhO+Tqxw==", + "version": "1.9.10", + "resolved": "https://registry.npmjs.org/@unhead/schema/-/schema-1.9.10.tgz", + "integrity": "sha512-3ROh0doKfA7cIcU0zmjYVvNOiJuxSOcjInL+7iOFIxQovEWr1PcDnrnbEWGJsXrLA8eqjrjmhuDqAr3JbMGsLg==", "dev": true, "dependencies": { "hookable": "^5.5.3", @@ -3716,40 +4002,40 @@ } }, "node_modules/@unhead/shared": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/@unhead/shared/-/shared-1.9.5.tgz", - "integrity": "sha512-WN2T8th1wYn4A1bb6o8Z59wNVMPkD6YdNQIlmSbEP9zuSYyVEh3BIxqSdxWM/xl8atN8fNwVW06knaF51VmKXA==", + "version": "1.9.10", + "resolved": "https://registry.npmjs.org/@unhead/shared/-/shared-1.9.10.tgz", + "integrity": "sha512-LBXxm/8ahY4FZ0FbWVaM1ANFO5QpPzvaYwjAQhgHANsrqFP2EqoGcOv1CfhdQbxg8vpGXkjI7m0r/8E9d3JoDA==", "dev": true, "dependencies": { - "@unhead/schema": "1.9.5" + "@unhead/schema": "1.9.10" }, "funding": { "url": "https://github.com/sponsors/harlan-zw" } }, "node_modules/@unhead/ssr": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/@unhead/ssr/-/ssr-1.9.5.tgz", - "integrity": "sha512-l9fqAKM3odX/8Ac8l7v7Nlot5f+e6ktINT/PjBuXf+pHHmPz7+eKWzNL95KVB/o0uxmJr2BVijDwCPYrgmjfjQ==", + "version": "1.9.10", + "resolved": "https://registry.npmjs.org/@unhead/ssr/-/ssr-1.9.10.tgz", + "integrity": "sha512-4hy3uFrYGJd5h0jmCIC0vFBf5DDhbz+j6tkATTNIaLz5lR4ZdFT+ipwzR20GvnaOiGWiOhZF3yv9FTJQyX4jog==", "dev": true, "dependencies": { - "@unhead/schema": "1.9.5", - "@unhead/shared": "1.9.5" + "@unhead/schema": "1.9.10", + "@unhead/shared": "1.9.10" }, "funding": { "url": "https://github.com/sponsors/harlan-zw" } }, "node_modules/@unhead/vue": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/@unhead/vue/-/vue-1.9.5.tgz", - "integrity": "sha512-L3yDB6Mwm92gJNPqZApMwfGluS0agR0HIizkXCKKz3WkZ+ef/negMwTNGpTtd+uqh/+hSyG73Bl4yySuPsD4nA==", + "version": "1.9.10", + "resolved": "https://registry.npmjs.org/@unhead/vue/-/vue-1.9.10.tgz", + "integrity": "sha512-Zi65eTU5IIaqqXAVOVJ4fnwJRR751FZIFlzYOjIekf1eNkISy+A4xyz3NIEQWSlXCrOiDNgDhT0YgKUcx5FfHQ==", "dev": true, "dependencies": { - "@unhead/schema": "1.9.5", - "@unhead/shared": "1.9.5", + "@unhead/schema": "1.9.10", + "@unhead/shared": "1.9.10", "hookable": "^5.5.3", - "unhead": "1.9.5" + "unhead": "1.9.10" }, "funding": { "url": "https://github.com/sponsors/harlan-zw" @@ -3759,15 +4045,15 @@ } }, "node_modules/@unocss/astro": { - "version": "0.59.3", - "resolved": "https://registry.npmjs.org/@unocss/astro/-/astro-0.59.3.tgz", - "integrity": "sha512-Q0eL9LLWTORWQYZYz4aoiT0SQhXqrCYJKK6+Z++d5ugsnVsRP2O/ovxf+0CueMHe6volW0O2EhgUt0yT20FdAA==", + "version": "0.60.2", + "resolved": "https://registry.npmjs.org/@unocss/astro/-/astro-0.60.2.tgz", + "integrity": "sha512-H8kJHj8aCQXksr0o7OpHqNkzm0RmpOm+qCt8vRcJJVFrdzQyaIQ/vyq3BUTV0Ex6OSzPirTe8fOaWoZdKtKf2Q==", "dev": true, "peer": true, "dependencies": { - "@unocss/core": "0.59.3", - "@unocss/reset": "0.59.3", - "@unocss/vite": "0.59.3" + "@unocss/core": "0.60.2", + "@unocss/reset": "0.60.2", + "@unocss/vite": "0.60.2" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -3782,23 +4068,23 @@ } }, "node_modules/@unocss/cli": { - "version": "0.59.3", - "resolved": "https://registry.npmjs.org/@unocss/cli/-/cli-0.59.3.tgz", - "integrity": "sha512-BkDkNZYVJrTRWxtTUPxq3TvbaBJ5r5zy82csCv+RJbNmQLJaqBy7gt0qkLJ9H4C83HNgqOuYEupVM65Ts3g0MA==", + "version": "0.60.2", + "resolved": "https://registry.npmjs.org/@unocss/cli/-/cli-0.60.2.tgz", + "integrity": "sha512-zX7eM95UI6LpKRfHTr8T2gSlFFXemPUswBxR5H4vPVlLeeCOhJWfc04vGdtSwoix5qFdnhQWIwzXGXAaB+kwoA==", "dev": true, "peer": true, "dependencies": { "@ampproject/remapping": "^2.3.0", "@rollup/pluginutils": "^5.1.0", - "@unocss/config": "0.59.3", - "@unocss/core": "0.59.3", - "@unocss/preset-uno": "0.59.3", + "@unocss/config": "0.60.2", + "@unocss/core": "0.60.2", + "@unocss/preset-uno": "0.60.2", "cac": "^6.7.14", "chokidar": "^3.6.0", "colorette": "^2.0.20", "consola": "^3.2.3", "fast-glob": "^3.3.2", - "magic-string": "^0.30.9", + "magic-string": "^0.30.10", "pathe": "^1.1.2", "perfect-debounce": "^1.0.0" }, @@ -3813,14 +4099,14 @@ } }, "node_modules/@unocss/config": { - "version": "0.59.3", - "resolved": "https://registry.npmjs.org/@unocss/config/-/config-0.59.3.tgz", - "integrity": "sha512-40xSskRsPrIDIspE1mVRBW03cGdgwpxCpXltj0xZ3fSutj1L6mcQnswd0AzCdnRyYo623zfuPO1jskvTYuAiMw==", + "version": "0.60.2", + "resolved": "https://registry.npmjs.org/@unocss/config/-/config-0.60.2.tgz", + "integrity": "sha512-EEgivE1xEnamAsYMcmjUmLJjOa9dBdV2zygT/blSFyX6rMfA4OuRlZ8hgfeWrHImZGiTXUU0jV2EaRmK9jEImQ==", "dev": true, "peer": true, "dependencies": { - "@unocss/core": "0.59.3", - "unconfig": "^0.3.12" + "@unocss/core": "0.60.2", + "unconfig": "^0.3.13" }, "engines": { "node": ">=14" @@ -3830,9 +4116,9 @@ } }, "node_modules/@unocss/core": { - "version": "0.59.3", - "resolved": "https://registry.npmjs.org/@unocss/core/-/core-0.59.3.tgz", - "integrity": "sha512-G9+1pmQB65KnGj2tvshcMGYs1aqiaw9FWb8cxMRLvQyquuOU/JdULD9vuuchXQ+DLYPTZ4vgDmMJefBJT6JDVw==", + "version": "0.60.2", + "resolved": "https://registry.npmjs.org/@unocss/core/-/core-0.60.2.tgz", + "integrity": "sha512-9i+eAJAqvy9bv0vrQxUU7VtR+wO6Vfk6dqrPHKRV/vlbwRT18v/C++dQ2L6PLM1CKxgNTeld0iTlpo8J3xZlxQ==", "dev": true, "peer": true, "funding": { @@ -3840,27 +4126,27 @@ } }, "node_modules/@unocss/extractor-arbitrary-variants": { - "version": "0.59.3", - "resolved": "https://registry.npmjs.org/@unocss/extractor-arbitrary-variants/-/extractor-arbitrary-variants-0.59.3.tgz", - "integrity": "sha512-f0G6bhgqCIIx7KjfhOVpJvJF0fpAhfai3fRYgEcxRrDrf5kpK+CqYxphqBqphBzugiY3YOrYlx7ccPIdypsXQw==", + "version": "0.60.2", + "resolved": "https://registry.npmjs.org/@unocss/extractor-arbitrary-variants/-/extractor-arbitrary-variants-0.60.2.tgz", + "integrity": "sha512-uO4ZPUcaYvyWshXnqzFnSWeh+Du6xVYwaz3oBKq4n7Ryw2Grc0IhiZe6n9MC8w6nkbopdo6ngr5LnFGp86horQ==", "dev": true, "peer": true, "dependencies": { - "@unocss/core": "0.59.3" + "@unocss/core": "0.60.2" }, "funding": { "url": "https://github.com/sponsors/antfu" } }, "node_modules/@unocss/inspector": { - "version": "0.59.3", - "resolved": "https://registry.npmjs.org/@unocss/inspector/-/inspector-0.59.3.tgz", - "integrity": "sha512-f33kQnLnfQSZTecSPe/spOJDNRQYX9DMbXywgMHi8IFu1qaE8dMRloQUWvUPD9sNQ1iR7kEhRtmOT9CQx9vJag==", + "version": "0.60.2", + "resolved": "https://registry.npmjs.org/@unocss/inspector/-/inspector-0.60.2.tgz", + "integrity": "sha512-tc+TtTA7yNCS10oT7MfI2rEv1KErwLgEDRvBLCM1vsXmjzsGxkhqnT3vT5pqRkENYh/QhmIfpz1899GvH8WBMQ==", "dev": true, "peer": true, "dependencies": { - "@unocss/core": "0.59.3", - "@unocss/rule-utils": "0.59.3", + "@unocss/core": "0.60.2", + "@unocss/rule-utils": "0.60.2", "gzip-size": "^6.0.0", "sirv": "^2.0.4" }, @@ -3885,18 +4171,18 @@ } }, "node_modules/@unocss/postcss": { - "version": "0.59.3", - "resolved": "https://registry.npmjs.org/@unocss/postcss/-/postcss-0.59.3.tgz", - "integrity": "sha512-lyRO8jHDYdAwL/pEdU6uSDfp/pps8pwYQfIh7OZN1BRASPv/ik7HVbRW4bsiMDaBHaxGkrvWATLXQ/W+iBkslw==", + "version": "0.60.2", + "resolved": "https://registry.npmjs.org/@unocss/postcss/-/postcss-0.60.2.tgz", + "integrity": "sha512-fGXzhx5bh1iYxQ0wThmUsu+KMxCTqZsQQZ/a2kbTNzmOIslX1/cCWaQ62BWsfER7rOnZVG6DzGR+3CzVcDzuXg==", "dev": true, "peer": true, "dependencies": { - "@unocss/config": "0.59.3", - "@unocss/core": "0.59.3", - "@unocss/rule-utils": "0.59.3", + "@unocss/config": "0.60.2", + "@unocss/core": "0.60.2", + "@unocss/rule-utils": "0.60.2", "css-tree": "^2.3.1", "fast-glob": "^3.3.2", - "magic-string": "^0.30.9", + "magic-string": "^0.30.10", "postcss": "^8.4.38" }, "engines": { @@ -3910,27 +4196,27 @@ } }, "node_modules/@unocss/preset-attributify": { - "version": "0.59.3", - "resolved": "https://registry.npmjs.org/@unocss/preset-attributify/-/preset-attributify-0.59.3.tgz", - "integrity": "sha512-WwfMNce44CtOve5H9iUjFYR+c/PjLoFsVztAF9Y2qWzllBK91SSXAA3nHylqpQnf8I+UBdO0TrSV58VyA3kLLg==", + "version": "0.60.2", + "resolved": "https://registry.npmjs.org/@unocss/preset-attributify/-/preset-attributify-0.60.2.tgz", + "integrity": "sha512-PQDObhVtopL/eEceAHX/pBmPQhm50l4yhTu/pMH31hL13DuRYODngWe00jjgmMRTwIAFpMpDVKk2GjxeD05+cQ==", "dev": true, "peer": true, "dependencies": { - "@unocss/core": "0.59.3" + "@unocss/core": "0.60.2" }, "funding": { "url": "https://github.com/sponsors/antfu" } }, "node_modules/@unocss/preset-icons": { - "version": "0.59.3", - "resolved": "https://registry.npmjs.org/@unocss/preset-icons/-/preset-icons-0.59.3.tgz", - "integrity": "sha512-dY752nMzluvLR7SpWnNWEdppqezje4HRVMfPw1nSnPb6bnra7rippdaQNM9YXNa5xGmrtq4U2xDhgs9yHY1QGA==", + "version": "0.60.2", + "resolved": "https://registry.npmjs.org/@unocss/preset-icons/-/preset-icons-0.60.2.tgz", + "integrity": "sha512-knE4CKn4tgjvyZQSZTuC5FIO2/jcP1AWBvpWyJTax5kcKAIrL8IU4b7PhiPwPrQpe0LBTtyQKWCXqWXp7DhDwA==", "dev": true, "peer": true, "dependencies": { - "@iconify/utils": "^2.1.22", - "@unocss/core": "0.59.3", + "@iconify/utils": "^2.1.23", + "@unocss/core": "0.60.2", "ofetch": "^1.3.4" }, "funding": { @@ -3938,68 +4224,68 @@ } }, "node_modules/@unocss/preset-mini": { - "version": "0.59.3", - "resolved": "https://registry.npmjs.org/@unocss/preset-mini/-/preset-mini-0.59.3.tgz", - "integrity": "sha512-cUUNgTh73LmpLU88Ozz1nqXzhN9/8wnJidlkvMYvcbhg0zwr/quPGesRoy0+8W6cD0qvBfJAMnE//yzwR2gjpw==", + "version": "0.60.2", + "resolved": "https://registry.npmjs.org/@unocss/preset-mini/-/preset-mini-0.60.2.tgz", + "integrity": "sha512-Vp5UWzD9FgxeYNhyJIXjMt8HyL7joGJWzmFa2zR8ZAYZ+WIIIJWtxa+9/H8gJgnGTWa2H9oyj9h3IqOYT/lmSg==", "dev": true, "peer": true, "dependencies": { - "@unocss/core": "0.59.3", - "@unocss/extractor-arbitrary-variants": "0.59.3", - "@unocss/rule-utils": "0.59.3" + "@unocss/core": "0.60.2", + "@unocss/extractor-arbitrary-variants": "0.60.2", + "@unocss/rule-utils": "0.60.2" }, "funding": { "url": "https://github.com/sponsors/antfu" } }, "node_modules/@unocss/preset-tagify": { - "version": "0.59.3", - "resolved": "https://registry.npmjs.org/@unocss/preset-tagify/-/preset-tagify-0.59.3.tgz", - "integrity": "sha512-15SJ1zJSuwByxIxLNPX/MSqGpGe3dsObawkl7ducYSVkEK/+a893aGSmbeNsrti4qFe028Im5cYUOdJg/1XiCA==", + "version": "0.60.2", + "resolved": "https://registry.npmjs.org/@unocss/preset-tagify/-/preset-tagify-0.60.2.tgz", + "integrity": "sha512-M730DpoPJ8/uG7aKme9EYrzspr0WfKp7z3CTpb2hb4YHuiCXmiTjdxo5xa9vK3ZGQTZlUkG0rz3TLw8tRKqRDg==", "dev": true, "peer": true, "dependencies": { - "@unocss/core": "0.59.3" + "@unocss/core": "0.60.2" }, "funding": { "url": "https://github.com/sponsors/antfu" } }, "node_modules/@unocss/preset-typography": { - "version": "0.59.3", - "resolved": "https://registry.npmjs.org/@unocss/preset-typography/-/preset-typography-0.59.3.tgz", - "integrity": "sha512-Lh4QWBmy70+9jE811okuJquyq04b96V6s8T2jc8FDadT6LLHnAwck0Zg+o283JB7JTP4Tv956yVy9HYR3igYUQ==", + "version": "0.60.2", + "resolved": "https://registry.npmjs.org/@unocss/preset-typography/-/preset-typography-0.60.2.tgz", + "integrity": "sha512-QKJi1LbC/f8RwwSwV6yQCXu/8wlBcrNyKiUSe7o9I2NYP+mzINlp64pXEP43UtUQo6x8Dil/TuzpRqMFPG/pMA==", "dev": true, "peer": true, "dependencies": { - "@unocss/core": "0.59.3", - "@unocss/preset-mini": "0.59.3" + "@unocss/core": "0.60.2", + "@unocss/preset-mini": "0.60.2" } }, "node_modules/@unocss/preset-uno": { - "version": "0.59.3", - "resolved": "https://registry.npmjs.org/@unocss/preset-uno/-/preset-uno-0.59.3.tgz", - "integrity": "sha512-YDmHW1LDnyzb8eR7F/an7rk1Euit+YIxfAH7PkxNNdGX1+552DK8dKcJMtVdvmfGMChCbLJeyN8oYRat8m245w==", + "version": "0.60.2", + "resolved": "https://registry.npmjs.org/@unocss/preset-uno/-/preset-uno-0.60.2.tgz", + "integrity": "sha512-ggOCehuBm6depGV+79heBlcYlwgcfbIMLnxbywZPIrLwPB/4YaTArBcG4giKILyu4p2PcodAZvfv4uYXrLaE5Q==", "dev": true, "peer": true, "dependencies": { - "@unocss/core": "0.59.3", - "@unocss/preset-mini": "0.59.3", - "@unocss/preset-wind": "0.59.3", - "@unocss/rule-utils": "0.59.3" + "@unocss/core": "0.60.2", + "@unocss/preset-mini": "0.60.2", + "@unocss/preset-wind": "0.60.2", + "@unocss/rule-utils": "0.60.2" }, "funding": { "url": "https://github.com/sponsors/antfu" } }, "node_modules/@unocss/preset-web-fonts": { - "version": "0.59.3", - "resolved": "https://registry.npmjs.org/@unocss/preset-web-fonts/-/preset-web-fonts-0.59.3.tgz", - "integrity": "sha512-pq29j+FkmY9OoQItypekOFKMEfN+9Vfv310thbHJ4tu/pD0X+KUvWya9hc2AOzY+5Dg79Ws/p2B5gZIZ9hY2aA==", + "version": "0.60.2", + "resolved": "https://registry.npmjs.org/@unocss/preset-web-fonts/-/preset-web-fonts-0.60.2.tgz", + "integrity": "sha512-1lHZVOR6JHkPOvFBQeqZLoAwDk9spUxrX2WfLSVL+sCuBLLeo8voa/LnCxPxKiQwKZGEEoh+qM2MKsLnRd+P6w==", "dev": true, "peer": true, "dependencies": { - "@unocss/core": "0.59.3", + "@unocss/core": "0.60.2", "ofetch": "^1.3.4" }, "funding": { @@ -4007,24 +4293,24 @@ } }, "node_modules/@unocss/preset-wind": { - "version": "0.59.3", - "resolved": "https://registry.npmjs.org/@unocss/preset-wind/-/preset-wind-0.59.3.tgz", - "integrity": "sha512-yODaBxsZOGmEcxUcNu2g8J2ffya8B2YpZQmqN/Ock13QgwREEumn3oqCLIrkGkYN6Q/SELBS6C66RL1GFjjtqA==", + "version": "0.60.2", + "resolved": "https://registry.npmjs.org/@unocss/preset-wind/-/preset-wind-0.60.2.tgz", + "integrity": "sha512-9Ml2Wyn7LAcKfqHMJmflT/jdz5eLZtm3SEZKH5Lfk5MOyeVm6NDXjXK140u3zaP5tGKqtO6akJZGtYktWJ6+WQ==", "dev": true, "peer": true, "dependencies": { - "@unocss/core": "0.59.3", - "@unocss/preset-mini": "0.59.3", - "@unocss/rule-utils": "0.59.3" + "@unocss/core": "0.60.2", + "@unocss/preset-mini": "0.60.2", + "@unocss/rule-utils": "0.60.2" }, "funding": { "url": "https://github.com/sponsors/antfu" } }, "node_modules/@unocss/reset": { - "version": "0.59.3", - "resolved": "https://registry.npmjs.org/@unocss/reset/-/reset-0.59.3.tgz", - "integrity": "sha512-4m2p/TcOamf17w4b8w6YIx9p1VP3BPiMQ4WUx2FvsgQz7G3/w+FJEEQ0xoc2FIJ0UBggr9UJmrs2Y7SQ9Gmukg==", + "version": "0.60.2", + "resolved": "https://registry.npmjs.org/@unocss/reset/-/reset-0.60.2.tgz", + "integrity": "sha512-kM0DYAcbmzpAyHefa/W+cifBTScWeZGsNpKagMQ6vci6OlTUiDB1GcmhQZ6dC0Ks59GtPmRbzZLaK1MgG6ayrA==", "dev": true, "peer": true, "funding": { @@ -4032,14 +4318,14 @@ } }, "node_modules/@unocss/rule-utils": { - "version": "0.59.3", - "resolved": "https://registry.npmjs.org/@unocss/rule-utils/-/rule-utils-0.59.3.tgz", - "integrity": "sha512-8FxGnnjvhYvit0L2wqIGOMSYBHKLoivpbwClgRSWTEpoxeJxgbULZO36VJ84Qe4rXtdUF7ZPB76k6SWLycsoLA==", + "version": "0.60.2", + "resolved": "https://registry.npmjs.org/@unocss/rule-utils/-/rule-utils-0.60.2.tgz", + "integrity": "sha512-pg3XbU0s0TmmRk0UkSV6wTlca+Zz5xe9V+Mk8a5QqVp0oJ2jNWHO9AfzF4NcvTzM2zV2a/WbpjSBgoK8iAz3zg==", "dev": true, "peer": true, "dependencies": { - "@unocss/core": "^0.59.3", - "magic-string": "^0.30.9" + "@unocss/core": "^0.60.2", + "magic-string": "^0.30.10" }, "engines": { "node": ">=14" @@ -4049,96 +4335,96 @@ } }, "node_modules/@unocss/scope": { - "version": "0.59.3", - "resolved": "https://registry.npmjs.org/@unocss/scope/-/scope-0.59.3.tgz", - "integrity": "sha512-YHEtKLsgSNKzES8yiqef9qFJU1sXEGEUPKyw/Jt9WNIhNyDHJuJsPNhlkR6I3VTViu7jFknbK2dnLLHkp+LdNQ==", + "version": "0.60.2", + "resolved": "https://registry.npmjs.org/@unocss/scope/-/scope-0.60.2.tgz", + "integrity": "sha512-pdwNZzQBb6rllgCwirPPrydDZH2XL0DI8/W7iM1RKYiNeDYjoDAWdVD46CrRmxadiHesrhdIwDL6rQz7Q7bl0w==", "dev": true, "peer": true }, "node_modules/@unocss/transformer-attributify-jsx": { - "version": "0.59.3", - "resolved": "https://registry.npmjs.org/@unocss/transformer-attributify-jsx/-/transformer-attributify-jsx-0.59.3.tgz", - "integrity": "sha512-XTBZV2UfOKrAKxEsy34tty5wh38//sDtA/OXztMTpkrP+eJwtVfUPez/ZKADOO+8rcQXSt9eaF4bDzn5kbBEKA==", + "version": "0.60.2", + "resolved": "https://registry.npmjs.org/@unocss/transformer-attributify-jsx/-/transformer-attributify-jsx-0.60.2.tgz", + "integrity": "sha512-GZbtuZLz3COMhEqdc33zmn8cKupAzVeLcAV66EL+zj7hfZIvrIEs5RFajtzlkQa7RC5YOOjZfHxMccGBEP1RMQ==", "dev": true, "peer": true, "dependencies": { - "@unocss/core": "0.59.3" + "@unocss/core": "0.60.2" }, "funding": { "url": "https://github.com/sponsors/antfu" } }, "node_modules/@unocss/transformer-attributify-jsx-babel": { - "version": "0.59.3", - "resolved": "https://registry.npmjs.org/@unocss/transformer-attributify-jsx-babel/-/transformer-attributify-jsx-babel-0.59.3.tgz", - "integrity": "sha512-LH+PPnRJ3ex7ZAI2zmALo0xPU0TEsJV0upsbeA8yx4xjmdka2iwlSKCw5XZtIxVHUvbC+75myeMLSDK51oMxTw==", + "version": "0.60.2", + "resolved": "https://registry.npmjs.org/@unocss/transformer-attributify-jsx-babel/-/transformer-attributify-jsx-babel-0.60.2.tgz", + "integrity": "sha512-mb66b39qsjyH7+XqC/0ciLdPatVKH5CfMDxUMvzczuFTQ/+V3VAN/Mm6Ru+oxMgbf7qPTALSnLgu6RUhEldTzA==", "dev": true, "peer": true, "dependencies": { - "@babel/core": "^7.24.4", + "@babel/core": "^7.24.5", "@babel/plugin-syntax-jsx": "^7.24.1", "@babel/preset-typescript": "^7.24.1", - "@unocss/core": "0.59.3" + "@unocss/core": "0.60.2" }, "funding": { "url": "https://github.com/sponsors/antfu" } }, "node_modules/@unocss/transformer-compile-class": { - "version": "0.59.3", - "resolved": "https://registry.npmjs.org/@unocss/transformer-compile-class/-/transformer-compile-class-0.59.3.tgz", - "integrity": "sha512-kaem8PdLiKx6fU8cOUurbD8/BV1qJC3yoc5jptQ7QjqPzl+zFHABwt9wpOQXmgOQsiZc1wilSBQ5HO0139jXpg==", + "version": "0.60.2", + "resolved": "https://registry.npmjs.org/@unocss/transformer-compile-class/-/transformer-compile-class-0.60.2.tgz", + "integrity": "sha512-dZfkGsqd7mdyRRCG8om5lTxQ4CjaaDka8gPbVawbDkK4U53G2vnN3daVlE7UflUXS32hOPj16RfOcb8cH+pypw==", "dev": true, "peer": true, "dependencies": { - "@unocss/core": "0.59.3" + "@unocss/core": "0.60.2" }, "funding": { "url": "https://github.com/sponsors/antfu" } }, "node_modules/@unocss/transformer-directives": { - "version": "0.59.3", - "resolved": "https://registry.npmjs.org/@unocss/transformer-directives/-/transformer-directives-0.59.3.tgz", - "integrity": "sha512-Bu2uK4+CIFurOYrFl/Gw03p075d3ATVmLrbM8sBDNfOYfiVWrrizO9J1HfN9/Yu9l3KVPXRfqxOvOWBBl3Jjbg==", + "version": "0.60.2", + "resolved": "https://registry.npmjs.org/@unocss/transformer-directives/-/transformer-directives-0.60.2.tgz", + "integrity": "sha512-p4ZtXoz1mZ125WfANFAD6pXwQJdA4lfff5abZfoDiTPLvtvYQFmwGCeBXUnEKAnBnTwwiBD2zsIwGfumWAsqrA==", "dev": true, "peer": true, "dependencies": { - "@unocss/core": "0.59.3", - "@unocss/rule-utils": "0.59.3", + "@unocss/core": "0.60.2", + "@unocss/rule-utils": "0.60.2", "css-tree": "^2.3.1" } }, "node_modules/@unocss/transformer-variant-group": { - "version": "0.59.3", - "resolved": "https://registry.npmjs.org/@unocss/transformer-variant-group/-/transformer-variant-group-0.59.3.tgz", - "integrity": "sha512-n0AIY8GFpAxi/xd0RG49xKzRajZaiAmvD0b6WPOoEsB6dLJF7m97G4yhlmvyM7S26LUdqdtbLuE+XajiRDMyoQ==", + "version": "0.60.2", + "resolved": "https://registry.npmjs.org/@unocss/transformer-variant-group/-/transformer-variant-group-0.60.2.tgz", + "integrity": "sha512-2eE2MZhFhNj+3fxO9VE1yC8LddUn9vetNZKrgGlegrBH/jOL9Pn/vygBmMAg1XFLEgC3DtvwdzCKMVttV30Ivw==", "dev": true, "peer": true, "dependencies": { - "@unocss/core": "0.59.3" + "@unocss/core": "0.60.2" }, "funding": { "url": "https://github.com/sponsors/antfu" } }, "node_modules/@unocss/vite": { - "version": "0.59.3", - "resolved": "https://registry.npmjs.org/@unocss/vite/-/vite-0.59.3.tgz", - "integrity": "sha512-+K4kSEt3BvJfYlc8Tg3nmF53i14+OUTIasnzwUQF4JCF+B47jd47IVbNBm2izhTA5OrmZ+1xXBjHR7cXgDjDhg==", + "version": "0.60.2", + "resolved": "https://registry.npmjs.org/@unocss/vite/-/vite-0.60.2.tgz", + "integrity": "sha512-+gBjyT5z/aZgPIZxpUbiXyOt1diY9YQfIJStOhBG0MP6daMdDX78SnDuUq/zKMk9EJuZ3FxhbZF5dYSD4bhJmw==", "dev": true, "peer": true, "dependencies": { "@ampproject/remapping": "^2.3.0", "@rollup/pluginutils": "^5.1.0", - "@unocss/config": "0.59.3", - "@unocss/core": "0.59.3", - "@unocss/inspector": "0.59.3", - "@unocss/scope": "0.59.3", - "@unocss/transformer-directives": "0.59.3", + "@unocss/config": "0.60.2", + "@unocss/core": "0.60.2", + "@unocss/inspector": "0.60.2", + "@unocss/scope": "0.60.2", + "@unocss/transformer-directives": "0.60.2", "chokidar": "^3.6.0", "fast-glob": "^3.3.2", - "magic-string": "^0.30.9" + "magic-string": "^0.30.10" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -4148,9 +4434,9 @@ } }, "node_modules/@vercel/nft": { - "version": "0.26.4", - "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-0.26.4.tgz", - "integrity": "sha512-j4jCOOXke2t8cHZCIxu1dzKLHLcFmYzC3yqAK6MfZznOL1QIJKd0xcFsXK3zcqzU7ScsE2zWkiMMNHGMHgp+FA==", + "version": "0.26.5", + "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-0.26.5.tgz", + "integrity": "sha512-NHxohEqad6Ra/r4lGknO52uc/GrWILXAMs1BB4401GTqww0fw1bAqzpG1XHuDO+dprg4GvsD9ZLLSsdo78p9hQ==", "dev": true, "dependencies": { "@mapbox/node-pre-gyp": "^1.0.5", @@ -4338,17 +4624,17 @@ } }, "node_modules/@vue-macros/common": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/@vue-macros/common/-/common-1.10.2.tgz", - "integrity": "sha512-WC66NPVh2mJWqm4L0l/u/cOqm4pNOIwVdMGnDYAH2rHcOWy5x68GkhpkYTBu1+xwCSeHWOQn1TCGGbD+98fFpA==", + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/@vue-macros/common/-/common-1.10.3.tgz", + "integrity": "sha512-YSgzcbXrRo8a/TF/YIguqEmTld1KA60VETKJG8iFuaAfj7j+Tbdin3cj7/cYbcCHORSq1v9IThgq7r8keH7LXQ==", "dev": true, "dependencies": { "@babel/types": "^7.24.0", "@rollup/pluginutils": "^5.1.0", - "@vue/compiler-sfc": "^3.4.21", + "@vue/compiler-sfc": "^3.4.25", "ast-kit": "^0.12.1", "local-pkg": "^0.5.0", - "magic-string-ast": "^0.3.0" + "magic-string-ast": "^0.5.0" }, "engines": { "node": ">=16.14.0" @@ -4436,53 +4722,53 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.23.tgz", - "integrity": "sha512-HAFmuVEwNqNdmk+w4VCQ2pkLk1Vw4XYiiyxEp3z/xvl14aLTUBw2OfVH3vBcx+FtGsynQLkkhK410Nah1N2yyQ==", + "version": "3.4.27", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.27.tgz", + "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", "dev": true, "dependencies": { - "@babel/parser": "^7.24.1", - "@vue/shared": "3.4.23", + "@babel/parser": "^7.24.4", + "@vue/shared": "3.4.27", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-dom": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.23.tgz", - "integrity": "sha512-t0b9WSTnCRrzsBGrDd1LNR5HGzYTr7LX3z6nNBG+KGvZLqrT0mY6NsMzOqlVMBKKXKVuusbbB5aOOFgTY+senw==", + "version": "3.4.27", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", + "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", "dev": true, "dependencies": { - "@vue/compiler-core": "3.4.23", - "@vue/shared": "3.4.23" + "@vue/compiler-core": "3.4.27", + "@vue/shared": "3.4.27" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.23.tgz", - "integrity": "sha512-fSDTKTfzaRX1kNAUiaj8JB4AokikzStWgHooMhaxyjZerw624L+IAP/fvI4ZwMpwIh8f08PVzEnu4rg8/Npssw==", + "version": "3.4.27", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.27.tgz", + "integrity": "sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==", "dev": true, "dependencies": { - "@babel/parser": "^7.24.1", - "@vue/compiler-core": "3.4.23", - "@vue/compiler-dom": "3.4.23", - "@vue/compiler-ssr": "3.4.23", - "@vue/shared": "3.4.23", + "@babel/parser": "^7.24.4", + "@vue/compiler-core": "3.4.27", + "@vue/compiler-dom": "3.4.27", + "@vue/compiler-ssr": "3.4.27", + "@vue/shared": "3.4.27", "estree-walker": "^2.0.2", - "magic-string": "^0.30.8", + "magic-string": "^0.30.10", "postcss": "^8.4.38", "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.23.tgz", - "integrity": "sha512-hb6Uj2cYs+tfqz71Wj6h3E5t6OKvb4MVcM2Nl5i/z1nv1gjEhw+zYaNOV+Xwn+SSN/VZM0DgANw5TuJfxfezPg==", + "version": "3.4.27", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.27.tgz", + "integrity": "sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==", "dev": true, "dependencies": { - "@vue/compiler-dom": "3.4.23", - "@vue/shared": "3.4.23" + "@vue/compiler-dom": "3.4.27", + "@vue/shared": "3.4.27" } }, "node_modules/@vue/devtools-api": { @@ -4492,16 +4778,18 @@ "dev": true }, "node_modules/@vue/devtools-applet": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/@vue/devtools-applet/-/devtools-applet-7.0.27.tgz", - "integrity": "sha512-ubNn/qIn5n3x7YCVSabfQfKL49GoJPJdYu4LfdNz/gZkgb1+djdATpKl/+xzQoOqtGzqnR9nMoCHApAJAgeMyg==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@vue/devtools-applet/-/devtools-applet-7.2.0.tgz", + "integrity": "sha512-ohl3uHejqu8v6BoCfsadpo6/QU1o585Im8AbH4bZiQTKdIot7OlBdk7pz9bK3muV6N1xKuiDNwYul0QYClOeSg==", "dev": true, "dependencies": { - "@vue/devtools-core": "^7.0.27", - "@vue/devtools-kit": "^7.0.27", - "@vue/devtools-shared": "^7.0.27", - "@vue/devtools-ui": "^7.0.27", + "@vue/devtools-core": "^7.2.0", + "@vue/devtools-kit": "^7.2.0", + "@vue/devtools-shared": "^7.2.0", + "@vue/devtools-ui": "^7.2.0", + "lodash-es": "^4.17.21", "perfect-debounce": "^1.0.0", + "shiki": "1.5.2", "splitpanes": "^3.1.5", "vue-virtual-scroller": "2.0.0-beta.8" }, @@ -4510,13 +4798,13 @@ } }, "node_modules/@vue/devtools-core": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/@vue/devtools-core/-/devtools-core-7.0.27.tgz", - "integrity": "sha512-3rbtNGxFFFPfIObgTAPIw0h0rJy+y1PrbfgM9nXRf3/FIJkthfS19yj31pj9EWIqRsyiqK5u1Ni7SAJZ0vsQOA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@vue/devtools-core/-/devtools-core-7.2.0.tgz", + "integrity": "sha512-cHSeu70rTtubt2DYia+VDGNTC1m84Xyuk5eNTjmOpMLECaJnWnzCv6kR84EZp7rG+MVZalJG+4ecX2GaTbU3cQ==", "dev": true, "dependencies": { - "@vue/devtools-kit": "^7.0.27", - "@vue/devtools-shared": "^7.0.27", + "@vue/devtools-kit": "^7.2.0", + "@vue/devtools-shared": "^7.2.0", "mitt": "^3.0.1", "nanoid": "^3.3.4", "pathe": "^1.1.2", @@ -4524,12 +4812,12 @@ } }, "node_modules/@vue/devtools-kit": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.0.27.tgz", - "integrity": "sha512-/A5xM38pPCFX5Yhl/lRFAzjyK6VNsH670nww2WbjFKWqlu3I+lMxWKzQkCW6A1V8bduITgl2kHORfg2gTw6QaA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.2.0.tgz", + "integrity": "sha512-Kx+U0QiQg/g714euYKfnCdhTcOycSlH1oyTE57D0sAmisdsRCNLfXcnnIwcFY2jdCpuz9DNbuE0VWQuYF5zAZQ==", "dev": true, "dependencies": { - "@vue/devtools-shared": "^7.0.27", + "@vue/devtools-shared": "^7.2.0", "hookable": "^5.5.3", "mitt": "^3.0.1", "perfect-debounce": "^1.0.0", @@ -4540,20 +4828,21 @@ } }, "node_modules/@vue/devtools-shared": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.0.27.tgz", - "integrity": "sha512-4VxtmZ6yjhiSloqZZq2UYU0TBGxOJ8GxWvp5OlAH70zYqi0FIAyWGPkOhvfoZ7DKQyv2UU0mmKzFHjsEkelGyQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.2.0.tgz", + "integrity": "sha512-gVr3IjKjU7axNvclRgICgy1gq/TDnF1hhBAEox+l5mMXZiTIFVIm1zpcIPssc0HxMDgzy+lXqOVsY4DGyZ+ZeA==", "dev": true, "dependencies": { "rfdc": "^1.3.1" } }, "node_modules/@vue/devtools-ui": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/@vue/devtools-ui/-/devtools-ui-7.0.27.tgz", - "integrity": "sha512-MVcQwqqGNW2poW29OkzOcpNLHb0R/VQECWYiDYvKqjWp3G8M/FS2E5mUnjXxZGpfqHjSEmJs+fFGY8exnYpNng==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@vue/devtools-ui/-/devtools-ui-7.2.0.tgz", + "integrity": "sha512-5raf2DLgicnT6vr9oO8kgN49ZqdDYtyph4hBH3sg9bvY2UtHgJs6m8uPqai5vKSrrEy/V30Rq/tahQlOiEbi+Q==", "dev": true, "dependencies": { + "@vue/devtools-shared": "7.2.0", "@vueuse/components": "^10.9.0", "@vueuse/core": "^10.9.0", "@vueuse/integrations": "^10.9.0", @@ -4673,52 +4962,52 @@ "dev": true }, "node_modules/@vue/reactivity": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.23.tgz", - "integrity": "sha512-GlXR9PL+23fQ3IqnbSQ8OQKLodjqCyoCrmdLKZk3BP7jN6prWheAfU7a3mrltewTkoBm+N7qMEb372VHIkQRMQ==", + "version": "3.4.27", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.27.tgz", + "integrity": "sha512-kK0g4NknW6JX2yySLpsm2jlunZJl2/RJGZ0H9ddHdfBVHcNzxmQ0sS0b09ipmBoQpY8JM2KmUw+a6sO8Zo+zIA==", "dev": true, "dependencies": { - "@vue/shared": "3.4.23" + "@vue/shared": "3.4.27" } }, "node_modules/@vue/runtime-core": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.23.tgz", - "integrity": "sha512-FeQ9MZEXoFzFkFiw9MQQ/FWs3srvrP+SjDKSeRIiQHIhtkzoj0X4rWQlRNHbGuSwLra6pMyjAttwixNMjc/xLw==", + "version": "3.4.27", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.27.tgz", + "integrity": "sha512-7aYA9GEbOOdviqVvcuweTLe5Za4qBZkUY7SvET6vE8kyypxVgaT1ixHLg4urtOlrApdgcdgHoTZCUuTGap/5WA==", "dev": true, "dependencies": { - "@vue/reactivity": "3.4.23", - "@vue/shared": "3.4.23" + "@vue/reactivity": "3.4.27", + "@vue/shared": "3.4.27" } }, "node_modules/@vue/runtime-dom": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.23.tgz", - "integrity": "sha512-RXJFwwykZWBkMiTPSLEWU3kgVLNAfActBfWFlZd0y79FTUxexogd0PLG4HH2LfOktjRxV47Nulygh0JFXe5f9A==", + "version": "3.4.27", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.27.tgz", + "integrity": "sha512-ScOmP70/3NPM+TW9hvVAz6VWWtZJqkbdf7w6ySsws+EsqtHvkhxaWLecrTorFxsawelM5Ys9FnDEMt6BPBDS0Q==", "dev": true, "dependencies": { - "@vue/runtime-core": "3.4.23", - "@vue/shared": "3.4.23", + "@vue/runtime-core": "3.4.27", + "@vue/shared": "3.4.27", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.23.tgz", - "integrity": "sha512-LDwGHtnIzvKFNS8dPJ1SSU5Gvm36p2ck8wCZc52fc3k/IfjKcwCyrWEf0Yag/2wTFUBXrqizfhK9c/mC367dXQ==", + "version": "3.4.27", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.27.tgz", + "integrity": "sha512-dlAMEuvmeA3rJsOMJ2J1kXU7o7pOxgsNHVr9K8hB3ImIkSuBrIdy0vF66h8gf8Tuinf1TK3mPAz2+2sqyf3KzA==", "dev": true, "dependencies": { - "@vue/compiler-ssr": "3.4.23", - "@vue/shared": "3.4.23" + "@vue/compiler-ssr": "3.4.27", + "@vue/shared": "3.4.27" }, "peerDependencies": { - "vue": "3.4.23" + "vue": "3.4.27" } }, "node_modules/@vue/shared": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.23.tgz", - "integrity": "sha512-wBQ0gvf+SMwsCQOyusNw/GoXPV47WGd1xB5A1Pgzy0sQ3Bi5r5xm3n+92y3gCnB3MWqnRDdvfkRGxhKtbBRNgg==", + "version": "3.4.27", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==", "dev": true }, "node_modules/@vueuse/components": { @@ -5305,22 +5594,22 @@ } }, "node_modules/archiver-utils/node_modules/glob": { - "version": "10.3.12", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", - "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "version": "10.3.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", + "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.3.6", "minimatch": "^9.0.1", "minipass": "^7.0.4", - "path-scurry": "^1.10.2" + "path-scurry": "^1.11.0" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -5698,15 +5987,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/builtins": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz", - "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==", - "dev": true, - "dependencies": { - "semver": "^7.0.0" - } - }, "node_modules/bundle-name": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", @@ -5752,9 +6032,9 @@ } }, "node_modules/cacache": { - "version": "18.0.2", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.2.tgz", - "integrity": "sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw==", + "version": "18.0.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.3.tgz", + "integrity": "sha512-qXCd4rh6I07cnDqh8V48/94Tc/WSfj+o3Gn6NZ0aZovS255bUx8O13uKxRFd2eWG0xgsco7+YItQNPaa5E85hg==", "dev": true, "dependencies": { "@npmcli/fs": "^3.1.0", @@ -5775,31 +6055,31 @@ } }, "node_modules/cacache/node_modules/glob": { - "version": "10.3.12", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", - "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "version": "10.3.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", + "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.3.6", "minimatch": "^9.0.1", "minipass": "^7.0.4", - "path-scurry": "^1.10.2" + "path-scurry": "^1.11.0" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/cacache/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", "dev": true, "engines": { "node": "14 || >=16.14" @@ -5868,9 +6148,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001610", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001610.tgz", - "integrity": "sha512-QFutAY4NgaelojVMjY63o6XlZyORPaLfyMnsl3HgnWdJUcX6K0oaJymHjH8PT5Gk7sTm8rvC/c5COUQKXqmOMA==", + "version": "1.0.30001620", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz", + "integrity": "sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==", "dev": true, "funding": [ { @@ -6276,9 +6556,9 @@ "dev": true }, "node_modules/confbox": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.6.tgz", - "integrity": "sha512-ONc4FUXne/1UBN1EuxvQ5rAjjAbo+N4IxrxWI8bzGHbd1PyrFlI/E3G23/yoJZDFBaFFxPGfI0EOq0fa4dgX7A==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.7.tgz", + "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==", "dev": true }, "node_modules/consola": { @@ -6366,9 +6646,9 @@ } }, "node_modules/cronstrue": { - "version": "2.49.0", - "resolved": "https://registry.npmjs.org/cronstrue/-/cronstrue-2.49.0.tgz", - "integrity": "sha512-FWZBqdStQaPR8ZTBQGALh1EK9Hl1HcG70dyGvD1rKLPafFO3H73o38dz/e8YkIlbLn3JxmBI/f6Doe3Nh+DcEQ==", + "version": "2.50.0", + "resolved": "https://registry.npmjs.org/cronstrue/-/cronstrue-2.50.0.tgz", + "integrity": "sha512-ULYhWIonJzlScCCQrPUG5uMXzXxSixty4djud9SS37DoNxDdkeRocxzHuAo4ImRBUK+mAuU5X9TSwEDccnnuPg==", "dev": true, "bin": { "cronstrue": "bin/cli.js" @@ -6819,9 +7099,9 @@ } }, "node_modules/devalue": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/devalue/-/devalue-4.3.2.tgz", - "integrity": "sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-4.3.3.tgz", + "integrity": "sha512-UH8EL6H2ifcY8TbD2QsxwCC/pr5xSwPvv85LrLXVihmHVC3T3YqTCIwnR5ak0yO1KYqlxrPVOA/JVZJYPy2ATg==", "dev": true }, "node_modules/devlop": { @@ -7002,9 +7282,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.738", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.738.tgz", - "integrity": "sha512-lwKft2CLFztD+vEIpesrOtCrko/TFnEJlHFdRhazU7Y/jx5qc4cqsocfVrBg4So4gGe9lvxnbLIoev47WMpg+A==", + "version": "1.4.774", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.774.tgz", + "integrity": "sha512-132O1XCd7zcTkzS3FgkAzKmnBuNJjK8WjcTtNuoylj7MYbqw5eXehjQ5OK91g0zm7OTKIPeaAG4CPoRfD9M1Mg==", "dev": true }, "node_modules/emoji-regex": { @@ -7092,9 +7372,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", - "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.1.tgz", + "integrity": "sha512-4U5pNsuDl0EhuZpq46M5xPslstkviJuhrdobaRDBk2Jy2KO37FDAJl4lb2KlNabxT0m4MTK2UHNrsAcphE8nyw==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -7132,9 +7412,9 @@ "dev": true }, "node_modules/error-stack-parser-es": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-0.1.1.tgz", - "integrity": "sha512-g/9rfnvnagiNf+DRMHEVGuGuIBlCIMDFoTA616HaP2l9PlCjGjVhD98PNbVSJvmK4TttqT5mV5tInMhoFgi+aA==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-0.1.4.tgz", + "integrity": "sha512-l0uy0kAoo6toCgVOYaAayqtPa2a1L15efxUMEnQebKwLQX2X0OpS6wMMQdc4juJXmxd9i40DuaUHq+mjIya9TQ==", "dev": true, "funding": { "url": "https://github.com/sponsors/antfu" @@ -7282,9 +7562,9 @@ } }, "node_modules/eslint-plugin-vue": { - "version": "9.25.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.25.0.tgz", - "integrity": "sha512-tDWlx14bVe6Bs+Nnh3IGrD+hb11kf2nukfm6jLsmJIhmiRQ1SUaksvwY9U5MvPB0pcrg0QK0xapQkfITs3RKOA==", + "version": "9.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.26.0.tgz", + "integrity": "sha512-eTvlxXgd4ijE1cdur850G6KalZqk65k1JKoOI2d1kT3hr8sPD07j1q98FRFdNnpxBELGPWxZmInxeHGF/GxtqQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", @@ -8218,9 +8498,9 @@ } }, "node_modules/hast-util-raw": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.0.2.tgz", - "integrity": "sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.0.3.tgz", + "integrity": "sha512-ICWvVOF2fq4+7CMmtCPD5CM4QKjPbHpPotE6+8tDooV0ZuyJVUzHsrNX+O5NaRbieTf0F7FfeBOMAwi6Td0+yQ==", "dev": true, "dependencies": { "@types/hast": "^3.0.0", @@ -8317,9 +8597,9 @@ "dev": true }, "node_modules/hosted-git-info": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", - "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", "dev": true, "dependencies": { "lru-cache": "^10.0.1" @@ -8329,9 +8609,9 @@ } }, "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", "dev": true, "engines": { "node": "14 || >=16.14" @@ -8487,9 +8767,9 @@ } }, "node_modules/ignore-walk": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.4.tgz", - "integrity": "sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.5.tgz", + "integrity": "sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==", "dev": true, "dependencies": { "minimatch": "^9.0.0" @@ -8564,9 +8844,9 @@ } }, "node_modules/ioredis": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.4.0.tgz", - "integrity": "sha512-lGiiZyWFOskPu3pH4P8+uicHOZHpzYpgfKZFre68wLK6059zBo+KDTQpwxAVibBajKqpcrRJ5k+jl/uNHcCo3A==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.4.1.tgz", + "integrity": "sha512-2YZsvl7jopIa1gaePkeMtd9rAcSjOOjPtpcLlOeusyO+XH2SK5ZcT+UCrElPP+WVIInh2TzeI4XW9ENaSLVVHA==", "dev": true, "dependencies": { "@ioredis/commands": "^1.1.1", @@ -8601,9 +8881,9 @@ } }, "node_modules/iron-webcrypto": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.1.0.tgz", - "integrity": "sha512-5vgYsCakNlaQub1orZK5QmNYhwYtcllTkZBp5sfIaCqY93Cf6l+v2rtE+E4TMbcfjxDMCdrO8wmp7+ZvhDECLA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz", + "integrity": "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==", "dev": true, "funding": { "url": "https://github.com/sponsors/brc-dd" @@ -9062,9 +9342,9 @@ "dev": true }, "node_modules/json-parse-even-better-errors": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz", - "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", + "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -9304,6 +9584,12 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "dev": true + }, "node_modules/lodash._reinterpolate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", @@ -9388,24 +9674,21 @@ } }, "node_modules/magic-string": { - "version": "0.30.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.9.tgz", - "integrity": "sha512-S1+hd+dIrC8EZqKyT9DstTH/0Z+f76kmmvZnkfQVmOpDEF9iVgdYif3Q/pIWHmCoo59bQVGW0kVL3e2nl+9+Sw==", + "version": "0.30.10", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", "dev": true, "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" } }, "node_modules/magic-string-ast": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/magic-string-ast/-/magic-string-ast-0.3.0.tgz", - "integrity": "sha512-0shqecEPgdFpnI3AP90epXyxZy9g6CRZ+SZ7BcqFwYmtFEnZ1jpevcV5HoyVnlDS9gCnc1UIg3Rsvp3Ci7r8OA==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/magic-string-ast/-/magic-string-ast-0.5.0.tgz", + "integrity": "sha512-mxjxZ5zoR4+ybulZ7Z5qdZUTdAfiKJ1Il80kN/I4jWsHTTqNKZ9KsBa3Jepo+3U09I04qiyC2+7MZD8v4rJOoA==", "dev": true, "dependencies": { - "magic-string": "^0.30.2" + "magic-string": "^0.30.9" }, "engines": { "node": ">=16.14.0" @@ -9447,9 +9730,9 @@ } }, "node_modules/make-fetch-happen": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", - "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", + "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", "dev": true, "dependencies": { "@npmcli/agent": "^2.0.0", @@ -9461,6 +9744,7 @@ "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", + "proc-log": "^4.2.0", "promise-retry": "^2.0.1", "ssri": "^10.0.0" }, @@ -9762,9 +10046,9 @@ } }, "node_modules/micromark-core-commonmark": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.0.tgz", - "integrity": "sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz", + "integrity": "sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==", "dev": true, "funding": [ { @@ -10303,9 +10587,9 @@ } }, "node_modules/mime": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.1.tgz", - "integrity": "sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.3.tgz", + "integrity": "sha512-KgUb15Oorc0NEKPbvfa0wRU+PItIEZmiv+pyAO2i0oTIVTJhlzMclU7w4RXWQrSOVH5ax/p/CkIO7KI4OyFJTQ==", "dev": true, "funding": [ "https://github.com/sponsors/broofa" @@ -10345,9 +10629,9 @@ } }, "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz", + "integrity": "sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==", "dev": true, "engines": { "node": ">=16 || 14 >=14.17" @@ -10366,9 +10650,9 @@ } }, "node_modules/minipass-fetch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", - "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", + "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", "dev": true, "dependencies": { "minipass": "^7.0.3", @@ -10556,31 +10840,34 @@ } }, "node_modules/mkdist": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/mkdist/-/mkdist-1.4.0.tgz", - "integrity": "sha512-LzzdzWDx6cWWPd8saIoO+kT5jnbijfeDaE6jZfmCYEi3YL2aJSyF23/tCFee/mDuh/ek1UQeSYdLeSa6oesdiw==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/mkdist/-/mkdist-1.5.1.tgz", + "integrity": "sha512-lCu1spNiA52o7IaKgZnOjg28nNHwYqUDjBfXePXyUtzD7Xhe6rRTkGTalQ/ALfrZC/SrPw2+A/0qkeJ+fPDZtQ==", "dev": true, "dependencies": { - "autoprefixer": "^10.4.14", - "citty": "^0.1.5", - "cssnano": "^6.0.1", - "defu": "^6.1.3", - "esbuild": "^0.19.7", - "fs-extra": "^11.1.1", - "globby": "^13.2.2", + "autoprefixer": "^10.4.19", + "citty": "^0.1.6", + "cssnano": "^7.0.0", + "defu": "^6.1.4", + "esbuild": "^0.20.2", + "fs-extra": "^11.2.0", + "globby": "^14.0.1", "jiti": "^1.21.0", - "mlly": "^1.4.2", + "mlly": "^1.6.1", "mri": "^1.2.0", - "pathe": "^1.1.1", - "postcss": "^8.4.26", - "postcss-nested": "^6.0.1" + "pathe": "^1.1.2", + "pkg-types": "^1.1.0", + "postcss": "^8.4.38", + "postcss-nested": "^6.0.1", + "semver": "^7.6.0" }, "bin": { "mkdist": "dist/cli.cjs" }, "peerDependencies": { - "sass": "^1.69.5", - "typescript": ">=5.3.2" + "sass": "^1.75.0", + "typescript": ">=5.4.5", + "vue-tsc": "^1.8.27 || ^2.0.14" }, "peerDependenciesMeta": { "sass": { @@ -10588,456 +10875,521 @@ }, "typescript": { "optional": true + }, + "vue-tsc": { + "optional": true } } }, - "node_modules/mkdist/node_modules/@esbuild/aix-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", - "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", - "cpu": [ - "ppc64" - ], + "node_modules/mkdist/node_modules/cssnano": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-7.0.1.tgz", + "integrity": "sha512-917Mej/4SdI7b55atsli3sU4MOJ9XDoKgnlCtQtXYj8XUFcM3riTuYHyqBBnnskawW+zWwp0KxJzpEUodlpqUg==", "dev": true, - "optional": true, - "os": [ - "aix" - ], + "dependencies": { + "cssnano-preset-default": "^7.0.1", + "lilconfig": "^3.1.1" + }, "engines": { - "node": ">=12" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/mkdist/node_modules/@esbuild/android-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", - "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", - "cpu": [ - "arm" - ], + "node_modules/mkdist/node_modules/cssnano-preset-default": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-7.0.1.tgz", + "integrity": "sha512-Fumyr+uZMcjYQeuHssAZxn0cKj3cdQc5GcxkBcmEzISGB+UW9CLNlU4tBOJbJGcPukFDlicG32eFbrc8K9V5pw==", + "dev": true, + "dependencies": { + "browserslist": "^4.23.0", + "css-declaration-sorter": "^7.2.0", + "cssnano-utils": "^5.0.0", + "postcss-calc": "^10.0.0", + "postcss-colormin": "^7.0.0", + "postcss-convert-values": "^7.0.0", + "postcss-discard-comments": "^7.0.0", + "postcss-discard-duplicates": "^7.0.0", + "postcss-discard-empty": "^7.0.0", + "postcss-discard-overridden": "^7.0.0", + "postcss-merge-longhand": "^7.0.0", + "postcss-merge-rules": "^7.0.0", + "postcss-minify-font-values": "^7.0.0", + "postcss-minify-gradients": "^7.0.0", + "postcss-minify-params": "^7.0.0", + "postcss-minify-selectors": "^7.0.0", + "postcss-normalize-charset": "^7.0.0", + "postcss-normalize-display-values": "^7.0.0", + "postcss-normalize-positions": "^7.0.0", + "postcss-normalize-repeat-style": "^7.0.0", + "postcss-normalize-string": "^7.0.0", + "postcss-normalize-timing-functions": "^7.0.0", + "postcss-normalize-unicode": "^7.0.0", + "postcss-normalize-url": "^7.0.0", + "postcss-normalize-whitespace": "^7.0.0", + "postcss-ordered-values": "^7.0.0", + "postcss-reduce-initial": "^7.0.0", + "postcss-reduce-transforms": "^7.0.0", + "postcss-svgo": "^7.0.0", + "postcss-unique-selectors": "^7.0.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/mkdist/node_modules/cssnano-utils": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-5.0.0.tgz", + "integrity": "sha512-Uij0Xdxc24L6SirFr25MlwC2rCFX6scyUmuKpzI+JQ7cyqDEwD42fJ0xfB3yLfOnRDU5LKGgjQ9FA6LYh76GWQ==", "dev": true, - "optional": true, - "os": [ - "android" - ], "engines": { - "node": ">=12" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/mkdist/node_modules/@esbuild/android-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", - "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", - "cpu": [ - "arm64" - ], + "node_modules/mkdist/node_modules/postcss-calc": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-10.0.0.tgz", + "integrity": "sha512-OmjhudoNTP0QleZCwl1i6NeBwN+5MZbY5ersLZz69mjJiDVv/p57RjRuKDkHeDWr4T+S97wQfsqRTNoDHB2e3g==", "dev": true, - "optional": true, - "os": [ - "android" - ], + "dependencies": { + "postcss-selector-parser": "^6.0.16", + "postcss-value-parser": "^4.2.0" + }, "engines": { - "node": ">=12" + "node": "^18.12 || ^20.9 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.38" } }, - "node_modules/mkdist/node_modules/@esbuild/android-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", - "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", - "cpu": [ - "x64" - ], + "node_modules/mkdist/node_modules/postcss-colormin": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-7.0.0.tgz", + "integrity": "sha512-5CN6fqtsEtEtwf3mFV3B4UaZnlYljPpzmGeDB4yCK067PnAtfLe9uX2aFZaEwxHE7HopG5rUkW8gyHrNAesHEg==", "dev": true, - "optional": true, - "os": [ - "android" - ], + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-api": "^3.0.0", + "colord": "^2.9.3", + "postcss-value-parser": "^4.2.0" + }, "engines": { - "node": ">=12" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/mkdist/node_modules/@esbuild/darwin-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", - "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", - "cpu": [ - "arm64" - ], + "node_modules/mkdist/node_modules/postcss-convert-values": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-7.0.0.tgz", + "integrity": "sha512-bMuzDgXBbFbByPgj+/r6va8zNuIDUaIIbvAFgdO1t3zdgJZ77BZvu6dfWyd6gHEJnYzmeVr9ayUsAQL3/qLJ0w==", "dev": true, - "optional": true, - "os": [ - "darwin" - ], + "dependencies": { + "browserslist": "^4.23.0", + "postcss-value-parser": "^4.2.0" + }, "engines": { - "node": ">=12" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/mkdist/node_modules/@esbuild/darwin-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", - "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", - "cpu": [ - "x64" - ], + "node_modules/mkdist/node_modules/postcss-discard-comments": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-7.0.0.tgz", + "integrity": "sha512-xpSdzRqYmy4YIVmjfGyYXKaI1SRnK6CTr+4Zmvyof8ANwvgfZgGdVtmgAvzh59gJm808mJCWQC9tFN0KF5dEXA==", "dev": true, - "optional": true, - "os": [ - "darwin" - ], "engines": { - "node": ">=12" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/mkdist/node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", - "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", - "cpu": [ - "arm64" - ], + "node_modules/mkdist/node_modules/postcss-discard-duplicates": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-7.0.0.tgz", + "integrity": "sha512-bAnSuBop5LpAIUmmOSsuvtKAAKREB6BBIYStWUTGq8oG5q9fClDMMuY8i4UPI/cEcDx2TN+7PMnXYIId20UVDw==", "dev": true, - "optional": true, - "os": [ - "freebsd" - ], "engines": { - "node": ">=12" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/mkdist/node_modules/@esbuild/freebsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", - "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", - "cpu": [ - "x64" - ], + "node_modules/mkdist/node_modules/postcss-discard-empty": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-7.0.0.tgz", + "integrity": "sha512-e+QzoReTZ8IAwhnSdp/++7gBZ/F+nBq9y6PomfwORfP7q9nBpK5AMP64kOt0bA+lShBFbBDcgpJ3X4etHg4lzA==", "dev": true, - "optional": true, - "os": [ - "freebsd" - ], "engines": { - "node": ">=12" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/mkdist/node_modules/@esbuild/linux-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", - "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", - "cpu": [ - "arm" - ], + "node_modules/mkdist/node_modules/postcss-discard-overridden": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-7.0.0.tgz", + "integrity": "sha512-GmNAzx88u3k2+sBTZrJSDauR0ccpE24omTQCVmaTTZFz1du6AasspjaUPMJ2ud4RslZpoFKyf+6MSPETLojc6w==", "dev": true, - "optional": true, - "os": [ - "linux" - ], "engines": { - "node": ">=12" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/mkdist/node_modules/@esbuild/linux-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", - "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", - "cpu": [ - "arm64" - ], + "node_modules/mkdist/node_modules/postcss-merge-longhand": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-7.0.0.tgz", + "integrity": "sha512-0X8I4/9+G03X5/5NnrfopG/YEln2XU8heDh7YqBaiq2SeaKIG3n66ShZPjIolmVuLBQ0BEm3yS8o1mlCLHdW7A==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^7.0.0" + }, "engines": { - "node": ">=12" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/mkdist/node_modules/@esbuild/linux-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", - "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", - "cpu": [ - "ia32" - ], + "node_modules/mkdist/node_modules/postcss-merge-rules": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-7.0.0.tgz", + "integrity": "sha512-Zty3VlOsD6VSjBMu6PiHCVpLegtBT/qtZRVBcSeyEZ6q1iU5qTYT0WtEoLRV+YubZZguS5/ycfP+NRiKfjv6aw==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.16" + }, "engines": { - "node": ">=12" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/mkdist/node_modules/@esbuild/linux-loong64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", - "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", - "cpu": [ - "loong64" - ], + "node_modules/mkdist/node_modules/postcss-minify-font-values": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-7.0.0.tgz", + "integrity": "sha512-2ckkZtgT0zG8SMc5aoNwtm5234eUx1GGFJKf2b1bSp8UflqaeFzR50lid4PfqVI9NtGqJ2J4Y7fwvnP/u1cQog==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, "engines": { - "node": ">=12" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/mkdist/node_modules/@esbuild/linux-mips64el": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", - "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", - "cpu": [ - "mips64el" - ], + "node_modules/mkdist/node_modules/postcss-minify-gradients": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-7.0.0.tgz", + "integrity": "sha512-pdUIIdj/C93ryCHew0UgBnL2DtUS3hfFa5XtERrs4x+hmpMYGhbzo6l/Ir5de41O0GaKVpK1ZbDNXSY6GkXvtg==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "colord": "^2.9.3", + "cssnano-utils": "^5.0.0", + "postcss-value-parser": "^4.2.0" + }, "engines": { - "node": ">=12" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/mkdist/node_modules/@esbuild/linux-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", - "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", - "cpu": [ - "ppc64" - ], + "node_modules/mkdist/node_modules/postcss-minify-params": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-7.0.0.tgz", + "integrity": "sha512-XOJAuX8Q/9GT1sGxlUvaFEe2H9n50bniLZblXXsAT/BwSfFYvzSZeFG7uupwc0KbKpTnflnQ7aMwGzX6JUWliQ==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "browserslist": "^4.23.0", + "cssnano-utils": "^5.0.0", + "postcss-value-parser": "^4.2.0" + }, "engines": { - "node": ">=12" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/mkdist/node_modules/@esbuild/linux-riscv64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", - "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", - "cpu": [ - "riscv64" - ], + "node_modules/mkdist/node_modules/postcss-minify-selectors": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-7.0.0.tgz", + "integrity": "sha512-f00CExZhD6lNw2vTZbcnmfxVgaVKzUw6IRsIFX3JTT8GdsoABc1WnhhGwL1i8YPJ3sSWw39fv7XPtvLb+3Uitw==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "postcss-selector-parser": "^6.0.16" + }, "engines": { - "node": ">=12" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/mkdist/node_modules/@esbuild/linux-s390x": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", - "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", - "cpu": [ - "s390x" - ], + "node_modules/mkdist/node_modules/postcss-normalize-charset": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-7.0.0.tgz", + "integrity": "sha512-ABisNUXMeZeDNzCQxPxBCkXexvBrUHV+p7/BXOY+ulxkcjUZO0cp8ekGBwvIh2LbCwnWbyMPNJVtBSdyhM2zYQ==", "dev": true, - "optional": true, - "os": [ - "linux" - ], "engines": { - "node": ">=12" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/mkdist/node_modules/@esbuild/linux-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", - "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", - "cpu": [ - "x64" - ], + "node_modules/mkdist/node_modules/postcss-normalize-display-values": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-7.0.0.tgz", + "integrity": "sha512-lnFZzNPeDf5uGMPYgGOw7v0BfB45+irSRz9gHQStdkkhiM0gTfvWkWB5BMxpn0OqgOQuZG/mRlZyJxp0EImr2Q==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/mkdist/node_modules/postcss-normalize-positions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-7.0.0.tgz", + "integrity": "sha512-I0yt8wX529UKIGs2y/9Ybs2CelSvItfmvg/DBIjTnoUSrPxSV7Z0yZ8ShSVtKNaV/wAY+m7bgtyVQLhB00A1NQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/mkdist/node_modules/postcss-normalize-repeat-style": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-7.0.0.tgz", + "integrity": "sha512-o3uSGYH+2q30ieM3ppu9GTjSXIzOrRdCUn8UOMGNw7Af61bmurHTWI87hRybrP6xDHvOe5WlAj3XzN6vEO8jLw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/mkdist/node_modules/postcss-normalize-string": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-7.0.0.tgz", + "integrity": "sha512-w/qzL212DFVOpMy3UGyxrND+Kb0fvCiBBujiaONIihq7VvtC7bswjWgKQU/w4VcRyDD8gpfqUiBQ4DUOwEJ6Qg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/mkdist/node_modules/postcss-normalize-timing-functions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-7.0.0.tgz", + "integrity": "sha512-tNgw3YV0LYoRwg43N3lTe3AEWZ66W7Dh7lVEpJbHoKOuHc1sLrzMLMFjP8SNULHaykzsonUEDbKedv8C+7ej6g==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, "engines": { - "node": ">=12" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/mkdist/node_modules/@esbuild/netbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", - "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", - "cpu": [ - "x64" - ], + "node_modules/mkdist/node_modules/postcss-normalize-unicode": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-7.0.0.tgz", + "integrity": "sha512-OnKV52/VFFDAim4n0pdI+JAhsolLBdnCKxE6VV5lW5Q/JeVGFN8UM8ur6/A3EAMLsT1ZRm3fDHh/rBoBQpqi2w==", "dev": true, - "optional": true, - "os": [ - "netbsd" - ], + "dependencies": { + "browserslist": "^4.23.0", + "postcss-value-parser": "^4.2.0" + }, "engines": { - "node": ">=12" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/mkdist/node_modules/@esbuild/openbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", - "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", - "cpu": [ - "x64" - ], + "node_modules/mkdist/node_modules/postcss-normalize-url": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-7.0.0.tgz", + "integrity": "sha512-+d7+PpE+jyPX1hDQZYG+NaFD+Nd2ris6r8fPTBAjE8z/U41n/bib3vze8x7rKs5H1uEw5ppe9IojewouHk0klQ==", "dev": true, - "optional": true, - "os": [ - "openbsd" - ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, "engines": { - "node": ">=12" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/mkdist/node_modules/@esbuild/sunos-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", - "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", - "cpu": [ - "x64" - ], + "node_modules/mkdist/node_modules/postcss-normalize-whitespace": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-7.0.0.tgz", + "integrity": "sha512-37/toN4wwZErqohedXYqWgvcHUGlT8O/m2jVkAfAe9Bd4MzRqlBmXrJRePH0e9Wgnz2X7KymTgTOaaFizQe3AQ==", "dev": true, - "optional": true, - "os": [ - "sunos" - ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, "engines": { - "node": ">=12" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/mkdist/node_modules/@esbuild/win32-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", - "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", - "cpu": [ - "arm64" - ], + "node_modules/mkdist/node_modules/postcss-ordered-values": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-7.0.0.tgz", + "integrity": "sha512-KROvC63A8UQW1eYDljQe1dtwc1E/M+mMwDT6z7khV/weHYLWTghaLRLunU7x1xw85lWFwVZOAGakxekYvKV+0w==", "dev": true, - "optional": true, - "os": [ - "win32" - ], + "dependencies": { + "cssnano-utils": "^5.0.0", + "postcss-value-parser": "^4.2.0" + }, "engines": { - "node": ">=12" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/mkdist/node_modules/@esbuild/win32-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", - "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", - "cpu": [ - "ia32" - ], + "node_modules/mkdist/node_modules/postcss-reduce-initial": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-7.0.0.tgz", + "integrity": "sha512-iqGgmBxY9LrblZ0BKLjmrA1mC/cf9A/wYCCqSmD6tMi+xAyVl0+DfixZIHSVDMbCPRPjNmVF0DFGth/IDGelFQ==", "dev": true, - "optional": true, - "os": [ - "win32" - ], + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-api": "^3.0.0" + }, "engines": { - "node": ">=12" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/mkdist/node_modules/@esbuild/win32-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", - "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", - "cpu": [ - "x64" - ], + "node_modules/mkdist/node_modules/postcss-reduce-transforms": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-7.0.0.tgz", + "integrity": "sha512-pnt1HKKZ07/idH8cpATX/ujMbtOGhUfE+m8gbqwJE05aTaNw8gbo34a2e3if0xc0dlu75sUOiqvwCGY3fzOHew==", "dev": true, - "optional": true, - "os": [ - "win32" - ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, "engines": { - "node": ">=12" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/mkdist/node_modules/esbuild": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", - "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "node_modules/mkdist/node_modules/postcss-svgo": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-7.0.0.tgz", + "integrity": "sha512-Xj5DRdvA97yRy3wjbCH2NKXtDUwEnph6EHr5ZXszsBVKCNrKXYBjzAXqav7/Afz5WwJ/1peZoTguCEJIg7ytmA==", "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^3.2.0" }, "engines": { - "node": ">=12" + "node": "^18.12.0 || ^20.9.0 || >= 18" }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.19.12", - "@esbuild/android-arm": "0.19.12", - "@esbuild/android-arm64": "0.19.12", - "@esbuild/android-x64": "0.19.12", - "@esbuild/darwin-arm64": "0.19.12", - "@esbuild/darwin-x64": "0.19.12", - "@esbuild/freebsd-arm64": "0.19.12", - "@esbuild/freebsd-x64": "0.19.12", - "@esbuild/linux-arm": "0.19.12", - "@esbuild/linux-arm64": "0.19.12", - "@esbuild/linux-ia32": "0.19.12", - "@esbuild/linux-loong64": "0.19.12", - "@esbuild/linux-mips64el": "0.19.12", - "@esbuild/linux-ppc64": "0.19.12", - "@esbuild/linux-riscv64": "0.19.12", - "@esbuild/linux-s390x": "0.19.12", - "@esbuild/linux-x64": "0.19.12", - "@esbuild/netbsd-x64": "0.19.12", - "@esbuild/openbsd-x64": "0.19.12", - "@esbuild/sunos-x64": "0.19.12", - "@esbuild/win32-arm64": "0.19.12", - "@esbuild/win32-ia32": "0.19.12", - "@esbuild/win32-x64": "0.19.12" - } - }, - "node_modules/mkdist/node_modules/globby": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/mkdist/node_modules/postcss-unique-selectors": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-7.0.0.tgz", + "integrity": "sha512-NYFqcft7vVQMZlQPsMdMPy+qU/zDpy95Malpw4GeA9ZZjM6dVXDshXtDmLc0m4WCD6XeZCJqjTfPT1USsdt+rA==", "dev": true, "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", - "ignore": "^5.2.4", - "merge2": "^1.4.1", - "slash": "^4.0.0" + "postcss-selector-parser": "^6.0.16" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/mkdist/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "node_modules/mkdist/node_modules/stylehacks": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-7.0.0.tgz", + "integrity": "sha512-47Nw4pQ6QJb4CA6dzF2m9810sjQik4dfk4UwAm5wlwhrW3syzZKF8AR4/cfO3Cr6lsFgAoznQq0Wg57qhjTA2A==", "dev": true, + "dependencies": { + "browserslist": "^4.23.0", + "postcss-selector-parser": "^6.0.16" + }, "engines": { - "node": ">=12" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "postcss": "^8.4.31" } }, "node_modules/mlly": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.6.1.tgz", - "integrity": "sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.0.tgz", + "integrity": "sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==", "dev": true, "dependencies": { "acorn": "^8.11.3", "pathe": "^1.1.2", - "pkg-types": "^1.0.3", - "ufo": "^1.3.2" + "pkg-types": "^1.1.0", + "ufo": "^1.5.3" } }, "node_modules/mri": { @@ -11311,9 +11663,9 @@ } }, "node_modules/node-gyp-build": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", - "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.1.tgz", + "integrity": "sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==", "dev": true, "bin": { "node-gyp-build": "bin.js", @@ -11331,22 +11683,22 @@ } }, "node_modules/node-gyp/node_modules/glob": { - "version": "10.3.12", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", - "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "version": "10.3.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", + "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.3.6", "minimatch": "^9.0.1", "minipass": "^7.0.4", - "path-scurry": "^1.10.2" + "path-scurry": "^1.11.0" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -11362,9 +11714,9 @@ } }, "node_modules/node-gyp/node_modules/nopt": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", - "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", "dev": true, "dependencies": { "abbrev": "^2.0.0" @@ -11422,9 +11774,9 @@ } }, "node_modules/normalize-package-data": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", - "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.1.tgz", + "integrity": "sha512-6rvCfeRW+OEZagAB4lMLSNuTNYZWLVtKccK79VSTf//yTY5VOCgcpH80O+bZK8Neps7pUnd5G+QlMg1yV/2iZQ==", "dev": true, "dependencies": { "hosted-git-info": "^7.0.0", @@ -11455,9 +11807,9 @@ } }, "node_modules/npm-bundled": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.0.tgz", - "integrity": "sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.1.tgz", + "integrity": "sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==", "dev": true, "dependencies": { "npm-normalize-package-bin": "^3.0.0" @@ -11515,9 +11867,9 @@ } }, "node_modules/npm-pick-manifest": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz", - "integrity": "sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.1.tgz", + "integrity": "sha512-Udm1f0l2nXb3wxDpKjfohwgdFUSV50UVwzEIpDXVsbDMXVIEF81a/i0UhuQbhrPMMmdiq3+YMFLFIRVLs3hxQw==", "dev": true, "dependencies": { "npm-install-checks": "^6.0.0", @@ -11530,12 +11882,12 @@ } }, "node_modules/npm-registry-fetch": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.2.1.tgz", - "integrity": "sha512-8l+7jxhim55S85fjiDGJ1rZXBWGtRLi1OSb4Z3BPLObPuIaeKRlPRiYMSHU4/81ck3t71Z+UwDDl47gcpmfQQA==", + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-17.0.1.tgz", + "integrity": "sha512-fLu9MTdZTlJAHUek/VLklE6EpIiP3VZpTiuN7OOMCt2Sd67NCpSEetMaxHHEZiZxllp8ZLsUpvbEszqTFEc+wA==", "dev": true, "dependencies": { - "@npmcli/redact": "^1.1.0", + "@npmcli/redact": "^2.0.0", "make-fetch-happen": "^13.0.0", "minipass": "^7.0.2", "minipass-fetch": "^3.0.0", @@ -11701,9 +12053,9 @@ } }, "node_modules/nuxt-component-meta": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/nuxt-component-meta/-/nuxt-component-meta-0.6.3.tgz", - "integrity": "sha512-GdqnSMC1vqabry7WSj3GWA2LZ1gBiWeS2lj943c9TjkL9SN/rABEFXVZA6RO4sOTKF1qV947UGi27PdRd7u+tA==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/nuxt-component-meta/-/nuxt-component-meta-0.6.4.tgz", + "integrity": "sha512-5KRxI2y4fzCG9HaDdaiiTZDBjBATje+iVXJc7oG4A9NUrlQxgTSzovjqWF2rjg/hJlv63h5AAy/bUgAHK3pypw==", "dev": true, "dependencies": { "@nuxt/kit": "^3.9.1", @@ -12015,17 +12367,17 @@ } }, "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" @@ -12077,32 +12429,31 @@ } }, "node_modules/pacote": { - "version": "17.0.7", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.7.tgz", - "integrity": "sha512-sgvnoUMlkv9xHwDUKjKQFXVyUi8dtJGKp3vg6sYy+TxbDic5RjZCHF3ygv0EJgNRZ2GfRONjlKPUfokJ9lDpwQ==", + "version": "18.0.6", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-18.0.6.tgz", + "integrity": "sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==", "dev": true, "dependencies": { "@npmcli/git": "^5.0.0", "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/package-json": "^5.1.0", "@npmcli/promise-spawn": "^7.0.0", - "@npmcli/run-script": "^7.0.0", + "@npmcli/run-script": "^8.0.0", "cacache": "^18.0.0", "fs-minipass": "^3.0.0", "minipass": "^7.0.2", "npm-package-arg": "^11.0.0", "npm-packlist": "^8.0.0", "npm-pick-manifest": "^9.0.0", - "npm-registry-fetch": "^16.0.0", + "npm-registry-fetch": "^17.0.0", "proc-log": "^4.0.0", "promise-retry": "^2.0.1", - "read-package-json": "^7.0.0", - "read-package-json-fast": "^3.0.0", "sigstore": "^2.2.0", "ssri": "^10.0.0", "tar": "^6.1.11" }, "bin": { - "pacote": "lib/bin.js" + "pacote": "bin/index.js" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -12286,25 +12637,25 @@ "dev": true }, "node_modules/path-scurry": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", - "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", "dev": true, "engines": { "node": "14 || >=16.14" @@ -12335,9 +12686,9 @@ "dev": true }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", "dev": true }, "node_modules/picomatch": { @@ -12408,14 +12759,14 @@ } }, "node_modules/pkg-types": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", - "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.1.tgz", + "integrity": "sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==", "dev": true, "dependencies": { - "jsonc-parser": "^3.2.0", - "mlly": "^1.2.0", - "pathe": "^1.1.0" + "confbox": "^0.1.7", + "mlly": "^1.7.0", + "pathe": "^1.1.2" } }, "node_modules/plausible-tracker": { @@ -13109,56 +13460,6 @@ "destr": "^2.0.3" } }, - "node_modules/read-package-json": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.0.tgz", - "integrity": "sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==", - "dev": true, - "dependencies": { - "glob": "^10.2.2", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/read-package-json-fast": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", - "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", - "dev": true, - "dependencies": { - "json-parse-even-better-errors": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-package-json/node_modules/glob": { - "version": "10.3.12", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", - "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.10.2" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/readable-stream": { "version": "4.5.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", @@ -13359,9 +13660,9 @@ } }, "node_modules/remark-mdc": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/remark-mdc/-/remark-mdc-3.2.0.tgz", - "integrity": "sha512-zRi5frIC3O/bcxXgUPHfQ3lyRBKPtokrGnsOPvNrt9bqp4EfjPtduzcWgO4R1WeHYUnvl0zeBStvGsFkJIZf+Q==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/remark-mdc/-/remark-mdc-3.2.1.tgz", + "integrity": "sha512-MLNqQE7ryygOA3TtH4hKmIvmjFAqTMzCs2zrMzXs4MWJXYM2vbtdwR2NfgcN3vxIp5Pllgq3oLGuKgQSs8J19w==", "dev": true, "dependencies": { "@types/mdast": "^4.0.3", @@ -13550,9 +13851,9 @@ } }, "node_modules/rollup": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.14.3.tgz", - "integrity": "sha512-ag5tTQKYsj1bhrFC9+OEWqb5O6VYgtQDO9hPDBMmIbePwhfSr+ExlcU741t8Dhw5DkPCQf6noz0jb36D6W9/hw==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.17.2.tgz", + "integrity": "sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -13565,22 +13866,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.14.3", - "@rollup/rollup-android-arm64": "4.14.3", - "@rollup/rollup-darwin-arm64": "4.14.3", - "@rollup/rollup-darwin-x64": "4.14.3", - "@rollup/rollup-linux-arm-gnueabihf": "4.14.3", - "@rollup/rollup-linux-arm-musleabihf": "4.14.3", - "@rollup/rollup-linux-arm64-gnu": "4.14.3", - "@rollup/rollup-linux-arm64-musl": "4.14.3", - "@rollup/rollup-linux-powerpc64le-gnu": "4.14.3", - "@rollup/rollup-linux-riscv64-gnu": "4.14.3", - "@rollup/rollup-linux-s390x-gnu": "4.14.3", - "@rollup/rollup-linux-x64-gnu": "4.14.3", - "@rollup/rollup-linux-x64-musl": "4.14.3", - "@rollup/rollup-win32-arm64-msvc": "4.14.3", - "@rollup/rollup-win32-ia32-msvc": "4.14.3", - "@rollup/rollup-win32-x64-msvc": "4.14.3", + "@rollup/rollup-android-arm-eabi": "4.17.2", + "@rollup/rollup-android-arm64": "4.17.2", + "@rollup/rollup-darwin-arm64": "4.17.2", + "@rollup/rollup-darwin-x64": "4.17.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.17.2", + "@rollup/rollup-linux-arm-musleabihf": "4.17.2", + "@rollup/rollup-linux-arm64-gnu": "4.17.2", + "@rollup/rollup-linux-arm64-musl": "4.17.2", + "@rollup/rollup-linux-powerpc64le-gnu": "4.17.2", + "@rollup/rollup-linux-riscv64-gnu": "4.17.2", + "@rollup/rollup-linux-s390x-gnu": "4.17.2", + "@rollup/rollup-linux-x64-gnu": "4.17.2", + "@rollup/rollup-linux-x64-musl": "4.17.2", + "@rollup/rollup-win32-arm64-msvc": "4.17.2", + "@rollup/rollup-win32-ia32-msvc": "4.17.2", + "@rollup/rollup-win32-x64-msvc": "4.17.2", "fsevents": "~2.3.2" } }, @@ -13688,13 +13989,10 @@ "dev": true }, "node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -13702,24 +14000,6 @@ "node": ">=10" } }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/send": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", @@ -13881,12 +14161,12 @@ } }, "node_modules/shiki": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.3.0.tgz", - "integrity": "sha512-9aNdQy/etMXctnPzsje1h1XIGm9YfRcSksKOGqZWXA/qP9G18/8fpz5Bjpma8bOgz3tqIpjERAd6/lLjFyzoww==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.5.2.tgz", + "integrity": "sha512-fpPbuSaatinmdGijE7VYUD3hxLozR3ZZ+iAx8Iy2X6REmJGyF5hQl94SgmiUNTospq346nXUVZx0035dyGvIVw==", "dev": true, "dependencies": { - "@shikijs/core": "1.3.0" + "@shikijs/core": "1.5.2" } }, "node_modules/signal-exit": { @@ -13896,17 +14176,17 @@ "dev": true }, "node_modules/sigstore": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.3.0.tgz", - "integrity": "sha512-q+o8L2ebiWD1AxD17eglf1pFrl9jtW7FHa0ygqY6EKvibK8JHyq9Z26v9MZXeDiw+RbfOJ9j2v70M10Hd6E06A==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.3.1.tgz", + "integrity": "sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==", "dev": true, "dependencies": { - "@sigstore/bundle": "^2.3.1", + "@sigstore/bundle": "^2.3.2", "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.1", - "@sigstore/sign": "^2.3.0", - "@sigstore/tuf": "^2.3.1", - "@sigstore/verify": "^1.2.0" + "@sigstore/protobuf-specs": "^0.3.2", + "@sigstore/sign": "^2.3.2", + "@sigstore/tuf": "^2.3.4", + "@sigstore/verify": "^1.2.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -14169,9 +14449,9 @@ "dev": true }, "node_modules/ssri": { - "version": "10.0.5", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", - "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", + "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", "dev": true, "dependencies": { "minipass": "^7.0.3" @@ -14368,22 +14648,22 @@ } }, "node_modules/style-dictionary-esm/node_modules/glob": { - "version": "10.3.12", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", - "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "version": "10.3.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", + "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.3.6", "minimatch": "^9.0.1", "minipass": "^7.0.4", - "path-scurry": "^1.10.2" + "path-scurry": "^1.11.0" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -14436,9 +14716,9 @@ "dev": true }, "node_modules/svgo": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.2.0.tgz", - "integrity": "sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", "dev": true, "dependencies": { "@trysound/sax": "0.2.0", @@ -14564,9 +14844,9 @@ "dev": true }, "node_modules/terser": { - "version": "5.30.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.30.3.tgz", - "integrity": "sha512-STdUgOUx8rLbMGO9IOwHLpCqolkDITFFQSMYYwKE1N2lY6MVSaeoi10z/EhWxRc6ybqoVmKSkhKYH/XUpl7vSA==", + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.0.tgz", + "integrity": "sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -14689,14 +14969,14 @@ "dev": true }, "node_modules/tuf-js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.0.tgz", - "integrity": "sha512-ZSDngmP1z6zw+FIkIBjvOp/II/mIub/O7Pp12j1WNsiCpg5R5wAc//i555bBQsE44O94btLt0xM/Zr2LQjwdCg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.1.tgz", + "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==", "dev": true, "dependencies": { - "@tufjs/models": "2.0.0", + "@tufjs/models": "2.0.1", "debug": "^4.3.4", - "make-fetch-happen": "^13.0.0" + "make-fetch-happen": "^13.0.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -15380,14 +15660,14 @@ } }, "node_modules/unhead": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/unhead/-/unhead-1.9.5.tgz", - "integrity": "sha512-eBKDPO9IMltRze9mHNYIVdosjlqoNFbwJRbykGT/7z/S5uYR2QRCXmIhEsJT4crffy6KQyB5ywLPqjRPx0s57A==", + "version": "1.9.10", + "resolved": "https://registry.npmjs.org/unhead/-/unhead-1.9.10.tgz", + "integrity": "sha512-Y3w+j1x1YFig2YuE+W2sER+SciRR7MQktYRHNqvZJ0iUNCCJTS8Z/SdSMUEeuFV28daXeASlR3fy7Ry3O2indg==", "dev": true, "dependencies": { - "@unhead/dom": "1.9.5", - "@unhead/schema": "1.9.5", - "@unhead/shared": "1.9.5", + "@unhead/dom": "1.9.10", + "@unhead/schema": "1.9.10", + "@unhead/shared": "1.9.10", "hookable": "^5.5.3" }, "funding": { @@ -15603,32 +15883,32 @@ } }, "node_modules/unocss": { - "version": "0.59.3", - "resolved": "https://registry.npmjs.org/unocss/-/unocss-0.59.3.tgz", - "integrity": "sha512-4Sos0FjDX5Ck/cV1wrTase0r2V/LI/bIncguisIGq9v7/akghsGEqU8LlxZNqoCug/vpcQICmzt/zclJVUT+GQ==", + "version": "0.60.2", + "resolved": "https://registry.npmjs.org/unocss/-/unocss-0.60.2.tgz", + "integrity": "sha512-Cj1IXS+VZuiZtQxHn/ffAAN422gUusUEgF1RS83WyNB0kMsJyIxb9KK9N425QAvQvsKpL5GrZs5KoNtU3zGMog==", "dev": true, "peer": true, "dependencies": { - "@unocss/astro": "0.59.3", - "@unocss/cli": "0.59.3", - "@unocss/core": "0.59.3", - "@unocss/extractor-arbitrary-variants": "0.59.3", - "@unocss/postcss": "0.59.3", - "@unocss/preset-attributify": "0.59.3", - "@unocss/preset-icons": "0.59.3", - "@unocss/preset-mini": "0.59.3", - "@unocss/preset-tagify": "0.59.3", - "@unocss/preset-typography": "0.59.3", - "@unocss/preset-uno": "0.59.3", - "@unocss/preset-web-fonts": "0.59.3", - "@unocss/preset-wind": "0.59.3", - "@unocss/reset": "0.59.3", - "@unocss/transformer-attributify-jsx": "0.59.3", - "@unocss/transformer-attributify-jsx-babel": "0.59.3", - "@unocss/transformer-compile-class": "0.59.3", - "@unocss/transformer-directives": "0.59.3", - "@unocss/transformer-variant-group": "0.59.3", - "@unocss/vite": "0.59.3" + "@unocss/astro": "0.60.2", + "@unocss/cli": "0.60.2", + "@unocss/core": "0.60.2", + "@unocss/extractor-arbitrary-variants": "0.60.2", + "@unocss/postcss": "0.60.2", + "@unocss/preset-attributify": "0.60.2", + "@unocss/preset-icons": "0.60.2", + "@unocss/preset-mini": "0.60.2", + "@unocss/preset-tagify": "0.60.2", + "@unocss/preset-typography": "0.60.2", + "@unocss/preset-uno": "0.60.2", + "@unocss/preset-web-fonts": "0.60.2", + "@unocss/preset-wind": "0.60.2", + "@unocss/reset": "0.60.2", + "@unocss/transformer-attributify-jsx": "0.60.2", + "@unocss/transformer-attributify-jsx-babel": "0.60.2", + "@unocss/transformer-compile-class": "0.60.2", + "@unocss/transformer-directives": "0.60.2", + "@unocss/transformer-variant-group": "0.60.2", + "@unocss/vite": "0.60.2" }, "engines": { "node": ">=14" @@ -15637,7 +15917,7 @@ "url": "https://github.com/sponsors/antfu" }, "peerDependencies": { - "@unocss/webpack": "0.59.3", + "@unocss/webpack": "0.60.2", "vite": "^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0" }, "peerDependenciesMeta": { @@ -15780,9 +16060,9 @@ } }, "node_modules/unstorage/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", "dev": true, "engines": { "node": "14 || >=16.14" @@ -15835,9 +16115,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", "dev": true, "funding": [ { @@ -15854,8 +16134,8 @@ } ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.1.2", + "picocolors": "^1.0.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -15933,13 +16213,10 @@ } }, "node_modules/validate-npm-package-name": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", - "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", + "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", "dev": true, - "dependencies": { - "builtins": "^5.0.0" - }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -15988,9 +16265,9 @@ } }, "node_modules/vite": { - "version": "5.2.9", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.9.tgz", - "integrity": "sha512-uOQWfuZBlc6Y3W/DTuQ1Sr+oIXWvqljLvS881SVmAj00d5RdgShLcuXWxseWPd4HXwiYBFW/vXHfKFeqj9uQnw==", + "version": "5.2.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.11.tgz", + "integrity": "sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==", "dev": true, "dependencies": { "esbuild": "^0.20.1", @@ -16055,9 +16332,9 @@ } }, "node_modules/vite-node": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.5.0.tgz", - "integrity": "sha512-tV8h6gMj6vPzVCa7l+VGq9lwoJjW8Y79vst8QZZGiuRAfijU+EEWuc0kFpmndQrWhMMhet1jdSF+40KSZUqIIw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.6.0.tgz", + "integrity": "sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==", "dev": true, "dependencies": { "cac": "^6.7.14", @@ -16161,9 +16438,9 @@ } }, "node_modules/vite-plugin-inspect": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/vite-plugin-inspect/-/vite-plugin-inspect-0.8.3.tgz", - "integrity": "sha512-SBVzOIdP/kwe6hjkt7LSW4D0+REqqe58AumcnCfRNw4Kt3mbS9pEBkch+nupu2PBxv2tQi69EQHQ1ZA1vgB/Og==", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/vite-plugin-inspect/-/vite-plugin-inspect-0.8.4.tgz", + "integrity": "sha512-G0N3rjfw+AiiwnGw50KlObIHYWfulVwaCBUBLh2xTW9G1eM9ocE5olXkEYUbwyTmX+azM8duubi+9w5awdCz+g==", "dev": true, "dependencies": { "@antfu/utils": "^0.7.7", @@ -16171,7 +16448,7 @@ "debug": "^4.3.4", "error-stack-parser-es": "^0.1.1", "fs-extra": "^11.2.0", - "open": "^10.0.3", + "open": "^10.1.0", "perfect-debounce": "^1.0.0", "picocolors": "^1.0.0", "sirv": "^2.0.4" @@ -16222,9 +16499,9 @@ } }, "node_modules/vite-plugin-vue-inspector": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vite-plugin-vue-inspector/-/vite-plugin-vue-inspector-4.0.2.tgz", - "integrity": "sha512-KPvLEuafPG13T7JJuQbSm5PwSxKFnVS965+MP1we2xGw9BPkkc/+LPix5MMWenpKWqtjr0ws8THrR+KuoDC8hg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/vite-plugin-vue-inspector/-/vite-plugin-vue-inspector-5.1.0.tgz", + "integrity": "sha512-yIw9dvBz9nQW7DPfbJtUVW6JTnt67hqTPRnTwT2CZWMqDvISyQHRjgKl32nlMh1DRH+92533Sv6t59pWMLUCWA==", "dev": true, "dependencies": { "@babel/core": "^7.23.0", @@ -16327,16 +16604,16 @@ "dev": true }, "node_modules/vue": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.23.tgz", - "integrity": "sha512-X1y6yyGJ28LMUBJ0k/qIeKHstGd+BlWQEOT40x3auJFTmpIhpbKLgN7EFsqalnJXq1Km5ybDEsp6BhuWKciUDg==", + "version": "3.4.27", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.27.tgz", + "integrity": "sha512-8s/56uK6r01r1icG/aEOHqyMVxd1bkYcSe9j8HcKtr/xTOFWvnzIVTehNW+5Yt89f+DLBe4A569pnZLS5HzAMA==", "dev": true, "dependencies": { - "@vue/compiler-dom": "3.4.23", - "@vue/compiler-sfc": "3.4.23", - "@vue/runtime-dom": "3.4.23", - "@vue/server-renderer": "3.4.23", - "@vue/shared": "3.4.23" + "@vue/compiler-dom": "3.4.27", + "@vue/compiler-sfc": "3.4.27", + "@vue/runtime-dom": "3.4.27", + "@vue/server-renderer": "3.4.27", + "@vue/shared": "3.4.27" }, "peerDependencies": { "typescript": "*" @@ -16348,12 +16625,12 @@ } }, "node_modules/vue-bundle-renderer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/vue-bundle-renderer/-/vue-bundle-renderer-2.0.0.tgz", - "integrity": "sha512-oYATTQyh8XVkUWe2kaKxhxKVuuzK2Qcehe+yr3bGiaQAhK3ry2kYE4FWOfL+KO3hVFwCdLmzDQTzYhTi9C+R2A==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vue-bundle-renderer/-/vue-bundle-renderer-2.1.0.tgz", + "integrity": "sha512-uZ+5ZJdZ/b43gMblWtcpikY6spJd0nERaM/1RtgioXNfWFbjKlUwrS8HlrddN6T2xtptmOouWclxLUkpgcVX3Q==", "dev": true, "dependencies": { - "ufo": "^1.2.0" + "ufo": "^1.5.3" } }, "node_modules/vue-component-meta": { @@ -16431,9 +16708,9 @@ } }, "node_modules/vue-router": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.3.0.tgz", - "integrity": "sha512-dqUcs8tUeG+ssgWhcPbjHvazML16Oga5w34uCUmsk7i0BcnskoLGwjpa15fqMr2Fa5JgVBrdL2MEgqz6XZ/6IQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.3.2.tgz", + "integrity": "sha512-hKQJ1vDAZ5LVkKEnHhmm1f9pMiWIBNGF5AwU67PdH7TyXCj/a4hTccuUuYCAMgJK6rO/NVYtQIEN3yL8CECa7Q==", "dev": true, "dependencies": { "@vue/devtools-api": "^6.5.1" @@ -16559,6 +16836,15 @@ "string-width": "^1.0.2 || 2 || 3 || 4" } }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -16601,9 +16887,9 @@ "dev": true }, "node_modules/ws": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", - "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", + "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", "dev": true, "engines": { "node": ">=10.0.0" @@ -16655,9 +16941,9 @@ "dev": true }, "node_modules/yaml": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", - "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.2.tgz", + "integrity": "sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==", "dev": true, "bin": { "yaml": "bin.mjs" diff --git a/docs/package.json b/docs/package.json index 8a8399ba..911b5165 100755 --- a/docs/package.json +++ b/docs/package.json @@ -10,12 +10,12 @@ "lint": "eslint ." }, "devDependencies": { - "@nuxt-themes/docus": "latest", - "@nuxt/devtools": "^1.0.8", + "@nuxt-themes/docus": "^1.15.0", + "@nuxt/devtools": "^1.3.1", "@nuxt/eslint-config": "^0.2.0", "@nuxtjs/plausible": "^0.2.4", - "@types/node": "^20.11.24", + "@types/node": "^20.12.12", "eslint": "^8.57.0", - "nuxt": "^3.10.3" + "nuxt": "^3.11.2" } } diff --git a/gen/go/v1/config.pb.go b/gen/go/v1/config.pb.go index 1c777f4d..dcc24593 100644 --- a/gen/go/v1/config.pb.go +++ b/gen/go/v1/config.pb.go @@ -76,7 +76,7 @@ func (x Hook_Condition) Number() protoreflect.EnumNumber { // Deprecated: Use Hook_Condition.Descriptor instead. func (Hook_Condition) EnumDescriptor() ([]byte, []int) { - return file_v1_config_proto_rawDescGZIP(), []int{6, 0} + return file_v1_config_proto_rawDescGZIP(), []int{7, 0} } type Hook_OnError int32 @@ -125,7 +125,7 @@ func (x Hook_OnError) Number() protoreflect.EnumNumber { // Deprecated: Use Hook_OnError.Descriptor instead. func (Hook_OnError) EnumDescriptor() ([]byte, []int) { - return file_v1_config_proto_rawDescGZIP(), []int{6, 1} + return file_v1_config_proto_rawDescGZIP(), []int{7, 1} } type Hook_Webhook_Method int32 @@ -174,7 +174,7 @@ func (x Hook_Webhook_Method) Number() protoreflect.EnumNumber { // Deprecated: Use Hook_Webhook_Method.Descriptor instead. func (Hook_Webhook_Method) EnumDescriptor() ([]byte, []int) { - return file_v1_config_proto_rawDescGZIP(), []int{6, 1, 0} + return file_v1_config_proto_rawDescGZIP(), []int{7, 1, 0} } type HubConfig struct { @@ -775,6 +775,73 @@ func (x *PrunePolicy) GetMaxUnusedBytes() int32 { return 0 } +type CheckPolicy struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Policy: + // + // *CheckPolicy_MaxFrequencyDays + Policy isCheckPolicy_Policy `protobuf_oneof:"policy"` +} + +func (x *CheckPolicy) Reset() { + *x = CheckPolicy{} + if protoimpl.UnsafeEnabled { + mi := &file_v1_config_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CheckPolicy) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CheckPolicy) ProtoMessage() {} + +func (x *CheckPolicy) ProtoReflect() protoreflect.Message { + mi := &file_v1_config_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CheckPolicy.ProtoReflect.Descriptor instead. +func (*CheckPolicy) Descriptor() ([]byte, []int) { + return file_v1_config_proto_rawDescGZIP(), []int{6} +} + +func (m *CheckPolicy) GetPolicy() isCheckPolicy_Policy { + if m != nil { + return m.Policy + } + return nil +} + +func (x *CheckPolicy) GetMaxFrequencyDays() int32 { + if x, ok := x.GetPolicy().(*CheckPolicy_MaxFrequencyDays); ok { + return x.MaxFrequencyDays + } + return 0 +} + +type isCheckPolicy_Policy interface { + isCheckPolicy_Policy() +} + +type CheckPolicy_MaxFrequencyDays struct { + MaxFrequencyDays int32 `protobuf:"varint,1,opt,name=max_frequency_days,json=maxFrequencyDays,proto3,oneof"` +} + +func (*CheckPolicy_MaxFrequencyDays) isCheckPolicy_Policy() {} + type Hook struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -796,7 +863,7 @@ type Hook struct { func (x *Hook) Reset() { *x = Hook{} if protoimpl.UnsafeEnabled { - mi := &file_v1_config_proto_msgTypes[6] + mi := &file_v1_config_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -809,7 +876,7 @@ func (x *Hook) String() string { func (*Hook) ProtoMessage() {} func (x *Hook) ProtoReflect() protoreflect.Message { - mi := &file_v1_config_proto_msgTypes[6] + mi := &file_v1_config_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -822,7 +889,7 @@ func (x *Hook) ProtoReflect() protoreflect.Message { // Deprecated: Use Hook.ProtoReflect.Descriptor instead. func (*Hook) Descriptor() ([]byte, []int) { - return file_v1_config_proto_rawDescGZIP(), []int{6} + return file_v1_config_proto_rawDescGZIP(), []int{7} } func (x *Hook) GetConditions() []Hook_Condition { @@ -940,7 +1007,7 @@ type Auth struct { func (x *Auth) Reset() { *x = Auth{} if protoimpl.UnsafeEnabled { - mi := &file_v1_config_proto_msgTypes[7] + mi := &file_v1_config_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -953,7 +1020,7 @@ func (x *Auth) String() string { func (*Auth) ProtoMessage() {} func (x *Auth) ProtoReflect() protoreflect.Message { - mi := &file_v1_config_proto_msgTypes[7] + mi := &file_v1_config_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -966,7 +1033,7 @@ func (x *Auth) ProtoReflect() protoreflect.Message { // Deprecated: Use Auth.ProtoReflect.Descriptor instead. func (*Auth) Descriptor() ([]byte, []int) { - return file_v1_config_proto_rawDescGZIP(), []int{7} + return file_v1_config_proto_rawDescGZIP(), []int{8} } func (x *Auth) GetDisabled() bool { @@ -998,7 +1065,7 @@ type User struct { func (x *User) Reset() { *x = User{} if protoimpl.UnsafeEnabled { - mi := &file_v1_config_proto_msgTypes[8] + mi := &file_v1_config_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1011,7 +1078,7 @@ func (x *User) String() string { func (*User) ProtoMessage() {} func (x *User) ProtoReflect() protoreflect.Message { - mi := &file_v1_config_proto_msgTypes[8] + mi := &file_v1_config_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1024,7 +1091,7 @@ func (x *User) ProtoReflect() protoreflect.Message { // Deprecated: Use User.ProtoReflect.Descriptor instead. func (*User) Descriptor() ([]byte, []int) { - return file_v1_config_proto_rawDescGZIP(), []int{8} + return file_v1_config_proto_rawDescGZIP(), []int{9} } func (x *User) GetName() string { @@ -1070,7 +1137,7 @@ type HubConfig_InstanceInfo struct { func (x *HubConfig_InstanceInfo) Reset() { *x = HubConfig_InstanceInfo{} if protoimpl.UnsafeEnabled { - mi := &file_v1_config_proto_msgTypes[9] + mi := &file_v1_config_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1083,7 +1150,7 @@ func (x *HubConfig_InstanceInfo) String() string { func (*HubConfig_InstanceInfo) ProtoMessage() {} func (x *HubConfig_InstanceInfo) ProtoReflect() protoreflect.Message { - mi := &file_v1_config_proto_msgTypes[9] + mi := &file_v1_config_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1128,7 +1195,7 @@ type RetentionPolicy_TimeBucketedCounts struct { func (x *RetentionPolicy_TimeBucketedCounts) Reset() { *x = RetentionPolicy_TimeBucketedCounts{} if protoimpl.UnsafeEnabled { - mi := &file_v1_config_proto_msgTypes[10] + mi := &file_v1_config_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1141,7 +1208,7 @@ func (x *RetentionPolicy_TimeBucketedCounts) String() string { func (*RetentionPolicy_TimeBucketedCounts) ProtoMessage() {} func (x *RetentionPolicy_TimeBucketedCounts) ProtoReflect() protoreflect.Message { - mi := &file_v1_config_proto_msgTypes[10] + mi := &file_v1_config_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1203,7 +1270,7 @@ type Hook_Command struct { func (x *Hook_Command) Reset() { *x = Hook_Command{} if protoimpl.UnsafeEnabled { - mi := &file_v1_config_proto_msgTypes[11] + mi := &file_v1_config_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1216,7 +1283,7 @@ func (x *Hook_Command) String() string { func (*Hook_Command) ProtoMessage() {} func (x *Hook_Command) ProtoReflect() protoreflect.Message { - mi := &file_v1_config_proto_msgTypes[11] + mi := &file_v1_config_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1229,7 +1296,7 @@ func (x *Hook_Command) ProtoReflect() protoreflect.Message { // Deprecated: Use Hook_Command.ProtoReflect.Descriptor instead. func (*Hook_Command) Descriptor() ([]byte, []int) { - return file_v1_config_proto_rawDescGZIP(), []int{6, 0} + return file_v1_config_proto_rawDescGZIP(), []int{7, 0} } func (x *Hook_Command) GetCommand() string { @@ -1252,7 +1319,7 @@ type Hook_Webhook struct { func (x *Hook_Webhook) Reset() { *x = Hook_Webhook{} if protoimpl.UnsafeEnabled { - mi := &file_v1_config_proto_msgTypes[12] + mi := &file_v1_config_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1265,7 +1332,7 @@ func (x *Hook_Webhook) String() string { func (*Hook_Webhook) ProtoMessage() {} func (x *Hook_Webhook) ProtoReflect() protoreflect.Message { - mi := &file_v1_config_proto_msgTypes[12] + mi := &file_v1_config_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1278,7 +1345,7 @@ func (x *Hook_Webhook) ProtoReflect() protoreflect.Message { // Deprecated: Use Hook_Webhook.ProtoReflect.Descriptor instead. func (*Hook_Webhook) Descriptor() ([]byte, []int) { - return file_v1_config_proto_rawDescGZIP(), []int{6, 1} + return file_v1_config_proto_rawDescGZIP(), []int{7, 1} } func (x *Hook_Webhook) GetWebhookUrl() string { @@ -1314,7 +1381,7 @@ type Hook_Discord struct { func (x *Hook_Discord) Reset() { *x = Hook_Discord{} if protoimpl.UnsafeEnabled { - mi := &file_v1_config_proto_msgTypes[13] + mi := &file_v1_config_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1327,7 +1394,7 @@ func (x *Hook_Discord) String() string { func (*Hook_Discord) ProtoMessage() {} func (x *Hook_Discord) ProtoReflect() protoreflect.Message { - mi := &file_v1_config_proto_msgTypes[13] + mi := &file_v1_config_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1340,7 +1407,7 @@ func (x *Hook_Discord) ProtoReflect() protoreflect.Message { // Deprecated: Use Hook_Discord.ProtoReflect.Descriptor instead. func (*Hook_Discord) Descriptor() ([]byte, []int) { - return file_v1_config_proto_rawDescGZIP(), []int{6, 2} + return file_v1_config_proto_rawDescGZIP(), []int{7, 2} } func (x *Hook_Discord) GetWebhookUrl() string { @@ -1371,7 +1438,7 @@ type Hook_Gotify struct { func (x *Hook_Gotify) Reset() { *x = Hook_Gotify{} if protoimpl.UnsafeEnabled { - mi := &file_v1_config_proto_msgTypes[14] + mi := &file_v1_config_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1384,7 +1451,7 @@ func (x *Hook_Gotify) String() string { func (*Hook_Gotify) ProtoMessage() {} func (x *Hook_Gotify) ProtoReflect() protoreflect.Message { - mi := &file_v1_config_proto_msgTypes[14] + mi := &file_v1_config_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1397,7 +1464,7 @@ func (x *Hook_Gotify) ProtoReflect() protoreflect.Message { // Deprecated: Use Hook_Gotify.ProtoReflect.Descriptor instead. func (*Hook_Gotify) Descriptor() ([]byte, []int) { - return file_v1_config_proto_rawDescGZIP(), []int{6, 3} + return file_v1_config_proto_rawDescGZIP(), []int{7, 3} } func (x *Hook_Gotify) GetBaseUrl() string { @@ -1440,7 +1507,7 @@ type Hook_Slack struct { func (x *Hook_Slack) Reset() { *x = Hook_Slack{} if protoimpl.UnsafeEnabled { - mi := &file_v1_config_proto_msgTypes[15] + mi := &file_v1_config_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1453,7 +1520,7 @@ func (x *Hook_Slack) String() string { func (*Hook_Slack) ProtoMessage() {} func (x *Hook_Slack) ProtoReflect() protoreflect.Message { - mi := &file_v1_config_proto_msgTypes[15] + mi := &file_v1_config_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1466,7 +1533,7 @@ func (x *Hook_Slack) ProtoReflect() protoreflect.Message { // Deprecated: Use Hook_Slack.ProtoReflect.Descriptor instead. func (*Hook_Slack) Descriptor() ([]byte, []int) { - return file_v1_config_proto_rawDescGZIP(), []int{6, 4} + return file_v1_config_proto_rawDescGZIP(), []int{7, 4} } func (x *Hook_Slack) GetWebhookUrl() string { @@ -1495,7 +1562,7 @@ type Hook_Shoutrrr struct { func (x *Hook_Shoutrrr) Reset() { *x = Hook_Shoutrrr{} if protoimpl.UnsafeEnabled { - mi := &file_v1_config_proto_msgTypes[16] + mi := &file_v1_config_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1508,7 +1575,7 @@ func (x *Hook_Shoutrrr) String() string { func (*Hook_Shoutrrr) ProtoMessage() {} func (x *Hook_Shoutrrr) ProtoReflect() protoreflect.Message { - mi := &file_v1_config_proto_msgTypes[16] + mi := &file_v1_config_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1521,7 +1588,7 @@ func (x *Hook_Shoutrrr) ProtoReflect() protoreflect.Message { // Deprecated: Use Hook_Shoutrrr.ProtoReflect.Descriptor instead. func (*Hook_Shoutrrr) Descriptor() ([]byte, []int) { - return file_v1_config_proto_rawDescGZIP(), []int{6, 5} + return file_v1_config_proto_rawDescGZIP(), []int{7, 5} } func (x *Hook_Shoutrrr) GetShoutrrrUrl() string { @@ -1647,99 +1714,103 @@ var file_v1_config_proto_rawDesc = []byte{ 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x65, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x55, 0x6e, 0x75, 0x73, - 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0xec, 0x09, 0x0a, 0x04, 0x48, 0x6f, 0x6f, 0x6b, - 0x12, 0x32, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x2e, 0x43, - 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x08, 0x6f, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, - 0x2e, 0x4f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x07, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x12, 0x39, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x31, 0x2e, 0x48, - 0x6f, 0x6f, 0x6b, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x0d, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x39, 0x0a, 0x0e, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x18, 0x65, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x2e, 0x57, - 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x39, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, - 0x64, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x63, 0x6f, - 0x72, 0x64, 0x12, 0x36, 0x0a, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x6f, 0x74, - 0x69, 0x66, 0x79, 0x18, 0x67, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x2e, 0x48, - 0x6f, 0x6f, 0x6b, 0x2e, 0x47, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x33, 0x0a, 0x0c, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x18, 0x68, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0e, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x2e, 0x53, 0x6c, 0x61, 0x63, 0x6b, - 0x48, 0x00, 0x52, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6c, 0x61, 0x63, 0x6b, 0x12, - 0x3c, 0x0a, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x68, 0x6f, 0x75, 0x74, 0x72, - 0x72, 0x72, 0x18, 0x69, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, - 0x6f, 0x6b, 0x2e, 0x53, 0x68, 0x6f, 0x75, 0x74, 0x72, 0x72, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x68, 0x6f, 0x75, 0x74, 0x72, 0x72, 0x72, 0x1a, 0x23, 0x0a, - 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, - 0x6e, 0x64, 0x1a, 0xa1, 0x01, 0x0a, 0x07, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x1f, + 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x47, 0x0a, 0x0b, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2e, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x00, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x79, 0x44, 0x61, 0x79, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x22, 0xec, 0x09, 0x0a, 0x04, 0x48, 0x6f, 0x6f, 0x6b, 0x12, 0x32, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x12, 0x2e, + 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x0a, + 0x08, 0x6f, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x10, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x2e, 0x4f, 0x6e, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x52, 0x07, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x39, 0x0a, 0x0e, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x64, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x39, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x48, + 0x00, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, + 0x12, 0x39, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, + 0x72, 0x64, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, + 0x6f, 0x6b, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x36, 0x0a, 0x0d, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x18, 0x67, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x2e, 0x47, 0x6f, 0x74, + 0x69, 0x66, 0x79, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x6f, 0x74, + 0x69, 0x66, 0x79, 0x12, 0x33, 0x0a, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x6c, + 0x61, 0x63, 0x6b, 0x18, 0x68, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x76, 0x31, 0x2e, 0x48, + 0x6f, 0x6f, 0x6b, 0x2e, 0x53, 0x6c, 0x61, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x6c, 0x61, 0x63, 0x6b, 0x12, 0x3c, 0x0a, 0x0f, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x73, 0x68, 0x6f, 0x75, 0x74, 0x72, 0x72, 0x72, 0x18, 0x69, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x2e, 0x53, 0x68, 0x6f, 0x75, + 0x74, 0x72, 0x72, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x68, + 0x6f, 0x75, 0x74, 0x72, 0x72, 0x72, 0x1a, 0x23, 0x0a, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x1a, 0xa1, 0x01, 0x0a, 0x07, + 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x65, 0x62, 0x68, 0x6f, + 0x6f, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x77, 0x65, + 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x55, 0x72, 0x6c, 0x12, 0x2f, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, + 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, + 0x6f, 0x6b, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x64, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x28, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, + 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, + 0x47, 0x45, 0x54, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x4f, 0x53, 0x54, 0x10, 0x02, 0x1a, + 0x46, 0x0a, 0x07, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x65, + 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x74, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x1a, 0x7c, 0x0a, 0x06, 0x47, 0x6f, 0x74, 0x69, 0x66, + 0x79, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x73, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x64, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x25, + 0x0a, 0x0e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x18, 0x65, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x1a, 0x44, 0x0a, 0x05, 0x53, 0x6c, 0x61, 0x63, 0x6b, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x55, 0x72, 0x6c, 0x12, - 0x2f, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x6f, 0x6b, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, - 0x6b, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, - 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x64, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x28, 0x0a, 0x06, - 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, - 0x4e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x47, 0x45, 0x54, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, - 0x50, 0x4f, 0x53, 0x54, 0x10, 0x02, 0x1a, 0x46, 0x0a, 0x07, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, - 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x75, 0x72, 0x6c, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x55, - 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x1a, 0x7c, - 0x0a, 0x06, 0x47, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x61, 0x73, 0x65, - 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x73, 0x65, - 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x64, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x5f, 0x74, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x65, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, - 0x69, 0x74, 0x6c, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x1a, 0x44, 0x0a, 0x05, - 0x53, 0x6c, 0x61, 0x63, 0x6b, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, - 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x77, 0x65, 0x62, 0x68, - 0x6f, 0x6f, 0x6b, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x1a, 0x49, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x75, 0x74, 0x72, 0x72, 0x72, 0x12, 0x21, - 0x0a, 0x0c, 0x73, 0x68, 0x6f, 0x75, 0x74, 0x72, 0x72, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x68, 0x6f, 0x75, 0x74, 0x72, 0x72, 0x72, 0x55, 0x72, - 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0xb3, 0x01, - 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x0a, 0x11, 0x43, - 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, - 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x41, 0x4e, 0x59, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x43, - 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, - 0x54, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x4f, 0x4e, - 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x5f, - 0x45, 0x4e, 0x44, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, - 0x52, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x5f, 0x57, 0x41, 0x52, 0x4e, 0x49, 0x4e, - 0x47, 0x10, 0x05, 0x22, 0x47, 0x0a, 0x07, 0x4f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x13, - 0x0a, 0x0f, 0x4f, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, - 0x45, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, - 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x4e, 0x5f, 0x45, - 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x46, 0x41, 0x54, 0x41, 0x4c, 0x10, 0x02, 0x42, 0x08, 0x0a, 0x06, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x42, 0x0a, 0x04, 0x41, 0x75, 0x74, 0x68, 0x12, 0x1a, - 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x05, 0x75, 0x73, - 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x76, 0x31, 0x2e, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x22, 0x51, 0x0a, 0x04, 0x55, 0x73, - 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x0f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, - 0x72, 0x64, 0x5f, 0x62, 0x63, 0x72, 0x79, 0x70, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x0e, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x42, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x42, 0x2c, 0x5a, - 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x72, 0x65, - 0x74, 0x68, 0x67, 0x65, 0x6f, 0x72, 0x67, 0x65, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x72, 0x65, 0x73, - 0x74, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x1a, 0x49, 0x0a, 0x08, 0x53, + 0x68, 0x6f, 0x75, 0x74, 0x72, 0x72, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x68, 0x6f, 0x75, 0x74, + 0x72, 0x72, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, + 0x68, 0x6f, 0x75, 0x74, 0x72, 0x72, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0xb3, 0x01, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x43, + 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x59, 0x5f, 0x45, 0x52, 0x52, + 0x4f, 0x52, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, + 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0x03, 0x12, 0x1c, + 0x0a, 0x18, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x4e, 0x41, 0x50, + 0x53, 0x48, 0x4f, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, + 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, + 0x4f, 0x54, 0x5f, 0x57, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x22, 0x47, 0x0a, 0x07, + 0x4f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x4e, 0x5f, 0x45, 0x52, + 0x52, 0x4f, 0x52, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, + 0x4f, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x10, + 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x46, 0x41, + 0x54, 0x41, 0x4c, 0x10, 0x02, 0x42, 0x08, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x42, 0x0a, 0x04, 0x41, 0x75, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, + 0x65, 0x72, 0x73, 0x22, 0x51, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x29, 0x0a, 0x0f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x62, 0x63, 0x72, 0x79, + 0x70, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x42, 0x63, 0x72, 0x79, 0x70, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x42, 0x2c, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x72, 0x65, 0x74, 0x68, 0x67, 0x65, 0x6f, 0x72, 0x67, + 0x65, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x72, 0x65, 0x73, 0x74, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, + 0x6f, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1755,7 +1826,7 @@ func file_v1_config_proto_rawDescGZIP() []byte { } var file_v1_config_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_v1_config_proto_msgTypes = make([]protoimpl.MessageInfo, 17) +var file_v1_config_proto_msgTypes = make([]protoimpl.MessageInfo, 18) var file_v1_config_proto_goTypes = []interface{}{ (Hook_Condition)(0), // 0: v1.Hook.Condition (Hook_OnError)(0), // 1: v1.Hook.OnError @@ -1766,37 +1837,38 @@ var file_v1_config_proto_goTypes = []interface{}{ (*Plan)(nil), // 6: v1.Plan (*RetentionPolicy)(nil), // 7: v1.RetentionPolicy (*PrunePolicy)(nil), // 8: v1.PrunePolicy - (*Hook)(nil), // 9: v1.Hook - (*Auth)(nil), // 10: v1.Auth - (*User)(nil), // 11: v1.User - (*HubConfig_InstanceInfo)(nil), // 12: v1.HubConfig.InstanceInfo - (*RetentionPolicy_TimeBucketedCounts)(nil), // 13: v1.RetentionPolicy.TimeBucketedCounts - (*Hook_Command)(nil), // 14: v1.Hook.Command - (*Hook_Webhook)(nil), // 15: v1.Hook.Webhook - (*Hook_Discord)(nil), // 16: v1.Hook.Discord - (*Hook_Gotify)(nil), // 17: v1.Hook.Gotify - (*Hook_Slack)(nil), // 18: v1.Hook.Slack - (*Hook_Shoutrrr)(nil), // 19: v1.Hook.Shoutrrr + (*CheckPolicy)(nil), // 9: v1.CheckPolicy + (*Hook)(nil), // 10: v1.Hook + (*Auth)(nil), // 11: v1.Auth + (*User)(nil), // 12: v1.User + (*HubConfig_InstanceInfo)(nil), // 13: v1.HubConfig.InstanceInfo + (*RetentionPolicy_TimeBucketedCounts)(nil), // 14: v1.RetentionPolicy.TimeBucketedCounts + (*Hook_Command)(nil), // 15: v1.Hook.Command + (*Hook_Webhook)(nil), // 16: v1.Hook.Webhook + (*Hook_Discord)(nil), // 17: v1.Hook.Discord + (*Hook_Gotify)(nil), // 18: v1.Hook.Gotify + (*Hook_Slack)(nil), // 19: v1.Hook.Slack + (*Hook_Shoutrrr)(nil), // 20: v1.Hook.Shoutrrr } var file_v1_config_proto_depIdxs = []int32{ - 12, // 0: v1.HubConfig.instances:type_name -> v1.HubConfig.InstanceInfo + 13, // 0: v1.HubConfig.instances:type_name -> v1.HubConfig.InstanceInfo 5, // 1: v1.Config.repos:type_name -> v1.Repo 6, // 2: v1.Config.plans:type_name -> v1.Plan - 10, // 3: v1.Config.auth:type_name -> v1.Auth + 11, // 3: v1.Config.auth:type_name -> v1.Auth 8, // 4: v1.Repo.prune_policy:type_name -> v1.PrunePolicy - 9, // 5: v1.Repo.hooks:type_name -> v1.Hook + 10, // 5: v1.Repo.hooks:type_name -> v1.Hook 7, // 6: v1.Plan.retention:type_name -> v1.RetentionPolicy - 9, // 7: v1.Plan.hooks:type_name -> v1.Hook - 13, // 8: v1.RetentionPolicy.policy_time_bucketed:type_name -> v1.RetentionPolicy.TimeBucketedCounts + 10, // 7: v1.Plan.hooks:type_name -> v1.Hook + 14, // 8: v1.RetentionPolicy.policy_time_bucketed:type_name -> v1.RetentionPolicy.TimeBucketedCounts 0, // 9: v1.Hook.conditions:type_name -> v1.Hook.Condition 1, // 10: v1.Hook.on_error:type_name -> v1.Hook.OnError - 14, // 11: v1.Hook.action_command:type_name -> v1.Hook.Command - 15, // 12: v1.Hook.action_webhook:type_name -> v1.Hook.Webhook - 16, // 13: v1.Hook.action_discord:type_name -> v1.Hook.Discord - 17, // 14: v1.Hook.action_gotify:type_name -> v1.Hook.Gotify - 18, // 15: v1.Hook.action_slack:type_name -> v1.Hook.Slack - 19, // 16: v1.Hook.action_shoutrrr:type_name -> v1.Hook.Shoutrrr - 11, // 17: v1.Auth.users:type_name -> v1.User + 15, // 11: v1.Hook.action_command:type_name -> v1.Hook.Command + 16, // 12: v1.Hook.action_webhook:type_name -> v1.Hook.Webhook + 17, // 13: v1.Hook.action_discord:type_name -> v1.Hook.Discord + 18, // 14: v1.Hook.action_gotify:type_name -> v1.Hook.Gotify + 19, // 15: v1.Hook.action_slack:type_name -> v1.Hook.Slack + 20, // 16: v1.Hook.action_shoutrrr:type_name -> v1.Hook.Shoutrrr + 12, // 17: v1.Auth.users:type_name -> v1.User 2, // 18: v1.Hook.Webhook.method:type_name -> v1.Hook.Webhook.Method 19, // [19:19] is the sub-list for method output_type 19, // [19:19] is the sub-list for method input_type @@ -1884,7 +1956,7 @@ func file_v1_config_proto_init() { } } file_v1_config_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Hook); i { + switch v := v.(*CheckPolicy); i { case 0: return &v.state case 1: @@ -1896,7 +1968,7 @@ func file_v1_config_proto_init() { } } file_v1_config_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Auth); i { + switch v := v.(*Hook); i { case 0: return &v.state case 1: @@ -1908,7 +1980,7 @@ func file_v1_config_proto_init() { } } file_v1_config_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*User); i { + switch v := v.(*Auth); i { case 0: return &v.state case 1: @@ -1920,7 +1992,7 @@ func file_v1_config_proto_init() { } } file_v1_config_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HubConfig_InstanceInfo); i { + switch v := v.(*User); i { case 0: return &v.state case 1: @@ -1932,7 +2004,7 @@ func file_v1_config_proto_init() { } } file_v1_config_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RetentionPolicy_TimeBucketedCounts); i { + switch v := v.(*HubConfig_InstanceInfo); i { case 0: return &v.state case 1: @@ -1944,7 +2016,7 @@ func file_v1_config_proto_init() { } } file_v1_config_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Hook_Command); i { + switch v := v.(*RetentionPolicy_TimeBucketedCounts); i { case 0: return &v.state case 1: @@ -1956,7 +2028,7 @@ func file_v1_config_proto_init() { } } file_v1_config_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Hook_Webhook); i { + switch v := v.(*Hook_Command); i { case 0: return &v.state case 1: @@ -1968,7 +2040,7 @@ func file_v1_config_proto_init() { } } file_v1_config_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Hook_Discord); i { + switch v := v.(*Hook_Webhook); i { case 0: return &v.state case 1: @@ -1980,7 +2052,7 @@ func file_v1_config_proto_init() { } } file_v1_config_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Hook_Gotify); i { + switch v := v.(*Hook_Discord); i { case 0: return &v.state case 1: @@ -1992,7 +2064,7 @@ func file_v1_config_proto_init() { } } file_v1_config_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Hook_Slack); i { + switch v := v.(*Hook_Gotify); i { case 0: return &v.state case 1: @@ -2004,6 +2076,18 @@ func file_v1_config_proto_init() { } } file_v1_config_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Hook_Slack); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v1_config_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Hook_Shoutrrr); i { case 0: return &v.state @@ -2022,6 +2106,9 @@ func file_v1_config_proto_init() { (*RetentionPolicy_PolicyKeepAll)(nil), } file_v1_config_proto_msgTypes[6].OneofWrappers = []interface{}{ + (*CheckPolicy_MaxFrequencyDays)(nil), + } + file_v1_config_proto_msgTypes[7].OneofWrappers = []interface{}{ (*Hook_ActionCommand)(nil), (*Hook_ActionWebhook)(nil), (*Hook_ActionDiscord)(nil), @@ -2029,7 +2116,7 @@ func file_v1_config_proto_init() { (*Hook_ActionSlack)(nil), (*Hook_ActionShoutrrr)(nil), } - file_v1_config_proto_msgTypes[8].OneofWrappers = []interface{}{ + file_v1_config_proto_msgTypes[9].OneofWrappers = []interface{}{ (*User_PasswordBcrypt)(nil), } type x struct{} @@ -2038,7 +2125,7 @@ func file_v1_config_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_v1_config_proto_rawDesc, NumEnums: 3, - NumMessages: 17, + NumMessages: 18, NumExtensions: 0, NumServices: 0, }, diff --git a/gen/go/v1/service.pb.go b/gen/go/v1/service.pb.go index 7f90d702..1afe6278 100644 --- a/gen/go/v1/service.pb.go +++ b/gen/go/v1/service.pb.go @@ -23,19 +23,21 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -type ClearHistoryRequest struct { +// OpSelector is a message that can be used to select operations e.g. by query. +type OpSelector struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - RepoId string `protobuf:"bytes,1,opt,name=repo_id,json=repoId,proto3" json:"repo_id,omitempty"` - PlanId string `protobuf:"bytes,2,opt,name=plan_id,json=planId,proto3" json:"plan_id,omitempty"` - OnlyFailed bool `protobuf:"varint,3,opt,name=only_failed,json=onlyFailed,proto3" json:"only_failed,omitempty"` - Ops []int64 `protobuf:"varint,4,rep,packed,name=ops,proto3" json:"ops,omitempty"` + Ids []int64 `protobuf:"varint,1,rep,packed,name=ids,proto3" json:"ids,omitempty"` + RepoId string `protobuf:"bytes,2,opt,name=repo_id,json=repoId,proto3" json:"repo_id,omitempty"` + PlanId string `protobuf:"bytes,3,opt,name=plan_id,json=planId,proto3" json:"plan_id,omitempty"` + SnapshotId string `protobuf:"bytes,4,opt,name=snapshot_id,json=snapshotId,proto3" json:"snapshot_id,omitempty"` + FlowId int64 `protobuf:"varint,5,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"` } -func (x *ClearHistoryRequest) Reset() { - *x = ClearHistoryRequest{} +func (x *OpSelector) Reset() { + *x = OpSelector{} if protoimpl.UnsafeEnabled { mi := &file_v1_service_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43,13 +45,13 @@ func (x *ClearHistoryRequest) Reset() { } } -func (x *ClearHistoryRequest) String() string { +func (x *OpSelector) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClearHistoryRequest) ProtoMessage() {} +func (*OpSelector) ProtoMessage() {} -func (x *ClearHistoryRequest) ProtoReflect() protoreflect.Message { +func (x *OpSelector) ProtoReflect() protoreflect.Message { mi := &file_v1_service_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61,39 +63,101 @@ func (x *ClearHistoryRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ClearHistoryRequest.ProtoReflect.Descriptor instead. -func (*ClearHistoryRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use OpSelector.ProtoReflect.Descriptor instead. +func (*OpSelector) Descriptor() ([]byte, []int) { return file_v1_service_proto_rawDescGZIP(), []int{0} } -func (x *ClearHistoryRequest) GetRepoId() string { +func (x *OpSelector) GetIds() []int64 { + if x != nil { + return x.Ids + } + return nil +} + +func (x *OpSelector) GetRepoId() string { if x != nil { return x.RepoId } return "" } -func (x *ClearHistoryRequest) GetPlanId() string { +func (x *OpSelector) GetPlanId() string { if x != nil { return x.PlanId } return "" } -func (x *ClearHistoryRequest) GetOnlyFailed() bool { +func (x *OpSelector) GetSnapshotId() string { if x != nil { - return x.OnlyFailed + return x.SnapshotId } - return false + return "" } -func (x *ClearHistoryRequest) GetOps() []int64 { +func (x *OpSelector) GetFlowId() int64 { if x != nil { - return x.Ops + return x.FlowId + } + return 0 +} + +type ClearHistoryRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Selector *OpSelector `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"` + OnlyFailed bool `protobuf:"varint,2,opt,name=only_failed,json=onlyFailed,proto3" json:"only_failed,omitempty"` +} + +func (x *ClearHistoryRequest) Reset() { + *x = ClearHistoryRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_v1_service_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClearHistoryRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClearHistoryRequest) ProtoMessage() {} + +func (x *ClearHistoryRequest) ProtoReflect() protoreflect.Message { + mi := &file_v1_service_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ClearHistoryRequest.ProtoReflect.Descriptor instead. +func (*ClearHistoryRequest) Descriptor() ([]byte, []int) { + return file_v1_service_proto_rawDescGZIP(), []int{1} +} + +func (x *ClearHistoryRequest) GetSelector() *OpSelector { + if x != nil { + return x.Selector } return nil } +func (x *ClearHistoryRequest) GetOnlyFailed() bool { + if x != nil { + return x.OnlyFailed + } + return false +} + type ForgetRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -107,7 +171,7 @@ type ForgetRequest struct { func (x *ForgetRequest) Reset() { *x = ForgetRequest{} if protoimpl.UnsafeEnabled { - mi := &file_v1_service_proto_msgTypes[1] + mi := &file_v1_service_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -120,7 +184,7 @@ func (x *ForgetRequest) String() string { func (*ForgetRequest) ProtoMessage() {} func (x *ForgetRequest) ProtoReflect() protoreflect.Message { - mi := &file_v1_service_proto_msgTypes[1] + mi := &file_v1_service_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -133,7 +197,7 @@ func (x *ForgetRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ForgetRequest.ProtoReflect.Descriptor instead. func (*ForgetRequest) Descriptor() ([]byte, []int) { - return file_v1_service_proto_rawDescGZIP(), []int{1} + return file_v1_service_proto_rawDescGZIP(), []int{2} } func (x *ForgetRequest) GetRepoId() string { @@ -169,7 +233,7 @@ type ListSnapshotsRequest struct { func (x *ListSnapshotsRequest) Reset() { *x = ListSnapshotsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_v1_service_proto_msgTypes[2] + mi := &file_v1_service_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -182,7 +246,7 @@ func (x *ListSnapshotsRequest) String() string { func (*ListSnapshotsRequest) ProtoMessage() {} func (x *ListSnapshotsRequest) ProtoReflect() protoreflect.Message { - mi := &file_v1_service_proto_msgTypes[2] + mi := &file_v1_service_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -195,7 +259,7 @@ func (x *ListSnapshotsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListSnapshotsRequest.ProtoReflect.Descriptor instead. func (*ListSnapshotsRequest) Descriptor() ([]byte, []int) { - return file_v1_service_proto_rawDescGZIP(), []int{2} + return file_v1_service_proto_rawDescGZIP(), []int{3} } func (x *ListSnapshotsRequest) GetRepoId() string { @@ -217,18 +281,14 @@ type GetOperationsRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - RepoId string `protobuf:"bytes,1,opt,name=repo_id,json=repoId,proto3" json:"repo_id,omitempty"` - PlanId string `protobuf:"bytes,2,opt,name=plan_id,json=planId,proto3" json:"plan_id,omitempty"` - SnapshotId string `protobuf:"bytes,4,opt,name=snapshot_id,json=snapshotId,proto3" json:"snapshot_id,omitempty"` - FlowId int64 `protobuf:"varint,6,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"` - Ids []int64 `protobuf:"varint,5,rep,packed,name=ids,proto3" json:"ids,omitempty"` - LastN int64 `protobuf:"varint,3,opt,name=last_n,json=lastN,proto3" json:"last_n,omitempty"` // limit to the last n operations + Selector *OpSelector `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"` + LastN int64 `protobuf:"varint,2,opt,name=last_n,json=lastN,proto3" json:"last_n,omitempty"` // limit to the last n operations } func (x *GetOperationsRequest) Reset() { *x = GetOperationsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_v1_service_proto_msgTypes[3] + mi := &file_v1_service_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -241,7 +301,7 @@ func (x *GetOperationsRequest) String() string { func (*GetOperationsRequest) ProtoMessage() {} func (x *GetOperationsRequest) ProtoReflect() protoreflect.Message { - mi := &file_v1_service_proto_msgTypes[3] + mi := &file_v1_service_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -254,40 +314,12 @@ func (x *GetOperationsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetOperationsRequest.ProtoReflect.Descriptor instead. func (*GetOperationsRequest) Descriptor() ([]byte, []int) { - return file_v1_service_proto_rawDescGZIP(), []int{3} -} - -func (x *GetOperationsRequest) GetRepoId() string { - if x != nil { - return x.RepoId - } - return "" -} - -func (x *GetOperationsRequest) GetPlanId() string { - if x != nil { - return x.PlanId - } - return "" -} - -func (x *GetOperationsRequest) GetSnapshotId() string { - if x != nil { - return x.SnapshotId - } - return "" -} - -func (x *GetOperationsRequest) GetFlowId() int64 { - if x != nil { - return x.FlowId - } - return 0 + return file_v1_service_proto_rawDescGZIP(), []int{4} } -func (x *GetOperationsRequest) GetIds() []int64 { +func (x *GetOperationsRequest) GetSelector() *OpSelector { if x != nil { - return x.Ids + return x.Selector } return nil } @@ -314,7 +346,7 @@ type RestoreSnapshotRequest struct { func (x *RestoreSnapshotRequest) Reset() { *x = RestoreSnapshotRequest{} if protoimpl.UnsafeEnabled { - mi := &file_v1_service_proto_msgTypes[4] + mi := &file_v1_service_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -327,7 +359,7 @@ func (x *RestoreSnapshotRequest) String() string { func (*RestoreSnapshotRequest) ProtoMessage() {} func (x *RestoreSnapshotRequest) ProtoReflect() protoreflect.Message { - mi := &file_v1_service_proto_msgTypes[4] + mi := &file_v1_service_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -340,7 +372,7 @@ func (x *RestoreSnapshotRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RestoreSnapshotRequest.ProtoReflect.Descriptor instead. func (*RestoreSnapshotRequest) Descriptor() ([]byte, []int) { - return file_v1_service_proto_rawDescGZIP(), []int{4} + return file_v1_service_proto_rawDescGZIP(), []int{5} } func (x *RestoreSnapshotRequest) GetPlanId() string { @@ -391,7 +423,7 @@ type ListSnapshotFilesRequest struct { func (x *ListSnapshotFilesRequest) Reset() { *x = ListSnapshotFilesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_v1_service_proto_msgTypes[5] + mi := &file_v1_service_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -404,7 +436,7 @@ func (x *ListSnapshotFilesRequest) String() string { func (*ListSnapshotFilesRequest) ProtoMessage() {} func (x *ListSnapshotFilesRequest) ProtoReflect() protoreflect.Message { - mi := &file_v1_service_proto_msgTypes[5] + mi := &file_v1_service_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -417,7 +449,7 @@ func (x *ListSnapshotFilesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListSnapshotFilesRequest.ProtoReflect.Descriptor instead. func (*ListSnapshotFilesRequest) Descriptor() ([]byte, []int) { - return file_v1_service_proto_rawDescGZIP(), []int{5} + return file_v1_service_proto_rawDescGZIP(), []int{6} } func (x *ListSnapshotFilesRequest) GetRepoId() string { @@ -453,7 +485,7 @@ type ListSnapshotFilesResponse struct { func (x *ListSnapshotFilesResponse) Reset() { *x = ListSnapshotFilesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_v1_service_proto_msgTypes[6] + mi := &file_v1_service_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -466,7 +498,7 @@ func (x *ListSnapshotFilesResponse) String() string { func (*ListSnapshotFilesResponse) ProtoMessage() {} func (x *ListSnapshotFilesResponse) ProtoReflect() protoreflect.Message { - mi := &file_v1_service_proto_msgTypes[6] + mi := &file_v1_service_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -479,7 +511,7 @@ func (x *ListSnapshotFilesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListSnapshotFilesResponse.ProtoReflect.Descriptor instead. func (*ListSnapshotFilesResponse) Descriptor() ([]byte, []int) { - return file_v1_service_proto_rawDescGZIP(), []int{6} + return file_v1_service_proto_rawDescGZIP(), []int{7} } func (x *ListSnapshotFilesResponse) GetPath() string { @@ -507,7 +539,7 @@ type LogDataRequest struct { func (x *LogDataRequest) Reset() { *x = LogDataRequest{} if protoimpl.UnsafeEnabled { - mi := &file_v1_service_proto_msgTypes[7] + mi := &file_v1_service_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -520,7 +552,7 @@ func (x *LogDataRequest) String() string { func (*LogDataRequest) ProtoMessage() {} func (x *LogDataRequest) ProtoReflect() protoreflect.Message { - mi := &file_v1_service_proto_msgTypes[7] + mi := &file_v1_service_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -533,7 +565,7 @@ func (x *LogDataRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use LogDataRequest.ProtoReflect.Descriptor instead. func (*LogDataRequest) Descriptor() ([]byte, []int) { - return file_v1_service_proto_rawDescGZIP(), []int{7} + return file_v1_service_proto_rawDescGZIP(), []int{8} } func (x *LogDataRequest) GetRef() string { @@ -563,7 +595,7 @@ type LsEntry struct { func (x *LsEntry) Reset() { *x = LsEntry{} if protoimpl.UnsafeEnabled { - mi := &file_v1_service_proto_msgTypes[8] + mi := &file_v1_service_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -576,7 +608,7 @@ func (x *LsEntry) String() string { func (*LsEntry) ProtoMessage() {} func (x *LsEntry) ProtoReflect() protoreflect.Message { - mi := &file_v1_service_proto_msgTypes[8] + mi := &file_v1_service_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -589,7 +621,7 @@ func (x *LsEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use LsEntry.ProtoReflect.Descriptor instead. func (*LsEntry) Descriptor() ([]byte, []int) { - return file_v1_service_proto_rawDescGZIP(), []int{8} + return file_v1_service_proto_rawDescGZIP(), []int{9} } func (x *LsEntry) GetName() string { @@ -674,7 +706,7 @@ type RunCommandRequest struct { func (x *RunCommandRequest) Reset() { *x = RunCommandRequest{} if protoimpl.UnsafeEnabled { - mi := &file_v1_service_proto_msgTypes[9] + mi := &file_v1_service_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -687,7 +719,7 @@ func (x *RunCommandRequest) String() string { func (*RunCommandRequest) ProtoMessage() {} func (x *RunCommandRequest) ProtoReflect() protoreflect.Message { - mi := &file_v1_service_proto_msgTypes[9] + mi := &file_v1_service_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -700,7 +732,7 @@ func (x *RunCommandRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RunCommandRequest.ProtoReflect.Descriptor instead. func (*RunCommandRequest) Descriptor() ([]byte, []int) { - return file_v1_service_proto_rawDescGZIP(), []int{9} + return file_v1_service_proto_rawDescGZIP(), []int{10} } func (x *RunCommandRequest) GetRepoId() string { @@ -729,156 +761,158 @@ var file_v1_service_proto_rawDesc = []byte{ 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7a, 0x0a, 0x13, 0x43, - 0x6c, 0x65, 0x61, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, - 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, - 0x61, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x66, 0x61, 0x69, - 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x6f, 0x6e, 0x6c, 0x79, 0x46, - 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x70, 0x73, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x03, 0x52, 0x03, 0x6f, 0x70, 0x73, 0x22, 0x62, 0x0a, 0x0d, 0x46, 0x6f, 0x72, 0x67, 0x65, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8a, 0x01, 0x0a, 0x0a, + 0x4f, 0x70, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x69, 0x64, 0x73, 0x12, 0x17, 0x0a, 0x07, + 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, + 0x65, 0x70, 0x6f, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x1f, + 0x0a, 0x0b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x64, 0x12, + 0x17, 0x0a, 0x07, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x06, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x22, 0x62, 0x0a, 0x13, 0x43, 0x6c, 0x65, 0x61, + 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x2a, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, + 0x6e, 0x6c, 0x79, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0a, 0x6f, 0x6e, 0x6c, 0x79, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x22, 0x62, 0x0a, 0x0d, + 0x46, 0x6f, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, + 0x07, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x72, 0x65, 0x70, 0x6f, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, + 0x1f, 0x0a, 0x0b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x64, + 0x22, 0x48, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x64, 0x22, 0x48, 0x0a, 0x14, 0x4c, - 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, - 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, - 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x22, 0xab, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, - 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x72, 0x65, 0x70, 0x6f, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, - 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, - 0x64, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x06, 0x66, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, - 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x69, 0x64, 0x73, 0x12, 0x15, 0x0a, 0x06, - 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6c, 0x61, - 0x73, 0x74, 0x4e, 0x22, 0x97, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, - 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, - 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x5f, - 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x49, 0x64, - 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x68, 0x0a, - 0x18, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x46, 0x69, 0x6c, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x65, 0x70, - 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, + 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x22, 0x59, 0x0a, 0x14, 0x47, 0x65, + 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x15, + 0x0a, 0x06, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x6c, 0x61, 0x73, 0x74, 0x4e, 0x22, 0x97, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x65, 0x70, + 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x56, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x53, - 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x25, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, - 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x22, - 0x22, 0x0a, 0x0e, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x72, 0x65, 0x66, 0x22, 0xd3, 0x01, 0x0a, 0x07, 0x4c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x75, - 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, - 0x03, 0x67, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x67, 0x69, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, - 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x61, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x74, - 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x46, 0x0a, 0x11, 0x52, 0x75, 0x6e, - 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, - 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x72, 0x65, 0x70, 0x6f, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, - 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, - 0x64, 0x32, 0x9e, 0x09, 0x0a, 0x08, 0x42, 0x61, 0x63, 0x6b, 0x72, 0x65, 0x73, 0x74, 0x12, 0x31, - 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x1a, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, - 0x00, 0x12, 0x25, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0a, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x0a, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x00, 0x12, 0x21, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x52, - 0x65, 0x70, 0x6f, 0x12, 0x08, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x1a, 0x0a, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x00, 0x12, 0x44, 0x0a, 0x12, 0x47, - 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x76, 0x31, 0x2e, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x00, 0x30, - 0x01, 0x12, 0x3e, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x76, - 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x22, - 0x00, 0x12, 0x43, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, - 0x74, 0x73, 0x12, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, - 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x76, - 0x31, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x69, 0x63, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, - 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x1c, 0x2e, 0x76, 0x31, + 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, + 0x68, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x72, + 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, + 0x70, 0x6f, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x56, 0x0a, 0x19, 0x4c, 0x69, 0x73, + 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x25, 0x0a, 0x07, 0x65, 0x6e, + 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, + 0x73, 0x22, 0x22, 0x0a, 0x0e, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x72, 0x65, 0x66, 0x22, 0xd3, 0x01, 0x0a, 0x07, 0x4c, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x10, 0x0a, + 0x03, 0x75, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, + 0x10, 0x0a, 0x03, 0x67, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x67, 0x69, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x61, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x61, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x46, 0x0a, 0x11, 0x52, + 0x75, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x17, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x32, 0x9e, 0x09, 0x0a, 0x08, 0x42, 0x61, 0x63, 0x6b, 0x72, 0x65, 0x73, 0x74, + 0x12, 0x31, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x22, 0x00, 0x12, 0x25, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x12, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x0a, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x00, 0x12, 0x21, 0x0a, 0x07, 0x41, 0x64, + 0x64, 0x52, 0x65, 0x70, 0x6f, 0x12, 0x08, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x1a, + 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x00, 0x12, 0x44, 0x0a, + 0x12, 0x47, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x76, 0x31, + 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, + 0x00, 0x30, 0x01, 0x12, 0x3e, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, + 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, + 0x74, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x73, 0x12, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x69, 0x63, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, + 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x1c, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x46, 0x69, 0x6c, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3e, 0x0a, 0x0e, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0x12, 0x2e, 0x74, - 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x06, 0x42, 0x61, - 0x63, 0x6b, 0x75, 0x70, 0x12, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x72, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3e, 0x0a, 0x0e, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0x12, + 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x06, + 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x22, 0x00, 0x12, 0x35, 0x0a, 0x05, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x12, 0x12, 0x2e, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x35, 0x0a, 0x06, 0x46, + 0x6f, 0x72, 0x67, 0x65, 0x74, 0x12, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x67, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x1a, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x06, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x12, 0x2e, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x35, 0x0a, 0x05, 0x53, + 0x74, 0x61, 0x74, 0x73, 0x12, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x22, 0x00, 0x12, 0x35, 0x0a, 0x05, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x12, 0x12, 0x2e, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x35, 0x0a, 0x06, 0x46, 0x6f, 0x72, - 0x67, 0x65, 0x74, 0x12, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x67, 0x65, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, - 0x12, 0x3f, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x1a, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, - 0x00, 0x12, 0x36, 0x0a, 0x06, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x12, 0x2e, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, + 0x22, 0x00, 0x12, 0x35, 0x0a, 0x06, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, 0x11, 0x2e, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x35, 0x0a, 0x05, 0x53, 0x74, 0x61, - 0x74, 0x73, 0x12, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, - 0x12, 0x35, 0x0a, 0x06, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, 0x11, 0x2e, 0x74, 0x79, 0x70, - 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x32, 0x0a, 0x07, 0x47, 0x65, 0x74, + 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x12, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x00, 0x12, 0x3a, 0x0a, + 0x0a, 0x52, 0x75, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x15, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x75, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x39, 0x0a, 0x0e, 0x47, 0x65, 0x74, + 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x52, 0x4c, 0x12, 0x11, 0x2e, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x12, + 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0c, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x32, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4c, 0x6f, - 0x67, 0x73, 0x12, 0x12, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, - 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x0a, 0x52, - 0x75, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x15, 0x2e, 0x76, 0x31, 0x2e, 0x52, - 0x75, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x39, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x44, 0x6f, - 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x52, 0x4c, 0x12, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x12, 0x2e, 0x74, - 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0c, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x10, 0x50, 0x61, 0x74, 0x68, 0x41, 0x75, 0x74, - 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x12, 0x2e, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x11, 0x2e, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, - 0x22, 0x00, 0x42, 0x2c, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x67, 0x61, 0x72, 0x65, 0x74, 0x68, 0x67, 0x65, 0x6f, 0x72, 0x67, 0x65, 0x2f, 0x62, 0x61, - 0x63, 0x6b, 0x72, 0x65, 0x73, 0x74, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x31, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x10, 0x50, 0x61, 0x74, 0x68, 0x41, + 0x75, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x12, 0x2e, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, + 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, + 0x73, 0x74, 0x22, 0x00, 0x42, 0x2c, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x72, 0x65, 0x74, 0x68, 0x67, 0x65, 0x6f, 0x72, 0x67, 0x65, 0x2f, + 0x62, 0x61, 0x63, 0x6b, 0x72, 0x65, 0x73, 0x74, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, + 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -893,76 +927,79 @@ func file_v1_service_proto_rawDescGZIP() []byte { return file_v1_service_proto_rawDescData } -var file_v1_service_proto_msgTypes = make([]protoimpl.MessageInfo, 10) +var file_v1_service_proto_msgTypes = make([]protoimpl.MessageInfo, 11) var file_v1_service_proto_goTypes = []interface{}{ - (*ClearHistoryRequest)(nil), // 0: v1.ClearHistoryRequest - (*ForgetRequest)(nil), // 1: v1.ForgetRequest - (*ListSnapshotsRequest)(nil), // 2: v1.ListSnapshotsRequest - (*GetOperationsRequest)(nil), // 3: v1.GetOperationsRequest - (*RestoreSnapshotRequest)(nil), // 4: v1.RestoreSnapshotRequest - (*ListSnapshotFilesRequest)(nil), // 5: v1.ListSnapshotFilesRequest - (*ListSnapshotFilesResponse)(nil), // 6: v1.ListSnapshotFilesResponse - (*LogDataRequest)(nil), // 7: v1.LogDataRequest - (*LsEntry)(nil), // 8: v1.LsEntry - (*RunCommandRequest)(nil), // 9: v1.RunCommandRequest - (*emptypb.Empty)(nil), // 10: google.protobuf.Empty - (*Config)(nil), // 11: v1.Config - (*Repo)(nil), // 12: v1.Repo - (*types.StringValue)(nil), // 13: types.StringValue - (*types.Int64Value)(nil), // 14: types.Int64Value - (*OperationEvent)(nil), // 15: v1.OperationEvent - (*OperationList)(nil), // 16: v1.OperationList - (*ResticSnapshotList)(nil), // 17: v1.ResticSnapshotList - (*types.BytesValue)(nil), // 18: types.BytesValue - (*types.StringList)(nil), // 19: types.StringList + (*OpSelector)(nil), // 0: v1.OpSelector + (*ClearHistoryRequest)(nil), // 1: v1.ClearHistoryRequest + (*ForgetRequest)(nil), // 2: v1.ForgetRequest + (*ListSnapshotsRequest)(nil), // 3: v1.ListSnapshotsRequest + (*GetOperationsRequest)(nil), // 4: v1.GetOperationsRequest + (*RestoreSnapshotRequest)(nil), // 5: v1.RestoreSnapshotRequest + (*ListSnapshotFilesRequest)(nil), // 6: v1.ListSnapshotFilesRequest + (*ListSnapshotFilesResponse)(nil), // 7: v1.ListSnapshotFilesResponse + (*LogDataRequest)(nil), // 8: v1.LogDataRequest + (*LsEntry)(nil), // 9: v1.LsEntry + (*RunCommandRequest)(nil), // 10: v1.RunCommandRequest + (*emptypb.Empty)(nil), // 11: google.protobuf.Empty + (*Config)(nil), // 12: v1.Config + (*Repo)(nil), // 13: v1.Repo + (*types.StringValue)(nil), // 14: types.StringValue + (*types.Int64Value)(nil), // 15: types.Int64Value + (*OperationEvent)(nil), // 16: v1.OperationEvent + (*OperationList)(nil), // 17: v1.OperationList + (*ResticSnapshotList)(nil), // 18: v1.ResticSnapshotList + (*types.BytesValue)(nil), // 19: types.BytesValue + (*types.StringList)(nil), // 20: types.StringList } var file_v1_service_proto_depIdxs = []int32{ - 8, // 0: v1.ListSnapshotFilesResponse.entries:type_name -> v1.LsEntry - 10, // 1: v1.Backrest.GetConfig:input_type -> google.protobuf.Empty - 11, // 2: v1.Backrest.SetConfig:input_type -> v1.Config - 12, // 3: v1.Backrest.AddRepo:input_type -> v1.Repo - 10, // 4: v1.Backrest.GetOperationEvents:input_type -> google.protobuf.Empty - 3, // 5: v1.Backrest.GetOperations:input_type -> v1.GetOperationsRequest - 2, // 6: v1.Backrest.ListSnapshots:input_type -> v1.ListSnapshotsRequest - 5, // 7: v1.Backrest.ListSnapshotFiles:input_type -> v1.ListSnapshotFilesRequest - 13, // 8: v1.Backrest.IndexSnapshots:input_type -> types.StringValue - 13, // 9: v1.Backrest.Backup:input_type -> types.StringValue - 13, // 10: v1.Backrest.Prune:input_type -> types.StringValue - 1, // 11: v1.Backrest.Forget:input_type -> v1.ForgetRequest - 4, // 12: v1.Backrest.Restore:input_type -> v1.RestoreSnapshotRequest - 13, // 13: v1.Backrest.Unlock:input_type -> types.StringValue - 13, // 14: v1.Backrest.Stats:input_type -> types.StringValue - 14, // 15: v1.Backrest.Cancel:input_type -> types.Int64Value - 7, // 16: v1.Backrest.GetLogs:input_type -> v1.LogDataRequest - 9, // 17: v1.Backrest.RunCommand:input_type -> v1.RunCommandRequest - 14, // 18: v1.Backrest.GetDownloadURL:input_type -> types.Int64Value - 0, // 19: v1.Backrest.ClearHistory:input_type -> v1.ClearHistoryRequest - 13, // 20: v1.Backrest.PathAutocomplete:input_type -> types.StringValue - 11, // 21: v1.Backrest.GetConfig:output_type -> v1.Config - 11, // 22: v1.Backrest.SetConfig:output_type -> v1.Config - 11, // 23: v1.Backrest.AddRepo:output_type -> v1.Config - 15, // 24: v1.Backrest.GetOperationEvents:output_type -> v1.OperationEvent - 16, // 25: v1.Backrest.GetOperations:output_type -> v1.OperationList - 17, // 26: v1.Backrest.ListSnapshots:output_type -> v1.ResticSnapshotList - 6, // 27: v1.Backrest.ListSnapshotFiles:output_type -> v1.ListSnapshotFilesResponse - 10, // 28: v1.Backrest.IndexSnapshots:output_type -> google.protobuf.Empty - 10, // 29: v1.Backrest.Backup:output_type -> google.protobuf.Empty - 10, // 30: v1.Backrest.Prune:output_type -> google.protobuf.Empty - 10, // 31: v1.Backrest.Forget:output_type -> google.protobuf.Empty - 10, // 32: v1.Backrest.Restore:output_type -> google.protobuf.Empty - 10, // 33: v1.Backrest.Unlock:output_type -> google.protobuf.Empty - 10, // 34: v1.Backrest.Stats:output_type -> google.protobuf.Empty - 10, // 35: v1.Backrest.Cancel:output_type -> google.protobuf.Empty - 18, // 36: v1.Backrest.GetLogs:output_type -> types.BytesValue - 18, // 37: v1.Backrest.RunCommand:output_type -> types.BytesValue - 13, // 38: v1.Backrest.GetDownloadURL:output_type -> types.StringValue - 10, // 39: v1.Backrest.ClearHistory:output_type -> google.protobuf.Empty - 19, // 40: v1.Backrest.PathAutocomplete:output_type -> types.StringList - 21, // [21:41] is the sub-list for method output_type - 1, // [1:21] is the sub-list for method input_type - 1, // [1:1] is the sub-list for extension type_name - 1, // [1:1] is the sub-list for extension extendee - 0, // [0:1] is the sub-list for field type_name + 0, // 0: v1.ClearHistoryRequest.selector:type_name -> v1.OpSelector + 0, // 1: v1.GetOperationsRequest.selector:type_name -> v1.OpSelector + 9, // 2: v1.ListSnapshotFilesResponse.entries:type_name -> v1.LsEntry + 11, // 3: v1.Backrest.GetConfig:input_type -> google.protobuf.Empty + 12, // 4: v1.Backrest.SetConfig:input_type -> v1.Config + 13, // 5: v1.Backrest.AddRepo:input_type -> v1.Repo + 11, // 6: v1.Backrest.GetOperationEvents:input_type -> google.protobuf.Empty + 4, // 7: v1.Backrest.GetOperations:input_type -> v1.GetOperationsRequest + 3, // 8: v1.Backrest.ListSnapshots:input_type -> v1.ListSnapshotsRequest + 6, // 9: v1.Backrest.ListSnapshotFiles:input_type -> v1.ListSnapshotFilesRequest + 14, // 10: v1.Backrest.IndexSnapshots:input_type -> types.StringValue + 14, // 11: v1.Backrest.Backup:input_type -> types.StringValue + 14, // 12: v1.Backrest.Prune:input_type -> types.StringValue + 2, // 13: v1.Backrest.Forget:input_type -> v1.ForgetRequest + 5, // 14: v1.Backrest.Restore:input_type -> v1.RestoreSnapshotRequest + 14, // 15: v1.Backrest.Unlock:input_type -> types.StringValue + 14, // 16: v1.Backrest.Stats:input_type -> types.StringValue + 15, // 17: v1.Backrest.Cancel:input_type -> types.Int64Value + 8, // 18: v1.Backrest.GetLogs:input_type -> v1.LogDataRequest + 10, // 19: v1.Backrest.RunCommand:input_type -> v1.RunCommandRequest + 15, // 20: v1.Backrest.GetDownloadURL:input_type -> types.Int64Value + 1, // 21: v1.Backrest.ClearHistory:input_type -> v1.ClearHistoryRequest + 14, // 22: v1.Backrest.PathAutocomplete:input_type -> types.StringValue + 12, // 23: v1.Backrest.GetConfig:output_type -> v1.Config + 12, // 24: v1.Backrest.SetConfig:output_type -> v1.Config + 12, // 25: v1.Backrest.AddRepo:output_type -> v1.Config + 16, // 26: v1.Backrest.GetOperationEvents:output_type -> v1.OperationEvent + 17, // 27: v1.Backrest.GetOperations:output_type -> v1.OperationList + 18, // 28: v1.Backrest.ListSnapshots:output_type -> v1.ResticSnapshotList + 7, // 29: v1.Backrest.ListSnapshotFiles:output_type -> v1.ListSnapshotFilesResponse + 11, // 30: v1.Backrest.IndexSnapshots:output_type -> google.protobuf.Empty + 11, // 31: v1.Backrest.Backup:output_type -> google.protobuf.Empty + 11, // 32: v1.Backrest.Prune:output_type -> google.protobuf.Empty + 11, // 33: v1.Backrest.Forget:output_type -> google.protobuf.Empty + 11, // 34: v1.Backrest.Restore:output_type -> google.protobuf.Empty + 11, // 35: v1.Backrest.Unlock:output_type -> google.protobuf.Empty + 11, // 36: v1.Backrest.Stats:output_type -> google.protobuf.Empty + 11, // 37: v1.Backrest.Cancel:output_type -> google.protobuf.Empty + 19, // 38: v1.Backrest.GetLogs:output_type -> types.BytesValue + 19, // 39: v1.Backrest.RunCommand:output_type -> types.BytesValue + 14, // 40: v1.Backrest.GetDownloadURL:output_type -> types.StringValue + 11, // 41: v1.Backrest.ClearHistory:output_type -> google.protobuf.Empty + 20, // 42: v1.Backrest.PathAutocomplete:output_type -> types.StringList + 23, // [23:43] is the sub-list for method output_type + 3, // [3:23] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name } func init() { file_v1_service_proto_init() } @@ -975,7 +1012,7 @@ func file_v1_service_proto_init() { file_v1_operations_proto_init() if !protoimpl.UnsafeEnabled { file_v1_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClearHistoryRequest); i { + switch v := v.(*OpSelector); i { case 0: return &v.state case 1: @@ -987,7 +1024,7 @@ func file_v1_service_proto_init() { } } file_v1_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ForgetRequest); i { + switch v := v.(*ClearHistoryRequest); i { case 0: return &v.state case 1: @@ -999,7 +1036,7 @@ func file_v1_service_proto_init() { } } file_v1_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListSnapshotsRequest); i { + switch v := v.(*ForgetRequest); i { case 0: return &v.state case 1: @@ -1011,7 +1048,7 @@ func file_v1_service_proto_init() { } } file_v1_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetOperationsRequest); i { + switch v := v.(*ListSnapshotsRequest); i { case 0: return &v.state case 1: @@ -1023,7 +1060,7 @@ func file_v1_service_proto_init() { } } file_v1_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RestoreSnapshotRequest); i { + switch v := v.(*GetOperationsRequest); i { case 0: return &v.state case 1: @@ -1035,7 +1072,7 @@ func file_v1_service_proto_init() { } } file_v1_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListSnapshotFilesRequest); i { + switch v := v.(*RestoreSnapshotRequest); i { case 0: return &v.state case 1: @@ -1047,7 +1084,7 @@ func file_v1_service_proto_init() { } } file_v1_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListSnapshotFilesResponse); i { + switch v := v.(*ListSnapshotFilesRequest); i { case 0: return &v.state case 1: @@ -1059,7 +1096,7 @@ func file_v1_service_proto_init() { } } file_v1_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LogDataRequest); i { + switch v := v.(*ListSnapshotFilesResponse); i { case 0: return &v.state case 1: @@ -1071,7 +1108,7 @@ func file_v1_service_proto_init() { } } file_v1_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LsEntry); i { + switch v := v.(*LogDataRequest); i { case 0: return &v.state case 1: @@ -1083,6 +1120,18 @@ func file_v1_service_proto_init() { } } file_v1_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LsEntry); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v1_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RunCommandRequest); i { case 0: return &v.state @@ -1101,7 +1150,7 @@ func file_v1_service_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_v1_service_proto_rawDesc, NumEnums: 0, - NumMessages: 10, + NumMessages: 11, NumExtensions: 0, NumServices: 1, }, diff --git a/internal/api/backresthandler.go b/internal/api/backresthandler.go index 247ece5f..395a6659 100644 --- a/internal/api/backresthandler.go +++ b/internal/api/backresthandler.go @@ -8,6 +8,7 @@ import ( "fmt" "os" "path" + "reflect" "time" "connectrpc.com/connect" @@ -246,32 +247,18 @@ func (s *BackrestHandler) GetOperations(ctx context.Context, req *connect.Reques if req.Msg.LastN != 0 { idCollector = indexutil.CollectLastN(int(req.Msg.LastN)) } + q, err := opSelectorToQuery(req.Msg.Selector) + if err != nil { + return nil, err + } - var err error var ops []*v1.Operation opCollector := func(op *v1.Operation) error { ops = append(ops, op) return nil } - if req.Msg.RepoId != "" && req.Msg.PlanId != "" { - return nil, errors.New("cannot specify both repoId and planId") - } else if req.Msg.PlanId != "" { - err = s.oplog.ForEachByPlan(req.Msg.PlanId, idCollector, opCollector) - } else if req.Msg.RepoId != "" { - err = s.oplog.ForEachByRepo(req.Msg.RepoId, idCollector, opCollector) - } else if req.Msg.SnapshotId != "" { - err = s.oplog.ForEachBySnapshotId(req.Msg.SnapshotId, idCollector, opCollector) - } else if req.Msg.FlowId != 0 { - err = s.oplog.ForEachByFlowId(req.Msg.FlowId, idCollector, opCollector) - } else if len(req.Msg.Ids) > 0 { - ops = make([]*v1.Operation, 0, len(req.Msg.Ids)) - for i, id := range req.Msg.Ids { - op, err := s.oplog.Get(id) - if err != nil { - return nil, fmt.Errorf("failed to get operation %d: %w", i, err) - } - ops = append(ops, op) - } + if !reflect.DeepEqual(q, oplog.Query{}) { + err = s.oplog.ForEach(q, idCollector, opCollector) } else { err = s.oplog.ForAll(opCollector) } @@ -489,10 +476,6 @@ func (s *BackrestHandler) ClearHistory(ctx context.Context, req *connect.Request var err error var ids []int64 - if len(req.Msg.Ops) != 0 { - ids = append(ids, req.Msg.Ops...) - } - opCollector := func(op *v1.Operation) error { if !req.Msg.OnlyFailed || op.Status == v1.OperationStatus_STATUS_ERROR { ids = append(ids, op.Id) @@ -500,14 +483,15 @@ func (s *BackrestHandler) ClearHistory(ctx context.Context, req *connect.Request return nil } - if req.Msg.RepoId != "" && req.Msg.PlanId != "" { - return nil, errors.New("cannot specify both repoId and planId") - } else if req.Msg.PlanId != "" { - err = s.oplog.ForEachByPlan(req.Msg.PlanId, indexutil.CollectAll(), opCollector) - } else if req.Msg.RepoId != "" { - err = s.oplog.ForEachByRepo(req.Msg.RepoId, indexutil.CollectAll(), opCollector) + q, err := opSelectorToQuery(req.Msg.Selector) + if err != nil { + return nil, err + } + if !reflect.DeepEqual(q, oplog.Query{}) { + err = s.oplog.ForEach(q, indexutil.CollectAll(), opCollector) + } else { + err = s.oplog.ForAll(opCollector) } - if err != nil { return nil, fmt.Errorf("failed to get operations to delete: %w", err) } @@ -566,3 +550,20 @@ func (s *BackrestHandler) PathAutocomplete(ctx context.Context, path *connect.Re return connect.NewResponse(&types.StringList{Values: paths}), nil } + +func opSelectorToQuery(sel *v1.OpSelector) (oplog.Query, error) { + if sel == nil { + return oplog.Query{}, errors.New("empty selector") + } + q := oplog.Query{ + RepoId: sel.RepoId, + PlanId: sel.PlanId, + SnapshotId: sel.SnapshotId, + FlowId: sel.FlowId, + } + if len(sel.Ids) > 0 && reflect.DeepEqual(q, oplog.Query{}) { + return oplog.Query{}, errors.New("cannot specify both query and ids") + } + q.Ids = sel.Ids + return q, nil +} diff --git a/internal/oplog/oplog.go b/internal/oplog/oplog.go index bf8f9e03..1c1438c4 100644 --- a/internal/oplog/oplog.go +++ b/internal/oplog/oplog.go @@ -13,7 +13,6 @@ import ( "github.com/garethgeorge/backrest/internal/oplog/indexutil" "github.com/garethgeorge/backrest/internal/oplog/serializationutil" "github.com/garethgeorge/backrest/internal/protoutil" - "github.com/garethgeorge/backrest/pkg/restic" bolt "go.etcd.io/bbolt" "go.uber.org/zap" "google.golang.org/protobuf/proto" @@ -361,33 +360,41 @@ func (o *OpLog) Get(id int64) (*v1.Operation, error) { return op, nil } -func (o *OpLog) ForEachByRepo(repoId string, collector indexutil.Collector, do func(op *v1.Operation) error) error { - return o.db.View(func(tx *bolt.Tx) error { - ids := collector(indexutil.IndexSearchByteValue(tx.Bucket(RepoIndexBucket), []byte(repoId))) - return o.forOpsByIds(tx, ids, do) - }) -} - -func (o *OpLog) ForEachByPlan(planId string, collector indexutil.Collector, do func(op *v1.Operation) error) error { - return o.db.View(func(tx *bolt.Tx) error { - ids := collector(indexutil.IndexSearchByteValue(tx.Bucket(PlanIndexBucket), []byte(planId))) - return o.forOpsByIds(tx, ids, do) - }) -} - -func (o *OpLog) ForEachBySnapshotId(snapshotId string, collector indexutil.Collector, do func(op *v1.Operation) error) error { - if err := restic.ValidateSnapshotId(snapshotId); err != nil { - return nil - } - return o.db.View(func(tx *bolt.Tx) error { - ids := collector(indexutil.IndexSearchByteValue(tx.Bucket(SnapshotIndexBucket), []byte(snapshotId))) - return o.forOpsByIds(tx, ids, do) - }) +// Query represents a query to the operation log. +type Query struct { + RepoId string + PlanId string + SnapshotId string + FlowId int64 + InstanceId string + Ids []int64 } -func (o *OpLog) ForEachByFlowId(flowId int64, collector indexutil.Collector, do func(op *v1.Operation) error) error { +func (o *OpLog) ForEach(query Query, collector indexutil.Collector, do func(op *v1.Operation) error) error { return o.db.View(func(tx *bolt.Tx) error { - ids := collector(indexutil.IndexSearchByteValue(tx.Bucket(FlowIdIndexBucket), serializationutil.Itob(flowId))) + iterators := make([]indexutil.IndexIterator, 0, 5) + if query.RepoId != "" { + iterators = append(iterators, indexutil.IndexSearchByteValue(tx.Bucket(RepoIndexBucket), []byte(query.RepoId))) + } + if query.PlanId != "" { + iterators = append(iterators, indexutil.IndexSearchByteValue(tx.Bucket(PlanIndexBucket), []byte(query.PlanId))) + } + if query.SnapshotId != "" { + iterators = append(iterators, indexutil.IndexSearchByteValue(tx.Bucket(SnapshotIndexBucket), []byte(query.SnapshotId))) + } + if query.FlowId != 0 { + iterators = append(iterators, indexutil.IndexSearchByteValue(tx.Bucket(FlowIdIndexBucket), serializationutil.Itob(query.FlowId))) + } + if query.InstanceId != "" { + iterators = append(iterators, indexutil.IndexSearchByteValue(tx.Bucket(InstanceIndexBucket), []byte(query.InstanceId))) + } + if len(iterators) == 0 { + return errors.New("no query parameters provided") + } + ids := collector(indexutil.NewJoinIterator(iterators...)) + if len(query.Ids) > 0 { + ids = append(ids, query.Ids...) + } return o.forOpsByIds(tx, ids, do) }) } diff --git a/internal/oplog/oplog_test.go b/internal/oplog/oplog_test.go index 08c1d089..2315b126 100644 --- a/internal/oplog/oplog_test.go +++ b/internal/oplog/oplog_test.go @@ -198,9 +198,9 @@ func TestListOperation(t *testing.T) { return nil } if tc.byPlan { - err = log.ForEachByPlan(tc.id, indexutil.CollectAll(), collect) + err = log.ForEach(Query{PlanId: tc.id}, indexutil.CollectAll(), collect) } else if tc.byRepo { - err = log.ForEachByRepo(tc.id, indexutil.CollectAll(), collect) + err = log.ForEach(Query{RepoId: tc.id}, indexutil.CollectAll(), collect) } else { t.Fatalf("must specify byPlan or byRepo") } @@ -237,7 +237,7 @@ func TestListByFlowId(t *testing.T) { } var ops []*v1.Operation - if err := log.ForEachByFlowId(1, indexutil.CollectAll(), func(op *v1.Operation) error { + if err := log.ForEach(Query{FlowId: 1}, indexutil.CollectAll(), func(op *v1.Operation) error { ops = append(ops, op) return nil }); err != nil { @@ -297,7 +297,7 @@ func TestIndexSnapshot(t *testing.T) { } var ops []*v1.Operation - if err := log.ForEachBySnapshotId(snapshotId, indexutil.CollectAll(), func(op *v1.Operation) error { + if err := log.ForEach(Query{SnapshotId: snapshotId}, indexutil.CollectAll(), func(op *v1.Operation) error { ops = append(ops, op) return nil }); err != nil { @@ -370,7 +370,7 @@ func collectMessages(ops []*v1.Operation) []string { func countByRepoHelper(t *testing.T, log *OpLog, repo string, expected int) { t.Helper() count := 0 - if err := log.ForEachByRepo(repo, indexutil.CollectAll(), func(op *v1.Operation) error { + if err := log.ForEach(Query{RepoId: repo}, indexutil.CollectAll(), func(op *v1.Operation) error { count += 1 return nil }); err != nil { @@ -384,7 +384,7 @@ func countByRepoHelper(t *testing.T, log *OpLog, repo string, expected int) { func countByPlanHelper(t *testing.T, log *OpLog, plan string, expected int) { t.Helper() count := 0 - if err := log.ForEachByPlan(plan, indexutil.CollectAll(), func(op *v1.Operation) error { + if err := log.ForEach(Query{PlanId: plan}, indexutil.CollectAll(), func(op *v1.Operation) error { count += 1 return nil }); err != nil { @@ -398,7 +398,7 @@ func countByPlanHelper(t *testing.T, log *OpLog, plan string, expected int) { func countBySnapshotIdHelper(t *testing.T, log *OpLog, snapshotId string, expected int) { t.Helper() count := 0 - if err := log.ForEachBySnapshotId(snapshotId, indexutil.CollectAll(), func(op *v1.Operation) error { + if err := log.ForEach(Query{SnapshotId: snapshotId}, indexutil.CollectAll(), func(op *v1.Operation) error { count += 1 return nil }); err != nil { diff --git a/internal/orchestrator/tasks/flowidutil.go b/internal/orchestrator/tasks/flowidutil.go index a821eaab..5efdf5b0 100644 --- a/internal/orchestrator/tasks/flowidutil.go +++ b/internal/orchestrator/tasks/flowidutil.go @@ -9,9 +9,9 @@ import ( ) // FlowIDForSnapshotID returns the flow ID associated with the backup task that created snapshot ID or 0 if not found. -func FlowIDForSnapshotID(oplog *oplog.OpLog, snapshotID string) (int64, error) { +func FlowIDForSnapshotID(log *oplog.OpLog, snapshotID string) (int64, error) { var flowID int64 - if err := oplog.ForEachBySnapshotId(snapshotID, indexutil.CollectAll(), func(op *v1.Operation) error { + if err := log.ForEach(oplog.Query{SnapshotId: snapshotID}, indexutil.CollectAll(), func(op *v1.Operation) error { if _, ok := op.Op.(*v1.Operation_OperationBackup); !ok { return nil } diff --git a/internal/orchestrator/tasks/taskforget.go b/internal/orchestrator/tasks/taskforget.go index 2ff91eea..78774486 100644 --- a/internal/orchestrator/tasks/taskforget.go +++ b/internal/orchestrator/tasks/taskforget.go @@ -51,7 +51,7 @@ func NewOneoffForgetTask(repoID, planID string, flowID int64, at time.Time) Task func forgetHelper(ctx context.Context, st ScheduledTask, taskRunner TaskRunner) error { t := st.Task - oplog := taskRunner.OpLog() + log := taskRunner.OpLog() r, err := taskRunner.GetRepoOrchestrator(t.RepoID()) if err != nil { @@ -69,7 +69,7 @@ func forgetHelper(ctx context.Context, st ScheduledTask, taskRunner TaskRunner) } tags := []string{repo.TagForPlan(t.PlanID())} - if compat, err := useLegacyCompatMode(oplog, t.PlanID()); err != nil { + if compat, err := useLegacyCompatMode(log, t.RepoID(), t.PlanID()); err != nil { return fmt.Errorf("check legacy compat mode: %w", err) } else if !compat { tags = append(tags, repo.TagForInstance(taskRunner.Config().Instance)) @@ -95,7 +95,7 @@ func forgetHelper(ctx context.Context, st ScheduledTask, taskRunner TaskRunner) var ops []*v1.Operation for _, forgot := range forgot { - if e := taskRunner.OpLog().ForEachBySnapshotId(forgot.Id, indexutil.CollectAll(), func(op *v1.Operation) error { + if e := taskRunner.OpLog().ForEach(oplog.Query{SnapshotId: forgot.Id}, indexutil.CollectAll(), func(op *v1.Operation) error { ops = append(ops, op) return nil }); e != nil { @@ -126,9 +126,9 @@ func forgetHelper(ctx context.Context, st ScheduledTask, taskRunner TaskRunner) // useLegacyCompatMode checks if there are any snapshots that were created without a `created-by` tag still exist in the repo. // The property is overridden if mixed `created-by` tag values are found. -func useLegacyCompatMode(oplog *oplog.OpLog, planID string) (bool, error) { +func useLegacyCompatMode(log *oplog.OpLog, repoID, planID string) (bool, error) { instanceIDs := make(map[string]struct{}) - if err := oplog.ForEachByPlan(planID, indexutil.CollectAll(), func(op *v1.Operation) error { + if err := log.ForEach(oplog.Query{RepoId: repoID, PlanId: planID}, indexutil.CollectAll(), func(op *v1.Operation) error { if snapshotOp, ok := op.Op.(*v1.Operation_OperationIndexSnapshot); ok && !snapshotOp.OperationIndexSnapshot.GetForgot() { tags := snapshotOp.OperationIndexSnapshot.GetSnapshot().GetTags() instanceIDs[repo.InstanceIDFromTags(tags)] = struct{}{} diff --git a/internal/orchestrator/tasks/taskindexsnapshots.go b/internal/orchestrator/tasks/taskindexsnapshots.go index ea109b9a..4547fa4a 100644 --- a/internal/orchestrator/tasks/taskindexsnapshots.go +++ b/internal/orchestrator/tasks/taskindexsnapshots.go @@ -164,7 +164,7 @@ func indexCurrentSnapshotIdsForRepo(log *oplog.OpLog, repoId string) (map[string knownIds := make(map[string]int64) startTime := time.Now() - if err := log.ForEachByRepo(repoId, indexutil.CollectAll(), func(op *v1.Operation) error { + if err := log.ForEach(oplog.Query{RepoId: repoId}, indexutil.CollectAll(), func(op *v1.Operation) error { if snapshotOp, ok := op.Op.(*v1.Operation_OperationIndexSnapshot); ok { if snapshotOp.OperationIndexSnapshot == nil { return fmt.Errorf("operation %q has nil OperationIndexSnapshot, this shouldn't be possible", op.Id) diff --git a/internal/orchestrator/tasks/taskprune.go b/internal/orchestrator/tasks/taskprune.go index c3ac7a33..2a5590df 100644 --- a/internal/orchestrator/tasks/taskprune.go +++ b/internal/orchestrator/tasks/taskprune.go @@ -70,7 +70,7 @@ func (t *PruneTask) shouldRun(now time.Time, runner TaskRunner) (bool, error) { func (t *PruneTask) getNextPruneTime(runner TaskRunner, policy *v1.PrunePolicy) (time.Time, error) { var lastPruneTime time.Time - runner.OpLog().ForEachByRepo(t.RepoID(), indexutil.Reversed(indexutil.CollectAll()), func(op *v1.Operation) error { + runner.OpLog().ForEach(oplog.Query{RepoId: t.RepoID()}, indexutil.Reversed(indexutil.CollectAll()), func(op *v1.Operation) error { if _, ok := op.Op.(*v1.Operation_OperationPrune); ok { lastPruneTime = time.Unix(0, op.UnixTimeStartMs*int64(time.Millisecond)) return oplog.ErrStopIteration diff --git a/proto/v1/config.proto b/proto/v1/config.proto index f549beb0..bd5b74d8 100644 --- a/proto/v1/config.proto +++ b/proto/v1/config.proto @@ -87,6 +87,12 @@ message PrunePolicy { int32 max_unused_bytes = 101 [json_name="maxUnusedBytes"]; // max number of bytes that can be unused before prune is run. } +message CheckPolicy { + oneof policy { + int32 max_frequency_days = 1 [json_name="maxFrequencyDays"]; + } +} + message Hook { enum Condition { CONDITION_UNKNOWN = 0; diff --git a/proto/v1/service.proto b/proto/v1/service.proto index 816ccade..27066baa 100644 --- a/proto/v1/service.proto +++ b/proto/v1/service.proto @@ -66,11 +66,18 @@ service Backrest { rpc PathAutocomplete (types.StringValue) returns (types.StringList) {} } +// OpSelector is a message that can be used to select operations e.g. by query. +message OpSelector { + repeated int64 ids = 1; + string repo_id = 2; + string plan_id = 3; + string snapshot_id = 4; + int64 flow_id = 5; +} + message ClearHistoryRequest { - string repo_id = 1; - string plan_id = 2; - bool only_failed = 3; - repeated int64 ops = 4; + OpSelector selector = 1; + bool only_failed = 2; } message ForgetRequest { @@ -85,12 +92,8 @@ message ListSnapshotsRequest { } message GetOperationsRequest { - string repo_id = 1; - string plan_id = 2; - string snapshot_id = 4; - int64 flow_id = 6; - repeated int64 ids = 5; - int64 last_n = 3; // limit to the last n operations + OpSelector selector = 1; + int64 last_n = 2; // limit to the last n operations } message RestoreSnapshotRequest { diff --git a/webui/gen/ts/google/api/http_pb.ts b/webui/gen/ts/google/api/http_pb.ts index 0eb97e5f..555c160e 100644 --- a/webui/gen/ts/google/api/http_pb.ts +++ b/webui/gen/ts/google/api/http_pb.ts @@ -17,14 +17,7 @@ /* eslint-disable */ // @ts-nocheck -import type { - BinaryReadOptions, - FieldList, - JsonReadOptions, - JsonValue, - PartialMessage, - PlainMessage, -} from "@bufbuild/protobuf"; +import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf"; import { Message, proto3 } from "@bufbuild/protobuf"; /** @@ -65,39 +58,22 @@ export class Http extends Message { static readonly typeName = "google.api.Http"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "rules", kind: "message", T: HttpRule, repeated: true }, - { - no: 2, - name: "fully_decode_reserved_expansion", - kind: "scalar", - T: 8 /* ScalarType.BOOL */, - }, + { no: 2, name: "fully_decode_reserved_expansion", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): Http { + static fromBinary(bytes: Uint8Array, options?: Partial): Http { return new Http().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): Http { + static fromJson(jsonValue: JsonValue, options?: Partial): Http { return new Http().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): Http { + static fromJsonString(jsonString: string, options?: Partial): Http { return new Http().fromJsonString(jsonString, options); } - static equals( - a: Http | PlainMessage | undefined, - b: Http | PlainMessage | undefined, - ): boolean { + static equals(a: Http | PlainMessage | undefined, b: Http | PlainMessage | undefined): boolean { return proto3.util.equals(Http, a, b); } } @@ -396,66 +372,59 @@ export class HttpRule extends Message { * * @generated from oneof google.api.HttpRule.pattern */ - pattern: - | { - /** - * Maps to HTTP GET. Used for listing and getting information about - * resources. - * - * @generated from field: string get = 2; - */ - value: string; - case: "get"; - } - | { - /** - * Maps to HTTP PUT. Used for replacing a resource. - * - * @generated from field: string put = 3; - */ - value: string; - case: "put"; - } - | { - /** - * Maps to HTTP POST. Used for creating a resource or performing an action. - * - * @generated from field: string post = 4; - */ - value: string; - case: "post"; - } - | { - /** - * Maps to HTTP DELETE. Used for deleting a resource. - * - * @generated from field: string delete = 5; - */ - value: string; - case: "delete"; - } - | { - /** - * Maps to HTTP PATCH. Used for updating a resource. - * - * @generated from field: string patch = 6; - */ - value: string; - case: "patch"; - } - | { - /** - * The custom pattern is used for specifying an HTTP method that is not - * included in the `pattern` field, such as HEAD, or "*" to leave the - * HTTP method unspecified for this rule. The wild-card rule is useful - * for services that provide content to Web (HTML) clients. - * - * @generated from field: google.api.CustomHttpPattern custom = 8; - */ - value: CustomHttpPattern; - case: "custom"; - } - | { case: undefined; value?: undefined } = { case: undefined }; + pattern: { + /** + * Maps to HTTP GET. Used for listing and getting information about + * resources. + * + * @generated from field: string get = 2; + */ + value: string; + case: "get"; + } | { + /** + * Maps to HTTP PUT. Used for replacing a resource. + * + * @generated from field: string put = 3; + */ + value: string; + case: "put"; + } | { + /** + * Maps to HTTP POST. Used for creating a resource or performing an action. + * + * @generated from field: string post = 4; + */ + value: string; + case: "post"; + } | { + /** + * Maps to HTTP DELETE. Used for deleting a resource. + * + * @generated from field: string delete = 5; + */ + value: string; + case: "delete"; + } | { + /** + * Maps to HTTP PATCH. Used for updating a resource. + * + * @generated from field: string patch = 6; + */ + value: string; + case: "patch"; + } | { + /** + * The custom pattern is used for specifying an HTTP method that is not + * included in the `pattern` field, such as HEAD, or "*" to leave the + * HTTP method unspecified for this rule. The wild-card rule is useful + * for services that provide content to Web (HTML) clients. + * + * @generated from field: google.api.CustomHttpPattern custom = 8; + */ + value: CustomHttpPattern; + case: "custom"; + } | { case: undefined; value?: undefined } = { case: undefined }; /** * The name of the request field whose value is mapped to the HTTP request @@ -499,89 +468,30 @@ export class HttpRule extends Message { static readonly typeName = "google.api.HttpRule"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "selector", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { - no: 2, - name: "get", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - oneof: "pattern", - }, - { - no: 3, - name: "put", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - oneof: "pattern", - }, - { - no: 4, - name: "post", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - oneof: "pattern", - }, - { - no: 5, - name: "delete", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - oneof: "pattern", - }, - { - no: 6, - name: "patch", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - oneof: "pattern", - }, - { - no: 8, - name: "custom", - kind: "message", - T: CustomHttpPattern, - oneof: "pattern", - }, + { no: 2, name: "get", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "pattern" }, + { no: 3, name: "put", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "pattern" }, + { no: 4, name: "post", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "pattern" }, + { no: 5, name: "delete", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "pattern" }, + { no: 6, name: "patch", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "pattern" }, + { no: 8, name: "custom", kind: "message", T: CustomHttpPattern, oneof: "pattern" }, { no: 7, name: "body", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { - no: 12, - name: "response_body", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - }, - { - no: 11, - name: "additional_bindings", - kind: "message", - T: HttpRule, - repeated: true, - }, + { no: 12, name: "response_body", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 11, name: "additional_bindings", kind: "message", T: HttpRule, repeated: true }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): HttpRule { + static fromBinary(bytes: Uint8Array, options?: Partial): HttpRule { return new HttpRule().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): HttpRule { + static fromJson(jsonValue: JsonValue, options?: Partial): HttpRule { return new HttpRule().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): HttpRule { + static fromJsonString(jsonString: string, options?: Partial): HttpRule { return new HttpRule().fromJsonString(jsonString, options); } - static equals( - a: HttpRule | PlainMessage | undefined, - b: HttpRule | PlainMessage | undefined, - ): boolean { + static equals(a: HttpRule | PlainMessage | undefined, b: HttpRule | PlainMessage | undefined): boolean { return proto3.util.equals(HttpRule, a, b); } } @@ -618,31 +528,20 @@ export class CustomHttpPattern extends Message { { no: 2, name: "path", kind: "scalar", T: 9 /* ScalarType.STRING */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): CustomHttpPattern { + static fromBinary(bytes: Uint8Array, options?: Partial): CustomHttpPattern { return new CustomHttpPattern().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): CustomHttpPattern { + static fromJson(jsonValue: JsonValue, options?: Partial): CustomHttpPattern { return new CustomHttpPattern().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): CustomHttpPattern { + static fromJsonString(jsonString: string, options?: Partial): CustomHttpPattern { return new CustomHttpPattern().fromJsonString(jsonString, options); } - static equals( - a: CustomHttpPattern | PlainMessage | undefined, - b: CustomHttpPattern | PlainMessage | undefined, - ): boolean { + static equals(a: CustomHttpPattern | PlainMessage | undefined, b: CustomHttpPattern | PlainMessage | undefined): boolean { return proto3.util.equals(CustomHttpPattern, a, b); } } + diff --git a/webui/gen/ts/types/value_pb.ts b/webui/gen/ts/types/value_pb.ts index d84ad211..87947f9f 100644 --- a/webui/gen/ts/types/value_pb.ts +++ b/webui/gen/ts/types/value_pb.ts @@ -3,14 +3,7 @@ /* eslint-disable */ // @ts-nocheck -import type { - BinaryReadOptions, - FieldList, - JsonReadOptions, - JsonValue, - PartialMessage, - PlainMessage, -} from "@bufbuild/protobuf"; +import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf"; import { Message, proto3, protoInt64 } from "@bufbuild/protobuf"; /** @@ -33,31 +26,19 @@ export class StringValue extends Message { { no: 1, name: "value", kind: "scalar", T: 9 /* ScalarType.STRING */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): StringValue { + static fromBinary(bytes: Uint8Array, options?: Partial): StringValue { return new StringValue().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): StringValue { + static fromJson(jsonValue: JsonValue, options?: Partial): StringValue { return new StringValue().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): StringValue { + static fromJsonString(jsonString: string, options?: Partial): StringValue { return new StringValue().fromJsonString(jsonString, options); } - static equals( - a: StringValue | PlainMessage | undefined, - b: StringValue | PlainMessage | undefined, - ): boolean { + static equals(a: StringValue | PlainMessage | undefined, b: StringValue | PlainMessage | undefined): boolean { return proto3.util.equals(StringValue, a, b); } } @@ -82,31 +63,19 @@ export class BytesValue extends Message { { no: 1, name: "value", kind: "scalar", T: 12 /* ScalarType.BYTES */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): BytesValue { + static fromBinary(bytes: Uint8Array, options?: Partial): BytesValue { return new BytesValue().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): BytesValue { + static fromJson(jsonValue: JsonValue, options?: Partial): BytesValue { return new BytesValue().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): BytesValue { + static fromJsonString(jsonString: string, options?: Partial): BytesValue { return new BytesValue().fromJsonString(jsonString, options); } - static equals( - a: BytesValue | PlainMessage | undefined, - b: BytesValue | PlainMessage | undefined, - ): boolean { + static equals(a: BytesValue | PlainMessage | undefined, b: BytesValue | PlainMessage | undefined): boolean { return proto3.util.equals(BytesValue, a, b); } } @@ -128,40 +97,22 @@ export class StringList extends Message { static readonly runtime: typeof proto3 = proto3; static readonly typeName = "types.StringList"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { - no: 1, - name: "values", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - repeated: true, - }, + { no: 1, name: "values", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): StringList { + static fromBinary(bytes: Uint8Array, options?: Partial): StringList { return new StringList().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): StringList { + static fromJson(jsonValue: JsonValue, options?: Partial): StringList { return new StringList().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): StringList { + static fromJsonString(jsonString: string, options?: Partial): StringList { return new StringList().fromJsonString(jsonString, options); } - static equals( - a: StringList | PlainMessage | undefined, - b: StringList | PlainMessage | undefined, - ): boolean { + static equals(a: StringList | PlainMessage | undefined, b: StringList | PlainMessage | undefined): boolean { return proto3.util.equals(StringList, a, b); } } @@ -186,31 +137,19 @@ export class Int64Value extends Message { { no: 1, name: "value", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): Int64Value { + static fromBinary(bytes: Uint8Array, options?: Partial): Int64Value { return new Int64Value().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): Int64Value { + static fromJson(jsonValue: JsonValue, options?: Partial): Int64Value { return new Int64Value().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): Int64Value { + static fromJsonString(jsonString: string, options?: Partial): Int64Value { return new Int64Value().fromJsonString(jsonString, options); } - static equals( - a: Int64Value | PlainMessage | undefined, - b: Int64Value | PlainMessage | undefined, - ): boolean { + static equals(a: Int64Value | PlainMessage | undefined, b: Int64Value | PlainMessage | undefined): boolean { return proto3.util.equals(Int64Value, a, b); } } @@ -226,33 +165,23 @@ export class Empty extends Message { static readonly runtime: typeof proto3 = proto3; static readonly typeName = "types.Empty"; - static readonly fields: FieldList = proto3.util.newFieldList(() => []); + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): Empty { + static fromBinary(bytes: Uint8Array, options?: Partial): Empty { return new Empty().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): Empty { + static fromJson(jsonValue: JsonValue, options?: Partial): Empty { return new Empty().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): Empty { + static fromJsonString(jsonString: string, options?: Partial): Empty { return new Empty().fromJsonString(jsonString, options); } - static equals( - a: Empty | PlainMessage | undefined, - b: Empty | PlainMessage | undefined, - ): boolean { + static equals(a: Empty | PlainMessage | undefined, b: Empty | PlainMessage | undefined): boolean { return proto3.util.equals(Empty, a, b); } } + diff --git a/webui/gen/ts/v1/authentication_connect.ts b/webui/gen/ts/v1/authentication_connect.ts index 62fd3c2d..3b3e83be 100644 --- a/webui/gen/ts/v1/authentication_connect.ts +++ b/webui/gen/ts/v1/authentication_connect.ts @@ -31,5 +31,6 @@ export const Authentication = { O: StringValue, kind: MethodKind.Unary, }, - }, + } } as const; + diff --git a/webui/gen/ts/v1/authentication_pb.ts b/webui/gen/ts/v1/authentication_pb.ts index 23a547c4..6f6e77c6 100644 --- a/webui/gen/ts/v1/authentication_pb.ts +++ b/webui/gen/ts/v1/authentication_pb.ts @@ -3,14 +3,7 @@ /* eslint-disable */ // @ts-nocheck -import type { - BinaryReadOptions, - FieldList, - JsonReadOptions, - JsonValue, - PartialMessage, - PlainMessage, -} from "@bufbuild/protobuf"; +import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf"; import { Message, proto3 } from "@bufbuild/protobuf"; /** @@ -39,31 +32,19 @@ export class LoginRequest extends Message { { no: 2, name: "password", kind: "scalar", T: 9 /* ScalarType.STRING */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): LoginRequest { + static fromBinary(bytes: Uint8Array, options?: Partial): LoginRequest { return new LoginRequest().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): LoginRequest { + static fromJson(jsonValue: JsonValue, options?: Partial): LoginRequest { return new LoginRequest().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): LoginRequest { + static fromJsonString(jsonString: string, options?: Partial): LoginRequest { return new LoginRequest().fromJsonString(jsonString, options); } - static equals( - a: LoginRequest | PlainMessage | undefined, - b: LoginRequest | PlainMessage | undefined, - ): boolean { + static equals(a: LoginRequest | PlainMessage | undefined, b: LoginRequest | PlainMessage | undefined): boolean { return proto3.util.equals(LoginRequest, a, b); } } @@ -90,31 +71,20 @@ export class LoginResponse extends Message { { no: 1, name: "token", kind: "scalar", T: 9 /* ScalarType.STRING */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): LoginResponse { + static fromBinary(bytes: Uint8Array, options?: Partial): LoginResponse { return new LoginResponse().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): LoginResponse { + static fromJson(jsonValue: JsonValue, options?: Partial): LoginResponse { return new LoginResponse().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): LoginResponse { + static fromJsonString(jsonString: string, options?: Partial): LoginResponse { return new LoginResponse().fromJsonString(jsonString, options); } - static equals( - a: LoginResponse | PlainMessage | undefined, - b: LoginResponse | PlainMessage | undefined, - ): boolean { + static equals(a: LoginResponse | PlainMessage | undefined, b: LoginResponse | PlainMessage | undefined): boolean { return proto3.util.equals(LoginResponse, a, b); } } + diff --git a/webui/gen/ts/v1/config_pb.ts b/webui/gen/ts/v1/config_pb.ts index 829f64fc..244c6ddb 100644 --- a/webui/gen/ts/v1/config_pb.ts +++ b/webui/gen/ts/v1/config_pb.ts @@ -3,14 +3,7 @@ /* eslint-disable */ // @ts-nocheck -import type { - BinaryReadOptions, - FieldList, - JsonReadOptions, - JsonValue, - PartialMessage, - PlainMessage, -} from "@bufbuild/protobuf"; +import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf"; import { Message, proto3 } from "@bufbuild/protobuf"; /** @@ -30,40 +23,22 @@ export class HubConfig extends Message { static readonly runtime: typeof proto3 = proto3; static readonly typeName = "v1.HubConfig"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { - no: 1, - name: "instances", - kind: "message", - T: HubConfig_InstanceInfo, - repeated: true, - }, + { no: 1, name: "instances", kind: "message", T: HubConfig_InstanceInfo, repeated: true }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): HubConfig { + static fromBinary(bytes: Uint8Array, options?: Partial): HubConfig { return new HubConfig().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): HubConfig { + static fromJson(jsonValue: JsonValue, options?: Partial): HubConfig { return new HubConfig().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): HubConfig { + static fromJsonString(jsonString: string, options?: Partial): HubConfig { return new HubConfig().fromJsonString(jsonString, options); } - static equals( - a: HubConfig | PlainMessage | undefined, - b: HubConfig | PlainMessage | undefined, - ): boolean { + static equals(a: HubConfig | PlainMessage | undefined, b: HubConfig | PlainMessage | undefined): boolean { return proto3.util.equals(HubConfig, a, b); } } @@ -96,37 +71,19 @@ export class HubConfig_InstanceInfo extends Message { { no: 2, name: "secret", kind: "scalar", T: 9 /* ScalarType.STRING */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): HubConfig_InstanceInfo { + static fromBinary(bytes: Uint8Array, options?: Partial): HubConfig_InstanceInfo { return new HubConfig_InstanceInfo().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): HubConfig_InstanceInfo { + static fromJson(jsonValue: JsonValue, options?: Partial): HubConfig_InstanceInfo { return new HubConfig_InstanceInfo().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): HubConfig_InstanceInfo { + static fromJsonString(jsonString: string, options?: Partial): HubConfig_InstanceInfo { return new HubConfig_InstanceInfo().fromJsonString(jsonString, options); } - static equals( - a: - | HubConfig_InstanceInfo - | PlainMessage - | undefined, - b: - | HubConfig_InstanceInfo - | PlainMessage - | undefined, - ): boolean { + static equals(a: HubConfig_InstanceInfo | PlainMessage | undefined, b: HubConfig_InstanceInfo | PlainMessage | undefined): boolean { return proto3.util.equals(HubConfig_InstanceInfo, a, b); } } @@ -152,8 +109,8 @@ export class Config extends Message { version = 0; /** - * The instance name for the Backrest installation. - * This identifies backups created by this instance and is displayed in the UI. + * The instance name for the Backrest installation. + * This identifies backups created by this instance and is displayed in the UI. * * @generated from field: string instance = 2; */ @@ -190,31 +147,19 @@ export class Config extends Message { { no: 5, name: "auth", kind: "message", T: Auth }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): Config { + static fromBinary(bytes: Uint8Array, options?: Partial): Config { return new Config().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): Config { + static fromJson(jsonValue: JsonValue, options?: Partial): Config { return new Config().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): Config { + static fromJsonString(jsonString: string, options?: Partial): Config { return new Config().fromJsonString(jsonString, options); } - static equals( - a: Config | PlainMessage | undefined, - b: Config | PlainMessage | undefined, - ): boolean { + static equals(a: Config | PlainMessage | undefined, b: Config | PlainMessage | undefined): boolean { return proto3.util.equals(Config, a, b); } } @@ -290,50 +235,26 @@ export class Repo extends Message { { no: 1, name: "id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "uri", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 3, name: "password", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { - no: 4, - name: "env", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - repeated: true, - }, - { - no: 5, - name: "flags", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - repeated: true, - }, + { no: 4, name: "env", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + { no: 5, name: "flags", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, { no: 6, name: "prune_policy", kind: "message", T: PrunePolicy }, { no: 7, name: "hooks", kind: "message", T: Hook, repeated: true }, { no: 8, name: "auto_unlock", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): Repo { + static fromBinary(bytes: Uint8Array, options?: Partial): Repo { return new Repo().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): Repo { + static fromJson(jsonValue: JsonValue, options?: Partial): Repo { return new Repo().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): Repo { + static fromJsonString(jsonString: string, options?: Partial): Repo { return new Repo().fromJsonString(jsonString, options); } - static equals( - a: Repo | PlainMessage | undefined, - b: Repo | PlainMessage | undefined, - ): boolean { + static equals(a: Repo | PlainMessage | undefined, b: Repo | PlainMessage | undefined): boolean { return proto3.util.equals(Repo, a, b); } } @@ -421,65 +342,28 @@ export class Plan extends Message { { no: 1, name: "id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "repo", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 11, name: "disabled", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, - { - no: 4, - name: "paths", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - repeated: true, - }, - { - no: 5, - name: "excludes", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - repeated: true, - }, - { - no: 9, - name: "iexcludes", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - repeated: true, - }, + { no: 4, name: "paths", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + { no: 5, name: "excludes", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + { no: 9, name: "iexcludes", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, { no: 6, name: "cron", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 7, name: "retention", kind: "message", T: RetentionPolicy }, { no: 8, name: "hooks", kind: "message", T: Hook, repeated: true }, - { - no: 10, - name: "backup_flags", - jsonName: "backup_flags", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - repeated: true, - }, + { no: 10, name: "backup_flags", jsonName: "backup_flags", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): Plan { + static fromBinary(bytes: Uint8Array, options?: Partial): Plan { return new Plan().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): Plan { + static fromJson(jsonValue: JsonValue, options?: Partial): Plan { return new Plan().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): Plan { + static fromJsonString(jsonString: string, options?: Partial): Plan { return new Plan().fromJsonString(jsonString, options); } - static equals( - a: Plan | PlainMessage | undefined, - b: Plan | PlainMessage | undefined, - ): boolean { + static equals(a: Plan | PlainMessage | undefined, b: Plan | PlainMessage | undefined): boolean { return proto3.util.equals(Plan, a, b); } } @@ -541,29 +425,25 @@ export class RetentionPolicy extends Message { /** * @generated from oneof v1.RetentionPolicy.policy */ - policy: - | { - /** - * @generated from field: int32 policy_keep_last_n = 10; - */ - value: number; - case: "policyKeepLastN"; - } - | { - /** - * @generated from field: v1.RetentionPolicy.TimeBucketedCounts policy_time_bucketed = 11; - */ - value: RetentionPolicy_TimeBucketedCounts; - case: "policyTimeBucketed"; - } - | { - /** - * @generated from field: bool policy_keep_all = 12; - */ - value: boolean; - case: "policyKeepAll"; - } - | { case: undefined; value?: undefined } = { case: undefined }; + policy: { + /** + * @generated from field: int32 policy_keep_last_n = 10; + */ + value: number; + case: "policyKeepLastN"; + } | { + /** + * @generated from field: v1.RetentionPolicy.TimeBucketedCounts policy_time_bucketed = 11; + */ + value: RetentionPolicy_TimeBucketedCounts; + case: "policyTimeBucketed"; + } | { + /** + * @generated from field: bool policy_keep_all = 12; + */ + value: boolean; + case: "policyKeepAll"; + } | { case: undefined; value?: undefined } = { case: undefined }; constructor(data?: PartialMessage) { super(); @@ -573,77 +453,32 @@ export class RetentionPolicy extends Message { static readonly runtime: typeof proto3 = proto3; static readonly typeName = "v1.RetentionPolicy"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { - no: 1, - name: "max_unused_limit", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - }, + { no: 1, name: "max_unused_limit", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "keep_last_n", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, { no: 3, name: "keep_hourly", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, { no: 4, name: "keep_daily", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, { no: 5, name: "keep_weekly", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, - { - no: 6, - name: "keep_monthly", - kind: "scalar", - T: 5 /* ScalarType.INT32 */, - }, + { no: 6, name: "keep_monthly", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, { no: 7, name: "keep_yearly", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, - { - no: 8, - name: "keep_within_duration", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - }, - { - no: 10, - name: "policy_keep_last_n", - kind: "scalar", - T: 5 /* ScalarType.INT32 */, - oneof: "policy", - }, - { - no: 11, - name: "policy_time_bucketed", - kind: "message", - T: RetentionPolicy_TimeBucketedCounts, - oneof: "policy", - }, - { - no: 12, - name: "policy_keep_all", - kind: "scalar", - T: 8 /* ScalarType.BOOL */, - oneof: "policy", - }, + { no: 8, name: "keep_within_duration", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 10, name: "policy_keep_last_n", kind: "scalar", T: 5 /* ScalarType.INT32 */, oneof: "policy" }, + { no: 11, name: "policy_time_bucketed", kind: "message", T: RetentionPolicy_TimeBucketedCounts, oneof: "policy" }, + { no: 12, name: "policy_keep_all", kind: "scalar", T: 8 /* ScalarType.BOOL */, oneof: "policy" }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): RetentionPolicy { + static fromBinary(bytes: Uint8Array, options?: Partial): RetentionPolicy { return new RetentionPolicy().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): RetentionPolicy { + static fromJson(jsonValue: JsonValue, options?: Partial): RetentionPolicy { return new RetentionPolicy().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): RetentionPolicy { + static fromJsonString(jsonString: string, options?: Partial): RetentionPolicy { return new RetentionPolicy().fromJsonString(jsonString, options); } - static equals( - a: RetentionPolicy | PlainMessage | undefined, - b: RetentionPolicy | PlainMessage | undefined, - ): boolean { + static equals(a: RetentionPolicy | PlainMessage | undefined, b: RetentionPolicy | PlainMessage | undefined): boolean { return proto3.util.equals(RetentionPolicy, a, b); } } @@ -702,43 +537,19 @@ export class RetentionPolicy_TimeBucketedCounts extends Message, - ): RetentionPolicy_TimeBucketedCounts { + static fromBinary(bytes: Uint8Array, options?: Partial): RetentionPolicy_TimeBucketedCounts { return new RetentionPolicy_TimeBucketedCounts().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): RetentionPolicy_TimeBucketedCounts { - return new RetentionPolicy_TimeBucketedCounts().fromJson( - jsonValue, - options, - ); - } - - static fromJsonString( - jsonString: string, - options?: Partial, - ): RetentionPolicy_TimeBucketedCounts { - return new RetentionPolicy_TimeBucketedCounts().fromJsonString( - jsonString, - options, - ); - } - - static equals( - a: - | RetentionPolicy_TimeBucketedCounts - | PlainMessage - | undefined, - b: - | RetentionPolicy_TimeBucketedCounts - | PlainMessage - | undefined, - ): boolean { + static fromJson(jsonValue: JsonValue, options?: Partial): RetentionPolicy_TimeBucketedCounts { + return new RetentionPolicy_TimeBucketedCounts().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): RetentionPolicy_TimeBucketedCounts { + return new RetentionPolicy_TimeBucketedCounts().fromJsonString(jsonString, options); + } + + static equals(a: RetentionPolicy_TimeBucketedCounts | PlainMessage | undefined, b: RetentionPolicy_TimeBucketedCounts | PlainMessage | undefined): boolean { return proto3.util.equals(RetentionPolicy_TimeBucketedCounts, a, b); } } @@ -776,55 +587,71 @@ export class PrunePolicy extends Message { static readonly runtime: typeof proto3 = proto3; static readonly typeName = "v1.PrunePolicy"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { - no: 1, - name: "max_frequency_days", - kind: "scalar", - T: 5 /* ScalarType.INT32 */, - }, - { - no: 100, - name: "max_unused_percent", - kind: "scalar", - T: 5 /* ScalarType.INT32 */, - }, - { - no: 101, - name: "max_unused_bytes", - kind: "scalar", - T: 5 /* ScalarType.INT32 */, - }, + { no: 1, name: "max_frequency_days", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + { no: 100, name: "max_unused_percent", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + { no: 101, name: "max_unused_bytes", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): PrunePolicy { + static fromBinary(bytes: Uint8Array, options?: Partial): PrunePolicy { return new PrunePolicy().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): PrunePolicy { + static fromJson(jsonValue: JsonValue, options?: Partial): PrunePolicy { return new PrunePolicy().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): PrunePolicy { + static fromJsonString(jsonString: string, options?: Partial): PrunePolicy { return new PrunePolicy().fromJsonString(jsonString, options); } - static equals( - a: PrunePolicy | PlainMessage | undefined, - b: PrunePolicy | PlainMessage | undefined, - ): boolean { + static equals(a: PrunePolicy | PlainMessage | undefined, b: PrunePolicy | PlainMessage | undefined): boolean { return proto3.util.equals(PrunePolicy, a, b); } } +/** + * @generated from message v1.CheckPolicy + */ +export class CheckPolicy extends Message { + /** + * @generated from oneof v1.CheckPolicy.policy + */ + policy: { + /** + * @generated from field: int32 max_frequency_days = 1; + */ + value: number; + case: "maxFrequencyDays"; + } | { case: undefined; value?: undefined } = { case: undefined }; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "v1.CheckPolicy"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "max_frequency_days", kind: "scalar", T: 5 /* ScalarType.INT32 */, oneof: "policy" }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): CheckPolicy { + return new CheckPolicy().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): CheckPolicy { + return new CheckPolicy().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): CheckPolicy { + return new CheckPolicy().fromJsonString(jsonString, options); + } + + static equals(a: CheckPolicy | PlainMessage | undefined, b: CheckPolicy | PlainMessage | undefined): boolean { + return proto3.util.equals(CheckPolicy, a, b); + } +} + /** * @generated from message v1.Hook */ @@ -842,50 +669,43 @@ export class Hook extends Message { /** * @generated from oneof v1.Hook.action */ - action: - | { - /** - * @generated from field: v1.Hook.Command action_command = 100; - */ - value: Hook_Command; - case: "actionCommand"; - } - | { - /** - * @generated from field: v1.Hook.Webhook action_webhook = 101; - */ - value: Hook_Webhook; - case: "actionWebhook"; - } - | { - /** - * @generated from field: v1.Hook.Discord action_discord = 102; - */ - value: Hook_Discord; - case: "actionDiscord"; - } - | { - /** - * @generated from field: v1.Hook.Gotify action_gotify = 103; - */ - value: Hook_Gotify; - case: "actionGotify"; - } - | { - /** - * @generated from field: v1.Hook.Slack action_slack = 104; - */ - value: Hook_Slack; - case: "actionSlack"; - } - | { - /** - * @generated from field: v1.Hook.Shoutrrr action_shoutrrr = 105; - */ - value: Hook_Shoutrrr; - case: "actionShoutrrr"; - } - | { case: undefined; value?: undefined } = { case: undefined }; + action: { + /** + * @generated from field: v1.Hook.Command action_command = 100; + */ + value: Hook_Command; + case: "actionCommand"; + } | { + /** + * @generated from field: v1.Hook.Webhook action_webhook = 101; + */ + value: Hook_Webhook; + case: "actionWebhook"; + } | { + /** + * @generated from field: v1.Hook.Discord action_discord = 102; + */ + value: Hook_Discord; + case: "actionDiscord"; + } | { + /** + * @generated from field: v1.Hook.Gotify action_gotify = 103; + */ + value: Hook_Gotify; + case: "actionGotify"; + } | { + /** + * @generated from field: v1.Hook.Slack action_slack = 104; + */ + value: Hook_Slack; + case: "actionSlack"; + } | { + /** + * @generated from field: v1.Hook.Shoutrrr action_shoutrrr = 105; + */ + value: Hook_Shoutrrr; + case: "actionShoutrrr"; + } | { case: undefined; value?: undefined } = { case: undefined }; constructor(data?: PartialMessage) { super(); @@ -895,88 +715,29 @@ export class Hook extends Message { static readonly runtime: typeof proto3 = proto3; static readonly typeName = "v1.Hook"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { - no: 1, - name: "conditions", - kind: "enum", - T: proto3.getEnumType(Hook_Condition), - repeated: true, - }, - { - no: 2, - name: "on_error", - kind: "enum", - T: proto3.getEnumType(Hook_OnError), - }, - { - no: 100, - name: "action_command", - kind: "message", - T: Hook_Command, - oneof: "action", - }, - { - no: 101, - name: "action_webhook", - kind: "message", - T: Hook_Webhook, - oneof: "action", - }, - { - no: 102, - name: "action_discord", - kind: "message", - T: Hook_Discord, - oneof: "action", - }, - { - no: 103, - name: "action_gotify", - kind: "message", - T: Hook_Gotify, - oneof: "action", - }, - { - no: 104, - name: "action_slack", - kind: "message", - T: Hook_Slack, - oneof: "action", - }, - { - no: 105, - name: "action_shoutrrr", - kind: "message", - T: Hook_Shoutrrr, - oneof: "action", - }, + { no: 1, name: "conditions", kind: "enum", T: proto3.getEnumType(Hook_Condition), repeated: true }, + { no: 2, name: "on_error", kind: "enum", T: proto3.getEnumType(Hook_OnError) }, + { no: 100, name: "action_command", kind: "message", T: Hook_Command, oneof: "action" }, + { no: 101, name: "action_webhook", kind: "message", T: Hook_Webhook, oneof: "action" }, + { no: 102, name: "action_discord", kind: "message", T: Hook_Discord, oneof: "action" }, + { no: 103, name: "action_gotify", kind: "message", T: Hook_Gotify, oneof: "action" }, + { no: 104, name: "action_slack", kind: "message", T: Hook_Slack, oneof: "action" }, + { no: 105, name: "action_shoutrrr", kind: "message", T: Hook_Shoutrrr, oneof: "action" }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): Hook { + static fromBinary(bytes: Uint8Array, options?: Partial): Hook { return new Hook().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): Hook { + static fromJson(jsonValue: JsonValue, options?: Partial): Hook { return new Hook().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): Hook { + static fromJsonString(jsonString: string, options?: Partial): Hook { return new Hook().fromJsonString(jsonString, options); } - static equals( - a: Hook | PlainMessage | undefined, - b: Hook | PlainMessage | undefined, - ): boolean { + static equals(a: Hook | PlainMessage | undefined, b: Hook | PlainMessage | undefined): boolean { return proto3.util.equals(Hook, a, b); } } @@ -1085,31 +846,19 @@ export class Hook_Command extends Message { { no: 1, name: "command", kind: "scalar", T: 9 /* ScalarType.STRING */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): Hook_Command { + static fromBinary(bytes: Uint8Array, options?: Partial): Hook_Command { return new Hook_Command().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): Hook_Command { + static fromJson(jsonValue: JsonValue, options?: Partial): Hook_Command { return new Hook_Command().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): Hook_Command { + static fromJsonString(jsonString: string, options?: Partial): Hook_Command { return new Hook_Command().fromJsonString(jsonString, options); } - static equals( - a: Hook_Command | PlainMessage | undefined, - b: Hook_Command | PlainMessage | undefined, - ): boolean { + static equals(a: Hook_Command | PlainMessage | undefined, b: Hook_Command | PlainMessage | undefined): boolean { return proto3.util.equals(Hook_Command, a, b); } } @@ -1141,46 +890,24 @@ export class Hook_Webhook extends Message { static readonly runtime: typeof proto3 = proto3; static readonly typeName = "v1.Hook.Webhook"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { - no: 1, - name: "webhook_url", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - }, - { - no: 2, - name: "method", - kind: "enum", - T: proto3.getEnumType(Hook_Webhook_Method), - }, + { no: 1, name: "webhook_url", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "method", kind: "enum", T: proto3.getEnumType(Hook_Webhook_Method) }, { no: 100, name: "template", kind: "scalar", T: 9 /* ScalarType.STRING */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): Hook_Webhook { + static fromBinary(bytes: Uint8Array, options?: Partial): Hook_Webhook { return new Hook_Webhook().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): Hook_Webhook { + static fromJson(jsonValue: JsonValue, options?: Partial): Hook_Webhook { return new Hook_Webhook().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): Hook_Webhook { + static fromJsonString(jsonString: string, options?: Partial): Hook_Webhook { return new Hook_Webhook().fromJsonString(jsonString, options); } - static equals( - a: Hook_Webhook | PlainMessage | undefined, - b: Hook_Webhook | PlainMessage | undefined, - ): boolean { + static equals(a: Hook_Webhook | PlainMessage | undefined, b: Hook_Webhook | PlainMessage | undefined): boolean { return proto3.util.equals(Hook_Webhook, a, b); } } @@ -1235,40 +962,23 @@ export class Hook_Discord extends Message { static readonly runtime: typeof proto3 = proto3; static readonly typeName = "v1.Hook.Discord"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { - no: 1, - name: "webhook_url", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - }, + { no: 1, name: "webhook_url", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "template", kind: "scalar", T: 9 /* ScalarType.STRING */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): Hook_Discord { + static fromBinary(bytes: Uint8Array, options?: Partial): Hook_Discord { return new Hook_Discord().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): Hook_Discord { + static fromJson(jsonValue: JsonValue, options?: Partial): Hook_Discord { return new Hook_Discord().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): Hook_Discord { + static fromJsonString(jsonString: string, options?: Partial): Hook_Discord { return new Hook_Discord().fromJsonString(jsonString, options); } - static equals( - a: Hook_Discord | PlainMessage | undefined, - b: Hook_Discord | PlainMessage | undefined, - ): boolean { + static equals(a: Hook_Discord | PlainMessage | undefined, b: Hook_Discord | PlainMessage | undefined): boolean { return proto3.util.equals(Hook_Discord, a, b); } } @@ -1312,39 +1022,22 @@ export class Hook_Gotify extends Message { { no: 1, name: "base_url", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 3, name: "token", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 100, name: "template", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { - no: 101, - name: "title_template", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - }, + { no: 101, name: "title_template", kind: "scalar", T: 9 /* ScalarType.STRING */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): Hook_Gotify { + static fromBinary(bytes: Uint8Array, options?: Partial): Hook_Gotify { return new Hook_Gotify().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): Hook_Gotify { + static fromJson(jsonValue: JsonValue, options?: Partial): Hook_Gotify { return new Hook_Gotify().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): Hook_Gotify { + static fromJsonString(jsonString: string, options?: Partial): Hook_Gotify { return new Hook_Gotify().fromJsonString(jsonString, options); } - static equals( - a: Hook_Gotify | PlainMessage | undefined, - b: Hook_Gotify | PlainMessage | undefined, - ): boolean { + static equals(a: Hook_Gotify | PlainMessage | undefined, b: Hook_Gotify | PlainMessage | undefined): boolean { return proto3.util.equals(Hook_Gotify, a, b); } } @@ -1373,40 +1066,23 @@ export class Hook_Slack extends Message { static readonly runtime: typeof proto3 = proto3; static readonly typeName = "v1.Hook.Slack"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { - no: 1, - name: "webhook_url", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - }, + { no: 1, name: "webhook_url", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "template", kind: "scalar", T: 9 /* ScalarType.STRING */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): Hook_Slack { + static fromBinary(bytes: Uint8Array, options?: Partial): Hook_Slack { return new Hook_Slack().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): Hook_Slack { + static fromJson(jsonValue: JsonValue, options?: Partial): Hook_Slack { return new Hook_Slack().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): Hook_Slack { + static fromJsonString(jsonString: string, options?: Partial): Hook_Slack { return new Hook_Slack().fromJsonString(jsonString, options); } - static equals( - a: Hook_Slack | PlainMessage | undefined, - b: Hook_Slack | PlainMessage | undefined, - ): boolean { + static equals(a: Hook_Slack | PlainMessage | undefined, b: Hook_Slack | PlainMessage | undefined): boolean { return proto3.util.equals(Hook_Slack, a, b); } } @@ -1433,40 +1109,23 @@ export class Hook_Shoutrrr extends Message { static readonly runtime: typeof proto3 = proto3; static readonly typeName = "v1.Hook.Shoutrrr"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { - no: 1, - name: "shoutrrr_url", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - }, + { no: 1, name: "shoutrrr_url", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "template", kind: "scalar", T: 9 /* ScalarType.STRING */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): Hook_Shoutrrr { + static fromBinary(bytes: Uint8Array, options?: Partial): Hook_Shoutrrr { return new Hook_Shoutrrr().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): Hook_Shoutrrr { + static fromJson(jsonValue: JsonValue, options?: Partial): Hook_Shoutrrr { return new Hook_Shoutrrr().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): Hook_Shoutrrr { + static fromJsonString(jsonString: string, options?: Partial): Hook_Shoutrrr { return new Hook_Shoutrrr().fromJsonString(jsonString, options); } - static equals( - a: Hook_Shoutrrr | PlainMessage | undefined, - b: Hook_Shoutrrr | PlainMessage | undefined, - ): boolean { + static equals(a: Hook_Shoutrrr | PlainMessage | undefined, b: Hook_Shoutrrr | PlainMessage | undefined): boolean { return proto3.util.equals(Hook_Shoutrrr, a, b); } } @@ -1501,31 +1160,19 @@ export class Auth extends Message { { no: 2, name: "users", kind: "message", T: User, repeated: true }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): Auth { + static fromBinary(bytes: Uint8Array, options?: Partial): Auth { return new Auth().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): Auth { + static fromJson(jsonValue: JsonValue, options?: Partial): Auth { return new Auth().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): Auth { + static fromJsonString(jsonString: string, options?: Partial): Auth { return new Auth().fromJsonString(jsonString, options); } - static equals( - a: Auth | PlainMessage | undefined, - b: Auth | PlainMessage | undefined, - ): boolean { + static equals(a: Auth | PlainMessage | undefined, b: Auth | PlainMessage | undefined): boolean { return proto3.util.equals(Auth, a, b); } } @@ -1542,15 +1189,13 @@ export class User extends Message { /** * @generated from oneof v1.User.password */ - password: - | { - /** - * @generated from field: string password_bcrypt = 2; - */ - value: string; - case: "passwordBcrypt"; - } - | { case: undefined; value?: undefined } = { case: undefined }; + password: { + /** + * @generated from field: string password_bcrypt = 2; + */ + value: string; + case: "passwordBcrypt"; + } | { case: undefined; value?: undefined } = { case: undefined }; constructor(data?: PartialMessage) { super(); @@ -1561,40 +1206,23 @@ export class User extends Message { static readonly typeName = "v1.User"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { - no: 2, - name: "password_bcrypt", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - oneof: "password", - }, + { no: 2, name: "password_bcrypt", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "password" }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): User { + static fromBinary(bytes: Uint8Array, options?: Partial): User { return new User().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): User { + static fromJson(jsonValue: JsonValue, options?: Partial): User { return new User().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): User { + static fromJsonString(jsonString: string, options?: Partial): User { return new User().fromJsonString(jsonString, options); } - static equals( - a: User | PlainMessage | undefined, - b: User | PlainMessage | undefined, - ): boolean { + static equals(a: User | PlainMessage | undefined, b: User | PlainMessage | undefined): boolean { return proto3.util.equals(User, a, b); } } + diff --git a/webui/gen/ts/v1/hub_connect.ts b/webui/gen/ts/v1/hub_connect.ts index 97bff3f4..dda0a041 100644 --- a/webui/gen/ts/v1/hub_connect.ts +++ b/webui/gen/ts/v1/hub_connect.ts @@ -23,5 +23,6 @@ export const Hub = { O: GetInstancesResponse, kind: MethodKind.Unary, }, - }, + } } as const; + diff --git a/webui/gen/ts/v1/hub_pb.ts b/webui/gen/ts/v1/hub_pb.ts index 4e4471f9..48082efa 100644 --- a/webui/gen/ts/v1/hub_pb.ts +++ b/webui/gen/ts/v1/hub_pb.ts @@ -3,14 +3,7 @@ /* eslint-disable */ // @ts-nocheck -import type { - BinaryReadOptions, - FieldList, - JsonReadOptions, - JsonValue, - PartialMessage, - PlainMessage, -} from "@bufbuild/protobuf"; +import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf"; import { Message, proto3 } from "@bufbuild/protobuf"; /** @@ -33,31 +26,19 @@ export class GetInstancesResponse extends Message { { no: 1, name: "instances", kind: "message", T: Instance, repeated: true }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): GetInstancesResponse { + static fromBinary(bytes: Uint8Array, options?: Partial): GetInstancesResponse { return new GetInstancesResponse().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): GetInstancesResponse { + static fromJson(jsonValue: JsonValue, options?: Partial): GetInstancesResponse { return new GetInstancesResponse().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): GetInstancesResponse { + static fromJsonString(jsonString: string, options?: Partial): GetInstancesResponse { return new GetInstancesResponse().fromJsonString(jsonString, options); } - static equals( - a: GetInstancesResponse | PlainMessage | undefined, - b: GetInstancesResponse | PlainMessage | undefined, - ): boolean { + static equals(a: GetInstancesResponse | PlainMessage | undefined, b: GetInstancesResponse | PlainMessage | undefined): boolean { return proto3.util.equals(GetInstancesResponse, a, b); } } @@ -82,31 +63,20 @@ export class Instance extends Message { { no: 1, name: "id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): Instance { + static fromBinary(bytes: Uint8Array, options?: Partial): Instance { return new Instance().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): Instance { + static fromJson(jsonValue: JsonValue, options?: Partial): Instance { return new Instance().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): Instance { + static fromJsonString(jsonString: string, options?: Partial): Instance { return new Instance().fromJsonString(jsonString, options); } - static equals( - a: Instance | PlainMessage | undefined, - b: Instance | PlainMessage | undefined, - ): boolean { + static equals(a: Instance | PlainMessage | undefined, b: Instance | PlainMessage | undefined): boolean { return proto3.util.equals(Instance, a, b); } } + diff --git a/webui/gen/ts/v1/operations_pb.ts b/webui/gen/ts/v1/operations_pb.ts index e3a1eb8b..a0a49dd1 100644 --- a/webui/gen/ts/v1/operations_pb.ts +++ b/webui/gen/ts/v1/operations_pb.ts @@ -3,22 +3,9 @@ /* eslint-disable */ // @ts-nocheck -import type { - BinaryReadOptions, - FieldList, - JsonReadOptions, - JsonValue, - PartialMessage, - PlainMessage, -} from "@bufbuild/protobuf"; +import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf"; import { Message, proto3, protoInt64 } from "@bufbuild/protobuf"; -import { - BackupProgressEntry, - BackupProgressError, - RepoStats, - ResticSnapshot, - RestoreProgressEntry, -} from "./restic_pb.js"; +import { BackupProgressEntry, BackupProgressError, RepoStats, ResticSnapshot, RestoreProgressEntry } from "./restic_pb.js"; import { Hook_Condition, RetentionPolicy } from "./config_pb.js"; /** @@ -144,40 +131,22 @@ export class OperationList extends Message { static readonly runtime: typeof proto3 = proto3; static readonly typeName = "v1.OperationList"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { - no: 1, - name: "operations", - kind: "message", - T: Operation, - repeated: true, - }, + { no: 1, name: "operations", kind: "message", T: Operation, repeated: true }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): OperationList { + static fromBinary(bytes: Uint8Array, options?: Partial): OperationList { return new OperationList().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): OperationList { + static fromJson(jsonValue: JsonValue, options?: Partial): OperationList { return new OperationList().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): OperationList { + static fromJsonString(jsonString: string, options?: Partial): OperationList { return new OperationList().fromJsonString(jsonString, options); } - static equals( - a: OperationList | PlainMessage | undefined, - b: OperationList | PlainMessage | undefined, - ): boolean { + static equals(a: OperationList | PlainMessage | undefined, b: OperationList | PlainMessage | undefined): boolean { return proto3.util.equals(OperationList, a, b); } } @@ -260,57 +229,49 @@ export class Operation extends Message { /** * @generated from oneof v1.Operation.op */ - op: - | { - /** - * @generated from field: v1.OperationBackup operation_backup = 100; - */ - value: OperationBackup; - case: "operationBackup"; - } - | { - /** - * @generated from field: v1.OperationIndexSnapshot operation_index_snapshot = 101; - */ - value: OperationIndexSnapshot; - case: "operationIndexSnapshot"; - } - | { - /** - * @generated from field: v1.OperationForget operation_forget = 102; - */ - value: OperationForget; - case: "operationForget"; - } - | { - /** - * @generated from field: v1.OperationPrune operation_prune = 103; - */ - value: OperationPrune; - case: "operationPrune"; - } - | { - /** - * @generated from field: v1.OperationRestore operation_restore = 104; - */ - value: OperationRestore; - case: "operationRestore"; - } - | { - /** - * @generated from field: v1.OperationStats operation_stats = 105; - */ - value: OperationStats; - case: "operationStats"; - } - | { - /** - * @generated from field: v1.OperationRunHook operation_run_hook = 106; - */ - value: OperationRunHook; - case: "operationRunHook"; - } - | { case: undefined; value?: undefined } = { case: undefined }; + op: { + /** + * @generated from field: v1.OperationBackup operation_backup = 100; + */ + value: OperationBackup; + case: "operationBackup"; + } | { + /** + * @generated from field: v1.OperationIndexSnapshot operation_index_snapshot = 101; + */ + value: OperationIndexSnapshot; + case: "operationIndexSnapshot"; + } | { + /** + * @generated from field: v1.OperationForget operation_forget = 102; + */ + value: OperationForget; + case: "operationForget"; + } | { + /** + * @generated from field: v1.OperationPrune operation_prune = 103; + */ + value: OperationPrune; + case: "operationPrune"; + } | { + /** + * @generated from field: v1.OperationRestore operation_restore = 104; + */ + value: OperationRestore; + case: "operationRestore"; + } | { + /** + * @generated from field: v1.OperationStats operation_stats = 105; + */ + value: OperationStats; + case: "operationStats"; + } | { + /** + * @generated from field: v1.OperationRunHook operation_run_hook = 106; + */ + value: OperationRunHook; + case: "operationRunHook"; + } | { case: undefined; value?: undefined } = { case: undefined }; constructor(data?: PartialMessage) { super(); @@ -324,119 +285,35 @@ export class Operation extends Message { { no: 10, name: "flow_id", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, { no: 2, name: "repo_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 3, name: "plan_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { - no: 11, - name: "instance_id", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - }, - { - no: 8, - name: "snapshot_id", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - }, - { - no: 4, - name: "status", - kind: "enum", - T: proto3.getEnumType(OperationStatus), - }, - { - no: 5, - name: "unix_time_start_ms", - kind: "scalar", - T: 3 /* ScalarType.INT64 */, - }, - { - no: 6, - name: "unix_time_end_ms", - kind: "scalar", - T: 3 /* ScalarType.INT64 */, - }, - { - no: 7, - name: "display_message", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - }, + { no: 11, name: "instance_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 8, name: "snapshot_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 4, name: "status", kind: "enum", T: proto3.getEnumType(OperationStatus) }, + { no: 5, name: "unix_time_start_ms", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, + { no: 6, name: "unix_time_end_ms", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, + { no: 7, name: "display_message", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 9, name: "logref", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { - no: 100, - name: "operation_backup", - kind: "message", - T: OperationBackup, - oneof: "op", - }, - { - no: 101, - name: "operation_index_snapshot", - kind: "message", - T: OperationIndexSnapshot, - oneof: "op", - }, - { - no: 102, - name: "operation_forget", - kind: "message", - T: OperationForget, - oneof: "op", - }, - { - no: 103, - name: "operation_prune", - kind: "message", - T: OperationPrune, - oneof: "op", - }, - { - no: 104, - name: "operation_restore", - kind: "message", - T: OperationRestore, - oneof: "op", - }, - { - no: 105, - name: "operation_stats", - kind: "message", - T: OperationStats, - oneof: "op", - }, - { - no: 106, - name: "operation_run_hook", - kind: "message", - T: OperationRunHook, - oneof: "op", - }, + { no: 100, name: "operation_backup", kind: "message", T: OperationBackup, oneof: "op" }, + { no: 101, name: "operation_index_snapshot", kind: "message", T: OperationIndexSnapshot, oneof: "op" }, + { no: 102, name: "operation_forget", kind: "message", T: OperationForget, oneof: "op" }, + { no: 103, name: "operation_prune", kind: "message", T: OperationPrune, oneof: "op" }, + { no: 104, name: "operation_restore", kind: "message", T: OperationRestore, oneof: "op" }, + { no: 105, name: "operation_stats", kind: "message", T: OperationStats, oneof: "op" }, + { no: 106, name: "operation_run_hook", kind: "message", T: OperationRunHook, oneof: "op" }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): Operation { + static fromBinary(bytes: Uint8Array, options?: Partial): Operation { return new Operation().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): Operation { + static fromJson(jsonValue: JsonValue, options?: Partial): Operation { return new Operation().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): Operation { + static fromJsonString(jsonString: string, options?: Partial): Operation { return new Operation().fromJsonString(jsonString, options); } - static equals( - a: Operation | PlainMessage | undefined, - b: Operation | PlainMessage | undefined, - ): boolean { + static equals(a: Operation | PlainMessage | undefined, b: Operation | PlainMessage | undefined): boolean { return proto3.util.equals(Operation, a, b); } } @@ -465,40 +342,23 @@ export class OperationEvent extends Message { static readonly runtime: typeof proto3 = proto3; static readonly typeName = "v1.OperationEvent"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { - no: 1, - name: "type", - kind: "enum", - T: proto3.getEnumType(OperationEventType), - }, + { no: 1, name: "type", kind: "enum", T: proto3.getEnumType(OperationEventType) }, { no: 2, name: "operation", kind: "message", T: Operation }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): OperationEvent { + static fromBinary(bytes: Uint8Array, options?: Partial): OperationEvent { return new OperationEvent().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): OperationEvent { + static fromJson(jsonValue: JsonValue, options?: Partial): OperationEvent { return new OperationEvent().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): OperationEvent { + static fromJsonString(jsonString: string, options?: Partial): OperationEvent { return new OperationEvent().fromJsonString(jsonString, options); } - static equals( - a: OperationEvent | PlainMessage | undefined, - b: OperationEvent | PlainMessage | undefined, - ): boolean { + static equals(a: OperationEvent | PlainMessage | undefined, b: OperationEvent | PlainMessage | undefined): boolean { return proto3.util.equals(OperationEvent, a, b); } } @@ -526,46 +386,28 @@ export class OperationBackup extends Message { static readonly typeName = "v1.OperationBackup"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 3, name: "last_status", kind: "message", T: BackupProgressEntry }, - { - no: 4, - name: "errors", - kind: "message", - T: BackupProgressError, - repeated: true, - }, + { no: 4, name: "errors", kind: "message", T: BackupProgressError, repeated: true }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): OperationBackup { + static fromBinary(bytes: Uint8Array, options?: Partial): OperationBackup { return new OperationBackup().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): OperationBackup { + static fromJson(jsonValue: JsonValue, options?: Partial): OperationBackup { return new OperationBackup().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): OperationBackup { + static fromJsonString(jsonString: string, options?: Partial): OperationBackup { return new OperationBackup().fromJsonString(jsonString, options); } - static equals( - a: OperationBackup | PlainMessage | undefined, - b: OperationBackup | PlainMessage | undefined, - ): boolean { + static equals(a: OperationBackup | PlainMessage | undefined, b: OperationBackup | PlainMessage | undefined): boolean { return proto3.util.equals(OperationBackup, a, b); } } /** - * OperationIndexSnapshot tracks that a snapshot was detected by backrest. + * OperationIndexSnapshot tracks that a snapshot was detected by backrest. * * @generated from message v1.OperationIndexSnapshot */ @@ -601,45 +443,22 @@ export class OperationIndexSnapshot extends Message { static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 2, name: "snapshot", kind: "message", T: ResticSnapshot }, { no: 3, name: "forgot", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, - { - no: 4, - name: "forgot_by_op", - kind: "scalar", - T: 3 /* ScalarType.INT64 */, - }, + { no: 4, name: "forgot_by_op", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): OperationIndexSnapshot { + static fromBinary(bytes: Uint8Array, options?: Partial): OperationIndexSnapshot { return new OperationIndexSnapshot().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): OperationIndexSnapshot { + static fromJson(jsonValue: JsonValue, options?: Partial): OperationIndexSnapshot { return new OperationIndexSnapshot().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): OperationIndexSnapshot { + static fromJsonString(jsonString: string, options?: Partial): OperationIndexSnapshot { return new OperationIndexSnapshot().fromJsonString(jsonString, options); } - static equals( - a: - | OperationIndexSnapshot - | PlainMessage - | undefined, - b: - | OperationIndexSnapshot - | PlainMessage - | undefined, - ): boolean { + static equals(a: OperationIndexSnapshot | PlainMessage | undefined, b: OperationIndexSnapshot | PlainMessage | undefined): boolean { return proto3.util.equals(OperationIndexSnapshot, a, b); } } @@ -668,41 +487,23 @@ export class OperationForget extends Message { static readonly runtime: typeof proto3 = proto3; static readonly typeName = "v1.OperationForget"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { - no: 1, - name: "forget", - kind: "message", - T: ResticSnapshot, - repeated: true, - }, + { no: 1, name: "forget", kind: "message", T: ResticSnapshot, repeated: true }, { no: 2, name: "policy", kind: "message", T: RetentionPolicy }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): OperationForget { + static fromBinary(bytes: Uint8Array, options?: Partial): OperationForget { return new OperationForget().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): OperationForget { + static fromJson(jsonValue: JsonValue, options?: Partial): OperationForget { return new OperationForget().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): OperationForget { + static fromJsonString(jsonString: string, options?: Partial): OperationForget { return new OperationForget().fromJsonString(jsonString, options); } - static equals( - a: OperationForget | PlainMessage | undefined, - b: OperationForget | PlainMessage | undefined, - ): boolean { + static equals(a: OperationForget | PlainMessage | undefined, b: OperationForget | PlainMessage | undefined): boolean { return proto3.util.equals(OperationForget, a, b); } } @@ -731,31 +532,19 @@ export class OperationPrune extends Message { { no: 1, name: "output", kind: "scalar", T: 9 /* ScalarType.STRING */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): OperationPrune { + static fromBinary(bytes: Uint8Array, options?: Partial): OperationPrune { return new OperationPrune().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): OperationPrune { + static fromJson(jsonValue: JsonValue, options?: Partial): OperationPrune { return new OperationPrune().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): OperationPrune { + static fromJsonString(jsonString: string, options?: Partial): OperationPrune { return new OperationPrune().fromJsonString(jsonString, options); } - static equals( - a: OperationPrune | PlainMessage | undefined, - b: OperationPrune | PlainMessage | undefined, - ): boolean { + static equals(a: OperationPrune | PlainMessage | undefined, b: OperationPrune | PlainMessage | undefined): boolean { return proto3.util.equals(OperationPrune, a, b); } } @@ -798,31 +587,19 @@ export class OperationRestore extends Message { { no: 3, name: "status", kind: "message", T: RestoreProgressEntry }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): OperationRestore { + static fromBinary(bytes: Uint8Array, options?: Partial): OperationRestore { return new OperationRestore().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): OperationRestore { + static fromJson(jsonValue: JsonValue, options?: Partial): OperationRestore { return new OperationRestore().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): OperationRestore { + static fromJsonString(jsonString: string, options?: Partial): OperationRestore { return new OperationRestore().fromJsonString(jsonString, options); } - static equals( - a: OperationRestore | PlainMessage | undefined, - b: OperationRestore | PlainMessage | undefined, - ): boolean { + static equals(a: OperationRestore | PlainMessage | undefined, b: OperationRestore | PlainMessage | undefined): boolean { return proto3.util.equals(OperationRestore, a, b); } } @@ -847,31 +624,19 @@ export class OperationStats extends Message { { no: 1, name: "stats", kind: "message", T: RepoStats }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): OperationStats { + static fromBinary(bytes: Uint8Array, options?: Partial): OperationStats { return new OperationStats().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): OperationStats { + static fromJson(jsonValue: JsonValue, options?: Partial): OperationStats { return new OperationStats().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): OperationStats { + static fromJsonString(jsonString: string, options?: Partial): OperationStats { return new OperationStats().fromJsonString(jsonString, options); } - static equals( - a: OperationStats | PlainMessage | undefined, - b: OperationStats | PlainMessage | undefined, - ): boolean { + static equals(a: OperationStats | PlainMessage | undefined, b: OperationStats | PlainMessage | undefined): boolean { return proto3.util.equals(OperationStats, a, b); } } @@ -910,45 +675,24 @@ export class OperationRunHook extends Message { static readonly typeName = "v1.OperationRunHook"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { - no: 2, - name: "output_logref", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - }, - { - no: 3, - name: "condition", - kind: "enum", - T: proto3.getEnumType(Hook_Condition), - }, + { no: 2, name: "output_logref", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 3, name: "condition", kind: "enum", T: proto3.getEnumType(Hook_Condition) }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): OperationRunHook { + static fromBinary(bytes: Uint8Array, options?: Partial): OperationRunHook { return new OperationRunHook().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): OperationRunHook { + static fromJson(jsonValue: JsonValue, options?: Partial): OperationRunHook { return new OperationRunHook().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): OperationRunHook { + static fromJsonString(jsonString: string, options?: Partial): OperationRunHook { return new OperationRunHook().fromJsonString(jsonString, options); } - static equals( - a: OperationRunHook | PlainMessage | undefined, - b: OperationRunHook | PlainMessage | undefined, - ): boolean { + static equals(a: OperationRunHook | PlainMessage | undefined, b: OperationRunHook | PlainMessage | undefined): boolean { return proto3.util.equals(OperationRunHook, a, b); } } + diff --git a/webui/gen/ts/v1/restic_pb.ts b/webui/gen/ts/v1/restic_pb.ts index d99e0182..692435af 100644 --- a/webui/gen/ts/v1/restic_pb.ts +++ b/webui/gen/ts/v1/restic_pb.ts @@ -3,14 +3,7 @@ /* eslint-disable */ // @ts-nocheck -import type { - BinaryReadOptions, - FieldList, - JsonReadOptions, - JsonValue, - PartialMessage, - PlainMessage, -} from "@bufbuild/protobuf"; +import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf"; import { Message, proto3, protoInt64 } from "@bufbuild/protobuf"; /** @@ -72,57 +65,28 @@ export class ResticSnapshot extends Message { static readonly typeName = "v1.ResticSnapshot"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { - no: 2, - name: "unix_time_ms", - kind: "scalar", - T: 3 /* ScalarType.INT64 */, - }, + { no: 2, name: "unix_time_ms", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, { no: 3, name: "hostname", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 4, name: "username", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 5, name: "tree", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 6, name: "parent", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { - no: 7, - name: "paths", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - repeated: true, - }, - { - no: 8, - name: "tags", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - repeated: true, - }, + { no: 7, name: "paths", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, + { no: 8, name: "tags", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): ResticSnapshot { + static fromBinary(bytes: Uint8Array, options?: Partial): ResticSnapshot { return new ResticSnapshot().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): ResticSnapshot { + static fromJson(jsonValue: JsonValue, options?: Partial): ResticSnapshot { return new ResticSnapshot().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): ResticSnapshot { + static fromJsonString(jsonString: string, options?: Partial): ResticSnapshot { return new ResticSnapshot().fromJsonString(jsonString, options); } - static equals( - a: ResticSnapshot | PlainMessage | undefined, - b: ResticSnapshot | PlainMessage | undefined, - ): boolean { + static equals(a: ResticSnapshot | PlainMessage | undefined, b: ResticSnapshot | PlainMessage | undefined): boolean { return proto3.util.equals(ResticSnapshot, a, b); } } @@ -146,40 +110,22 @@ export class ResticSnapshotList extends Message { static readonly runtime: typeof proto3 = proto3; static readonly typeName = "v1.ResticSnapshotList"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { - no: 1, - name: "snapshots", - kind: "message", - T: ResticSnapshot, - repeated: true, - }, + { no: 1, name: "snapshots", kind: "message", T: ResticSnapshot, repeated: true }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): ResticSnapshotList { + static fromBinary(bytes: Uint8Array, options?: Partial): ResticSnapshotList { return new ResticSnapshotList().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): ResticSnapshotList { + static fromJson(jsonValue: JsonValue, options?: Partial): ResticSnapshotList { return new ResticSnapshotList().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): ResticSnapshotList { + static fromJsonString(jsonString: string, options?: Partial): ResticSnapshotList { return new ResticSnapshotList().fromJsonString(jsonString, options); } - static equals( - a: ResticSnapshotList | PlainMessage | undefined, - b: ResticSnapshotList | PlainMessage | undefined, - ): boolean { + static equals(a: ResticSnapshotList | PlainMessage | undefined, b: ResticSnapshotList | PlainMessage | undefined): boolean { return proto3.util.equals(ResticSnapshotList, a, b); } } @@ -193,22 +139,19 @@ export class BackupProgressEntry extends Message { /** * @generated from oneof v1.BackupProgressEntry.entry */ - entry: - | { - /** - * @generated from field: v1.BackupProgressStatusEntry status = 1; - */ - value: BackupProgressStatusEntry; - case: "status"; - } - | { - /** - * @generated from field: v1.BackupProgressSummary summary = 2; - */ - value: BackupProgressSummary; - case: "summary"; - } - | { case: undefined; value?: undefined } = { case: undefined }; + entry: { + /** + * @generated from field: v1.BackupProgressStatusEntry status = 1; + */ + value: BackupProgressStatusEntry; + case: "status"; + } | { + /** + * @generated from field: v1.BackupProgressSummary summary = 2; + */ + value: BackupProgressSummary; + case: "summary"; + } | { case: undefined; value?: undefined } = { case: undefined }; constructor(data?: PartialMessage) { super(); @@ -218,47 +161,23 @@ export class BackupProgressEntry extends Message { static readonly runtime: typeof proto3 = proto3; static readonly typeName = "v1.BackupProgressEntry"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { - no: 1, - name: "status", - kind: "message", - T: BackupProgressStatusEntry, - oneof: "entry", - }, - { - no: 2, - name: "summary", - kind: "message", - T: BackupProgressSummary, - oneof: "entry", - }, + { no: 1, name: "status", kind: "message", T: BackupProgressStatusEntry, oneof: "entry" }, + { no: 2, name: "summary", kind: "message", T: BackupProgressSummary, oneof: "entry" }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): BackupProgressEntry { + static fromBinary(bytes: Uint8Array, options?: Partial): BackupProgressEntry { return new BackupProgressEntry().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): BackupProgressEntry { + static fromJson(jsonValue: JsonValue, options?: Partial): BackupProgressEntry { return new BackupProgressEntry().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): BackupProgressEntry { + static fromJsonString(jsonString: string, options?: Partial): BackupProgressEntry { return new BackupProgressEntry().fromJsonString(jsonString, options); } - static equals( - a: BackupProgressEntry | PlainMessage | undefined, - b: BackupProgressEntry | PlainMessage | undefined, - ): boolean { + static equals(a: BackupProgressEntry | PlainMessage | undefined, b: BackupProgressEntry | PlainMessage | undefined): boolean { return proto3.util.equals(BackupProgressEntry, a, b); } } @@ -311,56 +230,27 @@ export class BackupProgressStatusEntry extends Message [ - { - no: 1, - name: "percent_done", - kind: "scalar", - T: 1 /* ScalarType.DOUBLE */, - }, + { no: 1, name: "percent_done", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ }, { no: 2, name: "total_files", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, { no: 3, name: "total_bytes", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, { no: 4, name: "files_done", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, { no: 5, name: "bytes_done", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, - { - no: 6, - name: "current_file", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - repeated: true, - }, + { no: 6, name: "current_file", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): BackupProgressStatusEntry { + static fromBinary(bytes: Uint8Array, options?: Partial): BackupProgressStatusEntry { return new BackupProgressStatusEntry().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): BackupProgressStatusEntry { + static fromJson(jsonValue: JsonValue, options?: Partial): BackupProgressStatusEntry { return new BackupProgressStatusEntry().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): BackupProgressStatusEntry { + static fromJsonString(jsonString: string, options?: Partial): BackupProgressStatusEntry { return new BackupProgressStatusEntry().fromJsonString(jsonString, options); } - static equals( - a: - | BackupProgressStatusEntry - | PlainMessage - | undefined, - b: - | BackupProgressStatusEntry - | PlainMessage - | undefined, - ): boolean { + static equals(a: BackupProgressStatusEntry | PlainMessage | undefined, b: BackupProgressStatusEntry | PlainMessage | undefined): boolean { return proto3.util.equals(BackupProgressStatusEntry, a, b); } } @@ -447,85 +337,33 @@ export class BackupProgressSummary extends Message { static readonly typeName = "v1.BackupProgressSummary"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "files_new", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, - { - no: 2, - name: "files_changed", - kind: "scalar", - T: 3 /* ScalarType.INT64 */, - }, - { - no: 3, - name: "files_unmodified", - kind: "scalar", - T: 3 /* ScalarType.INT64 */, - }, + { no: 2, name: "files_changed", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, + { no: 3, name: "files_unmodified", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, { no: 4, name: "dirs_new", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, - { - no: 5, - name: "dirs_changed", - kind: "scalar", - T: 3 /* ScalarType.INT64 */, - }, - { - no: 6, - name: "dirs_unmodified", - kind: "scalar", - T: 3 /* ScalarType.INT64 */, - }, + { no: 5, name: "dirs_changed", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, + { no: 6, name: "dirs_unmodified", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, { no: 7, name: "data_blobs", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, { no: 8, name: "tree_blobs", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, { no: 9, name: "data_added", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, - { - no: 10, - name: "total_files_processed", - kind: "scalar", - T: 3 /* ScalarType.INT64 */, - }, - { - no: 11, - name: "total_bytes_processed", - kind: "scalar", - T: 3 /* ScalarType.INT64 */, - }, - { - no: 12, - name: "total_duration", - kind: "scalar", - T: 1 /* ScalarType.DOUBLE */, - }, - { - no: 13, - name: "snapshot_id", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - }, + { no: 10, name: "total_files_processed", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, + { no: 11, name: "total_bytes_processed", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, + { no: 12, name: "total_duration", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ }, + { no: 13, name: "snapshot_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): BackupProgressSummary { + static fromBinary(bytes: Uint8Array, options?: Partial): BackupProgressSummary { return new BackupProgressSummary().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): BackupProgressSummary { + static fromJson(jsonValue: JsonValue, options?: Partial): BackupProgressSummary { return new BackupProgressSummary().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): BackupProgressSummary { + static fromJsonString(jsonString: string, options?: Partial): BackupProgressSummary { return new BackupProgressSummary().fromJsonString(jsonString, options); } - static equals( - a: BackupProgressSummary | PlainMessage | undefined, - b: BackupProgressSummary | PlainMessage | undefined, - ): boolean { + static equals(a: BackupProgressSummary | PlainMessage | undefined, b: BackupProgressSummary | PlainMessage | undefined): boolean { return proto3.util.equals(BackupProgressSummary, a, b); } } @@ -564,31 +402,19 @@ export class BackupProgressError extends Message { { no: 3, name: "message", kind: "scalar", T: 9 /* ScalarType.STRING */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): BackupProgressError { + static fromBinary(bytes: Uint8Array, options?: Partial): BackupProgressError { return new BackupProgressError().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): BackupProgressError { + static fromJson(jsonValue: JsonValue, options?: Partial): BackupProgressError { return new BackupProgressError().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): BackupProgressError { + static fromJsonString(jsonString: string, options?: Partial): BackupProgressError { return new BackupProgressError().fromJsonString(jsonString, options); } - static equals( - a: BackupProgressError | PlainMessage | undefined, - b: BackupProgressError | PlainMessage | undefined, - ): boolean { + static equals(a: BackupProgressError | PlainMessage | undefined, b: BackupProgressError | PlainMessage | undefined): boolean { return proto3.util.equals(BackupProgressError, a, b); } } @@ -646,65 +472,28 @@ export class RestoreProgressEntry extends Message { static readonly runtime: typeof proto3 = proto3; static readonly typeName = "v1.RestoreProgressEntry"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { - no: 1, - name: "message_type", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - }, - { - no: 2, - name: "seconds_elapsed", - kind: "scalar", - T: 1 /* ScalarType.DOUBLE */, - }, + { no: 1, name: "message_type", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "seconds_elapsed", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ }, { no: 3, name: "total_bytes", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, - { - no: 4, - name: "bytes_restored", - kind: "scalar", - T: 3 /* ScalarType.INT64 */, - }, + { no: 4, name: "bytes_restored", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, { no: 5, name: "total_files", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, - { - no: 6, - name: "files_restored", - kind: "scalar", - T: 3 /* ScalarType.INT64 */, - }, - { - no: 7, - name: "percent_done", - kind: "scalar", - T: 1 /* ScalarType.DOUBLE */, - }, + { no: 6, name: "files_restored", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, + { no: 7, name: "percent_done", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): RestoreProgressEntry { + static fromBinary(bytes: Uint8Array, options?: Partial): RestoreProgressEntry { return new RestoreProgressEntry().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): RestoreProgressEntry { + static fromJson(jsonValue: JsonValue, options?: Partial): RestoreProgressEntry { return new RestoreProgressEntry().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): RestoreProgressEntry { + static fromJsonString(jsonString: string, options?: Partial): RestoreProgressEntry { return new RestoreProgressEntry().fromJsonString(jsonString, options); } - static equals( - a: RestoreProgressEntry | PlainMessage | undefined, - b: RestoreProgressEntry | PlainMessage | undefined, - ): boolean { + static equals(a: RestoreProgressEntry | PlainMessage | undefined, b: RestoreProgressEntry | PlainMessage | undefined): boolean { return proto3.util.equals(RestoreProgressEntry, a, b); } } @@ -747,57 +536,26 @@ export class RepoStats extends Message { static readonly typeName = "v1.RepoStats"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "total_size", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, - { - no: 2, - name: "total_uncompressed_size", - kind: "scalar", - T: 3 /* ScalarType.INT64 */, - }, - { - no: 3, - name: "compression_ratio", - kind: "scalar", - T: 1 /* ScalarType.DOUBLE */, - }, - { - no: 5, - name: "total_blob_count", - kind: "scalar", - T: 3 /* ScalarType.INT64 */, - }, - { - no: 6, - name: "snapshot_count", - kind: "scalar", - T: 3 /* ScalarType.INT64 */, - }, + { no: 2, name: "total_uncompressed_size", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, + { no: 3, name: "compression_ratio", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ }, + { no: 5, name: "total_blob_count", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, + { no: 6, name: "snapshot_count", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): RepoStats { + static fromBinary(bytes: Uint8Array, options?: Partial): RepoStats { return new RepoStats().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): RepoStats { + static fromJson(jsonValue: JsonValue, options?: Partial): RepoStats { return new RepoStats().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): RepoStats { + static fromJsonString(jsonString: string, options?: Partial): RepoStats { return new RepoStats().fromJsonString(jsonString, options); } - static equals( - a: RepoStats | PlainMessage | undefined, - b: RepoStats | PlainMessage | undefined, - ): boolean { + static equals(a: RepoStats | PlainMessage | undefined, b: RepoStats | PlainMessage | undefined): boolean { return proto3.util.equals(RepoStats, a, b); } } + diff --git a/webui/gen/ts/v1/service_connect.ts b/webui/gen/ts/v1/service_connect.ts index 4f390bd6..63f23313 100644 --- a/webui/gen/ts/v1/service_connect.ts +++ b/webui/gen/ts/v1/service_connect.ts @@ -6,24 +6,9 @@ import { Empty, MethodKind } from "@bufbuild/protobuf"; import { Config, Repo } from "./config_pb.js"; import { OperationEvent, OperationList } from "./operations_pb.js"; -import { - ClearHistoryRequest, - ForgetRequest, - GetOperationsRequest, - ListSnapshotFilesRequest, - ListSnapshotFilesResponse, - ListSnapshotsRequest, - LogDataRequest, - RestoreSnapshotRequest, - RunCommandRequest, -} from "./service_pb.js"; +import { ClearHistoryRequest, ForgetRequest, GetOperationsRequest, ListSnapshotFilesRequest, ListSnapshotFilesResponse, ListSnapshotsRequest, LogDataRequest, RestoreSnapshotRequest, RunCommandRequest } from "./service_pb.js"; import { ResticSnapshotList } from "./restic_pb.js"; -import { - BytesValue, - Int64Value, - StringList, - StringValue, -} from "../types/value_pb.js"; +import { BytesValue, Int64Value, StringList, StringValue } from "../types/value_pb.js"; /** * @generated from service v1.Backrest @@ -237,5 +222,6 @@ export const Backrest = { O: StringList, kind: MethodKind.Unary, }, - }, + } } as const; + diff --git a/webui/gen/ts/v1/service_pb.ts b/webui/gen/ts/v1/service_pb.ts index 9e196606..b86a1d6f 100644 --- a/webui/gen/ts/v1/service_pb.ts +++ b/webui/gen/ts/v1/service_pb.ts @@ -3,39 +3,85 @@ /* eslint-disable */ // @ts-nocheck -import type { - BinaryReadOptions, - FieldList, - JsonReadOptions, - JsonValue, - PartialMessage, - PlainMessage, -} from "@bufbuild/protobuf"; +import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf"; import { Message, proto3, protoInt64 } from "@bufbuild/protobuf"; /** - * @generated from message v1.ClearHistoryRequest + * OpSelector is a message that can be used to select operations e.g. by query. + * + * @generated from message v1.OpSelector */ -export class ClearHistoryRequest extends Message { +export class OpSelector extends Message { /** - * @generated from field: string repo_id = 1; + * @generated from field: repeated int64 ids = 1; + */ + ids: bigint[] = []; + + /** + * @generated from field: string repo_id = 2; */ repoId = ""; /** - * @generated from field: string plan_id = 2; + * @generated from field: string plan_id = 3; */ planId = ""; /** - * @generated from field: bool only_failed = 3; + * @generated from field: string snapshot_id = 4; */ - onlyFailed = false; + snapshotId = ""; /** - * @generated from field: repeated int64 ops = 4; + * @generated from field: int64 flow_id = 5; */ - ops: bigint[] = []; + flowId = protoInt64.zero; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "v1.OpSelector"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "ids", kind: "scalar", T: 3 /* ScalarType.INT64 */, repeated: true }, + { no: 2, name: "repo_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 3, name: "plan_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 4, name: "snapshot_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 5, name: "flow_id", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): OpSelector { + return new OpSelector().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): OpSelector { + return new OpSelector().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): OpSelector { + return new OpSelector().fromJsonString(jsonString, options); + } + + static equals(a: OpSelector | PlainMessage | undefined, b: OpSelector | PlainMessage | undefined): boolean { + return proto3.util.equals(OpSelector, a, b); + } +} + +/** + * @generated from message v1.ClearHistoryRequest + */ +export class ClearHistoryRequest extends Message { + /** + * @generated from field: v1.OpSelector selector = 1; + */ + selector?: OpSelector; + + /** + * @generated from field: bool only_failed = 2; + */ + onlyFailed = false; constructor(data?: PartialMessage) { super(); @@ -45,43 +91,23 @@ export class ClearHistoryRequest extends Message { static readonly runtime: typeof proto3 = proto3; static readonly typeName = "v1.ClearHistoryRequest"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { no: 1, name: "repo_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 2, name: "plan_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 3, name: "only_failed", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, - { - no: 4, - name: "ops", - kind: "scalar", - T: 3 /* ScalarType.INT64 */, - repeated: true, - }, + { no: 1, name: "selector", kind: "message", T: OpSelector }, + { no: 2, name: "only_failed", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): ClearHistoryRequest { + static fromBinary(bytes: Uint8Array, options?: Partial): ClearHistoryRequest { return new ClearHistoryRequest().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): ClearHistoryRequest { + static fromJson(jsonValue: JsonValue, options?: Partial): ClearHistoryRequest { return new ClearHistoryRequest().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): ClearHistoryRequest { + static fromJsonString(jsonString: string, options?: Partial): ClearHistoryRequest { return new ClearHistoryRequest().fromJsonString(jsonString, options); } - static equals( - a: ClearHistoryRequest | PlainMessage | undefined, - b: ClearHistoryRequest | PlainMessage | undefined, - ): boolean { + static equals(a: ClearHistoryRequest | PlainMessage | undefined, b: ClearHistoryRequest | PlainMessage | undefined): boolean { return proto3.util.equals(ClearHistoryRequest, a, b); } } @@ -115,39 +141,22 @@ export class ForgetRequest extends Message { static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "repo_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 2, name: "plan_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { - no: 3, - name: "snapshot_id", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - }, + { no: 3, name: "snapshot_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): ForgetRequest { + static fromBinary(bytes: Uint8Array, options?: Partial): ForgetRequest { return new ForgetRequest().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): ForgetRequest { + static fromJson(jsonValue: JsonValue, options?: Partial): ForgetRequest { return new ForgetRequest().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): ForgetRequest { + static fromJsonString(jsonString: string, options?: Partial): ForgetRequest { return new ForgetRequest().fromJsonString(jsonString, options); } - static equals( - a: ForgetRequest | PlainMessage | undefined, - b: ForgetRequest | PlainMessage | undefined, - ): boolean { + static equals(a: ForgetRequest | PlainMessage | undefined, b: ForgetRequest | PlainMessage | undefined): boolean { return proto3.util.equals(ForgetRequest, a, b); } } @@ -178,31 +187,19 @@ export class ListSnapshotsRequest extends Message { { no: 2, name: "plan_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): ListSnapshotsRequest { + static fromBinary(bytes: Uint8Array, options?: Partial): ListSnapshotsRequest { return new ListSnapshotsRequest().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): ListSnapshotsRequest { + static fromJson(jsonValue: JsonValue, options?: Partial): ListSnapshotsRequest { return new ListSnapshotsRequest().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): ListSnapshotsRequest { + static fromJsonString(jsonString: string, options?: Partial): ListSnapshotsRequest { return new ListSnapshotsRequest().fromJsonString(jsonString, options); } - static equals( - a: ListSnapshotsRequest | PlainMessage | undefined, - b: ListSnapshotsRequest | PlainMessage | undefined, - ): boolean { + static equals(a: ListSnapshotsRequest | PlainMessage | undefined, b: ListSnapshotsRequest | PlainMessage | undefined): boolean { return proto3.util.equals(ListSnapshotsRequest, a, b); } } @@ -212,34 +209,14 @@ export class ListSnapshotsRequest extends Message { */ export class GetOperationsRequest extends Message { /** - * @generated from field: string repo_id = 1; - */ - repoId = ""; - - /** - * @generated from field: string plan_id = 2; - */ - planId = ""; - - /** - * @generated from field: string snapshot_id = 4; - */ - snapshotId = ""; - - /** - * @generated from field: int64 flow_id = 6; + * @generated from field: v1.OpSelector selector = 1; */ - flowId = protoInt64.zero; - - /** - * @generated from field: repeated int64 ids = 5; - */ - ids: bigint[] = []; + selector?: OpSelector; /** * limit to the last n operations * - * @generated from field: int64 last_n = 3; + * @generated from field: int64 last_n = 2; */ lastN = protoInt64.zero; @@ -251,50 +228,23 @@ export class GetOperationsRequest extends Message { static readonly runtime: typeof proto3 = proto3; static readonly typeName = "v1.GetOperationsRequest"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { no: 1, name: "repo_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 2, name: "plan_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { - no: 4, - name: "snapshot_id", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - }, - { no: 6, name: "flow_id", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, - { - no: 5, - name: "ids", - kind: "scalar", - T: 3 /* ScalarType.INT64 */, - repeated: true, - }, - { no: 3, name: "last_n", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, + { no: 1, name: "selector", kind: "message", T: OpSelector }, + { no: 2, name: "last_n", kind: "scalar", T: 3 /* ScalarType.INT64 */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): GetOperationsRequest { + static fromBinary(bytes: Uint8Array, options?: Partial): GetOperationsRequest { return new GetOperationsRequest().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): GetOperationsRequest { + static fromJson(jsonValue: JsonValue, options?: Partial): GetOperationsRequest { return new GetOperationsRequest().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): GetOperationsRequest { + static fromJsonString(jsonString: string, options?: Partial): GetOperationsRequest { return new GetOperationsRequest().fromJsonString(jsonString, options); } - static equals( - a: GetOperationsRequest | PlainMessage | undefined, - b: GetOperationsRequest | PlainMessage | undefined, - ): boolean { + static equals(a: GetOperationsRequest | PlainMessage | undefined, b: GetOperationsRequest | PlainMessage | undefined): boolean { return proto3.util.equals(GetOperationsRequest, a, b); } } @@ -338,47 +288,24 @@ export class RestoreSnapshotRequest extends Message { static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "plan_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 5, name: "repo_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { - no: 2, - name: "snapshot_id", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - }, + { no: 2, name: "snapshot_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 3, name: "path", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 4, name: "target", kind: "scalar", T: 9 /* ScalarType.STRING */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): RestoreSnapshotRequest { + static fromBinary(bytes: Uint8Array, options?: Partial): RestoreSnapshotRequest { return new RestoreSnapshotRequest().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): RestoreSnapshotRequest { + static fromJson(jsonValue: JsonValue, options?: Partial): RestoreSnapshotRequest { return new RestoreSnapshotRequest().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): RestoreSnapshotRequest { + static fromJsonString(jsonString: string, options?: Partial): RestoreSnapshotRequest { return new RestoreSnapshotRequest().fromJsonString(jsonString, options); } - static equals( - a: - | RestoreSnapshotRequest - | PlainMessage - | undefined, - b: - | RestoreSnapshotRequest - | PlainMessage - | undefined, - ): boolean { + static equals(a: RestoreSnapshotRequest | PlainMessage | undefined, b: RestoreSnapshotRequest | PlainMessage | undefined): boolean { return proto3.util.equals(RestoreSnapshotRequest, a, b); } } @@ -411,46 +338,23 @@ export class ListSnapshotFilesRequest extends Message static readonly typeName = "v1.ListSnapshotFilesRequest"; static readonly fields: FieldList = proto3.util.newFieldList(() => [ { no: 1, name: "repo_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { - no: 2, - name: "snapshot_id", - kind: "scalar", - T: 9 /* ScalarType.STRING */, - }, + { no: 2, name: "snapshot_id", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 3, name: "path", kind: "scalar", T: 9 /* ScalarType.STRING */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): ListSnapshotFilesRequest { + static fromBinary(bytes: Uint8Array, options?: Partial): ListSnapshotFilesRequest { return new ListSnapshotFilesRequest().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): ListSnapshotFilesRequest { + static fromJson(jsonValue: JsonValue, options?: Partial): ListSnapshotFilesRequest { return new ListSnapshotFilesRequest().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): ListSnapshotFilesRequest { + static fromJsonString(jsonString: string, options?: Partial): ListSnapshotFilesRequest { return new ListSnapshotFilesRequest().fromJsonString(jsonString, options); } - static equals( - a: - | ListSnapshotFilesRequest - | PlainMessage - | undefined, - b: - | ListSnapshotFilesRequest - | PlainMessage - | undefined, - ): boolean { + static equals(a: ListSnapshotFilesRequest | PlainMessage | undefined, b: ListSnapshotFilesRequest | PlainMessage | undefined): boolean { return proto3.util.equals(ListSnapshotFilesRequest, a, b); } } @@ -481,37 +385,19 @@ export class ListSnapshotFilesResponse extends Message, - ): ListSnapshotFilesResponse { + static fromBinary(bytes: Uint8Array, options?: Partial): ListSnapshotFilesResponse { return new ListSnapshotFilesResponse().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): ListSnapshotFilesResponse { + static fromJson(jsonValue: JsonValue, options?: Partial): ListSnapshotFilesResponse { return new ListSnapshotFilesResponse().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): ListSnapshotFilesResponse { + static fromJsonString(jsonString: string, options?: Partial): ListSnapshotFilesResponse { return new ListSnapshotFilesResponse().fromJsonString(jsonString, options); } - static equals( - a: - | ListSnapshotFilesResponse - | PlainMessage - | undefined, - b: - | ListSnapshotFilesResponse - | PlainMessage - | undefined, - ): boolean { + static equals(a: ListSnapshotFilesResponse | PlainMessage | undefined, b: ListSnapshotFilesResponse | PlainMessage | undefined): boolean { return proto3.util.equals(ListSnapshotFilesResponse, a, b); } } @@ -536,31 +422,19 @@ export class LogDataRequest extends Message { { no: 1, name: "ref", kind: "scalar", T: 9 /* ScalarType.STRING */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): LogDataRequest { + static fromBinary(bytes: Uint8Array, options?: Partial): LogDataRequest { return new LogDataRequest().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): LogDataRequest { + static fromJson(jsonValue: JsonValue, options?: Partial): LogDataRequest { return new LogDataRequest().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): LogDataRequest { + static fromJsonString(jsonString: string, options?: Partial): LogDataRequest { return new LogDataRequest().fromJsonString(jsonString, options); } - static equals( - a: LogDataRequest | PlainMessage | undefined, - b: LogDataRequest | PlainMessage | undefined, - ): boolean { + static equals(a: LogDataRequest | PlainMessage | undefined, b: LogDataRequest | PlainMessage | undefined): boolean { return proto3.util.equals(LogDataRequest, a, b); } } @@ -639,31 +513,19 @@ export class LsEntry extends Message { { no: 10, name: "ctime", kind: "scalar", T: 9 /* ScalarType.STRING */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): LsEntry { + static fromBinary(bytes: Uint8Array, options?: Partial): LsEntry { return new LsEntry().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): LsEntry { + static fromJson(jsonValue: JsonValue, options?: Partial): LsEntry { return new LsEntry().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): LsEntry { + static fromJsonString(jsonString: string, options?: Partial): LsEntry { return new LsEntry().fromJsonString(jsonString, options); } - static equals( - a: LsEntry | PlainMessage | undefined, - b: LsEntry | PlainMessage | undefined, - ): boolean { + static equals(a: LsEntry | PlainMessage | undefined, b: LsEntry | PlainMessage | undefined): boolean { return proto3.util.equals(LsEntry, a, b); } } @@ -694,31 +556,20 @@ export class RunCommandRequest extends Message { { no: 2, name: "command", kind: "scalar", T: 9 /* ScalarType.STRING */ }, ]); - static fromBinary( - bytes: Uint8Array, - options?: Partial, - ): RunCommandRequest { + static fromBinary(bytes: Uint8Array, options?: Partial): RunCommandRequest { return new RunCommandRequest().fromBinary(bytes, options); } - static fromJson( - jsonValue: JsonValue, - options?: Partial, - ): RunCommandRequest { + static fromJson(jsonValue: JsonValue, options?: Partial): RunCommandRequest { return new RunCommandRequest().fromJson(jsonValue, options); } - static fromJsonString( - jsonString: string, - options?: Partial, - ): RunCommandRequest { + static fromJsonString(jsonString: string, options?: Partial): RunCommandRequest { return new RunCommandRequest().fromJsonString(jsonString, options); } - static equals( - a: RunCommandRequest | PlainMessage | undefined, - b: RunCommandRequest | PlainMessage | undefined, - ): boolean { + static equals(a: RunCommandRequest | PlainMessage | undefined, b: RunCommandRequest | PlainMessage | undefined): boolean { return proto3.util.equals(RunCommandRequest, a, b); } } + diff --git a/webui/src/api.ts b/webui/src/api.ts index 2cd540a9..3ab7385f 100644 --- a/webui/src/api.ts +++ b/webui/src/api.ts @@ -25,7 +25,7 @@ const fetch = ( const transport = createConnectTransport({ baseUrl: "./", - useBinaryFormat: true, + useBinaryFormat: false, fetch: fetch as typeof globalThis.fetch, }); diff --git a/webui/src/state/oplog.ts b/webui/src/state/oplog.ts index acff8b36..9c98c8a5 100644 --- a/webui/src/state/oplog.ts +++ b/webui/src/state/oplog.ts @@ -4,7 +4,7 @@ import { OperationEventType, OperationStatus, } from "../../gen/ts/v1/operations_pb"; -import { GetOperationsRequest } from "../../gen/ts/v1/service_pb"; +import { GetOperationsRequest, OpSelector } from "../../gen/ts/v1/service_pb"; import { BackupProgressEntry, ResticSnapshot } from "../../gen/ts/v1/restic_pb"; import _ from "lodash"; import { formatDuration, formatTime } from "../lib/formatting"; @@ -57,17 +57,9 @@ export const unsubscribeFromOperations = ( } }; -export const getStatusForPlan = async (plan: string) => { +export const getStatusForSelector = async (sel: OpSelector) => { const req = new GetOperationsRequest({ - planId: plan, - lastN: BigInt(STATUS_OPERATION_HISTORY), - }); - return await getStatus(req); -}; - -export const getStatusForRepo = async (repo: string) => { - const req = new GetOperationsRequest({ - repoId: repo, + selector: sel, lastN: BigInt(STATUS_OPERATION_HISTORY), }); return await getStatus(req); diff --git a/webui/src/views/App.tsx b/webui/src/views/App.tsx index 2ec1a59b..a79f2509 100644 --- a/webui/src/views/App.tsx +++ b/webui/src/views/App.tsx @@ -20,6 +20,7 @@ import { colorForStatus, getStatusForPlan, getStatusForRepo, + getStatusForSelector, subscribeToOperations, unsubscribeFromOperations, } from "../state/oplog"; @@ -32,6 +33,7 @@ import { MainContentArea, useSetContent } from "./MainContentArea"; import { GettingStartedGuide } from "./GettingStartedGuide"; import { useConfig } from "../components/ConfigProvider"; import { shouldShowSettings } from "../state/configutil"; +import { OpSelector } from "../../gen/ts/v1/service_pb"; const { Header, Sider } = Layout; @@ -195,7 +197,7 @@ const getSidenavItems = (config: Config | null): MenuProps["items"] => { ...configPlans.map((plan) => { return { key: "p-" + plan.id, - icon: , + icon: , label: (
{plan.id}{" "} @@ -303,11 +305,7 @@ const IconForResource = ({ const [status, setStatus] = useState(OperationStatus.STATUS_UNKNOWN); useEffect(() => { const load = async () => { - if (planId) { - setStatus(await getStatusForPlan(planId)); - } else if (repoId) { - setStatus(await getStatusForRepo(repoId)); - } + setStatus(await getStatusForSelector(new OpSelector({ planId, repoId }))); }; load(); const refresh = _.debounce(load, 1000, { maxWait: 5000, trailing: true }); diff --git a/webui/src/views/PlanView.tsx b/webui/src/views/PlanView.tsx index 2a40452a..416cfc76 100644 --- a/webui/src/views/PlanView.tsx +++ b/webui/src/views/PlanView.tsx @@ -6,7 +6,7 @@ import { OperationList } from "../components/OperationList"; import { OperationTree } from "../components/OperationTree"; import { MAX_OPERATION_HISTORY } from "../constants"; import { backrestService } from "../api"; -import { GetOperationsRequest } from "../../gen/ts/v1/service_pb"; +import { GetOperationsRequest, OpSelector } from "../../gen/ts/v1/service_pb"; import { SpinButton } from "../components/SpinButton"; import { shouldHideStatus } from "../state/oplog"; import { useShowModal } from "../components/ModalManager"; @@ -100,7 +100,10 @@ export const PlanView = ({ plan }: React.PropsWithChildren<{ plan: Plan }>) => { ) => { { new GetOperationsRequest({ repoId: repoId, lastN: BigInt(MAX_OPERATION_HISTORY), - }), + }) ) .then((ops) => { backupCollector.bulkAddOperations(ops);