@142vip/fairy-cli
Version:
通用型Cli助手、一站式工具,支持多种命令操作
1,463 lines (1,457 loc) • 683 kB
JavaScript
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