@swagger-api/apidom-parser-adapter-openapi-yaml-2 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-yaml-2
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-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,
@@ -17836,6 +17837,67 @@ const mergeAll = (visitors, {
17836
17837
  }
17837
17838
  };
17838
17839
  };
17840
+ const mergeAllAsync = (visitors, {
17841
+ visitFnGetter = getVisitFn,
17842
+ nodeTypeGetter = getNodeType,
17843
+ breakSymbol = BREAK,
17844
+ deleteNodeSymbol = null,
17845
+ skipVisitingNodeSymbol = false,
17846
+ exposeEdits = false
17847
+ } = {}) => {
17848
+ const skipSymbol = Symbol('skip');
17849
+ const skipping = new Array(visitors.length).fill(skipSymbol);
17850
+ return {
17851
+ async enter(node, ...rest) {
17852
+ let currentNode = node;
17853
+ let hasChanged = false;
17854
+ for (let i = 0; i < visitors.length; i += 1) {
17855
+ if (skipping[i] === skipSymbol) {
17856
+ const visitFn = visitFnGetter(visitors[i], nodeTypeGetter(currentNode), false);
17857
+ if (typeof visitFn === 'function') {
17858
+ // eslint-disable-next-line no-await-in-loop
17859
+ const result = await visitFn.call(visitors[i], currentNode, ...rest);
17860
+ if (result === skipVisitingNodeSymbol) {
17861
+ skipping[i] = node;
17862
+ } else if (result === breakSymbol) {
17863
+ skipping[i] = breakSymbol;
17864
+ } else if (result === deleteNodeSymbol) {
17865
+ return result;
17866
+ } else if (result !== undefined) {
17867
+ if (exposeEdits) {
17868
+ currentNode = result;
17869
+ hasChanged = true;
17870
+ } else {
17871
+ return result;
17872
+ }
17873
+ }
17874
+ }
17875
+ }
17876
+ }
17877
+ return hasChanged ? currentNode : undefined;
17878
+ },
17879
+ async leave(node, ...rest) {
17880
+ for (let i = 0; i < visitors.length; i += 1) {
17881
+ if (skipping[i] === skipSymbol) {
17882
+ const visitFn = visitFnGetter(visitors[i], nodeTypeGetter(node), true);
17883
+ if (typeof visitFn === 'function') {
17884
+ // eslint-disable-next-line no-await-in-loop
17885
+ const result = await visitFn.call(visitors[i], node, ...rest);
17886
+ if (result === breakSymbol) {
17887
+ skipping[i] = breakSymbol;
17888
+ } else if (result !== undefined && result !== skipVisitingNodeSymbol) {
17889
+ return result;
17890
+ }
17891
+ }
17892
+ } else if (skipping[i] === node) {
17893
+ skipping[i] = skipSymbol;
17894
+ }
17895
+ }
17896
+ return undefined;
17897
+ }
17898
+ };
17899
+ };
17900
+ mergeAll[Symbol.for('nodejs.util.promisify.custom')] = mergeAllAsync;
17839
17901
 
17840
17902
  /* eslint-disable no-continue, no-param-reassign */
17841
17903
  /**
@@ -20122,7 +20184,7 @@ __webpack_require__.r(__webpack_exports__);
20122
20184
  /* harmony export */ createRefractor: () => (/* binding */ createRefractor),
20123
20185
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
20124
20186
  /* harmony export */ });
20125
- /* harmony import */ var _plugins_utils_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(88945);
20187
+ /* harmony import */ var _plugins_dispatcher_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(49915);
20126
20188
  /* harmony import */ var _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(35956);
20127
20189
  /* harmony import */ var _clone_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14831);
20128
20190
  /* harmony import */ var _predicates_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70060);
