| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275 | 
							- function _typeof(obj) {
 
-   "@babel/helpers - typeof";
 
-   if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
 
-     _typeof = function (obj) {
 
-       return typeof obj;
 
-     };
 
-   } else {
 
-     _typeof = function (obj) {
 
-       return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
 
-     };
 
-   }
 
-   return _typeof(obj);
 
- }
 
- function _classCallCheck(instance, Constructor) {
 
-   if (!(instance instanceof Constructor)) {
 
-     throw new TypeError("Cannot call a class as a function");
 
-   }
 
- }
 
- function _defineProperties(target, props) {
 
-   for (var i = 0; i < props.length; i++) {
 
-     var descriptor = props[i];
 
-     descriptor.enumerable = descriptor.enumerable || false;
 
-     descriptor.configurable = true;
 
-     if ("value" in descriptor) descriptor.writable = true;
 
-     Object.defineProperty(target, descriptor.key, descriptor);
 
-   }
 
- }
 
- function _createClass(Constructor, protoProps, staticProps) {
 
-   if (protoProps) _defineProperties(Constructor.prototype, protoProps);
 
-   if (staticProps) _defineProperties(Constructor, staticProps);
 
-   return Constructor;
 
- }
 
- function _defineProperty(obj, key, value) {
 
-   if (key in obj) {
 
-     Object.defineProperty(obj, key, {
 
-       value: value,
 
-       enumerable: true,
 
-       configurable: true,
 
-       writable: true
 
-     });
 
-   } else {
 
-     obj[key] = value;
 
-   }
 
-   return obj;
 
- }
 
- function _inherits(subClass, superClass) {
 
-   if (typeof superClass !== "function" && superClass !== null) {
 
-     throw new TypeError("Super expression must either be null or a function");
 
-   }
 
-   subClass.prototype = Object.create(superClass && superClass.prototype, {
 
-     constructor: {
 
-       value: subClass,
 
-       writable: true,
 
-       configurable: true
 
-     }
 
-   });
 
-   if (superClass) _setPrototypeOf(subClass, superClass);
 
- }
 
- function _getPrototypeOf(o) {
 
-   _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
 
-     return o.__proto__ || Object.getPrototypeOf(o);
 
-   };
 
-   return _getPrototypeOf(o);
 
- }
 
- function _setPrototypeOf(o, p) {
 
-   _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
 
-     o.__proto__ = p;
 
-     return o;
 
-   };
 
-   return _setPrototypeOf(o, p);
 
- }
 
- function _isNativeReflectConstruct() {
 
-   if (typeof Reflect === "undefined" || !Reflect.construct) return false;
 
-   if (Reflect.construct.sham) return false;
 
-   if (typeof Proxy === "function") return true;
 
-   try {
 
-     Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
 
-     return true;
 
-   } catch (e) {
 
-     return false;
 
-   }
 
- }
 
- function _construct(Parent, args, Class) {
 
-   if (_isNativeReflectConstruct()) {
 
-     _construct = Reflect.construct;
 
-   } else {
 
-     _construct = function _construct(Parent, args, Class) {
 
-       var a = [null];
 
-       a.push.apply(a, args);
 
-       var Constructor = Function.bind.apply(Parent, a);
 
-       var instance = new Constructor();
 
-       if (Class) _setPrototypeOf(instance, Class.prototype);
 
-       return instance;
 
-     };
 
-   }
 
-   return _construct.apply(null, arguments);
 
- }
 
- function _isNativeFunction(fn) {
 
-   return Function.toString.call(fn).indexOf("[native code]") !== -1;
 
- }
 
- function _wrapNativeSuper(Class) {
 
-   var _cache = typeof Map === "function" ? new Map() : undefined;
 
-   _wrapNativeSuper = function _wrapNativeSuper(Class) {
 
-     if (Class === null || !_isNativeFunction(Class)) return Class;
 
-     if (typeof Class !== "function") {
 
-       throw new TypeError("Super expression must either be null or a function");
 
-     }
 
-     if (typeof _cache !== "undefined") {
 
-       if (_cache.has(Class)) return _cache.get(Class);
 
-       _cache.set(Class, Wrapper);
 
-     }
 
-     function Wrapper() {
 
-       return _construct(Class, arguments, _getPrototypeOf(this).constructor);
 
-     }
 
-     Wrapper.prototype = Object.create(Class.prototype, {
 
-       constructor: {
 
-         value: Wrapper,
 
-         enumerable: false,
 
-         writable: true,
 
-         configurable: true
 
-       }
 
-     });
 
-     return _setPrototypeOf(Wrapper, Class);
 
-   };
 
-   return _wrapNativeSuper(Class);
 
- }
 
- function _assertThisInitialized(self) {
 
-   if (self === void 0) {
 
-     throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
 
-   }
 
-   return self;
 
- }
 
- function _possibleConstructorReturn(self, call) {
 
-   if (call && (typeof call === "object" || typeof call === "function")) {
 
-     return call;
 
-   }
 
-   return _assertThisInitialized(self);
 
- }
 
