@cloudbase/cli 3.0.3-beta.0 → 3.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/standalone/cli.js +1342 -1393
  2. package/package.json +1 -1
@@ -298376,21 +298376,6 @@ const jsonfile = {
298376
298376
  module.exports = jsonfile
298377
298377
 
298378
298378
 
298379
- /***/ }),
298380
-
298381
- /***/ 2910:
298382
- /***/ ((module) => {
298383
-
298384
- function webpackEmptyContext(req) {
298385
- var e = new Error("Cannot find module '" + req + "'");
298386
- e.code = 'MODULE_NOT_FOUND';
298387
- throw e;
298388
- }
298389
- webpackEmptyContext.keys = () => ([]);
298390
- webpackEmptyContext.resolve = webpackEmptyContext;
298391
- webpackEmptyContext.id = 2910;
298392
- module.exports = webpackEmptyContext;
298393
-
298394
298379
  /***/ }),
298395
298380
 
298396
298381
  /***/ 2923:
@@ -332166,7 +332151,7 @@ module.exports = function generate_pattern(it, $keyword, $ruleType) {
332166
332151
  /***/ ((module) => {
332167
332152
 
332168
332153
  "use strict";
332169
- module.exports = /*#__PURE__*/JSON.parse('{"name":"@cloudbase/cli","version":"3.0.3-beta.0","description":"cli tool for cloudbase","main":"lib/index.js","scripts":{"build":"rimraf lib types && tsc --resolveJsonModule && cpx \\"src/**/*.html\\" lib","watch":"rimraf lib types && tsc -w","dev":"rimraf lib types && cpx \\"src/**/*.html\\" lib && tsc -w","eslint":"eslint \\"./**/*.ts\\"","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js --runInBand --forceExit --detectOpenHandles --verbose --testTimeout=120000","test:e2e":"node --experimental-vm-modules node_modules/jest/bin/jest.js --testPathPattern=\'test/e2e/\' --runInBand --forceExit --detectOpenHandles --verbose --testTimeout=120000","tsc":"tsc","pkg":"pkg ./bin/cloudbase.js --out-path ./pkg","postinstall":"node ./post-install.js || exit 0 && patch-package","prepublishOnly":"node ./scripts/check-publish-source.js","debug":"bin/tcb.js lowcode watch","build:bundle":"webpack --config build/webpack/cli.cjs && webpack --config build/webpack/ccr.cjs && node build/scripts/copy-figlet-fonts.js","package:darwin-arm64":"OS=darwin ARCH=arm64 VERSION= node -e \\"require(\'child_process\').execSync(\'bash build/scripts/package.sh\',{stdio:\'inherit\'})\\"","package:darwin-x64":"OS=darwin ARCH=x64 VERSION= node -e \\"require(\'child_process\').execSync(\'bash build/scripts/package.sh\',{stdio:\'inherit\'})\\"","package:linux-arm64":"OS=linux ARCH=arm64 VERSION= node -e \\"require(\'child_process\').execSync(\'bash build/scripts/package.sh\',{stdio:\'inherit\'})\\"","package:linux-x64":"OS=linux ARCH=x64 VERSION= node -e \\"require(\'child_process\').execSync(\'bash build/scripts/package.sh\',{stdio:\'inherit\'})\\"","package:all":"bash build/scripts/build-all.sh","node:fetch:one":"node -e \\"require(\'child_process\').execSync(\'bash build/scripts/fetch-node.sh\',{stdio:\'inherit\'})\\"","node:fetch:all":"NODE_VERSION=22.18.0 bash build/scripts/fetch-node.sh --all","node:fetch:win-x64":"OS=windows ARCH=x64 NODE_VERSION=22.18.0 bash build/scripts/fetch-node.sh","node:fetch:win-arm64":"OS=windows ARCH=arm64 NODE_VERSION=22.18.0 bash build/scripts/fetch-node.sh","package:windows-x64":"OS=windows ARCH=x64 VERSION= node -e \\"require(\'child_process\').execSync(\'bash build/scripts/package.sh\',{stdio:\'inherit\'})\\"","package:windows-arm64":"OS=windows ARCH=arm64 VERSION= node -e \\"require(\'child_process\').execSync(\'bash build/scripts/package.sh\',{stdio:\'inherit\'})\\"","package:windows-all":"npm run -s node:fetch:win-x64 && npm run -s node:fetch:win-arm64 && npm run -s package:windows-x64 && npm run -s package:windows-arm64","package:npm":"yarn && npm run build && npm run build:bundle && bash build/scripts/prepare-publish.sh","out:prune":"bash build/scripts/prune-out.sh","i18n:scan":"i18next-scanner --config locales/i18next-scanner.config.js && node locales/scripts/generate.js","i18n:sync":"node locales/scripts/sync.js sync","publish":"node ./scripts/publish.js"},"repository":{"type":"git","url":"https://github.com/TencentCloudBase/cloud-base-cli.git"},"bin":{"cloudbase":"bin/cloudbase.js","cloudbase-mcp":"bin/cloudbase-mcp.cjs","tcb":"bin/tcb.js"},"husky":{"hooks":{"pre-commit":"npm run build"}},"author":"cwuyiqing@gmail.com","license":"ISC","dependencies":{"@cloudbase/cloud-api":"^0.5.5","@cloudbase/cloudbase-mcp":"^2.7.3","@cloudbase/framework-core":"^1.9.7","@cloudbase/functions-framework":"1.16.0","@cloudbase/iac-core":"0.0.3-alpha.14","@cloudbase/lowcode-cli":"^0.23.0","@cloudbase/manager-node":"5.0.2","@cloudbase/toolbox":"0.7.19","@dotenvx/dotenvx":"^1.48.3","@musistudio/claude-code-router":"1.0.36","address":"^1.1.2","camelcase-keys":"^7.0.2","chalk":"^2.4.2","cli-table3":"^0.5.1","commander":"7","del":"^5.1.0","didyoumean":"^1.2.2","enquirer":"^2.3.6","execa":"^4.0.3","figlet":"^1.7.0","fs-extra":"^8.1.0","gradient-string":"^2.0.2","https-proxy-agent":"^5.0.1","i":"^0.3.7","inquirer":"^6.5.0","json-schema-to-typescript":"^14.0.5","lodash":"^4.17.21","log-symbols":"^3.0.0","lowdb":"^1.0.0","make-dir":"^3.0.0","node-fetch":"^2.6.0","nodemon":"^3.1.4","open":"^7.0.0","ora":"^4.0.2","os-locale":"5.0.0","patch-package":"^8.0.0","portfinder":"^1.0.28","progress":"^2.0.3","query-string":"^6.8.1","reflect-metadata":"^0.1.13","semver":"^7.3.7","simple-git":"^3.28.0","tar-fs":"^2.0.1","terminal-link":"^2.1.1","toml":"^3.0.0","unzipper":"^0.10.10","update-notifier":"^4.0.0","xdg-basedir":"^4.0.0","yargs":"^16.2.0","yargs-parser":"^21.0.1","zod":"^4.0.13"},"devDependencies":{"@babel/parser":"^7.28.4","@babel/traverse":"^7.28.4","@babel/types":"^7.28.4","@types/fs-extra":"^11.0.4","@types/jest":"^27","@types/koa__router":"^8.0.11","@types/lodash":"^4.14.182","@types/node":"^12.12.38","@types/node-fetch":"^2.5.4","@types/react":"^17.0.37","@types/semver":"^7.3.9","@types/unzipper":"^0.10.11","@types/webpack-dev-server":"^3.11.1","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","cpx":"^1.5.0","eslint":"^7.14.0","eslint-config-alloy":"^3.8.2","husky":"^3.0.9","i18next-scanner":"^4.6.0","jest":"^27","rimraf":"^3.0.2","ts-jest":"^27","typescript":"^4.7.2","webpack":"^5.92.0","webpack-cli":"^5.1.4"},"packageManager":"yarn@3.6.2+sha512.2c2f8b9615e6659773f65cdec7cf92ef773a98a99e611579601f61c7a91ec94c89c929aac86f1cee819421a9b0db7acfd53ec3ebb95af44f77f77634b08b9557","ai":{"skills":"./skills","skillsIndex":"./skills/index.json","compatible":["codebuddy","cursor","copilot","claude","windsurf"],"description":"CloudBase CLI - 腾讯云云开发命令行工具,支持云函数、云数据库、静态托管等全栈云开发能力"}}');
332154
+ module.exports = /*#__PURE__*/JSON.parse('{"name":"@cloudbase/cli","version":"3.0.3","description":"cli tool for cloudbase","main":"lib/index.js","scripts":{"build":"rimraf lib types && tsc --resolveJsonModule && cpx \\"src/**/*.html\\" lib","watch":"rimraf lib types && tsc -w","dev":"rimraf lib types && cpx \\"src/**/*.html\\" lib && tsc -w","eslint":"eslint \\"./**/*.ts\\"","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js --runInBand --forceExit --detectOpenHandles --verbose --testTimeout=120000","test:e2e":"node --experimental-vm-modules node_modules/jest/bin/jest.js --testPathPattern=\'test/e2e/\' --runInBand --forceExit --detectOpenHandles --verbose --testTimeout=120000","tsc":"tsc","pkg":"pkg ./bin/cloudbase.js --out-path ./pkg","postinstall":"node ./post-install.js || exit 0 && patch-package","prepublishOnly":"node ./scripts/check-publish-source.js","debug":"bin/tcb.js lowcode watch","build:bundle":"webpack --config build/webpack/cli.cjs && webpack --config build/webpack/ccr.cjs && node build/scripts/copy-figlet-fonts.js","package:darwin-arm64":"OS=darwin ARCH=arm64 VERSION= node -e \\"require(\'child_process\').execSync(\'bash build/scripts/package.sh\',{stdio:\'inherit\'})\\"","package:darwin-x64":"OS=darwin ARCH=x64 VERSION= node -e \\"require(\'child_process\').execSync(\'bash build/scripts/package.sh\',{stdio:\'inherit\'})\\"","package:linux-arm64":"OS=linux ARCH=arm64 VERSION= node -e \\"require(\'child_process\').execSync(\'bash build/scripts/package.sh\',{stdio:\'inherit\'})\\"","package:linux-x64":"OS=linux ARCH=x64 VERSION= node -e \\"require(\'child_process\').execSync(\'bash build/scripts/package.sh\',{stdio:\'inherit\'})\\"","package:all":"bash build/scripts/build-all.sh","node:fetch:one":"node -e \\"require(\'child_process\').execSync(\'bash build/scripts/fetch-node.sh\',{stdio:\'inherit\'})\\"","node:fetch:all":"NODE_VERSION=22.18.0 bash build/scripts/fetch-node.sh --all","node:fetch:win-x64":"OS=windows ARCH=x64 NODE_VERSION=22.18.0 bash build/scripts/fetch-node.sh","node:fetch:win-arm64":"OS=windows ARCH=arm64 NODE_VERSION=22.18.0 bash build/scripts/fetch-node.sh","package:windows-x64":"OS=windows ARCH=x64 VERSION= node -e \\"require(\'child_process\').execSync(\'bash build/scripts/package.sh\',{stdio:\'inherit\'})\\"","package:windows-arm64":"OS=windows ARCH=arm64 VERSION= node -e \\"require(\'child_process\').execSync(\'bash build/scripts/package.sh\',{stdio:\'inherit\'})\\"","package:windows-all":"npm run -s node:fetch:win-x64 && npm run -s node:fetch:win-arm64 && npm run -s package:windows-x64 && npm run -s package:windows-arm64","package:npm":"yarn && npm run build && npm run build:bundle && bash build/scripts/prepare-publish.sh","out:prune":"bash build/scripts/prune-out.sh","i18n:scan":"i18next-scanner --config locales/i18next-scanner.config.js && node locales/scripts/generate.js","i18n:sync":"node locales/scripts/sync.js sync","publish":"node ./scripts/publish.js"},"repository":{"type":"git","url":"https://github.com/TencentCloudBase/cloud-base-cli.git"},"bin":{"cloudbase":"bin/cloudbase.js","cloudbase-mcp":"bin/cloudbase-mcp.cjs","tcb":"bin/tcb.js"},"husky":{"hooks":{"pre-commit":"npm run build"}},"author":"cwuyiqing@gmail.com","license":"ISC","dependencies":{"@cloudbase/cloud-api":"^0.5.5","@cloudbase/cloudbase-mcp":"^2.7.3","@cloudbase/framework-core":"^1.9.7","@cloudbase/functions-framework":"1.16.0","@cloudbase/iac-core":"0.0.3-alpha.14","@cloudbase/lowcode-cli":"^0.23.0","@cloudbase/manager-node":"5.0.2","@cloudbase/toolbox":"0.7.19","@dotenvx/dotenvx":"^1.48.3","@musistudio/claude-code-router":"1.0.36","address":"^1.1.2","camelcase-keys":"^7.0.2","chalk":"^2.4.2","cli-table3":"^0.5.1","commander":"7","del":"^5.1.0","didyoumean":"^1.2.2","enquirer":"^2.3.6","execa":"^4.0.3","figlet":"^1.7.0","fs-extra":"^8.1.0","gradient-string":"^2.0.2","https-proxy-agent":"^5.0.1","i":"^0.3.7","inquirer":"^6.5.0","json-schema-to-typescript":"^14.0.5","lodash":"^4.17.21","log-symbols":"^3.0.0","lowdb":"^1.0.0","make-dir":"^3.0.0","node-fetch":"^2.6.0","nodemon":"^3.1.4","open":"^7.0.0","ora":"^4.0.2","os-locale":"5.0.0","patch-package":"^8.0.0","portfinder":"^1.0.28","progress":"^2.0.3","query-string":"^6.8.1","reflect-metadata":"^0.1.13","semver":"^7.3.7","simple-git":"^3.28.0","tar-fs":"^2.0.1","terminal-link":"^2.1.1","toml":"^3.0.0","unzipper":"^0.10.10","update-notifier":"^4.0.0","xdg-basedir":"^4.0.0","yargs":"^16.2.0","yargs-parser":"^21.0.1","zod":"^4.0.13"},"devDependencies":{"@babel/parser":"^7.28.4","@babel/traverse":"^7.28.4","@babel/types":"^7.28.4","@types/fs-extra":"^11.0.4","@types/jest":"^27","@types/koa__router":"^8.0.11","@types/lodash":"^4.14.182","@types/node":"^12.12.38","@types/node-fetch":"^2.5.4","@types/react":"^17.0.37","@types/semver":"^7.3.9","@types/unzipper":"^0.10.11","@types/webpack-dev-server":"^3.11.1","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","cpx":"^1.5.0","eslint":"^7.14.0","eslint-config-alloy":"^3.8.2","husky":"^3.0.9","i18next-scanner":"^4.6.0","jest":"^27","rimraf":"^3.0.2","ts-jest":"^27","typescript":"^4.7.2","webpack":"^5.92.0","webpack-cli":"^5.1.4"},"packageManager":"yarn@3.6.2+sha512.2c2f8b9615e6659773f65cdec7cf92ef773a98a99e611579601f61c7a91ec94c89c929aac86f1cee819421a9b0db7acfd53ec3ebb95af44f77f77634b08b9557","ai":{"skills":"./skills","skillsIndex":"./skills/index.json","compatible":["codebuddy","cursor","copilot","claude","windsurf"],"description":"CloudBase CLI - 腾讯云云开发命令行工具,支持云函数、云数据库、静态托管等全栈云开发能力"}}');
332170
332155
 
332171
332156
  /***/ }),
332172
332157
 
@@ -343909,16 +343894,6 @@ module['exports'] = function(colors) {
343909
343894
  };
343910
343895
 
343911
343896
 
343912
- /***/ }),
343913
-
343914
- /***/ 10136:
343915
- /***/ ((__unused_webpack_module, exports) => {
343916
-
343917
- "use strict";
343918
-
343919
- Object.defineProperty(exports, "__esModule", ({ value: true }));
343920
- //# sourceMappingURL=options.js.map
343921
-
343922
343897
  /***/ }),
