typia 9.6.1 → 9.7.0

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 (64) hide show
  1. package/lib/CamelCase.d.mts +1 -1
  2. package/lib/CamelCase.d.ts +1 -1
  3. package/lib/IRandomGenerator.d.mts +240 -0
  4. package/lib/IRandomGenerator.d.ts +240 -0
  5. package/lib/PascalCase.d.mts +1 -1
  6. package/lib/PascalCase.d.ts +1 -1
  7. package/lib/Primitive.d.mts +8 -8
  8. package/lib/Primitive.d.ts +8 -8
  9. package/lib/Resolved.d.mts +9 -9
  10. package/lib/Resolved.d.ts +9 -9
  11. package/lib/SnakeCase.d.mts +1 -1
  12. package/lib/SnakeCase.d.ts +1 -1
  13. package/lib/factories/TypeFactory.d.mts +1 -0
  14. package/lib/factories/TypeFactory.d.ts +1 -0
  15. package/lib/factories/TypeFactory.js +1 -1
  16. package/lib/factories/TypeFactory.js.map +1 -1
  17. package/lib/factories/TypeFactory.mjs +1 -1
  18. package/lib/factories/internal/metadata/iterate_metadata_map.js +2 -3
  19. package/lib/factories/internal/metadata/iterate_metadata_map.js.map +1 -1
  20. package/lib/factories/internal/metadata/iterate_metadata_map.mjs +2 -3
  21. package/lib/factories/internal/metadata/iterate_metadata_set.js +2 -3
  22. package/lib/factories/internal/metadata/iterate_metadata_set.js.map +1 -1
  23. package/lib/factories/internal/metadata/iterate_metadata_set.mjs +2 -3
  24. package/lib/functional.js +1 -1
  25. package/lib/functional.js.map +1 -1
  26. package/lib/functional.mjs +1 -1
  27. package/lib/http.d.mts +23 -23
  28. package/lib/http.d.ts +23 -23
  29. package/lib/internal/_llmApplicationFinalize.d.mts +1 -1
  30. package/lib/internal/_llmApplicationFinalize.d.ts +1 -1
  31. package/lib/internal/_llmApplicationFinalize.js +14 -11
  32. package/lib/internal/_llmApplicationFinalize.js.map +1 -1
  33. package/lib/internal/_llmApplicationFinalize.mjs +13 -9
  34. package/lib/json.d.mts +16 -16
  35. package/lib/json.d.ts +16 -16
  36. package/lib/llm.d.mts +18 -18
  37. package/lib/llm.d.ts +18 -18
  38. package/lib/llm.js.map +1 -1
  39. package/lib/misc.d.mts +23 -23
  40. package/lib/misc.d.ts +23 -23
  41. package/lib/module.d.mts +75 -75
  42. package/lib/module.d.ts +75 -75
  43. package/lib/module.js.map +1 -1
  44. package/lib/transformers/features/llm/LlmApplicationTransformer.js +8 -9
  45. package/lib/transformers/features/llm/LlmApplicationTransformer.js.map +1 -1
  46. package/lib/transformers/features/llm/LlmApplicationTransformer.mjs +8 -9
  47. package/package.json +2 -2
  48. package/src/CamelCase.ts +1 -1
  49. package/src/IRandomGenerator.ts +284 -6
  50. package/src/PascalCase.ts +1 -1
  51. package/src/Primitive.ts +8 -8
  52. package/src/Resolved.ts +9 -9
  53. package/src/SnakeCase.ts +1 -1
  54. package/src/factories/TypeFactory.ts +5 -3
  55. package/src/factories/internal/metadata/iterate_metadata_map.ts +3 -3
  56. package/src/factories/internal/metadata/iterate_metadata_set.ts +2 -3
  57. package/src/functional.ts +1 -1
  58. package/src/http.ts +23 -23
  59. package/src/internal/_llmApplicationFinalize.ts +25 -11
  60. package/src/json.ts +16 -16
  61. package/src/llm.ts +26 -18
  62. package/src/misc.ts +23 -23
  63. package/src/module.ts +76 -75
  64. package/src/transformers/features/llm/LlmApplicationTransformer.ts +18 -22
