diff --git a/.changeset/soft-types-match.md b/.changeset/soft-types-match.md new file mode 100644 index 0000000..314bbd2 --- /dev/null +++ b/.changeset/soft-types-match.md @@ -0,0 +1,6 @@ +--- +"@konsistent/convention": patch +"konsistent": patch +--- + +feat(konsistent): support exact top-level TypeScript type constraints alternatively to JSON schema diff --git a/docs/guides/fixing-violations.md b/docs/guides/fixing-violations.md index cb7ca55..cf75d36 100644 --- a/docs/guides/fixing-violations.md +++ b/docs/guides/fixing-violations.md @@ -157,6 +157,11 @@ For `exportConstants`, the value must be a `const`. If a `let` or `function` exi When a constant entry includes `schema`, the constant must also have a matching explicit type annotation. Add or adjust the annotation only after confirming the initializer and all assignments satisfy it. Schema checks support scalar, literal-union enum, homogeneous array, and inline object annotations; array items and object properties may use a string to require an exact TypeScript type reference. They do not infer initializer types or resolve referenced types. For object schemas, every configured property must be declared. Names in `required` must be non-optional, while other configured names must include `?`. +When an entry includes `type`, its complete explicit annotation must match the +configured TypeScript type expression exactly after template substitution. +Formatting is significant, and konsistent does not resolve imports, aliases, or +semantic equivalence. + #### `exportTypes` Message: `Missing export type "X"` or `Type "X" ...` for schema mismatches. @@ -172,6 +177,11 @@ Search first: grep for `X`, case variants, stripped suffixes (`XConfig` ↔ `X` When an entry includes `schema`, inspect the local type alias or interface rather than searching for a re-export. Every configured object property must exist with the exact required/optional status expressed by `required`; configured scalar types and type references must match the annotation exactly. Unconfigured properties are allowed unless `additionalProperties` is `false`. Do not replace a local schema-constrained type with a cross-file re-export, because `schema` and `from` are mutually exclusive. +When an entry includes `type`, inspect the right-hand side of the local type +alias. It must match the complete configured expression exactly after template +substitution. Interfaces cannot satisfy `type`, and cross-file re-exports cannot +satisfy it because `type` and `from` are mutually exclusive. + #### `exportFunctions` Message: `Missing export function "X"` or `Function "X" must receive param of type "Y"` / `... return value of type "Y"`. diff --git a/docs/reference/predicates.md b/docs/reference/predicates.md index 8bdfff9..f0088b1 100644 --- a/docs/reference/predicates.md +++ b/docs/reference/predicates.md @@ -98,8 +98,8 @@ All declaration predicates accept an array of bare strings or objects with a `na ### `declareTypes` Assert local type declarations. Interfaces and type aliases qualify. An object -entry can use `schema` to validate the local definition using the same supported -shapes and declaration semantics as `exportTypes`. +entry can use `schema` to validate a supported declaration shape, or `type` to +require an exact type alias expression. ```json "must": { @@ -110,6 +110,10 @@ shapes and declaration semantics as `exportTypes`. "type": "object", "properties": { "enabled": { "type": "boolean" } } } + }, + { + "name": "InternalReference", + "type": "${providerId.toPascalCase()}Settings<'internal'>" } ] } @@ -118,12 +122,13 @@ shapes and declaration semantics as `exportTypes`. ### `declareConstants` Assert local `const` declarations. Optionally validate an explicit type -annotation using the same `schema` field as `exportConstants`. +annotation using the same `schema` or `type` fields as `exportConstants`. ```json "must": { "declareConstants": [ - { "name": "DEFAULT_PORT", "schema": { "type": "number" } } + { "name": "DEFAULT_PORT", "schema": { "type": "number" } }, + { "name": "settings", "type": "Readonly" } ] } ``` @@ -224,8 +229,8 @@ pair. Omitting `alias` forbids the original name under every named export alias. ### `exportTypes` Assert type-only exports. Exported type aliases and interfaces qualify. Use -`from` to require a re-export, or use `schema` to validate a locally defined -exported type. +`from` to require a re-export, `schema` to validate a supported declaration +shape, or `type` to require an exact type alias expression. ```json "must": { @@ -264,28 +269,50 @@ exported type. } ``` +```json +"must": { + "exportTypes": [ + { + "name": "ModuleSettings", + "type": "SharedSettings<'${providerId}'>" + } + ] +} +``` + | Field | Type | Description | | --- | --- | --- | | `name` | string | The original local or re-exported type name. Templates allowed. | | `alias` | string | Optional. Require a named type export to expose the type under this name. Templates allowed. | | `from` | string | Optional. Require a type re-export from this module specifier. | | `schema` | object | Optional. Validate a locally declared type definition. | - -`from` and `schema` are mutually exclusive. Schema validation never resolves a -type definition from another file. The `schema` field supports the same forms -and declaration semantics documented under [`exportConstants`](#exportconstants). -When `alias` is combined with `schema`, the schema validates the original local -type definition. Alias omission and unsupported export forms behave as -documented for `exportValues`. +| `type` | string | Optional. Require the exact source expression of a locally declared type alias. Templates allowed. | + +`from`, `schema`, and `type` are mutually exclusive. Neither validation field +resolves a type definition from another file. The `schema` field supports the +same forms and declaration semantics documented under +[`exportConstants`](#exportconstants). The `type` field supports any TypeScript +type expression, including generic instantiations, unions, intersections, and +tuples, but requires a type alias because interfaces have no alias expression. +When `alias` is combined with `schema` or `type`, the constraint validates the +original local type definition. Alias omission and unsupported export forms +behave as documented for `exportValues`. ### `exportConstants` -Assert `const` exports specifically. Stricter than `exportValues` — a `function` or `let` with the right name will not satisfy this predicate. An object entry can use `schema` to validate the constant's explicit type annotation. +Assert `const` exports specifically. Stricter than `exportValues` — a `function` +or `let` with the right name will not satisfy this predicate. An object entry +can use `schema` to validate a supported shape or `type` to require its complete +explicit type annotation. ```json "must": { "exportConstants": [ "pluginId", + { + "name": "settings", + "type": "ModuleSettings<'public'>" + }, { "name": "mode", "schema": { @@ -320,6 +347,10 @@ Assert `const` exports specifically. Stricter than `exportValues` — a `functio | --- | --- | --- | | `name` | string | The constant name. Templates allowed. | | `schema` | object | Optional. Supported JSON Schema subset for the constant's explicit type annotation. | +| `type` | string | Optional. Exact TypeScript type annotation. Templates allowed. | + +`schema` and `type` are mutually exclusive. `exportConstants` checks locally +declared constants and does not accept `from`. The supported `schema` forms are: @@ -330,11 +361,24 @@ The supported `schema` forms are: Object schemas describe TypeScript declaration shapes rather than ordinary JSON Schema instances. Every name in `properties` must exist in the annotation or definition. Names listed in `required` must be non-optional (`name: Type`); all other configured names must be optional (`name?: Type`). `required` defaults to an empty array. `additionalProperties` defaults to `true`, allowing unconfigured TypeScript properties; set it to `false` to reject them. -Inner TypeScript type references are compared directly to the source annotation without resolving imports or aliases. They support template substitutions, including transformations such as `"${harnessId.toPascalCase()}Data"`. The comparison includes formatting, so `Readonly` does not match `Readonly< MyAuth >`. +Inner TypeScript type references and top-level `type` constraints are compared +directly to the source annotation or type alias expression without resolving +imports or aliases. They support template substitutions, including +transformations such as `"${harnessId.toPascalCase()}Data"`. The comparison +includes formatting, so `Readonly` does not match +`Readonly< MyAuth >`. This is deliberately a strict subset of JSON Schema. Unsupported keywords and shapes are rejected during configuration validation, including `integer`, `$ref`, combinators, nested object or array schemas, tuple schemas, enum array items, schema-valued `additionalProperties`, and constraints such as `minItems`. -Constant schema checks require an explicit annotation on a locally declared constant. Type schema checks require a local type alias or interface definition; interfaces with `extends` are unsupported. Inferred types, top-level named type references, tuples, intersections, index signatures, methods, computed properties, nested inline types, inherited properties, and cross-file re-exports are not resolved. Enum values and property names inside `schema` are literal data and do not expand placeholders. +Constant `schema` and `type` checks require an explicit annotation on a locally +declared constant. Type schema checks require a local type alias or interface +definition; interfaces with `extends` are unsupported. Type checks require a +local type alias. Inferred types, imports, aliases, semantic equivalence, and +cross-file re-exports are not resolved. The limitations on top-level named type +references, tuples, intersections, index signatures, methods, computed +properties, nested inline types, and inherited properties apply only to +`schema`; `type` compares any expression as source text. Enum values and +property names inside `schema` are literal data and do not expand placeholders. ### `exportFunctions` diff --git a/e2e/fixtures/constant-schemas-broken/konsistent.json b/e2e/fixtures/constant-schemas-broken/konsistent.json index 6d873d2..6d65aac 100644 --- a/e2e/fixtures/constant-schemas-broken/konsistent.json +++ b/e2e/fixtures/constant-schemas-broken/konsistent.json @@ -13,9 +13,17 @@ "type": "array", "items": "Readonly" } + }, + { + "name": "localSettings", + "type": "Readonly" } ], "exportConstants": [ + { + "name": "settings", + "type": "ModuleSettings<'public'>" + }, { "name": "mode", "schema": { diff --git a/e2e/fixtures/constant-schemas-broken/src/constants.ts b/e2e/fixtures/constant-schemas-broken/src/constants.ts index 3a44521..a6a802b 100644 --- a/e2e/fixtures/constant-schemas-broken/src/constants.ts +++ b/e2e/fixtures/constant-schemas-broken/src/constants.ts @@ -1,8 +1,11 @@ type OtherAuth = { token: string }; +type ModuleSettings = { scope: Scope }; const localPort = 3000; const localAuths: Readonly[] = []; +const localSettings: ModuleSettings = { scope: "local" }; +export const settings: ModuleSettings<'internal'> = { scope: "internal" }; export const mode: "development" = "development"; export const tags: number[] = [1]; export const options: { endpoint: string; retries: number } = { diff --git a/e2e/fixtures/constant-schemas/konsistent.json b/e2e/fixtures/constant-schemas/konsistent.json index f26456f..08596b9 100644 --- a/e2e/fixtures/constant-schemas/konsistent.json +++ b/e2e/fixtures/constant-schemas/konsistent.json @@ -13,9 +13,17 @@ "type": "array", "items": "Readonly" } + }, + { + "name": "localSettings", + "type": "Readonly" } ], "exportConstants": [ + { + "name": "settings", + "type": "ModuleSettings<'public'>" + }, { "name": "mode", "schema": { diff --git a/e2e/fixtures/constant-schemas/src/constants.ts b/e2e/fixtures/constant-schemas/src/constants.ts index 031a865..193b0cd 100644 --- a/e2e/fixtures/constant-schemas/src/constants.ts +++ b/e2e/fixtures/constant-schemas/src/constants.ts @@ -1,8 +1,11 @@ type MyAuth = { token: string }; +type ModuleSettings = { scope: Scope }; const localPort: number = 3000; const localAuths: ReadonlyArray> = []; +const localSettings: Readonly = { scope: "local" }; +export const settings: ModuleSettings<'public'> = { scope: "public" }; export const mode: "development" | "production" = "development"; export const tags: readonly string[] = ["stable"]; export const options: { endpoint: string; metadata?: unknown } = { diff --git a/e2e/fixtures/type-schemas-broken/konsistent.json b/e2e/fixtures/type-schemas-broken/konsistent.json index 52e3cee..953c234 100644 --- a/e2e/fixtures/type-schemas-broken/konsistent.json +++ b/e2e/fixtures/type-schemas-broken/konsistent.json @@ -24,6 +24,10 @@ "data": "${harnessId.toPascalCase()}Data" } } + }, + { + "name": "InternalReference", + "type": "${harnessId.toPascalCase()}Shared<'internal'>" } ], "exportTypes": [ @@ -36,6 +40,10 @@ "timeout": { "type": "number" } } } + }, + { + "name": "ModuleReference", + "type": "${harnessId.toPascalCase()}Shared<'public'>" } ] } diff --git a/e2e/fixtures/type-schemas-broken/src/types.ts b/e2e/fixtures/type-schemas-broken/src/types.ts index e38792d..88e9754 100644 --- a/e2e/fixtures/type-schemas-broken/src/types.ts +++ b/e2e/fixtures/type-schemas-broken/src/types.ts @@ -1,5 +1,6 @@ type OtherAuth = { token: string }; type OtherData = { value: string }; +type TypesShared = { scope: Scope }; type InternalSettings = { enabled?: boolean; @@ -7,8 +8,10 @@ type InternalSettings = { }; type InternalDataSettings = { data?: OtherData }; +type InternalReference = TypesShared<'public'>; export type ModuleSettings = { model?: string; reasoning?: "low" | "medium" | "high"; }; +export type ModuleReference = TypesShared<'internal'>; diff --git a/e2e/fixtures/type-schemas/konsistent.json b/e2e/fixtures/type-schemas/konsistent.json index 52e3cee..953c234 100644 --- a/e2e/fixtures/type-schemas/konsistent.json +++ b/e2e/fixtures/type-schemas/konsistent.json @@ -24,6 +24,10 @@ "data": "${harnessId.toPascalCase()}Data" } } + }, + { + "name": "InternalReference", + "type": "${harnessId.toPascalCase()}Shared<'internal'>" } ], "exportTypes": [ @@ -36,6 +40,10 @@ "timeout": { "type": "number" } } } + }, + { + "name": "ModuleReference", + "type": "${harnessId.toPascalCase()}Shared<'public'>" } ] } diff --git a/e2e/fixtures/type-schemas/src/types.ts b/e2e/fixtures/type-schemas/src/types.ts index 3a00242..f58335e 100644 --- a/e2e/fixtures/type-schemas/src/types.ts +++ b/e2e/fixtures/type-schemas/src/types.ts @@ -1,5 +1,6 @@ type MyAuth = { token: string }; type TypesData = { value: string }; +type TypesShared = { scope: Scope }; type InternalSettings = { enabled?: boolean; @@ -7,9 +8,11 @@ type InternalSettings = { }; type InternalDataSettings = { data?: TypesData }; +type InternalReference = TypesShared<'internal'>; export type ModuleSettings = { model?: string; timeout?: number; reasoning?: "low" | "medium" | "high"; }; +export type ModuleReference = TypesShared<'public'>; diff --git a/e2e/new-predicates.test.ts b/e2e/new-predicates.test.ts index 8c9d0ef..a08b320 100644 --- a/e2e/new-predicates.test.ts +++ b/e2e/new-predicates.test.ts @@ -72,6 +72,12 @@ describe("constant-schemas-broken fixture", () => { expect(error.stdout).toContain( 'Constant "localAuths" must be an array with items of type "Readonly"' ); + expect(error.stdout).toContain( + 'Constant "localSettings" must have type "Readonly"' + ); + expect(error.stdout).toContain( + `Constant "settings" must have type "ModuleSettings<'public'>"` + ); expect(error.stdout).toContain( 'Constant "mode" must have exactly the configured enum values' ); @@ -118,6 +124,12 @@ describe("type-schemas-broken fixture", () => { expect(error.stdout).toContain( 'Type "InternalDataSettings" property "data" must be of type "TypesData"' ); + expect(error.stdout).toContain( + `Type "InternalReference" must have type "TypesShared<'internal'>"` + ); + expect(error.stdout).toContain( + `Type "ModuleReference" must have type "TypesShared<'public'>"` + ); expect(error.stdout).toContain("type-schemas"); } }); diff --git a/packages/convention/reusable-convention-package.schema.json b/packages/convention/reusable-convention-package.schema.json index 630684a..588f7ef 100644 --- a/packages/convention/reusable-convention-package.schema.json +++ b/packages/convention/reusable-convention-package.schema.json @@ -280,164 +280,192 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": ["name"], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": ["type", "enum"], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": ["type", "enum"], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": ["type"], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": ["type", "items"], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": ["type", "items"], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": ["type"], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": ["type", "properties"], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false } - }, - "required": ["type", "properties"], - "additionalProperties": false + ] + } + }, + "required": ["name", "schema"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": ["type"], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": ["name", "type"], + "additionalProperties": false } - }, - "required": ["name"], - "additionalProperties": false + ] } ] } @@ -450,164 +478,192 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": ["name"], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": ["type", "enum"], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": ["type", "enum"], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": ["type"], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": ["type", "items"], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": ["type", "items"], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { + "properties": {}, + "additionalProperties": false + }, + { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": ["type"], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": ["type", "properties"], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false } - }, - "required": ["type", "properties"], - "additionalProperties": false + ] + } + }, + "required": ["name", "schema"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": ["type"], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": ["name", "type"], + "additionalProperties": false } - }, - "required": ["name"], - "additionalProperties": false + ] } ] } @@ -788,17 +844,240 @@ "name": { "type": "string" }, - "from": { - "type": "string" + "from": { + "type": "string" + } + }, + "required": ["name"], + "additionalProperties": false + } + ] + } + }, + "exportTypes": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "anyOf": [ + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": ["name"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": ["type", "enum"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + }, + "required": ["type", "items"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "anyOf": [ + { + "type": "object", + "properties": {}, + "additionalProperties": false + }, + { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + ] + } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": ["type", "properties"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false + } + ] + } + }, + "required": ["name", "schema"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": ["name", "type"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "from": { + "type": "string" + } + }, + "required": ["name", "from"], + "additionalProperties": false } - }, - "required": ["name"], - "additionalProperties": false + ] } ] } }, - "exportTypes": { + "exportConstants": { "type": "array", "items": { "anyOf": [ @@ -810,9 +1089,16 @@ { "type": "object", "properties": { - "alias": { + "name": { "type": "string" - }, + } + }, + "required": ["name"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { "name": { "type": "string" }, @@ -967,23 +1253,21 @@ ] } }, - "required": ["name"], + "required": ["name", "schema"], "additionalProperties": false }, { "type": "object", "properties": { - "alias": { - "type": "string" - }, "name": { "type": "string" }, - "from": { - "type": "string" + "type": { + "type": "string", + "minLength": 1 } }, - "required": ["name", "from"], + "required": ["name", "type"], "additionalProperties": false } ] @@ -991,179 +1275,6 @@ ] } }, - "exportConstants": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "from": { - "type": "string" - }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": ["type", "enum"], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" - }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": ["type"], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 - } - ] - } - }, - "required": ["type", "items"], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" - }, - "properties": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false - }, - { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": ["type"], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 - } - ] - } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } - }, - "additionalProperties": { - "type": "boolean" - } - }, - "required": ["type", "properties"], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": ["type"], - "additionalProperties": false - } - ] - } - }, - "required": ["name"], - "additionalProperties": false - } - ] - } - }, "exportFunctions": { "type": "array", "items": { @@ -1483,164 +1594,192 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": ["name"], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": ["type", "enum"], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": ["type", "enum"], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": ["type"], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": ["type", "items"], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": ["type", "items"], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": ["type"], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": ["type", "properties"], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false } - }, - "required": ["type", "properties"], - "additionalProperties": false + ] + } + }, + "required": ["name", "schema"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": ["type"], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": ["name", "type"], + "additionalProperties": false } - }, - "required": ["name"], - "additionalProperties": false + ] } ] } @@ -1653,164 +1792,192 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": ["name"], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": ["type", "enum"], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": ["type", "enum"], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": ["type"], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": ["type", "items"], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": ["type", "items"], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": ["type"], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": ["type", "properties"], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false } - }, - "required": ["type", "properties"], - "additionalProperties": false + ] + } + }, + "required": ["name", "schema"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": ["type"], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": ["name", "type"], + "additionalProperties": false } - }, - "required": ["name"], - "additionalProperties": false + ] } ] } @@ -1991,17 +2158,240 @@ "name": { "type": "string" }, - "from": { - "type": "string" + "from": { + "type": "string" + } + }, + "required": ["name"], + "additionalProperties": false + } + ] + } + }, + "exportTypes": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "anyOf": [ + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": ["name"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": ["type", "enum"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + }, + "required": ["type", "items"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "anyOf": [ + { + "type": "object", + "properties": {}, + "additionalProperties": false + }, + { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + ] + } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": ["type", "properties"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false + } + ] + } + }, + "required": ["name", "schema"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": ["name", "type"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "from": { + "type": "string" + } + }, + "required": ["name", "from"], + "additionalProperties": false } - }, - "required": ["name"], - "additionalProperties": false + ] } ] } }, - "exportTypes": { + "exportConstants": { "type": "array", "items": { "anyOf": [ @@ -2013,9 +2403,16 @@ { "type": "object", "properties": { - "alias": { + "name": { "type": "string" - }, + } + }, + "required": ["name"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { "name": { "type": "string" }, @@ -2170,23 +2567,21 @@ ] } }, - "required": ["name"], + "required": ["name", "schema"], "additionalProperties": false }, { "type": "object", "properties": { - "alias": { - "type": "string" - }, "name": { "type": "string" }, - "from": { - "type": "string" + "type": { + "type": "string", + "minLength": 1 } }, - "required": ["name", "from"], + "required": ["name", "type"], "additionalProperties": false } ] @@ -2194,179 +2589,6 @@ ] } }, - "exportConstants": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "from": { - "type": "string" - }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": ["type", "enum"], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" - }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": ["type"], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 - } - ] - } - }, - "required": ["type", "items"], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" - }, - "properties": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false - }, - { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": ["type"], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 - } - ] - } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } - }, - "additionalProperties": { - "type": "boolean" - } - }, - "required": ["type", "properties"], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": ["type"], - "additionalProperties": false - } - ] - } - }, - "required": ["name"], - "additionalProperties": false - } - ] - } - }, "exportFunctions": { "type": "array", "items": { @@ -2939,164 +3161,192 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": ["name"], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": ["type", "enum"], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": ["type", "enum"], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": ["type"], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": ["type", "items"], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": ["type", "items"], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": ["type"], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": ["type", "properties"], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false } - }, - "required": ["type", "properties"], - "additionalProperties": false + ] + } + }, + "required": ["name", "schema"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": ["type"], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": ["name", "type"], + "additionalProperties": false } - }, - "required": ["name"], - "additionalProperties": false + ] } ] } @@ -3109,164 +3359,192 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": ["name"], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": ["type", "enum"], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": ["type", "enum"], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": ["type"], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": ["type", "items"], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": ["type", "items"], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": ["type"], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": ["type", "properties"], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false } - }, - "required": ["type", "properties"], - "additionalProperties": false + ] + } + }, + "required": ["name", "schema"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": ["type"], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": ["name", "type"], + "additionalProperties": false } - }, - "required": ["name"], - "additionalProperties": false + ] } ] } @@ -3466,6 +3744,19 @@ }, { "anyOf": [ + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": ["name"], + "additionalProperties": false + }, { "type": "object", "properties": { @@ -3626,7 +3917,24 @@ ] } }, - "required": ["name"], + "required": ["name", "schema"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": ["name", "type"], "additionalProperties": false }, { @@ -3658,167 +3966,192 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "from": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": ["name"], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": ["type", "enum"], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": ["type", "enum"], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": ["type"], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": ["type", "items"], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": ["type", "items"], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": ["type"], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": ["type", "properties"], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false } - }, - "required": ["type", "properties"], - "additionalProperties": false + ] + } + }, + "required": ["name", "schema"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": ["type"], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": ["name", "type"], + "additionalProperties": false } - }, - "required": ["name"], - "additionalProperties": false + ] } ] } @@ -4142,164 +4475,192 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": ["name"], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": ["type", "enum"], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": ["type", "enum"], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": ["type"], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": ["type", "items"], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": ["type", "items"], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": ["type"], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": ["type", "properties"], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false } - }, - "required": ["type", "properties"], - "additionalProperties": false + ] + } + }, + "required": ["name", "schema"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": ["type"], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": ["name", "type"], + "additionalProperties": false } - }, - "required": ["name"], - "additionalProperties": false + ] } ] } @@ -4312,164 +4673,192 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": ["name"], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": ["type", "enum"], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": ["type", "enum"], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": ["type"], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": ["type", "items"], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": ["type", "items"], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": ["type"], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": ["type", "properties"], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" - } - }, - "required": ["type", "properties"], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false } - }, - "required": ["type"], - "additionalProperties": false + ] + } + }, + "required": ["name", "schema"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": ["name", "type"], + "additionalProperties": false } - }, - "required": ["name"], - "additionalProperties": false + ] } ] } @@ -4669,6 +5058,19 @@ }, { "anyOf": [ + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": ["name"], + "additionalProperties": false + }, { "type": "object", "properties": { @@ -4829,7 +5231,24 @@ ] } }, - "required": ["name"], + "required": ["name", "schema"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": ["name", "type"], "additionalProperties": false }, { @@ -4861,167 +5280,192 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "from": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": ["name"], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": ["type", "enum"], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": ["type", "enum"], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": ["type"], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": ["type", "items"], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": ["type", "items"], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": ["type"], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": ["type", "properties"], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": ["type"], + "additionalProperties": false } - }, - "required": ["type", "properties"], - "additionalProperties": false + ] + } + }, + "required": ["name", "schema"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": ["type"], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": ["name", "type"], + "additionalProperties": false } - }, - "required": ["name"], - "additionalProperties": false + ] } ] } diff --git a/packages/convention/src/constant-schema.test.ts b/packages/convention/src/constant-schema.test.ts index e4ed0f5..7d1a66b 100644 --- a/packages/convention/src/constant-schema.test.ts +++ b/packages/convention/src/constant-schema.test.ts @@ -1,6 +1,8 @@ import { describe, expect, it } from "vitest"; import { + ConstantDefinitionV1Schema, ConstantValueSchemaV1Schema, + ExportConstantDefinitionV1Schema, ExportTypeDefinitionV1Schema, TypeDefinitionV1Schema, } from "./constant-schema.js"; @@ -64,13 +66,20 @@ describe("ConstantValueSchemaV1Schema", () => { }); describe("type definition schemas", () => { - it("accepts schemas for local type definitions", () => { - expect( - TypeDefinitionV1Schema.safeParse({ + it.each([ + ConstantDefinitionV1Schema, + TypeDefinitionV1Schema, + ])("accepts unconstrained, schema, or type-constrained local definitions", (definitionSchema) => { + for (const definition of [ + { name: "Settings" }, + { name: "Settings", schema: { type: "object", properties: {} }, - }).success - ).toBe(true); + }, + { name: "Settings", type: "SharedSettings<'generic-value'>" }, + ]) { + expect(definitionSchema.safeParse(definition).success).toBe(true); + } }); it.each([ @@ -84,20 +93,64 @@ describe("type definition schemas", () => { alias: "PublicSettings", schema: { type: "object", properties: {} }, }, + { name: "Settings", type: "SharedSettings<'generic-value'>" }, + { + name: "Settings", + alias: "PublicSettings", + type: "SharedSettings<'generic-value'>", + }, ])("accepts exported type definition %#", (definition) => { expect(ExportTypeDefinitionV1Schema.safeParse(definition).success).toBe( true ); }); - it("rejects an exported type definition with both from and schema", () => { - expect( - ExportTypeDefinitionV1Schema.safeParse({ - name: "Settings", - alias: "PublicSettings", - from: "./settings", - schema: { type: "object", properties: {} }, - }).success - ).toBe(false); + it.each([ + { + name: "Settings", + schema: { type: "object", properties: {} }, + type: "SharedSettings", + }, + { + name: "Settings", + from: "./settings", + schema: { type: "object", properties: {} }, + }, + { + name: "Settings", + from: "./settings", + type: "SharedSettings", + }, + { name: "Settings", type: "" }, + ])("rejects invalid exported type definition %#", (definition) => { + expect(ExportTypeDefinitionV1Schema.safeParse(definition).success).toBe( + false + ); + }); +}); + +describe("exported constant definition schemas", () => { + it.each([ + { name: "settings" }, + { name: "settings", schema: { type: "object", properties: {} } }, + { name: "settings", type: "SharedSettings<'generic-value'>" }, + ])("accepts exported constant definition %#", (definition) => { + expect(ExportConstantDefinitionV1Schema.safeParse(definition).success).toBe( + true + ); + }); + + it.each([ + { + name: "settings", + schema: { type: "object", properties: {} }, + type: "SharedSettings", + }, + { name: "settings", type: "" }, + { name: "settings", from: "./settings" }, + ])("rejects invalid exported constant definition %#", (definition) => { + expect(ExportConstantDefinitionV1Schema.safeParse(definition).success).toBe( + false + ); }); }); diff --git a/packages/convention/src/constant-schema.ts b/packages/convention/src/constant-schema.ts index e2dde07..79b7b20 100644 --- a/packages/convention/src/constant-schema.ts +++ b/packages/convention/src/constant-schema.ts @@ -100,27 +100,40 @@ export const ConstantValueSchemaV1Schema = z.union([ ConstantScalarSchemaV1Schema, ]); -export const ConstantDefinitionV1Schema = z.strictObject({ - name: z.string(), - schema: ConstantValueSchemaV1Schema.optional(), -}); +const TypeExpressionV1Schema = z.string().min(1); -export const ExportConstantDefinitionV1Schema = z.strictObject({ - name: z.string(), - from: z.string().optional(), - schema: ConstantValueSchemaV1Schema.optional(), -}); +export const ConstantDefinitionV1Schema = z.union([ + z.strictObject({ + name: z.string(), + }), + z.strictObject({ + name: z.string(), + schema: ConstantValueSchemaV1Schema, + }), + z.strictObject({ + name: z.string(), + type: TypeExpressionV1Schema, + }), +]); -export const TypeDefinitionV1Schema = z.strictObject({ - name: z.string(), - schema: ConstantValueSchemaV1Schema.optional(), -}); +export const ExportConstantDefinitionV1Schema = ConstantDefinitionV1Schema; + +export const TypeDefinitionV1Schema = ConstantDefinitionV1Schema; export const ExportTypeDefinitionV1Schema = z.union([ z.strictObject({ alias: z.string().optional(), name: z.string(), - schema: ConstantValueSchemaV1Schema.optional(), + }), + z.strictObject({ + alias: z.string().optional(), + name: z.string(), + schema: ConstantValueSchemaV1Schema, + }), + z.strictObject({ + alias: z.string().optional(), + name: z.string(), + type: TypeExpressionV1Schema, }), z.strictObject({ alias: z.string().optional(), diff --git a/packages/convention/src/generated-schema.test.ts b/packages/convention/src/generated-schema.test.ts index f442da9..665b1ab 100644 --- a/packages/convention/src/generated-schema.test.ts +++ b/packages/convention/src/generated-schema.test.ts @@ -87,6 +87,31 @@ describe("reusable-convention-package.schema.json", () => { expect(valid).toBe(true); }); + it("accepts exact top-level type constraints", () => { + const valid = validate({ + conventionSpecVersion: "v1", + conventions: [ + { + name: "exact-types", + description: "Exact declaration types.", + must: { + declareTypes: [ + { name: "InternalType", type: "SharedType<'internal'>" }, + ], + declareConstants: [ + { name: "internalValue", type: "SharedType<'internal'>" }, + ], + exportTypes: [{ name: "PublicType", type: "SharedType<'public'>" }], + exportConstants: [ + { name: "publicValue", type: "SharedType<'public'>" }, + ], + }, + }, + ], + }); + expect(valid).toBe(true); + }); + it("rejects the legacy object form for inner type references", () => { const valid = validate({ conventionSpecVersion: "v1", @@ -216,4 +241,26 @@ describe("reusable-convention-package.schema.json", () => { }); expect(valid).toBe(false); }); + + it("rejects conflicting top-level type constraints", () => { + const valid = validate({ + conventionSpecVersion: "v1", + conventions: [ + { + name: "settings", + description: "Settings exports.", + must: { + exportTypes: [ + { + name: "Settings", + type: "SharedSettings", + schema: { type: "object", properties: {} }, + }, + ], + }, + }, + ], + }); + expect(valid).toBe(false); + }); }); diff --git a/packages/konsistent/konsistent.schema.json b/packages/konsistent/konsistent.schema.json index 3c0f963..685301f 100644 --- a/packages/konsistent/konsistent.schema.json +++ b/packages/konsistent/konsistent.schema.json @@ -363,181 +363,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" - } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + } + ] } - ] + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -550,181 +584,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 - } - ] - } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } - }, - "additionalProperties": { - "type": "boolean" - } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + ] + } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type" - ], - "additionalProperties": false + ] } - ] + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -940,6 +1008,21 @@ }, { "anyOf": [ + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, { "type": "object", "properties": { @@ -1116,7 +1199,28 @@ } }, "required": [ - "name" + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "type" ], "additionalProperties": false }, @@ -1152,184 +1256,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "from": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" - }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { "type": "string", - "minLength": 1 + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "required": [ + "type", + "items" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -1674,181 +1809,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" - }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { "type": "string", - "minLength": 1 + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "required": [ + "type", + "items" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -1861,181 +2030,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" - } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type" - ], - "additionalProperties": false + ] } - ] - } - }, - "required": [ - "name" - ], - "additionalProperties": false + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false + } + ] } ] } @@ -2251,6 +2454,21 @@ }, { "anyOf": [ + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, { "type": "object", "properties": { @@ -2427,7 +2645,28 @@ } }, "required": [ - "name" + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "type" ], "additionalProperties": false }, @@ -2463,184 +2702,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "from": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 - } - ] - } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + ] + } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -3043,181 +3313,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" - }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { "type": "string", - "minLength": 1 + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "required": [ + "type", + "items" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -3230,183 +3534,217 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" - } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type" - ], - "additionalProperties": false + ] } - ] - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } - ] + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false + } + ] + } + ] } }, "declareFunctions": { @@ -3620,6 +3958,21 @@ }, { "anyOf": [ + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, { "type": "object", "properties": { @@ -3796,7 +4149,28 @@ } }, "required": [ - "name" + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "type" ], "additionalProperties": false }, @@ -3832,184 +4206,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "from": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" - }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 - } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" - }, - "properties": { + "schema": { + "anyOf": [ + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false - }, - { + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { "anyOf": [ { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": "string" }, { - "type": "string", - "minLength": 1 + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" - } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "anyOf": [ + { + "type": "object", + "properties": {}, + "additionalProperties": false + }, + { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + ] + } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type" - ], - "additionalProperties": false + ] } - ] + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -4630,181 +5035,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" - }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "required": [ + "type", + "items" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -4817,181 +5256,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "required": { - "type": "array", - "items": { - "type": "string" - } - }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -5207,6 +5680,21 @@ }, { "anyOf": [ + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, { "type": "object", "properties": { @@ -5383,7 +5871,28 @@ } }, "required": [ - "name" + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "type" ], "additionalProperties": false }, @@ -5419,184 +5928,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "from": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" - }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 - } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" - }, - "properties": { + "schema": { + "anyOf": [ + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false - }, - { + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { "anyOf": [ { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": "string" }, { - "type": "string", - "minLength": 1 + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" } ] } - ] - } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "required": { - "type": "array", - "items": { - "type": "string" - } + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "anyOf": [ + { + "type": "object", + "properties": {}, + "additionalProperties": false + }, + { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + ] + } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -5941,181 +6481,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + ] } - ] + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -6128,181 +6702,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -6518,6 +7126,21 @@ }, { "anyOf": [ + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, { "type": "object", "properties": { @@ -6694,7 +7317,28 @@ } }, "required": [ - "name" + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "type" ], "additionalProperties": false }, @@ -6730,184 +7374,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "from": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" - }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { "type": "string", - "minLength": 1 + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "required": [ + "type", + "items" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -7524,181 +8199,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -7711,181 +8420,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" - }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 - } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" - }, - "properties": { + "schema": { + "anyOf": [ + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false - }, - { + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { "anyOf": [ { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": "string" }, { - "type": "string", - "minLength": 1 + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" - } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "anyOf": [ + { + "type": "object", + "properties": {}, + "additionalProperties": false + }, + { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + ] + } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type" - ], - "additionalProperties": false + ] } - ] + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -8101,6 +8844,21 @@ }, { "anyOf": [ + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, { "type": "object", "properties": { @@ -8277,7 +9035,28 @@ } }, "required": [ - "name" + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "type" ], "additionalProperties": false }, @@ -8313,184 +9092,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "from": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + ] } - ] + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -8835,181 +9645,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 - } - ] + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -9022,181 +9866,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" - }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { "type": "string", - "minLength": 1 + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "required": [ + "type", + "items" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -9412,6 +10290,21 @@ }, { "anyOf": [ + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, { "type": "object", "properties": { @@ -9588,7 +10481,28 @@ } }, "required": [ - "name" + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "type" ], "additionalProperties": false }, @@ -9624,184 +10538,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "from": { - "type": "string" - }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -10424,181 +11369,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 - } - ] - } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + ] + } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -10611,181 +11590,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" - }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 - } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" - }, - "properties": { + "schema": { + "anyOf": [ + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false - }, - { + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { "anyOf": [ { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" }, { - "type": "string", - "minLength": 1 + "type": "null" } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" - } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "anyOf": [ + { + "type": "object", + "properties": {}, + "additionalProperties": false + }, + { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + ] + } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type" - ], - "additionalProperties": false + ] } - ] + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -11001,6 +12014,21 @@ }, { "anyOf": [ + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, { "type": "object", "properties": { @@ -11177,7 +12205,28 @@ } }, "required": [ - "name" + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "type" ], "additionalProperties": false }, @@ -11213,184 +12262,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "from": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -11735,368 +12815,436 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { "type": "string" }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" + "additionalProperties": { + "anyOf": [ + { + "type": "object", + "properties": {}, + "additionalProperties": false + }, + { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + ] } - ] - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" - }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false + } + ] + } + ] + } + }, + "declareConstants": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] }, - { + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { "type": "string", - "minLength": 1 + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } - }, - "additionalProperties": { - "type": "boolean" - } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } - ] - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } - ] - } - }, - "declareConstants": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { + }, + "required": { + "type": "array", + "items": { "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" - }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false }, - { - "type": "string", - "minLength": 1 + "additionalProperties": { + "type": "boolean" } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false - }, - { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 - } - ] - } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } - }, - "additionalProperties": { - "type": "boolean" - } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type" - ], - "additionalProperties": false + ] } - ] + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -12312,6 +13460,21 @@ }, { "anyOf": [ + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, { "type": "object", "properties": { @@ -12488,7 +13651,28 @@ } }, "required": [ - "name" + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "type" ], "additionalProperties": false }, @@ -12524,184 +13708,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "from": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "additionalProperties": { + "anyOf": [ + { + "type": "object", + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -13057,181 +14272,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -13244,181 +14493,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" - } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -13613,19 +14896,268 @@ "name": { "type": "string" }, - "from": { - "type": "string" + "from": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + } + ] + } + }, + "exportTypes": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "anyOf": [ + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "anyOf": [ + { + "type": "object", + "properties": {}, + "additionalProperties": false + }, + { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + ] + } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "from": { + "type": "string" + } + }, + "required": [ + "name", + "from" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } }, - "exportTypes": { + "exportConstants": { "type": "array", "items": { "anyOf": [ @@ -13637,9 +15169,18 @@ { "type": "object", "properties": { - "alias": { + "name": { "type": "string" - }, + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { "name": { "type": "string" }, @@ -13775,255 +15316,64 @@ "required": { "type": "array", "items": { - "type": "string" - } - }, - "additionalProperties": { - "type": "boolean" - } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } - ] - } - }, - "required": [ - "name" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "alias": { - "type": "string" - }, - "name": { - "type": "string" - }, - "from": { - "type": "string" - } - }, - "required": [ - "name", - "from" - ], - "additionalProperties": false - } - ] - } - ] - } - }, - "exportConstants": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "from": { - "type": "string" - }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" - }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 - } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" - }, - "properties": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false - }, - { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 - } - ] - } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -14425,181 +15775,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" - }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { "type": "string", - "minLength": 1 + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -14612,181 +15996,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -15002,6 +16420,21 @@ }, { "anyOf": [ + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, { "type": "object", "properties": { @@ -15178,7 +16611,28 @@ } }, "required": [ - "name" + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "type" ], "additionalProperties": false }, @@ -15214,184 +16668,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "from": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { + "properties": {}, + "additionalProperties": false + }, + { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -16012,181 +17497,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -16199,181 +17718,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" - } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -16568,19 +18121,268 @@ "name": { "type": "string" }, - "from": { - "type": "string" + "from": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + } + ] + } + }, + "exportTypes": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "anyOf": [ + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "anyOf": [ + { + "type": "object", + "properties": {}, + "additionalProperties": false + }, + { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + ] + } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "from": { + "type": "string" + } + }, + "required": [ + "name", + "from" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } }, - "exportTypes": { + "exportConstants": { "type": "array", "items": { "anyOf": [ @@ -16592,9 +18394,18 @@ { "type": "object", "properties": { - "alias": { + "name": { "type": "string" - }, + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { "name": { "type": "string" }, @@ -16731,254 +18542,63 @@ "type": "array", "items": { "type": "string" - } - }, - "additionalProperties": { - "type": "boolean" - } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } - ] - } - }, - "required": [ - "name" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "alias": { - "type": "string" - }, - "name": { - "type": "string" - }, - "from": { - "type": "string" - } - }, - "required": [ - "name", - "from" - ], - "additionalProperties": false - } - ] - } - ] - } - }, - "exportConstants": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "from": { - "type": "string" - }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" - }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 - } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" - }, - "properties": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false - }, - { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 - } - ] - } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -17323,181 +18943,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" - }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { "type": "string", - "minLength": 1 + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -17510,181 +19164,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -17900,6 +19588,21 @@ }, { "anyOf": [ + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, { "type": "object", "properties": { @@ -18076,7 +19779,28 @@ } }, "required": [ - "name" + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "type" ], "additionalProperties": false }, @@ -18112,184 +19836,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "from": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { + "properties": {}, + "additionalProperties": false + }, + { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -18906,181 +20661,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -19093,181 +20882,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" - } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -19465,16 +21288,265 @@ "from": { "type": "string" } - }, - "required": [ - "name" - ], - "additionalProperties": false + }, + "required": [ + "name" + ], + "additionalProperties": false + } + ] + } + }, + "exportTypes": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "anyOf": [ + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "anyOf": [ + { + "type": "object", + "properties": {}, + "additionalProperties": false + }, + { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + ] + } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "from": { + "type": "string" + } + }, + "required": [ + "name", + "from" + ], + "additionalProperties": false + } + ] } ] } }, - "exportTypes": { + "exportConstants": { "type": "array", "items": { "anyOf": [ @@ -19486,9 +21558,18 @@ { "type": "object", "properties": { - "alias": { + "name": { "type": "string" - }, + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { "name": { "type": "string" }, @@ -19610,269 +21691,78 @@ "required": [ "type" ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 - } - ] - } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } - }, - "additionalProperties": { - "type": "boolean" - } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } - ] - } - }, - "required": [ - "name" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "alias": { - "type": "string" - }, - "name": { - "type": "string" - }, - "from": { - "type": "string" - } - }, - "required": [ - "name", - "from" - ], - "additionalProperties": false - } - ] - } - ] - } - }, - "exportConstants": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "from": { - "type": "string" - }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" - }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 - } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" - }, - "properties": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false - }, - { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -20217,181 +22107,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" - }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] }, - { + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { "type": "string", - "minLength": 1 + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -20404,181 +22328,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -20785,7 +22743,256 @@ ] } }, - "exportTypes": { + "exportTypes": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "anyOf": [ + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "anyOf": [ + { + "type": "object", + "properties": {}, + "additionalProperties": false + }, + { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + ] + } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "from": { + "type": "string" + } + }, + "required": [ + "name", + "from" + ], + "additionalProperties": false + } + ] + } + ] + } + }, + "exportConstants": { "type": "array", "items": { "anyOf": [ @@ -20797,9 +23004,18 @@ { "type": "object", "properties": { - "alias": { + "name": { "type": "string" - }, + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { "name": { "type": "string" }, @@ -20970,26 +23186,25 @@ } }, "required": [ - "name" + "name", + "schema" ], "additionalProperties": false }, { "type": "object", "properties": { - "alias": { - "type": "string" - }, "name": { "type": "string" }, - "from": { - "type": "string" + "type": { + "type": "string", + "minLength": 1 } }, "required": [ "name", - "from" + "type" ], "additionalProperties": false } @@ -20998,196 +23213,6 @@ ] } }, - "exportConstants": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "from": { - "type": "string" - }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" - }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 - } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" - }, - "properties": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false - }, - { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 - } - ] - } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } - }, - "additionalProperties": { - "type": "boolean" - } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } - ] - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } - ] - } - }, "exportFunctions": { "type": "array", "items": { @@ -21806,181 +23831,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -21993,181 +24052,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" - } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type" - ], - "additionalProperties": false + ] } - ] + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -22362,19 +24455,268 @@ "name": { "type": "string" }, - "from": { - "type": "string" + "from": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + } + ] + } + }, + "exportTypes": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "anyOf": [ + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "anyOf": [ + { + "type": "object", + "properties": {}, + "additionalProperties": false + }, + { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + ] + } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "from": { + "type": "string" + } + }, + "required": [ + "name", + "from" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } }, - "exportTypes": { + "exportConstants": { "type": "array", "items": { "anyOf": [ @@ -22386,9 +24728,18 @@ { "type": "object", "properties": { - "alias": { + "name": { "type": "string" - }, + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { "name": { "type": "string" }, @@ -22559,26 +24910,25 @@ } }, "required": [ - "name" + "name", + "schema" ], "additionalProperties": false }, { "type": "object", "properties": { - "alias": { - "type": "string" - }, "name": { "type": "string" }, - "from": { - "type": "string" + "type": { + "type": "string", + "minLength": 1 } }, "required": [ "name", - "from" + "type" ], "additionalProperties": false } @@ -22587,196 +24937,6 @@ ] } }, - "exportConstants": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "from": { - "type": "string" - }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" - }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 - } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" - }, - "properties": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false - }, - { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 - } - ] - } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } - }, - "additionalProperties": { - "type": "boolean" - } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } - ] - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } - ] - } - }, "exportFunctions": { "type": "array", "items": { @@ -23109,189 +25269,223 @@ "type": "string" } }, - "declareTypes": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + "declareTypes": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -23304,181 +25498,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -23694,6 +25922,21 @@ }, { "anyOf": [ + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, { "type": "object", "properties": { @@ -23870,7 +26113,28 @@ } }, "required": [ - "name" + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "type" ], "additionalProperties": false }, @@ -23906,184 +26170,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "from": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -24439,181 +26734,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false + "type": { + "type": "string", + "minLength": 1 } - ] + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -24626,181 +26955,215 @@ "type": "string" }, { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false + "anyOf": [ + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + "minLength": 1 } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 + ] } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false }, - "properties": { + { "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" }, - { + "additionalProperties": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], + "properties": {}, "additionalProperties": false }, { - "type": "string", - "minLength": 1 + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] } ] } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false }, - "additionalProperties": { - "type": "boolean" - } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false } - }, - "required": [ - "type" - ], - "additionalProperties": false + ] } - ] + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } @@ -24995,19 +27358,268 @@ "name": { "type": "string" }, - "from": { - "type": "string" + "from": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + } + ] + } + }, + "exportTypes": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "anyOf": [ + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "schema": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + }, + "enum": { + "minItems": 1, + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + } + }, + "required": [ + "type", + "enum" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "array" + }, + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + }, + "required": [ + "type", + "items" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "object" + }, + "properties": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "anyOf": [ + { + "type": "object", + "properties": {}, + "additionalProperties": false + }, + { + "anyOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + { + "type": "string", + "minLength": 1 + } + ] + } + ] + } + }, + "required": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean" + } + }, + "required": [ + "type", + "properties" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "string", + "number", + "boolean", + "null" + ] + } + }, + "required": [ + "type" + ], + "additionalProperties": false + } + ] + } + }, + "required": [ + "name", + "schema" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "name", + "type" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "from": { + "type": "string" + } + }, + "required": [ + "name", + "from" + ], + "additionalProperties": false } - }, - "required": [ - "name" - ], - "additionalProperties": false + ] } ] } }, - "exportTypes": { + "exportConstants": { "type": "array", "items": { "anyOf": [ @@ -25019,9 +27631,18 @@ { "type": "object", "properties": { - "alias": { + "name": { "type": "string" - }, + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { "name": { "type": "string" }, @@ -25192,26 +27813,25 @@ } }, "required": [ - "name" + "name", + "schema" ], "additionalProperties": false }, { "type": "object", "properties": { - "alias": { - "type": "string" - }, "name": { "type": "string" }, - "from": { - "type": "string" + "type": { + "type": "string", + "minLength": 1 } }, "required": [ "name", - "from" + "type" ], "additionalProperties": false } @@ -25220,196 +27840,6 @@ ] } }, - "exportConstants": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "from": { - "type": "string" - }, - "schema": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - }, - "enum": { - "minItems": 1, - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - } - }, - "required": [ - "type", - "enum" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "array" - }, - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 - } - ] - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "object" - }, - "properties": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "anyOf": [ - { - "type": "object", - "properties": {}, - "additionalProperties": false - }, - { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "string", - "minLength": 1 - } - ] - } - ] - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } - }, - "additionalProperties": { - "type": "boolean" - } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "null" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } - ] - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } - ] - } - }, "exportFunctions": { "type": "array", "items": { diff --git a/packages/konsistent/scripts/generate-schema.test.ts b/packages/konsistent/scripts/generate-schema.test.ts index c9f7943..2b59927 100644 --- a/packages/konsistent/scripts/generate-schema.test.ts +++ b/packages/konsistent/scripts/generate-schema.test.ts @@ -218,6 +218,51 @@ describe("konsistent.schema.json", () => { expect(valid).toBe(false); }); + it("accepts exact top-level type constraints", () => { + const valid = validate({ + version: "v1", + conventions: [ + { + paths: "src/settings.ts", + must: { + declareTypes: [ + { name: "InternalType", type: "SharedType<'internal'>" }, + ], + declareConstants: [ + { name: "internalValue", type: "SharedType<'internal'>" }, + ], + exportTypes: [{ name: "PublicType", type: "SharedType<'public'>" }], + exportConstants: [ + { name: "publicValue", type: "SharedType<'public'>" }, + ], + }, + }, + ], + }); + expect(valid).toBe(true); + }); + + it("rejects conflicting top-level type constraints", () => { + const valid = validate({ + version: "v1", + conventions: [ + { + paths: "src/settings.ts", + must: { + exportTypes: [ + { + name: "Settings", + from: "./settings", + type: "SharedSettings", + }, + ], + }, + }, + ], + }); + expect(valid).toBe(false); + }); + it("rejects the legacy object form for inner type references", () => { const valid = validate({ version: "v1", diff --git a/packages/konsistent/src/config/placeholder-validator.test.ts b/packages/konsistent/src/config/placeholder-validator.test.ts index 5682fde..7818aa9 100644 --- a/packages/konsistent/src/config/placeholder-validator.test.ts +++ b/packages/konsistent/src/config/placeholder-validator.test.ts @@ -188,6 +188,64 @@ describe("validatePlaceholders", () => { } }); + it("validates placeholders in top-level type constraints", () => { + const conventions: ConventionV1[] = [ + { + name: "exact-types", + paths: ["src/{harnessId}.ts"], + must: { + declareTypes: [ + { + name: "InternalSettings", + type: "${harnessId.toPascalCase()}Settings<'internal'>", + }, + ], + exportConstants: [ + { + name: "settings", + type: "${harnessId.toPascalCase()}Settings<'public'>", + }, + ], + }, + }, + ]; + + expect( + validatePlaceholders({ + conventions, + identifiers: ["exact-types"], + }) + ).toEqual({ ok: true }); + }); + + it("rejects undeclared placeholders in top-level type constraints", () => { + const conventions: ConventionV1[] = [ + { + name: "exact-types", + paths: ["src/{harnessId}.ts"], + must: { + declareConstants: [ + { name: "internalSettings", type: "${missingLocal}Settings" }, + ], + exportTypes: [{ name: "Settings", type: "${missingExport}Settings" }], + }, + }, + ]; + + const result = validatePlaceholders({ + conventions, + identifiers: ["exact-types"], + }); + + expect(result.ok).toBe(false); + if (!result.ok) { + expect(result.error).toContain('"${missingLocal}"'); + expect(result.error).toContain("must.declareConstants"); + expect(result.error).toContain('"${missingExport}"'); + expect(result.error).toContain("must.exportTypes"); + } + }); + it("detects placeholders inside import and export aliases", () => { const conventions: ConventionV1[] = [ { diff --git a/packages/konsistent/src/config/placeholder-validator.ts b/packages/konsistent/src/config/placeholder-validator.ts index fbbd1ac..cc2391e 100644 --- a/packages/konsistent/src/config/placeholder-validator.ts +++ b/packages/konsistent/src/config/placeholder-validator.ts @@ -307,7 +307,7 @@ function collectUsagesInPredicates(opts: { collectUsagesInDefinitionList({ list: predicates.declareTypes, key: `${prefix}.declareTypes`, - objectFields: ["name"], + objectFields: ["name", "type"], schemaField: true, declared, usages, @@ -315,7 +315,7 @@ function collectUsagesInPredicates(opts: { collectUsagesInDefinitionList({ list: predicates.declareConstants, key: `${prefix}.declareConstants`, - objectFields: ["name"], + objectFields: ["name", "type"], schemaField: true, declared, usages, @@ -373,7 +373,7 @@ function collectUsagesInPredicates(opts: { collectUsagesInDefinitionList({ list: predicates.exportTypes, key: `${prefix}.exportTypes`, - objectFields: ["name", "alias", "from"], + objectFields: ["name", "alias", "from", "type"], schemaField: true, declared, usages, @@ -381,7 +381,7 @@ function collectUsagesInPredicates(opts: { collectUsagesInDefinitionList({ list: predicates.exportConstants, key: `${prefix}.exportConstants`, - objectFields: ["name", "from"], + objectFields: ["name", "type"], schemaField: true, declared, usages, diff --git a/packages/konsistent/src/config/schema.test.ts b/packages/konsistent/src/config/schema.test.ts index 863d64a..447024d 100644 --- a/packages/konsistent/src/config/schema.test.ts +++ b/packages/konsistent/src/config/schema.test.ts @@ -204,6 +204,65 @@ describe("ConfigV1Schema", () => { expect(result.success).toBe(false); }); + it("accepts exact top-level type constraints", () => { + const result = ConfigV1Schema.safeParse({ + version: "v1", + conventions: [ + { + paths: "src/*.ts", + must: { + declareTypes: [{ name: "LocalType", type: "SharedType<'local'>" }], + declareConstants: [ + { name: "localConstant", type: "SharedType<'local'>" }, + ], + exportTypes: [ + { + name: "PublicType", + alias: "AliasedType", + type: "SharedType<'public'>", + }, + ], + exportConstants: [ + { name: "publicConstant", type: "SharedType<'public'>" }, + ], + }, + }, + ], + }); + expect(result.success).toBe(true); + }); + + it.each([ + { name: "Settings", schema: { type: "string" }, type: "SharedSettings" }, + { name: "Settings", from: "./settings", type: "SharedSettings" }, + ])("rejects conflicting exportTypes definition %#", (definition) => { + const result = ConfigV1Schema.safeParse({ + version: "v1", + conventions: [ + { + paths: "src/*.ts", + must: { exportTypes: [definition] }, + }, + ], + }); + expect(result.success).toBe(false); + }); + + it("rejects from on exportConstants", () => { + const result = ConfigV1Schema.safeParse({ + version: "v1", + conventions: [ + { + paths: "src/*.ts", + must: { + exportConstants: [{ name: "settings", from: "./settings" }], + }, + }, + ], + }); + expect(result.success).toBe(false); + }); + it("accepts aliases for value and type import and export predicates", () => { const result = ConfigV1Schema.safeParse({ version: "v1", diff --git a/packages/konsistent/src/core/runner.test.ts b/packages/konsistent/src/core/runner.test.ts index 149e873..a13cfc9 100644 --- a/packages/konsistent/src/core/runner.test.ts +++ b/packages/konsistent/src/core/runner.test.ts @@ -438,6 +438,59 @@ describe("run", () => { expect(diagnostics).toEqual([]); }); + it("forbids a constant matching a mustNot exact type", async () => { + const config: ConfigV1 = { + version: "v1", + conventions: [ + { + paths: "src/module.ts", + mustNot: { + exportConstants: [{ name: "debug", type: "DebugSettings" }], + }, + }, + ], + }; + const fs = createMockFileSystem({ + globResults: new Map([["src/module.ts", ["src/module.ts"]]]), + files: new Set(["src/module.ts"]), + fileContents: new Map([ + [ + "src/module.ts", + "export const debug: DebugSettings = { enabled: true };", + ], + ]), + }); + const { diagnostics } = await run({ config, fileSystem: fs }); + expect(diagnostics).toHaveLength(1); + expect(diagnostics[0].predicateName).toBe("mustNot.exportConstants"); + }); + + it("allows a mustNot constant with a different exact type", async () => { + const config: ConfigV1 = { + version: "v1", + conventions: [ + { + paths: "src/module.ts", + mustNot: { + exportConstants: [{ name: "debug", type: "DebugSettings" }], + }, + }, + ], + }; + const fs = createMockFileSystem({ + globResults: new Map([["src/module.ts", ["src/module.ts"]]]), + files: new Set(["src/module.ts"]), + fileContents: new Map([ + [ + "src/module.ts", + "export const debug: OtherSettings = { enabled: true };", + ], + ]), + }); + const { diagnostics } = await run({ config, fileSystem: fs }); + expect(diagnostics).toEqual([]); + }); + it("forbids an exported type matching a mustNot schema", async () => { const config: ConfigV1 = { version: "v1", @@ -504,6 +557,63 @@ describe("run", () => { expect(diagnostics).toEqual([]); }); + it("forbids an exported type matching a mustNot exact type", async () => { + const config: ConfigV1 = { + version: "v1", + conventions: [ + { + paths: "src/module.ts", + mustNot: { + exportTypes: [ + { name: "DebugSettings", type: "SharedSettings<'debug'>" }, + ], + }, + }, + ], + }; + const fs = createMockFileSystem({ + globResults: new Map([["src/module.ts", ["src/module.ts"]]]), + files: new Set(["src/module.ts"]), + fileContents: new Map([ + [ + "src/module.ts", + "export type DebugSettings = SharedSettings<'debug'>;", + ], + ]), + }); + const { diagnostics } = await run({ config, fileSystem: fs }); + expect(diagnostics).toHaveLength(1); + expect(diagnostics[0].predicateName).toBe("mustNot.exportTypes"); + }); + + it("allows a mustNot exported type with a different exact type", async () => { + const config: ConfigV1 = { + version: "v1", + conventions: [ + { + paths: "src/module.ts", + mustNot: { + exportTypes: [ + { name: "DebugSettings", type: "SharedSettings<'debug'>" }, + ], + }, + }, + ], + }; + const fs = createMockFileSystem({ + globResults: new Map([["src/module.ts", ["src/module.ts"]]]), + files: new Set(["src/module.ts"]), + fileContents: new Map([ + [ + "src/module.ts", + "export type DebugSettings = SharedSettings<'public'>;", + ], + ]), + }); + const { diagnostics } = await run({ config, fileSystem: fs }); + expect(diagnostics).toEqual([]); + }); + it("returns no diagnostics when mustNot importValuesFrom does not match a subpath", async () => { const config: ConfigV1 = { version: "v1", diff --git a/packages/konsistent/src/typescript/constant-type-schema.ts b/packages/konsistent/src/typescript/constant-type-schema.ts index 0cf39e4..0f437eb 100644 --- a/packages/konsistent/src/typescript/constant-type-schema.ts +++ b/packages/konsistent/src/typescript/constant-type-schema.ts @@ -53,6 +53,24 @@ export interface ConstantSchemaMatchResult { reason?: string; } +export function matchTypeExpression(opts: { + actual: string | undefined; + expected: string; + missingReason: string; +}): ConstantSchemaMatchResult { + const { actual, expected, missingReason } = opts; + if (actual === undefined) { + return { matches: false, reason: missingReason }; + } + if (actual !== expected) { + return { + matches: false, + reason: `must have type "${expected}"`, + }; + } + return { matches: true }; +} + function resolveInnerTypeConstraint(opts: { constraint: InnerTypeConstraintV1; resolveTemplate: (template: string) => string; diff --git a/packages/konsistent/src/typescript/definition-type-constraint.test.ts b/packages/konsistent/src/typescript/definition-type-constraint.test.ts new file mode 100644 index 0000000..c2049e6 --- /dev/null +++ b/packages/konsistent/src/typescript/definition-type-constraint.test.ts @@ -0,0 +1,70 @@ +import { describe, expect, it } from "vitest"; +import type { PredicateContext } from "../core/context.js"; +import { + checkConstantDefinitionConstraint, + checkTypeDefinitionConstraint, +} from "./definition-type-constraint.js"; +import { parseFileStructure } from "./parser.js"; + +function createContext(): PredicateContext { + return { + path: "src/index.ts", + placeholders: {}, + resolveTemplate: (template) => + template.replace("${scope}", "ModuleSettings"), + fileExists: () => false, + readDir: () => [], + }; +} + +describe("definition type constraints", () => { + it("matches exact constant annotations after template resolution", () => { + const result = checkConstantDefinitionConstraint({ + context: createContext(), + definition: { type: "Readonly<${scope}>" }, + fileStructure: parseFileStructure({ + source: "const settings: Readonly = {};", + }), + name: "settings", + predicateName: "declareConstants", + }); + + expect(result).toBeUndefined(); + }); + + it("reports exact type alias expression mismatches", () => { + const result = checkTypeDefinitionConstraint({ + context: createContext(), + definition: { type: "ModuleSettings<'public'>" }, + fileStructure: parseFileStructure({ + source: "type Settings = ModuleSettings<'internal'>;", + }), + name: "Settings", + predicateName: "declareTypes", + }); + + expect(result).toMatchObject({ + message: `Type "Settings" must have type "ModuleSettings<'public'>"`, + predicateName: "declareTypes", + }); + }); + + it("keeps JSON schema constraints supported", () => { + const result = checkTypeDefinitionConstraint({ + context: createContext(), + definition: { + schema: { + type: "object", + properties: { enabled: { type: "boolean" } }, + }, + }, + fileStructure: parseFileStructure({ + source: "interface Settings { enabled?: boolean }", + }), + name: "Settings", + predicateName: "declareTypes", + }); + + expect(result).toBeUndefined(); + }); +}); diff --git a/packages/konsistent/src/typescript/definition-type-constraint.ts b/packages/konsistent/src/typescript/definition-type-constraint.ts new file mode 100644 index 0000000..d677808 --- /dev/null +++ b/packages/konsistent/src/typescript/definition-type-constraint.ts @@ -0,0 +1,164 @@ +import type { ConstantValueSchemaV1 } from "@konsistent/convention"; +import type { PredicateContext } from "../core/context.js"; +import { findTypeDefinition } from "../core/declaration-utils.js"; +import type { Diagnostic, DiagnosticSeverity } from "../core/diagnostics.js"; +import { createDiagnostic } from "../core/diagnostics.js"; +import { + type ConstantSchemaMatchResult, + matchConstantTypeSchema, + matchTypeDefinitionSchema, + matchTypeExpression, + resolveConstantValueSchema, +} from "./constant-type-schema.js"; +import type { FileStructure, SourcePosition } from "./types.js"; + +interface DefinitionConstraint { + schema?: ConstantValueSchemaV1; + type?: string; +} + +function getSchema(opts: { + definition: object; +}): ConstantValueSchemaV1 | undefined { + if (!Object.hasOwn(opts.definition, "schema")) { + return; + } + return (opts.definition as DefinitionConstraint).schema; +} + +function getType(opts: { definition: object }): string | undefined { + if (!Object.hasOwn(opts.definition, "type")) { + return; + } + return (opts.definition as DefinitionConstraint).type; +} + +function createConstraintDiagnostic(opts: { + column?: number; + context: PredicateContext; + conventionName?: string; + label: "Constant" | "Type"; + line?: number; + name: string; + predicateName: string; + reason: string | undefined; + severity?: DiagnosticSeverity; +}): Diagnostic { + return createDiagnostic({ + filePath: opts.context.path, + predicateName: opts.predicateName, + message: `${opts.label} "${opts.name}" ${opts.reason}`, + conventionName: opts.conventionName, + line: opts.line, + column: opts.column, + severity: opts.severity, + }); +} + +export function checkConstantDefinitionConstraint(opts: { + context: PredicateContext; + conventionName?: string; + definition: object; + fallbackPosition?: SourcePosition; + fileStructure: FileStructure; + name: string; + predicateName: string; + severity?: DiagnosticSeverity; +}): Diagnostic | undefined { + const constantInfo = opts.fileStructure.constants.find( + (constant) => constant.name === opts.name + ); + const schema = getSchema({ definition: opts.definition }); + const configuredType = getType({ definition: opts.definition }); + let result: ConstantSchemaMatchResult | undefined; + if (schema) { + result = matchConstantTypeSchema({ + actual: constantInfo?.typeInfo, + schema: resolveConstantValueSchema({ + schema, + resolveTemplate: opts.context.resolveTemplate, + }), + }); + } else if (configuredType) { + result = matchTypeExpression({ + actual: constantInfo?.typeName?.text, + expected: opts.context.resolveTemplate(configuredType), + missingReason: "must have an explicit type annotation", + }); + } + + if (!result || result.matches) { + return; + } + return createConstraintDiagnostic({ + context: opts.context, + predicateName: opts.predicateName, + label: "Constant", + name: opts.name, + reason: result.reason, + conventionName: opts.conventionName, + line: constantInfo?.pos.line ?? opts.fallbackPosition?.line, + column: constantInfo?.pos.column ?? opts.fallbackPosition?.column, + severity: opts.severity, + }); +} + +export function checkTypeDefinitionConstraint(opts: { + context: PredicateContext; + conventionName?: string; + definition: object; + fallbackPosition?: SourcePosition; + fileStructure: FileStructure; + name: string; + predicateName: string; + severity?: DiagnosticSeverity; +}): Diagnostic | undefined { + const schema = getSchema({ definition: opts.definition }); + const configuredType = getType({ definition: opts.definition }); + const typeDefinition = schema + ? findTypeDefinition({ + fileStructure: opts.fileStructure, + name: opts.name, + }) + : undefined; + const typeAlias = configuredType + ? opts.fileStructure.typeAliases.find((entry) => entry.name === opts.name) + : undefined; + let result: ConstantSchemaMatchResult | undefined; + if (schema) { + result = matchTypeDefinitionSchema({ + actual: typeDefinition?.typeInfo, + schema: resolveConstantValueSchema({ + schema, + resolveTemplate: opts.context.resolveTemplate, + }), + }); + } else if (configuredType) { + result = matchTypeExpression({ + actual: typeAlias?.typeName.text, + expected: opts.context.resolveTemplate(configuredType), + missingReason: "must be a type alias", + }); + } + + if (!result || result.matches) { + return; + } + return createConstraintDiagnostic({ + context: opts.context, + predicateName: opts.predicateName, + label: "Type", + name: opts.name, + reason: result.reason, + conventionName: opts.conventionName, + line: + typeDefinition?.pos.line ?? + typeAlias?.pos.line ?? + opts.fallbackPosition?.line, + column: + typeDefinition?.pos.column ?? + typeAlias?.pos.column ?? + opts.fallbackPosition?.column, + severity: opts.severity, + }); +} diff --git a/packages/konsistent/src/typescript/parser.test.ts b/packages/konsistent/src/typescript/parser.test.ts index d637490..ad36189 100644 --- a/packages/konsistent/src/typescript/parser.test.ts +++ b/packages/konsistent/src/typescript/parser.test.ts @@ -638,6 +638,10 @@ describe("parseFileStructure", () => { expect(result.typeAliases[0]).toMatchObject({ name: "ID", typeInfo: { kind: "unsupported" }, + typeName: { + baseName: "string | number", + text: "string | number", + }, }); }); @@ -656,6 +660,26 @@ describe("parseFileStructure", () => { }, }); }); + + it("preserves complete type alias expressions", () => { + const result = parseFileStructure({ + source: [ + "type Generic = Shared<'value'>;", + "type Union = Left | Right;", + "type Tuple = readonly [First, Second];", + "type Multiline =", + " | First", + " | Second;", + ].join("\n"), + }); + + expect(result.typeAliases.map((entry) => entry.typeName.text)).toEqual([ + "Shared<'value'>", + "Left | Right", + "readonly [First, Second]", + ["| First", " | Second"].join("\n"), + ]); + }); }); describe("positions", () => { diff --git a/packages/konsistent/src/typescript/parser.ts b/packages/konsistent/src/typescript/parser.ts index 687243c..662408d 100644 --- a/packages/konsistent/src/typescript/parser.ts +++ b/packages/konsistent/src/typescript/parser.ts @@ -493,6 +493,7 @@ function processDeclaration(opts: { collector.typeAliases.push({ name: node.name.getText(sourceFile), typeInfo: parseTypeShape({ node: node.type }), + typeName: extractTypeAnnotation(node.type) as TypeAnnotationInfo, pos, }); } diff --git a/packages/konsistent/src/typescript/predicates/declare-constants.test.ts b/packages/konsistent/src/typescript/predicates/declare-constants.test.ts index d2c3c3f..5e5cb53 100644 --- a/packages/konsistent/src/typescript/predicates/declare-constants.test.ts +++ b/packages/konsistent/src/typescript/predicates/declare-constants.test.ts @@ -117,4 +117,42 @@ describe("checkDeclareConstants", () => { 'Constant "port" must have an explicit type annotation' ); }); + + it("validates an exact template-expanded type annotation", () => { + const result = checkDeclareConstants({ + expected: [{ name: "settings", type: "Readonly<${name}Settings>" }], + context: createMockContext({ + path: "src/index.ts", + placeholders: { name: { toString: () => "Module" } }, + }), + fileStructure: parseSource({ + source: "const settings: Readonly = {};", + }), + }); + expect(result).toEqual([]); + }); + + it("reports a mismatched exact type annotation", () => { + const result = checkDeclareConstants({ + expected: [{ name: "settings", type: "Readonly" }], + context: createMockContext({ path: "src/index.ts" }), + fileStructure: parseSource({ + source: "const settings: ModuleSettings = {};", + }), + }); + expect(result[0].message).toBe( + 'Constant "settings" must have type "Readonly"' + ); + }); + + it("requires an explicit annotation for an exact type constraint", () => { + const result = checkDeclareConstants({ + expected: [{ name: "settings", type: "ModuleSettings" }], + context: createMockContext({ path: "src/index.ts" }), + fileStructure: parseSource({ source: "const settings = {};" }), + }); + expect(result[0].message).toBe( + 'Constant "settings" must have an explicit type annotation' + ); + }); }); diff --git a/packages/konsistent/src/typescript/predicates/declare-constants.ts b/packages/konsistent/src/typescript/predicates/declare-constants.ts index 15ff3c4..bf0459c 100644 --- a/packages/konsistent/src/typescript/predicates/declare-constants.ts +++ b/packages/konsistent/src/typescript/predicates/declare-constants.ts @@ -9,11 +9,7 @@ import { resolveDefinitionName, } from "../../core/declaration-utils.js"; import type { Diagnostic, DiagnosticSeverity } from "../../core/diagnostics.js"; -import { createDiagnostic } from "../../core/diagnostics.js"; -import { - matchConstantTypeSchema, - resolveConstantValueSchema, -} from "../constant-type-schema.js"; +import { checkConstantDefinitionConstraint } from "../definition-type-constraint.js"; import type { FileStructure } from "../types.js"; export function checkDeclareConstants(opts: { @@ -33,7 +29,8 @@ export function checkDeclareConstants(opts: { }; for (const entry of expected) { - const definition = typeof entry === "string" ? { name: entry } : entry; + const definition: ConstantDefinitionV1 = + typeof entry === "string" ? { name: entry } : entry; const resolvedName = resolveDefinitionName({ entry, context }); const symbol = findDeclarationSymbol({ fileStructure, @@ -63,30 +60,18 @@ export function checkDeclareConstants(opts: { continue; } - if (definition.schema) { - const constantInfo = fileStructure.constants.find( - (constant) => constant.name === resolvedName - ); - const result = matchConstantTypeSchema({ - actual: constantInfo?.typeInfo, - schema: resolveConstantValueSchema({ - schema: definition.schema, - resolveTemplate: context.resolveTemplate, - }), - }); - if (!result.matches) { - diagnostics.push( - createDiagnostic({ - filePath: context.path, - predicateName: "declareConstants", - message: `Constant "${resolvedName}" ${result.reason}`, - conventionName, - line: constantInfo?.pos.line ?? symbol.pos.line, - column: constantInfo?.pos.column ?? symbol.pos.column, - severity, - }) - ); - } + const constraintDiagnostic = checkConstantDefinitionConstraint({ + context, + conventionName, + definition, + fallbackPosition: symbol.pos, + fileStructure, + name: resolvedName, + predicateName: "declareConstants", + severity, + }); + if (constraintDiagnostic) { + diagnostics.push(constraintDiagnostic); } } diff --git a/packages/konsistent/src/typescript/predicates/declare-types.test.ts b/packages/konsistent/src/typescript/predicates/declare-types.test.ts index 15270fe..ad9321d 100644 --- a/packages/konsistent/src/typescript/predicates/declare-types.test.ts +++ b/packages/konsistent/src/typescript/predicates/declare-types.test.ts @@ -115,4 +115,45 @@ describe("checkDeclareTypes", () => { column: 1, }); }); + + it("validates an exact template-expanded type alias expression", () => { + const result = checkDeclareTypes({ + expected: [ + { + name: "Settings", + type: "${name}Settings<'generic-value'> | undefined", + }, + ], + context: createMockContext({ + path: "src/index.ts", + placeholders: { name: { toString: () => "Shared" } }, + }), + fileStructure: parseSource({ + source: "type Settings = SharedSettings<'generic-value'> | undefined;", + }), + }); + expect(result).toEqual([]); + }); + + it("reports a mismatched exact type alias expression", () => { + const result = checkDeclareTypes({ + expected: [{ name: "Settings", type: "SharedSettings<'public'>" }], + context: createMockContext({ path: "src/index.ts" }), + fileStructure: parseSource({ + source: "type Settings = SharedSettings<'private'>;", + }), + }); + expect(result[0].message).toBe( + `Type "Settings" must have type "SharedSettings<'public'>"` + ); + }); + + it("does not treat an interface as an exact type alias expression", () => { + const result = checkDeclareTypes({ + expected: [{ name: "Settings", type: "SharedSettings" }], + context: createMockContext({ path: "src/index.ts" }), + fileStructure: parseSource({ source: "interface Settings {}" }), + }); + expect(result[0].message).toBe('Type "Settings" must be a type alias'); + }); }); diff --git a/packages/konsistent/src/typescript/predicates/declare-types.ts b/packages/konsistent/src/typescript/predicates/declare-types.ts index c221e3d..6b54c36 100644 --- a/packages/konsistent/src/typescript/predicates/declare-types.ts +++ b/packages/konsistent/src/typescript/predicates/declare-types.ts @@ -5,16 +5,11 @@ import { createMissingDeclarationDiagnostic, type DeclarationCheckContext, findDeclarationSymbol, - findTypeDefinition, isDeclarationSymbolExported, resolveDefinitionName, } from "../../core/declaration-utils.js"; import type { Diagnostic, DiagnosticSeverity } from "../../core/diagnostics.js"; -import { createDiagnostic } from "../../core/diagnostics.js"; -import { - matchTypeDefinitionSchema, - resolveConstantValueSchema, -} from "../constant-type-schema.js"; +import { checkTypeDefinitionConstraint } from "../definition-type-constraint.js"; import type { FileStructure } from "../types.js"; export function checkDeclareTypes(opts: { @@ -34,7 +29,8 @@ export function checkDeclareTypes(opts: { }; for (const entry of expected) { - const definition = typeof entry === "string" ? { name: entry } : entry; + const definition: TypeDefinitionV1 = + typeof entry === "string" ? { name: entry } : entry; const resolvedName = resolveDefinitionName({ entry, context }); const symbol = findDeclarationSymbol({ fileStructure, @@ -64,31 +60,18 @@ export function checkDeclareTypes(opts: { continue; } - if (definition.schema) { - const typeDefinition = findTypeDefinition({ - fileStructure, - name: resolvedName, - }); - const result = matchTypeDefinitionSchema({ - actual: typeDefinition?.typeInfo, - schema: resolveConstantValueSchema({ - schema: definition.schema, - resolveTemplate: context.resolveTemplate, - }), - }); - if (!result.matches) { - diagnostics.push( - createDiagnostic({ - filePath: context.path, - predicateName: "declareTypes", - message: `Type "${resolvedName}" ${result.reason}`, - conventionName, - line: typeDefinition?.pos.line ?? symbol.pos.line, - column: typeDefinition?.pos.column ?? symbol.pos.column, - severity, - }) - ); - } + const constraintDiagnostic = checkTypeDefinitionConstraint({ + context, + conventionName, + definition, + fallbackPosition: symbol.pos, + fileStructure, + name: resolvedName, + predicateName: "declareTypes", + severity, + }); + if (constraintDiagnostic) { + diagnostics.push(constraintDiagnostic); } } diff --git a/packages/konsistent/src/typescript/predicates/export-constants.test.ts b/packages/konsistent/src/typescript/predicates/export-constants.test.ts index 304dc3a..0d62cd2 100644 --- a/packages/konsistent/src/typescript/predicates/export-constants.test.ts +++ b/packages/konsistent/src/typescript/predicates/export-constants.test.ts @@ -243,4 +243,32 @@ describe("checkExportConstants", () => { 'Constant "options" must not have additional property "retries"' ); }); + + it("validates an exact template-expanded type annotation", () => { + const result = checkExportConstants({ + expected: [{ name: "settings", type: "${name}Settings<'public'>" }], + context: createMockContext({ + path: "src/index.ts", + placeholders: { name: { toString: () => "Module" } }, + }), + fileStructure: parseFileStructure({ + source: + "export const settings: ModuleSettings<'public'> = { enabled: true };", + }), + }); + expect(result).toEqual([]); + }); + + it("reports a mismatched exact type annotation", () => { + const result = checkExportConstants({ + expected: [{ name: "settings", type: "Readonly" }], + context: createMockContext({ path: "src/index.ts" }), + fileStructure: parseFileStructure({ + source: "export const settings: ModuleSettings = {};", + }), + }); + expect(result[0].message).toBe( + 'Constant "settings" must have type "Readonly"' + ); + }); }); diff --git a/packages/konsistent/src/typescript/predicates/export-constants.ts b/packages/konsistent/src/typescript/predicates/export-constants.ts index 21431b1..dfc5861 100644 --- a/packages/konsistent/src/typescript/predicates/export-constants.ts +++ b/packages/konsistent/src/typescript/predicates/export-constants.ts @@ -2,10 +2,7 @@ import type { ExportConstantDefinitionV1 } from "@konsistent/convention"; import type { PredicateContext } from "../../core/context.js"; import type { Diagnostic, DiagnosticSeverity } from "../../core/diagnostics.js"; import { createDiagnostic } from "../../core/diagnostics.js"; -import { - matchConstantTypeSchema, - resolveConstantValueSchema, -} from "../constant-type-schema.js"; +import { checkConstantDefinitionConstraint } from "../definition-type-constraint.js"; import type { FileStructure } from "../types.js"; export function checkExportConstants(opts: { @@ -19,7 +16,8 @@ export function checkExportConstants(opts: { const diagnostics: Diagnostic[] = []; for (const entry of expected) { - const definition = typeof entry === "string" ? { name: entry } : entry; + const definition: ExportConstantDefinitionV1 = + typeof entry === "string" ? { name: entry } : entry; const resolvedName = context.resolveTemplate(definition.name); const found = fileStructure.exports.some( @@ -39,30 +37,17 @@ export function checkExportConstants(opts: { continue; } - if (definition.schema) { - const constantInfo = fileStructure.constants.find( - (constant) => constant.name === resolvedName - ); - const result = matchConstantTypeSchema({ - actual: constantInfo?.typeInfo, - schema: resolveConstantValueSchema({ - schema: definition.schema, - resolveTemplate: context.resolveTemplate, - }), - }); - if (!result.matches) { - diagnostics.push( - createDiagnostic({ - filePath: context.path, - predicateName: "exportConstants", - message: `Constant "${resolvedName}" ${result.reason}`, - conventionName, - line: constantInfo?.pos.line, - column: constantInfo?.pos.column, - severity, - }) - ); - } + const constraintDiagnostic = checkConstantDefinitionConstraint({ + context, + conventionName, + definition, + fileStructure, + name: resolvedName, + predicateName: "exportConstants", + severity, + }); + if (constraintDiagnostic) { + diagnostics.push(constraintDiagnostic); } } diff --git a/packages/konsistent/src/typescript/predicates/export-types.test.ts b/packages/konsistent/src/typescript/predicates/export-types.test.ts index 10feabe..32a58a6 100644 --- a/packages/konsistent/src/typescript/predicates/export-types.test.ts +++ b/packages/konsistent/src/typescript/predicates/export-types.test.ts @@ -449,4 +449,51 @@ describe("checkExportTypes", () => { 'Type "Settings" must have a local type definition' ); }); + + it("validates an exact type alias expression through an export alias", () => { + const result = checkExportTypes({ + expected: [ + { + name: "Settings", + alias: "PublicSettings", + type: "${name}Settings<'generic-value'>", + }, + ], + context: createMockContext({ + path: "src/index.ts", + placeholders: { name: { toString: () => "Shared" } }, + }), + fileStructure: parseFileStructure({ + source: [ + "type Settings = SharedSettings<'generic-value'>;", + "export type { Settings as PublicSettings };", + ].join("\n"), + }), + }); + expect(result).toEqual([]); + }); + + it("reports exact type expression formatting differences", () => { + const result = checkExportTypes({ + expected: [{ name: "Settings", type: "Left | Right" }], + context: createMockContext({ path: "src/index.ts" }), + fileStructure: parseFileStructure({ + source: "export type Settings = Left|Right;", + }), + }); + expect(result[0].message).toBe( + 'Type "Settings" must have type "Left | Right"' + ); + }); + + it("does not treat an exported interface as a type alias expression", () => { + const result = checkExportTypes({ + expected: [{ name: "Settings", type: "SharedSettings" }], + context: createMockContext({ path: "src/index.ts" }), + fileStructure: parseFileStructure({ + source: "export interface Settings {}", + }), + }); + expect(result[0].message).toBe('Type "Settings" must be a type alias'); + }); }); diff --git a/packages/konsistent/src/typescript/predicates/export-types.ts b/packages/konsistent/src/typescript/predicates/export-types.ts index d567056..55c28af 100644 --- a/packages/konsistent/src/typescript/predicates/export-types.ts +++ b/packages/konsistent/src/typescript/predicates/export-types.ts @@ -1,15 +1,8 @@ -import type { - ExportTypeDefinitionV1, - TypeDefinitionV1, -} from "@konsistent/convention"; +import type { ExportTypeDefinitionV1 } from "@konsistent/convention"; import type { PredicateContext } from "../../core/context.js"; -import { findTypeDefinition } from "../../core/declaration-utils.js"; import type { Diagnostic, DiagnosticSeverity } from "../../core/diagnostics.js"; import { createDiagnostic } from "../../core/diagnostics.js"; -import { - matchTypeDefinitionSchema, - resolveConstantValueSchema, -} from "../constant-type-schema.js"; +import { checkTypeDefinitionConstraint } from "../definition-type-constraint.js"; import type { FileStructure } from "../types.js"; export function checkExportTypes(opts: { @@ -23,7 +16,8 @@ export function checkExportTypes(opts: { const diagnostics: Diagnostic[] = []; for (const entry of expected) { - const definition = typeof entry === "string" ? { name: entry } : entry; + const definition: ExportTypeDefinitionV1 = + typeof entry === "string" ? { name: entry } : entry; const resolvedName = context.resolveTemplate(definition.name); const resolvedFrom = Object.hasOwn(definition, "from") ? context.resolveTemplate((definition as { from: string }).from) @@ -58,34 +52,18 @@ export function checkExportTypes(opts: { continue; } - const schema = Object.hasOwn(definition, "schema") - ? (definition as TypeDefinitionV1).schema - : undefined; - if (schema) { - const typeDefinition = findTypeDefinition({ - fileStructure, - name: resolvedName, - }); - const result = matchTypeDefinitionSchema({ - actual: typeDefinition?.typeInfo, - schema: resolveConstantValueSchema({ - schema, - resolveTemplate: context.resolveTemplate, - }), - }); - if (!result.matches) { - diagnostics.push( - createDiagnostic({ - filePath: context.path, - predicateName: "exportTypes", - message: `Type "${resolvedName}" ${result.reason}`, - conventionName, - line: typeDefinition?.pos.line ?? found.pos.line, - column: typeDefinition?.pos.column ?? found.pos.column, - severity, - }) - ); - } + const constraintDiagnostic = checkTypeDefinitionConstraint({ + context, + conventionName, + definition, + fallbackPosition: found.pos, + fileStructure, + name: resolvedName, + predicateName: "exportTypes", + severity, + }); + if (constraintDiagnostic) { + diagnostics.push(constraintDiagnostic); } } diff --git a/packages/konsistent/src/typescript/types.ts b/packages/konsistent/src/typescript/types.ts index 6b18eb9..251e0a4 100644 --- a/packages/konsistent/src/typescript/types.ts +++ b/packages/konsistent/src/typescript/types.ts @@ -102,6 +102,7 @@ export interface TypeAliasInfo { name: string; pos: SourcePosition; typeInfo?: TypeShapeInfo; + typeName: TypeAnnotationInfo; } export type NonBarrelStatementKind =