343923
343898
 
343924
343899
  /***/ 10143:
@@ -390217,59 +390192,6 @@ module.exports = function (rl) {
390217
390192
  };
390218
390193
 
390219
390194
 
390220
- /***/ }),
390221
-
390222
- /***/ 16262:
390223
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
390224
-
390225
- "use strict";
390226
-
390227
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
390228
- if (k2 === undefined) k2 = k;
390229
- var desc = Object.getOwnPropertyDescriptor(m, k);
390230
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
390231
- desc = { enumerable: true, get: function() { return m[k]; } };
390232
- }
390233
- Object.defineProperty(o, k2, desc);
390234
- }) : (function(o, m, k, k2) {
390235
- if (k2 === undefined) k2 = k;
390236
- o[k2] = m[k];
390237
- }));
390238
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
390239
- Object.defineProperty(o, "default", { enumerable: true, value: v });
390240
- }) : function(o, v) {
390241
- o["default"] = v;
390242
- });
390243
- var __importStar = (this && this.__importStar) || function (mod) {
390244
- if (mod && mod.__esModule) return mod;
390245
- var result = {};
390246
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
390247
- __setModuleDefault(result, mod);
390248
- return result;
390249
- };
390250
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
390251
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
390252
- };
390253
- Object.defineProperty(exports, "__esModule", ({ value: true }));
390254
- exports.sync = exports.isexe = exports.posix = exports.win32 = void 0;
390255
- const posix = __importStar(__webpack_require__(71481));
390256
- exports.posix = posix;
390257
- const win32 = __importStar(__webpack_require__(53381));
390258
- exports.win32 = win32;
390259
- __exportStar(__webpack_require__(10136), exports);
390260
- const platform = process.env._ISEXE_TEST_PLATFORM_ || process.platform;
390261
- const impl = platform === 'win32' ? win32 : posix;
390262
- /**
390263
- * Determine whether a path is executable on the current platform.
390264
- */
390265
- exports.isexe = impl.isexe;
390266
- /**
390267
- * Synchronously determine whether a path is executable on the
390268
- * current platform.
390269
- */
390270
- exports.sync = impl.sync;
390271
- //# sourceMappingURL=index.js.map
390272
-
390273
390195
  /***/ }),
390274
390196
 
390275
390197
  /***/ 16279:
@@ -486436,6 +486358,138 @@ exports["default"] = def;
486436
486358
  })));
486437
486359
 
486438
486360
 
486361
+ /***/ }),
486362
+
486363
+ /***/ 30307:
486364
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
486365
+
486366
+ const isWindows = process.platform === 'win32' ||
486367
+ process.env.OSTYPE === 'cygwin' ||
486368
+ process.env.OSTYPE === 'msys'
486369
+
486370
+ const path = __webpack_require__(16928)
486371
+ const COLON = isWindows ? ';' : ':'
486372
+ const isexe = __webpack_require__(68311)
486373
+
486374
+ const getNotFoundError = (cmd) =>
486375
+ Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' })
486376
+
486377
+ const getPathInfo = (cmd, opt) => {
486378
+ const colon = opt.colon || COLON
486379
+
486380
+ // If it has a slash, then we don't bother searching the pathenv.
486381
+ // just check the file itself, and that's it.
486382
+ const pathEnv = cmd.match(/\//) || isWindows && cmd.match(/\\/) ? ['']
486383
+ : (
486384
+ [
486385
+ // windows always checks the cwd first
486386
+ ...(isWindows ? [process.cwd()] : []),
486387
+ ...(opt.path || process.env.PATH ||
486388
+ /* istanbul ignore next: very unusual */ '').split(colon),
486389
+ ]
486390
+ )
486391
+ const pathExtExe = isWindows
486392
+ ? opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM'
486393
+ : ''
486394
+ const pathExt = isWindows ? pathExtExe.split(colon) : ['']
486395
+
486396
+ if (isWindows) {
486397
+ if (cmd.indexOf('.') !== -1 && pathExt[0] !== '')
486398
+ pathExt.unshift('')
486399
+ }
486400
+
486401
+ return {
486402
+ pathEnv,
486403
+ pathExt,
486404
+ pathExtExe,
486405
+ }
486406
+ }
486407
+
486408
+ const which = (cmd, opt, cb) => {
486409
+ if (typeof opt === 'function') {
486410
+ cb = opt
486411
+ opt = {}
486412
+ }
486413
+ if (!opt)
486414
+ opt = {}
486415
+
486416
+ const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)
486417
+ const found = []
486418
+
486419
+ const step = i => new Promise((resolve, reject) => {
486420
+ if (i === pathEnv.length)
486421
+ return opt.all && found.length ? resolve(found)
486422
+ : reject(getNotFoundError(cmd))
486423
+
486424
+ const ppRaw = pathEnv[i]
486425
+ const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw
486426
+
486427
+ const pCmd = path.join(pathPart, cmd)
486428
+ const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd
486429
+ : pCmd
486430
+
486431
+ resolve(subStep(p, i, 0))
486432
+ })
486433
+
486434
+ const subStep = (p, i, ii) => new Promise((resolve, reject) => {
486435
+ if (ii === pathExt.length)
486436
+ return resolve(step(i + 1))
486437
+ const ext = pathExt[ii]
486438
+ isexe(p + ext, { pathExt: pathExtExe }, (er, is) => {
486439
+ if (!er && is) {
486440
+ if (opt.all)
486441
+ found.push(p + ext)
486442
+ else
486443
+ return resolve(p + ext)
486444
+ }
486445
+ return resolve(subStep(p, i, ii + 1))
486446
+ })
486447
+ })
486448
+
486449
+ return cb ? step(0).then(res => cb(null, res), cb) : step(0)
486450
+ }
486451
+
486452
+ const whichSync = (cmd, opt) => {
486453
+ opt = opt || {}
486454
+
486455
+ const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)
486456
+ const found = []
486457
+
486458
+ for (let i = 0; i < pathEnv.length; i ++) {
486459
+ const ppRaw = pathEnv[i]
486460
+ const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw
486461
+
486462
+ const pCmd = path.join(pathPart, cmd)
486463
+ const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd
486464
+ : pCmd
486465
+
486466
+ for (let j = 0; j < pathExt.length; j ++) {
486467
+ const cur = p + pathExt[j]
486468
+ try {
486469
+ const is = isexe.sync(cur, { pathExt: pathExtExe })
486470
+ if (is) {
486471
+ if (opt.all)
486472
+ found.push(cur)
486473
+ else
486474
+ return cur
486475
+ }
486476
+ } catch (ex) {}
486477
+ }
486478
+ }
486479
+
486480
+ if (opt.all && found.length)
486481
+ return found
486482
+
486483
+ if (opt.nothrow)
486484
+ return null
486485
+
486486
+ throw getNotFoundError(cmd)
486487
+ }
486488
+
486489
+ module.exports = which
486490
+ which.sync = whichSync
486491
+
486492
+
486439
486493
  /***/ }),
486440
486494
 
486441
486495
  /***/ 30311:
@@ -559696,6 +559750,55 @@ module.exports = function () {
559696
559750
  };
559697
559751
 
559698
559752
 
559753
+ /***/ }),
559754
+
559755
+ /***/ 43730:
559756
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
559757
+
559758
+ module.exports = isexe
559759
+ isexe.sync = sync
559760
+
559761
+ var fs = __webpack_require__(79896)
559762
+
559763
+ function checkPathExt (path, options) {
559764
+ var pathext = options.pathExt !== undefined ?
559765
+ options.pathExt : process.env.PATHEXT
559766
+
559767
+ if (!pathext) {
559768
+ return true
559769
+ }
559770
+
559771
+ pathext = pathext.split(';')
559772
+ if (pathext.indexOf('') !== -1) {
559773
+ return true
559774
+ }
559775
+ for (var i = 0; i < pathext.length; i++) {
559776
+ var p = pathext[i].toLowerCase()
559777
+ if (p && path.substr(-p.length).toLowerCase() === p) {
559778
+ return true
559779
+ }
559780
+ }
559781
+ return false
559782
+ }
559783
+
559784
+ function checkStat (stat, path, options) {
559785
+ if (!stat.isSymbolicLink() && !stat.isFile()) {
559786
+ return false
559787
+ }
559788
+ return checkPathExt(path, options)
559789
+ }
559790
+
559791
+ function isexe (path, options, cb) {
559792
+ fs.stat(path, function (er, stat) {
559793
+ cb(er, er ? false : checkStat(stat, path, options))
559794
+ })
559795
+ }
559796
+
559797
+ function sync (path, options) {
559798
+ return checkStat(fs.statSync(path), path, options)
559799
+ }
559800
+
559801
+
559699
559802
  /***/ }),
559700
559803
 
559701
559804
  /***/ 43769:
@@ -573247,1041 +573350,6 @@ sgr.extractCode = extractCode;
573247
573350
  module.exports = sgr;
573248
573351
 
573249
573352
 
