@swagger-api/apidom-ast 0.68.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/CHANGELOG.md +352 -0
  2. package/LICENSES/Apache-2.0.txt +202 -0
  3. package/LICENSES/MIT.txt +9 -0
  4. package/NOTICE +57 -0
  5. package/README.md +98 -0
  6. package/cjs/Error.cjs +25 -0
  7. package/cjs/Literal.cjs +22 -0
  8. package/cjs/Node.cjs +46 -0
  9. package/cjs/ParseResult.cjs +22 -0
  10. package/cjs/Position.cjs +46 -0
  11. package/cjs/index.cjs +113 -0
  12. package/cjs/json/nodes/JsonArray.cjs +21 -0
  13. package/cjs/json/nodes/JsonDocument.cjs +22 -0
  14. package/cjs/json/nodes/JsonEscapeSequence.cjs +14 -0
  15. package/cjs/json/nodes/JsonFalse.cjs +14 -0
  16. package/cjs/json/nodes/JsonKey.cjs +14 -0
  17. package/cjs/json/nodes/JsonNode.cjs +10 -0
  18. package/cjs/json/nodes/JsonNull.cjs +14 -0
  19. package/cjs/json/nodes/JsonNumber.cjs +14 -0
  20. package/cjs/json/nodes/JsonObject.cjs +21 -0
  21. package/cjs/json/nodes/JsonProperty.cjs +27 -0
  22. package/cjs/json/nodes/JsonString.cjs +27 -0
  23. package/cjs/json/nodes/JsonStringContent.cjs +14 -0
  24. package/cjs/json/nodes/JsonTrue.cjs +14 -0
  25. package/cjs/json/nodes/JsonValue.cjs +22 -0
  26. package/cjs/json/nodes/predicates.cjs +29 -0
  27. package/cjs/predicates.cjs +14 -0
  28. package/cjs/traversal/visitor.cjs +493 -0
  29. package/cjs/yaml/nodes/YamlAlias.cjs +22 -0
  30. package/cjs/yaml/nodes/YamlAnchor.cjs +22 -0
  31. package/cjs/yaml/nodes/YamlCollection.cjs +10 -0
  32. package/cjs/yaml/nodes/YamlComment.cjs +22 -0
  33. package/cjs/yaml/nodes/YamlDirective.cjs +30 -0
  34. package/cjs/yaml/nodes/YamlDocument.cjs +14 -0
  35. package/cjs/yaml/nodes/YamlKeyValuePair.cjs +40 -0
  36. package/cjs/yaml/nodes/YamlMapping.cjs +24 -0
  37. package/cjs/yaml/nodes/YamlNode.cjs +28 -0
  38. package/cjs/yaml/nodes/YamlScalar.cjs +22 -0
  39. package/cjs/yaml/nodes/YamlSequence.cjs +27 -0
  40. package/cjs/yaml/nodes/YamlStream.cjs +26 -0
  41. package/cjs/yaml/nodes/YamlStyle.cjs +33 -0
  42. package/cjs/yaml/nodes/YamlTag.cjs +32 -0
  43. package/cjs/yaml/nodes/predicates.cjs +25 -0
  44. package/cjs/yaml/schemas/ScalarTag.cjs +43 -0
  45. package/cjs/yaml/schemas/Tag.cjs +14 -0
  46. package/cjs/yaml/schemas/canonical-format.cjs +129 -0
  47. package/cjs/yaml/schemas/failsafe/GenericMapping.cjs +29 -0
  48. package/cjs/yaml/schemas/failsafe/GenericSequence.cjs +29 -0
  49. package/cjs/yaml/schemas/failsafe/GenericString.cjs +24 -0
  50. package/cjs/yaml/schemas/failsafe/index.cjs +96 -0
  51. package/cjs/yaml/schemas/json/Boolean.cjs +30 -0
  52. package/cjs/yaml/schemas/json/FloatingPoint.cjs +30 -0
  53. package/cjs/yaml/schemas/json/Integer.cjs +30 -0
  54. package/cjs/yaml/schemas/json/Null.cjs +29 -0
  55. package/cjs/yaml/schemas/json/index.cjs +47 -0
  56. package/dist/apidom-ast.browser.js +21212 -0
  57. package/dist/apidom-ast.browser.min.js +2 -0
  58. package/dist/apidom-ast.browser.min.js.LICENSE.txt +6 -0
  59. package/es/Error.js +19 -0
  60. package/es/Literal.js +16 -0
  61. package/es/Node.js +40 -0
  62. package/es/ParseResult.js +16 -0
  63. package/es/Position.js +39 -0
  64. package/es/index.js +39 -0
  65. package/es/json/nodes/JsonArray.js +15 -0
  66. package/es/json/nodes/JsonDocument.js +16 -0
  67. package/es/json/nodes/JsonEscapeSequence.js +8 -0
  68. package/es/json/nodes/JsonFalse.js +8 -0
  69. package/es/json/nodes/JsonKey.js +8 -0
  70. package/es/json/nodes/JsonNode.js +4 -0
  71. package/es/json/nodes/JsonNull.js +8 -0
  72. package/es/json/nodes/JsonNumber.js +8 -0
  73. package/es/json/nodes/JsonObject.js +15 -0
  74. package/es/json/nodes/JsonProperty.js +21 -0
  75. package/es/json/nodes/JsonString.js +21 -0
  76. package/es/json/nodes/JsonStringContent.js +8 -0
  77. package/es/json/nodes/JsonTrue.js +8 -0
  78. package/es/json/nodes/JsonValue.js +16 -0
  79. package/es/json/nodes/predicates.js +13 -0
  80. package/es/predicates.js +5 -0
  81. package/es/traversal/visitor.js +483 -0
  82. package/es/yaml/nodes/YamlAlias.js +16 -0
  83. package/es/yaml/nodes/YamlAnchor.js +16 -0
  84. package/es/yaml/nodes/YamlCollection.js +4 -0
  85. package/es/yaml/nodes/YamlComment.js +16 -0
  86. package/es/yaml/nodes/YamlDirective.js +24 -0
  87. package/es/yaml/nodes/YamlDocument.js +8 -0
  88. package/es/yaml/nodes/YamlKeyValuePair.js +34 -0
  89. package/es/yaml/nodes/YamlMapping.js +18 -0
  90. package/es/yaml/nodes/YamlNode.js +22 -0
  91. package/es/yaml/nodes/YamlScalar.js +16 -0
  92. package/es/yaml/nodes/YamlSequence.js +21 -0
  93. package/es/yaml/nodes/YamlStream.js +20 -0
  94. package/es/yaml/nodes/YamlStyle.js +25 -0
  95. package/es/yaml/nodes/YamlTag.js +25 -0
  96. package/es/yaml/nodes/predicates.js +11 -0
  97. package/es/yaml/schemas/ScalarTag.js +37 -0
  98. package/es/yaml/schemas/Tag.js +8 -0
  99. package/es/yaml/schemas/canonical-format.js +122 -0
  100. package/es/yaml/schemas/failsafe/GenericMapping.js +23 -0
  101. package/es/yaml/schemas/failsafe/GenericSequence.js +23 -0
  102. package/es/yaml/schemas/failsafe/GenericString.js +18 -0
  103. package/es/yaml/schemas/failsafe/index.js +90 -0
  104. package/es/yaml/schemas/json/Boolean.js +24 -0
  105. package/es/yaml/schemas/json/FloatingPoint.js +24 -0
  106. package/es/yaml/schemas/json/Integer.js +24 -0
  107. package/es/yaml/schemas/json/Null.js +23 -0
  108. package/es/yaml/schemas/json/index.js +41 -0
  109. package/package.json +62 -0
  110. package/types/dist.d.ts +362 -0
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _stampit = _interopRequireDefault(require("stampit"));
7
+ var _YamlCollection = _interopRequireDefault(require("./YamlCollection.cjs"));
8
+ var _predicates = require("./predicates.cjs");
9
+ const YamlMapping = (0, _stampit.default)(_YamlCollection.default, {
10
+ statics: {
11
+ type: 'mapping'
12
+ },
13
+ propertyDescriptors: {
14
+ content: {
15
+ get() {
16
+ // @ts-ignore
17
+ return Array.isArray(this.children) ? this.children.filter(_predicates.isKeyValuePair) : [];
18
+ },
19
+ enumerable: true
20
+ }
21
+ }
22
+ });
23
+ var _default = YamlMapping;
24
+ exports.default = _default;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _stampit = _interopRequireDefault(require("stampit"));
7
+ var _Node = _interopRequireDefault(require("../../Node.cjs"));
8
+ const YamlNode = (0, _stampit.default)(_Node.default, {
9
+ props: {
10
+ anchor: null,
11
+ tag: null,
12
+ style: null,
13
+ styleGroup: null
14
+ },
15
+ init({
16
+ anchor = null,
17
+ tag = null,
18
+ style = null,
19
+ styleGroup = null
20
+ } = {}) {
21
+ this.anchor = anchor;
22
+ this.tag = tag;
23
+ this.style = style;
24
+ this.styleGroup = styleGroup;
25
+ }
26
+ });
27
+ var _default = YamlNode;
28
+ exports.default = _default;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _stampit = _interopRequireDefault(require("stampit"));
7
+ var _YamlNode = _interopRequireDefault(require("./YamlNode.cjs"));
8
+ const YamlScalar = (0, _stampit.default)(_YamlNode.default, {
9
+ statics: {
10
+ type: 'scalar'
11
+ },
12
+ props: {
13
+ content: ''
14
+ },
15
+ init({
16
+ content
17
+ } = {}) {
18
+ this.content = content;
19
+ }
20
+ });
21
+ var _default = YamlScalar;
22
+ exports.default = _default;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _stampit = _interopRequireDefault(require("stampit"));
7
+ var _YamlCollection = _interopRequireDefault(require("./YamlCollection.cjs"));
8
+ var _predicates = require("./predicates.cjs");
9
+ const YamlSequence = (0, _stampit.default)(_YamlCollection.default, {
10
+ statics: {
11
+ type: 'sequence'
12
+ },
13
+ propertyDescriptors: {
14
+ content: {
15
+ get() {
16
+ // @ts-ignore
17
+ const {
18
+ children
19
+ } = this;
20
+ return Array.isArray(children) ? children.filter(node => (0, _predicates.isSequence)(node) || (0, _predicates.isMapping)(node) || (0, _predicates.isScalar)(node) || (0, _predicates.isAlias)(node)) : [];
21
+ },
22
+ enumerable: true
23
+ }
24
+ }
25
+ });
26
+ var _default = YamlSequence;
27
+ exports.default = _default;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _stampit = _interopRequireDefault(require("stampit"));
7
+ var _Node = _interopRequireDefault(require("../../Node.cjs"));
8
+ var _predicates = require("./predicates.cjs");
9
+ const YamlStream = (0, _stampit.default)(_Node.default, {
10
+ statics: {
11
+ type: 'stream'
12
+ },
13
+ propertyDescriptors: {
14
+ content: {
15
+ get() {
16
+ // @ts-ignore
17
+ return Array.isArray(this.children) ?
18
+ // @ts-ignore
19
+ this.children.filter(node => (0, _predicates.isDocument)(node) || (0, _predicates.isComment)(node)) : [];
20
+ },
21
+ enumerable: true
22
+ }
23
+ }
24
+ });
25
+ var _default = YamlStream;
26
+ exports.default = _default;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.default = exports.YamlStyleGroup = exports.YamlStyle = void 0;
6
+ var _stampit = _interopRequireDefault(require("stampit"));
7
+ let YamlStyle;
8
+ exports.YamlStyle = YamlStyle;
9
+ (function (YamlStyle) {
10
+ YamlStyle["Plain"] = "Plain";
11
+ YamlStyle["SingleQuoted"] = "SingleQuoted";
12
+ YamlStyle["DoubleQuoted"] = "DoubleQuoted";
13
+ YamlStyle["Literal"] = "Literal";
14
+ YamlStyle["Folded"] = "Folded";
15
+ YamlStyle["Explicit"] = "Explicit";
16
+ YamlStyle["SinglePair"] = "SinglePair";
17
+ YamlStyle["NextLine"] = "NextLine";
18
+ YamlStyle["InLine"] = "InLine";
19
+ })(YamlStyle || (exports.YamlStyle = YamlStyle = {}));
20
+ let YamlStyleGroup;
21
+ exports.YamlStyleGroup = YamlStyleGroup;
22
+ (function (YamlStyleGroup) {
23
+ YamlStyleGroup["Flow"] = "Flow";
24
+ YamlStyleGroup["Block"] = "Block";
25
+ })(YamlStyleGroup || (exports.YamlStyleGroup = YamlStyleGroup = {}));
26
+ const YamlStyleModel = (0, _stampit.default)({
27
+ props: {
28
+ styleGroup: null,
29
+ style: null
30
+ }
31
+ });
32
+ var _default = YamlStyleModel;
33
+ exports.default = _default;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.default = exports.YamlNodeKind = void 0;
6
+ var _stampit = _interopRequireDefault(require("stampit"));
7
+ var _Node = _interopRequireDefault(require("../../Node.cjs"));
8
+ let YamlNodeKind;
9
+ exports.YamlNodeKind = YamlNodeKind;
10
+ (function (YamlNodeKind) {
11
+ YamlNodeKind["Scalar"] = "Scalar";
12
+ YamlNodeKind["Sequence"] = "Sequence";
13
+ YamlNodeKind["Mapping"] = "Mapping";
14
+ })(YamlNodeKind || (exports.YamlNodeKind = YamlNodeKind = {}));
15
+ const YamlTag = (0, _stampit.default)(_Node.default, {
16
+ statics: {
17
+ type: 'tag'
18
+ },
19
+ props: {
20
+ explicitName: '',
21
+ kind: null
22
+ },
23
+ init({
24
+ explicitName,
25
+ kind
26
+ } = {}) {
27
+ this.explicitName = explicitName;
28
+ this.kind = kind;
29
+ }
30
+ });
31
+ var _default = YamlTag;
32
+ exports.default = _default;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.isTag = exports.isStream = exports.isSequence = exports.isScalar = exports.isMapping = exports.isKeyValuePair = exports.isDocument = exports.isDirective = exports.isComment = exports.isAlias = void 0;
5
+ var _predicates = require("../../predicates.cjs");
6
+ const isStream = _predicates.isNodeType.bind(undefined, 'stream');
7
+ exports.isStream = isStream;
8
+ const isDocument = _predicates.isNodeType.bind(undefined, 'document');
9
+ exports.isDocument = isDocument;
10
+ const isMapping = _predicates.isNodeType.bind(undefined, 'mapping');
11
+ exports.isMapping = isMapping;
12
+ const isSequence = _predicates.isNodeType.bind(undefined, 'sequence');
13
+ exports.isSequence = isSequence;
14
+ const isKeyValuePair = _predicates.isNodeType.bind(undefined, 'keyValuePair');
15
+ exports.isKeyValuePair = isKeyValuePair;
16
+ const isTag = _predicates.isNodeType.bind(undefined, 'tag');
17
+ exports.isTag = isTag;
18
+ const isScalar = _predicates.isNodeType.bind(undefined, 'scalar');
19
+ exports.isScalar = isScalar;
20
+ const isAlias = _predicates.isNodeType.bind(undefined, 'alias');
21
+ exports.isAlias = isAlias;
22
+ const isDirective = _predicates.isNodeType.bind(undefined, 'directive');
23
+ exports.isDirective = isDirective;
24
+ const isComment = _predicates.isNodeType.bind(undefined, 'comment');
25
+ exports.isComment = isComment;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _stampit = _interopRequireDefault(require("stampit"));
7
+ var _canonicalFormat = require("./canonical-format.cjs");
8
+ var _YamlStyle = require("../nodes/YamlStyle.cjs");
9
+ var _YamlTag = require("../nodes/YamlTag.cjs");
10
+ const ScalarTag = (0, _stampit.default)({
11
+ methods: {
12
+ test(node) {
13
+ return node.tag.kind === _YamlTag.YamlNodeKind.Scalar && typeof node.content === 'string';
14
+ },
15
+ canonicalFormat(node) {
16
+ let canonicalForm = node.content;
17
+ const nodeClone = node.clone();
18
+ if (node.style === _YamlStyle.YamlStyle.Plain) {
19
+ // @ts-ignore
20
+ canonicalForm = (0, _canonicalFormat.formatFlowPlain)(node.content);
21
+ } else if (node.style === _YamlStyle.YamlStyle.SingleQuoted) {
22
+ // @ts-ignore
23
+ canonicalForm = (0, _canonicalFormat.formatFlowSingleQuoted)(node.content);
24
+ } else if (node.style === _YamlStyle.YamlStyle.DoubleQuoted) {
25
+ // @ts-ignore
26
+ canonicalForm = (0, _canonicalFormat.formatFlowDoubleQuoted)(node.content);
27
+ } else if (node.style === _YamlStyle.YamlStyle.Literal) {
28
+ // @ts-ignore
29
+ canonicalForm = (0, _canonicalFormat.formatBlockLiteral)(node.content);
30
+ } else if (node.style === _YamlStyle.YamlStyle.Folded) {
31
+ // @ts-ignore
32
+ canonicalForm = (0, _canonicalFormat.formatBlockFolded)(node.content);
33
+ }
34
+ nodeClone.content = canonicalForm;
35
+ return nodeClone;
36
+ },
37
+ resolve(node) {
38
+ return node;
39
+ }
40
+ }
41
+ });
42
+ var _default = ScalarTag;
43
+ exports.default = _default;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _stampit = _interopRequireDefault(require("stampit"));
7
+ var _ScalarTag = _interopRequireDefault(require("./ScalarTag.cjs"));
8
+ const Tag = (0, _stampit.default)(_ScalarTag.default, {
9
+ props: {
10
+ tag: ''
11
+ }
12
+ });
13
+ var _default = Tag;
14
+ exports.default = _default;
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.formatFlowSingleQuoted = exports.formatFlowPlain = exports.formatFlowDoubleQuoted = exports.formatBlockLiteral = exports.formatBlockFolded = void 0;
5
+ var _ramda = require("ramda");
6
+ var _ramdaAdjunct = require("ramda-adjunct");
7
+ var _unraw = require("unraw");
8
+ /**
9
+ * Helpers.
10
+ */
11
+
12
+ const blockStyleRegExp = /^(?<style>[|>])(?<chomping>[+-]?)(?<indentation>[0-9]*)\s/;
13
+ const getIndentationIndicator = content => {
14
+ const matches = content.match(blockStyleRegExp);
15
+ const indicator = (0, _ramda.pathOr)('', ['groups', 'indentation'], matches);
16
+ return (0, _ramdaAdjunct.isEmptyString)(indicator) ? undefined : parseInt(indicator, 10);
17
+ };
18
+ const getIndentation = content => {
19
+ const explicitIndentationIndicator = getIndentationIndicator(content);
20
+
21
+ // we have explicit indentation indicator
22
+ if ((0, _ramdaAdjunct.isInteger)(explicitIndentationIndicator)) {
23
+ return (0, _ramdaAdjunct.repeatStr)(' ', explicitIndentationIndicator);
24
+ }
25
+
26
+ // we assume indentation indicator from first line
27
+ const firstLine = (0, _ramda.pathOr)('', [1], content.split('\n'));
28
+ const implicitIndentationIndicator = (0, _ramda.pathOr)(0, ['groups', 'indentation', 'length'], firstLine.match(/^(?<indentation>[ ]*)/));
29
+ return (0, _ramdaAdjunct.repeatStr)(' ', implicitIndentationIndicator);
30
+ };
31
+ const getChompingIndicator = content => {
32
+ const matches = content.match(blockStyleRegExp);
33
+ const indicator = (0, _ramda.pathOr)('', ['groups', 'chomping'], matches);
34
+ return (0, _ramdaAdjunct.isEmptyString)(indicator) ? undefined : indicator;
35
+ };
36
+ const chomp = (indicator, content) => {
37
+ // clip (single newline at end)
38
+ if ((0, _ramdaAdjunct.isUndefined)(indicator)) {
39
+ return `${(0, _ramdaAdjunct.trimEnd)(content)}\n`;
40
+ }
41
+ // strip (no newline at end)
42
+ if (indicator === '-') {
43
+ return (0, _ramdaAdjunct.trimEnd)(content);
44
+ }
45
+ // keep (all newlines from end)
46
+ if (indicator === '+') {
47
+ return content;
48
+ }
49
+ return content;
50
+ };
51
+
52
+ /**
53
+ * Normalizes lines breaks.
54
+ * https://yaml.org/spec/1.2/spec.html#line%20break/normalization/
55
+ */
56
+ // @ts-ignore
57
+ const normalizeLineBreaks = val => val.replace(/\r\n/g, '\n');
58
+
59
+ // prevent escaped line breaks from being converted to a space
60
+ const preventLineBreakCollapseToSpace = val => val.replace(/\\\n\s*/g, '');
61
+
62
+ // collapse line breaks into spaces
63
+ const collapseLineBreakToSpace = val => {
64
+ /**
65
+ * Safari doesn't support negative lookbehind, thus we use mimicking technique:
66
+ *
67
+ * - https://blog.stevenlevithan.com/archives/mimic-lookbehind-javascript
68
+ *
69
+ * Ideally we want to use following replace, but that's not currently possible:
70
+ *
71
+ * .replace(/[^\n]\n([^\n]+)/g, (match: string, p1: string) => ` ${p1.trimLeft()}`)
72
+ */
73
+ return val.replace(/(\n)?\n([^\n]+)/g, (match, p1, p2) => p1 ? match : ` ${p2.trimStart()}`).replace(/[\n]{2}/g, '\n');
74
+ };
75
+ const removeQuotes = (0, _ramda.curry)((quoteType, val) => val.replace(new RegExp(`^${quoteType}`), '').replace(new RegExp(`${quoteType}$`), ''));
76
+
77
+ /**
78
+ * Formats Flow Scalar Plain style.
79
+ * https://yaml.org/spec/1.2/spec.html#id2788859
80
+ */
81
+ const formatFlowPlain = (0, _ramda.pipe)(normalizeLineBreaks, _ramda.trim, collapseLineBreakToSpace, (0, _ramda.split)('\n'), (0, _ramda.map)(_ramdaAdjunct.trimStart), (0, _ramda.join)('\n'));
82
+
83
+ /**
84
+ * Formats Flow Scalar Single-Quoted style.
85
+ * https://yaml.org/spec/1.2/spec.html#id2788097
86
+ */
87
+ exports.formatFlowPlain = formatFlowPlain;
88
+ const formatFlowSingleQuoted = (0, _ramda.pipe)(normalizeLineBreaks, _ramda.trim, removeQuotes("'"), collapseLineBreakToSpace, (0, _ramda.split)('\n'), (0, _ramda.map)(_ramdaAdjunct.trimStart), (0, _ramda.join)('\n'));
89
+
90
+ /**
91
+ * Formats Flow Scalar Double-Quoted style.
92
+ * https://yaml.org/spec/1.2/spec.html#id2787109
93
+ */
94
+ exports.formatFlowSingleQuoted = formatFlowSingleQuoted;
95
+ const formatFlowDoubleQuoted = (0, _ramda.pipe)(normalizeLineBreaks, _ramda.trim, removeQuotes('"'), preventLineBreakCollapseToSpace, collapseLineBreakToSpace, _unraw.unraw, (0, _ramda.split)('\n'), (0, _ramda.map)(_ramdaAdjunct.trimStart), (0, _ramda.join)('\n'));
96
+
97
+ /**
98
+ * Formats Block Scalar Literal style.
99
+ * https://yaml.org/spec/1.2/spec.html#id2795688
100
+ */
101
+ exports.formatFlowDoubleQuoted = formatFlowDoubleQuoted;
102
+ const formatBlockLiteral = content => {
103
+ const indentation = getIndentation(content);
104
+ const chompingIndicator = getChompingIndicator(content);
105
+ const normalized = normalizeLineBreaks(content);
106
+ const lines = (0, _ramda.tail)(normalized.split('\n')); // first line only contains indicators
107
+ const transducer = (0, _ramda.compose)((0, _ramda.map)((0, _ramdaAdjunct.trimCharsStart)(indentation)), (0, _ramda.map)((0, _ramdaAdjunct.concatRight)('\n')));
108
+ // @ts-ignore
109
+ const deindented = (0, _ramda.transduce)(transducer, _ramda.concat, '', lines);
110
+ return chomp(chompingIndicator, deindented);
111
+ };
112
+
113
+ /**
114
+ * Formats BLock Scalar Folded style.
115
+ * https://yaml.org/spec/1.2/spec.html#id2796251
116
+ */
117
+ exports.formatBlockLiteral = formatBlockLiteral;
118
+ const formatBlockFolded = content => {
119
+ const indentation = getIndentation(content);
120
+ const chompingIndicator = getChompingIndicator(content);
121
+ const normalized = normalizeLineBreaks(content);
122
+ const lines = (0, _ramda.tail)(normalized.split('\n')); // first line only contains indicators
123
+ const transducer = (0, _ramda.compose)((0, _ramda.map)((0, _ramdaAdjunct.trimCharsStart)(indentation)), (0, _ramda.map)((0, _ramdaAdjunct.concatRight)('\n')));
124
+ // @ts-ignore
125
+ const deindented = (0, _ramda.transduce)(transducer, _ramda.concat, '', lines);
126
+ const collapsed = collapseLineBreakToSpace(deindented);
127
+ return chomp(chompingIndicator, collapsed);
128
+ };
129
+ exports.formatBlockFolded = formatBlockFolded;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _stampit = _interopRequireDefault(require("stampit"));
7
+ var _Tag = _interopRequireDefault(require("../Tag.cjs"));
8
+ var _YamlTag = require("../../nodes/YamlTag.cjs");
9
+ const GenericMapping = (0, _stampit.default)(_Tag.default, {
10
+ statics: {
11
+ uri: 'tag:yaml.org,2002:map'
12
+ },
13
+ init(args, {
14
+ stamp
15
+ }) {
16
+ this.tag = stamp.uri;
17
+ },
18
+ methods: {
19
+ test(node) {
20
+ // @ts-ignore
21
+ return node.tag.kind === _YamlTag.YamlNodeKind.Mapping;
22
+ },
23
+ resolve(node) {
24
+ return node;
25
+ }
26
+ }
27
+ });
28
+ var _default = GenericMapping;
29
+ exports.default = _default;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _stampit = _interopRequireDefault(require("stampit"));
7
+ var _Tag = _interopRequireDefault(require("../Tag.cjs"));
8
+ var _YamlTag = require("../../nodes/YamlTag.cjs");
9
+ const GenericSequence = (0, _stampit.default)(_Tag.default, {
10
+ statics: {
11
+ uri: 'tag:yaml.org,2002:seq'
12
+ },
13
+ init(args, {
14
+ stamp
15
+ }) {
16
+ this.tag = stamp.uri;
17
+ },
18
+ methods: {
19
+ test(node) {
20
+ // @ts-ignore
21
+ return node.tag.kind === _YamlTag.YamlNodeKind.Sequence;
22
+ },
23
+ resolve(node) {
24
+ return node;
25
+ }
26
+ }
27
+ });
28
+ var _default = GenericSequence;
29
+ exports.default = _default;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _stampit = _interopRequireDefault(require("stampit"));
7
+ var _Tag = _interopRequireDefault(require("../Tag.cjs"));
8
+ const GenericString = (0, _stampit.default)(_Tag.default, {
9
+ statics: {
10
+ uri: 'tag:yaml.org,2002:str'
11
+ },
12
+ init(args, {
13
+ stamp
14
+ }) {
15
+ this.tag = stamp.uri;
16
+ },
17
+ methods: {
18
+ resolve(node) {
19
+ return node;
20
+ }
21
+ }
22
+ });
23
+ var _default = GenericString;
24
+ exports.default = _default;
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _stampit = _interopRequireDefault(require("stampit"));
7
+ var _YamlTag = require("../../nodes/YamlTag.cjs");
8
+ var _GenericMapping = _interopRequireDefault(require("./GenericMapping.cjs"));
9
+ var _GenericSequence = _interopRequireDefault(require("./GenericSequence.cjs"));
10
+ var _GenericString = _interopRequireDefault(require("./GenericString.cjs"));
11
+ var _ScalarTag = _interopRequireDefault(require("../ScalarTag.cjs"));
12
+ const FailsafeSchema = (0, _stampit.default)({
13
+ props: {
14
+ tags: [],
15
+ tagDirectives: []
16
+ },
17
+ init() {
18
+ this.tags = [];
19
+ this.tagDirectives = [];
20
+ this.registerTag((0, _GenericMapping.default)());
21
+ this.registerTag((0, _GenericSequence.default)());
22
+ this.registerTag((0, _GenericString.default)());
23
+ },
24
+ methods: {
25
+ toSpecificTagName(node) {
26
+ let specificTagName = node.tag.explicitName;
27
+ if (node.tag.explicitName === '!') {
28
+ // non-specific tag; we assume tag by kind
29
+ if (node.tag.kind === _YamlTag.YamlNodeKind.Scalar) {
30
+ // @ts-ignore
31
+ specificTagName = _GenericString.default.uri;
32
+ } else if (node.tag.kind === _YamlTag.YamlNodeKind.Sequence) {
33
+ // @ts-ignore
34
+ specificTagName = _GenericSequence.default.uri;
35
+ } else if (node.tag.kind === _YamlTag.YamlNodeKind.Mapping) {
36
+ // @ts-ignore
37
+ specificTagName = _GenericMapping.default.uri;
38
+ }
39
+ } else if (node.tag.explicitName.startsWith('!<')) {
40
+ // verbatim form
41
+ specificTagName = node.tag.explicitName.replace(/^!</, '').replace(/>$/, '');
42
+ } else if (node.tag.explicitName.startsWith('!!')) {
43
+ // shorthand notation
44
+ specificTagName = `tag:yaml.org,2002:${node.tag.explicitName.replace(/^!!/, '')}`;
45
+ }
46
+ return specificTagName;
47
+ },
48
+ registerTagDirective(tagDirective) {
49
+ this.tagDirectives.push({
50
+ handle: tagDirective.parameters.handle,
51
+ prefix: tagDirective.parameters.prefix
52
+ });
53
+ },
54
+ registerTag(tag, beginning = false) {
55
+ if (beginning) {
56
+ this.tags.unshift(tag);
57
+ } else {
58
+ this.tags.push(tag);
59
+ }
60
+ return this;
61
+ },
62
+ overrideTag(tag) {
63
+ this.tags = this.tags.filter(itag => itag.tag === tag.tag);
64
+ this.tags.push(tag);
65
+ return this;
66
+ },
67
+ resolve(node) {
68
+ const specificTagName = this.toSpecificTagName(node);
69
+
70
+ // leave this node unresolved
71
+ if (specificTagName === '?') {
72
+ return node;
73
+ }
74
+
75
+ // turn scalar nodes into canonical format before resolving
76
+ let canonicalNode = node;
77
+ if (node.tag.kind === _YamlTag.YamlNodeKind.Scalar) {
78
+ canonicalNode = (0, _ScalarTag.default)().canonicalFormat(node);
79
+ }
80
+ const tag = this.tags.find(itag => (itag === null || itag === void 0 ? void 0 : itag.tag) === specificTagName);
81
+
82
+ // mechanism for resolving node (tag implementation) not found
83
+ if (typeof tag === 'undefined') {
84
+ throw new Error(`Tag "${specificTagName}" couldn't be resolved`);
85
+ }
86
+
87
+ // node content is not compatible with resolving mechanism (tag implementation)
88
+ if (!tag.test(canonicalNode)) {
89
+ throw new Error(`Node couldn't be resolved against tag "${specificTagName}"`);
90
+ }
91
+ return tag.resolve(canonicalNode);
92
+ }
93
+ }
94
+ });
95
+ var _default = FailsafeSchema;
96
+ exports.default = _default;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _stampit = _interopRequireDefault(require("stampit"));
7
+ var _Tag = _interopRequireDefault(require("../Tag.cjs"));
8
+ const Boolean = (0, _stampit.default)(_Tag.default, {
9
+ statics: {
10
+ uri: 'tag:yaml.org,2002:bool'
11
+ },
12
+ init(args, {
13
+ stamp
14
+ }) {
15
+ this.tag = stamp.uri;
16
+ },
17
+ methods: {
18
+ test(node) {
19
+ return /^(true|false)$/.test(node.content);
20
+ },
21
+ resolve(node) {
22
+ const content = node.content === 'true';
23
+ const nodeClone = node.clone();
24
+ nodeClone.content = content;
25
+ return nodeClone;
26
+ }
27
+ }
28
+ });
29
+ var _default = Boolean;
30
+ exports.default = _default;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _stampit = _interopRequireDefault(require("stampit"));
7
+ var _Tag = _interopRequireDefault(require("../Tag.cjs"));
8
+ const FloatingPoint = (0, _stampit.default)(_Tag.default, {
9
+ statics: {
10
+ uri: 'tag:yaml.org,2002:float'
11
+ },
12
+ init(args, {
13
+ stamp
14
+ }) {
15
+ this.tag = stamp.uri;
16
+ },
17
+ methods: {
18
+ test(node) {
19
+ return /^-?(0|[1-9][0-9]*)(\.[0-9]*)?([eE][-+]?[0-9]+)?$/.test(node.content);
20
+ },
21
+ resolve(node) {
22
+ const content = parseFloat(node.content);
23
+ const nodeClone = node.clone();
24
+ nodeClone.content = content;
25
+ return nodeClone;
26
+ }
27
+ }
28
+ });
29
+ var _default = FloatingPoint;
30
+ exports.default = _default;