@twin.org/tools-core 0.0.3-next.15 → 0.0.3-next.17

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 (132) hide show
  1. package/dist/es/index.js +20 -11
  2. package/dist/es/index.js.map +1 -1
  3. package/dist/es/models/ITypeScriptToSchemaContext.js +2 -0
  4. package/dist/es/models/ITypeScriptToSchemaContext.js.map +1 -0
  5. package/dist/es/models/ITypeScriptToSchemaDiagnostics.js +4 -0
  6. package/dist/es/models/ITypeScriptToSchemaDiagnostics.js.map +1 -0
  7. package/dist/es/models/ITypeScriptToSchemaOptions.js +4 -0
  8. package/dist/es/models/ITypeScriptToSchemaOptions.js.map +1 -0
  9. package/dist/es/utils/constants.js +43 -0
  10. package/dist/es/utils/constants.js.map +1 -0
  11. package/dist/es/utils/diagnosticReporter.js +32 -0
  12. package/dist/es/utils/diagnosticReporter.js.map +1 -0
  13. package/dist/es/utils/disallowedTypeGuard.js +151 -0
  14. package/dist/es/utils/disallowedTypeGuard.js.map +1 -0
  15. package/dist/es/utils/enum.js +152 -0
  16. package/dist/es/utils/enum.js.map +1 -0
  17. package/dist/es/utils/fileUtils.js +130 -0
  18. package/dist/es/utils/fileUtils.js.map +1 -0
  19. package/dist/es/utils/importTypeQuerySchemaResolver.js +328 -0
  20. package/dist/es/utils/importTypeQuerySchemaResolver.js.map +1 -0
  21. package/dist/es/utils/indexSignaturePatternResolver.js +94 -0
  22. package/dist/es/utils/indexSignaturePatternResolver.js.map +1 -0
  23. package/dist/es/utils/intersectionSchemaMerger.js +85 -0
  24. package/dist/es/utils/intersectionSchemaMerger.js.map +1 -0
  25. package/dist/es/utils/jsonSchemaBuilder.js +3269 -0
  26. package/dist/es/utils/jsonSchemaBuilder.js.map +1 -0
  27. package/dist/es/utils/mappedTypeSchemaResolver.js +231 -0
  28. package/dist/es/utils/mappedTypeSchemaResolver.js.map +1 -0
  29. package/dist/es/utils/objectTransformer.js +162 -0
  30. package/dist/es/utils/objectTransformer.js.map +1 -0
  31. package/dist/es/utils/regEx.js +128 -0
  32. package/dist/es/utils/regEx.js.map +1 -0
  33. package/dist/es/utils/resolver.js +164 -0
  34. package/dist/es/utils/resolver.js.map +1 -0
  35. package/dist/es/utils/templateLiteralPatternBuilder.js +94 -0
  36. package/dist/es/utils/templateLiteralPatternBuilder.js.map +1 -0
  37. package/dist/es/utils/typeScriptToSchema.js +102 -0
  38. package/dist/es/utils/typeScriptToSchema.js.map +1 -0
  39. package/dist/es/utils/utility.js +134 -0
  40. package/dist/es/utils/utility.js.map +1 -0
  41. package/dist/es/utils/utilityTypeSchemaMapper.js +412 -0
  42. package/dist/es/utils/utilityTypeSchemaMapper.js.map +1 -0
  43. package/dist/types/index.d.ts +20 -11
  44. package/dist/types/models/ITypeScriptToSchemaContext.d.ts +64 -0
  45. package/dist/types/models/ITypeScriptToSchemaDiagnostics.d.ts +31 -0
  46. package/dist/types/models/ITypeScriptToSchemaOptions.d.ts +22 -0
  47. package/dist/types/utils/constants.d.ts +13 -0
  48. package/dist/types/utils/diagnosticReporter.d.ts +17 -0
  49. package/dist/types/utils/disallowedTypeGuard.d.ts +16 -0
  50. package/dist/types/utils/enum.d.ts +42 -0
  51. package/dist/types/utils/fileUtils.d.ts +66 -0
  52. package/dist/types/utils/importTypeQuerySchemaResolver.d.ts +52 -0
  53. package/dist/types/utils/indexSignaturePatternResolver.d.ts +21 -0
  54. package/dist/types/utils/intersectionSchemaMerger.d.ts +16 -0
  55. package/dist/types/utils/jsonSchemaBuilder.d.ts +729 -0
  56. package/dist/types/utils/mappedTypeSchemaResolver.d.ts +46 -0
  57. package/dist/types/utils/objectTransformer.d.ts +33 -0
  58. package/dist/types/utils/regEx.d.ts +24 -0
  59. package/dist/types/utils/resolver.d.ts +16 -0
  60. package/dist/types/utils/templateLiteralPatternBuilder.d.ts +12 -0
  61. package/dist/types/utils/typeScriptToSchema.d.ts +31 -0
  62. package/dist/types/utils/utility.d.ts +58 -0
  63. package/dist/types/utils/utilityTypeSchemaMapper.d.ts +92 -0
  64. package/docs/changelog.md +29 -1
  65. package/docs/examples.md +55 -148
  66. package/docs/reference/classes/Constants.md +29 -0
  67. package/docs/reference/classes/DiagnosticReporter.md +49 -0
  68. package/docs/reference/classes/DisallowedTypeGuard.md +35 -0
  69. package/docs/reference/classes/Enum.md +93 -0
  70. package/docs/reference/classes/FileUtils.md +237 -0
  71. package/docs/reference/classes/ImportTypeQuerySchemaResolver.md +87 -0
  72. package/docs/reference/classes/IndexSignaturePatternResolver.md +69 -0
  73. package/docs/reference/classes/IntersectionSchemaMerger.md +48 -0
  74. package/docs/reference/classes/JsonSchemaBuilder.md +2806 -0
  75. package/docs/reference/classes/MappedTypeSchemaResolver.md +211 -0
  76. package/docs/reference/classes/ObjectTransformer.md +119 -0
  77. package/docs/reference/classes/RegEx.md +99 -0
  78. package/docs/reference/classes/Resolver.md +41 -0
  79. package/docs/reference/classes/TemplateLiteralPatternBuilder.md +35 -0
  80. package/docs/reference/classes/TypeScriptToSchema.md +91 -0
  81. package/docs/reference/classes/Utility.md +164 -0
  82. package/docs/reference/classes/UtilityTypeSchemaMapper.md +341 -0
  83. package/docs/reference/index.md +20 -14
  84. package/docs/reference/interfaces/ITypeScriptToSchemaContext.md +113 -0
  85. package/docs/reference/interfaces/ITypeScriptToSchemaDiagnostics.md +55 -0
  86. package/docs/reference/interfaces/ITypeScriptToSchemaOptions.md +44 -0
  87. package/locales/en.json +30 -1
  88. package/package.json +3 -2
  89. package/dist/es/models/IJsonSchema.js +0 -2
  90. package/dist/es/models/IJsonSchema.js.map +0 -1
  91. package/dist/es/models/IOpenApi.js +0 -2
  92. package/dist/es/models/IOpenApi.js.map +0 -1
  93. package/dist/es/models/IOpenApiExample.js +0 -4
  94. package/dist/es/models/IOpenApiExample.js.map +0 -1
  95. package/dist/es/models/IOpenApiHeader.js +0 -4
  96. package/dist/es/models/IOpenApiHeader.js.map +0 -1
  97. package/dist/es/models/IOpenApiPathMethod.js +0 -2
  98. package/dist/es/models/IOpenApiPathMethod.js.map +0 -1
  99. package/dist/es/models/IOpenApiResponse.js +0 -2
  100. package/dist/es/models/IOpenApiResponse.js.map +0 -1
  101. package/dist/es/models/IOpenApiSecurityScheme.js +0 -4
  102. package/dist/es/models/IOpenApiSecurityScheme.js.map +0 -1
  103. package/dist/es/models/IPackageJson.js +0 -4
  104. package/dist/es/models/IPackageJson.js.map +0 -1
  105. package/dist/es/models/jsonTypeName.js +0 -2
  106. package/dist/es/models/jsonTypeName.js.map +0 -1
  107. package/dist/es/utils/jsonSchemaHelper.js +0 -282
  108. package/dist/es/utils/jsonSchemaHelper.js.map +0 -1
  109. package/dist/es/utils/openApiHelper.js +0 -12
  110. package/dist/es/utils/openApiHelper.js.map +0 -1
  111. package/dist/types/models/IJsonSchema.d.ts +0 -5
  112. package/dist/types/models/IOpenApi.d.ts +0 -54
  113. package/dist/types/models/IOpenApiExample.d.ts +0 -13
  114. package/dist/types/models/IOpenApiHeader.d.ts +0 -19
  115. package/dist/types/models/IOpenApiPathMethod.d.ts +0 -65
  116. package/dist/types/models/IOpenApiResponse.d.ts +0 -32
  117. package/dist/types/models/IOpenApiSecurityScheme.d.ts +0 -25
  118. package/dist/types/models/IPackageJson.d.ts +0 -15
  119. package/dist/types/models/jsonTypeName.d.ts +0 -5
  120. package/dist/types/utils/jsonSchemaHelper.d.ts +0 -78
  121. package/dist/types/utils/openApiHelper.d.ts +0 -9
  122. package/docs/reference/classes/JsonSchemaHelper.md +0 -233
  123. package/docs/reference/classes/OpenApiHelper.md +0 -21
  124. package/docs/reference/interfaces/IOpenApi.md +0 -103
  125. package/docs/reference/interfaces/IOpenApiExample.md +0 -19
  126. package/docs/reference/interfaces/IOpenApiHeader.md +0 -31
  127. package/docs/reference/interfaces/IOpenApiPathMethod.md +0 -119
  128. package/docs/reference/interfaces/IOpenApiResponse.md +0 -35
  129. package/docs/reference/interfaces/IOpenApiSecurityScheme.md +0 -43
  130. package/docs/reference/interfaces/IPackageJson.md +0 -23
  131. package/docs/reference/type-aliases/IJsonSchema.md +0 -5
  132. package/docs/reference/type-aliases/JsonTypeName.md +0 -5
