@powerlines/schema 0.11.27 → 0.11.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/bundle.cjs +34 -20
  2. package/dist/bundle.d.cts +3 -3
  3. package/dist/bundle.d.cts.map +1 -1
  4. package/dist/bundle.d.mts +3 -3
  5. package/dist/bundle.d.mts.map +1 -1
  6. package/dist/bundle.mjs +35 -21
  7. package/dist/bundle.mjs.map +1 -1
  8. package/dist/codegen.cjs +40 -36
  9. package/dist/codegen.d.cts +10 -22
  10. package/dist/codegen.d.cts.map +1 -1
  11. package/dist/codegen.d.mts +10 -22
  12. package/dist/codegen.d.mts.map +1 -1
  13. package/dist/codegen.mjs +39 -36
  14. package/dist/codegen.mjs.map +1 -1
  15. package/dist/constants.cjs +34 -11
  16. package/dist/constants.d.cts +9 -11
  17. package/dist/constants.d.cts.map +1 -1
  18. package/dist/constants.d.mts +9 -11
  19. package/dist/constants.d.mts.map +1 -1
  20. package/dist/constants.mjs +32 -11
  21. package/dist/constants.mjs.map +1 -1
  22. package/dist/extract.cjs +122 -92
  23. package/dist/extract.d.cts +34 -69
  24. package/dist/extract.d.cts.map +1 -1
  25. package/dist/extract.d.mts +34 -69
  26. package/dist/extract.d.mts.map +1 -1
  27. package/dist/extract.mjs +123 -93
  28. package/dist/extract.mjs.map +1 -1
  29. package/dist/helpers.cjs +45 -52
  30. package/dist/helpers.d.cts +28 -24
  31. package/dist/helpers.d.cts.map +1 -1
  32. package/dist/helpers.d.mts +28 -24
  33. package/dist/helpers.d.mts.map +1 -1
  34. package/dist/helpers.mjs +46 -52
  35. package/dist/helpers.mjs.map +1 -1
  36. package/dist/index.cjs +14 -7
  37. package/dist/index.d.cts +6 -6
  38. package/dist/index.d.mts +6 -6
  39. package/dist/index.mjs +5 -5
  40. package/dist/metadata.cjs +80 -0
  41. package/dist/metadata.d.cts +52 -0
  42. package/dist/metadata.d.cts.map +1 -0
  43. package/dist/metadata.d.mts +52 -0
  44. package/dist/metadata.d.mts.map +1 -0
  45. package/dist/metadata.mjs +76 -0
  46. package/dist/metadata.mjs.map +1 -0
  47. package/dist/persistence.cjs +1 -2
  48. package/dist/persistence.d.cts +5 -5
  49. package/dist/persistence.d.cts.map +1 -1
  50. package/dist/persistence.d.mts +5 -5
  51. package/dist/persistence.d.mts.map +1 -1
  52. package/dist/persistence.mjs +1 -1
  53. package/dist/persistence.mjs.map +1 -1
  54. package/dist/reflection.cjs +289 -303
  55. package/dist/reflection.d.cts +3 -16
  56. package/dist/reflection.d.cts.map +1 -1
  57. package/dist/reflection.d.mts +3 -16
  58. package/dist/reflection.d.mts.map +1 -1
  59. package/dist/reflection.mjs +290 -304
  60. package/dist/reflection.mjs.map +1 -1
  61. package/dist/resolve.cjs +7 -7
  62. package/dist/resolve.mjs +7 -7
  63. package/dist/resolve.mjs.map +1 -1
  64. package/dist/type-checks.cjs +122 -40
  65. package/dist/type-checks.d.cts +41 -33
  66. package/dist/type-checks.d.cts.map +1 -1
  67. package/dist/type-checks.d.mts +41 -33
  68. package/dist/type-checks.d.mts.map +1 -1
  69. package/dist/type-checks.mjs +120 -37
  70. package/dist/type-checks.mjs.map +1 -1
  71. package/dist/types.d.cts +225 -113
  72. package/dist/types.d.cts.map +1 -1
  73. package/dist/types.d.mts +225 -113
  74. package/dist/types.d.mts.map +1 -1
  75. package/package.json +11 -7
  76. package/dist/jtd.cjs +0 -385
  77. package/dist/jtd.d.cts +0 -15
  78. package/dist/jtd.d.cts.map +0 -1
  79. package/dist/jtd.d.mts +0 -15
  80. package/dist/jtd.d.mts.map +0 -1
  81. package/dist/jtd.mjs +0 -384
  82. package/dist/jtd.mjs.map +0 -1
package/dist/types.d.cts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Type } from "@powerlines/deepkit/vendor/type";
2
2
  import { StandardJSONSchemaV1 } from "@standard-schema/spec";
3
- import { JsonSchemaType } from "@stryke/json/types";
4
3
  import { TypeDefinition } from "@stryke/types/configuration";
