typia 3.8.9 → 3.9.0-dev.20230604

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 (239) hide show
  1. package/lib/IRandomGenerator.d.ts +1 -0
  2. package/lib/factories/IdentifierFactory.js +2 -1
  3. package/lib/factories/IdentifierFactory.js.map +1 -1
  4. package/lib/factories/MetadataCollection.d.ts +22 -4
  5. package/lib/factories/MetadataCollection.js +121 -28
  6. package/lib/factories/MetadataCollection.js.map +1 -1
  7. package/lib/factories/MetadataFactory.d.ts +1 -0
  8. package/lib/factories/MetadataFactory.js +6 -48
  9. package/lib/factories/MetadataFactory.js.map +1 -1
  10. package/lib/factories/MetadataTagFactory.js +5 -3
  11. package/lib/factories/MetadataTagFactory.js.map +1 -1
  12. package/lib/factories/internal/metadata/emplace_metadata_array.d.ts +5 -0
  13. package/lib/factories/internal/metadata/emplace_metadata_array.js +38 -0
  14. package/lib/factories/internal/metadata/emplace_metadata_array.js.map +1 -0
  15. package/lib/factories/internal/metadata/emplace_metadata_definition.d.ts +5 -0
  16. package/lib/factories/internal/metadata/emplace_metadata_definition.js +38 -0
  17. package/lib/factories/internal/metadata/emplace_metadata_definition.js.map +1 -0
  18. package/lib/factories/internal/metadata/emplace_metadata_object.js +4 -4
  19. package/lib/factories/internal/metadata/emplace_metadata_object.js.map +1 -1
  20. package/lib/factories/internal/metadata/emplace_metadata_tuple.d.ts +5 -0
  21. package/lib/factories/internal/metadata/emplace_metadata_tuple.js +58 -0
  22. package/lib/factories/internal/metadata/emplace_metadata_tuple.js.map +1 -0
  23. package/lib/factories/internal/metadata/explore_metadata.d.ts +1 -1
  24. package/lib/factories/internal/metadata/explore_metadata.js +11 -34
  25. package/lib/factories/internal/metadata/explore_metadata.js.map +1 -1
  26. package/lib/factories/internal/metadata/iterate_metadata.d.ts +1 -1
  27. package/lib/factories/internal/metadata/iterate_metadata.js +5 -2
  28. package/lib/factories/internal/metadata/iterate_metadata.js.map +1 -1
  29. package/lib/factories/internal/metadata/iterate_metadata_array.js +4 -5
  30. package/lib/factories/internal/metadata/iterate_metadata_array.js.map +1 -1
  31. package/lib/factories/internal/metadata/iterate_metadata_collection.d.ts +2 -0
  32. package/lib/factories/internal/metadata/iterate_metadata_collection.js +151 -0
  33. package/lib/factories/internal/metadata/iterate_metadata_collection.js.map +1 -0
  34. package/lib/factories/internal/metadata/iterate_metadata_definition.d.ts +5 -0
  35. package/lib/factories/internal/metadata/iterate_metadata_definition.js +24 -0
  36. package/lib/factories/internal/metadata/iterate_metadata_definition.js.map +1 -0
  37. package/lib/factories/internal/metadata/iterate_metadata_object.js +1 -1
  38. package/lib/factories/internal/metadata/iterate_metadata_object.js.map +1 -1
  39. package/lib/factories/internal/metadata/iterate_metadata_sort.d.ts +3 -0
  40. package/lib/factories/internal/metadata/iterate_metadata_sort.js +156 -0
  41. package/lib/factories/internal/metadata/iterate_metadata_sort.js.map +1 -0
  42. package/lib/factories/internal/metadata/iterate_metadata_tuple.js +3 -26
  43. package/lib/factories/internal/metadata/iterate_metadata_tuple.js.map +1 -1
  44. package/lib/factories/internal/metadata/iterate_metadata_union.js +3 -3
  45. package/lib/factories/internal/metadata/iterate_metadata_union.js.map +1 -1
  46. package/lib/metadata/IMetadata.d.ts +3 -2
  47. package/lib/metadata/IMetadataAlias.d.ts +10 -0
  48. package/lib/metadata/IMetadataAlias.js +3 -0
  49. package/lib/metadata/IMetadataAlias.js.map +1 -0
  50. package/lib/metadata/IMetadataApplication.d.ts +2 -2
  51. package/lib/metadata/IMetadataArray.d.ts +8 -0
  52. package/lib/metadata/IMetadataArray.js +3 -0
  53. package/lib/metadata/IMetadataArray.js.map +1 -0
  54. package/lib/metadata/IMetadataCollection.d.ts +10 -0
  55. package/lib/metadata/IMetadataCollection.js +3 -0
  56. package/lib/metadata/IMetadataCollection.js.map +1 -0
  57. package/lib/metadata/IMetadataDictionary.js +3 -0
  58. package/lib/metadata/IMetadataDictionary.js.map +1 -0
  59. package/lib/metadata/IMetadataObject.d.ts +3 -0
  60. package/lib/metadata/IMetadataProperty.d.ts +1 -1
  61. package/lib/metadata/IMetadataTuple.d.ts +8 -0
  62. package/lib/metadata/IMetadataTuple.js +3 -0
  63. package/lib/metadata/IMetadataTuple.js.map +1 -0
  64. package/lib/metadata/Metadata.d.ts +24 -21
  65. package/lib/metadata/Metadata.js +323 -262
  66. package/lib/metadata/Metadata.js.map +1 -1
  67. package/lib/metadata/MetadataAlias.d.ts +16 -0
  68. package/lib/metadata/MetadataAlias.js +39 -0
  69. package/lib/metadata/MetadataAlias.js.map +1 -0
  70. package/lib/metadata/MetadataArray.d.ts +12 -0
  71. package/lib/metadata/MetadataArray.js +36 -0
  72. package/lib/metadata/MetadataArray.js.map +1 -0
  73. package/lib/metadata/MetadataObject.d.ts +4 -0
  74. package/lib/metadata/MetadataObject.js +3 -5
  75. package/lib/metadata/MetadataObject.js.map +1 -1
  76. package/lib/metadata/MetadataProperty.d.ts +1 -1
  77. package/lib/metadata/MetadataProperty.js +3 -3
  78. package/lib/metadata/MetadataProperty.js.map +1 -1
  79. package/lib/metadata/MetadataTuple.d.ts +12 -0
  80. package/lib/metadata/MetadataTuple.js +36 -0
  81. package/lib/metadata/MetadataTuple.js.map +1 -0
  82. package/lib/programmers/ApplicationProgrammer.js +3 -3
  83. package/lib/programmers/ApplicationProgrammer.js.map +1 -1
  84. package/lib/programmers/AssertProgrammer.js +13 -21
  85. package/lib/programmers/AssertProgrammer.js.map +1 -1
  86. package/lib/programmers/CheckerProgrammer.d.ts +6 -7
  87. package/lib/programmers/CheckerProgrammer.js +276 -185
  88. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  89. package/lib/programmers/CloneProgrammer.js +312 -204
  90. package/lib/programmers/CloneProgrammer.js.map +1 -1
  91. package/lib/programmers/FeatureProgrammer.d.ts +21 -27
  92. package/lib/programmers/FeatureProgrammer.js +60 -63
  93. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  94. package/lib/programmers/IsProgrammer.d.ts +3 -3
  95. package/lib/programmers/IsProgrammer.js +43 -28
  96. package/lib/programmers/IsProgrammer.js.map +1 -1
  97. package/lib/programmers/LiteralsProgrammer.js +1 -0
  98. package/lib/programmers/LiteralsProgrammer.js.map +1 -1
  99. package/lib/programmers/PruneProgrammer.js +270 -176
  100. package/lib/programmers/PruneProgrammer.js.map +1 -1
  101. package/lib/programmers/RandomProgrammer.js +124 -32
  102. package/lib/programmers/RandomProgrammer.js.map +1 -1
  103. package/lib/programmers/StringifyProgrammer.js +462 -356
  104. package/lib/programmers/StringifyProgrammer.js.map +1 -1
  105. package/lib/programmers/ValidateProgrammer.js +9 -9
  106. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  107. package/lib/programmers/helpers/FunctionImporeter.d.ts +2 -0
  108. package/lib/programmers/helpers/FunctionImporeter.js +17 -2
  109. package/lib/programmers/helpers/FunctionImporeter.js.map +1 -1
  110. package/lib/programmers/helpers/RandomJoiner.d.ts +6 -1
  111. package/lib/programmers/helpers/RandomJoiner.js +11 -14
  112. package/lib/programmers/helpers/RandomJoiner.js.map +1 -1
  113. package/lib/programmers/helpers/UnionExplorer.d.ts +12 -10
  114. package/lib/programmers/helpers/UnionExplorer.js +47 -12
  115. package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
  116. package/lib/programmers/helpers/UnionPredicator.js +1 -1
  117. package/lib/programmers/helpers/UnionPredicator.js.map +1 -1
  118. package/lib/programmers/helpers/disable_function_importer_declare.js +1 -0
  119. package/lib/programmers/helpers/disable_function_importer_declare.js.map +1 -1
  120. package/lib/programmers/internal/JSON_SCHEMA_PREFIX.d.ts +1 -1
  121. package/lib/programmers/internal/JSON_SCHEMA_PREFIX.js +2 -2
  122. package/lib/programmers/internal/JSON_SCHEMA_PREFIX.js.map +1 -1
  123. package/lib/programmers/internal/application_array.js +41 -21
  124. package/lib/programmers/internal/application_array.js.map +1 -1
  125. package/lib/programmers/internal/application_boolean.js +1 -1
  126. package/lib/programmers/internal/application_boolean.js.map +1 -1
  127. package/lib/programmers/internal/application_constant.js +2 -2
  128. package/lib/programmers/internal/application_constant.js.map +1 -1
  129. package/lib/programmers/internal/application_default.js +3 -3
  130. package/lib/programmers/internal/application_default.js.map +1 -1
  131. package/lib/programmers/internal/application_definition.d.ts +5 -0
  132. package/lib/programmers/internal/application_definition.js +45 -0
  133. package/lib/programmers/internal/application_definition.js.map +1 -0
  134. package/lib/programmers/internal/application_native.js +14 -11
  135. package/lib/programmers/internal/application_native.js.map +1 -1
  136. package/lib/programmers/internal/application_object.js +19 -14
  137. package/lib/programmers/internal/application_object.js.map +1 -1
  138. package/lib/programmers/internal/application_schema.js +28 -31
  139. package/lib/programmers/internal/application_schema.js.map +1 -1
  140. package/lib/programmers/internal/application_tuple.js +34 -5
  141. package/lib/programmers/internal/application_tuple.js.map +1 -1
  142. package/lib/programmers/internal/check_union_array_like.js +54 -63
  143. package/lib/programmers/internal/check_union_array_like.js.map +1 -1
  144. package/lib/programmers/internal/feature_object_entries.js +2 -2
  145. package/lib/programmers/internal/feature_object_entries.js.map +1 -1
  146. package/lib/programmers/internal/wrap_metadata_rest_tuple.d.ts +2 -0
  147. package/lib/programmers/internal/wrap_metadata_rest_tuple.js +18 -0
  148. package/lib/programmers/internal/wrap_metadata_rest_tuple.js.map +1 -0
  149. package/lib/schemas/IJsonApplication.d.ts +0 -4
  150. package/lib/schemas/IJsonComponents.d.ts +16 -4
  151. package/lib/schemas/IJsonSchema.d.ts +1 -1
  152. package/lib/transformers/CallExpressionTransformer.js.map +1 -1
  153. package/lib/transformers/FileTransformer.js +3 -3
  154. package/lib/transformers/FileTransformer.js.map +1 -1
  155. package/lib/transformers/features/miscellaneous/ApplicationTransformer.js +1 -0
  156. package/lib/transformers/features/miscellaneous/ApplicationTransformer.js.map +1 -1
  157. package/lib/transformers/features/miscellaneous/MetadataTransformer.js +2 -1
  158. package/lib/transformers/features/miscellaneous/MetadataTransformer.js.map +1 -1
  159. package/lib/utils/ArrayUtil.d.ts +1 -1
  160. package/lib/utils/ArrayUtil.js +2 -1
  161. package/lib/utils/ArrayUtil.js.map +1 -1
  162. package/lib/utils/RandomGenerator.js +2 -3
  163. package/lib/utils/RandomGenerator.js.map +1 -1
  164. package/package.json +6 -1
  165. package/src/IRandomGenerator.ts +1 -0
  166. package/src/factories/IdentifierFactory.ts +3 -1
  167. package/src/factories/MetadataCollection.ts +170 -34
  168. package/src/factories/MetadataFactory.ts +7 -29
  169. package/src/factories/MetadataTagFactory.ts +6 -3
  170. package/src/factories/internal/metadata/emplace_metadata_array.ts +34 -0
  171. package/src/factories/internal/metadata/emplace_metadata_definition.ts +35 -0
  172. package/src/factories/internal/metadata/emplace_metadata_object.ts +4 -4
  173. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +50 -0
  174. package/src/factories/internal/metadata/explore_metadata.ts +18 -44
  175. package/src/factories/internal/metadata/iterate_metadata.ts +13 -3
  176. package/src/factories/internal/metadata/iterate_metadata_array.ts +7 -11
  177. package/src/factories/internal/metadata/iterate_metadata_collection.ts +130 -0
  178. package/src/factories/internal/metadata/iterate_metadata_definition.ts +30 -0
  179. package/src/factories/internal/metadata/iterate_metadata_object.ts +1 -0
  180. package/src/factories/internal/metadata/iterate_metadata_sort.ts +68 -0
  181. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +7 -31
  182. package/src/factories/internal/metadata/iterate_metadata_union.ts +13 -2
  183. package/src/metadata/IMetadata.ts +3 -2
  184. package/src/metadata/IMetadataAlias.ts +12 -0
  185. package/src/metadata/IMetadataApplication.ts +2 -2
  186. package/src/metadata/IMetadataArray.ts +10 -0
  187. package/src/metadata/IMetadataCollection.ts +11 -0
  188. package/src/metadata/IMetadataDictionary.ts +14 -0
  189. package/src/metadata/IMetadataObject.ts +2 -13
  190. package/src/metadata/IMetadataProperty.ts +1 -1
  191. package/src/metadata/IMetadataTuple.ts +10 -0
  192. package/src/metadata/Metadata.ts +180 -134
  193. package/src/metadata/MetadataAlias.ts +61 -0
  194. package/src/metadata/MetadataArray.ts +52 -0
  195. package/src/metadata/MetadataObject.ts +7 -20
  196. package/src/metadata/MetadataProperty.ts +5 -5
  197. package/src/metadata/MetadataTuple.ts +53 -0
  198. package/src/programmers/ApplicationProgrammer.ts +1 -2
  199. package/src/programmers/AssertProgrammer.ts +45 -39
  200. package/src/programmers/CheckerProgrammer.ts +612 -331
  201. package/src/programmers/CloneProgrammer.ts +344 -138
  202. package/src/programmers/FeatureProgrammer.ts +110 -115
  203. package/src/programmers/IsProgrammer.ts +86 -52
  204. package/src/programmers/LiteralsProgrammer.ts +1 -0
  205. package/src/programmers/PruneProgrammer.ts +304 -101
  206. package/src/programmers/RandomProgrammer.ts +227 -61
  207. package/src/programmers/StringifyProgrammer.ts +374 -182
  208. package/src/programmers/ValidateProgrammer.ts +41 -44
  209. package/src/programmers/helpers/FunctionImporeter.ts +35 -11
  210. package/src/programmers/helpers/RandomJoiner.ts +25 -13
  211. package/src/programmers/helpers/UnionExplorer.ts +76 -50
  212. package/src/programmers/helpers/UnionPredicator.ts +1 -1
  213. package/src/programmers/helpers/disable_function_importer_declare.ts +5 -0
  214. package/src/programmers/internal/JSON_SCHEMA_PREFIX.ts +1 -1
  215. package/src/programmers/internal/application_array.ts +48 -16
  216. package/src/programmers/internal/application_boolean.ts +1 -1
  217. package/src/programmers/internal/application_constant.ts +2 -2
  218. package/src/programmers/internal/application_default.ts +3 -3
  219. package/src/programmers/internal/application_definition.ts +45 -0
  220. package/src/programmers/internal/application_native.ts +15 -12
  221. package/src/programmers/internal/application_object.ts +17 -12
  222. package/src/programmers/internal/application_schema.ts +31 -65
  223. package/src/programmers/internal/application_tuple.ts +63 -13
  224. package/src/programmers/internal/check_union_array_like.ts +249 -191
  225. package/src/programmers/internal/feature_object_entries.ts +2 -2
  226. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +16 -0
  227. package/src/schemas/IJsonApplication.ts +0 -5
  228. package/src/schemas/IJsonComponents.ts +17 -5
  229. package/src/schemas/IJsonSchema.ts +1 -1
  230. package/src/transformers/CallExpressionTransformer.ts +2 -0
  231. package/src/transformers/FileTransformer.ts +8 -8
  232. package/src/transformers/features/miscellaneous/ApplicationTransformer.ts +1 -0
  233. package/src/transformers/features/miscellaneous/MetadataTransformer.ts +2 -1
  234. package/src/utils/ArrayUtil.ts +3 -2
  235. package/src/utils/RandomGenerator.ts +3 -3
  236. package/lib/programmers/internal/check_union_tuple.js +0 -15
  237. package/lib/programmers/internal/check_union_tuple.js.map +0 -1
  238. package/src/programmers/internal/check_union_tuple.ts +0 -33
  239. /package/lib/{programmers/internal/check_union_tuple.d.ts → metadata/IMetadataDictionary.d.ts} +0 -0