@@ -0,0 +1,164 @@
1
+ # Class: Utility
2
+
3
+ General-purpose utility methods for working with TypeScript AST nodes.
4
+
5
+ Enum-related helpers live in TypeScriptEnum.
6
+ Reference-mapping regex helpers live in TypeScriptRegEx.
7
+
8
+ ## Constructors
9
+
10
+ ### Constructor
11
+
12
+ > **new Utility**(): `Utility`
13
+
14
+ #### Returns
15
+
16
+ `Utility`
17
+
18
+ ## Methods
19
+
20
+ ### isTypeNameInput() {#istypenameinput}
21
+
22
+ > `static` **isTypeNameInput**(`value`): `boolean`
23
+
24
+ Determine whether an input value is a valid TypeScript type identifier.
25
+ An identifier must start with a letter, underscore, or dollar sign and contain only
26
+ alphanumerics, underscores, or dollar signs thereafter.
27
+
28
+ #### Parameters
29
+
30
+ ##### value
31
+
32
+ `string`
33
+
34
+ The value to inspect.
35
+
36
+ #### Returns
37
+
38
+ `boolean`
39
+
40
+ True if the value looks like a type name.
41
+
42
+ ***
43
+
44
+ ### extractTupleElementType() {#extracttupleelementtype}
45
+
46
+ > `static` **extractTupleElementType**(`element`): `TypeNode` \| `undefined`
47
+
48
+ Extract the inner type node from a named or rest tuple element.
49
+ Named tuple members and rest elements both wrap an inner type node; this unwraps them.
50
+ Plain type nodes are returned as-is.
51
+
52
+ #### Parameters
53
+
54
+ ##### element
55
+
56
+ `TypeNode`
57
+
58
+ The tuple element.
59
+
60
+ #### Returns
61
+
62
+ `TypeNode` \| `undefined`
63
+
64
+ The inner type node.
65
+
66
+ ***
67
+
68
+ ### getNodeJsDocDescription() {#getnodejsdocdescription}
69
+
70
+ > `static` **getNodeJsDocDescription**(`node`): `string` \| `undefined`
71
+
72
+ Extract the JSDoc description comment for an AST node.
73
+ Only top-level JSDoc block comments are considered; inline tags are ignored.
74
+
75
+ #### Parameters
76
+
77
+ ##### node
78
+
79
+ `Node`
80
+
81
+ The node to inspect.
82
+
83
+ #### Returns
84
+
85
+ `string` \| `undefined`
86
+
87
+ The trimmed description text, or undefined when absent.
88
+
89
+ ***
90
+
91
+ ### getJSDocTagCommentText() {#getjsdoctagcommenttext}
92
+
93
+ > `static` **getJSDocTagCommentText**(`jsDocTag`): `string` \| `undefined`
94
+
95
+ Convert a JSDoc tag's comment portion to a plain text string.
96
+ JSDoc tag comments may be plain strings or arrays of link/text parts.
97
+
98
+ #### Parameters
99
+
100
+ ##### jsDocTag
101
+
102
+ `JSDocTag`
103
+
104
+ The JSDoc tag.
105
+
106
+ #### Returns
107
+
108
+ `string` \| `undefined`
109
+
110
+ The comment text, or undefined when absent.
111
+
112
+ ***
113
+
114
+ ### getNodeTags() {#getnodetags}
115
+
116
+ > `static` **getNodeTags**(`node`, `tagName`): `object`
117
+
118
+ Read all custom JSDoc tags matching a tag name from a node and convert them to key/value pairs.
119
+ Each matching tag's comment must be in the form "key: value"; entries that do not follow this
120
+ convention are silently skipped.
121
+
122
+ #### Parameters
123
+
124
+ ##### node
125
+
126
+ `Node`
127
+
128
+ The node to inspect.
129
+
130
+ ##### tagName
131
+
132
+ `string`
133
+
134
+ The tag name to filter by (e.g., 'json-schema').
135
+
136
+ #### Returns
137
+
138
+ `object`
139
+
140
+ The extracted key/value pairs.
141
+
142
+ ***
143
+
144
+ ### parseTagValue() {#parsetagvalue}
145
+
146
+ > `static` **parseTagValue**(`value`): `unknown`
147
+
148
+ Parse a custom JSDoc tag value into JSON-compatible data.
149
+ Values that begin with a JSON token character ({, [, ", true, false, null) or look like a
150
+ number are parsed with JSON.parse. All other values are returned as plain strings.
151
+
152
+ #### Parameters
153
+
154
+ ##### value
155
+
156
+ `string`
157
+
158
+ The raw value text.
159
+
160
+ #### Returns
161
+
162
+ `unknown`
163
+
164
+ The parsed value.
@@ -0,0 +1,341 @@
1
+ # Class: UtilityTypeSchemaMapper
2
+
3
+ Static utility-type schema mapping helpers.
4
+
5
+ ## Constructors
6
+
7
+ ### Constructor
8
+
9
+ > **new UtilityTypeSchemaMapper**(): `UtilityTypeSchemaMapper`
10
+
11
+ #### Returns
12
+
13
+ `UtilityTypeSchemaMapper`
14
+
15
+ ## Methods
16
+
17
+ ### mapPartialUtilityType() {#mappartialutilitytype}
18
+
19
+ > `static` **mapPartialUtilityType**(`context`, `typeNode`, `resolveUtilityBaseObjectSchema`): `IJsonSchema` \| `undefined`
20
+
21
+ Map Partial<T> to an object schema with no required properties.
22
+
23
+ #### Parameters
24
+
25
+ ##### context
26
+
27
+ [`ITypeScriptToSchemaContext`](../interfaces/ITypeScriptToSchemaContext.md)
28
+
29
+ The generation context.
30
+
31
+ ##### typeNode
32
+
33
+ `TypeReferenceNode`
34
+
35
+ The Partial type reference.
36
+
37
+ ##### resolveUtilityBaseObjectSchema
38
+
39
+ (`context`, `baseTypeNode`) => `IJsonSchema` \| `undefined`
40
+
41
+ Callback to resolve base object schemas.
42
+
43
+ #### Returns
44
+
45
+ `IJsonSchema` \| `undefined`
46
+
47
+ The mapped schema.
48
+
49
+ ***
50
+
51
+ ### mapRequiredUtilityType() {#maprequiredutilitytype}
52
+
53
+ > `static` **mapRequiredUtilityType**(`context`, `typeNode`, `resolveUtilityBaseObjectSchema`): `IJsonSchema` \| `undefined`
54
+
55
+ Map Required<T> to an object schema with all properties required.
56
+
57
+ #### Parameters
58
+
59
+ ##### context
60
+
61
+ [`ITypeScriptToSchemaContext`](../interfaces/ITypeScriptToSchemaContext.md)
62
+
63
+ The generation context.
64
+
65
+ ##### typeNode
66
+
67
+ `TypeReferenceNode`
68
+
69
+ The Required type reference.
70
+
71
+ ##### resolveUtilityBaseObjectSchema
72
+
73
+ (`context`, `baseTypeNode`) => `IJsonSchema` \| `undefined`
74
+
75
+ Callback to resolve base object schemas.
76
+
77
+ #### Returns
78
+
79
+ `IJsonSchema` \| `undefined`
80
+
81
+ The mapped schema.
82
+
83
+ ***
84
+
85
+ ### mapPickUtilityType() {#mappickutilitytype}
86
+
87
+ > `static` **mapPickUtilityType**(`context`, `typeNode`, `resolveUtilityBaseObjectSchema`, `extractUtilityTypeKeys`): `IJsonSchema` \| `undefined`
88
+
89
+ Map Pick<T, K> to an object schema with selected keys preserved.
90
+
91
+ #### Parameters
92
+
93
+ ##### context
94
+
95
+ [`ITypeScriptToSchemaContext`](../interfaces/ITypeScriptToSchemaContext.md)
96
+
97
+ ##### typeNode
98
+
99
+ `TypeReferenceNode`
100
+
101
+ ##### resolveUtilityBaseObjectSchema
102
+
103
+ (`context`, `baseTypeNode`) => `IJsonSchema` \| `undefined`
104
+
105
+ ##### extractUtilityTypeKeys
106
+
107
+ (`context`, `keysNode`) => `string`[]
108
+
109
+ #### Returns
110
+
111
+ `IJsonSchema` \| `undefined`
112
+
113
+ ***
114
+
115
+ ### mapOmitUtilityType() {#mapomitutilitytype}
116
+
117
+ > `static` **mapOmitUtilityType**(`context`, `typeNode`, `resolveUtilityBaseObjectSchema`, `extractUtilityTypeKeys`): `IJsonSchema` \| `undefined`
118
+
119
+ Map Omit<T, K> to an object schema with selected keys removed.
120
+
121
+ #### Parameters
122
+
123
+ ##### context
124
+
125
+ [`ITypeScriptToSchemaContext`](../interfaces/ITypeScriptToSchemaContext.md)
126
+
127
+ ##### typeNode
128
+
129
+ `TypeReferenceNode`
130
+
131
+ ##### resolveUtilityBaseObjectSchema
132
+
133
+ (`context`, `baseTypeNode`) => `IJsonSchema` \| `undefined`
134
+
135
+ ##### extractUtilityTypeKeys
136
+
137
+ (`context`, `keysNode`) => `string`[]
138
+
139
+ #### Returns
140
+
141
+ `IJsonSchema` \| `undefined`
142
+
143
+ ***
144
+
145
+ ### mapExcludeUtilityType() {#mapexcludeutilitytype}
146
+
147
+ > `static` **mapExcludeUtilityType**(`context`, `typeNode`, `mapTypeNodeToSchema`): `IJsonSchema` \| `undefined`
148
+
149
+ Map Exclude<T, U> to a schema that removes U members from T.
150
+
151
+ #### Parameters
152
+
153
+ ##### context
154
+
155
+ [`ITypeScriptToSchemaContext`](../interfaces/ITypeScriptToSchemaContext.md)
156
+
157
+ ##### typeNode
158
+
159
+ `TypeReferenceNode`
160
+
161
+ ##### mapTypeNodeToSchema
162
+
163
+ (`context`, `typeNode`) => `IJsonSchema` \| `undefined`
164
+
165
+ #### Returns
166
+
167
+ `IJsonSchema` \| `undefined`
168
+
169
+ ***
170
+
171
+ ### mapExtractUtilityType() {#mapextractutilitytype}
172
+
173
+ > `static` **mapExtractUtilityType**(`context`, `typeNode`, `mapTypeNodeToSchema`): `IJsonSchema` \| `undefined`
174
+
175
+ Map Extract<T, U> to a schema that keeps U members from T.
176
+
177
+ #### Parameters
178
+
179
+ ##### context
180
+
181
+ [`ITypeScriptToSchemaContext`](../interfaces/ITypeScriptToSchemaContext.md)
182
+
183
+ ##### typeNode
184
+
185
+ `TypeReferenceNode`
186
+
187
+ ##### mapTypeNodeToSchema
188
+
189
+ (`context`, `typeNode`) => `IJsonSchema` \| `undefined`
190
+
191
+ #### Returns
192
+
193
+ `IJsonSchema` \| `undefined`
194
+
195
+ ***
196
+
197
+ ### mapNonNullableUtilityType() {#mapnonnullableutilitytype}
198
+
199
+ > `static` **mapNonNullableUtilityType**(`context`, `typeNode`, `mapTypeNodeToSchema`): `IJsonSchema` \| `undefined`
200
+
201
+ Map NonNullable<T> by removing null and undefined branches from T.
202
+
203
+ #### Parameters
204
+
205
+ ##### context
206
+
207
+ [`ITypeScriptToSchemaContext`](../interfaces/ITypeScriptToSchemaContext.md)
208
+
209
+ ##### typeNode
210
+
211
+ `TypeReferenceNode`
212
+
213
+ ##### mapTypeNodeToSchema
214
+
215
+ (`context`, `typeNode`) => `IJsonSchema` \| `undefined`
216
+
217
+ #### Returns
218
+
219
+ `IJsonSchema` \| `undefined`
220
+
221
+ ***
222
+
223
+ ### mapRecordUtilityType() {#maprecordutilitytype}
224
+
225
+ > `static` **mapRecordUtilityType**(`context`, `typeNode`, `mapTypeNodeToSchema`): `IJsonSchema` \| `undefined`
226
+
227
+ Map Record<K, V> to an object schema with key constraints where possible.
228
+
229
+ #### Parameters
230
+
231
+ ##### context
232
+
233
+ [`ITypeScriptToSchemaContext`](../interfaces/ITypeScriptToSchemaContext.md)
234
+
235
+ ##### typeNode
236
+
237
+ `TypeReferenceNode`
238
+
239
+ ##### mapTypeNodeToSchema
240
+
241
+ (`context`, `typeNode`) => `IJsonSchema` \| `undefined`
242
+
243
+ #### Returns
244
+
245
+ `IJsonSchema` \| `undefined`
246
+
247
+ ***
248
+
249
+ ### mapJsonLdObjectUtilityType() {#mapjsonldobjectutilitytype}
250
+
251
+ > `static` **mapJsonLdObjectUtilityType**(`context`, `typeNode`, `options`, `resolveUtilityBaseObjectSchema`, `mapTypeNodeToSchema`): `IJsonSchema` \| `undefined`
252
+
253
+ Map JsonLdObject utility types using key-removal and optional key-addition rules.
254
+
255
+ #### Parameters
256
+
257
+ ##### context
258
+
259
+ [`ITypeScriptToSchemaContext`](../interfaces/ITypeScriptToSchemaContext.md)
260
+
261
+ ##### typeNode
262
+
263
+ `TypeReferenceNode`
264
+
265
+ ##### options
266
+
267
+ ###### keysToRemove
268
+
269
+ `string`[]
270
+
271
+ ###### keyToAdd?
272
+
273
+ `"type"` \| `"id"` \| `"@id"` \| `"@type"` \| `"@context"`
274
+
275
+ ###### isAddedKeyRequired?
276
+
277
+ `boolean`
278
+
279
+ ##### resolveUtilityBaseObjectSchema
280
+
281
+ (`context`, `baseTypeNode`) => `IJsonSchema` \| `undefined`
282
+
283
+ ##### mapTypeNodeToSchema
284
+
285
+ (`context`, `typeNode`) => `IJsonSchema` \| `undefined`
286
+
287
+ #### Returns
288
+
289
+ `IJsonSchema` \| `undefined`
290
+
291
+ ***
292
+
293
+ ### mapObjectOrArrayUtilityType() {#mapobjectorarrayutilitytype}
294
+
295
+ > `static` **mapObjectOrArrayUtilityType**(`context`, `typeNode`, `mapTypeNodeToSchema`): `IJsonSchema` \| `undefined`
296
+
297
+ Map ObjectOrArray<T> to a schema accepting T or T[].
298
+
299
+ #### Parameters
300
+
301
+ ##### context
302
+
303
+ [`ITypeScriptToSchemaContext`](../interfaces/ITypeScriptToSchemaContext.md)
304
+
305
+ ##### typeNode
306
+
307
+ `TypeReferenceNode`
308
+
309
+ ##### mapTypeNodeToSchema
310
+
311
+ (`context`, `typeNode`) => `IJsonSchema` \| `undefined`
312
+
313
+ #### Returns
314
+
315
+ `IJsonSchema` \| `undefined`
316
+
317
+ ***
318
+
319
+ ### mapSingleOccurrenceArrayUtilityType() {#mapsingleoccurrencearrayutilitytype}
320
+
321
+ > `static` **mapSingleOccurrenceArrayUtilityType**(`context`, `typeNode`, `mapTypeNodeToSchema`): `IJsonSchema` \| `undefined`
322
+
323
+ Map SingleOccurrenceArray<T, U> to a non-empty array containing exactly one U.
324
+
325
+ #### Parameters
326
+
327
+ ##### context
328
+
329
+ [`ITypeScriptToSchemaContext`](../interfaces/ITypeScriptToSchemaContext.md)
330
+
331
+ ##### typeNode
332
+
333
+ `TypeReferenceNode`
334
+
335
+ ##### mapTypeNodeToSchema
336
+
337
+ (`context`, `typeNode`) => `IJsonSchema` \| `undefined`
338
+
339
+ #### Returns
340
+
341
+ `IJsonSchema` \| `undefined`
@@ -2,20 +2,26 @@
2
2
 
3
3
  ## Classes
4
4
 
5
- - [JsonSchemaHelper](classes/JsonSchemaHelper.md)
6
- - [OpenApiHelper](classes/OpenApiHelper.md)
5
+ - [Constants](classes/Constants.md)
6
+ - [DiagnosticReporter](classes/DiagnosticReporter.md)
7
+ - [DisallowedTypeGuard](classes/DisallowedTypeGuard.md)
8
+ - [Enum](classes/Enum.md)
9
+ - [FileUtils](classes/FileUtils.md)
10
+ - [ImportTypeQuerySchemaResolver](classes/ImportTypeQuerySchemaResolver.md)
11
+ - [IndexSignaturePatternResolver](classes/IndexSignaturePatternResolver.md)
12
+ - [IntersectionSchemaMerger](classes/IntersectionSchemaMerger.md)
13
+ - [JsonSchemaBuilder](classes/JsonSchemaBuilder.md)
14
+ - [MappedTypeSchemaResolver](classes/MappedTypeSchemaResolver.md)
15
+ - [ObjectTransformer](classes/ObjectTransformer.md)
16
+ - [RegEx](classes/RegEx.md)
17
+ - [Resolver](classes/Resolver.md)
18
+ - [TemplateLiteralPatternBuilder](classes/TemplateLiteralPatternBuilder.md)
19
+ - [TypeScriptToSchema](classes/TypeScriptToSchema.md)
20
+ - [Utility](classes/Utility.md)
21
+ - [UtilityTypeSchemaMapper](classes/UtilityTypeSchemaMapper.md)
7
22
 
8
23
  ## Interfaces
9
24
 
10
- - [IOpenApi](interfaces/IOpenApi.md)
11
- - [IOpenApiExample](interfaces/IOpenApiExample.md)
12
- - [IOpenApiHeader](interfaces/IOpenApiHeader.md)
13
- - [IOpenApiPathMethod](interfaces/IOpenApiPathMethod.md)
14
- - [IOpenApiResponse](interfaces/IOpenApiResponse.md)
15
- - [IOpenApiSecurityScheme](interfaces/IOpenApiSecurityScheme.md)
16
- - [IPackageJson](interfaces/IPackageJson.md)
17
-
18
- ## Type Aliases
19
-
20
- - [IJsonSchema](type-aliases/IJsonSchema.md)
21
- - [JsonTypeName](type-aliases/JsonTypeName.md)
25
+ - [ITypeScriptToSchemaContext](interfaces/ITypeScriptToSchemaContext.md)
26
+ - [ITypeScriptToSchemaDiagnostics](interfaces/ITypeScriptToSchemaDiagnostics.md)
27
+ - [ITypeScriptToSchemaOptions](interfaces/ITypeScriptToSchemaOptions.md)
@@ -0,0 +1,113 @@
1
+ # Interface: ITypeScriptToSchemaContext
2
+
3
+ Context for TypeScript to JSON schema generation.
4
+
5
+ ## Properties
6
+
7
+ ### namespace {#namespace}
8
+
9
+ > **namespace**: `string`
10
+
11
+ The namespace for generated schema ids.
12
+
13
+ ***
14
+
15
+ ### packageName {#packagename}
16
+
17
+ > **packageName**: `string`
18
+
19
+ The package name for generated schema ids.
20
+
21
+ ***
22
+
23
+ ### schemas {#schemas}
24
+
25
+ > **schemas**: `object`
26
+
27
+ The schema cache indexed by package and title.
28
+
29
+ #### Index Signature
30
+
31
+ \[`id`: `string`\]: `object`
32
+
33
+ ***
34
+
35
+ ### activeSourceFile? {#activesourcefile}
36
+
37
+ > `optional` **activeSourceFile?**: `SourceFile`
38
+
39
+ The currently active source file being mapped.
40
+
41
+ ***
42
+
43
+ ### activeEnclosingObjectName? {#activeenclosingobjectname}
44
+
45
+ > `optional` **activeEnclosingObjectName?**: `string`
46
+
47
+ The currently active enclosing object (interface/type) being mapped.
48
+
49
+ ***
50
+
51
+ ### activeDisallowedType? {#activedisallowedtype}
52
+
53
+ > `optional` **activeDisallowedType?**: `object`
54
+
55
+ The first disallowed type encountered while mapping the active enclosing object.
56
+
57
+ #### disallowedTypeName
58
+
59
+ > **disallowedTypeName**: `string`
60
+
61
+ #### propertyName
62
+
63
+ > **propertyName**: `string`
64
+
65
+ #### enclosingObjectName
66
+
67
+ > **enclosingObjectName**: `string`
68
+
69
+ ***
70
+
71
+ ### resolvingTypeNames? {#resolvingtypenames}
72
+
73
+ > `optional` **resolvingTypeNames?**: `Set`\<`string`\>
74
+
75
+ Type names currently being resolved to avoid recursive local-type expansion loops.
76
+
77
+ ***
78
+
79
+ ### resolvingUtilityTypes? {#resolvingutilitytypes}
80
+
81
+ > `optional` **resolvingUtilityTypes?**: `Set`\<`string`\>
82
+
83
+ Utility type names currently being processed to avoid infinite recursion cycles
84
+ when encountering complex combinations of indexed access types, keyof, and utility types.
85
+
86
+ ***
87
+
88
+ ### resolvingImportedObjectSchemas? {#resolvingimportedobjectschemas}
89
+
90
+ > `optional` **resolvingImportedObjectSchemas?**: `Set`\<`string`\>
91
+
92
+ Imported utility base schemas currently being resolved to avoid recursive re-entry
93
+ while parsing module graphs for utility type application.
94
+
95
+ ***
96
+
97
+ ### typeParameterBindings? {#typeparameterbindings}
98
+
99
+ > `optional` **typeParameterBindings?**: `object`
100
+
101
+ Generic type parameter bindings active for the current mapping scope.
102
+
103
+ #### Index Signature
104
+
105
+ \[`id`: `string`\]: `TypeNode` \| `null`
106
+
107
+ ***
108
+
109
+ ### options? {#options}
110
+
111
+ > `optional` **options?**: [`ITypeScriptToSchemaOptions`](ITypeScriptToSchemaOptions.md)
112
+
113
+ Optional schema generation options.
@@ -0,0 +1,55 @@
1
+ # Interface: ITypeScriptToSchemaDiagnostics
2
+
3
+ Diagnostic payload for non-fatal schema generation issues.
4
+
5
+ ## Properties
6
+
7
+ ### code {#code}
8
+
9
+ > **code**: `string`
10
+
11
+ Stable diagnostic code identifying the issue type.
12
+
13
+ ***
14
+
15
+ ### properties? {#properties}
16
+
17
+ > `optional` **properties?**: `object`
18
+
19
+ Additional structured metadata related to the diagnostic.
20
+
21
+ #### Index Signature
22
+
23
+ \[`key`: `string`\]: `unknown`
24
+
25
+ ***
26
+
27
+ ### path {#path}
28
+
29
+ > **path**: `string`
30
+
31
+ Schema path where the issue was detected.
32
+
33
+ ***
34
+
35
+ ### fileName? {#filename}
36
+
37
+ > `optional` **fileName?**: `string`
38
+
39
+ Source file where the diagnostic originated, if available.
40
+
41
+ ***
42
+
43
+ ### line? {#line}
44
+
45
+ > `optional` **line?**: `number`
46
+
47
+ One-based source line number, when available.
48
+
49
+ ***
50
+
51
+ ### column? {#column}
52
+
53
+ > `optional` **column?**: `number`
54
+
55
+ One-based source column number, when available.