"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _parse = _interopRequireDefault(require("./cst/parse")); var _Document = _interopRequireDefault(require("./Document")); var _errors = require("./errors"); var _schema = _interopRequireDefault(require("./schema")); var _warnings = require("./warnings"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const 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, wrapScalars = true, tag) { if (tag === undefined && typeof wrapScalars === 'string') { tag = wrapScalars; wrapScalars = true; } const options = Object.assign({}, _Document.default.defaults[defaultOptions.version], defaultOptions); const schema = new _schema.default(options); return schema.createNode(value, wrapScalars, tag); } class Document extends _Document.default { constructor(options) { super(Object.assign({}, defaultOptions, options)); } } function parseAllDocuments(src, options) { const stream = []; let prev; for (const cstDoc of (0, _parse.default)(src)) { const doc = new Document(options); doc.parse(cstDoc, prev); stream.push(doc); prev = doc; } return stream; } function parseDocument(src, options) { const cst = (0, _parse.default)(src); 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 _errors.YAMLSemanticError(cst[1], errMsg)); } return doc; } function parse(src, options) { const doc = parseDocument(src, options); doc.warnings.forEach(warning => (0, _warnings.warn)(warning)); if (doc.errors.length > 0) throw doc.errors[0]; return doc.toJSON(); } function stringify(value, options) { const doc = new Document(options); doc.contents = value; return String(doc); } var _default = { createNode, defaultOptions, Document, parse, parseAllDocuments, parseCST: _parse.default, parseDocument, stringify }; exports.default = _default;