- function _createSuper(Derived) {
 
-   var hasNativeReflectConstruct = _isNativeReflectConstruct();
 
-   return function _createSuperInternal() {
 
-     var Super = _getPrototypeOf(Derived),
 
-         result;
 
-     if (hasNativeReflectConstruct) {
 
-       var NewTarget = _getPrototypeOf(this).constructor;
 
-       result = Reflect.construct(Super, arguments, NewTarget);
 
-     } else {
 
-       result = Super.apply(this, arguments);
 
-     }
 
-     return _possibleConstructorReturn(this, result);
 
-   };
 
- }
 
- function _superPropBase(object, property) {
 
-   while (!Object.prototype.hasOwnProperty.call(object, property)) {
 
-     object = _getPrototypeOf(object);
 
-     if (object === null) break;
 
-   }
 
-   return object;
 
- }
 
- function _get(target, property, receiver) {
 
-   if (typeof Reflect !== "undefined" && Reflect.get) {
 
-     _get = Reflect.get;
 
-   } else {
 
-     _get = function _get(target, property, receiver) {
 
-       var base = _superPropBase(target, property);
 
-       if (!base) return;
 
-       var desc = Object.getOwnPropertyDescriptor(base, property);
 
-       if (desc.get) {
 
-         return desc.get.call(receiver);
 
-       }
 
-       return desc.value;
 
-     };
 
-   }
 
-   return _get(target, property, receiver || target);
 
- }
 
- function _slicedToArray(arr, i) {
 
-   return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
 
- }
 
- function _toArray(arr) {
 
-   return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest();
 
- }
 
- function _arrayWithHoles(arr) {
 
-   if (Array.isArray(arr)) return arr;
 
- }
 
- function _iterableToArray(iter) {
 
-   if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
 
- }
 
- function _iterableToArrayLimit(arr, i) {
 
-   if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;
 
-   var _arr = [];
 
-   var _n = true;
 
-   var _d = false;
 
-   var _e = undefined;
 
-   try {
 
-     for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
 
-       _arr.push(_s.value);
 
-       if (i && _arr.length === i) break;
 
-     }
 
-   } catch (err) {
 
-     _d = true;
 
-     _e = err;
 
-   } finally {
 
-     try {
 
-       if (!_n && _i["return"] != null) _i["return"]();
 
-     } finally {
 
-       if (_d) throw _e;
 
-     }
 
-   }
 
-   return _arr;
 
- }
 
- function _unsupportedIterableToArray(o, minLen) {
 
-   if (!o) return;
 
-   if (typeof o === "string") return _arrayLikeToArray(o, minLen);
 
-   var n = Object.prototype.toString.call(o).slice(8, -1);
 
-   if (n === "Object" && o.constructor) n = o.constructor.name;
 
-   if (n === "Map" || n === "Set") return Array.from(o);
 
-   if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
 
- }
 
- function _arrayLikeToArray(arr, len) {
 
-   if (len == null || len > arr.length) len = arr.length;
 
-   for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
 
-   return arr2;
 
- }
 
- function _nonIterableRest() {
 
-   throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
 
- }
 
- function _createForOfIteratorHelper(o, allowArrayLike) {
 
-   var it;
 
-   if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {
 
-     if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
 
-       if (it) o = it;
 
-       var i = 0;
 
-       var F = function () {};
 
-       return {
 
-         s: F,
 
-         n: function () {
 
-           if (i >= o.length) return {
 
-             done: true
 
-           };
 
-           return {
 
-             done: false,
 
-             value: o[i++]
 
-           };
 
-         },
 
-         e: function (e) {
 
-           throw e;
 
-         },
 
-         f: F
 
-       };
 
-     }
 
-     throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
 
-   }
 
-   var normalCompletion = true,
 
-       didErr = false,
 
-       err;
 
-   return {
 
-     s: function () {
 
-       it = o[Symbol.iterator]();
 
-     },
 
-     n: function () {
 
-       var step = it.next();
 
-       normalCompletion = step.done;
 
-       return step;
 
-     },
 
-     e: function (e) {
 
-       didErr = true;
 
-       err = e;
 
-     },
 
-     f: function () {
 
-       try {
 
-         if (!normalCompletion && it.return != null) it.return();
 
-       } finally {
 
-         if (didErr) throw err;
 
-       }
 
-     }
 
-   };
 
- }
 
- var Char = {
 
-   ANCHOR: '&',
 
-   COMMENT: '#',
 
-   TAG: '!',
 
-   DIRECTIVES_END: '-',
 
-   DOCUMENT_END: '.'
 
- };
 
- var Type = {
 
-   ALIAS: 'ALIAS',
 
-   BLANK_LINE: 'BLANK_LINE',
 
-   BLOCK_FOLDED: 'BLOCK_FOLDED',
 
-   BLOCK_LITERAL: 'BLOCK_LITERAL',
 
-   COMMENT: 'COMMENT',
 
-   DIRECTIVE: 'DIRECTIVE',
 
-   DOCUMENT: 'DOCUMENT',
 
-   FLOW_MAP: 'FLOW_MAP',
 
-   FLOW_SEQ: 'FLOW_SEQ',
 
-   MAP: 'MAP',
 
-   MAP_KEY: 'MAP_KEY',
 
-   MAP_VALUE: 'MAP_VALUE',
 
-   PLAIN: 'PLAIN',
 
-   QUOTE_DOUBLE: 'QUOTE_DOUBLE',
 
-   QUOTE_SINGLE: 'QUOTE_SINGLE',
 
-   SEQ: 'SEQ',
 
-   SEQ_ITEM: 'SEQ_ITEM'
 
- };
 
