typia 7.0.0-dev.20241007 → 7.0.0-dev.20241008

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 (240) hide show
  1. package/lib/factories/ExpressionFactory.d.ts +1 -1
  2. package/lib/factories/ValueFactory.d.ts +1 -1
  3. package/lib/programmers/AssertProgrammer.d.ts +5 -2
  4. package/lib/programmers/AssertProgrammer.js +12 -5
  5. package/lib/programmers/AssertProgrammer.js.map +1 -1
  6. package/lib/programmers/ImportProgrammer.d.ts +25 -4
  7. package/lib/programmers/ImportProgrammer.js +67 -31
  8. package/lib/programmers/ImportProgrammer.js.map +1 -1
  9. package/lib/programmers/RandomProgrammer.js +48 -32
  10. package/lib/programmers/RandomProgrammer.js.map +1 -1
  11. package/lib/programmers/ValidateProgrammer.js +10 -4
  12. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  13. package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.js +1 -1
  14. package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.js.map +1 -1
  15. package/lib/programmers/functional/FunctionalValidateFunctionProgrammer.d.ts +1 -0
  16. package/lib/programmers/functional/FunctionalValidateFunctionProgrammer.js +14 -5
  17. package/lib/programmers/functional/FunctionalValidateFunctionProgrammer.js.map +1 -1
  18. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.js +5 -1
  19. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.js.map +1 -1
  20. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.js +1 -0
  21. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.js.map +1 -1
  22. package/lib/programmers/http/HttpAssertFormDataProgrammer.js +4 -1
  23. package/lib/programmers/http/HttpAssertFormDataProgrammer.js.map +1 -1
  24. package/lib/programmers/http/HttpAssertHeadersProgrammer.js +4 -1
  25. package/lib/programmers/http/HttpAssertHeadersProgrammer.js.map +1 -1
  26. package/lib/programmers/http/HttpAssertQueryProgrammer.js +4 -1
  27. package/lib/programmers/http/HttpAssertQueryProgrammer.js.map +1 -1
  28. package/lib/programmers/http/HttpFormDataProgrammer.js +10 -6
  29. package/lib/programmers/http/HttpFormDataProgrammer.js.map +1 -1
  30. package/lib/programmers/http/HttpHeadersProgrammer.js +10 -6
  31. package/lib/programmers/http/HttpHeadersProgrammer.js.map +1 -1
  32. package/lib/programmers/http/HttpQueryProgrammer.js +10 -6
  33. package/lib/programmers/http/HttpQueryProgrammer.js.map +1 -1
  34. package/lib/programmers/http/HttpValidateFormDataProgrammer.js +5 -3
  35. package/lib/programmers/http/HttpValidateFormDataProgrammer.js.map +1 -1
  36. package/lib/programmers/http/HttpValidateHeadersProgrammer.js +5 -3
  37. package/lib/programmers/http/HttpValidateHeadersProgrammer.js.map +1 -1
  38. package/lib/programmers/http/HttpValidateQueryProgrammer.js +5 -3
  39. package/lib/programmers/http/HttpValidateQueryProgrammer.js.map +1 -1
  40. package/lib/programmers/json/JsonAssertParseProgrammer.js +14 -7
  41. package/lib/programmers/json/JsonAssertParseProgrammer.js.map +1 -1
  42. package/lib/programmers/json/JsonAssertStringifyProgrammer.js +4 -1
  43. package/lib/programmers/json/JsonAssertStringifyProgrammer.js.map +1 -1
  44. package/lib/programmers/json/JsonIsParseProgrammer.js +10 -6
  45. package/lib/programmers/json/JsonIsParseProgrammer.js.map +1 -1
  46. package/lib/programmers/json/JsonValidateParseProgrammer.js +16 -4
  47. package/lib/programmers/json/JsonValidateParseProgrammer.js.map +1 -1
  48. package/lib/programmers/json/JsonValidateStringifyProgrammer.js +7 -3
  49. package/lib/programmers/json/JsonValidateStringifyProgrammer.js.map +1 -1
  50. package/lib/programmers/misc/MiscAssertCloneProgrammer.js +4 -1
  51. package/lib/programmers/misc/MiscAssertCloneProgrammer.js.map +1 -1
  52. package/lib/programmers/misc/MiscAssertPruneProgrammer.js +4 -1
  53. package/lib/programmers/misc/MiscAssertPruneProgrammer.js.map +1 -1
  54. package/lib/programmers/misc/MiscCloneProgrammer.js +10 -6
  55. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  56. package/lib/programmers/misc/MiscValidateCloneProgrammer.js +5 -3
  57. package/lib/programmers/misc/MiscValidateCloneProgrammer.js.map +1 -1
  58. package/lib/programmers/misc/MiscValidatePruneProgrammer.js +10 -4
  59. package/lib/programmers/misc/MiscValidatePruneProgrammer.js.map +1 -1
  60. package/lib/programmers/notations/NotationAssertGeneralProgrammer.js +4 -1
  61. package/lib/programmers/notations/NotationAssertGeneralProgrammer.js.map +1 -1
  62. package/lib/programmers/notations/NotationGeneralProgrammer.d.ts +2 -1
  63. package/lib/programmers/notations/NotationGeneralProgrammer.js +13 -5
  64. package/lib/programmers/notations/NotationGeneralProgrammer.js.map +1 -1
  65. package/lib/programmers/notations/NotationValidateGeneralProgrammer.js +5 -3
  66. package/lib/programmers/notations/NotationValidateGeneralProgrammer.js.map +1 -1
  67. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js +4 -1
  68. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js.map +1 -1
  69. package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.js +4 -1
  70. package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.js.map +1 -1
  71. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +10 -6
  72. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  73. package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.js +5 -3
  74. package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.js.map +1 -1
  75. package/lib/programmers/protobuf/ProtobufValidateEncodeProgrammer.js +7 -3
  76. package/lib/programmers/protobuf/ProtobufValidateEncodeProgrammer.js.map +1 -1
  77. package/package.json +1 -1
  78. package/src/factories/JsonMetadataFactory.ts +63 -63
  79. package/src/factories/ProtobufFactory.ts +275 -275
  80. package/src/programmers/AssertProgrammer.ts +454 -456
  81. package/src/programmers/CheckerProgrammer.ts +1610 -1610
  82. package/src/programmers/ImportProgrammer.ts +184 -109
  83. package/src/programmers/IsProgrammer.ts +273 -273
  84. package/src/programmers/RandomProgrammer.ts +168 -149
  85. package/src/programmers/TypiaProgrammer.ts +171 -171
  86. package/src/programmers/ValidateProgrammer.ts +434 -430
  87. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +1 -1
  88. package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +12 -16
  89. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +5 -12
  90. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +1 -0
  91. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  92. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +99 -96
  93. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +99 -96
  94. package/src/programmers/http/HttpAssertQueryProgrammer.ts +105 -102
  95. package/src/programmers/http/HttpFormDataProgrammer.ts +304 -308
  96. package/src/programmers/http/HttpHeadersProgrammer.ts +400 -404
  97. package/src/programmers/http/HttpIsFormDataProgrammer.ts +108 -108
  98. package/src/programmers/http/HttpIsHeadersProgrammer.ts +108 -108
  99. package/src/programmers/http/HttpIsQueryProgrammer.ts +114 -114
  100. package/src/programmers/http/HttpParameterProgrammer.ts +115 -115
  101. package/src/programmers/http/HttpQueryProgrammer.ts +329 -333
  102. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +92 -90
  103. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +92 -90
  104. package/src/programmers/http/HttpValidateQueryProgrammer.ts +98 -96
  105. package/src/programmers/json/JsonApplicationProgrammer.ts +92 -92
  106. package/src/programmers/json/JsonAssertParseProgrammer.ts +103 -104
  107. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +115 -112
  108. package/src/programmers/json/JsonIsParseProgrammer.ts +114 -118
  109. package/src/programmers/json/JsonIsStringifyProgrammer.ts +108 -108
  110. package/src/programmers/json/JsonStringifyProgrammer.ts +1124 -1124
  111. package/src/programmers/json/JsonValidateParseProgrammer.ts +105 -95
  112. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +124 -119
  113. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +95 -92
  114. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +116 -113
  115. package/src/programmers/misc/MiscCloneProgrammer.ts +1025 -1029
  116. package/src/programmers/misc/MiscIsCloneProgrammer.ts +99 -99
  117. package/src/programmers/misc/MiscIsPruneProgrammer.ts +97 -97
  118. package/src/programmers/misc/MiscLiteralsProgrammer.ts +80 -80
  119. package/src/programmers/misc/MiscPruneProgrammer.ts +725 -725
  120. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +111 -109
  121. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +113 -109
  122. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +101 -98
  123. package/src/programmers/notations/NotationGeneralProgrammer.ts +977 -973
  124. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +105 -105
  125. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +119 -117
  126. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +98 -95
  127. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +102 -99
  128. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +708 -711
  129. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +1019 -1019
  130. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +109 -109
  131. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +98 -98
  132. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +92 -90
  133. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +119 -114
  134. package/src/transform.ts +35 -35
  135. package/src/transformers/CallExpressionTransformer.ts +540 -540
  136. package/src/transformers/FileTransformer.ts +120 -120
  137. package/src/transformers/IProgrammerProps.ts +11 -11
  138. package/src/transformers/ITransformOptions.ts +62 -62
  139. package/src/transformers/ITransformProps.ts +9 -9
  140. package/src/transformers/ITypiaContext.ts +18 -18
  141. package/src/transformers/ImportTransformer.ts +66 -66
  142. package/src/transformers/NodeTransformer.ts +17 -17
  143. package/src/transformers/TransformerError.ts +59 -59
  144. package/src/transformers/features/AssertTransformer.ts +24 -24
  145. package/src/transformers/features/CreateAssertTransformer.ts +24 -24
  146. package/src/transformers/features/CreateIsTransformer.ts +18 -18
  147. package/src/transformers/features/CreateRandomTransformer.ts +43 -43
  148. package/src/transformers/features/CreateValidateTransformer.ts +18 -18
  149. package/src/transformers/features/IsTransformer.ts +18 -18
  150. package/src/transformers/features/RandomTransformer.ts +41 -41
  151. package/src/transformers/features/ValidateTransformer.ts +18 -18
  152. package/src/transformers/features/functional/FunctionalGenericTransformer.ts +57 -57
  153. package/src/transformers/features/http/CreateHttpAssertFormDataTransformer.ts +13 -13
  154. package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +13 -13
  155. package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +13 -13
  156. package/src/transformers/features/http/CreateHttpFormDataTransformer.ts +13 -13
  157. package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +13 -13
  158. package/src/transformers/features/http/CreateHttpIsFormDataTransformer.ts +13 -13
  159. package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +13 -13
  160. package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +13 -13
  161. package/src/transformers/features/http/CreateHttpParameterTransformer.ts +13 -13
  162. package/src/transformers/features/http/CreateHttpQueryTransformer.ts +13 -13
  163. package/src/transformers/features/http/CreateHttpValidateFormDataTransformer.ts +13 -13
  164. package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +13 -13
  165. package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +13 -13
  166. package/src/transformers/features/http/HttpAssertFormDataTransformer.ts +13 -13
  167. package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +13 -13
  168. package/src/transformers/features/http/HttpAssertQueryTransformer.ts +13 -13
  169. package/src/transformers/features/http/HttpFormDataTransformer.ts +13 -13
  170. package/src/transformers/features/http/HttpHeadersTransformer.ts +13 -13
  171. package/src/transformers/features/http/HttpIsFormDataTransformer.ts +13 -13
  172. package/src/transformers/features/http/HttpIsHeadersTransformer.ts +13 -13
  173. package/src/transformers/features/http/HttpIsQueryTransformer.ts +13 -13
  174. package/src/transformers/features/http/HttpParameterTransformer.ts +13 -13
  175. package/src/transformers/features/http/HttpQueryTransformer.ts +13 -13
  176. package/src/transformers/features/http/HttpValidateFormDataTransformer.ts +13 -13
  177. package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +13 -13
  178. package/src/transformers/features/http/HttpValidateQueryTransformer.ts +13 -13
  179. package/src/transformers/features/json/JsonApplicationTransformer.ts +130 -130
  180. package/src/transformers/features/json/JsonAssertParseTransformer.ts +13 -13
  181. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +13 -13
  182. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +13 -13
  183. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +13 -13
  184. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +13 -13
  185. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +13 -13
  186. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +13 -13
  187. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +13 -13
  188. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +13 -13
  189. package/src/transformers/features/json/JsonIsParseTransformer.ts +13 -13
  190. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +13 -13
  191. package/src/transformers/features/json/JsonStringifyTransformer.ts +13 -13
  192. package/src/transformers/features/json/JsonValidateParseTransformer.ts +13 -13
  193. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +13 -13
  194. package/src/transformers/features/llm/LlmApplicationTransformer.ts +86 -86
  195. package/src/transformers/features/llm/LlmSchemaTransformer.ts +59 -59
  196. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +13 -13
  197. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +13 -13
  198. package/src/transformers/features/misc/MiscCloneTransformer.ts +13 -13
  199. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +13 -13
  200. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +13 -13
  201. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +13 -13
  202. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +13 -13
  203. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +13 -13
  204. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +13 -13
  205. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +13 -13
  206. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +13 -13
  207. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +13 -13
  208. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +13 -13
  209. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +35 -35
  210. package/src/transformers/features/misc/MiscPruneTransformer.ts +13 -13
  211. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +13 -13
  212. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +13 -13
  213. package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +20 -20
  214. package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +20 -20
  215. package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +20 -20
  216. package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +20 -20
  217. package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +20 -20
  218. package/src/transformers/features/notations/NotationGeneralTransformer.ts +18 -18
  219. package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +20 -20
  220. package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +20 -20
  221. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +13 -13
  222. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +13 -13
  223. package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +13 -13
  224. package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +13 -13
  225. package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +13 -13
  226. package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +13 -13
  227. package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +13 -13
  228. package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +13 -13
  229. package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +13 -13
  230. package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +13 -13
  231. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +13 -13
  232. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +13 -13
  233. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +13 -13
  234. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +13 -13
  235. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +35 -35
  236. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +13 -13
  237. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +13 -13
  238. package/src/transformers/features/reflect/ReflectMetadataTransformer.ts +69 -69
  239. package/src/transformers/features/reflect/ReflectNameTransformer.ts +82 -82
  240. package/src/transformers/internal/GenericTransformer.ts +101 -101
