@swagger-api/apidom-core 0.76.1 → 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.
Files changed (97) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +53 -5
  3. package/cjs/clone/errors/CloneError.cjs +7 -0
  4. package/cjs/clone/errors/DeepCloneError.cjs +8 -0
  5. package/cjs/clone/errors/ShallowCloneError.cjs +8 -0
  6. package/cjs/clone/index.cjs +105 -0
  7. package/cjs/deepmerge.cjs +9 -7
  8. package/cjs/elements/Annotation.cjs +1 -2
  9. package/cjs/elements/Comment.cjs +1 -2
  10. package/cjs/elements/ParseResult.cjs +1 -2
  11. package/cjs/elements/SourceMap.cjs +1 -2
  12. package/cjs/index.cjs +62 -103
  13. package/cjs/media-types.cjs +1 -2
  14. package/cjs/namespace.cjs +2 -3
  15. package/cjs/predicates/helpers.cjs +1 -2
  16. package/cjs/predicates/index.cjs +16 -31
  17. package/cjs/refractor/index.cjs +2 -3
  18. package/cjs/refractor/plugins/element-identity.cjs +2 -3
  19. package/cjs/refractor/plugins/semantic-element-identity.cjs +2 -3
  20. package/cjs/refractor/plugins/utils/index.cjs +1 -1
  21. package/cjs/refractor/registration.cjs +1 -1
  22. package/cjs/refractor/toolbox.cjs +3 -5
  23. package/cjs/transcluder/Transcluder.cjs +2 -3
  24. package/cjs/transcluder/index.cjs +2 -3
  25. package/cjs/transformers/dehydrate.cjs +14 -0
  26. package/cjs/transformers/from.cjs +27 -0
  27. package/cjs/{serializers → transformers/serializers}/json.cjs +2 -3
  28. package/cjs/{serializers → transformers/serializers}/value/ast/ephemeral-array.cjs +1 -2
  29. package/cjs/{serializers → transformers/serializers}/value/ast/ephemeral-object.cjs +1 -2
  30. package/cjs/{serializers → transformers/serializers}/value/index.cjs +9 -3
  31. package/cjs/{serializers → transformers/serializers}/value/visitor.cjs +1 -1
  32. package/cjs/{serializers → transformers/serializers}/yaml-1-2.cjs +3 -4
  33. package/cjs/{sexprs.cjs → transformers/sexprs.cjs} +3 -4
  34. package/cjs/transformers/to-string.cjs +15 -0
  35. package/cjs/traversal/filter.cjs +1 -2
  36. package/cjs/traversal/find.cjs +1 -2
  37. package/cjs/traversal/findAtOffset.cjs +5 -5
  38. package/cjs/traversal/index.cjs +1 -1
  39. package/cjs/traversal/parents.cjs +2 -3
  40. package/cjs/traversal/reject.cjs +2 -3
  41. package/cjs/traversal/some.cjs +2 -3
  42. package/cjs/traversal/traverse.cjs +3 -5
  43. package/cjs/traversal/visitor.cjs +18 -9
  44. package/dist/apidom-core.browser.js +9851 -11614
  45. package/dist/apidom-core.browser.min.js +1 -1
  46. package/es/clone/errors/CloneError.mjs +3 -0
  47. package/es/clone/errors/DeepCloneError.mjs +3 -0
  48. package/es/clone/errors/ShallowCloneError.mjs +3 -0
  49. package/es/clone/index.mjs +98 -0
  50. package/es/{deepmerge.js → deepmerge.mjs} +14 -13
  51. package/es/index.mjs +46 -0
  52. package/es/{media-types.js → media-types.mjs} +2 -5
  53. package/es/{namespace.js → namespace.mjs} +4 -4
  54. package/es/predicates/{index.js → index.mjs} +5 -5
  55. package/es/refractor/index.mjs +30 -0
  56. package/es/refractor/plugins/utils/{index.js → index.mjs} +2 -2
  57. package/es/refractor/{registration.js → registration.mjs} +5 -5
  58. package/es/refractor/toolbox.mjs +12 -0
  59. package/es/transcluder/{Transcluder.js → Transcluder.mjs} +1 -1
  60. package/es/transcluder/{index.js → index.mjs} +1 -1
  61. package/es/transformers/dehydrate.mjs +9 -0
  62. package/es/transformers/from.mjs +22 -0
  63. package/es/{serializers/json.js → transformers/serializers/json.mjs} +1 -1
  64. package/es/transformers/serializers/value/ast/ephemeral-array.mjs +17 -0
  65. package/es/transformers/serializers/value/ast/ephemeral-object.mjs +16 -0
  66. package/es/{serializers/value/index.js → transformers/serializers/value/index.mjs} +10 -3
  67. package/es/transformers/serializers/value/visitor.mjs +49 -0
  68. package/es/{serializers/yaml-1-2.js → transformers/serializers/yaml-1-2.mjs} +2 -2
  69. package/es/{sexprs.js → transformers/sexprs.mjs} +1 -1
  70. package/es/transformers/to-string.mjs +10 -0
  71. package/es/traversal/{filter.js → filter.mjs} +1 -1
  72. package/es/traversal/{find.js → find.mjs} +1 -1
  73. package/es/traversal/{findAtOffset.js → findAtOffset.mjs} +5 -4
  74. package/es/traversal/index.mjs +7 -0
  75. package/es/traversal/{parents.js → parents.mjs} +1 -1
  76. package/es/traversal/{reject.js → reject.mjs} +1 -1
  77. package/es/traversal/{some.js → some.mjs} +1 -1
  78. package/es/traversal/{traverse.js → traverse.mjs} +2 -2
  79. package/es/traversal/{visitor.js → visitor.mjs} +29 -24
  80. package/package.json +8 -8
  81. package/types/dist.d.ts +47 -32
  82. package/types/minim.d.ts +14 -2
  83. package/es/index.js +0 -72
  84. package/es/refractor/index.js +0 -32
  85. package/es/refractor/toolbox.js +0 -13
  86. package/es/serializers/value/ast/ephemeral-array.js +0 -18
  87. package/es/serializers/value/ast/ephemeral-object.js +0 -17
  88. package/es/serializers/value/visitor.js +0 -54
  89. package/es/traversal/index.js +0 -7
  90. /package/es/elements/{Annotation.js → Annotation.mjs} +0 -0
  91. /package/es/elements/{Comment.js → Comment.mjs} +0 -0
  92. /package/es/elements/{ParseResult.js → ParseResult.mjs} +0 -0
  93. /package/es/elements/{SourceMap.js → SourceMap.mjs} +0 -0
  94. /package/es/predicates/{helpers.js → helpers.mjs} +0 -0
  95. /package/es/refractor/plugins/{element-identity.js → element-identity.mjs} +0 -0
  96. /package/es/refractor/plugins/{semantic-element-identity.js → semantic-element-identity.mjs} +0 -0
  97. /package/es/{util.js → util.mjs} +0 -0
