@swagger-api/apidom-parser-adapter-api-design-systems-yaml 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-api-design-systems-yaml
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-api-design-systems-yaml
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-api-design-systems-yaml
@@ -16487,6 +16487,7 @@ const cloneNode = node => Object.create(Object.getPrototypeOf(node), Object.getO
16487
16487
  * If a prior visitor edits a node, no following visitors will see that node.
16488
16488
  * `exposeEdits=true` can be used to exoise the edited node from the previous visitors.
16489
16489
  */
16490
+
16490
16491
  const mergeAll = (visitors, {
16491
16492
  visitFnGetter = getVisitFn,
16492
16493
  nodeTypeGetter = getNodeType,
@@ -16506,6 +16507,14 @@ const mergeAll = (visitors, {
16506
16507
  const visitFn = visitFnGetter(visitors[i], nodeTypeGetter(currentNode), false);
16507
16508
  if (typeof visitFn === 'function') {
16508
16509
  const result = visitFn.call(visitors[i], currentNode, ...rest);
16510
+
16511
+ // check if the visitor is async
16512
+ if (typeof (result === null || result === void 0 ? void 0 : result.then) === 'function') {
16513
+ throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_0__["default"]('Async visitor not supported in sync mode', {
16514
+ visitor: visitors[i],
16515
+ visitFn
16516
+ });
16517
+ }
16509
16518
  if (result === skipVisitingNodeSymbol) {
16510
16519
  skipping[i] = node;
16511
16520
  } else if (result === breakSymbol) {
@@ -16531,6 +16540,14 @@ const mergeAll = (visitors, {
16531
16540
  const visitFn = visitFnGetter(visitors[i], nodeTypeGetter(node), true);
16532
16541
  if (typeof visitFn === 'function') {
16533
16542
  const result = visitFn.call(visitors[i], node, ...rest);
16543
+
16544
+ // check if the visitor is async
16545
+ if (typeof (result === null || result === void 0 ? void 0 : result.then) === 'function') {
16546
+ throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_0__["default"]('Async visitor not supported in sync mode', {
16547
+ visitor: visitors[i],
16548
+ visitFn
16549
+ });
16550
+ }
16534
16551
  if (result === breakSymbol) {
16535
16552
  skipping[i] = breakSymbol;
16536
16553
  } else if (result !== undefined && result !== skipVisitingNodeSymbol) {
@@ -16545,6 +16562,67 @@ const mergeAll = (visitors, {
16545
16562
  }
16546
16563
  };
16547
16564
  };
16565
+ const mergeAllAsync = (visitors, {
16566
+ visitFnGetter = getVisitFn,
16567
+ nodeTypeGetter = getNodeType,
16568
+ breakSymbol = BREAK,
16569
+ deleteNodeSymbol = null,
16570
+ skipVisitingNodeSymbol = false,
16571
+ exposeEdits = false
16572
+ } = {}) => {
16573
+ const skipSymbol = Symbol('skip');
16574
+ const skipping = new Array(visitors.length).fill(skipSymbol);
16575
+ return {
16576
+ async enter(node, ...rest) {
16577
+ let currentNode = node;
16578
+ let hasChanged = false;
16579
+ for (let i = 0; i < visitors.length; i += 1) {
16580
+ if (skipping[i] === skipSymbol) {
16581
+ const visitFn = visitFnGetter(visitors[i], nodeTypeGetter(currentNode), false);
16582
+ if (typeof visitFn === 'function') {
16583
+ // eslint-disable-next-line no-await-in-loop
16584
+ const result = await visitFn.call(visitors[i], currentNode, ...rest);
16585
+ if (result === skipVisitingNodeSymbol) {
16586
+ skipping[i] = node;
16587
+ } else if (result === breakSymbol) {
16588
+ skipping[i] = breakSymbol;
16589
+ } else if (result === deleteNodeSymbol) {
16590
+ return result;
16591
+ } else if (result !== undefined) {
16592
+ if (exposeEdits) {
16593
+ currentNode = result;
16594
+ hasChanged = true;
16595
+ } else {
16596
+ return result;
16597
+ }
16598
+ }
16599
+ }
16600
+ }
16601
+ }
16602
+ return hasChanged ? currentNode : undefined;
16603
+ },
16604
+ async leave(node, ...rest) {
16605
+ for (let i = 0; i < visitors.length; i += 1) {
16606
+ if (skipping[i] === skipSymbol) {
16607
+ const visitFn = visitFnGetter(visitors[i], nodeTypeGetter(node), true);
16608
+ if (typeof visitFn === 'function') {
16609
+ // eslint-disable-next-line no-await-in-loop
16610
+ const result = await visitFn.call(visitors[i], node, ...rest);
16611
+ if (result === breakSymbol) {
16612
+ skipping[i] = breakSymbol;
16613
+ } else if (result !== undefined && result !== skipVisitingNodeSymbol) {
16614
+ return result;
16615
+ }
16616
+ }
16617
+ } else if (skipping[i] === node) {
16618
+ skipping[i] = skipSymbol;
16619
+ }
16620
+ }
16621
+ return undefined;
16622
+ }
16623
+ };
16624
+ };
16625
+ mergeAll[Symbol.for('nodejs.util.promisify.custom')] = mergeAllAsync;
16548
16626
 
16549
16627
  /* eslint-disable no-continue, no-param-reassign */
16550
16628
  /**
@@ -16713,6 +16791,7 @@ visitor, {
16713
16791
  }
16714
16792
  let result;
16715
16793
  if (!Array.isArray(node)) {
16794
+ var _result;
16716
16795
  if (!nodePredicate(node)) {
16717
16796
  throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_0__["default"](`Invalid AST Node: ${String(node)}`, {
16718
16797
  node
@@ -16734,6 +16813,14 @@ visitor, {
16734
16813
  // retrieve result
16735
16814
  result = visitFn.call(visitor, node, key, parent, path, ancestors);
16736
16815
  }
16816
+
16817
+ // check if the visitor is async
16818
+ if (typeof ((_result = result) === null || _result === void 0 ? void 0 : _result.then) === 'function') {
16819
+ throw new _swagger_api_apidom_error__WEBPACK_IMPORTED_MODULE_0__["default"]('Async visitor not supported in sync mode', {
16820
+ visitor,
16821
+ visitFn
16822
+ });
16823
+ }
16737
16824
  if (result === breakSymbol) {
16738
16825
  break;
16739
16826
  }
@@ -18831,7 +18918,7 @@ __webpack_require__.r(__webpack_exports__);
18831
18918
  /* harmony export */ createRefractor: () => (/* binding */ createRefractor),
18832
18919
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
18833
18920
  /* harmony export */ });
18834
- /* harmony import */ var _plugins_utils_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8945);
18921
+ /* harmony import */ var _plugins_dispatcher_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9915);
18835
18922
  /* harmony import */ var _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5956);
18836
18923
  /* harmony import */ var _clone_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4831);
18837
18924
  /* harmony import */ var _predicates_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(60);
@@ -18864,7 +18951,7 @@ const refract = (value, {
18864
18951
  * Run plugins only when necessary.
18865
18952
  * Running plugins visitors means extra single traversal === performance hit.
18866
18953
  */
18867
- return (0,_plugins_utils_index_mjs__WEBPACK_IMPORTED_MODULE_2__.dispatchPlugins)(element, plugins, {
18954
+ return (0,_plugins_dispatcher_index_mjs__WEBPACK_IMPORTED_MODULE_2__.dispatchPluginsSync)(element, plugins, {
18868
18955
  toolboxCreator: _toolbox_mjs__WEBPACK_IMPORTED_MODULE_3__["default"],
18869
18956
  visitorOptions: {
18870
18957
  nodeTypeGetter: _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_4__.getNodeType
@@ -18879,13 +18966,14 @@ const createRefractor = Type => (value, options = {}) => refract(value, {
18879
18966
 
18880
18967
  /***/ }),
18881
18968
 
18882
- /***/ 8945:
18969
+ /***/ 9915:
18883
18970
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
18884
18971
 
18885
18972
  "use strict";
18886
18973
  __webpack_require__.r(__webpack_exports__);
18887
18974
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
18888
- /* harmony export */ dispatchPlugins: () => (/* binding */ dispatchPlugins)
18975
+ /* harmony export */ dispatchPluginsAsync: () => (/* binding */ dispatchPluginsAsync),
18976
+ /* harmony export */ dispatchPluginsSync: () => (/* binding */ dispatchPluginsSync)
18889
18977
  /* harmony export */ });
18890
18978
  /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1515);
18891
18979
  /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5379);
@@ -18904,9 +18992,7 @@ const defaultDispatchPluginsOptions = {
18904
18992
  exposeEdits: true
18905
18993
  }
18906
18994
  };
18907
-
18908
- // eslint-disable-next-line import/prefer-default-export
18909
- const dispatchPlugins = (element, plugins, options = {}) => {
18995
+ const dispatchPluginsSync = (element, plugins, options = {}) => {
18910
18996
  if (plugins.length === 0) return element;
18911
18997
  const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])(defaultDispatchPluginsOptions, options);
18912
18998
  const {
@@ -18923,6 +19009,26 @@ const dispatchPlugins = (element, plugins, options = {}) => {
18923
19009
  pluginsSpecs.forEach((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_5__["default"])(['post'], []));
18924
19010
  return newElement;
18925
19011
  };
19012
+ const dispatchPluginsAsync = async (element, plugins, options = {}) => {
19013
+ if (plugins.length === 0) return element;
19014
+ const mergedOptions = (0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])(defaultDispatchPluginsOptions, options);
19015
+ const {
19016
+ toolboxCreator,
19017
+ visitorOptions
19018
+ } = mergedOptions;
19019
+ const toolbox = toolboxCreator();
19020
+ const pluginsSpecs = plugins.map(plugin => plugin(toolbox));
19021
+ const mergeAllVisitorsAsync = _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_3__.mergeAll[Symbol.for('nodejs.util.promisify.custom')];
19022
+ const visitAsync = _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_1__.visit[Symbol.for('nodejs.util.promisify.custom')];
19023
+ const mergedPluginsVisitor = mergeAllVisitorsAsync(pluginsSpecs.map((0,ramda__WEBPACK_IMPORTED_MODULE_4__["default"])({}, 'visitor')), {
19024
+ ...visitorOptions
19025
+ });
19026
+ await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_5__["default"])(['pre'], [])));
19027
+ const newElement = await visitAsync(element, mergedPluginsVisitor, visitorOptions);
19028
+ await Promise.allSettled(pluginsSpecs.map((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_5__["default"])(['post'], [])));
19029
+ return newElement;
19030
+ };
19031
+ dispatchPluginsSync[Symbol.for('nodejs.util.promisify.custom')] = dispatchPluginsAsync;
18926
19032
 
18927
19033
  /***/ }),
18928
19034
 
@@ -20002,7 +20108,7 @@ __webpack_require__.r(__webpack_exports__);
20002
20108
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8326);
20003
20109
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7155);
20004
20110
  /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5956);
20005
- /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(8945);
20111
+ /* harmony import */ var _swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(9915);
20006
20112
  /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4864);
20007
20113
  /* harmony import */ var _specification_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7074);
20008
20114
  /* harmony import */ var _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(7719);
@@ -20033,7 +20139,7 @@ const refract = (value, {
20033
20139
  /**
20034
20140
  * Running plugins visitors means extra single traversal === performance hit.
20035
20141
  */
20036
- return (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__.dispatchPlugins)(rootVisitor.element, plugins, {
20142
+ return (0,_swagger_api_apidom_core__WEBPACK_IMPORTED_MODULE_5__.dispatchPluginsSync)(rootVisitor.element, plugins, {
20037
20143
  toolboxCreator: _toolbox_mjs__WEBPACK_IMPORTED_MODULE_6__["default"],
20038
20144
  visitorOptions: {
20039
20145
  keyMap: _traversal_visitor_mjs__WEBPACK_IMPORTED_MODULE_7__.keyMap,