@speclynx/apidom-parser-adapter-yaml-1-2 1.12.2 → 2.0.1
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 +20 -0
- package/NOTICE +16 -7
- package/README.md +34 -7
- package/dist/167.apidom-parser-adapter-yaml-1-2.browser.min.js +1 -1
- package/dist/451.apidom-parser-adapter-yaml-1-2.browser.min.js +1 -1
- package/dist/apidom-parser-adapter-yaml-1-2.browser.js +19340 -16731
- package/dist/apidom-parser-adapter-yaml-1-2.browser.min.js +1 -1
- package/package.json +10 -9
- package/src/adapter.cjs +28 -16
- package/src/adapter.mjs +25 -15
- package/src/tree-sitter/index.cjs +44 -0
- package/src/tree-sitter/index.mjs +38 -0
- package/src/{lexical-analysis → tree-sitter/lexical-analysis}/index.cjs +1 -1
- package/src/{lexical-analysis → tree-sitter/lexical-analysis}/index.mjs +1 -1
- package/src/tree-sitter/syntactic-analysis/CstTransformer.cjs +625 -0
- package/src/tree-sitter/syntactic-analysis/CstTransformer.mjs +618 -0
- package/src/tree-sitter/syntactic-analysis/YamlAstTransformer.cjs +271 -0
- package/src/tree-sitter/syntactic-analysis/YamlAstTransformer.mjs +263 -0
- package/src/tree-sitter/syntactic-analysis/ast/Error.cjs +30 -0
- package/src/tree-sitter/syntactic-analysis/ast/Error.mjs +24 -0
- package/src/tree-sitter/syntactic-analysis/ast/Literal.cjs +27 -0
- package/src/tree-sitter/syntactic-analysis/ast/Literal.mjs +21 -0
- package/src/tree-sitter/syntactic-analysis/ast/Node.cjs +60 -0
- package/src/tree-sitter/syntactic-analysis/ast/Node.mjs +56 -0
- package/src/tree-sitter/syntactic-analysis/ast/ParseResult.cjs +17 -0
- package/src/tree-sitter/syntactic-analysis/ast/ParseResult.mjs +12 -0
- package/src/tree-sitter/syntactic-analysis/ast/anchors-aliases/ReferenceManager.cjs +23 -0
- package/src/tree-sitter/syntactic-analysis/ast/anchors-aliases/ReferenceManager.mjs +18 -0
- package/src/tree-sitter/syntactic-analysis/ast/errors/YamlError.cjs +10 -0
- package/src/tree-sitter/syntactic-analysis/ast/errors/YamlError.mjs +7 -0
- package/src/tree-sitter/syntactic-analysis/ast/errors/YamlSchemaError.cjs +11 -0
- package/src/tree-sitter/syntactic-analysis/ast/errors/YamlSchemaError.mjs +6 -0
- package/src/tree-sitter/syntactic-analysis/ast/errors/YamlTagError.cjs +43 -0
- package/src/tree-sitter/syntactic-analysis/ast/errors/YamlTagError.mjs +37 -0
- package/src/tree-sitter/syntactic-analysis/ast/nodes/YamlAlias.cjs +27 -0
- package/src/tree-sitter/syntactic-analysis/ast/nodes/YamlAlias.mjs +21 -0
- package/src/tree-sitter/syntactic-analysis/ast/nodes/YamlAnchor.cjs +27 -0
- package/src/tree-sitter/syntactic-analysis/ast/nodes/YamlAnchor.mjs +21 -0
- package/src/tree-sitter/syntactic-analysis/ast/nodes/YamlCollection.cjs +11 -0
- package/src/tree-sitter/syntactic-analysis/ast/nodes/YamlCollection.mjs +6 -0
- package/src/tree-sitter/syntactic-analysis/ast/nodes/YamlComment.cjs +27 -0
- package/src/tree-sitter/syntactic-analysis/ast/nodes/YamlComment.mjs +21 -0
- package/src/tree-sitter/syntactic-analysis/ast/nodes/YamlDirective.cjs +39 -0
- package/src/tree-sitter/syntactic-analysis/ast/nodes/YamlDirective.mjs +32 -0
- package/src/tree-sitter/syntactic-analysis/ast/nodes/YamlDocument.cjs +13 -0
- package/src/tree-sitter/syntactic-analysis/ast/nodes/YamlDocument.mjs +8 -0
- package/src/tree-sitter/syntactic-analysis/ast/nodes/YamlKeyValuePair.cjs +48 -0
- package/src/tree-sitter/syntactic-analysis/ast/nodes/YamlKeyValuePair.mjs +42 -0
- package/src/tree-sitter/syntactic-analysis/ast/nodes/YamlMapping.cjs +20 -0
- package/src/tree-sitter/syntactic-analysis/ast/nodes/YamlMapping.mjs +15 -0
- package/src/tree-sitter/syntactic-analysis/ast/nodes/YamlNode.cjs +35 -0
- package/src/tree-sitter/syntactic-analysis/ast/nodes/YamlNode.mjs +29 -0
- package/src/tree-sitter/syntactic-analysis/ast/nodes/YamlScalar.cjs +27 -0
- package/src/tree-sitter/syntactic-analysis/ast/nodes/YamlScalar.mjs +21 -0
- package/src/tree-sitter/syntactic-analysis/ast/nodes/YamlSequence.cjs +23 -0
- package/src/tree-sitter/syntactic-analysis/ast/nodes/YamlSequence.mjs +18 -0
- package/src/tree-sitter/syntactic-analysis/ast/nodes/YamlStream.cjs +20 -0
- package/src/tree-sitter/syntactic-analysis/ast/nodes/YamlStream.mjs +15 -0
- package/src/tree-sitter/syntactic-analysis/ast/nodes/YamlStyle.cjs +27 -0
- package/src/tree-sitter/syntactic-analysis/ast/nodes/YamlStyle.mjs +24 -0
- package/src/tree-sitter/syntactic-analysis/ast/nodes/YamlTag.cjs +38 -0
- package/src/tree-sitter/syntactic-analysis/ast/nodes/YamlTag.mjs +35 -0
- package/src/tree-sitter/syntactic-analysis/ast/nodes/predicates.cjs +26 -0
- package/src/tree-sitter/syntactic-analysis/ast/nodes/predicates.mjs +14 -0
- package/src/tree-sitter/syntactic-analysis/ast/schemas/ScalarTag.cjs +33 -0
- package/src/tree-sitter/syntactic-analysis/ast/schemas/ScalarTag.mjs +29 -0
- package/src/tree-sitter/syntactic-analysis/ast/schemas/Tag.cjs +20 -0
- package/src/tree-sitter/syntactic-analysis/ast/schemas/Tag.mjs +16 -0
- package/src/tree-sitter/syntactic-analysis/ast/schemas/canonical-format.cjs +127 -0
- package/src/tree-sitter/syntactic-analysis/ast/schemas/canonical-format.mjs +122 -0
- package/src/tree-sitter/syntactic-analysis/ast/schemas/failsafe/GenericMapping.cjs +14 -0
- package/src/tree-sitter/syntactic-analysis/ast/schemas/failsafe/GenericMapping.mjs +9 -0
- package/src/tree-sitter/syntactic-analysis/ast/schemas/failsafe/GenericSequence.cjs +14 -0
- package/src/tree-sitter/syntactic-analysis/ast/schemas/failsafe/GenericSequence.mjs +9 -0
- package/src/tree-sitter/syntactic-analysis/ast/schemas/failsafe/GenericString.cjs +10 -0
- package/src/tree-sitter/syntactic-analysis/ast/schemas/failsafe/GenericString.mjs +5 -0
- package/src/tree-sitter/syntactic-analysis/ast/schemas/failsafe/index.cjs +116 -0
- package/src/tree-sitter/syntactic-analysis/ast/schemas/failsafe/index.mjs +111 -0
- package/src/tree-sitter/syntactic-analysis/ast/schemas/json/Boolean.cjs +19 -0
- package/src/tree-sitter/syntactic-analysis/ast/schemas/json/Boolean.mjs +14 -0
- package/src/tree-sitter/syntactic-analysis/ast/schemas/json/FloatingPoint.cjs +19 -0
- package/src/tree-sitter/syntactic-analysis/ast/schemas/json/FloatingPoint.mjs +14 -0
- package/src/tree-sitter/syntactic-analysis/ast/schemas/json/Integer.cjs +19 -0
- package/src/tree-sitter/syntactic-analysis/ast/schemas/json/Integer.mjs +14 -0
- package/src/tree-sitter/syntactic-analysis/ast/schemas/json/Null.cjs +18 -0
- package/src/tree-sitter/syntactic-analysis/ast/schemas/json/Null.mjs +13 -0
- package/src/tree-sitter/syntactic-analysis/ast/schemas/json/index.cjs +43 -0
- package/src/tree-sitter/syntactic-analysis/ast/schemas/json/index.mjs +38 -0
- package/src/tree-sitter/syntactic-analysis/index.cjs +39 -0
- package/src/tree-sitter/syntactic-analysis/index.mjs +33 -0
- package/src/yaml/index.cjs +31 -0
- package/src/yaml/index.mjs +26 -0
- package/types/apidom-parser-adapter-yaml-1-2.d.ts +11 -3
- package/src/syntactic-analysis/TreeCursorIterator.cjs +0 -93
- package/src/syntactic-analysis/TreeCursorIterator.mjs +0 -88
- package/src/syntactic-analysis/TreeCursorSyntaxNode.cjs +0 -80
- package/src/syntactic-analysis/TreeCursorSyntaxNode.mjs +0 -76
- package/src/syntactic-analysis/indirect/index.cjs +0 -51
- package/src/syntactic-analysis/indirect/index.mjs +0 -44
- package/src/syntactic-analysis/indirect/visitors/CstVisitor.cjs +0 -553
- package/src/syntactic-analysis/indirect/visitors/CstVisitor.mjs +0 -547
- package/src/syntactic-analysis/indirect/visitors/YamlAstVisitor.cjs +0 -164
- package/src/syntactic-analysis/indirect/visitors/YamlAstVisitor.mjs +0 -158
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
import { getNodeType as getCSTNodeType, isNode as isCSTNode, YamlStyle } from '@speclynx/apidom-ast';
|
|
2
|
-
import { ParseResultElement, AnnotationElement, CommentElement, SourceMapElement, MemberElement, ObjectElement, ArrayElement, isPrimitiveElement, isElement, keyMap as keyMapApiDOM, getNodeType as getNodeTypeApiDOM, createNamespace } from '@speclynx/apidom-core';
|
|
3
|
-
export const keyMap = {
|
|
4
|
-
stream: ['children'],
|
|
5
|
-
document: ['children'],
|
|
6
|
-
mapping: ['children'],
|
|
7
|
-
keyValuePair: ['children'],
|
|
8
|
-
sequence: ['children'],
|
|
9
|
-
error: ['children'],
|
|
10
|
-
...keyMapApiDOM
|
|
11
|
-
};
|
|
12
|
-
export const getNodeType = node => {
|
|
13
|
-
if (isElement(node)) {
|
|
14
|
-
return getNodeTypeApiDOM(node);
|
|
15
|
-
}
|
|
16
|
-
return getCSTNodeType(node);
|
|
17
|
-
};
|
|
18
|
-
export const isNode = node => isElement(node) || isCSTNode(node) || Array.isArray(node);
|
|
19
|
-
class YamlAstVisitor {
|
|
20
|
-
sourceMap = false;
|
|
21
|
-
annotations;
|
|
22
|
-
namespace;
|
|
23
|
-
processedDocumentCount = 0;
|
|
24
|
-
stream = {
|
|
25
|
-
leave: node => {
|
|
26
|
-
const element = new ParseResultElement();
|
|
27
|
-
// @ts-ignore
|
|
28
|
-
element._content = node.children.flat(1);
|
|
29
|
-
|
|
30
|
-
// mark first-non Annotation element as result
|
|
31
|
-
// @ts-ignore
|
|
32
|
-
const elements = element.findElements(isPrimitiveElement);
|
|
33
|
-
if (elements.length > 0) {
|
|
34
|
-
const resultElement = elements[0];
|
|
35
|
-
resultElement.classes.push('result');
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// provide annotations
|
|
39
|
-
this.annotations.forEach(annotationElement => {
|
|
40
|
-
element.push(annotationElement);
|
|
41
|
-
});
|
|
42
|
-
this.annotations = [];
|
|
43
|
-
return element;
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
constructor() {
|
|
47
|
-
this.annotations = [];
|
|
48
|
-
this.namespace = createNamespace();
|
|
49
|
-
}
|
|
50
|
-
comment(node) {
|
|
51
|
-
const isStreamComment = this.processedDocumentCount === 0;
|
|
52
|
-
|
|
53
|
-
// we're only interested of stream comments before the first document
|
|
54
|
-
if (isStreamComment) {
|
|
55
|
-
// @ts-ignore
|
|
56
|
-
const element = new CommentElement(node.content);
|
|
57
|
-
this.maybeAddSourceMap(node, element);
|
|
58
|
-
return element;
|
|
59
|
-
}
|
|
60
|
-
return null;
|
|
61
|
-
}
|
|
62
|
-
document(node) {
|
|
63
|
-
const shouldWarnAboutMoreDocuments = this.processedDocumentCount === 1;
|
|
64
|
-
const shouldSkipVisitingMoreDocuments = this.processedDocumentCount >= 1;
|
|
65
|
-
if (shouldWarnAboutMoreDocuments) {
|
|
66
|
-
const message = 'Only first document within YAML stream will be used. Rest will be discarded.';
|
|
67
|
-
const element = new AnnotationElement(message);
|
|
68
|
-
element.classes.push('warning');
|
|
69
|
-
this.maybeAddSourceMap(node, element);
|
|
70
|
-
this.annotations.push(element);
|
|
71
|
-
}
|
|
72
|
-
if (shouldSkipVisitingMoreDocuments) {
|
|
73
|
-
return null;
|
|
74
|
-
}
|
|
75
|
-
this.processedDocumentCount += 1;
|
|
76
|
-
return node.children;
|
|
77
|
-
}
|
|
78
|
-
mapping(node) {
|
|
79
|
-
const element = new ObjectElement();
|
|
80
|
-
// @ts-ignore
|
|
81
|
-
element._content = node.children;
|
|
82
|
-
this.maybeAddSourceMap(node, element);
|
|
83
|
-
return element;
|
|
84
|
-
}
|
|
85
|
-
keyValuePair(node) {
|
|
86
|
-
const element = new MemberElement();
|
|
87
|
-
|
|
88
|
-
// @ts-ignore
|
|
89
|
-
element.content.key = node.key;
|
|
90
|
-
// @ts-ignore
|
|
91
|
-
element.content.value = node.value;
|
|
92
|
-
this.maybeAddSourceMap(node, element);
|
|
93
|
-
|
|
94
|
-
// process possible errors here that may be present in property node children as we're using direct field access
|
|
95
|
-
node.children
|
|
96
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
97
|
-
.filter(child => child.type === 'error')
|
|
98
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
99
|
-
.forEach(errorNode => {
|
|
100
|
-
this.error(errorNode, node, [], [node]);
|
|
101
|
-
});
|
|
102
|
-
return element;
|
|
103
|
-
}
|
|
104
|
-
sequence(node) {
|
|
105
|
-
const element = new ArrayElement();
|
|
106
|
-
// @ts-ignore
|
|
107
|
-
element._content = node.children;
|
|
108
|
-
this.maybeAddSourceMap(node, element);
|
|
109
|
-
return element;
|
|
110
|
-
}
|
|
111
|
-
scalar(node) {
|
|
112
|
-
const element = this.namespace.toElement(node.content);
|
|
113
|
-
|
|
114
|
-
// translate style information about empty nodes
|
|
115
|
-
if (node.content === '' && node.style === YamlStyle.Plain) {
|
|
116
|
-
element.classes.push('yaml-e-node');
|
|
117
|
-
element.classes.push('yaml-e-scalar');
|
|
118
|
-
}
|
|
119
|
-
this.maybeAddSourceMap(node, element);
|
|
120
|
-
return element;
|
|
121
|
-
}
|
|
122
|
-
literal(node) {
|
|
123
|
-
if (node.isMissing) {
|
|
124
|
-
const message = `(Missing ${node.value})`;
|
|
125
|
-
const element = new AnnotationElement(message);
|
|
126
|
-
element.classes.push('warning');
|
|
127
|
-
this.maybeAddSourceMap(node, element);
|
|
128
|
-
this.annotations.push(element);
|
|
129
|
-
}
|
|
130
|
-
return null;
|
|
131
|
-
}
|
|
132
|
-
error(node, key, parent, path) {
|
|
133
|
-
const message = node.isUnexpected ? '(Unexpected YAML syntax error)' : '(Error YAML syntax error)';
|
|
134
|
-
const element = new AnnotationElement(message);
|
|
135
|
-
element.classes.push('error');
|
|
136
|
-
this.maybeAddSourceMap(node, element);
|
|
137
|
-
if (path.length === 0) {
|
|
138
|
-
// no document to visit, only error is present in CST
|
|
139
|
-
const parseResultElement = new ParseResultElement();
|
|
140
|
-
parseResultElement.push(element);
|
|
141
|
-
return parseResultElement;
|
|
142
|
-
}
|
|
143
|
-
this.annotations.push(element);
|
|
144
|
-
return null;
|
|
145
|
-
}
|
|
146
|
-
maybeAddSourceMap(node, element) {
|
|
147
|
-
if (!this.sourceMap) {
|
|
148
|
-
return;
|
|
149
|
-
}
|
|
150
|
-
const sourceMap = new SourceMapElement();
|
|
151
|
-
// @ts-ignore
|
|
152
|
-
sourceMap.position = node.position;
|
|
153
|
-
// @ts-ignore
|
|
154
|
-
sourceMap.astNode = node;
|
|
155
|
-
element.meta.set('sourceMap', sourceMap);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
export default YamlAstVisitor;
|