massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / prettier / third-party.js
index 5f1ac8ea67270f4979af1fd78a9af246bc0c6af2..01f8124017ce51fb22d62b3617ff2726e3468738 100644 (file)
@@ -1,34 +1,34 @@
 'use strict';
 
-var os = require('os');
-var path = require('path');
-var Module = require('module');
-var fs = require('fs');
-var util = require('util');
+var require$$0$3 = require('os');
+var require$$0$1 = require('path');
+var require$$1$1 = require('module');
+var require$$1 = require('fs');
+var require$$0$2 = require('util');
 
 function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
 
-var os__default = /*#__PURE__*/_interopDefaultLegacy(os);
-var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
-var Module__default = /*#__PURE__*/_interopDefaultLegacy(Module);
-var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
-var util__default = /*#__PURE__*/_interopDefaultLegacy(util);
-
-function createCommonjsModule(fn, basedir, module) {
-       return module = {
-               path: basedir,
-               exports: {},
-               require: function (path, base) {
-                       return commonjsRequire(path, (base === undefined || base === null) ? module.path : base);
-               }
-       }, fn(module, module.exports), module.exports;
-}
+var require$$0__default$2 = /*#__PURE__*/_interopDefaultLegacy(require$$0$3);
+var require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0$1);
+var require$$1__default$1 = /*#__PURE__*/_interopDefaultLegacy(require$$1$1);
+var require$$1__default = /*#__PURE__*/_interopDefaultLegacy(require$$1);
+var require$$0__default$1 = /*#__PURE__*/_interopDefaultLegacy(require$$0$2);
 
-function commonjsRequire () {
-       throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');
-}
+var dist$2 = {};
+
+var Explorer$1 = {};
+
+var ExplorerBase$1 = {};
+
+var loaders$1 = {};
+
+var resolveFrom$2 = {exports: {}};
+
+const path$1 = require$$0__default["default"];
+const Module = require$$1__default$1["default"];
+const fs$1 = require$$1__default["default"];
 
-const resolveFrom = (fromDir, moduleId, silent) => {
+const resolveFrom$1 = (fromDir, moduleId, silent) => {
   if (typeof fromDir !== 'string') {
     throw new TypeError(`Expected \`fromDir\` to be of type \`string\`, got \`${typeof fromDir}\``);
   }
@@ -38,10 +38,10 @@ const resolveFrom = (fromDir, moduleId, silent) => {
   }
 
   try {
-    fromDir = fs__default['default'].realpathSync(fromDir);
+    fromDir = fs$1.realpathSync(fromDir);
   } catch (err) {
     if (err.code === 'ENOENT') {
-      fromDir = path__default['default'].resolve(fromDir);
+      fromDir = path$1.resolve(fromDir);
     } else if (silent) {
       return null;
     } else {
@@ -49,12 +49,12 @@ const resolveFrom = (fromDir, moduleId, silent) => {
     }
   }
 
-  const fromFile = path__default['default'].join(fromDir, 'noop.js');
+  const fromFile = path$1.join(fromDir, 'noop.js');
 
-  const resolveFileName = () => Module__default['default']._resolveFilename(moduleId, {
+  const resolveFileName = () => Module._resolveFilename(moduleId, {
     id: fromFile,
     filename: fromFile,
-    paths: Module__default['default']._nodeModulePaths(fromDir)
+    paths: Module._nodeModulePaths(fromDir)
   });
 
   if (silent) {
@@ -68,19 +68,38 @@ const resolveFrom = (fromDir, moduleId, silent) => {
   return resolveFileName();
 };
 
-var resolveFrom_1 = (fromDir, moduleId) => resolveFrom(fromDir, moduleId);
+resolveFrom$2.exports = (fromDir, moduleId) => resolveFrom$1(fromDir, moduleId);
+
+resolveFrom$2.exports.silent = (fromDir, moduleId) => resolveFrom$1(fromDir, moduleId, true);
+
+var callsites$1 = {exports: {}};
+
+const callsites = () => {
+  const _prepareStackTrace = Error.prepareStackTrace;
+
+  Error.prepareStackTrace = (_, stack) => stack;
+
+  const stack = new Error().stack.slice(1);
+  Error.prepareStackTrace = _prepareStackTrace;
+  return stack;
+};
+
+callsites$1.exports = callsites; // TODO: Remove this for the next major release
+
+callsites$1.exports.default = callsites;
 
-var silent = (fromDir, moduleId) => resolveFrom(fromDir, moduleId, true);
-resolveFrom_1.silent = silent;
+const path = require$$0__default["default"];
+const resolveFrom = resolveFrom$2.exports;
 
-var importFresh = moduleId => {
+var importFresh$1 = moduleId => {
   if (typeof moduleId !== 'string') {
     throw new TypeError('Expected a string');
   }
 
   const parentPath = __filename;
-  const filePath = resolveFrom_1(path__default['default'].dirname(parentPath), moduleId);
-  const oldModule = eval('require').cache[filePath]; // Delete itself from module parent
+  const cwd = parentPath ? path.dirname(parentPath) : __dirname;
+  const filePath = resolveFrom(cwd, moduleId);
+  const oldModule = require.cache[filePath]; // Delete itself from module parent
 
   if (oldModule && oldModule.parent) {
     let i = oldModule.parent.children.length;
@@ -92,14 +111,14 @@ var importFresh = moduleId => {
     }
   }
 
-  delete eval('require').cache[filePath]; // Delete module from cache
+  delete require.cache[filePath]; // Delete module from cache
 
-  const parent = eval('require').cache[parentPath]; // If `filePath` and `parentPath` are the same, cache will already be deleted so we won't get a memory leak in next step
+  const parent = require.cache[parentPath]; // If `filePath` and `parentPath` are the same, cache will already be deleted so we won't get a memory leak in next step
 
-  return parent === undefined ? eval('require')(filePath) : parent.require(filePath); // In case cache doesn't have parent, fall back to normal require
+  return parent === undefined ? require(filePath) : parent.require(filePath); // In case cache doesn't have parent, fall back to normal require
 };
 
-var isArrayish = function isArrayish(obj) {
+var isArrayish$1 = function isArrayish(obj) {
   if (!obj) {
     return false;
   }
@@ -107,7 +126,10 @@ var isArrayish = function isArrayish(obj) {
   return obj instanceof Array || Array.isArray(obj) || obj.length >= 0 && obj.splice instanceof Function;
 };
 
-var errorEx = function errorEx(name, properties) {
+var util = require$$0__default$1["default"];
+var isArrayish = isArrayish$1;
+
+var errorEx$1 = function errorEx(name, properties) {
   if (!name || name.constructor !== String) {
     properties = name || {};
     name = Error.name;
@@ -201,13 +223,13 @@ var errorEx = function errorEx(name, properties) {
     Object.setPrototypeOf(errorExError.prototype, Error.prototype);
     Object.setPrototypeOf(errorExError, Error);
   } else {
-    util__default['default'].inherits(errorExError, Error);
+    util.inherits(errorExError, Error);
   }
 
   return errorExError;
 };
 
-errorEx.append = function (str, def) {
+errorEx$1.append = function (str, def) {
   return {
     message: function (v, message) {
       v = v || def;
@@ -221,7 +243,7 @@ errorEx.append = function (str, def) {
   };
 };
 
-errorEx.line = function (str, def) {
+errorEx$1.line = function (str, def) {
   return {
     line: function (v) {
       v = v || def;
@@ -235,38 +257,124 @@ errorEx.line = function (str, def) {
   };
 };
 
-var errorEx_1 = errorEx;
+var errorEx_1 = errorEx$1;
+
+const hexify = char => {
+  const h = char.charCodeAt(0).toString(16).toUpperCase();
+  return '0x' + (h.length % 2 ? '0' : '') + h;
+};
+
+const 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 !== undefined) {
+    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
+    };
+  }
+};
+
+class JSONParseError 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;
+  }
+
+}
+
+const kIndent = Symbol.for('indent');
+const kNewline = Symbol.for('newline'); // only respect indentation if we got a line break, otherwise squash it
+// things other than objects and arrays aren't indented, so ignore those
+// Important: in both of these regexps, the $1 capture group is the newline
+// or undefined, and the $2 capture group is the indent, or undefined.
 
-var jsonParseBetterErrors = parseJson;
+const formatRE = /^\s*[{\[]((?:\r?\n)+)([\s\t]*)/;
+const emptyRE = /^(?:\{\}|\[\])((?:\r?\n)+)?$/;
 
-function parseJson(txt, reviver, context) {
+const parseJson$2 = (txt, reviver, context) => {
+  const parseText = stripBOM(txt);
   context = context || 20;
 
   try {
-    return JSON.parse(txt, reviver);
+    // get the indentation so that we can save it back nicely
+    // if the file starts with {" then we have an indent of '', ie, none
+    // otherwise, pick the indentation of the next line after the first \n
+    // If the pattern doesn't match, then it means no indentation.
+    // JSON.stringify ignores symbols, so this is reasonably safe.
+    // if the string is '{}' or '[]', then use the default 2-space indent.
+    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') {
+    if (typeof txt !== 'string' && !Buffer.isBuffer(txt)) {
       const isEmptyArray = Array.isArray(txt) && txt.length === 0;
-      const errorMessage = 'Cannot parse ' + (isEmptyArray ? 'an empty array' : String(txt));
-      throw new TypeError(errorMessage);
+      throw Object.assign(new TypeError(`Cannot parse ${isEmptyArray ? 'an empty array' : String(txt)}`), {
+        code: 'EJSONPARSE',
+        systemError: e
+      });
     }
 
-    const syntaxErr = e.message.match(/^Unexpected token.*position\s+(\d+)/i);
-    const errIdx = syntaxErr ? +syntaxErr[1] : e.message.match(/^Unexpected end of JSON.*/i) ? txt.length - 1 : null;
+    throw new JSONParseError(e, parseText, context, parseJson$2);
+  }
+}; // Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)
+// because the buffer-to-string conversion in `fs.readFileSync()`
+// translates it to FEFF, the UTF-16 BOM.
+
 
-    if (errIdx != null) {
-      const start = errIdx <= context ? 0 : errIdx - context;
-      const end = errIdx + context >= txt.length ? txt.length : errIdx + context;
-      e.message += ` while parsing near '${start === 0 ? '' : '...'}${txt.slice(start, end)}${end === txt.length ? '' : '...'}'`;
-    } else {
-      e.message += ` while parsing '${txt.slice(0, context * 2)}'`;
-    }
+const stripBOM = txt => String(txt).replace(/^\uFEFF/, '');
 
-    throw e;
-  }
-}
+var jsonParseEvenBetterErrors = parseJson$2;
+parseJson$2.JSONParseError = JSONParseError;
+
+parseJson$2.noExceptions = (txt, reviver) => {
+  try {
+    return JSON.parse(stripBOM(txt), reviver);
+  } catch (e) {}
+};
 
-var dist = createCommonjsModule(function (module, exports) {
+var dist$1 = {};
+
+(function (exports) {
 
   var LF = '\n';
   var CR = '\r';
@@ -347,149 +455,160 @@ var dist = createCommonjsModule(function (module, exports) {
 
   exports.__esModule = true;
   exports["default"] = LinesAndColumns;
-});
+})(dist$1);
 
-var jsTokens = createCommonjsModule(function (module, exports) {
-  // Copyright 2014, 2015, 2016, 2017, 2018 Simon Lydell
-  // License: MIT. (See LICENSE.)
-  Object.defineProperty(exports, "__esModule", {
-    value: true
-  }); // This regex comes from regex.coffee, and is inserted here by generate-index.js
-  // (run `npm run build`).
+var lib$2 = {};
 
-  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;
+var lib$1 = {};
 
-  exports.matchToToken = function (match) {
-    var token = {
-      type: "invalid",
-      value: match[0],
-      closed: undefined
-    };
-    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;
+var jsTokens = {};
+
+// License: MIT. (See LICENSE.)
+
+Object.defineProperty(jsTokens, "__esModule", {
+  value: true
+}); // This regex comes from regex.coffee, and is inserted here by generate-index.js
+// (run `npm run build`).
+
+jsTokens.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;
+
+jsTokens.matchToToken = function (match) {
+  var token = {
+    type: "invalid",
+    value: match[0],
+    closed: undefined
   };
-});
+  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;
+};
 
-var identifier = createCommonjsModule(function (module, exports) {
+var lib = {};
 
-  Object.defineProperty(exports, "__esModule", {
-    value: true
-  });
-  exports.isIdentifierStart = isIdentifierStart;
-  exports.isIdentifierChar = isIdentifierChar;
-  exports.isIdentifierName = isIdentifierName;
-  let 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\u08a0-\u08b4\u08b6-\u08c7\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\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\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-\u170c\u170e-\u1711\u1720-\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-\u1b4b\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-\u2c2e\u2c30-\u2c5e\u2c60-\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-\u9ffc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7ca\ua7f5-\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";
-  let 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\u08d3-\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\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\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-\u0ecd\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-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf\u1ac0\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-\u1df9\u1dfb-\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";
-  const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]");
-  const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]");
-  nonASCIIidentifierStartChars = nonASCIIidentifierChars = null;
-  const 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, 157, 310, 10, 21, 11, 7, 153, 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, 107, 20, 28, 22, 13, 52, 76, 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, 85, 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, 230, 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, 35, 56, 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, 190, 0, 80, 921, 103, 110, 18, 195, 2749, 1070, 4050, 582, 8634, 568, 8, 30, 114, 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, 8952, 286, 50, 2, 18, 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, 2357, 44, 11, 6, 17, 0, 370, 43, 1301, 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, 42717, 35, 4148, 12, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938];
-  const 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, 154, 10, 176, 2, 54, 14, 32, 9, 16, 3, 46, 10, 54, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 161, 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, 19306, 9, 135, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 5319, 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, 262, 6, 10, 9, 419, 13, 1495, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
-
-  function isInAstralSet(code, set) {
-    let pos = 0x10000;
-
-    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;
-    }
+var identifier = {};
 
-    return false;
+Object.defineProperty(identifier, "__esModule", {
+  value: true
+});
+identifier.isIdentifierStart = isIdentifierStart;
+identifier.isIdentifierChar = isIdentifierChar;
+identifier.isIdentifierName = isIdentifierName;
+let 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";
+let 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\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-\u0ecd\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";
+const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]");
+const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]");
+nonASCIIidentifierStartChars = nonASCIIidentifierChars = null;
+const 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, 85, 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, 190, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1070, 4050, 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, 46, 2, 18, 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, 482, 44, 11, 6, 17, 0, 322, 29, 19, 43, 1269, 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, 4152, 8, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938];
+const 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, 154, 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, 161, 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, 19306, 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, 262, 6, 10, 9, 357, 0, 62, 13, 1495, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
+
+function isInAstralSet(code, set) {
+  let pos = 0x10000;
+
+  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 <= 0xffff) {
+    return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code));
   }
 
-  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;
+  return isInAstralSet(code, astralIdentifierStartCodes);
+}
 
-    if (code <= 0xffff) {
-      return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code));
-    }
+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;
 
-    return isInAstralSet(code, astralIdentifierStartCodes);
+  if (code <= 0xffff) {
+    return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));
   }
 
-  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;
+  return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes);
+}
 
-    if (code <= 0xffff) {
-      return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));
-    }
+function isIdentifierName(name) {
+  let isFirst = true;
 
-    return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes);
-  }
+  for (let i = 0; i < name.length; i++) {
+    let cp = name.charCodeAt(i);
 
-  function isIdentifierName(name) {
-    let isFirst = true;
+    if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) {
+      const trail = name.charCodeAt(++i);
 
-    for (let _i = 0, _Array$from = Array.from(name); _i < _Array$from.length; _i++) {
-      const char = _Array$from[_i];
-      const cp = char.codePointAt(0);
+      if ((trail & 0xfc00) === 0xdc00) {
+        cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff);
+      }
+    }
 
-      if (isFirst) {
-        if (!isIdentifierStart(cp)) {
-          return false;
-        }
+    if (isFirst) {
+      isFirst = false;
 
-        isFirst = false;
-      } else if (!isIdentifierChar(cp)) {
+      if (!isIdentifierStart(cp)) {
         return false;
       }
+    } else if (!isIdentifierChar(cp)) {
+      return false;
     }
-
-    return !isFirst;
   }
-});
 
-var keyword = createCommonjsModule(function (module, exports) {
+  return !isFirst;
+}
 
-  Object.defineProperty(exports, "__esModule", {
-    value: true
-  });
-  exports.isReservedWord = isReservedWord;
-  exports.isStrictReservedWord = isStrictReservedWord;
-  exports.isStrictBindOnlyReservedWord = isStrictBindOnlyReservedWord;
-  exports.isStrictBindReservedWord = isStrictBindReservedWord;
-  exports.isKeyword = isKeyword;
-  const 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"]
-  };
-  const keywords = new Set(reservedWords.keyword);
-  const reservedWordsStrictSet = new Set(reservedWords.strict);
-  const reservedWordsStrictBindSet = new Set(reservedWords.strictBind);
+var keyword = {};
 
-  function isReservedWord(word, inModule) {
-    return inModule && word === "await" || word === "enum";
-  }
+Object.defineProperty(keyword, "__esModule", {
+  value: true
+});
+keyword.isReservedWord = isReservedWord;
+keyword.isStrictReservedWord = isStrictReservedWord;
+keyword.isStrictBindOnlyReservedWord = isStrictBindOnlyReservedWord;
+keyword.isStrictBindReservedWord = isStrictBindReservedWord;
+keyword.isKeyword = isKeyword;
+const 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"]
+};
+const keywords = new Set(reservedWords.keyword);
+const reservedWordsStrictSet = new Set(reservedWords.strict);
+const reservedWordsStrictBindSet = new Set(reservedWords.strictBind);
 
-  function isStrictReservedWord(word, inModule) {
-    return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);
-  }
+function isReservedWord(word, inModule) {
+  return inModule && word === "await" || word === "enum";
+}
 
-  function isStrictBindOnlyReservedWord(word) {
-    return reservedWordsStrictBindSet.has(word);
-  }
+function isStrictReservedWord(word, inModule) {
+  return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);
+}
 
-  function isStrictBindReservedWord(word, inModule) {
-    return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word);
-  }
+function isStrictBindOnlyReservedWord(word) {
+  return reservedWordsStrictBindSet.has(word);
+}
 
-  function isKeyword(word) {
-    return keywords.has(word);
-  }
-});
+function isStrictBindReservedWord(word, inModule) {
+  return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word);
+}
 
-var lib = createCommonjsModule(function (module, exports) {
+function isKeyword(word) {
+  return keywords.has(word);
+}
+
+(function (exports) {
 
   Object.defineProperty(exports, "__esModule", {
     value: true
@@ -497,52 +616,56 @@ var lib = createCommonjsModule(function (module, exports) {
   Object.defineProperty(exports, "isIdentifierName", {
     enumerable: true,
     get: function () {
-      return identifier.isIdentifierName;
+      return _identifier.isIdentifierName;
     }
   });
   Object.defineProperty(exports, "isIdentifierChar", {
     enumerable: true,
     get: function () {
-      return identifier.isIdentifierChar;
+      return _identifier.isIdentifierChar;
     }
   });
   Object.defineProperty(exports, "isIdentifierStart", {
     enumerable: true,
     get: function () {
-      return identifier.isIdentifierStart;
+      return _identifier.isIdentifierStart;
     }
   });
   Object.defineProperty(exports, "isReservedWord", {
     enumerable: true,
     get: function () {
-      return keyword.isReservedWord;
+      return _keyword.isReservedWord;
     }
   });
   Object.defineProperty(exports, "isStrictBindOnlyReservedWord", {
     enumerable: true,
     get: function () {
-      return keyword.isStrictBindOnlyReservedWord;
+      return _keyword.isStrictBindOnlyReservedWord;
     }
   });
   Object.defineProperty(exports, "isStrictBindReservedWord", {
     enumerable: true,
     get: function () {
-      return keyword.isStrictBindReservedWord;
+      return _keyword.isStrictBindReservedWord;
     }
   });
   Object.defineProperty(exports, "isStrictReservedWord", {
     enumerable: true,
     get: function () {
-      return keyword.isStrictReservedWord;
+      return _keyword.isStrictReservedWord;
     }
   });
   Object.defineProperty(exports, "isKeyword", {
     enumerable: true,
     get: function () {
-      return keyword.isKeyword;
+      return _keyword.isKeyword;
     }
   });
-});
+  var _identifier = identifier;
+  var _keyword = keyword;
+})(lib);
+
+var chalk = {exports: {}};
 
 var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g;
 
@@ -554,6 +677,10 @@ var escapeStringRegexp = function (str) {
   return str.replace(matchOperatorsRe, '\\$&');
 };
 
+var ansiStyles = {exports: {}};
+
+var conversions$2 = {exports: {}};
+
 var colorName = {
   "aliceblue": [240, 248, 255],
   "antiquewhite": [250, 235, 215],
@@ -705,903 +832,903 @@ var colorName = {
   "yellowgreen": [154, 205, 50]
 };
 
-var conversions = createCommonjsModule(function (module) {
-  /* MIT license */
-  // NOTE: conversions should only return primitive values (i.e. arrays, or
-  //       values that give correct `typeof` results).
-  //       do not use box values types (i.e. Number(), String(), etc.)
-  var reverseKeywords = {};
-
-  for (var key in colorName) {
-    if (colorName.hasOwnProperty(key)) {
-      reverseKeywords[colorName[key]] = 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']
-    }
-  }; // hide .channels and .labels properties
-
-  for (var 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);
-      }
+/* MIT license */
+var cssKeywords = colorName; // NOTE: conversions should only return primitive values (i.e. arrays, or
+//       values that give correct `typeof` results).
+//       do not use box values types (i.e. Number(), String(), etc.)
 
-      if (convert[model].labels.length !== convert[model].channels) {
-        throw new Error('channel and label counts mismatch: ' + model);
-      }
+var reverseKeywords = {};
 
-      var channels = convert[model].channels;
-      var 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
-      });
-    }
+for (var key in cssKeywords) {
+  if (cssKeywords.hasOwnProperty(key)) {
+    reverseKeywords[cssKeywords[key]] = key;
   }
+}
 
-  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;
+var convert$1 = conversions$2.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']
+  }
+}; // hide .channels and .labels properties
 
-    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;
+for (var model in convert$1) {
+  if (convert$1.hasOwnProperty(model)) {
+    if (!('channels' in convert$1[model])) {
+      throw new Error('missing channels property: ' + model);
     }
 
-    h = Math.min(h * 60, 360);
+    if (!('labels' in convert$1[model])) {
+      throw new Error('missing channel labels property: ' + model);
+    }
 
-    if (h < 0) {
-      h += 360;
+    if (convert$1[model].labels.length !== convert$1[model].channels) {
+      throw new Error('channel and label counts mismatch: ' + model);
     }
 
-    l = (min + max) / 2;
+    var channels = convert$1[model].channels;
+    var labels = convert$1[model].labels;
+    delete convert$1[model].channels;
+    delete convert$1[model].labels;
+    Object.defineProperty(convert$1[model], 'channels', {
+      value: channels
+    });
+    Object.defineProperty(convert$1[model], 'labels', {
+      value: labels
+    });
+  }
+}
 
-    if (max === min) {
-      s = 0;
-    } else if (l <= 0.5) {
-      s = delta / (max + min);
-    } else {
-      s = delta / (2 - max - min);
-    }
+convert$1.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;
 
-    return [h, s * 100, l * 100];
-  };
+  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;
+  }
 
-  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;
-    };
+  h = Math.min(h * 60, 360);
 
-    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 += 360;
+  }
 
-      if (h < 0) {
-        h += 1;
-      } else if (h > 1) {
-        h -= 1;
-      }
-    }
+  l = (min + max) / 2;
 
-    return [h * 360, s * 100, v * 100];
-  };
+  if (max === min) {
+    s = 0;
+  } else if (l <= 0.5) {
+    s = delta / (max + min);
+  } else {
+    s = delta / (2 - max - min);
+  }
 
-  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];
-  };
+  return [h, s * 100, l * 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];
+convert$1.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;
   };
-  /**
-   * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance
-   * */
-
 
-  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);
-  }
+  if (diff === 0) {
+    h = s = 0;
+  } else {
+    s = diff / v;
+    rdif = diffc(r);
+    gdif = diffc(g);
+    bdif = diffc(b);
 
-  convert.rgb.keyword = function (rgb) {
-    var reversed = reverseKeywords[rgb];
+    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 (reversed) {
-      return reversed;
+    if (h < 0) {
+      h += 1;
+    } else if (h > 1) {
+      h -= 1;
     }
+  }
 
-    var currentClosestDistance = Infinity;
-    var currentClosestKeyword;
+  return [h * 360, s * 100, v * 100];
+};
 
-    for (var keyword in colorName) {
-      if (colorName.hasOwnProperty(keyword)) {
-        var value = colorName[keyword]; // Compute comparative distance
+convert$1.rgb.hwb = function (rgb) {
+  var r = rgb[0];
+  var g = rgb[1];
+  var b = rgb[2];
+  var h = convert$1.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];
+};
 
-        var distance = comparativeDistance(rgb, value); // Check if its less, if so set as closest
+convert$1.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];
+};
+/**
+ * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance
+ * */
 
-        if (distance < currentClosestDistance) {
-          currentClosestDistance = distance;
-          currentClosestKeyword = keyword;
-        }
-      }
-    }
 
-    return currentClosestKeyword;
-  };
+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.keyword.rgb = function (keyword) {
-    return colorName[keyword];
-  };
+convert$1.rgb.keyword = function (rgb) {
+  var reversed = reverseKeywords[rgb];
 
-  convert.rgb.xyz = function (rgb) {
-    var r = rgb[0] / 255;
-    var g = rgb[1] / 255;
-    var b = rgb[2] / 255; // assume sRGB
-
-    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];
-  };
+  if (reversed) {
+    return reversed;
+  }
 
-  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 > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116;
-    y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116;
-    z = z > 0.008856 ? 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];
-  };
+  var currentClosestDistance = Infinity;
+  var currentClosestKeyword;
 
-  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;
+  for (var keyword in cssKeywords) {
+    if (cssKeywords.hasOwnProperty(keyword)) {
+      var value = cssKeywords[keyword]; // Compute comparative distance
 
-    if (s === 0) {
-      val = l * 255;
-      return [val, val, val];
-    }
+      var distance = comparativeDistance(rgb, value); // Check if its less, if so set as closest
 
-    if (l < 0.5) {
-      t2 = l * (1 + s);
-    } else {
-      t2 = l + s - l * s;
+      if (distance < currentClosestDistance) {
+        currentClosestDistance = distance;
+        currentClosestKeyword = keyword;
+      }
     }
+  }
 
-    t1 = 2 * l - t2;
-    rgb = [0, 0, 0];
+  return currentClosestKeyword;
+};
 
-    for (var i = 0; i < 3; i++) {
-      t3 = h + 1 / 3 * -(i - 1);
+convert$1.keyword.rgb = function (keyword) {
+  return cssKeywords[keyword];
+};
 
-      if (t3 < 0) {
-        t3++;
-      }
+convert$1.rgb.xyz = function (rgb) {
+  var r = rgb[0] / 255;
+  var g = rgb[1] / 255;
+  var b = rgb[2] / 255; // assume sRGB
+
+  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];
+};
 
-      if (t3 > 1) {
-        t3--;
-      }
+convert$1.rgb.lab = function (rgb) {
+  var xyz = convert$1.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 > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116;
+  y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116;
+  z = z > 0.008856 ? 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];
+};
 
-      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;
-      }
+convert$1.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;
 
-      rgb[i] = val * 255;
-    }
+  if (s === 0) {
+    val = l * 255;
+    return [val, val, val];
+  }
 
-    return rgb;
-  };
+  if (l < 0.5) {
+    t2 = l * (1 + s);
+  } else {
+    t2 = l + s - l * s;
+  }
 
-  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];
-  };
+  t1 = 2 * l - t2;
+  rgb = [0, 0, 0];
 
-  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;
+  for (var i = 0; i < 3; i++) {
+    t3 = h + 1 / 3 * -(i - 1);
 
-    switch (hi) {
-      case 0:
-        return [v, t, p];
+    if (t3 < 0) {
+      t3++;
+    }
 
-      case 1:
-        return [q, v, p];
+    if (t3 > 1) {
+      t3--;
+    }
 
-      case 2:
-        return [p, v, t];
+    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;
+    }
 
-      case 3:
-        return [p, q, v];
+    rgb[i] = val * 255;
+  }
 
-      case 4:
-        return [t, p, v];
+  return rgb;
+};
 
-      case 5:
-        return [v, p, q];
-    }
-  };
+convert$1.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.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];
-  }; // http://dev.w3.org/csswg/css-color/#hwb-to-rgb
-
-
-  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; // wh + bl cant be > 1
-
-    if (ratio > 1) {
-      wh /= ratio;
-      bl /= ratio;
-    }
-
-    i = Math.floor(6 * h);
-    v = 1 - bl;
-    f = 6 * h - i;
-
-    if ((i & 0x01) !== 0) {
-      f = 1 - f;
-    }
-
-    n = wh + f * (v - wh); // linear interpolation
-
-    var r;
-    var g;
-    var b;
-
-    switch (i) {
-      default:
-      case 6:
-      case 0:
-        r = v;
-        g = n;
-        b = wh;
-        break;
+convert$1.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;
 
-      case 1:
-        r = n;
-        g = v;
-        b = wh;
-        break;
+  switch (hi) {
+    case 0:
+      return [v, t, p];
 
-      case 2:
-        r = wh;
-        g = v;
-        b = n;
-        break;
+    case 1:
+      return [q, v, p];
 
-      case 3:
-        r = wh;
-        g = n;
-        b = v;
-        break;
+    case 2:
+      return [p, v, t];
 
-      case 4:
-        r = n;
-        g = wh;
-        b = v;
-        break;
+    case 3:
+      return [p, q, v];
 
-      case 5:
-        r = v;
-        g = wh;
-        b = n;
-        break;
-    }
+    case 4:
+      return [t, p, v];
 
-    return [r * 255, g * 255, b * 255];
-  };
+    case 5:
+      return [v, p, q];
+  }
+};
 
-  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$1.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];
+}; // http://dev.w3.org/csswg/css-color/#hwb-to-rgb
+
+
+convert$1.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; // wh + bl cant be > 1
+
+  if (ratio > 1) {
+    wh /= ratio;
+    bl /= ratio;
+  }
+
+  i = Math.floor(6 * h);
+  v = 1 - bl;
+  f = 6 * h - i;
+
+  if ((i & 0x01) !== 0) {
+    f = 1 - f;
+  }
+
+  n = wh + f * (v - wh); // linear interpolation
+
+  var r;
+  var g;
+  var b;
+
+  switch (i) {
+    default:
+    case 6:
+    case 0:
+      r = v;
+      g = n;
+      b = wh;
+      break;
 
-  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.2040 + z * 1.0570; // assume sRGB
-
-    r = r > 0.0031308 ? 1.055 * Math.pow(r, 1.0 / 2.4) - 0.055 : r * 12.92;
-    g = g > 0.0031308 ? 1.055 * Math.pow(g, 1.0 / 2.4) - 0.055 : g * 12.92;
-    b = b > 0.0031308 ? 1.055 * Math.pow(b, 1.0 / 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];
-  };
+    case 1:
+      r = n;
+      g = v;
+      b = wh;
+      break;
 
-  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 > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116;
-    y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116;
-    z = z > 0.008856 ? 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];
-  };
+    case 2:
+      r = wh;
+      g = v;
+      b = n;
+      break;
 
-  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 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;
-    x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;
-    z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;
-    x *= 95.047;
-    y *= 100;
-    z *= 108.883;
-    return [x, y, z];
-  };
+    case 3:
+      r = wh;
+      g = n;
+      b = v;
+      break;
+
+    case 4:
+      r = n;
+      g = wh;
+      b = v;
+      break;
 
-  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;
+    case 5:
+      r = v;
+      g = wh;
+      b = n;
+      break;
+  }
 
-    if (h < 0) {
-      h += 360;
-    }
+  return [r * 255, g * 255, b * 255];
+};
 
-    c = Math.sqrt(a * a + b * b);
-    return [l, c, h];
-  };
+convert$1.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.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$1.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.2040 + z * 1.0570; // assume sRGB
+
+  r = r > 0.0031308 ? 1.055 * Math.pow(r, 1.0 / 2.4) - 0.055 : r * 12.92;
+  g = g > 0.0031308 ? 1.055 * Math.pow(g, 1.0 / 2.4) - 0.055 : g * 12.92;
+  b = b > 0.0031308 ? 1.055 * Math.pow(b, 1.0 / 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.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]; // hsv -> ansi16 optimization
+convert$1.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 > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116;
+  y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116;
+  z = z > 0.008856 ? 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];
+};
 
-    value = Math.round(value / 50);
+convert$1.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 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;
+  x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;
+  z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;
+  x *= 95.047;
+  y *= 100;
+  z *= 108.883;
+  return [x, y, z];
+};
 
-    if (value === 0) {
-      return 30;
-    }
+convert$1.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;
 
-    var ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255));
+  if (h < 0) {
+    h += 360;
+  }
 
-    if (value === 2) {
-      ansi += 60;
-    }
+  c = Math.sqrt(a * a + b * b);
+  return [l, c, h];
+};
 
-    return ansi;
-  };
+convert$1.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.hsv.ansi16 = function (args) {
-    // optimization here; we already know the value and don't need to get
-    // it converted for us.
-    return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);
-  };
+convert$1.rgb.ansi16 = function (args) {
+  var r = args[0];
+  var g = args[1];
+  var b = args[2];
+  var value = 1 in arguments ? arguments[1] : convert$1.rgb.hsv(args)[2]; // hsv -> ansi16 optimization
 
-  convert.rgb.ansi256 = function (args) {
-    var r = args[0];
-    var g = args[1];
-    var b = args[2]; // we use the extended greyscale palette here, with the exception of
-    // black and white. normal palette only has 4 greyscale shades.
+  value = Math.round(value / 50);
 
-    if (r === g && g === b) {
-      if (r < 8) {
-        return 16;
-      }
+  if (value === 0) {
+    return 30;
+  }
 
-      if (r > 248) {
-        return 231;
-      }
+  var ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255));
 
-      return Math.round((r - 8) / 247 * 24) + 232;
-    }
+  if (value === 2) {
+    ansi += 60;
+  }
 
-    var ansi = 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5);
-    return ansi;
-  };
+  return ansi;
+};
 
-  convert.ansi16.rgb = function (args) {
-    var color = args % 10; // handle greyscale
+convert$1.hsv.ansi16 = function (args) {
+  // optimization here; we already know the value and don't need to get
+  // it converted for us.
+  return convert$1.rgb.ansi16(convert$1.hsv.rgb(args), args[2]);
+};
 
-    if (color === 0 || color === 7) {
-      if (args > 50) {
-        color += 3.5;
-      }
+convert$1.rgb.ansi256 = function (args) {
+  var r = args[0];
+  var g = args[1];
+  var b = args[2]; // we use the extended greyscale palette here, with the exception of
+  // black and white. normal palette only has 4 greyscale shades.
 
-      color = color / 10.5 * 255;
-      return [color, color, color];
+  if (r === g && g === b) {
+    if (r < 8) {
+      return 16;
     }
 
-    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) {
-    // handle greyscale
-    if (args >= 232) {
-      var c = (args - 232) * 10 + 8;
-      return [c, c, c];
+    if (r > 248) {
+      return 231;
     }
 
-    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];
-  };
+    return Math.round((r - 8) / 247 * 24) + 232;
+  }
 
-  convert.rgb.hex = function (args) {
-    var integer = ((Math.round(args[0]) & 0xFF) << 16) + ((Math.round(args[1]) & 0xFF) << 8) + (Math.round(args[2]) & 0xFF);
-    var string = integer.toString(16).toUpperCase();
-    return '000000'.substring(string.length) + string;
-  };
+  var ansi = 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5);
+  return ansi;
+};
 
-  convert.hex.rgb = function (args) {
-    var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);
+convert$1.ansi16.rgb = function (args) {
+  var color = args % 10; // handle greyscale
 
-    if (!match) {
-      return [0, 0, 0];
+  if (color === 0 || color === 7) {
+    if (args > 50) {
+      color += 3.5;
     }
 
-    var colorString = match[0];
+    color = color / 10.5 * 255;
+    return [color, color, color];
+  }
 
-    if (match[0].length === 3) {
-      colorString = colorString.split('').map(function (char) {
-        return char + char;
-      }).join('');
-    }
+  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];
+};
 
-    var integer = parseInt(colorString, 16);
-    var r = integer >> 16 & 0xFF;
-    var g = integer >> 8 & 0xFF;
-    var b = integer & 0xFF;
-    return [r, g, b];
-  };
+convert$1.ansi256.rgb = function (args) {
+  // handle greyscale
+  if (args >= 232) {
+    var c = (args - 232) * 10 + 8;
+    return [c, c, c];
+  }
 
-  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;
-    }
+  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];
+};
 
-    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;
-    }
+convert$1.rgb.hex = function (args) {
+  var integer = ((Math.round(args[0]) & 0xFF) << 16) + ((Math.round(args[1]) & 0xFF) << 8) + (Math.round(args[2]) & 0xFF);
+  var string = integer.toString(16).toUpperCase();
+  return '000000'.substring(string.length) + string;
+};
 
-    hue /= 6;
-    hue %= 1;
-    return [hue * 360, chroma * 100, grayscale * 100];
-  };
+convert$1.hex.rgb = function (args) {
+  var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);
 
-  convert.hsl.hcg = function (hsl) {
-    var s = hsl[1] / 100;
-    var l = hsl[2] / 100;
-    var c = 1;
-    var f = 0;
+  if (!match) {
+    return [0, 0, 0];
+  }
 
-    if (l < 0.5) {
-      c = 2.0 * s * l;
-    } else {
-      c = 2.0 * s * (1.0 - l);
-    }
+  var colorString = match[0];
 
-    if (c < 1.0) {
-      f = (l - 0.5 * c) / (1.0 - c);
-    }
+  if (match[0].length === 3) {
+    colorString = colorString.split('').map(function (char) {
+      return char + char;
+    }).join('');
+  }
 
-    return [hsl[0], c * 100, f * 100];
-  };
+  var integer = parseInt(colorString, 16);
+  var r = integer >> 16 & 0xFF;
+  var g = integer >> 8 & 0xFF;
+  var b = integer & 0xFF;
+  return [r, g, b];
+};
 
-  convert.hsv.hcg = function (hsv) {
-    var s = hsv[1] / 100;
-    var v = hsv[2] / 100;
-    var c = s * v;
-    var f = 0;
+convert$1.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 (c < 1.0) {
-      f = (v - c) / (1 - c);
-    }
+  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;
+  }
 
-    return [hsv[0], c * 100, f * 100];
-  };
+  hue /= 6;
+  hue %= 1;
+  return [hue * 360, chroma * 100, grayscale * 100];
+};
 
-  convert.hcg.rgb = function (hcg) {
-    var h = hcg[0] / 360;
-    var c = hcg[1] / 100;
-    var g = hcg[2] / 100;
+convert$1.hsl.hcg = function (hsl) {
+  var s = hsl[1] / 100;
+  var l = hsl[2] / 100;
+  var c = 1;
+  var f = 0;
 
-    if (c === 0.0) {
-      return [g * 255, g * 255, g * 255];
-    }
+  if (l < 0.5) {
+    c = 2.0 * s * l;
+  } else {
+    c = 2.0 * s * (1.0 - l);
+  }
 
-    var pure = [0, 0, 0];
-    var hi = h % 1 * 6;
-    var v = hi % 1;
-    var w = 1 - v;
-    var mg = 0;
+  if (c < 1.0) {
+    f = (l - 0.5 * c) / (1.0 - c);
+  }
 
-    switch (Math.floor(hi)) {
-      case 0:
-        pure[0] = 1;
-        pure[1] = v;
-        pure[2] = 0;
-        break;
+  return [hsl[0], c * 100, f * 100];
+};
 
-      case 1:
-        pure[0] = w;
-        pure[1] = 1;
-        pure[2] = 0;
-        break;
+convert$1.hsv.hcg = function (hsv) {
+  var s = hsv[1] / 100;
+  var v = hsv[2] / 100;
+  var c = s * v;
+  var f = 0;
 
-      case 2:
-        pure[0] = 0;
-        pure[1] = 1;
-        pure[2] = v;
-        break;
+  if (c < 1.0) {
+    f = (v - c) / (1 - c);
+  }
 
-      case 3:
-        pure[0] = 0;
-        pure[1] = w;
-        pure[2] = 1;
-        break;
+  return [hsv[0], c * 100, f * 100];
+};
 
-      case 4:
-        pure[0] = v;
-        pure[1] = 0;
-        pure[2] = 1;
-        break;
+convert$1.hcg.rgb = function (hcg) {
+  var h = hcg[0] / 360;
+  var c = hcg[1] / 100;
+  var g = hcg[2] / 100;
 
-      default:
-        pure[0] = 1;
-        pure[1] = 0;
-        pure[2] = w;
-    }
+  if (c === 0.0) {
+    return [g * 255, g * 255, g * 255];
+  }
 
-    mg = (1.0 - c) * g;
-    return [(c * pure[0] + mg) * 255, (c * pure[1] + mg) * 255, (c * pure[2] + mg) * 255];
-  };
+  var pure = [0, 0, 0];
+  var hi = h % 1 * 6;
+  var v = hi % 1;
+  var w = 1 - v;
+  var mg = 0;
 
-  convert.hcg.hsv = function (hcg) {
-    var c = hcg[1] / 100;
-    var g = hcg[2] / 100;
-    var v = c + g * (1.0 - c);
-    var f = 0;
+  switch (Math.floor(hi)) {
+    case 0:
+      pure[0] = 1;
+      pure[1] = v;
+      pure[2] = 0;
+      break;
 
-    if (v > 0.0) {
-      f = c / v;
-    }
+    case 1:
+      pure[0] = w;
+      pure[1] = 1;
+      pure[2] = 0;
+      break;
 
-    return [hcg[0], f * 100, v * 100];
-  };
+    case 2:
+      pure[0] = 0;
+      pure[1] = 1;
+      pure[2] = v;
+      break;
 
-  convert.hcg.hsl = function (hcg) {
-    var c = hcg[1] / 100;
-    var g = hcg[2] / 100;
-    var l = g * (1.0 - c) + 0.5 * c;
-    var s = 0;
+    case 3:
+      pure[0] = 0;
+      pure[1] = w;
+      pure[2] = 1;
+      break;
 
-    if (l > 0.0 && l < 0.5) {
-      s = c / (2 * l);
-    } else if (l >= 0.5 && l < 1.0) {
-      s = c / (2 * (1 - l));
-    }
+    case 4:
+      pure[0] = v;
+      pure[1] = 0;
+      pure[2] = 1;
+      break;
 
-    return [hcg[0], s * 100, l * 100];
-  };
+    default:
+      pure[0] = 1;
+      pure[1] = 0;
+      pure[2] = w;
+  }
 
-  convert.hcg.hwb = function (hcg) {
-    var c = hcg[1] / 100;
-    var g = hcg[2] / 100;
-    var v = c + g * (1.0 - c);
-    return [hcg[0], (v - c) * 100, (1 - v) * 100];
-  };
+  mg = (1.0 - c) * g;
+  return [(c * pure[0] + mg) * 255, (c * pure[1] + mg) * 255, (c * pure[2] + mg) * 255];
+};
 
-  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;
+convert$1.hcg.hsv = function (hcg) {
+  var c = hcg[1] / 100;
+  var g = hcg[2] / 100;
+  var v = c + g * (1.0 - c);
+  var f = 0;
 
-    if (c < 1) {
-      g = (v - c) / (1 - c);
-    }
+  if (v > 0.0) {
+    f = c / v;
+  }
 
-    return [hwb[0], c * 100, g * 100];
-  };
+  return [hcg[0], f * 100, v * 100];
+};
 
-  convert.apple.rgb = function (apple) {
-    return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255];
-  };
+convert$1.hcg.hsl = function (hcg) {
+  var c = hcg[1] / 100;
+  var g = hcg[2] / 100;
+  var l = g * (1.0 - c) + 0.5 * c;
+  var s = 0;
 
-  convert.rgb.apple = function (rgb) {
-    return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535];
-  };
+  if (l > 0.0 && l < 0.5) {
+    s = c / (2 * l);
+  } else if (l >= 0.5 && l < 1.0) {
+    s = c / (2 * (1 - l));
+  }
 
-  convert.gray.rgb = function (args) {
-    return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];
-  };
+  return [hcg[0], s * 100, l * 100];
+};
 
-  convert.gray.hsl = convert.gray.hsv = function (args) {
-    return [0, 0, args[0]];
-  };
+convert$1.hcg.hwb = function (hcg) {
+  var c = hcg[1] / 100;
+  var g = hcg[2] / 100;
+  var v = c + g * (1.0 - c);
+  return [hcg[0], (v - c) * 100, (1 - v) * 100];
+};
 
-  convert.gray.hwb = function (gray) {
-    return [0, 100, gray[0]];
-  };
+convert$1.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;
 
-  convert.gray.cmyk = function (gray) {
-    return [0, 0, 0, gray[0]];
-  };
+  if (c < 1) {
+    g = (v - c) / (1 - c);
+  }
 
-  convert.gray.lab = function (gray) {
-    return [gray[0], 0, 0];
-  };
+  return [hwb[0], c * 100, g * 100];
+};
 
-  convert.gray.hex = function (gray) {
-    var val = Math.round(gray[0] / 100 * 255) & 0xFF;
-    var integer = (val << 16) + (val << 8) + val;
-    var string = integer.toString(16).toUpperCase();
-    return '000000'.substring(string.length) + string;
-  };
+convert$1.apple.rgb = function (apple) {
+  return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255];
+};
 
-  convert.rgb.gray = function (rgb) {
-    var val = (rgb[0] + rgb[1] + rgb[2]) / 3;
-    return [val / 255 * 100];
-  };
-});
+convert$1.rgb.apple = function (rgb) {
+  return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535];
+};
+
+convert$1.gray.rgb = function (args) {
+  return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];
+};
+
+convert$1.gray.hsl = convert$1.gray.hsv = function (args) {
+  return [0, 0, args[0]];
+};
+
+convert$1.gray.hwb = function (gray) {
+  return [0, 100, gray[0]];
+};
+
+convert$1.gray.cmyk = function (gray) {
+  return [0, 0, 0, gray[0]];
+};
+
+convert$1.gray.lab = function (gray) {
+  return [gray[0], 0, 0];
+};
+
+convert$1.gray.hex = function (gray) {
+  var val = Math.round(gray[0] / 100 * 255) & 0xFF;
+  var integer = (val << 16) + (val << 8) + val;
+  var string = integer.toString(16).toUpperCase();
+  return '000000'.substring(string.length) + string;
+};
+
+convert$1.rgb.gray = function (rgb) {
+  var val = (rgb[0] + rgb[1] + rgb[2]) / 3;
+  return [val / 255 * 100];
+};
 
+var conversions$1 = conversions$2.exports;
 /*
        this function routes a model to all other models.
 
@@ -1616,7 +1743,7 @@ var conversions = createCommonjsModule(function (module) {
 function buildGraph() {
   var graph = {}; // https://jsperf.com/object-keys-vs-for-in-with-closure/3
 
-  var models = Object.keys(conversions);
+  var models = Object.keys(conversions$1);
 
   for (var len = models.length, i = 0; i < len; i++) {
     graph[models[i]] = {
@@ -1639,7 +1766,7 @@ function deriveBFS(fromModel) {
 
   while (queue.length) {
     var current = queue.pop();
-    var adjacents = Object.keys(conversions[current]);
+    var adjacents = Object.keys(conversions$1[current]);
 
     for (var len = adjacents.length, i = 0; i < len; i++) {
       var adjacent = adjacents[i];
@@ -1664,12 +1791,12 @@ function link(from, to) {
 
 function wrapConversion(toModel, graph) {
   var path = [graph[toModel].parent, toModel];
-  var fn = conversions[graph[toModel].parent][toModel];
+  var fn = conversions$1[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);
+    fn = link(conversions$1[graph[cur].parent][cur], fn);
     cur = graph[cur].parent;
   }
 
@@ -1677,7 +1804,7 @@ function wrapConversion(toModel, graph) {
   return fn;
 }
 
-var route = function (fromModel) {
+var route$1 = function (fromModel) {
   var graph = deriveBFS(fromModel);
   var conversion = {};
   var models = Object.keys(graph);
@@ -1697,6 +1824,8 @@ var route = function (fromModel) {
   return conversion;
 };
 
+var conversions = conversions$2.exports;
+var route = route$1;
 var convert = {};
 var models = Object.keys(conversions);
 
@@ -1770,20 +1899,22 @@ models.forEach(function (fromModel) {
 });
 var colorConvert = convert;
 
-var ansiStyles = createCommonjsModule(function (module) {
+(function (module) {
+
+  const colorConvert$1 = colorConvert;
 
   const wrapAnsi16 = (fn, offset) => function () {
-    const code = fn.apply(colorConvert, arguments);
+    const code = fn.apply(colorConvert$1, arguments);
     return `\u001B[${code + offset}m`;
   };
 
   const wrapAnsi256 = (fn, offset) => function () {
-    const code = fn.apply(colorConvert, arguments);
+    const code = fn.apply(colorConvert$1, arguments);
     return `\u001B[${38 + offset};5;${code}m`;
   };
 
   const wrapAnsi16m = (fn, offset) => function () {
-    const rgb = fn.apply(colorConvert, arguments);
+    const rgb = fn.apply(colorConvert$1, arguments);
     return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;
   };
 
@@ -1891,12 +2022,12 @@ var ansiStyles = createCommonjsModule(function (module) {
       rgb: wrapAnsi16m(rgb2rgb, 10)
     };
 
-    for (let key of Object.keys(colorConvert)) {
-      if (typeof colorConvert[key] !== 'object') {
+    for (let key of Object.keys(colorConvert$1)) {
+      if (typeof colorConvert$1[key] !== 'object') {
         continue;
       }
 
-      const suite = colorConvert[key];
+      const suite = colorConvert$1[key];
 
       if (key === 'ansi16') {
         key = 'ansi';
@@ -1926,9 +2057,9 @@ var ansiStyles = createCommonjsModule(function (module) {
     enumerable: true,
     get: assembleStyles
   });
-});
+})(ansiStyles);
 
-var hasFlag = (flag, argv) => {
+var hasFlag$1 = (flag, argv) => {
   argv = argv || process.argv;
   const prefix = flag.startsWith('-') ? '' : flag.length === 1 ? '-' : '--';
   const pos = argv.indexOf(prefix + flag);
@@ -1936,6 +2067,8 @@ var hasFlag = (flag, argv) => {
   return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);
 };
 
+const os = require$$0__default$2["default"];
+const hasFlag = hasFlag$1;
 const env = process.env;
 let forceColor;
 
@@ -1988,7 +2121,7 @@ function supportsColor(stream) {
     // release, and Node.js 7 is not. Windows 10 build 10586 is the first Windows
     // release that supports 256 colors. Windows 10 build 14931 is the first release
     // that supports 16m/TrueColor.
-    const osRelease = os__default['default'].release().split('.');
+    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;
@@ -2173,9 +2306,12 @@ var templates = (chalk, tmp) => {
   return chunks.join('');
 };
 
-var chalk = createCommonjsModule(function (module) {
+(function (module) {
 
+  const escapeStringRegexp$1 = escapeStringRegexp;
+  const ansiStyles$1 = ansiStyles.exports;
   const stdoutColor = supportsColor_1.stdout;
+  const template = templates;
   const isSimpleWindowsTerm = process.platform === 'win32' && !(process.env.TERM || '').toLowerCase().startsWith('xterm'); // `supportsColor.level` â†’ `ansiStyles.color[name]` mapping
 
   const levelMapping = ['ansi', 'ansi', 'ansi256', 'ansi16m']; // `color-convert` models to exclude from the Chalk API due to conflicts and such
@@ -2214,14 +2350,14 @@ var chalk = createCommonjsModule(function (module) {
 
 
   if (isSimpleWindowsTerm) {
-    ansiStyles.blue.open = '\u001B[94m';
+    ansiStyles$1.blue.open = '\u001B[94m';
   }
 
-  for (const key of Object.keys(ansiStyles)) {
-    ansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g');
+  for (const key of Object.keys(ansiStyles$1)) {
+    ansiStyles$1[key].closeRe = new RegExp(escapeStringRegexp$1(ansiStyles$1[key].close), 'g');
     styles[key] = {
       get() {
-        const codes = ansiStyles[key];
+        const codes = ansiStyles$1[key];
         return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, key);
       }
 
@@ -2234,9 +2370,9 @@ var chalk = createCommonjsModule(function (module) {
     }
 
   };
-  ansiStyles.color.closeRe = new RegExp(escapeStringRegexp(ansiStyles.color.close), 'g');
+  ansiStyles$1.color.closeRe = new RegExp(escapeStringRegexp$1(ansiStyles$1.color.close), 'g');
 
-  for (const model of Object.keys(ansiStyles.color.ansi)) {
+  for (const model of Object.keys(ansiStyles$1.color.ansi)) {
     if (skipModels.has(model)) {
       continue;
     }
@@ -2245,11 +2381,11 @@ var chalk = createCommonjsModule(function (module) {
       get() {
         const level = this.level;
         return function () {
-          const open = ansiStyles.color[levelMapping[level]][model].apply(null, arguments);
+          const open = ansiStyles$1.color[levelMapping[level]][model].apply(null, arguments);
           const codes = {
             open,
-            close: ansiStyles.color.close,
-            closeRe: ansiStyles.color.closeRe
+            close: ansiStyles$1.color.close,
+            closeRe: ansiStyles$1.color.closeRe
           };
           return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model);
         };
@@ -2258,9 +2394,9 @@ var chalk = createCommonjsModule(function (module) {
     };
   }
 
-  ansiStyles.bgColor.closeRe = new RegExp(escapeStringRegexp(ansiStyles.bgColor.close), 'g');
+  ansiStyles$1.bgColor.closeRe = new RegExp(escapeStringRegexp$1(ansiStyles$1.bgColor.close), 'g');
 
-  for (const model of Object.keys(ansiStyles.bgColor.ansi)) {
+  for (const model of Object.keys(ansiStyles$1.bgColor.ansi)) {
     if (skipModels.has(model)) {
       continue;
     }
@@ -2270,11 +2406,11 @@ var chalk = createCommonjsModule(function (module) {
       get() {
         const level = this.level;
         return function () {
-          const open = ansiStyles.bgColor[levelMapping[level]][model].apply(null, arguments);
+          const open = ansiStyles$1.bgColor[levelMapping[level]][model].apply(null, arguments);
           const codes = {
             open,
-            close: ansiStyles.bgColor.close,
-            closeRe: ansiStyles.bgColor.closeRe
+            close: ansiStyles$1.bgColor.close,
+            closeRe: ansiStyles$1.bgColor.closeRe
           };
           return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model);
         };
@@ -2350,10 +2486,10 @@ var chalk = createCommonjsModule(function (module) {
     // If we're on Windows and we're dealing with a gray color, temporarily make 'dim' a noop.
 
 
-    const originalDim = ansiStyles.dim.open;
+    const originalDim = ansiStyles$1.dim.open;
 
     if (isSimpleWindowsTerm && this.hasGrey) {
-      ansiStyles.dim.open = '';
+      ansiStyles$1.dim.open = '';
     }
 
     for (const code of this._styles.slice().reverse()) {
@@ -2368,7 +2504,7 @@ var chalk = createCommonjsModule(function (module) {
     } // Reset the original `dim` if we changed it to work around the Windows dimmed gray issue
 
 
-    ansiStyles.dim.open = originalDim;
+    ansiStyles$1.dim.open = originalDim;
     return str;
   }
 
@@ -2387,7 +2523,7 @@ var chalk = createCommonjsModule(function (module) {
       parts.push(String(strings.raw[i]));
     }
 
-    return templates(chalk, parts.join(''));
+    return template(chalk, parts.join(''));
   }
 
   Object.defineProperties(Chalk.prototype, styles);
@@ -2395,108 +2531,49 @@ var chalk = createCommonjsModule(function (module) {
 
   module.exports.supportsColor = stdoutColor;
   module.exports.default = module.exports; // For TypeScript
-});
+})(chalk);
 
-var lib$1 = createCommonjsModule(function (module, exports) {
-
-  Object.defineProperty(exports, "__esModule", {
-    value: true
-  });
-  exports.shouldHighlight = shouldHighlight;
-  exports.getChalk = getChalk;
-  exports.default = highlight;
-
-  var _jsTokens = _interopRequireWildcard(jsTokens);
-
-  var _chalk = _interopRequireDefault(chalk);
-
-  function _interopRequireDefault(obj) {
-    return obj && obj.__esModule ? obj : {
-      default: obj
-    };
-  }
-
-  function _getRequireWildcardCache() {
-    if (typeof WeakMap !== "function") return null;
-    var cache = new WeakMap();
-
-    _getRequireWildcardCache = function () {
-      return cache;
-    };
-
-    return cache;
-  }
-
-  function _interopRequireWildcard(obj) {
-    if (obj && obj.__esModule) {
-      return obj;
-    }
-
-    if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
-      return {
-        default: obj
-      };
-    }
-
-    var cache = _getRequireWildcardCache();
-
-    if (cache && cache.has(obj)) {
-      return cache.get(obj);
-    }
-
-    var newObj = {};
-    var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
-
-    for (var key in obj) {
-      if (Object.prototype.hasOwnProperty.call(obj, key)) {
-        var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
-
-        if (desc && (desc.get || desc.set)) {
-          Object.defineProperty(newObj, key, desc);
-        } else {
-          newObj[key] = obj[key];
-        }
-      }
-    }
-
-    newObj.default = obj;
+Object.defineProperty(lib$1, "__esModule", {
+  value: true
+});
 
-    if (cache) {
-      cache.set(obj, newObj);
-    }
+lib$1.default = highlight;
 
-    return newObj;
-  }
+lib$1.getChalk = getChalk;
+lib$1.shouldHighlight = shouldHighlight;
+var _jsTokens = jsTokens;
+var _helperValidatorIdentifier = lib;
+var _chalk = chalk.exports;
+const sometimesKeywords = new Set(["as", "async", "from", "get", "of", "set"]);
 
-  function getDefs(chalk) {
-    return {
-      keyword: chalk.cyan,
-      capitalized: chalk.yellow,
-      jsx_tag: chalk.yellow,
-      punctuator: chalk.yellow,
-      number: chalk.magenta,
-      string: chalk.green,
-      regex: chalk.magenta,
-      comment: chalk.grey,
-      invalid: chalk.white.bgRed.bold
-    };
-  }
+function getDefs$1(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
+  };
+}
 
-  const NEWLINE = /\r\n|[\n\r\u2028\u2029]/;
+const NEWLINE$1 = /\r\n|[\n\r\u2028\u2029]/;
+const BRACKET = /^[()[\]{}]$/;
+let tokenize;
+{
   const JSX_TAG = /^[a-z][\w-]*$/i;
-  const BRACKET = /^[()[\]{}]$/;
-
-  function getTokenType(match) {
-    const [offset, text] = match.slice(-2);
-    const token = (0, _jsTokens.matchToToken)(match);
 
+  const getTokenType = function (token, offset, text) {
     if (token.type === "name") {
-      if ((0, lib.isKeyword)(token.value) || (0, lib.isReservedWord)(token.value)) {
+      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.substr(offset - 2, 2) == "</")) {
-        return "jsx_tag";
+        return "jsxIdentifier";
       }
 
       if (token.value[0] !== token.value[0].toLowerCase()) {
@@ -2513,278 +2590,236 @@ var lib$1 = createCommonjsModule(function (module, exports) {
     }
 
     return token.type;
-  }
-
-  function highlightTokens(defs, text) {
-    return text.replace(_jsTokens.default, function (...args) {
-      const type = getTokenType(args);
-      const colorize = defs[type];
-
-      if (colorize) {
-        return args[0].split(NEWLINE).map(str => colorize(str)).join("\n");
-      } else {
-        return args[0];
-      }
-    });
-  }
+  };
 
-  function shouldHighlight(options) {
-    return _chalk.default.supportsColor || options.forceColor;
-  }
+  tokenize = function* (text) {
+    let match;
 
-  function getChalk(options) {
-    let chalk = _chalk.default;
+    while (match = _jsTokens.default.exec(text)) {
+      const token = _jsTokens.matchToToken(match);
 
-    if (options.forceColor) {
-      chalk = new _chalk.default.constructor({
-        enabled: true,
-        level: 1
-      });
+      yield {
+        type: getTokenType(token, match.index, text),
+        value: token.value
+      };
     }
+  };
+}
 
-    return chalk;
-  }
+function highlightTokens(defs, text) {
+  let highlighted = "";
+
+  for (const {
+    type,
+    value
+  } of tokenize(text)) {
+    const colorize = defs[type];
 
-  function highlight(code, options = {}) {
-    if (shouldHighlight(options)) {
-      const chalk = getChalk(options);
-      const defs = getDefs(chalk);
-      return highlightTokens(defs, code);
+    if (colorize) {
+      highlighted += value.split(NEWLINE$1).map(str => colorize(str)).join("\n");
     } else {
-      return code;
+      highlighted += value;
     }
   }
-});
-
-var lib$2 = createCommonjsModule(function (module, exports) {
-
-  Object.defineProperty(exports, "__esModule", {
-    value: true
-  });
-  exports.codeFrameColumns = codeFrameColumns;
-  exports.default = _default;
 
-  var _highlight = _interopRequireWildcard(lib$1);
+  return highlighted;
+}
 
-  function _getRequireWildcardCache() {
-    if (typeof WeakMap !== "function") return null;
-    var cache = new WeakMap();
+function shouldHighlight(options) {
+  return !!_chalk.supportsColor || options.forceColor;
+}
 
-    _getRequireWildcardCache = function () {
-      return cache;
-    };
+function getChalk(options) {
+  return options.forceColor ? new _chalk.constructor({
+    enabled: true,
+    level: 1
+  }) : _chalk;
+}
 
-    return cache;
+function highlight(code, options = {}) {
+  if (shouldHighlight(options)) {
+    const chalk = getChalk(options);
+    const defs = getDefs$1(chalk);
+    return highlightTokens(defs, code);
+  } else {
+    return code;
   }
+}
 
-  function _interopRequireWildcard(obj) {
-    if (obj && obj.__esModule) {
-      return obj;
-    }
-
-    if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
-      return {
-        default: obj
-      };
-    }
-
-    var cache = _getRequireWildcardCache();
-
-    if (cache && cache.has(obj)) {
-      return cache.get(obj);
-    }
+Object.defineProperty(lib$2, "__esModule", {
+  value: true
+});
+lib$2.codeFrameColumns = codeFrameColumns$1;
+lib$2.default = _default;
+var _highlight = lib$1;
+let deprecationWarningShown = false;
 
-    var newObj = {};
-    var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
+function getDefs(chalk) {
+  return {
+    gutter: chalk.grey,
+    marker: chalk.red.bold,
+    message: chalk.red.bold
+  };
+}
 
-    for (var key in obj) {
-      if (Object.prototype.hasOwnProperty.call(obj, key)) {
-        var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
+const NEWLINE = /\r\n|[\n\r\u2028\u2029]/;
 
-        if (desc && (desc.get || desc.set)) {
-          Object.defineProperty(newObj, key, desc);
-        } else {
-          newObj[key] = obj[key];
-        }
+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];
       }
     }
-
-    newObj.default = obj;
-
-    if (cache) {
-      cache.set(obj, newObj);
+  } else {
+    if (startColumn === endColumn) {
+      if (startColumn) {
+        markerLines[startLine] = [startColumn, 0];
+      } else {
+        markerLines[startLine] = true;
+      }
+    } else {
+      markerLines[startLine] = [startColumn, endColumn - startColumn];
     }
-
-    return newObj;
   }
 
-  let deprecationWarningShown = false;
+  return {
+    start,
+    end,
+    markerLines
+  };
+}
 
-  function getDefs(chalk) {
-    return {
-      gutter: chalk.grey,
-      marker: chalk.red.bold,
-      message: chalk.red.bold
-    };
-  }
+function codeFrameColumns$1(rawLines, loc, opts = {}) {
+  const highlighted = (opts.highlightCode || opts.forceColor) && (0, _highlight.shouldHighlight)(opts);
+  const chalk = (0, _highlight.getChalk)(opts);
+  const defs = getDefs(chalk);
 
-  const NEWLINE = /\r\n|[\n\r\u2028\u2029]/;
+  const maybeHighlight = (chalkFn, string) => {
+    return highlighted ? chalkFn(string) : string;
+  };
 
-  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];
+  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 {
-      if (startColumn === endColumn) {
-        if (startColumn) {
-          markerLines[startLine] = [startColumn, 0];
-        } else {
-          markerLines[startLine] = true;
-        }
-      } else {
-        markerLines[startLine] = [startColumn, endColumn - startColumn];
-      }
+      return ` ${maybeHighlight(defs.gutter, gutter)}${line.length > 0 ? ` ${line}` : ""}`;
     }
+  }).join("\n");
 
-    return {
-      start,
-      end,
-      markerLines
-    };
+  if (opts.message && !hasColumns) {
+    frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`;
   }
 
-  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).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, markerLine].join("");
-      } else {
-        return ` ${maybeHighlight(defs.gutter, gutter)}${line}`;
-      }
-    }).join("\n");
+  if (highlighted) {
+    return chalk.reset(frame);
+  } else {
+    return frame;
+  }
+}
 
-    if (opts.message && !hasColumns) {
-      frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${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 (highlighted) {
-      return chalk.reset(frame);
+    if (process.emitWarning) {
+      process.emitWarning(message, "DeprecationWarning");
     } else {
-      return frame;
+      const deprecationError = new Error(message);
+      deprecationError.name = "DeprecationWarning";
+      console.warn(new Error(message));
     }
   }
 
-  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$1(rawLines, location, opts);
+}
 
-    colNumber = Math.max(colNumber, 0);
-    const location = {
-      start: {
-        column: colNumber,
-        line: lineNumber
-      }
-    };
-    return codeFrameColumns(rawLines, location, opts);
-  }
-});
-
+const errorEx = errorEx_1;
+const fallback = jsonParseEvenBetterErrors;
 const {
   default: LinesAndColumns
-} = dist;
+} = dist$1;
 const {
   codeFrameColumns
 } = lib$2;
-const JSONError = errorEx_1('JSONError', {
-  fileName: errorEx_1.append('in %s'),
-  codeFrame: errorEx_1.append('\n\n%s\n')
+const JSONError = errorEx('JSONError', {
+  fileName: errorEx.append('in %s'),
+  codeFrame: errorEx.append('\n\n%s\n')
 });
 
-var parseJson$1 = (string, reviver, filename) => {
+const parseJson$1 = (string, reviver, filename) => {
   if (typeof reviver === 'string') {
     filename = reviver;
     reviver = null;
@@ -2794,12 +2829,12 @@ var parseJson$1 = (string, reviver, filename) => {
     try {
       return JSON.parse(string, reviver);
     } catch (error) {
-      jsonParseBetterErrors(string, reviver);
+      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 near/);
+    const indexMatch = error.message.match(/in JSON at position (\d+) while parsing/);
     const jsonError = new JSONError(error);
 
     if (filename) {
@@ -2825,6 +2860,15 @@ var parseJson$1 = (string, reviver, filename) => {
   }
 };
 
+parseJson$1.JSONError = JSONError;
+var parseJson_1 = parseJson$1;
+
+var dist = {};
+
+var parseCst$1 = {};
+
+var PlainValueEc8e588e = {};
+
 const Char = {
   ANCHOR: '&',
   COMMENT: '#',
@@ -3085,10 +3129,10 @@ class Range {
 /** Root class of all nodes */
 
 
-class Node {
+class Node$1 {
   static addStringTerminator(src, offset, str) {
     if (str[str.length - 1] === '\n') return str;
-    const next = Node.endOfWhiteSpace(src, offset);
+    const next = Node$1.endOfWhiteSpace(src, offset);
     return next >= src.length || src[next] === '\n' ? str + '\n' : str;
   } // ^(---|...)
 
@@ -3167,12 +3211,12 @@ class Node {
 
 
   static endOfBlockIndent(src, indent, lineStart) {
-    const inEnd = Node.endOfIndent(src, lineStart);
+    const inEnd = Node$1.endOfIndent(src, lineStart);
 
     if (inEnd > lineStart + indent) {
       return inEnd;
     } else {
-      const wsEnd = Node.endOfWhiteSpace(src, inEnd);
+      const wsEnd = Node$1.endOfWhiteSpace(src, inEnd);
       const ch = src[wsEnd];
       if (!ch || ch === '\n') return wsEnd;
     }
@@ -3194,7 +3238,7 @@ class Node {
 
   static normalizeOffset(src, offset) {
     const ch = src[offset];
-    return !ch ? offset : ch !== '\n' && src[offset - 1] === '\n' ? offset - 1 : Node.endOfWhiteSpace(src, offset);
+    return !ch ? offset : ch !== '\n' && src[offset - 1] === '\n' ? offset - 1 : Node$1.endOfWhiteSpace(src, offset);
   } // fold single newline into space, multiple newlines to N - 1 newlines
   // presumes src[offset] === '\n'
 
@@ -3215,7 +3259,7 @@ class Node {
 
         case '\t':
           if (inCount <= indent) error = true;
-          offset = Node.endOfWhiteSpace(src, offset + 2) - 1;
+          offset = Node$1.endOfWhiteSpace(src, offset + 2) - 1;
           break;
 
         case ' ':
@@ -3287,7 +3331,7 @@ class Node {
     const {
       end
     } = this.valueRange;
-    return start !== end || Node.atBlank(src, end - 1);
+    return start !== end || Node$1.atBlank(src, end - 1);
   }
 
   get hasComment() {
@@ -3393,7 +3437,7 @@ class Node {
     } = this.context;
 
     if (src[start] === Char.COMMENT) {
-      const end = Node.endOfLine(src, start + 1);
+      const end = Node$1.endOfLine(src, start + 1);
       const commentRange = new Range(start, end);
       this.props.push(commentRange);
       return end;
@@ -3428,14 +3472,14 @@ class Node {
     } = this;
     if (value != null) return value;
     const str = src.slice(range.start, range.end);
-    return Node.addStringTerminator(src, range.end, str);
+    return Node$1.addStringTerminator(src, range.end, str);
   }
 
 }
 
 class YAMLError extends Error {
   constructor(name, source, message) {
-    if (!message || !(source instanceof Node)) throw new Error(`Invalid arguments for new ${name}`);
+    if (!message || !(source instanceof Node$1)) throw new Error(`Invalid arguments for new ${name}`);
     super();
     this.name = name;
     this.message = message;
@@ -3526,7 +3570,7 @@ function _defineProperty(obj, key, value) {
   return obj;
 }
 
-class PlainValue extends Node {
+class PlainValue$6 extends Node$1 {
   static endOfLine(src, start, inFlow) {
     let ch = src[start];
     let offset = start;
@@ -3565,7 +3609,7 @@ class PlainValue extends Node {
         const {
           fold,
           offset
-        } = Node.foldNewline(src, i, -1);
+        } = Node$1.foldNewline(src, i, -1);
         str += fold;
         i = offset;
       } else if (ch === ' ' || ch === '\t') {
@@ -3623,14 +3667,14 @@ class PlainValue extends Node {
     let valueEnd = start;
 
     for (let ch = src[offset]; ch === '\n'; ch = src[offset]) {
-      if (Node.atDocumentBoundary(src, offset + 1)) break;
-      const end = Node.endOfBlockIndent(src, indent, offset + 1);
+      if (Node$1.atDocumentBoundary(src, offset + 1)) break;
+      const end = Node$1.endOfBlockIndent(src, indent, offset + 1);
       if (end === null || src[end] === '#') break;
 
       if (src[end] === '\n') {
         offset = end;
       } else {
-        valueEnd = PlainValue.endOfLine(src, end, inFlow);
+        valueEnd = PlainValue$6.endOfLine(src, end, inFlow);
         offset = valueEnd;
       }
     }
@@ -3676,11 +3720,11 @@ class PlainValue extends Node {
     const ch = src[offset];
 
     if (ch && ch !== '#' && ch !== '\n') {
-      offset = PlainValue.endOfLine(src, start, inFlow);
+      offset = PlainValue$6.endOfLine(src, start, inFlow);
     }
 
     this.valueRange = new Range(start, offset);
-    offset = Node.endOfWhiteSpace(src, offset);
+    offset = Node$1.endOfWhiteSpace(src, offset);
     offset = this.parseComment(offset);
 
     if (!this.hasComment || this.valueRange.isEmpty()) {
@@ -3692,38 +3736,27 @@ class PlainValue extends Node {
 
 }
 
-var Char_1 = Char;
-var Node_1 = Node;
-var PlainValue_1 = PlainValue;
-var Range_1 = Range;
-var Type_1 = Type;
-var YAMLError_1 = YAMLError;
-var YAMLReferenceError_1 = YAMLReferenceError;
-var YAMLSemanticError_1 = YAMLSemanticError;
-var YAMLSyntaxError_1 = YAMLSyntaxError;
-var YAMLWarning_1 = YAMLWarning;
-var _defineProperty_1 = _defineProperty;
-var defaultTagPrefix_1 = defaultTagPrefix;
-var defaultTags_1 = defaultTags;
-var PlainValueEc8e588e = {
-  Char: Char_1,
-  Node: Node_1,
-  PlainValue: PlainValue_1,
-  Range: Range_1,
-  Type: Type_1,
-  YAMLError: YAMLError_1,
-  YAMLReferenceError: YAMLReferenceError_1,
-  YAMLSemanticError: YAMLSemanticError_1,
-  YAMLSyntaxError: YAMLSyntaxError_1,
-  YAMLWarning: YAMLWarning_1,
-  _defineProperty: _defineProperty_1,
-  defaultTagPrefix: defaultTagPrefix_1,
-  defaultTags: defaultTags_1
-};
-
-class BlankLine extends PlainValueEc8e588e.Node {
+PlainValueEc8e588e.Char = Char;
+PlainValueEc8e588e.Node = Node$1;
+PlainValueEc8e588e.PlainValue = PlainValue$6;
+PlainValueEc8e588e.Range = Range;
+PlainValueEc8e588e.Type = Type;
+PlainValueEc8e588e.YAMLError = YAMLError;
+PlainValueEc8e588e.YAMLReferenceError = YAMLReferenceError;
+PlainValueEc8e588e.YAMLSemanticError = YAMLSemanticError;
+PlainValueEc8e588e.YAMLSyntaxError = YAMLSyntaxError;
+PlainValueEc8e588e.YAMLWarning = YAMLWarning;
+
+PlainValueEc8e588e._defineProperty = _defineProperty;
+
+PlainValueEc8e588e.defaultTagPrefix = defaultTagPrefix;
+PlainValueEc8e588e.defaultTags = defaultTags;
+
+var PlainValue$5 = PlainValueEc8e588e;
+
+class BlankLine extends PlainValue$5.Node {
   constructor() {
-    super(PlainValueEc8e588e.Type.BLANK_LINE);
+    super(PlainValue$5.Type.BLANK_LINE);
   }
   /* istanbul ignore next */
 
@@ -3744,13 +3777,13 @@ class BlankLine extends PlainValueEc8e588e.Node {
 
   parse(context, start) {
     this.context = context;
-    this.range = new PlainValueEc8e588e.Range(start, start + 1);
+    this.range = new PlainValue$5.Range(start, start + 1);
     return start + 1;
   }
 
 }
 
-class CollectionItem extends PlainValueEc8e588e.Node {
+class CollectionItem extends PlainValue$5.Node {
   constructor(type, props) {
     super(type, props);
     this.node = null;
@@ -3776,9 +3809,9 @@ class CollectionItem extends PlainValueEc8e588e.Node {
       atLineStart,
       lineStart
     } = context;
-    if (!atLineStart && this.type === PlainValueEc8e588e.Type.SEQ_ITEM) this.error = new PlainValueEc8e588e.YAMLSemanticError(this, 'Sequence items must not have preceding content on the same line');
+    if (!atLineStart && this.type === PlainValue$5.Type.SEQ_ITEM) this.error = new PlainValue$5.YAMLSemanticError(this, 'Sequence items must not have preceding content on the same line');
     const indent = atLineStart ? start - lineStart : context.indent;
-    let offset = PlainValueEc8e588e.Node.endOfWhiteSpace(src, start + 1);
+    let offset = PlainValue$5.Node.endOfWhiteSpace(src, start + 1);
     let ch = src[offset];
     const inlineComment = ch === '#';
     const comments = [];
@@ -3786,13 +3819,13 @@ class CollectionItem extends PlainValueEc8e588e.Node {
 
     while (ch === '\n' || ch === '#') {
       if (ch === '#') {
-        const end = PlainValueEc8e588e.Node.endOfLine(src, offset + 1);
-        comments.push(new PlainValueEc8e588e.Range(offset, end));
+        const end = PlainValue$5.Node.endOfLine(src, offset + 1);
+        comments.push(new PlainValue$5.Range(offset, end));
         offset = end;
       } else {
         atLineStart = true;
         lineStart = offset + 1;
-        const wsEnd = PlainValueEc8e588e.Node.endOfWhiteSpace(src, lineStart);
+        const wsEnd = PlainValue$5.Node.endOfWhiteSpace(src, lineStart);
 
         if (src[wsEnd] === '\n' && comments.length === 0) {
           blankLine = new BlankLine();
@@ -3801,13 +3834,13 @@ class CollectionItem extends PlainValueEc8e588e.Node {
           }, lineStart);
         }
 
-        offset = PlainValueEc8e588e.Node.endOfIndent(src, lineStart);
+        offset = PlainValue$5.Node.endOfIndent(src, lineStart);
       }
 
       ch = src[offset];
     }
 
-    if (PlainValueEc8e588e.Node.nextNodeIsIndented(ch, offset - (lineStart + indent), this.type !== PlainValueEc8e588e.Type.SEQ_ITEM)) {
+    if (PlainValue$5.Node.nextNodeIsIndented(ch, offset - (lineStart + indent), this.type !== PlainValue$5.Type.SEQ_ITEM)) {
       this.node = parseNode({
         atLineStart,
         inCollection: false,
@@ -3836,12 +3869,12 @@ class CollectionItem extends PlainValueEc8e588e.Node {
         this.props.push(c);
         offset = c.end;
       } else {
-        offset = PlainValueEc8e588e.Node.endOfLine(src, start + 1);
+        offset = PlainValue$5.Node.endOfLine(src, start + 1);
       }
     }
 
     const end = this.node ? this.node.valueRange.end : offset;
-    this.valueRange = new PlainValueEc8e588e.Range(start, end);
+    this.valueRange = new PlainValue$5.Range(start, end);
     return offset;
   }
 
@@ -3861,14 +3894,14 @@ class CollectionItem extends PlainValueEc8e588e.Node {
     } = this;
     if (value != null) return value;
     const str = node ? src.slice(range.start, node.range.start) + String(node) : src.slice(range.start, range.end);
-    return PlainValueEc8e588e.Node.addStringTerminator(src, range.end, str);
+    return PlainValue$5.Node.addStringTerminator(src, range.end, str);
   }
 
 }
 
-class Comment extends PlainValueEc8e588e.Node {
+class Comment extends PlainValue$5.Node {
   constructor() {
-    super(PlainValueEc8e588e.Type.COMMENT);
+    super(PlainValue$5.Type.COMMENT);
   }
   /**
    * Parses a comment line from the source
@@ -3882,7 +3915,7 @@ class Comment extends PlainValueEc8e588e.Node {
   parse(context, start) {
     this.context = context;
     const offset = this.parseComment(start);
-    this.range = new PlainValueEc8e588e.Range(start, offset);
+    this.range = new PlainValue$5.Range(start, offset);
     return offset;
   }
 
@@ -3893,14 +3926,14 @@ function grabCollectionEndComments(node) {
 
   while (cnode instanceof CollectionItem) cnode = cnode.node;
 
-  if (!(cnode instanceof Collection)) return null;
+  if (!(cnode instanceof Collection$1)) return null;
   const len = cnode.items.length;
   let ci = -1;
 
   for (let i = len - 1; i >= 0; --i) {
     const n = cnode.items[i];
 
-    if (n.type === PlainValueEc8e588e.Type.COMMENT) {
+    if (n.type === PlainValue$5.Type.COMMENT) {
       // Keep sufficiently indented comments with preceding node
       const {
         indent,
@@ -3908,7 +3941,7 @@ function grabCollectionEndComments(node) {
       } = n.context;
       if (indent > 0 && n.range.start >= lineStart + indent) break;
       ci = i;
-    } else if (n.type === PlainValueEc8e588e.Type.BLANK_LINE) ci = i;else break;
+    } else if (n.type === PlainValue$5.Type.BLANK_LINE) ci = i;else break;
   }
 
   if (ci === -1) return null;
@@ -3925,19 +3958,19 @@ function grabCollectionEndComments(node) {
   return ca;
 }
 
-class Collection extends PlainValueEc8e588e.Node {
+class Collection$1 extends PlainValue$5.Node {
   static nextContentHasIndent(src, offset, indent) {
-    const lineStart = PlainValueEc8e588e.Node.endOfLine(src, offset) + 1;
-    offset = PlainValueEc8e588e.Node.endOfWhiteSpace(src, lineStart);
+    const lineStart = PlainValue$5.Node.endOfLine(src, offset) + 1;
+    offset = PlainValue$5.Node.endOfWhiteSpace(src, lineStart);
     const ch = src[offset];
     if (!ch) return false;
     if (offset >= lineStart + indent) return true;
     if (ch !== '#' && ch !== '\n') return false;
-    return Collection.nextContentHasIndent(src, offset, indent);
+    return Collection$1.nextContentHasIndent(src, offset, indent);
   }
 
   constructor(firstItem) {
-    super(firstItem.type === PlainValueEc8e588e.Type.SEQ_ITEM ? PlainValueEc8e588e.Type.SEQ : PlainValueEc8e588e.Type.MAP);
+    super(firstItem.type === PlainValue$5.Type.SEQ_ITEM ? PlainValue$5.Type.SEQ : PlainValue$5.Type.MAP);
 
     for (let i = firstItem.props.length - 1; i >= 0; --i) {
       if (firstItem.props[i].start < firstItem.context.lineStart) {
@@ -3973,17 +4006,17 @@ class Collection extends PlainValueEc8e588e.Node {
     } = context; // It's easier to recalculate lineStart here rather than tracking down the
     // last context from which to read it -- eemeli/yaml#2
 
-    let lineStart = PlainValueEc8e588e.Node.startOfLine(src, start);
+    let lineStart = PlainValue$5.Node.startOfLine(src, start);
     const firstItem = this.items[0]; // First-item context needs to be correct for later comment handling
     // -- eemeli/yaml#17
 
     firstItem.context.parent = this;
-    this.valueRange = PlainValueEc8e588e.Range.copy(firstItem.valueRange);
+    this.valueRange = PlainValue$5.Range.copy(firstItem.valueRange);
     const indent = firstItem.range.start - firstItem.context.lineStart;
     let offset = start;
-    offset = PlainValueEc8e588e.Node.normalizeOffset(src, offset);
+    offset = PlainValue$5.Node.normalizeOffset(src, offset);
     let ch = src[offset];
-    let atLineStart = PlainValueEc8e588e.Node.endOfWhiteSpace(src, lineStart) === offset;
+    let atLineStart = PlainValue$5.Node.endOfWhiteSpace(src, lineStart) === offset;
     let prevIncludesTrailingLines = false;
 
     while (ch) {
@@ -4003,7 +4036,7 @@ class Collection extends PlainValueEc8e588e.Node {
           this.items.push(blankLine);
           offset -= 1; // blankLine.parse() consumes terminal newline
         } else if (ch === '#') {
-          if (offset < lineStart + indent && !Collection.nextContentHasIndent(src, offset, indent)) {
+          if (offset < lineStart + indent && !Collection$1.nextContentHasIndent(src, offset, indent)) {
             return offset;
           }
 
@@ -4023,10 +4056,10 @@ class Collection extends PlainValueEc8e588e.Node {
         }
 
         lineStart = offset + 1;
-        offset = PlainValueEc8e588e.Node.endOfIndent(src, lineStart);
+        offset = PlainValue$5.Node.endOfIndent(src, lineStart);
 
-        if (PlainValueEc8e588e.Node.atBlank(src, offset)) {
-          const wsEnd = PlainValueEc8e588e.Node.endOfWhiteSpace(src, offset);
+        if (PlainValue$5.Node.atBlank(src, offset)) {
+          const wsEnd = PlainValue$5.Node.endOfWhiteSpace(src, offset);
           const next = src[wsEnd];
 
           if (!next || next === '\n' || next === '#') {
@@ -4048,11 +4081,11 @@ class Collection extends PlainValueEc8e588e.Node {
           break;
         } else if (!this.error) {
           const msg = 'All collection items must start at the same column';
-          this.error = new PlainValueEc8e588e.YAMLSyntaxError(this, msg);
+          this.error = new PlainValue$5.YAMLSyntaxError(this, msg);
         }
       }
 
-      if (firstItem.type === PlainValueEc8e588e.Type.SEQ_ITEM) {
+      if (firstItem.type === PlainValue$5.Type.SEQ_ITEM) {
         if (ch !== '-') {
           if (lineStart > start) offset = lineStart;
           break;
@@ -4063,7 +4096,7 @@ class Collection extends PlainValueEc8e588e.Node {
 
         if (!next || next === '\n' || next === '\t' || next === ' ') {
           const msg = 'A collection cannot be both a mapping and a sequence';
-          this.error = new PlainValueEc8e588e.YAMLSyntaxError(this, msg);
+          this.error = new PlainValue$5.YAMLSyntaxError(this, msg);
         }
       }
 
@@ -4078,7 +4111,7 @@ class Collection extends PlainValueEc8e588e.Node {
 
       this.items.push(node);
       this.valueRange.end = node.valueRange.end;
-      offset = PlainValueEc8e588e.Node.normalizeOffset(src, node.range.end);
+      offset = PlainValue$5.Node.normalizeOffset(src, node.range.end);
       ch = src[offset];
       atLineStart = false;
       prevIncludesTrailingLines = node.includesTrailingLines; // Need to reset lineStart and atLineStart here if preceding node's range
@@ -4134,14 +4167,14 @@ class Collection extends PlainValueEc8e588e.Node {
       str += String(item);
     }
 
-    return PlainValueEc8e588e.Node.addStringTerminator(src, range.end, str);
+    return PlainValue$5.Node.addStringTerminator(src, range.end, str);
   }
 
 }
 
-class Directive extends PlainValueEc8e588e.Node {
+class Directive extends PlainValue$5.Node {
   constructor() {
-    super(PlainValueEc8e588e.Type.DIRECTIVE);
+    super(PlainValue$5.Type.DIRECTIVE);
     this.name = null;
   }
 
@@ -4172,7 +4205,7 @@ class Directive extends PlainValueEc8e588e.Node {
 
     while (ch && ch !== '\n' && ch !== '#') ch = src[offset += 1];
 
-    this.valueRange = new PlainValueEc8e588e.Range(start, offset);
+    this.valueRange = new PlainValue$5.Range(start, offset);
     return offset;
   }
 
@@ -4181,21 +4214,21 @@ class Directive extends PlainValueEc8e588e.Node {
     let offset = this.parseName(start + 1);
     offset = this.parseParameters(offset);
     offset = this.parseComment(offset);
-    this.range = new PlainValueEc8e588e.Range(start, offset);
+    this.range = new PlainValue$5.Range(start, offset);
     return offset;
   }
 
 }
 
-class Document extends PlainValueEc8e588e.Node {
+class Document$3 extends PlainValue$5.Node {
   static startCommentOrEndBlankLine(src, start) {
-    const offset = PlainValueEc8e588e.Node.endOfWhiteSpace(src, start);
+    const offset = PlainValue$5.Node.endOfWhiteSpace(src, start);
     const ch = src[offset];
     return ch === '#' || ch === '\n' ? offset : start;
   }
 
   constructor() {
-    super(PlainValueEc8e588e.Type.DOCUMENT);
+    super(PlainValue$5.Type.DOCUMENT);
     this.directives = null;
     this.contents = null;
     this.directivesEndMarker = null;
@@ -4211,8 +4244,8 @@ class Document extends PlainValueEc8e588e.Node {
     let hasDirectives = false;
     let offset = start;
 
-    while (!PlainValueEc8e588e.Node.atDocumentBoundary(src, offset, PlainValueEc8e588e.Char.DIRECTIVES_END)) {
-      offset = Document.startCommentOrEndBlankLine(src, offset);
+    while (!PlainValue$5.Node.atDocumentBoundary(src, offset, PlainValue$5.Char.DIRECTIVES_END)) {
+      offset = Document$3.startCommentOrEndBlankLine(src, offset);
 
       switch (src[offset]) {
         case '\n':
@@ -4258,7 +4291,7 @@ class Document extends PlainValueEc8e588e.Node {
 
         default:
           if (hasDirectives) {
-            this.error = new PlainValueEc8e588e.YAMLSemanticError(this, 'Missing directives-end indicator line');
+            this.error = new PlainValue$5.YAMLSemanticError(this, 'Missing directives-end indicator line');
           } else if (this.directives.length > 0) {
             this.contents = this.directives;
             this.directives = [];
@@ -4269,12 +4302,12 @@ class Document extends PlainValueEc8e588e.Node {
     }
 
     if (src[offset]) {
-      this.directivesEndMarker = new PlainValueEc8e588e.Range(offset, offset + 3);
+      this.directivesEndMarker = new PlainValue$5.Range(offset, offset + 3);
       return offset + 3;
     }
 
     if (hasDirectives) {
-      this.error = new PlainValueEc8e588e.YAMLSemanticError(this, 'Missing directives-end indicator line');
+      this.error = new PlainValue$5.YAMLSemanticError(this, 'Missing directives-end indicator line');
     } else if (this.directives.length > 0) {
       this.contents = this.directives;
       this.directives = [];
@@ -4293,11 +4326,11 @@ class Document extends PlainValueEc8e588e.Node {
 
     while (src[lineStart - 1] === '-') lineStart -= 1;
 
-    let offset = PlainValueEc8e588e.Node.endOfWhiteSpace(src, start);
+    let offset = PlainValue$5.Node.endOfWhiteSpace(src, start);
     let atLineStart = lineStart === start;
-    this.valueRange = new PlainValueEc8e588e.Range(offset);
+    this.valueRange = new PlainValue$5.Range(offset);
 
-    while (!PlainValueEc8e588e.Node.atDocumentBoundary(src, offset, PlainValueEc8e588e.Char.DOCUMENT_END)) {
+    while (!PlainValue$5.Node.atDocumentBoundary(src, offset, PlainValue$5.Char.DOCUMENT_END)) {
       switch (src[offset]) {
         case '\n':
           if (atLineStart) {
@@ -4330,7 +4363,7 @@ class Document extends PlainValueEc8e588e.Node {
 
         default:
           {
-            const iEnd = PlainValueEc8e588e.Node.endOfIndent(src, offset);
+            const iEnd = PlainValue$5.Node.endOfIndent(src, offset);
             const context = {
               atLineStart,
               indent: -1,
@@ -4350,17 +4383,17 @@ class Document extends PlainValueEc8e588e.Node {
           }
       }
 
-      offset = Document.startCommentOrEndBlankLine(src, offset);
+      offset = Document$3.startCommentOrEndBlankLine(src, offset);
     }
 
     this.valueRange.end = offset;
 
     if (src[offset]) {
-      this.documentEndMarker = new PlainValueEc8e588e.Range(offset, offset + 3);
+      this.documentEndMarker = new PlainValue$5.Range(offset, offset + 3);
       offset += 3;
 
       if (src[offset]) {
-        offset = PlainValueEc8e588e.Node.endOfWhiteSpace(src, offset);
+        offset = PlainValue$5.Node.endOfWhiteSpace(src, offset);
 
         if (src[offset] === '#') {
           const comment = new Comment();
@@ -4379,7 +4412,7 @@ class Document extends PlainValueEc8e588e.Node {
             break;
 
           default:
-            this.error = new PlainValueEc8e588e.YAMLSyntaxError(this, 'Document end marker line cannot have a non-comment suffix');
+            this.error = new PlainValue$5.YAMLSyntaxError(this, 'Document end marker line cannot have a non-comment suffix');
         }
       }
     }
@@ -4429,7 +4462,7 @@ class Document extends PlainValueEc8e588e.Node {
     let str = directives.join('');
 
     if (contents.length > 0) {
-      if (directives.length > 0 || contents[0].type === PlainValueEc8e588e.Type.COMMENT) str += '---\n';
+      if (directives.length > 0 || contents[0].type === PlainValue$5.Type.COMMENT) str += '---\n';
       str += contents.join('');
     }
 
@@ -4439,7 +4472,7 @@ class Document extends PlainValueEc8e588e.Node {
 
 }
 
-class Alias extends PlainValueEc8e588e.Node {
+class Alias$1 extends PlainValue$5.Node {
   /**
    * Parses an *alias from the source
    *
@@ -4452,9 +4485,9 @@ class Alias extends PlainValueEc8e588e.Node {
     const {
       src
     } = context;
-    let offset = PlainValueEc8e588e.Node.endOfIdentifier(src, start + 1);
-    this.valueRange = new PlainValueEc8e588e.Range(start + 1, offset);
-    offset = PlainValueEc8e588e.Node.endOfWhiteSpace(src, offset);
+    let offset = PlainValue$5.Node.endOfIdentifier(src, start + 1);
+    this.valueRange = new PlainValue$5.Range(start + 1, offset);
+    offset = PlainValue$5.Node.endOfWhiteSpace(src, offset);
     offset = this.parseComment(offset);
     return offset;
   }
@@ -4467,7 +4500,7 @@ const Chomp = {
   STRIP: 'STRIP'
 };
 
-class BlockValue extends PlainValueEc8e588e.Node {
+class BlockValue extends PlainValue$5.Node {
   constructor(type, props) {
     super(type, props);
     this.blockIndent = null;
@@ -4516,7 +4549,7 @@ class BlockValue extends PlainValueEc8e588e.Node {
     }
 
     const bi = indent + this.blockIndent;
-    const folded = this.type === PlainValueEc8e588e.Type.BLOCK_FOLDED;
+    const folded = this.type === PlainValue$5.Type.BLOCK_FOLDED;
     let atStart = true;
     let str = '';
     let sep = '';
@@ -4533,7 +4566,7 @@ class BlockValue extends PlainValueEc8e588e.Node {
       if (ch === '\n') {
         if (sep === '\n') str += '\n';else sep = '\n';
       } else {
-        const lineEnd = PlainValueEc8e588e.Node.endOfLine(src, i);
+        const lineEnd = PlainValue$5.Node.endOfLine(src, i);
         const line = src.slice(i, lineEnd);
         i = lineEnd;
 
@@ -4590,7 +4623,7 @@ class BlockValue extends PlainValueEc8e588e.Node {
 
         default:
           this.blockIndent = Number(bi) || null;
-          this.header = new PlainValueEc8e588e.Range(start, offset);
+          this.header = new PlainValue$5.Range(start, offset);
           return offset;
       }
 
@@ -4610,8 +4643,8 @@ class BlockValue extends PlainValueEc8e588e.Node {
 
     for (let ch = src[offset]; ch === '\n'; ch = src[offset]) {
       offset += 1;
-      if (PlainValueEc8e588e.Node.atDocumentBoundary(src, offset)) break;
-      const end = PlainValueEc8e588e.Node.endOfBlockIndent(src, indent, offset); // should not include tab?
+      if (PlainValue$5.Node.atDocumentBoundary(src, offset)) break;
+      const end = PlainValue$5.Node.endOfBlockIndent(src, indent, offset); // should not include tab?
 
       if (end === null) break;
       const ch = src[end];
@@ -4623,7 +4656,7 @@ class BlockValue extends PlainValueEc8e588e.Node {
           // first line with non-whitespace content
           if (lineIndent < minBlockIndent) {
             const msg = 'Block scalars with more-indented leading empty lines must use an explicit indentation indicator';
-            this.error = new PlainValueEc8e588e.YAMLSemanticError(this, msg);
+            this.error = new PlainValue$5.YAMLSemanticError(this, msg);
           }
 
           this.blockIndent = lineIndent;
@@ -4637,14 +4670,14 @@ class BlockValue extends PlainValueEc8e588e.Node {
         if (!this.error) {
           const src = explicit ? 'explicit indentation indicator' : 'first line';
           const msg = `Block scalars must not be less indented than their ${src}`;
-          this.error = new PlainValueEc8e588e.YAMLSemanticError(this, msg);
+          this.error = new PlainValue$5.YAMLSemanticError(this, msg);
         }
       }
 
       if (src[end] === '\n') {
         offset = end;
       } else {
-        offset = valueEnd = PlainValueEc8e588e.Node.endOfLine(src, end);
+        offset = valueEnd = PlainValue$5.Node.endOfLine(src, end);
       }
     }
 
@@ -4652,7 +4685,7 @@ class BlockValue extends PlainValueEc8e588e.Node {
       offset = src[valueEnd] ? valueEnd + 1 : valueEnd;
     }
 
-    this.valueRange = new PlainValueEc8e588e.Range(start + 1, offset);
+    this.valueRange = new PlainValue$5.Range(start + 1, offset);
     return offset;
   }
   /**
@@ -4683,7 +4716,7 @@ class BlockValue extends PlainValueEc8e588e.Node {
       src
     } = context;
     let offset = this.parseBlockHeader(start);
-    offset = PlainValueEc8e588e.Node.endOfWhiteSpace(src, offset);
+    offset = PlainValue$5.Node.endOfWhiteSpace(src, offset);
     offset = this.parseComment(offset);
     offset = this.parseBlockValue(offset);
     return offset;
@@ -4696,7 +4729,7 @@ class BlockValue extends PlainValueEc8e588e.Node {
 
 }
 
-class FlowCollection extends PlainValueEc8e588e.Node {
+class FlowCollection extends PlainValue$5.Node {
   constructor(type, props) {
     super(type, props);
     this.items = null;
@@ -4704,7 +4737,7 @@ class FlowCollection extends PlainValueEc8e588e.Node {
 
   prevNodeIsJsonLike(idx = this.items.length) {
     const node = this.items[idx - 1];
-    return !!node && (node.jsonLike || node.type === PlainValueEc8e588e.Type.COMMENT && this.prevNodeIsJsonLike(idx - 1));
+    return !!node && (node.jsonLike || node.type === PlainValue$5.Type.COMMENT && this.prevNodeIsJsonLike(idx - 1));
   }
   /**
    * @param {ParseContext} context
@@ -4729,7 +4762,7 @@ class FlowCollection extends PlainValueEc8e588e.Node {
       char,
       offset: start
     }];
-    let offset = PlainValueEc8e588e.Node.endOfWhiteSpace(src, start + 1);
+    let offset = PlainValue$5.Node.endOfWhiteSpace(src, start + 1);
     char = src[offset];
 
     while (char && char !== ']' && char !== '}') {
@@ -4737,7 +4770,7 @@ class FlowCollection extends PlainValueEc8e588e.Node {
         case '\n':
           {
             lineStart = offset + 1;
-            const wsEnd = PlainValueEc8e588e.Node.endOfWhiteSpace(src, lineStart);
+            const wsEnd = PlainValue$5.Node.endOfWhiteSpace(src, lineStart);
 
             if (src[wsEnd] === '\n') {
               const blankLine = new BlankLine();
@@ -4747,14 +4780,14 @@ class FlowCollection extends PlainValueEc8e588e.Node {
               this.items.push(blankLine);
             }
 
-            offset = PlainValueEc8e588e.Node.endOfIndent(src, lineStart);
+            offset = PlainValue$5.Node.endOfIndent(src, lineStart);
 
             if (offset <= lineStart + indent) {
               char = src[offset];
 
               if (offset < lineStart + indent || char !== ']' && char !== '}') {
                 const msg = 'Insufficient indentation in flow collection';
-                this.error = new PlainValueEc8e588e.YAMLSemanticError(this, msg);
+                this.error = new PlainValue$5.YAMLSemanticError(this, msg);
               }
             }
           }
@@ -4810,27 +4843,27 @@ class FlowCollection extends PlainValueEc8e588e.Node {
 
             if (!node) {
               // at next document start
-              this.valueRange = new PlainValueEc8e588e.Range(start, offset);
+              this.valueRange = new PlainValue$5.Range(start, offset);
               return offset;
             }
 
             this.items.push(node);
-            offset = PlainValueEc8e588e.Node.normalizeOffset(src, node.range.end);
+            offset = PlainValue$5.Node.normalizeOffset(src, node.range.end);
           }
       }
 
-      offset = PlainValueEc8e588e.Node.endOfWhiteSpace(src, offset);
+      offset = PlainValue$5.Node.endOfWhiteSpace(src, offset);
       char = src[offset];
     }
 
-    this.valueRange = new PlainValueEc8e588e.Range(start, offset + 1);
+    this.valueRange = new PlainValue$5.Range(start, offset + 1);
 
     if (char) {
       this.items.push({
         char,
         offset
       });
-      offset = PlainValueEc8e588e.Node.endOfWhiteSpace(src, offset + 1);
+      offset = PlainValue$5.Node.endOfWhiteSpace(src, offset + 1);
       offset = this.parseComment(offset);
     }
 
@@ -4840,7 +4873,7 @@ class FlowCollection extends PlainValueEc8e588e.Node {
   setOrigRanges(cr, offset) {
     offset = super.setOrigRanges(cr, offset);
     this.items.forEach(node => {
-      if (node instanceof PlainValueEc8e588e.Node) {
+      if (node instanceof PlainValue$5.Node) {
         offset = node.setOrigRanges(cr, offset);
       } else if (cr.length === 0) {
         node.origOffset = node.offset;
@@ -4868,7 +4901,7 @@ class FlowCollection extends PlainValueEc8e588e.Node {
       value
     } = this;
     if (value != null) return value;
-    const nodes = items.filter(item => item instanceof PlainValueEc8e588e.Node);
+    const nodes = items.filter(item => item instanceof PlainValue$5.Node);
     let str = '';
     let prevEnd = range.start;
     nodes.forEach(node => {
@@ -4884,12 +4917,12 @@ class FlowCollection extends PlainValueEc8e588e.Node {
       }
     });
     str += src.slice(prevEnd, range.end);
-    return PlainValueEc8e588e.Node.addStringTerminator(src, range.end, str);
+    return PlainValue$5.Node.addStringTerminator(src, range.end, str);
   }
 
 }
 
-class QuoteDouble extends PlainValueEc8e588e.Node {
+class QuoteDouble extends PlainValue$5.Node {
   static endOfQuote(src, offset) {
     let ch = src[offset];
 
@@ -4916,7 +4949,7 @@ class QuoteDouble extends PlainValueEc8e588e.Node {
       indent,
       src
     } = this.context;
-    if (src[end - 1] !== '"') errors.push(new PlainValueEc8e588e.YAMLSyntaxError(this, 'Missing closing "quote')); // Using String#replace is too painful with escaped newlines preceded by
+    if (src[end - 1] !== '"') errors.push(new PlainValue$5.YAMLSyntaxError(this, 'Missing closing "quote')); // Using String#replace is too painful with escaped newlines preceded by
     // escaped backslashes; also, this should be faster.
 
     let str = '';
@@ -4925,15 +4958,15 @@ class QuoteDouble extends PlainValueEc8e588e.Node {
       const ch = src[i];
 
       if (ch === '\n') {
-        if (PlainValueEc8e588e.Node.atDocumentBoundary(src, i + 1)) errors.push(new PlainValueEc8e588e.YAMLSemanticError(this, 'Document boundary indicators are not allowed within string values'));
+        if (PlainValue$5.Node.atDocumentBoundary(src, i + 1)) errors.push(new PlainValue$5.YAMLSemanticError(this, 'Document boundary indicators are not allowed within string values'));
         const {
           fold,
           offset,
           error
-        } = PlainValueEc8e588e.Node.foldNewline(src, i, indent);
+        } = PlainValue$5.Node.foldNewline(src, i, indent);
         str += fold;
         i = offset;
-        if (error) errors.push(new PlainValueEc8e588e.YAMLSemanticError(this, 'Multi-line double-quoted string needs to be sufficiently indented'));
+        if (error) errors.push(new PlainValue$5.YAMLSemanticError(this, 'Multi-line double-quoted string needs to be sufficiently indented'));
       } else if (ch === '\\') {
         i += 1;
 
@@ -5045,7 +5078,7 @@ class QuoteDouble extends PlainValueEc8e588e.Node {
             break;
 
           default:
-            errors.push(new PlainValueEc8e588e.YAMLSyntaxError(this, `Invalid escape sequence ${src.substr(i - 1, 2)}`));
+            errors.push(new PlainValue$5.YAMLSyntaxError(this, `Invalid escape sequence ${src.substr(i - 1, 2)}`));
             str += '\\' + src[i];
         }
       } else if (ch === ' ' || ch === '\t') {
@@ -5079,7 +5112,7 @@ class QuoteDouble extends PlainValueEc8e588e.Node {
     const code = ok ? parseInt(cc, 16) : NaN;
 
     if (isNaN(code)) {
-      errors.push(new PlainValueEc8e588e.YAMLSyntaxError(this, `Invalid escape sequence ${src.substr(offset - 2, length + 2)}`));
+      errors.push(new PlainValue$5.YAMLSyntaxError(this, `Invalid escape sequence ${src.substr(offset - 2, length + 2)}`));
       return src.substr(offset - 2, length + 2);
     }
 
@@ -5100,15 +5133,15 @@ class QuoteDouble extends PlainValueEc8e588e.Node {
       src
     } = context;
     let offset = QuoteDouble.endOfQuote(src, start + 1);
-    this.valueRange = new PlainValueEc8e588e.Range(start, offset);
-    offset = PlainValueEc8e588e.Node.endOfWhiteSpace(src, offset);
+    this.valueRange = new PlainValue$5.Range(start, offset);
+    offset = PlainValue$5.Node.endOfWhiteSpace(src, offset);
     offset = this.parseComment(offset);
     return offset;
   }
 
 }
 
-class QuoteSingle extends PlainValueEc8e588e.Node {
+class QuoteSingle extends PlainValue$5.Node {
   static endOfQuote(src, offset) {
     let ch = src[offset];
 
@@ -5139,26 +5172,26 @@ class QuoteSingle extends PlainValueEc8e588e.Node {
       indent,
       src
     } = this.context;
-    if (src[end - 1] !== "'") errors.push(new PlainValueEc8e588e.YAMLSyntaxError(this, "Missing closing 'quote"));
+    if (src[end - 1] !== "'") errors.push(new PlainValue$5.YAMLSyntaxError(this, "Missing closing 'quote"));
     let str = '';
 
     for (let i = start + 1; i < end - 1; ++i) {
       const ch = src[i];
 
       if (ch === '\n') {
-        if (PlainValueEc8e588e.Node.atDocumentBoundary(src, i + 1)) errors.push(new PlainValueEc8e588e.YAMLSemanticError(this, 'Document boundary indicators are not allowed within string values'));
+        if (PlainValue$5.Node.atDocumentBoundary(src, i + 1)) errors.push(new PlainValue$5.YAMLSemanticError(this, 'Document boundary indicators are not allowed within string values'));
         const {
           fold,
           offset,
           error
-        } = PlainValueEc8e588e.Node.foldNewline(src, i, indent);
+        } = PlainValue$5.Node.foldNewline(src, i, indent);
         str += fold;
         i = offset;
-        if (error) errors.push(new PlainValueEc8e588e.YAMLSemanticError(this, 'Multi-line single-quoted string needs to be sufficiently indented'));
+        if (error) errors.push(new PlainValue$5.YAMLSemanticError(this, 'Multi-line single-quoted string needs to be sufficiently indented'));
       } else if (ch === "'") {
         str += ch;
         i += 1;
-        if (src[i] !== "'") errors.push(new PlainValueEc8e588e.YAMLSyntaxError(this, 'Unescaped single quote? This should not happen.'));
+        if (src[i] !== "'") errors.push(new PlainValue$5.YAMLSyntaxError(this, 'Unescaped single quote? This should not happen.'));
       } else if (ch === ' ' || ch === '\t') {
         // trim trailing whitespace
         const wsStart = i;
@@ -5195,8 +5228,8 @@ class QuoteSingle extends PlainValueEc8e588e.Node {
       src
     } = context;
     let offset = QuoteSingle.endOfQuote(src, start + 1);
-    this.valueRange = new PlainValueEc8e588e.Range(start, offset);
-    offset = PlainValueEc8e588e.Node.endOfWhiteSpace(src, offset);
+    this.valueRange = new PlainValue$5.Range(start, offset);
+    offset = PlainValue$5.Node.endOfWhiteSpace(src, offset);
     offset = this.parseComment(offset);
     return offset;
   }
@@ -5205,30 +5238,30 @@ class QuoteSingle extends PlainValueEc8e588e.Node {
 
 function createNewNode(type, props) {
   switch (type) {
-    case PlainValueEc8e588e.Type.ALIAS:
-      return new Alias(type, props);
+    case PlainValue$5.Type.ALIAS:
+      return new Alias$1(type, props);
 
-    case PlainValueEc8e588e.Type.BLOCK_FOLDED:
-    case PlainValueEc8e588e.Type.BLOCK_LITERAL:
+    case PlainValue$5.Type.BLOCK_FOLDED:
+    case PlainValue$5.Type.BLOCK_LITERAL:
       return new BlockValue(type, props);
 
-    case PlainValueEc8e588e.Type.FLOW_MAP:
-    case PlainValueEc8e588e.Type.FLOW_SEQ:
+    case PlainValue$5.Type.FLOW_MAP:
+    case PlainValue$5.Type.FLOW_SEQ:
       return new FlowCollection(type, props);
 
-    case PlainValueEc8e588e.Type.MAP_KEY:
-    case PlainValueEc8e588e.Type.MAP_VALUE:
-    case PlainValueEc8e588e.Type.SEQ_ITEM:
+    case PlainValue$5.Type.MAP_KEY:
+    case PlainValue$5.Type.MAP_VALUE:
+    case PlainValue$5.Type.SEQ_ITEM:
       return new CollectionItem(type, props);
 
-    case PlainValueEc8e588e.Type.COMMENT:
-    case PlainValueEc8e588e.Type.PLAIN:
-      return new PlainValueEc8e588e.PlainValue(type, props);
+    case PlainValue$5.Type.COMMENT:
+    case PlainValue$5.Type.PLAIN:
+      return new PlainValue$5.PlainValue(type, props);
 
-    case PlainValueEc8e588e.Type.QUOTE_DOUBLE:
+    case PlainValue$5.Type.QUOTE_DOUBLE:
       return new QuoteDouble(type, props);
 
-    case PlainValueEc8e588e.Type.QUOTE_SINGLE:
+    case PlainValue$5.Type.QUOTE_SINGLE:
       return new QuoteSingle(type, props);
 
     /* istanbul ignore next */
@@ -5253,37 +5286,37 @@ class ParseContext {
   static parseType(src, offset, inFlow) {
     switch (src[offset]) {
       case '*':
-        return PlainValueEc8e588e.Type.ALIAS;
+        return PlainValue$5.Type.ALIAS;
 
       case '>':
-        return PlainValueEc8e588e.Type.BLOCK_FOLDED;
+        return PlainValue$5.Type.BLOCK_FOLDED;
 
       case '|':
-        return PlainValueEc8e588e.Type.BLOCK_LITERAL;
+        return PlainValue$5.Type.BLOCK_LITERAL;
 
       case '{':
-        return PlainValueEc8e588e.Type.FLOW_MAP;
+        return PlainValue$5.Type.FLOW_MAP;
 
       case '[':
-        return PlainValueEc8e588e.Type.FLOW_SEQ;
+        return PlainValue$5.Type.FLOW_SEQ;
 
       case '?':
-        return !inFlow && PlainValueEc8e588e.Node.atBlank(src, offset + 1, true) ? PlainValueEc8e588e.Type.MAP_KEY : PlainValueEc8e588e.Type.PLAIN;
+        return !inFlow && PlainValue$5.Node.atBlank(src, offset + 1, true) ? PlainValue$5.Type.MAP_KEY : PlainValue$5.Type.PLAIN;
 
       case ':':
-        return !inFlow && PlainValueEc8e588e.Node.atBlank(src, offset + 1, true) ? PlainValueEc8e588e.Type.MAP_VALUE : PlainValueEc8e588e.Type.PLAIN;
+        return !inFlow && PlainValue$5.Node.atBlank(src, offset + 1, true) ? PlainValue$5.Type.MAP_VALUE : PlainValue$5.Type.PLAIN;
 
       case '-':
-        return !inFlow && PlainValueEc8e588e.Node.atBlank(src, offset + 1, true) ? PlainValueEc8e588e.Type.SEQ_ITEM : PlainValueEc8e588e.Type.PLAIN;
+        return !inFlow && PlainValue$5.Node.atBlank(src, offset + 1, true) ? PlainValue$5.Type.SEQ_ITEM : PlainValue$5.Type.PLAIN;
 
       case '"':
-        return PlainValueEc8e588e.Type.QUOTE_DOUBLE;
+        return PlainValue$5.Type.QUOTE_DOUBLE;
 
       case "'":
-        return PlainValueEc8e588e.Type.QUOTE_SINGLE;
+        return PlainValue$5.Type.QUOTE_SINGLE;
 
       default:
-        return PlainValueEc8e588e.Type.PLAIN;
+        return PlainValue$5.Type.PLAIN;
     }
   }
 
@@ -5295,8 +5328,8 @@ class ParseContext {
     lineStart,
     parent
   } = {}) {
-    PlainValueEc8e588e._defineProperty(this, "parseNode", (overlay, start) => {
-      if (PlainValueEc8e588e.Node.atDocumentBoundary(this.src, start)) return null;
+    PlainValue$5._defineProperty(this, "parseNode", (overlay, start) => {
+      if (PlainValue$5.Node.atDocumentBoundary(this.src, start)) return null;
       const context = new ParseContext(this, overlay);
       const {
         props,
@@ -5305,7 +5338,7 @@ class ParseContext {
       } = context.parseProps(start);
       const node = createNewNode(type, props);
       let offset = node.parse(context, valueStart);
-      node.range = new PlainValueEc8e588e.Range(start, offset);
+      node.range = new PlainValue$5.Range(start, offset);
       /* istanbul ignore if */
 
       if (offset <= start) {
@@ -5318,13 +5351,13 @@ class ParseContext {
       }
 
       if (context.nodeStartsCollection(node)) {
-        if (!node.error && !context.atLineStart && context.parent.type === PlainValueEc8e588e.Type.DOCUMENT) {
-          node.error = new PlainValueEc8e588e.YAMLSyntaxError(node, 'Block collection must not have preceding content here (e.g. directives-end indicator)');
+        if (!node.error && !context.atLineStart && context.parent.type === PlainValue$5.Type.DOCUMENT) {
+          node.error = new PlainValue$5.YAMLSyntaxError(node, 'Block collection must not have preceding content here (e.g. directives-end indicator)');
         }
 
-        const collection = new Collection(node);
+        const collection = new Collection$1(node);
         offset = collection.parse(new ParseContext(context), offset);
-        collection.range = new PlainValueEc8e588e.Range(start, offset);
+        collection.range = new PlainValue$5.Range(start, offset);
         return collection;
       }
 
@@ -5352,7 +5385,7 @@ class ParseContext {
 
     let offset = node.range.end;
     if (src[offset] === '\n' || src[offset - 1] === '\n') return false;
-    offset = PlainValueEc8e588e.Node.endOfWhiteSpace(src, offset);
+    offset = PlainValue$5.Node.endOfWhiteSpace(src, offset);
     return src[offset] === ':';
   } // Anchor and tag are before type, which determines the node implementation
   // class; hence this intermediate step.
@@ -5366,45 +5399,51 @@ class ParseContext {
     } = this;
     const props = [];
     let lineHasProps = false;
-    offset = this.atLineStart ? PlainValueEc8e588e.Node.endOfIndent(src, offset) : PlainValueEc8e588e.Node.endOfWhiteSpace(src, offset);
+    offset = this.atLineStart ? PlainValue$5.Node.endOfIndent(src, offset) : PlainValue$5.Node.endOfWhiteSpace(src, offset);
     let ch = src[offset];
 
-    while (ch === PlainValueEc8e588e.Char.ANCHOR || ch === PlainValueEc8e588e.Char.COMMENT || ch === PlainValueEc8e588e.Char.TAG || ch === '\n') {
+    while (ch === PlainValue$5.Char.ANCHOR || ch === PlainValue$5.Char.COMMENT || ch === PlainValue$5.Char.TAG || ch === '\n') {
       if (ch === '\n') {
-        const lineStart = offset + 1;
-        const inEnd = PlainValueEc8e588e.Node.endOfIndent(src, lineStart);
+        let inEnd = offset;
+        let lineStart;
+
+        do {
+          lineStart = inEnd + 1;
+          inEnd = PlainValue$5.Node.endOfIndent(src, lineStart);
+        } while (src[inEnd] === '\n');
+
         const indentDiff = inEnd - (lineStart + this.indent);
-        const noIndicatorAsIndent = parent.type === PlainValueEc8e588e.Type.SEQ_ITEM && parent.context.atLineStart;
-        if (!PlainValueEc8e588e.Node.nextNodeIsIndented(src[inEnd], indentDiff, !noIndicatorAsIndent)) break;
+        const noIndicatorAsIndent = parent.type === PlainValue$5.Type.SEQ_ITEM && parent.context.atLineStart;
+        if (src[inEnd] !== '#' && !PlainValue$5.Node.nextNodeIsIndented(src[inEnd], indentDiff, !noIndicatorAsIndent)) break;
         this.atLineStart = true;
         this.lineStart = lineStart;
         lineHasProps = false;
         offset = inEnd;
-      } else if (ch === PlainValueEc8e588e.Char.COMMENT) {
-        const end = PlainValueEc8e588e.Node.endOfLine(src, offset + 1);
-        props.push(new PlainValueEc8e588e.Range(offset, end));
+      } else if (ch === PlainValue$5.Char.COMMENT) {
+        const end = PlainValue$5.Node.endOfLine(src, offset + 1);
+        props.push(new PlainValue$5.Range(offset, end));
         offset = end;
       } else {
-        let end = PlainValueEc8e588e.Node.endOfIdentifier(src, offset + 1);
+        let end = PlainValue$5.Node.endOfIdentifier(src, offset + 1);
 
-        if (ch === PlainValueEc8e588e.Char.TAG && src[end] === ',' && /^[a-zA-Z0-9-]+\.[a-zA-Z0-9-]+,\d\d\d\d(-\d\d){0,2}\/\S/.test(src.slice(offset + 1, end + 13))) {
+        if (ch === PlainValue$5.Char.TAG && src[end] === ',' && /^[a-zA-Z0-9-]+\.[a-zA-Z0-9-]+,\d\d\d\d(-\d\d){0,2}\/\S/.test(src.slice(offset + 1, end + 13))) {
           // Let's presume we're dealing with a YAML 1.0 domain tag here, rather
           // than an empty but 'foo.bar' private-tagged node in a flow collection
           // followed without whitespace by a plain string starting with a year
           // or date divided by something.
-          end = PlainValueEc8e588e.Node.endOfIdentifier(src, end + 5);
+          end = PlainValue$5.Node.endOfIdentifier(src, end + 5);
         }
 
-        props.push(new PlainValueEc8e588e.Range(offset, end));
+        props.push(new PlainValue$5.Range(offset, end));
         lineHasProps = true;
-        offset = PlainValueEc8e588e.Node.endOfWhiteSpace(src, end);
+        offset = PlainValue$5.Node.endOfWhiteSpace(src, end);
       }
 
       ch = src[offset];
     } // '- &a : b' has an anchor on an empty node
 
 
-    if (lineHasProps && ch === ':' && PlainValueEc8e588e.Node.atBlank(src, offset + 1, true)) offset -= 1;
+    if (lineHasProps && ch === ':' && PlainValue$5.Node.atBlank(src, offset + 1, true)) offset -= 1;
     const type = ParseContext.parseType(src, offset, inFlow);
     return {
       props,
@@ -5423,7 +5462,7 @@ class ParseContext {
 } // Published as 'yaml/parse-cst'
 
 
-function parse(src) {
+function parse$1(src) {
   const cr = [];
 
   if (src.indexOf('\r') !== -1) {
@@ -5437,7 +5476,7 @@ function parse(src) {
   let offset = 0;
 
   do {
-    const doc = new Document();
+    const doc = new Document$3();
     const context = new ParseContext({
       src
     });
@@ -5465,10 +5504,13 @@ function parse(src) {
   return documents;
 }
 
-var parse_1 = parse;
-var parseCst = {
-  parse: parse_1
-};
+parseCst$1.parse = parse$1;
+
+var Document9b4560a1 = {};
+
+var resolveSeqD03cb037 = {};
+
+var PlainValue$4 = PlainValueEc8e588e;
 
 function addCommentBefore(str, indent, comment) {
   if (!comment) return str;
@@ -5480,7 +5522,7 @@ function addComment(str, indent, comment) {
   return !comment ? str : comment.indexOf('\n') === -1 ? `${str} #${comment}` : `${str}\n` + comment.replace(/^/gm, `${indent || ''}#`);
 }
 
-class Node$1 {}
+class Node {}
 
 function toJSON(value, arg, ctx) {
   if (Array.isArray(value)) return value.map((v, i) => toJSON(v, String(i), ctx));
@@ -5500,7 +5542,7 @@ function toJSON(value, arg, ctx) {
   return value;
 }
 
-class Scalar extends Node$1 {
+class Scalar extends Node {
   constructor(value) {
     super();
     this.value = value;
@@ -5521,9 +5563,21 @@ function collectionFromPath(schema, path, value) {
 
   for (let i = path.length - 1; i >= 0; --i) {
     const k = path[i];
-    const o = Number.isInteger(k) && k >= 0 ? [] : {};
-    o[k] = v;
-    v = o;
+
+    if (Number.isInteger(k) && k >= 0) {
+      const a = [];
+      a[k] = v;
+      v = a;
+    } else {
+      const o = {};
+      Object.defineProperty(o, k, {
+        value: v,
+        writable: true,
+        enumerable: true,
+        configurable: true
+      });
+      v = o;
+    }
   }
 
   return schema.createNode(v, false);
@@ -5532,11 +5586,11 @@ function collectionFromPath(schema, path, value) {
 
 const isEmptyPath = path => path == null || typeof path === 'object' && path[Symbol.iterator]().next().done;
 
-class Collection$1 extends Node$1 {
+class Collection extends Node {
   constructor(schema) {
     super();
 
-    PlainValueEc8e588e._defineProperty(this, "items", []);
+    PlainValue$4._defineProperty(this, "items", []);
 
     this.schema = schema;
   }
@@ -5545,19 +5599,19 @@ class Collection$1 extends Node$1 {
     if (isEmptyPath(path)) this.add(value);else {
       const [key, ...rest] = path;
       const node = this.get(key, true);
-      if (node instanceof Collection$1) node.addIn(rest, value);else if (node === undefined && this.schema) this.set(key, collectionFromPath(this.schema, rest, value));else throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);
+      if (node instanceof Collection) node.addIn(rest, value);else if (node === undefined && this.schema) this.set(key, collectionFromPath(this.schema, rest, value));else throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);
     }
   }
 
   deleteIn([key, ...rest]) {
     if (rest.length === 0) return this.delete(key);
     const node = this.get(key, true);
-    if (node instanceof Collection$1) return node.deleteIn(rest);else throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);
+    if (node instanceof Collection) return node.deleteIn(rest);else throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);
   }
 
   getIn([key, ...rest], keepScalar) {
     const node = this.get(key, true);
-    if (rest.length === 0) return !keepScalar && node instanceof Scalar ? node.value : node;else return node instanceof Collection$1 ? node.getIn(rest, keepScalar) : undefined;
+    if (rest.length === 0) return !keepScalar && node instanceof Scalar ? node.value : node;else return node instanceof Collection ? node.getIn(rest, keepScalar) : undefined;
   }
 
   hasAllNullValues() {
@@ -5571,7 +5625,7 @@ class Collection$1 extends Node$1 {
   hasIn([key, ...rest]) {
     if (rest.length === 0) return this.has(key);
     const node = this.get(key, true);
-    return node instanceof Collection$1 ? node.hasIn(rest) : false;
+    return node instanceof Collection ? node.hasIn(rest) : false;
   }
 
   setIn([key, ...rest], value) {
@@ -5579,7 +5633,7 @@ class Collection$1 extends Node$1 {
       this.set(key, value);
     } else {
       const node = this.get(key, true);
-      if (node instanceof Collection$1) node.setIn(rest, value);else if (node === undefined && this.schema) this.set(key, collectionFromPath(this.schema, rest, value));else throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);
+      if (node instanceof Collection) node.setIn(rest, value);else if (node === undefined && this.schema) this.set(key, collectionFromPath(this.schema, rest, value));else throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);
     }
   } // overridden in implementations
 
@@ -5601,7 +5655,7 @@ class Collection$1 extends Node$1 {
       indentStep,
       stringify
     } = ctx;
-    const inFlow = this.type === PlainValueEc8e588e.Type.FLOW_MAP || this.type === PlainValueEc8e588e.Type.FLOW_SEQ || ctx.inFlow;
+    const inFlow = this.type === PlainValue$4.Type.FLOW_MAP || this.type === PlainValue$4.Type.FLOW_SEQ || ctx.inFlow;
     if (inFlow) itemIndent += indentStep;
     const allNullValues = isMap && this.hasAllNullValues();
     ctx = Object.assign({}, ctx, {
@@ -5653,7 +5707,7 @@ class Collection$1 extends Node$1 {
       } = flowChars;
       const strings = nodes.map(n => n.str);
 
-      if (hasItemWithNewLine || strings.reduce((sum, str) => sum + str.length + 2, 2) > Collection$1.maxFlowStringSingleLineLength) {
+      if (hasItemWithNewLine || strings.reduce((sum, str) => sum + str.length + 2, 2) > Collection.maxFlowStringSingleLineLength) {
         str = start;
 
         for (const s of strings) {
@@ -5681,7 +5735,7 @@ class Collection$1 extends Node$1 {
 
 }
 
-PlainValueEc8e588e._defineProperty(Collection$1, "maxFlowStringSingleLineLength", 60);
+PlainValue$4._defineProperty(Collection, "maxFlowStringSingleLineLength", 60);
 
 function asItemIndex(key) {
   let idx = key instanceof Scalar ? key.value : key;
@@ -5689,7 +5743,7 @@ function asItemIndex(key) {
   return Number.isInteger(idx) && idx >= 0 ? idx : null;
 }
 
-class YAMLSeq extends Collection$1 {
+class YAMLSeq extends Collection {
   add(value) {
     this.items.push(value);
   }
@@ -5747,8 +5801,8 @@ class YAMLSeq extends Collection$1 {
 const stringifyKey = (key, jsKey, ctx) => {
   if (jsKey === null) return '';
   if (typeof jsKey !== 'object') return String(jsKey);
-  if (key instanceof Node$1 && ctx && ctx.doc) return key.toString({
-    anchors: {},
+  if (key instanceof Node && ctx && ctx.doc) return key.toString({
+    anchors: Object.create(null),
     doc: ctx.doc,
     indent: '',
     indentStep: ctx.indentStep,
@@ -5759,7 +5813,7 @@ const stringifyKey = (key, jsKey, ctx) => {
   return JSON.stringify(jsKey);
 };
 
-class Pair extends Node$1 {
+class Pair extends Node {
   constructor(key, value = null) {
     super();
     this.key = key;
@@ -5768,12 +5822,12 @@ class Pair extends Node$1 {
   }
 
   get commentBefore() {
-    return this.key instanceof Node$1 ? this.key.commentBefore : undefined;
+    return this.key instanceof Node ? this.key.commentBefore : undefined;
   }
 
   set commentBefore(cb) {
     if (this.key == null) this.key = new Scalar(null);
-    if (this.key instanceof Node$1) this.key.commentBefore = cb;else {
+    if (this.key instanceof Node) this.key.commentBefore = cb;else {
       const msg = 'Pair.commentBefore is an alias for Pair.key.commentBefore. To set it, the key must be a Node.';
       throw new Error(msg);
     }
@@ -5789,7 +5843,13 @@ class Pair extends Node$1 {
       map.add(key);
     } else {
       const stringKey = stringifyKey(this.key, key, ctx);
-      map[stringKey] = toJSON(this.value, stringKey, ctx);
+      const value = toJSON(this.value, stringKey, ctx);
+      if (stringKey in map) Object.defineProperty(map, stringKey, {
+        value,
+        writable: true,
+        enumerable: true,
+        configurable: true
+      });else map[stringKey] = value;
     }
 
     return map;
@@ -5811,20 +5871,20 @@ class Pair extends Node$1 {
       key,
       value
     } = this;
-    let keyComment = key instanceof Node$1 && key.comment;
+    let keyComment = key instanceof Node && key.comment;
 
     if (simpleKeys) {
       if (keyComment) {
         throw new Error('With simple keys, key nodes cannot have comments');
       }
 
-      if (key instanceof Collection$1) {
+      if (key instanceof Collection) {
         const msg = 'With simple keys, collection cannot be used as a key value';
         throw new Error(msg);
       }
     }
 
-    const explicitKey = !simpleKeys && (!key || keyComment || key instanceof Collection$1 || key.type === PlainValueEc8e588e.Type.BLOCK_FOLDED || key.type === PlainValueEc8e588e.Type.BLOCK_LITERAL);
+    let explicitKey = !simpleKeys && (!key || keyComment || (key instanceof Node ? key instanceof Collection || key.type === PlainValue$4.Type.BLOCK_FOLDED || key.type === PlainValue$4.Type.BLOCK_LITERAL : typeof key === 'object'));
     const {
       doc,
       indent,
@@ -5839,13 +5899,18 @@ class Pair extends Node$1 {
     let str = stringify(key, ctx, () => keyComment = null, () => chompKeep = true);
     str = addComment(str, ctx.indent, keyComment);
 
+    if (!explicitKey && str.length > 1024) {
+      if (simpleKeys) throw new Error('With simple keys, single line scalar must not span more than 1024 characters');
+      explicitKey = true;
+    }
+
     if (ctx.allNullValues && !simpleKeys) {
       if (this.comment) {
         str = addComment(str, ctx.indent, this.comment);
         if (onComment) onComment();
       } else if (chompKeep && !keyComment && onChompKeep) onChompKeep();
 
-      return ctx.inFlow ? str : `? ${str}`;
+      return ctx.inFlow && !explicitKey ? str : `? ${str}`;
     }
 
     str = explicitKey ? `? ${str}\n${indent}:` : `${str}:`;
@@ -5859,7 +5924,7 @@ class Pair extends Node$1 {
     let vcb = '';
     let valueComment = null;
 
-    if (value instanceof Node$1) {
+    if (value instanceof Node) {
       if (value.spaceBefore) vcb = '\n';
 
       if (value.commentBefore) {
@@ -5876,7 +5941,7 @@ class Pair extends Node$1 {
     if (!explicitKey && !this.comment && value instanceof Scalar) ctx.indentAtStart = str.length + 1;
     chompKeep = false;
 
-    if (!indentSeq && indentSize >= 2 && !ctx.inFlow && !explicitKey && value instanceof YAMLSeq && value.type !== PlainValueEc8e588e.Type.FLOW_SEQ && !value.tag && !doc.anchors.getName(value)) {
+    if (!indentSeq && indentSize >= 2 && !ctx.inFlow && !explicitKey && value instanceof YAMLSeq && value.type !== PlainValue$4.Type.FLOW_SEQ && !value.tag && !doc.anchors.getName(value)) {
       // If indentSeq === false, consider '- ' as part of indentation where possible
       ctx.indent = ctx.indent.substr(2);
     }
@@ -5886,10 +5951,10 @@ class Pair extends Node$1 {
 
     if (vcb || this.comment) {
       ws = `${vcb}\n${ctx.indent}`;
-    } else if (!explicitKey && value instanceof Collection$1) {
+    } else if (!explicitKey && value instanceof Collection) {
       const flow = valueStr[0] === '[' || valueStr[0] === '{';
       if (!flow || valueStr.includes('\n')) ws = `\n${ctx.indent}`;
-    }
+    } else if (valueStr[0] === '\n') ws = '';
 
     if (chompKeep && !valueComment && onChompKeep) onChompKeep();
     return addComment(str + ws + valueStr, ctx.indent, valueComment);
@@ -5897,16 +5962,16 @@ class Pair extends Node$1 {
 
 }
 
-PlainValueEc8e588e._defineProperty(Pair, "Type", {
+PlainValue$4._defineProperty(Pair, "Type", {
   PAIR: 'PAIR',
   MERGE_PAIR: 'MERGE_PAIR'
 });
 
 const getAliasCount = (node, anchors) => {
-  if (node instanceof Alias$1) {
+  if (node instanceof Alias) {
     const anchor = anchors.get(node.source);
     return anchor.count * anchor.aliasCount;
-  } else if (node instanceof Collection$1) {
+  } else if (node instanceof Collection) {
     let count = 0;
 
     for (const item of node.items) {
@@ -5924,7 +5989,7 @@ const getAliasCount = (node, anchors) => {
   return 1;
 };
 
-class Alias$1 extends Node$1 {
+class Alias extends Node {
   static stringify({
     range,
     source
@@ -5944,7 +6009,7 @@ class Alias$1 extends Node$1 {
   constructor(source) {
     super();
     this.source = source;
-    this.type = PlainValueEc8e588e.Type.ALIAS;
+    this.type = PlainValue$4.Type.ALIAS;
   }
 
   set tag(t) {
@@ -5962,7 +6027,7 @@ class Alias$1 extends Node$1 {
 
     if (!anchor || anchor.res === undefined) {
       const msg = 'This should not happen: Alias anchor was not resolved?';
-      if (this.cstNode) throw new PlainValueEc8e588e.YAMLReferenceError(this.cstNode, msg);else throw new ReferenceError(msg);
+      if (this.cstNode) throw new PlainValue$4.YAMLReferenceError(this.cstNode, msg);else throw new ReferenceError(msg);
     }
 
     if (maxAliasCount >= 0) {
@@ -5971,7 +6036,7 @@ class Alias$1 extends Node$1 {
 
       if (anchor.count * anchor.aliasCount > maxAliasCount) {
         const msg = 'Excessive alias count indicates a resource exhaustion attack';
-        if (this.cstNode) throw new PlainValueEc8e588e.YAMLReferenceError(this.cstNode, msg);else throw new ReferenceError(msg);
+        if (this.cstNode) throw new PlainValue$4.YAMLReferenceError(this.cstNode, msg);else throw new ReferenceError(msg);
       }
     }
 
@@ -5981,12 +6046,12 @@ class Alias$1 extends Node$1 {
 
 
   toString(ctx) {
-    return Alias$1.stringify(this, ctx);
+    return Alias.stringify(this, ctx);
   }
 
 }
 
-PlainValueEc8e588e._defineProperty(Alias$1, "default", true);
+PlainValue$4._defineProperty(Alias, "default", true);
 
 function findPair(items, key) {
   const k = key instanceof Scalar ? key.value : key;
@@ -6001,7 +6066,7 @@ function findPair(items, key) {
   return undefined;
 }
 
-class YAMLMap extends Collection$1 {
+class YAMLMap extends Collection {
   add(pair, overwrite) {
     if (!pair) pair = new Pair(pair);else if (!(pair instanceof Pair)) pair = new Pair(pair.key || pair, pair.value);
     const prev = findPair(this.items, pair.key);
@@ -6115,8 +6180,13 @@ class Merge extends Pair {
           if (!map.has(key)) map.set(key, value);
         } else if (map instanceof Set) {
           map.add(key);
-        } else {
-          if (!Object.prototype.hasOwnProperty.call(map, key)) map[key] = value;
+        } else if (!Object.prototype.hasOwnProperty.call(map, key)) {
+          Object.defineProperty(map, key, {
+            value,
+            writable: true,
+            enumerable: true,
+            configurable: true
+          });
         }
       }
     }
@@ -6136,7 +6206,7 @@ class Merge extends Pair {
 }
 
 const binaryOptions = {
-  defaultType: PlainValueEc8e588e.Type.BLOCK_LITERAL,
+  defaultType: PlainValue$4.Type.BLOCK_LITERAL,
   lineWidth: 76
 };
 const boolOptions = {
@@ -6150,7 +6220,7 @@ const nullOptions = {
   nullStr: 'null'
 };
 const strOptions = {
-  defaultType: PlainValueEc8e588e.Type.PLAIN,
+  defaultType: PlainValue$4.Type.PLAIN,
   doubleQuoted: {
     jsonEncoding: false,
     minMultiLineLength: 40
@@ -6216,7 +6286,7 @@ const consumeMoreIndentedLines = (text, i) => {
  *   the first line, defaulting to `indent.length`
  * @param {number} [options.lineWidth=80]
  * @param {number} [options.minContentWidth=20] Allow highly indented lines to
- *   stretch the line width
+ *   stretch the line width or indent content from the start
  * @param {function} options.onFold Called once if the text is folded
  * @param {function} options.onFold Called once if any line of text exceeds
  *   lineWidth characters
@@ -6235,11 +6305,18 @@ function foldFlowLines(text, indent, mode, {
   if (text.length <= endStep) return text;
   const folds = [];
   const escapedFolds = {};
-  let end = lineWidth - (typeof indentAtStart === 'number' ? indentAtStart : indent.length);
+  let end = lineWidth - indent.length;
+
+  if (typeof indentAtStart === 'number') {
+    if (indentAtStart > lineWidth - Math.max(2, minContentWidth)) folds.push(0);else end = lineWidth - indentAtStart;
+  }
+
   let split = undefined;
   let prev = undefined;
   let overflow = false;
   let i = -1;
+  let escStart = -1;
+  let escEnd = -1;
 
   if (mode === FOLD_BLOCK) {
     i = consumeMoreIndentedLines(text, i);
@@ -6248,6 +6325,8 @@ function foldFlowLines(text, indent, mode, {
 
   for (let ch; ch = text[i += 1];) {
     if (mode === FOLD_QUOTED && ch === '\\') {
+      escStart = i;
+
       switch (text[i + 1]) {
         case 'x':
           i += 3;
@@ -6264,6 +6343,8 @@ function foldFlowLines(text, indent, mode, {
         default:
           i += 1;
       }
+
+      escEnd = i;
     }
 
     if (ch === '\n') {
@@ -6288,12 +6369,15 @@ function foldFlowLines(text, indent, mode, {
             prev = ch;
             ch = text[i += 1];
             overflow = true;
-          } // i - 2 accounts for not-dropped last char + newline-escaping \
+          } // Account for newline escape, but don't break preceding escape
 
 
-          folds.push(i - 2);
-          escapedFolds[i - 2] = true;
-          end = i - 2 + endStep;
+          const j = i > escEnd + 1 ? i - 2 : escStart - 1; // Bail out if lineWidth & minContentWidth are shorter than an escape string
+
+          if (escapedFolds[j]) return text;
+          folds.push(j);
+          escapedFolds[j] = true;
+          end = j + endStep;
           split = undefined;
         } else {
           overflow = true;
@@ -6312,8 +6396,10 @@ function foldFlowLines(text, indent, mode, {
   for (let i = 0; i < folds.length; ++i) {
     const fold = folds[i];
     const end = folds[i + 1] || text.length;
-    if (mode === FOLD_QUOTED && escapedFolds[fold]) res += `${text[fold]}\\`;
-    res += `\n${indent}${text.slice(fold + 1, end)}`;
+    if (fold === 0) res = `\n${indent}${text.slice(0, end)}`;else {
+      if (mode === FOLD_QUOTED && escapedFolds[fold]) res += `${text[fold]}\\`;
+      res += `\n${indent}${text.slice(fold + 1, end)}`;
+    }
   }
 
   return res;
@@ -6329,7 +6415,9 @@ const getFoldOptions = ({
 
 const containsDocumentMarker = str => /^(%|---|\.\.\.)/m.test(str);
 
-function lineLengthOverLimit(str, limit) {
+function lineLengthOverLimit(str, lineWidth, indentLength) {
+  if (!lineWidth || lineWidth < 0) return false;
+  const limit = lineWidth - indentLength;
   const strLen = str.length;
   if (strLen <= limit) return false;
 
@@ -6472,7 +6560,7 @@ function blockString({
   const indent = ctx.indent || (ctx.forceBlockIndent || containsDocumentMarker(value) ? '  ' : '');
   const indentSize = indent ? '2' : '1'; // root is at -1
 
-  const literal = type === PlainValueEc8e588e.Type.BLOCK_FOLDED ? false : type === PlainValueEc8e588e.Type.BLOCK_LITERAL ? true : !lineLengthOverLimit(value, strOptions.fold.lineWidth - indent.length);
+  const literal = type === PlainValue$4.Type.BLOCK_FOLDED ? false : type === PlainValue$4.Type.BLOCK_LITERAL ? true : !lineLengthOverLimit(value, strOptions.fold.lineWidth, indent.length);
   let header = literal ? '|' : '>';
   if (!value) return header + '\n';
   let wsStart = '';
@@ -6551,7 +6639,7 @@ function plainString(item, ctx, onComment, onChompKeep) {
     return implicitKey || inFlow || value.indexOf('\n') === -1 ? value.indexOf('"') !== -1 && value.indexOf("'") === -1 ? singleQuotedString(value, ctx) : doubleQuotedString(value, ctx) : blockString(item, ctx, onComment, onChompKeep);
   }
 
-  if (!implicitKey && !inFlow && type !== PlainValueEc8e588e.Type.PLAIN && value.indexOf('\n') !== -1) {
+  if (!implicitKey && !inFlow && type !== PlainValue$4.Type.PLAIN && value.indexOf('\n') !== -1) {
     // Where allowed & type not set explicitly, prefer block style for multiline strings
     return blockString(item, ctx, onComment, onChompKeep);
   }
@@ -6605,17 +6693,17 @@ function stringifyString(item, ctx, onComment, onChompKeep) {
 
   const _stringify = _type => {
     switch (_type) {
-      case PlainValueEc8e588e.Type.BLOCK_FOLDED:
-      case PlainValueEc8e588e.Type.BLOCK_LITERAL:
+      case PlainValue$4.Type.BLOCK_FOLDED:
+      case PlainValue$4.Type.BLOCK_LITERAL:
         return blockString(item, ctx, onComment, onChompKeep);
 
-      case PlainValueEc8e588e.Type.QUOTE_DOUBLE:
+      case PlainValue$4.Type.QUOTE_DOUBLE:
         return doubleQuotedString(value, ctx);
 
-      case PlainValueEc8e588e.Type.QUOTE_SINGLE:
+      case PlainValue$4.Type.QUOTE_SINGLE:
         return singleQuotedString(value, ctx);
 
-      case PlainValueEc8e588e.Type.PLAIN:
+      case PlainValue$4.Type.PLAIN:
         return plainString(item, ctx, onComment, onChompKeep);
 
       default:
@@ -6623,12 +6711,12 @@ function stringifyString(item, ctx, onComment, onChompKeep) {
     }
   };
 
-  if (type !== PlainValueEc8e588e.Type.QUOTE_DOUBLE && /[\x00-\x08\x0b-\x1f\x7f-\x9f]/.test(value)) {
+  if (type !== PlainValue$4.Type.QUOTE_DOUBLE && /[\x00-\x08\x0b-\x1f\x7f-\x9f]/.test(value)) {
     // force double quotes on control characters
-    type = PlainValueEc8e588e.Type.QUOTE_DOUBLE;
-  } else if ((implicitKey || inFlow) && (type === PlainValueEc8e588e.Type.BLOCK_FOLDED || type === PlainValueEc8e588e.Type.BLOCK_LITERAL)) {
+    type = PlainValue$4.Type.QUOTE_DOUBLE;
+  } else if ((implicitKey || inFlow) && (type === PlainValue$4.Type.BLOCK_FOLDED || type === PlainValue$4.Type.BLOCK_LITERAL)) {
     // should not happen; blocks are not valid inside flow containers
-    type = PlainValueEc8e588e.Type.QUOTE_DOUBLE;
+    type = PlainValue$4.Type.QUOTE_DOUBLE;
   }
 
   let res = _stringify(type);
@@ -6671,18 +6759,18 @@ function checkFlowCollectionEnd(errors, cst) {
   let char, name;
 
   switch (cst.type) {
-    case PlainValueEc8e588e.Type.FLOW_MAP:
+    case PlainValue$4.Type.FLOW_MAP:
       char = '}';
       name = 'flow map';
       break;
 
-    case PlainValueEc8e588e.Type.FLOW_SEQ:
+    case PlainValue$4.Type.FLOW_SEQ:
       char = ']';
       name = 'flow sequence';
       break;
 
     default:
-      errors.push(new PlainValueEc8e588e.YAMLSemanticError(cst, 'Not a flow collection!?'));
+      errors.push(new PlainValue$4.YAMLSemanticError(cst, 'Not a flow collection!?'));
       return;
   }
 
@@ -6691,7 +6779,7 @@ function checkFlowCollectionEnd(errors, cst) {
   for (let i = cst.items.length - 1; i >= 0; --i) {
     const item = cst.items[i];
 
-    if (!item || item.type !== PlainValueEc8e588e.Type.COMMENT) {
+    if (!item || item.type !== PlainValue$4.Type.COMMENT) {
       lastItem = item;
       break;
     }
@@ -6702,10 +6790,10 @@ function checkFlowCollectionEnd(errors, cst) {
     let err;
 
     if (typeof lastItem.offset === 'number') {
-      err = new PlainValueEc8e588e.YAMLSemanticError(cst, msg);
+      err = new PlainValue$4.YAMLSemanticError(cst, msg);
       err.offset = lastItem.offset + 1;
     } else {
-      err = new PlainValueEc8e588e.YAMLSemanticError(lastItem, msg);
+      err = new PlainValue$4.YAMLSemanticError(lastItem, msg);
       if (lastItem.range && lastItem.range.end) err.offset = lastItem.range.end - lastItem.range.start;
     }
 
@@ -6718,14 +6806,14 @@ function checkFlowCommentSpace(errors, comment) {
 
   if (prev !== '\n' && prev !== '\t' && prev !== ' ') {
     const msg = 'Comments must be separated from other tokens by white space characters';
-    errors.push(new PlainValueEc8e588e.YAMLSemanticError(comment, msg));
+    errors.push(new PlainValue$4.YAMLSemanticError(comment, msg));
   }
 }
 
 function getLongKeyError(source, key) {
   const sk = String(key);
   const k = sk.substr(0, 8) + '...' + sk.substr(-8);
-  return new PlainValueEc8e588e.YAMLSemanticError(source, `The "${k}" key is too long`);
+  return new PlainValue$4.YAMLSemanticError(source, `The "${k}" key is too long`);
 }
 
 function resolveComments(collection, comments) {
@@ -6774,14 +6862,14 @@ function resolveTagHandle(doc, node) {
   if (!prefix) {
     const dtp = doc.getDefaults().tagPrefixes;
     if (dtp) prefix = dtp.find(p => p.handle === handle);
-    if (!prefix) throw new PlainValueEc8e588e.YAMLSemanticError(node, `The ${handle} tag handle is non-default and was not declared.`);
+    if (!prefix) throw new PlainValue$4.YAMLSemanticError(node, `The ${handle} tag handle is non-default and was not declared.`);
   }
 
-  if (!suffix) throw new PlainValueEc8e588e.YAMLSemanticError(node, `The ${handle} tag has no suffix.`);
+  if (!suffix) throw new PlainValue$4.YAMLSemanticError(node, `The ${handle} tag has no suffix.`);
 
   if (handle === '!' && (doc.version || doc.options.version) === '1.0') {
     if (suffix[0] === '^') {
-      doc.warnings.push(new PlainValueEc8e588e.YAMLWarning(node, 'YAML 1.0 ^ tag expansion is not supported'));
+      doc.warnings.push(new PlainValue$4.YAMLWarning(node, 'YAML 1.0 ^ tag expansion is not supported'));
       return suffix;
     }
 
@@ -6812,7 +6900,7 @@ function resolveTagName(doc, node) {
     if (verbatim) {
       if (verbatim !== '!' && verbatim !== '!!') return verbatim;
       const msg = `Verbatim tags aren't resolved, so ${verbatim} is invalid.`;
-      doc.errors.push(new PlainValueEc8e588e.YAMLSemanticError(node, msg));
+      doc.errors.push(new PlainValue$4.YAMLSemanticError(node, msg));
     } else if (handle === '!' && !suffix) {
       nonSpecific = true;
     } else {
@@ -6825,22 +6913,22 @@ function resolveTagName(doc, node) {
   }
 
   switch (type) {
-    case PlainValueEc8e588e.Type.BLOCK_FOLDED:
-    case PlainValueEc8e588e.Type.BLOCK_LITERAL:
-    case PlainValueEc8e588e.Type.QUOTE_DOUBLE:
-    case PlainValueEc8e588e.Type.QUOTE_SINGLE:
-      return PlainValueEc8e588e.defaultTags.STR;
+    case PlainValue$4.Type.BLOCK_FOLDED:
+    case PlainValue$4.Type.BLOCK_LITERAL:
+    case PlainValue$4.Type.QUOTE_DOUBLE:
+    case PlainValue$4.Type.QUOTE_SINGLE:
+      return PlainValue$4.defaultTags.STR;
 
-    case PlainValueEc8e588e.Type.FLOW_MAP:
-    case PlainValueEc8e588e.Type.MAP:
-      return PlainValueEc8e588e.defaultTags.MAP;
+    case PlainValue$4.Type.FLOW_MAP:
+    case PlainValue$4.Type.MAP:
+      return PlainValue$4.defaultTags.MAP;
 
-    case PlainValueEc8e588e.Type.FLOW_SEQ:
-    case PlainValueEc8e588e.Type.SEQ:
-      return PlainValueEc8e588e.defaultTags.SEQ;
+    case PlainValue$4.Type.FLOW_SEQ:
+    case PlainValue$4.Type.SEQ:
+      return PlainValue$4.defaultTags.SEQ;
 
-    case PlainValueEc8e588e.Type.PLAIN:
-      return nonSpecific ? PlainValueEc8e588e.defaultTags.STR : null;
+    case PlainValue$4.Type.PLAIN:
+      return nonSpecific ? PlainValue$4.defaultTags.STR : null;
 
     default:
       return null;
@@ -6857,7 +6945,7 @@ function resolveByTagName(doc, node, tagName) {
     if (tag.tag === tagName) {
       if (tag.test) matchWithTest.push(tag);else {
         const res = tag.resolve(doc, node);
-        return res instanceof Collection$1 ? res : new Scalar(res);
+        return res instanceof Collection ? res : new Scalar(res);
       }
     }
   }
@@ -6871,16 +6959,16 @@ function getFallbackTagName({
   type
 }) {
   switch (type) {
-    case PlainValueEc8e588e.Type.FLOW_MAP:
-    case PlainValueEc8e588e.Type.MAP:
-      return PlainValueEc8e588e.defaultTags.MAP;
+    case PlainValue$4.Type.FLOW_MAP:
+    case PlainValue$4.Type.MAP:
+      return PlainValue$4.defaultTags.MAP;
 
-    case PlainValueEc8e588e.Type.FLOW_SEQ:
-    case PlainValueEc8e588e.Type.SEQ:
-      return PlainValueEc8e588e.defaultTags.SEQ;
+    case PlainValue$4.Type.FLOW_SEQ:
+    case PlainValue$4.Type.SEQ:
+      return PlainValue$4.defaultTags.SEQ;
 
     default:
-      return PlainValueEc8e588e.defaultTags.STR;
+      return PlainValue$4.defaultTags.STR;
   }
 }
 
@@ -6903,12 +6991,12 @@ function resolveTag(doc, node, tagName) {
     const fallback = getFallbackTagName(node);
     if (!fallback) throw new Error(`The tag ${tagName} is unavailable`);
     const msg = `The tag ${tagName} is unavailable, falling back to ${fallback}`;
-    doc.warnings.push(new PlainValueEc8e588e.YAMLWarning(node, msg));
+    doc.warnings.push(new PlainValue$4.YAMLWarning(node, msg));
     const res = resolveByTagName(doc, node, fallback);
     res.tag = tagName;
     return res;
   } catch (error) {
-    const refError = new PlainValueEc8e588e.YAMLReferenceError(node, error.message);
+    const refError = new PlainValue$4.YAMLReferenceError(node, error.message);
     refError.stack = error.stack;
     doc.errors.push(refError);
     return null;
@@ -6920,7 +7008,7 @@ const isCollectionItem = node => {
   const {
     type
   } = node;
-  return type === PlainValueEc8e588e.Type.MAP_KEY || type === PlainValueEc8e588e.Type.MAP_VALUE || type === PlainValueEc8e588e.Type.SEQ_ITEM;
+  return type === PlainValue$4.Type.MAP_KEY || type === PlainValue$4.Type.MAP_VALUE || type === PlainValue$4.Type.SEQ_ITEM;
 };
 
 function resolveNodeProps(errors, node) {
@@ -6937,11 +7025,11 @@ function resolveNodeProps(errors, node) {
     end
   } of props) {
     switch (node.context.src[start]) {
-      case PlainValueEc8e588e.Char.COMMENT:
+      case PlainValue$4.Char.COMMENT:
         {
           if (!node.commentHasRequiredWhitespace(start)) {
             const msg = 'Comments must be separated from other tokens by white space characters';
-            errors.push(new PlainValueEc8e588e.YAMLSemanticError(node, msg));
+            errors.push(new PlainValue$4.YAMLSemanticError(node, msg));
           }
 
           const {
@@ -6954,19 +7042,19 @@ function resolveNodeProps(errors, node) {
         }
       // Actual anchor & tag resolution is handled by schema, here we just complain
 
-      case PlainValueEc8e588e.Char.ANCHOR:
+      case PlainValue$4.Char.ANCHOR:
         if (hasAnchor) {
           const msg = 'A node can have at most one anchor';
-          errors.push(new PlainValueEc8e588e.YAMLSemanticError(node, msg));
+          errors.push(new PlainValue$4.YAMLSemanticError(node, msg));
         }
 
         hasAnchor = true;
         break;
 
-      case PlainValueEc8e588e.Char.TAG:
+      case PlainValue$4.Char.TAG:
         if (hasTag) {
           const msg = 'A node can have at most one tag';
-          errors.push(new PlainValueEc8e588e.YAMLSemanticError(node, msg));
+          errors.push(new PlainValue$4.YAMLSemanticError(node, msg));
         }
 
         hasTag = true;
@@ -6988,18 +7076,18 @@ function resolveNodeValue(doc, node) {
     schema
   } = doc;
 
-  if (node.type === PlainValueEc8e588e.Type.ALIAS) {
+  if (node.type === PlainValue$4.Type.ALIAS) {
     const name = node.rawValue;
     const src = anchors.getNode(name);
 
     if (!src) {
       const msg = `Aliased anchor not found: ${name}`;
-      errors.push(new PlainValueEc8e588e.YAMLReferenceError(node, msg));
+      errors.push(new PlainValue$4.YAMLReferenceError(node, msg));
       return null;
     } // Lazy resolution for circular references
 
 
-    const res = new Alias$1(src);
+    const res = new Alias(src);
 
     anchors._cstAliases.push(res);
 
@@ -7009,9 +7097,9 @@ function resolveNodeValue(doc, node) {
   const tagName = resolveTagName(doc, node);
   if (tagName) return resolveTag(doc, node, tagName);
 
-  if (node.type !== PlainValueEc8e588e.Type.PLAIN) {
+  if (node.type !== PlainValue$4.Type.PLAIN) {
     const msg = `Failed to resolve ${node.type} node here`;
-    errors.push(new PlainValueEc8e588e.YAMLSyntaxError(node, msg));
+    errors.push(new PlainValue$4.YAMLSyntaxError(node, msg));
     return null;
   }
 
@@ -7050,9 +7138,9 @@ function resolveNode(doc, node) {
     anchors.map[name] = node;
   }
 
-  if (node.type === PlainValueEc8e588e.Type.ALIAS && (hasAnchor || hasTag)) {
+  if (node.type === PlainValue$4.Type.ALIAS && (hasAnchor || hasTag)) {
     const msg = 'An alias node must not specify any properties';
-    doc.errors.push(new PlainValueEc8e588e.YAMLSemanticError(node, msg));
+    doc.errors.push(new PlainValue$4.YAMLSemanticError(node, msg));
   }
 
   const res = resolveNodeValue(doc, node);
@@ -7075,16 +7163,16 @@ function resolveNode(doc, node) {
 }
 
 function resolveMap(doc, cst) {
-  if (cst.type !== PlainValueEc8e588e.Type.MAP && cst.type !== PlainValueEc8e588e.Type.FLOW_MAP) {
+  if (cst.type !== PlainValue$4.Type.MAP && cst.type !== PlainValue$4.Type.FLOW_MAP) {
     const msg = `A ${cst.type} node cannot be resolved as a mapping`;
-    doc.errors.push(new PlainValueEc8e588e.YAMLSyntaxError(cst, msg));
+    doc.errors.push(new PlainValue$4.YAMLSyntaxError(cst, msg));
     return null;
   }
 
   const {
     comments,
     items
-  } = cst.type === PlainValueEc8e588e.Type.FLOW_MAP ? resolveFlowMapItems(doc, cst) : resolveBlockMapItems(doc, cst);
+  } = cst.type === PlainValue$4.Type.FLOW_MAP ? resolveFlowMapItems(doc, cst) : resolveBlockMapItems(doc, cst);
   const map = new YAMLMap();
   map.items = items;
   resolveComments(map, comments);
@@ -7094,26 +7182,26 @@ function resolveMap(doc, cst) {
     const {
       key: iKey
     } = items[i];
-    if (iKey instanceof Collection$1) hasCollectionKey = true;
+    if (iKey instanceof Collection) hasCollectionKey = true;
 
     if (doc.schema.merge && iKey && iKey.value === MERGE_KEY) {
       items[i] = new Merge(items[i]);
       const sources = items[i].value.items;
       let error = null;
       sources.some(node => {
-        if (node instanceof Alias$1) {
+        if (node instanceof Alias) {
           // During parsing, alias sources are CST nodes; to account for
           // circular references their resolved values can't be used here.
           const {
             type
           } = node.source;
-          if (type === PlainValueEc8e588e.Type.MAP || type === PlainValueEc8e588e.Type.FLOW_MAP) return false;
+          if (type === PlainValue$4.Type.MAP || type === PlainValue$4.Type.FLOW_MAP) return false;
           return error = 'Merge nodes aliases can only point to maps';
         }
 
         return error = 'Merge nodes can only have Alias nodes as values';
       });
-      if (error) doc.errors.push(new PlainValueEc8e588e.YAMLSemanticError(cst, error));
+      if (error) doc.errors.push(new PlainValue$4.YAMLSemanticError(cst, error));
     } else {
       for (let j = i + 1; j < items.length; ++j) {
         const {
@@ -7122,7 +7210,7 @@ function resolveMap(doc, cst) {
 
         if (iKey === jKey || iKey && jKey && Object.prototype.hasOwnProperty.call(iKey, 'value') && iKey.value === jKey.value) {
           const msg = `Map keys must be unique; "${iKey}" is repeated`;
-          doc.errors.push(new PlainValueEc8e588e.YAMLSemanticError(cst, msg));
+          doc.errors.push(new PlainValue$4.YAMLSemanticError(cst, msg));
           break;
         }
       }
@@ -7131,7 +7219,7 @@ function resolveMap(doc, cst) {
 
   if (hasCollectionKey && !doc.options.mapAsMap) {
     const warn = 'Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this.';
-    doc.warnings.push(new PlainValueEc8e588e.YAMLWarning(cst, warn));
+    doc.warnings.push(new PlainValue$4.YAMLWarning(cst, warn));
   }
 
   cst.resolved = map;
@@ -7151,7 +7239,7 @@ const valueHasPairComment = ({
     start
   } = props[0];
   if (node && start > node.valueRange.start) return false;
-  if (src[start] !== PlainValueEc8e588e.Char.COMMENT) return false;
+  if (src[start] !== PlainValue$4.Char.COMMENT) return false;
 
   for (let i = lineStart; i < start; ++i) if (src[i] === '\n') return false;
 
@@ -7160,7 +7248,7 @@ const valueHasPairComment = ({
 
 function resolvePairComment(item, pair) {
   if (!valueHasPairComment(item)) return;
-  const comment = item.getPropValue(0, PlainValueEc8e588e.Char.COMMENT, true);
+  const comment = item.getPropValue(0, PlainValue$4.Char.COMMENT, true);
   let found = false;
   const cb = pair.value.commentBefore;
 
@@ -7189,14 +7277,14 @@ function resolveBlockMapItems(doc, cst) {
     const item = cst.items[i];
 
     switch (item.type) {
-      case PlainValueEc8e588e.Type.BLANK_LINE:
+      case PlainValue$4.Type.BLANK_LINE:
         comments.push({
           afterKey: !!key,
           before: items.length
         });
         break;
 
-      case PlainValueEc8e588e.Type.COMMENT:
+      case PlainValue$4.Type.COMMENT:
         comments.push({
           afterKey: !!key,
           before: items.length,
@@ -7204,21 +7292,21 @@ function resolveBlockMapItems(doc, cst) {
         });
         break;
 
-      case PlainValueEc8e588e.Type.MAP_KEY:
+      case PlainValue$4.Type.MAP_KEY:
         if (key !== undefined) items.push(new Pair(key));
         if (item.error) doc.errors.push(item.error);
         key = resolveNode(doc, item.node);
         keyStart = null;
         break;
 
-      case PlainValueEc8e588e.Type.MAP_VALUE:
+      case PlainValue$4.Type.MAP_VALUE:
         {
           if (key === undefined) key = null;
           if (item.error) doc.errors.push(item.error);
 
-          if (!item.context.atLineStart && item.node && item.node.type === PlainValueEc8e588e.Type.MAP && !item.node.context.atLineStart) {
+          if (!item.context.atLineStart && item.node && item.node.type === PlainValue$4.Type.MAP && !item.node.context.atLineStart) {
             const msg = 'Nested mappings are not allowed in compact mappings';
-            doc.errors.push(new PlainValueEc8e588e.YAMLSemanticError(item.node, msg));
+            doc.errors.push(new PlainValue$4.YAMLSemanticError(item.node, msg));
           }
 
           let valueNode = item.node;
@@ -7227,7 +7315,7 @@ function resolveBlockMapItems(doc, cst) {
             // Comments on an empty mapping value need to be preserved, so we
             // need to construct a minimal empty node here to use instead of the
             // missing `item.node`. -- eemeli/yaml#19
-            valueNode = new PlainValueEc8e588e.PlainValue(PlainValueEc8e588e.Type.PLAIN, []);
+            valueNode = new PlainValue$4.PlainValue(PlainValue$4.Type.PLAIN, []);
             valueNode.context = {
               parent: item,
               src: item.context.src
@@ -7272,17 +7360,17 @@ function resolveBlockMapItems(doc, cst) {
           const nextItem = cst.items[j];
 
           switch (nextItem && nextItem.type) {
-            case PlainValueEc8e588e.Type.BLANK_LINE:
-            case PlainValueEc8e588e.Type.COMMENT:
+            case PlainValue$4.Type.BLANK_LINE:
+            case PlainValue$4.Type.COMMENT:
               continue next;
 
-            case PlainValueEc8e588e.Type.MAP_VALUE:
+            case PlainValue$4.Type.MAP_VALUE:
               break next;
 
             default:
               {
                 const msg = 'Implicit map keys need to be followed by map values';
-                doc.errors.push(new PlainValueEc8e588e.YAMLSemanticError(item, msg));
+                doc.errors.push(new PlainValue$4.YAMLSemanticError(item, msg));
                 break next;
               }
           }
@@ -7290,7 +7378,7 @@ function resolveBlockMapItems(doc, cst) {
 
         if (item.valueRangeContainsNewline) {
           const msg = 'Implicit map keys need to be on a single line';
-          doc.errors.push(new PlainValueEc8e588e.YAMLSemanticError(item, msg));
+          doc.errors.push(new PlainValue$4.YAMLSemanticError(item, msg));
         }
 
     }
@@ -7357,15 +7445,15 @@ function resolveFlowMapItems(doc, cst) {
       }
 
       const msg = `Flow map contains an unexpected ${char}`;
-      const err = new PlainValueEc8e588e.YAMLSyntaxError(cst, msg);
+      const err = new PlainValue$4.YAMLSyntaxError(cst, msg);
       err.offset = offset;
       doc.errors.push(err);
-    } else if (item.type === PlainValueEc8e588e.Type.BLANK_LINE) {
+    } else if (item.type === PlainValue$4.Type.BLANK_LINE) {
       comments.push({
         afterKey: !!key,
         before: items.length
       });
-    } else if (item.type === PlainValueEc8e588e.Type.COMMENT) {
+    } else if (item.type === PlainValue$4.Type.COMMENT) {
       checkFlowCommentSpace(doc.errors, item);
       comments.push({
         afterKey: !!key,
@@ -7373,10 +7461,10 @@ function resolveFlowMapItems(doc, cst) {
         comment: item.comment
       });
     } else if (key === undefined) {
-      if (next === ',') doc.errors.push(new PlainValueEc8e588e.YAMLSemanticError(item, 'Separator , missing in flow map'));
+      if (next === ',') doc.errors.push(new PlainValue$4.YAMLSemanticError(item, 'Separator , missing in flow map'));
       key = resolveNode(doc, item);
     } else {
-      if (next !== ',') doc.errors.push(new PlainValueEc8e588e.YAMLSemanticError(item, 'Indicator : missing in flow map entry'));
+      if (next !== ',') doc.errors.push(new PlainValue$4.YAMLSemanticError(item, 'Indicator : missing in flow map entry'));
       items.push(new Pair(key, resolveNode(doc, item)));
       key = undefined;
       explicitKey = false;
@@ -7391,24 +7479,24 @@ function resolveFlowMapItems(doc, cst) {
   };
 }
 
-function resolveSeq(doc, cst) {
-  if (cst.type !== PlainValueEc8e588e.Type.SEQ && cst.type !== PlainValueEc8e588e.Type.FLOW_SEQ) {
+function resolveSeq$3(doc, cst) {
+  if (cst.type !== PlainValue$4.Type.SEQ && cst.type !== PlainValue$4.Type.FLOW_SEQ) {
     const msg = `A ${cst.type} node cannot be resolved as a sequence`;
-    doc.errors.push(new PlainValueEc8e588e.YAMLSyntaxError(cst, msg));
+    doc.errors.push(new PlainValue$4.YAMLSyntaxError(cst, msg));
     return null;
   }
 
   const {
     comments,
     items
-  } = cst.type === PlainValueEc8e588e.Type.FLOW_SEQ ? resolveFlowSeqItems(doc, cst) : resolveBlockSeqItems(doc, cst);
+  } = cst.type === PlainValue$4.Type.FLOW_SEQ ? resolveFlowSeqItems(doc, cst) : resolveBlockSeqItems(doc, cst);
   const seq = new YAMLSeq();
   seq.items = items;
   resolveComments(seq, comments);
 
-  if (!doc.options.mapAsMap && items.some(it => it instanceof Pair && it.key instanceof Collection$1)) {
+  if (!doc.options.mapAsMap && items.some(it => it instanceof Pair && it.key instanceof Collection)) {
     const warn = 'Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this.';
-    doc.warnings.push(new PlainValueEc8e588e.YAMLWarning(cst, warn));
+    doc.warnings.push(new PlainValue$4.YAMLWarning(cst, warn));
   }
 
   cst.resolved = seq;
@@ -7423,33 +7511,33 @@ function resolveBlockSeqItems(doc, cst) {
     const item = cst.items[i];
 
     switch (item.type) {
-      case PlainValueEc8e588e.Type.BLANK_LINE:
+      case PlainValue$4.Type.BLANK_LINE:
         comments.push({
           before: items.length
         });
         break;
 
-      case PlainValueEc8e588e.Type.COMMENT:
+      case PlainValue$4.Type.COMMENT:
         comments.push({
           comment: item.comment,
           before: items.length
         });
         break;
 
-      case PlainValueEc8e588e.Type.SEQ_ITEM:
+      case PlainValue$4.Type.SEQ_ITEM:
         if (item.error) doc.errors.push(item.error);
         items.push(resolveNode(doc, item.node));
 
         if (item.hasProps) {
           const msg = 'Sequence items cannot have tags or anchors before the - indicator';
-          doc.errors.push(new PlainValueEc8e588e.YAMLSemanticError(item, msg));
+          doc.errors.push(new PlainValue$4.YAMLSemanticError(item, msg));
         }
 
         break;
 
       default:
         if (item.error) doc.errors.push(item.error);
-        doc.errors.push(new PlainValueEc8e588e.YAMLSyntaxError(item, `Unexpected ${item.type} node in sequence`));
+        doc.errors.push(new PlainValue$4.YAMLSyntaxError(item, `Unexpected ${item.type} node in sequence`));
     }
   }
 
@@ -7495,7 +7583,7 @@ function resolveFlowSeqItems(doc, cst) {
 
           if (key instanceof Pair) {
             const msg = 'Chaining flow sequence pairs is invalid';
-            const err = new PlainValueEc8e588e.YAMLSemanticError(cst, msg);
+            const err = new PlainValue$4.YAMLSemanticError(cst, msg);
             err.offset = offset;
             doc.errors.push(err);
           }
@@ -7509,7 +7597,7 @@ function resolveFlowSeqItems(doc, cst) {
 
             for (let i = keyStart; i < keyEnd; ++i) if (src[i] === '\n') {
               const msg = 'Implicit keys of flow sequence pairs need to be on a single line';
-              doc.errors.push(new PlainValueEc8e588e.YAMLSemanticError(prevItem, msg));
+              doc.errors.push(new PlainValue$4.YAMLSemanticError(prevItem, msg));
               break;
             }
           }
@@ -7522,15 +7610,15 @@ function resolveFlowSeqItems(doc, cst) {
         next = null;
       } else if (next === '[' || char !== ']' || i < cst.items.length - 1) {
         const msg = `Flow sequence contains an unexpected ${char}`;
-        const err = new PlainValueEc8e588e.YAMLSyntaxError(cst, msg);
+        const err = new PlainValue$4.YAMLSyntaxError(cst, msg);
         err.offset = offset;
         doc.errors.push(err);
       }
-    } else if (item.type === PlainValueEc8e588e.Type.BLANK_LINE) {
+    } else if (item.type === PlainValue$4.Type.BLANK_LINE) {
       comments.push({
         before: items.length
       });
-    } else if (item.type === PlainValueEc8e588e.Type.COMMENT) {
+    } else if (item.type === PlainValue$4.Type.COMMENT) {
       checkFlowCommentSpace(doc.errors, item);
       comments.push({
         comment: item.comment,
@@ -7539,7 +7627,7 @@ function resolveFlowSeqItems(doc, cst) {
     } else {
       if (next) {
         const msg = `Expected a ${next} in flow sequence`;
-        doc.errors.push(new PlainValueEc8e588e.YAMLSemanticError(item, msg));
+        doc.errors.push(new PlainValue$4.YAMLSemanticError(item, msg));
       }
 
       const value = resolveNode(doc, item);
@@ -7565,368 +7653,1475 @@ function resolveFlowSeqItems(doc, cst) {
   };
 }
 
-var Alias_1 = Alias$1;
-var Collection_1 = Collection$1;
-var Merge_1 = Merge;
-var Node_1$1 = Node$1;
-var Pair_1 = Pair;
-var Scalar_1 = Scalar;
-var YAMLMap_1 = YAMLMap;
-var YAMLSeq_1 = YAMLSeq;
-var addComment_1 = addComment;
-var binaryOptions_1 = binaryOptions;
-var boolOptions_1 = boolOptions;
-var findPair_1 = findPair;
-var intOptions_1 = intOptions;
-var isEmptyPath_1 = isEmptyPath;
-var nullOptions_1 = nullOptions;
-var resolveMap_1 = resolveMap;
-var resolveNode_1 = resolveNode;
-var resolveSeq_1 = resolveSeq;
-var resolveString_1 = resolveString;
-var strOptions_1 = strOptions;
-var stringifyNumber_1 = stringifyNumber;
-var stringifyString_1 = stringifyString;
-var toJSON_1 = toJSON;
-var resolveSeq4a68b39b = {
-  Alias: Alias_1,
-  Collection: Collection_1,
-  Merge: Merge_1,
-  Node: Node_1$1,
-  Pair: Pair_1,
-  Scalar: Scalar_1,
-  YAMLMap: YAMLMap_1,
-  YAMLSeq: YAMLSeq_1,
-  addComment: addComment_1,
-  binaryOptions: binaryOptions_1,
-  boolOptions: boolOptions_1,
-  findPair: findPair_1,
-  intOptions: intOptions_1,
-  isEmptyPath: isEmptyPath_1,
-  nullOptions: nullOptions_1,
-  resolveMap: resolveMap_1,
-  resolveNode: resolveNode_1,
-  resolveSeq: resolveSeq_1,
-  resolveString: resolveString_1,
-  strOptions: strOptions_1,
-  stringifyNumber: stringifyNumber_1,
-  stringifyString: stringifyString_1,
-  toJSON: toJSON_1
+resolveSeqD03cb037.Alias = Alias;
+resolveSeqD03cb037.Collection = Collection;
+resolveSeqD03cb037.Merge = Merge;
+resolveSeqD03cb037.Node = Node;
+resolveSeqD03cb037.Pair = Pair;
+resolveSeqD03cb037.Scalar = Scalar;
+resolveSeqD03cb037.YAMLMap = YAMLMap;
+resolveSeqD03cb037.YAMLSeq = YAMLSeq;
+resolveSeqD03cb037.addComment = addComment;
+resolveSeqD03cb037.binaryOptions = binaryOptions;
+resolveSeqD03cb037.boolOptions = boolOptions;
+resolveSeqD03cb037.findPair = findPair;
+resolveSeqD03cb037.intOptions = intOptions;
+resolveSeqD03cb037.isEmptyPath = isEmptyPath;
+resolveSeqD03cb037.nullOptions = nullOptions;
+resolveSeqD03cb037.resolveMap = resolveMap;
+resolveSeqD03cb037.resolveNode = resolveNode;
+resolveSeqD03cb037.resolveSeq = resolveSeq$3;
+resolveSeqD03cb037.resolveString = resolveString;
+resolveSeqD03cb037.strOptions = strOptions;
+resolveSeqD03cb037.stringifyNumber = stringifyNumber;
+resolveSeqD03cb037.stringifyString = stringifyString;
+resolveSeqD03cb037.toJSON = toJSON;
+
+var check = function (it) {
+  return it && it.Math == Math && it;
 };
 
-/* global atob, btoa, Buffer */
+// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
+var global$m =
+  // eslint-disable-next-line es/no-global-this -- safe
+  check(typeof globalThis == 'object' && globalThis) ||
+  check(typeof window == 'object' && window) ||
+  // eslint-disable-next-line no-restricted-globals -- safe
+  check(typeof self == 'object' && self) ||
+  check(typeof global$m == 'object' && global$m) ||
+  // eslint-disable-next-line no-new-func -- fallback
+  (function () { return this; })() || Function('return this')();
 
+var objectGetOwnPropertyDescriptor = {};
 
-const binary = {
-  identify: value => value instanceof Uint8Array,
-  // Buffer inherits from Uint8Array
-  default: false,
-  tag: 'tag:yaml.org,2002:binary',
+var fails$7 = function (exec) {
+  try {
+    return !!exec();
+  } catch (error) {
+    return true;
+  }
+};
 
-  /**
-   * Returns a Buffer in node and an Uint8Array in browsers
-   *
-   * To use the resulting buffer as an image, you'll want to do something like:
-   *
-   *   const blob = new Blob([buffer], { type: 'image/jpeg' })
-   *   document.querySelector('#photo').src = URL.createObjectURL(blob)
-   */
-  resolve: (doc, node) => {
-    const src = resolveSeq4a68b39b.resolveString(doc, node);
+var fails$6 = fails$7;
 
-    if (typeof Buffer === 'function') {
-      return Buffer.from(src, 'base64');
-    } else if (typeof atob === 'function') {
-      // On IE 11, atob() can't handle newlines
-      const str = atob(src.replace(/[\n\r]/g, ''));
-      const buffer = new Uint8Array(str.length);
+// Detect IE8's incomplete defineProperty implementation
+var descriptors = !fails$6(function () {
+  // eslint-disable-next-line es/no-object-defineproperty -- required for testing
+  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;
+});
 
-      for (let i = 0; i < str.length; ++i) buffer[i] = str.charCodeAt(i);
+var call$4 = Function.prototype.call;
 
-      return buffer;
-    } else {
-      const msg = 'This environment does not support reading binary tags; either Buffer or atob is required';
-      doc.errors.push(new PlainValueEc8e588e.YAMLReferenceError(node, msg));
-      return null;
-    }
-  },
-  options: resolveSeq4a68b39b.binaryOptions,
-  stringify: ({
-    comment,
-    type,
-    value
-  }, ctx, onComment, onChompKeep) => {
-    let src;
+var functionCall = call$4.bind ? call$4.bind(call$4) : function () {
+  return call$4.apply(call$4, arguments);
+};
 
-    if (typeof Buffer === 'function') {
-      src = value instanceof Buffer ? value.toString('base64') : Buffer.from(value.buffer).toString('base64');
-    } else if (typeof btoa === 'function') {
-      let s = '';
+var objectPropertyIsEnumerable = {};
 
-      for (let i = 0; i < value.length; ++i) s += String.fromCharCode(value[i]);
+var $propertyIsEnumerable = {}.propertyIsEnumerable;
+// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
+var getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor;
 
-      src = btoa(s);
-    } else {
-      throw new Error('This environment does not support writing binary tags; either Buffer or btoa is required');
-    }
+// Nashorn ~ JDK8 bug
+var NASHORN_BUG = getOwnPropertyDescriptor$1 && !$propertyIsEnumerable.call({ 1: 2 }, 1);
 
-    if (!type) type = resolveSeq4a68b39b.binaryOptions.defaultType;
+// `Object.prototype.propertyIsEnumerable` method implementation
+// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable
+objectPropertyIsEnumerable.f = NASHORN_BUG ? function propertyIsEnumerable(V) {
+  var descriptor = getOwnPropertyDescriptor$1(this, V);
+  return !!descriptor && descriptor.enumerable;
+} : $propertyIsEnumerable;
 
-    if (type === PlainValueEc8e588e.Type.QUOTE_DOUBLE) {
-      value = src;
-    } else {
-      const {
-        lineWidth
-      } = resolveSeq4a68b39b.binaryOptions;
-      const n = Math.ceil(src.length / lineWidth);
-      const lines = new Array(n);
+var createPropertyDescriptor$2 = function (bitmap, value) {
+  return {
+    enumerable: !(bitmap & 1),
+    configurable: !(bitmap & 2),
+    writable: !(bitmap & 4),
+    value: value
+  };
+};
 
-      for (let i = 0, o = 0; i < n; ++i, o += lineWidth) {
-        lines[i] = src.substr(o, lineWidth);
-      }
+var FunctionPrototype$1 = Function.prototype;
+var bind = FunctionPrototype$1.bind;
+var call$3 = FunctionPrototype$1.call;
+var callBind = bind && bind.bind(call$3);
 
-      value = lines.join(type === PlainValueEc8e588e.Type.BLOCK_LITERAL ? '\n' : ' ');
-    }
+var functionUncurryThis = bind ? function (fn) {
+  return fn && callBind(call$3, fn);
+} : function (fn) {
+  return fn && function () {
+    return call$3.apply(fn, arguments);
+  };
+};
 
-    return resolveSeq4a68b39b.stringifyString({
-      comment,
-      type,
-      value
-    }, ctx, onComment, onChompKeep);
-  }
+var uncurryThis$a = functionUncurryThis;
+
+var toString$3 = uncurryThis$a({}.toString);
+var stringSlice = uncurryThis$a(''.slice);
+
+var classofRaw$1 = function (it) {
+  return stringSlice(toString$3(it), 8, -1);
 };
 
-function parsePairs(doc, cst) {
-  const seq = resolveSeq4a68b39b.resolveSeq(doc, cst);
+var global$l = global$m;
+var uncurryThis$9 = functionUncurryThis;
+var fails$5 = fails$7;
+var classof$2 = classofRaw$1;
 
-  for (let i = 0; i < seq.items.length; ++i) {
-    let item = seq.items[i];
-    if (item instanceof resolveSeq4a68b39b.Pair) continue;else if (item instanceof resolveSeq4a68b39b.YAMLMap) {
-      if (item.items.length > 1) {
-        const msg = 'Each pair must have its own sequence indicator';
-        throw new PlainValueEc8e588e.YAMLSemanticError(cst, msg);
-      }
+var Object$4 = global$l.Object;
+var split = uncurryThis$9(''.split);
 
-      const pair = item.items[0] || new resolveSeq4a68b39b.Pair();
-      if (item.commentBefore) pair.commentBefore = pair.commentBefore ? `${item.commentBefore}\n${pair.commentBefore}` : item.commentBefore;
-      if (item.comment) pair.comment = pair.comment ? `${item.comment}\n${pair.comment}` : item.comment;
-      item = pair;
-    }
-    seq.items[i] = item instanceof resolveSeq4a68b39b.Pair ? item : new resolveSeq4a68b39b.Pair(item);
-  }
+// fallback for non-array-like ES3 and non-enumerable old V8 strings
+var indexedObject = fails$5(function () {
+  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
+  // eslint-disable-next-line no-prototype-builtins -- safe
+  return !Object$4('z').propertyIsEnumerable(0);
+}) ? function (it) {
+  return classof$2(it) == 'String' ? split(it, '') : Object$4(it);
+} : Object$4;
 
-  return seq;
-}
+var global$k = global$m;
 
-function createPairs(schema, iterable, ctx) {
-  const pairs = new resolveSeq4a68b39b.YAMLSeq(schema);
-  pairs.tag = 'tag:yaml.org,2002:pairs';
+var TypeError$7 = global$k.TypeError;
 
-  for (const it of iterable) {
-    let key, value;
+// `RequireObjectCoercible` abstract operation
+// https://tc39.es/ecma262/#sec-requireobjectcoercible
+var requireObjectCoercible$2 = function (it) {
+  if (it == undefined) throw TypeError$7("Can't call method on " + it);
+  return it;
+};
 
-    if (Array.isArray(it)) {
-      if (it.length === 2) {
-        key = it[0];
-        value = it[1];
-      } else throw new TypeError(`Expected [key, value] tuple: ${it}`);
-    } else if (it && it instanceof Object) {
-      const keys = Object.keys(it);
+// toObject with fallback for non-array-like ES3 strings
+var IndexedObject = indexedObject;
+var requireObjectCoercible$1 = requireObjectCoercible$2;
 
-      if (keys.length === 1) {
-        key = keys[0];
-        value = it[key];
-      } else throw new TypeError(`Expected { key: value } tuple: ${it}`);
-    } else {
-      key = it;
-    }
+var toIndexedObject$3 = function (it) {
+  return IndexedObject(requireObjectCoercible$1(it));
+};
 
-    const pair = schema.createPair(key, value, ctx);
-    pairs.items.push(pair);
-  }
+// `IsCallable` abstract operation
+// https://tc39.es/ecma262/#sec-iscallable
+var isCallable$a = function (argument) {
+  return typeof argument == 'function';
+};
 
-  return pairs;
-}
+var isCallable$9 = isCallable$a;
 
-const pairs = {
-  default: false,
-  tag: 'tag:yaml.org,2002:pairs',
-  resolve: parsePairs,
-  createNode: createPairs
+var isObject$5 = function (it) {
+  return typeof it == 'object' ? it !== null : isCallable$9(it);
 };
 
-class YAMLOMap extends resolveSeq4a68b39b.YAMLSeq {
-  constructor() {
-    super();
+var global$j = global$m;
+var isCallable$8 = isCallable$a;
+
+var aFunction = function (argument) {
+  return isCallable$8(argument) ? argument : undefined;
+};
 
-    PlainValueEc8e588e._defineProperty(this, "add", resolveSeq4a68b39b.YAMLMap.prototype.add.bind(this));
+var getBuiltIn$3 = function (namespace, method) {
+  return arguments.length < 2 ? aFunction(global$j[namespace]) : global$j[namespace] && global$j[namespace][method];
+};
 
-    PlainValueEc8e588e._defineProperty(this, "delete", resolveSeq4a68b39b.YAMLMap.prototype.delete.bind(this));
+var uncurryThis$8 = functionUncurryThis;
 
-    PlainValueEc8e588e._defineProperty(this, "get", resolveSeq4a68b39b.YAMLMap.prototype.get.bind(this));
+var objectIsPrototypeOf = uncurryThis$8({}.isPrototypeOf);
 
-    PlainValueEc8e588e._defineProperty(this, "has", resolveSeq4a68b39b.YAMLMap.prototype.has.bind(this));
+var getBuiltIn$2 = getBuiltIn$3;
 
-    PlainValueEc8e588e._defineProperty(this, "set", resolveSeq4a68b39b.YAMLMap.prototype.set.bind(this));
+var engineUserAgent = getBuiltIn$2('navigator', 'userAgent') || '';
 
-    this.tag = YAMLOMap.tag;
+var global$i = global$m;
+var userAgent$2 = engineUserAgent;
+
+var process$1 = global$i.process;
+var Deno = global$i.Deno;
+var versions = process$1 && process$1.versions || Deno && Deno.version;
+var v8 = versions && versions.v8;
+var match, version;
+
+if (v8) {
+  match = v8.split('.');
+  // in old Chrome, versions of V8 isn't V8 = Chrome / 10
+  // but their correct versions are not interesting for us
+  version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);
+}
+
+// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`
+// so check `userAgent` even if `.v8` exists, but 0
+if (!version && userAgent$2) {
+  match = userAgent$2.match(/Edge\/(\d+)/);
+  if (!match || match[1] >= 74) {
+    match = userAgent$2.match(/Chrome\/(\d+)/);
+    if (match) version = +match[1];
   }
+}
 
-  toJSON(_, ctx) {
-    const map = new Map();
-    if (ctx && ctx.onCreate) ctx.onCreate(map);
+var engineV8Version = version;
 
-    for (const pair of this.items) {
-      let key, value;
+/* eslint-disable es/no-symbol -- required for testing */
 
-      if (pair instanceof resolveSeq4a68b39b.Pair) {
-        key = resolveSeq4a68b39b.toJSON(pair.key, '', ctx);
-        value = resolveSeq4a68b39b.toJSON(pair.value, key, ctx);
-      } else {
-        key = resolveSeq4a68b39b.toJSON(pair, '', ctx);
-      }
+var V8_VERSION = engineV8Version;
+var fails$4 = fails$7;
 
-      if (map.has(key)) throw new Error('Ordered maps must not include duplicate keys');
-      map.set(key, value);
-    }
+// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing
+var nativeSymbol = !!Object.getOwnPropertySymbols && !fails$4(function () {
+  var symbol = Symbol();
+  // Chrome 38 Symbol has incorrect toString conversion
+  // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances
+  return !String(symbol) || !(Object(symbol) instanceof Symbol) ||
+    // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances
+    !Symbol.sham && V8_VERSION && V8_VERSION < 41;
+});
 
-    return map;
-  }
+/* eslint-disable es/no-symbol -- required for testing */
 
-}
+var NATIVE_SYMBOL$1 = nativeSymbol;
 
-PlainValueEc8e588e._defineProperty(YAMLOMap, "tag", 'tag:yaml.org,2002:omap');
+var useSymbolAsUid = NATIVE_SYMBOL$1
+  && !Symbol.sham
+  && typeof Symbol.iterator == 'symbol';
 
-function parseOMap(doc, cst) {
-  const pairs = parsePairs(doc, cst);
-  const seenKeys = [];
+var global$h = global$m;
+var getBuiltIn$1 = getBuiltIn$3;
+var isCallable$7 = isCallable$a;
+var isPrototypeOf = objectIsPrototypeOf;
+var USE_SYMBOL_AS_UID$1 = useSymbolAsUid;
 
-  for (const {
-    key
-  } of pairs.items) {
-    if (key instanceof resolveSeq4a68b39b.Scalar) {
-      if (seenKeys.includes(key.value)) {
-        const msg = 'Ordered maps must not include duplicate keys';
-        throw new PlainValueEc8e588e.YAMLSemanticError(cst, msg);
-      } else {
-        seenKeys.push(key.value);
-      }
-    }
+var Object$3 = global$h.Object;
+
+var isSymbol$2 = USE_SYMBOL_AS_UID$1 ? function (it) {
+  return typeof it == 'symbol';
+} : function (it) {
+  var $Symbol = getBuiltIn$1('Symbol');
+  return isCallable$7($Symbol) && isPrototypeOf($Symbol.prototype, Object$3(it));
+};
+
+var global$g = global$m;
+
+var String$3 = global$g.String;
+
+var tryToString$1 = function (argument) {
+  try {
+    return String$3(argument);
+  } catch (error) {
+    return 'Object';
   }
+};
 
-  return Object.assign(new YAMLOMap(), pairs);
-}
+var global$f = global$m;
+var isCallable$6 = isCallable$a;
+var tryToString = tryToString$1;
 
-function createOMap(schema, iterable, ctx) {
-  const pairs = createPairs(schema, iterable, ctx);
-  const omap = new YAMLOMap();
-  omap.items = pairs.items;
-  return omap;
-}
+var TypeError$6 = global$f.TypeError;
 
-const omap = {
-  identify: value => value instanceof Map,
-  nodeClass: YAMLOMap,
-  default: false,
-  tag: 'tag:yaml.org,2002:omap',
-  resolve: parseOMap,
-  createNode: createOMap
+// `Assert: IsCallable(argument) is true`
+var aCallable$2 = function (argument) {
+  if (isCallable$6(argument)) return argument;
+  throw TypeError$6(tryToString(argument) + ' is not a function');
 };
 
-class YAMLSet extends resolveSeq4a68b39b.YAMLMap {
-  constructor() {
-    super();
-    this.tag = YAMLSet.tag;
-  }
+var aCallable$1 = aCallable$2;
 
-  add(key) {
-    const pair = key instanceof resolveSeq4a68b39b.Pair ? key : new resolveSeq4a68b39b.Pair(key);
-    const prev = resolveSeq4a68b39b.findPair(this.items, pair.key);
-    if (!prev) this.items.push(pair);
-  }
+// `GetMethod` abstract operation
+// https://tc39.es/ecma262/#sec-getmethod
+var getMethod$1 = function (V, P) {
+  var func = V[P];
+  return func == null ? undefined : aCallable$1(func);
+};
 
-  get(key, keepPair) {
-    const pair = resolveSeq4a68b39b.findPair(this.items, key);
-    return !keepPair && pair instanceof resolveSeq4a68b39b.Pair ? pair.key instanceof resolveSeq4a68b39b.Scalar ? pair.key.value : pair.key : pair;
-  }
+var global$e = global$m;
+var call$2 = functionCall;
+var isCallable$5 = isCallable$a;
+var isObject$4 = isObject$5;
+
+var TypeError$5 = global$e.TypeError;
+
+// `OrdinaryToPrimitive` abstract operation
+// https://tc39.es/ecma262/#sec-ordinarytoprimitive
+var ordinaryToPrimitive$1 = function (input, pref) {
+  var fn, val;
+  if (pref === 'string' && isCallable$5(fn = input.toString) && !isObject$4(val = call$2(fn, input))) return val;
+  if (isCallable$5(fn = input.valueOf) && !isObject$4(val = call$2(fn, input))) return val;
+  if (pref !== 'string' && isCallable$5(fn = input.toString) && !isObject$4(val = call$2(fn, input))) return val;
+  throw TypeError$5("Can't convert object to primitive value");
+};
 
-  set(key, value) {
-    if (typeof value !== 'boolean') throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof value}`);
-    const prev = resolveSeq4a68b39b.findPair(this.items, key);
+var shared$3 = {exports: {}};
 
-    if (prev && !value) {
-      this.items.splice(this.items.indexOf(prev), 1);
-    } else if (!prev && value) {
-      this.items.push(new resolveSeq4a68b39b.Pair(key));
-    }
-  }
+var global$d = global$m;
 
-  toJSON(_, ctx) {
-    return super.toJSON(_, ctx, Set);
-  }
+// eslint-disable-next-line es/no-object-defineproperty -- safe
+var defineProperty = Object.defineProperty;
 
-  toString(ctx, onComment, onChompKeep) {
-    if (!ctx) return JSON.stringify(this);
-    if (this.hasAllNullValues()) return super.toString(ctx, onComment, onChompKeep);else throw new Error('Set items must all have null values');
-  }
+var setGlobal$3 = function (key, value) {
+  try {
+    defineProperty(global$d, key, { value: value, configurable: true, writable: true });
+  } catch (error) {
+    global$d[key] = value;
+  } return value;
+};
 
-}
+var global$c = global$m;
+var setGlobal$2 = setGlobal$3;
 
-PlainValueEc8e588e._defineProperty(YAMLSet, "tag", 'tag:yaml.org,2002:set');
+var SHARED = '__core-js_shared__';
+var store$3 = global$c[SHARED] || setGlobal$2(SHARED, {});
 
-function parseSet(doc, cst) {
-  const map = resolveSeq4a68b39b.resolveMap(doc, cst);
-  if (!map.hasAllNullValues()) throw new PlainValueEc8e588e.YAMLSemanticError(cst, 'Set items must all have null values');
-  return Object.assign(new YAMLSet(), map);
-}
+var sharedStore = store$3;
 
-function createSet(schema, iterable, ctx) {
-  const set = new YAMLSet();
+var store$2 = sharedStore;
 
-  for (const value of iterable) set.items.push(schema.createPair(value, null, ctx));
+(shared$3.exports = function (key, value) {
+  return store$2[key] || (store$2[key] = value !== undefined ? value : {});
+})('versions', []).push({
+  version: '3.19.1',
+  mode: 'global',
+  copyright: '© 2021 Denis Pushkarev (zloirock.ru)'
+});
 
-  return set;
-}
+var global$b = global$m;
+var requireObjectCoercible = requireObjectCoercible$2;
 
-const set = {
-  identify: value => value instanceof Set,
-  nodeClass: YAMLSet,
-  default: false,
-  tag: 'tag:yaml.org,2002:set',
-  resolve: parseSet,
-  createNode: createSet
+var Object$2 = global$b.Object;
+
+// `ToObject` abstract operation
+// https://tc39.es/ecma262/#sec-toobject
+var toObject$2 = function (argument) {
+  return Object$2(requireObjectCoercible(argument));
 };
 
-const parseSexagesimal = (sign, parts) => {
-  const n = parts.split(':').reduce((n, p) => n * 60 + Number(p), 0);
-  return sign === '-' ? -n : n;
-}; // hhhh:mm:ss.sss
+var uncurryThis$7 = functionUncurryThis;
+var toObject$1 = toObject$2;
 
+var hasOwnProperty = uncurryThis$7({}.hasOwnProperty);
 
-const stringifySexagesimal = ({
-  value
-}) => {
-  if (isNaN(value) || !isFinite(value)) return resolveSeq4a68b39b.stringifyNumber(value);
-  let sign = '';
+// `HasOwnProperty` abstract operation
+// https://tc39.es/ecma262/#sec-hasownproperty
+var hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) {
+  return hasOwnProperty(toObject$1(it), key);
+};
 
-  if (value < 0) {
-    sign = '-';
-    value = Math.abs(value);
-  }
+var uncurryThis$6 = functionUncurryThis;
 
-  const parts = [value % 60]; // seconds, including ms
+var id = 0;
+var postfix = Math.random();
+var toString$2 = uncurryThis$6(1.0.toString);
 
-  if (value < 60) {
-    parts.unshift(0); // at least one : is required
-  } else {
-    value = Math.round((value - parts[0]) / 60);
-    parts.unshift(value % 60); // minutes
+var uid$2 = function (key) {
+  return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString$2(++id + postfix, 36);
+};
 
-    if (value >= 60) {
-      value = Math.round((value - parts[0]) / 60);
-      parts.unshift(value); // hours
+var global$a = global$m;
+var shared$2 = shared$3.exports;
+var hasOwn$6 = hasOwnProperty_1;
+var uid$1 = uid$2;
+var NATIVE_SYMBOL = nativeSymbol;
+var USE_SYMBOL_AS_UID = useSymbolAsUid;
+
+var WellKnownSymbolsStore = shared$2('wks');
+var Symbol$1 = global$a.Symbol;
+var symbolFor = Symbol$1 && Symbol$1['for'];
+var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid$1;
+
+var wellKnownSymbol$3 = function (name) {
+  if (!hasOwn$6(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {
+    var description = 'Symbol.' + name;
+    if (NATIVE_SYMBOL && hasOwn$6(Symbol$1, name)) {
+      WellKnownSymbolsStore[name] = Symbol$1[name];
+    } else if (USE_SYMBOL_AS_UID && symbolFor) {
+      WellKnownSymbolsStore[name] = symbolFor(description);
+    } else {
+      WellKnownSymbolsStore[name] = createWellKnownSymbol(description);
     }
-  }
+  } return WellKnownSymbolsStore[name];
+};
+
+var global$9 = global$m;
+var call$1 = functionCall;
+var isObject$3 = isObject$5;
+var isSymbol$1 = isSymbol$2;
+var getMethod = getMethod$1;
+var ordinaryToPrimitive = ordinaryToPrimitive$1;
+var wellKnownSymbol$2 = wellKnownSymbol$3;
+
+var TypeError$4 = global$9.TypeError;
+var TO_PRIMITIVE = wellKnownSymbol$2('toPrimitive');
+
+// `ToPrimitive` abstract operation
+// https://tc39.es/ecma262/#sec-toprimitive
+var toPrimitive$1 = function (input, pref) {
+  if (!isObject$3(input) || isSymbol$1(input)) return input;
+  var exoticToPrim = getMethod(input, TO_PRIMITIVE);
+  var result;
+  if (exoticToPrim) {
+    if (pref === undefined) pref = 'default';
+    result = call$1(exoticToPrim, input, pref);
+    if (!isObject$3(result) || isSymbol$1(result)) return result;
+    throw TypeError$4("Can't convert object to primitive value");
+  }
+  if (pref === undefined) pref = 'number';
+  return ordinaryToPrimitive(input, pref);
+};
+
+var toPrimitive = toPrimitive$1;
+var isSymbol = isSymbol$2;
+
+// `ToPropertyKey` abstract operation
+// https://tc39.es/ecma262/#sec-topropertykey
+var toPropertyKey$2 = function (argument) {
+  var key = toPrimitive(argument, 'string');
+  return isSymbol(key) ? key : key + '';
+};
+
+var global$8 = global$m;
+var isObject$2 = isObject$5;
+
+var document = global$8.document;
+// typeof document.createElement is 'object' in old IE
+var EXISTS$1 = isObject$2(document) && isObject$2(document.createElement);
+
+var documentCreateElement = function (it) {
+  return EXISTS$1 ? document.createElement(it) : {};
+};
+
+var DESCRIPTORS$4 = descriptors;
+var fails$3 = fails$7;
+var createElement = documentCreateElement;
+
+// Thank's IE8 for his funny defineProperty
+var ie8DomDefine = !DESCRIPTORS$4 && !fails$3(function () {
+  // eslint-disable-next-line es/no-object-defineproperty -- requied for testing
+  return Object.defineProperty(createElement('div'), 'a', {
+    get: function () { return 7; }
+  }).a != 7;
+});
+
+var DESCRIPTORS$3 = descriptors;
+var call = functionCall;
+var propertyIsEnumerableModule = objectPropertyIsEnumerable;
+var createPropertyDescriptor$1 = createPropertyDescriptor$2;
+var toIndexedObject$2 = toIndexedObject$3;
+var toPropertyKey$1 = toPropertyKey$2;
+var hasOwn$5 = hasOwnProperty_1;
+var IE8_DOM_DEFINE$1 = ie8DomDefine;
+
+// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
+var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
+
+// `Object.getOwnPropertyDescriptor` method
+// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor
+objectGetOwnPropertyDescriptor.f = DESCRIPTORS$3 ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
+  O = toIndexedObject$2(O);
+  P = toPropertyKey$1(P);
+  if (IE8_DOM_DEFINE$1) try {
+    return $getOwnPropertyDescriptor(O, P);
+  } catch (error) { /* empty */ }
+  if (hasOwn$5(O, P)) return createPropertyDescriptor$1(!call(propertyIsEnumerableModule.f, O, P), O[P]);
+};
+
+var objectDefineProperty = {};
+
+var global$7 = global$m;
+var isObject$1 = isObject$5;
+
+var String$2 = global$7.String;
+var TypeError$3 = global$7.TypeError;
+
+// `Assert: Type(argument) is Object`
+var anObject$2 = function (argument) {
+  if (isObject$1(argument)) return argument;
+  throw TypeError$3(String$2(argument) + ' is not an object');
+};
+
+var global$6 = global$m;
+var DESCRIPTORS$2 = descriptors;
+var IE8_DOM_DEFINE = ie8DomDefine;
+var anObject$1 = anObject$2;
+var toPropertyKey = toPropertyKey$2;
+
+var TypeError$2 = global$6.TypeError;
+// eslint-disable-next-line es/no-object-defineproperty -- safe
+var $defineProperty = Object.defineProperty;
+
+// `Object.defineProperty` method
+// https://tc39.es/ecma262/#sec-object.defineproperty
+objectDefineProperty.f = DESCRIPTORS$2 ? $defineProperty : function defineProperty(O, P, Attributes) {
+  anObject$1(O);
+  P = toPropertyKey(P);
+  anObject$1(Attributes);
+  if (IE8_DOM_DEFINE) try {
+    return $defineProperty(O, P, Attributes);
+  } catch (error) { /* empty */ }
+  if ('get' in Attributes || 'set' in Attributes) throw TypeError$2('Accessors not supported');
+  if ('value' in Attributes) O[P] = Attributes.value;
+  return O;
+};
+
+var DESCRIPTORS$1 = descriptors;
+var definePropertyModule$1 = objectDefineProperty;
+var createPropertyDescriptor = createPropertyDescriptor$2;
+
+var createNonEnumerableProperty$3 = DESCRIPTORS$1 ? function (object, key, value) {
+  return definePropertyModule$1.f(object, key, createPropertyDescriptor(1, value));
+} : function (object, key, value) {
+  object[key] = value;
+  return object;
+};
+
+var redefine$1 = {exports: {}};
+
+var uncurryThis$5 = functionUncurryThis;
+var isCallable$4 = isCallable$a;
+var store$1 = sharedStore;
+
+var functionToString = uncurryThis$5(Function.toString);
+
+// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper
+if (!isCallable$4(store$1.inspectSource)) {
+  store$1.inspectSource = function (it) {
+    return functionToString(it);
+  };
+}
+
+var inspectSource$2 = store$1.inspectSource;
+
+var global$5 = global$m;
+var isCallable$3 = isCallable$a;
+var inspectSource$1 = inspectSource$2;
+
+var WeakMap$1 = global$5.WeakMap;
+
+var nativeWeakMap = isCallable$3(WeakMap$1) && /native code/.test(inspectSource$1(WeakMap$1));
+
+var shared$1 = shared$3.exports;
+var uid = uid$2;
+
+var keys = shared$1('keys');
+
+var sharedKey$1 = function (key) {
+  return keys[key] || (keys[key] = uid(key));
+};
+
+var hiddenKeys$3 = {};
+
+var NATIVE_WEAK_MAP = nativeWeakMap;
+var global$4 = global$m;
+var uncurryThis$4 = functionUncurryThis;
+var isObject = isObject$5;
+var createNonEnumerableProperty$2 = createNonEnumerableProperty$3;
+var hasOwn$4 = hasOwnProperty_1;
+var shared = sharedStore;
+var sharedKey = sharedKey$1;
+var hiddenKeys$2 = hiddenKeys$3;
+
+var OBJECT_ALREADY_INITIALIZED = 'Object already initialized';
+var TypeError$1 = global$4.TypeError;
+var WeakMap = global$4.WeakMap;
+var set$1, get, has;
+
+var enforce = function (it) {
+  return has(it) ? get(it) : set$1(it, {});
+};
+
+var getterFor = function (TYPE) {
+  return function (it) {
+    var state;
+    if (!isObject(it) || (state = get(it)).type !== TYPE) {
+      throw TypeError$1('Incompatible receiver, ' + TYPE + ' required');
+    } return state;
+  };
+};
+
+if (NATIVE_WEAK_MAP || shared.state) {
+  var store = shared.state || (shared.state = new WeakMap());
+  var wmget = uncurryThis$4(store.get);
+  var wmhas = uncurryThis$4(store.has);
+  var wmset = uncurryThis$4(store.set);
+  set$1 = function (it, metadata) {
+    if (wmhas(store, it)) throw new TypeError$1(OBJECT_ALREADY_INITIALIZED);
+    metadata.facade = it;
+    wmset(store, it, metadata);
+    return metadata;
+  };
+  get = function (it) {
+    return wmget(store, it) || {};
+  };
+  has = function (it) {
+    return wmhas(store, it);
+  };
+} else {
+  var STATE = sharedKey('state');
+  hiddenKeys$2[STATE] = true;
+  set$1 = function (it, metadata) {
+    if (hasOwn$4(it, STATE)) throw new TypeError$1(OBJECT_ALREADY_INITIALIZED);
+    metadata.facade = it;
+    createNonEnumerableProperty$2(it, STATE, metadata);
+    return metadata;
+  };
+  get = function (it) {
+    return hasOwn$4(it, STATE) ? it[STATE] : {};
+  };
+  has = function (it) {
+    return hasOwn$4(it, STATE);
+  };
+}
+
+var internalState = {
+  set: set$1,
+  get: get,
+  has: has,
+  enforce: enforce,
+  getterFor: getterFor
+};
+
+var DESCRIPTORS = descriptors;
+var hasOwn$3 = hasOwnProperty_1;
+
+var FunctionPrototype = Function.prototype;
+// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
+var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;
+
+var EXISTS = hasOwn$3(FunctionPrototype, 'name');
+// additional protection from minified / mangled / dropped function names
+var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';
+var CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));
+
+var functionName = {
+  EXISTS: EXISTS,
+  PROPER: PROPER,
+  CONFIGURABLE: CONFIGURABLE
+};
+
+var global$3 = global$m;
+var isCallable$2 = isCallable$a;
+var hasOwn$2 = hasOwnProperty_1;
+var createNonEnumerableProperty$1 = createNonEnumerableProperty$3;
+var setGlobal$1 = setGlobal$3;
+var inspectSource = inspectSource$2;
+var InternalStateModule = internalState;
+var CONFIGURABLE_FUNCTION_NAME = functionName.CONFIGURABLE;
+
+var getInternalState = InternalStateModule.get;
+var enforceInternalState = InternalStateModule.enforce;
+var TEMPLATE = String(String).split('String');
+
+(redefine$1.exports = function (O, key, value, options) {
+  var unsafe = options ? !!options.unsafe : false;
+  var simple = options ? !!options.enumerable : false;
+  var noTargetGet = options ? !!options.noTargetGet : false;
+  var name = options && options.name !== undefined ? options.name : key;
+  var state;
+  if (isCallable$2(value)) {
+    if (String(name).slice(0, 7) === 'Symbol(') {
+      name = '[' + String(name).replace(/^Symbol\(([^)]*)\)/, '$1') + ']';
+    }
+    if (!hasOwn$2(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {
+      createNonEnumerableProperty$1(value, 'name', name);
+    }
+    state = enforceInternalState(value);
+    if (!state.source) {
+      state.source = TEMPLATE.join(typeof name == 'string' ? name : '');
+    }
+  }
+  if (O === global$3) {
+    if (simple) O[key] = value;
+    else setGlobal$1(key, value);
+    return;
+  } else if (!unsafe) {
+    delete O[key];
+  } else if (!noTargetGet && O[key]) {
+    simple = true;
+  }
+  if (simple) O[key] = value;
+  else createNonEnumerableProperty$1(O, key, value);
+// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
+})(Function.prototype, 'toString', function toString() {
+  return isCallable$2(this) && getInternalState(this).source || inspectSource(this);
+});
+
+var objectGetOwnPropertyNames = {};
+
+var ceil = Math.ceil;
+var floor$1 = Math.floor;
+
+// `ToIntegerOrInfinity` abstract operation
+// https://tc39.es/ecma262/#sec-tointegerorinfinity
+var toIntegerOrInfinity$2 = function (argument) {
+  var number = +argument;
+  // eslint-disable-next-line no-self-compare -- safe
+  return number !== number || number === 0 ? 0 : (number > 0 ? floor$1 : ceil)(number);
+};
+
+var toIntegerOrInfinity$1 = toIntegerOrInfinity$2;
+
+var max = Math.max;
+var min$1 = Math.min;
+
+// Helper for a popular repeating case of the spec:
+// Let integer be ? ToInteger(index).
+// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).
+var toAbsoluteIndex$1 = function (index, length) {
+  var integer = toIntegerOrInfinity$1(index);
+  return integer < 0 ? max(integer + length, 0) : min$1(integer, length);
+};
+
+var toIntegerOrInfinity = toIntegerOrInfinity$2;
+
+var min = Math.min;
+
+// `ToLength` abstract operation
+// https://tc39.es/ecma262/#sec-tolength
+var toLength$1 = function (argument) {
+  return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
+};
+
+var toLength = toLength$1;
+
+// `LengthOfArrayLike` abstract operation
+// https://tc39.es/ecma262/#sec-lengthofarraylike
+var lengthOfArrayLike$2 = function (obj) {
+  return toLength(obj.length);
+};
+
+var toIndexedObject$1 = toIndexedObject$3;
+var toAbsoluteIndex = toAbsoluteIndex$1;
+var lengthOfArrayLike$1 = lengthOfArrayLike$2;
+
+// `Array.prototype.{ indexOf, includes }` methods implementation
+var createMethod = function (IS_INCLUDES) {
+  return function ($this, el, fromIndex) {
+    var O = toIndexedObject$1($this);
+    var length = lengthOfArrayLike$1(O);
+    var index = toAbsoluteIndex(fromIndex, length);
+    var value;
+    // Array#includes uses SameValueZero equality algorithm
+    // eslint-disable-next-line no-self-compare -- NaN check
+    if (IS_INCLUDES && el != el) while (length > index) {
+      value = O[index++];
+      // eslint-disable-next-line no-self-compare -- NaN check
+      if (value != value) return true;
+    // Array#indexOf ignores holes, Array#includes - not
+    } else for (;length > index; index++) {
+      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
+    } return !IS_INCLUDES && -1;
+  };
+};
+
+var arrayIncludes = {
+  // `Array.prototype.includes` method
+  // https://tc39.es/ecma262/#sec-array.prototype.includes
+  includes: createMethod(true),
+  // `Array.prototype.indexOf` method
+  // https://tc39.es/ecma262/#sec-array.prototype.indexof
+  indexOf: createMethod(false)
+};
+
+var uncurryThis$3 = functionUncurryThis;
+var hasOwn$1 = hasOwnProperty_1;
+var toIndexedObject = toIndexedObject$3;
+var indexOf = arrayIncludes.indexOf;
+var hiddenKeys$1 = hiddenKeys$3;
+
+var push$1 = uncurryThis$3([].push);
+
+var objectKeysInternal = function (object, names) {
+  var O = toIndexedObject(object);
+  var i = 0;
+  var result = [];
+  var key;
+  for (key in O) !hasOwn$1(hiddenKeys$1, key) && hasOwn$1(O, key) && push$1(result, key);
+  // Don't enum bug & hidden keys
+  while (names.length > i) if (hasOwn$1(O, key = names[i++])) {
+    ~indexOf(result, key) || push$1(result, key);
+  }
+  return result;
+};
+
+// IE8- don't enum bug keys
+var enumBugKeys$1 = [
+  'constructor',
+  'hasOwnProperty',
+  'isPrototypeOf',
+  'propertyIsEnumerable',
+  'toLocaleString',
+  'toString',
+  'valueOf'
+];
+
+var internalObjectKeys = objectKeysInternal;
+var enumBugKeys = enumBugKeys$1;
+
+var hiddenKeys = enumBugKeys.concat('length', 'prototype');
+
+// `Object.getOwnPropertyNames` method
+// https://tc39.es/ecma262/#sec-object.getownpropertynames
+// eslint-disable-next-line es/no-object-getownpropertynames -- safe
+objectGetOwnPropertyNames.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
+  return internalObjectKeys(O, hiddenKeys);
+};
+
+var objectGetOwnPropertySymbols = {};
+
+// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe
+objectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols;
+
+var getBuiltIn = getBuiltIn$3;
+var uncurryThis$2 = functionUncurryThis;
+var getOwnPropertyNamesModule = objectGetOwnPropertyNames;
+var getOwnPropertySymbolsModule = objectGetOwnPropertySymbols;
+var anObject = anObject$2;
+
+var concat = uncurryThis$2([].concat);
+
+// all object keys, includes non-enumerable and symbols
+var ownKeys$1 = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
+  var keys = getOwnPropertyNamesModule.f(anObject(it));
+  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
+  return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;
+};
+
+var hasOwn = hasOwnProperty_1;
+var ownKeys = ownKeys$1;
+var getOwnPropertyDescriptorModule = objectGetOwnPropertyDescriptor;
+var definePropertyModule = objectDefineProperty;
+
+var copyConstructorProperties$1 = function (target, source) {
+  var keys = ownKeys(source);
+  var defineProperty = definePropertyModule.f;
+  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
+  for (var i = 0; i < keys.length; i++) {
+    var key = keys[i];
+    if (!hasOwn(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));
+  }
+};
+
+var fails$2 = fails$7;
+var isCallable$1 = isCallable$a;
+
+var replacement = /#|\.prototype\./;
+
+var isForced$1 = function (feature, detection) {
+  var value = data[normalize(feature)];
+  return value == POLYFILL ? true
+    : value == NATIVE ? false
+    : isCallable$1(detection) ? fails$2(detection)
+    : !!detection;
+};
+
+var normalize = isForced$1.normalize = function (string) {
+  return String(string).replace(replacement, '.').toLowerCase();
+};
+
+var data = isForced$1.data = {};
+var NATIVE = isForced$1.NATIVE = 'N';
+var POLYFILL = isForced$1.POLYFILL = 'P';
+
+var isForced_1 = isForced$1;
+
+var global$2 = global$m;
+var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f;
+var createNonEnumerableProperty = createNonEnumerableProperty$3;
+var redefine = redefine$1.exports;
+var setGlobal = setGlobal$3;
+var copyConstructorProperties = copyConstructorProperties$1;
+var isForced = isForced_1;
+
+/*
+  options.target      - name of the target object
+  options.global      - target is the global object
+  options.stat        - export as static methods of target
+  options.proto       - export as prototype methods of target
+  options.real        - real prototype method for the `pure` version
+  options.forced      - export even if the native feature is available
+  options.bind        - bind methods to the target, required for the `pure` version
+  options.wrap        - wrap constructors to preventing global pollution, required for the `pure` version
+  options.unsafe      - use the simple assignment of property instead of delete + defineProperty
+  options.sham        - add a flag to not completely full polyfills
+  options.enumerable  - export as enumerable property
+  options.noTargetGet - prevent calling a getter on target
+  options.name        - the .name of the function if it does not match the key
+*/
+var _export = function (options, source) {
+  var TARGET = options.target;
+  var GLOBAL = options.global;
+  var STATIC = options.stat;
+  var FORCED, target, key, targetProperty, sourceProperty, descriptor;
+  if (GLOBAL) {
+    target = global$2;
+  } else if (STATIC) {
+    target = global$2[TARGET] || setGlobal(TARGET, {});
+  } else {
+    target = (global$2[TARGET] || {}).prototype;
+  }
+  if (target) for (key in source) {
+    sourceProperty = source[key];
+    if (options.noTargetGet) {
+      descriptor = getOwnPropertyDescriptor(target, key);
+      targetProperty = descriptor && descriptor.value;
+    } else targetProperty = target[key];
+    FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
+    // contained in target
+    if (!FORCED && targetProperty !== undefined) {
+      if (typeof sourceProperty == typeof targetProperty) continue;
+      copyConstructorProperties(sourceProperty, targetProperty);
+    }
+    // add a flag to not completely full polyfills
+    if (options.sham || (targetProperty && targetProperty.sham)) {
+      createNonEnumerableProperty(sourceProperty, 'sham', true);
+    }
+    // extend global
+    redefine(target, key, sourceProperty, options);
+  }
+};
+
+var wellKnownSymbol$1 = wellKnownSymbol$3;
+
+var TO_STRING_TAG$1 = wellKnownSymbol$1('toStringTag');
+var test$1 = {};
+
+test$1[TO_STRING_TAG$1] = 'z';
+
+var toStringTagSupport = String(test$1) === '[object z]';
+
+var global$1 = global$m;
+var TO_STRING_TAG_SUPPORT = toStringTagSupport;
+var isCallable = isCallable$a;
+var classofRaw = classofRaw$1;
+var wellKnownSymbol = wellKnownSymbol$3;
+
+var TO_STRING_TAG = wellKnownSymbol('toStringTag');
+var Object$1 = global$1.Object;
+
+// ES3 wrong here
+var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';
+
+// fallback for IE11 Script Access Denied error
+var tryGet = function (it, key) {
+  try {
+    return it[key];
+  } catch (error) { /* empty */ }
+};
+
+// getting tag from ES6+ `Object.prototype.toString`
+var classof$1 = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {
+  var O, tag, result;
+  return it === undefined ? 'Undefined' : it === null ? 'Null'
+    // @@toStringTag case
+    : typeof (tag = tryGet(O = Object$1(it), TO_STRING_TAG)) == 'string' ? tag
+    // builtinTag case
+    : CORRECT_ARGUMENTS ? classofRaw(O)
+    // ES3 arguments fallback
+    : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;
+};
+
+var global = global$m;
+var classof = classof$1;
+
+var String$1 = global.String;
+
+var toString$1 = function (argument) {
+  if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');
+  return String$1(argument);
+};
+
+var uncurryThis$1 = functionUncurryThis;
+
+var arraySlice$1 = uncurryThis$1([].slice);
+
+var arraySlice = arraySlice$1;
+
+var floor = Math.floor;
+
+var mergeSort = function (array, comparefn) {
+  var length = array.length;
+  var middle = floor(length / 2);
+  return length < 8 ? insertionSort(array, comparefn) : merge(
+    array,
+    mergeSort(arraySlice(array, 0, middle), comparefn),
+    mergeSort(arraySlice(array, middle), comparefn),
+    comparefn
+  );
+};
+
+var insertionSort = function (array, comparefn) {
+  var length = array.length;
+  var i = 1;
+  var element, j;
+
+  while (i < length) {
+    j = i;
+    element = array[i];
+    while (j && comparefn(array[j - 1], element) > 0) {
+      array[j] = array[--j];
+    }
+    if (j !== i++) array[j] = element;
+  } return array;
+};
+
+var merge = function (array, left, right, comparefn) {
+  var llength = left.length;
+  var rlength = right.length;
+  var lindex = 0;
+  var rindex = 0;
+
+  while (lindex < llength || rindex < rlength) {
+    array[lindex + rindex] = (lindex < llength && rindex < rlength)
+      ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]
+      : lindex < llength ? left[lindex++] : right[rindex++];
+  } return array;
+};
+
+var arraySort = mergeSort;
+
+var fails$1 = fails$7;
+
+var arrayMethodIsStrict$1 = function (METHOD_NAME, argument) {
+  var method = [][METHOD_NAME];
+  return !!method && fails$1(function () {
+    // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing
+    method.call(null, argument || function () { throw 1; }, 1);
+  });
+};
+
+var userAgent$1 = engineUserAgent;
+
+var firefox = userAgent$1.match(/firefox\/(\d+)/i);
+
+var engineFfVersion = !!firefox && +firefox[1];
+
+var UA = engineUserAgent;
+
+var engineIsIeOrEdge = /MSIE|Trident/.test(UA);
+
+var userAgent = engineUserAgent;
+
+var webkit = userAgent.match(/AppleWebKit\/(\d+)\./);
+
+var engineWebkitVersion = !!webkit && +webkit[1];
+
+var $ = _export;
+var uncurryThis = functionUncurryThis;
+var aCallable = aCallable$2;
+var toObject = toObject$2;
+var lengthOfArrayLike = lengthOfArrayLike$2;
+var toString = toString$1;
+var fails = fails$7;
+var internalSort = arraySort;
+var arrayMethodIsStrict = arrayMethodIsStrict$1;
+var FF = engineFfVersion;
+var IE_OR_EDGE = engineIsIeOrEdge;
+var V8 = engineV8Version;
+var WEBKIT = engineWebkitVersion;
+
+var test = [];
+var un$Sort = uncurryThis(test.sort);
+var push = uncurryThis(test.push);
+
+// IE8-
+var FAILS_ON_UNDEFINED = fails(function () {
+  test.sort(undefined);
+});
+// V8 bug
+var FAILS_ON_NULL = fails(function () {
+  test.sort(null);
+});
+// Old WebKit
+var STRICT_METHOD = arrayMethodIsStrict('sort');
+
+var STABLE_SORT = !fails(function () {
+  // feature detection can be too slow, so check engines versions
+  if (V8) return V8 < 70;
+  if (FF && FF > 3) return;
+  if (IE_OR_EDGE) return true;
+  if (WEBKIT) return WEBKIT < 603;
+
+  var result = '';
+  var code, chr, value, index;
+
+  // generate an array with more 512 elements (Chakra and old V8 fails only in this case)
+  for (code = 65; code < 76; code++) {
+    chr = String.fromCharCode(code);
+
+    switch (code) {
+      case 66: case 69: case 70: case 72: value = 3; break;
+      case 68: case 71: value = 4; break;
+      default: value = 2;
+    }
+
+    for (index = 0; index < 47; index++) {
+      test.push({ k: chr + index, v: value });
+    }
+  }
+
+  test.sort(function (a, b) { return b.v - a.v; });
+
+  for (index = 0; index < test.length; index++) {
+    chr = test[index].k.charAt(0);
+    if (result.charAt(result.length - 1) !== chr) result += chr;
+  }
+
+  return result !== 'DGBEFHACIJK';
+});
+
+var FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;
+
+var getSortCompare = function (comparefn) {
+  return function (x, y) {
+    if (y === undefined) return -1;
+    if (x === undefined) return 1;
+    if (comparefn !== undefined) return +comparefn(x, y) || 0;
+    return toString(x) > toString(y) ? 1 : -1;
+  };
+};
+
+// `Array.prototype.sort` method
+// https://tc39.es/ecma262/#sec-array.prototype.sort
+$({ target: 'Array', proto: true, forced: FORCED }, {
+  sort: function sort(comparefn) {
+    if (comparefn !== undefined) aCallable(comparefn);
+
+    var array = toObject(this);
+
+    if (STABLE_SORT) return comparefn === undefined ? un$Sort(array) : un$Sort(array, comparefn);
+
+    var items = [];
+    var arrayLength = lengthOfArrayLike(array);
+    var itemsLength, index;
+
+    for (index = 0; index < arrayLength; index++) {
+      if (index in array) push(items, array[index]);
+    }
+
+    internalSort(items, getSortCompare(comparefn));
+
+    itemsLength = items.length;
+    index = 0;
+
+    while (index < itemsLength) array[index] = items[index++];
+    while (index < arrayLength) delete array[index++];
+
+    return array;
+  }
+});
+
+var Schema88e323a7 = {};
+
+var warnings1000a372 = {};
+
+var PlainValue$3 = PlainValueEc8e588e;
+var resolveSeq$2 = resolveSeqD03cb037;
+/* global atob, btoa, Buffer */
+
+const binary = {
+  identify: value => value instanceof Uint8Array,
+  // Buffer inherits from Uint8Array
+  default: false,
+  tag: 'tag:yaml.org,2002:binary',
+
+  /**
+   * Returns a Buffer in node and an Uint8Array in browsers
+   *
+   * To use the resulting buffer as an image, you'll want to do something like:
+   *
+   *   const blob = new Blob([buffer], { type: 'image/jpeg' })
+   *   document.querySelector('#photo').src = URL.createObjectURL(blob)
+   */
+  resolve: (doc, node) => {
+    const src = resolveSeq$2.resolveString(doc, node);
+
+    if (typeof Buffer === 'function') {
+      return Buffer.from(src, 'base64');
+    } else if (typeof atob === 'function') {
+      // On IE 11, atob() can't handle newlines
+      const str = atob(src.replace(/[\n\r]/g, ''));
+      const buffer = new Uint8Array(str.length);
+
+      for (let i = 0; i < str.length; ++i) buffer[i] = str.charCodeAt(i);
+
+      return buffer;
+    } else {
+      const msg = 'This environment does not support reading binary tags; either Buffer or atob is required';
+      doc.errors.push(new PlainValue$3.YAMLReferenceError(node, msg));
+      return null;
+    }
+  },
+  options: resolveSeq$2.binaryOptions,
+  stringify: ({
+    comment,
+    type,
+    value
+  }, ctx, onComment, onChompKeep) => {
+    let src;
+
+    if (typeof Buffer === 'function') {
+      src = value instanceof Buffer ? value.toString('base64') : Buffer.from(value.buffer).toString('base64');
+    } else if (typeof btoa === 'function') {
+      let s = '';
+
+      for (let i = 0; i < value.length; ++i) s += String.fromCharCode(value[i]);
+
+      src = btoa(s);
+    } else {
+      throw new Error('This environment does not support writing binary tags; either Buffer or btoa is required');
+    }
+
+    if (!type) type = resolveSeq$2.binaryOptions.defaultType;
+
+    if (type === PlainValue$3.Type.QUOTE_DOUBLE) {
+      value = src;
+    } else {
+      const {
+        lineWidth
+      } = resolveSeq$2.binaryOptions;
+      const n = Math.ceil(src.length / lineWidth);
+      const lines = new Array(n);
+
+      for (let i = 0, o = 0; i < n; ++i, o += lineWidth) {
+        lines[i] = src.substr(o, lineWidth);
+      }
+
+      value = lines.join(type === PlainValue$3.Type.BLOCK_LITERAL ? '\n' : ' ');
+    }
+
+    return resolveSeq$2.stringifyString({
+      comment,
+      type,
+      value
+    }, ctx, onComment, onChompKeep);
+  }
+};
+
+function parsePairs(doc, cst) {
+  const seq = resolveSeq$2.resolveSeq(doc, cst);
+
+  for (let i = 0; i < seq.items.length; ++i) {
+    let item = seq.items[i];
+    if (item instanceof resolveSeq$2.Pair) continue;else if (item instanceof resolveSeq$2.YAMLMap) {
+      if (item.items.length > 1) {
+        const msg = 'Each pair must have its own sequence indicator';
+        throw new PlainValue$3.YAMLSemanticError(cst, msg);
+      }
+
+      const pair = item.items[0] || new resolveSeq$2.Pair();
+      if (item.commentBefore) pair.commentBefore = pair.commentBefore ? `${item.commentBefore}\n${pair.commentBefore}` : item.commentBefore;
+      if (item.comment) pair.comment = pair.comment ? `${item.comment}\n${pair.comment}` : item.comment;
+      item = pair;
+    }
+    seq.items[i] = item instanceof resolveSeq$2.Pair ? item : new resolveSeq$2.Pair(item);
+  }
+
+  return seq;
+}
+
+function createPairs(schema, iterable, ctx) {
+  const pairs = new resolveSeq$2.YAMLSeq(schema);
+  pairs.tag = 'tag:yaml.org,2002:pairs';
+
+  for (const it of iterable) {
+    let key, value;
+
+    if (Array.isArray(it)) {
+      if (it.length === 2) {
+        key = it[0];
+        value = it[1];
+      } else throw new TypeError(`Expected [key, value] tuple: ${it}`);
+    } else if (it && it instanceof Object) {
+      const keys = Object.keys(it);
+
+      if (keys.length === 1) {
+        key = keys[0];
+        value = it[key];
+      } else throw new TypeError(`Expected { key: value } tuple: ${it}`);
+    } else {
+      key = it;
+    }
+
+    const pair = schema.createPair(key, value, ctx);
+    pairs.items.push(pair);
+  }
+
+  return pairs;
+}
+
+const pairs = {
+  default: false,
+  tag: 'tag:yaml.org,2002:pairs',
+  resolve: parsePairs,
+  createNode: createPairs
+};
+
+class YAMLOMap extends resolveSeq$2.YAMLSeq {
+  constructor() {
+    super();
+
+    PlainValue$3._defineProperty(this, "add", resolveSeq$2.YAMLMap.prototype.add.bind(this));
+
+    PlainValue$3._defineProperty(this, "delete", resolveSeq$2.YAMLMap.prototype.delete.bind(this));
+
+    PlainValue$3._defineProperty(this, "get", resolveSeq$2.YAMLMap.prototype.get.bind(this));
+
+    PlainValue$3._defineProperty(this, "has", resolveSeq$2.YAMLMap.prototype.has.bind(this));
+
+    PlainValue$3._defineProperty(this, "set", resolveSeq$2.YAMLMap.prototype.set.bind(this));
+
+    this.tag = YAMLOMap.tag;
+  }
+
+  toJSON(_, ctx) {
+    const map = new Map();
+    if (ctx && ctx.onCreate) ctx.onCreate(map);
+
+    for (const pair of this.items) {
+      let key, value;
+
+      if (pair instanceof resolveSeq$2.Pair) {
+        key = resolveSeq$2.toJSON(pair.key, '', ctx);
+        value = resolveSeq$2.toJSON(pair.value, key, ctx);
+      } else {
+        key = resolveSeq$2.toJSON(pair, '', ctx);
+      }
+
+      if (map.has(key)) throw new Error('Ordered maps must not include duplicate keys');
+      map.set(key, value);
+    }
+
+    return map;
+  }
+
+}
+
+PlainValue$3._defineProperty(YAMLOMap, "tag", 'tag:yaml.org,2002:omap');
+
+function parseOMap(doc, cst) {
+  const pairs = parsePairs(doc, cst);
+  const seenKeys = [];
+
+  for (const {
+    key
+  } of pairs.items) {
+    if (key instanceof resolveSeq$2.Scalar) {
+      if (seenKeys.includes(key.value)) {
+        const msg = 'Ordered maps must not include duplicate keys';
+        throw new PlainValue$3.YAMLSemanticError(cst, msg);
+      } else {
+        seenKeys.push(key.value);
+      }
+    }
+  }
+
+  return Object.assign(new YAMLOMap(), pairs);
+}
+
+function createOMap(schema, iterable, ctx) {
+  const pairs = createPairs(schema, iterable, ctx);
+  const omap = new YAMLOMap();
+  omap.items = pairs.items;
+  return omap;
+}
+
+const omap = {
+  identify: value => value instanceof Map,
+  nodeClass: YAMLOMap,
+  default: false,
+  tag: 'tag:yaml.org,2002:omap',
+  resolve: parseOMap,
+  createNode: createOMap
+};
+
+class YAMLSet extends resolveSeq$2.YAMLMap {
+  constructor() {
+    super();
+    this.tag = YAMLSet.tag;
+  }
+
+  add(key) {
+    const pair = key instanceof resolveSeq$2.Pair ? key : new resolveSeq$2.Pair(key);
+    const prev = resolveSeq$2.findPair(this.items, pair.key);
+    if (!prev) this.items.push(pair);
+  }
+
+  get(key, keepPair) {
+    const pair = resolveSeq$2.findPair(this.items, key);
+    return !keepPair && pair instanceof resolveSeq$2.Pair ? pair.key instanceof resolveSeq$2.Scalar ? pair.key.value : pair.key : pair;
+  }
+
+  set(key, value) {
+    if (typeof value !== 'boolean') throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof value}`);
+    const prev = resolveSeq$2.findPair(this.items, key);
+
+    if (prev && !value) {
+      this.items.splice(this.items.indexOf(prev), 1);
+    } else if (!prev && value) {
+      this.items.push(new resolveSeq$2.Pair(key));
+    }
+  }
+
+  toJSON(_, ctx) {
+    return super.toJSON(_, ctx, Set);
+  }
+
+  toString(ctx, onComment, onChompKeep) {
+    if (!ctx) return JSON.stringify(this);
+    if (this.hasAllNullValues()) return super.toString(ctx, onComment, onChompKeep);else throw new Error('Set items must all have null values');
+  }
+
+}
+
+PlainValue$3._defineProperty(YAMLSet, "tag", 'tag:yaml.org,2002:set');
+
+function parseSet(doc, cst) {
+  const map = resolveSeq$2.resolveMap(doc, cst);
+  if (!map.hasAllNullValues()) throw new PlainValue$3.YAMLSemanticError(cst, 'Set items must all have null values');
+  return Object.assign(new YAMLSet(), map);
+}
+
+function createSet(schema, iterable, ctx) {
+  const set = new YAMLSet();
+
+  for (const value of iterable) set.items.push(schema.createPair(value, null, ctx));
+
+  return set;
+}
+
+const set = {
+  identify: value => value instanceof Set,
+  nodeClass: YAMLSet,
+  default: false,
+  tag: 'tag:yaml.org,2002:set',
+  resolve: parseSet,
+  createNode: createSet
+};
+
+const parseSexagesimal = (sign, parts) => {
+  const n = parts.split(':').reduce((n, p) => n * 60 + Number(p), 0);
+  return sign === '-' ? -n : n;
+}; // hhhh:mm:ss.sss
+
+
+const stringifySexagesimal = ({
+  value
+}) => {
+  if (isNaN(value) || !isFinite(value)) return resolveSeq$2.stringifyNumber(value);
+  let sign = '';
+
+  if (value < 0) {
+    sign = '-';
+    value = Math.abs(value);
+  }
+
+  const parts = [value % 60]; // seconds, including ms
+
+  if (value < 60) {
+    parts.unshift(0); // at least one : is required
+  } else {
+    value = Math.round((value - parts[0]) / 60);
+    parts.unshift(value % 60); // minutes
+
+    if (value >= 60) {
+      value = Math.round((value - parts[0]) / 60);
+      parts.unshift(value); // hours
+    }
+  }
 
   return sign + parts.map(n => n < 10 ? '0' + String(n) : String(n)).join(':').replace(/000000\d*$/, '') // % 60 may introduce error
   ;
@@ -8022,31 +9217,23 @@ function warnOptionDeprecation(name, alternative) {
   }
 }
 
-var binary_1 = binary;
-var floatTime_1 = floatTime;
-var intTime_1 = intTime;
-var omap_1 = omap;
-var pairs_1 = pairs;
-var set_1 = set;
-var timestamp_1 = timestamp;
-var warn_1 = warn;
-var warnFileDeprecation_1 = warnFileDeprecation;
-var warnOptionDeprecation_1 = warnOptionDeprecation;
-var warnings39684f17 = {
-  binary: binary_1,
-  floatTime: floatTime_1,
-  intTime: intTime_1,
-  omap: omap_1,
-  pairs: pairs_1,
-  set: set_1,
-  timestamp: timestamp_1,
-  warn: warn_1,
-  warnFileDeprecation: warnFileDeprecation_1,
-  warnOptionDeprecation: warnOptionDeprecation_1
-};
+warnings1000a372.binary = binary;
+warnings1000a372.floatTime = floatTime;
+warnings1000a372.intTime = intTime;
+warnings1000a372.omap = omap;
+warnings1000a372.pairs = pairs;
+warnings1000a372.set = set;
+warnings1000a372.timestamp = timestamp;
+warnings1000a372.warn = warn;
+warnings1000a372.warnFileDeprecation = warnFileDeprecation;
+warnings1000a372.warnOptionDeprecation = warnOptionDeprecation;
+
+var PlainValue$2 = PlainValueEc8e588e;
+var resolveSeq$1 = resolveSeqD03cb037;
+var warnings$1 = warnings1000a372;
 
 function createMap(schema, obj, ctx) {
-  const map = new resolveSeq4a68b39b.YAMLMap(schema);
+  const map = new resolveSeq$1.YAMLMap(schema);
 
   if (obj instanceof Map) {
     for (const [key, value] of obj) map.items.push(schema.createPair(key, value, ctx));
@@ -8064,13 +9251,13 @@ function createMap(schema, obj, ctx) {
 const map = {
   createNode: createMap,
   default: true,
-  nodeClass: resolveSeq4a68b39b.YAMLMap,
+  nodeClass: resolveSeq$1.YAMLMap,
   tag: 'tag:yaml.org,2002:map',
-  resolve: resolveSeq4a68b39b.resolveMap
+  resolve: resolveSeq$1.resolveMap
 };
 
 function createSeq(schema, obj, ctx) {
-  const seq = new resolveSeq4a68b39b.YAMLSeq(schema);
+  const seq = new resolveSeq$1.YAMLSeq(schema);
 
   if (obj && obj[Symbol.iterator]) {
     for (const it of obj) {
@@ -8085,49 +9272,49 @@ function createSeq(schema, obj, ctx) {
 const seq = {
   createNode: createSeq,
   default: true,
-  nodeClass: resolveSeq4a68b39b.YAMLSeq,
+  nodeClass: resolveSeq$1.YAMLSeq,
   tag: 'tag:yaml.org,2002:seq',
-  resolve: resolveSeq4a68b39b.resolveSeq
+  resolve: resolveSeq$1.resolveSeq
 };
 const string = {
   identify: value => typeof value === 'string',
   default: true,
   tag: 'tag:yaml.org,2002:str',
-  resolve: resolveSeq4a68b39b.resolveString,
+  resolve: resolveSeq$1.resolveString,
 
   stringify(item, ctx, onComment, onChompKeep) {
     ctx = Object.assign({
       actualString: true
     }, ctx);
-    return resolveSeq4a68b39b.stringifyString(item, ctx, onComment, onChompKeep);
+    return resolveSeq$1.stringifyString(item, ctx, onComment, onChompKeep);
   },
 
-  options: resolveSeq4a68b39b.strOptions
+  options: resolveSeq$1.strOptions
 };
 const failsafe = [map, seq, string];
 /* global BigInt */
 
-const intIdentify = value => typeof value === 'bigint' || Number.isInteger(value);
+const intIdentify$2 = value => typeof value === 'bigint' || Number.isInteger(value);
 
-const intResolve = (src, part, radix) => resolveSeq4a68b39b.intOptions.asBigInt ? BigInt(src) : parseInt(part, radix);
+const intResolve$1 = (src, part, radix) => resolveSeq$1.intOptions.asBigInt ? BigInt(src) : parseInt(part, radix);
 
-function intStringify(node, radix, prefix) {
+function intStringify$1(node, radix, prefix) {
   const {
     value
   } = node;
-  if (intIdentify(value) && value >= 0) return prefix + value.toString(radix);
-  return resolveSeq4a68b39b.stringifyNumber(node);
+  if (intIdentify$2(value) && value >= 0) return prefix + value.toString(radix);
+  return resolveSeq$1.stringifyNumber(node);
 }
 
 const nullObj = {
   identify: value => value == null,
-  createNode: (schema, value, ctx) => ctx.wrapScalars ? new resolveSeq4a68b39b.Scalar(null) : null,
+  createNode: (schema, value, ctx) => ctx.wrapScalars ? new resolveSeq$1.Scalar(null) : null,
   default: true,
   tag: 'tag:yaml.org,2002:null',
   test: /^(?:~|[Nn]ull|NULL)?$/,
   resolve: () => null,
-  options: resolveSeq4a68b39b.nullOptions,
-  stringify: () => resolveSeq4a68b39b.nullOptions.nullStr
+  options: resolveSeq$1.nullOptions,
+  stringify: () => resolveSeq$1.nullOptions.nullStr
 };
 const boolObj = {
   identify: value => typeof value === 'boolean',
@@ -8135,39 +9322,39 @@ const boolObj = {
   tag: 'tag:yaml.org,2002:bool',
   test: /^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,
   resolve: str => str[0] === 't' || str[0] === 'T',
-  options: resolveSeq4a68b39b.boolOptions,
+  options: resolveSeq$1.boolOptions,
   stringify: ({
     value
-  }) => value ? resolveSeq4a68b39b.boolOptions.trueStr : resolveSeq4a68b39b.boolOptions.falseStr
+  }) => value ? resolveSeq$1.boolOptions.trueStr : resolveSeq$1.boolOptions.falseStr
 };
 const octObj = {
-  identify: value => intIdentify(value) && value >= 0,
+  identify: value => intIdentify$2(value) && value >= 0,
   default: true,
   tag: 'tag:yaml.org,2002:int',
   format: 'OCT',
   test: /^0o([0-7]+)$/,
-  resolve: (str, oct) => intResolve(str, oct, 8),
-  options: resolveSeq4a68b39b.intOptions,
-  stringify: node => intStringify(node, 8, '0o')
+  resolve: (str, oct) => intResolve$1(str, oct, 8),
+  options: resolveSeq$1.intOptions,
+  stringify: node => intStringify$1(node, 8, '0o')
 };
 const intObj = {
-  identify: intIdentify,
+  identify: intIdentify$2,
   default: true,
   tag: 'tag:yaml.org,2002:int',
   test: /^[-+]?[0-9]+$/,
-  resolve: str => intResolve(str, str, 10),
-  options: resolveSeq4a68b39b.intOptions,
-  stringify: resolveSeq4a68b39b.stringifyNumber
+  resolve: str => intResolve$1(str, str, 10),
+  options: resolveSeq$1.intOptions,
+  stringify: resolveSeq$1.stringifyNumber
 };
 const hexObj = {
-  identify: value => intIdentify(value) && value >= 0,
+  identify: value => intIdentify$2(value) && value >= 0,
   default: true,
   tag: 'tag:yaml.org,2002:int',
   format: 'HEX',
   test: /^0x([0-9a-fA-F]+)$/,
-  resolve: (str, hex) => intResolve(str, hex, 16),
-  options: resolveSeq4a68b39b.intOptions,
-  stringify: node => intStringify(node, 16, '0x')
+  resolve: (str, hex) => intResolve$1(str, hex, 16),
+  options: resolveSeq$1.intOptions,
+  stringify: node => intStringify$1(node, 16, '0x')
 };
 const nanObj = {
   identify: value => typeof value === 'number',
@@ -8175,7 +9362,7 @@ const nanObj = {
   tag: 'tag:yaml.org,2002:float',
   test: /^(?:[-+]?\.inf|(\.nan))$/i,
   resolve: (str, nan) => nan ? NaN : str[0] === '-' ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY,
-  stringify: resolveSeq4a68b39b.stringifyNumber
+  stringify: resolveSeq$1.stringifyNumber
 };
 const expObj = {
   identify: value => typeof value === 'number',
@@ -8196,12 +9383,12 @@ const floatObj = {
 
   resolve(str, frac1, frac2) {
     const frac = frac1 || frac2;
-    const node = new resolveSeq4a68b39b.Scalar(parseFloat(str));
+    const node = new resolveSeq$1.Scalar(parseFloat(str));
     if (frac && frac[frac.length - 1] === '0') node.minFractionDigits = frac.length;
     return node;
   },
 
-  stringify: resolveSeq4a68b39b.stringifyNumber
+  stringify: resolveSeq$1.stringifyNumber
 };
 const core = failsafe.concat([nullObj, boolObj, octObj, intObj, hexObj, nanObj, expObj, floatObj]);
 /* global BigInt */
@@ -8216,11 +9403,11 @@ const json = [map, seq, {
   identify: value => typeof value === 'string',
   default: true,
   tag: 'tag:yaml.org,2002:str',
-  resolve: resolveSeq4a68b39b.resolveString,
+  resolve: resolveSeq$1.resolveString,
   stringify: stringifyJSON
 }, {
   identify: value => value == null,
-  createNode: (schema, value, ctx) => ctx.wrapScalars ? new resolveSeq4a68b39b.Scalar(null) : null,
+  createNode: (schema, value, ctx) => ctx.wrapScalars ? new resolveSeq$1.Scalar(null) : null,
   default: true,
   tag: 'tag:yaml.org,2002:null',
   test: /^null$/,
@@ -8238,7 +9425,7 @@ const json = [map, seq, {
   default: true,
   tag: 'tag:yaml.org,2002:int',
   test: /^-?(?:0|[1-9][0-9]*)$/,
-  resolve: str => resolveSeq4a68b39b.intOptions.asBigInt ? BigInt(str) : parseInt(str, 10),
+  resolve: str => resolveSeq$1.intOptions.asBigInt ? BigInt(str) : parseInt(str, 10),
   stringify: ({
     value
   }) => intIdentify$1(value) ? value.toString() : JSON.stringify(value)
@@ -8259,14 +9446,14 @@ json.scalarFallback = str => {
 
 const boolStringify = ({
   value
-}) => value ? resolveSeq4a68b39b.boolOptions.trueStr : resolveSeq4a68b39b.boolOptions.falseStr;
+}) => value ? resolveSeq$1.boolOptions.trueStr : resolveSeq$1.boolOptions.falseStr;
 
-const intIdentify$2 = value => typeof value === 'bigint' || Number.isInteger(value);
+const intIdentify = value => typeof value === 'bigint' || Number.isInteger(value);
 
-function intResolve$1(sign, src, radix) {
+function intResolve(sign, src, radix) {
   let str = src.replace(/_/g, '');
 
-  if (resolveSeq4a68b39b.intOptions.asBigInt) {
+  if (resolveSeq$1.intOptions.asBigInt) {
     switch (radix) {
       case 2:
         str = `0b${str}`;
@@ -8289,35 +9476,35 @@ function intResolve$1(sign, src, radix) {
   return sign === '-' ? -1 * n : n;
 }
 
-function intStringify$1(node, radix, prefix) {
+function intStringify(node, radix, prefix) {
   const {
     value
   } = node;
 
-  if (intIdentify$2(value)) {
+  if (intIdentify(value)) {
     const str = value.toString(radix);
     return value < 0 ? '-' + prefix + str.substr(1) : prefix + str;
   }
 
-  return resolveSeq4a68b39b.stringifyNumber(node);
+  return resolveSeq$1.stringifyNumber(node);
 }
 
 const yaml11 = failsafe.concat([{
   identify: value => value == null,
-  createNode: (schema, value, ctx) => ctx.wrapScalars ? new resolveSeq4a68b39b.Scalar(null) : null,
+  createNode: (schema, value, ctx) => ctx.wrapScalars ? new resolveSeq$1.Scalar(null) : null,
   default: true,
   tag: 'tag:yaml.org,2002:null',
   test: /^(?:~|[Nn]ull|NULL)?$/,
   resolve: () => null,
-  options: resolveSeq4a68b39b.nullOptions,
-  stringify: () => resolveSeq4a68b39b.nullOptions.nullStr
+  options: resolveSeq$1.nullOptions,
+  stringify: () => resolveSeq$1.nullOptions.nullStr
 }, {
   identify: value => typeof value === 'boolean',
   default: true,
   tag: 'tag:yaml.org,2002:bool',
   test: /^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,
   resolve: () => true,
-  options: resolveSeq4a68b39b.boolOptions,
+  options: resolveSeq$1.boolOptions,
   stringify: boolStringify
 }, {
   identify: value => typeof value === 'boolean',
@@ -8325,46 +9512,46 @@ const yaml11 = failsafe.concat([{
   tag: 'tag:yaml.org,2002:bool',
   test: /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i,
   resolve: () => false,
-  options: resolveSeq4a68b39b.boolOptions,
+  options: resolveSeq$1.boolOptions,
   stringify: boolStringify
 }, {
-  identify: intIdentify$2,
+  identify: intIdentify,
   default: true,
   tag: 'tag:yaml.org,2002:int',
   format: 'BIN',
   test: /^([-+]?)0b([0-1_]+)$/,
-  resolve: (str, sign, bin) => intResolve$1(sign, bin, 2),
-  stringify: node => intStringify$1(node, 2, '0b')
+  resolve: (str, sign, bin) => intResolve(sign, bin, 2),
+  stringify: node => intStringify(node, 2, '0b')
 }, {
-  identify: intIdentify$2,
+  identify: intIdentify,
   default: true,
   tag: 'tag:yaml.org,2002:int',
   format: 'OCT',
   test: /^([-+]?)0([0-7_]+)$/,
-  resolve: (str, sign, oct) => intResolve$1(sign, oct, 8),
-  stringify: node => intStringify$1(node, 8, '0')
+  resolve: (str, sign, oct) => intResolve(sign, oct, 8),
+  stringify: node => intStringify(node, 8, '0')
 }, {
-  identify: intIdentify$2,
+  identify: intIdentify,
   default: true,
   tag: 'tag:yaml.org,2002:int',
   test: /^([-+]?)([0-9][0-9_]*)$/,
-  resolve: (str, sign, abs) => intResolve$1(sign, abs, 10),
-  stringify: resolveSeq4a68b39b.stringifyNumber
+  resolve: (str, sign, abs) => intResolve(sign, abs, 10),
+  stringify: resolveSeq$1.stringifyNumber
 }, {
-  identify: intIdentify$2,
+  identify: intIdentify,
   default: true,
   tag: 'tag:yaml.org,2002:int',
   format: 'HEX',
   test: /^([-+]?)0x([0-9a-fA-F_]+)$/,
-  resolve: (str, sign, hex) => intResolve$1(sign, hex, 16),
-  stringify: node => intStringify$1(node, 16, '0x')
+  resolve: (str, sign, hex) => intResolve(sign, hex, 16),
+  stringify: node => intStringify(node, 16, '0x')
 }, {
   identify: value => typeof value === 'number',
   default: true,
   tag: 'tag:yaml.org,2002:float',
   test: /^(?:[-+]?\.inf|(\.nan))$/i,
   resolve: (str, nan) => nan ? NaN : str[0] === '-' ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY,
-  stringify: resolveSeq4a68b39b.stringifyNumber
+  stringify: resolveSeq$1.stringifyNumber
 }, {
   identify: value => typeof value === 'number',
   default: true,
@@ -8382,7 +9569,7 @@ const yaml11 = failsafe.concat([{
   test: /^[-+]?(?:[0-9][0-9_]*)?\.([0-9_]*)$/,
 
   resolve(str, frac) {
-    const node = new resolveSeq4a68b39b.Scalar(parseFloat(str.replace(/_/g, '')));
+    const node = new resolveSeq$1.Scalar(parseFloat(str.replace(/_/g, '')));
 
     if (frac) {
       const f = frac.replace(/_/g, '');
@@ -8392,8 +9579,8 @@ const yaml11 = failsafe.concat([{
     return node;
   },
 
-  stringify: resolveSeq4a68b39b.stringifyNumber
-}], warnings39684f17.binary, warnings39684f17.omap, warnings39684f17.pairs, warnings39684f17.set, warnings39684f17.intTime, warnings39684f17.floatTime, warnings39684f17.timestamp);
+  stringify: resolveSeq$1.stringifyNumber
+}], warnings$1.binary, warnings$1.omap, warnings$1.pairs, warnings$1.set, warnings$1.intTime, warnings$1.floatTime, warnings$1.timestamp);
 const schemas = {
   core,
   failsafe,
@@ -8401,23 +9588,23 @@ const schemas = {
   yaml11
 };
 const tags = {
-  binary: warnings39684f17.binary,
+  binary: warnings$1.binary,
   bool: boolObj,
   float: floatObj,
   floatExp: expObj,
   floatNaN: nanObj,
-  floatTime: warnings39684f17.floatTime,
+  floatTime: warnings$1.floatTime,
   int: intObj,
   intHex: hexObj,
   intOct: octObj,
-  intTime: warnings39684f17.intTime,
+  intTime: warnings$1.intTime,
   map,
   null: nullObj,
-  omap: warnings39684f17.omap,
-  pairs: warnings39684f17.pairs,
+  omap: warnings$1.omap,
+  pairs: warnings$1.pairs,
   seq,
-  set: warnings39684f17.set,
-  timestamp: warnings39684f17.timestamp
+  set: warnings$1.set,
+  timestamp: warnings$1.timestamp
 };
 
 function findTagObject(value, tagName, tags) {
@@ -8432,8 +9619,8 @@ function findTagObject(value, tagName, tags) {
   return tags.find(t => (t.identify && t.identify(value) || t.class && value instanceof t.class) && !t.format);
 }
 
-function createNode(value, tagName, ctx) {
-  if (value instanceof resolveSeq4a68b39b.Node) return value;
+function createNode$1(value, tagName, ctx) {
+  if (value instanceof resolveSeq$1.Node) return value;
   const {
     defaultPrefix,
     onTagObj,
@@ -8446,7 +9633,7 @@ function createNode(value, tagName, ctx) {
 
   if (!tagObj) {
     if (typeof value.toJSON === 'function') value = value.toJSON();
-    if (typeof value !== 'object') return wrapScalars ? new resolveSeq4a68b39b.Scalar(value) : value;
+    if (!value || typeof value !== 'object') return wrapScalars ? new resolveSeq$1.Scalar(value) : value;
     tagObj = value instanceof Map ? map : value[Symbol.iterator] ? seq : map;
   }
 
@@ -8457,13 +9644,16 @@ function createNode(value, tagName, ctx) {
   // after first. The `obj` wrapper allows for circular references to resolve.
 
 
-  const obj = {};
+  const obj = {
+    value: undefined,
+    node: undefined
+  };
 
   if (value && typeof value === 'object' && prevObjects) {
     const prev = prevObjects.get(value);
 
     if (prev) {
-      const alias = new resolveSeq4a68b39b.Alias(prev); // leaves source dirty; must be cleaned by caller
+      const alias = new resolveSeq$1.Alias(prev); // leaves source dirty; must be cleaned by caller
 
       ctx.aliasNodes.push(alias); // defined along with prevObjects
 
@@ -8474,8 +9664,8 @@ function createNode(value, tagName, ctx) {
     prevObjects.set(value, obj);
   }
 
-  obj.node = tagObj.createNode ? tagObj.createNode(ctx.schema, value, ctx) : wrapScalars ? new resolveSeq4a68b39b.Scalar(value) : value;
-  if (tagName && obj.node instanceof resolveSeq4a68b39b.Node) obj.node.tag = tagName;
+  obj.node = tagObj.createNode ? tagObj.createNode(ctx.schema, value, ctx) : wrapScalars ? new resolveSeq$1.Scalar(value) : value;
+  if (tagName && obj.node instanceof resolveSeq$1.Node) obj.node.tag = tagName;
   return obj.node;
 }
 
@@ -8513,7 +9703,7 @@ function getSchemaTags(schemas, knownTags, customTags, schemaId) {
 
 const sortMapEntriesByKey = (a, b) => a.key < b.key ? -1 : a.key > b.key ? 1 : 0;
 
-class Schema {
+class Schema$2 {
   // TODO: remove in v2
   // TODO: remove in v2
   constructor({
@@ -8526,18 +9716,18 @@ class Schema {
     this.merge = !!merge;
     this.name = schema;
     this.sortMapEntries = sortMapEntries === true ? sortMapEntriesByKey : sortMapEntries || null;
-    if (!customTags && deprecatedCustomTags) warnings39684f17.warnOptionDeprecation('tags', 'customTags');
+    if (!customTags && deprecatedCustomTags) warnings$1.warnOptionDeprecation('tags', 'customTags');
     this.tags = getSchemaTags(schemas, tags, customTags || deprecatedCustomTags, schema);
   }
 
   createNode(value, wrapScalars, tagName, ctx) {
     const baseCtx = {
-      defaultPrefix: Schema.defaultPrefix,
+      defaultPrefix: Schema$2.defaultPrefix,
       schema: this,
       wrapScalars
     };
     const createCtx = ctx ? Object.assign(ctx, baseCtx) : baseCtx;
-    return createNode(value, tagName, createCtx);
+    return createNode$1(value, tagName, createCtx);
   }
 
   createPair(key, value, ctx) {
@@ -8546,20 +9736,20 @@ class Schema {
     };
     const k = this.createNode(key, ctx.wrapScalars, null, ctx);
     const v = this.createNode(value, ctx.wrapScalars, null, ctx);
-    return new resolveSeq4a68b39b.Pair(k, v);
+    return new resolveSeq$1.Pair(k, v);
   }
 
 }
 
-PlainValueEc8e588e._defineProperty(Schema, "defaultPrefix", PlainValueEc8e588e.defaultTagPrefix);
+PlainValue$2._defineProperty(Schema$2, "defaultPrefix", PlainValue$2.defaultTagPrefix);
 
-PlainValueEc8e588e._defineProperty(Schema, "defaultTags", PlainValueEc8e588e.defaultTags);
+PlainValue$2._defineProperty(Schema$2, "defaultTags", PlainValue$2.defaultTags);
 
-var Schema_1 = Schema;
-var Schema42e9705c = {
-  Schema: Schema_1
-};
+Schema88e323a7.Schema = Schema$2;
 
+var PlainValue$1 = PlainValueEc8e588e;
+var resolveSeq = resolveSeqD03cb037;
+var Schema$1 = Schema88e323a7;
 const defaultOptions = {
   anchorPrefix: 'a',
   customTags: null,
@@ -8577,43 +9767,43 @@ const defaultOptions = {
 };
 const scalarOptions = {
   get binary() {
-    return resolveSeq4a68b39b.binaryOptions;
+    return resolveSeq.binaryOptions;
   },
 
   set binary(opt) {
-    Object.assign(resolveSeq4a68b39b.binaryOptions, opt);
+    Object.assign(resolveSeq.binaryOptions, opt);
   },
 
   get bool() {
-    return resolveSeq4a68b39b.boolOptions;
+    return resolveSeq.boolOptions;
   },
 
   set bool(opt) {
-    Object.assign(resolveSeq4a68b39b.boolOptions, opt);
+    Object.assign(resolveSeq.boolOptions, opt);
   },
 
   get int() {
-    return resolveSeq4a68b39b.intOptions;
+    return resolveSeq.intOptions;
   },
 
   set int(opt) {
-    Object.assign(resolveSeq4a68b39b.intOptions, opt);
+    Object.assign(resolveSeq.intOptions, opt);
   },
 
   get null() {
-    return resolveSeq4a68b39b.nullOptions;
+    return resolveSeq.nullOptions;
   },
 
   set null(opt) {
-    Object.assign(resolveSeq4a68b39b.nullOptions, opt);
+    Object.assign(resolveSeq.nullOptions, opt);
   },
 
   get str() {
-    return resolveSeq4a68b39b.strOptions;
+    return resolveSeq.strOptions;
   },
 
   set str(opt) {
-    Object.assign(resolveSeq4a68b39b.strOptions, opt);
+    Object.assign(resolveSeq.strOptions, opt);
   }
 
 };
@@ -8623,13 +9813,13 @@ const documentOptions = {
     merge: true,
     tagPrefixes: [{
       handle: '!',
-      prefix: PlainValueEc8e588e.defaultTagPrefix
+      prefix: PlainValue$1.defaultTagPrefix
     }, {
       handle: '!!',
       prefix: 'tag:private.yaml.org,2002:'
     }]
   },
-  '1.1': {
+  1.1: {
     schema: 'yaml-1.1',
     merge: true,
     tagPrefixes: [{
@@ -8637,10 +9827,10 @@ const documentOptions = {
       prefix: '!'
     }, {
       handle: '!!',
-      prefix: PlainValueEc8e588e.defaultTagPrefix
+      prefix: PlainValue$1.defaultTagPrefix
     }]
   },
-  '1.2': {
+  1.2: {
     schema: 'core',
     merge: false,
     tagPrefixes: [{
@@ -8648,7 +9838,7 @@ const documentOptions = {
       prefix: '!'
     }, {
       handle: '!!',
-      prefix: PlainValueEc8e588e.defaultTagPrefix
+      prefix: PlainValue$1.defaultTagPrefix
     }]
   }
 };
@@ -8681,7 +9871,7 @@ function stringifyTag(doc, tag) {
 }
 
 function getTagObject(tags, item) {
-  if (item instanceof resolveSeq4a68b39b.Alias) return resolveSeq4a68b39b.Alias;
+  if (item instanceof resolveSeq.Alias) return resolveSeq.Alias;
 
   if (item.tag) {
     const match = tags.filter(t => t.tag === item.tag);
@@ -8690,7 +9880,7 @@ function getTagObject(tags, item) {
 
   let tagObj, obj;
 
-  if (item instanceof resolveSeq4a68b39b.Scalar) {
+  if (item instanceof resolveSeq.Scalar) {
     obj = item.value; // TODO: deprecate/remove class check
 
     const match = tags.filter(t => t.identify && t.identify(obj) || t.class && obj instanceof t.class);
@@ -8730,14 +9920,14 @@ function stringifyProps(node, tagObj, {
   return props.join(' ');
 }
 
-function stringify(item, ctx, onComment, onChompKeep) {
+function stringify$1(item, ctx, onComment, onChompKeep) {
   const {
     anchors,
     schema
   } = ctx.doc;
   let tagObj;
 
-  if (!(item instanceof resolveSeq4a68b39b.Node)) {
+  if (!(item instanceof resolveSeq.Node)) {
     const createCtx = {
       aliasNodes: [],
       onTagObj: o => tagObj = o,
@@ -8756,37 +9946,37 @@ function stringify(item, ctx, onComment, onChompKeep) {
     }
   }
 
-  if (item instanceof resolveSeq4a68b39b.Pair) return item.toString(ctx, onComment, onChompKeep);
+  if (item instanceof resolveSeq.Pair) return item.toString(ctx, onComment, onChompKeep);
   if (!tagObj) tagObj = getTagObject(schema.tags, item);
   const props = stringifyProps(item, tagObj, ctx);
   if (props.length > 0) ctx.indentAtStart = (ctx.indentAtStart || 0) + props.length + 1;
-  const str = typeof tagObj.stringify === 'function' ? tagObj.stringify(item, ctx, onComment, onChompKeep) : item instanceof resolveSeq4a68b39b.Scalar ? resolveSeq4a68b39b.stringifyString(item, ctx, onComment, onChompKeep) : item.toString(ctx, onComment, onChompKeep);
+  const str = typeof tagObj.stringify === 'function' ? tagObj.stringify(item, ctx, onComment, onChompKeep) : item instanceof resolveSeq.Scalar ? resolveSeq.stringifyString(item, ctx, onComment, onChompKeep) : item.toString(ctx, onComment, onChompKeep);
   if (!props) return str;
-  return item instanceof resolveSeq4a68b39b.Scalar || str[0] === '{' || str[0] === '[' ? `${props} ${str}` : `${props}\n${ctx.indent}${str}`;
+  return item instanceof resolveSeq.Scalar || str[0] === '{' || str[0] === '[' ? `${props} ${str}` : `${props}\n${ctx.indent}${str}`;
 }
 
 class Anchors {
   static validAnchorNode(node) {
-    return node instanceof resolveSeq4a68b39b.Scalar || node instanceof resolveSeq4a68b39b.YAMLSeq || node instanceof resolveSeq4a68b39b.YAMLMap;
+    return node instanceof resolveSeq.Scalar || node instanceof resolveSeq.YAMLSeq || node instanceof resolveSeq.YAMLMap;
   }
 
   constructor(prefix) {
-    PlainValueEc8e588e._defineProperty(this, "map", {});
+    PlainValue$1._defineProperty(this, "map", Object.create(null));
 
     this.prefix = prefix;
   }
 
   createAlias(node, name) {
     this.setAnchor(node, name);
-    return new resolveSeq4a68b39b.Alias(node);
+    return new resolveSeq.Alias(node);
   }
 
   createMergePair(...sources) {
-    const merge = new resolveSeq4a68b39b.Merge();
+    const merge = new resolveSeq.Merge();
     merge.value.items = sources.map(s => {
-      if (s instanceof resolveSeq4a68b39b.Alias) {
-        if (s.source instanceof resolveSeq4a68b39b.YAMLMap) return s;
-      } else if (s instanceof resolveSeq4a68b39b.YAMLMap) {
+      if (s instanceof resolveSeq.Alias) {
+        if (s.source instanceof resolveSeq.YAMLMap) return s;
+      } else if (s instanceof resolveSeq.YAMLMap) {
         return this.createAlias(s);
       }
 
@@ -8878,13 +10068,13 @@ const visit = (node, tags) => {
       tag
     } = node;
 
-    if (node instanceof resolveSeq4a68b39b.Collection) {
+    if (node instanceof resolveSeq.Collection) {
       if (tag) tags[tag] = true;
       node.items.forEach(n => visit(n, tags));
-    } else if (node instanceof resolveSeq4a68b39b.Pair) {
+    } else if (node instanceof resolveSeq.Pair) {
       visit(node.key, tags);
       visit(node.value, tags);
-    } else if (node instanceof resolveSeq4a68b39b.Scalar) {
+    } else if (node instanceof resolveSeq.Scalar) {
       if (tag) tags[tag] = true;
     }
   }
@@ -8906,11 +10096,11 @@ function parseContents(doc, contents) {
     if (node.valueRange) {
       if (body !== undefined) {
         const msg = 'Document contains trailing content not separated by a ... or --- line';
-        doc.errors.push(new PlainValueEc8e588e.YAMLSyntaxError(node, msg));
+        doc.errors.push(new PlainValue$1.YAMLSyntaxError(node, msg));
         break;
       }
 
-      const res = resolveSeq4a68b39b.resolveNode(doc, node);
+      const res = resolveSeq.resolveNode(doc, node);
 
       if (spaceBefore) {
         res.spaceBefore = true;
@@ -8921,7 +10111,7 @@ function parseContents(doc, contents) {
     } else if (node.comment !== null) {
       const cc = body === undefined ? comments.before : comments.after;
       cc.push(node.comment);
-    } else if (node.type === PlainValueEc8e588e.Type.BLANK_LINE) {
+    } else if (node.type === PlainValue$1.Type.BLANK_LINE) {
       spaceBefore = true;
 
       if (body === undefined && comments.before.length > 0 && !doc.commentBefore) {
@@ -8940,7 +10130,7 @@ function parseContents(doc, contents) {
     const cb = comments.before.join('\n');
 
     if (cb) {
-      const cbNode = body instanceof resolveSeq4a68b39b.Collection && body.items[0] ? body.items[0] : body;
+      const cbNode = body instanceof resolveSeq.Collection && body.items[0] ? body.items[0] : body;
       cbNode.commentBefore = cbNode.commentBefore ? `${cb}\n${cbNode.commentBefore}` : cb;
     }
 
@@ -8955,12 +10145,12 @@ function resolveTagDirective({
 
   if (!handle || !prefix) {
     const msg = 'Insufficient parameters given for %TAG directive';
-    throw new PlainValueEc8e588e.YAMLSemanticError(directive, msg);
+    throw new PlainValue$1.YAMLSemanticError(directive, msg);
   }
 
   if (tagPrefixes.some(p => p.handle === handle)) {
     const msg = 'The %TAG directive must only be given at most once per handle in the same document.';
-    throw new PlainValueEc8e588e.YAMLSemanticError(directive, msg);
+    throw new PlainValue$1.YAMLSemanticError(directive, msg);
   }
 
   return {
@@ -8975,13 +10165,13 @@ function resolveYamlDirective(doc, directive) {
 
   if (!version) {
     const msg = 'Insufficient parameters given for %YAML directive';
-    throw new PlainValueEc8e588e.YAMLSemanticError(directive, msg);
+    throw new PlainValue$1.YAMLSemanticError(directive, msg);
   }
 
   if (!documentOptions[version]) {
     const v0 = doc.version || doc.options.version;
     const msg = `Document will be parsed as YAML ${v0} rather than YAML ${version}`;
-    doc.warnings.push(new PlainValueEc8e588e.YAMLWarning(directive, msg));
+    doc.warnings.push(new PlainValue$1.YAMLWarning(directive, msg));
   }
 
   return version;
@@ -9012,7 +10202,7 @@ function parseDirectives(doc, directives, prevDoc) {
       case 'YAML:1.0':
         if (doc.version) {
           const msg = 'The %YAML directive must only be given at most once per document.';
-          doc.errors.push(new PlainValueEc8e588e.YAMLSemanticError(directive, msg));
+          doc.errors.push(new PlainValue$1.YAMLSemanticError(directive, msg));
         }
 
         try {
@@ -9027,7 +10217,7 @@ function parseDirectives(doc, directives, prevDoc) {
       default:
         if (name) {
           const msg = `YAML only supports %TAG and %YAML directives, and not %${name}`;
-          doc.warnings.push(new PlainValueEc8e588e.YAMLWarning(directive, msg));
+          doc.warnings.push(new PlainValue$1.YAMLWarning(directive, msg));
         }
 
     }
@@ -9052,11 +10242,11 @@ function parseDirectives(doc, directives, prevDoc) {
 }
 
 function assertCollection(contents) {
-  if (contents instanceof resolveSeq4a68b39b.Collection) return true;
+  if (contents instanceof resolveSeq.Collection) return true;
   throw new Error('Expected a YAML collection as document contents');
 }
 
-class Document$1 {
+class Document$2 {
   constructor(options) {
     this.anchors = new Anchors(options.anchorPrefix);
     this.commentBefore = null;
@@ -9087,7 +10277,7 @@ class Document$1 {
   }
 
   deleteIn(path) {
-    if (resolveSeq4a68b39b.isEmptyPath(path)) {
+    if (resolveSeq.isEmptyPath(path)) {
       if (this.contents == null) return false;
       this.contents = null;
       return true;
@@ -9098,25 +10288,25 @@ class Document$1 {
   }
 
   getDefaults() {
-    return Document$1.defaults[this.version] || Document$1.defaults[this.options.version] || {};
+    return Document$2.defaults[this.version] || Document$2.defaults[this.options.version] || {};
   }
 
   get(key, keepScalar) {
-    return this.contents instanceof resolveSeq4a68b39b.Collection ? this.contents.get(key, keepScalar) : undefined;
+    return this.contents instanceof resolveSeq.Collection ? this.contents.get(key, keepScalar) : undefined;
   }
 
   getIn(path, keepScalar) {
-    if (resolveSeq4a68b39b.isEmptyPath(path)) return !keepScalar && this.contents instanceof resolveSeq4a68b39b.Scalar ? this.contents.value : this.contents;
-    return this.contents instanceof resolveSeq4a68b39b.Collection ? this.contents.getIn(path, keepScalar) : undefined;
+    if (resolveSeq.isEmptyPath(path)) return !keepScalar && this.contents instanceof resolveSeq.Scalar ? this.contents.value : this.contents;
+    return this.contents instanceof resolveSeq.Collection ? this.contents.getIn(path, keepScalar) : undefined;
   }
 
   has(key) {
-    return this.contents instanceof resolveSeq4a68b39b.Collection ? this.contents.has(key) : false;
+    return this.contents instanceof resolveSeq.Collection ? this.contents.has(key) : false;
   }
 
   hasIn(path) {
-    if (resolveSeq4a68b39b.isEmptyPath(path)) return this.contents !== undefined;
-    return this.contents instanceof resolveSeq4a68b39b.Collection ? this.contents.hasIn(path) : false;
+    if (resolveSeq.isEmptyPath(path)) return this.contents !== undefined;
+    return this.contents instanceof resolveSeq.Collection ? this.contents.hasIn(path) : false;
   }
 
   set(key, value) {
@@ -9125,7 +10315,7 @@ class Document$1 {
   }
 
   setIn(path, value) {
-    if (resolveSeq4a68b39b.isEmptyPath(path)) this.contents = value;else {
+    if (resolveSeq.isEmptyPath(path)) this.contents = value;else {
       assertCollection(this.contents);
       this.contents.setIn(path, value);
     }
@@ -9144,7 +10334,7 @@ class Document$1 {
 
     if (Array.isArray(customTags)) this.options.customTags = customTags;
     const opt = Object.assign({}, this.getDefaults(), this.options);
-    this.schema = new Schema42e9705c.Schema(opt);
+    this.schema = new Schema$1.Schema(opt);
   }
 
   parse(node, prevDoc) {
@@ -9172,16 +10362,16 @@ class Document$1 {
     this.anchors.resolveNodes();
 
     if (this.options.prettyErrors) {
-      for (const error of this.errors) if (error instanceof PlainValueEc8e588e.YAMLError) error.makePretty();
+      for (const error of this.errors) if (error instanceof PlainValue$1.YAMLError) error.makePretty();
 
-      for (const warn of this.warnings) if (warn instanceof PlainValueEc8e588e.YAMLError) warn.makePretty();
+      for (const warn of this.warnings) if (warn instanceof PlainValue$1.YAMLError) warn.makePretty();
     }
 
     return this;
   }
 
   listNonDefaultTags() {
-    return listTagNames(this.contents).filter(t => t.indexOf(Schema42e9705c.Schema.defaultPrefix) !== 0);
+    return listTagNames(this.contents).filter(t => t.indexOf(Schema$1.Schema.defaultPrefix) !== 0);
   }
 
   setTagPrefix(handle, prefix) {
@@ -9204,14 +10394,14 @@ class Document$1 {
       mapAsMap,
       maxAliasCount
     } = this.options;
-    const keep = keepBlobsInJSON && (typeof arg !== 'string' || !(this.contents instanceof resolveSeq4a68b39b.Scalar));
+    const keep = keepBlobsInJSON && (typeof arg !== 'string' || !(this.contents instanceof resolveSeq.Scalar));
     const ctx = {
       doc: this,
       indentStep: '  ',
       keep,
       mapAsMap: keep && !!mapAsMap,
       maxAliasCount,
-      stringify // Requiring directly in Pair would create circular dependencies
+      stringify: stringify$1 // Requiring directly in Pair would create circular dependencies
 
     };
     const anchorNames = Object.keys(this.anchors.map);
@@ -9220,7 +10410,7 @@ class Document$1 {
       aliasCount: 0,
       count: 1
     }]));
-    const res = resolveSeq4a68b39b.toJSON(this.contents, arg, ctx);
+    const res = resolveSeq.toJSON(this.contents, arg, ctx);
     if (typeof onAnchor === 'function' && ctx.anchors) for (const {
       count,
       res
@@ -9270,18 +10460,18 @@ class Document$1 {
     }
 
     const ctx = {
-      anchors: {},
+      anchors: Object.create(null),
       doc: this,
       indent: '',
       indentStep: ' '.repeat(indentSize),
-      stringify // Requiring directly in nodes would create circular dependencies
+      stringify: stringify$1 // Requiring directly in nodes would create circular dependencies
 
     };
     let chompKeep = false;
     let contentComment = null;
 
     if (this.contents) {
-      if (this.contents instanceof resolveSeq4a68b39b.Node) {
+      if (this.contents instanceof resolveSeq.Node) {
         if (this.contents.spaceBefore && (hasDirectives || this.directivesEndMarker)) lines.push('');
         if (this.contents.commentBefore) lines.push(this.contents.commentBefore.replace(/^/gm, '#')); // top-level block scalars need to be indented if followed by a comment
 
@@ -9290,10 +10480,10 @@ class Document$1 {
       }
 
       const onChompKeep = contentComment ? null : () => chompKeep = true;
-      const body = stringify(this.contents, ctx, () => contentComment = null, onChompKeep);
-      lines.push(resolveSeq4a68b39b.addComment(body, '', contentComment));
+      const body = stringify$1(this.contents, ctx, () => contentComment = null, onChompKeep);
+      lines.push(resolveSeq.addComment(body, '', contentComment));
     } else if (this.contents !== undefined) {
-      lines.push(stringify(this.contents, ctx));
+      lines.push(stringify$1(this.contents, ctx));
     }
 
     if (this.comment) {
@@ -9306,31 +10496,32 @@ class Document$1 {
 
 }
 
-PlainValueEc8e588e._defineProperty(Document$1, "defaults", documentOptions);
+PlainValue$1._defineProperty(Document$2, "defaults", documentOptions);
 
-var Document_1 = Document$1;
-var defaultOptions_1 = defaultOptions;
-var scalarOptions_1 = scalarOptions;
-var Document2cf6b08c = {
-  Document: Document_1,
-  defaultOptions: defaultOptions_1,
-  scalarOptions: scalarOptions_1
-};
+Document9b4560a1.Document = Document$2;
+Document9b4560a1.defaultOptions = defaultOptions;
+Document9b4560a1.scalarOptions = scalarOptions;
+
+var parseCst = parseCst$1;
+var Document$1 = Document9b4560a1;
+var Schema = Schema88e323a7;
+var PlainValue = PlainValueEc8e588e;
+var warnings = warnings1000a372;
 
-function createNode$1(value, wrapScalars = true, tag) {
+function createNode(value, wrapScalars = true, tag) {
   if (tag === undefined && typeof wrapScalars === 'string') {
     tag = wrapScalars;
     wrapScalars = true;
   }
 
-  const options = Object.assign({}, Document2cf6b08c.Document.defaults[Document2cf6b08c.defaultOptions.version], Document2cf6b08c.defaultOptions);
-  const schema = new Schema42e9705c.Schema(options);
+  const options = Object.assign({}, Document$1.Document.defaults[Document$1.defaultOptions.version], Document$1.defaultOptions);
+  const schema = new Schema.Schema(options);
   return schema.createNode(value, wrapScalars, tag);
 }
 
-class Document$2 extends Document2cf6b08c.Document {
+class Document extends Document$1.Document {
   constructor(options) {
-    super(Object.assign({}, Document2cf6b08c.defaultOptions, options));
+    super(Object.assign({}, Document$1.defaultOptions, options));
   }
 
 }
@@ -9340,7 +10531,7 @@ function parseAllDocuments(src, options) {
   let prev;
 
   for (const cstDoc of parseCst.parse(src)) {
-    const doc = new Document$2(options);
+    const doc = new Document(options);
     doc.parse(cstDoc, prev);
     stream.push(doc);
     prev = doc;
@@ -9351,376 +10542,372 @@ function parseAllDocuments(src, options) {
 
 function parseDocument(src, options) {
   const cst = parseCst.parse(src);
-  const doc = new Document$2(options).parse(cst[0]);
+  const doc = new Document(options).parse(cst[0]);
 
   if (cst.length > 1) {
     const errMsg = 'Source contains multiple documents; please use YAML.parseAllDocuments()';
-    doc.errors.unshift(new PlainValueEc8e588e.YAMLSemanticError(cst[1], errMsg));
+    doc.errors.unshift(new PlainValue.YAMLSemanticError(cst[1], errMsg));
   }
 
   return doc;
 }
 
-function parse$1(src, options) {
+function parse(src, options) {
   const doc = parseDocument(src, options);
-  doc.warnings.forEach(warning => warnings39684f17.warn(warning));
+  doc.warnings.forEach(warning => warnings.warn(warning));
   if (doc.errors.length > 0) throw doc.errors[0];
   return doc.toJSON();
 }
 
-function stringify$1(value, options) {
-  const doc = new Document$2(options);
+function stringify(value, options) {
+  const doc = new Document(options);
   doc.contents = value;
   return String(doc);
 }
 
 const YAML = {
-  createNode: createNode$1,
-  defaultOptions: Document2cf6b08c.defaultOptions,
-  Document: Document$2,
-  parse: parse$1,
+  createNode,
+  defaultOptions: Document$1.defaultOptions,
+  Document,
+  parse,
   parseAllDocuments,
   parseCST: parseCst.parse,
   parseDocument,
-  scalarOptions: Document2cf6b08c.scalarOptions,
-  stringify: stringify$1
-};
-var YAML_1 = YAML;
-var dist$1 = {
-  YAML: YAML_1
+  scalarOptions: Document$1.scalarOptions,
+  stringify
 };
+dist.YAML = YAML;
 
-var yaml = dist$1.YAML;
+var yaml$1 = dist.YAML;
 
-var loaders_1 = createCommonjsModule(function (module, exports) {
+Object.defineProperty(loaders$1, "__esModule", {
+  value: true
+});
+loaders$1.loaders = void 0;
+/* eslint-disable @typescript-eslint/no-require-imports */
 
-  Object.defineProperty(exports, "__esModule", {
-    value: true
-  });
-  exports.loaders = void 0;
-  /* eslint-disable @typescript-eslint/no-require-imports */
+let importFresh;
 
-  let importFresh$1;
+const loadJs = function loadJs(filepath) {
+  if (importFresh === undefined) {
+    importFresh = importFresh$1;
+  }
 
-  const loadJs = function loadJs(filepath) {
-    if (importFresh$1 === undefined) {
-      importFresh$1 = importFresh;
-    }
+  const result = importFresh(filepath);
+  return result;
+};
 
-    const result = importFresh$1(filepath);
-    return result;
-  };
+let parseJson;
 
-  let parseJson;
+const loadJson = function loadJson(filepath, content) {
+  if (parseJson === undefined) {
+    parseJson = parseJson_1;
+  }
 
-  const loadJson = function loadJson(filepath, content) {
-    if (parseJson === undefined) {
-      parseJson = parseJson$1;
-    }
+  try {
+    const result = parseJson(content);
+    return result;
+  } catch (error) {
+    error.message = `JSON Error in ${filepath}:\n${error.message}`;
+    throw error;
+  }
+};
 
-    try {
-      const result = parseJson(content);
-      return result;
-    } catch (error) {
-      error.message = `JSON Error in ${filepath}:\n${error.message}`;
-      throw error;
-    }
-  };
+let yaml;
 
-  let yaml$1;
+const loadYaml = function loadYaml(filepath, content) {
+  if (yaml === undefined) {
+    yaml = yaml$1;
+  }
 
-  const loadYaml = function loadYaml(filepath, content) {
-    if (yaml$1 === undefined) {
-      yaml$1 = yaml;
-    }
+  try {
+    const result = yaml.parse(content, {
+      prettyErrors: true
+    });
+    return result;
+  } catch (error) {
+    error.message = `YAML Error in ${filepath}:\n${error.message}`;
+    throw error;
+  }
+};
 
-    try {
-      const result = yaml$1.parse(content, {
-        prettyErrors: true
-      });
-      return result;
-    } catch (error) {
-      error.message = `YAML Error in ${filepath}:\n${error.message}`;
-      throw error;
-    }
-  };
+const loaders = {
+  loadJs,
+  loadJson,
+  loadYaml
+};
+loaders$1.loaders = loaders;
 
-  const loaders = {
-    loadJs,
-    loadJson,
-    loadYaml
-  };
-  exports.loaders = loaders;
+var getPropertyByPath$1 = {};
+
+Object.defineProperty(getPropertyByPath$1, "__esModule", {
+  value: true
 });
+getPropertyByPath$1.getPropertyByPath = getPropertyByPath; // Resolves property names or property paths defined with period-delimited
+// strings or arrays of strings. Property names that are found on the source
+// object are used directly (even if they include a period).
+// Nested property names that include periods, within a path, are only
+// understood in array paths.
 
-var getPropertyByPath_1 = createCommonjsModule(function (module, exports) {
+function getPropertyByPath(source, path) {
+  if (typeof path === 'string' && Object.prototype.hasOwnProperty.call(source, path)) {
+    return source[path];
+  }
 
-  Object.defineProperty(exports, "__esModule", {
-    value: true
-  });
-  exports.getPropertyByPath = getPropertyByPath; // Resolves property names or property paths defined with period-delimited
-  // strings or arrays of strings. Property names that are found on the source
-  // object are used directly (even if they include a period).
-  // Nested property names that include periods, within a path, are only
-  // understood in array paths.
+  const parsedPath = typeof path === 'string' ? path.split('.') : path; // eslint-disable-next-line @typescript-eslint/no-explicit-any
 
-  function getPropertyByPath(source, path) {
-    if (typeof path === 'string' && Object.prototype.hasOwnProperty.call(source, path)) {
-      return source[path];
+  return parsedPath.reduce((previous, key) => {
+    if (previous === undefined) {
+      return previous;
     }
 
-    const parsedPath = typeof path === 'string' ? path.split('.') : path; // eslint-disable-next-line @typescript-eslint/no-explicit-any
-
-    return parsedPath.reduce((previous, key) => {
-      if (previous === undefined) {
-        return previous;
-      }
+    return previous[key];
+  }, source);
+}
 
-      return previous[key];
-    }, source);
-  }
+Object.defineProperty(ExplorerBase$1, "__esModule", {
+  value: true
 });
+ExplorerBase$1.getExtensionDescription = getExtensionDescription;
+ExplorerBase$1.ExplorerBase = void 0;
 
-var ExplorerBase_1 = createCommonjsModule(function (module, exports) {
-
-  Object.defineProperty(exports, "__esModule", {
-    value: true
-  });
-  exports.getExtensionDescription = getExtensionDescription;
-  exports.ExplorerBase = void 0;
-
-  var _path = _interopRequireDefault(path__default['default']);
-
-  function _interopRequireDefault(obj) {
-    return obj && obj.__esModule ? obj : {
-      default: obj
-    };
-  }
-
-  class ExplorerBase {
-    constructor(options) {
-      if (options.cache === true) {
-        this.loadCache = new Map();
-        this.searchCache = new Map();
-      }
-
-      this.config = options;
-      this.validateConfig();
-    }
+var _path$3 = _interopRequireDefault$5(require$$0__default["default"]);
 
-    clearLoadCache() {
-      if (this.loadCache) {
-        this.loadCache.clear();
-      }
-    }
+var _loaders$1 = loaders$1;
+var _getPropertyByPath = getPropertyByPath$1;
 
-    clearSearchCache() {
-      if (this.searchCache) {
-        this.searchCache.clear();
-      }
-    }
+function _interopRequireDefault$5(obj) {
+  return obj && obj.__esModule ? obj : {
+    default: obj
+  };
+}
 
-    clearCaches() {
-      this.clearLoadCache();
-      this.clearSearchCache();
+class ExplorerBase {
+  constructor(options) {
+    if (options.cache === true) {
+      this.loadCache = new Map();
+      this.searchCache = new Map();
     }
 
-    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`);
-        }
+    this.config = options;
+    this.validateConfig();
+  }
 
-        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`);
-        }
-      });
+  clearLoadCache() {
+    if (this.loadCache) {
+      this.loadCache.clear();
     }
+  }
 
-    shouldSearchStopWithResult(result) {
-      if (result === null) return false;
-      if (result.isEmpty && this.config.ignoreEmptySearchPlaces) return false;
-      return true;
+  clearSearchCache() {
+    if (this.searchCache) {
+      this.searchCache.clear();
     }
+  }
 
-    nextDirectoryToSearch(currentDir, currentResult) {
-      if (this.shouldSearchStopWithResult(currentResult)) {
-        return null;
-      }
+  clearCaches() {
+    this.clearLoadCache();
+    this.clearSearchCache();
+  }
 
-      const nextDir = nextDirUp(currentDir);
+  validateConfig() {
+    const config = this.config;
+    config.searchPlaces.forEach(place => {
+      const loaderKey = _path$3.default.extname(place) || 'noExt';
+      const loader = config.loaders[loaderKey];
 
-      if (nextDir === currentDir || currentDir === this.config.stopDir) {
-        return null;
+      if (!loader) {
+        throw new Error(`No loader specified for ${getExtensionDescription(place)}, so searchPlaces item "${place}" is invalid`);
       }
 
-      return nextDir;
+      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;
+    if (result.isEmpty && this.config.ignoreEmptySearchPlaces) return false;
+    return true;
+  }
+
+  nextDirectoryToSearch(currentDir, currentResult) {
+    if (this.shouldSearchStopWithResult(currentResult)) {
+      return null;
     }
 
-    loadPackageProp(filepath, content) {
-      const parsedContent = loaders_1.loaders.loadJson(filepath, content);
+    const nextDir = nextDirUp(currentDir);
 
-      const packagePropValue = (0, getPropertyByPath_1.getPropertyByPath)(parsedContent, this.config.packageProp);
-      return packagePropValue || null;
+    if (nextDir === currentDir || currentDir === this.config.stopDir) {
+      return null;
     }
 
-    getLoaderEntryForFile(filepath) {
-      if (_path.default.basename(filepath) === 'package.json') {
-        const loader = this.loadPackageProp.bind(this);
-        return loader;
-      }
+    return nextDir;
+  }
 
-      const loaderKey = _path.default.extname(filepath) || 'noExt';
-      const loader = this.config.loaders[loaderKey];
+  loadPackageProp(filepath, content) {
+    const parsedContent = _loaders$1.loaders.loadJson(filepath, content);
 
-      if (!loader) {
-        throw new Error(`No loader specified for ${getExtensionDescription(filepath)}`);
-      }
+    const packagePropValue = (0, _getPropertyByPath.getPropertyByPath)(parsedContent, this.config.packageProp);
+    return packagePropValue || null;
+  }
 
+  getLoaderEntryForFile(filepath) {
+    if (_path$3.default.basename(filepath) === 'package.json') {
+      const loader = this.loadPackageProp.bind(this);
       return loader;
     }
 
-    loadedContentToCosmiconfigResult(filepath, loadedContent) {
-      if (loadedContent === null) {
-        return null;
-      }
+    const loaderKey = _path$3.default.extname(filepath) || 'noExt';
+    const loader = this.config.loaders[loaderKey];
 
-      if (loadedContent === undefined) {
-        return {
-          filepath,
-          config: undefined,
-          isEmpty: true
-        };
-      }
+    if (!loader) {
+      throw new Error(`No loader specified for ${getExtensionDescription(filepath)}`);
+    }
 
-      return {
-        config: loadedContent,
-        filepath
-      };
+    return loader;
+  }
+
+  loadedContentToCosmiconfigResult(filepath, loadedContent) {
+    if (loadedContent === null) {
+      return null;
     }
 
-    validateFilePath(filepath) {
-      if (!filepath) {
-        throw new Error('load must pass a non-empty string');
-      }
+    if (loadedContent === undefined) {
+      return {
+        filepath,
+        config: undefined,
+        isEmpty: true
+      };
     }
 
+    return {
+      config: loadedContent,
+      filepath
+    };
   }
 
-  exports.ExplorerBase = ExplorerBase;
-
-  function nextDirUp(dir) {
-    return _path.default.dirname(dir);
+  validateFilePath(filepath) {
+    if (!filepath) {
+      throw new Error('load must pass a non-empty string');
+    }
   }
 
-  function getExtensionDescription(filepath) {
-    const ext = _path.default.extname(filepath);
+}
 
-    return ext ? `extension "${ext}"` : 'files without extensions';
-  }
-});
+ExplorerBase$1.ExplorerBase = ExplorerBase;
 
-var readFile_1 = createCommonjsModule(function (module, exports) {
+function nextDirUp(dir) {
+  return _path$3.default.dirname(dir);
+}
 
-  Object.defineProperty(exports, "__esModule", {
-    value: true
-  });
-  exports.readFile = readFile;
-  exports.readFileSync = readFileSync;
+function getExtensionDescription(filepath) {
+  const ext = _path$3.default.extname(filepath);
 
-  var _fs = _interopRequireDefault(fs__default['default']);
+  return ext ? `extension "${ext}"` : 'files without extensions';
+}
 
-  function _interopRequireDefault(obj) {
-    return obj && obj.__esModule ? obj : {
-      default: obj
-    };
-  }
+var readFile$1 = {};
 
-  async function fsReadFileAsync(pathname, encoding) {
-    return new Promise((resolve, reject) => {
-      _fs.default.readFile(pathname, encoding, (error, contents) => {
-        if (error) {
-          reject(error);
-          return;
-        }
+Object.defineProperty(readFile$1, "__esModule", {
+  value: true
+});
+readFile$1.readFile = readFile;
+readFile$1.readFileSync = readFileSync;
 
-        resolve(contents);
-      });
-    });
-  }
+var _fs = _interopRequireDefault$4(require$$1__default["default"]);
 
-  async function readFile(filepath, options = {}) {
-    const throwNotFound = options.throwNotFound === true;
+function _interopRequireDefault$4(obj) {
+  return obj && obj.__esModule ? obj : {
+    default: obj
+  };
+}
 
-    try {
-      const content = await fsReadFileAsync(filepath, 'utf8');
-      return content;
-    } catch (error) {
-      if (throwNotFound === false && error.code === 'ENOENT') {
-        return null;
+async function fsReadFileAsync(pathname, encoding) {
+  return new Promise((resolve, reject) => {
+    _fs.default.readFile(pathname, encoding, (error, contents) => {
+      if (error) {
+        reject(error);
+        return;
       }
 
-      throw error;
+      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;
     }
-  }
 
-  function readFileSync(filepath, options = {}) {
-    const throwNotFound = options.throwNotFound === true;
+    throw error;
+  }
+}
 
-    try {
-      const content = _fs.default.readFileSync(filepath, 'utf8');
+function readFileSync(filepath, options = {}) {
+  const throwNotFound = options.throwNotFound === true;
 
-      return content;
-    } catch (error) {
-      if (throwNotFound === false && error.code === 'ENOENT') {
-        return null;
-      }
+  try {
+    const content = _fs.default.readFileSync(filepath, 'utf8');
 
-      throw error;
+    return content;
+  } catch (error) {
+    if (throwNotFound === false && (error.code === 'ENOENT' || error.code === 'EISDIR')) {
+      return null;
     }
+
+    throw error;
   }
+}
+
+var cacheWrapper$1 = {};
+
+Object.defineProperty(cacheWrapper$1, "__esModule", {
+  value: true
 });
+cacheWrapper$1.cacheWrapper = cacheWrapper;
+cacheWrapper$1.cacheWrapperSync = cacheWrapperSync;
 
-var cacheWrapper_1 = createCommonjsModule(function (module, exports) {
+async function cacheWrapper(cache, key, fn) {
+  const cached = cache.get(key);
 
-  Object.defineProperty(exports, "__esModule", {
-    value: true
-  });
-  exports.cacheWrapper = cacheWrapper;
-  exports.cacheWrapperSync = cacheWrapperSync;
+  if (cached !== undefined) {
+    return cached;
+  }
 
-  async function cacheWrapper(cache, key, fn) {
-    const cached = cache.get(key);
+  const result = await fn();
+  cache.set(key, result);
+  return result;
+}
 
-    if (cached !== undefined) {
-      return cached;
-    }
+function cacheWrapperSync(cache, key, fn) {
+  const cached = cache.get(key);
 
-    const result = await fn();
-    cache.set(key, result);
-    return result;
+  if (cached !== undefined) {
+    return cached;
   }
 
-  function cacheWrapperSync(cache, key, fn) {
-    const cached = cache.get(key);
+  const result = fn();
+  cache.set(key, result);
+  return result;
+}
 
-    if (cached !== undefined) {
-      return cached;
-    }
+var getDirectory$1 = {};
 
-    const result = fn();
-    cache.set(key, result);
-    return result;
-  }
-});
+var pathType = {};
 
 const {
   promisify
-} = util__default['default'];
+} = require$$0__default$1["default"];
+const fs = require$$1__default["default"];
 
 async function isType(fsStatType, statsMethodName, filePath) {
   if (typeof filePath !== 'string') {
@@ -9728,7 +10915,7 @@ async function isType(fsStatType, statsMethodName, filePath) {
   }
 
   try {
-    const stats = await promisify(fs__default['default'][fsStatType])(filePath);
+    const stats = await promisify(fs[fsStatType])(filePath);
     return stats[statsMethodName]();
   } catch (error) {
     if (error.code === 'ENOENT') {
@@ -9745,7 +10932,7 @@ function isTypeSync(fsStatType, statsMethodName, filePath) {
   }
 
   try {
-    return fs__default['default'][fsStatType](filePath)[statsMethodName]();
+    return fs[fsStatType](filePath)[statsMethodName]();
   } catch (error) {
     if (error.code === 'ENOENT') {
       return false;
@@ -9755,373 +10942,381 @@ function isTypeSync(fsStatType, statsMethodName, filePath) {
   }
 }
 
-var isFile = isType.bind(null, 'stat', 'isFile');
-var isDirectory = isType.bind(null, 'stat', 'isDirectory');
-var isSymlink = isType.bind(null, 'lstat', 'isSymbolicLink');
-var isFileSync = isTypeSync.bind(null, 'statSync', 'isFile');
-var isDirectorySync = isTypeSync.bind(null, 'statSync', 'isDirectory');
-var isSymlinkSync = isTypeSync.bind(null, 'lstatSync', 'isSymbolicLink');
-var pathType = {
-  isFile: isFile,
-  isDirectory: isDirectory,
-  isSymlink: isSymlink,
-  isFileSync: isFileSync,
-  isDirectorySync: isDirectorySync,
-  isSymlinkSync: isSymlinkSync
-};
+pathType.isFile = isType.bind(null, 'stat', 'isFile');
+pathType.isDirectory = isType.bind(null, 'stat', 'isDirectory');
+pathType.isSymlink = isType.bind(null, 'lstat', 'isSymbolicLink');
+pathType.isFileSync = isTypeSync.bind(null, 'statSync', 'isFile');
+pathType.isDirectorySync = isTypeSync.bind(null, 'statSync', 'isDirectory');
+pathType.isSymlinkSync = isTypeSync.bind(null, 'lstatSync', 'isSymbolicLink');
 
-var getDirectory_1 = createCommonjsModule(function (module, exports) {
+Object.defineProperty(getDirectory$1, "__esModule", {
+  value: true
+});
+getDirectory$1.getDirectory = getDirectory;
+getDirectory$1.getDirectorySync = getDirectorySync;
 
-  Object.defineProperty(exports, "__esModule", {
-    value: true
-  });
-  exports.getDirectory = getDirectory;
-  exports.getDirectorySync = getDirectorySync;
+var _path$2 = _interopRequireDefault$3(require$$0__default["default"]);
 
-  var _path = _interopRequireDefault(path__default['default']);
+var _pathType = pathType;
 
-  function _interopRequireDefault(obj) {
-    return obj && obj.__esModule ? obj : {
-      default: obj
-    };
+function _interopRequireDefault$3(obj) {
+  return obj && obj.__esModule ? obj : {
+    default: obj
+  };
+}
+
+async function getDirectory(filepath) {
+  const filePathIsDirectory = await (0, _pathType.isDirectory)(filepath);
+
+  if (filePathIsDirectory === true) {
+    return filepath;
   }
 
-  async function getDirectory(filepath) {
-    const filePathIsDirectory = await (0, pathType.isDirectory)(filepath);
+  const directory = _path$2.default.dirname(filepath);
 
-    if (filePathIsDirectory === true) {
-      return filepath;
-    }
+  return directory;
+}
 
-    const directory = _path.default.dirname(filepath);
+function getDirectorySync(filepath) {
+  const filePathIsDirectory = (0, _pathType.isDirectorySync)(filepath);
 
-    return directory;
+  if (filePathIsDirectory === true) {
+    return filepath;
   }
 
-  function getDirectorySync(filepath) {
-    const filePathIsDirectory = (0, pathType.isDirectorySync)(filepath);
-
-    if (filePathIsDirectory === true) {
-      return filepath;
-    }
+  const directory = _path$2.default.dirname(filepath);
 
-    const directory = _path.default.dirname(filepath);
+  return directory;
+}
 
-    return directory;
-  }
+Object.defineProperty(Explorer$1, "__esModule", {
+  value: true
 });
+Explorer$1.Explorer = void 0;
 
-var Explorer_1 = createCommonjsModule(function (module, exports) {
+var _path$1 = _interopRequireDefault$2(require$$0__default["default"]);
 
-  Object.defineProperty(exports, "__esModule", {
-    value: true
-  });
-  exports.Explorer = void 0;
+var _ExplorerBase$1 = ExplorerBase$1;
+var _readFile$1 = readFile$1;
+var _cacheWrapper$1 = cacheWrapper$1;
+var _getDirectory$1 = getDirectory$1;
 
-  var _path = _interopRequireDefault(path__default['default']);
+function _interopRequireDefault$2(obj) {
+  return obj && obj.__esModule ? obj : {
+    default: obj
+  };
+}
 
-  function _interopRequireDefault(obj) {
-    return obj && obj.__esModule ? obj : {
-      default: obj
-    };
+class Explorer extends _ExplorerBase$1.ExplorerBase {
+  constructor(options) {
+    super(options);
   }
 
-  class Explorer extends ExplorerBase_1.ExplorerBase {
-    constructor(options) {
-      super(options);
-    }
+  async search(searchFrom = process.cwd()) {
+    const startDirectory = await (0, _getDirectory$1.getDirectory)(searchFrom);
+    const result = await this.searchFromDirectory(startDirectory);
+    return result;
+  }
 
-    async search(searchFrom = process.cwd()) {
-      const startDirectory = await (0, getDirectory_1.getDirectory)(searchFrom);
-      const result = await this.searchFromDirectory(startDirectory);
-      return result;
-    }
+  async searchFromDirectory(dir) {
+    const absoluteDir = _path$1.default.resolve(process.cwd(), dir);
 
-    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);
 
-      const run = async () => {
-        const result = await this.searchDirectory(absoluteDir);
-        const nextDir = this.nextDirectoryToSearch(absoluteDir, result);
+      if (nextDir) {
+        return this.searchFromDirectory(nextDir);
+      }
 
-        if (nextDir) {
-          return this.searchFromDirectory(nextDir);
-        }
+      const transformResult = await this.config.transform(result);
+      return transformResult;
+    };
 
-        const transformResult = await this.config.transform(result);
-        return transformResult;
-      };
+    if (this.searchCache) {
+      return (0, _cacheWrapper$1.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.searchCache) {
-        return (0, cacheWrapper_1.cacheWrapper)(this.searchCache, absoluteDir, run);
+      if (this.shouldSearchStopWithResult(placeResult) === true) {
+        return placeResult;
       }
+    } // config not found
 
-      return run();
-    }
 
-    async searchDirectory(dir) {
-      for await (const place of this.config.searchPlaces) {
-        const placeResult = await this.loadSearchPlace(dir, place);
+    return null;
+  }
 
-        if (this.shouldSearchStopWithResult(placeResult) === true) {
-          return placeResult;
-        }
-      } // config not found
+  async loadSearchPlace(dir, place) {
+    const filepath = _path$1.default.join(dir, place);
 
+    const fileContents = await (0, _readFile$1.readFile)(filepath);
+    const result = await this.createCosmiconfigResult(filepath, fileContents);
+    return result;
+  }
 
+  async loadFileContent(filepath, content) {
+    if (content === null) {
       return null;
     }
 
-    async loadSearchPlace(dir, place) {
-      const filepath = _path.default.join(dir, place);
-
-      const fileContents = await (0, readFile_1.readFile)(filepath);
-      const result = await this.createCosmiconfigResult(filepath, fileContents);
-      return result;
+    if (content.trim() === '') {
+      return undefined;
     }
 
-    async loadFileContent(filepath, content) {
-      if (content === null) {
-        return null;
-      }
+    const loader = this.getLoaderEntryForFile(filepath);
+    const loaderResult = await loader(filepath, content);
+    return loaderResult;
+  }
 
-      if (content.trim() === '') {
-        return undefined;
-      }
+  async createCosmiconfigResult(filepath, content) {
+    const fileContent = await this.loadFileContent(filepath, content);
+    const result = this.loadedContentToCosmiconfigResult(filepath, fileContent);
+    return result;
+  }
 
-      const loader = this.getLoaderEntryForFile(filepath);
-      const loaderResult = await loader(filepath, content);
-      return loaderResult;
-    }
+  async load(filepath) {
+    this.validateFilePath(filepath);
 
-    async createCosmiconfigResult(filepath, content) {
-      const fileContent = await this.loadFileContent(filepath, content);
-      const result = this.loadedContentToCosmiconfigResult(filepath, fileContent);
-      return result;
-    }
+    const absoluteFilePath = _path$1.default.resolve(process.cwd(), filepath);
 
-    async load(filepath) {
-      this.validateFilePath(filepath);
+    const runLoad = async () => {
+      const fileContents = await (0, _readFile$1.readFile)(absoluteFilePath, {
+        throwNotFound: true
+      });
+      const result = await this.createCosmiconfigResult(absoluteFilePath, fileContents);
+      const transformResult = await this.config.transform(result);
+      return transformResult;
+    };
 
-      const absoluteFilePath = _path.default.resolve(process.cwd(), filepath);
+    if (this.loadCache) {
+      return (0, _cacheWrapper$1.cacheWrapper)(this.loadCache, absoluteFilePath, runLoad);
+    }
 
-      const runLoad = async () => {
-        const fileContents = await (0, readFile_1.readFile)(absoluteFilePath, {
-          throwNotFound: true
-        });
-        const result = await this.createCosmiconfigResult(absoluteFilePath, fileContents);
-        const transformResult = await this.config.transform(result);
-        return transformResult;
-      };
+    return runLoad();
+  }
 
-      if (this.loadCache) {
-        return (0, cacheWrapper_1.cacheWrapper)(this.loadCache, absoluteFilePath, runLoad);
-      }
+}
 
-      return runLoad();
-    }
+Explorer$1.Explorer = Explorer;
 
-  }
+var ExplorerSync$1 = {};
 
-  exports.Explorer = Explorer;
+Object.defineProperty(ExplorerSync$1, "__esModule", {
+  value: true
 });
+ExplorerSync$1.ExplorerSync = void 0;
 
-var ExplorerSync_1 = createCommonjsModule(function (module, exports) {
+var _path = _interopRequireDefault$1(require$$0__default["default"]);
 
-  Object.defineProperty(exports, "__esModule", {
-    value: true
-  });
-  exports.ExplorerSync = void 0;
+var _ExplorerBase = ExplorerBase$1;
+var _readFile = readFile$1;
+var _cacheWrapper = cacheWrapper$1;
+var _getDirectory = getDirectory$1;
 
-  var _path = _interopRequireDefault(path__default['default']);
+function _interopRequireDefault$1(obj) {
+  return obj && obj.__esModule ? obj : {
+    default: obj
+  };
+}
 
-  function _interopRequireDefault(obj) {
-    return obj && obj.__esModule ? obj : {
-      default: obj
-    };
+class ExplorerSync extends _ExplorerBase.ExplorerBase {
+  constructor(options) {
+    super(options);
   }
 
-  class ExplorerSync extends ExplorerBase_1.ExplorerBase {
-    constructor(options) {
-      super(options);
-    }
+  searchSync(searchFrom = process.cwd()) {
+    const startDirectory = (0, _getDirectory.getDirectorySync)(searchFrom);
+    const result = this.searchFromDirectorySync(startDirectory);
+    return result;
+  }
 
-    searchSync(searchFrom = process.cwd()) {
-      const startDirectory = (0, getDirectory_1.getDirectorySync)(searchFrom);
-      const result = this.searchFromDirectorySync(startDirectory);
-      return result;
-    }
+  searchFromDirectorySync(dir) {
+    const absoluteDir = _path.default.resolve(process.cwd(), dir);
 
-    searchFromDirectorySync(dir) {
-      const absoluteDir = _path.default.resolve(process.cwd(), dir);
+    const run = () => {
+      const result = this.searchDirectorySync(absoluteDir);
+      const nextDir = this.nextDirectoryToSearch(absoluteDir, result);
 
-      const run = () => {
-        const result = this.searchDirectorySync(absoluteDir);
-        const nextDir = this.nextDirectoryToSearch(absoluteDir, result);
+      if (nextDir) {
+        return this.searchFromDirectorySync(nextDir);
+      }
 
-        if (nextDir) {
-          return this.searchFromDirectorySync(nextDir);
-        }
+      const transformResult = this.config.transform(result);
+      return transformResult;
+    };
 
-        const transformResult = this.config.transform(result);
-        return transformResult;
-      };
+    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.searchCache) {
-        return (0, cacheWrapper_1.cacheWrapperSync)(this.searchCache, absoluteDir, run);
+      if (this.shouldSearchStopWithResult(placeResult) === true) {
+        return placeResult;
       }
+    } // config not found
 
-      return run();
-    }
 
-    searchDirectorySync(dir) {
-      for (const place of this.config.searchPlaces) {
-        const placeResult = this.loadSearchPlaceSync(dir, place);
+    return null;
+  }
 
-        if (this.shouldSearchStopWithResult(placeResult) === true) {
-          return placeResult;
-        }
-      } // config not found
+  loadSearchPlaceSync(dir, place) {
+    const filepath = _path.default.join(dir, place);
 
+    const content = (0, _readFile.readFileSync)(filepath);
+    const result = this.createCosmiconfigResultSync(filepath, content);
+    return result;
+  }
 
+  loadFileContentSync(filepath, content) {
+    if (content === null) {
       return null;
     }
 
-    loadSearchPlaceSync(dir, place) {
-      const filepath = _path.default.join(dir, place);
-
-      const content = (0, readFile_1.readFileSync)(filepath);
-      const result = this.createCosmiconfigResultSync(filepath, content);
-      return result;
+    if (content.trim() === '') {
+      return undefined;
     }
 
-    loadFileContentSync(filepath, content) {
-      if (content === null) {
-        return null;
-      }
+    const loader = this.getLoaderEntryForFile(filepath);
+    const loaderResult = loader(filepath, content);
+    return loaderResult;
+  }
 
-      if (content.trim() === '') {
-        return undefined;
-      }
+  createCosmiconfigResultSync(filepath, content) {
+    const fileContent = this.loadFileContentSync(filepath, content);
+    const result = this.loadedContentToCosmiconfigResult(filepath, fileContent);
+    return result;
+  }
 
-      const loader = this.getLoaderEntryForFile(filepath);
-      const loaderResult = loader(filepath, content);
-      return loaderResult;
-    }
+  loadSync(filepath) {
+    this.validateFilePath(filepath);
 
-    createCosmiconfigResultSync(filepath, content) {
-      const fileContent = this.loadFileContentSync(filepath, content);
-      const result = this.loadedContentToCosmiconfigResult(filepath, fileContent);
-      return result;
-    }
+    const absoluteFilePath = _path.default.resolve(process.cwd(), filepath);
 
-    loadSync(filepath) {
-      this.validateFilePath(filepath);
+    const runLoadSync = () => {
+      const content = (0, _readFile.readFileSync)(absoluteFilePath, {
+        throwNotFound: true
+      });
+      const cosmiconfigResult = this.createCosmiconfigResultSync(absoluteFilePath, content);
+      const transformResult = this.config.transform(cosmiconfigResult);
+      return transformResult;
+    };
 
-      const absoluteFilePath = _path.default.resolve(process.cwd(), filepath);
+    if (this.loadCache) {
+      return (0, _cacheWrapper.cacheWrapperSync)(this.loadCache, absoluteFilePath, runLoadSync);
+    }
 
-      const runLoadSync = () => {
-        const content = (0, readFile_1.readFileSync)(absoluteFilePath, {
-          throwNotFound: true
-        });
-        const cosmiconfigResult = this.createCosmiconfigResultSync(absoluteFilePath, content);
-        const transformResult = this.config.transform(cosmiconfigResult);
-        return transformResult;
-      };
+    return runLoadSync();
+  }
 
-      if (this.loadCache) {
-        return (0, cacheWrapper_1.cacheWrapperSync)(this.loadCache, absoluteFilePath, runLoadSync);
-      }
+}
 
-      return runLoadSync();
-    }
+ExplorerSync$1.ExplorerSync = ExplorerSync;
 
-  }
+var types = {};
 
-  exports.ExplorerSync = ExplorerSync;
+Object.defineProperty(types, "__esModule", {
+  value: true
 });
 
-var dist$2 = createCommonjsModule(function (module, exports) {
+Object.defineProperty(dist$2, "__esModule", {
+  value: true
+});
+dist$2.cosmiconfig = cosmiconfig;
+dist$2.cosmiconfigSync = cosmiconfigSync;
+dist$2.defaultLoaders = void 0;
 
-  Object.defineProperty(exports, "__esModule", {
-    value: true
-  });
-  exports.cosmiconfig = cosmiconfig;
-  exports.cosmiconfigSync = cosmiconfigSync;
-  exports.defaultLoaders = void 0;
+var _os = _interopRequireDefault(require$$0__default$2["default"]);
 
-  var _os = _interopRequireDefault(os__default['default']);
+var _Explorer = Explorer$1;
+var _ExplorerSync = ExplorerSync$1;
+var _loaders = loaders$1;
 
-  function _interopRequireDefault(obj) {
-    return obj && obj.__esModule ? obj : {
-      default: obj
-    };
-  }
-  /* eslint-disable @typescript-eslint/explicit-module-boundary-types */
-  // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
+function _interopRequireDefault(obj) {
+  return obj && obj.__esModule ? obj : {
+    default: obj
+  };
+}
+/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
+// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
 
 
-  function cosmiconfig(moduleName, options = {}) {
-    const normalizedOptions = normalizeOptions(moduleName, options);
-    const explorer = new Explorer_1.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)
-    };
-  } // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
+function cosmiconfig(moduleName, options = {}) {
+  const normalizedOptions = normalizeOptions(moduleName, options);
+  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)
+  };
+} // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
 
 
-  function cosmiconfigSync(moduleName, options = {}) {
-    const normalizedOptions = normalizeOptions(moduleName, options);
-    const explorerSync = new ExplorerSync_1.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)
-    };
-  } // do not allow mutation of default loaders. Make sure it is set inside options
+function cosmiconfigSync(moduleName, options = {}) {
+  const normalizedOptions = normalizeOptions(moduleName, options);
+  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)
+  };
+} // do not allow mutation of default loaders. Make sure it is set inside options
 
 
-  const defaultLoaders = Object.freeze({
-    '.cjs': loaders_1.loaders.loadJs,
-    '.js': loaders_1.loaders.loadJs,
-    '.json': loaders_1.loaders.loadJson,
-    '.yaml': loaders_1.loaders.loadYaml,
-    '.yml': loaders_1.loaders.loadYaml,
-    noExt: loaders_1.loaders.loadYaml
-  });
-  exports.defaultLoaders = defaultLoaders;
+const defaultLoaders = Object.freeze({
+  '.cjs': _loaders.loaders.loadJs,
+  '.js': _loaders.loaders.loadJs,
+  '.json': _loaders.loaders.loadJson,
+  '.yaml': _loaders.loaders.loadYaml,
+  '.yml': _loaders.loaders.loadYaml,
+  noExt: _loaders.loaders.loadYaml
+});
+dist$2.defaultLoaders = defaultLoaders;
+
+const identity = function identity(x) {
+  return x;
+};
 
-  const identity = function identity(x) {
-    return x;
+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}.config.js`, `${moduleName}.config.cjs`],
+    ignoreEmptySearchPlaces: true,
+    stopDir: _os.default.homedir(),
+    cache: true,
+    transform: identity,
+    loaders: defaultLoaders
   };
+  const normalizedOptions = Object.assign(Object.assign(Object.assign({}, defaults), options), {}, {
+    loaders: Object.assign(Object.assign({}, defaults.loaders), options.loaders)
+  });
+  return normalizedOptions;
+}
 
-  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}.config.js`, `${moduleName}.config.cjs`],
-      ignoreEmptySearchPlaces: true,
-      stopDir: _os.default.homedir(),
-      cache: true,
-      transform: identity,
-      loaders: defaultLoaders
-    };
-    const normalizedOptions = Object.assign({}, defaults, options, {
-      loaders: Object.assign({}, defaults.loaders, options.loaders)
-    });
-    return normalizedOptions;
-  }
-});
+var findParentDir = {exports: {}};
 
-var findParentDir = createCommonjsModule(function (module, exports) {
+(function (module, exports) {
 
-  var exists = fs__default['default'].exists || path__default['default'].exists,
-      existsSync = fs__default['default'].existsSync || path__default['default'].existsSync;
+  var path = require$$0__default["default"],
+      fs = require$$1__default["default"],
+      exists = fs.exists || path.exists,
+      existsSync = fs.existsSync || path.existsSync;
 
   function splitPath(path) {
     var parts = path.split(/(\/|\\)/);
@@ -10134,7 +11329,7 @@ var findParentDir = createCommonjsModule(function (module, exports) {
     function testDir(parts) {
       if (parts.length === 0) return cb(null, null);
       var p = parts.join('');
-      exists(path__default['default'].join(p, clue), function (itdoes) {
+      exists(path.join(p, clue), function (itdoes) {
         if (itdoes) return cb(null, p);
         testDir(parts.slice(0, -1));
       });
@@ -10147,19 +11342,21 @@ var findParentDir = createCommonjsModule(function (module, exports) {
     function testDir(parts) {
       if (parts.length === 0) return null;
       var p = parts.join('');
-      var itdoes = existsSync(path__default['default'].join(p, clue));
+      var itdoes = existsSync(path.join(p, clue));
       return itdoes ? p : testDir(parts.slice(0, -1));
     }
 
     return testDir(splitPath(currentFullPath));
   };
-});
+})(findParentDir, findParentDir.exports);
+
+var getStdin = {exports: {}};
 
 const {
   stdin
 } = process;
 
-var getStdin = async () => {
+getStdin.exports = async () => {
   let result = '';
 
   if (stdin.isTTY) {
@@ -10175,7 +11372,7 @@ var getStdin = async () => {
   return result;
 };
 
-var buffer = async () => {
+getStdin.exports.buffer = async () => {
   const result = [];
   let length = 0;
 
@@ -10190,9 +11387,10 @@ var buffer = async () => {
 
   return Buffer.concat(result, length);
 };
-getStdin.buffer = buffer;
 
-var vendors = [
+var ciInfo = {};
+
+var require$$0 = [
        {
                name: "AppVeyor",
                constant: "APPVEYOR",
@@ -10205,6 +11403,11 @@ var vendors = [
                env: "SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",
                pr: "SYSTEM_PULLREQUEST_PULLREQUESTID"
        },
+       {
+               name: "Appcircle",
+               constant: "APPCIRCLE",
+               env: "AC_APPCIRCLE"
+       },
        {
                name: "Bamboo",
                constant: "BAMBOO",
@@ -10254,6 +11457,17 @@ var vendors = [
                constant: "CODEBUILD",
                env: "CODEBUILD_BUILD_ARN"
        },
+       {
+               name: "Codefresh",
+               constant: "CODEFRESH",
+               env: "CF_BUILD_ID",
+               pr: {
+                       any: [
+                               "CF_PULL_REQUEST_NUMBER",
+                               "CF_PULL_REQUEST_ID"
+                       ]
+               }
+       },
        {
                name: "Codeship",
                constant: "CODESHIP",
@@ -10285,13 +11499,20 @@ var vendors = [
        {
                name: "GitLab CI",
                constant: "GITLAB",
-               env: "GITLAB_CI"
+               env: "GITLAB_CI",
+               pr: "CI_MERGE_REQUEST_ID"
        },
        {
                name: "GoCD",
                constant: "GOCD",
                env: "GO_PIPELINE_LABEL"
        },
+       {
+               name: "LayerCI",
+               constant: "LAYERCI",
+               env: "LAYERCI",
+               pr: "LAYERCI_PULL_REQUEST"
+       },
        {
                name: "Hudson",
                constant: "HUDSON",
@@ -10311,11 +11532,6 @@ var vendors = [
                        ]
                }
        },
-       {
-               name: "ZEIT Now",
-               constant: "ZEIT_NOW",
-               env: "NOW_BUILDER"
-       },
        {
                name: "Magnum CI",
                constant: "MAGNUM",
@@ -10359,6 +11575,15 @@ var vendors = [
                env: "SEMAPHORE",
                pr: "PULL_REQUEST_NUMBER"
        },
+       {
+               name: "Screwdriver",
+               constant: "SCREWDRIVER",
+               env: "SCREWDRIVER",
+               pr: {
+                       env: "SD_PULL_REQUEST",
+                       ne: "false"
+               }
+       },
        {
                name: "Shippable",
                constant: "SHIPPABLE",
@@ -10399,12 +11624,23 @@ var vendors = [
                        env: "TRAVIS_PULL_REQUEST",
                        ne: "false"
                }
+       },
+       {
+               name: "Vercel",
+               constant: "VERCEL",
+               env: "NOW_BUILDER"
+       },
+       {
+               name: "Visual Studio App Center",
+               constant: "APPCENTER",
+               env: "APPCENTER_BUILD_ID"
        }
 ];
 
-var ciInfo = createCommonjsModule(function (module, exports) {
+(function (exports) {
 
-  var env = process.env; // Used for testing only
+  const vendors = require$$0;
+  const env = process.env; // Used for testing only
 
   Object.defineProperty(exports, '_vendors', {
     value: vendors.map(function (v) {
@@ -10414,8 +11650,8 @@ var ciInfo = createCommonjsModule(function (module, exports) {
   exports.name = null;
   exports.isPR = null;
   vendors.forEach(function (vendor) {
-    var envs = Array.isArray(vendor.env) ? vendor.env : [vendor.env];
-    var isCI = envs.every(function (obj) {
+    const envs = Array.isArray(vendor.env) ? vendor.env : [vendor.env];
+    const isCI = envs.every(function (obj) {
       return checkEnv(obj);
     });
     exports[vendor.constant] = isCI;
@@ -10463,13 +11699,13 @@ var ciInfo = createCommonjsModule(function (module, exports) {
       return env[k] === obj[k];
     });
   }
-});
+})(ciInfo);
 
 var thirdParty = {
   cosmiconfig: dist$2.cosmiconfig,
   cosmiconfigSync: dist$2.cosmiconfigSync,
-  findParentDir: findParentDir.sync,
-  getStdin: getStdin,
+  findParentDir: findParentDir.exports.sync,
+  getStdin: getStdin.exports,
   isCI: () => ciInfo.isCI
 };