- var defaultTagPrefix = 'tag:yaml.org,2002:';
 
- var defaultTags = {
 
-   MAP: 'tag:yaml.org,2002:map',
 
-   SEQ: 'tag:yaml.org,2002:seq',
 
-   STR: 'tag:yaml.org,2002:str'
 
- };
 
- function findLineStarts(src) {
 
-   var ls = [0];
 
-   var offset = src.indexOf('\n');
 
-   while (offset !== -1) {
 
-     offset += 1;
 
-     ls.push(offset);
 
-     offset = src.indexOf('\n', offset);
 
-   }
 
-   return ls;
 
- }
 
- function getSrcInfo(cst) {
 
-   var lineStarts, src;
 
-   if (typeof cst === 'string') {
 
-     lineStarts = findLineStarts(cst);
 
-     src = cst;
 
-   } else {
 
-     if (Array.isArray(cst)) cst = cst[0];
 
-     if (cst && cst.context) {
 
-       if (!cst.lineStarts) cst.lineStarts = findLineStarts(cst.context.src);
 
-       lineStarts = cst.lineStarts;
 
-       src = cst.context.src;
 
-     }
 
-   }
 
-   return {
 
-     lineStarts: lineStarts,
 
-     src: src
 
-   };
 
- }
 
- /**
 
-  * @typedef {Object} LinePos - One-indexed position in the source
 
-  * @property {number} line
 
-  * @property {number} col
 
-  */
 
- /**
 
-  * Determine the line/col position matching a character offset.
 
-  *
 
-  * Accepts a source string or a CST document as the second parameter. With
 
-  * the latter, starting indices for lines are cached in the document as
 
-  * `lineStarts: number[]`.
 
-  *
 
-  * Returns a one-indexed `{ line, col }` location if found, or
 
-  * `undefined` otherwise.
 
-  *
 
-  * @param {number} offset
 
-  * @param {string|Document|Document[]} cst
 
-  * @returns {?LinePos}
 
-  */
 
- function getLinePos(offset, cst) {
 
-   if (typeof offset !== 'number' || offset < 0) return null;
 
-   var _getSrcInfo = getSrcInfo(cst),
 
-       lineStarts = _getSrcInfo.lineStarts,
 
-       src = _getSrcInfo.src;
 
-   if (!lineStarts || !src || offset > src.length) return null;
 
-   for (var i = 0; i < lineStarts.length; ++i) {
 
-     var start = lineStarts[i];
 
-     if (offset < start) {
 
-       return {
 
-         line: i,
 
-         col: offset - lineStarts[i - 1] + 1
 
-       };
 
-     }
 
-     if (offset === start) return {
 
-       line: i + 1,
 
-       col: 1
 
-     };
 
-   }
 
-   var line = lineStarts.length;
 
-   return {
 
-     line: line,
 
-     col: offset - lineStarts[line - 1] + 1
 
-   };
 
- }
 
- /**
 
-  * Get a specified line from the source.
 
-  *
 
-  * Accepts a source string or a CST document as the second parameter. With
 
-  * the latter, starting indices for lines are cached in the document as
 
-  * `lineStarts: number[]`.
 
-  *
 
-  * Returns the line as a string if found, or `null` otherwise.
 
-  *
 
-  * @param {number} line One-indexed line number
 
-  * @param {string|Document|Document[]} cst
 
-  * @returns {?string}
 
-  */
 
- function getLine(line, cst) {
 
-   var _getSrcInfo2 = getSrcInfo(cst),
 
-       lineStarts = _getSrcInfo2.lineStarts,
 
-       src = _getSrcInfo2.src;
 
-   if (!lineStarts || !(line >= 1) || line > lineStarts.length) return null;
 
-   var start = lineStarts[line - 1];
 
-   var end = lineStarts[line]; // undefined for last line; that's ok for slice()
 
-   while (end && end > start && src[end - 1] === '\n') {
 
-     --end;
 
-   }
 
-   return src.slice(start, end);
 
- }
 
- /**
 
-  * Pretty-print the starting line from the source indicated by the range `pos`
 
-  *
 
-  * Trims output to `maxWidth` chars while keeping the starting column visible,
 
-  * using `…` at either end to indicate dropped characters.
 
-  *
 
-  * Returns a two-line string (or `null`) with `\n` as separator; the second line
 
-  * will hold appropriately indented `^` marks indicating the column range.
 
-  *
 
-  * @param {Object} pos
 
-  * @param {LinePos} pos.start
 
-  * @param {LinePos} [pos.end]
 
-  * @param {string|Document|Document[]*} cst
 
-  * @param {number} [maxWidth=80]
 
-  * @returns {?string}
 
-  */
 
