@speclynx/apidom-reference 1.12.1 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/NOTICE +16 -7
  3. package/README.md +0 -33
  4. package/dist/167.apidom-reference.browser.min.js +1 -1
  5. package/dist/451.apidom-reference.browser.min.js +1 -1
  6. package/dist/apidom-reference.browser.js +24594 -23365
  7. package/dist/apidom-reference.browser.min.js +1 -1
  8. package/package.json +24 -57
  9. package/src/configuration/saturated.cjs +34 -42
  10. package/src/configuration/saturated.mjs +0 -8
  11. package/src/dereference/index.cjs +4 -4
  12. package/src/dereference/index.mjs +1 -1
  13. package/src/dereference/strategies/apidom/index.cjs +7 -7
  14. package/src/dereference/strategies/apidom/index.mjs +5 -6
  15. package/src/dereference/strategies/apidom/selectors/element-id.cjs +4 -2
  16. package/src/dereference/strategies/apidom/selectors/element-id.mjs +5 -3
  17. package/src/dereference/strategies/apidom/visitor.cjs +31 -17
  18. package/src/dereference/strategies/apidom/visitor.mjs +25 -12
  19. package/src/dereference/strategies/asyncapi-2/index.cjs +6 -9
  20. package/src/dereference/strategies/asyncapi-2/index.mjs +6 -10
  21. package/src/dereference/strategies/asyncapi-2/visitor.cjs +67 -80
  22. package/src/dereference/strategies/asyncapi-2/visitor.mjs +59 -72
  23. package/src/dereference/strategies/openapi-2/index.cjs +6 -9
  24. package/src/dereference/strategies/openapi-2/index.mjs +6 -10
  25. package/src/dereference/strategies/openapi-2/visitor.cjs +91 -100
  26. package/src/dereference/strategies/openapi-2/visitor.mjs +81 -90
  27. package/src/dereference/strategies/openapi-3-0/index.cjs +6 -9
  28. package/src/dereference/strategies/openapi-3-0/index.mjs +6 -10
  29. package/src/dereference/strategies/openapi-3-0/visitor.cjs +92 -115
  30. package/src/dereference/strategies/openapi-3-0/visitor.mjs +74 -97
  31. package/src/dereference/strategies/openapi-3-1/index.cjs +6 -9
  32. package/src/dereference/strategies/openapi-3-1/index.mjs +6 -10
  33. package/src/dereference/strategies/openapi-3-1/selectors/$anchor.cjs +2 -1
  34. package/src/dereference/strategies/openapi-3-1/selectors/$anchor.mjs +3 -2
  35. package/src/dereference/strategies/openapi-3-1/selectors/uri.cjs +2 -2
  36. package/src/dereference/strategies/openapi-3-1/selectors/uri.mjs +2 -2
  37. package/src/dereference/strategies/openapi-3-1/util.cjs +3 -2
  38. package/src/dereference/strategies/openapi-3-1/util.mjs +4 -3
  39. package/src/dereference/strategies/openapi-3-1/visitor.cjs +130 -156
  40. package/src/dereference/strategies/openapi-3-1/visitor.mjs +106 -132
  41. package/src/dereference/util.cjs +2 -2
  42. package/src/dereference/util.mjs +1 -1
  43. package/src/parse/parsers/apidom-json/index.cjs +5 -5
  44. package/src/parse/parsers/apidom-json/index.mjs +2 -2
  45. package/src/parse/parsers/arazzo-json-1/index.cjs +1 -2
  46. package/src/parse/parsers/arazzo-json-1/index.mjs +1 -2
  47. package/src/parse/parsers/asyncapi-json-2/index.cjs +1 -2
  48. package/src/parse/parsers/asyncapi-json-2/index.mjs +1 -2
  49. package/src/parse/parsers/binary/index-browser.cjs +3 -3
  50. package/src/parse/parsers/binary/index-browser.mjs +1 -1
  51. package/src/parse/parsers/binary/index-node.cjs +3 -3
  52. package/src/parse/parsers/binary/index-node.mjs +1 -1
  53. package/src/parse/parsers/json/index.cjs +1 -2
  54. package/src/parse/parsers/json/index.mjs +1 -2
  55. package/src/parse/parsers/openapi-json-2/index.cjs +1 -2
  56. package/src/parse/parsers/openapi-json-2/index.mjs +1 -2
  57. package/src/parse/parsers/openapi-json-3-0/index.cjs +1 -2
  58. package/src/parse/parsers/openapi-json-3-0/index.mjs +1 -2
  59. package/src/parse/parsers/openapi-json-3-1/index.cjs +1 -2
  60. package/src/parse/parsers/openapi-json-3-1/index.mjs +1 -2
  61. package/src/resolve/index.cjs +4 -4
  62. package/src/resolve/index.mjs +1 -1
  63. package/types/File.d.ts +1 -1
  64. package/types/Reference.d.ts +1 -1
  65. package/types/ReferenceSet.d.ts +1 -1
  66. package/types/apidom-reference.d.ts +8 -9
  67. package/types/bundle/index.d.ts +1 -1
  68. package/types/bundle/strategies/BundleStrategy.d.ts +1 -1
  69. package/types/bundle/strategies/openapi-3-1/index.d.ts +1 -1
  70. package/types/dereference/index.d.ts +1 -1
  71. package/types/dereference/strategies/DereferenceStrategy.d.ts +1 -1
  72. package/types/dereference/strategies/apidom/index.d.ts +1 -1
  73. package/types/dereference/strategies/apidom/selectors/element-id.d.ts +1 -1
  74. package/types/dereference/strategies/apidom/visitor.d.ts +3 -2
  75. package/types/dereference/strategies/asyncapi-2/index.d.ts +2 -2
  76. package/types/dereference/strategies/asyncapi-2/visitor.d.ts +5 -14
  77. package/types/dereference/strategies/openapi-2/index.d.ts +2 -2
  78. package/types/dereference/strategies/openapi-2/visitor.d.ts +6 -17
  79. package/types/dereference/strategies/openapi-3-0/index.d.ts +2 -2
  80. package/types/dereference/strategies/openapi-3-0/visitor.d.ts +7 -20
  81. package/types/dereference/strategies/openapi-3-1/index.d.ts +2 -2
  82. package/types/dereference/strategies/openapi-3-1/selectors/$anchor.d.ts +1 -1
  83. package/types/dereference/strategies/openapi-3-1/selectors/uri.d.ts +1 -1
  84. package/types/dereference/strategies/openapi-3-1/util.d.ts +1 -1
  85. package/types/dereference/strategies/openapi-3-1/visitor.d.ts +8 -23
  86. package/types/dereference/util.d.ts +1 -1
  87. package/types/index.d.ts +1 -1
  88. package/types/options/index.d.ts +1 -1
  89. package/types/parse/index.d.ts +1 -1
  90. package/types/parse/parsers/Parser.d.ts +1 -1
  91. package/types/parse/parsers/apidom-json/index.d.ts +1 -1
  92. package/types/parse/parsers/arazzo-json-1/index.d.ts +1 -2
  93. package/types/parse/parsers/arazzo-yaml-1/index.d.ts +1 -1
  94. package/types/parse/parsers/asyncapi-json-2/index.d.ts +1 -2
  95. package/types/parse/parsers/asyncapi-yaml-2/index.d.ts +1 -1
  96. package/types/parse/parsers/binary/index-browser.d.ts +1 -1
  97. package/types/parse/parsers/binary/index-node.d.ts +1 -1
  98. package/types/parse/parsers/json/index.d.ts +1 -2
  99. package/types/parse/parsers/openapi-json-2/index.d.ts +1 -2
  100. package/types/parse/parsers/openapi-json-3-0/index.d.ts +1 -2
  101. package/types/parse/parsers/openapi-json-3-1/index.d.ts +1 -2
  102. package/types/parse/parsers/openapi-yaml-2/index.d.ts +1 -1
  103. package/types/parse/parsers/openapi-yaml-3-0/index.d.ts +1 -1
  104. package/types/parse/parsers/openapi-yaml-3-1/index.d.ts +1 -1
  105. package/types/parse/parsers/yaml-1-2/index.d.ts +1 -1
  106. package/types/resolve/index.d.ts +1 -1
  107. package/src/parse/parsers/api-design-systems-json/index.cjs +0 -55
  108. package/src/parse/parsers/api-design-systems-json/index.mjs +0 -49
  109. package/src/parse/parsers/api-design-systems-yaml/index.cjs +0 -54
  110. package/src/parse/parsers/api-design-systems-yaml/index.mjs +0 -48
  111. package/types/parse/parsers/api-design-systems-json/index.d.ts +0 -21
  112. package/types/parse/parsers/api-design-systems-yaml/index.d.ts +0 -20
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@speclynx/apidom-reference",
3
- "version": "1.12.1",
3
+ "version": "2.0.1",
4
4
  "description": "Advanced algorithms for semantic ApiDOM manipulations like dereferencing or resolution.",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -79,16 +79,6 @@