@@ -1,14 +1,9 @@
1
- import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
2
- import _objectWithoutProperties from "@babel/runtime-corejs3/helpers/esm/objectWithoutProperties";
3
- const _excluded = ["keyMap"],
4
- _excluded2 = ["keyMap"];
5
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7
1
  import stampit from 'stampit';
8
2
  import { F as stubFalse, pipe } from 'ramda';
9
3
  import { isString } from 'ramda-adjunct';
10
- import { visit as astVisit, BREAK, mergeAllVisitors } from '@swagger-api/apidom-ast';
11
- import { isMemberElement, isArrayElement, isStringElement, isBooleanElement, isLinkElement, isRefElement, isObjectElement, isNullElement, isNumberElement } from "../predicates/index.js";
4
+ import { visit as astVisit, BREAK, mergeAllVisitors, cloneNode as cloneNodeDefault } from '@swagger-api/apidom-ast';
5
+ import { isElement, isMemberElement, isArrayElement, isStringElement, isBooleanElement, isLinkElement, isRefElement, isObjectElement, isNullElement, isNumberElement } from "../predicates/index.mjs";
6
+ import { cloneShallow } from "../clone/index.mjs";
12
7
  export { BREAK, mergeAllVisitors };
13
8
 
14
9
  // getNodeType :: Node -> String