- function getPrettyContext(_ref, cst) {
 
-   var start = _ref.start,
 
-       end = _ref.end;
 
-   var maxWidth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 80;
 
-   var src = getLine(start.line, cst);
 
-   if (!src) return null;
 
-   var col = start.col;
 
-   if (src.length > maxWidth) {
 
-     if (col <= maxWidth - 10) {
 
-       src = src.substr(0, maxWidth - 1) + '…';
 
-     } else {
 
-       var halfWidth = Math.round(maxWidth / 2);
 
-       if (src.length > col + halfWidth) src = src.substr(0, col + halfWidth - 1) + '…';
 
-       col -= src.length - maxWidth;
 
-       src = '…' + src.substr(1 - maxWidth);
 
-     }
 
-   }
 
-   var errLen = 1;
 
-   var errEnd = '';
 
-   if (end) {
 
-     if (end.line === start.line && col + (end.col - start.col) <= maxWidth + 1) {
 
-       errLen = end.col - start.col;
 
-     } else {
 
-       errLen = Math.min(src.length + 1, maxWidth) - col;
 
-       errEnd = '…';
 
-     }
 
-   }
 
-   var offset = col > 1 ? ' '.repeat(col - 1) : '';
 
-   var err = '^'.repeat(errLen);
 
-   return "".concat(src, "\n").concat(offset).concat(err).concat(errEnd);
 
- }
 
- var Range = /*#__PURE__*/function () {
 
-   function Range(start, end) {
 
-     _classCallCheck(this, Range);
 
-     this.start = start;
 
-     this.end = end || start;
 
-   }
 
-   _createClass(Range, [{
 
-     key: "isEmpty",
 
-     value: function isEmpty() {
 
-       return typeof this.start !== 'number' || !this.end || this.end <= this.start;
 
-     }
 
-     /**
 
-      * Set `origStart` and `origEnd` to point to the original source range for
 
-      * this node, which may differ due to dropped CR characters.
 
-      *
 
-      * @param {number[]} cr - Positions of dropped CR characters
 
-      * @param {number} offset - Starting index of `cr` from the last call
 
-      * @returns {number} - The next offset, matching the one found for `origStart`
 
-      */
 
-   }, {
 
-     key: "setOrigRange",
 
-     value: function setOrigRange(cr, offset) {
 
-       var start = this.start,
 
-           end = this.end;
 
-       if (cr.length === 0 || end <= cr[0]) {
 
-         this.origStart = start;
 
-         this.origEnd = end;
 
-         return offset;
 
-       }
 
-       var i = offset;
 
-       while (i < cr.length) {
 
-         if (cr[i] > start) break;else ++i;
 
-       }
 
-       this.origStart = start + i;
 
-       var nextOffset = i;
 
-       while (i < cr.length) {
 
-         // if end was at \n, it should now be at \r
 
-         if (cr[i] >= end) break;else ++i;
 
-       }
 
-       this.origEnd = end + i;
 
-       return nextOffset;
 
-     }
 
-   }], [{
 
-     key: "copy",
 
-     value: function copy(orig) {
 
-       return new Range(orig.start, orig.end);
 
-     }
 
-   }]);
 
-   return Range;
 
- }();
 
- /** Root class of all nodes */
 
