@speclynx/apidom-core 1.12.2 → 2.1.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 +25 -0
- package/NOTICE +16 -7
- package/README.md +102 -330
- package/dist/apidom-core.browser.js +13110 -10559
- 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
package/src/traversal/reject.mjs
DELETED
package/src/traversal/some.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 _ramdaAdjunct = require("ramda-adjunct");
|
|
7
|
-
var _find = _interopRequireDefault(require("./find.cjs"));
|
|
8
|
-
/**
|
|
9
|
-
* Tests whether at least one element passes the predicate.
|
|
10
|
-
* @public
|
|
11
|
-
*/
|
|
12
|
-
const some = (predicate, element) => {
|
|
13
|
-
return (0, _ramdaAdjunct.isNotUndefined)((0, _find.default)(predicate, element));
|
|
14
|
-
};
|
|
15
|
-
var _default = exports.default = some;
|
package/src/traversal/some.mjs
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { isNotUndefined } from 'ramda-adjunct';
|
|
2
|
-
import find from "./find.mjs";
|
|
3
|
-
/**
|
|
4
|
-
* Tests whether at least one element passes the predicate.
|
|
5
|
-
* @public
|
|
6
|
-
*/
|
|
7
|
-
const some = (predicate, element) => {
|
|
8
|
-
return isNotUndefined(find(predicate, element));
|
|
9
|
-
};
|
|
10
|
-
export default some;
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.default = exports.CallbackVisitor = void 0;
|
|
5
|
-
var _ramda = require("ramda");
|
|
6
|
-
var _ramdaAdjunct = require("ramda-adjunct");
|
|
7
|
-
var _visitor = require("./visitor.cjs");
|
|
8
|
-
var _index = require("../predicates/index.cjs");
|
|
9
|
-
/**
|
|
10
|
-
* @public
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* @public
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
class CallbackVisitor extends _visitor.PredicateVisitor {
|
|
18
|
-
callback;
|
|
19
|
-
constructor({
|
|
20
|
-
callback = _ramdaAdjunct.noop,
|
|
21
|
-
...rest
|
|
22
|
-
} = {}) {
|
|
23
|
-
super({
|
|
24
|
-
...rest
|
|
25
|
-
});
|
|
26
|
-
this.callback = callback;
|
|
27
|
-
}
|
|
28
|
-
enter(element) {
|
|
29
|
-
if (this.predicate(element)) {
|
|
30
|
-
this.callback(element);
|
|
31
|
-
return this.returnOnTrue;
|
|
32
|
-
}
|
|
33
|
-
return this.returnOnFalse;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Executes the callback on this element and all descendants.
|
|
39
|
-
* @public
|
|
40
|
-
*/
|
|
41
|
-
exports.CallbackVisitor = CallbackVisitor;
|
|
42
|
-
const traverse = (options, element) => {
|
|
43
|
-
let callback;
|
|
44
|
-
let predicate;
|
|
45
|
-
if ((0, _ramdaAdjunct.isFunction)(options)) {
|
|
46
|
-
callback = options;
|
|
47
|
-
predicate = _index.isElement;
|
|
48
|
-
} else {
|
|
49
|
-
callback = (0, _ramda.pathOr)(_ramdaAdjunct.noop, ['callback'], options);
|
|
50
|
-
predicate = (0, _ramda.pathOr)(_index.isElement, ['predicate'], options);
|
|
51
|
-
}
|
|
52
|
-
const visitor = new CallbackVisitor({
|
|
53
|
-
callback,
|
|
54
|
-
predicate
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
// @ts-ignore
|
|
58
|
-
(0, _visitor.visit)(element, visitor);
|
|
59
|
-
};
|
|
60
|
-
var _default = exports.default = traverse;
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { pathOr } from 'ramda';
|
|
2
|
-
import { isFunction, noop } from 'ramda-adjunct';
|
|
3
|
-
import { visit, PredicateVisitor } from "./visitor.mjs";
|
|
4
|
-
import { isElement } from "../predicates/index.mjs";
|
|
5
|
-
/**
|
|
6
|
-
* @public
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* @public
|
|
10
|
-
*/
|
|
11
|
-
export class CallbackVisitor extends PredicateVisitor {
|
|
12
|
-
callback;
|
|
13
|
-
constructor({
|
|
14
|
-
callback = noop,
|
|
15
|
-
...rest
|
|
16
|
-
} = {}) {
|
|
17
|
-
super({
|
|
18
|
-
...rest
|
|
19
|
-
});
|
|
20
|
-
this.callback = callback;
|
|
21
|
-
}
|
|
22
|
-
enter(element) {
|
|
23
|
-
if (this.predicate(element)) {
|
|
24
|
-
this.callback(element);
|
|
25
|
-
return this.returnOnTrue;
|
|
26
|
-
}
|
|
27
|
-
return this.returnOnFalse;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Executes the callback on this element and all descendants.
|
|
33
|
-
* @public
|
|
34
|
-
*/
|
|
35
|
-
const traverse = (options, element) => {
|
|
36
|
-
let callback;
|
|
37
|
-
let predicate;
|
|
38
|
-
if (isFunction(options)) {
|
|
39
|
-
callback = options;
|
|
40
|
-
predicate = isElement;
|
|
41
|
-
} else {
|
|
42
|
-
callback = pathOr(noop, ['callback'], options);
|
|
43
|
-
predicate = pathOr(isElement, ['predicate'], options);
|
|
44
|
-
}
|
|
45
|
-
const visitor = new CallbackVisitor({
|
|
46
|
-
callback,
|
|
47
|
-
predicate
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
// @ts-ignore
|
|
51
|
-
visit(element, visitor);
|
|
52
|
-
};
|
|
53
|
-
export default traverse;
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.visit = exports.keyMapDefault = exports.isNode = exports.getNodeType = exports.cloneNode = exports.PredicateVisitor = void 0;
|
|
5
|
-
var _ramda = require("ramda");
|
|
6
|
-
var _ramdaAdjunct = require("ramda-adjunct");
|
|
7
|
-
var _apidomAst = require("@speclynx/apidom-ast");
|
|
8
|
-
exports.BREAK = _apidomAst.BREAK;
|
|
9
|
-
exports.mergeAllVisitors = _apidomAst.mergeAllVisitors;
|
|
10
|
-
var _index = require("../predicates/index.cjs");
|
|
11
|
-
var _index2 = require("../clone/index.cjs");
|
|
12
|
-
/**
|
|
13
|
-
* @public
|
|
14
|
-
*/
|
|
15
|
-
const getNodeType = element => {
|
|
16
|
-
/*
|
|
17
|
-
* We're translating every possible higher element type to primitive minim type here.
|
|
18
|
-
* We're using polymorphism to recognize any higher element type as ObjectElement or ArrayElement.
|
|
19
|
-
* Using polymorphism allows us to assume any namespace.
|
|
20
|
-
*
|
|
21
|
-
* There is a problem with naming visitor methods described here: https://github.com/babel/babel/discussions/12874
|
|
22
|
-
*/
|
|
23
|
-
return (0, _index.isObjectElement)(element) ? 'ObjectElement' : (0, _index.isArrayElement)(element) ? 'ArrayElement' : (0, _index.isMemberElement)(element) ? 'MemberElement' : (0, _index.isStringElement)(element) ? 'StringElement' : (0, _index.isBooleanElement)(element) ? 'BooleanElement' : (0, _index.isNumberElement)(element) ? 'NumberElement' : (0, _index.isNullElement)(element) ? 'NullElement' : (0, _index.isLinkElement)(element) ? 'LinkElement' : (0, _index.isRefElement)(element) ? 'RefElement' : undefined;
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* @public
|
|
28
|
-
*/
|
|
29
|
-
exports.getNodeType = getNodeType;
|
|
30
|
-
const cloneNode = node => {
|
|
31
|
-
if ((0, _index.isElement)(node)) {
|
|
32
|
-
return (0, _index2.cloneShallow)(node);
|
|
33
|
-
}
|
|
34
|
-
return (0, _apidomAst.cloneNode)(node);
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
// isNode :: Node -> Boolean
|
|
38
|
-
exports.cloneNode = cloneNode;
|
|
39
|
-
const isNode = exports.isNode = (0, _ramda.pipe)(getNodeType, _ramdaAdjunct.isString);
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* @public
|
|
43
|
-
*/
|
|
44
|
-
const keyMapDefault = exports.keyMapDefault = {
|
|
45
|
-
ObjectElement: ['content'],
|
|
46
|
-
ArrayElement: ['content'],
|
|
47
|
-
MemberElement: ['key', 'value'],
|
|
48
|
-
StringElement: [],
|
|
49
|
-
BooleanElement: [],
|
|
50
|
-
NumberElement: [],
|
|
51
|
-
NullElement: [],
|
|
52
|
-
RefElement: [],
|
|
53
|
-
LinkElement: [],
|
|
54
|
-
Annotation: [],
|
|
55
|
-
Comment: [],
|
|
56
|
-
ParseResultElement: ['content'],
|
|
57
|
-
SourceMap: ['content']
|
|
58
|
-
};
|
|
59
|
-
class PredicateVisitor {
|
|
60
|
-
result;
|
|
61
|
-
predicate;
|
|
62
|
-
returnOnTrue;
|
|
63
|
-
returnOnFalse;
|
|
64
|
-
constructor({
|
|
65
|
-
predicate = _ramda.F,
|
|
66
|
-
returnOnTrue,
|
|
67
|
-
returnOnFalse
|
|
68
|
-
} = {}) {
|
|
69
|
-
this.result = [];
|
|
70
|
-
this.predicate = predicate;
|
|
71
|
-
this.returnOnTrue = returnOnTrue;
|
|
72
|
-
this.returnOnFalse = returnOnFalse;
|
|
73
|
-
}
|
|
74
|
-
enter(element) {
|
|
75
|
-
if (this.predicate(element)) {
|
|
76
|
-
this.result.push(element);
|
|
77
|
-
return this.returnOnTrue;
|
|
78
|
-
}
|
|
79
|
-
return this.returnOnFalse;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* @public
|
|
85
|
-
*/
|
|
86
|
-
exports.PredicateVisitor = PredicateVisitor;
|
|
87
|
-
const visit = (root,
|
|
88
|
-
// @ts-ignore
|
|
89
|
-
visitor, {
|
|
90
|
-
keyMap = keyMapDefault,
|
|
91
|
-
...rest
|
|
92
|
-
} = {}) => {
|
|
93
|
-
// @ts-ignore
|
|
94
|
-
return (0, _apidomAst.visit)(root, visitor, {
|
|
95
|
-
// @ts-ignore
|
|
96
|
-
keyMap,
|
|
97
|
-
// @ts-ignore
|
|
98
|
-
nodeTypeGetter: getNodeType,
|
|
99
|
-
nodePredicate: isNode,
|
|
100
|
-
nodeCloneFn: cloneNode,
|
|
101
|
-
...rest
|
|
102
|
-
});
|
|
103
|
-
};
|
|
104
|
-
|
|
105
|
-
// @ts-ignore
|
|
106
|
-
exports.visit = visit;
|
|
107
|
-
visit[Symbol.for('nodejs.util.promisify.custom')] = async (root,
|
|
108
|
-
// @ts-ignore
|
|
109
|
-
visitor, {
|
|
110
|
-
keyMap = keyMapDefault,
|
|
111
|
-
...rest
|
|
112
|
-
} = {}) => {
|
|
113
|
-
// @ts-ignore
|
|
114
|
-
return _apidomAst.visit[Symbol.for('nodejs.util.promisify.custom')](root, visitor, {
|
|
115
|
-
// @ts-ignore
|
|
116
|
-
keyMap,
|
|
117
|
-
// @ts-ignore
|
|
118
|
-
nodeTypeGetter: getNodeType,
|
|
119
|
-
nodePredicate: isNode,
|
|
120
|
-
nodeCloneFn: cloneNode,
|
|
121
|
-
...rest
|
|
122
|
-
});
|
|
123
|
-
};
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import { F as stubFalse, pipe } from 'ramda';
|
|
2
|
-
import { isString } from 'ramda-adjunct';
|
|
3
|
-
import { visit as astVisit, BREAK, mergeAllVisitors, cloneNode as cloneNodeDefault } from '@speclynx/apidom-ast';
|
|
4
|
-
import { isElement, isMemberElement, isArrayElement, isStringElement, isBooleanElement, isLinkElement, isRefElement, isObjectElement, isNullElement, isNumberElement } from "../predicates/index.mjs";
|
|
5
|
-
import { cloneShallow } from "../clone/index.mjs";
|
|
6
|
-
export { BREAK, mergeAllVisitors };
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* @public
|
|
10
|
-
*/
|
|
11
|
-
export const getNodeType = element => {
|
|
12
|
-
/*
|
|
13
|
-
* We're translating every possible higher element type to primitive minim type here.
|
|
14
|
-
* We're using polymorphism to recognize any higher element type as ObjectElement or ArrayElement.
|
|
15
|
-
* Using polymorphism allows us to assume any namespace.
|
|
16
|
-
*
|
|
17
|
-
* There is a problem with naming visitor methods described here: https://github.com/babel/babel/discussions/12874
|
|
18
|
-
*/
|
|
19
|
-
return isObjectElement(element) ? 'ObjectElement' : isArrayElement(element) ? 'ArrayElement' : isMemberElement(element) ? 'MemberElement' : isStringElement(element) ? 'StringElement' : isBooleanElement(element) ? 'BooleanElement' : isNumberElement(element) ? 'NumberElement' : isNullElement(element) ? 'NullElement' : isLinkElement(element) ? 'LinkElement' : isRefElement(element) ? 'RefElement' : undefined;
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* @public
|
|
24
|
-
*/
|
|
25
|
-
export const cloneNode = node => {
|
|
26
|
-
if (isElement(node)) {
|
|
27
|
-
return cloneShallow(node);
|
|
28
|
-
}
|
|
29
|
-
return cloneNodeDefault(node);
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
// isNode :: Node -> Boolean
|
|
33
|
-
export const isNode = pipe(getNodeType, isString);
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* @public
|
|
37
|
-
*/
|
|
38
|
-
export const keyMapDefault = {
|
|
39
|
-
ObjectElement: ['content'],
|
|
40
|
-
ArrayElement: ['content'],
|
|
41
|
-
MemberElement: ['key', 'value'],
|
|
42
|
-
StringElement: [],
|
|
43
|
-
BooleanElement: [],
|
|
44
|
-
NumberElement: [],
|
|
45
|
-
NullElement: [],
|
|
46
|
-
RefElement: [],
|
|
47
|
-
LinkElement: [],
|
|
48
|
-
Annotation: [],
|
|
49
|
-
Comment: [],
|
|
50
|
-
ParseResultElement: ['content'],
|
|
51
|
-
SourceMap: ['content']
|
|
52
|
-
};
|
|
53
|
-
export class PredicateVisitor {
|
|
54
|
-
result;
|
|
55
|
-
predicate;
|
|
56
|
-
returnOnTrue;
|
|
57
|
-
returnOnFalse;
|
|
58
|
-
constructor({
|
|
59
|
-
predicate = stubFalse,
|
|
60
|
-
returnOnTrue,
|
|
61
|
-
returnOnFalse
|
|
62
|
-
} = {}) {
|
|
63
|
-
this.result = [];
|
|
64
|
-
this.predicate = predicate;
|
|
65
|
-
this.returnOnTrue = returnOnTrue;
|
|
66
|
-
this.returnOnFalse = returnOnFalse;
|
|
67
|
-
}
|
|
68
|
-
enter(element) {
|
|
69
|
-
if (this.predicate(element)) {
|
|
70
|
-
this.result.push(element);
|
|
71
|
-
return this.returnOnTrue;
|
|
72
|
-
}
|
|
73
|
-
return this.returnOnFalse;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* @public
|
|
79
|
-
*/
|
|
80
|
-
export const visit = (root,
|
|
81
|
-
// @ts-ignore
|
|
82
|
-
visitor, {
|
|
83
|
-
keyMap = keyMapDefault,
|
|
84
|
-
...rest
|
|
85
|
-
} = {}) => {
|
|
86
|
-
// @ts-ignore
|
|
87
|
-
return astVisit(root, visitor, {
|
|
88
|
-
// @ts-ignore
|
|
89
|
-
keyMap,
|
|
90
|
-
// @ts-ignore
|
|
91
|
-
nodeTypeGetter: getNodeType,
|
|
92
|
-
nodePredicate: isNode,
|
|
93
|
-
nodeCloneFn: cloneNode,
|
|
94
|
-
...rest
|
|
95
|
-
});
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
// @ts-ignore
|
|
99
|
-
visit[Symbol.for('nodejs.util.promisify.custom')] = async (root,
|
|
100
|
-
// @ts-ignore
|
|
101
|
-
visitor, {
|
|
102
|
-
keyMap = keyMapDefault,
|
|
103
|
-
...rest
|
|
104
|
-
} = {}) => {
|
|
105
|
-
// @ts-ignore
|
|
106
|
-
return astVisit[Symbol.for('nodejs.util.promisify.custom')](root, visitor, {
|
|
107
|
-
// @ts-ignore
|
|
108
|
-
keyMap,
|
|
109
|
-
// @ts-ignore
|
|
110
|
-
nodeTypeGetter: getNodeType,
|
|
111
|
-
nodePredicate: isNode,
|
|
112
|
-
nodeCloneFn: cloneNode,
|
|
113
|
-
...rest
|
|
114
|
-
});
|
|
115
|
-
};
|
package/src/util.cjs
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.dereference = void 0;
|
|
5
|
-
var _ramda = require("ramda");
|
|
6
|
-
var _ramdaAdjunct = require("ramda-adjunct");
|
|
7
|
-
/**
|
|
8
|
-
* This dereference algorithm is used exclusively for dereferencing specification objects.
|
|
9
|
-
* It doesn't handle circular references of external references and works on objects only (not arrays).
|
|
10
|
-
* @public
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
const dereference = (object, root) => {
|
|
14
|
-
const rootObject = (0, _ramda.defaultTo)(object, root);
|
|
15
|
-
return (0, _ramda.mapObjIndexed)(val => {
|
|
16
|
-
if ((0, _ramdaAdjunct.isPlainObject)(val) && (0, _ramda.has)('$ref', val) && (0, _ramda.propSatisfies)(_ramdaAdjunct.isString, '$ref', val)) {
|
|
17
|
-
const $ref = (0, _ramda.path)(['$ref'], val);
|
|
18
|
-
// @ts-ignore
|
|
19
|
-
const pointer = (0, _ramdaAdjunct.trimCharsStart)('#/', $ref);
|
|
20
|
-
return (0, _ramda.path)(pointer.split('/'), rootObject);
|
|
21
|
-
}
|
|
22
|
-
if ((0, _ramdaAdjunct.isPlainObject)(val)) {
|
|
23
|
-
return dereference(val, rootObject);
|
|
24
|
-
}
|
|
25
|
-
return val;
|
|
26
|
-
}, object);
|
|
27
|
-
};
|
|
28
|
-
exports.dereference = dereference;
|
package/src/util.mjs
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { defaultTo, has, mapObjIndexed, path, propSatisfies } from 'ramda';
|
|
2
|
-
import { isPlainObject, isString, trimCharsStart } from 'ramda-adjunct';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* This dereference algorithm is used exclusively for dereferencing specification objects.
|
|
6
|
-
* It doesn't handle circular references of external references and works on objects only (not arrays).
|
|
7
|
-
* @public
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
export const dereference = (object, root) => {
|
|
11
|
-
const rootObject = defaultTo(object, root);
|
|
12
|
-
return mapObjIndexed(val => {
|
|
13
|
-
if (isPlainObject(val) && has('$ref', val) && propSatisfies(isString, '$ref', val)) {
|
|
14
|
-
const $ref = path(['$ref'], val);
|
|
15
|
-
// @ts-ignore
|
|
16
|
-
const pointer = trimCharsStart('#/', $ref);
|
|
17
|
-
return path(pointer.split('/'), rootObject);
|
|
18
|
-
}
|
|
19
|
-
if (isPlainObject(val)) {
|
|
20
|
-
return dereference(val, rootObject);
|
|
21
|
-
}
|
|
22
|
-
return val;
|
|
23
|
-
}, object);
|
|
24
|
-
};
|
package/types/minim.d.ts
DELETED
|
@@ -1,236 +0,0 @@
|
|
|
1
|
-
/* eslint-disable spaced-comment, max-classes-per-file */
|
|
2
|
-
/// <reference types="node" />
|
|
3
|
-
|
|
4
|
-
declare module 'minim' {
|
|
5
|
-
export type Meta = Record<string, any>;
|
|
6
|
-
export type Attributes = Record<string, any>;
|
|
7
|
-
export type Predicate = (element: Element) => boolean;
|
|
8
|
-
type Callback = (element: Element) => void;
|
|
9
|
-
|
|
10
|
-
export function refract(value: any): Element;
|
|
11
|
-
|
|
12
|
-
export class Element {
|
|
13
|
-
static refract(value: any, options?: Record<string, any>): Element;
|
|
14
|
-
|
|
15
|
-
public element: string;
|
|
16
|
-
|
|
17
|
-
public meta: ObjectElement;
|
|
18
|
-
|
|
19
|
-
public attributes: ObjectElement;
|
|
20
|
-
|
|
21
|
-
public classes: ArrayElement;
|
|
22
|
-
|
|
23
|
-
public children: ArraySlice;
|
|
24
|
-
|
|
25
|
-
public parent: Element;
|
|
26
|
-
|
|
27
|
-
public content: Array<unknown>;
|
|
28
|
-
|
|
29
|
-
constructor(content?: Array<unknown>, meta?: Meta, attributes?: Attributes);
|
|
30
|
-
|
|
31
|
-
set id(element: Element);
|
|
32
|
-
|
|
33
|
-
get id(): Element;
|
|
34
|
-
|
|
35
|
-
equals(value: any): boolean;
|
|
36
|
-
|
|
37
|
-
toValue(): any;
|
|
38
|
-
|
|
39
|
-
getMetaProperty(name: string, value?: any): any;
|
|
40
|
-
|
|
41
|
-
setMetaProperty(name: string, value: any): void;
|
|
42
|
-
|
|
43
|
-
freeze(): void;
|
|
44
|
-
|
|
45
|
-
clone(): Element;
|
|
46
|
-
|
|
47
|
-
primitive(): string | undefined;
|
|
48
|
-
|
|
49
|
-
[key: string]: unknown;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
interface Type<T> extends Element {
|
|
53
|
-
new (...args: any[]): T;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
type ExtendingElement<T extends Element = Element> = Record<string, T>;
|
|
57
|
-
|
|
58
|
-
export class Namespace {
|
|
59
|
-
get elements(): Record<string, Element>;
|
|
60
|
-
|
|
61
|
-
toRefract(element: Element): JSON;
|
|
62
|
-
|
|
63
|
-
toElement(value: any): Element;
|
|
64
|
-
|
|
65
|
-
fromRefract(doc: Record<string, any> | Array<any>): Element;
|
|
66
|
-
|
|
67
|
-
register(name: string, elementClass: any): Namespace;
|
|
68
|
-
|
|
69
|
-
detect(test: any, elementClass: any, givenPrepend: boolean): Namespace;
|
|
70
|
-
|
|
71
|
-
use(plugin: NamespacePlugin): Namespace;
|
|
72
|
-
|
|
73
|
-
getElementClass(element: string): typeof Element;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
export interface NamespacePluginOptions {
|
|
77
|
-
base: Namespace;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
export interface NamespacePlugin {
|
|
81
|
-
namespace(options: NamespacePluginOptions): Namespace;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
export class StringElement extends Element {
|
|
85
|
-
constructor(content?: string, meta?: Meta, attributes?: Attributes);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
export class NumberElement extends Element {
|
|
89
|
-
constructor(content?: number, meta?: Meta, attributes?: Attributes);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
export class NullElement extends Element {}
|
|
93
|
-
|
|
94
|
-
export class BooleanElement extends Element {
|
|
95
|
-
constructor(content?: boolean, meta?: Meta, attributes?: Attributes);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
export class ArrayElement extends Element {
|
|
99
|
-
constructor(content?: unknown[], meta?: Meta, attributes?: Attributes);
|
|
100
|
-
|
|
101
|
-
first: Element | undefined;
|
|
102
|
-
|
|
103
|
-
second: Element | undefined;
|
|
104
|
-
|
|
105
|
-
get(index: string | number): any;
|
|
106
|
-
|
|
107
|
-
set(index: string | number, element: Element): void;
|
|
108
|
-
|
|
109
|
-
find(predicate: Predicate): ArraySlice;
|
|
110
|
-
|
|
111
|
-
findElements(condition: Predicate, givenOptions: any): Array<Element>;
|
|
112
|
-
|
|
113
|
-
filter(predicate: Predicate): ArraySlice;
|
|
114
|
-
|
|
115
|
-
contains(value: any): boolean;
|
|
116
|
-
|
|
117
|
-
includes(value: any): boolean;
|
|
118
|
-
|
|
119
|
-
push(value: any): ArrayElement;
|
|
120
|
-
|
|
121
|
-
concat(value: ArrayElement): ArrayElement;
|
|
122
|
-
|
|
123
|
-
['fantasy-land/map'](transform: any): ArrayElement;
|
|
124
|
-
|
|
125
|
-
forEach(callback: (item: Element, index: number) => void, thisArg?: unknown): void;
|
|
126
|
-
|
|
127
|
-
[Symbol.iterator](): IterableIterator<any>;
|
|
128
|
-
|
|
129
|
-
get length(): number;
|
|
130
|
-
|
|
131
|
-
map(callback: (element: Element) => Element, thisArg?: unknown): Array<Element>;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
export class ObjectElement extends ArrayElement {
|
|
135
|
-
constructor(content?: Record<string, unknown>, meta?: Meta, attributes?: Attributes);
|
|
136
|
-
|
|
137
|
-
remove(name: string): Element;
|
|
138
|
-
|
|
139
|
-
set(key: string | StringElement | number, value: any): ObjectElement;
|
|
140
|
-
|
|
141
|
-
hasKey(value: string): boolean;
|
|
142
|
-
|
|
143
|
-
getKey(value: string): StringElement;
|
|
144
|
-
|
|
145
|
-
getMember(key: string): MemberElement;
|
|
146
|
-
|
|
147
|
-
// @ts-ignore
|
|
148
|
-
forEach(
|
|
149
|
-
callback: (value: Element, key: Element, item: Element) => void,
|
|
150
|
-
thisArg?: unknown,
|
|
151
|
-
): void;
|
|
152
|
-
|
|
153
|
-
map(
|
|
154
|
-
callback: (value: Element, key: Element, member: MemberElement) => MemberElement,
|
|
155
|
-
thisArg?: unknown,
|
|
156
|
-
): Array<MemberElement>;
|
|
157
|
-
|
|
158
|
-
keys(): unknown[];
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
export class MemberElement extends Element {
|
|
162
|
-
constructor(key?: unknown, value?: unknown, meta?: Meta, attributes?: Attributes);
|
|
163
|
-
|
|
164
|
-
get key(): unknown;
|
|
165
|
-
|
|
166
|
-
set key(key: unknown);
|
|
167
|
-
|
|
168
|
-
get value(): unknown;
|
|
169
|
-
|
|
170
|
-
set value(value: unknown);
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
export class LinkElement extends Element {
|
|
174
|
-
constructor(content?: unknown, meta?: Meta, attributes?: Attributes);
|
|
175
|
-
|
|
176
|
-
get relation(): string;
|
|
177
|
-
|
|
178
|
-
set relation(relation: string);
|
|
179
|
-
|
|
180
|
-
get href(): string;
|
|
181
|
-
|
|
182
|
-
set href(key: string);
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
export class RefElement extends Element {
|
|
186
|
-
constructor(content?: unknown, meta?: Meta, attributes?: Attributes);
|
|
187
|
-
|
|
188
|
-
get path(): string;
|
|
189
|
-
|
|
190
|
-
set path(path: string);
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
export class ArraySlice {
|
|
194
|
-
constructor(elements?: Array<unknown>);
|
|
195
|
-
|
|
196
|
-
get length(): number;
|
|
197
|
-
|
|
198
|
-
get first(): Element;
|
|
199
|
-
|
|
200
|
-
get isEmpty(): boolean;
|
|
201
|
-
|
|
202
|
-
filter(predicate: Predicate, thisArg?: unknown): ArraySlice;
|
|
203
|
-
|
|
204
|
-
reject(predicate: Predicate, thisArg?: unknown): ArraySlice;
|
|
205
|
-
|
|
206
|
-
forEach(callback: Callback): void;
|
|
207
|
-
|
|
208
|
-
reduce<T>(callback: (acc: T, cur: Element) => T, initialValue: T): ArraySlice;
|
|
209
|
-
|
|
210
|
-
map(callback: (currentValue: any, index: number) => any, thisArg?: unknown): ArraySlice;
|
|
211
|
-
|
|
212
|
-
hasKey(value: string): boolean;
|
|
213
|
-
|
|
214
|
-
get<T extends Element>(index: number): T;
|
|
215
|
-
|
|
216
|
-
[Symbol.iterator](): IterableIterator<any>;
|
|
217
|
-
|
|
218
|
-
toValue(): any;
|
|
219
|
-
|
|
220
|
-
clone(): ArraySlice;
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
export class ObjectSlice extends ArraySlice {
|
|
224
|
-
clone(): ObjectSlice;
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
export class KeyValuePair {
|
|
228
|
-
public key: Element | undefined;
|
|
229
|
-
|
|
230
|
-
public value: Element | undefined;
|
|
231
|
-
|
|
232
|
-
constructor(key?: Element, value?: Element);
|
|
233
|
-
|
|
234
|
-
clone(): KeyValuePair;
|
|
235
|
-
}
|
|
236
|
-
}
|