@swagger-api/apidom-parser-adapter-openapi-json-3-1 0.98.0 → 0.99.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,14 @@
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.99.1](https://github.com/swagger-api/apidom/compare/v0.99.0...v0.99.1) (2024-04-05)
7
+
8
+ **Note:** Version bump only for package @swagger-api/apidom-parser-adapter-openapi-json-3-1
9
+
10
+ # [0.99.0](https://github.com/swagger-api/apidom/compare/v0.98.3...v0.99.0) (2024-04-03)
11
+
12
+ **Note:** Version bump only for package @swagger-api/apidom-parser-adapter-openapi-json-3-1
13
+
6
14
  # [0.98.0](https://github.com/swagger-api/apidom/compare/v0.97.1...v0.98.0) (2024-03-21)
7
15
 
8
16
  **Note:** Version bump only for package @swagger-api/apidom-parser-adapter-openapi-json-3-1
@@ -16358,6 +16358,7 @@ const cloneNode = node => Object.create(Object.getPrototypeOf(node), Object.getO
16358
16358
  * If a prior visitor edits a node, no following visitors will see that node.
16359
16359
  * `exposeEdits=true` can be used to exoise the edited node from the previous visitors.
16360
16360
  */
16361
+
16361
16362
  const mergeAll = (visitors, {
16362
16363
  visitFnGetter = getVisitFn,
16363
16364
  nodeTypeGetter = getNodeType,
@@ -16377,6 +16378,14 @@ const mergeAll = (visitors, {
16377
16378
  const visitFn = visitFnGetter(visitors[i], nodeTypeGetter(currentNode), false);
16378
16379
  if (typeof visitFn === 'function') {
16379
16380
  const result = visitFn.call(visitors[i], currentNode, ...rest);
16381
+
16382
+ // check if the visitor is async
16383
+ if (typeof (result === null || result === void 0 ? void 0 : result.then) === 'function') {
16384
+ throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_0__["default"]('Async visitor not supported in sync mode', {
16385
+ visitor: visitors[i],
16386
+ visitFn
16387
+ });
16388
+ }
16380
16389
  if (result === skipVisitingNodeSymbol) {
16381
16390
  skipping[i] = node;
16382
16391
  } else if (result === breakSymbol) {
@@ -16402,6 +16411,14 @@ const mergeAll = (visitors, {
16402
16411
  const visitFn = visitFnGetter(visitors[i], nodeTypeGetter(node), true);
16403
16412
  if (typeof visitFn === 'function') {
16404
16413
  const result = visitFn.call(visitors[i], node, ...rest);
16414
+
16415
+ // check if the visitor is async
16416
+ if (typeof (result === null || result === void 0 ? void 0 : result.then) === 'function') {
16417
+ throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_0__["default"]('Async visitor not supported in sync mode', {
16418
+ visitor: visitors[i],
16419
+ visitFn
16420
+ });
16421
+ }
16405
16422
  if (result === breakSymbol) {
16406
16423
  skipping[i] = breakSymbol;
16407
16424
  } else if (result !== undefined && result !== skipVisitingNodeSymbol) {
@@ -16416,6 +16433,67 @@ const mergeAll = (visitors, {
16416
16433
  }
16417
16434
  };
16418
16435
  };
16436
+ const mergeAllAsync = (visitors, {
16437
+ visitFnGetter = getVisitFn,
16438
+ nodeTypeGetter = getNodeType,
16439
+ breakSymbol = BREAK,
16440
+ deleteNodeSymbol = null,
16441
+ skipVisitingNodeSymbol = false,
16442
+ exposeEdits = false
16443
+ } = {}) => {
16444
+ const skipSymbol = Symbol('skip');
16445
+ const skipping = new Array(visitors.length).fill(skipSymbol);
16446
+ return {
16447
+ async enter(node, ...rest) {
16448
+ let currentNode = node;
16449
+ let hasChanged = false;
16450
+ for (let i = 0; i < visitors.length; i += 1) {
16451
+ if (skipping[i] === skipSymbol) {
16452
+ const visitFn = visitFnGetter(visitors[i], nodeTypeGetter(currentNode), false);
16453
+ if (typeof visitFn === 'function') {
16454
+ // eslint-disable-next-line no-await-in-loop
16455
+ const result = await visitFn.call(visitors[i], currentNode, ...rest);
16456
+ if (result === skipVisitingNodeSymbol) {
16457
+ skipping[i] = node;
16458
+ } else if (result === breakSymbol) {
16459
+ skipping[i] = breakSymbol;
16460
+ } else if (result === deleteNodeSymbol) {
16461
+ return result;
16462
+ } else if (result !== undefined) {
16463
+ if (exposeEdits) {
16464
+ currentNode = result;
16465
+ hasChanged = true;
16466
+ } else {
16467
+ return result;
16468
+ }
16469
+ }
16470
+ }
16471
+ }
16472
+ }
16473
+ return hasChanged ? currentNode : undefined;
16474
+ },
16475
+ async leave(node, ...rest) {
16476
+ for (let i = 0; i < visitors.length; i += 1) {
16477
+ if (skipping[i] === skipSymbol) {
16478
+ const visitFn = visitFnGetter(visitors[i], nodeTypeGetter(node), true);
16479
+ if (typeof visitFn === 'function') {
16480
+ // eslint-disable-next-line no-await-in-loop
16481
+ const result = await visitFn.call(visitors[i], node, ...rest);
16482
+ if (result === breakSymbol) {
16483
+ skipping[i] = breakSymbol;
16484
+ } else if (result !== undefined && result !== skipVisitingNodeSymbol) {
16485
+ return result;
16486
+ }
16487
+ }
16488
+ } else if (skipping[i] === node) {
16489
+ skipping[i] = skipSymbol;
16490
+ }
16491
+ }
16492
+ return undefined;
16493
+ }
16494
+ };
16495
+ };
16496
+ mergeAll[Symbol.for('nodejs.util.promisify.custom')] = mergeAllAsync;
16419
16497
 
16420
16498
  /* eslint-disable no-continue, no-param-reassign */
16421
16499
  /**
@@ -16584,6 +16662,7 @@ visitor, {
16584
16662
  }
16585
16663
  let result;
16586
16664
  if (!Array.isArray(node)) {
16665
+ var _result;
16587
16666
  if (!nodePredicate(node)) {
16588
16667
  throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_0__["default"](`Invalid AST Node: ${String(node)}`, {
16589
16668
  node
@@ -16605,6 +16684,14 @@ visitor, {
16605
16684
  // retrieve result
16606
16685
  result = visitFn.call(visitor, node, key, parent, path, ancestors);
16607
16686
  }
16687
+
16688
+ // check if the visitor is async
16689
+ if (typeof ((_result = result) === null || _result === void 0 ? void 0 : _result.then) === 'function') {
16690
+ throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_0__["default"]('Async visitor not supported in sync mode', {
16691
+ visitor,
16692
+ visitFn
16693
+ });
16694
+ }
16608
16695
  if (result === breakSymbol) {
16609
16696
  break;
16610
16697
  }
@@ -17562,7 +17649,7 @@ __webpack_require__.r(__webpack_exports__);
17562
17649
  /* harmony export */ createRefractor: () => (/* binding */ createRefractor),
17563
17650
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
17564
17651
  /* harmony export */ });
17565
- /* harmony import */ var _plugins_utils_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(88945);
17652
+ /* harmony import */ var _plugins_dispatcher_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(49915);
17566
17653
  /* harmony import */ var _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(35956);
17567
17654
  /* harmony import */ var _clone_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14831);
17568
17655
  /* harmony import */ var _predicates_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70060);
@@ -17595,7 +17682,7 @@ const refract = (value, {
17595
17682
  * Run plugins only when necessary.
17596
17683
  * Running plugins visitors means extra single traversal === performance hit.
17597
17684
  */
17598
- return (0,_plugins_utils_index_mjs__WEBPACK_IMPORTED_MODULE_2__.dispatchPlugins)(element, plugins, {
17685
+ return (0,_plugins_dispatcher_index_mjs__WEBPACK_IMPORTED_MODULE_2__.dispatchPluginsSync)(element, plugins, {
17599
17686
  toolboxCreator: _toolbox_mjs__WEBPACK_IMPORTED_MODULE_3__["default"],
17600
17687
  visitorOptions: {
17601
17688
  nodeTypeGetter: _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_4__.getNodeType
@@ -17610,13 +17697,14 @@ const createRefractor = Type => (value, options = {}) => refract(value, {
17610
17697
 
17611
17698
  /***/ }),
17612
17699
 
17613
- /***/ 88945:
17700
+ /***/ 49915:
17614
17701
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
17615
17702
 
17616
17703
  "use strict";
17617
17704
  __webpack_require__.r(__webpack_exports__);
17618
17705
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
17619
- /* harmony export */ dispatchPlugins: () => (/* binding */ dispatchPlugins)
17706
+ /* harmony export */ dispatchPluginsAsync: () => (/* binding */ dispatchPluginsAsync),
17707
+ /* harmony export */ dispatchPluginsSync: () => (/* binding */ dispatchPluginsSync)
17620
17708
  /* harmony export */ });
17621
17709
  /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(81515);
17622
17710
  /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(85379);
@@ -17635,9 +17723,7 @@ const defaultDispatchPluginsOptions = {
17635
17723
  exposeEdits: true
17636
17724
  }
17637
17725
  };
17638
-
17639
- // eslint-disable-next-line import/prefer-default-export
17640
- const dispatchPlugins = (element, plugins, options = {}) => {
17726
+ const dispatchPluginsSync = (element, plugins, options = {}) => {
17641
17727
  if (plugins.length === 0) return element;
17642
17728
  const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])(defaultDispatchPluginsOptions, options);
17643
17729
  const {
@@ -17654,6 +17740,26 @@ const dispatchPlugins = (element, plugins, options = {}) => {
17654
17740
  pluginsSpecs.forEach((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_5__["default"])(['post'], []));
17655
17741
  return newElement;
17656
17742
  };
17743
+ const dispatchPluginsAsync = async (element, plugins, options = {}) => {
17744
+ if (plugins.length === 0) return element;
17745
+ const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])(defaultDispatchPluginsOptions, options);
17746
+ const {
17747
+ toolboxCreator,
17748
+ visitorOptions
17749
+ } = mergedOptions;
17750
+ const toolbox = toolboxCreator();
17751
+ const pluginsSpecs = plugins.map(plugin => plugin(toolbox));
17752
+ const mergeAllVisitorsAsync = _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_3__.mergeAll[Symbol.for('nodejs.util.promisify.custom')];
17753
+ const visitAsync = _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_1__.visit[Symbol.for('nodejs.util.promisify.custom')];
17754
+ const mergedPluginsVisitor = mergeAllVisitorsAsync(pluginsSpecs.map((0,ramda__WEBPACK_IMPORTED_MODULE_4__["default"])({}, 'visitor')), {
17755
+ ...visitorOptions
17756
+ });
17757
+ await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_5__["default"])(['pre'], [])));
17758
+ const newElement = await visitAsync(element, mergedPluginsVisitor, visitorOptions);
17759
+ await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_5__["default"])(['post'], [])));
17760
+ return newElement;
17761
+ };
17762
+ dispatchPluginsSync[Symbol.for('nodejs.util.promisify.custom')] = dispatchPluginsAsync;
17657
17763
 
17658
17764
  /***/ }),
17659
17765
 
@@ -18797,7 +18903,7 @@ __webpack_require__.r(__webpack_exports__);
18797
18903
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88326);
18798
18904
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(27155);
18799
18905
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(35956);
18800
- /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(88945);
18906
+ /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49915);
18801
18907
  /* harmony import */ var _specification_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(53785);