@@ -3,7 +3,9 @@ import ts from "typescript";
3
3
 
4
4
  import { ExpressionFactory } from "../factories/ExpressionFactory";
5
5
  import { IdentifierFactory } from "../factories/IdentifierFactory";
6
+ import { LiteralFactory } from "../factories/LiteralFactory";
6
7
  import { MetadataCollection } from "../factories/MetadataCollection";
8
+ import { MetadataCommentTagFactory } from "../factories/MetadataCommentTagFactory";
7
9
  import { MetadataFactory } from "../factories/MetadataFactory";
8
10
  import { StatementFactory } from "../factories/StatementFactory";
9
11
  import { TemplateFactory } from "../factories/TemplateFactory";
@@ -26,14 +28,12 @@ import { StringUtil } from "../utils/StringUtil";
26
28
  import { FeatureProgrammer } from "./FeatureProgrammer";
27
29
  import { FunctionProgrammer } from "./helpers/FunctionProgrammer";
28
30
  import { RandomJoiner } from "./helpers/RandomJoiner";
29
- import { LiteralFactory } from "../factories/LiteralFactory";
30
31
  import { application_array } from "./internal/application_array";
31
- import { application_v31_schema } from "./internal/application_v31_schema";
32
- import { MetadataCommentTagFactory } from "../factories/MetadataCommentTagFactory";
33
- import { application_boolean } from "./internal/application_boolean";
34
- import { application_string } from "./internal/application_string";
35
32
  import { application_bigint } from "./internal/application_bigint";