573250
- /***/ }),
573251
-
573252
- /***/ 45420:
573253
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
573254
-
573255
- "use strict";
573256
-
573257
- var __importDefault = (this && this.__importDefault) || function (mod) {
573258
- return (mod && mod.__esModule) ? mod : { "default": mod };
573259
- };
573260
- Object.defineProperty(exports, "__esModule", ({ value: true }));
573261
- exports.Minipass = exports.isWritable = exports.isReadable = exports.isStream = void 0;
573262
- const proc = typeof process === 'object' && process
573263
- ? process
573264
- : {
573265
- stdout: null,
573266
- stderr: null,
573267
- };
573268
- const node_events_1 = __webpack_require__(56093);
573269
- const node_stream_1 = __importDefault(__webpack_require__(57075));
573270
- const node_string_decoder_1 = __webpack_require__(46193);
573271
- /**
573272
- * Return true if the argument is a Minipass stream, Node stream, or something
573273
- * else that Minipass can interact with.
573274
- */
573275
- const isStream = (s) => !!s &&
573276
- typeof s === 'object' &&
573277
- (s instanceof Minipass ||
573278
- s instanceof node_stream_1.default ||
573279
- (0, exports.isReadable)(s) ||
573280
- (0, exports.isWritable)(s));
573281
- exports.isStream = isStream;
573282
- /**
573283
- * Return true if the argument is a valid {@link Minipass.Readable}
573284
- */
573285
- const isReadable = (s) => !!s &&
573286
- typeof s === 'object' &&
573287
- s instanceof node_events_1.EventEmitter &&
573288
- typeof s.pipe === 'function' &&
573289
- // node core Writable streams have a pipe() method, but it throws
573290
- s.pipe !== node_stream_1.default.Writable.prototype.pipe;
573291
- exports.isReadable = isReadable;
573292
- /**
573293
- * Return true if the argument is a valid {@link Minipass.Writable}
573294
- */
573295
- const isWritable = (s) => !!s &&
573296
- typeof s === 'object' &&
573297
- s instanceof node_events_1.EventEmitter &&
573298
- typeof s.write === 'function' &&
573299
- typeof s.end === 'function';
573300
- exports.isWritable = isWritable;
573301
- const EOF = Symbol('EOF');
573302
- const MAYBE_EMIT_END = Symbol('maybeEmitEnd');
573303
- const EMITTED_END = Symbol('emittedEnd');
573304
- const EMITTING_END = Symbol('emittingEnd');
573305
- const EMITTED_ERROR = Symbol('emittedError');
573306
- const CLOSED = Symbol('closed');
573307
- const READ = Symbol('read');
573308
- const FLUSH = Symbol('flush');
573309
- const FLUSHCHUNK = Symbol('flushChunk');
573310
- const ENCODING = Symbol('encoding');
573311
- const DECODER = Symbol('decoder');
573312
- const FLOWING = Symbol('flowing');
573313
- const PAUSED = Symbol('paused');
573314
- const RESUME = Symbol('resume');
573315
- const BUFFER = Symbol('buffer');
573316
- const PIPES = Symbol('pipes');
573317
- const BUFFERLENGTH = Symbol('bufferLength');
573318
- const BUFFERPUSH = Symbol('bufferPush');
573319
- const BUFFERSHIFT = Symbol('bufferShift');
573320
- const OBJECTMODE = Symbol('objectMode');
573321
- // internal event when stream is destroyed
573322
- const DESTROYED = Symbol('destroyed');
573323
- // internal event when stream has an error
573324
- const ERROR = Symbol('error');
573325
- const EMITDATA = Symbol('emitData');
573326
- const EMITEND = Symbol('emitEnd');
573327
- const EMITEND2 = Symbol('emitEnd2');
573328
- const ASYNC = Symbol('async');
573329
- const ABORT = Symbol('abort');
573330
- const ABORTED = Symbol('aborted');
573331
- const SIGNAL = Symbol('signal');
573332
- const DATALISTENERS = Symbol('dataListeners');
573333
- const DISCARDED = Symbol('discarded');
573334
- const defer = (fn) => Promise.resolve().then(fn);
573335
- const nodefer = (fn) => fn();
573336
- const isEndish = (ev) => ev === 'end' || ev === 'finish' || ev === 'prefinish';
573337
- const isArrayBufferLike = (b) => b instanceof ArrayBuffer ||
573338
- (!!b &&
573339
- typeof b === 'object' &&
573340
- b.constructor &&
573341
- b.constructor.name === 'ArrayBuffer' &&
573342
- b.byteLength >= 0);
573343
- const isArrayBufferView = (b) => !Buffer.isBuffer(b) && ArrayBuffer.isView(b);
573344
- /**
573345
- * Internal class representing a pipe to a destination stream.
573346
- *
573347
- * @internal
573348
- */
573349
- class Pipe {
573350
- src;
573351
- dest;
573352
- opts;
573353
- ondrain;
573354
- constructor(src, dest, opts) {
573355
- this.src = src;
573356
- this.dest = dest;
573357
- this.opts = opts;
573358
- this.ondrain = () => src[RESUME]();
573359
- this.dest.on('drain', this.ondrain);
573360
- }
573361
- unpipe() {
573362
- this.dest.removeListener('drain', this.ondrain);
573363
- }
573364
- // only here for the prototype
573365
- /* c8 ignore start */
573366
- proxyErrors(_er) { }
573367
- /* c8 ignore stop */
573368
- end() {
573369
- this.unpipe();
573370
- if (this.opts.end)
573371
- this.dest.end();
573372
- }
573373
- }
573374
- /**
573375
- * Internal class representing a pipe to a destination stream where
573376
- * errors are proxied.
573377
- *
573378
- * @internal
573379
- */
573380
- class PipeProxyErrors extends Pipe {
573381
- unpipe() {
573382
- this.src.removeListener('error', this.proxyErrors);
573383
- super.unpipe();
573384
- }
573385
- constructor(src, dest, opts) {
573386
- super(src, dest, opts);
573387
- this.proxyErrors = er => dest.emit('error', er);
573388
- src.on('error', this.proxyErrors);
573389
- }
573390
- }
573391
- const isObjectModeOptions = (o) => !!o.objectMode;
573392
- const isEncodingOptions = (o) => !o.objectMode && !!o.encoding && o.encoding !== 'buffer';
573393
- /**
573394
- * Main export, the Minipass class
573395
- *
573396
- * `RType` is the type of data emitted, defaults to Buffer
573397
- *
573398
- * `WType` is the type of data to be written, if RType is buffer or string,
573399
- * then any {@link Minipass.ContiguousData} is allowed.
573400
- *
573401
- * `Events` is the set of event handler signatures that this object
573402
- * will emit, see {@link Minipass.Events}
573403
- */
573404
- class Minipass extends node_events_1.EventEmitter {
573405
- [FLOWING] = false;
573406
- [PAUSED] = false;
573407
- [PIPES] = [];
573408
- [BUFFER] = [];
573409
- [OBJECTMODE];
573410
- [ENCODING];
573411
- [ASYNC];
573412
- [DECODER];
573413
- [EOF] = false;
573414
- [EMITTED_END] = false;
573415
- [EMITTING_END] = false;
573416
- [CLOSED] = false;
573417
- [EMITTED_ERROR] = null;
573418
- [BUFFERLENGTH] = 0;
573419
- [DESTROYED] = false;
573420
- [SIGNAL];
573421
- [ABORTED] = false;
573422
- [DATALISTENERS] = 0;
573423
- [DISCARDED] = false;
573424
- /**
573425
- * true if the stream can be written
573426
- */
573427
- writable = true;
573428
- /**
573429
- * true if the stream can be read
573430
- */
573431
- readable = true;
573432
- /**
573433
- * If `RType` is Buffer, then options do not need to be provided.
573434
- * Otherwise, an options object must be provided to specify either
573435
- * {@link Minipass.SharedOptions.objectMode} or
573436
- * {@link Minipass.SharedOptions.encoding}, as appropriate.
573437
- */
573438
- constructor(...args) {
573439
- const options = (args[0] ||
573440
- {});
573441
- super();
573442
- if (options.objectMode && typeof options.encoding === 'string') {
573443
- throw new TypeError('Encoding and objectMode may not be used together');
573444
- }
573445
- if (isObjectModeOptions(options)) {
573446
- this[OBJECTMODE] = true;
573447
- this[ENCODING] = null;
573448
- }
573449
- else if (isEncodingOptions(options)) {
573450
- this[ENCODING] = options.encoding;
573451
- this[OBJECTMODE] = false;
573452
- }
573453
- else {
573454
- this[OBJECTMODE] = false;
573455
- this[ENCODING] = null;
573456
- }
573457
- this[ASYNC] = !!options.async;
573458
- this[DECODER] = this[ENCODING]
573459
- ? new node_string_decoder_1.StringDecoder(this[ENCODING])
573460
- : null;
573461
- //@ts-ignore - private option for debugging and testing
573462
- if (options && options.debugExposeBuffer === true) {
573463
- Object.defineProperty(this, 'buffer', { get: () => this[BUFFER] });
573464
- }
573465
- //@ts-ignore - private option for debugging and testing
573466
- if (options && options.debugExposePipes === true) {
573467
- Object.defineProperty(this, 'pipes', { get: () => this[PIPES] });
573468
- }
573469
- const { signal } = options;
573470
- if (signal) {
573471
- this[SIGNAL] = signal;
573472
- if (signal.aborted) {
573473
- this[ABORT]();
573474
- }
573475
- else {
573476
- signal.addEventListener('abort', () => this[ABORT]());
573477
- }
573478
- }
573479
- }
573480
- /**
573481
- * The amount of data stored in the buffer waiting to be read.
573482
- *
573483
- * For Buffer strings, this will be the total byte length.
573484
- * For string encoding streams, this will be the string character length,
573485
- * according to JavaScript's `string.length` logic.
573486
- * For objectMode streams, this is a count of the items waiting to be
573487
- * emitted.
573488
- */
573489
- get bufferLength() {
573490
- return this[BUFFERLENGTH];
573491
- }
573492
- /**
573493
- * The `BufferEncoding` currently in use, or `null`
573494
- */
573495
- get encoding() {
573496
- return this[ENCODING];
573497
- }
573498
- /**
573499
- * @deprecated - This is a read only property
573500
- */
573501
- set encoding(_enc) {
573502
- throw new Error('Encoding must be set at instantiation time');
573503
- }
573504
- /**
573505
- * @deprecated - Encoding may only be set at instantiation time
573506
- */
573507
- setEncoding(_enc) {
573508
- throw new Error('Encoding must be set at instantiation time');
573509
- }
573510
- /**
573511
- * True if this is an objectMode stream
573512
- */
573513
- get objectMode() {
573514
- return this[OBJECTMODE];
573515
- }
573516
- /**
573517
- * @deprecated - This is a read-only property
573518
- */
573519
- set objectMode(_om) {
573520
- throw new Error('objectMode must be set at instantiation time');
573521
- }
573522
- /**
573523
- * true if this is an async stream
573524
- */
573525
- get ['async']() {
573526
- return this[ASYNC];
573527
- }
573528
- /**
573529
- * Set to true to make this stream async.
573530
- *
573531
- * Once set, it cannot be unset, as this would potentially cause incorrect
573532
- * behavior. Ie, a sync stream can be made async, but an async stream
573533
- * cannot be safely made sync.
573534
- */
573535
- set ['async'](a) {
573536
- this[ASYNC] = this[ASYNC] || !!a;
573537
- }
573538
- // drop everything and get out of the flow completely
573539
- [ABORT]() {
573540
- this[ABORTED] = true;
573541
- this.emit('abort', this[SIGNAL]?.reason);
573542
- this.destroy(this[SIGNAL]?.reason);
573543
- }
573544
- /**
573545
- * True if the stream has been aborted.
573546
- */
573547
- get aborted() {
573548
- return this[ABORTED];
573549
- }
573550
- /**
573551
- * No-op setter. Stream aborted status is set via the AbortSignal provided
573552
- * in the constructor options.
573553
- */
573554
- set aborted(_) { }
573555
- write(chunk, encoding, cb) {
573556
- if (this[ABORTED])
573557
- return false;
573558
- if (this[EOF])
573559
- throw new Error('write after end');
573560
- if (this[DESTROYED]) {
573561
- this.emit('error', Object.assign(new Error('Cannot call write after a stream was destroyed'), { code: 'ERR_STREAM_DESTROYED' }));
573562
- return true;
573563
- }
573564
- if (typeof encoding === 'function') {
573565
- cb = encoding;
573566
- encoding = 'utf8';
573567
- }
573568
- if (!encoding)
573569
- encoding = 'utf8';
573570
- const fn = this[ASYNC] ? defer : nodefer;
573571
- // convert array buffers and typed array views into buffers
573572
- // at some point in the future, we may want to do the opposite!
573573
- // leave strings and buffers as-is
573574
- // anything is only allowed if in object mode, so throw
573575
- if (!this[OBJECTMODE] && !Buffer.isBuffer(chunk)) {
573576
- if (isArrayBufferView(chunk)) {
573577
- //@ts-ignore - sinful unsafe type changing
573578
- chunk = Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength);
573579
- }
573580
- else if (isArrayBufferLike(chunk)) {
573581
- //@ts-ignore - sinful unsafe type changing
573582
- chunk = Buffer.from(chunk);
573583
- }
573584
- else if (typeof chunk !== 'string') {
573585
- throw new Error('Non-contiguous data written to non-objectMode stream');
573586
- }
573587
- }
573588
- // handle object mode up front, since it's simpler
573589
- // this yields better performance, fewer checks later.
573590
- if (this[OBJECTMODE]) {
573591
- // maybe impossible?
573592
- /* c8 ignore start */
573593
- if (this[FLOWING] && this[BUFFERLENGTH] !== 0)
573594
- this[FLUSH](true);
573595
- /* c8 ignore stop */
573596
- if (this[FLOWING])
573597
- this.emit('data', chunk);
573598
- else
573599
- this[BUFFERPUSH](chunk);
573600
- if (this[BUFFERLENGTH] !== 0)
573601
- this.emit('readable');
573602
- if (cb)
573603
- fn(cb);
573604
- return this[FLOWING];
573605
- }
573606
- // at this point the chunk is a buffer or string
573607
- // don't buffer it up or send it to the decoder
573608
- if (!chunk.length) {
573609
- if (this[BUFFERLENGTH] !== 0)
573610
- this.emit('readable');
573611
- if (cb)
573612
- fn(cb);
573613
- return this[FLOWING];
573614
- }
573615
- // fast-path writing strings of same encoding to a stream with
573616
- // an empty buffer, skipping the buffer/decoder dance
573617
- if (typeof chunk === 'string' &&
573618
- // unless it is a string already ready for us to use
573619
- !(encoding === this[ENCODING] && !this[DECODER]?.lastNeed)) {
573620
- //@ts-ignore - sinful unsafe type change
573621
- chunk = Buffer.from(chunk, encoding);
573622
- }
573623
- if (Buffer.isBuffer(chunk) && this[ENCODING]) {
573624
- //@ts-ignore - sinful unsafe type change
573625
- chunk = this[DECODER].write(chunk);
573626
- }
573627
- // Note: flushing CAN potentially switch us into not-flowing mode
573628
- if (this[FLOWING] && this[BUFFERLENGTH] !== 0)
573629
- this[FLUSH](true);
573630
- if (this[FLOWING])
573631
- this.emit('data', chunk);
573632
- else
573633
- this[BUFFERPUSH](chunk);
573634
- if (this[BUFFERLENGTH] !== 0)
573635
- this.emit('readable');
573636
- if (cb)
573637
- fn(cb);
573638
- return this[FLOWING];
573639
- }
573640
- /**
573641
- * Low-level explicit read method.
573642
- *
573643
- * In objectMode, the argument is ignored, and one item is returned if
573644
- * available.
573645
- *
573646
- * `n` is the number of bytes (or in the case of encoding streams,
573647
- * characters) to consume. If `n` is not provided, then the entire buffer
573648
- * is returned, or `null` is returned if no data is available.
573649
- *
573650
- * If `n` is greater that the amount of data in the internal buffer,
573651
- * then `null` is returned.
573652
- */
573653
- read(n) {
573654
- if (this[DESTROYED])
573655
- return null;
573656
- this[DISCARDED] = false;
573657
- if (this[BUFFERLENGTH] === 0 ||
573658
- n === 0 ||
573659
- (n && n > this[BUFFERLENGTH])) {
573660
- this[MAYBE_EMIT_END]();
573661
- return null;
573662
- }
573663
- if (this[OBJECTMODE])
573664
- n = null;
573665
- if (this[BUFFER].length > 1 && !this[OBJECTMODE]) {
573666
- // not object mode, so if we have an encoding, then RType is string
573667
- // otherwise, must be Buffer
573668
- this[BUFFER] = [
573669
- (this[ENCODING]
573670
- ? this[BUFFER].join('')
573671
- : Buffer.concat(this[BUFFER], this[BUFFERLENGTH])),
573672
- ];
573673
- }
573674
- const ret = this[READ](n || null, this[BUFFER][0]);
573675
- this[MAYBE_EMIT_END]();
573676
- return ret;
573677
- }
573678
- [READ](n, chunk) {
573679
- if (this[OBJECTMODE])
573680
- this[BUFFERSHIFT]();
573681
- else {
573682
- const c = chunk;
573683
- if (n === c.length || n === null)
573684
- this[BUFFERSHIFT]();
573685
- else if (typeof c === 'string') {
573686
- this[BUFFER][0] = c.slice(n);
573687
- chunk = c.slice(0, n);
573688
- this[BUFFERLENGTH] -= n;
573689
- }
573690
- else {
573691
- this[BUFFER][0] = c.subarray(n);
573692
- chunk = c.subarray(0, n);
573693
- this[BUFFERLENGTH] -= n;
573694
- }
573695
- }
573696
- this.emit('data', chunk);
573697
- if (!this[BUFFER].length && !this[EOF])
573698
- this.emit('drain');
573699
- return chunk;
573700
- }
573701
- end(chunk, encoding, cb) {
573702
- if (typeof chunk === 'function') {
573703
- cb = chunk;
573704
- chunk = undefined;
573705
- }
573706
- if (typeof encoding === 'function') {
573707
- cb = encoding;
573708
- encoding = 'utf8';
573709
- }
573710
- if (chunk !== undefined)
573711
- this.write(chunk, encoding);
573712
- if (cb)
573713
- this.once('end', cb);
573714
- this[EOF] = true;
573715
- this.writable = false;
573716
- // if we haven't written anything, then go ahead and emit,
573717
- // even if we're not reading.
573718
- // we'll re-emit if a new 'end' listener is added anyway.
573719
- // This makes MP more suitable to write-only use cases.
573720
- if (this[FLOWING] || !this[PAUSED])
573721
- this[MAYBE_EMIT_END]();
573722
- return this;
573723
- }
573724
- // don't let the internal resume be overwritten
573725
- [RESUME]() {
573726
- if (this[DESTROYED])
573727
- return;
573728
- if (!this[DATALISTENERS] && !this[PIPES].length) {
573729
- this[DISCARDED] = true;
573730
- }
573731
- this[PAUSED] = false;
573732
- this[FLOWING] = true;
573733
- this.emit('resume');
573734
- if (this[BUFFER].length)
573735
- this[FLUSH]();
573736
- else if (this[EOF])
573737
- this[MAYBE_EMIT_END]();
573738
- else
573739
- this.emit('drain');
573740
- }
573741
- /**
573742
- * Resume the stream if it is currently in a paused state
573743
- *
573744
- * If called when there are no pipe destinations or `data` event listeners,
573745
- * this will place the stream in a "discarded" state, where all data will
573746
- * be thrown away. The discarded state is removed if a pipe destination or
573747
- * data handler is added, if pause() is called, or if any synchronous or
573748
- * asynchronous iteration is started.
573749
- */
573750
- resume() {
573751
- return this[RESUME]();
573752
- }
573753
- /**
573754
- * Pause the stream
573755
- */
573756
- pause() {
573757
- this[FLOWING] = false;
573758
- this[PAUSED] = true;
573759
- this[DISCARDED] = false;
573760
- }
573761
- /**
573762
- * true if the stream has been forcibly destroyed
573763
- */
573764
- get destroyed() {
573765
- return this[DESTROYED];
573766
- }
573767
- /**
573768
- * true if the stream is currently in a flowing state, meaning that
573769
- * any writes will be immediately emitted.
573770
- */
573771
- get flowing() {
573772
- return this[FLOWING];
573773
- }
573774
- /**
573775
- * true if the stream is currently in a paused state
573776
- */
573777
- get paused() {
573778
- return this[PAUSED];
573779
- }
573780
- [BUFFERPUSH](chunk) {
573781
- if (this[OBJECTMODE])
573782
- this[BUFFERLENGTH] += 1;
573783
- else
573784
- this[BUFFERLENGTH] += chunk.length;
573785
- this[BUFFER].push(chunk);
573786
- }
573787
- [BUFFERSHIFT]() {
573788
- if (this[OBJECTMODE])
573789
- this[BUFFERLENGTH] -= 1;
573790
- else
573791
- this[BUFFERLENGTH] -= this[BUFFER][0].length;
573792
- return this[BUFFER].shift();
573793
- }
573794
- [FLUSH](noDrain = false) {
573795
- do { } while (this[FLUSHCHUNK](this[BUFFERSHIFT]()) &&
573796
- this[BUFFER].length);
573797
- if (!noDrain && !this[BUFFER].length && !this[EOF])
573798
- this.emit('drain');
573799
- }
573800
- [FLUSHCHUNK](chunk) {
573801
- this.emit('data', chunk);
573802
- return this[FLOWING];
573803
- }
573804
- /**
573805
- * Pipe all data emitted by this stream into the destination provided.
573806
- *
573807
- * Triggers the flow of data.
573808
- */
573809
- pipe(dest, opts) {
573810
- if (this[DESTROYED])
573811
- return dest;
573812
- this[DISCARDED] = false;
573813
- const ended = this[EMITTED_END];
573814
- opts = opts || {};
573815
- if (dest === proc.stdout || dest === proc.stderr)
573816
- opts.end = false;
573817
- else
573818
- opts.end = opts.end !== false;
573819
- opts.proxyErrors = !!opts.proxyErrors;
573820
- // piping an ended stream ends immediately
573821
- if (ended) {
573822
- if (opts.end)
573823
- dest.end();
573824
- }
573825
- else {
573826
- // "as" here just ignores the WType, which pipes don't care about,
573827
- // since they're only consuming from us, and writing to the dest
573828
- this[PIPES].push(!opts.proxyErrors
573829
- ? new Pipe(this, dest, opts)
573830
- : new PipeProxyErrors(this, dest, opts));
573831
- if (this[ASYNC])
573832
- defer(() => this[RESUME]());
573833
- else
573834
- this[RESUME]();
573835
- }
573836
- return dest;
573837
- }
573838
- /**
573839
- * Fully unhook a piped destination stream.
573840
- *
573841
- * If the destination stream was the only consumer of this stream (ie,
573842
- * there are no other piped destinations or `'data'` event listeners)
573843
- * then the flow of data will stop until there is another consumer or
573844
- * {@link Minipass#resume} is explicitly called.
573845
- */
573846
- unpipe(dest) {
573847
- const p = this[PIPES].find(p => p.dest === dest);
573848
- if (p) {
573849
- if (this[PIPES].length === 1) {
573850
- if (this[FLOWING] && this[DATALISTENERS] === 0) {
573851
- this[FLOWING] = false;
573852
- }
573853
- this[PIPES] = [];
573854
- }
573855
- else
573856
- this[PIPES].splice(this[PIPES].indexOf(p), 1);
573857
- p.unpipe();
573858
- }
573859
- }
573860
- /**
573861
- * Alias for {@link Minipass#on}
573862
- */
573863
- addListener(ev, handler) {
573864
- return this.on(ev, handler);
573865
- }
573866
- /**
573867
- * Mostly identical to `EventEmitter.on`, with the following
573868
- * behavior differences to prevent data loss and unnecessary hangs:
573869
- *
573870
- * - Adding a 'data' event handler will trigger the flow of data
573871
- *
573872
- * - Adding a 'readable' event handler when there is data waiting to be read
573873
- * will cause 'readable' to be emitted immediately.
573874
- *
573875
- * - Adding an 'endish' event handler ('end', 'finish', etc.) which has
573876
- * already passed will cause the event to be emitted immediately and all
573877
- * handlers removed.
573878
- *
573879
- * - Adding an 'error' event handler after an error has been emitted will
573880
- * cause the event to be re-emitted immediately with the error previously
573881
- * raised.
573882
- */
573883
- on(ev, handler) {
573884
- const ret = super.on(ev, handler);
573885
- if (ev === 'data') {
573886
- this[DISCARDED] = false;
573887
- this[DATALISTENERS]++;
573888
- if (!this[PIPES].length && !this[FLOWING]) {
573889
- this[RESUME]();
573890
- }
573891
- }
573892
- else if (ev === 'readable' && this[BUFFERLENGTH] !== 0) {
573893
- super.emit('readable');
573894
- }
573895
- else if (isEndish(ev) && this[EMITTED_END]) {
573896
- super.emit(ev);
573897
- this.removeAllListeners(ev);
573898
- }
573899
- else if (ev === 'error' && this[EMITTED_ERROR]) {
573900
- const h = handler;
573901
- if (this[ASYNC])
573902
- defer(() => h.call(this, this[EMITTED_ERROR]));
573903
- else
573904
- h.call(this, this[EMITTED_ERROR]);
573905
- }
573906
- return ret;
573907
- }
573908
- /**
573909
- * Alias for {@link Minipass#off}
573910
- */
573911
- removeListener(ev, handler) {
573912
- return this.off(ev, handler);
573913
- }
573914
- /**
573915
- * Mostly identical to `EventEmitter.off`
573916
- *
573917
- * If a 'data' event handler is removed, and it was the last consumer
573918
- * (ie, there are no pipe destinations or other 'data' event listeners),
573919
- * then the flow of data will stop until there is another consumer or
573920
- * {@link Minipass#resume} is explicitly called.
573921
- */
573922
- off(ev, handler) {
573923
- const ret = super.off(ev, handler);
573924
- // if we previously had listeners, and now we don't, and we don't
573925
- // have any pipes, then stop the flow, unless it's been explicitly
573926
- // put in a discarded flowing state via stream.resume().
573927
- if (ev === 'data') {
573928
- this[DATALISTENERS] = this.listeners('data').length;
573929
- if (this[DATALISTENERS] === 0 &&
573930
- !this[DISCARDED] &&
573931
- !this[PIPES].length) {
573932
- this[FLOWING] = false;
573933
- }
573934
- }
573935
- return ret;
573936
- }
573937
- /**
573938
- * Mostly identical to `EventEmitter.removeAllListeners`
573939
- *
573940
- * If all 'data' event handlers are removed, and they were the last consumer
573941
- * (ie, there are no pipe destinations), then the flow of data will stop
573942
- * until there is another consumer or {@link Minipass#resume} is explicitly
573943
- * called.
573944
- */
573945
- removeAllListeners(ev) {
573946
- const ret = super.removeAllListeners(ev);
573947
- if (ev === 'data' || ev === undefined) {
573948
- this[DATALISTENERS] = 0;
573949
- if (!this[DISCARDED] && !this[PIPES].length) {
573950
- this[FLOWING] = false;
573951
- }
573952
- }
573953
- return ret;
573954
- }
573955
- /**
573956
- * true if the 'end' event has been emitted
573957
- */
573958
- get emittedEnd() {
573959
- return this[EMITTED_END];
573960
- }
573961
- [MAYBE_EMIT_END]() {
573962
- if (!this[EMITTING_END] &&
573963
- !this[EMITTED_END] &&
573964
- !this[DESTROYED] &&
573965
- this[BUFFER].length === 0 &&
573966
- this[EOF]) {
573967
- this[EMITTING_END] = true;
573968
- this.emit('end');
573969
- this.emit('prefinish');
573970
- this.emit('finish');
573971
- if (this[CLOSED])
573972
- this.emit('close');
573973
- this[EMITTING_END] = false;
573974
- }
573975
- }
573976
- /**
573977
- * Mostly identical to `EventEmitter.emit`, with the following
573978
- * behavior differences to prevent data loss and unnecessary hangs:
573979
- *
573980
- * If the stream has been destroyed, and the event is something other
573981
- * than 'close' or 'error', then `false` is returned and no handlers
573982
- * are called.
573983
- *
573984
- * If the event is 'end', and has already been emitted, then the event
573985
- * is ignored. If the stream is in a paused or non-flowing state, then
573986
- * the event will be deferred until data flow resumes. If the stream is
573987
- * async, then handlers will be called on the next tick rather than
573988
- * immediately.
573989
- *
573990
- * If the event is 'close', and 'end' has not yet been emitted, then
573991
- * the event will be deferred until after 'end' is emitted.
573992
- *
573993
- * If the event is 'error', and an AbortSignal was provided for the stream,
573994
- * and there are no listeners, then the event is ignored, matching the
573995
- * behavior of node core streams in the presense of an AbortSignal.
573996
- *
573997
- * If the event is 'finish' or 'prefinish', then all listeners will be
573998
- * removed after emitting the event, to prevent double-firing.
573999
- */
574000
- emit(ev, ...args) {
574001
- const data = args[0];
574002
- // error and close are only events allowed after calling destroy()
574003
- if (ev !== 'error' &&
574004
- ev !== 'close' &&
574005
- ev !== DESTROYED &&
574006
- this[DESTROYED]) {
574007
- return false;
574008
- }
574009
- else if (ev === 'data') {
574010
- return !this[OBJECTMODE] && !data
574011
- ? false
574012
- : this[ASYNC]
574013
- ? (defer(() => this[EMITDATA](data)), true)
574014
- : this[EMITDATA](data);
574015
- }
574016
- else if (ev === 'end') {
574017
- return this[EMITEND]();
574018
- }
574019
- else if (ev === 'close') {
574020
- this[CLOSED] = true;
574021
- // don't emit close before 'end' and 'finish'
574022
- if (!this[EMITTED_END] && !this[DESTROYED])
574023
- return false;
574024
- const ret = super.emit('close');
574025
- this.removeAllListeners('close');
574026
- return ret;
574027
- }
574028
- else if (ev === 'error') {
574029
- this[EMITTED_ERROR] = data;
574030
- super.emit(ERROR, data);
574031
- const ret = !this[SIGNAL] || this.listeners('error').length
574032
- ? super.emit('error', data)
574033
- : false;
574034
- this[MAYBE_EMIT_END]();
574035
- return ret;
574036
- }
574037
- else if (ev === 'resume') {
574038
- const ret = super.emit('resume');
574039
- this[MAYBE_EMIT_END]();
574040
- return ret;
574041
- }
574042
- else if (ev === 'finish' || ev === 'prefinish') {
574043
- const ret = super.emit(ev);
574044
- this.removeAllListeners(ev);
574045
- return ret;
574046
- }
574047
- // Some other unknown event
574048
- const ret = super.emit(ev, ...args);
574049
- this[MAYBE_EMIT_END]();
574050
- return ret;
574051
- }
574052
- [EMITDATA](data) {
574053
- for (const p of this[PIPES]) {
574054
- if (p.dest.write(data) === false)
574055
- this.pause();
574056
- }
574057
- const ret = this[DISCARDED] ? false : super.emit('data', data);
574058
- this[MAYBE_EMIT_END]();
574059
- return ret;
574060
- }
574061
- [EMITEND]() {
574062
- if (this[EMITTED_END])
574063
- return false;
574064
- this[EMITTED_END] = true;
574065
- this.readable = false;
574066
- return this[ASYNC]
574067
- ? (defer(() => this[EMITEND2]()), true)
574068
- : this[EMITEND2]();
574069
- }
574070
- [EMITEND2]() {
574071
- if (this[DECODER]) {
574072
- const data = this[DECODER].end();
574073
- if (data) {
574074
- for (const p of this[PIPES]) {
574075
- p.dest.write(data);
574076
- }
574077
- if (!this[DISCARDED])
574078
- super.emit('data', data);
574079
- }
574080
- }
574081
- for (const p of this[PIPES]) {
574082
- p.end();
574083
- }
574084
- const ret = super.emit('end');
574085
- this.removeAllListeners('end');
574086
- return ret;
574087
- }
574088
- /**
574089
- * Return a Promise that resolves to an array of all emitted data once
574090
- * the stream ends.
574091
- */
574092
- async collect() {
574093
- const buf = Object.assign([], {
574094
- dataLength: 0,
574095
- });
574096
- if (!this[OBJECTMODE])
574097
- buf.dataLength = 0;
574098
- // set the promise first, in case an error is raised
574099
- // by triggering the flow here.
574100
- const p = this.promise();
574101
- this.on('data', c => {
574102
- buf.push(c);
574103
- if (!this[OBJECTMODE])
574104
- buf.dataLength += c.length;
574105
- });
574106
- await p;
574107
- return buf;
574108
- }
574109
- /**
574110
- * Return a Promise that resolves to the concatenation of all emitted data
574111
- * once the stream ends.
574112
- *
574113
- * Not allowed on objectMode streams.
574114
- */
574115
- async concat() {
574116
- if (this[OBJECTMODE]) {
574117
- throw new Error('cannot concat in objectMode');
574118
- }
574119
- const buf = await this.collect();
574120
- return (this[ENCODING]
574121
- ? buf.join('')
574122
- : Buffer.concat(buf, buf.dataLength));
574123
- }
574124
- /**
574125
- * Return a void Promise that resolves once the stream ends.
574126
- */
574127
- async promise() {
574128
- return new Promise((resolve, reject) => {
574129
- this.on(DESTROYED, () => reject(new Error('stream destroyed')));
574130
- this.on('error', er => reject(er));
574131
- this.on('end', () => resolve());
574132
- });
574133
- }
574134
- /**
574135
- * Asynchronous `for await of` iteration.
574136
- *
574137
- * This will continue emitting all chunks until the stream terminates.
574138
- */
574139
- [Symbol.asyncIterator]() {
574140
- // set this up front, in case the consumer doesn't call next()
574141
- // right away.
574142
- this[DISCARDED] = false;
574143
- let stopped = false;
574144
- const stop = async () => {
574145
- this.pause();
574146
- stopped = true;
574147
- return { value: undefined, done: true };
574148
- };
574149
- const next = () => {
574150
- if (stopped)
574151
- return stop();
574152
- const res = this.read();
574153
- if (res !== null)
574154
- return Promise.resolve({ done: false, value: res });
574155
- if (this[EOF])
574156
- return stop();
574157
- let resolve;
574158
- let reject;
574159
- const onerr = (er) => {
574160
- this.off('data', ondata);
574161
- this.off('end', onend);
574162
- this.off(DESTROYED, ondestroy);
574163
- stop();
574164
- reject(er);
574165
- };
574166
- const ondata = (value) => {
574167
- this.off('error', onerr);
574168
- this.off('end', onend);
574169
- this.off(DESTROYED, ondestroy);
574170
- this.pause();
574171
- resolve({ value, done: !!this[EOF] });
574172
- };
574173
- const onend = () => {
574174
- this.off('error', onerr);
574175
- this.off('data', ondata);
574176
- this.off(DESTROYED, ondestroy);
574177
- stop();
574178
- resolve({ done: true, value: undefined });
574179
- };
574180
- const ondestroy = () => onerr(new Error('stream destroyed'));
574181
- return new Promise((res, rej) => {
574182
- reject = rej;
574183
- resolve = res;
574184
- this.once(DESTROYED, ondestroy);
574185
- this.once('error', onerr);
574186
- this.once('end', onend);
574187
- this.once('data', ondata);
574188
- });
574189
- };
574190
- return {
574191
- next,
574192
- throw: stop,
574193
- return: stop,
574194
- [Symbol.asyncIterator]() {
574195
- return this;
574196
- },
574197
- };
574198
- }
574199
- /**
574200
- * Synchronous `for of` iteration.
574201
- *
574202
- * The iteration will terminate when the internal buffer runs out, even
574203
- * if the stream has not yet terminated.
574204
- */
574205
- [Symbol.iterator]() {
574206
- // set this up front, in case the consumer doesn't call next()
574207
- // right away.
574208
- this[DISCARDED] = false;
574209
- let stopped = false;
574210
- const stop = () => {
574211
- this.pause();
574212
- this.off(ERROR, stop);
574213
- this.off(DESTROYED, stop);
574214
- this.off('end', stop);
574215
- stopped = true;
574216
- return { done: true, value: undefined };
574217
- };
574218
- const next = () => {
574219
- if (stopped)
574220
- return stop();
574221
- const value = this.read();
574222
- return value === null ? stop() : { done: false, value };
574223
- };
574224
- this.once('end', stop);
574225
- this.once(ERROR, stop);
574226
- this.once(DESTROYED, stop);
574227
- return {
574228
- next,
574229
- throw: stop,
574230
- return: stop,
574231
- [Symbol.iterator]() {
574232
- return this;
574233
- },
574234
- };
574235
- }
574236
- /**
574237
- * Destroy a stream, preventing it from being used for any further purpose.
574238
- *
574239
- * If the stream has a `close()` method, then it will be called on
574240
- * destruction.
574241
- *
574242
- * After destruction, any attempt to write data, read data, or emit most
574243
- * events will be ignored.
574244
- *
574245
- * If an error argument is provided, then it will be emitted in an
574246
- * 'error' event.
574247
- */
574248
- destroy(er) {
574249
- if (this[DESTROYED]) {
574250
- if (er)
574251
- this.emit('error', er);
574252
- else
574253
- this.emit(DESTROYED);
574254
- return this;
574255
- }
574256
- this[DESTROYED] = true;
574257
- this[DISCARDED] = true;
574258
- // throw away all buffered data, it's never coming out
574259
- this[BUFFER].length = 0;
574260
- this[BUFFERLENGTH] = 0;
574261
- const wc = this;
574262
- if (typeof wc.close === 'function' && !this[CLOSED])
574263
- wc.close();
574264
- if (er)
574265
- this.emit('error', er);
574266
- // if no error to emit, still reject pending promises
574267
- else
574268
- this.emit(DESTROYED);
574269
- return this;
574270
- }
574271
- /**
574272
- * Alias for {@link isStream}
574273
- *
574274
- * Former export location, maintained for backwards compatibility.
574275
- *
574276
- * @deprecated
574277
- */
574278
- static get isStream() {
574279
- return exports.isStream;
574280
- }
574281
- }
574282
- exports.Minipass = Minipass;
574283
- //# sourceMappingURL=index.js.map
574284
-
574285
573353
  /***/ }),
