@swagger-api/apidom-core 0.76.2 → 0.77.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 +11 -0
- package/README.md +53 -5
- package/cjs/clone/errors/CloneError.cjs +7 -0
- package/cjs/clone/errors/DeepCloneError.cjs +8 -0
- package/cjs/clone/errors/ShallowCloneError.cjs +8 -0
- package/cjs/clone/index.cjs +105 -0
- package/cjs/deepmerge.cjs +9 -7
- package/cjs/elements/Annotation.cjs +1 -2
- package/cjs/elements/Comment.cjs +1 -2
- package/cjs/elements/ParseResult.cjs +1 -2
- package/cjs/elements/SourceMap.cjs +1 -2
- package/cjs/index.cjs +61 -101
- package/cjs/media-types.cjs +1 -2
- package/cjs/namespace.cjs +1 -2
- package/cjs/predicates/helpers.cjs +1 -2
- package/cjs/predicates/index.cjs +14 -28
- package/cjs/refractor/index.cjs +1 -2
- package/cjs/refractor/plugins/element-identity.cjs +1 -2
- package/cjs/refractor/plugins/semantic-element-identity.cjs +1 -2
- package/cjs/refractor/toolbox.cjs +1 -2
- package/cjs/transcluder/Transcluder.cjs +1 -2
- package/cjs/transcluder/index.cjs +1 -2
- package/cjs/transformers/dehydrate.cjs +14 -0
- package/cjs/transformers/from.cjs +27 -0
- package/cjs/{serializers → transformers/serializers}/json.cjs +1 -2
- package/cjs/{serializers → transformers/serializers}/value/ast/ephemeral-array.cjs +1 -2
- package/cjs/{serializers → transformers/serializers}/value/ast/ephemeral-object.cjs +1 -2
- package/cjs/{serializers → transformers/serializers}/value/index.cjs +8 -2
- package/cjs/{serializers → transformers/serializers}/value/visitor.cjs +1 -1
- package/cjs/{serializers → transformers/serializers}/yaml-1-2.cjs +2 -3
- package/cjs/{sexprs.cjs → transformers/sexprs.cjs} +2 -3
- package/cjs/transformers/to-string.cjs +15 -0
- package/cjs/traversal/filter.cjs +1 -2
- package/cjs/traversal/find.cjs +1 -2
- package/cjs/traversal/findAtOffset.cjs +4 -4
- package/cjs/traversal/parents.cjs +1 -2
- package/cjs/traversal/reject.cjs +1 -2
- package/cjs/traversal/some.cjs +1 -2
- package/cjs/traversal/traverse.cjs +2 -4
- package/cjs/traversal/visitor.cjs +17 -8
- package/dist/apidom-core.browser.js +661 -375
- package/dist/apidom-core.browser.min.js +1 -1
- package/es/clone/errors/CloneError.mjs +3 -0
- package/es/clone/errors/DeepCloneError.mjs +3 -0
- package/es/clone/errors/ShallowCloneError.mjs +3 -0
- package/es/clone/index.mjs +98 -0
- package/es/deepmerge.mjs +9 -8
- package/es/index.mjs +12 -38
- package/es/transformers/dehydrate.mjs +9 -0
- package/es/transformers/from.mjs +22 -0
- package/es/{serializers → transformers/serializers}/value/index.mjs +7 -0
- package/es/{serializers → transformers/serializers}/value/visitor.mjs +1 -1
- package/es/{serializers → transformers/serializers}/yaml-1-2.mjs +1 -1
- package/es/{sexprs.mjs → transformers/sexprs.mjs} +1 -1
- package/es/transformers/to-string.mjs +10 -0
- package/es/traversal/findAtOffset.mjs +3 -2
- package/es/traversal/visitor.mjs +13 -2
- package/package.json +4 -4
- package/types/dist.d.ts +47 -32
- package/types/minim.d.ts +14 -2
- /package/es/{serializers → transformers/serializers}/json.mjs +0 -0
- /package/es/{serializers → transformers/serializers}/value/ast/ephemeral-array.mjs +0 -0
- /package/es/{serializers → transformers/serializers}/value/ast/ephemeral-object.mjs +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [0.77.0](https://github.com/swagger-api/apidom/compare/v0.76.2...v0.77.0) (2023-10-03)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- **core:** always perform immutable async traversal ([#3164](https://github.com/swagger-api/apidom/issues/3164)) ([a47f870](https://github.com/swagger-api/apidom/commit/a47f87018fcca235bd1490e1f014bcdd2430b2d5)), closes [#3110](https://github.com/swagger-api/apidom/issues/3110)
|
|
11
|
+
- **core:** always perform immutable traversal ([#3163](https://github.com/swagger-api/apidom/issues/3163)) ([f2fcab0](https://github.com/swagger-api/apidom/commit/f2fcab0c7a68ca0c39fae6165ff9b5fdf0f12e52)), closes [#3110](https://github.com/swagger-api/apidom/issues/3110)
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
- **core:** introduce functions for shallow and deep cloning ([#3158](https://github.com/swagger-api/apidom/issues/3158)) ([549a7ff](https://github.com/swagger-api/apidom/commit/549a7ff01396a0a9ecb02171c9f817bcfe0f4af6)), closes [#3110](https://github.com/swagger-api/apidom/issues/3110)
|
|
16
|
+
|
|
6
17
|
## [0.76.2](https://github.com/swagger-api/apidom/compare/v0.76.1...v0.76.2) (2023-09-08)
|
|
7
18
|
|
|
8
19
|
### Bug Fixes
|
package/README.md
CHANGED
|
@@ -560,14 +560,35 @@ traverse({ callback: console.dir, predicate: isNumberElement }, arrayElement); /
|
|
|
560
560
|
|
|
561
561
|
Computes upwards edges from every child to its parent.
|
|
562
562
|
|
|
563
|
+
#### ObjectElement example
|
|
564
|
+
|
|
563
565
|
```js
|
|
564
|
-
import {
|
|
566
|
+
import { parents, ObjectElement } from '@swagger-api/apidom-core';
|
|
565
567
|
|
|
566
|
-
const objectElement = new ObjectElement({
|
|
567
|
-
|
|
568
|
-
}
|
|
568
|
+
const objectElement = new ObjectElement({ key: 'value' });
|
|
569
|
+
const memberElement = objectElement.getMember('key');
|
|
570
|
+
const { key: keyElement, value: valueElement } = memberElement;
|
|
569
571
|
|
|
570
|
-
const parentEdges = parents(objectElement); // => WeakMap<
|
|
572
|
+
const parentEdges = parents(objectElement); // => WeakMap<ChildElement, ParentElement>
|
|
573
|
+
|
|
574
|
+
parentEdges.get(memberElement) === objectElement; // => true
|
|
575
|
+
parentEdges.get(keyElement) === memberElement; // => true
|
|
576
|
+
parentEdges.get(valueElement) === memberElement; // => true
|
|
577
|
+
```
|
|
578
|
+
|
|
579
|
+
#### ArrayElement example
|
|
580
|
+
|
|
581
|
+
```js
|
|
582
|
+
import { parents, ArrayElement, StringElement } from '@swagger-api/apidom-core';
|
|
583
|
+
|
|
584
|
+
const itemElement1 = new StringElement('item1');
|
|
585
|
+
const itemElement2 = new StringElement('item2');
|
|
586
|
+
const arrayElement = new ArrayElement([itemElement1, itemElement2]);
|
|
587
|
+
|
|
588
|
+
const parentEdges = parents(arrayElement); // => WeakMap<ChildElement, ParentElement>
|
|
589
|
+
|
|
590
|
+
parentEdges.get(itemElement1) === arrayElement; // => true
|
|
591
|
+
parentEdges.get(itemElement2) === arrayElement; // => true
|
|
571
592
|
```
|
|
572
593
|
|
|
573
594
|
---
|
|
@@ -677,3 +698,30 @@ const numberElement = new NumberElement(1);
|
|
|
677
698
|
|
|
678
699
|
toString(numberElement); // => '{"element":"number","content":1}'
|
|
679
700
|
```
|
|
701
|
+
|
|
702
|
+
## Cloning
|
|
703
|
+
|
|
704
|
+
Following functions provide mechanism for creating shallow and deep copies of ApiDOM elements.
|
|
705
|
+
|
|
706
|
+
### Shallow cloning
|
|
707
|
+
|
|
708
|
+
Creates shallow clone of ApiDOM element.
|
|
709
|
+
|
|
710
|
+
```js
|
|
711
|
+
import { cloneShallow, ObjectElement } from '@swagger-api/apidom-core';
|
|
712
|
+
|
|
713
|
+
const objectElement = new ObjectElement({ a: 'b' });
|
|
714
|
+
const objectElementShallowClone = cloneShallow(objectElement);
|
|
715
|
+
```
|
|
716
|
+
|
|
717
|
+
### Deep cloning
|
|
718
|
+
|
|
719
|
+
Creates deep clone of ApiDOM Element.
|
|
720
|
+
|
|
721
|
+
```js
|
|
722
|
+
import { cloneDeep, ObjectElement } from '@swagger-api/apidom-core';
|
|
723
|
+
|
|
724
|
+
const objectElement = new ObjectElement({ a: 'b' });
|
|
725
|
+
const objectElementDeepClone = cloneDeep(objectElement);
|
|
726
|
+
```
|
|
727
|
+
|
|
@@ -0,0 +1,8 @@
|
|
|
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 _CloneError = _interopRequireDefault(require("./CloneError.cjs"));
|
|
7
|
+
class DeepCloneError extends _CloneError.default {}
|
|
8
|
+
var _default = exports.default = DeepCloneError;
|
|
@@ -0,0 +1,8 @@
|
|
|
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 _CloneError = _interopRequireDefault(require("./CloneError.cjs"));
|
|
7
|
+
class ShallowCloneError extends _CloneError.default {}
|
|
8
|
+
var _default = exports.default = ShallowCloneError;
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.cloneShallow = exports.cloneDeep = void 0;
|
|
6
|
+
var _minim = require("minim");
|
|
7
|
+
var _index = require("../predicates/index.cjs");
|
|
8
|
+
var _DeepCloneError = _interopRequireDefault(require("./errors/DeepCloneError.cjs"));
|
|
9
|
+
var _ShallowCloneError = _interopRequireDefault(require("./errors/ShallowCloneError.cjs"));
|
|
10
|
+
const invokeClone = value => {
|
|
11
|
+
if (typeof (value == null ? void 0 : value.clone) === 'function') {
|
|
12
|
+
return value.clone();
|
|
13
|
+
}
|
|
14
|
+
return value;
|
|
15
|
+
};
|
|
16
|
+
const cloneDeep = value => {
|
|
17
|
+
if (value instanceof _minim.ObjectSlice) {
|
|
18
|
+
const items = [...value].map(invokeClone);
|
|
19
|
+
return new _minim.ObjectSlice(items);
|
|
20
|
+
}
|
|
21
|
+
if (value instanceof _minim.ArraySlice) {
|
|
22
|
+
const items = [...value].map(invokeClone);
|
|
23
|
+
return new _minim.ArraySlice(items);
|
|
24
|
+
}
|
|
25
|
+
if (typeof (value == null ? void 0 : value.clone) === 'function') {
|
|
26
|
+
return value.clone();
|
|
27
|
+
}
|
|
28
|
+
throw new _DeepCloneError.default("Value provided to cloneDeep function couldn't be cloned", {
|
|
29
|
+
value
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
exports.cloneDeep = cloneDeep;
|
|
33
|
+
cloneDeep.safe = value => {
|
|
34
|
+
try {
|
|
35
|
+
return cloneDeep(value);
|
|
36
|
+
} catch {
|
|
37
|
+
return value;
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
const cloneShallowKeyValuePair = keyValuePair => {
|
|
41
|
+
const {
|
|
42
|
+
key,
|
|
43
|
+
value
|
|
44
|
+
} = keyValuePair;
|
|
45
|
+
return new _minim.KeyValuePair(key, value);
|
|
46
|
+
};
|
|
47
|
+
const cloneShallowArraySlice = arraySlice => {
|
|
48
|
+
const items = [...arraySlice];
|
|
49
|
+
return new _minim.ArraySlice(items);
|
|
50
|
+
};
|
|
51
|
+
const cloneShallowObjectSlice = objectSlice => {
|
|
52
|
+
const items = [...objectSlice];
|
|
53
|
+
return new _minim.ObjectSlice(items);
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
/* eslint-disable no-underscore-dangle */
|
|
57
|
+
const cloneShallowElement = element => {
|
|
58
|
+
// @ts-ignore
|
|
59
|
+
const copy = new element.constructor();
|
|
60
|
+
copy.element = element.element;
|
|
61
|
+
if (element.meta.length > 0) {
|
|
62
|
+
copy._meta = cloneDeep(element.meta);
|
|
63
|
+
}
|
|
64
|
+
if (element.attributes.length > 0) {
|
|
65
|
+
copy._attributes = cloneDeep(element.attributes);
|
|
66
|
+
}
|
|
67
|
+
if ((0, _index.isElement)(element.content)) {
|
|
68
|
+
const content = element.content;
|
|
69
|
+
copy.content = cloneShallowElement(content);
|
|
70
|
+
} else if (Array.isArray(element.content)) {
|
|
71
|
+
copy.content = [...element.content];
|
|
72
|
+
} else if (element.content instanceof _minim.KeyValuePair) {
|
|
73
|
+
copy.content = cloneShallowKeyValuePair(element.content);
|
|
74
|
+
} else {
|
|
75
|
+
copy.content = element.content;
|
|
76
|
+
}
|
|
77
|
+
return copy;
|
|
78
|
+
};
|
|
79
|
+
/* eslint-enable */
|
|
80
|
+
|
|
81
|
+
const cloneShallow = value => {
|
|
82
|
+
if (value instanceof _minim.KeyValuePair) {
|
|
83
|
+
return cloneShallowKeyValuePair(value);
|
|
84
|
+
}
|
|
85
|
+
if (value instanceof _minim.ObjectSlice) {
|
|
86
|
+
return cloneShallowObjectSlice(value);
|
|
87
|
+
}
|
|
88
|
+
if (value instanceof _minim.ArraySlice) {
|
|
89
|
+
return cloneShallowArraySlice(value);
|
|
90
|
+
}
|
|
91
|
+
if ((0, _index.isElement)(value)) {
|
|
92
|
+
return cloneShallowElement(value);
|
|
93
|
+
}
|
|
94
|
+
throw new _ShallowCloneError.default("Value provided to cloneShallow function couldn't be cloned", {
|
|
95
|
+
value
|
|
96
|
+
});
|
|
97
|
+
};
|
|
98
|
+
exports.cloneShallow = cloneShallow;
|
|
99
|
+
cloneShallow.safe = value => {
|
|
100
|
+
try {
|
|
101
|
+
return cloneShallow(value);
|
|
102
|
+
} catch {
|
|
103
|
+
return value;
|
|
104
|
+
}
|
|
105
|
+
};
|
package/cjs/deepmerge.cjs
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
|
3
4
|
exports.__esModule = true;
|
|
4
5
|
exports.default = deepmerge;
|
|
5
6
|
var _minim = require("minim");
|
|
6
7
|
var _index = require("./predicates/index.cjs");
|
|
8
|
+
var _index2 = require("./clone/index.cjs");
|
|
9
|
+
var _index3 = _interopRequireDefault(require("./transformers/serializers/value/index.cjs"));
|
|
7
10
|
/* eslint-disable @typescript-eslint/no-use-before-define */
|
|
8
11
|
|
|
9
12
|
const emptyElement = element => {
|
|
10
|
-
const meta = element.meta
|
|
11
|
-
const attributes = element.attributes
|
|
13
|
+
const meta = (0, _index2.cloneDeep)(element.meta);
|
|
14
|
+
const attributes = (0, _index2.cloneDeep)(element.attributes);
|
|
12
15
|
|
|
13
16
|
// @ts-ignore
|
|
14
17
|
return new element.constructor(undefined, meta, attributes);
|
|
15
18
|
};
|
|
16
|
-
const cloneMemberElement = memberElement => new _minim.MemberElement(memberElement.key, memberElement.value, memberElement.meta.clone(), memberElement.attributes.clone());
|
|
17
19
|
const cloneUnlessOtherwiseSpecified = (element, options) => options.clone && options.isMergeableElement(element) ? deepmerge(emptyElement(element), element, options) : element;
|
|
18
20
|
const getMergeFunction = (keyElement, options) => {
|
|
19
21
|
if (typeof options.customMerge !== 'function') {
|
|
@@ -27,20 +29,20 @@ const mergeObjectElement = (targetElement, sourceElement, options) => {
|
|
|
27
29
|
const destination = (0, _index.isObjectElement)(targetElement) ? emptyElement(targetElement) : emptyElement(sourceElement);
|
|
28
30
|
if ((0, _index.isObjectElement)(targetElement)) {
|
|
29
31
|
targetElement.forEach((value, key, member) => {
|
|
30
|
-
const clonedMember =
|
|
32
|
+
const clonedMember = (0, _index2.cloneShallow)(member);
|
|
31
33
|
clonedMember.value = cloneUnlessOtherwiseSpecified(value, options);
|
|
32
34
|
destination.content.push(clonedMember);
|
|
33
35
|
});
|
|
34
36
|
}
|
|
35
37
|
sourceElement.forEach((value, key, member) => {
|
|
36
|
-
const keyValue =
|
|
38
|
+
const keyValue = (0, _index3.default)(key);
|
|
37
39
|
let clonedMember;
|
|
38
40
|
if ((0, _index.isObjectElement)(targetElement) && targetElement.hasKey(keyValue) && options.isMergeableElement(value)) {
|
|
39
41
|
const targetValue = targetElement.get(keyValue);
|
|
40
|
-
clonedMember =
|
|
42
|
+
clonedMember = (0, _index2.cloneShallow)(member);
|
|
41
43
|
clonedMember.value = getMergeFunction(key, options)(targetValue, value);
|
|
42
44
|
} else {
|
|
43
|
-
clonedMember =
|
|
45
|
+
clonedMember = (0, _index2.cloneShallow)(member);
|
|
44
46
|
clonedMember.value = cloneUnlessOtherwiseSpecified(value, options);
|
|
45
47
|
}
|
|
46
48
|
destination.remove(keyValue);
|
package/cjs/elements/Comment.cjs
CHANGED
package/cjs/index.cjs
CHANGED
|
@@ -1,20 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
|
4
3
|
var _interopRequireWildcard = require("@babel/runtime-corejs3/helpers/interopRequireWildcard").default;
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
|
5
5
|
exports.__esModule = true;
|
|
6
|
-
exports.visit = exports.traverse = exports.transclude = exports.toYAML = exports.toValue = exports.toString = exports.toJSON = exports.some = exports.sexprs = exports.reject = exports.refractorPluginSemanticElementIdentity = exports.refractorPluginElementIdentity = exports.refract = exports.parents = exports.namespace = exports.mergeAllVisitors = exports.keyMap = exports.isStringElement = exports.isSourceMapElement = exports.isRefElement = exports.isPrimitiveElement = exports.isParseResultElement = exports.isObjectElement = exports.isNumberElement = exports.isNullElement = exports.isMemberElement = exports.isLinkElement = exports.isElement = exports.isBooleanElement = exports.isArrayElement = exports.isAnnotationElement = exports.includesSymbols = exports.includesClasses = exports.hasElementSourceMap = exports.getNodeType = exports.from = exports.findAtOffset = exports.find = exports.filter = exports.dispatchRefractorPlugins = exports.dereference = exports.dehydrate = exports.deepmerge = exports.createPredicate = exports.createNamespace = exports.Transcluder = exports.StringElement = exports.SourceMapElement = exports.RefElement = exports.ParseResultElement = exports.ObjectSlice = exports.ObjectElement = exports.NumberElement = exports.NullElement = exports.Namespace = exports.MemberElement = exports.MediaTypes = exports.LinkElement = exports.KeyValuePair = exports.Element = exports.CommentElement = exports.BooleanElement = exports.BREAK = exports.ArraySlice = exports.ArrayElement = exports.AnnotationElement = void 0;
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
-
var _namespace = _interopRequireWildcard(require("./namespace.cjs"));
|
|
10
|
-
exports.namespace = _namespace.default;
|
|
11
|
-
exports.Namespace = _namespace.Namespace;
|
|
12
|
-
exports.createNamespace = _namespace.createNamespace;
|
|
13
|
-
var _index = _interopRequireDefault(require("./serializers/value/index.cjs"));
|
|
14
|
-
var _json = _interopRequireDefault(require("./serializers/json.cjs"));
|
|
15
|
-
var _yaml = _interopRequireDefault(require("./serializers/yaml-1-2.cjs"));
|
|
16
|
-
var _index2 = require("./refractor/plugins/utils/index.cjs");
|
|
17
|
-
exports.dispatchRefractorPlugins = _index2.dispatchPlugins;
|
|
6
|
+
exports.visit = exports.traverse = exports.transclude = exports.toYAML = exports.toValue = exports.toString = exports.toJSON = exports.some = exports.sexprs = exports.reject = exports.refractorPluginSemanticElementIdentity = exports.refractorPluginElementIdentity = exports.refract = exports.parents = exports.namespace = exports.mergeAllVisitors = exports.keyMap = exports.isStringElement = exports.isSourceMapElement = exports.isRefElement = exports.isPrimitiveElement = exports.isParseResultElement = exports.isObjectElement = exports.isNumberElement = exports.isNullElement = exports.isMemberElement = exports.isLinkElement = exports.isElement = exports.isBooleanElement = exports.isArrayElement = exports.isAnnotationElement = exports.includesSymbols = exports.includesClasses = exports.hasElementSourceMap = exports.getNodeType = exports.from = exports.findAtOffset = exports.find = exports.filter = exports.dispatchRefractorPlugins = exports.dereference = exports.dehydrate = exports.deepmerge = exports.createPredicate = exports.createNamespace = exports.cloneShallow = exports.cloneNode = exports.cloneDeep = exports.Transcluder = exports.StringElement = exports.SourceMapElement = exports.ShallowCloneError = exports.RefElement = exports.ParseResultElement = exports.ObjectSlice = exports.ObjectElement = exports.NumberElement = exports.NullElement = exports.Namespace = exports.MemberElement = exports.MediaTypes = exports.LinkElement = exports.KeyValuePair = exports.Element = exports.DeepCloneError = exports.CommentElement = exports.CloneError = exports.BooleanElement = exports.BREAK = exports.ArraySlice = exports.ArrayElement = exports.AnnotationElement = void 0;
|
|
7
|
+
var _index = require("./refractor/plugins/utils/index.cjs");
|
|
8
|
+
exports.dispatchRefractorPlugins = _index.dispatchPlugins;
|
|
18
9
|
var _elementIdentity = _interopRequireDefault(require("./refractor/plugins/element-identity.cjs"));
|
|
19
10
|
exports.refractorPluginElementIdentity = _elementIdentity.default;
|
|
20
11
|
var _semanticElementIdentity = _interopRequireDefault(require("./refractor/plugins/semantic-element-identity.cjs"));
|
|
@@ -28,6 +19,10 @@ exports.KeyValuePair = _minim.KeyValuePair;
|
|
|
28
19
|
exports.ObjectSlice = _minim.ObjectSlice;
|
|
29
20
|
exports.ArraySlice = _minim.ArraySlice;
|
|
30
21
|
exports.refract = _minim.refract;
|
|
22
|
+
var _namespace = _interopRequireWildcard(require("./namespace.cjs"));
|
|
23
|
+
exports.namespace = _namespace.default;
|
|
24
|
+
exports.Namespace = _namespace.Namespace;
|
|
25
|
+
exports.createNamespace = _namespace.createNamespace;
|
|
31
26
|
var _registration = require("./refractor/registration.cjs");
|
|
32
27
|
exports.ObjectElement = _registration.ObjectElement;
|
|
33
28
|
exports.ArrayElement = _registration.ArrayElement;
|
|
@@ -41,103 +36,68 @@ exports.AnnotationElement = _registration.AnnotationElement;
|
|
|
41
36
|
exports.CommentElement = _registration.CommentElement;
|
|
42
37
|
exports.ParseResultElement = _registration.ParseResultElement;
|
|
43
38
|
exports.SourceMapElement = _registration.SourceMapElement;
|
|
44
|
-
var
|
|
45
|
-
exports.isElement =
|
|
46
|
-
exports.isStringElement =
|
|
47
|
-
exports.isNumberElement =
|
|
48
|
-
exports.isNullElement =
|
|
49
|
-
exports.isBooleanElement =
|
|
50
|
-
exports.isArrayElement =
|
|
51
|
-
exports.isObjectElement =
|
|
52
|
-
exports.isMemberElement =
|
|
53
|
-
exports.isLinkElement =
|
|
54
|
-
exports.isRefElement =
|
|
55
|
-
exports.isAnnotationElement =
|
|
56
|
-
exports.isParseResultElement =
|
|
57
|
-
exports.isSourceMapElement =
|
|
58
|
-
exports.isPrimitiveElement =
|
|
59
|
-
exports.hasElementSourceMap =
|
|
60
|
-
exports.includesSymbols =
|
|
61
|
-
exports.includesClasses =
|
|
39
|
+
var _index2 = require("./predicates/index.cjs");
|
|
40
|
+
exports.isElement = _index2.isElement;
|
|
41
|
+
exports.isStringElement = _index2.isStringElement;
|
|
42
|
+
exports.isNumberElement = _index2.isNumberElement;
|
|
43
|
+
exports.isNullElement = _index2.isNullElement;
|
|
44
|
+
exports.isBooleanElement = _index2.isBooleanElement;
|
|
45
|
+
exports.isArrayElement = _index2.isArrayElement;
|
|
46
|
+
exports.isObjectElement = _index2.isObjectElement;
|
|
47
|
+
exports.isMemberElement = _index2.isMemberElement;
|
|
48
|
+
exports.isLinkElement = _index2.isLinkElement;
|
|
49
|
+
exports.isRefElement = _index2.isRefElement;
|
|
50
|
+
exports.isAnnotationElement = _index2.isAnnotationElement;
|
|
51
|
+
exports.isParseResultElement = _index2.isParseResultElement;
|
|
52
|
+
exports.isSourceMapElement = _index2.isSourceMapElement;
|
|
53
|
+
exports.isPrimitiveElement = _index2.isPrimitiveElement;
|
|
54
|
+
exports.hasElementSourceMap = _index2.hasElementSourceMap;
|
|
55
|
+
exports.includesSymbols = _index2.includesSymbols;
|
|
56
|
+
exports.includesClasses = _index2.includesClasses;
|
|
62
57
|
var _helpers = _interopRequireDefault(require("./predicates/helpers.cjs"));
|
|
63
58
|
exports.createPredicate = _helpers.default;
|
|
64
|
-
var
|
|
65
|
-
exports.filter =
|
|
66
|
-
exports.reject =
|
|
67
|
-
exports.find =
|
|
68
|
-
exports.findAtOffset =
|
|
69
|
-
exports.some =
|
|
70
|
-
exports.traverse =
|
|
71
|
-
exports.parents =
|
|
59
|
+
var _index3 = require("./traversal/index.cjs");
|
|
60
|
+
exports.filter = _index3.filter;
|
|
61
|
+
exports.reject = _index3.reject;
|
|
62
|
+
exports.find = _index3.find;
|
|
63
|
+
exports.findAtOffset = _index3.findAtOffset;
|
|
64
|
+
exports.some = _index3.some;
|
|
65
|
+
exports.traverse = _index3.traverse;
|
|
66
|
+
exports.parents = _index3.parents;
|
|
72
67
|
var _visitor = require("./traversal/visitor.cjs");
|
|
73
68
|
exports.visit = _visitor.visit;
|
|
74
69
|
exports.BREAK = _visitor.BREAK;
|
|
75
70
|
exports.mergeAllVisitors = _visitor.mergeAllVisitors;
|
|
76
71
|
exports.getNodeType = _visitor.getNodeType;
|
|
72
|
+
exports.cloneNode = _visitor.cloneNode;
|
|
77
73
|
exports.keyMap = _visitor.keyMapDefault;
|
|
78
|
-
var
|
|
79
|
-
exports.transclude =
|
|
80
|
-
exports.Transcluder =
|
|
74
|
+
var _index4 = _interopRequireWildcard(require("./transcluder/index.cjs"));
|
|
75
|
+
exports.transclude = _index4.transclude;
|
|
76
|
+
exports.Transcluder = _index4.default;
|
|
81
77
|
var _util = require("./util.cjs");
|
|
82
78
|
exports.dereference = _util.dereference;
|
|
83
|
-
var
|
|
79
|
+
var _index5 = require("./clone/index.cjs");
|
|
80
|
+
exports.cloneShallow = _index5.cloneShallow;
|
|
81
|
+
exports.cloneDeep = _index5.cloneDeep;
|
|
82
|
+
var _CloneError = _interopRequireDefault(require("./clone/errors/CloneError.cjs"));
|
|
83
|
+
exports.CloneError = _CloneError.default;
|
|
84
|
+
var _DeepCloneError = _interopRequireDefault(require("./clone/errors/DeepCloneError.cjs"));
|
|
85
|
+
exports.DeepCloneError = _DeepCloneError.default;
|
|
86
|
+
var _ShallowCloneError = _interopRequireDefault(require("./clone/errors/ShallowCloneError.cjs"));
|
|
87
|
+
exports.ShallowCloneError = _ShallowCloneError.default;
|
|
88
|
+
var _from = _interopRequireDefault(require("./transformers/from.cjs"));
|
|
89
|
+
exports.from = _from.default;
|
|
90
|
+
var _index6 = _interopRequireDefault(require("./transformers/serializers/value/index.cjs"));
|
|
91
|
+
exports.toValue = _index6.default;
|
|
92
|
+
var _json = _interopRequireDefault(require("./transformers/serializers/json.cjs"));
|
|
93
|
+
exports.toJSON = _json.default;
|
|
94
|
+
var _yaml = _interopRequireDefault(require("./transformers/serializers/yaml-1-2.cjs"));
|
|
95
|
+
exports.toYAML = _yaml.default;
|
|
96
|
+
var _dehydrate = _interopRequireDefault(require("./transformers/dehydrate.cjs"));
|
|
97
|
+
exports.dehydrate = _dehydrate.default;
|
|
98
|
+
var _toString = _interopRequireDefault(require("./transformers/to-string.cjs"));
|
|
99
|
+
exports.toString = _toString.default;
|
|
100
|
+
var _sexprs = _interopRequireDefault(require("./transformers/sexprs.cjs"));
|
|
84
101
|
exports.sexprs = _sexprs.default;
|
|
85
102
|
var _deepmerge = _interopRequireDefault(require("./deepmerge.cjs"));
|
|
86
|
-
exports.deepmerge = _deepmerge.default;
|
|
87
|
-
/**
|
|
88
|
-
* Transforms data to an Element from a particular namespace.
|
|
89
|
-
*/
|
|
90
|
-
const from = (data, namespace = _namespace.default) => {
|
|
91
|
-
if ((0, _ramdaAdjunct.isString)(data)) {
|
|
92
|
-
// JSON serialized refract
|
|
93
|
-
try {
|
|
94
|
-
return namespace.fromRefract(JSON.parse(data));
|
|
95
|
-
} catch {
|
|
96
|
-
// noop
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
if ((0, _ramdaAdjunct.isPlainObject)(data) && (0, _ramda.has)('element', data)) {
|
|
100
|
-
// refract javascript structure
|
|
101
|
-
return namespace.fromRefract(data);
|
|
102
|
-
}
|
|
103
|
-
return namespace.toElement(data);
|
|
104
|
-
};
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* Transforms the ApiDOM into JavaScript POJO.
|
|
108
|
-
* This POJO would be the result of interpreting the ApiDOM
|
|
109
|
-
* into JavaScript structure.
|
|
110
|
-
*/
|
|
111
|
-
exports.from = from;
|
|
112
|
-
const toValue = _index.default;
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* Transforms the ApiDOM into JSON string.
|
|
116
|
-
*/
|
|
117
|
-
exports.toValue = toValue;
|
|
118
|
-
const toJSON = _json.default;
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* Transforms the ApiDOM into YAML string.
|
|
122
|
-
*/
|
|
123
|
-
exports.toJSON = toJSON;
|
|
124
|
-
const toYAML = _yaml.default;
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* Creates a refract representation of an Element.
|
|
128
|
-
* https://github.com/refractproject/refract-spec
|
|
129
|
-
*/
|
|
130
|
-
exports.toYAML = toYAML;
|
|
131
|
-
const dehydrate = (element, namespace = _namespace.default) => {
|
|
132
|
-
return namespace.toRefract(element);
|
|
133
|
-
};
|
|
134
|
-
|
|
135
|
-
/**
|
|
136
|
-
* Create a refracted string representation of an Element.
|
|
137
|
-
*/
|
|
138
|
-
exports.dehydrate = dehydrate;
|
|
139
|
-
const toString = (element, namespace = _namespace.default) => {
|
|
140
|
-
const refractStructure = dehydrate(element, namespace);
|
|
141
|
-
return JSON.stringify(refractStructure);
|
|
142
|
-
};
|
|
143
|
-
exports.toString = toString;
|
|
103
|
+
exports.deepmerge = _deepmerge.default;
|
package/cjs/media-types.cjs
CHANGED
package/cjs/namespace.cjs
CHANGED
package/cjs/predicates/index.cjs
CHANGED
|
@@ -12,113 +12,99 @@ var _Comment = _interopRequireDefault(require("../elements/Comment.cjs"));
|
|
|
12
12
|
var _ParseResult = _interopRequireDefault(require("../elements/ParseResult.cjs"));
|
|
13
13
|
var _SourceMap = _interopRequireDefault(require("../elements/SourceMap.cjs"));
|
|
14
14
|
var _helpers = _interopRequireWildcard(require("./helpers.cjs"));
|
|
15
|
-
const isElement = (0, _helpers.default)(({
|
|
15
|
+
const isElement = exports.isElement = (0, _helpers.default)(({
|
|
16
16
|
hasBasicElementProps,
|
|
17
17
|
primitiveEq
|
|
18
18
|
}) => {
|
|
19
19
|
return element => element instanceof _minim.Element || hasBasicElementProps(element) && primitiveEq(undefined, element);
|
|
20
20
|
});
|
|
21
|
-
exports.
|
|
22
|
-
const isStringElement = (0, _helpers.default)(({
|
|
21
|
+
const isStringElement = exports.isStringElement = (0, _helpers.default)(({
|
|
23
22
|
hasBasicElementProps,
|
|
24
23
|
primitiveEq
|
|
25
24
|
}) => {
|
|
26
25
|
return element => element instanceof _minim.StringElement || hasBasicElementProps(element) && primitiveEq('string', element);
|
|
27
26
|
});
|
|
28
|
-
exports.
|
|
29
|
-
const isNumberElement = (0, _helpers.default)(({
|
|
27
|
+
const isNumberElement = exports.isNumberElement = (0, _helpers.default)(({
|
|
30
28
|
hasBasicElementProps,
|
|
31
29
|
primitiveEq
|
|
32
30
|
}) => {
|
|
33
31
|
return element => element instanceof _minim.NumberElement || hasBasicElementProps(element) && primitiveEq('number', element);
|
|
34
32
|
});
|
|
35
|
-
exports.
|
|
36
|
-
const isNullElement = (0, _helpers.default)(({
|
|
33
|
+
const isNullElement = exports.isNullElement = (0, _helpers.default)(({
|
|
37
34
|
hasBasicElementProps,
|
|
38
35
|
primitiveEq
|
|
39
36
|
}) => {
|
|
40
37
|
return element => element instanceof _minim.NullElement || hasBasicElementProps(element) && primitiveEq('null', element);
|
|
41
38
|
});
|
|
42
|
-
exports.
|
|
43
|
-
const isBooleanElement = (0, _helpers.default)(({
|
|
39
|
+
const isBooleanElement = exports.isBooleanElement = (0, _helpers.default)(({
|
|
44
40
|
hasBasicElementProps,
|
|
45
41
|
primitiveEq
|
|
46
42
|
}) => {
|
|
47
43
|
return element => element instanceof _minim.BooleanElement || hasBasicElementProps(element) && primitiveEq('boolean', element);
|
|
48
44
|
});
|
|
49
|
-
exports.
|
|
50
|
-
const isObjectElement = (0, _helpers.default)(({
|
|
45
|
+
const isObjectElement = exports.isObjectElement = (0, _helpers.default)(({
|
|
51
46
|
hasBasicElementProps,
|
|
52
47
|
primitiveEq,
|
|
53
48
|
hasMethod
|
|
54
49
|
}) => {
|
|
55
50
|
return element => element instanceof _minim.ObjectElement || hasBasicElementProps(element) && primitiveEq('object', element) && hasMethod('keys', element) && hasMethod('values', element) && hasMethod('items', element);
|
|
56
51
|
});
|
|
57
|
-
exports.
|
|
58
|
-
const isArrayElement = (0, _helpers.default)(({
|
|
52
|
+
const isArrayElement = exports.isArrayElement = (0, _helpers.default)(({
|
|
59
53
|
hasBasicElementProps,
|
|
60
54
|
primitiveEq,
|
|
61
55
|
hasMethod
|
|
62
56
|
}) => {
|
|
63
57
|
return element => element instanceof _minim.ArrayElement && !(element instanceof _minim.ObjectElement) || hasBasicElementProps(element) && primitiveEq('array', element) && hasMethod('push', element) && hasMethod('unshift', element) && hasMethod('map', element) && hasMethod('reduce', element);
|
|
64
58
|
});
|
|
65
|
-
exports.
|
|
66
|
-
const isMemberElement = (0, _helpers.default)(({
|
|
59
|
+
const isMemberElement = exports.isMemberElement = (0, _helpers.default)(({
|
|
67
60
|
hasBasicElementProps,
|
|
68
61
|
isElementType,
|
|
69
62
|
primitiveEq
|
|
70
63
|
}) => {
|
|
71
64
|
return element => element instanceof _minim.MemberElement || hasBasicElementProps(element) && isElementType('member', element) && primitiveEq(undefined, element);
|
|
72
65
|
});
|
|
73
|
-
exports.
|
|
74
|
-
const isLinkElement = (0, _helpers.default)(({
|
|
66
|
+
const isLinkElement = exports.isLinkElement = (0, _helpers.default)(({
|
|
75
67
|
hasBasicElementProps,
|
|
76
68
|
isElementType,
|
|
77
69
|
primitiveEq
|
|
78
70
|
}) => {
|
|
79
71
|
return element => element instanceof _minim.LinkElement || hasBasicElementProps(element) && isElementType('link', element) && primitiveEq(undefined, element);
|
|
80
72
|
});
|
|
81
|
-
exports.
|
|
82
|
-
const isRefElement = (0, _helpers.default)(({
|
|
73
|
+
const isRefElement = exports.isRefElement = (0, _helpers.default)(({
|
|
83
74
|
hasBasicElementProps,
|
|
84
75
|
isElementType,
|
|
85
76
|
primitiveEq
|
|
86
77
|
}) => {
|
|
87
78
|
return element => element instanceof _minim.RefElement || hasBasicElementProps(element) && isElementType('ref', element) && primitiveEq(undefined, element);
|
|
88
79
|
});
|
|
89
|
-
exports.
|
|
90
|
-
const isAnnotationElement = (0, _helpers.default)(({
|
|
80
|
+
const isAnnotationElement = exports.isAnnotationElement = (0, _helpers.default)(({
|
|
91
81
|
hasBasicElementProps,
|
|
92
82
|
isElementType,
|
|
93
83
|
primitiveEq
|
|
94
84
|
}) => {
|
|
95
85
|
return element => element instanceof _Annotation.default || hasBasicElementProps(element) && isElementType('annotation', element) && primitiveEq('array', element);
|
|
96
86
|
});
|
|
97
|
-
exports.
|
|
98
|
-
const isCommentElement = (0, _helpers.default)(({
|
|
87
|
+
const isCommentElement = exports.isCommentElement = (0, _helpers.default)(({
|
|
99
88
|
hasBasicElementProps,
|
|
100
89
|
isElementType,
|
|
101
90
|
primitiveEq
|
|
102
91
|
}) => {
|
|
103
92
|
return element => element instanceof _Comment.default || hasBasicElementProps(element) && isElementType('comment', element) && primitiveEq('string', element);
|
|
104
93
|
});
|
|
105
|
-
exports.
|
|
106
|
-
const isParseResultElement = (0, _helpers.default)(({
|
|
94
|
+
const isParseResultElement = exports.isParseResultElement = (0, _helpers.default)(({
|
|
107
95
|
hasBasicElementProps,
|
|
108
96
|
isElementType,
|
|
109
97
|
primitiveEq
|
|
110
98
|
}) => {
|
|
111
99
|
return element => element instanceof _ParseResult.default || hasBasicElementProps(element) && isElementType('parseResult', element) && primitiveEq('array', element);
|
|
112
100
|
});
|
|
113
|
-
exports.
|
|
114
|
-
const isSourceMapElement = (0, _helpers.default)(({
|
|
101
|
+
const isSourceMapElement = exports.isSourceMapElement = (0, _helpers.default)(({
|
|
115
102
|
hasBasicElementProps,
|
|
116
103
|
isElementType,
|
|
117
104
|
primitiveEq
|
|
118
105
|
}) => {
|
|
119
106
|
return element => element instanceof _SourceMap.default || hasBasicElementProps(element) && isElementType('sourceMap', element) && primitiveEq('array', element);
|
|
120
107
|
});
|
|
121
|
-
exports.isSourceMapElement = isSourceMapElement;
|
|
122
108
|
const isPrimitiveElement = element => {
|
|
123
109
|
return (0, _helpers.isElementType)('object', element) || (0, _helpers.isElementType)('array', element) || (0, _helpers.isElementType)('boolean', element) || (0, _helpers.isElementType)('number', element) || (0, _helpers.isElementType)('string', element) || (0, _helpers.isElementType)('null', element) || (0, _helpers.isElementType)('member', element);
|
|
124
110
|
};
|