33
+ import { application_boolean } from "./internal/application_boolean";
36
34
  import { application_number } from "./internal/application_number";
35
+ import { application_string } from "./internal/application_string";
36
+ import { application_v31_schema } from "./internal/application_v31_schema";
37
37
 
38
38
  export namespace RandomProgrammer {
39
39
  export interface IProps {
@@ -104,17 +104,19 @@ export namespace RandomProgrammer {
104
104
  [
105
105
  IdentifierFactory.parameter(
106
106
  "generator",
107
- ts.factory.createTypeReferenceNode("Partial<typia.IRandomGenerator>"),
107
+ ts.factory.createTypeReferenceNode("Partial", [
108
+ props.context.importer.type({
109
+ file: "typia",
110
+ name: "IRandomGenerator",
111
+ }),
112
+ ]),
108
113
  props.init ?? ts.factory.createToken(ts.SyntaxKind.QuestionToken),
109
114
  ),
110
115
  ],
111
- ts.factory.createImportTypeNode(
112
- ts.factory.createLiteralTypeNode(
113
- ts.factory.createStringLiteral("typia"),
114
- ),
115
- undefined,
116
- ts.factory.createIdentifier("Resolved"),
117
- [
116
+ props.context.importer.type({
117
+ file: "typia",
118
+ name: "Resolved",
119
+ arguments: [
118
120
  ts.factory.createTypeReferenceNode(
119
121
  props.name ??
120
122
  TypeFactory.getFullName({
@@ -123,8 +125,7 @@ export namespace RandomProgrammer {
123
125
  }),
124
126
  ),
125
127
  ],
126
- false,
127
- ),
128
+ }),
128
129
  undefined,
129
130
  ts.factory.createBlock(
130
131
  [
@@ -264,7 +265,7 @@ export namespace RandomProgrammer {
264
265
  internal: "randomArray",
265
266
  }),
266
267
  array,
267
- schema: undefined
268
+ schema: undefined,
268
269
  }),
269
270
  ),
270
271
  }),
@@ -342,12 +343,14 @@ export namespace RandomProgrammer {
342
343
  for (const { value } of constant.values)
343
344
  expressions.push(
344
345
  constant.type === "boolean"
345
- ? value === true ? ts.factory.createTrue() : ts.factory.createFalse()
346
+ ? value === true
347
+ ? ts.factory.createTrue()
348
+ : ts.factory.createFalse()
346
349
  : constant.type === "bigint"
347
- ? ExpressionFactory.bigint(<bigint>value)
348
- : constant.type === "number"
349
- ? ExpressionFactory.number(<number>value)
350
- : ts.factory.createStringLiteral(<string>value),
350
+ ? ExpressionFactory.bigint(value as bigint)
351
+ : constant.type === "number"
352
+ ? ExpressionFactory.number(value as number)
353
+ : ts.factory.createStringLiteral(value as string),
351
354
  );
352
355
 
353
356
  // ATOMIC VARIABLES
@@ -422,21 +425,25 @@ export namespace RandomProgrammer {
422
425
  // PICK UP A TYPE
423
426
  if (expressions.length === 1) return expressions[0]!;
424
427
  return ts.factory.createCallExpression(
425
- ts.factory.createCallExpression(props.context.importer.internal("randomPick"), undefined, [
426
- ts.factory.createArrayLiteralExpression(
427
- expressions.map((expr) =>
428
- ts.factory.createArrowFunction(
429
- undefined,
430
- undefined,
431
- [],
432
- undefined,
433
- undefined,
434
- expr,
428
+ ts.factory.createCallExpression(
429
+ props.context.importer.internal("randomPick"),
430
+ undefined,
431
+ [
432
+ ts.factory.createArrayLiteralExpression(
433
+ expressions.map((expr) =>
434
+ ts.factory.createArrowFunction(
435
+ undefined,
436
+ undefined,
437
+ [],
438
+ undefined,
439
+ undefined,
440
+ expr,
441
+ ),
435
442
  ),
443
+ true,
436
444
  ),
437
- true,
438
- ),
439
- ]),
445
+ ],
446
+ ),
440
447
  undefined,
441
448
  undefined,
442
449
  );
@@ -446,13 +453,14 @@ export namespace RandomProgrammer {
446
453
  context: ITypiaContext;
447
454
  atomic: MetadataAtomic;
448
455
  }) => {
449
- const schemaList: OpenApi.IJsonSchema[] = props.atomic.type === "boolean"
450
- ? application_boolean<"3.1">(props.atomic)
451
- : props.atomic.type === "string"
452
- ? application_string<"3.1">(props.atomic)
453
- : props.atomic.type === "bigint"
454
- ? application_bigint<"3.1">(props.atomic)
455
- : application_number<"3.1">(props.atomic);
456
+ const schemaList: OpenApi.IJsonSchema[] =
457
+ props.atomic.type === "boolean"
458
+ ? application_boolean<"3.1">(props.atomic)
459
+ : props.atomic.type === "string"
460
+ ? application_string<"3.1">(props.atomic)
461
+ : props.atomic.type === "bigint"
462
+ ? application_bigint<"3.1">(props.atomic)
463
+ : application_number<"3.1">(props.atomic);
456
464
  return schemaList.map((schema) => {
457
465
  const { method, internal } = (() => {
458
466
  if (props.atomic.type === "string") {
@@ -499,26 +507,28 @@ export namespace RandomProgrammer {
499
507
  })();
500
508
  return ts.factory.createCallExpression(
501
509
  ExpressionFactory.coalesce(
502
- ts.factory.createPropertyAccessChain(
503
- ts.factory.createIdentifier("_generator"),
504
- ts.factory.createToken(ts.SyntaxKind.QuestionDotToken),
505
- ts.factory.createIdentifier(method),
510
+ ts.factory.createPropertyAccessChain(
511
+ ts.factory.createIdentifier("_generator"),
512
+ ts.factory.createToken(ts.SyntaxKind.QuestionDotToken),
513
+ ts.factory.createIdentifier(method),
514
+ ),
515
+ props.context.importer.internal(internal),
506
516
  ),
507
- props.context.importer.internal(internal),
508
- ),
509
- undefined,
510
- [
511
- method === "pattern"
512
- ? ts.factory.createNewExpression(
513
- ts.factory.createIdentifier("RegExp"),
514
- undefined,
515
- [
516
- ts.factory.createStringLiteral((schema as OpenApi.IJsonSchema.IString).pattern!)
517
- ]
518
- )
519
- : LiteralFactory.write(schema)
520
- ]
521
- )
517
+ undefined,
518
+ [
519
+ method === "pattern"
520
+ ? ts.factory.createNewExpression(
521
+ ts.factory.createIdentifier("RegExp"),
522
+ undefined,
523
+ [
524
+ ts.factory.createStringLiteral(
525
+ (schema as OpenApi.IJsonSchema.IString).pattern!,
526
+ ),
527
+ ],
528
+ )
529
+ : LiteralFactory.write(schema),
530
+ ],
531
+ );
522
532
  });
523
533
  };
524
534
 
@@ -545,35 +555,39 @@ export namespace RandomProgrammer {
545
555
  }): ts.Expression[] => {
546
556
  const components: OpenApi.IComponents = {};
547
557
  const schemaList: OpenApi.IJsonSchema.IArray[] = application_array<"3.1">({
548
- generator: (value) => application_v31_schema({
549
- blockNever: true,
550
- components,
551
- attribute: {},
552
- metadata: value,
553
- })!,
558
+ generator: (value) =>
559
+ application_v31_schema({
560
+ blockNever: true,
561
+ components,
562
+ attribute: {},
563
+ metadata: value,
564
+ })!,
554
565
  components,
555
566
  array: props.array,
556
567
  }) as OpenApi.IJsonSchema.IArray[];
557
568
  if (props.array.type.recursive)
558
- return schemaList.map(schema =>
569
+ return schemaList.map((schema) =>
559
570
  ts.factory.createCallExpression(
560
571
  ts.factory.createIdentifier(
561
572
  props.functor.useLocal(Prefix.array(props.array.type.index!)),
562
573
  ),
563
574
  undefined,
564
575
  [
565
- ts.factory.createObjectLiteralExpression(Object.entries(schema)
566
- .filter(([key]) => key !== "items")
567
- .map(([key, value]) =>
568
- ts.factory.createPropertyAssignment(
569
- key,
570
- LiteralFactory.write(value),
571
- ),
572
- ), true),
576
+ ts.factory.createObjectLiteralExpression(
577
+ Object.entries(schema)
578
+ .filter(([key]) => key !== "items")
579
+ .map(([key, value]) =>
580
+ ts.factory.createPropertyAssignment(
581
+ key,
582
+ LiteralFactory.write(value),
583
+ ),
584
+ ),
585
+ true,
586
+ ),
573
587
  ],
574
588
  ),
575
589
  );
576
- return schemaList.map(schema =>
590
+ return schemaList.map((schema) =>
577
591
  RandomJoiner.array({
578
592
  decode: (metadata) =>
579
593
  decode({
@@ -588,9 +602,9 @@ export namespace RandomProgrammer {
588
602
  array: props.array.type,
589
603
  recursive: props.explore.recursive,
590
604
  schema,
591
- })
605
+ }),
592
606
  );
593
- }
607
+ };
594
608
 
595
609
  const decode_tuple = (props: {
596
610
  context: ITypiaContext;
@@ -767,7 +781,7 @@ export namespace RandomProgrammer {
767
781
  ...props,
768
782
  name: props.name,
769
783
  });
770
- else if (props.name === "DataView")return decode_native_data_view(props);
784
+ else if (props.name === "DataView") return decode_native_data_view(props);
771
785
  else if (props.name === "Blob") return decode_native_blob(props);
772
786
  else if (props.name === "File") return decode_native_file(props);
773
787
  else if (props.name === "RegExp") return decode_regexp(props.context);
@@ -789,7 +803,7 @@ export namespace RandomProgrammer {
789
803
  context,
790
804
  method: "datetime",
791
805
  internal: "randomFormatDatetime",
792
- }),
806
+ }),
793
807
  undefined,
794
808
  [],
795
809
  ),
@@ -823,18 +837,18 @@ export namespace RandomProgrammer {
823
837
  return ["uint64", 0, 18446744073709551615];
824
838
  else if (props.name === "Int8Array") return ["int32", -128, 127];
825
839
  else if (props.name === "Int16Array") return ["int32", -32768, 32767];
826
- else if (props.name === "Int32Array") return ["int32", -2147483648, 2147483647];
840
+ else if (props.name === "Int32Array")
841
+ return ["int32", -2147483648, 2147483647];
827
842
  else if (props.name === "BigInt64Array")
828
843
  return ["uint64", -9223372036854775808, 9223372036854775807];
829
844
  else if (props.name === "Float32Array")
830
845
  return ["float", -1.175494351e38, 3.4028235e38];
831
846
  return ["double", Number.MIN_VALUE, Number.MAX_VALUE];
832
847
  })();
833
- const atomic: "bigint" | "number" =
834
- props.name === "BigInt64Array" ||
835
- props.name === "BigUint64Array"
836
- ? "bigint"
837
- : "number"
848
+ const atomic: "bigint" | "number" =
849
+ props.name === "BigInt64Array" || props.name === "BigUint64Array"
850
+ ? "bigint"
851
+ : "number";
838
852
  const value: Metadata = Metadata.create({
839
853
  ...Metadata.initialize(),
840
854
  atomics: [
@@ -857,9 +871,9 @@ export namespace RandomProgrammer {
857
871
  type: "number",
858
872
  value: maximum.toString(),
859
873
  }),
860
- ]
874
+ ],
861
875
  ],
862
- })
876
+ }),
863
877
  ],