79
79
  "require": "./src/resolve/strategies/openapi-3-1/index.cjs",
80
80
  "types": "./types/resolve/strategies/openapi-3-1/index.d.ts"
81
81
  },
82
- "./parse/parsers/api-design-systems-json": {
83
- "import": "./src/parse/parsers/api-design-systems-json/index.mjs",
84
- "require": "./src/parse/parsers/api-design-systems-json/index.cjs",
85
- "types": "./types/parse/parsers/api-design-systems-json/index.d.ts"
86
- },
87
- "./parse/parsers/api-design-systems-yaml": {
88
- "import": "./src/parse/parsers/api-design-systems-yaml/index.mjs",
89
- "require": "./src/parse/parsers/api-design-systems-yaml/index.cjs",
90
- "types": "./types/parse/parsers/api-design-systems-yaml/index.d.ts"
91
- },
92
82
  "./parse/parsers/asyncapi-json-2": {
93
83
  "import": "./src/parse/parsers/asyncapi-json-2/index.mjs",
94
84
  "require": "./src/parse/parsers/asyncapi-json-2/index.cjs",
@@ -236,58 +226,35 @@
236
226
  "license": "Apache-2.0",
237
227
  "dependencies": {
238
228
  "@babel/runtime-corejs3": "^7.28.4",
239
- "@speclynx/apidom-core": "^1.12.1",
240
- "@speclynx/apidom-error": "^1.12.1",
241
- "@types/ramda": "~0.30.0",
229
+ "@speclynx/apidom-core": "^2.0.1",
230
+ "@speclynx/apidom-datamodel": "^2.0.1",
231
+ "@speclynx/apidom-error": "^2.0.1",
232
+ "@speclynx/apidom-json-pointer": "^2.0.1",
233
+ "@speclynx/apidom-ns-arazzo-1": "^2.0.1",
234
+ "@speclynx/apidom-ns-asyncapi-2": "^2.0.1",
235
+ "@speclynx/apidom-ns-openapi-2": "^2.0.1",
236
+ "@speclynx/apidom-ns-openapi-3-0": "^2.0.1",
237
+ "@speclynx/apidom-ns-openapi-3-1": "^2.0.1",
238
+ "@speclynx/apidom-parser-adapter-arazzo-json-1": "^2.0.1",
239
+ "@speclynx/apidom-parser-adapter-arazzo-yaml-1": "^2.0.1",
240
+ "@speclynx/apidom-parser-adapter-asyncapi-json-2": "^2.0.1",
241
+ "@speclynx/apidom-parser-adapter-asyncapi-yaml-2": "^2.0.1",
242
+ "@speclynx/apidom-parser-adapter-json": "^2.0.1",
243
+ "@speclynx/apidom-parser-adapter-openapi-json-2": "^2.0.1",
244
+ "@speclynx/apidom-parser-adapter-openapi-json-3-0": "^2.0.1",
245
+ "@speclynx/apidom-parser-adapter-openapi-json-3-1": "^2.0.1",
246
+ "@speclynx/apidom-parser-adapter-openapi-yaml-2": "^2.0.1",
247
+ "@speclynx/apidom-parser-adapter-openapi-yaml-3-0": "^2.0.1",
248
+ "@speclynx/apidom-parser-adapter-openapi-yaml-3-1": "^2.0.1",
249
+ "@speclynx/apidom-parser-adapter-yaml-1-2": "^2.0.1",
250
+ "@speclynx/apidom-traverse": "^2.0.1",
242
251
  "axios": "^1.13.0",
243
252
  "minimatch": "^7.4.6",
244
253
  "process": "^0.11.10",
245
254
  "ramda": "~0.32.0",
246
255
  "ramda-adjunct": "^6.0.0"
247
256
  },
248
- "optionalDependencies": {
249
- "@speclynx/apidom-json-pointer": "^1.12.1",
250
- "@speclynx/apidom-ns-arazzo-1": "^1.12.1",
251
- "@speclynx/apidom-ns-asyncapi-2": "^1.12.1",
252
- "@speclynx/apidom-ns-openapi-2": "^1.12.1",
253
- "@speclynx/apidom-ns-openapi-3-0": "^1.12.1",
254
- "@speclynx/apidom-ns-openapi-3-1": "^1.12.1",
255
- "@speclynx/apidom-parser-adapter-api-design-systems-json": "^1.12.1",
256
- "@speclynx/apidom-parser-adapter-api-design-systems-yaml": "^1.12.1",
257
- "@speclynx/apidom-parser-adapter-arazzo-json-1": "^1.12.1",
258
- "@speclynx/apidom-parser-adapter-arazzo-yaml-1": "^1.12.1",
259
- "@speclynx/apidom-parser-adapter-asyncapi-json-2": "^1.12.1",
260
- "@speclynx/apidom-parser-adapter-asyncapi-yaml-2": "^1.12.1",
261
- "@speclynx/apidom-parser-adapter-json": "^1.12.1",
262
- "@speclynx/apidom-parser-adapter-openapi-json-2": "^1.12.1",
263
- "@speclynx/apidom-parser-adapter-openapi-json-3-0": "^1.12.1",
264
- "@speclynx/apidom-parser-adapter-openapi-json-3-1": "^1.12.1",
265
- "@speclynx/apidom-parser-adapter-openapi-yaml-2": "^1.12.1",
266
- "@speclynx/apidom-parser-adapter-openapi-yaml-3-0": "^1.12.1",
267
- "@speclynx/apidom-parser-adapter-openapi-yaml-3-1": "^1.12.1",
268
- "@speclynx/apidom-parser-adapter-yaml-1-2": "^1.12.1"
269
- },
270
257
  "devDependencies": {
271
- "@speclynx/apidom-json-pointer": "*",
272
- "@speclynx/apidom-ns-arazzo-1": "*",
273
- "@speclynx/apidom-ns-asyncapi-2": "*",
274
- "@speclynx/apidom-ns-openapi-2": "*",
275
- "@speclynx/apidom-ns-openapi-3-0": "*",
276
- "@speclynx/apidom-ns-openapi-3-1": "*",
277
- "@speclynx/apidom-parser-adapter-api-design-systems-json": "*",
278
- "@speclynx/apidom-parser-adapter-api-design-systems-yaml": "*",
279
- "@speclynx/apidom-parser-adapter-arazzo-json-1": "*",
280
- "@speclynx/apidom-parser-adapter-arazzo-yaml-1": "*",
281
- "@speclynx/apidom-parser-adapter-asyncapi-json-2": "*",
282
- "@speclynx/apidom-parser-adapter-asyncapi-yaml-2": "*",
283
- "@speclynx/apidom-parser-adapter-json": "*",
284
- "@speclynx/apidom-parser-adapter-openapi-json-2": "*",
285
- "@speclynx/apidom-parser-adapter-openapi-json-3-0": "*",
286
- "@speclynx/apidom-parser-adapter-openapi-json-3-1": "*",
287
- "@speclynx/apidom-parser-adapter-openapi-yaml-2": "*",
288
- "@speclynx/apidom-parser-adapter-openapi-yaml-3-0": "*",
289
- "@speclynx/apidom-parser-adapter-openapi-yaml-3-1": "*",
290
- "@speclynx/apidom-parser-adapter-yaml-1-2": "*",
291
258
  "axios-mock-adapter": "^2.0.0"
292
259
  },
293
260
  "files": [
@@ -300,5 +267,5 @@
300
267
  "README.md",
301
268
  "CHANGELOG.md"
302
269
  ],
303
- "gitHead": "49be88493f922c4ace2e4ebc0f23387ccb62c4fc"
270
+ "gitHead": "6a9caf87f445f76ffd69afa760990ffa784bc82d"
304
271
  }
