@twin.org/tools-core 0.0.3-next.9 → 0.0.4-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/es/index.js +21 -11
- package/dist/es/index.js.map +1 -1
- package/dist/es/models/ITypeScriptToSchemaContext.js +2 -0
- package/dist/es/models/ITypeScriptToSchemaContext.js.map +1 -0
- package/dist/es/models/ITypeScriptToSchemaDiagnostics.js +4 -0
- package/dist/es/models/ITypeScriptToSchemaDiagnostics.js.map +1 -0
- package/dist/es/models/ITypeScriptToSchemaOptions.js +4 -0
- package/dist/es/models/ITypeScriptToSchemaOptions.js.map +1 -0
- package/dist/es/models/embeddedSchemaMode.js +17 -0
- package/dist/es/models/embeddedSchemaMode.js.map +1 -0
- package/dist/es/utils/constants.js +43 -0
- package/dist/es/utils/constants.js.map +1 -0
- package/dist/es/utils/diagnosticReporter.js +32 -0
- package/dist/es/utils/diagnosticReporter.js.map +1 -0
- package/dist/es/utils/disallowedTypeGuard.js +151 -0
- package/dist/es/utils/disallowedTypeGuard.js.map +1 -0
- package/dist/es/utils/enum.js +152 -0
- package/dist/es/utils/enum.js.map +1 -0
- package/dist/es/utils/fileUtils.js +132 -0
- package/dist/es/utils/fileUtils.js.map +1 -0
- package/dist/es/utils/importTypeQuerySchemaResolver.js +363 -0
- package/dist/es/utils/importTypeQuerySchemaResolver.js.map +1 -0
- package/dist/es/utils/indexSignaturePatternResolver.js +94 -0
- package/dist/es/utils/indexSignaturePatternResolver.js.map +1 -0
- package/dist/es/utils/intersectionSchemaMerger.js +85 -0
- package/dist/es/utils/intersectionSchemaMerger.js.map +1 -0
- package/dist/es/utils/jsDoc.js +138 -0
- package/dist/es/utils/jsDoc.js.map +1 -0
- package/dist/es/utils/jsonSchemaBuilder.js +3416 -0
- package/dist/es/utils/jsonSchemaBuilder.js.map +1 -0
- package/dist/es/utils/mappedTypeSchemaResolver.js +265 -0
- package/dist/es/utils/mappedTypeSchemaResolver.js.map +1 -0
- package/dist/es/utils/objectTransformer.js +161 -0
- package/dist/es/utils/objectTransformer.js.map +1 -0
- package/dist/es/utils/regEx.js +128 -0
- package/dist/es/utils/regEx.js.map +1 -0
- package/dist/es/utils/resolver.js +177 -0
- package/dist/es/utils/resolver.js.map +1 -0
- package/dist/es/utils/templateLiteralPatternBuilder.js +94 -0
- package/dist/es/utils/templateLiteralPatternBuilder.js.map +1 -0
- package/dist/es/utils/typeScriptToSchema.js +319 -0
- package/dist/es/utils/typeScriptToSchema.js.map +1 -0
- package/dist/es/utils/utilityTypeSchemaMapper.js +475 -0
- package/dist/es/utils/utilityTypeSchemaMapper.js.map +1 -0
- package/dist/types/index.d.ts +21 -11
- package/dist/types/models/ITypeScriptToSchemaContext.d.ts +71 -0
- package/dist/types/models/ITypeScriptToSchemaDiagnostics.d.ts +31 -0
- package/dist/types/models/ITypeScriptToSchemaOptions.d.ts +22 -0
- package/dist/types/models/embeddedSchemaMode.d.ts +17 -0
- package/dist/types/utils/constants.d.ts +13 -0
- package/dist/types/utils/diagnosticReporter.d.ts +17 -0
- package/dist/types/utils/disallowedTypeGuard.d.ts +16 -0
- package/dist/types/utils/enum.d.ts +42 -0
- package/dist/types/utils/fileUtils.d.ts +66 -0
- package/dist/types/utils/importTypeQuerySchemaResolver.d.ts +87 -0
- package/dist/types/utils/indexSignaturePatternResolver.d.ts +21 -0
- package/dist/types/utils/intersectionSchemaMerger.d.ts +16 -0
- package/dist/types/utils/jsDoc.d.ts +53 -0
- package/dist/types/utils/jsonSchemaBuilder.d.ts +671 -0
- package/dist/types/utils/mappedTypeSchemaResolver.d.ts +81 -0
- package/dist/types/utils/objectTransformer.d.ts +33 -0
- package/dist/types/utils/regEx.d.ts +24 -0
- package/dist/types/utils/resolver.d.ts +22 -0
- package/dist/types/utils/templateLiteralPatternBuilder.d.ts +12 -0
- package/dist/types/utils/typeScriptToSchema.d.ts +92 -0
- package/dist/types/utils/utilityTypeSchemaMapper.d.ts +141 -0
- package/docs/changelog.md +383 -40
- package/docs/examples.md +87 -1
- package/docs/reference/classes/Constants.md +29 -0
- package/docs/reference/classes/DiagnosticReporter.md +49 -0
- package/docs/reference/classes/DisallowedTypeGuard.md +35 -0
- package/docs/reference/classes/Enum.md +93 -0
- package/docs/reference/classes/FileUtils.md +237 -0
- package/docs/reference/classes/ImportTypeQuerySchemaResolver.md +109 -0
- package/docs/reference/classes/IndexSignaturePatternResolver.md +69 -0
- package/docs/reference/classes/IntersectionSchemaMerger.md +48 -0
- package/docs/reference/classes/JsDoc.md +169 -0
- package/docs/reference/classes/JsonSchemaBuilder.md +2578 -0
- package/docs/reference/classes/MappedTypeSchemaResolver.md +275 -0
- package/docs/reference/classes/ObjectTransformer.md +119 -0
- package/docs/reference/classes/RegEx.md +99 -0
- package/docs/reference/classes/Resolver.md +52 -0
- package/docs/reference/classes/TemplateLiteralPatternBuilder.md +35 -0
- package/docs/reference/classes/TypeScriptToSchema.md +91 -0
- package/docs/reference/classes/UtilityTypeSchemaMapper.md +343 -0
- package/docs/reference/index.md +25 -11
- package/docs/reference/interfaces/ITypeScriptToSchemaContext.md +125 -0
- package/docs/reference/interfaces/ITypeScriptToSchemaDiagnostics.md +55 -0
- package/docs/reference/interfaces/ITypeScriptToSchemaOptions.md +44 -0
- package/docs/reference/type-aliases/EmbeddedSchemaMode.md +5 -0
- package/docs/reference/variables/EmbeddedSchemaMode.md +19 -0
- package/locales/en.json +32 -1
- package/package.json +6 -5
- package/dist/es/models/IJsonSchema.js +0 -2
- package/dist/es/models/IJsonSchema.js.map +0 -1
- package/dist/es/models/IOpenApi.js +0 -2
- package/dist/es/models/IOpenApi.js.map +0 -1
- package/dist/es/models/IOpenApiExample.js +0 -4
- package/dist/es/models/IOpenApiExample.js.map +0 -1
- package/dist/es/models/IOpenApiHeader.js +0 -4
- package/dist/es/models/IOpenApiHeader.js.map +0 -1
- package/dist/es/models/IOpenApiPathMethod.js +0 -2
- package/dist/es/models/IOpenApiPathMethod.js.map +0 -1
- package/dist/es/models/IOpenApiResponse.js +0 -2
- package/dist/es/models/IOpenApiResponse.js.map +0 -1
- package/dist/es/models/IOpenApiSecurityScheme.js +0 -4
- package/dist/es/models/IOpenApiSecurityScheme.js.map +0 -1
- package/dist/es/models/IPackageJson.js +0 -4
- package/dist/es/models/IPackageJson.js.map +0 -1
- package/dist/es/models/jsonTypeName.js +0 -2
- package/dist/es/models/jsonTypeName.js.map +0 -1
- package/dist/es/utils/jsonSchemaHelper.js +0 -258
- package/dist/es/utils/jsonSchemaHelper.js.map +0 -1
- package/dist/es/utils/openApiHelper.js +0 -12
- package/dist/es/utils/openApiHelper.js.map +0 -1
- package/dist/types/models/IJsonSchema.d.ts +0 -5
- package/dist/types/models/IOpenApi.d.ts +0 -54
- package/dist/types/models/IOpenApiExample.d.ts +0 -13
- package/dist/types/models/IOpenApiHeader.d.ts +0 -19
- package/dist/types/models/IOpenApiPathMethod.d.ts +0 -65
- package/dist/types/models/IOpenApiResponse.d.ts +0 -32
- package/dist/types/models/IOpenApiSecurityScheme.d.ts +0 -25
- package/dist/types/models/IPackageJson.d.ts +0 -15
- package/dist/types/models/jsonTypeName.d.ts +0 -5
- package/dist/types/utils/jsonSchemaHelper.d.ts +0 -78
- package/dist/types/utils/openApiHelper.d.ts +0 -9
- package/docs/reference/classes/JsonSchemaHelper.md +0 -233
- package/docs/reference/classes/OpenApiHelper.md +0 -21
- package/docs/reference/interfaces/IOpenApi.md +0 -103
- package/docs/reference/interfaces/IOpenApiExample.md +0 -19
- package/docs/reference/interfaces/IOpenApiHeader.md +0 -31
- package/docs/reference/interfaces/IOpenApiPathMethod.md +0 -119
- package/docs/reference/interfaces/IOpenApiResponse.md +0 -35
- package/docs/reference/interfaces/IOpenApiSecurityScheme.md +0 -43
- package/docs/reference/interfaces/IPackageJson.md +0 -23
- package/docs/reference/type-aliases/IJsonSchema.md +0 -5
- package/docs/reference/type-aliases/JsonTypeName.md +0 -5
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
# Class: MappedTypeSchemaResolver
|
|
2
|
+
|
|
3
|
+
Static mapped-type schema transformation helpers.
|
|
4
|
+
|
|
5
|
+
## Constructors
|
|
6
|
+
|
|
7
|
+
### Constructor
|
|
8
|
+
|
|
9
|
+
> **new MappedTypeSchemaResolver**(): `MappedTypeSchemaResolver`
|
|
10
|
+
|
|
11
|
+
#### Returns
|
|
12
|
+
|
|
13
|
+
`MappedTypeSchemaResolver`
|
|
14
|
+
|
|
15
|
+
## Methods
|
|
16
|
+
|
|
17
|
+
### resolveMappedTypePropertyEntries() {#resolvemappedtypepropertyentries}
|
|
18
|
+
|
|
19
|
+
> `static` **resolveMappedTypePropertyEntries**(`context`, `typeNode`, `mappedKeys`, `mappedTypeParameterName`): `object`[] \| `undefined`
|
|
20
|
+
|
|
21
|
+
Resolve mapped type output keys, including remapped key names via `as`.
|
|
22
|
+
|
|
23
|
+
#### Parameters
|
|
24
|
+
|
|
25
|
+
##### context
|
|
26
|
+
|
|
27
|
+
[`ITypeScriptToSchemaContext`](../interfaces/ITypeScriptToSchemaContext.md)
|
|
28
|
+
|
|
29
|
+
The generation context.
|
|
30
|
+
|
|
31
|
+
##### typeNode
|
|
32
|
+
|
|
33
|
+
`MappedTypeNode`
|
|
34
|
+
|
|
35
|
+
The mapped type node.
|
|
36
|
+
|
|
37
|
+
##### mappedKeys
|
|
38
|
+
|
|
39
|
+
`string`[]
|
|
40
|
+
|
|
41
|
+
The resolved source keys from the mapped type constraint.
|
|
42
|
+
|
|
43
|
+
##### mappedTypeParameterName
|
|
44
|
+
|
|
45
|
+
`string`
|
|
46
|
+
|
|
47
|
+
The mapped type parameter identifier.
|
|
48
|
+
|
|
49
|
+
#### Returns
|
|
50
|
+
|
|
51
|
+
`object`[] \| `undefined`
|
|
52
|
+
|
|
53
|
+
The resolved source-to-output mapped key entries.
|
|
54
|
+
|
|
55
|
+
***
|
|
56
|
+
|
|
57
|
+
### resolveMappedTypeRemappedKey() {#resolvemappedtyperemappedkey}
|
|
58
|
+
|
|
59
|
+
> `static` **resolveMappedTypeRemappedKey**(`context`, `nameTypeNode`, `sourceKey`, `mappedTypeParameterName`): `string` \| `null` \| `undefined`
|
|
60
|
+
|
|
61
|
+
Resolve a remapped mapped-type key expression for a concrete source key.
|
|
62
|
+
|
|
63
|
+
#### Parameters
|
|
64
|
+
|
|
65
|
+
##### context
|
|
66
|
+
|
|
67
|
+
[`ITypeScriptToSchemaContext`](../interfaces/ITypeScriptToSchemaContext.md)
|
|
68
|
+
|
|
69
|
+
The generation context.
|
|
70
|
+
|
|
71
|
+
##### nameTypeNode
|
|
72
|
+
|
|
73
|
+
`TypeNode`
|
|
74
|
+
|
|
75
|
+
The mapped type name remapping expression node.
|
|
76
|
+
|
|
77
|
+
##### sourceKey
|
|
78
|
+
|
|
79
|
+
`string`
|
|
80
|
+
|
|
81
|
+
The concrete source key currently being evaluated.
|
|
82
|
+
|
|
83
|
+
##### mappedTypeParameterName
|
|
84
|
+
|
|
85
|
+
`string`
|
|
86
|
+
|
|
87
|
+
The mapped type parameter identifier.
|
|
88
|
+
|
|
89
|
+
#### Returns
|
|
90
|
+
|
|
91
|
+
`string` \| `null` \| `undefined`
|
|
92
|
+
|
|
93
|
+
The remapped key, null when excluded via never, or undefined when unresolved.
|
|
94
|
+
|
|
95
|
+
***
|
|
96
|
+
|
|
97
|
+
### evaluateMappedKeyExtendsCondition() {#evaluatemappedkeyextendscondition}
|
|
98
|
+
|
|
99
|
+
> `static` **evaluateMappedKeyExtendsCondition**(`context`, `sourceKey`, `extendsTypeNode`): `boolean` \| `undefined`
|
|
100
|
+
|
|
101
|
+
Evaluate whether a concrete mapped key satisfies an `extends` condition.
|
|
102
|
+
|
|
103
|
+
#### Parameters
|
|
104
|
+
|
|
105
|
+
##### context
|
|
106
|
+
|
|
107
|
+
[`ITypeScriptToSchemaContext`](../interfaces/ITypeScriptToSchemaContext.md)
|
|
108
|
+
|
|
109
|
+
The generation context.
|
|
110
|
+
|
|
111
|
+
##### sourceKey
|
|
112
|
+
|
|
113
|
+
`string`
|
|
114
|
+
|
|
115
|
+
The concrete source key being evaluated.
|
|
116
|
+
|
|
117
|
+
##### extendsTypeNode
|
|
118
|
+
|
|
119
|
+
`TypeNode`
|
|
120
|
+
|
|
121
|
+
The extends condition type node.
|
|
122
|
+
|
|
123
|
+
#### Returns
|
|
124
|
+
|
|
125
|
+
`boolean` \| `undefined`
|
|
126
|
+
|
|
127
|
+
True when the key satisfies the condition, false when it does not, otherwise undefined.
|
|
128
|
+
|
|
129
|
+
***
|
|
130
|
+
|
|
131
|
+
### buildMappedTypeFallbackSchema() {#buildmappedtypefallbackschema}
|
|
132
|
+
|
|
133
|
+
> `static` **buildMappedTypeFallbackSchema**(`context`, `typeNode`, `mappedKeys`, `mappedTypeParameterName`, `sourceObjectSchema?`): `IJsonSchema`
|
|
134
|
+
|
|
135
|
+
Build a conservative fallback schema for mapped types whose key remapping cannot be resolved.
|
|
136
|
+
|
|
137
|
+
#### Parameters
|
|
138
|
+
|
|
139
|
+
##### context
|
|
140
|
+
|
|
141
|
+
[`ITypeScriptToSchemaContext`](../interfaces/ITypeScriptToSchemaContext.md)
|
|
142
|
+
|
|
143
|
+
The generation context.
|
|
144
|
+
|
|
145
|
+
##### typeNode
|
|
146
|
+
|
|
147
|
+
`MappedTypeNode`
|
|
148
|
+
|
|
149
|
+
The mapped type node.
|
|
150
|
+
|
|
151
|
+
##### mappedKeys
|
|
152
|
+
|
|
153
|
+
`string`[]
|
|
154
|
+
|
|
155
|
+
The resolved source keys from the mapped type constraint.
|
|
156
|
+
|
|
157
|
+
##### mappedTypeParameterName
|
|
158
|
+
|
|
159
|
+
`string`
|
|
160
|
+
|
|
161
|
+
The mapped type parameter identifier.
|
|
162
|
+
|
|
163
|
+
##### sourceObjectSchema?
|
|
164
|
+
|
|
165
|
+
`IJsonSchema`
|
|
166
|
+
|
|
167
|
+
The optional source object schema for property lookups.
|
|
168
|
+
|
|
169
|
+
#### Returns
|
|
170
|
+
|
|
171
|
+
`IJsonSchema`
|
|
172
|
+
|
|
173
|
+
The fallback mapped type schema.
|
|
174
|
+
|
|
175
|
+
***
|
|
176
|
+
|
|
177
|
+
### buildMappedTypeFallbackAdditionalProperties() {#buildmappedtypefallbackadditionalproperties}
|
|
178
|
+
|
|
179
|
+
> `static` **buildMappedTypeFallbackAdditionalProperties**(`context`, `typeNode`, `mappedKeys`, `mappedTypeParameterName`, `sourceObjectSchema?`): `IJsonSchema` \| `undefined`
|
|
180
|
+
|
|
181
|
+
Build fallback additionalProperties for unresolved mapped key remapping.
|
|
182
|
+
|
|
183
|
+
#### Parameters
|
|
184
|
+
|
|
185
|
+
##### context
|
|
186
|
+
|
|
187
|
+
[`ITypeScriptToSchemaContext`](../interfaces/ITypeScriptToSchemaContext.md)
|
|
188
|
+
|
|
189
|
+
The generation context.
|
|
190
|
+
|
|
191
|
+
##### typeNode
|
|
192
|
+
|
|
193
|
+
`MappedTypeNode`
|
|
194
|
+
|
|
195
|
+
The mapped type node.
|
|
196
|
+
|
|
197
|
+
##### mappedKeys
|
|
198
|
+
|
|
199
|
+
`string`[]
|
|
200
|
+
|
|
201
|
+
The resolved source keys from the mapped type constraint.
|
|
202
|
+
|
|
203
|
+
##### mappedTypeParameterName
|
|
204
|
+
|
|
205
|
+
`string`
|
|
206
|
+
|
|
207
|
+
The mapped type parameter identifier.
|
|
208
|
+
|
|
209
|
+
##### sourceObjectSchema?
|
|
210
|
+
|
|
211
|
+
`IJsonSchema`
|
|
212
|
+
|
|
213
|
+
The optional source object schema for property lookups.
|
|
214
|
+
|
|
215
|
+
#### Returns
|
|
216
|
+
|
|
217
|
+
`IJsonSchema` \| `undefined`
|
|
218
|
+
|
|
219
|
+
The fallback additionalProperties schema.
|
|
220
|
+
|
|
221
|
+
***
|
|
222
|
+
|
|
223
|
+
### mergeMappedTypePropertySchemas() {#mergemappedtypepropertyschemas}
|
|
224
|
+
|
|
225
|
+
> `static` **mergeMappedTypePropertySchemas**(`existingSchema`, `nextSchema`): `IJsonSchema`
|
|
226
|
+
|
|
227
|
+
Merge mapped property schemas when multiple source keys remap to the same output key.
|
|
228
|
+
|
|
229
|
+
#### Parameters
|
|
230
|
+
|
|
231
|
+
##### existingSchema
|
|
232
|
+
|
|
233
|
+
`IJsonSchema`
|
|
234
|
+
|
|
235
|
+
The existing schema already assigned to the mapped key.
|
|
236
|
+
|
|
237
|
+
##### nextSchema
|
|
238
|
+
|
|
239
|
+
`IJsonSchema`
|
|
240
|
+
|
|
241
|
+
The next schema to merge into the mapped key.
|
|
242
|
+
|
|
243
|
+
#### Returns
|
|
244
|
+
|
|
245
|
+
`IJsonSchema`
|
|
246
|
+
|
|
247
|
+
The merged schema.
|
|
248
|
+
|
|
249
|
+
***
|
|
250
|
+
|
|
251
|
+
### resolveMappedTypeSourceRequiredPropertyKeys() {#resolvemappedtypesourcerequiredpropertykeys}
|
|
252
|
+
|
|
253
|
+
> `static` **resolveMappedTypeSourceRequiredPropertyKeys**(`mappedEntries`, `sourceObjectSchema`): `string`[] \| `undefined`
|
|
254
|
+
|
|
255
|
+
Resolve required remapped keys from the source object's required key set.
|
|
256
|
+
|
|
257
|
+
#### Parameters
|
|
258
|
+
|
|
259
|
+
##### mappedEntries
|
|
260
|
+
|
|
261
|
+
`object`[]
|
|
262
|
+
|
|
263
|
+
The source-to-output mapped key entries.
|
|
264
|
+
|
|
265
|
+
##### sourceObjectSchema
|
|
266
|
+
|
|
267
|
+
`IJsonSchema`
|
|
268
|
+
|
|
269
|
+
The source object schema containing required keys.
|
|
270
|
+
|
|
271
|
+
#### Returns
|
|
272
|
+
|
|
273
|
+
`string`[] \| `undefined`
|
|
274
|
+
|
|
275
|
+
The required output keys.
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# Class: ObjectTransformer
|
|
2
|
+
|
|
3
|
+
Applies common object-schema transformations used by the builder.
|
|
4
|
+
|
|
5
|
+
## Constructors
|
|
6
|
+
|
|
7
|
+
### Constructor
|
|
8
|
+
|
|
9
|
+
> **new ObjectTransformer**(): `ObjectTransformer`
|
|
10
|
+
|
|
11
|
+
#### Returns
|
|
12
|
+
|
|
13
|
+
`ObjectTransformer`
|
|
14
|
+
|
|
15
|
+
## Methods
|
|
16
|
+
|
|
17
|
+
### resolvePropertySchemaFromObjectSchema() {#resolvepropertyschemafromobjectschema}
|
|
18
|
+
|
|
19
|
+
> `static` **resolvePropertySchemaFromObjectSchema**(`baseSchema`, `propertyKey`): `IJsonSchema` \| `undefined`
|
|
20
|
+
|
|
21
|
+
Resolve a property schema from an object schema by property key.
|
|
22
|
+
|
|
23
|
+
#### Parameters
|
|
24
|
+
|
|
25
|
+
##### baseSchema
|
|
26
|
+
|
|
27
|
+
`IJsonSchema`
|
|
28
|
+
|
|
29
|
+
The source object schema.
|
|
30
|
+
|
|
31
|
+
##### propertyKey
|
|
32
|
+
|
|
33
|
+
`string`
|
|
34
|
+
|
|
35
|
+
The property key to resolve.
|
|
36
|
+
|
|
37
|
+
#### Returns
|
|
38
|
+
|
|
39
|
+
`IJsonSchema` \| `undefined`
|
|
40
|
+
|
|
41
|
+
The resolved property schema.
|
|
42
|
+
|
|
43
|
+
***
|
|
44
|
+
|
|
45
|
+
### omitKeysFromObjectSchema() {#omitkeysfromobjectschema}
|
|
46
|
+
|
|
47
|
+
> `static` **omitKeysFromObjectSchema**(`baseSchema`, `omittedKeys`): `IJsonSchema`
|
|
48
|
+
|
|
49
|
+
Remove keys from an object schema.
|
|
50
|
+
|
|
51
|
+
#### Parameters
|
|
52
|
+
|
|
53
|
+
##### baseSchema
|
|
54
|
+
|
|
55
|
+
`IJsonSchema`
|
|
56
|
+
|
|
57
|
+
The source object schema.
|
|
58
|
+
|
|
59
|
+
##### omittedKeys
|
|
60
|
+
|
|
61
|
+
`string`[]
|
|
62
|
+
|
|
63
|
+
The keys to remove.
|
|
64
|
+
|
|
65
|
+
#### Returns
|
|
66
|
+
|
|
67
|
+
`IJsonSchema`
|
|
68
|
+
|
|
69
|
+
The transformed object schema.
|
|
70
|
+
|
|
71
|
+
***
|
|
72
|
+
|
|
73
|
+
### pickKeysFromObjectSchema() {#pickkeysfromobjectschema}
|
|
74
|
+
|
|
75
|
+
> `static` **pickKeysFromObjectSchema**(`baseSchema`, `pickedKeys`): `IJsonSchema`
|
|
76
|
+
|
|
77
|
+
Keep only keys from an object schema.
|
|
78
|
+
|
|
79
|
+
#### Parameters
|
|
80
|
+
|
|
81
|
+
##### baseSchema
|
|
82
|
+
|
|
83
|
+
`IJsonSchema`
|
|
84
|
+
|
|
85
|
+
The source object schema.
|
|
86
|
+
|
|
87
|
+
##### pickedKeys
|
|
88
|
+
|
|
89
|
+
`string`[]
|
|
90
|
+
|
|
91
|
+
The keys to keep.
|
|
92
|
+
|
|
93
|
+
#### Returns
|
|
94
|
+
|
|
95
|
+
`IJsonSchema`
|
|
96
|
+
|
|
97
|
+
The transformed object schema.
|
|
98
|
+
|
|
99
|
+
***
|
|
100
|
+
|
|
101
|
+
### normalizeSchemaDescriptions() {#normalizeschemadescriptions}
|
|
102
|
+
|
|
103
|
+
> `static` **normalizeSchemaDescriptions**(`schema`): `IJsonSchema`
|
|
104
|
+
|
|
105
|
+
Normalize schema description whitespace while preserving intentional line breaks.
|
|
106
|
+
|
|
107
|
+
#### Parameters
|
|
108
|
+
|
|
109
|
+
##### schema
|
|
110
|
+
|
|
111
|
+
`IJsonSchema`
|
|
112
|
+
|
|
113
|
+
The schema to normalize.
|
|
114
|
+
|
|
115
|
+
#### Returns
|
|
116
|
+
|
|
117
|
+
`IJsonSchema`
|
|
118
|
+
|
|
119
|
+
The normalized schema.
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Class: RegEx
|
|
2
|
+
|
|
3
|
+
Utility methods for pattern matching and regex construction.
|
|
4
|
+
|
|
5
|
+
## Constructors
|
|
6
|
+
|
|
7
|
+
### Constructor
|
|
8
|
+
|
|
9
|
+
> **new RegEx**(): `RegEx`
|
|
10
|
+
|
|
11
|
+
#### Returns
|
|
12
|
+
|
|
13
|
+
`RegEx`
|
|
14
|
+
|
|
15
|
+
## Methods
|
|
16
|
+
|
|
17
|
+
### isReferencePatternMatch() {#isreferencepatternmatch}
|
|
18
|
+
|
|
19
|
+
> `static` **isReferencePatternMatch**(`pattern`, `packageName`, `typeName`, `schemaTitle`): `boolean`
|
|
20
|
+
|
|
21
|
+
Determine whether a reference mapping pattern matches an external reference.
|
|
22
|
+
|
|
23
|
+
#### Parameters
|
|
24
|
+
|
|
25
|
+
##### pattern
|
|
26
|
+
|
|
27
|
+
`string`
|
|
28
|
+
|
|
29
|
+
The mapping pattern.
|
|
30
|
+
|
|
31
|
+
##### packageName
|
|
32
|
+
|
|
33
|
+
`string`
|
|
34
|
+
|
|
35
|
+
The external package name.
|
|
36
|
+
|
|
37
|
+
##### typeName
|
|
38
|
+
|
|
39
|
+
`string`
|
|
40
|
+
|
|
41
|
+
The imported type name.
|
|
42
|
+
|
|
43
|
+
##### schemaTitle
|
|
44
|
+
|
|
45
|
+
`string`
|
|
46
|
+
|
|
47
|
+
The derived schema title.
|
|
48
|
+
|
|
49
|
+
#### Returns
|
|
50
|
+
|
|
51
|
+
`boolean`
|
|
52
|
+
|
|
53
|
+
True if matched.
|
|
54
|
+
|
|
55
|
+
***
|
|
56
|
+
|
|
57
|
+
### applyReferencePatternReplacement() {#applyreferencepatternreplacement}
|
|
58
|
+
|
|
59
|
+
> `static` **applyReferencePatternReplacement**(`pattern`, `replacement`, `packageName`, `typeName`, `schemaTitle`): `string` \| `undefined`
|
|
60
|
+
|
|
61
|
+
Apply a reference mapping replacement to the first matching candidate.
|
|
62
|
+
|
|
63
|
+
#### Parameters
|
|
64
|
+
|
|
65
|
+
##### pattern
|
|
66
|
+
|
|
67
|
+
`string`
|
|
68
|
+
|
|
69
|
+
The mapping pattern.
|
|
70
|
+
|
|
71
|
+
##### replacement
|
|
72
|
+
|
|
73
|
+
`string`
|
|
74
|
+
|
|
75
|
+
The replacement template.
|
|
76
|
+
|
|
77
|
+
##### packageName
|
|
78
|
+
|
|
79
|
+
`string`
|
|
80
|
+
|
|
81
|
+
The external package name.
|
|
82
|
+
|
|
83
|
+
##### typeName
|
|
84
|
+
|
|
85
|
+
`string`
|
|
86
|
+
|
|
87
|
+
The imported type name.
|
|
88
|
+
|
|
89
|
+
##### schemaTitle
|
|
90
|
+
|
|
91
|
+
`string`
|
|
92
|
+
|
|
93
|
+
The derived schema title.
|
|
94
|
+
|
|
95
|
+
#### Returns
|
|
96
|
+
|
|
97
|
+
`string` \| `undefined`
|
|
98
|
+
|
|
99
|
+
The replaced value if a candidate matches.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Class: Resolver
|
|
2
|
+
|
|
3
|
+
Resolve TypeScript type declarations from package names.
|
|
4
|
+
|
|
5
|
+
## Constructors
|
|
6
|
+
|
|
7
|
+
### Constructor
|
|
8
|
+
|
|
9
|
+
> **new Resolver**(): `Resolver`
|
|
10
|
+
|
|
11
|
+
#### Returns
|
|
12
|
+
|
|
13
|
+
`Resolver`
|
|
14
|
+
|
|
15
|
+
## Methods
|
|
16
|
+
|
|
17
|
+
### resolveTypeDeclarationAst() {#resolvetypedeclarationast}
|
|
18
|
+
|
|
19
|
+
> `static` **resolveTypeDeclarationAst**(`packageName`, `typeName`, `containingFilePath?`): \{ `sourceFile`: `SourceFile`; `declaration`: `InterfaceDeclaration` \| `TypeAliasDeclaration`; \} \| `undefined`
|
|
20
|
+
|
|
21
|
+
Resolve a type declaration AST from a package and type name.
|
|
22
|
+
|
|
23
|
+
#### Parameters
|
|
24
|
+
|
|
25
|
+
##### packageName
|
|
26
|
+
|
|
27
|
+
`string`
|
|
28
|
+
|
|
29
|
+
The package to inspect.
|
|
30
|
+
|
|
31
|
+
##### typeName
|
|
32
|
+
|
|
33
|
+
`string`
|
|
34
|
+
|
|
35
|
+
The type to resolve.
|
|
36
|
+
|
|
37
|
+
##### containingFilePath?
|
|
38
|
+
|
|
39
|
+
`string`
|
|
40
|
+
|
|
41
|
+
An optional source file path to use as the starting point for
|
|
42
|
+
package resolution. When provided, TypeScript module resolution walks up from that file's
|
|
43
|
+
directory, which allows transitive dependencies installed alongside the source file (e.g.
|
|
44
|
+
in a sub-directory node_modules) to be found even when they are not reachable from the
|
|
45
|
+
current working directory. The path is normalised to absolute before use;
|
|
46
|
+
falls back to process.cwd() when omitted.
|
|
47
|
+
|
|
48
|
+
#### Returns
|
|
49
|
+
|
|
50
|
+
\{ `sourceFile`: `SourceFile`; `declaration`: `InterfaceDeclaration` \| `TypeAliasDeclaration`; \} \| `undefined`
|
|
51
|
+
|
|
52
|
+
The resolved declaration AST.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Class: TemplateLiteralPatternBuilder
|
|
2
|
+
|
|
3
|
+
Builds regex patterns for TypeScript template literal types.
|
|
4
|
+
|
|
5
|
+
## Constructors
|
|
6
|
+
|
|
7
|
+
### Constructor
|
|
8
|
+
|
|
9
|
+
> **new TemplateLiteralPatternBuilder**(): `TemplateLiteralPatternBuilder`
|
|
10
|
+
|
|
11
|
+
#### Returns
|
|
12
|
+
|
|
13
|
+
`TemplateLiteralPatternBuilder`
|
|
14
|
+
|
|
15
|
+
## Methods
|
|
16
|
+
|
|
17
|
+
### buildTemplateLiteralPattern() {#buildtemplateliteralpattern}
|
|
18
|
+
|
|
19
|
+
> `static` **buildTemplateLiteralPattern**(`typeNode`): `string` \| `undefined`
|
|
20
|
+
|
|
21
|
+
Build a regular-expression pattern for a template literal type.
|
|
22
|
+
|
|
23
|
+
#### Parameters
|
|
24
|
+
|
|
25
|
+
##### typeNode
|
|
26
|
+
|
|
27
|
+
`TemplateLiteralTypeNode`
|
|
28
|
+
|
|
29
|
+
The template literal type node.
|
|
30
|
+
|
|
31
|
+
#### Returns
|
|
32
|
+
|
|
33
|
+
`string` \| `undefined`
|
|
34
|
+
|
|
35
|
+
The regex pattern, or undefined if a safe pattern cannot be derived.
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Class: TypeScriptToSchema
|
|
2
|
+
|
|
3
|
+
Class for converting TypeScript types to JSON Schema.
|
|
4
|
+
|
|
5
|
+
## Constructors
|
|
6
|
+
|
|
7
|
+
### Constructor
|
|
8
|
+
|
|
9
|
+
> **new TypeScriptToSchema**(): `TypeScriptToSchema`
|
|
10
|
+
|
|
11
|
+
#### Returns
|
|
12
|
+
|
|
13
|
+
`TypeScriptToSchema`
|
|
14
|
+
|
|
15
|
+
## Methods
|
|
16
|
+
|
|
17
|
+
### generateSchema() {#generateschema}
|
|
18
|
+
|
|
19
|
+
> **generateSchema**(`namespace`, `packageName`, `schemas`, `sourceFileOrTypeName`, `options?`): `Promise`\<\{\[`id`: `string`\]: `IJsonSchema`; \}\>
|
|
20
|
+
|
|
21
|
+
Generates a JSON schema from a TypeScript source file or type name.
|
|
22
|
+
|
|
23
|
+
#### Parameters
|
|
24
|
+
|
|
25
|
+
##### namespace
|
|
26
|
+
|
|
27
|
+
`string`
|
|
28
|
+
|
|
29
|
+
The schema namespace.
|
|
30
|
+
|
|
31
|
+
##### packageName
|
|
32
|
+
|
|
33
|
+
`string`
|
|
34
|
+
|
|
35
|
+
The package name.
|
|
36
|
+
|
|
37
|
+
##### schemas
|
|
38
|
+
|
|
39
|
+
The package schema map.
|
|
40
|
+
|
|
41
|
+
##### sourceFileOrTypeName
|
|
42
|
+
|
|
43
|
+
`string`
|
|
44
|
+
|
|
45
|
+
The source file to process or type name to resolve.
|
|
46
|
+
|
|
47
|
+
##### options?
|
|
48
|
+
|
|
49
|
+
[`ITypeScriptToSchemaOptions`](../interfaces/ITypeScriptToSchemaOptions.md)
|
|
50
|
+
|
|
51
|
+
Additional generation options.
|
|
52
|
+
|
|
53
|
+
#### Returns
|
|
54
|
+
|
|
55
|
+
`Promise`\<\{\[`id`: `string`\]: `IJsonSchema`; \}\>
|
|
56
|
+
|
|
57
|
+
The generated JSON schemas indexed by title.
|
|
58
|
+
|
|
59
|
+
***
|
|
60
|
+
|
|
61
|
+
### isDiagnosticFromPackage() {#isdiagnosticfrompackage}
|
|
62
|
+
|
|
63
|
+
> **isDiagnosticFromPackage**(`path`, `fileName`, `packageName`): `boolean`
|
|
64
|
+
|
|
65
|
+
Determine if a diagnostic originates from a specific package.
|
|
66
|
+
|
|
67
|
+
#### Parameters
|
|
68
|
+
|
|
69
|
+
##### path
|
|
70
|
+
|
|
71
|
+
`string`
|
|
72
|
+
|
|
73
|
+
The schema or source path associated with the diagnostic.
|
|
74
|
+
|
|
75
|
+
##### fileName
|
|
76
|
+
|
|
77
|
+
`string` \| `undefined`
|
|
78
|
+
|
|
79
|
+
The source filename associated with the diagnostic.
|
|
80
|
+
|
|
81
|
+
##### packageName
|
|
82
|
+
|
|
83
|
+
`string`
|
|
84
|
+
|
|
85
|
+
The package name to check, e.g. jose.
|
|
86
|
+
|
|
87
|
+
#### Returns
|
|
88
|
+
|
|
89
|
+
`boolean`
|
|
90
|
+
|
|
91
|
+
True if the diagnostic originated from the package.
|