864
878
  });
865
879
  return ts.factory.createNewExpression(
@@ -1013,48 +1027,50 @@ export namespace RandomProgrammer {
1013
1027
  ts.factory.createNewExpression(
1014
1028
  ts.factory.createIdentifier("Array"),
1015
1029
  undefined,
1016
- [ts.factory.createIdentifier("length")]
1030
+ [ts.factory.createIdentifier("length")],
1017
1031
  ),
1018
- ts.factory.createIdentifier("fill")
1032
+ ts.factory.createIdentifier("fill"),
1019
1033
  ),
1020
1034
  undefined,
1021
- [ts.factory.createNumericLiteral("0")]
1035
+ [ts.factory.createNumericLiteral("0")],
1022
1036
  ),
1023
- ts.factory.createIdentifier("map")
1037
+ ts.factory.createIdentifier("map"),
1024
1038
  ),
1025
1039
  undefined,
1026
- [ts.factory.createArrowFunction(
1027
- undefined,
1028
- undefined,
1029
- [],
1030
- undefined,
1031
- undefined,
1032
- decode_atomic({
1033
- context: props.context,
1034
- atomic: MetadataAtomic.create({
1035
- type: "number",
1036
- tags: [
1037
- [
1038
- ...MetadataCommentTagFactory.get({
1039
- kind: "type",
1040
- type: "number",
1041
- value: "uint32",
1042
- }),
1043
- ...MetadataCommentTagFactory.get({
1044
- kind: "minimum",
1045
- type: "number",
1046
- value: "0",
1047
- }),
1048
- ...MetadataCommentTagFactory.get({
1049
- kind: "maximum",
1050
- type: "number",
1051
- value: "255",
1052
- }),
1053
- ]
1054
- ],
1055
- }),
1056
- })[0]!
1057
- )]
1040
+ [
1041
+ ts.factory.createArrowFunction(
1042
+ undefined,
1043
+ undefined,
1044
+ [],
1045
+ undefined,
1046
+ undefined,
1047
+ decode_atomic({
1048
+ context: props.context,
1049
+ atomic: MetadataAtomic.create({
1050
+ type: "number",
1051
+ tags: [
1052
+ [
1053
+ ...MetadataCommentTagFactory.get({
1054
+ kind: "type",
1055
+ type: "number",
1056
+ value: "uint32",
1057
+ }),
1058
+ ...MetadataCommentTagFactory.get({
1059
+ kind: "minimum",
1060
+ type: "number",
1061
+ value: "0",
1062
+ }),
1063
+ ...MetadataCommentTagFactory.get({
1064
+ kind: "maximum",
1065
+ type: "number",
1066
+ value: "255",
1067
+ }),
1068
+ ],
1069
+ ],
1070
+ }),
1071
+ })[0]!,
1072
+ ),
1073
+ ],
1058
1074
  ),
