diff --git a/extra/beta/update-version.js b/extra/beta/update-version.js index df2cb40a6..7abac5efe 100644 --- a/extra/beta/update-version.js +++ b/extra/beta/update-version.js @@ -32,6 +32,10 @@ if (! exists) { process.exit(1); } +/** + * Commit updated files + * @param {string} version Version to update to + */ function commit(version) { let msg = "Update to " + version; @@ -47,6 +51,10 @@ function commit(version) { console.log(res.stdout.toString().trim()); } +/** + * Create a tag with the specified version + * @param {string} version Tag to create + */ function tag(version) { let res = childProcess.spawnSync("git", [ "tag", version ]); console.log(res.stdout.toString().trim()); @@ -55,6 +63,11 @@ function tag(version) { console.log(res.stdout.toString().trim()); } +/** + * Check if a tag exists for the specified version + * @param {string} version Version to check + * @returns {boolean} Does the tag already exist + */ function tagExists(version) { if (! version) { throw new Error("invalid version"); diff --git a/extra/download-cloudflared.js b/extra/download-cloudflared.js index 41519b7ca..74b9bad2a 100644 --- a/extra/download-cloudflared.js +++ b/extra/download-cloudflared.js @@ -25,6 +25,10 @@ if (platform === "linux/amd64") { const file = fs.createWriteStream("cloudflared.deb"); get("https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-" + arch + ".deb"); +/** + * Download specified file + * @param {string} url URL to request + */ function get(url) { http.get(url, function (res) { if (res.statusCode >= 300 && res.statusCode < 400 && res.headers.location) { diff --git a/extra/remove-2fa.js b/extra/remove-2fa.js index 0f3f63462..f88c43fca 100644 --- a/extra/remove-2fa.js +++ b/extra/remove-2fa.js @@ -43,6 +43,11 @@ const main = async () => { console.log("Finished."); }; +/** + * Ask question of user + * @param {string} question Question to ask + * @returns {Promise} Users response + */ function question(question) { return new Promise((resolve) => { rl.question(question, (answer) => { diff --git a/extra/reset-password.js b/extra/reset-password.js index 8036a4566..168983312 100644 --- a/extra/reset-password.js +++ b/extra/reset-password.js @@ -53,6 +53,11 @@ const main = async () => { console.log("Finished."); }; +/** + * Ask question of user + * @param {string} question Question to ask + * @returns {Promise} Users response + */ function question(question) { return new Promise((resolve) => { rl.question(question, (answer) => { diff --git a/extra/simple-dns-server.js b/extra/simple-dns-server.js index 376dbdd04..a6946dcb3 100644 --- a/extra/simple-dns-server.js +++ b/extra/simple-dns-server.js @@ -135,6 +135,11 @@ server.listen({ udp: 5300 }); +/** + * Get human readable request type from request code + * @param {number} code Request code to translate + * @returns {string} Human readable request type + */ function type(code) { for (let name in Packet.TYPE) { if (Packet.TYPE[name] === code) { diff --git a/extra/simple-mqtt-server.js b/extra/simple-mqtt-server.js index 238d27726..b970a380e 100644 --- a/extra/simple-mqtt-server.js +++ b/extra/simple-mqtt-server.js @@ -11,6 +11,7 @@ class SimpleMqttServer { this.port = port; } + /** Start the MQTT server */ start() { this.server.listen(this.port, () => { console.log("server started and listening on port ", this.port); diff --git a/extra/update-version.js b/extra/update-version.js index d5c2ee5ca..246e1c1c4 100644 --- a/extra/update-version.js +++ b/extra/update-version.js @@ -36,10 +36,8 @@ if (! exists) { } /** - * Updates the version number in package.json and commits it to git. - * @param {string} version - The new version number - * - * Generated by Trelent + * Commit updated files + * @param {string} version Version to update to */ function commit(version) { let msg = "Update to " + version; @@ -53,16 +51,19 @@ function commit(version) { } } +/** + * Create a tag with the specified version + * @param {string} version Tag to create + */ function tag(version) { let res = childProcess.spawnSync("git", [ "tag", version ]); console.log(res.stdout.toString().trim()); } /** - * Checks if a given version is already tagged in the git repository. - * @param {string} version - The version to check for. - * - * Generated by Trelent + * Check if a tag exists for the specified version + * @param {string} version Version to check + * @returns {boolean} Does the tag already exist */ function tagExists(version) { if (! version) { diff --git a/extra/update-wiki-version.js b/extra/update-wiki-version.js index 65b7e7b08..f551db41b 100644 --- a/extra/update-wiki-version.js +++ b/extra/update-wiki-version.js @@ -10,6 +10,10 @@ if (!newVersion) { updateWiki(newVersion); +/** + * Update the wiki with new version number + * @param {string} newVersion Version to update to + */ function updateWiki(newVersion) { const wikiDir = "./tmp/wiki"; const howToUpdateFilename = "./tmp/wiki/🆙-How-to-Update.md"; @@ -39,6 +43,10 @@ function updateWiki(newVersion) { safeDelete(wikiDir); } +/** + * Check if a directory exists and then delete it + * @param {string} dir Directory to delete + */ function safeDelete(dir) { if (fs.existsSync(dir)) { fs.rm(dir, { diff --git a/package-lock.json b/package-lock.json index c510233ed..d100ef957 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,16 +1,16 @@ { "name": "uptime-kuma", - "version": "1.19.4", + "version": "1.19.5", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "uptime-kuma", - "version": "1.19.4", + "version": "1.19.5", "license": "MIT", "dependencies": { "@grpc/grpc-js": "~1.7.3", - "@louislam/ping": "~0.4.2-mod.0", + "@louislam/ping": "~0.4.2-mod.1", "@louislam/sqlite3": "15.1.2", "args-parser": "~1.3.0", "axios": "~0.27.0", @@ -53,7 +53,7 @@ "prom-client": "~13.2.0", "prometheus-api-metrics": "~3.2.1", "protobufjs": "~7.1.1", - "redbean-node": "0.1.4", + "redbean-node": "~0.2.0", "redis": "~4.5.1", "socket.io": "~4.5.3", "socket.io-client": "~4.5.3", @@ -258,12 +258,12 @@ "optional": true }, "node_modules/@aws-sdk/abort-controller": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.212.0.tgz", - "integrity": "sha512-mXeBSuDi0Fpul4zk9VH2z0VKN+/+6hyJ9SXSRhn3LpMcyj3GeZtXyTB2wCsfxXYGxeGbV+bIzbPbhZza6wNfWg==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.226.0.tgz", + "integrity": "sha512-cJVzr1xxPBd08voknXvR0RLgtZKGKt6WyDpH/BaPCu3rfSqWCDZKzwqe940eqosjmKrxC6pUZNKASIqHOQ8xxQ==", "optional": true, "dependencies": { - "@aws-sdk/types": "3.212.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" }, "engines": { @@ -271,43 +271,44 @@ } }, "node_modules/@aws-sdk/client-cognito-identity": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.212.0.tgz", - "integrity": "sha512-0yt6lyYUYng5Nnn5EyTnoVZuVXD3r6eaDjrIZQTc8yhNkbTg+eRLlGnJVkrn/O9NPRS52XqxLCbJc/Wk2SSH+w==", + "version": "3.245.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.245.0.tgz", + "integrity": "sha512-c5briTS05rAioO5b84bVng9M1KyAXcxJtDHeuoeAAZBuU+Dd0Scg3vyXyAFlGI+TsNyxqHAqqRdAoG4WNxJo/Q==", "optional": true, "dependencies": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/client-sts": "3.212.0", - "@aws-sdk/config-resolver": "3.212.0", - "@aws-sdk/credential-provider-node": "3.212.0", - "@aws-sdk/fetch-http-handler": "3.212.0", - "@aws-sdk/hash-node": "3.212.0", - "@aws-sdk/invalid-dependency": "3.212.0", - "@aws-sdk/middleware-content-length": "3.212.0", - "@aws-sdk/middleware-endpoint": "3.212.0", - "@aws-sdk/middleware-host-header": "3.212.0", - "@aws-sdk/middleware-logger": "3.212.0", - "@aws-sdk/middleware-recursion-detection": "3.212.0", - "@aws-sdk/middleware-retry": "3.212.0", - "@aws-sdk/middleware-serde": "3.212.0", - "@aws-sdk/middleware-signing": "3.212.0", - "@aws-sdk/middleware-stack": "3.212.0", - "@aws-sdk/middleware-user-agent": "3.212.0", - "@aws-sdk/node-config-provider": "3.212.0", - "@aws-sdk/node-http-handler": "3.212.0", - "@aws-sdk/protocol-http": "3.212.0", - "@aws-sdk/smithy-client": "3.212.0", - "@aws-sdk/types": "3.212.0", - "@aws-sdk/url-parser": "3.212.0", + "@aws-sdk/client-sts": "3.245.0", + "@aws-sdk/config-resolver": "3.234.0", + "@aws-sdk/credential-provider-node": "3.245.0", + "@aws-sdk/fetch-http-handler": "3.226.0", + "@aws-sdk/hash-node": "3.226.0", + "@aws-sdk/invalid-dependency": "3.226.0", + "@aws-sdk/middleware-content-length": "3.226.0", + "@aws-sdk/middleware-endpoint": "3.226.0", + "@aws-sdk/middleware-host-header": "3.226.0", + "@aws-sdk/middleware-logger": "3.226.0", + "@aws-sdk/middleware-recursion-detection": "3.226.0", + "@aws-sdk/middleware-retry": "3.235.0", + "@aws-sdk/middleware-serde": "3.226.0", + "@aws-sdk/middleware-signing": "3.226.0", + "@aws-sdk/middleware-stack": "3.226.0", + "@aws-sdk/middleware-user-agent": "3.226.0", + "@aws-sdk/node-config-provider": "3.226.0", + "@aws-sdk/node-http-handler": "3.226.0", + "@aws-sdk/protocol-http": "3.226.0", + "@aws-sdk/smithy-client": "3.234.0", + "@aws-sdk/types": "3.226.0", + "@aws-sdk/url-parser": "3.226.0", "@aws-sdk/util-base64": "3.208.0", "@aws-sdk/util-body-length-browser": "3.188.0", "@aws-sdk/util-body-length-node": "3.208.0", - "@aws-sdk/util-defaults-mode-browser": "3.212.0", - "@aws-sdk/util-defaults-mode-node": "3.212.0", - "@aws-sdk/util-endpoints": "3.212.0", - "@aws-sdk/util-user-agent-browser": "3.212.0", - "@aws-sdk/util-user-agent-node": "3.212.0", + "@aws-sdk/util-defaults-mode-browser": "3.234.0", + "@aws-sdk/util-defaults-mode-node": "3.234.0", + "@aws-sdk/util-endpoints": "3.245.0", + "@aws-sdk/util-retry": "3.229.0", + "@aws-sdk/util-user-agent-browser": "3.226.0", + "@aws-sdk/util-user-agent-node": "3.226.0", "@aws-sdk/util-utf8-browser": "3.188.0", "@aws-sdk/util-utf8-node": "3.208.0", "tslib": "^2.3.1" @@ -317,40 +318,41 @@ } }, "node_modules/@aws-sdk/client-sso": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.212.0.tgz", - "integrity": "sha512-b9lFI8Uz6YxIzAlS2uq62y5fX097lwcdkiq2N8YN2U7YgHQaKMIFnV8ZqkDdhZi2eUKwhSdUZzQy0tF6en2Ubg==", + "version": "3.245.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.245.0.tgz", + "integrity": "sha512-dxzRwRo55ZNQ4hQigC+cishxLSWlBrbr3iszG0FLviavLDOlnVG5UUxWpOIGvwr8pYiSfM4jnfMxiwYwiCLg1g==", "optional": true, "dependencies": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.212.0", - "@aws-sdk/fetch-http-handler": "3.212.0", - "@aws-sdk/hash-node": "3.212.0", - "@aws-sdk/invalid-dependency": "3.212.0", - "@aws-sdk/middleware-content-length": "3.212.0", - "@aws-sdk/middleware-endpoint": "3.212.0", - "@aws-sdk/middleware-host-header": "3.212.0", - "@aws-sdk/middleware-logger": "3.212.0", - "@aws-sdk/middleware-recursion-detection": "3.212.0", - "@aws-sdk/middleware-retry": "3.212.0", - "@aws-sdk/middleware-serde": "3.212.0", - "@aws-sdk/middleware-stack": "3.212.0", - "@aws-sdk/middleware-user-agent": "3.212.0", - "@aws-sdk/node-config-provider": "3.212.0", - "@aws-sdk/node-http-handler": "3.212.0", - "@aws-sdk/protocol-http": "3.212.0", - "@aws-sdk/smithy-client": "3.212.0", - "@aws-sdk/types": "3.212.0", - "@aws-sdk/url-parser": "3.212.0", + "@aws-sdk/config-resolver": "3.234.0", + "@aws-sdk/fetch-http-handler": "3.226.0", + "@aws-sdk/hash-node": "3.226.0", + "@aws-sdk/invalid-dependency": "3.226.0", + "@aws-sdk/middleware-content-length": "3.226.0", + "@aws-sdk/middleware-endpoint": "3.226.0", + "@aws-sdk/middleware-host-header": "3.226.0", + "@aws-sdk/middleware-logger": "3.226.0", + "@aws-sdk/middleware-recursion-detection": "3.226.0", + "@aws-sdk/middleware-retry": "3.235.0", + "@aws-sdk/middleware-serde": "3.226.0", + "@aws-sdk/middleware-stack": "3.226.0", + "@aws-sdk/middleware-user-agent": "3.226.0", + "@aws-sdk/node-config-provider": "3.226.0", + "@aws-sdk/node-http-handler": "3.226.0", + "@aws-sdk/protocol-http": "3.226.0", + "@aws-sdk/smithy-client": "3.234.0", + "@aws-sdk/types": "3.226.0", + "@aws-sdk/url-parser": "3.226.0", "@aws-sdk/util-base64": "3.208.0", "@aws-sdk/util-body-length-browser": "3.188.0", "@aws-sdk/util-body-length-node": "3.208.0", - "@aws-sdk/util-defaults-mode-browser": "3.212.0", - "@aws-sdk/util-defaults-mode-node": "3.212.0", - "@aws-sdk/util-endpoints": "3.212.0", - "@aws-sdk/util-user-agent-browser": "3.212.0", - "@aws-sdk/util-user-agent-node": "3.212.0", + "@aws-sdk/util-defaults-mode-browser": "3.234.0", + "@aws-sdk/util-defaults-mode-node": "3.234.0", + "@aws-sdk/util-endpoints": "3.245.0", + "@aws-sdk/util-retry": "3.229.0", + "@aws-sdk/util-user-agent-browser": "3.226.0", + "@aws-sdk/util-user-agent-node": "3.226.0", "@aws-sdk/util-utf8-browser": "3.188.0", "@aws-sdk/util-utf8-node": "3.208.0", "tslib": "^2.3.1" @@ -360,40 +362,41 @@ } }, "node_modules/@aws-sdk/client-sso-oidc": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.212.0.tgz", - "integrity": "sha512-Co0AU+y9KEAZUraT36ttFZlmwARsr82q2nQji5E8zg3zlUHtqGvMJqxArudz3iOb2E9WRi75MwAQmLO2xEk45A==", + "version": "3.245.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.245.0.tgz", + "integrity": "sha512-0pGPA00kEsu2Yq1Ul+OwftHxws5YVllm4iZrPtGnqmXr7wmf6B9lOtrMQF44y7Tfw53po6+bKz08OKTEWkkjUA==", "optional": true, "dependencies": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.212.0", - "@aws-sdk/fetch-http-handler": "3.212.0", - "@aws-sdk/hash-node": "3.212.0", - "@aws-sdk/invalid-dependency": "3.212.0", - "@aws-sdk/middleware-content-length": "3.212.0", - "@aws-sdk/middleware-endpoint": "3.212.0", - "@aws-sdk/middleware-host-header": "3.212.0", - "@aws-sdk/middleware-logger": "3.212.0", - "@aws-sdk/middleware-recursion-detection": "3.212.0", - "@aws-sdk/middleware-retry": "3.212.0", - "@aws-sdk/middleware-serde": "3.212.0", - "@aws-sdk/middleware-stack": "3.212.0", - "@aws-sdk/middleware-user-agent": "3.212.0", - "@aws-sdk/node-config-provider": "3.212.0", - "@aws-sdk/node-http-handler": "3.212.0", - "@aws-sdk/protocol-http": "3.212.0", - "@aws-sdk/smithy-client": "3.212.0", - "@aws-sdk/types": "3.212.0", - "@aws-sdk/url-parser": "3.212.0", + "@aws-sdk/config-resolver": "3.234.0", + "@aws-sdk/fetch-http-handler": "3.226.0", + "@aws-sdk/hash-node": "3.226.0", + "@aws-sdk/invalid-dependency": "3.226.0", + "@aws-sdk/middleware-content-length": "3.226.0", + "@aws-sdk/middleware-endpoint": "3.226.0", + "@aws-sdk/middleware-host-header": "3.226.0", + "@aws-sdk/middleware-logger": "3.226.0", + "@aws-sdk/middleware-recursion-detection": "3.226.0", + "@aws-sdk/middleware-retry": "3.235.0", + "@aws-sdk/middleware-serde": "3.226.0", + "@aws-sdk/middleware-stack": "3.226.0", + "@aws-sdk/middleware-user-agent": "3.226.0", + "@aws-sdk/node-config-provider": "3.226.0", + "@aws-sdk/node-http-handler": "3.226.0", + "@aws-sdk/protocol-http": "3.226.0", + "@aws-sdk/smithy-client": "3.234.0", + "@aws-sdk/types": "3.226.0", + "@aws-sdk/url-parser": "3.226.0", "@aws-sdk/util-base64": "3.208.0", "@aws-sdk/util-body-length-browser": "3.188.0", "@aws-sdk/util-body-length-node": "3.208.0", - "@aws-sdk/util-defaults-mode-browser": "3.212.0", - "@aws-sdk/util-defaults-mode-node": "3.212.0", - "@aws-sdk/util-endpoints": "3.212.0", - "@aws-sdk/util-user-agent-browser": "3.212.0", - "@aws-sdk/util-user-agent-node": "3.212.0", + "@aws-sdk/util-defaults-mode-browser": "3.234.0", + "@aws-sdk/util-defaults-mode-node": "3.234.0", + "@aws-sdk/util-endpoints": "3.245.0", + "@aws-sdk/util-retry": "3.229.0", + "@aws-sdk/util-user-agent-browser": "3.226.0", + "@aws-sdk/util-user-agent-node": "3.226.0", "@aws-sdk/util-utf8-browser": "3.188.0", "@aws-sdk/util-utf8-node": "3.208.0", "tslib": "^2.3.1" @@ -403,43 +406,44 @@ } }, "node_modules/@aws-sdk/client-sts": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.212.0.tgz", - "integrity": "sha512-Zl8665HT1Do/yfiFEtqEjLkHSkAo5Isg2QU65Kbknj2W2DFj92a1cRvMlHanDLxlpuoryGP9/u1efYZeWeIdlg==", + "version": "3.245.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.245.0.tgz", + "integrity": "sha512-E+7v2sy34TLni/Dmz6bTU20NWvbHYH9sVUHKQ9kHhmFopUWrs4Nt77f85PbuiKJz/irjUh9ppT5q1odJNRKRVQ==", "optional": true, "dependencies": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.212.0", - "@aws-sdk/credential-provider-node": "3.212.0", - "@aws-sdk/fetch-http-handler": "3.212.0", - "@aws-sdk/hash-node": "3.212.0", - "@aws-sdk/invalid-dependency": "3.212.0", - "@aws-sdk/middleware-content-length": "3.212.0", - "@aws-sdk/middleware-endpoint": "3.212.0", - "@aws-sdk/middleware-host-header": "3.212.0", - "@aws-sdk/middleware-logger": "3.212.0", - "@aws-sdk/middleware-recursion-detection": "3.212.0", - "@aws-sdk/middleware-retry": "3.212.0", - "@aws-sdk/middleware-sdk-sts": "3.212.0", - "@aws-sdk/middleware-serde": "3.212.0", - "@aws-sdk/middleware-signing": "3.212.0", - "@aws-sdk/middleware-stack": "3.212.0", - "@aws-sdk/middleware-user-agent": "3.212.0", - "@aws-sdk/node-config-provider": "3.212.0", - "@aws-sdk/node-http-handler": "3.212.0", - "@aws-sdk/protocol-http": "3.212.0", - "@aws-sdk/smithy-client": "3.212.0", - "@aws-sdk/types": "3.212.0", - "@aws-sdk/url-parser": "3.212.0", + "@aws-sdk/config-resolver": "3.234.0", + "@aws-sdk/credential-provider-node": "3.245.0", + "@aws-sdk/fetch-http-handler": "3.226.0", + "@aws-sdk/hash-node": "3.226.0", + "@aws-sdk/invalid-dependency": "3.226.0", + "@aws-sdk/middleware-content-length": "3.226.0", + "@aws-sdk/middleware-endpoint": "3.226.0", + "@aws-sdk/middleware-host-header": "3.226.0", + "@aws-sdk/middleware-logger": "3.226.0", + "@aws-sdk/middleware-recursion-detection": "3.226.0", + "@aws-sdk/middleware-retry": "3.235.0", + "@aws-sdk/middleware-sdk-sts": "3.226.0", + "@aws-sdk/middleware-serde": "3.226.0", + "@aws-sdk/middleware-signing": "3.226.0", + "@aws-sdk/middleware-stack": "3.226.0", + "@aws-sdk/middleware-user-agent": "3.226.0", + "@aws-sdk/node-config-provider": "3.226.0", + "@aws-sdk/node-http-handler": "3.226.0", + "@aws-sdk/protocol-http": "3.226.0", + "@aws-sdk/smithy-client": "3.234.0", + "@aws-sdk/types": "3.226.0", + "@aws-sdk/url-parser": "3.226.0", "@aws-sdk/util-base64": "3.208.0", "@aws-sdk/util-body-length-browser": "3.188.0", "@aws-sdk/util-body-length-node": "3.208.0", - "@aws-sdk/util-defaults-mode-browser": "3.212.0", - "@aws-sdk/util-defaults-mode-node": "3.212.0", - "@aws-sdk/util-endpoints": "3.212.0", - "@aws-sdk/util-user-agent-browser": "3.212.0", - "@aws-sdk/util-user-agent-node": "3.212.0", + "@aws-sdk/util-defaults-mode-browser": "3.234.0", + "@aws-sdk/util-defaults-mode-node": "3.234.0", + "@aws-sdk/util-endpoints": "3.245.0", + "@aws-sdk/util-retry": "3.229.0", + "@aws-sdk/util-user-agent-browser": "3.226.0", + "@aws-sdk/util-user-agent-node": "3.226.0", "@aws-sdk/util-utf8-browser": "3.188.0", "@aws-sdk/util-utf8-node": "3.208.0", "fast-xml-parser": "4.0.11", @@ -450,15 +454,15 @@ } }, "node_modules/@aws-sdk/config-resolver": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.212.0.tgz", - "integrity": "sha512-hIP/Izpv6GCsDTnHCd/X9Ro7Mw5le+gr2VbkZHWR0c8+3xZWp8N5S0QnUBogF3Dv2KwPbmHP+bs/vqqo3miUjQ==", + "version": "3.234.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.234.0.tgz", + "integrity": "sha512-uZxy4wzllfvgCQxVc+Iqhde0NGAnfmV2hWR6ejadJaAFTuYNvQiRg9IqJy3pkyDPqXySiJ8Bom5PoJfgn55J/A==", "optional": true, "dependencies": { - "@aws-sdk/signature-v4": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/signature-v4": "3.226.0", + "@aws-sdk/types": "3.226.0", "@aws-sdk/util-config-provider": "3.208.0", - "@aws-sdk/util-middleware": "3.212.0", + "@aws-sdk/util-middleware": "3.226.0", "tslib": "^2.3.1" }, "engines": { @@ -466,14 +470,14 @@ } }, "node_modules/@aws-sdk/credential-provider-cognito-identity": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.212.0.tgz", - "integrity": "sha512-0BEML2iBGXyFnD1HNQ28B+9Ev7NGcu9itYcJue5mBkCOka3mW55xAPYwp3es0rhQ1oeBziqCjHIIRsp7wGIvsQ==", + "version": "3.245.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.245.0.tgz", + "integrity": "sha512-DkiPv7Yb9iw3yAzvWUAkXrI23F1+kV8grdXzlSzob5suqv/dVON5pFXK9Siz62WwWsa2FeCEpgEF7RA0mrWLtA==", "optional": true, "dependencies": { - "@aws-sdk/client-cognito-identity": "3.212.0", - "@aws-sdk/property-provider": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/client-cognito-identity": "3.245.0", + "@aws-sdk/property-provider": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" }, "engines": { @@ -481,13 +485,13 @@ } }, "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.212.0.tgz", - "integrity": "sha512-HNYoqetLqTxwl0Grl4ez8Dx3I3hJfskxH2PTHYI1/iAqrY/gSB2oBOusvBeksbYrScnQM2IGqEcMJ4lzGLOH+w==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.226.0.tgz", + "integrity": "sha512-sd8uK1ojbXxaZXlthzw/VXZwCPUtU3PjObOfr3Evj7MPIM2IH8h29foOlggx939MdLQGboJf9gKvLlvKDWtJRA==", "optional": true, "dependencies": { - "@aws-sdk/property-provider": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/property-provider": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" }, "engines": { @@ -495,15 +499,15 @@ } }, "node_modules/@aws-sdk/credential-provider-imds": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.212.0.tgz", - "integrity": "sha512-Bg7cX2N5pJ//ft3Y8HWtpDSEMMgRTNMaNlIvTlDbAKYp7HBZRWSf9ZJnz2slT7qbyaJyRP5pSJC4XRm83g4leA==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.226.0.tgz", + "integrity": "sha512-//z/COQm2AjYFI1Lb0wKHTQSrvLFTyuKLFQGPJsKS7DPoxGOCKB7hmYerlbl01IDoCxTdyL//TyyPxbZEOQD5Q==", "optional": true, "dependencies": { - "@aws-sdk/node-config-provider": "3.212.0", - "@aws-sdk/property-provider": "3.212.0", - "@aws-sdk/types": "3.212.0", - "@aws-sdk/url-parser": "3.212.0", + "@aws-sdk/node-config-provider": "3.226.0", + "@aws-sdk/property-provider": "3.226.0", + "@aws-sdk/types": "3.226.0", + "@aws-sdk/url-parser": "3.226.0", "tslib": "^2.3.1" }, "engines": { @@ -511,18 +515,19 @@ } }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.212.0.tgz", - "integrity": "sha512-H7qRIP8qV7tRrCSJx2p5oQVMJASQWZUmi4l699hDMejmCO/m4pUMQFmWn2FXtZv8gTfzlkmp3wMixD5jnfL7pw==", + "version": "3.245.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.245.0.tgz", + "integrity": "sha512-1SjfVc5Wg0lLRUvwMrfjGgFkl+zfxn74gnkPr6by1QyMAoTzmeUkalPLAIqd+uHtFom9e3K633BQtX7zVPZ5XQ==", "optional": true, "dependencies": { - "@aws-sdk/credential-provider-env": "3.212.0", - "@aws-sdk/credential-provider-imds": "3.212.0", - "@aws-sdk/credential-provider-sso": "3.212.0", - "@aws-sdk/credential-provider-web-identity": "3.212.0", - "@aws-sdk/property-provider": "3.212.0", - "@aws-sdk/shared-ini-file-loader": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/credential-provider-env": "3.226.0", + "@aws-sdk/credential-provider-imds": "3.226.0", + "@aws-sdk/credential-provider-process": "3.226.0", + "@aws-sdk/credential-provider-sso": "3.245.0", + "@aws-sdk/credential-provider-web-identity": "3.226.0", + "@aws-sdk/property-provider": "3.226.0", + "@aws-sdk/shared-ini-file-loader": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" }, "engines": { @@ -530,20 +535,20 @@ } }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.212.0.tgz", - "integrity": "sha512-T44hoU3GCYHS+4GDVs7S/v2bBHmmYpnPayQsYXhDElQKXP0cFzQ78F8et4IU5lM94hwK+ISRQPrKaq4p77evkw==", + "version": "3.245.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.245.0.tgz", + "integrity": "sha512-Dwv8zmRLTDLeEkGrK/sLNFZSC+ahXZxr07CuID054QKACIdUEvkqYlnalRiTeXngiHGQ54u8wU7f0D32R2oL0g==", "optional": true, "dependencies": { - "@aws-sdk/credential-provider-env": "3.212.0", - "@aws-sdk/credential-provider-imds": "3.212.0", - "@aws-sdk/credential-provider-ini": "3.212.0", - "@aws-sdk/credential-provider-process": "3.212.0", - "@aws-sdk/credential-provider-sso": "3.212.0", - "@aws-sdk/credential-provider-web-identity": "3.212.0", - "@aws-sdk/property-provider": "3.212.0", - "@aws-sdk/shared-ini-file-loader": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/credential-provider-env": "3.226.0", + "@aws-sdk/credential-provider-imds": "3.226.0", + "@aws-sdk/credential-provider-ini": "3.245.0", + "@aws-sdk/credential-provider-process": "3.226.0", + "@aws-sdk/credential-provider-sso": "3.245.0", + "@aws-sdk/credential-provider-web-identity": "3.226.0", + "@aws-sdk/property-provider": "3.226.0", + "@aws-sdk/shared-ini-file-loader": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" }, "engines": { @@ -551,14 +556,14 @@ } }, "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.212.0.tgz", - "integrity": "sha512-bGaVKSm5Tf5VZtlM2V6k+M9nSKzlb14ldCcH0PGGMaK/dqnEJDVSxXPu3fWyomaxbLt7Is3AUMh6L2bq3kuXyA==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.226.0.tgz", + "integrity": "sha512-iUDMdnrTvbvaCFhWwqyXrhvQ9+ojPqPqXhwZtY1X/Qaz+73S9gXBPJHZaZb2Ke0yKE1Ql3bJbKvmmxC/qLQMng==", "optional": true, "dependencies": { - "@aws-sdk/property-provider": "3.212.0", - "@aws-sdk/shared-ini-file-loader": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/property-provider": "3.226.0", + "@aws-sdk/shared-ini-file-loader": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" }, "engines": { @@ -566,16 +571,16 @@ } }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.212.0.tgz", - "integrity": "sha512-OGatVUnWLp7PePs2H2RyYmTrwurl0tAfW+LWfVAPgYyvi2RQgTmSK5LJ3pXKxz3TvaSHkCvsT0NWNqdWY+iKWQ==", + "version": "3.245.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.245.0.tgz", + "integrity": "sha512-txWrJc0WNBhXMi7q+twjx7cs/qzgTfbQ+vbag5idRmdoUeiR8rfLvihCab2NaGg50xhh+TaoUCXrgJp3E/XjYQ==", "optional": true, "dependencies": { - "@aws-sdk/client-sso": "3.212.0", - "@aws-sdk/property-provider": "3.212.0", - "@aws-sdk/shared-ini-file-loader": "3.212.0", - "@aws-sdk/token-providers": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/client-sso": "3.245.0", + "@aws-sdk/property-provider": "3.226.0", + "@aws-sdk/shared-ini-file-loader": "3.226.0", + "@aws-sdk/token-providers": "3.245.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" }, "engines": { @@ -583,13 +588,13 @@ } }, "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.212.0.tgz", - "integrity": "sha512-zPF3KiVT14aeu4cRyEUelAJEAzFp++9ULLigQXhKBbFYaiOZMAHKRASO/WUK1ixYBC+ax4G1rbihLfQimXMtVA==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.226.0.tgz", + "integrity": "sha512-CCpv847rLB0SFOHz2igvUMFAzeT2fD3YnY4C8jltuJoEkn0ITn1Hlgt13nTJ5BUuvyti2mvyXZHmNzhMIMrIlw==", "optional": true, "dependencies": { - "@aws-sdk/property-provider": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/property-provider": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" }, "engines": { @@ -597,25 +602,25 @@ } }, "node_modules/@aws-sdk/credential-providers": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.212.0.tgz", - "integrity": "sha512-ea1KFqSpGsXcAD5IdDxKsWimLQ2/HiKQnlJUpXyDEP1Sk3if/Gtnn17Hk6GgXByaqppDqful9Lu9esxc3mNDkg==", + "version": "3.245.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.245.0.tgz", + "integrity": "sha512-6Uhsxk6MOuWplejhPJf7XDhegHmcZfj8hwnF4mXFJ6u4b2RxWPQCnqPcA0+VoAzIMUqbjqvkSzmVjQelGFtjNg==", "optional": true, "dependencies": { - "@aws-sdk/client-cognito-identity": "3.212.0", - "@aws-sdk/client-sso": "3.212.0", - "@aws-sdk/client-sts": "3.212.0", - "@aws-sdk/credential-provider-cognito-identity": "3.212.0", - "@aws-sdk/credential-provider-env": "3.212.0", - "@aws-sdk/credential-provider-imds": "3.212.0", - "@aws-sdk/credential-provider-ini": "3.212.0", - "@aws-sdk/credential-provider-node": "3.212.0", - "@aws-sdk/credential-provider-process": "3.212.0", - "@aws-sdk/credential-provider-sso": "3.212.0", - "@aws-sdk/credential-provider-web-identity": "3.212.0", - "@aws-sdk/property-provider": "3.212.0", - "@aws-sdk/shared-ini-file-loader": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/client-cognito-identity": "3.245.0", + "@aws-sdk/client-sso": "3.245.0", + "@aws-sdk/client-sts": "3.245.0", + "@aws-sdk/credential-provider-cognito-identity": "3.245.0", + "@aws-sdk/credential-provider-env": "3.226.0", + "@aws-sdk/credential-provider-imds": "3.226.0", + "@aws-sdk/credential-provider-ini": "3.245.0", + "@aws-sdk/credential-provider-node": "3.245.0", + "@aws-sdk/credential-provider-process": "3.226.0", + "@aws-sdk/credential-provider-sso": "3.245.0", + "@aws-sdk/credential-provider-web-identity": "3.226.0", + "@aws-sdk/property-provider": "3.226.0", + "@aws-sdk/shared-ini-file-loader": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" }, "engines": { @@ -623,25 +628,25 @@ } }, "node_modules/@aws-sdk/fetch-http-handler": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.212.0.tgz", - "integrity": "sha512-u7ehnpAVN8D0asWhyQitNVf1j5LdzCuxP/14Dx8+PvrUdZxQNVq2FVB+tkQvOs9pDHE/oROjVo7GNO42bmkitA==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.226.0.tgz", + "integrity": "sha512-JewZPMNEBXfi1xVnRa7pVtK/zgZD8/lQ/YnD8pq79WuMa2cwyhDtr8oqCoqsPW+WJT5ScXoMtuHxN78l8eKWgg==", "optional": true, "dependencies": { - "@aws-sdk/protocol-http": "3.212.0", - "@aws-sdk/querystring-builder": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/protocol-http": "3.226.0", + "@aws-sdk/querystring-builder": "3.226.0", + "@aws-sdk/types": "3.226.0", "@aws-sdk/util-base64": "3.208.0", "tslib": "^2.3.1" } }, "node_modules/@aws-sdk/hash-node": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.212.0.tgz", - "integrity": "sha512-pwZkz83EvXHGURBYjBYS7Cr+gSr6pi23RDlP/aXREjJGs9QUQyixBh78oX5a3p6bB8JeizPcZS1dXKJ9OKCHAw==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.226.0.tgz", + "integrity": "sha512-MdlJhJ9/Espwd0+gUXdZRsHuostB2WxEVAszWxobP0FTT9PnicqnfK7ExmW+DUAc0ywxtEbR3e0UND65rlSTVw==", "optional": true, "dependencies": { - "@aws-sdk/types": "3.212.0", + "@aws-sdk/types": "3.226.0", "@aws-sdk/util-buffer-from": "3.208.0", "tslib": "^2.3.1" }, @@ -650,12 +655,12 @@ } }, "node_modules/@aws-sdk/invalid-dependency": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.212.0.tgz", - "integrity": "sha512-zKVx+4Silmsr5Nvv9aGL5FmuHvdP9Dcvy/22fmWa3RRvCSNRpvFDeXtcDB5FvNpbWbO+qJyGj/OeqB/XejV13w==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.226.0.tgz", + "integrity": "sha512-QXOYFmap8g9QzRjumcRCIo2GEZkdCwd7ePQW0OABWPhKHzlJ74vvBxywjU3s39EEBEluWXtZ7Iufg6GxZM4ifw==", "optional": true, "dependencies": { - "@aws-sdk/types": "3.212.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" } }, @@ -672,13 +677,13 @@ } }, "node_modules/@aws-sdk/middleware-content-length": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.212.0.tgz", - "integrity": "sha512-gR6jeKGYNYqNLFRcuX3vv5PN1POLlB/9LDVYl3k/NNaCg8L1EKqqEtG84Gmn1AXH+2s6zMNs+gt5ygeqZQe2Cw==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.226.0.tgz", + "integrity": "sha512-ksUzlHJN2JMuyavjA46a4sctvnrnITqt2tbGGWWrAuXY1mel2j+VbgnmJUiwHKUO6bTFBBeft5Vd1TSOb4JmiA==", "optional": true, "dependencies": { - "@aws-sdk/protocol-http": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/protocol-http": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" }, "engines": { @@ -686,18 +691,18 @@ } }, "node_modules/@aws-sdk/middleware-endpoint": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.212.0.tgz", - "integrity": "sha512-6ntKYehjxLun8hPXIPHSI2pGr/pHuQ6jcyO5wBq1kydSIIGiESl8H84DEt+yRvroCiYgbU+I8cACnRE0uv0bLA==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.226.0.tgz", + "integrity": "sha512-EvLFafjtUxTT0AC9p3aBQu1/fjhWdIeK58jIXaNFONfZ3F8QbEYUPuF/SqZvJM6cWfOO9qwYKkRDbCSTYhprIg==", "optional": true, "dependencies": { - "@aws-sdk/middleware-serde": "3.212.0", - "@aws-sdk/protocol-http": "3.212.0", - "@aws-sdk/signature-v4": "3.212.0", - "@aws-sdk/types": "3.212.0", - "@aws-sdk/url-parser": "3.212.0", + "@aws-sdk/middleware-serde": "3.226.0", + "@aws-sdk/protocol-http": "3.226.0", + "@aws-sdk/signature-v4": "3.226.0", + "@aws-sdk/types": "3.226.0", + "@aws-sdk/url-parser": "3.226.0", "@aws-sdk/util-config-provider": "3.208.0", - "@aws-sdk/util-middleware": "3.212.0", + "@aws-sdk/util-middleware": "3.226.0", "tslib": "^2.3.1" }, "engines": { @@ -705,13 +710,13 @@ } }, "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.212.0.tgz", - "integrity": "sha512-W00mxzK2OXy91Ncxri3cZJIxxSBzE72bX8FDa3xgC0ujbj49lw+rol6aV/Fw8Nda3CZ5xxulvJ4sXHt2eOtXSA==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.226.0.tgz", + "integrity": "sha512-haVkWVh6BUPwKgWwkL6sDvTkcZWvJjv8AgC8jiQuSl8GLZdzHTB8Qhi3IsfFta9HAuoLjxheWBE5Z/L0UrfhLA==", "optional": true, "dependencies": { - "@aws-sdk/protocol-http": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/protocol-http": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" }, "engines": { @@ -719,12 +724,12 @@ } }, "node_modules/@aws-sdk/middleware-logger": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.212.0.tgz", - "integrity": "sha512-BSQqzKp4abf2wXvJEstB0zdr68yJMZXA14h53eSvtzykZLfvvFixR1nyVgKq+PKm1VaJ2fuZr10tjWRVQg1pYA==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.226.0.tgz", + "integrity": "sha512-m9gtLrrYnpN6yckcQ09rV7ExWOLMuq8mMPF/K3DbL/YL0TuILu9i2T1W+JuxSX+K9FMG2HrLAKivE/kMLr55xA==", "optional": true, "dependencies": { - "@aws-sdk/types": "3.212.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" }, "engines": { @@ -732,13 +737,13 @@ } }, "node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.212.0.tgz", - "integrity": "sha512-ATHPNtnd7nlm0jRXvr/c2xbxcna5ZGXEWTM5tUjIflOK9Rl3PCRce/hoQnHs45kv4l3daC53sPuRvTQ8O7K67A==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.226.0.tgz", + "integrity": "sha512-mwRbdKEUeuNH5TEkyZ5FWxp6bL2UC1WbY+LDv6YjHxmSMKpAoOueEdtU34PqDOLrpXXxIGHDFmjeGeMfktyEcA==", "optional": true, "dependencies": { - "@aws-sdk/protocol-http": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/protocol-http": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" }, "engines": { @@ -746,15 +751,16 @@ } }, "node_modules/@aws-sdk/middleware-retry": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.212.0.tgz", - "integrity": "sha512-lIi/JkYXalY6CYw2dJbQ/Xo64Ah3wfJ63BMTFQHQk1htnIDBnLd9a6ng96JgXJQMSO4ZEqRW/709NBlC157hbw==", + "version": "3.235.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.235.0.tgz", + "integrity": "sha512-50WHbJGpD3SNp9763MAlHqIhXil++JdQbKejNpHg7HsJne/ao3ub+fDOfx//mMBjpzBV25BGd5UlfL6blrClSg==", "optional": true, "dependencies": { - "@aws-sdk/protocol-http": "3.212.0", - "@aws-sdk/service-error-classification": "3.212.0", - "@aws-sdk/types": "3.212.0", - "@aws-sdk/util-middleware": "3.212.0", + "@aws-sdk/protocol-http": "3.226.0", + "@aws-sdk/service-error-classification": "3.229.0", + "@aws-sdk/types": "3.226.0", + "@aws-sdk/util-middleware": "3.226.0", + "@aws-sdk/util-retry": "3.229.0", "tslib": "^2.3.1", "uuid": "^8.3.2" }, @@ -763,16 +769,16 @@ } }, "node_modules/@aws-sdk/middleware-sdk-sts": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.212.0.tgz", - "integrity": "sha512-IcMfno3RJEXXS1Ch5lY0hgdSkGn9XW9m3XoKu1DjhEqR34ENDzvUmEN2PimIcZnz+9W59CU9UAMs/amRhwhlmw==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.226.0.tgz", + "integrity": "sha512-NN9T/qoSD1kZvAT+VLny3NnlqgylYQcsgV3rvi/8lYzw/G/2s8VS6sm/VTWGGZhx08wZRv20MWzYu3bftcyqUg==", "optional": true, "dependencies": { - "@aws-sdk/middleware-signing": "3.212.0", - "@aws-sdk/property-provider": "3.212.0", - "@aws-sdk/protocol-http": "3.212.0", - "@aws-sdk/signature-v4": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/middleware-signing": "3.226.0", + "@aws-sdk/property-provider": "3.226.0", + "@aws-sdk/protocol-http": "3.226.0", + "@aws-sdk/signature-v4": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" }, "engines": { @@ -780,12 +786,12 @@ } }, "node_modules/@aws-sdk/middleware-serde": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.212.0.tgz", - "integrity": "sha512-KwRpwi/8vNDV0l8uvu1DPk0q3WR2pnp9VtUNZ6u9zU54hvVL+Z1PtQh/WfzJzNvtCHvtc/gVMs3Daqb/Ecrm5Q==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.226.0.tgz", + "integrity": "sha512-nPuOOAkSfx9TxzdKFx0X2bDlinOxGrqD7iof926K/AEflxGD1DBdcaDdjlYlPDW2CVE8LV/rAgbYuLxh/E/1VA==", "optional": true, "dependencies": { - "@aws-sdk/types": "3.212.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" }, "engines": { @@ -793,16 +799,16 @@ } }, "node_modules/@aws-sdk/middleware-signing": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.212.0.tgz", - "integrity": "sha512-pth95aEsxqQO0lrRAHZNVI5hrMtA14nEUPFjiLaXtOssZrjD6mBzXPRy1nKob6XWXOp/Vy0mnyI/FT/NnMflFw==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.226.0.tgz", + "integrity": "sha512-E6HmtPcl+IjYDDzi1xI2HpCbBq2avNWcjvCriMZWuTAtRVpnA6XDDGW5GY85IfS3A8G8vuWqEVPr8JcYUcjfew==", "optional": true, "dependencies": { - "@aws-sdk/property-provider": "3.212.0", - "@aws-sdk/protocol-http": "3.212.0", - "@aws-sdk/signature-v4": "3.212.0", - "@aws-sdk/types": "3.212.0", - "@aws-sdk/util-middleware": "3.212.0", + "@aws-sdk/property-provider": "3.226.0", + "@aws-sdk/protocol-http": "3.226.0", + "@aws-sdk/signature-v4": "3.226.0", + "@aws-sdk/types": "3.226.0", + "@aws-sdk/util-middleware": "3.226.0", "tslib": "^2.3.1" }, "engines": { @@ -810,9 +816,9 @@ } }, "node_modules/@aws-sdk/middleware-stack": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.212.0.tgz", - "integrity": "sha512-AZ5f9ChioHsxGUojlzqI57sYyM9oW9SN/7AuiNafXU02j9jw7DKiYRn43lRUhgYnb/REhedHA5SsqIBF5eut/w==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.226.0.tgz", + "integrity": "sha512-85wF29LvPvpoed60fZGDYLwv1Zpd/cM0C22WSSFPw1SSJeqO4gtFYyCg2squfT3KI6kF43IIkOCJ+L7GtryPug==", "optional": true, "dependencies": { "tslib": "^2.3.1" @@ -822,13 +828,13 @@ } }, "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.212.0.tgz", - "integrity": "sha512-CVSY2kt+RaP6CVqSKp+1sPUAQFusTLZLFHVK0YPFzcIySJMqJC0l0/BzLhaIf5Bs3JHa/VGym8oDpp881yimHA==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.226.0.tgz", + "integrity": "sha512-N1WnfzCW1Y5yWhVAphf8OPGTe8Df3vmV7/LdsoQfmpkCZgLZeK2o0xITkUQhRj1mbw7yp8tVFLFV3R2lMurdAQ==", "optional": true, "dependencies": { - "@aws-sdk/protocol-http": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/protocol-http": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" }, "engines": { @@ -836,14 +842,14 @@ } }, "node_modules/@aws-sdk/node-config-provider": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.212.0.tgz", - "integrity": "sha512-8AfOEDPe/D9DccUgredYg07GH2jrw07FCTyA1Pug5Hgbas7w14zbhLyQB0l6gcOJEuh34e/7oV9hN3s1hctnJg==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.226.0.tgz", + "integrity": "sha512-B8lQDqiRk7X5izFEUMXmi8CZLOKCTWQJU9HQf3ako+sF0gexo4nHN3jhoRWyLtcgC5S3on/2jxpAcqtm7kuY3w==", "optional": true, "dependencies": { - "@aws-sdk/property-provider": "3.212.0", - "@aws-sdk/shared-ini-file-loader": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/property-provider": "3.226.0", + "@aws-sdk/shared-ini-file-loader": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" }, "engines": { @@ -851,15 +857,15 @@ } }, "node_modules/@aws-sdk/node-http-handler": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.212.0.tgz", - "integrity": "sha512-wt4jK8HeYMjuQbWB4+Xt/nGyTvIwtLhm0SHcRgcoTsUjEiaPio/xNanyBWhPSUM87jpyG6bQMCzUtDbPeLqhkA==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.226.0.tgz", + "integrity": "sha512-xQCddnZNMiPmjr3W7HYM+f5ir4VfxgJh37eqZwX6EZmyItFpNNeVzKUgA920ka1VPz/ZUYB+2OFGiX3LCLkkaA==", "optional": true, "dependencies": { - "@aws-sdk/abort-controller": "3.212.0", - "@aws-sdk/protocol-http": "3.212.0", - "@aws-sdk/querystring-builder": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/abort-controller": "3.226.0", + "@aws-sdk/protocol-http": "3.226.0", + "@aws-sdk/querystring-builder": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" }, "engines": { @@ -867,12 +873,12 @@ } }, "node_modules/@aws-sdk/property-provider": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.212.0.tgz", - "integrity": "sha512-NMCIABfw3VZ7Vtn6iSeZRuSToRLxIHq0eGoUgO7T4fUp3U5vqYt28A5UY65KB9ifUPpNSllEG3EhEqs5qFw5+w==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.226.0.tgz", + "integrity": "sha512-TsljjG+Sg0LmdgfiAlWohluWKnxB/k8xenjeozZfzOr5bHmNHtdbWv6BtNvD/R83hw7SFXxbJHlD5H4u9p2NFg==", "optional": true, "dependencies": { - "@aws-sdk/types": "3.212.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" }, "engines": { @@ -880,12 +886,12 @@ } }, "node_modules/@aws-sdk/protocol-http": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.212.0.tgz", - "integrity": "sha512-EhkLPQC2TeqC3RGKfW87zoKj/gsWS4JJlRl5U6KMXejBMKQPzuopUiF9gQJ2iuou9BT8B+RsG2qgSHzrxp6lKw==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.226.0.tgz", + "integrity": "sha512-zWkVqiTA9RXL6y0hhfZc9bcU4DX2NI6Hw9IhQmSPeM59mdbPjJlY4bLlMr5YxywqO3yQ/ylNoAfrEzrDjlOSRg==", "optional": true, "dependencies": { - "@aws-sdk/types": "3.212.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" }, "engines": { @@ -893,12 +899,12 @@ } }, "node_modules/@aws-sdk/querystring-builder": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.212.0.tgz", - "integrity": "sha512-4CaQstj0Aki3vc96Z0d481raNagmy9gnJtIv6yveATJ/57lk/RUv2WtTUOzpFKv/oNx5khix2tpbRqK9nCUxVg==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.226.0.tgz", + "integrity": "sha512-LVurypuNeotO4lmirKXRC4NYrZRAyMJXuwO0f2a5ZAUJCjauwYrifKue6yCfU7bls7gut7nfcR6B99WBYpHs3g==", "optional": true, "dependencies": { - "@aws-sdk/types": "3.212.0", + "@aws-sdk/types": "3.226.0", "@aws-sdk/util-uri-escape": "3.201.0", "tslib": "^2.3.1" }, @@ -907,12 +913,12 @@ } }, "node_modules/@aws-sdk/querystring-parser": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.212.0.tgz", - "integrity": "sha512-ttarfAHMOYKgFHeBdgXID9SlNS7erH4gavN3fvf5R1RliCytUnzsTTvqa7CmVBFy0Xc/2yA+/6FFDKlOsS8tRg==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.226.0.tgz", + "integrity": "sha512-FzB+VrQ47KAFxiPt2YXrKZ8AOLZQqGTLCKHzx4bjxGmwgsjV8yIbtJiJhZLMcUQV4LtGeIY9ixIqQhGvnZHE4A==", "optional": true, "dependencies": { - "@aws-sdk/types": "3.212.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" }, "engines": { @@ -920,21 +926,21 @@ } }, "node_modules/@aws-sdk/service-error-classification": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.212.0.tgz", - "integrity": "sha512-jCv+uuFq4yGjP8FoCmoOGqnKNHHREDOFf7OxVSCluGMg2LXHfGxxqkqNFJlT3p+QdEp323GSWFY+PUsMJy7BLQ==", + "version": "3.229.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.229.0.tgz", + "integrity": "sha512-dnzWWQ0/NoWMUZ5C0DW3dPm0wC1O76Y/SpKbuJzWPkx1EYy6r8p32Ly4D9vUzrKDbRGf48YHIF2kOkBmu21CLg==", "optional": true, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/shared-ini-file-loader": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.212.0.tgz", - "integrity": "sha512-wKWqCA1oU57V//D3uAjQKGGj6rm6YKH4pWIU38Ypb/xNafiB7C51KtwpQVsS2HCNfmGrD03sGLKEZCSy9jvIlA==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.226.0.tgz", + "integrity": "sha512-661VQefsARxVyyV2FX9V61V+nNgImk7aN2hYlFKla6BCwZfMng+dEtD0xVGyg1PfRw0qvEv5LQyxMVgHcUSevA==", "optional": true, "dependencies": { - "@aws-sdk/types": "3.212.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" }, "engines": { @@ -942,15 +948,15 @@ } }, "node_modules/@aws-sdk/signature-v4": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.212.0.tgz", - "integrity": "sha512-tCrzWA60AWGDRmY9OyUrG0BzD+dDbAtHSqcY2LchGHOlMmv501/WXBIvn9fDfKp8GJj6Lb3VcG9cY1jCuKKcmg==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.226.0.tgz", + "integrity": "sha512-/R5q5agdPd7HJB68XMzpxrNPk158EHUvkFkuRu5Qf3kkkHebEzWEBlWoVpUe6ss4rP9Tqcue6xPuaftEmhjpYw==", "optional": true, "dependencies": { "@aws-sdk/is-array-buffer": "3.201.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/types": "3.226.0", "@aws-sdk/util-hex-encoding": "3.201.0", - "@aws-sdk/util-middleware": "3.212.0", + "@aws-sdk/util-middleware": "3.226.0", "@aws-sdk/util-uri-escape": "3.201.0", "tslib": "^2.3.1" }, @@ -959,13 +965,13 @@ } }, "node_modules/@aws-sdk/smithy-client": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.212.0.tgz", - "integrity": "sha512-dQUlM/eltp9JVEVQWGxU/6Or8jGQWK5mgmbP+BUHkfDgoMIeOFksIYon211KhE18EjoGgav1mr4/HHlcnekI2w==", + "version": "3.234.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.234.0.tgz", + "integrity": "sha512-8AtR/k4vsFvjXeQbIzq/Wy7Nbk48Ou0wUEeVYPHWHPSU8QamFWORkOwmKtKMfHAyZvmqiAPeQqHFkq+UJhWyyQ==", "optional": true, "dependencies": { - "@aws-sdk/middleware-stack": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/middleware-stack": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" }, "engines": { @@ -973,15 +979,15 @@ } }, "node_modules/@aws-sdk/token-providers": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.212.0.tgz", - "integrity": "sha512-pTe4PM14b58nbfvIP9B0zW5dUIxEb/ALVzSLuxpJwJRI51E5QZmXJMT3P77MUd6niqKw0cRrnEHIgznD67JHSg==", + "version": "3.245.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.245.0.tgz", + "integrity": "sha512-m/spXR/vEXGb+zMqRUMQYVMwFZSTdK5RkddYqamYkNhIoLm60EYeRu57JsMMs5djKi8dBRSKiXwVHx0l2rXMjg==", "optional": true, "dependencies": { - "@aws-sdk/client-sso-oidc": "3.212.0", - "@aws-sdk/property-provider": "3.212.0", - "@aws-sdk/shared-ini-file-loader": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/client-sso-oidc": "3.245.0", + "@aws-sdk/property-provider": "3.226.0", + "@aws-sdk/shared-ini-file-loader": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" }, "engines": { @@ -989,22 +995,25 @@ } }, "node_modules/@aws-sdk/types": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.212.0.tgz", - "integrity": "sha512-uXBXB1PBYxfPyIvgmjbGdYBlS7rdeMG58uCaY3Ga5scY2xQnj7HU7knATKuIKk2DH1lLT0inqtsRVJS25zRK5w==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.226.0.tgz", + "integrity": "sha512-MmmNHrWeO4man7wpOwrAhXlevqtOV9ZLcH4RhnG5LmRce0RFOApx24HoKENfFCcOyCm5LQBlsXCqi0dZWDWU0A==", "optional": true, + "dependencies": { + "tslib": "^2.3.1" + }, "engines": { "node": ">=14.0.0" } }, "node_modules/@aws-sdk/url-parser": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.212.0.tgz", - "integrity": "sha512-mTUQQRcVYqur7aHDuDMDKxN7Yr/5kIZB1RtMjIwtimTcf7TZaskN6sLTPo42YgASM6XQQhJECZaOE7Ow16i6Mg==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.226.0.tgz", + "integrity": "sha512-p5RLE0QWyP0OcTOLmFcLdVgUcUEzmEfmdrnOxyNzomcYb0p3vUagA5zfa1HVK2azsQJFBv28GfvMnba9bGhObg==", "optional": true, "dependencies": { - "@aws-sdk/querystring-parser": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/querystring-parser": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" } }, @@ -1068,13 +1077,13 @@ } }, "node_modules/@aws-sdk/util-defaults-mode-browser": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.212.0.tgz", - "integrity": "sha512-tAs9+/lTtil545kyCqy7qjnnCq4S2S+4kBhHXgwRNPT85Nx5XCEEheWH6VZ45YufRaiRNFfX0n+odDwzDaev6g==", + "version": "3.234.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.234.0.tgz", + "integrity": "sha512-IHMKXjTbOD8XMz5+2oCOsVP94BYb9YyjXdns0aAXr2NAo7k2+RCzXQ2DebJXppGda1F6opFutoKwyVSN0cmbMw==", "optional": true, "dependencies": { - "@aws-sdk/property-provider": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/property-provider": "3.226.0", + "@aws-sdk/types": "3.226.0", "bowser": "^2.11.0", "tslib": "^2.3.1" }, @@ -1083,16 +1092,16 @@ } }, "node_modules/@aws-sdk/util-defaults-mode-node": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.212.0.tgz", - "integrity": "sha512-fNl1IDqn1mAoiM2Xv5KGAczXHy2+tPlouunIEePnQKTq0pzT3WqR13qleTfu1EcEz1oyGnDRoK91aP61Jxh3OQ==", + "version": "3.234.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.234.0.tgz", + "integrity": "sha512-UGjQ+OjBYYhxFVtUY+jtr0ZZgzZh6OHtYwRhFt8IHewJXFCfZTyfsbX20szBj5y1S4HRIUJ7cwBLIytTqMbI5w==", "optional": true, "dependencies": { - "@aws-sdk/config-resolver": "3.212.0", - "@aws-sdk/credential-provider-imds": "3.212.0", - "@aws-sdk/node-config-provider": "3.212.0", - "@aws-sdk/property-provider": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/config-resolver": "3.234.0", + "@aws-sdk/credential-provider-imds": "3.226.0", + "@aws-sdk/node-config-provider": "3.226.0", + "@aws-sdk/property-provider": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" }, "engines": { @@ -1100,12 +1109,12 @@ } }, "node_modules/@aws-sdk/util-endpoints": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.212.0.tgz", - "integrity": "sha512-/ADfvrZwhzUphre3pliO290IFOflvHyBBEaKn9WfRQ5veZxl+CuOEjxkwTJfHUrfWbh+xpCuOewWVLCptmoC4A==", + "version": "3.245.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.245.0.tgz", + "integrity": "sha512-UNOFquB1tKx+8RT8n82Zb5tIwDyZHVPBg/m0LB0RsLETjr6krien5ASpqWezsXKIR1hftN9uaxN4bvf2dZrWHg==", "optional": true, "dependencies": { - "@aws-sdk/types": "3.212.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" }, "engines": { @@ -1137,9 +1146,9 @@ } }, "node_modules/@aws-sdk/util-middleware": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.212.0.tgz", - "integrity": "sha512-621glUpwVKJRB8QxRG/5cAKIq8LKPdl/l8CS7vDg34f6j9BJmP5YVPcTzzQ6iskQAblkndiBAnSjp7kGujxuGg==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.226.0.tgz", + "integrity": "sha512-B96CQnwX4gRvQdaQkdUtqvDPkrptV5+va6FVeJOocU/DbSYMAScLxtR3peMS8cnlOT6nL1Eoa42OI9AfZz1VwQ==", "optional": true, "dependencies": { "tslib": "^2.3.1" @@ -1148,6 +1157,19 @@ "node": ">=14.0.0" } }, + "node_modules/@aws-sdk/util-retry": { + "version": "3.229.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-retry/-/util-retry-3.229.0.tgz", + "integrity": "sha512-0zKTqi0P1inD0LzIMuXRIYYQ/8c1lWMg/cfiqUcIAF1TpatlpZuN7umU0ierpBFud7S+zDgg0oemh+Nj8xliJw==", + "optional": true, + "dependencies": { + "@aws-sdk/service-error-classification": "3.229.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 14.0.0" + } + }, "node_modules/@aws-sdk/util-uri-escape": { "version": "3.201.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.201.0.tgz", @@ -1161,24 +1183,24 @@ } }, "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.212.0.tgz", - "integrity": "sha512-xXz16ge9NdKCwlD+952rfvgHdDe+pbCavbVMNdR60joHq5KYGR1e02l0LRNVe48/C9dAo2ezeJ+YnTPaw3Yl8Q==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.226.0.tgz", + "integrity": "sha512-PhBIu2h6sPJPcv2I7ELfFizdl5pNiL4LfxrasMCYXQkJvVnoXztHA1x+CQbXIdtZOIlpjC+6BjDcE0uhnpvfcA==", "optional": true, "dependencies": { - "@aws-sdk/types": "3.212.0", + "@aws-sdk/types": "3.226.0", "bowser": "^2.11.0", "tslib": "^2.3.1" } }, "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.212.0.tgz", - "integrity": "sha512-HE8VwtMtTXGkwUjryNpy+qyg7wrQxCGplDP59yo0YVn86B5f9nhRi/2jRAsKo9yf94iP7PXAz65TY9+KJC8UIg==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.226.0.tgz", + "integrity": "sha512-othPc5Dz/pkYkxH+nZPhc1Al0HndQT8zHD4e9h+EZ+8lkd8n+IsnLfTS/mSJWrfiC6UlNRVw55cItstmJyMe/A==", "optional": true, "dependencies": { - "@aws-sdk/node-config-provider": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/node-config-provider": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" }, "engines": { @@ -1440,12 +1462,12 @@ } }, "node_modules/@azure/msal-node": { - "version": "1.14.5", - "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-1.14.5.tgz", - "integrity": "sha512-NcVdMfn8Z3ogN+9RjOSF7uwf2Gki5DEJl0BdDSL83KUAgVAobtkZi5W8EqxbJLrTO/ET0jv5DregrcR5qg2pEA==", + "version": "1.14.6", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-1.14.6.tgz", + "integrity": "sha512-em/qqFL5tLMxMPl9vormAs13OgZpmQoJbiQ/GlWr+BA77eCLoL+Ehr5xRHowYo+LFe5b+p+PJVkRvT+mLvOkwA==", "dependencies": { - "@azure/msal-common": "^9.0.1", - "jsonwebtoken": "^8.5.1", + "@azure/msal-common": "^9.0.2", + "jsonwebtoken": "^9.0.0", "uuid": "^8.3.0" }, "engines": { @@ -1453,42 +1475,13 @@ } }, "node_modules/@azure/msal-node/node_modules/@azure/msal-common": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-9.0.1.tgz", - "integrity": "sha512-eNNHIW/cwPTZDWs9KtYgb1X6gtQ+cC+FGX2YN+t4AUVsBdUbqlMTnUs6/c/VBxC2AAGIhgLREuNnO3F66AN2zQ==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-9.0.2.tgz", + "integrity": "sha512-qzwxuF8kZAp+rNUactMCgJh8fblq9D4lSqrrIxMDzLjgSZtjN32ix7r/HBe8QdOr76II9SVVPcMkX4sPzPfQ7w==", "engines": { "node": ">=0.8.0" } }, - "node_modules/@azure/msal-node/node_modules/jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", - "dependencies": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=4", - "npm": ">=1.4.28" - } - }, - "node_modules/@azure/msal-node/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, "node_modules/@babel/code-frame": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", @@ -4208,9 +4201,9 @@ "integrity": "sha512-oTFmkyv5MhgkHdZhoe5lwRoKW0t4njPvK3g7ODvK/prkoC5bwylKcyQJMsmjvgHBXoy4u5iLnB5yQ7AljouHAA==" }, "node_modules/@louislam/ping": { - "version": "0.4.2-mod.0", - "resolved": "https://registry.npmjs.org/@louislam/ping/-/ping-0.4.2-mod.0.tgz", - "integrity": "sha512-cyHnJHsMkC+sFU32GBzX5SlwdTb+BIBlwsdwsDm+AS9jcS1sz7JPBrdCStqpNkVn5lUUQZ7Ak5DRwlWuwJOYAg==", + "version": "0.4.2-mod.1", + "resolved": "https://registry.npmjs.org/@louislam/ping/-/ping-0.4.2-mod.1.tgz", + "integrity": "sha512-KkRDo8qcF9kzzR0Hh8Iqz+XNnzKOdobUquP7UyBYrjxAB1jNT3qO0gvAZeDUknF28LXBPSzkiVlf1NG+tb/iyQ==", "dependencies": { "command-exists": "~1.2.9", "q": "1.x", @@ -6121,9 +6114,9 @@ } }, "node_modules/bson": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.0.tgz", - "integrity": "sha512-VrlEE4vuiO1WTpfof4VmaVolCVYkYTgB9iWgYNOrVlnifpME/06fhFRmONgBhClD5pFC1t9ZWqFUQEQAzY43bA==", + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.2.tgz", + "integrity": "sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==", "dependencies": { "buffer": "^5.6.0" }, @@ -6599,8 +6592,7 @@ "node_modules/colorette": { "version": "2.0.19", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", - "dev": true + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" }, "node_modules/combine-errors": { "version": "3.0.3", @@ -9518,7 +9510,6 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, "engines": { "node": ">=8.0.0" } @@ -9566,9 +9557,9 @@ } }, "node_modules/getopts": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/getopts/-/getopts-2.2.5.tgz", - "integrity": "sha512-9jb7AW5p3in+IiJWhQiZmmwkpLaR/ccTWdWQCtZM66HJcHHLegowh4q4tSD7gouUyeNvFWRavfK9GXosQHDpFA==" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/getopts/-/getopts-2.3.0.tgz", + "integrity": "sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==" }, "node_modules/getos": { "version": "3.2.1", @@ -12837,31 +12828,35 @@ } }, "node_modules/knex": { - "version": "0.95.15", - "resolved": "https://registry.npmjs.org/knex/-/knex-0.95.15.tgz", - "integrity": "sha512-Loq6WgHaWlmL2bfZGWPsy4l8xw4pOE+tmLGkPG0auBppxpI0UcK+GYCycJcqz9W54f2LiGewkCVLBm3Wq4ur/w==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/knex/-/knex-2.4.0.tgz", + "integrity": "sha512-i0GWwqYp1Hs2yvc2rlDO6nzzkLhwdyOZKRdsMTB8ZxOs2IXQyL5rBjSbS1krowCh6V65T4X9CJaKtuIfkaPGSA==", "dependencies": { - "colorette": "2.0.16", - "commander": "^7.1.0", - "debug": "4.3.2", + "colorette": "2.0.19", + "commander": "^9.1.0", + "debug": "4.3.4", "escalade": "^3.1.1", "esm": "^3.2.25", - "getopts": "2.2.5", + "get-package-type": "^0.1.0", + "getopts": "2.3.0", "interpret": "^2.2.0", "lodash": "^4.17.21", "pg-connection-string": "2.5.0", - "rechoir": "0.7.0", + "rechoir": "^0.8.0", "resolve-from": "^5.0.0", - "tarn": "^3.0.1", + "tarn": "^3.0.2", "tildify": "2.0.0" }, "bin": { "knex": "bin/cli.js" }, "engines": { - "node": ">=10" + "node": ">=12" }, "peerDependenciesMeta": { + "better-sqlite3": { + "optional": true + }, "mysql": { "optional": true }, @@ -12882,40 +12877,14 @@ } } }, - "node_modules/knex/node_modules/colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==" - }, "node_modules/knex/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", "engines": { - "node": ">= 10" + "node": "^12.20.0 || >=14" } }, - "node_modules/knex/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/knex/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, "node_modules/knex/node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -13080,36 +13049,6 @@ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" }, - "node_modules/lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" - }, - "node_modules/lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" - }, - "node_modules/lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" - }, - "node_modules/lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" - }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" - }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -13119,7 +13058,8 @@ "node_modules/lodash.once": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "dev": true }, "node_modules/lodash.truncate": { "version": "4.4.2", @@ -13628,9 +13568,9 @@ } }, "node_modules/mongodb-connection-string-url": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.5.4.tgz", - "integrity": "sha512-SeAxuWs0ez3iI3vvmLk/j2y+zHwigTDKQhtdxTgt5ZCOQQS5+HW4g45/Xw5vzzbn7oQXCNQ24Z40AkJsizEy7w==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz", + "integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==", "dependencies": { "@types/whatwg-url": "^8.2.1", "whatwg-url": "^11.0.0" @@ -15472,26 +15412,26 @@ } }, "node_modules/rechoir": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz", - "integrity": "sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", "dependencies": { - "resolve": "^1.9.0" + "resolve": "^1.20.0" }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/redbean-node": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/redbean-node/-/redbean-node-0.1.4.tgz", - "integrity": "sha512-c1U6wnTeWS0c44tn9hkJWzjGgckLNJ8sN1E2bxnnnQsULOfvEVFLf8dLMjqhyyMrZ1L1mp8UvV4OfhRtH/ZrgQ==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/redbean-node/-/redbean-node-0.2.0.tgz", + "integrity": "sha512-bHbNgVpkLOn7i/kvfvGDVGzfDgvf20qVRm4EvQV9tD2V2nhcegYUITzAF3XSL2XVirrb5vmWy85vxM44faBnYw==", "dependencies": { "@types/node": "^14.18.12", "await-lock": "^2.1.0", "dayjs": "^1.11.0", "glob": "^7.2.0", - "knex": "^0.95.15", + "knex": "^2.4.0", "lodash": "^4.17.21" } }, @@ -18652,176 +18592,180 @@ } }, "@aws-sdk/abort-controller": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.212.0.tgz", - "integrity": "sha512-mXeBSuDi0Fpul4zk9VH2z0VKN+/+6hyJ9SXSRhn3LpMcyj3GeZtXyTB2wCsfxXYGxeGbV+bIzbPbhZza6wNfWg==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.226.0.tgz", + "integrity": "sha512-cJVzr1xxPBd08voknXvR0RLgtZKGKt6WyDpH/BaPCu3rfSqWCDZKzwqe940eqosjmKrxC6pUZNKASIqHOQ8xxQ==", "optional": true, "requires": { - "@aws-sdk/types": "3.212.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" } }, "@aws-sdk/client-cognito-identity": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.212.0.tgz", - "integrity": "sha512-0yt6lyYUYng5Nnn5EyTnoVZuVXD3r6eaDjrIZQTc8yhNkbTg+eRLlGnJVkrn/O9NPRS52XqxLCbJc/Wk2SSH+w==", + "version": "3.245.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.245.0.tgz", + "integrity": "sha512-c5briTS05rAioO5b84bVng9M1KyAXcxJtDHeuoeAAZBuU+Dd0Scg3vyXyAFlGI+TsNyxqHAqqRdAoG4WNxJo/Q==", "optional": true, "requires": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/client-sts": "3.212.0", - "@aws-sdk/config-resolver": "3.212.0", - "@aws-sdk/credential-provider-node": "3.212.0", - "@aws-sdk/fetch-http-handler": "3.212.0", - "@aws-sdk/hash-node": "3.212.0", - "@aws-sdk/invalid-dependency": "3.212.0", - "@aws-sdk/middleware-content-length": "3.212.0", - "@aws-sdk/middleware-endpoint": "3.212.0", - "@aws-sdk/middleware-host-header": "3.212.0", - "@aws-sdk/middleware-logger": "3.212.0", - "@aws-sdk/middleware-recursion-detection": "3.212.0", - "@aws-sdk/middleware-retry": "3.212.0", - "@aws-sdk/middleware-serde": "3.212.0", - "@aws-sdk/middleware-signing": "3.212.0", - "@aws-sdk/middleware-stack": "3.212.0", - "@aws-sdk/middleware-user-agent": "3.212.0", - "@aws-sdk/node-config-provider": "3.212.0", - "@aws-sdk/node-http-handler": "3.212.0", - "@aws-sdk/protocol-http": "3.212.0", - "@aws-sdk/smithy-client": "3.212.0", - "@aws-sdk/types": "3.212.0", - "@aws-sdk/url-parser": "3.212.0", + "@aws-sdk/client-sts": "3.245.0", + "@aws-sdk/config-resolver": "3.234.0", + "@aws-sdk/credential-provider-node": "3.245.0", + "@aws-sdk/fetch-http-handler": "3.226.0", + "@aws-sdk/hash-node": "3.226.0", + "@aws-sdk/invalid-dependency": "3.226.0", + "@aws-sdk/middleware-content-length": "3.226.0", + "@aws-sdk/middleware-endpoint": "3.226.0", + "@aws-sdk/middleware-host-header": "3.226.0", + "@aws-sdk/middleware-logger": "3.226.0", + "@aws-sdk/middleware-recursion-detection": "3.226.0", + "@aws-sdk/middleware-retry": "3.235.0", + "@aws-sdk/middleware-serde": "3.226.0", + "@aws-sdk/middleware-signing": "3.226.0", + "@aws-sdk/middleware-stack": "3.226.0", + "@aws-sdk/middleware-user-agent": "3.226.0", + "@aws-sdk/node-config-provider": "3.226.0", + "@aws-sdk/node-http-handler": "3.226.0", + "@aws-sdk/protocol-http": "3.226.0", + "@aws-sdk/smithy-client": "3.234.0", + "@aws-sdk/types": "3.226.0", + "@aws-sdk/url-parser": "3.226.0", "@aws-sdk/util-base64": "3.208.0", "@aws-sdk/util-body-length-browser": "3.188.0", "@aws-sdk/util-body-length-node": "3.208.0", - "@aws-sdk/util-defaults-mode-browser": "3.212.0", - "@aws-sdk/util-defaults-mode-node": "3.212.0", - "@aws-sdk/util-endpoints": "3.212.0", - "@aws-sdk/util-user-agent-browser": "3.212.0", - "@aws-sdk/util-user-agent-node": "3.212.0", + "@aws-sdk/util-defaults-mode-browser": "3.234.0", + "@aws-sdk/util-defaults-mode-node": "3.234.0", + "@aws-sdk/util-endpoints": "3.245.0", + "@aws-sdk/util-retry": "3.229.0", + "@aws-sdk/util-user-agent-browser": "3.226.0", + "@aws-sdk/util-user-agent-node": "3.226.0", "@aws-sdk/util-utf8-browser": "3.188.0", "@aws-sdk/util-utf8-node": "3.208.0", "tslib": "^2.3.1" } }, "@aws-sdk/client-sso": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.212.0.tgz", - "integrity": "sha512-b9lFI8Uz6YxIzAlS2uq62y5fX097lwcdkiq2N8YN2U7YgHQaKMIFnV8ZqkDdhZi2eUKwhSdUZzQy0tF6en2Ubg==", + "version": "3.245.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.245.0.tgz", + "integrity": "sha512-dxzRwRo55ZNQ4hQigC+cishxLSWlBrbr3iszG0FLviavLDOlnVG5UUxWpOIGvwr8pYiSfM4jnfMxiwYwiCLg1g==", "optional": true, "requires": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.212.0", - "@aws-sdk/fetch-http-handler": "3.212.0", - "@aws-sdk/hash-node": "3.212.0", - "@aws-sdk/invalid-dependency": "3.212.0", - "@aws-sdk/middleware-content-length": "3.212.0", - "@aws-sdk/middleware-endpoint": "3.212.0", - "@aws-sdk/middleware-host-header": "3.212.0", - "@aws-sdk/middleware-logger": "3.212.0", - "@aws-sdk/middleware-recursion-detection": "3.212.0", - "@aws-sdk/middleware-retry": "3.212.0", - "@aws-sdk/middleware-serde": "3.212.0", - "@aws-sdk/middleware-stack": "3.212.0", - "@aws-sdk/middleware-user-agent": "3.212.0", - "@aws-sdk/node-config-provider": "3.212.0", - "@aws-sdk/node-http-handler": "3.212.0", - "@aws-sdk/protocol-http": "3.212.0", - "@aws-sdk/smithy-client": "3.212.0", - "@aws-sdk/types": "3.212.0", - "@aws-sdk/url-parser": "3.212.0", + "@aws-sdk/config-resolver": "3.234.0", + "@aws-sdk/fetch-http-handler": "3.226.0", + "@aws-sdk/hash-node": "3.226.0", + "@aws-sdk/invalid-dependency": "3.226.0", + "@aws-sdk/middleware-content-length": "3.226.0", + "@aws-sdk/middleware-endpoint": "3.226.0", + "@aws-sdk/middleware-host-header": "3.226.0", + "@aws-sdk/middleware-logger": "3.226.0", + "@aws-sdk/middleware-recursion-detection": "3.226.0", + "@aws-sdk/middleware-retry": "3.235.0", + "@aws-sdk/middleware-serde": "3.226.0", + "@aws-sdk/middleware-stack": "3.226.0", + "@aws-sdk/middleware-user-agent": "3.226.0", + "@aws-sdk/node-config-provider": "3.226.0", + "@aws-sdk/node-http-handler": "3.226.0", + "@aws-sdk/protocol-http": "3.226.0", + "@aws-sdk/smithy-client": "3.234.0", + "@aws-sdk/types": "3.226.0", + "@aws-sdk/url-parser": "3.226.0", "@aws-sdk/util-base64": "3.208.0", "@aws-sdk/util-body-length-browser": "3.188.0", "@aws-sdk/util-body-length-node": "3.208.0", - "@aws-sdk/util-defaults-mode-browser": "3.212.0", - "@aws-sdk/util-defaults-mode-node": "3.212.0", - "@aws-sdk/util-endpoints": "3.212.0", - "@aws-sdk/util-user-agent-browser": "3.212.0", - "@aws-sdk/util-user-agent-node": "3.212.0", + "@aws-sdk/util-defaults-mode-browser": "3.234.0", + "@aws-sdk/util-defaults-mode-node": "3.234.0", + "@aws-sdk/util-endpoints": "3.245.0", + "@aws-sdk/util-retry": "3.229.0", + "@aws-sdk/util-user-agent-browser": "3.226.0", + "@aws-sdk/util-user-agent-node": "3.226.0", "@aws-sdk/util-utf8-browser": "3.188.0", "@aws-sdk/util-utf8-node": "3.208.0", "tslib": "^2.3.1" } }, "@aws-sdk/client-sso-oidc": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.212.0.tgz", - "integrity": "sha512-Co0AU+y9KEAZUraT36ttFZlmwARsr82q2nQji5E8zg3zlUHtqGvMJqxArudz3iOb2E9WRi75MwAQmLO2xEk45A==", + "version": "3.245.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.245.0.tgz", + "integrity": "sha512-0pGPA00kEsu2Yq1Ul+OwftHxws5YVllm4iZrPtGnqmXr7wmf6B9lOtrMQF44y7Tfw53po6+bKz08OKTEWkkjUA==", "optional": true, "requires": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.212.0", - "@aws-sdk/fetch-http-handler": "3.212.0", - "@aws-sdk/hash-node": "3.212.0", - "@aws-sdk/invalid-dependency": "3.212.0", - "@aws-sdk/middleware-content-length": "3.212.0", - "@aws-sdk/middleware-endpoint": "3.212.0", - "@aws-sdk/middleware-host-header": "3.212.0", - "@aws-sdk/middleware-logger": "3.212.0", - "@aws-sdk/middleware-recursion-detection": "3.212.0", - "@aws-sdk/middleware-retry": "3.212.0", - "@aws-sdk/middleware-serde": "3.212.0", - "@aws-sdk/middleware-stack": "3.212.0", - "@aws-sdk/middleware-user-agent": "3.212.0", - "@aws-sdk/node-config-provider": "3.212.0", - "@aws-sdk/node-http-handler": "3.212.0", - "@aws-sdk/protocol-http": "3.212.0", - "@aws-sdk/smithy-client": "3.212.0", - "@aws-sdk/types": "3.212.0", - "@aws-sdk/url-parser": "3.212.0", + "@aws-sdk/config-resolver": "3.234.0", + "@aws-sdk/fetch-http-handler": "3.226.0", + "@aws-sdk/hash-node": "3.226.0", + "@aws-sdk/invalid-dependency": "3.226.0", + "@aws-sdk/middleware-content-length": "3.226.0", + "@aws-sdk/middleware-endpoint": "3.226.0", + "@aws-sdk/middleware-host-header": "3.226.0", + "@aws-sdk/middleware-logger": "3.226.0", + "@aws-sdk/middleware-recursion-detection": "3.226.0", + "@aws-sdk/middleware-retry": "3.235.0", + "@aws-sdk/middleware-serde": "3.226.0", + "@aws-sdk/middleware-stack": "3.226.0", + "@aws-sdk/middleware-user-agent": "3.226.0", + "@aws-sdk/node-config-provider": "3.226.0", + "@aws-sdk/node-http-handler": "3.226.0", + "@aws-sdk/protocol-http": "3.226.0", + "@aws-sdk/smithy-client": "3.234.0", + "@aws-sdk/types": "3.226.0", + "@aws-sdk/url-parser": "3.226.0", "@aws-sdk/util-base64": "3.208.0", "@aws-sdk/util-body-length-browser": "3.188.0", "@aws-sdk/util-body-length-node": "3.208.0", - "@aws-sdk/util-defaults-mode-browser": "3.212.0", - "@aws-sdk/util-defaults-mode-node": "3.212.0", - "@aws-sdk/util-endpoints": "3.212.0", - "@aws-sdk/util-user-agent-browser": "3.212.0", - "@aws-sdk/util-user-agent-node": "3.212.0", + "@aws-sdk/util-defaults-mode-browser": "3.234.0", + "@aws-sdk/util-defaults-mode-node": "3.234.0", + "@aws-sdk/util-endpoints": "3.245.0", + "@aws-sdk/util-retry": "3.229.0", + "@aws-sdk/util-user-agent-browser": "3.226.0", + "@aws-sdk/util-user-agent-node": "3.226.0", "@aws-sdk/util-utf8-browser": "3.188.0", "@aws-sdk/util-utf8-node": "3.208.0", "tslib": "^2.3.1" } }, "@aws-sdk/client-sts": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.212.0.tgz", - "integrity": "sha512-Zl8665HT1Do/yfiFEtqEjLkHSkAo5Isg2QU65Kbknj2W2DFj92a1cRvMlHanDLxlpuoryGP9/u1efYZeWeIdlg==", + "version": "3.245.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.245.0.tgz", + "integrity": "sha512-E+7v2sy34TLni/Dmz6bTU20NWvbHYH9sVUHKQ9kHhmFopUWrs4Nt77f85PbuiKJz/irjUh9ppT5q1odJNRKRVQ==", "optional": true, "requires": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.212.0", - "@aws-sdk/credential-provider-node": "3.212.0", - "@aws-sdk/fetch-http-handler": "3.212.0", - "@aws-sdk/hash-node": "3.212.0", - "@aws-sdk/invalid-dependency": "3.212.0", - "@aws-sdk/middleware-content-length": "3.212.0", - "@aws-sdk/middleware-endpoint": "3.212.0", - "@aws-sdk/middleware-host-header": "3.212.0", - "@aws-sdk/middleware-logger": "3.212.0", - "@aws-sdk/middleware-recursion-detection": "3.212.0", - "@aws-sdk/middleware-retry": "3.212.0", - "@aws-sdk/middleware-sdk-sts": "3.212.0", - "@aws-sdk/middleware-serde": "3.212.0", - "@aws-sdk/middleware-signing": "3.212.0", - "@aws-sdk/middleware-stack": "3.212.0", - "@aws-sdk/middleware-user-agent": "3.212.0", - "@aws-sdk/node-config-provider": "3.212.0", - "@aws-sdk/node-http-handler": "3.212.0", - "@aws-sdk/protocol-http": "3.212.0", - "@aws-sdk/smithy-client": "3.212.0", - "@aws-sdk/types": "3.212.0", - "@aws-sdk/url-parser": "3.212.0", + "@aws-sdk/config-resolver": "3.234.0", + "@aws-sdk/credential-provider-node": "3.245.0", + "@aws-sdk/fetch-http-handler": "3.226.0", + "@aws-sdk/hash-node": "3.226.0", + "@aws-sdk/invalid-dependency": "3.226.0", + "@aws-sdk/middleware-content-length": "3.226.0", + "@aws-sdk/middleware-endpoint": "3.226.0", + "@aws-sdk/middleware-host-header": "3.226.0", + "@aws-sdk/middleware-logger": "3.226.0", + "@aws-sdk/middleware-recursion-detection": "3.226.0", + "@aws-sdk/middleware-retry": "3.235.0", + "@aws-sdk/middleware-sdk-sts": "3.226.0", + "@aws-sdk/middleware-serde": "3.226.0", + "@aws-sdk/middleware-signing": "3.226.0", + "@aws-sdk/middleware-stack": "3.226.0", + "@aws-sdk/middleware-user-agent": "3.226.0", + "@aws-sdk/node-config-provider": "3.226.0", + "@aws-sdk/node-http-handler": "3.226.0", + "@aws-sdk/protocol-http": "3.226.0", + "@aws-sdk/smithy-client": "3.234.0", + "@aws-sdk/types": "3.226.0", + "@aws-sdk/url-parser": "3.226.0", "@aws-sdk/util-base64": "3.208.0", "@aws-sdk/util-body-length-browser": "3.188.0", "@aws-sdk/util-body-length-node": "3.208.0", - "@aws-sdk/util-defaults-mode-browser": "3.212.0", - "@aws-sdk/util-defaults-mode-node": "3.212.0", - "@aws-sdk/util-endpoints": "3.212.0", - "@aws-sdk/util-user-agent-browser": "3.212.0", - "@aws-sdk/util-user-agent-node": "3.212.0", + "@aws-sdk/util-defaults-mode-browser": "3.234.0", + "@aws-sdk/util-defaults-mode-node": "3.234.0", + "@aws-sdk/util-endpoints": "3.245.0", + "@aws-sdk/util-retry": "3.229.0", + "@aws-sdk/util-user-agent-browser": "3.226.0", + "@aws-sdk/util-user-agent-node": "3.226.0", "@aws-sdk/util-utf8-browser": "3.188.0", "@aws-sdk/util-utf8-node": "3.208.0", "fast-xml-parser": "4.0.11", @@ -18829,179 +18773,180 @@ } }, "@aws-sdk/config-resolver": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.212.0.tgz", - "integrity": "sha512-hIP/Izpv6GCsDTnHCd/X9Ro7Mw5le+gr2VbkZHWR0c8+3xZWp8N5S0QnUBogF3Dv2KwPbmHP+bs/vqqo3miUjQ==", + "version": "3.234.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.234.0.tgz", + "integrity": "sha512-uZxy4wzllfvgCQxVc+Iqhde0NGAnfmV2hWR6ejadJaAFTuYNvQiRg9IqJy3pkyDPqXySiJ8Bom5PoJfgn55J/A==", "optional": true, "requires": { - "@aws-sdk/signature-v4": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/signature-v4": "3.226.0", + "@aws-sdk/types": "3.226.0", "@aws-sdk/util-config-provider": "3.208.0", - "@aws-sdk/util-middleware": "3.212.0", + "@aws-sdk/util-middleware": "3.226.0", "tslib": "^2.3.1" } }, "@aws-sdk/credential-provider-cognito-identity": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.212.0.tgz", - "integrity": "sha512-0BEML2iBGXyFnD1HNQ28B+9Ev7NGcu9itYcJue5mBkCOka3mW55xAPYwp3es0rhQ1oeBziqCjHIIRsp7wGIvsQ==", + "version": "3.245.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.245.0.tgz", + "integrity": "sha512-DkiPv7Yb9iw3yAzvWUAkXrI23F1+kV8grdXzlSzob5suqv/dVON5pFXK9Siz62WwWsa2FeCEpgEF7RA0mrWLtA==", "optional": true, "requires": { - "@aws-sdk/client-cognito-identity": "3.212.0", - "@aws-sdk/property-provider": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/client-cognito-identity": "3.245.0", + "@aws-sdk/property-provider": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" } }, "@aws-sdk/credential-provider-env": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.212.0.tgz", - "integrity": "sha512-HNYoqetLqTxwl0Grl4ez8Dx3I3hJfskxH2PTHYI1/iAqrY/gSB2oBOusvBeksbYrScnQM2IGqEcMJ4lzGLOH+w==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.226.0.tgz", + "integrity": "sha512-sd8uK1ojbXxaZXlthzw/VXZwCPUtU3PjObOfr3Evj7MPIM2IH8h29foOlggx939MdLQGboJf9gKvLlvKDWtJRA==", "optional": true, "requires": { - "@aws-sdk/property-provider": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/property-provider": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" } }, "@aws-sdk/credential-provider-imds": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.212.0.tgz", - "integrity": "sha512-Bg7cX2N5pJ//ft3Y8HWtpDSEMMgRTNMaNlIvTlDbAKYp7HBZRWSf9ZJnz2slT7qbyaJyRP5pSJC4XRm83g4leA==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.226.0.tgz", + "integrity": "sha512-//z/COQm2AjYFI1Lb0wKHTQSrvLFTyuKLFQGPJsKS7DPoxGOCKB7hmYerlbl01IDoCxTdyL//TyyPxbZEOQD5Q==", "optional": true, "requires": { - "@aws-sdk/node-config-provider": "3.212.0", - "@aws-sdk/property-provider": "3.212.0", - "@aws-sdk/types": "3.212.0", - "@aws-sdk/url-parser": "3.212.0", + "@aws-sdk/node-config-provider": "3.226.0", + "@aws-sdk/property-provider": "3.226.0", + "@aws-sdk/types": "3.226.0", + "@aws-sdk/url-parser": "3.226.0", "tslib": "^2.3.1" } }, "@aws-sdk/credential-provider-ini": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.212.0.tgz", - "integrity": "sha512-H7qRIP8qV7tRrCSJx2p5oQVMJASQWZUmi4l699hDMejmCO/m4pUMQFmWn2FXtZv8gTfzlkmp3wMixD5jnfL7pw==", + "version": "3.245.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.245.0.tgz", + "integrity": "sha512-1SjfVc5Wg0lLRUvwMrfjGgFkl+zfxn74gnkPr6by1QyMAoTzmeUkalPLAIqd+uHtFom9e3K633BQtX7zVPZ5XQ==", "optional": true, "requires": { - "@aws-sdk/credential-provider-env": "3.212.0", - "@aws-sdk/credential-provider-imds": "3.212.0", - "@aws-sdk/credential-provider-sso": "3.212.0", - "@aws-sdk/credential-provider-web-identity": "3.212.0", - "@aws-sdk/property-provider": "3.212.0", - "@aws-sdk/shared-ini-file-loader": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/credential-provider-env": "3.226.0", + "@aws-sdk/credential-provider-imds": "3.226.0", + "@aws-sdk/credential-provider-process": "3.226.0", + "@aws-sdk/credential-provider-sso": "3.245.0", + "@aws-sdk/credential-provider-web-identity": "3.226.0", + "@aws-sdk/property-provider": "3.226.0", + "@aws-sdk/shared-ini-file-loader": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" } }, "@aws-sdk/credential-provider-node": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.212.0.tgz", - "integrity": "sha512-T44hoU3GCYHS+4GDVs7S/v2bBHmmYpnPayQsYXhDElQKXP0cFzQ78F8et4IU5lM94hwK+ISRQPrKaq4p77evkw==", + "version": "3.245.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.245.0.tgz", + "integrity": "sha512-Dwv8zmRLTDLeEkGrK/sLNFZSC+ahXZxr07CuID054QKACIdUEvkqYlnalRiTeXngiHGQ54u8wU7f0D32R2oL0g==", "optional": true, "requires": { - "@aws-sdk/credential-provider-env": "3.212.0", - "@aws-sdk/credential-provider-imds": "3.212.0", - "@aws-sdk/credential-provider-ini": "3.212.0", - "@aws-sdk/credential-provider-process": "3.212.0", - "@aws-sdk/credential-provider-sso": "3.212.0", - "@aws-sdk/credential-provider-web-identity": "3.212.0", - "@aws-sdk/property-provider": "3.212.0", - "@aws-sdk/shared-ini-file-loader": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/credential-provider-env": "3.226.0", + "@aws-sdk/credential-provider-imds": "3.226.0", + "@aws-sdk/credential-provider-ini": "3.245.0", + "@aws-sdk/credential-provider-process": "3.226.0", + "@aws-sdk/credential-provider-sso": "3.245.0", + "@aws-sdk/credential-provider-web-identity": "3.226.0", + "@aws-sdk/property-provider": "3.226.0", + "@aws-sdk/shared-ini-file-loader": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" } }, "@aws-sdk/credential-provider-process": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.212.0.tgz", - "integrity": "sha512-bGaVKSm5Tf5VZtlM2V6k+M9nSKzlb14ldCcH0PGGMaK/dqnEJDVSxXPu3fWyomaxbLt7Is3AUMh6L2bq3kuXyA==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.226.0.tgz", + "integrity": "sha512-iUDMdnrTvbvaCFhWwqyXrhvQ9+ojPqPqXhwZtY1X/Qaz+73S9gXBPJHZaZb2Ke0yKE1Ql3bJbKvmmxC/qLQMng==", "optional": true, "requires": { - "@aws-sdk/property-provider": "3.212.0", - "@aws-sdk/shared-ini-file-loader": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/property-provider": "3.226.0", + "@aws-sdk/shared-ini-file-loader": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" } }, "@aws-sdk/credential-provider-sso": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.212.0.tgz", - "integrity": "sha512-OGatVUnWLp7PePs2H2RyYmTrwurl0tAfW+LWfVAPgYyvi2RQgTmSK5LJ3pXKxz3TvaSHkCvsT0NWNqdWY+iKWQ==", + "version": "3.245.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.245.0.tgz", + "integrity": "sha512-txWrJc0WNBhXMi7q+twjx7cs/qzgTfbQ+vbag5idRmdoUeiR8rfLvihCab2NaGg50xhh+TaoUCXrgJp3E/XjYQ==", "optional": true, "requires": { - "@aws-sdk/client-sso": "3.212.0", - "@aws-sdk/property-provider": "3.212.0", - "@aws-sdk/shared-ini-file-loader": "3.212.0", - "@aws-sdk/token-providers": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/client-sso": "3.245.0", + "@aws-sdk/property-provider": "3.226.0", + "@aws-sdk/shared-ini-file-loader": "3.226.0", + "@aws-sdk/token-providers": "3.245.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" } }, "@aws-sdk/credential-provider-web-identity": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.212.0.tgz", - "integrity": "sha512-zPF3KiVT14aeu4cRyEUelAJEAzFp++9ULLigQXhKBbFYaiOZMAHKRASO/WUK1ixYBC+ax4G1rbihLfQimXMtVA==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.226.0.tgz", + "integrity": "sha512-CCpv847rLB0SFOHz2igvUMFAzeT2fD3YnY4C8jltuJoEkn0ITn1Hlgt13nTJ5BUuvyti2mvyXZHmNzhMIMrIlw==", "optional": true, "requires": { - "@aws-sdk/property-provider": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/property-provider": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" } }, "@aws-sdk/credential-providers": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.212.0.tgz", - "integrity": "sha512-ea1KFqSpGsXcAD5IdDxKsWimLQ2/HiKQnlJUpXyDEP1Sk3if/Gtnn17Hk6GgXByaqppDqful9Lu9esxc3mNDkg==", + "version": "3.245.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.245.0.tgz", + "integrity": "sha512-6Uhsxk6MOuWplejhPJf7XDhegHmcZfj8hwnF4mXFJ6u4b2RxWPQCnqPcA0+VoAzIMUqbjqvkSzmVjQelGFtjNg==", "optional": true, "requires": { - "@aws-sdk/client-cognito-identity": "3.212.0", - "@aws-sdk/client-sso": "3.212.0", - "@aws-sdk/client-sts": "3.212.0", - "@aws-sdk/credential-provider-cognito-identity": "3.212.0", - "@aws-sdk/credential-provider-env": "3.212.0", - "@aws-sdk/credential-provider-imds": "3.212.0", - "@aws-sdk/credential-provider-ini": "3.212.0", - "@aws-sdk/credential-provider-node": "3.212.0", - "@aws-sdk/credential-provider-process": "3.212.0", - "@aws-sdk/credential-provider-sso": "3.212.0", - "@aws-sdk/credential-provider-web-identity": "3.212.0", - "@aws-sdk/property-provider": "3.212.0", - "@aws-sdk/shared-ini-file-loader": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/client-cognito-identity": "3.245.0", + "@aws-sdk/client-sso": "3.245.0", + "@aws-sdk/client-sts": "3.245.0", + "@aws-sdk/credential-provider-cognito-identity": "3.245.0", + "@aws-sdk/credential-provider-env": "3.226.0", + "@aws-sdk/credential-provider-imds": "3.226.0", + "@aws-sdk/credential-provider-ini": "3.245.0", + "@aws-sdk/credential-provider-node": "3.245.0", + "@aws-sdk/credential-provider-process": "3.226.0", + "@aws-sdk/credential-provider-sso": "3.245.0", + "@aws-sdk/credential-provider-web-identity": "3.226.0", + "@aws-sdk/property-provider": "3.226.0", + "@aws-sdk/shared-ini-file-loader": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" } }, "@aws-sdk/fetch-http-handler": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.212.0.tgz", - "integrity": "sha512-u7ehnpAVN8D0asWhyQitNVf1j5LdzCuxP/14Dx8+PvrUdZxQNVq2FVB+tkQvOs9pDHE/oROjVo7GNO42bmkitA==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.226.0.tgz", + "integrity": "sha512-JewZPMNEBXfi1xVnRa7pVtK/zgZD8/lQ/YnD8pq79WuMa2cwyhDtr8oqCoqsPW+WJT5ScXoMtuHxN78l8eKWgg==", "optional": true, "requires": { - "@aws-sdk/protocol-http": "3.212.0", - "@aws-sdk/querystring-builder": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/protocol-http": "3.226.0", + "@aws-sdk/querystring-builder": "3.226.0", + "@aws-sdk/types": "3.226.0", "@aws-sdk/util-base64": "3.208.0", "tslib": "^2.3.1" } }, "@aws-sdk/hash-node": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.212.0.tgz", - "integrity": "sha512-pwZkz83EvXHGURBYjBYS7Cr+gSr6pi23RDlP/aXREjJGs9QUQyixBh78oX5a3p6bB8JeizPcZS1dXKJ9OKCHAw==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.226.0.tgz", + "integrity": "sha512-MdlJhJ9/Espwd0+gUXdZRsHuostB2WxEVAszWxobP0FTT9PnicqnfK7ExmW+DUAc0ywxtEbR3e0UND65rlSTVw==", "optional": true, "requires": { - "@aws-sdk/types": "3.212.0", + "@aws-sdk/types": "3.226.0", "@aws-sdk/util-buffer-from": "3.208.0", "tslib": "^2.3.1" } }, "@aws-sdk/invalid-dependency": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.212.0.tgz", - "integrity": "sha512-zKVx+4Silmsr5Nvv9aGL5FmuHvdP9Dcvy/22fmWa3RRvCSNRpvFDeXtcDB5FvNpbWbO+qJyGj/OeqB/XejV13w==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.226.0.tgz", + "integrity": "sha512-QXOYFmap8g9QzRjumcRCIo2GEZkdCwd7ePQW0OABWPhKHzlJ74vvBxywjU3s39EEBEluWXtZ7Iufg6GxZM4ifw==", "optional": true, "requires": { - "@aws-sdk/types": "3.212.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" } }, @@ -19015,270 +18960,274 @@ } }, "@aws-sdk/middleware-content-length": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.212.0.tgz", - "integrity": "sha512-gR6jeKGYNYqNLFRcuX3vv5PN1POLlB/9LDVYl3k/NNaCg8L1EKqqEtG84Gmn1AXH+2s6zMNs+gt5ygeqZQe2Cw==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.226.0.tgz", + "integrity": "sha512-ksUzlHJN2JMuyavjA46a4sctvnrnITqt2tbGGWWrAuXY1mel2j+VbgnmJUiwHKUO6bTFBBeft5Vd1TSOb4JmiA==", "optional": true, "requires": { - "@aws-sdk/protocol-http": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/protocol-http": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" } }, "@aws-sdk/middleware-endpoint": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.212.0.tgz", - "integrity": "sha512-6ntKYehjxLun8hPXIPHSI2pGr/pHuQ6jcyO5wBq1kydSIIGiESl8H84DEt+yRvroCiYgbU+I8cACnRE0uv0bLA==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.226.0.tgz", + "integrity": "sha512-EvLFafjtUxTT0AC9p3aBQu1/fjhWdIeK58jIXaNFONfZ3F8QbEYUPuF/SqZvJM6cWfOO9qwYKkRDbCSTYhprIg==", "optional": true, "requires": { - "@aws-sdk/middleware-serde": "3.212.0", - "@aws-sdk/protocol-http": "3.212.0", - "@aws-sdk/signature-v4": "3.212.0", - "@aws-sdk/types": "3.212.0", - "@aws-sdk/url-parser": "3.212.0", + "@aws-sdk/middleware-serde": "3.226.0", + "@aws-sdk/protocol-http": "3.226.0", + "@aws-sdk/signature-v4": "3.226.0", + "@aws-sdk/types": "3.226.0", + "@aws-sdk/url-parser": "3.226.0", "@aws-sdk/util-config-provider": "3.208.0", - "@aws-sdk/util-middleware": "3.212.0", + "@aws-sdk/util-middleware": "3.226.0", "tslib": "^2.3.1" } }, "@aws-sdk/middleware-host-header": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.212.0.tgz", - "integrity": "sha512-W00mxzK2OXy91Ncxri3cZJIxxSBzE72bX8FDa3xgC0ujbj49lw+rol6aV/Fw8Nda3CZ5xxulvJ4sXHt2eOtXSA==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.226.0.tgz", + "integrity": "sha512-haVkWVh6BUPwKgWwkL6sDvTkcZWvJjv8AgC8jiQuSl8GLZdzHTB8Qhi3IsfFta9HAuoLjxheWBE5Z/L0UrfhLA==", "optional": true, "requires": { - "@aws-sdk/protocol-http": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/protocol-http": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" } }, "@aws-sdk/middleware-logger": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.212.0.tgz", - "integrity": "sha512-BSQqzKp4abf2wXvJEstB0zdr68yJMZXA14h53eSvtzykZLfvvFixR1nyVgKq+PKm1VaJ2fuZr10tjWRVQg1pYA==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.226.0.tgz", + "integrity": "sha512-m9gtLrrYnpN6yckcQ09rV7ExWOLMuq8mMPF/K3DbL/YL0TuILu9i2T1W+JuxSX+K9FMG2HrLAKivE/kMLr55xA==", "optional": true, "requires": { - "@aws-sdk/types": "3.212.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" } }, "@aws-sdk/middleware-recursion-detection": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.212.0.tgz", - "integrity": "sha512-ATHPNtnd7nlm0jRXvr/c2xbxcna5ZGXEWTM5tUjIflOK9Rl3PCRce/hoQnHs45kv4l3daC53sPuRvTQ8O7K67A==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.226.0.tgz", + "integrity": "sha512-mwRbdKEUeuNH5TEkyZ5FWxp6bL2UC1WbY+LDv6YjHxmSMKpAoOueEdtU34PqDOLrpXXxIGHDFmjeGeMfktyEcA==", "optional": true, "requires": { - "@aws-sdk/protocol-http": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/protocol-http": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" } }, "@aws-sdk/middleware-retry": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.212.0.tgz", - "integrity": "sha512-lIi/JkYXalY6CYw2dJbQ/Xo64Ah3wfJ63BMTFQHQk1htnIDBnLd9a6ng96JgXJQMSO4ZEqRW/709NBlC157hbw==", + "version": "3.235.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.235.0.tgz", + "integrity": "sha512-50WHbJGpD3SNp9763MAlHqIhXil++JdQbKejNpHg7HsJne/ao3ub+fDOfx//mMBjpzBV25BGd5UlfL6blrClSg==", "optional": true, "requires": { - "@aws-sdk/protocol-http": "3.212.0", - "@aws-sdk/service-error-classification": "3.212.0", - "@aws-sdk/types": "3.212.0", - "@aws-sdk/util-middleware": "3.212.0", + "@aws-sdk/protocol-http": "3.226.0", + "@aws-sdk/service-error-classification": "3.229.0", + "@aws-sdk/types": "3.226.0", + "@aws-sdk/util-middleware": "3.226.0", + "@aws-sdk/util-retry": "3.229.0", "tslib": "^2.3.1", "uuid": "^8.3.2" } }, "@aws-sdk/middleware-sdk-sts": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.212.0.tgz", - "integrity": "sha512-IcMfno3RJEXXS1Ch5lY0hgdSkGn9XW9m3XoKu1DjhEqR34ENDzvUmEN2PimIcZnz+9W59CU9UAMs/amRhwhlmw==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.226.0.tgz", + "integrity": "sha512-NN9T/qoSD1kZvAT+VLny3NnlqgylYQcsgV3rvi/8lYzw/G/2s8VS6sm/VTWGGZhx08wZRv20MWzYu3bftcyqUg==", "optional": true, "requires": { - "@aws-sdk/middleware-signing": "3.212.0", - "@aws-sdk/property-provider": "3.212.0", - "@aws-sdk/protocol-http": "3.212.0", - "@aws-sdk/signature-v4": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/middleware-signing": "3.226.0", + "@aws-sdk/property-provider": "3.226.0", + "@aws-sdk/protocol-http": "3.226.0", + "@aws-sdk/signature-v4": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" } }, "@aws-sdk/middleware-serde": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.212.0.tgz", - "integrity": "sha512-KwRpwi/8vNDV0l8uvu1DPk0q3WR2pnp9VtUNZ6u9zU54hvVL+Z1PtQh/WfzJzNvtCHvtc/gVMs3Daqb/Ecrm5Q==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.226.0.tgz", + "integrity": "sha512-nPuOOAkSfx9TxzdKFx0X2bDlinOxGrqD7iof926K/AEflxGD1DBdcaDdjlYlPDW2CVE8LV/rAgbYuLxh/E/1VA==", "optional": true, "requires": { - "@aws-sdk/types": "3.212.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" } }, "@aws-sdk/middleware-signing": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.212.0.tgz", - "integrity": "sha512-pth95aEsxqQO0lrRAHZNVI5hrMtA14nEUPFjiLaXtOssZrjD6mBzXPRy1nKob6XWXOp/Vy0mnyI/FT/NnMflFw==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.226.0.tgz", + "integrity": "sha512-E6HmtPcl+IjYDDzi1xI2HpCbBq2avNWcjvCriMZWuTAtRVpnA6XDDGW5GY85IfS3A8G8vuWqEVPr8JcYUcjfew==", "optional": true, "requires": { - "@aws-sdk/property-provider": "3.212.0", - "@aws-sdk/protocol-http": "3.212.0", - "@aws-sdk/signature-v4": "3.212.0", - "@aws-sdk/types": "3.212.0", - "@aws-sdk/util-middleware": "3.212.0", + "@aws-sdk/property-provider": "3.226.0", + "@aws-sdk/protocol-http": "3.226.0", + "@aws-sdk/signature-v4": "3.226.0", + "@aws-sdk/types": "3.226.0", + "@aws-sdk/util-middleware": "3.226.0", "tslib": "^2.3.1" } }, "@aws-sdk/middleware-stack": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.212.0.tgz", - "integrity": "sha512-AZ5f9ChioHsxGUojlzqI57sYyM9oW9SN/7AuiNafXU02j9jw7DKiYRn43lRUhgYnb/REhedHA5SsqIBF5eut/w==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.226.0.tgz", + "integrity": "sha512-85wF29LvPvpoed60fZGDYLwv1Zpd/cM0C22WSSFPw1SSJeqO4gtFYyCg2squfT3KI6kF43IIkOCJ+L7GtryPug==", "optional": true, "requires": { "tslib": "^2.3.1" } }, "@aws-sdk/middleware-user-agent": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.212.0.tgz", - "integrity": "sha512-CVSY2kt+RaP6CVqSKp+1sPUAQFusTLZLFHVK0YPFzcIySJMqJC0l0/BzLhaIf5Bs3JHa/VGym8oDpp881yimHA==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.226.0.tgz", + "integrity": "sha512-N1WnfzCW1Y5yWhVAphf8OPGTe8Df3vmV7/LdsoQfmpkCZgLZeK2o0xITkUQhRj1mbw7yp8tVFLFV3R2lMurdAQ==", "optional": true, "requires": { - "@aws-sdk/protocol-http": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/protocol-http": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" } }, "@aws-sdk/node-config-provider": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.212.0.tgz", - "integrity": "sha512-8AfOEDPe/D9DccUgredYg07GH2jrw07FCTyA1Pug5Hgbas7w14zbhLyQB0l6gcOJEuh34e/7oV9hN3s1hctnJg==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.226.0.tgz", + "integrity": "sha512-B8lQDqiRk7X5izFEUMXmi8CZLOKCTWQJU9HQf3ako+sF0gexo4nHN3jhoRWyLtcgC5S3on/2jxpAcqtm7kuY3w==", "optional": true, "requires": { - "@aws-sdk/property-provider": "3.212.0", - "@aws-sdk/shared-ini-file-loader": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/property-provider": "3.226.0", + "@aws-sdk/shared-ini-file-loader": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" } }, "@aws-sdk/node-http-handler": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.212.0.tgz", - "integrity": "sha512-wt4jK8HeYMjuQbWB4+Xt/nGyTvIwtLhm0SHcRgcoTsUjEiaPio/xNanyBWhPSUM87jpyG6bQMCzUtDbPeLqhkA==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.226.0.tgz", + "integrity": "sha512-xQCddnZNMiPmjr3W7HYM+f5ir4VfxgJh37eqZwX6EZmyItFpNNeVzKUgA920ka1VPz/ZUYB+2OFGiX3LCLkkaA==", "optional": true, "requires": { - "@aws-sdk/abort-controller": "3.212.0", - "@aws-sdk/protocol-http": "3.212.0", - "@aws-sdk/querystring-builder": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/abort-controller": "3.226.0", + "@aws-sdk/protocol-http": "3.226.0", + "@aws-sdk/querystring-builder": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" } }, "@aws-sdk/property-provider": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.212.0.tgz", - "integrity": "sha512-NMCIABfw3VZ7Vtn6iSeZRuSToRLxIHq0eGoUgO7T4fUp3U5vqYt28A5UY65KB9ifUPpNSllEG3EhEqs5qFw5+w==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.226.0.tgz", + "integrity": "sha512-TsljjG+Sg0LmdgfiAlWohluWKnxB/k8xenjeozZfzOr5bHmNHtdbWv6BtNvD/R83hw7SFXxbJHlD5H4u9p2NFg==", "optional": true, "requires": { - "@aws-sdk/types": "3.212.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" } }, "@aws-sdk/protocol-http": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.212.0.tgz", - "integrity": "sha512-EhkLPQC2TeqC3RGKfW87zoKj/gsWS4JJlRl5U6KMXejBMKQPzuopUiF9gQJ2iuou9BT8B+RsG2qgSHzrxp6lKw==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.226.0.tgz", + "integrity": "sha512-zWkVqiTA9RXL6y0hhfZc9bcU4DX2NI6Hw9IhQmSPeM59mdbPjJlY4bLlMr5YxywqO3yQ/ylNoAfrEzrDjlOSRg==", "optional": true, "requires": { - "@aws-sdk/types": "3.212.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" } }, "@aws-sdk/querystring-builder": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.212.0.tgz", - "integrity": "sha512-4CaQstj0Aki3vc96Z0d481raNagmy9gnJtIv6yveATJ/57lk/RUv2WtTUOzpFKv/oNx5khix2tpbRqK9nCUxVg==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.226.0.tgz", + "integrity": "sha512-LVurypuNeotO4lmirKXRC4NYrZRAyMJXuwO0f2a5ZAUJCjauwYrifKue6yCfU7bls7gut7nfcR6B99WBYpHs3g==", "optional": true, "requires": { - "@aws-sdk/types": "3.212.0", + "@aws-sdk/types": "3.226.0", "@aws-sdk/util-uri-escape": "3.201.0", "tslib": "^2.3.1" } }, "@aws-sdk/querystring-parser": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.212.0.tgz", - "integrity": "sha512-ttarfAHMOYKgFHeBdgXID9SlNS7erH4gavN3fvf5R1RliCytUnzsTTvqa7CmVBFy0Xc/2yA+/6FFDKlOsS8tRg==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.226.0.tgz", + "integrity": "sha512-FzB+VrQ47KAFxiPt2YXrKZ8AOLZQqGTLCKHzx4bjxGmwgsjV8yIbtJiJhZLMcUQV4LtGeIY9ixIqQhGvnZHE4A==", "optional": true, "requires": { - "@aws-sdk/types": "3.212.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" } }, "@aws-sdk/service-error-classification": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.212.0.tgz", - "integrity": "sha512-jCv+uuFq4yGjP8FoCmoOGqnKNHHREDOFf7OxVSCluGMg2LXHfGxxqkqNFJlT3p+QdEp323GSWFY+PUsMJy7BLQ==", + "version": "3.229.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.229.0.tgz", + "integrity": "sha512-dnzWWQ0/NoWMUZ5C0DW3dPm0wC1O76Y/SpKbuJzWPkx1EYy6r8p32Ly4D9vUzrKDbRGf48YHIF2kOkBmu21CLg==", "optional": true }, "@aws-sdk/shared-ini-file-loader": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.212.0.tgz", - "integrity": "sha512-wKWqCA1oU57V//D3uAjQKGGj6rm6YKH4pWIU38Ypb/xNafiB7C51KtwpQVsS2HCNfmGrD03sGLKEZCSy9jvIlA==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.226.0.tgz", + "integrity": "sha512-661VQefsARxVyyV2FX9V61V+nNgImk7aN2hYlFKla6BCwZfMng+dEtD0xVGyg1PfRw0qvEv5LQyxMVgHcUSevA==", "optional": true, "requires": { - "@aws-sdk/types": "3.212.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" } }, "@aws-sdk/signature-v4": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.212.0.tgz", - "integrity": "sha512-tCrzWA60AWGDRmY9OyUrG0BzD+dDbAtHSqcY2LchGHOlMmv501/WXBIvn9fDfKp8GJj6Lb3VcG9cY1jCuKKcmg==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.226.0.tgz", + "integrity": "sha512-/R5q5agdPd7HJB68XMzpxrNPk158EHUvkFkuRu5Qf3kkkHebEzWEBlWoVpUe6ss4rP9Tqcue6xPuaftEmhjpYw==", "optional": true, "requires": { "@aws-sdk/is-array-buffer": "3.201.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/types": "3.226.0", "@aws-sdk/util-hex-encoding": "3.201.0", - "@aws-sdk/util-middleware": "3.212.0", + "@aws-sdk/util-middleware": "3.226.0", "@aws-sdk/util-uri-escape": "3.201.0", "tslib": "^2.3.1" } }, "@aws-sdk/smithy-client": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.212.0.tgz", - "integrity": "sha512-dQUlM/eltp9JVEVQWGxU/6Or8jGQWK5mgmbP+BUHkfDgoMIeOFksIYon211KhE18EjoGgav1mr4/HHlcnekI2w==", + "version": "3.234.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.234.0.tgz", + "integrity": "sha512-8AtR/k4vsFvjXeQbIzq/Wy7Nbk48Ou0wUEeVYPHWHPSU8QamFWORkOwmKtKMfHAyZvmqiAPeQqHFkq+UJhWyyQ==", "optional": true, "requires": { - "@aws-sdk/middleware-stack": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/middleware-stack": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" } }, "@aws-sdk/token-providers": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.212.0.tgz", - "integrity": "sha512-pTe4PM14b58nbfvIP9B0zW5dUIxEb/ALVzSLuxpJwJRI51E5QZmXJMT3P77MUd6niqKw0cRrnEHIgznD67JHSg==", + "version": "3.245.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.245.0.tgz", + "integrity": "sha512-m/spXR/vEXGb+zMqRUMQYVMwFZSTdK5RkddYqamYkNhIoLm60EYeRu57JsMMs5djKi8dBRSKiXwVHx0l2rXMjg==", "optional": true, "requires": { - "@aws-sdk/client-sso-oidc": "3.212.0", - "@aws-sdk/property-provider": "3.212.0", - "@aws-sdk/shared-ini-file-loader": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/client-sso-oidc": "3.245.0", + "@aws-sdk/property-provider": "3.226.0", + "@aws-sdk/shared-ini-file-loader": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" } }, "@aws-sdk/types": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.212.0.tgz", - "integrity": "sha512-uXBXB1PBYxfPyIvgmjbGdYBlS7rdeMG58uCaY3Ga5scY2xQnj7HU7knATKuIKk2DH1lLT0inqtsRVJS25zRK5w==", - "optional": true - }, - "@aws-sdk/url-parser": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.212.0.tgz", - "integrity": "sha512-mTUQQRcVYqur7aHDuDMDKxN7Yr/5kIZB1RtMjIwtimTcf7TZaskN6sLTPo42YgASM6XQQhJECZaOE7Ow16i6Mg==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.226.0.tgz", + "integrity": "sha512-MmmNHrWeO4man7wpOwrAhXlevqtOV9ZLcH4RhnG5LmRce0RFOApx24HoKENfFCcOyCm5LQBlsXCqi0dZWDWU0A==", "optional": true, "requires": { - "@aws-sdk/querystring-parser": "3.212.0", - "@aws-sdk/types": "3.212.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/url-parser": { + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.226.0.tgz", + "integrity": "sha512-p5RLE0QWyP0OcTOLmFcLdVgUcUEzmEfmdrnOxyNzomcYb0p3vUagA5zfa1HVK2azsQJFBv28GfvMnba9bGhObg==", + "optional": true, + "requires": { + "@aws-sdk/querystring-parser": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" } }, @@ -19330,38 +19279,38 @@ } }, "@aws-sdk/util-defaults-mode-browser": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.212.0.tgz", - "integrity": "sha512-tAs9+/lTtil545kyCqy7qjnnCq4S2S+4kBhHXgwRNPT85Nx5XCEEheWH6VZ45YufRaiRNFfX0n+odDwzDaev6g==", + "version": "3.234.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.234.0.tgz", + "integrity": "sha512-IHMKXjTbOD8XMz5+2oCOsVP94BYb9YyjXdns0aAXr2NAo7k2+RCzXQ2DebJXppGda1F6opFutoKwyVSN0cmbMw==", "optional": true, "requires": { - "@aws-sdk/property-provider": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/property-provider": "3.226.0", + "@aws-sdk/types": "3.226.0", "bowser": "^2.11.0", "tslib": "^2.3.1" } }, "@aws-sdk/util-defaults-mode-node": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.212.0.tgz", - "integrity": "sha512-fNl1IDqn1mAoiM2Xv5KGAczXHy2+tPlouunIEePnQKTq0pzT3WqR13qleTfu1EcEz1oyGnDRoK91aP61Jxh3OQ==", + "version": "3.234.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.234.0.tgz", + "integrity": "sha512-UGjQ+OjBYYhxFVtUY+jtr0ZZgzZh6OHtYwRhFt8IHewJXFCfZTyfsbX20szBj5y1S4HRIUJ7cwBLIytTqMbI5w==", "optional": true, "requires": { - "@aws-sdk/config-resolver": "3.212.0", - "@aws-sdk/credential-provider-imds": "3.212.0", - "@aws-sdk/node-config-provider": "3.212.0", - "@aws-sdk/property-provider": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/config-resolver": "3.234.0", + "@aws-sdk/credential-provider-imds": "3.226.0", + "@aws-sdk/node-config-provider": "3.226.0", + "@aws-sdk/property-provider": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" } }, "@aws-sdk/util-endpoints": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.212.0.tgz", - "integrity": "sha512-/ADfvrZwhzUphre3pliO290IFOflvHyBBEaKn9WfRQ5veZxl+CuOEjxkwTJfHUrfWbh+xpCuOewWVLCptmoC4A==", + "version": "3.245.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.245.0.tgz", + "integrity": "sha512-UNOFquB1tKx+8RT8n82Zb5tIwDyZHVPBg/m0LB0RsLETjr6krien5ASpqWezsXKIR1hftN9uaxN4bvf2dZrWHg==", "optional": true, "requires": { - "@aws-sdk/types": "3.212.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" } }, @@ -19384,14 +19333,24 @@ } }, "@aws-sdk/util-middleware": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.212.0.tgz", - "integrity": "sha512-621glUpwVKJRB8QxRG/5cAKIq8LKPdl/l8CS7vDg34f6j9BJmP5YVPcTzzQ6iskQAblkndiBAnSjp7kGujxuGg==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.226.0.tgz", + "integrity": "sha512-B96CQnwX4gRvQdaQkdUtqvDPkrptV5+va6FVeJOocU/DbSYMAScLxtR3peMS8cnlOT6nL1Eoa42OI9AfZz1VwQ==", "optional": true, "requires": { "tslib": "^2.3.1" } }, + "@aws-sdk/util-retry": { + "version": "3.229.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-retry/-/util-retry-3.229.0.tgz", + "integrity": "sha512-0zKTqi0P1inD0LzIMuXRIYYQ/8c1lWMg/cfiqUcIAF1TpatlpZuN7umU0ierpBFud7S+zDgg0oemh+Nj8xliJw==", + "optional": true, + "requires": { + "@aws-sdk/service-error-classification": "3.229.0", + "tslib": "^2.3.1" + } + }, "@aws-sdk/util-uri-escape": { "version": "3.201.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.201.0.tgz", @@ -19402,24 +19361,24 @@ } }, "@aws-sdk/util-user-agent-browser": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.212.0.tgz", - "integrity": "sha512-xXz16ge9NdKCwlD+952rfvgHdDe+pbCavbVMNdR60joHq5KYGR1e02l0LRNVe48/C9dAo2ezeJ+YnTPaw3Yl8Q==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.226.0.tgz", + "integrity": "sha512-PhBIu2h6sPJPcv2I7ELfFizdl5pNiL4LfxrasMCYXQkJvVnoXztHA1x+CQbXIdtZOIlpjC+6BjDcE0uhnpvfcA==", "optional": true, "requires": { - "@aws-sdk/types": "3.212.0", + "@aws-sdk/types": "3.226.0", "bowser": "^2.11.0", "tslib": "^2.3.1" } }, "@aws-sdk/util-user-agent-node": { - "version": "3.212.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.212.0.tgz", - "integrity": "sha512-HE8VwtMtTXGkwUjryNpy+qyg7wrQxCGplDP59yo0YVn86B5f9nhRi/2jRAsKo9yf94iP7PXAz65TY9+KJC8UIg==", + "version": "3.226.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.226.0.tgz", + "integrity": "sha512-othPc5Dz/pkYkxH+nZPhc1Al0HndQT8zHD4e9h+EZ+8lkd8n+IsnLfTS/mSJWrfiC6UlNRVw55cItstmJyMe/A==", "optional": true, "requires": { - "@aws-sdk/node-config-provider": "3.212.0", - "@aws-sdk/types": "3.212.0", + "@aws-sdk/node-config-provider": "3.226.0", + "@aws-sdk/types": "3.226.0", "tslib": "^2.3.1" } }, @@ -19626,41 +19585,19 @@ "integrity": "sha512-XqfbglUTVLdkHQ8F9UQJtKseRr3sSnr9ysboxtoswvaMVaEfvyLtMoHv9XdKUfOc0qKGzNgRFd9yRjIWVepl6Q==" }, "@azure/msal-node": { - "version": "1.14.5", - "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-1.14.5.tgz", - "integrity": "sha512-NcVdMfn8Z3ogN+9RjOSF7uwf2Gki5DEJl0BdDSL83KUAgVAobtkZi5W8EqxbJLrTO/ET0jv5DregrcR5qg2pEA==", + "version": "1.14.6", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-1.14.6.tgz", + "integrity": "sha512-em/qqFL5tLMxMPl9vormAs13OgZpmQoJbiQ/GlWr+BA77eCLoL+Ehr5xRHowYo+LFe5b+p+PJVkRvT+mLvOkwA==", "requires": { - "@azure/msal-common": "^9.0.1", - "jsonwebtoken": "^8.5.1", + "@azure/msal-common": "^9.0.2", + "jsonwebtoken": "^9.0.0", "uuid": "^8.3.0" }, "dependencies": { "@azure/msal-common": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-9.0.1.tgz", - "integrity": "sha512-eNNHIW/cwPTZDWs9KtYgb1X6gtQ+cC+FGX2YN+t4AUVsBdUbqlMTnUs6/c/VBxC2AAGIhgLREuNnO3F66AN2zQ==" - }, - "jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", - "requires": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-9.0.2.tgz", + "integrity": "sha512-qzwxuF8kZAp+rNUactMCgJh8fblq9D4lSqrrIxMDzLjgSZtjN32ix7r/HBe8QdOr76II9SVVPcMkX4sPzPfQ7w==" } } }, @@ -21621,9 +21558,9 @@ "integrity": "sha512-oTFmkyv5MhgkHdZhoe5lwRoKW0t4njPvK3g7ODvK/prkoC5bwylKcyQJMsmjvgHBXoy4u5iLnB5yQ7AljouHAA==" }, "@louislam/ping": { - "version": "0.4.2-mod.0", - "resolved": "https://registry.npmjs.org/@louislam/ping/-/ping-0.4.2-mod.0.tgz", - "integrity": "sha512-cyHnJHsMkC+sFU32GBzX5SlwdTb+BIBlwsdwsDm+AS9jcS1sz7JPBrdCStqpNkVn5lUUQZ7Ak5DRwlWuwJOYAg==", + "version": "0.4.2-mod.1", + "resolved": "https://registry.npmjs.org/@louislam/ping/-/ping-0.4.2-mod.1.tgz", + "integrity": "sha512-KkRDo8qcF9kzzR0Hh8Iqz+XNnzKOdobUquP7UyBYrjxAB1jNT3qO0gvAZeDUknF28LXBPSzkiVlf1NG+tb/iyQ==", "requires": { "command-exists": "~1.2.9", "q": "1.x", @@ -23253,9 +23190,9 @@ } }, "bson": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.0.tgz", - "integrity": "sha512-VrlEE4vuiO1WTpfof4VmaVolCVYkYTgB9iWgYNOrVlnifpME/06fhFRmONgBhClD5pFC1t9ZWqFUQEQAzY43bA==", + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.2.tgz", + "integrity": "sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==", "requires": { "buffer": "^5.6.0" } @@ -23595,8 +23532,7 @@ "colorette": { "version": "2.0.19", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", - "dev": true + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" }, "combine-errors": { "version": "3.0.3", @@ -25703,8 +25639,7 @@ "get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" }, "get-stdin": { "version": "8.0.0", @@ -25731,9 +25666,9 @@ } }, "getopts": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/getopts/-/getopts-2.2.5.tgz", - "integrity": "sha512-9jb7AW5p3in+IiJWhQiZmmwkpLaR/ccTWdWQCtZM66HJcHHLegowh4q4tSD7gouUyeNvFWRavfK9GXosQHDpFA==" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/getopts/-/getopts-2.3.0.tgz", + "integrity": "sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==" }, "getos": { "version": "3.2.1", @@ -28151,47 +28086,30 @@ "dev": true }, "knex": { - "version": "0.95.15", - "resolved": "https://registry.npmjs.org/knex/-/knex-0.95.15.tgz", - "integrity": "sha512-Loq6WgHaWlmL2bfZGWPsy4l8xw4pOE+tmLGkPG0auBppxpI0UcK+GYCycJcqz9W54f2LiGewkCVLBm3Wq4ur/w==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/knex/-/knex-2.4.0.tgz", + "integrity": "sha512-i0GWwqYp1Hs2yvc2rlDO6nzzkLhwdyOZKRdsMTB8ZxOs2IXQyL5rBjSbS1krowCh6V65T4X9CJaKtuIfkaPGSA==", "requires": { - "colorette": "2.0.16", - "commander": "^7.1.0", - "debug": "4.3.2", + "colorette": "2.0.19", + "commander": "^9.1.0", + "debug": "4.3.4", "escalade": "^3.1.1", "esm": "^3.2.25", - "getopts": "2.2.5", + "get-package-type": "^0.1.0", + "getopts": "2.3.0", "interpret": "^2.2.0", "lodash": "^4.17.21", "pg-connection-string": "2.5.0", - "rechoir": "0.7.0", + "rechoir": "^0.8.0", "resolve-from": "^5.0.0", - "tarn": "^3.0.1", + "tarn": "^3.0.2", "tildify": "2.0.0" }, "dependencies": { - "colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==" - }, "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==" }, "resolve-from": { "version": "5.0.0", @@ -28333,36 +28251,6 @@ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" }, - "lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" - }, - "lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" - }, - "lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" - }, - "lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" - }, "lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -28372,7 +28260,8 @@ "lodash.once": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "dev": true }, "lodash.truncate": { "version": "4.4.2", @@ -28750,9 +28639,9 @@ } }, "mongodb-connection-string-url": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.5.4.tgz", - "integrity": "sha512-SeAxuWs0ez3iI3vvmLk/j2y+zHwigTDKQhtdxTgt5ZCOQQS5+HW4g45/Xw5vzzbn7oQXCNQ24Z40AkJsizEy7w==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz", + "integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==", "requires": { "@types/whatwg-url": "^8.2.1", "whatwg-url": "^11.0.0" @@ -30162,23 +30051,23 @@ } }, "rechoir": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz", - "integrity": "sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", "requires": { - "resolve": "^1.9.0" + "resolve": "^1.20.0" } }, "redbean-node": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/redbean-node/-/redbean-node-0.1.4.tgz", - "integrity": "sha512-c1U6wnTeWS0c44tn9hkJWzjGgckLNJ8sN1E2bxnnnQsULOfvEVFLf8dLMjqhyyMrZ1L1mp8UvV4OfhRtH/ZrgQ==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/redbean-node/-/redbean-node-0.2.0.tgz", + "integrity": "sha512-bHbNgVpkLOn7i/kvfvGDVGzfDgvf20qVRm4EvQV9tD2V2nhcegYUITzAF3XSL2XVirrb5vmWy85vxM44faBnYw==", "requires": { "@types/node": "^14.18.12", "await-lock": "^2.1.0", "dayjs": "^1.11.0", "glob": "^7.2.0", - "knex": "^0.95.15", + "knex": "^2.4.0", "lodash": "^4.17.21" }, "dependencies": { diff --git a/package.json b/package.json index 276c43823..55934dd7e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "uptime-kuma", - "version": "1.19.4", + "version": "1.19.6", "license": "MIT", "repository": { "type": "git", @@ -39,7 +39,7 @@ "build-docker-nightly-amd64": "docker buildx build -f docker/dockerfile --platform linux/amd64 -t louislam/uptime-kuma:nightly-amd64 --target nightly . --push --progress plain", "build-docker-pr-test": "docker buildx build -f docker/dockerfile --platform linux/amd64,linux/arm64 -t louislam/uptime-kuma:pr-test --target pr-test . --push", "upload-artifacts": "docker buildx build -f docker/dockerfile --platform linux/amd64 -t louislam/uptime-kuma:upload-artifact --build-arg VERSION --build-arg GITHUB_TOKEN --target upload-artifact . --progress plain", - "setup": "git checkout 1.19.4 && npm ci --production && npm run download-dist", + "setup": "git checkout 1.19.6 && npm ci --production && npm run download-dist", "download-dist": "node extra/download-dist.js", "mark-as-nightly": "node extra/mark-as-nightly.js", "reset-password": "node extra/reset-password.js", @@ -67,7 +67,7 @@ }, "dependencies": { "@grpc/grpc-js": "~1.7.3", - "@louislam/ping": "~0.4.2-mod.0", + "@louislam/ping": "~0.4.2-mod.1", "@louislam/sqlite3": "15.1.2", "args-parser": "~1.3.0", "axios": "~0.27.0", @@ -110,7 +110,7 @@ "prom-client": "~13.2.0", "prometheus-api-metrics": "~3.2.1", "protobufjs": "~7.1.1", - "redbean-node": "0.1.4", + "redbean-node": "~0.2.0", "redis": "~4.5.1", "socket.io": "~4.5.3", "socket.io-client": "~4.5.3", diff --git a/server/auth.js b/server/auth.js index 3ce1a6041..fd19b0e44 100644 --- a/server/auth.js +++ b/server/auth.js @@ -63,6 +63,12 @@ function myAuthorizer(username, password, callback) { }); } +/** + * Use basic auth if auth is not disabled + * @param {express.Request} req Express request object + * @param {express.Response} res Express response object + * @param {express.NextFunction} next + */ exports.basicAuth = async function (req, res, next) { const middleware = basicAuth({ authorizer: myAuthorizer, diff --git a/server/cacheable-dns-http-agent.js b/server/cacheable-dns-http-agent.js index 301367918..cc067f72b 100644 --- a/server/cacheable-dns-http-agent.js +++ b/server/cacheable-dns-http-agent.js @@ -37,6 +37,10 @@ class CacheableDnsHttpAgent { this.enable = isEnable; } + /** + * Attach cacheable to HTTP agent + * @param {http.Agent} agent Agent to install + */ static install(agent) { this.cacheable.install(agent); } diff --git a/server/jobs.js b/server/jobs.js index f9c7f86e9..66a276064 100644 --- a/server/jobs.js +++ b/server/jobs.js @@ -32,6 +32,7 @@ const initBackgroundJobs = function (args) { return bree; }; +/** Stop all background jobs if running */ const stopBackgroundJobs = function () { if (bree) { bree.stop(); diff --git a/server/model/maintenance.js b/server/model/maintenance.js index d9be34273..45db63d13 100644 --- a/server/model/maintenance.js +++ b/server/model/maintenance.js @@ -112,6 +112,11 @@ class Maintenance extends BeanModel { return this.toPublicJSON(timezone); } + /** + * Get a list of weekdays that the maintenance is active for + * Monday=1, Tuesday=2 etc. + * @returns {number[]} Array of active weekdays + */ getDayOfWeekList() { log.debug("timeslot", "List: " + this.weekdays); return JSON.parse(this.weekdays).sort(function (a, b) { @@ -119,12 +124,20 @@ class Maintenance extends BeanModel { }); } + /** + * Get a list of days in month that maintenance is active for + * @returns {number[]} Array of active days in month + */ getDayOfMonthList() { return JSON.parse(this.days_of_month).sort(function (a, b) { return a - b; }); } + /** + * Get the start date and time for maintenance + * @returns {dayjs.Dayjs} Start date and time + */ getStartDateTime() { let startOfTheDay = dayjs.utc(this.start_date).format("HH:mm"); log.debug("timeslot", "startOfTheDay: " + startOfTheDay); @@ -137,6 +150,10 @@ class Maintenance extends BeanModel { return dayjs.utc(this.start_date).add(startTimeSecond, "second"); } + /** + * Get the duraction of maintenance in seconds + * @returns {number} Duration of maintenance + */ getDuration() { let duration = dayjs.utc(this.end_time, "HH:mm").diff(dayjs.utc(this.start_time, "HH:mm"), "second"); // Add 24hours if it is across day @@ -146,6 +163,12 @@ class Maintenance extends BeanModel { return duration; } + /** + * Convert data from socket to bean + * @param {Bean} bean Bean to fill in + * @param {Object} obj Data to fill bean with + * @returns {Bean} Filled bean + */ static jsonToBean(bean, obj) { if (obj.id) { bean.id = obj.id; diff --git a/server/model/maintenance_timeslot.js b/server/model/maintenance_timeslot.js index 2babe6bca..77643c2cf 100644 --- a/server/model/maintenance_timeslot.js +++ b/server/model/maintenance_timeslot.js @@ -6,6 +6,11 @@ const { UptimeKumaServer } = require("../uptime-kuma-server"); class MaintenanceTimeslot extends BeanModel { + /** + * Return an object that ready to parse to JSON for public + * Only show necessary data to public + * @returns {Object} + */ async toPublicJSON() { const serverTimezoneOffset = UptimeKumaServer.getInstance().getTimezoneOffset(); @@ -21,6 +26,10 @@ class MaintenanceTimeslot extends BeanModel { return obj; } + /** + * Return an object that ready to parse to JSON + * @returns {Object} + */ async toJSON() { return await this.toPublicJSON(); } diff --git a/server/model/monitor.js b/server/model/monitor.js index 7ba660936..28fae9e64 100644 --- a/server/model/monitor.js +++ b/server/model/monitor.js @@ -38,7 +38,6 @@ class Monitor extends BeanModel { id: this.id, name: this.name, sendUrl: this.sendUrl, - maintenance: await Monitor.isUnderMaintenance(this.id), }; if (this.sendUrl) { @@ -496,13 +495,17 @@ class Monitor extends BeanModel { const options = { url: `/containers/${this.docker_container}/json`, + timeout: this.interval * 1000 * 0.8, headers: { "Accept": "*/*", "User-Agent": "Uptime-Kuma/" + version, }, - httpsAgent: new https.Agent({ + httpsAgent: CacheableDnsHttpAgent.getHttpsAgent({ maxCachedSessions: 0, // Use Custom agent to disable session reuse (https://github.com/nodejs/node/issues/3940) - rejectUnauthorized: ! this.getIgnoreTls(), + rejectUnauthorized: !this.getIgnoreTls(), + }), + httpAgent: CacheableDnsHttpAgent.getHttpAgent({ + maxCachedSessions: 0, }), }; @@ -765,6 +768,13 @@ class Monitor extends BeanModel { } } + /** + * Make a request using axios + * @param {Object} options Options for Axios + * @param {boolean} finalCall Should this be the final call i.e + * don't retry on faliure + * @returns {Object} Axios response + */ async makeAxiosRequest(options, finalCall = false) { try { let res; @@ -1246,6 +1256,7 @@ class Monitor extends BeanModel { return maintenance.count !== 0; } + /** Make sure monitor interval is between bounds */ validate() { if (this.interval > MAX_INTERVAL_SECOND) { throw new Error(`Interval cannot be more than ${MAX_INTERVAL_SECOND} seconds`); diff --git a/server/notification-providers/promosms.js b/server/notification-providers/promosms.js index 4f7e8f901..572a21325 100644 --- a/server/notification-providers/promosms.js +++ b/server/notification-providers/promosms.js @@ -8,6 +8,14 @@ class PromoSMS extends NotificationProvider { async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { let okMsg = "Sent Successfully."; + if (notification.promosmsAllowLongSMS === undefined) { + notification.promosmsAllowLongSMS = false; + } + + //TODO: Add option for enabling special characters. It will decrese message max length from 160 to 70 chars. + //Lets remove non ascii char + let cleanMsg = msg.replace(/[^\x00-\x7F]/g, ""); + try { let config = { headers: { @@ -18,8 +26,9 @@ class PromoSMS extends NotificationProvider { }; let data = { "recipients": [ notification.promosmsPhoneNumber ], - //Lets remove non ascii char - "text": msg.replace(/[^\x00-\x7F]/g, ""), + //Trim message to maximum length of 1 SMS or 4 if we allowed long messages + "text": notification.promosmsAllowLongSMS ? cleanMsg.substring(0, 639) : cleanMsg.substring(0, 159), + "long-sms": notification.promosmsAllowLongSMS, "type": Number(notification.promosmsSMSType), "sender": notification.promosmsSenderName }; diff --git a/server/notification-providers/pushover.js b/server/notification-providers/pushover.js index bafde56e0..e4f0ddb81 100644 --- a/server/notification-providers/pushover.js +++ b/server/notification-providers/pushover.js @@ -10,7 +10,7 @@ class Pushover extends NotificationProvider { let pushoverlink = "https://api.pushover.net/1/messages.json"; let data = { - "message": "Message:" + msg, + "message": msg, "user": notification.pushoveruserkey, "token": notification.pushoverapptoken, "sound": notification.pushoversounds, diff --git a/server/notification-providers/serverchan.js b/server/notification-providers/serverchan.js index fbf99f80d..d631c8e61 100644 --- a/server/notification-providers/serverchan.js +++ b/server/notification-providers/serverchan.js @@ -21,6 +21,12 @@ class ServerChan extends NotificationProvider { } } + /** + * Get the formatted title for message + * @param {?Object} monitorJSON Monitor details (For Up/Down only) + * @param {?Object} heartbeatJSON Heartbeat details (For Up/Down only) + * @returns {string} Formatted title + */ checkStatus(heartbeatJSON, monitorJSON) { let title = "UptimeKuma Message"; if (heartbeatJSON != null && heartbeatJSON["status"] === UP) { diff --git a/server/notification-providers/splunk.js b/server/notification-providers/splunk.js new file mode 100644 index 000000000..2d82dd397 --- /dev/null +++ b/server/notification-providers/splunk.js @@ -0,0 +1,113 @@ +const NotificationProvider = require("./notification-provider"); +const axios = require("axios"); +const { UP, DOWN, getMonitorRelativeURL } = require("../../src/util"); +const { setting } = require("../util-server"); +let successMessage = "Sent Successfully."; + +class Splunk extends NotificationProvider { + name = "Splunk"; + + /** + * @inheritdoc + */ + async send(notification, msg, monitorJSON = null, heartbeatJSON = null) { + try { + if (heartbeatJSON == null) { + const title = "Uptime Kuma Alert"; + const monitor = { + type: "ping", + url: "Uptime Kuma Test Button", + }; + return this.postNotification(notification, title, msg, monitor, "trigger"); + } + + if (heartbeatJSON.status === UP) { + const title = "Uptime Kuma Monitor ✅ Up"; + return this.postNotification(notification, title, heartbeatJSON.msg, monitorJSON, "recovery"); + } + + if (heartbeatJSON.status === DOWN) { + const title = "Uptime Kuma Monitor 🔴 Down"; + return this.postNotification(notification, title, heartbeatJSON.msg, monitorJSON, "trigger"); + } + } catch (error) { + this.throwGeneralAxiosError(error); + } + } + + /** + * Check if result is successful, result code should be in range 2xx + * @param {Object} result Axios response object + * @throws {Error} The status code is not in range 2xx + */ + checkResult(result) { + if (result.status == null) { + throw new Error("Splunk notification failed with invalid response!"); + } + if (result.status < 200 || result.status >= 300) { + throw new Error("Splunk notification failed with status code " + result.status); + } + } + + /** + * Send the message + * @param {BeanModel} notification Message title + * @param {string} title Message title + * @param {string} body Message + * @param {Object} monitorInfo Monitor details (For Up/Down only) + * @param {?string} eventAction Action event for PagerDuty (trigger, acknowledge, resolve) + * @returns {string} + */ + async postNotification(notification, title, body, monitorInfo, eventAction = "trigger") { + + let monitorUrl; + if (monitorInfo.type === "port") { + monitorUrl = monitorInfo.hostname; + if (monitorInfo.port) { + monitorUrl += ":" + monitorInfo.port; + } + } else if (monitorInfo.hostname != null) { + monitorUrl = monitorInfo.hostname; + } else { + monitorUrl = monitorInfo.url; + } + + if (eventAction === "recovery") { + if (notification.splunkAutoResolve === "0") { + return "No action required"; + } + eventAction = notification.splunkAutoResolve; + } else { + eventAction = notification.splunkSeverity; + } + + const options = { + method: "POST", + url: notification.splunkRestURL, + headers: { "Content-Type": "application/json" }, + data: { + message_type: eventAction, + state_message: `[${title}] [${monitorUrl}] ${body}`, + entity_display_name: "Uptime Kuma Alert: " + monitorInfo.name, + routing_key: notification.pagerdutyIntegrationKey, + entity_id: "Uptime Kuma/" + monitorInfo.id, + } + }; + + const baseURL = await setting("primaryBaseURL"); + if (baseURL && monitorInfo) { + options.client = "Uptime Kuma"; + options.client_url = baseURL + getMonitorRelativeURL(monitorInfo.id); + } + + let result = await axios.request(options); + this.checkResult(result); + if (result.statusText != null) { + return "Splunk notification succeed: " + result.statusText; + } + + return successMessage; + } +} + +module.exports = Splunk; diff --git a/server/notification.js b/server/notification.js index 1aad704c0..fd3491238 100644 --- a/server/notification.js +++ b/server/notification.js @@ -40,6 +40,7 @@ const Stackfield = require("./notification-providers/stackfield"); const Teams = require("./notification-providers/teams"); const TechulusPush = require("./notification-providers/techulus-push"); const Telegram = require("./notification-providers/telegram"); +const Splunk = require("./notification-providers/splunk"); const Webhook = require("./notification-providers/webhook"); const WeCom = require("./notification-providers/wecom"); const GoAlert = require("./notification-providers/goalert"); @@ -100,6 +101,7 @@ class Notification { new Teams(), new TechulusPush(), new Telegram(), + new Splunk(), new Webhook(), new WeCom(), new GoAlert(), diff --git a/server/prometheus.js b/server/prometheus.js index 1473ab7a9..aeba95f80 100644 --- a/server/prometheus.js +++ b/server/prometheus.js @@ -99,6 +99,7 @@ class Prometheus { } } + /** Remove monitor from prometheus */ remove() { try { monitorCertDaysRemaining.remove(this.monitorLabelValues); diff --git a/server/uptime-cache-list.js b/server/uptime-cache-list.js index 1347968fa..d88a9cbf8 100644 --- a/server/uptime-cache-list.js +++ b/server/uptime-cache-list.js @@ -6,10 +6,10 @@ class UptimeCacheList { static list = {}; /** - * - * @param monitorID - * @param duration - * @return number + * Get the uptime for a specific period + * @param {number} monitorID + * @param {number} duration + * @return {number} */ static getUptime(monitorID, duration) { if (UptimeCacheList.list[monitorID] && UptimeCacheList.list[monitorID][duration]) { @@ -20,6 +20,12 @@ class UptimeCacheList { } } + /** + * Add uptime for specified monitor + * @param {number} monitorID + * @param {number} duration + * @param {number} uptime Uptime to add + */ static addUptime(monitorID, duration, uptime) { log.debug("UptimeCacheList", "addUptime: " + monitorID + " " + duration); if (!UptimeCacheList.list[monitorID]) { @@ -28,6 +34,10 @@ class UptimeCacheList { UptimeCacheList.list[monitorID][duration] = uptime; } + /** + * Clear cache for specified monitor + * @param {number} monitorID + */ static clearCache(monitorID) { log.debug("UptimeCacheList", "clearCache: " + monitorID); delete UptimeCacheList.list[monitorID]; diff --git a/server/uptime-kuma-server.js b/server/uptime-kuma-server.js index 062375626..faffb98be 100644 --- a/server/uptime-kuma-server.js +++ b/server/uptime-kuma-server.js @@ -86,6 +86,7 @@ class UptimeKumaServer { this.io = new Server(this.httpServer); } + /** Initialise app after the database has been set up */ async initAfterDatabaseReady() { await CacheableDnsHttpAgent.update(); @@ -98,6 +99,11 @@ class UptimeKumaServer { this.generateMaintenanceTimeslotsInterval = setInterval(this.generateMaintenanceTimeslots, 60 * 1000); } + /** + * Send list of monitors to client + * @param {Socket} socket + * @returns {Object} List of monitors + */ async sendMonitorList(socket) { let list = await this.getMonitorJSONList(socket.userID); this.io.to(socket.userID).emit("monitorList", list); @@ -134,6 +140,11 @@ class UptimeKumaServer { return await this.sendMaintenanceListByUserID(socket.userID); } + /** + * Send list of maintenances to user + * @param {number} userID + * @returns {Object} + */ async sendMaintenanceListByUserID(userID) { let list = await this.getMaintenanceJSONList(userID); this.io.to(userID).emit("maintenanceList", list); @@ -185,6 +196,11 @@ class UptimeKumaServer { errorLogStream.end(); } + /** + * Get the IP of the client connected to the socket + * @param {Socket} socket + * @returns {string} + */ async getClientIP(socket) { let clientIP = socket.client.conn.remoteAddress; @@ -203,6 +219,12 @@ class UptimeKumaServer { } } + /** + * Attempt to get the current server timezone + * If this fails, fall back to environment variables and then make a + * guess. + * @returns {string} + */ async getTimezone() { let timezone = await Settings.get("serverTimezone"); if (timezone) { @@ -214,16 +236,25 @@ class UptimeKumaServer { } } + /** + * Get the current offset + * @returns {string} + */ getTimezoneOffset() { return dayjs().format("Z"); } + /** + * Set the current server timezone and environment variables + * @param {string} timezone + */ async setTimezone(timezone) { await Settings.set("serverTimezone", timezone, "general"); process.env.TZ = timezone; dayjs.tz.setDefault(timezone); } + /** Load the timeslots for maintenance */ async generateMaintenanceTimeslots() { let list = await R.find("maintenance_timeslot", " generated_next = 0 AND start_date <= DATETIME('now') "); @@ -237,6 +268,7 @@ class UptimeKumaServer { } + /** Stop the server */ async stop() { clearTimeout(this.generateMaintenanceTimeslotsInterval); } diff --git a/server/util-server.js b/server/util-server.js index a0ed03d71..4519b0837 100644 --- a/server/util-server.js +++ b/server/util-server.js @@ -105,7 +105,7 @@ exports.pingAsync = function (hostname, ipv6 = false) { ping.promise.probe(hostname, { v6: ipv6, min_reply: 1, - timeout: 10, + deadline: 10, }).then((res) => { // If ping failed, it will set field to unknown if (res.alive) { @@ -137,7 +137,7 @@ exports.mqttAsync = function (hostname, topic, okMessage, options = {}) { const { port, username, password, interval = 20 } = options; // Adds MQTT protocol to the hostname if not already present - if (!/^(?:http|mqtt)s?:\/\//.test(hostname)) { + if (!/^(?:http|mqtt|ws)s?:\/\//.test(hostname)) { hostname = "mqtt://" + hostname; } @@ -147,10 +147,11 @@ exports.mqttAsync = function (hostname, topic, okMessage, options = {}) { reject(new Error("Timeout")); }, interval * 1000 * 0.8); - log.debug("mqtt", "MQTT connecting"); + const mqttUrl = `${hostname}:${port}`; - let client = mqtt.connect(hostname, { - port, + log.debug("mqtt", `MQTT connecting to ${mqttUrl}`); + + let client = mqtt.connect(mqttUrl, { username, password }); @@ -282,18 +283,23 @@ exports.postgresQuery = function (connectionString, query) { const client = new Client({ connectionString }); - client.connect(); - - return client.query(query) - .then(res => { - resolve(res); - }) - .catch(err => { + client.connect((err) => { + if (err) { reject(err); - }) - .finally(() => { client.end(); - }); + } else { + // Connected here + client.query(query, (err, res) => { + if (err) { + reject(err); + } else { + resolve(res); + } + client.end(); + }); + } + }); + }); }; diff --git a/src/components/DockerHostDialog.vue b/src/components/DockerHostDialog.vue index 193b30128..335e8f2b3 100644 --- a/src/components/DockerHostDialog.vue +++ b/src/components/DockerHostDialog.vue @@ -91,11 +91,16 @@ export default { }, methods: { + /** Confirm deletion of docker host */ deleteConfirm() { this.modal.hide(); this.$refs.confirmDelete.show(); }, + /** + * Show specified docker host + * @param {number} dockerHostID + */ show(dockerHostID) { if (dockerHostID) { let found = false; @@ -126,6 +131,7 @@ export default { this.modal.show(); }, + /** Add docker host */ submit() { this.processing = true; this.$root.getSocket().emit("addDockerHost", this.dockerHost, this.id, (res) => { @@ -144,6 +150,7 @@ export default { }); }, + /** Test the docker host */ test() { this.processing = true; this.$root.getSocket().emit("testDockerHost", this.dockerHost, (res) => { @@ -152,6 +159,7 @@ export default { }); }, + /** Delete this docker host */ deleteDockerHost() { this.processing = true; this.$root.getSocket().emit("deleteDockerHost", this.id, (res) => { diff --git a/src/components/TagEditDialog.vue b/src/components/TagEditDialog.vue index 2f6afbed4..80ca32bb9 100644 --- a/src/components/TagEditDialog.vue +++ b/src/components/TagEditDialog.vue @@ -16,7 +16,7 @@
- +
diff --git a/src/components/notifications/Telegram.vue b/src/components/notifications/Telegram.vue index 9daf31ac6..723bd1be6 100644 --- a/src/components/notifications/Telegram.vue +++ b/src/components/notifications/Telegram.vue @@ -42,6 +42,11 @@ export default { HiddenInput, }, methods: { + /** + * Get the URL for telegram updates + * @param {string} [mode=masked] Should the token be masked? + * @returns {string} formatted URL + */ telegramGetUpdatesURL(mode = "masked") { let token = `<${this.$t("YOUR BOT TOKEN HERE")}>`; @@ -55,6 +60,8 @@ export default { return `https://api.telegram.org/bot${token}/getUpdates`; }, + + /** Get the telegram chat ID */ async autoGetTelegramChatID() { try { let res = await axios.get(this.telegramGetUpdatesURL("withToken")); diff --git a/src/components/notifications/index.js b/src/components/notifications/index.js index 810cdf03e..3c8b26210 100644 --- a/src/components/notifications/index.js +++ b/src/components/notifications/index.js @@ -44,6 +44,7 @@ import Webhook from "./Webhook.vue"; import WeCom from "./WeCom.vue"; import GoAlert from "./GoAlert.vue"; import ZohoCliq from "./ZohoCliq.vue"; +import Splunk from "./Splunk.vue"; /** * Manage all notification form. @@ -92,6 +93,7 @@ const NotificationFormList = { "stackfield": Stackfield, "teams": Teams, "telegram": Telegram, + "Splunk": Splunk, "webhook": Webhook, "WeCom": WeCom, "GoAlert": GoAlert, diff --git a/src/components/settings/Security.vue b/src/components/settings/Security.vue index 330fe9ca5..7d13ea90e 100644 --- a/src/components/settings/Security.vue +++ b/src/components/settings/Security.vue @@ -191,6 +191,7 @@ export default { location.reload(); }, + /** Show confirmation dialog for disable auth */ confirmDisableAuth() { this.$refs.confirmDisableAuth.show(); }, diff --git a/src/i18n.js b/src/i18n.js index 0a6874b60..b8f1a1926 100644 --- a/src/i18n.js +++ b/src/i18n.js @@ -2,6 +2,7 @@ import { createI18n } from "vue-i18n/dist/vue-i18n.esm-browser.prod.js"; import en from "./lang/en.json"; const languageList = { + "ar-SY": "العربية", "cs-CZ": "Čeština", "zh-HK": "繁體中文 (香港)", "bg-BG": "Български", @@ -48,7 +49,7 @@ for (let lang in languageList) { }; } -const rtlLangs = [ "fa" ]; +const rtlLangs = [ "fa", "ar-SY" ]; export const currentLocale = () => localStorage.locale || languageList[navigator.language] && navigator.language diff --git a/src/icon.js b/src/icon.js index b38bef3ce..6cc997bbd 100644 --- a/src/icon.js +++ b/src/icon.js @@ -44,6 +44,7 @@ import { faWrench, faHeartbeat, faFilter, + faInfoCircle, } from "@fortawesome/free-solid-svg-icons"; library.add( @@ -88,6 +89,7 @@ library.add( faWrench, faHeartbeat, faFilter, + faInfoCircle, ); export { FontAwesomeIcon }; diff --git a/src/languages/ar-SY.js b/src/languages/ar-SY.js new file mode 100644 index 000000000..8c6bcf9d8 --- /dev/null +++ b/src/languages/ar-SY.js @@ -0,0 +1,684 @@ +export default { + languageName: "العربية", + checkEverySecond: "تحقق من كل {0} ثانية", + retryCheckEverySecond: "أعد محاولة كل {0} ثانية", + resendEveryXTimes: "إعادة تقديم كل {0} مرات", + resendDisabled: "إعادة الالتزام بالتعطيل", + retriesDescription: "الحد الأقصى لإعادة المحاولة قبل تمييز الخدمة على أنها لأسفل وإرسال إشعار", + ignoreTLSError: "تجاهل خطأ TLS/SSL لمواقع HTTPS", + upsideDownModeDescription: "اقلب الحالة رأسًا على عقب. إذا كانت الخدمة قابلة للوصول إلى أسفل.", + maxRedirectDescription: "الحد الأقصى لعدد إعادة التوجيه لمتابعة. ضبط على 0 لتعطيل إعادة التوجيه.", + enableGRPCTls: "السماح لإرسال طلب GRPC مع اتصال TLS", + grpcMethodDescription: "يتم تحويل اسم الطريقة إلى تنسيق Cammelcase مثل Sayhello Check وما إلى ذلك.", + acceptedStatusCodesDescription: "حدد رموز الحالة التي تعتبر استجابة ناجحة.", + Maintenance: "صيانة", + statusMaintenance: "صيانة", + "Schedule maintenance": "جدولة الصيانة", + "Affected Monitors": "الشاشات المتأثرة", + "Pick Affected Monitors...": "اختيار الشاشات المتأثرة ...", + "Start of maintenance": "بداية الصيانة", + "All Status Pages": "جميع صفحات الحالة", + "Select status pages...": "حدد صفحات الحالة ...", + recurringIntervalMessage: "ركض مرة واحدة كل يوم | قم بالتشغيل مرة واحدة كل يوم {0}", + affectedMonitorsDescription: "حدد المراقبين المتأثرة بالصيانة الحالية", + affectedStatusPages: "إظهار رسالة الصيانة هذه على صفحات الحالة المحددة", + atLeastOneMonitor: "حدد شاشة واحدة على الأقل من المتأثرين", + passwordNotMatchMsg: "كلمة المرور المتكررة لا تتطابق.", + notificationDescription: "يجب تعيين الإخطارات إلى شاشة للعمل.", + keywordDescription: "ابحث في الكلمة الرئيسية في استجابة HTML العادية أو JSON. البحث حساس للحالة.", + pauseDashboardHome: "وقفة", + deleteMonitorMsg: "هل أنت متأكد من حذف هذا الشاشة؟", + deleteMaintenanceMsg: "هل أنت متأكد من حذف هذه الصيانة؟", + deleteNotificationMsg: "هل أنت متأكد من حذف هذا الإشعار لجميع الشاشات؟", + dnsPortDescription: "منفذ خادم DNS. الافتراضيات إلى 53. يمكنك تغيير المنفذ في أي وقت.", + resolverserverDescription: "CloudFlare هو الخادم الافتراضي. يمكنك تغيير خادم المحوّل في أي وقت.", + rrtypeDescription: "حدد نوع RR الذي تريد مراقبته", + pauseMonitorMsg: "هل أنت متأكد من أن تتوقف مؤقتًا؟", + enableDefaultNotificationDescription: "سيتم تمكين هذا الإشعار افتراضيًا للشاشات الجديدة. لا يزال بإمكانك تعطيل الإخطار بشكل منفصل لكل شاشة.", + clearEventsMsg: "هل أنت متأكد من حذف جميع الأحداث لهذا الشاشة؟", + clearHeartbeatsMsg: "هل أنت متأكد من حذف جميع دقات القلب لهذا الشاشة؟", + confirmClearStatisticsMsg: "هل أنت متأكد من أنك تريد حذف جميع الإحصائيات؟", + importHandleDescription: "اختر 'تخطي موجود' إذا كنت تريد تخطي كل شاشة أو إشعار بنفس الاسم. 'الكتابة فوق' سوف يحذف كل شاشة وإخطار موجود.", + confirmImportMsg: "هل أنت متأكد من أنك تريد استيراد النسخ الاحتياطي؟ يرجى التحقق من أنك حددت خيار الاستيراد الصحيح.", + twoFAVerifyLabel: "الرجاء إدخال الرمز المميز الخاص بك للتحقق من 2FA", + tokenValidSettingsMsg: "الرمز المميز صالح! يمكنك الآن حفظ إعدادات 2FA.", + confirmEnableTwoFAMsg: "هل أنت متأكد من أنك تريد تمكين 2FA؟", + confirmDisableTwoFAMsg: "هل أنت متأكد من أنك تريد تعطيل 2FA؟", + Settings: "إعدادات", + Dashboard: "لوحة التحكم", + "New Update": "تحديث جديد", + Language: "لغة", + Appearance: "مظهر", + Theme: "سمة", + General: "عام", + "Primary Base URL": "عنوان URL الأساسي", + Version: "الإصدار", + "Check Update On GitHub": "تحقق من التحديث على GitHub", + List: "قائمة", + Add: "يضيف", + "Add New Monitor": "أضف شاشة جديدة", + "Quick Stats": "إحصائيات سريعة", + Up: "فوق", + Down: "أسفل", + Pending: "قيد الانتظار", + Unknown: "غير معرّف", + Pause: "إيقاف مؤقت", + Name: "الاسم", + Status: "الحالة", + DateTime: "الوقت والتاريخ", + Message: "الرسالة", + "No important events": "لا توجد أحداث مهمة", + Resume: "استمرار", + Edit: "تعديل", + Delete: "حذف", + Current: "حالي", + Uptime: "مدة التشغيل", + "Cert Exp.": "تصدير الشهادة", + Monitor: "مراقب | مراقبات", + day: "يوم | أيام", + "-day": "-يوم", + hour: "ساعة", + "-hour": "-ساعة", + Response: "استجاية", + Ping: "بينغ", + "Monitor Type": "نوع المراقب", + Keyword: "كلمة مفتاحية", + "Friendly Name": "اسم معروف", + URL: "عنوان URL", + Hostname: "اسم المضيف", + Port: "المنفذ", + "Heartbeat Interval": "فاصل نبضات القلب", + Retries: "يحاول مجدداً", + "Heartbeat Retry Interval": "الفاصل الزمني لإعادة محاكمة نبضات القلب", + "Resend Notification if Down X times consequently": "إعادة تقديم الإخطار إذا انخفض x مرات بالتالي", + Advanced: "متقدم", + "Upside Down Mode": "وضع أسفل أسفل", + "Max. Redirects": "الأعلى. إعادة التوجيه", + "Accepted Status Codes": "رموز الحالة المقبولة", + "Push URL": "دفع عنوان URL", + needPushEvery: "يجب عليك استدعاء عنوان URL هذا كل ثانية.", + pushOptionalParams: "المعلمات الاختيارية", + Save: "يحفظ", + Notifications: "إشعارات", + "Not available, please setup.": "غير متوفر من فضلك الإعداد.", + "Setup Notification": "إشعار الإعداد", + Light: "نور", + Dark: "داكن", + Auto: "آلي", + "Theme - Heartbeat Bar": "موضوع - بار نبضات", + Normal: "طبيعي", + Bottom: "الأسفل", + None: "لا أحد", + Timezone: "وحدة زمنية", + "Search Engine Visibility": "محرك بحث الرؤية", + "Allow indexing": "السماح الفهرسة", + "Discourage search engines from indexing site": "تثبيط محركات البحث من موقع الفهرسة", + "Change Password": "غير كلمة السر", + "Current Password": "كلمة المرور الحالي", + "New Password": "كلمة سر جديدة", + "Repeat New Password": "كرر كلمة المرور الجديدة", + "Update Password": "تطوير كلمة السر", + "Disable Auth": "تعطيل المصادقة", + "Enable Auth": "تمكين المصادقة", + "disableauth.message1": "هل أنت متأكد من أن تعطيل المصادقة ؟", + "disableauth.message2": "تم تصميمه للسيناريوهات حيث تنوي تنفيذ مصادقة الطرف الثالث أمام كوما في وقت التشغيل مثل CloudFlare Access Authelia أو آليات المصادقة الأخرى.", + "Please use this option carefully!": "الرجاء استخدام هذا الخيار بعناية!", + Logout: "تسجيل خروج", + Leave: "غادر", + "I understand, please disable": "أنا أفهم من فضلك تعطيل", + Confirm: "يتأكد", + Yes: "نعم", + No: "رقم", + Username: "اسم المستخدم", + Password: "كلمة المرور", + "Remember me": "تذكرنى", + Login: "تسجيل الدخول", + "No Monitors, please": "لا شاشات من فضلك", + "add one": "أضف واحدا", + "Notification Type": "نوع إعلام", + Email: "بريد إلكتروني", + Test: "امتحان", + "Certificate Info": "معلومات الشهادة", + "Resolver Server": "خادم Resolver", + "Resource Record Type": "نوع سجل الموارد", + "Last Result": "اخر نتيجة", + "Create your admin account": "إنشاء حساب المسؤول الخاص بك", + "Repeat Password": "اعد كلمة السر", + "Import Backup": "استيراد النسخ الاحتياطي", + "Export Backup": "النسخ الاحتياطي تصدير", + Export: "يصدّر", + Import: "يستورد", + respTime: "resp. الوقت (MS)", + notAvailableShort: "ن/أ", + "Default enabled": "التمكين الافتراضي", + "Apply on all existing monitors": "تنطبق على جميع الشاشات الحالية", + Create: "خلق", + "Clear Data": "امسح البيانات", + Events: "الأحداث", + Heartbeats: "نبضات القلب", + "Auto Get": "الحصول على السيارات", + backupDescription: "يمكنك النسخ الاحتياطي لجميع الشاشات والإشعارات في ملف JSON.", + backupDescription2: "ملحوظة", + backupDescription3: "يتم تضمين البيانات الحساسة مثل الرموز الإخطار في ملف التصدير ؛ يرجى تخزين التصدير بشكل آمن.", + alertNoFile: "الرجاء تحديد ملف للاستيراد.", + alertWrongFileType: "الرجاء تحديد ملف JSON.", + "Clear all statistics": "مسح جميع الإحصاءات", + "Skip existing": "تخطي الموجود", + Overwrite: "الكتابة فوق", + Options: "خيارات", + "Keep both": "احتفظ بكليهما", + "Verify Token": "تحقق من الرمز المميز", + "Setup 2FA": "الإعداد 2FA", + "Enable 2FA": "تمكين 2FA", + "Disable 2FA": "تعطيل 2FA", + "2FA Settings": "2FA إعدادات", + "Two Factor Authentication": "توثيق ذو عاملين", + Active: "نشيط", + Inactive: "غير نشط", + Token: "رمز", + "Show URI": "أظهر URI", + Tags: "العلامات", + "Add New below or Select...": "أضف جديدًا أدناه أو حدد ...", + "Tag with this name already exist.": "علامة مع هذا الاسم موجود بالفعل.", + "Tag with this value already exist.": "علامة مع هذه القيمة موجودة بالفعل.", + color: "اللون", + "value (optional)": "القيمة (اختياري)", + Gray: "رمادي", + Red: "أحمر", + Orange: "البرتقالي", + Green: "لون أخضر", + Blue: "أزرق", + Indigo: "النيلي", + Purple: "نفسجي", + Pink: "لون القرنفل", + Custom: "العادة", + "Search...": "يبحث...", + "Avg. Ping": "متوسط. بينغ", + "Avg. Response": "متوسط. إجابة", + "Entry Page": "صفحة الدخول", + statusPageNothing: "لا شيء هنا الرجاء إضافة مجموعة أو شاشة.", + "No Services": "لا توجد خدمات", + "All Systems Operational": "جميع الأنظمة التشغيلية", + "Partially Degraded Service": "الخدمة المتدهورة جزئيا", + "Degraded Service": "خدمة متدهورة", + "Add Group": "أضف مجموعة", + "Add a monitor": "إضافة شاشة", + "Edit Status Page": "تحرير صفحة الحالة", + "Go to Dashboard": "الذهاب إلى لوحة القيادة", + "Status Page": "صفحة الحالة", + "Status Pages": "صفحات الحالة", + defaultNotificationName: "تنبيه {الإخطار} ({number})", + here: "هنا", + Required: "مطلوب", + telegram: "برقية", + "ZohoCliq": "Zohocliq", + "Bot Token": "رمز الروبوت", + wayToGetTelegramToken: "يمكنك الحصول على رمز من {0}.", + "Chat ID": "معرف الدردشة", + supportTelegramChatID: "دعم الدردشة المباشرة / معرف الدردشة للقناة", + wayToGetTelegramChatID: "يمكنك الحصول على معرف الدردشة الخاص بك عن طريق إرسال رسالة إلى الروبوت والانتقال إلى عنوان URL هذا لعرض Chat_id", + "YOUR BOT TOKEN HERE": "رمز الروبوت الخاص بك هنا", + chatIDNotFound: "لم يتم العثور على معرف الدردشة ؛ الرجاء إرسال رسالة إلى هذا الروبوت أولاً", + webhook: "webhook", + "Post URL": "بعد عنوان URL", + "Content Type": "نوع المحتوى", + webhookJsonDesc: "{0} مفيد لأي خوادم HTTP الحديثة مثل Express.js", + webhookFormDataDesc: "{multipart} مفيد لـ PHP. سيحتاج JSON إلى تحليل {decodefunction}", + webhookAdditionalHeadersTitle: "رؤوس إضافية", + webhookAdditionalHeadersDesc: "يحدد رؤوس إضافية مرسلة مع webhook.", + smtp: "البريد الإلكتروني (SMTP)", + secureOptionNone: "لا شيء / startTls (25 587)", + secureOptionTLS: "TLS (465)", + "Ignore TLS Error": "تجاهل خطأ TLS", + "From Email": "من البريد الإلكترونى", + emailCustomSubject: "موضوع مخصص", + "To Email": "للبريد الإلكتروني", + smtpCC: "نسخة", + smtpBCC: "BCC", + discord: "خلاف", + "Discord Webhook URL": "Discord Webhook URL", + wayToGetDiscordURL: "يمكنك الحصول على هذا عن طريق الانتقال إلى إعدادات الخادم -> التكامل -> إنشاء WebHook", + "Bot Display Name": "اسم عرض الروبوت", + "Prefix Custom Message": "بادئة رسالة مخصصة", + "Hello @everyone is...": "مرحبًا {'@'} الجميع ...", + teams: "فرق Microsoft", + "Webhook URL": "Webhook URL", + wayToGetTeamsURL: "يمكنك معرفة كيفية إنشاء عنوان URL webhook {0}.", + wayToGetZohoCliqURL: "يمكنك معرفة كيفية إنشاء عنوان URL webhook {0}.", + signal: "الإشارة", + Number: "رقم", + Recipients: "المستلمين", + needSignalAPI: "تحتاج إلى وجود عميل إشارة مع REST API.", + wayToCheckSignalURL: "يمكنك التحقق من عنوان URL هذا لعرض كيفية إعداد واحد", + signalImportant: "مهم", + gotify: "gotify", + "Application Token": "رمز التطبيق", + "Server URL": "عنوان URL الخادم", + Priority: "أولوية", + slack: "تثاقل", + "Icon Emoji": "أيقونة الرموز التعبيرية", + "Channel Name": "اسم القناة", + "Uptime Kuma URL": "UPTIME KUMA URL", + aboutWebhooks: "مزيد من المعلومات حول Webhooks ON", + aboutChannelName: "أدخل اسم القناة في حقل اسم القناة {0} إذا كنت تريد تجاوز قناة WebHook. السابق", + aboutKumaURL: "إذا تركت حقل URL في وقت التشغيل KUMA فارغًا ، فسيتم افتراضيًا إلى صفحة GitHub Project.", + emojiCheatSheet: "ورقة الغش في الرموز التعبيرية", + "rocket.chat": "صاروخ", + pushover: "مهمة سهلة", + pushy: "انتهازي", + PushByTechulus: "دفع بواسطة Techulus", + octopush: "أوكتوبوش", + promosms: "الترويجيات", + clicksendsms: "نقرات SMS", + lunasea: "لوناسيا", + apprise: "إبلاغ (دعم 50+ خدمات الإخطار)", + GoogleChat: "دردشة Google", + pushbullet: "حماس", + Kook: "كووك", + wayToGetKookBotToken: "قم بإنشاء تطبيق واحصل على رمز الروبوت الخاص بك على {0}", + wayToGetKookGuildID: "قم بتشغيل 'وضع المطور' في إعداد Kook وانقر بزر الماوس الأيمن على النقابة للحصول على معرفه", + "Guild ID": "معرف النقابة", + line: "خط", + mattermost: "المادة", + "User Key": "مفتاح المستخدم", + Device: "جهاز", + "Message Title": "عنوان الرسالة", + "Notification Sound": "صوت الإشعار", + "More info on": "مزيد من المعلومات حول", + pushoverDesc1: "أولوية الطوارئ (2) لها مهلة افتراضية 30 ثانية بين إعادة المحاولة وستنتهي صلاحيتها بعد ساعة واحدة.", + pushoverDesc2: "إذا كنت ترغب في إرسال إشعارات إلى أجهزة مختلفة ، قم بملء حقل الجهاز.", + "SMS Type": "نوع الرسائل القصيرة", + octopushTypePremium: "قسط (سريع - موصى به للتنبيه)", + octopushTypeLowCost: "التكلفة المنخفضة (بطيئة - تم حظرها أحيانًا بواسطة المشغل)", + checkPrice: "تحقق من الأسعار {0}", + apiCredentials: "بيانات اعتماد API", + octopushLegacyHint: "هل تستخدم الإصدار القديم من Octopush (2011-2020) أو الإصدار الجديد؟", + "Check octopush prices": "تحقق من أسعار Octopush {0}.", + octopushPhoneNumber: "رقم الهاتف (تنسيق intl على سبيل المثال", + octopushSMSSender: "اسم مرسل الرسائل القصيرة", + "LunaSea Device ID": "معرف جهاز Lunasea", + "Apprise URL": "إبلاغ عنوان URL", + "Example": "مثال", + "Read more:": "{0} :قراءة المزيد", + "Status:": "{0} :حالة", + "Read more": "قراءة المزيد", + appriseInstalled: "تم تثبيت Prosise.", + appriseNotInstalled: "الإبرام غير مثبت. {0}", + "Access Token": "رمز وصول", + "Channel access token": "قناة الوصول إلى الرمز", + "Line Developers Console": "تحكم المطورين", + lineDevConsoleTo: "وحدة المطورين Line Console - {0}", + "Basic Settings": "الإعدادات الأساسية", + "User ID": "معرف المستخدم", + "Messaging API": "واجهة برمجة تطبيقات المراسلة", + wayToGetLineChannelToken: "قم أولاً بالوصول إلى {0} إنشاء مزود وقناة (واجهة برمجة تطبيقات المراسلة) ، ثم يمكنك الحصول على رمز الوصول إلى القناة ومعرف المستخدم من عناصر القائمة المذكورة أعلاه.", + "Icon URL": "url url icon", + aboutIconURL: "يمكنك توفير رابط لصورة في \"Icon URL\" لتجاوز صورة الملف الشخصي الافتراضي. لن يتم استخدامه إذا تم تعيين رمز رمز رمز.", + aboutMattermostChannelName: "يمكنك تجاوز القناة الافتراضية التي تنشرها WebHook من خلال إدخال اسم القناة في \"Channel Name\" الحقل. يجب تمكين هذا في إعدادات Webhook Mattern. السابق", + matrix: "مصفوفة", + promosmsTypeEco: "SMS Eco - رخيصة ولكن بطيئة وغالبًا ما تكون محملة. يقتصر فقط على المستفيدين البولنديين.", + promosmsTypeFlash: "SMS Flash - سيتم عرض الرسالة تلقائيًا على جهاز المستلم. يقتصر فقط على المستفيدين البولنديين.", + promosmsTypeFull: "SMS Full - Tier Premium SMS يمكنك استخدام اسم المرسل الخاص بك (تحتاج إلى تسجيل الاسم أولاً). موثوقة للتنبيهات.", + promosmsTypeSpeed: "سرعة الرسائل القصيرة - أولوية قصوى في النظام. سريع وموثوق للغاية ولكنه مكلف (حوالي مرتين من الرسائل القصيرة السعر الكامل).", + promosmsPhoneNumber: "رقم الهاتف (للمستلم البولندي ، يمكنك تخطي رموز المنطقة)", + promosmsSMSSender: "اسم مرسل الرسائل القصيرة", + promosmsAllowLongSMS: "السماح الرسائل القصيرة الطويلة", + "Feishu WebHookUrl": "Feishu Webhookurl", + matrixHomeserverURL: "عنوان URL HomeServer (مع HTTP (S)", + "Internal Room Id": "معرف الغرفة الداخلية", + matrixDesc1: "يمكنك العثور على معرف الغرفة الداخلي من خلال البحث في القسم المتقدم من إعدادات الغرفة في عميل Matrix الخاص بك. يجب أن تبدو مثل! QMDRCPUIFLWSFJXYE6", + matrixDesc2: "يوصى بشدة بإنشاء مستخدم جديد ولا تستخدم رمز الوصول إلى مستخدم Matrix الخاص بك لأنه سيتيح الوصول الكامل إلى حسابك وجميع الغرف التي انضمت إليها. بدلاً من ذلك ، قم بإنشاء مستخدم جديد ودعوته فقط إلى الغرفة التي تريد تلقيها الإشعار فيها. يمكنك الحصول على رمز الوصول عن طريق تشغيل {0}", + Method: "طريقة", + Body: "الجسم", + Headers: "الرؤوس", + PushUrl: "دفع عنوان URL", + HeadersInvalidFormat: "رؤوس الطلبات غير صالحة JSON", + BodyInvalidFormat: "هيئة الطلب غير صالحة JSON", + "Monitor History": "مراقبة التاريخ", + clearDataOlderThan: "الحفاظ على بيانات سجل المراقبة للأيام {0}.", + PasswordsDoNotMatch: "كلمة المرور غير مطابقة.", + records: "السجلات", + "One record": "سجل واحد", + steamApiKeyDescription: "لمراقبة خادم لعبة Steam ، تحتاج إلى مفتاح Steam Web-API. يمكنك تسجيل مفتاح API الخاص بك هنا", + "Current User": "المستخدم الحالي", + topic: "عنوان", + topicExplanation: "موضوع MQTT لرصد", + successMessage: "نجاح رسالة", + successMessageExplanation: "رسالة MQTT التي ستعتبر نجاحًا", + recent: "الأخيرة", + Done: "فعله", + Info: "معلومات", + Security: "حماية", + "Steam API Key": "مفتاح API Steam", + "Shrink Database": "تقلص قاعدة البيانات", + "Pick a RR-Type...": "اختر نوع RR ...", + "Pick Accepted Status Codes...": "اختيار رموز الحالة المقبولة ...", + Default: "تقصير", + "HTTP Options": "خيارات HTTP", + "Create Incident": "إنشاء حادث", + Title: "لقب", + Content: "المحتوى", + Style: "أسلوب", + info: "معلومات", + warning: "تحذير", + danger: "خطر", + error: "خطأ", + critical: "شديد الأهمية", + primary: "الأولية", + light: "نور", + dark: "ظلام", + Post: "بريد", + "Please input title and content": "الرجاء إدخال العنوان والمحتوى", + Created: "مخلوق", + "Last Updated": "التحديث الاخير", + Unpin: "إلغاء", + "Switch to Light Theme": "التبديل إلى موضوع الضوء", + "Switch to Dark Theme": "التبديل إلى موضوع الظلام", + "Show Tags": "أضهر العلامات", + "Hide Tags": "إخفاء العلامات", + Description: "وصف", + "No monitors available.": "لا شاشات المتاحة.", + "Add one": "أضف واحدا", + "No Monitors": "لا شاشات", + "Untitled Group": "مجموعة بلا عنوان", + Services: "خدمات", + Discard: "تجاهل", + Cancel: "يلغي", + "Powered by": "مشغل بواسطة", + shrinkDatabaseDescription: "تشغيل فراغ قاعدة البيانات لـ SQLite. إذا تم إنشاء قاعدة البيانات الخاصة بك بعد تمكين 1.10.0 AUTO_VACUUM بالفعل ولا يلزم هذا الإجراء.", + serwersms: "Serwersms.pl", + serwersmsAPIUser: "اسم مستخدم API (بما في ذلك بادئة WebAPI_)", + serwersmsAPIPassword: "كلمة مرور API", + serwersmsPhoneNumber: "رقم الهاتف", + serwersmsSenderName: "اسم مرسل الرسائل القصيرة (مسجل عبر بوابة العملاء)", + smseagle: "smseagle", + smseagleTo: "أرقام الهواتف)", + smseagleGroup: "اسم مجموعة كتب الهاتف (S)", + smseagleContact: "كتاب الاتصال اسم (S)", + smseagleRecipientType: "نوع المستلم", + smseagleRecipient: "المتلقي (المتلقيين) (يجب فصل المتعددة مع فاصلة)", + smseagleToken: "API وصول الرمز المميز", + smseagleUrl: "عنوان URL لجهاز SMSEGLE الخاص بك", + smseagleEncoding: "إرسال Unicode", + smseaglePriority: "أولوية الرسالة (0-9 افتراضي = 0)", + stackfield: "Stackfield", + Customize: "يعدل أو يكيف", + "Custom Footer": "تذييل مخصص", + "Custom CSS": "لغة تنسيق ويب حسب الطلب", + smtpDkimSettings: "إعدادات DKIM", + smtpDkimDesc: "يرجى الرجوع إلى Nodemailer dkim {0} للاستخدام.", + documentation: "توثيق", + smtpDkimDomain: "اسم النطاق", + smtpDkimKeySelector: "المحدد الرئيسي", + smtpDkimPrivateKey: "مفتاح سري", + smtpDkimHashAlgo: "خوارزمية التجزئة (اختياري)", + smtpDkimheaderFieldNames: "مفاتيح الرأس للتوقيع (اختياري)", + smtpDkimskipFields: "مفاتيح الرأس لا توقيع (اختياري)", + wayToGetPagerDutyKey: "يمكنك الحصول على هذا عن طريق الانتقال إلى الخدمة -> دليل الخدمة -> (حدد خدمة) -> تكامل -> إضافة التكامل. هنا يمكنك البحث عن \"Events API V2\". مزيد من المعلومات {0}", + "Integration Key": "مفتاح التكامل", + "Integration URL": "URL تكامل", + "Auto resolve or acknowledged": "حل السيارات أو الاعتراف به", + "do nothing": "لا تفعل شيئا", + "auto acknowledged": "اعترف السيارات", + "auto resolve": "عزم السيارات", + gorush: "جورش", + alerta: "أليتا", + alertaApiEndpoint: "نقطة نهاية API", + alertaEnvironment: "بيئة", + alertaApiKey: "مفتاح API", + alertaAlertState: "حالة التنبيه", + alertaRecoverState: "استعادة الدولة", + deleteStatusPageMsg: "هل أنت متأكد من حذف صفحة الحالة هذه؟", + Proxies: "وكلاء", + default: "تقصير", + enabled: "تمكين", + setAsDefault: "تعيين كافتراضي", + deleteProxyMsg: "هل أنت متأكد من حذف هذا الوكيل لجميع الشاشات؟", + proxyDescription: "يجب تعيين الوكلاء إلى شاشة للعمل.", + enableProxyDescription: "لن يؤثر هذا الوكيل على طلبات الشاشة حتى يتم تنشيطه. يمكنك التحكم مؤقتًا في تعطيل الوكيل من جميع الشاشات حسب حالة التنشيط.", + setAsDefaultProxyDescription: "سيتم تمكين هذا الوكيل افتراضيًا للشاشات الجديدة. لا يزال بإمكانك تعطيل الوكيل بشكل منفصل لكل شاشة.", + "Certificate Chain": "سلسلة الشهادة", + Valid: "صالح", + Invalid: "غير صالح", + AccessKeyId: "معرف AccessKey", + SecretAccessKey: "Accesskey Secret", + PhoneNumbers: "أرقام الهواتف", + TemplateCode: "TemplateCode", + SignName: "اسم تسجيل الدخول", + "Sms template must contain parameters: ": "يجب أن يحتوي قالب الرسائل القصيرة على معلمات:", + "Bark Endpoint": "نقطة نهاية اللحاء", + "Bark Group": "مجموعة اللحاء", + "Bark Sound": "صوت اللحاء", + WebHookUrl: "webhookurl", + SecretKey: "Secretkey", + "For safety, must use secret key": "للسلامة يجب استخدام المفتاح السري", + "Device Token": "رمز الجهاز", + Platform: "منصة", + iOS: "iOS", + Android: "ذكري المظهر", + Huawei: "هواوي", + High: "عالٍ", + Retry: "إعادة المحاولة", + Topic: "عنوان", + "WeCom Bot Key": "WECOM BOT KEY", + "Setup Proxy": "وكيل الإعداد", + "Proxy Protocol": "بروتوكول الوكيل", + "Proxy Server": "مخدم بروكسي", + "Proxy server has authentication": "خادم الوكيل لديه مصادقة", + User: "المستعمل", + Installed: "المثبتة", + "Not installed": "غير مثبت", + Running: "جري", + "Not running": "لا يعمل", + "Remove Token": "إزالة الرمز المميز", + Start: "بداية", + Stop: "قف", + "Uptime Kuma": "وقت التشغيل كوما", + "Add New Status Page": "أضف صفحة حالة جديدة", + Slug: "سبيكة", + "Accept characters": "قبول الشخصيات", + startOrEndWithOnly: "ابدأ أو ينتهي بـ {0} فقط", + "No consecutive dashes": "لا شرطات متتالية", + Next: "التالي", + "The slug is already taken. Please choose another slug.": "تم أخذ سبيكة بالفعل. الرجاء اختيار سبيكة أخرى.", + "No Proxy": "لا الوكيل", + Authentication: "المصادقة", + "HTTP Basic Auth": "HTTP الأساسي Auth", + "New Status Page": "صفحة حالة جديدة", + "Page Not Found": "الصفحة غير موجودة", + "Reverse Proxy": "وكيل عكسي", + Backup: "دعم", + About: "عن", + wayToGetCloudflaredURL: "(قم بتنزيل CloudFlared من {0})", + cloudflareWebsite: "موقع CloudFlare", + "Message:": ":رسالة", + "Don't know how to get the token? Please read the guide": "لا أعرف كيف تحصل على الرمز المميز؟ يرجى قراءة الدليل", + "The current connection may be lost if you are currently connecting via Cloudflare Tunnel. Are you sure want to stop it? Type your current password to confirm it.": "قد يضيع الاتصال الحالي إذا كنت تتصل حاليًا عبر نفق CloudFlare. هل أنت متأكد تريد إيقافها؟ اكتب كلمة المرور الحالية لتأكيدها.", + "HTTP Headers": "رؤوس HTTP", + "Trust Proxy": "الوكيل الثقة", + "Other Software": "برامج أخرى", + "For example: nginx, Apache and Traefik.": "على سبيل المثال: nginx و Apache و Traefik.", + "Please read": "يرجى القراءة", + "Subject": "موضوع", + "Valid To": "صالحة ل", + "Days Remaining": "الأيام المتبقية", + "Issuer": "المصدر", + "Fingerprint": "بصمة", + "No status pages": "لا صفحات الحالة", + "Domain Name Expiry Notification": "اسم النطاق إشعار انتهاء الصلاحية", + Proxy: "الوكيل", + "Date Created": "تاريخ الإنشاء", + HomeAssistant: "مساعد المنزل", + onebotHttpAddress: "OneBot HTTP عنوان", + onebotMessageType: "نوع رسالة OneBot", + onebotGroupMessage: "مجموعة", + onebotPrivateMessage: "خاص", + onebotUserOrGroupId: "معرف المجموعة/المستخدم", + onebotSafetyTips: "للسلامة يجب ضبط الرمز المميز للوصول", + "PushDeer Key": "مفتاح PushDeer", + "Footer Text": "نص تذييل", + "Show Powered By": "عرض مدعوم من قبل", + "Domain Names": "أسماء المجال", + signedInDisp: "وقعت في {0}", + signedInDispDisabled: "معاق المصادقة.", + RadiusSecret: "سر نصف القطر", + RadiusSecretDescription: "السر المشترك بين العميل والخادم", + RadiusCalledStationId: "يسمى معرف المحطة", + RadiusCalledStationIdDescription: "معرف الجهاز المتصل", + RadiusCallingStationId: "معرف محطة الاتصال", + RadiusCallingStationIdDescription: "معرف جهاز الاتصال", + "Certificate Expiry Notification": "إشعار انتهاء الصلاحية", + "API Username": "اسم المستخدم API", + "API Key": "مفتاح API", + "Recipient Number": "رقم المستلم", + "From Name/Number": "من الاسم/الرقم", + "Leave blank to use a shared sender number.": "اترك فارغًا لاستخدام رقم المرسل المشترك.", + "Octopush API Version": "إصدار Octopush API", + "Legacy Octopush-DM": "Legacy Octopush-DM", + endpoint: "نقطة النهاية", + octopushAPIKey: "\"API key\" from HTTP API بيانات اعتماد في لوحة التحكم", + octopushLogin: "\"Login\" من بيانات اعتماد API HTTP في لوحة التحكم", + promosmsLogin: "اسم تسجيل الدخول API", + promosmsPassword: "كلمة مرور API", + "pushoversounds pushover": "سداد (افتراضي)", + "pushoversounds bike": "دراجة هوائية", + "pushoversounds bugle": "بوق", + "pushoversounds cashregister": "ماكينة تسجيل المدفوعات النقدية", + "pushoversounds classical": "كلاسيكي", + "pushoversounds cosmic": "كونية", + "pushoversounds falling": "هبوط", + "pushoversounds gamelan": "Gamelan", + "pushoversounds incoming": "واردة", + "pushoversounds intermission": "استراحة", + "pushoversounds magic": "سحر", + "pushoversounds mechanical": "ميكانيكي", + "pushoversounds pianobar": "شريط البيانو", + "pushoversounds siren": "صفارة إنذار", + "pushoversounds spacealarm": "إنذار الفضاء", + "pushoversounds tugboat": "قارب السحب", + "pushoversounds alien": "إنذار أجنبي (طويل)", + "pushoversounds climb": "تسلق (طويل)", + "pushoversounds persistent": "مستمر (طويل)", + "pushoversounds echo": "صدى مهووس (طويل)", + "pushoversounds updown": "صعودا (طويلة)", + "pushoversounds vibrate": "يهتز فقط", + "pushoversounds none": "لا شيء (صامت)", + pushyAPIKey: "مفتاح API السري", + pushyToken: "رمز الجهاز", + "Show update if available": "عرض التحديث إذا كان ذلك متاحًا", + "Also check beta release": "تحقق أيضًا من الإصدار التجريبي", + "Using a Reverse Proxy?": "باستخدام وكيل عكسي؟", + "Check how to config it for WebSocket": "تحقق من كيفية تكوينه لـ WebSocket", + "Steam Game Server": "خادم لعبة البخار", + "Most likely causes": "الأسباب المرجحة", + "The resource is no longer available.": "لم يعد المورد متاحًا.", + "There might be a typing error in the address.": "قد يكون هناك خطأ مطبعي في العنوان.", + "What you can try": "ماذا تستطيع أن تجرب", + "Retype the address.": "اعد كتابة العنوان.", + "Go back to the previous page.": "عد للصفحة السابقة.", + "Coming Soon": "قريبا", + wayToGetClickSendSMSToken: "يمكنك الحصول على اسم مستخدم API ومفتاح API من {0}.", + "Connection String": "سلسلة الاتصال", + Query: "استفسار", + settingsCertificateExpiry: "شهادة TLS انتهاء الصلاحية", + certificationExpiryDescription: "شاشات HTTPS تضيء عندما تنتهي شهادة TLS في", + "Setup Docker Host": "إعداد مضيف Docker", + "Connection Type": "نوع الاتصال", + "Docker Daemon": "Docker Daemon", + deleteDockerHostMsg: "هل أنت متأكد من حذف مضيف Docker لجميع الشاشات؟", + socket: "قابس كهرباء", + tcp: "TCP / HTTP", + "Docker Container": "حاوية Docker", + "Container Name / ID": "اسم الحاوية / معرف", + "Docker Host": "مضيف Docker", + "Docker Hosts": "مضيفي Docker", + "ntfy Topic": "موضوع ntfy", + Domain: "اِختِصاص", + Workstation: "محطة العمل", + disableCloudflaredNoAuthMsg: "أنت في وضع مصادقة لا توجد كلمة مرور غير مطلوبة.", + trustProxyDescription: "الثقة 'x-forward-*'. إذا كنت ترغب في الحصول على IP العميل الصحيح وكوما في الوقت المناسب مثل Nginx أو Apache ، فيجب عليك تمكين ذلك.", + wayToGetLineNotifyToken: "يمكنك الحصول على رمز الوصول من {0}", + Examples: "أمثلة", + "Home Assistant URL": "Home Assistant URL", + "Long-Lived Access Token": "الرمز المميز للوصول منذ فترة طويلة", + "Long-Lived Access Token can be created by clicking on your profile name (bottom left) and scrolling to the bottom then click Create Token. ": "يمكن إنشاء رمز الوصول منذ فترة طويلة عن طريق النقر على اسم ملف التعريف الخاص بك (أسفل اليسار) والتمرير إلى الأسفل ثم انقر فوق إنشاء الرمز المميز.", + "Notification Service": "خدمة الإخطار", + "default: notify all devices": "الافتراضي: إخطار جميع الأجهزة", + "A list of Notification Services can be found in Home Assistant under \"Developer Tools > Services\" search for \"notification\" to find your device/phone name.": "يمكن العثور على قائمة بخدمات الإخطار في المساعد المنزلي ضمن \"Developer Tools > Services\" ابحث عن \"notification\" للعثور على اسم جهازك/هاتفك.", + "Automations can optionally be triggered in Home Assistant": "يمكن أن يتم تشغيل الأتمتة اختياريًا في مساعد المنزل", + "Trigger type": "نوع الزناد", + "Event type": "نوع الحدث", + "Event data": "بيانات الحدث", + "Then choose an action, for example switch the scene to where an RGB light is red.": "ثم اختر إجراءً على سبيل المثال قم بتبديل المشهد إلى حيث يكون ضوء RGB أحمر.", + "Frontend Version": "إصدار الواجهة الأمامية", + "Frontend Version do not match backend version!": "إصدار Frontend لا يتطابق مع الإصدار الخلفي!", + "Base URL": "عنوان URL الأساسي", + goAlertInfo: "الهدف هو تطبيق مفتوح المصدر لجدولة الجدولة التلقائية والإشعارات (مثل الرسائل القصيرة أو المكالمات الصوتية). إشراك الشخص المناسب تلقائيًا بالطريقة الصحيحة وفي الوقت المناسب! {0}", + goAlertIntegrationKeyInfo: "احصل على مفتاح تكامل API العام للخدمة في هذا التنسيق \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\" عادةً قيمة المعلمة الرمزية لعنوان url المنسق.", + goAlert: "المرمى", + backupOutdatedWarning: "إهمال", + backupRecommend: "يرجى النسخ الاحتياطي لحجم الصوت أو مجلد البيانات (./data/) مباشرة بدلاً من ذلك.", + Optional: "اختياري", + squadcast: "القاء فريقي", + SendKey: "Sendkey", + "SMSManager API Docs": "مستندات SMSManager API", + "Gateway Type": "نوع البوابة", + SMSManager: "smsmanager", + "You can divide numbers with": "يمكنك تقسيم الأرقام مع", + or: "أو", + recurringInterval: "فترة", + Recurring: "يتكرر", + strategyManual: "نشط/غير نشط يدويًا", + warningTimezone: "إنه يستخدم المنطقة الزمنية للخادم", + weekdayShortMon: "الاثنين", + weekdayShortTue: "الثلاثاء", + weekdayShortWed: "تزوج", + weekdayShortThu: "الخميس", + weekdayShortFri: "الجمعة", + weekdayShortSat: "جلس", + weekdayShortSun: "شمس", + dayOfWeek: "يوم من الأسبوع", + dayOfMonth: "يوم من الشهر", + lastDay: "بالأمس", + lastDay1: "آخر يوم من الشهر", + lastDay2: "الثاني في اليوم الأخير من الشهر", + lastDay3: "الثالث في اليوم الأخير من الشهر", + lastDay4: "الرابع في اليوم الأخير من الشهر", + "No Maintenance": "لا صيانة", + pauseMaintenanceMsg: "هل أنت متأكد من أن تتوقف مؤقتًا؟", + "maintenanceStatus-under-maintenance": "تحت الصيانة", + "maintenanceStatus-inactive": "غير نشط", + "maintenanceStatus-scheduled": "المقرر", + "maintenanceStatus-ended": "انتهى", + "maintenanceStatus-unknown": "مجهول", + "Display Timezone": "عرض المنطقة الزمنية", + "Server Timezone": "المنطقة الزمنية الخادم", + statusPageMaintenanceEndDate: "نهاية", + IconUrl: "url url icon", + "Enable DNS Cache": "تمكين ذاكرة التخزين المؤقت DNS", + Enable: "يُمكَِن", + Disable: "إبطال", + dnsCacheDescription: "قد لا يعمل في بعض بيئات IPv6 تعطيله إذا واجهت أي مشكلات.", + "Single Maintenance Window": "نافذة صيانة واحدة", + "Maintenance Time Window of a Day": "نافذة وقت الصيانة لليوم", + "Effective Date Range": "نطاق التاريخ السريع", + "Schedule Maintenance": "جدولة الصيانة", + "Date and Time": "التاريخ و الوقت", + "DateTime Range": "نطاق DateTime", + Strategy: "إستراتيجية", + "Free Mobile User Identifier": "معرف مستخدم الهاتف المحمول المجاني", + "Free Mobile API Key": "مفتاح واجهة برمجة تطبيقات مجانية للهاتف المحمول", + "Enable TLS": "تمكين TLS", + "Proto Service Name": "اسم خدمة البروتو", + "Proto Method": "طريقة البروتو", + "Proto Content": "محتوى proto", + Economy: "اقتصاد", + Lowcost: "تكلفة منخفضة", + high: "عالي", + "General Monitor Type": "نوع الشاشة العامة", + "Passive Monitor Type": "نوع الشاشة السلبي", + "Specific Monitor Type": "نوع شاشة محدد", + dataRetentionTimeError: "يجب أن تكون فترة الاستبقاء 0 أو أكبر", + infiniteRetention: "ضبط على 0 للاحتفاظ لا نهائي.", + confirmDeleteTagMsg: "هل أنت متأكد من أنك تريد حذف هذه العلامة؟ لن يتم حذف الشاشات المرتبطة بهذه العلامة.", +}; diff --git a/src/languages/cs-CZ.js b/src/languages/cs-CZ.js index 3396e97b9..04fb24c80 100644 --- a/src/languages/cs-CZ.js +++ b/src/languages/cs-CZ.js @@ -8,12 +8,27 @@ export default { ignoreTLSError: "Ignorovat TLS/SSL chyby na HTTPS stránkách", upsideDownModeDescription: "Pomocí této možnosti změníte způsob vyhodnocování stavu. Pokud je služba dosažitelná, je NEDOSTUPNÁ.", maxRedirectDescription: "Maximální počet přesměrování, která se mají následovat. Nastavením hodnoty 0 zakážete přesměrování.", + enableGRPCTls: "Umožnit odeslání gRPC žádosti během TLS spojení", + grpcMethodDescription: "Název metody se převede do cammelCase formátu jako je sayHello, check, aj.", acceptedStatusCodesDescription: "Vyberte stavové kódy, které jsou považovány za úspěšnou odpověď.", + Maintenance: "Údržba", + statusMaintenance: "Údržba", + "Schedule maintenance": "Naplánovat údržbu", + "Affected Monitors": "Dotčené dohledy", + "Pick Affected Monitors...": "Vyberte dotčené dohledy…", + "Start of maintenance": "Zahájit údržbu", + "All Status Pages": "Všechny stavové stránky", + "Select status pages...": "Vyberte stavovou stránku…", + recurringIntervalMessage: "Spustit jednou každý den | Spustit jednou každých {0} dní", + affectedMonitorsDescription: "Vyberte dohledy, které budou ovlivněny touto údržbou", + affectedStatusPages: "Zobrazit tuto zprávu o údržbě na vybraných stavových stránkách", + atLeastOneMonitor: "Vyberte alespoň jeden dotčený dohled", passwordNotMatchMsg: "Hesla se neshodují", notificationDescription: "Pro zajištění funkčnosti oznámení je nutné jej přiřadit dohledu.", keywordDescription: "Vyhledat klíčové slovo v prosté odpovědi HTML nebo JSON. Při hledání se rozlišuje velikost písmen.", - pauseDashboardHome: "Pozastavit", + pauseDashboardHome: "Pozastaveno", deleteMonitorMsg: "Opravdu chcete odstranit tento dohled?", + deleteMaintenanceMsg: "Opravdu chcete odstranit tuto údržbu?", deleteNotificationMsg: "Opravdu chcete odstranit toto oznámení pro všechny dohledy?", dnsPortDescription: "Port DNS serveru. Standardně běží na portu 53. V případě potřeby jej můžete kdykoli změnit.", resolverserverDescription: "Cloudflare je výchozí server. V případě potřeby můžete Resolver server kdykoli změnit.", @@ -47,7 +62,7 @@ export default { Down: "Nedostupný", Pending: "Čekám", Unknown: "Neznámý", - Pause: "Pozastaveno", + Pause: "Pozastavit", Name: "Název", Status: "Stav", DateTime: "Časové razítko", @@ -59,6 +74,7 @@ export default { Current: "Aktuální", Uptime: "Doba provozu", "Cert Exp.": "Platnost certifikátu", + Monitor: "Dohled | Dohledy", day: "den | dny/í", "-day": "-dní", hour: "hodina", @@ -175,6 +191,7 @@ export default { Indigo: "Indigo", Purple: "Purpurová", Pink: "Růžová", + Custom: "Vlastní", "Search...": "Hledat…", "Avg. Ping": "Průměr Ping", "Avg. Response": "Průměr Odpověď", @@ -194,6 +211,7 @@ export default { here: "sem", Required: "Vyžadováno", telegram: "Telegram", + "ZohoCliq": "ZohoCliq", "Bot Token": "Token robota", wayToGetTelegramToken: "Token můžete získat od {0}.", "Chat ID": "ID chatu", @@ -206,6 +224,8 @@ export default { "Content Type": "Typ obsahu", webhookJsonDesc: "{0} je vhodný pro všechny moderní servery HTTP, jako je Express.js", webhookFormDataDesc: "{multipart} je vhodné pro PHP. JSON bude nutné analyzovat prostřednictvím {decodeFunction}", + webhookAdditionalHeadersTitle: "Dodatečné hlavičky", + webhookAdditionalHeadersDesc: "Nastavte dodatečné hlavičky, které se odešlou společně s webhookem.", smtp: "E-mail (SMTP)", secureOptionNone: "Žádné / STARTTLS (25, 587)", secureOptionTLS: "TLS (465)", @@ -223,7 +243,8 @@ export default { "Hello @everyone is...": "Dobrý den, {'@'}všichni jsou…", teams: "Microsoft Teams", "Webhook URL": "URL adresa webhooku", - wayToGetTeamsURL: "Informace o tom, jak vytvořit URL adresu webhooku naleznete {0}.", + wayToGetTeamsURL: "Informace o tom, jak vytvořit URL adresu webhooku naleznete na {0}.", + wayToGetZohoCliqURL: "Informace o tom, jak vytvořit URL adresu webhooku naleznete na {0}.", signal: "Signal", Number: "Číslo", Recipients: "Příjemci", @@ -253,6 +274,10 @@ export default { apprise: "Apprise (podpora více než 50 oznamovacích služeb)", GoogleChat: "Google Chat (pouze Google Workspace)", pushbullet: "Pushbullet", + Kook: "Kook", + wayToGetKookBotToken: "Aplikaci vytvoříte a token bota získáte na {0}", + wayToGetKookGuildID: "V nastavení Kook aktivujte 'Vývojářský režim' a kliknutím pravým tlačítkem na guild získejte jeho ID", + "Guild ID": "Guild ID", line: "Line Messenger", mattermost: "Mattermost", "User Key": "Klíč uživatele", @@ -297,6 +322,7 @@ export default { promosmsTypeSpeed: "SMS SPEED – nejvyšší priorita v systému. Velmi rychlé a spolehlivé, ale nákladné (přibližně dvojnásobek ceny SMS FULL).", promosmsPhoneNumber: "Telefonní číslo (polští příjemci mohou vynechat telefonní předvolbu)", promosmsSMSSender: "Odesílatel SMS: Předem zaregistrovaný název nebo jeden z výchozích: InfoSMS, SMS Info, MaxSMS, INFO, SMS", + promosmsAllowLongSMS: "Povolit dlouhé SMS", "Feishu WebHookUrl": "Feishu WebHookURL", matrixHomeserverURL: "URL adresa domácího serveru (s http(s):// a volitelně portem)", "Internal Room Id": "ID interní místnosti", @@ -365,6 +391,16 @@ export default { serwersmsAPIPassword: "API heslo", serwersmsPhoneNumber: "Telefonní číslo", serwersmsSenderName: "Odesílatel SMS (registrováno prostřednictvím zákaznického portálu)", + smseagle: "SMSEagle", + smseagleTo: "Telefonní číslo(a)", + smseagleGroup: "Název skupiny v adresáři", + smseagleContact: "Název kontaktu v adresáři", + smseagleRecipientType: "Typ příjemce", + smseagleRecipient: "Příjemce(i) (více záznamů oddělte čárkou)", + smseagleToken: "API přístupový token", + smseagleUrl: "URL vašeho SMSEagle zařízení", + smseagleEncoding: "Odeslat v Unicode", + smseaglePriority: "Priorita zprávy (0-9, výchozí = 0)", "stackfield": "Stackfield", Customize: "Přizpůsobit", "Custom Footer": "Vlastní patička", @@ -588,11 +624,11 @@ export default { "SMSManager API Docs": "SMSManager API Docs ", "Gateway Type": "Gateway Typ", SMSManager: "SMSManager", - "You can divide numbers with": "Čísla můžete dělit pomocí", + "You can divide numbers with": "Čísla můžete oddělit pomocí", "or": "nebo", recurringInterval: "Interval", "Recurring": "Opakující se", - strategyManual: "Aktivní/Neaktivní Ručně", + strategyManual: "Ruční spuštění/vypnutí", warningTimezone: "Používá se časové pásmo serveru", weekdayShortMon: "Po", weekdayShortTue: "Út", @@ -608,8 +644,8 @@ export default { lastDay2: "2. poslední den v měsíci", lastDay3: "3. poslední den v měsíci", lastDay4: "4. poslední den v měsíci", - "No Maintenance": "Žádna údržba", - pauseMaintenanceMsg: "Jsi si jistý, že chceš pozastavit údržbu?", + "No Maintenance": "Žádná údržba", + pauseMaintenanceMsg: "Opravdu chcete pozastavit údržbu?", "maintenanceStatus-under-maintenance": "Údržba", "maintenanceStatus-inactive": "Neaktivní", "maintenanceStatus-scheduled": "Naplánováno", @@ -622,5 +658,27 @@ export default { "Enable DNS Cache": "Povolit DNS Cache", "Enable": "Povolit", "Disable": "Zakázat", - dnsCacheDescription: "V některých prostředích IPv6 nemusí fungovat. Pokud narazíte na nějaké problémy, vypněte jej.", + dnsCacheDescription: "V některých IPv6 prostředích nemusí fungovat. Pokud narazíte na nějaké problémy, vypněte jej.", + "Single Maintenance Window": "Konkrétní časové okno pro údržbu", + "Maintenance Time Window of a Day": "Časové okno pro údržbu v daný den", + "Effective Date Range": "Časové období", + "Schedule Maintenance": "Naplánovat údržbu", + "Date and Time": "Datum a čas", + "DateTime Range": "Rozsah data a času", + Strategy: "Strategie", + "Free Mobile User Identifier": "Free Mobile User Identifier", + "Free Mobile API Key": "Free Mobile API Key", + "Enable TLS": "Povolit TLS", + "Proto Service Name": "Proto Service Name", + "Proto Method": "Proto Method", + "Proto Content": "Proto Content", + Economy: "Úsporná", + Lowcost: "Nízkonákladová", + high: "high", + "General Monitor Type": "Obecný typ dohledu", + "Passive Monitor Type": "Pasivní typ dohledu", + "Specific Monitor Type": "Konkrétní typ dohledu", + dataRetentionTimeError: "Doba pro uchování musí být větší nebo rovna 0", + infiniteRetention: "Pro nekonečný záznam zadejte 0.", + confirmDeleteTagMsg: "Opravdu chcete odstranit tento štíte? Provedením této akce nedojde k odstranění dohledů, které jej mají přiřazeny.", }; diff --git a/src/languages/en.js b/src/languages/en.js index d35883218..8fadfdfba 100644 --- a/src/languages/en.js +++ b/src/languages/en.js @@ -181,7 +181,7 @@ export default { "Add New below or Select...": "Add New below or Select...", "Tag with this name already exist.": "Tag with this name already exists.", "Tag with this value already exist.": "Tag with this value already exists.", - color: "color", + color: "Color", "value (optional)": "value (optional)", Gray: "Gray", Red: "Red", @@ -322,6 +322,7 @@ export default { promosmsTypeSpeed: "SMS SPEED - Highest priority in system. Very quick and reliable but costly (about twice of SMS FULL price).", promosmsPhoneNumber: "Phone number (for Polish recipient You can skip area codes)", promosmsSMSSender: "SMS Sender Name : Pre-registred name or one of defaults: InfoSMS, SMS Info, MaxSMS, INFO, SMS", + promosmsAllowLongSMS: "Allow long SMS", "Feishu WebHookUrl": "Feishu WebHookURL", matrixHomeserverURL: "Homeserver URL (with http(s):// and optionally port)", "Internal Room Id": "Internal Room ID", diff --git a/src/languages/fr-FR.js b/src/languages/fr-FR.js index ca61bbdc3..379e818fb 100644 --- a/src/languages/fr-FR.js +++ b/src/languages/fr-FR.js @@ -209,7 +209,7 @@ export default { here: "ici", Required: "Requis", telegram: "Telegram", - "ZohoCliq": "ZohoCliq", + ZohoCliq: "ZohoCliq", "Bot Token": "Jeton du robot", wayToGetTelegramToken: "Vous pouvez obtenir un token depuis {0}.", "Chat ID": "Chat ID", @@ -308,7 +308,7 @@ export default { lineDevConsoleTo: "Console développeurs Line - {0}", "Basic Settings": "Paramètres de base", "User ID": "Identifiant utilisateur", - "Messaging API": "Messaging API", // Ne pas traduire, il s'agit du type de salon affiché sur la console développeurs Line + "Messaging API": "Messaging API", wayToGetLineChannelToken: "Premièrement accédez à {0}, créez un provider et définissez un type de salon à « Messaging API ». Vous pourrez alors avoir puis vous pourrez avoir le jeton d'accès du salon et l'identifiant utilisateur demandés.", "Icon URL": "URL vers l'icône", aboutIconURL: "Vous pouvez mettre un lien vers une image dans « URL vers l'icône » pour remplacer l'image de profil par défaut. Elle ne sera utilisé que si « Icône émoji » n'est pas défini.", @@ -669,12 +669,16 @@ export default { "Proto Service Name": "Nom du service proto", "Proto Method": "Méthode Proto", "Proto Content": "Contenu proto", - "Economy": "Économique", - "Lowcost": "Faible coût", - "high": "Haute", + Economy: "Économique", + Lowcost: "Faible coût", + high: "Haute", "General Monitor Type": "Type de sonde générale", "Passive Monitor Type": "Type de sonde passive", "Specific Monitor Type": "Type de sonde spécifique", dataRetentionTimeError: "La durée de conservation doit être supérieure ou égale à 0", infiniteRetention: "Définissez la valeur à 0 pour une durée de conservation infinie.", + Monitor: "Sonde | Sondes", + Custom: "Personnalisé", + confirmDeleteTagMsg: "Voulez-vous vraiment supprimer cette étiquettes ? Les moniteurs associés ne seront pas supprimés.", + promosmsAllowLongSMS: "Autoriser les longs SMS", }; diff --git a/src/languages/pl.js b/src/languages/pl.js index 04a74997a..beef5df5b 100644 --- a/src/languages/pl.js +++ b/src/languages/pl.js @@ -284,6 +284,7 @@ export default { promosmsTypeSpeed: "SMS SPEED - wysyłka priorytetowa, ma wszystkie zalety SMS FULL", promosmsPhoneNumber: "Numer odbiorcy", promosmsSMSSender: "Nadawca SMS (wcześniej zatwierdzone nazwy z panelu PromoSMS)", + promosmsAllowLongSMS: "Zezwól na długie SMSy", "Primary Base URL": "Główny URL", "Push URL": "Push URL", needPushEvery: "Powinieneś wywoływać ten URL co {0} sekund", diff --git a/src/layouts/Layout.vue b/src/layouts/Layout.vue index d8e96aa82..9069aef70 100644 --- a/src/layouts/Layout.vue +++ b/src/layouts/Layout.vue @@ -63,6 +63,12 @@ +
  • + + {{ $t("Help") }} + +
  • +