package/src/module.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { StandardSchemaV1 } from "@standard-schema/spec";
2
+
2
3
  import { NoTransformConfigurationError } from "./transformers/NoTransformConfigurationError";
3
4
 
4
5
  import { AssertionGuard } from "./AssertionGuard";
@@ -39,24 +40,24 @@ export * from "./IReadableURLSearchParams";
39
40
  /**
40
41
  * Asserts a value type.
41
42
  *
42
- * Asserts a parametric value type and throws a {@link TypeGuardError} with detailed
43
- * reason, if the parametric value is not following the type `T`. Otherwise, the
44
- * value is following the type `T`, just input parameter would be returned.
43
+ * Asserts a parametric value type and throws a {@link TypeGuardError} with a detailed
44
+ * reason, if the parametric value is not following the type `T`. Otherwise, if the
45
+ * value is following the type `T`, the input parameter will be returned.
45
46
  *
46
47
  * If what you want is not asserting but just knowing whether the parametric value is
47
48
  * following the type `T` or not, you can choose the {@link is} function instead.
48
- * Otherwise you want to know all the errors, {@link validate} is the way to go.
49
+ * Otherwise, if you want to know all the errors, {@link validate} is the way to go.
49
50
  * Also, if you want to automatically cast the parametric value to the type `T`
50
- * when no problem (perform the assertion guard of type).
51
+ * when there is no problem (perform the assertion guard of type).
51
52
  *
52
- * On the other and, if you don't want to allow any superfluous property that is not
53
+ * On the other hand, if you don't want to allow any superfluous property that is not
53
54
  * enrolled to the type `T`, you can use {@link assertEquals} function instead.
54
55
  *
55
56
  * @template T Type of the input value
56
57
  * @param input A value to be asserted
57
58
  * @param errorFactory Custom error factory. Default is `TypeGuardError`
58
59
  * @returns Parametric input value
59
- * @throws A {@link TypeGuardError} instance with detailed reason
60
+ * @throws A {@link TypeGuardError} instance with a detailed reason
60
61
  *
61
62
  * @author Jeongho Nam - https://github.com/samchon
62
63
  */
