"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _parse = _interopRequireDefault(require("./cst/parse")); var _Document = _interopRequireDefault(require("./Document")); var _errors = require("./errors"); var _schema = _interopRequireDefault(require("./schema")); var _warnings = require("./warnings"); var defaultOptions = { anchorPrefix: 'a', customTags: null, keepCstNodes: false, keepNodeTypes: true, keepBlobsInJSON: true, mapAsMap: false, maxAliasCount: 100, prettyErrors: false, // TODO Set true in v2 simpleKeys: false, version: '1.2' }; function createNode(value) { var wrapScalars = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; var tag = arguments.length > 2 ? arguments[2] : undefined; if (tag === undefined && typeof wrapScalars === 'string') { tag = wrapScalars; wrapScalars = true; } var options = Object.assign({}, _Document.default.defaults[defaultOptions.version], defaultOptions); var schema = new _schema.default(options); return schema.createNode(value, wrapScalars, tag); } var Document = /*#__PURE__*/ function (_YAMLDocument) { (0, _inherits2.default)(Document, _YAMLDocument); function Document(options) { (0, _classCallCheck2.default)(this, Document); return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(Document).call(this, Object.assign({}, defaultOptions, options))); } return Document; }(_Document.default); function parseAllDocuments(src, options) { var stream = []; var prev; var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = (0, _parse.default)(src)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var cstDoc = _step.value; var doc = new Document(options); doc.parse(cstDoc, prev); stream.push(doc); prev = doc; } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } return stream; } function parseDocument(src, options) { var cst = (0, _parse.default)(src); var doc = new Document(options).parse(cst[0]); if (cst.length > 1) { var errMsg = 'Source contains multiple documents; please use YAML.parseAllDocuments()'; doc.errors.unshift(new _errors.YAMLSemanticError(cst[1], errMsg)); } return doc; } function parse(src, options) { var doc = parseDocument(src, options); doc.warnings.forEach(function (warning) { return (0, _warnings.warn)(warning); }); if (doc.errors.length > 0) throw doc.errors[0]; return doc.toJSON(); } function stringify(value, options) { var doc = new Document(options); doc.contents = value; return String(doc); } var _default = { createNode: createNode, defaultOptions: defaultOptions, Document: Document, parse: parse, parseAllDocuments: parseAllDocuments, parseCST: _parse.default, parseDocument: parseDocument, stringify: stringify }; exports.default = _default;