@samchon/openapi
Advanced tools
Comparing version 2.5.0-dev.20250211 to 2.5.0-dev.20250212
@@ -196,3 +196,3 @@ "use strict"; | ||
else if (OpenApiTypeChecker_1.OpenApiTypeChecker.isOneOf(input)) | ||
input.oneOf.forEach(visitConstant); | ||
input.oneOf.forEach(function (s) { return visitConstant(s); }); | ||
}; | ||
@@ -199,0 +199,0 @@ visit(schema); |
@@ -5,3 +5,2 @@ export * from "./OpenApi"; | ||
export * from "./OpenApiV3_1"; | ||
export * from "./structures/IJsonSchemaAttribute"; | ||
export * from "./utils/OpenApiTypeChecker"; | ||
@@ -15,2 +14,3 @@ export * from "./structures/IHttpMigrateApplication"; | ||
export * from "./typings/IResult"; | ||
export * from "./structures/IJsonSchemaAttribute"; | ||
export * from "./structures/IOpenApiSchemaError"; | ||
@@ -17,0 +17,0 @@ export * from "./structures/IHttpLlmApplication"; |
@@ -24,3 +24,2 @@ "use strict"; | ||
__exportStar(require("./OpenApiV3_1"), exports); | ||
__exportStar(require("./structures/IJsonSchemaAttribute"), exports); | ||
__exportStar(require("./utils/OpenApiTypeChecker"), exports); | ||
@@ -40,2 +39,3 @@ //---- | ||
__exportStar(require("./typings/IResult"), exports); | ||
__exportStar(require("./structures/IJsonSchemaAttribute"), exports); | ||
__exportStar(require("./structures/IOpenApiSchemaError"), exports); | ||
@@ -42,0 +42,0 @@ __exportStar(require("./structures/IHttpLlmApplication"), exports); |
@@ -536,3 +536,3 @@ import { OpenApiV3 } from "./OpenApiV3"; | ||
*/ | ||
interface IConstant extends __IAttribute { | ||
interface IConstant extends IJsonSchemaAttribute { | ||
/** | ||
@@ -546,5 +546,5 @@ * The constant value. | ||
*/ | ||
interface IBoolean extends __ISignificant<"boolean"> { | ||
interface IBoolean extends IJsonSchemaAttribute.IBoolean { | ||
/** | ||
* The default value. | ||
* The default value of the boolean type. | ||
*/ | ||
@@ -556,5 +556,5 @@ default?: boolean; | ||
*/ | ||
interface IInteger extends __ISignificant<"integer"> { | ||
interface IInteger extends IJsonSchemaAttribute.IInteger { | ||
/** | ||
* Default value. | ||
* Default value of the integer type. | ||
* | ||
@@ -605,5 +605,5 @@ * @type int64 | ||
*/ | ||
interface INumber extends __ISignificant<"number"> { | ||
interface INumber extends IJsonSchemaAttribute.INumber { | ||
/** | ||
* Default value. | ||
* Default value of the number type. | ||
*/ | ||
@@ -647,5 +647,5 @@ default?: number; | ||
*/ | ||
interface IString extends __ISignificant<"string"> { | ||
interface IString extends IJsonSchemaAttribute.IString { | ||
/** | ||
* Default value. | ||
* Default value of the string type. | ||
*/ | ||
@@ -681,3 +681,3 @@ default?: string; | ||
*/ | ||
interface IArray extends __ISignificant<"array"> { | ||
interface IArray extends IJsonSchemaAttribute.IArray { | ||
/** | ||
@@ -716,4 +716,15 @@ * Items type info. | ||
*/ | ||
interface ITuple extends __ISignificant<"array"> { | ||
interface ITuple extends IJsonSchemaAttribute { | ||
/** | ||
* Discriminator value of the type. | ||
* | ||
* Note that, the tuple type cannot be distinguished with | ||
* {@link IArray} type just by this `discriminator` property. | ||
* | ||
* To check whether the type is tuple or array, you have to check | ||
* the existence of {@link IArray.items} or {@link ITuple.prefixItems} | ||
* properties. | ||
*/ | ||
type: "array"; | ||
/** | ||
* Prefix items. | ||
@@ -770,3 +781,3 @@ * | ||
*/ | ||
interface IObject extends __ISignificant<"object"> { | ||
interface IObject extends IJsonSchemaAttribute.IObject { | ||
/** | ||
@@ -836,3 +847,3 @@ * Properties of the object. | ||
*/ | ||
interface IReference<Key = string> extends __IAttribute { | ||
interface IReference<Key = string> extends IJsonSchemaAttribute { | ||
/** | ||
@@ -860,3 +871,3 @@ * Reference to the named schema. | ||
*/ | ||
interface IOneOf extends __IAttribute { | ||
interface IOneOf extends IJsonSchemaAttribute { | ||
/** | ||
@@ -894,5 +905,5 @@ * List of the union types. | ||
*/ | ||
interface INull extends __ISignificant<"null"> { | ||
interface INull extends IJsonSchemaAttribute.INull { | ||
/** | ||
* Default value. | ||
* Default value of the `null` type. | ||
*/ | ||
@@ -904,12 +915,15 @@ default?: null; | ||
*/ | ||
interface IUnknown extends __IAttribute { | ||
interface IUnknown extends IJsonSchemaAttribute.IUnknown { | ||
/** | ||
* Type is never be defined. | ||
* Default value of the `any` type. | ||
*/ | ||
type?: undefined; | ||
default?: any; | ||
} | ||
/** | ||
* Significant attributes that can be applied to the most types. | ||
* | ||
* @deprecated | ||
* @hidden | ||
*/ | ||
interface __ISignificant<Type extends string> extends __IAttribute { | ||
interface __ISignificant<Type extends string> extends IJsonSchemaAttribute { | ||
/** | ||
@@ -922,2 +936,5 @@ * Discriminator value of the type. | ||
* Common attributes that can be applied to all types. | ||
* | ||
* @deprecated | ||
* @hidden | ||
*/ | ||
@@ -924,0 +941,0 @@ type __IAttribute = IJsonSchemaAttribute; |
@@ -0,1 +1,2 @@ | ||
import { IJsonSchemaAttribute } from "./structures/IJsonSchemaAttribute"; | ||
/** | ||
@@ -115,3 +116,3 @@ * OpenAPI v3.1 definition. | ||
} | ||
type IJsonSchema = IJsonSchema.IMixed | IJsonSchema.IConstant | IJsonSchema.IBoolean | IJsonSchema.IInteger | IJsonSchema.INumber | IJsonSchema.IString | IJsonSchema.IArray | IJsonSchema.IObject | IJsonSchema.IReference | IJsonSchema.IUnknown | IJsonSchema.INull | IJsonSchema.IAllOf | IJsonSchema.IAnyOf | IJsonSchema.IOneOf; | ||
type IJsonSchema = IJsonSchema.IMixed | IJsonSchema.IConstant | IJsonSchema.IBoolean | IJsonSchema.IInteger | IJsonSchema.INumber | IJsonSchema.IString | IJsonSchema.IArray | IJsonSchema.IObject | IJsonSchema.IReference | IJsonSchema.IRecursiveReference | IJsonSchema.IAllOf | IJsonSchema.IAnyOf | IJsonSchema.IOneOf | IJsonSchema.INull | IJsonSchema.IUnknown; | ||
namespace IJsonSchema { | ||
@@ -123,10 +124,13 @@ interface IMixed extends IConstant, Omit<IBoolean, "type" | "default" | "enum">, Omit<INumber, "type" | "default" | "enum">, Omit<IString, "type" | "default" | "enum">, Omit<IArray, "type">, Omit<IObject, "type">, IOneOf, IAnyOf, IAllOf, IReference { | ||
} | ||
interface IConstant extends __IAttribute { | ||
interface IConstant extends IJsonSchemaAttribute { | ||
const: boolean | number | string; | ||
nullable?: boolean; | ||
} | ||
interface IBoolean extends __ISignificant<"boolean"> { | ||
interface IBoolean extends IJsonSchemaAttribute.IBoolean { | ||
nullable?: boolean; | ||
default?: boolean | null; | ||
enum?: Array<boolean | null>; | ||
} | ||
interface IInteger extends __ISignificant<"integer"> { | ||
interface IInteger extends IJsonSchemaAttribute.IInteger { | ||
nullable?: boolean; | ||
/** @type int64 */ default?: number | null; | ||
@@ -144,3 +148,4 @@ /** @type int64 */ enum?: Array<number | null>; | ||
} | ||
interface INumber extends __ISignificant<"number"> { | ||
interface INumber extends IJsonSchemaAttribute.INumber { | ||
nullable?: boolean; | ||
default?: number | null; | ||
@@ -154,4 +159,4 @@ enum?: Array<number | null>; | ||
} | ||
interface IString extends __ISignificant<"string"> { | ||
contentMediaType?: string; | ||
interface IString extends IJsonSchemaAttribute.IString { | ||
nullable?: boolean; | ||
default?: string | null; | ||
@@ -161,18 +166,36 @@ enum?: Array<string | null>; | ||
pattern?: string; | ||
contentMediaType?: string; | ||
/** @type uint64 */ minLength?: number; | ||
/** @type uint64 */ maxLength?: number; | ||
} | ||
interface IUnknown extends __IAttribute { | ||
type?: undefined; | ||
interface IObject extends IJsonSchemaAttribute.IObject { | ||
nullable?: boolean; | ||
properties?: Record<string, IJsonSchema>; | ||
required?: string[]; | ||
additionalProperties?: boolean | IJsonSchema; | ||
maxProperties?: number; | ||
minProperties?: number; | ||
} | ||
interface INull extends __ISignificant<"null"> { | ||
default?: null; | ||
interface IArray extends IJsonSchemaAttribute.IArray { | ||
nullable?: boolean; | ||
items?: IJsonSchema | IJsonSchema[]; | ||
prefixItems?: IJsonSchema[]; | ||
uniqueItems?: boolean; | ||
additionalItems?: boolean | IJsonSchema; | ||
/** @type uint64 */ minItems?: number; | ||
/** @type uint64 */ maxItems?: number; | ||
} | ||
interface IAllOf extends __IAttribute { | ||
interface IReference<Key = string> extends IJsonSchemaAttribute { | ||
$ref: Key; | ||
} | ||
interface IRecursiveReference extends IJsonSchemaAttribute { | ||
$recursiveRef: string; | ||
} | ||
interface IAllOf extends IJsonSchemaAttribute { | ||
allOf: IJsonSchema[]; | ||
} | ||
interface IAnyOf extends __IAttribute { | ||
interface IAnyOf extends IJsonSchemaAttribute { | ||
anyOf: IJsonSchema[]; | ||
} | ||
interface IOneOf extends __IAttribute { | ||
interface IOneOf extends IJsonSchemaAttribute { | ||
oneOf: IJsonSchema[]; | ||
@@ -187,23 +210,13 @@ discriminator?: IOneOf.IDiscriminator; | ||
} | ||
interface IArray extends __ISignificant<"array"> { | ||
items?: IJsonSchema | IJsonSchema[]; | ||
prefixItems?: IJsonSchema[]; | ||
uniqueItems?: boolean; | ||
additionalItems?: boolean | IJsonSchema; | ||
/** @type uint64 */ minItems?: number; | ||
/** @type uint64 */ maxItems?: number; | ||
interface INull extends IJsonSchemaAttribute.INull { | ||
default?: null; | ||
} | ||
interface IObject extends __ISignificant<"object"> { | ||
properties?: Record<string, IJsonSchema>; | ||
required?: string[]; | ||
additionalProperties?: boolean | IJsonSchema; | ||
maxProperties?: number; | ||
minProperties?: number; | ||
interface IUnknown extends IJsonSchemaAttribute.IUnknown { | ||
type?: undefined; | ||
default?: any; | ||
} | ||
interface IReference<Key = string> extends __IAttribute { | ||
$ref: Key; | ||
} | ||
interface IRecursiveReference extends __IAttribute { | ||
$recursiveRef: string; | ||
} | ||
/** | ||
* @deprecated | ||
* @hidden | ||
*/ | ||
interface __ISignificant<Type extends string> extends __IAttribute { | ||
@@ -213,9 +226,7 @@ type: Type; | ||
} | ||
interface __IAttribute { | ||
title?: string; | ||
description?: string; | ||
deprecated?: boolean; | ||
example?: any; | ||
examples?: Record<string, any>; | ||
} | ||
/** | ||
* @deprecated | ||
* @hidden | ||
*/ | ||
type __IAttribute = IJsonSchemaAttribute; | ||
} | ||
@@ -222,0 +233,0 @@ type ISecurityScheme = ISecurityScheme.IApiKey | ISecurityScheme.IHttpBasic | ISecurityScheme.IHttpBearer | ISecurityScheme.IOAuth2 | ISecurityScheme.IOpenId; |
@@ -0,1 +1,2 @@ | ||
import { IJsonSchemaAttribute } from "./structures/IJsonSchemaAttribute"; | ||
/** | ||
@@ -111,5 +112,6 @@ * OpenAPI 3.0 definition. | ||
} | ||
type IJsonSchema = IJsonSchema.IBoolean | IJsonSchema.IInteger | IJsonSchema.INumber | IJsonSchema.IString | IJsonSchema.IArray | IJsonSchema.IObject | IJsonSchema.IReference | IJsonSchema.IUnknown | IJsonSchema.INullOnly | IJsonSchema.IAllOf | IJsonSchema.IAnyOf | IJsonSchema.IOneOf; | ||
type IJsonSchema = IJsonSchema.IBoolean | IJsonSchema.IInteger | IJsonSchema.INumber | IJsonSchema.IString | IJsonSchema.IArray | IJsonSchema.IObject | IJsonSchema.IReference | IJsonSchema.IAllOf | IJsonSchema.IAnyOf | IJsonSchema.IOneOf | IJsonSchema.INullOnly | IJsonSchema.IUnknown; | ||
namespace IJsonSchema { | ||
interface IBoolean extends __ISignificant<"boolean"> { | ||
nullable?: boolean; | ||
default?: boolean | null; | ||
@@ -119,2 +121,3 @@ enum?: Array<boolean | null>; | ||
interface IInteger extends __ISignificant<"integer"> { | ||
nullable?: boolean; | ||
/** @type int64 */ default?: number | null; | ||
@@ -133,2 +136,3 @@ /** @type int64 */ enum?: Array<number | null>; | ||
interface INumber extends __ISignificant<"number"> { | ||
nullable?: boolean; | ||
default?: number | null; | ||
@@ -143,2 +147,3 @@ enum?: Array<number | null>; | ||
interface IString extends __ISignificant<"string"> { | ||
nullable?: boolean; | ||
default?: string | null; | ||
@@ -151,3 +156,4 @@ enum?: Array<string | null>; | ||
} | ||
interface IArray extends __ISignificant<"array"> { | ||
interface IArray extends IJsonSchemaAttribute.IArray { | ||
nullable?: boolean; | ||
items: IJsonSchema; | ||
@@ -158,3 +164,4 @@ uniqueItems?: boolean; | ||
} | ||
interface IObject extends __ISignificant<"object"> { | ||
interface IObject extends IJsonSchemaAttribute.IObject { | ||
nullable?: boolean; | ||
properties?: Record<string, IJsonSchema>; | ||
@@ -166,19 +173,12 @@ required?: string[]; | ||
} | ||
interface IReference<Key = string> extends __IAttribute { | ||
interface IReference<Key = string> extends IJsonSchemaAttribute { | ||
$ref: Key; | ||
} | ||
interface IUnknown extends __IAttribute { | ||
type?: undefined; | ||
} | ||
interface INullOnly extends __IAttribute { | ||
type: "null"; | ||
default?: null; | ||
} | ||
interface IAllOf extends __IAttribute { | ||
interface IAllOf extends IJsonSchemaAttribute { | ||
allOf: IJsonSchema[]; | ||
} | ||
interface IAnyOf extends __IAttribute { | ||
interface IAnyOf extends IJsonSchemaAttribute { | ||
anyOf: IJsonSchema[]; | ||
} | ||
interface IOneOf extends __IAttribute { | ||
interface IOneOf extends IJsonSchemaAttribute { | ||
oneOf: IJsonSchema[]; | ||
@@ -193,13 +193,21 @@ discriminator?: IOneOf.IDiscriminator; | ||
} | ||
interface __ISignificant<Type extends string> extends __IAttribute { | ||
interface INullOnly extends IJsonSchemaAttribute.INull { | ||
default?: null; | ||
} | ||
interface IUnknown extends IJsonSchemaAttribute.IUnknown { | ||
default?: any; | ||
} | ||
/** | ||
* @deprecated | ||
* @hidden | ||
*/ | ||
interface __ISignificant<Type extends string> extends IJsonSchemaAttribute { | ||
type: Type; | ||
nullable?: boolean; | ||
} | ||
interface __IAttribute { | ||
title?: string; | ||
description?: string; | ||
deprecated?: boolean; | ||
example?: any; | ||
examples?: Record<string, any>; | ||
} | ||
/** | ||
* @deprecated | ||
* @hidden | ||
*/ | ||
type __IAttribute = IJsonSchemaAttribute; | ||
} | ||
@@ -206,0 +214,0 @@ type ISecurityScheme = ISecurityScheme.IApiKey | ISecurityScheme.IHttpBasic | ISecurityScheme.IHttpBearer | ISecurityScheme.IOAuth2 | ISecurityScheme.IOpenId; |
@@ -98,3 +98,3 @@ import { IJsonSchemaAttribute } from "./IJsonSchemaAttribute"; | ||
*/ | ||
interface IBoolean extends __ISignificant<"boolean"> { | ||
interface IBoolean extends IJsonSchemaAttribute.IBoolean { | ||
/** | ||
@@ -108,3 +108,3 @@ * Enumeration values. | ||
*/ | ||
interface IInteger extends __ISignificant<"integer"> { | ||
interface IInteger extends IJsonSchemaAttribute.IInteger { | ||
/** | ||
@@ -118,3 +118,3 @@ * Enumeration values. | ||
*/ | ||
interface INumber extends __ISignificant<"number"> { | ||
interface INumber extends IJsonSchemaAttribute.INumber { | ||
/** | ||
@@ -128,3 +128,3 @@ * Enumeration values. | ||
*/ | ||
interface IString extends __ISignificant<"string"> { | ||
interface IString extends IJsonSchemaAttribute.IString { | ||
/** | ||
@@ -138,3 +138,3 @@ * Enumeration values. | ||
*/ | ||
interface IArray extends __ISignificant<"array"> { | ||
interface IArray extends IJsonSchemaAttribute.IArray { | ||
/** | ||
@@ -151,3 +151,3 @@ * Items type info. | ||
*/ | ||
interface IObject extends __ISignificant<"object"> { | ||
interface IObject extends IJsonSchemaAttribute.IObject { | ||
/** | ||
@@ -210,3 +210,3 @@ * Properties of the object. | ||
*/ | ||
interface IReference extends __IAttribute { | ||
interface IReference extends IJsonSchemaAttribute { | ||
/** | ||
@@ -234,3 +234,3 @@ * Reference to the named schema. | ||
*/ | ||
interface IAnyOf extends __IAttribute { | ||
interface IAnyOf extends IJsonSchemaAttribute { | ||
/** | ||
@@ -244,3 +244,3 @@ * List of the union types. | ||
*/ | ||
interface INull extends __ISignificant<"null"> { | ||
interface INull extends IJsonSchemaAttribute.INull { | ||
} | ||
@@ -250,10 +250,9 @@ /** | ||
*/ | ||
interface IUnknown extends __IAttribute { | ||
/** | ||
* Type is never be defined. | ||
*/ | ||
type?: undefined; | ||
interface IUnknown extends IJsonSchemaAttribute.IUnknown { | ||
} | ||
/** | ||
* Significant attributes that can be applied to the most types. | ||
* | ||
* @deprecated | ||
* @hidden | ||
*/ | ||
@@ -268,2 +267,5 @@ interface __ISignificant<Type extends string> extends __IAttribute { | ||
* Common attributes that can be applied to all types. | ||
* | ||
* @deprecated | ||
* @hidden | ||
*/ | ||
@@ -270,0 +272,0 @@ type __IAttribute = IJsonSchemaAttribute; |
@@ -44,14 +44,2 @@ import { ILlmSchemaV3_1 } from "./ILlmSchemaV3_1"; | ||
export declare namespace IClaudeSchema { | ||
export import IParameters = ILlmSchemaV3_1.IParameters; | ||
export import IConstant = ILlmSchemaV3_1.IConstant; | ||
export import IBoolean = ILlmSchemaV3_1.IBoolean; | ||
export import IInteger = ILlmSchemaV3_1.IInteger; | ||
export import INumber = ILlmSchemaV3_1.INumber; | ||
export import IString = ILlmSchemaV3_1.IString; | ||
export import IObject = ILlmSchemaV3_1.IObject; | ||
export import IArray = ILlmSchemaV3_1.IArray; | ||
export import IReference = ILlmSchemaV3_1.IReference; | ||
export import IOneOf = ILlmSchemaV3_1.IOneOf; | ||
export import INull = ILlmSchemaV3_1.INull; | ||
export import IUnknown = ILlmSchemaV3_1.IUnknown; | ||
/** | ||
@@ -81,2 +69,14 @@ * Configuration for Claude schema composition. | ||
} | ||
export import IParameters = ILlmSchemaV3_1.IParameters; | ||
export import IConstant = ILlmSchemaV3_1.IConstant; | ||
export import IBoolean = ILlmSchemaV3_1.IBoolean; | ||
export import IInteger = ILlmSchemaV3_1.IInteger; | ||
export import INumber = ILlmSchemaV3_1.INumber; | ||
export import IString = ILlmSchemaV3_1.IString; | ||
export import IObject = ILlmSchemaV3_1.IObject; | ||
export import IArray = ILlmSchemaV3_1.IArray; | ||
export import IReference = ILlmSchemaV3_1.IReference; | ||
export import IOneOf = ILlmSchemaV3_1.IOneOf; | ||
export import INull = ILlmSchemaV3_1.INull; | ||
export import IUnknown = ILlmSchemaV3_1.IUnknown; | ||
} |
@@ -64,2 +64,18 @@ import { IJsonSchemaAttribute } from "./IJsonSchemaAttribute"; | ||
/** | ||
* Configuration for the Gemini schema composition. | ||
*/ | ||
interface IConfig { | ||
/** | ||
* Whether to allow recursive types or not. | ||
* | ||
* If allow, then how many times to repeat the recursive types. | ||
* | ||
* By the way, if the model is "chatgpt", the recursive types are always | ||
* allowed without any limitation, due to it supports the reference type. | ||
* | ||
* @default 3 | ||
*/ | ||
recursive: false | number; | ||
} | ||
/** | ||
* Type of the function parameters. | ||
@@ -78,4 +94,8 @@ * | ||
*/ | ||
interface IBoolean extends __ISignificant<"boolean"> { | ||
interface IBoolean extends IJsonSchemaAttribute.IBoolean { | ||
/** | ||
* Whether to allow `null` value or not. | ||
*/ | ||
nullable?: boolean; | ||
/** | ||
* Enumeration values. | ||
@@ -88,4 +108,8 @@ */ | ||
*/ | ||
interface IInteger extends __ISignificant<"integer"> { | ||
interface IInteger extends IJsonSchemaAttribute.IInteger { | ||
/** | ||
* Whether to allow `null` value or not. | ||
*/ | ||
nullable?: boolean; | ||
/** | ||
* Enumeration values. | ||
@@ -100,4 +124,8 @@ * | ||
*/ | ||
interface INumber extends __ISignificant<"number"> { | ||
interface INumber extends IJsonSchemaAttribute.INumber { | ||
/** | ||
* Whether to allow `null` value or not. | ||
*/ | ||
nullable?: boolean; | ||
/** | ||
* Enumeration values. | ||
@@ -110,4 +138,8 @@ */ | ||
*/ | ||
interface IString extends __ISignificant<"string"> { | ||
interface IString extends IJsonSchemaAttribute.IString { | ||
/** | ||
* Whether to allow `null` value or not. | ||
*/ | ||
nullable?: boolean; | ||
/** | ||
* Enumeration values. | ||
@@ -120,4 +152,8 @@ */ | ||
*/ | ||
interface IArray extends __ISignificant<"array"> { | ||
interface IArray extends IJsonSchemaAttribute.IArray { | ||
/** | ||
* Whether to allow `null` value or not. | ||
*/ | ||
nullable?: boolean; | ||
/** | ||
* Items type schema info. | ||
@@ -133,4 +169,8 @@ * | ||
*/ | ||
interface IObject extends __ISignificant<"object"> { | ||
interface IObject extends IJsonSchemaAttribute.IObject { | ||
/** | ||
* Whether to allow `null` value or not. | ||
*/ | ||
nullable?: boolean; | ||
/** | ||
* Properties of the object. | ||
@@ -182,2 +222,7 @@ * | ||
/** | ||
* Null only type schema info. | ||
*/ | ||
interface INullOnly extends IJsonSchemaAttribute.INull { | ||
} | ||
/** | ||
* Unknown type schema info. | ||
@@ -187,19 +232,9 @@ * | ||
*/ | ||
interface IUnknown extends __IAttribute { | ||
/** | ||
* Type is never be defined. | ||
*/ | ||
type?: undefined; | ||
interface IUnknown extends IJsonSchemaAttribute.IUnknown { | ||
} | ||
/** | ||
* Null only type schema info. | ||
*/ | ||
interface INullOnly extends __IAttribute { | ||
/** | ||
* Type is always `null`. | ||
*/ | ||
type: "null"; | ||
} | ||
/** | ||
* Significant attributes that can be applied to the most types. | ||
* | ||
* @deprecated | ||
* @hidden | ||
*/ | ||
@@ -218,20 +253,7 @@ interface __ISignificant<Type extends string> extends __IAttribute { | ||
* Common attributes that can be applied to all types. | ||
* | ||
* @deprecated | ||
* @hidden | ||
*/ | ||
type __IAttribute = IJsonSchemaAttribute; | ||
/** | ||
* Configuration for the Gemini schema composition. | ||
*/ | ||
interface IConfig { | ||
/** | ||
* Whether to allow recursive types or not. | ||
* | ||
* If allow, then how many times to repeat the recursive types. | ||
* | ||
* By the way, if the model is "chatgpt", the recursive types are always | ||
* allowed without any limitation, due to it supports the reference type. | ||
* | ||
* @default 3 | ||
*/ | ||
recursive: false | number; | ||
} | ||
} |
/** | ||
* Common attributes for JSON schema types. | ||
* | ||
* `IJsonSchemaAttribute` is a common interface for all JSON schema types | ||
* supported in here `@samchon/openapi`. Here is the list of affected JSON | ||
* schema types in `@samchon/openapi`, and you can extend the interface by | ||
* declaring module augmentation. | ||
* `IJsonSchemaAttribute` is a common interface for all JSON schema | ||
* types supported in here `@samchon/openapi`. Here is the list of | ||
* affected JSON schema types in `@samchon/openapi`, and you can extend | ||
* the interface by declaring module augmentation. | ||
* | ||
* - {@link OpenApi.IJsonSchema} | ||
* - {@link OpenApiV3_1.IJsonSchema} | ||
* - {@link OpenApiV3.IJsonSchema} | ||
* - {@link SwaggerV2.IJsonSchema} | ||
* - {@link IChatGptSchema} | ||
@@ -16,6 +19,12 @@ * - {@link IClaudeSchema} | ||
* | ||
* For example, if you extend the `IJsonSchemaAttribute` interface like | ||
* below, every JSON schema types in `@samchon/openapi` will have a new | ||
* custom attribute `x-wrtn-placeholder`. | ||
* For example, if you extend the `IJsonSchemaAttribute` interface | ||
* like below, every JSON schema types in `@samchon/openapi` will have | ||
* a new custom attribute `x-wrtn-placeholder`. | ||
* | ||
* Also, if you augment the nested type like | ||
* `IJsonSchemaAttribute.IString`, you can add the custom attribute | ||
* to every string types in the JSON schema. In the below example case, | ||
* every string types will have a new custom attribute | ||
* `x-wrtn-secret-key`. | ||
* | ||
* ```typescript | ||
@@ -31,2 +40,13 @@ * declare module "@samchon/openapi" { | ||
* } | ||
* export namespace IJsonSchemaAttribute { | ||
* export interface IString { | ||
* /// Secret key for the schema. | ||
* /// | ||
* /// `x-wrtn-secret-key` is a property means a secret key | ||
* /// that is required for the target API endpoint calling. | ||
* /// If the secret key is not filled, the API call would | ||
* /// be failed. | ||
* "x-wrtn-secret-key"?: string; | ||
* } | ||
* } | ||
* } | ||
@@ -59,1 +79,57 @@ * ``` | ||
} | ||
export declare namespace IJsonSchemaAttribute { | ||
/** | ||
* Common attributes for boolean types. | ||
*/ | ||
export interface IBoolean extends ISignificant<"boolean"> { | ||
} | ||
/** | ||
* Common attributes for integer types. | ||
*/ | ||
export interface IInteger extends ISignificant<"integer"> { | ||
} | ||
/** | ||
* Common attributes for number types. | ||
*/ | ||
export interface INumber extends ISignificant<"number"> { | ||
} | ||
/** | ||
* Common attributes for string types. | ||
*/ | ||
export interface IString extends ISignificant<"string"> { | ||
} | ||
/** | ||
* Common attributes for object types. | ||
*/ | ||
export interface IObject extends ISignificant<"object"> { | ||
} | ||
/** | ||
* Common attributes for array types. | ||
*/ | ||
export interface IArray extends ISignificant<"array"> { | ||
} | ||
/** | ||
* Common attributes for null types. | ||
*/ | ||
export interface INull extends ISignificant<"null"> { | ||
} | ||
/** | ||
* Common attributes for unknown types. | ||
*/ | ||
export interface IUnknown extends IJsonSchemaAttribute { | ||
/** | ||
* Type is never be defined. | ||
*/ | ||
type?: undefined; | ||
} | ||
/** | ||
* Significant attributes that can be applied to the most types. | ||
*/ | ||
interface ISignificant<Type extends string> extends IJsonSchemaAttribute { | ||
/** | ||
* Discriminator value of the type. | ||
*/ | ||
type: Type; | ||
} | ||
export {}; | ||
} |
@@ -62,2 +62,58 @@ import { IJsonSchemaAttribute } from "./IJsonSchemaAttribute"; | ||
/** | ||
* Configuration for OpenAPI v3.1 based LLM schema composition. | ||
*/ | ||
interface IConfig { | ||
/** | ||
* Whether to allow constraint properties or not. | ||
* | ||
* If you configure this property to `false`, the schemas do not contain | ||
* the constraint properties of below. Instead, below properties would be | ||
* written to the {@link ILlmSchemaV3_1.__IAttribute.description} property | ||
* as a comment string like `"@format uuid"`. | ||
* | ||
* This is because some LLM schema model like {@link IChatGptSchema} | ||
* has banned such constraint, because their LLM cannot understand the | ||
* constraint properties and occur the hallucination. | ||
* | ||
* Therefore, considering your LLM model's performance, capability, | ||
* and the complexity of your parameter types, determine which is better, | ||
* to allow the constraint properties or not. | ||
* | ||
* - {@link ILlmSchemaV3_1.INumber.minimum} | ||
* - {@link ILlmSchemaV3_1.INumber.maximum} | ||
* - {@link ILlmSchemaV3_1.INumber.multipleOf} | ||
* - {@link ILlmSchemaV3_1.IString.minLength} | ||
* - {@link ILlmSchemaV3_1.IString.maxLength} | ||
* - {@link ILlmSchemaV3_1.IString.format} | ||
* - {@link ILlmSchemaV3_1.IString.pattern} | ||
* - {@link ILlmSchemaV3_1.IString.contentMediaType} | ||
* - {@link ILlmSchemaV3_1.IString.default} | ||
* - {@link ILlmSchemaV3_1.IArray.minItems} | ||
* - {@link ILlmSchemaV3_1.IArray.maxItems} | ||
* - {@link ILlmSchemaV3_1.IArray.unique} | ||
* | ||
* @default true | ||
*/ | ||
constraint: boolean; | ||
/** | ||
* Whether to allow reference type in everywhere. | ||
* | ||
* If you configure this property to `false`, most of reference types | ||
* represented by {@link ILlmSchemaV3_1.IReference} would be escaped to | ||
* a plain type unless recursive type case. | ||
* | ||
* This is because some low sized LLM models does not understand the | ||
* reference type well, and even the large size LLM models sometimes occur | ||
* the hallucination. | ||
* | ||
* However, the reference type makes the schema size smaller, so that reduces | ||
* the LLM token cost. Therefore, if you're using the large size of LLM model, | ||
* and want to reduce the LLM token cost, you can configure this property to | ||
* `true`. | ||
* | ||
* @default false | ||
*/ | ||
reference: boolean; | ||
} | ||
/** | ||
* Type of the function parameters. | ||
@@ -90,3 +146,3 @@ * | ||
*/ | ||
interface IConstant extends __IAttribute { | ||
interface IConstant extends IJsonSchemaAttribute { | ||
/** | ||
@@ -100,3 +156,3 @@ * The constant value. | ||
*/ | ||
interface IBoolean extends __ISignificant<"boolean"> { | ||
interface IBoolean extends IJsonSchemaAttribute.IBoolean { | ||
/** | ||
@@ -110,3 +166,3 @@ * The default value. | ||
*/ | ||
interface IInteger extends __ISignificant<"integer"> { | ||
interface IInteger extends IJsonSchemaAttribute.IInteger { | ||
/** | ||
@@ -159,3 +215,3 @@ * Default value. | ||
*/ | ||
interface INumber extends __ISignificant<"number"> { | ||
interface INumber extends IJsonSchemaAttribute.INumber { | ||
/** | ||
@@ -201,3 +257,3 @@ * Default value. | ||
*/ | ||
interface IString extends __ISignificant<"string"> { | ||
interface IString extends IJsonSchemaAttribute.IString { | ||
/** | ||
@@ -235,3 +291,3 @@ * Default value. | ||
*/ | ||
interface IArray extends __ISignificant<"array"> { | ||
interface IArray extends IJsonSchemaAttribute.IArray { | ||
/** | ||
@@ -270,3 +326,3 @@ * Items type info. | ||
*/ | ||
interface IObject extends __ISignificant<"object"> { | ||
interface IObject extends IJsonSchemaAttribute.IObject { | ||
/** | ||
@@ -336,3 +392,3 @@ * Properties of the object. | ||
*/ | ||
interface IReference extends __IAttribute { | ||
interface IReference extends IJsonSchemaAttribute { | ||
/** | ||
@@ -360,3 +416,3 @@ * Reference to the named schema. | ||
*/ | ||
interface IOneOf extends __IAttribute { | ||
interface IOneOf extends IJsonSchemaAttribute { | ||
/** | ||
@@ -394,3 +450,3 @@ * List of the union types. | ||
*/ | ||
interface INull extends __ISignificant<"null"> { | ||
interface INull extends IJsonSchemaAttribute.INull { | ||
/** | ||
@@ -404,10 +460,9 @@ * Default value. | ||
*/ | ||
interface IUnknown extends __IAttribute { | ||
/** | ||
* Type is never be defined. | ||
*/ | ||
type?: undefined; | ||
interface IUnknown extends IJsonSchemaAttribute.IUnknown { | ||
} | ||
/** | ||
* Significant attributes that can be applied to the most types. | ||
* | ||
* @deprecated | ||
* @hidden | ||
*/ | ||
@@ -422,60 +477,7 @@ interface __ISignificant<Type extends string> extends __IAttribute { | ||
* Common attributes that can be applied to all types. | ||
* | ||
* @deprecated | ||
* @hidden | ||
*/ | ||
type __IAttribute = IJsonSchemaAttribute; | ||
/** | ||
* Configuration for OpenAPI v3.1 based LLM schema composition. | ||
*/ | ||
interface IConfig { | ||
/** | ||
* Whether to allow constraint properties or not. | ||
* | ||
* If you configure this property to `false`, the schemas do not contain | ||
* the constraint properties of below. Instead, below properties would be | ||
* written to the {@link ILlmSchemaV3_1.__IAttribute.description} property | ||
* as a comment string like `"@format uuid"`. | ||
* | ||
* This is because some LLM schema model like {@link IChatGptSchema} | ||
* has banned such constraint, because their LLM cannot understand the | ||
* constraint properties and occur the hallucination. | ||
* | ||
* Therefore, considering your LLM model's performance, capability, | ||
* and the complexity of your parameter types, determine which is better, | ||
* to allow the constraint properties or not. | ||
* | ||
* - {@link ILlmSchemaV3_1.INumber.minimum} | ||
* - {@link ILlmSchemaV3_1.INumber.maximum} | ||
* - {@link ILlmSchemaV3_1.INumber.multipleOf} | ||
* - {@link ILlmSchemaV3_1.IString.minLength} | ||
* - {@link ILlmSchemaV3_1.IString.maxLength} | ||
* - {@link ILlmSchemaV3_1.IString.format} | ||
* - {@link ILlmSchemaV3_1.IString.pattern} | ||
* - {@link ILlmSchemaV3_1.IString.contentMediaType} | ||
* - {@link ILlmSchemaV3_1.IString.default} | ||
* - {@link ILlmSchemaV3_1.IArray.minItems} | ||
* - {@link ILlmSchemaV3_1.IArray.maxItems} | ||
* - {@link ILlmSchemaV3_1.IArray.unique} | ||
* | ||
* @default true | ||
*/ | ||
constraint: boolean; | ||
/** | ||
* Whether to allow reference type in everywhere. | ||
* | ||
* If you configure this property to `false`, most of reference types | ||
* represented by {@link ILlmSchemaV3_1.IReference} would be escaped to | ||
* a plain type unless recursive type case. | ||
* | ||
* This is because some low sized LLM models does not understand the | ||
* reference type well, and even the large size LLM models sometimes occur | ||
* the hallucination. | ||
* | ||
* However, the reference type makes the schema size smaller, so that reduces | ||
* the LLM token cost. Therefore, if you're using the large size of LLM model, | ||
* and want to reduce the LLM token cost, you can configure this property to | ||
* `true`. | ||
* | ||
* @default false | ||
*/ | ||
reference: boolean; | ||
} | ||
} |
@@ -46,2 +46,50 @@ import { IJsonSchemaAttribute } from "./IJsonSchemaAttribute"; | ||
/** | ||
* Configuration for OpenAPI v3.0 based LLM schema composition. | ||
*/ | ||
interface IConfig { | ||
/** | ||
* Whether to allow constraint properties or not. | ||
* | ||
* If you configure this property to `false`, the schemas do not contain | ||
* the constraint properties of below. Instead, below properties would be | ||
* written to the {@link ILlmSchemaV3.__IAttribute.description} property | ||
* as a comment string like `"@format uuid"`. | ||
* | ||
* This is because some LLM schema model like {@link IGeminiSchema} | ||
* has banned such constraint, because their LLM cannot understand the | ||
* constraint properties and occur the hallucination. | ||
* | ||
* Therefore, considering your LLM model's performance, capability, | ||
* and the complexity of your parameter types, determine which is better, | ||
* to allow the constraint properties or not. | ||
* | ||
* - {@link ILlmSchemaV3.INumber.minimum} | ||
* - {@link ILlmSchemaV3.INumber.maximum} | ||
* - {@link ILlmSchemaV3.INumber.multipleOf} | ||
* - {@link ILlmSchemaV3.IString.minLength} | ||
* - {@link ILlmSchemaV3.IString.maxLength} | ||
* - {@link ILlmSchemaV3.IString.format} | ||
* - {@link ILlmSchemaV3.IString.pattern} | ||
* - {@link ILlmSchemaV3.IString.contentMediaType} | ||
* - {@link ILlmSchemaV3.IString.default} | ||
* - {@link ILlmSchemaV3.IArray.minItems} | ||
* - {@link ILlmSchemaV3.IArray.maxItems} | ||
* - {@link ILlmSchemaV3.IArray.unique} | ||
* | ||
* @default true | ||
*/ | ||
constraint: boolean; | ||
/** | ||
* Whether to allow recursive types or not. | ||
* | ||
* If allow, then how many times to repeat the recursive types. | ||
* | ||
* By the way, if the model is "chatgpt", the recursive types are always | ||
* allowed without any limitation, due to it supports the reference type. | ||
* | ||
* @default 3 | ||
*/ | ||
recursive: false | number; | ||
} | ||
/** | ||
* Type of the function parameters. | ||
@@ -70,4 +118,8 @@ * | ||
*/ | ||
interface IBoolean extends __ISignificant<"boolean"> { | ||
interface IBoolean extends IJsonSchemaAttribute.IBoolean { | ||
/** | ||
* Whether to allow `null` value or not. | ||
*/ | ||
nullable?: boolean; | ||
/** | ||
* Default value. | ||
@@ -84,4 +136,8 @@ */ | ||
*/ | ||
interface IInteger extends __ISignificant<"integer"> { | ||
interface IInteger extends IJsonSchemaAttribute.IInteger { | ||
/** | ||
* Whether to allow `null` value or not. | ||
*/ | ||
nullable?: boolean; | ||
/** | ||
* Default value. | ||
@@ -139,4 +195,8 @@ * | ||
*/ | ||
interface INumber extends __ISignificant<"number"> { | ||
interface INumber extends IJsonSchemaAttribute.INumber { | ||
/** | ||
* Whether to allow `null` value or not. | ||
*/ | ||
nullable?: boolean; | ||
/** | ||
* Default value. | ||
@@ -185,4 +245,8 @@ */ | ||
*/ | ||
interface IString extends __ISignificant<"string"> { | ||
interface IString extends IJsonSchemaAttribute.IString { | ||
/** | ||
* Whether to allow `null` value or not. | ||
*/ | ||
nullable?: boolean; | ||
/** | ||
* Default value. | ||
@@ -223,4 +287,8 @@ */ | ||
*/ | ||
interface IArray extends __ISignificant<"array"> { | ||
interface IArray extends IJsonSchemaAttribute.IArray { | ||
/** | ||
* Whether to allow `null` value or not. | ||
*/ | ||
nullable?: boolean; | ||
/** | ||
* Items type schema info. | ||
@@ -258,4 +326,8 @@ * | ||
*/ | ||
interface IObject extends __ISignificant<"object"> { | ||
interface IObject extends IJsonSchemaAttribute.IObject { | ||
/** | ||
* Whether to allow `null` value or not. | ||
*/ | ||
nullable?: boolean; | ||
/** | ||
* Properties of the object. | ||
@@ -322,11 +394,15 @@ * | ||
/** | ||
* Unknown type schema info. | ||
* One of type schema info. | ||
* | ||
* It means the type of the value is `any`. | ||
* `IOneOf` represents an union type of the TypeScript (`A | B | C`). | ||
* | ||
* For reference, even though your Swagger (or OpenAPI) document has | ||
* defined `anyOf` instead of the `oneOf`, it has been forcibly converted | ||
* to `oneOf` type by {@link OpenApi.convert OpenAPI conversion}. | ||
*/ | ||
interface IUnknown extends __IAttribute { | ||
interface IOneOf extends IJsonSchemaAttribute { | ||
/** | ||
* Type is never be defined. | ||
* List of the union types. | ||
*/ | ||
type?: undefined; | ||
oneOf: Exclude<ILlmSchemaV3, ILlmSchemaV3.IOneOf>[]; | ||
} | ||
@@ -336,8 +412,4 @@ /** | ||
*/ | ||
interface INullOnly extends __IAttribute { | ||
interface INullOnly extends IJsonSchemaAttribute.INull { | ||
/** | ||
* Type is always `null`. | ||
*/ | ||
type: "null"; | ||
/** | ||
* Default value. | ||
@@ -348,18 +420,13 @@ */ | ||
/** | ||
* One of type schema info. | ||
* Unknown type schema info. | ||
* | ||
* `IOneOf` represents an union type of the TypeScript (`A | B | C`). | ||
* | ||
* For reference, even though your Swagger (or OpenAPI) document has | ||
* defined `anyOf` instead of the `oneOf`, it has been forcibly converted | ||
* to `oneOf` type by {@link OpenApi.convert OpenAPI conversion}. | ||
* It means the type of the value is `any`. | ||
*/ | ||
interface IOneOf extends __IAttribute { | ||
/** | ||
* List of the union types. | ||
*/ | ||
oneOf: Exclude<ILlmSchemaV3, ILlmSchemaV3.IOneOf>[]; | ||
interface IUnknown extends IJsonSchemaAttribute.IUnknown { | ||
} | ||
/** | ||
* Significant attributes that can be applied to the most types. | ||
* | ||
* @deprecated | ||
* @hidden | ||
*/ | ||
@@ -378,52 +445,7 @@ interface __ISignificant<Type extends string> extends __IAttribute { | ||
* Common attributes that can be applied to all types. | ||
* | ||
* @deprecated | ||
* @hidden | ||
*/ | ||
type __IAttribute = IJsonSchemaAttribute; | ||
/** | ||
* Configuration for OpenAPI v3.0 based LLM schema composition. | ||
*/ | ||
interface IConfig { | ||
/** | ||
* Whether to allow constraint properties or not. | ||
* | ||
* If you configure this property to `false`, the schemas do not contain | ||
* the constraint properties of below. Instead, below properties would be | ||
* written to the {@link ILlmSchemaV3.__IAttribute.description} property | ||
* as a comment string like `"@format uuid"`. | ||
* | ||
* This is because some LLM schema model like {@link IGeminiSchema} | ||
* has banned such constraint, because their LLM cannot understand the | ||
* constraint properties and occur the hallucination. | ||
* | ||
* Therefore, considering your LLM model's performance, capability, | ||
* and the complexity of your parameter types, determine which is better, | ||
* to allow the constraint properties or not. | ||
* | ||
* - {@link ILlmSchemaV3.INumber.minimum} | ||
* - {@link ILlmSchemaV3.INumber.maximum} | ||
* - {@link ILlmSchemaV3.INumber.multipleOf} | ||
* - {@link ILlmSchemaV3.IString.minLength} | ||
* - {@link ILlmSchemaV3.IString.maxLength} | ||
* - {@link ILlmSchemaV3.IString.format} | ||
* - {@link ILlmSchemaV3.IString.pattern} | ||
* - {@link ILlmSchemaV3.IString.contentMediaType} | ||
* - {@link ILlmSchemaV3.IString.default} | ||
* - {@link ILlmSchemaV3.IArray.minItems} | ||
* - {@link ILlmSchemaV3.IArray.maxItems} | ||
* - {@link ILlmSchemaV3.IArray.unique} | ||
* | ||
* @default true | ||
*/ | ||
constraint: boolean; | ||
/** | ||
* Whether to allow recursive types or not. | ||
* | ||
* If allow, then how many times to repeat the recursive types. | ||
* | ||
* By the way, if the model is "chatgpt", the recursive types are always | ||
* allowed without any limitation, due to it supports the reference type. | ||
* | ||
* @default 3 | ||
*/ | ||
recursive: false | number; | ||
} | ||
} |
@@ -0,1 +1,2 @@ | ||
import { IJsonSchemaAttribute } from "./structures/IJsonSchemaAttribute"; | ||
/** | ||
@@ -80,9 +81,9 @@ * Swagger v2.0 definition. | ||
} | ||
type IJsonSchema = IJsonSchema.IBoolean | IJsonSchema.IInteger | IJsonSchema.INumber | IJsonSchema.IString | IJsonSchema.IArray | IJsonSchema.IObject | IJsonSchema.IReference | IJsonSchema.IUnknown | IJsonSchema.INullOnly | IJsonSchema.IAnyOf | IJsonSchema.IOneOf; | ||
type IJsonSchema = IJsonSchema.IBoolean | IJsonSchema.IInteger | IJsonSchema.INumber | IJsonSchema.IString | IJsonSchema.IArray | IJsonSchema.IObject | IJsonSchema.IReference | IJsonSchema.IAnyOf | IJsonSchema.IOneOf | IJsonSchema.INullOnly | IJsonSchema.IUnknown; | ||
namespace IJsonSchema { | ||
interface IBoolean extends __ISignificant<"boolean"> { | ||
interface IBoolean extends Omit<IJsonSchemaAttribute.IBoolean, "examples">, __ISignificant<"boolean"> { | ||
default?: boolean | null; | ||
enum?: Array<boolean | null>; | ||
} | ||
interface IInteger extends __ISignificant<"integer"> { | ||
interface IInteger extends Omit<IJsonSchemaAttribute.IInteger, "examples">, __ISignificant<"integer"> { | ||
/** @type int64 */ default?: number | null; | ||
@@ -100,3 +101,3 @@ /** @type int64 */ enum?: Array<number | null>; | ||
} | ||
interface INumber extends __ISignificant<"number"> { | ||
interface INumber extends Omit<IJsonSchemaAttribute.INumber, "examples">, __ISignificant<"number"> { | ||
default?: number | null; | ||
@@ -110,3 +111,3 @@ enum?: Array<number | null>; | ||
} | ||
interface IString extends __ISignificant<"string"> { | ||
interface IString extends Omit<IJsonSchemaAttribute.IString, "examples">, __ISignificant<"string"> { | ||
default?: string | null; | ||
@@ -119,3 +120,3 @@ enum?: Array<string | null>; | ||
} | ||
interface IArray extends __ISignificant<"array"> { | ||
interface IArray extends Omit<IJsonSchemaAttribute.IArray, "examples">, __ISignificant<"array"> { | ||
items: IJsonSchema; | ||
@@ -126,3 +127,3 @@ uniqueItems?: boolean; | ||
} | ||
interface IObject extends __ISignificant<"object"> { | ||
interface IObject extends Omit<IJsonSchemaAttribute.IObject, "examples">, __ISignificant<"object"> { | ||
properties?: Record<string, IJsonSchema>; | ||
@@ -137,9 +138,2 @@ required?: string[]; | ||
} | ||
interface IUnknown extends __IAttribute { | ||
type?: undefined; | ||
} | ||
interface INullOnly extends __IAttribute { | ||
type: "null"; | ||
default?: null; | ||
} | ||
interface IAllOf extends __IAttribute { | ||
@@ -154,2 +148,9 @@ allOf: IJsonSchema[]; | ||
} | ||
interface INullOnly extends __IAttribute { | ||
type: "null"; | ||
default?: null; | ||
} | ||
interface IUnknown extends __IAttribute { | ||
type?: undefined; | ||
} | ||
interface __ISignificant<Type extends string> extends __IAttribute { | ||
@@ -159,7 +160,3 @@ type: Type; | ||
} | ||
interface __IAttribute { | ||
title?: string; | ||
description?: string; | ||
deprecated?: boolean; | ||
example?: any; | ||
interface __IAttribute extends Omit<IJsonSchemaAttribute, "examples"> { | ||
examples?: any[]; | ||
@@ -166,0 +163,0 @@ } |
{ | ||
"name": "@samchon/openapi", | ||
"version": "2.5.0-dev.20250211", | ||
"version": "2.5.0-dev.20250212", | ||
"description": "OpenAPI definitions and converters for 'typia' and 'nestia'.", | ||
@@ -5,0 +5,0 @@ "main": "./lib/index.js", |
@@ -164,3 +164,3 @@ import { OpenApi } from "../../OpenApi"; | ||
else if (OpenApiTypeChecker.isOneOf(input)) | ||
input.oneOf.forEach(visitConstant); | ||
input.oneOf.forEach((s) => visitConstant(s as ILlmSchemaV3_1)); | ||
}; | ||
@@ -167,0 +167,0 @@ visit(schema); |
@@ -9,3 +9,2 @@ //---- | ||
export * from "./structures/IJsonSchemaAttribute"; | ||
export * from "./utils/OpenApiTypeChecker"; | ||
@@ -29,2 +28,3 @@ | ||
export * from "./typings/IResult"; | ||
export * from "./structures/IJsonSchemaAttribute"; | ||
export * from "./structures/IOpenApiSchemaError"; | ||
@@ -31,0 +31,0 @@ |
@@ -672,3 +672,3 @@ import { OpenApiV3 } from "./OpenApiV3"; | ||
*/ | ||
export interface IConstant extends __IAttribute { | ||
export interface IConstant extends IJsonSchemaAttribute { | ||
/** | ||
@@ -683,5 +683,5 @@ * The constant value. | ||
*/ | ||
export interface IBoolean extends __ISignificant<"boolean"> { | ||
export interface IBoolean extends IJsonSchemaAttribute.IBoolean { | ||
/** | ||
* The default value. | ||
* The default value of the boolean type. | ||
*/ | ||
@@ -694,5 +694,5 @@ default?: boolean; | ||
*/ | ||
export interface IInteger extends __ISignificant<"integer"> { | ||
export interface IInteger extends IJsonSchemaAttribute.IInteger { | ||
/** | ||
* Default value. | ||
* Default value of the integer type. | ||
* | ||
@@ -749,5 +749,5 @@ * @type int64 | ||
*/ | ||
export interface INumber extends __ISignificant<"number"> { | ||
export interface INumber extends IJsonSchemaAttribute.INumber { | ||
/** | ||
* Default value. | ||
* Default value of the number type. | ||
*/ | ||
@@ -797,5 +797,5 @@ default?: number; | ||
*/ | ||
export interface IString extends __ISignificant<"string"> { | ||
export interface IString extends IJsonSchemaAttribute.IString { | ||
/** | ||
* Default value. | ||
* Default value of the string type. | ||
*/ | ||
@@ -861,3 +861,3 @@ default?: string; | ||
*/ | ||
export interface IArray extends __ISignificant<"array"> { | ||
export interface IArray extends IJsonSchemaAttribute.IArray { | ||
/** | ||
@@ -900,4 +900,16 @@ * Items type info. | ||
*/ | ||
export interface ITuple extends __ISignificant<"array"> { | ||
export interface ITuple extends IJsonSchemaAttribute { | ||
/** | ||
* Discriminator value of the type. | ||
* | ||
* Note that, the tuple type cannot be distinguished with | ||
* {@link IArray} type just by this `discriminator` property. | ||
* | ||
* To check whether the type is tuple or array, you have to check | ||
* the existence of {@link IArray.items} or {@link ITuple.prefixItems} | ||
* properties. | ||
*/ | ||
type: "array"; | ||
/** | ||
* Prefix items. | ||
@@ -959,3 +971,3 @@ * | ||
*/ | ||
export interface IObject extends __ISignificant<"object"> { | ||
export interface IObject extends IJsonSchemaAttribute.IObject { | ||
/** | ||
@@ -1028,3 +1040,3 @@ * Properties of the object. | ||
*/ | ||
export interface IReference<Key = string> extends __IAttribute { | ||
export interface IReference<Key = string> extends IJsonSchemaAttribute { | ||
/** | ||
@@ -1053,3 +1065,3 @@ * Reference to the named schema. | ||
*/ | ||
export interface IOneOf extends __IAttribute { | ||
export interface IOneOf extends IJsonSchemaAttribute { | ||
/** | ||
@@ -1090,5 +1102,5 @@ * List of the union types. | ||
*/ | ||
export interface INull extends __ISignificant<"null"> { | ||
export interface INull extends IJsonSchemaAttribute.INull { | ||
/** | ||
* Default value. | ||
* Default value of the `null` type. | ||
*/ | ||
@@ -1101,7 +1113,7 @@ default?: null; | ||
*/ | ||
export interface IUnknown extends __IAttribute { | ||
export interface IUnknown extends IJsonSchemaAttribute.IUnknown { | ||
/** | ||
* Type is never be defined. | ||
* Default value of the `any` type. | ||
*/ | ||
type?: undefined; | ||
default?: any; | ||
} | ||
@@ -1111,4 +1123,8 @@ | ||
* Significant attributes that can be applied to the most types. | ||
* | ||
* @deprecated | ||
* @hidden | ||
*/ | ||
export interface __ISignificant<Type extends string> extends __IAttribute { | ||
export interface __ISignificant<Type extends string> | ||
extends IJsonSchemaAttribute { | ||
/** | ||
@@ -1122,2 +1138,5 @@ * Discriminator value of the type. | ||
* Common attributes that can be applied to all types. | ||
* | ||
* @deprecated | ||
* @hidden | ||
*/ | ||
@@ -1124,0 +1143,0 @@ export type __IAttribute = IJsonSchemaAttribute; |
@@ -0,1 +1,3 @@ | ||
import { IJsonSchemaAttribute } from "./structures/IJsonSchemaAttribute"; | ||
/** | ||
@@ -185,7 +187,8 @@ * OpenAPI v3.1 definition. | ||
| IJsonSchema.IReference | ||
| IJsonSchema.IUnknown | ||
| IJsonSchema.INull | ||
| IJsonSchema.IRecursiveReference | ||
| IJsonSchema.IAllOf | ||
| IJsonSchema.IAnyOf | ||
| IJsonSchema.IOneOf; | ||
| IJsonSchema.IOneOf | ||
| IJsonSchema.INull | ||
| IJsonSchema.IUnknown; | ||
export namespace IJsonSchema { | ||
@@ -216,10 +219,13 @@ export interface IMixed | ||
export interface IConstant extends __IAttribute { | ||
export interface IConstant extends IJsonSchemaAttribute { | ||
const: boolean | number | string; | ||
nullable?: boolean; | ||
} | ||
export interface IBoolean extends __ISignificant<"boolean"> { | ||
export interface IBoolean extends IJsonSchemaAttribute.IBoolean { | ||
nullable?: boolean; | ||
default?: boolean | null; | ||
enum?: Array<boolean | null>; | ||
} | ||
export interface IInteger extends __ISignificant<"integer"> { | ||
export interface IInteger extends IJsonSchemaAttribute.IInteger { | ||
nullable?: boolean; | ||
/** @type int64 */ default?: number | null; | ||
@@ -237,3 +243,4 @@ /** @type int64 */ enum?: Array<number | null>; | ||
} | ||
export interface INumber extends __ISignificant<"number"> { | ||
export interface INumber extends IJsonSchemaAttribute.INumber { | ||
nullable?: boolean; | ||
default?: number | null; | ||
@@ -247,4 +254,4 @@ enum?: Array<number | null>; | ||
} | ||
export interface IString extends __ISignificant<"string"> { | ||
contentMediaType?: string; | ||
export interface IString extends IJsonSchemaAttribute.IString { | ||
nullable?: boolean; | ||
default?: string | null; | ||
@@ -278,2 +285,3 @@ enum?: Array<string | null>; | ||
pattern?: string; | ||
contentMediaType?: string; | ||
/** @type uint64 */ minLength?: number; | ||
@@ -283,15 +291,33 @@ /** @type uint64 */ maxLength?: number; | ||
export interface IUnknown extends __IAttribute { | ||
type?: undefined; | ||
export interface IObject extends IJsonSchemaAttribute.IObject { | ||
nullable?: boolean; | ||
properties?: Record<string, IJsonSchema>; | ||
required?: string[]; | ||
additionalProperties?: boolean | IJsonSchema; | ||
maxProperties?: number; | ||
minProperties?: number; | ||
} | ||
export interface INull extends __ISignificant<"null"> { | ||
default?: null; | ||
export interface IArray extends IJsonSchemaAttribute.IArray { | ||
nullable?: boolean; | ||
items?: IJsonSchema | IJsonSchema[]; | ||
prefixItems?: IJsonSchema[]; | ||
uniqueItems?: boolean; | ||
additionalItems?: boolean | IJsonSchema; | ||
/** @type uint64 */ minItems?: number; | ||
/** @type uint64 */ maxItems?: number; | ||
} | ||
export interface IAllOf extends __IAttribute { | ||
export interface IReference<Key = string> extends IJsonSchemaAttribute { | ||
$ref: Key; | ||
} | ||
export interface IRecursiveReference extends IJsonSchemaAttribute { | ||
$recursiveRef: string; | ||
} | ||
export interface IAllOf extends IJsonSchemaAttribute { | ||
allOf: IJsonSchema[]; | ||
} | ||
export interface IAnyOf extends __IAttribute { | ||
export interface IAnyOf extends IJsonSchemaAttribute { | ||
anyOf: IJsonSchema[]; | ||
} | ||
export interface IOneOf extends __IAttribute { | ||
export interface IOneOf extends IJsonSchemaAttribute { | ||
oneOf: IJsonSchema[]; | ||
@@ -307,24 +333,14 @@ discriminator?: IOneOf.IDiscriminator; | ||
export interface IArray extends __ISignificant<"array"> { | ||
items?: IJsonSchema | IJsonSchema[]; | ||
prefixItems?: IJsonSchema[]; | ||
uniqueItems?: boolean; | ||
additionalItems?: boolean | IJsonSchema; | ||
/** @type uint64 */ minItems?: number; | ||
/** @type uint64 */ maxItems?: number; | ||
export interface INull extends IJsonSchemaAttribute.INull { | ||
default?: null; | ||
} | ||
export interface IObject extends __ISignificant<"object"> { | ||
properties?: Record<string, IJsonSchema>; | ||
required?: string[]; | ||
additionalProperties?: boolean | IJsonSchema; | ||
maxProperties?: number; | ||
minProperties?: number; | ||
export interface IUnknown extends IJsonSchemaAttribute.IUnknown { | ||
type?: undefined; | ||
default?: any; | ||
} | ||
export interface IReference<Key = string> extends __IAttribute { | ||
$ref: Key; | ||
} | ||
export interface IRecursiveReference extends __IAttribute { | ||
$recursiveRef: string; | ||
} | ||
/** | ||
* @deprecated | ||
* @hidden | ||
*/ | ||
export interface __ISignificant<Type extends string> extends __IAttribute { | ||
@@ -334,9 +350,8 @@ type: Type; | ||
} | ||
export interface __IAttribute { | ||
title?: string; | ||
description?: string; | ||
deprecated?: boolean; | ||
example?: any; | ||
examples?: Record<string, any>; | ||
} | ||
/** | ||
* @deprecated | ||
* @hidden | ||
*/ | ||
export type __IAttribute = IJsonSchemaAttribute; | ||
} | ||
@@ -343,0 +358,0 @@ |
@@ -0,1 +1,3 @@ | ||
import { IJsonSchemaAttribute } from "./structures/IJsonSchemaAttribute"; | ||
/** | ||
@@ -177,9 +179,10 @@ * OpenAPI 3.0 definition. | ||
| IJsonSchema.IReference | ||
| IJsonSchema.IUnknown | ||
| IJsonSchema.INullOnly | ||
| IJsonSchema.IAllOf | ||
| IJsonSchema.IAnyOf | ||
| IJsonSchema.IOneOf; | ||
| IJsonSchema.IOneOf | ||
| IJsonSchema.INullOnly | ||
| IJsonSchema.IUnknown; | ||
export namespace IJsonSchema { | ||
export interface IBoolean extends __ISignificant<"boolean"> { | ||
nullable?: boolean; | ||
default?: boolean | null; | ||
@@ -189,2 +192,3 @@ enum?: Array<boolean | null>; | ||
export interface IInteger extends __ISignificant<"integer"> { | ||
nullable?: boolean; | ||
/** @type int64 */ default?: number | null; | ||
@@ -203,2 +207,3 @@ /** @type int64 */ enum?: Array<number | null>; | ||
export interface INumber extends __ISignificant<"number"> { | ||
nullable?: boolean; | ||
default?: number | null; | ||
@@ -213,2 +218,3 @@ enum?: Array<number | null>; | ||
export interface IString extends __ISignificant<"string"> { | ||
nullable?: boolean; | ||
default?: string | null; | ||
@@ -246,3 +252,4 @@ enum?: Array<string | null>; | ||
export interface IArray extends __ISignificant<"array"> { | ||
export interface IArray extends IJsonSchemaAttribute.IArray { | ||
nullable?: boolean; | ||
items: IJsonSchema; | ||
@@ -253,3 +260,4 @@ uniqueItems?: boolean; | ||
} | ||
export interface IObject extends __ISignificant<"object"> { | ||
export interface IObject extends IJsonSchemaAttribute.IObject { | ||
nullable?: boolean; | ||
properties?: Record<string, IJsonSchema>; | ||
@@ -261,20 +269,13 @@ required?: string[]; | ||
} | ||
export interface IReference<Key = string> extends __IAttribute { | ||
export interface IReference<Key = string> extends IJsonSchemaAttribute { | ||
$ref: Key; | ||
} | ||
export interface IUnknown extends __IAttribute { | ||
type?: undefined; | ||
} | ||
export interface INullOnly extends __IAttribute { | ||
type: "null"; | ||
default?: null; | ||
} | ||
export interface IAllOf extends __IAttribute { | ||
export interface IAllOf extends IJsonSchemaAttribute { | ||
allOf: IJsonSchema[]; | ||
} | ||
export interface IAnyOf extends __IAttribute { | ||
export interface IAnyOf extends IJsonSchemaAttribute { | ||
anyOf: IJsonSchema[]; | ||
} | ||
export interface IOneOf extends __IAttribute { | ||
export interface IOneOf extends IJsonSchemaAttribute { | ||
oneOf: IJsonSchema[]; | ||
@@ -290,13 +291,24 @@ discriminator?: IOneOf.IDiscriminator; | ||
export interface __ISignificant<Type extends string> extends __IAttribute { | ||
export interface INullOnly extends IJsonSchemaAttribute.INull { | ||
default?: null; | ||
} | ||
export interface IUnknown extends IJsonSchemaAttribute.IUnknown { | ||
default?: any; | ||
} | ||
/** | ||
* @deprecated | ||
* @hidden | ||
*/ | ||
export interface __ISignificant<Type extends string> | ||
extends IJsonSchemaAttribute { | ||
type: Type; | ||
nullable?: boolean; | ||
} | ||
export interface __IAttribute { | ||
title?: string; | ||
description?: string; | ||
deprecated?: boolean; | ||
example?: any; | ||
examples?: Record<string, any>; | ||
} | ||
/** | ||
* @deprecated | ||
* @hidden | ||
*/ | ||
export type __IAttribute = IJsonSchemaAttribute; | ||
} | ||
@@ -303,0 +315,0 @@ |
@@ -111,3 +111,3 @@ import { IJsonSchemaAttribute } from "./IJsonSchemaAttribute"; | ||
*/ | ||
export interface IBoolean extends __ISignificant<"boolean"> { | ||
export interface IBoolean extends IJsonSchemaAttribute.IBoolean { | ||
/** | ||
@@ -122,3 +122,3 @@ * Enumeration values. | ||
*/ | ||
export interface IInteger extends __ISignificant<"integer"> { | ||
export interface IInteger extends IJsonSchemaAttribute.IInteger { | ||
/** | ||
@@ -133,3 +133,3 @@ * Enumeration values. | ||
*/ | ||
export interface INumber extends __ISignificant<"number"> { | ||
export interface INumber extends IJsonSchemaAttribute.INumber { | ||
/** | ||
@@ -144,3 +144,3 @@ * Enumeration values. | ||
*/ | ||
export interface IString extends __ISignificant<"string"> { | ||
export interface IString extends IJsonSchemaAttribute.IString { | ||
/** | ||
@@ -155,3 +155,3 @@ * Enumeration values. | ||
*/ | ||
export interface IArray extends __ISignificant<"array"> { | ||
export interface IArray extends IJsonSchemaAttribute.IArray { | ||
/** | ||
@@ -169,3 +169,3 @@ * Items type info. | ||
*/ | ||
export interface IObject extends __ISignificant<"object"> { | ||
export interface IObject extends IJsonSchemaAttribute.IObject { | ||
/** | ||
@@ -231,3 +231,3 @@ * Properties of the object. | ||
*/ | ||
export interface IReference extends __IAttribute { | ||
export interface IReference extends IJsonSchemaAttribute { | ||
/** | ||
@@ -256,3 +256,3 @@ * Reference to the named schema. | ||
*/ | ||
export interface IAnyOf extends __IAttribute { | ||
export interface IAnyOf extends IJsonSchemaAttribute { | ||
/** | ||
@@ -267,3 +267,3 @@ * List of the union types. | ||
*/ | ||
export interface INull extends __ISignificant<"null"> {} | ||
export interface INull extends IJsonSchemaAttribute.INull {} | ||
@@ -273,11 +273,9 @@ /** | ||
*/ | ||
export interface IUnknown extends __IAttribute { | ||
/** | ||
* Type is never be defined. | ||
*/ | ||
type?: undefined; | ||
} | ||
export interface IUnknown extends IJsonSchemaAttribute.IUnknown {} | ||
/** | ||
* Significant attributes that can be applied to the most types. | ||
* | ||
* @deprecated | ||
* @hidden | ||
*/ | ||
@@ -293,2 +291,5 @@ export interface __ISignificant<Type extends string> extends __IAttribute { | ||
* Common attributes that can be applied to all types. | ||
* | ||
* @deprecated | ||
* @hidden | ||
*/ | ||
@@ -295,0 +296,0 @@ export type __IAttribute = IJsonSchemaAttribute; |
@@ -56,17 +56,2 @@ import { ILlmSchemaV3_1 } from "./ILlmSchemaV3_1"; | ||
export namespace IClaudeSchema { | ||
export import IParameters = ILlmSchemaV3_1.IParameters; | ||
export import IConstant = ILlmSchemaV3_1.IConstant; | ||
export import IBoolean = ILlmSchemaV3_1.IBoolean; | ||
export import IInteger = ILlmSchemaV3_1.IInteger; | ||
export import INumber = ILlmSchemaV3_1.INumber; | ||
export import IString = ILlmSchemaV3_1.IString; | ||
export import IObject = ILlmSchemaV3_1.IObject; | ||
export import IArray = ILlmSchemaV3_1.IArray; | ||
export import IReference = ILlmSchemaV3_1.IReference; | ||
export import IOneOf = ILlmSchemaV3_1.IOneOf; | ||
export import INull = ILlmSchemaV3_1.INull; | ||
export import IUnknown = ILlmSchemaV3_1.IUnknown; | ||
/** | ||
@@ -96,2 +81,17 @@ * Configuration for Claude schema composition. | ||
} | ||
export import IParameters = ILlmSchemaV3_1.IParameters; | ||
export import IConstant = ILlmSchemaV3_1.IConstant; | ||
export import IBoolean = ILlmSchemaV3_1.IBoolean; | ||
export import IInteger = ILlmSchemaV3_1.IInteger; | ||
export import INumber = ILlmSchemaV3_1.INumber; | ||
export import IString = ILlmSchemaV3_1.IString; | ||
export import IObject = ILlmSchemaV3_1.IObject; | ||
export import IArray = ILlmSchemaV3_1.IArray; | ||
export import IReference = ILlmSchemaV3_1.IReference; | ||
export import IOneOf = ILlmSchemaV3_1.IOneOf; | ||
export import INull = ILlmSchemaV3_1.INull; | ||
export import IUnknown = ILlmSchemaV3_1.IUnknown; | ||
} |
@@ -73,2 +73,19 @@ import { IJsonSchemaAttribute } from "./IJsonSchemaAttribute"; | ||
/** | ||
* Configuration for the Gemini schema composition. | ||
*/ | ||
export interface IConfig { | ||
/** | ||
* Whether to allow recursive types or not. | ||
* | ||
* If allow, then how many times to repeat the recursive types. | ||
* | ||
* By the way, if the model is "chatgpt", the recursive types are always | ||
* allowed without any limitation, due to it supports the reference type. | ||
* | ||
* @default 3 | ||
*/ | ||
recursive: false | number; | ||
} | ||
/** | ||
* Type of the function parameters. | ||
@@ -88,4 +105,9 @@ * | ||
*/ | ||
export interface IBoolean extends __ISignificant<"boolean"> { | ||
export interface IBoolean extends IJsonSchemaAttribute.IBoolean { | ||
/** | ||
* Whether to allow `null` value or not. | ||
*/ | ||
nullable?: boolean; | ||
/** | ||
* Enumeration values. | ||
@@ -99,4 +121,9 @@ */ | ||
*/ | ||
export interface IInteger extends __ISignificant<"integer"> { | ||
export interface IInteger extends IJsonSchemaAttribute.IInteger { | ||
/** | ||
* Whether to allow `null` value or not. | ||
*/ | ||
nullable?: boolean; | ||
/** | ||
* Enumeration values. | ||
@@ -112,4 +139,9 @@ * | ||
*/ | ||
export interface INumber extends __ISignificant<"number"> { | ||
export interface INumber extends IJsonSchemaAttribute.INumber { | ||
/** | ||
* Whether to allow `null` value or not. | ||
*/ | ||
nullable?: boolean; | ||
/** | ||
* Enumeration values. | ||
@@ -123,4 +155,9 @@ */ | ||
*/ | ||
export interface IString extends __ISignificant<"string"> { | ||
export interface IString extends IJsonSchemaAttribute.IString { | ||
/** | ||
* Whether to allow `null` value or not. | ||
*/ | ||
nullable?: boolean; | ||
/** | ||
* Enumeration values. | ||
@@ -134,4 +171,9 @@ */ | ||
*/ | ||
export interface IArray extends __ISignificant<"array"> { | ||
export interface IArray extends IJsonSchemaAttribute.IArray { | ||
/** | ||
* Whether to allow `null` value or not. | ||
*/ | ||
nullable?: boolean; | ||
/** | ||
* Items type schema info. | ||
@@ -148,4 +190,9 @@ * | ||
*/ | ||
export interface IObject extends __ISignificant<"object"> { | ||
export interface IObject extends IJsonSchemaAttribute.IObject { | ||
/** | ||
* Whether to allow `null` value or not. | ||
*/ | ||
nullable?: boolean; | ||
/** | ||
* Properties of the object. | ||
@@ -199,2 +246,7 @@ * | ||
/** | ||
* Null only type schema info. | ||
*/ | ||
export interface INullOnly extends IJsonSchemaAttribute.INull {} | ||
/** | ||
* Unknown type schema info. | ||
@@ -204,21 +256,9 @@ * | ||
*/ | ||
export interface IUnknown extends __IAttribute { | ||
/** | ||
* Type is never be defined. | ||
*/ | ||
type?: undefined; | ||
} | ||
export interface IUnknown extends IJsonSchemaAttribute.IUnknown {} | ||
/** | ||
* Null only type schema info. | ||
*/ | ||
export interface INullOnly extends __IAttribute { | ||
/** | ||
* Type is always `null`. | ||
*/ | ||
type: "null"; | ||
} | ||
/** | ||
* Significant attributes that can be applied to the most types. | ||
* | ||
* @deprecated | ||
* @hidden | ||
*/ | ||
@@ -239,21 +279,7 @@ export interface __ISignificant<Type extends string> extends __IAttribute { | ||
* Common attributes that can be applied to all types. | ||
* | ||
* @deprecated | ||
* @hidden | ||
*/ | ||
export type __IAttribute = IJsonSchemaAttribute; | ||
/** | ||
* Configuration for the Gemini schema composition. | ||
*/ | ||
export interface IConfig { | ||
/** | ||
* Whether to allow recursive types or not. | ||
* | ||
* If allow, then how many times to repeat the recursive types. | ||
* | ||
* By the way, if the model is "chatgpt", the recursive types are always | ||
* allowed without any limitation, due to it supports the reference type. | ||
* | ||
* @default 3 | ||
*/ | ||
recursive: false | number; | ||
} | ||
} |
/** | ||
* Common attributes for JSON schema types. | ||
* | ||
* `IJsonSchemaAttribute` is a common interface for all JSON schema types | ||
* supported in here `@samchon/openapi`. Here is the list of affected JSON | ||
* schema types in `@samchon/openapi`, and you can extend the interface by | ||
* declaring module augmentation. | ||
* `IJsonSchemaAttribute` is a common interface for all JSON schema | ||
* types supported in here `@samchon/openapi`. Here is the list of | ||
* affected JSON schema types in `@samchon/openapi`, and you can extend | ||
* the interface by declaring module augmentation. | ||
* | ||
* - {@link OpenApi.IJsonSchema} | ||
* - {@link OpenApiV3_1.IJsonSchema} | ||
* - {@link OpenApiV3.IJsonSchema} | ||
* - {@link SwaggerV2.IJsonSchema} | ||
* - {@link IChatGptSchema} | ||
@@ -16,6 +19,12 @@ * - {@link IClaudeSchema} | ||
* | ||
* For example, if you extend the `IJsonSchemaAttribute` interface like | ||
* below, every JSON schema types in `@samchon/openapi` will have a new | ||
* custom attribute `x-wrtn-placeholder`. | ||
* For example, if you extend the `IJsonSchemaAttribute` interface | ||
* like below, every JSON schema types in `@samchon/openapi` will have | ||
* a new custom attribute `x-wrtn-placeholder`. | ||
* | ||
* Also, if you augment the nested type like | ||
* `IJsonSchemaAttribute.IString`, you can add the custom attribute | ||
* to every string types in the JSON schema. In the below example case, | ||
* every string types will have a new custom attribute | ||
* `x-wrtn-secret-key`. | ||
* | ||
* ```typescript | ||
@@ -31,2 +40,13 @@ * declare module "@samchon/openapi" { | ||
* } | ||
* export namespace IJsonSchemaAttribute { | ||
* export interface IString { | ||
* /// Secret key for the schema. | ||
* /// | ||
* /// `x-wrtn-secret-key` is a property means a secret key | ||
* /// that is required for the target API endpoint calling. | ||
* /// If the secret key is not filled, the API call would | ||
* /// be failed. | ||
* "x-wrtn-secret-key"?: string; | ||
* } | ||
* } | ||
* } | ||
@@ -63,1 +83,57 @@ * ``` | ||
} | ||
export namespace IJsonSchemaAttribute { | ||
/** | ||
* Common attributes for boolean types. | ||
*/ | ||
export interface IBoolean extends ISignificant<"boolean"> {} | ||
/** | ||
* Common attributes for integer types. | ||
*/ | ||
export interface IInteger extends ISignificant<"integer"> {} | ||
/** | ||
* Common attributes for number types. | ||
*/ | ||
export interface INumber extends ISignificant<"number"> {} | ||
/** | ||
* Common attributes for string types. | ||
*/ | ||
export interface IString extends ISignificant<"string"> {} | ||
/** | ||
* Common attributes for object types. | ||
*/ | ||
export interface IObject extends ISignificant<"object"> {} | ||
/** | ||
* Common attributes for array types. | ||
*/ | ||
export interface IArray extends ISignificant<"array"> {} | ||
/** | ||
* Common attributes for null types. | ||
*/ | ||
export interface INull extends ISignificant<"null"> {} | ||
/** | ||
* Common attributes for unknown types. | ||
*/ | ||
export interface IUnknown extends IJsonSchemaAttribute { | ||
/** | ||
* Type is never be defined. | ||
*/ | ||
type?: undefined; | ||
} | ||
/** | ||
* Significant attributes that can be applied to the most types. | ||
*/ | ||
interface ISignificant<Type extends string> extends IJsonSchemaAttribute { | ||
/** | ||
* Discriminator value of the type. | ||
*/ | ||
type: Type; | ||
} | ||
} |
@@ -74,2 +74,60 @@ import { IJsonSchemaAttribute } from "./IJsonSchemaAttribute"; | ||
/** | ||
* Configuration for OpenAPI v3.1 based LLM schema composition. | ||
*/ | ||
export interface IConfig { | ||
/** | ||
* Whether to allow constraint properties or not. | ||
* | ||
* If you configure this property to `false`, the schemas do not contain | ||
* the constraint properties of below. Instead, below properties would be | ||
* written to the {@link ILlmSchemaV3_1.__IAttribute.description} property | ||
* as a comment string like `"@format uuid"`. | ||
* | ||
* This is because some LLM schema model like {@link IChatGptSchema} | ||
* has banned such constraint, because their LLM cannot understand the | ||
* constraint properties and occur the hallucination. | ||
* | ||
* Therefore, considering your LLM model's performance, capability, | ||
* and the complexity of your parameter types, determine which is better, | ||
* to allow the constraint properties or not. | ||
* | ||
* - {@link ILlmSchemaV3_1.INumber.minimum} | ||
* - {@link ILlmSchemaV3_1.INumber.maximum} | ||
* - {@link ILlmSchemaV3_1.INumber.multipleOf} | ||
* - {@link ILlmSchemaV3_1.IString.minLength} | ||
* - {@link ILlmSchemaV3_1.IString.maxLength} | ||
* - {@link ILlmSchemaV3_1.IString.format} | ||
* - {@link ILlmSchemaV3_1.IString.pattern} | ||
* - {@link ILlmSchemaV3_1.IString.contentMediaType} | ||
* - {@link ILlmSchemaV3_1.IString.default} | ||
* - {@link ILlmSchemaV3_1.IArray.minItems} | ||
* - {@link ILlmSchemaV3_1.IArray.maxItems} | ||
* - {@link ILlmSchemaV3_1.IArray.unique} | ||
* | ||
* @default true | ||
*/ | ||
constraint: boolean; | ||
/** | ||
* Whether to allow reference type in everywhere. | ||
* | ||
* If you configure this property to `false`, most of reference types | ||
* represented by {@link ILlmSchemaV3_1.IReference} would be escaped to | ||
* a plain type unless recursive type case. | ||
* | ||
* This is because some low sized LLM models does not understand the | ||
* reference type well, and even the large size LLM models sometimes occur | ||
* the hallucination. | ||
* | ||
* However, the reference type makes the schema size smaller, so that reduces | ||
* the LLM token cost. Therefore, if you're using the large size of LLM model, | ||
* and want to reduce the LLM token cost, you can configure this property to | ||
* `true`. | ||
* | ||
* @default false | ||
*/ | ||
reference: boolean; | ||
} | ||
/** | ||
* Type of the function parameters. | ||
@@ -104,3 +162,3 @@ * | ||
*/ | ||
export interface IConstant extends __IAttribute { | ||
export interface IConstant extends IJsonSchemaAttribute { | ||
/** | ||
@@ -115,3 +173,3 @@ * The constant value. | ||
*/ | ||
export interface IBoolean extends __ISignificant<"boolean"> { | ||
export interface IBoolean extends IJsonSchemaAttribute.IBoolean { | ||
/** | ||
@@ -126,3 +184,3 @@ * The default value. | ||
*/ | ||
export interface IInteger extends __ISignificant<"integer"> { | ||
export interface IInteger extends IJsonSchemaAttribute.IInteger { | ||
/** | ||
@@ -181,3 +239,3 @@ * Default value. | ||
*/ | ||
export interface INumber extends __ISignificant<"number"> { | ||
export interface INumber extends IJsonSchemaAttribute.INumber { | ||
/** | ||
@@ -229,3 +287,3 @@ * Default value. | ||
*/ | ||
export interface IString extends __ISignificant<"string"> { | ||
export interface IString extends IJsonSchemaAttribute.IString { | ||
/** | ||
@@ -293,3 +351,3 @@ * Default value. | ||
*/ | ||
export interface IArray extends __ISignificant<"array"> { | ||
export interface IArray extends IJsonSchemaAttribute.IArray { | ||
/** | ||
@@ -332,3 +390,3 @@ * Items type info. | ||
*/ | ||
export interface IObject extends __ISignificant<"object"> { | ||
export interface IObject extends IJsonSchemaAttribute.IObject { | ||
/** | ||
@@ -401,3 +459,3 @@ * Properties of the object. | ||
*/ | ||
export interface IReference extends __IAttribute { | ||
export interface IReference extends IJsonSchemaAttribute { | ||
/** | ||
@@ -426,3 +484,3 @@ * Reference to the named schema. | ||
*/ | ||
export interface IOneOf extends __IAttribute { | ||
export interface IOneOf extends IJsonSchemaAttribute { | ||
/** | ||
@@ -463,3 +521,3 @@ * List of the union types. | ||
*/ | ||
export interface INull extends __ISignificant<"null"> { | ||
export interface INull extends IJsonSchemaAttribute.INull { | ||
/** | ||
@@ -474,11 +532,9 @@ * Default value. | ||
*/ | ||
export interface IUnknown extends __IAttribute { | ||
/** | ||
* Type is never be defined. | ||
*/ | ||
type?: undefined; | ||
} | ||
export interface IUnknown extends IJsonSchemaAttribute.IUnknown {} | ||
/** | ||
* Significant attributes that can be applied to the most types. | ||
* | ||
* @deprecated | ||
* @hidden | ||
*/ | ||
@@ -494,62 +550,7 @@ export interface __ISignificant<Type extends string> extends __IAttribute { | ||
* Common attributes that can be applied to all types. | ||
* | ||
* @deprecated | ||
* @hidden | ||
*/ | ||
export type __IAttribute = IJsonSchemaAttribute; | ||
/** | ||
* Configuration for OpenAPI v3.1 based LLM schema composition. | ||
*/ | ||
export interface IConfig { | ||
/** | ||
* Whether to allow constraint properties or not. | ||
* | ||
* If you configure this property to `false`, the schemas do not contain | ||
* the constraint properties of below. Instead, below properties would be | ||
* written to the {@link ILlmSchemaV3_1.__IAttribute.description} property | ||
* as a comment string like `"@format uuid"`. | ||
* | ||
* This is because some LLM schema model like {@link IChatGptSchema} | ||
* has banned such constraint, because their LLM cannot understand the | ||
* constraint properties and occur the hallucination. | ||
* | ||
* Therefore, considering your LLM model's performance, capability, | ||
* and the complexity of your parameter types, determine which is better, | ||
* to allow the constraint properties or not. | ||
* | ||
* - {@link ILlmSchemaV3_1.INumber.minimum} | ||
* - {@link ILlmSchemaV3_1.INumber.maximum} | ||
* - {@link ILlmSchemaV3_1.INumber.multipleOf} | ||
* - {@link ILlmSchemaV3_1.IString.minLength} | ||
* - {@link ILlmSchemaV3_1.IString.maxLength} | ||
* - {@link ILlmSchemaV3_1.IString.format} | ||
* - {@link ILlmSchemaV3_1.IString.pattern} | ||
* - {@link ILlmSchemaV3_1.IString.contentMediaType} | ||
* - {@link ILlmSchemaV3_1.IString.default} | ||
* - {@link ILlmSchemaV3_1.IArray.minItems} | ||
* - {@link ILlmSchemaV3_1.IArray.maxItems} | ||
* - {@link ILlmSchemaV3_1.IArray.unique} | ||
* | ||
* @default true | ||
*/ | ||
constraint: boolean; | ||
/** | ||
* Whether to allow reference type in everywhere. | ||
* | ||
* If you configure this property to `false`, most of reference types | ||
* represented by {@link ILlmSchemaV3_1.IReference} would be escaped to | ||
* a plain type unless recursive type case. | ||
* | ||
* This is because some low sized LLM models does not understand the | ||
* reference type well, and even the large size LLM models sometimes occur | ||
* the hallucination. | ||
* | ||
* However, the reference type makes the schema size smaller, so that reduces | ||
* the LLM token cost. Therefore, if you're using the large size of LLM model, | ||
* and want to reduce the LLM token cost, you can configure this property to | ||
* `true`. | ||
* | ||
* @default false | ||
*/ | ||
reference: boolean; | ||
} | ||
} |
@@ -56,2 +56,52 @@ import { IJsonSchemaAttribute } from "./IJsonSchemaAttribute"; | ||
/** | ||
* Configuration for OpenAPI v3.0 based LLM schema composition. | ||
*/ | ||
export interface IConfig { | ||
/** | ||
* Whether to allow constraint properties or not. | ||
* | ||
* If you configure this property to `false`, the schemas do not contain | ||
* the constraint properties of below. Instead, below properties would be | ||
* written to the {@link ILlmSchemaV3.__IAttribute.description} property | ||
* as a comment string like `"@format uuid"`. | ||
* | ||
* This is because some LLM schema model like {@link IGeminiSchema} | ||
* has banned such constraint, because their LLM cannot understand the | ||
* constraint properties and occur the hallucination. | ||
* | ||
* Therefore, considering your LLM model's performance, capability, | ||
* and the complexity of your parameter types, determine which is better, | ||
* to allow the constraint properties or not. | ||
* | ||
* - {@link ILlmSchemaV3.INumber.minimum} | ||
* - {@link ILlmSchemaV3.INumber.maximum} | ||
* - {@link ILlmSchemaV3.INumber.multipleOf} | ||
* - {@link ILlmSchemaV3.IString.minLength} | ||
* - {@link ILlmSchemaV3.IString.maxLength} | ||
* - {@link ILlmSchemaV3.IString.format} | ||
* - {@link ILlmSchemaV3.IString.pattern} | ||
* - {@link ILlmSchemaV3.IString.contentMediaType} | ||
* - {@link ILlmSchemaV3.IString.default} | ||
* - {@link ILlmSchemaV3.IArray.minItems} | ||
* - {@link ILlmSchemaV3.IArray.maxItems} | ||
* - {@link ILlmSchemaV3.IArray.unique} | ||
* | ||
* @default true | ||
*/ | ||
constraint: boolean; | ||
/** | ||
* Whether to allow recursive types or not. | ||
* | ||
* If allow, then how many times to repeat the recursive types. | ||
* | ||
* By the way, if the model is "chatgpt", the recursive types are always | ||
* allowed without any limitation, due to it supports the reference type. | ||
* | ||
* @default 3 | ||
*/ | ||
recursive: false | number; | ||
} | ||
/** | ||
* Type of the function parameters. | ||
@@ -81,4 +131,9 @@ * | ||
*/ | ||
export interface IBoolean extends __ISignificant<"boolean"> { | ||
export interface IBoolean extends IJsonSchemaAttribute.IBoolean { | ||
/** | ||
* Whether to allow `null` value or not. | ||
*/ | ||
nullable?: boolean; | ||
/** | ||
* Default value. | ||
@@ -97,4 +152,9 @@ */ | ||
*/ | ||
export interface IInteger extends __ISignificant<"integer"> { | ||
export interface IInteger extends IJsonSchemaAttribute.IInteger { | ||
/** | ||
* Whether to allow `null` value or not. | ||
*/ | ||
nullable?: boolean; | ||
/** | ||
* Default value. | ||
@@ -159,4 +219,9 @@ * | ||
*/ | ||
export interface INumber extends __ISignificant<"number"> { | ||
export interface INumber extends IJsonSchemaAttribute.INumber { | ||
/** | ||
* Whether to allow `null` value or not. | ||
*/ | ||
nullable?: boolean; | ||
/** | ||
* Default value. | ||
@@ -212,4 +277,9 @@ */ | ||
*/ | ||
export interface IString extends __ISignificant<"string"> { | ||
export interface IString extends IJsonSchemaAttribute.IString { | ||
/** | ||
* Whether to allow `null` value or not. | ||
*/ | ||
nullable?: boolean; | ||
/** | ||
* Default value. | ||
@@ -281,4 +351,9 @@ */ | ||
*/ | ||
export interface IArray extends __ISignificant<"array"> { | ||
export interface IArray extends IJsonSchemaAttribute.IArray { | ||
/** | ||
* Whether to allow `null` value or not. | ||
*/ | ||
nullable?: boolean; | ||
/** | ||
* Items type schema info. | ||
@@ -320,4 +395,9 @@ * | ||
*/ | ||
export interface IObject extends __ISignificant<"object"> { | ||
export interface IObject extends IJsonSchemaAttribute.IObject { | ||
/** | ||
* Whether to allow `null` value or not. | ||
*/ | ||
nullable?: boolean; | ||
/** | ||
* Properties of the object. | ||
@@ -387,11 +467,15 @@ * | ||
/** | ||
* Unknown type schema info. | ||
* One of type schema info. | ||
* | ||
* It means the type of the value is `any`. | ||
* `IOneOf` represents an union type of the TypeScript (`A | B | C`). | ||
* | ||
* For reference, even though your Swagger (or OpenAPI) document has | ||
* defined `anyOf` instead of the `oneOf`, it has been forcibly converted | ||
* to `oneOf` type by {@link OpenApi.convert OpenAPI conversion}. | ||
*/ | ||
export interface IUnknown extends __IAttribute { | ||
export interface IOneOf extends IJsonSchemaAttribute { | ||
/** | ||
* Type is never be defined. | ||
* List of the union types. | ||
*/ | ||
type?: undefined; | ||
oneOf: Exclude<ILlmSchemaV3, ILlmSchemaV3.IOneOf>[]; | ||
} | ||
@@ -402,9 +486,4 @@ | ||
*/ | ||
export interface INullOnly extends __IAttribute { | ||
export interface INullOnly extends IJsonSchemaAttribute.INull { | ||
/** | ||
* Type is always `null`. | ||
*/ | ||
type: "null"; | ||
/** | ||
* Default value. | ||
@@ -416,19 +495,13 @@ */ | ||
/** | ||
* One of type schema info. | ||
* Unknown type schema info. | ||
* | ||
* `IOneOf` represents an union type of the TypeScript (`A | B | C`). | ||
* | ||
* For reference, even though your Swagger (or OpenAPI) document has | ||
* defined `anyOf` instead of the `oneOf`, it has been forcibly converted | ||
* to `oneOf` type by {@link OpenApi.convert OpenAPI conversion}. | ||
* It means the type of the value is `any`. | ||
*/ | ||
export interface IOneOf extends __IAttribute { | ||
/** | ||
* List of the union types. | ||
*/ | ||
oneOf: Exclude<ILlmSchemaV3, ILlmSchemaV3.IOneOf>[]; | ||
} | ||
export interface IUnknown extends IJsonSchemaAttribute.IUnknown {} | ||
/** | ||
* Significant attributes that can be applied to the most types. | ||
* | ||
* @deprecated | ||
* @hidden | ||
*/ | ||
@@ -449,54 +522,7 @@ export interface __ISignificant<Type extends string> extends __IAttribute { | ||
* Common attributes that can be applied to all types. | ||
* | ||
* @deprecated | ||
* @hidden | ||
*/ | ||
export type __IAttribute = IJsonSchemaAttribute; | ||
/** | ||
* Configuration for OpenAPI v3.0 based LLM schema composition. | ||
*/ | ||
export interface IConfig { | ||
/** | ||
* Whether to allow constraint properties or not. | ||
* | ||
* If you configure this property to `false`, the schemas do not contain | ||
* the constraint properties of below. Instead, below properties would be | ||
* written to the {@link ILlmSchemaV3.__IAttribute.description} property | ||
* as a comment string like `"@format uuid"`. | ||
* | ||
* This is because some LLM schema model like {@link IGeminiSchema} | ||
* has banned such constraint, because their LLM cannot understand the | ||
* constraint properties and occur the hallucination. | ||
* | ||
* Therefore, considering your LLM model's performance, capability, | ||
* and the complexity of your parameter types, determine which is better, | ||
* to allow the constraint properties or not. | ||
* | ||
* - {@link ILlmSchemaV3.INumber.minimum} | ||
* - {@link ILlmSchemaV3.INumber.maximum} | ||
* - {@link ILlmSchemaV3.INumber.multipleOf} | ||
* - {@link ILlmSchemaV3.IString.minLength} | ||
* - {@link ILlmSchemaV3.IString.maxLength} | ||
* - {@link ILlmSchemaV3.IString.format} | ||
* - {@link ILlmSchemaV3.IString.pattern} | ||
* - {@link ILlmSchemaV3.IString.contentMediaType} | ||
* - {@link ILlmSchemaV3.IString.default} | ||
* - {@link ILlmSchemaV3.IArray.minItems} | ||
* - {@link ILlmSchemaV3.IArray.maxItems} | ||
* - {@link ILlmSchemaV3.IArray.unique} | ||
* | ||
* @default true | ||
*/ | ||
constraint: boolean; | ||
/** | ||
* Whether to allow recursive types or not. | ||
* | ||
* If allow, then how many times to repeat the recursive types. | ||
* | ||
* By the way, if the model is "chatgpt", the recursive types are always | ||
* allowed without any limitation, due to it supports the reference type. | ||
* | ||
* @default 3 | ||
*/ | ||
recursive: false | number; | ||
} | ||
} |
@@ -0,1 +1,3 @@ | ||
import { IJsonSchemaAttribute } from "./structures/IJsonSchemaAttribute"; | ||
/** | ||
@@ -128,12 +130,16 @@ * Swagger v2.0 definition. | ||
| IJsonSchema.IReference | ||
| IJsonSchema.IUnknown | ||
| IJsonSchema.IAnyOf | ||
| IJsonSchema.IOneOf | ||
| IJsonSchema.INullOnly | ||
| IJsonSchema.IAnyOf | ||
| IJsonSchema.IOneOf; | ||
| IJsonSchema.IUnknown; | ||
export namespace IJsonSchema { | ||
export interface IBoolean extends __ISignificant<"boolean"> { | ||
export interface IBoolean | ||
extends Omit<IJsonSchemaAttribute.IBoolean, "examples">, | ||
__ISignificant<"boolean"> { | ||
default?: boolean | null; | ||
enum?: Array<boolean | null>; | ||
} | ||
export interface IInteger extends __ISignificant<"integer"> { | ||
export interface IInteger | ||
extends Omit<IJsonSchemaAttribute.IInteger, "examples">, | ||
__ISignificant<"integer"> { | ||
/** @type int64 */ default?: number | null; | ||
@@ -151,3 +157,5 @@ /** @type int64 */ enum?: Array<number | null>; | ||
} | ||
export interface INumber extends __ISignificant<"number"> { | ||
export interface INumber | ||
extends Omit<IJsonSchemaAttribute.INumber, "examples">, | ||
__ISignificant<"number"> { | ||
default?: number | null; | ||
@@ -161,3 +169,5 @@ enum?: Array<number | null>; | ||
} | ||
export interface IString extends __ISignificant<"string"> { | ||
export interface IString | ||
extends Omit<IJsonSchemaAttribute.IString, "examples">, | ||
__ISignificant<"string"> { | ||
default?: string | null; | ||
@@ -195,3 +205,5 @@ enum?: Array<string | null>; | ||
export interface IArray extends __ISignificant<"array"> { | ||
export interface IArray | ||
extends Omit<IJsonSchemaAttribute.IArray, "examples">, | ||
__ISignificant<"array"> { | ||
items: IJsonSchema; | ||
@@ -202,3 +214,5 @@ uniqueItems?: boolean; | ||
} | ||
export interface IObject extends __ISignificant<"object"> { | ||
export interface IObject | ||
extends Omit<IJsonSchemaAttribute.IObject, "examples">, | ||
__ISignificant<"object"> { | ||
properties?: Record<string, IJsonSchema>; | ||
@@ -214,9 +228,2 @@ required?: string[]; | ||
export interface IUnknown extends __IAttribute { | ||
type?: undefined; | ||
} | ||
export interface INullOnly extends __IAttribute { | ||
type: "null"; | ||
default?: null; | ||
} | ||
export interface IAllOf extends __IAttribute { | ||
@@ -232,2 +239,10 @@ allOf: IJsonSchema[]; | ||
export interface INullOnly extends __IAttribute { | ||
type: "null"; | ||
default?: null; | ||
} | ||
export interface IUnknown extends __IAttribute { | ||
type?: undefined; | ||
} | ||
export interface __ISignificant<Type extends string> extends __IAttribute { | ||
@@ -237,7 +252,4 @@ type: Type; | ||
} | ||
export interface __IAttribute { | ||
title?: string; | ||
description?: string; | ||
deprecated?: boolean; | ||
example?: any; | ||
export interface __IAttribute | ||
extends Omit<IJsonSchemaAttribute, "examples"> { | ||
examples?: any[]; | ||
@@ -244,0 +256,0 @@ } |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
1854022
32103