@nestia/migrate 14.0.0 → 14.0.2

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 (182) hide show
  1. package/README.md +1 -1
  2. package/lib/NestiaMigrateApplication.d.ts +111 -0
  3. package/lib/NestiaMigrateApplication.js +148 -9
  4. package/lib/NestiaMigrateApplication.js.map +1 -1
  5. package/lib/NestiaMigrateApplication.mjs +147 -5
  6. package/lib/analyzers/NestiaMigrateControllerAnalyzer.d.ts +58 -0
  7. package/lib/analyzers/NestiaMigrateControllerAnalyzer.js +88 -2
  8. package/lib/analyzers/NestiaMigrateControllerAnalyzer.js.map +1 -1
  9. package/lib/analyzers/NestiaMigrateControllerAnalyzer.mjs +20 -2
  10. package/lib/archivers/NestiaMigrateFileArchiver.d.ts +34 -0
  11. package/lib/archivers/NestiaMigrateFileArchiver.js +34 -0
  12. package/lib/archivers/NestiaMigrateFileArchiver.js.map +1 -1
  13. package/lib/bundles/NEST_TEMPLATE.js +1 -1
  14. package/lib/bundles/NEST_TEMPLATE.js.map +1 -1
  15. package/lib/bundles/NEST_TEMPLATE.mjs +1 -1
  16. package/lib/bundles/SDK_TEMPLATE.js +1 -1
  17. package/lib/bundles/SDK_TEMPLATE.js.map +1 -1
  18. package/lib/bundles/SDK_TEMPLATE.mjs +1 -1
  19. package/lib/executable/NestiaMigrateCommander.d.ts +36 -0
  20. package/lib/executable/NestiaMigrateCommander.js +43 -1
  21. package/lib/executable/NestiaMigrateCommander.js.map +1 -1
  22. package/lib/executable/NestiaMigrateCommander.mjs +4 -2
  23. package/lib/executable/NestiaMigrateInquirer.d.ts +29 -0
  24. package/lib/executable/NestiaMigrateInquirer.js +27 -25
  25. package/lib/executable/NestiaMigrateInquirer.js.map +1 -1
  26. package/lib/executable/NestiaMigrateInquirer.mjs +5 -7
  27. package/lib/factories/ExpressionFactory.d.ts +14 -0
  28. package/lib/factories/ExpressionFactory.js +14 -0
  29. package/lib/factories/ExpressionFactory.js.map +1 -1
  30. package/lib/factories/IdentifierFactory.d.ts +20 -0
  31. package/lib/factories/IdentifierFactory.js +20 -0
  32. package/lib/factories/IdentifierFactory.js.map +1 -1
  33. package/lib/factories/LiteralFactory.d.ts +18 -2
  34. package/lib/factories/LiteralFactory.js +18 -2
  35. package/lib/factories/LiteralFactory.js.map +1 -1
  36. package/lib/factories/StatementFactory.d.ts +26 -1
  37. package/lib/factories/StatementFactory.js +26 -1
  38. package/lib/factories/StatementFactory.js.map +1 -1
  39. package/lib/factories/SupportedStringFormats.d.ts +6 -0
  40. package/lib/factories/SupportedStringFormats.js +33 -0
  41. package/lib/factories/SupportedStringFormats.js.map +1 -0
  42. package/lib/factories/SupportedStringFormats.mjs +34 -0
  43. package/lib/factories/SupportedStringFormats.mjs.map +1 -0
  44. package/lib/factories/TypeFactory.d.ts +21 -0
  45. package/lib/factories/TypeFactory.js +13 -0
  46. package/lib/factories/TypeFactory.js.map +1 -1
  47. package/lib/factories/TypeLiteralFactory.d.ts +18 -0
  48. package/lib/factories/TypeLiteralFactory.js +18 -0
  49. package/lib/factories/TypeLiteralFactory.js.map +1 -1
  50. package/lib/internal/ts.d.ts +153 -0
  51. package/lib/internal/ts.js.map +1 -1
  52. package/lib/programmers/NestiaMigrateApiFileProgrammer.d.ts +31 -0
  53. package/lib/programmers/NestiaMigrateApiFileProgrammer.js +17 -0
  54. package/lib/programmers/NestiaMigrateApiFileProgrammer.js.map +1 -1
  55. package/lib/programmers/NestiaMigrateApiFunctionProgrammer.d.ts +40 -0
  56. package/lib/programmers/NestiaMigrateApiFunctionProgrammer.js +34 -5
  57. package/lib/programmers/NestiaMigrateApiFunctionProgrammer.js.map +1 -1
  58. package/lib/programmers/NestiaMigrateApiFunctionProgrammer.mjs +4 -2
  59. package/lib/programmers/NestiaMigrateApiNamespaceProgrammer.d.ts +39 -0
  60. package/lib/programmers/NestiaMigrateApiNamespaceProgrammer.js +57 -13
  61. package/lib/programmers/NestiaMigrateApiNamespaceProgrammer.js.map +1 -1
  62. package/lib/programmers/NestiaMigrateApiNamespaceProgrammer.mjs +17 -8
  63. package/lib/programmers/NestiaMigrateApiProgrammer.d.ts +18 -0
  64. package/lib/programmers/NestiaMigrateApiProgrammer.js +18 -0
  65. package/lib/programmers/NestiaMigrateApiProgrammer.js.map +1 -1
  66. package/lib/programmers/NestiaMigrateApiProgrammer.mjs +1 -1
  67. package/lib/programmers/NestiaMigrateApiSimulationProgrammer.d.ts +40 -0
  68. package/lib/programmers/NestiaMigrateApiSimulationProgrammer.js +51 -22
  69. package/lib/programmers/NestiaMigrateApiSimulationProgrammer.js.map +1 -1
  70. package/lib/programmers/NestiaMigrateApiSimulationProgrammer.mjs +13 -20
  71. package/lib/programmers/NestiaMigrateApiStartProgrammer.d.ts +17 -0
  72. package/lib/programmers/NestiaMigrateApiStartProgrammer.js +19 -8
  73. package/lib/programmers/NestiaMigrateApiStartProgrammer.js.map +1 -1
  74. package/lib/programmers/NestiaMigrateApiStartProgrammer.mjs +1 -6
  75. package/lib/programmers/NestiaMigrateDtoProgrammer.d.ts +30 -0
  76. package/lib/programmers/NestiaMigrateDtoProgrammer.js +17 -0
  77. package/lib/programmers/NestiaMigrateDtoProgrammer.js.map +1 -1
  78. package/lib/programmers/NestiaMigrateE2eFileProgrammer.d.ts +39 -0
  79. package/lib/programmers/NestiaMigrateE2eFileProgrammer.js +46 -5
  80. package/lib/programmers/NestiaMigrateE2eFileProgrammer.js.map +1 -1
  81. package/lib/programmers/NestiaMigrateE2eFileProgrammer.mjs +6 -2
  82. package/lib/programmers/NestiaMigrateE2eProgrammer.d.ts +16 -0
  83. package/lib/programmers/NestiaMigrateE2eProgrammer.js +16 -0
  84. package/lib/programmers/NestiaMigrateE2eProgrammer.js.map +1 -1
  85. package/lib/programmers/NestiaMigrateImportProgrammer.d.ts +75 -0
  86. package/lib/programmers/NestiaMigrateImportProgrammer.js +58 -3
  87. package/lib/programmers/NestiaMigrateImportProgrammer.js.map +1 -1
  88. package/lib/programmers/NestiaMigrateImportProgrammer.mjs +58 -3
  89. package/lib/programmers/NestiaMigrateNestControllerProgrammer.d.ts +28 -0
  90. package/lib/programmers/NestiaMigrateNestControllerProgrammer.js +16 -0
  91. package/lib/programmers/NestiaMigrateNestControllerProgrammer.js.map +1 -1
  92. package/lib/programmers/NestiaMigrateNestMethodProgrammer.d.ts +30 -0
  93. package/lib/programmers/NestiaMigrateNestMethodProgrammer.js +85 -13
  94. package/lib/programmers/NestiaMigrateNestMethodProgrammer.js.map +1 -1
  95. package/lib/programmers/NestiaMigrateNestMethodProgrammer.mjs +46 -9
  96. package/lib/programmers/NestiaMigrateNestModuleProgrammer.d.ts +16 -0
  97. package/lib/programmers/NestiaMigrateNestModuleProgrammer.js +16 -0
  98. package/lib/programmers/NestiaMigrateNestModuleProgrammer.js.map +1 -1
  99. package/lib/programmers/NestiaMigrateNestProgrammer.d.ts +17 -0
  100. package/lib/programmers/NestiaMigrateNestProgrammer.js +17 -0
  101. package/lib/programmers/NestiaMigrateNestProgrammer.js.map +1 -1
  102. package/lib/programmers/NestiaMigrateSchemaProgrammer.d.ts +16 -0
  103. package/lib/programmers/NestiaMigrateSchemaProgrammer.js +45 -9
  104. package/lib/programmers/NestiaMigrateSchemaProgrammer.js.map +1 -1
  105. package/lib/programmers/NestiaMigrateSchemaProgrammer.mjs +19 -8
  106. package/lib/structures/INestiaMigrateConfig.d.ts +21 -0
  107. package/lib/structures/INestiaMigrateContext.d.ts +15 -0
  108. package/lib/structures/INestiaMigrateController.d.ts +13 -0
  109. package/lib/structures/INestiaMigrateFile.d.ts +11 -0
  110. package/lib/utils/FilePrinter.d.ts +33 -0
  111. package/lib/utils/FilePrinter.js +33 -0
  112. package/lib/utils/FilePrinter.js.map +1 -1
  113. package/lib/utils/MapUtil.d.ts +17 -0
  114. package/lib/utils/MapUtil.js +19 -3
  115. package/lib/utils/MapUtil.js.map +1 -1
  116. package/lib/utils/MapUtil.mjs +1 -2
  117. package/lib/utils/PathTemplate.d.ts +41 -0
  118. package/lib/utils/PathTemplate.js +56 -0
  119. package/lib/utils/PathTemplate.js.map +1 -0
  120. package/lib/utils/PathTemplate.mjs +34 -0
  121. package/lib/utils/PathTemplate.mjs.map +1 -0
  122. package/lib/utils/RequestBody.d.ts +22 -0
  123. package/lib/utils/RequestBody.js +29 -0
  124. package/lib/utils/RequestBody.js.map +1 -0
  125. package/lib/utils/RequestBody.mjs +9 -0
  126. package/lib/utils/RequestBody.mjs.map +1 -0
  127. package/lib/utils/StringUtil.d.ts +55 -0
  128. package/lib/utils/StringUtil.js +93 -8
  129. package/lib/utils/StringUtil.js.map +1 -1
  130. package/lib/utils/StringUtil.mjs +30 -8
  131. package/lib/utils/SuccessStatus.d.ts +34 -0
  132. package/lib/utils/SuccessStatus.js +48 -0
  133. package/lib/utils/SuccessStatus.js.map +1 -0
  134. package/lib/utils/SuccessStatus.mjs +14 -0
  135. package/lib/utils/SuccessStatus.mjs.map +1 -0
  136. package/package.json +5 -4
  137. package/src/NestiaMigrateApplication.ts +151 -13
  138. package/src/analyzers/NestiaMigrateControllerAnalyzer.ts +94 -2
  139. package/src/archivers/NestiaMigrateFileArchiver.ts +34 -0
  140. package/src/bundles/NEST_TEMPLATE.ts +1 -1
  141. package/src/bundles/SDK_TEMPLATE.ts +1 -1
  142. package/src/executable/NestiaMigrateCommander.ts +47 -1
  143. package/src/executable/NestiaMigrateInquirer.ts +41 -26
  144. package/src/factories/ExpressionFactory.ts +14 -0
  145. package/src/factories/IdentifierFactory.ts +20 -0
  146. package/src/factories/LiteralFactory.ts +18 -2
  147. package/src/factories/StatementFactory.ts +26 -1
  148. package/src/factories/SupportedStringFormats.ts +29 -0
  149. package/src/factories/TypeFactory.ts +21 -0
  150. package/src/factories/TypeLiteralFactory.ts +18 -0
  151. package/src/internal/ts.ts +153 -0
  152. package/src/programmers/NestiaMigrateApiFileProgrammer.ts +35 -0
  153. package/src/programmers/NestiaMigrateApiFunctionProgrammer.ts +53 -4
  154. package/src/programmers/NestiaMigrateApiNamespaceProgrammer.ts +83 -20
  155. package/src/programmers/NestiaMigrateApiProgrammer.ts +18 -0
  156. package/src/programmers/NestiaMigrateApiSimulationProgrammer.ts +66 -73
  157. package/src/programmers/NestiaMigrateApiStartProgrammer.ts +19 -10
  158. package/src/programmers/NestiaMigrateDtoProgrammer.ts +33 -0
  159. package/src/programmers/NestiaMigrateE2eFileProgrammer.ts +83 -8
  160. package/src/programmers/NestiaMigrateE2eProgrammer.ts +16 -0
  161. package/src/programmers/NestiaMigrateImportProgrammer.ts +86 -5
  162. package/src/programmers/NestiaMigrateNestControllerProgrammer.ts +30 -0
  163. package/src/programmers/NestiaMigrateNestMethodProgrammer.ts +122 -29
  164. package/src/programmers/NestiaMigrateNestModuleProgrammer.ts +16 -0
  165. package/src/programmers/NestiaMigrateNestProgrammer.ts +17 -0
  166. package/src/programmers/NestiaMigrateSchemaProgrammer.ts +53 -18
  167. package/src/structures/INestiaMigrateConfig.ts +26 -0
  168. package/src/structures/INestiaMigrateContext.ts +17 -0
  169. package/src/structures/INestiaMigrateController.ts +16 -0
  170. package/src/structures/INestiaMigrateFile.ts +13 -0
  171. package/src/utils/FilePrinter.ts +33 -0
  172. package/src/utils/MapUtil.ts +18 -2
  173. package/src/utils/PathTemplate.ts +61 -0
  174. package/src/utils/RequestBody.ts +27 -0
  175. package/src/utils/StringUtil.ts +101 -9
  176. package/src/utils/SuccessStatus.ts +49 -0
  177. package/lib/factories/FormatCheatSheet.d.ts +0 -25
  178. package/lib/factories/FormatCheatSheet.js +0 -34
  179. package/lib/factories/FormatCheatSheet.js.map +0 -1
  180. package/lib/factories/FormatCheatSheet.mjs +0 -31
  181. package/lib/factories/FormatCheatSheet.mjs.map +0 -1
  182. package/src/factories/FormatCheatSheet.ts +0 -71