1059
1075
  ExpressionFactory.number(0),
1060
1076
  ],
@@ -1095,15 +1111,16 @@ export namespace RandomProgrammer {
1095
1111
  [],
1096
1112
  [
1097
1113
  ts.factory.createCallExpression(
1098
- coalesce({
1099
- context,
1100
- method: "regex",
1101
- internal: "randomFormatRegex",
1102
- }),
1103
- undefined,
1104
- undefined,
1105
- )
1106
- ]);
1114
+ coalesce({
1115
+ context,
1116
+ method: "regex",
1117
+ internal: "randomFormatRegex",
1118
+ }),
1119
+ undefined,
1120
+ undefined,
1121
+ ),
1122
+ ],
1123
+ );
1107
1124
 
1108
1125
  const writeRangedString = (props: {
1109
1126
  context: ITypiaContext;
@@ -1114,27 +1131,29 @@ export namespace RandomProgrammer {
1114
1131
  context: props.context,
1115
1132
  atomic: MetadataAtomic.create({
1116
1133
  type: "string",
1117
- tags: [[
1118
- ...MetadataCommentTagFactory.get({
1119
- kind: "minLength",
1120
- type: "string",
1121
- value: props.minLength.toString(),
1122
- }),
1123
- ...MetadataCommentTagFactory.get({
1124
- kind: "maxLength",
1125
- type: "string",
1126
- value: props.maxLength.toString(),
1127
- }),
1128
- ]],
1134
+ tags: [
1135
+ [
1136
+ ...MetadataCommentTagFactory.get({
1137
+ kind: "minLength",
1138
+ type: "string",
1139
+ value: props.minLength.toString(),
1140
+ }),
1141
+ ...MetadataCommentTagFactory.get({
1142
+ kind: "maxLength",
1143
+ type: "string",
1144
+ value: props.maxLength.toString(),
1145
+ }),
1146
+ ],
1147
+ ],
1129
1148
  }),
1130
1149
  })[0]!;
1131
1150
  }
1132
1151
 
1133
1152
  const coalesce = (props: {
1134
- context: ITypiaContext,
1135
- method: string,
1136
- internal: string,
1137
- }): ts.Expression =>
1153
+ context: ITypiaContext;
1154
+ method: string;
1155
+ internal: string;
1156
+ }): ts.Expression =>
1138
1157
  ExpressionFactory.coalesce(
1139
1158
  ts.factory.createPropertyAccessChain(
1140
1159
  ts.factory.createIdentifier("_generator"),