- var Node = /*#__PURE__*/function () {
 
-   function Node(type, props, context) {
 
-     _classCallCheck(this, Node);
 
-     Object.defineProperty(this, 'context', {
 
-       value: context || null,
 
-       writable: true
 
-     });
 
-     this.error = null;
 
-     this.range = null;
 
-     this.valueRange = null;
 
-     this.props = props || [];
 
-     this.type = type;
 
-     this.value = null;
 
-   }
 
-   _createClass(Node, [{
 
-     key: "getPropValue",
 
-     value: function getPropValue(idx, key, skipKey) {
 
-       if (!this.context) return null;
 
-       var src = this.context.src;
 
-       var prop = this.props[idx];
 
-       return prop && src[prop.start] === key ? src.slice(prop.start + (skipKey ? 1 : 0), prop.end) : null;
 
-     }
 
-   }, {
 
-     key: "anchor",
 
-     get: function get() {
 
-       for (var i = 0; i < this.props.length; ++i) {
 
-         var anchor = this.getPropValue(i, Char.ANCHOR, true);
 
-         if (anchor != null) return anchor;
 
-       }
 
-       return null;
 
-     }
 
-   }, {
 
-     key: "comment",
 
-     get: function get() {
 
-       var comments = [];
 
-       for (var i = 0; i < this.props.length; ++i) {
 
-         var comment = this.getPropValue(i, Char.COMMENT, true);
 
-         if (comment != null) comments.push(comment);
 
-       }
 
-       return comments.length > 0 ? comments.join('\n') : null;
 
-     }
 
-   }, {
 
-     key: "commentHasRequiredWhitespace",
 
-     value: function commentHasRequiredWhitespace(start) {
 
-       var src = this.context.src;
 
-       if (this.header && start === this.header.end) return false;
 
-       if (!this.valueRange) return false;
 
-       var end = this.valueRange.end;
 
-       return start !== end || Node.atBlank(src, end - 1);
 
-     }
 
-   }, {
 
-     key: "hasComment",
 
-     get: function get() {
 
-       if (this.context) {
 
-         var src = this.context.src;
 
-         for (var i = 0; i < this.props.length; ++i) {
 
-           if (src[this.props[i].start] === Char.COMMENT) return true;
 
-         }
 
-       }
 
-       return false;
 
-     }
 
-   }, {
 
-     key: "hasProps",
 
-     get: function get() {
 
-       if (this.context) {
 
-         var src = this.context.src;
 
-         for (var i = 0; i < this.props.length; ++i) {
 
-           if (src[this.props[i].start] !== Char.COMMENT) return true;
 
-         }
 
-       }
 
-       return false;
 
-     }
 
-   }, {
 
-     key: "includesTrailingLines",
 
-     get: function get() {
 
-       return false;
 
-     }
 
-   }, {
 
-     key: "jsonLike",
 
-     get: function get() {
 
-       var jsonLikeTypes = [Type.FLOW_MAP, Type.FLOW_SEQ, Type.QUOTE_DOUBLE, Type.QUOTE_SINGLE];
 
-       return jsonLikeTypes.indexOf(this.type) !== -1;
 
-     }
 
-   }, {
 
-     key: "rangeAsLinePos",
 
-     get: function get() {
 
-       if (!this.range || !this.context) return undefined;
 
-       var start = getLinePos(this.range.start, this.context.root);
 
-       if (!start) return undefined;
 
-       var end = getLinePos(this.range.end, this.context.root);
 
-       return {
 
-         start: start,
 
-         end: end
 
-       };
 
-     }
 
-   }, {
 
-     key: "rawValue",
 
-     get: function get() {
 
-       if (!this.valueRange || !this.context) return null;
 
-       var _this$valueRange = this.valueRange,
 
-           start = _this$valueRange.start,
 
-           end = _this$valueRange.end;
 
-       return this.context.src.slice(start, end);
 
-     }
 
-   }, {
 
-     key: "tag",
 
-     get: function get() {
 
-       for (var i = 0; i < this.props.length; ++i) {
 
-         var tag = this.getPropValue(i, Char.TAG, false);
 
-         if (tag != null) {
 
-           if (tag[1] === '<') {
 
-             return {
 
-               verbatim: tag.slice(2, -1)
 
-             };
 
-           } else {
 
-             // eslint-disable-next-line no-unused-vars
 
-             var _tag$match = tag.match(/^(.*!)([^!]*)$/),
 
-                 _tag$match2 = _slicedToArray(_tag$match, 3);
 
-                 _tag$match2[0];
 
-                 var handle = _tag$match2[1],
 
-                 suffix = _tag$match2[2];
 
-             return {
 
-               handle: handle,
 
-               suffix: suffix
 
-             };
 
-           }
 
-         }
 
-       }
 
-       return null;
 
-     }
 
-   }, {
 
-     key: "valueRangeContainsNewline",
 
-     get: function get() {
 
-       if (!this.valueRange || !this.context) return false;
 
-       var _this$valueRange2 = this.valueRange,
 
-           start = _this$valueRange2.start,
 
-           end = _this$valueRange2.end;
 
-       var src = this.context.src;
 
-       for (var i = start; i < end; ++i) {
 
-         if (src[i] === '\n') return true;
 
-       }
 
-       return false;
 
-     }
 
-   }, {
 
-     key: "parseComment",
 
-     value: function parseComment(start) {
 
-       var src = this.context.src;
 
-       if (src[start] === Char.COMMENT) {
 
-         var end = Node.endOfLine(src, start + 1);
 
-         var commentRange = new Range(start, end);
 
-         this.props.push(commentRange);
 
-         return end;
 
-       }
 
-       return start;
 
-     }
 
-     /**
 
-      * Populates the `origStart` and `origEnd` values of all ranges for this
 
-      * node. Extended by child classes to handle descendant nodes.
 
-      *
 
-      * @param {number[]} cr - Positions of dropped CR characters
 
-      * @param {number} offset - Starting index of `cr` from the last call
 
-      * @returns {number} - The next offset, matching the one found for `origStart`
 
-      */
 
-   }, {
 
-     key: "setOrigRanges",
 
-     value: function setOrigRanges(cr, offset) {
 
-       if (this.range) offset = this.range.setOrigRange(cr, offset);
 
-       if (this.valueRange) this.valueRange.setOrigRange(cr, offset);
 
-       this.props.forEach(function (prop) {
 
-         return prop.setOrigRange(cr, offset);
 
-       });
 
-       return offset;
 
-     }
 
-   }, {
 
-     key: "toString",
 
-     value: function toString() {
 
-       var src = this.context.src,
 
-           range = this.range,
 
-           value = this.value;
 
-       if (value != null) return value;
 
-       var str = src.slice(range.start, range.end);
 
-       return Node.addStringTerminator(src, range.end, str);
 
-     }
 
-   }], [{
 
-     key: "addStringTerminator",
 
-     value: function addStringTerminator(src, offset, str) {
 
-       if (str[str.length - 1] === '\n') return str;
 
-       var next = Node.endOfWhiteSpace(src, offset);
 
-       return next >= src.length || src[next] === '\n' ? str + '\n' : str;
 
-     } // ^(---|...)
 
-   }, {
 
-     key: "atDocumentBoundary",
 
-     value: function atDocumentBoundary(src, offset, sep) {
 
-       var ch0 = src[offset];
 
-       if (!ch0) return true;
 
-       var prev = src[offset - 1];
 
-       if (prev && prev !== '\n') return false;
 
-       if (sep) {
 
-         if (ch0 !== sep) return false;
 
-       } else {
 
-         if (ch0 !== Char.DIRECTIVES_END && ch0 !== Char.DOCUMENT_END) return false;
 
-       }
 
-       var ch1 = src[offset + 1];
 
-       var ch2 = src[offset + 2];
 
-       if (ch1 !== ch0 || ch2 !== ch0) return false;
 
-       var ch3 = src[offset + 3];
 
-       return !ch3 || ch3 === '\n' || ch3 === '\t' || ch3 === ' ';
 
-     }
 
-   }, {
 
-     key: "endOfIdentifier",
 
-     value: function endOfIdentifier(src, offset) {
 
-       var ch = src[offset];
 
-       var isVerbatim = ch === '<';
 
-       var notOk = isVerbatim ? ['\n', '\t', ' ', '>'] : ['\n', '\t', ' ', '[', ']', '{', '}', ','];
 
-       while (ch && notOk.indexOf(ch) === -1) {
 
-         ch = src[offset += 1];
 
-       }
 
-       if (isVerbatim && ch === '>') offset += 1;
 
-       return offset;
 
-     }
 
-   }, {
 
-     key: "endOfIndent",
 
-     value: function endOfIndent(src, offset) {
 
-       var ch = src[offset];
 
-       while (ch === ' ') {
 
-         ch = src[offset += 1];
 
-       }
 
-       return offset;
 
-     }
 
-   }, {
 
-     key: "endOfLine",
 
-     value: function endOfLine(src, offset) {
 
-       var ch = src[offset];
 
-       while (ch && ch !== '\n') {
 
-         ch = src[offset += 1];
 
-       }
 
-       return offset;
 
-     }
 
-   }, {
 
-     key: "endOfWhiteSpace",
 
-     value: function endOfWhiteSpace(src, offset) {
 
-       var ch = src[offset];
 
-       while (ch === '\t' || ch === ' ') {
 
-         ch = src[offset += 1];
 
-       }
 
-       return offset;
 
-     }
 
-   }, {
 
-     key: "startOfLine",
 
-     value: function startOfLine(src, offset) {
 
-       var ch = src[offset - 1];
 
-       if (ch === '\n') return offset;
 
-       while (ch && ch !== '\n') {
 
-         ch = src[offset -= 1];
 
-       }
 
-       return offset + 1;
 
-     }
 
-     /**
 
-      * End of indentation, or null if the line's indent level is not more
 
-      * than `indent`
 
-      *
 
-      * @param {string} src
 
-      * @param {number} indent
 
-      * @param {number} lineStart
 
-      * @returns {?number}
 
-      */
 
-   }, {
 
-     key: "endOfBlockIndent",
 
-     value: function endOfBlockIndent(src, indent, lineStart) {
 
-       var inEnd = Node.endOfIndent(src, lineStart);
 
-       if (inEnd > lineStart + indent) {
 
-         return inEnd;
 
-       } else {
 
-         var wsEnd = Node.endOfWhiteSpace(src, inEnd);
 
-         var ch = src[wsEnd];
 
-         if (!ch || ch === '\n') return wsEnd;
 
-       }
 
-       return null;
 
-     }
 
-   }, {
 
-     key: "atBlank",
 
-     value: function atBlank(src, offset, endAsBlank) {
 
-       var ch = src[offset];
 
-       return ch === '\n' || ch === '\t' || ch === ' ' || endAsBlank && !ch;
 
-     }
 
-   }, {
 
-     key: "nextNodeIsIndented",
 
-     value: function nextNodeIsIndented(ch, indentDiff, indicatorAsIndent) {
 
-       if (!ch || indentDiff < 0) return false;
 
-       if (indentDiff > 0) return true;
 
-       return indicatorAsIndent && ch === '-';
 
-     } // should be at line or string end, or at next non-whitespace char
 
-   }, {
 
-     key: "normalizeOffset",
 
-     value: function normalizeOffset(src, offset) {
 
-       var ch = src[offset];
 
-       return !ch ? offset : ch !== '\n' && src[offset - 1] === '\n' ? offset - 1 : Node.endOfWhiteSpace(src, offset);
 
-     } // fold single newline into space, multiple newlines to N - 1 newlines
 
-     // presumes src[offset] === '\n'
 
-   }, {
 
-     key: "foldNewline",
 
-     value: function foldNewline(src, offset, indent) {
 
-       var inCount = 0;
 
-       var error = false;
 
-       var fold = '';
 
-       var ch = src[offset + 1];
 
-       while (ch === ' ' || ch === '\t' || ch === '\n') {
 
-         switch (ch) {
 
-           case '\n':
 
-             inCount = 0;
 
-             offset += 1;
 
-             fold += '\n';
 
-             break;
 
-           case '\t':
 
-             if (inCount <= indent) error = true;
 
-             offset = Node.endOfWhiteSpace(src, offset + 2) - 1;
 
-             break;
 
-           case ' ':
 
-             inCount += 1;
 
-             offset += 1;
 
-             break;
 
-         }
 
-         ch = src[offset + 1];
 
-       }
 
-       if (!fold) fold = ' ';
 
-       if (ch && inCount <= indent) error = true;
 
-       return {
 
-         fold: fold,
 
-         offset: offset,
 
-         error: error
 
-       };
 
-     }
 
-   }]);
 
-   return Node;
 
- }();
 
