@visulima/jsdoc-open-api 3.0.0-alpha.4 → 3.0.0-alpha.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +371 -0
- package/LICENSE.md +35 -1
- package/README.md +44 -33
- package/bin/index.js +12 -9
- package/dist/cli/commander/index.d.ts +996 -3
- package/dist/cli/commander/index.js +1 -33
- package/dist/cli/index.d.ts +5 -6
- package/dist/cli/index.js +1 -17
- package/dist/index.d.ts +200 -182
- package/dist/index.js +1 -106
- package/dist/packem_shared/DEFAULT_OPTIONS-C7o6qjwP.js +1 -0
- package/dist/packem_shared/SpecBuilder-Vbq42UbW.js +1 -0
- package/dist/packem_shared/SwaggerCompilerPlugin-PUOALp2i.js +1 -0
- package/dist/packem_shared/constants-CdEv9ZcD.js +1 -0
- package/dist/packem_shared/customizer-BXFVpImq.js +1 -0
- package/dist/packem_shared/generateCommand-C_XPsbS6.js +5 -0
- package/dist/packem_shared/generateCommand-ClL9Mnc3.js +1 -0
- package/dist/packem_shared/initCommand-Ca1hGdYS.js +35 -0
- package/dist/packem_shared/initCommand-TixxsVQU.js +1 -0
- package/dist/packem_shared/jsDocumentCommentsToOpenApi-TjPhUj5G.js +1 -0
- package/dist/packem_shared/loadDefinition-7r9qpfuE.js +1 -0
- package/dist/packem_shared/parseFile-RDlR4tEF.js +1 -0
- package/dist/packem_shared/swaggerJsDocumentCommentsToOpenApi-Bm9R1BnW.js +10 -0
- package/dist/packem_shared/validate-9Rwe2A3r.js +1 -0
- package/dist/packem_shared/yamlLoc-DPq-xUM4.js +1 -0
- package/package.json +38 -45
- package/dist/chunk-2T6HMUIL.mjs +0 -1215
- package/dist/chunk-2T6HMUIL.mjs.map +0 -1
- package/dist/chunk-PTFTJY7I.js +0 -1233
- package/dist/chunk-PTFTJY7I.js.map +0 -1
- package/dist/chunk-RGP6RTJO.mjs +0 -142
- package/dist/chunk-RGP6RTJO.mjs.map +0 -1
- package/dist/chunk-RVCK3H3U.js +0 -149
- package/dist/chunk-RVCK3H3U.js.map +0 -1
- package/dist/cli/commander/index.d.mts +0 -7
- package/dist/cli/commander/index.js.map +0 -1
- package/dist/cli/commander/index.mjs +0 -30
- package/dist/cli/commander/index.mjs.map +0 -1
- package/dist/cli/index.d.mts +0 -10
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/index.mjs +0 -4
- package/dist/cli/index.mjs.map +0 -1
- package/dist/index.d.mts +0 -248
- package/dist/index.js.map +0 -1
- package/dist/index.mjs +0 -85
- package/dist/index.mjs.map +0 -1
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { generate_command_default, init_command_default } from '../../chunk-RGP6RTJO.mjs';
|
|
2
|
-
import '../../chunk-2T6HMUIL.mjs';
|
|
3
|
-
import { exit } from 'process';
|
|
4
|
-
|
|
5
|
-
var generateCommand = (program, commandName = "generate", configName = ".openapirc.js") => {
|
|
6
|
-
program.command(commandName).description("Generates OpenAPI (Swagger) documentation from JSDoc's").usage("[options] <path ...>").argument("[path ...]", "Paths to files or directories to parse").option("-c, --config [.openapirc.js]", "@visulima/jsdoc-open-api config file path.").option("-o, --output [swaggerSpec.json]", "Output swagger specification.").option("-v, --verbose", "Verbose output.").option("-d, --very-verbose", "Very verbose output.").action(async (paths, options) => {
|
|
7
|
-
try {
|
|
8
|
-
await generate_command_default(configName, paths, options);
|
|
9
|
-
} catch (error) {
|
|
10
|
-
console.error(error);
|
|
11
|
-
exit(1);
|
|
12
|
-
}
|
|
13
|
-
});
|
|
14
|
-
};
|
|
15
|
-
var generate_command_default2 = generateCommand;
|
|
16
|
-
var initCommand = (program, commandName = "init", description = "Inits a pre-configured @visulima/jsdoc-open-api config file.", configName = ".openapirc.js") => {
|
|
17
|
-
program.command(commandName).description(description).action(() => {
|
|
18
|
-
try {
|
|
19
|
-
init_command_default(configName);
|
|
20
|
-
} catch (error) {
|
|
21
|
-
console.error(error);
|
|
22
|
-
exit(1);
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
};
|
|
26
|
-
var init_command_default2 = initCommand;
|
|
27
|
-
|
|
28
|
-
export { generate_command_default2 as generateCommand, init_command_default2 as initCommand };
|
|
29
|
-
//# sourceMappingURL=index.mjs.map
|
|
30
|
-
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/cli/commander/command/generate-command.ts","../../../src/cli/commander/command/init-command.ts"],"names":["generate_command_default","exit","init_command_default"],"mappings":";;;;AAMA,IAAM,kBAAkB,CAAC,OAAA,EAAkB,WAAA,GAAc,UAAA,EAAY,aAAa,eAAA,KAA0B;AACxG,EAAA,OAAA,CACK,OAAA,CAAQ,WAAW,CAAA,CACnB,WAAA,CAAY,wDAAwD,CAAA,CACpE,KAAA,CAAM,sBAAsB,CAAA,CAC5B,QAAA,CAAS,YAAA,EAAc,wCAAwC,CAAA,CAC/D,OAAO,8BAAA,EAAgC,4CAA4C,CAAA,CACnF,MAAA,CAAO,iCAAA,EAAmC,+BAA+B,CAAA,CACzE,MAAA,CAAO,iBAAiB,iBAAiB,CAAA,CACzC,MAAA,CAAO,oBAAA,EAAsB,sBAAsB,CAAA,CAEnD,MAAA,CAAO,OAAO,OAAO,OAAA,KAAY;AAC9B,IAAA,IAAI;AACA,MAAA,MAAM,wBAAA,CAAoB,UAAA,EAAY,KAAA,EAAO,OAAO,CAAA;AAAA,IACxD,SAAS,KAAA,EAAO;AAEZ,MAAA,OAAA,CAAQ,MAAM,KAAK,CAAA;AAEnB,MAAA,IAAA,CAAK,CAAC,CAAA;AAAA,IACV;AAAA,EACJ,CAAC,CAAA;AACT,CAAA;AAEA,IAAOA,yBAAAA,GAAQ;ACvBf,IAAM,WAAA,GAAc,CAChB,OAAA,EACA,WAAA,GAAc,QACd,WAAA,GAAc,8DAAA,EACd,aAAa,eAAA,KACN;AACP,EAAA,OAAA,CACK,QAAQ,WAAW,CAAA,CACnB,YAAY,WAAW,CAAA,CACvB,OAAO,MAAM;AACV,IAAA,IAAI;AACA,MAAA,oBAAA,CAAgB,UAAU,CAAA;AAAA,IAC9B,SAAS,KAAA,EAAO;AAEZ,MAAA,OAAA,CAAQ,MAAM,KAAK,CAAA;AAEnB,MAAAC,KAAK,CAAC,CAAA;AAAA,IACV;AAAA,EACJ,CAAC,CAAA;AACT,CAAA;AAEA,IAAOC,qBAAAA,GAAQ","file":"index.mjs","sourcesContent":["import { exit } from \"node:process\";\n\nimport type { Command } from \"commander\";\n\nimport baseGenerateCommand from \"../../command/generate-command\";\n\nconst generateCommand = (program: Command, commandName = \"generate\", configName = \".openapirc.js\"): void => {\n program\n .command(commandName)\n .description(\"Generates OpenAPI (Swagger) documentation from JSDoc's\")\n .usage(\"[options] <path ...>\")\n .argument(\"[path ...]\", \"Paths to files or directories to parse\")\n .option(\"-c, --config [.openapirc.js]\", \"@visulima/jsdoc-open-api config file path.\")\n .option(\"-o, --output [swaggerSpec.json]\", \"Output swagger specification.\")\n .option(\"-v, --verbose\", \"Verbose output.\")\n .option(\"-d, --very-verbose\", \"Very verbose output.\")\n\n .action(async (paths, options) => {\n try {\n await baseGenerateCommand(configName, paths, options);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error);\n\n exit(1);\n }\n });\n};\n\nexport default generateCommand;\n","import { exit } from \"node:process\";\n\nimport type { Command } from \"commander\";\n\nimport baseInitCommand from \"../../command/init-command\";\n\nconst initCommand = (\n program: Command,\n commandName = \"init\",\n description = \"Inits a pre-configured @visulima/jsdoc-open-api config file.\",\n configName = \".openapirc.js\",\n): void => {\n program\n .command(commandName)\n .description(description)\n .action(() => {\n try {\n baseInitCommand(configName);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error);\n\n exit(1);\n }\n });\n};\n\nexport default initCommand;\n"]}
|
package/dist/cli/index.d.mts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
declare const generateCommand: (configName: string, paths: string[], options: {
|
|
2
|
-
config?: string;
|
|
3
|
-
output?: string;
|
|
4
|
-
verbose?: boolean;
|
|
5
|
-
veryVerbose?: boolean;
|
|
6
|
-
}) => Promise<void>;
|
|
7
|
-
|
|
8
|
-
declare const initCommand: (configName: string, packageJsonPath?: string) => void;
|
|
9
|
-
|
|
10
|
-
export { generateCommand, initCommand };
|
package/dist/cli/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
|
package/dist/cli/index.mjs
DELETED
package/dist/cli/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}
|
package/dist/index.d.mts
DELETED
|
@@ -1,248 +0,0 @@
|
|
|
1
|
-
import { Compiler } from 'webpack';
|
|
2
|
-
|
|
3
|
-
interface BaseDefinition {
|
|
4
|
-
components?: ComponentsObject;
|
|
5
|
-
externalDocs?: ExternalDocumentationObject;
|
|
6
|
-
info: InfoObject;
|
|
7
|
-
openapi: string;
|
|
8
|
-
paths?: PathsObject;
|
|
9
|
-
security?: SecurityRequirementObject[];
|
|
10
|
-
servers?: ServerObject[];
|
|
11
|
-
tags?: TagObject[];
|
|
12
|
-
}
|
|
13
|
-
interface OpenApiObject extends BaseDefinition {
|
|
14
|
-
paths?: PathsObject;
|
|
15
|
-
}
|
|
16
|
-
interface InfoObject {
|
|
17
|
-
contact?: ContactObject;
|
|
18
|
-
description?: string;
|
|
19
|
-
license?: LicenseObject;
|
|
20
|
-
termsOfService?: string;
|
|
21
|
-
title: string;
|
|
22
|
-
version: string;
|
|
23
|
-
}
|
|
24
|
-
interface ContactObject {
|
|
25
|
-
email?: string;
|
|
26
|
-
name?: string;
|
|
27
|
-
url?: string;
|
|
28
|
-
}
|
|
29
|
-
interface LicenseObject {
|
|
30
|
-
name: string;
|
|
31
|
-
url?: string;
|
|
32
|
-
}
|
|
33
|
-
interface ServerObject {
|
|
34
|
-
description?: string;
|
|
35
|
-
url: string;
|
|
36
|
-
variables?: Map<ServerVariable>;
|
|
37
|
-
}
|
|
38
|
-
interface ServerVariable {
|
|
39
|
-
default: string;
|
|
40
|
-
description?: string;
|
|
41
|
-
enum?: string[];
|
|
42
|
-
}
|
|
43
|
-
interface ComponentsObject {
|
|
44
|
-
callbacks?: Map<CallbackObject | ReferenceObject>;
|
|
45
|
-
examples?: Map<ExampleObject | ReferenceObject>;
|
|
46
|
-
headers?: Map<HeaderObject | ReferenceObject>;
|
|
47
|
-
links?: Map<LinkObject | ReferenceObject>;
|
|
48
|
-
parameters?: Map<ParameterObject | ReferenceObject>;
|
|
49
|
-
requestBodies?: Map<ReferenceObject | RequestBodyObject>;
|
|
50
|
-
responses?: Map<ReferenceObject | ResponseObject>;
|
|
51
|
-
schemas?: Map<ReferenceObject | SchemaObject>;
|
|
52
|
-
securitySchemes?: Map<ApiKeySecuritySchemeObject | HttpSecuritySchemeObject | Oauth2SecuritySchemeObject | OpenIdConnectSecuritySchemeObject | ReferenceObject>;
|
|
53
|
-
}
|
|
54
|
-
type PathsObject = Record<string, PathItemObject>;
|
|
55
|
-
interface PathItemObject {
|
|
56
|
-
$ref?: string;
|
|
57
|
-
delete?: OperationObject;
|
|
58
|
-
description?: string;
|
|
59
|
-
get?: OperationObject;
|
|
60
|
-
head?: OperationObject;
|
|
61
|
-
options?: OperationObject;
|
|
62
|
-
parameters?: (ParameterObject | ReferenceObject)[];
|
|
63
|
-
patch?: OperationObject;
|
|
64
|
-
post?: OperationObject;
|
|
65
|
-
put?: OperationObject;
|
|
66
|
-
servers?: ServerObject[];
|
|
67
|
-
summary?: string;
|
|
68
|
-
trace?: OperationObject;
|
|
69
|
-
}
|
|
70
|
-
interface OperationObject {
|
|
71
|
-
callbacks?: Map<CallbackObject | ReferenceObject>;
|
|
72
|
-
deprecated?: boolean;
|
|
73
|
-
description?: string;
|
|
74
|
-
externalDocs?: ExternalDocumentationObject;
|
|
75
|
-
operationId?: string;
|
|
76
|
-
parameters?: (ParameterObject | ReferenceObject)[];
|
|
77
|
-
requestBody?: ReferenceObject | RequestBodyObject;
|
|
78
|
-
responses: ResponsesObject;
|
|
79
|
-
security?: SecurityRequirementObject[];
|
|
80
|
-
servers?: ServerObject[];
|
|
81
|
-
summary?: string;
|
|
82
|
-
tags?: string[];
|
|
83
|
-
}
|
|
84
|
-
interface ExternalDocumentationObject {
|
|
85
|
-
description?: string;
|
|
86
|
-
url: string;
|
|
87
|
-
}
|
|
88
|
-
interface ParameterObject {
|
|
89
|
-
allowEmptyValue?: boolean;
|
|
90
|
-
allowReserved?: boolean;
|
|
91
|
-
content?: Map<MediaTypeObject>;
|
|
92
|
-
deprecated?: boolean;
|
|
93
|
-
description?: string;
|
|
94
|
-
example?: any;
|
|
95
|
-
examples?: Map<ExampleObject | ReferenceObject>;
|
|
96
|
-
explode?: string;
|
|
97
|
-
in: string;
|
|
98
|
-
name: string;
|
|
99
|
-
required?: boolean;
|
|
100
|
-
schema?: ReferenceObject | SchemaObject;
|
|
101
|
-
style?: string;
|
|
102
|
-
}
|
|
103
|
-
interface RequestBodyObject {
|
|
104
|
-
content: Map<MediaTypeObject>;
|
|
105
|
-
description?: string;
|
|
106
|
-
required?: boolean;
|
|
107
|
-
}
|
|
108
|
-
interface MediaTypeObject {
|
|
109
|
-
encoding?: Map<EncodingObject>;
|
|
110
|
-
example?: any;
|
|
111
|
-
examples?: Map<ExampleObject | ReferenceObject>;
|
|
112
|
-
schema?: ReferenceObject | SchemaObject;
|
|
113
|
-
}
|
|
114
|
-
interface EncodingObject {
|
|
115
|
-
allowReserved?: boolean;
|
|
116
|
-
contentType?: string;
|
|
117
|
-
explode?: boolean;
|
|
118
|
-
headers?: Map<HeaderObject | ReferenceObject>;
|
|
119
|
-
style?: string;
|
|
120
|
-
}
|
|
121
|
-
type ResponsesObject = Record<string, ReferenceObject | ResponseObject>;
|
|
122
|
-
interface ResponseObject {
|
|
123
|
-
content?: Map<MediaTypeObject>;
|
|
124
|
-
description: string;
|
|
125
|
-
headers?: Map<HeaderObject | ReferenceObject>;
|
|
126
|
-
links?: Map<LinkObject | ReferenceObject>;
|
|
127
|
-
}
|
|
128
|
-
type CallbackObject = Record<string, PathItemObject>;
|
|
129
|
-
interface ExampleObject {
|
|
130
|
-
description?: string;
|
|
131
|
-
externalValue?: string;
|
|
132
|
-
summary?: string;
|
|
133
|
-
value?: any;
|
|
134
|
-
}
|
|
135
|
-
interface LinkObject {
|
|
136
|
-
description?: string;
|
|
137
|
-
operationId?: string;
|
|
138
|
-
operationRef?: string;
|
|
139
|
-
parameters?: Map<any>;
|
|
140
|
-
requestBody?: any;
|
|
141
|
-
server?: ServerObject;
|
|
142
|
-
}
|
|
143
|
-
interface HeaderObject {
|
|
144
|
-
allowEmptyValue?: boolean;
|
|
145
|
-
allowReserved?: boolean;
|
|
146
|
-
content?: Map<MediaTypeObject>;
|
|
147
|
-
deprecated?: boolean;
|
|
148
|
-
description?: string;
|
|
149
|
-
example?: any;
|
|
150
|
-
examples?: Map<ExampleObject | ReferenceObject>;
|
|
151
|
-
explode?: string;
|
|
152
|
-
required?: boolean;
|
|
153
|
-
schema?: ReferenceObject | SchemaObject;
|
|
154
|
-
style?: string;
|
|
155
|
-
}
|
|
156
|
-
interface TagObject {
|
|
157
|
-
description?: string;
|
|
158
|
-
externalDocs?: ExternalDocumentationObject;
|
|
159
|
-
name: string;
|
|
160
|
-
}
|
|
161
|
-
interface ReferenceObject {
|
|
162
|
-
$ref: string;
|
|
163
|
-
}
|
|
164
|
-
type SchemaObject = Record<string, any>;
|
|
165
|
-
interface ApiKeySecuritySchemeObject {
|
|
166
|
-
description?: string;
|
|
167
|
-
in: string;
|
|
168
|
-
name: string;
|
|
169
|
-
type: string;
|
|
170
|
-
}
|
|
171
|
-
interface HttpSecuritySchemeObject {
|
|
172
|
-
bearerFormat?: string;
|
|
173
|
-
description?: string;
|
|
174
|
-
scheme: string;
|
|
175
|
-
type: string;
|
|
176
|
-
}
|
|
177
|
-
interface Oauth2SecuritySchemeObject {
|
|
178
|
-
description?: string;
|
|
179
|
-
flows: OAuthFlowsObject;
|
|
180
|
-
type: string;
|
|
181
|
-
}
|
|
182
|
-
interface OpenIdConnectSecuritySchemeObject {
|
|
183
|
-
description?: string;
|
|
184
|
-
openIdConnectUrl: string;
|
|
185
|
-
type: string;
|
|
186
|
-
}
|
|
187
|
-
interface OAuthFlowsObject {
|
|
188
|
-
authorizationCode?: OAuthFlowObject;
|
|
189
|
-
clientCredentials?: OAuthFlowObject;
|
|
190
|
-
implicit?: OAuthFlowObject;
|
|
191
|
-
password?: OAuthFlowObject;
|
|
192
|
-
}
|
|
193
|
-
interface OAuthFlowObject {
|
|
194
|
-
authorizationUrl?: string;
|
|
195
|
-
refreshUrl: string;
|
|
196
|
-
scopes: Map<string>;
|
|
197
|
-
tokenUrl?: string;
|
|
198
|
-
}
|
|
199
|
-
type SecurityRequirementObject = Record<string, string[]>;
|
|
200
|
-
type Map<T> = Record<string, T>;
|
|
201
|
-
|
|
202
|
-
declare const commentsToOpenApi$1: (fileContents: string, verbose?: boolean) => {
|
|
203
|
-
loc: number;
|
|
204
|
-
spec: OpenApiObject;
|
|
205
|
-
}[];
|
|
206
|
-
|
|
207
|
-
declare const parseFile: (file: string, commentsToOpenApi: (fileContent: string, verbose?: boolean) => {
|
|
208
|
-
loc: number;
|
|
209
|
-
spec: OpenApiObject;
|
|
210
|
-
}[], verbose?: boolean) => {
|
|
211
|
-
loc: number;
|
|
212
|
-
spec: OpenApiObject;
|
|
213
|
-
}[];
|
|
214
|
-
|
|
215
|
-
declare class SpecBuilder implements OpenApiObject {
|
|
216
|
-
components?: ComponentsObject;
|
|
217
|
-
externalDocs?: ExternalDocumentationObject;
|
|
218
|
-
info: InfoObject;
|
|
219
|
-
openapi: string;
|
|
220
|
-
paths: PathsObject;
|
|
221
|
-
security?: SecurityRequirementObject[];
|
|
222
|
-
servers?: ServerObject[];
|
|
223
|
-
tags?: TagObject[];
|
|
224
|
-
constructor(baseDefinition: BaseDefinition);
|
|
225
|
-
addData(parsedFile: OpenApiObject[]): void;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
declare const commentsToOpenApi: (fileContents: string, verbose?: boolean) => {
|
|
229
|
-
loc: number;
|
|
230
|
-
spec: OpenApiObject;
|
|
231
|
-
}[];
|
|
232
|
-
|
|
233
|
-
declare const yamlLoc: (string: string) => number;
|
|
234
|
-
|
|
235
|
-
declare class SwaggerCompilerPlugin {
|
|
236
|
-
private readonly assetsPath;
|
|
237
|
-
private readonly ignore;
|
|
238
|
-
private readonly sources;
|
|
239
|
-
private readonly swaggerDefinition;
|
|
240
|
-
private readonly verbose;
|
|
241
|
-
constructor(assetsPath: string, sources: string[], swaggerDefinition: BaseDefinition, options: {
|
|
242
|
-
ignore?: (RegExp | string)[];
|
|
243
|
-
verbose?: boolean;
|
|
244
|
-
});
|
|
245
|
-
apply(compiler: Compiler): void;
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
export { type BaseDefinition, type OpenApiObject, SpecBuilder, SwaggerCompilerPlugin, commentsToOpenApi$1 as jsDocumentCommentsToOpenApi, parseFile, commentsToOpenApi as swaggerJsDocumentCommentsToOpenApi, yamlLoc };
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/webpack/swagger-compiler-plugin.ts"],"names":["exit","DEFAULT_EXCLUDE","spec_builder_default","collect","parse_file_default","comments_to_open_api_default","validate_default","mkdir","dirname","writeFile"],"mappings":";;;;;;;AAeA,IAAM,YAAA,GAAe,CAAC,KAAA,KAAe;AACjC,EAAA,IAAI,KAAA,EAAO;AAEP,IAAA,OAAA,CAAQ,MAAM,KAAK,CAAA;AAEnB,IAAAA,YAAA,CAAK,CAAC,CAAA;AAAA,EACV;AACJ,CAAA;AAEA,IAAM,wBAAN,MAA4B;AAAA,EACP,UAAA;AAAA,EAEA,MAAA;AAAA,EAEA,OAAA;AAAA,EAEA,iBAAA;AAAA,EAEA,OAAA;AAAA,EAEV,WAAA,CACH,UAAA,EACA,OAAA,EACA,iBAAA,EACA,OAAA,EAIF;AACE,IAAA,IAAA,CAAK,UAAA,GAAa,UAAA;AAClB,IAAA,IAAA,CAAK,iBAAA,GAAoB,iBAAA;AACzB,IAAA,IAAA,CAAK,OAAA,GAAU,OAAA;AACf,IAAA,IAAA,CAAK,OAAA,GAAU,QAAQ,OAAA,IAAW,KAAA;AAClC,IAAA,IAAA,CAAK,MAAA,GAAS,OAAA,CAAQ,MAAA,IAAU,EAAC;AAAA,EACrC;AAAA,EAEO,MAAM,QAAA,EAA0B;AACnC,IAAA,MAAM,IAAA,uBAAW,GAAA,CAAqB,CAAC,GAAGC,gCAAA,EAAiB,GAAG,IAAA,CAAK,MAAM,CAAC,CAAA;AAE1E,IAAA,QAAA,CAAS,MAAM,IAAA,CAAK,QAAA,CAAS,uBAAA,EAAyB,OAAO,GAAG,QAAA,KAA0C;AAEtG,MAAA,OAAA,CAAQ,IAAI,0CAA0C,CAAA;AAEtD,MAAA,MAAM,IAAA,GAAO,IAAIC,qCAAA,CAAY,IAAA,CAAK,iBAAiB,CAAA;AAGnD,MAAA,WAAA,MAAiB,GAAA,IAAO,KAAK,OAAA,EAAS;AAClC,QAAA,MAAM,KAAA,GAAkB,MAAMC,wBAAA,CAAQ,GAAA,EAAK;AAAA,UACvC,UAAA,EAAY,CAAC,KAAA,EAAO,MAAA,EAAQ,QAAQ,KAAA,EAAO,MAAA,EAAQ,MAAA,EAAQ,OAAA,EAAS,MAAM,CAAA;AAAA,UAC1E,WAAA,EAAa,KAAA;AAAA,UACb,IAAA,EAAM,CAAC,GAAG,IAAI;AAAA,SACjB,CAAA;AAED,QAAA,IAAI,KAAK,OAAA,EAAS;AAEd,UAAA,OAAA,CAAQ,GAAA,CAAI,SAAS,MAAA,CAAO,KAAA,CAAM,MAAM,CAAC,CAAA,UAAA,EAAa,GAAG,CAAA,CAAE,CAAA;AAE3D,UAAA,OAAA,CAAQ,IAAI,KAAK,CAAA;AAAA,QACrB;AAEA,QAAA,KAAA,CAAM,OAAA,CAAQ,CAAC,IAAA,KAAS;AACpB,UAAA,IAAI,KAAK,OAAA,EAAS;AAEd,YAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,aAAA,EAAgB,IAAI,CAAA,CAAE,CAAA;AAAA,UACtC;AAEA,UAAA,IAAI;AACA,YAAA,MAAM,oBAAA,GAAuBC,mCAAA,CAAU,IAAA,EAAMC,6CAAA,EAA6B,KAAK,OAAO,CAAA;AAEtF,YAAA,IAAA,CAAK,QAAQ,oBAAA,CAAqB,GAAA,CAAI,CAAC,IAAA,KAAS,IAAA,CAAK,IAAI,CAAC,CAAA;AAE1D,YAAA,MAAM,2BAAA,GAA8BD,mCAAA,CAAU,IAAA,EAAMC,8CAAAA,EAAoC,KAAK,OAAO,CAAA;AAEpG,YAAA,IAAA,CAAK,QAAQ,2BAAA,CAA4B,GAAA,CAAI,CAAC,IAAA,KAAS,IAAA,CAAK,IAAI,CAAC,CAAA;AAAA,UACrE,SAAS,KAAA,EAAO;AAEZ,YAAA,OAAA,CAAQ,MAAM,KAAK,CAAA;AAEnB,YAAAL,YAAA,CAAK,CAAC,CAAA;AAAA,UACV;AAAA,QACJ,CAAC,CAAA;AAAA,MACL;AAEA,MAAA,IAAI;AACA,QAAA,IAAI,KAAK,OAAA,EAAS;AAEd,UAAA,OAAA,CAAQ,IAAI,yBAAyB,CAAA;AAErC,UAAA,OAAA,CAAQ,IAAI,IAAA,CAAK,SAAA,CAAU,IAAA,EAAM,IAAA,EAAM,CAAC,CAAC,CAAA;AAAA,QAC7C;AAEA,QAAA,MAAMM,kCAAS,IAAA,CAAK,KAAA,CAAM,KAAK,SAAA,CAAU,IAAI,CAAC,CAAC,CAAA;AAAA,MACnD,SAAS,KAAA,EAAY;AAEjB,QAAA,OAAA,CAAQ,KAAA,CAAM,KAAA,CAAM,MAAA,EAAQ,CAAA;AAE5B,QAAAN,YAAA,CAAK,CAAC,CAAA;AAAA,MACV;AAEA,MAAA,MAAM,EAAE,YAAW,GAAI,IAAA;AAGvB,MAAAO,QAAA,CAAMC,YAAA,CAAQ,UAAU,CAAA,EAAG,EAAE,WAAW,IAAA,EAAK,EAAG,CAAC,KAAA,KAAU;AACvD,QAAA,IAAI,KAAA,EAAO;AACP,UAAA,YAAA,CAAa,KAAK,CAAA;AAAA,QACtB;AAGA,QAAAC,YAAA,CAAU,YAAY,IAAA,CAAK,SAAA,CAAU,MAAM,IAAA,EAAM,CAAC,GAAG,YAAY,CAAA;AAAA,MACrE,CAAC,CAAA;AAED,MAAA,IAAI,KAAK,OAAA,EAAS;AAEd,QAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,yBAAA,EAA4B,IAAA,CAAK,UAAU,CAAA,MAAA,CAAQ,CAAA;AAAA,MACnE;AAGA,MAAA,OAAA,CAAQ,IAAI,gCAAgC,CAAA;AAE5C,MAAA,QAAA,EAAS;AAAA,IACb,CAAC,CAAA;AAAA,EACL;AACJ,CAAA;AAEA,IAAO,+BAAA,GAAQ","file":"index.js","sourcesContent":["import { mkdir, writeFile } from \"node:fs\";\nimport { dirname } from \"node:path\";\nimport { exit } from \"node:process\";\n\nimport { collect } from \"@visulima/fs\";\nimport type { Compiler } from \"webpack\";\n\nimport { DEFAULT_EXCLUDE } from \"../constants\";\nimport type { BaseDefinition } from \"../exported\";\nimport jsDocumentCommentsToOpenApi from \"../jsdoc/comments-to-open-api\";\nimport parseFile from \"../parse-file\";\nimport SpecBuilder from \"../spec-builder\";\nimport swaggerJsDocumentCommentsToOpenApi from \"../swagger-jsdoc/comments-to-open-api\";\nimport validate from \"../validate\";\n\nconst errorHandler = (error: any) => {\n if (error) {\n // eslint-disable-next-line no-console\n console.error(error);\n\n exit(1);\n }\n};\n\nclass SwaggerCompilerPlugin {\n private readonly assetsPath: string;\n\n private readonly ignore: (RegExp | string)[];\n\n private readonly sources: string[];\n\n private readonly swaggerDefinition: BaseDefinition;\n\n private readonly verbose: boolean;\n\n public constructor(\n assetsPath: string,\n sources: string[],\n swaggerDefinition: BaseDefinition,\n options: {\n ignore?: (RegExp | string)[];\n verbose?: boolean;\n },\n ) {\n this.assetsPath = assetsPath;\n this.swaggerDefinition = swaggerDefinition;\n this.sources = sources;\n this.verbose = options.verbose ?? false;\n this.ignore = options.ignore ?? [];\n }\n\n public apply(compiler: Compiler): void {\n const skip = new Set<RegExp | string>([...DEFAULT_EXCLUDE, ...this.ignore]);\n\n compiler.hooks.make.tapAsync(\"SwaggerCompilerPlugin\", async (_, callback: VoidFunction): Promise<void> => {\n // eslint-disable-next-line no-console\n console.log(\"Build paused, switching to swagger build\");\n\n const spec = new SpecBuilder(this.swaggerDefinition);\n\n // eslint-disable-next-line unicorn/prevent-abbreviations,no-loops/no-loops\n for await (const dir of this.sources) {\n const files: string[] = await collect(dir, {\n extensions: [\".js\", \".cjs\", \".mjs\", \".ts\", \".tsx\", \".jsx\", \".yaml\", \".yml\"],\n includeDirs: false,\n skip: [...skip],\n });\n\n if (this.verbose) {\n // eslint-disable-next-line no-console\n console.log(`Found ${String(files.length)} files in ${dir}`);\n // eslint-disable-next-line no-console\n console.log(files);\n }\n\n files.forEach((file) => {\n if (this.verbose) {\n // eslint-disable-next-line no-console\n console.log(`Parsing file ${file}`);\n }\n\n try {\n const parsedJsDocumentFile = parseFile(file, jsDocumentCommentsToOpenApi, this.verbose);\n\n spec.addData(parsedJsDocumentFile.map((item) => item.spec));\n\n const parsedSwaggerJsDocumentFile = parseFile(file, swaggerJsDocumentCommentsToOpenApi, this.verbose);\n\n spec.addData(parsedSwaggerJsDocumentFile.map((item) => item.spec));\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error);\n\n exit(1);\n }\n });\n }\n\n try {\n if (this.verbose) {\n // eslint-disable-next-line no-console\n console.log(\"Validating swagger spec\");\n // eslint-disable-next-line no-console\n console.log(JSON.stringify(spec, null, 2));\n }\n\n await validate(JSON.parse(JSON.stringify(spec)));\n } catch (error: any) {\n // eslint-disable-next-line no-console\n console.error(error.toJSON());\n\n exit(1);\n }\n\n const { assetsPath } = this;\n\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n mkdir(dirname(assetsPath), { recursive: true }, (error) => {\n if (error) {\n errorHandler(error);\n }\n\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n writeFile(assetsPath, JSON.stringify(spec, null, 2), errorHandler);\n });\n\n if (this.verbose) {\n // eslint-disable-next-line no-console\n console.log(`Written swagger spec to \"${this.assetsPath}\" file`);\n }\n\n // eslint-disable-next-line no-console\n console.log(\"switching back to normal build\");\n\n callback();\n });\n }\n}\n\nexport default SwaggerCompilerPlugin;\n"]}
|
package/dist/index.mjs
DELETED
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { DEFAULT_EXCLUDE, spec_builder_default, collect, parse_file_default, comments_to_open_api_default, comments_to_open_api_default2, validate_default } from './chunk-2T6HMUIL.mjs';
|
|
2
|
-
export { spec_builder_default as SpecBuilder, comments_to_open_api_default as jsDocumentCommentsToOpenApi, parse_file_default as parseFile, comments_to_open_api_default2 as swaggerJsDocumentCommentsToOpenApi, yaml_loc_default as yamlLoc } from './chunk-2T6HMUIL.mjs';
|
|
3
|
-
import { mkdir, writeFile } from 'fs';
|
|
4
|
-
import { dirname } from 'path';
|
|
5
|
-
import { exit } from 'process';
|
|
6
|
-
|
|
7
|
-
var errorHandler = (error) => {
|
|
8
|
-
if (error) {
|
|
9
|
-
console.error(error);
|
|
10
|
-
exit(1);
|
|
11
|
-
}
|
|
12
|
-
};
|
|
13
|
-
var SwaggerCompilerPlugin = class {
|
|
14
|
-
assetsPath;
|
|
15
|
-
ignore;
|
|
16
|
-
sources;
|
|
17
|
-
swaggerDefinition;
|
|
18
|
-
verbose;
|
|
19
|
-
constructor(assetsPath, sources, swaggerDefinition, options) {
|
|
20
|
-
this.assetsPath = assetsPath;
|
|
21
|
-
this.swaggerDefinition = swaggerDefinition;
|
|
22
|
-
this.sources = sources;
|
|
23
|
-
this.verbose = options.verbose ?? false;
|
|
24
|
-
this.ignore = options.ignore ?? [];
|
|
25
|
-
}
|
|
26
|
-
apply(compiler) {
|
|
27
|
-
const skip = /* @__PURE__ */ new Set([...DEFAULT_EXCLUDE, ...this.ignore]);
|
|
28
|
-
compiler.hooks.make.tapAsync("SwaggerCompilerPlugin", async (_, callback) => {
|
|
29
|
-
console.log("Build paused, switching to swagger build");
|
|
30
|
-
const spec = new spec_builder_default(this.swaggerDefinition);
|
|
31
|
-
for await (const dir of this.sources) {
|
|
32
|
-
const files = await collect(dir, {
|
|
33
|
-
extensions: [".js", ".cjs", ".mjs", ".ts", ".tsx", ".jsx", ".yaml", ".yml"],
|
|
34
|
-
includeDirs: false,
|
|
35
|
-
skip: [...skip]
|
|
36
|
-
});
|
|
37
|
-
if (this.verbose) {
|
|
38
|
-
console.log(`Found ${String(files.length)} files in ${dir}`);
|
|
39
|
-
console.log(files);
|
|
40
|
-
}
|
|
41
|
-
files.forEach((file) => {
|
|
42
|
-
if (this.verbose) {
|
|
43
|
-
console.log(`Parsing file ${file}`);
|
|
44
|
-
}
|
|
45
|
-
try {
|
|
46
|
-
const parsedJsDocumentFile = parse_file_default(file, comments_to_open_api_default, this.verbose);
|
|
47
|
-
spec.addData(parsedJsDocumentFile.map((item) => item.spec));
|
|
48
|
-
const parsedSwaggerJsDocumentFile = parse_file_default(file, comments_to_open_api_default2, this.verbose);
|
|
49
|
-
spec.addData(parsedSwaggerJsDocumentFile.map((item) => item.spec));
|
|
50
|
-
} catch (error) {
|
|
51
|
-
console.error(error);
|
|
52
|
-
exit(1);
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
try {
|
|
57
|
-
if (this.verbose) {
|
|
58
|
-
console.log("Validating swagger spec");
|
|
59
|
-
console.log(JSON.stringify(spec, null, 2));
|
|
60
|
-
}
|
|
61
|
-
await validate_default(JSON.parse(JSON.stringify(spec)));
|
|
62
|
-
} catch (error) {
|
|
63
|
-
console.error(error.toJSON());
|
|
64
|
-
exit(1);
|
|
65
|
-
}
|
|
66
|
-
const { assetsPath } = this;
|
|
67
|
-
mkdir(dirname(assetsPath), { recursive: true }, (error) => {
|
|
68
|
-
if (error) {
|
|
69
|
-
errorHandler(error);
|
|
70
|
-
}
|
|
71
|
-
writeFile(assetsPath, JSON.stringify(spec, null, 2), errorHandler);
|
|
72
|
-
});
|
|
73
|
-
if (this.verbose) {
|
|
74
|
-
console.log(`Written swagger spec to "${this.assetsPath}" file`);
|
|
75
|
-
}
|
|
76
|
-
console.log("switching back to normal build");
|
|
77
|
-
callback();
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
|
-
var swagger_compiler_plugin_default = SwaggerCompilerPlugin;
|
|
82
|
-
|
|
83
|
-
export { swagger_compiler_plugin_default as SwaggerCompilerPlugin };
|
|
84
|
-
//# sourceMappingURL=index.mjs.map
|
|
85
|
-
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/webpack/swagger-compiler-plugin.ts"],"names":["comments_to_open_api_default"],"mappings":"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","file":"index.mjs","sourcesContent":["import { mkdir, writeFile } from \"node:fs\";\nimport { dirname } from \"node:path\";\nimport { exit } from \"node:process\";\n\nimport { collect } from \"@visulima/fs\";\nimport type { Compiler } from \"webpack\";\n\nimport { DEFAULT_EXCLUDE } from \"../constants\";\nimport type { BaseDefinition } from \"../exported\";\nimport jsDocumentCommentsToOpenApi from \"../jsdoc/comments-to-open-api\";\nimport parseFile from \"../parse-file\";\nimport SpecBuilder from \"../spec-builder\";\nimport swaggerJsDocumentCommentsToOpenApi from \"../swagger-jsdoc/comments-to-open-api\";\nimport validate from \"../validate\";\n\nconst errorHandler = (error: any) => {\n if (error) {\n // eslint-disable-next-line no-console\n console.error(error);\n\n exit(1);\n }\n};\n\nclass SwaggerCompilerPlugin {\n private readonly assetsPath: string;\n\n private readonly ignore: (RegExp | string)[];\n\n private readonly sources: string[];\n\n private readonly swaggerDefinition: BaseDefinition;\n\n private readonly verbose: boolean;\n\n public constructor(\n assetsPath: string,\n sources: string[],\n swaggerDefinition: BaseDefinition,\n options: {\n ignore?: (RegExp | string)[];\n verbose?: boolean;\n },\n ) {\n this.assetsPath = assetsPath;\n this.swaggerDefinition = swaggerDefinition;\n this.sources = sources;\n this.verbose = options.verbose ?? false;\n this.ignore = options.ignore ?? [];\n }\n\n public apply(compiler: Compiler): void {\n const skip = new Set<RegExp | string>([...DEFAULT_EXCLUDE, ...this.ignore]);\n\n compiler.hooks.make.tapAsync(\"SwaggerCompilerPlugin\", async (_, callback: VoidFunction): Promise<void> => {\n // eslint-disable-next-line no-console\n console.log(\"Build paused, switching to swagger build\");\n\n const spec = new SpecBuilder(this.swaggerDefinition);\n\n // eslint-disable-next-line unicorn/prevent-abbreviations,no-loops/no-loops\n for await (const dir of this.sources) {\n const files: string[] = await collect(dir, {\n extensions: [\".js\", \".cjs\", \".mjs\", \".ts\", \".tsx\", \".jsx\", \".yaml\", \".yml\"],\n includeDirs: false,\n skip: [...skip],\n });\n\n if (this.verbose) {\n // eslint-disable-next-line no-console\n console.log(`Found ${String(files.length)} files in ${dir}`);\n // eslint-disable-next-line no-console\n console.log(files);\n }\n\n files.forEach((file) => {\n if (this.verbose) {\n // eslint-disable-next-line no-console\n console.log(`Parsing file ${file}`);\n }\n\n try {\n const parsedJsDocumentFile = parseFile(file, jsDocumentCommentsToOpenApi, this.verbose);\n\n spec.addData(parsedJsDocumentFile.map((item) => item.spec));\n\n const parsedSwaggerJsDocumentFile = parseFile(file, swaggerJsDocumentCommentsToOpenApi, this.verbose);\n\n spec.addData(parsedSwaggerJsDocumentFile.map((item) => item.spec));\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error);\n\n exit(1);\n }\n });\n }\n\n try {\n if (this.verbose) {\n // eslint-disable-next-line no-console\n console.log(\"Validating swagger spec\");\n // eslint-disable-next-line no-console\n console.log(JSON.stringify(spec, null, 2));\n }\n\n await validate(JSON.parse(JSON.stringify(spec)));\n } catch (error: any) {\n // eslint-disable-next-line no-console\n console.error(error.toJSON());\n\n exit(1);\n }\n\n const { assetsPath } = this;\n\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n mkdir(dirname(assetsPath), { recursive: true }, (error) => {\n if (error) {\n errorHandler(error);\n }\n\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n writeFile(assetsPath, JSON.stringify(spec, null, 2), errorHandler);\n });\n\n if (this.verbose) {\n // eslint-disable-next-line no-console\n console.log(`Written swagger spec to \"${this.assetsPath}\" file`);\n }\n\n // eslint-disable-next-line no-console\n console.log(\"switching back to normal build\");\n\n callback();\n });\n }\n}\n\nexport default SwaggerCompilerPlugin;\n"]}
|