@@ -20155,7 +20217,7 @@ const refract = (value, {
20155
20217
  * Run plugins only when necessary.
20156
20218
  * Running plugins visitors means extra single traversal === performance hit.
20157
20219
  */
20158
- return (0,_plugins_utils_index_mjs__WEBPACK_IMPORTED_MODULE_2__.dispatchPlugins)(element, plugins, {
20220
+ return (0,_plugins_dispatcher_index_mjs__WEBPACK_IMPORTED_MODULE_2__.dispatchPluginsSync)(element, plugins, {
20159
20221
  toolboxCreator: _toolbox_mjs__WEBPACK_IMPORTED_MODULE_3__["default"],
20160
20222
  visitorOptions: {
20161
20223
  nodeTypeGetter: _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_4__.getNodeType
@@ -20170,13 +20232,14 @@ const createRefractor = Type => (value, options = {}) => refract(value, {
20170
20232
 
20171
20233
  /***/ }),
20172
20234
 
20173
- /***/ 88945:
20235
+ /***/ 49915:
20174
20236
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
20175
20237
 
20176
20238
  "use strict";
20177
20239
  __webpack_require__.r(__webpack_exports__);
20178
20240
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
20179
- /* harmony export */ dispatchPlugins: () => (/* binding */ dispatchPlugins)
20241
+ /* harmony export */ dispatchPluginsAsync: () => (/* binding */ dispatchPluginsAsync),
20242
+ /* harmony export */ dispatchPluginsSync: () => (/* binding */ dispatchPluginsSync)
20180
20243
  /* harmony export */ });
20181
20244
  /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(81515);
20182
20245
  /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(85379);
@@ -20195,9 +20258,7 @@ const defaultDispatchPluginsOptions = {
20195
20258
  exposeEdits: true
20196
20259
  }
20197
20260
  };
20198
-
20199
- // eslint-disable-next-line import/prefer-default-export
20200
- const dispatchPlugins = (element, plugins, options = {}) => {
20261
+ const dispatchPluginsSync = (element, plugins, options = {}) => {
20201
20262
  if (plugins.length === 0) return element;
20202
20263
  const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])(defaultDispatchPluginsOptions, options);
20203
20264
  const {
@@ -20214,6 +20275,26 @@ const dispatchPlugins = (element, plugins, options = {}) => {
20214
20275
  pluginsSpecs.forEach((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_5__["default"])(['post'], []));
20215
20276
  return newElement;
20216
20277
  };
20278
+ const dispatchPluginsAsync = async (element, plugins, options = {}) => {
20279
+ if (plugins.length === 0) return element;
20280
+ const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])(defaultDispatchPluginsOptions, options);
20281
+ const {
20282
+ toolboxCreator,
20283
+ visitorOptions
20284
+ } = mergedOptions;
20285
+ const toolbox = toolboxCreator();
20286
+ const pluginsSpecs = plugins.map(plugin => plugin(toolbox));
20287
+ const mergeAllVisitorsAsync = _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_3__.mergeAll[Symbol.for('nodejs.util.promisify.custom')];
20288
+ const visitAsync = _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_1__.visit[Symbol.for('nodejs.util.promisify.custom')];
20289
+ const mergedPluginsVisitor = mergeAllVisitorsAsync(pluginsSpecs.map((0,ramda__WEBPACK_IMPORTED_MODULE_4__["default"])({}, 'visitor')), {
20290
+ ...visitorOptions
20291
+ });
20292
+ await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_5__["default"])(['pre'], [])));
20293
+ const newElement = await visitAsync(element, mergedPluginsVisitor, visitorOptions);
20294
+ await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_5__["default"])(['post'], [])));
20295
+ return newElement;
20296
+ };
20297
+ dispatchPluginsSync[Symbol.for('nodejs.util.promisify.custom')] = dispatchPluginsAsync;
20217
20298
 
20218
20299
  /***/ }),
20219
20300
 
@@ -21357,7 +21438,7 @@ __webpack_require__.r(__webpack_exports__);
21357
21438
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88326);
21358
21439
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(27155);
21359
21440
  /* 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);
21441
+ /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49915);
21361
21442
  /* harmony import */ var _specification_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(53785);
21362
21443
  /* harmony import */ var _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(13720);
21363
21444
  /* harmony import */ var _toolbox_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(20363);
@@ -21390,7 +21471,7 @@ const refract = (value, {
21390
21471
  /**
21391
21472
  * Running plugins visitors means extra single traversal === performance hit.
21392
21473
  */
21393
- return (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__.dispatchPlugins)(rootVisitor.element, plugins, {
21474
+ return (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__.dispatchPluginsSync)(rootVisitor.element, plugins, {
21394
21475
  toolboxCreator: _toolbox_mjs__WEBPACK_IMPORTED_MODULE_6__["default"],
21395
21476
  visitorOptions: {
21396
21477
  keyMap: _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_7__.keyMap,
@@ -25474,7 +25555,7 @@ __webpack_require__.r(__webpack_exports__);
25474
25555
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(88326);
25475
25556
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(27155);
25476
25557
  /* 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);
25558
+ /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49915);
25478
25559
  /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14864);
25479
25560
  /* harmony import */ var _specification_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(38219);
25480
25561
  /* harmony import */ var _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(97530);
@@ -25505,7 +25586,7 @@ const refract = (value, {
25505
25586
  /**
25506
25587
  * Running plugins visitors means extra single traversal === performance hit.
25507
25588
  */
25508
- return (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__.dispatchPlugins)(rootVisitor.element, plugins, {
25589
+ return (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__.dispatchPluginsSync)(rootVisitor.element, plugins, {
25509
25590
  toolboxCreator: _toolbox_mjs__WEBPACK_IMPORTED_MODULE_6__["default"],
25510
25591
  visitorOptions: {
25511
25592
  keyMap: _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_7__.keyMap,