574286
573354
 
574287
573355
  /***/ 45430:
@@ -590860,138 +589928,6 @@ function words (decode) {
590860
589928
  }
590861
589929
 
590862
589930
 
590863
- /***/ }),
590864
-
590865
- /***/ 46911:
590866
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
590867
-
590868
- const isWindows = process.platform === 'win32' ||
590869
- process.env.OSTYPE === 'cygwin' ||
590870
- process.env.OSTYPE === 'msys'
590871
-
590872
- const path = __webpack_require__(16928)
590873
- const COLON = isWindows ? ';' : ':'
590874
- const isexe = __webpack_require__(16262)
590875
-
590876
- const getNotFoundError = (cmd) =>
590877
- Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' })
590878
-
590879
- const getPathInfo = (cmd, opt) => {
590880
- const colon = opt.colon || COLON
590881
-
590882
- // If it has a slash, then we don't bother searching the pathenv.
590883
- // just check the file itself, and that's it.
590884
- const pathEnv = cmd.match(/\//) || isWindows && cmd.match(/\\/) ? ['']
590885
- : (
590886
- [
590887
- // windows always checks the cwd first
590888
- ...(isWindows ? [process.cwd()] : []),
590889
- ...(opt.path || process.env.PATH ||
590890
- /* istanbul ignore next: very unusual */ '').split(colon),
590891
- ]
590892
- )
590893
- const pathExtExe = isWindows
590894
- ? opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM'
590895
- : ''
590896
- const pathExt = isWindows ? pathExtExe.split(colon) : ['']
590897
-
590898
- if (isWindows) {
590899
- if (cmd.indexOf('.') !== -1 && pathExt[0] !== '')
590900
- pathExt.unshift('')
590901
- }
590902
-
590903
- return {
590904
- pathEnv,
590905
- pathExt,
590906
- pathExtExe,
590907
- }
590908
- }
590909
-
590910
- const which = (cmd, opt, cb) => {
590911
- if (typeof opt === 'function') {
590912
- cb = opt
590913
- opt = {}
590914
- }
590915
- if (!opt)
590916
- opt = {}
590917
-
590918
- const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)
590919
- const found = []
590920
-
590921
- const step = i => new Promise((resolve, reject) => {
590922
- if (i === pathEnv.length)
590923
- return opt.all && found.length ? resolve(found)
590924
- : reject(getNotFoundError(cmd))
590925
-
590926
- const ppRaw = pathEnv[i]
590927
- const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw
590928
-
590929
- const pCmd = path.join(pathPart, cmd)
590930
- const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd
590931
- : pCmd
590932
-
590933
- resolve(subStep(p, i, 0))
590934
- })
590935
-
590936
- const subStep = (p, i, ii) => new Promise((resolve, reject) => {
590937
- if (ii === pathExt.length)
590938
- return resolve(step(i + 1))
590939
- const ext = pathExt[ii]
590940
- isexe(p + ext, { pathExt: pathExtExe }, (er, is) => {
590941
- if (!er && is) {
590942
- if (opt.all)
590943
- found.push(p + ext)
590944
- else
590945
- return resolve(p + ext)
590946
- }
590947
- return resolve(subStep(p, i, ii + 1))
590948
- })
590949
- })
590950
-
590951
- return cb ? step(0).then(res => cb(null, res), cb) : step(0)
590952
- }
590953
-
590954
- const whichSync = (cmd, opt) => {
590955
- opt = opt || {}
590956
-
590957
- const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)
590958
- const found = []
590959
-
590960
- for (let i = 0; i < pathEnv.length; i ++) {
590961
- const ppRaw = pathEnv[i]
590962
- const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw
590963
-
590964
- const pCmd = path.join(pathPart, cmd)
590965
- const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd
590966
- : pCmd
590967
-
590968
- for (let j = 0; j < pathExt.length; j ++) {
590969
- const cur = p + pathExt[j]
590970
- try {
590971
- const is = isexe.sync(cur, { pathExt: pathExtExe })
590972
- if (is) {
590973
- if (opt.all)
590974
- found.push(cur)
590975
- else
590976
- return cur
590977
- }
590978
- } catch (ex) {}
590979
- }
590980
- }
590981
-
590982
- if (opt.all && found.length)
590983
- return found
590984
-
590985
- if (opt.nothrow)
590986
- return null
590987
-
590988
- throw getNotFoundError(cmd)
590989
- }
590990
-
590991
- module.exports = which
590992
- which.sync = whichSync
590993
-
590994
-
590995
589931
  /***/ }),
