From cfe49a40431ea330122c8f5d3ff4e27f3d2b139c Mon Sep 17 00:00:00 2001 From: Adrian Smijulj Date: Wed, 10 Jul 2024 15:40:37 +0200 Subject: [PATCH] feat: local AWS Lambda development (#4185) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Bruno Zorić Co-authored-by: Vitalii Nobis <77202393+neatbyte-vnobis@users.noreply.github.com> Co-authored-by: Pavel Denisjuk --- .prettierignore | 1 + packages/aws-sdk/package.json | 1 + packages/aws-sdk/src/client-iot/index.ts | 1 + packages/aws-sdk/src/client-lambda/index.ts | 8 +- .../commands/index.js | 205 +-- .../commands/newWatch.js | 188 +++ .../commands/newWatch/getIotEndpoint.js | 31 + .../commands/newWatch/handler/handler.js | 45 + .../commands/newWatch/handler/handler.zip | Bin 0 -> 109172 bytes .../commands/newWatch/handler/mqtt.js | 4 + .../newWatch/initInvocationForwarding.js | 102 ++ .../commands/newWatch/listLambdaFunctions.js | 40 + .../commands/newWatch/listPackages.js | 73 ++ .../newWatch/localInvocationWorker.js | 23 + .../newWatch/replaceLambdaFunctions.js | 63 + .../commands/newWatch/watchPackages.js | 209 ++++ .../newWatch/watchers/BasePackagesWatcher.js | 13 + .../watchers/MultiplePackagesWatcher.js | 118 ++ .../newWatch/watchers/PackagesWatcher.js | 33 + .../newWatch/watchers/SinglePackageWatcher.js | 34 + .../newWatch/watchers/ZeroPackagesWatcher.js | 10 + .../commands/newWatch/watchers/worker.js | 52 + .../watch/watchers/PackagesWatcher.js | 11 +- .../cli-plugin-deploy-pulumi/package.json | 13 +- .../utils/getDeploymentId.js | 16 + .../utils/getStackExport.js | 35 + .../cli-plugin-deploy-pulumi/utils/index.d.ts | 12 +- .../cli-plugin-deploy-pulumi/utils/index.js | 4 + .../layouts/forms/DefaultFormLayout/Cell.tsx | 21 +- packages/feature-flags/src/index.ts | 1 + packages/handler/src/fastify.ts | 5 +- .../bundling/function/watchFunction.js | 13 - packages/pulumi-aws/package.json | 1 + .../pulumi-aws/src/apps/core/WatchCommand.ts | 110 ++ .../src/apps/core/createCorePulumiApp.ts | 12 + .../apps/core/webinyWatchCommand/handler.js | 44 + packages/pulumi-aws/tsconfig.build.json | 1 + packages/pulumi-aws/tsconfig.json | 3 + .../plugins/injectWcpTelemetryClientCode.ts | 17 +- .../serverless-cms-aws/src/createApiApp.ts | 7 +- .../serverless-cms-aws/src/createCoreApp.ts | 9 + .../src/createWebsiteApp.ts | 5 +- packages/ui/src/Button/Button.tsx | 6 +- webiny.project.ts | 3 +- yarn.lock | 1099 ++++++++++++++++- 45 files changed, 2570 insertions(+), 132 deletions(-) create mode 100644 packages/aws-sdk/src/client-iot/index.ts create mode 100644 packages/cli-plugin-deploy-pulumi/commands/newWatch.js create mode 100644 packages/cli-plugin-deploy-pulumi/commands/newWatch/getIotEndpoint.js create mode 100644 packages/cli-plugin-deploy-pulumi/commands/newWatch/handler/handler.js create mode 100644 packages/cli-plugin-deploy-pulumi/commands/newWatch/handler/handler.zip create mode 100644 packages/cli-plugin-deploy-pulumi/commands/newWatch/handler/mqtt.js create mode 100644 packages/cli-plugin-deploy-pulumi/commands/newWatch/initInvocationForwarding.js create mode 100644 packages/cli-plugin-deploy-pulumi/commands/newWatch/listLambdaFunctions.js create mode 100644 packages/cli-plugin-deploy-pulumi/commands/newWatch/listPackages.js create mode 100644 packages/cli-plugin-deploy-pulumi/commands/newWatch/localInvocationWorker.js create mode 100644 packages/cli-plugin-deploy-pulumi/commands/newWatch/replaceLambdaFunctions.js create mode 100644 packages/cli-plugin-deploy-pulumi/commands/newWatch/watchPackages.js create mode 100644 packages/cli-plugin-deploy-pulumi/commands/newWatch/watchers/BasePackagesWatcher.js create mode 100644 packages/cli-plugin-deploy-pulumi/commands/newWatch/watchers/MultiplePackagesWatcher.js create mode 100644 packages/cli-plugin-deploy-pulumi/commands/newWatch/watchers/PackagesWatcher.js create mode 100644 packages/cli-plugin-deploy-pulumi/commands/newWatch/watchers/SinglePackageWatcher.js create mode 100644 packages/cli-plugin-deploy-pulumi/commands/newWatch/watchers/ZeroPackagesWatcher.js create mode 100644 packages/cli-plugin-deploy-pulumi/commands/newWatch/watchers/worker.js create mode 100644 packages/cli-plugin-deploy-pulumi/utils/getDeploymentId.js create mode 100644 packages/cli-plugin-deploy-pulumi/utils/getStackExport.js create mode 100644 packages/pulumi-aws/src/apps/core/WatchCommand.ts create mode 100644 packages/pulumi-aws/src/apps/core/webinyWatchCommand/handler.js diff --git a/.prettierignore b/.prettierignore index 159465061cf..42d86f9b9f0 100644 --- a/.prettierignore +++ b/.prettierignore @@ -7,5 +7,6 @@ **/.pulumi/ .webiny/** packages/ui/src/RichTextEditor/editorjs/** +packages/cli-plugin-deploy-pulumi/commands/newWatch/handler/mqtt.js lerna.json coverage/** diff --git a/packages/aws-sdk/package.json b/packages/aws-sdk/package.json index 2459eb96801..3ad31f045b0 100644 --- a/packages/aws-sdk/package.json +++ b/packages/aws-sdk/package.json @@ -15,6 +15,7 @@ "@aws-sdk/client-dynamodb-streams": "^3.540.0", "@aws-sdk/client-eventbridge": "^3.540.0", "@aws-sdk/client-iam": "^3.540.0", + "@aws-sdk/client-iot": "^3.540.0", "@aws-sdk/client-lambda": "^3.540.0", "@aws-sdk/client-s3": "^3.540.0", "@aws-sdk/client-sfn": "^3.540.0", diff --git a/packages/aws-sdk/src/client-iot/index.ts b/packages/aws-sdk/src/client-iot/index.ts new file mode 100644 index 00000000000..70e40e5ece7 --- /dev/null +++ b/packages/aws-sdk/src/client-iot/index.ts @@ -0,0 +1 @@ +export { IoTClient, DescribeEndpointCommand } from "@aws-sdk/client-iot"; diff --git a/packages/aws-sdk/src/client-lambda/index.ts b/packages/aws-sdk/src/client-lambda/index.ts index dec1b911d7a..19f27972a47 100644 --- a/packages/aws-sdk/src/client-lambda/index.ts +++ b/packages/aws-sdk/src/client-lambda/index.ts @@ -1 +1,7 @@ -export { LambdaClient, InvokeCommand } from "@aws-sdk/client-lambda"; +export { + LambdaClient, + InvokeCommand, + GetFunctionConfigurationCommand, + UpdateFunctionConfigurationCommand, + UpdateFunctionCodeCommand +} from "@aws-sdk/client-lambda"; diff --git a/packages/cli-plugin-deploy-pulumi/commands/index.js b/packages/cli-plugin-deploy-pulumi/commands/index.js index 9ccc716c018..5ba80662399 100644 --- a/packages/cli-plugin-deploy-pulumi/commands/index.js +++ b/packages/cli-plugin-deploy-pulumi/commands/index.js @@ -1,3 +1,5 @@ +const { featureFlags } = require("@webiny/feature-flags"); + module.exports = [ { type: "cli-command", @@ -138,79 +140,138 @@ module.exports = [ } ); - yargs.command( - "watch [folder]", - `Rebuild and deploy specified project application while making changes to it`, - yargs => { - yargs.example("$0 watch api --env=dev"); - yargs.example( - "$0 watch api --env=dev --scope my-package-1 --scope my-package-2" - ); - yargs.example("$0 watch api --env=dev --depth 2"); - yargs.example('$0 watch api --env=dev -r "my-function*"'); - yargs.example('$0 watch --env=dev --scope "my/{package1,package2}" '); + if (featureFlags.newWatchCommand) { + yargs.command( + "watch [folder]", + `Start a new development session`, + yargs => { + yargs.example("$0 watch api --env=dev"); - yargs.positional("folder", { - describe: `Project application folder`, - type: "string" - }); - yargs.option("env", { - describe: `Environment`, - type: "string" - }); - yargs.option("build", { - describe: `While making code changes, re-build all relevant packages`, - type: "boolean" - }); - yargs.option("deploy", { - describe: `While making code changes, re-deploy cloud infrastructure`, - type: "boolean" - }); - yargs.option("package", { - alias: "p", - describe: `Override watch packages (list of packages that need to be watched for code changes)`, - type: "string" - }); - yargs.option("depth", { - describe: `The level of dependencies that needs to be watched for code changes (does not work when "scope" is passed)`, - type: "number", - default: 2 - }); - yargs.option("output", { - describe: `Specify the output destination to which all of the logs will be forwarded`, - default: "simple", - type: "string" - }); - yargs.option("logs", { - default: undefined, - describe: `Enable base compilation-related logs`, - type: "boolean" - }); - yargs.option("remoteRuntimeLogs", { - alias: "r", - describe: `Forward logs from deployed application code to your terminal (optionally accepts a glob pattern for filtering purposes)`, - type: "string" - }); - yargs.option("show-timestamps", { - alias: "t", - describe: `Includes timestamps in the logs`, - type: "boolean" - }); - yargs.option("debug", { - default: false, - describe: `Turn on debug logs`, - type: "boolean" - }); - yargs.option("allowProduction", { - default: false, - describe: `Enables running the watch command with "prod" and "production" environments (not recommended).`, - type: "boolean" - }); - }, - async argv => { - return require("./watch")(argv, context); - } - ); + yargs.positional("folder", { + describe: `Project application folder or application name`, + type: "string" + }); + yargs.option("env", { + describe: `Environment`, + type: "string" + }); + yargs.option("package", { + alias: "p", + describe: `One or more packages that will be watched for code changes`, + type: "string" + }); + yargs.option("function", { + alias: "f", + describe: + "One or more functions that will invoked locally (used with local AWS Lambda development)", + type: "string" + }); + yargs.option("inspect", { + alias: "i", + describe: + "Enable Node debugger (used with local AWS Lambda development)", + type: "boolean" + }); + yargs.option("depth", { + describe: `The level of dependencies that will be watched for code changes`, + type: "number", + default: 2 + }); + yargs.option("debug", { + default: false, + describe: `Turn on debug logs`, + type: "boolean" + }); + yargs.option("increase-timeout", { + default: 120, + describe: `Increase AWS Lambda function timeout (passed as number of seconds, used with local AWS Lambda development)`, + type: "number" + }); + yargs.option("allow-production", { + default: false, + describe: `Enables running the watch command with "prod" and "production" environments (not recommended).`, + type: "boolean" + }); + }, + async argv => { + return require("./newWatch")(argv, context); + } + ); + } else { + yargs.command( + "watch [folder]", + `Rebuild and deploy specified specified project application while making changes to it`, + yargs => { + yargs.example("$0 watch api --env=dev"); + yargs.example( + "$0 watch api --env=dev --scope my-package-1 --scope my-package-2" + ); + yargs.example("$0 watch api --env=dev --depth 2"); + yargs.example('$0 watch api --env=dev -r "my-function*"'); + yargs.example('$0 watch --env=dev --scope "my/{package1,package2}" '); + + yargs.positional("folder", { + describe: `Project application folder`, + type: "string" + }); + yargs.option("env", { + describe: `Environment`, + type: "string" + }); + yargs.option("build", { + describe: `While making code changes, re-build all relevant packages`, + type: "boolean" + }); + yargs.option("deploy", { + describe: `While making code changes, re-deploy cloud infrastructure`, + type: "boolean" + }); + yargs.option("package", { + alias: "p", + describe: `Override watch packages (list of packages that need to be watched for code changes)`, + type: "string" + }); + yargs.option("depth", { + describe: `The level of dependencies that needs to be watched for code changes (does not work when "scope" is passed)`, + type: "number", + default: 2 + }); + yargs.option("output", { + describe: `Specify the output destination to which all of the logs will be forwarded`, + default: "simple", + type: "string" + }); + yargs.option("logs", { + default: undefined, + describe: `Enable base compilation-related logs`, + type: "boolean" + }); + yargs.option("remoteRuntimeLogs", { + alias: "r", + describe: `Forward logs from deployed application code to your terminal (optionally accepts a glob pattern for filtering purposes)`, + type: "string" + }); + yargs.option("show-timestamps", { + alias: "t", + describe: `Includes timestamps in the logs`, + type: "boolean" + }); + yargs.option("debug", { + default: false, + describe: `Turn on debug logs`, + type: "boolean" + }); + yargs.option("allowProduction", { + default: false, + describe: `Enables running the watch command with "prod" and "production" environments (not recommended).`, + type: "boolean" + }); + }, + async argv => { + return require("./watch")(argv, context); + } + ); + } yargs.command( "destroy [folder]", diff --git a/packages/cli-plugin-deploy-pulumi/commands/newWatch.js b/packages/cli-plugin-deploy-pulumi/commands/newWatch.js new file mode 100644 index 00000000000..9230f92ba60 --- /dev/null +++ b/packages/cli-plugin-deploy-pulumi/commands/newWatch.js @@ -0,0 +1,188 @@ +const chalk = require("chalk"); +const path = require("path"); +const { getProjectApplication, getProject } = require("@webiny/cli/utils"); +const get = require("lodash/get"); +const merge = require("lodash/merge"); +const { loadEnvVariables, runHook, getDeploymentId } = require("../utils"); +const { getIotEndpoint } = require("./newWatch/getIotEndpoint"); +const { listLambdaFunctions } = require("./newWatch/listLambdaFunctions"); +const listPackages = require("./newWatch/listPackages"); +const { PackagesWatcher } = require("./newWatch/watchers/PackagesWatcher"); +const { initInvocationForwarding } = require("./newWatch/initInvocationForwarding"); +const { replaceLambdaFunctions } = require("./newWatch/replaceLambdaFunctions"); + +// Do not allow watching "prod" and "production" environments. On the Pulumi CLI side, the command +// is still in preview mode, so it's definitely not wise to use it on production environments. +const WATCH_DISABLED_ENVIRONMENTS = ["prod", "production"]; + +module.exports = async (inputs, context) => { + // 1. Initial checks for deploy and build commands. + if (!inputs.folder && !inputs.package) { + throw new Error( + `Either "folder" or "package" arguments must be passed. Cannot have both undefined.` + ); + } + + const project = getProject(); + + const projectApplicationSpecified = !!inputs.folder; + + // Detect if an app alias was provided. + let projectApplication; + if (projectApplicationSpecified) { + if (project.config.appAliases) { + const appAliases = project.config.appAliases; + if (appAliases[inputs.folder]) { + inputs.folder = appAliases[inputs.folder]; + } + } + + // Get project application metadata. Will throw an error if invalid folder specified. + projectApplication = getProjectApplication({ + cwd: path.join(process.cwd(), inputs.folder) + }); + + // If exists - read default inputs from "webiny.application.ts" file. + inputs = merge({}, get(projectApplication, "config.cli.watch"), inputs); + + // We don't do anything here. We assume the workspace has already been created + // upon running the `webiny deploy` command. We rely on that. + // TODO: maybe we can improve this in the future, depending on the feedback. + // await createProjectApplicationWorkspace({ + // projectApplication, + // env: inputs.env, + // context, + // inputs + // }); + + // Check if there are any plugins that need to be registered. + if (projectApplication.config.plugins) { + context.plugins.register(projectApplication.config.plugins); + } + + // Load env vars specified via .env files located in project application folder. + await loadEnvVariables(inputs, context); + } + + if (projectApplicationSpecified && !inputs.env) { + throw new Error(`Please specify environment, for example "dev".`); + } + + if (WATCH_DISABLED_ENVIRONMENTS.includes(inputs.env)) { + if (!inputs.allowProduction) { + throw new Error( + `${chalk.red("webiny watch")} command cannot be used with production environments.` + ); + } + } + + const hookArgs = { context, env: inputs.env, inputs, projectApplication }; + + await runHook({ + hook: "hook-before-watch", + args: hookArgs, + context + }); + + console.log(); + + const packages = await listPackages({ inputs }); + const packagesWatcher = new PackagesWatcher({ packages, context, inputs }); + + if (!projectApplicationSpecified) { + await packagesWatcher.watch(); + return; + } + + // Maximum of 15minutes in seconds can be passed. + if (inputs.increaseTimeout > 900) { + throw new Error( + `When increasing the timeout, the maximum value that can be passed is 900 seconds (15 minutes).` + ); + } + + let lambdaFunctions = listLambdaFunctions(inputs); + + // Let's filter out the authorizer function, as it's not needed for the watch command. + if (projectApplication.id === "core") { + lambdaFunctions = lambdaFunctions.filter(fn => { + const isAuthorizerFunction = fn.name.includes("watch-command-iot-authorizer"); + return !isAuthorizerFunction; + }); + } + + if (!lambdaFunctions.length) { + context.debug("No AWS Lambda functions will be invoked locally."); + await packagesWatcher.watch(); + return; + } + + const deployCommand = `yarn webiny deploy ${projectApplication.id} --env ${inputs.env}`; + const learnMoreLink = "https://webiny.link/local-aws-lambda-development"; + + context.info(`Local AWS Lambda development session started.`); + context.info( + `Note that you should deploy your changes once you're done. To do so, run: %s. Learn more: %s.`, + deployCommand, + learnMoreLink + ); + + context.debug( + "The events for following AWS Lambda functions will be forwarded locally: ", + lambdaFunctions.map(fn => fn.name) + ); + + console.log(); + + // eslint-disable-next-line + const { default: exitHook } = await import("exit-hook"); + + exitHook(() => { + console.log(); + console.log(); + + context.info(`Stopping local AWS Lambda development session.`); + context.info( + `Note that you should deploy your changes. To do so, run: %s. Learn more: %s.`, + deployCommand, + learnMoreLink + ); + }); + + const deploymentId = getDeploymentId({ env: inputs.env }); + const iotEndpointTopic = `webiny-watch-${deploymentId}`; + const iotEndpoint = await getIotEndpoint({ env: inputs.env }); + const sessionId = new Date().getTime(); + const increaseTimeout = inputs.increaseTimeout; + + // Ignore promise, we don't need to wait for this to finish. + replaceLambdaFunctions({ + iotEndpoint, + iotEndpointTopic, + sessionId, + lambdaFunctions, + increaseTimeout + }); + + let inspector; + if (inputs.inspect) { + inspector = require("inspector"); + inspector.open(9229, "127.0.0.1"); + console.log(); + + exitHook(() => { + inspector.close(); + }); + } + + // Ignore promise, we don't need to wait for this to finish. + initInvocationForwarding({ + iotEndpoint, + iotEndpointTopic, + lambdaFunctions, + sessionId, + inspector + }); + + await packagesWatcher.watch(); +}; diff --git a/packages/cli-plugin-deploy-pulumi/commands/newWatch/getIotEndpoint.js b/packages/cli-plugin-deploy-pulumi/commands/newWatch/getIotEndpoint.js new file mode 100644 index 00000000000..c0e922b8ef0 --- /dev/null +++ b/packages/cli-plugin-deploy-pulumi/commands/newWatch/getIotEndpoint.js @@ -0,0 +1,31 @@ +const getStackOutput = require("../../utils/getStackOutput"); + +const getIotEndpoint = (params = {}) => { + const { IoTClient, DescribeEndpointCommand } = require("@webiny/aws-sdk/client-iot"); + const iotClient = new IoTClient(); + + return iotClient + .send( + new DescribeEndpointCommand({ + endpointType: "iot:Data-ATS" + }) + ) + .then(({ endpointAddress }) => { + const coreStackOutput = getStackOutput({ + folder: "core", + env: params.env + }); + + const watchCommandTopic = `webiny-watch-${coreStackOutput.deploymentId}`; + const iotAuthorizerName = coreStackOutput.iotAuthorizerName; + + const queryParams = [ + `x-amz-customauthorizer-name=${iotAuthorizerName}`, + `x-webiny-watch-command-topic=${watchCommandTopic}` + ].join("&"); + + return `wss://${endpointAddress}/mqtt?${queryParams}`; + }); +}; + +module.exports = { getIotEndpoint }; diff --git a/packages/cli-plugin-deploy-pulumi/commands/newWatch/handler/handler.js b/packages/cli-plugin-deploy-pulumi/commands/newWatch/handler/handler.js new file mode 100644 index 00000000000..eeb98181e52 --- /dev/null +++ b/packages/cli-plugin-deploy-pulumi/commands/newWatch/handler/handler.js @@ -0,0 +1,45 @@ +const webinyWatchArgs = JSON.parse(process.env["WEBINY_WATCH"]); + +exports.handler = async (...args) => { + const { default: mqtt } = require("./mqtt"); + + const client = await mqtt.connectAsync(webinyWatchArgs.iotEndpoint); + + await client.subscribeAsync(webinyWatchArgs.iotEndpointTopic); + + const eventId = new Date().getTime(); + + const fnInvocationPayload = { + eventType: "webiny.watch.functionInvocation", + eventId, + data: { + sessionId: webinyWatchArgs.sessionId, + functionName: webinyWatchArgs.functionName, + args, + env: process.env + } + }; + + await client.publish(webinyWatchArgs.iotEndpointTopic, JSON.stringify(fnInvocationPayload)); + + return new Promise((resolve, reject) => { + client.on("message", async (_, message) => { + const payload = JSON.parse(message.toString()); + + if (payload.eventType !== "webiny.watch.functionInvocationResult") { + return; + } + + if (payload.data.originalEventId !== eventId) { + return; + } + + if (payload.data.error) { + reject(payload.data.error); + return; + } + + resolve(payload.data.result); + }); + }); +}; diff --git a/packages/cli-plugin-deploy-pulumi/commands/newWatch/handler/handler.zip b/packages/cli-plugin-deploy-pulumi/commands/newWatch/handler/handler.zip new file mode 100644 index 0000000000000000000000000000000000000000..2f4a196d95f46676a97411decfffb26eb673c2f3 GIT binary patch literal 109172 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 literal 0 HcmV?d00001 diff --git a/packages/cli-plugin-deploy-pulumi/commands/newWatch/handler/mqtt.js b/packages/cli-plugin-deploy-pulumi/commands/newWatch/handler/mqtt.js new file mode 100644 index 00000000000..cbafe6a04d6 --- /dev/null +++ b/packages/cli-plugin-deploy-pulumi/commands/newWatch/handler/mqtt.js @@ -0,0 +1,4 @@ +/* eslint-disable */(()=>{var t={1506(t,r,i){"use strict";i.d(r,{z1:()=>_,h8:()=>w});let n=new WeakMap,o=new WeakMap;function s(t){let r=n.get(t);return console.assert(null!=r,"'this' is expected an Event object, but got",t),r}function a(t){null==t.passiveListener?t.event.cancelable&&(t.canceled=!0,"function"==typeof t.event.preventDefault&&t.event.preventDefault()):"undefined"!=typeof console&&"function"==typeof console.error&&console.error("Unable to preventDefault inside passive event listener invocation.",t.passiveListener)}function l(t,r){n.set(this,{eventTarget:t,event:r,eventPhase:2,currentTarget:t,canceled:!1,stopped:!1,immediateStopped:!1,passiveListener:null,timeStamp:r.timeStamp||Date.now()}),Object.defineProperty(this,"isTrusted",{value:!1,enumerable:!0});let i=Object.keys(r);for(let o=0;o0){let t=Array(arguments.length);for(let r=0;r>>=0;var o=t.byteLength-r;if(o<0)throw RangeError("'offset' is out of bounds");if(void 0===n)n=o;else if((n>>>=0)>o)throw RangeError("'length' is out of bounds");return i?Buffer.from(t.slice(r,r+n)):new Buffer(new Uint8Array(t.slice(r,r+n)))}(t,n,o):"string"==typeof t?function(t,r){if("string"==typeof r&&""!==r||(r="utf8"),!Buffer.isEncoding(r))throw TypeError('"encoding" must be a valid string encoding');return i?Buffer.from(t,r):new Buffer(t,r)}(t,n):i?Buffer.from(t):new Buffer(t)}},6386(t){var r=36e5,i=24*r,n=7*i;function o(t,r,i,n){return Math.round(t/i)+" "+n+(r>=1.5*i?"s":"")}t.exports=function(t,s){s=s||{};var a,l,u,c,d=typeof t;if("string"===d&&t.length>0)return function(t){if(!((t=String(t)).length>100)){var o=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(o){var s=parseFloat(o[1]);switch((o[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*s;case"weeks":case"week":case"w":return s*n;case"days":case"day":case"d":return s*i;case"hours":case"hour":case"hrs":case"hr":case"h":return s*r;case"minutes":case"minute":case"mins":case"min":case"m":return 6e4*s;case"seconds":case"second":case"secs":case"sec":case"s":return 1e3*s;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return s;default:return}}}}(t);if("number"===d&&isFinite(t))return s.long?(c=Math.abs(u=t))>=i?o(u,c,i,"day"):c>=r?o(u,c,r,"hour"):c>=6e4?o(u,c,6e4,"minute"):c>=1e3?o(u,c,1e3,"second"):u+" ms":(l=Math.abs(a=t))>=i?Math.round(a/i)+"d":l>=r?Math.round(a/r)+"h":l>=6e4?Math.round(a/6e4)+"m":l>=1e3?Math.round(a/1e3)+"s":a+"ms";throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))}},7159(t,r,i){let n;r.formatArgs=function(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+t.exports.humanize(this.diff),!this.useColors)return;let i="color: "+this.color;r.splice(1,0,i,"color: inherit");let n=0,o=0;r[0].replace(/%[a-zA-Z%]/g,t=>{"%%"!==t&&(n++,"%c"===t&&(o=n))}),r.splice(o,0,i)},r.save=function(t){try{t?r.storage.setItem("debug",t):r.storage.removeItem("debug")}catch(i){}},r.load=function(){let t;try{t=r.storage.getItem("debug")}catch(i){}return!t&&"undefined"!=typeof process&&"env"in process&&(t=process.env.DEBUG),t},r.useColors=function(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type&&!window.process.__nwjs)||("undefined"==typeof navigator||!navigator.userAgent||!navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},r.storage=function(){try{return localStorage}catch(t){}}(),r.destroy=(n=!1,()=>{n||(n=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}),r.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],r.log=console.debug||console.log||(()=>{}),t.exports=i(5946)(r);let{formatters:o}=t.exports;o.j=function(t){try{return JSON.stringify(t)}catch(r){return"[UnexpectedJSONParseError]: "+r.message}}},5946(t,r,i){t.exports=function(t){function r(t){let i,o,s,a=null;function l(...t){if(!l.enabled)return;let n=l,o=Number(new Date),s=o-(i||o);n.diff=s,n.prev=i,n.curr=o,i=o,t[0]=r.coerce(t[0]),"string"!=typeof t[0]&&t.unshift("%O");let a=0;t[0]=t[0].replace(/%([a-zA-Z%])/g,(i,o)=>{if("%%"===i)return"%";a++;let s=r.formatters[o];if("function"==typeof s){let l=t[a];i=s.call(n,l),t.splice(a,1),a--}return i}),r.formatArgs.call(n,t),(n.log||r.log).apply(n,t)}return l.namespace=t,l.useColors=r.useColors(),l.color=r.selectColor(t),l.extend=n,l.destroy=r.destroy,Object.defineProperty(l,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==a?a:(o!==r.namespaces&&(o=r.namespaces,s=r.enabled(t)),s),set(t){a=t}}),"function"==typeof r.init&&r.init(l),l}function n(t,i){let n=r(this.namespace+(void 0===i?":":i)+t);return n.log=this.log,n}function o(t){return t.toString().substring(2,t.toString().length-2).replace(/\.\*\?$/,"*")}return r.debug=r,r.default=r,r.coerce=function(t){return t instanceof Error?t.stack||t.message:t},r.disable=function(){let t=[...r.names.map(o),...r.skips.map(o).map(t=>"-"+t)].join(",");return r.enable(""),t},r.enable=function(t){let i;r.save(t),r.namespaces=t,r.names=[],r.skips=[];let n=("string"==typeof t?t:"").split(/[\s,]+/),o=n.length;for(i=0;i{r[i]=t[i]}),r.names=[],r.skips=[],r.formatters={},r.selectColor=function(t){let i=0;for(let n=0;n{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."),r.colors=[6,2,3,4,5,1];try{let s=i(3533);s&&(s.stderr||s).level>=2&&(r.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch(a){}r.inspectOpts=Object.keys(process.env).filter(t=>/^debug_/i.test(t)).reduce((t,r)=>{let i=r.substring(6).toLowerCase().replace(/_([a-z])/g,(t,r)=>r.toUpperCase()),n=process.env[r];return n=!!/^(yes|on|true|enabled)$/i.test(n)||!/^(no|off|false|disabled)$/i.test(n)&&("null"===n?null:Number(n)),t[i]=n,t},{}),t.exports=i(5946)(r);let{formatters:l}=t.exports;l.o=function(t){return this.inspectOpts.colors=this.useColors,o.inspect(t,this.inspectOpts).split("\n").map(t=>t.trim()).join(" ")},l.O=function(t){return this.inspectOpts.colors=this.useColors,o.inspect(t,this.inspectOpts)}},9614(t){"use strict";t.exports=(t,r=process.argv)=>{let i=t.startsWith("-")?"":1===t.length?"-":"--",n=r.indexOf(i+t),o=r.indexOf("--");return -1!==n&&(-1===o||nA});var n,o,s=(o=function(t,r){return(o=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(t[i]=r[i])})(t,r)},function(t,r){if("function"!=typeof r&&null!==r)throw TypeError("Class extends value "+String(r)+" is not a constructor or null");function i(){this.constructor=t}o(t,r),t.prototype=null===r?Object.create(r):(i.prototype=r.prototype,new i)}),a=function(){function t(t,r){this.ee=1,this.u=void 0,this.p=void 0,this.K=void 0,this.N=void 0,this.rr=void 0,this.u=t,this.p=r}return t.prototype.L=function(){var t=this;if(1===t.ee&&t.rr.rr===t)t=t.N;else if(t.K)for(t=t.K;t.N;)t=t.N;else{for(var r=t.rr;r.K===t;)r=(t=r).rr;t=r}return t},t.prototype.m=function(){var t=this;if(t.N){for(t=t.N;t.K;)t=t.K;return t}for(var r=t.rr;r.N===t;)r=(t=r).rr;return t.N!==r?r:t},t.prototype.ne=function(){var t=this.rr,r=this.N,i=r.K;return t.rr===this?t.rr=r:t.K===this?t.K=r:t.N=r,r.rr=t,r.K=this,this.rr=r,this.N=i,i&&(i.rr=this),r},t.prototype.te=function(){var t=this.rr,r=this.K,i=r.N;return t.rr===this?t.rr=r:t.K===this?t.K=r:t.N=r,r.rr=t,r.N=this,this.rr=r,this.K=i,i&&(i.rr=this),r},t}(),l=function(t){function r(){var r=null!==t&&t.apply(this,arguments)||this;return r.tr=1,r}return s(r,t),r.prototype.ne=function(){var r=t.prototype.ne.call(this);return this.ie(),r.ie(),r},r.prototype.te=function(){var r=t.prototype.te.call(this);return this.ie(),r.ie(),r},r.prototype.ie=function(){this.tr=1,this.K&&(this.tr+=this.K.tr),this.N&&(this.tr+=this.N.tr)},r}(a),u=(n=function(t,r){return(n=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(t[i]=r[i])})(t,r)},function(t,r){if("function"!=typeof r&&null!==r)throw TypeError("Class extends value "+String(r)+" is not a constructor or null");function i(){this.constructor=t}n(t,r),t.prototype=null===r?Object.create(r):(i.prototype=r.prototype,new i)}),c=function(){function t(t){void 0===t&&(t=0),this.iteratorType=t}return t.prototype.equals=function(t){return this.o===t.o},t}(),d=function(t){function r(){return null!==t&&t.apply(this,arguments)||this}return u(r,t),r}(function(){function t(){this.M=0}return Object.defineProperty(t.prototype,"length",{get:function(){return this.M},enumerable:!1,configurable:!0}),t.prototype.size=function(){return this.M},t.prototype.empty=function(){return 0===this.M},t}());function h(){throw RangeError("Iterator access denied!")}var f,p,g,b=(f=function(t,r){return(f=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(t[i]=r[i])})(t,r)},function(t,r){if("function"!=typeof r&&null!==r)throw TypeError("Class extends value "+String(r)+" is not a constructor or null");function i(){this.constructor=t}f(t,r),t.prototype=null===r?Object.create(r):(i.prototype=r.prototype,new i)}),m=function(t,r){var i="function"==typeof Symbol&&t[Symbol.iterator];if(!i)return t;var n,o,s=i.call(t),a=[];try{for(;(void 0===r||r-- >0)&&!(n=s.next()).done;)a.push(n.value)}catch(l){o={error:l}}finally{try{n&&!n.done&&(i=s.return)&&i.call(s)}finally{if(o)throw o.error}}return a},y=function(t){var r="function"==typeof Symbol&&Symbol.iterator,i=r&&t[r],n=0;if(i)return i.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")},$=function(t){function r(r,i){void 0===r&&(r=function(t,r){return tr?1:0}),void 0===i&&(i=!1);var n=t.call(this)||this;return n.W=void 0,n.$=r,i?(n.re=l,n.v=function(t,r,i){var n=this.se(t,r,i);if(n){for(var o=n.rr;o!==this.h;)o.tr+=1,o=o.rr;var s=this.fe(n);if(s){var a=s,l=a.parentNode,u=a.grandParent,c=a.curNode;l.ie(),u.ie(),c.ie()}}return this.M},n.G=function(t){for(var r=this.he(t);r!==this.h;)r.tr-=1,r=r.rr}):(n.re=a,n.v=function(t,r,i){var n=this.se(t,r,i);return n&&this.fe(n),this.M},n.G=n.he),n.h=new n.re,n}return b(r,t),r.prototype.U=function(t,r){for(var i=this.h;t;){var n=this.$(t.u,r);if(n<0)t=t.N;else{if(!(n>0))return t;i=t,t=t.K}}return i},r.prototype.X=function(t,r){for(var i=this.h;t;)0>=this.$(t.u,r)?t=t.N:(i=t,t=t.K);return i},r.prototype.Y=function(t,r){for(var i=this.h;t;){var n=this.$(t.u,r);if(n<0)i=t,t=t.N;else{if(!(n>0))return t;t=t.K}}return i},r.prototype.Z=function(t,r){for(var i=this.h;t;)0>this.$(t.u,r)?(i=t,t=t.N):t=t.K;return i},r.prototype.ue=function(t){for(;;){var r,i=t.rr;if(i===this.h)return;if(1===t.ee)return void(t.ee=0);if(t===i.K){if(1===(r=i.N).ee)r.ee=0,i.ee=1,i===this.W?this.W=i.ne():i.ne();else{if(r.N&&1===r.N.ee)return r.ee=i.ee,i.ee=0,r.N.ee=0,void(i===this.W?this.W=i.ne():i.ne());r.K&&1===r.K.ee?(r.ee=1,r.K.ee=0,r.te()):(r.ee=1,t=i)}}else if(1===(r=i.K).ee)r.ee=0,i.ee=1,i===this.W?this.W=i.te():i.te();else{if(r.K&&1===r.K.ee)return r.ee=i.ee,i.ee=0,r.K.ee=0,void(i===this.W?this.W=i.te():i.te());r.N&&1===r.N.ee?(r.ee=1,r.N.ee=0,r.ne()):(r.ee=1,t=i)}}},r.prototype.he=function(t){if(1===this.M)return this.clear(),this.h;for(var r,i,n=t;n.K||n.N;){if(n.N)for(n=n.N;n.K;)n=n.K;else n=n.K;r=m([n.u,t.u],2),t.u=r[0],n.u=r[1],i=m([n.p,t.p],2),t.p=i[0],n.p=i[1],t=n}this.h.K===n?this.h.K=n.rr:this.h.N===n&&(this.h.N=n.rr),this.ue(n);var o=n.rr;return n===o.K?o.K=void 0:o.N=void 0,this.M-=1,this.W.ee=0,o},r.prototype.ae=function(t,r){return void 0!==t&&(!!this.ae(t.K,r)||!!r(t)||this.ae(t.N,r))},r.prototype.fe=function(t){for(;;){var r,i,n=t.rr;if(0===n.ee)return;var o=n.rr;if(n===o.K){if((r=o.N)&&1===r.ee){if(r.ee=n.ee=0,o===this.W)return;o.ee=1,t=o;continue}if(t===n.N)return t.ee=0,t.K&&(t.K.rr=n),t.N&&(t.N.rr=o),n.N=t.K,o.K=t.N,t.K=n,t.N=o,o===this.W?(this.W=t,this.h.rr=t):(i=o.rr).K===o?i.K=t:i.N=t,t.rr=o.rr,n.rr=t,o.rr=t,o.ee=1,{parentNode:n,grandParent:o,curNode:t};n.ee=0,o===this.W?this.W=o.te():o.te(),o.ee=1}else{if((r=o.K)&&1===r.ee){if(r.ee=n.ee=0,o===this.W)return;o.ee=1,t=o;continue}if(t===n.K)return t.ee=0,t.K&&(t.K.rr=o),t.N&&(t.N.rr=n),o.N=t.K,n.K=t.N,t.K=o,t.N=n,o===this.W?(this.W=t,this.h.rr=t):(i=o.rr).K===o?i.K=t:i.N=t,t.rr=o.rr,n.rr=t,o.rr=t,o.ee=1,{parentNode:n,grandParent:o,curNode:t};n.ee=0,o===this.W?this.W=o.ne():o.ne(),o.ee=1}return}},r.prototype.se=function(t,r,i){if(void 0===this.W)return this.M+=1,this.W=new this.re(t,r),this.W.ee=0,this.W.rr=this.h,this.h.rr=this.W,this.h.K=this.W,void(this.h.N=this.W);var n,o=this.h.K,s=this.$(o.u,t);if(0!==s){if(s>0)o.K=new this.re(t,r),o.K.rr=o,n=o.K,this.h.K=n;else{var a=this.h.N,l=this.$(a.u,t);if(0===l)return void(a.p=r);if(l<0)a.N=new this.re(t,r),a.N.rr=a,n=a.N,this.h.N=n;else{if(void 0!==i){var u=i.o;if(u!==this.h){var c=this.$(u.u,t);if(0===c)return void(u.p=r);if(c>0){var d=u.L(),h=this.$(d.u,t);if(0===h)return void(d.p=r);h<0&&(n=new this.re(t,r),void 0===d.N?(d.N=n,n.rr=d):(u.K=n,n.rr=u))}}}if(void 0===n)for(n=this.W;;){var f=this.$(n.u,t);if(f>0){if(void 0===n.K){n.K=new this.re(t,r),n.K.rr=n,n=n.K;break}n=n.K}else{if(!(f<0))return void(n.p=r);if(void 0===n.N){n.N=new this.re(t,r),n.N.rr=n,n=n.N;break}n=n.N}}}}return this.M+=1,n}o.p=r},r.prototype.g=function(t,r){for(;t;){var i=this.$(t.u,r);if(i<0)t=t.N;else{if(!(i>0))return t;t=t.K}}return t||this.h},r.prototype.clear=function(){this.M=0,this.W=void 0,this.h.rr=void 0,this.h.K=this.h.N=void 0},r.prototype.updateKeyByIterator=function(t,r){var i=t.o;if(i===this.h&&h(),1===this.M)return i.u=r,!0;if(i===this.h.K)return this.$(i.m().u,r)>0&&(i.u=r,!0);if(i===this.h.N)return 0>this.$(i.L().u,r)&&(i.u=r,!0);var n=i.L().u;if(this.$(n,r)>=0)return!1;var o=i.m().u;return!(0>=this.$(o,r)||(i.u=r,0))},r.prototype.eraseElementByPos=function(t){if(t<0||t>this.M-1)throw RangeError();var r=0,i=this;return this.ae(this.W,function(n){return t===r?(i.G(n),!0):(r+=1,!1)}),this.M},r.prototype.eraseElementByKey=function(t){if(0===this.M)return!1;var r=this.g(this.W,t);return r!==this.h&&(this.G(r),!0)},r.prototype.eraseElementByIterator=function(t){var r=t.o;r===this.h&&h();var i=void 0===r.N;return 0===t.iteratorType?i&&t.next():i&&void 0!==r.K||t.next(),this.G(r),t},r.prototype.forEach=function(t){var r,i,n=0;try{for(var o=y(this),s=o.next();!s.done;s=o.next())t(s.value,n++,this)}catch(a){r={error:a}}finally{try{s&&!s.done&&(i=o.return)&&i.call(o)}finally{if(r)throw r.error}}},r.prototype.getElementByPos=function(t){if(t<0||t>this.M-1)throw RangeError();var r,i,n,o=0;try{for(var s=y(this),a=s.next();!a.done;a=s.next()){var l=a.value;if(o===t){n=l;break}o+=1}}catch(u){r={error:u}}finally{try{a&&!a.done&&(i=s.return)&&i.call(s)}finally{if(r)throw r.error}}return n},r.prototype.getHeight=function(){if(0===this.M)return 0;var t=function(r){return r?Math.max(t(r.K),t(r.N))+1:0};return t(this.W)},r}(d),w=(p=function(t,r){return(p=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(t[i]=r[i])})(t,r)},function(t,r){if("function"!=typeof r&&null!==r)throw TypeError("Class extends value "+String(r)+" is not a constructor or null");function i(){this.constructor=t}p(t,r),t.prototype=null===r?Object.create(r):(i.prototype=r.prototype,new i)}),v=function(t){function r(r,i,n){var o=t.call(this,n)||this;return o.o=r,o.h=i,0===o.iteratorType?(o.pre=function(){return this.o===this.h.K&&h(),this.o=this.o.L(),this},o.next=function(){return this.o===this.h&&h(),this.o=this.o.m(),this}):(o.pre=function(){return this.o===this.h.N&&h(),this.o=this.o.m(),this},o.next=function(){return this.o===this.h&&h(),this.o=this.o.L(),this}),o}return w(r,t),Object.defineProperty(r.prototype,"index",{get:function(){var t=this.o,r=this.h.rr;if(t===this.h)return r?r.tr-1:0;var i=0;for(t.K&&(i+=t.K.tr);t!==r;){var n=t.rr;t===n.N&&(i+=1,n.K&&(i+=n.K.tr)),t=n}return i},enumerable:!1,configurable:!0}),r}(c),_=(g=function(t,r){return(g=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(t[i]=r[i])})(t,r)},function(t,r){if("function"!=typeof r&&null!==r)throw TypeError("Class extends value "+String(r)+" is not a constructor or null");function i(){this.constructor=t}g(t,r),t.prototype=null===r?Object.create(r):(i.prototype=r.prototype,new i)}),S=function(t){var r="function"==typeof Symbol&&Symbol.iterator,i=r&&t[r],n=0;if(i)return i.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")},E=function(t){function r(r,i,n,o){var s=t.call(this,r,i,o)||this;return s.container=n,s}return _(r,t),Object.defineProperty(r.prototype,"pointer",{get:function(){return this.o===this.h&&h(),this.o.u},enumerable:!1,configurable:!0}),r.prototype.copy=function(){return new r(this.o,this.h,this.container,this.iteratorType)},r}(v),k=function(t){function r(r,i,n){void 0===r&&(r=[]);var o=t.call(this,i,n)||this,s=o;return r.forEach(function(t){s.insert(t)}),o}return _(r,t),r.prototype.P=function(t){return function(t,r){var i,n,o,s,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return s={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function l(s){return function(l){return function s(l){if(i)throw TypeError("Generator is already executing.");for(;a;)try{if(i=1,n&&(o=2&l[0]?n.return:l[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,l[1])).done)return o;switch(n=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return a.label++,{value:l[1],done:!1};case 5:a.label++,n=l[1],l=[0];continue;case 7:l=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==l[0]&&2!==l[0])){a=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1][0,1].map(i=>[0,1].map(s=>{let a=o.alloc(1);return a.writeUInt8(n.codes[t]<o.from([t])),n.EMPTY={pingreq:o.from([n.codes.pingreq<<4,0]),pingresp:o.from([n.codes.pingresp<<4,0]),disconnect:o.from([n.codes.disconnect<<4,0])},n.MQTT5_PUBACK_PUBREC_CODES={0:"Success",16:"No matching subscribers",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",144:"Topic Name invalid",145:"Packet identifier in use",151:"Quota exceeded",153:"Payload format invalid"},n.MQTT5_PUBREL_PUBCOMP_CODES={0:"Success",146:"Packet Identifier not found"},n.MQTT5_SUBACK_CODES={0:"Granted QoS 0",1:"Granted QoS 1",2:"Granted QoS 2",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",143:"Topic Filter invalid",145:"Packet Identifier in use",151:"Quota exceeded",158:"Shared Subscriptions not supported",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"},n.MQTT5_UNSUBACK_CODES={0:"Success",17:"No subscription existed",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",143:"Topic Filter invalid",145:"Packet Identifier in use"},n.MQTT5_DISCONNECT_CODES={0:"Normal disconnection",4:"Disconnect with Will Message",128:"Unspecified error",129:"Malformed Packet",130:"Protocol Error",131:"Implementation specific error",135:"Not authorized",137:"Server busy",139:"Server shutting down",141:"Keep Alive timeout",142:"Session taken over",143:"Topic Filter invalid",144:"Topic Name invalid",147:"Receive Maximum exceeded",148:"Topic Alias invalid",149:"Packet too large",150:"Message rate too high",151:"Quota exceeded",152:"Administrative action",153:"Payload format invalid",154:"Retain not supported",155:"QoS not supported",156:"Use another server",157:"Server moved",158:"Shared Subscriptions not supported",159:"Connection rate exceeded",160:"Maximum connect time",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"},n.MQTT5_AUTH_CODES={0:"Success",24:"Continue authentication",25:"Re-authenticate"}},2533(t,r,i){let n=i(6158),{EventEmitter:o}=i(4434),{Buffer:s}=i(181);class a extends o{constructor(){super(),this._array=Array(20),this._i=0}write(t){return this._array[this._i++]=t,!0}concat(){let t=0,r=Array(this._array.length),i=this._array,n,o=0;for(n=0;nthis.length||t<0)return;let r=this._offset(t);return this._bufs[r[0]][r[1]]},s.prototype.slice=function(t,r){return"number"==typeof t&&t<0&&(t+=this.length),"number"==typeof r&&r<0&&(r+=this.length),this.copy(null,0,t,r)},s.prototype.copy=function(t,r,i,o){if(("number"!=typeof i||i<0)&&(i=0),("number"!=typeof o||o>this.length)&&(o=this.length),i>=this.length||o<=0)return t||n.alloc(0);let s=!!t,a=this._offset(i),l=o-i,u=l,c=s&&r||0,d=a[1];if(0===i&&o===this.length){if(!s)return 1===this._bufs.length?this._bufs[0]:n.concat(this._bufs,this.length);for(let h=0;hp)){this._bufs[f].copy(t,c,d,d+u),c+=p;break}this._bufs[f].copy(t,c,d),c+=p,u-=p,d&&(d=0)}return t.length>c?t.slice(0,c):t},s.prototype.shallowSlice=function(t,r){if(t=t||0,r="number"!=typeof r?this.length:r,t<0&&(t+=this.length),r<0&&(r+=this.length),t===r)return this._new();let i=this._offset(t),n=this._offset(r),o=this._bufs.slice(i[0],n[0]+1);return 0===n[1]?o.pop():o[o.length-1]=o[o.length-1].slice(0,n[1]),0!==i[1]&&(o[0]=o[0].slice(i[1])),this._new(o)},s.prototype.toString=function(t,r,i){return this.slice(r,i).toString(t)},s.prototype.consume=function(t){if(Number.isNaN(t=Math.trunc(t))||t<=0)return this;for(;this._bufs.length;){if(!(t>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(t),this.length-=t;break}t-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},s.prototype.duplicate=function(){let t=this._new();for(let r=0;rthis.length?this.length:r;let o=this._offset(r),s=o[0],a=o[1];for(;s=t.length){let u=l.indexOf(t,a);if(-1!==u)return this._reverseOffset([s,u]);a=l.length-t.length+1}else{let c=this._reverseOffset([s,a]);if(this._match(c,t))return c;a++}a=0}return -1},s.prototype._match=function(t,r){if(this.length-t{if("object"!=typeof t||!("aborted"in t))throw new d("signal","AbortSignal",t)})(r),!a(i)&&!l(i))throw new d("stream",["ReadableStream","WritableStream","Stream"],i);return t.exports.addAbortSignalNoValidate(r,i)},t.exports.addAbortSignalNoValidate=function(t,r){if("object"!=typeof t||!("aborted"in t))return r;let s=a(r)?()=>{r.destroy(new o(void 0,{cause:t.reason}))}:()=>{r[u](new o(void 0,{cause:t.reason}))};if(t.aborted)s();else{h=h||i(8619).addAbortListener;let l=h(t,s);c(r,l[n])}return r}},6608(t,r,i){"use strict";let{StringPrototypeSlice:n,SymbolIterator:o,TypedArrayPrototypeSet:s,Uint8Array:a}=i(1807),{Buffer:l}=i(181),{inspect:u}=i(8619);t.exports=class{constructor(){this.head=null,this.tail=null,this.length=0}push(t){let r={data:t,next:null};this.length>0?this.tail.next=r:this.head=r,this.tail=r,++this.length}unshift(t){let r={data:t,next:this.head};0===this.length&&(this.tail=r),this.head=r,++this.length}shift(){if(0===this.length)return;let t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}clear(){this.head=this.tail=null,this.length=0}join(t){if(0===this.length)return"";let r=this.head,i=""+r.data;for(;null!==(r=r.next);)i+=t+r.data;return i}concat(t){if(0===this.length)return l.alloc(0);let r=l.allocUnsafe(t>>>0),i=this.head,n=0;for(;i;)s(r,i.data,n),n+=i.data.length,i=i.next;return r}consume(t,r){let i=this.head.data;if(ts.length)){t===s.length?(r+=s,++o,i.next?this.head=i.next:this.head=this.tail=null):(r+=n(s,0,t),this.head=i,i.data=n(s,t));break}r+=s,t-=s.length,++o}while(null!==(i=i.next));return this.length-=o,r}_getBuffer(t){let r=l.allocUnsafe(t),i=t,n=this.head,o=0;do{let u=n.data;if(!(t>u.length)){t===u.length?(s(r,u,i-t),++o,n.next?this.head=n.next:this.head=this.tail=null):(s(r,new a(u.buffer,u.byteOffset,t),i-t),this.head=n,n.data=u.slice(t));break}s(r,u,i-t),t-=u.length,++o}while(null!==(n=n.next));return this.length-=o,r}[Symbol.for("nodejs.util.inspect.custom")](t,r){return u(this,{...r,depth:0,customInspect:!1})}}},4511(t,r,i){"use strict";let{pipeline:n}=i(6213),o=i(5737),{destroyer:s}=i(5417),{isNodeStream:a,isReadable:l,isWritable:u,isWebStream:c,isTransformStream:d,isWritableStream:h,isReadableStream:f}=i(3338),{AbortError:p,codes:{ERR_INVALID_ARG_VALUE:g,ERR_MISSING_ARGS:b}}=i(5596),m=i(6567);t.exports=function(...t){if(0===t.length)throw new b("streams");if(1===t.length)return o.from(t[0]);let r=[...t];if("function"==typeof t[0]&&(t[0]=o.from(t[0])),"function"==typeof t[t.length-1]){let i=t.length-1;t[i]=o.from(t[i])}for(let y=0;y0&&!(u(t[y])||h(t[y])||d(t[y])))throw new g(`streams[${y}]`,r[y],"must be writable")}let $,w,v,_,S,E=t[0],k=n(t,function(t){let r=_;_=null,r?r(t):t?S.destroy(t):R||A||S.destroy()}),A=!!(u(E)||h(E)||d(E)),R=!!(l(k)||f(k)||d(k));if(S=new o({writableObjectMode:!(null==E||!E.writableObjectMode),readableObjectMode:!(null==k||!k.readableObjectMode),writable:A,readable:R}),A){if(a(E))S._write=function(t,r,i){E.write(t,r)?i():$=i},S._final=function(t){E.end(),w=t},E.on("drain",function(){if($){let t=$;$=null,t()}});else if(c(E)){let T=(d(E)?E.writable:E).getWriter();S._write=async function(t,r,i){try{await T.ready,T.write(t).catch(()=>{}),i()}catch(n){i(n)}},S._final=async function(t){try{await T.ready,T.close().catch(()=>{}),w=t}catch(r){t(r)}}}let I=d(k)?k.readable:k;m(I,()=>{if(w){let t=w;w=null,t()}})}if(R){if(a(k))k.on("readable",function(){if(v){let t=v;v=null,t()}}),k.on("end",function(){S.push(null)}),S._read=function(){for(;;){let t=k.read();if(null===t)return void(v=S._read);if(!S.push(t))return}};else if(c(k)){let C=(d(k)?k.readable:k).getReader();S._read=async function(){for(;;)try{let{value:t,done:r}=await C.read();if(!S.push(t))return;if(r)return void S.push(null)}catch{return}}}}return S._destroy=function(t,r){t||null===_||(t=new p),v=null,$=null,w=null,null===_?r(t):(_=r,a(k)&&s(k,t))},S}},5417(t,r,i){"use strict";let n=i(6308),{aggregateTwoErrors:o,codes:{ERR_MULTIPLE_CALLBACK:s},AbortError:a}=i(5596),{Symbol:l}=i(1807),{kIsDestroyed:u,isDestroyed:c,isFinished:d,isServerRequest:h}=i(3338),f=l("kDestroy"),p=l("kConstruct");function g(t,r,i){t&&(t.stack,r&&!r.errored&&(r.errored=t),i&&!i.errored&&(i.errored=t))}function b(t,r,i){let o=!1;function s(r){if(o)return;o=!0;let s=t._readableState,a=t._writableState;g(r,a,s),a&&(a.closed=!0),s&&(s.closed=!0),"function"==typeof i&&i(r),r?n.nextTick(m,t,r):n.nextTick(y,t)}try{t._destroy(r||null,s)}catch(a){s(a)}}function m(t,r){$(t,r),y(t)}function y(t){let r=t._readableState,i=t._writableState;i&&(i.closeEmitted=!0),r&&(r.closeEmitted=!0),(null!=i&&i.emitClose||null!=r&&r.emitClose)&&t.emit("close")}function $(t,r){let i=t._readableState,n=t._writableState;null!=n&&n.errorEmitted||null!=i&&i.errorEmitted||(n&&(n.errorEmitted=!0),i&&(i.errorEmitted=!0),t.emit("error",r))}function w(t,r,i){let o=t._readableState,s=t._writableState;if(null!=s&&s.destroyed||null!=o&&o.destroyed)return this;null!=o&&o.autoDestroy||null!=s&&s.autoDestroy?t.destroy(r):r&&(r.stack,s&&!s.errored&&(s.errored=r),o&&!o.errored&&(o.errored=r),i?n.nextTick($,t,r):$(t,r))}function v(t){let r=!1;function i(i){if(r)return void w(t,null!=i?i:new s);r=!0;let o=t._readableState,a=t._writableState,l=a||o;o&&(o.constructed=!0),a&&(a.constructed=!0),l.destroyed?t.emit(f,i):i?w(t,i,!0):n.nextTick(_,t)}try{t._construct(t=>{n.nextTick(i,t)})}catch(o){n.nextTick(i,o)}}function _(t){t.emit(p)}function S(t){return(null==t?void 0:t.setHeader)&&"function"==typeof t.abort}function E(t){t.emit("close")}function k(t,r){t.emit("error",r),n.nextTick(E,t)}t.exports={construct:function(t,r){if("function"!=typeof t._construct)return;let i=t._readableState,o=t._writableState;i&&(i.constructed=!1),o&&(o.constructed=!1),t.once(p,r),t.listenerCount(p)>1||n.nextTick(v,t)},destroyer:function(t,r){t&&!c(t)&&(r||d(t)||(r=new a),h(t)?(t.socket=null,t.destroy(r)):S(t)?t.abort():S(t.req)?t.req.abort():"function"==typeof t.destroy?t.destroy(r):"function"==typeof t.close?t.close():r?n.nextTick(k,t,r):n.nextTick(E,t),t.destroyed||(t[u]=!0))},destroy:function(t,r){let i=this._readableState,n=this._writableState,s=n||i;return null!=n&&n.destroyed||null!=i&&i.destroyed?("function"==typeof r&&r(),this):(g(t,n,i),n&&(n.destroyed=!0),i&&(i.destroyed=!0),s.constructed?b(this,t,r):this.once(f,function(i){b(this,o(i,t),r)}),this)},undestroy:function(){let t=this._readableState,r=this._writableState;t&&(t.constructed=!0,t.closed=!1,t.closeEmitted=!1,t.destroyed=!1,t.errored=null,t.errorEmitted=!1,t.reading=!1,t.ended=!1===t.readable,t.endEmitted=!1===t.readable),r&&(r.constructed=!0,r.destroyed=!1,r.closed=!1,r.closeEmitted=!1,r.errored=null,r.errorEmitted=!1,r.finalCalled=!1,r.prefinished=!1,r.ended=!1===r.writable,r.ending=!1===r.writable,r.finished=!1===r.writable)},errorOrDestroy:w}},5737(t,r,i){"use strict";let{ObjectDefineProperties:n,ObjectGetOwnPropertyDescriptor:o,ObjectKeys:s,ObjectSetPrototypeOf:a}=i(1807);t.exports=f;let l=i(943),u=i(4851);a(f.prototype,l.prototype),a(f,l);{let c=s(u.prototype);for(let d=0;d{h=!1,t&&$(r,t),f(t)}),c._write=function(t,r,o){i.write(t,r)?o():n=o},c._final=function(t){i.end(),o=t},i.on("drain",function(){if(n){let t=n;n=null,t()}}),i.on("finish",function(){if(o){let t=o;o=null,t()}})),d&&(g(r,t=>{d=!1,t&&$(r,t),f(t)}),r.on("readable",function(){if(l){let t=l;l=null,t()}}),r.on("end",function(){c.push(null)}),c._read=function(){for(;;){let t=r.read();if(null===t)return void(l=c._read);if(!c.push(t))return}}),c._destroy=function(t,s){t||null===u||(t=new b),l=null,n=null,o=null,null===u?s(t):(u=s,$(i,t),$(r,t))},c}t.exports=function t(r,i){if(h(r))return r;if(c(r))return C({readable:r});if(d(r))return C({writable:r});if(u(r))return C({writable:!1,readable:!1});if(f(r))return C({readable:v.fromWeb(r)});if(p(r))return C({writable:_.fromWeb(r)});if("function"==typeof r){let{value:o,write:s,final:a,destroy:g}=function(t){let{promise:r,resolve:i}=S(),o=new R,s=o.signal;return{value:t(async function*(){for(;;){let t=r;r=null;let{chunk:o,done:a,cb:l}=await t;if(n.nextTick(l),a)return;if(s.aborted)throw new b(void 0,{cause:s.reason});({promise:r,resolve:i}=S()),yield o}}(),{signal:s}),write(t,r,n){let o=i;i=null,o({chunk:t,done:!1,cb:n})},final(t){let r=i;i=null,r({done:!0,cb:t})},destroy(t,r){o.abort(),r(t)}}}(r);if(l(o))return E(I,o,{objectMode:!0,write:s,final:a,destroy:g});let w=null==o?void 0:o.then;if("function"==typeof w){let k,P=T(w,o,t=>{if(null!=t)throw new y("nully","body",t)},t=>{$(k,t)});return k=new I({objectMode:!0,readable:!1,write:s,final(t){a(async()=>{try{await P,n.nextTick(t,null)}catch(r){n.nextTick(t,r)}})},destroy:g})}throw new y("Iterable, AsyncIterable or AsyncFunction",i,o)}if(A(r))return t(r.arrayBuffer());if(l(r))return E(I,r,{objectMode:!0,writable:!1});if(f(null==r?void 0:r.readable)&&p(null==r?void 0:r.writable))return I.fromWeb(r);if("object"==typeof(null==r?void 0:r.writable)||"object"==typeof(null==r?void 0:r.readable))return C({readable:null!=r&&r.readable?c(null==r?void 0:r.readable)?null==r?void 0:r.readable:t(r.readable):void 0,writable:null!=r&&r.writable?d(null==r?void 0:r.writable)?null==r?void 0:r.writable:t(r.writable):void 0});let x=null==r?void 0:r.then;if("function"==typeof x){let M;return T(x,r,t=>{null!=t&&M.push(t),M.push(null)},t=>{$(M,t)}),M=new I({objectMode:!0,writable:!1,read(){}})}throw new m(i,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],r)}},6567(t,r,i){let n=i(6308),{AbortError:o,codes:s}=i(5596),{ERR_INVALID_ARG_TYPE:a,ERR_STREAM_PREMATURE_CLOSE:l}=s,{kEmptyObject:u,once:c}=i(8619),{validateAbortSignal:d,validateFunction:h,validateObject:f,validateBoolean:p}=i(570),{Promise:g,PromisePrototypeThen:b,SymbolDispose:m}=i(1807),{isClosed:y,isReadable:$,isReadableNodeStream:w,isReadableStream:v,isReadableFinished:_,isReadableErrored:S,isWritable:E,isWritableNodeStream:k,isWritableStream:A,isWritableFinished:R,isWritableErrored:T,isNodeStream:I,willEmitClose:C,kIsClosedPromise:P}=i(3338),x,M=()=>{};function O(t,r,s){var p,g,O;if(2===arguments.length?(s=r,r=u):null==r?r=u:f(r,"options"),h(s,"callback"),d(r.signal,"options.signal"),s=c(s),v(t)||A(t))return function(t,r,s){let a=!1,l=M;if(r.signal){if(l=()=>{a=!0,s.call(t,new o(void 0,{cause:r.signal.reason}))},r.signal.aborted)n.nextTick(l);else{x=x||i(8619).addAbortListener;let u=x(r.signal,l),d=s;s=c((...r)=>{u[m](),d.apply(t,r)})}}let h=(...r)=>{a||n.nextTick(()=>s.apply(t,r))};return b(t[P].promise,h,h),M}(t,r,s);if(!I(t))throw new a("stream",["ReadableStream","WritableStream","Stream"],t);let N=null!==(p=r.readable)&&void 0!==p?p:w(t),L=null!==(g=r.writable)&&void 0!==g?g:k(t),D=t._writableState,W=t._readableState,U=()=>{t.writable||j()},B=C(t)&&w(t)===N&&k(t)===L,F=R(t,!1),j=()=>{F=!0,t.destroyed&&(B=!1),B&&(!t.readable||N)||N&&!V||s.call(t)},V=_(t,!1),G=()=>{V=!0,t.destroyed&&(B=!1),B&&(!t.writable||L)||L&&!F||s.call(t)},q=r=>{s.call(t,r)},K=y(t),H=()=>{K=!0;let r=T(t)||S(t);return r&&"boolean"!=typeof r?s.call(t,r):N&&!V&&w(t,!0)&&!_(t,!1)?s.call(t,new l):!L||F||R(t,!1)?void s.call(t):s.call(t,new l)},z=()=>{K=!0;let r=T(t)||S(t);if(r&&"boolean"!=typeof r)return s.call(t,r);s.call(t)},Q=()=>{t.req.on("finish",j)};(O=t).setHeader&&"function"==typeof O.abort?(t.on("complete",j),B||t.on("abort",H),t.req?Q():t.on("request",Q)):L&&!D&&(t.on("end",U),t.on("close",U)),B||"boolean"!=typeof t.aborted||t.on("aborted",H),t.on("end",G),t.on("finish",j),!1!==r.error&&t.on("error",q),t.on("close",H),K?n.nextTick(H):null!=D&&D.errorEmitted||null!=W&&W.errorEmitted?B||n.nextTick(z):(N||B&&!$(t)||!F&&!1!==E(t))&&(L||B&&!E(t)||!V&&!1!==$(t))?W&&t.req&&t.aborted&&n.nextTick(z):n.nextTick(z);let Y=()=>{s=M,t.removeListener("aborted",H),t.removeListener("complete",j),t.removeListener("abort",H),t.removeListener("request",Q),t.req&&t.req.removeListener("finish",j),t.removeListener("end",U),t.removeListener("close",U),t.removeListener("finish",j),t.removeListener("end",G),t.removeListener("error",q),t.removeListener("close",H)};if(r.signal&&!K){let X=()=>{let i=s;Y(),i.call(t,new o(void 0,{cause:r.signal.reason}))};if(r.signal.aborted)n.nextTick(X);else{x=x||i(8619).addAbortListener;let Z=x(r.signal,X),J=s;s=c((...r)=>{Z[m](),J.apply(t,r)})}}return Y}t.exports=O,t.exports.finished=function(t,r){var i;let n=!1;return null===r&&(r=u),null!==(i=r)&&void 0!==i&&i.cleanup&&(p(r.cleanup,"cleanup"),n=r.cleanup),new g((i,o)=>{let s=O(t,r,t=>{n&&s(),t?o(t):i()})})}},7035(t,r,i){"use strict";let n=i(6308),{PromisePrototypeThen:o,SymbolAsyncIterator:s,SymbolIterator:a}=i(1807),{Buffer:l}=i(181),{ERR_INVALID_ARG_TYPE:u,ERR_STREAM_NULL_VALUES:c}=i(5596).codes;t.exports=function(t,r,i){let d,h;if("string"==typeof r||r instanceof l)return new t({objectMode:!0,...i,read(){this.push(r),this.push(null)}});if(r&&r[s])h=!0,d=r[s]();else{if(!r||!r[a])throw new u("iterable",["Iterable"],r);h=!1,d=r[a]()}let f=new t({objectMode:!0,highWaterMark:1,...i}),p=!1;return f._read=function(){p||(p=!0,async function(){for(;;){try{let{value:t,done:r}=h?await d.next():d.next();if(r)f.push(null);else{let i=t&&"function"==typeof t.then?await t:t;if(null===i)throw p=!1,new c;if(f.push(i))continue;p=!1}}catch(n){f.destroy(n)}break}}())},f._destroy=function(t,r){o(async function(t){let r="function"==typeof d.throw;if(null!=t&&r){let{value:i,done:n}=await d.throw(t);if(await i,n)return}if("function"==typeof d.return){let{value:o}=await d.return();await o}}(t),()=>n.nextTick(r,t),i=>n.nextTick(r,i||t))},f}},4952(t,r,i){"use strict";let{ArrayIsArray:n,ObjectSetPrototypeOf:o}=i(1807),{EventEmitter:s}=i(4434);function a(t){s.call(this,t)}function l(t,r,i){if("function"==typeof t.prependListener)return t.prependListener(r,i);t._events&&t._events[r]?n(t._events[r])?t._events[r].unshift(i):t._events[r]=[i,t._events[r]]:t.on(r,i)}o(a.prototype,s.prototype),o(a,s),a.prototype.pipe=function(t,r){let i=this;function n(r){t.writable&&!1===t.write(r)&&i.pause&&i.pause()}function o(){i.readable&&i.resume&&i.resume()}i.on("data",n),t.on("drain",o),t._isStdio||r&&!1===r.end||(i.on("end",u),i.on("close",c));let a=!1;function u(){a||(a=!0,t.end())}function c(){a||(a=!0,"function"==typeof t.destroy&&t.destroy())}function d(t){h(),0===s.listenerCount(this,"error")&&this.emit("error",t)}function h(){i.removeListener("data",n),t.removeListener("drain",o),i.removeListener("end",u),i.removeListener("close",c),i.removeListener("error",d),t.removeListener("error",d),i.removeListener("end",h),i.removeListener("close",h),t.removeListener("close",h)}return l(i,"error",d),l(t,"error",d),i.on("end",h),i.on("close",h),t.on("close",h),t.emit("pipe",i),t},t.exports={Stream:a,prependListener:l}},7614(t,r,i){"use strict";let n=globalThis.AbortController||i(1506).z1,{codes:{ERR_INVALID_ARG_VALUE:o,ERR_INVALID_ARG_TYPE:s,ERR_MISSING_ARGS:a,ERR_OUT_OF_RANGE:l},AbortError:u}=i(5596),{validateAbortSignal:c,validateInteger:d,validateObject:h}=i(570),f=i(1807).Symbol("kWeak"),p=i(1807).Symbol("kResistStopPropagation"),{finished:g}=i(6567),b=i(4511),{addAbortSignalNoValidate:m}=i(996),{isWritable:y,isNodeStream:$}=i(3338),{deprecate:w}=i(8619),{ArrayPrototypePush:v,Boolean:_,MathFloor:S,Number:E,NumberIsNaN:k,Promise:A,PromiseReject:R,PromiseResolve:T,PromisePrototypeThen:I,Symbol:C}=i(1807),P=C("kEmpty"),x=C("kEof");function M(t,r){if("function"!=typeof t)throw new s("fn",["Function","AsyncFunction"],t);null!=r&&h(r,"options"),null!=(null==r?void 0:r.signal)&&c(r.signal,"options.signal");let n=1;null!=(null==r?void 0:r.concurrency)&&(n=S(r.concurrency));let o=n-1;return null!=(null==r?void 0:r.highWaterMark)&&(o=S(r.highWaterMark)),d(n,"options.concurrency",1),d(o,"options.highWaterMark",0),o+=n,(async function*(){let s=i(8619).AbortSignalAny([null==r?void 0:r.signal].filter(_)),a=this,l=[],c={signal:s},d,h,f=!1,p=0;function g(){f=!0,b()}function b(){p-=1,m()}function m(){h&&!f&&p=o||p>=n)&&await new A(t=>{h=t})}l.push(x)}catch(m){let y=R(m);I(y,b,g),l.push(y)}finally{f=!0,d&&(d(),d=null)}}();try{for(;;){for(;l.length>0;){let y=await l[0];if(y===x)return;if(s.aborted)throw new u;y!==P&&(yield y),l.shift(),m()}await new A(t=>{d=t})}}finally{f=!0,h&&(h(),h=null)}}).call(this)}async function O(t,r){for await(let i of N.call(this,t,r))return!0;return!1}function N(t,r){if("function"!=typeof t)throw new s("fn",["Function","AsyncFunction"],t);return M.call(this,async function(r,i){return await t(r,i)?r:P},r)}class L extends a{constructor(){super("reduce"),this.message="Reduce of an empty stream requires an initial value"}}function D(t){if(k(t=E(t)))return 0;if(t<0)throw new l("number",">= 0",t);return t}t.exports.streamReturningOperators={asIndexedPairs:w(function(t){return null!=t&&h(t,"options"),null!=(null==t?void 0:t.signal)&&c(t.signal,"options.signal"),(async function*(){let r=0;for await(let i of this){var n;if(null!=t&&null!==(n=t.signal)&&void 0!==n&&n.aborted)throw new u({cause:t.signal.reason});yield[r++,i]}}).call(this)},"readable.asIndexedPairs will be removed in a future version."),drop:function(t,r){return null!=r&&h(r,"options"),null!=(null==r?void 0:r.signal)&&c(r.signal,"options.signal"),t=D(t),(async function*(){var i,n;if(null!=r&&null!==(i=r.signal)&&void 0!==i&&i.aborted)throw new u;for await(let o of this){if(null!=r&&null!==(n=r.signal)&&void 0!==n&&n.aborted)throw new u;t--<=0&&(yield o)}}).call(this)},filter:N,flatMap:function(t,r){let i=M.call(this,t,r);return(async function*(){for await(let t of i)yield*t}).call(this)},map:M,take:function(t,r){return null!=r&&h(r,"options"),null!=(null==r?void 0:r.signal)&&c(r.signal,"options.signal"),t=D(t),(async function*(){var i,n;if(null!=r&&null!==(i=r.signal)&&void 0!==i&&i.aborted)throw new u;for await(let o of this){if(null!=r&&null!==(n=r.signal)&&void 0!==n&&n.aborted)throw new u;if(t-- >0&&(yield o),t<=0)return}}).call(this)},compose:function(t,r){if(null!=r&&h(r,"options"),null!=(null==r?void 0:r.signal)&&c(r.signal,"options.signal"),$(t)&&!y(t))throw new o("stream",t,"must be writable");let i=b(this,t);return null!=r&&r.signal&&m(r.signal,i),i}},t.exports.promiseReturningOperators={every:async function(t,r){if("function"!=typeof t)throw new s("fn",["Function","AsyncFunction"],t);return!await O.call(this,async(...r)=>!await t(...r),r)},forEach:async function(t,r){if("function"!=typeof t)throw new s("fn",["Function","AsyncFunction"],t);for await(let i of M.call(this,async function(r,i){return await t(r,i),P},r));},reduce:async function(t,r,i){var o,a;if("function"!=typeof t)throw new s("reducer",["Function","AsyncFunction"],t);null!=i&&h(i,"options"),null!=(null==i?void 0:i.signal)&&c(i.signal,"options.signal");let l=arguments.length>1;if(null!=i&&null!==(o=i.signal)&&void 0!==o&&o.aborted){let d=new u(void 0,{cause:i.signal.reason});throw this.once("error",()=>{}),await g(this.destroy(d)),d}let b=new n,m=b.signal;null!=i&&i.signal&&i.signal.addEventListener("abort",()=>b.abort(),{once:!0,[f]:this,[p]:!0});let y=!1;try{for await(let $ of this){if(y=!0,null!=i&&null!==(a=i.signal)&&void 0!==a&&a.aborted)throw new u;l?r=await t(r,$,{signal:m}):(r=$,l=!0)}if(!y&&!l)throw new L}finally{b.abort()}return r},toArray:async function(t){null!=t&&h(t,"options"),null!=(null==t?void 0:t.signal)&&c(t.signal,"options.signal");let r=[];for await(let i of this){var n;if(null!=t&&null!==(n=t.signal)&&void 0!==n&&n.aborted)throw new u(void 0,{cause:t.signal.reason});v(r,i)}return r},some:O,find:async function(t,r){for await(let i of N.call(this,t,r))return i}}},6141(t,r,i){"use strict";let{ObjectSetPrototypeOf:n}=i(1807);t.exports=s;let o=i(3823);function s(t){if(!(this instanceof s))return new s(t);o.call(this,t)}n(s.prototype,o.prototype),n(s,o),s.prototype._transform=function(t,r,i){i(null,t)}},6213(t,r,i){let n=i(6308),{ArrayIsArray:o,Promise:s,SymbolAsyncIterator:a,SymbolDispose:l}=i(1807),u=i(6567),{once:c}=i(8619),d=i(5417),h=i(5737),{aggregateTwoErrors:f,codes:{ERR_INVALID_ARG_TYPE:p,ERR_INVALID_RETURN_VALUE:g,ERR_MISSING_ARGS:b,ERR_STREAM_DESTROYED:m,ERR_STREAM_PREMATURE_CLOSE:y},AbortError:$}=i(5596),{validateFunction:w,validateAbortSignal:v}=i(570),{isIterable:_,isReadable:S,isReadableNodeStream:E,isNodeStream:k,isTransformStream:A,isWebStream:R,isReadableStream:T,isReadableFinished:I}=i(3338),C=globalThis.AbortController||i(1506).z1,P,x,M;function O(t,r,i){let n=!1;return t.on("close",()=>{n=!0}),{destroy(r){n||(n=!0,d.destroyer(t,r||new m("pipe")))},cleanup:u(t,{readable:r,writable:i},t=>{n=!t})}}function N(t){if(_(t))return t;if(E(t))return async function*(t){x||(x=i(943)),yield*x.prototype[a].call(t)}(t);throw new p("val",["Readable","Iterable","AsyncIterable"],t)}async function L(t,r,i,{end:n}){let o,a=null,l=t=>{if(t&&(o=t),a){let r=a;a=null,r()}},c=()=>new s((t,r)=>{o?r(o):a=()=>{o?r(o):t()}});r.on("drain",l);let d=u(r,{readable:!1},l);try{for await(let h of(r.writableNeedDrain&&await c(),t))r.write(h)||await c();n&&(r.end(),await c()),i()}catch(p){i(o!==p?f(o,p):p)}finally{d(),r.off("drain",l)}}async function D(t,r,i,{end:n}){A(r)&&(r=r.writable);let o=r.getWriter();try{for await(let s of t)await o.ready,o.write(s).catch(()=>{});await o.ready,n&&await o.close(),i()}catch(a){try{await o.abort(a),i(a)}catch(l){i(l)}}}function W(t,r,s){if(1===t.length&&o(t[0])&&(t=t[0]),t.length<2)throw new b("streams");let a=new C,u=a.signal,c=null==s?void 0:s.signal,d=[];function f(){F(new $)}let m,y,w;v(c,"options.signal"),M=M||i(8619).addAbortListener,c&&(m=M(c,f));let I=[],x,W=0;function B(t){F(t,0==--W)}function F(t,i){var o;if(!t||y&&"ERR_STREAM_PREMATURE_CLOSE"!==y.code||(y=t),y||i){for(;I.length;)I.shift()(y);null===(o=m)||void 0===o||o[l](),a.abort(),i&&(y||d.forEach(t=>t()),n.nextTick(r,y,w))}}for(let j=0;j0,K=G||!1!==(null==s?void 0:s.end),H=j===t.length-1;if(k(V)){if(K){let{destroy:z,cleanup:Q}=O(V,G,q);I.push(z),S(V)&&H&&d.push(Q)}function Y(t){t&&"AbortError"!==t.name&&"ERR_STREAM_PREMATURE_CLOSE"!==t.code&&B(t)}V.on("error",Y),S(V)&&H&&d.push(()=>{V.removeListener("error",Y)})}if(0===j){if("function"==typeof V){if(!_(x=V({signal:u})))throw new g("Iterable, AsyncIterable or Stream","source",x)}else x=_(V)||E(V)||A(V)?V:h.from(V)}else if("function"==typeof V){var X,Z;if(x=A(x)?N(null===(X=x)||void 0===X?void 0:X.readable):N(x),x=V(x,{signal:u}),G){if(!_(x,!0))throw new g("AsyncIterable",`transform[${j-1}]`,x)}else{P||(P=i(6141));let J=new P({objectMode:!0}),ee=null===(Z=x)||void 0===Z?void 0:Z.then;if("function"==typeof ee)W++,ee.call(x,t=>{w=t,null!=t&&J.write(t),K&&J.end(),n.nextTick(B)},t=>{J.destroy(t),n.nextTick(B,t)});else if(_(x,!0))W++,L(x,J,B,{end:K});else{if(!T(x)&&!A(x))throw new g("AsyncIterable or Promise","destination",x);{let et=x.readable||x;W++,L(et,J,B,{end:K})}}x=J;let{destroy:er,cleanup:ei}=O(x,!1,!0);I.push(er),H&&d.push(ei)}}else if(k(V)){if(E(x)){W+=2;let en=U(x,V,B,{end:K});S(V)&&H&&d.push(en)}else if(A(x)||T(x)){let eo=x.readable||x;W++,L(eo,V,B,{end:K})}else{if(!_(x))throw new p("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],x);W++,L(x,V,B,{end:K})}x=V}else if(R(V)){if(E(x))W++,D(N(x),V,B,{end:K});else if(T(x)||_(x))W++,D(x,V,B,{end:K});else{if(!A(x))throw new p("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],x);W++,D(x.readable,V,B,{end:K})}x=V}else x=h.from(V)}return(null!=u&&u.aborted||null!=c&&c.aborted)&&n.nextTick(f),x}function U(t,r,i,{end:o}){let s=!1;if(r.on("close",()=>{s||i(new y)}),t.pipe(r,{end:!1}),o){function a(){s=!0,r.end()}I(t)?n.nextTick(a):t.once("end",a)}else i();return u(t,{readable:!0,writable:!1},r=>{let n=t._readableState;r&&"ERR_STREAM_PREMATURE_CLOSE"===r.code&&n&&n.ended&&!n.errored&&!n.errorEmitted?t.once("end",i).once("error",i):i(r)}),u(r,{readable:!1,writable:!0},i)}t.exports={pipelineImpl:W,pipeline:function(...t){var r;return W(t,c((w((r=t)[r.length-1],"streams[stream.length - 1]"),r.pop())))}}},943(t,r,i){let n=i(6308),{ArrayPrototypeIndexOf:o,NumberIsInteger:s,NumberIsNaN:a,NumberParseInt:l,ObjectDefineProperties:u,ObjectKeys:c,ObjectSetPrototypeOf:d,Promise:h,SafeSet:f,SymbolAsyncDispose:p,SymbolAsyncIterator:g,Symbol:b}=i(1807);t.exports=V,V.ReadableState=j;let{EventEmitter:m}=i(4434),{Stream:y,prependListener:$}=i(4952),{Buffer:w}=i(181),{addAbortSignal:v}=i(996),_=i(6567),S=i(8619).debuglog("stream",t=>{S=t}),E=i(6608),k=i(5417),{getHighWaterMark:A,getDefaultHighWaterMark:R}=i(2066),{aggregateTwoErrors:T,codes:{ERR_INVALID_ARG_TYPE:I,ERR_METHOD_NOT_IMPLEMENTED:C,ERR_OUT_OF_RANGE:P,ERR_STREAM_PUSH_AFTER_EOF:x,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:M},AbortError:O}=i(5596),{validateObject:N}=i(570),L=b("kPaused"),{StringDecoder:D}=i(3193),W=i(7035);d(V.prototype,y.prototype),d(V,y);let U=()=>{},{errorOrDestroy:B}=k;function F(t){return{enumerable:!1,get(){return!!(this.state&t)},set(r){r?this.state|=t:this.state&=~t}}}function j(t,r,n){"boolean"!=typeof n&&(n=r instanceof i(5737)),this.state=6192,t&&t.objectMode&&(this.state|=1),n&&t&&t.readableObjectMode&&(this.state|=1),this.highWaterMark=t?A(this,t,"readableHighWaterMark",n):R(!1),this.buffer=new E,this.length=0,this.pipes=[],this.flowing=null,this[L]=null,t&&!1===t.emitClose&&(this.state&=-2049),t&&!1===t.autoDestroy&&(this.state&=-4097),this.errored=null,this.defaultEncoding=t&&t.defaultEncoding||"utf8",this.awaitDrainWriters=null,this.decoder=null,this.encoding=null,t&&t.encoding&&(this.decoder=new D(t.encoding),this.encoding=t.encoding)}function V(t){if(!(this instanceof V))return new V(t);let r=this instanceof i(5737);this._readableState=new j(t,this,r),t&&("function"==typeof t.read&&(this._read=t.read),"function"==typeof t.destroy&&(this._destroy=t.destroy),"function"==typeof t.construct&&(this._construct=t.construct),t.signal&&!r&&v(t.signal,this)),y.call(this,t),k.construct(this,()=>{this._readableState.needReadable&&Q(this,this._readableState)})}function G(t,r,i,n){S("readableAddChunk",r);let o=t._readableState,s;if(1&o.state||("string"==typeof r?(i=i||o.defaultEncoding,o.encoding!==i&&(n&&o.encoding?r=w.from(r,i).toString(o.encoding):(r=w.from(r,i),i=""))):r instanceof w?i="":y._isUint8Array(r)?(r=y._uint8ArrayToBuffer(r),i=""):null!=r&&(s=new I("chunk",["string","Buffer","Uint8Array"],r))),s)B(t,s);else if(null===r)o.state&=-9,function(t,r){if(S("onEofChunk"),!r.ended){if(r.decoder){let i=r.decoder.end();i&&i.length&&(r.buffer.push(i),r.length+=r.objectMode?1:i.length)}r.ended=!0,r.sync?H(t):(r.needReadable=!1,r.emittedReadable=!0,z(t))}}(t,o);else if(1&o.state||r&&r.length>0){if(n){if(4&o.state)B(t,new M);else{if(o.destroyed||o.errored)return!1;q(t,o,r,!0)}}else if(o.ended)B(t,new x);else{if(o.destroyed||o.errored)return!1;o.state&=-9,o.decoder&&!i?(r=o.decoder.write(r),o.objectMode||0!==r.length?q(t,o,r,!1):Q(t,o)):q(t,o,r,!1)}}else n||(o.state&=-9,Q(t,o));return!o.ended&&(o.length0?(65536&r.state?r.awaitDrainWriters.clear():r.awaitDrainWriters=null,r.dataEmitted=!0,t.emit("data",i)):(r.length+=r.objectMode?1:i.length,n?r.buffer.unshift(i):r.buffer.push(i),64&r.state&&H(t)),Q(t,r)}function K(t,r){return t<=0||0===r.length&&r.ended?0:1&r.state?1:a(t)?r.flowing&&r.length?r.buffer.first().length:r.length:t<=r.length?t:r.ended?r.length:0}function H(t){let r=t._readableState;S("emitReadable",r.needReadable,r.emittedReadable),r.needReadable=!1,r.emittedReadable||(S("emitReadable",r.flowing),r.emittedReadable=!0,n.nextTick(z,t))}function z(t){let r=t._readableState;S("emitReadable_",r.destroyed,r.length,r.ended),r.destroyed||r.errored||!r.length&&!r.ended||(t.emit("readable"),r.emittedReadable=!1),r.needReadable=!r.flowing&&!r.ended&&r.length<=r.highWaterMark,ee(t)}function Q(t,r){!r.readingMore&&r.constructed&&(r.readingMore=!0,n.nextTick(Y,t,r))}function Y(t,r){for(;!r.reading&&!r.ended&&(r.length0,r.resumeScheduled&&!1===r[L]?r.flowing=!0:t.listenerCount("data")>0?t.resume():r.readableListening||(r.flowing=null)}function Z(t){S("readable nexttick read 0"),t.read(0)}function J(t,r){S("resume",r.reading),r.reading||t.read(0),r.resumeScheduled=!1,t.emit("resume"),ee(t),r.flowing&&!r.reading&&t.read(0)}function ee(t){let r=t._readableState;for(S("flow",r.flowing);r.flowing&&null!==t.read(););}function et(t,r){"function"!=typeof t.read&&(t=V.wrap(t,{objectMode:!0}));let i=async function*(t,r){let i,n=U;function o(r){this===t?(n(),n=U):n=r}t.on("readable",o);let s=_(t,{writable:!1},t=>{i=t?T(i,t):null,n(),n=U});try{for(;;){let a=t.destroyed?null:t.read();if(null!==a)yield a;else{if(i)throw i;if(null===i)return;await new h(o)}}}catch(l){throw i=T(i,l)}finally{(i||!1!==(null==r?void 0:r.destroyOnReturn))&&(void 0===i||t._readableState.autoDestroy)?k.destroyer(t,null):(t.off("readable",o),s())}}(t,r);return i.stream=t,i}function er(t,r){if(0===r.length)return null;let i;return r.objectMode?i=r.buffer.shift():!t||t>=r.length?(i=r.decoder?r.buffer.join(""):1===r.buffer.length?r.buffer.first():r.buffer.concat(r.length),r.buffer.clear()):i=r.buffer.consume(t,r.decoder),i}function ei(t){let r=t._readableState;S("endReadable",r.endEmitted),r.endEmitted||(r.ended=!0,n.nextTick(en,r,t))}function en(t,r){if(S("endReadableNT",t.endEmitted,t.length),!t.errored&&!t.closeEmitted&&!t.endEmitted&&0===t.length){if(t.endEmitted=!0,r.emit("end"),r.writable&&!1===r.allowHalfOpen)n.nextTick(eo,r);else if(t.autoDestroy){let i=r._writableState;(!i||i.autoDestroy&&(i.finished||!1===i.writable))&&r.destroy()}}}function eo(t){!t.writable||t.writableEnded||t.destroyed||t.end()}let es;function ea(){return void 0===es&&(es={}),es}u(j.prototype,{objectMode:F(1),ended:F(2),endEmitted:F(4),reading:F(8),constructed:F(16),sync:F(32),needReadable:F(64),emittedReadable:F(128),readableListening:F(256),resumeScheduled:F(512),errorEmitted:F(1024),emitClose:F(2048),autoDestroy:F(4096),destroyed:F(8192),closed:F(16384),closeEmitted:F(32768),multiAwaitDrain:F(65536),readingMore:F(131072),dataEmitted:F(262144)}),V.prototype.destroy=k.destroy,V.prototype._undestroy=k.undestroy,V.prototype._destroy=function(t,r){r(t)},V.prototype[m.captureRejectionSymbol]=function(t){this.destroy(t)},V.prototype[p]=function(){let t;return this.destroyed||(t=this.readableEnded?null:new O,this.destroy(t)),new h((r,i)=>_(this,n=>n&&n!==t?i(n):r(null)))},V.prototype.push=function(t,r){return G(this,t,r,!1)},V.prototype.unshift=function(t,r){return G(this,t,r,!0)},V.prototype.isPaused=function(){let t=this._readableState;return!0===t[L]||!1===t.flowing},V.prototype.setEncoding=function(t){let r=new D(t);this._readableState.decoder=r,this._readableState.encoding=this._readableState.decoder.encoding;let i=this._readableState.buffer,n="";for(let o of i)n+=r.write(o);return i.clear(),""!==n&&i.push(n),this._readableState.length=n.length,this},V.prototype.read=function(t){S("read",t),void 0===t?t=NaN:s(t)||(t=l(t,10));let r=this._readableState,i=t;if(t>r.highWaterMark&&(r.highWaterMark=function(t){if(t>1073741824)throw new P("size","<= 1GiB",t);return t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,++t}(t)),0!==t&&(r.state&=-129),0===t&&r.needReadable&&((0!==r.highWaterMark?r.length>=r.highWaterMark:r.length>0)||r.ended))return S("read: emitReadable",r.length,r.ended),0===r.length&&r.ended?ei(this):H(this),null;if(0===(t=K(t,r))&&r.ended)return 0===r.length&&ei(this),null;let n,o=!!(64&r.state);if(S("need readable",o),(0===r.length||r.length-t0?er(t,r):null)?(r.needReadable=r.length<=r.highWaterMark,t=0):(r.length-=t,r.multiAwaitDrain?r.awaitDrainWriters.clear():r.awaitDrainWriters=null),0===r.length&&(r.ended||(r.needReadable=!0),i!==t&&r.ended&&ei(this)),null===n||r.errorEmitted||r.closeEmitted||(r.dataEmitted=!0,this.emit("data",n)),n},V.prototype._read=function(t){throw new C("_read()")},V.prototype.pipe=function(t,r){let i=this,o=this._readableState;1===o.pipes.length&&(o.multiAwaitDrain||(o.multiAwaitDrain=!0,o.awaitDrainWriters=new f(o.awaitDrainWriters?[o.awaitDrainWriters]:[]))),o.pipes.push(t),S("pipe count=%d opts=%j",o.pipes.length,r);let s=r&&!1===r.end||t===n.stdout||t===n.stderr?b:a;function a(){S("onend"),t.end()}let l;o.endEmitted?n.nextTick(s):i.once("end",s),t.on("unpipe",function r(n,s){S("onunpipe"),n===i&&s&&!1===s.hasUnpiped&&(s.hasUnpiped=!0,S("cleanup"),t.removeListener("close",p),t.removeListener("finish",g),l&&t.removeListener("drain",l),t.removeListener("error",h),t.removeListener("unpipe",r),i.removeListener("end",a),i.removeListener("end",b),i.removeListener("data",d),u=!0,l&&o.awaitDrainWriters&&(!t._writableState||t._writableState.needDrain)&&l())});let u=!1;function c(){var r,n;u||(1===o.pipes.length&&o.pipes[0]===t?(S("false write response, pause",0),o.awaitDrainWriters=t,o.multiAwaitDrain=!1):o.pipes.length>1&&o.pipes.includes(t)&&(S("false write response, pause",o.awaitDrainWriters.size),o.awaitDrainWriters.add(t)),i.pause()),l||(l=(r=i,n=t,function(){let t=r._readableState;t.awaitDrainWriters===n?(S("pipeOnDrain",1),t.awaitDrainWriters=null):t.multiAwaitDrain&&(S("pipeOnDrain",t.awaitDrainWriters.size),t.awaitDrainWriters.delete(n)),t.awaitDrainWriters&&0!==t.awaitDrainWriters.size||!r.listenerCount("data")||r.resume()}),t.on("drain",l))}function d(r){S("ondata");let i=t.write(r);S("dest.write",i),!1===i&&c()}function h(r){if(S("onerror",r),b(),t.removeListener("error",h),0===t.listenerCount("error")){let i=t._writableState||t._readableState;i&&!i.errorEmitted?B(t,r):t.emit("error",r)}}function p(){t.removeListener("finish",g),b()}function g(){S("onfinish"),t.removeListener("close",p),b()}function b(){S("unpipe"),i.unpipe(t)}return i.on("data",d),$(t,"error",h),t.once("close",p),t.once("finish",g),t.emit("pipe",i),!0===t.writableNeedDrain?c():o.flowing||(S("pipe resume"),i.resume()),t},V.prototype.unpipe=function(t){let r=this._readableState;if(0===r.pipes.length)return this;if(!t){let i=r.pipes;r.pipes=[],this.pause();for(let n=0;n0,!1!==o.flowing&&this.resume()):"readable"===t&&(o.endEmitted||o.readableListening||(o.readableListening=o.needReadable=!0,o.flowing=!1,o.emittedReadable=!1,S("on readable",o.length,o.reading),o.length?H(this):o.reading||n.nextTick(Z,this))),i},V.prototype.addListener=V.prototype.on,V.prototype.removeListener=function(t,r){let i=y.prototype.removeListener.call(this,t,r);return"readable"===t&&n.nextTick(X,this),i},V.prototype.off=V.prototype.removeListener,V.prototype.removeAllListeners=function(t){let r=y.prototype.removeAllListeners.apply(this,arguments);return"readable"!==t&&void 0!==t||n.nextTick(X,this),r},V.prototype.resume=function(){var t,r;let i=this._readableState;return i.flowing||(S("resume"),i.flowing=!i.readableListening,t=this,(r=i).resumeScheduled||(r.resumeScheduled=!0,n.nextTick(J,t,r))),i[L]=!1,this},V.prototype.pause=function(){return S("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(S("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState[L]=!0,this},V.prototype.wrap=function(t){let r=!1;t.on("data",i=>{!this.push(i)&&t.pause&&(r=!0,t.pause())}),t.on("end",()=>{this.push(null)}),t.on("error",t=>{B(this,t)}),t.on("close",()=>{this.destroy()}),t.on("destroy",()=>{this.destroy()}),this._read=()=>{r&&t.resume&&(r=!1,t.resume())};let i=c(t);for(let n=1;n{r?t?t(r):this.destroy(r):(null!=i&&this.push(i),this.push(null),t&&t())})}function h(){this._final!==d&&d.call(this)}c.prototype._final=d,c.prototype._transform=function(t,r,i){throw new s("_transform()")},c.prototype._write=function(t,r,i){let n=this._readableState,o=this._writableState,s=n.length;this._transform(t,r,(t,r)=>{t?i(t):(null!=r&&this.push(r),o.ended||s===n.length||n.length{let t=this._writableState;t.writing||V(this,t),q(this,t)})}function L(t,r,i,o){let s=t._writableState;if("function"==typeof i)o=i,i=s.defaultEncoding;else{if(i){if("buffer"!==i&&!b.isEncoding(i))throw new I(i)}else i=s.defaultEncoding;"function"!=typeof o&&(o=P)}if(null===r)throw new R;if(!s.objectMode){if("string"==typeof r)!1!==s.decodeStrings&&(r=b.from(r,i),i="buffer");else if(r instanceof b)i="buffer";else{if(!g._isUint8Array(r))throw new v("chunk",["string","Buffer","Uint8Array"],r);r=g._uint8ArrayToBuffer(r),i="buffer"}}let a;return s.ending?a=new T:s.destroyed&&(a=new k("write")),a?(n.nextTick(o,a),C(t,a,!0),a):(s.pendingcb++,function(t,r,i,n,o){let s=r.objectMode?1:i.length;r.length+=s;let a=r.lengthi.bufferedIndex&&V(t,i),o?null!==i.afterWriteTickInfo&&i.afterWriteTickInfo.cb===s?i.afterWriteTickInfo.count++:(i.afterWriteTickInfo={count:1,cb:s,stream:t,state:i},n.nextTick(B,i.afterWriteTickInfo)):F(t,i,1,s))):C(t,new S)}function B({stream:t,state:r,count:i,cb:n}){return r.afterWriteTickInfo=null,F(t,r,i,n)}function F(t,r,i,n){for(r.ending||t.destroyed||0!==r.length||!r.needDrain||(r.needDrain=!1,t.emit("drain"));i-- >0;)r.pendingcb--,n();r.destroyed&&j(r),q(t,r)}function j(t){var r,i;if(t.writing)return;for(let n=t.bufferedIndex;n1&&t._writev){r.pendingcb-=a-1;let u=r.allNoop?P:t=>{for(let r=l;r256?(i.splice(0,l),r.bufferedIndex=0):r.bufferedIndex=l}r.bufferProcessing=!1}function G(t){return t.ending&&!t.destroyed&&t.constructed&&0===t.length&&!t.errored&&0===t.buffered.length&&!t.finished&&!t.writing&&!t.errorEmitted&&!t.closeEmitted}function q(t,r,i){var o,s;G(r)&&(o=t,(s=r).prefinished||s.finalCalled||("function"!=typeof o._final||s.destroyed?(s.prefinished=!0,o.emit("prefinish")):(s.finalCalled=!0,function(t,r){let i=!1;function o(o){if(i)C(t,null!=o?o:S());else if(i=!0,r.pendingcb--,o){let s=r[x].splice(0);for(let a=0;a{G(r)?K(t,r):r.pendingcb--},t,r)):G(r)&&(r.pendingcb++,K(t,r))))}function K(t,r){r.pendingcb--,r.finished=!0;let i=r[x].splice(0);for(let n=0;n{if("number"!=typeof t)throw new w(r,"number",t);if(!l(t))throw new _(r,"an integer",t);if(tn)throw new _(r,`>= ${i} && <= ${n}`,t)}),C=y((t,r,i=-2147483648,n=2147483647)=>{if("number"!=typeof t)throw new w(r,"number",t);if(!l(t))throw new _(r,"an integer",t);if(tn)throw new _(r,`>= ${i} && <= ${n}`,t)}),P=y((t,r,i=!1)=>{if("number"!=typeof t)throw new w(r,"number",t);if(!l(t))throw new _(r,"an integer",t);let n=i?1:0;if(t4294967295)throw new _(r,`>= ${n} && <= 4294967295`,t)});function x(t,r){if("string"!=typeof t)throw new w(r,"string",t)}let M=y((t,r,i)=>{if(!o(i,t)){let n=s(a(i,t=>"string"==typeof t?`'${t}'`:g(t)),", ");throw new v(r,t,"must be one of: "+n)}});function O(t,r){if("boolean"!=typeof t)throw new w(r,"boolean",t)}function N(t,r,i){return null!=t&&f(t,r)?t[r]:i}let L=y((t,r,i=null)=>{let o=N(i,"allowArray",!1),s=N(i,"allowFunction",!1);if(!N(i,"nullable",!1)&&null===t||!o&&n(t)||"object"!=typeof t&&(!s||"function"!=typeof t))throw new w(r,"Object",t)}),D=y((t,r)=>{if(null!=t&&"object"!=typeof t&&"function"!=typeof t)throw new w(r,"a dictionary",t)}),W=y((t,r,i=0)=>{if(!n(t))throw new w(r,"Array",t);if(t.length{if(!A(t))throw new w(r,["Buffer","TypedArray","DataView"],t)}),B=y((t,r)=>{if(void 0!==t&&(null===t||"object"!=typeof t||!("aborted"in t)))throw new w(r,"AbortSignal",t)}),F=y((t,r)=>{if("function"!=typeof t)throw new w(r,"Function",t)}),j=y((t,r)=>{if("function"!=typeof t||k(t))throw new w(r,"Function",t)}),V=y((t,r)=>{if(void 0!==t)throw new w(r,"undefined",t)}),G=/^(?:<[^>]*>)(?:\s*;\s*[^;"\s]+(?:=(")?[^;"\s]*\1)?)*$/;function q(t,r){if(void 0===t||!p(G,t))throw new v(r,t,'must be an array or string of format "; rel=preload; as=style"')}t.exports={isInt32:function(t){return t===(0|t)},isUint32:function(t){return t===t>>>0},parseFileMode:function(t,r,i){if(void 0===t&&(t=i),"string"==typeof t){if(null===p(T,t))throw new v(r,t,"must be a 32-bit unsigned integer or an octal string");t=h(t,8)}return P(t,r),t},validateArray:W,validateStringArray:function(t,r){W(t,r);for(let i=0;in||(null!=i||null!=n)&&u(t))throw new _(r,`${null!=i?`>= ${i}`:""}${null!=i&&null!=n?" && ":""}${null!=n?`<= ${n}`:""}`,t)},validateObject:L,validateOneOf:M,validatePlainFunction:j,validatePort:function(t,r="Port",i=!0){if("number"!=typeof t&&"string"!=typeof t||"string"==typeof t&&0===m(t).length||+t!=+t>>>0||t>65535||0===t&&!i)throw new $(r,t,i);return 0|t},validateSignalName:function(t,r="signal"){if(x(t,r),void 0===R[t]){if(void 0!==R[b(t)])throw new S(t+" (signals must use all capital letters)");throw new S(t)}},validateString:x,validateUint32:P,validateUndefined:V,validateUnion:function(t,r,i){if(!o(i,t))throw new w(r,`('${s(i,"|")}')`,t)},validateAbortSignal:B,validateLinkHeaderValue:function(t){if("string"==typeof t)return q(t,"hints"),t;if(n(t)){let r=t.length,i="";if(0===r)return i;for(let o=0;o; rel=preload; as=style"')}}},5596(t,r,i){"use strict";let{format:n,inspect:o,AggregateError:s}=i(8619),a=globalThis.AggregateError||s,l=Symbol("kIsNodeError"),u=["string","function","number","object","Function","Object","boolean","bigint","symbol"],c=/^([A-Z][a-z0-9]*)+$/,d={};function h(t,r){if(!t)throw new d.ERR_INTERNAL_ASSERTION(r)}function f(t){let r="",i=t.length,n="-"===t[0]?1:0;for(;i>=n+4;i-=3)r=`_${t.slice(i-3,i)}${r}`;return`${t.slice(0,i)}${r}`}function p(t,r,i){i||(i=Error);class o extends i{constructor(...i){super(function(t,r,i){if("function"==typeof r)return h(r.length<=i.length,`Code: ${t}; The provided arguments length (${i.length}) does not match the required ones (${r.length}).`),r(...i);let o=(r.match(/%[dfijoOs]/g)||[]).length;return h(o===i.length,`Code: ${t}; The provided arguments length (${i.length}) does not match the required ones (${o}).`),0===i.length?r:n(r,...i)}(t,r,i))}toString(){return`${this.name} [${t}]: ${this.message}`}}Object.defineProperties(o.prototype,{name:{value:i.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${t}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),o.prototype.code=t,o.prototype[l]=!0,d[t]=o}function g(t){let r="__node_internal_"+t.name;return Object.defineProperty(t,"name",{value:r}),t}p("ERR_ASSERTION","%s",Error),p("ERR_INVALID_ARG_TYPE",(t,r,i)=>{h("string"==typeof t,"'name' must be a string"),Array.isArray(r)||(r=[r]);let n="The ";t.endsWith(" argument")?n+=`${t} `:n+=`"${t}" ${t.includes(".")?"property":"argument"} `,n+="must be ";let s=[],a=[],l=[];for(let d of r)h("string"==typeof d,"All expected entries have to be of type string"),u.includes(d)?s.push(d.toLowerCase()):c.test(d)?a.push(d):(h("object"!==d,'The value "object" should be written as "Object"'),l.push(d));if(a.length>0){let f=s.indexOf("object");-1!==f&&(s.splice(s,f,1),a.push("Object"))}if(s.length>0){switch(s.length){case 1:n+=`of type ${s[0]}`;break;case 2:n+=`one of type ${s[0]} or ${s[1]}`;break;default:{let p=s.pop();n+=`one of type ${s.join(", ")}, or ${p}`}}(a.length>0||l.length>0)&&(n+=" or ")}if(a.length>0){switch(a.length){case 1:n+=`an instance of ${a[0]}`;break;case 2:n+=`an instance of ${a[0]} or ${a[1]}`;break;default:{let g=a.pop();n+=`an instance of ${a.join(", ")}, or ${g}`}}l.length>0&&(n+=" or ")}switch(l.length){case 0:break;case 1:l[0].toLowerCase()!==l[0]&&(n+="an "),n+=`${l[0]}`;break;case 2:n+=`one of ${l[0]} or ${l[1]}`;break;default:{let b=l.pop();n+=`one of ${l.join(", ")}, or ${b}`}}if(null==i)n+=`. Received ${i}`;else if("function"==typeof i&&i.name)n+=`. Received function ${i.name}`;else if("object"==typeof i){var m;null!==(m=i.constructor)&&void 0!==m&&m.name?n+=`. Received an instance of ${i.constructor.name}`:n+=`. Received ${o(i,{depth:-1})}`}else{let y=o(i,{colors:!1});y.length>25&&(y=`${y.slice(0,25)}...`),n+=`. Received type ${typeof i} (${y})`}return n},TypeError),p("ERR_INVALID_ARG_VALUE",(t,r,i="is invalid")=>{let n=o(r);return n.length>128&&(n=n.slice(0,128)+"..."),`The ${t.includes(".")?"property":"argument"} '${t}' ${i}. Received ${n}`},TypeError),p("ERR_INVALID_RETURN_VALUE",(t,r,i)=>{var n;return`Expected ${t} to be returned from the "${r}" function but got ${null!=i&&null!==(n=i.constructor)&&void 0!==n&&n.name?`instance of ${i.constructor.name}`:"type "+typeof i}.`},TypeError),p("ERR_MISSING_ARGS",(...t)=>{let r;h(t.length>0,"At least one arg needs to be specified");let i=t.length;switch(t=(Array.isArray(t)?t:[t]).map(t=>`"${t}"`).join(" or "),i){case 1:r+=`The ${t[0]} argument`;break;case 2:r+=`The ${t[0]} and ${t[1]} arguments`;break;default:{let n=t.pop();r+=`The ${t.join(", ")}, and ${n} arguments`}}return`${r} must be specified`},TypeError),p("ERR_OUT_OF_RANGE",(t,r,i)=>{let n;return h(r,'Missing "range" argument'),Number.isInteger(i)&&Math.abs(i)>4294967296?n=f(String(i)):"bigint"==typeof i?(n=String(i),(i>2n**32n||i<-(2n**32n))&&(n=f(n)),n+="n"):n=o(i),`The value of "${t}" is out of range. It must be ${r}. Received ${n}`},RangeError),p("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),p("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),p("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),p("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),p("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),p("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),p("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),p("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),p("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),p("ERR_STREAM_WRITE_AFTER_END","write after end",Error),p("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),t.exports={AbortError:class t extends Error{constructor(t="The operation was aborted",r){if(void 0!==r&&"object"!=typeof r)throw new d.ERR_INVALID_ARG_TYPE("options","Object",r);super(t,r),this.code="ABORT_ERR",this.name="AbortError"}},aggregateTwoErrors:g(function(t,r){if(t&&r&&t!==r){if(Array.isArray(r.errors))return r.errors.push(t),r;let i=new a([r,t],r.message);return i.code=r.code,i}return t||r}),hideStackFrames:g,codes:d}},5955(t,r,i){"use strict";let n=i(2203);if(n&&"disable"===process.env.READABLE_STREAM){let o=n.promises;t.exports._uint8ArrayToBuffer=n._uint8ArrayToBuffer,t.exports._isUint8Array=n._isUint8Array,t.exports.isDisturbed=n.isDisturbed,t.exports.isErrored=n.isErrored,t.exports.isReadable=n.isReadable,t.exports.Readable=n.Readable,t.exports.Writable=n.Writable,t.exports.Duplex=n.Duplex,t.exports.Transform=n.Transform,t.exports.PassThrough=n.PassThrough,t.exports.addAbortSignal=n.addAbortSignal,t.exports.finished=n.finished,t.exports.destroy=n.destroy,t.exports.pipeline=n.pipeline,t.exports.compose=n.compose,Object.defineProperty(n,"promises",{configurable:!0,enumerable:!0,get:()=>o}),t.exports.Stream=n.Stream}else{let s=i(3423),a=i(6312),l=s.Readable.destroy;t.exports=s.Readable,t.exports._uint8ArrayToBuffer=s._uint8ArrayToBuffer,t.exports._isUint8Array=s._isUint8Array,t.exports.isDisturbed=s.isDisturbed,t.exports.isErrored=s.isErrored,t.exports.isReadable=s.isReadable,t.exports.Readable=s.Readable,t.exports.Writable=s.Writable,t.exports.Duplex=s.Duplex,t.exports.Transform=s.Transform,t.exports.PassThrough=s.PassThrough,t.exports.addAbortSignal=s.addAbortSignal,t.exports.finished=s.finished,t.exports.destroy=s.destroy,t.exports.destroy=l,t.exports.pipeline=s.pipeline,t.exports.compose=s.compose,Object.defineProperty(s,"promises",{configurable:!0,enumerable:!0,get:()=>a}),t.exports.Stream=s.Stream}t.exports.default=t.exports},1807(t){"use strict";t.exports={ArrayIsArray:t=>Array.isArray(t),ArrayPrototypeIncludes:(t,r)=>t.includes(r),ArrayPrototypeIndexOf:(t,r)=>t.indexOf(r),ArrayPrototypeJoin:(t,r)=>t.join(r),ArrayPrototypeMap:(t,r)=>t.map(r),ArrayPrototypePop:(t,r)=>t.pop(r),ArrayPrototypePush:(t,r)=>t.push(r),ArrayPrototypeSlice:(t,r,i)=>t.slice(r,i),Error,FunctionPrototypeCall:(t,r,...i)=>t.call(r,...i),FunctionPrototypeSymbolHasInstance:(t,r)=>Function.prototype[Symbol.hasInstance].call(t,r),MathFloor:Math.floor,Number,NumberIsInteger:Number.isInteger,NumberIsNaN:Number.isNaN,NumberMAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,NumberMIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,NumberParseInt:Number.parseInt,ObjectDefineProperties:(t,r)=>Object.defineProperties(t,r),ObjectDefineProperty:(t,r,i)=>Object.defineProperty(t,r,i),ObjectGetOwnPropertyDescriptor:(t,r)=>Object.getOwnPropertyDescriptor(t,r),ObjectKeys:t=>Object.keys(t),ObjectSetPrototypeOf:(t,r)=>Object.setPrototypeOf(t,r),Promise,PromisePrototypeCatch:(t,r)=>t.catch(r),PromisePrototypeThen:(t,r,i)=>t.then(r,i),PromiseReject:t=>Promise.reject(t),PromiseResolve:t=>Promise.resolve(t),ReflectApply:Reflect.apply,RegExpPrototypeTest:(t,r)=>t.test(r),SafeSet:Set,String,StringPrototypeSlice:(t,r,i)=>t.slice(r,i),StringPrototypeToLowerCase:t=>t.toLowerCase(),StringPrototypeToUpperCase:t=>t.toUpperCase(),StringPrototypeTrim:t=>t.trim(),Symbol,SymbolFor:Symbol.for,SymbolAsyncIterator:Symbol.asyncIterator,SymbolHasInstance:Symbol.hasInstance,SymbolIterator:Symbol.iterator,SymbolDispose:Symbol.dispose||Symbol("Symbol.dispose"),SymbolAsyncDispose:Symbol.asyncDispose||Symbol("Symbol.asyncDispose"),TypedArrayPrototypeSet:(t,r,i)=>t.set(r,i),Boolean,Uint8Array}},8619(t,r,i){"use strict";let n=i(181),{kResistStopPropagation:o,SymbolDispose:s}=i(1807),a=globalThis.AbortSignal||i(1506).h8,l=globalThis.AbortController||i(1506).z1,u=Object.getPrototypeOf(async function(){}).constructor,c=globalThis.Blob||n.Blob,d=(t,r)=>{if(void 0!==t&&(null===t||"object"!=typeof t||!("aborted"in t)))throw new ERR_INVALID_ARG_TYPE(r,"AbortSignal",t)};t.exports={AggregateError:class t extends Error{constructor(t){if(!Array.isArray(t))throw TypeError("Expected input to be an Array, got "+typeof t);let r="";for(let i=0;i{t=i,r=n}),resolve:t,reject:r}},promisify:t=>new Promise((r,i)=>{t((t,...n)=>t?i(t):r(...n))}),debuglog:()=>function(){},format:(t,...r)=>t.replace(/%([sdifj])/g,function(...[t,i]){let n=r.shift();return"f"===i?n.toFixed(6):"j"===i?JSON.stringify(n):"s"===i&&"object"==typeof n?`${n.constructor!==Object?n.constructor.name:""} {}`.trim():n.toString()}),inspect(t){switch(typeof t){case"string":if(t.includes("'")){if(!t.includes('"'))return`"${t}"`;if(!t.includes("`")&&!t.includes("${"))return`\`${t}\``}return`'${t}'`;case"number":return isNaN(t)?"NaN":Object.is(t,-0)?String(t):t;case"bigint":return`${String(t)}n`;case"boolean":case"undefined":return String(t);case"object":return"{}"}},types:{isAsyncFunction:t=>t instanceof u,isArrayBufferView:t=>ArrayBuffer.isView(t)},isBlob:void 0!==c?function(t){return t instanceof c}:function(t){return!1},deprecate:(t,r)=>t,addAbortListener:i(4434).addAbortListener||function(t,r){if(void 0===t)throw new ERR_INVALID_ARG_TYPE("signal","AbortSignal",t);let i;return d(t,"signal"),((t,r)=>{if("function"!=typeof t)throw new ERR_INVALID_ARG_TYPE("listener","Function",t)})(r),t.aborted?queueMicrotask(()=>r()):(t.addEventListener("abort",r,{__proto__:null,once:!0,[o]:!0}),i=()=>{t.removeEventListener("abort",r)}),{__proto__:null,[s](){var t;null===(t=i)||void 0===t||t()}}},AbortSignalAny:a.any||function(t){if(1===t.length)return t[0];let r=new l,i=()=>r.abort();return t.forEach(t=>{d(t,"signals"),t.addEventListener("abort",i,{once:!0})}),r.signal.addEventListener("abort",()=>{t.forEach(t=>t.removeEventListener("abort",i))},{once:!0}),r.signal}},t.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")},3423(t,r,i){let{Buffer:n}=i(181),{ObjectDefineProperty:o,ObjectKeys:s,ReflectApply:a}=i(1807),{promisify:{custom:l}}=i(8619),{streamReturningOperators:u,promiseReturningOperators:c}=i(7614),{codes:{ERR_ILLEGAL_CONSTRUCTOR:d}}=i(5596),h=i(4511),{setDefaultHighWaterMark:f,getDefaultHighWaterMark:p}=i(2066),{pipeline:g}=i(6213),{destroyer:b}=i(5417),m=i(6567),y=i(6312),$=i(3338),w=t.exports=i(4952).Stream;for(let v of(w.isDestroyed=$.isDestroyed,w.isDisturbed=$.isDisturbed,w.isErrored=$.isErrored,w.isReadable=$.isReadable,w.isWritable=$.isWritable,w.Readable=i(943),s(u))){let _=u[v];function S(...t){if(new.target)throw d();return w.Readable.from(a(_,this,t))}o(S,"name",{__proto__:null,value:_.name}),o(S,"length",{__proto__:null,value:_.length}),o(w.Readable.prototype,v,{__proto__:null,value:S,enumerable:!1,configurable:!0,writable:!0})}for(let E of s(c)){let k=c[E];function S(...t){if(new.target)throw d();return a(k,this,t)}o(S,"name",{__proto__:null,value:k.name}),o(S,"length",{__proto__:null,value:k.length}),o(w.Readable.prototype,E,{__proto__:null,value:S,enumerable:!1,configurable:!0,writable:!0})}w.Writable=i(4851),w.Duplex=i(5737),w.Transform=i(3823),w.PassThrough=i(6141),w.pipeline=g;let{addAbortSignal:A}=i(996);w.addAbortSignal=A,w.finished=m,w.destroy=b,w.compose=h,w.setDefaultHighWaterMark=f,w.getDefaultHighWaterMark=p,o(w,"promises",{__proto__:null,configurable:!0,enumerable:!0,get:()=>y}),o(g,l,{__proto__:null,enumerable:!0,get:()=>y.pipeline}),o(m,l,{__proto__:null,enumerable:!0,get:()=>y.finished}),w.Stream=w,w._isUint8Array=function(t){return t instanceof Uint8Array},w._uint8ArrayToBuffer=function(t){return n.from(t.buffer,t.byteOffset,t.byteLength)}},6312(t,r,i){"use strict";let{ArrayPrototypePop:n,Promise:o}=i(1807),{isIterable:s,isNodeStream:a,isWebStream:l}=i(3338),{pipelineImpl:u}=i(6213),{finished:c}=i(6567);i(3423),t.exports={finished:c,pipeline:function(...t){return new o((r,i)=>{let o,c,d=t[t.length-1];if(d&&"object"==typeof d&&!a(d)&&!s(d)&&!l(d)){let h=n(t);o=h.signal,c=h.end}u(t,(t,n)=>{t?i(t):r(n)},{signal:o,end:c})})}}},4650(t,r,i){let{Buffer:n}=i(181),o={},s=n.isBuffer(n.from([1,2]).subarray(0,1));function a(t){let r=n.allocUnsafe(2);return r.writeUInt8(t>>8,0),r.writeUInt8(255&t,1),r}t.exports={cache:o,generateCache:function(){for(let t=0;t<65536;t++)o[t]=a(t)},generateNumber:a,genBufVariableByteInt:function(t){let r=0,i=0,o=n.allocUnsafe(4);do r=t%128|0,(t=t/128|0)>0&&(r|=128),o.writeUInt8(r,i++);while(t>0&&i<4);return t>0&&(i=0),s?o.subarray(0,i):o.slice(0,i)},generate4ByteBuffer:function(t){let r=n.allocUnsafe(4);return r.writeUInt32BE(t,0),r}}},9210(t){t.exports=class{constructor(){this.cmd=null,this.retain=!1,this.qos=0,this.dup=!1,this.length=-1,this.topic=null,this.payload=null}}},9829(t,r,i){let n=i(3090),{EventEmitter:o}=i(4434),s=i(9210),a=i(3541),l=i(9171)("mqtt-packet:parser");class u extends o{constructor(){super(),this.parser=this.constructor.parser}static parser(t){return this instanceof u?(this.settings=t||{},this._states=["_parseHeader","_parseLength","_parsePayload","_newPacket"],this._resetState(),this):new u().parser(t)}_resetState(){l("_resetState: resetting packet, error, _list, and _stateCounter"),this.packet=new s,this.error=null,this._list=n(),this._stateCounter=0}parse(t){for(this.error&&this._resetState(),this._list.append(t),l("parse: current state: %s",this._states[this._stateCounter]);(-1!==this.packet.length||this._list.length>0)&&this[this._states[this._stateCounter]]()&&!this.error;)this._stateCounter++,l("parse: state complete. _stateCounter is now: %d",this._stateCounter),l("parse: packet.length: %d, buffer list length: %d",this.packet.length,this._list.length),this._stateCounter>=this._states.length&&(this._stateCounter=0);return l("parse: exited while loop. packet: %d, buffer list length: %d",this.packet.length,this._list.length),this._list.length}_parseHeader(){let t=this._list.readUInt8(0),r=t>>a.CMD_SHIFT;this.packet.cmd=a.types[r];let i=a.requiredHeaderFlags[r];return null!=i&&(15&t)!==i?this._emitError(Error(a.requiredHeaderFlagsErrors[r])):(this.packet.retain=!!(t&a.RETAIN_MASK),this.packet.qos=t>>a.QOS_SHIFT&a.QOS_MASK,this.packet.qos>2?this._emitError(Error("Packet must not have both QoS bits set to 1")):(this.packet.dup=!!(t&a.DUP_MASK),l("_parseHeader: packet: %o",this.packet),this._list.consume(1),!0))}_parseLength(){let t=this._parseVarByteNum(!0);return t&&(this.packet.length=t.value,this._list.consume(t.bytes)),l("_parseLength %d",t.value),!!t}_parsePayload(){l("_parsePayload: payload %O",this._list);let t=!1;if(0===this.packet.length||this._list.length>=this.packet.length){switch(this._pos=0,this.packet.cmd){case"connect":this._parseConnect();break;case"connack":this._parseConnack();break;case"publish":this._parsePublish();break;case"puback":case"pubrec":case"pubrel":case"pubcomp":this._parseConfirmation();break;case"subscribe":this._parseSubscribe();break;case"suback":this._parseSuback();break;case"unsubscribe":this._parseUnsubscribe();break;case"unsuback":this._parseUnsuback();break;case"pingreq":case"pingresp":break;case"disconnect":this._parseDisconnect();break;case"auth":this._parseAuth();break;default:this._emitError(Error("Not supported"))}t=!0}return l("_parsePayload complete result: %s",t),t}_parseConnect(){let t,r,i,n;l("_parseConnect");let o={},s=this.packet,u=this._parseString();if(null===u)return this._emitError(Error("Cannot parse protocolId"));if("MQTT"!==u&&"MQIsdp"!==u)return this._emitError(Error("Invalid protocolId"));if(s.protocolId=u,this._pos>=this._list.length)return this._emitError(Error("Packet too short"));if(s.protocolVersion=this._list.readUInt8(this._pos),s.protocolVersion>=128&&(s.bridgeMode=!0,s.protocolVersion=s.protocolVersion-128),3!==s.protocolVersion&&4!==s.protocolVersion&&5!==s.protocolVersion)return this._emitError(Error("Invalid protocol version"));if(this._pos++,this._pos>=this._list.length)return this._emitError(Error("Packet too short"));if(1&this._list.readUInt8(this._pos))return this._emitError(Error("Connect flag bit 0 must be 0, but got 1"));o.username=this._list.readUInt8(this._pos)&a.USERNAME_MASK,o.password=this._list.readUInt8(this._pos)&a.PASSWORD_MASK,o.will=this._list.readUInt8(this._pos)&a.WILL_FLAG_MASK;let c=!!(this._list.readUInt8(this._pos)&a.WILL_RETAIN_MASK),d=(this._list.readUInt8(this._pos)&a.WILL_QOS_MASK)>>a.WILL_QOS_SHIFT;if(o.will)s.will={},s.will.retain=c,s.will.qos=d;else{if(c)return this._emitError(Error("Will Retain Flag must be set to zero when Will Flag is set to 0"));if(d)return this._emitError(Error("Will QoS must be set to zero when Will Flag is set to 0"))}if(s.clean=!!(this._list.readUInt8(this._pos)&a.CLEAN_SESSION_MASK),this._pos++,s.keepalive=this._parseNum(),-1===s.keepalive)return this._emitError(Error("Packet too short"));if(5===s.protocolVersion){let h=this._parseProperties();Object.getOwnPropertyNames(h).length&&(s.properties=h)}let f=this._parseString();if(null===f)return this._emitError(Error("Packet too short"));if(s.clientId=f,l("_parseConnect: packet.clientId: %s",s.clientId),o.will){if(5===s.protocolVersion){let p=this._parseProperties();Object.getOwnPropertyNames(p).length&&(s.will.properties=p)}if(null===(t=this._parseString()))return this._emitError(Error("Cannot parse will topic"));if(s.will.topic=t,l("_parseConnect: packet.will.topic: %s",s.will.topic),null===(r=this._parseBuffer()))return this._emitError(Error("Cannot parse will payload"));s.will.payload=r,l("_parseConnect: packet.will.paylaod: %s",s.will.payload)}if(o.username){if(null===(n=this._parseString()))return this._emitError(Error("Cannot parse username"));s.username=n,l("_parseConnect: packet.username: %s",s.username)}if(o.password){if(null===(i=this._parseBuffer()))return this._emitError(Error("Cannot parse password"));s.password=i}return this.settings=s,l("_parseConnect: complete"),s}_parseConnack(){l("_parseConnack");let t=this.packet;if(this._list.length<1)return null;let r=this._list.readUInt8(this._pos++);if(r>1)return this._emitError(Error("Invalid connack flags, bits 7-1 must be set to 0"));if(t.sessionPresent=!!(r&a.SESSIONPRESENT_MASK),5===this.settings.protocolVersion)this._list.length>=2?t.reasonCode=this._list.readUInt8(this._pos++):t.reasonCode=0;else{if(this._list.length<2)return null;t.returnCode=this._list.readUInt8(this._pos++)}if(-1===t.returnCode||-1===t.reasonCode)return this._emitError(Error("Cannot parse return code"));if(5===this.settings.protocolVersion){let i=this._parseProperties();Object.getOwnPropertyNames(i).length&&(t.properties=i)}l("_parseConnack: complete")}_parsePublish(){l("_parsePublish");let t=this.packet;if(t.topic=this._parseString(),null===t.topic)return this._emitError(Error("Cannot parse topic"));if(!(t.qos>0)||this._parseMessageId()){if(5===this.settings.protocolVersion){let r=this._parseProperties();Object.getOwnPropertyNames(r).length&&(t.properties=r)}t.payload=this._list.slice(this._pos,t.length),l("_parsePublish: payload from buffer list: %o",t.payload)}}_parseSubscribe(){l("_parseSubscribe");let t=this.packet,r,i,n,o,s,u,c;if(t.subscriptions=[],this._parseMessageId()){if(5===this.settings.protocolVersion){let d=this._parseProperties();Object.getOwnPropertyNames(d).length&&(t.properties=d)}if(t.length<=0)return this._emitError(Error("Malformed subscribe, no payload specified"));for(;this._pos=t.length)return this._emitError(Error("Malformed Subscribe Payload"));if(i=this._parseByte(),5===this.settings.protocolVersion){if(192&i)return this._emitError(Error("Invalid subscribe topic flag bits, bits 7-6 must be 0"))}else if(252&i)return this._emitError(Error("Invalid subscribe topic flag bits, bits 7-2 must be 0"));if((n=i&a.SUBSCRIBE_OPTIONS_QOS_MASK)>2)return this._emitError(Error("Invalid subscribe QoS, must be <= 2"));if(u=!!(i>>a.SUBSCRIBE_OPTIONS_NL_SHIFT&a.SUBSCRIBE_OPTIONS_NL_MASK),s=!!(i>>a.SUBSCRIBE_OPTIONS_RAP_SHIFT&a.SUBSCRIBE_OPTIONS_RAP_MASK),(o=i>>a.SUBSCRIBE_OPTIONS_RH_SHIFT&a.SUBSCRIBE_OPTIONS_RH_MASK)>2)return this._emitError(Error("Invalid retain handling, must be <= 2"));c={topic:r,qos:n},5===this.settings.protocolVersion?(c.nl=u,c.rap=s,c.rh=o):this.settings.bridgeMode&&(c.rh=0,c.rap=!0,c.nl=!0),l("_parseSubscribe: push subscription `%s` to subscription",c),t.subscriptions.push(c)}}}_parseSuback(){l("_parseSuback");let t=this.packet;if(this.packet.granted=[],this._parseMessageId()){if(5===this.settings.protocolVersion){let r=this._parseProperties();Object.getOwnPropertyNames(r).length&&(t.properties=r)}if(t.length<=0)return this._emitError(Error("Malformed suback, no payload specified"));for(;this._pos2&&128!==i)return this._emitError(Error("Invalid suback QoS, must be 0, 1, 2 or 128"));this.packet.granted.push(i)}}}_parseUnsubscribe(){l("_parseUnsubscribe");let t=this.packet;if(t.unsubscriptions=[],this._parseMessageId()){if(5===this.settings.protocolVersion){let r=this._parseProperties();Object.getOwnPropertyNames(r).length&&(t.properties=r)}if(t.length<=0)return this._emitError(Error("Malformed unsubscribe, no payload specified"));for(;this._pos2){switch(t.reasonCode=this._parseByte(),this.packet.cmd){case"puback":case"pubrec":if(!a.MQTT5_PUBACK_PUBREC_CODES[t.reasonCode])return this._emitError(Error("Invalid "+this.packet.cmd+" reason code"));break;case"pubrel":case"pubcomp":if(!a.MQTT5_PUBREL_PUBCOMP_CODES[t.reasonCode])return this._emitError(Error("Invalid "+this.packet.cmd+" reason code"))}l("_parseConfirmation: packet.reasonCode `%d`",t.reasonCode)}else t.reasonCode=0;if(t.length>3){let r=this._parseProperties();Object.getOwnPropertyNames(r).length&&(t.properties=r)}}return!0}_parseDisconnect(){let t=this.packet;if(l("_parseDisconnect"),5===this.settings.protocolVersion){this._list.length>0?(t.reasonCode=this._parseByte(),a.MQTT5_DISCONNECT_CODES[t.reasonCode]||this._emitError(Error("Invalid disconnect reason code"))):t.reasonCode=0;let r=this._parseProperties();Object.getOwnPropertyNames(r).length&&(t.properties=r)}return l("_parseDisconnect result: true"),!0}_parseAuth(){l("_parseAuth");let t=this.packet;if(5!==this.settings.protocolVersion)return this._emitError(Error("Not supported auth packet for this version MQTT"));if(t.reasonCode=this._parseByte(),!a.MQTT5_AUTH_CODES[t.reasonCode])return this._emitError(Error("Invalid auth reason code"));let r=this._parseProperties();return Object.getOwnPropertyNames(r).length&&(t.properties=r),l("_parseAuth: result: true"),!0}_parseMessageId(){let t=this.packet;return t.messageId=this._parseNum(),null===t.messageId?(this._emitError(Error("Cannot parse messageId")),!1):(l("_parseMessageId: packet.messageId %d",t.messageId),!0)}_parseString(t){let r=this._parseNum(),i=r+this._pos;if(-1===r||i>this._list.length||i>this.packet.length)return null;let n=this._list.toString("utf8",this._pos,i);return this._pos+=r,l("_parseString: result: %s",n),n}_parseStringPair(){return l("_parseStringPair"),{name:this._parseString(),value:this._parseString()}}_parseBuffer(){let t=this._parseNum(),r=t+this._pos;if(-1===t||r>this._list.length||r>this.packet.length)return null;let i=this._list.slice(this._pos,r);return this._pos+=t,l("_parseBuffer: result: %o",i),i}_parseNum(){if(this._list.length-this._pos<2)return -1;let t=this._list.readUInt16BE(this._pos);return this._pos+=2,l("_parseNum: result: %s",t),t}_parse4ByteNum(){if(this._list.length-this._pos<4)return -1;let t=this._list.readUInt32BE(this._pos);return this._pos+=4,l("_parse4ByteNum: result: %s",t),t}_parseVarByteNum(t){l("_parseVarByteNum");let r,i=0,n=1,o=0,s=!1,u=this._pos?this._pos:0;for(;i<4&&u+i=i&&this._emitError(Error("Invalid variable byte integer")),u&&(this._pos+=i),l("_parseVarByteNum: result: %o",s=!!s&&(t?{bytes:i,value:o}:o)),s}_parseByte(){let t;return this._pos=4)&&(h||c))$+=o.byteLength(h)+2;else{if(l<4)return r.destroy(Error("clientId must be supplied before 3.1.1")),!1;if(1*c==0)return r.destroy(Error("clientId must be given if cleanSession set to 0")),!1}if("number"!=typeof d||d<0||d>65535||d%1!=0)return r.destroy(Error("Invalid keepalive")),!1;if($+=2,$+=1,5===l){if(!(m=R(r,g)))return!1;$+=m.length}if(u){if("object"!=typeof u)return r.destroy(Error("Invalid will")),!1;if(!u.topic||"string"!=typeof u.topic)return r.destroy(Error("Invalid will topic")),!1;if($+=o.byteLength(u.topic)+2,$+=2,u.payload){if(!(u.payload.length>=0))return r.destroy(Error("Invalid will payload")),!1;"string"==typeof u.payload?$+=o.byteLength(u.payload):$+=u.payload.length}if(y={},5===l){if(!(y=R(r,u.properties)))return!1;$+=y.length}}let w=!1;if(null!=f){if(!x(f))return r.destroy(Error("Invalid username")),!1;w=!0,$+=o.byteLength(f)+2}if(null!=p){if(!w)return r.destroy(Error("Username is required to use password")),!1;if(!x(p))return r.destroy(Error("Invalid password")),!1;$+=P(p)+2}r.write(n.CONNECT_HEADER),v(r,$),A(r,a),s.bridgeMode&&(l+=128),r.write(131===l?n.VERSION131:132===l?n.VERSION132:4===l?n.VERSION4:5===l?n.VERSION5:n.VERSION3);let S=0;return S|=null!=f?n.USERNAME_MASK:0,S|=null!=p?n.PASSWORD_MASK:0,S|=u&&u.retain?n.WILL_RETAIN_MASK:0,S|=u&&u.qos?u.qos<0&&b(r,p),null!=y&&y.write(),c("publish: payload: %o",f),r.write(f)}(t,r,i);case"puback":case"pubrec":case"pubrel":case"pubcomp":return function(t,r,i){let s=i?i.protocolVersion:4,a=t||{},l=a.cmd||"puback",u=a.messageId,c=a.dup&&"pubrel"===l?n.DUP_MASK:0,d=0,h=a.reasonCode,f=a.properties,p=5===s?3:2;if("pubrel"===l&&(d=1),"number"!=typeof u)return r.destroy(Error("Invalid messageId")),!1;let g=null;if(5===s&&"object"==typeof f){if(!(g=T(r,f,i,p)))return!1;p+=g.length}return r.write(n.ACKS[l][d][c][0]),3===p&&(p+=0!==h?1:-1),v(r,p),b(r,u),5===s&&2!==p&&r.write(o.from([h])),null!==g?g.write():4===p&&r.write(o.from([0])),!0}(t,r,i);case"subscribe":return function(t,r,i){c("subscribe: packet: ");let s=i?i.protocolVersion:4,a=t||{},l=a.dup?n.DUP_MASK:0,u=a.messageId,d=a.subscriptions,h=a.properties,f=0;if("number"!=typeof u)return r.destroy(Error("Invalid messageId")),!1;f+=2;let p=null;if(5===s){if(!(p=R(r,h)))return!1;f+=p.length}if("object"!=typeof d||!d.length)return r.destroy(Error("Invalid subscriptions")),!1;for(let g=0;g2)return r.destroy(Error("Invalid subscriptions - invalid Retain Handling")),!1}f+=o.byteLength(m)+2+1}c("subscribe: writing to stream: %o",n.SUBSCRIBE_HEADER),r.write(n.SUBSCRIBE_HEADER[1][l?1:0][0]),v(r,f),b(r,u),null!==p&&p.write();let w=!0;for(let S of d){let E=S.topic,k=S.qos,A=+S.nl,T=+S.rap,I=S.rh,C;_(r,E),C=n.SUBSCRIBE_OPTIONS_QOS[k],5===s&&(C|=A?n.SUBSCRIBE_OPTIONS_NL:0,C|=T?n.SUBSCRIBE_OPTIONS_RAP:0,C|=I?n.SUBSCRIBE_OPTIONS_RH[I]:0),w=r.write(o.from([C]))}return w}(t,r,i);case"suback":return function(t,r,i){let s=i?i.protocolVersion:4,a=t||{},l=a.messageId,u=a.granted,c=a.properties,d=0;if("number"!=typeof l)return r.destroy(Error("Invalid messageId")),!1;if(d+=2,"object"!=typeof u||!u.length)return r.destroy(Error("Invalid qos vector")),!1;for(let h=0;hb===E,set(t){t?(d&&0!==Object.keys(d).length||(m=!0),b=E):(m=!1,b=k)}});let w={};function v(t,r){if(r>n.VARBYTEINT_MAX)return t.destroy(Error(`Invalid variable byte integer: ${r}`)),!1;let i=w[r];return i||(i=p(r),r<16384&&(w[r]=i)),c("writeVarByteInt: writing to stream: %o",i),t.write(i)}function _(t,r){let i=o.byteLength(r);return b(t,i),c("writeString: %s",r),t.write(r,"utf8")}function S(t,r,i){_(t,r),_(t,i)}function E(t,r){return c("writeNumberCached: number: %d",r),c("writeNumberCached: %o",d[r]),t.write(d[r])}function k(t,r){let i=h(r);return c("writeNumberGenerated: %o",i),t.write(i)}function A(t,r){"string"==typeof r?_(t,r):r?(b(t,r.length),t.write(r)):b(t,0)}function R(t,r){if("object"!=typeof r||null!=r.length)return{length:1,write(){C(t,{},0)}};let i=0;function s(r,i){let s=0;switch(n.propertiesTypes[r]){case"byte":if("boolean"!=typeof i)return t.destroy(Error(`Invalid ${r}: ${i}`)),!1;s+=2;break;case"int8":if("number"!=typeof i||i<0||i>255)return t.destroy(Error(`Invalid ${r}: ${i}`)),!1;s+=2;break;case"binary":if(i&&null===i)return t.destroy(Error(`Invalid ${r}: ${i}`)),!1;s+=1+o.byteLength(i)+2;break;case"int16":if("number"!=typeof i||i<0||i>65535)return t.destroy(Error(`Invalid ${r}: ${i}`)),!1;s+=3;break;case"int32":if("number"!=typeof i||i<0||i>4294967295)return t.destroy(Error(`Invalid ${r}: ${i}`)),!1;s+=5;break;case"var":if("number"!=typeof i||i<0||i>268435455)return t.destroy(Error(`Invalid ${r}: ${i}`)),!1;s+=1+o.byteLength(p(i));break;case"string":if("string"!=typeof i)return t.destroy(Error(`Invalid ${r}: ${i}`)),!1;s+=3+o.byteLength(i.toString());break;case"pair":if("object"!=typeof i)return t.destroy(Error(`Invalid ${r}: ${i}`)),!1;s+=Object.getOwnPropertyNames(i).reduce((t,r)=>{let n=i[r];return Array.isArray(n)?t+=n.reduce((t,i)=>t+(3+o.byteLength(r.toString())+2+o.byteLength(i.toString())),0):t+=3+o.byteLength(r.toString())+2+o.byteLength(i[r].toString()),t},0);break;default:return t.destroy(Error(`Invalid property ${r}: ${i}`)),!1}return s}if(r)for(let a in r){let l=0,u=0,c=r[a];if(Array.isArray(c))for(let d=0;ds;){let l=o.shift();if(!l||!r[l])return!1;delete r[l],a=R(t,r)}return a}function I(t,r,i){switch(n.propertiesTypes[r]){case"byte":t.write(o.from([n.properties[r]])),t.write(o.from([+i]));break;case"int8":t.write(o.from([n.properties[r]])),t.write(o.from([i]));break;case"binary":t.write(o.from([n.properties[r]])),A(t,i);break;case"int16":t.write(o.from([n.properties[r]])),b(t,i);break;case"int32":t.write(o.from([n.properties[r]])),function(t,r){let i=g(r);c("write4ByteNumber: %o",i),t.write(i)}(t,i);break;case"var":t.write(o.from([n.properties[r]])),v(t,i);break;case"string":t.write(o.from([n.properties[r]])),_(t,i);break;case"pair":Object.getOwnPropertyNames(i).forEach(s=>{let a=i[s];Array.isArray(a)?a.forEach(i=>{t.write(o.from([n.properties[r]])),S(t,s.toString(),i.toString())}):(t.write(o.from([n.properties[r]])),S(t,s.toString(),a.toString()))});break;default:return t.destroy(Error(`Invalid property ${r} value: ${i}`)),!1}}function C(t,r,i){for(let n in v(t,i),r)if(Object.prototype.hasOwnProperty.call(r,n)&&null!==r[n]){let o=r[n];if(Array.isArray(o))for(let s=0;s{this.push(t)})}_read(t){this.proxy.read(t)}_write(t,r,i){this.isSocketOpen?this.writeToProxy(t,r,i):this.writeQueue.push({chunk:t,encoding:r,cb:i})}_final(t){this.writeQueue=[],this.proxy.end(t)}_destroy(t,r){this.writeQueue=[],this.proxy.destroy(),r(t)}socketReady(){this.emit("connect"),this.isSocketOpen=!0,this.processWriteQueue()}writeToProxy(t,r,i){!1===this.proxy.write(t,r)?this.proxy.once("drain",i):i()}processWriteQueue(){for(;this.writeQueue.length>0;){let{chunk:t,encoding:r,cb:i}=this.writeQueue.shift();this.writeToProxy(t,r,i)}}}r.BufferedDuplex=a},6183:function(t,r,i){"use strict";var n=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(r,"__esModule",{value:!0});let o=n(i(7838));r.default=class{constructor(t,r,i){this.keepalive=1e3*t,this.checkPing=r,this.timer=(0,o.default)(i),this.reschedule()}clear(){this.timerId&&(this.timer.clear(this.timerId),this.timerId=null)}reschedule(){this.clear(),this.timerId=this.timer.set(()=>{this.checkPing(),this.timerId&&this.reschedule()},this.keepalive)}}},5642:function(t,r,i){"use strict";var n=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(r,"__esModule",{value:!0}),r.TypedEventEmitter=void 0;let o=n(i(4434)),s=i(305);class a{}r.TypedEventEmitter=a,(0,s.applyMixin)(a,o.default)},3183:function(t,r,i){"use strict";var n=this&&this.__createBinding||(Object.create?function(t,r,i,n){void 0===n&&(n=i);var o=Object.getOwnPropertyDescriptor(r,i);o&&!("get"in o?!r.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return r[i]}}),Object.defineProperty(t,n,o)}:function(t,r,i,n){void 0===n&&(n=i),t[n]=r[i]}),o=this&&this.__setModuleDefault||(Object.create?function(t,r){Object.defineProperty(t,"default",{enumerable:!0,value:r})}:function(t,r){t.default=r}),s=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var r={};if(null!=t)for(var i in t)"default"!==i&&Object.prototype.hasOwnProperty.call(t,i)&&n(r,t,i);return o(r,t),r},a=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(r,"__esModule",{value:!0});let l=a(i(3413)),u=a(i(9880)),c=a(i(4349)),d=i(6070),h=a(i(7319)),f=s(i(5962)),p=a(i(9171)),g=a(i(6487)),b=a(i(8466)),m=i(305),y=i(5642),$=a(i(6183)),w=s(i(5193)),v=globalThis.setImmediate||((...t)=>{let r=t.shift();(0,m.nextTick)(()=>{r(...t)})}),_={keepalive:60,reschedulePings:!0,protocolId:"MQTT",protocolVersion:4,reconnectPeriod:1e3,connectTimeout:3e4,clean:!0,resubscribe:!0,writeCache:!0,timerVariant:"auto"};class S extends y.TypedEventEmitter{static defaultId(){return`mqttjs_${Math.random().toString(16).substr(2,8)}`}constructor(t,r){for(let i in super(),this.options=r||{},_)void 0===this.options[i]?this.options[i]=_[i]:this.options[i]=r[i];this.log=this.options.log||(0,p.default)("mqttjs:client"),this.noop=this._noop.bind(this),this.log("MqttClient :: version:",S.VERSION),w.isWebWorker?this.log("MqttClient :: environment","webworker"):this.log("MqttClient :: environment",w.default?"browser":"node"),this.log("MqttClient :: options.protocol",r.protocol),this.log("MqttClient :: options.protocolVersion",r.protocolVersion),this.log("MqttClient :: options.username",r.username),this.log("MqttClient :: options.keepalive",r.keepalive),this.log("MqttClient :: options.reconnectPeriod",r.reconnectPeriod),this.log("MqttClient :: options.rejectUnauthorized",r.rejectUnauthorized),this.log("MqttClient :: options.properties.topicAliasMaximum",r.properties?r.properties.topicAliasMaximum:void 0),this.options.clientId="string"==typeof r.clientId?r.clientId:S.defaultId(),this.log("MqttClient :: clientId",this.options.clientId),this.options.customHandleAcks=5===r.protocolVersion&&r.customHandleAcks?r.customHandleAcks:(...t)=>{t[3](null,0)},this.options.writeCache||(u.default.writeToStream.cacheNumbers=!1),this.streamBuilder=t,this.messageIdProvider=void 0===this.options.messageIdProvider?new c.default:this.options.messageIdProvider,this.outgoingStore=r.outgoingStore||new g.default,this.incomingStore=r.incomingStore||new g.default,this.queueQoSZero=void 0===r.queueQoSZero||r.queueQoSZero,this._resubscribeTopics={},this.messageIdToTopic={},this.pingTimer=null,this.connected=!1,this.disconnecting=!1,this.reconnecting=!1,this.queue=[],this.connackTimer=null,this.reconnectTimer=null,this._storeProcessing=!1,this._packetIdsDuringStoreProcessing={},this._storeProcessingQueue=[],this.outgoing={},this._firstConnection=!0,r.properties&&r.properties.topicAliasMaximum>0&&(r.properties.topicAliasMaximum>65535?this.log("MqttClient :: options.properties.topicAliasMaximum is out of range"):this.topicAliasRecv=new l.default(r.properties.topicAliasMaximum)),this.on("connect",()=>{let{queue:t}=this,r=()=>{let i=t.shift();this.log("deliver :: entry %o",i);let n=null;if(!i)return void this._resubscribe();n=i.packet,this.log("deliver :: call _sendPacket for %o",n);let o=!0;n.messageId&&0!==n.messageId&&(this.messageIdProvider.register(n.messageId)||(o=!1)),o?this._sendPacket(n,t=>{i.cb&&i.cb(t),r()}):(this.log("messageId: %d has already used. The message is skipped and removed.",n.messageId),r())};this.log("connect :: sending queued packets"),r()}),this.on("close",()=>{this.log("close :: connected set to `false`"),this.connected=!1,this.log("close :: clearing connackTimer"),clearTimeout(this.connackTimer),this.log("close :: clearing ping timer"),this.pingTimer&&(this.pingTimer.clear(),this.pingTimer=null),this.topicAliasRecv&&this.topicAliasRecv.clear(),this.log("close :: calling _setupReconnect"),this._setupReconnect()}),this.options.manualConnect||(this.log("MqttClient :: setting up stream"),this.connect())}handleAuth(t,r){r()}handleMessage(t,r){r()}_nextId(){return this.messageIdProvider.allocate()}getLastMessageId(){return this.messageIdProvider.getLastAllocated()}connect(){var t;let r=new d.Writable,i=u.default.parser(this.options),n=null,o=[];this.log("connect :: calling method to clear reconnect"),this._clearReconnect(),this.log("connect :: using streamBuilder provided to client to create stream"),this.stream=this.streamBuilder(this),i.on("packet",t=>{this.log("parser :: on packet push to packets array."),o.push(t)});let s=()=>{this.log("work :: getting next packet in queue");let t=o.shift();if(t)this.log("work :: packet pulled from queue"),(0,b.default)(this,t,a);else{this.log("work :: no packets in queue");let r=n;n=null,this.log("work :: done flag is %s",!!r),r&&r()}},a=()=>{if(o.length)(0,m.nextTick)(s);else{let t=n;n=null,t()}};r._write=(t,r,o)=>{n=o,this.log("writable stream :: parsing buffer"),i.parse(t),s()},this.log("connect :: pipe stream to writable stream"),this.stream.pipe(r),this.stream.on("error",t=>{this.log("streamErrorHandler :: error",t.message),t.code?(this.log("streamErrorHandler :: emitting error"),this.emit("error",t)):this.noop(t)}),this.stream.on("close",()=>{this.log("(%s)stream :: on close",this.options.clientId),this._flushVolatile(),this.log("stream: emit close to MqttClient"),this.emit("close")}),this.log("connect: sending packet `connect`");let l={cmd:"connect",protocolId:this.options.protocolId,protocolVersion:this.options.protocolVersion,clean:this.options.clean,clientId:this.options.clientId,keepalive:this.options.keepalive,username:this.options.username,password:this.options.password,properties:this.options.properties};if(this.options.will&&(l.will=Object.assign(Object.assign({},this.options.will),{payload:null===(t=this.options.will)||void 0===t?void 0:t.payload})),this.topicAliasRecv&&(l.properties||(l.properties={}),this.topicAliasRecv&&(l.properties.topicAliasMaximum=this.topicAliasRecv.max)),this._writePacket(l),i.on("error",this.emit.bind(this,"error")),this.options.properties){if(!this.options.properties.authenticationMethod&&this.options.properties.authenticationData)return this.end(()=>this.emit("error",Error("Packet has no Authentication Method"))),this;if(this.options.properties.authenticationMethod&&this.options.authPacket&&"object"==typeof this.options.authPacket){let c=Object.assign({cmd:"auth",reasonCode:0},this.options.authPacket);this._writePacket(c)}}return this.stream.setMaxListeners(1e3),clearTimeout(this.connackTimer),this.connackTimer=setTimeout(()=>{this.log("!!connectTimeout hit!! Calling _cleanUp with force `true`"),this.emit("error",Error("connack timeout")),this._cleanUp(!0)},this.options.connectTimeout),this}publish(t,r,i,n){this.log("publish :: message `%s` to topic `%s`",r,t);let{options:o}=this;"function"==typeof i&&(n=i,i=null),i=i||{},i=Object.assign(Object.assign({},{qos:0,retain:!1,dup:!1}),i);let{qos:s,retain:a,dup:l,properties:u,cbStorePut:c}=i;if(this._checkDisconnecting(n))return this;let d=()=>{let i=0;if((1===s||2===s)&&null===(i=this._nextId()))return this.log("No messageId left"),!1;let d={cmd:"publish",topic:t,payload:r,qos:s,retain:a,messageId:i,dup:l};switch(5===o.protocolVersion&&(d.properties=u),this.log("publish :: qos",s),s){case 1:case 2:this.outgoing[d.messageId]={volatile:!1,cb:n||this.noop},this.log("MqttClient:publish: packet cmd: %s",d.cmd),this._sendPacket(d,void 0,c);break;default:this.log("MqttClient:publish: packet cmd: %s",d.cmd),this._sendPacket(d,n,c)}return!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!d())&&this._storeProcessingQueue.push({invoke:d,cbStorePut:i.cbStorePut,callback:n}),this}publishAsync(t,r,i){return new Promise((n,o)=>{this.publish(t,r,i,(t,r)=>{t?o(t):n(r)})})}subscribe(t,r,i){let n=this.options.protocolVersion;"function"==typeof r&&(i=r),i=i||this.noop;let o=!1,s=[];"string"==typeof t?s=t=[t]:Array.isArray(t)?s=t:"object"==typeof t&&(o=t.resubscribe,delete t.resubscribe,s=Object.keys(t));let a=f.validateTopics(s);if(null!==a)return v(i,Error(`Invalid topic ${a}`)),this;if(this._checkDisconnecting(i))return this.log("subscribe: discconecting true"),this;let l={qos:0};5===n&&(l.nl=!1,l.rap=!1,l.rh=0);let u=(r=Object.assign(Object.assign({},l),r)).properties,c=[],d=(t,i)=>{if(i=i||r,!Object.prototype.hasOwnProperty.call(this._resubscribeTopics,t)||this._resubscribeTopics[t].qos{this.log("subscribe: array topic %s",t),d(t)}):Object.keys(t).forEach(r=>{this.log("subscribe: object topic %s, %o",r,t[r]),d(r,t[r])}),!c.length)return i(null,[]),this;let h=()=>{let t=this._nextId();if(null===t)return this.log("No messageId left"),!1;let r={cmd:"subscribe",subscriptions:c,messageId:t};if(u&&(r.properties=u),this.options.resubscribe){this.log("subscribe :: resubscribe true");let o=[];c.forEach(t=>{if(this.options.reconnectPeriod>0){let r={qos:t.qos};5===n&&(r.nl=t.nl||!1,r.rap=t.rap||!1,r.rh=t.rh||0,r.properties=t.properties),this._resubscribeTopics[t.topic]=r,o.push(t.topic)}}),this.messageIdToTopic[r.messageId]=o}return this.outgoing[r.messageId]={volatile:!0,cb(t,r){if(!t){let{granted:n}=r;for(let o=0;o0||!h())&&this._storeProcessingQueue.push({invoke:h,callback:i}),this}subscribeAsync(t,r){return new Promise((i,n)=>{this.subscribe(t,r,(t,r)=>{t?n(t):i(r)})})}unsubscribe(t,r,i){"string"==typeof t&&(t=[t]),"function"==typeof r&&(i=r),i=i||this.noop;let n=f.validateTopics(t);if(null!==n)return v(i,Error(`Invalid topic ${n}`)),this;if(this._checkDisconnecting(i))return this;let o=()=>{let n=this._nextId();if(null===n)return this.log("No messageId left"),!1;let o={cmd:"unsubscribe",messageId:n,unsubscriptions:[]};return"string"==typeof t?o.unsubscriptions=[t]:Array.isArray(t)&&(o.unsubscriptions=t),this.options.resubscribe&&o.unsubscriptions.forEach(t=>{delete this._resubscribeTopics[t]}),"object"==typeof r&&r.properties&&(o.properties=r.properties),this.outgoing[o.messageId]={volatile:!0,cb:i},this.log("unsubscribe: call _sendPacket"),this._sendPacket(o),!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!o())&&this._storeProcessingQueue.push({invoke:o,callback:i}),this}unsubscribeAsync(t,r){return new Promise((i,n)=>{this.unsubscribe(t,r,(t,r)=>{t?n(t):i(r)})})}end(t,r,i){this.log("end :: (%s)",this.options.clientId),null!=t&&"boolean"==typeof t||(i=i||r,r=t,t=!1),"object"!=typeof r&&(i=i||r,r=null),this.log("end :: cb? %s",!!i),i&&"function"==typeof i||(i=this.noop);let n=()=>{this.log("end :: closeStores: closing incoming and outgoing stores"),this.disconnected=!0,this.incomingStore.close(t=>{this.outgoingStore.close(r=>{this.log("end :: closeStores: emitting end"),this.emit("end"),i&&(this.log("end :: closeStores: invoking callback with args"),i(t||r))})}),this._deferredReconnect&&this._deferredReconnect()},o=()=>{this.log("end :: (%s) :: finish :: calling _cleanUp with force %s",this.options.clientId,t),this._cleanUp(t,()=>{this.log("end :: finish :: calling process.nextTick on closeStores"),(0,m.nextTick)(n)},r)};return this.disconnecting?(i(),this):(this._clearReconnect(),this.disconnecting=!0,!t&&Object.keys(this.outgoing).length>0?(this.log("end :: (%s) :: calling finish in 10ms once outgoing is empty",this.options.clientId),this.once("outgoingEmpty",setTimeout.bind(null,o,10))):(this.log("end :: (%s) :: immediately calling finish",this.options.clientId),o()),this)}endAsync(t,r){return new Promise((i,n)=>{this.end(t,r,t=>{t?n(t):i()})})}removeOutgoingMessage(t){if(this.outgoing[t]){let{cb:r}=this.outgoing[t];this._removeOutgoingAndStoreMessage(t,()=>{r(Error("Message removed"))})}return this}reconnect(t){this.log("client reconnect");let r=()=>{t?(this.options.incomingStore=t.incomingStore,this.options.outgoingStore=t.outgoingStore):(this.options.incomingStore=null,this.options.outgoingStore=null),this.incomingStore=this.options.incomingStore||new g.default,this.outgoingStore=this.options.outgoingStore||new g.default,this.disconnecting=!1,this.disconnected=!1,this._deferredReconnect=null,this._reconnect()};return this.disconnecting&&!this.disconnected?this._deferredReconnect=r:r(),this}_flushVolatile(){this.outgoing&&(this.log("_flushVolatile :: deleting volatile messages from the queue and setting their callbacks as error function"),Object.keys(this.outgoing).forEach(t=>{this.outgoing[t].volatile&&"function"==typeof this.outgoing[t].cb&&(this.outgoing[t].cb(Error("Connection closed")),delete this.outgoing[t])}))}_flush(){this.outgoing&&(this.log("_flush: queue exists? %b",!!this.outgoing),Object.keys(this.outgoing).forEach(t=>{"function"==typeof this.outgoing[t].cb&&(this.outgoing[t].cb(Error("Connection closed")),delete this.outgoing[t])}))}_removeTopicAliasAndRecoverTopicName(t){let r;t.properties&&(r=t.properties.topicAlias);let i=t.topic.toString();if(this.log("_removeTopicAliasAndRecoverTopicName :: alias %d, topic %o",r,i),0===i.length){if(void 0===r||void 0===(i=this.topicAliasSend.getTopicByAlias(r)))return Error("Unregistered Topic Alias");t.topic=i}r&&delete t.properties.topicAlias}_checkDisconnecting(t){return this.disconnecting&&(t&&t!==this.noop?t(Error("client disconnecting")):this.emit("error",Error("client disconnecting"))),this.disconnecting}_reconnect(){this.log("_reconnect: emitting reconnect to client"),this.emit("reconnect"),this.connected?(this.end(()=>{this.connect()}),this.log("client already connected. disconnecting first.")):(this.log("_reconnect: calling connect"),this.connect())}_setupReconnect(){this.disconnecting||this.reconnectTimer||!(this.options.reconnectPeriod>0)?this.log("_setupReconnect :: doing nothing..."):(this.reconnecting||(this.log("_setupReconnect :: emit `offline` state"),this.emit("offline"),this.log("_setupReconnect :: set `reconnecting` to `true`"),this.reconnecting=!0),this.log("_setupReconnect :: setting reconnectTimer for %d ms",this.options.reconnectPeriod),this.reconnectTimer=setInterval(()=>{this.log("reconnectTimer :: reconnect triggered!"),this._reconnect()},this.options.reconnectPeriod))}_clearReconnect(){this.log("_clearReconnect : clearing reconnect timer"),this.reconnectTimer&&(clearInterval(this.reconnectTimer),this.reconnectTimer=null)}_cleanUp(t,r,i={}){if(r&&(this.log("_cleanUp :: done callback provided for on stream close"),this.stream.on("close",r)),this.log("_cleanUp :: forced? %s",t),t)0===this.options.reconnectPeriod&&this.options.clean&&this._flush(),this.log("_cleanUp :: (%s) :: destroying stream",this.options.clientId),this.stream.destroy();else{let n=Object.assign({cmd:"disconnect"},i);this.log("_cleanUp :: (%s) :: call _sendPacket with disconnect packet",this.options.clientId),this._sendPacket(n,()=>{this.log("_cleanUp :: (%s) :: destroying stream",this.options.clientId),v(()=>{this.stream.end(()=>{this.log("_cleanUp :: (%s) :: stream destroyed",this.options.clientId)})})})}this.disconnecting||this.reconnecting||(this.log("_cleanUp :: client not disconnecting/reconnecting. Clearing and resetting reconnect."),this._clearReconnect(),this._setupReconnect()),this.pingTimer&&(this.log("_cleanUp :: clearing pingTimer"),this.pingTimer.clear(),this.pingTimer=null),r&&!this.connected&&(this.log("_cleanUp :: (%s) :: removing stream `done` callback `close` listener",this.options.clientId),this.stream.removeListener("close",r),r())}_storeAndSend(t,r,i){this.log("storeAndSend :: store packet with cmd %s to outgoingStore",t.cmd);let n,o=t;if("publish"===o.cmd&&(o=(0,h.default)(t),n=this._removeTopicAliasAndRecoverTopicName(o)))return r&&r(n);this.outgoingStore.put(o,n=>{if(n)return r&&r(n);i(),this._writePacket(t,r)})}_applyTopicAlias(t){if(5===this.options.protocolVersion&&"publish"===t.cmd){let r;t.properties&&(r=t.properties.topicAlias);let i=t.topic.toString();if(this.topicAliasSend){if(r){if(0!==i.length&&(this.log("applyTopicAlias :: register topic: %s - alias: %d",i,r),!this.topicAliasSend.put(i,r)))return this.log("applyTopicAlias :: error out of range. topic: %s - alias: %d",i,r),Error("Sending Topic Alias out of range")}else 0!==i.length&&(this.options.autoAssignTopicAlias?(r=this.topicAliasSend.getAliasByTopic(i))?(t.topic="",t.properties=Object.assign(Object.assign({},t.properties),{topicAlias:r}),this.log("applyTopicAlias :: auto assign(use) topic: %s - alias: %d",i,r)):(r=this.topicAliasSend.getLruAlias(),this.topicAliasSend.put(i,r),t.properties=Object.assign(Object.assign({},t.properties),{topicAlias:r}),this.log("applyTopicAlias :: auto assign topic: %s - alias: %d",i,r)):this.options.autoUseTopicAlias&&(r=this.topicAliasSend.getAliasByTopic(i))&&(t.topic="",t.properties=Object.assign(Object.assign({},t.properties),{topicAlias:r}),this.log("applyTopicAlias :: auto use topic: %s - alias: %d",i,r)))}else if(r)return this.log("applyTopicAlias :: error out of range. topic: %s - alias: %d",i,r),Error("Sending Topic Alias out of range")}}_noop(t){this.log("noop ::",t)}_writePacket(t,r){this.log("_writePacket :: packet: %O",t),this.log("_writePacket :: emitting `packetsend`"),this.emit("packetsend",t),this._shiftPingInterval(),this.log("_writePacket :: writing to stream");let i=u.default.writeToStream(t,this.stream,this.options);this.log("_writePacket :: writeToStream result %s",i),!i&&r&&r!==this.noop?(this.log("_writePacket :: handle events on `drain` once through callback."),this.stream.once("drain",r)):r&&(this.log("_writePacket :: invoking cb"),r())}_sendPacket(t,r,i,n){this.log("_sendPacket :: (%s) :: start",this.options.clientId),i=i||this.noop,r=r||this.noop;let o=this._applyTopicAlias(t);if(o)r(o);else{if(!this.connected)return"auth"===t.cmd?void this._writePacket(t,r):(this.log("_sendPacket :: client not connected. Storing packet offline."),void this._storePacket(t,r,i));if(n)this._writePacket(t,r);else{switch(t.cmd){case"publish":break;case"pubrel":return void this._storeAndSend(t,r,i);default:return void this._writePacket(t,r)}switch(t.qos){case 2:case 1:this._storeAndSend(t,r,i);break;default:this._writePacket(t,r)}this.log("_sendPacket :: (%s) :: end",this.options.clientId)}}}_storePacket(t,r,i){this.log("_storePacket :: packet: %o",t),this.log("_storePacket :: cb? %s",!!r),i=i||this.noop;let n=t;if("publish"===n.cmd){n=(0,h.default)(t);let o=this._removeTopicAliasAndRecoverTopicName(n);if(o)return r&&r(o)}let s=n.qos||0;0===s&&this.queueQoSZero||"publish"!==n.cmd?this.queue.push({packet:n,cb:r}):s>0?(r=this.outgoing[n.messageId]?this.outgoing[n.messageId].cb:null,this.outgoingStore.put(n,t=>{if(t)return r&&r(t);i()})):r&&r(Error("No connection to broker"))}_setupPingTimer(){this.log("_setupPingTimer :: keepalive %d (seconds)",this.options.keepalive),!this.pingTimer&&this.options.keepalive&&(this.pingResp=!0,this.pingTimer=new $.default(this.options.keepalive,()=>{this._checkPing()},this.options.timerVariant))}_shiftPingInterval(){this.pingTimer&&this.options.keepalive&&this.options.reschedulePings&&this.pingTimer.reschedule()}_checkPing(){this.log("_checkPing :: checking ping..."),this.pingResp?(this.log("_checkPing :: ping response received. Clearing flag and sending `pingreq`"),this.pingResp=!1,this._sendPacket({cmd:"pingreq"})):(this.emit("error",Error("Keepalive timeout")),this.log("_checkPing :: calling _cleanUp with force true"),this._cleanUp(!0))}_resubscribe(){this.log("_resubscribe");let t=Object.keys(this._resubscribeTopics);if(!this._firstConnection&&(this.options.clean||this.options.protocolVersion>=4&&!this.connackPacket.sessionPresent)&&t.length>0){if(this.options.resubscribe){if(5===this.options.protocolVersion){this.log("_resubscribe: protocolVersion 5");for(let r=0;r{let i=this.outgoingStore.createStream(),n=()=>{i.destroy(),i=null,this._flushStoreProcessingQueue(),o()},o=()=>{this._storeProcessing=!1,this._packetIdsDuringStoreProcessing={}};this.once("close",n),i.on("error",t=>{o(),this._flushStoreProcessingQueue(),this.removeListener("close",n),this.emit("error",t)});let s=()=>{if(!i)return;let t=i.read(1),r;t?(this._storeProcessing=!0,this._packetIdsDuringStoreProcessing[t.messageId]?s():this.disconnecting||this.reconnectTimer?i.destroy&&i.destroy():(r=this.outgoing[t.messageId]?this.outgoing[t.messageId].cb:null,this.outgoing[t.messageId]={volatile:!1,cb(t,i){r&&r(t,i),s()}},this._packetIdsDuringStoreProcessing[t.messageId]=!0,this.messageIdProvider.register(t.messageId)?this._sendPacket(t,void 0,void 0,!0):this.log("messageId: %d has already used.",t.messageId))):i.once("readable",s)};i.on("end",()=>{let i=!0;for(let s in this._packetIdsDuringStoreProcessing)if(!this._packetIdsDuringStoreProcessing[s]){i=!1;break}this.removeListener("close",n),i?(o(),this._invokeAllStoreProcessingQueue(),this.emit("connect",t)):r()}),s()};r()}_invokeStoreProcessingQueue(){if(!this._storeProcessing&&this._storeProcessingQueue.length>0){let t=this._storeProcessingQueue[0];if(t&&t.invoke())return this._storeProcessingQueue.shift(),!0}return!1}_invokeAllStoreProcessingQueue(){for(;this._invokeStoreProcessingQueue(););}_flushStoreProcessingQueue(){for(let t of this._storeProcessingQueue)t.cbStorePut&&t.cbStorePut(Error("Connection closed")),t.callback&&t.callback(Error("Connection closed"));this._storeProcessingQueue.splice(0)}_removeOutgoingAndStoreMessage(t,r){delete this.outgoing[t],this.outgoingStore.del({messageId:t},(i,n)=>{r(i,n),this.messageIdProvider.deallocate(t),this._invokeStoreProcessingQueue()})}}S.VERSION=process.env.npm_package_version,r.default=S},8015(t,r,i){"use strict";let n=i(181),o=i(6070),s=i(6497),a,l,u,c=!1;r.A=(t,r)=>{var i;if(r.hostname=r.hostname||r.host,!r.hostname)throw Error("Could not determine host. Specify host manually.");let d="MQIsdp"===r.protocolId&&3===r.protocolVersion?"mqttv3.1":"mqtt";(i=r).hostname||(i.hostname="localhost"),i.path||(i.path="/"),i.wsOptions||(i.wsOptions={});let h=function(t,r){let i="alis"===t.protocol?"wss":"ws",n=`${i}://${t.hostname}${t.path}`;return t.port&&80!==t.port&&443!==t.port&&(n=`${i}://${t.hostname}:${t.port}${t.path}`),"function"==typeof t.transformWsUrl&&(n=t.transformWsUrl(n,t,r)),n}(r,t);return(a=r.my).connectSocket({url:h,protocols:d}),l=function(){let t=new o.Transform;return t._write=(t,r,i)=>{a.sendSocketMessage({data:t.buffer,success(){i()},fail(){i(Error())}})},t._flush=t=>{a.closeSocket({success(){t()}})},t}(),u=new s.BufferedDuplex(r,l,a),c||(c=!0,a.onSocketOpen(()=>{u.socketReady()}),a.onSocketMessage(t=>{if("string"==typeof t.data){let r=n.Buffer.from(t.data,"base64");l.push(r)}else{let i=new FileReader;i.addEventListener("load",()=>{let t=i.result;t=t instanceof ArrayBuffer?n.Buffer.from(t):n.Buffer.from(t,"utf8"),l.push(t)}),i.readAsArrayBuffer(t.data)}}),a.onSocketClose(()=>{u.end(),u.destroy()}),a.onSocketError(t=>{u.destroy(t)})),u}},1087:function(t,r,i){"use strict";var n=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(r,"__esModule",{value:!0}),r.connectAsync=void 0;let o=n(i(9171)),s=n(i(7016)),a=n(i(3183)),l=n(i(5193)),u=(0,o.default)("mqttjs"),c={};function d(t,r){var i;if(u("connecting to an MQTT broker..."),"object"!=typeof t||r||(r=t,t=""),r=r||{},t&&"string"==typeof t){let n=s.default.parse(t,!0);if(null!=n.port&&(n.port=Number(n.port)),null===(r=Object.assign(Object.assign({},n),r)).protocol)throw Error("Missing protocol");r.protocol=r.protocol.replace(/:$/,"")}let o;if((i=r).auth&&((o=i.auth.match(/^(.+):(.+)$/))?(i.username=o[1],i.password=o[2]):i.username=i.auth),r.query&&"string"==typeof r.query.clientId&&(r.clientId=r.query.clientId),r.cert&&r.key){if(!r.protocol)throw Error("Missing secure protocol key");if(-1===["mqtts","wss","wxs","alis"].indexOf(r.protocol))switch(r.protocol){case"mqtt":r.protocol="mqtts";break;case"ws":r.protocol="wss";break;case"wx":r.protocol="wxs";break;case"ali":r.protocol="alis";break;default:throw Error(`Unknown protocol for secure connection: "${r.protocol}"!`)}}if(!c[r.protocol]){let l=-1!==["mqtts","wss"].indexOf(r.protocol);r.protocol=["mqtt","mqtts","ws","wss","wx","wxs","ali","alis"].filter((t,r)=>(!l||r%2!=0)&&"function"==typeof c[t])[0]}if(!1===r.clean&&!r.clientId)throw Error("Missing clientId for unclean clients");r.protocol&&(r.defaultProtocol=r.protocol);let d=new a.default(function(t){return r.servers&&(t._reconnectCount&&t._reconnectCount!==r.servers.length||(t._reconnectCount=0),r.host=r.servers[t._reconnectCount].host,r.port=r.servers[t._reconnectCount].port,r.protocol=r.servers[t._reconnectCount].protocol?r.servers[t._reconnectCount].protocol:r.defaultProtocol,r.hostname=r.host,t._reconnectCount++),u("calling streambuilder for",r.protocol),c[r.protocol](t,r)},r);return d.on("error",()=>{}),d}l.default?(c.wx=i(8384).A,c.wxs=i(8384).A,c.ali=i(8015).A,c.alis=i(8015).A):(c.mqtt=i(4432).default,c.tcp=i(4432).default,c.ssl=i(3134).default,c.tls=c.ssl,c.mqtts=i(3134).default),c.ws=i(1505).default,c.wss=i(1505).default,r.connectAsync=function(t,r,i=!0){return new Promise((n,o)=>{let s=d(t,r),a={connect(t){l(),n(s)},end(){l(),n(s)},error(t){l(),s.end(),o(t)}};function l(){Object.keys(a).forEach(t=>{s.off(t,a[t])})}!1===i&&(a.close=()=>{a.error(Error("Couldn't connect to server"))}),Object.keys(a).forEach(t=>{s.on(t,a[t])})})},r.default=d},4432:function(t,r,i){"use strict";var n=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(r,"__esModule",{value:!0});let o=n(i(9278)),s=(0,n(i(9171)).default)("mqttjs:tcp");r.default=(t,r)=>{r.port=r.port||1883,r.hostname=r.hostname||r.host||"localhost";let{port:i}=r,n=r.hostname;return s("port %d and host %s",i,n),o.default.createConnection(i,n)}},3134:function(t,r,i){"use strict";var n=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(r,"__esModule",{value:!0});let o=n(i(4756)),s=n(i(9278)),a=(0,n(i(9171)).default)("mqttjs:tls");r.default=(t,r)=>{r.port=r.port||8883,r.host=r.hostname||r.host||"localhost",0===s.default.isIP(r.host)&&(r.servername=r.host),r.rejectUnauthorized=!1!==r.rejectUnauthorized,delete r.path,a("port %d host %s rejectUnauthorized %b",r.port,r.host,r.rejectUnauthorized);let i=o.default.connect(r);function n(n){r.rejectUnauthorized&&t.emit("error",n),i.end()}return i.on("secureConnect",()=>{r.rejectUnauthorized&&!i.authorized?i.emit("error",Error("TLS not authorized")):i.removeListener("error",n)}),i.on("error",n),i}},1505:function(t,r,i){"use strict";var n=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(r,"__esModule",{value:!0});let o=i(181),s=n(i(2641)),a=n(i(9171)),l=i(6070),u=n(i(5193)),c=i(6497),d=(0,a.default)("mqttjs:ws"),h=["rejectUnauthorized","ca","cert","key","pfx","passphrase"];function f(t,r){let i=`${t.protocol}://${t.hostname}:${t.port}${t.path}`;return"function"==typeof t.transformWsUrl&&(i=t.transformWsUrl(i,t,r)),i}function p(t){let r=t;return t.hostname||(r.hostname="localhost"),t.port||("wss"===t.protocol?r.port=443:r.port=80),t.path||(r.path="/"),t.wsOptions||(r.wsOptions={}),u.default||"wss"!==t.protocol||h.forEach(i=>{Object.prototype.hasOwnProperty.call(t,i)&&!Object.prototype.hasOwnProperty.call(t.wsOptions,i)&&(r.wsOptions[i]=t[i])}),r}r.default=u.default?(t,r)=>{let i;d("browserStreamBuilder");let n=function(t){let r=p(t);if(r.hostname||(r.hostname=r.host),!r.hostname){if("undefined"==typeof document)throw Error("Could not determine host. Specify host manually.");let i=new URL(document.URL);r.hostname=i.hostname,r.port||(r.port=Number(i.port))}return void 0===r.objectMode&&(r.objectMode=!(!0===r.binary||void 0===r.binary)),r}(r),s=n.browserBufferSize||524288,a=r.browserBufferTimeout||1e3,u=!r.objectMode,h=function(t,r){let i="MQIsdp"===r.protocolId&&3===r.protocolVersion?"mqttv3.1":"mqtt",n=f(r,t),o;return(o=r.createWebsocket?r.createWebsocket(n,[i],r):new WebSocket(n,[i])).binaryType="arraybuffer",o}(t,r),g=function(t,r,i){let n=new l.Transform({objectMode:t.objectMode});return n._write=function t(r,i,n){if(h.bufferedAmount>s)return void setTimeout(t,a,r,i,n);u&&"string"==typeof r&&(r=o.Buffer.from(r,"utf8"));try{h.send(r)}catch(l){return n(l)}n()},n._flush=function(t){h.close(),t()},n}(r);r.objectMode||(g._writev=c.writev.bind(g)),g.on("close",()=>{h.close()});let b=void 0!==h.addEventListener;function m(){d("WebSocket onOpen"),i instanceof c.BufferedDuplex&&i.socketReady()}function y(t){d("WebSocket onClose",t),i.end(),i.destroy()}function $(t){d("WebSocket onError",t);let r=Error("WebSocket error");r.event=t,i.destroy(r)}function w(t){let{data:r}=t;r=r instanceof ArrayBuffer?o.Buffer.from(r):o.Buffer.from(r,"utf8"),g.push(r)}return h.readyState===h.OPEN?(i=g).socket=h:(i=new c.BufferedDuplex(r,g,h),b?h.addEventListener("open",m):h.onopen=m),b?(h.addEventListener("close",y),h.addEventListener("error",$),h.addEventListener("message",w)):(h.onclose=y,h.onerror=$,h.onmessage=w),i}:(t,r)=>{d("streamBuilder");let i=p(r),n=f(i,t),o=function(t,r,i){d("createWebSocket"),d(`protocol: ${i.protocolId} ${i.protocolVersion}`);let n="MQIsdp"===i.protocolId&&3===i.protocolVersion?"mqttv3.1":"mqtt",o;return d(`creating new Websocket for url: ${r} and protocol: ${n}`),o=i.createWebsocket?i.createWebsocket(r,[n],i):new s.default(r,[n],i.wsOptions)}(0,n,i),a=s.default.createWebSocketStream(o,i.wsOptions);return a.url=n,o.on("close",()=>{a.destroy()}),a}},8384(t,r,i){"use strict";let n=i(181),o=i(6070),s=i(6497),a,l,u;r.A=(t,r)=>{var i;if(r.hostname=r.hostname||r.host,!r.hostname)throw Error("Could not determine host. Specify host manually.");let c="MQIsdp"===r.protocolId&&3===r.protocolVersion?"mqttv3.1":"mqtt";(i=r).hostname||(i.hostname="localhost"),i.path||(i.path="/"),i.wsOptions||(i.wsOptions={});let d=function(t,r){let i="wxs"===t.protocol?"wss":"ws",n=`${i}://${t.hostname}${t.path}`;return t.port&&80!==t.port&&443!==t.port&&(n=`${i}://${t.hostname}:${t.port}${t.path}`),"function"==typeof t.transformWsUrl&&(n=t.transformWsUrl(n,t,r)),n}(r,t);a=wx.connectSocket({url:d,protocols:[c]}),l=function(){let t=new o.Transform;return t._write=(t,r,i)=>{a.send({data:t.buffer,success(){i()},fail(t){i(Error(t))}})},t._flush=t=>{a.close({success(){t()}})},t}(),(u=new s.BufferedDuplex(r,l,a))._destroy=(t,r)=>{a.close({success(){r&&r(t)}})};let h=u.destroy;return u.destroy=(t,r)=>(u.destroy=h,setTimeout(()=>{a.close({fail(){u._destroy(t,r)}})},0),u),a.onOpen(()=>{u.socketReady()}),a.onMessage(t=>{let{data:r}=t;r=r instanceof ArrayBuffer?n.Buffer.from(r):n.Buffer.from(r,"utf8"),l.push(r)}),a.onClose(()=>{u.emit("close"),u.end(),u.destroy()}),a.onError(t=>{let r=Error(t.errMsg);u.destroy(r)}),u}},4349(t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=class{constructor(){this.nextId=Math.max(1,Math.floor(65535*Math.random()))}allocate(){let t=this.nextId++;return 65536===this.nextId&&(this.nextId=1),t}getLastAllocated(){return 1===this.nextId?65535:this.nextId-1}register(t){return!0}deallocate(t){}clear(){}}},7838:function(t,r,i){"use strict";var n=this&&this.__createBinding||(Object.create?function(t,r,i,n){void 0===n&&(n=i);var o=Object.getOwnPropertyDescriptor(r,i);o&&!("get"in o?!r.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return r[i]}}),Object.defineProperty(t,n,o)}:function(t,r,i,n){void 0===n&&(n=i),t[n]=r[i]}),o=this&&this.__setModuleDefault||(Object.create?function(t,r){Object.defineProperty(t,"default",{enumerable:!0,value:r})}:function(t,r){t.default=r}),s=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var r={};if(null!=t)for(var i in t)"default"!==i&&Object.prototype.hasOwnProperty.call(t,i)&&n(r,t,i);return o(r,t),r};Object.defineProperty(r,"__esModule",{value:!0});let a=s(i(5193)),l=i(9830),u={set:l.setTimeout,clear:l.clearTimeout},c={set:(t,r)=>setTimeout(t,r),clear:t=>clearTimeout(t)};r.default=t=>{switch(t){case"native":return c;case"worker":return u;default:return!a.default||a.isWebWorker||a.isReactNativeBrowser?c:u}}},9771(t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.ReasonCodes=void 0,r.ReasonCodes={0:"",1:"Unacceptable protocol version",2:"Identifier rejected",3:"Server unavailable",4:"Bad username or password",5:"Not authorized",16:"No matching subscribers",17:"No subscription existed",128:"Unspecified error",129:"Malformed Packet",130:"Protocol Error",131:"Implementation specific error",132:"Unsupported Protocol Version",133:"Client Identifier not valid",134:"Bad User Name or Password",135:"Not authorized",136:"Server unavailable",137:"Server busy",138:"Banned",139:"Server shutting down",140:"Bad authentication method",141:"Keep Alive timeout",142:"Session taken over",143:"Topic Filter invalid",144:"Topic Name invalid",145:"Packet identifier in use",146:"Packet Identifier not found",147:"Receive Maximum exceeded",148:"Topic Alias invalid",149:"Packet too large",150:"Message rate too high",151:"Quota exceeded",152:"Administrative action",153:"Payload format invalid",154:"Retain not supported",155:"QoS not supported",156:"Use another server",157:"Server moved",158:"Shared Subscriptions not supported",159:"Connection rate exceeded",160:"Maximum connect time",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"},r.default=(t,i)=>{let{messageId:n}=i,o=i.cmd,s=null,a=t.outgoing[n]?t.outgoing[n].cb:null,l;if(a){switch(t.log("_handleAck :: packet type",o),o){case"pubcomp":case"puback":{let u=i.reasonCode;u&&u>0&&16!==u?((l=Error(`Publish error: ${r.ReasonCodes[u]}`)).code=u,t._removeOutgoingAndStoreMessage(n,()=>{a(l,i)})):t._removeOutgoingAndStoreMessage(n,a);break}case"pubrec":{s={cmd:"pubrel",qos:2,messageId:n};let c=i.reasonCode;c&&c>0&&16!==c?((l=Error(`Publish error: ${r.ReasonCodes[c]}`)).code=c,t._removeOutgoingAndStoreMessage(n,()=>{a(l,i)})):t._sendPacket(s);break}case"suback":{delete t.outgoing[n],t.messageIdProvider.deallocate(n);let d=i.granted;for(let h=0;h{delete t._resubscribeTopics[r]})}delete t.messageIdToTopic[n],t._invokeStoreProcessingQueue(),a(null,i);break}case"unsuback":delete t.outgoing[n],t.messageIdProvider.deallocate(n),t._invokeStoreProcessingQueue(),a(null);break;default:t.emit("error",Error("unrecognized packet type"))}t.disconnecting&&0===Object.keys(t.outgoing).length&&t.emit("outgoingEmpty")}else t.log("_handleAck :: Server sent an ack in error. Ignoring.")}},9582(t,r,i){"use strict";Object.defineProperty(r,"__esModule",{value:!0});let n=i(305),o=i(9771);r.default=(t,r)=>{let{options:i}=t,s=i.protocolVersion,a=5===s?r.reasonCode:r.returnCode;if(5===s)t.handleAuth(r,(r,i)=>{if(r)t.emit("error",r);else if(24===a)t.reconnecting=!1,t._sendPacket(i);else{let s=new n.ErrorWithReasonCode(`Connection refused: ${o.ReasonCodes[a]}`,a);t.emit("error",s)}});else{let l=new n.ErrorWithReasonCode(`Protocol error: Auth packets are only supported in MQTT 5. Your version:${s}`,a);t.emit("error",l)}}},9381:function(t,r,i){"use strict";var n=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(r,"__esModule",{value:!0});let o=i(9771),s=n(i(9683)),a=i(305);r.default=(t,r)=>{t.log("_handleConnack");let{options:i}=t,n=5===i.protocolVersion?r.reasonCode:r.returnCode;if(clearTimeout(t.connackTimer),delete t.topicAliasSend,r.properties){if(r.properties.topicAliasMaximum){if(r.properties.topicAliasMaximum>65535)return void t.emit("error",Error("topicAliasMaximum from broker is out of range"));r.properties.topicAliasMaximum>0&&(t.topicAliasSend=new s.default(r.properties.topicAliasMaximum))}r.properties.serverKeepAlive&&i.keepalive&&(i.keepalive=r.properties.serverKeepAlive,t._shiftPingInterval()),r.properties.maximumPacketSize&&(i.properties||(i.properties={}),i.properties.maximumPacketSize=r.properties.maximumPacketSize)}if(0===n)t.reconnecting=!1,t._onConnect(r);else if(n>0){let l=new a.ErrorWithReasonCode(`Connection refused: ${o.ReasonCodes[n]}`,n);t.emit("error",l)}}},8466:function(t,r,i){"use strict";var n=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(r,"__esModule",{value:!0});let o=n(i(5293)),s=n(i(9582)),a=n(i(9381)),l=n(i(9771)),u=n(i(3210));r.default=(t,r,i)=>{let{options:n}=t;if(5===n.protocolVersion&&n.properties&&n.properties.maximumPacketSize&&n.properties.maximumPacketSize{t.log("handlePublish: packet %o",r),n=void 0!==n?n:t.noop;let o=r.topic.toString(),s=r.payload,{qos:a}=r,{messageId:l}=r,{options:u}=t;if(5===t.options.protocolVersion){let c;if(r.properties&&(c=r.properties.topicAlias),void 0!==c){if(0===o.length){if(!(c>0&&c<=65535))return t.log("handlePublish :: topic alias out of range. alias: %d",c),void t.emit("error",Error("Received Topic Alias is out of range"));{let d=t.topicAliasRecv.getTopicByAlias(c);if(!d)return t.log("handlePublish :: unregistered topic alias. alias: %d",c),void t.emit("error",Error("Received unregistered Topic Alias"));o=d,t.log("handlePublish :: topic complemented by alias. topic: %s - alias: %d",o,c)}}else{if(!t.topicAliasRecv.put(o,c))return t.log("handlePublish :: topic alias out of range. alias: %d",c),void t.emit("error",Error("Received Topic Alias is out of range"));t.log("handlePublish :: registered topic: %s - alias: %d",o,c)}}}switch(t.log("handlePublish: qos %d",a),a){case 2:u.customHandleAcks(o,s,r,(o,s)=>("number"==typeof o&&(s=o,o=null),o?t.emit("error",o):-1===i.indexOf(s)?t.emit("error",Error("Wrong reason code for pubrec")):void(s?t._sendPacket({cmd:"pubrec",messageId:l,reasonCode:s},n):t.incomingStore.put(r,()=>{t._sendPacket({cmd:"pubrec",messageId:l},n)}))));break;case 1:u.customHandleAcks(o,s,r,(a,u)=>("number"==typeof a&&(u=a,a=null),a?t.emit("error",a):-1===i.indexOf(u)?t.emit("error",Error("Wrong reason code for puback")):(u||t.emit("message",o,s,r),void t.handleMessage(r,r=>{if(r)return n&&n(r);t._sendPacket({cmd:"puback",messageId:l,reasonCode:u},n)}))));break;case 0:t.emit("message",o,s,r),t.handleMessage(r,n);break;default:t.log("handlePublish: unknown QoS. Doing nothing.")}}},3210(t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=(t,r,i)=>{t.log("handling pubrel packet");let n=void 0!==i?i:t.noop,{messageId:o}=r,s={cmd:"pubcomp",messageId:o};t.incomingStore.get(r,(r,i)=>{r?t._sendPacket(s,n):(t.emit("message",i.topic,i.payload,i),t.handleMessage(i,r=>{if(r)return n(r);t.incomingStore.del(i,t.noop),t._sendPacket(s,n)}))})}},5193(t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.isReactNativeBrowser=r.isWebWorker=void 0;let i=()=>{var t,r;return Boolean("object"==typeof self&&(null===(r=null===(t=null==self?void 0:self.constructor)||void 0===t?void 0:t.name)||void 0===r?void 0:r.includes("WorkerGlobalScope")))},n="undefined"!=typeof window&&void 0!==window.document||i()||"undefined"!=typeof navigator&&"ReactNative"===navigator.product;r.isWebWorker=i(),r.isReactNativeBrowser="undefined"!=typeof navigator&&"ReactNative"===navigator.product,r.default=n},305(t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.nextTick=r.applyMixin=r.ErrorWithReasonCode=void 0;class i extends Error{constructor(t,r){super(t),this.code=r,Object.setPrototypeOf(this,i.prototype),Object.getPrototypeOf(this).name="ErrorWithReasonCode"}}r.ErrorWithReasonCode=i,r.applyMixin=function(t,r,i=!1){var n;let o=[r];for(;;){let s=o[0],a=Object.getPrototypeOf(s);if(!(null==a?void 0:a.prototype))break;o.unshift(a)}for(let l of o)for(let u of Object.getOwnPropertyNames(l.prototype))(i||"constructor"!==u)&&Object.defineProperty(t.prototype,u,null!==(n=Object.getOwnPropertyDescriptor(l.prototype,u))&&void 0!==n?n:Object.create(null))},r.nextTick="function"==typeof(null==process?void 0:process.nextTick)?process.nextTick:t=>{setTimeout(t,0)}},6487(t,r,i){"use strict";Object.defineProperty(r,"__esModule",{value:!0});let n=i(6070),o={objectMode:!0};r.default=class{constructor(t){this.options=t||{},this.options=Object.assign(Object.assign({},{clean:!0}),t),this._inflights=new Map}put(t,r){return this._inflights.set(t.messageId,t),r&&r(),this}createStream(){let t=new n.Readable(o),r=[],i=!1,s=0;return this._inflights.forEach((t,i)=>{r.push(t)}),t._read=()=>{!i&&s{if(!i)return i=!0,setTimeout(()=>{t.emit("close")},0),t},t}del(t,r){let i=this._inflights.get(t.messageId);return i?(this._inflights.delete(t.messageId),r(null,i)):r&&r(Error("missing packet")),this}get(t,r){let i=this._inflights.get(t.messageId);return i?r(null,i):r&&r(Error("missing packet")),this}close(t){this.options.clean&&(this._inflights=null),t&&t()}}},3413(t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=class{constructor(t){this.aliasToTopic={},this.max=t}put(t,r){return!(0===r||r>this.max||(this.aliasToTopic[r]=t,this.length=Object.keys(this.aliasToTopic).length,0))}getTopicByAlias(t){return this.aliasToTopic[t]}clear(){this.aliasToTopic={}}}},9683(t,r,i){"use strict";Object.defineProperty(r,"__esModule",{value:!0});let n=i(6660),o=i(6490);r.default=class{constructor(t){t>0&&(this.aliasToTopic=new n.LRUCache({max:t}),this.topicToAlias={},this.numberAllocator=new o.NumberAllocator(1,t),this.max=t,this.length=0)}put(t,r){if(0===r||r>this.max)return!1;let i=this.aliasToTopic.get(r);return i&&delete this.topicToAlias[i],this.aliasToTopic.set(r,t),this.topicToAlias[t]=r,this.numberAllocator.use(r),this.length=this.aliasToTopic.size,!0}getTopicByAlias(t){return this.aliasToTopic.get(t)}getAliasByTopic(t){let r=this.topicToAlias[t];return void 0!==r&&this.aliasToTopic.get(r),r}clear(){this.aliasToTopic.clear(),this.topicToAlias={},this.numberAllocator.clear(),this.length=0}getLruAlias(){return this.numberAllocator.firstVacant()||[...this.aliasToTopic.keys()][this.aliasToTopic.size-1]}}},513(t,r,i){"use strict";Object.defineProperty(r,"__esModule",{value:!0});let n=i(6490);r.default=class{constructor(){this.numberAllocator=new n.NumberAllocator(1,65535)}allocate(){return this.lastId=this.numberAllocator.alloc(),this.lastId}getLastAllocated(){return this.lastId}register(t){return this.numberAllocator.use(t)}deallocate(t){this.numberAllocator.free(t)}clear(){this.numberAllocator.clear()}}},5962(t,r){"use strict";function i(t){let r=t.split("/");for(let i=0;i{if("object"!=typeof t||!("aborted"in t))throw new d("signal","AbortSignal",t)})(r),!a(i)&&!l(i))throw new d("stream",["ReadableStream","WritableStream","Stream"],i);return t.exports.addAbortSignalNoValidate(r,i)},t.exports.addAbortSignalNoValidate=function(t,r){if("object"!=typeof t||!("aborted"in t))return r;let s=a(r)?()=>{r.destroy(new o(void 0,{cause:t.reason}))}:()=>{r[u](new o(void 0,{cause:t.reason}))};if(t.aborted)s();else{h=h||i(8104).addAbortListener;let l=h(t,s);c(r,l[n])}return r}},1793(t,r,i){"use strict";let{StringPrototypeSlice:n,SymbolIterator:o,TypedArrayPrototypeSet:s,Uint8Array:a}=i(8622),{Buffer:l}=i(181),{inspect:u}=i(8104);t.exports=class{constructor(){this.head=null,this.tail=null,this.length=0}push(t){let r={data:t,next:null};this.length>0?this.tail.next=r:this.head=r,this.tail=r,++this.length}unshift(t){let r={data:t,next:this.head};0===this.length&&(this.tail=r),this.head=r,++this.length}shift(){if(0===this.length)return;let t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}clear(){this.head=this.tail=null,this.length=0}join(t){if(0===this.length)return"";let r=this.head,i=""+r.data;for(;null!==(r=r.next);)i+=t+r.data;return i}concat(t){if(0===this.length)return l.alloc(0);let r=l.allocUnsafe(t>>>0),i=this.head,n=0;for(;i;)s(r,i.data,n),n+=i.data.length,i=i.next;return r}consume(t,r){let i=this.head.data;if(ts.length)){t===s.length?(r+=s,++o,i.next?this.head=i.next:this.head=this.tail=null):(r+=n(s,0,t),this.head=i,i.data=n(s,t));break}r+=s,t-=s.length,++o}while(null!==(i=i.next));return this.length-=o,r}_getBuffer(t){let r=l.allocUnsafe(t),i=t,n=this.head,o=0;do{let u=n.data;if(!(t>u.length)){t===u.length?(s(r,u,i-t),++o,n.next?this.head=n.next:this.head=this.tail=null):(s(r,new a(u.buffer,u.byteOffset,t),i-t),this.head=n,n.data=u.slice(t));break}s(r,u,i-t),t-=u.length,++o}while(null!==(n=n.next));return this.length-=o,r}[Symbol.for("nodejs.util.inspect.custom")](t,r){return u(this,{...r,depth:0,customInspect:!1})}}},8062(t,r,i){"use strict";let{pipeline:n}=i(678),o=i(722),{destroyer:s}=i(8816),{isNodeStream:a,isReadable:l,isWritable:u,isWebStream:c,isTransformStream:d,isWritableStream:h,isReadableStream:f}=i(3003),{AbortError:p,codes:{ERR_INVALID_ARG_VALUE:g,ERR_MISSING_ARGS:b}}=i(7115),m=i(9398);t.exports=function(...t){if(0===t.length)throw new b("streams");if(1===t.length)return o.from(t[0]);let r=[...t];if("function"==typeof t[0]&&(t[0]=o.from(t[0])),"function"==typeof t[t.length-1]){let i=t.length-1;t[i]=o.from(t[i])}for(let y=0;y0&&!(u(t[y])||h(t[y])||d(t[y])))throw new g(`streams[${y}]`,r[y],"must be writable")}let $,w,v,_,S,E=t[0],k=n(t,function(t){let r=_;_=null,r?r(t):t?S.destroy(t):R||A||S.destroy()}),A=!!(u(E)||h(E)||d(E)),R=!!(l(k)||f(k)||d(k));if(S=new o({writableObjectMode:!(null==E||!E.writableObjectMode),readableObjectMode:!(null==k||!k.readableObjectMode),writable:A,readable:R}),A){if(a(E))S._write=function(t,r,i){E.write(t,r)?i():$=i},S._final=function(t){E.end(),w=t},E.on("drain",function(){if($){let t=$;$=null,t()}});else if(c(E)){let T=(d(E)?E.writable:E).getWriter();S._write=async function(t,r,i){try{await T.ready,T.write(t).catch(()=>{}),i()}catch(n){i(n)}},S._final=async function(t){try{await T.ready,T.close().catch(()=>{}),w=t}catch(r){t(r)}}}let I=d(k)?k.readable:k;m(I,()=>{if(w){let t=w;w=null,t()}})}if(R){if(a(k))k.on("readable",function(){if(v){let t=v;v=null,t()}}),k.on("end",function(){S.push(null)}),S._read=function(){for(;;){let t=k.read();if(null===t)return void(v=S._read);if(!S.push(t))return}};else if(c(k)){let C=(d(k)?k.readable:k).getReader();S._read=async function(){for(;;)try{let{value:t,done:r}=await C.read();if(!S.push(t))return;if(r)return void S.push(null)}catch{return}}}}return S._destroy=function(t,r){t||null===_||(t=new p),v=null,$=null,w=null,null===_?r(t):(_=r,a(k)&&s(k,t))},S}},8816(t,r,i){"use strict";let n=i(6308),{aggregateTwoErrors:o,codes:{ERR_MULTIPLE_CALLBACK:s},AbortError:a}=i(7115),{Symbol:l}=i(8622),{kIsDestroyed:u,isDestroyed:c,isFinished:d,isServerRequest:h}=i(3003),f=l("kDestroy"),p=l("kConstruct");function g(t,r,i){t&&(t.stack,r&&!r.errored&&(r.errored=t),i&&!i.errored&&(i.errored=t))}function b(t,r,i){let o=!1;function s(r){if(o)return;o=!0;let s=t._readableState,a=t._writableState;g(r,a,s),a&&(a.closed=!0),s&&(s.closed=!0),"function"==typeof i&&i(r),r?n.nextTick(m,t,r):n.nextTick(y,t)}try{t._destroy(r||null,s)}catch(a){s(a)}}function m(t,r){$(t,r),y(t)}function y(t){let r=t._readableState,i=t._writableState;i&&(i.closeEmitted=!0),r&&(r.closeEmitted=!0),(null!=i&&i.emitClose||null!=r&&r.emitClose)&&t.emit("close")}function $(t,r){let i=t._readableState,n=t._writableState;null!=n&&n.errorEmitted||null!=i&&i.errorEmitted||(n&&(n.errorEmitted=!0),i&&(i.errorEmitted=!0),t.emit("error",r))}function w(t,r,i){let o=t._readableState,s=t._writableState;if(null!=s&&s.destroyed||null!=o&&o.destroyed)return this;null!=o&&o.autoDestroy||null!=s&&s.autoDestroy?t.destroy(r):r&&(r.stack,s&&!s.errored&&(s.errored=r),o&&!o.errored&&(o.errored=r),i?n.nextTick($,t,r):$(t,r))}function v(t){let r=!1;function i(i){if(r)return void w(t,null!=i?i:new s);r=!0;let o=t._readableState,a=t._writableState,l=a||o;o&&(o.constructed=!0),a&&(a.constructed=!0),l.destroyed?t.emit(f,i):i?w(t,i,!0):n.nextTick(_,t)}try{t._construct(t=>{n.nextTick(i,t)})}catch(o){n.nextTick(i,o)}}function _(t){t.emit(p)}function S(t){return(null==t?void 0:t.setHeader)&&"function"==typeof t.abort}function E(t){t.emit("close")}function k(t,r){t.emit("error",r),n.nextTick(E,t)}t.exports={construct:function(t,r){if("function"!=typeof t._construct)return;let i=t._readableState,o=t._writableState;i&&(i.constructed=!1),o&&(o.constructed=!1),t.once(p,r),t.listenerCount(p)>1||n.nextTick(v,t)},destroyer:function(t,r){t&&!c(t)&&(r||d(t)||(r=new a),h(t)?(t.socket=null,t.destroy(r)):S(t)?t.abort():S(t.req)?t.req.abort():"function"==typeof t.destroy?t.destroy(r):"function"==typeof t.close?t.close():r?n.nextTick(k,t,r):n.nextTick(E,t),t.destroyed||(t[u]=!0))},destroy:function(t,r){let i=this._readableState,n=this._writableState,s=n||i;return null!=n&&n.destroyed||null!=i&&i.destroyed?("function"==typeof r&&r(),this):(g(t,n,i),n&&(n.destroyed=!0),i&&(i.destroyed=!0),s.constructed?b(this,t,r):this.once(f,function(i){b(this,o(i,t),r)}),this)},undestroy:function(){let t=this._readableState,r=this._writableState;t&&(t.constructed=!0,t.closed=!1,t.closeEmitted=!1,t.destroyed=!1,t.errored=null,t.errorEmitted=!1,t.reading=!1,t.ended=!1===t.readable,t.endEmitted=!1===t.readable),r&&(r.constructed=!0,r.destroyed=!1,r.closed=!1,r.closeEmitted=!1,r.errored=null,r.errorEmitted=!1,r.finalCalled=!1,r.prefinished=!1,r.ended=!1===r.writable,r.ending=!1===r.writable,r.finished=!1===r.writable)},errorOrDestroy:w}},722(t,r,i){"use strict";let{ObjectDefineProperties:n,ObjectGetOwnPropertyDescriptor:o,ObjectKeys:s,ObjectSetPrototypeOf:a}=i(8622);t.exports=f;let l=i(7360),u=i(9040);a(f.prototype,l.prototype),a(f,l);{let c=s(u.prototype);for(let d=0;d{h=!1,t&&$(r,t),f(t)}),c._write=function(t,r,o){i.write(t,r)?o():n=o},c._final=function(t){i.end(),o=t},i.on("drain",function(){if(n){let t=n;n=null,t()}}),i.on("finish",function(){if(o){let t=o;o=null,t()}})),d&&(g(r,t=>{d=!1,t&&$(r,t),f(t)}),r.on("readable",function(){if(l){let t=l;l=null,t()}}),r.on("end",function(){c.push(null)}),c._read=function(){for(;;){let t=r.read();if(null===t)return void(l=c._read);if(!c.push(t))return}}),c._destroy=function(t,s){t||null===u||(t=new b),l=null,n=null,o=null,null===u?s(t):(u=s,$(i,t),$(r,t))},c}t.exports=function t(r,i){if(h(r))return r;if(c(r))return C({readable:r});if(d(r))return C({writable:r});if(u(r))return C({writable:!1,readable:!1});if(f(r))return C({readable:v.fromWeb(r)});if(p(r))return C({writable:_.fromWeb(r)});if("function"==typeof r){let{value:o,write:s,final:a,destroy:g}=function(t){let{promise:r,resolve:i}=S(),o=new R,s=o.signal;return{value:t(async function*(){for(;;){let t=r;r=null;let{chunk:o,done:a,cb:l}=await t;if(n.nextTick(l),a)return;if(s.aborted)throw new b(void 0,{cause:s.reason});({promise:r,resolve:i}=S()),yield o}}(),{signal:s}),write(t,r,n){let o=i;i=null,o({chunk:t,done:!1,cb:n})},final(t){let r=i;i=null,r({done:!0,cb:t})},destroy(t,r){o.abort(),r(t)}}}(r);if(l(o))return E(I,o,{objectMode:!0,write:s,final:a,destroy:g});let w=null==o?void 0:o.then;if("function"==typeof w){let k,P=T(w,o,t=>{if(null!=t)throw new y("nully","body",t)},t=>{$(k,t)});return k=new I({objectMode:!0,readable:!1,write:s,final(t){a(async()=>{try{await P,n.nextTick(t,null)}catch(r){n.nextTick(t,r)}})},destroy:g})}throw new y("Iterable, AsyncIterable or AsyncFunction",i,o)}if(A(r))return t(r.arrayBuffer());if(l(r))return E(I,r,{objectMode:!0,writable:!1});if(f(null==r?void 0:r.readable)&&p(null==r?void 0:r.writable))return I.fromWeb(r);if("object"==typeof(null==r?void 0:r.writable)||"object"==typeof(null==r?void 0:r.readable))return C({readable:null!=r&&r.readable?c(null==r?void 0:r.readable)?null==r?void 0:r.readable:t(r.readable):void 0,writable:null!=r&&r.writable?d(null==r?void 0:r.writable)?null==r?void 0:r.writable:t(r.writable):void 0});let x=null==r?void 0:r.then;if("function"==typeof x){let M;return T(x,r,t=>{null!=t&&M.push(t),M.push(null)},t=>{$(M,t)}),M=new I({objectMode:!0,writable:!1,read(){}})}throw new m(i,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],r)}},9398(t,r,i){let n=i(6308),{AbortError:o,codes:s}=i(7115),{ERR_INVALID_ARG_TYPE:a,ERR_STREAM_PREMATURE_CLOSE:l}=s,{kEmptyObject:u,once:c}=i(8104),{validateAbortSignal:d,validateFunction:h,validateObject:f,validateBoolean:p}=i(6317),{Promise:g,PromisePrototypeThen:b,SymbolDispose:m}=i(8622),{isClosed:y,isReadable:$,isReadableNodeStream:w,isReadableStream:v,isReadableFinished:_,isReadableErrored:S,isWritable:E,isWritableNodeStream:k,isWritableStream:A,isWritableFinished:R,isWritableErrored:T,isNodeStream:I,willEmitClose:C,kIsClosedPromise:P}=i(3003),x,M=()=>{};function O(t,r,s){var p,g,O;if(2===arguments.length?(s=r,r=u):null==r?r=u:f(r,"options"),h(s,"callback"),d(r.signal,"options.signal"),s=c(s),v(t)||A(t))return function(t,r,s){let a=!1,l=M;if(r.signal){if(l=()=>{a=!0,s.call(t,new o(void 0,{cause:r.signal.reason}))},r.signal.aborted)n.nextTick(l);else{x=x||i(8104).addAbortListener;let u=x(r.signal,l),d=s;s=c((...r)=>{u[m](),d.apply(t,r)})}}let h=(...r)=>{a||n.nextTick(()=>s.apply(t,r))};return b(t[P].promise,h,h),M}(t,r,s);if(!I(t))throw new a("stream",["ReadableStream","WritableStream","Stream"],t);let N=null!==(p=r.readable)&&void 0!==p?p:w(t),L=null!==(g=r.writable)&&void 0!==g?g:k(t),D=t._writableState,W=t._readableState,U=()=>{t.writable||j()},B=C(t)&&w(t)===N&&k(t)===L,F=R(t,!1),j=()=>{F=!0,t.destroyed&&(B=!1),B&&(!t.readable||N)||N&&!V||s.call(t)},V=_(t,!1),G=()=>{V=!0,t.destroyed&&(B=!1),B&&(!t.writable||L)||L&&!F||s.call(t)},q=r=>{s.call(t,r)},K=y(t),H=()=>{K=!0;let r=T(t)||S(t);return r&&"boolean"!=typeof r?s.call(t,r):N&&!V&&w(t,!0)&&!_(t,!1)?s.call(t,new l):!L||F||R(t,!1)?void s.call(t):s.call(t,new l)},z=()=>{K=!0;let r=T(t)||S(t);if(r&&"boolean"!=typeof r)return s.call(t,r);s.call(t)},Q=()=>{t.req.on("finish",j)};(O=t).setHeader&&"function"==typeof O.abort?(t.on("complete",j),B||t.on("abort",H),t.req?Q():t.on("request",Q)):L&&!D&&(t.on("end",U),t.on("close",U)),B||"boolean"!=typeof t.aborted||t.on("aborted",H),t.on("end",G),t.on("finish",j),!1!==r.error&&t.on("error",q),t.on("close",H),K?n.nextTick(H):null!=D&&D.errorEmitted||null!=W&&W.errorEmitted?B||n.nextTick(z):(N||B&&!$(t)||!F&&!1!==E(t))&&(L||B&&!E(t)||!V&&!1!==$(t))?W&&t.req&&t.aborted&&n.nextTick(z):n.nextTick(z);let Y=()=>{s=M,t.removeListener("aborted",H),t.removeListener("complete",j),t.removeListener("abort",H),t.removeListener("request",Q),t.req&&t.req.removeListener("finish",j),t.removeListener("end",U),t.removeListener("close",U),t.removeListener("finish",j),t.removeListener("end",G),t.removeListener("error",q),t.removeListener("close",H)};if(r.signal&&!K){let X=()=>{let i=s;Y(),i.call(t,new o(void 0,{cause:r.signal.reason}))};if(r.signal.aborted)n.nextTick(X);else{x=x||i(8104).addAbortListener;let Z=x(r.signal,X),J=s;s=c((...r)=>{Z[m](),J.apply(t,r)})}}return Y}t.exports=O,t.exports.finished=function(t,r){var i;let n=!1;return null===r&&(r=u),null!==(i=r)&&void 0!==i&&i.cleanup&&(p(r.cleanup,"cleanup"),n=r.cleanup),new g((i,o)=>{let s=O(t,r,t=>{n&&s(),t?o(t):i()})})}},1868(t,r,i){"use strict";let n=i(6308),{PromisePrototypeThen:o,SymbolAsyncIterator:s,SymbolIterator:a}=i(8622),{Buffer:l}=i(181),{ERR_INVALID_ARG_TYPE:u,ERR_STREAM_NULL_VALUES:c}=i(7115).codes;t.exports=function(t,r,i){let d,h;if("string"==typeof r||r instanceof l)return new t({objectMode:!0,...i,read(){this.push(r),this.push(null)}});if(r&&r[s])h=!0,d=r[s]();else{if(!r||!r[a])throw new u("iterable",["Iterable"],r);h=!1,d=r[a]()}let f=new t({objectMode:!0,highWaterMark:1,...i}),p=!1;return f._read=function(){p||(p=!0,async function(){for(;;){try{let{value:t,done:r}=h?await d.next():d.next();if(r)f.push(null);else{let i=t&&"function"==typeof t.then?await t:t;if(null===i)throw p=!1,new c;if(f.push(i))continue;p=!1}}catch(n){f.destroy(n)}break}}())},f._destroy=function(t,r){o(async function(t){let r="function"==typeof d.throw;if(null!=t&&r){let{value:i,done:n}=await d.throw(t);if(await i,n)return}if("function"==typeof d.return){let{value:o}=await d.return();await o}}(t),()=>n.nextTick(r,t),i=>n.nextTick(r,i||t))},f}},6795(t,r,i){"use strict";let{ArrayIsArray:n,ObjectSetPrototypeOf:o}=i(8622),{EventEmitter:s}=i(4434);function a(t){s.call(this,t)}function l(t,r,i){if("function"==typeof t.prependListener)return t.prependListener(r,i);t._events&&t._events[r]?n(t._events[r])?t._events[r].unshift(i):t._events[r]=[i,t._events[r]]:t.on(r,i)}o(a.prototype,s.prototype),o(a,s),a.prototype.pipe=function(t,r){let i=this;function n(r){t.writable&&!1===t.write(r)&&i.pause&&i.pause()}function o(){i.readable&&i.resume&&i.resume()}i.on("data",n),t.on("drain",o),t._isStdio||r&&!1===r.end||(i.on("end",u),i.on("close",c));let a=!1;function u(){a||(a=!0,t.end())}function c(){a||(a=!0,"function"==typeof t.destroy&&t.destroy())}function d(t){h(),0===s.listenerCount(this,"error")&&this.emit("error",t)}function h(){i.removeListener("data",n),t.removeListener("drain",o),i.removeListener("end",u),i.removeListener("close",c),i.removeListener("error",d),t.removeListener("error",d),i.removeListener("end",h),i.removeListener("close",h),t.removeListener("close",h)}return l(i,"error",d),l(t,"error",d),i.on("end",h),i.on("close",h),t.on("close",h),t.emit("pipe",i),t},t.exports={Stream:a,prependListener:l}},5583(t,r,i){"use strict";let n=globalThis.AbortController||i(1506).z1,{codes:{ERR_INVALID_ARG_VALUE:o,ERR_INVALID_ARG_TYPE:s,ERR_MISSING_ARGS:a,ERR_OUT_OF_RANGE:l},AbortError:u}=i(7115),{validateAbortSignal:c,validateInteger:d,validateObject:h}=i(6317),f=i(8622).Symbol("kWeak"),p=i(8622).Symbol("kResistStopPropagation"),{finished:g}=i(9398),b=i(8062),{addAbortSignalNoValidate:m}=i(3483),{isWritable:y,isNodeStream:$}=i(3003),{deprecate:w}=i(8104),{ArrayPrototypePush:v,Boolean:_,MathFloor:S,Number:E,NumberIsNaN:k,Promise:A,PromiseReject:R,PromiseResolve:T,PromisePrototypeThen:I,Symbol:C}=i(8622),P=C("kEmpty"),x=C("kEof");function M(t,r){if("function"!=typeof t)throw new s("fn",["Function","AsyncFunction"],t);null!=r&&h(r,"options"),null!=(null==r?void 0:r.signal)&&c(r.signal,"options.signal");let n=1;null!=(null==r?void 0:r.concurrency)&&(n=S(r.concurrency));let o=n-1;return null!=(null==r?void 0:r.highWaterMark)&&(o=S(r.highWaterMark)),d(n,"options.concurrency",1),d(o,"options.highWaterMark",0),o+=n,(async function*(){let s=i(8104).AbortSignalAny([null==r?void 0:r.signal].filter(_)),a=this,l=[],c={signal:s},d,h,f=!1,p=0;function g(){f=!0,b()}function b(){p-=1,m()}function m(){h&&!f&&p=o||p>=n)&&await new A(t=>{h=t})}l.push(x)}catch(m){let y=R(m);I(y,b,g),l.push(y)}finally{f=!0,d&&(d(),d=null)}}();try{for(;;){for(;l.length>0;){let y=await l[0];if(y===x)return;if(s.aborted)throw new u;y!==P&&(yield y),l.shift(),m()}await new A(t=>{d=t})}}finally{f=!0,h&&(h(),h=null)}}).call(this)}async function O(t,r){for await(let i of N.call(this,t,r))return!0;return!1}function N(t,r){if("function"!=typeof t)throw new s("fn",["Function","AsyncFunction"],t);return M.call(this,async function(r,i){return await t(r,i)?r:P},r)}class L extends a{constructor(){super("reduce"),this.message="Reduce of an empty stream requires an initial value"}}function D(t){if(k(t=E(t)))return 0;if(t<0)throw new l("number",">= 0",t);return t}t.exports.streamReturningOperators={asIndexedPairs:w(function(t){return null!=t&&h(t,"options"),null!=(null==t?void 0:t.signal)&&c(t.signal,"options.signal"),(async function*(){let r=0;for await(let i of this){var n;if(null!=t&&null!==(n=t.signal)&&void 0!==n&&n.aborted)throw new u({cause:t.signal.reason});yield[r++,i]}}).call(this)},"readable.asIndexedPairs will be removed in a future version."),drop:function(t,r){return null!=r&&h(r,"options"),null!=(null==r?void 0:r.signal)&&c(r.signal,"options.signal"),t=D(t),(async function*(){var i,n;if(null!=r&&null!==(i=r.signal)&&void 0!==i&&i.aborted)throw new u;for await(let o of this){if(null!=r&&null!==(n=r.signal)&&void 0!==n&&n.aborted)throw new u;t--<=0&&(yield o)}}).call(this)},filter:N,flatMap:function(t,r){let i=M.call(this,t,r);return(async function*(){for await(let t of i)yield*t}).call(this)},map:M,take:function(t,r){return null!=r&&h(r,"options"),null!=(null==r?void 0:r.signal)&&c(r.signal,"options.signal"),t=D(t),(async function*(){var i,n;if(null!=r&&null!==(i=r.signal)&&void 0!==i&&i.aborted)throw new u;for await(let o of this){if(null!=r&&null!==(n=r.signal)&&void 0!==n&&n.aborted)throw new u;if(t-- >0&&(yield o),t<=0)return}}).call(this)},compose:function(t,r){if(null!=r&&h(r,"options"),null!=(null==r?void 0:r.signal)&&c(r.signal,"options.signal"),$(t)&&!y(t))throw new o("stream",t,"must be writable");let i=b(this,t);return null!=r&&r.signal&&m(r.signal,i),i}},t.exports.promiseReturningOperators={every:async function(t,r){if("function"!=typeof t)throw new s("fn",["Function","AsyncFunction"],t);return!await O.call(this,async(...r)=>!await t(...r),r)},forEach:async function(t,r){if("function"!=typeof t)throw new s("fn",["Function","AsyncFunction"],t);for await(let i of M.call(this,async function(r,i){return await t(r,i),P},r));},reduce:async function(t,r,i){var o,a;if("function"!=typeof t)throw new s("reducer",["Function","AsyncFunction"],t);null!=i&&h(i,"options"),null!=(null==i?void 0:i.signal)&&c(i.signal,"options.signal");let l=arguments.length>1;if(null!=i&&null!==(o=i.signal)&&void 0!==o&&o.aborted){let d=new u(void 0,{cause:i.signal.reason});throw this.once("error",()=>{}),await g(this.destroy(d)),d}let b=new n,m=b.signal;null!=i&&i.signal&&i.signal.addEventListener("abort",()=>b.abort(),{once:!0,[f]:this,[p]:!0});let y=!1;try{for await(let $ of this){if(y=!0,null!=i&&null!==(a=i.signal)&&void 0!==a&&a.aborted)throw new u;l?r=await t(r,$,{signal:m}):(r=$,l=!0)}if(!y&&!l)throw new L}finally{b.abort()}return r},toArray:async function(t){null!=t&&h(t,"options"),null!=(null==t?void 0:t.signal)&&c(t.signal,"options.signal");let r=[];for await(let i of this){var n;if(null!=t&&null!==(n=t.signal)&&void 0!==n&&n.aborted)throw new u(void 0,{cause:t.signal.reason});v(r,i)}return r},some:O,find:async function(t,r){for await(let i of N.call(this,t,r))return i}}},8676(t,r,i){"use strict";let{ObjectSetPrototypeOf:n}=i(8622);t.exports=s;let o=i(334);function s(t){if(!(this instanceof s))return new s(t);o.call(this,t)}n(s.prototype,o.prototype),n(s,o),s.prototype._transform=function(t,r,i){i(null,t)}},678(t,r,i){let n=i(6308),{ArrayIsArray:o,Promise:s,SymbolAsyncIterator:a,SymbolDispose:l}=i(8622),u=i(9398),{once:c}=i(8104),d=i(8816),h=i(722),{aggregateTwoErrors:f,codes:{ERR_INVALID_ARG_TYPE:p,ERR_INVALID_RETURN_VALUE:g,ERR_MISSING_ARGS:b,ERR_STREAM_DESTROYED:m,ERR_STREAM_PREMATURE_CLOSE:y},AbortError:$}=i(7115),{validateFunction:w,validateAbortSignal:v}=i(6317),{isIterable:_,isReadable:S,isReadableNodeStream:E,isNodeStream:k,isTransformStream:A,isWebStream:R,isReadableStream:T,isReadableFinished:I}=i(3003),C=globalThis.AbortController||i(1506).z1,P,x,M;function O(t,r,i){let n=!1;return t.on("close",()=>{n=!0}),{destroy(r){n||(n=!0,d.destroyer(t,r||new m("pipe")))},cleanup:u(t,{readable:r,writable:i},t=>{n=!t})}}function N(t){if(_(t))return t;if(E(t))return async function*(t){x||(x=i(7360)),yield*x.prototype[a].call(t)}(t);throw new p("val",["Readable","Iterable","AsyncIterable"],t)}async function L(t,r,i,{end:n}){let o,a=null,l=t=>{if(t&&(o=t),a){let r=a;a=null,r()}},c=()=>new s((t,r)=>{o?r(o):a=()=>{o?r(o):t()}});r.on("drain",l);let d=u(r,{readable:!1},l);try{for await(let h of(r.writableNeedDrain&&await c(),t))r.write(h)||await c();n&&(r.end(),await c()),i()}catch(p){i(o!==p?f(o,p):p)}finally{d(),r.off("drain",l)}}async function D(t,r,i,{end:n}){A(r)&&(r=r.writable);let o=r.getWriter();try{for await(let s of t)await o.ready,o.write(s).catch(()=>{});await o.ready,n&&await o.close(),i()}catch(a){try{await o.abort(a),i(a)}catch(l){i(l)}}}function W(t,r,s){if(1===t.length&&o(t[0])&&(t=t[0]),t.length<2)throw new b("streams");let a=new C,u=a.signal,c=null==s?void 0:s.signal,d=[];function f(){F(new $)}let m,y,w;v(c,"options.signal"),M=M||i(8104).addAbortListener,c&&(m=M(c,f));let I=[],x,W=0;function B(t){F(t,0==--W)}function F(t,i){var o;if(!t||y&&"ERR_STREAM_PREMATURE_CLOSE"!==y.code||(y=t),y||i){for(;I.length;)I.shift()(y);null===(o=m)||void 0===o||o[l](),a.abort(),i&&(y||d.forEach(t=>t()),n.nextTick(r,y,w))}}for(let j=0;j0,K=G||!1!==(null==s?void 0:s.end),H=j===t.length-1;if(k(V)){if(K){let{destroy:z,cleanup:Q}=O(V,G,q);I.push(z),S(V)&&H&&d.push(Q)}function Y(t){t&&"AbortError"!==t.name&&"ERR_STREAM_PREMATURE_CLOSE"!==t.code&&B(t)}V.on("error",Y),S(V)&&H&&d.push(()=>{V.removeListener("error",Y)})}if(0===j){if("function"==typeof V){if(!_(x=V({signal:u})))throw new g("Iterable, AsyncIterable or Stream","source",x)}else x=_(V)||E(V)||A(V)?V:h.from(V)}else if("function"==typeof V){var X,Z;if(x=A(x)?N(null===(X=x)||void 0===X?void 0:X.readable):N(x),x=V(x,{signal:u}),G){if(!_(x,!0))throw new g("AsyncIterable",`transform[${j-1}]`,x)}else{P||(P=i(8676));let J=new P({objectMode:!0}),ee=null===(Z=x)||void 0===Z?void 0:Z.then;if("function"==typeof ee)W++,ee.call(x,t=>{w=t,null!=t&&J.write(t),K&&J.end(),n.nextTick(B)},t=>{J.destroy(t),n.nextTick(B,t)});else if(_(x,!0))W++,L(x,J,B,{end:K});else{if(!T(x)&&!A(x))throw new g("AsyncIterable or Promise","destination",x);{let et=x.readable||x;W++,L(et,J,B,{end:K})}}x=J;let{destroy:er,cleanup:ei}=O(x,!1,!0);I.push(er),H&&d.push(ei)}}else if(k(V)){if(E(x)){W+=2;let en=U(x,V,B,{end:K});S(V)&&H&&d.push(en)}else if(A(x)||T(x)){let eo=x.readable||x;W++,L(eo,V,B,{end:K})}else{if(!_(x))throw new p("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],x);W++,L(x,V,B,{end:K})}x=V}else if(R(V)){if(E(x))W++,D(N(x),V,B,{end:K});else if(T(x)||_(x))W++,D(x,V,B,{end:K});else{if(!A(x))throw new p("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],x);W++,D(x.readable,V,B,{end:K})}x=V}else x=h.from(V)}return(null!=u&&u.aborted||null!=c&&c.aborted)&&n.nextTick(f),x}function U(t,r,i,{end:o}){let s=!1;if(r.on("close",()=>{s||i(new y)}),t.pipe(r,{end:!1}),o){function a(){s=!0,r.end()}I(t)?n.nextTick(a):t.once("end",a)}else i();return u(t,{readable:!0,writable:!1},r=>{let n=t._readableState;r&&"ERR_STREAM_PREMATURE_CLOSE"===r.code&&n&&n.ended&&!n.errored&&!n.errorEmitted?t.once("end",i).once("error",i):i(r)}),u(r,{readable:!1,writable:!0},i)}t.exports={pipelineImpl:W,pipeline:function(...t){var r;return W(t,c((w((r=t)[r.length-1],"streams[stream.length - 1]"),r.pop())))}}},7360(t,r,i){let n=i(6308),{ArrayPrototypeIndexOf:o,NumberIsInteger:s,NumberIsNaN:a,NumberParseInt:l,ObjectDefineProperties:u,ObjectKeys:c,ObjectSetPrototypeOf:d,Promise:h,SafeSet:f,SymbolAsyncDispose:p,SymbolAsyncIterator:g,Symbol:b}=i(8622);t.exports=V,V.ReadableState=j;let{EventEmitter:m}=i(4434),{Stream:y,prependListener:$}=i(6795),{Buffer:w}=i(181),{addAbortSignal:v}=i(3483),_=i(9398),S=i(8104).debuglog("stream",t=>{S=t}),E=i(1793),k=i(8816),{getHighWaterMark:A,getDefaultHighWaterMark:R}=i(8851),{aggregateTwoErrors:T,codes:{ERR_INVALID_ARG_TYPE:I,ERR_METHOD_NOT_IMPLEMENTED:C,ERR_OUT_OF_RANGE:P,ERR_STREAM_PUSH_AFTER_EOF:x,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:M},AbortError:O}=i(7115),{validateObject:N}=i(6317),L=b("kPaused"),{StringDecoder:D}=i(3193),W=i(1868);d(V.prototype,y.prototype),d(V,y);let U=()=>{},{errorOrDestroy:B}=k;function F(t){return{enumerable:!1,get(){return!!(this.state&t)},set(r){r?this.state|=t:this.state&=~t}}}function j(t,r,n){"boolean"!=typeof n&&(n=r instanceof i(722)),this.state=6192,t&&t.objectMode&&(this.state|=1),n&&t&&t.readableObjectMode&&(this.state|=1),this.highWaterMark=t?A(this,t,"readableHighWaterMark",n):R(!1),this.buffer=new E,this.length=0,this.pipes=[],this.flowing=null,this[L]=null,t&&!1===t.emitClose&&(this.state&=-2049),t&&!1===t.autoDestroy&&(this.state&=-4097),this.errored=null,this.defaultEncoding=t&&t.defaultEncoding||"utf8",this.awaitDrainWriters=null,this.decoder=null,this.encoding=null,t&&t.encoding&&(this.decoder=new D(t.encoding),this.encoding=t.encoding)}function V(t){if(!(this instanceof V))return new V(t);let r=this instanceof i(722);this._readableState=new j(t,this,r),t&&("function"==typeof t.read&&(this._read=t.read),"function"==typeof t.destroy&&(this._destroy=t.destroy),"function"==typeof t.construct&&(this._construct=t.construct),t.signal&&!r&&v(t.signal,this)),y.call(this,t),k.construct(this,()=>{this._readableState.needReadable&&Q(this,this._readableState)})}function G(t,r,i,n){S("readableAddChunk",r);let o=t._readableState,s;if(1&o.state||("string"==typeof r?(i=i||o.defaultEncoding,o.encoding!==i&&(n&&o.encoding?r=w.from(r,i).toString(o.encoding):(r=w.from(r,i),i=""))):r instanceof w?i="":y._isUint8Array(r)?(r=y._uint8ArrayToBuffer(r),i=""):null!=r&&(s=new I("chunk",["string","Buffer","Uint8Array"],r))),s)B(t,s);else if(null===r)o.state&=-9,function(t,r){if(S("onEofChunk"),!r.ended){if(r.decoder){let i=r.decoder.end();i&&i.length&&(r.buffer.push(i),r.length+=r.objectMode?1:i.length)}r.ended=!0,r.sync?H(t):(r.needReadable=!1,r.emittedReadable=!0,z(t))}}(t,o);else if(1&o.state||r&&r.length>0){if(n){if(4&o.state)B(t,new M);else{if(o.destroyed||o.errored)return!1;q(t,o,r,!0)}}else if(o.ended)B(t,new x);else{if(o.destroyed||o.errored)return!1;o.state&=-9,o.decoder&&!i?(r=o.decoder.write(r),o.objectMode||0!==r.length?q(t,o,r,!1):Q(t,o)):q(t,o,r,!1)}}else n||(o.state&=-9,Q(t,o));return!o.ended&&(o.length0?(65536&r.state?r.awaitDrainWriters.clear():r.awaitDrainWriters=null,r.dataEmitted=!0,t.emit("data",i)):(r.length+=r.objectMode?1:i.length,n?r.buffer.unshift(i):r.buffer.push(i),64&r.state&&H(t)),Q(t,r)}function K(t,r){return t<=0||0===r.length&&r.ended?0:1&r.state?1:a(t)?r.flowing&&r.length?r.buffer.first().length:r.length:t<=r.length?t:r.ended?r.length:0}function H(t){let r=t._readableState;S("emitReadable",r.needReadable,r.emittedReadable),r.needReadable=!1,r.emittedReadable||(S("emitReadable",r.flowing),r.emittedReadable=!0,n.nextTick(z,t))}function z(t){let r=t._readableState;S("emitReadable_",r.destroyed,r.length,r.ended),r.destroyed||r.errored||!r.length&&!r.ended||(t.emit("readable"),r.emittedReadable=!1),r.needReadable=!r.flowing&&!r.ended&&r.length<=r.highWaterMark,ee(t)}function Q(t,r){!r.readingMore&&r.constructed&&(r.readingMore=!0,n.nextTick(Y,t,r))}function Y(t,r){for(;!r.reading&&!r.ended&&(r.length0,r.resumeScheduled&&!1===r[L]?r.flowing=!0:t.listenerCount("data")>0?t.resume():r.readableListening||(r.flowing=null)}function Z(t){S("readable nexttick read 0"),t.read(0)}function J(t,r){S("resume",r.reading),r.reading||t.read(0),r.resumeScheduled=!1,t.emit("resume"),ee(t),r.flowing&&!r.reading&&t.read(0)}function ee(t){let r=t._readableState;for(S("flow",r.flowing);r.flowing&&null!==t.read(););}function et(t,r){"function"!=typeof t.read&&(t=V.wrap(t,{objectMode:!0}));let i=async function*(t,r){let i,n=U;function o(r){this===t?(n(),n=U):n=r}t.on("readable",o);let s=_(t,{writable:!1},t=>{i=t?T(i,t):null,n(),n=U});try{for(;;){let a=t.destroyed?null:t.read();if(null!==a)yield a;else{if(i)throw i;if(null===i)return;await new h(o)}}}catch(l){throw i=T(i,l)}finally{(i||!1!==(null==r?void 0:r.destroyOnReturn))&&(void 0===i||t._readableState.autoDestroy)?k.destroyer(t,null):(t.off("readable",o),s())}}(t,r);return i.stream=t,i}function er(t,r){if(0===r.length)return null;let i;return r.objectMode?i=r.buffer.shift():!t||t>=r.length?(i=r.decoder?r.buffer.join(""):1===r.buffer.length?r.buffer.first():r.buffer.concat(r.length),r.buffer.clear()):i=r.buffer.consume(t,r.decoder),i}function ei(t){let r=t._readableState;S("endReadable",r.endEmitted),r.endEmitted||(r.ended=!0,n.nextTick(en,r,t))}function en(t,r){if(S("endReadableNT",t.endEmitted,t.length),!t.errored&&!t.closeEmitted&&!t.endEmitted&&0===t.length){if(t.endEmitted=!0,r.emit("end"),r.writable&&!1===r.allowHalfOpen)n.nextTick(eo,r);else if(t.autoDestroy){let i=r._writableState;(!i||i.autoDestroy&&(i.finished||!1===i.writable))&&r.destroy()}}}function eo(t){!t.writable||t.writableEnded||t.destroyed||t.end()}let es;function ea(){return void 0===es&&(es={}),es}u(j.prototype,{objectMode:F(1),ended:F(2),endEmitted:F(4),reading:F(8),constructed:F(16),sync:F(32),needReadable:F(64),emittedReadable:F(128),readableListening:F(256),resumeScheduled:F(512),errorEmitted:F(1024),emitClose:F(2048),autoDestroy:F(4096),destroyed:F(8192),closed:F(16384),closeEmitted:F(32768),multiAwaitDrain:F(65536),readingMore:F(131072),dataEmitted:F(262144)}),V.prototype.destroy=k.destroy,V.prototype._undestroy=k.undestroy,V.prototype._destroy=function(t,r){r(t)},V.prototype[m.captureRejectionSymbol]=function(t){this.destroy(t)},V.prototype[p]=function(){let t;return this.destroyed||(t=this.readableEnded?null:new O,this.destroy(t)),new h((r,i)=>_(this,n=>n&&n!==t?i(n):r(null)))},V.prototype.push=function(t,r){return G(this,t,r,!1)},V.prototype.unshift=function(t,r){return G(this,t,r,!0)},V.prototype.isPaused=function(){let t=this._readableState;return!0===t[L]||!1===t.flowing},V.prototype.setEncoding=function(t){let r=new D(t);this._readableState.decoder=r,this._readableState.encoding=this._readableState.decoder.encoding;let i=this._readableState.buffer,n="";for(let o of i)n+=r.write(o);return i.clear(),""!==n&&i.push(n),this._readableState.length=n.length,this},V.prototype.read=function(t){S("read",t),void 0===t?t=NaN:s(t)||(t=l(t,10));let r=this._readableState,i=t;if(t>r.highWaterMark&&(r.highWaterMark=function(t){if(t>1073741824)throw new P("size","<= 1GiB",t);return t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,++t}(t)),0!==t&&(r.state&=-129),0===t&&r.needReadable&&((0!==r.highWaterMark?r.length>=r.highWaterMark:r.length>0)||r.ended))return S("read: emitReadable",r.length,r.ended),0===r.length&&r.ended?ei(this):H(this),null;if(0===(t=K(t,r))&&r.ended)return 0===r.length&&ei(this),null;let n,o=!!(64&r.state);if(S("need readable",o),(0===r.length||r.length-t0?er(t,r):null)?(r.needReadable=r.length<=r.highWaterMark,t=0):(r.length-=t,r.multiAwaitDrain?r.awaitDrainWriters.clear():r.awaitDrainWriters=null),0===r.length&&(r.ended||(r.needReadable=!0),i!==t&&r.ended&&ei(this)),null===n||r.errorEmitted||r.closeEmitted||(r.dataEmitted=!0,this.emit("data",n)),n},V.prototype._read=function(t){throw new C("_read()")},V.prototype.pipe=function(t,r){let i=this,o=this._readableState;1===o.pipes.length&&(o.multiAwaitDrain||(o.multiAwaitDrain=!0,o.awaitDrainWriters=new f(o.awaitDrainWriters?[o.awaitDrainWriters]:[]))),o.pipes.push(t),S("pipe count=%d opts=%j",o.pipes.length,r);let s=r&&!1===r.end||t===n.stdout||t===n.stderr?b:a;function a(){S("onend"),t.end()}let l;o.endEmitted?n.nextTick(s):i.once("end",s),t.on("unpipe",function r(n,s){S("onunpipe"),n===i&&s&&!1===s.hasUnpiped&&(s.hasUnpiped=!0,S("cleanup"),t.removeListener("close",p),t.removeListener("finish",g),l&&t.removeListener("drain",l),t.removeListener("error",h),t.removeListener("unpipe",r),i.removeListener("end",a),i.removeListener("end",b),i.removeListener("data",d),u=!0,l&&o.awaitDrainWriters&&(!t._writableState||t._writableState.needDrain)&&l())});let u=!1;function c(){var r,n;u||(1===o.pipes.length&&o.pipes[0]===t?(S("false write response, pause",0),o.awaitDrainWriters=t,o.multiAwaitDrain=!1):o.pipes.length>1&&o.pipes.includes(t)&&(S("false write response, pause",o.awaitDrainWriters.size),o.awaitDrainWriters.add(t)),i.pause()),l||(l=(r=i,n=t,function(){let t=r._readableState;t.awaitDrainWriters===n?(S("pipeOnDrain",1),t.awaitDrainWriters=null):t.multiAwaitDrain&&(S("pipeOnDrain",t.awaitDrainWriters.size),t.awaitDrainWriters.delete(n)),t.awaitDrainWriters&&0!==t.awaitDrainWriters.size||!r.listenerCount("data")||r.resume()}),t.on("drain",l))}function d(r){S("ondata");let i=t.write(r);S("dest.write",i),!1===i&&c()}function h(r){if(S("onerror",r),b(),t.removeListener("error",h),0===t.listenerCount("error")){let i=t._writableState||t._readableState;i&&!i.errorEmitted?B(t,r):t.emit("error",r)}}function p(){t.removeListener("finish",g),b()}function g(){S("onfinish"),t.removeListener("close",p),b()}function b(){S("unpipe"),i.unpipe(t)}return i.on("data",d),$(t,"error",h),t.once("close",p),t.once("finish",g),t.emit("pipe",i),!0===t.writableNeedDrain?c():o.flowing||(S("pipe resume"),i.resume()),t},V.prototype.unpipe=function(t){let r=this._readableState;if(0===r.pipes.length)return this;if(!t){let i=r.pipes;r.pipes=[],this.pause();for(let n=0;n0,!1!==o.flowing&&this.resume()):"readable"===t&&(o.endEmitted||o.readableListening||(o.readableListening=o.needReadable=!0,o.flowing=!1,o.emittedReadable=!1,S("on readable",o.length,o.reading),o.length?H(this):o.reading||n.nextTick(Z,this))),i},V.prototype.addListener=V.prototype.on,V.prototype.removeListener=function(t,r){let i=y.prototype.removeListener.call(this,t,r);return"readable"===t&&n.nextTick(X,this),i},V.prototype.off=V.prototype.removeListener,V.prototype.removeAllListeners=function(t){let r=y.prototype.removeAllListeners.apply(this,arguments);return"readable"!==t&&void 0!==t||n.nextTick(X,this),r},V.prototype.resume=function(){var t,r;let i=this._readableState;return i.flowing||(S("resume"),i.flowing=!i.readableListening,t=this,(r=i).resumeScheduled||(r.resumeScheduled=!0,n.nextTick(J,t,r))),i[L]=!1,this},V.prototype.pause=function(){return S("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(S("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState[L]=!0,this},V.prototype.wrap=function(t){let r=!1;t.on("data",i=>{!this.push(i)&&t.pause&&(r=!0,t.pause())}),t.on("end",()=>{this.push(null)}),t.on("error",t=>{B(this,t)}),t.on("close",()=>{this.destroy()}),t.on("destroy",()=>{this.destroy()}),this._read=()=>{r&&t.resume&&(r=!1,t.resume())};let i=c(t);for(let n=1;n{r?t?t(r):this.destroy(r):(null!=i&&this.push(i),this.push(null),t&&t())})}function h(){this._final!==d&&d.call(this)}c.prototype._final=d,c.prototype._transform=function(t,r,i){throw new s("_transform()")},c.prototype._write=function(t,r,i){let n=this._readableState,o=this._writableState,s=n.length;this._transform(t,r,(t,r)=>{t?i(t):(null!=r&&this.push(r),o.ended||s===n.length||n.length{let t=this._writableState;t.writing||V(this,t),q(this,t)})}function L(t,r,i,o){let s=t._writableState;if("function"==typeof i)o=i,i=s.defaultEncoding;else{if(i){if("buffer"!==i&&!b.isEncoding(i))throw new I(i)}else i=s.defaultEncoding;"function"!=typeof o&&(o=P)}if(null===r)throw new R;if(!s.objectMode){if("string"==typeof r)!1!==s.decodeStrings&&(r=b.from(r,i),i="buffer");else if(r instanceof b)i="buffer";else{if(!g._isUint8Array(r))throw new v("chunk",["string","Buffer","Uint8Array"],r);r=g._uint8ArrayToBuffer(r),i="buffer"}}let a;return s.ending?a=new T:s.destroyed&&(a=new k("write")),a?(n.nextTick(o,a),C(t,a,!0),a):(s.pendingcb++,function(t,r,i,n,o){let s=r.objectMode?1:i.length;r.length+=s;let a=r.lengthi.bufferedIndex&&V(t,i),o?null!==i.afterWriteTickInfo&&i.afterWriteTickInfo.cb===s?i.afterWriteTickInfo.count++:(i.afterWriteTickInfo={count:1,cb:s,stream:t,state:i},n.nextTick(B,i.afterWriteTickInfo)):F(t,i,1,s))):C(t,new S)}function B({stream:t,state:r,count:i,cb:n}){return r.afterWriteTickInfo=null,F(t,r,i,n)}function F(t,r,i,n){for(r.ending||t.destroyed||0!==r.length||!r.needDrain||(r.needDrain=!1,t.emit("drain"));i-- >0;)r.pendingcb--,n();r.destroyed&&j(r),q(t,r)}function j(t){var r,i;if(t.writing)return;for(let n=t.bufferedIndex;n1&&t._writev){r.pendingcb-=a-1;let u=r.allNoop?P:t=>{for(let r=l;r256?(i.splice(0,l),r.bufferedIndex=0):r.bufferedIndex=l}r.bufferProcessing=!1}function G(t){return t.ending&&!t.destroyed&&t.constructed&&0===t.length&&!t.errored&&0===t.buffered.length&&!t.finished&&!t.writing&&!t.errorEmitted&&!t.closeEmitted}function q(t,r,i){var o,s;G(r)&&(o=t,(s=r).prefinished||s.finalCalled||("function"!=typeof o._final||s.destroyed?(s.prefinished=!0,o.emit("prefinish")):(s.finalCalled=!0,function(t,r){let i=!1;function o(o){if(i)C(t,null!=o?o:S());else if(i=!0,r.pendingcb--,o){let s=r[x].splice(0);for(let a=0;a{G(r)?K(t,r):r.pendingcb--},t,r)):G(r)&&(r.pendingcb++,K(t,r))))}function K(t,r){r.pendingcb--,r.finished=!0;let i=r[x].splice(0);for(let n=0;n{if("number"!=typeof t)throw new w(r,"number",t);if(!l(t))throw new _(r,"an integer",t);if(tn)throw new _(r,`>= ${i} && <= ${n}`,t)}),C=y((t,r,i=-2147483648,n=2147483647)=>{if("number"!=typeof t)throw new w(r,"number",t);if(!l(t))throw new _(r,"an integer",t);if(tn)throw new _(r,`>= ${i} && <= ${n}`,t)}),P=y((t,r,i=!1)=>{if("number"!=typeof t)throw new w(r,"number",t);if(!l(t))throw new _(r,"an integer",t);let n=i?1:0;if(t4294967295)throw new _(r,`>= ${n} && <= 4294967295`,t)});function x(t,r){if("string"!=typeof t)throw new w(r,"string",t)}let M=y((t,r,i)=>{if(!o(i,t)){let n=s(a(i,t=>"string"==typeof t?`'${t}'`:g(t)),", ");throw new v(r,t,"must be one of: "+n)}});function O(t,r){if("boolean"!=typeof t)throw new w(r,"boolean",t)}function N(t,r,i){return null!=t&&f(t,r)?t[r]:i}let L=y((t,r,i=null)=>{let o=N(i,"allowArray",!1),s=N(i,"allowFunction",!1);if(!N(i,"nullable",!1)&&null===t||!o&&n(t)||"object"!=typeof t&&(!s||"function"!=typeof t))throw new w(r,"Object",t)}),D=y((t,r)=>{if(null!=t&&"object"!=typeof t&&"function"!=typeof t)throw new w(r,"a dictionary",t)}),W=y((t,r,i=0)=>{if(!n(t))throw new w(r,"Array",t);if(t.length{if(!A(t))throw new w(r,["Buffer","TypedArray","DataView"],t)}),B=y((t,r)=>{if(void 0!==t&&(null===t||"object"!=typeof t||!("aborted"in t)))throw new w(r,"AbortSignal",t)}),F=y((t,r)=>{if("function"!=typeof t)throw new w(r,"Function",t)}),j=y((t,r)=>{if("function"!=typeof t||k(t))throw new w(r,"Function",t)}),V=y((t,r)=>{if(void 0!==t)throw new w(r,"undefined",t)}),G=/^(?:<[^>]*>)(?:\s*;\s*[^;"\s]+(?:=(")?[^;"\s]*\1)?)*$/;function q(t,r){if(void 0===t||!p(G,t))throw new v(r,t,'must be an array or string of format "; rel=preload; as=style"')}t.exports={isInt32:function(t){return t===(0|t)},isUint32:function(t){return t===t>>>0},parseFileMode:function(t,r,i){if(void 0===t&&(t=i),"string"==typeof t){if(null===p(T,t))throw new v(r,t,"must be a 32-bit unsigned integer or an octal string");t=h(t,8)}return P(t,r),t},validateArray:W,validateStringArray:function(t,r){W(t,r);for(let i=0;in||(null!=i||null!=n)&&u(t))throw new _(r,`${null!=i?`>= ${i}`:""}${null!=i&&null!=n?" && ":""}${null!=n?`<= ${n}`:""}`,t)},validateObject:L,validateOneOf:M,validatePlainFunction:j,validatePort:function(t,r="Port",i=!0){if("number"!=typeof t&&"string"!=typeof t||"string"==typeof t&&0===m(t).length||+t!=+t>>>0||t>65535||0===t&&!i)throw new $(r,t,i);return 0|t},validateSignalName:function(t,r="signal"){if(x(t,r),void 0===R[t]){if(void 0!==R[b(t)])throw new S(t+" (signals must use all capital letters)");throw new S(t)}},validateString:x,validateUint32:P,validateUndefined:V,validateUnion:function(t,r,i){if(!o(i,t))throw new w(r,`('${s(i,"|")}')`,t)},validateAbortSignal:B,validateLinkHeaderValue:function(t){if("string"==typeof t)return q(t,"hints"),t;if(n(t)){let r=t.length,i="";if(0===r)return i;for(let o=0;o; rel=preload; as=style"')}}},7115(t,r,i){"use strict";let{format:n,inspect:o,AggregateError:s}=i(8104),a=globalThis.AggregateError||s,l=Symbol("kIsNodeError"),u=["string","function","number","object","Function","Object","boolean","bigint","symbol"],c=/^([A-Z][a-z0-9]*)+$/,d={};function h(t,r){if(!t)throw new d.ERR_INTERNAL_ASSERTION(r)}function f(t){let r="",i=t.length,n="-"===t[0]?1:0;for(;i>=n+4;i-=3)r=`_${t.slice(i-3,i)}${r}`;return`${t.slice(0,i)}${r}`}function p(t,r,i){i||(i=Error);class o extends i{constructor(...i){super(function(t,r,i){if("function"==typeof r)return h(r.length<=i.length,`Code: ${t}; The provided arguments length (${i.length}) does not match the required ones (${r.length}).`),r(...i);let o=(r.match(/%[dfijoOs]/g)||[]).length;return h(o===i.length,`Code: ${t}; The provided arguments length (${i.length}) does not match the required ones (${o}).`),0===i.length?r:n(r,...i)}(t,r,i))}toString(){return`${this.name} [${t}]: ${this.message}`}}Object.defineProperties(o.prototype,{name:{value:i.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${t}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),o.prototype.code=t,o.prototype[l]=!0,d[t]=o}function g(t){let r="__node_internal_"+t.name;return Object.defineProperty(t,"name",{value:r}),t}p("ERR_ASSERTION","%s",Error),p("ERR_INVALID_ARG_TYPE",(t,r,i)=>{h("string"==typeof t,"'name' must be a string"),Array.isArray(r)||(r=[r]);let n="The ";t.endsWith(" argument")?n+=`${t} `:n+=`"${t}" ${t.includes(".")?"property":"argument"} `,n+="must be ";let s=[],a=[],l=[];for(let d of r)h("string"==typeof d,"All expected entries have to be of type string"),u.includes(d)?s.push(d.toLowerCase()):c.test(d)?a.push(d):(h("object"!==d,'The value "object" should be written as "Object"'),l.push(d));if(a.length>0){let f=s.indexOf("object");-1!==f&&(s.splice(s,f,1),a.push("Object"))}if(s.length>0){switch(s.length){case 1:n+=`of type ${s[0]}`;break;case 2:n+=`one of type ${s[0]} or ${s[1]}`;break;default:{let p=s.pop();n+=`one of type ${s.join(", ")}, or ${p}`}}(a.length>0||l.length>0)&&(n+=" or ")}if(a.length>0){switch(a.length){case 1:n+=`an instance of ${a[0]}`;break;case 2:n+=`an instance of ${a[0]} or ${a[1]}`;break;default:{let g=a.pop();n+=`an instance of ${a.join(", ")}, or ${g}`}}l.length>0&&(n+=" or ")}switch(l.length){case 0:break;case 1:l[0].toLowerCase()!==l[0]&&(n+="an "),n+=`${l[0]}`;break;case 2:n+=`one of ${l[0]} or ${l[1]}`;break;default:{let b=l.pop();n+=`one of ${l.join(", ")}, or ${b}`}}if(null==i)n+=`. Received ${i}`;else if("function"==typeof i&&i.name)n+=`. Received function ${i.name}`;else if("object"==typeof i){var m;null!==(m=i.constructor)&&void 0!==m&&m.name?n+=`. Received an instance of ${i.constructor.name}`:n+=`. Received ${o(i,{depth:-1})}`}else{let y=o(i,{colors:!1});y.length>25&&(y=`${y.slice(0,25)}...`),n+=`. Received type ${typeof i} (${y})`}return n},TypeError),p("ERR_INVALID_ARG_VALUE",(t,r,i="is invalid")=>{let n=o(r);return n.length>128&&(n=n.slice(0,128)+"..."),`The ${t.includes(".")?"property":"argument"} '${t}' ${i}. Received ${n}`},TypeError),p("ERR_INVALID_RETURN_VALUE",(t,r,i)=>{var n;return`Expected ${t} to be returned from the "${r}" function but got ${null!=i&&null!==(n=i.constructor)&&void 0!==n&&n.name?`instance of ${i.constructor.name}`:"type "+typeof i}.`},TypeError),p("ERR_MISSING_ARGS",(...t)=>{let r;h(t.length>0,"At least one arg needs to be specified");let i=t.length;switch(t=(Array.isArray(t)?t:[t]).map(t=>`"${t}"`).join(" or "),i){case 1:r+=`The ${t[0]} argument`;break;case 2:r+=`The ${t[0]} and ${t[1]} arguments`;break;default:{let n=t.pop();r+=`The ${t.join(", ")}, and ${n} arguments`}}return`${r} must be specified`},TypeError),p("ERR_OUT_OF_RANGE",(t,r,i)=>{let n;return h(r,'Missing "range" argument'),Number.isInteger(i)&&Math.abs(i)>4294967296?n=f(String(i)):"bigint"==typeof i?(n=String(i),(i>2n**32n||i<-(2n**32n))&&(n=f(n)),n+="n"):n=o(i),`The value of "${t}" is out of range. It must be ${r}. Received ${n}`},RangeError),p("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),p("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),p("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),p("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),p("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),p("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),p("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),p("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),p("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),p("ERR_STREAM_WRITE_AFTER_END","write after end",Error),p("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),t.exports={AbortError:class t extends Error{constructor(t="The operation was aborted",r){if(void 0!==r&&"object"!=typeof r)throw new d.ERR_INVALID_ARG_TYPE("options","Object",r);super(t,r),this.code="ABORT_ERR",this.name="AbortError"}},aggregateTwoErrors:g(function(t,r){if(t&&r&&t!==r){if(Array.isArray(r.errors))return r.errors.push(t),r;let i=new a([r,t],r.message);return i.code=r.code,i}return t||r}),hideStackFrames:g,codes:d}},6070(t,r,i){"use strict";let n=i(2203);if(n&&"disable"===process.env.READABLE_STREAM){let o=n.promises;t.exports._uint8ArrayToBuffer=n._uint8ArrayToBuffer,t.exports._isUint8Array=n._isUint8Array,t.exports.isDisturbed=n.isDisturbed,t.exports.isErrored=n.isErrored,t.exports.isReadable=n.isReadable,t.exports.Readable=n.Readable,t.exports.Writable=n.Writable,t.exports.Duplex=n.Duplex,t.exports.Transform=n.Transform,t.exports.PassThrough=n.PassThrough,t.exports.addAbortSignal=n.addAbortSignal,t.exports.finished=n.finished,t.exports.destroy=n.destroy,t.exports.pipeline=n.pipeline,t.exports.compose=n.compose,Object.defineProperty(n,"promises",{configurable:!0,enumerable:!0,get:()=>o}),t.exports.Stream=n.Stream}else{let s=i(7370),a=i(5903),l=s.Readable.destroy;t.exports=s.Readable,t.exports._uint8ArrayToBuffer=s._uint8ArrayToBuffer,t.exports._isUint8Array=s._isUint8Array,t.exports.isDisturbed=s.isDisturbed,t.exports.isErrored=s.isErrored,t.exports.isReadable=s.isReadable,t.exports.Readable=s.Readable,t.exports.Writable=s.Writable,t.exports.Duplex=s.Duplex,t.exports.Transform=s.Transform,t.exports.PassThrough=s.PassThrough,t.exports.addAbortSignal=s.addAbortSignal,t.exports.finished=s.finished,t.exports.destroy=s.destroy,t.exports.destroy=l,t.exports.pipeline=s.pipeline,t.exports.compose=s.compose,Object.defineProperty(s,"promises",{configurable:!0,enumerable:!0,get:()=>a}),t.exports.Stream=s.Stream}t.exports.default=t.exports},8622(t){"use strict";t.exports={ArrayIsArray:t=>Array.isArray(t),ArrayPrototypeIncludes:(t,r)=>t.includes(r),ArrayPrototypeIndexOf:(t,r)=>t.indexOf(r),ArrayPrototypeJoin:(t,r)=>t.join(r),ArrayPrototypeMap:(t,r)=>t.map(r),ArrayPrototypePop:(t,r)=>t.pop(r),ArrayPrototypePush:(t,r)=>t.push(r),ArrayPrototypeSlice:(t,r,i)=>t.slice(r,i),Error,FunctionPrototypeCall:(t,r,...i)=>t.call(r,...i),FunctionPrototypeSymbolHasInstance:(t,r)=>Function.prototype[Symbol.hasInstance].call(t,r),MathFloor:Math.floor,Number,NumberIsInteger:Number.isInteger,NumberIsNaN:Number.isNaN,NumberMAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,NumberMIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,NumberParseInt:Number.parseInt,ObjectDefineProperties:(t,r)=>Object.defineProperties(t,r),ObjectDefineProperty:(t,r,i)=>Object.defineProperty(t,r,i),ObjectGetOwnPropertyDescriptor:(t,r)=>Object.getOwnPropertyDescriptor(t,r),ObjectKeys:t=>Object.keys(t),ObjectSetPrototypeOf:(t,r)=>Object.setPrototypeOf(t,r),Promise,PromisePrototypeCatch:(t,r)=>t.catch(r),PromisePrototypeThen:(t,r,i)=>t.then(r,i),PromiseReject:t=>Promise.reject(t),PromiseResolve:t=>Promise.resolve(t),ReflectApply:Reflect.apply,RegExpPrototypeTest:(t,r)=>t.test(r),SafeSet:Set,String,StringPrototypeSlice:(t,r,i)=>t.slice(r,i),StringPrototypeToLowerCase:t=>t.toLowerCase(),StringPrototypeToUpperCase:t=>t.toUpperCase(),StringPrototypeTrim:t=>t.trim(),Symbol,SymbolFor:Symbol.for,SymbolAsyncIterator:Symbol.asyncIterator,SymbolHasInstance:Symbol.hasInstance,SymbolIterator:Symbol.iterator,SymbolDispose:Symbol.dispose||Symbol("Symbol.dispose"),SymbolAsyncDispose:Symbol.asyncDispose||Symbol("Symbol.asyncDispose"),TypedArrayPrototypeSet:(t,r,i)=>t.set(r,i),Boolean,Uint8Array}},8104(t,r,i){"use strict";let n=i(181),{kResistStopPropagation:o,SymbolDispose:s}=i(8622),a=globalThis.AbortSignal||i(1506).h8,l=globalThis.AbortController||i(1506).z1,u=Object.getPrototypeOf(async function(){}).constructor,c=globalThis.Blob||n.Blob,d=(t,r)=>{if(void 0!==t&&(null===t||"object"!=typeof t||!("aborted"in t)))throw new ERR_INVALID_ARG_TYPE(r,"AbortSignal",t)};t.exports={AggregateError:class t extends Error{constructor(t){if(!Array.isArray(t))throw TypeError("Expected input to be an Array, got "+typeof t);let r="";for(let i=0;i{t=i,r=n}),resolve:t,reject:r}},promisify:t=>new Promise((r,i)=>{t((t,...n)=>t?i(t):r(...n))}),debuglog:()=>function(){},format:(t,...r)=>t.replace(/%([sdifj])/g,function(...[t,i]){let n=r.shift();return"f"===i?n.toFixed(6):"j"===i?JSON.stringify(n):"s"===i&&"object"==typeof n?`${n.constructor!==Object?n.constructor.name:""} {}`.trim():n.toString()}),inspect(t){switch(typeof t){case"string":if(t.includes("'")){if(!t.includes('"'))return`"${t}"`;if(!t.includes("`")&&!t.includes("${"))return`\`${t}\``}return`'${t}'`;case"number":return isNaN(t)?"NaN":Object.is(t,-0)?String(t):t;case"bigint":return`${String(t)}n`;case"boolean":case"undefined":return String(t);case"object":return"{}"}},types:{isAsyncFunction:t=>t instanceof u,isArrayBufferView:t=>ArrayBuffer.isView(t)},isBlob:void 0!==c?function(t){return t instanceof c}:function(t){return!1},deprecate:(t,r)=>t,addAbortListener:i(4434).addAbortListener||function(t,r){if(void 0===t)throw new ERR_INVALID_ARG_TYPE("signal","AbortSignal",t);let i;return d(t,"signal"),((t,r)=>{if("function"!=typeof t)throw new ERR_INVALID_ARG_TYPE("listener","Function",t)})(r),t.aborted?queueMicrotask(()=>r()):(t.addEventListener("abort",r,{__proto__:null,once:!0,[o]:!0}),i=()=>{t.removeEventListener("abort",r)}),{__proto__:null,[s](){var t;null===(t=i)||void 0===t||t()}}},AbortSignalAny:a.any||function(t){if(1===t.length)return t[0];let r=new l,i=()=>r.abort();return t.forEach(t=>{d(t,"signals"),t.addEventListener("abort",i,{once:!0})}),r.signal.addEventListener("abort",()=>{t.forEach(t=>t.removeEventListener("abort",i))},{once:!0}),r.signal}},t.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")},7370(t,r,i){let{Buffer:n}=i(181),{ObjectDefineProperty:o,ObjectKeys:s,ReflectApply:a}=i(8622),{promisify:{custom:l}}=i(8104),{streamReturningOperators:u,promiseReturningOperators:c}=i(5583),{codes:{ERR_ILLEGAL_CONSTRUCTOR:d}}=i(7115),h=i(8062),{setDefaultHighWaterMark:f,getDefaultHighWaterMark:p}=i(8851),{pipeline:g}=i(678),{destroyer:b}=i(8816),m=i(9398),y=i(5903),$=i(3003),w=t.exports=i(6795).Stream;for(let v of(w.isDestroyed=$.isDestroyed,w.isDisturbed=$.isDisturbed,w.isErrored=$.isErrored,w.isReadable=$.isReadable,w.isWritable=$.isWritable,w.Readable=i(7360),s(u))){let _=u[v];function S(...t){if(new.target)throw d();return w.Readable.from(a(_,this,t))}o(S,"name",{__proto__:null,value:_.name}),o(S,"length",{__proto__:null,value:_.length}),o(w.Readable.prototype,v,{__proto__:null,value:S,enumerable:!1,configurable:!0,writable:!0})}for(let E of s(c)){let k=c[E];function S(...t){if(new.target)throw d();return a(k,this,t)}o(S,"name",{__proto__:null,value:k.name}),o(S,"length",{__proto__:null,value:k.length}),o(w.Readable.prototype,E,{__proto__:null,value:S,enumerable:!1,configurable:!0,writable:!0})}w.Writable=i(9040),w.Duplex=i(722),w.Transform=i(334),w.PassThrough=i(8676),w.pipeline=g;let{addAbortSignal:A}=i(3483);w.addAbortSignal=A,w.finished=m,w.destroy=b,w.compose=h,w.setDefaultHighWaterMark=f,w.getDefaultHighWaterMark=p,o(w,"promises",{__proto__:null,configurable:!0,enumerable:!0,get:()=>y}),o(g,l,{__proto__:null,enumerable:!0,get:()=>y.pipeline}),o(m,l,{__proto__:null,enumerable:!0,get:()=>y.finished}),w.Stream=w,w._isUint8Array=function(t){return t instanceof Uint8Array},w._uint8ArrayToBuffer=function(t){return n.from(t.buffer,t.byteOffset,t.byteLength)}},5903(t,r,i){"use strict";let{ArrayPrototypePop:n,Promise:o}=i(8622),{isIterable:s,isNodeStream:a,isWebStream:l}=i(3003),{pipelineImpl:u}=i(678),{finished:c}=i(9398);i(7370),t.exports={finished:c,pipeline:function(...t){return new o((r,i)=>{let o,c,d=t[t.length-1];if(d&&"object"==typeof d&&!a(d)&&!s(d)&&!l(d)){let h=n(t);o=h.signal,c=h.end}u(t,(t,n)=>{t?i(t):r(n)},{signal:o,end:c})})}}},6490(t,r,i){let n=i(7721);t.exports.NumberAllocator=n},7721(t,r,i){"use strict";let n=i(6085).CD,o=i(9171)("number-allocator:trace"),s=i(9171)("number-allocator:error");function a(t,r){this.low=t,this.high=r}function l(t,r){if(!(this instanceof l))return new l(t,r);this.min=t,this.max=r,this.ss=new n([],(t,r)=>t.compare(r)),o("Create"),this.clear()}a.prototype.equals=function(t){return this.low===t.low&&this.high===t.high},a.prototype.compare=function(t){return this.lowt||(n===t?(this.ss.updateKeyByIterator(i,new a(n+1,s)),o("use():"+t),0):s===t?(this.ss.updateKeyByIterator(i,new a(n,s-1)),o("use():"+t),0):(this.ss.updateKeyByIterator(i,new a(t+1,s)),this.ss.insert(new a(n,t-1)),o("use():"+t),0)))}return o("use():failed"),!1},l.prototype.free=function(t){if(tthis.max)return void s("free():"+t+" is out of range");let r=new a(t,t),i=this.ss.upperBound(r);if(i.equals(this.ss.end())){if(i.equals(this.ss.begin()))return void this.ss.insert(r);i.pre();let n=i.pointer.high;i.pointer.high+1===t?this.ss.updateKeyByIterator(i,new a(n,t)):this.ss.insert(r)}else if(i.equals(this.ss.begin())){if(t+1===i.pointer.low){let l=i.pointer.high;this.ss.updateKeyByIterator(i,new a(t,l))}else this.ss.insert(r)}else{let u=i.pointer.low,c=i.pointer.high;i.pre();let d=i.pointer.low;i.pointer.high+1===t?t+1===u?(this.ss.eraseElementByIterator(i),this.ss.updateKeyByIterator(i,new a(d,c))):this.ss.updateKeyByIterator(i,new a(d,t)):t+1===u?(this.ss.eraseElementByIterator(i.next()),this.ss.insert(new a(t,c))):this.ss.insert(r)}o("free():"+t)},l.prototype.clear=function(){o("clear()"),this.ss.clear(),this.ss.insert(new a(this.min,this.max))},l.prototype.intervalCount=function(){return this.ss.size()},l.prototype.dump=function(){for(let t of(console.log("length:"+this.ss.size()),this.ss))console.log(t)},t.exports=l},6739(t){"use strict";"undefined"!=typeof process&&process.version&&0!==process.version.indexOf("v0.")&&(0!==process.version.indexOf("v1.")||0===process.version.indexOf("v1.8."))?t.exports=process:t.exports={nextTick:function(t,r,i,n){if("function"!=typeof t)throw TypeError('"callback" argument must be a function');var o,s,a=arguments.length;switch(a){case 0:case 1:return process.nextTick(t);case 2:return process.nextTick(function(){t.call(null,r)});case 3:return process.nextTick(function(){t.call(null,r,i)});case 4:return process.nextTick(function(){t.call(null,r,i,n)});default:for(o=Array(a-1),s=0;s";var i=this.getLineNumber();if(null!=i){r+=":"+i;var n=this.getColumnNumber();n&&(r+=":"+n)}}var o="",s=this.getFunctionName(),a=!0,l=this.isConstructor();if(this.isToplevel()||l)l?o+="new "+(s||""):s?o+=s:(o+=r,a=!1);else{var u=this.getTypeName();"[object Object]"===u&&(u="null");var c=this.getMethodName();s?(u&&0!=s.indexOf(u)&&(o+=u+"."),o+=s,c&&s.indexOf("."+c)!=s.length-c.length-1&&(o+=" [as "+c+"]")):o+=u+"."+(c||"")}return a&&(o+=" ("+r+")"),o}function A(t){var r={};return Object.getOwnPropertyNames(Object.getPrototypeOf(t)).forEach(function(i){r[i]=/^(?:is|get)/.test(i)?function(){return t[i].call(t)}:t[i]}),r.toString=k,r}function R(t,r){if(void 0===r&&(r={nextPosition:null,curPosition:null}),t.isNative())return r.curPosition=null,t;var i=t.getFileName()||t.getScriptNameOrSourceURL();if(i){var n=t.getLineNumber(),o=t.getColumnNumber()-1,s=/^v(10\.1[6-9]|10\.[2-9][0-9]|10\.[0-9]{3,}|1[2-9]\d*|[2-9]\d|\d{3,}|11\.11)/.test("object"==typeof process&&null!==process?process.version:"")?0:62;1!==n||!(o>s)||$()||t.isEval()||(o-=s);var a=E({source:i,line:n,column:o});r.curPosition=a;var l=(t=A(t)).getFunctionName;return t.getFunctionName=function(){return null==r.nextPosition?l():r.nextPosition.name||l()},t.getFileName=function(){return a.source},t.getLineNumber=function(){return a.line},t.getColumnNumber=function(){return a.column+1},t.getScriptNameOrSourceURL=function(){return a.source},t}var u=t.isEval()&&t.getEvalOrigin();return u&&(u=function t(r){var i=/^eval at ([^(]+) \((.+):(\d+):(\d+)\)$/.exec(r);if(i){var n=E({source:i[2],line:+i[3],column:i[4]-1});return"eval at "+i[1]+" ("+n.source+":"+n.line+":"+(n.column+1)+")"}return(i=/^eval at ([^(]+) \((.+)\)$/.exec(r))?"eval at "+i[1]+" ("+t(i[2])+")":r}(u),(t=A(t)).getEvalOrigin=function(){return u}),t}function T(t,r){h&&(p={},g={});for(var i=(t.name||"Error")+": "+(t.message||""),n={nextPosition:null,curPosition:null},o=[],s=r.length-1;s>=0;s--)o.push("\n at "+R(r[s],n)),n.nextPosition=n.curPosition;return n.curPosition=n.nextPosition=null,i+o.reverse().join("")}function I(t){var r=/\n at [^(]+ \((.*):(\d+):(\d+)\)/.exec(t.stack);if(r){var i=r[1],o=+r[2],s=+r[3],a=p[i];if(!a&&n&&n.existsSync(i))try{a=n.readFileSync(i,"utf8")}catch(l){a=""}if(a){var u=a.split(/(?:\r\n|\r|\n)/)[o-1];if(u)return i+":"+o+"\n"+u+"\n"+Array(s).join(" ")+"^"}}return null}y.push(function(t){var r,i=function(t){var r;if($())try{var i=new XMLHttpRequest;i.open("GET",t,!1),i.send(null),r=4===i.readyState?i.responseText:null;var n=i.getResponseHeader("SourceMap")||i.getResponseHeader("X-SourceMap");if(n)return n}catch(o){}r=v(t);for(var s,a,l=/(?:\/\/[@#][\s]*sourceMappingURL=([^\s'"]+)[\s]*$)|(?:\/\*[@#][\s]*sourceMappingURL=([^\s*'"]+)[\s]*(?:\*\/)[\s]*$)/gm;a=l.exec(r);)s=a;return s?s[1]:null}(t);return i?(b.test(i)?(r=l(i.slice(i.indexOf(",")+1),"base64").toString(),i=t):(i=_(t,i),r=v(i)),r?{url:i,map:r}:null):null});var C=m.slice(0),P=y.slice(0);r.wrapCallSite=R,r.getErrorSource=I,r.mapSourcePosition=E,r.retrieveSourceMap=S,r.install=function(r){if((r=r||{}).environment&&-1===["node","browser","auto"].indexOf(f=r.environment))throw Error("environment "+f+" was unknown. Available options are {auto, browser, node}");if(r.retrieveFile&&(r.overrideRetrieveFile&&(m.length=0),m.unshift(r.retrieveFile)),r.retrieveSourceMap&&(r.overrideRetrieveSourceMap&&(y.length=0),y.unshift(r.retrieveSourceMap)),r.hookRequire&&!$()){var i,n=u(t,"module"),o=n.prototype._compile;o.__sourceMapSupport||(n.prototype._compile=function(t,r){return p[r]=t,g[r]=void 0,o.call(this,t,r)},n.prototype._compile.__sourceMapSupport=!0)}if(h||(h="emptyCacheBetweenOperations"in r&&r.emptyCacheBetweenOperations),c||(c=!0,Error.prepareStackTrace=T),!d){var s=!("handleUncaughtExceptions"in r)||r.handleUncaughtExceptions;try{!1===u(t,"worker_threads").isMainThread&&(s=!1)}catch(a){}s&&"object"==typeof process&&null!==process&&"function"==typeof process.on&&(d=!0,i=process.emit,process.emit=function(t){if("uncaughtException"===t){var r,n,o,s=arguments[1]&&arguments[1].stack,a=this.listeners(t).length>0;if(s&&!a)return n=I(r=arguments[1]),(o=function(){if("object"==typeof process&&null!==process)return process.stderr}())&&o._handle&&o._handle.setBlocking&&o._handle.setBlocking(!0),n&&(console.error(),console.error(n)),console.error(r.stack),void("object"==typeof process&&null!==process&&"function"==typeof process.exit&&process.exit(1))}return i.apply(this,arguments)})}},r.resetRetrieveHandlers=function(){m.length=0,y.length=0,m=C.slice(0),S=w(y=P.slice(0)),v=w(m)}},1365(t,r,i){var n=i(33),o=Object.prototype.hasOwnProperty,s="undefined"!=typeof Map;function a(){this._array=[],this._set=s?new Map:Object.create(null)}a.fromArray=function(t,r){for(var i=new a,n=0,o=t.length;n=0)return r}else{var i=n.toSetString(t);if(o.call(this._set,i))return this._set[i]}throw Error('"'+t+'" is not in the set.')},a.prototype.at=function(t){if(t>=0&&t>>=5)>0&&(i|=32),o+=n.encode(i);while(s>0);return o},r.decode=function(t,r,i){var o,s,a,l,u=t.length,c=0,d=0;do{if(r>=u)throw Error("Expected more digits in base 64 VLQ value.");if(-1===(s=n.decode(t.charCodeAt(r++))))throw Error("Invalid base64 digit: "+t.charAt(r-1));o=!!(32&s),c+=(s&=31)<>1,1&~a?l:-l),i.rest=r}},7374(t,r){var i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");r.encode=function(t){if(0<=t&&t0?n-u>1?i(u,n,o,s,a,l):l==r.LEAST_UPPER_BOUND?n1?i(t,u,o,s,a,l):l==r.LEAST_UPPER_BOUND?u:t<0?-1:t}r.GREATEST_LOWER_BOUND=1,r.LEAST_UPPER_BOUND=2,r.search=function(t,n,o,s){if(0===n.length)return -1;var a=i(-1,n.length,t,n,o,s||r.GREATEST_LOWER_BOUND);if(a<0)return -1;for(;a-1>=0&&0===o(n[a],n[a-1],!0);)--a;return a}},0(t,r,i){var n=i(33);function o(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}o.prototype.unsortedForEach=function(t,r){this._array.forEach(t,r)},o.prototype.add=function(t){var r,i,o,s,a,l;i=t,o=(r=this._last).generatedLine,s=i.generatedLine,a=r.generatedColumn,l=i.generatedColumn,s>o||s==o&&l>=a||0>=n.compareByGeneratedPositionsInflated(r,i)?(this._last=t,this._array.push(t)):(this._sorted=!1,this._array.push(t))},o.prototype.toArray=function(){return this._sorted||(this._array.sort(n.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},r.P=o},1011(t,r){function i(t,r,i){var n=t[r];t[r]=t[i],t[i]=n}r.g=function(t,r){!function t(r,n,o,s){if(o=n(r[d],c)&&i(r,u+=1,d);i(r,u+1,d);var h=u+1;t(r,n,o,h-1),t(r,n,h+1,s)}}(t,r,0,t.length-1)}},2660(t,r,i){var n=i(33),o=i(8045),s=i(1365).C,a=i(114),l=i(1011).g;function u(t,r){var i=t;return"string"==typeof t&&(i=n.parseSourceMapInput(t)),null!=i.sections?new h(i,r):new c(i,r)}function c(t,r){var i=t;"string"==typeof t&&(i=n.parseSourceMapInput(t));var o=n.getArg(i,"version"),a=n.getArg(i,"sources"),l=n.getArg(i,"names",[]),u=n.getArg(i,"sourceRoot",null),c=n.getArg(i,"sourcesContent",null),d=n.getArg(i,"mappings"),h=n.getArg(i,"file",null);if(o!=this._version)throw Error("Unsupported version: "+o);u&&(u=n.normalize(u)),a=a.map(String).map(n.normalize).map(function(t){return u&&n.isAbsolute(u)&&n.isAbsolute(t)?n.relative(u,t):t}),this._names=s.fromArray(l.map(String),!0),this._sources=s.fromArray(a,!0),this._absoluteSources=this._sources.toArray().map(function(t){return n.computeSourceURL(u,t,r)}),this.sourceRoot=u,this.sourcesContent=c,this._mappings=d,this._sourceMapURL=r,this.file=h}function d(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}function h(t,r){var i=t;"string"==typeof t&&(i=n.parseSourceMapInput(t));var o=n.getArg(i,"version"),a=n.getArg(i,"sections");if(o!=this._version)throw Error("Unsupported version: "+o);this._sources=new s,this._names=new s;var l={line:-1,column:0};this._sections=a.map(function(t){if(t.url)throw Error("Support for url field in sections not implemented.");var i=n.getArg(t,"offset"),o=n.getArg(i,"line"),s=n.getArg(i,"column");if(o=0){var l=this._originalMappings[a];if(void 0===t.column)for(var u=l.originalLine;l&&l.originalLine===u;)s.push({line:n.getArg(l,"generatedLine",null),column:n.getArg(l,"generatedColumn",null),lastColumn:n.getArg(l,"lastGeneratedColumn",null)}),l=this._originalMappings[++a];else for(var c=l.originalColumn;l&&l.originalLine===r&&l.originalColumn==c;)s.push({line:n.getArg(l,"generatedLine",null),column:n.getArg(l,"generatedColumn",null),lastColumn:n.getArg(l,"lastGeneratedColumn",null)}),l=this._originalMappings[++a]}return s},r.SourceMapConsumer=u,c.prototype=Object.create(u.prototype),c.prototype.consumer=u,c.prototype._findSourceIndex=function(t){var r,i=t;if(null!=this.sourceRoot&&(i=n.relative(this.sourceRoot,i)),this._sources.has(i))return this._sources.indexOf(i);for(r=0;r1&&(i.source=b+s[1],b+=s[1],i.originalLine=p+s[2],p=i.originalLine,i.originalLine+=1,i.originalColumn=g+s[3],g=i.originalColumn,s.length>4&&(i.name=m+s[4],m+=s[4])),S.push(i),"number"==typeof i.originalLine&&_.push(i)}l(S,n.compareByGeneratedPositionsDeflated),this.__generatedMappings=S,l(_,n.compareByOriginalPositions),this.__originalMappings=_},c.prototype._findMapping=function(t,r,i,n,s,a){if(t[i]<=0)throw TypeError("Line must be greater than or equal to 1, got "+t[i]);if(t[n]<0)throw TypeError("Column must be greater than or equal to 0, got "+t[n]);return o.search(t,r,s,a)},c.prototype.computeColumnSpans=function(){for(var t=0;t=0){var o=this._generatedMappings[i];if(o.generatedLine===r.generatedLine){var s=n.getArg(o,"source",null);null!==s&&(s=this._sources.at(s),s=n.computeSourceURL(this.sourceRoot,s,this._sourceMapURL));var a=n.getArg(o,"name",null);return null!==a&&(a=this._names.at(a)),{source:s,line:n.getArg(o,"originalLine",null),column:n.getArg(o,"originalColumn",null),name:a}}}return{source:null,line:null,column:null,name:null}},c.prototype.hasContentsOfAllSources=function(){return!!this.sourcesContent&&this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(t){return null==t})},c.prototype.sourceContentFor=function(t,r){if(!this.sourcesContent)return null;var i=this._findSourceIndex(t);if(i>=0)return this.sourcesContent[i];var o,s=t;if(null!=this.sourceRoot&&(s=n.relative(this.sourceRoot,s)),null!=this.sourceRoot&&(o=n.urlParse(this.sourceRoot))){var a=s.replace(/^file:\/\//,"");if("file"==o.scheme&&this._sources.has(a))return this.sourcesContent[this._sources.indexOf(a)];if((!o.path||"/"==o.path)&&this._sources.has("/"+s))return this.sourcesContent[this._sources.indexOf("/"+s)]}if(r)return null;throw Error('"'+s+'" is not in the SourceMap.')},c.prototype.generatedPositionFor=function(t){var r=n.getArg(t,"source");if((r=this._findSourceIndex(r))<0)return{line:null,column:null,lastColumn:null};var i={source:r,originalLine:n.getArg(t,"line"),originalColumn:n.getArg(t,"column")},o=this._findMapping(i,this._originalMappings,"originalLine","originalColumn",n.compareByOriginalPositions,n.getArg(t,"bias",u.GREATEST_LOWER_BOUND));if(o>=0){var s=this._originalMappings[o];if(s.source===i.source)return{line:n.getArg(s,"generatedLine",null),column:n.getArg(s,"generatedColumn",null),lastColumn:n.getArg(s,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},h.prototype=Object.create(u.prototype),h.prototype.constructor=u,h.prototype._version=3,Object.defineProperty(h.prototype,"sources",{get:function(){for(var t=[],r=0;r0&&t.column>=0)||r||i||n)&&!(t&&"line"in t&&"column"in t&&r&&"line"in r&&"column"in r&&t.line>0&&t.column>=0&&r.line>0&&r.column>=0&&i))throw Error("Invalid mapping: "+JSON.stringify({generated:t,source:i,original:r,name:n}))},l.prototype._serializeMappings=function(){for(var t,r,i,s,a=0,l=1,u=0,c=0,d=0,h=0,f="",p=this._mappings.toArray(),g=0,b=p.length;g0){if(!o.compareByGeneratedPositionsInflated(r,p[g-1]))continue;t+=","}t+=n.encode(r.generatedColumn-a),a=r.generatedColumn,null!=r.source&&(s=this._sources.indexOf(r.source),t+=n.encode(s-h),h=s,t+=n.encode(r.originalLine-1-c),c=r.originalLine-1,t+=n.encode(r.originalColumn-u),u=r.originalColumn,null!=r.name&&(i=this._names.indexOf(r.name),t+=n.encode(i-d),d=i)),f+=t}return f},l.prototype._generateSourcesContent=function(t,r){return t.map(function(t){if(!this._sourcesContents)return null;null!=r&&(t=o.relative(r,t));var i=o.toSetString(t);return Object.prototype.hasOwnProperty.call(this._sourcesContents,i)?this._sourcesContents[i]:null},this)},l.prototype.toJSON=function(){var t={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(t.file=this._file),null!=this._sourceRoot&&(t.sourceRoot=this._sourceRoot),this._sourcesContents&&(t.sourcesContent=this._generateSourcesContent(t.sources,t.sourceRoot)),t},l.prototype.toString=function(){return JSON.stringify(this.toJSON())},r.x=l},7957(t,r,i){var n=i(4963).x,o=i(33),s=/(\r?\n)/,a="$$$isSourceNode$$$";function l(t,r,i,n,o){this.children=[],this.sourceContents={},this.line=null==t?null:t,this.column=null==r?null:r,this.source=null==i?null:i,this.name=null==o?null:o,this[a]=!0,null!=n&&this.add(n)}l.fromStringWithSourceMap=function(t,r,i){var n=new l,a=t.split(s),u=0,c=function(){return t()+(t()||"");function t(){return u=0;r--)this.prepend(t[r]);else{if(!t[a]&&"string"!=typeof t)throw TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+t);this.children.unshift(t)}return this},l.prototype.walk=function(t){for(var r,i=0,n=this.children.length;i0){for(r=[],i=0;i=0;d--)"."===(a=u[d])?u.splice(d,1):".."===a?c++:c>0&&(""===a?(u.splice(d+1,c),c=0):(u.splice(d,2),c--));return""===(i=u.join("/"))&&(i=l?"/":"."),n?(n.path=i,s(n)):i}function l(t,r){""===t&&(t="."),""===r&&(r=".");var i=o(r),l=o(t);if(l&&(t=l.path||"/"),i&&!i.scheme)return l&&(i.scheme=l.scheme),s(i);if(i||r.match(n))return r;if(l&&!l.host&&!l.path)return l.host=r,s(l);var u="/"===r.charAt(0)?r:a(t.replace(/\/+$/,"")+"/"+r);return l?(l.path=u,s(l)):u}r.urlParse=o,r.urlGenerate=s,r.normalize=a,r.join=l,r.isAbsolute=function(t){return"/"===t.charAt(0)||i.test(t)},r.relative=function(t,r){""===t&&(t="."),t=t.replace(/\/$/,"");for(var i=0;0!==r.indexOf(t+"/");){var n=t.lastIndexOf("/");if(n<0||(t=t.slice(0,n)).match(/^([^\/]+:\/)?\/*$/))return r;++i}return Array(i+1).join("../")+r.substr(t.length+1)};var u=!("__proto__"in Object.create(null));function c(t){return t}function d(t){if(!t)return!1;var r=t.length;if(r<9||95!==t.charCodeAt(r-1)||95!==t.charCodeAt(r-2)||111!==t.charCodeAt(r-3)||116!==t.charCodeAt(r-4)||111!==t.charCodeAt(r-5)||114!==t.charCodeAt(r-6)||112!==t.charCodeAt(r-7)||95!==t.charCodeAt(r-8)||95!==t.charCodeAt(r-9))return!1;for(var i=r-10;i>=0;i--)if(36!==t.charCodeAt(i))return!1;return!0}function h(t,r){return t===r?0:null===t?1:null===r?-1:t>r?1:-1}r.toSetString=u?c:function(t){return d(t)?"$"+t:t},r.fromSetString=u?c:function(t){return d(t)?t.slice(1):t},r.compareByOriginalPositions=function(t,r,i){var n=h(t.source,r.source);return 0!==n||0!=(n=t.originalLine-r.originalLine)||0!=(n=t.originalColumn-r.originalColumn)||i||0!=(n=t.generatedColumn-r.generatedColumn)||0!=(n=t.generatedLine-r.generatedLine)?n:h(t.name,r.name)},r.compareByGeneratedPositionsDeflated=function(t,r,i){var n=t.generatedLine-r.generatedLine;return 0!==n||0!=(n=t.generatedColumn-r.generatedColumn)||i||0!==(n=h(t.source,r.source))||0!=(n=t.originalLine-r.originalLine)||0!=(n=t.originalColumn-r.originalColumn)?n:h(t.name,r.name)},r.compareByGeneratedPositionsInflated=function(t,r){var i=t.generatedLine-r.generatedLine;return 0!==i||0!=(i=t.generatedColumn-r.generatedColumn)||0!==(i=h(t.source,r.source))||0!=(i=t.originalLine-r.originalLine)||0!=(i=t.originalColumn-r.originalColumn)?i:h(t.name,r.name)},r.parseSourceMapInput=function(t){return JSON.parse(t.replace(/^\)]}'[^\n]*\n/,""))},r.computeSourceURL=function(t,r,i){if(r=r||"",t&&("/"!==t[t.length-1]&&"/"!==r[0]&&(t+="/"),r=t+r),i){var n=o(i);if(!n)throw Error("sourceMapURL could not be parsed");if(n.path){var u=n.path.lastIndexOf("/");u>=0&&(n.path=n.path.substring(0,u+1))}r=l(s(n),r)}return a(r)}},4167(t,r,i){i(4963).x,r.SourceMapConsumer=i(2660).SourceMapConsumer,i(7957)},3533(t,r,i){"use strict";let n=i(857),o=i(2018),s=i(9614),{env:a}=process,l;function u(t,r={}){var i;return 0!==(i=function(t,{streamIsTTY:r,sniffFlags:i=!0}={}){let o=function(){if("FORCE_COLOR"in a)return"true"===a.FORCE_COLOR?1:"false"===a.FORCE_COLOR?0:0===a.FORCE_COLOR.length?1:Math.min(Number.parseInt(a.FORCE_COLOR,10),3)}();void 0!==o&&(l=o);let u=i?l:o;if(0===u)return 0;if(i){if(s("color=16m")||s("color=full")||s("color=truecolor"))return 3;if(s("color=256"))return 2}if(t&&!r&&void 0===u)return 0;let c=u||0;if("dumb"===a.TERM)return c;if("win32"===process.platform){let d=n.release().split(".");return Number(d[0])>=10&&Number(d[2])>=10586?Number(d[2])>=14931?3:2:1}if("CI"in a)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE","DRONE"].some(t=>t in a)||"codeship"===a.CI_NAME?1:c;if("TEAMCITY_VERSION"in a)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(a.TEAMCITY_VERSION)?1:0;if("truecolor"===a.COLORTERM)return 3;if("TERM_PROGRAM"in a){let h=Number.parseInt((a.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(a.TERM_PROGRAM){case"iTerm.app":return h>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(a.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(a.TERM)||"COLORTERM"in a?1:c}(t,{streamIsTTY:t&&t.isTTY,...r}))&&{level:i,hasBasic:!0,has256:i>=2,has16m:i>=3}}s("no-color")||s("no-colors")||s("color=false")||s("color=never")?l=0:(s("color")||s("colors")||s("color=true")||s("color=always"))&&(l=1),t.exports={supportsColor:u,stdout:u({isTTY:o.isatty(1)}),stderr:u({isTTY:o.isatty(2)})}},9830(t,r,i){"use strict";var n,o,s;i.r(r),i.d(r,{clearInterval:()=>h,clearTimeout:()=>f,setInterval:()=>p,setTimeout:()=>g});let a=void 0===Number.MAX_SAFE_INTEGER?9007199254740991:Number.MAX_SAFE_INTEGER,l=new WeakMap,u,c=(o=(n=l,(t,r)=>(n.set(t,r),r)),s=l,t=>{let r=s.get(t),i=void 0===r?t.size:r<1073741824?r+1:0;if(!t.has(i))return o(t,i);if(t.size<536870912){for(;t.has(i);)i=Math.floor(1073741824*Math.random());return o(t,i)}if(t.size>a)throw Error("Congratulations, you created a collection of unique numbers which uses all available integers!");for(;t.has(i);)i=Math.floor(Math.random()*a);return o(t,i)}),d=(u=null,()=>{if(null!==u)return u;let t=new Blob(['(()=>{"use strict";const e=new Map,t=new Map,r=(e,t)=>{let r,o;const i=performance.now();r=i,o=e-Math.max(0,i-t);return{expected:r+o,remainingDelay:o}},o=(e,t,r,i)=>{const s=performance.now();s>r?postMessage({id:null,method:"call",params:{timerId:t,timerType:i}}):e.set(t,setTimeout(o,r-s,e,t,r,i))};addEventListener("message",(i=>{let{data:s}=i;try{if("clear"===s.method){const{id:r,params:{timerId:o,timerType:i}}=s;if("interval"===i)(t=>{const r=e.get(t);if(void 0===r)throw new Error(\'There is no interval scheduled with the given id "\'.concat(t,\'".\'));clearTimeout(r),e.delete(t)})(o),postMessage({error:null,id:r});else{if("timeout"!==i)throw new Error(\'The given type "\'.concat(i,\'" is not supported\'));(e=>{const r=t.get(e);if(void 0===r)throw new Error(\'There is no timeout scheduled with the given id "\'.concat(e,\'".\'));clearTimeout(r),t.delete(e)})(o),postMessage({error:null,id:r})}}else{if("set"!==s.method)throw new Error(\'The given method "\'.concat(s.method,\'" is not supported\'));{const{params:{delay:i,now:n,timerId:a,timerType:d}}=s;if("interval"===d)((t,i,s)=>{const{expected:n,remainingDelay:a}=r(t,s);e.set(i,setTimeout(o,a,e,i,n,"interval"))})(i,a,n);else{if("timeout"!==d)throw new Error(\'The given type "\'.concat(d,\'" is not supported\'));((e,i,s)=>{const{expected:n,remainingDelay:a}=r(e,s);t.set(i,setTimeout(o,a,t,i,n,"timeout"))})(i,a,n)}}}}catch(e){postMessage({error:{message:e.message},id:s.id,result:null})}}))})();'],{type:"application/javascript; charset=utf-8"}),r=URL.createObjectURL(t);return u=(t=>{let r=new Map([[0,()=>{}]]),i=new Map([[0,()=>{}]]),n=new Map,o=new Worker(t);return o.addEventListener("message",({data:t})=>{var o,s;if(void 0!==(o=t).method&&"call"===o.method){let{params:{timerId:a,timerType:l}}=t;if("interval"===l){let u=r.get(a);if("number"==typeof u){let c=n.get(u);if(void 0===c||c.timerId!==a||c.timerType!==l)throw Error("The timer is in an undefined state.")}else{if(void 0===u)throw Error("The timer is in an undefined state.");u()}}else if("timeout"===l){let d=i.get(a);if("number"==typeof d){let h=n.get(d);if(void 0===h||h.timerId!==a||h.timerType!==l)throw Error("The timer is in an undefined state.")}else{if(void 0===d)throw Error("The timer is in an undefined state.");d(),i.delete(a)}}}else{if(!(null===(s=t).error&&"number"==typeof s.id)){let{error:{message:f}}=t;throw Error(f)}{let{id:p}=t,g=n.get(p);if(void 0===g)throw Error("The timer is in an undefined state.");let{timerId:b,timerType:m}=g;n.delete(p),"interval"===m?r.delete(b):i.delete(b)}}}),{clearInterval(t){let i=c(n);n.set(i,{timerId:t,timerType:"interval"}),r.set(t,i),o.postMessage({id:i,method:"clear",params:{timerId:t,timerType:"interval"}})},clearTimeout(t){let r=c(n);n.set(r,{timerId:t,timerType:"timeout"}),i.set(t,r),o.postMessage({id:r,method:"clear",params:{timerId:t,timerType:"timeout"}})},setInterval(t,i=0){let n=c(r);return r.set(n,()=>{t(),"function"==typeof r.get(n)&&o.postMessage({id:null,method:"set",params:{delay:i,now:performance.now(),timerId:n,timerType:"interval"}})}),o.postMessage({id:null,method:"set",params:{delay:i,now:performance.now(),timerId:n,timerType:"interval"}}),n},setTimeout(t,r=0){let n=c(i);return i.set(n,t),o.postMessage({id:null,method:"set",params:{delay:r,now:performance.now(),timerId:n,timerType:"timeout"}}),n}}})(r),setTimeout(()=>URL.revokeObjectURL(r)),u}),h=t=>d().clearInterval(t),f=t=>d().clearTimeout(t),p=(...t)=>d().setInterval(...t),g=(...t)=>d().setTimeout(...t)},2641(t,r,i){"use strict";let n=i(158);n.createWebSocketStream=i(7757),n.Server=i(904),n.Receiver=i(1076),n.Sender=i(6284),n.WebSocket=n,n.WebSocketServer=n.Server,t.exports=n},3764(t,r,i){"use strict";let{EMPTY_BUFFER:n}=i(3520),o=Buffer[Symbol.species];function s(t,r,i,n,o){for(let s=0;s{let i=t[r];return Array.isArray(i)||(i=[i]),i.map(t=>[r].concat(Object.keys(t).map(r=>{let i=t[r];return Array.isArray(i)||(i=[i]),i.map(t=>!0===t?r:`${r}=${t}`).join("; ")})).join("; ")).join(", ")}).join(", ")},parse:function(t){let r=Object.create(null),i,s,a=Object.create(null),l=!1,u=!1,c=!1,d=-1,h=-1,f=-1,p=0;for(;p{this.pending--,this[i]()},this.concurrency=t||1/0,this.jobs=[],this.pending=0}add(t){this.jobs.push(t),this[i]()}[i](){if(this.pending!==this.concurrency&&this.jobs.length){let t=this.jobs.shift();this.pending++,t(this[r])}}}},1837(t,r,i){"use strict";let n=i(3106),o=i(3764),s=i(6957),{kStatusCode:a}=i(3520),l=Buffer[Symbol.species],u=Buffer.from([0,0,255,255]),c=Symbol("permessage-deflate"),d=Symbol("total-length"),h=Symbol("callback"),f=Symbol("buffers"),p=Symbol("error"),g;function b(t){this[f].push(t),this[d]+=t.length}function m(t){this[d]+=t.length,this[c]._maxPayload<1||this[d]<=this[c]._maxPayload?this[f].push(t):(this[p]=RangeError("Max payload size exceeded"),this[p].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[p][a]=1009,this.removeListener("data",m),this.reset())}function y(t){this[c]._inflate=null,t[a]=1007,this[h](t)}t.exports=class{constructor(t,r,i){if(this._maxPayload=0|i,this._options=t||{},this._threshold=void 0!==this._options.threshold?this._options.threshold:1024,this._isServer=!!r,this._deflate=null,this._inflate=null,this.params=null,!g){let n=void 0!==this._options.concurrencyLimit?this._options.concurrencyLimit:10;g=new s(n)}}static get extensionName(){return"permessage-deflate"}offer(){let t={};return this._options.serverNoContextTakeover&&(t.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(t.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(t.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?t.client_max_window_bits=this._options.clientMaxWindowBits:null==this._options.clientMaxWindowBits&&(t.client_max_window_bits=!0),t}accept(t){return t=this.normalizeParams(t),this.params=this._isServer?this.acceptAsServer(t):this.acceptAsClient(t),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let t=this._deflate[h];this._deflate.close(),this._deflate=null,t&&t(Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(t){let r=this._options,i=t.find(t=>!(!1===r.serverNoContextTakeover&&t.server_no_context_takeover||t.server_max_window_bits&&(!1===r.serverMaxWindowBits||"number"==typeof r.serverMaxWindowBits&&r.serverMaxWindowBits>t.server_max_window_bits)||"number"==typeof r.clientMaxWindowBits&&!t.client_max_window_bits));if(!i)throw Error("None of the extension offers can be accepted");return r.serverNoContextTakeover&&(i.server_no_context_takeover=!0),r.clientNoContextTakeover&&(i.client_no_context_takeover=!0),"number"==typeof r.serverMaxWindowBits&&(i.server_max_window_bits=r.serverMaxWindowBits),"number"==typeof r.clientMaxWindowBits?i.client_max_window_bits=r.clientMaxWindowBits:!0!==i.client_max_window_bits&&!1!==r.clientMaxWindowBits||delete i.client_max_window_bits,i}acceptAsClient(t){let r=t[0];if(!1===this._options.clientNoContextTakeover&&r.client_no_context_takeover)throw Error('Unexpected parameter "client_no_context_takeover"');if(r.client_max_window_bits){if(!1===this._options.clientMaxWindowBits||"number"==typeof this._options.clientMaxWindowBits&&r.client_max_window_bits>this._options.clientMaxWindowBits)throw Error('Unexpected or invalid parameter "client_max_window_bits"')}else"number"==typeof this._options.clientMaxWindowBits&&(r.client_max_window_bits=this._options.clientMaxWindowBits);return r}normalizeParams(t){return t.forEach(t=>{Object.keys(t).forEach(r=>{let i=t[r];if(i.length>1)throw Error(`Parameter "${r}" must have only a single value`);if(i=i[0],"client_max_window_bits"===r){if(!0!==i){let n=+i;if(!Number.isInteger(n)||n<8||n>15)throw TypeError(`Invalid value for parameter "${r}": ${i}`);i=n}else if(!this._isServer)throw TypeError(`Invalid value for parameter "${r}": ${i}`)}else if("server_max_window_bits"===r){let o=+i;if(!Number.isInteger(o)||o<8||o>15)throw TypeError(`Invalid value for parameter "${r}": ${i}`);i=o}else{if("client_no_context_takeover"!==r&&"server_no_context_takeover"!==r)throw Error(`Unknown parameter "${r}"`);if(!0!==i)throw TypeError(`Invalid value for parameter "${r}": ${i}`)}t[r]=i})}),t}decompress(t,r,i){g.add(n=>{this._decompress(t,r,(t,r)=>{n(),i(t,r)})})}compress(t,r,i){g.add(n=>{this._compress(t,r,(t,r)=>{n(),i(t,r)})})}_decompress(t,r,i){let s=this._isServer?"client":"server";if(!this._inflate){let a=`${s}_max_window_bits`,l="number"!=typeof this.params[a]?n.Z_DEFAULT_WINDOWBITS:this.params[a];this._inflate=n.createInflateRaw({...this._options.zlibInflateOptions,windowBits:l}),this._inflate[c]=this,this._inflate[d]=0,this._inflate[f]=[],this._inflate.on("error",y),this._inflate.on("data",m)}this._inflate[h]=i,this._inflate.write(t),r&&this._inflate.write(u),this._inflate.flush(()=>{let t=this._inflate[p];if(t)return this._inflate.close(),this._inflate=null,void i(t);let n=o.concat(this._inflate[f],this._inflate[d]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[d]=0,this._inflate[f]=[],r&&this.params[`${s}_no_context_takeover`]&&this._inflate.reset()),i(null,n)})}_compress(t,r,i){let s=this._isServer?"server":"client";if(!this._deflate){let a=`${s}_max_window_bits`,u="number"!=typeof this.params[a]?n.Z_DEFAULT_WINDOWBITS:this.params[a];this._deflate=n.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:u}),this._deflate[d]=0,this._deflate[f]=[],this._deflate.on("data",b)}this._deflate[h]=i,this._deflate.write(t),this._deflate.flush(n.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let t=o.concat(this._deflate[f],this._deflate[d]);r&&(t=new l(t.buffer,t.byteOffset,t.length-4)),this._deflate[h]=null,this._deflate[d]=0,this._deflate[f]=[],r&&this.params[`${s}_no_context_takeover`]&&this._deflate.reset(),i(null,t)})}}},1076(t,r,i){"use strict";let{Writable:n}=i(2203),o=i(1837),{BINARY_TYPES:s,EMPTY_BUFFER:a,kStatusCode:l,kWebSocket:u}=i(3520),{concat:c,toArrayBuffer:d,unmask:h}=i(3764),{isValidStatusCode:f,isValidUTF8:p}=i(2530),g=Buffer[Symbol.species],b=Promise.resolve(),m="function"==typeof queueMicrotask?queueMicrotask:function(t){b.then(t).catch($)};function y(t){throw t}function $(t){process.nextTick(y,t)}t.exports=class extends n{constructor(t={}){super(),this._allowSynchronousEvents=!!t.allowSynchronousEvents,this._binaryType=t.binaryType||s[0],this._extensions=t.extensions||{},this._isServer=!!t.isServer,this._maxPayload=0|t.maxPayload,this._skipUTF8Validation=!!t.skipUTF8Validation,this[u]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=0}_write(t,r,i){if(8===this._opcode&&0==this._state)return i();this._bufferedBytes+=t.length,this._buffers.push(t),this.startLoop(i)}consume(t){if(this._bufferedBytes-=t,t===this._buffers[0].length)return this._buffers.shift();if(t=n.length?i.set(this._buffers.shift(),o):(i.set(new Uint8Array(n.buffer,n.byteOffset,t),o),this._buffers[0]=new g(n.buffer,n.byteOffset+t,n.length-t)),t-=n.length}while(t>0);return i}startLoop(t){this._loop=!0;do switch(this._state){case 0:this.getInfo(t);break;case 1:this.getPayloadLength16(t);break;case 2:this.getPayloadLength64(t);break;case 3:this.getMask();break;case 4:this.getData(t);break;case 5:case 6:return void(this._loop=!1)}while(this._loop);this._errored||t()}getInfo(t){if(this._bufferedBytes<2)return void(this._loop=!1);let r=this.consume(2);if(48&r[0])return void t(this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3"));let i=!(64&~r[0]);if(!i||this._extensions[o.extensionName]){if(this._fin=!(128&~r[0]),this._opcode=15&r[0],this._payloadLength=127&r[1],0===this._opcode){if(i)return void t(this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1"));if(!this._fragmented)return void t(this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE"));this._opcode=this._fragmented}else if(1===this._opcode||2===this._opcode){if(this._fragmented)return void t(this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE"));this._compressed=i}else{if(!(this._opcode>7&&this._opcode<11))return void t(this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE"));if(!this._fin)return void t(this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN"));if(i)return void t(this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1"));if(this._payloadLength>125||8===this._opcode&&1===this._payloadLength)return void t(this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH"))}if(this._fin||this._fragmented||(this._fragmented=this._opcode),this._masked=!(128&~r[1]),this._isServer){if(!this._masked)return void t(this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK"))}else if(this._masked)return void t(this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK"));126===this._payloadLength?this._state=1:127===this._payloadLength?this._state=2:this.haveLength(t)}else t(this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1"))}getPayloadLength16(t){this._bufferedBytes<2?this._loop=!1:(this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(t))}getPayloadLength64(t){if(this._bufferedBytes<8)return void(this._loop=!1);let r=this.consume(8),i=r.readUInt32BE(0);i>2097151?t(this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH")):(this._payloadLength=4294967296*i+r.readUInt32BE(4),this.haveLength(t))}haveLength(t){this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)?t(this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH")):this._masked?this._state=3:this._state=4}getMask(){this._bufferedBytes<4?this._loop=!1:(this._mask=this.consume(4),this._state=4)}getData(t){let r=a;if(this._payloadLength){if(this._bufferedBytes7)this.controlMessage(r,t);else{if(this._compressed)return this._state=5,void this.decompress(r,t);r.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(r)),this.dataMessage(t)}}decompress(t,r){this._extensions[o.extensionName].decompress(t,this._fin,(t,i)=>{if(t)return r(t);if(i.length){if(this._messageLength+=i.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let n=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");return void r(n)}this._fragments.push(i)}this.dataMessage(r),0===this._state&&this.startLoop(r)})}dataMessage(t){if(!this._fin)return void(this._state=0);let r=this._messageLength,i=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],2===this._opcode){let n;n="nodebuffer"===this._binaryType?c(i,r):"arraybuffer"===this._binaryType?d(c(i,r)):i,5===this._state||this._allowSynchronousEvents?(this.emit("message",n,!0),this._state=0):(this._state=6,m(()=>{this.emit("message",n,!0),this._state=0,this.startLoop(t)}))}else{let o=c(i,r);if(!this._skipUTF8Validation&&!p(o)){let s=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");return void t(s)}5===this._state||this._allowSynchronousEvents?(this.emit("message",o,!1),this._state=0):(this._state=6,m(()=>{this.emit("message",o,!1),this._state=0,this.startLoop(t)}))}}controlMessage(t,r){if(8!==this._opcode)this._allowSynchronousEvents?(this.emit(9===this._opcode?"ping":"pong",t),this._state=0):(this._state=6,m(()=>{this.emit(9===this._opcode?"ping":"pong",t),this._state=0,this.startLoop(r)}));else{if(0===t.length)this._loop=!1,this.emit("conclude",1005,a),this.end();else{let i=t.readUInt16BE(0);if(!f(i)){let n=this.createError(RangeError,`invalid status code ${i}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");return void r(n)}let o=new g(t.buffer,t.byteOffset+2,t.length-2);if(!this._skipUTF8Validation&&!p(o)){let s=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");return void r(s)}this._loop=!1,this.emit("conclude",i,o),this.end()}this._state=0}}createError(t,r,i,n,o){this._loop=!1,this._errored=!0;let s=new t(i?`Invalid WebSocket frame: ${r}`:r);return Error.captureStackTrace(s,this.createError),s.code=o,s[l]=n,s}}},6284(t,r,i){"use strict";let{Duplex:n}=i(2203),{randomFillSync:o}=i(6982),s=i(1837),{EMPTY_BUFFER:a}=i(3520),{isValidStatusCode:l}=i(2530),{mask:u,toBuffer:c}=i(3764),d=Symbol("kByteLength"),h=Buffer.alloc(4);class f{constructor(t,r,i){this._extensions=r||{},i&&(this._generateMask=i,this._maskBuffer=Buffer.alloc(4)),this._socket=t,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._deflating=!1,this._queue=[]}static frame(t,r){let i,n,s=!1,a=2,l=!1;r.mask&&(i=r.maskBuffer||h,r.generateMask?r.generateMask(i):o(i,0,4),l=!(i[0]|i[1]|i[2]|i[3]),a=6),"string"==typeof t?n=r.mask&&!l||void 0===r[d]?(t=Buffer.from(t)).length:r[d]:(n=t.length,s=r.mask&&r.readOnly&&!l);let c=n;n>=65536?(a+=8,c=127):n>125&&(a+=2,c=126);let f=Buffer.allocUnsafe(s?n+a:a);return f[0]=r.fin?128|r.opcode:r.opcode,r.rsv1&&(f[0]|=64),f[1]=c,126===c?f.writeUInt16BE(n,2):127===c&&(f[2]=f[3]=0,f.writeUIntBE(n,4,6)),r.mask?(f[1]|=128,f[a-4]=i[0],f[a-3]=i[1],f[a-2]=i[2],f[a-1]=i[3],l?[f,t]:s?(u(t,i,f,a,n),[f]):(u(t,i,t,0,n),[f,t])):[f,t]}close(t,r,i,n){let o;if(void 0===t)o=a;else{if("number"!=typeof t||!l(t))throw TypeError("First argument must be a valid error code number");if(void 0!==r&&r.length){let s=Buffer.byteLength(r);if(s>123)throw RangeError("The message must not be greater than 123 bytes");(o=Buffer.allocUnsafe(2+s)).writeUInt16BE(t,0),"string"==typeof r?o.write(r,2):o.set(r,2)}else(o=Buffer.allocUnsafe(2)).writeUInt16BE(t,0)}let u={[d]:o.length,fin:!0,generateMask:this._generateMask,mask:i,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._deflating?this.enqueue([this.dispatch,o,!1,u,n]):this.sendFrame(f.frame(o,u),n)}ping(t,r,i){let n,o;if("string"==typeof t?(n=Buffer.byteLength(t),o=!1):(n=(t=c(t)).length,o=c.readOnly),n>125)throw RangeError("The data size must not be greater than 125 bytes");let s={[d]:n,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:9,readOnly:o,rsv1:!1};this._deflating?this.enqueue([this.dispatch,t,!1,s,i]):this.sendFrame(f.frame(t,s),i)}pong(t,r,i){let n,o;if("string"==typeof t?(n=Buffer.byteLength(t),o=!1):(n=(t=c(t)).length,o=c.readOnly),n>125)throw RangeError("The data size must not be greater than 125 bytes");let s={[d]:n,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:10,readOnly:o,rsv1:!1};this._deflating?this.enqueue([this.dispatch,t,!1,s,i]):this.sendFrame(f.frame(t,s),i)}send(t,r,i){let n=this._extensions[s.extensionName],o,a,l=r.binary?2:1,u=r.compress;if("string"==typeof t?(o=Buffer.byteLength(t),a=!1):(o=(t=c(t)).length,a=c.readOnly),this._firstFragment?(this._firstFragment=!1,u&&n&&n.params[n._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(u=o>=n._threshold),this._compress=u):(u=!1,l=0),r.fin&&(this._firstFragment=!0),n){let h={[d]:o,fin:r.fin,generateMask:this._generateMask,mask:r.mask,maskBuffer:this._maskBuffer,opcode:l,readOnly:a,rsv1:u};this._deflating?this.enqueue([this.dispatch,t,this._compress,h,i]):this.dispatch(t,this._compress,h,i)}else this.sendFrame(f.frame(t,{[d]:o,fin:r.fin,generateMask:this._generateMask,mask:r.mask,maskBuffer:this._maskBuffer,opcode:l,readOnly:a,rsv1:!1}),i)}dispatch(t,r,i,n){if(!r)return void this.sendFrame(f.frame(t,i),n);let o=this._extensions[s.extensionName];this._bufferedBytes+=i[d],this._deflating=!0,o.compress(t,i.fin,(t,r)=>{if(this._socket.destroyed){let o=Error("The socket was closed while data was being compressed");"function"==typeof n&&n(o);for(let s=0;s=r||128!=(192&t[i+1])||128!=(192&t[i+2])||224===t[i]&&128==(224&t[i+1])||237===t[i]&&160==(224&t[i+1]))return!1;i+=3}else{if(240!=(248&t[i])||i+3>=r||128!=(192&t[i+1])||128!=(192&t[i+2])||128!=(192&t[i+3])||240===t[i]&&128==(240&t[i+1])||244===t[i]&&t[i+1]>143||t[i]>244)return!1;i+=4}}else i++;return!0}if(t.exports={isValidStatusCode:function(t){return t>=1e3&&t<=1014&&1004!==t&&1005!==t&&1006!==t||t>=3e3&&t<=4999},isValidUTF8:o,tokenChars:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0]},n)t.exports.isValidUTF8=function(t){return t.length<24?o(t):n(t)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let s=i(Object(function(){var t=Error("Cannot find module 'utf-8-validate'");throw t.code="MODULE_NOT_FOUND",t}()));t.exports.isValidUTF8=function(t){return t.length<32?o(t):s(t)}}catch(a){}},904(t,r,i){"use strict";let n=i(4434),o=i(8611),{Duplex:s}=i(2203),{createHash:a}=i(6982),l=i(168),u=i(1837),c=i(1499),d=i(158),{GUID:h,kWebSocket:f}=i(3520),p=/^[+/0-9A-Za-z]{22}==$/;function g(t){t._state=2,t.emit("close")}function b(){this.destroy()}function m(t,r,i,n){i=i||o.STATUS_CODES[r],n={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(i),...n},t.once("finish",t.destroy),t.end(`HTTP/1.1 ${r} ${o.STATUS_CODES[r]}\r +`+Object.keys(n).map(t=>`${t}: ${n[t]}`).join("\r\n")+"\r\n\r\n"+i)}function y(t,r,i,n,o){if(t.listenerCount("wsClientError")){let s=Error(o);Error.captureStackTrace(s,y),t.emit("wsClientError",s,i,r)}else m(i,n,o)}t.exports=class extends n{constructor(t,r){if(super(),null==(t={allowSynchronousEvents:!1,autoPong:!0,maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:d,...t}).port&&!t.server&&!t.noServer||null!=t.port&&(t.server||t.noServer)||t.server&&t.noServer)throw TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(null!=t.port?(this._server=o.createServer((t,r)=>{let i=o.STATUS_CODES[426];r.writeHead(426,{"Content-Length":i.length,"Content-Type":"text/plain"}),r.end(i)}),this._server.listen(t.port,t.host,t.backlog,r)):t.server&&(this._server=t.server),this._server){let i=this.emit.bind(this,"connection");this._removeListeners=function(t,r){for(let i of Object.keys(r))t.on(i,r[i]);return function(){for(let i of Object.keys(r))t.removeListener(i,r[i])}}(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(t,r,n)=>{this.handleUpgrade(t,r,n,i)}})}!0===t.perMessageDeflate&&(t.perMessageDeflate={}),t.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=t,this._state=0}address(){if(this.options.noServer)throw Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(t){if(2===this._state)return t&&this.once("close",()=>{t(Error("The server is not running"))}),void process.nextTick(g,this);if(t&&this.once("close",t),1!==this._state){if(this._state=1,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients&&this.clients.size?this._shouldEmitClose=!0:process.nextTick(g,this);else{let r=this._server;this._removeListeners(),this._removeListeners=this._server=null,r.close(()=>{g(this)})}}}shouldHandle(t){if(this.options.path){let r=t.url.indexOf("?");if((-1!==r?t.url.slice(0,r):t.url)!==this.options.path)return!1}return!0}handleUpgrade(t,r,i,n){r.on("error",b);let o=t.headers["sec-websocket-key"],s=+t.headers["sec-websocket-version"];if("GET"!==t.method)return void y(this,t,r,405,"Invalid HTTP method");if("websocket"!==t.headers.upgrade.toLowerCase())return void y(this,t,r,400,"Invalid Upgrade header");if(!o||!p.test(o))return void y(this,t,r,400,"Missing or invalid Sec-WebSocket-Key header");if(8!==s&&13!==s)return void y(this,t,r,400,"Missing or invalid Sec-WebSocket-Version header");if(!this.shouldHandle(t))return void m(r,400);let a=t.headers["sec-websocket-protocol"],d=new Set;if(void 0!==a)try{d=c.parse(a)}catch(h){return void y(this,t,r,400,"Invalid Sec-WebSocket-Protocol header")}let f=t.headers["sec-websocket-extensions"],g={};if(this.options.perMessageDeflate&&void 0!==f){let $=new u(this.options.perMessageDeflate,!0,this.options.maxPayload);try{let w=l.parse(f);w[u.extensionName]&&($.accept(w[u.extensionName]),g[u.extensionName]=$)}catch(v){return void y(this,t,r,400,"Invalid or unacceptable Sec-WebSocket-Extensions header")}}if(this.options.verifyClient){let _={origin:t.headers[8===s?"sec-websocket-origin":"origin"],secure:!(!t.socket.authorized&&!t.socket.encrypted),req:t};if(2===this.options.verifyClient.length)return void this.options.verifyClient(_,(s,a,l,u)=>{if(!s)return m(r,a||401,l,u);this.completeUpgrade(g,o,d,t,r,i,n)});if(!this.options.verifyClient(_))return m(r,401)}this.completeUpgrade(g,o,d,t,r,i,n)}completeUpgrade(t,r,i,n,o,s,c){if(!o.readable||!o.writable)return o.destroy();if(o[f])throw Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>0)return m(o,503);let d=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${a("sha1").update(r+h).digest("base64")}`],p=new this.options.WebSocket(null,void 0,this.options);if(i.size){let y=this.options.handleProtocols?this.options.handleProtocols(i,n):i.values().next().value;y&&(d.push(`Sec-WebSocket-Protocol: ${y}`),p._protocol=y)}if(t[u.extensionName]){let $=t[u.extensionName].params,w=l.format({[u.extensionName]:[$]});d.push(`Sec-WebSocket-Extensions: ${w}`),p._extensions=t}this.emit("headers",d,n),o.write(d.concat("\r\n").join("\r\n")),o.removeListener("error",b),p.setSocket(o,s,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(p),p.on("close",()=>{this.clients.delete(p),this._shouldEmitClose&&!this.clients.size&&process.nextTick(g,this)})),c(p,n)}}},158(t,r,i){"use strict";let n=i(4434),o=i(5692),s=i(8611),a=i(9278),l=i(4756),{randomBytes:u,createHash:c}=i(6982),{Duplex:d,Readable:h}=i(2203),{URL:f}=i(7016),p=i(1837),g=i(1076),b=i(6284),{BINARY_TYPES:m,EMPTY_BUFFER:y,GUID:$,kForOnEventAttribute:w,kListener:v,kStatusCode:_,kWebSocket:S,NOOP:E}=i(3520),{EventTarget:{addEventListener:k,removeEventListener:A}}=i(5035),{format:R,parse:T}=i(168),{toBuffer:I}=i(3764),C=Symbol("kAborted"),P=[8,13],x=["CONNECTING","OPEN","CLOSING","CLOSED"],M=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/;class O extends n{constructor(t,r,i){super(),this._binaryType=m[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=y,this._closeTimer=null,this._extensions={},this._paused=!1,this._protocol="",this._readyState=O.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,null!==t?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,void 0===r?r=[]:Array.isArray(r)||("object"==typeof r&&null!==r?(i=r,r=[]):r=[r]),function t(r,i,n,a){let l={allowSynchronousEvents:!1,autoPong:!0,protocolVersion:P[1],maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...a,createConnection:void 0,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(r._autoPong=l.autoPong,!P.includes(l.protocolVersion))throw RangeError(`Unsupported protocol version: ${l.protocolVersion} (supported versions: ${P.join(", ")})`);let d;if(i instanceof f)d=i;else try{d=new f(i)}catch(h){throw SyntaxError(`Invalid URL: ${i}`)}"http:"===d.protocol?d.protocol="ws:":"https:"===d.protocol&&(d.protocol="wss:"),r._url=d.href;let g="wss:"===d.protocol,b="ws+unix:"===d.protocol,m;if("ws:"===d.protocol||g||b?b&&!d.pathname?m="The URL's pathname is empty":d.hash&&(m="The URL contains a fragment identifier"):m='The URL\'s protocol must be one of "ws:", "wss:", "http:", "https", or "ws+unix:"',m){let y=SyntaxError(m);if(0===r._redirects)throw y;return void N(r,y)}let w=g?443:80,v=u(16).toString("base64"),_=g?o.request:s.request,S=new Set,E,k;if(l.createConnection=g?D:L,l.defaultPort=l.defaultPort||w,l.port=d.port||w,l.host=d.hostname.startsWith("[")?d.hostname.slice(1,-1):d.hostname,l.headers={...l.headers,"Sec-WebSocket-Version":l.protocolVersion,"Sec-WebSocket-Key":v,Connection:"Upgrade",Upgrade:"websocket"},l.path=d.pathname+d.search,l.timeout=l.handshakeTimeout,l.perMessageDeflate&&(E=new p(!0!==l.perMessageDeflate?l.perMessageDeflate:{},!1,l.maxPayload),l.headers["Sec-WebSocket-Extensions"]=R({[p.extensionName]:E.offer()})),n.length){for(let A of n){if("string"!=typeof A||!M.test(A)||S.has(A))throw SyntaxError("An invalid or duplicated subprotocol was specified");S.add(A)}l.headers["Sec-WebSocket-Protocol"]=n.join(",")}if(l.origin&&(l.protocolVersion<13?l.headers["Sec-WebSocket-Origin"]=l.origin:l.headers.Origin=l.origin),(d.username||d.password)&&(l.auth=`${d.username}:${d.password}`),b){let I=l.path.split(":");l.socketPath=I[0],l.path=I[1]}if(l.followRedirects){if(0===r._redirects){r._originalIpc=b,r._originalSecure=g,r._originalHostOrSocketPath=b?l.socketPath:d.host;let x=a&&a.headers;if(a={...a,headers:{}},x)for(let[U,B]of Object.entries(x))a.headers[U.toLowerCase()]=B}else if(0===r.listenerCount("redirect")){let F=b?!!r._originalIpc&&l.socketPath===r._originalHostOrSocketPath:!r._originalIpc&&d.host===r._originalHostOrSocketPath;F&&(!r._originalSecure||g)||(delete l.headers.authorization,delete l.headers.cookie,F||delete l.headers.host,l.auth=void 0)}l.auth&&!a.headers.authorization&&(a.headers.authorization="Basic "+Buffer.from(l.auth).toString("base64")),k=r._req=_(l),r._redirects&&r.emit("redirect",r.url,k)}else k=r._req=_(l);l.timeout&&k.on("timeout",()=>{W(r,k,"Opening handshake has timed out")}),k.on("error",t=>{null===k||k[C]||(k=r._req=null,N(r,t))}),k.on("response",o=>{let s=o.headers.location,u=o.statusCode;if(s&&l.followRedirects&&u>=300&&u<400){if(++r._redirects>l.maxRedirects)return void W(r,k,"Maximum redirects exceeded");let c;k.abort();try{c=new f(s,i)}catch(d){let h=SyntaxError(`Invalid URL: ${s}`);return void N(r,h)}t(r,c,n,a)}else r.emit("unexpected-response",k,o)||W(r,k,`Unexpected server response: ${o.statusCode}`)}),k.on("upgrade",(t,i,n)=>{if(r.emit("upgrade",t),r.readyState!==O.CONNECTING)return;if(k=r._req=null,"websocket"!==t.headers.upgrade.toLowerCase())return void W(r,i,"Invalid Upgrade header");let o=c("sha1").update(v+$).digest("base64");if(t.headers["sec-websocket-accept"]!==o)return void W(r,i,"Invalid Sec-WebSocket-Accept header");let s=t.headers["sec-websocket-protocol"],a;if(void 0!==s?S.size?S.has(s)||(a="Server sent an invalid subprotocol"):a="Server sent a subprotocol but none was requested":S.size&&(a="Server sent no subprotocol"),a)return void W(r,i,a);s&&(r._protocol=s);let u=t.headers["sec-websocket-extensions"];if(void 0!==u){if(!E)return void W(r,i,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");let d;try{d=T(u)}catch(h){return void W(r,i,"Invalid Sec-WebSocket-Extensions header")}let f=Object.keys(d);if(1!==f.length||f[0]!==p.extensionName)return void W(r,i,"Server indicated an extension that was not requested");try{E.accept(d[p.extensionName])}catch(g){return void W(r,i,"Invalid Sec-WebSocket-Extensions header")}r._extensions[p.extensionName]=E}r.setSocket(i,n,{allowSynchronousEvents:l.allowSynchronousEvents,generateMask:l.generateMask,maxPayload:l.maxPayload,skipUTF8Validation:l.skipUTF8Validation})}),l.finishRequest?l.finishRequest(k,r):k.end()}(this,t,r,i)):(this._autoPong=i.autoPong,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(t){m.includes(t)&&(this._binaryType=t,this._receiver&&(this._receiver._binaryType=t))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(t,r,i){let n=new g({allowSynchronousEvents:i.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:i.maxPayload,skipUTF8Validation:i.skipUTF8Validation});this._sender=new b(t,this._extensions,i.generateMask),this._receiver=n,this._socket=t,n[S]=this,t[S]=this,n.on("conclude",B),n.on("drain",F),n.on("error",j),n.on("message",G),n.on("ping",q),n.on("pong",K),t.setTimeout&&t.setTimeout(0),t.setNoDelay&&t.setNoDelay(),r.length>0&&t.unshift(r),t.on("close",z),t.on("data",Q),t.on("end",Y),t.on("error",X),this._readyState=O.OPEN,this.emit("open")}emitClose(){if(!this._socket)return this._readyState=O.CLOSED,void this.emit("close",this._closeCode,this._closeMessage);this._extensions[p.extensionName]&&this._extensions[p.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=O.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(t,r){this.readyState!==O.CLOSED&&(this.readyState!==O.CONNECTING?this.readyState!==O.CLOSING?(this._readyState=O.CLOSING,this._sender.close(t,r,!this._isServer,t=>{t||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),this._closeTimer=setTimeout(this._socket.destroy.bind(this._socket),3e4)):this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end():W(this,this._req,"WebSocket was closed before the connection was established"))}pause(){this.readyState!==O.CONNECTING&&this.readyState!==O.CLOSED&&(this._paused=!0,this._socket.pause())}ping(t,r,i){if(this.readyState===O.CONNECTING)throw Error("WebSocket is not open: readyState 0 (CONNECTING)");"function"==typeof t?(i=t,t=r=void 0):"function"==typeof r&&(i=r,r=void 0),"number"==typeof t&&(t=t.toString()),this.readyState===O.OPEN?(void 0===r&&(r=!this._isServer),this._sender.ping(t||y,r,i)):U(this,t,i)}pong(t,r,i){if(this.readyState===O.CONNECTING)throw Error("WebSocket is not open: readyState 0 (CONNECTING)");"function"==typeof t?(i=t,t=r=void 0):"function"==typeof r&&(i=r,r=void 0),"number"==typeof t&&(t=t.toString()),this.readyState===O.OPEN?(void 0===r&&(r=!this._isServer),this._sender.pong(t||y,r,i)):U(this,t,i)}resume(){this.readyState!==O.CONNECTING&&this.readyState!==O.CLOSED&&(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(t,r,i){if(this.readyState===O.CONNECTING)throw Error("WebSocket is not open: readyState 0 (CONNECTING)");if("function"==typeof r&&(i=r,r={}),"number"==typeof t&&(t=t.toString()),this.readyState!==O.OPEN)return void U(this,t,i);let n={binary:"string"!=typeof t,mask:!this._isServer,compress:!0,fin:!0,...r};this._extensions[p.extensionName]||(n.compress=!1),this._sender.send(t||y,n,i)}terminate(){this.readyState!==O.CLOSED&&(this.readyState!==O.CONNECTING?this._socket&&(this._readyState=O.CLOSING,this._socket.destroy()):W(this,this._req,"WebSocket was closed before the connection was established"))}}function N(t,r){t._readyState=O.CLOSING,t.emit("error",r),t.emitClose()}function L(t){return t.path=t.socketPath,a.connect(t)}function D(t){return t.path=void 0,t.servername||""===t.servername||(t.servername=a.isIP(t.host)?"":t.host),l.connect(t)}function W(t,r,i){t._readyState=O.CLOSING;let n=Error(i);Error.captureStackTrace(n,W),r.setHeader?(r[C]=!0,r.abort(),r.socket&&!r.socket.destroyed&&r.socket.destroy(),process.nextTick(N,t,n)):(r.destroy(n),r.once("error",t.emit.bind(t,"error")),r.once("close",t.emitClose.bind(t)))}function U(t,r,i){if(r){let n=I(r).length;t._socket?t._sender._bufferedBytes+=n:t._bufferedAmount+=n}if(i){let o=Error(`WebSocket is not open: readyState ${t.readyState} (${x[t.readyState]})`);process.nextTick(i,o)}}function B(t,r){let i=this[S];i._closeFrameReceived=!0,i._closeMessage=r,i._closeCode=t,void 0!==i._socket[S]&&(i._socket.removeListener("data",Q),process.nextTick(H,i._socket),1005===t?i.close():i.close(t,r))}function F(){let t=this[S];t.isPaused||t._socket.resume()}function j(t){let r=this[S];void 0!==r._socket[S]&&(r._socket.removeListener("data",Q),process.nextTick(H,r._socket),r.close(t[_])),r.emit("error",t)}function V(){this[S].emitClose()}function G(t,r){this[S].emit("message",t,r)}function q(t){let r=this[S];r._autoPong&&r.pong(t,!this._isServer,E),r.emit("ping",t)}function K(t){this[S].emit("pong",t)}function H(t){t.resume()}function z(){let t=this[S],r;this.removeListener("close",z),this.removeListener("data",Q),this.removeListener("end",Y),t._readyState=O.CLOSING,this._readableState.endEmitted||t._closeFrameReceived||t._receiver._writableState.errorEmitted||null===(r=t._socket.read())||t._receiver.write(r),t._receiver.end(),this[S]=void 0,clearTimeout(t._closeTimer),t._receiver._writableState.finished||t._receiver._writableState.errorEmitted?t.emitClose():(t._receiver.on("error",V),t._receiver.on("finish",V))}function Q(t){this[S]._receiver.write(t)||this.pause()}function Y(){let t=this[S];t._readyState=O.CLOSING,t._receiver.end(),this.end()}function X(){let t=this[S];this.removeListener("error",X),this.on("error",E),t&&(t._readyState=O.CLOSING,this.destroy())}Object.defineProperty(O,"CONNECTING",{enumerable:!0,value:x.indexOf("CONNECTING")}),Object.defineProperty(O.prototype,"CONNECTING",{enumerable:!0,value:x.indexOf("CONNECTING")}),Object.defineProperty(O,"OPEN",{enumerable:!0,value:x.indexOf("OPEN")}),Object.defineProperty(O.prototype,"OPEN",{enumerable:!0,value:x.indexOf("OPEN")}),Object.defineProperty(O,"CLOSING",{enumerable:!0,value:x.indexOf("CLOSING")}),Object.defineProperty(O.prototype,"CLOSING",{enumerable:!0,value:x.indexOf("CLOSING")}),Object.defineProperty(O,"CLOSED",{enumerable:!0,value:x.indexOf("CLOSED")}),Object.defineProperty(O.prototype,"CLOSED",{enumerable:!0,value:x.indexOf("CLOSED")}),["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(t=>{Object.defineProperty(O.prototype,t,{enumerable:!0})}),["open","error","close","message"].forEach(t=>{Object.defineProperty(O.prototype,`on${t}`,{enumerable:!0,get(){for(let r of this.listeners(t))if(r[w])return r[v];return null},set(r){for(let i of this.listeners(t))if(i[w]){this.removeListener(t,i);break}"function"==typeof r&&this.addEventListener(t,r,{[w]:!0})}})}),O.prototype.addEventListener=k,O.prototype.removeEventListener=A,t.exports=O},181(t){"use strict";t.exports=require("buffer")},6982(t){"use strict";t.exports=require("crypto")},4434(t){"use strict";t.exports=require("events")},9896(t){"use strict";t.exports=require("fs")},8611(t){"use strict";t.exports=require("http")},5692(t){"use strict";t.exports=require("https")},9278(t){"use strict";t.exports=require("net")},857(t){"use strict";t.exports=require("os")},6928(t){"use strict";t.exports=require("path")},2203(t){"use strict";t.exports=require("stream")},3193(t){"use strict";t.exports=require("string_decoder")},4756(t){"use strict";t.exports=require("tls")},2018(t){"use strict";t.exports=require("tty")},7016(t){"use strict";t.exports=require("url")},9023(t){"use strict";t.exports=require("util")},3106(t){"use strict";t.exports=require("zlib")},6660(t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.LRUCache=void 0;let i="object"==typeof performance&&performance&&"function"==typeof performance.now?performance:Date,n=new Set,o="object"==typeof process&&process?process:{},s=(t,r,i,n)=>{"function"==typeof o.emitWarning?o.emitWarning(t,r,i,n):console.error(`[${i}] ${r}: ${t}`)},a=globalThis.AbortController,l=globalThis.AbortSignal;if(void 0===a){a=class{constructor(){c()}signal=new(l=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(t,r){this._onabort.push(r)}});abort(t){if(!this.signal.aborted){for(let r of(this.signal.reason=t,this.signal.aborted=!0,this.signal._onabort))r(t);this.signal.onabort?.(t)}}};let u="1"!==o.env?.LRU_CACHE_IGNORE_AC_WARNING,c=()=>{u&&(u=!1,s("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",c))}}Symbol("type");let d=t=>t&&t===Math.floor(t)&&t>0&&isFinite(t),h=t=>d(t)?t<=256?Uint8Array:t<=65536?Uint16Array:t<=4294967296?Uint32Array:t<=Number.MAX_SAFE_INTEGER?f:null:null;class f extends Array{constructor(t){super(t),this.fill(0)}}class p{heap;length;static #a=!1;static create(t){let r=h(t);if(!r)return[];p.#a=!0;let i=new p(t,r);return p.#a=!1,i}constructor(t,r){if(!p.#a)throw TypeError("instantiate Stack using Stack.create(n)");this.heap=new r(t),this.length=0}push(t){this.heap[this.length++]=t}pop(){return this.heap[--this.length]}}class g{#b;#c;#d;#e;#f;ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#g;#h;#i;#j;#k;#l;#m;#n;#o;#p;#q;#r;#s;#t;#u;#v;#w;static unsafeExposeInternals(t){return{starts:t.#s,ttls:t.#t,sizes:t.#r,keyMap:t.#i,keyList:t.#j,valList:t.#k,next:t.#l,prev:t.#m,get head(){return t.#n},get tail(){return t.#o},free:t.#p,isBackgroundFetch:r=>t.#x(r),backgroundFetch:(r,i,n,o)=>t.#y(r,i,n,o),moveToTail:r=>t.#z(r),indexes:r=>t.#A(r),rindexes:r=>t.#B(r),isStale:r=>t.#C(r)}}get max(){return this.#b}get maxSize(){return this.#c}get calculatedSize(){return this.#h}get size(){return this.#g}get fetchMethod(){return this.#f}get dispose(){return this.#d}get disposeAfter(){return this.#e}constructor(t){let{max:r=0,ttl:i,ttlResolution:o=1,ttlAutopurge:a,updateAgeOnGet:l,updateAgeOnHas:u,allowStale:c,dispose:f,disposeAfter:b,noDisposeOnSet:m,noUpdateTTL:y,maxSize:$=0,maxEntrySize:w=0,sizeCalculation:v,fetchMethod:_,noDeleteOnFetchRejection:S,noDeleteOnStaleGet:E,allowStaleOnFetchRejection:k,allowStaleOnFetchAbort:A,ignoreFetchAbort:R}=t;if(0!==r&&!d(r))throw TypeError("max option must be a nonnegative integer");let T=r?h(r):Array;if(!T)throw Error("invalid max value: "+r);if(this.#b=r,this.#c=$,this.maxEntrySize=w||this.#c,this.sizeCalculation=v,this.sizeCalculation){if(!this.#c&&!this.maxEntrySize)throw TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if("function"!=typeof this.sizeCalculation)throw TypeError("sizeCalculation set to non-function")}if(void 0!==_&&"function"!=typeof _)throw TypeError("fetchMethod must be a function if specified");if(this.#f=_,this.#v=!!_,this.#i=new Map,this.#j=Array(r).fill(void 0),this.#k=Array(r).fill(void 0),this.#l=new T(r),this.#m=new T(r),this.#n=0,this.#o=0,this.#p=p.create(r),this.#g=0,this.#h=0,"function"==typeof f&&(this.#d=f),"function"==typeof b?(this.#e=b,this.#q=[]):(this.#e=void 0,this.#q=void 0),this.#u=!!this.#d,this.#w=!!this.#e,this.noDisposeOnSet=!!m,this.noUpdateTTL=!!y,this.noDeleteOnFetchRejection=!!S,this.allowStaleOnFetchRejection=!!k,this.allowStaleOnFetchAbort=!!A,this.ignoreFetchAbort=!!R,0!==this.maxEntrySize){if(0!==this.#c&&!d(this.#c))throw TypeError("maxSize must be a positive integer if specified");if(!d(this.maxEntrySize))throw TypeError("maxEntrySize must be a positive integer if specified");this.#D()}if(this.allowStale=!!c,this.noDeleteOnStaleGet=!!E,this.updateAgeOnGet=!!l,this.updateAgeOnHas=!!u,this.ttlResolution=d(o)||0===o?o:1,this.ttlAutopurge=!!a,this.ttl=i||0,this.ttl){if(!d(this.ttl))throw TypeError("ttl must be a positive integer if specified");this.#E()}if(0===this.#b&&0===this.ttl&&0===this.#c)throw TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#b&&!this.#c){var I;let C="LRU_CACHE_UNBOUNDED";I=C,n.has(I)||(n.add(C),s("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",C,g))}}getRemainingTTL(t){return this.#i.has(t)?1/0:0}#E(){let b=new f(this.#b),m=new f(this.#b);this.#t=b,this.#s=m,this.#F=(t,r,n=i.now())=>{if(m[t]=0!==r?n:0,b[t]=r,0!==r&&this.ttlAutopurge){let o=setTimeout(()=>{this.#C(t)&&this.delete(this.#j[t])},r+1);o.unref&&o.unref()}},this.#G=t=>{m[t]=0!==b[t]?i.now():0},this.#H=(t,r)=>{if(b[r]){let i=b[r],n=m[r];if(!i||!n)return;t.ttl=i,t.start=n,t.now=y||$();let o=t.now-n;t.remainingTTL=i-o}};let y=0,$=()=>{let t=i.now();if(this.ttlResolution>0){y=t;let r=setTimeout(()=>y=0,this.ttlResolution);r.unref&&r.unref()}return t};this.getRemainingTTL=t=>{let r=this.#i.get(t);if(void 0===r)return 0;let i=b[r],n=m[r];return i&&n?i-((y||$())-n):1/0},this.#C=t=>{let r=m[t],i=b[t];return!!i&&!!r&&(y||$())-r>i}}#G=()=>{};#H=()=>{};#F=()=>{};#C=()=>!1;#D(){let w=new f(this.#b);this.#h=0,this.#r=w,this.#I=t=>{this.#h-=w[t],w[t]=0},this.#J=(t,r,i,n)=>{if(this.#x(r))return 0;if(!d(i)){if(!n)throw TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");if("function"!=typeof n)throw TypeError("sizeCalculation must be a function");if(!d(i=n(r,t)))throw TypeError("sizeCalculation return invalid (expect positive integer)")}return i},this.#K=(t,r,i)=>{if(w[t]=r,this.#c){let n=this.#c-w[t];for(;this.#h>n;)this.#L(!0)}this.#h+=w[t],i&&(i.entrySize=r,i.totalCalculatedSize=this.#h)}}#I=t=>{};#K=(t,r,i)=>{};#J=(t,r,i,n)=>{if(i||n)throw TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#A({allowStale:v=this.allowStale}={}){if(this.#g)for(let _=this.#o;this.#M(_)&&(!v&&this.#C(_)||(yield _),_!==this.#n);)_=this.#m[_]}*#B({allowStale:S=this.allowStale}={}){if(this.#g)for(let E=this.#n;this.#M(E)&&(!S&&this.#C(E)||(yield E),E!==this.#o);)E=this.#l[E]}#M(k){return void 0!==k&&this.#i.get(this.#j[k])===k}*entries(){for(let t of this.#A())void 0===this.#k[t]||void 0===this.#j[t]||this.#x(this.#k[t])||(yield[this.#j[t],this.#k[t]])}*rentries(){for(let t of this.#B())void 0===this.#k[t]||void 0===this.#j[t]||this.#x(this.#k[t])||(yield[this.#j[t],this.#k[t]])}*keys(){for(let t of this.#A()){let r=this.#j[t];void 0===r||this.#x(this.#k[t])||(yield r)}}*rkeys(){for(let t of this.#B()){let r=this.#j[t];void 0===r||this.#x(this.#k[t])||(yield r)}}*values(){for(let t of this.#A())void 0===this.#k[t]||this.#x(this.#k[t])||(yield this.#k[t])}*rvalues(){for(let t of this.#B())void 0===this.#k[t]||this.#x(this.#k[t])||(yield this.#k[t])}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(t,r={}){for(let i of this.#A()){let n=this.#k[i],o=this.#x(n)?n.__staleWhileFetching:n;if(void 0!==o&&t(o,this.#j[i],this))return this.get(this.#j[i],r)}}forEach(t,r=this){for(let i of this.#A()){let n=this.#k[i],o=this.#x(n)?n.__staleWhileFetching:n;void 0!==o&&t.call(r,o,this.#j[i],this)}}rforEach(t,r=this){for(let i of this.#B()){let n=this.#k[i],o=this.#x(n)?n.__staleWhileFetching:n;void 0!==o&&t.call(r,o,this.#j[i],this)}}purgeStale(){let t=!1;for(let r of this.#B({allowStale:!0}))this.#C(r)&&(this.delete(this.#j[r]),t=!0);return t}info(t){let r=this.#i.get(t);if(void 0===r)return;let n=this.#k[r],o=this.#x(n)?n.__staleWhileFetching:n;if(void 0===o)return;let s={value:o};if(this.#t&&this.#s){let a=this.#t[r],l=this.#s[r];if(a&&l){let u=a-(i.now()-l);s.ttl=u,s.start=Date.now()}}return this.#r&&(s.size=this.#r[r]),s}dump(){let t=[];for(let r of this.#A({allowStale:!0})){let n=this.#j[r],o=this.#k[r],s=this.#x(o)?o.__staleWhileFetching:o;if(void 0===s||void 0===n)continue;let a={value:s};if(this.#t&&this.#s){a.ttl=this.#t[r];let l=i.now()-this.#s[r];a.start=Math.floor(Date.now()-l)}this.#r&&(a.size=this.#r[r]),t.unshift([n,a])}return t}load(t){for(let[r,n]of(this.clear(),t)){if(n.start){let o=Date.now()-n.start;n.start=i.now()-o}this.set(r,n.value,n)}}set(t,r,i={}){if(void 0===r)return this.delete(t),this;let{ttl:n=this.ttl,start:o,noDisposeOnSet:s=this.noDisposeOnSet,sizeCalculation:a=this.sizeCalculation,status:l}=i,{noUpdateTTL:u=this.noUpdateTTL}=i,c=this.#J(t,r,i.size||0,a);if(this.maxEntrySize&&c>this.maxEntrySize)return l&&(l.set="miss",l.maxEntrySizeExceeded=!0),this.delete(t),this;let d=0===this.#g?void 0:this.#i.get(t);if(void 0===d)d=0===this.#g?this.#o:0!==this.#p.length?this.#p.pop():this.#g===this.#b?this.#L(!1):this.#g,this.#j[d]=t,this.#k[d]=r,this.#i.set(t,d),this.#l[this.#o]=d,this.#m[d]=this.#o,this.#o=d,this.#g++,this.#K(d,c,l),l&&(l.set="add"),u=!1;else{this.#z(d);let h=this.#k[d];if(r!==h){if(this.#v&&this.#x(h)){h.__abortController.abort(Error("replaced"));let{__staleWhileFetching:f}=h;void 0===f||s||(this.#u&&this.#d?.(f,t,"set"),this.#w&&this.#q?.push([f,t,"set"]))}else s||(this.#u&&this.#d?.(h,t,"set"),this.#w&&this.#q?.push([h,t,"set"]));if(this.#I(d),this.#K(d,c,l),this.#k[d]=r,l){l.set="replace";let p=h&&this.#x(h)?h.__staleWhileFetching:h;void 0!==p&&(l.oldValue=p)}}else l&&(l.set="update")}if(0===n||this.#t||this.#E(),this.#t&&(u||this.#F(d,n,o),l&&this.#H(l,d)),!s&&this.#w&&this.#q){let g=this.#q,b;for(;b=g?.shift();)this.#e?.(...b)}return this}pop(){try{for(;this.#g;){let t=this.#k[this.#n];if(this.#L(!0),this.#x(t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(void 0!==t)return t}}finally{if(this.#w&&this.#q){let r=this.#q,i;for(;i=r?.shift();)this.#e?.(...i)}}}#L(A){let R=this.#n,T=this.#j[R],I=this.#k[R];return this.#v&&this.#x(I)?I.__abortController.abort(Error("evicted")):(this.#u||this.#w)&&(this.#u&&this.#d?.(I,T,"evict"),this.#w&&this.#q?.push([I,T,"evict"])),this.#I(R),A&&(this.#j[R]=void 0,this.#k[R]=void 0,this.#p.push(R)),1===this.#g?(this.#n=this.#o=0,this.#p.length=0):this.#n=this.#l[R],this.#i.delete(T),this.#g--,R}has(t,r={}){let{updateAgeOnHas:i=this.updateAgeOnHas,status:n}=r,o=this.#i.get(t);if(void 0!==o){let s=this.#k[o];if(this.#x(s)&&void 0===s.__staleWhileFetching)return!1;if(!this.#C(o))return i&&this.#G(o),n&&(n.has="hit",this.#H(n,o)),!0;n&&(n.has="stale",this.#H(n,o))}else n&&(n.has="miss");return!1}peek(t,r={}){let{allowStale:i=this.allowStale}=r,n=this.#i.get(t);if(void 0===n||!i&&this.#C(n))return;let o=this.#k[n];return this.#x(o)?o.__staleWhileFetching:o}#y(C,P,x,M){let O=void 0===P?void 0:this.#k[P];if(this.#x(O))return O;let N=new a,{signal:L}=x;L?.addEventListener("abort",()=>N.abort(L.reason),{signal:N.signal});let D={signal:N.signal,options:x,context:M},W=(t,r=!1)=>{let{aborted:i}=N.signal,n=x.ignoreFetchAbort&&void 0!==t;if(x.status&&(i&&!r?(x.status.fetchAborted=!0,x.status.fetchError=N.signal.reason,n&&(x.status.fetchAbortIgnored=!0)):x.status.fetchResolved=!0),i&&!n&&!r)return U(N.signal.reason);let o=B;return this.#k[P]===B&&(void 0===t?o.__staleWhileFetching?this.#k[P]=o.__staleWhileFetching:this.delete(C):(x.status&&(x.status.fetchUpdated=!0),this.set(C,t,D.options))),t},U=t=>{let{aborted:r}=N.signal,i=r&&x.allowStaleOnFetchAbort,n=i||x.allowStaleOnFetchRejection,o=n||x.noDeleteOnFetchRejection,s=B;if(this.#k[P]===B&&(o&&void 0!==s.__staleWhileFetching?i||(this.#k[P]=s.__staleWhileFetching):this.delete(C)),n)return x.status&&void 0!==s.__staleWhileFetching&&(x.status.returnedStale=!0),s.__staleWhileFetching;if(s.__returned===s)throw t};x.status&&(x.status.fetchDispatched=!0);let B=new Promise((t,r)=>{let i=this.#f?.(C,O,D);i&&i instanceof Promise&&i.then(r=>t(void 0===r?void 0:r),r),N.signal.addEventListener("abort",()=>{x.ignoreFetchAbort&&!x.allowStaleOnFetchAbort||(t(void 0),x.allowStaleOnFetchAbort&&(t=t=>W(t,!0)))})}).then(W,t=>(x.status&&(x.status.fetchRejected=!0,x.status.fetchError=t),U(t))),F=Object.assign(B,{__abortController:N,__staleWhileFetching:O,__returned:void 0});return void 0===P?(this.set(C,F,{...D.options,status:void 0}),P=this.#i.get(C)):this.#k[P]=F,F}#x(j){if(!this.#v)return!1;let V=j;return!!V&&V instanceof Promise&&V.hasOwnProperty("__staleWhileFetching")&&V.__abortController instanceof a}async fetch(t,r={}){let{allowStale:i=this.allowStale,updateAgeOnGet:n=this.updateAgeOnGet,noDeleteOnStaleGet:o=this.noDeleteOnStaleGet,ttl:s=this.ttl,noDisposeOnSet:a=this.noDisposeOnSet,size:l=0,sizeCalculation:u=this.sizeCalculation,noUpdateTTL:c=this.noUpdateTTL,noDeleteOnFetchRejection:d=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:h=this.allowStaleOnFetchRejection,ignoreFetchAbort:f=this.ignoreFetchAbort,allowStaleOnFetchAbort:p=this.allowStaleOnFetchAbort,context:g,forceRefresh:b=!1,status:m,signal:y}=r;if(!this.#v)return m&&(m.fetch="get"),this.get(t,{allowStale:i,updateAgeOnGet:n,noDeleteOnStaleGet:o,status:m});let $={allowStale:i,updateAgeOnGet:n,noDeleteOnStaleGet:o,ttl:s,noDisposeOnSet:a,size:l,sizeCalculation:u,noUpdateTTL:c,noDeleteOnFetchRejection:d,allowStaleOnFetchRejection:h,allowStaleOnFetchAbort:p,ignoreFetchAbort:f,status:m,signal:y},w=this.#i.get(t);if(void 0===w){m&&(m.fetch="miss");let v=this.#y(t,w,$,g);return v.__returned=v}{let _=this.#k[w];if(this.#x(_)){let S=i&&void 0!==_.__staleWhileFetching;return m&&(m.fetch="inflight",S&&(m.returnedStale=!0)),S?_.__staleWhileFetching:_.__returned=_}let E=this.#C(w);if(!b&&!E)return m&&(m.fetch="hit"),this.#z(w),n&&this.#G(w),m&&this.#H(m,w),_;let k=this.#y(t,w,$,g),A=void 0!==k.__staleWhileFetching&&i;return m&&(m.fetch=E?"stale":"refresh",A&&E&&(m.returnedStale=!0)),A?k.__staleWhileFetching:k.__returned=k}}get(t,r={}){let{allowStale:i=this.allowStale,updateAgeOnGet:n=this.updateAgeOnGet,noDeleteOnStaleGet:o=this.noDeleteOnStaleGet,status:s}=r,a=this.#i.get(t);if(void 0!==a){let l=this.#k[a],u=this.#x(l);return s&&this.#H(s,a),this.#C(a)?(s&&(s.get="stale"),u?(s&&i&&void 0!==l.__staleWhileFetching&&(s.returnedStale=!0),i?l.__staleWhileFetching:void 0):(o||this.delete(t),s&&i&&(s.returnedStale=!0),i?l:void 0)):(s&&(s.get="hit"),u?l.__staleWhileFetching:(this.#z(a),n&&this.#G(a),l))}s&&(s.get="miss")}#N(G,q){this.#m[q]=G,this.#l[G]=q}#z(K){K!==this.#o&&(K===this.#n?this.#n=this.#l[K]:this.#N(this.#m[K],this.#l[K]),this.#N(this.#o,K),this.#o=K)}delete(t){let r=!1;if(0!==this.#g){let i=this.#i.get(t);if(void 0!==i){if(r=!0,1===this.#g)this.clear();else{this.#I(i);let n=this.#k[i];if(this.#x(n)?n.__abortController.abort(Error("deleted")):(this.#u||this.#w)&&(this.#u&&this.#d?.(n,t,"delete"),this.#w&&this.#q?.push([n,t,"delete"])),this.#i.delete(t),this.#j[i]=void 0,this.#k[i]=void 0,i===this.#o)this.#o=this.#m[i];else if(i===this.#n)this.#n=this.#l[i];else{let o=this.#m[i];this.#l[o]=this.#l[i];let s=this.#l[i];this.#m[s]=this.#m[i]}this.#g--,this.#p.push(i)}}}if(this.#w&&this.#q?.length){let a=this.#q,l;for(;l=a?.shift();)this.#e?.(...l)}return r}clear(){for(let t of this.#B({allowStale:!0})){let r=this.#k[t];if(this.#x(r))r.__abortController.abort(Error("deleted"));else{let i=this.#j[t];this.#u&&this.#d?.(r,i,"delete"),this.#w&&this.#q?.push([r,i,"delete"])}}if(this.#i.clear(),this.#k.fill(void 0),this.#j.fill(void 0),this.#t&&this.#s&&(this.#t.fill(0),this.#s.fill(0)),this.#r&&this.#r.fill(0),this.#n=0,this.#o=0,this.#p.length=0,this.#h=0,this.#g=0,this.#w&&this.#q){let n=this.#q,o;for(;o=n?.shift();)this.#e?.(...o)}}}r.LRUCache=g}},r={};function i(n){var o=r[n];if(void 0!==o)return o.exports;var s=r[n]={id:n,loaded:!1,exports:{}};return t[n].call(s.exports,s,s.exports,i),s.loaded=!0,s.exports}i.n=t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return i.d(r,{a:r}),r},i.d=(t,r)=>{for(var n in r)i.o(r,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},i.o=(t,r)=>Object.prototype.hasOwnProperty.call(t,r),i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.nmd=t=>(t.paths=[],t.children||(t.children=[]),t);var n={};i(9391).install(),(()=>{"use strict";i.r(n),i.d(n,{default:()=>r});var t=i(738);let r=i.n(t)()})();var o=exports;for(var s in n)o[s]=n[s];n.__esModule&&Object.defineProperty(o,"__esModule",{value:!0})})(); \ No newline at end of file diff --git a/packages/cli-plugin-deploy-pulumi/commands/newWatch/initInvocationForwarding.js b/packages/cli-plugin-deploy-pulumi/commands/newWatch/initInvocationForwarding.js new file mode 100644 index 00000000000..c1c01c5301f --- /dev/null +++ b/packages/cli-plugin-deploy-pulumi/commands/newWatch/initInvocationForwarding.js @@ -0,0 +1,102 @@ +const path = require("path"); +const { Worker } = require("worker_threads"); + +const WEBINY_WATCH_FN_INVOCATION_EVENT = "webiny.watch.functionInvocation"; +const WEBINY_WATCH_FN_INVOCATION_RESULT_EVENT = "webiny.watch.functionInvocationResult"; + +const WATCH_WORKER_PATH = path.join(__dirname, "localInvocationWorker.js"); + +const initInvocationForwarding = async ({ + iotEndpoint, + iotEndpointTopic, + sessionId, + lambdaFunctions +}) => { + // eslint-disable-next-line + const { default: exitHook } = await import("exit-hook"); + + const mqtt = require("mqtt"); + + const client = await mqtt.connectAsync(iotEndpoint); + + await client.subscribeAsync(iotEndpointTopic); + + client.on("message", async (_, message) => { + const payload = JSON.parse(message.toString()); + + if (payload.eventType !== WEBINY_WATCH_FN_INVOCATION_EVENT) { + return; + } + + if (payload.data.sessionId !== sessionId) { + return; + } + + const invokedLambdaFunction = lambdaFunctions.find( + lambdaFunction => lambdaFunction.name === payload.data.functionName + ); + + try { + const result = await new Promise(async (resolve, reject) => { + const worker = new Worker(WATCH_WORKER_PATH, { + env: { ...payload.data.env, WEBINY_WATCH_LOCAL_INVOCATION: "1" }, + workerData: { + handler: { + path: invokedLambdaFunction.path, + args: payload.data.args + } + } + }); + + const unsubscribeExitHook = exitHook(async () => { + await worker.terminate(); + }); + + worker.on("message", message => { + unsubscribeExitHook(); + + const { success, result, error } = JSON.parse(message); + if (success) { + resolve(result); + } else { + reject(error); + } + }); + }); + + await client.publish( + iotEndpointTopic, + JSON.stringify({ + eventType: WEBINY_WATCH_FN_INVOCATION_RESULT_EVENT, + eventId: new Date().getTime(), + data: { + originalEventId: payload.eventId, + result, + error: null + } + }) + ); + } catch (error) { + console.log(error); + await client.publish( + iotEndpointTopic, + JSON.stringify({ + eventType: WEBINY_WATCH_FN_INVOCATION_RESULT_EVENT, + eventId: new Date().getTime(), + data: { + originalEventId: payload.eventId, + data: null, + error: { + message: error.message, + stack: error.stack + } + } + }) + ); + } + }); + + return client; +}; + +module.exports = { initInvocationForwarding }; diff --git a/packages/cli-plugin-deploy-pulumi/commands/newWatch/listLambdaFunctions.js b/packages/cli-plugin-deploy-pulumi/commands/newWatch/listLambdaFunctions.js new file mode 100644 index 00000000000..e950f831286 --- /dev/null +++ b/packages/cli-plugin-deploy-pulumi/commands/newWatch/listLambdaFunctions.js @@ -0,0 +1,40 @@ +const { getStackExport } = require("../../utils"); +const path = require("path"); +const minimatch = require("minimatch"); + +const listLambdaFunctions = ({ folder, env, function: fn }) => { + const stackExport = getStackExport({ folder, env }); + if (!stackExport) { + // If no stack export is found, return an empty array. This is a valid scenario. + // For example, watching the Admin app locally, but not deploying it. + return []; + } + + const functionsList = stackExport.deployment.resources + .filter(r => r.type === "aws:lambda/function:Function") + .map(lambdaFunctionResource => { + const fnName = lambdaFunctionResource.outputs.name; + const handlerBuildFolderPath = lambdaFunctionResource.outputs.code.assets["."].path; + const handlerPath = path.join(handlerBuildFolderPath, "handler.js"); + return { name: fnName, path: handlerPath }; + }); + + if (!fn) { + return functionsList; + } + + const functionNamesToMatch = Array.isArray(fn) ? fn : [fn]; + + // `functionNamesToWatch` is an array of glob patterns, which denote which functions to watch. + return functionsList.filter(fn => { + return functionNamesToMatch.some(pattern => { + if (pattern.includes("*")) { + return minimatch(fn.name, pattern); + } + + return fn.name.includes(pattern); + }); + }); +}; + +module.exports = { listLambdaFunctions }; diff --git a/packages/cli-plugin-deploy-pulumi/commands/newWatch/listPackages.js b/packages/cli-plugin-deploy-pulumi/commands/newWatch/listPackages.js new file mode 100644 index 00000000000..8722bb6035e --- /dev/null +++ b/packages/cli-plugin-deploy-pulumi/commands/newWatch/listPackages.js @@ -0,0 +1,73 @@ +const execa = require("execa"); +const fs = require("fs"); +const path = require("path"); + +const listPackages = async ({ inputs }) => { + let packagesList = []; + if (inputs.package) { + packagesList = Array.isArray(inputs.package) ? [...inputs.package] : [inputs.package]; + + // When providing packages manually, we also allow providing names of Webiny packages + // without the `@webiny` scope. In that case, we need to add the scope to the package name. + const webinyPrefixedPackagesToAdd = []; + for (let i = 0; i < packagesList.length; i++) { + if (!packagesList[i].startsWith("@webiny")) { + webinyPrefixedPackagesToAdd.push(`@webiny/${packagesList[i]}`); + } + } + + packagesList.push(...webinyPrefixedPackagesToAdd); + } else { + packagesList = await execa("yarn", [ + "webiny", + "workspaces", + "tree", + "--json", + "--depth", + inputs.depth, + "--distinct", + "--folder", + inputs.folder + ]).then(({ stdout }) => JSON.parse(stdout)); + } + + const commandArgs = [ + "webiny", + "workspaces", + "list", + "--json", + "--withPath", + ...packagesList.reduce((current, item) => { + current.push("--scope", item); + return current; + }, []) + ]; + + if (inputs.env) { + commandArgs.push("--env", inputs.env); + } + + return execa("yarn", commandArgs).then(({ stdout }) => { + const result = JSON.parse(stdout); + const packages = []; + for (const packageName in result) { + const root = result[packageName]; + const configPath = fs.existsSync(path.join(root, "webiny.config.ts")) + ? path.join(root, "webiny.config.ts") + : path.join(root, "webiny.config.js"); + + packages.push({ + name: packageName, + config: require(configPath).default || require(configPath), + paths: { + root, + config: configPath + } + }); + } + + return packages; + }); +}; + +module.exports = listPackages; diff --git a/packages/cli-plugin-deploy-pulumi/commands/newWatch/localInvocationWorker.js b/packages/cli-plugin-deploy-pulumi/commands/newWatch/localInvocationWorker.js new file mode 100644 index 00000000000..3374cd146a6 --- /dev/null +++ b/packages/cli-plugin-deploy-pulumi/commands/newWatch/localInvocationWorker.js @@ -0,0 +1,23 @@ +const { parentPort, workerData } = require("worker_threads"); + +(async () => { + const { handler: handlerParams } = workerData; + try { + const { handler } = require(handlerParams.path); + const result = await handler(...handlerParams.args); + + parentPort.postMessage(JSON.stringify({ success: true, result, error: null })); + } catch (error) { + const { message, code, data, stack } = error; + + parentPort.postMessage( + JSON.stringify({ + success: false, + result: null, + error: { message, code, data, stack } + }) + ); + } finally { + process.exit(0); + } +})(); diff --git a/packages/cli-plugin-deploy-pulumi/commands/newWatch/replaceLambdaFunctions.js b/packages/cli-plugin-deploy-pulumi/commands/newWatch/replaceLambdaFunctions.js new file mode 100644 index 00000000000..7e93e84d7c5 --- /dev/null +++ b/packages/cli-plugin-deploy-pulumi/commands/newWatch/replaceLambdaFunctions.js @@ -0,0 +1,63 @@ +const fs = require("fs"); +const pRetry = require("p-retry"); + +const WATCH_MODE_NOTE_IN_DESCRIPTION = " (watch mode 💡)"; +const DEFAULT_INCREASE_TIMEOUT = 120; + +const replaceLambdaFunctions = async ({ + iotEndpoint, + iotEndpointTopic, + sessionId, + lambdaFunctions, + increaseTimeout +}) => { + const { + GetFunctionConfigurationCommand, + LambdaClient, + UpdateFunctionCodeCommand, + UpdateFunctionConfigurationCommand + } = require("@webiny/aws-sdk/client-lambda"); + + const lambdaClient = new LambdaClient(); + + return lambdaFunctions.map(async fn => { + const getFnConfigCmd = new GetFunctionConfigurationCommand({ FunctionName: fn.name }); + const lambdaFnConfiguration = await lambdaClient.send(getFnConfigCmd); + + const updateFnCodeCmd = new UpdateFunctionCodeCommand({ + FunctionName: fn.name, + ZipFile: fs.readFileSync(__dirname + "/handler/handler.zip") + }); + + await lambdaClient.send(updateFnCodeCmd); + + let Description = lambdaFnConfiguration.Description; + if (!Description.endsWith(WATCH_MODE_NOTE_IN_DESCRIPTION)) { + Description += WATCH_MODE_NOTE_IN_DESCRIPTION; + } + + const Timeout = increaseTimeout || DEFAULT_INCREASE_TIMEOUT; + + const updateFnConfigCmd = new UpdateFunctionConfigurationCommand({ + FunctionName: fn.name, + Timeout, + Description, + Environment: { + Variables: { + ...lambdaFnConfiguration.Environment.Variables, + WEBINY_WATCH: JSON.stringify({ + enabled: true, + sessionId, + iotEndpoint, + iotEndpointTopic, + functionName: fn.name + }) + } + } + }); + + await pRetry(() => lambdaClient.send(updateFnConfigCmd)); + }); +}; + +module.exports = { replaceLambdaFunctions }; diff --git a/packages/cli-plugin-deploy-pulumi/commands/newWatch/watchPackages.js b/packages/cli-plugin-deploy-pulumi/commands/newWatch/watchPackages.js new file mode 100644 index 00000000000..6f05827c5d4 --- /dev/null +++ b/packages/cli-plugin-deploy-pulumi/commands/newWatch/watchPackages.js @@ -0,0 +1,209 @@ +const path = require("path"); +const fs = require("fs"); +const { Worker } = require("worker_threads"); +const chalk = require("chalk"); +const execa = require("execa"); +const { getRandomColorForString } = require("../../utils"); + +const parseMessage = message => { + try { + return JSON.parse(message); + } catch (e) { + return { + type: "error", + message: `Could not parse received watch result (JSON): ${message}` + }; + } +}; + +module.exports = async ({ inputs, output, context }) => { + const packages = await getPackages({ inputs, output, context }); + if (packages.length === 0) { + output.log({ + type: "build", + message: `Could not watch any of the specified packages.` + }); + return; + } + + if (inputs.debug) { + context.debug("The following packages will be watched for changes:"); + packages.forEach(item => console.log("‣ " + item.name)); + } + + const { env, debug, logs } = inputs; + const multipleWatches = packages.length > 1; + if (multipleWatches) { + output.log({ + type: "build", + message: `Watching ${context.info.hl(packages.length)} packages...` + }); + } else { + output.log({ + type: "build", + message: `Watching ${context.info.hl(packages[0].name)} package...` + }); + } + + const log = createLog({ multipleWatches, output, context }); + + const commandOptions = { env, debug, logs: !multipleWatches || logs }; + const promises = []; + for (let i = 0; i < packages.length; i++) { + const current = packages[i]; + promises.push( + new Promise(resolve => { + const worker = new Worker(path.join(__dirname, "./worker.js"), { + workerData: { + options: commandOptions, + package: { ...current.paths } + } + }); + + worker.on("message", threadMessage => { + const { type, message } = parseMessage(threadMessage); + + if (type === "error") { + log(current.name, message, "error"); + } else if (type === "warn") { + log(current.name, message); + } else { + log(current.name, message); + } + }); + + worker.on("error", e => { + log( + current.name, + `An unknown error occurred while watching ${context.error.hl( + current.name + )}:` + ); + + log(e); + + resolve({ + package: current, + result: { + message: `An unknown error occurred.` + } + }); + }); + }) + ); + } + + await Promise.all(promises); +}; + +const getPackages = async ({ inputs, context, output }) => { + let packagesList = []; + if (inputs.package) { + packagesList = Array.isArray(inputs.package) ? inputs.package : [inputs.package]; + } else { + packagesList = await execa("yarn", [ + "webiny", + "workspaces", + "tree", + "--json", + "--depth", + inputs.depth, + "--distinct", + "--folder", + inputs.folder + ]).then(({ stdout }) => JSON.parse(stdout)); + } + + const commandArgs = [ + "webiny", + "workspaces", + "list", + "--json", + "--withPath", + ...packagesList.reduce((current, item) => { + current.push("--scope", item); + return current; + }, []) + ]; + + if (inputs.env) { + commandArgs.push("--env", inputs.env); + } + + return execa("yarn", commandArgs).then(({ stdout }) => { + const result = JSON.parse(stdout); + const packages = []; + for (const packageName in result) { + const root = result[packageName]; + const configPath = fs.existsSync(path.join(root, "webiny.config.ts")) + ? path.join(root, "webiny.config.ts") + : path.join(root, "webiny.config.js"); + + try { + packages.push({ + name: packageName, + config: require(configPath).default || require(configPath), + paths: { + root, + config: configPath + } + }); + } catch (e) { + if (inputs.debug) { + output.log({ + type: "build", + message: `Warning: could not load ${context.warning.hl( + configPath + )} configuration file:` + }); + + output.log({ + type: "build", + message: e.message + }); + + output.log({ + type: "build", + message: e.stack + }); + } + } + } + + return packages; + }); +}; + +const createLog = ({ multipleWatches, output, context }) => { + return (packageName, message, type) => { + let prefix = ""; + if (multipleWatches) { + prefix = chalk.hex(getRandomColorForString(packageName))(packageName) + ": "; + } + + let send = ""; + if (Array.isArray(message)) { + message = message.filter(Boolean); + if (message.length) { + const [first, ...rest] = message; + send = [prefix + first, ...rest].join(" "); + } + } else { + send = prefix + message; + } + + if (type) { + if (type === "error") { + send = context.error.hl(send); + } + if (type === "warn") { + send = context.warning.hl(send); + } + } + + output.log({ + type: "build", + message: send + }); + }; +}; diff --git a/packages/cli-plugin-deploy-pulumi/commands/newWatch/watchers/BasePackagesWatcher.js b/packages/cli-plugin-deploy-pulumi/commands/newWatch/watchers/BasePackagesWatcher.js new file mode 100644 index 00000000000..5f0fc8e000b --- /dev/null +++ b/packages/cli-plugin-deploy-pulumi/commands/newWatch/watchers/BasePackagesWatcher.js @@ -0,0 +1,13 @@ +class BasePackagesWatcher { + constructor({ packages, inputs, context }) { + this.packages = packages; + this.inputs = inputs; + this.context = context; + } + + async watch() { + throw new Error("Not implemented."); + } +} + +module.exports = { BasePackagesWatcher }; diff --git a/packages/cli-plugin-deploy-pulumi/commands/newWatch/watchers/MultiplePackagesWatcher.js b/packages/cli-plugin-deploy-pulumi/commands/newWatch/watchers/MultiplePackagesWatcher.js new file mode 100644 index 00000000000..ff0b68226e4 --- /dev/null +++ b/packages/cli-plugin-deploy-pulumi/commands/newWatch/watchers/MultiplePackagesWatcher.js @@ -0,0 +1,118 @@ +const { Worker } = require("worker_threads"); +const path = require("path"); +const chalk = require("chalk"); +const { BasePackagesWatcher } = require("./BasePackagesWatcher"); +const { getRandomColorForString } = require("../../../utils"); + +class MultiplePackagesWatcher extends BasePackagesWatcher { + async watch() { + const packages = this.packages; + const context = this.context; + const inputs = this.inputs; + + const { env, debug } = inputs; + + context.info(`Watching %s packages...`, packages.length); + + if (inputs.debug) { + context.debug("The following packages will be watched for changes:"); + packages.forEach(item => console.log("‣ " + item.name)); + } + + const commandOptions = { env, debug, logs: true }; + const log = createLog({ context }); + + const promises = []; + for (let i = 0; i < packages.length; i++) { + const current = packages[i]; + promises.push( + new Promise(resolve => { + const worker = new Worker(path.join(__dirname, "./worker.js"), { + workerData: { + options: commandOptions, + package: { ...current.paths } + } + }); + + worker.on("message", threadMessage => { + const { type, message } = parseMessage(threadMessage); + + if (type === "error") { + log(current.name, message, "error"); + } else if (type === "warn") { + log(current.name, message); + } else { + log(current.name, message); + } + }); + + worker.on("error", e => { + log( + current.name, + `An unknown error occurred while watching ${context.error.hl( + current.name + )}:` + ); + + log(e); + + resolve({ + package: current, + result: { + message: `An unknown error occurred.` + } + }); + }); + }) + ); + } + + await Promise.all(promises); + } +} + +const createLog = ({ context }) => { + return (packageName, message, type) => { + const prefix = chalk.hex(getRandomColorForString(packageName))(packageName) + ": "; + + let send = ""; + if (Array.isArray(message)) { + message = message.filter(Boolean); + if (message.length) { + const [first, ...rest] = message; + send = [prefix + first, ...rest].join(" "); + } + } else { + send = prefix + message; + } + + if (type) { + if (type === "error") { + send = context.error.hl(send); + } + if (type === "warn") { + send = context.warning.hl(send); + } + } + + send = send.trim().replace(/^\s+|\s+$/g, ""); + if (!send) { + return; + } + + console.log(send); + }; +}; + +const parseMessage = message => { + try { + return JSON.parse(message); + } catch (e) { + return { + type: "error", + message: `Could not parse received watch result (JSON): ${message}` + }; + } +}; + +module.exports = { MultiplePackagesWatcher }; diff --git a/packages/cli-plugin-deploy-pulumi/commands/newWatch/watchers/PackagesWatcher.js b/packages/cli-plugin-deploy-pulumi/commands/newWatch/watchers/PackagesWatcher.js new file mode 100644 index 00000000000..7c2bbb0202a --- /dev/null +++ b/packages/cli-plugin-deploy-pulumi/commands/newWatch/watchers/PackagesWatcher.js @@ -0,0 +1,33 @@ +const { BasePackagesWatcher } = require("./BasePackagesWatcher"); + +class PackagesWatcher extends BasePackagesWatcher { + async watch() { + const WatcherClass = this.getWatcherClass(); + + const watcher = new WatcherClass({ + packages: this.packages, + inputs: this.inputs, + context: this.context + }); + + await watcher.watch(); + } + + getWatcherClass() { + const packagesCount = this.packages.length; + if (packagesCount === 0) { + const { ZeroPackagesWatcher } = require("./ZeroPackagesWatcher"); + return ZeroPackagesWatcher; + } + + if (packagesCount === 1) { + const { SinglePackageWatcher } = require("./SinglePackageWatcher"); + return SinglePackageWatcher; + } + + const { MultiplePackagesWatcher } = require("./MultiplePackagesWatcher"); + return MultiplePackagesWatcher; + } +} + +module.exports = { PackagesWatcher }; diff --git a/packages/cli-plugin-deploy-pulumi/commands/newWatch/watchers/SinglePackageWatcher.js b/packages/cli-plugin-deploy-pulumi/commands/newWatch/watchers/SinglePackageWatcher.js new file mode 100644 index 00000000000..0ed232cb5e4 --- /dev/null +++ b/packages/cli-plugin-deploy-pulumi/commands/newWatch/watchers/SinglePackageWatcher.js @@ -0,0 +1,34 @@ +const { BasePackagesWatcher } = require("./BasePackagesWatcher"); + +class SinglePackageWatcher extends BasePackagesWatcher { + async watch() { + const pkg = this.packages[0]; + const context = this.context; + const inputs = this.inputs; + + const { env, debug } = inputs; + + const options = { + env, + debug, + cwd: pkg.paths.root, + + // Not much sense in turning off logs when a single package is being built. + logs: true + }; + + let config = require(pkg.paths.config).default || require(pkg.paths.config); + if (typeof config === "function") { + config = config({ options, context }); + } + + const hasWatchCommand = config.commands && typeof config.commands.watch === "function"; + if (!hasWatchCommand) { + throw new Error("Watch command not found."); + } + + await config.commands.watch(options); + } +} + +module.exports = { SinglePackageWatcher }; diff --git a/packages/cli-plugin-deploy-pulumi/commands/newWatch/watchers/ZeroPackagesWatcher.js b/packages/cli-plugin-deploy-pulumi/commands/newWatch/watchers/ZeroPackagesWatcher.js new file mode 100644 index 00000000000..3e06c54fc72 --- /dev/null +++ b/packages/cli-plugin-deploy-pulumi/commands/newWatch/watchers/ZeroPackagesWatcher.js @@ -0,0 +1,10 @@ +const { BasePackagesWatcher } = require("./BasePackagesWatcher"); + +class ZeroPackagesWatcher extends BasePackagesWatcher { + watch() { + // Simply don't do anything. There are no packages to watch. + return; + } +} + +module.exports = { ZeroPackagesWatcher }; diff --git a/packages/cli-plugin-deploy-pulumi/commands/newWatch/watchers/worker.js b/packages/cli-plugin-deploy-pulumi/commands/newWatch/watchers/worker.js new file mode 100644 index 00000000000..27d2952775b --- /dev/null +++ b/packages/cli-plugin-deploy-pulumi/commands/newWatch/watchers/worker.js @@ -0,0 +1,52 @@ +const { parentPort, workerData } = require("worker_threads"); +require("@webiny/cli/utils/importModule"); +const { cli } = require("@webiny/cli"); + +// We need this because tools have internal console.log calls. So, +// let's intercept those and make sure messages are just forwarded +// to the main thread. +const types = ["log", "error", "warn"]; +for (let i = 0; i < types.length; i++) { + const type = types[i]; + console[type] = (...message) => { + parentPort.postMessage( + JSON.stringify({ + type, + message: message.filter(Boolean).map(m => { + if (m instanceof Error) { + return m.message; + } + return m; + }) + }) + ); + }; +} + +(async () => { + try { + const { options, package: pckg } = workerData; + let config = require(pckg.config); + if (config.default) { + config = config.default; + } + + if (typeof config === "function") { + config = config({ options: { ...options, cwd: pckg.root }, context: cli }); + } + + if (typeof config.commands.watch !== "function") { + console.log( + `Skipping watch; ${cli.warning.hl( + "watch" + )} command is missing. Check package's ${cli.warning.hl("webiny.config.ts")} file.` + ); + return; + } + + await config.commands.watch(options, cli); + } catch (e) { + console.log(e.stack); + console.error(e); + } +})(); diff --git a/packages/cli-plugin-deploy-pulumi/commands/watch/watchers/PackagesWatcher.js b/packages/cli-plugin-deploy-pulumi/commands/watch/watchers/PackagesWatcher.js index 9115658c529..1d5aec51bfe 100644 --- a/packages/cli-plugin-deploy-pulumi/commands/watch/watchers/PackagesWatcher.js +++ b/packages/cli-plugin-deploy-pulumi/commands/watch/watchers/PackagesWatcher.js @@ -14,14 +14,11 @@ class PackagesWatcher extends BasePackagesWatcher { } getWatcherClass() { - if (!this.inputs.deploy) { - const { - NoDeploymentsPackagesWatcher - } = require("./NoDeploymentsPackagesWatcher/NoDeploymentsPackagesWatcher"); - return NoDeploymentsPackagesWatcher; - } + const { + NoDeploymentsPackagesWatcher + } = require("./NoDeploymentsPackagesWatcher/NoDeploymentsPackagesWatcher"); - throw new Error("Not implemented."); + return NoDeploymentsPackagesWatcher; } } diff --git a/packages/cli-plugin-deploy-pulumi/package.json b/packages/cli-plugin-deploy-pulumi/package.json index 590fff16c2f..b9bd6a9d0c4 100644 --- a/packages/cli-plugin-deploy-pulumi/package.json +++ b/packages/cli-plugin-deploy-pulumi/package.json @@ -13,11 +13,13 @@ "@webiny/aws-sdk": "0.0.0", "@webiny/cli": "0.0.0", "@webiny/data-migration": "0.0.0", + "@webiny/feature-flags": "0.0.0", "@webiny/plugins": "0.0.0", "@webiny/pulumi-sdk": "0.0.0", "body-parser": "1.20.1", "chalk": "4.1.2", "execa": "5.1.1", + "exit-hook": "^4.0.0", "express": "^4.19.2", "fast-glob": "^3.2.7", "humanize-duration": "^3.31.0", @@ -28,9 +30,11 @@ "log-update": "^4.0.0", "mime": "2.6.0", "minimatch": "^5.1.0", + "mqtt": "^5.5.2", "ncp": "2.0.0", "node-notifier": "^10.0.1", "ora": "4.1.1", + "p-retry": "^4.6.2", "replace-in-path": "^1.1.0" }, "license": "MIT", @@ -41,14 +45,17 @@ "adio": { "ignoreDirs": [ "/node_modules/", - "/dist/" + "/dist/", + "commands/newWatch/handler" ], "ignore": { "src": [ - "vm" + "vm", + "inspector" ], "dependencies": [ - "execa" + "execa", + "exit-hook" ] } }, diff --git a/packages/cli-plugin-deploy-pulumi/utils/getDeploymentId.js b/packages/cli-plugin-deploy-pulumi/utils/getDeploymentId.js new file mode 100644 index 00000000000..249a79444de --- /dev/null +++ b/packages/cli-plugin-deploy-pulumi/utils/getDeploymentId.js @@ -0,0 +1,16 @@ +const getStackOutput = require("./getStackOutput"); + +const getDeploymentId = params => { + if (!params.env) { + throw new Error(`Please specify environment, for example "dev".`); + } + + const coreStackOutput = getStackOutput({ + folder: "core", + env: params.env + }); + + return coreStackOutput.deploymentId; +}; + +module.exports = getDeploymentId; diff --git a/packages/cli-plugin-deploy-pulumi/utils/getStackExport.js b/packages/cli-plugin-deploy-pulumi/utils/getStackExport.js new file mode 100644 index 00000000000..21674e6abdb --- /dev/null +++ b/packages/cli-plugin-deploy-pulumi/utils/getStackExport.js @@ -0,0 +1,35 @@ +const execa = require("execa"); +const { getProject } = require("@webiny/cli/utils"); + +const cache = {}; +const getOutputJson = ({ folder, env, cwd }) => { + const project = getProject(); + + if (cache[folder + env]) { + return cache[folder + env]; + } + + try { + const command = ["webiny", "pulumi", folder, "--env", env, "--", "stack", "export"]; + + const { stdout } = execa.sync("yarn", command.filter(Boolean), { + cwd: cwd || project.root + }); + + return JSON.parse(stdout); + } catch (e) { + return null; + } +}; + +module.exports = args => { + if (!args.folder) { + throw new Error(`Please specify a project application folder, for example "apps/admin".`); + } + + if (!args.env) { + throw new Error(`Please specify environment, for example "dev".`); + } + + return getOutputJson(args); +}; diff --git a/packages/cli-plugin-deploy-pulumi/utils/index.d.ts b/packages/cli-plugin-deploy-pulumi/utils/index.d.ts index da23d438f99..877832cc66f 100644 --- a/packages/cli-plugin-deploy-pulumi/utils/index.d.ts +++ b/packages/cli-plugin-deploy-pulumi/utils/index.d.ts @@ -13,13 +13,21 @@ export function getStackOutput>(options: { cwd?: string; }): TStackOutput; +export function getStackExport>(options: { + folder: string; + env: string; + cwd?: string; +}): TStackOutput; + +export function getDeploymentId(params: { env: string }): string; + interface GetPulumiParams { projectApplication?: Record; - pulumi?: Options + pulumi?: Options; install?: boolean; } export function getPulumi(params: GetPulumiParams): Pulumi; export * from "./GracefulError"; -export * from "./GracefulPulumiError"; \ No newline at end of file +export * from "./GracefulPulumiError"; diff --git a/packages/cli-plugin-deploy-pulumi/utils/index.js b/packages/cli-plugin-deploy-pulumi/utils/index.js index 60c1839d996..f511b2acad9 100644 --- a/packages/cli-plugin-deploy-pulumi/utils/index.js +++ b/packages/cli-plugin-deploy-pulumi/utils/index.js @@ -1,6 +1,8 @@ const createProjectApplicationWorkspace = require("./createProjectApplicationWorkspace"); const getPulumi = require("./getPulumi"); const getStackOutput = require("./getStackOutput"); +const getStackExport = require("./getStackExport"); +const getDeploymentId = require("./getDeploymentId"); const { GracefulError } = require("./GracefulError"); const { GracefulPulumiError } = require("./GracefulPulumiError"); const createPulumiCommand = require("./createPulumiCommand"); @@ -16,6 +18,8 @@ const getRandomColorForString = require("./getRandomColorForString"); module.exports = { getPulumi, getStackOutput, + getStackExport, + getDeploymentId, GracefulError, GracefulPulumiError, createPulumiCommand, diff --git a/packages/cwp-template-aws/template/common/extensions/theme/src/layouts/forms/DefaultFormLayout/Cell.tsx b/packages/cwp-template-aws/template/common/extensions/theme/src/layouts/forms/DefaultFormLayout/Cell.tsx index 1280aa46fde..e9294ca20e5 100644 --- a/packages/cwp-template-aws/template/common/extensions/theme/src/layouts/forms/DefaultFormLayout/Cell.tsx +++ b/packages/cwp-template-aws/template/common/extensions/theme/src/layouts/forms/DefaultFormLayout/Cell.tsx @@ -1,18 +1,17 @@ import styled from "@emotion/styled"; export const Cell = styled.div` - width: 100%; - background-color: ${props => props.theme.styles.colors["color6"]}; - padding: 15px; + width: 100%; + background-color: ${props => props.theme.styles.colors["color6"]}; + padding: 15px; - ${props => props.theme.breakpoints["desktop"]} { - &:first-of-type { - padding-left: 0; - } + ${props => props.theme.breakpoints["desktop"]} { + &:first-of-type { + padding-left: 0; + } - &:last-child { - padding-right: 0; + &:last-child { + padding-right: 0; + } } - } -} `; diff --git a/packages/feature-flags/src/index.ts b/packages/feature-flags/src/index.ts index 8adf5c50cb6..e7258787f83 100644 --- a/packages/feature-flags/src/index.ts +++ b/packages/feature-flags/src/index.ts @@ -2,6 +2,7 @@ export type FeatureFlags> = { copyPermissionsButton?: boolean; experimentalAdminOmniSearch?: boolean; allowCmsLegacyRichTextInput?: boolean; + newWatchCommand?: boolean; } & TFeatureFlags; let featureFlags: FeatureFlags = {}; diff --git a/packages/handler/src/fastify.ts b/packages/handler/src/fastify.ts index b1684a7e270..de1c2fac3e3 100644 --- a/packages/handler/src/fastify.ts +++ b/packages/handler/src/fastify.ts @@ -186,10 +186,7 @@ export const createHandler = (params: CreateHandlerParams) => { */ const app = fastify({ bodyLimit: 536870912, // 512MB - - // TODO: in the near future, pass own Pino logger instance. - logger: false, - + disableRequestLogging: true, ...(params.options || {}) }); diff --git a/packages/project-utils/bundling/function/watchFunction.js b/packages/project-utils/bundling/function/watchFunction.js index 8dfd6fca0de..22fccbf6f45 100644 --- a/packages/project-utils/bundling/function/watchFunction.js +++ b/packages/project-utils/bundling/function/watchFunction.js @@ -1,4 +1,3 @@ -const WebpackBar = require("webpackbar"); const { getProjectApplication } = require("@webiny/cli/utils"); module.exports = async options => { @@ -31,18 +30,6 @@ module.exports = async options => { webpackConfig = overrides.webpack(webpackConfig); } - // We remove the WebpackBar plugin, as it's not needed in watch mode. This is mostly - // because of the fact that, usually, when working on AWS Lambda function code, you're - // also redeploying the function. When watching with deployments enabled, we're showing - // our special watch command output, where Webpackbar doesn't work well. - const webpackBarPluginIndex = webpackConfig.plugins.findIndex( - plugin => plugin instanceof WebpackBar - ); - const usesWebpackBar = webpackBarPluginIndex > -1; - if (usesWebpackBar) { - webpackConfig.plugins.splice(webpackBarPluginIndex, 1); - } - return new Promise(async (resolve, reject) => { options.logs && console.log("Compiling..."); return webpack(webpackConfig).watch({}, async (err, stats) => { diff --git a/packages/pulumi-aws/package.json b/packages/pulumi-aws/package.json index ff4b5a39c6a..c27d5c264f9 100644 --- a/packages/pulumi-aws/package.json +++ b/packages/pulumi-aws/package.json @@ -31,6 +31,7 @@ "@webiny/api-page-builder": "0.0.0", "@webiny/aws-layers": "0.0.0", "@webiny/cli": "0.0.0", + "@webiny/feature-flags": "0.0.0", "@webiny/project-utils": "0.0.0", "chalk": "^4.1.0", "lodash": "^4.17.21", diff --git a/packages/pulumi-aws/src/apps/core/WatchCommand.ts b/packages/pulumi-aws/src/apps/core/WatchCommand.ts new file mode 100644 index 00000000000..1669d836574 --- /dev/null +++ b/packages/pulumi-aws/src/apps/core/WatchCommand.ts @@ -0,0 +1,110 @@ +import * as aws from "@pulumi/aws"; +import { createAppModule, PulumiApp } from "@webiny/pulumi"; +import { LAMBDA_RUNTIME } from "~/constants"; +import * as pulumi from "@pulumi/pulumi"; +import path from "path"; +import { CoreVpc } from "~/apps"; + +export interface WatchCommandParams { + deploymentId: pulumi.Output; +} + +export const WatchCommand = createAppModule({ + name: "WatchCommand", + config(app: PulumiApp, params: WatchCommandParams) { + const roleName = "iot-authorizer-lambda-role"; + + const role = app.addResource(aws.iam.Role, { + name: roleName, + config: { + assumeRolePolicy: { + Version: "2012-10-17", + Statement: [ + { + Action: "sts:AssumeRole", + Principal: { + Service: "lambda.amazonaws.com" + }, + Effect: "Allow" + } + ] + } + }, + meta: { isLambdaFunctionRole: true } + }); + + const vpc = app.getModule(CoreVpc, { optional: true }); + + // Only use `AWSLambdaVPCAccessExecutionRole` policy if VPC feature is enabled. + if (vpc) { + app.addResource(aws.iam.RolePolicyAttachment, { + name: `${roleName}-AWSLambdaVPCAccessExecutionRole`, + config: { + role: role.output, + policyArn: aws.iam.ManagedPolicy.AWSLambdaVPCAccessExecutionRole + } + }); + } else { + app.addResource(aws.iam.RolePolicyAttachment, { + name: `${roleName}-AWSLambdaBasicExecutionRole`, + config: { + role: role.output, + policyArn: aws.iam.ManagedPolicy.AWSLambdaBasicExecutionRole + } + }); + } + + const iotAuthorizerFunction = app.addResource(aws.lambda.Function, { + name: "watch-command-iot-authorizer", + config: { + role: role.output.arn, + runtime: LAMBDA_RUNTIME, + handler: "handler.handler", + timeout: 10, + memorySize: 128, + description: "Authorizes 'webiny watch' command communication.", + code: new pulumi.asset.AssetArchive({ + ".": new pulumi.asset.FileArchive(path.join(__dirname, "webinyWatchCommand")) + }), + environment: { + variables: { + WEBINY_WATCH_COMMAND_TOPIC: params.deploymentId.apply(deploymentId => { + return `webiny-watch-${deploymentId}`; + }) + } + }, + vpcConfig: vpc + ? { + subnetIds: vpc.subnets.private.map(s => s.output.id), + securityGroupIds: [vpc.vpc.output.defaultSecurityGroupId] + } + : undefined + } + }); + + const iotAuthorizer = app.addResource(aws.iot.Authorizer, { + name: "watch-command-iot-authorizer", + config: { + signingDisabled: true, + authorizerFunctionArn: iotAuthorizerFunction.output.arn, + status: "ACTIVE" + } + }); + + app.addResource(aws.lambda.Permission, { + name: "webiny-watch-iot-authorizer", + config: { + principal: "iot.amazonaws.com", + function: iotAuthorizerFunction.output.arn, + sourceArn: iotAuthorizer.output.arn, + action: "lambda:InvokeFunction" + } + }); + + app.addOutputs({ + iotAuthorizerName: iotAuthorizer.output.name + }); + + return { iotAuthorizerFunction }; + } +}); diff --git a/packages/pulumi-aws/src/apps/core/createCorePulumiApp.ts b/packages/pulumi-aws/src/apps/core/createCorePulumiApp.ts index 3ec05be5ee8..805ba687fac 100644 --- a/packages/pulumi-aws/src/apps/core/createCorePulumiApp.ts +++ b/packages/pulumi-aws/src/apps/core/createCorePulumiApp.ts @@ -7,10 +7,13 @@ import { OpenSearch } from "./CoreOpenSearch"; import { CoreEventBus } from "./CoreEventBus"; import { CoreFileManger } from "./CoreFileManager"; import { CoreVpc } from "./CoreVpc"; +import { WatchCommand } from "./WatchCommand"; import { tagResources } from "~/utils"; import { withServiceManifest } from "~/utils/withServiceManifest"; import { addServiceManifestTableItem, TableDefinition } from "~/utils/addServiceManifestTableItem"; import { DEFAULT_PROD_ENV_NAMES } from "~/constants"; +import * as random from "@pulumi/random"; +import { featureFlags } from "@webiny/feature-flags"; export type CorePulumiApp = ReturnType; @@ -85,6 +88,8 @@ export function createCorePulumiApp(projectAppParams: CreateCorePulumiAppParams path: "apps/core", config: projectAppParams, program: async app => { + const deploymentId = new random.RandomId("deploymentId", { byteLength: 8 }); + let searchEngineType: "openSearch" | "elasticSearch" | null = null; let searchEngineParams: | CreateCorePulumiAppParams["openSearch"] @@ -165,7 +170,14 @@ export function createCorePulumiApp(projectAppParams: CreateCorePulumiAppParams elasticSearch = app.addModule(ElasticSearch, { protect }); } + if (featureFlags.newWatchCommand) { + app.addModule(WatchCommand, { + deploymentId: deploymentId.hex + }); + } + app.addOutputs({ + deploymentId: deploymentId.hex, region: aws.config.region, fileManagerBucketId: fileManagerBucket.output.id, primaryDynamodbTableArn: dynamoDbTable.output.arn, diff --git a/packages/pulumi-aws/src/apps/core/webinyWatchCommand/handler.js b/packages/pulumi-aws/src/apps/core/webinyWatchCommand/handler.js new file mode 100644 index 00000000000..a9abf4b8d23 --- /dev/null +++ b/packages/pulumi-aws/src/apps/core/webinyWatchCommand/handler.js @@ -0,0 +1,44 @@ +exports.handler = async event => { + const urlParams = new URLSearchParams(event.protocolData.http.queryString); + + const WEBINY_WATCH_COMMAND_TOPIC = process.env.WEBINY_WATCH_COMMAND_TOPIC; + if (urlParams.get("x-webiny-watch-command-topic") !== WEBINY_WATCH_COMMAND_TOPIC) { + return { + isAuthenticated: false + }; + } + + return { + isAuthenticated: true, + principalId: "Unauthenticated", + policyDocuments: [ + { + Version: "2012-10-17", + Statement: [ + { + Effect: "Allow", + Action: "iot:Connect", + Resource: "arn:aws:iot:*:*:client/*" + }, + { + Effect: "Allow", + Action: "iot:Subscribe", + Resource: [`arn:aws:iot:*:*:topicfilter/${WEBINY_WATCH_COMMAND_TOPIC}`] + }, + { + Effect: "Allow", + Action: "iot:Publish", + Resource: [`arn:aws:iot:*:*:topic/${WEBINY_WATCH_COMMAND_TOPIC}`] + }, + { + Effect: "Allow", + Action: ["iot:Receive"], + Resource: [`arn:aws:iot:*:*:topic/${WEBINY_WATCH_COMMAND_TOPIC}`] + } + ] + } + ], + disconnectAfterInSeconds: 3600, + refreshAfterInSeconds: 300 + }; +}; diff --git a/packages/pulumi-aws/tsconfig.build.json b/packages/pulumi-aws/tsconfig.build.json index 47bb33a2234..95d2ea4294f 100644 --- a/packages/pulumi-aws/tsconfig.build.json +++ b/packages/pulumi-aws/tsconfig.build.json @@ -3,6 +3,7 @@ "include": ["src"], "references": [ { "path": "../aws-sdk/tsconfig.build.json" }, + { "path": "../feature-flags/tsconfig.build.json" }, { "path": "../pulumi/tsconfig.build.json" }, { "path": "../api-page-builder/tsconfig.build.json" } ], diff --git a/packages/pulumi-aws/tsconfig.json b/packages/pulumi-aws/tsconfig.json index 510e36e93d2..5d3c7a0055d 100644 --- a/packages/pulumi-aws/tsconfig.json +++ b/packages/pulumi-aws/tsconfig.json @@ -3,6 +3,7 @@ "include": ["src", "__tests__"], "references": [ { "path": "../aws-sdk" }, + { "path": "../feature-flags" }, { "path": "../pulumi" }, { "path": "../api-page-builder" } ], @@ -15,6 +16,8 @@ "~tests/*": ["./__tests__/*"], "@webiny/aws-sdk/*": ["../aws-sdk/src/*"], "@webiny/aws-sdk": ["../aws-sdk/src"], + "@webiny/feature-flags/*": ["../feature-flags/src/*"], + "@webiny/feature-flags": ["../feature-flags/src"], "@webiny/pulumi/*": ["../pulumi/src/*"], "@webiny/pulumi": ["../pulumi/src"], "@webiny/api-page-builder/*": ["../api-page-builder/src/*"], diff --git a/packages/serverless-cms-aws/src/api/plugins/injectWcpTelemetryClientCode.ts b/packages/serverless-cms-aws/src/api/plugins/injectWcpTelemetryClientCode.ts index b01e956663e..1350eb22eb1 100644 --- a/packages/serverless-cms-aws/src/api/plugins/injectWcpTelemetryClientCode.ts +++ b/packages/serverless-cms-aws/src/api/plugins/injectWcpTelemetryClientCode.ts @@ -2,21 +2,16 @@ import * as fs from "fs"; import * as path from "path"; import fetch from "node-fetch"; import { getWcpApiUrl } from "@webiny/wcp"; -import { CliContext } from "@webiny/cli/types"; +import { AfterBuildPlugin } from "@webiny/cli-plugin-deploy-pulumi/plugins"; -export const injectWcpTelemetryClientCode = { - type: "hook-after-build", - name: "hook-after-build-inject-wcp-telemetry", - async hook({ projectApplication }: Record, context: CliContext) { +export const injectWcpTelemetryClientCode = new AfterBuildPlugin( + async ({ projectApplication }, context) => { if (!projectApplication.project.config.id) { return; } const workspacePath = projectApplication.paths.workspace; - const handlersPaths = [ - path.join(workspacePath, "graphql", "build"), - path.join(workspacePath, "headlessCMS", "build") - ]; + const handlersPaths = [path.join(workspacePath, "graphql", "build")]; // 1. Download telemetry client code. const latestTelemetryClientUrl = getWcpApiUrl("/clients/latest.js"); @@ -41,4 +36,6 @@ export const injectWcpTelemetryClientCode = { context.warning(`WCP client is unavailable; telemetry was disabled.`); } } -}; +); + +injectWcpTelemetryClientCode.name = "api.after-build.inject-wcp-telemetry-client-code"; diff --git a/packages/serverless-cms-aws/src/createApiApp.ts b/packages/serverless-cms-aws/src/createApiApp.ts index 999f34d58b7..d8f31a91166 100644 --- a/packages/serverless-cms-aws/src/createApiApp.ts +++ b/packages/serverless-cms-aws/src/createApiApp.ts @@ -40,7 +40,12 @@ export function createApiApp(projectAppParams: CreateApiAppParams = {}) { // Default args for the "yarn webiny watch ..." command. watch: { // Watch five levels of dependencies, starting from this project application. - depth: 5 + depth: 5, + + // By default, we only enable local development for the "graphql" function. + // This can be changed down the line by passing another set of values + // to the "watch" command. + function: "graphql" } }, pulumi: createApiPulumiApp(projectAppParams), diff --git a/packages/serverless-cms-aws/src/createCoreApp.ts b/packages/serverless-cms-aws/src/createCoreApp.ts index 3b70ec64dd3..97fda82e5fc 100644 --- a/packages/serverless-cms-aws/src/createCoreApp.ts +++ b/packages/serverless-cms-aws/src/createCoreApp.ts @@ -25,6 +25,15 @@ export function createCoreApp(projectAppParams: CreateCoreAppParams = {}) { id: "core", name: "Core", description: "Your project's stateful cloud infrastructure resources.", + cli: { + // Default args for the "yarn webiny watch ..." command (we don't need the deploy option while developing). + watch: { + // We disable local development for all AWS Lambda functions. + // This can be changed down the line by passing another set of values + // to the "watch" command (for example `-f ps-render-subscriber`). + function: "none" + } + }, pulumi: createCorePulumiApp(projectAppParams), plugins: [builtInPlugins, customPlugins] }; diff --git a/packages/serverless-cms-aws/src/createWebsiteApp.ts b/packages/serverless-cms-aws/src/createWebsiteApp.ts index 21439c64824..4d35f250563 100644 --- a/packages/serverless-cms-aws/src/createWebsiteApp.ts +++ b/packages/serverless-cms-aws/src/createWebsiteApp.ts @@ -30,7 +30,10 @@ export function createWebsiteApp(projectAppParams: CreateWebsiteAppParams = {}) cli: { // Default args for the "yarn webiny watch ..." command (we don't need the deploy option while developing). watch: { - deploy: false + // We disable local development for all AWS Lambda functions. + // This can be changed down the line by passing another set of values + // to the "watch" command (for example `-f ps-render-subscriber`). + function: "none" } }, pulumi: createWebsitePulumiApp(projectAppParams), diff --git a/packages/ui/src/Button/Button.tsx b/packages/ui/src/Button/Button.tsx index 4e40a26c7db..16ac2660594 100644 --- a/packages/ui/src/Button/Button.tsx +++ b/packages/ui/src/Button/Button.tsx @@ -142,9 +142,9 @@ export const ButtonSecondary = (props: ButtonProps) => { }; export type ButtonFloatingProps = ButtonProps & - FabProps & { - label?: React.ReactNode; - icon?: React.ReactNode; + Omit & { + label?: string | JSX.Element; + icon?: JSX.Element; onMouseDown?: (e: SyntheticEvent) => void; onMouseUp?: (e: SyntheticEvent) => void; }; diff --git a/webiny.project.ts b/webiny.project.ts index a765f7b2c39..865fe882f10 100644 --- a/webiny.project.ts +++ b/webiny.project.ts @@ -54,6 +54,7 @@ export default { featureFlags: { copyPermissionsButton: true, - experimentalAdminOmniSearch: true + experimentalAdminOmniSearch: true, + newWatchCommand: true } }; diff --git a/yarn.lock b/yarn.lock index 4b59d232801..3244b0e431c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -880,6 +880,56 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/client-iot@npm:^3.540.0": + version: 3.596.0 + resolution: "@aws-sdk/client-iot@npm:3.596.0" + dependencies: + "@aws-crypto/sha256-browser": 3.0.0 + "@aws-crypto/sha256-js": 3.0.0 + "@aws-sdk/client-sso-oidc": 3.596.0 + "@aws-sdk/client-sts": 3.596.0 + "@aws-sdk/core": 3.592.0 + "@aws-sdk/credential-provider-node": 3.596.0 + "@aws-sdk/middleware-host-header": 3.577.0 + "@aws-sdk/middleware-logger": 3.577.0 + "@aws-sdk/middleware-recursion-detection": 3.577.0 + "@aws-sdk/middleware-user-agent": 3.587.0 + "@aws-sdk/region-config-resolver": 3.587.0 + "@aws-sdk/types": 3.577.0 + "@aws-sdk/util-endpoints": 3.587.0 + "@aws-sdk/util-user-agent-browser": 3.577.0 + "@aws-sdk/util-user-agent-node": 3.587.0 + "@smithy/config-resolver": ^3.0.1 + "@smithy/core": ^2.2.0 + "@smithy/fetch-http-handler": ^3.0.1 + "@smithy/hash-node": ^3.0.0 + "@smithy/invalid-dependency": ^3.0.0 + "@smithy/middleware-content-length": ^3.0.0 + "@smithy/middleware-endpoint": ^3.0.1 + "@smithy/middleware-retry": ^3.0.3 + "@smithy/middleware-serde": ^3.0.0 + "@smithy/middleware-stack": ^3.0.0 + "@smithy/node-config-provider": ^3.1.0 + "@smithy/node-http-handler": ^3.0.0 + "@smithy/protocol-http": ^4.0.0 + "@smithy/smithy-client": ^3.1.1 + "@smithy/types": ^3.0.0 + "@smithy/url-parser": ^3.0.0 + "@smithy/util-base64": ^3.0.0 + "@smithy/util-body-length-browser": ^3.0.0 + "@smithy/util-body-length-node": ^3.0.0 + "@smithy/util-defaults-mode-browser": ^3.0.3 + "@smithy/util-defaults-mode-node": ^3.0.3 + "@smithy/util-endpoints": ^2.0.1 + "@smithy/util-middleware": ^3.0.0 + "@smithy/util-retry": ^3.0.0 + "@smithy/util-utf8": ^3.0.0 + tslib: ^2.6.2 + uuid: ^9.0.1 + checksum: 1ac428d7d9f84ede02dd5589f35c47eb4daa049cc8382004d16edc044e6b2f4b93bf3630a238bb648765b6baf63318bf86c5dd28decc0437c1dddf7691ae7448 + languageName: node + linkType: hard + "@aws-sdk/client-lambda@npm:^3.540.0": version: 3.540.0 resolution: "@aws-sdk/client-lambda@npm:3.540.0" @@ -1146,6 +1196,54 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/client-sso-oidc@npm:3.596.0": + version: 3.596.0 + resolution: "@aws-sdk/client-sso-oidc@npm:3.596.0" + dependencies: + "@aws-crypto/sha256-browser": 3.0.0 + "@aws-crypto/sha256-js": 3.0.0 + "@aws-sdk/client-sts": 3.596.0 + "@aws-sdk/core": 3.592.0 + "@aws-sdk/credential-provider-node": 3.596.0 + "@aws-sdk/middleware-host-header": 3.577.0 + "@aws-sdk/middleware-logger": 3.577.0 + "@aws-sdk/middleware-recursion-detection": 3.577.0 + "@aws-sdk/middleware-user-agent": 3.587.0 + "@aws-sdk/region-config-resolver": 3.587.0 + "@aws-sdk/types": 3.577.0 + "@aws-sdk/util-endpoints": 3.587.0 + "@aws-sdk/util-user-agent-browser": 3.577.0 + "@aws-sdk/util-user-agent-node": 3.587.0 + "@smithy/config-resolver": ^3.0.1 + "@smithy/core": ^2.2.0 + "@smithy/fetch-http-handler": ^3.0.1 + "@smithy/hash-node": ^3.0.0 + "@smithy/invalid-dependency": ^3.0.0 + "@smithy/middleware-content-length": ^3.0.0 + "@smithy/middleware-endpoint": ^3.0.1 + "@smithy/middleware-retry": ^3.0.3 + "@smithy/middleware-serde": ^3.0.0 + "@smithy/middleware-stack": ^3.0.0 + "@smithy/node-config-provider": ^3.1.0 + "@smithy/node-http-handler": ^3.0.0 + "@smithy/protocol-http": ^4.0.0 + "@smithy/smithy-client": ^3.1.1 + "@smithy/types": ^3.0.0 + "@smithy/url-parser": ^3.0.0 + "@smithy/util-base64": ^3.0.0 + "@smithy/util-body-length-browser": ^3.0.0 + "@smithy/util-body-length-node": ^3.0.0 + "@smithy/util-defaults-mode-browser": ^3.0.3 + "@smithy/util-defaults-mode-node": ^3.0.3 + "@smithy/util-endpoints": ^2.0.1 + "@smithy/util-middleware": ^3.0.0 + "@smithy/util-retry": ^3.0.0 + "@smithy/util-utf8": ^3.0.0 + tslib: ^2.6.2 + checksum: ae2e6f60eec488b62c34aab4cec770c89c0b8922ee23771f40a1fd407900b97a466196f261bad9696d187d3c8dccccc734d256d6686a71c9c5ac8c6373c2df22 + languageName: node + linkType: hard + "@aws-sdk/client-sso@npm:3.540.0": version: 3.540.0 resolution: "@aws-sdk/client-sso@npm:3.540.0" @@ -1192,6 +1290,52 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/client-sso@npm:3.592.0": + version: 3.592.0 + resolution: "@aws-sdk/client-sso@npm:3.592.0" + dependencies: + "@aws-crypto/sha256-browser": 3.0.0 + "@aws-crypto/sha256-js": 3.0.0 + "@aws-sdk/core": 3.592.0 + "@aws-sdk/middleware-host-header": 3.577.0 + "@aws-sdk/middleware-logger": 3.577.0 + "@aws-sdk/middleware-recursion-detection": 3.577.0 + "@aws-sdk/middleware-user-agent": 3.587.0 + "@aws-sdk/region-config-resolver": 3.587.0 + "@aws-sdk/types": 3.577.0 + "@aws-sdk/util-endpoints": 3.587.0 + "@aws-sdk/util-user-agent-browser": 3.577.0 + "@aws-sdk/util-user-agent-node": 3.587.0 + "@smithy/config-resolver": ^3.0.1 + "@smithy/core": ^2.2.0 + "@smithy/fetch-http-handler": ^3.0.1 + "@smithy/hash-node": ^3.0.0 + "@smithy/invalid-dependency": ^3.0.0 + "@smithy/middleware-content-length": ^3.0.0 + "@smithy/middleware-endpoint": ^3.0.1 + "@smithy/middleware-retry": ^3.0.3 + "@smithy/middleware-serde": ^3.0.0 + "@smithy/middleware-stack": ^3.0.0 + "@smithy/node-config-provider": ^3.1.0 + "@smithy/node-http-handler": ^3.0.0 + "@smithy/protocol-http": ^4.0.0 + "@smithy/smithy-client": ^3.1.1 + "@smithy/types": ^3.0.0 + "@smithy/url-parser": ^3.0.0 + "@smithy/util-base64": ^3.0.0 + "@smithy/util-body-length-browser": ^3.0.0 + "@smithy/util-body-length-node": ^3.0.0 + "@smithy/util-defaults-mode-browser": ^3.0.3 + "@smithy/util-defaults-mode-node": ^3.0.3 + "@smithy/util-endpoints": ^2.0.1 + "@smithy/util-middleware": ^3.0.0 + "@smithy/util-retry": ^3.0.0 + "@smithy/util-utf8": ^3.0.0 + tslib: ^2.6.2 + checksum: e993043e8438e1cc0445b61de485951e957f0889135b3e34f79b7080852f369b13d516dc6c027f8d3c8ad95cc41666f63f0543e04c10ec9e120b3e025a34367e + languageName: node + linkType: hard + "@aws-sdk/client-sts@npm:3.540.0, @aws-sdk/client-sts@npm:^3.540.0": version: 3.540.0 resolution: "@aws-sdk/client-sts@npm:3.540.0" @@ -1240,6 +1384,54 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/client-sts@npm:3.596.0": + version: 3.596.0 + resolution: "@aws-sdk/client-sts@npm:3.596.0" + dependencies: + "@aws-crypto/sha256-browser": 3.0.0 + "@aws-crypto/sha256-js": 3.0.0 + "@aws-sdk/client-sso-oidc": 3.596.0 + "@aws-sdk/core": 3.592.0 + "@aws-sdk/credential-provider-node": 3.596.0 + "@aws-sdk/middleware-host-header": 3.577.0 + "@aws-sdk/middleware-logger": 3.577.0 + "@aws-sdk/middleware-recursion-detection": 3.577.0 + "@aws-sdk/middleware-user-agent": 3.587.0 + "@aws-sdk/region-config-resolver": 3.587.0 + "@aws-sdk/types": 3.577.0 + "@aws-sdk/util-endpoints": 3.587.0 + "@aws-sdk/util-user-agent-browser": 3.577.0 + "@aws-sdk/util-user-agent-node": 3.587.0 + "@smithy/config-resolver": ^3.0.1 + "@smithy/core": ^2.2.0 + "@smithy/fetch-http-handler": ^3.0.1 + "@smithy/hash-node": ^3.0.0 + "@smithy/invalid-dependency": ^3.0.0 + "@smithy/middleware-content-length": ^3.0.0 + "@smithy/middleware-endpoint": ^3.0.1 + "@smithy/middleware-retry": ^3.0.3 + "@smithy/middleware-serde": ^3.0.0 + "@smithy/middleware-stack": ^3.0.0 + "@smithy/node-config-provider": ^3.1.0 + "@smithy/node-http-handler": ^3.0.0 + "@smithy/protocol-http": ^4.0.0 + "@smithy/smithy-client": ^3.1.1 + "@smithy/types": ^3.0.0 + "@smithy/url-parser": ^3.0.0 + "@smithy/util-base64": ^3.0.0 + "@smithy/util-body-length-browser": ^3.0.0 + "@smithy/util-body-length-node": ^3.0.0 + "@smithy/util-defaults-mode-browser": ^3.0.3 + "@smithy/util-defaults-mode-node": ^3.0.3 + "@smithy/util-endpoints": ^2.0.1 + "@smithy/util-middleware": ^3.0.0 + "@smithy/util-retry": ^3.0.0 + "@smithy/util-utf8": ^3.0.0 + tslib: ^2.6.2 + checksum: 49dcdfbc9df1012a48f1c0eb83d9ccfd172612369d3cfe6ef16d29fcd5123b4379bf53535f7cacb7bc88ff2a8c461b698d22cda1421e6050eef3db25eb1f7f81 + languageName: node + linkType: hard + "@aws-sdk/config-resolver@npm:3.6.1": version: 3.6.1 resolution: "@aws-sdk/config-resolver@npm:3.6.1" @@ -1266,6 +1458,21 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/core@npm:3.592.0": + version: 3.592.0 + resolution: "@aws-sdk/core@npm:3.592.0" + dependencies: + "@smithy/core": ^2.2.0 + "@smithy/protocol-http": ^4.0.0 + "@smithy/signature-v4": ^3.0.0 + "@smithy/smithy-client": ^3.1.1 + "@smithy/types": ^3.0.0 + fast-xml-parser: 4.2.5 + tslib: ^2.6.2 + checksum: 10ebbf695358e7bc3d2a84a7add3f52f479605c1ab6d2bd6970aa5846daebff2febf5156fbc5b275e0593c32d973a9f88f528df8280377557a48b87d1b9be5a3 + languageName: node + linkType: hard + "@aws-sdk/credential-provider-cognito-identity@npm:3.540.0": version: 3.540.0 resolution: "@aws-sdk/credential-provider-cognito-identity@npm:3.540.0" @@ -1303,6 +1510,18 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-env@npm:3.587.0": + version: 3.587.0 + resolution: "@aws-sdk/credential-provider-env@npm:3.587.0" + dependencies: + "@aws-sdk/types": 3.577.0 + "@smithy/property-provider": ^3.1.0 + "@smithy/types": ^3.0.0 + tslib: ^2.6.2 + checksum: 3062e39c2b0e15eafea50fc2d182de41cba0c4845714b941dd7fb0b75605d7bae51d1919b2b1fdade0c3ec1e470d57ccb00d939898152ed1fbc2c2d265d400b1 + languageName: node + linkType: hard + "@aws-sdk/credential-provider-env@npm:3.6.1": version: 3.6.1 resolution: "@aws-sdk/credential-provider-env@npm:3.6.1" @@ -1331,6 +1550,23 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-http@npm:3.596.0": + version: 3.596.0 + resolution: "@aws-sdk/credential-provider-http@npm:3.596.0" + dependencies: + "@aws-sdk/types": 3.577.0 + "@smithy/fetch-http-handler": ^3.0.1 + "@smithy/node-http-handler": ^3.0.0 + "@smithy/property-provider": ^3.1.0 + "@smithy/protocol-http": ^4.0.0 + "@smithy/smithy-client": ^3.1.1 + "@smithy/types": ^3.0.0 + "@smithy/util-stream": ^3.0.1 + tslib: ^2.6.2 + checksum: 8c83fb7bb6110e43c9bacb94cabf5db23475cbdf7267d1929c3537996ffcc92e9c434df38fd873662d6b148f2c137bc2401647f031d07ffa32f208f5c92d81c8 + languageName: node + linkType: hard + "@aws-sdk/credential-provider-imds@npm:3.6.1": version: 3.6.1 resolution: "@aws-sdk/credential-provider-imds@npm:3.6.1" @@ -1361,6 +1597,27 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-ini@npm:3.596.0": + version: 3.596.0 + resolution: "@aws-sdk/credential-provider-ini@npm:3.596.0" + dependencies: + "@aws-sdk/credential-provider-env": 3.587.0 + "@aws-sdk/credential-provider-http": 3.596.0 + "@aws-sdk/credential-provider-process": 3.587.0 + "@aws-sdk/credential-provider-sso": 3.592.0 + "@aws-sdk/credential-provider-web-identity": 3.587.0 + "@aws-sdk/types": 3.577.0 + "@smithy/credential-provider-imds": ^3.1.0 + "@smithy/property-provider": ^3.1.0 + "@smithy/shared-ini-file-loader": ^3.1.0 + "@smithy/types": ^3.0.0 + tslib: ^2.6.2 + peerDependencies: + "@aws-sdk/client-sts": ^3.596.0 + checksum: 24e3e1bd6ad295803d729cd36b871ee750d1498c2e1a1480eee1a15ec56e6d79fe1effc827c044900161b23521ca518903ea24ddb4e66a546a65c1d82d6f75bb + languageName: node + linkType: hard + "@aws-sdk/credential-provider-ini@npm:3.6.1": version: 3.6.1 resolution: "@aws-sdk/credential-provider-ini@npm:3.6.1" @@ -1393,6 +1650,26 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-node@npm:3.596.0": + version: 3.596.0 + resolution: "@aws-sdk/credential-provider-node@npm:3.596.0" + dependencies: + "@aws-sdk/credential-provider-env": 3.587.0 + "@aws-sdk/credential-provider-http": 3.596.0 + "@aws-sdk/credential-provider-ini": 3.596.0 + "@aws-sdk/credential-provider-process": 3.587.0 + "@aws-sdk/credential-provider-sso": 3.592.0 + "@aws-sdk/credential-provider-web-identity": 3.587.0 + "@aws-sdk/types": 3.577.0 + "@smithy/credential-provider-imds": ^3.1.0 + "@smithy/property-provider": ^3.1.0 + "@smithy/shared-ini-file-loader": ^3.1.0 + "@smithy/types": ^3.0.0 + tslib: ^2.6.2 + checksum: 21ef971a7ff304ed9ab9b52e46f4296ea4c2bca0a5973a1e7044dfab4e74a5b1e3c0f45cf541789e02f177677464973920abcd9cdecd3e13ff10b493cfd99869 + languageName: node + linkType: hard + "@aws-sdk/credential-provider-node@npm:3.6.1": version: 3.6.1 resolution: "@aws-sdk/credential-provider-node@npm:3.6.1" @@ -1422,6 +1699,19 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-process@npm:3.587.0": + version: 3.587.0 + resolution: "@aws-sdk/credential-provider-process@npm:3.587.0" + dependencies: + "@aws-sdk/types": 3.577.0 + "@smithy/property-provider": ^3.1.0 + "@smithy/shared-ini-file-loader": ^3.1.0 + "@smithy/types": ^3.0.0 + tslib: ^2.6.2 + checksum: 20add2fa4ecb513a8f7c376284248bf16601af52d56f30a20b9cb6c77ed811162b2d1d0c364fe27bba50bc6ac1a395c50057351c1d2107837358ef3974d7ff9a + languageName: node + linkType: hard + "@aws-sdk/credential-provider-process@npm:3.6.1": version: 3.6.1 resolution: "@aws-sdk/credential-provider-process@npm:3.6.1" @@ -1450,6 +1740,21 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-sso@npm:3.592.0": + version: 3.592.0 + resolution: "@aws-sdk/credential-provider-sso@npm:3.592.0" + dependencies: + "@aws-sdk/client-sso": 3.592.0 + "@aws-sdk/token-providers": 3.587.0 + "@aws-sdk/types": 3.577.0 + "@smithy/property-provider": ^3.1.0 + "@smithy/shared-ini-file-loader": ^3.1.0 + "@smithy/types": ^3.0.0 + tslib: ^2.6.2 + checksum: 5bc46040e521789a091b06d2d09931bd4254a3ece63f3370ec448cd58d0185821a39369efe47478cd6a0cd8911c4d93e52414ecca91ff72ed95b8813b619d93d + languageName: node + linkType: hard + "@aws-sdk/credential-provider-web-identity@npm:3.540.0": version: 3.540.0 resolution: "@aws-sdk/credential-provider-web-identity@npm:3.540.0" @@ -1463,6 +1768,20 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-web-identity@npm:3.587.0": + version: 3.587.0 + resolution: "@aws-sdk/credential-provider-web-identity@npm:3.587.0" + dependencies: + "@aws-sdk/types": 3.577.0 + "@smithy/property-provider": ^3.1.0 + "@smithy/types": ^3.0.0 + tslib: ^2.6.2 + peerDependencies: + "@aws-sdk/client-sts": ^3.587.0 + checksum: bfade039dcf35041fc020832363840e8fd6d7e21afbab35945852f62bb718bc954a59cb78911ea3ce6f9aaca4184f4934ba269f713ff811d06fcef1332af8cba + languageName: node + linkType: hard + "@aws-sdk/credential-providers@npm:^3.540.0": version: 3.540.0 resolution: "@aws-sdk/credential-providers@npm:3.540.0" @@ -1651,6 +1970,18 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/middleware-host-header@npm:3.577.0": + version: 3.577.0 + resolution: "@aws-sdk/middleware-host-header@npm:3.577.0" + dependencies: + "@aws-sdk/types": 3.577.0 + "@smithy/protocol-http": ^4.0.0 + "@smithy/types": ^3.0.0 + tslib: ^2.6.2 + checksum: f325612558d8d56a13e0593a78a1807c55dac5913313ed53d0a09a1c4bc771976e74e1738bd46068adeea755c35f72b19c2f902ecad1ff1ae52290972cf9fe88 + languageName: node + linkType: hard + "@aws-sdk/middleware-host-header@npm:3.6.1": version: 3.6.1 resolution: "@aws-sdk/middleware-host-header@npm:3.6.1" @@ -1684,6 +2015,17 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/middleware-logger@npm:3.577.0": + version: 3.577.0 + resolution: "@aws-sdk/middleware-logger@npm:3.577.0" + dependencies: + "@aws-sdk/types": 3.577.0 + "@smithy/types": ^3.0.0 + tslib: ^2.6.2 + checksum: 142e993c82997391fb9c66244f2add15ad71e626b9aacf36a81ea369d33e3a1375ece09dd6315bf8fcaf4d8dcbaae340237088f1091f12a8f56740eddb32090a + languageName: node + linkType: hard + "@aws-sdk/middleware-logger@npm:3.6.1": version: 3.6.1 resolution: "@aws-sdk/middleware-logger@npm:3.6.1" @@ -1706,6 +2048,18 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/middleware-recursion-detection@npm:3.577.0": + version: 3.577.0 + resolution: "@aws-sdk/middleware-recursion-detection@npm:3.577.0" + dependencies: + "@aws-sdk/types": 3.577.0 + "@smithy/protocol-http": ^4.0.0 + "@smithy/types": ^3.0.0 + tslib: ^2.6.2 + checksum: 9655fe7b9a071a9a62397871a7bc529ebfff372a2cd1997b78c22ff320b0cdf0224881c122375e0b97e7307a167d437f438f6c414db71c882afb66a0510a519e + languageName: node + linkType: hard + "@aws-sdk/middleware-retry@npm:3.6.1": version: 3.6.1 resolution: "@aws-sdk/middleware-retry@npm:3.6.1" @@ -1821,6 +2175,19 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/middleware-user-agent@npm:3.587.0": + version: 3.587.0 + resolution: "@aws-sdk/middleware-user-agent@npm:3.587.0" + dependencies: + "@aws-sdk/types": 3.577.0 + "@aws-sdk/util-endpoints": 3.587.0 + "@smithy/protocol-http": ^4.0.0 + "@smithy/types": ^3.0.0 + tslib: ^2.6.2 + checksum: 0a01579c20dc3e574e58578cf255169b7a8fc8cb2f38cd5d0d6ed282131d953d0ccd578d137a8d39c617b7722de7e194fce9647b662490935d5c8da01354ba5e + languageName: node + linkType: hard + "@aws-sdk/middleware-user-agent@npm:3.6.1": version: 3.6.1 resolution: "@aws-sdk/middleware-user-agent@npm:3.6.1" @@ -1912,6 +2279,20 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/region-config-resolver@npm:3.587.0": + version: 3.587.0 + resolution: "@aws-sdk/region-config-resolver@npm:3.587.0" + dependencies: + "@aws-sdk/types": 3.577.0 + "@smithy/node-config-provider": ^3.1.0 + "@smithy/types": ^3.0.0 + "@smithy/util-config-provider": ^3.0.0 + "@smithy/util-middleware": ^3.0.0 + tslib: ^2.6.2 + checksum: aa9bae8d88a7d3dc45017b8a6391942f70e95b4e16c4a6907048088f5eb49c9b77b81f084f4ed6d057eb4785ac182ee99dafa9cf3072d5aba3d19c02005abd8a + languageName: node + linkType: hard + "@aws-sdk/s3-presigned-post@npm:^3.540.0": version: 3.540.0 resolution: "@aws-sdk/s3-presigned-post@npm:3.540.0" @@ -2013,6 +2394,21 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/token-providers@npm:3.587.0": + version: 3.587.0 + resolution: "@aws-sdk/token-providers@npm:3.587.0" + dependencies: + "@aws-sdk/types": 3.577.0 + "@smithy/property-provider": ^3.1.0 + "@smithy/shared-ini-file-loader": ^3.1.0 + "@smithy/types": ^3.0.0 + tslib: ^2.6.2 + peerDependencies: + "@aws-sdk/client-sso-oidc": ^3.587.0 + checksum: 7a4d44bc413b88b933b439c2b26ac7d55a0ad26ede6b774fc659e8fb7b7f4dee555c7e478aa304983c1f4cd696825b5c47171ec5b918d54bce0146849274088c + languageName: node + linkType: hard + "@aws-sdk/types@npm:3.535.0": version: 3.535.0 resolution: "@aws-sdk/types@npm:3.535.0" @@ -2023,6 +2419,16 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/types@npm:3.577.0": + version: 3.577.0 + resolution: "@aws-sdk/types@npm:3.577.0" + dependencies: + "@smithy/types": ^3.0.0 + tslib: ^2.6.2 + checksum: d10fe1d720adf3d8b17d5c23787611e336509569df7526efa96e8901100b9279a68e30a207eff60dc5cfa011abd68d47b81e40f2d4d1a9ddfd2d3653c20e1734 + languageName: node + linkType: hard + "@aws-sdk/types@npm:3.6.1": version: 3.6.1 resolution: "@aws-sdk/types@npm:3.6.1" @@ -2141,6 +2547,18 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/util-endpoints@npm:3.587.0": + version: 3.587.0 + resolution: "@aws-sdk/util-endpoints@npm:3.587.0" + dependencies: + "@aws-sdk/types": 3.577.0 + "@smithy/types": ^3.0.0 + "@smithy/util-endpoints": ^2.0.1 + tslib: ^2.6.2 + checksum: 4b1cbfc49129b414144ad94cc947b78c6c3c061f5a39b4365d85c8a2d5e21b83ac85ab1add95b8eb64c48aed58792a486faa74887ff3a56a7a0f381bb1cbbce9 + languageName: node + linkType: hard + "@aws-sdk/util-format-url@npm:3.535.0": version: 3.535.0 resolution: "@aws-sdk/util-format-url@npm:3.535.0" @@ -2192,6 +2610,18 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/util-user-agent-browser@npm:3.577.0": + version: 3.577.0 + resolution: "@aws-sdk/util-user-agent-browser@npm:3.577.0" + dependencies: + "@aws-sdk/types": 3.577.0 + "@smithy/types": ^3.0.0 + bowser: ^2.11.0 + tslib: ^2.6.2 + checksum: 48b29b186f9d59c7ee272568cb0752834527aeccf122e4794313f84fb4c72dc65edf4bbf22f07aa7e2dde7da288e6d7ba20633edd9dbc853aca1b170bdfe1532 + languageName: node + linkType: hard + "@aws-sdk/util-user-agent-browser@npm:3.6.1": version: 3.6.1 resolution: "@aws-sdk/util-user-agent-browser@npm:3.6.1" @@ -2220,6 +2650,23 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/util-user-agent-node@npm:3.587.0": + version: 3.587.0 + resolution: "@aws-sdk/util-user-agent-node@npm:3.587.0" + dependencies: + "@aws-sdk/types": 3.577.0 + "@smithy/node-config-provider": ^3.1.0 + "@smithy/types": ^3.0.0 + tslib: ^2.6.2 + peerDependencies: + aws-crt: ">=1.0.0" + peerDependenciesMeta: + aws-crt: + optional: true + checksum: 6f963c5371de04144fbd2ed893d823bc7c9f9a9e6e40bde3a1bab82274213110b7e2542d7da0798ffa7d24031ff63b385b08799a07800a816f4c85b0c2e44abe + languageName: node + linkType: hard + "@aws-sdk/util-user-agent-node@npm:3.6.1": version: 3.6.1 resolution: "@aws-sdk/util-user-agent-node@npm:3.6.1" @@ -6415,6 +6862,15 @@ __metadata: languageName: node linkType: hard +"@babel/runtime@npm:^7.23.8, @babel/runtime@npm:^7.24.5": + version: 7.24.7 + resolution: "@babel/runtime@npm:7.24.7" + dependencies: + regenerator-runtime: ^0.14.0 + checksum: d17f29eed6f848ac15cdf4202a910b741facfb0419a9d79e5c7fa37df6362fc3227f1cc2e248cc6db5e53ddffb4caa6686c488e6e80ce3d29c36a4e74c8734ea + languageName: node + linkType: hard + "@babel/template@npm:^7.18.10, @babel/template@npm:^7.20.7, @babel/template@npm:^7.3.3": version: 7.20.7 resolution: "@babel/template@npm:7.20.7" @@ -11782,6 +12238,16 @@ __metadata: languageName: node linkType: hard +"@smithy/abort-controller@npm:^3.0.1": + version: 3.0.1 + resolution: "@smithy/abort-controller@npm:3.0.1" + dependencies: + "@smithy/types": ^3.1.0 + tslib: ^2.6.2 + checksum: a95ac89a3d8ecb98486a02895fbbd6d45f13cc00e886b7543ea09e294df2fdba8ae86805a8d9feb6b48cf3e59351fb7cdde0005e78959096f26da09c986d6b96 + languageName: node + linkType: hard + "@smithy/chunked-blob-reader-native@npm:^2.2.0": version: 2.2.0 resolution: "@smithy/chunked-blob-reader-native@npm:2.2.0" @@ -11814,6 +12280,19 @@ __metadata: languageName: node linkType: hard +"@smithy/config-resolver@npm:^3.0.1, @smithy/config-resolver@npm:^3.0.2": + version: 3.0.2 + resolution: "@smithy/config-resolver@npm:3.0.2" + dependencies: + "@smithy/node-config-provider": ^3.1.1 + "@smithy/types": ^3.1.0 + "@smithy/util-config-provider": ^3.0.0 + "@smithy/util-middleware": ^3.0.1 + tslib: ^2.6.2 + checksum: 088a9dc444e1e8ac184a490814a560107f731a0e87cd9a3e8293b506c082a93b9f2fe2b9142cdccf0766c4a4d81fe921b3938899b37971e1fcf4954760efddfb + languageName: node + linkType: hard + "@smithy/core@npm:^1.4.0": version: 1.4.0 resolution: "@smithy/core@npm:1.4.0" @@ -11830,6 +12309,22 @@ __metadata: languageName: node linkType: hard +"@smithy/core@npm:^2.2.0": + version: 2.2.1 + resolution: "@smithy/core@npm:2.2.1" + dependencies: + "@smithy/middleware-endpoint": ^3.0.2 + "@smithy/middleware-retry": ^3.0.4 + "@smithy/middleware-serde": ^3.0.1 + "@smithy/protocol-http": ^4.0.1 + "@smithy/smithy-client": ^3.1.2 + "@smithy/types": ^3.1.0 + "@smithy/util-middleware": ^3.0.1 + tslib: ^2.6.2 + checksum: 107510a1304edd2341909a085ec676df172fbfe8df81cf5f20ce2e227956dc37ccc5484699af5cc53d199a1dc86cfd80a36c760f1955b4086da0bd9a1f9a6d9c + languageName: node + linkType: hard + "@smithy/credential-provider-imds@npm:^2.3.0": version: 2.3.0 resolution: "@smithy/credential-provider-imds@npm:2.3.0" @@ -11843,6 +12338,19 @@ __metadata: languageName: node linkType: hard +"@smithy/credential-provider-imds@npm:^3.1.0, @smithy/credential-provider-imds@npm:^3.1.1": + version: 3.1.1 + resolution: "@smithy/credential-provider-imds@npm:3.1.1" + dependencies: + "@smithy/node-config-provider": ^3.1.1 + "@smithy/property-provider": ^3.1.1 + "@smithy/types": ^3.1.0 + "@smithy/url-parser": ^3.0.1 + tslib: ^2.6.2 + checksum: 5da3bce01557c19cc3d52a92aa33c6cbbbcbacc0d67a48d61193a8c1251702b5168af9b538313a54c4dea6bf0a07f8a00dffb3b10430a06ce3a25461eca0c018 + languageName: node + linkType: hard + "@smithy/eventstream-codec@npm:^2.2.0": version: 2.2.0 resolution: "@smithy/eventstream-codec@npm:2.2.0" @@ -11911,6 +12419,19 @@ __metadata: languageName: node linkType: hard +"@smithy/fetch-http-handler@npm:^3.0.1, @smithy/fetch-http-handler@npm:^3.0.2": + version: 3.0.2 + resolution: "@smithy/fetch-http-handler@npm:3.0.2" + dependencies: + "@smithy/protocol-http": ^4.0.1 + "@smithy/querystring-builder": ^3.0.1 + "@smithy/types": ^3.1.0 + "@smithy/util-base64": ^3.0.0 + tslib: ^2.6.2 + checksum: ae4d93ee07dc02c77524b5f6218c53853a39db144e862b4fb92c918ce1e21d8ad5b43c6535121b8a13ada06f2d2874b9556689903452e8286c228c618075861f + languageName: node + linkType: hard + "@smithy/hash-blob-browser@npm:^2.2.0": version: 2.2.0 resolution: "@smithy/hash-blob-browser@npm:2.2.0" @@ -11935,6 +12456,18 @@ __metadata: languageName: node linkType: hard +"@smithy/hash-node@npm:^3.0.0": + version: 3.0.1 + resolution: "@smithy/hash-node@npm:3.0.1" + dependencies: + "@smithy/types": ^3.1.0 + "@smithy/util-buffer-from": ^3.0.0 + "@smithy/util-utf8": ^3.0.0 + tslib: ^2.6.2 + checksum: 2ee4d3509d0c947d7c4c2a18c3315a608504c4fe2cb68bf2d9bfc0d0c02d59463ae1550d0d47e4f97b75e5a95bf309b966c9290f18b9719f53c6ff9f9819d933 + languageName: node + linkType: hard + "@smithy/hash-stream-node@npm:^2.2.0": version: 2.2.0 resolution: "@smithy/hash-stream-node@npm:2.2.0" @@ -11956,6 +12489,16 @@ __metadata: languageName: node linkType: hard +"@smithy/invalid-dependency@npm:^3.0.0": + version: 3.0.1 + resolution: "@smithy/invalid-dependency@npm:3.0.1" + dependencies: + "@smithy/types": ^3.1.0 + tslib: ^2.6.2 + checksum: 2a74c585e8a9bd84a1b9e4c78412921944024d8647e0b7d7f38ea64e3e7e3ed6391679a61ffc4a8d0e43cd6ac1e6aca607246f5cccbd791b37a527a72f4530df + languageName: node + linkType: hard + "@smithy/is-array-buffer@npm:^2.2.0": version: 2.2.0 resolution: "@smithy/is-array-buffer@npm:2.2.0" @@ -11965,6 +12508,15 @@ __metadata: languageName: node linkType: hard +"@smithy/is-array-buffer@npm:^3.0.0": + version: 3.0.0 + resolution: "@smithy/is-array-buffer@npm:3.0.0" + dependencies: + tslib: ^2.6.2 + checksum: ce7440fcb1ce3c46722cff11c33e2f62a9df86d74fa2054a8e6b540302a91211cf6e4e3b1b7aac7030c6c8909158c1b6867c394201fa8afc6b631979956610e5 + languageName: node + linkType: hard + "@smithy/md5-js@npm:^2.2.0": version: 2.2.0 resolution: "@smithy/md5-js@npm:2.2.0" @@ -11987,6 +12539,17 @@ __metadata: languageName: node linkType: hard +"@smithy/middleware-content-length@npm:^3.0.0": + version: 3.0.1 + resolution: "@smithy/middleware-content-length@npm:3.0.1" + dependencies: + "@smithy/protocol-http": ^4.0.1 + "@smithy/types": ^3.1.0 + tslib: ^2.6.2 + checksum: 5b7374abe716eb95aa1f102a5d3c2570f637d92611dc7cc44140692689e0b37e81dab00b95aa4ee97a774a07fadae0a055fc03baa3f3f2b6cb4fe4ee3b189368 + languageName: node + linkType: hard + "@smithy/middleware-endpoint@npm:^2.5.0": version: 2.5.0 resolution: "@smithy/middleware-endpoint@npm:2.5.0" @@ -12002,6 +12565,21 @@ __metadata: languageName: node linkType: hard +"@smithy/middleware-endpoint@npm:^3.0.1, @smithy/middleware-endpoint@npm:^3.0.2": + version: 3.0.2 + resolution: "@smithy/middleware-endpoint@npm:3.0.2" + dependencies: + "@smithy/middleware-serde": ^3.0.1 + "@smithy/node-config-provider": ^3.1.1 + "@smithy/shared-ini-file-loader": ^3.1.1 + "@smithy/types": ^3.1.0 + "@smithy/url-parser": ^3.0.1 + "@smithy/util-middleware": ^3.0.1 + tslib: ^2.6.2 + checksum: 711ab19d75271a542afd35b7e91a9d42f937d2bf9c547b6e40f50b0999af9811086493c6e48c113a2445a56fe49f909220f4866fc0affe370c28801dd6ba1050 + languageName: node + linkType: hard + "@smithy/middleware-retry@npm:^2.2.0": version: 2.2.0 resolution: "@smithy/middleware-retry@npm:2.2.0" @@ -12019,6 +12597,23 @@ __metadata: languageName: node linkType: hard +"@smithy/middleware-retry@npm:^3.0.3, @smithy/middleware-retry@npm:^3.0.4": + version: 3.0.4 + resolution: "@smithy/middleware-retry@npm:3.0.4" + dependencies: + "@smithy/node-config-provider": ^3.1.1 + "@smithy/protocol-http": ^4.0.1 + "@smithy/service-error-classification": ^3.0.1 + "@smithy/smithy-client": ^3.1.2 + "@smithy/types": ^3.1.0 + "@smithy/util-middleware": ^3.0.1 + "@smithy/util-retry": ^3.0.1 + tslib: ^2.6.2 + uuid: ^9.0.1 + checksum: 96e93df1b757b06f45729969ff094d24f840c69ac411a5cc4972e0b5c51626cb3ce4e1dee312796c67f6bbef2523d7da352c006d562abe1d74f881f49487f1b7 + languageName: node + linkType: hard + "@smithy/middleware-serde@npm:^2.3.0": version: 2.3.0 resolution: "@smithy/middleware-serde@npm:2.3.0" @@ -12029,6 +12624,16 @@ __metadata: languageName: node linkType: hard +"@smithy/middleware-serde@npm:^3.0.0, @smithy/middleware-serde@npm:^3.0.1": + version: 3.0.1 + resolution: "@smithy/middleware-serde@npm:3.0.1" + dependencies: + "@smithy/types": ^3.1.0 + tslib: ^2.6.2 + checksum: 7d869849d3bf5ae0615dc7927dacb9a7c8e9d0a75b9f8b6d3bd6a72e4a8eb626d6d37bea2dfd34aa76d87b5d9ed3d5067ea9bc028851eb01e230e8bebd0de96e + languageName: node + linkType: hard + "@smithy/middleware-stack@npm:^2.2.0": version: 2.2.0 resolution: "@smithy/middleware-stack@npm:2.2.0" @@ -12039,6 +12644,16 @@ __metadata: languageName: node linkType: hard +"@smithy/middleware-stack@npm:^3.0.0, @smithy/middleware-stack@npm:^3.0.1": + version: 3.0.1 + resolution: "@smithy/middleware-stack@npm:3.0.1" + dependencies: + "@smithy/types": ^3.1.0 + tslib: ^2.6.2 + checksum: 96ea38e6aa8760af2ac6f7fd4e2538d7481ee84b60a7e993803524ccd3192c8c47a06cc0b09a6d309069a879aa76c095e7c7d15c94863fc89ab2333848172005 + languageName: node + linkType: hard + "@smithy/node-config-provider@npm:^2.3.0": version: 2.3.0 resolution: "@smithy/node-config-provider@npm:2.3.0" @@ -12051,6 +12666,18 @@ __metadata: languageName: node linkType: hard +"@smithy/node-config-provider@npm:^3.1.0, @smithy/node-config-provider@npm:^3.1.1": + version: 3.1.1 + resolution: "@smithy/node-config-provider@npm:3.1.1" + dependencies: + "@smithy/property-provider": ^3.1.1 + "@smithy/shared-ini-file-loader": ^3.1.1 + "@smithy/types": ^3.1.0 + tslib: ^2.6.2 + checksum: 0e9d68cdd9f83b975392d4f9c74a385bb0bce0f5b5549f69bd6e1563d2a9bd10b073d528b0a3a484be25eafb7b8fde912576377329655dac90790d9e479e5085 + languageName: node + linkType: hard + "@smithy/node-http-handler@npm:^2.1.6": version: 2.1.6 resolution: "@smithy/node-http-handler@npm:2.1.6" @@ -12077,6 +12704,19 @@ __metadata: languageName: node linkType: hard +"@smithy/node-http-handler@npm:^3.0.0, @smithy/node-http-handler@npm:^3.0.1": + version: 3.0.1 + resolution: "@smithy/node-http-handler@npm:3.0.1" + dependencies: + "@smithy/abort-controller": ^3.0.1 + "@smithy/protocol-http": ^4.0.1 + "@smithy/querystring-builder": ^3.0.1 + "@smithy/types": ^3.1.0 + tslib: ^2.6.2 + checksum: 35a3e022f85b4236792dc8f320193d4fafa91613ca313485a60f57f4d656a3547aa5d7ea0e47b9d764cdb374ed51fab5a738adb5fd58fb29b24cbca1c67b70d3 + languageName: node + linkType: hard + "@smithy/property-provider@npm:^2.2.0": version: 2.2.0 resolution: "@smithy/property-provider@npm:2.2.0" @@ -12087,6 +12727,16 @@ __metadata: languageName: node linkType: hard +"@smithy/property-provider@npm:^3.1.0, @smithy/property-provider@npm:^3.1.1": + version: 3.1.1 + resolution: "@smithy/property-provider@npm:3.1.1" + dependencies: + "@smithy/types": ^3.1.0 + tslib: ^2.6.2 + checksum: c17b5e2f0307f8086c6e271e4c6f2f95096a09aea3334a386ae2c9e2da44462d3ae0d3f853c67c4bf08ec3544c033947b507629f5a24e5d9e31a3b0a6162f749 + languageName: node + linkType: hard + "@smithy/protocol-http@npm:^3.0.6": version: 3.0.6 resolution: "@smithy/protocol-http@npm:3.0.6" @@ -12107,6 +12757,16 @@ __metadata: languageName: node linkType: hard +"@smithy/protocol-http@npm:^4.0.0, @smithy/protocol-http@npm:^4.0.1": + version: 4.0.1 + resolution: "@smithy/protocol-http@npm:4.0.1" + dependencies: + "@smithy/types": ^3.1.0 + tslib: ^2.6.2 + checksum: bf6c972eda49f786657177a5e2c9be037dec665b97f7e62000e57cbc5dc8cefb08988841f807ef28b8300e271ca26e82702248410e6f12d3a3dee390632e56d1 + languageName: node + linkType: hard + "@smithy/querystring-builder@npm:^2.0.10": version: 2.0.10 resolution: "@smithy/querystring-builder@npm:2.0.10" @@ -12129,6 +12789,17 @@ __metadata: languageName: node linkType: hard +"@smithy/querystring-builder@npm:^3.0.1": + version: 3.0.1 + resolution: "@smithy/querystring-builder@npm:3.0.1" + dependencies: + "@smithy/types": ^3.1.0 + "@smithy/util-uri-escape": ^3.0.0 + tslib: ^2.6.2 + checksum: cada00dbca2d605484377582cd1f2937dc615c9eea326d6ea4275bb28da55719e5653c53366e019e7a0b3b8ab73e0bfafd3c640e7f313693fd71dab88be18888 + languageName: node + linkType: hard + "@smithy/querystring-parser@npm:^2.2.0": version: 2.2.0 resolution: "@smithy/querystring-parser@npm:2.2.0" @@ -12139,6 +12810,16 @@ __metadata: languageName: node linkType: hard +"@smithy/querystring-parser@npm:^3.0.1": + version: 3.0.1 + resolution: "@smithy/querystring-parser@npm:3.0.1" + dependencies: + "@smithy/types": ^3.1.0 + tslib: ^2.6.2 + checksum: 2697162eae53c70a38da7afb246092d641d66c12a5bf042201650560c511ee68f4908b404b4e6ded871c7c748b42e6317de6b7ea2ad4313b1663bcf0a1f8be67 + languageName: node + linkType: hard + "@smithy/service-error-classification@npm:^2.1.5": version: 2.1.5 resolution: "@smithy/service-error-classification@npm:2.1.5" @@ -12148,6 +12829,15 @@ __metadata: languageName: node linkType: hard +"@smithy/service-error-classification@npm:^3.0.1": + version: 3.0.1 + resolution: "@smithy/service-error-classification@npm:3.0.1" + dependencies: + "@smithy/types": ^3.1.0 + checksum: b210d5b77ca200db1197aa8015501c5c69727eee12e84b7595b5596953a10bfc18ee37e54609ae1546d00bbb81c2dbd9d54828d5fc63af895b3c3be942c01f26 + languageName: node + linkType: hard + "@smithy/shared-ini-file-loader@npm:^2.4.0": version: 2.4.0 resolution: "@smithy/shared-ini-file-loader@npm:2.4.0" @@ -12158,6 +12848,16 @@ __metadata: languageName: node linkType: hard +"@smithy/shared-ini-file-loader@npm:^3.1.0, @smithy/shared-ini-file-loader@npm:^3.1.1": + version: 3.1.1 + resolution: "@smithy/shared-ini-file-loader@npm:3.1.1" + dependencies: + "@smithy/types": ^3.1.0 + tslib: ^2.6.2 + checksum: ea05a372dfce029af363014886274cb4ecc1a466a65c72370abf9964855647741a5deb6aee417c90fe744f61091670efa06989ebb37202ff52c4630b46a682dc + languageName: node + linkType: hard + "@smithy/signature-v4@npm:^2.2.0": version: 2.2.0 resolution: "@smithy/signature-v4@npm:2.2.0" @@ -12174,6 +12874,21 @@ __metadata: languageName: node linkType: hard +"@smithy/signature-v4@npm:^3.0.0": + version: 3.0.1 + resolution: "@smithy/signature-v4@npm:3.0.1" + dependencies: + "@smithy/is-array-buffer": ^3.0.0 + "@smithy/types": ^3.1.0 + "@smithy/util-hex-encoding": ^3.0.0 + "@smithy/util-middleware": ^3.0.1 + "@smithy/util-uri-escape": ^3.0.0 + "@smithy/util-utf8": ^3.0.0 + tslib: ^2.6.2 + checksum: 23f8a1e47c8d452af5e1a7c9f02a7a764c6e7316c10592dfd57f87204851c0927278f87d9ecc23b9f0e8778ef28e4508eb00b267dceb68fd634dacf08d292f0e + languageName: node + linkType: hard + "@smithy/smithy-client@npm:^2.5.0": version: 2.5.0 resolution: "@smithy/smithy-client@npm:2.5.0" @@ -12188,6 +12903,20 @@ __metadata: languageName: node linkType: hard +"@smithy/smithy-client@npm:^3.1.1, @smithy/smithy-client@npm:^3.1.2": + version: 3.1.2 + resolution: "@smithy/smithy-client@npm:3.1.2" + dependencies: + "@smithy/middleware-endpoint": ^3.0.2 + "@smithy/middleware-stack": ^3.0.1 + "@smithy/protocol-http": ^4.0.1 + "@smithy/types": ^3.1.0 + "@smithy/util-stream": ^3.0.2 + tslib: ^2.6.2 + checksum: 0ac896c1ae5cb8e6f044f74df37f458bf6a18faabdb9aea3b8aa0a70710bb0109f3f744d5bfd5c75dcb52da40167cd0b1521c85af356d37a60aefcc60a750238 + languageName: node + linkType: hard + "@smithy/types@npm:^2.12.0": version: 2.12.0 resolution: "@smithy/types@npm:2.12.0" @@ -12206,6 +12935,15 @@ __metadata: languageName: node linkType: hard +"@smithy/types@npm:^3.0.0, @smithy/types@npm:^3.1.0": + version: 3.1.0 + resolution: "@smithy/types@npm:3.1.0" + dependencies: + tslib: ^2.6.2 + checksum: 8bb0934cfdc16e41ebd519196ba0d1574bd70d7006dae17117a1b40a19ac40e98f00c8f7b695abbc90fec14e8b8252a274ad54a9bbd4aa706c65b89b89142f25 + languageName: node + linkType: hard + "@smithy/url-parser@npm:^2.2.0": version: 2.2.0 resolution: "@smithy/url-parser@npm:2.2.0" @@ -12217,6 +12955,17 @@ __metadata: languageName: node linkType: hard +"@smithy/url-parser@npm:^3.0.0, @smithy/url-parser@npm:^3.0.1": + version: 3.0.1 + resolution: "@smithy/url-parser@npm:3.0.1" + dependencies: + "@smithy/querystring-parser": ^3.0.1 + "@smithy/types": ^3.1.0 + tslib: ^2.6.2 + checksum: 9ad3dd58a1ad4e11a3ecf3b97411ac5577e72057f7590964e425ecdbe558614959d4c6ed403fb38aea29361193c78283f9c337fe111af0692f16ac96105c3ab3 + languageName: node + linkType: hard + "@smithy/util-base64@npm:^2.3.0": version: 2.3.0 resolution: "@smithy/util-base64@npm:2.3.0" @@ -12228,6 +12977,17 @@ __metadata: languageName: node linkType: hard +"@smithy/util-base64@npm:^3.0.0": + version: 3.0.0 + resolution: "@smithy/util-base64@npm:3.0.0" + dependencies: + "@smithy/util-buffer-from": ^3.0.0 + "@smithy/util-utf8": ^3.0.0 + tslib: ^2.6.2 + checksum: 413f26046a7e98b2661a078f218a8d040c820fc5a02f5e364aff58c3957e28fde1ac4048c2ebbad5d87b9da4b9aa98a8d4a7fb0d2ce97def33738bd7d8d79aa0 + languageName: node + linkType: hard + "@smithy/util-body-length-browser@npm:^2.2.0": version: 2.2.0 resolution: "@smithy/util-body-length-browser@npm:2.2.0" @@ -12237,6 +12997,15 @@ __metadata: languageName: node linkType: hard +"@smithy/util-body-length-browser@npm:^3.0.0": + version: 3.0.0 + resolution: "@smithy/util-body-length-browser@npm:3.0.0" + dependencies: + tslib: ^2.6.2 + checksum: b01d8258b9a25b262734fc49cefefe48583ba193c3eefd49a6f7fd5922c3015d23dda88b52f3dd9a16827cad16b5b9425eef01e91bd0c71bb5abc469d2952c07 + languageName: node + linkType: hard + "@smithy/util-body-length-node@npm:^2.3.0": version: 2.3.0 resolution: "@smithy/util-body-length-node@npm:2.3.0" @@ -12246,6 +13015,15 @@ __metadata: languageName: node linkType: hard +"@smithy/util-body-length-node@npm:^3.0.0": + version: 3.0.0 + resolution: "@smithy/util-body-length-node@npm:3.0.0" + dependencies: + tslib: ^2.6.2 + checksum: da1baf4790609d3dc28c88385c7274fdf9b91a641fe3c5af22b78e18156df17bd470181348f43b2c739680936b1dafb1526158dfd817c3d9ecb71e653b4cbe3f + languageName: node + linkType: hard + "@smithy/util-buffer-from@npm:^2.2.0": version: 2.2.0 resolution: "@smithy/util-buffer-from@npm:2.2.0" @@ -12256,6 +13034,16 @@ __metadata: languageName: node linkType: hard +"@smithy/util-buffer-from@npm:^3.0.0": + version: 3.0.0 + resolution: "@smithy/util-buffer-from@npm:3.0.0" + dependencies: + "@smithy/is-array-buffer": ^3.0.0 + tslib: ^2.6.2 + checksum: 1bfc4ab093fe98132bbc1ccd36a0b9ad75a31ed26bac4b7e9350205513a2481eb190ae44679ab4fecc5e10d367b5e6592bbfbf792671579d17d17bd7f7f233f5 + languageName: node + linkType: hard + "@smithy/util-config-provider@npm:^2.3.0": version: 2.3.0 resolution: "@smithy/util-config-provider@npm:2.3.0" @@ -12265,6 +13053,15 @@ __metadata: languageName: node linkType: hard +"@smithy/util-config-provider@npm:^3.0.0": + version: 3.0.0 + resolution: "@smithy/util-config-provider@npm:3.0.0" + dependencies: + tslib: ^2.6.2 + checksum: fc0f5f57d30261cf3a6693d8e338b9d269332c478ee18d905309a769844188190caf0564855d7e84f6c61e56aa556195dda89f65e8c30791951cf4999e4a70e7 + languageName: node + linkType: hard + "@smithy/util-defaults-mode-browser@npm:^2.2.0": version: 2.2.0 resolution: "@smithy/util-defaults-mode-browser@npm:2.2.0" @@ -12278,6 +13075,19 @@ __metadata: languageName: node linkType: hard +"@smithy/util-defaults-mode-browser@npm:^3.0.3": + version: 3.0.4 + resolution: "@smithy/util-defaults-mode-browser@npm:3.0.4" + dependencies: + "@smithy/property-provider": ^3.1.1 + "@smithy/smithy-client": ^3.1.2 + "@smithy/types": ^3.1.0 + bowser: ^2.11.0 + tslib: ^2.6.2 + checksum: bd86e24d831d64fd9d5f267ab8c42508b4b0252f0fe5f2333d4c28e47bbf407b9e3790df071325cad6b25977c6b449055fade579163ea1d954b19eabab0a78fa + languageName: node + linkType: hard + "@smithy/util-defaults-mode-node@npm:^2.3.0": version: 2.3.0 resolution: "@smithy/util-defaults-mode-node@npm:2.3.0" @@ -12293,6 +13103,21 @@ __metadata: languageName: node linkType: hard +"@smithy/util-defaults-mode-node@npm:^3.0.3": + version: 3.0.4 + resolution: "@smithy/util-defaults-mode-node@npm:3.0.4" + dependencies: + "@smithy/config-resolver": ^3.0.2 + "@smithy/credential-provider-imds": ^3.1.1 + "@smithy/node-config-provider": ^3.1.1 + "@smithy/property-provider": ^3.1.1 + "@smithy/smithy-client": ^3.1.2 + "@smithy/types": ^3.1.0 + tslib: ^2.6.2 + checksum: e9be558d2371db5d568456a824aa5348abaf3f1c828f805e9a8eb4c5df6e4c1c37fda217ef860988b1b65855e9a4f162bcdd6e56a96fa5fcfab0bbb53690115f + languageName: node + linkType: hard + "@smithy/util-endpoints@npm:^1.2.0": version: 1.2.0 resolution: "@smithy/util-endpoints@npm:1.2.0" @@ -12304,6 +13129,17 @@ __metadata: languageName: node linkType: hard +"@smithy/util-endpoints@npm:^2.0.1": + version: 2.0.2 + resolution: "@smithy/util-endpoints@npm:2.0.2" + dependencies: + "@smithy/node-config-provider": ^3.1.1 + "@smithy/types": ^3.1.0 + tslib: ^2.6.2 + checksum: a3eab500202f8f855d9a7b0d4580a1968006b9a92c298c54d44cfb15f5abfdfe88be5cfec9dfba0365682ba00c863cd317054a26646e25bdeeb695bd16cf9786 + languageName: node + linkType: hard + "@smithy/util-hex-encoding@npm:^2.2.0": version: 2.2.0 resolution: "@smithy/util-hex-encoding@npm:2.2.0" @@ -12313,6 +13149,15 @@ __metadata: languageName: node linkType: hard +"@smithy/util-hex-encoding@npm:^3.0.0": + version: 3.0.0 + resolution: "@smithy/util-hex-encoding@npm:3.0.0" + dependencies: + tslib: ^2.6.2 + checksum: dd32fd71e915825987a18bf7c0f8f0c4956d0b17a0ee71592b5563bb20e04f24dbf81d36161aac07caab3bb5e535cc609fce20aa4a38f66b457c4c6f5c7748d9 + languageName: node + linkType: hard + "@smithy/util-middleware@npm:^2.2.0": version: 2.2.0 resolution: "@smithy/util-middleware@npm:2.2.0" @@ -12323,6 +13168,16 @@ __metadata: languageName: node linkType: hard +"@smithy/util-middleware@npm:^3.0.0, @smithy/util-middleware@npm:^3.0.1": + version: 3.0.1 + resolution: "@smithy/util-middleware@npm:3.0.1" + dependencies: + "@smithy/types": ^3.1.0 + tslib: ^2.6.2 + checksum: 5bb4befb5cb5385fe7089c2574ff1f9bb920f6d03b56a881666d9f6d0b6611b6108046bb6638061cd73cb4aef8701515be55f94b713259aaadd7594474b266f9 + languageName: node + linkType: hard + "@smithy/util-retry@npm:^2.2.0": version: 2.2.0 resolution: "@smithy/util-retry@npm:2.2.0" @@ -12334,6 +13189,17 @@ __metadata: languageName: node linkType: hard +"@smithy/util-retry@npm:^3.0.0, @smithy/util-retry@npm:^3.0.1": + version: 3.0.1 + resolution: "@smithy/util-retry@npm:3.0.1" + dependencies: + "@smithy/service-error-classification": ^3.0.1 + "@smithy/types": ^3.1.0 + tslib: ^2.6.2 + checksum: 677f1a71c5f0aa69a4a60f184e44d41b0b22951789e74dd540bb3213de8ef380321777c8e1fde85e4c61a784cd4bc7d773eeae02ab6408dfafc5ed3655f46674 + languageName: node + linkType: hard + "@smithy/util-stream@npm:^2.2.0": version: 2.2.0 resolution: "@smithy/util-stream@npm:2.2.0" @@ -12350,6 +13216,22 @@ __metadata: languageName: node linkType: hard +"@smithy/util-stream@npm:^3.0.1, @smithy/util-stream@npm:^3.0.2": + version: 3.0.2 + resolution: "@smithy/util-stream@npm:3.0.2" + dependencies: + "@smithy/fetch-http-handler": ^3.0.2 + "@smithy/node-http-handler": ^3.0.1 + "@smithy/types": ^3.1.0 + "@smithy/util-base64": ^3.0.0 + "@smithy/util-buffer-from": ^3.0.0 + "@smithy/util-hex-encoding": ^3.0.0 + "@smithy/util-utf8": ^3.0.0 + tslib: ^2.6.2 + checksum: 9e9449b2d4c30fca4d01a1721a4097ed170fa79399287cddb32cf44e60a0fda1470c9fcba025013975c6fbf7b95d9546aa3588fef1c8640f8c82f1061c1fdc1e + languageName: node + linkType: hard + "@smithy/util-uri-escape@npm:^2.0.0": version: 2.0.0 resolution: "@smithy/util-uri-escape@npm:2.0.0" @@ -12368,6 +13250,15 @@ __metadata: languageName: node linkType: hard +"@smithy/util-uri-escape@npm:^3.0.0": + version: 3.0.0 + resolution: "@smithy/util-uri-escape@npm:3.0.0" + dependencies: + tslib: ^2.6.2 + checksum: d7ee01c978e2b08d0a89a3b678f5d5e5d5bb4ab4ab85567a238b1a6195dff1bdaf9ae62497e7f32ff5121b3dc007c370bcb6e8ef79b01fe5acdec5bbce8c7ce4 + languageName: node + linkType: hard + "@smithy/util-utf8@npm:^2.3.0": version: 2.3.0 resolution: "@smithy/util-utf8@npm:2.3.0" @@ -12378,6 +13269,16 @@ __metadata: languageName: node linkType: hard +"@smithy/util-utf8@npm:^3.0.0": + version: 3.0.0 + resolution: "@smithy/util-utf8@npm:3.0.0" + dependencies: + "@smithy/util-buffer-from": ^3.0.0 + tslib: ^2.6.2 + checksum: d97be1748963263a1161ba80417d82318b977b38542f3fdf0379b0162461188be680e5bfb66a89d65652f0fad6ecf2ab23a43205979216e50602488f73434da3 + languageName: node + linkType: hard + "@smithy/util-waiter@npm:^2.2.0": version: 2.2.0 resolution: "@smithy/util-waiter@npm:2.2.0" @@ -13626,6 +14527,16 @@ __metadata: languageName: node linkType: hard +"@types/readable-stream@npm:^4.0.0, @types/readable-stream@npm:^4.0.5": + version: 4.0.14 + resolution: "@types/readable-stream@npm:4.0.14" + dependencies: + "@types/node": "*" + safe-buffer: ~5.1.1 + checksum: 3b95cfbeb797ea480a3a3a80ddaac1b8ac065fdd000120a8379bcf2817795b61724823a90acdd3868ed60829d0630a6aa492e2302ecab182f25cffaf60e8826f + languageName: node + linkType: hard + "@types/resize-observer-browser@npm:^0.1.4": version: 0.1.7 resolution: "@types/resize-observer-browser@npm:0.1.7" @@ -13816,7 +14727,7 @@ __metadata: languageName: node linkType: hard -"@types/ws@npm:^8.5.5": +"@types/ws@npm:^8.5.5, @types/ws@npm:^8.5.9": version: 8.5.10 resolution: "@types/ws@npm:8.5.10" dependencies: @@ -17633,6 +18544,7 @@ __metadata: "@aws-sdk/client-dynamodb-streams": ^3.540.0 "@aws-sdk/client-eventbridge": ^3.540.0 "@aws-sdk/client-iam": ^3.540.0 + "@aws-sdk/client-iot": ^3.540.0 "@aws-sdk/client-lambda": ^3.540.0 "@aws-sdk/client-s3": ^3.540.0 "@aws-sdk/client-sfn": ^3.540.0 @@ -17661,11 +18573,13 @@ __metadata: "@webiny/aws-sdk": 0.0.0 "@webiny/cli": 0.0.0 "@webiny/data-migration": 0.0.0 + "@webiny/feature-flags": 0.0.0 "@webiny/plugins": 0.0.0 "@webiny/pulumi-sdk": 0.0.0 body-parser: 1.20.1 chalk: 4.1.2 execa: 5.1.1 + exit-hook: ^4.0.0 express: ^4.19.2 fast-glob: ^3.2.7 humanize-duration: ^3.31.0 @@ -17676,9 +18590,11 @@ __metadata: log-update: ^4.0.0 mime: 2.6.0 minimatch: ^5.1.0 + mqtt: ^5.5.2 ncp: 2.0.0 node-notifier: ^10.0.1 ora: 4.1.1 + p-retry: ^4.6.2 replace-in-path: ^1.1.0 languageName: unknown linkType: soft @@ -18679,6 +19595,7 @@ __metadata: "@webiny/aws-sdk": 0.0.0 "@webiny/cli": 0.0.0 "@webiny/cli-plugin-deploy-pulumi": 0.0.0 + "@webiny/feature-flags": 0.0.0 "@webiny/project-utils": 0.0.0 "@webiny/pulumi": 0.0.0 chalk: ^4.1.0 @@ -21029,6 +21946,18 @@ __metadata: languageName: node linkType: hard +"bl@npm:^6.0.8": + version: 6.0.12 + resolution: "bl@npm:6.0.12" + dependencies: + "@types/readable-stream": ^4.0.0 + buffer: ^6.0.3 + inherits: ^2.0.4 + readable-stream: ^4.2.0 + checksum: 10cdc8264a7f3c53f62ec6942ace2f9fa8c1437ea3d466606ad9dc2585f6f08405907875f7ab454af79453efaafa0e0f53e382dad95b7d4b288ef912e53e6125 + languageName: node + linkType: hard + "blessed@npm:0.1.81": version: 0.1.81 resolution: "blessed@npm:0.1.81" @@ -22420,6 +23349,13 @@ __metadata: languageName: node linkType: hard +"commist@npm:^3.2.0": + version: 3.2.0 + resolution: "commist@npm:3.2.0" + checksum: 484a8c752f3539b37e9365192a88b48d8ab0fc116c99f729d336cefc81707f7d88684aa9179f04db77a6c7cdda8879df3da4f0759bd126b6b9ee1bf6c34c5a4b + languageName: node + linkType: hard + "commodo-fields-object@npm:^1.0.6": version: 1.0.6 resolution: "commodo-fields-object@npm:1.0.6" @@ -25767,6 +26703,13 @@ __metadata: languageName: node linkType: hard +"exit-hook@npm:^4.0.0": + version: 4.0.0 + resolution: "exit-hook@npm:4.0.0" + checksum: 5aa8b4e45fa943e7e174c25329750a0ffefb593ccc2eafd5d67e1d734b114c93cb36b5714548fb1c2a1dd90f3e9cdc606b5e788f428f780708774da444021fdc + languageName: node + linkType: hard + "exit@npm:0.1.2, exit@npm:0.1.x, exit@npm:^0.1.2": version: 0.1.2 resolution: "exit@npm:0.1.2" @@ -26070,6 +27013,16 @@ __metadata: languageName: node linkType: hard +"fast-unique-numbers@npm:^8.0.13": + version: 8.0.13 + resolution: "fast-unique-numbers@npm:8.0.13" + dependencies: + "@babel/runtime": ^7.23.8 + tslib: ^2.6.2 + checksum: c3edaac89a967a04e1ef97e0d1f121743ab265156a2b1dd5147d47ca9f7b10fcd2b890b574d1689bf2747c823c85dd7b73ea0e3febceac61fde96813096bbd31 + languageName: node + linkType: hard + "fast-uri@npm:^2.0.0, fast-uri@npm:^2.1.0": version: 2.2.0 resolution: "fast-uri@npm:2.2.0" @@ -27668,6 +28621,13 @@ __metadata: languageName: node linkType: hard +"help-me@npm:^5.0.0": + version: 5.0.0 + resolution: "help-me@npm:5.0.0" + checksum: 474436627b6c7d2f406a2768453895889eb2712c8ded4c47658d5c6dd46c2ff3f742be4e4e8dedd57b7f1ac6b28803896a2e026a32a977f507222c16f23ab2e1 + languageName: node + linkType: hard + "history@npm:^5.2.0, history@npm:^5.3.0": version: 5.3.0 resolution: "history@npm:5.3.0" @@ -29959,6 +30919,13 @@ __metadata: languageName: node linkType: hard +"js-sdsl@npm:4.3.0": + version: 4.3.0 + resolution: "js-sdsl@npm:4.3.0" + checksum: ce908257cf6909e213af580af3a691a736f5ee8b16315454768f917a682a4ea0c11bde1b241bbfaecedc0eb67b72101b2c2df2ffaed32aed5d539fca816f054e + languageName: node + linkType: hard + "js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" @@ -32198,6 +33165,46 @@ __metadata: languageName: node linkType: hard +"mqtt-packet@npm:^9.0.0": + version: 9.0.0 + resolution: "mqtt-packet@npm:9.0.0" + dependencies: + bl: ^6.0.8 + debug: ^4.3.4 + process-nextick-args: ^2.0.1 + checksum: 8fc6476e5d910998b7cb8736a195decef246d890f43f0bef921623a38dcee5574aa63528fd41c3ae06891954bfa5c16921fa618290db4fe74dd779fc7f43c9fb + languageName: node + linkType: hard + +"mqtt@npm:^5.2.0, mqtt@npm:^5.5.2": + version: 5.7.0 + resolution: "mqtt@npm:5.7.0" + dependencies: + "@types/readable-stream": ^4.0.5 + "@types/ws": ^8.5.9 + commist: ^3.2.0 + concat-stream: ^2.0.0 + debug: ^4.3.4 + help-me: ^5.0.0 + lru-cache: ^10.0.1 + minimist: ^1.2.8 + mqtt: ^5.2.0 + mqtt-packet: ^9.0.0 + number-allocator: ^1.0.14 + readable-stream: ^4.4.2 + reinterval: ^1.1.0 + rfdc: ^1.3.0 + split2: ^4.2.0 + worker-timers: ^7.1.4 + ws: ^8.14.2 + bin: + mqtt: build/bin/mqtt.js + mqtt_pub: build/bin/pub.js + mqtt_sub: build/bin/sub.js + checksum: 65b3452a8db4414a76d779554e618a0e3bf27d342235cf3cb543635a44f5f2039d1f5f49c1bbb74f80da6192f3460c87ed27edcec31d299bd9618877743272bd + languageName: node + linkType: hard + "ms@npm:2.0.0": version: 2.0.0 resolution: "ms@npm:2.0.0" @@ -32967,6 +33974,16 @@ __metadata: languageName: node linkType: hard +"number-allocator@npm:^1.0.14": + version: 1.0.14 + resolution: "number-allocator@npm:1.0.14" + dependencies: + debug: ^4.3.1 + js-sdsl: 4.3.0 + checksum: 5dc718a333aeebc1b3376c1f3bb7a2991afedc28f0c907baebcd38321b19543e669d5165c09bf7f87a0751c15b5a80ca011d52263da97a9edb2c87d140d03d6e + languageName: node + linkType: hard + "number-is-nan@npm:^1.0.0": version: 1.0.1 resolution: "number-is-nan@npm:1.0.1" @@ -35478,7 +36495,7 @@ __metadata: languageName: node linkType: hard -"process-nextick-args@npm:~2.0.0": +"process-nextick-args@npm:^2.0.1, process-nextick-args@npm:~2.0.0": version: 2.0.1 resolution: "process-nextick-args@npm:2.0.1" checksum: 1d38588e520dab7cea67cbbe2efdd86a10cc7a074c09657635e34f035277b59fbb57d09d8638346bf7090f8e8ebc070c96fa5fd183b777fff4f5edff5e9466cf @@ -36822,6 +37839,19 @@ __metadata: languageName: node linkType: hard +"readable-stream@npm:^4.2.0, readable-stream@npm:^4.4.2": + version: 4.5.2 + resolution: "readable-stream@npm:4.5.2" + dependencies: + abort-controller: ^3.0.0 + buffer: ^6.0.3 + events: ^3.3.0 + process: ^0.11.10 + string_decoder: ^1.3.0 + checksum: c4030ccff010b83e4f33289c535f7830190773e274b3fcb6e2541475070bdfd69c98001c3b0cb78763fc00c8b62f514d96c2b10a8bd35d5ce45203a25fa1d33a + languageName: node + linkType: hard + "readdir-glob@npm:^1.1.2": version: 1.1.3 resolution: "readdir-glob@npm:1.1.3" @@ -37057,6 +38087,13 @@ __metadata: languageName: node linkType: hard +"reinterval@npm:^1.1.0": + version: 1.1.0 + resolution: "reinterval@npm:1.1.0" + checksum: 801ce2cc5f4096c593071c7c361acab5c5c3a0585fb660f7cee2d1a94b44dd185359d5c9b438391a9d3d32c53eb325de2d81268038e037b336e6d4c3897e6018 + languageName: node + linkType: hard + "relateurl@npm:^0.2.7": version: 0.2.7 resolution: "relateurl@npm:0.2.7" @@ -38624,6 +39661,13 @@ __metadata: languageName: node linkType: hard +"split2@npm:^4.2.0": + version: 4.2.0 + resolution: "split2@npm:4.2.0" + checksum: 05d54102546549fe4d2455900699056580cca006c0275c334611420f854da30ac999230857a85fdd9914dc2109ae50f80fda43d2a445f2aa86eccdc1dfce779d + languageName: node + linkType: hard + "split@npm:^1.0.1": version: 1.0.1 resolution: "split@npm:1.0.1" @@ -38958,7 +40002,7 @@ __metadata: languageName: node linkType: hard -"string_decoder@npm:^1.1.1": +"string_decoder@npm:^1.1.1, string_decoder@npm:^1.3.0": version: 1.3.0 resolution: "string_decoder@npm:1.3.0" dependencies: @@ -41397,6 +42441,40 @@ __metadata: languageName: node linkType: hard +"worker-timers-broker@npm:^6.1.8": + version: 6.1.8 + resolution: "worker-timers-broker@npm:6.1.8" + dependencies: + "@babel/runtime": ^7.24.5 + fast-unique-numbers: ^8.0.13 + tslib: ^2.6.2 + worker-timers-worker: ^7.0.71 + checksum: a2a1ebe7a17e6dca4e0431ca511d110a55b3d4e8dba5635ba03f84b27464b7e995f90a9bc2ca94eca7332abdd4fe9c37ea14f4d105d5c30097aeadcec4140f68 + languageName: node + linkType: hard + +"worker-timers-worker@npm:^7.0.71": + version: 7.0.71 + resolution: "worker-timers-worker@npm:7.0.71" + dependencies: + "@babel/runtime": ^7.24.5 + tslib: ^2.6.2 + checksum: 991072f3c73d4bc1d4574b7a13303e6118fe79c1bebd08e8bc8e7bfb94de4bc7149d2c3d75299b897d1d8e4a44efbc872adba7c2b2cc40bb96e3c5938b2c8db5 + languageName: node + linkType: hard + +"worker-timers@npm:^7.1.4": + version: 7.1.8 + resolution: "worker-timers@npm:7.1.8" + dependencies: + "@babel/runtime": ^7.24.5 + tslib: ^2.6.2 + worker-timers-broker: ^6.1.8 + worker-timers-worker: ^7.0.71 + checksum: 7c79bbb06bb89c8291a10cbb260ae16a6bddb56ac580012ea9dfbed0bfa7f338da9e10b2414206b38b4a686007b64853040264f2baf6a7b0b37ced5ae43a181e + languageName: node + linkType: hard + "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": version: 7.0.0 resolution: "wrap-ansi@npm:7.0.0" @@ -41585,6 +42663,21 @@ __metadata: languageName: node linkType: hard +"ws@npm:^8.14.2": + version: 8.17.0 + resolution: "ws@npm:8.17.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 147ef9eab0251364e1d2c55338ad0efb15e6913923ccbfdf20f7a8a6cb8f88432bcd7f4d8f66977135bfad35575644f9983201c1a361019594a4e53977bf6d4e + languageName: node + linkType: hard + "ws@npm:~7.4.0": version: 7.4.6 resolution: "ws@npm:7.4.6"