18802
18908
  /* harmony import */ var _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(13720);
18803
18909
  /* harmony import */ var _toolbox_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(20363);
@@ -18830,7 +18936,7 @@ const refract = (value, {
18830
18936
  /**
18831
18937
  * Running plugins visitors means extra single traversal === performance hit.
18832
18938
  */
18833
- return (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__.dispatchPlugins)(rootVisitor.element, plugins, {
18939
+ return (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__.dispatchPluginsSync)(rootVisitor.element, plugins, {
18834
18940
  toolboxCreator: _toolbox_mjs__WEBPACK_IMPORTED_MODULE_6__["default"],
18835
18941
  visitorOptions: {
18836
18942
  keyMap: _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_7__.keyMap,
@@ -23380,7 +23486,7 @@ __webpack_require__.r(__webpack_exports__);
23380
23486
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(88326);
23381
23487
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(27155);
23382
23488
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(35956);
23383
- /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(88945);
23489
+ /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49915);
23384
23490
  /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14864);
23385
23491
  /* harmony import */ var _specification_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8305);
23386
23492
  /* harmony import */ var _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(50384);
@@ -23411,7 +23517,7 @@ const refract = (value, {
23411
23517
  /**
23412
23518
  * Running plugins visitors means extra single traversal === performance hit.
23413
23519
  */
23414
- return (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__.dispatchPlugins)(rootVisitor.element, plugins, {
23520
+ return (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__.dispatchPluginsSync)(rootVisitor.element, plugins, {
23415
23521
  toolboxCreator: _toolbox_mjs__WEBPACK_IMPORTED_MODULE_6__["default"],
23416
23522
  visitorOptions: {
23417
23523
  keyMap: _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_7__.keyMap,
@@ -29505,7 +29611,7 @@ __webpack_require__.r(__webpack_exports__);
29505
29611
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(88326);
29506
29612
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(27155);
29507
29613
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(35956);
29508
- /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(88945);
29614
+ /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49915);
29509
29615
  /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14864);
29510
29616
  /* harmony import */ var _specification_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(48930);
29511
29617
  /* harmony import */ var _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(58103);
@@ -29536,7 +29642,7 @@ const refract = (value, {
29536
29642
  /**
29537
29643
  * Running plugins visitors means extra single traversal === performance hit.
29538
29644
  */
29539
- return (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__.dispatchPlugins)(rootVisitor.element, plugins, {
29645
+ return (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__.dispatchPluginsSync)(rootVisitor.element, plugins, {
29540
29646
  toolboxCreator: _toolbox_mjs__WEBPACK_IMPORTED_MODULE_6__["default"],
29541
29647
  visitorOptions: {
29542
29648
  keyMap: _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_7__.keyMap,