mirror of
https://github.com/cloudflare/wrangler-action.git
synced 2025-01-23 05:44:46 +01:00
6531 lines
226 KiB
JavaScript
6531 lines
226 KiB
JavaScript
import { createRequire as __prettierCreateRequire } from "module";
|
|
import { fileURLToPath as __prettierFileUrlToPath } from "url";
|
|
import { dirname as __prettierDirname } from "path";
|
|
const require = __prettierCreateRequire(import.meta.url);
|
|
const __filename = __prettierFileUrlToPath(import.meta.url);
|
|
const __dirname = __prettierDirname(__filename);
|
|
|
|
var __create = Object.create;
|
|
var __defProp = Object.defineProperty;
|
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
var __getProtoOf = Object.getPrototypeOf;
|
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
}) : x)(function(x) {
|
|
if (typeof require !== "undefined")
|
|
return require.apply(this, arguments);
|
|
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
});
|
|
var __commonJS = (cb, mod) => function __require2() {
|
|
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
};
|
|
var __copyProps = (to, from, except, desc) => {
|
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
for (let key of __getOwnPropNames(from))
|
|
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
}
|
|
return to;
|
|
};
|
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
// If the importer is in node compatibility mode or this is not an ESM
|
|
// file that has been converted to a CommonJS file using a Babel-
|
|
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
mod
|
|
));
|
|
|
|
// node_modules/cosmiconfig/dist/cacheWrapper.js
|
|
var require_cacheWrapper = __commonJS({
|
|
"node_modules/cosmiconfig/dist/cacheWrapper.js"(exports) {
|
|
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.cacheWrapper = cacheWrapper;
|
|
exports.cacheWrapperSync = cacheWrapperSync;
|
|
async function cacheWrapper(cache, key, fn) {
|
|
const cached = cache.get(key);
|
|
if (cached !== void 0) {
|
|
return cached;
|
|
}
|
|
const result = await fn();
|
|
cache.set(key, result);
|
|
return result;
|
|
}
|
|
function cacheWrapperSync(cache, key, fn) {
|
|
const cached = cache.get(key);
|
|
if (cached !== void 0) {
|
|
return cached;
|
|
}
|
|
const result = fn();
|
|
cache.set(key, result);
|
|
return result;
|
|
}
|
|
}
|
|
});
|
|
|
|
// node_modules/cosmiconfig/dist/getPropertyByPath.js
|
|
var require_getPropertyByPath = __commonJS({
|
|
"node_modules/cosmiconfig/dist/getPropertyByPath.js"(exports) {
|
|
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.getPropertyByPath = getPropertyByPath;
|
|
function getPropertyByPath(source, path) {
|
|
if (typeof path === "string" && Object.prototype.hasOwnProperty.call(source, path)) {
|
|
return source[path];
|
|
}
|
|
const parsedPath = typeof path === "string" ? path.split(".") : path;
|
|
return parsedPath.reduce((previous, key) => {
|
|
if (previous === void 0) {
|
|
return previous;
|
|
}
|
|
return previous[key];
|
|
}, source);
|
|
}
|
|
}
|
|
});
|
|
|
|
// node_modules/import-fresh/node_modules/resolve-from/index.js
|
|
var require_resolve_from = __commonJS({
|
|
"node_modules/import-fresh/node_modules/resolve-from/index.js"(exports, module) {
|
|
"use strict";
|
|
var path = __require("path");
|
|
var Module = __require("module");
|
|
var fs2 = __require("fs");
|
|
var resolveFrom = (fromDir, moduleId, silent) => {
|
|
if (typeof fromDir !== "string") {
|
|
throw new TypeError(`Expected \`fromDir\` to be of type \`string\`, got \`${typeof fromDir}\``);
|
|
}
|
|
if (typeof moduleId !== "string") {
|
|
throw new TypeError(`Expected \`moduleId\` to be of type \`string\`, got \`${typeof moduleId}\``);
|
|
}
|
|
try {
|
|
fromDir = fs2.realpathSync(fromDir);
|
|
} catch (err) {
|
|
if (err.code === "ENOENT") {
|
|
fromDir = path.resolve(fromDir);
|
|
} else if (silent) {
|
|
return null;
|
|
} else {
|
|
throw err;
|
|
}
|
|
}
|
|
const fromFile = path.join(fromDir, "noop.js");
|
|
const resolveFileName = () => Module._resolveFilename(moduleId, {
|
|
id: fromFile,
|
|
filename: fromFile,
|
|
paths: Module._nodeModulePaths(fromDir)
|
|
});
|
|
if (silent) {
|
|
try {
|
|
return resolveFileName();
|
|
} catch (err) {
|
|
return null;
|
|
}
|
|
}
|
|
return resolveFileName();
|
|
};
|
|
module.exports = (fromDir, moduleId) => resolveFrom(fromDir, moduleId);
|
|
module.exports.silent = (fromDir, moduleId) => resolveFrom(fromDir, moduleId, true);
|
|
}
|
|
});
|
|
|
|
// scripts/build/shims/parent-module.cjs
|
|
var require_parent_module = __commonJS({
|
|
"scripts/build/shims/parent-module.cjs"(exports, module) {
|
|
"use strict";
|
|
var parentModule = (file) => file;
|
|
module.exports = parentModule;
|
|
}
|
|
});
|
|
|
|
// node_modules/import-fresh/index.js
|
|
var require_import_fresh = __commonJS({
|
|
"node_modules/import-fresh/index.js"(exports, module) {
|
|
"use strict";
|
|
var path = __require("path");
|
|
var resolveFrom = require_resolve_from();
|
|
var parentModule = require_parent_module();
|
|
module.exports = (moduleId) => {
|
|
if (typeof moduleId !== "string") {
|
|
throw new TypeError("Expected a string");
|
|
}
|
|
const parentPath = parentModule(__filename);
|
|
const cwd = parentPath ? path.dirname(parentPath) : __dirname;
|
|
const filePath = resolveFrom(cwd, moduleId);
|
|
const oldModule = __require.cache[filePath];
|
|
if (oldModule && oldModule.parent) {
|
|
let i = oldModule.parent.children.length;
|
|
while (i--) {
|
|
if (oldModule.parent.children[i].id === filePath) {
|
|
oldModule.parent.children.splice(i, 1);
|
|
}
|
|
}
|
|
}
|
|
delete __require.cache[filePath];
|
|
const parent = __require.cache[parentPath];
|
|
return parent === void 0 ? __require(filePath) : parent.require(filePath);
|
|
};
|
|
}
|
|
});
|
|
|
|
// node_modules/is-arrayish/index.js
|
|
var require_is_arrayish = __commonJS({
|
|
"node_modules/is-arrayish/index.js"(exports, module) {
|
|
"use strict";
|
|
module.exports = function isArrayish(obj) {
|
|
if (!obj) {
|
|
return false;
|
|
}
|
|
return obj instanceof Array || Array.isArray(obj) || obj.length >= 0 && obj.splice instanceof Function;
|
|
};
|
|
}
|
|
});
|
|
|
|
// node_modules/error-ex/index.js
|
|
var require_error_ex = __commonJS({
|
|
"node_modules/error-ex/index.js"(exports, module) {
|
|
"use strict";
|
|
var util = __require("util");
|
|
var isArrayish = require_is_arrayish();
|
|
var errorEx = function errorEx2(name, properties) {
|
|
if (!name || name.constructor !== String) {
|
|
properties = name || {};
|
|
name = Error.name;
|
|
}
|
|
var errorExError = function ErrorEXError(message) {
|
|
if (!this) {
|
|
return new ErrorEXError(message);
|
|
}
|
|
message = message instanceof Error ? message.message : message || this.message;
|
|
Error.call(this, message);
|
|
Error.captureStackTrace(this, errorExError);
|
|
this.name = name;
|
|
Object.defineProperty(this, "message", {
|
|
configurable: true,
|
|
enumerable: false,
|
|
get: function() {
|
|
var newMessage = message.split(/\r?\n/g);
|
|
for (var key in properties) {
|
|
if (!properties.hasOwnProperty(key)) {
|
|
continue;
|
|
}
|
|
var modifier = properties[key];
|
|
if ("message" in modifier) {
|
|
newMessage = modifier.message(this[key], newMessage) || newMessage;
|
|
if (!isArrayish(newMessage)) {
|
|
newMessage = [newMessage];
|
|
}
|
|
}
|
|
}
|
|
return newMessage.join("\n");
|
|
},
|
|
set: function(v) {
|
|
message = v;
|
|
}
|
|
});
|
|
var overwrittenStack = null;
|
|
var stackDescriptor = Object.getOwnPropertyDescriptor(this, "stack");
|
|
var stackGetter = stackDescriptor.get;
|
|
var stackValue = stackDescriptor.value;
|
|
delete stackDescriptor.value;
|
|
delete stackDescriptor.writable;
|
|
stackDescriptor.set = function(newstack) {
|
|
overwrittenStack = newstack;
|
|
};
|
|
stackDescriptor.get = function() {
|
|
var stack = (overwrittenStack || (stackGetter ? stackGetter.call(this) : stackValue)).split(/\r?\n+/g);
|
|
if (!overwrittenStack) {
|
|
stack[0] = this.name + ": " + this.message;
|
|
}
|
|
var lineCount = 1;
|
|
for (var key in properties) {
|
|
if (!properties.hasOwnProperty(key)) {
|
|
continue;
|
|
}
|
|
var modifier = properties[key];
|
|
if ("line" in modifier) {
|
|
var line = modifier.line(this[key]);
|
|
if (line) {
|
|
stack.splice(lineCount++, 0, " " + line);
|
|
}
|
|
}
|
|
if ("stack" in modifier) {
|
|
modifier.stack(this[key], stack);
|
|
}
|
|
}
|
|
return stack.join("\n");
|
|
};
|
|
Object.defineProperty(this, "stack", stackDescriptor);
|
|
};
|
|
if (Object.setPrototypeOf) {
|
|
Object.setPrototypeOf(errorExError.prototype, Error.prototype);
|
|
Object.setPrototypeOf(errorExError, Error);
|
|
} else {
|
|
util.inherits(errorExError, Error);
|
|
}
|
|
return errorExError;
|
|
};
|
|
errorEx.append = function(str, def) {
|
|
return {
|
|
message: function(v, message) {
|
|
v = v || def;
|
|
if (v) {
|
|
message[0] += " " + str.replace("%s", v.toString());
|
|
}
|
|
return message;
|
|
}
|
|
};
|
|
};
|
|
errorEx.line = function(str, def) {
|
|
return {
|
|
line: function(v) {
|
|
v = v || def;
|
|
if (v) {
|
|
return str.replace("%s", v.toString());
|
|
}
|
|
return null;
|
|
}
|
|
};
|
|
};
|
|
module.exports = errorEx;
|
|
}
|
|
});
|
|
|
|
// node_modules/json-parse-even-better-errors/index.js
|
|
var require_json_parse_even_better_errors = __commonJS({
|
|
"node_modules/json-parse-even-better-errors/index.js"(exports, module) {
|
|
"use strict";
|
|
var hexify = (char) => {
|
|
const h = char.charCodeAt(0).toString(16).toUpperCase();
|
|
return "0x" + (h.length % 2 ? "0" : "") + h;
|
|
};
|
|
var parseError = (e, txt, context) => {
|
|
if (!txt) {
|
|
return {
|
|
message: e.message + " while parsing empty string",
|
|
position: 0
|
|
};
|
|
}
|
|
const badToken = e.message.match(/^Unexpected token (.) .*position\s+(\d+)/i);
|
|
const errIdx = badToken ? +badToken[2] : e.message.match(/^Unexpected end of JSON.*/i) ? txt.length - 1 : null;
|
|
const msg = badToken ? e.message.replace(/^Unexpected token ./, `Unexpected token ${JSON.stringify(badToken[1])} (${hexify(badToken[1])})`) : e.message;
|
|
if (errIdx !== null && errIdx !== void 0) {
|
|
const start = errIdx <= context ? 0 : errIdx - context;
|
|
const end = errIdx + context >= txt.length ? txt.length : errIdx + context;
|
|
const slice = (start === 0 ? "" : "...") + txt.slice(start, end) + (end === txt.length ? "" : "...");
|
|
const near = txt === slice ? "" : "near ";
|
|
return {
|
|
message: msg + ` while parsing ${near}${JSON.stringify(slice)}`,
|
|
position: errIdx
|
|
};
|
|
} else {
|
|
return {
|
|
message: msg + ` while parsing '${txt.slice(0, context * 2)}'`,
|
|
position: 0
|
|
};
|
|
}
|
|
};
|
|
var JSONParseError = class extends SyntaxError {
|
|
constructor(er, txt, context, caller) {
|
|
context = context || 20;
|
|
const metadata = parseError(er, txt, context);
|
|
super(metadata.message);
|
|
Object.assign(this, metadata);
|
|
this.code = "EJSONPARSE";
|
|
this.systemError = er;
|
|
Error.captureStackTrace(this, caller || this.constructor);
|
|
}
|
|
get name() {
|
|
return this.constructor.name;
|
|
}
|
|
set name(n) {
|
|
}
|
|
get [Symbol.toStringTag]() {
|
|
return this.constructor.name;
|
|
}
|
|
};
|
|
var kIndent = Symbol.for("indent");
|
|
var kNewline = Symbol.for("newline");
|
|
var formatRE = /^\s*[{\[]((?:\r?\n)+)([\s\t]*)/;
|
|
var emptyRE = /^(?:\{\}|\[\])((?:\r?\n)+)?$/;
|
|
var parseJson = (txt, reviver, context) => {
|
|
const parseText = stripBOM(txt);
|
|
context = context || 20;
|
|
try {
|
|
const [, newline = "\n", indent = " "] = parseText.match(emptyRE) || parseText.match(formatRE) || [, "", ""];
|
|
const result = JSON.parse(parseText, reviver);
|
|
if (result && typeof result === "object") {
|
|
result[kNewline] = newline;
|
|
result[kIndent] = indent;
|
|
}
|
|
return result;
|
|
} catch (e) {
|
|
if (typeof txt !== "string" && !Buffer.isBuffer(txt)) {
|
|
const isEmptyArray = Array.isArray(txt) && txt.length === 0;
|
|
throw Object.assign(new TypeError(
|
|
`Cannot parse ${isEmptyArray ? "an empty array" : String(txt)}`
|
|
), {
|
|
code: "EJSONPARSE",
|
|
systemError: e
|
|
});
|
|
}
|
|
throw new JSONParseError(e, parseText, context, parseJson);
|
|
}
|
|
};
|
|
var stripBOM = (txt) => String(txt).replace(/^\uFEFF/, "");
|
|
module.exports = parseJson;
|
|
parseJson.JSONParseError = JSONParseError;
|
|
parseJson.noExceptions = (txt, reviver) => {
|
|
try {
|
|
return JSON.parse(stripBOM(txt), reviver);
|
|
} catch (e) {
|
|
}
|
|
};
|
|
}
|
|
});
|
|
|
|
// node_modules/parse-json/node_modules/lines-and-columns/build/index.js
|
|
var require_build = __commonJS({
|
|
"node_modules/parse-json/node_modules/lines-and-columns/build/index.js"(exports) {
|
|
"use strict";
|
|
exports.__esModule = true;
|
|
exports.LinesAndColumns = void 0;
|
|
var LF = "\n";
|
|
var CR = "\r";
|
|
var LinesAndColumns = (
|
|
/** @class */
|
|
function() {
|
|
function LinesAndColumns2(string) {
|
|
this.string = string;
|
|
var offsets = [0];
|
|
for (var offset = 0; offset < string.length; ) {
|
|
switch (string[offset]) {
|
|
case LF:
|
|
offset += LF.length;
|
|
offsets.push(offset);
|
|
break;
|
|
case CR:
|
|
offset += CR.length;
|
|
if (string[offset] === LF) {
|
|
offset += LF.length;
|
|
}
|
|
offsets.push(offset);
|
|
break;
|
|
default:
|
|
offset++;
|
|
break;
|
|
}
|
|
}
|
|
this.offsets = offsets;
|
|
}
|
|
LinesAndColumns2.prototype.locationForIndex = function(index) {
|
|
if (index < 0 || index > this.string.length) {
|
|
return null;
|
|
}
|
|
var line = 0;
|
|
var offsets = this.offsets;
|
|
while (offsets[line + 1] <= index) {
|
|
line++;
|
|
}
|
|
var column = index - offsets[line];
|
|
return { line, column };
|
|
};
|
|
LinesAndColumns2.prototype.indexForLocation = function(location) {
|
|
var line = location.line, column = location.column;
|
|
if (line < 0 || line >= this.offsets.length) {
|
|
return null;
|
|
}
|
|
if (column < 0 || column > this.lengthOfLine(line)) {
|
|
return null;
|
|
}
|
|
return this.offsets[line] + column;
|
|
};
|
|
LinesAndColumns2.prototype.lengthOfLine = function(line) {
|
|
var offset = this.offsets[line];
|
|
var nextOffset = line === this.offsets.length - 1 ? this.string.length : this.offsets[line + 1];
|
|
return nextOffset - offset;
|
|
};
|
|
return LinesAndColumns2;
|
|
}()
|
|
);
|
|
exports.LinesAndColumns = LinesAndColumns;
|
|
exports["default"] = LinesAndColumns;
|
|
}
|
|
});
|
|
|
|
// node_modules/js-tokens/index.js
|
|
var require_js_tokens = __commonJS({
|
|
"node_modules/js-tokens/index.js"(exports) {
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.default = /((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g;
|
|
exports.matchToToken = function(match) {
|
|
var token = { type: "invalid", value: match[0], closed: void 0 };
|
|
if (match[1])
|
|
token.type = "string", token.closed = !!(match[3] || match[4]);
|
|
else if (match[5])
|
|
token.type = "comment";
|
|
else if (match[6])
|
|
token.type = "comment", token.closed = !!match[7];
|
|
else if (match[8])
|
|
token.type = "regex";
|
|
else if (match[9])
|
|
token.type = "number";
|
|
else if (match[10])
|
|
token.type = "name";
|
|
else if (match[11])
|
|
token.type = "punctuator";
|
|
else if (match[12])
|
|
token.type = "whitespace";
|
|
return token;
|
|
};
|
|
}
|
|
});
|
|
|
|
// node_modules/@babel/helper-validator-identifier/lib/identifier.js
|
|
var require_identifier = __commonJS({
|
|
"node_modules/@babel/helper-validator-identifier/lib/identifier.js"(exports) {
|
|
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.isIdentifierChar = isIdentifierChar;
|
|
exports.isIdentifierName = isIdentifierName;
|
|
exports.isIdentifierStart = isIdentifierStart;
|
|
var nonASCIIidentifierStartChars = "\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC";
|
|
var nonASCIIidentifierChars = "\u200C\u200D\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0898-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F";
|
|
var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]");
|
|
var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]");
|
|
nonASCIIidentifierStartChars = nonASCIIidentifierChars = null;
|
|
var astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 68, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 4026, 582, 8634, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8936, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 757, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4153, 7, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938, 6, 4191];
|
|
var astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 81, 2, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 9, 5351, 0, 7, 14, 13835, 9, 87, 9, 39, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4706, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 983, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
|
|
function isInAstralSet(code, set) {
|
|
let pos = 65536;
|
|
for (let i = 0, length = set.length; i < length; i += 2) {
|
|
pos += set[i];
|
|
if (pos > code)
|
|
return false;
|
|
pos += set[i + 1];
|
|
if (pos >= code)
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
function isIdentifierStart(code) {
|
|
if (code < 65)
|
|
return code === 36;
|
|
if (code <= 90)
|
|
return true;
|
|
if (code < 97)
|
|
return code === 95;
|
|
if (code <= 122)
|
|
return true;
|
|
if (code <= 65535) {
|
|
return code >= 170 && nonASCIIidentifierStart.test(String.fromCharCode(code));
|
|
}
|
|
return isInAstralSet(code, astralIdentifierStartCodes);
|
|
}
|
|
function isIdentifierChar(code) {
|
|
if (code < 48)
|
|
return code === 36;
|
|
if (code < 58)
|
|
return true;
|
|
if (code < 65)
|
|
return false;
|
|
if (code <= 90)
|
|
return true;
|
|
if (code < 97)
|
|
return code === 95;
|
|
if (code <= 122)
|
|
return true;
|
|
if (code <= 65535) {
|
|
return code >= 170 && nonASCIIidentifier.test(String.fromCharCode(code));
|
|
}
|
|
return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes);
|
|
}
|
|
function isIdentifierName(name) {
|
|
let isFirst = true;
|
|
for (let i = 0; i < name.length; i++) {
|
|
let cp = name.charCodeAt(i);
|
|
if ((cp & 64512) === 55296 && i + 1 < name.length) {
|
|
const trail = name.charCodeAt(++i);
|
|
if ((trail & 64512) === 56320) {
|
|
cp = 65536 + ((cp & 1023) << 10) + (trail & 1023);
|
|
}
|
|
}
|
|
if (isFirst) {
|
|
isFirst = false;
|
|
if (!isIdentifierStart(cp)) {
|
|
return false;
|
|
}
|
|
} else if (!isIdentifierChar(cp)) {
|
|
return false;
|
|
}
|
|
}
|
|
return !isFirst;
|
|
}
|
|
}
|
|
});
|
|
|
|
// node_modules/@babel/helper-validator-identifier/lib/keyword.js
|
|
var require_keyword = __commonJS({
|
|
"node_modules/@babel/helper-validator-identifier/lib/keyword.js"(exports) {
|
|
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.isKeyword = isKeyword;
|
|
exports.isReservedWord = isReservedWord;
|
|
exports.isStrictBindOnlyReservedWord = isStrictBindOnlyReservedWord;
|
|
exports.isStrictBindReservedWord = isStrictBindReservedWord;
|
|
exports.isStrictReservedWord = isStrictReservedWord;
|
|
var reservedWords = {
|
|
keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"],
|
|
strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"],
|
|
strictBind: ["eval", "arguments"]
|
|
};
|
|
var keywords = new Set(reservedWords.keyword);
|
|
var reservedWordsStrictSet = new Set(reservedWords.strict);
|
|
var reservedWordsStrictBindSet = new Set(reservedWords.strictBind);
|
|
function isReservedWord(word, inModule) {
|
|
return inModule && word === "await" || word === "enum";
|
|
}
|
|
function isStrictReservedWord(word, inModule) {
|
|
return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);
|
|
}
|
|
function isStrictBindOnlyReservedWord(word) {
|
|
return reservedWordsStrictBindSet.has(word);
|
|
}
|
|
function isStrictBindReservedWord(word, inModule) {
|
|
return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word);
|
|
}
|
|
function isKeyword(word) {
|
|
return keywords.has(word);
|
|
}
|
|
}
|
|
});
|
|
|
|
// node_modules/@babel/helper-validator-identifier/lib/index.js
|
|
var require_lib = __commonJS({
|
|
"node_modules/@babel/helper-validator-identifier/lib/index.js"(exports) {
|
|
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "isIdentifierChar", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return _identifier.isIdentifierChar;
|
|
}
|
|
});
|
|
Object.defineProperty(exports, "isIdentifierName", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return _identifier.isIdentifierName;
|
|
}
|
|
});
|
|
Object.defineProperty(exports, "isIdentifierStart", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return _identifier.isIdentifierStart;
|
|
}
|
|
});
|
|
Object.defineProperty(exports, "isKeyword", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return _keyword.isKeyword;
|
|
}
|
|
});
|
|
Object.defineProperty(exports, "isReservedWord", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return _keyword.isReservedWord;
|
|
}
|
|
});
|
|
Object.defineProperty(exports, "isStrictBindOnlyReservedWord", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return _keyword.isStrictBindOnlyReservedWord;
|
|
}
|
|
});
|
|
Object.defineProperty(exports, "isStrictBindReservedWord", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return _keyword.isStrictBindReservedWord;
|
|
}
|
|
});
|
|
Object.defineProperty(exports, "isStrictReservedWord", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return _keyword.isStrictReservedWord;
|
|
}
|
|
});
|
|
var _identifier = require_identifier();
|
|
var _keyword = require_keyword();
|
|
}
|
|
});
|
|
|
|
// node_modules/@babel/highlight/node_modules/escape-string-regexp/index.js
|
|
var require_escape_string_regexp = __commonJS({
|
|
"node_modules/@babel/highlight/node_modules/escape-string-regexp/index.js"(exports, module) {
|
|
"use strict";
|
|
var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g;
|
|
module.exports = function(str) {
|
|
if (typeof str !== "string") {
|
|
throw new TypeError("Expected a string");
|
|
}
|
|
return str.replace(matchOperatorsRe, "\\$&");
|
|
};
|
|
}
|
|
});
|
|
|
|
// node_modules/color-name/index.js
|
|
var require_color_name = __commonJS({
|
|
"node_modules/color-name/index.js"(exports, module) {
|
|
"use strict";
|
|
module.exports = {
|
|
"aliceblue": [240, 248, 255],
|
|
"antiquewhite": [250, 235, 215],
|
|
"aqua": [0, 255, 255],
|
|
"aquamarine": [127, 255, 212],
|
|
"azure": [240, 255, 255],
|
|
"beige": [245, 245, 220],
|
|
"bisque": [255, 228, 196],
|
|
"black": [0, 0, 0],
|
|
"blanchedalmond": [255, 235, 205],
|
|
"blue": [0, 0, 255],
|
|
"blueviolet": [138, 43, 226],
|
|
"brown": [165, 42, 42],
|
|
"burlywood": [222, 184, 135],
|
|
"cadetblue": [95, 158, 160],
|
|
"chartreuse": [127, 255, 0],
|
|
"chocolate": [210, 105, 30],
|
|
"coral": [255, 127, 80],
|
|
"cornflowerblue": [100, 149, 237],
|
|
"cornsilk": [255, 248, 220],
|
|
"crimson": [220, 20, 60],
|
|
"cyan": [0, 255, 255],
|
|
"darkblue": [0, 0, 139],
|
|
"darkcyan": [0, 139, 139],
|
|
"darkgoldenrod": [184, 134, 11],
|
|
"darkgray": [169, 169, 169],
|
|
"darkgreen": [0, 100, 0],
|
|
"darkgrey": [169, 169, 169],
|
|
"darkkhaki": [189, 183, 107],
|
|
"darkmagenta": [139, 0, 139],
|
|
"darkolivegreen": [85, 107, 47],
|
|
"darkorange": [255, 140, 0],
|
|
"darkorchid": [153, 50, 204],
|
|
"darkred": [139, 0, 0],
|
|
"darksalmon": [233, 150, 122],
|
|
"darkseagreen": [143, 188, 143],
|
|
"darkslateblue": [72, 61, 139],
|
|
"darkslategray": [47, 79, 79],
|
|
"darkslategrey": [47, 79, 79],
|
|
"darkturquoise": [0, 206, 209],
|
|
"darkviolet": [148, 0, 211],
|
|
"deeppink": [255, 20, 147],
|
|
"deepskyblue": [0, 191, 255],
|
|
"dimgray": [105, 105, 105],
|
|
"dimgrey": [105, 105, 105],
|
|
"dodgerblue": [30, 144, 255],
|
|
"firebrick": [178, 34, 34],
|
|
"floralwhite": [255, 250, 240],
|
|
"forestgreen": [34, 139, 34],
|
|
"fuchsia": [255, 0, 255],
|
|
"gainsboro": [220, 220, 220],
|
|
"ghostwhite": [248, 248, 255],
|
|
"gold": [255, 215, 0],
|
|
"goldenrod": [218, 165, 32],
|
|
"gray": [128, 128, 128],
|
|
"green": [0, 128, 0],
|
|
"greenyellow": [173, 255, 47],
|
|
"grey": [128, 128, 128],
|
|
"honeydew": [240, 255, 240],
|
|
"hotpink": [255, 105, 180],
|
|
"indianred": [205, 92, 92],
|
|
"indigo": [75, 0, 130],
|
|
"ivory": [255, 255, 240],
|
|
"khaki": [240, 230, 140],
|
|
"lavender": [230, 230, 250],
|
|
"lavenderblush": [255, 240, 245],
|
|
"lawngreen": [124, 252, 0],
|
|
"lemonchiffon": [255, 250, 205],
|
|
"lightblue": [173, 216, 230],
|
|
"lightcoral": [240, 128, 128],
|
|
"lightcyan": [224, 255, 255],
|
|
"lightgoldenrodyellow": [250, 250, 210],
|
|
"lightgray": [211, 211, 211],
|
|
"lightgreen": [144, 238, 144],
|
|
"lightgrey": [211, 211, 211],
|
|
"lightpink": [255, 182, 193],
|
|
"lightsalmon": [255, 160, 122],
|
|
"lightseagreen": [32, 178, 170],
|
|
"lightskyblue": [135, 206, 250],
|
|
"lightslategray": [119, 136, 153],
|
|
"lightslategrey": [119, 136, 153],
|
|
"lightsteelblue": [176, 196, 222],
|
|
"lightyellow": [255, 255, 224],
|
|
"lime": [0, 255, 0],
|
|
"limegreen": [50, 205, 50],
|
|
"linen": [250, 240, 230],
|
|
"magenta": [255, 0, 255],
|
|
"maroon": [128, 0, 0],
|
|
"mediumaquamarine": [102, 205, 170],
|
|
"mediumblue": [0, 0, 205],
|
|
"mediumorchid": [186, 85, 211],
|
|
"mediumpurple": [147, 112, 219],
|
|
"mediumseagreen": [60, 179, 113],
|
|
"mediumslateblue": [123, 104, 238],
|
|
"mediumspringgreen": [0, 250, 154],
|
|
"mediumturquoise": [72, 209, 204],
|
|
"mediumvioletred": [199, 21, 133],
|
|
"midnightblue": [25, 25, 112],
|
|
"mintcream": [245, 255, 250],
|
|
"mistyrose": [255, 228, 225],
|
|
"moccasin": [255, 228, 181],
|
|
"navajowhite": [255, 222, 173],
|
|
"navy": [0, 0, 128],
|
|
"oldlace": [253, 245, 230],
|
|
"olive": [128, 128, 0],
|
|
"olivedrab": [107, 142, 35],
|
|
"orange": [255, 165, 0],
|
|
"orangered": [255, 69, 0],
|
|
"orchid": [218, 112, 214],
|
|
"palegoldenrod": [238, 232, 170],
|
|
"palegreen": [152, 251, 152],
|
|
"paleturquoise": [175, 238, 238],
|
|
"palevioletred": [219, 112, 147],
|
|
"papayawhip": [255, 239, 213],
|
|
"peachpuff": [255, 218, 185],
|
|
"peru": [205, 133, 63],
|
|
"pink": [255, 192, 203],
|
|
"plum": [221, 160, 221],
|
|
"powderblue": [176, 224, 230],
|
|
"purple": [128, 0, 128],
|
|
"rebeccapurple": [102, 51, 153],
|
|
"red": [255, 0, 0],
|
|
"rosybrown": [188, 143, 143],
|
|
"royalblue": [65, 105, 225],
|
|
"saddlebrown": [139, 69, 19],
|
|
"salmon": [250, 128, 114],
|
|
"sandybrown": [244, 164, 96],
|
|
"seagreen": [46, 139, 87],
|
|
"seashell": [255, 245, 238],
|
|
"sienna": [160, 82, 45],
|
|
"silver": [192, 192, 192],
|
|
"skyblue": [135, 206, 235],
|
|
"slateblue": [106, 90, 205],
|
|
"slategray": [112, 128, 144],
|
|
"slategrey": [112, 128, 144],
|
|
"snow": [255, 250, 250],
|
|
"springgreen": [0, 255, 127],
|
|
"steelblue": [70, 130, 180],
|
|
"tan": [210, 180, 140],
|
|
"teal": [0, 128, 128],
|
|
"thistle": [216, 191, 216],
|
|
"tomato": [255, 99, 71],
|
|
"turquoise": [64, 224, 208],
|
|
"violet": [238, 130, 238],
|
|
"wheat": [245, 222, 179],
|
|
"white": [255, 255, 255],
|
|
"whitesmoke": [245, 245, 245],
|
|
"yellow": [255, 255, 0],
|
|
"yellowgreen": [154, 205, 50]
|
|
};
|
|
}
|
|
});
|
|
|
|
// node_modules/color-convert/conversions.js
|
|
var require_conversions = __commonJS({
|
|
"node_modules/color-convert/conversions.js"(exports, module) {
|
|
var cssKeywords = require_color_name();
|
|
var reverseKeywords = {};
|
|
for (key in cssKeywords) {
|
|
if (cssKeywords.hasOwnProperty(key)) {
|
|
reverseKeywords[cssKeywords[key]] = key;
|
|
}
|
|
}
|
|
var key;
|
|
var convert = module.exports = {
|
|
rgb: { channels: 3, labels: "rgb" },
|
|
hsl: { channels: 3, labels: "hsl" },
|
|
hsv: { channels: 3, labels: "hsv" },
|
|
hwb: { channels: 3, labels: "hwb" },
|
|
cmyk: { channels: 4, labels: "cmyk" },
|
|
xyz: { channels: 3, labels: "xyz" },
|
|
lab: { channels: 3, labels: "lab" },
|
|
lch: { channels: 3, labels: "lch" },
|
|
hex: { channels: 1, labels: ["hex"] },
|
|
keyword: { channels: 1, labels: ["keyword"] },
|
|
ansi16: { channels: 1, labels: ["ansi16"] },
|
|
ansi256: { channels: 1, labels: ["ansi256"] },
|
|
hcg: { channels: 3, labels: ["h", "c", "g"] },
|
|
apple: { channels: 3, labels: ["r16", "g16", "b16"] },
|
|
gray: { channels: 1, labels: ["gray"] }
|
|
};
|
|
for (model in convert) {
|
|
if (convert.hasOwnProperty(model)) {
|
|
if (!("channels" in convert[model])) {
|
|
throw new Error("missing channels property: " + model);
|
|
}
|
|
if (!("labels" in convert[model])) {
|
|
throw new Error("missing channel labels property: " + model);
|
|
}
|
|
if (convert[model].labels.length !== convert[model].channels) {
|
|
throw new Error("channel and label counts mismatch: " + model);
|
|
}
|
|
channels = convert[model].channels;
|
|
labels = convert[model].labels;
|
|
delete convert[model].channels;
|
|
delete convert[model].labels;
|
|
Object.defineProperty(convert[model], "channels", { value: channels });
|
|
Object.defineProperty(convert[model], "labels", { value: labels });
|
|
}
|
|
}
|
|
var channels;
|
|
var labels;
|
|
var model;
|
|
convert.rgb.hsl = function(rgb) {
|
|
var r = rgb[0] / 255;
|
|
var g = rgb[1] / 255;
|
|
var b = rgb[2] / 255;
|
|
var min = Math.min(r, g, b);
|
|
var max = Math.max(r, g, b);
|
|
var delta = max - min;
|
|
var h;
|
|
var s;
|
|
var l;
|
|
if (max === min) {
|
|
h = 0;
|
|
} else if (r === max) {
|
|
h = (g - b) / delta;
|
|
} else if (g === max) {
|
|
h = 2 + (b - r) / delta;
|
|
} else if (b === max) {
|
|
h = 4 + (r - g) / delta;
|
|
}
|
|
h = Math.min(h * 60, 360);
|
|
if (h < 0) {
|
|
h += 360;
|
|
}
|
|
l = (min + max) / 2;
|
|
if (max === min) {
|
|
s = 0;
|
|
} else if (l <= 0.5) {
|
|
s = delta / (max + min);
|
|
} else {
|
|
s = delta / (2 - max - min);
|
|
}
|
|
return [h, s * 100, l * 100];
|
|
};
|
|
convert.rgb.hsv = function(rgb) {
|
|
var rdif;
|
|
var gdif;
|
|
var bdif;
|
|
var h;
|
|
var s;
|
|
var r = rgb[0] / 255;
|
|
var g = rgb[1] / 255;
|
|
var b = rgb[2] / 255;
|
|
var v = Math.max(r, g, b);
|
|
var diff = v - Math.min(r, g, b);
|
|
var diffc = function(c) {
|
|
return (v - c) / 6 / diff + 1 / 2;
|
|
};
|
|
if (diff === 0) {
|
|
h = s = 0;
|
|
} else {
|
|
s = diff / v;
|
|
rdif = diffc(r);
|
|
gdif = diffc(g);
|
|
bdif = diffc(b);
|
|
if (r === v) {
|
|
h = bdif - gdif;
|
|
} else if (g === v) {
|
|
h = 1 / 3 + rdif - bdif;
|
|
} else if (b === v) {
|
|
h = 2 / 3 + gdif - rdif;
|
|
}
|
|
if (h < 0) {
|
|
h += 1;
|
|
} else if (h > 1) {
|
|
h -= 1;
|
|
}
|
|
}
|
|
return [
|
|
h * 360,
|
|
s * 100,
|
|
v * 100
|
|
];
|
|
};
|
|
convert.rgb.hwb = function(rgb) {
|
|
var r = rgb[0];
|
|
var g = rgb[1];
|
|
var b = rgb[2];
|
|
var h = convert.rgb.hsl(rgb)[0];
|
|
var w = 1 / 255 * Math.min(r, Math.min(g, b));
|
|
b = 1 - 1 / 255 * Math.max(r, Math.max(g, b));
|
|
return [h, w * 100, b * 100];
|
|
};
|
|
convert.rgb.cmyk = function(rgb) {
|
|
var r = rgb[0] / 255;
|
|
var g = rgb[1] / 255;
|
|
var b = rgb[2] / 255;
|
|
var c;
|
|
var m;
|
|
var y;
|
|
var k;
|
|
k = Math.min(1 - r, 1 - g, 1 - b);
|
|
c = (1 - r - k) / (1 - k) || 0;
|
|
m = (1 - g - k) / (1 - k) || 0;
|
|
y = (1 - b - k) / (1 - k) || 0;
|
|
return [c * 100, m * 100, y * 100, k * 100];
|
|
};
|
|
function comparativeDistance(x, y) {
|
|
return Math.pow(x[0] - y[0], 2) + Math.pow(x[1] - y[1], 2) + Math.pow(x[2] - y[2], 2);
|
|
}
|
|
convert.rgb.keyword = function(rgb) {
|
|
var reversed = reverseKeywords[rgb];
|
|
if (reversed) {
|
|
return reversed;
|
|
}
|
|
var currentClosestDistance = Infinity;
|
|
var currentClosestKeyword;
|
|
for (var keyword in cssKeywords) {
|
|
if (cssKeywords.hasOwnProperty(keyword)) {
|
|
var value = cssKeywords[keyword];
|
|
var distance = comparativeDistance(rgb, value);
|
|
if (distance < currentClosestDistance) {
|
|
currentClosestDistance = distance;
|
|
currentClosestKeyword = keyword;
|
|
}
|
|
}
|
|
}
|
|
return currentClosestKeyword;
|
|
};
|
|
convert.keyword.rgb = function(keyword) {
|
|
return cssKeywords[keyword];
|
|
};
|
|
convert.rgb.xyz = function(rgb) {
|
|
var r = rgb[0] / 255;
|
|
var g = rgb[1] / 255;
|
|
var b = rgb[2] / 255;
|
|
r = r > 0.04045 ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92;
|
|
g = g > 0.04045 ? Math.pow((g + 0.055) / 1.055, 2.4) : g / 12.92;
|
|
b = b > 0.04045 ? Math.pow((b + 0.055) / 1.055, 2.4) : b / 12.92;
|
|
var x = r * 0.4124 + g * 0.3576 + b * 0.1805;
|
|
var y = r * 0.2126 + g * 0.7152 + b * 0.0722;
|
|
var z = r * 0.0193 + g * 0.1192 + b * 0.9505;
|
|
return [x * 100, y * 100, z * 100];
|
|
};
|
|
convert.rgb.lab = function(rgb) {
|
|
var xyz = convert.rgb.xyz(rgb);
|
|
var x = xyz[0];
|
|
var y = xyz[1];
|
|
var z = xyz[2];
|
|
var l;
|
|
var a;
|
|
var b;
|
|
x /= 95.047;
|
|
y /= 100;
|
|
z /= 108.883;
|
|
x = x > 8856e-6 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116;
|
|
y = y > 8856e-6 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116;
|
|
z = z > 8856e-6 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116;
|
|
l = 116 * y - 16;
|
|
a = 500 * (x - y);
|
|
b = 200 * (y - z);
|
|
return [l, a, b];
|
|
};
|
|
convert.hsl.rgb = function(hsl) {
|
|
var h = hsl[0] / 360;
|
|
var s = hsl[1] / 100;
|
|
var l = hsl[2] / 100;
|
|
var t1;
|
|
var t2;
|
|
var t3;
|
|
var rgb;
|
|
var val;
|
|
if (s === 0) {
|
|
val = l * 255;
|
|
return [val, val, val];
|
|
}
|
|
if (l < 0.5) {
|
|
t2 = l * (1 + s);
|
|
} else {
|
|
t2 = l + s - l * s;
|
|
}
|
|
t1 = 2 * l - t2;
|
|
rgb = [0, 0, 0];
|
|
for (var i = 0; i < 3; i++) {
|
|
t3 = h + 1 / 3 * -(i - 1);
|
|
if (t3 < 0) {
|
|
t3++;
|
|
}
|
|
if (t3 > 1) {
|
|
t3--;
|
|
}
|
|
if (6 * t3 < 1) {
|
|
val = t1 + (t2 - t1) * 6 * t3;
|
|
} else if (2 * t3 < 1) {
|
|
val = t2;
|
|
} else if (3 * t3 < 2) {
|
|
val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;
|
|
} else {
|
|
val = t1;
|
|
}
|
|
rgb[i] = val * 255;
|
|
}
|
|
return rgb;
|
|
};
|
|
convert.hsl.hsv = function(hsl) {
|
|
var h = hsl[0];
|
|
var s = hsl[1] / 100;
|
|
var l = hsl[2] / 100;
|
|
var smin = s;
|
|
var lmin = Math.max(l, 0.01);
|
|
var sv;
|
|
var v;
|
|
l *= 2;
|
|
s *= l <= 1 ? l : 2 - l;
|
|
smin *= lmin <= 1 ? lmin : 2 - lmin;
|
|
v = (l + s) / 2;
|
|
sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s / (l + s);
|
|
return [h, sv * 100, v * 100];
|
|
};
|
|
convert.hsv.rgb = function(hsv) {
|
|
var h = hsv[0] / 60;
|
|
var s = hsv[1] / 100;
|
|
var v = hsv[2] / 100;
|
|
var hi = Math.floor(h) % 6;
|
|
var f = h - Math.floor(h);
|
|
var p = 255 * v * (1 - s);
|
|
var q = 255 * v * (1 - s * f);
|
|
var t = 255 * v * (1 - s * (1 - f));
|
|
v *= 255;
|
|
switch (hi) {
|
|
case 0:
|
|
return [v, t, p];
|
|
case 1:
|
|
return [q, v, p];
|
|
case 2:
|
|
return [p, v, t];
|
|
case 3:
|
|
return [p, q, v];
|
|
case 4:
|
|
return [t, p, v];
|
|
case 5:
|
|
return [v, p, q];
|
|
}
|
|
};
|
|
convert.hsv.hsl = function(hsv) {
|
|
var h = hsv[0];
|
|
var s = hsv[1] / 100;
|
|
var v = hsv[2] / 100;
|
|
var vmin = Math.max(v, 0.01);
|
|
var lmin;
|
|
var sl;
|
|
var l;
|
|
l = (2 - s) * v;
|
|
lmin = (2 - s) * vmin;
|
|
sl = s * vmin;
|
|
sl /= lmin <= 1 ? lmin : 2 - lmin;
|
|
sl = sl || 0;
|
|
l /= 2;
|
|
return [h, sl * 100, l * 100];
|
|
};
|
|
convert.hwb.rgb = function(hwb) {
|
|
var h = hwb[0] / 360;
|
|
var wh = hwb[1] / 100;
|
|
var bl = hwb[2] / 100;
|
|
var ratio = wh + bl;
|
|
var i;
|
|
var v;
|
|
var f;
|
|
var n;
|
|
if (ratio > 1) {
|
|
wh /= ratio;
|
|
bl /= ratio;
|
|
}
|
|
i = Math.floor(6 * h);
|
|
v = 1 - bl;
|
|
f = 6 * h - i;
|
|
if ((i & 1) !== 0) {
|
|
f = 1 - f;
|
|
}
|
|
n = wh + f * (v - wh);
|
|
var r;
|
|
var g;
|
|
var b;
|
|
switch (i) {
|
|
default:
|
|
case 6:
|
|
case 0:
|
|
r = v;
|
|
g = n;
|
|
b = wh;
|
|
break;
|
|
case 1:
|
|
r = n;
|
|
g = v;
|
|
b = wh;
|
|
break;
|
|
case 2:
|
|
r = wh;
|
|
g = v;
|
|
b = n;
|
|
break;
|
|
case 3:
|
|
r = wh;
|
|
g = n;
|
|
b = v;
|
|
break;
|
|
case 4:
|
|
r = n;
|
|
g = wh;
|
|
b = v;
|
|
break;
|
|
case 5:
|
|
r = v;
|
|
g = wh;
|
|
b = n;
|
|
break;
|
|
}
|
|
return [r * 255, g * 255, b * 255];
|
|
};
|
|
convert.cmyk.rgb = function(cmyk) {
|
|
var c = cmyk[0] / 100;
|
|
var m = cmyk[1] / 100;
|
|
var y = cmyk[2] / 100;
|
|
var k = cmyk[3] / 100;
|
|
var r;
|
|
var g;
|
|
var b;
|
|
r = 1 - Math.min(1, c * (1 - k) + k);
|
|
g = 1 - Math.min(1, m * (1 - k) + k);
|
|
b = 1 - Math.min(1, y * (1 - k) + k);
|
|
return [r * 255, g * 255, b * 255];
|
|
};
|
|
convert.xyz.rgb = function(xyz) {
|
|
var x = xyz[0] / 100;
|
|
var y = xyz[1] / 100;
|
|
var z = xyz[2] / 100;
|
|
var r;
|
|
var g;
|
|
var b;
|
|
r = x * 3.2406 + y * -1.5372 + z * -0.4986;
|
|
g = x * -0.9689 + y * 1.8758 + z * 0.0415;
|
|
b = x * 0.0557 + y * -0.204 + z * 1.057;
|
|
r = r > 31308e-7 ? 1.055 * Math.pow(r, 1 / 2.4) - 0.055 : r * 12.92;
|
|
g = g > 31308e-7 ? 1.055 * Math.pow(g, 1 / 2.4) - 0.055 : g * 12.92;
|
|
b = b > 31308e-7 ? 1.055 * Math.pow(b, 1 / 2.4) - 0.055 : b * 12.92;
|
|
r = Math.min(Math.max(0, r), 1);
|
|
g = Math.min(Math.max(0, g), 1);
|
|
b = Math.min(Math.max(0, b), 1);
|
|
return [r * 255, g * 255, b * 255];
|
|
};
|
|
convert.xyz.lab = function(xyz) {
|
|
var x = xyz[0];
|
|
var y = xyz[1];
|
|
var z = xyz[2];
|
|
var l;
|
|
var a;
|
|
var b;
|
|
x /= 95.047;
|
|
y /= 100;
|
|
z /= 108.883;
|
|
x = x > 8856e-6 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116;
|
|
y = y > 8856e-6 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116;
|
|
z = z > 8856e-6 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116;
|
|
l = 116 * y - 16;
|
|
a = 500 * (x - y);
|
|
b = 200 * (y - z);
|
|
return [l, a, b];
|
|
};
|
|
convert.lab.xyz = function(lab) {
|
|
var l = lab[0];
|
|
var a = lab[1];
|
|
var b = lab[2];
|
|
var x;
|
|
var y;
|
|
var z;
|
|
y = (l + 16) / 116;
|
|
x = a / 500 + y;
|
|
z = y - b / 200;
|
|
var y2 = Math.pow(y, 3);
|
|
var x2 = Math.pow(x, 3);
|
|
var z2 = Math.pow(z, 3);
|
|
y = y2 > 8856e-6 ? y2 : (y - 16 / 116) / 7.787;
|
|
x = x2 > 8856e-6 ? x2 : (x - 16 / 116) / 7.787;
|
|
z = z2 > 8856e-6 ? z2 : (z - 16 / 116) / 7.787;
|
|
x *= 95.047;
|
|
y *= 100;
|
|
z *= 108.883;
|
|
return [x, y, z];
|
|
};
|
|
convert.lab.lch = function(lab) {
|
|
var l = lab[0];
|
|
var a = lab[1];
|
|
var b = lab[2];
|
|
var hr;
|
|
var h;
|
|
var c;
|
|
hr = Math.atan2(b, a);
|
|
h = hr * 360 / 2 / Math.PI;
|
|
if (h < 0) {
|
|
h += 360;
|
|
}
|
|
c = Math.sqrt(a * a + b * b);
|
|
return [l, c, h];
|
|
};
|
|
convert.lch.lab = function(lch) {
|
|
var l = lch[0];
|
|
var c = lch[1];
|
|
var h = lch[2];
|
|
var a;
|
|
var b;
|
|
var hr;
|
|
hr = h / 360 * 2 * Math.PI;
|
|
a = c * Math.cos(hr);
|
|
b = c * Math.sin(hr);
|
|
return [l, a, b];
|
|
};
|
|
convert.rgb.ansi16 = function(args) {
|
|
var r = args[0];
|
|
var g = args[1];
|
|
var b = args[2];
|
|
var value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2];
|
|
value = Math.round(value / 50);
|
|
if (value === 0) {
|
|
return 30;
|
|
}
|
|
var ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255));
|
|
if (value === 2) {
|
|
ansi += 60;
|
|
}
|
|
return ansi;
|
|
};
|
|
convert.hsv.ansi16 = function(args) {
|
|
return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);
|
|
};
|
|
convert.rgb.ansi256 = function(args) {
|
|
var r = args[0];
|
|
var g = args[1];
|
|
var b = args[2];
|
|
if (r === g && g === b) {
|
|
if (r < 8) {
|
|
return 16;
|
|
}
|
|
if (r > 248) {
|
|
return 231;
|
|
}
|
|
return Math.round((r - 8) / 247 * 24) + 232;
|
|
}
|
|
var ansi = 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5);
|
|
return ansi;
|
|
};
|
|
convert.ansi16.rgb = function(args) {
|
|
var color = args % 10;
|
|
if (color === 0 || color === 7) {
|
|
if (args > 50) {
|
|
color += 3.5;
|
|
}
|
|
color = color / 10.5 * 255;
|
|
return [color, color, color];
|
|
}
|
|
var mult = (~~(args > 50) + 1) * 0.5;
|
|
var r = (color & 1) * mult * 255;
|
|
var g = (color >> 1 & 1) * mult * 255;
|
|
var b = (color >> 2 & 1) * mult * 255;
|
|
return [r, g, b];
|
|
};
|
|
convert.ansi256.rgb = function(args) {
|
|
if (args >= 232) {
|
|
var c = (args - 232) * 10 + 8;
|
|
return [c, c, c];
|
|
}
|
|
args -= 16;
|
|
var rem;
|
|
var r = Math.floor(args / 36) / 5 * 255;
|
|
var g = Math.floor((rem = args % 36) / 6) / 5 * 255;
|
|
var b = rem % 6 / 5 * 255;
|
|
return [r, g, b];
|
|
};
|
|
convert.rgb.hex = function(args) {
|
|
var integer = ((Math.round(args[0]) & 255) << 16) + ((Math.round(args[1]) & 255) << 8) + (Math.round(args[2]) & 255);
|
|
var string = integer.toString(16).toUpperCase();
|
|
return "000000".substring(string.length) + string;
|
|
};
|
|
convert.hex.rgb = function(args) {
|
|
var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);
|
|
if (!match) {
|
|
return [0, 0, 0];
|
|
}
|
|
var colorString = match[0];
|
|
if (match[0].length === 3) {
|
|
colorString = colorString.split("").map(function(char) {
|
|
return char + char;
|
|
}).join("");
|
|
}
|
|
var integer = parseInt(colorString, 16);
|
|
var r = integer >> 16 & 255;
|
|
var g = integer >> 8 & 255;
|
|
var b = integer & 255;
|
|
return [r, g, b];
|
|
};
|
|
convert.rgb.hcg = function(rgb) {
|
|
var r = rgb[0] / 255;
|
|
var g = rgb[1] / 255;
|
|
var b = rgb[2] / 255;
|
|
var max = Math.max(Math.max(r, g), b);
|
|
var min = Math.min(Math.min(r, g), b);
|
|
var chroma = max - min;
|
|
var grayscale;
|
|
var hue;
|
|
if (chroma < 1) {
|
|
grayscale = min / (1 - chroma);
|
|
} else {
|
|
grayscale = 0;
|
|
}
|
|
if (chroma <= 0) {
|
|
hue = 0;
|
|
} else if (max === r) {
|
|
hue = (g - b) / chroma % 6;
|
|
} else if (max === g) {
|
|
hue = 2 + (b - r) / chroma;
|
|
} else {
|
|
hue = 4 + (r - g) / chroma + 4;
|
|
}
|
|
hue /= 6;
|
|
hue %= 1;
|
|
return [hue * 360, chroma * 100, grayscale * 100];
|
|
};
|
|
convert.hsl.hcg = function(hsl) {
|
|
var s = hsl[1] / 100;
|
|
var l = hsl[2] / 100;
|
|
var c = 1;
|
|
var f = 0;
|
|
if (l < 0.5) {
|
|
c = 2 * s * l;
|
|
} else {
|
|
c = 2 * s * (1 - l);
|
|
}
|
|
if (c < 1) {
|
|
f = (l - 0.5 * c) / (1 - c);
|
|
}
|
|
return [hsl[0], c * 100, f * 100];
|
|
};
|
|
convert.hsv.hcg = function(hsv) {
|
|
var s = hsv[1] / 100;
|
|
var v = hsv[2] / 100;
|
|
var c = s * v;
|
|
var f = 0;
|
|
if (c < 1) {
|
|
f = (v - c) / (1 - c);
|
|
}
|
|
return [hsv[0], c * 100, f * 100];
|
|
};
|
|
convert.hcg.rgb = function(hcg) {
|
|
var h = hcg[0] / 360;
|
|
var c = hcg[1] / 100;
|
|
var g = hcg[2] / 100;
|
|
if (c === 0) {
|
|
return [g * 255, g * 255, g * 255];
|
|
}
|
|
var pure = [0, 0, 0];
|
|
var hi = h % 1 * 6;
|
|
var v = hi % 1;
|
|
var w = 1 - v;
|
|
var mg = 0;
|
|
switch (Math.floor(hi)) {
|
|
case 0:
|
|
pure[0] = 1;
|
|
pure[1] = v;
|
|
pure[2] = 0;
|
|
break;
|
|
case 1:
|
|
pure[0] = w;
|
|
pure[1] = 1;
|
|
pure[2] = 0;
|
|
break;
|
|
case 2:
|
|
pure[0] = 0;
|
|
pure[1] = 1;
|
|
pure[2] = v;
|
|
break;
|
|
case 3:
|
|
pure[0] = 0;
|
|
pure[1] = w;
|
|
pure[2] = 1;
|
|
break;
|
|
case 4:
|
|
pure[0] = v;
|
|
pure[1] = 0;
|
|
pure[2] = 1;
|
|
break;
|
|
default:
|
|
pure[0] = 1;
|
|
pure[1] = 0;
|
|
pure[2] = w;
|
|
}
|
|
mg = (1 - c) * g;
|
|
return [
|
|
(c * pure[0] + mg) * 255,
|
|
(c * pure[1] + mg) * 255,
|
|
(c * pure[2] + mg) * 255
|
|
];
|
|
};
|
|
convert.hcg.hsv = function(hcg) {
|
|
var c = hcg[1] / 100;
|
|
var g = hcg[2] / 100;
|
|
var v = c + g * (1 - c);
|
|
var f = 0;
|
|
if (v > 0) {
|
|
f = c / v;
|
|
}
|
|
return [hcg[0], f * 100, v * 100];
|
|
};
|
|
convert.hcg.hsl = function(hcg) {
|
|
var c = hcg[1] / 100;
|
|
var g = hcg[2] / 100;
|
|
var l = g * (1 - c) + 0.5 * c;
|
|
var s = 0;
|
|
if (l > 0 && l < 0.5) {
|
|
s = c / (2 * l);
|
|
} else if (l >= 0.5 && l < 1) {
|
|
s = c / (2 * (1 - l));
|
|
}
|
|
return [hcg[0], s * 100, l * 100];
|
|
};
|
|
convert.hcg.hwb = function(hcg) {
|
|
var c = hcg[1] / 100;
|
|
var g = hcg[2] / 100;
|
|
var v = c + g * (1 - c);
|
|
return [hcg[0], (v - c) * 100, (1 - v) * 100];
|
|
};
|
|
convert.hwb.hcg = function(hwb) {
|
|
var w = hwb[1] / 100;
|
|
var b = hwb[2] / 100;
|
|
var v = 1 - b;
|
|
var c = v - w;
|
|
var g = 0;
|
|
if (c < 1) {
|
|
g = (v - c) / (1 - c);
|
|
}
|
|
return [hwb[0], c * 100, g * 100];
|
|
};
|
|
convert.apple.rgb = function(apple) {
|
|
return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255];
|
|
};
|
|
convert.rgb.apple = function(rgb) {
|
|
return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535];
|
|
};
|
|
convert.gray.rgb = function(args) {
|
|
return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];
|
|
};
|
|
convert.gray.hsl = convert.gray.hsv = function(args) {
|
|
return [0, 0, args[0]];
|
|
};
|
|
convert.gray.hwb = function(gray) {
|
|
return [0, 100, gray[0]];
|
|
};
|
|
convert.gray.cmyk = function(gray) {
|
|
return [0, 0, 0, gray[0]];
|
|
};
|
|
convert.gray.lab = function(gray) {
|
|
return [gray[0], 0, 0];
|
|
};
|
|
convert.gray.hex = function(gray) {
|
|
var val = Math.round(gray[0] / 100 * 255) & 255;
|
|
var integer = (val << 16) + (val << 8) + val;
|
|
var string = integer.toString(16).toUpperCase();
|
|
return "000000".substring(string.length) + string;
|
|
};
|
|
convert.rgb.gray = function(rgb) {
|
|
var val = (rgb[0] + rgb[1] + rgb[2]) / 3;
|
|
return [val / 255 * 100];
|
|
};
|
|
}
|
|
});
|
|
|
|
// node_modules/color-convert/route.js
|
|
var require_route = __commonJS({
|
|
"node_modules/color-convert/route.js"(exports, module) {
|
|
var conversions = require_conversions();
|
|
function buildGraph() {
|
|
var graph = {};
|
|
var models = Object.keys(conversions);
|
|
for (var len = models.length, i = 0; i < len; i++) {
|
|
graph[models[i]] = {
|
|
// http://jsperf.com/1-vs-infinity
|
|
// micro-opt, but this is simple.
|
|
distance: -1,
|
|
parent: null
|
|
};
|
|
}
|
|
return graph;
|
|
}
|
|
function deriveBFS(fromModel) {
|
|
var graph = buildGraph();
|
|
var queue = [fromModel];
|
|
graph[fromModel].distance = 0;
|
|
while (queue.length) {
|
|
var current = queue.pop();
|
|
var adjacents = Object.keys(conversions[current]);
|
|
for (var len = adjacents.length, i = 0; i < len; i++) {
|
|
var adjacent = adjacents[i];
|
|
var node = graph[adjacent];
|
|
if (node.distance === -1) {
|
|
node.distance = graph[current].distance + 1;
|
|
node.parent = current;
|
|
queue.unshift(adjacent);
|
|
}
|
|
}
|
|
}
|
|
return graph;
|
|
}
|
|
function link(from, to) {
|
|
return function(args) {
|
|
return to(from(args));
|
|
};
|
|
}
|
|
function wrapConversion(toModel, graph) {
|
|
var path = [graph[toModel].parent, toModel];
|
|
var fn = conversions[graph[toModel].parent][toModel];
|
|
var cur = graph[toModel].parent;
|
|
while (graph[cur].parent) {
|
|
path.unshift(graph[cur].parent);
|
|
fn = link(conversions[graph[cur].parent][cur], fn);
|
|
cur = graph[cur].parent;
|
|
}
|
|
fn.conversion = path;
|
|
return fn;
|
|
}
|
|
module.exports = function(fromModel) {
|
|
var graph = deriveBFS(fromModel);
|
|
var conversion = {};
|
|
var models = Object.keys(graph);
|
|
for (var len = models.length, i = 0; i < len; i++) {
|
|
var toModel = models[i];
|
|
var node = graph[toModel];
|
|
if (node.parent === null) {
|
|
continue;
|
|
}
|
|
conversion[toModel] = wrapConversion(toModel, graph);
|
|
}
|
|
return conversion;
|
|
};
|
|
}
|
|
});
|
|
|
|
// node_modules/color-convert/index.js
|
|
var require_color_convert = __commonJS({
|
|
"node_modules/color-convert/index.js"(exports, module) {
|
|
var conversions = require_conversions();
|
|
var route = require_route();
|
|
var convert = {};
|
|
var models = Object.keys(conversions);
|
|
function wrapRaw(fn) {
|
|
var wrappedFn = function(args) {
|
|
if (args === void 0 || args === null) {
|
|
return args;
|
|
}
|
|
if (arguments.length > 1) {
|
|
args = Array.prototype.slice.call(arguments);
|
|
}
|
|
return fn(args);
|
|
};
|
|
if ("conversion" in fn) {
|
|
wrappedFn.conversion = fn.conversion;
|
|
}
|
|
return wrappedFn;
|
|
}
|
|
function wrapRounded(fn) {
|
|
var wrappedFn = function(args) {
|
|
if (args === void 0 || args === null) {
|
|
return args;
|
|
}
|
|
if (arguments.length > 1) {
|
|
args = Array.prototype.slice.call(arguments);
|
|
}
|
|
var result = fn(args);
|
|
if (typeof result === "object") {
|
|
for (var len = result.length, i = 0; i < len; i++) {
|
|
result[i] = Math.round(result[i]);
|
|
}
|
|
}
|
|
return result;
|
|
};
|
|
if ("conversion" in fn) {
|
|
wrappedFn.conversion = fn.conversion;
|
|
}
|
|
return wrappedFn;
|
|
}
|
|
models.forEach(function(fromModel) {
|
|
convert[fromModel] = {};
|
|
Object.defineProperty(convert[fromModel], "channels", { value: conversions[fromModel].channels });
|
|
Object.defineProperty(convert[fromModel], "labels", { value: conversions[fromModel].labels });
|
|
var routes = route(fromModel);
|
|
var routeModels = Object.keys(routes);
|
|
routeModels.forEach(function(toModel) {
|
|
var fn = routes[toModel];
|
|
convert[fromModel][toModel] = wrapRounded(fn);
|
|
convert[fromModel][toModel].raw = wrapRaw(fn);
|
|
});
|
|
});
|
|
module.exports = convert;
|
|
}
|
|
});
|
|
|
|
// node_modules/ansi-styles/index.js
|
|
var require_ansi_styles = __commonJS({
|
|
"node_modules/ansi-styles/index.js"(exports, module) {
|
|
"use strict";
|
|
var colorConvert = require_color_convert();
|
|
var wrapAnsi16 = (fn, offset) => function() {
|
|
const code = fn.apply(colorConvert, arguments);
|
|
return `\x1B[${code + offset}m`;
|
|
};
|
|
var wrapAnsi256 = (fn, offset) => function() {
|
|
const code = fn.apply(colorConvert, arguments);
|
|
return `\x1B[${38 + offset};5;${code}m`;
|
|
};
|
|
var wrapAnsi16m = (fn, offset) => function() {
|
|
const rgb = fn.apply(colorConvert, arguments);
|
|
return `\x1B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;
|
|
};
|
|
function assembleStyles() {
|
|
const codes = /* @__PURE__ */ new Map();
|
|
const styles = {
|
|
modifier: {
|
|
reset: [0, 0],
|
|
// 21 isn't widely supported and 22 does the same thing
|
|
bold: [1, 22],
|
|
dim: [2, 22],
|
|
italic: [3, 23],
|
|
underline: [4, 24],
|
|
inverse: [7, 27],
|
|
hidden: [8, 28],
|
|
strikethrough: [9, 29]
|
|
},
|
|
color: {
|
|
black: [30, 39],
|
|
red: [31, 39],
|
|
green: [32, 39],
|
|
yellow: [33, 39],
|
|
blue: [34, 39],
|
|
magenta: [35, 39],
|
|
cyan: [36, 39],
|
|
white: [37, 39],
|
|
gray: [90, 39],
|
|
// Bright color
|
|
redBright: [91, 39],
|
|
greenBright: [92, 39],
|
|
yellowBright: [93, 39],
|
|
blueBright: [94, 39],
|
|
magentaBright: [95, 39],
|
|
cyanBright: [96, 39],
|
|
whiteBright: [97, 39]
|
|
},
|
|
bgColor: {
|
|
bgBlack: [40, 49],
|
|
bgRed: [41, 49],
|
|
bgGreen: [42, 49],
|
|
bgYellow: [43, 49],
|
|
bgBlue: [44, 49],
|
|
bgMagenta: [45, 49],
|
|
bgCyan: [46, 49],
|
|
bgWhite: [47, 49],
|
|
// Bright color
|
|
bgBlackBright: [100, 49],
|
|
bgRedBright: [101, 49],
|
|
bgGreenBright: [102, 49],
|
|
bgYellowBright: [103, 49],
|
|
bgBlueBright: [104, 49],
|
|
bgMagentaBright: [105, 49],
|
|
bgCyanBright: [106, 49],
|
|
bgWhiteBright: [107, 49]
|
|
}
|
|
};
|
|
styles.color.grey = styles.color.gray;
|
|
for (const groupName of Object.keys(styles)) {
|
|
const group = styles[groupName];
|
|
for (const styleName of Object.keys(group)) {
|
|
const style = group[styleName];
|
|
styles[styleName] = {
|
|
open: `\x1B[${style[0]}m`,
|
|
close: `\x1B[${style[1]}m`
|
|
};
|
|
group[styleName] = styles[styleName];
|
|
codes.set(style[0], style[1]);
|
|
}
|
|
Object.defineProperty(styles, groupName, {
|
|
value: group,
|
|
enumerable: false
|
|
});
|
|
Object.defineProperty(styles, "codes", {
|
|
value: codes,
|
|
enumerable: false
|
|
});
|
|
}
|
|
const ansi2ansi = (n) => n;
|
|
const rgb2rgb = (r, g, b) => [r, g, b];
|
|
styles.color.close = "\x1B[39m";
|
|
styles.bgColor.close = "\x1B[49m";
|
|
styles.color.ansi = {
|
|
ansi: wrapAnsi16(ansi2ansi, 0)
|
|
};
|
|
styles.color.ansi256 = {
|
|
ansi256: wrapAnsi256(ansi2ansi, 0)
|
|
};
|
|
styles.color.ansi16m = {
|
|
rgb: wrapAnsi16m(rgb2rgb, 0)
|
|
};
|
|
styles.bgColor.ansi = {
|
|
ansi: wrapAnsi16(ansi2ansi, 10)
|
|
};
|
|
styles.bgColor.ansi256 = {
|
|
ansi256: wrapAnsi256(ansi2ansi, 10)
|
|
};
|
|
styles.bgColor.ansi16m = {
|
|
rgb: wrapAnsi16m(rgb2rgb, 10)
|
|
};
|
|
for (let key of Object.keys(colorConvert)) {
|
|
if (typeof colorConvert[key] !== "object") {
|
|
continue;
|
|
}
|
|
const suite = colorConvert[key];
|
|
if (key === "ansi16") {
|
|
key = "ansi";
|
|
}
|
|
if ("ansi16" in suite) {
|
|
styles.color.ansi[key] = wrapAnsi16(suite.ansi16, 0);
|
|
styles.bgColor.ansi[key] = wrapAnsi16(suite.ansi16, 10);
|
|
}
|
|
if ("ansi256" in suite) {
|
|
styles.color.ansi256[key] = wrapAnsi256(suite.ansi256, 0);
|
|
styles.bgColor.ansi256[key] = wrapAnsi256(suite.ansi256, 10);
|
|
}
|
|
if ("rgb" in suite) {
|
|
styles.color.ansi16m[key] = wrapAnsi16m(suite.rgb, 0);
|
|
styles.bgColor.ansi16m[key] = wrapAnsi16m(suite.rgb, 10);
|
|
}
|
|
}
|
|
return styles;
|
|
}
|
|
Object.defineProperty(module, "exports", {
|
|
enumerable: true,
|
|
get: assembleStyles
|
|
});
|
|
}
|
|
});
|
|
|
|
// node_modules/@babel/highlight/node_modules/has-flag/index.js
|
|
var require_has_flag = __commonJS({
|
|
"node_modules/@babel/highlight/node_modules/has-flag/index.js"(exports, module) {
|
|
"use strict";
|
|
module.exports = (flag, argv) => {
|
|
argv = argv || process.argv;
|
|
const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
|
|
const pos = argv.indexOf(prefix + flag);
|
|
const terminatorPos = argv.indexOf("--");
|
|
return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);
|
|
};
|
|
}
|
|
});
|
|
|
|
// node_modules/@babel/highlight/node_modules/supports-color/index.js
|
|
var require_supports_color = __commonJS({
|
|
"node_modules/@babel/highlight/node_modules/supports-color/index.js"(exports, module) {
|
|
"use strict";
|
|
var os = __require("os");
|
|
var hasFlag = require_has_flag();
|
|
var env = process.env;
|
|
var forceColor;
|
|
if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false")) {
|
|
forceColor = false;
|
|
} else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) {
|
|
forceColor = true;
|
|
}
|
|
if ("FORCE_COLOR" in env) {
|
|
forceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0;
|
|
}
|
|
function translateLevel(level) {
|
|
if (level === 0) {
|
|
return false;
|
|
}
|
|
return {
|
|
level,
|
|
hasBasic: true,
|
|
has256: level >= 2,
|
|
has16m: level >= 3
|
|
};
|
|
}
|
|
function supportsColor(stream) {
|
|
if (forceColor === false) {
|
|
return 0;
|
|
}
|
|
if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) {
|
|
return 3;
|
|
}
|
|
if (hasFlag("color=256")) {
|
|
return 2;
|
|
}
|
|
if (stream && !stream.isTTY && forceColor !== true) {
|
|
return 0;
|
|
}
|
|
const min = forceColor ? 1 : 0;
|
|
if (process.platform === "win32") {
|
|
const osRelease = os.release().split(".");
|
|
if (Number(process.versions.node.split(".")[0]) >= 8 && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
|
|
return Number(osRelease[2]) >= 14931 ? 3 : 2;
|
|
}
|
|
return 1;
|
|
}
|
|
if ("CI" in env) {
|
|
if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI"].some((sign) => sign in env) || env.CI_NAME === "codeship") {
|
|
return 1;
|
|
}
|
|
return min;
|
|
}
|
|
if ("TEAMCITY_VERSION" in env) {
|
|
return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
|
|
}
|
|
if (env.COLORTERM === "truecolor") {
|
|
return 3;
|
|
}
|
|
if ("TERM_PROGRAM" in env) {
|
|
const version = parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
|
|
switch (env.TERM_PROGRAM) {
|
|
case "iTerm.app":
|
|
return version >= 3 ? 3 : 2;
|
|
case "Apple_Terminal":
|
|
return 2;
|
|
}
|
|
}
|
|
if (/-256(color)?$/i.test(env.TERM)) {
|
|
return 2;
|
|
}
|
|
if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
|
|
return 1;
|
|
}
|
|
if ("COLORTERM" in env) {
|
|
return 1;
|
|
}
|
|
if (env.TERM === "dumb") {
|
|
return min;
|
|
}
|
|
return min;
|
|
}
|
|
function getSupportLevel(stream) {
|
|
const level = supportsColor(stream);
|
|
return translateLevel(level);
|
|
}
|
|
module.exports = {
|
|
supportsColor: getSupportLevel,
|
|
stdout: getSupportLevel(process.stdout),
|
|
stderr: getSupportLevel(process.stderr)
|
|
};
|
|
}
|
|
});
|
|
|
|
// node_modules/@babel/highlight/node_modules/chalk/templates.js
|
|
var require_templates = __commonJS({
|
|
"node_modules/@babel/highlight/node_modules/chalk/templates.js"(exports, module) {
|
|
"use strict";
|
|
var TEMPLATE_REGEX = /(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi;
|
|
var STYLE_REGEX = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g;
|
|
var STRING_REGEX = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/;
|
|
var ESCAPE_REGEX = /\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi;
|
|
var ESCAPES = /* @__PURE__ */ new Map([
|
|
["n", "\n"],
|
|
["r", "\r"],
|
|
["t", " "],
|
|
["b", "\b"],
|
|
["f", "\f"],
|
|
["v", "\v"],
|
|
["0", "\0"],
|
|
["\\", "\\"],
|
|
["e", "\x1B"],
|
|
["a", "\x07"]
|
|
]);
|
|
function unescape(c) {
|
|
if (c[0] === "u" && c.length === 5 || c[0] === "x" && c.length === 3) {
|
|
return String.fromCharCode(parseInt(c.slice(1), 16));
|
|
}
|
|
return ESCAPES.get(c) || c;
|
|
}
|
|
function parseArguments(name, args) {
|
|
const results = [];
|
|
const chunks = args.trim().split(/\s*,\s*/g);
|
|
let matches;
|
|
for (const chunk of chunks) {
|
|
if (!isNaN(chunk)) {
|
|
results.push(Number(chunk));
|
|
} else if (matches = chunk.match(STRING_REGEX)) {
|
|
results.push(matches[2].replace(ESCAPE_REGEX, (m, escape, chr) => escape ? unescape(escape) : chr));
|
|
} else {
|
|
throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`);
|
|
}
|
|
}
|
|
return results;
|
|
}
|
|
function parseStyle(style) {
|
|
STYLE_REGEX.lastIndex = 0;
|
|
const results = [];
|
|
let matches;
|
|
while ((matches = STYLE_REGEX.exec(style)) !== null) {
|
|
const name = matches[1];
|
|
if (matches[2]) {
|
|
const args = parseArguments(name, matches[2]);
|
|
results.push([name].concat(args));
|
|
} else {
|
|
results.push([name]);
|
|
}
|
|
}
|
|
return results;
|
|
}
|
|
function buildStyle(chalk, styles) {
|
|
const enabled = {};
|
|
for (const layer of styles) {
|
|
for (const style of layer.styles) {
|
|
enabled[style[0]] = layer.inverse ? null : style.slice(1);
|
|
}
|
|
}
|
|
let current = chalk;
|
|
for (const styleName of Object.keys(enabled)) {
|
|
if (Array.isArray(enabled[styleName])) {
|
|
if (!(styleName in current)) {
|
|
throw new Error(`Unknown Chalk style: ${styleName}`);
|
|
}
|
|
if (enabled[styleName].length > 0) {
|
|
current = current[styleName].apply(current, enabled[styleName]);
|
|
} else {
|
|
current = current[styleName];
|
|
}
|
|
}
|
|
}
|
|
return current;
|
|
}
|
|
module.exports = (chalk, tmp) => {
|
|
const styles = [];
|
|
const chunks = [];
|
|
let chunk = [];
|
|
tmp.replace(TEMPLATE_REGEX, (m, escapeChar, inverse, style, close, chr) => {
|
|
if (escapeChar) {
|
|
chunk.push(unescape(escapeChar));
|
|
} else if (style) {
|
|
const str = chunk.join("");
|
|
chunk = [];
|
|
chunks.push(styles.length === 0 ? str : buildStyle(chalk, styles)(str));
|
|
styles.push({ inverse, styles: parseStyle(style) });
|
|
} else if (close) {
|
|
if (styles.length === 0) {
|
|
throw new Error("Found extraneous } in Chalk template literal");
|
|
}
|
|
chunks.push(buildStyle(chalk, styles)(chunk.join("")));
|
|
chunk = [];
|
|
styles.pop();
|
|
} else {
|
|
chunk.push(chr);
|
|
}
|
|
});
|
|
chunks.push(chunk.join(""));
|
|
if (styles.length > 0) {
|
|
const errMsg = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? "" : "s"} (\`}\`)`;
|
|
throw new Error(errMsg);
|
|
}
|
|
return chunks.join("");
|
|
};
|
|
}
|
|
});
|
|
|
|
// node_modules/@babel/highlight/node_modules/chalk/index.js
|
|
var require_chalk = __commonJS({
|
|
"node_modules/@babel/highlight/node_modules/chalk/index.js"(exports, module) {
|
|
"use strict";
|
|
var escapeStringRegexp = require_escape_string_regexp();
|
|
var ansiStyles = require_ansi_styles();
|
|
var stdoutColor = require_supports_color().stdout;
|
|
var template = require_templates();
|
|
var isSimpleWindowsTerm = process.platform === "win32" && !(process.env.TERM || "").toLowerCase().startsWith("xterm");
|
|
var levelMapping = ["ansi", "ansi", "ansi256", "ansi16m"];
|
|
var skipModels = /* @__PURE__ */ new Set(["gray"]);
|
|
var styles = /* @__PURE__ */ Object.create(null);
|
|
function applyOptions(obj, options) {
|
|
options = options || {};
|
|
const scLevel = stdoutColor ? stdoutColor.level : 0;
|
|
obj.level = options.level === void 0 ? scLevel : options.level;
|
|
obj.enabled = "enabled" in options ? options.enabled : obj.level > 0;
|
|
}
|
|
function Chalk(options) {
|
|
if (!this || !(this instanceof Chalk) || this.template) {
|
|
const chalk = {};
|
|
applyOptions(chalk, options);
|
|
chalk.template = function() {
|
|
const args = [].slice.call(arguments);
|
|
return chalkTag.apply(null, [chalk.template].concat(args));
|
|
};
|
|
Object.setPrototypeOf(chalk, Chalk.prototype);
|
|
Object.setPrototypeOf(chalk.template, chalk);
|
|
chalk.template.constructor = Chalk;
|
|
return chalk.template;
|
|
}
|
|
applyOptions(this, options);
|
|
}
|
|
if (isSimpleWindowsTerm) {
|
|
ansiStyles.blue.open = "\x1B[94m";
|
|
}
|
|
for (const key of Object.keys(ansiStyles)) {
|
|
ansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), "g");
|
|
styles[key] = {
|
|
get() {
|
|
const codes = ansiStyles[key];
|
|
return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, key);
|
|
}
|
|
};
|
|
}
|
|
styles.visible = {
|
|
get() {
|
|
return build.call(this, this._styles || [], true, "visible");
|
|
}
|
|
};
|
|
ansiStyles.color.closeRe = new RegExp(escapeStringRegexp(ansiStyles.color.close), "g");
|
|
for (const model of Object.keys(ansiStyles.color.ansi)) {
|
|
if (skipModels.has(model)) {
|
|
continue;
|
|
}
|
|
styles[model] = {
|
|
get() {
|
|
const level = this.level;
|
|
return function() {
|
|
const open = ansiStyles.color[levelMapping[level]][model].apply(null, arguments);
|
|
const codes = {
|
|
open,
|
|
close: ansiStyles.color.close,
|
|
closeRe: ansiStyles.color.closeRe
|
|
};
|
|
return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model);
|
|
};
|
|
}
|
|
};
|
|
}
|
|
ansiStyles.bgColor.closeRe = new RegExp(escapeStringRegexp(ansiStyles.bgColor.close), "g");
|
|
for (const model of Object.keys(ansiStyles.bgColor.ansi)) {
|
|
if (skipModels.has(model)) {
|
|
continue;
|
|
}
|
|
const bgModel = "bg" + model[0].toUpperCase() + model.slice(1);
|
|
styles[bgModel] = {
|
|
get() {
|
|
const level = this.level;
|
|
return function() {
|
|
const open = ansiStyles.bgColor[levelMapping[level]][model].apply(null, arguments);
|
|
const codes = {
|
|
open,
|
|
close: ansiStyles.bgColor.close,
|
|
closeRe: ansiStyles.bgColor.closeRe
|
|
};
|
|
return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model);
|
|
};
|
|
}
|
|
};
|
|
}
|
|
var proto = Object.defineProperties(() => {
|
|
}, styles);
|
|
function build(_styles, _empty, key) {
|
|
const builder = function() {
|
|
return applyStyle.apply(builder, arguments);
|
|
};
|
|
builder._styles = _styles;
|
|
builder._empty = _empty;
|
|
const self = this;
|
|
Object.defineProperty(builder, "level", {
|
|
enumerable: true,
|
|
get() {
|
|
return self.level;
|
|
},
|
|
set(level) {
|
|
self.level = level;
|
|
}
|
|
});
|
|
Object.defineProperty(builder, "enabled", {
|
|
enumerable: true,
|
|
get() {
|
|
return self.enabled;
|
|
},
|
|
set(enabled) {
|
|
self.enabled = enabled;
|
|
}
|
|
});
|
|
builder.hasGrey = this.hasGrey || key === "gray" || key === "grey";
|
|
builder.__proto__ = proto;
|
|
return builder;
|
|
}
|
|
function applyStyle() {
|
|
const args = arguments;
|
|
const argsLen = args.length;
|
|
let str = String(arguments[0]);
|
|
if (argsLen === 0) {
|
|
return "";
|
|
}
|
|
if (argsLen > 1) {
|
|
for (let a = 1; a < argsLen; a++) {
|
|
str += " " + args[a];
|
|
}
|
|
}
|
|
if (!this.enabled || this.level <= 0 || !str) {
|
|
return this._empty ? "" : str;
|
|
}
|
|
const originalDim = ansiStyles.dim.open;
|
|
if (isSimpleWindowsTerm && this.hasGrey) {
|
|
ansiStyles.dim.open = "";
|
|
}
|
|
for (const code of this._styles.slice().reverse()) {
|
|
str = code.open + str.replace(code.closeRe, code.open) + code.close;
|
|
str = str.replace(/\r?\n/g, `${code.close}$&${code.open}`);
|
|
}
|
|
ansiStyles.dim.open = originalDim;
|
|
return str;
|
|
}
|
|
function chalkTag(chalk, strings) {
|
|
if (!Array.isArray(strings)) {
|
|
return [].slice.call(arguments, 1).join(" ");
|
|
}
|
|
const args = [].slice.call(arguments, 2);
|
|
const parts = [strings.raw[0]];
|
|
for (let i = 1; i < strings.length; i++) {
|
|
parts.push(String(args[i - 1]).replace(/[{}\\]/g, "\\$&"));
|
|
parts.push(String(strings.raw[i]));
|
|
}
|
|
return template(chalk, parts.join(""));
|
|
}
|
|
Object.defineProperties(Chalk.prototype, styles);
|
|
module.exports = Chalk();
|
|
module.exports.supportsColor = stdoutColor;
|
|
module.exports.default = module.exports;
|
|
}
|
|
});
|
|
|
|
// node_modules/@babel/highlight/lib/index.js
|
|
var require_lib2 = __commonJS({
|
|
"node_modules/@babel/highlight/lib/index.js"(exports) {
|
|
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.default = highlight;
|
|
exports.getChalk = getChalk;
|
|
exports.shouldHighlight = shouldHighlight;
|
|
var _jsTokens = require_js_tokens();
|
|
var _helperValidatorIdentifier = require_lib();
|
|
var _chalk = require_chalk();
|
|
var sometimesKeywords = /* @__PURE__ */ new Set(["as", "async", "from", "get", "of", "set"]);
|
|
function getDefs(chalk) {
|
|
return {
|
|
keyword: chalk.cyan,
|
|
capitalized: chalk.yellow,
|
|
jsxIdentifier: chalk.yellow,
|
|
punctuator: chalk.yellow,
|
|
number: chalk.magenta,
|
|
string: chalk.green,
|
|
regex: chalk.magenta,
|
|
comment: chalk.grey,
|
|
invalid: chalk.white.bgRed.bold
|
|
};
|
|
}
|
|
var NEWLINE = /\r\n|[\n\r\u2028\u2029]/;
|
|
var BRACKET = /^[()[\]{}]$/;
|
|
var tokenize;
|
|
{
|
|
const JSX_TAG = /^[a-z][\w-]*$/i;
|
|
const getTokenType = function(token, offset, text) {
|
|
if (token.type === "name") {
|
|
if ((0, _helperValidatorIdentifier.isKeyword)(token.value) || (0, _helperValidatorIdentifier.isStrictReservedWord)(token.value, true) || sometimesKeywords.has(token.value)) {
|
|
return "keyword";
|
|
}
|
|
if (JSX_TAG.test(token.value) && (text[offset - 1] === "<" || text.slice(offset - 2, offset) == "</")) {
|
|
return "jsxIdentifier";
|
|
}
|
|
if (token.value[0] !== token.value[0].toLowerCase()) {
|
|
return "capitalized";
|
|
}
|
|
}
|
|
if (token.type === "punctuator" && BRACKET.test(token.value)) {
|
|
return "bracket";
|
|
}
|
|
if (token.type === "invalid" && (token.value === "@" || token.value === "#")) {
|
|
return "punctuator";
|
|
}
|
|
return token.type;
|
|
};
|
|
tokenize = function* (text) {
|
|
let match;
|
|
while (match = _jsTokens.default.exec(text)) {
|
|
const token = _jsTokens.matchToToken(match);
|
|
yield {
|
|
type: getTokenType(token, match.index, text),
|
|
value: token.value
|
|
};
|
|
}
|
|
};
|
|
}
|
|
function highlightTokens(defs, text) {
|
|
let highlighted = "";
|
|
for (const {
|
|
type,
|
|
value
|
|
} of tokenize(text)) {
|
|
const colorize = defs[type];
|
|
if (colorize) {
|
|
highlighted += value.split(NEWLINE).map((str) => colorize(str)).join("\n");
|
|
} else {
|
|
highlighted += value;
|
|
}
|
|
}
|
|
return highlighted;
|
|
}
|
|
function shouldHighlight(options) {
|
|
return !!_chalk.supportsColor || options.forceColor;
|
|
}
|
|
function getChalk(options) {
|
|
return options.forceColor ? new _chalk.constructor({
|
|
enabled: true,
|
|
level: 1
|
|
}) : _chalk;
|
|
}
|
|
function highlight(code, options = {}) {
|
|
if (code !== "" && shouldHighlight(options)) {
|
|
const chalk = getChalk(options);
|
|
const defs = getDefs(chalk);
|
|
return highlightTokens(defs, code);
|
|
} else {
|
|
return code;
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
// node_modules/@babel/code-frame/lib/index.js
|
|
var require_lib3 = __commonJS({
|
|
"node_modules/@babel/code-frame/lib/index.js"(exports) {
|
|
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.codeFrameColumns = codeFrameColumns;
|
|
exports.default = _default;
|
|
var _highlight = require_lib2();
|
|
var deprecationWarningShown = false;
|
|
function getDefs(chalk) {
|
|
return {
|
|
gutter: chalk.grey,
|
|
marker: chalk.red.bold,
|
|
message: chalk.red.bold
|
|
};
|
|
}
|
|
var NEWLINE = /\r\n|[\n\r\u2028\u2029]/;
|
|
function getMarkerLines(loc, source, opts) {
|
|
const startLoc = Object.assign({
|
|
column: 0,
|
|
line: -1
|
|
}, loc.start);
|
|
const endLoc = Object.assign({}, startLoc, loc.end);
|
|
const {
|
|
linesAbove = 2,
|
|
linesBelow = 3
|
|
} = opts || {};
|
|
const startLine = startLoc.line;
|
|
const startColumn = startLoc.column;
|
|
const endLine = endLoc.line;
|
|
const endColumn = endLoc.column;
|
|
let start = Math.max(startLine - (linesAbove + 1), 0);
|
|
let end = Math.min(source.length, endLine + linesBelow);
|
|
if (startLine === -1) {
|
|
start = 0;
|
|
}
|
|
if (endLine === -1) {
|
|
end = source.length;
|
|
}
|
|
const lineDiff = endLine - startLine;
|
|
const markerLines = {};
|
|
if (lineDiff) {
|
|
for (let i = 0; i <= lineDiff; i++) {
|
|
const lineNumber = i + startLine;
|
|
if (!startColumn) {
|
|
markerLines[lineNumber] = true;
|
|
} else if (i === 0) {
|
|
const sourceLength = source[lineNumber - 1].length;
|
|
markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1];
|
|
} else if (i === lineDiff) {
|
|
markerLines[lineNumber] = [0, endColumn];
|
|
} else {
|
|
const sourceLength = source[lineNumber - i].length;
|
|
markerLines[lineNumber] = [0, sourceLength];
|
|
}
|
|
}
|
|
} else {
|
|
if (startColumn === endColumn) {
|
|
if (startColumn) {
|
|
markerLines[startLine] = [startColumn, 0];
|
|
} else {
|
|
markerLines[startLine] = true;
|
|
}
|
|
} else {
|
|
markerLines[startLine] = [startColumn, endColumn - startColumn];
|
|
}
|
|
}
|
|
return {
|
|
start,
|
|
end,
|
|
markerLines
|
|
};
|
|
}
|
|
function codeFrameColumns(rawLines, loc, opts = {}) {
|
|
const highlighted = (opts.highlightCode || opts.forceColor) && (0, _highlight.shouldHighlight)(opts);
|
|
const chalk = (0, _highlight.getChalk)(opts);
|
|
const defs = getDefs(chalk);
|
|
const maybeHighlight = (chalkFn, string) => {
|
|
return highlighted ? chalkFn(string) : string;
|
|
};
|
|
const lines = rawLines.split(NEWLINE);
|
|
const {
|
|
start,
|
|
end,
|
|
markerLines
|
|
} = getMarkerLines(loc, lines, opts);
|
|
const hasColumns = loc.start && typeof loc.start.column === "number";
|
|
const numberMaxWidth = String(end).length;
|
|
const highlightedLines = highlighted ? (0, _highlight.default)(rawLines, opts) : rawLines;
|
|
let frame = highlightedLines.split(NEWLINE, end).slice(start, end).map((line, index) => {
|
|
const number = start + 1 + index;
|
|
const paddedNumber = ` ${number}`.slice(-numberMaxWidth);
|
|
const gutter = ` ${paddedNumber} |`;
|
|
const hasMarker = markerLines[number];
|
|
const lastMarkerLine = !markerLines[number + 1];
|
|
if (hasMarker) {
|
|
let markerLine = "";
|
|
if (Array.isArray(hasMarker)) {
|
|
const markerSpacing = line.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " ");
|
|
const numberOfMarkers = hasMarker[1] || 1;
|
|
markerLine = ["\n ", maybeHighlight(defs.gutter, gutter.replace(/\d/g, " ")), " ", markerSpacing, maybeHighlight(defs.marker, "^").repeat(numberOfMarkers)].join("");
|
|
if (lastMarkerLine && opts.message) {
|
|
markerLine += " " + maybeHighlight(defs.message, opts.message);
|
|
}
|
|
}
|
|
return [maybeHighlight(defs.marker, ">"), maybeHighlight(defs.gutter, gutter), line.length > 0 ? ` ${line}` : "", markerLine].join("");
|
|
} else {
|
|
return ` ${maybeHighlight(defs.gutter, gutter)}${line.length > 0 ? ` ${line}` : ""}`;
|
|
}
|
|
}).join("\n");
|
|
if (opts.message && !hasColumns) {
|
|
frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}
|
|
${frame}`;
|
|
}
|
|
if (highlighted) {
|
|
return chalk.reset(frame);
|
|
} else {
|
|
return frame;
|
|
}
|
|
}
|
|
function _default(rawLines, lineNumber, colNumber, opts = {}) {
|
|
if (!deprecationWarningShown) {
|
|
deprecationWarningShown = true;
|
|
const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.";
|
|
if (process.emitWarning) {
|
|
process.emitWarning(message, "DeprecationWarning");
|
|
} else {
|
|
const deprecationError = new Error(message);
|
|
deprecationError.name = "DeprecationWarning";
|
|
console.warn(new Error(message));
|
|
}
|
|
}
|
|
colNumber = Math.max(colNumber, 0);
|
|
const location = {
|
|
start: {
|
|
column: colNumber,
|
|
line: lineNumber
|
|
}
|
|
};
|
|
return codeFrameColumns(rawLines, location, opts);
|
|
}
|
|
}
|
|
});
|
|
|
|
// node_modules/parse-json/index.js
|
|
var require_parse_json = __commonJS({
|
|
"node_modules/parse-json/index.js"(exports, module) {
|
|
"use strict";
|
|
var errorEx = require_error_ex();
|
|
var fallback = require_json_parse_even_better_errors();
|
|
var { default: LinesAndColumns } = require_build();
|
|
var { codeFrameColumns } = require_lib3();
|
|
var JSONError = errorEx("JSONError", {
|
|
fileName: errorEx.append("in %s"),
|
|
codeFrame: errorEx.append("\n\n%s\n")
|
|
});
|
|
var parseJson = (string, reviver, filename) => {
|
|
if (typeof reviver === "string") {
|
|
filename = reviver;
|
|
reviver = null;
|
|
}
|
|
try {
|
|
try {
|
|
return JSON.parse(string, reviver);
|
|
} catch (error) {
|
|
fallback(string, reviver);
|
|
throw error;
|
|
}
|
|
} catch (error) {
|
|
error.message = error.message.replace(/\n/g, "");
|
|
const indexMatch = error.message.match(/in JSON at position (\d+) while parsing/);
|
|
const jsonError = new JSONError(error);
|
|
if (filename) {
|
|
jsonError.fileName = filename;
|
|
}
|
|
if (indexMatch && indexMatch.length > 0) {
|
|
const lines = new LinesAndColumns(string);
|
|
const index = Number(indexMatch[1]);
|
|
const location = lines.locationForIndex(index);
|
|
const codeFrame = codeFrameColumns(
|
|
string,
|
|
{ start: { line: location.line + 1, column: location.column + 1 } },
|
|
{ highlightCode: true }
|
|
);
|
|
jsonError.codeFrame = codeFrame;
|
|
}
|
|
throw jsonError;
|
|
}
|
|
};
|
|
parseJson.JSONError = JSONError;
|
|
module.exports = parseJson;
|
|
}
|
|
});
|
|
|
|
// node_modules/js-yaml/lib/common.js
|
|
var require_common = __commonJS({
|
|
"node_modules/js-yaml/lib/common.js"(exports, module) {
|
|
"use strict";
|
|
function isNothing(subject) {
|
|
return typeof subject === "undefined" || subject === null;
|
|
}
|
|
function isObject(subject) {
|
|
return typeof subject === "object" && subject !== null;
|
|
}
|
|
function toArray(sequence) {
|
|
if (Array.isArray(sequence))
|
|
return sequence;
|
|
else if (isNothing(sequence))
|
|
return [];
|
|
return [sequence];
|
|
}
|
|
function extend(target, source) {
|
|
var index, length, key, sourceKeys;
|
|
if (source) {
|
|
sourceKeys = Object.keys(source);
|
|
for (index = 0, length = sourceKeys.length; index < length; index += 1) {
|
|
key = sourceKeys[index];
|
|
target[key] = source[key];
|
|
}
|
|
}
|
|
return target;
|
|
}
|
|
function repeat(string, count) {
|
|
var result = "", cycle;
|
|
for (cycle = 0; cycle < count; cycle += 1) {
|
|
result += string;
|
|
}
|
|
return result;
|
|
}
|
|
function isNegativeZero(number) {
|
|
return number === 0 && Number.NEGATIVE_INFINITY === 1 / number;
|
|
}
|
|
module.exports.isNothing = isNothing;
|
|
module.exports.isObject = isObject;
|
|
module.exports.toArray = toArray;
|
|
module.exports.repeat = repeat;
|
|
module.exports.isNegativeZero = isNegativeZero;
|
|
module.exports.extend = extend;
|
|
}
|
|
});
|
|
|
|
// node_modules/js-yaml/lib/exception.js
|
|
var require_exception = __commonJS({
|
|
"node_modules/js-yaml/lib/exception.js"(exports, module) {
|
|
"use strict";
|
|
function formatError(exception, compact) {
|
|
var where = "", message = exception.reason || "(unknown reason)";
|
|
if (!exception.mark)
|
|
return message;
|
|
if (exception.mark.name) {
|
|
where += 'in "' + exception.mark.name + '" ';
|
|
}
|
|
where += "(" + (exception.mark.line + 1) + ":" + (exception.mark.column + 1) + ")";
|
|
if (!compact && exception.mark.snippet) {
|
|
where += "\n\n" + exception.mark.snippet;
|
|
}
|
|
return message + " " + where;
|
|
}
|
|
function YAMLException(reason, mark) {
|
|
Error.call(this);
|
|
this.name = "YAMLException";
|
|
this.reason = reason;
|
|
this.mark = mark;
|
|
this.message = formatError(this, false);
|
|
if (Error.captureStackTrace) {
|
|
Error.captureStackTrace(this, this.constructor);
|
|
} else {
|
|
this.stack = new Error().stack || "";
|
|
}
|
|
}
|
|
YAMLException.prototype = Object.create(Error.prototype);
|
|
YAMLException.prototype.constructor = YAMLException;
|
|
YAMLException.prototype.toString = function toString(compact) {
|
|
return this.name + ": " + formatError(this, compact);
|
|
};
|
|
module.exports = YAMLException;
|
|
}
|
|
});
|
|
|
|
// node_modules/js-yaml/lib/snippet.js
|
|
var require_snippet = __commonJS({
|
|
"node_modules/js-yaml/lib/snippet.js"(exports, module) {
|
|
"use strict";
|
|
var common = require_common();
|
|
function getLine(buffer, lineStart, lineEnd, position, maxLineLength) {
|
|
var head = "";
|
|
var tail = "";
|
|
var maxHalfLength = Math.floor(maxLineLength / 2) - 1;
|
|
if (position - lineStart > maxHalfLength) {
|
|
head = " ... ";
|
|
lineStart = position - maxHalfLength + head.length;
|
|
}
|
|
if (lineEnd - position > maxHalfLength) {
|
|
tail = " ...";
|
|
lineEnd = position + maxHalfLength - tail.length;
|
|
}
|
|
return {
|
|
str: head + buffer.slice(lineStart, lineEnd).replace(/\t/g, "\u2192") + tail,
|
|
pos: position - lineStart + head.length
|
|
// relative position
|
|
};
|
|
}
|
|
function padStart(string, max) {
|
|
return common.repeat(" ", max - string.length) + string;
|
|
}
|
|
function makeSnippet(mark, options) {
|
|
options = Object.create(options || null);
|
|
if (!mark.buffer)
|
|
return null;
|
|
if (!options.maxLength)
|
|
options.maxLength = 79;
|
|
if (typeof options.indent !== "number")
|
|
options.indent = 1;
|
|
if (typeof options.linesBefore !== "number")
|
|
options.linesBefore = 3;
|
|
if (typeof options.linesAfter !== "number")
|
|
options.linesAfter = 2;
|
|
var re = /\r?\n|\r|\0/g;
|
|
var lineStarts = [0];
|
|
var lineEnds = [];
|
|
var match;
|
|
var foundLineNo = -1;
|
|
while (match = re.exec(mark.buffer)) {
|
|
lineEnds.push(match.index);
|
|
lineStarts.push(match.index + match[0].length);
|
|
if (mark.position <= match.index && foundLineNo < 0) {
|
|
foundLineNo = lineStarts.length - 2;
|
|
}
|
|
}
|
|
if (foundLineNo < 0)
|
|
foundLineNo = lineStarts.length - 1;
|
|
var result = "", i, line;
|
|
var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;
|
|
var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);
|
|
for (i = 1; i <= options.linesBefore; i++) {
|
|
if (foundLineNo - i < 0)
|
|
break;
|
|
line = getLine(
|
|
mark.buffer,
|
|
lineStarts[foundLineNo - i],
|
|
lineEnds[foundLineNo - i],
|
|
mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),
|
|
maxLineLength
|
|
);
|
|
result = common.repeat(" ", options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + " | " + line.str + "\n" + result;
|
|
}
|
|
line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);
|
|
result += common.repeat(" ", options.indent) + padStart((mark.line + 1).toString(), lineNoLength) + " | " + line.str + "\n";
|
|
result += common.repeat("-", options.indent + lineNoLength + 3 + line.pos) + "^\n";
|
|
for (i = 1; i <= options.linesAfter; i++) {
|
|
if (foundLineNo + i >= lineEnds.length)
|
|
break;
|
|
line = getLine(
|
|
mark.buffer,
|
|
lineStarts[foundLineNo + i],
|
|
lineEnds[foundLineNo + i],
|
|
mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),
|
|
maxLineLength
|
|
);
|
|
result += common.repeat(" ", options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + " | " + line.str + "\n";
|
|
}
|
|
return result.replace(/\n$/, "");
|
|
}
|
|
module.exports = makeSnippet;
|
|
}
|
|
});
|
|
|
|
// node_modules/js-yaml/lib/type.js
|
|
var require_type = __commonJS({
|
|
"node_modules/js-yaml/lib/type.js"(exports, module) {
|
|
"use strict";
|
|
var YAMLException = require_exception();
|
|
var TYPE_CONSTRUCTOR_OPTIONS = [
|
|
"kind",
|
|
"multi",
|
|
"resolve",
|
|
"construct",
|
|
"instanceOf",
|
|
"predicate",
|
|
"represent",
|
|
"representName",
|
|
"defaultStyle",
|
|
"styleAliases"
|
|
];
|
|
var YAML_NODE_KINDS = [
|
|
"scalar",
|
|
"sequence",
|
|
"mapping"
|
|
];
|
|
function compileStyleAliases(map) {
|
|
var result = {};
|
|
if (map !== null) {
|
|
Object.keys(map).forEach(function(style) {
|
|
map[style].forEach(function(alias) {
|
|
result[String(alias)] = style;
|
|
});
|
|
});
|
|
}
|
|
return result;
|
|
}
|
|
function Type(tag, options) {
|
|
options = options || {};
|
|
Object.keys(options).forEach(function(name) {
|
|
if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {
|
|
throw new YAMLException('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.');
|
|
}
|
|
});
|
|
this.options = options;
|
|
this.tag = tag;
|
|
this.kind = options["kind"] || null;
|
|
this.resolve = options["resolve"] || function() {
|
|
return true;
|
|
};
|
|
this.construct = options["construct"] || function(data) {
|
|
return data;
|
|
};
|
|
this.instanceOf = options["instanceOf"] || null;
|
|
this.predicate = options["predicate"] || null;
|
|
this.represent = options["represent"] || null;
|
|
this.representName = options["representName"] || null;
|
|
this.defaultStyle = options["defaultStyle"] || null;
|
|
this.multi = options["multi"] || false;
|
|
this.styleAliases = compileStyleAliases(options["styleAliases"] || null);
|
|
if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {
|
|
throw new YAMLException('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.');
|
|
}
|
|
}
|
|
module.exports = Type;
|
|
}
|
|
});
|
|
|
|
// node_modules/js-yaml/lib/schema.js
|
|
var require_schema = __commonJS({
|
|
"node_modules/js-yaml/lib/schema.js"(exports, module) {
|
|
"use strict";
|
|
var YAMLException = require_exception();
|
|
var Type = require_type();
|
|
function compileList(schema, name) {
|
|
var result = [];
|
|
schema[name].forEach(function(currentType) {
|
|
var newIndex = result.length;
|
|
result.forEach(function(previousType, previousIndex) {
|
|
if (previousType.tag === currentType.tag && previousType.kind === currentType.kind && previousType.multi === currentType.multi) {
|
|
newIndex = previousIndex;
|
|
}
|
|
});
|
|
result[newIndex] = currentType;
|
|
});
|
|
return result;
|
|
}
|
|
function compileMap() {
|
|
var result = {
|
|
scalar: {},
|
|
sequence: {},
|
|
mapping: {},
|
|
fallback: {},
|
|
multi: {
|
|
scalar: [],
|
|
sequence: [],
|
|
mapping: [],
|
|
fallback: []
|
|
}
|
|
}, index, length;
|
|
function collectType(type) {
|
|
if (type.multi) {
|
|
result.multi[type.kind].push(type);
|
|
result.multi["fallback"].push(type);
|
|
} else {
|
|
result[type.kind][type.tag] = result["fallback"][type.tag] = type;
|
|
}
|
|
}
|
|
for (index = 0, length = arguments.length; index < length; index += 1) {
|
|
arguments[index].forEach(collectType);
|
|
}
|
|
return result;
|
|
}
|
|
function Schema(definition) {
|
|
return this.extend(definition);
|
|
}
|
|
Schema.prototype.extend = function extend(definition) {
|
|
var implicit = [];
|
|
var explicit = [];
|
|
if (definition instanceof Type) {
|
|
explicit.push(definition);
|
|
} else if (Array.isArray(definition)) {
|
|
explicit = explicit.concat(definition);
|
|
} else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {
|
|
if (definition.implicit)
|
|
implicit = implicit.concat(definition.implicit);
|
|
if (definition.explicit)
|
|
explicit = explicit.concat(definition.explicit);
|
|
} else {
|
|
throw new YAMLException("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");
|
|
}
|
|
implicit.forEach(function(type) {
|
|
if (!(type instanceof Type)) {
|
|
throw new YAMLException("Specified list of YAML types (or a single Type object) contains a non-Type object.");
|
|
}
|
|
if (type.loadKind && type.loadKind !== "scalar") {
|
|
throw new YAMLException("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");
|
|
}
|
|
if (type.multi) {
|
|
throw new YAMLException("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.");
|
|
}
|
|
});
|
|
explicit.forEach(function(type) {
|
|
if (!(type instanceof Type)) {
|
|
throw new YAMLException("Specified list of YAML types (or a single Type object) contains a non-Type object.");
|
|
}
|
|
});
|
|
var result = Object.create(Schema.prototype);
|
|
result.implicit = (this.implicit || []).concat(implicit);
|
|
result.explicit = (this.explicit || []).concat(explicit);
|
|
result.compiledImplicit = compileList(result, "implicit");
|
|
result.compiledExplicit = compileList(result, "explicit");
|
|
result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);
|
|
return result;
|
|
};
|
|
module.exports = Schema;
|
|
}
|
|
});
|
|
|
|
// node_modules/js-yaml/lib/type/str.js
|
|
var require_str = __commonJS({
|
|
"node_modules/js-yaml/lib/type/str.js"(exports, module) {
|
|
"use strict";
|
|
var Type = require_type();
|
|
module.exports = new Type("tag:yaml.org,2002:str", {
|
|
kind: "scalar",
|
|
construct: function(data) {
|
|
return data !== null ? data : "";
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
// node_modules/js-yaml/lib/type/seq.js
|
|
var require_seq = __commonJS({
|
|
"node_modules/js-yaml/lib/type/seq.js"(exports, module) {
|
|
"use strict";
|
|
var Type = require_type();
|
|
module.exports = new Type("tag:yaml.org,2002:seq", {
|
|
kind: "sequence",
|
|
construct: function(data) {
|
|
return data !== null ? data : [];
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
// node_modules/js-yaml/lib/type/map.js
|
|
var require_map = __commonJS({
|
|
"node_modules/js-yaml/lib/type/map.js"(exports, module) {
|
|
"use strict";
|
|
var Type = require_type();
|
|
module.exports = new Type("tag:yaml.org,2002:map", {
|
|
kind: "mapping",
|
|
construct: function(data) {
|
|
return data !== null ? data : {};
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
// node_modules/js-yaml/lib/schema/failsafe.js
|
|
var require_failsafe = __commonJS({
|
|
"node_modules/js-yaml/lib/schema/failsafe.js"(exports, module) {
|
|
"use strict";
|
|
var Schema = require_schema();
|
|
module.exports = new Schema({
|
|
explicit: [
|
|
require_str(),
|
|
require_seq(),
|
|
require_map()
|
|
]
|
|
});
|
|
}
|
|
});
|
|
|
|
// node_modules/js-yaml/lib/type/null.js
|
|
var require_null = __commonJS({
|
|
"node_modules/js-yaml/lib/type/null.js"(exports, module) {
|
|
"use strict";
|
|
var Type = require_type();
|
|
function resolveYamlNull(data) {
|
|
if (data === null)
|
|
return true;
|
|
var max = data.length;
|
|
return max === 1 && data === "~" || max === 4 && (data === "null" || data === "Null" || data === "NULL");
|
|
}
|
|
function constructYamlNull() {
|
|
return null;
|
|
}
|
|
function isNull(object) {
|
|
return object === null;
|
|
}
|
|
module.exports = new Type("tag:yaml.org,2002:null", {
|
|
kind: "scalar",
|
|
resolve: resolveYamlNull,
|
|
construct: constructYamlNull,
|
|
predicate: isNull,
|
|
represent: {
|
|
canonical: function() {
|
|
return "~";
|
|
},
|
|
lowercase: function() {
|
|
return "null";
|
|
},
|
|
uppercase: function() {
|
|
return "NULL";
|
|
},
|
|
camelcase: function() {
|
|
return "Null";
|
|
},
|
|
empty: function() {
|
|
return "";
|
|
}
|
|
},
|
|
defaultStyle: "lowercase"
|
|
});
|
|
}
|
|
});
|
|
|
|
// node_modules/js-yaml/lib/type/bool.js
|
|
var require_bool = __commonJS({
|
|
"node_modules/js-yaml/lib/type/bool.js"(exports, module) {
|
|
"use strict";
|
|
var Type = require_type();
|
|
function resolveYamlBoolean(data) {
|
|
if (data === null)
|
|
return false;
|
|
var max = data.length;
|
|
return max === 4 && (data === "true" || data === "True" || data === "TRUE") || max === 5 && (data === "false" || data === "False" || data === "FALSE");
|
|
}
|
|
function constructYamlBoolean(data) {
|
|
return data === "true" || data === "True" || data === "TRUE";
|
|
}
|
|
function isBoolean(object) {
|
|
return Object.prototype.toString.call(object) === "[object Boolean]";
|
|
}
|
|
module.exports = new Type("tag:yaml.org,2002:bool", {
|
|
kind: "scalar",
|
|
resolve: resolveYamlBoolean,
|
|
construct: constructYamlBoolean,
|
|
predicate: isBoolean,
|
|
represent: {
|
|
lowercase: function(object) {
|
|
return object ? "true" : "false";
|
|
},
|
|
uppercase: function(object) {
|
|
return object ? "TRUE" : "FALSE";
|
|
},
|
|
camelcase: function(object) {
|
|
return object ? "True" : "False";
|
|
}
|
|
},
|
|
defaultStyle: "lowercase"
|
|
});
|
|
}
|
|
});
|
|
|
|
// node_modules/js-yaml/lib/type/int.js
|
|
var require_int = __commonJS({
|
|
"node_modules/js-yaml/lib/type/int.js"(exports, module) {
|
|
"use strict";
|
|
var common = require_common();
|
|
var Type = require_type();
|
|
function isHexCode(c) {
|
|
return 48 <= c && c <= 57 || 65 <= c && c <= 70 || 97 <= c && c <= 102;
|
|
}
|
|
function isOctCode(c) {
|
|
return 48 <= c && c <= 55;
|
|
}
|
|
function isDecCode(c) {
|
|
return 48 <= c && c <= 57;
|
|
}
|
|
function resolveYamlInteger(data) {
|
|
if (data === null)
|
|
return false;
|
|
var max = data.length, index = 0, hasDigits = false, ch;
|
|
if (!max)
|
|
return false;
|
|
ch = data[index];
|
|
if (ch === "-" || ch === "+") {
|
|
ch = data[++index];
|
|
}
|
|
if (ch === "0") {
|
|
if (index + 1 === max)
|
|
return true;
|
|
ch = data[++index];
|
|
if (ch === "b") {
|
|
index++;
|
|
for (; index < max; index++) {
|
|
ch = data[index];
|
|
if (ch === "_")
|
|
continue;
|
|
if (ch !== "0" && ch !== "1")
|
|
return false;
|
|
hasDigits = true;
|
|
}
|
|
return hasDigits && ch !== "_";
|
|
}
|
|
if (ch === "x") {
|
|
index++;
|
|
for (; index < max; index++) {
|
|
ch = data[index];
|
|
if (ch === "_")
|
|
continue;
|
|
if (!isHexCode(data.charCodeAt(index)))
|
|
return false;
|
|
hasDigits = true;
|
|
}
|
|
return hasDigits && ch !== "_";
|
|
}
|
|
if (ch === "o") {
|
|
index++;
|
|
for (; index < max; index++) {
|
|
ch = data[index];
|
|
if (ch === "_")
|
|
continue;
|
|
if (!isOctCode(data.charCodeAt(index)))
|
|
return false;
|
|
hasDigits = true;
|
|
}
|
|
return hasDigits && ch !== "_";
|
|
}
|
|
}
|
|
if (ch === "_")
|
|
return false;
|
|
for (; index < max; index++) {
|
|
ch = data[index];
|
|
if (ch === "_")
|
|
continue;
|
|
if (!isDecCode(data.charCodeAt(index))) {
|
|
return false;
|
|
}
|
|
hasDigits = true;
|
|
}
|
|
if (!hasDigits || ch === "_")
|
|
return false;
|
|
return true;
|
|
}
|
|
function constructYamlInteger(data) {
|
|
var value = data, sign = 1, ch;
|
|
if (value.indexOf("_") !== -1) {
|
|
value = value.replace(/_/g, "");
|
|
}
|
|
ch = value[0];
|
|
if (ch === "-" || ch === "+") {
|
|
if (ch === "-")
|
|
sign = -1;
|
|
value = value.slice(1);
|
|
ch = value[0];
|
|
}
|
|
if (value === "0")
|
|
return 0;
|
|
if (ch === "0") {
|
|
if (value[1] === "b")
|
|
return sign * parseInt(value.slice(2), 2);
|
|
if (value[1] === "x")
|
|
return sign * parseInt(value.slice(2), 16);
|
|
if (value[1] === "o")
|
|
return sign * parseInt(value.slice(2), 8);
|
|
}
|
|
return sign * parseInt(value, 10);
|
|
}
|
|
function isInteger(object) {
|
|
return Object.prototype.toString.call(object) === "[object Number]" && (object % 1 === 0 && !common.isNegativeZero(object));
|
|
}
|
|
module.exports = new Type("tag:yaml.org,2002:int", {
|
|
kind: "scalar",
|
|
resolve: resolveYamlInteger,
|
|
construct: constructYamlInteger,
|
|
predicate: isInteger,
|
|
represent: {
|
|
binary: function(obj) {
|
|
return obj >= 0 ? "0b" + obj.toString(2) : "-0b" + obj.toString(2).slice(1);
|
|
},
|
|
octal: function(obj) {
|
|
return obj >= 0 ? "0o" + obj.toString(8) : "-0o" + obj.toString(8).slice(1);
|
|
},
|
|
decimal: function(obj) {
|
|
return obj.toString(10);
|
|
},
|
|
/* eslint-disable max-len */
|
|
hexadecimal: function(obj) {
|
|
return obj >= 0 ? "0x" + obj.toString(16).toUpperCase() : "-0x" + obj.toString(16).toUpperCase().slice(1);
|
|
}
|
|
},
|
|
defaultStyle: "decimal",
|
|
styleAliases: {
|
|
binary: [2, "bin"],
|
|
octal: [8, "oct"],
|
|
decimal: [10, "dec"],
|
|
hexadecimal: [16, "hex"]
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
// node_modules/js-yaml/lib/type/float.js
|
|
var require_float = __commonJS({
|
|
"node_modules/js-yaml/lib/type/float.js"(exports, module) {
|
|
"use strict";
|
|
var common = require_common();
|
|
var Type = require_type();
|
|
var YAML_FLOAT_PATTERN = new RegExp(
|
|
// 2.5e4, 2.5 and integers
|
|
"^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"
|
|
);
|
|
function resolveYamlFloat(data) {
|
|
if (data === null)
|
|
return false;
|
|
if (!YAML_FLOAT_PATTERN.test(data) || // Quick hack to not allow integers end with `_`
|
|
// Probably should update regexp & check speed
|
|
data[data.length - 1] === "_") {
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
function constructYamlFloat(data) {
|
|
var value, sign;
|
|
value = data.replace(/_/g, "").toLowerCase();
|
|
sign = value[0] === "-" ? -1 : 1;
|
|
if ("+-".indexOf(value[0]) >= 0) {
|
|
value = value.slice(1);
|
|
}
|
|
if (value === ".inf") {
|
|
return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;
|
|
} else if (value === ".nan") {
|
|
return NaN;
|
|
}
|
|
return sign * parseFloat(value, 10);
|
|
}
|
|
var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;
|
|
function representYamlFloat(object, style) {
|
|
var res;
|
|
if (isNaN(object)) {
|
|
switch (style) {
|
|
case "lowercase":
|
|
return ".nan";
|
|
case "uppercase":
|
|
return ".NAN";
|
|
case "camelcase":
|
|
return ".NaN";
|
|
}
|
|
} else if (Number.POSITIVE_INFINITY === object) {
|
|
switch (style) {
|
|
case "lowercase":
|
|
return ".inf";
|
|
case "uppercase":
|
|
return ".INF";
|
|
case "camelcase":
|
|
return ".Inf";
|
|
}
|
|
} else if (Number.NEGATIVE_INFINITY === object) {
|
|
switch (style) {
|
|
case "lowercase":
|
|
return "-.inf";
|
|
case "uppercase":
|
|
return "-.INF";
|
|
case "camelcase":
|
|
return "-.Inf";
|
|
}
|
|
} else if (common.isNegativeZero(object)) {
|
|
return "-0.0";
|
|
}
|
|
res = object.toString(10);
|
|
return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace("e", ".e") : res;
|
|
}
|
|
function isFloat(object) {
|
|
return Object.prototype.toString.call(object) === "[object Number]" && (object % 1 !== 0 || common.isNegativeZero(object));
|
|
}
|
|
module.exports = new Type("tag:yaml.org,2002:float", {
|
|
kind: "scalar",
|
|
resolve: resolveYamlFloat,
|
|
construct: constructYamlFloat,
|
|
predicate: isFloat,
|
|
represent: representYamlFloat,
|
|
defaultStyle: "lowercase"
|
|
});
|
|
}
|
|
});
|
|
|
|
// node_modules/js-yaml/lib/schema/json.js
|
|
var require_json = __commonJS({
|
|
"node_modules/js-yaml/lib/schema/json.js"(exports, module) {
|
|
"use strict";
|
|
module.exports = require_failsafe().extend({
|
|
implicit: [
|
|
require_null(),
|
|
require_bool(),
|
|
require_int(),
|
|
require_float()
|
|
]
|
|
});
|
|
}
|
|
});
|
|
|
|
// node_modules/js-yaml/lib/schema/core.js
|
|
var require_core = __commonJS({
|
|
"node_modules/js-yaml/lib/schema/core.js"(exports, module) {
|
|
"use strict";
|
|
module.exports = require_json();
|
|
}
|
|
});
|
|
|
|
// node_modules/js-yaml/lib/type/timestamp.js
|
|
var require_timestamp = __commonJS({
|
|
"node_modules/js-yaml/lib/type/timestamp.js"(exports, module) {
|
|
"use strict";
|
|
var Type = require_type();
|
|
var YAML_DATE_REGEXP = new RegExp(
|
|
"^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"
|
|
);
|
|
var YAML_TIMESTAMP_REGEXP = new RegExp(
|
|
"^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$"
|
|
);
|
|
function resolveYamlTimestamp(data) {
|
|
if (data === null)
|
|
return false;
|
|
if (YAML_DATE_REGEXP.exec(data) !== null)
|
|
return true;
|
|
if (YAML_TIMESTAMP_REGEXP.exec(data) !== null)
|
|
return true;
|
|
return false;
|
|
}
|
|
function constructYamlTimestamp(data) {
|
|
var match, year, month, day, hour, minute, second, fraction = 0, delta = null, tz_hour, tz_minute, date;
|
|
match = YAML_DATE_REGEXP.exec(data);
|
|
if (match === null)
|
|
match = YAML_TIMESTAMP_REGEXP.exec(data);
|
|
if (match === null)
|
|
throw new Error("Date resolve error");
|
|
year = +match[1];
|
|
month = +match[2] - 1;
|
|
day = +match[3];
|
|
if (!match[4]) {
|
|
return new Date(Date.UTC(year, month, day));
|
|
}
|
|
hour = +match[4];
|
|
minute = +match[5];
|
|
second = +match[6];
|
|
if (match[7]) {
|
|
fraction = match[7].slice(0, 3);
|
|
while (fraction.length < 3) {
|
|
fraction += "0";
|
|
}
|
|
fraction = +fraction;
|
|
}
|
|
if (match[9]) {
|
|
tz_hour = +match[10];
|
|
tz_minute = +(match[11] || 0);
|
|
delta = (tz_hour * 60 + tz_minute) * 6e4;
|
|
if (match[9] === "-")
|
|
delta = -delta;
|
|
}
|
|
date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));
|
|
if (delta)
|
|
date.setTime(date.getTime() - delta);
|
|
return date;
|
|
}
|
|
function representYamlTimestamp(object) {
|
|
return object.toISOString();
|
|
}
|
|
module.exports = new Type("tag:yaml.org,2002:timestamp", {
|
|
kind: "scalar",
|
|
resolve: resolveYamlTimestamp,
|
|
construct: constructYamlTimestamp,
|
|
instanceOf: Date,
|
|
represent: representYamlTimestamp
|
|
});
|
|
}
|
|
});
|
|
|
|
// node_modules/js-yaml/lib/type/merge.js
|
|
var require_merge = __commonJS({
|
|
"node_modules/js-yaml/lib/type/merge.js"(exports, module) {
|
|
"use strict";
|
|
var Type = require_type();
|
|
function resolveYamlMerge(data) {
|
|
return data === "<<" || data === null;
|
|
}
|
|
module.exports = new Type("tag:yaml.org,2002:merge", {
|
|
kind: "scalar",
|
|
resolve: resolveYamlMerge
|
|
});
|
|
}
|
|
});
|
|
|
|
// node_modules/js-yaml/lib/type/binary.js
|
|
var require_binary = __commonJS({
|
|
"node_modules/js-yaml/lib/type/binary.js"(exports, module) {
|
|
"use strict";
|
|
var Type = require_type();
|
|
var BASE64_MAP = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";
|
|
function resolveYamlBinary(data) {
|
|
if (data === null)
|
|
return false;
|
|
var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;
|
|
for (idx = 0; idx < max; idx++) {
|
|
code = map.indexOf(data.charAt(idx));
|
|
if (code > 64)
|
|
continue;
|
|
if (code < 0)
|
|
return false;
|
|
bitlen += 6;
|
|
}
|
|
return bitlen % 8 === 0;
|
|
}
|
|
function constructYamlBinary(data) {
|
|
var idx, tailbits, input = data.replace(/[\r\n=]/g, ""), max = input.length, map = BASE64_MAP, bits = 0, result = [];
|
|
for (idx = 0; idx < max; idx++) {
|
|
if (idx % 4 === 0 && idx) {
|
|
result.push(bits >> 16 & 255);
|
|
result.push(bits >> 8 & 255);
|
|
result.push(bits & 255);
|
|
}
|
|
bits = bits << 6 | map.indexOf(input.charAt(idx));
|
|
}
|
|
tailbits = max % 4 * 6;
|
|
if (tailbits === 0) {
|
|
result.push(bits >> 16 & 255);
|
|
result.push(bits >> 8 & 255);
|
|
result.push(bits & 255);
|
|
} else if (tailbits === 18) {
|
|
result.push(bits >> 10 & 255);
|
|
result.push(bits >> 2 & 255);
|
|
} else if (tailbits === 12) {
|
|
result.push(bits >> 4 & 255);
|
|
}
|
|
return new Uint8Array(result);
|
|
}
|
|
function representYamlBinary(object) {
|
|
var result = "", bits = 0, idx, tail, max = object.length, map = BASE64_MAP;
|
|
for (idx = 0; idx < max; idx++) {
|
|
if (idx % 3 === 0 && idx) {
|
|
result += map[bits >> 18 & 63];
|
|
result += map[bits >> 12 & 63];
|
|
result += map[bits >> 6 & 63];
|
|
result += map[bits & 63];
|
|
}
|
|
bits = (bits << 8) + object[idx];
|
|
}
|
|
tail = max % 3;
|
|
if (tail === 0) {
|
|
result += map[bits >> 18 & 63];
|
|
result += map[bits >> 12 & 63];
|
|
result += map[bits >> 6 & 63];
|
|
result += map[bits & 63];
|
|
} else if (tail === 2) {
|
|
result += map[bits >> 10 & 63];
|
|
result += map[bits >> 4 & 63];
|
|
result += map[bits << 2 & 63];
|
|
result += map[64];
|
|
} else if (tail === 1) {
|
|
result += map[bits >> 2 & 63];
|
|
result += map[bits << 4 & 63];
|
|
result += map[64];
|
|
result += map[64];
|
|
}
|
|
return result;
|
|
}
|
|
function isBinary(obj) {
|
|
return Object.prototype.toString.call(obj) === "[object Uint8Array]";
|
|
}
|
|
module.exports = new Type("tag:yaml.org,2002:binary", {
|
|
kind: "scalar",
|
|
resolve: resolveYamlBinary,
|
|
construct: constructYamlBinary,
|
|
predicate: isBinary,
|
|
represent: representYamlBinary
|
|
});
|
|
}
|
|
});
|
|
|
|
// node_modules/js-yaml/lib/type/omap.js
|
|
var require_omap = __commonJS({
|
|
"node_modules/js-yaml/lib/type/omap.js"(exports, module) {
|
|
"use strict";
|
|
var Type = require_type();
|
|
var _hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
var _toString = Object.prototype.toString;
|
|
function resolveYamlOmap(data) {
|
|
if (data === null)
|
|
return true;
|
|
var objectKeys = [], index, length, pair, pairKey, pairHasKey, object = data;
|
|
for (index = 0, length = object.length; index < length; index += 1) {
|
|
pair = object[index];
|
|
pairHasKey = false;
|
|
if (_toString.call(pair) !== "[object Object]")
|
|
return false;
|
|
for (pairKey in pair) {
|
|
if (_hasOwnProperty.call(pair, pairKey)) {
|
|
if (!pairHasKey)
|
|
pairHasKey = true;
|
|
else
|
|
return false;
|
|
}
|
|
}
|
|
if (!pairHasKey)
|
|
return false;
|
|
if (objectKeys.indexOf(pairKey) === -1)
|
|
objectKeys.push(pairKey);
|
|
else
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
function constructYamlOmap(data) {
|
|
return data !== null ? data : [];
|
|
}
|
|
module.exports = new Type("tag:yaml.org,2002:omap", {
|
|
kind: "sequence",
|
|
resolve: resolveYamlOmap,
|
|
construct: constructYamlOmap
|
|
});
|
|
}
|
|
});
|
|
|
|
// node_modules/js-yaml/lib/type/pairs.js
|
|
var require_pairs = __commonJS({
|
|
"node_modules/js-yaml/lib/type/pairs.js"(exports, module) {
|
|
"use strict";
|
|
var Type = require_type();
|
|
var _toString = Object.prototype.toString;
|
|
function resolveYamlPairs(data) {
|
|
if (data === null)
|
|
return true;
|
|
var index, length, pair, keys, result, object = data;
|
|
result = new Array(object.length);
|
|
for (index = 0, length = object.length; index < length; index += 1) {
|
|
pair = object[index];
|
|
if (_toString.call(pair) !== "[object Object]")
|
|
return false;
|
|
keys = Object.keys(pair);
|
|
if (keys.length !== 1)
|
|
return false;
|
|
result[index] = [keys[0], pair[keys[0]]];
|
|
}
|
|
return true;
|
|
}
|
|
function constructYamlPairs(data) {
|
|
if (data === null)
|
|
return [];
|
|
var index, length, pair, keys, result, object = data;
|
|
result = new Array(object.length);
|
|
for (index = 0, length = object.length; index < length; index += 1) {
|
|
pair = object[index];
|
|
keys = Object.keys(pair);
|
|
result[index] = [keys[0], pair[keys[0]]];
|
|
}
|
|
return result;
|
|
}
|
|
module.exports = new Type("tag:yaml.org,2002:pairs", {
|
|
kind: "sequence",
|
|
resolve: resolveYamlPairs,
|
|
construct: constructYamlPairs
|
|
});
|
|
}
|
|
});
|
|
|
|
// node_modules/js-yaml/lib/type/set.js
|
|
var require_set = __commonJS({
|
|
"node_modules/js-yaml/lib/type/set.js"(exports, module) {
|
|
"use strict";
|
|
var Type = require_type();
|
|
var _hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
function resolveYamlSet(data) {
|
|
if (data === null)
|
|
return true;
|
|
var key, object = data;
|
|
for (key in object) {
|
|
if (_hasOwnProperty.call(object, key)) {
|
|
if (object[key] !== null)
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
function constructYamlSet(data) {
|
|
return data !== null ? data : {};
|
|
}
|
|
module.exports = new Type("tag:yaml.org,2002:set", {
|
|
kind: "mapping",
|
|
resolve: resolveYamlSet,
|
|
construct: constructYamlSet
|
|
});
|
|
}
|
|
});
|
|
|
|
// node_modules/js-yaml/lib/schema/default.js
|
|
var require_default = __commonJS({
|
|
"node_modules/js-yaml/lib/schema/default.js"(exports, module) {
|
|
"use strict";
|
|
module.exports = require_core().extend({
|
|
implicit: [
|
|
require_timestamp(),
|
|
require_merge()
|
|
],
|
|
explicit: [
|
|
require_binary(),
|
|
require_omap(),
|
|
require_pairs(),
|
|
require_set()
|
|
]
|
|
});
|
|
}
|
|
});
|
|
|
|
// node_modules/js-yaml/lib/loader.js
|
|
var require_loader = __commonJS({
|
|
"node_modules/js-yaml/lib/loader.js"(exports, module) {
|
|
"use strict";
|
|
var common = require_common();
|
|
var YAMLException = require_exception();
|
|
var makeSnippet = require_snippet();
|
|
var DEFAULT_SCHEMA = require_default();
|
|
var _hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
var CONTEXT_FLOW_IN = 1;
|
|
var CONTEXT_FLOW_OUT = 2;
|
|
var CONTEXT_BLOCK_IN = 3;
|
|
var CONTEXT_BLOCK_OUT = 4;
|
|
var CHOMPING_CLIP = 1;
|
|
var CHOMPING_STRIP = 2;
|
|
var CHOMPING_KEEP = 3;
|
|
var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;
|
|
var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/;
|
|
var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/;
|
|
var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i;
|
|
var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;
|
|
function _class(obj) {
|
|
return Object.prototype.toString.call(obj);
|
|
}
|
|
function is_EOL(c) {
|
|
return c === 10 || c === 13;
|
|
}
|
|
function is_WHITE_SPACE(c) {
|
|
return c === 9 || c === 32;
|
|
}
|
|
function is_WS_OR_EOL(c) {
|
|
return c === 9 || c === 32 || c === 10 || c === 13;
|
|
}
|
|
function is_FLOW_INDICATOR(c) {
|
|
return c === 44 || c === 91 || c === 93 || c === 123 || c === 125;
|
|
}
|
|
function fromHexCode(c) {
|
|
var lc;
|
|
if (48 <= c && c <= 57) {
|
|
return c - 48;
|
|
}
|
|
lc = c | 32;
|
|
if (97 <= lc && lc <= 102) {
|
|
return lc - 97 + 10;
|
|
}
|
|
return -1;
|
|
}
|
|
function escapedHexLen(c) {
|
|
if (c === 120) {
|
|
return 2;
|
|
}
|
|
if (c === 117) {
|
|
return 4;
|
|
}
|
|
if (c === 85) {
|
|
return 8;
|
|
}
|
|
return 0;
|
|
}
|
|
function fromDecimalCode(c) {
|
|
if (48 <= c && c <= 57) {
|
|
return c - 48;
|
|
}
|
|
return -1;
|
|
}
|
|
function simpleEscapeSequence(c) {
|
|
return c === 48 ? "\0" : c === 97 ? "\x07" : c === 98 ? "\b" : c === 116 ? " " : c === 9 ? " " : c === 110 ? "\n" : c === 118 ? "\v" : c === 102 ? "\f" : c === 114 ? "\r" : c === 101 ? "\x1B" : c === 32 ? " " : c === 34 ? '"' : c === 47 ? "/" : c === 92 ? "\\" : c === 78 ? "\x85" : c === 95 ? "\xA0" : c === 76 ? "\u2028" : c === 80 ? "\u2029" : "";
|
|
}
|
|
function charFromCodepoint(c) {
|
|
if (c <= 65535) {
|
|
return String.fromCharCode(c);
|
|
}
|
|
return String.fromCharCode(
|
|
(c - 65536 >> 10) + 55296,
|
|
(c - 65536 & 1023) + 56320
|
|
);
|
|
}
|
|
var simpleEscapeCheck = new Array(256);
|
|
var simpleEscapeMap = new Array(256);
|
|
for (i = 0; i < 256; i++) {
|
|
simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;
|
|
simpleEscapeMap[i] = simpleEscapeSequence(i);
|
|
}
|
|
var i;
|
|
function State(input, options) {
|
|
this.input = input;
|
|
this.filename = options["filename"] || null;
|
|
this.schema = options["schema"] || DEFAULT_SCHEMA;
|
|
this.onWarning = options["onWarning"] || null;
|
|
this.legacy = options["legacy"] || false;
|
|
this.json = options["json"] || false;
|
|
this.listener = options["listener"] || null;
|
|
this.implicitTypes = this.schema.compiledImplicit;
|
|
this.typeMap = this.schema.compiledTypeMap;
|
|
this.length = input.length;
|
|
this.position = 0;
|
|
this.line = 0;
|
|
this.lineStart = 0;
|
|
this.lineIndent = 0;
|
|
this.firstTabInLine = -1;
|
|
this.documents = [];
|
|
}
|
|
function generateError(state, message) {
|
|
var mark = {
|
|
name: state.filename,
|
|
buffer: state.input.slice(0, -1),
|
|
// omit trailing \0
|
|
position: state.position,
|
|
line: state.line,
|
|
column: state.position - state.lineStart
|
|
};
|
|
mark.snippet = makeSnippet(mark);
|
|
return new YAMLException(message, mark);
|
|
}
|
|
function throwError(state, message) {
|
|
throw generateError(state, message);
|
|
}
|
|
function throwWarning(state, message) {
|
|
if (state.onWarning) {
|
|
state.onWarning.call(null, generateError(state, message));
|
|
}
|
|
}
|
|
var directiveHandlers = {
|
|
YAML: function handleYamlDirective(state, name, args) {
|
|
var match, major, minor;
|
|
if (state.version !== null) {
|
|
throwError(state, "duplication of %YAML directive");
|
|
}
|
|
if (args.length !== 1) {
|
|
throwError(state, "YAML directive accepts exactly one argument");
|
|
}
|
|
match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]);
|
|
if (match === null) {
|
|
throwError(state, "ill-formed argument of the YAML directive");
|
|
}
|
|
major = parseInt(match[1], 10);
|
|
minor = parseInt(match[2], 10);
|
|
if (major !== 1) {
|
|
throwError(state, "unacceptable YAML version of the document");
|
|
}
|
|
state.version = args[0];
|
|
state.checkLineBreaks = minor < 2;
|
|
if (minor !== 1 && minor !== 2) {
|
|
throwWarning(state, "unsupported YAML version of the document");
|
|
}
|
|
},
|
|
TAG: function handleTagDirective(state, name, args) {
|
|
var handle, prefix;
|
|
if (args.length !== 2) {
|
|
throwError(state, "TAG directive accepts exactly two arguments");
|
|
}
|
|
handle = args[0];
|
|
prefix = args[1];
|
|
if (!PATTERN_TAG_HANDLE.test(handle)) {
|
|
throwError(state, "ill-formed tag handle (first argument) of the TAG directive");
|
|
}
|
|
if (_hasOwnProperty.call(state.tagMap, handle)) {
|
|
throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle');
|
|
}
|
|
if (!PATTERN_TAG_URI.test(prefix)) {
|
|
throwError(state, "ill-formed tag prefix (second argument) of the TAG directive");
|
|
}
|
|
try {
|
|
prefix = decodeURIComponent(prefix);
|
|
} catch (err) {
|
|
throwError(state, "tag prefix is malformed: " + prefix);
|
|
}
|
|
state.tagMap[handle] = prefix;
|
|
}
|
|
};
|
|
function captureSegment(state, start, end, checkJson) {
|
|
var _position, _length, _character, _result;
|
|
if (start < end) {
|
|
_result = state.input.slice(start, end);
|
|
if (checkJson) {
|
|
for (_position = 0, _length = _result.length; _position < _length; _position += 1) {
|
|
_character = _result.charCodeAt(_position);
|
|
if (!(_character === 9 || 32 <= _character && _character <= 1114111)) {
|
|
throwError(state, "expected valid JSON character");
|
|
}
|
|
}
|
|
} else if (PATTERN_NON_PRINTABLE.test(_result)) {
|
|
throwError(state, "the stream contains non-printable characters");
|
|
}
|
|
state.result += _result;
|
|
}
|
|
}
|
|
function mergeMappings(state, destination, source, overridableKeys) {
|
|
var sourceKeys, key, index, quantity;
|
|
if (!common.isObject(source)) {
|
|
throwError(state, "cannot merge mappings; the provided source object is unacceptable");
|
|
}
|
|
sourceKeys = Object.keys(source);
|
|
for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {
|
|
key = sourceKeys[index];
|
|
if (!_hasOwnProperty.call(destination, key)) {
|
|
destination[key] = source[key];
|
|
overridableKeys[key] = true;
|
|
}
|
|
}
|
|
}
|
|
function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startLineStart, startPos) {
|
|
var index, quantity;
|
|
if (Array.isArray(keyNode)) {
|
|
keyNode = Array.prototype.slice.call(keyNode);
|
|
for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {
|
|
if (Array.isArray(keyNode[index])) {
|
|
throwError(state, "nested arrays are not supported inside keys");
|
|
}
|
|
if (typeof keyNode === "object" && _class(keyNode[index]) === "[object Object]") {
|
|
keyNode[index] = "[object Object]";
|
|
}
|
|
}
|
|
}
|
|
if (typeof keyNode === "object" && _class(keyNode) === "[object Object]") {
|
|
keyNode = "[object Object]";
|
|
}
|
|
keyNode = String(keyNode);
|
|
if (_result === null) {
|
|
_result = {};
|
|
}
|
|
if (keyTag === "tag:yaml.org,2002:merge") {
|
|
if (Array.isArray(valueNode)) {
|
|
for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {
|
|
mergeMappings(state, _result, valueNode[index], overridableKeys);
|
|
}
|
|
} else {
|
|
mergeMappings(state, _result, valueNode, overridableKeys);
|
|
}
|
|
} else {
|
|
if (!state.json && !_hasOwnProperty.call(overridableKeys, keyNode) && _hasOwnProperty.call(_result, keyNode)) {
|
|
state.line = startLine || state.line;
|
|
state.lineStart = startLineStart || state.lineStart;
|
|
state.position = startPos || state.position;
|
|
throwError(state, "duplicated mapping key");
|
|
}
|
|
if (keyNode === "__proto__") {
|
|
Object.defineProperty(_result, keyNode, {
|
|
configurable: true,
|
|
enumerable: true,
|
|
writable: true,
|
|
value: valueNode
|
|
});
|
|
} else {
|
|
_result[keyNode] = valueNode;
|
|
}
|
|
delete overridableKeys[keyNode];
|
|
}
|
|
return _result;
|
|
}
|
|
function readLineBreak(state) {
|
|
var ch;
|
|
ch = state.input.charCodeAt(state.position);
|
|
if (ch === 10) {
|
|
state.position++;
|
|
} else if (ch === 13) {
|
|
state.position++;
|
|
if (state.input.charCodeAt(state.position) === 10) {
|
|
state.position++;
|
|
}
|
|
} else {
|
|
throwError(state, "a line break is expected");
|
|
}
|
|
state.line += 1;
|
|
state.lineStart = state.position;
|
|
state.firstTabInLine = -1;
|
|
}
|
|
function skipSeparationSpace(state, allowComments, checkIndent) {
|
|
var lineBreaks = 0, ch = state.input.charCodeAt(state.position);
|
|
while (ch !== 0) {
|
|
while (is_WHITE_SPACE(ch)) {
|
|
if (ch === 9 && state.firstTabInLine === -1) {
|
|
state.firstTabInLine = state.position;
|
|
}
|
|
ch = state.input.charCodeAt(++state.position);
|
|
}
|
|
if (allowComments && ch === 35) {
|
|
do {
|
|
ch = state.input.charCodeAt(++state.position);
|
|
} while (ch !== 10 && ch !== 13 && ch !== 0);
|
|
}
|
|
if (is_EOL(ch)) {
|
|
readLineBreak(state);
|
|
ch = state.input.charCodeAt(state.position);
|
|
lineBreaks++;
|
|
state.lineIndent = 0;
|
|
while (ch === 32) {
|
|
state.lineIndent++;
|
|
ch = state.input.charCodeAt(++state.position);
|
|
}
|
|
} else {
|
|
break;
|
|
}
|
|
}
|
|
if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {
|
|
throwWarning(state, "deficient indentation");
|
|
}
|
|
return lineBreaks;
|
|
}
|
|
function testDocumentSeparator(state) {
|
|
var _position = state.position, ch;
|
|
ch = state.input.charCodeAt(_position);
|
|
if ((ch === 45 || ch === 46) && ch === state.input.charCodeAt(_position + 1) && ch === state.input.charCodeAt(_position + 2)) {
|
|
_position += 3;
|
|
ch = state.input.charCodeAt(_position);
|
|
if (ch === 0 || is_WS_OR_EOL(ch)) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
function writeFoldedLines(state, count) {
|
|
if (count === 1) {
|
|
state.result += " ";
|
|
} else if (count > 1) {
|
|
state.result += common.repeat("\n", count - 1);
|
|
}
|
|
}
|
|
function readPlainScalar(state, nodeIndent, withinFlowCollection) {
|
|
var preceding, following, captureStart, captureEnd, hasPendingContent, _line, _lineStart, _lineIndent, _kind = state.kind, _result = state.result, ch;
|
|
ch = state.input.charCodeAt(state.position);
|
|
if (is_WS_OR_EOL(ch) || is_FLOW_INDICATOR(ch) || ch === 35 || ch === 38 || ch === 42 || ch === 33 || ch === 124 || ch === 62 || ch === 39 || ch === 34 || ch === 37 || ch === 64 || ch === 96) {
|
|
return false;
|
|
}
|
|
if (ch === 63 || ch === 45) {
|
|
following = state.input.charCodeAt(state.position + 1);
|
|
if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {
|
|
return false;
|
|
}
|
|
}
|
|
state.kind = "scalar";
|
|
state.result = "";
|
|
captureStart = captureEnd = state.position;
|
|
hasPendingContent = false;
|
|
while (ch !== 0) {
|
|
if (ch === 58) {
|
|
following = state.input.charCodeAt(state.position + 1);
|
|
if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {
|
|
break;
|
|
}
|
|
} else if (ch === 35) {
|
|
preceding = state.input.charCodeAt(state.position - 1);
|
|
if (is_WS_OR_EOL(preceding)) {
|
|
break;
|
|
}
|
|
} else if (state.position === state.lineStart && testDocumentSeparator(state) || withinFlowCollection && is_FLOW_INDICATOR(ch)) {
|
|
break;
|
|
} else if (is_EOL(ch)) {
|
|
_line = state.line;
|
|
_lineStart = state.lineStart;
|
|
_lineIndent = state.lineIndent;
|
|
skipSeparationSpace(state, false, -1);
|
|
if (state.lineIndent >= nodeIndent) {
|
|
hasPendingContent = true;
|
|
ch = state.input.charCodeAt(state.position);
|
|
continue;
|
|
} else {
|
|
state.position = captureEnd;
|
|
state.line = _line;
|
|
state.lineStart = _lineStart;
|
|
state.lineIndent = _lineIndent;
|
|
break;
|
|
}
|
|
}
|
|
if (hasPendingContent) {
|
|
captureSegment(state, captureStart, captureEnd, false);
|
|
writeFoldedLines(state, state.line - _line);
|
|
captureStart = captureEnd = state.position;
|
|
hasPendingContent = false;
|
|
}
|
|
if (!is_WHITE_SPACE(ch)) {
|
|
captureEnd = state.position + 1;
|
|
}
|
|
ch = state.input.charCodeAt(++state.position);
|
|
}
|
|
captureSegment(state, captureStart, captureEnd, false);
|
|
if (state.result) {
|
|
return true;
|
|
}
|
|
state.kind = _kind;
|
|
state.result = _result;
|
|
return false;
|
|
}
|
|
function readSingleQuotedScalar(state, nodeIndent) {
|
|
var ch, captureStart, captureEnd;
|
|
ch = state.input.charCodeAt(state.position);
|
|
if (ch !== 39) {
|
|
return false;
|
|
}
|
|
state.kind = "scalar";
|
|
state.result = "";
|
|
state.position++;
|
|
captureStart = captureEnd = state.position;
|
|
while ((ch = state.input.charCodeAt(state.position)) !== 0) {
|
|
if (ch === 39) {
|
|
captureSegment(state, captureStart, state.position, true);
|
|
ch = state.input.charCodeAt(++state.position);
|
|
if (ch === 39) {
|
|
captureStart = state.position;
|
|
state.position++;
|
|
captureEnd = state.position;
|
|
} else {
|
|
return true;
|
|
}
|
|
} else if (is_EOL(ch)) {
|
|
captureSegment(state, captureStart, captureEnd, true);
|
|
writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));
|
|
captureStart = captureEnd = state.position;
|
|
} else if (state.position === state.lineStart && testDocumentSeparator(state)) {
|
|
throwError(state, "unexpected end of the document within a single quoted scalar");
|
|
} else {
|
|
state.position++;
|
|
captureEnd = state.position;
|
|
}
|
|
}
|
|
throwError(state, "unexpected end of the stream within a single quoted scalar");
|
|
}
|
|
function readDoubleQuotedScalar(state, nodeIndent) {
|
|
var captureStart, captureEnd, hexLength, hexResult, tmp, ch;
|
|
ch = state.input.charCodeAt(state.position);
|
|
if (ch !== 34) {
|
|
return false;
|
|
}
|
|
state.kind = "scalar";
|
|
state.result = "";
|
|
state.position++;
|
|
captureStart = captureEnd = state.position;
|
|
while ((ch = state.input.charCodeAt(state.position)) !== 0) {
|
|
if (ch === 34) {
|
|
captureSegment(state, captureStart, state.position, true);
|
|
state.position++;
|
|
return true;
|
|
} else if (ch === 92) {
|
|
captureSegment(state, captureStart, state.position, true);
|
|
ch = state.input.charCodeAt(++state.position);
|
|
if (is_EOL(ch)) {
|
|
skipSeparationSpace(state, false, nodeIndent);
|
|
} else if (ch < 256 && simpleEscapeCheck[ch]) {
|
|
state.result += simpleEscapeMap[ch];
|
|
state.position++;
|
|
} else if ((tmp = escapedHexLen(ch)) > 0) {
|
|
hexLength = tmp;
|
|
hexResult = 0;
|
|
for (; hexLength > 0; hexLength--) {
|
|
ch = state.input.charCodeAt(++state.position);
|
|
if ((tmp = fromHexCode(ch)) >= 0) {
|
|
hexResult = (hexResult << 4) + tmp;
|
|
} else {
|
|
throwError(state, "expected hexadecimal character");
|
|
}
|
|
}
|
|
state.result += charFromCodepoint(hexResult);
|
|
state.position++;
|
|
} else {
|
|
throwError(state, "unknown escape sequence");
|
|
}
|
|
captureStart = captureEnd = state.position;
|
|
} else if (is_EOL(ch)) {
|
|
captureSegment(state, captureStart, captureEnd, true);
|
|
writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));
|
|
captureStart = captureEnd = state.position;
|
|
} else if (state.position === state.lineStart && testDocumentSeparator(state)) {
|
|
throwError(state, "unexpected end of the document within a double quoted scalar");
|
|
} else {
|
|
state.position++;
|
|
captureEnd = state.position;
|
|
}
|
|
}
|
|
throwError(state, "unexpected end of the stream within a double quoted scalar");
|
|
}
|
|
function readFlowCollection(state, nodeIndent) {
|
|
var readNext = true, _line, _lineStart, _pos, _tag = state.tag, _result, _anchor = state.anchor, following, terminator, isPair, isExplicitPair, isMapping, overridableKeys = /* @__PURE__ */ Object.create(null), keyNode, keyTag, valueNode, ch;
|
|
ch = state.input.charCodeAt(state.position);
|
|
if (ch === 91) {
|
|
terminator = 93;
|
|
isMapping = false;
|
|
_result = [];
|
|
} else if (ch === 123) {
|
|
terminator = 125;
|
|
isMapping = true;
|
|
_result = {};
|
|
} else {
|
|
return false;
|
|
}
|
|
if (state.anchor !== null) {
|
|
state.anchorMap[state.anchor] = _result;
|
|
}
|
|
ch = state.input.charCodeAt(++state.position);
|
|
while (ch !== 0) {
|
|
skipSeparationSpace(state, true, nodeIndent);
|
|
ch = state.input.charCodeAt(state.position);
|
|
if (ch === terminator) {
|
|
state.position++;
|
|
state.tag = _tag;
|
|
state.anchor = _anchor;
|
|
state.kind = isMapping ? "mapping" : "sequence";
|
|
state.result = _result;
|
|
return true;
|
|
} else if (!readNext) {
|
|
throwError(state, "missed comma between flow collection entries");
|
|
} else if (ch === 44) {
|
|
throwError(state, "expected the node content, but found ','");
|
|
}
|
|
keyTag = keyNode = valueNode = null;
|
|
isPair = isExplicitPair = false;
|
|
if (ch === 63) {
|
|
following = state.input.charCodeAt(state.position + 1);
|
|
if (is_WS_OR_EOL(following)) {
|
|
isPair = isExplicitPair = true;
|
|
state.position++;
|
|
skipSeparationSpace(state, true, nodeIndent);
|
|
}
|
|
}
|
|
_line = state.line;
|
|
_lineStart = state.lineStart;
|
|
_pos = state.position;
|
|
composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);
|
|
keyTag = state.tag;
|
|
keyNode = state.result;
|
|
skipSeparationSpace(state, true, nodeIndent);
|
|
ch = state.input.charCodeAt(state.position);
|
|
if ((isExplicitPair || state.line === _line) && ch === 58) {
|
|
isPair = true;
|
|
ch = state.input.charCodeAt(++state.position);
|
|
skipSeparationSpace(state, true, nodeIndent);
|
|
composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);
|
|
valueNode = state.result;
|
|
}
|
|
if (isMapping) {
|
|
storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);
|
|
} else if (isPair) {
|
|
_result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));
|
|
} else {
|
|
_result.push(keyNode);
|
|
}
|
|
skipSeparationSpace(state, true, nodeIndent);
|
|
ch = state.input.charCodeAt(state.position);
|
|
if (ch === 44) {
|
|
readNext = true;
|
|
ch = state.input.charCodeAt(++state.position);
|
|
} else {
|
|
readNext = false;
|
|
}
|
|
}
|
|
throwError(state, "unexpected end of the stream within a flow collection");
|
|
}
|
|
function readBlockScalar(state, nodeIndent) {
|
|
var captureStart, folding, chomping = CHOMPING_CLIP, didReadContent = false, detectedIndent = false, textIndent = nodeIndent, emptyLines = 0, atMoreIndented = false, tmp, ch;
|
|
ch = state.input.charCodeAt(state.position);
|
|
if (ch === 124) {
|
|
folding = false;
|
|
} else if (ch === 62) {
|
|
folding = true;
|
|
} else {
|
|
return false;
|
|
}
|
|
state.kind = "scalar";
|
|
state.result = "";
|
|
while (ch !== 0) {
|
|
ch = state.input.charCodeAt(++state.position);
|
|
if (ch === 43 || ch === 45) {
|
|
if (CHOMPING_CLIP === chomping) {
|
|
chomping = ch === 43 ? CHOMPING_KEEP : CHOMPING_STRIP;
|
|
} else {
|
|
throwError(state, "repeat of a chomping mode identifier");
|
|
}
|
|
} else if ((tmp = fromDecimalCode(ch)) >= 0) {
|
|
if (tmp === 0) {
|
|
throwError(state, "bad explicit indentation width of a block scalar; it cannot be less than one");
|
|
} else if (!detectedIndent) {
|
|
textIndent = nodeIndent + tmp - 1;
|
|
detectedIndent = true;
|
|
} else {
|
|
throwError(state, "repeat of an indentation width identifier");
|
|
}
|
|
} else {
|
|
break;
|
|
}
|
|
}
|
|
if (is_WHITE_SPACE(ch)) {
|
|
do {
|
|
ch = state.input.charCodeAt(++state.position);
|
|
} while (is_WHITE_SPACE(ch));
|
|
if (ch === 35) {
|
|
do {
|
|
ch = state.input.charCodeAt(++state.position);
|
|
} while (!is_EOL(ch) && ch !== 0);
|
|
}
|
|
}
|
|
while (ch !== 0) {
|
|
readLineBreak(state);
|
|
state.lineIndent = 0;
|
|
ch = state.input.charCodeAt(state.position);
|
|
while ((!detectedIndent || state.lineIndent < textIndent) && ch === 32) {
|
|
state.lineIndent++;
|
|
ch = state.input.charCodeAt(++state.position);
|
|
}
|
|
if (!detectedIndent && state.lineIndent > textIndent) {
|
|
textIndent = state.lineIndent;
|
|
}
|
|
if (is_EOL(ch)) {
|
|
emptyLines++;
|
|
continue;
|
|
}
|
|
if (state.lineIndent < textIndent) {
|
|
if (chomping === CHOMPING_KEEP) {
|
|
state.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines);
|
|
} else if (chomping === CHOMPING_CLIP) {
|
|
if (didReadContent) {
|
|
state.result += "\n";
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
if (folding) {
|
|
if (is_WHITE_SPACE(ch)) {
|
|
atMoreIndented = true;
|
|
state.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines);
|
|
} else if (atMoreIndented) {
|
|
atMoreIndented = false;
|
|
state.result += common.repeat("\n", emptyLines + 1);
|
|
} else if (emptyLines === 0) {
|
|
if (didReadContent) {
|
|
state.result += " ";
|
|
}
|
|
} else {
|
|
state.result += common.repeat("\n", emptyLines);
|
|
}
|
|
} else {
|
|
state.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines);
|
|
}
|
|
didReadContent = true;
|
|
detectedIndent = true;
|
|
emptyLines = 0;
|
|
captureStart = state.position;
|
|
while (!is_EOL(ch) && ch !== 0) {
|
|
ch = state.input.charCodeAt(++state.position);
|
|
}
|
|
captureSegment(state, captureStart, state.position, false);
|
|
}
|
|
return true;
|
|
}
|
|
function readBlockSequence(state, nodeIndent) {
|
|
var _line, _tag = state.tag, _anchor = state.anchor, _result = [], following, detected = false, ch;
|
|
if (state.firstTabInLine !== -1)
|
|
return false;
|
|
if (state.anchor !== null) {
|
|
state.anchorMap[state.anchor] = _result;
|
|
}
|
|
ch = state.input.charCodeAt(state.position);
|
|
while (ch !== 0) {
|
|
if (state.firstTabInLine !== -1) {
|
|
state.position = state.firstTabInLine;
|
|
throwError(state, "tab characters must not be used in indentation");
|
|
}
|
|
if (ch !== 45) {
|
|
break;
|
|
}
|
|
following = state.input.charCodeAt(state.position + 1);
|
|
if (!is_WS_OR_EOL(following)) {
|
|
break;
|
|
}
|
|
detected = true;
|
|
state.position++;
|
|
if (skipSeparationSpace(state, true, -1)) {
|
|
if (state.lineIndent <= nodeIndent) {
|
|
_result.push(null);
|
|
ch = state.input.charCodeAt(state.position);
|
|
continue;
|
|
}
|
|
}
|
|
_line = state.line;
|
|
composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);
|
|
_result.push(state.result);
|
|
skipSeparationSpace(state, true, -1);
|
|
ch = state.input.charCodeAt(state.position);
|
|
if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) {
|
|
throwError(state, "bad indentation of a sequence entry");
|
|
} else if (state.lineIndent < nodeIndent) {
|
|
break;
|
|
}
|
|
}
|
|
if (detected) {
|
|
state.tag = _tag;
|
|
state.anchor = _anchor;
|
|
state.kind = "sequence";
|
|
state.result = _result;
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
function readBlockMapping(state, nodeIndent, flowIndent) {
|
|
var following, allowCompact, _line, _keyLine, _keyLineStart, _keyPos, _tag = state.tag, _anchor = state.anchor, _result = {}, overridableKeys = /* @__PURE__ */ Object.create(null), keyTag = null, keyNode = null, valueNode = null, atExplicitKey = false, detected = false, ch;
|
|
if (state.firstTabInLine !== -1)
|
|
return false;
|
|
if (state.anchor !== null) {
|
|
state.anchorMap[state.anchor] = _result;
|
|
}
|
|
ch = state.input.charCodeAt(state.position);
|
|
while (ch !== 0) {
|
|
if (!atExplicitKey && state.firstTabInLine !== -1) {
|
|
state.position = state.firstTabInLine;
|
|
throwError(state, "tab characters must not be used in indentation");
|
|
}
|
|
following = state.input.charCodeAt(state.position + 1);
|
|
_line = state.line;
|
|
if ((ch === 63 || ch === 58) && is_WS_OR_EOL(following)) {
|
|
if (ch === 63) {
|
|
if (atExplicitKey) {
|
|
storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
|
|
keyTag = keyNode = valueNode = null;
|
|
}
|
|
detected = true;
|
|
atExplicitKey = true;
|
|
allowCompact = true;
|
|
} else if (atExplicitKey) {
|
|
atExplicitKey = false;
|
|
allowCompact = true;
|
|
} else {
|
|
throwError(state, "incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line");
|
|
}
|
|
state.position += 1;
|
|
ch = following;
|
|
} else {
|
|
_keyLine = state.line;
|
|
_keyLineStart = state.lineStart;
|
|
_keyPos = state.position;
|
|
if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {
|
|
break;
|
|
}
|
|
if (state.line === _line) {
|
|
ch = state.input.charCodeAt(state.position);
|
|
while (is_WHITE_SPACE(ch)) {
|
|
ch = state.input.charCodeAt(++state.position);
|
|
}
|
|
if (ch === 58) {
|
|
ch = state.input.charCodeAt(++state.position);
|
|
if (!is_WS_OR_EOL(ch)) {
|
|
throwError(state, "a whitespace character is expected after the key-value separator within a block mapping");
|
|
}
|
|
if (atExplicitKey) {
|
|
storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
|
|
keyTag = keyNode = valueNode = null;
|
|
}
|
|
detected = true;
|
|
atExplicitKey = false;
|
|
allowCompact = false;
|
|
keyTag = state.tag;
|
|
keyNode = state.result;
|
|
} else if (detected) {
|
|
throwError(state, "can not read an implicit mapping pair; a colon is missed");
|
|
} else {
|
|
state.tag = _tag;
|
|
state.anchor = _anchor;
|
|
return true;
|
|
}
|
|
} else if (detected) {
|
|
throwError(state, "can not read a block mapping entry; a multiline key may not be an implicit key");
|
|
} else {
|
|
state.tag = _tag;
|
|
state.anchor = _anchor;
|
|
return true;
|
|
}
|
|
}
|
|
if (state.line === _line || state.lineIndent > nodeIndent) {
|
|
if (atExplicitKey) {
|
|
_keyLine = state.line;
|
|
_keyLineStart = state.lineStart;
|
|
_keyPos = state.position;
|
|
}
|
|
if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {
|
|
if (atExplicitKey) {
|
|
keyNode = state.result;
|
|
} else {
|
|
valueNode = state.result;
|
|
}
|
|
}
|
|
if (!atExplicitKey) {
|
|
storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);
|
|
keyTag = keyNode = valueNode = null;
|
|
}
|
|
skipSeparationSpace(state, true, -1);
|
|
ch = state.input.charCodeAt(state.position);
|
|
}
|
|
if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) {
|
|
throwError(state, "bad indentation of a mapping entry");
|
|
} else if (state.lineIndent < nodeIndent) {
|
|
break;
|
|
}
|
|
}
|
|
if (atExplicitKey) {
|
|
storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
|
|
}
|
|
if (detected) {
|
|
state.tag = _tag;
|
|
state.anchor = _anchor;
|
|
state.kind = "mapping";
|
|
state.result = _result;
|
|
}
|
|
return detected;
|
|
}
|
|
function readTagProperty(state) {
|
|
var _position, isVerbatim = false, isNamed = false, tagHandle, tagName, ch;
|
|
ch = state.input.charCodeAt(state.position);
|
|
if (ch !== 33)
|
|
return false;
|
|
if (state.tag !== null) {
|
|
throwError(state, "duplication of a tag property");
|
|
}
|
|
ch = state.input.charCodeAt(++state.position);
|
|
if (ch === 60) {
|
|
isVerbatim = true;
|
|
ch = state.input.charCodeAt(++state.position);
|
|
} else if (ch === 33) {
|
|
isNamed = true;
|
|
tagHandle = "!!";
|
|
ch = state.input.charCodeAt(++state.position);
|
|
} else {
|
|
tagHandle = "!";
|
|
}
|
|
_position = state.position;
|
|
if (isVerbatim) {
|
|
do {
|
|
ch = state.input.charCodeAt(++state.position);
|
|
} while (ch !== 0 && ch !== 62);
|
|
if (state.position < state.length) {
|
|
tagName = state.input.slice(_position, state.position);
|
|
ch = state.input.charCodeAt(++state.position);
|
|
} else {
|
|
throwError(state, "unexpected end of the stream within a verbatim tag");
|
|
}
|
|
} else {
|
|
while (ch !== 0 && !is_WS_OR_EOL(ch)) {
|
|
if (ch === 33) {
|
|
if (!isNamed) {
|
|
tagHandle = state.input.slice(_position - 1, state.position + 1);
|
|
if (!PATTERN_TAG_HANDLE.test(tagHandle)) {
|
|
throwError(state, "named tag handle cannot contain such characters");
|
|
}
|
|
isNamed = true;
|
|
_position = state.position + 1;
|
|
} else {
|
|
throwError(state, "tag suffix cannot contain exclamation marks");
|
|
}
|
|
}
|
|
ch = state.input.charCodeAt(++state.position);
|
|
}
|
|
tagName = state.input.slice(_position, state.position);
|
|
if (PATTERN_FLOW_INDICATORS.test(tagName)) {
|
|
throwError(state, "tag suffix cannot contain flow indicator characters");
|
|
}
|
|
}
|
|
if (tagName && !PATTERN_TAG_URI.test(tagName)) {
|
|
throwError(state, "tag name cannot contain such characters: " + tagName);
|
|
}
|
|
try {
|
|
tagName = decodeURIComponent(tagName);
|
|
} catch (err) {
|
|
throwError(state, "tag name is malformed: " + tagName);
|
|
}
|
|
if (isVerbatim) {
|
|
state.tag = tagName;
|
|
} else if (_hasOwnProperty.call(state.tagMap, tagHandle)) {
|
|
state.tag = state.tagMap[tagHandle] + tagName;
|
|
} else if (tagHandle === "!") {
|
|
state.tag = "!" + tagName;
|
|
} else if (tagHandle === "!!") {
|
|
state.tag = "tag:yaml.org,2002:" + tagName;
|
|
} else {
|
|
throwError(state, 'undeclared tag handle "' + tagHandle + '"');
|
|
}
|
|
return true;
|
|
}
|
|
function readAnchorProperty(state) {
|
|
var _position, ch;
|
|
ch = state.input.charCodeAt(state.position);
|
|
if (ch !== 38)
|
|
return false;
|
|
if (state.anchor !== null) {
|
|
throwError(state, "duplication of an anchor property");
|
|
}
|
|
ch = state.input.charCodeAt(++state.position);
|
|
_position = state.position;
|
|
while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {
|
|
ch = state.input.charCodeAt(++state.position);
|
|
}
|
|
if (state.position === _position) {
|
|
throwError(state, "name of an anchor node must contain at least one character");
|
|
}
|
|
state.anchor = state.input.slice(_position, state.position);
|
|
return true;
|
|
}
|
|
function readAlias(state) {
|
|
var _position, alias, ch;
|
|
ch = state.input.charCodeAt(state.position);
|
|
if (ch !== 42)
|
|
return false;
|
|
ch = state.input.charCodeAt(++state.position);
|
|
_position = state.position;
|
|
while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {
|
|
ch = state.input.charCodeAt(++state.position);
|
|
}
|
|
if (state.position === _position) {
|
|
throwError(state, "name of an alias node must contain at least one character");
|
|
}
|
|
alias = state.input.slice(_position, state.position);
|
|
if (!_hasOwnProperty.call(state.anchorMap, alias)) {
|
|
throwError(state, 'unidentified alias "' + alias + '"');
|
|
}
|
|
state.result = state.anchorMap[alias];
|
|
skipSeparationSpace(state, true, -1);
|
|
return true;
|
|
}
|
|
function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {
|
|
var allowBlockStyles, allowBlockScalars, allowBlockCollections, indentStatus = 1, atNewLine = false, hasContent = false, typeIndex, typeQuantity, typeList, type, flowIndent, blockIndent;
|
|
if (state.listener !== null) {
|
|
state.listener("open", state);
|
|
}
|
|
state.tag = null;
|
|
state.anchor = null;
|
|
state.kind = null;
|
|
state.result = null;
|
|
allowBlockStyles = allowBlockScalars = allowBlockCollections = CONTEXT_BLOCK_OUT === nodeContext || CONTEXT_BLOCK_IN === nodeContext;
|
|
if (allowToSeek) {
|
|
if (skipSeparationSpace(state, true, -1)) {
|
|
atNewLine = true;
|
|
if (state.lineIndent > parentIndent) {
|
|
indentStatus = 1;
|
|
} else if (state.lineIndent === parentIndent) {
|
|
indentStatus = 0;
|
|
} else if (state.lineIndent < parentIndent) {
|
|
indentStatus = -1;
|
|
}
|
|
}
|
|
}
|
|
if (indentStatus === 1) {
|
|
while (readTagProperty(state) || readAnchorProperty(state)) {
|
|
if (skipSeparationSpace(state, true, -1)) {
|
|
atNewLine = true;
|
|
allowBlockCollections = allowBlockStyles;
|
|
if (state.lineIndent > parentIndent) {
|
|
indentStatus = 1;
|
|
} else if (state.lineIndent === parentIndent) {
|
|
indentStatus = 0;
|
|
} else if (state.lineIndent < parentIndent) {
|
|
indentStatus = -1;
|
|
}
|
|
} else {
|
|
allowBlockCollections = false;
|
|
}
|
|
}
|
|
}
|
|
if (allowBlockCollections) {
|
|
allowBlockCollections = atNewLine || allowCompact;
|
|
}
|
|
if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {
|
|
if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {
|
|
flowIndent = parentIndent;
|
|
} else {
|
|
flowIndent = parentIndent + 1;
|
|
}
|
|
blockIndent = state.position - state.lineStart;
|
|
if (indentStatus === 1) {
|
|
if (allowBlockCollections && (readBlockSequence(state, blockIndent) || readBlockMapping(state, blockIndent, flowIndent)) || readFlowCollection(state, flowIndent)) {
|
|
hasContent = true;
|
|
} else {
|
|
if (allowBlockScalars && readBlockScalar(state, flowIndent) || readSingleQuotedScalar(state, flowIndent) || readDoubleQuotedScalar(state, flowIndent)) {
|
|
hasContent = true;
|
|
} else if (readAlias(state)) {
|
|
hasContent = true;
|
|
if (state.tag !== null || state.anchor !== null) {
|
|
throwError(state, "alias node should not have any properties");
|
|
}
|
|
} else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {
|
|
hasContent = true;
|
|
if (state.tag === null) {
|
|
state.tag = "?";
|
|
}
|
|
}
|
|
if (state.anchor !== null) {
|
|
state.anchorMap[state.anchor] = state.result;
|
|
}
|
|
}
|
|
} else if (indentStatus === 0) {
|
|
hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);
|
|
}
|
|
}
|
|
if (state.tag === null) {
|
|
if (state.anchor !== null) {
|
|
state.anchorMap[state.anchor] = state.result;
|
|
}
|
|
} else if (state.tag === "?") {
|
|
if (state.result !== null && state.kind !== "scalar") {
|
|
throwError(state, 'unacceptable node kind for !<?> tag; it should be "scalar", not "' + state.kind + '"');
|
|
}
|
|
for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {
|
|
type = state.implicitTypes[typeIndex];
|
|
if (type.resolve(state.result)) {
|
|
state.result = type.construct(state.result);
|
|
state.tag = type.tag;
|
|
if (state.anchor !== null) {
|
|
state.anchorMap[state.anchor] = state.result;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
} else if (state.tag !== "!") {
|
|
if (_hasOwnProperty.call(state.typeMap[state.kind || "fallback"], state.tag)) {
|
|
type = state.typeMap[state.kind || "fallback"][state.tag];
|
|
} else {
|
|
type = null;
|
|
typeList = state.typeMap.multi[state.kind || "fallback"];
|
|
for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {
|
|
if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {
|
|
type = typeList[typeIndex];
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
if (!type) {
|
|
throwError(state, "unknown tag !<" + state.tag + ">");
|
|
}
|
|
if (state.result !== null && type.kind !== state.kind) {
|
|
throwError(state, "unacceptable node kind for !<" + state.tag + '> tag; it should be "' + type.kind + '", not "' + state.kind + '"');
|
|
}
|
|
if (!type.resolve(state.result, state.tag)) {
|
|
throwError(state, "cannot resolve a node with !<" + state.tag + "> explicit tag");
|
|
} else {
|
|
state.result = type.construct(state.result, state.tag);
|
|
if (state.anchor !== null) {
|
|
state.anchorMap[state.anchor] = state.result;
|
|
}
|
|
}
|
|
}
|
|
if (state.listener !== null) {
|
|
state.listener("close", state);
|
|
}
|
|
return state.tag !== null || state.anchor !== null || hasContent;
|
|
}
|
|
function readDocument(state) {
|
|
var documentStart = state.position, _position, directiveName, directiveArgs, hasDirectives = false, ch;
|
|
state.version = null;
|
|
state.checkLineBreaks = state.legacy;
|
|
state.tagMap = /* @__PURE__ */ Object.create(null);
|
|
state.anchorMap = /* @__PURE__ */ Object.create(null);
|
|
while ((ch = state.input.charCodeAt(state.position)) !== 0) {
|
|
skipSeparationSpace(state, true, -1);
|
|
ch = state.input.charCodeAt(state.position);
|
|
if (state.lineIndent > 0 || ch !== 37) {
|
|
break;
|
|
}
|
|
hasDirectives = true;
|
|
ch = state.input.charCodeAt(++state.position);
|
|
_position = state.position;
|
|
while (ch !== 0 && !is_WS_OR_EOL(ch)) {
|
|
ch = state.input.charCodeAt(++state.position);
|
|
}
|
|
directiveName = state.input.slice(_position, state.position);
|
|
directiveArgs = [];
|
|
if (directiveName.length < 1) {
|
|
throwError(state, "directive name must not be less than one character in length");
|
|
}
|
|
while (ch !== 0) {
|
|
while (is_WHITE_SPACE(ch)) {
|
|
ch = state.input.charCodeAt(++state.position);
|
|
}
|
|
if (ch === 35) {
|
|
do {
|
|
ch = state.input.charCodeAt(++state.position);
|
|
} while (ch !== 0 && !is_EOL(ch));
|
|
break;
|
|
}
|
|
if (is_EOL(ch))
|
|
break;
|
|
_position = state.position;
|
|
while (ch !== 0 && !is_WS_OR_EOL(ch)) {
|
|
ch = state.input.charCodeAt(++state.position);
|
|
}
|
|
directiveArgs.push(state.input.slice(_position, state.position));
|
|
}
|
|
if (ch !== 0)
|
|
readLineBreak(state);
|
|
if (_hasOwnProperty.call(directiveHandlers, directiveName)) {
|
|
directiveHandlers[directiveName](state, directiveName, directiveArgs);
|
|
} else {
|
|
throwWarning(state, 'unknown document directive "' + directiveName + '"');
|
|
}
|
|
}
|
|
skipSeparationSpace(state, true, -1);
|
|
if (state.lineIndent === 0 && state.input.charCodeAt(state.position) === 45 && state.input.charCodeAt(state.position + 1) === 45 && state.input.charCodeAt(state.position + 2) === 45) {
|
|
state.position += 3;
|
|
skipSeparationSpace(state, true, -1);
|
|
} else if (hasDirectives) {
|
|
throwError(state, "directives end mark is expected");
|
|
}
|
|
composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);
|
|
skipSeparationSpace(state, true, -1);
|
|
if (state.checkLineBreaks && PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {
|
|
throwWarning(state, "non-ASCII line breaks are interpreted as content");
|
|
}
|
|
state.documents.push(state.result);
|
|
if (state.position === state.lineStart && testDocumentSeparator(state)) {
|
|
if (state.input.charCodeAt(state.position) === 46) {
|
|
state.position += 3;
|
|
skipSeparationSpace(state, true, -1);
|
|
}
|
|
return;
|
|
}
|
|
if (state.position < state.length - 1) {
|
|
throwError(state, "end of the stream or a document separator is expected");
|
|
} else {
|
|
return;
|
|
}
|
|
}
|
|
function loadDocuments(input, options) {
|
|
input = String(input);
|
|
options = options || {};
|
|
if (input.length !== 0) {
|
|
if (input.charCodeAt(input.length - 1) !== 10 && input.charCodeAt(input.length - 1) !== 13) {
|
|
input += "\n";
|
|
}
|
|
if (input.charCodeAt(0) === 65279) {
|
|
input = input.slice(1);
|
|
}
|
|
}
|
|
var state = new State(input, options);
|
|
var nullpos = input.indexOf("\0");
|
|
if (nullpos !== -1) {
|
|
state.position = nullpos;
|
|
throwError(state, "null byte is not allowed in input");
|
|
}
|
|
state.input += "\0";
|
|
while (state.input.charCodeAt(state.position) === 32) {
|
|
state.lineIndent += 1;
|
|
state.position += 1;
|
|
}
|
|
while (state.position < state.length - 1) {
|
|
readDocument(state);
|
|
}
|
|
return state.documents;
|
|
}
|
|
function loadAll(input, iterator, options) {
|
|
if (iterator !== null && typeof iterator === "object" && typeof options === "undefined") {
|
|
options = iterator;
|
|
iterator = null;
|
|
}
|
|
var documents = loadDocuments(input, options);
|
|
if (typeof iterator !== "function") {
|
|
return documents;
|
|
}
|
|
for (var index = 0, length = documents.length; index < length; index += 1) {
|
|
iterator(documents[index]);
|
|
}
|
|
}
|
|
function load(input, options) {
|
|
var documents = loadDocuments(input, options);
|
|
if (documents.length === 0) {
|
|
return void 0;
|
|
} else if (documents.length === 1) {
|
|
return documents[0];
|
|
}
|
|
throw new YAMLException("expected a single document in the stream, but found more");
|
|
}
|
|
module.exports.loadAll = loadAll;
|
|
module.exports.load = load;
|
|
}
|
|
});
|
|
|
|
// node_modules/js-yaml/lib/dumper.js
|
|
var require_dumper = __commonJS({
|
|
"node_modules/js-yaml/lib/dumper.js"(exports, module) {
|
|
"use strict";
|
|
var common = require_common();
|
|
var YAMLException = require_exception();
|
|
var DEFAULT_SCHEMA = require_default();
|
|
var _toString = Object.prototype.toString;
|
|
var _hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
var CHAR_BOM = 65279;
|
|
var CHAR_TAB = 9;
|
|
var CHAR_LINE_FEED = 10;
|
|
var CHAR_CARRIAGE_RETURN = 13;
|
|
var CHAR_SPACE = 32;
|
|
var CHAR_EXCLAMATION = 33;
|
|
var CHAR_DOUBLE_QUOTE = 34;
|
|
var CHAR_SHARP = 35;
|
|
var CHAR_PERCENT = 37;
|
|
var CHAR_AMPERSAND = 38;
|
|
var CHAR_SINGLE_QUOTE = 39;
|
|
var CHAR_ASTERISK = 42;
|
|
var CHAR_COMMA = 44;
|
|
var CHAR_MINUS = 45;
|
|
var CHAR_COLON = 58;
|
|
var CHAR_EQUALS = 61;
|
|
var CHAR_GREATER_THAN = 62;
|
|
var CHAR_QUESTION = 63;
|
|
var CHAR_COMMERCIAL_AT = 64;
|
|
var CHAR_LEFT_SQUARE_BRACKET = 91;
|
|
var CHAR_RIGHT_SQUARE_BRACKET = 93;
|
|
var CHAR_GRAVE_ACCENT = 96;
|
|
var CHAR_LEFT_CURLY_BRACKET = 123;
|
|
var CHAR_VERTICAL_LINE = 124;
|
|
var CHAR_RIGHT_CURLY_BRACKET = 125;
|
|
var ESCAPE_SEQUENCES = {};
|
|
ESCAPE_SEQUENCES[0] = "\\0";
|
|
ESCAPE_SEQUENCES[7] = "\\a";
|
|
ESCAPE_SEQUENCES[8] = "\\b";
|
|
ESCAPE_SEQUENCES[9] = "\\t";
|
|
ESCAPE_SEQUENCES[10] = "\\n";
|
|
ESCAPE_SEQUENCES[11] = "\\v";
|
|
ESCAPE_SEQUENCES[12] = "\\f";
|
|
ESCAPE_SEQUENCES[13] = "\\r";
|
|
ESCAPE_SEQUENCES[27] = "\\e";
|
|
ESCAPE_SEQUENCES[34] = '\\"';
|
|
ESCAPE_SEQUENCES[92] = "\\\\";
|
|
ESCAPE_SEQUENCES[133] = "\\N";
|
|
ESCAPE_SEQUENCES[160] = "\\_";
|
|
ESCAPE_SEQUENCES[8232] = "\\L";
|
|
ESCAPE_SEQUENCES[8233] = "\\P";
|
|
var DEPRECATED_BOOLEANS_SYNTAX = [
|
|
"y",
|
|
"Y",
|
|
"yes",
|
|
"Yes",
|
|
"YES",
|
|
"on",
|
|
"On",
|
|
"ON",
|
|
"n",
|
|
"N",
|
|
"no",
|
|
"No",
|
|
"NO",
|
|
"off",
|
|
"Off",
|
|
"OFF"
|
|
];
|
|
var DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;
|
|
function compileStyleMap(schema, map) {
|
|
var result, keys, index, length, tag, style, type;
|
|
if (map === null)
|
|
return {};
|
|
result = {};
|
|
keys = Object.keys(map);
|
|
for (index = 0, length = keys.length; index < length; index += 1) {
|
|
tag = keys[index];
|
|
style = String(map[tag]);
|
|
if (tag.slice(0, 2) === "!!") {
|
|
tag = "tag:yaml.org,2002:" + tag.slice(2);
|
|
}
|
|
type = schema.compiledTypeMap["fallback"][tag];
|
|
if (type && _hasOwnProperty.call(type.styleAliases, style)) {
|
|
style = type.styleAliases[style];
|
|
}
|
|
result[tag] = style;
|
|
}
|
|
return result;
|
|
}
|
|
function encodeHex(character) {
|
|
var string, handle, length;
|
|
string = character.toString(16).toUpperCase();
|
|
if (character <= 255) {
|
|
handle = "x";
|
|
length = 2;
|
|
} else if (character <= 65535) {
|
|
handle = "u";
|
|
length = 4;
|
|
} else if (character <= 4294967295) {
|
|
handle = "U";
|
|
length = 8;
|
|
} else {
|
|
throw new YAMLException("code point within a string may not be greater than 0xFFFFFFFF");
|
|
}
|
|
return "\\" + handle + common.repeat("0", length - string.length) + string;
|
|
}
|
|
var QUOTING_TYPE_SINGLE = 1;
|
|
var QUOTING_TYPE_DOUBLE = 2;
|
|
function State(options) {
|
|
this.schema = options["schema"] || DEFAULT_SCHEMA;
|
|
this.indent = Math.max(1, options["indent"] || 2);
|
|
this.noArrayIndent = options["noArrayIndent"] || false;
|
|
this.skipInvalid = options["skipInvalid"] || false;
|
|
this.flowLevel = common.isNothing(options["flowLevel"]) ? -1 : options["flowLevel"];
|
|
this.styleMap = compileStyleMap(this.schema, options["styles"] || null);
|
|
this.sortKeys = options["sortKeys"] || false;
|
|
this.lineWidth = options["lineWidth"] || 80;
|
|
this.noRefs = options["noRefs"] || false;
|
|
this.noCompatMode = options["noCompatMode"] || false;
|
|
this.condenseFlow = options["condenseFlow"] || false;
|
|
this.quotingType = options["quotingType"] === '"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;
|
|
this.forceQuotes = options["forceQuotes"] || false;
|
|
this.replacer = typeof options["replacer"] === "function" ? options["replacer"] : null;
|
|
this.implicitTypes = this.schema.compiledImplicit;
|
|
this.explicitTypes = this.schema.compiledExplicit;
|
|
this.tag = null;
|
|
this.result = "";
|
|
this.duplicates = [];
|
|
this.usedDuplicates = null;
|
|
}
|
|
function indentString(string, spaces) {
|
|
var ind = common.repeat(" ", spaces), position = 0, next = -1, result = "", line, length = string.length;
|
|
while (position < length) {
|
|
next = string.indexOf("\n", position);
|
|
if (next === -1) {
|
|
line = string.slice(position);
|
|
position = length;
|
|
} else {
|
|
line = string.slice(position, next + 1);
|
|
position = next + 1;
|
|
}
|
|
if (line.length && line !== "\n")
|
|
result += ind;
|
|
result += line;
|
|
}
|
|
return result;
|
|
}
|
|
function generateNextLine(state, level) {
|
|
return "\n" + common.repeat(" ", state.indent * level);
|
|
}
|
|
function testImplicitResolving(state, str) {
|
|
var index, length, type;
|
|
for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {
|
|
type = state.implicitTypes[index];
|
|
if (type.resolve(str)) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
function isWhitespace(c) {
|
|
return c === CHAR_SPACE || c === CHAR_TAB;
|
|
}
|
|
function isPrintable(c) {
|
|
return 32 <= c && c <= 126 || 161 <= c && c <= 55295 && c !== 8232 && c !== 8233 || 57344 <= c && c <= 65533 && c !== CHAR_BOM || 65536 <= c && c <= 1114111;
|
|
}
|
|
function isNsCharOrWhitespace(c) {
|
|
return isPrintable(c) && c !== CHAR_BOM && c !== CHAR_CARRIAGE_RETURN && c !== CHAR_LINE_FEED;
|
|
}
|
|
function isPlainSafe(c, prev, inblock) {
|
|
var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);
|
|
var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);
|
|
return (
|
|
// ns-plain-safe
|
|
(inblock ? (
|
|
// c = flow-in
|
|
cIsNsCharOrWhitespace
|
|
) : cIsNsCharOrWhitespace && c !== CHAR_COMMA && c !== CHAR_LEFT_SQUARE_BRACKET && c !== CHAR_RIGHT_SQUARE_BRACKET && c !== CHAR_LEFT_CURLY_BRACKET && c !== CHAR_RIGHT_CURLY_BRACKET) && c !== CHAR_SHARP && !(prev === CHAR_COLON && !cIsNsChar) || isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP || prev === CHAR_COLON && cIsNsChar
|
|
);
|
|
}
|
|
function isPlainSafeFirst(c) {
|
|
return isPrintable(c) && c !== CHAR_BOM && !isWhitespace(c) && c !== CHAR_MINUS && c !== CHAR_QUESTION && c !== CHAR_COLON && c !== CHAR_COMMA && c !== CHAR_LEFT_SQUARE_BRACKET && c !== CHAR_RIGHT_SQUARE_BRACKET && c !== CHAR_LEFT_CURLY_BRACKET && c !== CHAR_RIGHT_CURLY_BRACKET && c !== CHAR_SHARP && c !== CHAR_AMPERSAND && c !== CHAR_ASTERISK && c !== CHAR_EXCLAMATION && c !== CHAR_VERTICAL_LINE && c !== CHAR_EQUALS && c !== CHAR_GREATER_THAN && c !== CHAR_SINGLE_QUOTE && c !== CHAR_DOUBLE_QUOTE && c !== CHAR_PERCENT && c !== CHAR_COMMERCIAL_AT && c !== CHAR_GRAVE_ACCENT;
|
|
}
|
|
function isPlainSafeLast(c) {
|
|
return !isWhitespace(c) && c !== CHAR_COLON;
|
|
}
|
|
function codePointAt(string, pos) {
|
|
var first = string.charCodeAt(pos), second;
|
|
if (first >= 55296 && first <= 56319 && pos + 1 < string.length) {
|
|
second = string.charCodeAt(pos + 1);
|
|
if (second >= 56320 && second <= 57343) {
|
|
return (first - 55296) * 1024 + second - 56320 + 65536;
|
|
}
|
|
}
|
|
return first;
|
|
}
|
|
function needIndentIndicator(string) {
|
|
var leadingSpaceRe = /^\n* /;
|
|
return leadingSpaceRe.test(string);
|
|
}
|
|
var STYLE_PLAIN = 1;
|
|
var STYLE_SINGLE = 2;
|
|
var STYLE_LITERAL = 3;
|
|
var STYLE_FOLDED = 4;
|
|
var STYLE_DOUBLE = 5;
|
|
function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType, quotingType, forceQuotes, inblock) {
|
|
var i;
|
|
var char = 0;
|
|
var prevChar = null;
|
|
var hasLineBreak = false;
|
|
var hasFoldableLine = false;
|
|
var shouldTrackWidth = lineWidth !== -1;
|
|
var previousLineBreak = -1;
|
|
var plain = isPlainSafeFirst(codePointAt(string, 0)) && isPlainSafeLast(codePointAt(string, string.length - 1));
|
|
if (singleLineOnly || forceQuotes) {
|
|
for (i = 0; i < string.length; char >= 65536 ? i += 2 : i++) {
|
|
char = codePointAt(string, i);
|
|
if (!isPrintable(char)) {
|
|
return STYLE_DOUBLE;
|
|
}
|
|
plain = plain && isPlainSafe(char, prevChar, inblock);
|
|
prevChar = char;
|
|
}
|
|
} else {
|
|
for (i = 0; i < string.length; char >= 65536 ? i += 2 : i++) {
|
|
char = codePointAt(string, i);
|
|
if (char === CHAR_LINE_FEED) {
|
|
hasLineBreak = true;
|
|
if (shouldTrackWidth) {
|
|
hasFoldableLine = hasFoldableLine || // Foldable line = too long, and not more-indented.
|
|
i - previousLineBreak - 1 > lineWidth && string[previousLineBreak + 1] !== " ";
|
|
previousLineBreak = i;
|
|
}
|
|
} else if (!isPrintable(char)) {
|
|
return STYLE_DOUBLE;
|
|
}
|
|
plain = plain && isPlainSafe(char, prevChar, inblock);
|
|
prevChar = char;
|
|
}
|
|
hasFoldableLine = hasFoldableLine || shouldTrackWidth && (i - previousLineBreak - 1 > lineWidth && string[previousLineBreak + 1] !== " ");
|
|
}
|
|
if (!hasLineBreak && !hasFoldableLine) {
|
|
if (plain && !forceQuotes && !testAmbiguousType(string)) {
|
|
return STYLE_PLAIN;
|
|
}
|
|
return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;
|
|
}
|
|
if (indentPerLevel > 9 && needIndentIndicator(string)) {
|
|
return STYLE_DOUBLE;
|
|
}
|
|
if (!forceQuotes) {
|
|
return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;
|
|
}
|
|
return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;
|
|
}
|
|
function writeScalar(state, string, level, iskey, inblock) {
|
|
state.dump = function() {
|
|
if (string.length === 0) {
|
|
return state.quotingType === QUOTING_TYPE_DOUBLE ? '""' : "''";
|
|
}
|
|
if (!state.noCompatMode) {
|
|
if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) {
|
|
return state.quotingType === QUOTING_TYPE_DOUBLE ? '"' + string + '"' : "'" + string + "'";
|
|
}
|
|
}
|
|
var indent = state.indent * Math.max(1, level);
|
|
var lineWidth = state.lineWidth === -1 ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);
|
|
var singleLineOnly = iskey || state.flowLevel > -1 && level >= state.flowLevel;
|
|
function testAmbiguity(string2) {
|
|
return testImplicitResolving(state, string2);
|
|
}
|
|
switch (chooseScalarStyle(
|
|
string,
|
|
singleLineOnly,
|
|
state.indent,
|
|
lineWidth,
|
|
testAmbiguity,
|
|
state.quotingType,
|
|
state.forceQuotes && !iskey,
|
|
inblock
|
|
)) {
|
|
case STYLE_PLAIN:
|
|
return string;
|
|
case STYLE_SINGLE:
|
|
return "'" + string.replace(/'/g, "''") + "'";
|
|
case STYLE_LITERAL:
|
|
return "|" + blockHeader(string, state.indent) + dropEndingNewline(indentString(string, indent));
|
|
case STYLE_FOLDED:
|
|
return ">" + blockHeader(string, state.indent) + dropEndingNewline(indentString(foldString(string, lineWidth), indent));
|
|
case STYLE_DOUBLE:
|
|
return '"' + escapeString(string, lineWidth) + '"';
|
|
default:
|
|
throw new YAMLException("impossible error: invalid scalar style");
|
|
}
|
|
}();
|
|
}
|
|
function blockHeader(string, indentPerLevel) {
|
|
var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : "";
|
|
var clip = string[string.length - 1] === "\n";
|
|
var keep = clip && (string[string.length - 2] === "\n" || string === "\n");
|
|
var chomp = keep ? "+" : clip ? "" : "-";
|
|
return indentIndicator + chomp + "\n";
|
|
}
|
|
function dropEndingNewline(string) {
|
|
return string[string.length - 1] === "\n" ? string.slice(0, -1) : string;
|
|
}
|
|
function foldString(string, width) {
|
|
var lineRe = /(\n+)([^\n]*)/g;
|
|
var result = function() {
|
|
var nextLF = string.indexOf("\n");
|
|
nextLF = nextLF !== -1 ? nextLF : string.length;
|
|
lineRe.lastIndex = nextLF;
|
|
return foldLine(string.slice(0, nextLF), width);
|
|
}();
|
|
var prevMoreIndented = string[0] === "\n" || string[0] === " ";
|
|
var moreIndented;
|
|
var match;
|
|
while (match = lineRe.exec(string)) {
|
|
var prefix = match[1], line = match[2];
|
|
moreIndented = line[0] === " ";
|
|
result += prefix + (!prevMoreIndented && !moreIndented && line !== "" ? "\n" : "") + foldLine(line, width);
|
|
prevMoreIndented = moreIndented;
|
|
}
|
|
return result;
|
|
}
|
|
function foldLine(line, width) {
|
|
if (line === "" || line[0] === " ")
|
|
return line;
|
|
var breakRe = / [^ ]/g;
|
|
var match;
|
|
var start = 0, end, curr = 0, next = 0;
|
|
var result = "";
|
|
while (match = breakRe.exec(line)) {
|
|
next = match.index;
|
|
if (next - start > width) {
|
|
end = curr > start ? curr : next;
|
|
result += "\n" + line.slice(start, end);
|
|
start = end + 1;
|
|
}
|
|
curr = next;
|
|
}
|
|
result += "\n";
|
|
if (line.length - start > width && curr > start) {
|
|
result += line.slice(start, curr) + "\n" + line.slice(curr + 1);
|
|
} else {
|
|
result += line.slice(start);
|
|
}
|
|
return result.slice(1);
|
|
}
|
|
function escapeString(string) {
|
|
var result = "";
|
|
var char = 0;
|
|
var escapeSeq;
|
|
for (var i = 0; i < string.length; char >= 65536 ? i += 2 : i++) {
|
|
char = codePointAt(string, i);
|
|
escapeSeq = ESCAPE_SEQUENCES[char];
|
|
if (!escapeSeq && isPrintable(char)) {
|
|
result += string[i];
|
|
if (char >= 65536)
|
|
result += string[i + 1];
|
|
} else {
|
|
result += escapeSeq || encodeHex(char);
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
function writeFlowSequence(state, level, object) {
|
|
var _result = "", _tag = state.tag, index, length, value;
|
|
for (index = 0, length = object.length; index < length; index += 1) {
|
|
value = object[index];
|
|
if (state.replacer) {
|
|
value = state.replacer.call(object, String(index), value);
|
|
}
|
|
if (writeNode(state, level, value, false, false) || typeof value === "undefined" && writeNode(state, level, null, false, false)) {
|
|
if (_result !== "")
|
|
_result += "," + (!state.condenseFlow ? " " : "");
|
|
_result += state.dump;
|
|
}
|
|
}
|
|
state.tag = _tag;
|
|
state.dump = "[" + _result + "]";
|
|
}
|
|
function writeBlockSequence(state, level, object, compact) {
|
|
var _result = "", _tag = state.tag, index, length, value;
|
|
for (index = 0, length = object.length; index < length; index += 1) {
|
|
value = object[index];
|
|
if (state.replacer) {
|
|
value = state.replacer.call(object, String(index), value);
|
|
}
|
|
if (writeNode(state, level + 1, value, true, true, false, true) || typeof value === "undefined" && writeNode(state, level + 1, null, true, true, false, true)) {
|
|
if (!compact || _result !== "") {
|
|
_result += generateNextLine(state, level);
|
|
}
|
|
if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {
|
|
_result += "-";
|
|
} else {
|
|
_result += "- ";
|
|
}
|
|
_result += state.dump;
|
|
}
|
|
}
|
|
state.tag = _tag;
|
|
state.dump = _result || "[]";
|
|
}
|
|
function writeFlowMapping(state, level, object) {
|
|
var _result = "", _tag = state.tag, objectKeyList = Object.keys(object), index, length, objectKey, objectValue, pairBuffer;
|
|
for (index = 0, length = objectKeyList.length; index < length; index += 1) {
|
|
pairBuffer = "";
|
|
if (_result !== "")
|
|
pairBuffer += ", ";
|
|
if (state.condenseFlow)
|
|
pairBuffer += '"';
|
|
objectKey = objectKeyList[index];
|
|
objectValue = object[objectKey];
|
|
if (state.replacer) {
|
|
objectValue = state.replacer.call(object, objectKey, objectValue);
|
|
}
|
|
if (!writeNode(state, level, objectKey, false, false)) {
|
|
continue;
|
|
}
|
|
if (state.dump.length > 1024)
|
|
pairBuffer += "? ";
|
|
pairBuffer += state.dump + (state.condenseFlow ? '"' : "") + ":" + (state.condenseFlow ? "" : " ");
|
|
if (!writeNode(state, level, objectValue, false, false)) {
|
|
continue;
|
|
}
|
|
pairBuffer += state.dump;
|
|
_result += pairBuffer;
|
|
}
|
|
state.tag = _tag;
|
|
state.dump = "{" + _result + "}";
|
|
}
|
|
function writeBlockMapping(state, level, object, compact) {
|
|
var _result = "", _tag = state.tag, objectKeyList = Object.keys(object), index, length, objectKey, objectValue, explicitPair, pairBuffer;
|
|
if (state.sortKeys === true) {
|
|
objectKeyList.sort();
|
|
} else if (typeof state.sortKeys === "function") {
|
|
objectKeyList.sort(state.sortKeys);
|
|
} else if (state.sortKeys) {
|
|
throw new YAMLException("sortKeys must be a boolean or a function");
|
|
}
|
|
for (index = 0, length = objectKeyList.length; index < length; index += 1) {
|
|
pairBuffer = "";
|
|
if (!compact || _result !== "") {
|
|
pairBuffer += generateNextLine(state, level);
|
|
}
|
|
objectKey = objectKeyList[index];
|
|
objectValue = object[objectKey];
|
|
if (state.replacer) {
|
|
objectValue = state.replacer.call(object, objectKey, objectValue);
|
|
}
|
|
if (!writeNode(state, level + 1, objectKey, true, true, true)) {
|
|
continue;
|
|
}
|
|
explicitPair = state.tag !== null && state.tag !== "?" || state.dump && state.dump.length > 1024;
|
|
if (explicitPair) {
|
|
if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {
|
|
pairBuffer += "?";
|
|
} else {
|
|
pairBuffer += "? ";
|
|
}
|
|
}
|
|
pairBuffer += state.dump;
|
|
if (explicitPair) {
|
|
pairBuffer += generateNextLine(state, level);
|
|
}
|
|
if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {
|
|
continue;
|
|
}
|
|
if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {
|
|
pairBuffer += ":";
|
|
} else {
|
|
pairBuffer += ": ";
|
|
}
|
|
pairBuffer += state.dump;
|
|
_result += pairBuffer;
|
|
}
|
|
state.tag = _tag;
|
|
state.dump = _result || "{}";
|
|
}
|
|
function detectType(state, object, explicit) {
|
|
var _result, typeList, index, length, type, style;
|
|
typeList = explicit ? state.explicitTypes : state.implicitTypes;
|
|
for (index = 0, length = typeList.length; index < length; index += 1) {
|
|
type = typeList[index];
|
|
if ((type.instanceOf || type.predicate) && (!type.instanceOf || typeof object === "object" && object instanceof type.instanceOf) && (!type.predicate || type.predicate(object))) {
|
|
if (explicit) {
|
|
if (type.multi && type.representName) {
|
|
state.tag = type.representName(object);
|
|
} else {
|
|
state.tag = type.tag;
|
|
}
|
|
} else {
|
|
state.tag = "?";
|
|
}
|
|
if (type.represent) {
|
|
style = state.styleMap[type.tag] || type.defaultStyle;
|
|
if (_toString.call(type.represent) === "[object Function]") {
|
|
_result = type.represent(object, style);
|
|
} else if (_hasOwnProperty.call(type.represent, style)) {
|
|
_result = type.represent[style](object, style);
|
|
} else {
|
|
throw new YAMLException("!<" + type.tag + '> tag resolver accepts not "' + style + '" style');
|
|
}
|
|
state.dump = _result;
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
function writeNode(state, level, object, block, compact, iskey, isblockseq) {
|
|
state.tag = null;
|
|
state.dump = object;
|
|
if (!detectType(state, object, false)) {
|
|
detectType(state, object, true);
|
|
}
|
|
var type = _toString.call(state.dump);
|
|
var inblock = block;
|
|
var tagStr;
|
|
if (block) {
|
|
block = state.flowLevel < 0 || state.flowLevel > level;
|
|
}
|
|
var objectOrArray = type === "[object Object]" || type === "[object Array]", duplicateIndex, duplicate;
|
|
if (objectOrArray) {
|
|
duplicateIndex = state.duplicates.indexOf(object);
|
|
duplicate = duplicateIndex !== -1;
|
|
}
|
|
if (state.tag !== null && state.tag !== "?" || duplicate || state.indent !== 2 && level > 0) {
|
|
compact = false;
|
|
}
|
|
if (duplicate && state.usedDuplicates[duplicateIndex]) {
|
|
state.dump = "*ref_" + duplicateIndex;
|
|
} else {
|
|
if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {
|
|
state.usedDuplicates[duplicateIndex] = true;
|
|
}
|
|
if (type === "[object Object]") {
|
|
if (block && Object.keys(state.dump).length !== 0) {
|
|
writeBlockMapping(state, level, state.dump, compact);
|
|
if (duplicate) {
|
|
state.dump = "&ref_" + duplicateIndex + state.dump;
|
|
}
|
|
} else {
|
|
writeFlowMapping(state, level, state.dump);
|
|
if (duplicate) {
|
|
state.dump = "&ref_" + duplicateIndex + " " + state.dump;
|
|
}
|
|
}
|
|
} else if (type === "[object Array]") {
|
|
if (block && state.dump.length !== 0) {
|
|
if (state.noArrayIndent && !isblockseq && level > 0) {
|
|
writeBlockSequence(state, level - 1, state.dump, compact);
|
|
} else {
|
|
writeBlockSequence(state, level, state.dump, compact);
|
|
}
|
|
if (duplicate) {
|
|
state.dump = "&ref_" + duplicateIndex + state.dump;
|
|
}
|
|
} else {
|
|
writeFlowSequence(state, level, state.dump);
|
|
if (duplicate) {
|
|
state.dump = "&ref_" + duplicateIndex + " " + state.dump;
|
|
}
|
|
}
|
|
} else if (type === "[object String]") {
|
|
if (state.tag !== "?") {
|
|
writeScalar(state, state.dump, level, iskey, inblock);
|
|
}
|
|
} else if (type === "[object Undefined]") {
|
|
return false;
|
|
} else {
|
|
if (state.skipInvalid)
|
|
return false;
|
|
throw new YAMLException("unacceptable kind of an object to dump " + type);
|
|
}
|
|
if (state.tag !== null && state.tag !== "?") {
|
|
tagStr = encodeURI(
|
|
state.tag[0] === "!" ? state.tag.slice(1) : state.tag
|
|
).replace(/!/g, "%21");
|
|
if (state.tag[0] === "!") {
|
|
tagStr = "!" + tagStr;
|
|
} else if (tagStr.slice(0, 18) === "tag:yaml.org,2002:") {
|
|
tagStr = "!!" + tagStr.slice(18);
|
|
} else {
|
|
tagStr = "!<" + tagStr + ">";
|
|
}
|
|
state.dump = tagStr + " " + state.dump;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
function getDuplicateReferences(object, state) {
|
|
var objects = [], duplicatesIndexes = [], index, length;
|
|
inspectNode(object, objects, duplicatesIndexes);
|
|
for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {
|
|
state.duplicates.push(objects[duplicatesIndexes[index]]);
|
|
}
|
|
state.usedDuplicates = new Array(length);
|
|
}
|
|
function inspectNode(object, objects, duplicatesIndexes) {
|
|
var objectKeyList, index, length;
|
|
if (object !== null && typeof object === "object") {
|
|
index = objects.indexOf(object);
|
|
if (index !== -1) {
|
|
if (duplicatesIndexes.indexOf(index) === -1) {
|
|
duplicatesIndexes.push(index);
|
|
}
|
|
} else {
|
|
objects.push(object);
|
|
if (Array.isArray(object)) {
|
|
for (index = 0, length = object.length; index < length; index += 1) {
|
|
inspectNode(object[index], objects, duplicatesIndexes);
|
|
}
|
|
} else {
|
|
objectKeyList = Object.keys(object);
|
|
for (index = 0, length = objectKeyList.length; index < length; index += 1) {
|
|
inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
function dump(input, options) {
|
|
options = options || {};
|
|
var state = new State(options);
|
|
if (!state.noRefs)
|
|
getDuplicateReferences(input, state);
|
|
var value = input;
|
|
if (state.replacer) {
|
|
value = state.replacer.call({ "": value }, "", value);
|
|
}
|
|
if (writeNode(state, 0, value, true, true))
|
|
return state.dump + "\n";
|
|
return "";
|
|
}
|
|
module.exports.dump = dump;
|
|
}
|
|
});
|
|
|
|
// node_modules/js-yaml/index.js
|
|
var require_js_yaml = __commonJS({
|
|
"node_modules/js-yaml/index.js"(exports, module) {
|
|
"use strict";
|
|
var loader = require_loader();
|
|
var dumper = require_dumper();
|
|
function renamed(from, to) {
|
|
return function() {
|
|
throw new Error("Function yaml." + from + " is removed in js-yaml 4. Use yaml." + to + " instead, which is now safe by default.");
|
|
};
|
|
}
|
|
module.exports.Type = require_type();
|
|
module.exports.Schema = require_schema();
|
|
module.exports.FAILSAFE_SCHEMA = require_failsafe();
|
|
module.exports.JSON_SCHEMA = require_json();
|
|
module.exports.CORE_SCHEMA = require_core();
|
|
module.exports.DEFAULT_SCHEMA = require_default();
|
|
module.exports.load = loader.load;
|
|
module.exports.loadAll = loader.loadAll;
|
|
module.exports.dump = dumper.dump;
|
|
module.exports.YAMLException = require_exception();
|
|
module.exports.types = {
|
|
binary: require_binary(),
|
|
float: require_float(),
|
|
map: require_map(),
|
|
null: require_null(),
|
|
pairs: require_pairs(),
|
|
set: require_set(),
|
|
timestamp: require_timestamp(),
|
|
bool: require_bool(),
|
|
int: require_int(),
|
|
merge: require_merge(),
|
|
omap: require_omap(),
|
|
seq: require_seq(),
|
|
str: require_str()
|
|
};
|
|
module.exports.safeLoad = renamed("safeLoad", "load");
|
|
module.exports.safeLoadAll = renamed("safeLoadAll", "loadAll");
|
|
module.exports.safeDump = renamed("safeDump", "dump");
|
|
}
|
|
});
|
|
|
|
// node_modules/cosmiconfig/dist/loaders.js
|
|
var require_loaders = __commonJS({
|
|
"node_modules/cosmiconfig/dist/loaders.js"(exports) {
|
|
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.loaders = void 0;
|
|
var _url = __require("url");
|
|
var importFresh;
|
|
var loadJsSync = function loadJsSync2(filepath) {
|
|
if (importFresh === void 0) {
|
|
importFresh = require_import_fresh();
|
|
}
|
|
const result = importFresh(filepath);
|
|
return result;
|
|
};
|
|
var loadJs = async function loadJs2(filepath) {
|
|
try {
|
|
const {
|
|
href
|
|
} = (0, _url.pathToFileURL)(filepath);
|
|
return (await import(href)).default;
|
|
} catch (error) {
|
|
return loadJsSync(filepath, "");
|
|
}
|
|
};
|
|
var parseJson;
|
|
var loadJson = function loadJson2(filepath, content) {
|
|
if (parseJson === void 0) {
|
|
parseJson = require_parse_json();
|
|
}
|
|
try {
|
|
const result = parseJson(content);
|
|
return result;
|
|
} catch (error) {
|
|
error.message = `JSON Error in ${filepath}:
|
|
${error.message}`;
|
|
throw error;
|
|
}
|
|
};
|
|
var yaml;
|
|
var loadYaml = function loadYaml2(filepath, content) {
|
|
if (yaml === void 0) {
|
|
yaml = require_js_yaml();
|
|
}
|
|
try {
|
|
const result = yaml.load(content);
|
|
return result;
|
|
} catch (error) {
|
|
error.message = `YAML Error in ${filepath}:
|
|
${error.message}`;
|
|
throw error;
|
|
}
|
|
};
|
|
var loaders = {
|
|
loadJs,
|
|
loadJsSync,
|
|
loadJson,
|
|
loadYaml
|
|
};
|
|
exports.loaders = loaders;
|
|
}
|
|
});
|
|
|
|
// node_modules/cosmiconfig/dist/ExplorerBase.js
|
|
var require_ExplorerBase = __commonJS({
|
|
"node_modules/cosmiconfig/dist/ExplorerBase.js"(exports) {
|
|
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.ExplorerBase = void 0;
|
|
exports.getExtensionDescription = getExtensionDescription;
|
|
var _path = _interopRequireDefault(__require("path"));
|
|
var _getPropertyByPath = require_getPropertyByPath();
|
|
var _loaders = require_loaders();
|
|
function _interopRequireDefault(obj) {
|
|
return obj && obj.__esModule ? obj : { default: obj };
|
|
}
|
|
var ExplorerBase = class {
|
|
constructor(options) {
|
|
if (options.cache) {
|
|
this.loadCache = /* @__PURE__ */ new Map();
|
|
this.searchCache = /* @__PURE__ */ new Map();
|
|
}
|
|
this.config = options;
|
|
this.validateConfig();
|
|
}
|
|
clearLoadCache() {
|
|
if (this.loadCache) {
|
|
this.loadCache.clear();
|
|
}
|
|
}
|
|
clearSearchCache() {
|
|
if (this.searchCache) {
|
|
this.searchCache.clear();
|
|
}
|
|
}
|
|
clearCaches() {
|
|
this.clearLoadCache();
|
|
this.clearSearchCache();
|
|
}
|
|
validateConfig() {
|
|
const config = this.config;
|
|
config.searchPlaces.forEach((place) => {
|
|
const loaderKey = _path.default.extname(place) || "noExt";
|
|
const loader = config.loaders[loaderKey];
|
|
if (!loader) {
|
|
throw new Error(`No loader specified for ${getExtensionDescription(place)}, so searchPlaces item "${place}" is invalid`);
|
|
}
|
|
if (typeof loader !== "function") {
|
|
throw new Error(`loader for ${getExtensionDescription(place)} is not a function (type provided: "${typeof loader}"), so searchPlaces item "${place}" is invalid`);
|
|
}
|
|
});
|
|
}
|
|
shouldSearchStopWithResult(result) {
|
|
if (result === null)
|
|
return false;
|
|
return !(result.isEmpty && this.config.ignoreEmptySearchPlaces);
|
|
}
|
|
nextDirectoryToSearch(currentDir, currentResult) {
|
|
if (this.shouldSearchStopWithResult(currentResult)) {
|
|
return null;
|
|
}
|
|
const nextDir = nextDirUp(currentDir);
|
|
if (nextDir === currentDir || currentDir === this.config.stopDir) {
|
|
return null;
|
|
}
|
|
return nextDir;
|
|
}
|
|
loadPackageProp(filepath, content) {
|
|
const parsedContent = _loaders.loaders.loadJson(filepath, content);
|
|
const packagePropValue = (0, _getPropertyByPath.getPropertyByPath)(parsedContent, this.config.packageProp);
|
|
return packagePropValue || null;
|
|
}
|
|
getLoaderEntryForFile(filepath) {
|
|
if (_path.default.basename(filepath) === "package.json") {
|
|
return this.loadPackageProp.bind(this);
|
|
}
|
|
const loaderKey = _path.default.extname(filepath) || "noExt";
|
|
const loader = this.config.loaders[loaderKey];
|
|
if (!loader) {
|
|
throw new Error(`No loader specified for ${getExtensionDescription(filepath)}`);
|
|
}
|
|
return loader;
|
|
}
|
|
loadedContentToCosmiconfigResult(filepath, loadedContent, forceProp) {
|
|
if (loadedContent === null) {
|
|
return null;
|
|
}
|
|
if (loadedContent === void 0) {
|
|
return {
|
|
filepath,
|
|
config: void 0,
|
|
isEmpty: true
|
|
};
|
|
}
|
|
if (this.config.usePackagePropInConfigFiles || forceProp) {
|
|
loadedContent = (0, _getPropertyByPath.getPropertyByPath)(loadedContent, this.config.packageProp);
|
|
}
|
|
if (loadedContent === void 0) {
|
|
return {
|
|
filepath,
|
|
config: void 0,
|
|
isEmpty: true
|
|
};
|
|
}
|
|
return {
|
|
config: loadedContent,
|
|
filepath
|
|
};
|
|
}
|
|
validateFilePath(filepath) {
|
|
if (!filepath) {
|
|
throw new Error("load must pass a non-empty string");
|
|
}
|
|
}
|
|
};
|
|
exports.ExplorerBase = ExplorerBase;
|
|
function nextDirUp(dir) {
|
|
return _path.default.dirname(dir);
|
|
}
|
|
function getExtensionDescription(filepath) {
|
|
const ext = _path.default.extname(filepath);
|
|
return ext ? `extension "${ext}"` : "files without extensions";
|
|
}
|
|
}
|
|
});
|
|
|
|
// node_modules/path-type/index.js
|
|
var require_path_type = __commonJS({
|
|
"node_modules/path-type/index.js"(exports) {
|
|
"use strict";
|
|
var { promisify } = __require("util");
|
|
var fs2 = __require("fs");
|
|
async function isType(fsStatType, statsMethodName, filePath) {
|
|
if (typeof filePath !== "string") {
|
|
throw new TypeError(`Expected a string, got ${typeof filePath}`);
|
|
}
|
|
try {
|
|
const stats = await promisify(fs2[fsStatType])(filePath);
|
|
return stats[statsMethodName]();
|
|
} catch (error) {
|
|
if (error.code === "ENOENT") {
|
|
return false;
|
|
}
|
|
throw error;
|
|
}
|
|
}
|
|
function isTypeSync(fsStatType, statsMethodName, filePath) {
|
|
if (typeof filePath !== "string") {
|
|
throw new TypeError(`Expected a string, got ${typeof filePath}`);
|
|
}
|
|
try {
|
|
return fs2[fsStatType](filePath)[statsMethodName]();
|
|
} catch (error) {
|
|
if (error.code === "ENOENT") {
|
|
return false;
|
|
}
|
|
throw error;
|
|
}
|
|
}
|
|
exports.isFile = isType.bind(null, "stat", "isFile");
|
|
exports.isDirectory = isType.bind(null, "stat", "isDirectory");
|
|
exports.isSymlink = isType.bind(null, "lstat", "isSymbolicLink");
|
|
exports.isFileSync = isTypeSync.bind(null, "statSync", "isFile");
|
|
exports.isDirectorySync = isTypeSync.bind(null, "statSync", "isDirectory");
|
|
exports.isSymlinkSync = isTypeSync.bind(null, "lstatSync", "isSymbolicLink");
|
|
}
|
|
});
|
|
|
|
// node_modules/cosmiconfig/dist/getDirectory.js
|
|
var require_getDirectory = __commonJS({
|
|
"node_modules/cosmiconfig/dist/getDirectory.js"(exports) {
|
|
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.getDirectory = getDirectory;
|
|
exports.getDirectorySync = getDirectorySync;
|
|
var _path = _interopRequireDefault(__require("path"));
|
|
var _pathType = require_path_type();
|
|
function _interopRequireDefault(obj) {
|
|
return obj && obj.__esModule ? obj : { default: obj };
|
|
}
|
|
async function getDirectory(filepath) {
|
|
const filePathIsDirectory = await (0, _pathType.isDirectory)(filepath);
|
|
if (filePathIsDirectory === true) {
|
|
return filepath;
|
|
}
|
|
const directory = _path.default.dirname(filepath);
|
|
return directory;
|
|
}
|
|
function getDirectorySync(filepath) {
|
|
const filePathIsDirectory = (0, _pathType.isDirectorySync)(filepath);
|
|
if (filePathIsDirectory === true) {
|
|
return filepath;
|
|
}
|
|
const directory = _path.default.dirname(filepath);
|
|
return directory;
|
|
}
|
|
}
|
|
});
|
|
|
|
// node_modules/cosmiconfig/dist/readFile.js
|
|
var require_readFile = __commonJS({
|
|
"node_modules/cosmiconfig/dist/readFile.js"(exports) {
|
|
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.readFile = readFile;
|
|
exports.readFileSync = readFileSync;
|
|
var _fs = _interopRequireDefault(__require("fs"));
|
|
function _interopRequireDefault(obj) {
|
|
return obj && obj.__esModule ? obj : { default: obj };
|
|
}
|
|
async function fsReadFileAsync(pathname, encoding) {
|
|
return new Promise((resolve, reject) => {
|
|
_fs.default.readFile(pathname, encoding, (error, contents) => {
|
|
if (error) {
|
|
reject(error);
|
|
return;
|
|
}
|
|
resolve(contents);
|
|
});
|
|
});
|
|
}
|
|
async function readFile(filepath, options = {}) {
|
|
const throwNotFound = options.throwNotFound === true;
|
|
try {
|
|
const content = await fsReadFileAsync(filepath, "utf8");
|
|
return content;
|
|
} catch (error) {
|
|
if (throwNotFound === false && (error.code === "ENOENT" || error.code === "EISDIR")) {
|
|
return null;
|
|
}
|
|
throw error;
|
|
}
|
|
}
|
|
function readFileSync(filepath, options = {}) {
|
|
const throwNotFound = options.throwNotFound === true;
|
|
try {
|
|
const content = _fs.default.readFileSync(filepath, "utf8");
|
|
return content;
|
|
} catch (error) {
|
|
if (throwNotFound === false && (error.code === "ENOENT" || error.code === "EISDIR")) {
|
|
return null;
|
|
}
|
|
throw error;
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
// node_modules/cosmiconfig/dist/Explorer.js
|
|
var require_Explorer = __commonJS({
|
|
"node_modules/cosmiconfig/dist/Explorer.js"(exports) {
|
|
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.Explorer = void 0;
|
|
var _path = _interopRequireDefault(__require("path"));
|
|
var _cacheWrapper = require_cacheWrapper();
|
|
var _ExplorerBase = require_ExplorerBase();
|
|
var _getDirectory = require_getDirectory();
|
|
var _readFile = require_readFile();
|
|
function _interopRequireDefault(obj) {
|
|
return obj && obj.__esModule ? obj : { default: obj };
|
|
}
|
|
var Explorer = class extends _ExplorerBase.ExplorerBase {
|
|
constructor(options) {
|
|
super(options);
|
|
}
|
|
async search(searchFrom = process.cwd()) {
|
|
if (this.config.metaConfigFilePath) {
|
|
const config = await this._loadFile(this.config.metaConfigFilePath, true);
|
|
if (config && !config.isEmpty) {
|
|
return config;
|
|
}
|
|
}
|
|
return await this.searchFromDirectory(await (0, _getDirectory.getDirectory)(searchFrom));
|
|
}
|
|
async searchFromDirectory(dir) {
|
|
const absoluteDir = _path.default.resolve(process.cwd(), dir);
|
|
const run = async () => {
|
|
const result = await this.searchDirectory(absoluteDir);
|
|
const nextDir = this.nextDirectoryToSearch(absoluteDir, result);
|
|
if (nextDir) {
|
|
return this.searchFromDirectory(nextDir);
|
|
}
|
|
return await this.config.transform(result);
|
|
};
|
|
if (this.searchCache) {
|
|
return (0, _cacheWrapper.cacheWrapper)(this.searchCache, absoluteDir, run);
|
|
}
|
|
return run();
|
|
}
|
|
async searchDirectory(dir) {
|
|
for await (const place of this.config.searchPlaces) {
|
|
const placeResult = await this.loadSearchPlace(dir, place);
|
|
if (this.shouldSearchStopWithResult(placeResult)) {
|
|
return placeResult;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
async loadSearchPlace(dir, place) {
|
|
const filepath = _path.default.join(dir, place);
|
|
const fileContents = await (0, _readFile.readFile)(filepath);
|
|
return await this.createCosmiconfigResult(filepath, fileContents, false);
|
|
}
|
|
async loadFileContent(filepath, content) {
|
|
if (content === null) {
|
|
return null;
|
|
}
|
|
if (content.trim() === "") {
|
|
return void 0;
|
|
}
|
|
const loader = this.getLoaderEntryForFile(filepath);
|
|
try {
|
|
return await loader(filepath, content);
|
|
} catch (e) {
|
|
e.filepath = filepath;
|
|
throw e;
|
|
}
|
|
}
|
|
async createCosmiconfigResult(filepath, content, forceProp) {
|
|
const fileContent = await this.loadFileContent(filepath, content);
|
|
return this.loadedContentToCosmiconfigResult(filepath, fileContent, forceProp);
|
|
}
|
|
async load(filepath) {
|
|
return this._loadFile(filepath, false);
|
|
}
|
|
async _loadFile(filepath, forceProp) {
|
|
this.validateFilePath(filepath);
|
|
const absoluteFilePath = _path.default.resolve(process.cwd(), filepath);
|
|
const runLoad = async () => {
|
|
const fileContents = await (0, _readFile.readFile)(absoluteFilePath, {
|
|
throwNotFound: true
|
|
});
|
|
const result = await this.createCosmiconfigResult(absoluteFilePath, fileContents, forceProp);
|
|
return await this.config.transform(result);
|
|
};
|
|
if (this.loadCache) {
|
|
return (0, _cacheWrapper.cacheWrapper)(this.loadCache, absoluteFilePath, runLoad);
|
|
}
|
|
return runLoad();
|
|
}
|
|
};
|
|
exports.Explorer = Explorer;
|
|
}
|
|
});
|
|
|
|
// node_modules/cosmiconfig/dist/ExplorerSync.js
|
|
var require_ExplorerSync = __commonJS({
|
|
"node_modules/cosmiconfig/dist/ExplorerSync.js"(exports) {
|
|
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.ExplorerSync = void 0;
|
|
var _path = _interopRequireDefault(__require("path"));
|
|
var _cacheWrapper = require_cacheWrapper();
|
|
var _ExplorerBase = require_ExplorerBase();
|
|
var _getDirectory = require_getDirectory();
|
|
var _readFile = require_readFile();
|
|
function _interopRequireDefault(obj) {
|
|
return obj && obj.__esModule ? obj : { default: obj };
|
|
}
|
|
var ExplorerSync = class extends _ExplorerBase.ExplorerBase {
|
|
constructor(options) {
|
|
super(options);
|
|
}
|
|
searchSync(searchFrom = process.cwd()) {
|
|
if (this.config.metaConfigFilePath) {
|
|
const config = this._loadFileSync(this.config.metaConfigFilePath, true);
|
|
if (config && !config.isEmpty) {
|
|
return config;
|
|
}
|
|
}
|
|
return this.searchFromDirectorySync((0, _getDirectory.getDirectorySync)(searchFrom));
|
|
}
|
|
searchFromDirectorySync(dir) {
|
|
const absoluteDir = _path.default.resolve(process.cwd(), dir);
|
|
const run = () => {
|
|
const result = this.searchDirectorySync(absoluteDir);
|
|
const nextDir = this.nextDirectoryToSearch(absoluteDir, result);
|
|
if (nextDir) {
|
|
return this.searchFromDirectorySync(nextDir);
|
|
}
|
|
return this.config.transform(result);
|
|
};
|
|
if (this.searchCache) {
|
|
return (0, _cacheWrapper.cacheWrapperSync)(this.searchCache, absoluteDir, run);
|
|
}
|
|
return run();
|
|
}
|
|
searchDirectorySync(dir) {
|
|
for (const place of this.config.searchPlaces) {
|
|
const placeResult = this.loadSearchPlaceSync(dir, place);
|
|
if (this.shouldSearchStopWithResult(placeResult)) {
|
|
return placeResult;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
loadSearchPlaceSync(dir, place) {
|
|
const filepath = _path.default.join(dir, place);
|
|
const content = (0, _readFile.readFileSync)(filepath);
|
|
return this.createCosmiconfigResultSync(filepath, content, false);
|
|
}
|
|
loadFileContentSync(filepath, content) {
|
|
if (content === null) {
|
|
return null;
|
|
}
|
|
if (content.trim() === "") {
|
|
return void 0;
|
|
}
|
|
const loader = this.getLoaderEntryForFile(filepath);
|
|
try {
|
|
return loader(filepath, content);
|
|
} catch (e) {
|
|
e.filepath = filepath;
|
|
throw e;
|
|
}
|
|
}
|
|
createCosmiconfigResultSync(filepath, content, forceProp) {
|
|
const fileContent = this.loadFileContentSync(filepath, content);
|
|
return this.loadedContentToCosmiconfigResult(filepath, fileContent, forceProp);
|
|
}
|
|
loadSync(filepath) {
|
|
return this._loadFileSync(filepath, false);
|
|
}
|
|
_loadFileSync(filepath, forceProp) {
|
|
this.validateFilePath(filepath);
|
|
const absoluteFilePath = _path.default.resolve(process.cwd(), filepath);
|
|
const runLoadSync = () => {
|
|
const content = (0, _readFile.readFileSync)(absoluteFilePath, {
|
|
throwNotFound: true
|
|
});
|
|
const cosmiconfigResult = this.createCosmiconfigResultSync(absoluteFilePath, content, forceProp);
|
|
return this.config.transform(cosmiconfigResult);
|
|
};
|
|
if (this.loadCache) {
|
|
return (0, _cacheWrapper.cacheWrapperSync)(this.loadCache, absoluteFilePath, runLoadSync);
|
|
}
|
|
return runLoadSync();
|
|
}
|
|
};
|
|
exports.ExplorerSync = ExplorerSync;
|
|
}
|
|
});
|
|
|
|
// node_modules/cosmiconfig/dist/types.js
|
|
var require_types = __commonJS({
|
|
"node_modules/cosmiconfig/dist/types.js"(exports) {
|
|
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
}
|
|
});
|
|
|
|
// node_modules/cosmiconfig/dist/index.js
|
|
var require_dist = __commonJS({
|
|
"node_modules/cosmiconfig/dist/index.js"(exports) {
|
|
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.cosmiconfig = cosmiconfig2;
|
|
exports.cosmiconfigSync = cosmiconfigSync;
|
|
exports.metaSearchPlaces = exports.defaultLoadersSync = exports.defaultLoaders = void 0;
|
|
var _os = _interopRequireDefault(__require("os"));
|
|
var _Explorer = require_Explorer();
|
|
var _ExplorerSync = require_ExplorerSync();
|
|
var _loaders = require_loaders();
|
|
var _types = require_types();
|
|
function _interopRequireDefault(obj) {
|
|
return obj && obj.__esModule ? obj : { default: obj };
|
|
}
|
|
var metaSearchPlaces = ["package.json", ".config.json", ".config.yaml", ".config.yml", ".config.js", ".config.cjs", ".config.mjs"];
|
|
exports.metaSearchPlaces = metaSearchPlaces;
|
|
var defaultLoaders = Object.freeze({
|
|
".mjs": _loaders.loaders.loadJs,
|
|
".cjs": _loaders.loaders.loadJs,
|
|
".js": _loaders.loaders.loadJs,
|
|
".json": _loaders.loaders.loadJson,
|
|
".yaml": _loaders.loaders.loadYaml,
|
|
".yml": _loaders.loaders.loadYaml,
|
|
noExt: _loaders.loaders.loadYaml
|
|
});
|
|
exports.defaultLoaders = defaultLoaders;
|
|
var defaultLoadersSync = Object.freeze({
|
|
".cjs": _loaders.loaders.loadJsSync,
|
|
".js": _loaders.loaders.loadJsSync,
|
|
".json": _loaders.loaders.loadJson,
|
|
".yaml": _loaders.loaders.loadYaml,
|
|
".yml": _loaders.loaders.loadYaml,
|
|
noExt: _loaders.loaders.loadYaml
|
|
});
|
|
exports.defaultLoadersSync = defaultLoadersSync;
|
|
var identity = function identity2(x) {
|
|
return x;
|
|
};
|
|
function replaceMetaPlaceholders(paths, moduleName) {
|
|
return paths.map((path) => path.replace("{name}", moduleName));
|
|
}
|
|
function getExplorerOptions(moduleName, options) {
|
|
var _metaConfig$config;
|
|
const metaExplorer = new _ExplorerSync.ExplorerSync({
|
|
packageProp: "cosmiconfig",
|
|
stopDir: process.cwd(),
|
|
searchPlaces: metaSearchPlaces,
|
|
ignoreEmptySearchPlaces: false,
|
|
usePackagePropInConfigFiles: true,
|
|
loaders: defaultLoaders,
|
|
transform: identity,
|
|
cache: true,
|
|
metaConfigFilePath: null
|
|
});
|
|
const metaConfig = metaExplorer.searchSync();
|
|
if (!metaConfig) {
|
|
return options;
|
|
}
|
|
if ((_metaConfig$config = metaConfig.config) !== null && _metaConfig$config !== void 0 && _metaConfig$config.loaders) {
|
|
throw new Error("Can not specify loaders in meta config file");
|
|
}
|
|
const overrideOptions = metaConfig.config ?? {};
|
|
if (overrideOptions.searchPlaces) {
|
|
overrideOptions.searchPlaces = replaceMetaPlaceholders(overrideOptions.searchPlaces, moduleName);
|
|
}
|
|
overrideOptions.metaConfigFilePath = metaConfig.filepath;
|
|
return {
|
|
...options,
|
|
...overrideOptions
|
|
};
|
|
}
|
|
function cosmiconfig2(moduleName, options = {}) {
|
|
const explorerOptions = getExplorerOptions(moduleName, options);
|
|
const normalizedOptions = normalizeOptions(moduleName, explorerOptions);
|
|
const explorer = new _Explorer.Explorer(normalizedOptions);
|
|
return {
|
|
search: explorer.search.bind(explorer),
|
|
load: explorer.load.bind(explorer),
|
|
clearLoadCache: explorer.clearLoadCache.bind(explorer),
|
|
clearSearchCache: explorer.clearSearchCache.bind(explorer),
|
|
clearCaches: explorer.clearCaches.bind(explorer)
|
|
};
|
|
}
|
|
function cosmiconfigSync(moduleName, options = {}) {
|
|
const explorerOptions = getExplorerOptions(moduleName, options);
|
|
const normalizedOptions = normalizeOptionsSync(moduleName, explorerOptions);
|
|
const explorerSync = new _ExplorerSync.ExplorerSync(normalizedOptions);
|
|
return {
|
|
search: explorerSync.searchSync.bind(explorerSync),
|
|
load: explorerSync.loadSync.bind(explorerSync),
|
|
clearLoadCache: explorerSync.clearLoadCache.bind(explorerSync),
|
|
clearSearchCache: explorerSync.clearSearchCache.bind(explorerSync),
|
|
clearCaches: explorerSync.clearCaches.bind(explorerSync)
|
|
};
|
|
}
|
|
function normalizeOptions(moduleName, options) {
|
|
const defaults = {
|
|
packageProp: moduleName,
|
|
searchPlaces: ["package.json", `.${moduleName}rc`, `.${moduleName}rc.json`, `.${moduleName}rc.yaml`, `.${moduleName}rc.yml`, `.${moduleName}rc.js`, `.${moduleName}rc.cjs`, `.${moduleName}rc.mjs`, `.config/${moduleName}rc`, `.config/${moduleName}rc.json`, `.config/${moduleName}rc.yaml`, `.config/${moduleName}rc.yml`, `.config/${moduleName}rc.js`, `.config/${moduleName}rc.cjs`, `.config/${moduleName}rc.mjs`, `${moduleName}.config.js`, `${moduleName}.config.cjs`, `${moduleName}.config.mjs`].filter(Boolean),
|
|
ignoreEmptySearchPlaces: true,
|
|
stopDir: _os.default.homedir(),
|
|
cache: true,
|
|
transform: identity,
|
|
loaders: defaultLoaders,
|
|
metaConfigFilePath: null
|
|
};
|
|
const normalizedOptions = {
|
|
...defaults,
|
|
...options,
|
|
loaders: {
|
|
...defaults.loaders,
|
|
...options.loaders
|
|
}
|
|
};
|
|
return normalizedOptions;
|
|
}
|
|
function normalizeOptionsSync(moduleName, options) {
|
|
const defaults = {
|
|
packageProp: moduleName,
|
|
searchPlaces: ["package.json", `.${moduleName}rc`, `.${moduleName}rc.json`, `.${moduleName}rc.yaml`, `.${moduleName}rc.yml`, `.${moduleName}rc.js`, `.${moduleName}rc.cjs`, `.config/${moduleName}rc`, `.config/${moduleName}rc.json`, `.config/${moduleName}rc.yaml`, `.config/${moduleName}rc.yml`, `.config/${moduleName}rc.js`, `.config/${moduleName}rc.cjs`, `${moduleName}.config.js`, `${moduleName}.config.cjs`],
|
|
ignoreEmptySearchPlaces: true,
|
|
stopDir: _os.default.homedir(),
|
|
cache: true,
|
|
transform: identity,
|
|
loaders: defaultLoadersSync,
|
|
metaConfigFilePath: null
|
|
};
|
|
const normalizedOptions = {
|
|
...defaults,
|
|
...options,
|
|
loaders: {
|
|
...defaults.loaders,
|
|
...options.loaders
|
|
}
|
|
};
|
|
return normalizedOptions;
|
|
}
|
|
}
|
|
});
|
|
|
|
// node_modules/find-parent-dir/index.js
|
|
var require_find_parent_dir = __commonJS({
|
|
"node_modules/find-parent-dir/index.js"(exports, module) {
|
|
"use strict";
|
|
var path = __require("path");
|
|
var fs2 = __require("fs");
|
|
var exists = fs2.exists || path.exists;
|
|
var existsSync = fs2.existsSync || path.existsSync;
|
|
function splitPath(path2) {
|
|
var parts = path2.split(/(\/|\\)/);
|
|
if (!parts.length)
|
|
return parts;
|
|
return !parts[0].length ? parts.slice(1) : parts;
|
|
}
|
|
exports = module.exports = function(currentFullPath, clue, cb) {
|
|
function testDir(parts) {
|
|
if (parts.length === 0)
|
|
return cb(null, null);
|
|
var p = parts.join("");
|
|
exists(path.join(p, clue), function(itdoes) {
|
|
if (itdoes)
|
|
return cb(null, p);
|
|
testDir(parts.slice(0, -1));
|
|
});
|
|
}
|
|
testDir(splitPath(currentFullPath));
|
|
};
|
|
exports.sync = function(currentFullPath, clue) {
|
|
function testDir(parts) {
|
|
if (parts.length === 0)
|
|
return null;
|
|
var p = parts.join("");
|
|
var itdoes = existsSync(path.join(p, clue));
|
|
return itdoes ? p : testDir(parts.slice(0, -1));
|
|
}
|
|
return testDir(splitPath(currentFullPath));
|
|
};
|
|
}
|
|
});
|
|
|
|
// node_modules/ci-info/vendors.json
|
|
var require_vendors = __commonJS({
|
|
"node_modules/ci-info/vendors.json"(exports, module) {
|
|
module.exports = [
|
|
{
|
|
name: "Appcircle",
|
|
constant: "APPCIRCLE",
|
|
env: "AC_APPCIRCLE"
|
|
},
|
|
{
|
|
name: "AppVeyor",
|
|
constant: "APPVEYOR",
|
|
env: "APPVEYOR",
|
|
pr: "APPVEYOR_PULL_REQUEST_NUMBER"
|
|
},
|
|
{
|
|
name: "AWS CodeBuild",
|
|
constant: "CODEBUILD",
|
|
env: "CODEBUILD_BUILD_ARN"
|
|
},
|
|
{
|
|
name: "Azure Pipelines",
|
|
constant: "AZURE_PIPELINES",
|
|
env: "SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",
|
|
pr: "SYSTEM_PULLREQUEST_PULLREQUESTID"
|
|
},
|
|
{
|
|
name: "Bamboo",
|
|
constant: "BAMBOO",
|
|
env: "bamboo_planKey"
|
|
},
|
|
{
|
|
name: "Bitbucket Pipelines",
|
|
constant: "BITBUCKET",
|
|
env: "BITBUCKET_COMMIT",
|
|
pr: "BITBUCKET_PR_ID"
|
|
},
|
|
{
|
|
name: "Bitrise",
|
|
constant: "BITRISE",
|
|
env: "BITRISE_IO",
|
|
pr: "BITRISE_PULL_REQUEST"
|
|
},
|
|
{
|
|
name: "Buddy",
|
|
constant: "BUDDY",
|
|
env: "BUDDY_WORKSPACE_ID",
|
|
pr: "BUDDY_EXECUTION_PULL_REQUEST_ID"
|
|
},
|
|
{
|
|
name: "Buildkite",
|
|
constant: "BUILDKITE",
|
|
env: "BUILDKITE",
|
|
pr: {
|
|
env: "BUILDKITE_PULL_REQUEST",
|
|
ne: "false"
|
|
}
|
|
},
|
|
{
|
|
name: "CircleCI",
|
|
constant: "CIRCLE",
|
|
env: "CIRCLECI",
|
|
pr: "CIRCLE_PULL_REQUEST"
|
|
},
|
|
{
|
|
name: "Cirrus CI",
|
|
constant: "CIRRUS",
|
|
env: "CIRRUS_CI",
|
|
pr: "CIRRUS_PR"
|
|
},
|
|
{
|
|
name: "Codefresh",
|
|
constant: "CODEFRESH",
|
|
env: "CF_BUILD_ID",
|
|
pr: {
|
|
any: [
|
|
"CF_PULL_REQUEST_NUMBER",
|
|
"CF_PULL_REQUEST_ID"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
name: "Codemagic",
|
|
constant: "CODEMAGIC",
|
|
env: "CM_BUILD_ID",
|
|
pr: "CM_PULL_REQUEST"
|
|
},
|
|
{
|
|
name: "Codeship",
|
|
constant: "CODESHIP",
|
|
env: {
|
|
CI_NAME: "codeship"
|
|
}
|
|
},
|
|
{
|
|
name: "Drone",
|
|
constant: "DRONE",
|
|
env: "DRONE",
|
|
pr: {
|
|
DRONE_BUILD_EVENT: "pull_request"
|
|
}
|
|
},
|
|
{
|
|
name: "dsari",
|
|
constant: "DSARI",
|
|
env: "DSARI"
|
|
},
|
|
{
|
|
name: "Expo Application Services",
|
|
constant: "EAS",
|
|
env: "EAS_BUILD"
|
|
},
|
|
{
|
|
name: "Gerrit",
|
|
constant: "GERRIT",
|
|
env: "GERRIT_PROJECT"
|
|
},
|
|
{
|
|
name: "GitHub Actions",
|
|
constant: "GITHUB_ACTIONS",
|
|
env: "GITHUB_ACTIONS",
|
|
pr: {
|
|
GITHUB_EVENT_NAME: "pull_request"
|
|
}
|
|
},
|
|
{
|
|
name: "GitLab CI",
|
|
constant: "GITLAB",
|
|
env: "GITLAB_CI",
|
|
pr: "CI_MERGE_REQUEST_ID"
|
|
},
|
|
{
|
|
name: "GoCD",
|
|
constant: "GOCD",
|
|
env: "GO_PIPELINE_LABEL"
|
|
},
|
|
{
|
|
name: "Google Cloud Build",
|
|
constant: "GOOGLE_CLOUD_BUILD",
|
|
env: "BUILDER_OUTPUT"
|
|
},
|
|
{
|
|
name: "Harness CI",
|
|
constant: "HARNESS",
|
|
env: "HARNESS_BUILD_ID"
|
|
},
|
|
{
|
|
name: "Heroku",
|
|
constant: "HEROKU",
|
|
env: {
|
|
env: "NODE",
|
|
includes: "/app/.heroku/node/bin/node"
|
|
}
|
|
},
|
|
{
|
|
name: "Hudson",
|
|
constant: "HUDSON",
|
|
env: "HUDSON_URL"
|
|
},
|
|
{
|
|
name: "Jenkins",
|
|
constant: "JENKINS",
|
|
env: [
|
|
"JENKINS_URL",
|
|
"BUILD_ID"
|
|
],
|
|
pr: {
|
|
any: [
|
|
"ghprbPullId",
|
|
"CHANGE_ID"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
name: "LayerCI",
|
|
constant: "LAYERCI",
|
|
env: "LAYERCI",
|
|
pr: "LAYERCI_PULL_REQUEST"
|
|
},
|
|
{
|
|
name: "Magnum CI",
|
|
constant: "MAGNUM",
|
|
env: "MAGNUM"
|
|
},
|
|
{
|
|
name: "Netlify CI",
|
|
constant: "NETLIFY",
|
|
env: "NETLIFY",
|
|
pr: {
|
|
env: "PULL_REQUEST",
|
|
ne: "false"
|
|
}
|
|
},
|
|
{
|
|
name: "Nevercode",
|
|
constant: "NEVERCODE",
|
|
env: "NEVERCODE",
|
|
pr: {
|
|
env: "NEVERCODE_PULL_REQUEST",
|
|
ne: "false"
|
|
}
|
|
},
|
|
{
|
|
name: "ReleaseHub",
|
|
constant: "RELEASEHUB",
|
|
env: "RELEASE_BUILD_ID"
|
|
},
|
|
{
|
|
name: "Render",
|
|
constant: "RENDER",
|
|
env: "RENDER",
|
|
pr: {
|
|
IS_PULL_REQUEST: "true"
|
|
}
|
|
},
|
|
{
|
|
name: "Sail CI",
|
|
constant: "SAIL",
|
|
env: "SAILCI",
|
|
pr: "SAIL_PULL_REQUEST_NUMBER"
|
|
},
|
|
{
|
|
name: "Screwdriver",
|
|
constant: "SCREWDRIVER",
|
|
env: "SCREWDRIVER",
|
|
pr: {
|
|
env: "SD_PULL_REQUEST",
|
|
ne: "false"
|
|
}
|
|
},
|
|
{
|
|
name: "Semaphore",
|
|
constant: "SEMAPHORE",
|
|
env: "SEMAPHORE",
|
|
pr: "PULL_REQUEST_NUMBER"
|
|
},
|
|
{
|
|
name: "Shippable",
|
|
constant: "SHIPPABLE",
|
|
env: "SHIPPABLE",
|
|
pr: {
|
|
IS_PULL_REQUEST: "true"
|
|
}
|
|
},
|
|
{
|
|
name: "Solano CI",
|
|
constant: "SOLANO",
|
|
env: "TDDIUM",
|
|
pr: "TDDIUM_PR_ID"
|
|
},
|
|
{
|
|
name: "Sourcehut",
|
|
constant: "SOURCEHUT",
|
|
env: {
|
|
CI_NAME: "sourcehut"
|
|
}
|
|
},
|
|
{
|
|
name: "Strider CD",
|
|
constant: "STRIDER",
|
|
env: "STRIDER"
|
|
},
|
|
{
|
|
name: "TaskCluster",
|
|
constant: "TASKCLUSTER",
|
|
env: [
|
|
"TASK_ID",
|
|
"RUN_ID"
|
|
]
|
|
},
|
|
{
|
|
name: "TeamCity",
|
|
constant: "TEAMCITY",
|
|
env: "TEAMCITY_VERSION"
|
|
},
|
|
{
|
|
name: "Travis CI",
|
|
constant: "TRAVIS",
|
|
env: "TRAVIS",
|
|
pr: {
|
|
env: "TRAVIS_PULL_REQUEST",
|
|
ne: "false"
|
|
}
|
|
},
|
|
{
|
|
name: "Vercel",
|
|
constant: "VERCEL",
|
|
env: {
|
|
any: [
|
|
"NOW_BUILDER",
|
|
"VERCEL"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
name: "Visual Studio App Center",
|
|
constant: "APPCENTER",
|
|
env: "APPCENTER_BUILD_ID"
|
|
},
|
|
{
|
|
name: "Woodpecker",
|
|
constant: "WOODPECKER",
|
|
env: {
|
|
CI: "woodpecker"
|
|
},
|
|
pr: {
|
|
CI_BUILD_EVENT: "pull_request"
|
|
}
|
|
},
|
|
{
|
|
name: "Xcode Cloud",
|
|
constant: "XCODE_CLOUD",
|
|
env: "CI_XCODE_PROJECT",
|
|
pr: "CI_PULL_REQUEST_NUMBER"
|
|
},
|
|
{
|
|
name: "Xcode Server",
|
|
constant: "XCODE_SERVER",
|
|
env: "XCS"
|
|
}
|
|
];
|
|
}
|
|
});
|
|
|
|
// node_modules/ci-info/index.js
|
|
var require_ci_info = __commonJS({
|
|
"node_modules/ci-info/index.js"(exports) {
|
|
"use strict";
|
|
var vendors = require_vendors();
|
|
var env = process.env;
|
|
Object.defineProperty(exports, "_vendors", {
|
|
value: vendors.map(function(v) {
|
|
return v.constant;
|
|
})
|
|
});
|
|
exports.name = null;
|
|
exports.isPR = null;
|
|
vendors.forEach(function(vendor) {
|
|
const envs = Array.isArray(vendor.env) ? vendor.env : [vendor.env];
|
|
const isCI2 = envs.every(function(obj) {
|
|
return checkEnv(obj);
|
|
});
|
|
exports[vendor.constant] = isCI2;
|
|
if (!isCI2) {
|
|
return;
|
|
}
|
|
exports.name = vendor.name;
|
|
switch (typeof vendor.pr) {
|
|
case "string":
|
|
exports.isPR = !!env[vendor.pr];
|
|
break;
|
|
case "object":
|
|
if ("env" in vendor.pr) {
|
|
exports.isPR = vendor.pr.env in env && env[vendor.pr.env] !== vendor.pr.ne;
|
|
} else if ("any" in vendor.pr) {
|
|
exports.isPR = vendor.pr.any.some(function(key) {
|
|
return !!env[key];
|
|
});
|
|
} else {
|
|
exports.isPR = checkEnv(vendor.pr);
|
|
}
|
|
break;
|
|
default:
|
|
exports.isPR = null;
|
|
}
|
|
});
|
|
exports.isCI = !!(env.CI !== "false" && // Bypass all checks if CI env is explicitly set to 'false'
|
|
(env.BUILD_ID || // Jenkins, Cloudbees
|
|
env.BUILD_NUMBER || // Jenkins, TeamCity
|
|
env.CI || // Travis CI, CircleCI, Cirrus CI, Gitlab CI, Appveyor, CodeShip, dsari
|
|
env.CI_APP_ID || // Appflow
|
|
env.CI_BUILD_ID || // Appflow
|
|
env.CI_BUILD_NUMBER || // Appflow
|
|
env.CI_NAME || // Codeship and others
|
|
env.CONTINUOUS_INTEGRATION || // Travis CI, Cirrus CI
|
|
env.RUN_ID || // TaskCluster, dsari
|
|
exports.name || false));
|
|
function checkEnv(obj) {
|
|
if (typeof obj === "string")
|
|
return !!env[obj];
|
|
if ("env" in obj) {
|
|
return env[obj.env] && env[obj.env].includes(obj.includes);
|
|
}
|
|
if ("any" in obj) {
|
|
return obj.any.some(function(k) {
|
|
return !!env[k];
|
|
});
|
|
}
|
|
return Object.keys(obj).every(function(k) {
|
|
return env[k] === obj[k];
|
|
});
|
|
}
|
|
}
|
|
});
|
|
|
|
// src/common/mockable.js
|
|
var import_cosmiconfig = __toESM(require_dist(), 1);
|
|
var import_find_parent_dir = __toESM(require_find_parent_dir(), 1);
|
|
import fs from "fs/promises";
|
|
|
|
// node_modules/get-stdin/index.js
|
|
var { stdin } = process;
|
|
async function getStdin() {
|
|
let result = "";
|
|
if (stdin.isTTY) {
|
|
return result;
|
|
}
|
|
stdin.setEncoding("utf8");
|
|
for await (const chunk of stdin) {
|
|
result += chunk;
|
|
}
|
|
return result;
|
|
}
|
|
getStdin.buffer = async () => {
|
|
const result = [];
|
|
let length = 0;
|
|
if (stdin.isTTY) {
|
|
return Buffer.concat([]);
|
|
}
|
|
for await (const chunk of stdin) {
|
|
result.push(chunk);
|
|
length += chunk.length;
|
|
}
|
|
return Buffer.concat(result, length);
|
|
};
|
|
|
|
// src/common/mockable.js
|
|
var import_ci_info = __toESM(require_ci_info(), 1);
|
|
function writeFormattedFile(file, data) {
|
|
return fs.writeFile(file, data);
|
|
}
|
|
var mockable = {
|
|
cosmiconfig: import_cosmiconfig.cosmiconfig,
|
|
findParentDir: import_find_parent_dir.sync,
|
|
getStdin,
|
|
isCI: () => import_ci_info.isCI,
|
|
writeFormattedFile
|
|
};
|
|
var mockable_default = mockable;
|
|
export {
|
|
mockable_default as default
|
|
};
|