@depup/openapi-typescript 7.13.0-depup.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 (106) hide show
  1. package/CHANGELOG.md +1162 -0
  2. package/CONTRIBUTING.md +149 -0
  3. package/LICENSE +21 -0
  4. package/README.md +32 -0
  5. package/bin/cli.js +297 -0
  6. package/changes.json +14 -0
  7. package/dist/index.cjs +152 -0
  8. package/dist/index.cjs.map +1 -0
  9. package/dist/index.d.cts +517 -0
  10. package/dist/index.d.mts +515 -0
  11. package/dist/index.d.ts +517 -0
  12. package/dist/index.mjs +85 -0
  13. package/dist/index.mjs.map +1 -0
  14. package/dist/lib/redoc.cjs +129 -0
  15. package/dist/lib/redoc.cjs.map +1 -0
  16. package/dist/lib/redoc.mjs +122 -0
  17. package/dist/lib/redoc.mjs.map +1 -0
  18. package/dist/lib/ts.cjs +470 -0
  19. package/dist/lib/ts.cjs.map +1 -0
  20. package/dist/lib/ts.mjs +431 -0
  21. package/dist/lib/ts.mjs.map +1 -0
  22. package/dist/lib/utils.cjs +295 -0
  23. package/dist/lib/utils.cjs.map +1 -0
  24. package/dist/lib/utils.mjs +278 -0
  25. package/dist/lib/utils.mjs.map +1 -0
  26. package/dist/transform/components-object.cjs +150 -0
  27. package/dist/transform/components-object.cjs.map +1 -0
  28. package/dist/transform/components-object.mjs +127 -0
  29. package/dist/transform/components-object.mjs.map +1 -0
  30. package/dist/transform/header-object.cjs +48 -0
  31. package/dist/transform/header-object.cjs.map +1 -0
  32. package/dist/transform/header-object.mjs +42 -0
  33. package/dist/transform/header-object.mjs.map +1 -0
  34. package/dist/transform/index.cjs +124 -0
  35. package/dist/transform/index.cjs.map +1 -0
  36. package/dist/transform/index.mjs +118 -0
  37. package/dist/transform/index.mjs.map +1 -0
  38. package/dist/transform/media-type-object.cjs +14 -0
  39. package/dist/transform/media-type-object.cjs.map +1 -0
  40. package/dist/transform/media-type-object.mjs +12 -0
  41. package/dist/transform/media-type-object.mjs.map +1 -0
  42. package/dist/transform/operation-object.cjs +105 -0
  43. package/dist/transform/operation-object.cjs.map +1 -0
  44. package/dist/transform/operation-object.mjs +96 -0
  45. package/dist/transform/operation-object.mjs.map +1 -0
  46. package/dist/transform/parameter-object.cjs +11 -0
  47. package/dist/transform/parameter-object.cjs.map +1 -0
  48. package/dist/transform/parameter-object.mjs +9 -0
  49. package/dist/transform/parameter-object.mjs.map +1 -0
  50. package/dist/transform/parameters-array.cjs +120 -0
  51. package/dist/transform/parameters-array.cjs.map +1 -0
  52. package/dist/transform/parameters-array.mjs +114 -0
  53. package/dist/transform/parameters-array.mjs.map +1 -0
  54. package/dist/transform/path-item-object.cjs +84 -0
  55. package/dist/transform/path-item-object.cjs.map +1 -0
  56. package/dist/transform/path-item-object.mjs +78 -0
  57. package/dist/transform/path-item-object.mjs.map +1 -0
  58. package/dist/transform/paths-enum.cjs +35 -0
  59. package/dist/transform/paths-enum.cjs.map +1 -0
  60. package/dist/transform/paths-enum.mjs +33 -0
  61. package/dist/transform/paths-enum.mjs.map +1 -0
  62. package/dist/transform/paths-object.cjs +134 -0
  63. package/dist/transform/paths-object.cjs.map +1 -0
  64. package/dist/transform/paths-object.mjs +128 -0
  65. package/dist/transform/paths-object.mjs.map +1 -0
  66. package/dist/transform/request-body-object.cjs +68 -0
  67. package/dist/transform/request-body-object.cjs.map +1 -0
  68. package/dist/transform/request-body-object.mjs +62 -0
  69. package/dist/transform/request-body-object.mjs.map +1 -0
  70. package/dist/transform/response-object.cjs +123 -0
  71. package/dist/transform/response-object.cjs.map +1 -0
  72. package/dist/transform/response-object.mjs +117 -0
  73. package/dist/transform/response-object.mjs.map +1 -0
  74. package/dist/transform/responses-object.cjs +36 -0
  75. package/dist/transform/responses-object.cjs.map +1 -0
  76. package/dist/transform/responses-object.mjs +30 -0
  77. package/dist/transform/responses-object.mjs.map +1 -0
  78. package/dist/transform/schema-object.cjs +502 -0
  79. package/dist/transform/schema-object.cjs.map +1 -0
  80. package/dist/transform/schema-object.mjs +493 -0
  81. package/dist/transform/schema-object.mjs.map +1 -0
  82. package/dist/transform/webhooks-object.cjs +37 -0
  83. package/dist/transform/webhooks-object.cjs.map +1 -0
  84. package/dist/transform/webhooks-object.mjs +31 -0
  85. package/dist/transform/webhooks-object.mjs.map +1 -0
  86. package/package.json +102 -0
  87. package/src/index.ts +108 -0
  88. package/src/lib/redoc.ts +164 -0
  89. package/src/lib/ts.ts +616 -0
  90. package/src/lib/utils.ts +394 -0
  91. package/src/transform/components-object.ts +161 -0
  92. package/src/transform/header-object.ts +45 -0
  93. package/src/transform/index.ts +116 -0
  94. package/src/transform/media-type-object.ts +18 -0
  95. package/src/transform/operation-object.ts +104 -0
  96. package/src/transform/parameter-object.ts +15 -0
  97. package/src/transform/parameters-array.ts +129 -0
  98. package/src/transform/path-item-object.ts +102 -0
  99. package/src/transform/paths-enum.ts +43 -0
  100. package/src/transform/paths-object.ts +134 -0
  101. package/src/transform/request-body-object.ts +59 -0
  102. package/src/transform/response-object.ts +112 -0
  103. package/src/transform/responses-object.ts +36 -0
  104. package/src/transform/schema-object.ts +737 -0
  105. package/src/transform/webhooks-object.ts +27 -0
  106. package/src/types.ts +735 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../src/index.ts"],"sourcesContent":["import { performance } from \"node:perf_hooks\";\nimport type { Readable } from \"node:stream\";\nimport { createConfig } from \"@redocly/openapi-core\";\nimport type ts from \"typescript\";\nimport { validateAndBundle } from \"./lib/redoc.js\";\nimport { debug, resolveRef, scanDiscriminators } from \"./lib/utils.js\";\nimport transformSchema from \"./transform/index.js\";\nimport type { GlobalContext, OpenAPI3, OpenAPITSOptions } from \"./types.js\";\n\nexport * from \"./lib/ts.js\";\nexport * from \"./lib/utils.js\";\nexport { default as transformComponentsObject } from \"./transform/components-object.js\";\nexport { default as transformHeaderObject } from \"./transform/header-object.js\";\nexport { default as transformSchema } from \"./transform/index.js\";\nexport { default as transformMediaTypeObject } from \"./transform/media-type-object.js\";\nexport * from \"./transform/operation-object.js\";\nexport { default as transformOperationObject } from \"./transform/operation-object.js\";\nexport { default as transformParameterObject } from \"./transform/parameter-object.js\";\nexport * from \"./transform/path-item-object.js\";\nexport { default as transformPathItemObject } from \"./transform/path-item-object.js\";\nexport { default as transformPathsObject } from \"./transform/paths-object.js\";\nexport { default as transformRequestBodyObject } from \"./transform/request-body-object.js\";\nexport { default as transformResponseObject } from \"./transform/response-object.js\";\nexport { default as transformResponsesObject } from \"./transform/responses-object.js\";\nexport * from \"./transform/schema-object.js\";\nexport { default as transformSchemaObject } from \"./transform/schema-object.js\";\nexport * from \"./types.js\";\n\nexport const COMMENT_HEADER = `/**\n * This file was auto-generated by openapi-typescript.\n * Do not make direct changes to the file.\n */\n\n`;\n\n/**\n * Convert an OpenAPI schema to TypesScript AST\n * @param {string|URL|object|Readable} source OpenAPI schema source:\n * - YAML: string\n * - JSON: parsed object\n * - URL: URL to a YAML or JSON file (local or remote)\n * - Readable: Readable stream of YAML or JSON\n */\nexport default async function openapiTS(\n source: string | URL | OpenAPI3 | Buffer | Readable,\n options: OpenAPITSOptions = {} as Partial<OpenAPITSOptions>,\n): Promise<ts.Node[]> {\n if (!source) {\n throw new Error(\"Empty schema. Please specify a URL, file path, or Redocly Config\");\n }\n\n const redoc =\n options.redocly ??\n (await createConfig(\n {\n rules: {\n \"operation-operationId-unique\": { severity: \"error\" }, // throw error on duplicate operationIDs\n },\n },\n { extends: [\"minimal\"] },\n ));\n\n const schema = await validateAndBundle(source, {\n redoc,\n cwd: options.cwd instanceof URL ? options.cwd : new URL(`file://${options.cwd ?? process.cwd()}/`),\n silent: options.silent ?? false,\n });\n\n const ctx: GlobalContext = {\n additionalProperties: options.additionalProperties ?? false,\n alphabetize: options.alphabetize ?? false,\n arrayLength: options.arrayLength ?? false,\n defaultNonNullable: options.defaultNonNullable ?? true,\n discriminators: scanDiscriminators(schema, options),\n emptyObjectsUnknown: options.emptyObjectsUnknown ?? false,\n enum: options.enum ?? false,\n enumValues: options.enumValues ?? false,\n conditionalEnums: options.conditionalEnums ?? false,\n dedupeEnums: options.dedupeEnums ?? false,\n excludeDeprecated: options.excludeDeprecated ?? false,\n exportType: options.exportType ?? false,\n immutable: options.immutable ?? false,\n rootTypes: options.rootTypes ?? false,\n rootTypesNoSchemaPrefix: options.rootTypesNoSchemaPrefix ?? false,\n rootTypesKeepCasing: options.rootTypesKeepCasing ?? false,\n injectFooter: [],\n pathParamsAsTypes: options.pathParamsAsTypes ?? false,\n postTransform: typeof options.postTransform === \"function\" ? options.postTransform : undefined,\n propertiesRequiredByDefault: options.propertiesRequiredByDefault ?? false,\n redoc,\n silent: options.silent ?? false,\n inject: options.inject ?? undefined,\n transform: typeof options.transform === \"function\" ? options.transform : undefined,\n transformProperty: typeof options.transformProperty === \"function\" ? options.transformProperty : undefined,\n makePathsEnum: options.makePathsEnum ?? false,\n generatePathParams: options.generatePathParams ?? false,\n readWriteMarkers: options.readWriteMarkers ?? false,\n resolve($ref) {\n return resolveRef(schema, $ref, { silent: options.silent ?? false });\n },\n };\n\n const transformT = performance.now();\n const result = transformSchema(schema, ctx);\n debug(\"Completed AST transformation for entire document\", \"ts\", performance.now() - transformT);\n\n return result;\n}\n"],"names":["redoc","createConfig","validateAndBundle","scanDiscriminators","resolveRef","performance","transformSchema","debug"],"mappings":"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"}
@@ -0,0 +1,517 @@
1
+ import { Readable } from 'node:stream';
2
+ import ts from 'typescript';
3
+ import { PathLike } from 'node:fs';
4
+ import { Config, Referenced } from '@redocly/openapi-core';
5
+ export { default as c } from 'ansi-colors';
6
+
7
+ interface Extensable {
8
+ [key: `x-${string}`]: any;
9
+ }
10
+ interface OpenAPI3 extends Extensable {
11
+ openapi: string;
12
+ info: InfoObject;
13
+ jsonSchemaDialect?: string;
14
+ servers?: ServerObject[];
15
+ paths?: PathsObject;
16
+ webhooks?: {
17
+ [id: string]: PathItemObject | ReferenceObject;
18
+ };
19
+ components?: ComponentsObject;
20
+ security?: SecurityRequirementObject[];
21
+ tags?: TagObject[];
22
+ externalDocs?: ExternalDocumentationObject;
23
+ $defs?: $defs;
24
+ }
25
+ interface InfoObject extends Extensable {
26
+ title: string;
27
+ summary?: string;
28
+ description?: string;
29
+ termsOfService?: string;
30
+ contact?: ContactObject;
31
+ license?: LicenseObject;
32
+ version: string;
33
+ }
34
+ interface ContactObject extends Extensable {
35
+ name?: string;
36
+ url?: string;
37
+ email?: string;
38
+ }
39
+ interface LicenseObject extends Extensable {
40
+ name: string;
41
+ identifier: string;
42
+ url: string;
43
+ }
44
+ interface ServerObject extends Extensable {
45
+ url: string;
46
+ description: string;
47
+ variables: {
48
+ [name: string]: ServerVariableObject;
49
+ };
50
+ }
51
+ interface ServerVariableObject extends Extensable {
52
+ enum?: string[];
53
+ default: string;
54
+ description?: string;
55
+ }
56
+ interface ComponentsObject extends Extensable {
57
+ schemas?: Record<string, SchemaObject>;
58
+ responses?: Record<string, ResponseObject | ReferenceObject>;
59
+ parameters?: Record<string, ParameterObject | ReferenceObject>;
60
+ examples?: Record<string, ExampleObject | ReferenceObject>;
61
+ requestBodies?: Record<string, RequestBodyObject | ReferenceObject>;
62
+ headers?: Record<string, HeaderObject | ReferenceObject>;
63
+ securitySchemes?: Record<string, SecuritySchemeObject | ReferenceObject>;
64
+ links?: Record<string, LinkObject | ReferenceObject>;
65
+ callbacks?: Record<string, CallbackObject | ReferenceObject>;
66
+ pathItems?: Record<string, PathItemObject | ReferenceObject>;
67
+ }
68
+ interface PathsObject {
69
+ [pathname: string]: PathItemObject | ReferenceObject;
70
+ }
71
+ interface WebhooksObject {
72
+ [name: string]: PathItemObject;
73
+ }
74
+ interface PathItemObject extends Extensable {
75
+ get?: OperationObject | ReferenceObject;
76
+ put?: OperationObject | ReferenceObject;
77
+ post?: OperationObject | ReferenceObject;
78
+ delete?: OperationObject | ReferenceObject;
79
+ options?: OperationObject | ReferenceObject;
80
+ head?: OperationObject | ReferenceObject;
81
+ patch?: OperationObject | ReferenceObject;
82
+ trace?: OperationObject | ReferenceObject;
83
+ servers?: ServerObject[];
84
+ parameters?: (ParameterObject | ReferenceObject)[];
85
+ }
86
+ interface OperationObject extends Extensable {
87
+ tags?: string[];
88
+ summary?: string;
89
+ description?: string;
90
+ externalDocs?: ExternalDocumentationObject;
91
+ operationId?: string;
92
+ parameters?: (ParameterObject | ReferenceObject)[];
93
+ requestBody?: RequestBodyObject | ReferenceObject;
94
+ responses?: ResponsesObject;
95
+ callbacks?: Record<string, CallbackObject | ReferenceObject>;
96
+ deprecated?: boolean;
97
+ security?: SecurityRequirementObject[];
98
+ servers?: ServerObject[];
99
+ }
100
+ interface ExternalDocumentationObject extends Extensable {
101
+ description?: string;
102
+ url: string;
103
+ }
104
+ interface ParameterObject extends Extensable {
105
+ name: string;
106
+ in: "query" | "header" | "path" | "cookie";
107
+ description?: string;
108
+ required?: boolean;
109
+ deprecated?: boolean;
110
+ allowEmptyValue?: boolean;
111
+ style?: string;
112
+ explode?: boolean;
113
+ allowReserved?: boolean;
114
+ schema?: SchemaObject;
115
+ example?: any;
116
+ examples?: {
117
+ [name: string]: ExampleObject | ReferenceObject;
118
+ };
119
+ content?: {
120
+ [contentType: string]: MediaTypeObject | ReferenceObject;
121
+ };
122
+ }
123
+ interface RequestBodyObject extends Extensable {
124
+ description?: string;
125
+ content: {
126
+ [contentType: string]: MediaTypeObject | ReferenceObject;
127
+ };
128
+ required?: boolean;
129
+ }
130
+ interface MediaTypeObject extends Extensable {
131
+ schema?: SchemaObject | ReferenceObject;
132
+ example?: any;
133
+ examples?: {
134
+ [name: string]: ExampleObject | ReferenceObject;
135
+ };
136
+ encoding?: {
137
+ [propertyName: string]: EncodingObject;
138
+ };
139
+ }
140
+ interface EncodingObject extends Extensable {
141
+ contentType?: string;
142
+ headers?: {
143
+ [name: string]: HeaderObject | ReferenceObject;
144
+ };
145
+ style?: string;
146
+ explode?: string;
147
+ allowReserved?: string;
148
+ }
149
+ type ResponsesObject = {
150
+ [responseCode: string]: ResponseObject | ReferenceObject;
151
+ } & {
152
+ default?: ResponseObject | ReferenceObject;
153
+ };
154
+ interface ResponseObject extends Extensable {
155
+ description: string;
156
+ headers?: {
157
+ [name: string]: HeaderObject | ReferenceObject;
158
+ };
159
+ content?: {
160
+ [contentType: string]: MediaTypeObject;
161
+ };
162
+ links?: {
163
+ [name: string]: LinkObject | ReferenceObject;
164
+ };
165
+ }
166
+ type CallbackObject = Record<string, PathItemObject>;
167
+ interface ExampleObject extends Extensable {
168
+ summary?: string;
169
+ description?: string;
170
+ value?: any;
171
+ externalValue?: string;
172
+ }
173
+ interface LinkObject extends Extensable {
174
+ operationRef?: string;
175
+ operationId?: string;
176
+ parameters?: {
177
+ [name: string]: `$${string}`;
178
+ };
179
+ requestBody?: `$${string}`;
180
+ description?: string;
181
+ server?: ServerObject;
182
+ }
183
+ type HeaderObject = Omit<ParameterObject, "name" | "in">;
184
+ interface TagObject extends Extensable {
185
+ name: string;
186
+ description?: string;
187
+ externalDocs?: ExternalDocumentationObject;
188
+ }
189
+ interface ReferenceObject extends Extensable {
190
+ $ref: string;
191
+ summary?: string;
192
+ description?: string;
193
+ }
194
+ type SchemaObject = {
195
+ discriminator?: DiscriminatorObject;
196
+ xml?: XMLObject;
197
+ externalDocs?: ExternalDocumentationObject;
198
+ example?: any;
199
+ title?: string;
200
+ description?: string;
201
+ $comment?: string;
202
+ deprecated?: boolean;
203
+ readOnly?: boolean;
204
+ writeOnly?: boolean;
205
+ enum?: unknown[];
206
+ const?: unknown;
207
+ default?: unknown;
208
+ format?: string;
209
+ nullable?: boolean;
210
+ oneOf?: (SchemaObject | ReferenceObject)[];
211
+ allOf?: (SchemaObject | ReferenceObject)[];
212
+ anyOf?: (SchemaObject | ReferenceObject)[];
213
+ required?: string[];
214
+ [key: `x-${string}`]: any;
215
+ } & (StringSubtype | NumberSubtype | IntegerSubtype | ArraySubtype | BooleanSubtype | NullSubtype | ObjectSubtype | {
216
+ type: ("string" | "number" | "integer" | "array" | "boolean" | "null" | "object")[];
217
+ });
218
+ interface TransformObject {
219
+ schema: ts.TypeNode;
220
+ questionToken: boolean;
221
+ }
222
+ interface StringSubtype {
223
+ type: "string" | ["string", "null"];
224
+ enum?: (string | ReferenceObject)[];
225
+ }
226
+ interface NumberSubtype {
227
+ type: "number" | ["number", "null"];
228
+ minimum?: number;
229
+ maximum?: number;
230
+ enum?: (number | ReferenceObject)[];
231
+ }
232
+ interface IntegerSubtype {
233
+ type: "integer" | ["integer", "null"];
234
+ minimum?: number;
235
+ maximum?: number;
236
+ enum?: (number | ReferenceObject)[];
237
+ }
238
+ interface ArraySubtype {
239
+ type: "array" | ["array", "null"];
240
+ prefixItems?: (SchemaObject | ReferenceObject)[];
241
+ items?: SchemaObject | ReferenceObject | (SchemaObject | ReferenceObject)[];
242
+ minItems?: number;
243
+ maxItems?: number;
244
+ enum?: (SchemaObject | ReferenceObject)[];
245
+ }
246
+ interface BooleanSubtype {
247
+ type: "boolean" | ["boolean", "null"];
248
+ enum?: (boolean | ReferenceObject)[];
249
+ }
250
+ interface NullSubtype {
251
+ type: "null";
252
+ }
253
+ interface ObjectSubtype {
254
+ type: "object" | ["object", "null"];
255
+ properties?: {
256
+ [name: string]: SchemaObject | ReferenceObject;
257
+ };
258
+ additionalProperties?: boolean | Record<string, never> | SchemaObject | ReferenceObject;
259
+ patternProperties?: Record<string, SchemaObject | ReferenceObject>;
260
+ required?: string[];
261
+ allOf?: (SchemaObject | ReferenceObject)[];
262
+ anyOf?: (SchemaObject | ReferenceObject)[];
263
+ enum?: (SchemaObject | ReferenceObject)[];
264
+ $defs?: $defs;
265
+ }
266
+ interface DiscriminatorObject {
267
+ propertyName: string;
268
+ mapping?: Record<string, string>;
269
+ oneOf?: string[];
270
+ }
271
+ interface XMLObject extends Extensable {
272
+ name?: string;
273
+ namespace?: string;
274
+ prefix?: string;
275
+ attribute?: boolean;
276
+ wrapped?: boolean;
277
+ }
278
+ type SecuritySchemeObject = {
279
+ description?: string;
280
+ [key: `x-${string}`]: any;
281
+ } & ({
282
+ type: "apiKey";
283
+ name: string;
284
+ in: "query" | "header" | "cookie";
285
+ } | {
286
+ type: "http";
287
+ scheme: string;
288
+ bearer?: string;
289
+ } | {
290
+ type: "mutualTLS";
291
+ } | {
292
+ type: "oauth2";
293
+ flows: OAuthFlowsObject;
294
+ } | {
295
+ type: "openIdConnect";
296
+ openIdConnectUrl: string;
297
+ });
298
+ interface OAuthFlowsObject extends Extensable {
299
+ implicit?: OAuthFlowObject;
300
+ password?: OAuthFlowObject;
301
+ clientCredentials?: OAuthFlowObject;
302
+ authorizationCode?: OAuthFlowObject;
303
+ }
304
+ interface OAuthFlowObject extends Extensable {
305
+ authorizationUrl: string;
306
+ tokenUrl: string;
307
+ refreshUrl: string;
308
+ scopes: {
309
+ [name: string]: string;
310
+ };
311
+ }
312
+ type SecurityRequirementObject = {
313
+ [P in keyof ComponentsObject["securitySchemes"]]?: string[];
314
+ };
315
+ interface OpenAPITSOptions {
316
+ additionalProperties?: boolean;
317
+ alphabetize?: boolean;
318
+ arrayLength?: boolean;
319
+ emptyObjectsUnknown?: boolean;
320
+ cwd?: PathLike;
321
+ defaultNonNullable?: boolean;
322
+ excludeDeprecated?: boolean;
323
+ transform?: (schemaObject: SchemaObject, options: TransformNodeOptions) => ts.TypeNode | TransformObject | undefined;
324
+ postTransform?: (type: ts.TypeNode, options: TransformNodeOptions) => ts.TypeNode | undefined;
325
+ transformProperty?: (property: ts.PropertySignature, schemaObject: SchemaObject, options: TransformNodeOptions) => ts.PropertySignature | undefined;
326
+ immutable?: boolean;
327
+ silent?: boolean;
328
+ version?: number;
329
+ exportType?: boolean;
330
+ enum?: boolean;
331
+ enumValues?: boolean;
332
+ conditionalEnums?: boolean;
333
+ dedupeEnums?: boolean;
334
+ pathParamsAsTypes?: boolean;
335
+ propertiesRequiredByDefault?: boolean;
336
+ rootTypes?: boolean;
337
+ rootTypesNoSchemaPrefix?: boolean;
338
+ rootTypesKeepCasing?: boolean;
339
+ redocly?: Config;
340
+ inject?: string;
341
+ makePathsEnum?: boolean;
342
+ generatePathParams?: boolean;
343
+ readWriteMarkers?: boolean;
344
+ }
345
+ interface GlobalContext {
346
+ additionalProperties: boolean;
347
+ alphabetize: boolean;
348
+ arrayLength: boolean;
349
+ defaultNonNullable: boolean;
350
+ discriminators: {
351
+ objects: Record<string, DiscriminatorObject>;
352
+ refsHandled: string[];
353
+ };
354
+ emptyObjectsUnknown: boolean;
355
+ enum: boolean;
356
+ enumValues: boolean;
357
+ conditionalEnums: boolean;
358
+ dedupeEnums: boolean;
359
+ excludeDeprecated: boolean;
360
+ exportType: boolean;
361
+ immutable: boolean;
362
+ injectFooter: ts.Node[];
363
+ pathParamsAsTypes: boolean;
364
+ postTransform: OpenAPITSOptions["postTransform"];
365
+ propertiesRequiredByDefault: boolean;
366
+ rootTypes: boolean;
367
+ rootTypesNoSchemaPrefix: boolean;
368
+ rootTypesKeepCasing: boolean;
369
+ redoc: Config;
370
+ silent: boolean;
371
+ transform: OpenAPITSOptions["transform"];
372
+ transformProperty: OpenAPITSOptions["transformProperty"];
373
+ resolve<T>($ref: string): T | undefined;
374
+ inject?: string;
375
+ makePathsEnum: boolean;
376
+ generatePathParams: boolean;
377
+ readWriteMarkers: boolean;
378
+ }
379
+ type $defs = Record<string, SchemaObject>;
380
+ interface TransformNodeOptions {
381
+ path?: string;
382
+ schema?: SchemaObject | ReferenceObject;
383
+ ctx: GlobalContext;
384
+ }
385
+
386
+ declare const JS_PROPERTY_INDEX_RE: RegExp;
387
+ declare const JS_ENUM_INVALID_CHARS_RE: RegExp;
388
+ declare const JS_PROPERTY_INDEX_INVALID_CHARS_RE: RegExp;
389
+ declare const SPECIAL_CHARACTER_MAP: Record<string, string>;
390
+ declare const BOOLEAN: ts.KeywordTypeNode<ts.SyntaxKind.BooleanKeyword>;
391
+ declare const FALSE: ts.LiteralTypeNode;
392
+ declare const NEVER: ts.KeywordTypeNode<ts.SyntaxKind.NeverKeyword>;
393
+ declare const NULL: ts.LiteralTypeNode;
394
+ declare const NUMBER: ts.KeywordTypeNode<ts.SyntaxKind.NumberKeyword>;
395
+ declare const QUESTION_TOKEN: ts.PunctuationToken<ts.SyntaxKind.QuestionToken>;
396
+ declare const STRING: ts.KeywordTypeNode<ts.SyntaxKind.StringKeyword>;
397
+ declare const TRUE: ts.LiteralTypeNode;
398
+ declare const UNDEFINED: ts.KeywordTypeNode<ts.SyntaxKind.UndefinedKeyword>;
399
+ declare const UNKNOWN: ts.KeywordTypeNode<ts.SyntaxKind.UnknownKeyword>;
400
+ interface AnnotatedSchemaObject {
401
+ const?: unknown;
402
+ default?: unknown;
403
+ deprecated?: boolean;
404
+ description?: string;
405
+ enum?: unknown[];
406
+ example?: string;
407
+ examples?: unknown;
408
+ format?: string;
409
+ nullable?: boolean;
410
+ summary?: string;
411
+ title?: string;
412
+ type?: string | string[];
413
+ }
414
+ declare function addJSDocComment(schemaObject: AnnotatedSchemaObject, node: ts.PropertySignature): void;
415
+ type OapiRefResolved = Referenced<ParameterObject>;
416
+ interface OapiRefOptions {
417
+ deep?: boolean;
418
+ extractProperties?: string[];
419
+ }
420
+ declare function oapiRef(path: string, resolved?: OapiRefResolved, options?: OapiRefOptions): ts.TypeNode;
421
+ interface AstToStringOptions {
422
+ fileName?: string;
423
+ sourceText?: string;
424
+ formatOptions?: ts.PrinterOptions;
425
+ }
426
+ declare function astToString(ast: ts.Node | ts.Node[] | ts.TypeElement | ts.TypeElement[], options?: AstToStringOptions): string;
427
+ declare function stringToAST(source: string): unknown[];
428
+ declare function tsDedupe(types: ts.TypeNode[]): ts.TypeNode[];
429
+ declare const enumCache: Map<string, ts.EnumDeclaration>;
430
+ declare function tsEnum(name: string, members: (string | number)[], metadata?: {
431
+ name?: string;
432
+ description?: string | null;
433
+ }[], options?: {
434
+ export?: boolean;
435
+ shouldCache?: boolean;
436
+ }): ts.EnumDeclaration;
437
+ declare function tsArrayLiteralExpression(name: string, elementType: ts.TypeNode, values: (string | number)[], options?: {
438
+ export?: boolean;
439
+ readonly?: boolean;
440
+ injectFooter?: ts.Node[];
441
+ }): ts.VariableStatement;
442
+ declare function tsEnumMember(value: string | number, metadata?: {
443
+ name?: string;
444
+ description?: string | null;
445
+ }): ts.EnumMember;
446
+ declare function tsIntersection(types: ts.TypeNode[]): ts.TypeNode;
447
+ declare function tsIsPrimitive(type: ts.TypeNode): boolean;
448
+ declare function tsLiteral(value: unknown): ts.TypeNode;
449
+ declare function tsModifiers(modifiers: {
450
+ readonly?: boolean;
451
+ export?: boolean;
452
+ }): ts.Modifier[];
453
+ declare function tsNullable(types: ts.TypeNode[]): ts.TypeNode;
454
+ declare function tsOmit(type: ts.TypeNode, keys: string[]): ts.TypeNode;
455
+ declare function tsRecord(key: ts.TypeNode, value: ts.TypeNode): ts.TypeReferenceNode;
456
+ declare function tsPropertyIndex(index: string | number): ts.Identifier | ts.NumericLiteral | ts.StringLiteral;
457
+ declare function tsUnion(types: ts.TypeNode[]): ts.TypeNode;
458
+ declare function tsWithRequired(type: ts.TypeNode, keys: string[], injectFooter: ts.Node[]): ts.TypeNode;
459
+ declare function tsReadonlyArray(type: ts.TypeNode, injectFooter?: ts.Node[]): ts.TypeNode;
460
+
461
+ declare function createDiscriminatorProperty(discriminator: DiscriminatorObject, { path, readonly }: {
462
+ path: string;
463
+ readonly?: boolean;
464
+ }): ts.TypeElement;
465
+ declare function createRef(parts: (number | string | undefined | null)[]): string;
466
+ declare function debug(msg: string, group?: string, time?: number): void;
467
+ declare function error(msg: string): void;
468
+ declare function formatTime(t: number): string;
469
+ declare function getEntries<T>(obj: ArrayLike<T> | Record<string, T>, options?: {
470
+ alphabetize?: boolean;
471
+ excludeDeprecated?: boolean;
472
+ }): [string, T][];
473
+ declare function resolveRef<T>(schema: any, $ref: string, { silent, visited }: {
474
+ silent: boolean;
475
+ visited?: string[];
476
+ }): T | undefined;
477
+ declare function scanDiscriminators(schema: OpenAPI3, options: OpenAPITSOptions): {
478
+ objects: Record<string, DiscriminatorObject>;
479
+ refsHandled: string[];
480
+ };
481
+ declare function walk(obj: unknown, cb: (value: Record<string, unknown>, path: (string | number)[]) => void, path?: (string | number)[]): void;
482
+ declare function warn(msg: string, silent?: boolean): void;
483
+
484
+ declare function transformComponentsObject(componentsObject: ComponentsObject, ctx: GlobalContext): ts.Node[];
485
+
486
+ declare function transformHeaderObject(headerObject: HeaderObject, options: TransformNodeOptions): ts.TypeNode;
487
+
488
+ declare function transformSchema(schema: OpenAPI3, ctx: GlobalContext): ts.Node[];
489
+
490
+ declare function transformMediaTypeObject(mediaTypeObject: MediaTypeObject, options: TransformNodeOptions): ts.TypeNode;
491
+
492
+ declare function transformOperationObject(operationObject: OperationObject, options: TransformNodeOptions): ts.TypeElement[];
493
+ declare function injectOperationObject(operationId: string, operationObject: OperationObject, options: TransformNodeOptions): void;
494
+
495
+ declare function transformParameterObject(parameterObject: ParameterObject, options: TransformNodeOptions): ts.TypeNode;
496
+
497
+ type Method = "get" | "put" | "post" | "delete" | "options" | "head" | "patch" | "trace";
498
+ declare function transformPathItemObject(pathItem: PathItemObject, options: TransformNodeOptions): ts.TypeNode;
499
+
500
+ declare function transformPathsObject(pathsObject: PathsObject, ctx: GlobalContext): ts.TypeNode;
501
+
502
+ declare function transformRequestBodyObject(requestBodyObject: RequestBodyObject, options: TransformNodeOptions): ts.TypeNode;
503
+
504
+ declare function transformResponseObject(responseObject: ResponseObject, options: TransformNodeOptions): ts.TypeNode;
505
+
506
+ declare function transformResponsesObject(responsesObject: ResponsesObject, options: TransformNodeOptions): ts.TypeNode;
507
+
508
+ declare function transformSchemaObject(schemaObject: SchemaObject | ReferenceObject, options: TransformNodeOptions, fromAdditionalProperties?: boolean): ts.TypeNode;
509
+ declare function transformSchemaObjectWithComposition(schemaObject: SchemaObject | ReferenceObject, options: TransformNodeOptions, fromAdditionalProperties?: boolean): ts.TypeNode;
510
+
511
+ declare const COMMENT_HEADER = "/**\n * This file was auto-generated by openapi-typescript.\n * Do not make direct changes to the file.\n */\n\n";
512
+ declare function openapiTS(source: string | URL | OpenAPI3 | Buffer | Readable, options?: OpenAPITSOptions): Promise<ts.Node[]>;
513
+
514
+ // @ts-ignore
515
+ export = openapiTS;
516
+ export { BOOLEAN, COMMENT_HEADER, FALSE, JS_ENUM_INVALID_CHARS_RE, JS_PROPERTY_INDEX_INVALID_CHARS_RE, JS_PROPERTY_INDEX_RE, NEVER, NULL, NUMBER, QUESTION_TOKEN, SPECIAL_CHARACTER_MAP, STRING, TRUE, UNDEFINED, UNKNOWN, addJSDocComment, astToString, createDiscriminatorProperty, createRef, debug, enumCache, error, formatTime, getEntries, injectOperationObject, oapiRef, resolveRef, scanDiscriminators, stringToAST, transformComponentsObject, transformHeaderObject, transformMediaTypeObject, transformOperationObject, transformParameterObject, transformPathItemObject, transformPathsObject, transformRequestBodyObject, transformResponseObject, transformResponsesObject, transformSchema, transformSchemaObject, transformSchemaObjectWithComposition, tsArrayLiteralExpression, tsDedupe, tsEnum, tsEnumMember, tsIntersection, tsIsPrimitive, tsLiteral, tsModifiers, tsNullable, tsOmit, tsPropertyIndex, tsReadonlyArray, tsRecord, tsUnion, tsWithRequired, walk, warn };
517
+ export type { $defs, AnnotatedSchemaObject, ArraySubtype, AstToStringOptions, BooleanSubtype, CallbackObject, ComponentsObject, ContactObject, DiscriminatorObject, EncodingObject, ExampleObject, Extensable, ExternalDocumentationObject, GlobalContext, HeaderObject, InfoObject, IntegerSubtype, LicenseObject, LinkObject, MediaTypeObject, Method, NullSubtype, NumberSubtype, OAuthFlowObject, OAuthFlowsObject, OapiRefOptions, ObjectSubtype, OpenAPI3, OpenAPITSOptions, OperationObject, ParameterObject, PathItemObject, PathsObject, ReferenceObject, RequestBodyObject, ResponseObject, ResponsesObject, SchemaObject, SecurityRequirementObject, SecuritySchemeObject, ServerObject, ServerVariableObject, StringSubtype, TagObject, TransformNodeOptions, TransformObject, WebhooksObject, XMLObject };