@@ -9,35 +9,39 @@ var _index3 = _interopRequireDefault(require("../resolve/strategies/openapi-3-0/
9
9
  var _index4 = _interopRequireDefault(require("../resolve/strategies/openapi-3-1/index.cjs"));
10
10
  var _index5 = _interopRequireDefault(require("../resolve/strategies/asyncapi-2/index.cjs"));
11
11
  var _index6 = _interopRequireDefault(require("../resolve/strategies/apidom/index.cjs"));
12
- var _index7 = _interopRequireDefault(require("../parse/parsers/api-design-systems-json/index.cjs"));
13
- var _index8 = _interopRequireDefault(require("../parse/parsers/api-design-systems-yaml/index.cjs"));
14
- var _index9 = _interopRequireDefault(require("../parse/parsers/openapi-json-2/index.cjs"));
15
- var _index0 = _interopRequireDefault(require("../parse/parsers/openapi-yaml-2/index.cjs"));
16
- var _index1 = _interopRequireDefault(require("../parse/parsers/openapi-json-3-0/index.cjs"));
17
- var _index10 = _interopRequireDefault(require("../parse/parsers/openapi-yaml-3-0/index.cjs"));
18
- var _index11 = _interopRequireDefault(require("../parse/parsers/openapi-json-3-1/index.cjs"));
19
- var _index12 = _interopRequireDefault(require("../parse/parsers/openapi-yaml-3-1/index.cjs"));
20
- var _index13 = _interopRequireDefault(require("../parse/parsers/asyncapi-json-2/index.cjs"));
21
- var _index14 = _interopRequireDefault(require("../parse/parsers/asyncapi-yaml-2/index.cjs"));
22
- var _index15 = _interopRequireDefault(require("../parse/parsers/arazzo-json-1/index.cjs"));
23
- var _index16 = _interopRequireDefault(require("../parse/parsers/arazzo-yaml-1/index.cjs"));
24
- var _index17 = _interopRequireDefault(require("../parse/parsers/apidom-json/index.cjs"));
25
- var _index18 = _interopRequireDefault(require("../parse/parsers/json/index.cjs"));
26
- var _index19 = _interopRequireDefault(require("../parse/parsers/yaml-1-2/index.cjs"));
12
+ var _index7 = _interopRequireDefault(require("../parse/parsers/openapi-json-2/index.cjs"));
13
+ var _index8 = _interopRequireDefault(require("../parse/parsers/openapi-yaml-2/index.cjs"));
14
+ var _index9 = _interopRequireDefault(require("../parse/parsers/openapi-json-3-0/index.cjs"));
15
+ var _index0 = _interopRequireDefault(require("../parse/parsers/openapi-yaml-3-0/index.cjs"));
16
+ var _index1 = _interopRequireDefault(require("../parse/parsers/openapi-json-3-1/index.cjs"));
17
+ var _index10 = _interopRequireDefault(require("../parse/parsers/openapi-yaml-3-1/index.cjs"));
18
+ var _index11 = _interopRequireDefault(require("../parse/parsers/asyncapi-json-2/index.cjs"));
19
+ var _index12 = _interopRequireDefault(require("../parse/parsers/asyncapi-yaml-2/index.cjs"));
20
+ var _index13 = _interopRequireDefault(require("../parse/parsers/arazzo-json-1/index.cjs"));
21
+ var _index14 = _interopRequireDefault(require("../parse/parsers/arazzo-yaml-1/index.cjs"));
22
+ var _index15 = _interopRequireDefault(require("../parse/parsers/apidom-json/index.cjs"));
23
+ var _index16 = _interopRequireDefault(require("../parse/parsers/json/index.cjs"));
24
+ var _index17 = _interopRequireDefault(require("../parse/parsers/yaml-1-2/index.cjs"));
27
25
  var _indexNode2 = _interopRequireDefault(require("../parse/parsers/binary/index-node.cjs"));
28
- var _index20 = _interopRequireDefault(require("../dereference/strategies/apidom/index.cjs"));
29
- var _index21 = _interopRequireDefault(require("../dereference/strategies/openapi-2/index.cjs"));
30
- var _index22 = _interopRequireDefault(require("../dereference/strategies/openapi-3-0/index.cjs"));
31
- var _index23 = _interopRequireDefault(require("../dereference/strategies/openapi-3-1/index.cjs"));
32
- var _index24 = _interopRequireDefault(require("../dereference/strategies/asyncapi-2/index.cjs"));
33
- var _index25 = _interopRequireDefault(require("../bundle/strategies/openapi-3-1/index.cjs"));
34
- var _index26 = require("../index.cjs");
35
- Object.keys(_index26).forEach(function (key) {
26
+ var _index18 = _interopRequireDefault(require("../dereference/strategies/apidom/index.cjs"));
27
+ var _index19 = _interopRequireDefault(require("../dereference/strategies/openapi-2/index.cjs"));
28
+ var _index20 = _interopRequireDefault(require("../dereference/strategies/openapi-3-0/index.cjs"));
29
+ var _index21 = _interopRequireDefault(require("../dereference/strategies/openapi-3-1/index.cjs"));
30
+ var _index22 = _interopRequireDefault(require("../dereference/strategies/asyncapi-2/index.cjs"));
31
+ var _index23 = _interopRequireDefault(require("../bundle/strategies/openapi-3-1/index.cjs"));
32
+ var _index24 = require("../index.cjs");
33
+ Object.keys(_index24).forEach(function (key) {
36
34
  if (key === "default" || key === "__esModule") return;
37
- if (key in exports && exports[key] === _index26[key]) return;
38
- exports[key] = _index26[key];
35
+ if (key in exports && exports[key] === _index24[key]) return;
36
+ exports[key] = _index24[key];
39
37
  });
40
- _index26.options.parse.parsers = [new _index9.default({
38
+ _index24.options.parse.parsers = [new _index7.default({
39
+ allowEmpty: true,
40
+ sourceMap: false
41
+ }), new _index8.default({
42
+ allowEmpty: true,
43
+ sourceMap: false
44
+ }), new _index9.default({
41
45
  allowEmpty: true,
42
46
  sourceMap: false
43
47
  }), new _index0.default({
@@ -67,29 +71,17 @@ _index26.options.parse.parsers = [new _index9.default({
67
71
  }), new _index16.default({
68
72
  allowEmpty: true,
69
73
  sourceMap: false
70
- }), new _index7.default({
71
- allowEmpty: true,
72
- sourceMap: false
73
- }), new _index8.default({
74
- allowEmpty: true,
75
- sourceMap: false
76
74
  }), new _index17.default({
77
75
  allowEmpty: true,
78
76
  sourceMap: false
79
- }), new _index18.default({
80
- allowEmpty: true,
81
- sourceMap: false
82
- }), new _index19.default({
83
- allowEmpty: true,
84
- sourceMap: false
85
77
  }), new _indexNode2.default({
86
78
  allowEmpty: true
87
79
  })];
88
- _index26.options.resolve.resolvers = [new _indexNode.default(), new _index.default({
80
+ _index24.options.resolve.resolvers = [new _indexNode.default(), new _index.default({
89
81
  timeout: 5000,
90
82
  redirects: 5,
91
83
  withCredentials: false
92
84
  })];
93
- _index26.options.resolve.strategies = [new _index2.default(), new _index3.default(), new _index4.default(), new _index5.default(), new _index6.default()];
94
- _index26.options.dereference.strategies = [new _index21.default(), new _index22.default(), new _index23.default(), new _index24.default(), new _index20.default()];
95
- _index26.options.bundle.strategies = [new _index25.default()];
85
+ _index24.options.resolve.strategies = [new _index2.default(), new _index3.default(), new _index4.default(), new _index5.default(), new _index6.default()];
86
+ _index24.options.dereference.strategies = [new _index19.default(), new _index20.default(), new _index21.default(), new _index22.default(), new _index18.default()];
87
+ _index24.options.bundle.strategies = [new _index23.default()];
@@ -5,8 +5,6 @@ import OpenAPI3_0ResolveStrategy from "../resolve/strategies/openapi-3-0/index.m
5
5
  import OpenAPI3_1ResolveStrategy from "../resolve/strategies/openapi-3-1/index.mjs";
6
6
  import AsyncAPI2ResolveStrategy from "../resolve/strategies/asyncapi-2/index.mjs";
7
7
  import ApiDOMResolveStrategy from "../resolve/strategies/apidom/index.mjs";
8
- import APIDesignSystemsJSONParser from "../parse/parsers/api-design-systems-json/index.mjs";
9
- import APIDesignSystemsYAMLParser from "../parse/parsers/api-design-systems-yaml/index.mjs";
10
8
  import OpenAPIJSON2Parser from "../parse/parsers/openapi-json-2/index.mjs";
11
9
  import OpenAPIYAML2Parser from "../parse/parsers/openapi-yaml-2/index.mjs";
12
10
  import OpenAPIJSON3_0Parser from "../parse/parsers/openapi-json-3-0/index.mjs";
@@ -58,12 +56,6 @@ options.parse.parsers = [new OpenAPIJSON2Parser({
58
56
  }), new ArazzoYAML1Parser({
59
57
  allowEmpty: true,
60
58
  sourceMap: false
61
- }), new APIDesignSystemsJSONParser({
62
- allowEmpty: true,
63
- sourceMap: false
64
- }), new APIDesignSystemsYAMLParser({
65
- allowEmpty: true,
66
- sourceMap: false
67
59
  }), new APIDOMJSONParser({
68
60
  allowEmpty: true,
69
61
  sourceMap: false
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequ
5
5
  exports.__esModule = true;
6
6
  exports.dereferenceApiDOM = exports.default = void 0;
7
7
  var _ramda = require("ramda");
8
- var _apidomCore = require("@speclynx/apidom-core");
8
+ var _apidomDatamodel = require("@speclynx/apidom-datamodel");
9
9
  var _File = _interopRequireDefault(require("../File.cjs"));
10
10
  var plugins = _interopRequireWildcard(require("../util/plugins.cjs"));
11
11
  var _UnmatchedDereferenceStrategyError = _interopRequireDefault(require("../errors/UnmatchedDereferenceStrategyError.cjs"));
@@ -22,10 +22,10 @@ const dereferenceApiDOM = async (element, options) => {
22
22
  let surrogateWrapping = false;
23
23
 
24
24
  // wrap element into parse result
25
- if (!(0, _apidomCore.isParseResultElement)(element)) {
26
- const elementClone = (0, _apidomCore.cloneShallow)(element);
25
+ if (!(0, _apidomDatamodel.isParseResultElement)(element)) {
26
+ const elementClone = (0, _apidomDatamodel.cloneShallow)(element);
27
27
  elementClone.classes.push('result');
28
- parseResult = new _apidomCore.ParseResultElement([elementClone]);
28
+ parseResult = new _apidomDatamodel.ParseResultElement([elementClone]);
29
29
  surrogateWrapping = true;
30
30
  }
31
31
  const file = new _File.default({
@@ -1,5 +1,5 @@
1
1
  import { isEmpty, propEq } from 'ramda';
2
- import { isParseResultElement, ParseResultElement, cloneShallow } from '@speclynx/apidom-core';
2
+ import { isParseResultElement, ParseResultElement, cloneShallow } from '@speclynx/apidom-datamodel';
3
3
  import File from "../File.mjs";
4
4
  import * as plugins from "../util/plugins.mjs";
5
5
  import UnmatchedDereferenceStrategyError from "../errors/UnmatchedDereferenceStrategyError.mjs";
@@ -3,15 +3,13 @@
3
3
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
4
  exports.__esModule = true;
5
5
  exports.default = void 0;
6
- var _apidomCore = require("@speclynx/apidom-core");
6
+ var _apidomDatamodel = require("@speclynx/apidom-datamodel");
7
+ var _apidomTraverse = require("@speclynx/apidom-traverse");
7
8
  var _DereferenceStrategy = _interopRequireDefault(require("../DereferenceStrategy.cjs"));
8
9
  var _Reference = _interopRequireDefault(require("../../../Reference.cjs"));
9
10
  var _ReferenceSet = _interopRequireDefault(require("../../../ReferenceSet.cjs"));
10
11
  var _visitor = _interopRequireDefault(require("./visitor.cjs"));
11
12
  exports.ApiDOMDereferenceVisitor = _visitor.default;
12
- // @ts-ignore
13
- const visitAsync = _apidomCore.visit[Symbol.for('nodejs.util.promisify.custom')];
14
-
15
13
  /**
16
14
  * @public
17
15
  */
@@ -27,7 +25,7 @@ class ApiDOMDereferenceStrategy extends _DereferenceStrategy.default {
27
25
  });
28
26
  }
29
27
  canDereference(file) {
30
- return file.mediaType.startsWith('application/vnd.apidom') && (0, _apidomCore.isElement)(file.parseResult?.result);
28
+ return file.mediaType.startsWith('application/vnd.apidom') && (0, _apidomDatamodel.isElement)(file.parseResult?.result);
31
29
  }
32
30
  async dereference(file, options) {
33
31
  const immutableRefSet = options.dereference.refSet ?? new _ReferenceSet.default();
@@ -54,7 +52,7 @@ class ApiDOMDereferenceStrategy extends _DereferenceStrategy.default {
54
52
  if (options.dereference.immutable) {
55
53
  immutableRefSet.refs.map(ref => new _Reference.default({
56
54
  ...ref,
57
- value: (0, _apidomCore.cloneDeep)(ref.value)
55
+ value: (0, _apidomDatamodel.cloneDeep)(ref.value)
58
56
  })).forEach(ref => mutableRefSet.add(ref));
59
57
  reference = mutableRefSet.find(ref => ref.uri === file.uri);
60
58
  refSet = mutableRefSet;
@@ -63,7 +61,9 @@ class ApiDOMDereferenceStrategy extends _DereferenceStrategy.default {
63
61
  reference: reference,
64
62
  options
65
63
  });
66
- const dereferencedElement = await visitAsync(refSet.rootRef.value, visitor);
64
+ const dereferencedElement = await (0, _apidomTraverse.traverseAsync)(refSet.rootRef.value, visitor, {
65
+ mutable: true
66
+ });
67
67
 
68
68
  /**
69
69
  * If immutable option is set, replay refs from the refSet.
@@ -1,15 +1,12 @@
1
- import { isElement, cloneDeep, visit } from '@speclynx/apidom-core';
1
+ import { isElement, cloneDeep } from '@speclynx/apidom-datamodel';
2
+ import { traverseAsync } from '@speclynx/apidom-traverse';
2
3
  import DereferenceStrategy from "../DereferenceStrategy.mjs";
3
4
  import Reference from "../../../Reference.mjs";
4
5
  import ReferenceSet from "../../../ReferenceSet.mjs";
5
6
  import ApiDOMDereferenceVisitor from "./visitor.mjs";
6
- // @ts-ignore
7
- const visitAsync = visit[Symbol.for('nodejs.util.promisify.custom')];
8
-
9
7
  /**
10
8
  * @public
11
9
  */
12
-
13
10
  /**
14
11
  * @public
15
12
  */
@@ -57,7 +54,9 @@ class ApiDOMDereferenceStrategy extends DereferenceStrategy {
57
54
  reference: reference,
58
55
  options
59
56
  });
60
- const dereferencedElement = await visitAsync(refSet.rootRef.value, visitor);
57
+ const dereferencedElement = await traverseAsync(refSet.rootRef.value, visitor, {
58
+ mutable: true
59
+ });
61
60
 
62
61
  /**
63
62
  * If immutable option is set, replay refs from the refSet.
@@ -4,10 +4,12 @@ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequ
4
4
  exports.__esModule = true;
5
5
  exports.evaluate = void 0;
6
6
  var _ramdaAdjunct = require("ramda-adjunct");
7
+ var _apidomDatamodel = require("@speclynx/apidom-datamodel");
7
8
  var _apidomCore = require("@speclynx/apidom-core");
9
+ var _apidomTraverse = require("@speclynx/apidom-traverse");
8
10
  var _EvaluationElementIdError = _interopRequireDefault(require("../../../../errors/EvaluationElementIdError.cjs"));
9
11
  exports.EvaluationElementIdError = _EvaluationElementIdError.default;
10
- const hasElementID = element => !!element.id;
12
+ const hasElementID = element => element.hasMetaProperty('id') && (0, _apidomDatamodel.isStringElement)(element.meta.id);
11
13
 
12
14
  /**
13
15
  * Evaluates element ID against ApiDOM fragment.
@@ -19,7 +21,7 @@ const evaluate = (elementID, element) => {
19
21
  } = evaluate;
20
22
  // warm the cache
21
23
  if (!cache.has(element)) {
22
- const elementsWithID = (0, _apidomCore.filter)(hasElementID, element);
24
+ const elementsWithID = (0, _apidomTraverse.filter)(element, hasElementID);
23
25
  cache.set(element, Array.from(elementsWithID));
24
26
  }
25
27
 
@@ -1,7 +1,9 @@
1
1
  import { isUndefined } from 'ramda-adjunct';
2
- import { filter, toValue } from '@speclynx/apidom-core';
2
+ import { isStringElement } from '@speclynx/apidom-datamodel';
3
+ import { toValue } from '@speclynx/apidom-core';
4
+ import { filter } from '@speclynx/apidom-traverse';
3
5
  import EvaluationElementIdError from "../../../../errors/EvaluationElementIdError.mjs";
4
- const hasElementID = element => !!element.id;
6
+ const hasElementID = element => element.hasMetaProperty('id') && isStringElement(element.meta.id);
5
7
 
6
8
  /**
7
9
  * Evaluates element ID against ApiDOM fragment.
@@ -13,7 +15,7 @@ export const evaluate = (elementID, element) => {
13
15
  } = evaluate;
14
16
  // warm the cache
15
17
  if (!cache.has(element)) {
16
- const elementsWithID = filter(hasElementID, element);
18
+ const elementsWithID = filter(element, hasElementID);
17
19
  cache.set(element, Array.from(elementsWithID));
18
20
  }
19
21
 
@@ -6,16 +6,15 @@ exports.__esModule = true;
6
6
  exports.default = void 0;
7
7
  var _ramda = require("ramda");
8
8
  var _apidomError = require("@speclynx/apidom-error");
9
+ var _apidomDatamodel = require("@speclynx/apidom-datamodel");
9
10
  var _apidomCore = require("@speclynx/apidom-core");
11
+ var _apidomTraverse = require("@speclynx/apidom-traverse");
10
12
  var _apidomJsonPointer = require("@speclynx/apidom-json-pointer");
11
13
  var _MaximumResolveDepthError = _interopRequireDefault(require("../../../errors/MaximumResolveDepthError.cjs"));
12
14
  var url = _interopRequireWildcard(require("../../../util/url.cjs"));
13
15
  var _index = _interopRequireDefault(require("../../../parse/index.cjs"));
14
16
  var _Reference = _interopRequireDefault(require("../../../Reference.cjs"));
15
17
  var _elementId = require("./selectors/element-id.cjs");
16
- // @ts-ignore
17
- const visitAsync = _apidomCore.visit[Symbol.for('nodejs.util.promisify.custom')];
18
-
19
18
  /**
20
19
  * The following rules apply:
21
20
  *
@@ -71,7 +70,7 @@ class ApiDOMDereferenceVisitor {
71
70
  // register new mutable reference with a refSet
72
71
  const mutableReference = new _Reference.default({
73
72
  uri: baseURI,
74
- value: (0, _apidomCore.cloneDeep)(parseResult),
73
+ value: (0, _apidomDatamodel.cloneDeep)(parseResult),
75
74
  depth: this.reference.depth + 1
76
75
  });
77
76
  refSet.add(mutableReference);
@@ -86,7 +85,13 @@ class ApiDOMDereferenceVisitor {
86
85
  }
87
86
  return mutableReference;
88
87
  }
89
- async RefElement(refElement, key, parent, path, ancestors) {
88
+ async RefElement(path) {
89
+ const refElement = path.node;
90
+ const {
91
+ parent,
92
+ key
93
+ } = path;
94
+ const ancestors = path.getAncestorNodes();
90
95
  const refURI = (0, _apidomCore.toValue)(refElement);
91
96
  const refNormalizedURI = refURI.includes('#') ? refURI : `#${refURI}`;
92
97
  const retrievalURI = this.toBaseURI(refNormalizedURI);
@@ -96,24 +101,26 @@ class ApiDOMDereferenceVisitor {
96
101
  // ignore resolving internal RefElements
97
102
  if (!this.options.resolve.internal && isInternalReference) {
98
103
  // skip traversing this ref element
99
- return false;
104
+ path.skip();
105
+ return;
100
106
  }
101
107
  // ignore resolving external RefElements
102
108
  if (!this.options.resolve.external && isExternalReference) {
103
109
  // skip traversing this ref element
104
- return false;
110
+ path.skip();
111
+ return;
105
112
  }
106
113
  const reference = await this.toReference(refNormalizedURI);
107
114
  const refBaseURI = url.resolve(retrievalURI, refNormalizedURI);
108
115
  const elementID = _apidomJsonPointer.URIFragmentIdentifier.fromURIReference(refBaseURI);
109
116
  let referencedElement = (0, _elementId.evaluate)(elementID, reference.value.result);
110
- if (!(0, _apidomCore.isElement)(referencedElement)) {
117
+ if (!(0, _apidomDatamodel.isElement)(referencedElement)) {
111
118
  throw new _apidomError.ApiDOMError(`Referenced element with id="${elementID}" was not found`);
112
119
  }
113
120
  if (refElement === referencedElement) {
114
121
  throw new _apidomError.ApiDOMError('RefElement cannot reference itself');
115
122
  }
116
- if ((0, _apidomCore.isRefElement)(referencedElement)) {
123
+ if ((0, _apidomDatamodel.isRefElement)(referencedElement)) {
117
124
  throw new _apidomError.ApiDOMError('RefElement cannot reference another RefElement');
118
125
  }
119
126
  if (isExternalReference) {
@@ -122,33 +129,38 @@ class ApiDOMDereferenceVisitor {
122
129
  reference,
123
130
  options: this.options
124
131
  });
125
- referencedElement = await visitAsync(referencedElement, visitor);
132
+ referencedElement = await (0, _apidomTraverse.traverseAsync)(referencedElement, visitor, {
133
+ mutable: true
134
+ });
126
135
  }
127
136
 
128
137
  /**
129
- * When path is used, it references the given property of the referenced element
138
+ * When path is used, it references the given property of the referenced element.
139
+ * Valid paths are: 'element', 'content', 'meta', 'attributes'.
130
140
  */
131
141
  const referencedElementPath = (0, _apidomCore.toValue)(refElement.path);
132
- if (referencedElementPath !== 'element' && (0, _apidomCore.isElement)(referencedElement)) {
133
- referencedElement = (0, _apidomCore.refract)(referencedElement[referencedElementPath]);
142
+ if (referencedElementPath !== 'element' && (0, _apidomDatamodel.isElement)(referencedElement)) {
143
+ referencedElement = (0, _apidomDatamodel.refract)(referencedElement[referencedElementPath]);
134
144
  }
135
145
 
136
146
  /**
137
147
  * Transclusion of a Ref Element SHALL be defined in the if/else block below.
138
148
  */
139
- if ((0, _apidomCore.isObjectElement)(referencedElement) && (0, _apidomCore.isObjectElement)(ancestors[ancestors.length - 1]) && Array.isArray(parent) && typeof key === 'number') {
149
+ // ancestors[0] is the grandparent (nearest ancestor from getAncestorNodes())
150
+ const grandparent = ancestors[0];
151
+ if ((0, _apidomDatamodel.isObjectElement)(referencedElement) && (0, _apidomDatamodel.isObjectElement)(grandparent) && Array.isArray(parent) && typeof key === 'number') {
140
152
  /**
141
153
  * If the Ref Element is held by an Object Element and references an Object Element,
142
154
  * its content entries SHALL be inserted in place of the Ref Element.
143
155
  */
144
156
  parent.splice(key, 1, ...referencedElement.content);
145
- } else if ((0, _apidomCore.isArrayElement)(referencedElement) && Array.isArray(parent) && typeof key === 'number') {
157
+ } else if ((0, _apidomDatamodel.isArrayElement)(referencedElement) && Array.isArray(parent) && typeof key === 'number') {
146
158
  /**
147
159
  * If the Ref Element is held by an Array Element and references an Array Element,
148
160
  * its content entries SHALL be inserted in place of the Ref Element.
149
161
  */
150
162
  parent.splice(key, 1, ...referencedElement.content);
151
- } else if ((0, _apidomCore.isMemberElement)(parent)) {
163
+ } else if ((0, _apidomDatamodel.isMemberElement)(parent)) {
152
164
  /**
153
165
  * The Ref Element is substituted by the Element it references.
154
166
  */
@@ -159,7 +171,9 @@ class ApiDOMDereferenceVisitor {
159
171
  */
160
172
  parent[key] = referencedElement;
161
173
  }
162
- return !parent ? referencedElement : false;
174
+ if (!parent) {
175
+ path.replaceWith(referencedElement);
176
+ }
163
177
  }
164
178
  }
165
179
  var _default = exports.default = ApiDOMDereferenceVisitor;
@@ -1,15 +1,14 @@
1
1
  import { propEq } from 'ramda';
2
2
  import { ApiDOMError } from '@speclynx/apidom-error';
3
- import { isElement, isMemberElement, isArrayElement, isObjectElement, isRefElement, toValue, refract, visit, cloneDeep } from '@speclynx/apidom-core';
3
+ import { isElement, isMemberElement, isArrayElement, isObjectElement, isRefElement, refract, cloneDeep } from '@speclynx/apidom-datamodel';
4
+ import { toValue } from '@speclynx/apidom-core';
5
+ import { traverseAsync } from '@speclynx/apidom-traverse';
4
6
  import { URIFragmentIdentifier } from '@speclynx/apidom-json-pointer';
5
7
  import MaximumResolveDepthError from "../../../errors/MaximumResolveDepthError.mjs";
6
8
  import * as url from "../../../util/url.mjs";
7
9
  import parse from "../../../parse/index.mjs";
8
10
  import Reference from "../../../Reference.mjs";
9
11
  import { evaluate } from "./selectors/element-id.mjs";
10
- // @ts-ignore
11
- const visitAsync = visit[Symbol.for('nodejs.util.promisify.custom')];
12
-
13
12
  /**
14
13
  * The following rules apply:
15
14
  *
@@ -23,7 +22,6 @@ const visitAsync = visit[Symbol.for('nodejs.util.promisify.custom')];
23
22
  * WARNING: this implementation only supports referencing elements in the local document. Points 2-4 are not supported.
24
23
  * @public
25
24
  */
26
-
27
25
  /**
28
26
  * @public
29
27
  */
@@ -80,7 +78,13 @@ class ApiDOMDereferenceVisitor {
80
78
  }
81
79
  return mutableReference;
82
80
  }
83
- async RefElement(refElement, key, parent, path, ancestors) {
81
+ async RefElement(path) {
82
+ const refElement = path.node;
83
+ const {
84
+ parent,
85
+ key
86
+ } = path;
87
+ const ancestors = path.getAncestorNodes();
84
88
  const refURI = toValue(refElement);
85
89
  const refNormalizedURI = refURI.includes('#') ? refURI : `#${refURI}`;
86
90
  const retrievalURI = this.toBaseURI(refNormalizedURI);
@@ -90,12 +94,14 @@ class ApiDOMDereferenceVisitor {
90
94
  // ignore resolving internal RefElements
91
95
  if (!this.options.resolve.internal && isInternalReference) {
92
96
  // skip traversing this ref element
93
- return false;
97
+ path.skip();
98
+ return;
94
99
  }
95
100
  // ignore resolving external RefElements
96
101
  if (!this.options.resolve.external && isExternalReference) {
97
102
  // skip traversing this ref element
98
- return false;
103
+ path.skip();
104
+ return;
99
105
  }
100
106
  const reference = await this.toReference(refNormalizedURI);
101
107
  const refBaseURI = url.resolve(retrievalURI, refNormalizedURI);
@@ -116,11 +122,14 @@ class ApiDOMDereferenceVisitor {
116
122
  reference,
117
123
  options: this.options
118
124
  });
119
- referencedElement = await visitAsync(referencedElement, visitor);
125
+ referencedElement = await traverseAsync(referencedElement, visitor, {
126
+ mutable: true
127
+ });
120
128
  }
121
129
 
122
130
  /**
123
- * When path is used, it references the given property of the referenced element
131
+ * When path is used, it references the given property of the referenced element.
132
+ * Valid paths are: 'element', 'content', 'meta', 'attributes'.
124
133
  */
125
134
  const referencedElementPath = toValue(refElement.path);
126
135
  if (referencedElementPath !== 'element' && isElement(referencedElement)) {
@@ -130,7 +139,9 @@ class ApiDOMDereferenceVisitor {
130
139
  /**
131
140
  * Transclusion of a Ref Element SHALL be defined in the if/else block below.
132
141
  */
133
- if (isObjectElement(referencedElement) && isObjectElement(ancestors[ancestors.length - 1]) && Array.isArray(parent) && typeof key === 'number') {
142
+ // ancestors[0] is the grandparent (nearest ancestor from getAncestorNodes())
143
+ const grandparent = ancestors[0];
144
+ if (isObjectElement(referencedElement) && isObjectElement(grandparent) && Array.isArray(parent) && typeof key === 'number') {
134
145
  /**
135
146
  * If the Ref Element is held by an Object Element and references an Object Element,
136
147
  * its content entries SHALL be inserted in place of the Ref Element.
@@ -153,7 +164,9 @@ class ApiDOMDereferenceVisitor {
153
164
  */
154
165
  parent[key] = referencedElement;
155
166
  }
156
- return !parent ? referencedElement : false;
167
+ if (!parent) {
168
+ path.replaceWith(referencedElement);
169
+ }
157
170
  }
158
171
  }
159
172
  export default ApiDOMDereferenceVisitor;