@@ -68,22 +69,22 @@ export function assert<T>(
68
69
  /**
69
70
  * Asserts a value type.
70
71
  *
71
- * Asserts a parametric value type and throws a {@link TypeGuardError} with detailed
72
- * reason, if the parametric value is not following the type `T`. Otherwise, the
73
- * value is following the type `T`, just input parameter would be returned.
72
+ * Asserts a parametric value type and throws a {@link TypeGuardError} with a detailed
73
+ * reason, if the parametric value is not following the type `T`. Otherwise, if the
74
+ * value is following the type `T`, the input parameter will be returned.
74
75
  *
75
76
  * If what you want is not asserting but just knowing whether the parametric value is
76
77
  * following the type `T` or not, you can choose the {@link is} function instead.
77
- * Otherwise, you want to know all the errors, {@link validate} is the way to go.
78
+ * Otherwise, if you want to know all the errors, {@link validate} is the way to go.
78
79
  *
79
- * On the other and, if you don't want to allow any superfluous property that is not
80
+ * On the other hand, if you don't want to allow any superfluous property that is not
80
81
  * enrolled to the type `T`, you can use {@link assertEquals} function instead.
81
82
  *
82
83
  * @template T Type of the input value
83
84
  * @param input A value to be asserted
84
85
  * @param errorFactory Custom error factory. Default is `TypeGuardError`
85
86
  * @returns Parametric input value casted as `T`
86
- * @throws A {@link TypeGuardError} instance with detailed reason
87
+ * @throws A {@link TypeGuardError} instance with a detailed reason
87
88
  *
88
89
  * @author Jeongho Nam - https://github.com/samchon
89
90
  */
@@ -102,25 +103,25 @@ export function assert(): never {
102
103
  /**
103
104
  * Assertion guard of a value type.
104
105
  *
105
- * Asserts a parametric value type and throws a {@link TypeGuardError} with detailed
106
- * reason, if the parametric value is not following the type `T`. Otherwise, the
107
- * value is following the type `T`, nothing would be returned, but the input value
108
- * would be automatically casted to the type `T`. This is the concept of
106
+ * Asserts a parametric value type and throws a {@link TypeGuardError} with a detailed
107
+ * reason, if the parametric value is not following the type `T`. Otherwise, if the
108
+ * value is following the type `T`, nothing will be returned, but the input value
109
+ * will be automatically casted to the type `T`. This is the concept of
109
110
  * "Assertion Guard" of a value type.
110
111
  *
111
112
  * If what you want is not asserting but just knowing whether the parametric value is
112
113
  * following the type `T` or not, you can choose the {@link is} function instead.
113
- * Otherwise you want to know all the errors, {@link validate} is the way to go.
114
- * Also, if you want to returns the parametric value when no problem, you can use
114
+ * Otherwise, if you want to know all the errors, {@link validate} is the way to go.
115
+ * Also, if you want to return the parametric value when there is no problem, you can use
115
116
  * {@link assert} function instead.
116
117
  *
117
- * On the other and, if you don't want to allow any superfluous property that is not
118
+ * On the other hand, if you don't want to allow any superfluous property that is not
118
119
  * enrolled to the type `T`, you can use {@link assertGuardEquals} function instead.
119
120
  *
120
121
  * @template T Type of the input value
121
122
  * @param input A value to be asserted
122
123
  * @param errorFactory Custom error factory. Default is `TypeGuardError`
123
- * @throws A {@link TypeGuardError} instance with detailed reason
124
+ * @throws A {@link TypeGuardError} instance with a detailed reason
124
125
  *
125
126
  * @author Jeongho Nam - https://github.com/samchon
126
127
  */
@@ -132,25 +133,25 @@ export function assertGuard<T>(
132
133
  /**
133
134
  * Assertion guard of a value type.
134
135
  *
135
- * Asserts a parametric value type and throws a {@link TypeGuardError} with detailed
136
- * reason, if the parametric value is not following the type `T`. Otherwise, the
137
- * value is following the type `T`, nothing would be returned, but the input value
138
- * would be automatically casted to the type `T`. This is the concept of
136
+ * Asserts a parametric value type and throws a {@link TypeGuardError} with a detailed
137
+ * reason, if the parametric value is not following the type `T`. Otherwise, if the
138
+ * value is following the type `T`, nothing will be returned, but the input value
139
+ * will be automatically casted to the type `T`. This is the concept of
139
140
  * "Assertion Guard" of a value type.
140
141
  *
141
142
  * If what you want is not asserting but just knowing whether the parametric value is
142
143
  * following the type `T` or not, you can choose the {@link is} function instead.
143
- * Otherwise you want to know all the errors, {@link validate} is the way to go.
144
- * Also, if you want to returns the parametric value when no problem, you can use
144
+ * Otherwise, if you want to know all the errors, {@link validate} is the way to go.
145
+ * Also, if you want to return the parametric value when there is no problem, you can use
145
146
  * {@link assert} function instead.
146
147
  *
147
- * On the other and, if you don't want to allow any superfluous property that is not
148
+ * On the other hand, if you don't want to allow any superfluous property that is not
148
149
  * enrolled to the type `T`, you can use {@link assertGuardEquals} function instead.
149
150
  *
150
151
  * @template T Type of the input value
151
152
  * @param input A value to be asserted
152
153
  * @param errorFactory Custom error factory. Default is `TypeGuardError`
153
- * @throws A {@link TypeGuardError} instance with detailed reason
154
+ * @throws A {@link TypeGuardError} instance with a detailed reason
154
155
  *
155
156
  * @author Jeongho Nam - https://github.com/samchon
156
157
  */
@@ -170,16 +171,16 @@ export function assertGuard(): never {
170
171
  * Tests a value type.
171
172
  *
172
173
  * Tests a parametric value type and returns whether it's following the type `T` or not.
173
- * If the parametric value is matched with the type `T`, `true` value would be returned.
174
- * Otherwise, the parametric value is not following the type `T`, `false` value would be
174
+ * If the parametric value is matched with the type `T`, `true` value will be returned.
175
+ * Otherwise, if the parametric value is not following the type `T`, `false` value will be
175
176
  * returned.
176
177
  *
177
178
  * If what you want is not just knowing whether the parametric value is following the
178
- * type `T` or not, but throwing an exception with detailed reason, you can choose
179
+ * type `T` or not, but throwing an exception with a detailed reason, you can choose
179
180
  * {@link assert} function instead. Also, if you want to know all the errors with
180
- * detailed reasons, {@link validate} function would be useful.
181
+ * detailed reasons, {@link validate} function will be useful.
181
182
  *
182
- * On the other and, if you don't want to allow any superfluous property that is not
183
+ * On the other hand, if you don't want to allow any superfluous property that is not
183
184
  * enrolled to the type `T`, you can use {@link equals} function instead.
184
185
  *
185
186
  * @template T Type of the input value
@@ -195,16 +196,16 @@ export function is<T>(input: T): input is T;
195
196
  * Tests a value type.
196
197
  *
197
198
  * Tests a parametric value type and returns whether it's following the type `T` or not.
198
- * If the parametric value is matched with the type `T`, `true` value would be returned.
199
- * Otherwise, the parametric value is not following the type `T`, `false` value would be
199
+ * If the parametric value is matched with the type `T`, `true` value will be returned.
200
+ * Otherwise, if the parametric value is not following the type `T`, `false` value will be
200
201
  * returned.
201
202
  *
202
203
  * If what you want is not just knowing whether the parametric value is following the
203
- * type `T` or not, but throwing an exception with detailed reason, you can choose
204
+ * type `T` or not, but throwing an exception with a detailed reason, you can choose
204
205
  * {@link assert} function instead. Also, if you want to know all the errors with
205
- * detailed reasons, {@link validate} function would be useful.
206
+ * detailed reasons, {@link validate} function will be useful.
206
207
  *
207
- * On the other and, if you don't want to allow any superfluous property that is not
208
+ * On the other hand, if you don't want to allow any superfluous property that is not
208
209
  * enrolled to the type `T`, you can use {@link equals} function instead.
209
210
  *
210
211
  * @template T Type of the input value
@@ -228,18 +229,18 @@ export function is(): never {
228
229
  * Validates a parametric value type and archives all the type errors into an
229
230
  * {@link IValidation.errors} array, if the parametric value is not following the
230
231
  * type `T`. Of course, if the parametric value is following the type `T`, the
231
- * {@link IValidation.errors} array would be empty and {@link IValidation.success}
232
- * would have the `true` value.
232
+ * {@link IValidation.errors} array will be empty and {@link IValidation.success}
233
+ * will have the `true` value.
233
234
  *
234
- * If what you want is not finding all the error, but asserting the parametric value
235
+ * If what you want is not finding all the errors, but asserting the parametric value
235
236
  * type with exception throwing, you can choose {@link assert} function instead.
236
- * Otherwise, you just want to know whether the parametric value is matched with the
237
+ * Otherwise, if you just want to know whether the parametric value is matched with the
237
238
  * type `T`, {@link is} function is the way to go.
238
239
  *
239
- * On the other and, if you don't want to allow any superfluous property that is not
240
+ * On the other hand, if you don't want to allow any superfluous property that is not
240
241
  * enrolled to the type `T`, you can use {@link validateEquals} function instead.
241
242
  *
242
- * @template Type of the input value
243
+ * @template T Type of the input value
243
244
  * @param input A value to be validated
244
245
  * @returns Validation result
245
246
  *
@@ -253,18 +254,18 @@ export function validate<T>(input: T): IValidation<T>;
253
254
  * Validates a parametric value type and archives all the type errors into an
254
255
  * {@link IValidation.errors} array, if the parametric value is not following the
255
256
  * type `T`. Of course, if the parametric value is following the type `T`, the
256
- * {@link IValidation.errors} array would be empty and {@link IValidation.success}
257
- * would have the `true` value.
257
+ * {@link IValidation.errors} array will be empty and {@link IValidation.success}
258
+ * will have the `true` value.
258
259
  *
259
- * If what you want is not finding all the error, but asserting the parametric value
260
+ * If what you want is not finding all the errors, but asserting the parametric value
260
261
  * type with exception throwing, you can choose {@link assert} function instead.
261
- * Otherwise, you just want to know whether the parametric value is matched with the
262
+ * Otherwise, if you just want to know whether the parametric value is matched with the
262
263
  * type `T`, {@link is} function is the way to go.
263
264
  *
264
- * On the other and, if you don't want to allow any superfluous property that is not
265
+ * On the other hand, if you don't want to allow any superfluous property that is not
265
266
  * enrolled to the type `T`, you can use {@link validateEquals} function instead.
266
267
  *
267
- * @template Type of the input value
268
+ * @template T Type of the input value
268
269
  * @param input A value to be validated
269
270
  * @returns Validation result
270
271
  *
@@ -293,7 +294,7 @@ export function validate(): never {
293
294
  *
294
295
  * If what you want is not asserting but just knowing whether the parametric value is
295
296
  * following the type `T` or not, you can choose the {@link equals} function instead.
296
- * Otherwise, you want to know all the errors, {@link validateEquals} is the way to go.
297
+ * Otherwise, if you want to know all the errors, {@link validateEquals} is the way to go.
297
298
  *
298
299
  * On the other hand, if you want to allow superfluous property that is not enrolled
299
300
  * to the type `T`, you can use {@link assert} function instead.
@@ -302,7 +303,7 @@ export function validate(): never {
302
303
  * @param input A value to be asserted
303
304
  * @param errorFactory Custom error factory. Default is `TypeGuardError`
304
305
  * @returns Parametric input value
305
- * @throws A {@link TypeGuardError} instance with detailed reason
306
+ * @throws A {@link TypeGuardError} instance with a detailed reason
306
307
  *
307
308
  * @author Jeongho Nam - https://github.com/samchon
308
309
  */
@@ -322,7 +323,7 @@ export function assertEquals<T>(
322
323
  *
323
324
  * If what you want is not asserting but just knowing whether the parametric value is
324
325
  * following the type `T` or not, you can choose the {@link equals} function instead.
325
- * Otherwise, you want to know all the errors, {@link validateEquals} is the way to go.
326
+ * Otherwise, if you want to know all the errors, {@link validateEquals} is the way to go.
326
327
  *
327
328
  * On the other hand, if you want to allow superfluous property that is not enrolled
328
329
  * to the type `T`, you can use {@link assert} function instead.
@@ -331,7 +332,7 @@ export function assertEquals<T>(
331
332
  * @param input A value to be asserted
332
333
  * @param errorFactory Custom error factory. Default is `TypeGuardError`
333
334
  * @returns Parametric input value casted as `T`
334
- * @throws A {@link TypeGuardError} instance with detailed reason
335
+ * @throws A {@link TypeGuardError} instance with a detailed reason
335
336
  *
336
337
  * @author Jeongho Nam - https://github.com/samchon
337
338
  */
@@ -355,12 +356,12 @@ export function assertEquals(): never {
355
356
  * property that is not listed on the type `T` has been found.
356
357
  *
357
358
  * Otherwise, the value is following the type `T` without any superfluous property,
358
- * nothing would be returned, but the input value would be automatically casted to
359
+ * nothing will be returned, but the input value would be automatically casted to
359
360
  * the type `T`. This is the concept of "Assertion Guard" of a value type.
360
361
  *
361
362
  * If what you want is not asserting but just knowing whether the parametric value is
362
363
  * following the type `T` or not, you can choose the {@link equals} function instead.
363
- * Otherwise, you want to know all the errors, {@link validateEquals} is the way to go.
364
+ * Otherwise, if you want to know all the errors, {@link validateEquals} is the way to go.
364
365
  * Also, if you want to returns the parametric value when no problem, you can use
365
366
  * {@link assert} function instead.
366
367
  *
@@ -371,7 +372,7 @@ export function assertEquals(): never {
371
372
  * @param input A value to be asserted
372
373
  * @param errorFactory Custom error factory. Default is `TypeGuardError`
373
374
  * @returns Parametric input value casted as `T`
374
- * @throws A {@link TypeGuardError} instance with detailed reason
375
+ * @throws A {@link TypeGuardError} instance with a detailed reason
375
376
  *
376
377
  * @author Jeongho Nam - https://github.com/samchon
377
378
  */
@@ -388,12 +389,12 @@ export function assertGuardEquals<T>(
388
389
  * property that is not listed on the type `T` has been found.
389
390
  *
390
391
  * Otherwise, the value is following the type `T` without any superfluous property,
391
- * nothing would be returned, but the input value would be automatically casted to
392
+ * nothing will be returned, but the input value would be automatically casted to
392
393
  * the type `T`. This is the concept of "Assertion Guard" of a value type.
393
394
  *
394
395
  * If what you want is not asserting but just knowing whether the parametric value is
395
396
  * following the type `T` or not, you can choose the {@link equals} function instead.
396
- * Otherwise, you want to know all the errors, {@link validateEquals} is the way to go.
397
+ * Otherwise, if you want to know all the errors, {@link validateEquals} is the way to go.
397
398
  * Also, if you want to returns the parametric value when no problem, you can use
398
399
  * {@link assertEquals} function instead.
399
400
  *
@@ -404,7 +405,7 @@ export function assertGuardEquals<T>(
404
405
  * @param input A value to be asserted
405
406
  * @param errorFactory Custom error factory. Default is `TypeGuardError`
406
407
  * @returns Parametric input value casted as `T`
407
- * @throws A {@link TypeGuardError} instance with detailed reason
408
+ * @throws A {@link TypeGuardError} instance with a detailed reason
408
409
  *
409
410
  * @author Jeongho Nam - https://github.com/samchon
410
411
  */
@@ -425,14 +426,14 @@ export function assertGuardEquals(): never {
425
426
  *
426
427
  * Tests a parametric value type and returns whether it's equivalent to the type `T`
427
428
  * or not. If the parametric value is matched with the type `T` and there's not any
428
- * superfluous property that is not listed on the type `T`, `true` value would be
429
- * returned. Otherwise, the parametric value is not following the type `T` or some
430
- * superfluous property exists, `false` value would be returned.
429
+ * superfluous property that is not listed on the type `T`, `true` value will be
430
+ * returned. Otherwise, if the parametric value is not following the type `T` or some
431
+ * superfluous property exists, `false` value will be returned.
431
432
  *
432
433
  * If what you want is not just knowing whether the parametric value is following the
433
- * type `T` or not, but throwing an exception with detailed reason, you can choose
434
+ * type `T` or not, but throwing an exception with a detailed reason, you can choose
434
435
  * {@link assertEquals} function instead. Also, if you want to know all the errors with
435
- * detailed reasons, {@link validateEquals} function would be useful.
436
+ * detailed reasons, {@link validateEquals} function will be useful.
436
437
  *
437
438
  * On the other hand, if you want to allow superfluous property that is not enrolled
438
439
  * to the type `T`, you can use {@link is} function instead.
@@ -450,14 +451,14 @@ export function equals<T>(input: T): input is T;
450
451
  *
451
452
  * Tests a parametric value type and returns whether it's equivalent to the type `T`
452
453
  * or not. If the parametric value is matched with the type `T` and there's not any
453
- * superfluous property that is not listed on the type `T`, `true` value would be
454
- * returned. Otherwise, the parametric value is not following the type `T` or some
455
- * superfluous property exists, `false` value would be returned.
454
+ * superfluous property that is not listed on the type `T`, `true` value will be
455
+ * returned. Otherwise, if the parametric value is not following the type `T` or some
456
+ * superfluous property exists, `false` value will be returned.
456
457
  *
457
458
  * If what you want is not just knowing whether the parametric value is following the
458
- * type `T` or not, but throwing an exception with detailed reason, you can choose
459
+ * type `T` or not, but throwing an exception with a detailed reason, you can choose
459
460
  * {@link assertEquals} function instead. Also, if you want to know all the errors with
460
- * detailed reasons, {@link validateEquals} function would be useful.
461
+ * detailed reasons, {@link validateEquals} function will be useful.
461
462
  *
462
463
  * On the other hand, if you want to allow superfluous property that is not enrolled
463
464
  * to the type `T`, you can use {@link is} function instead.
@@ -492,7 +493,7 @@ export function equals(): never {
492
493
  * Otherwise, you just want to know whether the parametric value is matched with the
493
494
  * type `T`, {@link is} function is the way to go.
494
495
  *
495
- * On the other and, if you don't want to allow any superfluous property that is not
496
+ * On the other hand, if you don't want to allow any superfluous property that is not
496
497
  * enrolled to the type `T`, you can use {@link validateEquals} function instead.
497
498
  *
498
499
  * @template Type of the input value
@@ -518,7 +519,7 @@ export function validateEquals<T>(input: T): IValidation<T>;
518
519
  * Otherwise, you just want to know whether the parametric value is matched with the
519
520
  * type `T`, {@link is} function is the way to go.
520
521
  *
521
- * On the other and, if you don't want to allow any superfluous property that is not
522
+ * On the other hand, if you don't want to allow any superfluous property that is not
522
523
  * enrolled to the type `T`, you can use {@link validateEquals} function instead.
523
524
  *
524
525
  * @template Type of the input value
@@ -549,7 +550,7 @@ export function validateEquals(): never {
549
550
  * For reference, this `typia.random()` function generates only primitive type.
550
551
  * If there're some methods in the type `T` or its nested instances, those would
551
552
  * be ignored. Also, when the type `T` has a `toJSON()` method, its return type
552
- * would be generated instead.
553
+ * will be generated instead.
553
554
  *
554
555
  * @template T Type of data to generate
555
556
  * @param generator Random data generator
@@ -567,7 +568,7 @@ export function random(generator?: Partial<IRandomGenerator>): never;
567
568
  * For reference, this `typia.random()` function generates only primitive type.
568
569
  * If there're some methods in the type `T` or its nested instances, those would
569
570
  * be ignored. Also, when the type `T` has a `toJSON()` method, its return type
570
- * would be generated instead.
571
+ * will be generated instead.
571
572
  *
572
573
  * @template T Type of data to generate
573
574
  * @param generator Random data generator
@@ -186,9 +186,14 @@ export namespace LlmApplicationTransformer {
186
186
  ],
187
187
  false,
188
188
  ),
189
- ts.factory.createLiteralTypeNode(
190
- ts.factory.createStringLiteral("separate"),
191
- ),
189
+ ts.factory.createUnionTypeNode([
190
+ ts.factory.createLiteralTypeNode(
191
+ ts.factory.createStringLiteral("separate"),
192
+ ),
193
+ ts.factory.createLiteralTypeNode(
194
+ ts.factory.createStringLiteral("validate"),
195
+ ),
196
+ ]),
192
197
  ],
193
198
  ),
194
199
  ],
@@ -200,27 +205,18 @@ export namespace LlmApplicationTransformer {
200
205
  props.value,
201
206
  ts.factory.createObjectLiteralExpression(
202
207
  [
203
- ts.factory.createPropertyAssignment(
204
- "separate",
205
- ts.factory.createPropertyAccessChain(
206
- ts.factory.createSatisfiesExpression(
207
- props.argument,
208
- satisfiesTypeNode,
209
- ),
210
- ts.factory.createToken(ts.SyntaxKind.QuestionDotToken),
211
- "separate",
208
+ ts.factory.createSpreadAssignment(
209
+ ts.factory.createSatisfiesExpression(
210
+ props.argument,
211
+ satisfiesTypeNode,
212
212
  ),
213
213
  ),
214
- ...(typeof props.equals === "boolean"
215
- ? [
216
- ts.factory.createPropertyAssignment(
217
- "equals",
218
- props.equals === true
219
- ? ts.factory.createTrue()
220
- : ts.factory.createFalse(),
221
- ),
222
- ]
223
- : []),
214
+ ts.factory.createPropertyAssignment(
215
+ "equals",
216
+ props.equals === true
217
+ ? ts.factory.createTrue()
218
+ : ts.factory.createFalse(),
219
+ ),
224
220
  ],
225
221
  true,
226
222
  ),