@stackwright-pro/openapi 0.2.0 → 0.2.2-alpha.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/dist/index.js CHANGED
@@ -1,4 +1,24 @@
1
- "use strict";
1
+ 'use strict';
2
+
3
+ var SwaggerParser = require('@apidevtools/swagger-parser');
4
+ var zodToTs = require('zod-to-ts');
5
+ var fs = require('fs');
6
+ var path2 = require('path');
7
+ var crypto = require('crypto');
8
+ var https = require('https');
9
+ var http = require('http');
10
+ var url = require('url');
11
+ var net = require('net');
12
+
13
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
14
+
15
+ var SwaggerParser__default = /*#__PURE__*/_interopDefault(SwaggerParser);
16
+ var fs__default = /*#__PURE__*/_interopDefault(fs);
17
+ var path2__default = /*#__PURE__*/_interopDefault(path2);
18
+ var crypto__default = /*#__PURE__*/_interopDefault(crypto);
19
+ var https__default = /*#__PURE__*/_interopDefault(https);
20
+ var http__default = /*#__PURE__*/_interopDefault(http);
21
+
2
22
  var __create = Object.create;
3
23
  var __defProp = Object.defineProperty;
4
24
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -8,10 +28,6 @@ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
28
  var __commonJS = (cb, mod) => function __require() {
9
29
  return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
10
30
  };
11
- var __export = (target, all) => {
12
- for (var name in all)
13
- __defProp(target, name, { get: all[name], enumerable: true });
14
- };
15
31
  var __copyProps = (to, from, except, desc) => {
16
32
  if (from && typeof from === "object" || typeof from === "function") {
17
33
  for (let key of __getOwnPropNames(from))
@@ -25,15 +41,13 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
25
41
  // file that has been converted to a CommonJS file using a Babel-
26
42
  // compatible transform (i.e. "__esModule" has not been set), then set
27
43
  // "default" to the CommonJS "module.exports" for node compatibility.
28
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
44
+ !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
29
45
  mod
30
46
  ));
31
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
32
47
 
33
48
  // ../../node_modules/.pnpm/safe-regex@2.1.1/node_modules/safe-regex/lib/analyzer.js