- var YAMLError = /*#__PURE__*/function (_Error) {
 
-   _inherits(YAMLError, _Error);
 
-   var _super = _createSuper(YAMLError);
 
-   function YAMLError(name, source, message) {
 
-     var _this;
 
-     _classCallCheck(this, YAMLError);
 
-     if (!message || !(source instanceof Node)) throw new Error("Invalid arguments for new ".concat(name));
 
-     _this = _super.call(this);
 
-     _this.name = name;
 
-     _this.message = message;
 
-     _this.source = source;
 
-     return _this;
 
-   }
 
-   _createClass(YAMLError, [{
 
-     key: "makePretty",
 
-     value: function makePretty() {
 
-       if (!this.source) return;
 
-       this.nodeType = this.source.type;
 
-       var cst = this.source.context && this.source.context.root;
 
-       if (typeof this.offset === 'number') {
 
-         this.range = new Range(this.offset, this.offset + 1);
 
-         var start = cst && getLinePos(this.offset, cst);
 
-         if (start) {
 
-           var end = {
 
-             line: start.line,
 
-             col: start.col + 1
 
-           };
 
-           this.linePos = {
 
-             start: start,
 
-             end: end
 
-           };
 
-         }
 
-         delete this.offset;
 
-       } else {
 
-         this.range = this.source.range;
 
-         this.linePos = this.source.rangeAsLinePos;
 
-       }
 
-       if (this.linePos) {
 
-         var _this$linePos$start = this.linePos.start,
 
-             line = _this$linePos$start.line,
 
-             col = _this$linePos$start.col;
 
-         this.message += " at line ".concat(line, ", column ").concat(col);
 
-         var ctx = cst && getPrettyContext(this.linePos, cst);
 
-         if (ctx) this.message += ":\n\n".concat(ctx, "\n");
 
-       }
 
-       delete this.source;
 
-     }
 
-   }]);
 
-   return YAMLError;
 
- }( /*#__PURE__*/_wrapNativeSuper(Error));
 
