@speclynx/apidom-core 1.12.1 → 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 +25 -0
- package/NOTICE +16 -7
- package/README.md +102 -330
- package/dist/apidom-core.browser.js +7529 -11588
- package/dist/apidom-core.browser.min.js +1 -1
- package/package.json +7 -12
- package/src/identity/index.cjs +8 -6
- package/src/identity/index.mjs +6 -4
- package/src/index.cjs +13 -79
- package/src/index.mjs +3 -13
- package/src/merge/deepmerge.cjs +22 -20
- package/src/merge/deepmerge.mjs +9 -7
- package/src/merge/merge-right.cjs +2 -2
- package/src/merge/merge-right.mjs +1 -1
- package/src/namespace.cjs +4 -36
- package/src/namespace.mjs +2 -30
- package/src/refractor/plugins/dispatcher/index.cjs +5 -12
- package/src/refractor/plugins/dispatcher/index.mjs +5 -12
- package/src/refractor/plugins/element-identity.cjs +2 -2
- package/src/refractor/plugins/element-identity.mjs +2 -2
- package/src/refractor/plugins/semantic-element-identity.cjs +5 -10
- package/src/refractor/plugins/semantic-element-identity.mjs +5 -9
- package/src/refractor/toolbox.cjs +22 -5
- package/src/refractor/toolbox.mjs +25 -6
- package/src/specification.cjs +51 -0
- package/src/specification.mjs +47 -0
- package/src/transcluder/Transcluder.cjs +8 -8
- package/src/transcluder/Transcluder.mjs +1 -1
- package/src/transformers/from.mjs +2 -2
- package/src/transformers/serializers/json.cjs +2 -2
- package/src/transformers/serializers/json.mjs +1 -1
- package/src/transformers/serializers/value.cjs +50 -0
- package/src/transformers/serializers/value.mjs +47 -0
- package/src/transformers/serializers/yaml-1-2.cjs +22 -18
- package/src/transformers/serializers/yaml-1-2.mjs +22 -18
- package/src/transformers/sexprs.cjs +20 -23
- package/src/transformers/sexprs.mjs +20 -22
- package/src/transformers/to-string.mjs +2 -2
- package/types/apidom-core.d.ts +67 -519
- package/src/clone/errors/CloneError.cjs +0 -22
- package/src/clone/errors/CloneError.mjs +0 -19
- package/src/clone/errors/DeepCloneError.cjs +0 -11
- package/src/clone/errors/DeepCloneError.mjs +0 -6
- package/src/clone/errors/ShallowCloneError.cjs +0 -11
- package/src/clone/errors/ShallowCloneError.mjs +0 -6
- package/src/clone/index.cjs +0 -155
- package/src/clone/index.mjs +0 -146
- package/src/elements/Annotation.cjs +0 -23
- package/src/elements/Annotation.mjs +0 -20
- package/src/elements/Comment.cjs +0 -15
- package/src/elements/Comment.mjs +0 -12
- package/src/elements/ParseResult.cjs +0 -53
- package/src/elements/ParseResult.mjs +0 -50
- package/src/elements/SourceMap.cjs +0 -39
- package/src/elements/SourceMap.mjs +0 -36
- package/src/predicates/helpers.cjs +0 -85
- package/src/predicates/helpers.mjs +0 -77
- package/src/predicates/index.cjs +0 -208
- package/src/predicates/index.mjs +0 -198
- package/src/refractor/index.cjs +0 -46
- package/src/refractor/index.mjs +0 -40
- package/src/refractor/registration.cjs +0 -34
- package/src/refractor/registration.mjs +0 -19
- package/src/transformers/serializers/value/ast/ephemeral-array.cjs +0 -21
- package/src/transformers/serializers/value/ast/ephemeral-array.mjs +0 -17
- package/src/transformers/serializers/value/ast/ephemeral-object.cjs +0 -20
- package/src/transformers/serializers/value/ast/ephemeral-object.mjs +0 -16
- package/src/transformers/serializers/value/index.cjs +0 -85
- package/src/transformers/serializers/value/index.mjs +0 -80
- package/src/transformers/serializers/value/visitor.cjs +0 -52
- package/src/transformers/serializers/value/visitor.mjs +0 -47
- package/src/traversal/filter.cjs +0 -18
- package/src/traversal/filter.mjs +0 -14
- package/src/traversal/find.cjs +0 -19
- package/src/traversal/find.mjs +0 -15
- package/src/traversal/findAtOffset.cjs +0 -65
- package/src/traversal/findAtOffset.mjs +0 -60
- package/src/traversal/index.cjs +0 -19
- package/src/traversal/index.mjs +0 -7
- package/src/traversal/parents.cjs +0 -38
- package/src/traversal/parents.mjs +0 -34
- package/src/traversal/reject.cjs +0 -15
- package/src/traversal/reject.mjs +0 -10
- package/src/traversal/some.cjs +0 -15
- package/src/traversal/some.mjs +0 -10
- package/src/traversal/traverse.cjs +0 -60
- package/src/traversal/traverse.mjs +0 -53
- package/src/traversal/visitor.cjs +0 -123
- package/src/traversal/visitor.mjs +0 -115
- package/src/util.cjs +0 -28
- package/src/util.mjs +0 -24
- package/types/minim.d.ts +0 -236
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { ObjectElement, ArrayElement, StringElement, BooleanElement, NullElement, NumberElement, LinkElement, RefElement } from 'minim';
|
|
2
|
-
import AnnotationElement from "../elements/Annotation.mjs";
|
|
3
|
-
import CommentElement from "../elements/Comment.mjs";
|
|
4
|
-
import ParseResultElement from "../elements/ParseResult.mjs";
|
|
5
|
-
import SourceMapElement from "../elements/SourceMap.mjs";
|
|
6
|
-
import { createRefractor } from "./index.mjs";
|
|
7
|
-
ObjectElement.refract = createRefractor(ObjectElement);
|
|
8
|
-
ArrayElement.refract = createRefractor(ArrayElement);
|
|
9
|
-
StringElement.refract = createRefractor(StringElement);
|
|
10
|
-
BooleanElement.refract = createRefractor(BooleanElement);
|
|
11
|
-
NullElement.refract = createRefractor(NullElement);
|
|
12
|
-
NumberElement.refract = createRefractor(NumberElement);
|
|
13
|
-
LinkElement.refract = createRefractor(LinkElement);
|
|
14
|
-
RefElement.refract = createRefractor(RefElement);
|
|
15
|
-
AnnotationElement.refract = createRefractor(AnnotationElement);
|
|
16
|
-
CommentElement.refract = createRefractor(CommentElement);
|
|
17
|
-
ParseResultElement.refract = createRefractor(ParseResultElement);
|
|
18
|
-
SourceMapElement.refract = createRefractor(SourceMapElement);
|
|
19
|
-
export { ObjectElement, ArrayElement, StringElement, BooleanElement, NullElement, NumberElement, LinkElement, RefElement, AnnotationElement, CommentElement, ParseResultElement, SourceMapElement };
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.default = void 0;
|
|
5
|
-
class EphemeralArray {
|
|
6
|
-
type = 'EphemeralArray';
|
|
7
|
-
content = [];
|
|
8
|
-
reference = undefined;
|
|
9
|
-
constructor(content) {
|
|
10
|
-
this.content = content;
|
|
11
|
-
this.reference = [];
|
|
12
|
-
}
|
|
13
|
-
toReference() {
|
|
14
|
-
return this.reference;
|
|
15
|
-
}
|
|
16
|
-
toArray() {
|
|
17
|
-
this.reference.push(...this.content);
|
|
18
|
-
return this.reference;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
var _default = exports.default = EphemeralArray;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
class EphemeralArray {
|
|
2
|
-
type = 'EphemeralArray';
|
|
3
|
-
content = [];
|
|
4
|
-
reference = undefined;
|
|
5
|
-
constructor(content) {
|
|
6
|
-
this.content = content;
|
|
7
|
-
this.reference = [];
|
|
8
|
-
}
|
|
9
|
-
toReference() {
|
|
10
|
-
return this.reference;
|
|
11
|
-
}
|
|
12
|
-
toArray() {
|
|
13
|
-
this.reference.push(...this.content);
|
|
14
|
-
return this.reference;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
export default EphemeralArray;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.default = void 0;
|
|
5
|
-
class EphemeralObject {
|
|
6
|
-
type = 'EphemeralObject';
|
|
7
|
-
content = [];
|
|
8
|
-
reference = undefined;
|
|
9
|
-
constructor(content) {
|
|
10
|
-
this.content = content;
|
|
11
|
-
this.reference = {};
|
|
12
|
-
}
|
|
13
|
-
toReference() {
|
|
14
|
-
return this.reference;
|
|
15
|
-
}
|
|
16
|
-
toObject() {
|
|
17
|
-
return Object.assign(this.reference, Object.fromEntries(this.content));
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
var _default = exports.default = EphemeralObject;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
class EphemeralObject {
|
|
2
|
-
type = 'EphemeralObject';
|
|
3
|
-
content = [];
|
|
4
|
-
reference = undefined;
|
|
5
|
-
constructor(content) {
|
|
6
|
-
this.content = content;
|
|
7
|
-
this.reference = {};
|
|
8
|
-
}
|
|
9
|
-
toReference() {
|
|
10
|
-
return this.reference;
|
|
11
|
-
}
|
|
12
|
-
toObject() {
|
|
13
|
-
return Object.assign(this.reference, Object.fromEntries(this.content));
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
export default EphemeralObject;
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
|
4
|
-
exports.__esModule = true;
|
|
5
|
-
exports.default = void 0;
|
|
6
|
-
var _visitor = require("./visitor.cjs");
|
|
7
|
-
var _ephemeralArray = _interopRequireDefault(require("./ast/ephemeral-array.cjs"));
|
|
8
|
-
var _ephemeralObject = _interopRequireDefault(require("./ast/ephemeral-object.cjs"));
|
|
9
|
-
var _index = require("../../../predicates/index.cjs");
|
|
10
|
-
class Visitor {
|
|
11
|
-
ObjectElement = {
|
|
12
|
-
enter: element => {
|
|
13
|
-
if (this.references.has(element)) {
|
|
14
|
-
return this.references.get(element).toReference();
|
|
15
|
-
}
|
|
16
|
-
const ephemeral = new _ephemeralObject.default(element.content);
|
|
17
|
-
this.references.set(element, ephemeral);
|
|
18
|
-
return ephemeral;
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
EphemeralObject = {
|
|
22
|
-
leave: ephemeral => {
|
|
23
|
-
return ephemeral.toObject();
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
MemberElement = {
|
|
27
|
-
enter: element => {
|
|
28
|
-
return [element.key, element.value];
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
ArrayElement = {
|
|
32
|
-
enter: element => {
|
|
33
|
-
if (this.references.has(element)) {
|
|
34
|
-
return this.references.get(element).toReference();
|
|
35
|
-
}
|
|
36
|
-
const ephemeral = new _ephemeralArray.default(element.content);
|
|
37
|
-
this.references.set(element, ephemeral);
|
|
38
|
-
return ephemeral;
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
EphemeralArray = {
|
|
42
|
-
leave: ephemeral => {
|
|
43
|
-
return ephemeral.toArray();
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
references = new WeakMap();
|
|
47
|
-
BooleanElement(element) {
|
|
48
|
-
return element.toValue();
|
|
49
|
-
}
|
|
50
|
-
NumberElement(element) {
|
|
51
|
-
return element.toValue();
|
|
52
|
-
}
|
|
53
|
-
StringElement(element) {
|
|
54
|
-
return element.toValue();
|
|
55
|
-
}
|
|
56
|
-
NullElement() {
|
|
57
|
-
return null;
|
|
58
|
-
}
|
|
59
|
-
RefElement(element, ...rest) {
|
|
60
|
-
const ancestors = rest[3];
|
|
61
|
-
if (ancestors[ancestors.length - 1]?.type === 'EphemeralObject') {
|
|
62
|
-
return Symbol.for('delete-node');
|
|
63
|
-
}
|
|
64
|
-
return String(element.toValue());
|
|
65
|
-
}
|
|
66
|
-
LinkElement(element) {
|
|
67
|
-
if ((0, _index.isStringElement)(element.href)) {
|
|
68
|
-
return element.href.toValue();
|
|
69
|
-
}
|
|
70
|
-
return '';
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* @public
|
|
75
|
-
*/
|
|
76
|
-
const serializer = element => {
|
|
77
|
-
if (!(0, _index.isElement)(element)) return element;
|
|
78
|
-
|
|
79
|
-
// shortcut optimization for certain element types
|
|
80
|
-
if ((0, _index.isStringElement)(element) || (0, _index.isNumberElement)(element) || (0, _index.isBooleanElement)(element) || (0, _index.isNullElement)(element)) {
|
|
81
|
-
return element.toValue();
|
|
82
|
-
}
|
|
83
|
-
return (0, _visitor.visit)(element, new Visitor());
|
|
84
|
-
};
|
|
85
|
-
var _default = exports.default = serializer;
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { visit } from "./visitor.mjs";
|
|
2
|
-
import EphemeralArray from "./ast/ephemeral-array.mjs";
|
|
3
|
-
import EphemeralObject from "./ast/ephemeral-object.mjs";
|
|
4
|
-
import { isElement, isBooleanElement, isNumberElement, isStringElement, isNullElement } from "../../../predicates/index.mjs";
|
|
5
|
-
class Visitor {
|
|
6
|
-
ObjectElement = {
|
|
7
|
-
enter: element => {
|
|
8
|
-
if (this.references.has(element)) {
|
|
9
|
-
return this.references.get(element).toReference();
|
|
10
|
-
}
|
|
11
|
-
const ephemeral = new EphemeralObject(element.content);
|
|
12
|
-
this.references.set(element, ephemeral);
|
|
13
|
-
return ephemeral;
|
|
14
|
-
}
|
|
15
|
-
};
|
|
16
|
-
EphemeralObject = {
|
|
17
|
-
leave: ephemeral => {
|
|
18
|
-
return ephemeral.toObject();
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
MemberElement = {
|
|
22
|
-
enter: element => {
|
|
23
|
-
return [element.key, element.value];
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
ArrayElement = {
|
|
27
|
-
enter: element => {
|
|
28
|
-
if (this.references.has(element)) {
|
|
29
|
-
return this.references.get(element).toReference();
|
|
30
|
-
}
|
|
31
|
-
const ephemeral = new EphemeralArray(element.content);
|
|
32
|
-
this.references.set(element, ephemeral);
|
|
33
|
-
return ephemeral;
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
EphemeralArray = {
|
|
37
|
-
leave: ephemeral => {
|
|
38
|
-
return ephemeral.toArray();
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
references = new WeakMap();
|
|
42
|
-
BooleanElement(element) {
|
|
43
|
-
return element.toValue();
|
|
44
|
-
}
|
|
45
|
-
NumberElement(element) {
|
|
46
|
-
return element.toValue();
|
|
47
|
-
}
|
|
48
|
-
StringElement(element) {
|
|
49
|
-
return element.toValue();
|
|
50
|
-
}
|
|
51
|
-
NullElement() {
|
|
52
|
-
return null;
|
|
53
|
-
}
|
|
54
|
-
RefElement(element, ...rest) {
|
|
55
|
-
const ancestors = rest[3];
|
|
56
|
-
if (ancestors[ancestors.length - 1]?.type === 'EphemeralObject') {
|
|
57
|
-
return Symbol.for('delete-node');
|
|
58
|
-
}
|
|
59
|
-
return String(element.toValue());
|
|
60
|
-
}
|
|
61
|
-
LinkElement(element) {
|
|
62
|
-
if (isStringElement(element.href)) {
|
|
63
|
-
return element.href.toValue();
|
|
64
|
-
}
|
|
65
|
-
return '';
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* @public
|
|
70
|
-
*/
|
|
71
|
-
const serializer = element => {
|
|
72
|
-
if (!isElement(element)) return element;
|
|
73
|
-
|
|
74
|
-
// shortcut optimization for certain element types
|
|
75
|
-
if (isStringElement(element) || isNumberElement(element) || isBooleanElement(element) || isNullElement(element)) {
|
|
76
|
-
return element.toValue();
|
|
77
|
-
}
|
|
78
|
-
return visit(element, new Visitor());
|
|
79
|
-
};
|
|
80
|
-
export default serializer;
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.visit = void 0;
|
|
5
|
-
var _ramda = require("ramda");
|
|
6
|
-
var _visitor = require("../../../traversal/visitor.cjs");
|
|
7
|
-
const nodeTypeGetter = node => {
|
|
8
|
-
if (typeof node?.type === 'string') {
|
|
9
|
-
return node.type;
|
|
10
|
-
}
|
|
11
|
-
return (0, _visitor.getNodeType)(node);
|
|
12
|
-
};
|
|
13
|
-
const keyMapDefault = {
|
|
14
|
-
EphemeralObject: ['content'],
|
|
15
|
-
EphemeralArray: ['content'],
|
|
16
|
-
..._visitor.keyMapDefault
|
|
17
|
-
};
|
|
18
|
-
const visit = (root,
|
|
19
|
-
// @ts-ignore
|
|
20
|
-
visitor, {
|
|
21
|
-
keyMap = keyMapDefault,
|
|
22
|
-
...rest
|
|
23
|
-
} = {}) => {
|
|
24
|
-
return (0, _visitor.visit)(root, visitor, {
|
|
25
|
-
keyMap,
|
|
26
|
-
// @ts-ignore
|
|
27
|
-
nodeTypeGetter,
|
|
28
|
-
nodePredicate: _ramda.T,
|
|
29
|
-
detectCycles: false,
|
|
30
|
-
deleteNodeSymbol: Symbol.for('delete-node'),
|
|
31
|
-
skipVisitingNodeSymbol: Symbol.for('skip-visiting-node'),
|
|
32
|
-
...rest
|
|
33
|
-
});
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
// @ts-ignore
|
|
37
|
-
exports.visit = visit;
|
|
38
|
-
visit[Symbol.for('nodejs.util.promisify.custom')] = async (root, {
|
|
39
|
-
keyMap = keyMapDefault,
|
|
40
|
-
...rest
|
|
41
|
-
} = {}) => {
|
|
42
|
-
// @ts-ignore
|
|
43
|
-
return _visitor.visit[Symbol.for('nodejs.util.promisify.custom')](root, visitor, {
|
|
44
|
-
keyMap,
|
|
45
|
-
nodeTypeGetter,
|
|
46
|
-
nodePredicate: _ramda.T,
|
|
47
|
-
detectCycles: false,
|
|
48
|
-
deleteNodeSymbol: Symbol.for('delete-node'),
|
|
49
|
-
skipVisitingNodeSymbol: Symbol.for('skip-visiting-node'),
|
|
50
|
-
...rest
|
|
51
|
-
});
|
|
52
|
-
};
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { T as stubTrue } from 'ramda';
|
|
2
|
-
import { visit as astVisit, keyMapDefault as baseKeyMap, getNodeType as baseGetNodeType } from "../../../traversal/visitor.mjs";
|
|
3
|
-
const nodeTypeGetter = node => {
|
|
4
|
-
if (typeof node?.type === 'string') {
|
|
5
|
-
return node.type;
|
|
6
|
-
}
|
|
7
|
-
return baseGetNodeType(node);
|
|
8
|
-
};
|
|
9
|
-
const keyMapDefault = {
|
|
10
|
-
EphemeralObject: ['content'],
|
|
11
|
-
EphemeralArray: ['content'],
|
|
12
|
-
...baseKeyMap
|
|
13
|
-
};
|
|
14
|
-
export const visit = (root,
|
|
15
|
-
// @ts-ignore
|
|
16
|
-
visitor, {
|
|
17
|
-
keyMap = keyMapDefault,
|
|
18
|
-
...rest
|
|
19
|
-
} = {}) => {
|
|
20
|
-
return astVisit(root, visitor, {
|
|
21
|
-
keyMap,
|
|
22
|
-
// @ts-ignore
|
|
23
|
-
nodeTypeGetter,
|
|
24
|
-
nodePredicate: stubTrue,
|
|
25
|
-
detectCycles: false,
|
|
26
|
-
deleteNodeSymbol: Symbol.for('delete-node'),
|
|
27
|
-
skipVisitingNodeSymbol: Symbol.for('skip-visiting-node'),
|
|
28
|
-
...rest
|
|
29
|
-
});
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
// @ts-ignore
|
|
33
|
-
visit[Symbol.for('nodejs.util.promisify.custom')] = async (root, {
|
|
34
|
-
keyMap = keyMapDefault,
|
|
35
|
-
...rest
|
|
36
|
-
} = {}) => {
|
|
37
|
-
// @ts-ignore
|
|
38
|
-
return astVisit[Symbol.for('nodejs.util.promisify.custom')](root, visitor, {
|
|
39
|
-
keyMap,
|
|
40
|
-
nodeTypeGetter,
|
|
41
|
-
nodePredicate: stubTrue,
|
|
42
|
-
detectCycles: false,
|
|
43
|
-
deleteNodeSymbol: Symbol.for('delete-node'),
|
|
44
|
-
skipVisitingNodeSymbol: Symbol.for('skip-visiting-node'),
|
|
45
|
-
...rest
|
|
46
|
-
});
|
|
47
|
-
};
|
package/src/traversal/filter.cjs
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.default = void 0;
|
|
5
|
-
var _minim = require("minim");
|
|
6
|
-
var _visitor = require("./visitor.cjs");
|
|
7
|
-
/**
|
|
8
|
-
* Finds all elements matching the predicate.
|
|
9
|
-
* @public
|
|
10
|
-
*/
|
|
11
|
-
const filter = (predicate, element) => {
|
|
12
|
-
const visitor = new _visitor.PredicateVisitor({
|
|
13
|
-
predicate
|
|
14
|
-
});
|
|
15
|
-
(0, _visitor.visit)(element, visitor);
|
|
16
|
-
return new _minim.ArraySlice(visitor.result);
|
|
17
|
-
};
|
|
18
|
-
var _default = exports.default = filter;
|
package/src/traversal/filter.mjs
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { ArraySlice } from 'minim';
|
|
2
|
-
import { PredicateVisitor, visit } from "./visitor.mjs";
|
|
3
|
-
/**
|
|
4
|
-
* Finds all elements matching the predicate.
|
|
5
|
-
* @public
|
|
6
|
-
*/
|
|
7
|
-
const filter = (predicate, element) => {
|
|
8
|
-
const visitor = new PredicateVisitor({
|
|
9
|
-
predicate
|
|
10
|
-
});
|
|
11
|
-
visit(element, visitor);
|
|
12
|
-
return new ArraySlice(visitor.result);
|
|
13
|
-
};
|
|
14
|
-
export default filter;
|
package/src/traversal/find.cjs
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.default = void 0;
|
|
5
|
-
var _ramda = require("ramda");
|
|
6
|
-
var _visitor = require("./visitor.cjs");
|
|
7
|
-
/**
|
|
8
|
-
* Find first element that satisfies the provided predicate.
|
|
9
|
-
* @public
|
|
10
|
-
*/
|
|
11
|
-
const find = (predicate, element) => {
|
|
12
|
-
const visitor = new _visitor.PredicateVisitor({
|
|
13
|
-
predicate,
|
|
14
|
-
returnOnTrue: _visitor.BREAK
|
|
15
|
-
});
|
|
16
|
-
(0, _visitor.visit)(element, visitor);
|
|
17
|
-
return (0, _ramda.pathOr)(undefined, [0], visitor.result);
|
|
18
|
-
};
|
|
19
|
-
var _default = exports.default = find;
|
package/src/traversal/find.mjs
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { pathOr } from 'ramda';
|
|
2
|
-
import { PredicateVisitor, BREAK, visit } from "./visitor.mjs";
|
|
3
|
-
/**
|
|
4
|
-
* Find first element that satisfies the provided predicate.
|
|
5
|
-
* @public
|
|
6
|
-
*/
|
|
7
|
-
const find = (predicate, element) => {
|
|
8
|
-
const visitor = new PredicateVisitor({
|
|
9
|
-
predicate,
|
|
10
|
-
returnOnTrue: BREAK
|
|
11
|
-
});
|
|
12
|
-
visit(element, visitor);
|
|
13
|
-
return pathOr(undefined, [0], visitor.result);
|
|
14
|
-
};
|
|
15
|
-
export default find;
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
|
4
|
-
exports.__esModule = true;
|
|
5
|
-
exports.default = void 0;
|
|
6
|
-
var _ramda = require("ramda");
|
|
7
|
-
var _ramdaAdjunct = require("ramda-adjunct");
|
|
8
|
-
var _index = require("../predicates/index.cjs");
|
|
9
|
-
var _visitor = require("./visitor.cjs");
|
|
10
|
-
var _index2 = _interopRequireDefault(require("../transformers/serializers/value/index.cjs"));
|
|
11
|
-
class Visitor {
|
|
12
|
-
result;
|
|
13
|
-
offset;
|
|
14
|
-
includeRightBound;
|
|
15
|
-
constructor({
|
|
16
|
-
offset = 0,
|
|
17
|
-
includeRightBound = false
|
|
18
|
-
} = {}) {
|
|
19
|
-
this.result = [];
|
|
20
|
-
this.offset = offset;
|
|
21
|
-
this.includeRightBound = includeRightBound;
|
|
22
|
-
}
|
|
23
|
-
enter(element) {
|
|
24
|
-
if (!(0, _index.hasElementSourceMap)(element)) {
|
|
25
|
-
return undefined; // dive in
|
|
26
|
-
}
|
|
27
|
-
const sourceMapElement = element.getMetaProperty('sourceMap');
|
|
28
|
-
const charStart = (0, _index2.default)(sourceMapElement.positionStart.get(2));
|
|
29
|
-
const charEnd = (0, _index2.default)(sourceMapElement.positionEnd.get(2));
|
|
30
|
-
const isWithinOffsetRange = this.offset >= charStart && (this.offset < charEnd || this.includeRightBound && this.offset <= charEnd);
|
|
31
|
-
if (isWithinOffsetRange) {
|
|
32
|
-
this.result.push(element);
|
|
33
|
-
return undefined; // push to stack and dive in
|
|
34
|
-
}
|
|
35
|
-
return false; // skip entire sub-tree
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* @public
|
|
41
|
-
*/
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Finds the most inner node at the given offset.
|
|
45
|
-
* If includeRightBound is set, also finds nodes that end at the given offset.
|
|
46
|
-
* @public
|
|
47
|
-
*/
|
|
48
|
-
const findAtOffset = (options, element) => {
|
|
49
|
-
let offset;
|
|
50
|
-
let includeRightBound;
|
|
51
|
-
if ((0, _ramdaAdjunct.isNumber)(options)) {
|
|
52
|
-
offset = options;
|
|
53
|
-
includeRightBound = false;
|
|
54
|
-
} else {
|
|
55
|
-
offset = (0, _ramda.pathOr)(0, ['offset'], options);
|
|
56
|
-
includeRightBound = (0, _ramda.pathOr)(false, ['includeRightBound'], options);
|
|
57
|
-
}
|
|
58
|
-
const visitor = new Visitor({
|
|
59
|
-
offset,
|
|
60
|
-
includeRightBound
|
|
61
|
-
});
|
|
62
|
-
(0, _visitor.visit)(element, visitor);
|
|
63
|
-
return (0, _ramda.last)(visitor.result);
|
|
64
|
-
};
|
|
65
|
-
var _default = exports.default = findAtOffset;
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { last, pathOr } from 'ramda';
|
|
2
|
-
import { isNumber } from 'ramda-adjunct';
|
|
3
|
-
import { hasElementSourceMap } from "../predicates/index.mjs";
|
|
4
|
-
import { visit } from "./visitor.mjs";
|
|
5
|
-
import toValue from "../transformers/serializers/value/index.mjs";
|
|
6
|
-
class Visitor {
|
|
7
|
-
result;
|
|
8
|
-
offset;
|
|
9
|
-
includeRightBound;
|
|
10
|
-
constructor({
|
|
11
|
-
offset = 0,
|
|
12
|
-
includeRightBound = false
|
|
13
|
-
} = {}) {
|
|
14
|
-
this.result = [];
|
|
15
|
-
this.offset = offset;
|
|
16
|
-
this.includeRightBound = includeRightBound;
|
|
17
|
-
}
|
|
18
|
-
enter(element) {
|
|
19
|
-
if (!hasElementSourceMap(element)) {
|
|
20
|
-
return undefined; // dive in
|
|
21
|
-
}
|
|
22
|
-
const sourceMapElement = element.getMetaProperty('sourceMap');
|
|
23
|
-
const charStart = toValue(sourceMapElement.positionStart.get(2));
|
|
24
|
-
const charEnd = toValue(sourceMapElement.positionEnd.get(2));
|
|
25
|
-
const isWithinOffsetRange = this.offset >= charStart && (this.offset < charEnd || this.includeRightBound && this.offset <= charEnd);
|
|
26
|
-
if (isWithinOffsetRange) {
|
|
27
|
-
this.result.push(element);
|
|
28
|
-
return undefined; // push to stack and dive in
|
|
29
|
-
}
|
|
30
|
-
return false; // skip entire sub-tree
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* @public
|
|
36
|
-
*/
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Finds the most inner node at the given offset.
|
|
40
|
-
* If includeRightBound is set, also finds nodes that end at the given offset.
|
|
41
|
-
* @public
|
|
42
|
-
*/
|
|
43
|
-
const findAtOffset = (options, element) => {
|
|
44
|
-
let offset;
|
|
45
|
-
let includeRightBound;
|
|
46
|
-
if (isNumber(options)) {
|
|
47
|
-
offset = options;
|
|
48
|
-
includeRightBound = false;
|
|
49
|
-
} else {
|
|
50
|
-
offset = pathOr(0, ['offset'], options);
|
|
51
|
-
includeRightBound = pathOr(false, ['includeRightBound'], options);
|
|
52
|
-
}
|
|
53
|
-
const visitor = new Visitor({
|
|
54
|
-
offset,
|
|
55
|
-
includeRightBound
|
|
56
|
-
});
|
|
57
|
-
visit(element, visitor);
|
|
58
|
-
return last(visitor.result);
|
|
59
|
-
};
|
|
60
|
-
export default findAtOffset;
|
package/src/traversal/index.cjs
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
|
4
|
-
exports.__esModule = true;
|
|
5
|
-
exports.traverse = exports.some = exports.reject = exports.parents = exports.findAtOffset = exports.find = exports.filter = void 0;
|
|
6
|
-
var _filter = _interopRequireDefault(require("./filter.cjs"));
|
|
7
|
-
exports.filter = _filter.default;
|
|
8
|
-
var _find = _interopRequireDefault(require("./find.cjs"));
|
|
9
|
-
exports.find = _find.default;
|
|
10
|
-
var _findAtOffset = _interopRequireDefault(require("./findAtOffset.cjs"));
|
|
11
|
-
exports.findAtOffset = _findAtOffset.default;
|
|
12
|
-
var _reject = _interopRequireDefault(require("./reject.cjs"));
|
|
13
|
-
exports.reject = _reject.default;
|
|
14
|
-
var _some = _interopRequireDefault(require("./some.cjs"));
|
|
15
|
-
exports.some = _some.default;
|
|
16
|
-
var _traverse = _interopRequireDefault(require("./traverse.cjs"));
|
|
17
|
-
exports.traverse = _traverse.default;
|
|
18
|
-
var _parents = _interopRequireDefault(require("./parents.cjs"));
|
|
19
|
-
exports.parents = _parents.default;
|
package/src/traversal/index.mjs
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export { default as filter } from "./filter.mjs";
|
|
2
|
-
export { default as find } from "./find.mjs";
|
|
3
|
-
export { default as findAtOffset } from "./findAtOffset.mjs";
|
|
4
|
-
export { default as reject } from "./reject.mjs";
|
|
5
|
-
export { default as some } from "./some.mjs";
|
|
6
|
-
export { default as traverse } from "./traverse.mjs";
|
|
7
|
-
export { default as parents } from "./parents.mjs";
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.default = void 0;
|
|
5
|
-
var _visitor = require("./visitor.cjs");
|
|
6
|
-
class Visitor {
|
|
7
|
-
parentEdges;
|
|
8
|
-
parent;
|
|
9
|
-
constructor() {
|
|
10
|
-
this.parentEdges = new WeakMap();
|
|
11
|
-
}
|
|
12
|
-
ObjectElement(objectElement) {
|
|
13
|
-
this.parentEdges.set(objectElement, this.parent);
|
|
14
|
-
this.parent = objectElement;
|
|
15
|
-
}
|
|
16
|
-
ArrayElement(arrayElement) {
|
|
17
|
-
this.parentEdges.set(arrayElement, this.parent);
|
|
18
|
-
this.parent = arrayElement;
|
|
19
|
-
}
|
|
20
|
-
MemberElement(memberElement) {
|
|
21
|
-
this.parentEdges.set(memberElement, this.parent);
|
|
22
|
-
this.parent = memberElement;
|
|
23
|
-
}
|
|
24
|
-
enter(element) {
|
|
25
|
-
this.parentEdges.set(element, this.parent);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Computes upwards edges from every child to its parent.
|
|
31
|
-
* @public
|
|
32
|
-
*/
|
|
33
|
-
const parents = element => {
|
|
34
|
-
const visitor = new Visitor();
|
|
35
|
-
(0, _visitor.visit)(element, visitor);
|
|
36
|
-
return visitor.parentEdges;
|
|
37
|
-
};
|
|
38
|
-
var _default = exports.default = parents;
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { visit } from "./visitor.mjs";
|
|
2
|
-
class Visitor {
|
|
3
|
-
parentEdges;
|
|
4
|
-
parent;
|
|
5
|
-
constructor() {
|
|
6
|
-
this.parentEdges = new WeakMap();
|
|
7
|
-
}
|
|
8
|
-
ObjectElement(objectElement) {
|
|
9
|
-
this.parentEdges.set(objectElement, this.parent);
|
|
10
|
-
this.parent = objectElement;
|
|
11
|
-
}
|
|
12
|
-
ArrayElement(arrayElement) {
|
|
13
|
-
this.parentEdges.set(arrayElement, this.parent);
|
|
14
|
-
this.parent = arrayElement;
|
|
15
|
-
}
|
|
16
|
-
MemberElement(memberElement) {
|
|
17
|
-
this.parentEdges.set(memberElement, this.parent);
|
|
18
|
-
this.parent = memberElement;
|
|
19
|
-
}
|
|
20
|
-
enter(element) {
|
|
21
|
-
this.parentEdges.set(element, this.parent);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Computes upwards edges from every child to its parent.
|
|
27
|
-
* @public
|
|
28
|
-
*/
|
|
29
|
-
const parents = element => {
|
|
30
|
-
const visitor = new Visitor();
|
|
31
|
-
visit(element, visitor);
|
|
32
|
-
return visitor.parentEdges;
|
|
33
|
-
};
|
|
34
|
-
export default parents;
|
package/src/traversal/reject.cjs
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
|
4
|
-
exports.__esModule = true;
|
|
5
|
-
exports.default = void 0;
|
|
6
|
-
var _ramda = require("ramda");
|
|
7
|
-
var _filter = _interopRequireDefault(require("./filter.cjs"));
|
|
8
|
-
/**
|
|
9
|
-
* Complement of filter.
|
|
10
|
-
* @public
|
|
11
|
-
*/
|
|
12
|
-
const reject = (predicate, element) => {
|
|
13
|
-
return (0, _filter.default)((0, _ramda.complement)(predicate), element);
|
|
14
|
-
};
|
|
15
|
-
var _default = exports.default = reject;
|