@trapi/swagger 0.3.8 → 1.0.0-alpha.11

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 (154) hide show
  1. package/dist/config/index.d.ts +3 -0
  2. package/dist/config/index.d.ts.map +1 -0
  3. package/dist/config/index.js +25 -0
  4. package/dist/config/index.js.map +1 -0
  5. package/dist/config/type.d.ts +83 -0
  6. package/dist/config/type.d.ts.map +1 -0
  7. package/dist/config/type.js +9 -0
  8. package/dist/config/type.js.map +1 -0
  9. package/dist/config/utils.d.ts +3 -0
  10. package/dist/config/utils.d.ts.map +1 -0
  11. package/dist/config/utils.js +54 -0
  12. package/dist/config/utils.js.map +1 -0
  13. package/dist/constants.d.ts +15 -0
  14. package/dist/constants.d.ts.map +1 -0
  15. package/dist/constants.js +27 -0
  16. package/dist/constants.js.map +1 -0
  17. package/dist/generator/abstract.d.ts +35 -0
  18. package/dist/generator/abstract.d.ts.map +1 -0
  19. package/dist/generator/abstract.js +252 -0
  20. package/dist/generator/abstract.js.map +1 -0
  21. package/dist/{specification → generator}/index.d.ts +0 -2
  22. package/dist/generator/index.d.ts.map +1 -0
  23. package/dist/{specification → generator}/index.js +1 -3
  24. package/dist/generator/index.js.map +1 -0
  25. package/dist/generator/module.d.ts +14 -0
  26. package/dist/generator/module.d.ts.map +1 -0
  27. package/dist/generator/module.js +35 -0
  28. package/dist/generator/module.js.map +1 -0
  29. package/dist/generator/v2/index.d.ts +2 -0
  30. package/dist/generator/v2/index.d.ts.map +1 -0
  31. package/dist/{specification/utils → generator/v2}/index.js +2 -2
  32. package/dist/generator/v2/index.js.map +1 -0
  33. package/dist/generator/v2/module.d.ts +25 -0
  34. package/dist/generator/v2/module.d.ts.map +1 -0
  35. package/dist/generator/v2/module.js +517 -0
  36. package/dist/generator/v2/module.js.map +1 -0
  37. package/dist/generator/v3/index.d.ts +2 -0
  38. package/dist/generator/v3/index.d.ts.map +1 -0
  39. package/dist/generator/v3/index.js +24 -0
  40. package/dist/generator/v3/index.js.map +1 -0
  41. package/dist/generator/v3/module.d.ts +30 -0
  42. package/dist/generator/v3/module.d.ts.map +1 -0
  43. package/dist/generator/v3/module.js +499 -0
  44. package/dist/generator/v3/module.js.map +1 -0
  45. package/dist/index.d.ts +4 -2
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +4 -2
  48. package/dist/index.js.map +1 -1
  49. package/dist/metadata.d.ts +3 -4
  50. package/dist/metadata.d.ts.map +1 -1
  51. package/dist/metadata.js +3 -15
  52. package/dist/metadata.js.map +1 -1
  53. package/dist/schema/constants.d.ts +28 -0
  54. package/dist/schema/constants.d.ts.map +1 -0
  55. package/dist/schema/constants.js +40 -0
  56. package/dist/schema/constants.js.map +1 -0
  57. package/dist/schema/index.d.ts +5 -0
  58. package/dist/schema/index.d.ts.map +1 -0
  59. package/dist/schema/index.js +27 -0
  60. package/dist/schema/index.js.map +1 -0
  61. package/dist/schema/type.d.ts +139 -0
  62. package/dist/schema/type.d.ts.map +1 -0
  63. package/dist/schema/type.js.map +1 -0
  64. package/dist/schema/v2/constants.d.ts +8 -0
  65. package/dist/schema/v2/constants.d.ts.map +1 -0
  66. package/dist/schema/v2/constants.js +18 -0
  67. package/dist/schema/v2/constants.js.map +1 -0
  68. package/dist/schema/v2/index.d.ts +3 -0
  69. package/dist/schema/v2/index.d.ts.map +1 -0
  70. package/dist/{specification/v3 → schema/v2}/index.js +1 -1
  71. package/dist/schema/v2/index.js.map +1 -0
  72. package/dist/schema/v2/type.d.ts +116 -0
  73. package/dist/schema/v2/type.d.ts.map +1 -0
  74. package/dist/schema/v2/type.js.map +1 -0
  75. package/dist/schema/v3/constants.d.ts +7 -0
  76. package/dist/schema/v3/constants.d.ts.map +1 -0
  77. package/dist/schema/v3/constants.js +17 -0
  78. package/dist/schema/v3/constants.js.map +1 -0
  79. package/dist/schema/v3/index.d.ts +3 -0
  80. package/dist/schema/v3/index.d.ts.map +1 -0
  81. package/dist/{specification/v2 → schema/v3}/index.js +1 -1
  82. package/dist/schema/v3/index.js.map +1 -0
  83. package/dist/schema/v3/type.d.ts +159 -0
  84. package/dist/schema/v3/type.d.ts.map +1 -0
  85. package/dist/schema/v3/type.js +9 -0
  86. package/dist/schema/v3/type.js.map +1 -0
  87. package/dist/type.d.ts +44 -2
  88. package/dist/type.d.ts.map +1 -1
  89. package/dist/utils/character.d.ts +3 -0
  90. package/dist/utils/character.d.ts.map +1 -0
  91. package/dist/{specification/utils → utils}/character.js +4 -5
  92. package/dist/utils/character.js.map +1 -0
  93. package/dist/utils/index.d.ts +2 -1
  94. package/dist/utils/index.d.ts.map +1 -1
  95. package/dist/utils/index.js +2 -1
  96. package/dist/utils/index.js.map +1 -1
  97. package/dist/utils/object.d.ts.map +1 -1
  98. package/dist/utils/object.js +1 -0
  99. package/dist/utils/object.js.map +1 -1
  100. package/dist/utils/value.d.ts +2 -0
  101. package/dist/utils/value.d.ts.map +1 -0
  102. package/dist/utils/value.js +26 -0
  103. package/dist/utils/value.js.map +1 -0
  104. package/package.json +7 -10
  105. package/dist/module.d.ts +0 -8
  106. package/dist/module.d.ts.map +0 -1
  107. package/dist/module.js +0 -31
  108. package/dist/module.js.map +0 -1
  109. package/dist/specification/abstract.d.ts +0 -29
  110. package/dist/specification/abstract.d.ts.map +0 -1
  111. package/dist/specification/abstract.js +0 -226
  112. package/dist/specification/abstract.js.map +0 -1
  113. package/dist/specification/index.d.ts.map +0 -1
  114. package/dist/specification/index.js.map +0 -1
  115. package/dist/specification/module.d.ts +0 -5
  116. package/dist/specification/module.d.ts.map +0 -1
  117. package/dist/specification/module.js +0 -29
  118. package/dist/specification/module.js.map +0 -1
  119. package/dist/specification/type.d.ts +0 -268
  120. package/dist/specification/type.d.ts.map +0 -1
  121. package/dist/specification/type.js +0 -18
  122. package/dist/specification/type.js.map +0 -1
  123. package/dist/specification/utils/character.d.ts +0 -3
  124. package/dist/specification/utils/character.d.ts.map +0 -1
  125. package/dist/specification/utils/character.js.map +0 -1
  126. package/dist/specification/utils/index.d.ts +0 -2
  127. package/dist/specification/utils/index.d.ts.map +0 -1
  128. package/dist/specification/utils/index.js.map +0 -1
  129. package/dist/specification/v2/index.d.ts +0 -3
  130. package/dist/specification/v2/index.d.ts.map +0 -1
  131. package/dist/specification/v2/index.js.map +0 -1
  132. package/dist/specification/v2/module.d.ts +0 -24
  133. package/dist/specification/v2/module.d.ts.map +0 -1
  134. package/dist/specification/v2/module.js +0 -389
  135. package/dist/specification/v2/module.js.map +0 -1
  136. package/dist/specification/v2/type.d.ts +0 -79
  137. package/dist/specification/v2/type.d.ts.map +0 -1
  138. package/dist/specification/v2/type.js.map +0 -1
  139. package/dist/specification/v3/index.d.ts +0 -3
  140. package/dist/specification/v3/index.d.ts.map +0 -1
  141. package/dist/specification/v3/index.js.map +0 -1
  142. package/dist/specification/v3/module.d.ts +0 -25
  143. package/dist/specification/v3/module.d.ts.map +0 -1
  144. package/dist/specification/v3/module.js +0 -377
  145. package/dist/specification/v3/module.js.map +0 -1
  146. package/dist/specification/v3/type.d.ts +0 -121
  147. package/dist/specification/v3/type.d.ts.map +0 -1
  148. package/dist/specification/v3/type.js.map +0 -1
  149. package/dist/utils/package-json.d.ts +0 -3
  150. package/dist/utils/package-json.d.ts.map +0 -1
  151. package/dist/utils/package-json.js +0 -35
  152. package/dist/utils/package-json.js.map +0 -1
  153. /package/dist/{specification/v2 → schema}/type.js +0 -0
  154. /package/dist/{specification/v3 → schema/v2}/type.js +0 -0
