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 00000000000..2f4a196d95f Binary files /dev/null and b/packages/cli-plugin-deploy-pulumi/commands/newWatch/handler/handler.zip differ 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"