@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.
- package/CHANGELOG.md +352 -0
- package/LICENSES/Apache-2.0.txt +202 -0
- package/LICENSES/MIT.txt +9 -0
- package/NOTICE +57 -0
- package/README.md +98 -0
- package/cjs/Error.cjs +25 -0
- package/cjs/Literal.cjs +22 -0
- package/cjs/Node.cjs +46 -0
- package/cjs/ParseResult.cjs +22 -0
- package/cjs/Position.cjs +46 -0
- package/cjs/index.cjs +113 -0
- package/cjs/json/nodes/JsonArray.cjs +21 -0
- package/cjs/json/nodes/JsonDocument.cjs +22 -0
- package/cjs/json/nodes/JsonEscapeSequence.cjs +14 -0
- package/cjs/json/nodes/JsonFalse.cjs +14 -0
- package/cjs/json/nodes/JsonKey.cjs +14 -0
- package/cjs/json/nodes/JsonNode.cjs +10 -0
- package/cjs/json/nodes/JsonNull.cjs +14 -0
- package/cjs/json/nodes/JsonNumber.cjs +14 -0
- package/cjs/json/nodes/JsonObject.cjs +21 -0
- package/cjs/json/nodes/JsonProperty.cjs +27 -0
- package/cjs/json/nodes/JsonString.cjs +27 -0
- package/cjs/json/nodes/JsonStringContent.cjs +14 -0
- package/cjs/json/nodes/JsonTrue.cjs +14 -0
- package/cjs/json/nodes/JsonValue.cjs +22 -0
- package/cjs/json/nodes/predicates.cjs +29 -0
- package/cjs/predicates.cjs +14 -0
- package/cjs/traversal/visitor.cjs +493 -0
- package/cjs/yaml/nodes/YamlAlias.cjs +22 -0
- package/cjs/yaml/nodes/YamlAnchor.cjs +22 -0
- package/cjs/yaml/nodes/YamlCollection.cjs +10 -0
- package/cjs/yaml/nodes/YamlComment.cjs +22 -0
- package/cjs/yaml/nodes/YamlDirective.cjs +30 -0
- package/cjs/yaml/nodes/YamlDocument.cjs +14 -0
- package/cjs/yaml/nodes/YamlKeyValuePair.cjs +40 -0
- package/cjs/yaml/nodes/YamlMapping.cjs +24 -0
- package/cjs/yaml/nodes/YamlNode.cjs +28 -0
- package/cjs/yaml/nodes/YamlScalar.cjs +22 -0
- package/cjs/yaml/nodes/YamlSequence.cjs +27 -0
- package/cjs/yaml/nodes/YamlStream.cjs +26 -0
- package/cjs/yaml/nodes/YamlStyle.cjs +33 -0
- package/cjs/yaml/nodes/YamlTag.cjs +32 -0
- package/cjs/yaml/nodes/predicates.cjs +25 -0
- package/cjs/yaml/schemas/ScalarTag.cjs +43 -0
- package/cjs/yaml/schemas/Tag.cjs +14 -0
- package/cjs/yaml/schemas/canonical-format.cjs +129 -0
- package/cjs/yaml/schemas/failsafe/GenericMapping.cjs +29 -0
- package/cjs/yaml/schemas/failsafe/GenericSequence.cjs +29 -0
- package/cjs/yaml/schemas/failsafe/GenericString.cjs +24 -0
- package/cjs/yaml/schemas/failsafe/index.cjs +96 -0
- package/cjs/yaml/schemas/json/Boolean.cjs +30 -0
- package/cjs/yaml/schemas/json/FloatingPoint.cjs +30 -0
- package/cjs/yaml/schemas/json/Integer.cjs +30 -0
- package/cjs/yaml/schemas/json/Null.cjs +29 -0
- package/cjs/yaml/schemas/json/index.cjs +47 -0
- package/dist/apidom-ast.browser.js +21212 -0
- package/dist/apidom-ast.browser.min.js +2 -0
- package/dist/apidom-ast.browser.min.js.LICENSE.txt +6 -0
- package/es/Error.js +19 -0
- package/es/Literal.js +16 -0
- package/es/Node.js +40 -0
- package/es/ParseResult.js +16 -0
- package/es/Position.js +39 -0
- package/es/index.js +39 -0
- package/es/json/nodes/JsonArray.js +15 -0
- package/es/json/nodes/JsonDocument.js +16 -0
- package/es/json/nodes/JsonEscapeSequence.js +8 -0
- package/es/json/nodes/JsonFalse.js +8 -0
- package/es/json/nodes/JsonKey.js +8 -0
- package/es/json/nodes/JsonNode.js +4 -0
- package/es/json/nodes/JsonNull.js +8 -0
- package/es/json/nodes/JsonNumber.js +8 -0
- package/es/json/nodes/JsonObject.js +15 -0
- package/es/json/nodes/JsonProperty.js +21 -0
- package/es/json/nodes/JsonString.js +21 -0
- package/es/json/nodes/JsonStringContent.js +8 -0
- package/es/json/nodes/JsonTrue.js +8 -0
- package/es/json/nodes/JsonValue.js +16 -0
- package/es/json/nodes/predicates.js +13 -0
- package/es/predicates.js +5 -0
- package/es/traversal/visitor.js +483 -0
- package/es/yaml/nodes/YamlAlias.js +16 -0
- package/es/yaml/nodes/YamlAnchor.js +16 -0
- package/es/yaml/nodes/YamlCollection.js +4 -0
- package/es/yaml/nodes/YamlComment.js +16 -0
- package/es/yaml/nodes/YamlDirective.js +24 -0
- package/es/yaml/nodes/YamlDocument.js +8 -0
- package/es/yaml/nodes/YamlKeyValuePair.js +34 -0
- package/es/yaml/nodes/YamlMapping.js +18 -0
- package/es/yaml/nodes/YamlNode.js +22 -0
- package/es/yaml/nodes/YamlScalar.js +16 -0
- package/es/yaml/nodes/YamlSequence.js +21 -0
- package/es/yaml/nodes/YamlStream.js +20 -0
- package/es/yaml/nodes/YamlStyle.js +25 -0
- package/es/yaml/nodes/YamlTag.js +25 -0
- package/es/yaml/nodes/predicates.js +11 -0
- package/es/yaml/schemas/ScalarTag.js +37 -0
- package/es/yaml/schemas/Tag.js +8 -0
- package/es/yaml/schemas/canonical-format.js +122 -0
- package/es/yaml/schemas/failsafe/GenericMapping.js +23 -0
- package/es/yaml/schemas/failsafe/GenericSequence.js +23 -0
- package/es/yaml/schemas/failsafe/GenericString.js +18 -0
- package/es/yaml/schemas/failsafe/index.js +90 -0
- package/es/yaml/schemas/json/Boolean.js +24 -0
- package/es/yaml/schemas/json/FloatingPoint.js +24 -0
- package/es/yaml/schemas/json/Integer.js +24 -0
- package/es/yaml/schemas/json/Null.js +23 -0
- package/es/yaml/schemas/json/index.js +41 -0
- package/package.json +62 -0
- 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;
|