@@ -3,21 +3,19 @@ import { MetadataCollection } from "../factories/MetadataCollection";
3
3
  import { IJsDocTagInfo } from "../metadata/IJsDocTagInfo";
4
4
  import { IMetadataTag } from "../metadata/IMetadataTag";
5
5
  import { Metadata } from "../metadata/Metadata";
6
+ import { MetadataArray } from "../metadata/MetadataArray";
6
7
  import { MetadataObject } from "../metadata/MetadataObject";
7
8
  import { IProject } from "../transformers/IProject";
9
+ import { CheckerProgrammer } from "./CheckerProgrammer";
8
10
  import { FunctionImporter } from "./helpers/FunctionImporeter";
9
11
  import { IExpressionEntry } from "./helpers/IExpressionEntry";
10
12
  export declare namespace FeatureProgrammer {
11
13
  interface IConfig<Output extends ts.ConciseBody = ts.ConciseBody> {
12
14
  types: IConfig.ITypes;
13
15
  /**
14
- * Prefix name of functions for specific object types.
16
+ * Prefix name of internal functions for specific types.
15
17
  */
16
- functors: string;
17
- /**
18
- * Prefix name of functions for union object types.
19
- */
20
- unioners: string;
18
+ prefix: string;
21
19
  /**
22
20
  * Whether to archive access path or not.
23
21
  */
@@ -34,7 +32,7 @@ export declare namespace FeatureProgrammer {
34
32
  /**
35
33
  * Decoder, station of every types.
36
34
  */
37
- decoder: Decoder<Metadata, Output>;
35
+ decoder: () => Decoder<Metadata, Output>;
38
36
  /**
39
37
  * Object configurator.
40
38
  */
@@ -42,7 +40,7 @@ export declare namespace FeatureProgrammer {
42
40
  /**
43
41
  * Generator of functions for object types.
44
42
  */
45
- generator?: Partial<IConfig.IGenerator>;
43
+ generator: IConfig.IGenerator;
46
44
  }
47
45
  namespace IConfig {
48
46
  interface ITypes {
@@ -53,11 +51,11 @@ export declare namespace FeatureProgrammer {
53
51
  /**
54
52
  * Type checker when union object type comes.
55
53
  */
56
- checker: Decoder<Metadata, ts.Expression>;
54
+ checker: () => Decoder<Metadata, ts.Expression>;
57
55
  /**
58
56
  * Decoder, function call expression generator of specific typed objects.
59
57
  */
60
- decoder: Decoder<MetadataObject, ts.Expression>;
58
+ decoder: () => Decoder<MetadataObject, ts.Expression>;
61
59
  /**
62
60
  * Joiner of expressions from properties.
63
61
  */
@@ -125,21 +123,15 @@ export declare namespace FeatureProgrammer {
125
123
  type?: ts.TypeNode;
126
124
  }
127
125
  interface IGenerator {
128
- /**
129
- *
130
- * @param col
131
- */
132
- functors(col: MetadataCollection): ts.VariableStatement[];
133
- /**
134
- *
135
- * @param col
136
- */
137
- unioners(col: MetadataCollection): ts.VariableStatement[];
126
+ objects?(): (col: MetadataCollection) => ts.VariableStatement[];
127
+ unions?(): (col: MetadataCollection) => ts.VariableStatement[];
128
+ arrays(): (col: MetadataCollection) => ts.VariableStatement[];
129
+ tuples(): (col: MetadataCollection) => ts.VariableStatement[];
138
130
  }
139
131
  }
140
132
  interface IExplore {
141
133
  tracable: boolean;
142
- source: "top" | "object";
134
+ source: "top" | "function";
143
135
  from: "top" | "array" | "object";
144
136
  postfix: string;
145
137
  start?: number;
@@ -147,10 +139,12 @@ export declare namespace FeatureProgrammer {
147
139
  interface Decoder<T, Output extends ts.ConciseBody = ts.ConciseBody> {
148
140
  (input: ts.Expression, target: T, explore: IExplore, metaTags: IMetadataTag[], jsDocTags: ts.JSDocTagInfo[]): Output;
149
141
  }
150
- const analyze: (project: IProject) => (config: IConfig) => (importer: FunctionImporter) => (type: ts.Type, name?: string) => ts.ArrowFunction;
151
- const write_functors: (config: IConfig) => (importer: FunctionImporter) => (collection: MetadataCollection) => ts.VariableStatement[];
152
- const write_unioners: (config: IConfig) => (importer: FunctionImporter) => (collection: MetadataCollection) => ts.VariableStatement[];
153
- const decode_array: (config: Pick<IConfig, "trace" | "path" | "decoder">) => (importer: FunctionImporter) => (combiner: (input: ts.Expression, arrow: ts.ArrowFunction, metaTags: IMetadataTag[], jsDocTags: ts.JSDocTagInfo[]) => ts.Expression) => (input: ts.Expression, meta: Metadata, explore: IExplore, metaTags: IMetadataTag[], jsDocTags: IJsDocTagInfo[]) => ts.Expression;
154
- const decode_object: (config: Pick<IConfig, "trace" | "path" | "functors">) => (importer: FunctionImporter) => (input: ts.Expression, obj: MetadataObject, explore: IExplore) => ts.CallExpression;
155
- const get_object_arguments: (config: Pick<IConfig, "path" | "trace">) => (explore: FeatureProgrammer.IExplore) => (input: ts.Expression) => ts.Expression[];
142
+ const write: (project: IProject) => (config: IConfig) => (importer: FunctionImporter) => (type: ts.Type, name?: string) => ts.ArrowFunction;
143
+ const write_object_functions: (config: IConfig) => (importer: FunctionImporter) => (collection: MetadataCollection) => ts.VariableStatement[];
144
+ const write_union_functions: (config: IConfig) => (collection: MetadataCollection) => ts.VariableStatement[];
145
+ const decode_array: (config: Pick<IConfig, "trace" | "path" | "decoder" | "prefix">) => (importer: FunctionImporter) => (combiner: (input: ts.Expression, arrow: ts.ArrowFunction, metaTags: IMetadataTag[], jsDocTags: ts.JSDocTagInfo[]) => ts.Expression) => (input: ts.Expression, array: MetadataArray, explore: IExplore, metaTags: IMetadataTag[], jsDocTags: IJsDocTagInfo[]) => ts.Expression;
146
+ const decode_object: (config: Pick<IConfig, "trace" | "path" | "prefix">) => (importer: FunctionImporter) => (input: ts.Expression, obj: MetadataObject, explore: IExplore) => ts.CallExpression;
147
+ const index: (start: number | null) => (prev: string) => (rand: string) => string;
148
+ const argumentsArray: (config: Pick<IConfig, "path" | "trace">) => (explore: FeatureProgrammer.IExplore) => (input: ts.Expression) => ts.Expression[];
149
+ const parameterDeclarations: (props: Pick<CheckerProgrammer.IConfig, "path" | "trace">) => (type: ts.TypeNode) => (input: ts.Identifier) => ts.ParameterDeclaration[];
156
150
  }
@@ -38,25 +38,33 @@ var UnionExplorer_1 = require("./helpers/UnionExplorer");
38
38
  var feature_object_entries_1 = require("./internal/feature_object_entries");
39
39
  var FeatureProgrammer;
40
40
  (function (FeatureProgrammer) {
41
- FeatureProgrammer.analyze = function (project) {
41
+ FeatureProgrammer.write = function (project) {
42
42
  return function (config) {
43
43
  return function (importer) {
44
44
  return function (type, name) {
45
- var _a, _b, _c, _d, _e;
46
- var _f = __read(config.initializer(project)(type), 2), collection = _f[0], meta = _f[1];
47
- var output = config.decoder(ValueFactory_1.ValueFactory.INPUT(), meta, {
45
+ var _a, _b, _c, _d, _e, _f, _g;
46
+ var _h = __read(config.initializer(project)(type), 2), collection = _h[0], meta = _h[1];
47
+ var output = config.decoder()(ValueFactory_1.ValueFactory.INPUT(), meta, {
48
48
  tracable: config.path || config.trace,
49
49
  source: "top",
50
50
  from: "top",
51
51
  postfix: '""',
52
52
  }, [], []);
53
- var functors = ((_b = (_a = config.generator) === null || _a === void 0 ? void 0 : _a.functors) !== null && _b !== void 0 ? _b : FeatureProgrammer.write_functors(config)(importer))(collection);
54
- var unioners = ((_d = (_c = config.generator) === null || _c === void 0 ? void 0 : _c.unioners) !== null && _d !== void 0 ? _d : FeatureProgrammer.write_unioners(config)(importer))(collection);
55
- var added = ((_e = config.addition) !== null && _e !== void 0 ? _e : (function () { return []; }))(collection);
56
- return typescript_1.default.factory.createArrowFunction(undefined, undefined, PARAMETERS(config)(config.types.input(type, name))(ValueFactory_1.ValueFactory.INPUT()), config.types.output(type, name), undefined, typescript_1.default.factory.createBlock(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(added), false), __read(functors.filter(function (_, i) {
57
- return importer.hasLocal("".concat(config.functors).concat(i));
58
- })), false), __read(unioners.filter(function (_, i) {
59
- return importer.hasLocal("".concat(config.unioners).concat(i));
53
+ var functions = {
54
+ objects: ((_c = (_b = (_a = config.generator).objects) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : FeatureProgrammer.write_object_functions(config)(importer))(collection),
55
+ unions: ((_f = (_e = (_d = config.generator).unions) === null || _e === void 0 ? void 0 : _e.call(_d)) !== null && _f !== void 0 ? _f : FeatureProgrammer.write_union_functions(config))(collection),
56
+ arrays: config.generator.arrays()(collection),
57
+ tuples: config.generator.tuples()(collection),
58
+ };
59
+ var added = ((_g = config.addition) !== null && _g !== void 0 ? _g : (function () { return []; }))(collection);
60
+ return typescript_1.default.factory.createArrowFunction(undefined, undefined, FeatureProgrammer.parameterDeclarations(config)(config.types.input(type, name))(ValueFactory_1.ValueFactory.INPUT()), config.types.output(type, name), undefined, typescript_1.default.factory.createBlock(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(added), false), __read(functions.objects.filter(function (_, i) {
61
+ return importer.hasLocal("".concat(config.prefix, "o").concat(i));
62
+ })), false), __read(functions.unions.filter(function (_, i) {
63
+ return importer.hasLocal("".concat(config.prefix, "u").concat(i));
64
+ })), false), __read(functions.arrays.filter(function (_, i) {
65
+ return importer.hasLocal("".concat(config.prefix, "a").concat(i));
66
+ })), false), __read(functions.tuples.filter(function (_, i) {
67
+ return importer.hasLocal("".concat(config.prefix, "t").concat(i));
60
68
  })), false), __read((typescript_1.default.isBlock(output)
61
69
  ? output.statements
62
70
  : [typescript_1.default.factory.createReturnStatement(output)])), false), true));
@@ -64,43 +72,32 @@ var FeatureProgrammer;
64
72
  };
65
73
  };
66
74
  };
67
- FeatureProgrammer.write_functors = function (config) {
75
+ FeatureProgrammer.write_object_functions = function (config) {
68
76
  return function (importer) {
69
77
  return function (collection) {
70
78
  return collection
71
79
  .objects()
72
80
  .map(function (obj, i) {
73
- return StatementFactory_1.StatementFactory.constant("".concat(config.functors).concat(i), write_object(config)(importer)(obj));
74
- });
75
- };
76
- };
77
- };
78
- FeatureProgrammer.write_unioners = function (config) {
79
- return function (importer) {
80
- return function (collection) {
81
- return collection
82
- .unions()
83
- .map(function (union, i) {
84
- return StatementFactory_1.StatementFactory.constant(importer.useLocal("".concat(config.unioners).concat(i)), write_union(config)(union));
81
+ var _a;
82
+ return StatementFactory_1.StatementFactory.constant("".concat(config.prefix, "o").concat(i), typescript_1.default.factory.createArrowFunction(undefined, undefined, FeatureProgrammer.parameterDeclarations(config)(TypeFactory_1.TypeFactory.keyword("any"))(ValueFactory_1.ValueFactory.INPUT()), (_a = config.objector.type) !== null && _a !== void 0 ? _a : TypeFactory_1.TypeFactory.keyword("any"), undefined, config.objector.joiner(typescript_1.default.factory.createIdentifier("input"), (0, feature_object_entries_1.feature_object_entries)(config)(importer)(obj)(typescript_1.default.factory.createIdentifier("input")), obj)));
85
83
  });
86
84
  };
87
85
  };
88
86
  };
89
- var write_object = function (config) {
90
- return function (importer) {
91
- return function (obj) {
92
- var _a;
93
- return typescript_1.default.factory.createArrowFunction(undefined, undefined, PARAMETERS(config)(TypeFactory_1.TypeFactory.keyword("any"))(ValueFactory_1.ValueFactory.INPUT()), (_a = config.objector.type) !== null && _a !== void 0 ? _a : TypeFactory_1.TypeFactory.keyword("any"), undefined, config.objector.joiner(typescript_1.default.factory.createIdentifier("input"), (0, feature_object_entries_1.feature_object_entries)(config)(importer)(obj)(typescript_1.default.factory.createIdentifier("input")), obj));
94
- };
95
- };
96
- };
87
+ FeatureProgrammer.write_union_functions = function (config) { return function (collection) {
88
+ return collection
89
+ .unions()
90
+ .map(function (union, i) {
91
+ return StatementFactory_1.StatementFactory.constant("".concat(config.prefix, "u").concat(i), write_union(config)(union));
92
+ });
93
+ }; };
97
94
  var write_union = function (config) {
98
95
  var explorer = UnionExplorer_1.UnionExplorer.object(config);
99
96
  var input = ValueFactory_1.ValueFactory.INPUT();
100
97
  return function (meta) {
101
- return typescript_1.default.factory.createArrowFunction(undefined, undefined, PARAMETERS(config)(TypeFactory_1.TypeFactory.keyword("any"))(ValueFactory_1.ValueFactory.INPUT()), TypeFactory_1.TypeFactory.keyword("any"), undefined, explorer(input, meta, {
98
+ return typescript_1.default.factory.createArrowFunction(undefined, undefined, FeatureProgrammer.parameterDeclarations(config)(TypeFactory_1.TypeFactory.keyword("any"))(ValueFactory_1.ValueFactory.INPUT()), TypeFactory_1.TypeFactory.keyword("any"), undefined, explorer(input, meta, {
102
99
  tracable: config.path || config.trace,
103
- source: "object",
100
+ source: "function",
104
101
  from: "object",
105
102
  postfix: "",
106
103
  }, [], []));
@@ -115,15 +112,15 @@ var FeatureProgrammer;
115
112
  IdentifierFactory_1.IdentifierFactory.parameter("_index" + rand, TypeFactory_1.TypeFactory.keyword("number")),
116
113
  ]
117
114
  : [];
118
- return function (input, meta, explore, metaTags, jsDocTags) {
115
+ return function (input, array, explore, metaTags, jsDocTags) {
119
116
  var _a;
120
117
  var arrow = typescript_1.default.factory.createArrowFunction(undefined, undefined, __spreadArray([
121
118
  IdentifierFactory_1.IdentifierFactory.parameter("elem", TypeFactory_1.TypeFactory.keyword("any"))
122
- ], __read(tail), false), undefined, undefined, config.decoder(ValueFactory_1.ValueFactory.INPUT("elem"), meta, {
119
+ ], __read(tail), false), undefined, undefined, config.decoder()(ValueFactory_1.ValueFactory.INPUT("elem"), array.value, {
123
120
  tracable: explore.tracable,
124
121
  source: explore.source,
125
122
  from: "array",
126
- postfix: INDEX_SYMBOL((_a = explore.start) !== null && _a !== void 0 ? _a : null)(explore.postfix)(rand),
123
+ postfix: FeatureProgrammer.index((_a = explore.start) !== null && _a !== void 0 ? _a : null)(explore.postfix)(rand),
127
124
  }, metaTags, jsDocTags));
128
125
  return combiner(input, arrow, metaTags, jsDocTags);
129
126
  };
@@ -133,11 +130,21 @@ var FeatureProgrammer;
133
130
  FeatureProgrammer.decode_object = function (config) {
134
131
  return function (importer) {
135
132
  return function (input, obj, explore) {
136
- return typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier(importer.useLocal("".concat(config.functors).concat(obj.index))), undefined, FeatureProgrammer.get_object_arguments(config)(explore)(input));
133
+ return typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier(importer.useLocal("".concat(config.prefix, "o").concat(obj.index))), undefined, FeatureProgrammer.argumentsArray(config)(explore)(input));
137
134
  };
138
135
  };
139
136
  };
140
- FeatureProgrammer.get_object_arguments = function (config) {
137
+ FeatureProgrammer.index = function (start) { return function (prev) { return function (rand) {
138
+ var tail = start !== null
139
+ ? "\"[\" + (".concat(start, " + _index").concat(rand, ") + \"]\"")
140
+ : "\"[\" + _index".concat(rand, " + \"]\"");
141
+ if (prev === "")
142
+ return tail;
143
+ else if (prev[prev.length - 1] === "\"")
144
+ return prev.substring(0, prev.length - 1) + tail.substring(1);
145
+ return prev + " + ".concat(tail);
146
+ }; }; };
147
+ FeatureProgrammer.argumentsArray = function (config) {
141
148
  return function (explore) {
142
149
  var tail = config.path === false && config.trace === false
143
150
  ? []
@@ -146,7 +153,7 @@ var FeatureProgrammer;
146
153
  typescript_1.default.factory.createIdentifier(explore.postfix
147
154
  ? "_path + ".concat(explore.postfix)
148
155
  : "_path"),
149
- explore.source === "object"
156
+ explore.source === "function"
150
157
  ? typescript_1.default.factory.createIdentifier("".concat(explore.tracable, " && _exceptionable"))
151
158
  : explore.tracable
152
159
  ? typescript_1.default.factory.createTrue()
@@ -159,7 +166,7 @@ var FeatureProgrammer;
159
166
  : "_path"),
160
167
  ]
161
168
  : [
162
- explore.source === "object"
169
+ explore.source === "function"
163
170
  ? typescript_1.default.factory.createIdentifier("".concat(explore.tracable, " && _exceptionable"))
164
171
  : explore.tracable
165
172
  ? typescript_1.default.factory.createTrue()
@@ -168,27 +175,17 @@ var FeatureProgrammer;
168
175
  return function (input) { return __spreadArray([input], __read(tail), false); };
169
176
  };
170
177
  };
171
- })(FeatureProgrammer = exports.FeatureProgrammer || (exports.FeatureProgrammer = {}));
172
- var INDEX_SYMBOL = function (start) { return function (prev) { return function (rand) {
173
- var tail = start !== null
174
- ? "\"[\" + (".concat(start, " + _index").concat(rand, ") + \"]\"")
175
- : "\"[\" + _index".concat(rand, " + \"]\"");
176
- if (prev === "")
177
- return tail;
178
- else if (prev[prev.length - 1] === "\"")
179
- return prev.substring(0, prev.length - 1) + tail.substring(1);
180
- return prev + " + ".concat(tail);
181
- }; }; };
182
- var PARAMETERS = function (props) {
183
- return function (type) {
184
- var tail = [];
185
- if (props.path)
186
- tail.push(IdentifierFactory_1.IdentifierFactory.parameter("_path", TypeFactory_1.TypeFactory.keyword("string")));
187
- if (props.trace)
188
- tail.push(IdentifierFactory_1.IdentifierFactory.parameter("_exceptionable", TypeFactory_1.TypeFactory.keyword("boolean"), typescript_1.default.factory.createTrue()));
189
- return function (input) { return __spreadArray([
190
- IdentifierFactory_1.IdentifierFactory.parameter(input, type)
191
- ], __read(tail), false); };
178
+ FeatureProgrammer.parameterDeclarations = function (props) {
179
+ return function (type) {
180
+ var tail = [];
181
+ if (props.path)
182
+ tail.push(IdentifierFactory_1.IdentifierFactory.parameter("_path", TypeFactory_1.TypeFactory.keyword("string")));
183
+ if (props.trace)
184
+ tail.push(IdentifierFactory_1.IdentifierFactory.parameter("_exceptionable", TypeFactory_1.TypeFactory.keyword("boolean"), typescript_1.default.factory.createTrue()));
185
+ return function (input) { return __spreadArray([
186
+ IdentifierFactory_1.IdentifierFactory.parameter(input, type)
187
+ ], __read(tail), false); };
188
+ };
192
189
  };
193
- };
190
+ })(FeatureProgrammer = exports.FeatureProgrammer || (exports.FeatureProgrammer = {}));
194
191
  //# sourceMappingURL=FeatureProgrammer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureProgrammer.js","sourceRoot":"","sources":["../../src/programmers/FeatureProgrammer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FeatureProgrammer.js","sourceRoot":"","sources":["../../src/programmers/FeatureProgrammer.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import ts from "typescript";
2
+ import { MetadataCollection } from "../factories/MetadataCollection";
2
3
  import { MetadataObject } from "../metadata/MetadataObject";
3
4
  import { IProject } from "../transformers/IProject";
4
5
  import { CheckerProgrammer } from "./CheckerProgrammer";
@@ -18,9 +19,8 @@ export declare namespace IsProgrammer {
18
19
  */
19
20
  const generate: (project: IProject, modulo: ts.LeftHandSideExpression, equals?: boolean) => (type: ts.Type, name?: string) => ts.ArrowFunction;
20
21
  const write: (project: IProject) => (modulo: ts.LeftHandSideExpression, disable?: boolean) => (equals: boolean) => (type: ts.Type, name?: string | undefined) => ts.ArrowFunction;
21
- const write_functors: (project: IProject) => (importer: FunctionImporter) => (collection: import("../factories/MetadataCollection").MetadataCollection) => ts.VariableStatement[];
22
- const write_unioners: (project: IProject) => (importer: FunctionImporter) => (collection: import("../factories/MetadataCollection").MetadataCollection) => ts.VariableStatement[];
23
- const decode: (project: IProject, importer: FunctionImporter) => (input: ts.Expression, meta: import("../metadata/Metadata").Metadata, explore: import("./FeatureProgrammer").FeatureProgrammer.IExplore, metaTags: import("../metadata/IMetadataTag").IMetadataTag[], jsDocTags: ts.JSDocTagInfo[]) => ts.Expression;
22
+ const write_function_statements: (project: IProject) => (importer: FunctionImporter) => (collection: MetadataCollection) => ts.VariableStatement[];
23
+ const decode: (project: IProject) => (importer: FunctionImporter) => (input: ts.Expression, meta: import("../metadata/Metadata").Metadata, explore: import("./FeatureProgrammer").FeatureProgrammer.IExplore, metaTags: import("../metadata/IMetadataTag").IMetadataTag[], jsDocTags: ts.JSDocTagInfo[]) => ts.Expression;
24
24
  const decode_object: (importer: FunctionImporter) => (input: ts.Expression, obj: MetadataObject, explore: import("./FeatureProgrammer").FeatureProgrammer.IExplore) => ts.CallExpression;
25
25
  const decode_to_json: (checkNull: boolean) => (input: ts.Expression) => ts.Expression;
26
26
  const decode_functional: (input: ts.Expression) => ts.BinaryExpression;
@@ -43,6 +43,7 @@ exports.IsProgrammer = void 0;
43
43
  var typescript_1 = __importDefault(require("typescript"));
44
44
  var ExpressionFactory_1 = require("../factories/ExpressionFactory");
45
45
  var IdentifierFactory_1 = require("../factories/IdentifierFactory");
46
+ var TypeFactory_1 = require("../factories/TypeFactory");
46
47
  var ValueFactory_1 = require("../factories/ValueFactory");
47
48
  var CheckerProgrammer_1 = require("./CheckerProgrammer");
48
49
  var FunctionImporeter_1 = require("./helpers/FunctionImporeter");
@@ -54,8 +55,7 @@ var IsProgrammer;
54
55
  (function (IsProgrammer) {
55
56
  IsProgrammer.configure = function (options) {
56
57
  return function (importer) { return ({
57
- functors: "$io",
58
- unioners: "$iu",
58
+ prefix: "$i",
59
59
  trace: false,
60
60
  path: false,
61
61
  equals: !!(options === null || options === void 0 ? void 0 : options.object),
@@ -111,7 +111,7 @@ var IsProgrammer;
111
111
  IsProgrammer.write = function (project) {
112
112
  return function (modulo, disable) {
113
113
  return function (equals) {
114
- var importer = disable === true
114
+ var importer = disable === {}
115
115
  ? (0, disable_function_importer_declare_1.disable_function_importer_declare)(new FunctionImporeter_1.FunctionImporter())
116
116
  : new FunctionImporeter_1.FunctionImporter();
117
117
  var config = __assign(__assign({}, IsProgrammer.configure({
@@ -125,36 +125,51 @@ var IsProgrammer;
125
125
  })(importer),
126
126
  numeric: OptionPredicator_1.OptionPredicator.numeric(project.options),
127
127
  })(importer)), { trace: equals, addition: function () { return importer.declare(modulo); } });
128
- config.decoder = function (input, target, explore, tags, jsDocTags) {
129
- if (target.size() === 1 &&
130
- target.objects.length === 1 &&
131
- target.required === true &&
132
- target.nullable === false) {
133
- var obj = target.objects[0];
134
- if (obj._Is_simple() &&
135
- (equals === false ||
136
- OptionPredicator_1.OptionPredicator.undefined(project.options) ===
137
- false))
138
- return typescript_1.default.factory.createLogicalAnd(ExpressionFactory_1.ExpressionFactory.isObject({
139
- checkNull: true,
140
- checkArray: false,
141
- })(input), config.joiner.object(input, (0, feature_object_entries_1.feature_object_entries)(config)(importer)(obj)(input)));
142
- }
143
- return CheckerProgrammer_1.CheckerProgrammer.decode(project)(config)(importer)(input, target, explore, tags, jsDocTags);
144
- };
128
+ config.decoder =
129
+ function () { return function (input, target, explore, tags, jsDocTags) {
130
+ if (target.size() === 1 &&
131
+ target.objects.length === 1 &&
132
+ target.required === true &&
133
+ target.nullable === false) {
134
+ var obj = target.objects[0];
135
+ if (obj._Is_simple() &&
136
+ (equals === false ||
137
+ OptionPredicator_1.OptionPredicator.undefined(project.options) ===
138
+ false))
139
+ return typescript_1.default.factory.createLogicalAnd(ExpressionFactory_1.ExpressionFactory.isObject({
140
+ checkNull: true,
141
+ checkArray: false,
142
+ })(input), config.joiner.object(typescript_1.default.factory.createAsExpression(input, TypeFactory_1.TypeFactory.keyword("any")), (0, feature_object_entries_1.feature_object_entries)(config)(importer)(obj)(typescript_1.default.factory.createAsExpression(input, TypeFactory_1.TypeFactory.keyword("any")))));
143
+ }
144
+ return CheckerProgrammer_1.CheckerProgrammer.decode(project)(config)(importer)(input, target, explore, tags, jsDocTags);
145
+ }; };
145
146
  return CheckerProgrammer_1.CheckerProgrammer.write(project)(config)(importer);
146
147
  };
147
148
  };
148
149
  };
149
- IsProgrammer.write_functors = function (project) { return function (importer) {
150
- return CheckerProgrammer_1.CheckerProgrammer.write_functors(project)(IsProgrammer.configure()(importer))(importer);
151
- }; };
152
- IsProgrammer.write_unioners = function (project) { return function (importer) {
153
- return CheckerProgrammer_1.CheckerProgrammer.write_unioners(project, IsProgrammer.configure()(importer), importer);
154
- }; };
155
- IsProgrammer.decode = function (project, importer) {
156
- return CheckerProgrammer_1.CheckerProgrammer.decode(project)(IsProgrammer.configure()(importer))(importer);
150
+ IsProgrammer.write_function_statements = function (project) {
151
+ return function (importer) {
152
+ return function (collection) {
153
+ var config = IsProgrammer.configure()(importer);
154
+ var objects = CheckerProgrammer_1.CheckerProgrammer.write_object_functions(project)(config)(importer)(collection);
155
+ var unions = CheckerProgrammer_1.CheckerProgrammer.write_union_functions(project)(config)(importer)(collection);
156
+ var arrays = CheckerProgrammer_1.CheckerProgrammer.write_array_functions(project)(config)(importer)(collection);
157
+ var tuples = CheckerProgrammer_1.CheckerProgrammer.write_tuple_functions(project)(config)(importer)(collection);
158
+ return __spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(objects.filter(function (_, i) {
159
+ return importer.hasLocal("".concat(config.prefix, "o").concat(i));
160
+ })), false), __read(unions.filter(function (_, i) {
161
+ return importer.hasLocal("".concat(config.prefix, "u").concat(i));
162
+ })), false), __read(arrays.filter(function (_, i) {
163
+ return importer.hasLocal("".concat(config.prefix, "a").concat(i));
164
+ })), false), __read(tuples.filter(function (_, i) {
165
+ return importer.hasLocal("".concat(config.prefix, "t").concat(i));
166
+ })), false);
167
+ };
168
+ };
157
169
  };
170
+ IsProgrammer.decode = function (project) { return function (importer) {
171
+ return CheckerProgrammer_1.CheckerProgrammer.decode(project)(IsProgrammer.configure()(importer))(importer);
172
+ }; };
158
173
  IsProgrammer.decode_object = function (importer) {
159
174
  return CheckerProgrammer_1.CheckerProgrammer.decode_object(IsProgrammer.configure()(importer))(importer);
160
175
  };
@@ -1 +1 @@
1
- {"version":3,"file":"IsProgrammer.js","sourceRoot":"","sources":["../../src/programmers/IsProgrammer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IsProgrammer.js","sourceRoot":"","sources":["../../src/programmers/IsProgrammer.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,7 @@ var LiteralsProgrammer;
42
42
  var meta = MetadataFactory_1.MetadataFactory.analyze(project.checker)({
43
43
  resolve: true,
44
44
  constant: true,
45
+ absorb: true,
45
46
  validate: function (meta) {
46
47
  var length = meta.constants
47
48
  .map(function (c) { return c.values.length; })
@@ -1 +1 @@
1
- {"version":3,"file":"LiteralsProgrammer.js","sourceRoot":"","sources":["../../src/programmers/LiteralsProgrammer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LiteralsProgrammer.js","sourceRoot":"","sources":["../../src/programmers/LiteralsProgrammer.ts"],"names":[],"mappings":"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"}