@swagger-api/apidom-ns-openapi-3-0 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-3-0
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-3-0
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-3-0
@@ -2836,7 +2836,7 @@ __webpack_require__.r(__webpack_exports__);
2836
2836
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(88326);
2837
2837
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(27155);
2838
2838
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(35956);
2839
- /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(88945);
2839
+ /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49915);
2840
2840
  /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14864);
2841
2841
  /* harmony import */ var _specification__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(27715);
2842
2842
  /* harmony import */ var _traversal_visitor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(80192);
@@ -2867,7 +2867,7 @@ const refract = (value, {
2867
2867
  /**
2868
2868
  * Running plugins visitors means extra single traversal === performance hit.
2869
2869
  */
2870
- return (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__.dispatchPlugins)(rootVisitor.element, plugins, {
2870
+ return (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__.dispatchPluginsSync)(rootVisitor.element, plugins, {
2871
2871
  toolboxCreator: _toolbox__WEBPACK_IMPORTED_MODULE_6__["default"],
2872
2872
  visitorOptions: {
2873
2873
  keyMap: _traversal_visitor__WEBPACK_IMPORTED_MODULE_7__.keyMap,
@@ -23577,6 +23577,7 @@ const cloneNode = node => Object.create(Object.getPrototypeOf(node), Object.getO
23577
23577
  * If a prior visitor edits a node, no following visitors will see that node.
23578
23578
  * `exposeEdits=true` can be used to exoise the edited node from the previous visitors.
23579
23579
  */
23580
+
23580
23581
  const mergeAll = (visitors, {
23581
23582
  visitFnGetter = getVisitFn,
23582
23583
  nodeTypeGetter = getNodeType,
@@ -23596,6 +23597,14 @@ const mergeAll = (visitors, {
23596
23597
  const visitFn = visitFnGetter(visitors[i], nodeTypeGetter(currentNode), false);
23597
23598
  if (typeof visitFn === 'function') {
23598
23599
  const result = visitFn.call(visitors[i], currentNode, ...rest);
23600
+
23601
+ // check if the visitor is async
23602
+ if (typeof (result === null || result === void 0 ? void 0 : result.then) === 'function') {
23603
+ throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_0__["default"]('Async visitor not supported in sync mode', {
23604
+ visitor: visitors[i],
23605
+ visitFn
23606
+ });
23607
+ }
23599
23608
  if (result === skipVisitingNodeSymbol) {
23600
23609
  skipping[i] = node;
23601
23610
  } else if (result === breakSymbol) {
@@ -23621,6 +23630,14 @@ const mergeAll = (visitors, {
23621
23630
  const visitFn = visitFnGetter(visitors[i], nodeTypeGetter(node), true);
23622
23631
  if (typeof visitFn === 'function') {
23623
23632
  const result = visitFn.call(visitors[i], node, ...rest);
23633
+
23634
+ // check if the visitor is async
23635
+ if (typeof (result === null || result === void 0 ? void 0 : result.then) === 'function') {
23636
+ throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_0__["default"]('Async visitor not supported in sync mode', {
23637
+ visitor: visitors[i],
23638
+ visitFn
23639
+ });
23640
+ }
23624
23641
  if (result === breakSymbol) {
23625
23642
  skipping[i] = breakSymbol;
23626
23643
  } else if (result !== undefined && result !== skipVisitingNodeSymbol) {
@@ -23635,6 +23652,67 @@ const mergeAll = (visitors, {
23635
23652
  }
23636
23653
  };
23637
23654
  };
23655
+ const mergeAllAsync = (visitors, {
23656
+ visitFnGetter = getVisitFn,
23657
+ nodeTypeGetter = getNodeType,
23658
+ breakSymbol = BREAK,
23659
+ deleteNodeSymbol = null,
23660
+ skipVisitingNodeSymbol = false,
23661
+ exposeEdits = false
23662
+ } = {}) => {
23663
+ const skipSymbol = Symbol('skip');
23664
+ const skipping = new Array(visitors.length).fill(skipSymbol);
23665
+ return {
23666
+ async enter(node, ...rest) {
23667
+ let currentNode = node;
23668
+ let hasChanged = false;
23669
+ for (let i = 0; i < visitors.length; i += 1) {
23670
+ if (skipping[i] === skipSymbol) {
23671
+ const visitFn = visitFnGetter(visitors[i], nodeTypeGetter(currentNode), false);
23672
+ if (typeof visitFn === 'function') {
23673
+ // eslint-disable-next-line no-await-in-loop
23674
+ const result = await visitFn.call(visitors[i], currentNode, ...rest);
23675
+ if (result === skipVisitingNodeSymbol) {
23676
+ skipping[i] = node;
23677
+ } else if (result === breakSymbol) {
23678
+ skipping[i] = breakSymbol;
23679
+ } else if (result === deleteNodeSymbol) {
23680
+ return result;
23681
+ } else if (result !== undefined) {
23682
+ if (exposeEdits) {
23683
+ currentNode = result;
23684
+ hasChanged = true;
23685
+ } else {
23686
+ return result;
23687
+ }
23688
+ }
23689
+ }
23690
+ }
23691
+ }
23692
+ return hasChanged ? currentNode : undefined;
23693
+ },
23694
+ async leave(node, ...rest) {
23695
+ for (let i = 0; i < visitors.length; i += 1) {
23696
+ if (skipping[i] === skipSymbol) {
23697
+ const visitFn = visitFnGetter(visitors[i], nodeTypeGetter(node), true);
23698
+ if (typeof visitFn === 'function') {
23699
+ // eslint-disable-next-line no-await-in-loop
23700
+ const result = await visitFn.call(visitors[i], node, ...rest);
23701
+ if (result === breakSymbol) {
23702
+ skipping[i] = breakSymbol;
23703
+ } else if (result !== undefined && result !== skipVisitingNodeSymbol) {
23704
+ return result;
23705
+ }
23706
+ }
23707
+ } else if (skipping[i] === node) {
23708
+ skipping[i] = skipSymbol;
23709
+ }
23710
+ }
23711
+ return undefined;
23712
+ }
23713
+ };
23714
+ };
23715
+ mergeAll[Symbol.for('nodejs.util.promisify.custom')] = mergeAllAsync;
23638
23716
 
23639
23717
  /* eslint-disable no-continue, no-param-reassign */
23640
23718
  /**
@@ -23803,6 +23881,7 @@ visitor, {
23803
23881
  }
23804
23882
  let result;
23805
23883
  if (!Array.isArray(node)) {
23884
+ var _result;
23806
23885
  if (!nodePredicate(node)) {
23807
23886
  throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_0__["default"](`Invalid AST Node: ${String(node)}`, {
23808
23887
  node
@@ -23824,6 +23903,14 @@ visitor, {
23824
23903
  // retrieve result
23825
23904
  result = visitFn.call(visitor, node, key, parent, path, ancestors);
23826
23905
  }
23906
+
23907
+ // check if the visitor is async
23908
+ if (typeof ((_result = result) === null || _result === void 0 ? void 0 : _result.then) === 'function') {
23909
+ throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_0__["default"]('Async visitor not supported in sync mode', {
23910
+ visitor,
23911
+ visitFn
23912
+ });
23913
+ }
23827
23914
  if (result === breakSymbol) {
23828
23915
  break;
23829
23916
  }
@@ -24781,7 +24868,7 @@ __webpack_require__.r(__webpack_exports__);
24781
24868
  /* harmony export */ createRefractor: () => (/* binding */ createRefractor),
24782
24869
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
24783
24870
  /* harmony export */ });
24784
- /* harmony import */ var _plugins_utils_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(88945);
24871
+ /* harmony import */ var _plugins_dispatcher_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(49915);
24785
24872
  /* harmony import */ var _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(35956);
24786
24873
  /* harmony import */ var _clone_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14831);
24787
24874
  /* harmony import */ var _predicates_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70060);
@@ -24814,7 +24901,7 @@ const refract = (value, {
24814
24901
  * Run plugins only when necessary.
24815
24902
  * Running plugins visitors means extra single traversal === performance hit.
24816
24903
  */
24817
- return (0,_plugins_utils_index_mjs__WEBPACK_IMPORTED_MODULE_2__.dispatchPlugins)(element, plugins, {
24904
+ return (0,_plugins_dispatcher_index_mjs__WEBPACK_IMPORTED_MODULE_2__.dispatchPluginsSync)(element, plugins, {
24818
24905
  toolboxCreator: _toolbox_mjs__WEBPACK_IMPORTED_MODULE_3__["default"],
24819
24906
  visitorOptions: {
24820
24907
  nodeTypeGetter: _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_4__.getNodeType
@@ -24829,13 +24916,14 @@ const createRefractor = Type => (value, options = {}) => refract(value, {
24829
24916
 
24830
24917
  /***/ }),
24831
24918
 
24832
- /***/ 88945:
24919
+ /***/ 49915:
24833
24920
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
24834
24921
 
24835
24922
  "use strict";
24836
24923
  __webpack_require__.r(__webpack_exports__);
24837
24924
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
24838
- /* harmony export */ dispatchPlugins: () => (/* binding */ dispatchPlugins)
24925
+ /* harmony export */ dispatchPluginsAsync: () => (/* binding */ dispatchPluginsAsync),
24926
+ /* harmony export */ dispatchPluginsSync: () => (/* binding */ dispatchPluginsSync)
24839
24927
  /* harmony export */ });
24840
24928
  /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(81515);
24841
24929
  /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(85379);
@@ -24854,9 +24942,7 @@ const defaultDispatchPluginsOptions = {
24854
24942
  exposeEdits: true
24855
24943
  }
24856
24944
  };
24857
-
24858
- // eslint-disable-next-line import/prefer-default-export
24859
- const dispatchPlugins = (element, plugins, options = {}) => {
24945
+ const dispatchPluginsSync = (element, plugins, options = {}) => {
24860
24946
  if (plugins.length === 0) return element;
24861
24947
  const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])(defaultDispatchPluginsOptions, options);
24862
24948
  const {
@@ -24873,6 +24959,26 @@ const dispatchPlugins = (element, plugins, options = {}) => {
24873
24959
  pluginsSpecs.forEach((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_5__["default"])(['post'], []));
24874
24960
  return newElement;
24875
24961
  };
24962
+ const dispatchPluginsAsync = async (element, plugins, options = {}) => {
24963
+ if (plugins.length === 0) return element;
24964
+ const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])(defaultDispatchPluginsOptions, options);
24965
+ const {
24966
+ toolboxCreator,
24967
+ visitorOptions
24968
+ } = mergedOptions;
24969
+ const toolbox = toolboxCreator();
24970
+ const pluginsSpecs = plugins.map(plugin => plugin(toolbox));
24971
+ const mergeAllVisitorsAsync = _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_3__.mergeAll[Symbol.for('nodejs.util.promisify.custom')];
24972
+ const visitAsync = _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_1__.visit[Symbol.for('nodejs.util.promisify.custom')];
24973
+ const mergedPluginsVisitor = mergeAllVisitorsAsync(pluginsSpecs.map((0,ramda__WEBPACK_IMPORTED_MODULE_4__["default"])({}, 'visitor')), {
24974
+ ...visitorOptions
24975
+ });
24976
+ await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_5__["default"])(['pre'], [])));
24977
+ const newElement = await visitAsync(element, mergedPluginsVisitor, visitorOptions);
24978
+ await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_5__["default"])(['post'], [])));
24979
+ return newElement;
24980
+ };
24981
+ dispatchPluginsSync[Symbol.for('nodejs.util.promisify.custom')] = dispatchPluginsAsync;
24876
24982
 
24877
24983
  /***/ }),
24878
24984
 
@@ -26016,7 +26122,7 @@ __webpack_require__.r(__webpack_exports__);
26016
26122
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88326);
26017
26123
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(27155);
26018
26124
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(35956);
26019
- /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(88945);
26125
+ /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49915);
26020
26126
  /* harmony import */ var _specification_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(53785);
26021
26127
  /* harmony import */ var _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(13720);
26022
26128
  /* harmony import */ var _toolbox_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(20363);
@@ -26049,7 +26155,7 @@ const refract = (value, {
26049
26155
  /**
26050
26156
  * Running plugins visitors means extra single traversal === performance hit.
26051
26157
  */
26052
- return (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__.dispatchPlugins)(rootVisitor.element, plugins, {
26158
+ return (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__.dispatchPluginsSync)(rootVisitor.element, plugins, {
26053
26159
  toolboxCreator: _toolbox_mjs__WEBPACK_IMPORTED_MODULE_6__["default"],
26054
26160
  visitorOptions: {
26055
26161
  keyMap: _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_7__.keyMap,