@swagger-api/apidom-parser-adapter-openapi-json-3-0 0.98.0 → 0.99.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 CHANGED
@@ -3,6 +3,10 @@
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.0](https://github.com/swagger-api/apidom/compare/v0.98.3...v0.99.0) (2024-04-03)
7
+
8
+ **Note:** Version bump only for package @swagger-api/apidom-parser-adapter-openapi-json-3-0
9
+
6
10
  # [0.98.0](https://github.com/swagger-api/apidom/compare/v0.97.1...v0.98.0) (2024-03-21)
7
11
 
8
12
  **Note:** Version bump only for package @swagger-api/apidom-parser-adapter-openapi-json-3-0
@@ -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,
@@ -16416,6 +16417,67 @@ const mergeAll = (visitors, {
16416
16417
  }
16417
16418
  };
16418
16419
  };
16420
+ const mergeAllAsync = (visitors, {
16421
+ visitFnGetter = getVisitFn,
16422
+ nodeTypeGetter = getNodeType,
16423
+ breakSymbol = BREAK,
16424
+ deleteNodeSymbol = null,
16425
+ skipVisitingNodeSymbol = false,
16426
+ exposeEdits = false
16427
+ } = {}) => {
16428
+ const skipSymbol = Symbol('skip');
16429
+ const skipping = new Array(visitors.length).fill(skipSymbol);
16430
+ return {
16431
+ async enter(node, ...rest) {
16432
+ let currentNode = node;
16433
+ let hasChanged = false;
16434
+ for (let i = 0; i < visitors.length; i += 1) {
16435
+ if (skipping[i] === skipSymbol) {
16436
+ const visitFn = visitFnGetter(visitors[i], nodeTypeGetter(currentNode), false);
16437
+ if (typeof visitFn === 'function') {
16438
+ // eslint-disable-next-line no-await-in-loop
16439
+ const result = await visitFn.call(visitors[i], currentNode, ...rest);
16440
+ if (result === skipVisitingNodeSymbol) {
16441
+ skipping[i] = node;
16442
+ } else if (result === breakSymbol) {
16443
+ skipping[i] = breakSymbol;
16444
+ } else if (result === deleteNodeSymbol) {
16445
+ return result;
16446
+ } else if (result !== undefined) {
16447
+ if (exposeEdits) {
16448
+ currentNode = result;
16449
+ hasChanged = true;
16450
+ } else {
16451
+ return result;
16452
+ }
16453
+ }
16454
+ }
16455
+ }
16456
+ }
16457
+ return hasChanged ? currentNode : undefined;
16458
+ },
16459
+ async leave(node, ...rest) {
16460
+ for (let i = 0; i < visitors.length; i += 1) {
16461
+ if (skipping[i] === skipSymbol) {
16462
+ const visitFn = visitFnGetter(visitors[i], nodeTypeGetter(node), true);
16463
+ if (typeof visitFn === 'function') {
16464
+ // eslint-disable-next-line no-await-in-loop
16465
+ const result = await visitFn.call(visitors[i], node, ...rest);
16466
+ if (result === breakSymbol) {
16467
+ skipping[i] = breakSymbol;
16468
+ } else if (result !== undefined && result !== skipVisitingNodeSymbol) {
16469
+ return result;
16470
+ }
16471
+ }
16472
+ } else if (skipping[i] === node) {
16473
+ skipping[i] = skipSymbol;
16474
+ }
16475
+ }
16476
+ return undefined;
16477
+ }
16478
+ };
16479
+ };
16480
+ mergeAll[Symbol.for('nodejs.util.promisify.custom')] = mergeAllAsync;
16419
16481
 
16420
16482
  /* eslint-disable no-continue, no-param-reassign */
16421
16483
  /**
@@ -17562,7 +17624,7 @@ __webpack_require__.r(__webpack_exports__);
17562
17624
  /* harmony export */ createRefractor: () => (/* binding */ createRefractor),
17563
17625
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
17564
17626
  /* harmony export */ });
17565
- /* harmony import */ var _plugins_utils_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(88945);
17627
+ /* harmony import */ var _plugins_dispatcher_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(49915);
17566
17628
  /* harmony import */ var _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(35956);
17567
17629
  /* harmony import */ var _clone_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14831);
17568
17630
  /* harmony import */ var _predicates_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70060);
