UNPKG

@142vip/fairy-cli

Version:

通用型Cli助手、一站式工具,支持多种命令操作

1,463 lines (1,457 loc) 683 kB
import { VipExecutor, vipLogger, VipColor, VipNodeJS, VipInquirer, VipConsole, VipMonorepo, VipGit, RegistryAddressEnum, VipNpm, VipDocker, VipInquirerDefaultArrayParser, VipPackageJSON, GitGeneralBranch, VipCommander, VipSymbols } from '@142vip/utils'; import { CLI_COMMAND_DETAIL as CLI_COMMAND_DETAIL$1, printPreCheckRelease as printPreCheckRelease$1, releasePackage as releasePackage$1 } from '@142vip/fairy-cli'; import { versionBump } from '@142vip/release-version'; import { vipAxios } from '@142vip/axios'; import { deleteAsync } from 'del'; import fs from 'node:fs'; import { GIT_COMMIT_DEFAULT_TYPES, GIT_COMMIT_DEFAULT_SCOPES, commitLiner } from '@142vip/commit-linter'; var CommandEnum = /* @__PURE__ */ ((CommandEnum2) => { CommandEnum2["LOGIN"] = "login"; CommandEnum2["RELEASE"] = "release"; CommandEnum2["CHANGELOG"] = "changelog"; CommandEnum2["PUBLISH"] = "publish"; CommandEnum2["CLEAN"] = "clean"; CommandEnum2["LINT"] = "lint"; CommandEnum2["DEPLOY"] = "deploy"; CommandEnum2["INSTALL"] = "install"; CommandEnum2["SYNC"] = "sync"; CommandEnum2["COPYRIGHT"] = "copyright"; CommandEnum2["COMMIT"] = "commit"; return CommandEnum2; })(CommandEnum || {}); const CLI_COMMAND_DETAIL = { ["login" /* LOGIN */]: { command: "login", summary: "\u767B\u5F55\u5E73\u53F0", description: "\u767B\u5F55\u8FDC\u7A0B\u5E73\u53F0\uFF0C\u652F\u6301DOCKER\u3001NPM", aliases: ["l", "lo"] }, ["release" /* RELEASE */]: { command: "release", summary: "\u53D1\u5E03\u65B0\u7684\u7248\u672C", description: "\u53D1\u5E03\u65B0\u7684\u7248\u672C\uFF0C\u66F4\u65B0version\u5B57\u6BB5\u4FE1\u606F\uFF0C\u63D0\u4EA4\u5230Git\u4ED3\u5E93", aliases: ["re", "rel"] }, ["changelog" /* CHANGELOG */]: { command: "changelog", summary: "\u751F\u6210CHANGELOG\u6587\u6863", description: "\u5FEB\u901F\u4F7F\u7528@142vip/changelog\u6A21\u5757\uFF0C\u751F\u6210CHANGELOG\u6587\u6863", aliases: ["c", "ch", "cha"] }, ["publish" /* PUBLISH */]: { command: "publish", summary: "\u8FDC\u7A0B\u955C\u50CF\u63A8\u9001", description: "\u63A8\u9001NPM\u5305", aliases: ["p", "pu"] }, ["clean" /* CLEAN */]: { command: "clean", summary: "\u5FEB\u901F\u6E05\u7406\u9879\u76EE", description: "\u6E05\u9664\u5F00\u53D1\u3001\u6784\u5EFA\u73AF\u5883\u4E0B\u4EA7\u751F\u7684\u65E0\u7528\u6587\u4EF6", aliases: ["cl", "clear"] }, ["lint" /* LINT */]: { command: "lint", description: "\u4EE3\u7801\u68C0\u67E5", summary: "\u6839\u636EEslint\u68C0\u67E5\u3001\u683C\u5F0F\u5316\u4EE3\u7801\u98CE\u683C", aliases: ["li"] }, ["deploy" /* DEPLOY */]: { command: "deploy", summary: "\u9879\u76EE\u90E8\u7F72", description: "\u9879\u76EE\u90E8\u7F72", aliases: ["de", "dep"] }, ["install" /* INSTALL */]: { command: "install", summary: "\u5B89\u88C5\u4F9D\u8D56", description: "Node.js\u4F9D\u8D56\u7BA1\u7406\uFF0C\u4E0B\u8F7D\u3001\u5347\u7EA7\u4F9D\u8D56\u7248\u672C", aliases: ["i", "add", "in"] }, ["sync" /* SYNC */]: { command: "sync", summary: "\u540C\u6B65NPM\u5305", description: "\u540C\u6B65NPM\u4ED3\u5E93\u7684\u6A21\u5757\u5305\u5230CNPM\u4ED3\u5E93", aliases: ["s", "sy", "syn"] }, ["copyright" /* COPYRIGHT */]: { command: "copyright", summary: "\u8F6F\u4EF6\u8457\u4F5C\u6743\u767B\u8BB0\u7684\u6E90\u4EE3\u7801\u6587\u6863\u751F\u6210", description: "\u7533\u8BF7\u8457\u4F5C\u6743\u767B\u8BB0\u7684\u8F6F\u4EF6\uFF0C\u5FEB\u901F\u751F\u6210\u6E90\u4EE3\u7801\u6587\u6863\uFF0C\u5305\u62EC\u6E90\u4EE3\u7801\u6587\u6863\u7684\u524D30\u9875\u3001\u540E30\u9875\u3001\u524D\u540E30\u9875", aliases: ["cr", "cop", "cri"] }, ["commit" /* COMMIT */]: { command: "commit [vip]", summary: "Git Commit \u63D0\u4EA4\u4FE1\u606F", description: "\u5FEB\u901F\u8FDB\u884CGit Commit \u63D0\u4EA4\u4FE1\u606F\uFF0C\u5E76\u68C0\u9A8C\u63D0\u4EA4\u4FE1\u606F\u662F\u5426\u7B26\u5408\u89C4\u8303", aliases: ["co", "com"] } }; const name = "@142vip/fairy-cli"; const version = "0.0.3-alpha.29"; const description = "通用型Cli助手、一站式工具,支持多种命令操作"; async function generateChangelog(args) { await VipExecutor.commandStandardExecutor(`npx changelog ${args.dryRun ? "--dry-run" : ""}`); } async function changelogMain(program) { program.initCommand(CLI_COMMAND_DETAIL[CommandEnum.CHANGELOG]).action(async (args) => { await generateChangelog(args); }); } function generateDirPatterns(dirName, delAll) { let delDirs = []; if (typeof dirName === "string") { delDirs.push(dirName); } else { delDirs.push(...dirName); } if (delAll) { delDirs = delDirs.map((dir) => dir.startsWith("!") ? `!**/${dir.substring(1)}` : `**/${dir}`); } else { delDirs = delDirs.map((dir) => `${dir}`); } return delDirs; } async function execCleanUp(args) { const dirPatterns = []; if (args.deps) { dirPatterns.push(...generateDirPatterns("node_modules", args.all)); } if (args.dist) { dirPatterns.push(...generateDirPatterns(["dist", "!node_modules/**/dist"], args.all)); } if (args.nuxt) { dirPatterns.push(...generateDirPatterns([".nuxt", ".output"], args.all)); } if (args.midway) { dirPatterns.push(...generateDirPatterns(["run", "logs", "typings"], args.all)); } if (args.turbo) { dirPatterns.push(...generateDirPatterns(".turbo", args.all)); } if (args.vite) { dirPatterns.push(...generateDirPatterns(".vite", args.all)); } if (args.coverage) { dirPatterns.push(...generateDirPatterns("coverage", args.all)); } if (args.gitHooks) { dirPatterns.push(...generateDirPatterns(".git/hooks", args.all)); } if (dirPatterns.length === 0) { vipLogger.log(VipColor.red("\u5220\u9664\u89C4\u5219\u4E3A\u7A7A\uFF0C\u4E0D\u505A\u5220\u9664\u64CD\u4F5C\u5904\u7406\uFF0C\u8BF7\u4F20\u5165\u6709\u6548\u53C2\u6570\uFF01\uFF01")); return VipNodeJS.existErrorProcess(); } if (!args.ignoreTips) { const deleted = await VipInquirer.promptConfirm("\u662F\u5426\u9700\u8981\u5220\u9664?", true); if (!deleted) { return VipNodeJS.existErrorProcess(); } } const deletedDirs = await deleteAsync(dirPatterns, { dryRun: args.dryRun, force: args.force, dot: true }); if (args.logger) { VipConsole.trace("\u5220\u9664\u89C4\u5219\uFF1A", dirPatterns); vipLogger.println(); VipConsole.trace("\u5220\u9664\u7684\u6587\u4EF6\u548C\u76EE\u5F55\uFF1A", deletedDirs); } } async function cleanUpMain(program) { program.initCommand(CLI_COMMAND_DETAIL[CommandEnum.CLEAN]).option("-n,--nuxt", "\u5220\u9664nuxt\u6784\u5EFA\u76EE\u5F55\uFF0C\u5305\u62EC.nuxt\u3001.output\u76EE\u5F55", false).option("-d,--dist", "\u5220\u9664dist\u76EE\u5F55", false).option("-m,--midway", "\u5220\u9664midway\u6784\u5EFA\u76EE\u5F55", false).option("-t,--turbo", "\u5220\u9664turbo\u7F13\u5B58\u76EE\u5F55", false).option("--vite", "\u5220\u9664vite\u7F13\u5B58\u76EE\u5F55", false).option("--deps", "\u5220\u9664node_modules\u76EE\u5F55", false).option("-c,--coverage", "\u5220\u9664coverage\u76EE\u5F55", false).option("--git-hooks", "\u5220\u9664.git/hooks\u76EE\u5F55", false).option("-f,--force", "\u5F3A\u5236\u5220\u9664\uFF0C\u9ED8\u8BA4\u503C\uFF1Afalse", false).option("-a,--all", "\u6DF1\u5EA6\u5220\u9664\u6240\u6709", false).option("--ignore-tips", "\u5FFD\u7565\u63D0\u793A\uFF0C\u76F4\u63A5\u5220\u9664", false).action(async (args) => { await execCleanUp(args); }); } const GIT_NULL_SCOPE = "\u6CA1\u6709\u8303\u56F4\uFF0C\u90A3\u5C31\u9009\u8FD9\u4E2A\uFF01\uFF01\uFF01"; async function commitMain(program) { program.initCommand(CLI_COMMAND_DETAIL[CommandEnum.COMMIT]).option("--push", "\u662F\u5426\u8981\u63A8\u9001\u5230\u8FDC\u7A0B", false).action(async (vip, args) => { if (vip) { await execVipCodeCommit(args); } }); } async function execVipCodeCommit(args) { const gitType = await VipInquirer.promptSelect("\u63D0\u4EA4\u7C7B\u578B\uFF1A", GIT_COMMIT_DEFAULT_TYPES); const pkgNames = VipMonorepo.getPkgNames(["./apps/*", "./packages/*"]); const gitScope = await VipInquirer.promptSearch( "\u63D0\u4EA4\u8303\u56F4\uFF1A", VipInquirer.handleSimpleSearchSource([VipColor.green(GIT_NULL_SCOPE), ...GIT_COMMIT_DEFAULT_SCOPES, ...pkgNames]) ); const gitSubject = await VipInquirer.promptInputRequired("\u63D0\u4EA4\u8BF4\u660E\uFF1A"); const commitMsg = gitScope.includes(GIT_NULL_SCOPE) ? `${gitType}: ${gitSubject}` : `${gitType}(${gitScope}): ${gitSubject}`; const isYes = await VipInquirer.promptConfirm(`Git Commit\u4FE1\u606F\uFF1A${VipColor.red(commitMsg)}\uFF0C\u662F\u5426\u7EE7\u7EED\u63D0\u4EA4${VipColor.bold("\u6240\u6709\u53D8\u66F4")}\uFF1F`, true); if (!isYes) { vipLogger.logByBlank(`${VipColor.redBright("\u7528\u6237\u53D6\u6D88\u63D0\u4EA4\uFF0C\u6B22\u8FCE\u4E0B\u6B21\u4F7F\u7528")}`); VipNodeJS.existErrorProcess(); } const { type, scope, subject, commit } = commitLiner({ scopes: pkgNames }, commitMsg); VipConsole.log(`type: ${type}, scope: ${scope}, subject: ${subject}`); VipConsole.log(`${VipColor.greenBright("Git Commit: ")} ${VipColor.green(commit)}`); await VipExecutor.commandStandardExecutor("git add ."); VipGit.execCommit(["-m", `'${commitMsg}'`]); if (args.push) { const remoteNames = VipGit.getRemoteNames(); const remote = await VipInquirer.promptSelect("\u9009\u62E9\u8FDC\u7A0B\u4ED3\u5E93\uFF1A", remoteNames); VipGit.execPush(["-u", remote, "HEAD"]); } } var __defProp = Object.defineProperty; var __defProps = Object.defineProperties; var __getOwnPropDescs = Object.getOwnPropertyDescriptors; var __getOwnPropSymbols = Object.getOwnPropertySymbols; var __hasOwnProp = Object.prototype.hasOwnProperty; var __propIsEnum = Object.prototype.propertyIsEnumerable; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __spreadValues = (a, b) => { for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]); if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) { if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]); } return a; }; var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); var __async = (__this, __arguments, generator) => { return new Promise((resolve, reject) => { var fulfilled = (value) => { try { step(generator.next(value)); } catch (e) { reject(e); } }; var rejected = (value) => { try { step(generator.throw(value)); } catch (e) { reject(e); } }; var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); step((generator = generator.apply(__this, __arguments)).next()); }); }; class BaseXmlComponent { constructor(rootKey) { __publicField(this, "rootKey"); this.rootKey = rootKey; } } const EMPTY_OBJECT = Object.seal({}); class XmlComponent extends BaseXmlComponent { constructor(rootKey) { super(rootKey); // eslint-disable-next-line functional/prefer-readonly-type, @typescript-eslint/no-explicit-any __publicField(this, "root"); this.root = new Array(); } // This method is called by the formatter to get the XML representation of this component. // It is called recursively for all child components. // It is a serializer to be used in the xml library. // https://www.npmjs.com/package/xml // Child components can override this method to customize the XML representation, or execute side effects. prepForXml(context) { var _a; context.stack.push(this); const children = this.root.map((comp) => { if (comp instanceof BaseXmlComponent) { return comp.prepForXml(context); } return comp; }).filter((comp) => comp !== void 0); context.stack.pop(); return { [this.rootKey]: children.length ? children.length === 1 && ((_a = children[0]) == null ? void 0 : _a._attr) ? children[0] : children : EMPTY_OBJECT }; } /** * @deprecated Do not use this method. It is only used internally by the library. It will be removed in a future version. */ addChildElement(child) { this.root.push(child); return this; } } class IgnoreIfEmptyXmlComponent extends XmlComponent { prepForXml(context) { const result = super.prepForXml(context); if (result && (typeof result[this.rootKey] !== "object" || Object.keys(result[this.rootKey]).length)) { return result; } return void 0; } } class XmlAttributeComponent extends BaseXmlComponent { constructor(root) { super("_attr"); __publicField(this, "xmlKeys"); this.root = root; } prepForXml(_) { const attrs = {}; Object.entries(this.root).forEach(([key, value]) => { if (value !== void 0) { const newKey = this.xmlKeys && this.xmlKeys[key] || key; attrs[newKey] = value; } }); return { _attr: attrs }; } } class NextAttributeComponent extends BaseXmlComponent { constructor(root) { super("_attr"); this.root = root; } prepForXml(_) { const attrs = Object.values(this.root).filter(({ value }) => value !== void 0).reduce((acc, { key, value }) => __spreadProps(__spreadValues({}, acc), { [key]: value }), {}); return { _attr: attrs }; } } class Attributes extends XmlAttributeComponent { constructor() { super(...arguments); __publicField(this, "xmlKeys", { val: "w:val", color: "w:color", fill: "w:fill", space: "w:space", sz: "w:sz", type: "w:type", rsidR: "w:rsidR", rsidRPr: "w:rsidRPr", rsidSect: "w:rsidSect", w: "w:w", h: "w:h", top: "w:top", right: "w:right", bottom: "w:bottom", left: "w:left", header: "w:header", footer: "w:footer", gutter: "w:gutter", linePitch: "w:linePitch", pos: "w:pos" }); } } var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; function getDefaultExportFromCjs$1(x) { return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x; } var sax = {}; var events = { exports: {} }; var hasRequiredEvents; function requireEvents() { if (hasRequiredEvents) return events.exports; hasRequiredEvents = 1; var R = typeof Reflect === "object" ? Reflect : null; var ReflectApply = R && typeof R.apply === "function" ? R.apply : function ReflectApply2(target, receiver, args) { return Function.prototype.apply.call(target, receiver, args); }; var ReflectOwnKeys; if (R && typeof R.ownKeys === "function") { ReflectOwnKeys = R.ownKeys; } else if (Object.getOwnPropertySymbols) { ReflectOwnKeys = function ReflectOwnKeys2(target) { return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target)); }; } else { ReflectOwnKeys = function ReflectOwnKeys2(target) { return Object.getOwnPropertyNames(target); }; } function ProcessEmitWarning(warning) { if (console && console.warn) console.warn(warning); } var NumberIsNaN = Number.isNaN || function NumberIsNaN2(value) { return value !== value; }; function EventEmitter() { EventEmitter.init.call(this); } events.exports = EventEmitter; events.exports.once = once; EventEmitter.EventEmitter = EventEmitter; EventEmitter.prototype._events = void 0; EventEmitter.prototype._eventsCount = 0; EventEmitter.prototype._maxListeners = void 0; var defaultMaxListeners = 10; function checkListener(listener) { if (typeof listener !== "function") { throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof listener); } } Object.defineProperty(EventEmitter, "defaultMaxListeners", { enumerable: true, get: function() { return defaultMaxListeners; }, set: function(arg) { if (typeof arg !== "number" || arg < 0 || NumberIsNaN(arg)) { throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + arg + "."); } defaultMaxListeners = arg; } }); EventEmitter.init = function() { if (this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) { this._events = /* @__PURE__ */ Object.create(null); this._eventsCount = 0; } this._maxListeners = this._maxListeners || void 0; }; EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) { if (typeof n !== "number" || n < 0 || NumberIsNaN(n)) { throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + n + "."); } this._maxListeners = n; return this; }; function _getMaxListeners(that) { if (that._maxListeners === void 0) return EventEmitter.defaultMaxListeners; return that._maxListeners; } EventEmitter.prototype.getMaxListeners = function getMaxListeners() { return _getMaxListeners(this); }; EventEmitter.prototype.emit = function emit(type2) { var args = []; for (var i = 1; i < arguments.length; i++) args.push(arguments[i]); var doError = type2 === "error"; var events2 = this._events; if (events2 !== void 0) doError = doError && events2.error === void 0; else if (!doError) return false; if (doError) { var er; if (args.length > 0) er = args[0]; if (er instanceof Error) { throw er; } var err = new Error("Unhandled error." + (er ? " (" + er.message + ")" : "")); err.context = er; throw err; } var handler = events2[type2]; if (handler === void 0) return false; if (typeof handler === "function") { ReflectApply(handler, this, args); } else { var len = handler.length; var listeners = arrayClone(handler, len); for (var i = 0; i < len; ++i) ReflectApply(listeners[i], this, args); } return true; }; function _addListener(target, type2, listener, prepend) { var m; var events2; var existing; checkListener(listener); events2 = target._events; if (events2 === void 0) { events2 = target._events = /* @__PURE__ */ Object.create(null); target._eventsCount = 0; } else { if (events2.newListener !== void 0) { target.emit( "newListener", type2, listener.listener ? listener.listener : listener ); events2 = target._events; } existing = events2[type2]; } if (existing === void 0) { existing = events2[type2] = listener; ++target._eventsCount; } else { if (typeof existing === "function") { existing = events2[type2] = prepend ? [listener, existing] : [existing, listener]; } else if (prepend) { existing.unshift(listener); } else { existing.push(listener); } m = _getMaxListeners(target); if (m > 0 && existing.length > m && !existing.warned) { existing.warned = true; var w = new Error("Possible EventEmitter memory leak detected. " + existing.length + " " + String(type2) + " listeners added. Use emitter.setMaxListeners() to increase limit"); w.name = "MaxListenersExceededWarning"; w.emitter = target; w.type = type2; w.count = existing.length; ProcessEmitWarning(w); } } return target; } EventEmitter.prototype.addListener = function addListener(type2, listener) { return _addListener(this, type2, listener, false); }; EventEmitter.prototype.on = EventEmitter.prototype.addListener; EventEmitter.prototype.prependListener = function prependListener(type2, listener) { return _addListener(this, type2, listener, true); }; function onceWrapper() { if (!this.fired) { this.target.removeListener(this.type, this.wrapFn); this.fired = true; if (arguments.length === 0) return this.listener.call(this.target); return this.listener.apply(this.target, arguments); } } function _onceWrap(target, type2, listener) { var state2 = { fired: false, wrapFn: void 0, target, type: type2, listener }; var wrapped = onceWrapper.bind(state2); wrapped.listener = listener; state2.wrapFn = wrapped; return wrapped; } EventEmitter.prototype.once = function once2(type2, listener) { checkListener(listener); this.on(type2, _onceWrap(this, type2, listener)); return this; }; EventEmitter.prototype.prependOnceListener = function prependOnceListener(type2, listener) { checkListener(listener); this.prependListener(type2, _onceWrap(this, type2, listener)); return this; }; EventEmitter.prototype.removeListener = function removeListener(type2, listener) { var list, events2, position, i, originalListener; checkListener(listener); events2 = this._events; if (events2 === void 0) return this; list = events2[type2]; if (list === void 0) return this; if (list === listener || list.listener === listener) { if (--this._eventsCount === 0) this._events = /* @__PURE__ */ Object.create(null); else { delete events2[type2]; if (events2.removeListener) this.emit("removeListener", type2, list.listener || listener); } } else if (typeof list !== "function") { position = -1; for (i = list.length - 1; i >= 0; i--) { if (list[i] === listener || list[i].listener === listener) { originalListener = list[i].listener; position = i; break; } } if (position < 0) return this; if (position === 0) list.shift(); else { spliceOne(list, position); } if (list.length === 1) events2[type2] = list[0]; if (events2.removeListener !== void 0) this.emit("removeListener", type2, originalListener || listener); } return this; }; EventEmitter.prototype.off = EventEmitter.prototype.removeListener; EventEmitter.prototype.removeAllListeners = function removeAllListeners(type2) { var listeners, events2, i; events2 = this._events; if (events2 === void 0) return this; if (events2.removeListener === void 0) { if (arguments.length === 0) { this._events = /* @__PURE__ */ Object.create(null); this._eventsCount = 0; } else if (events2[type2] !== void 0) { if (--this._eventsCount === 0) this._events = /* @__PURE__ */ Object.create(null); else delete events2[type2]; } return this; } if (arguments.length === 0) { var keys = Object.keys(events2); var key; for (i = 0; i < keys.length; ++i) { key = keys[i]; if (key === "removeListener") continue; this.removeAllListeners(key); } this.removeAllListeners("removeListener"); this._events = /* @__PURE__ */ Object.create(null); this._eventsCount = 0; return this; } listeners = events2[type2]; if (typeof listeners === "function") { this.removeListener(type2, listeners); } else if (listeners !== void 0) { for (i = listeners.length - 1; i >= 0; i--) { this.removeListener(type2, listeners[i]); } } return this; }; function _listeners(target, type2, unwrap) { var events2 = target._events; if (events2 === void 0) return []; var evlistener = events2[type2]; if (evlistener === void 0) return []; if (typeof evlistener === "function") return unwrap ? [evlistener.listener || evlistener] : [evlistener]; return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length); } EventEmitter.prototype.listeners = function listeners(type2) { return _listeners(this, type2, true); }; EventEmitter.prototype.rawListeners = function rawListeners(type2) { return _listeners(this, type2, false); }; EventEmitter.listenerCount = function(emitter, type2) { if (typeof emitter.listenerCount === "function") { return emitter.listenerCount(type2); } else { return listenerCount.call(emitter, type2); } }; EventEmitter.prototype.listenerCount = listenerCount; function listenerCount(type2) { var events2 = this._events; if (events2 !== void 0) { var evlistener = events2[type2]; if (typeof evlistener === "function") { return 1; } else if (evlistener !== void 0) { return evlistener.length; } } return 0; } EventEmitter.prototype.eventNames = function eventNames() { return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : []; }; function arrayClone(arr, n) { var copy = new Array(n); for (var i = 0; i < n; ++i) copy[i] = arr[i]; return copy; } function spliceOne(list, index) { for (; index + 1 < list.length; index++) list[index] = list[index + 1]; list.pop(); } function unwrapListeners(arr) { var ret = new Array(arr.length); for (var i = 0; i < ret.length; ++i) { ret[i] = arr[i].listener || arr[i]; } return ret; } function once(emitter, name) { return new Promise(function(resolve, reject) { function errorListener(err) { emitter.removeListener(name, resolver); reject(err); } function resolver() { if (typeof emitter.removeListener === "function") { emitter.removeListener("error", errorListener); } resolve([].slice.call(arguments)); } eventTargetAgnosticAddListener(emitter, name, resolver, { once: true }); if (name !== "error") { addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true }); } }); } function addErrorHandlerIfEventEmitter(emitter, handler, flags) { if (typeof emitter.on === "function") { eventTargetAgnosticAddListener(emitter, "error", handler, flags); } } function eventTargetAgnosticAddListener(emitter, name, listener, flags) { if (typeof emitter.on === "function") { if (flags.once) { emitter.once(name, listener); } else { emitter.on(name, listener); } } else if (typeof emitter.addEventListener === "function") { emitter.addEventListener(name, function wrapListener(arg) { if (flags.once) { emitter.removeEventListener(name, wrapListener); } listener(arg); }); } else { throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type ' + typeof emitter); } } return events.exports; } var inherits_browser = { exports: {} }; var hasRequiredInherits_browser; function requireInherits_browser() { if (hasRequiredInherits_browser) return inherits_browser.exports; hasRequiredInherits_browser = 1; if (typeof Object.create === "function") { inherits_browser.exports = function inherits(ctor, superCtor) { if (superCtor) { ctor.super_ = superCtor; ctor.prototype = Object.create(superCtor.prototype, { constructor: { value: ctor, enumerable: false, writable: true, configurable: true } }); } }; } else { inherits_browser.exports = function inherits(ctor, superCtor) { if (superCtor) { ctor.super_ = superCtor; var TempCtor = function() { }; TempCtor.prototype = superCtor.prototype; ctor.prototype = new TempCtor(); ctor.prototype.constructor = ctor; } }; } return inherits_browser.exports; } function getDefaultExportFromCjs(x) { return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x; } var browser$1 = { exports: {} }; var process = browser$1.exports = {}; var cachedSetTimeout; var cachedClearTimeout; function defaultSetTimout() { throw new Error("setTimeout has not been defined"); } function defaultClearTimeout() { throw new Error("clearTimeout has not been defined"); } (function() { try { if (typeof setTimeout === "function") { cachedSetTimeout = setTimeout; } else { cachedSetTimeout = defaultSetTimout; } } catch (e) { cachedSetTimeout = defaultSetTimout; } try { if (typeof clearTimeout === "function") { cachedClearTimeout = clearTimeout; } else { cachedClearTimeout = defaultClearTimeout; } } catch (e) { cachedClearTimeout = defaultClearTimeout; } })(); function runTimeout(fun) { if (cachedSetTimeout === setTimeout) { return setTimeout(fun, 0); } if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { cachedSetTimeout = setTimeout; return setTimeout(fun, 0); } try { return cachedSetTimeout(fun, 0); } catch (e) { try { return cachedSetTimeout.call(null, fun, 0); } catch (e2) { return cachedSetTimeout.call(this, fun, 0); } } } function runClearTimeout(marker) { if (cachedClearTimeout === clearTimeout) { return clearTimeout(marker); } if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { cachedClearTimeout = clearTimeout; return clearTimeout(marker); } try { return cachedClearTimeout(marker); } catch (e) { try { return cachedClearTimeout.call(null, marker); } catch (e2) { return cachedClearTimeout.call(this, marker); } } } var queue = []; var draining = false; var currentQueue; var queueIndex = -1; function cleanUpNextTick() { if (!draining || !currentQueue) { return; } draining = false; if (currentQueue.length) { queue = currentQueue.concat(queue); } else { queueIndex = -1; } if (queue.length) { drainQueue(); } } function drainQueue() { if (draining) { return; } var timeout = runTimeout(cleanUpNextTick); draining = true; var len = queue.length; while (len) { currentQueue = queue; queue = []; while (++queueIndex < len) { if (currentQueue) { currentQueue[queueIndex].run(); } } queueIndex = -1; len = queue.length; } currentQueue = null; draining = false; runClearTimeout(timeout); } process.nextTick = function(fun) { var args = new Array(arguments.length - 1); if (arguments.length > 1) { for (var i = 1; i < arguments.length; i++) { args[i - 1] = arguments[i]; } } queue.push(new Item(fun, args)); if (queue.length === 1 && !draining) { runTimeout(drainQueue); } }; function Item(fun, array) { this.fun = fun; this.array = array; } Item.prototype.run = function() { this.fun.apply(null, this.array); }; process.title = "browser"; process.browser = true; process.env = {}; process.argv = []; process.version = ""; process.versions = {}; function noop() { } process.on = noop; process.addListener = noop; process.once = noop; process.off = noop; process.removeListener = noop; process.removeAllListeners = noop; process.emit = noop; process.prependListener = noop; process.prependOnceListener = noop; process.listeners = function(name) { return []; }; process.binding = function(name) { throw new Error("process.binding is not supported"); }; process.cwd = function() { return "/"; }; process.chdir = function(dir) { throw new Error("process.chdir is not supported"); }; process.umask = function() { return 0; }; var browserExports = browser$1.exports; const process$1 = /* @__PURE__ */ getDefaultExportFromCjs(browserExports); var streamBrowser; var hasRequiredStreamBrowser; function requireStreamBrowser() { if (hasRequiredStreamBrowser) return streamBrowser; hasRequiredStreamBrowser = 1; streamBrowser = requireEvents().EventEmitter; return streamBrowser; } var buffer = {}; var base64Js = {}; var hasRequiredBase64Js; function requireBase64Js() { if (hasRequiredBase64Js) return base64Js; hasRequiredBase64Js = 1; base64Js.byteLength = byteLength; base64Js.toByteArray = toByteArray; base64Js.fromByteArray = fromByteArray; var lookup = []; var revLookup = []; var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array; var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; for (var i = 0, len = code.length; i < len; ++i) { lookup[i] = code[i]; revLookup[code.charCodeAt(i)] = i; } revLookup["-".charCodeAt(0)] = 62; revLookup["_".charCodeAt(0)] = 63; function getLens(b64) { var len2 = b64.length; if (len2 % 4 > 0) { throw new Error("Invalid string. Length must be a multiple of 4"); } var validLen = b64.indexOf("="); if (validLen === -1) validLen = len2; var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4; return [validLen, placeHoldersLen]; } function byteLength(b64) { var lens = getLens(b64); var validLen = lens[0]; var placeHoldersLen = lens[1]; return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen; } function _byteLength(b64, validLen, placeHoldersLen) { return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen; } function toByteArray(b64) { var tmp; var lens = getLens(b64); var validLen = lens[0]; var placeHoldersLen = lens[1]; var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)); var curByte = 0; var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen; var i2; for (i2 = 0; i2 < len2; i2 += 4) { tmp = revLookup[b64.charCodeAt(i2)] << 18 | revLookup[b64.charCodeAt(i2 + 1)] << 12 | revLookup[b64.charCodeAt(i2 + 2)] << 6 | revLookup[b64.charCodeAt(i2 + 3)]; arr[curByte++] = tmp >> 16 & 255; arr[curByte++] = tmp >> 8 & 255; arr[curByte++] = tmp & 255; } if (placeHoldersLen === 2) { tmp = revLookup[b64.charCodeAt(i2)] << 2 | revLookup[b64.charCodeAt(i2 + 1)] >> 4; arr[curByte++] = tmp & 255; } if (placeHoldersLen === 1) { tmp = revLookup[b64.charCodeAt(i2)] << 10 | revLookup[b64.charCodeAt(i2 + 1)] << 4 | revLookup[b64.charCodeAt(i2 + 2)] >> 2; arr[curByte++] = tmp >> 8 & 255; arr[curByte++] = tmp & 255; } return arr; } function tripletToBase64(num) { return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63]; } function encodeChunk(uint8, start, end) { var tmp; var output = []; for (var i2 = start; i2 < end; i2 += 3) { tmp = (uint8[i2] << 16 & 16711680) + (uint8[i2 + 1] << 8 & 65280) + (uint8[i2 + 2] & 255); output.push(tripletToBase64(tmp)); } return output.join(""); } function fromByteArray(uint8) { var tmp; var len2 = uint8.length; var extraBytes = len2 % 3; var parts = []; var maxChunkLength = 16383; for (var i2 = 0, len22 = len2 - extraBytes; i2 < len22; i2 += maxChunkLength) { parts.push(encodeChunk(uint8, i2, i2 + maxChunkLength > len22 ? len22 : i2 + maxChunkLength)); } if (extraBytes === 1) { tmp = uint8[len2 - 1]; parts.push( lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "==" ); } else if (extraBytes === 2) { tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1]; parts.push( lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "=" ); } return parts.join(""); } return base64Js; } var ieee754 = {}; /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */ var hasRequiredIeee754; function requireIeee754() { if (hasRequiredIeee754) return ieee754; hasRequiredIeee754 = 1; ieee754.read = function(buffer2, offset, isLE, mLen, nBytes) { var e, m; var eLen = nBytes * 8 - mLen - 1; var eMax = (1 << eLen) - 1; var eBias = eMax >> 1; var nBits = -7; var i = isLE ? nBytes - 1 : 0; var d = isLE ? -1 : 1; var s = buffer2[offset + i]; i += d; e = s & (1 << -nBits) - 1; s >>= -nBits; nBits += eLen; for (; nBits > 0; e = e * 256 + buffer2[offset + i], i += d, nBits -= 8) { } m = e & (1 << -nBits) - 1; e >>= -nBits; nBits += mLen; for (; nBits > 0; m = m * 256 + buffer2[offset + i], i += d, nBits -= 8) { } if (e === 0) { e = 1 - eBias; } else if (e === eMax) { return m ? NaN : (s ? -1 : 1) * Infinity; } else { m = m + Math.pow(2, mLen); e = e - eBias; } return (s ? -1 : 1) * m * Math.pow(2, e - mLen); }; ieee754.write = function(buffer2, value, offset, isLE, mLen, nBytes) { var e, m, c; var eLen = nBytes * 8 - mLen - 1; var eMax = (1 << eLen) - 1; var eBias = eMax >> 1; var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0; var i = isLE ? 0 : nBytes - 1; var d = isLE ? 1 : -1; var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0; value = Math.abs(value); if (isNaN(value) || value === Infinity) { m = isNaN(value) ? 1 : 0; e = eMax; } else { e = Math.floor(Math.log(value) / Math.LN2); if (value * (c = Math.pow(2, -e)) < 1) { e--; c *= 2; } if (e + eBias >= 1) { value += rt / c; } else { value += rt * Math.pow(2, 1 - eBias); } if (value * c >= 2) { e++; c /= 2; } if (e + eBias >= eMax) { m = 0; e = eMax; } else if (e + eBias >= 1) { m = (value * c - 1) * Math.pow(2, mLen); e = e + eBias; } else { m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen); e = 0; } } for (; mLen >= 8; buffer2[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) { } e = e << mLen | m; eLen += mLen; for (; eLen > 0; buffer2[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) { } buffer2[offset + i - d] |= s * 128; }; return ieee754; } /*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh <https://feross.org> * @license MIT */ var hasRequiredBuffer; function requireBuffer() { if (hasRequiredBuffer) return buffer; hasRequiredBuffer = 1; (function(exports) { var base64 = requireBase64Js(); var ieee7542 = requireIeee754(); var customInspectSymbol = typeof Symbol === "function" && typeof Symbol["for"] === "function" ? Symbol["for"]("nodejs.util.inspect.custom") : null; exports.Buffer = Buffer2; exports.SlowBuffer = SlowBuffer; exports.INSPECT_MAX_BYTES = 50; var K_MAX_LENGTH = 2147483647; exports.kMaxLength = K_MAX_LENGTH; Buffer2.TYPED_ARRAY_SUPPORT = typedArraySupport(); if (!Buffer2.TYPED_ARRAY_SUPPORT && typeof console !== "undefined" && typeof console.error === "function") { console.error( "This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support." ); } function typedArraySupport() { try { var arr = new Uint8Array(1); var proto = { foo: function() { return 42; } }; Object.setPrototypeOf(proto, Uint8Array.prototype); Object.setPrototypeOf(arr, proto); return arr.foo() === 42; } catch (e) { return false; } } Object.defineProperty(Buffer2.prototype, "parent", { enumerable: true, get: function() { if (!Buffer2.isBuffer(this)) return void 0; return this.buffer; } }); Object.defineProperty(Buffer2.prototype, "offset", { enumerable: true, get: function() { if (!Buffer2.isBuffer(this)) return void 0; return this.byteOffset; } }); function createBuffer(length) { if (length > K_MAX_LENGTH) { throw new RangeError('The value "' + length + '" is invalid for option "size"'); } var buf = new Uint8Array(length); Object.setPrototypeOf(buf, Buffer2.prototype); return buf; } function Buffer2(arg, encodingOrOffset, length) { if (typeof arg === "number") { if (typeof encodingOrOffset === "string") { throw new TypeError( 'The "string" argument must be of type string. Received type number' ); } return allocUnsafe(arg); } return from(arg, encodingOrOffset, length); } Buffer2.poolSize = 8192; function from(value, encodingOrOffset, length) { if (typeof value === "string") { return fromString(value, encodingOrOffset); } if (ArrayBuffer.isView(value)) { return fromArrayView(value); } if (value == null) { throw new TypeError( "The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value ); } if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) { return fromArrayBuffer(value, encodingOrOffset, length); } if (typeof SharedArrayBuffer !== "undefined" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) { return fromArrayBuffer(value, encodingOrOffset, length); } if (typeof value === "number") { throw new TypeError( 'The "value" argument must not be of type number. Received type number' ); } var valueOf = value.valueOf && value.valueOf(); if (valueOf != null && valueOf !== value) { return Buffer2.from(valueOf, encodingOrOffset, length); } var b = fromObject(value); if (b) return b; if (typeof Symbol !== "undefined" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === "function") { return Buffer2.from( value[Symbol.toPrimitive]("string"), encodingOrOffset, length ); } throw new TypeError( "The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value ); } Buffer2.from = function(value, encodingOrOffset, length) { return from(value, encodingOrOffset, length); }; Object.setPrototypeOf(Buffer2.prototype, Uint8Array.prototype); Object.setPrototypeOf(Buffer2, Uint8Array); function assertSize(size) { if (typeof size !== "number") { throw new TypeError('"size" argument must be of type number'); } else if (size < 0) { throw new RangeError('The value "' + size + '" is invalid for option "size"'); } } function alloc(size, fill, encoding) { assertSize(size); if (size <= 0) { return createBuffer(size); } if (fill !== void 0) { return typeof encoding === "string" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill); } return createBuffer(size); } Buffer2.alloc = function(size, fill, encoding) { return alloc(size, fill, encoding); }; function allocUnsafe(size) { assertSize(size); return createBuffer(size < 0 ? 0 : checked(size) | 0); } Buffer2.allocUnsafe = function(size) { return allocUnsafe(size); }; Buffer2.allocUnsafeSlow = function(size) { return allocUnsafe(size); }; function fromString(string, encoding) { if (typeof encoding !== "string" || encoding === "") { encoding = "utf8"; } if (!Buffer2.isEncoding(encoding)) { throw new TypeError("Unknown encoding: " + encoding); } var length = byteLength(string, encoding) | 0; var buf = createBuffer(length); var actual = buf.write(string, encoding); if (actual !== length) { buf = buf.slice(0, actual); } return buf; } function fromArrayLike(array) { var length = array.length < 0 ? 0 : checked(array.length) | 0; var buf = createBuffer(length); for (var i = 0; i < length; i += 1) { buf[i] = array[i] & 255; } return buf; } function fromArrayView(arrayView) { if (isInstance(arrayView, Uint8Array)) { var copy = new Uint8Array(arrayView); return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength); } return fromArrayLike(arrayView); } function fromArrayBuffer(array, byteOffset, length) { if (byteOffset < 0 || array.byteLength < byteOffset) { throw new RangeError('"offset" is outside of buffer bounds'); } if (array.byteLength < byteOffset + (length || 0)) { throw new RangeError('"length" is outside of buffer bounds'); } var buf; if (byteOffset === void 0 && length === void 0) { buf = new Uint8Array(array); } else if (length === void 0) { buf = new Uint8Array(array, byteOffset); } else { buf = new Uint8Array(array, byteOffset, length); } Object.setPrototypeOf(buf, Buffer2.prototype); return buf; } function fromObject(obj) { if (Buffer2.isBuffer(obj)) { var len = checked(obj.length) | 0; var buf = createBuffer(len); if (buf.length === 0) { return buf; } obj.copy(buf, 0, 0, len); return buf; } if (obj.length !== void 0) { if (typeof obj.length !== "number" || numberIsNaN(obj.length)) { return createBuffer(0); } return fromArrayLike(obj); } if (obj.type === "Buffer" && Array.isArray(obj.data)) { return fromArrayLike(obj.data); } } function checked(length) { if (length >= K_MAX_LENGTH) { throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + K_MAX_LENGTH.toString(16) + " bytes"); } return length | 0; } function SlowBuffer(length) { if (+length != length) { length = 0; } return Buffer2.alloc(+length); } Buffer2.isBuffer = function isBuffer(b) { return b != null && b._isBuffer === true && b !== Buffer2.prototype; }; Buffer2.compare = function compare(a, b) { if (isInstance(a, Uint8Array)) a = Buffer2.from(a, a.offset, a.byteLength); if (isInstance(b, Uint8Array)) b = Buffer2.from(b, b.offset, b.byteLength); if (!Buffer2.isBuffer(a) || !Buffer2.isBuffer(b)) { throw new TypeError( 'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array' ); } if (a === b) return 0; var x = a.length; var y = b.length; for (var i = 0, len = Math.min(x, y); i < len; ++i) { if (a[i] !== b[i]) { x = a[i]; y = b[i]; break; } } if (x < y) return -1; if (y < x) return 1; return 0; }; Buffer2.isEncoding = function isEncoding(encoding) { switch (String(encoding).toLowerCase()) { case "hex": case "utf8": case "utf-8": case "ascii": case "latin1": case "binary": case "base64": case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return true; default: return false; } }; Buffer2.concat = function concat(list, length) { if (!Array.isArray(list)) { throw new TypeError('"list" argument must be an Array of Buffers'); } if (list.length === 0) { return Buffer2.alloc(0); } var i; if (length === void 0) { length = 0; for (i = 0; i < list.length; ++i) { length += list[i].length; } } var buffer2 = Buffer2.allocUnsafe(length); var pos = 0; for (i = 0; i < list.length; ++i) { var buf = list[i]; if (isInstance(buf, Uint8Array)) { if (pos + buf.length > buffer2.length) { Buffer2.from(buf).copy(buffer2, pos); } else { Uint8Array.prototype.set.call( buffer2, buf, pos ); } } else if (!Buffer2.isBuffer(buf)) { throw new TypeError('"list" argument must be an Array of Buffers'); } else { buf.copy(buffer2, pos); } pos += buf.length; } return buffer2; }; function byteLength(string, encoding) { if (Buffer2.isBuffer(string)) { return string.length; } if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) { return string.byteLength; } if (typeof string !== "string") { throw new TypeError( 'The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' + typeof string ); } var len = string.length; var mustMatch = arguments.length > 2 && arguments[2] === true; if (!mustMatch && len === 0) return 0; var loweredCase = false; for (; ; ) { switch (encoding) { case "ascii": case "latin1": case "binary": return len; case "utf8": case "utf-8": return utf8ToBytes(string).length; case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": return len * 2; case "hex": return len >>> 1; case "base64": return base64ToBytes(string).length; default: if (loweredCase) { return mustMatch ? -1 : utf8ToBytes(string).length; } encoding = ("" + encoding).toLowerCase(); loweredCase = true; } } } Buffer2.byteLength