4
+ import { FormatName } from "ajv-formats/dist/formats.js";
5
5
  import { InputObject, Schema as Schema$1 } from "untyped";
6
6
  import * as z3 from "zod/v3";
7
7
 
@@ -9,52 +9,166 @@ import * as z3 from "zod/v3";
9
9
  type UntypedInputObject = InputObject;
10
10
  type UntypedSchema = Schema$1;
11
11
  /**
12
- * The set of numeric `type` strings supported by JSON Type Definition (RFC 8927).
12
+ * JSON Schema primitive type names used by {@link stringifyType}.
13
13
  */
14
- type JTDNumberType = "float32" | "float64" | "int8" | "uint8" | "int16" | "uint16" | "int32" | "uint32";
14
+ type JsonSchemaPrimitiveType = "string" | "number" | "integer" | "boolean" | "null" | "object" | "array";
15
+ type StrictNullChecksWrapper<Name extends string, Type> = undefined extends null ? `strictNullChecks must be true in tsconfig to use ${Name}` : Type;
16
+ type UnionToIntersection<U> = (U extends any ? (_: U) => void : never) extends ((_: infer I) => void) ? I : never;
15
17
  /**
16
- * The set of string `type` strings supported by JSON Type Definition (RFC 8927).
18
+ * A JSON Schema type that is compatible with all the JSON schema variants, and includes additional Powerlines-specific metadata properties. This type is designed to be flexible and accommodate various schema shapes while still providing the ability to include metadata for documentation or other purposes. The presence of the metadata properties does not affect the validation behavior of the schema itself, but they can provide additional context or information about the schema when used in conjunction with compatible tools.
17
19
  */
