Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/fourtyone11/origin-hugo-theme.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'assets/node_modules/yaml/dist/Document.js')
-rw-r--r--assets/node_modules/yaml/dist/Document.js710
1 files changed, 710 insertions, 0 deletions
diff --git a/assets/node_modules/yaml/dist/Document.js b/assets/node_modules/yaml/dist/Document.js
new file mode 100644
index 0000000..806b407
--- /dev/null
+++ b/assets/node_modules/yaml/dist/Document.js
@@ -0,0 +1,710 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.default = void 0;
+
+var _addComment = _interopRequireDefault(require("./addComment"));
+
+var _Anchors = _interopRequireDefault(require("./Anchors"));
+
+var _constants = require("./constants");
+
+var _errors = require("./errors");
+
+var _listTagNames = _interopRequireDefault(require("./listTagNames"));
+
+var _schema = _interopRequireDefault(require("./schema"));
+
+var _Alias = _interopRequireDefault(require("./schema/Alias"));
+
+var _Collection = _interopRequireWildcard(require("./schema/Collection"));
+
+var _Node = _interopRequireDefault(require("./schema/Node"));
+
+var _Scalar = _interopRequireDefault(require("./schema/Scalar"));
+
+var _toJSON = _interopRequireDefault(require("./toJSON"));
+
+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; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; if (obj != null) { 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; if (cache) { cache.set(obj, newObj); } return newObj; }
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+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; }
+
+const isCollectionItem = node => node && [_constants.Type.MAP_KEY, _constants.Type.MAP_VALUE, _constants.Type.SEQ_ITEM].includes(node.type);
+
+class Document {
+ constructor(options) {
+ this.anchors = new _Anchors.default(options.anchorPrefix);
+ this.commentBefore = null;
+ this.comment = null;
+ this.contents = null;
+ this.directivesEndMarker = null;
+ this.errors = [];
+ this.options = options;
+ this.schema = null;
+ this.tagPrefixes = [];
+ this.version = null;
+ this.warnings = [];
+ }
+
+ assertCollectionContents() {
+ if (this.contents instanceof _Collection.default) return true;
+ throw new Error('Expected a YAML collection as document contents');
+ }
+
+ add(value) {
+ this.assertCollectionContents();
+ return this.contents.add(value);
+ }
+
+ addIn(path, value) {
+ this.assertCollectionContents();
+ this.contents.addIn(path, value);
+ }
+
+ delete(key) {
+ this.assertCollectionContents();
+ return this.contents.delete(key);
+ }
+
+ deleteIn(path) {
+ if ((0, _Collection.isEmptyPath)(path)) {
+ if (this.contents == null) return false;
+ this.contents = null;
+ return true;
+ }
+
+ this.assertCollectionContents();
+ return this.contents.deleteIn(path);
+ }
+
+ getDefaults() {
+ return Document.defaults[this.version] || Document.defaults[this.options.version] || {};
+ }
+
+ get(key, keepScalar) {
+ return this.contents instanceof _Collection.default ? this.contents.get(key, keepScalar) : undefined;
+ }
+
+ getIn(path, keepScalar) {
+ if ((0, _Collection.isEmptyPath)(path)) return !keepScalar && this.contents instanceof _Scalar.default ? this.contents.value : this.contents;
+ return this.contents instanceof _Collection.default ? this.contents.getIn(path, keepScalar) : undefined;
+ }
+
+ has(key) {
+ return this.contents instanceof _Collection.default ? this.contents.has(key) : false;
+ }
+
+ hasIn(path) {
+ if ((0, _Collection.isEmptyPath)(path)) return this.contents !== undefined;
+ return this.contents instanceof _Collection.default ? this.contents.hasIn(path) : false;
+ }
+
+ set(key, value) {
+ this.assertCollectionContents();
+ this.contents.set(key, value);
+ }
+
+ setIn(path, value) {
+ if ((0, _Collection.isEmptyPath)(path)) this.contents = value;else {
+ this.assertCollectionContents();
+ this.contents.setIn(path, value);
+ }
+ }
+
+ setSchema(id, customTags) {
+ if (!id && !customTags && this.schema) return;
+ if (typeof id === 'number') id = id.toFixed(1);
+
+ if (id === '1.0' || id === '1.1' || id === '1.2') {
+ if (this.version) this.version = id;else this.options.version = id;
+ delete this.options.schema;
+ } else if (id && typeof id === 'string') {
+ this.options.schema = id;
+ }
+
+ if (Array.isArray(customTags)) this.options.customTags = customTags;
+ const opt = Object.assign({}, this.getDefaults(), this.options);
+ this.schema = new _schema.default(opt);
+ }
+
+ parse(node, prevDoc) {
+ if (this.options.keepCstNodes) this.cstNode = node;
+ if (this.options.keepNodeTypes) this.type = 'DOCUMENT';
+ const {
+ directives = [],
+ contents = [],
+ directivesEndMarker,
+ error,
+ valueRange
+ } = node;
+
+ if (error) {
+ if (!error.source) error.source = this;
+ this.errors.push(error);
+ }
+
+ this.parseDirectives(directives, prevDoc);
+ if (directivesEndMarker) this.directivesEndMarker = true;
+ this.range = valueRange ? [valueRange.start, valueRange.end] : null;
+ this.setSchema();
+ this.anchors._cstAliases = [];
+ this.parseContents(contents);
+ this.anchors.resolveNodes();
+
+ if (this.options.prettyErrors) {
+ for (const error of this.errors) if (error instanceof _errors.YAMLError) error.makePretty();
+
+ for (const warn of this.warnings) if (warn instanceof _errors.YAMLError) warn.makePretty();
+ }
+
+ return this;
+ }
+
+ parseDirectives(directives, prevDoc) {
+ const directiveComments = [];
+ let hasDirectives = false;
+ directives.forEach(directive => {
+ const {
+ comment,
+ name
+ } = directive;
+
+ switch (name) {
+ case 'TAG':
+ this.resolveTagDirective(directive);
+ hasDirectives = true;
+ break;
+
+ case 'YAML':
+ case 'YAML:1.0':
+ this.resolveYamlDirective(directive);
+ hasDirectives = true;
+ break;
+
+ default:
+ if (name) {
+ const msg = `YAML only supports %TAG and %YAML directives, and not %${name}`;
+ this.warnings.push(new _errors.YAMLWarning(directive, msg));
+ }
+
+ }
+
+ if (comment) directiveComments.push(comment);
+ });
+
+ if (prevDoc && !hasDirectives && '1.1' === (this.version || prevDoc.version || this.options.version)) {
+ const copyTagPrefix = ({
+ handle,
+ prefix
+ }) => ({
+ handle,
+ prefix
+ });
+
+ this.tagPrefixes = prevDoc.tagPrefixes.map(copyTagPrefix);
+ this.version = prevDoc.version;
+ }
+
+ this.commentBefore = directiveComments.join('\n') || null;
+ }
+
+ parseContents(contents) {
+ const comments = {
+ before: [],
+ after: []
+ };
+ const contentNodes = [];
+ let spaceBefore = false;
+ contents.forEach(node => {
+ if (node.valueRange) {
+ if (contentNodes.length === 1) {
+ const msg = 'Document is not valid YAML (bad indentation?)';
+ this.errors.push(new _errors.YAMLSyntaxError(node, msg));
+ }
+
+ const res = this.resolveNode(node);
+
+ if (spaceBefore) {
+ res.spaceBefore = true;
+ spaceBefore = false;
+ }
+
+ contentNodes.push(res);
+ } else if (node.comment !== null) {
+ const cc = contentNodes.length === 0 ? comments.before : comments.after;
+ cc.push(node.comment);
+ } else if (node.type === _constants.Type.BLANK_LINE) {
+ spaceBefore = true;
+
+ if (contentNodes.length === 0 && comments.before.length > 0 && !this.commentBefore) {
+ // space-separated comments at start are parsed as document comments
+ this.commentBefore = comments.before.join('\n');
+ comments.before = [];
+ }
+ }
+ });
+
+ switch (contentNodes.length) {
+ case 0:
+ this.contents = null;
+ comments.after = comments.before;
+ break;
+
+ case 1:
+ this.contents = contentNodes[0];
+
+ if (this.contents) {
+ const cb = comments.before.join('\n') || null;
+
+ if (cb) {
+ const cbNode = this.contents instanceof _Collection.default && this.contents.items[0] ? this.contents.items[0] : this.contents;
+ cbNode.commentBefore = cbNode.commentBefore ? `${cb}\n${cbNode.commentBefore}` : cb;
+ }
+ } else {
+ comments.after = comments.before.concat(comments.after);
+ }
+
+ break;
+
+ default:
+ this.contents = contentNodes;
+
+ if (this.contents[0]) {
+ this.contents[0].commentBefore = comments.before.join('\n') || null;
+ } else {
+ comments.after = comments.before.concat(comments.after);
+ }
+
+ }
+
+ this.comment = comments.after.join('\n') || null;
+ }
+
+ resolveTagDirective(directive) {
+ const [handle, prefix] = directive.parameters;
+
+ if (handle && prefix) {
+ if (this.tagPrefixes.every(p => p.handle !== handle)) {
+ this.tagPrefixes.push({
+ handle,
+ prefix
+ });
+ } else {
+ const msg = 'The %TAG directive must only be given at most once per handle in the same document.';
+ this.errors.push(new _errors.YAMLSemanticError(directive, msg));
+ }
+ } else {
+ const msg = 'Insufficient parameters given for %TAG directive';
+ this.errors.push(new _errors.YAMLSemanticError(directive, msg));
+ }
+ }
+
+ resolveYamlDirective(directive) {
+ let [version] = directive.parameters;
+ if (directive.name === 'YAML:1.0') version = '1.0';
+
+ if (this.version) {
+ const msg = 'The %YAML directive must only be given at most once per document.';
+ this.errors.push(new _errors.YAMLSemanticError(directive, msg));
+ }
+
+ if (!version) {
+ const msg = 'Insufficient parameters given for %YAML directive';
+ this.errors.push(new _errors.YAMLSemanticError(directive, msg));
+ } else {
+ if (!Document.defaults[version]) {
+ const v0 = this.version || this.options.version;
+ const msg = `Document will be parsed as YAML ${v0} rather than YAML ${version}`;
+ this.warnings.push(new _errors.YAMLWarning(directive, msg));
+ }
+
+ this.version = version;
+ }
+ }
+
+ resolveTagName(node) {
+ const {
+ tag,
+ type
+ } = node;
+ let nonSpecific = false;
+
+ if (tag) {
+ const {
+ handle,
+ suffix,
+ verbatim
+ } = tag;
+
+ if (verbatim) {
+ if (verbatim !== '!' && verbatim !== '!!') return verbatim;
+ const msg = `Verbatim tags aren't resolved, so ${verbatim} is invalid.`;
+ this.errors.push(new _errors.YAMLSemanticError(node, msg));
+ } else if (handle === '!' && !suffix) {
+ nonSpecific = true;
+ } else {
+ let prefix = this.tagPrefixes.find(p => p.handle === handle);
+
+ if (!prefix) {
+ const dtp = this.getDefaults().tagPrefixes;
+ if (dtp) prefix = dtp.find(p => p.handle === handle);
+ }
+
+ if (prefix) {
+ if (suffix) {
+ if (handle === '!' && (this.version || this.options.version) === '1.0') {
+ if (suffix[0] === '^') return suffix;
+
+ if (/[:/]/.test(suffix)) {
+ // word/foo -> tag:word.yaml.org,2002:foo
+ const vocab = suffix.match(/^([a-z0-9-]+)\/(.*)/i);
+ return vocab ? `tag:${vocab[1]}.yaml.org,2002:${vocab[2]}` : `tag:${suffix}`;
+ }
+ }
+
+ return prefix.prefix + decodeURIComponent(suffix);
+ }
+
+ this.errors.push(new _errors.YAMLSemanticError(node, `The ${handle} tag has no suffix.`));
+ } else {
+ const msg = `The ${handle} tag handle is non-default and was not declared.`;
+ this.errors.push(new _errors.YAMLSemanticError(node, msg));
+ }
+ }
+ }
+
+ switch (type) {
+ case _constants.Type.BLOCK_FOLDED:
+ case _constants.Type.BLOCK_LITERAL:
+ case _constants.Type.QUOTE_DOUBLE:
+ case _constants.Type.QUOTE_SINGLE:
+ return _schema.default.defaultTags.STR;
+
+ case _constants.Type.FLOW_MAP:
+ case _constants.Type.MAP:
+ return _schema.default.defaultTags.MAP;
+
+ case _constants.Type.FLOW_SEQ:
+ case _constants.Type.SEQ:
+ return _schema.default.defaultTags.SEQ;
+
+ case _constants.Type.PLAIN:
+ return nonSpecific ? _schema.default.defaultTags.STR : null;
+
+ default:
+ return null;
+ }
+ }
+
+ resolveNode(node) {
+ if (!node) return null;
+ const {
+ anchors,
+ errors,
+ schema
+ } = this;
+ let hasAnchor = false;
+ let hasTag = false;
+ const comments = {
+ before: [],
+ after: []
+ };
+ const props = isCollectionItem(node.context.parent) ? node.context.parent.props.concat(node.props) : node.props;
+
+ for (const {
+ start,
+ end
+ } of props) {
+ switch (node.context.src[start]) {
+ case _constants.Char.COMMENT:
+ {
+ if (!node.commentHasRequiredWhitespace(start)) {
+ const msg = 'Comments must be separated from other tokens by white space characters';
+ errors.push(new _errors.YAMLSemanticError(node, msg));
+ }
+
+ const c = node.context.src.slice(start + 1, end);
+ const {
+ header,
+ valueRange
+ } = node;
+
+ if (valueRange && (start > valueRange.start || header && start > header.start)) {
+ comments.after.push(c);
+ } else {
+ comments.before.push(c);
+ }
+ }
+ break;
+
+ case _constants.Char.ANCHOR:
+ if (hasAnchor) {
+ const msg = 'A node can have at most one anchor';
+ errors.push(new _errors.YAMLSemanticError(node, msg));
+ }
+
+ hasAnchor = true;
+ break;
+
+ case _constants.Char.TAG:
+ if (hasTag) {
+ const msg = 'A node can have at most one tag';
+ errors.push(new _errors.YAMLSemanticError(node, msg));
+ }
+
+ hasTag = true;
+ break;
+ }
+ }
+
+ if (hasAnchor) {
+ const name = node.anchor;
+ const prev = anchors.getNode(name); // At this point, aliases for any preceding node with the same anchor
+ // name have already been resolved, so it may safely be renamed.
+
+ if (prev) anchors.map[anchors.newName(name)] = prev; // During parsing, we need to store the CST node in anchors.map as
+ // anchors need to be available during resolution to allow for
+ // circular references.
+
+ anchors.map[name] = node;
+ }
+
+ let res;
+
+ if (node.type === _constants.Type.ALIAS) {
+ if (hasAnchor || hasTag) {
+ const msg = 'An alias node must not specify any properties';
+ errors.push(new _errors.YAMLSemanticError(node, msg));
+ }
+
+ const name = node.rawValue;
+ const src = anchors.getNode(name);
+
+ if (!src) {
+ const msg = `Aliased anchor not found: ${name}`;
+ errors.push(new _errors.YAMLReferenceError(node, msg));
+ return null;
+ } // Lazy resolution for circular references
+
+
+ res = new _Alias.default(src);
+
+ anchors._cstAliases.push(res);
+ } else {
+ const tagName = this.resolveTagName(node);
+
+ if (tagName) {
+ res = schema.resolveNodeWithFallback(this, node, tagName);
+ } else {
+ if (node.type !== _constants.Type.PLAIN) {
+ const msg = `Failed to resolve ${node.type} node here`;
+ errors.push(new _errors.YAMLSyntaxError(node, msg));
+ return null;
+ }
+
+ try {
+ res = schema.resolveScalar(node.strValue || '');
+ } catch (error) {
+ if (!error.source) error.source = node;
+ errors.push(error);
+ return null;
+ }
+ }
+ }
+
+ if (res) {
+ res.range = [node.range.start, node.range.end];
+ if (this.options.keepCstNodes) res.cstNode = node;
+ if (this.options.keepNodeTypes) res.type = node.type;
+ const cb = comments.before.join('\n');
+
+ if (cb) {
+ res.commentBefore = res.commentBefore ? `${res.commentBefore}\n${cb}` : cb;
+ }
+
+ const ca = comments.after.join('\n');
+ if (ca) res.comment = res.comment ? `${res.comment}\n${ca}` : ca;
+ }
+
+ return node.resolved = res;
+ }
+
+ listNonDefaultTags() {
+ return (0, _listTagNames.default)(this.contents).filter(t => t.indexOf(_schema.default.defaultPrefix) !== 0);
+ }
+
+ setTagPrefix(handle, prefix) {
+ if (handle[0] !== '!' || handle[handle.length - 1] !== '!') throw new Error('Handle must start and end with !');
+
+ if (prefix) {
+ const prev = this.tagPrefixes.find(p => p.handle === handle);
+ if (prev) prev.prefix = prefix;else this.tagPrefixes.push({
+ handle,
+ prefix
+ });
+ } else {
+ this.tagPrefixes = this.tagPrefixes.filter(p => p.handle !== handle);
+ }
+ }
+
+ stringifyTag(tag) {
+ if ((this.version || this.options.version) === '1.0') {
+ const priv = tag.match(/^tag:private\.yaml\.org,2002:([^:/]+)$/);
+ if (priv) return '!' + priv[1];
+ const vocab = tag.match(/^tag:([a-zA-Z0-9-]+)\.yaml\.org,2002:(.*)/);
+ return vocab ? `!${vocab[1]}/${vocab[2]}` : `!${tag.replace(/^tag:/, '')}`;
+ } else {
+ let p = this.tagPrefixes.find(p => tag.indexOf(p.prefix) === 0);
+
+ if (!p) {
+ const dtp = this.getDefaults().tagPrefixes;
+ p = dtp && dtp.find(p => tag.indexOf(p.prefix) === 0);
+ }
+
+ if (!p) return tag[0] === '!' ? tag : `!<${tag}>`;
+ const suffix = tag.substr(p.prefix.length).replace(/[!,[\]{}]/g, ch => ({
+ '!': '%21',
+ ',': '%2C',
+ '[': '%5B',
+ ']': '%5D',
+ '{': '%7B',
+ '}': '%7D'
+ })[ch]);
+ return p.handle + suffix;
+ }
+ }
+
+ toJSON(arg) {
+ const {
+ keepBlobsInJSON,
+ mapAsMap,
+ maxAliasCount
+ } = this.options;
+ const keep = keepBlobsInJSON && (typeof arg !== 'string' || !(this.contents instanceof _Scalar.default));
+ const ctx = {
+ doc: this,
+ keep,
+ mapAsMap: keep && !!mapAsMap,
+ maxAliasCount
+ };
+ const anchorNames = Object.keys(this.anchors.map);
+ if (anchorNames.length > 0) ctx.anchors = anchorNames.map(name => ({
+ alias: [],
+ aliasCount: 0,
+ count: 1,
+ node: this.anchors.map[name]
+ }));
+ return (0, _toJSON.default)(this.contents, arg, ctx);
+ }
+
+ toString() {
+ if (this.errors.length > 0) throw new Error('Document with errors cannot be stringified');
+ this.setSchema();
+ const lines = [];
+ let hasDirectives = false;
+
+ if (this.version) {
+ let vd = '%YAML 1.2';
+
+ if (this.schema.name === 'yaml-1.1') {
+ if (this.version === '1.0') vd = '%YAML:1.0';else if (this.version === '1.1') vd = '%YAML 1.1';
+ }
+
+ lines.push(vd);
+ hasDirectives = true;
+ }
+
+ const tagNames = this.listNonDefaultTags();
+ this.tagPrefixes.forEach(({
+ handle,
+ prefix
+ }) => {
+ if (tagNames.some(t => t.indexOf(prefix) === 0)) {
+ lines.push(`%TAG ${handle} ${prefix}`);
+ hasDirectives = true;
+ }
+ });
+ if (hasDirectives || this.directivesEndMarker) lines.push('---');
+
+ if (this.commentBefore) {
+ if (hasDirectives || !this.directivesEndMarker) lines.unshift('');
+ lines.unshift(this.commentBefore.replace(/^/gm, '#'));
+ }
+
+ const ctx = {
+ anchors: {},
+ doc: this,
+ indent: ''
+ };
+ let chompKeep = false;
+ let contentComment = null;
+
+ if (this.contents) {
+ if (this.contents instanceof _Node.default) {
+ 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
+
+ ctx.forceBlockIndent = !!this.comment;
+ contentComment = this.contents.comment;
+ }
+
+ const onChompKeep = contentComment ? null : () => chompKeep = true;
+ const body = this.schema.stringify(this.contents, ctx, () => contentComment = null, onChompKeep);
+ lines.push((0, _addComment.default)(body, '', contentComment));
+ } else if (this.contents !== undefined) {
+ lines.push(this.schema.stringify(this.contents, ctx));
+ }
+
+ if (this.comment) {
+ if ((!chompKeep || contentComment) && lines[lines.length - 1] !== '') lines.push('');
+ lines.push(this.comment.replace(/^/gm, '#'));
+ }
+
+ return lines.join('\n') + '\n';
+ }
+
+}
+
+exports.default = Document;
+
+_defineProperty(Document, "defaults", {
+ '1.0': {
+ schema: 'yaml-1.1',
+ merge: true,
+ tagPrefixes: [{
+ handle: '!',
+ prefix: _schema.default.defaultPrefix
+ }, {
+ handle: '!!',
+ prefix: 'tag:private.yaml.org,2002:'
+ }]
+ },
+ '1.1': {
+ schema: 'yaml-1.1',
+ merge: true,
+ tagPrefixes: [{
+ handle: '!',
+ prefix: '!'
+ }, {
+ handle: '!!',
+ prefix: _schema.default.defaultPrefix
+ }]
+ },
+ '1.2': {
+ schema: 'core',
+ merge: false,
+ tagPrefixes: [{
+ handle: '!',
+ prefix: '!'
+ }, {
+ handle: '!!',
+ prefix: _schema.default.defaultPrefix
+ }]
+ }
+}); \ No newline at end of file