@devbie/apits 0.0.0-stage → 1.0.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.
Files changed (51) hide show
  1. package/README.md +89 -2
  2. package/bin/apits +4 -0
  3. package/dist/cjs/core/cli.d.ts +29 -0
  4. package/dist/cjs/core/cli.js +396 -0
  5. package/dist/cjs/core/generator.d.ts +44 -0
  6. package/dist/cjs/core/generator.js +301 -0
  7. package/dist/cjs/core/writeRequestClient.d.ts +2 -0
  8. package/dist/cjs/core/writeRequestClient.js +93 -0
  9. package/dist/cjs/index.d.ts +2 -0
  10. package/dist/cjs/index.js +25 -0
  11. package/dist/cjs/types.d.ts +330 -0
  12. package/dist/cjs/types.js +90 -0
  13. package/dist/cjs/utils/console.d.ts +16 -0
  14. package/dist/cjs/utils/console.js +79 -0
  15. package/dist/cjs/utils/getOutputPath.d.ts +5 -0
  16. package/dist/cjs/utils/getOutputPath.js +43 -0
  17. package/dist/cjs/utils/helpers.d.ts +65 -0
  18. package/dist/cjs/utils/helpers.js +166 -0
  19. package/dist/cjs/utils/openApiToInterfaces.d.ts +14 -0
  20. package/dist/cjs/utils/openApiToInterfaces.js +229 -0
  21. package/dist/cjs/utils/spinner.d.ts +15 -0
  22. package/dist/cjs/utils/spinner.js +69 -0
  23. package/dist/cjs/utils/utils.d.ts +56 -0
  24. package/dist/cjs/utils/utils.js +355 -0
  25. package/dist/cjs/utils/vtilsLite.d.ts +55 -0
  26. package/dist/cjs/utils/vtilsLite.js +123 -0
  27. package/dist/esm/core/cli.d.mts +29 -0
  28. package/dist/esm/core/cli.mjs +713 -0
  29. package/dist/esm/core/generator.d.mts +44 -0
  30. package/dist/esm/core/generator.mjs +463 -0
  31. package/dist/esm/core/writeRequestClient.d.mts +2 -0
  32. package/dist/esm/core/writeRequestClient.mjs +54 -0
  33. package/dist/esm/index.d.mts +2 -0
  34. package/dist/esm/index.mjs +2 -0
  35. package/dist/esm/types.d.mts +330 -0
  36. package/dist/esm/types.mjs +94 -0
  37. package/dist/esm/utils/console.d.mts +16 -0
  38. package/dist/esm/utils/console.mjs +65 -0
  39. package/dist/esm/utils/getOutputPath.d.mts +5 -0
  40. package/dist/esm/utils/getOutputPath.mjs +12 -0
  41. package/dist/esm/utils/helpers.d.mts +65 -0
  42. package/dist/esm/utils/helpers.mjs +226 -0
  43. package/dist/esm/utils/openApiToInterfaces.d.mts +14 -0
  44. package/dist/esm/utils/openApiToInterfaces.mjs +326 -0
  45. package/dist/esm/utils/spinner.d.mts +15 -0
  46. package/dist/esm/utils/spinner.mjs +58 -0
  47. package/dist/esm/utils/utils.d.mts +56 -0
  48. package/dist/esm/utils/utils.mjs +545 -0
  49. package/dist/esm/utils/vtilsLite.d.mts +55 -0
  50. package/dist/esm/utils/vtilsLite.mjs +142 -0
  51. package/package.json +68 -4