@@ -17595,7 +17657,7 @@ const refract = (value, {
17595
17657
  * Run plugins only when necessary.
17596
17658
  * Running plugins visitors means extra single traversal === performance hit.
17597
17659
  */
17598
- return (0,_plugins_utils_index_mjs__WEBPACK_IMPORTED_MODULE_2__.dispatchPlugins)(element, plugins, {
17660
+ return (0,_plugins_dispatcher_index_mjs__WEBPACK_IMPORTED_MODULE_2__.dispatchPluginsSync)(element, plugins, {
17599
17661
  toolboxCreator: _toolbox_mjs__WEBPACK_IMPORTED_MODULE_3__["default"],
17600
17662
  visitorOptions: {
17601
17663
  nodeTypeGetter: _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_4__.getNodeType
@@ -17610,13 +17672,14 @@ const createRefractor = Type => (value, options = {}) => refract(value, {
17610
17672
 
17611
17673
  /***/ }),
17612
17674
 
17613
- /***/ 88945:
17675
+ /***/ 49915:
17614
17676
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
17615
17677
 
17616
17678
  "use strict";
17617
17679
  __webpack_require__.r(__webpack_exports__);
17618
17680
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
17619
- /* harmony export */ dispatchPlugins: () => (/* binding */ dispatchPlugins)
17681
+ /* harmony export */ dispatchPluginsAsync: () => (/* binding */ dispatchPluginsAsync),
17682
+ /* harmony export */ dispatchPluginsSync: () => (/* binding */ dispatchPluginsSync)
17620
17683
  /* harmony export */ });
17621
17684
  /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(81515);
17622
17685
  /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(85379);
@@ -17635,9 +17698,7 @@ const defaultDispatchPluginsOptions = {
17635
17698
  exposeEdits: true
17636
17699
  }
17637
17700
  };
17638
-
17639
- // eslint-disable-next-line import/prefer-default-export
17640
- const dispatchPlugins = (element, plugins, options = {}) => {
17701
+ const dispatchPluginsSync = (element, plugins, options = {}) => {
17641
17702
  if (plugins.length === 0) return element;
17642
17703
  const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])(defaultDispatchPluginsOptions, options);
17643
17704
  const {
@@ -17654,6 +17715,26 @@ const dispatchPlugins = (element, plugins, options = {}) => {
17654
17715
  pluginsSpecs.forEach((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_5__["default"])(['post'], []));
17655
17716
  return newElement;
17656
17717
  };
17718
+ const dispatchPluginsAsync = async (element, plugins, options = {}) => {
17719
+ if (plugins.length === 0) return element;
17720
+ const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])(defaultDispatchPluginsOptions, options);
17721
+ const {
17722
+ toolboxCreator,
17723
+ visitorOptions
17724
+ } = mergedOptions;
17725
+ const toolbox = toolboxCreator();
17726
+ const pluginsSpecs = plugins.map(plugin => plugin(toolbox));
17727
+ const mergeAllVisitorsAsync = _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_3__.mergeAll[Symbol.for('nodejs.util.promisify.custom')];
17728
+ const visitAsync = _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_1__.visit[Symbol.for('nodejs.util.promisify.custom')];
17729
+ const mergedPluginsVisitor = mergeAllVisitorsAsync(pluginsSpecs.map((0,ramda__WEBPACK_IMPORTED_MODULE_4__["default"])({}, 'visitor')), {
17730
+ ...visitorOptions
17731
+ });
17732
+ await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_5__["default"])(['pre'], [])));
17733
+ const newElement = await visitAsync(element, mergedPluginsVisitor, visitorOptions);
17734
+ await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_5__["default"])(['post'], [])));
17735
+ return newElement;
17736
+ };
17737
+ dispatchPluginsSync[Symbol.for('nodejs.util.promisify.custom')] = dispatchPluginsAsync;
17657
17738
 
17658
17739
  /***/ }),
17659
17740
 
@@ -18797,7 +18878,7 @@ __webpack_require__.r(__webpack_exports__);
18797
18878
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88326);
18798
18879
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(27155);
18799
18880
  /* 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);
18881
+ /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49915);
18801
18882
  /* harmony import */ var _specification_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(53785);
18802
18883
  /* harmony import */ var _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(13720);
18803
18884
  /* harmony import */ var _toolbox_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(20363);
@@ -18830,7 +18911,7 @@ const refract = (value, {
18830
18911
  /**
18831
18912
  * Running plugins visitors means extra single traversal === performance hit.
18832
18913
  */
18833
- return (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__.dispatchPlugins)(rootVisitor.element, plugins, {
18914
+ return (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__.dispatchPluginsSync)(rootVisitor.element, plugins, {
18834
18915
  toolboxCreator: _toolbox_mjs__WEBPACK_IMPORTED_MODULE_6__["default"],
18835
18916
  visitorOptions: {
18836
18917
  keyMap: _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_7__.keyMap,
@@ -23412,7 +23493,7 @@ __webpack_require__.r(__webpack_exports__);
23412
23493
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(88326);
23413
23494
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(27155);
23414
23495
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(35956);
23415
- /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(88945);
23496
+ /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49915);
23416
23497
  /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14864);
23417
23498
  /* harmony import */ var _specification_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8305);
23418
23499
  /* harmony import */ var _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(50384);
@@ -23443,7 +23524,7 @@ const refract = (value, {
23443
23524
  /**
23444
23525
  * Running plugins visitors means extra single traversal === performance hit.
23445
23526
  */
23446
- return (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__.dispatchPlugins)(rootVisitor.element, plugins, {
23527
+ return (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__.dispatchPluginsSync)(rootVisitor.element, plugins, {
23447
23528
  toolboxCreator: _toolbox_mjs__WEBPACK_IMPORTED_MODULE_6__["default"],
23448
23529
  visitorOptions: {
23449
23530
  keyMap: _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_7__.keyMap,