34
49
  var require_analyzer = __commonJS({
35
- "../../node_modules/.pnpm/safe-regex@2.1.1/node_modules/safe-regex/lib/analyzer.js"(exports2, module2) {
36
- "use strict";
50
+ "../../node_modules/.pnpm/safe-regex@2.1.1/node_modules/safe-regex/lib/analyzer.js"(exports$1, module) {
37
51
  var AnalyzerOptions = class {
38
52
  constructor(heuristic_replimit) {
39
53
  this.heuristic_replimit = heuristic_replimit;
@@ -54,7 +68,7 @@ var require_analyzer = __commonJS({
54
68
  return null;
55
69
  }
56
70
  };
57
- module2.exports = function(re, replimit) {
71
+ module.exports = function(re, replimit) {
58
72
  let myRegExp = null;
59
73
  let ast = null;
60
74
  try {
@@ -88,7 +102,7 @@ var require_analyzer = __commonJS({
88
102
  });
89
103
  return maxObservedStarHeight <= 1 && repetitionCount <= replimit;
90
104
  };
91
- module2.exports = {
105
+ module.exports = {
92
106
  "AnalyzerOptions": AnalyzerOptions,
93
107
  "Analyzer": Analyzer
94
108
  };
@@ -97,9 +111,8 @@ var require_analyzer = __commonJS({
97
111
 
98
112
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js
99
113
  var require_compat_dotall_s_transform = __commonJS({
100
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js"(exports2, module2) {
101
- "use strict";
102
- module2.exports = {
114
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js"(exports$1, module) {
115
+ module.exports = {
103
116
  // Whether `u` flag present. In which case we transform to
104
117
  // \u{10FFFF} instead of \uFFFF.
105
118
  _hasUFlag: false,
@@ -149,9 +162,8 @@ var require_compat_dotall_s_transform = __commonJS({
149
162
 
150
163
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-named-capturing-groups-transform.js
151
164
  var require_compat_named_capturing_groups_transform = __commonJS({
152
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-named-capturing-groups-transform.js"(exports2, module2) {
153
- "use strict";
154
- module2.exports = {
165
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-named-capturing-groups-transform.js"(exports$1, module) {
166
+ module.exports = {
155
167
  // To track the names of the groups, and return them
156
168
  // in the transform result state.
157
169
  //
@@ -193,9 +205,8 @@ var require_compat_named_capturing_groups_transform = __commonJS({
193
205
 
194
206
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-x-flag-transform.js
195
207
  var require_compat_x_flag_transform = __commonJS({
196
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-x-flag-transform.js"(exports2, module2) {
197
- "use strict";
198
- module2.exports = {
208
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-x-flag-transform.js"(exports$1, module) {
209
+ module.exports = {
199
210
  RegExp: function RegExp2(_ref) {
200
211
  var node = _ref.node;
201
212
  if (node.flags.includes("x")) {
@@ -208,9 +219,8 @@ var require_compat_x_flag_transform = __commonJS({
208
219
 
209
220
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/compat-transpiler/transforms/index.js
210
221
  var require_transforms = __commonJS({
211
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/compat-transpiler/transforms/index.js"(exports2, module2) {
212
- "use strict";
213
- module2.exports = {
222
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/compat-transpiler/transforms/index.js"(exports$1, module) {
223
+ module.exports = {
214
224
  // "dotAll" `s` flag
215
225
  dotAll: require_compat_dotall_s_transform(),
216
226
  // Named capturing groups.
@@ -223,8 +233,7 @@ var require_transforms = __commonJS({
223
233
 
224
234
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/generator/index.js
225
235
  var require_generator = __commonJS({
226
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/generator/index.js"(exports2, module2) {
227
- "use strict";
236
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/generator/index.js"(exports$1, module) {
228
237
  function gen(node) {
229
238
  return node ? generator[node.type](node) : "";
230
239
  }
@@ -350,7 +359,7 @@ var require_generator = __commonJS({
350
359
  return "\\" + escapeChar + "{" + namePart + node.value + "}";
351
360
  }
352
361
  };
353
- module2.exports = {
362
+ module.exports = {
354
363
  /**
355
364
  * Generates a regexp string from an AST.
356
365
  *
@@ -363,8 +372,7 @@ var require_generator = __commonJS({
363
372
 
364
373
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/parser/unicode/parser-unicode-properties.js
365
374
  var require_parser_unicode_properties = __commonJS({
366
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/parser/unicode/parser-unicode-properties.js"(exports2, module2) {
367
- "use strict";
375
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/parser/unicode/parser-unicode-properties.js"(exports$1, module) {
368
376
  var NON_BINARY_PROP_NAMES_TO_ALIASES = {
369
377
  General_Category: "gc",
370
378
  Script: "sc",
@@ -687,7 +695,7 @@ var require_parser_unicode_properties = __commonJS({
687
695
  }
688
696
  return null;
689
697
  }
690
- module2.exports = {
698
+ module.exports = {
691
699
  isAlias,
692
700
  isValidName,
693
701
  isValidValue,
@@ -710,8 +718,7 @@ var require_parser_unicode_properties = __commonJS({
710
718
 
711
719
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/parser/generated/regexp-tree.js
712
720
  var require_regexp_tree = __commonJS({
713
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/parser/generated/regexp-tree.js"(exports2, module2) {
714
- "use strict";
721
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/parser/generated/regexp-tree.js"(exports$1, module) {
715
722
  var _slicedToArray = /* @__PURE__ */ (function() {
716
723
  function sliceIterator(arr, i) {
717
724
  var _arr = [];
@@ -756,7 +763,6 @@ var require_regexp_tree = __commonJS({
756
763
  }
757
764
  }
758
765
  var yytext = void 0;
759
- var yyleng = void 0;
760
766
  var yy = {};
761
767
  var __ = void 0;
762
768
  var __loc = void 0;
@@ -811,7 +817,6 @@ var require_regexp_tree = __commonJS({
811
817
  if (_2loc) {
812
818
  _loc = loc(_1loc || _2loc, _3loc || _2loc);
813
819
  }
814
- ;
815
820
  __ = Node({
816
821
  type: "Disjunction",
817
822
  left: _1,
@@ -1280,7 +1285,7 @@ var require_regexp_tree = __commonJS({
1280
1285
  }
1281
1286
  if (matched !== null) {
1282
1287
  yytext = matched;
1283
- yyleng = yytext.length;
1288
+ yytext.length;
1284
1289
  var token = lexRule[1].call(this);
1285
1290
  if (!token) {
1286
1291
  return this.getNextToken();
@@ -1462,7 +1467,7 @@ var require_regexp_tree = __commonJS({
1462
1467
  var reduceStackEntry = { symbol: production[0] };
1463
1468
  if (hasSemanticAction) {
1464
1469
  yytext = shiftedToken ? shiftedToken.value : null;
1465
- yyleng = shiftedToken ? shiftedToken.value.length : null;
1470
+ shiftedToken ? shiftedToken.value.length : null;
1466
1471
  var semanticActionArgs = locationArgs !== null ? semanticValueArgs.concat(locationArgs) : semanticValueArgs;
1467
1472
  production[2].apply(production, _toConsumableArray(semanticActionArgs));
1468
1473
  reduceStackEntry.semanticValue = __;
@@ -1851,28 +1856,26 @@ var require_regexp_tree = __commonJS({
1851
1856
  function parseError(message) {
1852
1857
  throw new SyntaxError(message);
1853
1858
  }
1854
- module2.exports = yyparse;
1859
+ module.exports = yyparse;
1855
1860
  }
1856
1861
  });
1857
1862
 
1858
1863
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/parser/index.js
1859
1864
  var require_parser = __commonJS({
1860
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/parser/index.js"(exports2, module2) {
1861
- "use strict";
1865
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/parser/index.js"(exports$1, module) {
1862
1866
  var regexpTreeParser = require_regexp_tree();
1863
1867
  var generatedParseFn = regexpTreeParser.parse.bind(regexpTreeParser);
1864
1868
  regexpTreeParser.parse = function(regexp, options) {
1865
1869
  return generatedParseFn("" + regexp, options);
1866
1870
  };
1867
1871
  regexpTreeParser.setOptions({ captureLocations: false });
1868
- module2.exports = regexpTreeParser;
1872
+ module.exports = regexpTreeParser;
1869
1873
  }
1870
1874
  });
1871
1875
 
1872
1876
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/traverse/node-path.js
1873
1877
  var require_node_path = __commonJS({
1874
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/traverse/node-path.js"(exports2, module2) {
1875
- "use strict";
1878
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/traverse/node-path.js"(exports$1, module) {
1876
1879
  var _createClass = /* @__PURE__ */ (function() {
1877
1880
  function defineProperties(target, props) {
1878
1881
  for (var i = 0; i < props.length; i++) {
@@ -2198,14 +2201,13 @@ var require_node_path = __commonJS({
2198
2201
  }
2199
2202
  return value;
2200
2203
  }
2201
- module2.exports = NodePath;
2204
+ module.exports = NodePath;
2202
2205
  }
2203
2206
  });
2204
2207
 
2205
2208
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/traverse/index.js
2206
2209
  var require_traverse = __commonJS({
2207
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/traverse/index.js"(exports2, module2) {
2208
- "use strict";
2210
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/traverse/index.js"(exports$1, module) {
2209
2211
  var NodePath = require_node_path();
2210
2212
  function astTraverse(root) {
2211
2213
  var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
@@ -2254,7 +2256,7 @@ var require_traverse = __commonJS({
2254
2256
  }
2255
2257
  visit(root, null);
2256
2258
  }
2257
- module2.exports = {
2259
+ module.exports = {
2258
2260
  /**
2259
2261
  * Traverses an AST.
2260
2262
  *
@@ -2439,8 +2441,7 @@ var require_traverse = __commonJS({
2439
2441
 
2440
2442
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/transform/index.js
2441
2443
  var require_transform = __commonJS({
2442
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/transform/index.js"(exports2, module2) {
2443
- "use strict";
2444
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/transform/index.js"(exports$1, module) {
2444
2445
  var _createClass = /* @__PURE__ */ (function() {
2445
2446
  function defineProperties(target, props) {
2446
2447
  for (var i = 0; i < props.length; i++) {
@@ -2522,7 +2523,7 @@ var require_transform = __commonJS({
2522
2523
  }]);
2523
2524
  return TransformResult2;
2524
2525
  })();
2525
- module2.exports = {
2526
+ module.exports = {
2526
2527
  /**
2527
2528
  * Expose `TransformResult`.
2528
2529
  */
@@ -2573,11 +2574,10 @@ var require_transform = __commonJS({
2573
2574
 
2574
2575
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/compat-transpiler/index.js
2575
2576
  var require_compat_transpiler = __commonJS({
2576
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/compat-transpiler/index.js"(exports2, module2) {
2577
- "use strict";
2577
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/compat-transpiler/index.js"(exports$1, module) {
2578
2578
  var compatTransforms = require_transforms();
2579
2579
  var _transform = require_transform();
2580
- module2.exports = {
2580
+ module.exports = {
2581
2581
  /**
2582
2582
  * Translates a regexp in new syntax to equivalent regexp in old syntax.
2583
2583
  *
@@ -2609,9 +2609,8 @@ var require_compat_transpiler = __commonJS({
2609
2609
 
2610
2610
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/utils/clone.js
2611
2611
  var require_clone = __commonJS({
2612
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/utils/clone.js"(exports2, module2) {
2613
- "use strict";
2614
- module2.exports = function clone(obj) {
2612
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/utils/clone.js"(exports$1, module) {
2613
+ module.exports = function clone(obj) {
2615
2614
  if (obj === null || typeof obj !== "object") {
2616
2615
  return obj;
2617
2616
  }
@@ -2631,9 +2630,8 @@ var require_clone = __commonJS({
2631
2630
 
2632
2631
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/char-surrogate-pair-to-single-unicode-transform.js
2633
2632
  var require_char_surrogate_pair_to_single_unicode_transform = __commonJS({
2634
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/char-surrogate-pair-to-single-unicode-transform.js"(exports2, module2) {
2635
- "use strict";
2636
- module2.exports = {
2633
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/char-surrogate-pair-to-single-unicode-transform.js"(exports$1, module) {
2634
+ module.exports = {
2637
2635
  shouldRun: function shouldRun(ast) {
2638
2636
  return ast.flags.includes("u");
2639
2637
  },
@@ -2651,15 +2649,14 @@ var require_char_surrogate_pair_to_single_unicode_transform = __commonJS({
2651
2649
 
2652
2650
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/char-code-to-simple-char-transform.js
2653
2651
  var require_char_code_to_simple_char_transform = __commonJS({
2654
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/char-code-to-simple-char-transform.js"(exports2, module2) {
2655
- "use strict";
2652
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/char-code-to-simple-char-transform.js"(exports$1, module) {
2656
2653
  var UPPER_A_CP = "A".codePointAt(0);
2657
2654
  var UPPER_Z_CP = "Z".codePointAt(0);
2658
2655
  var LOWER_A_CP = "a".codePointAt(0);
2659
2656
  var LOWER_Z_CP = "z".codePointAt(0);
2660
2657
  var DIGIT_0_CP = "0".codePointAt(0);
2661
2658
  var DIGIT_9_CP = "9".codePointAt(0);
2662
- module2.exports = {
2659
+ module.exports = {
2663
2660
  Char: function Char(path3) {
2664
2661
  var node = path3.node, parent = path3.parent;
2665
2662
  if (isNaN(node.codePoint) || node.kind === "simple") {
@@ -2705,11 +2702,10 @@ var require_char_code_to_simple_char_transform = __commonJS({
2705
2702
 
2706
2703
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/char-case-insensitive-lowercase-transform.js
2707
2704
  var require_char_case_insensitive_lowercase_transform = __commonJS({
2708
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/char-case-insensitive-lowercase-transform.js"(exports2, module2) {
2709
- "use strict";
2705
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/char-case-insensitive-lowercase-transform.js"(exports$1, module) {
2710
2706
  var UPPER_A_CP = "A".codePointAt(0);
2711
2707
  var UPPER_Z_CP = "Z".codePointAt(0);
2712
- module2.exports = {
2708
+ module.exports = {
2713
2709
  _AZClassRanges: null,
2714
2710
  _hasUFlag: false,
2715
2711
  init: function init(ast) {
@@ -2782,9 +2778,8 @@ var require_char_case_insensitive_lowercase_transform = __commonJS({
2782
2778
 
2783
2779
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/char-class-remove-duplicates-transform.js
2784
2780
  var require_char_class_remove_duplicates_transform = __commonJS({
2785
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/char-class-remove-duplicates-transform.js"(exports2, module2) {
2786
- "use strict";
2787
- module2.exports = {
2781
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/char-class-remove-duplicates-transform.js"(exports$1, module) {
2782
+ module.exports = {
2788
2783
  CharacterClass: function CharacterClass(path3) {
2789
2784
  var node = path3.node;
2790
2785
  var sources = {};
@@ -2804,8 +2799,7 @@ var require_char_class_remove_duplicates_transform = __commonJS({
2804
2799
 
2805
2800
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/transform/utils.js
2806
2801
  var require_utils = __commonJS({
2807
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/transform/utils.js"(exports2, module2) {
2808
- "use strict";
2802
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/transform/utils.js"(exports$1, module) {
2809
2803
  function _toConsumableArray(arr) {
2810
2804
  if (Array.isArray(arr)) {
2811
2805
  for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {
@@ -2855,7 +2849,7 @@ var require_utils = __commonJS({
2855
2849
  }
2856
2850
  }
2857
2851
  }
2858
- module2.exports = {
2852
+ module.exports = {
2859
2853
  disjunctionToList,
2860
2854
  listToDisjunction,
2861
2855
  increaseQuantifierByOne
@@ -2865,11 +2859,10 @@ var require_utils = __commonJS({
2865
2859
 
2866
2860
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/quantifiers-merge-transform.js
2867
2861
  var require_quantifiers_merge_transform = __commonJS({
2868
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/quantifiers-merge-transform.js"(exports2, module2) {
2869
- "use strict";
2862
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/quantifiers-merge-transform.js"(exports$1, module) {
2870
2863
  var _require = require_utils();
2871
2864
  var increaseQuantifierByOne = _require.increaseQuantifierByOne;
2872
- module2.exports = {
2865
+ module.exports = {
2873
2866
  Repetition: function Repetition(path3) {
2874
2867
  var node = path3.node, parent = path3.parent;
2875
2868
  if (parent.type !== "Alternative" || !path3.index) {
@@ -2933,9 +2926,8 @@ var require_quantifiers_merge_transform = __commonJS({
2933
2926
 
2934
2927
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/quantifier-range-to-symbol-transform.js
2935
2928
  var require_quantifier_range_to_symbol_transform = __commonJS({
2936
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/quantifier-range-to-symbol-transform.js"(exports2, module2) {
2937
- "use strict";
2938
- module2.exports = {
2929
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/quantifier-range-to-symbol-transform.js"(exports$1, module) {
2930
+ module.exports = {
2939
2931
  Quantifier: function Quantifier(path3) {
2940
2932
  var node = path3.node;
2941
2933
  if (node.kind !== "Range") {
@@ -2974,9 +2966,8 @@ var require_quantifier_range_to_symbol_transform = __commonJS({
2974
2966
 
2975
2967
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-to-chars-transform.js
2976
2968
  var require_char_class_classranges_to_chars_transform = __commonJS({
2977
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-to-chars-transform.js"(exports2, module2) {
2978
- "use strict";
2979
- module2.exports = {
2969
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-to-chars-transform.js"(exports$1, module) {
2970
+ module.exports = {
2980
2971
  ClassRange: function ClassRange(path3) {
2981
2972
  var node = path3.node;
2982
2973
  if (node.from.codePoint === node.to.codePoint) {
@@ -2992,8 +2983,7 @@ var require_char_class_classranges_to_chars_transform = __commonJS({
2992
2983
 
2993
2984
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-meta-transform.js
2994
2985
  var require_char_class_to_meta_transform = __commonJS({
2995
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-meta-transform.js"(exports2, module2) {
2996
- "use strict";
2986
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-meta-transform.js"(exports$1, module) {
2997
2987
  function _toConsumableArray(arr) {
2998
2988
  if (Array.isArray(arr)) {
2999
2989
  for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {
@@ -3004,7 +2994,7 @@ var require_char_class_to_meta_transform = __commonJS({
3004
2994
  return Array.from(arr);
3005
2995
  }
3006
2996
  }
3007
- module2.exports = {
2997
+ module.exports = {
3008
2998
  _hasIFlag: false,
3009
2999
  _hasUFlag: false,
3010
3000
  init: function init(ast) {
@@ -3136,9 +3126,8 @@ var require_char_class_to_meta_transform = __commonJS({
3136
3126
 
3137
3127
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-single-char-transform.js
3138
3128
  var require_char_class_to_single_char_transform = __commonJS({
3139
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-single-char-transform.js"(exports2, module2) {
3140
- "use strict";
3141
- module2.exports = {
3129
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-single-char-transform.js"(exports$1, module) {
3130
+ module.exports = {
3142
3131
  CharacterClass: function CharacterClass(path3) {
3143
3132
  var node = path3.node;
3144
3133
  if (node.expressions.length !== 1 || !hasAppropriateSiblings(path3) || !isAppropriateChar(node.expressions[0])) {
@@ -3195,9 +3184,8 @@ var require_char_class_to_single_char_transform = __commonJS({
3195
3184
 
3196
3185
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/char-escape-unescape-transform.js
3197
3186
  var require_char_escape_unescape_transform = __commonJS({
3198
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/char-escape-unescape-transform.js"(exports2, module2) {
3199
- "use strict";
3200
- module2.exports = {
3187
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/char-escape-unescape-transform.js"(exports$1, module) {
3188
+ module.exports = {
3201
3189
  _hasXFlag: false,
3202
3190
  init: function init(ast) {
3203
3191
  this._hasXFlag = ast.flags.includes("x");
@@ -3295,9 +3283,8 @@ var require_char_escape_unescape_transform = __commonJS({
3295
3283
 
3296
3284
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-merge-transform.js
3297
3285
  var require_char_class_classranges_merge_transform = __commonJS({
3298
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-merge-transform.js"(exports2, module2) {
3299
- "use strict";
3300
- module2.exports = {
3286
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-merge-transform.js"(exports$1, module) {
3287
+ module.exports = {
3301
3288
  _hasIUFlags: false,
3302
3289
  init: function init(ast) {
3303
3290
  this._hasIUFlags = ast.flags.includes("i") && ast.flags.includes("u");
@@ -3514,13 +3501,12 @@ var require_char_class_classranges_merge_transform = __commonJS({
3514
3501
 
3515
3502
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/disjunction-remove-duplicates-transform.js
3516
3503
  var require_disjunction_remove_duplicates_transform = __commonJS({
3517
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/disjunction-remove-duplicates-transform.js"(exports2, module2) {
3518
- "use strict";
3504
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/disjunction-remove-duplicates-transform.js"(exports$1, module) {
3519
3505
  var NodePath = require_node_path();
3520
3506
  var _require = require_utils();
3521
3507
  var disjunctionToList = _require.disjunctionToList;
3522
3508
  var listToDisjunction = _require.listToDisjunction;
3523
- module2.exports = {
3509
+ module.exports = {
3524
3510
  Disjunction: function Disjunction(path3) {
3525
3511
  var node = path3.node;
3526
3512
  var uniqueNodesMap = {};
@@ -3540,9 +3526,8 @@ var require_disjunction_remove_duplicates_transform = __commonJS({
3540
3526
 
3541
3527
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/group-single-chars-to-char-class.js
3542
3528
  var require_group_single_chars_to_char_class = __commonJS({
3543
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/group-single-chars-to-char-class.js"(exports2, module2) {
3544
- "use strict";
3545
- module2.exports = {
3529
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/group-single-chars-to-char-class.js"(exports$1, module) {
3530
+ module.exports = {
3546
3531
  Disjunction: function Disjunction(path3) {
3547
3532
  var node = path3.node, parent = path3.parent;
3548
3533
  if (!handlers[parent.type]) {
@@ -3602,9 +3587,8 @@ var require_group_single_chars_to_char_class = __commonJS({
3602
3587
 
3603
3588
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/remove-empty-group-transform.js
3604
3589
  var require_remove_empty_group_transform = __commonJS({
3605
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/remove-empty-group-transform.js"(exports2, module2) {
3606
- "use strict";
3607
- module2.exports = {
3590
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/remove-empty-group-transform.js"(exports$1, module) {
3591
+ module.exports = {
3608
3592
  Group: function Group(path3) {
3609
3593
  var node = path3.node, parent = path3.parent;
3610
3594
  var childPath = path3.getChild();
@@ -3623,8 +3607,7 @@ var require_remove_empty_group_transform = __commonJS({
3623
3607
 
3624
3608
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/ungroup-transform.js
3625
3609
  var require_ungroup_transform = __commonJS({
3626
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/ungroup-transform.js"(exports2, module2) {
3627
- "use strict";
3610
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/ungroup-transform.js"(exports$1, module) {
3628
3611
  function _toConsumableArray(arr) {
3629
3612
  if (Array.isArray(arr)) {
3630
3613
  for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {
@@ -3635,7 +3618,7 @@ var require_ungroup_transform = __commonJS({
3635
3618
  return Array.from(arr);
3636
3619
  }
3637
3620
  }
3638
- module2.exports = {
3621
+ module.exports = {
3639
3622
  Group: function Group(path3) {
3640
3623
  var node = path3.node, parent = path3.parent;
3641
3624
  var childPath = path3.getChild();
@@ -3686,8 +3669,7 @@ var require_ungroup_transform = __commonJS({
3686
3669
 
3687
3670
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/combine-repeating-patterns-transform.js
3688
3671
  var require_combine_repeating_patterns_transform = __commonJS({
3689
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/combine-repeating-patterns-transform.js"(exports2, module2) {
3690
- "use strict";
3672
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/combine-repeating-patterns-transform.js"(exports$1, module) {
3691
3673
  function _toConsumableArray(arr) {
3692
3674
  if (Array.isArray(arr)) {
3693
3675
  for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {
@@ -3701,7 +3683,7 @@ var require_combine_repeating_patterns_transform = __commonJS({
3701
3683
  var NodePath = require_node_path();
3702
3684
  var _require = require_utils();
3703
3685
  var increaseQuantifierByOne = _require.increaseQuantifierByOne;
3704
- module2.exports = {
3686
+ module.exports = {
3705
3687
  Alternative: function Alternative(path3) {
3706
3688
  var node = path3.node;
3707
3689
  var index = 1;
@@ -3838,9 +3820,8 @@ var require_combine_repeating_patterns_transform = __commonJS({
3838
3820
 
3839
3821
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/index.js
3840
3822
  var require_transforms2 = __commonJS({
3841
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/index.js"(exports2, module2) {
3842
- "use strict";
3843
- module2.exports = /* @__PURE__ */ new Map([
3823
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/transforms/index.js"(exports$1, module) {
3824
+ module.exports = /* @__PURE__ */ new Map([
3844
3825
  // \ud83d\ude80 -> \u{1f680}
3845
3826
  ["charSurrogatePairToSingleUnicode", require_char_surrogate_pair_to_single_unicode_transform()],
3846
3827
  // \u0061 -> a
@@ -3879,13 +3860,12 @@ var require_transforms2 = __commonJS({
3879
3860
 
3880
3861
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/index.js
3881
3862
  var require_optimizer = __commonJS({
3882
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/index.js"(exports2, module2) {
3883
- "use strict";
3863
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/optimizer/index.js"(exports$1, module) {
3884
3864
  var clone = require_clone();
3885
3865
  var parser = require_parser();
3886
3866
  var transform = require_transform();
3887
3867
  var optimizationTransforms = require_transforms2();
3888
- module2.exports = {
3868
+ module.exports = {
3889
3869
  /**
3890
3870
  * Optimizer transforms a regular expression into an optimized version,
3891
3871
  * replacing some sub-expressions with their idiomatic patterns.
@@ -3943,11 +3923,10 @@ var require_optimizer = __commonJS({
3943
3923
 
3944
3924
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js
3945
3925
  var require_special_symbols = __commonJS({
3946
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js"(exports2, module2) {
3947
- "use strict";
3926
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js"(exports$1, module) {
3948
3927
  var EPSILON = "\u03B5";
3949
3928
  var EPSILON_CLOSURE = EPSILON + "*";
3950
- module2.exports = {
3929
+ module.exports = {
3951
3930
  EPSILON,
3952
3931
  EPSILON_CLOSURE
3953
3932
  };
@@ -3956,8 +3935,7 @@ var require_special_symbols = __commonJS({
3956
3935
 
3957
3936
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa.js
3958
3937
  var require_nfa = __commonJS({
3959
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa.js"(exports2, module2) {
3960
- "use strict";
3938
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa.js"(exports$1, module) {
3961
3939
  var _slicedToArray = /* @__PURE__ */ (function() {
3962
3940
  function sliceIterator(arr, i) {
3963
3941
  var _arr = [];
@@ -4187,14 +4165,13 @@ var require_nfa = __commonJS({
4187
4165
  }]);
4188
4166
  return NFA2;
4189
4167
  })();
4190
- module2.exports = NFA;
4168
+ module.exports = NFA;
4191
4169
  }
4192
4170
  });
4193
4171
 
4194
4172
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa-minimizer.js
4195
4173
  var require_dfa_minimizer = __commonJS({
4196
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa-minimizer.js"(exports2, module2) {
4197
- "use strict";
4174
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa-minimizer.js"(exports$1, module) {
4198
4175
  var _slicedToArray = /* @__PURE__ */ (function() {
4199
4176
  function sliceIterator(arr, i) {
4200
4177
  var _arr = [];
@@ -4525,7 +4502,7 @@ var require_dfa_minimizer = __commonJS({
4525
4502
  }
4526
4503
  return currentTransitionMap[s1].has(originalTransitionS1) && currentTransitionMap[s2].has(originalTransitionS2);
4527
4504
  }
4528
- module2.exports = {
4505
+ module.exports = {
4529
4506
  minimize
4530
4507
  };
4531
4508
  }
@@ -4533,8 +4510,7 @@ var require_dfa_minimizer = __commonJS({
4533
4510
 
4534
4511
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa.js
4535
4512
  var require_dfa = __commonJS({
4536
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa.js"(exports2, module2) {
4537
- "use strict";
4513
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa.js"(exports$1, module) {
4538
4514
  var _createClass = /* @__PURE__ */ (function() {
4539
4515
  function defineProperties(target, props) {
4540
4516
  for (var i = 0; i < props.length; i++) {
@@ -4844,14 +4820,13 @@ var require_dfa = __commonJS({
4844
4820
  }]);
4845
4821
  return DFA2;
4846
4822
  })();
4847
- module2.exports = DFA;
4823
+ module.exports = DFA;
4848
4824
  }
4849
4825
  });
4850
4826
 
4851
4827
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/interpreter/finite-automaton/state.js
4852
4828
  var require_state = __commonJS({
4853
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/interpreter/finite-automaton/state.js"(exports2, module2) {
4854
- "use strict";
4829
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/interpreter/finite-automaton/state.js"(exports$1, module) {
4855
4830
  var _createClass = /* @__PURE__ */ (function() {
4856
4831
  function defineProperties(target, props) {
4857
4832
  for (var i = 0; i < props.length; i++) {
@@ -4910,14 +4885,13 @@ var require_state = __commonJS({
4910
4885
  }]);
4911
4886
  return State2;
4912
4887
  })();
4913
- module2.exports = State;
4888
+ module.exports = State;
4914
4889
  }
4915
4890
  });
4916
4891
 
4917
4892
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-state.js
4918
4893
  var require_nfa_state = __commonJS({
4919
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-state.js"(exports2, module2) {
4920
- "use strict";
4894
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-state.js"(exports$1, module) {
4921
4895
  var _createClass = /* @__PURE__ */ (function() {
4922
4896
  function defineProperties(target, props) {
4923
4897
  for (var i = 0; i < props.length; i++) {
@@ -5109,14 +5083,13 @@ var require_nfa_state = __commonJS({
5109
5083
  }]);
5110
5084
  return NFAState2;
5111
5085
  })(State);
5112
- module2.exports = NFAState;
5086
+ module.exports = NFAState;
5113
5087
  }
5114
5088
  });
5115
5089
 
5116
5090
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/builders.js
5117
5091
  var require_builders = __commonJS({
5118
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/builders.js"(exports2, module2) {
5119
- "use strict";
5092
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/builders.js"(exports$1, module) {
5120
5093
  var NFA = require_nfa();
5121
5094
  var NFAState = require_nfa_state();
5122
5095
  var _require = require_special_symbols();
@@ -5230,7 +5203,7 @@ var require_builders = __commonJS({
5230
5203
  fragment.in.addTransition(EPSILON, fragment.out);
5231
5204
  return fragment;
5232
5205
  }
5233
- module2.exports = {
5206
+ module.exports = {
5234
5207
  alt,
5235
5208
  char,
5236
5209
  e,
@@ -5245,8 +5218,7 @@ var require_builders = __commonJS({
5245
5218
 
5246
5219
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-from-regexp.js
5247
5220
  var require_nfa_from_regexp = __commonJS({
5248
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-from-regexp.js"(exports2, module2) {
5249
- "use strict";
5221
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-from-regexp.js"(exports$1, module) {
5250
5222
  function _toConsumableArray(arr) {
5251
5223
  if (Array.isArray(arr)) {
5252
5224
  for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {
@@ -5307,7 +5279,7 @@ var require_nfa_from_regexp = __commonJS({
5307
5279
  return gen(node.expression);
5308
5280
  }
5309
5281
  };
5310
- module2.exports = {
5282
+ module.exports = {
5311
5283
  /**
5312
5284
  * Builds an NFA from the passed regexp.
5313
5285
  */
@@ -5329,13 +5301,12 @@ var require_nfa_from_regexp = __commonJS({
5329
5301
 
5330
5302
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/interpreter/finite-automaton/index.js
5331
5303
  var require_finite_automaton = __commonJS({
5332
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/interpreter/finite-automaton/index.js"(exports2, module2) {
5333
- "use strict";
5304
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/interpreter/finite-automaton/index.js"(exports$1, module) {
5334
5305
  var NFA = require_nfa();
5335
5306
  var DFA = require_dfa();
5336
5307
  var nfaFromRegExp = require_nfa_from_regexp();
5337
5308
  var builders = require_builders();
5338
- module2.exports = {
5309
+ module.exports = {
5339
5310
  /**
5340
5311
  * Export NFA and DFA classes.
5341
5312
  */
@@ -5379,8 +5350,7 @@ var require_finite_automaton = __commonJS({
5379
5350
 
5380
5351
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/compat-transpiler/runtime/index.js
5381
5352
  var require_runtime = __commonJS({
5382
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/compat-transpiler/runtime/index.js"(exports2, module2) {
5383
- "use strict";
5353
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/compat-transpiler/runtime/index.js"(exports$1, module) {
5384
5354
  var _createClass = /* @__PURE__ */ (function() {
5385
5355
  function defineProperties(target, props) {
5386
5356
  for (var i = 0; i < props.length; i++) {
@@ -5461,7 +5431,7 @@ var require_runtime = __commonJS({
5461
5431
  }]);
5462
5432
  return RegExpTree2;
5463
5433
  })();
5464
- module2.exports = {
5434
+ module.exports = {
5465
5435
  RegExpTree
5466
5436
  };
5467
5437
  }
@@ -5469,8 +5439,7 @@ var require_runtime = __commonJS({
5469
5439
 
5470
5440
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/regexp-tree.js
5471
5441
  var require_regexp_tree2 = __commonJS({
5472
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/regexp-tree.js"(exports2, module2) {
5473
- "use strict";
5442
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/dist/regexp-tree.js"(exports$1, module) {
5474
5443
  var compatTranspiler = require_compat_transpiler();
5475
5444
  var generator = require_generator();
5476
5445
  var optimizer = require_optimizer();
@@ -5615,22 +5584,20 @@ var require_regexp_tree2 = __commonJS({
5615
5584
  return re.exec(string);
5616
5585
  }
5617
5586
  };
5618
- module2.exports = regexpTree2;
5587
+ module.exports = regexpTree2;
5619
5588
  }
5620
5589
  });
5621
5590
 
5622
5591
  // ../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/index.js
5623
5592
  var require_regexp_tree3 = __commonJS({
5624
- "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/index.js"(exports2, module2) {
5625
- "use strict";
5626
- module2.exports = require_regexp_tree2();
5593
+ "../../node_modules/.pnpm/regexp-tree@0.1.27/node_modules/regexp-tree/index.js"(exports$1, module) {
5594
+ module.exports = require_regexp_tree2();
5627
5595
  }
5628
5596
  });
5629
5597
 
5630
5598
  // ../../node_modules/.pnpm/safe-regex@2.1.1/node_modules/safe-regex/lib/heuristic-analyzer.js
5631
5599
  var require_heuristic_analyzer = __commonJS({
5632
- "../../node_modules/.pnpm/safe-regex@2.1.1/node_modules/safe-regex/lib/heuristic-analyzer.js"(exports2, module2) {
5633
- "use strict";
5600
+ "../../node_modules/.pnpm/safe-regex@2.1.1/node_modules/safe-regex/lib/heuristic-analyzer.js"(exports$1, module) {
5634
5601
  var regexpTree2 = require_regexp_tree3();
5635
5602
  var analyzer = require_analyzer();
5636
5603
  var HeuristicAnalyzer = class extends analyzer.Analyzer {
@@ -5683,23 +5650,21 @@ var require_heuristic_analyzer = __commonJS({
5683
5650
  return nRepetitions;
5684
5651
  }
5685
5652
  };
5686
- module2.exports = HeuristicAnalyzer;
5653
+ module.exports = HeuristicAnalyzer;
5687
5654
  }
5688
5655
  });
5689
5656
 
5690
5657
  // ../../node_modules/.pnpm/safe-regex@2.1.1/node_modules/safe-regex/lib/analyzer-family.js
5691
5658
  var require_analyzer_family = __commonJS({
5692
- "../../node_modules/.pnpm/safe-regex@2.1.1/node_modules/safe-regex/lib/analyzer-family.js"(exports2, module2) {
5693
- "use strict";
5659
+ "../../node_modules/.pnpm/safe-regex@2.1.1/node_modules/safe-regex/lib/analyzer-family.js"(exports$1, module) {
5694
5660
  var heuristicAnalyzer = require_heuristic_analyzer();
5695
- module2.exports = [heuristicAnalyzer];
5661
+ module.exports = [heuristicAnalyzer];
5696
5662
  }
5697
5663
  });
5698
5664
 
5699
5665
  // ../../node_modules/.pnpm/safe-regex@2.1.1/node_modules/safe-regex/index.js
5700
5666
  var require_safe_regex = __commonJS({
5701
- "../../node_modules/.pnpm/safe-regex@2.1.1/node_modules/safe-regex/index.js"(exports2, module2) {
5702
- "use strict";
5667
+ "../../node_modules/.pnpm/safe-regex@2.1.1/node_modules/safe-regex/index.js"(exports$1, module) {
5703
5668
  var analyzer = require_analyzer();
5704
5669
  var analyzerFamily = require_analyzer_family();
5705
5670
  var DEFAULT_SAFE_REP_LIMIT = 25;
@@ -5751,30 +5716,9 @@ var require_safe_regex = __commonJS({
5751
5716
  }
5752
5717
  return analyzerSaysVulnerable;
5753
5718
  }
5754
- module2.exports = safeRegex;
5719
+ module.exports = safeRegex;
5755
5720
  }
5756
5721
  });
5757
-
5758
- // src/index.ts
5759
- var index_exports = {};
5760
- __export(index_exports, {
5761
- ApprovedSpecsValidator: () => ApprovedSpecsValidator,
5762
- ClientGenerator: () => ClientGenerator,
5763
- CollectionProviderGenerator: () => CollectionProviderGenerator,
5764
- EndpointFilter: () => EndpointFilter,
5765
- OpenAPICollectionProvider: () => OpenAPICollectionProvider,
5766
- OpenAPIParser: () => OpenAPIParser,
5767
- OpenAPIPlugin: () => OpenAPIPlugin,
5768
- SchemaResolver: () => SchemaResolver,
5769
- TypeGenerator: () => TypeGenerator,
5770
- ZodSchemaGenerator: () => ZodSchemaGenerator,
5771
- createOpenAPIFetcher: () => createOpenAPIFetcher,
5772
- createOpenAPIPlugin: () => createOpenAPIPlugin
5773
- });
5774
- module.exports = __toCommonJS(index_exports);
5775
-
5776
- // src/parser/OpenAPIParser.ts
5777
- var import_swagger_parser = __toESM(require("@apidevtools/swagger-parser"));
5778
5722
  var OpenAPIParser = class {
5779
5723
  /**
5780
5724
  * Parse an OpenAPI specification from URL or file path
@@ -5793,13 +5737,13 @@ var OpenAPIParser = class {
5793
5737
  async parse(specPath, options = {}) {
5794
5738
  const { dereference = true, validate = true } = options;
5795
5739
  try {
5796
- const api = await import_swagger_parser.default.parse(specPath);
5740
+ const api = await SwaggerParser__default.default.parse(specPath);
5797
5741
  if (validate) {
5798
- await import_swagger_parser.default.validate(api);
5742
+ await SwaggerParser__default.default.validate(api);
5799
5743
  }
5800
5744
  let document;
5801
5745
  if (dereference) {
5802
- document = await import_swagger_parser.default.dereference(api);
5746
+ document = await SwaggerParser__default.default.dereference(api);
5803
5747
  } else {
5804
5748
  document = api;
5805
5749
  }
@@ -5817,8 +5761,9 @@ var OpenAPIParser = class {
5817
5761
  * Detect OpenAPI version from document
5818
5762
  */
5819
5763
  detectVersion(document) {
5820
- if ("openapi" in document) {
5821
- return document.openapi;
5764
+ const openapiVersion = "openapi" in document ? document.openapi : void 0;
5765
+ if (openapiVersion !== void 0) {
5766
+ return openapiVersion;
5822
5767
  }
5823
5768
  throw new Error("Invalid OpenAPI document: missing openapi version field");
5824
5769
  }
@@ -5829,7 +5774,9 @@ var OpenAPIParser = class {
5829
5774
  if (error instanceof Error) {
5830
5775
  const message = `Failed to parse OpenAPI spec from "${specPath}": ${error.message}`;
5831
5776
  const enhancedError = new Error(message);
5832
- enhancedError.stack = error.stack;
5777
+ if (error.stack !== void 0) {
5778
+ enhancedError.stack = error.stack;
5779
+ }
5833
5780
  return enhancedError;
5834
5781
  }
5835
5782
  return new Error(`Failed to parse OpenAPI spec from "${specPath}": ${String(error)}`);
@@ -5902,9 +5849,9 @@ var SchemaResolver = class {
5902
5849
  endpoints.push({
5903
5850
  path: path3,
5904
5851
  method,
5905
- operationId: operation.operationId,
5906
- summary: operation.summary,
5907
- description: operation.description
5852
+ ...operation.operationId !== void 0 && { operationId: operation.operationId },
5853
+ ...operation.summary !== void 0 && { summary: operation.summary },
5854
+ ...operation.description !== void 0 && { description: operation.description }
5908
5855
  });
5909
5856
  }
5910
5857
  }
@@ -6136,9 +6083,6 @@ ${fields}
6136
6083
  }
6137
6084
  }
6138
6085
  };
6139
-
6140
- // src/compiler/TypeGenerator.ts
6141
- var import_zod_to_ts = require("zod-to-ts");
6142
6086
  var TypeGenerator = class {
6143
6087
  /**
6144
6088
  * Generate TypeScript type definition from a Zod schema
@@ -6158,9 +6102,9 @@ var TypeGenerator = class {
6158
6102
  generate(zodSchema, options = {}) {
6159
6103
  const { typeName = "GeneratedType", includeJsDoc = true } = options;
6160
6104
  try {
6161
- const auxiliaryTypeStore = (0, import_zod_to_ts.createAuxiliaryTypeStore)();
6162
- const { node } = (0, import_zod_to_ts.zodToTs)(zodSchema, { auxiliaryTypeStore });
6163
- const typeCode = (0, import_zod_to_ts.printNode)(node);
6105
+ const auxiliaryTypeStore = zodToTs.createAuxiliaryTypeStore();
6106
+ const { node } = zodToTs.zodToTs(zodSchema, { auxiliaryTypeStore });
6107
+ const typeCode = zodToTs.printNode(node);
6164
6108
  let result = "";
6165
6109
  if (includeJsDoc && zodSchema.description) {
6166
6110
  result += `/**
@@ -6212,12 +6156,12 @@ var TypeGenerator = class {
6212
6156
  * @returns Complete TypeScript module code
6213
6157
  */
6214
6158
  createModule(types, imports = []) {
6215
- let module2 = "";
6159
+ let module = "";
6216
6160
  if (imports.length > 0) {
6217
- module2 += imports.join("\n") + "\n\n";
6161
+ module += imports.join("\n") + "\n\n";
6218
6162
  }
6219
- module2 += Object.values(types).join("\n");
6220
- return module2;
6163
+ module += Object.values(types).join("\n");
6164
+ return module;
6221
6165
  }
6222
6166
  };
6223
6167
 
@@ -6249,18 +6193,21 @@ var CollectionProviderGenerator = class {
6249
6193
  }
6250
6194
  const isArray = schema.type === "array";
6251
6195
  const schemaName = `${this.capitalize(collectionName)}Schema`;
6252
- return this.generateProviderCode({
6196
+ const params = {
6253
6197
  providerName,
6254
6198
  collectionName,
6255
6199
  endpoint,
6256
6200
  slugField,
6257
6201
  method,
6258
6202
  baseUrl,
6259
- auth,
6260
6203
  schemaName,
6261
6204
  isArray,
6262
6205
  bare
6263
- });
6206
+ };
6207
+ if (auth !== void 0) {
6208
+ params.auth = auth;
6209
+ }
6210
+ return this.generateProviderCode(params);
6264
6211
  }
6265
6212
  /**
6266
6213
  * Generate the complete provider code
@@ -6282,12 +6229,12 @@ var CollectionProviderGenerator = class {
6282
6229
  const arraySchemaName = `${schemaName.replace(/Schema$/, "")}ArraySchema`;
6283
6230
  const validationSchema = isArray ? arraySchemaName : schemaName;
6284
6231
  const imports = bare ? "" : `import type { CollectionProvider, CollectionItem } from '@stackwright/collections';
6285
- import { ${isArray ? arraySchemaName : schemaName} } from './schemas';
6232
+ import { ${isArray ? arraySchemaName : schemaName}} } from './schemas';
6286
6233
 
6287
6234
  `;
6288
6235
  return `${imports}/**
6289
6236
  * CollectionProvider for ${collectionName}
6290
- *
6237
+ *
6291
6238
  * Generated from OpenAPI endpoint: ${method.toUpperCase()} ${endpoint}
6292
6239
  */
6293
6240
  export class ${providerName} implements CollectionProvider {
@@ -6433,7 +6380,10 @@ export class ${providerName} implements CollectionProvider {
6433
6380
  */
6434
6381
  getBaseUrl() {
6435
6382
  if ("servers" in this.document && this.document.servers && this.document.servers.length > 0) {
6436
- return this.document.servers[0].url;
6383
+ const firstServer = this.document.servers[0];
6384
+ if (firstServer !== void 0) {
6385
+ return firstServer.url;
6386
+ }
6437
6387
  }
6438
6388
  return "http://localhost:3000";
6439
6389
  }
@@ -6461,7 +6411,8 @@ export class ${providerName} implements CollectionProvider {
6461
6411
  */
6462
6412
  guessTitle(slugField) {
6463
6413
  const titleFields = ["title", "name", "label", "displayName"];
6464
- return titleFields[0] + ` || item.${slugField}`;
6414
+ const firstField = titleFields[0];
6415
+ return firstField !== void 0 ? firstField : `item.${slugField}`;
6465
6416
  }
6466
6417
  };
6467
6418
 
@@ -6471,7 +6422,9 @@ var ClientGenerator = class {
6471
6422
  constructor(document, schemaMapping) {
6472
6423
  this.document = document;
6473
6424
  this.resolver = new SchemaResolver(document);
6474
- this.schemaMapping = schemaMapping;
6425
+ if (schemaMapping !== void 0) {
6426
+ this.schemaMapping = schemaMapping;
6427
+ }
6475
6428
  this.requiredSchemas = /* @__PURE__ */ new Set();
6476
6429
  this.generatedRequestSchemas = /* @__PURE__ */ new Set();
6477
6430
  }
@@ -6563,7 +6516,7 @@ var ClientGenerator = class {
6563
6516
  code += "// Request Schemas (Zod Validation)\n";
6564
6517
  code += "// ============================================================================\n\n";
6565
6518
  for (const endpoint of endpoints) {
6566
- const operationId = endpoint.operationId || this.getMethodName(endpoint);
6519
+ endpoint.operationId || this.getMethodName(endpoint);
6567
6520
  const typeName = this.getOperationTypeName(endpoint);
6568
6521
  const schemaName = `${typeName}RequestSchema`;
6569
6522
  const schemaCode = this.generateRequestSchemaForEndpoint(endpoint);
@@ -6829,7 +6782,8 @@ ${paramSchemas.join(",\n")}
6829
6782
  */
6830
6783
  extractComponentName(ref) {
6831
6784
  const parts = ref.split("/");
6832
- return parts[parts.length - 1];
6785
+ const lastPart = parts[parts.length - 1];
6786
+ return lastPart ?? ref;
6833
6787
  }
6834
6788
  /**
6835
6789
  * Escape string for use in Zod .describe()
@@ -7576,9 +7530,9 @@ ${paramSchemas.join(",\n")}
7576
7530
  endpoints.push({
7577
7531
  path: path3,
7578
7532
  method,
7579
- operationId: operation.operationId,
7580
- summary: operation.summary,
7581
- description: operation.description,
7533
+ ...operation.operationId !== void 0 && { operationId: operation.operationId },
7534
+ ...operation.summary !== void 0 && { summary: operation.summary },
7535
+ ...operation.description !== void 0 && { description: operation.description },
7582
7536
  operation
7583
7537
  });
7584
7538
  }
@@ -7666,7 +7620,8 @@ ${paramSchemas.join(",\n")}
7666
7620
  */
7667
7621
  getDefaultBaseUrl() {
7668
7622
  if ("servers" in this.document && this.document.servers && this.document.servers.length > 0) {
7669
- return this.document.servers[0].url;
7623
+ const firstServer = this.document.servers[0];
7624
+ return firstServer ? firstServer.url : "http://localhost:3000";
7670
7625
  }
7671
7626
  return "http://localhost:3000";
7672
7627
  }
@@ -7704,10 +7659,6 @@ var OpenAPICollectionProvider = class {
7704
7659
  }
7705
7660
  };
7706
7661
 
7707
- // src/prebuild/OpenAPIPlugin.ts
7708
- var import_fs3 = __toESM(require("fs"));
7709
- var import_path2 = __toESM(require("path"));
7710
-
7711
7662
  // src/utils/EndpointFilter.ts
7712
7663
  var EndpointFilter = class {
7713
7664
  include;
@@ -7761,13 +7712,18 @@ var EndpointFilter = class {
7761
7712
  let matches = true;
7762
7713
  for (let i = 0; i < patternSegments.length; i++) {
7763
7714
  const pSeg = patternSegments[i];
7715
+ if (pSeg === void 0) {
7716
+ matches = false;
7717
+ break;
7718
+ }
7764
7719
  if (pSeg === "*" || pSeg === "**") {
7765
7720
  continue;
7766
7721
  }
7767
7722
  if (pSeg.startsWith("{") && pSeg.endsWith("}")) {
7768
7723
  continue;
7769
7724
  }
7770
- if (pSeg !== pathSegments[i]) {
7725
+ const pathSeg = pathSegments[i];
7726
+ if (pSeg !== pathSeg) {
7771
7727
  matches = false;
7772
7728
  break;
7773
7729
  }
@@ -7804,16 +7760,6 @@ var EndpointFilter = class {
7804
7760
  return new RegExp(`^${result}$`);
7805
7761
  }
7806
7762
  };
7807
-
7808
- // src/utils/ApprovedSpecsValidator.ts
7809
- var import_crypto = __toESM(require("crypto"));
7810
- var import_fs = __toESM(require("fs"));
7811
- var import_https = __toESM(require("https"));
7812
- var import_http = __toESM(require("http"));
7813
- var import_url = require("url");
7814
- var import_path = __toESM(require("path"));
7815
- var import_fs2 = require("fs");
7816
- var import_net = require("net");
7817
7763
  var ApprovedSpecsValidator = class {
7818
7764
  allowlist;
7819
7765
  cache = /* @__PURE__ */ new Map();
@@ -7838,7 +7784,7 @@ var ApprovedSpecsValidator = class {
7838
7784
  */
7839
7785
  buildAllowedDirs() {
7840
7786
  const cwd = process.cwd();
7841
- return [cwd, import_path.default.join(cwd, "specs"), import_path.default.join(cwd, ".stackwright")];
7787
+ return [cwd, path2__default.default.join(cwd, "specs"), path2__default.default.join(cwd, ".stackwright")];
7842
7788
  }
7843
7789
  /**
7844
7790
  * Validate that a file path is within allowed directories (path traversal prevention).
@@ -7849,10 +7795,10 @@ var ApprovedSpecsValidator = class {
7849
7795
  */
7850
7796
  isPathAllowed(filePath) {
7851
7797
  try {
7852
- const realPath = (0, import_fs2.realpathSync)(filePath);
7798
+ const realPath = fs.realpathSync(filePath);
7853
7799
  return this.ALLOWED_DIRS.some((dir) => {
7854
- const realDir = (0, import_fs2.realpathSync)(dir);
7855
- return realPath.startsWith(realDir + import_path.default.sep) || realPath === realDir;
7800
+ const realDir = fs.realpathSync(dir);
7801
+ return realPath.startsWith(realDir + path2__default.default.sep) || realPath === realDir;
7856
7802
  });
7857
7803
  } catch {
7858
7804
  return false;
@@ -7869,7 +7815,7 @@ var ApprovedSpecsValidator = class {
7869
7815
  if (specUrl.startsWith("file://")) {
7870
7816
  return true;
7871
7817
  }
7872
- if (import_fs.default.existsSync(specUrl)) {
7818
+ if (fs__default.default.existsSync(specUrl)) {
7873
7819
  return !this.isPathAllowed(specUrl);
7874
7820
  }
7875
7821
  if (!specUrl.startsWith("http://") && !specUrl.startsWith("https://")) {
@@ -7903,7 +7849,7 @@ var ApprovedSpecsValidator = class {
7903
7849
  */
7904
7850
  isRedirectSafe(location, originalProtocol) {
7905
7851
  try {
7906
- const redirectUrl = new import_url.URL(location);
7852
+ const redirectUrl = new url.URL(location);
7907
7853
  if (redirectUrl.protocol === "http:" && originalProtocol === "https:") {
7908
7854
  return false;
7909
7855
  }
@@ -7925,23 +7871,24 @@ var ApprovedSpecsValidator = class {
7925
7871
  }
7926
7872
  }
7927
7873
  const ipv4Match = redirectUrl.hostname.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/);
7928
- if (ipv4Match) {
7874
+ if (ipv4Match && ipv4Match.length >= 5) {
7929
7875
  const octets = ipv4Match.slice(1, 5).map(Number);
7930
- const [first, second] = octets;
7931
- if (first === 10) {
7876
+ const first = octets[0];
7877
+ const second = octets[1];
7878
+ if (first !== void 0 && first === 10) {
7932
7879
  return false;
7933
7880
  }
7934
- if (first === 172 && second >= 16 && second <= 31) {
7881
+ if (first !== void 0 && second !== void 0 && first === 172 && second >= 16 && second <= 31) {
7935
7882
  return false;
7936
7883
  }
7937
- if (first === 192 && second === 168) {
7884
+ if (first !== void 0 && second !== void 0 && first === 192 && second === 168) {
7938
7885
  return false;
7939
7886
  }
7940
- if (first === 127) {
7887
+ if (first !== void 0 && first === 127) {
7941
7888
  return false;
7942
7889
  }
7943
7890
  }
7944
- const ipVersion = (0, import_net.isIP)(redirectUrl.hostname);
7891
+ const ipVersion = net.isIP(redirectUrl.hostname);
7945
7892
  if (ipVersion === 6) {
7946
7893
  const blockedPrefixes = [
7947
7894
  "::1",
@@ -7974,12 +7921,12 @@ var ApprovedSpecsValidator = class {
7974
7921
  */
7975
7922
  readAllowedFile(filePath) {
7976
7923
  try {
7977
- import_fs.default.lstatSync(filePath);
7978
- const realPath = import_fs.default.realpathSync(filePath);
7924
+ fs__default.default.lstatSync(filePath);
7925
+ const realPath = fs__default.default.realpathSync(filePath);
7979
7926
  if (!this.isPathAllowed(realPath)) {
7980
7927
  return { error: "File path outside allowed directories (path traversal blocked)" };
7981
7928
  }
7982
- return { content: import_fs.default.readFileSync(filePath, "utf8") };
7929
+ return { content: fs__default.default.readFileSync(filePath, "utf8") };
7983
7930
  } catch (e) {
7984
7931
  const err = e;
7985
7932
  if (err.code === "ENOENT") {
@@ -8052,7 +7999,7 @@ var ApprovedSpecsValidator = class {
8052
7999
  error: "Invalid hash format in approved spec configuration"
8053
8000
  };
8054
8001
  }
8055
- if (!import_crypto.default.timingSafeEqual(
8002
+ if (!crypto__default.default.timingSafeEqual(
8056
8003
  Buffer.from(hashResult.hash, "hex"),
8057
8004
  Buffer.from(approved.sha256, "hex")
8058
8005
  )) {
@@ -8110,7 +8057,7 @@ var ApprovedSpecsValidator = class {
8110
8057
  return { error: contentResult.error };
8111
8058
  }
8112
8059
  const content = contentResult.content;
8113
- const hash = import_crypto.default.createHash("sha256").update(content).digest("hex");
8060
+ const hash = crypto__default.default.createHash("sha256").update(content).digest("hex");
8114
8061
  this.cache.set(url, { content, hash });
8115
8062
  return { hash };
8116
8063
  }
@@ -8118,18 +8065,18 @@ var ApprovedSpecsValidator = class {
8118
8065
  * Download content from URL or file.
8119
8066
  * Includes path traversal and SSRF protection.
8120
8067
  */
8121
- async download(url, originalProtocol = "") {
8122
- if (import_fs.default.existsSync(url)) {
8123
- return this.readAllowedFile(url);
8068
+ async download(url$1, originalProtocol = "") {
8069
+ if (fs__default.default.existsSync(url$1)) {
8070
+ return this.readAllowedFile(url$1);
8124
8071
  }
8125
- if (!url.startsWith("http://") && !url.startsWith("https://")) {
8126
- return { error: `Invalid URL protocol. Expected http:// or https://, got: ${url}` };
8072
+ if (!url$1.startsWith("http://") && !url$1.startsWith("https://")) {
8073
+ return { error: `Invalid URL protocol. Expected http:// or https://, got: ${url$1}` };
8127
8074
  }
8128
- const parsed = new import_url.URL(url);
8075
+ const parsed = new url.URL(url$1);
8129
8076
  const requestProtocol = originalProtocol || parsed.protocol;
8130
8077
  return new Promise((resolve) => {
8131
- const client = url.startsWith("https") ? import_https.default : import_http.default;
8132
- const req = client.get(url, { timeout: 3e4 }, (res) => {
8078
+ const client = url$1.startsWith("https") ? https__default.default : http__default.default;
8079
+ const req = client.get(url$1, { timeout: 3e4 }, (res) => {
8133
8080
  if (res.statusCode && res.statusCode >= 300 && res.statusCode < 400 && res.headers.location) {
8134
8081
  const location = res.headers.location;
8135
8082
  if (!this.isRedirectSafe(location, requestProtocol)) {
@@ -8171,7 +8118,7 @@ var ApprovedSpecsValidator = class {
8171
8118
  urlsMatch(url1, url2) {
8172
8119
  const normalize = (u) => {
8173
8120
  try {
8174
- const parsed = new import_url.URL(u);
8121
+ const parsed = new url.URL(u);
8175
8122
  const normalized = `${parsed.protocol}//${parsed.hostname}${parsed.pathname}`;
8176
8123
  return normalized.replace(/\/$/, "").toLowerCase();
8177
8124
  } catch {
@@ -8322,7 +8269,7 @@ var OpenAPIPlugin = class {
8322
8269
  async processIntegration(config, projectRoot) {
8323
8270
  const { name, spec, auth, mockUrl, collections, endpoints } = config;
8324
8271
  console.log(` - Processing integration: ${name}`);
8325
- const specPath = spec.startsWith("http") ? spec : import_path2.default.resolve(projectRoot, spec);
8272
+ const specPath = spec.startsWith("http") ? spec : path2__default.default.resolve(projectRoot, spec);
8326
8273
  const parser = new OpenAPIParser();
8327
8274
  const { document } = await parser.parse(specPath);
8328
8275
  if (mockUrl) {
@@ -8336,8 +8283,8 @@ var OpenAPIPlugin = class {
8336
8283
  const excludeStr = endpoints.exclude?.length ? ` (exclude: ${endpoints.exclude.join(", ")})` : "";
8337
8284
  console.log(` > Filter: include [${includeStr}]${excludeStr}`);
8338
8285
  }
8339
- const outputDir = import_path2.default.join(projectRoot, "src", "generated", name);
8340
- import_fs3.default.mkdirSync(outputDir, { recursive: true });
8286
+ const outputDir = path2__default.default.join(projectRoot, "src", "generated", name);
8287
+ fs__default.default.mkdirSync(outputDir, { recursive: true });
8341
8288
  const schemaMapping = await this.generateSchemas(
8342
8289
  document,
8343
8290
  collections || [],
@@ -8460,7 +8407,7 @@ import { z } from 'zod';
8460
8407
  };
8461
8408
  }
8462
8409
  }
8463
- import_fs3.default.writeFileSync(import_path2.default.join(outputDir, "schemas.ts"), schemasCode);
8410
+ fs__default.default.writeFileSync(path2__default.default.join(outputDir, "schemas.ts"), schemasCode);
8464
8411
  return schemaMapping;
8465
8412
  }
8466
8413
  async generateTypes(document, collections, outputDir, integrationName) {
@@ -8485,7 +8432,7 @@ import type * as schemas from './schemas';
8485
8432
  `;
8486
8433
  }
8487
8434
  }
8488
- import_fs3.default.writeFileSync(import_path2.default.join(outputDir, "types.ts"), typesCode);
8435
+ fs__default.default.writeFileSync(path2__default.default.join(outputDir, "types.ts"), typesCode);
8489
8436
  }
8490
8437
  async generateProvider(document, config, outputDir, integrationName) {
8491
8438
  const generator = new CollectionProviderGenerator(document);
@@ -8501,12 +8448,12 @@ import type * as schemas from './schemas';
8501
8448
  slugField: collection.slug_field,
8502
8449
  filters: collection.filters
8503
8450
  };
8504
- let providerOptions = { bare: true };
8451
+ const providerOptions = { bare: true };
8505
8452
  if (auth) {
8506
8453
  if (auth.type === "bearer" || auth.type === "apiKey") {
8507
8454
  providerOptions.auth = {
8508
8455
  type: auth.type,
8509
- headerName: auth.type === "apiKey" ? "X-API-Key" : void 0
8456
+ ...auth.type === "apiKey" && { headerName: "X-API-Key" }
8510
8457
  };
8511
8458
  } else if (auth.type === "oauth2") {
8512
8459
  console.warn(
@@ -8539,7 +8486,7 @@ import { ${Array.from(schemaImports).join(", ")} } from './schemas';
8539
8486
 
8540
8487
  `;
8541
8488
  providerCode += classBlocks.join("\n");
8542
- import_fs3.default.writeFileSync(import_path2.default.join(outputDir, "provider.ts"), providerCode);
8489
+ fs__default.default.writeFileSync(path2__default.default.join(outputDir, "provider.ts"), providerCode);
8543
8490
  }
8544
8491
  async generateClient(document, outputDir, integrationName, schemaMapping, endpointFilter) {
8545
8492
  const paths = document.paths || {};
@@ -8563,11 +8510,12 @@ import { ${Array.from(schemaImports).join(", ")} } from './schemas';
8563
8510
  validateResponses: true,
8564
8511
  strictValidation: false
8565
8512
  });
8566
- import_fs3.default.writeFileSync(import_path2.default.join(outputDir, "client.ts"), clientCode);
8513
+ fs__default.default.writeFileSync(path2__default.default.join(outputDir, "client.ts"), clientCode);
8567
8514
  }
8568
8515
  extractComponentName(ref) {
8569
8516
  const parts = ref.split("/");
8570
- return parts[parts.length - 1];
8517
+ const lastPart = parts[parts.length - 1];
8518
+ return lastPart ?? ref;
8571
8519
  }
8572
8520
  getOperationTypeName(operationId) {
8573
8521
  return operationId.charAt(0).toUpperCase() + operationId.slice(1);
@@ -8594,8 +8542,6 @@ import { ${Array.from(schemaImports).join(", ")} } from './schemas';
8594
8542
  function createOpenAPIPlugin() {
8595
8543
  return new OpenAPIPlugin();
8596
8544
  }
8597
-
8598
- // src/sources/openapi.ts
8599
8545
  var BLOCKED_HOST_PATTERNS = [
8600
8546
  /^localhost$/i,
8601
8547
  /^127\./,
@@ -8620,63 +8566,115 @@ var BLOCKED_HOST_PATTERNS = [
8620
8566
  // AWS metadata endpoint
8621
8567
  /^metadata\.googleapis\.com$/i,
8622
8568
  // GCP metadata endpoint
8569
+ /^metadata\.azure\.com$/i,
8570
+ // Azure metadata endpoint
8571
+ /^imds\.azure\.com$/i,
8572
+ // Azure IMDS endpoint
8623
8573
  /^100\.100\.100\.200$/
8624
8574
  // Alibaba Cloud metadata
8625
8575
  ];
8576
+ var BLOCKED_IPV6_PREFIXES = [
8577
+ "::1",
8578
+ // Loopback
8579
+ "fe80:",
8580
+ // Link-local
8581
+ "fc",
8582
+ // Unique local (fc00::/7 — covers fc00:: through fcff::)
8583
+ "fd"
8584
+ // Unique local (short form)
8585
+ ];
8626
8586
  var ALLOWED_PROTOCOLS = ["http:", "https:"];
8627
- function validateFetchUrl(baseUrl) {
8587
+ function validateUrlSafe(baseUrl) {
8628
8588
  let url;
8629
8589
  try {
8630
8590
  url = new URL(baseUrl);
8631
8591
  } catch {
8632
- throw new Error("SSRF Prevention: baseUrl must be a valid absolute URL");
8592
+ throw new Error("SECURITY: baseUrl must be a valid absolute URL");
8633
8593
  }
8634
8594
  if (!ALLOWED_PROTOCOLS.includes(url.protocol)) {
8635
- throw new Error(
8636
- "SSRF Prevention: Only HTTP and HTTPS protocols are allowed, got " + url.protocol
8637
- );
8595
+ throw new Error("SECURITY: Only HTTP and HTTPS protocols are allowed, got " + url.protocol);
8638
8596
  }
8639
8597
  const hostname = url.hostname.toLowerCase();
8640
8598
  for (const pattern of BLOCKED_HOST_PATTERNS) {
8641
8599
  if (pattern.test(hostname)) {
8642
- throw new Error("SSRF Prevention: Blocked internal network address: " + hostname);
8600
+ throw new Error("SECURITY: Blocked internal network address: " + hostname);
8643
8601
  }
8644
8602
  }
8645
8603
  const ip = url.hostname;
8646
8604
  if (/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(ip)) {
8647
8605
  const octets = ip.split(".").map(Number);
8648
- if (octets[0] === 127) {
8649
- throw new Error("SSRF Prevention: Blocked loopback address: " + ip);
8650
- }
8651
- if (octets[0] === 10) {
8652
- throw new Error("SSRF Prevention: Blocked private address: " + ip);
8653
- }
8654
- if (octets[0] === 172 && octets[1] >= 16 && octets[1] <= 31) {
8655
- throw new Error("SSRF Prevention: Blocked private address: " + ip);
8656
- }
8657
- if (octets[0] === 192 && octets[1] === 168) {
8658
- throw new Error("SSRF Prevention: Blocked private address: " + ip);
8659
- }
8660
- if (octets[0] === 169 && octets[1] === 254) {
8661
- throw new Error("SSRF Prevention: Blocked link-local address: " + ip);
8662
- }
8663
- if (octets[0] === 0) {
8664
- throw new Error("SSRF Prevention: Blocked current network address: " + ip);
8606
+ const first = octets[0];
8607
+ const second = octets[1];
8608
+ if (first !== void 0 && first === 127) {
8609
+ throw new Error("SECURITY: Base URL resolves to private IP");
8610
+ }
8611
+ if (first !== void 0 && first === 10) {
8612
+ throw new Error("SECURITY: Base URL resolves to private IP");
8613
+ }
8614
+ if (first !== void 0 && second !== void 0 && first === 172 && second >= 16 && second <= 31) {
8615
+ throw new Error("SECURITY: Base URL resolves to private IP");
8616
+ }
8617
+ if (first !== void 0 && second !== void 0 && first === 192 && second === 168) {
8618
+ throw new Error("SECURITY: Base URL resolves to private IP");
8619
+ }
8620
+ if (first !== void 0 && second !== void 0 && first === 169 && second === 254) {
8621
+ throw new Error("SECURITY: Base URL resolves to private IP");
8622
+ }
8623
+ if (first !== void 0 && first === 0) {
8624
+ throw new Error("SECURITY: Base URL resolves to private IP");
8625
+ }
8626
+ }
8627
+ const cleanHostname = hostname.replace(/^\[|\]$/g, "");
8628
+ const ipVersion = net.isIP(cleanHostname);
8629
+ if (ipVersion === 6) {
8630
+ for (const prefix of BLOCKED_IPV6_PREFIXES) {
8631
+ if (cleanHostname.startsWith(prefix)) {
8632
+ throw new Error("SECURITY: Base URL resolves to private IP");
8633
+ }
8634
+ }
8635
+ if (cleanHostname.startsWith("::ffff:")) {
8636
+ const mapped = cleanHostname.slice("::ffff:".length);
8637
+ let octets = null;
8638
+ const decMatch = mapped.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/);
8639
+ if (decMatch) {
8640
+ octets = decMatch.slice(1, 5).map(Number);
8641
+ }
8642
+ const hexMatch = mapped.match(/^([0-9a-f]{1,4}):([0-9a-f]{1,4})$/i);
8643
+ if (!octets && hexMatch && hexMatch[1] !== void 0 && hexMatch[2] !== void 0) {
8644
+ const high = parseInt(hexMatch[1], 16);
8645
+ const low = parseInt(hexMatch[2], 16);
8646
+ octets = [high >> 8 & 255, high & 255, low >> 8 & 255, low & 255];
8647
+ }
8648
+ if (octets !== null) {
8649
+ const o0 = octets[0];
8650
+ const o1 = octets[1];
8651
+ if (o0 === 127 || // 127.0.0.0/8 loopback
8652
+ o0 === 10 || // 10.0.0.0/8 private
8653
+ o0 === 0 || // 0.0.0.0/8 current network
8654
+ o0 === 172 && o1 !== void 0 && o1 >= 16 && o1 <= 31 || // 172.16/12 private
8655
+ o0 === 192 && o1 === 168 || // 192.168/16 private
8656
+ o0 === 169 && o1 === 254) {
8657
+ throw new Error("SECURITY: Base URL resolves to private IP");
8658
+ }
8659
+ } else {
8660
+ throw new Error("SECURITY: Base URL resolves to unrecognisable IPv4-mapped address");
8661
+ }
8665
8662
  }
8666
8663
  }
8667
8664
  return url;
8668
8665
  }
8666
+ var isUrlSafe = validateUrlSafe;
8669
8667
  function validateEndpoint(endpoint) {
8670
8668
  if (endpoint.includes("..")) {
8671
- throw new Error("SSRF Prevention: Path traversal detected in endpoint");
8669
+ throw new Error("SECURITY: Path traversal detected in endpoint");
8672
8670
  }
8673
8671
  if (endpoint.includes("\\")) {
8674
- throw new Error("SSRF Prevention: Backslash detected in endpoint");
8672
+ throw new Error("SECURITY: Backslash detected in endpoint");
8675
8673
  }
8676
8674
  }
8677
8675
  function createOpenAPIFetcher(config) {
8678
8676
  const { baseUrl, endpoint, method = "get", params, body, headers = {}, auth, schema } = config;
8679
- const validatedBaseUrl = validateFetchUrl(baseUrl);
8677
+ const validatedBaseUrl = validateUrlSafe(baseUrl);
8680
8678
  validateEndpoint(endpoint);
8681
8679
  return async () => {
8682
8680
  const url = new URL(endpoint, validatedBaseUrl.toString());
@@ -8701,7 +8699,9 @@ function createOpenAPIFetcher(config) {
8701
8699
  const response = await fetch(url.toString(), {
8702
8700
  method: method.toUpperCase(),
8703
8701
  headers: requestHeaders,
8704
- body: supportsBody && body ? JSON.stringify(body) : void 0
8702
+ body: supportsBody && body ? JSON.stringify(body) : null,
8703
+ redirect: "error"
8704
+ // Prevent SSRF via 301/302 redirect to internal addresses
8705
8705
  });
8706
8706
  if (!response.ok) {
8707
8707
  const safeStatus = response.status;
@@ -8714,18 +8714,20 @@ function createOpenAPIFetcher(config) {
8714
8714
  return result;
8715
8715
  };
8716
8716
  }
8717
- // Annotate the CommonJS export names for ESM import in node:
8718
- 0 && (module.exports = {
8719
- ApprovedSpecsValidator,
8720
- ClientGenerator,
8721
- CollectionProviderGenerator,
8722
- EndpointFilter,
8723
- OpenAPICollectionProvider,
8724
- OpenAPIParser,
8725
- OpenAPIPlugin,
8726
- SchemaResolver,
8727
- TypeGenerator,
8728
- ZodSchemaGenerator,
8729
- createOpenAPIFetcher,
8730
- createOpenAPIPlugin
8731
- });
8717
+
8718
+ exports.ApprovedSpecsValidator = ApprovedSpecsValidator;
8719
+ exports.ClientGenerator = ClientGenerator;
8720
+ exports.CollectionProviderGenerator = CollectionProviderGenerator;
8721
+ exports.EndpointFilter = EndpointFilter;
8722
+ exports.OpenAPICollectionProvider = OpenAPICollectionProvider;
8723
+ exports.OpenAPIParser = OpenAPIParser;
8724
+ exports.OpenAPIPlugin = OpenAPIPlugin;
8725
+ exports.SchemaResolver = SchemaResolver;
8726
+ exports.TypeGenerator = TypeGenerator;
8727
+ exports.ZodSchemaGenerator = ZodSchemaGenerator;
8728
+ exports.createOpenAPIFetcher = createOpenAPIFetcher;
8729
+ exports.createOpenAPIPlugin = createOpenAPIPlugin;
8730
+ exports.isUrlSafe = isUrlSafe;
8731
+ exports.validateUrlSafe = validateUrlSafe;
8732
+ //# sourceMappingURL=index.js.map
8733
+ //# sourceMappingURL=index.js.map