@swagger-api/apidom-parser-adapter-openapi-yaml-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-parser-adapter-openapi-yaml-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-parser-adapter-openapi-yaml-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-parser-adapter-openapi-yaml-2
@@ -17778,6 +17778,7 @@ const cloneNode = node => Object.create(Object.getPrototypeOf(node), Object.getO
17778
17778
  * If a prior visitor edits a node, no following visitors will see that node.
17779
17779
  * `exposeEdits=true` can be used to exoise the edited node from the previous visitors.
17780
17780
  */
17781
+
17781
17782
  const mergeAll = (visitors, {
17782
17783
  visitFnGetter = getVisitFn,
17783
17784
  nodeTypeGetter = getNodeType,
@@ -17797,6 +17798,14 @@ const mergeAll = (visitors, {
17797
17798
  const visitFn = visitFnGetter(visitors[i], nodeTypeGetter(currentNode), false);
17798
17799
  if (typeof visitFn === 'function') {
17799
17800
  const result = visitFn.call(visitors[i], currentNode, ...rest);
17801
+
17802
+ // check if the visitor is async
17803
+ if (typeof (result === null || result === void 0 ? void 0 : result.then) === 'function') {
17804
+ throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_0__["default"]('Async visitor not supported in sync mode', {
17805
+ visitor: visitors[i],
17806
+ visitFn
17807
+ });
17808
+ }
17800
17809
  if (result === skipVisitingNodeSymbol) {
17801
17810
  skipping[i] = node;
17802
17811
  } else if (result === breakSymbol) {
@@ -17822,6 +17831,14 @@ const mergeAll = (visitors, {
17822
17831
  const visitFn = visitFnGetter(visitors[i], nodeTypeGetter(node), true);
17823
17832
  if (typeof visitFn === 'function') {
17824
17833
  const result = visitFn.call(visitors[i], node, ...rest);
17834
+
17835
+ // check if the visitor is async
17836
+ if (typeof (result === null || result === void 0 ? void 0 : result.then) === 'function') {
17837
+ throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_0__["default"]('Async visitor not supported in sync mode', {
17838
+ visitor: visitors[i],
17839
+ visitFn
17840
+ });
17841
+ }
17825
17842
  if (result === breakSymbol) {
17826
17843
  skipping[i] = breakSymbol;
17827
17844
  } else if (result !== undefined && result !== skipVisitingNodeSymbol) {
@@ -17836,6 +17853,67 @@ const mergeAll = (visitors, {
17836
17853
  }
17837
17854
  };
17838
17855
  };
17856
+ const mergeAllAsync = (visitors, {
17857
+ visitFnGetter = getVisitFn,
17858
+ nodeTypeGetter = getNodeType,
17859
+ breakSymbol = BREAK,
17860
+ deleteNodeSymbol = null,
17861
+ skipVisitingNodeSymbol = false,
17862
+ exposeEdits = false
17863
+ } = {}) => {
17864
+ const skipSymbol = Symbol('skip');
17865
+ const skipping = new Array(visitors.length).fill(skipSymbol);
17866
+ return {
17867
+ async enter(node, ...rest) {
17868
+ let currentNode = node;
17869
+ let hasChanged = false;
17870
+ for (let i = 0; i < visitors.length; i += 1) {
17871
+ if (skipping[i] === skipSymbol) {
17872
+ const visitFn = visitFnGetter(visitors[i], nodeTypeGetter(currentNode), false);
17873
+ if (typeof visitFn === 'function') {
17874
+ // eslint-disable-next-line no-await-in-loop
17875
+ const result = await visitFn.call(visitors[i], currentNode, ...rest);
17876
+ if (result === skipVisitingNodeSymbol) {
17877
+ skipping[i] = node;
17878
+ } else if (result === breakSymbol) {
17879
+ skipping[i] = breakSymbol;
17880
+ } else if (result === deleteNodeSymbol) {
17881
+ return result;
17882
+ } else if (result !== undefined) {
17883
+ if (exposeEdits) {
17884
+ currentNode = result;
17885
+ hasChanged = true;
17886
+ } else {
17887
+ return result;
17888
+ }
17889
+ }
17890
+ }
17891
+ }
17892
+ }
17893
+ return hasChanged ? currentNode : undefined;
17894
+ },
17895
+ async leave(node, ...rest) {
17896
+ for (let i = 0; i < visitors.length; i += 1) {
17897
+ if (skipping[i] === skipSymbol) {
17898
+ const visitFn = visitFnGetter(visitors[i], nodeTypeGetter(node), true);
17899
+ if (typeof visitFn === 'function') {
17900
+ // eslint-disable-next-line no-await-in-loop
17901
+ const result = await visitFn.call(visitors[i], node, ...rest);
17902
+ if (result === breakSymbol) {
17903
+ skipping[i] = breakSymbol;
17904
+ } else if (result !== undefined && result !== skipVisitingNodeSymbol) {
17905
+ return result;
17906
+ }
17907
+ }
17908
+ } else if (skipping[i] === node) {
17909
+ skipping[i] = skipSymbol;
17910
+ }
17911
+ }
17912
+ return undefined;
17913
+ }
17914
+ };
17915
+ };
17916
+ mergeAll[Symbol.for('nodejs.util.promisify.custom')] = mergeAllAsync;
17839
17917
 
17840
17918
  /* eslint-disable no-continue, no-param-reassign */
17841
17919
  /**
@@ -18004,6 +18082,7 @@ visitor, {
18004
18082
  }
18005
18083
  let result;
18006
18084
  if (!Array.isArray(node)) {
18085
+ var _result;
18007
18086
  if (!nodePredicate(node)) {
18008
18087
  throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_0__["default"](`Invalid AST Node: ${String(node)}`, {
18009
18088
  node
@@ -18025,6 +18104,14 @@ visitor, {
18025
18104
  // retrieve result
18026
18105
  result = visitFn.call(visitor, node, key, parent, path, ancestors);
18027
18106
  }
18107
+
18108
+ // check if the visitor is async
18109
+ if (typeof ((_result = result) === null || _result === void 0 ? void 0 : _result.then) === 'function') {
18110
+ throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_0__["default"]('Async visitor not supported in sync mode', {
18111
+ visitor,
18112
+ visitFn
18113
+ });
18114
+ }
18028
18115
  if (result === breakSymbol) {
18029
18116
  break;
18030
18117
  }
@@ -20122,7 +20209,7 @@ __webpack_require__.r(__webpack_exports__);
20122
20209
  /* harmony export */ createRefractor: () => (/* binding */ createRefractor),
20123
20210
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
20124
20211
  /* harmony export */ });
20125
- /* harmony import */ var _plugins_utils_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(88945);
20212
+ /* harmony import */ var _plugins_dispatcher_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(49915);
20126
20213
  /* harmony import */ var _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(35956);
20127
20214
  /* harmony import */ var _clone_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14831);
20128
20215
  /* harmony import */ var _predicates_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70060);
@@ -20155,7 +20242,7 @@ const refract = (value, {
20155
20242
  * Run plugins only when necessary.
20156
20243
  * Running plugins visitors means extra single traversal === performance hit.
20157
20244
  */
20158
- return (0,_plugins_utils_index_mjs__WEBPACK_IMPORTED_MODULE_2__.dispatchPlugins)(element, plugins, {
20245
+ return (0,_plugins_dispatcher_index_mjs__WEBPACK_IMPORTED_MODULE_2__.dispatchPluginsSync)(element, plugins, {
20159
20246
  toolboxCreator: _toolbox_mjs__WEBPACK_IMPORTED_MODULE_3__["default"],
20160
20247
  visitorOptions: {
20161
20248
  nodeTypeGetter: _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_4__.getNodeType
@@ -20170,13 +20257,14 @@ const createRefractor = Type => (value, options = {}) => refract(value, {
20170
20257
 
20171
20258
  /***/ }),
20172
20259
 
20173
- /***/ 88945:
20260
+ /***/ 49915:
20174
20261
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
20175
20262
 
20176
20263
  "use strict";
20177
20264
  __webpack_require__.r(__webpack_exports__);
20178
20265
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
20179
- /* harmony export */ dispatchPlugins: () => (/* binding */ dispatchPlugins)
20266
+ /* harmony export */ dispatchPluginsAsync: () => (/* binding */ dispatchPluginsAsync),
20267
+ /* harmony export */ dispatchPluginsSync: () => (/* binding */ dispatchPluginsSync)
20180
20268
  /* harmony export */ });
20181
20269
  /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(81515);
20182
20270
  /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(85379);
@@ -20195,9 +20283,7 @@ const defaultDispatchPluginsOptions = {
20195
20283
  exposeEdits: true
20196
20284
  }
20197
20285
  };
20198
-
20199
- // eslint-disable-next-line import/prefer-default-export
20200
- const dispatchPlugins = (element, plugins, options = {}) => {
20286
+ const dispatchPluginsSync = (element, plugins, options = {}) => {
20201
20287
  if (plugins.length === 0) return element;
20202
20288
  const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])(defaultDispatchPluginsOptions, options);
20203
20289
  const {
@@ -20214,6 +20300,26 @@ const dispatchPlugins = (element, plugins, options = {}) => {
20214
20300
  pluginsSpecs.forEach((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_5__["default"])(['post'], []));
20215
20301
  return newElement;
20216
20302
  };
20303
+ const dispatchPluginsAsync = async (element, plugins, options = {}) => {
20304
+ if (plugins.length === 0) return element;
20305
+ const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])(defaultDispatchPluginsOptions, options);
20306
+ const {
20307
+ toolboxCreator,
20308
+ visitorOptions
20309
+ } = mergedOptions;
20310
+ const toolbox = toolboxCreator();
20311
+ const pluginsSpecs = plugins.map(plugin => plugin(toolbox));
20312
+ const mergeAllVisitorsAsync = _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_3__.mergeAll[Symbol.for('nodejs.util.promisify.custom')];
20313
+ const visitAsync = _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_1__.visit[Symbol.for('nodejs.util.promisify.custom')];
20314
+ const mergedPluginsVisitor = mergeAllVisitorsAsync(pluginsSpecs.map((0,ramda__WEBPACK_IMPORTED_MODULE_4__["default"])({}, 'visitor')), {
20315
+ ...visitorOptions
20316
+ });
20317
+ await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_5__["default"])(['pre'], [])));
20318
+ const newElement = await visitAsync(element, mergedPluginsVisitor, visitorOptions);
20319
+ await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_5__["default"])(['post'], [])));
20320
+ return newElement;
20321
+ };
20322
+ dispatchPluginsSync[Symbol.for('nodejs.util.promisify.custom')] = dispatchPluginsAsync;
20217
20323
 
20218
20324
  /***/ }),
20219
20325
 
@@ -21357,7 +21463,7 @@ __webpack_require__.r(__webpack_exports__);
21357
21463
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88326);
21358
21464
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(27155);
21359
21465
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(35956);
21360
- /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(88945);
21466
+ /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49915);
21361
21467
  /* harmony import */ var _specification_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(53785);
