@ductape/sdk 0.0.4-v53 → 0.0.4-v54

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.
@@ -27,6 +27,7 @@ class ImportService {
27
27
  await this.importPostmanV21(file, type, version, updateIfExists, app_id, isAdminImport);
28
28
  }
29
29
  else if (type === imports_types_1.ImportDocsTypes.openApiV30) {
30
+ console.log('Importing OpenAPI V3...');
30
31
  await this.importOpenAPIV3(file, type, version, updateIfExists, app_id, isAdminImport);
31
32
  }
32
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"imports.service.js","sourceRoot":"","sources":["../../src/imports/imports.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"imports.service.js","sourceRoot":"","sources":["../../src/imports/imports.service.ts"],"names":[],"mappings":";;;;;AAAA,+EAAqF;AAGrF,mDAAqE;AACrE,0CAA8D;AAG9D,mEAA+E;AAC/E,+EAAiG;AACjG,6DAA0E;AAI1E,uDAAqE;AAoBrE,MAAqB,aAAa;IAWhC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAgB;QAC9E,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,CAAC,cAAc,GAAG,gCAAc,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,4BAAa,CAAC;QAEnC,IAAI,CAAC,UAAU,GAAG,IAAI,qBAAiB,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAEhG,IAAI,CAAC,YAAY,GAAG,IAAI,0CAAmB,CAAC,QAAQ,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,GAAG,IAAI,8BAAa,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,SAAS,CACb,IAAY,EACZ,IAAqB,EACrB,UAAkB,OAAO,EACzB,iBAA0B,KAAK,EAC/B,SAAiB,IAAI,EACrB,gBAAyB,KAAK;QAE9B,IAAI,IAAI,KAAK,+BAAe,CAAC,UAAU,EAAE,CAAC;YACxC,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAC1F,CAAC;aAAM,IAAI,IAAI,KAAK,+BAAe,CAAC,UAAU,EAAE,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YACvC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,IAAY,EACZ,IAAqB,EACrB,OAAe,EACf,iBAA0B,KAAK,EAC/B,SAAiB,IAAI,EACrB,gBAAyB,KAAK;QAE9B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,aAAa,CAAC,CAAC;QAChH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,IAAY,EACZ,IAAqB,EACrB,OAAe,EACf,iBAA0B,KAAK,EAC/B,SAAiB,IAAI,EACrB,gBAAyB,KAAK;QAE9B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,aAAa,CAAC,CAAC;QAChH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,yBAAyB,CAAC,MAAc,EAAE,IAAgB,EAAE,MAAqB;QAC7F,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAClC,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAC1B,MAAM,EACN,gBAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAa,CAAC,MAAM,IAAK,KAAK,CAAwC,EACnG,IAAI,CAAC,aAAa,EAAE,CACrB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAEO,aAAa;QACnB,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;IACJ,CAAC;CACF;AAhGD,gCAgGC"}
@@ -1,4 +1,4 @@
1
- import { IFoldersAndActions, OpenAPIV3Document } from '../../types';
1
+ import { IFoldersAndActions, OpenAPIV3Document } from '../imports.types';
2
2
  import { IAppBuilderService } from '../../apps/services/app.service';
3
3
  export interface IOPenAPIV3Repo {
4
4
  fetchParsedItems(document: OpenAPIV3Document, appService: IAppBuilderService): Promise<IFoldersAndActions>;
@@ -1,55 +1,422 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.OpenAPIV3Repo = void 0;
4
- const postmanV21_repo_1 = require("./postmanV21.repo");
7
+ const bson_objectid_1 = __importDefault(require("bson-objectid"));
8
+ const enums_1 = require("../../types/enums");
9
+ const imports_utils_1 = require("../utils/imports.utils");
10
+ // HTTP methods in OpenAPI path items
11
+ const HTTP_METHODS = ['get', 'post', 'put', 'delete', 'patch', 'options', 'head', 'trace'];
5
12
  exports.OpenAPIV3Repo = {
6
13
  async fetchParsedItems(document, appService) {
7
- const postmanCollection = await this.convertToPostmanCollection(document);
8
- return postmanV21_repo_1.PostmanV21Repo.fetchParsedItems(postmanCollection.item, appService);
9
- },
10
- /*async convertToPostmanCollection(document: OpenAPIV3Document): Promise<PostmanCollectionV21> {
11
- const options: OpenAPIToPostman.Options = {
12
- requestNameSource: 'operationId' as any,
13
- collapseFolders: false,
14
- folderStrategy: 'Tags',
15
- schemaFaker: true,
16
- indentCharacter: 'Tab',
17
- requestParametersResolution: 'Example',
18
- optimizeConversion: true,
19
- stackLimit: 50,
20
- includeAuthInfoInExample: true
21
- };
22
-
23
- const input: OpenAPIToPostman.Input = {
24
- type: 'json',
25
- data: JSON.stringify(document)
26
- };
27
-
28
- return new Promise<PostmanCollectionV21>((resolve, reject) => {
29
- OpenAPIToPostman.convert(input, options, (err, conversionResult: any) => {
30
- if (err) {
31
- console.error('❌ Error in conversion:', err);
32
- return reject(err);
33
- }
34
-
35
- if (!conversionResult.result) {
36
- console.error('❌ Conversion failed:', conversionResult.reason);
37
- if (conversionResult.warnings) {
38
- console.warn('⚠️ Conversion warnings:', conversionResult.warnings);
39
- }
40
- return reject(new Error(conversionResult.reason));
41
- }
42
-
43
- const postmanCollection = conversionResult.output[0].data;
44
- postmanCollection.info.schema = 'https://schema.getpostman.com/json/collection/v2.1.0/collection.json';
45
-
46
- if (!postmanCollection.variable) {
47
- postmanCollection.variable = [];
48
- }
49
-
50
- resolve(postmanCollection);
14
+ const result = {
15
+ actions: [],
16
+ folders: [],
17
+ };
18
+ // Create folders based on tags
19
+ const tagFolderMap = new Map();
20
+ const defaultFolderId = new bson_objectid_1.default().toHexString();
21
+ // Create folders for each tag defined in the spec
22
+ if (document.tags && document.tags.length > 0) {
23
+ for (const tag of document.tags) {
24
+ const folderId = new bson_objectid_1.default().toHexString();
25
+ tagFolderMap.set(tag.name, folderId);
26
+ result.folders.push({
27
+ _id: folderId,
28
+ name: tag.name,
29
+ description: tag.description || '',
30
+ parent_id: null,
31
+ level: 0,
32
+ });
33
+ }
34
+ }
35
+ // Create a default folder for untagged operations
36
+ result.folders.push({
37
+ _id: defaultFolderId,
38
+ name: 'Default',
39
+ description: 'Untagged operations',
40
+ parent_id: null,
41
+ level: 0,
51
42
  });
52
- });
53
- },*/
43
+ // Process each path
44
+ for (const [path, pathItem] of Object.entries(document.paths)) {
45
+ if (!pathItem)
46
+ continue;
47
+ // Get path-level parameters
48
+ const pathParameters = pathItem.parameters || [];
49
+ // Process each HTTP method
50
+ for (const method of HTTP_METHODS) {
51
+ const operation = pathItem[method];
52
+ if (!operation)
53
+ continue;
54
+ // Determine folder based on tags
55
+ let folderId = defaultFolderId;
56
+ let folderLevel = 0;
57
+ if (operation.tags && operation.tags.length > 0) {
58
+ const tagName = operation.tags[0];
59
+ if (tagFolderMap.has(tagName)) {
60
+ folderId = tagFolderMap.get(tagName);
61
+ }
62
+ else {
63
+ // Create folder for this tag if not exists
64
+ const newFolderId = new bson_objectid_1.default().toHexString();
65
+ tagFolderMap.set(tagName, newFolderId);
66
+ result.folders.push({
67
+ _id: newFolderId,
68
+ name: tagName,
69
+ description: '',
70
+ parent_id: null,
71
+ level: 0,
72
+ });
73
+ folderId = newFolderId;
74
+ }
75
+ }
76
+ // Parse the operation into an action
77
+ const action = await parseOperation(path, method.toUpperCase(), operation, pathParameters, document, appService, folderId, folderLevel);
78
+ result.actions.push(action);
79
+ }
80
+ }
81
+ return result;
82
+ },
54
83
  };
84
+ /**
85
+ * Parse an OpenAPI operation into an IAppAction
86
+ */
87
+ async function parseOperation(path, method, operation, pathParameters, document, appService, folderId, folderLevel) {
88
+ // Combine path-level and operation-level parameters
89
+ const allParameters = [...pathParameters, ...(operation.parameters || [])];
90
+ // Resolve all parameters
91
+ const resolvedParams = allParameters.map(p => resolveRef(p, document));
92
+ // Separate parameters by location
93
+ const queryParams = resolvedParams.filter(p => p.in === 'query');
94
+ const headerParams = resolvedParams.filter(p => p.in === 'header');
95
+ const pathParams = resolvedParams.filter(p => p.in === 'path');
96
+ // Determine request type from requestBody
97
+ let requestType = enums_1.DataFormats.JSON;
98
+ const requestBody = operation.requestBody ? resolveRef(operation.requestBody, document) : null;
99
+ if (requestBody === null || requestBody === void 0 ? void 0 : requestBody.content) {
100
+ if (requestBody.content['multipart/form-data']) {
101
+ requestType = enums_1.DataFormats.FORMDATA;
102
+ }
103
+ else if (requestBody.content['application/x-www-form-urlencoded']) {
104
+ requestType = enums_1.DataFormats.URLENCODED;
105
+ }
106
+ else if (requestBody.content['application/json']) {
107
+ requestType = enums_1.DataFormats.JSON;
108
+ }
109
+ }
110
+ // Convert path to resource format (remove leading slash, keep path params as :param)
111
+ const resource = path.replace(/^\//, '').replace(/\{([^}]+)\}/g, ':$1');
112
+ // Parse body
113
+ const body = requestBody
114
+ ? await parseRequestBody(requestBody, requestType, document, appService)
115
+ : {};
116
+ // Parse headers
117
+ const headers = await parseHeaders(headerParams, operation.security, document, appService);
118
+ // Parse query parameters
119
+ const query = queryParams.length > 0
120
+ ? await parseQueryParams(queryParams, document, appService)
121
+ : {};
122
+ // Parse path parameters
123
+ const params = await appService.extractResourceData(resource);
124
+ // Parse responses
125
+ const responses = await parseResponses(operation.responses, document, appService);
126
+ const action = {
127
+ name: operation.summary || operation.operationId || `${method} ${path}`,
128
+ description: operation.description || '',
129
+ resource,
130
+ method,
131
+ request_type: requestType,
132
+ folder_id: folderId,
133
+ folder_level: folderLevel,
134
+ body,
135
+ headers,
136
+ query,
137
+ params: Object.assign({ type: enums_1.InputsTypes.JSON }, params.params),
138
+ responses,
139
+ };
140
+ return action;
141
+ }
142
+ /**
143
+ * Resolve a $ref to its actual definition
144
+ */
145
+ function resolveRef(item, document) {
146
+ if (!item || typeof item !== 'object')
147
+ return item;
148
+ if ('$ref' in item && typeof item.$ref === 'string') {
149
+ const refPath = item.$ref;
150
+ // Handle #/components/... references
151
+ if (refPath.startsWith('#/')) {
152
+ const parts = refPath.slice(2).split('/');
153
+ let resolved = document;
154
+ for (const part of parts) {
155
+ resolved = resolved === null || resolved === void 0 ? void 0 : resolved[part];
156
+ }
157
+ return resolved;
158
+ }
159
+ }
160
+ return item;
161
+ }
162
+ /**
163
+ * Generate a sample value from an OpenAPI schema
164
+ */
165
+ function generateSampleFromSchema(schema, document, depth = 0) {
166
+ if (!schema || depth > 10)
167
+ return null;
168
+ const resolved = resolveRef(schema, document);
169
+ if (!resolved)
170
+ return null;
171
+ // Use example if provided
172
+ if (resolved.example !== undefined)
173
+ return resolved.example;
174
+ if (resolved.default !== undefined)
175
+ return resolved.default;
176
+ // Handle enum
177
+ if (resolved.enum && resolved.enum.length > 0) {
178
+ return resolved.enum[0];
179
+ }
180
+ // Handle type
181
+ const type = Array.isArray(resolved.type) ? resolved.type[0] : resolved.type;
182
+ switch (type) {
183
+ case 'string':
184
+ if (resolved.format === 'date')
185
+ return '2024-01-15';
186
+ if (resolved.format === 'date-time')
187
+ return '2024-01-15T10:30:00Z';
188
+ if (resolved.format === 'email')
189
+ return 'user@example.com';
190
+ if (resolved.format === 'uri' || resolved.format === 'url')
191
+ return 'https://example.com';
192
+ if (resolved.format === 'uuid')
193
+ return '123e4567-e89b-12d3-a456-426614174000';
194
+ return 'string';
195
+ case 'number':
196
+ case 'integer':
197
+ if (resolved.minimum !== undefined)
198
+ return resolved.minimum;
199
+ return 0;
200
+ case 'boolean':
201
+ return true;
202
+ case 'array':
203
+ if (resolved.items) {
204
+ const itemSample = generateSampleFromSchema(resolved.items, document, depth + 1);
205
+ return itemSample !== null ? [itemSample] : [];
206
+ }
207
+ return [];
208
+ case 'object':
209
+ const obj = {};
210
+ if (resolved.properties) {
211
+ for (const [propName, propSchema] of Object.entries(resolved.properties)) {
212
+ obj[propName] = generateSampleFromSchema(propSchema, document, depth + 1);
213
+ }
214
+ }
215
+ return obj;
216
+ default:
217
+ // Handle allOf, oneOf, anyOf
218
+ if (resolved.allOf && resolved.allOf.length > 0) {
219
+ const merged = {};
220
+ for (const subSchema of resolved.allOf) {
221
+ const subSample = generateSampleFromSchema(subSchema, document, depth + 1);
222
+ if (typeof subSample === 'object' && subSample !== null) {
223
+ Object.assign(merged, subSample);
224
+ }
225
+ }
226
+ return merged;
227
+ }
228
+ if (resolved.oneOf && resolved.oneOf.length > 0) {
229
+ return generateSampleFromSchema(resolved.oneOf[0], document, depth + 1);
230
+ }
231
+ if (resolved.anyOf && resolved.anyOf.length > 0) {
232
+ return generateSampleFromSchema(resolved.anyOf[0], document, depth + 1);
233
+ }
234
+ return null;
235
+ }
236
+ }
237
+ /**
238
+ * Parse request body into ISample
239
+ */
240
+ async function parseRequestBody(requestBody, requestType, document, appService) {
241
+ var _a;
242
+ let mediaType;
243
+ let inputType = enums_1.InputsTypes.JSON;
244
+ if (requestType === enums_1.DataFormats.FORMDATA && requestBody.content['multipart/form-data']) {
245
+ mediaType = requestBody.content['multipart/form-data'];
246
+ inputType = enums_1.InputsTypes.FORMDATA;
247
+ }
248
+ else if (requestType === enums_1.DataFormats.URLENCODED && requestBody.content['application/x-www-form-urlencoded']) {
249
+ mediaType = requestBody.content['application/x-www-form-urlencoded'];
250
+ inputType = enums_1.InputsTypes.URLENCODED;
251
+ }
252
+ else if (requestBody.content['application/json']) {
253
+ mediaType = requestBody.content['application/json'];
254
+ inputType = enums_1.InputsTypes.JSON;
255
+ }
256
+ else {
257
+ // Take the first available content type
258
+ const contentTypes = Object.keys(requestBody.content);
259
+ if (contentTypes.length > 0) {
260
+ mediaType = requestBody.content[contentTypes[0]];
261
+ }
262
+ }
263
+ if (!mediaType) {
264
+ return {
265
+ type: inputType,
266
+ sample: {},
267
+ };
268
+ }
269
+ // Generate sample from schema or use provided example
270
+ let sample;
271
+ if (mediaType.example !== undefined) {
272
+ sample = mediaType.example;
273
+ }
274
+ else if (mediaType.examples) {
275
+ const firstExample = Object.values(mediaType.examples)[0];
276
+ if (firstExample) {
277
+ const resolved = resolveRef(firstExample, document);
278
+ sample = (_a = resolved === null || resolved === void 0 ? void 0 : resolved.value) !== null && _a !== void 0 ? _a : resolved;
279
+ }
280
+ }
281
+ else if (mediaType.schema) {
282
+ sample = generateSampleFromSchema(mediaType.schema, document);
283
+ }
284
+ const data = {
285
+ type: inputType,
286
+ sample: sample || {},
287
+ };
288
+ // Extract key descriptions from schema
289
+ const keyDescriptions = [];
290
+ if (mediaType.schema) {
291
+ const schema = resolveRef(mediaType.schema, document);
292
+ if (schema === null || schema === void 0 ? void 0 : schema.properties) {
293
+ for (const [key, propSchema] of Object.entries(schema.properties)) {
294
+ const prop = resolveRef(propSchema, document);
295
+ if (prop === null || prop === void 0 ? void 0 : prop.description) {
296
+ keyDescriptions.push({ key, description: prop.description });
297
+ }
298
+ }
299
+ }
300
+ }
301
+ return appService.parseRequestData(enums_1.Categories.BODY, data, keyDescriptions);
302
+ }
303
+ /**
304
+ * Parse header parameters into ISample
305
+ */
306
+ async function parseHeaders(headerParams, security, document, appService) {
307
+ var _a, _b;
308
+ const headers = {};
309
+ const keyDescriptions = [];
310
+ for (const param of headerParams) {
311
+ const sample = (_a = param.example) !== null && _a !== void 0 ? _a : (param.schema ? generateSampleFromSchema(param.schema, document) : 'value');
312
+ headers[param.name] = sample;
313
+ if (param.description) {
314
+ keyDescriptions.push({ key: param.name, description: param.description });
315
+ }
316
+ }
317
+ // Add Authorization header if security is defined
318
+ if (security && security.length > 0 && ((_b = document.components) === null || _b === void 0 ? void 0 : _b.securitySchemes)) {
319
+ const securityScheme = Object.values(document.components.securitySchemes)[0];
320
+ if (securityScheme) {
321
+ const resolved = resolveRef(securityScheme, document);
322
+ if ((resolved === null || resolved === void 0 ? void 0 : resolved.type) === 'http' && (resolved === null || resolved === void 0 ? void 0 : resolved.scheme) === 'bearer') {
323
+ headers['Authorization'] = '{{Bearer Token}}';
324
+ keyDescriptions.push({ key: 'Authorization', description: 'Bearer authentication token' });
325
+ }
326
+ else if ((resolved === null || resolved === void 0 ? void 0 : resolved.type) === 'apiKey' && (resolved === null || resolved === void 0 ? void 0 : resolved.in) === 'header') {
327
+ headers[resolved.name] = '{{API Key}}';
328
+ keyDescriptions.push({ key: resolved.name, description: resolved.description || 'API Key' });
329
+ }
330
+ else if ((resolved === null || resolved === void 0 ? void 0 : resolved.type) === 'oauth2') {
331
+ headers['Authorization'] = '{{OAuth Token}}';
332
+ keyDescriptions.push({ key: 'Authorization', description: 'OAuth 2.0 token' });
333
+ }
334
+ }
335
+ }
336
+ const data = {
337
+ type: enums_1.InputsTypes.JSON,
338
+ sample: headers,
339
+ };
340
+ return appService.parseRequestData(enums_1.Categories.HEADER, data, keyDescriptions);
341
+ }
342
+ /**
343
+ * Parse query parameters into ISample
344
+ */
345
+ async function parseQueryParams(queryParams, document, appService) {
346
+ var _a;
347
+ const query = {};
348
+ const keyDescriptions = [];
349
+ for (const param of queryParams) {
350
+ const sample = (_a = param.example) !== null && _a !== void 0 ? _a : (param.schema ? generateSampleFromSchema(param.schema, document) : 'value');
351
+ query[param.name] = sample;
352
+ if (param.description) {
353
+ keyDescriptions.push({ key: param.name, description: param.description });
354
+ }
355
+ }
356
+ const data = {
357
+ type: enums_1.InputsTypes.JSON,
358
+ sample: query,
359
+ };
360
+ return appService.parseRequestData(enums_1.Categories.QUERY, data, keyDescriptions);
361
+ }
362
+ /**
363
+ * Parse responses into IAppActionResponseInfo[]
364
+ */
365
+ async function parseResponses(responses, document, appService) {
366
+ var _a;
367
+ const parsedResponses = [];
368
+ for (const [statusCode, responseRef] of Object.entries(responses)) {
369
+ if (!responseRef || statusCode === 'default')
370
+ continue;
371
+ const response = resolveRef(responseRef, document);
372
+ const code = parseInt(statusCode, 10);
373
+ const isSuccess = code >= 200 && code < 300;
374
+ // Determine response format and extract sample
375
+ let responseFormat = enums_1.DataFormats.JSON;
376
+ let sample = {};
377
+ if (response.content) {
378
+ if (response.content['application/json']) {
379
+ const mediaType = response.content['application/json'];
380
+ responseFormat = enums_1.DataFormats.JSON;
381
+ if (mediaType.example !== undefined) {
382
+ sample = mediaType.example;
383
+ }
384
+ else if (mediaType.examples) {
385
+ const firstExample = Object.values(mediaType.examples)[0];
386
+ if (firstExample) {
387
+ const resolved = resolveRef(firstExample, document);
388
+ sample = (_a = resolved === null || resolved === void 0 ? void 0 : resolved.value) !== null && _a !== void 0 ? _a : resolved;
389
+ }
390
+ }
391
+ else if (mediaType.schema) {
392
+ sample = generateSampleFromSchema(mediaType.schema, document);
393
+ }
394
+ }
395
+ else if (response.content['text/html']) {
396
+ responseFormat = enums_1.DataFormats.HTML;
397
+ sample = '<html></html>';
398
+ }
399
+ }
400
+ const body = {
401
+ type: enums_1.InputsTypes.JSON,
402
+ status_code: statusCode,
403
+ sample: sample || {},
404
+ };
405
+ parsedResponses.push({
406
+ name: response.description || `${statusCode} Response`,
407
+ response_format: responseFormat,
408
+ status_code: statusCode,
409
+ is_status_code_success: isSuccess,
410
+ success: isSuccess,
411
+ body,
412
+ });
413
+ }
414
+ // Generate tags for responses
415
+ const taggedResponses = (0, imports_utils_1.generateActionTags)(parsedResponses);
416
+ // Process each response through appService
417
+ const processedResponses = await Promise.all(taggedResponses.map(async (response) => {
418
+ return await appService.parseResponsePayload(response);
419
+ }));
420
+ return processedResponses;
421
+ }
55
422
  //# sourceMappingURL=openApi.repo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openApi.repo.js","sourceRoot":"","sources":["../../../src/imports/repos/openApi.repo.ts"],"names":[],"mappings":";;;AAGA,uDAAmD;AAQtC,QAAA,aAAa,GAAmB;IAC3C,KAAK,CAAC,gBAAgB,CAAC,QAA2B,EAAE,UAA8B;QAChF,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QAC1E,OAAO,gCAAc,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC7E,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA2CI;CACL,CAAC"}
1
+ {"version":3,"file":"openApi.repo.js","sourceRoot":"","sources":["../../../src/imports/repos/openApi.repo.ts"],"names":[],"mappings":"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"}