@@ -1,377 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright (c) 2021.
4
- * Author Peter Placzek (tada5hi)
5
- * For the full copyright and license information,
6
- * view the LICENSE file that was distributed with this source code.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.Version3SpecGenerator = void 0;
10
- const decorators_1 = require("@trapi/decorators");
11
- const url_1 = require("url");
12
- const smob_1 = require("smob");
13
- const utils_1 = require("../../utils");
14
- const utils_2 = require("../utils");
15
- const abstract_1 = require("../abstract");
16
- class Version3SpecGenerator extends abstract_1.AbstractSpecGenerator {
17
- getSwaggerSpec() {
18
- return this.build();
19
- }
20
- build() {
21
- if (typeof this.spec !== 'undefined') {
22
- return this.spec;
23
- }
24
- let spec = {
25
- components: this.buildComponents(),
26
- info: this.buildInfo(),
27
- openapi: '3.0.0',
28
- paths: this.buildPaths(),
29
- servers: this.buildServers(),
30
- tags: [],
31
- };
32
- if (this.config.specificationExtra) {
33
- spec = (0, smob_1.merge)(spec, this.config.specificationExtra);
34
- }
35
- return spec;
36
- }
37
- buildComponents() {
38
- const components = {
39
- examples: {},
40
- headers: {},
41
- parameters: {},
42
- requestBodies: {},
43
- responses: {},
44
- schemas: this.buildSchema(),
45
- securitySchemes: {},
46
- };
47
- if (this.config.securityDefinitions) {
48
- components.securitySchemes = Version3SpecGenerator.translateSecurityDefinitions(this.config.securityDefinitions);
49
- }
50
- return components;
51
- }
52
- static translateSecurityDefinitions(securityDefinitions) {
53
- const security = {};
54
- // tslint:disable-next-line:forin
55
- const keys = Object.keys(securityDefinitions);
56
- for (let i = 0; i < keys.length; i++) {
57
- const securityDefinition = securityDefinitions[keys[i]];
58
- switch (securityDefinition.type) {
59
- case 'http':
60
- security[keys[i]] = securityDefinition;
61
- break;
62
- case 'oauth2':
63
- security[keys[i]] = securityDefinition;
64
- break;
65
- case 'apiKey':
66
- security[keys[i]] = securityDefinition;
67
- break;
68
- }
69
- }
70
- return security;
71
- }
72
- buildPaths() {
73
- const paths = {};
74
- this.metadata.controllers.forEach((controller) => {
75
- // construct documentation using all methods except @Hidden
76
- controller.methods
77
- .filter((method) => !method.hidden)
78
- .forEach((method) => {
79
- let path = (0, utils_2.removeFinalCharacter)((0, utils_2.removeRepeatingCharacter)(`/${controller.path}/${method.path}`, '/'), '/');
80
- path = (0, utils_1.normalizePathParameters)(path);
81
- paths[path] = paths[path] || {};
82
- this.buildMethod(controller.name, method, paths[path]);
83
- });
84
- });
85
- return paths;
86
- }
87
- buildMethod(controllerName, method, pathObject) {
88
- const operation = this.buildOperation(controllerName, method);
89
- if (typeof pathObject === 'object') {
90
- pathObject[method.method] = operation;
91
- }
92
- const pathMethod = operation;
93
- pathMethod.description = method.description;
94
- pathMethod.summary = method.summary;
95
- pathMethod.tags = method.tags;
96
- // Use operationId tag otherwise fallback to generated. Warning: This doesn't check uniqueness.
97
- pathMethod.operationId = method.operationId || pathMethod.operationId;
98
- if (method.deprecated) {
99
- pathMethod.deprecated = method.deprecated;
100
- }
101
- if (method.security) {
102
- pathMethod.security = method.security;
103
- }
104
- const bodyParams = method.parameters.filter((p) => p.in === 'body');
105
- const formParams = method.parameters.filter((p) => p.in === 'formData');
106
- pathMethod.parameters = method.parameters
107
- .filter((p) => ['body', 'formData', 'request', 'body-prop', 'res'].indexOf(p.in) === -1)
108
- .map((p) => this.buildParameter(p));
109
- if (bodyParams.length > 1) {
110
- throw new Error('Only one body parameter allowed per controller method.');
111
- }
112
- if (bodyParams.length > 0 && formParams.length > 0) {
113
- throw new Error('Either body parameter or form parameters allowed per controller method - not both.');
114
- }
115
- if (bodyParams.length > 0) {
116
- pathMethod.requestBody = this.buildRequestBody(bodyParams[0]);
117
- }
118
- else if (formParams.length > 0) {
119
- pathMethod.requestBody = this.buildRequestBodyWithFormData(formParams);
120
- }
121
- for (let i = 0; i < method.extensions.length; i++) {
122
- pathMethod[method.extensions[i].key] = method.extensions[i].value;
123
- }
124
- }
125
- buildRequestBodyWithFormData(parameters) {
126
- const required = [];
127
- const properties = {};
128
- const keys = Object.keys(parameters);
129
- for (let i = 0; i < parameters.length; i++) {
130
- const mediaType = this.buildMediaType(parameters[keys[i]]);
131
- properties[parameters[keys[i]].name] = mediaType.schema;
132
- if (parameters[keys[i]].required) {
133
- required.push(parameters[keys[i]].name);
134
- }
135
- }
136
- return {
137
- required: required.length > 0,
138
- content: {
139
- 'multipart/form-data': {
140
- schema: Object.assign({ type: 'object', properties }, (required && required.length && { required })),
141
- },
142
- },
143
- };
144
- }
145
- buildRequestBody(parameter) {
146
- const mediaType = this.buildMediaType(parameter);
147
- return {
148
- description: parameter.description,
149
- required: parameter.required,
150
- content: {
151
- 'application/json': mediaType,
152
- },
153
- };
154
- }
155
- buildMediaType(parameter) {
156
- const mediaType = {
157
- schema: this.getSwaggerType(parameter.type),
158
- };
159
- this.buildFromParameterExamples(mediaType, parameter);
160
- return mediaType;
161
- }
162
- buildOperation(controllerName, method) {
163
- const swaggerResponses = {};
164
- method.responses.forEach((res) => {
165
- var _a;
166
- const name = (_a = res.status) !== null && _a !== void 0 ? _a : 'default';
167
- // no string key
168
- swaggerResponses[name] = {
169
- description: res.description,
170
- };
171
- if (res.schema && !(0, decorators_1.isVoidType)(res.schema)) {
172
- const contentKey = 'application/json';
173
- swaggerResponses[name].content = {
174
- [contentKey]: {
175
- schema: this.getSwaggerType(res.schema),
176
- },
177
- };
178
- if (res.examples) {
179
- swaggerResponses[name].content[contentKey].examples = {
180
- default: {
181
- value: res.examples,
182
- },
183
- };
184
- }
185
- }
186
- if (res.headers) {
187
- const headers = {};
188
- if (res.headers.typeName === 'refObject') {
189
- headers[res.headers.refName] = {
190
- schema: this.getSwaggerTypeForReferenceType(res.headers),
191
- description: res.headers.description,
192
- };
193
- }
194
- else if (res.headers.typeName === 'nestedObjectLiteral') {
195
- res.headers.properties.forEach((each) => {
196
- headers[each.name] = {
197
- schema: this.getSwaggerType(each.type),
198
- description: each.description,
199
- required: each.required,
200
- };
201
- });
202
- }
203
- swaggerResponses[res.name].headers = headers;
204
- }
205
- });
206
- return {
207
- operationId: this.getOperationId(method.name),
208
- responses: swaggerResponses,
209
- };
210
- }
211
- buildParameter(source) {
212
- const parameter = {
213
- description: source.description,
214
- in: source.in,
215
- name: source.name,
216
- required: source.required,
217
- schema: {
218
- default: source.default,
219
- format: undefined,
220
- },
221
- };
222
- if (source.deprecated) {
223
- parameter.deprecated = true;
224
- }
225
- const parameterType = this.getSwaggerType(source.type);
226
- if (parameterType.format) {
227
- parameter.schema.format = parameterType.format;
228
- }
229
- if ((0, utils_1.hasOwnProperty)(parameterType, '$ref') &&
230
- parameterType.$ref) {
231
- parameter.schema = parameterType;
232
- return parameter;
233
- }
234
- if (source.type.typeName === 'any') {
235
- parameter.schema.type = 'string';
236
- }
237
- else {
238
- if (parameterType.type) {
239
- parameter.schema.type = parameterType.type;
240
- }
241
- parameter.schema.items = parameterType.items;
242
- parameter.schema.enum = parameterType.enum;
243
- }
244
- this.buildFromParameterExamples(parameter, source);
245
- return parameter;
246
- }
247
- buildFromParameterExamples(parameter, sourceParameter) {
248
- if ((Array.isArray(sourceParameter.example) && sourceParameter.example.length === 1) ||
249
- typeof sourceParameter.example === 'undefined') {
250
- parameter.example = Array.isArray(sourceParameter.example) &&
251
- sourceParameter.example.length === 1 ?
252
- sourceParameter.example[0] :
253
- undefined;
254
- }
255
- else {
256
- parameter.examples = {};
257
- sourceParameter.example.forEach((example, index) => Object.assign(parameter.examples, {
258
- [`Example ${index + 1}`]: { value: example },
259
- }));
260
- }
261
- return parameter;
262
- }
263
- buildServers() {
264
- const url = new url_1.URL(this.config.host || 'http://localhost:3000/');
265
- let host = (url.host + url.pathname).replace(/([^:]\/)\/+/g, '$1');
266
- host = host.substr(-1, 1) === '/' ? host.substr(0, host.length - 1) : host;
267
- return [
268
- {
269
- url: host,
270
- },
271
- ];
272
- }
273
- buildSchema() {
274
- const schema = {};
275
- Object.keys(this.metadata.referenceTypes).map((typeName) => {
276
- const referenceType = this.metadata.referenceTypes[typeName];
277
- if (referenceType.typeName === 'refObject') {
278
- const required = referenceType.properties.filter((p) => p.required).map((p) => p.name);
279
- schema[referenceType.refName] = {
280
- description: referenceType.description,
281
- properties: this.buildProperties(referenceType.properties),
282
- required: required && required.length > 0 ? Array.from(new Set(required)) : undefined,
283
- type: 'object',
284
- };
285
- if (referenceType.additionalProperties) {
286
- schema[referenceType.refName].additionalProperties = this.getSwaggerType(referenceType.additionalProperties);
287
- }
288
- if (referenceType.example) {
289
- schema[referenceType.refName].example = referenceType.example;
290
- }
291
- }
292
- else if (referenceType.typeName === 'refEnum') {
293
- const enumTypes = this.determineTypesUsedInEnum(referenceType.members);
294
- if (enumTypes.size === 1) {
295
- schema[referenceType.refName] = {
296
- description: referenceType.description,
297
- enum: referenceType.members,
298
- type: enumTypes.has('string') ? 'string' : 'number',
299
- };
300
- if (referenceType.memberNames !== undefined && referenceType.members.length === referenceType.memberNames.length) {
301
- schema[referenceType.refName]['x-enum-varnames'] = referenceType.memberNames;
302
- }
303
- }
304
- else {
305
- schema[referenceType.refName] = {
306
- description: referenceType.description,
307
- anyOf: [
308
- {
309
- type: 'number',
310
- enum: referenceType.members.filter((e) => typeof e === 'number'),
311
- },
312
- {
313
- type: 'string',
314
- enum: referenceType.members.filter((e) => typeof e === 'string'),
315
- },
316
- ],
317
- };
318
- }
319
- }
320
- else if (referenceType.typeName === 'refAlias') {
321
- const swaggerType = this.getSwaggerType(referenceType.type);
322
- const format = referenceType.format;
323
- const validators = Object.keys(referenceType.validators)
324
- .filter((key) => !key.startsWith('is') && key !== 'minDate' && key !== 'maxDate')
325
- .reduce((acc, key) => (Object.assign(Object.assign({}, acc), { [key]: referenceType.validators[key].value })), {});
326
- schema[referenceType.refName] = Object.assign(Object.assign(Object.assign({}, swaggerType), { default: referenceType.default || swaggerType.default, example: referenceType.example, format: format || swaggerType.format, description: referenceType.description }), validators);
327
- }
328
- if (referenceType.deprecated) {
329
- schema[referenceType.refName].deprecated = true;
330
- }
331
- return typeName;
332
- });
333
- return schema;
334
- }
335
- getSwaggerTypeForIntersectionType(type) {
336
- return { allOf: type.members.map((x) => this.getSwaggerType(x)) };
337
- }
338
- buildProperties(properties) {
339
- const result = {};
340
- properties.forEach((property) => {
341
- const swaggerType = this.getSwaggerType(property.type);
342
- const format = property.format;
343
- swaggerType.description = property.description;
344
- swaggerType.example = property.example;
345
- swaggerType.format = format || swaggerType.format;
346
- if (!swaggerType.$ref) {
347
- swaggerType.default = property.default;
348
- }
349
- if (property.deprecated) {
350
- swaggerType.deprecated = true;
351
- }
352
- result[property.name] = swaggerType;
353
- });
354
- return result;
355
- }
356
- getSwaggerTypeForEnumType(enumType) {
357
- const types = this.determineTypesUsedInEnum(enumType.members);
358
- if (types.size === 1) {
359
- const type = types.values().next().value;
360
- const nullable = !!enumType.members.includes(null);
361
- return {
362
- type,
363
- enum: enumType.members.map((member) => (member === null ? null : String(member))),
364
- nullable,
365
- };
366
- }
367
- const valuesDelimited = Array.from(types).join(',');
368
- throw new Error(`Enums can only have string or number values, but enum had ${valuesDelimited}`);
369
- }
370
- getSwaggerTypeForReferenceType(referenceType) {
371
- return {
372
- $ref: `#/components/schemas/${referenceType.refName}`,
373
- };
374
- }
375
- }
376
- exports.Version3SpecGenerator = Version3SpecGenerator;
377
- //# sourceMappingURL=module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../src/specification/v3/module.ts"],"names":[],"mappings":"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"}
@@ -1,121 +0,0 @@
1
- import { Specification } from '../type';
2
- export declare namespace SpecificationV3 {
3
- import BaseParameter = Specification.BaseParameter;
4
- interface Spec extends Specification.BaseSpec {
5
- openapi: '3.0.0';
6
- servers: Server[];
7
- components: Components;
8
- paths: Paths;
9
- }
10
- interface Server {
11
- url: string;
12
- description?: string;
13
- variables?: Record<string, Variable>;
14
- }
15
- interface Variable {
16
- enum?: string[];
17
- description?: string;
18
- default: string;
19
- }
20
- interface Components {
21
- callbacks?: {
22
- [name: string]: any;
23
- };
24
- examples?: {
25
- [name: string]: Specification.Example | string;
26
- };
27
- headers?: {
28
- [name: string]: any;
29
- };
30
- links?: {
31
- [name: string]: any;
32
- };
33
- parameters?: {
34
- [name: string]: Parameter;
35
- };
36
- requestBodies?: {
37
- [name: string]: any;
38
- };
39
- responses?: {
40
- [name: string]: Response;
41
- };
42
- schemas?: {
43
- [name: string]: Schema;
44
- };
45
- securitySchemes?: {
46
- [name: string]: Security;
47
- };
48
- }
49
- interface Paths {
50
- [key: string]: Specification.Path<Operation, Parameter>;
51
- }
52
- type Parameter = Specification.Parameter<Schema>;
53
- interface Operation extends Specification.BaseOperation<Parameter, Response, Security> {
54
- requestBody?: RequestBody;
55
- [key: string]: unknown;
56
- }
57
- interface Response extends Specification.BaseResponse {
58
- content?: {
59
- [name: string]: Schema & Specification.Examples;
60
- };
61
- headers?: {
62
- [name: string]: Header;
63
- };
64
- }
65
- type Header = Partial<Pick<BaseParameter<Schema>, 'name' | 'in'>> & Omit<BaseParameter<Schema>, 'name' | 'in'>;
66
- interface RequestBody {
67
- content: {
68
- [name: string]: MediaType;
69
- };
70
- description?: string;
71
- required?: boolean;
72
- }
73
- interface MediaType {
74
- schema?: Schema;
75
- example?: unknown;
76
- examples?: {
77
- [name: string]: Specification.Example | string;
78
- };
79
- encoding?: {
80
- [name: string]: any;
81
- };
82
- }
83
- interface Schema extends Specification.BaseSchema<Schema> {
84
- nullable?: boolean;
85
- anyOf?: Schema[];
86
- allOf?: Schema[];
87
- deprecated?: boolean;
88
- }
89
- interface BasicSecurity extends Specification.BaseSecurity {
90
- type: 'http';
91
- schema: 'basic';
92
- }
93
- interface OAuth2Security extends Specification.BaseSecurity {
94
- type: 'oauth2';
95
- flows: {
96
- implicit?: OAuth2ImplicitFlow;
97
- password?: OAuth2PasswordFlow;
98
- authorizationCode?: OAuth2AuthorizationCodeFlow;
99
- clientCredentials?: OAuth2ClientCredentialsFlow;
100
- };
101
- }
102
- interface Oauth2BaseFlow {
103
- scopes?: Record<string, string>;
104
- refreshUrl?: string;
105
- }
106
- interface OAuth2ImplicitFlow extends Oauth2BaseFlow {
107
- authorizationUrl: string;
108
- }
109
- interface OAuth2PasswordFlow extends Oauth2BaseFlow {
110
- tokenUrl: string;
111
- }
112
- interface OAuth2AuthorizationCodeFlow extends Oauth2BaseFlow {
113
- authorizationUrl: string;
114
- tokenUrl: string;
115
- }
116
- interface OAuth2ClientCredentialsFlow extends Oauth2BaseFlow {
117
- tokenUrl: string;
118
- }
119
- type Security = BasicSecurity | OAuth2Security | Specification.ApiKeySecurity;
120
- }
121
- //# sourceMappingURL=type.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../src/specification/v3/type.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"type.js","sourceRoot":"","sources":["../../../src/specification/v3/type.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
@@ -1,3 +0,0 @@
1
- export declare function loadPackageJson(workingDir: string): Record<string, any>;
2
- export declare function getPackageJsonStringValue(workingDir: string, key: string, defaultValue?: string): string;
3
- //# sourceMappingURL=package-json.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"package-json.d.ts","sourceRoot":"","sources":["../../src/utils/package-json.ts"],"names":[],"mappings":"AAYA,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAUxE;AAED,wBAAgB,yBAAyB,CACrC,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,YAAY,SAAK,GACjB,MAAM,CAQT"}
@@ -1,35 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright (c) 2021-2022.
4
- * Author Peter Placzek (tada5hi)
5
- * For the full copyright and license information,
6
- * view the LICENSE file that was distributed with this source code.
7
- */
8
- var __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.getPackageJsonStringValue = exports.loadPackageJson = void 0;
13
- const fs_1 = __importDefault(require("fs"));
14
- const path_1 = __importDefault(require("path"));
15
- const cachedFileContent = {};
16
- function loadPackageJson(workingDir) {
17
- const filePath = path_1.default.join(workingDir, 'package.json');
18
- if (Object.prototype.hasOwnProperty.call(cachedFileContent, filePath)) {
19
- return cachedFileContent[filePath];
20
- }
21
- const rawContent = fs_1.default.readFileSync(filePath, { encoding: 'utf-8' });
22
- return JSON.parse(rawContent);
23
- }
24
- exports.loadPackageJson = loadPackageJson;
25
- function getPackageJsonStringValue(workingDir, key, defaultValue = '') {
26
- try {
27
- const record = loadPackageJson(workingDir);
28
- return record[key] || defaultValue;
29
- }
30
- catch (e) {
31
- return defaultValue;
32
- }
33
- }
34
- exports.getPackageJsonStringValue = getPackageJsonStringValue;
35
- //# sourceMappingURL=package-json.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"package-json.js","sourceRoot":"","sources":["../../src/utils/package-json.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;AAEH,4CAAoB;AACpB,gDAAwB;AAExB,MAAM,iBAAiB,GAAyC,EAAE,CAAC;AAEnE,SAAgB,eAAe,CAAC,UAAkB;IAC9C,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAEvD,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,EAAE;QACnE,OAAO,iBAAiB,CAAC,QAAQ,CAAC,CAAC;KACtC;IAED,MAAM,UAAU,GAAG,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAEpE,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AAClC,CAAC;AAVD,0CAUC;AAED,SAAgB,yBAAyB,CACrC,UAAkB,EAClB,GAAW,EACX,YAAY,GAAG,EAAE;IAEjB,IAAI;QACA,MAAM,MAAM,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;QAE3C,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC;KACtC;IAAC,OAAO,CAAC,EAAE;QACR,OAAO,YAAY,CAAC;KACvB;AACL,CAAC;AAZD,8DAYC"}
File without changes
File without changes