@twin.org/tools-core 0.0.3-next.3 → 0.0.3-next.30

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 (138) hide show
  1. package/README.md +2 -2
  2. package/dist/es/index.js +21 -11
  3. package/dist/es/index.js.map +1 -1
  4. package/dist/es/models/ITypeScriptToSchemaContext.js +2 -0
  5. package/dist/es/models/ITypeScriptToSchemaContext.js.map +1 -0
  6. package/dist/es/models/ITypeScriptToSchemaDiagnostics.js +4 -0
  7. package/dist/es/models/ITypeScriptToSchemaDiagnostics.js.map +1 -0
  8. package/dist/es/models/ITypeScriptToSchemaOptions.js +4 -0
  9. package/dist/es/models/ITypeScriptToSchemaOptions.js.map +1 -0
  10. package/dist/es/models/embeddedSchemaMode.js +17 -0
  11. package/dist/es/models/embeddedSchemaMode.js.map +1 -0
  12. package/dist/es/utils/constants.js +43 -0
  13. package/dist/es/utils/constants.js.map +1 -0
  14. package/dist/es/utils/diagnosticReporter.js +32 -0
  15. package/dist/es/utils/diagnosticReporter.js.map +1 -0
  16. package/dist/es/utils/disallowedTypeGuard.js +151 -0
  17. package/dist/es/utils/disallowedTypeGuard.js.map +1 -0
  18. package/dist/es/utils/enum.js +152 -0
  19. package/dist/es/utils/enum.js.map +1 -0
  20. package/dist/es/utils/fileUtils.js +132 -0
  21. package/dist/es/utils/fileUtils.js.map +1 -0
  22. package/dist/es/utils/importTypeQuerySchemaResolver.js +363 -0
  23. package/dist/es/utils/importTypeQuerySchemaResolver.js.map +1 -0
  24. package/dist/es/utils/indexSignaturePatternResolver.js +94 -0
  25. package/dist/es/utils/indexSignaturePatternResolver.js.map +1 -0
  26. package/dist/es/utils/intersectionSchemaMerger.js +85 -0
  27. package/dist/es/utils/intersectionSchemaMerger.js.map +1 -0
  28. package/dist/es/utils/jsDoc.js +138 -0
  29. package/dist/es/utils/jsDoc.js.map +1 -0
  30. package/dist/es/utils/jsonSchemaBuilder.js +3415 -0
  31. package/dist/es/utils/jsonSchemaBuilder.js.map +1 -0
  32. package/dist/es/utils/mappedTypeSchemaResolver.js +265 -0
  33. package/dist/es/utils/mappedTypeSchemaResolver.js.map +1 -0
  34. package/dist/es/utils/objectTransformer.js +161 -0
  35. package/dist/es/utils/objectTransformer.js.map +1 -0
  36. package/dist/es/utils/regEx.js +128 -0
  37. package/dist/es/utils/regEx.js.map +1 -0
  38. package/dist/es/utils/resolver.js +177 -0
  39. package/dist/es/utils/resolver.js.map +1 -0
  40. package/dist/es/utils/templateLiteralPatternBuilder.js +94 -0
  41. package/dist/es/utils/templateLiteralPatternBuilder.js.map +1 -0
  42. package/dist/es/utils/typeScriptToSchema.js +319 -0
  43. package/dist/es/utils/typeScriptToSchema.js.map +1 -0
  44. package/dist/es/utils/utilityTypeSchemaMapper.js +475 -0
  45. package/dist/es/utils/utilityTypeSchemaMapper.js.map +1 -0
  46. package/dist/types/index.d.ts +21 -11
  47. package/dist/types/models/ITypeScriptToSchemaContext.d.ts +71 -0
  48. package/dist/types/models/ITypeScriptToSchemaDiagnostics.d.ts +31 -0
  49. package/dist/types/models/ITypeScriptToSchemaOptions.d.ts +22 -0
  50. package/dist/types/models/embeddedSchemaMode.d.ts +17 -0
  51. package/dist/types/utils/constants.d.ts +13 -0
  52. package/dist/types/utils/diagnosticReporter.d.ts +17 -0
  53. package/dist/types/utils/disallowedTypeGuard.d.ts +16 -0
  54. package/dist/types/utils/enum.d.ts +42 -0
  55. package/dist/types/utils/fileUtils.d.ts +66 -0
  56. package/dist/types/utils/importTypeQuerySchemaResolver.d.ts +87 -0
  57. package/dist/types/utils/indexSignaturePatternResolver.d.ts +21 -0
  58. package/dist/types/utils/intersectionSchemaMerger.d.ts +16 -0
  59. package/dist/types/utils/jsDoc.d.ts +53 -0
  60. package/dist/types/utils/jsonSchemaBuilder.d.ts +671 -0
  61. package/dist/types/utils/mappedTypeSchemaResolver.d.ts +81 -0
  62. package/dist/types/utils/objectTransformer.d.ts +33 -0
  63. package/dist/types/utils/regEx.d.ts +24 -0
  64. package/dist/types/utils/resolver.d.ts +22 -0
  65. package/dist/types/utils/templateLiteralPatternBuilder.d.ts +12 -0
  66. package/dist/types/utils/typeScriptToSchema.d.ts +92 -0
  67. package/dist/types/utils/utilityTypeSchemaMapper.d.ts +141 -0
  68. package/docs/changelog.md +351 -34
  69. package/docs/examples.md +87 -1
  70. package/docs/reference/classes/Constants.md +29 -0
  71. package/docs/reference/classes/DiagnosticReporter.md +49 -0
  72. package/docs/reference/classes/DisallowedTypeGuard.md +35 -0
  73. package/docs/reference/classes/Enum.md +93 -0
  74. package/docs/reference/classes/FileUtils.md +237 -0
  75. package/docs/reference/classes/ImportTypeQuerySchemaResolver.md +109 -0
  76. package/docs/reference/classes/IndexSignaturePatternResolver.md +69 -0
  77. package/docs/reference/classes/IntersectionSchemaMerger.md +48 -0
  78. package/docs/reference/classes/JsDoc.md +169 -0
  79. package/docs/reference/classes/JsonSchemaBuilder.md +2578 -0
  80. package/docs/reference/classes/MappedTypeSchemaResolver.md +275 -0
  81. package/docs/reference/classes/ObjectTransformer.md +119 -0
  82. package/docs/reference/classes/RegEx.md +99 -0
  83. package/docs/reference/classes/Resolver.md +52 -0
  84. package/docs/reference/classes/TemplateLiteralPatternBuilder.md +35 -0
  85. package/docs/reference/classes/TypeScriptToSchema.md +91 -0
  86. package/docs/reference/classes/UtilityTypeSchemaMapper.md +343 -0
  87. package/docs/reference/index.md +25 -11
  88. package/docs/reference/interfaces/ITypeScriptToSchemaContext.md +125 -0
  89. package/docs/reference/interfaces/ITypeScriptToSchemaDiagnostics.md +55 -0
  90. package/docs/reference/interfaces/ITypeScriptToSchemaOptions.md +44 -0
  91. package/docs/reference/type-aliases/EmbeddedSchemaMode.md +5 -0
  92. package/docs/reference/variables/EmbeddedSchemaMode.md +19 -0
  93. package/locales/en.json +32 -1
  94. package/package.json +6 -5
  95. package/dist/es/models/IJsonSchema.js +0 -2
  96. package/dist/es/models/IJsonSchema.js.map +0 -1
  97. package/dist/es/models/IOpenApi.js +0 -2
  98. package/dist/es/models/IOpenApi.js.map +0 -1
  99. package/dist/es/models/IOpenApiExample.js +0 -4
  100. package/dist/es/models/IOpenApiExample.js.map +0 -1
  101. package/dist/es/models/IOpenApiHeader.js +0 -4
  102. package/dist/es/models/IOpenApiHeader.js.map +0 -1
  103. package/dist/es/models/IOpenApiPathMethod.js +0 -2
  104. package/dist/es/models/IOpenApiPathMethod.js.map +0 -1
  105. package/dist/es/models/IOpenApiResponse.js +0 -2
  106. package/dist/es/models/IOpenApiResponse.js.map +0 -1
  107. package/dist/es/models/IOpenApiSecurityScheme.js +0 -4
  108. package/dist/es/models/IOpenApiSecurityScheme.js.map +0 -1
  109. package/dist/es/models/IPackageJson.js +0 -4
  110. package/dist/es/models/IPackageJson.js.map +0 -1
  111. package/dist/es/models/jsonTypeName.js +0 -2
  112. package/dist/es/models/jsonTypeName.js.map +0 -1
  113. package/dist/es/utils/jsonSchemaHelper.js +0 -258
  114. package/dist/es/utils/jsonSchemaHelper.js.map +0 -1
  115. package/dist/es/utils/openApiHelper.js +0 -12
  116. package/dist/es/utils/openApiHelper.js.map +0 -1
  117. package/dist/types/models/IJsonSchema.d.ts +0 -5
  118. package/dist/types/models/IOpenApi.d.ts +0 -54
  119. package/dist/types/models/IOpenApiExample.d.ts +0 -13
  120. package/dist/types/models/IOpenApiHeader.d.ts +0 -19
  121. package/dist/types/models/IOpenApiPathMethod.d.ts +0 -65
  122. package/dist/types/models/IOpenApiResponse.d.ts +0 -32
  123. package/dist/types/models/IOpenApiSecurityScheme.d.ts +0 -25
  124. package/dist/types/models/IPackageJson.d.ts +0 -15
  125. package/dist/types/models/jsonTypeName.d.ts +0 -5
  126. package/dist/types/utils/jsonSchemaHelper.d.ts +0 -78
  127. package/dist/types/utils/openApiHelper.d.ts +0 -9
  128. package/docs/reference/classes/JsonSchemaHelper.md +0 -233
  129. package/docs/reference/classes/OpenApiHelper.md +0 -21
  130. package/docs/reference/interfaces/IOpenApi.md +0 -103
  131. package/docs/reference/interfaces/IOpenApiExample.md +0 -19
  132. package/docs/reference/interfaces/IOpenApiHeader.md +0 -31
  133. package/docs/reference/interfaces/IOpenApiPathMethod.md +0 -119
  134. package/docs/reference/interfaces/IOpenApiResponse.md +0 -35
  135. package/docs/reference/interfaces/IOpenApiSecurityScheme.md +0 -43
  136. package/docs/reference/interfaces/IPackageJson.md +0 -23
  137. package/docs/reference/type-aliases/IJsonSchema.md +0 -5
  138. 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.