18
- type JTDStringType = "string" | "timestamp";
19
- /**
20
- * The set of `type` strings supported by JSON Type Definition (RFC 8927).
21
- */
22
- type JTDType = JTDNumberType | JTDStringType | "boolean";
23
- interface JsonSchemaLike {
24
- type?: string | string[];
25
- format?: string;
26
- enum?: unknown[];
27
- const?: unknown;
28
- items?: JsonSchemaLike | JsonSchemaLike[];
29
- properties?: Record<string, JsonSchemaLike>;
30
- patternProperties?: Record<string, JsonSchemaLike>;
31
- additionalProperties?: boolean | JsonSchemaLike;
32
- required?: string[];
33
- anyOf?: JsonSchemaLike[];
34
- oneOf?: JsonSchemaLike[];
35
- allOf?: JsonSchemaLike[];
36
- $ref?: string;
37
- description?: string;
38
- title?: string;
39
- default?: unknown;
40
- examples?: unknown[];
20
+ type JsonSchemaLike = UncheckedJsonSchemaType<Known, true> & SchemaMetadata;
21
+ type UncheckedPartialSchema<T> = Partial<UncheckedJsonSchemaType<T, true>>;
22
+ type JsonType<T extends string, IsPartial extends boolean> = IsPartial extends true ? T | undefined : T;
23
+ type NumberFormat = "int32" | "float" | "double" | "int8" | "uint8" | "int16" | "uint16" | "int64" | "uint64";
24
+ interface NumberKeywords {
25
+ /** The inclusive lower bound allowed for numeric values. */
41
26
  minimum?: number;
27
+ /** The inclusive upper bound allowed for numeric values. */
42
28
  maximum?: number;
43
- exclusiveMinimum?: number | boolean;
44
- exclusiveMaximum?: number | boolean;
45
- nullable?: boolean;
46
- definitions?: Record<string, JsonSchemaLike>;
47
- $defs?: Record<string, JsonSchemaLike>;
48
- discriminator?: {
49
- propertyName?: string;
50
- } | string;
51
- [key: string]: unknown;
29
+ /** The exclusive lower bound allowed for numeric values. */
30
+ exclusiveMinimum?: number;
31
+ /** The exclusive upper bound allowed for numeric values. */
32
+ exclusiveMaximum?: number;
33
+ /** The numeric increment that values must be a multiple of. */
34
+ multipleOf?: number;
35
+ /** The numeric format hint recognized by compatible validators. */
36
+ format?: NumberFormat | string;
52
37
  }
53
- interface SchemaMetadata {
38
+ interface StringKeywords {
39
+ /** The minimum number of characters allowed in the string. */
40
+ minLength?: number;
41
+ /** The maximum number of characters allowed in the string. */
42
+ maxLength?: number;
43
+ /** A regular expression that matching strings must satisfy. */
44
+ pattern?: string;
45
+ /**
46
+ * A format for the schema, which can be used by validation libraries or other tools that support this feature to provide additional validation or formatting rules for the data that the schema represents. The presence of this property does not affect the validation behavior of the schema itself, but it can provide additional context or information about the expected data when used in conjunction with compatible tools.
47
+ *
48
+ * @see https://ajv.js.org/packages/ajv-formats.html
49
+ *
50
+ * @remarks
51
+ * The `format` property is a string that specifies the format of the data that the schema represents. It can be used to indicate that a string should be validated as an email address, a date-time, a URI, or any other format supported by compatible validation libraries. The presence of this property does not affect the validation behavior of the schema itself, but it can provide additional context or information about the expected data when used in conjunction with compatible tools.
52
+ */
53
+ format?: FormatName | string;
54
+ }
55
+ type Known = {
56
+ [key: string]: Known;
57
+ } | [Known, ...Known[]] | Known[] | number | string | boolean | null;
58
+ type UncheckedPropertiesSchema<T> = { [K in keyof T]-?: (UncheckedJsonSchemaType<T[K], false> & Nullable<T[K]>) | {
59
+ $ref: string;
60
+ } };
61
+ type UncheckedRequiredMembers<T> = { [K in keyof T]-?: undefined extends T[K] ? never : K }[keyof T];
62
+ type Nullable<T> = undefined extends T ? {
63
+ /** Indicates that the value may be null in addition to the declared type. */nullable: true; /** A constant value constrained to null when the schema is nullable. */
64
+ const?: null; /** Allowed values, including null when the schema is nullable. */
65
+ enum?: readonly (T | null)[]; /** The default value to use when none is provided. */
66
+ default?: T | null;
67
+ } : {
68
+ /** Indicates whether the value may be null. */nullable?: false; /** A constant value allowed by the schema. */
69
+ const?: T; /** The set of values allowed by the schema. */
70
+ enum?: readonly T[]; /** The default value to use when none is provided. */
71
+ default?: T;
72
+ };
73
+ type UncheckedJsonSchemaType<T, IsPartial extends boolean> = ({
74
+ anyOf: readonly UncheckedJsonSchemaType<T, IsPartial>[];
75
+ } | {
76
+ oneOf: readonly UncheckedJsonSchemaType<T, IsPartial>[];
77
+ } | ({
78
+ type: readonly (T extends number ? JsonType<"number" | "integer", IsPartial> : T extends string ? JsonType<"string", IsPartial> : T extends boolean ? JsonType<"boolean", IsPartial> : never)[];
79
+ } & UnionToIntersection<T extends number ? NumberKeywords : T extends string ? StringKeywords : T extends boolean ? {} : never>) | ((T extends number ? {
80
+ type: JsonType<"number" | "integer", IsPartial>;
81
+ } & NumberKeywords : T extends string ? {
82
+ type: JsonType<"string", IsPartial>;
83
+ } & StringKeywords : T extends boolean ? {
84
+ type: JsonType<"boolean", IsPartial>;
85
+ } : T extends readonly [any, ...any[]] ? {
86
+ type: JsonType<"array", IsPartial>; /** The tuple items in order. */
87
+ items: { readonly [K in keyof T]-?: UncheckedJsonSchemaType<T[K], false> & Nullable<T[K]> } & {
88
+ length: T["length"];
89
+ }; /** The minimum number of items allowed in the tuple. */
90
+ minItems: T["length"];
91
+ } & ({
92
+ /** The maximum number of items allowed in the tuple. */maxItems: T["length"];
93
+ } | {
94
+ /** Disallows items beyond the tuple length. */additionalItems: false;
95
+ }) : T extends readonly any[] ? {
96
+ type: JsonType<"array", IsPartial>; /** The schema that each array item must satisfy. */
97
+ items: UncheckedJsonSchemaType<T[0], false>; /** A schema that at least one array item must satisfy. */
98
+ contains?: UncheckedPartialSchema<T[0]>; /** The minimum number of items allowed in the array. */
99
+ minItems?: number; /** The maximum number of items allowed in the array. */
100
+ maxItems?: number; /** The minimum number of matching items required by {@link contains}. */
101
+ minContains?: number; /** The maximum number of matching items allowed by {@link contains}. */
102
+ maxContains?: number; /** Indicates that array items must be unique. */
103
+ uniqueItems?: true; /** Additional tuple items are not permitted in this schema shape. */
104
+ additionalItems?: never;
105
+ } : T extends Record<string, any> ? {
106
+ type: JsonType<"object", IsPartial>; /** The schema for properties not matched by {@link properties} or {@link patternProperties}. */
107
+ additionalProperties?: boolean | UncheckedJsonSchemaType<T[string], false>; /** The schema for properties not yet evaluated by other object keywords. */
108
+ unevaluatedProperties?: boolean | UncheckedJsonSchemaType<T[string], false>; /** The declared object properties and their schemas. */
109
+ properties?: IsPartial extends true ? Partial<UncheckedPropertiesSchema<T>> : UncheckedPropertiesSchema<T>; /** The schemas for properties whose names match the given patterns. */
110
+ patternProperties?: Record<string, UncheckedJsonSchemaType<T[string], false>>; /** The schema that each property name must satisfy. */
111
+ propertyNames?: Omit<UncheckedJsonSchemaType<string, false>, "type"> & {
112
+ type?: "string";
113
+ }; /** A map of property-specific dependency requirements. */
114
+ dependencies?: { [K in keyof T]?: readonly (keyof T)[] | UncheckedPartialSchema<T> }; /** Properties that become required when the key property is present. */
115
+ dependentRequired?: { [K in keyof T]?: readonly (keyof T)[] }; /** Subschemas that apply when the key property is present. */
116
+ dependentSchemas?: { [K in keyof T]?: UncheckedPartialSchema<T> }; /** The minimum number of own properties allowed. */
117
+ minProperties?: number; /** The maximum number of own properties allowed. */
118
+ maxProperties?: number;
119
+ /**
120
+ * An optional array of property names that are considered primary keys for the object. This property can be used by validation libraries or other tools that support this feature to provide additional validation rules or constraints for the data that the schema represents. The presence of this property does not affect the validation behavior of the schema itself, but it can provide additional context or information about the expected data when used in conjunction with compatible tools.
121
+ */
122
+ primaryKey?: (keyof T)[];
123
+ /**
124
+ * A name for the database schema associated with the data represented by this schema. This property can be used by documentation tools or other libraries that support this feature to provide additional context or information about the data model that the schema represents. The presence of this property does not affect the validation behavior of the schema itself, but it can provide additional context or information about the expected data when used in conjunction with compatible tools.
125
+ */
126
+ databaseSchemaName?: string;
127
+ } & (IsPartial extends true ? {
128
+ /** The set of required property names for partial schemas. */required: readonly (keyof T)[];
129
+ } : [UncheckedRequiredMembers<T>] extends [never] ? {
130
+ /** The set of required property names when none are statically required. */required?: readonly UncheckedRequiredMembers<T>[];
131
+ } : {
132
+ /** The set of required property names for the object. */required: readonly UncheckedRequiredMembers<T>[];
133
+ }) : T extends null ? {
134
+ /** The JSON Schema null type. */type: JsonType<"null", IsPartial>; /** Indicates that only null is allowed. */
135
+ nullable: true;
136
+ } : never) & {
137
+ /** A set of schemas where the data must satisfy all members. */allOf?: readonly UncheckedPartialSchema<T>[]; /** A set of schemas where the data must satisfy at least one member. */
138
+ anyOf?: readonly UncheckedPartialSchema<T>[]; /** A set of schemas where the data must satisfy exactly one member. */
139
+ oneOf?: readonly UncheckedPartialSchema<T>[]; /** A schema that the data must not satisfy. */
140
+ if?: UncheckedPartialSchema<T>; /** A schema applied when {@link if} matches. */
141
+ then?: UncheckedPartialSchema<T>; /** A schema applied when {@link if} does not match. */
142
+ else?: UncheckedPartialSchema<T>; /** A schema that must not match the data. */
143
+ not?: UncheckedPartialSchema<T>;
144
+ })) & {
145
+ /**
146
+ * A unique identifier for the schema, which can be used to reference or identify the schema in various contexts. This property is part of the JSON Schema specification and does not affect the validation behavior of the schema itself, but it can provide additional context or information about the schema when used in conjunction with compatible tools.
147
+ */
148
+ $id?: string;
149
+ /**
150
+ * A reference to another schema definition, which can be used to reuse or reference schema definitions in other parts of the document or external schemas. This property is part of the JSON Schema specification and does not affect the validation behavior of the schema itself, but it can be used to create modular and reusable schema structures.
151
+ */
152
+ $ref?: string;
153
+ /**
154
+ * A comment or annotation for the schema, which can be used to provide additional context or information about the schema. This property is part of the JSON Schema specification and does not affect the validation behavior of the schema itself, but it can be used by documentation tools or other libraries that support this feature.
155
+ */
156
+ $comment?: string;
157
+ /**
158
+ * A record of schema definitions that can be referenced throughout the schema using `$ref`. This property can be used to define reusable schema components and reduce redundancy in schema definitions. The presence of this property does not affect the validation behavior of the schema itself, but it can provide additional context or information about the schema when used in conjunction with compatible tools.
159
+ */
160
+ $defs?: Record<string, UncheckedJsonSchemaType<Known, true>>;
161
+ /**
162
+ * A record of schema definitions that can be referenced throughout the schema using `$ref`. This property is a legacy version of `$defs` and is maintained for backward compatibility with earlier versions of the JSON Schema specification. The presence of this property does not affect the validation behavior of the schema itself, but it can provide additional context or information about the schema when used in conjunction with compatible tools.
163
+ */
164
+ definitions?: Record<string, UncheckedJsonSchemaType<Known, true>>;
54
165
  /**
55
166
  * A name for the schema, which can be used by documentation tools or other libraries that support this feature to provide a human-readable name or description for the schema. The presence of this property does not affect the validation behavior of the schema itself, but it can provide additional context or information about the schema when used in conjunction with compatible tools.
56
167
  */
57
168
  name?: string;
169
+ [keyword: string]: any;
170
+ };
171
+ interface SchemaMetadata {
58
172
  /**
59
173
  * A title for the schema, which can be used by documentation tools or other libraries that support this feature to provide a human-readable name or description for the schema. The presence of this property does not affect the validation behavior of the schema itself, but it can provide additional context or information about the schema when used in conjunction with compatible tools.
60
174
  */
@@ -64,148 +178,146 @@ interface SchemaMetadata {
64
178
  */
65
179
  description?: string;
66
180
  /**
67
- * A default value for the schema, which can be used by validation libraries or other tools that support this feature. The presence of this property does not affect the validation behavior of the schema itself, but it can provide additional context or information about the expected data when used in conjunction with compatible tools.
181
+ * A URL or string containing documentation for the schema, which can be used by documentation tools or other libraries that support this feature to provide additional information or resources related to the schema. The presence of this property does not affect the validation behavior of the schema itself, but it can provide additional context or information about the schema when used in conjunction with compatible tools.
68
182
  */
69
- default?: unknown;
183
+ docs?: string;
70
184
  /**
71
185
  * An array of example values that conform to the schema. This property can be used to provide sample data for documentation purposes or to assist developers in understanding the expected structure and content of the data that the schema represents. The presence of this property does not affect the validation behavior of the schema itself, but it can provide additional context or information about the expected data when used in conjunction with compatible tools.
72
186
  */
73
- examples?: unknown[];
187
+ examples?: string[];
188
+ /**
189
+ * An array of strings or an alias reference to indicate that the field is an alias for one or more other fields.
190
+ */
191
+ alias?: string[];
74
192
  /**
75
193
  * An array of strings indicating groups that the schema belongs to. This property can be used for organizational or categorization purposes in documentation tools or other libraries that support this feature. The presence of this property does not affect the validation behavior of the schema itself, but it can provide additional context or information about the schema when used in conjunction with compatible tools.
76
- *
77
- * @remarks
78
- * The concept of "groups" is not a standard feature of JSON Schema or JSON Type Definition, but it can be a useful convention for organizing schemas in larger projects or for providing additional metadata that can be leveraged by documentation generators or other tools. The specific meaning and usage of groups would depend on the conventions established within the project or the tools being used.
79
194
  */
80
- groups?: string[];
195
+ tags?: string[];
81
196
  /**
82
197
  * A visibility level for the schema, which can be used by documentation tools or other libraries that support this feature to determine how the schema should be presented or accessed. The presence of this property does not affect the validation behavior of the schema itself, but it can provide additional context or information about the schema when used in conjunction with compatible tools.
83
198
  */
84
199
  visibility?: "public" | "protected" | "private";
85
200
  /**
86
- * A resource identifier for the schema, which can be used by documentation tools or other libraries that support this feature to provide a human-readable name or description for the schema. The presence of this property does not affect the validation behavior of the schema itself, but it can provide additional context or information about the schema when used in conjunction with compatible tools.
201
+ * An indicator specifying if the field is deprecated or not. This property can be used by documentation tools or other libraries that support this feature to provide additional information or warnings about the usage of the schema. The presence of this property does not affect the validation behavior of the schema itself, but it can provide additional context or information about the schema when used in conjunction with compatible tools.
87
202
  */
88
- resourceId?: string;
203
+ deprecated?: boolean;
89
204
  /**
90
- * An indicator specifying if the field should be marked as hidden or not.
205
+ * An indicator specifying if the field should be marked as hidden or not. This property can be used by documentation tools or other libraries that support this feature to provide additional information or warnings about the usage of the schema. The presence of this property does not affect the validation behavior of the schema itself, but it can provide additional context or information about the schema when used in conjunction with compatible tools.
91
206
  */
92
- isHidden?: boolean;
207
+ hidden?: boolean;
93
208
  /**
94
- * An indicator specifying if the field should be ignored or not.
209
+ * An indicator specifying if the field should be ignored or not. This property can be used by documentation tools or other libraries that support this feature to provide additional information or warnings about the usage of the schema. The presence of this property does not affect the validation behavior of the schema itself, but it can provide additional context or information about the schema when used in conjunction with compatible tools.
95
210
  */
96
- isIgnored?: boolean;
211
+ ignore?: boolean;
97
212
  /**
98
213
  * An indicator specifying if the field is internal or not.
99
214
  *
100
215
  * @internal
101
216
  */
102
- isInternal?: boolean;
217
+ internal?: boolean;
103
218
  /**
104
219
  * An indicator specifying if the field should only be populated at runtime or not.
105
220
  */
106
- isRuntime?: boolean;
221
+ runtime?: boolean;
107
222
  /**
108
- * An indicator specifying if the field is read-only or not. This property can be used to indicate that a field should not be modified after it has been set, which can be useful for documentation purposes or to assist developers in understanding the expected behavior of the data that the schema represents. The presence of this property does not affect the validation behavior of the schema itself, but it can provide additional context or information about the expected data when used in conjunction with compatible tools.
223
+ * An indicator specifying if the field is read-only or not.
109
224
  */
110
- isReadonly?: boolean;
225
+ readOnly?: boolean;
111
226
  /**
112
- * An indicator specifying if the field is a primary key or not. This property can be used to indicate that a field serves as a unique identifier for records in a dataset, which can be useful for documentation purposes or to assist developers in understanding the expected structure and behavior of the data that the schema represents. The presence of this property does not affect the validation behavior of the schema itself, but it can provide additional context or information about the expected data when used in conjunction with compatible tools.
227
+ * An indicator specifying if the field is write-only or not. This property can be used by documentation tools or other libraries that support this feature to provide additional information or warnings about the usage of the schema. The presence of this property does not affect the validation behavior of the schema itself, but it can provide additional context or information about the schema when used in conjunction with compatible tools.
113
228
  */
114
- isPrimaryKey?: boolean;
229
+ writeOnly?: boolean;
115
230
  /**
116
- * An array of strings or an alias reference to indicate that the field is an alias for one or more other fields. This property can be used to provide alternative names or references for a field, which can be useful for documentation purposes or to assist developers in understanding the expected structure and content of the data that the schema represents. The presence of this property does not affect the validation behavior of the schema itself, but it can provide additional context or information about the expected data when used in conjunction with compatible tools.
231
+ * The content media type for the schema, which can be used by documentation tools or other libraries that support this feature to provide additional information about the expected content type of the data that the schema represents. The presence of this property does not affect the validation behavior of the schema itself, but it can provide additional context or information about the expected data when used in conjunction with compatible tools.
117
232
  */
118
- alias?: string[];
233
+ contentMediaType?: string;
234
+ /**
235
+ * The content encoding for the schema, which can be used by documentation tools or other libraries that support this feature to provide additional information about the expected encoding of the data that the schema represents. The presence of this property does not affect the validation behavior of the schema itself, but it can provide additional context or information about the expected data when used in conjunction with compatible tools.
236
+ */
237
+ contentEncoding?: string;
119
238
  /**
120
- * Schemas that are unioned together to form a single schema. This property can be used to represent complex data structures that can conform to multiple different schemas. The presence of this property does not affect the validation behavior of the schema itself, but it can provide additional context or information about the expected data when used in conjunction with compatible tools.
239
+ * The content schema for the schema, which can be used by documentation tools or other libraries that support this feature to provide additional information about the expected structure of the data that the schema represents. The presence of this property does not affect the validation behavior of the schema itself, but it can provide additional context or information about the expected data when used in conjunction with compatible tools.
121
240
  */
122
- union?: JsonSchemaLike[];
123
- [key: string]: unknown | undefined;
241
+ contentSchema?: string;
124
242
  }
125
- type JTDSchemaObjectForm<TMetadata extends Partial<SchemaMetadata> = Partial<SchemaMetadata>> = {
126
- properties: Record<string, JTDSchemaType<TMetadata>>;
127
- optionalProperties?: Record<string, JTDSchemaType<TMetadata>>;
128
- additionalProperties?: boolean;
129
- } | {
130
- properties?: Record<string, JTDSchemaType<TMetadata>>;
131
- optionalProperties: Record<string, JTDSchemaType<TMetadata>>;
132
- additionalProperties?: boolean;
133
- };
134
- type JTDSchemaType<TMetadata extends Partial<SchemaMetadata> = Partial<SchemaMetadata>> = ({
135
- ref: string;
136
- } | {
137
- type: JTDType;
138
- } | {
139
- enum: string[];
140
- } | {
141
- elements: JTDSchemaType<TMetadata>;
142
- } | {
143
- values: JTDSchemaType<TMetadata>;
144
- } | JTDSchemaObjectForm<TMetadata> | {
145
- discriminator: string;
146
- mapping: Record<string, JTDSchemaType<TMetadata>>;
147
- } | {}) & {
148
- nullable?: boolean;
149
- metadata?: TMetadata;
150
- definitions?: Record<string, JTDSchemaType<TMetadata>>;
151
- };
152
- type JTDSchemaObjectType<TMetadata extends Partial<SchemaMetadata> = Partial<SchemaMetadata>> = JTDSchemaObjectForm<TMetadata> & {
153
- nullable?: boolean;
154
- metadata?: TMetadata;
155
- definitions?: Record<string, JTDSchemaType<TMetadata>>;
243
+ type JsonSchemaProperty<T extends Record<string, any> = Record<string, any>, TName extends string = string> = JsonSchemaObject<T[TName]> & {
244
+ /** The property name within the parent object schema. */name: TName;
245
+ /**
246
+ * An indicator specifying if the field is nullable or not. If `true`, the field can accept `null` as a valid value. This property can be used by validation libraries or other tools that support this feature to provide additional validation rules for the data that the schema represents. The presence of this property does not affect the validation behavior of the schema itself, but it can provide additional context or information about the expected data when used in conjunction with compatible tools.
247
+ */
248
+ nullable: boolean;
156
249
  };
157
- type SchemaSourceVariant = "standard-schema" | "jtd-schema" | "json-schema" | "zod3" | "untyped" | "reflection";
250
+ /**
251
+ * A JSON Schema type that includes additional Powerlines-specific metadata properties. This type extends the standard JSON Schema definition with optional properties such as `name`, `title`, `description`, `default`, `examples`, `groups`, `visibility`, and various flags for controlling how the schema is treated by documentation tools or other libraries that support these features. The presence of these metadata properties does not affect the validation behavior of the schema itself, but they can provide additional context or information about the schema when used in conjunction with compatible tools.
252
+ */
253
+ type JsonSchema<T = unknown> = StrictNullChecksWrapper<"JsonSchema", UncheckedJsonSchemaType<T, false>> & SchemaMetadata;
254
+ /**
255
+ * A JSON Schema object type that includes a `type` property set to "object", a `properties` object defining the properties of the schema, and optional metadata properties. This type is used to represent JSON Schema definitions for objects, and it extends the standard JSON Schema definition with additional Powerlines-specific metadata properties. The presence of these metadata properties does not affect the validation behavior of the schema itself, but they can provide additional context or information about the schema when used in conjunction with compatible tools.
256
+ */
257
+ type JsonSchemaObject<T extends Record<string, any> = Record<string, any>> = Omit<JsonSchemaLike, "type" | "properties" | "required"> & {
258
+ /** The JSON Schema object type discriminator. */type: "object"; /** The object properties mapped to their schema definitions. */
259
+ properties: Record<string, JsonSchemaProperty<T>>; /** The property names that are required on the object. */
260
+ required?: string[];
261
+ } & SchemaMetadata;
262
+ type SchemaSourceVariant = "standard-schema" | "json-schema" | "zod3" | "untyped" | "reflection";
158
263
  type SchemaInputVariant = SchemaSourceVariant | "type-definition";
159
- type SchemaSourceInput<TMetadata extends Partial<SchemaMetadata> = Partial<SchemaMetadata>> = StandardJSONSchemaV1 | JTDSchemaType<TMetadata> | JsonSchemaType | z3.ZodTypeAny | UntypedInputObject | UntypedSchema | Type;
264
+ type SchemaSourceInput<T = unknown> = StandardJSONSchemaV1 | JsonSchema<T> | z3.ZodTypeAny | UntypedInputObject | UntypedSchema | Type;
160
265
  type TypeDefinitionReference = TypeDefinition | string;
161
- type SchemaInput = SchemaSourceInput | Schema | TypeDefinitionReference;
266
+ type SchemaInput<T = unknown> = SchemaSourceInput<T> | Schema<T> | TypeDefinitionReference;
162
267
  /**
163
- * A type representing a schema that has been extracted from a source input. This type includes a `hash` property, which is a string that uniquely identifies the schema based on its content and source; a `variant` property, which indicates the format or type of the original input from which the schema was extracted (e.g., "jtd-schema", "json-schema", "zod3", "untyped", "reflection", or "type-definition"); and a `schema` property, which is the extracted schema itself represented as a JSON Type Definition (JTD) schema object with optional metadata. This type can be used to represent schemas in a standardized format regardless of their original source or representation.
268
+ * A schema extracted from a source input, normalized to JSON Schema.
164
269
  */
165
- interface Schema<TMetadata extends Partial<SchemaMetadata> = Partial<SchemaMetadata>> {
270
+ interface Schema<T = unknown> {
271
+ /** A stable content hash for the normalized schema. */
166
272
  hash: string;
273
+ /** The source variant used to derive the normalized {@link JsonSchema}. */
167
274
  variant: SchemaInputVariant;
168
- schema: JTDSchemaType<TMetadata>;
169
- }
170
- /**
171
- * A type representing a JSON Type Definition (JTD) schema that specifically has an object form (i.e., it has either a `properties` property that is an object or an `optionalProperties` property that is an object, as per the structure of JTD schema objects). This type extends the base {@link Schema} type and narrows the `schema` property to be a `JTDSchemaObjectType`, which ensures that any schema of this type will have the structure of a JTD object schema.
172
- */
173
- interface ObjectSchema<TMetadata extends Partial<SchemaMetadata> = Partial<SchemaMetadata>> extends Schema<TMetadata> {
174
- schema: JTDSchemaObjectType<TMetadata>;
275
+ /** The normalized schema definition. */
276
+ schema: JsonSchema<T>;
175
277
  }
176
278
  interface BaseSchemaSource {
279
+ /** A stable content hash for the original source schema. */
177
280
  hash: string;
281
+ /** The specific source format used for the schema input. */
178
282
  variant: SchemaSourceVariant;
283
+ /** The original schema input captured before normalization. */
179
284
  schema: SchemaSourceInput;
180
285
  }
181
- interface JTDSchemaSchemaSource<TMetadata extends Partial<SchemaMetadata> = Partial<SchemaMetadata>> extends BaseSchemaSource {
182
- variant: "jtd-schema";
183
- schema: JTDSchemaType<TMetadata>;
184
- }
185
- interface JsonSchemaSchemaSource extends BaseSchemaSource {
286
+ interface JsonSchemaSchemaSource<TMetadata extends SchemaMetadata = SchemaMetadata> extends BaseSchemaSource {
287
+ /** Indicates the source input already uses JSON Schema syntax. */
186
288
  variant: "json-schema";
187
- schema: JsonSchemaType;
289
+ /** The original JSON Schema document. */
290
+ schema: JsonSchema<TMetadata>;
188
291
  }
189
292
  interface StandardSchemaSchemaSource extends BaseSchemaSource {
293
+ /** Indicates the source input follows the Standard Schema format. */
190
294
  variant: "standard-schema";
295
+ /** The original Standard Schema document. */
191
296
  schema: StandardJSONSchemaV1;
192
297
  }
193
298
  interface Zod3SchemaSource extends BaseSchemaSource {
299
+ /** Indicates the source input is a Zod v3 schema. */
194
300
  variant: "zod3";
301
+ /** The original Zod v3 schema instance. */
195
302
  schema: z3.ZodTypeAny;
196
303
  }
197
304
  interface ReflectionSchemaSource extends BaseSchemaSource {
305
+ /** Indicates the source input is a Deepkit reflection {@link Type}. */
198
306
  variant: "reflection";
307
+ /** The original Deepkit reflection type. */
199
308
  schema: Type;
200
309
  }
201
310
  interface UntypedSchemaSource extends BaseSchemaSource {
311
+ /** Indicates the source input comes from the Untyped schema model. */
202
312
  variant: "untyped";
313
+ /** The original Untyped schema input. */
203
314
  schema: UntypedInputObject | UntypedSchema;
204
315
  }
205
- type SchemaSource = JsonSchemaSchemaSource | JTDSchemaSchemaSource | StandardSchemaSchemaSource | Zod3SchemaSource | UntypedSchemaSource | ReflectionSchemaSource;
206
- interface ExtractedSchema<TMetadata extends Partial<SchemaMetadata> = Partial<SchemaMetadata>> extends Schema<TMetadata> {
316
+ type SchemaSource = JsonSchemaSchemaSource | StandardSchemaSchemaSource | Zod3SchemaSource | UntypedSchemaSource | ReflectionSchemaSource;
317
+ interface ExtractedSchema<T = unknown> extends Schema<T> {
318
+ /** The schema source that produced this normalized schema. */
207
319
  source: SchemaSource;
208
320
  }
209
321
  //#endregion
210
- export { BaseSchemaSource, ExtractedSchema, JTDNumberType, JTDSchemaObjectForm, JTDSchemaObjectType, JTDSchemaSchemaSource, JTDSchemaType, JTDStringType, JTDType, JsonSchemaLike, JsonSchemaSchemaSource, ObjectSchema, ReflectionSchemaSource, Schema, SchemaInput, SchemaInputVariant, SchemaMetadata, SchemaSource, SchemaSourceInput, SchemaSourceVariant, StandardSchemaSchemaSource, TypeDefinitionReference, UntypedInputObject, UntypedSchema, UntypedSchemaSource, Zod3SchemaSource };
322
+ export { BaseSchemaSource, ExtractedSchema, JsonSchema, JsonSchemaLike, JsonSchemaObject, JsonSchemaPrimitiveType, JsonSchemaProperty, JsonSchemaSchemaSource, JsonType, NumberFormat, NumberKeywords, ReflectionSchemaSource, Schema, SchemaInput, SchemaInputVariant, SchemaMetadata, SchemaSource, SchemaSourceInput, SchemaSourceVariant, StandardSchemaSchemaSource, StringKeywords, TypeDefinitionReference, UntypedInputObject, UntypedSchema, UntypedSchemaSource, Zod3SchemaSource };
211
323
  //# sourceMappingURL=types.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.cts","names":[],"sources":["../src/types.ts"],"mappings":"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"}
1
+ {"version":3,"file":"types.d.cts","names":[],"sources":["../src/types.ts"],"mappings":"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"}