590996
589932
 
590997
589933
  /***/ 46926:
@@ -624384,75 +623320,6 @@ ucs2length.code = 'require("ajv/dist/runtime/ucs2length").default';
624384
623320
 
624385
623321
  /***/ }),
624386
623322
 
624387
- /***/ 53381:
624388
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
624389
-
624390
- "use strict";
624391
-
624392
- /**
624393
- * This is the Windows implementation of isexe, which uses the file
624394
- * extension and PATHEXT setting.
624395
- *
624396
- * @module
624397
- */
624398
- Object.defineProperty(exports, "__esModule", ({ value: true }));
624399
- exports.sync = exports.isexe = void 0;
624400
- const fs_1 = __webpack_require__(79896);
624401
- const promises_1 = __webpack_require__(91943);
624402
- /**
624403
- * Determine whether a path is executable based on the file extension
624404
- * and PATHEXT environment variable (or specified pathExt option)
624405
- */
624406
- const isexe = async (path, options = {}) => {
624407
- const { ignoreErrors = false } = options;
624408
- try {
624409
- return checkStat(await (0, promises_1.stat)(path), path, options);
624410
- }
624411
- catch (e) {
624412
- const er = e;
624413
- if (ignoreErrors || er.code === 'EACCES')
624414
- return false;
624415
- throw er;
624416
- }
624417
- };
624418
- exports.isexe = isexe;
624419
- /**
624420
- * Synchronously determine whether a path is executable based on the file
624421
- * extension and PATHEXT environment variable (or specified pathExt option)
624422
- */
624423
- const sync = (path, options = {}) => {
624424
- const { ignoreErrors = false } = options;
624425
- try {
624426
- return checkStat((0, fs_1.statSync)(path), path, options);
624427
- }
624428
- catch (e) {
624429
- const er = e;
624430
- if (ignoreErrors || er.code === 'EACCES')
624431
- return false;
624432
- throw er;
624433
- }
624434
- };
624435
- exports.sync = sync;
624436
- const checkPathExt = (path, options) => {
624437
- const { pathExt = process.env.PATHEXT || '' } = options;
624438
- const peSplit = pathExt.split(';');
624439
- if (peSplit.indexOf('') !== -1) {
624440
- return true;
624441
- }
624442
- for (let i = 0; i < peSplit.length; i++) {
624443
- const p = peSplit[i].toLowerCase();
624444
- const ext = path.substring(path.length - p.length).toLowerCase();
624445
- if (p && ext === p) {
624446
- return true;
624447
- }
624448
- }
624449
- return false;
624450
- };
624451
- const checkStat = (stat, path, options) => stat.isFile() && checkPathExt(path, options);
624452
- //# sourceMappingURL=win32.js.map
624453
-
624454
- /***/ }),
624455
-
624456
623323
  /***/ 53393:
624457
623324
  /***/ ((__unused_webpack_module, exports) => {
624458
623325
 
@@ -636186,7 +635053,7 @@ exports.GlobStream = exports.GlobWalker = exports.GlobUtil = void 0;
636186
635053
  *
636187
635054
  * @module
636188
635055
  */
636189
- const minipass_1 = __webpack_require__(45420);
635056
+ const minipass_1 = __webpack_require__(76112);
636190
635057
  const ignore_js_1 = __webpack_require__(42272);
636191
635058
  const processor_js_1 = __webpack_require__(72668);
636192
635059
  const makeIgnore = (ignore, opts) => typeof ignore === 'string' ? new ignore_js_1.Ignore([ignore], opts)
@@ -685838,6 +684705,54 @@ module.exports = {
685838
684705
  }
685839
684706
 
685840
684707
 
684708
+ /***/ }),
684709
+
684710
+ /***/ 62044:
684711
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
684712
+
684713
+ module.exports = isexe
684714
+ isexe.sync = sync
684715
+
684716
+ var fs = __webpack_require__(79896)
684717
+
684718
+ function isexe (path, options, cb) {
684719
+ fs.stat(path, function (er, stat) {
684720
+ cb(er, er ? false : checkStat(stat, options))
684721
+ })
684722
+ }
684723
+
684724
+ function sync (path, options) {
684725
+ return checkStat(fs.statSync(path), options)
684726
+ }
684727
+
684728
+ function checkStat (stat, options) {
684729
+ return stat.isFile() && checkMode(stat, options)
684730
+ }
684731
+
684732
+ function checkMode (stat, options) {
684733
+ var mod = stat.mode
684734
+ var uid = stat.uid
684735
+ var gid = stat.gid
684736
+
684737
+ var myUid = options.uid !== undefined ?
684738
+ options.uid : process.getuid && process.getuid()
684739
+ var myGid = options.gid !== undefined ?
684740
+ options.gid : process.getgid && process.getgid()
684741
+
684742
+ var u = parseInt('100', 8)
684743
+ var g = parseInt('010', 8)
684744
+ var o = parseInt('001', 8)
684745
+ var ug = u | g
684746
+
684747
+ var ret = (mod & o) ||
684748
+ (mod & g) && gid === myGid ||
684749
+ (mod & u) && uid === myUid ||
684750
+ (mod & ug) && myUid === 0
684751
+
684752
+ return ret
684753
+ }
684754
+
684755
+
685841
684756
  /***/ }),
685842
684757
 
685843
684758
  /***/ 62075:
@@ -722666,6 +721581,70 @@ function compose (middleware) {
722666
721581
  }
722667
721582
 
722668
721583
 
721584
+ /***/ }),
721585
+
721586
+ /***/ 68311:
721587
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
721588
+
721589
+ var fs = __webpack_require__(79896)
721590
+ var core
721591
+ if (process.platform === 'win32' || global.TESTING_WINDOWS) {
721592
+ core = __webpack_require__(43730)
721593
+ } else {
721594
+ core = __webpack_require__(62044)
721595
+ }
721596
+
721597
+ module.exports = isexe
721598
+ isexe.sync = sync
721599
+
721600
+ function isexe (path, options, cb) {
721601
+ if (typeof options === 'function') {
721602
+ cb = options
721603
+ options = {}
721604
+ }
721605
+
721606
+ if (!cb) {
721607
+ if (typeof Promise !== 'function') {
721608
+ throw new TypeError('callback not provided')
721609
+ }
721610
+
721611
+ return new Promise(function (resolve, reject) {
721612
+ isexe(path, options || {}, function (er, is) {
721613
+ if (er) {
721614
+ reject(er)
721615
+ } else {
721616
+ resolve(is)
721617
+ }
721618
+ })
721619
+ })
721620
+ }
721621
+
721622
+ core(path, options || {}, function (er, is) {
721623
+ // ignore EACCES because that just means we aren't allowed to run it
721624
+ if (er) {
721625
+ if (er.code === 'EACCES' || options && options.ignoreErrors) {
721626
+ er = null
721627
+ is = false
721628
+ }
721629
+ }
721630
+ cb(er, is)
721631
+ })
721632
+ }
721633
+
721634
+ function sync (path, options) {
721635
+ // my kingdom for a filtered catch
721636
+ try {
721637
+ return core.sync(path, options || {})
721638
+ } catch (er) {
721639
+ if (options && options.ignoreErrors || er.code === 'EACCES') {
721640
+ return false
721641
+ } else {
721642
+ throw er
721643
+ }
721644
+ }
721645
+ }
721646
+
721647
+
722669
721648
  /***/ }),
722670
721649
 
722671
721650
  /***/ 68329:
@@ -739684,80 +738663,6 @@ conversions["RegExp"] = function (V, opts) {
739684
738663
  };
739685
738664
 
739686
738665
 