@@ -8,8 +8,25 @@ const NestiaMigrateDtoProgrammer_1 = require("./NestiaMigrateDtoProgrammer");
8
8
  const NestiaMigrateImportProgrammer_1 = require("./NestiaMigrateImportProgrammer");
9
9
  const NestiaMigrateNestControllerProgrammer_1 = require("./NestiaMigrateNestControllerProgrammer");
10
10
  const NestiaMigrateNestModuleProgrammer_1 = require("./NestiaMigrateNestModuleProgrammer");
11
+ /**
12
+ * Generates the NestJS side of a monorepo project: the module, the controllers,
13
+ * and the DTO structures.
14
+ *
15
+ * @evidence contracts/common.md#principled-implementation The controllers come from the analyzer, each DTO tree becomes a structure file, and a barrel file re-exports every non-empty structure file so the template's module keeps working.
16
+ * @evidence contracts/common.md#clear-and-simple-design One public function and private helpers for the DTO files and the barrel.
17
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts The layout follows the analysis.
18
+ * @evidence contracts/common.md#meaningful-documentation The comment states what is generated.
19
+ */
11
20
  var NestiaMigrateNestProgrammer;
12
21
  (function (NestiaMigrateNestProgrammer) {
22
+ /**
23
+ * Returns the map from file path to content of the NestJS files.
24
+ *
25
+ * @evidence contracts/common.md#principled-implementation The barrel is computed from the generated structure files, sorted by name, so its content is deterministic.
26
+ * @evidence contracts/common.md#clear-and-simple-design One function.
27
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts The names follow the document.
28
+ * @evidence contracts/common.md#meaningful-documentation The comment states the result.
29
+ */
13
30
  NestiaMigrateNestProgrammer.write = (context) => {
14
31
  const controllers = NestiaMigrateControllerAnalyzer_1.NestiaMigrateControllerAnalyzer.analyze(context.application.routes);
15
32
  const statements = [
@@ -1 +1 @@
1
- {"version":3,"file":"NestiaMigrateNestProgrammer.js","sourceRoot":"","sources":["../../src/programmers/NestiaMigrateNestProgrammer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NestiaMigrateNestProgrammer.js","sourceRoot":"","sources":["../../src/programmers/NestiaMigrateNestProgrammer.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,23 @@
1
1
  import type { OpenApi } from "typia";
2
2
  import ts from "../internal/ts";
3
3
  import { NestiaMigrateImportProgrammer } from "./NestiaMigrateImportProgrammer";
4
+ /**
5
+ * Generates the TypeScript type of an OpenAPI schema.
6
+ *
7
+ * @evidence contracts/common.md#principled-implementation The schema kind is decided by the type checker of `@typia/utils`, and each kind becomes a type: constants as literal types, numbers, integers, and strings with their constraints as `typia.tags` intersections, arrays, tuples, objects, references, and unions, with `any` for an unknown schema.
8
+ * @evidence contracts/common.md#clear-and-simple-design One entry function that dispatches to one private writer per kind.
9
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts The dispatch follows the schema kinds of OpenAPI, and no schema name is special-cased.
10
+ * @evidence contracts/common.md#meaningful-documentation The comment states what is generated.
11
+ */
4
12
  export declare namespace NestiaMigrateSchemaProgrammer {
13
+ /**
14
+ * Returns the type node of a schema.
15
+ *
16
+ * @evidence contracts/common.md#principled-implementation An unknown schema is `any`, a `oneOf` becomes a TypeScript union, integer formats outside the supported four use the migration default `int64`, a binary string becomes `File`, and known string formats become typia tags. TypeScript unions do not encode oneOf exclusivity, and unsupported formats impose no generated constraint.
17
+ * @evidence contracts/common.md#clear-and-simple-design One function with an ordered chain of schema kind tests.
18
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts Schema-kind dispatch applies uniformly; the int64 fallback and supported-format table are generator policies rather than constraints supplied by the document.
19
+ * @evidence contracts/common.md#meaningful-documentation The comment states the result.
20
+ */
5
21
  const write: (props: {
6
22
  components: OpenApi.IComponents;
7
23
  importer: NestiaMigrateImportProgrammer;
@@ -6,16 +6,32 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.NestiaMigrateSchemaProgrammer = void 0;
7
7
  const factory_1 = require("@ttsc/factory");
8
8
  const utils_1 = require("@typia/utils");
9
- const FormatCheatSheet_1 = require("../factories/FormatCheatSheet");
9
+ const SupportedStringFormats_1 = require("../factories/SupportedStringFormats");
10
10
  const TypeFactory_1 = require("../factories/TypeFactory");
11
11
  const ts_1 = __importDefault(require("../internal/ts"));
12
12
  const FilePrinter_1 = require("../utils/FilePrinter");
13
13
  const StringUtil_1 = require("../utils/StringUtil");
14
+ /**
15
+ * Generates the TypeScript type of an OpenAPI schema.
16
+ *
17
+ * @evidence contracts/common.md#principled-implementation The schema kind is decided by the type checker of `@typia/utils`, and each kind becomes a type: constants as literal types, numbers, integers, and strings with their constraints as `typia.tags` intersections, arrays, tuples, objects, references, and unions, with `any` for an unknown schema.
18
+ * @evidence contracts/common.md#clear-and-simple-design One entry function that dispatches to one private writer per kind.
19
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts The dispatch follows the schema kinds of OpenAPI, and no schema name is special-cased.
20
+ * @evidence contracts/common.md#meaningful-documentation The comment states what is generated.
21
+ */
14
22
  var NestiaMigrateSchemaProgrammer;
15
23
  (function (NestiaMigrateSchemaProgrammer) {
16
24
  /* -----------------------------------------------------------
17
25
  FACADE
18
26
  ----------------------------------------------------------- */
27
+ /**
28
+ * Returns the type node of a schema.
29
+ *
30
+ * @evidence contracts/common.md#principled-implementation An unknown schema is `any`, a `oneOf` becomes a TypeScript union, integer formats outside the supported four use the migration default `int64`, a binary string becomes `File`, and known string formats become typia tags. TypeScript unions do not encode oneOf exclusivity, and unsupported formats impose no generated constraint.
31
+ * @evidence contracts/common.md#clear-and-simple-design One function with an ordered chain of schema kind tests.
32
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts Schema-kind dispatch applies uniformly; the int64 fallback and supported-format table are generator policies rather than constraints supplied by the document.
33
+ * @evidence contracts/common.md#meaningful-documentation The comment states the result.
34
+ */
19
35
  NestiaMigrateSchemaProgrammer.write = (props) => {
20
36
  // CONSIDER ANY TYPE CASE
21
37
  const union = [];
@@ -108,11 +124,25 @@ var NestiaMigrateSchemaProgrammer;
108
124
  const writeInteger = (props) => writeNumeric({
109
125
  factory: () => [
110
126
  TypeFactory_1.TypeFactory.keyword("number"),
111
- props.importer.tag("Type", "int32"),
127
+ props.importer.tag("Type", integerType(props.schema)),
112
128
  ],
113
129
  importer: props.importer,
114
130
  schema: props.schema,
115
131
  });
132
+ /**
133
+ * The typia integer type admitting what the schema admits: its own `format`
134
+ * when it names one typia has, else `int64`, as an integer schema without a
135
+ * format admits any integer.
136
+ */
137
+ const integerType = (schema) => {
138
+ const format = schema.format;
139
+ return format === "int32" ||
140
+ format === "uint32" ||
141
+ format === "int64" ||
142
+ format === "uint64"
143
+ ? format
144
+ : "int64";
145
+ };
116
146
  const writeNumber = (props) => writeNumeric({
117
147
  factory: () => [TypeFactory_1.TypeFactory.keyword("number")],
118
148
  importer: props.importer,
@@ -122,10 +152,16 @@ var NestiaMigrateSchemaProgrammer;
122
152
  const intersection = props.factory();
123
153
  if (props.schema.default !== undefined)
124
154
  intersection.push(props.importer.tag("Default", props.schema.default));
155
+ // the emended schema holds each bound as a number, as OpenAPI 3.1 does;
156
+ // an OpenAPI 3.0 boolean `exclusiveMinimum` is converted into that form
125
157
  if (props.schema.minimum !== undefined)
126
- intersection.push(props.importer.tag(props.schema.exclusiveMinimum ? "ExclusiveMinimum" : "Minimum", props.schema.minimum));
158
+ intersection.push(props.importer.tag("Minimum", props.schema.minimum));
159
+ if (typeof props.schema.exclusiveMinimum === "number")
160
+ intersection.push(props.importer.tag("ExclusiveMinimum", props.schema.exclusiveMinimum));
127
161
  if (props.schema.maximum !== undefined)
128
- intersection.push(props.importer.tag(props.schema.exclusiveMaximum ? "ExclusiveMaximum" : "Maximum", props.schema.maximum));
162
+ intersection.push(props.importer.tag("Maximum", props.schema.maximum));
163
+ if (typeof props.schema.exclusiveMaximum === "number")
164
+ intersection.push(props.importer.tag("ExclusiveMaximum", props.schema.exclusiveMaximum));
129
165
  if (props.schema.multipleOf !== undefined)
130
166
  intersection.push(props.importer.tag("MultipleOf", props.schema.multipleOf));
131
167
  return intersection.length === 1
@@ -145,8 +181,7 @@ var NestiaMigrateSchemaProgrammer;
145
181
  if (props.schema.pattern !== undefined)
146
182
  intersection.push(props.importer.tag("Pattern", props.schema.pattern));
147
183
  if (props.schema.format !== undefined &&
148
- FormatCheatSheet_1.FormatCheatSheet[props.schema.format] !==
149
- undefined)
184
+ SupportedStringFormats_1.SUPPORTED_STRING_FORMATS.has(props.schema.format))
150
185
  intersection.push(props.importer.tag("Format", props.schema.format));
151
186
  if (props.schema.contentMediaType !== undefined)
152
187
  intersection.push(props.importer.tag("ContentMediaType", props.schema.contentMediaType));
@@ -184,11 +219,11 @@ var NestiaMigrateSchemaProgrammer;
184
219
  ...(typeof props.schema.additionalItems === "object" &&
185
220
  props.schema.additionalItems !== null
186
221
  ? [
187
- factory_1.factory.createRestTypeNode(NestiaMigrateSchemaProgrammer.write({
222
+ factory_1.factory.createRestTypeNode(factory_1.factory.createArrayTypeNode(NestiaMigrateSchemaProgrammer.write({
188
223
  components: props.components,
189
224
  importer: props.importer,
190
225
  schema: props.schema.additionalItems,
191
- })),
226
+ }))),
192
227
  ]
193
228
  : props.schema.additionalItems === true
194
229
  ? [
@@ -220,7 +255,8 @@ var NestiaMigrateSchemaProgrammer;
220
255
  schema: props.schema.additionalProperties,
221
256
  }),
222
257
  ]);
223
- return !!((_a = props.schema.properties) === null || _a === void 0 ? void 0 : _a.length) &&
258
+ // `properties` is a record, which has no length
259
+ return Object.keys((_a = props.schema.properties) !== null && _a !== void 0 ? _a : {}).length !== 0 &&
224
260
  typeof props.schema.additionalProperties === "object"
225
261
  ? factory_1.factory.createIntersectionTypeNode([regular(), dynamic()])
226
262
  : typeof props.schema.additionalProperties === "object"
@@ -1 +1 @@
1
- {"version":3,"file":"NestiaMigrateSchemaProgrammer.js","sourceRoot":"","sources":["../../src/programmers/NestiaMigrateSchemaProgrammer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NestiaMigrateSchemaProgrammer.js","sourceRoot":"","sources":["../../src/programmers/NestiaMigrateSchemaProgrammer.ts"],"names":[],"mappings":";;;;;;AAAA,2CAAoD;AACpD,wCAAoE;AAGpE,gFAA+E;AAC/E,0DAAuD;AACvD,wDAAgC;AAChC,sDAAmD;AACnD,oDAAiD;AAGjD;;;;;;;GAOG;AACH,IAAiB,6BAA6B,CAma7C;AAnaD,WAAiB,6BAA6B;IAC5C;;kEAE8D;IAC9D;;;;;;;OAOG;IACU,mCAAK,GAAG,CAAC,KAIrB,EAAe,EAAE;QAChB,yBAAyB;QACzB,MAAM,KAAK,GAAkB,EAAE,CAAC;QAChC,IAAI,0BAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;YAC5C,OAAO,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEpC,YAAY;QACZ,MAAM,IAAI,GAAgB,CAAC,GAAG,EAAE;YAC9B,SAAS;YACT,IAAI,0BAAkB,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC7C,OAAO,aAAa,CAAC;oBACnB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,MAAM,EAAE,KAAK,CAAC,MAAM;iBACrB,CAAC,CAAC;iBACA,IAAI,0BAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;gBACjD,OAAO,YAAY,EAAE,CAAC;iBACnB,IAAI,0BAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;gBACjD,OAAO,YAAY,CAAC;oBAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,MAAM,EAAE,KAAK,CAAC,MAAM;iBACrB,CAAC,CAAC;iBACA,IAAI,0BAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;gBAChD,OAAO,WAAW,CAAC;oBACjB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,MAAM,EAAE,KAAK,CAAC,MAAM;iBACrB,CAAC,CAAC;iBACA,IAAI,0BAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;gBAChD,OAAO,WAAW,CAAC;oBACjB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,MAAM,EAAE,KAAK,CAAC,MAAM;iBACrB,CAAC,CAAC;YACL,YAAY;iBACP,IAAI,0BAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC/C,OAAO,UAAU,CAAC;oBAChB,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,MAAM,EAAE,KAAK,CAAC,MAAM;iBACrB,CAAC,CAAC;iBACA,IAAI,0BAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC/C,OAAO,UAAU,CAAC;oBAChB,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,MAAM,EAAE,KAAK,CAAC,MAAM;iBACrB,CAAC,CAAC;iBACA,IAAI,0BAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;gBAChD,OAAO,WAAW,CAAC;oBACjB,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,MAAM,EAAE,KAAK,CAAC,MAAM;iBACrB,CAAC,CAAC;iBACA,IAAI,0BAAkB,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC;gBACnD,OAAO,cAAc,CAAC;oBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,MAAM,EAAE,KAAK,CAAC,MAAM;iBACrB,CAAC,CAAC;YACL,QAAQ;iBACH,IAAI,0BAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC/C,OAAO,UAAU,CAAC;oBAChB,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;iBAC7B,CAAC,CAAC;iBACA,IAAI,0BAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC9C,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;;gBACvB,OAAO,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC,CAAC,EAAE,CAAC;QACL,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEjB,YAAY;QACZ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aACrD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,CAAC,CAAE,CAAC;QAC9C,OAAO,iBAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC,CAAC;IAEF;;kEAE8D;IAC9D,MAAM,aAAa,GAAG,CAAC,KAGtB,EAAe,EAAE;QAChB,OAAO,iBAAO,CAAC,qBAAqB,CAClC,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS;YACrC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI;gBAC3B,CAAC,CAAC,iBAAO,CAAC,UAAU,EAAE;gBACtB,CAAC,CAAC,iBAAO,CAAC,WAAW,EAAE;YACzB,CAAC,CAAC,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ;gBACtC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC;oBACtB,CAAC,CAAC,iBAAO,CAAC,2BAA2B,CACjC,oBAAU,CAAC,UAAU,EACrB,iBAAO,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAClD;oBACH,CAAC,CAAC,iBAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;gBACpD,CAAC,CAAC,iBAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CACtD,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,GAAgB,EAAE,CAAC,yBAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEvE,MAAM,YAAY,GAAG,CAAC,KAGrB,EAAe,EAAE,CAChB,YAAY,CAAC;QACX,OAAO,EAAE,GAAG,EAAE,CAAC;YACb,yBAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC7B,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SACtD;QACD,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,MAAM,EAAE,KAAK,CAAC,MAAM;KACrB,CAAC,CAAC;IAEL;;;;OAIG;IACH,MAAM,WAAW,GAAG,CAClB,MAAoC,EACK,EAAE;QAC3C,MAAM,MAAM,GAAa,MAA+B,CAAC,MAAM,CAAC;QAChE,OAAO,MAAM,KAAK,OAAO;YACvB,MAAM,KAAK,QAAQ;YACnB,MAAM,KAAK,OAAO;YAClB,MAAM,KAAK,QAAQ;YACnB,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,OAAO,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,KAGpB,EAAe,EAAE,CAChB,YAAY,CAAC;QACX,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,yBAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9C,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,MAAM,EAAE,KAAK,CAAC,MAAM;KACrB,CAAC,CAAC;IAEL,MAAM,YAAY,GAAG,CAAC,KAIrB,EAAe,EAAE;QAChB,MAAM,YAAY,GAAkB,KAAK,CAAC,OAAO,EAAE,CAAC;QACpD,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS;YACpC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACzE,wEAAwE;QACxE,wEAAwE;QACxE,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS;YACpC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACzE,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,gBAAgB,KAAK,QAAQ;YACnD,YAAY,CAAC,IAAI,CACf,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CACtE,CAAC;QACJ,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS;YACpC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACzE,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,gBAAgB,KAAK,QAAQ;YACnD,YAAY,CAAC,IAAI,CACf,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CACtE,CAAC;QACJ,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS;YACvC,YAAY,CAAC,IAAI,CACf,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAC1D,CAAC;QACJ,OAAO,YAAY,CAAC,MAAM,KAAK,CAAC;YAC9B,CAAC,CAAC,YAAY,CAAC,CAAC,CAAE;YAClB,CAAC,CAAC,iBAAO,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAAC;IACvD,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,KAGpB,EAAe,EAAE;QAChB,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ;YAClC,OAAO,iBAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAEjD,MAAM,YAAY,GAAkB,CAAC,yBAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpE,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS;YACpC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACzE,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS;YACtC,YAAY,CAAC,IAAI,CACf,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CACxD,CAAC;QACJ,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS;YACtC,YAAY,CAAC,IAAI,CACf,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CACxD,CAAC;QACJ,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS;YACpC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACzE,IACE,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS;YACjC,iDAAwB,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;YAEjD,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACvE,IAAI,KAAK,CAAC,MAAM,CAAC,gBAAgB,KAAK,SAAS;YAC7C,YAAY,CAAC,IAAI,CACf,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CACtE,CAAC;QACJ,OAAO,YAAY,CAAC,MAAM,KAAK,CAAC;YAC9B,CAAC,CAAC,YAAY,CAAC,CAAC,CAAE;YAClB,CAAC,CAAC,iBAAO,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAAC;IACvD,CAAC,CAAC;IAEF;;kEAE8D;IAC9D,MAAM,UAAU,GAAG,CAAC,KAInB,EAAe,EAAE;QAChB,MAAM,YAAY,GAAkB;YAClC,iBAAO,CAAC,mBAAmB,CACzB,mCAAK,CAAC;gBACJ,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;aAC3B,CAAC,CACH;SACF,CAAC;QACF,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS;YACrC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3E,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS;YACrC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3E,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,KAAK,IAAI;YACnC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;QACvD,OAAO,YAAY,CAAC,MAAM,KAAK,CAAC;YAC9B,CAAC,CAAC,YAAY,CAAC,CAAC,CAAE;YAClB,CAAC,CAAC,iBAAO,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAAC;IACvD,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,KAInB,EAAe,EAAE,CAChB,iBAAO,CAAC,mBAAmB,CAAC;QAC1B,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACvC,mCAAK,CAAC;YACJ,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,IAAI;SACb,CAAC,CACH;QACD,GAAG,CAAC,OAAO,KAAK,CAAC,MAAM,CAAC,eAAe,KAAK,QAAQ;YACpD,KAAK,CAAC,MAAM,CAAC,eAAe,KAAK,IAAI;YACnC,CAAC,CAAC;gBACE,iBAAO,CAAC,kBAAkB,CACxB,iBAAO,CAAC,mBAAmB,CACzB,mCAAK,CAAC;oBACJ,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,eAAe;iBACrC,CAAC,CACH,CACF;aACF;YACH,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,KAAK,IAAI;gBACrC,CAAC,CAAC;oBACE,iBAAO,CAAC,kBAAkB,CACxB,iBAAO,CAAC,mBAAmB,CACzB,iBAAO,CAAC,qBAAqB,CAAC,oBAAU,CAAC,UAAU,CAAC,CACrD,CACF;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;KACV,CAAC,CAAC;IAEL,MAAM,WAAW,GAAG,CAAC,KAIpB,EAAe,EAAE;;QAChB,MAAM,OAAO,GAAG,GAAG,EAAE,kBACnB,iBAAO,CAAC,qBAAqB,CAC3B,MAAM,CAAC,OAAO,OAAC,KAAK,CAAC,MAAM,CAAC,UAAU,mCAAI,EAAE,CAAC;aAC1C,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,8BAAC;YAC5B,GAAG,CAAC,KAAK,KAAK,CAAC;gBACf,CAAC,CAAC,EAAC,MAAA,KAAK,CAAC,KAAK,0CAAE,MAAM,CAAA,IAAI,CAAC,EAAC,MAAA,KAAK,CAAC,WAAW,0CAAE,MAAM,CAAA,CAAC;gBACpD,CAAC,CAAC,CAAC,iBAAO,CAAC,gBAAgB,CAAC,IAAI,CAAQ,CAAC;gBACzC,CAAC,CAAC,EAAE,CAAC;YACP,oBAAoB,CAAC;gBACnB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,QAAQ,QAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,mCAAI,EAAE;gBACrC,GAAG;gBACH,KAAK;aACN,CAAC;SACH,GAAA,CAAC;aACD,IAAI,EAAE,CACV,GAAA,CAAC;QACJ,MAAM,OAAO,GAAG,GAAG,EAAE,CACnB,iBAAO,CAAC,qBAAqB,CAAC;YAC5B,oBAAoB,CAAC;gBACnB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,oBAA2C;aACjE,CAAC;SACH,CAAC,CAAC;QACL,gDAAgD;QAChD,OAAO,MAAM,CAAC,IAAI,OAAC,KAAK,CAAC,MAAM,CAAC,UAAU,mCAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC;YAC5D,OAAO,KAAK,CAAC,MAAM,CAAC,oBAAoB,KAAK,QAAQ;YACrD,CAAC,CAAC,iBAAO,CAAC,0BAA0B,CAAC,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAC5D,CAAC,CAAC,OAAO,KAAK,CAAC,MAAM,CAAC,oBAAoB,KAAK,QAAQ;gBACrD,CAAC,CAAC,OAAO,EAAE;gBACX,CAAC,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,oBAAoB,GAAG,CAAC,KAM7B,EAAE,EAAE;;QACH,MAAM,aAAa,GAAgB,mCAAK,CAAC;YACvC,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,KAAK,CAAC,KAAK;SACpB,CAAC,CAAC;QACH,OAAO,yBAAW,CAAC,WAAW,CAC5B,iBAAO,CAAC,uBAAuB,CAC7B,KAAK,CAAC,KAAK,CAAC,QAAQ;YAClB,CAAC,CAAC,CAAC,iBAAO,CAAC,WAAW,CAAC,oBAAU,CAAC,eAAe,CAAC,CAAC;YACnD,CAAC,CAAC,SAAS,EACb,wBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;YAClC,CAAC,CAAC,iBAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC;YACrC,CAAC,CAAC,iBAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,EAC1C,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;YAChC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,iBAAO,CAAC,WAAW,CAAC,oBAAU,CAAC,aAAa,CAAC,EACjD,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;YAChC,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,YAAE,CAAC,eAAe,CAAC,aAAa,CAAC;gBACjC,CAAC,CAAC,iBAAO,CAAC,mBAAmB,CAAC;oBAC1B,GAAG,OAAC,aAAa,CAAC,KAAK,mCAAI,EAAE,CAAC;oBAC9B,iBAAO,CAAC,uBAAuB,CAAC,WAAW,CAAC;iBAC7C,CAAC;gBACJ,CAAC,CAAC,iBAAO,CAAC,mBAAmB,CAAC;oBAC1B,aAAa;oBACb,iBAAO,CAAC,uBAAuB,CAAC,WAAW,CAAC;iBAC7C,CAAC,CACT,EACD,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAC1B,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,oBAAoB,GAAG,CAAC,KAI7B,EAAE,EAAE,CACH,yBAAW,CAAC,WAAW,CACrB,iBAAO,CAAC,oBAAoB,CAC1B,SAAS,EACT;QACE,iBAAO,CAAC,0BAA0B,CAChC,SAAS,EACT,SAAS,EACT,iBAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAC/B,SAAS,EACT,yBAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAC9B;KACF,EACD,mCAAK,CAAC,KAAK,CAAC,CACb,EACD,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAC3B,CAAC;IAEJ,MAAM,cAAc,GAAG,CAAC,KAGvB,EAA6C,EAAE;QAC9C,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,KAAK,KAAK;YAChE,OAAO,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,IAAI,GAAW,KAAK,CAAC,MAAM,CAAC,IAAI;aACnC,KAAK,CAAC,GAAG,CAAC;aACV,KAAK,CAAC,CAAC,CAAC;aACR,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC;aACjC,GAAG,CAAC,uBAAU,CAAC,iBAAiB,CAAC;aACjC,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,IAAI,IAAI,KAAK,EAAE;YAAE,OAAO,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnD,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF;;kEAE8D;IAC9D,MAAM,UAAU,GAAG,CAAC,KAInB,EAAoB,EAAE,CACrB,iBAAO,CAAC,mBAAmB,CACzB,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAC5B,mCAAK,CAAC;QACJ,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,MAAM;KACP,CAAC,CACH,CACF,CAAC;AACN,CAAC,EAnagB,6BAA6B,aAA7B,6BAA6B,GAA7B,6BAA6B,QAma7C;AACD,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,iBAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;AAE3E,MAAM,YAAY,GAAG,CAAC,MAA2B,EAAU,EAAE;;IAK3D,MAAM,OAAO,GAAc,EAAE,CAAC;IAC9B,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAC5B,OAAO,CAAC,IAAI,CAAC;YACX,GAAG,EAAE,OAAO;YACZ,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC,CAAC;IACL,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI;QAC5B,OAAO,CAAC,IAAI,CAAC;YACX,GAAG,EAAE,YAAY;YACjB,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;IACL,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAC/C,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC;gBACX,GAAG;gBACH,KAAK;aACN,CAAC,CAAC;IACP,OAAO;QACL,GAAG,CAAC,CAAA,MAAA,MAAM,CAAC,WAAW,0CAAE,MAAM;YAC5B,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACxC,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,CAAA,MAAA,MAAM,CAAC,WAAW,0CAAE,MAAM,KAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACnB,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CACrE;KACF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAAsC,EAAE,CAC9E,OAAO,KAAK,KAAK,SAAS;IAC1B,OAAO,KAAK,KAAK,QAAQ;IACzB,OAAO,KAAK,KAAK,QAAQ,CAAC;AAE5B,MAAM,gBAAgB,GAAG,CAAC,WAAmB,EAAU,EAAE;IACvD,MAAM,KAAK,GAAa,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,KAAK;SACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;SAC5D,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG;IACnB,SAAS;IACT,SAAS;IACT,UAAU;IACV,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,mBAAmB;IACnB,SAAS;IACT,OAAO;IACP,UAAU;IACV,UAAU;IACV,mBAAmB;IACnB,mBAAmB;IACnB,aAAa;IACb,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,WAAW;IACX,cAAc;CACf,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { FilePrinter } from "../utils/FilePrinter.mjs";
2
2
  import { TypeFactory } from "../factories/TypeFactory.mjs";
3
- import { FormatCheatSheet } from "../factories/FormatCheatSheet.mjs";
3
+ import { SUPPORTED_STRING_FORMATS } from "../factories/SupportedStringFormats.mjs";
4
4
  import ts from "../internal/ts.mjs";
5
5
  import { StringUtil } from "../utils/StringUtil.mjs";
6
6
  import { NamingConvention, OpenApiTypeChecker } from "@typia/utils";
@@ -66,10 +66,19 @@ let NestiaMigrateSchemaProgrammer;
66
66
  };
67
67
  const writeBoolean = () => TypeFactory.keyword("boolean");
68
68
  const writeInteger = (props) => writeNumeric({
69
- factory: () => [TypeFactory.keyword("number"), props.importer.tag("Type", "int32")],
69
+ factory: () => [TypeFactory.keyword("number"), props.importer.tag("Type", integerType(props.schema))],
70
70
  importer: props.importer,
71
71
  schema: props.schema
72
72
  });
73
+ /**
74
+ * The typia integer type admitting what the schema admits: its own `format`
75
+ * when it names one typia has, else `int64`, as an integer schema without a
76
+ * format admits any integer.
77
+ */
78
+ const integerType = (schema) => {
79
+ const format = schema.format;
80
+ return format === "int32" || format === "uint32" || format === "int64" || format === "uint64" ? format : "int64";
81
+ };
73
82
  const writeNumber = (props) => writeNumeric({
74
83
  factory: () => [TypeFactory.keyword("number")],
75
84
  importer: props.importer,
@@ -78,8 +87,10 @@ let NestiaMigrateSchemaProgrammer;
78
87
  const writeNumeric = (props) => {
79
88
  const intersection = props.factory();
80
89
  if (props.schema.default !== void 0) intersection.push(props.importer.tag("Default", props.schema.default));
81
- if (props.schema.minimum !== void 0) intersection.push(props.importer.tag(props.schema.exclusiveMinimum ? "ExclusiveMinimum" : "Minimum", props.schema.minimum));
82
- if (props.schema.maximum !== void 0) intersection.push(props.importer.tag(props.schema.exclusiveMaximum ? "ExclusiveMaximum" : "Maximum", props.schema.maximum));
90
+ if (props.schema.minimum !== void 0) intersection.push(props.importer.tag("Minimum", props.schema.minimum));
91
+ if (typeof props.schema.exclusiveMinimum === "number") intersection.push(props.importer.tag("ExclusiveMinimum", props.schema.exclusiveMinimum));
92
+ if (props.schema.maximum !== void 0) intersection.push(props.importer.tag("Maximum", props.schema.maximum));
93
+ if (typeof props.schema.exclusiveMaximum === "number") intersection.push(props.importer.tag("ExclusiveMaximum", props.schema.exclusiveMaximum));
83
94
  if (props.schema.multipleOf !== void 0) intersection.push(props.importer.tag("MultipleOf", props.schema.multipleOf));
84
95
  return intersection.length === 1 ? intersection[0] : factory.createIntersectionTypeNode(intersection);
85
96
  };
@@ -90,7 +101,7 @@ let NestiaMigrateSchemaProgrammer;
90
101
  if (props.schema.minLength !== void 0) intersection.push(props.importer.tag("MinLength", props.schema.minLength));
91
102
  if (props.schema.maxLength !== void 0) intersection.push(props.importer.tag("MaxLength", props.schema.maxLength));
92
103
  if (props.schema.pattern !== void 0) intersection.push(props.importer.tag("Pattern", props.schema.pattern));
93
- if (props.schema.format !== void 0 && FormatCheatSheet[props.schema.format] !== void 0) intersection.push(props.importer.tag("Format", props.schema.format));
104
+ if (props.schema.format !== void 0 && SUPPORTED_STRING_FORMATS.has(props.schema.format)) intersection.push(props.importer.tag("Format", props.schema.format));
94
105
  if (props.schema.contentMediaType !== void 0) intersection.push(props.importer.tag("ContentMediaType", props.schema.contentMediaType));
95
106
  return intersection.length === 1 ? intersection[0] : factory.createIntersectionTypeNode(intersection);
96
107
  };
@@ -109,11 +120,11 @@ let NestiaMigrateSchemaProgrammer;
109
120
  components: props.components,
110
121
  importer: props.importer,
111
122
  schema: item
112
- })), ...typeof props.schema.additionalItems === "object" && props.schema.additionalItems !== null ? [factory.createRestTypeNode(write({
123
+ })), ...typeof props.schema.additionalItems === "object" && props.schema.additionalItems !== null ? [factory.createRestTypeNode(factory.createArrayTypeNode(write({
113
124
  components: props.components,
114
125
  importer: props.importer,
115
126
  schema: props.schema.additionalItems
116
- }))] : props.schema.additionalItems === true ? [factory.createRestTypeNode(factory.createArrayTypeNode(factory.createKeywordTypeNode(SyntaxKind.AnyKeyword)))] : []]);
127
+ })))] : props.schema.additionalItems === true ? [factory.createRestTypeNode(factory.createArrayTypeNode(factory.createKeywordTypeNode(SyntaxKind.AnyKeyword)))] : []]);
117
128
  const writeObject = (props) => {
118
129
  const regular = () => factory.createTypeLiteralNode(Object.entries(props.schema.properties ?? []).map(([key, value], index) => [...index !== 0 && (!!value.title?.length || !!value.description?.length) ? [factory.createIdentifier("\n")] : [], writeRegularProperty({
119
130
  components: props.components,
@@ -127,7 +138,7 @@ let NestiaMigrateSchemaProgrammer;
127
138
  importer: props.importer,
128
139
  schema: props.schema.additionalProperties
129
140
  })]);
130
- return !!props.schema.properties?.length && typeof props.schema.additionalProperties === "object" ? factory.createIntersectionTypeNode([regular(), dynamic()]) : typeof props.schema.additionalProperties === "object" ? dynamic() : regular();
141
+ return Object.keys(props.schema.properties ?? {}).length !== 0 && typeof props.schema.additionalProperties === "object" ? factory.createIntersectionTypeNode([regular(), dynamic()]) : typeof props.schema.additionalProperties === "object" ? dynamic() : regular();
131
142
  };
132
143
  const writeRegularProperty = (props) => {
133
144
  const valueTypeNode = write({
@@ -1,14 +1,35 @@
1
1
  import ts from "../internal/ts";
2
2
  import { NestiaMigrateNestMethodProgrammer } from "../programmers/NestiaMigrateNestMethodProgrammer";
3
+ /**
4
+ * Options of the migration: simulation, e2e tests, the package name, keyword
5
+ * parameters, the author tag, and a replaceable controller method programmer.
6
+ *
7
+ * @evidence contracts/common.md#principled-implementation The flags choose which parts are generated and the parameter style, the package name replaces the placeholder in every file, and the programmer option lets a caller generate controller methods differently.
8
+ * @evidence contracts/common.md#clear-and-simple-design A flat record whose optional members are the extension points.
9
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts It is a type and adds no runtime behavior.
10
+ * @evidence contracts/common.md#meaningful-documentation The comment lists the options.
11
+ */
3
12
  export interface INestiaMigrateConfig {
13
+ /** Include runtime request validation and random-response simulator members. */
4
14
  simulate: boolean;
15
+ /** Emit a generated test feature for each migrated operation. */
5
16
  e2e: boolean;
17
+ /** Replace the template package placeholder; omission retains the placeholder. */
6
18
  package?: string;
19
+ /**
20
+ * Use a props object when true; false or omission selects positional
21
+ * parameters.
22
+ */
7
23
  keyword?: boolean;
24
+ /** Override the generated declaration attribution tag and its text. */
8
25
  author?: {
9
26
  tag: string;
10
27
  value: string;
11
28
  };
29
+ /**
30
+ * Replace controller method emission while retaining the surrounding
31
+ * controller.
32
+ */
12
33
  programmer?: {
13
34
  controllerMethod?: (ctx: NestiaMigrateNestMethodProgrammer.IContext) => ts.MethodDeclaration;
14
35
  };
@@ -1,7 +1,22 @@
1
1
  import { IHttpMigrateApplication } from "@typia/interface";
2
2
  import { INestiaMigrateConfig } from "./INestiaMigrateConfig";
3
+ /**
4
+ * The shared input of the programmers: the mode, the analyzed application, and
5
+ * the configuration.
6
+ *
7
+ * @evidence contracts/common.md#principled-implementation The record is built once per migration, so every programmer sees the same routes and options.
8
+ * @evidence contracts/common.md#clear-and-simple-design A three-member record.
9
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts It is a type and adds no runtime behavior.
10
+ * @evidence contracts/common.md#meaningful-documentation The comment lists the members.
11
+ */
3
12
  export interface INestiaMigrateContext {
13
+ /** Select backend/API workspace output or a standalone SDK project. */
4
14
  mode: "nest" | "sdk";
15
+ /**
16
+ * Generation-local route/accessor copies backed by the shared analyzed
17
+ * document.
18
+ */
5
19
  application: IHttpMigrateApplication;
20
+ /** Options used consistently by each programmer in this generation. */
6
21
  config: INestiaMigrateConfig;
7
22
  }
@@ -1,7 +1,20 @@
1
1
  import { IHttpMigrateRoute } from "@typia/interface";
2
+ /**
3
+ * A controller to generate: its name, its path, its source location, and its
4
+ * routes.
5
+ *
6
+ * @evidence contracts/common.md#principled-implementation The record is the output of the analyzer and the input of the controller programmer.
7
+ * @evidence contracts/common.md#clear-and-simple-design A four-member record.
8
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts It is a type and adds no runtime behavior.
9
+ * @evidence contracts/common.md#meaningful-documentation The comment lists the members.
10
+ */
2
11
  export interface INestiaMigrateController {
12
+ /** Class identifier shared by its declaration, filename and module import. */
3
13
  name: string;
14
+ /** Shared router path prefix, including router escapes for literal characters. */
4
15
  path: string;
16
+ /** Slash-separated source directory relative to the backend package. */
5
17
  location: string;
18
+ /** Operations grouped into this controller, in document order. */
6
19
  routes: IHttpMigrateRoute[];
7
20
  }
@@ -1,5 +1,16 @@
1
+ /**
2
+ * A generated file: its directory, its name, and its content.
3
+ *
4
+ * @evidence contracts/common.md#principled-implementation The record separates the location from the name so the writers can join them per mode.
5
+ * @evidence contracts/common.md#clear-and-simple-design A three-member record.
6
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts It is a type and adds no runtime behavior.
7
+ * @evidence contracts/common.md#meaningful-documentation The comment lists the members.
8
+ */
1
9
  export interface INestiaMigrateFile {
10
+ /** Slash-separated output directory relative to the generated project root. */
2
11
  location: string;
12
+ /** Filename within location. */
3
13
  file: string;
14
+ /** Complete source text written without another generation step. */
4
15
  content: string;
5
16
  }
@@ -1,7 +1,40 @@
1
1
  import ts from "../internal/ts";
2
+ /**
3
+ * Helpers that turn statements and comments into file text.
4
+ *
5
+ * @evidence contracts/common.md#principled-implementation The namespace attaches a JSDoc comment to a node, builds a blank line, and prints a file from statements.
6
+ * @evidence contracts/common.md#clear-and-simple-design Three small functions.
7
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts The comment text is escaped so it cannot end the comment early.
8
+ * @evidence contracts/common.md#meaningful-documentation The comment states its purpose.
9
+ */
2
10
  export declare namespace FilePrinter {
11
+ /**
12
+ * Attaches a JSDoc comment made from the text to the node, and leaves the
13
+ * node alone when the text is empty.
14
+ *
15
+ * @evidence contracts/common.md#principled-implementation Line endings are normalized, each line is prefixed, and every comment terminator in the text is replaced by an escaped form, so a description can never end the comment early and inject code.
16
+ * @evidence contracts/common.md#clear-and-simple-design One function with an early return.
17
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts The escaping applies to every line.
18
+ * @evidence contracts/common.md#meaningful-documentation The comment states the empty case and the escaping.
19
+ */
3
20
  const description: <Node extends ts.Node>(node: Node, comment: string) => Node;
21
+ /**
22
+ * Builds a statement that prints as a blank line.
23
+ *
24
+ * @evidence contracts/common.md#principled-implementation The printer emits the identifier text as it is, so an identifier holding a newline produces an empty line between statements.
25
+ * @evidence contracts/common.md#clear-and-simple-design One expression.
26
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts It is the way the printer offers to space statements.
27
+ * @evidence contracts/common.md#meaningful-documentation The comment states what the statement prints.
28
+ */
4
29
  const newLine: () => import("@ttsc/factory").ExpressionStatement;
30
+ /**
31
+ * Prints the statements as a file, with an optional text at the top.
32
+ *
33
+ * @evidence contracts/common.md#principled-implementation The statements are printed by the factory package's printer, so the output is the source of the syntax tree.
34
+ * @evidence contracts/common.md#clear-and-simple-design One expression.
35
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts It prints what it is given.
36
+ * @evidence contracts/common.md#meaningful-documentation The comment states the top text.
37
+ */
5
38
  const write: (props: {
6
39
  statements: ts.Statement[];
7
40
  top?: string;
@@ -2,8 +2,25 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FilePrinter = void 0;
4
4
  const factory_1 = require("@ttsc/factory");
5
+ /**
6
+ * Helpers that turn statements and comments into file text.
7
+ *
8
+ * @evidence contracts/common.md#principled-implementation The namespace attaches a JSDoc comment to a node, builds a blank line, and prints a file from statements.
9
+ * @evidence contracts/common.md#clear-and-simple-design Three small functions.
10
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts The comment text is escaped so it cannot end the comment early.
11
+ * @evidence contracts/common.md#meaningful-documentation The comment states its purpose.
12
+ */
5
13
  var FilePrinter;
6
14
  (function (FilePrinter) {
15
+ /**
16
+ * Attaches a JSDoc comment made from the text to the node, and leaves the
17
+ * node alone when the text is empty.
18
+ *
19
+ * @evidence contracts/common.md#principled-implementation Line endings are normalized, each line is prefixed, and every comment terminator in the text is replaced by an escaped form, so a description can never end the comment early and inject code.
20
+ * @evidence contracts/common.md#clear-and-simple-design One function with an early return.
21
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts The escaping applies to every line.
22
+ * @evidence contracts/common.md#meaningful-documentation The comment states the empty case and the escaping.
23
+ */
7
24
  FilePrinter.description = (node, comment) => {
8
25
  if (comment.length === 0)
9
26
  return node;
@@ -18,7 +35,23 @@ var FilePrinter;
18
35
  ].join("\n"), true);
19
36
  return node;
20
37
  };
38
+ /**
39
+ * Builds a statement that prints as a blank line.
40
+ *
41
+ * @evidence contracts/common.md#principled-implementation The printer emits the identifier text as it is, so an identifier holding a newline produces an empty line between statements.
42
+ * @evidence contracts/common.md#clear-and-simple-design One expression.
43
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts It is the way the printer offers to space statements.
44
+ * @evidence contracts/common.md#meaningful-documentation The comment states what the statement prints.
45
+ */
21
46
  FilePrinter.newLine = () => factory_1.factory.createExpressionStatement(factory_1.factory.createIdentifier("\n"));
47
+ /**
48
+ * Prints the statements as a file, with an optional text at the top.
49
+ *
50
+ * @evidence contracts/common.md#principled-implementation The statements are printed by the factory package's printer, so the output is the source of the syntax tree.
51
+ * @evidence contracts/common.md#clear-and-simple-design One expression.
52
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts It prints what it is given.
53
+ * @evidence contracts/common.md#meaningful-documentation The comment states the top text.
54
+ */
22
55
  FilePrinter.write = (props) => { var _a; return ((_a = props.top) !== null && _a !== void 0 ? _a : "") + new factory_1.TsPrinter().printFile(undefined, props.statements); };
23
56
  })(FilePrinter || (exports.FilePrinter = FilePrinter = {}));
24
57
  //# sourceMappingURL=FilePrinter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilePrinter.js","sourceRoot":"","sources":["../../src/utils/FilePrinter.ts"],"names":[],"mappings":";;;AAAA,2CAKuB;AAIvB,IAAiB,WAAW,CAkC3B;AAlCD,WAAiB,WAAW;IACb,uBAAW,GAAG,CACzB,IAAU,EACV,OAAe,EACT,EAAE;QACR,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACtC,IAAA,oCAA0B,EACxB,IAAI,EACJ,oBAAU,CAAC,sBAAsB,EACjC;YACE,GAAG;YACH,GAAG,OAAO;iBACP,KAAK,CAAC,MAAM,CAAC;iBACb,IAAI,CAAC,IAAI,CAAC;iBACV,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CACF,CAAC,GAAG,EAAE,EAAE,CACN,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CACtE;YACH,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,IAAI,CACL,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEW,mBAAO,GAAG,GAAG,EAAE,CAC1B,iBAAO,CAAC,yBAAyB,CAAC,iBAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IAEvD,iBAAK,GAAG,CAAC,KAGrB,EAAU,EAAE,kBACX,OAAC,KAAK,CAAC,GAAG,mCAAI,EAAE,CAAC,GAAG,IAAI,mBAAS,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,GAAA,CAAC;AAC/E,CAAC,EAlCgB,WAAW,aAAX,WAAW,GAAX,WAAW,QAkC3B"}
1
+ {"version":3,"file":"FilePrinter.js","sourceRoot":"","sources":["../../src/utils/FilePrinter.ts"],"names":[],"mappings":";;;AAAA,2CAKuB;AAIvB;;;;;;;GAOG;AACH,IAAiB,WAAW,CA2D3B;AA3DD,WAAiB,WAAW;IAC1B;;;;;;;;OAQG;IACU,uBAAW,GAAG,CACzB,IAAU,EACV,OAAe,EACT,EAAE;QACR,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACtC,IAAA,oCAA0B,EACxB,IAAI,EACJ,oBAAU,CAAC,sBAAsB,EACjC;YACE,GAAG;YACH,GAAG,OAAO;iBACP,KAAK,CAAC,MAAM,CAAC;iBACb,IAAI,CAAC,IAAI,CAAC;iBACV,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CACF,CAAC,GAAG,EAAE,EAAE,CACN,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CACtE;YACH,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,IAAI,CACL,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF;;;;;;;OAOG;IACU,mBAAO,GAAG,GAAG,EAAE,CAC1B,iBAAO,CAAC,yBAAyB,CAAC,iBAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IAEpE;;;;;;;OAOG;IACU,iBAAK,GAAG,CAAC,KAGrB,EAAU,EAAE,kBACX,OAAC,KAAK,CAAC,GAAG,mCAAI,EAAE,CAAC,GAAG,IAAI,mBAAS,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,GAAA,CAAC;AAC/E,CAAC,EA3DgB,WAAW,aAAX,WAAW,GAAX,WAAW,QA2D3B"}
@@ -1,3 +1,20 @@
1
+ /**
2
+ * Helpers for maps.
3
+ *
4
+ * @evidence contracts/common.md#principled-implementation The namespace holds the get-or-create helper.
5
+ * @evidence contracts/common.md#clear-and-simple-design One function.
6
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts It is a plain helper.
7
+ * @evidence contracts/common.md#meaningful-documentation The comment states its purpose.
8
+ */
1
9
  export declare namespace MapUtil {
10
+ /**
11
+ * Returns the value of a key, creating and storing it with the generator when
12
+ * the key is absent.
13
+ *
14
+ * @evidence contracts/common.md#principled-implementation Presence is tested with `has`, so a stored falsy value is returned and not created again, and the generator runs once per key.
15
+ * @evidence contracts/common.md#clear-and-simple-design One check, one generator call, and one store.
16
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts The stored value is returned as it is.
17
+ * @evidence contracts/common.md#meaningful-documentation The comment states when the generator runs.
18
+ */
2
19
  const take: <Key, T>(dict: Map<Key, T>) => (key: Key) => (generator: () => T) => T;
3
20
  }
@@ -1,12 +1,28 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MapUtil = void 0;
4
+ /**
5
+ * Helpers for maps.
6
+ *
7
+ * @evidence contracts/common.md#principled-implementation The namespace holds the get-or-create helper.
8
+ * @evidence contracts/common.md#clear-and-simple-design One function.
9
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts It is a plain helper.
10
+ * @evidence contracts/common.md#meaningful-documentation The comment states its purpose.
11
+ */
4
12
  var MapUtil;
5
13
  (function (MapUtil) {
14
+ /**
15
+ * Returns the value of a key, creating and storing it with the generator when
16
+ * the key is absent.
17
+ *
18
+ * @evidence contracts/common.md#principled-implementation Presence is tested with `has`, so a stored falsy value is returned and not created again, and the generator runs once per key.
19
+ * @evidence contracts/common.md#clear-and-simple-design One check, one generator call, and one store.
20
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts The stored value is returned as it is.
21
+ * @evidence contracts/common.md#meaningful-documentation The comment states when the generator runs.
22
+ */
6
23
  MapUtil.take = (dict) => (key) => (generator) => {
7
- const oldbie = dict.get(key);
8
- if (oldbie)
9
- return oldbie;
24
+ if (dict.has(key))
25
+ return dict.get(key);
10
26
  const value = generator();
11
27
  dict.set(key, value);
12
28
  return value;
@@ -1 +1 @@
1
- {"version":3,"file":"MapUtil.js","sourceRoot":"","sources":["../../src/utils/MapUtil.ts"],"names":[],"mappings":";;;AAAA,IAAiB,OAAO,CAYvB;AAZD,WAAiB,OAAO;IACT,YAAI,GACf,CAAS,IAAiB,EAAE,EAAE,CAC9B,CAAC,GAAQ,EAAE,EAAE,CACb,CAAC,SAAkB,EAAK,EAAE;QACxB,MAAM,MAAM,GAAkB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,MAAM,KAAK,GAAM,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACN,CAAC,EAZgB,OAAO,aAAP,OAAO,GAAP,OAAO,QAYvB"}
1
+ {"version":3,"file":"MapUtil.js","sourceRoot":"","sources":["../../src/utils/MapUtil.ts"],"names":[],"mappings":";;;AAAA;;;;;;;GAOG;AACH,IAAiB,OAAO,CAoBvB;AApBD,WAAiB,OAAO;IACtB;;;;;;;;OAQG;IACU,YAAI,GACf,CAAS,IAAiB,EAAE,EAAE,CAC9B,CAAC,GAAQ,EAAE,EAAE,CACb,CAAC,SAAkB,EAAK,EAAE;QACxB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAM,CAAC;QAE7C,MAAM,KAAK,GAAM,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACN,CAAC,EApBgB,OAAO,aAAP,OAAO,GAAP,OAAO,QAoBvB"}
@@ -2,8 +2,7 @@
2
2
  let MapUtil;
3
3
  (function(_MapUtil) {
4
4
  _MapUtil.take = (dict) => (key) => (generator) => {
5
- const oldbie = dict.get(key);
6
- if (oldbie) return oldbie;
5
+ if (dict.has(key)) return dict.get(key);
7
6
  const value = generator();
8
7
  dict.set(key, value);
9
8
  return value;