@@ -0,0 +1,226 @@
1
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
2
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
3
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
5
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
6
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
7
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
8
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
9
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
10
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
11
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
13
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
14
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
15
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
16
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
18
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
19
+ /**
20
+ * Normalize user configuration into a config array and apply built-in
21
+ * defaults.
22
+ *
23
+ * Defaults:
24
+ * - `output` falls back to `src/api`.
25
+ * - `client` falls back to `true`, except when a custom
26
+ * `clientImportTemplate` is provided without an explicit `client` value —
27
+ * in that case the scaffolded client is skipped automatically, otherwise
28
+ * the generated `request.ts` would be dead code (the generated file
29
+ * imports the custom client instead).
30
+ *
31
+ * @param config Configuration
32
+ */
33
+ export function defineConfig(config) {
34
+ var configs = config instanceof Array ? config : [config];
35
+ var final = configs.map(function (item) {
36
+ var client = "client" in item ? item.client : item.clientImportTemplate ? false : true;
37
+ return _objectSpread({
38
+ output: "src/api",
39
+ client: client
40
+ }, item);
41
+ });
42
+ return final;
43
+ }
44
+ export var FileData = /*#__PURE__*/function () {
45
+ /**
46
+ * File data helper class, unified file upload for web, mini-program and other platforms.
47
+ *
48
+ * @param originalFileData Original file data
49
+ * @param options If using internal getFormData, options will be used by it
50
+ */
51
+ function FileData(originalFileData, options) {
52
+ _classCallCheck(this, FileData);
53
+ /**
54
+ * Original file data.
55
+ */
56
+ _defineProperty(this, "originalFileData", void 0);
57
+ /**
58
+ * Options.
59
+ */
60
+ _defineProperty(this, "options", void 0);
61
+ this.originalFileData = originalFileData;
62
+ this.options = options;
63
+ }
64
+
65
+ /**
66
+ * Get original file data.
67
+ *
68
+ * @returns Original file data
69
+ */
70
+ _createClass(FileData, [{
71
+ key: "getOriginalFileData",
72
+ value: function getOriginalFileData() {
73
+ return this.originalFileData;
74
+ }
75
+
76
+ /**
77
+ * Get options.
78
+ */
79
+ }, {
80
+ key: "getOptions",
81
+ value: function getOptions() {
82
+ return this.options;
83
+ }
84
+ }]);
85
+ return FileData;
86
+ }();
87
+
88
+ /**
89
+ * Parse request data, separating normal data and file data from request data.
90
+ *
91
+ * @param [requestData] Request data to parse
92
+ * @returns Object containing normal data (data) and file data (fileData), when data and fileData are empty objects, it means no such data exists
93
+ */
94
+ export function parseRequestData(requestData) {
95
+ var result = {
96
+ data: {},
97
+ fileData: {}
98
+ };
99
+ /* istanbul ignore else */
100
+ if (requestData != null) {
101
+ if (_typeof(requestData) === "object" && !Array.isArray(requestData)) {
102
+ Object.keys(requestData).forEach(function (key) {
103
+ if (requestData[key] && requestData[key] instanceof FileData) {
104
+ result.fileData[key] = requestData[key].getOriginalFileData();
105
+ } else {
106
+ result.data[key] = requestData[key];
107
+ }
108
+ });
109
+ } else {
110
+ result.data = requestData;
111
+ }
112
+ }
113
+ return result;
114
+ }
115
+
116
+ /**
117
+ * Prepare parameters to be passed to the request function.
118
+ */
119
+ export function prepare(requestConfig, requestData) {
120
+ var requestPath = requestConfig.path;
121
+ var _parseRequestData = parseRequestData(requestData),
122
+ data = _parseRequestData.data,
123
+ fileData = _parseRequestData.fileData;
124
+ var dataIsObject = data != null && _typeof(data) === "object" && !Array.isArray(data);
125
+ if (dataIsObject) {
126
+ // Replace path parameters
127
+ if (Array.isArray(requestConfig.paramNames) && requestConfig.paramNames.length > 0) {
128
+ Object.keys(data).forEach(function (key) {
129
+ if (requestConfig.paramNames.indexOf(key) >= 0) {
130
+ // ref: https://github.com/YMFE/yapi/blob/master/client/containers/Project/Interface/InterfaceList/InterfaceEditForm.js#L465
131
+ requestPath = requestPath.replace(new RegExp("\\{".concat(key, "\\}"), "g"), data[key]).replace(new RegExp("/:".concat(key, "(?=/|$)"), "g"), "/".concat(data[key]));
132
+ delete data[key];
133
+ }
134
+ });
135
+ }
136
+
137
+ // Append query parameters to path
138
+ var queryString = "";
139
+ if (Array.isArray(requestConfig.queryNames) && requestConfig.queryNames.length > 0) {
140
+ Object.keys(data).forEach(function (key) {
141
+ if (requestConfig.queryNames.indexOf(key) >= 0) {
142
+ if (data[key] != null) {
143
+ queryString += "".concat(queryString ? "&" : "").concat(encodeURIComponent(key), "=").concat(encodeURIComponent(data[key]));
144
+ }
145
+ delete data[key];
146
+ }
147
+ });
148
+ }
149
+ if (queryString) {
150
+ requestPath += "".concat(requestPath.indexOf("?") > -1 ? "&" : "?").concat(queryString);
151
+ }
152
+ }
153
+
154
+ // All data
155
+ var allData = _objectSpread(_objectSpread({}, dataIsObject ? data : {}), fileData);
156
+
157
+ // Get form data
158
+ var getFormData = function getFormData() {
159
+ var useNativeFormData = typeof FormData !== "undefined";
160
+ var useNodeFormData = !useNativeFormData &&
161
+ // https://github.com/fjc0k/vtils/blob/master/src/utils/inNodeJS.ts
162
+ (typeof global === "undefined" ? "undefined" : _typeof(global)) === "object" && _typeof(global.process) === "object" && _typeof(global.process.versions) === "object" && global.process.versions.node != null;
163
+ var UniFormData = useNativeFormData ? FormData : useNodeFormData ?
164
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
165
+ require("form-data") : undefined;
166
+ if (!UniFormData) {
167
+ throw new Error("FormData is not supported in the current environment");
168
+ }
169
+ var formData = new UniFormData();
170
+ Object.keys(data).forEach(function (key) {
171
+ formData.append(key, data[key]);
172
+ });
173
+ Object.keys(fileData).forEach(function (key) {
174
+ var options = requestData[key].getOptions();
175
+ formData.append(key, fileData[key], useNativeFormData ? options === null || options === void 0 ? void 0 : options.filename : options);
176
+ });
177
+ return formData;
178
+ };
179
+ return _objectSpread(_objectSpread({}, requestConfig), {}, {
180
+ path: requestPath,
181
+ rawData: requestData,
182
+ data: data,
183
+ hasFileData: fileData && Object.keys(fileData).length > 0,
184
+ fileData: fileData,
185
+ allData: allData,
186
+ getFormData: getFormData
187
+ });
188
+ }
189
+
190
+ /**
191
+ * Execute async function queue sequentially
192
+ * @param fns
193
+ * @param results
194
+ * @returns
195
+ */
196
+ export var asyncFnArrayOrderRun = /*#__PURE__*/function () {
197
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(fns, results) {
198
+ var res, res1;
199
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
200
+ while (1) switch (_context.prev = _context.next) {
201
+ case 0:
202
+ if (!fns.length) {
203
+ _context.next = 8;
204
+ break;
205
+ }
206
+ _context.next = 3;
207
+ return fns[0]();
208
+ case 3:
209
+ res = _context.sent;
210
+ _context.next = 6;
211
+ return asyncFnArrayOrderRun(fns.slice(1), [].concat(_toConsumableArray(results || []), [res]));
212
+ case 6:
213
+ res1 = _context.sent;
214
+ return _context.abrupt("return", res1);
215
+ case 8:
216
+ return _context.abrupt("return", results || []);
217
+ case 9:
218
+ case "end":
219
+ return _context.stop();
220
+ }
221
+ }, _callee);
222
+ }));
223
+ return function asyncFnArrayOrderRun(_x, _x2) {
224
+ return _ref.apply(this, arguments);
225
+ };
226
+ }();
@@ -0,0 +1,14 @@
1
+ import { OpenAPIV3 } from "openapi-types";
2
+ import { Interface } from "../types.mjs";
3
+ /**
4
+ * Convert an OpenAPI 3.x document into the internal `Interface[]` format.
5
+ *
6
+ * Reads OAS3 directly — no intermediate Swagger 2.0 `openapi3Format` step,
7
+ * no YApi platform fields (`_id`/`project_id`/`catid`/`add_time`/`up_time`),
8
+ * no module-level mutable state.
9
+ *
10
+ * @param data OpenAPI 3.x document (object or JSON string)
11
+ */
12
+ export declare function openApiToInterfaces(data: OpenAPIV3.Document | string): Promise<{
13
+ interfaces: Interface[];
14
+ }>;
@@ -0,0 +1,326 @@
1
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
2
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
3
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
4
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
7
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
8
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
9
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
10
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
11
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
12
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
13
+ import { RequestBodyType, RequestFormItemType, Required, ResponseBodyType } from "../types.mjs";
14
+ import { each, find } from "./vtilsLite.mjs";
15
+ import * as conso from "./console.mjs";
16
+ function handlePath(p) {
17
+ if (p === "/") return p;
18
+ if (p.charAt(0) !== "/") p = "/".concat(p);
19
+ if (p.charAt(p.length - 1) === "/") p = p.slice(0, -1);
20
+ return p;
21
+ }
22
+
23
+ /** Resolve a JSON `$ref` pointer (e.g. `#/components/parameters/Foo`) from the root spec. */
24
+ function resolveRef(ref, root) {
25
+ var _node;
26
+ if (!ref || typeof ref !== "string" || !ref.startsWith("#/") || ref.length <= 2) return null;
27
+ var parts = ref.slice(2).split("/").filter(Boolean);
28
+ var node = root;
29
+ var _iterator = _createForOfIteratorHelper(parts),
30
+ _step;
31
+ try {
32
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
33
+ var part = _step.value;
34
+ if (node == null) return null;
35
+ node = node[part];
36
+ }
37
+ } catch (err) {
38
+ _iterator.e(err);
39
+ } finally {
40
+ _iterator.f();
41
+ }
42
+ return (_node = node) !== null && _node !== void 0 ? _node : null;
43
+ }
44
+
45
+ /** Check whether a value is a `$ref` object (vs a concrete schema). */
46
+ function isRef(obj) {
47
+ return obj != null && _typeof(obj) === "object" && "$ref" in obj;
48
+ }
49
+
50
+ /**
51
+ * Process the OAS3 request body directly — no intermediate Swagger 2.0
52
+ * `parameters[]` with `in:'body'`/`in:'formData'`.
53
+ *
54
+ * - `application/json` → `req_body_other` (JSON-stringified schema) + `req_body_type='json'`
55
+ * - `multipart/form-data` / `application/x-www-form-urlencoded` → expand schema
56
+ * properties into `req_body_form` + `req_body_type='form'`
57
+ * - `additionalProperties` on a form schema → `req_body_additional`
58
+ */
59
+ function handleRequestBody(requestBody, api) {
60
+ if (!requestBody || _typeof(requestBody) !== "object") return;
61
+ var content = requestBody.content || {};
62
+ var jsonContent = content["application/json"];
63
+ if (jsonContent && jsonContent.schema) {
64
+ api.req_body_other = JSON.stringify(jsonContent.schema, null, 2);
65
+ api.req_body_type = RequestBodyType.json;
66
+ api.req_body_is_json_schema = true;
67
+ return;
68
+ }
69
+
70
+ // Form-encoded bodies: expand the schema into individual form fields so
71
+ // binary fields render as `file` and the request body type becomes `form`.
72
+ var multipartContent = content["multipart/form-data"];
73
+ var formContent = multipartContent || content["application/x-www-form-urlencoded"];
74
+ if (formContent && formContent.schema) {
75
+ var schema = formContent.schema;
76
+ // Skip $ref schemas (not resolvable in this context).
77
+ if (isRef(schema)) return;
78
+ var required = schema.required || [];
79
+ var props = schema.properties || {};
80
+ for (var _i = 0, _Object$keys = Object.keys(props); _i < _Object$keys.length; _i++) {
81
+ var name = _Object$keys[_i];
82
+ var prop = props[name] || {};
83
+ // Binary arrays (`type:'array', items:{format:'binary'}`) describe
84
+ // multi-file upload fields such as `files: File[]`. Swagger 2.0
85
+ // formData has no array-of-file concept, so the field is emitted
86
+ // as `type:'file'` with an `isArray` marker.
87
+ var arrayItems = Array.isArray(prop.items) ? prop.items[0] : prop.items;
88
+ var isFileArray = prop.type === "array" && arrayItems && arrayItems.format === "binary";
89
+ var isFile = prop.format === "binary" || isFileArray;
90
+ api.req_body_form.push(_objectSpread(_objectSpread({
91
+ name: name,
92
+ type: isFile ? RequestFormItemType.file : RequestFormItemType.text,
93
+ desc: prop.description || "",
94
+ example: "",
95
+ required: required.indexOf(name) > -1 ? Required.true : Required.false
96
+ }, isFileArray ? {
97
+ isArray: true
98
+ } : {}), Array.isArray(prop.enum) && prop.enum.length ? {
99
+ enum: prop.enum
100
+ } : {}));
101
+ }
102
+ // Dynamic upload fields declared via `additionalProperties` (e.g.
103
+ // evidence_0, evidence_1, ...). Their names are derived at runtime so
104
+ // they cannot be expanded into named form params.
105
+ if (schema.additionalProperties && _typeof(schema.additionalProperties) === "object") {
106
+ api.req_body_additional = schema.additionalProperties;
107
+ }
108
+ api.req_body_type = RequestBodyType.form;
109
+ api.req_body_multipart = !!multipartContent;
110
+ }
111
+ }
112
+
113
+ /**
114
+ * Process the OAS3 responses object directly — no intermediate Swagger 2.0
115
+ * pre-flattening of `res.content['application/json']` to `res.schema`.
116
+ *
117
+ * Reads `res.content` media types to determine whether a JSON schema exists.
118
+ */
119
+ function handleResponse(responses) {
120
+ if (!responses || _typeof(responses) !== "object") return {
121
+ body: "",
122
+ hasSchema: false
123
+ };
124
+ var codes = Object.keys(responses);
125
+ if (codes.length === 0) return {
126
+ body: "",
127
+ hasSchema: false
128
+ };
129
+ var curCode = codes.indexOf("200") > -1 ? "200" : codes[0];
130
+ var res = responses[curCode];
131
+ if (!res || _typeof(res) !== "object") {
132
+ return {
133
+ body: "",
134
+ hasSchema: false
135
+ };
136
+ }
137
+
138
+ // Skip $ref responses (not resolvable in this context).
139
+ if (isRef(res)) return {
140
+ body: "",
141
+ hasSchema: false
142
+ };
143
+ var content = res.content;
144
+ if (content && _typeof(content) === "object") {
145
+ // Prefer application/json, then hal+json, then */*.
146
+ var mediaType = content["application/json"] || content["application/hal+json"] || content["*/*"];
147
+ if (mediaType && mediaType.schema) {
148
+ return {
149
+ body: JSON.stringify(mediaType.schema, null, 2),
150
+ hasSchema: true
151
+ };
152
+ }
153
+ }
154
+
155
+ // No schema found — fall back to description.
156
+ if (res.description) return {
157
+ body: res.description,
158
+ hasSchema: false
159
+ };
160
+ return {
161
+ body: "",
162
+ hasSchema: false
163
+ };
164
+ }
165
+
166
+ /** Convert a single OAS3 path-item operation into an `Interface`. */
167
+ function handleOpenApiOperation(operation, path, method, originTags, root) {
168
+ var api = {
169
+ title: operation.summary || path,
170
+ path: handlePath(path),
171
+ method: method.toUpperCase(),
172
+ req_params: [],
173
+ req_body_form: [],
174
+ req_query: [],
175
+ req_body_type: RequestBodyType.raw,
176
+ req_body_is_json_schema: false,
177
+ req_body_other: "",
178
+ res_body_type: ResponseBodyType.raw,
179
+ res_body_is_json_schema: false,
180
+ res_body: ""
181
+ };
182
+
183
+ // Category from tags.
184
+ api.catname = null;
185
+ if (Array.isArray(operation.tags)) {
186
+ var _iterator2 = _createForOfIteratorHelper(operation.tags),
187
+ _step2;
188
+ try {
189
+ var _loop = function _loop() {
190
+ var tag = _step2.value;
191
+ if (/v[0-9.]+/.test(tag)) return 0; // continue
192
+ if (originTags.length > 0 && find(originTags, function (item) {
193
+ return item.name === tag;
194
+ })) {
195
+ api.catname = tag;
196
+ return 1; // break
197
+ }
198
+ if (originTags.length === 0) {
199
+ api.catname = tag;
200
+ return 1; // break
201
+ }
202
+ },
203
+ _ret;
204
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
205
+ _ret = _loop();
206
+ if (_ret === 0) continue;
207
+ if (_ret === 1) break;
208
+ }
209
+ } catch (err) {
210
+ _iterator2.e(err);
211
+ } finally {
212
+ _iterator2.f();
213
+ }
214
+ }
215
+
216
+ // Process OAS3 path/query/header parameters (native — no Swagger 2.0
217
+ // `in:'body'`/`in:'formData'` intermediates).
218
+ if (Array.isArray(operation.parameters)) {
219
+ var _iterator3 = _createForOfIteratorHelper(operation.parameters),
220
+ _step3;
221
+ try {
222
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
223
+ var param = _step3.value;
224
+ if (isRef(param)) {
225
+ param = resolveRef(param.$ref, root);
226
+ }
227
+ if (!param || _typeof(param) !== "object") continue;
228
+ var p = param;
229
+ var paramObj = {
230
+ name: p.name,
231
+ desc: p.description || "",
232
+ type: p.schema ? p.schema.type : p.type,
233
+ required: p.required ? Required.true : Required.false,
234
+ example: ""
235
+ };
236
+ switch (p.in) {
237
+ case "path":
238
+ api.req_params.push(paramObj);
239
+ break;
240
+ case "query":
241
+ api.req_query.push(paramObj);
242
+ break;
243
+ case "header":
244
+ // Headers are not consumed downstream; skip silently.
245
+ break;
246
+ default:
247
+ break;
248
+ }
249
+ }
250
+ } catch (err) {
251
+ _iterator3.e(err);
252
+ } finally {
253
+ _iterator3.f();
254
+ }
255
+ }
256
+
257
+ // Process the OAS3 request body directly.
258
+ var reqBody = operation.requestBody;
259
+ handleRequestBody(isRef(reqBody) ? undefined : reqBody, api);
260
+
261
+ // Process the OAS3 responses directly.
262
+ var _handleResponse = handleResponse(operation.responses),
263
+ resBody = _handleResponse.body,
264
+ hasSchema = _handleResponse.hasSchema;
265
+ api.res_body = resBody;
266
+ if (hasSchema) {
267
+ api.res_body_type = ResponseBodyType.json;
268
+ api.res_body_is_json_schema = true;
269
+ } else if (resBody) {
270
+ api.res_body_type = ResponseBodyType.raw;
271
+ }
272
+ return api;
273
+ }
274
+
275
+ /**
276
+ * Convert an OpenAPI 3.x document into the internal `Interface[]` format.
277
+ *
278
+ * Reads OAS3 directly — no intermediate Swagger 2.0 `openapi3Format` step,
279
+ * no YApi platform fields (`_id`/`project_id`/`catid`/`add_time`/`up_time`),
280
+ * no module-level mutable state.
281
+ *
282
+ * @param data OpenAPI 3.x document (object or JSON string)
283
+ */
284
+ export function openApiToInterfaces(_x) {
285
+ return _openApiToInterfaces.apply(this, arguments);
286
+ }
287
+ function _openApiToInterfaces() {
288
+ _openApiToInterfaces = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(data) {
289
+ var doc, tags, interfaces;
290
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
291
+ while (1) switch (_context.prev = _context.next) {
292
+ case 0:
293
+ if (typeof data === "string" && data) {
294
+ try {
295
+ data = JSON.parse(data);
296
+ } catch (e) {
297
+ conso.error("Failed to parse JSON: ".concat(e.message));
298
+ }
299
+ }
300
+ doc = data;
301
+ tags = Array.isArray(doc.tags) ? doc.tags : [];
302
+ interfaces = [];
303
+ each(doc.paths || {}, function (pathItem, path) {
304
+ // `parameters` at the path-item level are common parameters, not an operation.
305
+ delete pathItem.parameters;
306
+ each(pathItem, function (operation, method) {
307
+ if (!operation || _typeof(operation) !== "object") return;
308
+ try {
309
+ var iface = handleOpenApiOperation(operation, path, method, tags, doc);
310
+ interfaces.push(iface);
311
+ } catch (_unused) {
312
+ // Skip malformed operations silently.
313
+ }
314
+ });
315
+ });
316
+ return _context.abrupt("return", {
317
+ interfaces: interfaces
318
+ });
319
+ case 6:
320
+ case "end":
321
+ return _context.stop();
322
+ }
323
+ }, _callee);
324
+ }));
325
+ return _openApiToInterfaces.apply(this, arguments);
326
+ }
@@ -0,0 +1,15 @@
1
+ import { Ora } from "ora";
2
+ declare class Spin {
3
+ spinnerInstance: Ora;
4
+ constructor();
5
+ clear(): void;
6
+ start(text?: string): void;
7
+ succeed(text?: string): void;
8
+ fail(text?: string): void;
9
+ render(): void;
10
+ frame(): void;
11
+ info(text?: string): void;
12
+ stop(): void;
13
+ }
14
+ export declare const spinnerInstance: Spin;
15
+ export {};