739687
- /***/ }),
739688
-
739689
- /***/ 71481:
739690
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
739691
-
739692
- "use strict";
739693
-
739694
- /**
739695
- * This is the Posix implementation of isexe, which uses the file
739696
- * mode and uid/gid values.
739697
- *
739698
- * @module
739699
- */
739700
- Object.defineProperty(exports, "__esModule", ({ value: true }));
739701
- exports.sync = exports.isexe = void 0;
739702
- const fs_1 = __webpack_require__(79896);
739703
- const promises_1 = __webpack_require__(91943);
739704
- /**
739705
- * Determine whether a path is executable according to the mode and
739706
- * current (or specified) user and group IDs.
739707
- */
739708
- const isexe = async (path, options = {}) => {
739709
- const { ignoreErrors = false } = options;
739710
- try {
739711
- return checkStat(await (0, promises_1.stat)(path), options);
739712
- }
739713
- catch (e) {
739714
- const er = e;
739715
- if (ignoreErrors || er.code === 'EACCES')
739716
- return false;
739717
- throw er;
739718
- }
739719
- };
739720
- exports.isexe = isexe;
739721
- /**
739722
- * Synchronously determine whether a path is executable according to
739723
- * the mode and current (or specified) user and group IDs.
739724
- */
739725
- const sync = (path, options = {}) => {
739726
- const { ignoreErrors = false } = options;
739727
- try {
739728
- return checkStat((0, fs_1.statSync)(path), options);
739729
- }
739730
- catch (e) {
739731
- const er = e;
739732
- if (ignoreErrors || er.code === 'EACCES')
739733
- return false;
739734
- throw er;
739735
- }
739736
- };
739737
- exports.sync = sync;
739738
- const checkStat = (stat, options) => stat.isFile() && checkMode(stat, options);
739739
- const checkMode = (stat, options) => {
739740
- const myUid = options.uid ?? process.getuid?.();
739741
- const myGroups = options.groups ?? process.getgroups?.() ?? [];
739742
- const myGid = options.gid ?? process.getgid?.() ?? myGroups[0];
739743
- if (myUid === undefined || myGid === undefined) {
739744
- throw new Error('cannot get uid or gid');
739745
- }
739746
- const groups = new Set([myGid, ...myGroups]);
739747
- const mod = stat.mode;
739748
- const uid = stat.uid;
739749
- const gid = stat.gid;
739750
- const u = parseInt('100', 8);
739751
- const g = parseInt('010', 8);
739752
- const o = parseInt('001', 8);
739753
- const ug = u | g;
739754
- return !!(mod & o ||
739755
- (mod & g && groups.has(gid)) ||
739756
- (mod & u && uid === myUid) ||
739757
- (mod & ug && myUid === 0));
739758
- };
739759
- //# sourceMappingURL=posix.js.map
739760
-
739761
738666
  /***/ }),
739762
738667
 
739763
738668
  /***/ 71492:
@@ -771567,6 +770472,1041 @@ Extract.prototype._final = function (cb) {
771567
770472
  module.exports = Extract
771568
770473
 
771569
770474
 
770475
+ /***/ }),
770476
+
770477
+ /***/ 76112:
770478
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
770479
+
770480
+ "use strict";
770481
+
770482
+ var __importDefault = (this && this.__importDefault) || function (mod) {
770483
+ return (mod && mod.__esModule) ? mod : { "default": mod };
770484
+ };
770485
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
770486
+ exports.Minipass = exports.isWritable = exports.isReadable = exports.isStream = void 0;
770487
+ const proc = typeof process === 'object' && process
770488
+ ? process
770489
+ : {
770490
+ stdout: null,
770491
+ stderr: null,
770492
+ };
770493
+ const node_events_1 = __webpack_require__(56093);
770494
+ const node_stream_1 = __importDefault(__webpack_require__(57075));
770495
+ const node_string_decoder_1 = __webpack_require__(46193);
770496
+ /**
770497
+ * Return true if the argument is a Minipass stream, Node stream, or something
770498
+ * else that Minipass can interact with.
770499
+ */
770500
+ const isStream = (s) => !!s &&
770501
+ typeof s === 'object' &&
770502
+ (s instanceof Minipass ||
770503
+ s instanceof node_stream_1.default ||
770504
+ (0, exports.isReadable)(s) ||
770505
+ (0, exports.isWritable)(s));
770506
+ exports.isStream = isStream;
770507
+ /**
770508
+ * Return true if the argument is a valid {@link Minipass.Readable}
770509
+ */
770510
+ const isReadable = (s) => !!s &&
770511
+ typeof s === 'object' &&
770512
+ s instanceof node_events_1.EventEmitter &&
770513
+ typeof s.pipe === 'function' &&
770514
+ // node core Writable streams have a pipe() method, but it throws
770515
+ s.pipe !== node_stream_1.default.Writable.prototype.pipe;
770516
+ exports.isReadable = isReadable;
770517
+ /**
770518
+ * Return true if the argument is a valid {@link Minipass.Writable}
770519
+ */
770520
+ const isWritable = (s) => !!s &&
770521
+ typeof s === 'object' &&
770522
+ s instanceof node_events_1.EventEmitter &&
770523
+ typeof s.write === 'function' &&
770524
+ typeof s.end === 'function';
770525
+ exports.isWritable = isWritable;
770526
+ const EOF = Symbol('EOF');
770527
+ const MAYBE_EMIT_END = Symbol('maybeEmitEnd');
770528
+ const EMITTED_END = Symbol('emittedEnd');
770529
+ const EMITTING_END = Symbol('emittingEnd');
770530
+ const EMITTED_ERROR = Symbol('emittedError');
770531
+ const CLOSED = Symbol('closed');
770532
+ const READ = Symbol('read');
770533
+ const FLUSH = Symbol('flush');
770534
+ const FLUSHCHUNK = Symbol('flushChunk');
770535
+ const ENCODING = Symbol('encoding');
770536
+ const DECODER = Symbol('decoder');
770537
+ const FLOWING = Symbol('flowing');
770538
+ const PAUSED = Symbol('paused');
770539
+ const RESUME = Symbol('resume');
770540
+ const BUFFER = Symbol('buffer');
770541
+ const PIPES = Symbol('pipes');
770542
+ const BUFFERLENGTH = Symbol('bufferLength');
770543
+ const BUFFERPUSH = Symbol('bufferPush');
770544
+ const BUFFERSHIFT = Symbol('bufferShift');
770545
+ const OBJECTMODE = Symbol('objectMode');
770546
+ // internal event when stream is destroyed
770547
+ const DESTROYED = Symbol('destroyed');
770548
+ // internal event when stream has an error
770549
+ const ERROR = Symbol('error');
770550
+ const EMITDATA = Symbol('emitData');
770551
+ const EMITEND = Symbol('emitEnd');
770552
+ const EMITEND2 = Symbol('emitEnd2');
770553
+ const ASYNC = Symbol('async');
770554
+ const ABORT = Symbol('abort');
770555
+ const ABORTED = Symbol('aborted');
770556
+ const SIGNAL = Symbol('signal');
770557
+ const DATALISTENERS = Symbol('dataListeners');
770558
+ const DISCARDED = Symbol('discarded');
770559
+ const defer = (fn) => Promise.resolve().then(fn);
770560
+ const nodefer = (fn) => fn();
770561
+ const isEndish = (ev) => ev === 'end' || ev === 'finish' || ev === 'prefinish';
770562
+ const isArrayBufferLike = (b) => b instanceof ArrayBuffer ||
770563
+ (!!b &&
770564
+ typeof b === 'object' &&
770565
+ b.constructor &&
770566
+ b.constructor.name === 'ArrayBuffer' &&
770567
+ b.byteLength >= 0);
770568
+ const isArrayBufferView = (b) => !Buffer.isBuffer(b) && ArrayBuffer.isView(b);
770569
+ /**
770570
+ * Internal class representing a pipe to a destination stream.
770571
+ *
770572
+ * @internal
770573
+ */
770574
+ class Pipe {
770575
+ src;
770576
+ dest;
770577
+ opts;
770578
+ ondrain;
770579
+ constructor(src, dest, opts) {
770580
+ this.src = src;
770581
+ this.dest = dest;
770582
+ this.opts = opts;
770583
+ this.ondrain = () => src[RESUME]();
770584
+ this.dest.on('drain', this.ondrain);
770585
+ }
770586
+ unpipe() {
770587
+ this.dest.removeListener('drain', this.ondrain);
770588
+ }
770589
+ // only here for the prototype
770590
+ /* c8 ignore start */
770591
+ proxyErrors(_er) { }
770592
+ /* c8 ignore stop */
770593
+ end() {
770594
+ this.unpipe();
770595
+ if (this.opts.end)
770596
+ this.dest.end();
770597
+ }
770598
+ }
770599
+ /**
770600
+ * Internal class representing a pipe to a destination stream where
770601
+ * errors are proxied.
770602
+ *
770603
+ * @internal
770604
+ */
770605
+ class PipeProxyErrors extends Pipe {
770606
+ unpipe() {
770607
+ this.src.removeListener('error', this.proxyErrors);
770608
+ super.unpipe();
770609
+ }
770610
+ constructor(src, dest, opts) {
770611
+ super(src, dest, opts);
770612
+ this.proxyErrors = er => dest.emit('error', er);
770613
+ src.on('error', this.proxyErrors);
770614
+ }
770615
+ }
770616
+ const isObjectModeOptions = (o) => !!o.objectMode;
770617
+ const isEncodingOptions = (o) => !o.objectMode && !!o.encoding && o.encoding !== 'buffer';
770618
+ /**
770619
+ * Main export, the Minipass class
770620
+ *
770621
+ * `RType` is the type of data emitted, defaults to Buffer
770622
+ *
770623
+ * `WType` is the type of data to be written, if RType is buffer or string,
770624
+ * then any {@link Minipass.ContiguousData} is allowed.
770625
+ *
770626
+ * `Events` is the set of event handler signatures that this object
770627
+ * will emit, see {@link Minipass.Events}
770628
+ */
770629
+ class Minipass extends node_events_1.EventEmitter {
770630
+ [FLOWING] = false;
770631
+ [PAUSED] = false;
770632
+ [PIPES] = [];
770633
+ [BUFFER] = [];
770634
+ [OBJECTMODE];
770635
+ [ENCODING];
770636
+ [ASYNC];
770637
+ [DECODER];
770638
+ [EOF] = false;
770639
+ [EMITTED_END] = false;
770640
+ [EMITTING_END] = false;
770641
+ [CLOSED] = false;
770642
+ [EMITTED_ERROR] = null;
770643
+ [BUFFERLENGTH] = 0;
770644
+ [DESTROYED] = false;
770645
+ [SIGNAL];
770646
+ [ABORTED] = false;
770647
+ [DATALISTENERS] = 0;
770648
+ [DISCARDED] = false;
770649
+ /**
770650
+ * true if the stream can be written
770651
+ */
770652
+ writable = true;
770653
+ /**
770654
+ * true if the stream can be read
770655
+ */
770656
+ readable = true;
770657
+ /**
770658
+ * If `RType` is Buffer, then options do not need to be provided.
770659
+ * Otherwise, an options object must be provided to specify either
770660
+ * {@link Minipass.SharedOptions.objectMode} or
770661
+ * {@link Minipass.SharedOptions.encoding}, as appropriate.
770662
+ */
770663
+ constructor(...args) {
770664
+ const options = (args[0] ||
770665
+ {});
770666
+ super();
770667
+ if (options.objectMode && typeof options.encoding === 'string') {
770668
+ throw new TypeError('Encoding and objectMode may not be used together');
770669
+ }
770670
+ if (isObjectModeOptions(options)) {
770671
+ this[OBJECTMODE] = true;
770672
+ this[ENCODING] = null;
770673
+ }
770674
+ else if (isEncodingOptions(options)) {
770675
+ this[ENCODING] = options.encoding;
770676
+ this[OBJECTMODE] = false;
770677
+ }
770678
+ else {
770679
+ this[OBJECTMODE] = false;
770680
+ this[ENCODING] = null;
770681
+ }
770682
+ this[ASYNC] = !!options.async;
770683
+ this[DECODER] = this[ENCODING]
770684
+ ? new node_string_decoder_1.StringDecoder(this[ENCODING])
770685
+ : null;
770686
+ //@ts-ignore - private option for debugging and testing
770687
+ if (options && options.debugExposeBuffer === true) {
770688
+ Object.defineProperty(this, 'buffer', { get: () => this[BUFFER] });
770689
+ }
770690
+ //@ts-ignore - private option for debugging and testing
770691
+ if (options && options.debugExposePipes === true) {
770692
+ Object.defineProperty(this, 'pipes', { get: () => this[PIPES] });
770693
+ }
770694
+ const { signal } = options;
770695
+ if (signal) {
770696
+ this[SIGNAL] = signal;
770697
+ if (signal.aborted) {
770698
+ this[ABORT]();
770699
+ }
770700
+ else {
770701
+ signal.addEventListener('abort', () => this[ABORT]());
770702
+ }
770703
+ }
770704
+ }
770705
+ /**
770706
+ * The amount of data stored in the buffer waiting to be read.
770707
+ *
770708
+ * For Buffer strings, this will be the total byte length.
770709
+ * For string encoding streams, this will be the string character length,
770710
+ * according to JavaScript's `string.length` logic.
770711
+ * For objectMode streams, this is a count of the items waiting to be
770712
+ * emitted.
770713
+ */
770714
+ get bufferLength() {
770715
+ return this[BUFFERLENGTH];
770716
+ }
770717
+ /**
770718
+ * The `BufferEncoding` currently in use, or `null`
770719
+ */
770720
+ get encoding() {
770721
+ return this[ENCODING];
770722
+ }
770723
+ /**
770724
+ * @deprecated - This is a read only property
770725
+ */
770726
+ set encoding(_enc) {
770727
+ throw new Error('Encoding must be set at instantiation time');
770728
+ }
770729
+ /**
770730
+ * @deprecated - Encoding may only be set at instantiation time
770731
+ */
770732
+ setEncoding(_enc) {
770733
+ throw new Error('Encoding must be set at instantiation time');
770734
+ }
770735
+ /**
770736
+ * True if this is an objectMode stream
770737
+ */
770738
+ get objectMode() {
770739
+ return this[OBJECTMODE];
770740
+ }
770741
+ /**
770742
+ * @deprecated - This is a read-only property
770743
+ */
770744
+ set objectMode(_om) {
770745
+ throw new Error('objectMode must be set at instantiation time');
770746
+ }
770747
+ /**
770748
+ * true if this is an async stream
770749
+ */
770750
+ get ['async']() {
770751
+ return this[ASYNC];
770752
+ }
770753
+ /**
770754
+ * Set to true to make this stream async.
770755
+ *
770756
+ * Once set, it cannot be unset, as this would potentially cause incorrect
770757
+ * behavior. Ie, a sync stream can be made async, but an async stream
770758
+ * cannot be safely made sync.
770759
+ */
770760
+ set ['async'](a) {
770761
+ this[ASYNC] = this[ASYNC] || !!a;
770762
+ }
770763
+ // drop everything and get out of the flow completely
770764
+ [ABORT]() {
770765
+ this[ABORTED] = true;
770766
+ this.emit('abort', this[SIGNAL]?.reason);
770767
+ this.destroy(this[SIGNAL]?.reason);
770768
+ }
770769
+ /**
770770
+ * True if the stream has been aborted.
770771
+ */
770772
+ get aborted() {
770773
+ return this[ABORTED];
770774
+ }
770775
+ /**
770776
+ * No-op setter. Stream aborted status is set via the AbortSignal provided
770777
+ * in the constructor options.
770778
+ */
770779
+ set aborted(_) { }
770780
+ write(chunk, encoding, cb) {
770781
+ if (this[ABORTED])
770782
+ return false;
770783
+ if (this[EOF])
770784
+ throw new Error('write after end');
770785
+ if (this[DESTROYED]) {
770786
+ this.emit('error', Object.assign(new Error('Cannot call write after a stream was destroyed'), { code: 'ERR_STREAM_DESTROYED' }));
770787
+ return true;
770788
+ }
770789
+ if (typeof encoding === 'function') {
770790
+ cb = encoding;
770791
+ encoding = 'utf8';
770792
+ }
770793
+ if (!encoding)
770794
+ encoding = 'utf8';
770795
+ const fn = this[ASYNC] ? defer : nodefer;
770796
+ // convert array buffers and typed array views into buffers
770797
+ // at some point in the future, we may want to do the opposite!
770798
+ // leave strings and buffers as-is
770799
+ // anything is only allowed if in object mode, so throw
770800
+ if (!this[OBJECTMODE] && !Buffer.isBuffer(chunk)) {
770801
+ if (isArrayBufferView(chunk)) {
770802
+ //@ts-ignore - sinful unsafe type changing
770803
+ chunk = Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength);
770804
+ }
770805
+ else if (isArrayBufferLike(chunk)) {
770806
+ //@ts-ignore - sinful unsafe type changing
770807
+ chunk = Buffer.from(chunk);
770808
+ }
770809
+ else if (typeof chunk !== 'string') {
770810
+ throw new Error('Non-contiguous data written to non-objectMode stream');
770811
+ }
770812
+ }
770813
+ // handle object mode up front, since it's simpler
770814
+ // this yields better performance, fewer checks later.
770815
+ if (this[OBJECTMODE]) {
770816
+ // maybe impossible?
770817
+ /* c8 ignore start */
770818
+ if (this[FLOWING] && this[BUFFERLENGTH] !== 0)
770819
+ this[FLUSH](true);
770820
+ /* c8 ignore stop */
770821
+ if (this[FLOWING])
770822
+ this.emit('data', chunk);
770823
+ else
770824
+ this[BUFFERPUSH](chunk);
770825
+ if (this[BUFFERLENGTH] !== 0)
770826
+ this.emit('readable');
770827
+ if (cb)
770828
+ fn(cb);
770829
+ return this[FLOWING];
770830
+ }
770831
+ // at this point the chunk is a buffer or string
770832
+ // don't buffer it up or send it to the decoder
770833
+ if (!chunk.length) {
770834
+ if (this[BUFFERLENGTH] !== 0)
770835
+ this.emit('readable');
770836
+ if (cb)
770837
+ fn(cb);
770838
+ return this[FLOWING];
770839
+ }
770840
+ // fast-path writing strings of same encoding to a stream with
770841
+ // an empty buffer, skipping the buffer/decoder dance
770842
+ if (typeof chunk === 'string' &&
770843
+ // unless it is a string already ready for us to use
770844
+ !(encoding === this[ENCODING] && !this[DECODER]?.lastNeed)) {
770845
+ //@ts-ignore - sinful unsafe type change
770846
+ chunk = Buffer.from(chunk, encoding);
770847
+ }
770848
+ if (Buffer.isBuffer(chunk) && this[ENCODING]) {
770849
+ //@ts-ignore - sinful unsafe type change
770850
+ chunk = this[DECODER].write(chunk);
770851
+ }
770852
+ // Note: flushing CAN potentially switch us into not-flowing mode
770853
+ if (this[FLOWING] && this[BUFFERLENGTH] !== 0)
770854
+ this[FLUSH](true);
770855
+ if (this[FLOWING])
770856
+ this.emit('data', chunk);
770857
+ else
770858
+ this[BUFFERPUSH](chunk);
770859
+ if (this[BUFFERLENGTH] !== 0)
770860
+ this.emit('readable');
770861
+ if (cb)
770862
+ fn(cb);
770863
+ return this[FLOWING];
770864
+ }
770865
+ /**
770866
+ * Low-level explicit read method.
770867
+ *
770868
+ * In objectMode, the argument is ignored, and one item is returned if
770869
+ * available.
770870
+ *
770871
+ * `n` is the number of bytes (or in the case of encoding streams,
770872
+ * characters) to consume. If `n` is not provided, then the entire buffer
770873
+ * is returned, or `null` is returned if no data is available.
770874
+ *
770875
+ * If `n` is greater that the amount of data in the internal buffer,
770876
+ * then `null` is returned.
770877
+ */
770878
+ read(n) {
770879
+ if (this[DESTROYED])
770880
+ return null;
770881
+ this[DISCARDED] = false;
770882
+ if (this[BUFFERLENGTH] === 0 ||
770883
+ n === 0 ||
770884
+ (n && n > this[BUFFERLENGTH])) {
770885
+ this[MAYBE_EMIT_END]();
770886
+ return null;
770887
+ }
770888
+ if (this[OBJECTMODE])
770889
+ n = null;
770890
+ if (this[BUFFER].length > 1 && !this[OBJECTMODE]) {
770891
+ // not object mode, so if we have an encoding, then RType is string
770892
+ // otherwise, must be Buffer
770893
+ this[BUFFER] = [
770894
+ (this[ENCODING]
770895
+ ? this[BUFFER].join('')
770896
+ : Buffer.concat(this[BUFFER], this[BUFFERLENGTH])),
770897
+ ];
770898
+ }
770899
+ const ret = this[READ](n || null, this[BUFFER][0]);
770900
+ this[MAYBE_EMIT_END]();
770901
+ return ret;
770902
+ }
770903
+ [READ](n, chunk) {
770904
+ if (this[OBJECTMODE])
770905
+ this[BUFFERSHIFT]();
770906
+ else {
770907
+ const c = chunk;
770908
+ if (n === c.length || n === null)
770909
+ this[BUFFERSHIFT]();
770910
+ else if (typeof c === 'string') {
770911
+ this[BUFFER][0] = c.slice(n);
770912
+ chunk = c.slice(0, n);
770913
+ this[BUFFERLENGTH] -= n;
770914
+ }
770915
+ else {
770916
+ this[BUFFER][0] = c.subarray(n);
770917
+ chunk = c.subarray(0, n);
770918
+ this[BUFFERLENGTH] -= n;
770919
+ }
770920
+ }
770921
+ this.emit('data', chunk);
770922
+ if (!this[BUFFER].length && !this[EOF])
770923
+ this.emit('drain');
770924
+ return chunk;
770925
+ }
770926
+ end(chunk, encoding, cb) {
770927
+ if (typeof chunk === 'function') {
770928
+ cb = chunk;
770929
+ chunk = undefined;
770930
+ }
770931
+ if (typeof encoding === 'function') {
770932
+ cb = encoding;
770933
+ encoding = 'utf8';
770934
+ }
770935
+ if (chunk !== undefined)
770936
+ this.write(chunk, encoding);
770937
+ if (cb)
770938
+ this.once('end', cb);
770939
+ this[EOF] = true;
770940
+ this.writable = false;
770941
+ // if we haven't written anything, then go ahead and emit,
770942
+ // even if we're not reading.
770943
+ // we'll re-emit if a new 'end' listener is added anyway.
770944
+ // This makes MP more suitable to write-only use cases.
770945
+ if (this[FLOWING] || !this[PAUSED])
770946
+ this[MAYBE_EMIT_END]();
770947
+ return this;
770948
+ }
770949
+ // don't let the internal resume be overwritten
770950
+ [RESUME]() {
770951
+ if (this[DESTROYED])
770952
+ return;
770953
+ if (!this[DATALISTENERS] && !this[PIPES].length) {
770954
+ this[DISCARDED] = true;
770955
+ }
770956
+ this[PAUSED] = false;
770957
+ this[FLOWING] = true;
770958
+ this.emit('resume');
770959
+ if (this[BUFFER].length)
770960
+ this[FLUSH]();
770961
+ else if (this[EOF])
770962
+ this[MAYBE_EMIT_END]();
770963
+ else
770964
+ this.emit('drain');
770965
+ }
770966
+ /**
770967
+ * Resume the stream if it is currently in a paused state
770968
+ *
770969
+ * If called when there are no pipe destinations or `data` event listeners,
770970
+ * this will place the stream in a "discarded" state, where all data will
770971
+ * be thrown away. The discarded state is removed if a pipe destination or
770972
+ * data handler is added, if pause() is called, or if any synchronous or
770973
+ * asynchronous iteration is started.
770974
+ */
770975
+ resume() {
770976
+ return this[RESUME]();
770977
+ }
770978
+ /**
770979
+ * Pause the stream
770980
+ */
770981
+ pause() {
770982
+ this[FLOWING] = false;
770983
+ this[PAUSED] = true;
770984
+ this[DISCARDED] = false;
770985
+ }
770986
+ /**
770987
+ * true if the stream has been forcibly destroyed
770988
+ */
770989
+ get destroyed() {
770990
+ return this[DESTROYED];
770991
+ }
770992
+ /**
770993
+ * true if the stream is currently in a flowing state, meaning that
770994
+ * any writes will be immediately emitted.
770995
+ */
770996
+ get flowing() {
770997
+ return this[FLOWING];
770998
+ }
770999
+ /**
771000
+ * true if the stream is currently in a paused state
771001
+ */
771002
+ get paused() {
771003
+ return this[PAUSED];
771004
+ }
771005
+ [BUFFERPUSH](chunk) {
771006
+ if (this[OBJECTMODE])
771007
+ this[BUFFERLENGTH] += 1;
771008
+ else
771009
+ this[BUFFERLENGTH] += chunk.length;
771010
+ this[BUFFER].push(chunk);
771011
+ }
771012
+ [BUFFERSHIFT]() {
771013
+ if (this[OBJECTMODE])
771014
+ this[BUFFERLENGTH] -= 1;
771015
+ else
771016
+ this[BUFFERLENGTH] -= this[BUFFER][0].length;
771017
+ return this[BUFFER].shift();
771018
+ }
771019
+ [FLUSH](noDrain = false) {
771020
+ do { } while (this[FLUSHCHUNK](this[BUFFERSHIFT]()) &&
771021
+ this[BUFFER].length);
771022
+ if (!noDrain && !this[BUFFER].length && !this[EOF])
771023
+ this.emit('drain');
771024
+ }
771025
+ [FLUSHCHUNK](chunk) {
771026
+ this.emit('data', chunk);
771027
+ return this[FLOWING];
771028
+ }
771029
+ /**
771030
+ * Pipe all data emitted by this stream into the destination provided.
771031
+ *
771032
+ * Triggers the flow of data.
771033
+ */
771034
+ pipe(dest, opts) {
771035
+ if (this[DESTROYED])
771036
+ return dest;
771037
+ this[DISCARDED] = false;
771038
+ const ended = this[EMITTED_END];
771039
+ opts = opts || {};
771040
+ if (dest === proc.stdout || dest === proc.stderr)
771041
+ opts.end = false;
771042
+ else
771043
+ opts.end = opts.end !== false;
771044
+ opts.proxyErrors = !!opts.proxyErrors;
771045
+ // piping an ended stream ends immediately
771046
+ if (ended) {
771047
+ if (opts.end)
771048
+ dest.end();
771049
+ }
771050
+ else {
771051
+ // "as" here just ignores the WType, which pipes don't care about,
771052
+ // since they're only consuming from us, and writing to the dest
771053
+ this[PIPES].push(!opts.proxyErrors
771054
+ ? new Pipe(this, dest, opts)
771055
+ : new PipeProxyErrors(this, dest, opts));
771056
+ if (this[ASYNC])
771057
+ defer(() => this[RESUME]());
771058
+ else
771059
+ this[RESUME]();
771060
+ }
771061
+ return dest;
771062
+ }
771063
+ /**
771064
+ * Fully unhook a piped destination stream.
771065
+ *
771066
+ * If the destination stream was the only consumer of this stream (ie,
771067
+ * there are no other piped destinations or `'data'` event listeners)
771068
+ * then the flow of data will stop until there is another consumer or
771069
+ * {@link Minipass#resume} is explicitly called.
771070
+ */
771071
+ unpipe(dest) {
771072
+ const p = this[PIPES].find(p => p.dest === dest);
771073
+ if (p) {
771074
+ if (this[PIPES].length === 1) {
771075
+ if (this[FLOWING] && this[DATALISTENERS] === 0) {
771076
+ this[FLOWING] = false;
771077
+ }
771078
+ this[PIPES] = [];
771079
+ }
771080
+ else
771081
+ this[PIPES].splice(this[PIPES].indexOf(p), 1);
771082
+ p.unpipe();
771083
+ }
771084
+ }
771085
+ /**
771086
+ * Alias for {@link Minipass#on}
771087
+ */
771088
+ addListener(ev, handler) {
771089
+ return this.on(ev, handler);
771090
+ }
771091
+ /**
771092
+ * Mostly identical to `EventEmitter.on`, with the following
771093
+ * behavior differences to prevent data loss and unnecessary hangs:
771094
+ *
771095
+ * - Adding a 'data' event handler will trigger the flow of data
771096
+ *
771097
+ * - Adding a 'readable' event handler when there is data waiting to be read
771098
+ * will cause 'readable' to be emitted immediately.
771099
+ *
771100
+ * - Adding an 'endish' event handler ('end', 'finish', etc.) which has
771101
+ * already passed will cause the event to be emitted immediately and all
771102
+ * handlers removed.
771103
+ *
771104
+ * - Adding an 'error' event handler after an error has been emitted will
771105
+ * cause the event to be re-emitted immediately with the error previously
771106
+ * raised.
771107
+ */
771108
+ on(ev, handler) {
771109
+ const ret = super.on(ev, handler);
771110
+ if (ev === 'data') {
771111
+ this[DISCARDED] = false;
771112
+ this[DATALISTENERS]++;
771113
+ if (!this[PIPES].length && !this[FLOWING]) {
771114
+ this[RESUME]();
771115
+ }
771116
+ }
771117
+ else if (ev === 'readable' && this[BUFFERLENGTH] !== 0) {
771118
+ super.emit('readable');
771119
+ }
771120
+ else if (isEndish(ev) && this[EMITTED_END]) {
771121
+ super.emit(ev);
771122
+ this.removeAllListeners(ev);
771123
+ }
771124
+ else if (ev === 'error' && this[EMITTED_ERROR]) {
771125
+ const h = handler;
771126
+ if (this[ASYNC])
771127
+ defer(() => h.call(this, this[EMITTED_ERROR]));
771128
+ else
771129
+ h.call(this, this[EMITTED_ERROR]);
771130
+ }
771131
+ return ret;
771132
+ }
771133
+ /**
771134
+ * Alias for {@link Minipass#off}
771135
+ */
771136
+ removeListener(ev, handler) {
771137
+ return this.off(ev, handler);
771138
+ }
771139
+ /**
771140
+ * Mostly identical to `EventEmitter.off`
771141
+ *
771142
+ * If a 'data' event handler is removed, and it was the last consumer
771143
+ * (ie, there are no pipe destinations or other 'data' event listeners),
771144
+ * then the flow of data will stop until there is another consumer or
771145
+ * {@link Minipass#resume} is explicitly called.
771146
+ */
771147
+ off(ev, handler) {
771148
+ const ret = super.off(ev, handler);
771149
+ // if we previously had listeners, and now we don't, and we don't
771150
+ // have any pipes, then stop the flow, unless it's been explicitly
771151
+ // put in a discarded flowing state via stream.resume().
771152
+ if (ev === 'data') {
771153
+ this[DATALISTENERS] = this.listeners('data').length;
771154
+ if (this[DATALISTENERS] === 0 &&
771155
+ !this[DISCARDED] &&
771156
+ !this[PIPES].length) {
771157
+ this[FLOWING] = false;
771158
+ }
771159
+ }
771160
+ return ret;
771161
+ }
771162
+ /**
771163
+ * Mostly identical to `EventEmitter.removeAllListeners`
771164
+ *
771165
+ * If all 'data' event handlers are removed, and they were the last consumer
771166
+ * (ie, there are no pipe destinations), then the flow of data will stop
771167
+ * until there is another consumer or {@link Minipass#resume} is explicitly
771168
+ * called.
771169
+ */
771170
+ removeAllListeners(ev) {
771171
+ const ret = super.removeAllListeners(ev);
771172
+ if (ev === 'data' || ev === undefined) {
771173
+ this[DATALISTENERS] = 0;
771174
+ if (!this[DISCARDED] && !this[PIPES].length) {
771175
+ this[FLOWING] = false;
771176
+ }
771177
+ }
771178
+ return ret;
771179
+ }
771180
+ /**
771181
+ * true if the 'end' event has been emitted
771182
+ */
771183
+ get emittedEnd() {
771184
+ return this[EMITTED_END];
771185
+ }
771186
+ [MAYBE_EMIT_END]() {
771187
+ if (!this[EMITTING_END] &&
771188
+ !this[EMITTED_END] &&
771189
+ !this[DESTROYED] &&
771190
+ this[BUFFER].length === 0 &&
771191
+ this[EOF]) {
771192
+ this[EMITTING_END] = true;
771193
+ this.emit('end');
771194
+ this.emit('prefinish');
771195
+ this.emit('finish');
771196
+ if (this[CLOSED])
771197
+ this.emit('close');
771198
+ this[EMITTING_END] = false;
771199
+ }
771200
+ }
771201
+ /**
771202
+ * Mostly identical to `EventEmitter.emit`, with the following
771203
+ * behavior differences to prevent data loss and unnecessary hangs:
771204
+ *
771205
+ * If the stream has been destroyed, and the event is something other
771206
+ * than 'close' or 'error', then `false` is returned and no handlers
771207
+ * are called.
771208
+ *
771209
+ * If the event is 'end', and has already been emitted, then the event
771210
+ * is ignored. If the stream is in a paused or non-flowing state, then
771211
+ * the event will be deferred until data flow resumes. If the stream is
771212
+ * async, then handlers will be called on the next tick rather than
771213
+ * immediately.
771214
+ *
771215
+ * If the event is 'close', and 'end' has not yet been emitted, then
771216
+ * the event will be deferred until after 'end' is emitted.
771217
+ *
771218
+ * If the event is 'error', and an AbortSignal was provided for the stream,
771219
+ * and there are no listeners, then the event is ignored, matching the
771220
+ * behavior of node core streams in the presense of an AbortSignal.
771221
+ *
771222
+ * If the event is 'finish' or 'prefinish', then all listeners will be
771223
+ * removed after emitting the event, to prevent double-firing.
771224
+ */
771225
+ emit(ev, ...args) {
771226
+ const data = args[0];
771227
+ // error and close are only events allowed after calling destroy()
771228
+ if (ev !== 'error' &&
771229
+ ev !== 'close' &&
771230
+ ev !== DESTROYED &&
771231
+ this[DESTROYED]) {
771232
+ return false;
771233
+ }
771234
+ else if (ev === 'data') {
771235
+ return !this[OBJECTMODE] && !data
771236
+ ? false
771237
+ : this[ASYNC]
771238
+ ? (defer(() => this[EMITDATA](data)), true)
771239
+ : this[EMITDATA](data);
771240
+ }
771241
+ else if (ev === 'end') {
771242
+ return this[EMITEND]();
771243
+ }
771244
+ else if (ev === 'close') {
771245
+ this[CLOSED] = true;
771246
+ // don't emit close before 'end' and 'finish'
771247
+ if (!this[EMITTED_END] && !this[DESTROYED])
771248
+ return false;
771249
+ const ret = super.emit('close');
771250
+ this.removeAllListeners('close');
771251
+ return ret;
771252
+ }
771253
+ else if (ev === 'error') {
771254
+ this[EMITTED_ERROR] = data;
771255
+ super.emit(ERROR, data);
771256
+ const ret = !this[SIGNAL] || this.listeners('error').length
771257
+ ? super.emit('error', data)
771258
+ : false;
771259
+ this[MAYBE_EMIT_END]();
771260
+ return ret;
771261
+ }
771262
+ else if (ev === 'resume') {
771263
+ const ret = super.emit('resume');
771264
+ this[MAYBE_EMIT_END]();
771265
+ return ret;
771266
+ }
771267
+ else if (ev === 'finish' || ev === 'prefinish') {
771268
+ const ret = super.emit(ev);
771269
+ this.removeAllListeners(ev);
771270
+ return ret;
771271
+ }
771272
+ // Some other unknown event
771273
+ const ret = super.emit(ev, ...args);
771274
+ this[MAYBE_EMIT_END]();
771275
+ return ret;
771276
+ }
771277
+ [EMITDATA](data) {
771278
+ for (const p of this[PIPES]) {
771279
+ if (p.dest.write(data) === false)
771280
+ this.pause();
771281
+ }
771282
+ const ret = this[DISCARDED] ? false : super.emit('data', data);
771283
+ this[MAYBE_EMIT_END]();
771284
+ return ret;
771285
+ }
771286
+ [EMITEND]() {
771287
+ if (this[EMITTED_END])
771288
+ return false;
771289
+ this[EMITTED_END] = true;
771290
+ this.readable = false;
771291
+ return this[ASYNC]
771292
+ ? (defer(() => this[EMITEND2]()), true)
771293
+ : this[EMITEND2]();
771294
+ }
771295
+ [EMITEND2]() {
771296
+ if (this[DECODER]) {
771297
+ const data = this[DECODER].end();
771298
+ if (data) {
771299
+ for (const p of this[PIPES]) {
771300
+ p.dest.write(data);
771301
+ }
771302
+ if (!this[DISCARDED])
771303
+ super.emit('data', data);
771304
+ }
771305
+ }
771306
+ for (const p of this[PIPES]) {
771307
+ p.end();
771308
+ }
771309
+ const ret = super.emit('end');
771310
+ this.removeAllListeners('end');
771311
+ return ret;
771312
+ }
771313
+ /**
771314
+ * Return a Promise that resolves to an array of all emitted data once
771315
+ * the stream ends.
771316
+ */
771317
+ async collect() {
771318
+ const buf = Object.assign([], {
771319
+ dataLength: 0,
771320
+ });
771321
+ if (!this[OBJECTMODE])
771322
+ buf.dataLength = 0;
771323
+ // set the promise first, in case an error is raised
771324
+ // by triggering the flow here.
771325
+ const p = this.promise();
771326
+ this.on('data', c => {
771327
+ buf.push(c);
771328
+ if (!this[OBJECTMODE])
771329
+ buf.dataLength += c.length;
771330
+ });
771331
+ await p;
771332
+ return buf;
771333
+ }
771334
+ /**
771335
+ * Return a Promise that resolves to the concatenation of all emitted data
771336
+ * once the stream ends.
771337
+ *
771338
+ * Not allowed on objectMode streams.
771339
+ */
771340
+ async concat() {
771341
+ if (this[OBJECTMODE]) {
771342
+ throw new Error('cannot concat in objectMode');
771343
+ }
771344
+ const buf = await this.collect();
771345
+ return (this[ENCODING]
771346
+ ? buf.join('')
771347
+ : Buffer.concat(buf, buf.dataLength));
771348
+ }
771349
+ /**
771350
+ * Return a void Promise that resolves once the stream ends.
771351
+ */
771352
+ async promise() {
771353
+ return new Promise((resolve, reject) => {
771354
+ this.on(DESTROYED, () => reject(new Error('stream destroyed')));
771355
+ this.on('error', er => reject(er));
771356
+ this.on('end', () => resolve());
771357
+ });
771358
+ }
771359
+ /**
771360
+ * Asynchronous `for await of` iteration.
771361
+ *
771362
+ * This will continue emitting all chunks until the stream terminates.
771363
+ */
771364
+ [Symbol.asyncIterator]() {
771365
+ // set this up front, in case the consumer doesn't call next()
771366
+ // right away.
771367
+ this[DISCARDED] = false;
771368
+ let stopped = false;
771369
+ const stop = async () => {
771370
+ this.pause();
771371
+ stopped = true;
771372
+ return { value: undefined, done: true };
771373
+ };
771374
+ const next = () => {
771375
+ if (stopped)
771376
+ return stop();
771377
+ const res = this.read();
771378
+ if (res !== null)
771379
+ return Promise.resolve({ done: false, value: res });
771380
+ if (this[EOF])
771381
+ return stop();
771382
+ let resolve;
771383
+ let reject;
771384
+ const onerr = (er) => {
771385
+ this.off('data', ondata);
771386
+ this.off('end', onend);
771387
+ this.off(DESTROYED, ondestroy);
771388
+ stop();
771389
+ reject(er);
771390
+ };
771391
+ const ondata = (value) => {
771392
+ this.off('error', onerr);
771393
+ this.off('end', onend);
771394
+ this.off(DESTROYED, ondestroy);
771395
+ this.pause();
771396
+ resolve({ value, done: !!this[EOF] });
771397
+ };
771398
+ const onend = () => {
771399
+ this.off('error', onerr);
771400
+ this.off('data', ondata);
771401
+ this.off(DESTROYED, ondestroy);
771402
+ stop();
771403
+ resolve({ done: true, value: undefined });
771404
+ };
771405
+ const ondestroy = () => onerr(new Error('stream destroyed'));
771406
+ return new Promise((res, rej) => {
771407
+ reject = rej;
771408
+ resolve = res;
771409
+ this.once(DESTROYED, ondestroy);
771410
+ this.once('error', onerr);
771411
+ this.once('end', onend);
771412
+ this.once('data', ondata);
771413
+ });
771414
+ };
771415
+ return {
771416
+ next,
771417
+ throw: stop,
771418
+ return: stop,
771419
+ [Symbol.asyncIterator]() {
771420
+ return this;
771421
+ },
771422
+ };
771423
+ }
771424
+ /**
771425
+ * Synchronous `for of` iteration.
771426
+ *
771427
+ * The iteration will terminate when the internal buffer runs out, even
771428
+ * if the stream has not yet terminated.
771429
+ */
771430
+ [Symbol.iterator]() {
771431
+ // set this up front, in case the consumer doesn't call next()
771432
+ // right away.
771433
+ this[DISCARDED] = false;
771434
+ let stopped = false;
771435
+ const stop = () => {
771436
+ this.pause();
771437
+ this.off(ERROR, stop);
771438
+ this.off(DESTROYED, stop);
771439
+ this.off('end', stop);
771440
+ stopped = true;
771441
+ return { done: true, value: undefined };
771442
+ };
771443
+ const next = () => {
771444
+ if (stopped)
771445
+ return stop();
771446
+ const value = this.read();
771447
+ return value === null ? stop() : { done: false, value };
771448
+ };
771449
+ this.once('end', stop);
771450
+ this.once(ERROR, stop);
771451
+ this.once(DESTROYED, stop);
771452
+ return {
771453
+ next,
771454
+ throw: stop,
771455
+ return: stop,
771456
+ [Symbol.iterator]() {
771457
+ return this;
771458
+ },
771459
+ };
771460
+ }
771461
+ /**
771462
+ * Destroy a stream, preventing it from being used for any further purpose.
771463
+ *
771464
+ * If the stream has a `close()` method, then it will be called on
771465
+ * destruction.
771466
+ *
771467
+ * After destruction, any attempt to write data, read data, or emit most
771468
+ * events will be ignored.
771469
+ *
771470
+ * If an error argument is provided, then it will be emitted in an
771471
+ * 'error' event.
771472
+ */
771473
+ destroy(er) {
771474
+ if (this[DESTROYED]) {
771475
+ if (er)
771476
+ this.emit('error', er);
771477
+ else
771478
+ this.emit(DESTROYED);
771479
+ return this;
771480
+ }
771481
+ this[DESTROYED] = true;
771482
+ this[DISCARDED] = true;
771483
+ // throw away all buffered data, it's never coming out
771484
+ this[BUFFER].length = 0;
771485
+ this[BUFFERLENGTH] = 0;
771486
+ const wc = this;
771487
+ if (typeof wc.close === 'function' && !this[CLOSED])
771488
+ wc.close();
771489
+ if (er)
771490
+ this.emit('error', er);
771491
+ // if no error to emit, still reject pending promises
771492
+ else
771493
+ this.emit(DESTROYED);
771494
+ return this;
771495
+ }
771496
+ /**
771497
+ * Alias for {@link isStream}
771498
+ *
771499
+ * Former export location, maintained for backwards compatibility.
771500
+ *
771501
+ * @deprecated
771502
+ */
771503
+ static get isStream() {
771504
+ return exports.isStream;
771505
+ }
771506
+ }
771507
+ exports.Minipass = Minipass;
771508
+ //# sourceMappingURL=index.js.map
771509
+
771570
771510
  /***/ }),