@@ -25,6 +20,14 @@ export const getNodeType = element => {
25
20
  /* eslint-enable */
26
21
  };
27
22
 
23
+ // cloneNode :: a -> a
24
+ export const cloneNode = node => {
25
+ if (isElement(node)) {
26
+ return cloneShallow(node);
27
+ }
28
+ return cloneNodeDefault(node);
29
+ };
30
+
28
31
  // isNode :: Node -> Boolean
29
32
  export const isNode = pipe(getNodeType, isString);
30
33
  export const keyMapDefault = {
@@ -76,35 +79,37 @@ export const PredicateVisitor = stampit({
76
79
  // @ts-ignore
77
80
  export const visit = (root,
78
81
  // @ts-ignore
79
- visitor, _ref = {}) => {
80
- let {
81
- keyMap = keyMapDefault
82
- } = _ref,
83
- rest = _objectWithoutProperties(_ref, _excluded);
82
+ visitor, {
83
+ keyMap = keyMapDefault,
84
+ ...rest
85
+ } = {}) => {
84
86
  // @ts-ignore
85
- return astVisit(root, visitor, _objectSpread({
87
+ return astVisit(root, visitor, {
86
88
  // @ts-ignore
87
89
  keyMap,
88
90
  // @ts-ignore
89
91
  nodeTypeGetter: getNodeType,
90
- nodePredicate: isNode
91
- }, rest));
92
+ nodePredicate: isNode,
93
+ nodeCloneFn: cloneNode,
94
+ ...rest
95
+ });
92
96
  };
93
97
 
94
98
  // @ts-ignore
95
99
  visit[Symbol.for('nodejs.util.promisify.custom')] = async (root,
96
100
  // @ts-ignore
97
- visitor, _ref2 = {}) => {
98
- let {
99
- keyMap = keyMapDefault
100
- } = _ref2,
101
- rest = _objectWithoutProperties(_ref2, _excluded2);
101
+ visitor, {
102
+ keyMap = keyMapDefault,
103
+ ...rest
104
+ } = {}) => {
102
105
  // @ts-ignore
103
- return astVisit[Symbol.for('nodejs.util.promisify.custom')](root, visitor, _objectSpread({
106
+ return astVisit[Symbol.for('nodejs.util.promisify.custom')](root, visitor, {
104
107
  // @ts-ignore
105
108
  keyMap,
106
109
  // @ts-ignore
107
110
  nodeTypeGetter: getNodeType,
108
- nodePredicate: isNode
109
- }, rest));
111
+ nodePredicate: isNode,
112
+ nodeCloneFn: cloneNode,
113
+ ...rest
114
+ });
110
115
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@swagger-api/apidom-core",
3
- "version": "0.76.1",
3
+ "version": "0.77.0",
4
4
  "description": "Tools for manipulating ApiDOM structures.",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -8,22 +8,22 @@
8
8
  },
9
9
  "type": "module",
10
10
  "sideEffects": [
11
- "./es/refractor/registration.js",
11
+ "./es/refractor/registration.mjs",
12
12
  "./cjs/refractor/registration.cjs"
13
13
  ],
14
14
  "unpkg": "./dist/apidom-core.browser.min.js",
15
15
  "main": "./cjs/index.cjs",
16
16
  "exports": {
17
17
  "types": "./types/dist.d.ts",
18
- "import": "./es/index.js",
18
+ "import": "./es/index.mjs",
19
19
  "require": "./cjs/index.cjs"
20
20
  },
21
21
  "types": "./types/dist.d.ts",
22
22
  "scripts": {
23
23
  "build": "npm run clean && run-p --max-parallel ${CPU_CORES:-2} typescript:declaration build:es build:cjs build:umd:browser",
24
- "build:es": "cross-env BABEL_ENV=es babel src --out-dir es --extensions '.ts' --root-mode 'upward'",
24
+ "build:es": "cross-env BABEL_ENV=es babel src --out-dir es --extensions '.ts' --out-file-extension '.mjs' --root-mode 'upward'",
25
25
  "build:cjs": "cross-env BABEL_ENV=cjs babel src --out-dir cjs --extensions '.ts' --out-file-extension '.cjs' --root-mode 'upward'",
26
- "build:umd:browser": "cross-env BABEL_ENV=browser BROWSERSLIST_ENV=production webpack --config config/webpack/browser.config.js --progress",
26
+ "build:umd:browser": "cross-env BABEL_ENV=browser webpack --config config/webpack/browser.config.js --progress",
27
27
  "lint": "eslint ./",
28
28
  "lint:fix": "eslint ./ --fix",
29
29
  "clean": "rimraf ./es ./cjs ./dist ./types",
@@ -42,8 +42,8 @@
42
42
  "license": "Apache-2.0",
43
43
  "dependencies": {
44
44
  "@babel/runtime-corejs3": "^7.20.7",
45
- "@swagger-api/apidom-ast": "^0.76.1",
46
- "@swagger-api/apidom-error": "^0.76.1",
45
+ "@swagger-api/apidom-ast": "^0.77.0",
46
+ "@swagger-api/apidom-error": "^0.77.0",
47
47
  "@types/ramda": "~0.29.3",
48
48
  "minim": "~0.23.8",
49
49
  "ramda": "~0.29.0",
@@ -62,5 +62,5 @@
62
62
  "README.md",
63
63
  "CHANGELOG.md"
64
64
  ],
65
- "gitHead": "33290820a04e212ffb88da36abaa8cc1fb06892f"
65
+ "gitHead": "cd8a9d7d2ea8bb8c335c23cd4632830a79c426c9"
66
66
  }
package/types/dist.d.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  /// <reference path="./minim.d.ts" />
2
- import { Element, ArrayElement, Meta, Attributes, Namespace as Namespace$1, NamespacePlugin, StringElement, ArraySlice, ObjectElement } from 'minim';
2
+ import { Element, ArrayElement, Meta, Attributes, Namespace as Namespace$1, NamespacePlugin, StringElement, ArraySlice, KeyValuePair, ObjectSlice, ObjectElement } from 'minim';
3
3
  export { ArrayElement, ArraySlice, Attributes, BooleanElement, Element, KeyValuePair, LinkElement, MemberElement, Meta, NamespacePluginOptions, NullElement, NumberElement, ObjectElement, ObjectSlice, RefElement, StringElement, refract } from 'minim';
4
4
  import { Pred } from 'ramda';
5
5
  import stampit from 'stampit';
6
+ import { ApiDOMStructuredError } from '@swagger-api/apidom-error';
6
7
  export { BREAK, mergeAllVisitors } from '@swagger-api/apidom-ast';
7
8
 
8
9
  declare const dispatchPlugins: <T extends Element>(element: T, plugins: any[], options?: {}) => T;
@@ -146,6 +147,7 @@ declare const traverse: <T extends Element>(options: Callback | TraverseOptions,
146
147
  declare const parents: <T extends Element>(element: T) => WeakMap<Element, Element>;
147
148
 
148
149
  declare const getNodeType: <T extends Element>(element: T) => string | undefined;
150
+ declare const cloneNode: <T>(node: T) => T;
149
151
  declare const keyMapDefault: {
150
152
  ObjectElement: string[];
151
153
  ArrayElement: string[];
@@ -200,6 +202,49 @@ declare const transclude: (search: Element, replace: Element, element: Element)
200
202
  */
201
203
  declare const dereference: (object: Record<string, any>, root?: Record<string, any>) => Record<string, any>;
202
204
 
205
+ type FinalCloneTypes = KeyValuePair | ArraySlice | ObjectSlice;
206
+ declare const cloneDeep: {
207
+ <T extends Element | FinalCloneTypes>(value: T): T;
208
+ safe<T_1>(value: T_1): T_1;
209
+ };
210
+ declare const cloneShallow: {
211
+ <T extends Element | FinalCloneTypes>(value: T): T;
212
+ safe<T_1>(value: T_1): T_1;
213
+ };
214
+
215
+ declare class CloneError extends ApiDOMStructuredError {
216
+ }
217
+
218
+ declare class DeepCloneError extends CloneError {
219
+ }
220
+
221
+ declare class ShallowCloneError extends CloneError {
222
+ }
223
+
224
+ /**
225
+ * Transforms data to an Element from a particular namespace.
226
+ */
227
+ declare const from: (data: any, namespace?: Namespace$1) => Element;
228
+
229
+ declare const serializer$2: <T extends unknown>(element: T) => any;
230
+
231
+ declare const serializer$1: (element: Element, replacer?: ((this: any, key: string, value: any) => any) | undefined, space?: string | number) => string;
232
+
233
+ declare const serializer: (element: Element, { directive }?: {
234
+ directive?: boolean | undefined;
235
+ }) => string;
236
+
237
+ /**
238
+ * Creates a refract representation of an Element.
239
+ * https://github.com/refractproject/refract-spec
240
+ */
241
+ declare const dehydrate: (element: Element, namespace?: Namespace$1) => any;
242
+
243
+ /**
244
+ * Create a refracted string representation of an Element.
245
+ */
246
+ declare const toString: (element: Element, namespace?: Namespace$1) => string;
247
+
203
248
  declare const sexprs: (element: Element) => string;
204
249
 
205
250
  type ObjectOrArrayElement = ObjectElement | ArrayElement;
@@ -227,34 +272,4 @@ declare namespace deepmerge {
227
272
  var all: (list: ObjectOrArrayElement[], options?: DeepMergeOptions | undefined) => any;
228
273
  }
229
274
 
230
- /**
231
- * Transforms data to an Element from a particular namespace.
232
- */
233
- declare const from: (data: any, namespace?: Namespace$1) => Element;
234
- /**
235
- * Transforms the ApiDOM into JavaScript POJO.
236
- * This POJO would be the result of interpreting the ApiDOM
237
- * into JavaScript structure.
238
- */
239
- declare const toValue: <T extends Element>(element: T) => any;
240
- /**
241
- * Transforms the ApiDOM into JSON string.
242
- */
243
- declare const toJSON: (element: Element, replacer?: ((this: any, key: string, value: any) => any) | undefined, space?: string | number | undefined) => string;
244
- /**
245
- * Transforms the ApiDOM into YAML string.
246
- */
247
- declare const toYAML: (element: Element, { directive }?: {
248
- directive?: boolean | undefined;
249
- }) => string;
250
- /**
251
- * Creates a refract representation of an Element.
252
- * https://github.com/refractproject/refract-spec
253
- */
254
- declare const dehydrate: (element: Element, namespace?: Namespace$1) => any;
255
- /**
256
- * Create a refracted string representation of an Element.
257
- */
258
- declare const toString: (element: Element, namespace?: Namespace$1) => string;
259
-
260
- export { Annotation as AnnotationElement, Comment as CommentElement, MediaTypes, Namespace, ParseResult as ParseResultElement, Position, PositionRange, SourceMap as SourceMapElement, Transcluder, createNamespace, createPredicate, deepmerge, dehydrate, dereference, dispatchPlugins as dispatchRefractorPlugins, filter, find, findAtOffset, from, getNodeType, hasElementSourceMap, includesClasses, includesSymbols, isAnnotationElement, isArrayElement, isBooleanElement, isElement, isLinkElement, isMemberElement, isNullElement, isNumberElement, isObjectElement, isParseResultElement, isPrimitiveElement, isRefElement, isSourceMapElement, isStringElement, keyMapDefault as keyMap, namespace, parents, plugin$1 as refractorPluginElementIdentity, plugin as refractorPluginSemanticElementIdentity, reject, sexprs, some, toJSON, toString, toValue, toYAML, transclude, traverse, visit };
275
+ export { Annotation as AnnotationElement, CloneError, Comment as CommentElement, DeepCloneError, MediaTypes, Namespace, ParseResult as ParseResultElement, Position, PositionRange, ShallowCloneError, SourceMap as SourceMapElement, Transcluder, cloneDeep, cloneNode, cloneShallow, createNamespace, createPredicate, deepmerge, dehydrate, dereference, dispatchPlugins as dispatchRefractorPlugins, filter, find, findAtOffset, from, getNodeType, hasElementSourceMap, includesClasses, includesSymbols, isAnnotationElement, isArrayElement, isBooleanElement, isElement, isLinkElement, isMemberElement, isNullElement, isNumberElement, isObjectElement, isParseResultElement, isPrimitiveElement, isRefElement, isSourceMapElement, isStringElement, keyMapDefault as keyMap, namespace, parents, plugin$1 as refractorPluginElementIdentity, plugin as refractorPluginSemanticElementIdentity, reject, sexprs, some, serializer$1 as toJSON, toString, serializer$2 as toValue, serializer as toYAML, transclude, traverse, visit };
package/types/minim.d.ts CHANGED
@@ -214,9 +214,21 @@ declare module 'minim' {
214
214
  [Symbol.iterator](): IterableIterator<any>;
215
215
 
216
216
  toValue(): any;
217
+
218
+ clone(): ArraySlice;
219
+ }
220
+
221
+ export class ObjectSlice extends ArraySlice {
222
+ clone(): ObjectSlice;
217
223
  }
218
224
 
219
- export class ObjectSlice extends ArraySlice {}
225
+ export class KeyValuePair {
226
+ public key: Element | undefined;
220
227
 
221
- export class KeyValuePair {}
228
+ public value: Element | undefined;
229
+
230
+ constructor(key?: Element, value?: Element);
231
+
232
+ clone(): KeyValuePair;
233
+ }
222
234
  }
package/es/index.js DELETED
@@ -1,72 +0,0 @@
1
- import { has } from 'ramda';
2
- import { isPlainObject, isString } from 'ramda-adjunct';
3
- import defaultNamespaceInstance from "./namespace.js";
4
- import serializeValue from "./serializers/value/index.js";
5
- import serializeJSON from "./serializers/json.js";
6
- import serializeYAML from "./serializers/yaml-1-2.js";
7
- export { dispatchPlugins as dispatchRefractorPlugins } from "./refractor/plugins/utils/index.js";
8
- export { default as refractorPluginElementIdentity } from "./refractor/plugins/element-identity.js";
9
- export { default as refractorPluginSemanticElementIdentity } from "./refractor/plugins/semantic-element-identity.js";
10
- export { default as MediaTypes } from "./media-types.js";
11
- export { Element, MemberElement, KeyValuePair, ObjectSlice, ArraySlice, refract } from 'minim';
12
- export { default as namespace, Namespace, createNamespace } from "./namespace.js";
13
- export { ObjectElement, ArrayElement, BooleanElement, NullElement, NumberElement, StringElement, LinkElement, RefElement, AnnotationElement, CommentElement, ParseResultElement, SourceMapElement } from "./refractor/registration.js";
14
- export { isElement, isStringElement, isNumberElement, isNullElement, isBooleanElement, isArrayElement, isObjectElement, isMemberElement, isLinkElement, isRefElement, isAnnotationElement, isParseResultElement, isSourceMapElement, isPrimitiveElement, hasElementSourceMap, includesSymbols, includesClasses } from "./predicates/index.js";
15
- export { default as createPredicate } from "./predicates/helpers.js";
16
- export { filter, reject, find, findAtOffset, some, traverse, parents } from "./traversal/index.js";
17
- export { visit, BREAK, mergeAllVisitors, getNodeType, keyMapDefault as keyMap } from "./traversal/visitor.js";
18
- export { transclude, default as Transcluder } from "./transcluder/index.js";
19
- export { dereference } from "./util.js";
20
- /**
21
- * Transforms data to an Element from a particular namespace.
22
- */
23
- export const from = (data, namespace = defaultNamespaceInstance) => {
24
- if (isString(data)) {
25
- // JSON serialized refract
26
- try {
27
- return namespace.fromRefract(JSON.parse(data));
28
- } catch {
29
- // noop
30
- }
31
- }
32
- if (isPlainObject(data) && has('element', data)) {
33
- // refract javascript structure
34
- return namespace.fromRefract(data);
35
- }
36
- return namespace.toElement(data);
37
- };
38
-
39
- /**
40
- * Transforms the ApiDOM into JavaScript POJO.
41
- * This POJO would be the result of interpreting the ApiDOM
42
- * into JavaScript structure.
43
- */
44
- export const toValue = serializeValue;
45
-
46
- /**
47
- * Transforms the ApiDOM into JSON string.
48
- */
49
- export const toJSON = serializeJSON;
50
-
51
- /**
52
- * Transforms the ApiDOM into YAML string.
53
- */
54
- export const toYAML = serializeYAML;
55
-
56
- /**
57
- * Creates a refract representation of an Element.
58
- * https://github.com/refractproject/refract-spec
59
- */
60
- export const dehydrate = (element, namespace = defaultNamespaceInstance) => {
61
- return namespace.toRefract(element);
62
- };
63
-
64
- /**
65
- * Create a refracted string representation of an Element.
66
- */
67
- export const toString = (element, namespace = defaultNamespaceInstance) => {
68
- const refractStructure = dehydrate(element, namespace);
69
- return JSON.stringify(refractStructure);
70
- };
71
- export { default as sexprs } from "./sexprs.js";
72
- export { default as deepmerge } from "./deepmerge.js";
@@ -1,32 +0,0 @@
1
- import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
2
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
- import { dispatchPlugins } from "./plugins/utils/index.js";
5
- import { getNodeType } from "../traversal/visitor.js";
6
- import createToolbox from "./toolbox.js";
7
- const refract = (value, {
8
- Type,
9
- plugins = []
10
- }) => {
11
- /**
12
- * This is where values gets refracted into generic ApiDOM.
13
- * We don't allow consumers to hook into this translation.
14
- * Though we allow consumers to define their onw plugins on already transformed ApiDOM.
15
- */
16
- const element = new Type(value);
17
-
18
- /**
19
- * Run plugins only when necessary.
20
- * Running plugins visitors means extra single traversal === performance hit.
21
- */
22
- return dispatchPlugins(element, plugins, {
23
- toolboxCreator: createToolbox,
24
- visitorOptions: {
25
- nodeTypeGetter: getNodeType
26
- }
27
- });
28
- };
29
- export const createRefractor = Type => (value, options = {}) => refract(value, _objectSpread(_objectSpread({}, options), {}, {
30
- Type
31
- }));
32
- export default refract;
@@ -1,13 +0,0 @@
1
- import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
2
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
- import * as basePredicates from "../predicates/index.js";
5
- import defaultNamespaceInstance from "../namespace.js";
6
- const createToolbox = () => {
7
- const predicates = _objectSpread({}, basePredicates);
8
- return {
9
- predicates,
10
- namespace: defaultNamespaceInstance
11
- };
12
- };
13
- export default createToolbox;
@@ -1,18 +0,0 @@
1
- import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
2
- class EphemeralArray {
3
- constructor(content) {
4
- _defineProperty(this, "type", 'EphemeralArray');
5
- _defineProperty(this, "content", []);
6
- _defineProperty(this, "reference", undefined);
7
- this.content = content;
8
- this.reference = [];
9
- }
10
- toReference() {
11
- return this.reference;
12
- }
13
- toArray() {
14
- this.reference.push(...this.content);
15
- return this.reference;
16
- }
17
- }
18
- export default EphemeralArray;
@@ -1,17 +0,0 @@
1
- import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
2
- class EphemeralObject {
3
- constructor(content) {
4
- _defineProperty(this, "type", 'EphemeralObject');
5
- _defineProperty(this, "content", []);
6
- _defineProperty(this, "reference", undefined);
7
- this.content = content;
8
- this.reference = {};
9
- }
10
- toReference() {
11
- return this.reference;
12
- }
13
- toObject() {
14
- return Object.assign(this.reference, Object.fromEntries(this.content));
15
- }
16
- }
17
- export default EphemeralObject;
@@ -1,54 +0,0 @@
1
- import _objectWithoutProperties from "@babel/runtime-corejs3/helpers/esm/objectWithoutProperties";
2
- import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
3
- const _excluded = ["keyMap"],
4
- _excluded2 = ["keyMap"];
5
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7
- import { T as stubTrue } from 'ramda';
8
- import { visit as astVisit, keyMapDefault as baseKeyMap, getNodeType as baseGetNodeType } from "../../traversal/visitor.js";
9
- const nodeTypeGetter = node => {
10
- if (typeof (node === null || node === void 0 ? void 0 : node.type) === 'string') {
11
- return node.type;
12
- }
13
- return baseGetNodeType(node);
14
- };
15
- const keyMapDefault = _objectSpread({
16
- EphemeralObject: ['content'],
17
- EphemeralArray: ['content']
18
- }, baseKeyMap);
19
-
20
- // eslint-disable-next-line import/prefer-default-export
21
- export const visit = (root,
22
- // @ts-ignore
23
- visitor, _ref = {}) => {
24
- let {
25
- keyMap = keyMapDefault
26
- } = _ref,
27
- rest = _objectWithoutProperties(_ref, _excluded);
28
- return astVisit(root, visitor, _objectSpread({
29
- keyMap,
30
- // @ts-ignore
31
- nodeTypeGetter,
32
- nodePredicate: stubTrue,
33
- detectCycles: false,
34
- deleteNodeSymbol: Symbol.for('delete-node'),
35
- skipVisitingNodeSymbol: Symbol.for('skip-visiting-node')
36
- }, rest));
37
- };
38
-
39
- // @ts-ignore
40
- visit[Symbol.for('nodejs.util.promisify.custom')] = async (root, _ref2 = {}) => {
41
- let {
42
- keyMap = keyMapDefault
43
- } = _ref2,
44
- rest = _objectWithoutProperties(_ref2, _excluded2);
45
- // @ts-ignore
46
- return astVisit[Symbol.for('nodejs.util.promisify.custom')](root, visitor, _objectSpread({
47
- keyMap,
48
- nodeTypeGetter,
49
- nodePredicate: stubTrue,
50
- detectCycles: false,
51
- deleteNodeSymbol: Symbol.for('delete-node'),
52
- skipVisitingNodeSymbol: Symbol.for('skip-visiting-node')
53
- }, rest));
54
- };
@@ -1,7 +0,0 @@
1
- export { default as filter } from "./filter.js";
2
- export { default as find } from "./find.js";
3
- export { default as findAtOffset } from "./findAtOffset.js";
4
- export { default as reject } from "./reject.js";
5
- export { default as some } from "./some.js";
6
- export { default as traverse } from "./traverse.js";
7
- export { default as parents } from "./parents.js";
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes