@kubb/plugin-oas 0.0.0-canary-20251222142412 → 0.0.0-canary-20251222215628
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/dist/{SchemaGenerator-DnqO8-jJ.cjs → SchemaGenerator-CzfhDNTC.cjs} +49 -50
- package/dist/SchemaGenerator-CzfhDNTC.cjs.map +1 -0
- package/dist/{SchemaGenerator-D6Ux5Gk1.js → SchemaGenerator-RhszLa_8.js} +49 -50
- package/dist/SchemaGenerator-RhszLa_8.js.map +1 -0
- package/dist/{SchemaMapper-9utcuebF.d.ts → SchemaMapper-BQqC-HKo.d.ts} +21 -23
- package/dist/{SchemaMapper-Bas8HSlb.d.cts → SchemaMapper-DHoFzVaG.d.cts} +21 -23
- package/dist/{createGenerator-xSurgvql.d.ts → createGenerator-BOeO1z4V.d.cts} +7 -7
- package/dist/{createGenerator-BcQ7-2GF.d.cts → createGenerator-BPhjS5cM.d.ts} +7 -7
- package/dist/generators.d.cts +2 -2
- package/dist/generators.d.ts +2 -2
- package/dist/getSchemas-DFlFfjx-.cjs.map +1 -1
- package/dist/getSchemas-DH7Mz7ud.js.map +1 -1
- package/dist/hooks.cjs +1 -1
- package/dist/hooks.d.cts +2 -2
- package/dist/hooks.d.ts +2 -2
- package/dist/hooks.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/mocks.d.cts +1 -1
- package/dist/mocks.d.ts +1 -1
- package/dist/utils.d.cts +7 -7
- package/dist/utils.d.ts +7 -7
- package/package.json +3 -3
- package/src/SchemaGenerator.ts +66 -44
- package/src/utils/getSchemaFactory.ts +14 -10
- package/dist/SchemaGenerator-D6Ux5Gk1.js.map +0 -1
- package/dist/SchemaGenerator-DnqO8-jJ.cjs.map +0 -1
|
@@ -206,7 +206,7 @@ var SchemaGenerator = class SchemaGenerator extends BaseGenerator {
|
|
|
206
206
|
* optionally adds a union with null.
|
|
207
207
|
*/
|
|
208
208
|
parse(props) {
|
|
209
|
-
const options = this.#getOptions(props);
|
|
209
|
+
const options = this.#getOptions(props.name);
|
|
210
210
|
const defaultSchemas = this.#parseSchemaObject(props);
|
|
211
211
|
return uniqueWith(options.transformers?.schema?.(props, defaultSchemas) || defaultSchemas || [], isDeepEqual);
|
|
212
212
|
}
|
|
@@ -221,6 +221,11 @@ var SchemaGenerator = class SchemaGenerator extends BaseGenerator {
|
|
|
221
221
|
Object.values(schema.args?.additionalProperties || {}).forEach((entrySchema) => {
|
|
222
222
|
foundItems.push(...SchemaGenerator.deepSearch([entrySchema], keyword));
|
|
223
223
|
});
|
|
224
|
+
if (schema.args?.patternProperties) Object.values(schema.args.patternProperties).forEach((entrySchemas) => {
|
|
225
|
+
entrySchemas.forEach((entrySchema) => {
|
|
226
|
+
foundItems.push(...SchemaGenerator.deepSearch([entrySchema], keyword));
|
|
227
|
+
});
|
|
228
|
+
});
|
|
224
229
|
}
|
|
225
230
|
if (isKeyword(schema, schemaKeywords.array)) schema.args.items.forEach((entrySchema) => {
|
|
226
231
|
foundItems.push(...SchemaGenerator.deepSearch([entrySchema], keyword));
|
|
@@ -282,7 +287,7 @@ var SchemaGenerator = class SchemaGenerator extends BaseGenerator {
|
|
|
282
287
|
};
|
|
283
288
|
});
|
|
284
289
|
}
|
|
285
|
-
#getOptions(
|
|
290
|
+
#getOptions(name) {
|
|
286
291
|
const { override = [] } = this.context;
|
|
287
292
|
return {
|
|
288
293
|
...this.options,
|
|
@@ -292,14 +297,14 @@ var SchemaGenerator = class SchemaGenerator extends BaseGenerator {
|
|
|
292
297
|
})?.options || {}
|
|
293
298
|
};
|
|
294
299
|
}
|
|
295
|
-
#getUnknownType(
|
|
296
|
-
const options = this.#getOptions(
|
|
300
|
+
#getUnknownType(name) {
|
|
301
|
+
const options = this.#getOptions(name);
|
|
297
302
|
if (options.unknownType === "any") return schemaKeywords.any;
|
|
298
303
|
if (options.unknownType === "void") return schemaKeywords.void;
|
|
299
304
|
return schemaKeywords.unknown;
|
|
300
305
|
}
|
|
301
|
-
#getEmptyType(
|
|
302
|
-
const options = this.#getOptions(
|
|
306
|
+
#getEmptyType(name) {
|
|
307
|
+
const options = this.#getOptions(name);
|
|
303
308
|
if (options.emptySchemaType === "any") return schemaKeywords.any;
|
|
304
309
|
if (options.emptySchemaType === "void") return schemaKeywords.void;
|
|
305
310
|
return schemaKeywords.unknown;
|
|
@@ -307,7 +312,7 @@ var SchemaGenerator = class SchemaGenerator extends BaseGenerator {
|
|
|
307
312
|
/**
|
|
308
313
|
* Recursively creates a type literal with the given props.
|
|
309
314
|
*/
|
|
310
|
-
#parseProperties(
|
|
315
|
+
#parseProperties(name, schemaObject) {
|
|
311
316
|
const properties = schemaObject?.properties || {};
|
|
312
317
|
const additionalProperties = schemaObject?.additionalProperties;
|
|
313
318
|
const required = schemaObject?.required;
|
|
@@ -318,7 +323,7 @@ var SchemaGenerator = class SchemaGenerator extends BaseGenerator {
|
|
|
318
323
|
const isRequired = Array.isArray(required) ? required?.includes(propertyName) : !!required;
|
|
319
324
|
const nullable = propertySchema.nullable ?? propertySchema["x-nullable"] ?? false;
|
|
320
325
|
validationFunctions.push(...this.parse({
|
|
321
|
-
|
|
326
|
+
schema: propertySchema,
|
|
322
327
|
name: propertyName,
|
|
323
328
|
parentName: name
|
|
324
329
|
}));
|
|
@@ -334,20 +339,16 @@ var SchemaGenerator = class SchemaGenerator extends BaseGenerator {
|
|
|
334
339
|
...curr
|
|
335
340
|
}), {});
|
|
336
341
|
let additionalPropertiesSchemas = [];
|
|
337
|
-
if (additionalProperties) additionalPropertiesSchemas = additionalProperties === true || !Object.keys(additionalProperties).length ? [{ keyword: this.#getUnknownType({
|
|
338
|
-
|
|
339
|
-
name
|
|
340
|
-
}) }] : this.parse({
|
|
341
|
-
schemaObject: additionalProperties,
|
|
342
|
+
if (additionalProperties) additionalPropertiesSchemas = additionalProperties === true || !Object.keys(additionalProperties).length ? [{ keyword: this.#getUnknownType(name) }] : this.parse({
|
|
343
|
+
schema: additionalProperties,
|
|
344
|
+
name: null,
|
|
342
345
|
parentName: name
|
|
343
346
|
});
|
|
344
347
|
let patternPropertiesSchemas = {};
|
|
345
348
|
if (patternProperties && typeof patternProperties === "object") patternPropertiesSchemas = Object.entries(patternProperties).reduce((acc, [pattern, patternSchema]) => {
|
|
346
|
-
const schemas = patternSchema === true || !Object.keys(patternSchema).length ? [{ keyword: this.#getUnknownType({
|
|
347
|
-
|
|
348
|
-
name
|
|
349
|
-
}) }] : this.parse({
|
|
350
|
-
schemaObject: patternSchema,
|
|
349
|
+
const schemas = patternSchema === true || !Object.keys(patternSchema).length ? [{ keyword: this.#getUnknownType(name) }] : this.parse({
|
|
350
|
+
schema: patternSchema,
|
|
351
|
+
name: null,
|
|
351
352
|
parentName: name
|
|
352
353
|
});
|
|
353
354
|
return {
|
|
@@ -436,11 +437,20 @@ var SchemaGenerator = class SchemaGenerator extends BaseGenerator {
|
|
|
436
437
|
}
|
|
437
438
|
#addDiscriminatorToSchema({ schema, schemaObject, discriminator }) {
|
|
438
439
|
if (!isKeyword(schema, schemaKeywords.union)) return schema;
|
|
439
|
-
|
|
440
|
+
if (discriminator.propertyName.startsWith("x-")) return schema;
|
|
441
|
+
const objectPropertySchema = SchemaGenerator.find(this.parse({
|
|
442
|
+
schema: schemaObject,
|
|
443
|
+
name: null,
|
|
444
|
+
parentName: null
|
|
445
|
+
}), schemaKeywords.object);
|
|
440
446
|
return {
|
|
441
447
|
...schema,
|
|
442
448
|
args: Object.entries(discriminator.mapping || {}).map(([key, value]) => {
|
|
443
|
-
|
|
449
|
+
let arg;
|
|
450
|
+
if (value.startsWith("#kubb-inline-")) {
|
|
451
|
+
const index = Number.parseInt(value.replace("#kubb-inline-", ""), 10);
|
|
452
|
+
if (!Number.isNaN(index) && index >= 0 && index < schema.args.length) arg = schema.args[index];
|
|
453
|
+
} else arg = schema.args.find((item) => isKeyword(item, schemaKeywords.ref) && item.args.$ref === value);
|
|
444
454
|
if (!arg) return;
|
|
445
455
|
return {
|
|
446
456
|
keyword: schemaKeywords.and,
|
|
@@ -489,17 +499,11 @@ var SchemaGenerator = class SchemaGenerator extends BaseGenerator {
|
|
|
489
499
|
* This is the very core of the OpenAPI to TS conversion - it takes a
|
|
490
500
|
* schema and returns the appropriate type.
|
|
491
501
|
*/
|
|
492
|
-
#parseSchemaObject({
|
|
502
|
+
#parseSchemaObject({ schema: _schemaObject, name, parentName }) {
|
|
493
503
|
const normalizedSchema = this.context.oas.flattenSchema(_schemaObject);
|
|
494
504
|
const { schemaObject, version } = this.#getParsedSchemaObject(normalizedSchema);
|
|
495
|
-
const options = this.#getOptions(
|
|
496
|
-
|
|
497
|
-
name
|
|
498
|
-
});
|
|
499
|
-
const emptyType = this.#getEmptyType({
|
|
500
|
-
schemaObject,
|
|
501
|
-
name
|
|
502
|
-
});
|
|
505
|
+
const options = this.#getOptions(name);
|
|
506
|
+
const emptyType = this.#getEmptyType(name);
|
|
503
507
|
if (!schemaObject) return [{ keyword: emptyType }];
|
|
504
508
|
const baseItems = [{
|
|
505
509
|
keyword: schemaKeywords.schema,
|
|
@@ -562,7 +566,7 @@ var SchemaGenerator = class SchemaGenerator extends BaseGenerator {
|
|
|
562
566
|
if (items.length > 1) return [...[{
|
|
563
567
|
keyword: schemaKeywords.union,
|
|
564
568
|
args: items.map((item) => this.parse({
|
|
565
|
-
|
|
569
|
+
schema: {
|
|
566
570
|
...schemaObject,
|
|
567
571
|
type: item
|
|
568
572
|
},
|
|
@@ -611,7 +615,7 @@ var SchemaGenerator = class SchemaGenerator extends BaseGenerator {
|
|
|
611
615
|
keyword: schemaKeywords.union,
|
|
612
616
|
args: (schemaObject.oneOf || schemaObject.anyOf).map((item) => {
|
|
613
617
|
return item && this.parse({
|
|
614
|
-
|
|
618
|
+
schema: item,
|
|
615
619
|
name,
|
|
616
620
|
parentName
|
|
617
621
|
})[0];
|
|
@@ -626,7 +630,7 @@ var SchemaGenerator = class SchemaGenerator extends BaseGenerator {
|
|
|
626
630
|
}
|
|
627
631
|
if (schemaWithoutOneOf.properties) {
|
|
628
632
|
const propertySchemas = this.parse({
|
|
629
|
-
|
|
633
|
+
schema: schemaWithoutOneOf,
|
|
630
634
|
name,
|
|
631
635
|
parentName
|
|
632
636
|
});
|
|
@@ -650,7 +654,7 @@ var SchemaGenerator = class SchemaGenerator extends BaseGenerator {
|
|
|
650
654
|
args: schemaObject.allOf.flatMap((item) => {
|
|
651
655
|
if (this.#wouldCreateCircularReference(item, name)) return [];
|
|
652
656
|
return item ? this.parse({
|
|
653
|
-
|
|
657
|
+
schema: item,
|
|
654
658
|
name,
|
|
655
659
|
parentName
|
|
656
660
|
}) : [];
|
|
@@ -677,7 +681,7 @@ var SchemaGenerator = class SchemaGenerator extends BaseGenerator {
|
|
|
677
681
|
}
|
|
678
682
|
for (const item of parsedItems) {
|
|
679
683
|
const parsed = this.parse({
|
|
680
|
-
|
|
684
|
+
schema: item,
|
|
681
685
|
name,
|
|
682
686
|
parentName
|
|
683
687
|
});
|
|
@@ -685,7 +689,7 @@ var SchemaGenerator = class SchemaGenerator extends BaseGenerator {
|
|
|
685
689
|
}
|
|
686
690
|
}
|
|
687
691
|
if (schemaWithoutAllOf.properties) and.args = [...and.args || [], ...this.parse({
|
|
688
|
-
|
|
692
|
+
schema: schemaWithoutAllOf,
|
|
689
693
|
name,
|
|
690
694
|
parentName
|
|
691
695
|
})];
|
|
@@ -703,7 +707,7 @@ var SchemaGenerator = class SchemaGenerator extends BaseGenerator {
|
|
|
703
707
|
items: normalizedItems
|
|
704
708
|
};
|
|
705
709
|
return this.parse({
|
|
706
|
-
|
|
710
|
+
schema: normalizedSchema$1,
|
|
707
711
|
name,
|
|
708
712
|
parentName
|
|
709
713
|
});
|
|
@@ -807,13 +811,13 @@ var SchemaGenerator = class SchemaGenerator extends BaseGenerator {
|
|
|
807
811
|
max: max$1,
|
|
808
812
|
items: prefixItems.map((item) => {
|
|
809
813
|
return this.parse({
|
|
810
|
-
|
|
814
|
+
schema: item,
|
|
811
815
|
name,
|
|
812
816
|
parentName
|
|
813
817
|
})[0];
|
|
814
818
|
}).filter(Boolean),
|
|
815
819
|
rest: this.parse({
|
|
816
|
-
|
|
820
|
+
schema: items,
|
|
817
821
|
name,
|
|
818
822
|
parentName
|
|
819
823
|
})[0]
|
|
@@ -947,7 +951,7 @@ var SchemaGenerator = class SchemaGenerator extends BaseGenerator {
|
|
|
947
951
|
const min$1 = schemaObject.minimum ?? schemaObject.minLength ?? schemaObject.minItems ?? void 0;
|
|
948
952
|
const max$1 = schemaObject.maximum ?? schemaObject.maxLength ?? schemaObject.maxItems ?? void 0;
|
|
949
953
|
const items = this.parse({
|
|
950
|
-
|
|
954
|
+
schema: "items" in schemaObject ? schemaObject.items : [],
|
|
951
955
|
name,
|
|
952
956
|
parentName
|
|
953
957
|
});
|
|
@@ -977,15 +981,9 @@ var SchemaGenerator = class SchemaGenerator extends BaseGenerator {
|
|
|
977
981
|
};
|
|
978
982
|
return acc;
|
|
979
983
|
}, schemaObject || {});
|
|
980
|
-
return [...this.#parseProperties(
|
|
981
|
-
schemaObject: schemaObjectOverriden,
|
|
982
|
-
name
|
|
983
|
-
}), ...baseItems];
|
|
984
|
+
return [...this.#parseProperties(name, schemaObjectOverriden), ...baseItems];
|
|
984
985
|
}
|
|
985
|
-
return [...this.#parseProperties(
|
|
986
|
-
schemaObject,
|
|
987
|
-
name
|
|
988
|
-
}), ...baseItems];
|
|
986
|
+
return [...this.#parseProperties(name, schemaObject), ...baseItems];
|
|
989
987
|
}
|
|
990
988
|
if (schemaObject.type) {
|
|
991
989
|
const type = Array.isArray(schemaObject.type) ? schemaObject.type.filter((item) => item !== "null")[0] : schemaObject.type;
|
|
@@ -1025,10 +1023,11 @@ var SchemaGenerator = class SchemaGenerator extends BaseGenerator {
|
|
|
1025
1023
|
const schemaLimit = pLimit(10);
|
|
1026
1024
|
const writeTasks = generators.map((generator) => generatorLimit(async () => {
|
|
1027
1025
|
const schemaTasks = schemaEntries.map(([name, schemaObject]) => schemaLimit(async () => {
|
|
1028
|
-
const options = this.#getOptions(
|
|
1026
|
+
const options = this.#getOptions(name);
|
|
1029
1027
|
const tree = this.parse({
|
|
1028
|
+
schema: schemaObject,
|
|
1030
1029
|
name,
|
|
1031
|
-
|
|
1030
|
+
parentName: null
|
|
1032
1031
|
});
|
|
1033
1032
|
if (generator.type === "react") {
|
|
1034
1033
|
await buildSchema({
|
|
@@ -1075,4 +1074,4 @@ var SchemaGenerator = class SchemaGenerator extends BaseGenerator {
|
|
|
1075
1074
|
|
|
1076
1075
|
//#endregion
|
|
1077
1076
|
export { pLimit as a, buildSchema as i, buildOperation as n, buildOperations as r, SchemaGenerator as t };
|
|
1078
|
-
//# sourceMappingURL=SchemaGenerator-
|
|
1077
|
+
//# sourceMappingURL=SchemaGenerator-RhszLa_8.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaGenerator-RhszLa_8.js","names":["#head","#tail","#size","#getOptions","#parseSchemaObject","foundItems: SchemaKeywordMapper[T][]","foundItem: SchemaKeywordMapper[T] | undefined","mergedProperties: Record<string, Schema[]> | null","mergedAdditionalProps: Schema[]","newArgs: Schema[]","validationFunctions: Schema[]","additionalPropertiesSchemas: Schema[]","#getUnknownType","patternPropertiesSchemas: Record<string, Schema[]>","args: {\n properties: typeof propertiesSchemas\n additionalProperties: typeof additionalPropertiesSchemas\n patternProperties?: typeof patternPropertiesSchemas\n }","#usedAliasNames","#getRefAlias","arg: Schema | undefined","#getParsedSchemaObject","#getEmptyType","baseItems: Schema[]","union: SchemaKeywordMapper['union']","#addDiscriminatorToSchema","and: Schema","#wouldCreateCircularReference","resolvedSchemas: SchemaObject[]","parsedItems: SchemaObject[]","normalizedSchema","name","min","max","#parseProperties","inferredType: OpenAPIV3.NonArraySchemaObjectType | undefined"],"sources":["../../../node_modules/.pnpm/yocto-queue@1.2.2/node_modules/yocto-queue/index.js","../../../node_modules/.pnpm/p-limit@7.2.0/node_modules/p-limit/index.js","../src/utils.tsx","../src/SchemaGenerator.ts"],"sourcesContent":["/*\nHow it works:\n`this.#head` is an instance of `Node` which keeps track of its current value and nests another instance of `Node` that keeps the value that comes after it. When a value is provided to `.enqueue()`, the code needs to iterate through `this.#head`, going deeper and deeper to find the last value. However, iterating through every single item is slow. This problem is solved by saving a reference to the last value as `this.#tail` so that it can reference it to add a new value.\n*/\n\nclass Node {\n\tvalue;\n\tnext;\n\n\tconstructor(value) {\n\t\tthis.value = value;\n\t}\n}\n\nexport default class Queue {\n\t#head;\n\t#tail;\n\t#size;\n\n\tconstructor() {\n\t\tthis.clear();\n\t}\n\n\tenqueue(value) {\n\t\tconst node = new Node(value);\n\n\t\tif (this.#head) {\n\t\t\tthis.#tail.next = node;\n\t\t\tthis.#tail = node;\n\t\t} else {\n\t\t\tthis.#head = node;\n\t\t\tthis.#tail = node;\n\t\t}\n\n\t\tthis.#size++;\n\t}\n\n\tdequeue() {\n\t\tconst current = this.#head;\n\t\tif (!current) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#head = this.#head.next;\n\t\tthis.#size--;\n\n\t\t// Clean up tail reference when queue becomes empty\n\t\tif (!this.#head) {\n\t\t\tthis.#tail = undefined;\n\t\t}\n\n\t\treturn current.value;\n\t}\n\n\tpeek() {\n\t\tif (!this.#head) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn this.#head.value;\n\n\t\t// TODO: Node.js 18.\n\t\t// return this.#head?.value;\n\t}\n\n\tclear() {\n\t\tthis.#head = undefined;\n\t\tthis.#tail = undefined;\n\t\tthis.#size = 0;\n\t}\n\n\tget size() {\n\t\treturn this.#size;\n\t}\n\n\t* [Symbol.iterator]() {\n\t\tlet current = this.#head;\n\n\t\twhile (current) {\n\t\t\tyield current.value;\n\t\t\tcurrent = current.next;\n\t\t}\n\t}\n\n\t* drain() {\n\t\twhile (this.#head) {\n\t\t\tyield this.dequeue();\n\t\t}\n\t}\n}\n","import Queue from 'yocto-queue';\n\nexport default function pLimit(concurrency) {\n\tvalidateConcurrency(concurrency);\n\n\tconst queue = new Queue();\n\tlet activeCount = 0;\n\n\tconst resumeNext = () => {\n\t\t// Process the next queued function if we're under the concurrency limit\n\t\tif (activeCount < concurrency && queue.size > 0) {\n\t\t\tactiveCount++;\n\t\t\tqueue.dequeue()();\n\t\t}\n\t};\n\n\tconst next = () => {\n\t\tactiveCount--;\n\t\tresumeNext();\n\t};\n\n\tconst run = async (function_, resolve, arguments_) => {\n\t\t// Execute the function and capture the result promise\n\t\tconst result = (async () => function_(...arguments_))();\n\n\t\t// Resolve immediately with the promise (don't wait for completion)\n\t\tresolve(result);\n\n\t\t// Wait for the function to complete (success or failure)\n\t\t// We catch errors here to prevent unhandled rejections,\n\t\t// but the original promise rejection is preserved for the caller\n\t\ttry {\n\t\t\tawait result;\n\t\t} catch {}\n\n\t\t// Decrement active count and process next queued function\n\t\tnext();\n\t};\n\n\tconst enqueue = (function_, resolve, arguments_) => {\n\t\t// Queue the internal resolve function instead of the run function\n\t\t// to preserve the asynchronous execution context.\n\t\tnew Promise(internalResolve => { // eslint-disable-line promise/param-names\n\t\t\tqueue.enqueue(internalResolve);\n\t\t}).then(run.bind(undefined, function_, resolve, arguments_)); // eslint-disable-line promise/prefer-await-to-then\n\n\t\t// Start processing immediately if we haven't reached the concurrency limit\n\t\tif (activeCount < concurrency) {\n\t\t\tresumeNext();\n\t\t}\n\t};\n\n\tconst generator = (function_, ...arguments_) => new Promise(resolve => {\n\t\tenqueue(function_, resolve, arguments_);\n\t});\n\n\tObject.defineProperties(generator, {\n\t\tactiveCount: {\n\t\t\tget: () => activeCount,\n\t\t},\n\t\tpendingCount: {\n\t\t\tget: () => queue.size,\n\t\t},\n\t\tclearQueue: {\n\t\t\tvalue() {\n\t\t\t\tqueue.clear();\n\t\t\t},\n\t\t},\n\t\tconcurrency: {\n\t\t\tget: () => concurrency,\n\n\t\t\tset(newConcurrency) {\n\t\t\t\tvalidateConcurrency(newConcurrency);\n\t\t\t\tconcurrency = newConcurrency;\n\n\t\t\t\tqueueMicrotask(() => {\n\t\t\t\t\t// eslint-disable-next-line no-unmodified-loop-condition\n\t\t\t\t\twhile (activeCount < concurrency && queue.size > 0) {\n\t\t\t\t\t\tresumeNext();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t},\n\t\tmap: {\n\t\t\tasync value(iterable, function_) {\n\t\t\t\tconst promises = Array.from(iterable, (value, index) => this(function_, value, index));\n\t\t\t\treturn Promise.all(promises);\n\t\t\t},\n\t\t},\n\t});\n\n\treturn generator;\n}\n\nexport function limitFunction(function_, options) {\n\tconst {concurrency} = options;\n\tconst limit = pLimit(concurrency);\n\n\treturn (...arguments_) => limit(() => function_(...arguments_));\n}\n\nfunction validateConcurrency(concurrency) {\n\tif (!((Number.isInteger(concurrency) || concurrency === Number.POSITIVE_INFINITY) && concurrency > 0)) {\n\t\tthrow new TypeError('Expected `concurrency` to be a number from 1 and up');\n\t}\n}\n","import type { Config, Plugin, PluginFactoryOptions } from '@kubb/core'\nimport type { Operation, SchemaObject } from '@kubb/oas'\nimport { App, createReactFabric, type Fabric } from '@kubb/react-fabric'\nimport type { ReactGenerator } from './generators/createReactGenerator.ts'\nimport type { OperationGenerator } from './OperationGenerator.ts'\nimport type { SchemaGenerator, SchemaGeneratorOptions } from './SchemaGenerator.ts'\nimport type { Schema } from './SchemaMapper.ts'\n\ntype BuildOperationsOptions<TOptions extends PluginFactoryOptions> = {\n config: Config\n fabric: Fabric\n Component: ReactGenerator<any>['Operations']\n generator: Omit<OperationGenerator<TOptions>, 'build'>\n plugin: Plugin<TOptions>\n}\n\nexport async function buildOperations<TOptions extends PluginFactoryOptions>(\n operations: Array<Operation>,\n { config, fabric, plugin, generator, Component }: BuildOperationsOptions<TOptions>,\n): Promise<void> {\n if (!Component) {\n return undefined\n }\n\n const { pluginManager, oas, mode } = generator.context\n\n const fabricChild = createReactFabric()\n await fabricChild.render(() => {\n return (\n <App meta={{ pluginManager, plugin, mode, oas }}>\n <Component config={config} operations={operations} generator={generator} plugin={plugin} />\n </App>\n )\n })\n\n await fabric.context.fileManager.upsert(...fabricChild.files)\n}\n\ntype BuildOperationOptions<TOptions extends PluginFactoryOptions> = {\n config: Config\n fabric: Fabric\n Component: ReactGenerator<any>['Operation']\n generator: Omit<OperationGenerator<TOptions>, 'build'>\n plugin: Plugin<TOptions>\n}\n\nexport async function buildOperation<TOptions extends PluginFactoryOptions>(\n operation: Operation,\n { config, fabric, plugin, generator, Component }: BuildOperationOptions<TOptions>,\n): Promise<void> {\n if (!Component) {\n return undefined\n }\n\n const { pluginManager, oas, mode } = generator.context\n\n const fabricChild = createReactFabric()\n await fabricChild.render(() => {\n return (\n <App meta={{ pluginManager, plugin, mode, oas }}>\n <Component config={config} operation={operation} plugin={plugin} generator={generator} />\n </App>\n )\n })\n\n await fabric.context.fileManager.upsert(...fabricChild.files)\n}\n\ntype BuildSchemaOptions<TOptions extends PluginFactoryOptions> = {\n config: Config\n fabric: Fabric\n Component: ReactGenerator<any>['Schema']\n generator: Omit<SchemaGenerator<SchemaGeneratorOptions, TOptions>, 'build'>\n plugin: Plugin<TOptions>\n}\n\nexport async function buildSchema<TOptions extends PluginFactoryOptions>(\n schema: {\n name: string\n tree: Array<Schema>\n value: SchemaObject\n },\n { config, fabric, plugin, Component, generator }: BuildSchemaOptions<TOptions>,\n): Promise<void> {\n if (!Component) {\n return undefined\n }\n\n const { pluginManager, oas, mode } = generator.context\n\n const fabricChild = createReactFabric()\n await fabricChild.render(() => {\n return (\n <App meta={{ pluginManager, plugin, mode, oas }}>\n <Component config={config} schema={schema} plugin={plugin} generator={generator} />\n </App>\n )\n })\n\n await fabric.context.fileManager.upsert(...fabricChild.files)\n}\n","import type { KubbEvents, Plugin, PluginFactoryOptions, PluginManager, ResolveNameParams } from '@kubb/core'\nimport { BaseGenerator, type FileMetaBase } from '@kubb/core'\nimport transformers, { pascalCase } from '@kubb/core/transformers'\nimport { type AsyncEventEmitter, getUniqueName } from '@kubb/core/utils'\nimport type { KubbFile } from '@kubb/fabric-core/types'\nimport type { contentType, Oas, OpenAPIV3, SchemaObject } from '@kubb/oas'\nimport { isDiscriminator, isNullable, isReference } from '@kubb/oas'\nimport type { Fabric } from '@kubb/react-fabric'\nimport pLimit from 'p-limit'\nimport { isDeepEqual, isNumber, uniqueWith } from 'remeda'\nimport type { Generator } from './generators/types.ts'\nimport type { Schema, SchemaKeywordMapper } from './SchemaMapper.ts'\nimport { isKeyword, schemaKeywords } from './SchemaMapper.ts'\nimport type { OperationSchema, Override, Refs } from './types.ts'\nimport { getSchemaFactory } from './utils/getSchemaFactory.ts'\nimport { getSchemas } from './utils/getSchemas.ts'\nimport { buildSchema } from './utils.tsx'\n\nexport type GetSchemaGeneratorOptions<T extends SchemaGenerator<any, any, any>> = T extends SchemaGenerator<infer Options, any, any> ? Options : never\n\nexport type SchemaMethodResult<TFileMeta extends FileMetaBase> = Promise<KubbFile.File<TFileMeta> | Array<KubbFile.File<TFileMeta>> | null>\n\ntype Context<TOptions, TPluginOptions extends PluginFactoryOptions> = {\n fabric: Fabric\n oas: Oas\n pluginManager: PluginManager\n events?: AsyncEventEmitter<KubbEvents>\n /**\n * Current plugin\n */\n plugin: Plugin<TPluginOptions>\n mode: KubbFile.Mode\n include?: Array<'schemas' | 'responses' | 'requestBodies'>\n override: Array<Override<TOptions>> | undefined\n contentType?: contentType\n output?: string\n}\n\nexport type SchemaGeneratorOptions = {\n dateType: false | 'string' | 'stringOffset' | 'stringLocal' | 'date'\n unknownType: 'any' | 'unknown' | 'void'\n emptySchemaType: 'any' | 'unknown' | 'void'\n enumType?: 'enum' | 'asConst' | 'asPascalConst' | 'constEnum' | 'literal'\n enumSuffix?: string\n usedEnumNames?: Record<string, number>\n mapper?: Record<string, string>\n typed?: boolean\n transformers: {\n /**\n * Customize the names based on the type that is provided by the plugin.\n */\n name?: (name: ResolveNameParams['name'], type?: ResolveNameParams['type']) => string\n /**\n * Receive schema and name(propertName) and return FakerMeta array\n * TODO TODO add docs\n * @beta\n */\n schema?: (schemaProps: SchemaProps, defaultSchemas: Schema[]) => Array<Schema> | undefined\n }\n}\n\nexport type SchemaGeneratorBuildOptions = Omit<OperationSchema, 'name' | 'schema'>\n\ntype SchemaProps = {\n schema: SchemaObject | null\n name: string | null\n parentName: string | null\n}\n\nexport class SchemaGenerator<\n TOptions extends SchemaGeneratorOptions = SchemaGeneratorOptions,\n TPluginOptions extends PluginFactoryOptions = PluginFactoryOptions,\n TFileMeta extends FileMetaBase = FileMetaBase,\n> extends BaseGenerator<TOptions, Context<TOptions, TPluginOptions>> {\n // Collect the types of all referenced schemas, so we can export them later\n refs: Refs = {}\n\n // Keep track of already used type aliases\n #usedAliasNames: Record<string, number> = {}\n\n /**\n * Creates a type node from a given schema.\n * Delegates to getBaseTypeFromSchema internally and\n * optionally adds a union with null.\n */\n parse(props: SchemaProps): Schema[] {\n const options = this.#getOptions(props.name)\n\n const defaultSchemas = this.#parseSchemaObject(props)\n const schemas = options.transformers?.schema?.(props, defaultSchemas) || defaultSchemas || []\n\n return uniqueWith(schemas, isDeepEqual)\n }\n\n static deepSearch<T extends keyof SchemaKeywordMapper>(tree: Schema[] | undefined, keyword: T): Array<SchemaKeywordMapper[T]> {\n const foundItems: SchemaKeywordMapper[T][] = []\n\n tree?.forEach((schema) => {\n if (schema.keyword === keyword) {\n foundItems.push(schema as SchemaKeywordMapper[T])\n }\n\n if (isKeyword(schema, schemaKeywords.object)) {\n Object.values(schema.args?.properties || {}).forEach((entrySchema) => {\n foundItems.push(...SchemaGenerator.deepSearch<T>(entrySchema, keyword))\n })\n\n Object.values(schema.args?.additionalProperties || {}).forEach((entrySchema) => {\n foundItems.push(...SchemaGenerator.deepSearch<T>([entrySchema], keyword))\n })\n\n if (schema.args?.patternProperties) {\n Object.values(schema.args.patternProperties).forEach((entrySchemas) => {\n entrySchemas.forEach((entrySchema) => {\n foundItems.push(...SchemaGenerator.deepSearch<T>([entrySchema], keyword))\n })\n })\n }\n }\n\n if (isKeyword(schema, schemaKeywords.array)) {\n schema.args.items.forEach((entrySchema) => {\n foundItems.push(...SchemaGenerator.deepSearch<T>([entrySchema], keyword))\n })\n }\n\n if (isKeyword(schema, schemaKeywords.and)) {\n schema.args.forEach((entrySchema) => {\n foundItems.push(...SchemaGenerator.deepSearch<T>([entrySchema], keyword))\n })\n }\n\n if (isKeyword(schema, schemaKeywords.tuple)) {\n schema.args.items.forEach((entrySchema) => {\n foundItems.push(...SchemaGenerator.deepSearch<T>([entrySchema], keyword))\n })\n }\n\n if (isKeyword(schema, schemaKeywords.union)) {\n schema.args.forEach((entrySchema) => {\n foundItems.push(...SchemaGenerator.deepSearch<T>([entrySchema], keyword))\n })\n }\n })\n\n return foundItems\n }\n\n static find<T extends keyof SchemaKeywordMapper>(tree: Schema[] | undefined, keyword: T): SchemaKeywordMapper[T] | undefined {\n let foundItem: SchemaKeywordMapper[T] | undefined\n\n tree?.forEach((schema) => {\n if (!foundItem && schema.keyword === keyword) {\n foundItem = schema as SchemaKeywordMapper[T]\n }\n\n if (isKeyword(schema, schemaKeywords.array)) {\n schema.args.items.forEach((entrySchema) => {\n if (!foundItem) {\n foundItem = SchemaGenerator.find<T>([entrySchema], keyword)\n }\n })\n }\n\n if (isKeyword(schema, schemaKeywords.and)) {\n schema.args.forEach((entrySchema) => {\n if (!foundItem) {\n foundItem = SchemaGenerator.find<T>([entrySchema], keyword)\n }\n })\n }\n\n if (isKeyword(schema, schemaKeywords.tuple)) {\n schema.args.items.forEach((entrySchema) => {\n if (!foundItem) {\n foundItem = SchemaGenerator.find<T>([entrySchema], keyword)\n }\n })\n }\n\n if (isKeyword(schema, schemaKeywords.union)) {\n schema.args.forEach((entrySchema) => {\n if (!foundItem) {\n foundItem = SchemaGenerator.find<T>([entrySchema], keyword)\n }\n })\n }\n })\n\n return foundItem\n }\n\n static combineObjects(tree: Schema[] | undefined): Schema[] {\n if (!tree) {\n return []\n }\n\n return tree.map((schema) => {\n if (!isKeyword(schema, schemaKeywords.and)) {\n return schema\n }\n\n let mergedProperties: Record<string, Schema[]> | null = null\n let mergedAdditionalProps: Schema[] = []\n\n const newArgs: Schema[] = []\n\n for (const subSchema of schema.args) {\n if (isKeyword(subSchema, schemaKeywords.object)) {\n const { properties = {}, additionalProperties = [] } = subSchema.args ?? {}\n\n if (!mergedProperties) {\n mergedProperties = {}\n }\n\n for (const [key, value] of Object.entries(properties)) {\n mergedProperties[key] = value\n }\n\n if (additionalProperties.length > 0) {\n mergedAdditionalProps = additionalProperties\n }\n } else {\n newArgs.push(subSchema)\n }\n }\n\n if (mergedProperties) {\n newArgs.push({\n keyword: schemaKeywords.object,\n args: {\n properties: mergedProperties,\n additionalProperties: mergedAdditionalProps,\n },\n })\n }\n\n return {\n keyword: schemaKeywords.and,\n args: newArgs,\n }\n })\n }\n\n #getOptions(name: string | null): Partial<TOptions> {\n const { override = [] } = this.context\n\n return {\n ...this.options,\n ...(override.find(({ pattern, type }) => {\n if (name && type === 'schemaName') {\n return !!name.match(pattern)\n }\n\n return false\n })?.options || {}),\n }\n }\n\n #getUnknownType(name: string | null): string {\n const options = this.#getOptions(name)\n\n if (options.unknownType === 'any') {\n return schemaKeywords.any\n }\n if (options.unknownType === 'void') {\n return schemaKeywords.void\n }\n\n return schemaKeywords.unknown\n }\n\n #getEmptyType(name: string | null): string {\n const options = this.#getOptions(name)\n\n if (options.emptySchemaType === 'any') {\n return schemaKeywords.any\n }\n if (options.emptySchemaType === 'void') {\n return schemaKeywords.void\n }\n\n return schemaKeywords.unknown\n }\n\n /**\n * Recursively creates a type literal with the given props.\n */\n #parseProperties(name: string | null, schemaObject: SchemaObject): Schema[] {\n const properties = schemaObject?.properties || {}\n const additionalProperties = schemaObject?.additionalProperties\n const required = schemaObject?.required\n const patternProperties = schemaObject && 'patternProperties' in schemaObject ? schemaObject.patternProperties : undefined\n\n const propertiesSchemas = Object.keys(properties)\n .map((propertyName) => {\n const validationFunctions: Schema[] = []\n const propertySchema = properties[propertyName] as SchemaObject\n\n const isRequired = Array.isArray(required) ? required?.includes(propertyName) : !!required\n const nullable = propertySchema.nullable ?? propertySchema['x-nullable'] ?? false\n\n validationFunctions.push(...this.parse({ schema: propertySchema, name: propertyName, parentName: name }))\n\n validationFunctions.push({\n keyword: schemaKeywords.name,\n args: propertyName,\n })\n\n if (!isRequired && nullable) {\n validationFunctions.push({ keyword: schemaKeywords.nullish })\n } else if (!isRequired) {\n validationFunctions.push({ keyword: schemaKeywords.optional })\n }\n\n return {\n [propertyName]: validationFunctions,\n }\n })\n .reduce((acc, curr) => ({ ...acc, ...curr }), {})\n let additionalPropertiesSchemas: Schema[] = []\n\n if (additionalProperties) {\n additionalPropertiesSchemas =\n additionalProperties === true || !Object.keys(additionalProperties).length\n ? [{ keyword: this.#getUnknownType(name) }]\n : this.parse({ schema: additionalProperties as SchemaObject, name: null, parentName: name })\n }\n\n let patternPropertiesSchemas: Record<string, Schema[]> = {}\n\n if (patternProperties && typeof patternProperties === 'object') {\n patternPropertiesSchemas = Object.entries(patternProperties).reduce((acc, [pattern, patternSchema]) => {\n const schemas =\n patternSchema === true || !Object.keys(patternSchema as object).length\n ? [{ keyword: this.#getUnknownType(name) }]\n : this.parse({ schema: patternSchema, name: null, parentName: name })\n\n return {\n ...acc,\n [pattern]: schemas,\n }\n }, {})\n }\n\n const args: {\n properties: typeof propertiesSchemas\n additionalProperties: typeof additionalPropertiesSchemas\n patternProperties?: typeof patternPropertiesSchemas\n } = {\n properties: propertiesSchemas,\n additionalProperties: additionalPropertiesSchemas,\n }\n\n if (Object.keys(patternPropertiesSchemas).length > 0) {\n args['patternProperties'] = patternPropertiesSchemas\n }\n\n return [\n {\n keyword: schemaKeywords.object,\n args,\n },\n ]\n }\n\n /**\n * Create a type alias for the schema referenced by the given ReferenceObject\n */\n #getRefAlias(schemaObject: OpenAPIV3.ReferenceObject, name: string | null): Schema[] {\n const { $ref } = schemaObject\n const ref = this.refs[$ref]\n\n if (ref) {\n const dereferencedSchema = this.context.oas.dereferenceWithRef(schemaObject)\n // pass name to getRefAlias and use that to find in discriminator.mapping value\n\n if (dereferencedSchema && isDiscriminator(dereferencedSchema)) {\n const [key] = Object.entries(dereferencedSchema.discriminator.mapping || {}).find(([_key, value]) => value.replace(/.+\\//, '') === name) || []\n\n if (key) {\n return [\n {\n keyword: schemaKeywords.and,\n args: [\n {\n keyword: schemaKeywords.ref,\n args: { name: ref.propertyName, $ref, path: ref.path, isImportable: !!this.context.oas.get($ref) },\n },\n {\n keyword: schemaKeywords.object,\n args: {\n properties: {\n [dereferencedSchema.discriminator.propertyName]: [\n {\n keyword: schemaKeywords.const,\n args: {\n name: key,\n format: 'string',\n value: key,\n },\n },\n ],\n },\n },\n },\n ],\n },\n ] as Schema[]\n }\n }\n\n return [\n {\n keyword: schemaKeywords.ref,\n args: { name: ref.propertyName, $ref, path: ref.path, isImportable: !!this.context.oas.get($ref) },\n },\n ]\n }\n\n const originalName = getUniqueName($ref.replace(/.+\\//, ''), this.#usedAliasNames)\n const propertyName = this.context.pluginManager.resolveName({\n name: originalName,\n pluginKey: this.context.plugin.key,\n type: 'function',\n })\n\n const fileName = this.context.pluginManager.resolveName({\n name: originalName,\n pluginKey: this.context.plugin.key,\n type: 'file',\n })\n const file = this.context.pluginManager.getFile({\n name: fileName,\n pluginKey: this.context.plugin.key,\n extname: '.ts',\n })\n\n this.refs[$ref] = {\n propertyName,\n originalName,\n path: file.path,\n }\n\n return this.#getRefAlias(schemaObject, name)\n }\n\n #getParsedSchemaObject(schema: SchemaObject | null) {\n return getSchemaFactory(this.context.oas)(schema)\n }\n\n #addDiscriminatorToSchema<TSchema extends Schema>({\n schema,\n schemaObject,\n discriminator,\n }: {\n schemaObject: SchemaObject\n schema: TSchema\n discriminator: OpenAPIV3.DiscriminatorObject\n }): TSchema {\n if (!isKeyword(schema, schemaKeywords.union)) {\n return schema\n }\n\n // If the discriminator property is an extension property (starts with x-),\n // it's metadata and not an actual schema property, so we can't add constraints for it.\n // In this case, return the union as-is without adding discriminator constraints.\n if (discriminator.propertyName.startsWith('x-')) {\n return schema\n }\n\n const objectPropertySchema = SchemaGenerator.find(this.parse({ schema: schemaObject, name: null, parentName: null }), schemaKeywords.object)\n\n return {\n ...schema,\n args: Object.entries(discriminator.mapping || {})\n .map(([key, value]) => {\n let arg: Schema | undefined\n\n // Check if this is a synthetic ref for inline schemas (e.g., #kubb-inline-0)\n if (value.startsWith('#kubb-inline-')) {\n const index = Number.parseInt(value.replace('#kubb-inline-', ''), 10)\n // Validate index is within bounds\n if (!Number.isNaN(index) && index >= 0 && index < schema.args.length) {\n arg = schema.args[index]\n }\n } else {\n // Regular ref - find by $ref value\n arg = schema.args.find((item) => isKeyword(item, schemaKeywords.ref) && item.args.$ref === value)\n }\n\n // Skip discriminator mappings that don't have a corresponding schema in the oneOf/anyOf\n if (!arg) {\n return undefined\n }\n return {\n keyword: schemaKeywords.and,\n args: [\n arg,\n {\n keyword: schemaKeywords.object,\n args: {\n properties: {\n ...(objectPropertySchema?.args?.properties || {}),\n [discriminator.propertyName]: [\n {\n keyword: schemaKeywords.const,\n args: {\n name: key,\n format: 'string',\n value: key,\n },\n },\n //enum and literal will conflict\n ...(objectPropertySchema?.args?.properties[discriminator.propertyName] || []),\n ].filter((item) => !isKeyword(item, schemaKeywords.enum)),\n },\n },\n },\n ],\n }\n })\n .filter(Boolean) as SchemaKeywordMapper['union']['args'],\n }\n }\n\n /**\n * Checks if an allOf item reference would create a circular reference.\n * This happens when a child schema extends a discriminator parent via allOf,\n * and the parent has a oneOf/anyOf that references or maps to the child.\n *\n * Without oneOf/anyOf, the discriminator is just for documentation/validation\n * purposes and doesn't create a TypeScript union type that would be circular.\n */\n #wouldCreateCircularReference(item: unknown, childSchemaName: string | null): boolean {\n if (!isReference(item) || !childSchemaName) {\n return false\n }\n\n const dereferencedSchema = this.context.oas.dereferenceWithRef(item)\n\n if (dereferencedSchema && isDiscriminator(dereferencedSchema)) {\n // Only check for circular references if parent has oneOf/anyOf\n // Without oneOf/anyOf, the discriminator doesn't create a union type\n const parentOneOf = dereferencedSchema.oneOf || dereferencedSchema.anyOf\n if (!parentOneOf) {\n return false\n }\n\n const childRef = `#/components/schemas/${childSchemaName}`\n\n const inOneOf = parentOneOf.some((oneOfItem) => {\n return isReference(oneOfItem) && oneOfItem.$ref === childRef\n })\n if (inOneOf) {\n return true\n }\n\n const mapping = dereferencedSchema.discriminator.mapping || {}\n const inMapping = Object.values(mapping).some((value) => value === childRef)\n\n if (inMapping) {\n return true\n }\n }\n return false\n }\n\n /**\n * This is the very core of the OpenAPI to TS conversion - it takes a\n * schema and returns the appropriate type.\n */\n #parseSchemaObject({ schema: _schemaObject, name, parentName }: SchemaProps): Schema[] {\n const normalizedSchema = this.context.oas.flattenSchema(_schemaObject)\n\n const { schemaObject, version } = this.#getParsedSchemaObject(normalizedSchema)\n\n const options = this.#getOptions(name)\n const emptyType = this.#getEmptyType(name)\n\n if (!schemaObject) {\n return [{ keyword: emptyType }]\n }\n\n const baseItems: Schema[] = [\n {\n keyword: schemaKeywords.schema,\n args: {\n type: schemaObject.type as any,\n format: schemaObject.format,\n },\n },\n ]\n const min = schemaObject.minimum ?? schemaObject.minLength ?? schemaObject.minItems ?? undefined\n const max = schemaObject.maximum ?? schemaObject.maxLength ?? schemaObject.maxItems ?? undefined\n\n const exclusiveMinimum = schemaObject.exclusiveMinimum\n const exclusiveMaximum = schemaObject.exclusiveMaximum\n\n const nullable = isNullable(schemaObject)\n const defaultNullAndNullable = schemaObject.default === null && nullable\n\n if (schemaObject.default !== undefined && !defaultNullAndNullable && !Array.isArray(schemaObject.default)) {\n if (typeof schemaObject.default === 'string') {\n baseItems.push({\n keyword: schemaKeywords.default,\n args: transformers.stringify(schemaObject.default),\n })\n } else if (typeof schemaObject.default === 'boolean') {\n baseItems.push({\n keyword: schemaKeywords.default,\n args: schemaObject.default ?? false,\n })\n } else {\n baseItems.push({\n keyword: schemaKeywords.default,\n args: schemaObject.default,\n })\n }\n }\n\n if (schemaObject.deprecated) {\n baseItems.push({\n keyword: schemaKeywords.deprecated,\n })\n }\n\n if (schemaObject.description) {\n baseItems.push({\n keyword: schemaKeywords.describe,\n args: schemaObject.description,\n })\n }\n\n if (max !== undefined) {\n if (exclusiveMaximum) {\n baseItems.unshift({ keyword: schemaKeywords.exclusiveMaximum, args: max })\n } else {\n baseItems.unshift({ keyword: schemaKeywords.max, args: max })\n }\n }\n\n if (min !== undefined) {\n if (exclusiveMinimum) {\n baseItems.unshift({ keyword: schemaKeywords.exclusiveMinimum, args: min })\n } else {\n baseItems.unshift({ keyword: schemaKeywords.min, args: min })\n }\n }\n\n if (typeof exclusiveMaximum === 'number') {\n //OPENAPI v3.1.0: https://www.openapis.org/blog/2021/02/16/migrating-from-openapi-3-0-to-3-1-0\n baseItems.unshift({ keyword: schemaKeywords.exclusiveMaximum, args: exclusiveMaximum })\n }\n if (typeof exclusiveMinimum === 'number') {\n //OPENAPI v3.1.0: https://www.openapis.org/blog/2021/02/16/migrating-from-openapi-3-0-to-3-1-0\n baseItems.unshift({ keyword: schemaKeywords.exclusiveMinimum, args: exclusiveMinimum })\n }\n if (nullable) {\n baseItems.push({ keyword: schemaKeywords.nullable })\n }\n\n if (schemaObject.type && Array.isArray(schemaObject.type)) {\n // OPENAPI v3.1.0: https://www.openapis.org/blog/2021/02/16/migrating-from-openapi-3-0-to-3-1-0\n const items = schemaObject.type.filter((value) => value !== 'null') as Array<OpenAPIV3.NonArraySchemaObjectType>\n const hasNull = (schemaObject.type as string[]).includes('null')\n\n if (hasNull && !nullable) {\n baseItems.push({ keyword: schemaKeywords.nullable })\n }\n\n if (items.length > 1) {\n const parsedItems = [\n {\n keyword: schemaKeywords.union,\n args: items\n .map(\n (item) =>\n this.parse({\n schema: { ...schemaObject, type: item },\n name,\n parentName,\n })[0],\n )\n .filter(Boolean)\n .map((item) => (isKeyword(item, schemaKeywords.object) ? { ...item, args: { ...item.args, strict: true } } : item)),\n },\n ]\n\n return [...parsedItems, ...baseItems].filter(Boolean)\n }\n }\n\n if (schemaObject.readOnly) {\n baseItems.push({ keyword: schemaKeywords.readOnly })\n }\n\n if (schemaObject.writeOnly) {\n baseItems.push({ keyword: schemaKeywords.writeOnly })\n }\n\n if (isReference(schemaObject)) {\n return [\n ...this.#getRefAlias(schemaObject, name),\n schemaObject.description && {\n keyword: schemaKeywords.describe,\n args: schemaObject.description,\n },\n schemaObject.pattern &&\n schemaObject.type === 'string' && {\n keyword: schemaKeywords.matches,\n args: schemaObject.pattern,\n },\n nullable && { keyword: schemaKeywords.nullable },\n schemaObject.readOnly && { keyword: schemaKeywords.readOnly },\n schemaObject.writeOnly && { keyword: schemaKeywords.writeOnly },\n {\n keyword: schemaKeywords.schema,\n args: {\n type: schemaObject.type as any,\n format: schemaObject.format,\n },\n },\n ].filter(Boolean)\n }\n\n if (schemaObject.oneOf || schemaObject.anyOf) {\n // union\n const schemaWithoutOneOf = { ...schemaObject, oneOf: undefined, anyOf: undefined }\n const discriminator = this.context.oas.getDiscriminator(schemaObject)\n\n const union: SchemaKeywordMapper['union'] = {\n keyword: schemaKeywords.union,\n args: (schemaObject.oneOf || schemaObject.anyOf)!\n .map((item) => {\n // first item, this will be ref\n return item && this.parse({ schema: item as SchemaObject, name, parentName })[0]\n })\n .filter(Boolean),\n }\n\n if (discriminator) {\n // In 'inherit' mode, the discriminator property is already added to child schemas by Oas.getDiscriminator()\n // so we should NOT add it at the union level\n if (this.context && this.context.oas.options.discriminator !== 'inherit') {\n return [this.#addDiscriminatorToSchema({ schemaObject: schemaWithoutOneOf, schema: union, discriminator }), ...baseItems]\n }\n }\n\n if (schemaWithoutOneOf.properties) {\n const propertySchemas = this.parse({ schema: schemaWithoutOneOf, name, parentName })\n\n union.args = [\n ...union.args.map((arg) => {\n return {\n keyword: schemaKeywords.and,\n args: [arg, ...propertySchemas],\n }\n }),\n ]\n\n return [union, ...baseItems]\n }\n\n return [union, ...baseItems]\n }\n\n if (schemaObject.allOf) {\n // intersection/add\n const schemaWithoutAllOf = { ...schemaObject, allOf: undefined }\n\n const and: Schema = {\n keyword: schemaKeywords.and,\n args: schemaObject.allOf\n .flatMap((item) => {\n // Skip items that would create circular references\n if (this.#wouldCreateCircularReference(item, name)) {\n return []\n }\n\n return item ? this.parse({ schema: item, name, parentName }) : []\n })\n .filter(Boolean),\n }\n\n if (schemaWithoutAllOf.required?.length) {\n const allOfItems = schemaObject.allOf\n const resolvedSchemas: SchemaObject[] = []\n\n for (const item of allOfItems) {\n const resolved = isReference(item) ? (this.context.oas.get(item.$ref) as SchemaObject) : item\n\n if (resolved) {\n resolvedSchemas.push(resolved)\n }\n }\n\n const existingKeys = schemaWithoutAllOf.properties ? new Set(Object.keys(schemaWithoutAllOf.properties)) : null\n\n const parsedItems: SchemaObject[] = []\n\n for (const key of schemaWithoutAllOf.required) {\n if (existingKeys?.has(key)) {\n continue\n }\n\n for (const schema of resolvedSchemas) {\n if (schema.properties?.[key]) {\n parsedItems.push({\n properties: {\n [key]: schema.properties[key],\n },\n required: [key],\n } as SchemaObject)\n break\n }\n }\n }\n\n for (const item of parsedItems) {\n const parsed = this.parse({ schema: item, name, parentName })\n\n if (Array.isArray(parsed)) {\n and.args = and.args ? and.args.concat(parsed) : parsed\n }\n }\n }\n\n if (schemaWithoutAllOf.properties) {\n and.args = [...(and.args || []), ...this.parse({ schema: schemaWithoutAllOf, name, parentName })]\n }\n\n return SchemaGenerator.combineObjects([and, ...baseItems])\n }\n\n if (schemaObject.enum) {\n // Handle malformed schema where enum exists at array level instead of in items\n // This normalizes: { type: 'array', enum: [...], items: {...} }\n // Into: { type: 'array', items: { type: 'string', enum: [...] } }\n if (schemaObject.type === 'array') {\n const isItemsObject = typeof schemaObject.items === 'object' && !Array.isArray(schemaObject.items)\n const normalizedItems = {\n ...(isItemsObject ? schemaObject.items : {}),\n enum: schemaObject.enum,\n } as SchemaObject\n\n const { enum: _, ...schemaWithoutEnum } = schemaObject\n const normalizedSchema = {\n ...schemaWithoutEnum,\n items: normalizedItems,\n } as SchemaObject\n\n return this.parse({ schema: normalizedSchema, name, parentName })\n }\n\n if (options.enumSuffix === '') {\n this.context.events?.emit('info', 'EnumSuffix set to an empty string does not work')\n }\n\n // Removed verbose enum parsing debug log - too noisy for hundreds of enums\n\n const enumName = getUniqueName(pascalCase([parentName, name, options.enumSuffix].join(' ')), this.options.usedEnumNames || {})\n const typeName = this.context.pluginManager.resolveName({\n name: enumName,\n pluginKey: this.context.plugin.key,\n type: 'type',\n })\n\n const nullableEnum = schemaObject.enum.includes(null)\n if (nullableEnum) {\n baseItems.push({ keyword: schemaKeywords.nullable })\n }\n const filteredValues = schemaObject.enum.filter((value) => value !== null)\n\n // x-enumNames has priority\n const extensionEnums = ['x-enumNames', 'x-enum-varnames']\n .filter((extensionKey) => extensionKey in schemaObject)\n .map((extensionKey) => {\n return [\n {\n keyword: schemaKeywords.enum,\n args: {\n name,\n typeName,\n asConst: false,\n items: [...new Set(schemaObject[extensionKey as keyof typeof schemaObject] as string[])].map((name: string | number, index) => ({\n name: transformers.stringify(name),\n value: schemaObject.enum?.[index] as string | number,\n format: isNumber(schemaObject.enum?.[index]) ? 'number' : 'string',\n })),\n },\n },\n ...baseItems.filter(\n (item) => item.keyword !== schemaKeywords.min && item.keyword !== schemaKeywords.max && item.keyword !== schemaKeywords.matches,\n ),\n ]\n })\n\n if (schemaObject.type === 'number' || schemaObject.type === 'integer') {\n // we cannot use z.enum when enum type is number/integer\n const enumNames = extensionEnums[0]?.find((item) => isKeyword(item, schemaKeywords.enum)) as unknown as SchemaKeywordMapper['enum']\n return [\n {\n keyword: schemaKeywords.enum,\n args: {\n name: enumName,\n typeName,\n asConst: true,\n items: enumNames?.args?.items\n ? [...new Set(enumNames.args.items)].map(({ name, value }) => ({\n name,\n value,\n format: 'number',\n }))\n : [...new Set(filteredValues)].map((value: string) => {\n return {\n name: value,\n value,\n format: 'number',\n }\n }),\n },\n },\n ...baseItems.filter((item) => item.keyword !== schemaKeywords.min && item.keyword !== schemaKeywords.max && item.keyword !== schemaKeywords.matches),\n ]\n }\n\n if (schemaObject.type === 'boolean') {\n // we cannot use z.enum when enum type is boolean\n const enumNames = extensionEnums[0]?.find((item) => isKeyword(item, schemaKeywords.enum)) as unknown as SchemaKeywordMapper['enum']\n return [\n {\n keyword: schemaKeywords.enum,\n args: {\n name: enumName,\n typeName,\n asConst: true,\n items: enumNames?.args?.items\n ? [...new Set(enumNames.args.items)].map(({ name, value }) => ({\n name,\n value,\n format: 'boolean',\n }))\n : [...new Set(filteredValues)].map((value: string) => {\n return {\n name: value,\n value,\n format: 'boolean',\n }\n }),\n },\n },\n ...baseItems.filter((item) => item.keyword !== schemaKeywords.matches),\n ]\n }\n\n if (extensionEnums.length > 0 && extensionEnums[0]) {\n return extensionEnums[0]\n }\n\n return [\n {\n keyword: schemaKeywords.enum,\n args: {\n name: enumName,\n typeName,\n asConst: false,\n items: [...new Set(filteredValues)].map((value: string) => ({\n name: transformers.stringify(value),\n value,\n format: isNumber(value) ? 'number' : 'string',\n })),\n },\n },\n ...baseItems.filter((item) => item.keyword !== schemaKeywords.min && item.keyword !== schemaKeywords.max && item.keyword !== schemaKeywords.matches),\n ]\n }\n\n if ('prefixItems' in schemaObject) {\n const prefixItems = schemaObject.prefixItems as SchemaObject[]\n const items = 'items' in schemaObject ? (schemaObject.items as SchemaObject[]) : []\n const min = schemaObject.minimum ?? schemaObject.minLength ?? schemaObject.minItems ?? undefined\n const max = schemaObject.maximum ?? schemaObject.maxLength ?? schemaObject.maxItems ?? undefined\n\n return [\n {\n keyword: schemaKeywords.tuple,\n args: {\n min,\n max,\n items: prefixItems\n .map((item) => {\n return this.parse({ schema: item, name, parentName })[0]\n })\n .filter(Boolean),\n rest: this.parse({\n schema: items,\n name,\n parentName,\n })[0],\n },\n },\n ...baseItems.filter((item) => item.keyword !== schemaKeywords.min && item.keyword !== schemaKeywords.max),\n ]\n }\n\n if (version === '3.1' && 'const' in schemaObject) {\n // const keyword takes precendence over the actual type.\n\n if (schemaObject['const'] === null) {\n return [{ keyword: schemaKeywords.null }]\n }\n if (schemaObject['const'] === undefined) {\n return [{ keyword: schemaKeywords.undefined }]\n }\n\n let format = typeof schemaObject['const']\n if (format !== 'number' && format !== 'boolean') {\n format = 'string'\n }\n\n return [\n {\n keyword: schemaKeywords.const,\n args: {\n name: schemaObject['const'],\n format,\n value: schemaObject['const'],\n },\n },\n ...baseItems,\n ]\n }\n\n /**\n * > Structural validation alone may be insufficient to allow an application to correctly utilize certain values. The \"format\"\n * > annotation keyword is defined to allow schema authors to convey semantic information for a fixed subset of values which are\n * > accurately described by authoritative resources, be they RFCs or other external specifications.\n *\n * In other words: format is more specific than type alone, hence it should override the type value, if possible.\n *\n * see also https://json-schema.org/draft/2020-12/draft-bhutton-json-schema-validation-00#rfc.section.7\n */\n if (schemaObject.format) {\n if (schemaObject.type === 'integer' && (schemaObject.format === 'int32' || schemaObject.format === 'int64')) {\n baseItems.unshift({ keyword: schemaKeywords.integer })\n return baseItems\n }\n\n if (schemaObject.type === 'number' && (schemaObject.format === 'float' || schemaObject.format === 'double')) {\n baseItems.unshift({ keyword: schemaKeywords.number })\n return baseItems\n }\n\n switch (schemaObject.format) {\n case 'binary':\n baseItems.push({ keyword: schemaKeywords.blob })\n return baseItems\n case 'date-time':\n if (options.dateType) {\n if (options.dateType === 'date') {\n baseItems.unshift({ keyword: schemaKeywords.date, args: { type: 'date' } })\n\n return baseItems\n }\n\n if (options.dateType === 'stringOffset') {\n baseItems.unshift({ keyword: schemaKeywords.datetime, args: { offset: true } })\n return baseItems\n }\n\n if (options.dateType === 'stringLocal') {\n baseItems.unshift({ keyword: schemaKeywords.datetime, args: { local: true } })\n return baseItems\n }\n\n baseItems.unshift({ keyword: schemaKeywords.datetime, args: { offset: false } })\n\n return baseItems\n }\n break\n case 'date':\n if (options.dateType) {\n if (options.dateType === 'date') {\n baseItems.unshift({ keyword: schemaKeywords.date, args: { type: 'date' } })\n\n return baseItems\n }\n\n baseItems.unshift({ keyword: schemaKeywords.date, args: { type: 'string' } })\n\n return baseItems\n }\n break\n case 'time':\n if (options.dateType) {\n if (options.dateType === 'date') {\n baseItems.unshift({ keyword: schemaKeywords.time, args: { type: 'date' } })\n\n return baseItems\n }\n\n baseItems.unshift({ keyword: schemaKeywords.time, args: { type: 'string' } })\n\n return baseItems\n }\n break\n case 'uuid':\n baseItems.unshift({ keyword: schemaKeywords.uuid })\n return baseItems\n case 'email':\n case 'idn-email':\n baseItems.unshift({ keyword: schemaKeywords.email })\n return baseItems\n case 'uri':\n case 'ipv4':\n case 'ipv6':\n case 'uri-reference':\n case 'hostname':\n case 'idn-hostname':\n baseItems.unshift({ keyword: schemaKeywords.url })\n return baseItems\n // case 'duration':\n // case 'json-pointer':\n // case 'relative-json-pointer':\n default:\n // formats not yet implemented: ignore.\n break\n }\n }\n\n if (schemaObject.pattern && schemaObject.type === 'string') {\n baseItems.unshift({\n keyword: schemaKeywords.matches,\n args: schemaObject.pattern,\n })\n\n return baseItems\n }\n\n // type based logic\n if ('items' in schemaObject || schemaObject.type === ('array' as 'string')) {\n const min = schemaObject.minimum ?? schemaObject.minLength ?? schemaObject.minItems ?? undefined\n const max = schemaObject.maximum ?? schemaObject.maxLength ?? schemaObject.maxItems ?? undefined\n const items = this.parse({ schema: 'items' in schemaObject ? (schemaObject.items as SchemaObject) : [], name, parentName })\n const unique = !!schemaObject.uniqueItems\n\n return [\n {\n keyword: schemaKeywords.array,\n args: {\n items,\n min,\n max,\n unique,\n },\n },\n ...baseItems.filter((item) => item.keyword !== schemaKeywords.min && item.keyword !== schemaKeywords.max),\n ]\n }\n\n if (schemaObject.properties || schemaObject.additionalProperties || 'patternProperties' in schemaObject) {\n if (isDiscriminator(schemaObject)) {\n // override schema to set type to be based on discriminator mapping, use of enum to convert type string to type 'mapping1' | 'mapping2'\n const schemaObjectOverriden = Object.keys(schemaObject.properties || {}).reduce((acc, propertyName) => {\n if (acc.properties?.[propertyName] && propertyName === schemaObject.discriminator.propertyName) {\n return {\n ...acc,\n properties: {\n ...acc.properties,\n [propertyName]: {\n ...((acc.properties[propertyName] as any) || {}),\n enum: schemaObject.discriminator.mapping ? Object.keys(schemaObject.discriminator.mapping) : undefined,\n },\n },\n }\n }\n\n return acc\n }, schemaObject || {}) as SchemaObject\n\n return [...this.#parseProperties(name, schemaObjectOverriden), ...baseItems]\n }\n\n return [...this.#parseProperties(name, schemaObject), ...baseItems]\n }\n\n if (schemaObject.type) {\n const type = (\n Array.isArray(schemaObject.type) ? schemaObject.type.filter((item) => item !== 'null')[0] : schemaObject.type\n ) as OpenAPIV3.NonArraySchemaObjectType\n\n if (!['boolean', 'object', 'number', 'string', 'integer', 'null'].includes(type)) {\n this.context.events?.emit('warn', `Schema type '${schemaObject.type}' is not valid for schema ${parentName}.${name}`)\n // Removed duplicate debug log - warning already provides the information needed\n }\n\n // 'string' | 'number' | 'integer' | 'boolean'\n return [{ keyword: type }, ...baseItems]\n }\n\n // Infer type from constraints when no explicit type is provided\n let inferredType: OpenAPIV3.NonArraySchemaObjectType | undefined\n if (schemaObject.minLength !== undefined || schemaObject.maxLength !== undefined || schemaObject.pattern !== undefined) {\n inferredType = 'string'\n } else if (schemaObject.minimum !== undefined || schemaObject.maximum !== undefined) {\n inferredType = 'number'\n }\n // Note: minItems/maxItems don't infer type 'array' because arrays are handled\n // specially with schemaKeywords.array and require an items property\n\n if (inferredType) {\n return [{ keyword: inferredType }, ...baseItems]\n }\n\n return [{ keyword: emptyType }, ...baseItems]\n }\n\n async build(...generators: Array<Generator<TPluginOptions>>): Promise<Array<KubbFile.File<TFileMeta>>> {\n const { oas, contentType, include } = this.context\n const schemas = getSchemas({ oas, contentType, includes: include })\n const schemaEntries = Object.entries(schemas)\n\n this.context.events?.emit('debug', {\n date: new Date(),\n logs: [`Building ${schemaEntries.length} schemas`, ` • Content Type: ${contentType || 'application/json'}`, ` • Generators: ${generators.length}`],\n })\n\n const generatorLimit = pLimit(1)\n const schemaLimit = pLimit(10)\n\n const writeTasks = generators.map((generator) =>\n generatorLimit(async () => {\n const schemaTasks = schemaEntries.map(([name, schemaObject]) =>\n schemaLimit(async () => {\n const options = this.#getOptions(name)\n const tree = this.parse({ schema: schemaObject, name, parentName: null })\n\n if (generator.type === 'react') {\n await buildSchema(\n {\n name,\n value: schemaObject,\n tree,\n },\n {\n config: this.context.pluginManager.config,\n fabric: this.context.fabric,\n Component: generator.Schema,\n generator: this,\n plugin: {\n ...this.context.plugin,\n options: {\n ...this.options,\n ...options,\n },\n },\n },\n )\n\n return []\n }\n\n const result = await generator.schema?.({\n config: this.context.pluginManager.config,\n generator: this,\n schema: {\n name,\n value: schemaObject,\n tree,\n },\n plugin: {\n ...this.context.plugin,\n options: {\n ...this.options,\n ...options,\n },\n },\n })\n\n return result ?? []\n }),\n )\n\n const schemaResults = await Promise.all(schemaTasks)\n return schemaResults.flat() as unknown as KubbFile.File<TFileMeta>\n }),\n )\n\n const nestedResults = await Promise.all(writeTasks)\n\n return nestedResults.flat()\n }\n}\n"],"x_google_ignoreList":[0,1],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Fabric } from "@kubb/react-fabric";
|
|
2
2
|
import { KubbFile } from "@kubb/fabric-core/types";
|
|
3
|
-
import * as OasTypes from "oas/types";
|
|
4
|
-
import { HttpMethods as HttpMethod, OASDocument, SchemaObject, User } from "oas/types";
|
|
5
|
-
import { Operation, Operation as Operation$1 } from "oas/operation";
|
|
6
|
-
import { OpenAPIV3, OpenAPIV3 as OpenAPIV3$1, OpenAPIV3_1 } from "openapi-types";
|
|
7
3
|
import * as oas_normalize_lib_types0 from "oas-normalize/lib/types";
|
|
8
4
|
import BaseOas from "oas";
|
|
5
|
+
import { Operation } from "oas/operation";
|
|
6
|
+
import { OpenAPIV3, OpenAPIV3_1 } from "openapi-types";
|
|
7
|
+
import * as OasTypes from "oas/types";
|
|
8
|
+
import { DiscriminatorObject, HttpMethods, OASDocument, SchemaObject } from "oas/types";
|
|
9
9
|
|
|
10
10
|
//#region ../core/src/BaseGenerator.d.ts
|
|
11
11
|
/**
|
|
@@ -676,38 +676,36 @@ type FileMetaBase = {
|
|
|
676
676
|
//#endregion
|
|
677
677
|
//#region ../oas/src/types.d.ts
|
|
678
678
|
type contentType = 'application/json' | (string & {});
|
|
679
|
-
type SchemaObject$1 =
|
|
679
|
+
type SchemaObject$1 = SchemaObject & {
|
|
680
680
|
'x-nullable'?: boolean;
|
|
681
681
|
$ref?: string;
|
|
682
682
|
};
|
|
683
|
+
type HttpMethod = HttpMethods;
|
|
684
|
+
type Document = OASDocument;
|
|
685
|
+
type Operation$1 = Operation;
|
|
686
|
+
type DiscriminatorObject$1 = DiscriminatorObject;
|
|
683
687
|
//#endregion
|
|
684
688
|
//#region ../oas/src/Oas.d.ts
|
|
685
689
|
type Options = {
|
|
686
690
|
contentType?: contentType;
|
|
687
691
|
discriminator?: 'strict' | 'inherit';
|
|
688
692
|
};
|
|
689
|
-
declare class Oas
|
|
693
|
+
declare class Oas extends BaseOas {
|
|
690
694
|
#private;
|
|
691
|
-
document:
|
|
692
|
-
constructor(
|
|
693
|
-
oas,
|
|
694
|
-
user
|
|
695
|
-
}: {
|
|
696
|
-
oas: TOAS | OASDocument | string;
|
|
697
|
-
user?: User;
|
|
698
|
-
});
|
|
695
|
+
document: Document;
|
|
696
|
+
constructor(document: Document);
|
|
699
697
|
setOptions(options: Options): void;
|
|
700
698
|
get options(): Options;
|
|
701
|
-
get($ref: string):
|
|
699
|
+
get<T = unknown>($ref: string): T | null;
|
|
702
700
|
getKey($ref: string): string | undefined;
|
|
703
701
|
set($ref: string, value: unknown): false | undefined;
|
|
704
|
-
getDiscriminator(schema:
|
|
705
|
-
dereferenceWithRef(schema?:
|
|
706
|
-
getResponseSchema(operation: Operation, statusCode: string | number): SchemaObject;
|
|
707
|
-
getRequestSchema(operation: Operation): SchemaObject | undefined;
|
|
708
|
-
getParametersSchema(operation: Operation, inKey: 'path' | 'query' | 'header'): SchemaObject | null;
|
|
702
|
+
getDiscriminator(schema: SchemaObject$1 | null): DiscriminatorObject$1 | null;
|
|
703
|
+
dereferenceWithRef<T = unknown>(schema?: T): T;
|
|
704
|
+
getResponseSchema(operation: Operation$1, statusCode: string | number): SchemaObject$1;
|
|
705
|
+
getRequestSchema(operation: Operation$1): SchemaObject$1 | undefined;
|
|
706
|
+
getParametersSchema(operation: Operation$1, inKey: 'path' | 'query' | 'header'): SchemaObject$1 | null;
|
|
709
707
|
valdiate(): Promise<oas_normalize_lib_types0.ValidationResult>;
|
|
710
|
-
flattenSchema(schema
|
|
708
|
+
flattenSchema(schema: SchemaObject$1 | null): SchemaObject$1 | null;
|
|
711
709
|
}
|
|
712
710
|
//#endregion
|
|
713
711
|
//#region ../oas/src/utils.d.ts
|
|
@@ -996,5 +994,5 @@ type SchemaTree = {
|
|
|
996
994
|
};
|
|
997
995
|
declare function isKeyword<T extends Schema, K extends keyof SchemaKeywordMapper>(meta: T, keyword: K): meta is Extract<T, SchemaKeywordMapper[K]>;
|
|
998
996
|
//#endregion
|
|
999
|
-
export { Plugin as C, AsyncEventEmitter as D, UserPluginWithLifeCycle as E, KubbEvents as O, Output as S, ResolveNameParams as T, contentType as _, SchemaMapper as a, Config as b, schemaKeywords as c, HttpMethod as d, OasTypes as f, SchemaObject$1 as g, Operation$1 as h, SchemaKeywordMapper as i, BaseGenerator as k, isOptional as l, OpenAPIV3_1 as m, SchemaKeyword as n, SchemaTree as o, OpenAPIV3
|
|
1000
|
-
//# sourceMappingURL=SchemaMapper-
|
|
997
|
+
export { Plugin as C, AsyncEventEmitter as D, UserPluginWithLifeCycle as E, KubbEvents as O, Output as S, ResolveNameParams as T, contentType as _, SchemaMapper as a, Config as b, schemaKeywords as c, HttpMethod as d, OasTypes as f, SchemaObject$1 as g, Operation$1 as h, SchemaKeywordMapper as i, BaseGenerator as k, isOptional as l, OpenAPIV3_1 as m, SchemaKeyword as n, SchemaTree as o, OpenAPIV3 as p, SchemaKeywordBase as r, isKeyword as s, Schema as t, Oas as u, FileMetaBase as v, PluginFactoryOptions as w, Group as x, PluginManager as y };
|
|
998
|
+
//# sourceMappingURL=SchemaMapper-BQqC-HKo.d.ts.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { KubbFile } from "@kubb/fabric-core/types";
|
|
2
2
|
import { Fabric } from "@kubb/react-fabric";
|
|
3
|
-
import * as OasTypes from "oas/types";
|
|
4
|
-
import { HttpMethods as HttpMethod, OASDocument, SchemaObject, User } from "oas/types";
|
|
5
|
-
import { Operation, Operation as Operation$1 } from "oas/operation";
|
|
6
|
-
import { OpenAPIV3, OpenAPIV3 as OpenAPIV3$1, OpenAPIV3_1 } from "openapi-types";
|
|
7
3
|
import * as oas_normalize_lib_types0 from "oas-normalize/lib/types";
|
|
8
4
|
import BaseOas from "oas";
|
|
5
|
+
import { Operation } from "oas/operation";
|
|
6
|
+
import { OpenAPIV3, OpenAPIV3_1 } from "openapi-types";
|
|
7
|
+
import * as OasTypes from "oas/types";
|
|
8
|
+
import { DiscriminatorObject, HttpMethods, OASDocument, SchemaObject } from "oas/types";
|
|
9
9
|
|
|
10
10
|
//#region ../core/src/BaseGenerator.d.ts
|
|
11
11
|
/**
|
|
@@ -676,38 +676,36 @@ type FileMetaBase = {
|
|
|
676
676
|
//#endregion
|
|
677
677
|
//#region ../oas/src/types.d.ts
|
|
678
678
|
type contentType = 'application/json' | (string & {});
|
|
679
|
-
type SchemaObject$1 =
|
|
679
|
+
type SchemaObject$1 = SchemaObject & {
|
|
680
680
|
'x-nullable'?: boolean;
|
|
681
681
|
$ref?: string;
|
|
682
682
|
};
|
|
683
|
+
type HttpMethod = HttpMethods;
|
|
684
|
+
type Document = OASDocument;
|
|
685
|
+
type Operation$1 = Operation;
|
|
686
|
+
type DiscriminatorObject$1 = DiscriminatorObject;
|
|
683
687
|
//#endregion
|
|
684
688
|
//#region ../oas/src/Oas.d.ts
|
|
685
689
|
type Options = {
|
|
686
690
|
contentType?: contentType;
|
|
687
691
|
discriminator?: 'strict' | 'inherit';
|
|
688
692
|
};
|
|
689
|
-
declare class Oas
|
|
693
|
+
declare class Oas extends BaseOas {
|
|
690
694
|
#private;
|
|
691
|
-
document:
|
|
692
|
-
constructor(
|
|
693
|
-
oas,
|
|
694
|
-
user
|
|
695
|
-
}: {
|
|
696
|
-
oas: TOAS | OASDocument | string;
|
|
697
|
-
user?: User;
|
|
698
|
-
});
|
|
695
|
+
document: Document;
|
|
696
|
+
constructor(document: Document);
|
|
699
697
|
setOptions(options: Options): void;
|
|
700
698
|
get options(): Options;
|
|
701
|
-
get($ref: string):
|
|
699
|
+
get<T = unknown>($ref: string): T | null;
|
|
702
700
|
getKey($ref: string): string | undefined;
|
|
703
701
|
set($ref: string, value: unknown): false | undefined;
|
|
704
|
-
getDiscriminator(schema:
|
|
705
|
-
dereferenceWithRef(schema?:
|
|
706
|
-
getResponseSchema(operation: Operation, statusCode: string | number): SchemaObject;
|
|
707
|
-
getRequestSchema(operation: Operation): SchemaObject | undefined;
|
|
708
|
-
getParametersSchema(operation: Operation, inKey: 'path' | 'query' | 'header'): SchemaObject | null;
|
|
702
|
+
getDiscriminator(schema: SchemaObject$1 | null): DiscriminatorObject$1 | null;
|
|
703
|
+
dereferenceWithRef<T = unknown>(schema?: T): T;
|
|
704
|
+
getResponseSchema(operation: Operation$1, statusCode: string | number): SchemaObject$1;
|
|
705
|
+
getRequestSchema(operation: Operation$1): SchemaObject$1 | undefined;
|
|
706
|
+
getParametersSchema(operation: Operation$1, inKey: 'path' | 'query' | 'header'): SchemaObject$1 | null;
|
|
709
707
|
valdiate(): Promise<oas_normalize_lib_types0.ValidationResult>;
|
|
710
|
-
flattenSchema(schema
|
|
708
|
+
flattenSchema(schema: SchemaObject$1 | null): SchemaObject$1 | null;
|
|
711
709
|
}
|
|
712
710
|
//#endregion
|
|
713
711
|
//#region ../oas/src/utils.d.ts
|
|
@@ -996,5 +994,5 @@ type SchemaTree = {
|
|
|
996
994
|
};
|
|
997
995
|
declare function isKeyword<T extends Schema, K extends keyof SchemaKeywordMapper>(meta: T, keyword: K): meta is Extract<T, SchemaKeywordMapper[K]>;
|
|
998
996
|
//#endregion
|
|
999
|
-
export { Plugin as C, AsyncEventEmitter as D, UserPluginWithLifeCycle as E, KubbEvents as O, Output as S, ResolveNameParams as T, contentType as _, SchemaMapper as a, Config as b, schemaKeywords as c, HttpMethod as d, OasTypes as f, SchemaObject$1 as g, Operation$1 as h, SchemaKeywordMapper as i, BaseGenerator as k, isOptional as l, OpenAPIV3_1 as m, SchemaKeyword as n, SchemaTree as o, OpenAPIV3
|
|
1000
|
-
//# sourceMappingURL=SchemaMapper-
|
|
997
|
+
export { Plugin as C, AsyncEventEmitter as D, UserPluginWithLifeCycle as E, KubbEvents as O, Output as S, ResolveNameParams as T, contentType as _, SchemaMapper as a, Config as b, schemaKeywords as c, HttpMethod as d, OasTypes as f, SchemaObject$1 as g, Operation$1 as h, SchemaKeywordMapper as i, BaseGenerator as k, isOptional as l, OpenAPIV3_1 as m, SchemaKeyword as n, SchemaTree as o, OpenAPIV3 as p, SchemaKeywordBase as r, isKeyword as s, Schema as t, Oas as u, FileMetaBase as v, PluginFactoryOptions as w, Group as x, PluginManager as y };
|
|
998
|
+
//# sourceMappingURL=SchemaMapper-DHoFzVaG.d.cts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { C as Plugin, D as AsyncEventEmitter, O as KubbEvents, S as Output, T as ResolveNameParams, _ as contentType, b as Config, d as HttpMethod, g as SchemaObject, h as Operation, i as SchemaKeywordMapper, k as BaseGenerator, t as Schema, u as Oas, v as FileMetaBase, w as PluginFactoryOptions, x as Group, y as PluginManager } from "./SchemaMapper-
|
|
2
|
-
import { Fabric } from "@kubb/react-fabric";
|
|
1
|
+
import { C as Plugin, D as AsyncEventEmitter, O as KubbEvents, S as Output, T as ResolveNameParams, _ as contentType, b as Config, d as HttpMethod, g as SchemaObject, h as Operation, i as SchemaKeywordMapper, k as BaseGenerator, t as Schema, u as Oas, v as FileMetaBase, w as PluginFactoryOptions, x as Group, y as PluginManager } from "./SchemaMapper-DHoFzVaG.cjs";
|
|
3
2
|
import { KubbFile } from "@kubb/fabric-core/types";
|
|
3
|
+
import { Fabric } from "@kubb/react-fabric";
|
|
4
4
|
import { KubbNode } from "@kubb/react-fabric/types";
|
|
5
5
|
|
|
6
6
|
//#region ../core/src/utils/FunctionParams.d.ts
|
|
@@ -264,14 +264,14 @@ type SchemaGeneratorOptions = {
|
|
|
264
264
|
* TODO TODO add docs
|
|
265
265
|
* @beta
|
|
266
266
|
*/
|
|
267
|
-
schema?: (schemaProps: SchemaProps$1, defaultSchemas: Schema[]) => Schema
|
|
267
|
+
schema?: (schemaProps: SchemaProps$1, defaultSchemas: Schema[]) => Array<Schema> | undefined;
|
|
268
268
|
};
|
|
269
269
|
};
|
|
270
270
|
type SchemaGeneratorBuildOptions = Omit<OperationSchema, 'name' | 'schema'>;
|
|
271
271
|
type SchemaProps$1 = {
|
|
272
|
-
|
|
273
|
-
name
|
|
274
|
-
parentName
|
|
272
|
+
schema: SchemaObject | null;
|
|
273
|
+
name: string | null;
|
|
274
|
+
parentName: string | null;
|
|
275
275
|
};
|
|
276
276
|
declare class SchemaGenerator<TOptions extends SchemaGeneratorOptions = SchemaGeneratorOptions, TPluginOptions extends PluginFactoryOptions = PluginFactoryOptions, TFileMeta extends FileMetaBase = FileMetaBase> extends BaseGenerator<TOptions, Context<TOptions, TPluginOptions>> {
|
|
277
277
|
#private;
|
|
@@ -353,4 +353,4 @@ type CoreGenerator<TOptions extends PluginFactoryOptions> = {
|
|
|
353
353
|
declare function createGenerator<TOptions extends PluginFactoryOptions>(generator: UserGenerator<TOptions>): CoreGenerator<TOptions>;
|
|
354
354
|
//#endregion
|
|
355
355
|
export { Resolver as C, ResolvePathOptions as S, Options as _, createReactGenerator as a, Ref as b, SchemaGeneratorBuildOptions as c, OperationGenerator as d, OperationMethodResult as f, OperationSchemas as g, OperationSchema as h, ReactGenerator as i, SchemaGeneratorOptions as l, Include as m, createGenerator as n, GetSchemaGeneratorOptions as o, Exclude as p, Generator as r, SchemaGenerator as s, CoreGenerator as t, SchemaMethodResult as u, Override as v, FunctionParamsAST as w, Refs as x, PluginOas as y };
|
|
356
|
-
//# sourceMappingURL=createGenerator-
|
|
356
|
+
//# sourceMappingURL=createGenerator-BOeO1z4V.d.cts.map
|