21362
21468
  /* harmony import */ var _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(13720);
21363
21469
  /* harmony import */ var _toolbox_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(20363);
@@ -21390,7 +21496,7 @@ const refract = (value, {
21390
21496
  /**
21391
21497
  * Running plugins visitors means extra single traversal === performance hit.
21392
21498
  */
21393
- return (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__.dispatchPlugins)(rootVisitor.element, plugins, {
21499
+ return (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__.dispatchPluginsSync)(rootVisitor.element, plugins, {
21394
21500
  toolboxCreator: _toolbox_mjs__WEBPACK_IMPORTED_MODULE_6__["default"],
21395
21501
  visitorOptions: {
21396
21502
  keyMap: _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_7__.keyMap,
@@ -25474,7 +25580,7 @@ __webpack_require__.r(__webpack_exports__);
25474
25580
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(88326);
25475
25581
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(27155);
25476
25582
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(35956);
25477
- /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(88945);
25583
+ /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49915);
25478
25584
  /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14864);
25479
25585
  /* harmony import */ var _specification_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(38219);
25480
25586
  /* harmony import */ var _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(97530);
@@ -25505,7 +25611,7 @@ const refract = (value, {
25505
25611
  /**
25506
25612
  * Running plugins visitors means extra single traversal === performance hit.
25507
25613
  */
25508
- return (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__.dispatchPlugins)(rootVisitor.element, plugins, {
25614
+ return (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__.dispatchPluginsSync)(rootVisitor.element, plugins, {
25509
25615
  toolboxCreator: _toolbox_mjs__WEBPACK_IMPORTED_MODULE_6__["default"],
25510
25616
  visitorOptions: {
25511
25617
  keyMap: _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_7__.keyMap,