- var YAMLReferenceError = /*#__PURE__*/function (_YAMLError) {
 
-   _inherits(YAMLReferenceError, _YAMLError);
 
-   var _super2 = _createSuper(YAMLReferenceError);
 
-   function YAMLReferenceError(source, message) {
 
-     _classCallCheck(this, YAMLReferenceError);
 
-     return _super2.call(this, 'YAMLReferenceError', source, message);
 
-   }
 
-   return YAMLReferenceError;
 
- }(YAMLError);
 
- var YAMLSemanticError = /*#__PURE__*/function (_YAMLError2) {
 
-   _inherits(YAMLSemanticError, _YAMLError2);
 
-   var _super3 = _createSuper(YAMLSemanticError);
 
-   function YAMLSemanticError(source, message) {
 
-     _classCallCheck(this, YAMLSemanticError);
 
-     return _super3.call(this, 'YAMLSemanticError', source, message);
 
-   }
 
-   return YAMLSemanticError;
 
- }(YAMLError);
 
- var YAMLSyntaxError = /*#__PURE__*/function (_YAMLError3) {
 
-   _inherits(YAMLSyntaxError, _YAMLError3);
 
-   var _super4 = _createSuper(YAMLSyntaxError);
 
-   function YAMLSyntaxError(source, message) {
 
-     _classCallCheck(this, YAMLSyntaxError);
 
-     return _super4.call(this, 'YAMLSyntaxError', source, message);
 
-   }
 
-   return YAMLSyntaxError;
 
- }(YAMLError);
 
- var YAMLWarning = /*#__PURE__*/function (_YAMLError4) {
 
-   _inherits(YAMLWarning, _YAMLError4);
 
-   var _super5 = _createSuper(YAMLWarning);
 
-   function YAMLWarning(source, message) {
 
-     _classCallCheck(this, YAMLWarning);
 
-     return _super5.call(this, 'YAMLWarning', source, message);
 
-   }
 
-   return YAMLWarning;
 
- }(YAMLError);
 