771571
771511
 
771572
771512
  /***/ 76133:
@@ -778582,7 +778522,16 @@ let DbPushCommand = class DbPushCommand extends common_1.Command {
778582
778522
  for (const modelName of name) {
778583
778523
  log.info((0, i18n_1.t)('开始检查数据模型 {{modelName}}', { modelName }));
778584
778524
  const modelPath = path_1.default.join(process.cwd(), dir, `${modelName}.json`);
778585
- const model = __webpack_require__(2910)(modelPath);
778525
+ let model;
778526
+ try {
778527
+ model = JSON.parse(fs_extra_1.default.readFileSync(modelPath, 'utf8'));
778528
+ }
778529
+ catch (error) {
778530
+ throw new error_1.CloudBaseError((0, i18n_1.t)('读取数据模型文件失败:{{modelPath}},{{message}}', {
778531
+ modelPath,
778532
+ message: error.message
778533
+ }));
778534
+ }
778586
778535
  const existModel = yield (0, db_1.getModel)({
778587
778536
  envId,
778588
778537
  name: modelName
@@ -823922,7 +823871,7 @@ const realpathSync = fs_1.realpathSync.native;
823922
823871
  // TODO: test perf of fs/promises realpath vs realpathCB,
823923
823872
  // since the promises one uses realpath.native
823924
823873
  const promises_1 = __webpack_require__(51455);
823925
- const minipass_1 = __webpack_require__(45420);
823874
+ const minipass_1 = __webpack_require__(76112);
823926
823875
  const defaultFS = {
823927
823876
  lstatSync: fs_1.lstatSync,
823928
823877
  readdir: fs_1.readdir,
@@ -970528,7 +970477,7 @@ module.exports = function (buf) {
970528
970477
 
970529
970478
 
970530
970479
  const path = __webpack_require__(16928);
970531
- const which = __webpack_require__(46911);
970480
+ const which = __webpack_require__(30307);
970532
970481
  const getPathKey = __webpack_require__(79376);
970533
970482
 
970534
970483
  function resolveCommandAttempt(parsed, withoutPathExt) {