@swagger-api/apidom-ns-openapi-2 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-ns-openapi-2
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-ns-openapi-2
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-ns-openapi-2
@@ -2337,7 +2337,7 @@ __webpack_require__.r(__webpack_exports__);
2337
2337
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(88326);
2338
2338
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(27155);
2339
2339
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(35956);
2340
- /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(88945);
2340
+ /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49915);
2341
2341
  /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14864);
2342
2342
  /* harmony import */ var _specification__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(27715);
2343
2343
  /* harmony import */ var _traversal_visitor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(80192);
@@ -2368,7 +2368,7 @@ const refract = (value, {
2368
2368
  /**
2369
2369
  * Running plugins visitors means extra single traversal === performance hit.
2370
2370
  */
2371
- return (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__.dispatchPlugins)(rootVisitor.element, plugins, {
2371
+ return (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__.dispatchPluginsSync)(rootVisitor.element, plugins, {
2372
2372
  toolboxCreator: _toolbox__WEBPACK_IMPORTED_MODULE_6__["default"],
2373
2373
  visitorOptions: {
2374
2374
  keyMap: _traversal_visitor__WEBPACK_IMPORTED_MODULE_7__.keyMap,
@@ -21270,6 +21270,7 @@ const cloneNode = node => Object.create(Object.getPrototypeOf(node), Object.getO
21270
21270
  * If a prior visitor edits a node, no following visitors will see that node.
21271
21271
  * `exposeEdits=true` can be used to exoise the edited node from the previous visitors.
21272
21272
  */
21273
+
21273
21274
  const mergeAll = (visitors, {
21274
21275
  visitFnGetter = getVisitFn,
21275
21276
  nodeTypeGetter = getNodeType,
@@ -21289,6 +21290,14 @@ const mergeAll = (visitors, {
21289
21290
  const visitFn = visitFnGetter(visitors[i], nodeTypeGetter(currentNode), false);
21290
21291
  if (typeof visitFn === 'function') {
21291
21292
  const result = visitFn.call(visitors[i], currentNode, ...rest);
21293
+
21294
+ // check if the visitor is async
21295
+ if (typeof (result === null || result === void 0 ? void 0 : result.then) === 'function') {
21296
+ throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_0__["default"]('Async visitor not supported in sync mode', {
21297
+ visitor: visitors[i],
21298
+ visitFn
21299
+ });
21300
+ }
21292
21301
  if (result === skipVisitingNodeSymbol) {
21293
21302
  skipping[i] = node;
21294
21303
  } else if (result === breakSymbol) {
@@ -21314,6 +21323,14 @@ const mergeAll = (visitors, {
21314
21323
  const visitFn = visitFnGetter(visitors[i], nodeTypeGetter(node), true);
21315
21324
  if (typeof visitFn === 'function') {
21316
21325
  const result = visitFn.call(visitors[i], node, ...rest);
21326
+
21327
+ // check if the visitor is async
21328
+ if (typeof (result === null || result === void 0 ? void 0 : result.then) === 'function') {
21329
+ throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_0__["default"]('Async visitor not supported in sync mode', {
21330
+ visitor: visitors[i],
21331
+ visitFn
21332
+ });
21333
+ }
21317
21334
  if (result === breakSymbol) {
21318
21335
  skipping[i] = breakSymbol;
21319
21336
  } else if (result !== undefined && result !== skipVisitingNodeSymbol) {
@@ -21328,6 +21345,67 @@ const mergeAll = (visitors, {
21328
21345
  }
21329
21346
  };
21330
21347
  };
21348
+ const mergeAllAsync = (visitors, {
21349
+ visitFnGetter = getVisitFn,
21350
+ nodeTypeGetter = getNodeType,
21351
+ breakSymbol = BREAK,
21352
+ deleteNodeSymbol = null,
21353
+ skipVisitingNodeSymbol = false,
21354
+ exposeEdits = false
21355
+ } = {}) => {
21356
+ const skipSymbol = Symbol('skip');
21357
+ const skipping = new Array(visitors.length).fill(skipSymbol);
21358
+ return {
21359
+ async enter(node, ...rest) {
21360
+ let currentNode = node;
21361
+ let hasChanged = false;
21362
+ for (let i = 0; i < visitors.length; i += 1) {
21363
+ if (skipping[i] === skipSymbol) {
21364
+ const visitFn = visitFnGetter(visitors[i], nodeTypeGetter(currentNode), false);
21365
+ if (typeof visitFn === 'function') {
21366
+ // eslint-disable-next-line no-await-in-loop
21367
+ const result = await visitFn.call(visitors[i], currentNode, ...rest);
21368
+ if (result === skipVisitingNodeSymbol) {
21369
+ skipping[i] = node;
21370
+ } else if (result === breakSymbol) {
21371
+ skipping[i] = breakSymbol;
21372
+ } else if (result === deleteNodeSymbol) {
21373
+ return result;
21374
+ } else if (result !== undefined) {
21375
+ if (exposeEdits) {
21376
+ currentNode = result;
21377
+ hasChanged = true;
21378
+ } else {
21379
+ return result;
21380
+ }
21381
+ }
21382
+ }
21383
+ }
21384
+ }
21385
+ return hasChanged ? currentNode : undefined;
21386
+ },
21387
+ async leave(node, ...rest) {
21388
+ for (let i = 0; i < visitors.length; i += 1) {
21389
+ if (skipping[i] === skipSymbol) {
21390
+ const visitFn = visitFnGetter(visitors[i], nodeTypeGetter(node), true);
21391
+ if (typeof visitFn === 'function') {
21392
+ // eslint-disable-next-line no-await-in-loop
21393
+ const result = await visitFn.call(visitors[i], node, ...rest);
21394
+ if (result === breakSymbol) {
21395
+ skipping[i] = breakSymbol;
21396
+ } else if (result !== undefined && result !== skipVisitingNodeSymbol) {
21397
+ return result;
21398
+ }
21399
+ }
21400
+ } else if (skipping[i] === node) {
21401
+ skipping[i] = skipSymbol;
21402
+ }
21403
+ }
21404
+ return undefined;
21405
+ }
21406
+ };
21407
+ };
21408
+ mergeAll[Symbol.for('nodejs.util.promisify.custom')] = mergeAllAsync;
21331
21409
 
21332
21410
  /* eslint-disable no-continue, no-param-reassign */
21333
21411
  /**
@@ -21496,6 +21574,7 @@ visitor, {
21496
21574
  }
21497
21575
  let result;
21498
21576
  if (!Array.isArray(node)) {
21577
+ var _result;
21499
21578
  if (!nodePredicate(node)) {
21500
21579
  throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_0__["default"](`Invalid AST Node: ${String(node)}`, {
21501
21580
  node
@@ -21517,6 +21596,14 @@ visitor, {
21517
21596
  // retrieve result
21518
21597
  result = visitFn.call(visitor, node, key, parent, path, ancestors);
21519
21598
  }
21599
+
21600
+ // check if the visitor is async
21601
+ if (typeof ((_result = result) === null || _result === void 0 ? void 0 : _result.then) === 'function') {
21602
+ throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_0__["default"]('Async visitor not supported in sync mode', {
21603
+ visitor,
21604
+ visitFn
21605
+ });
21606
+ }
21520
21607
  if (result === breakSymbol) {
21521
21608
  break;
21522
21609
  }
@@ -22474,7 +22561,7 @@ __webpack_require__.r(__webpack_exports__);
22474
22561
  /* harmony export */ createRefractor: () => (/* binding */ createRefractor),
22475
22562
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
22476
22563
  /* harmony export */ });
22477
- /* harmony import */ var _plugins_utils_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(88945);
22564
+ /* harmony import */ var _plugins_dispatcher_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(49915);
22478
22565
  /* harmony import */ var _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(35956);
22479
22566
  /* harmony import */ var _clone_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14831);
22480
22567
  /* harmony import */ var _predicates_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70060);
@@ -22507,7 +22594,7 @@ const refract = (value, {
22507
22594
  * Run plugins only when necessary.
22508
22595
  * Running plugins visitors means extra single traversal === performance hit.
22509
22596
  */
22510
- return (0,_plugins_utils_index_mjs__WEBPACK_IMPORTED_MODULE_2__.dispatchPlugins)(element, plugins, {
22597
+ return (0,_plugins_dispatcher_index_mjs__WEBPACK_IMPORTED_MODULE_2__.dispatchPluginsSync)(element, plugins, {
22511
22598
  toolboxCreator: _toolbox_mjs__WEBPACK_IMPORTED_MODULE_3__["default"],
22512
22599
  visitorOptions: {
22513
22600
  nodeTypeGetter: _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_4__.getNodeType
@@ -22522,13 +22609,14 @@ const createRefractor = Type => (value, options = {}) => refract(value, {
22522
22609
 
22523
22610
  /***/ }),
22524
22611
 
22525
- /***/ 88945:
22612
+ /***/ 49915:
22526
22613
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22527
22614
 
22528
22615
  "use strict";
22529
22616
  __webpack_require__.r(__webpack_exports__);
22530
22617
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
22531
- /* harmony export */ dispatchPlugins: () => (/* binding */ dispatchPlugins)
22618
+ /* harmony export */ dispatchPluginsAsync: () => (/* binding */ dispatchPluginsAsync),
22619
+ /* harmony export */ dispatchPluginsSync: () => (/* binding */ dispatchPluginsSync)
22532
22620
  /* harmony export */ });
22533
22621
  /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(81515);
22534
22622
  /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(85379);
@@ -22547,9 +22635,7 @@ const defaultDispatchPluginsOptions = {
22547
22635
  exposeEdits: true
22548
22636
  }
22549
22637
  };
22550
-
22551
- // eslint-disable-next-line import/prefer-default-export
22552
- const dispatchPlugins = (element, plugins, options = {}) => {
22638
+ const dispatchPluginsSync = (element, plugins, options = {}) => {
22553
22639
  if (plugins.length === 0) return element;
22554
22640
  const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])(defaultDispatchPluginsOptions, options);
22555
22641
  const {
@@ -22566,6 +22652,26 @@ const dispatchPlugins = (element, plugins, options = {}) => {
22566
22652
  pluginsSpecs.forEach((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_5__["default"])(['post'], []));
22567
22653
  return newElement;
22568
22654
  };
22655
+ const dispatchPluginsAsync = async (element, plugins, options = {}) => {
22656
+ if (plugins.length === 0) return element;
22657
+ const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])(defaultDispatchPluginsOptions, options);
22658
+ const {
22659
+ toolboxCreator,
22660
+ visitorOptions
22661
+ } = mergedOptions;
22662
+ const toolbox = toolboxCreator();
22663
+ const pluginsSpecs = plugins.map(plugin => plugin(toolbox));
22664
+ const mergeAllVisitorsAsync = _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_3__.mergeAll[Symbol.for('nodejs.util.promisify.custom')];
22665
+ const visitAsync = _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_1__.visit[Symbol.for('nodejs.util.promisify.custom')];
22666
+ const mergedPluginsVisitor = mergeAllVisitorsAsync(pluginsSpecs.map((0,ramda__WEBPACK_IMPORTED_MODULE_4__["default"])({}, 'visitor')), {
22667
+ ...visitorOptions
22668
+ });
22669
+ await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_5__["default"])(['pre'], [])));
22670
+ const newElement = await visitAsync(element, mergedPluginsVisitor, visitorOptions);
22671
+ await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_5__["default"])(['post'], [])));
22672
+ return newElement;
22673
+ };
22674
+ dispatchPluginsSync[Symbol.for('nodejs.util.promisify.custom')] = dispatchPluginsAsync;
22569
22675
 
22570
22676
  /***/ }),
22571
22677
 
@@ -23709,7 +23815,7 @@ __webpack_require__.r(__webpack_exports__);
23709
23815
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88326);
23710
23816
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(27155);
23711
23817
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(35956);
23712
- /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(88945);
23818
+ /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49915);
23713
23819
  /* harmony import */ var _specification_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(53785);
23714
23820
  /* harmony import */ var _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(13720);
23715
23821
  /* harmony import */ var _toolbox_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(20363);
@@ -23742,7 +23848,7 @@ const refract = (value, {
23742
23848
  /**
23743
23849
  * Running plugins visitors means extra single traversal === performance hit.
23744
23850
  */
23745
- return (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__.dispatchPlugins)(rootVisitor.element, plugins, {
23851
+ return (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__.dispatchPluginsSync)(rootVisitor.element, plugins, {
23746
23852
  toolboxCreator: _toolbox_mjs__WEBPACK_IMPORTED_MODULE_6__["default"],
23747
23853
  visitorOptions: {
23748
23854
  keyMap: _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_7__.keyMap,