- var PlainValue = /*#__PURE__*/function (_Node) {
 
-   _inherits(PlainValue, _Node);
 
-   var _super = _createSuper(PlainValue);
 
-   function PlainValue() {
 
-     _classCallCheck(this, PlainValue);
 
-     return _super.apply(this, arguments);
 
-   }
 
-   _createClass(PlainValue, [{
 
-     key: "strValue",
 
-     get: function get() {
 
-       if (!this.valueRange || !this.context) return null;
 
-       var _this$valueRange = this.valueRange,
 
-           start = _this$valueRange.start,
 
-           end = _this$valueRange.end;
 
-       var src = this.context.src;
 
-       var ch = src[end - 1];
 
-       while (start < end && (ch === '\n' || ch === '\t' || ch === ' ')) {
 
-         ch = src[--end - 1];
 
-       }
 
-       var str = '';
 
-       for (var i = start; i < end; ++i) {
 
-         var _ch = src[i];
 
-         if (_ch === '\n') {
 
-           var _Node$foldNewline = Node.foldNewline(src, i, -1),
 
-               fold = _Node$foldNewline.fold,
 
-               offset = _Node$foldNewline.offset;
 
-           str += fold;
 
-           i = offset;
 
-         } else if (_ch === ' ' || _ch === '\t') {
 
-           // trim trailing whitespace
 
-           var wsStart = i;
 
-           var next = src[i + 1];
 
-           while (i < end && (next === ' ' || next === '\t')) {
 
-             i += 1;
 
-             next = src[i + 1];
 
-           }
 
-           if (next !== '\n') str += i > wsStart ? src.slice(wsStart, i + 1) : _ch;
 
-         } else {
 
-           str += _ch;
 
-         }
 
-       }
 
-       var ch0 = src[start];
 
-       switch (ch0) {
 
-         case '\t':
 
-           {
 
-             var msg = 'Plain value cannot start with a tab character';
 
-             var errors = [new YAMLSemanticError(this, msg)];
 
-             return {
 
-               errors: errors,
 
-               str: str
 
-             };
 
-           }
 
-         case '@':
 
-         case '`':
 
-           {
 
-             var _msg = "Plain value cannot start with reserved character ".concat(ch0);
 
-             var _errors = [new YAMLSemanticError(this, _msg)];
 
-             return {
 
-               errors: _errors,
 
-               str: str
 
-             };
 
-           }
 
-         default:
 
-           return str;
 
-       }
 
-     }
 
-   }, {
 
-     key: "parseBlockValue",
 
-     value: function parseBlockValue(start) {
 
-       var _this$context = this.context,
 
-           indent = _this$context.indent,
 
-           inFlow = _this$context.inFlow,
 
-           src = _this$context.src;
 
-       var offset = start;
 
-       var valueEnd = start;
 
-       for (var ch = src[offset]; ch === '\n'; ch = src[offset]) {
 
-         if (Node.atDocumentBoundary(src, offset + 1)) break;
 
-         var end = Node.endOfBlockIndent(src, indent, offset + 1);
 
-         if (end === null || src[end] === '#') break;
 
-         if (src[end] === '\n') {
 
-           offset = end;
 
-         } else {
 
-           valueEnd = PlainValue.endOfLine(src, end, inFlow);
 
-           offset = valueEnd;
 
-         }
 
-       }
 
-       if (this.valueRange.isEmpty()) this.valueRange.start = start;
 
-       this.valueRange.end = valueEnd;
 
-       return valueEnd;
 
-     }
 
-     /**
 
-      * Parses a plain value from the source
 
-      *
 
-      * Accepted forms are:
 
-      * ```
 
-      * #comment
 
-      *
 
-      * first line
 
-      *
 
-      * first line #comment
 
-      *
 
-      * first line
 
-      * block
 
-      * lines
 
-      *
 
-      * #comment
 
-      * block
 
-      * lines
 
-      * ```
 
-      * where block lines are empty or have an indent level greater than `indent`.
 
-      *
 
-      * @param {ParseContext} context
 
-      * @param {number} start - Index of first character
 
-      * @returns {number} - Index of the character after this scalar, may be `\n`
 
-      */
 
-   }, {
 
-     key: "parse",
 
-     value: function parse(context, start) {
 
-       this.context = context;
 
-       var inFlow = context.inFlow,
 
-           src = context.src;
 
-       var offset = start;
 
-       var ch = src[offset];
 
-       if (ch && ch !== '#' && ch !== '\n') {
 
-         offset = PlainValue.endOfLine(src, start, inFlow);
 
-       }
 
-       this.valueRange = new Range(start, offset);
 
-       offset = Node.endOfWhiteSpace(src, offset);
 
-       offset = this.parseComment(offset);
 
-       if (!this.hasComment || this.valueRange.isEmpty()) {
 
-         offset = this.parseBlockValue(offset);
 
-       }
 
-       return offset;
 
-     }
 
-   }], [{
 
-     key: "endOfLine",
 
-     value: function endOfLine(src, start, inFlow) {
 
-       var ch = src[start];
 
-       var offset = start;
 
-       while (ch && ch !== '\n') {
 
-         if (inFlow && (ch === '[' || ch === ']' || ch === '{' || ch === '}' || ch === ',')) break;
 
-         var next = src[offset + 1];
 
-         if (ch === ':' && (!next || next === '\n' || next === '\t' || next === ' ' || inFlow && next === ',')) break;
 
-         if ((ch === ' ' || ch === '\t') && next === '#') break;
 
-         offset += 1;
 
-         ch = next;
 
-       }
 
-       return offset;
 
-     }
 
-   }]);
 
-   return PlainValue;
 
- }(Node);
 
- export { Char as C, Node as N, PlainValue as P, Range as R, Type as T, YAMLSyntaxError as Y, _createForOfIteratorHelper as _, _typeof as a, _createClass as b, _classCallCheck as c, defaultTagPrefix as d, _defineProperty as e, YAMLWarning as f, YAMLSemanticError as g, _slicedToArray as h, YAMLError as i, _inherits as j, _createSuper as k, _get as l, _getPrototypeOf as m, defaultTags as n, YAMLReferenceError as o, _assertThisInitialized as p, _toArray as q, _possibleConstructorReturn as r };
 
 
  |