@nestia/core 11.2.1 → 12.0.0-dev.20260521.1

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 (178) hide show
  1. package/MIGRATION.md +169 -0
  2. package/lib/adaptors/WebSocketAdaptor.js +7 -3
  3. package/lib/adaptors/WebSocketAdaptor.js.map +1 -1
  4. package/lib/decorators/DynamicModule.js.map +1 -1
  5. package/lib/decorators/EncryptedBody.js.map +1 -1
  6. package/lib/decorators/EncryptedController.js.map +1 -1
  7. package/lib/decorators/EncryptedModule.js.map +1 -1
  8. package/lib/decorators/EncryptedRoute.js.map +1 -1
  9. package/lib/decorators/HumanRoute.js.map +1 -1
  10. package/lib/decorators/NoTransformConfigurationError.js +5 -2
  11. package/lib/decorators/NoTransformConfigurationError.js.map +1 -1
  12. package/lib/decorators/PlainBody.js.map +1 -1
  13. package/lib/decorators/SwaggerCustomizer.js.map +1 -1
  14. package/lib/decorators/SwaggerExample.js.map +1 -1
  15. package/lib/decorators/TypedBody.js.map +1 -1
  16. package/lib/decorators/TypedException.js.map +1 -1
  17. package/lib/decorators/TypedFormData.js.map +1 -1
  18. package/lib/decorators/TypedHeaders.js.map +1 -1
  19. package/lib/decorators/TypedParam.js +5 -2
  20. package/lib/decorators/TypedParam.js.map +1 -1
  21. package/lib/decorators/TypedQuery.js.map +1 -1
  22. package/lib/decorators/TypedRoute.js.map +1 -1
  23. package/lib/decorators/WebSocketRoute.js.map +1 -1
  24. package/lib/decorators/doNotThrowTransformError.js.map +1 -1
  25. package/lib/decorators/internal/get_path_and_querify.js +5 -2
  26. package/lib/decorators/internal/get_path_and_querify.js.map +1 -1
  27. package/lib/decorators/internal/get_path_and_stringify.js +5 -2
  28. package/lib/decorators/internal/get_path_and_stringify.js.map +1 -1
  29. package/lib/decorators/internal/get_text_body.js.map +1 -1
  30. package/lib/decorators/internal/headers_to_object.js.map +1 -1
  31. package/lib/decorators/internal/is_request_body_undefined.js.map +1 -1
  32. package/lib/decorators/internal/load_controller.js +48 -16
  33. package/lib/decorators/internal/load_controller.js.map +1 -1
  34. package/lib/decorators/internal/route_error.js +3 -3
  35. package/lib/decorators/internal/route_error.js.map +1 -1
  36. package/lib/decorators/internal/validate_request_body.js +5 -2
  37. package/lib/decorators/internal/validate_request_body.js.map +1 -1
  38. package/lib/decorators/internal/validate_request_form_data.js +5 -2
  39. package/lib/decorators/internal/validate_request_form_data.js.map +1 -1
  40. package/lib/decorators/internal/validate_request_headers.js +5 -2
  41. package/lib/decorators/internal/validate_request_headers.js.map +1 -1
  42. package/lib/decorators/internal/validate_request_query.js +30 -4
  43. package/lib/decorators/internal/validate_request_query.js.map +1 -1
  44. package/lib/index.js.map +1 -1
  45. package/lib/transform.d.ts +10 -5
  46. package/lib/transform.js +64 -28
  47. package/lib/transform.js.map +1 -1
  48. package/lib/utils/ArrayUtil.js.map +1 -1
  49. package/lib/utils/ExceptionManager.js.map +1 -1
  50. package/lib/utils/Singleton.js.map +1 -1
  51. package/lib/utils/SourceFinder.js.map +1 -1
  52. package/lib/utils/VersioningStrategy.js.map +1 -1
  53. package/native/cmd/ttsc-nestia/main.go +11 -0
  54. package/native/go.mod +32 -0
  55. package/native/go.sum +54 -0
  56. package/native/plugin/plan.go +102 -0
  57. package/native/transform/ast.go +32 -0
  58. package/native/transform/build.go +413 -0
  59. package/native/transform/cleanup.go +408 -0
  60. package/native/transform/cleanup_test.go +76 -0
  61. package/native/transform/commonjs_import_alias_test.go +49 -0
  62. package/native/transform/core_dispatch_test.go +127 -0
  63. package/native/transform/core_querify.go +227 -0
  64. package/native/transform/core_transform.go +1713 -0
  65. package/native/transform/core_websocket.go +115 -0
  66. package/native/transform/exports.go +13 -0
  67. package/native/transform/path_rewrite.go +285 -0
  68. package/native/transform/path_rewrite_test.go +243 -0
  69. package/native/transform/printer.go +244 -0
  70. package/native/transform/rewrite.go +662 -0
  71. package/native/transform/rewrite_test.go +118 -0
  72. package/native/transform/rewrite_unique_base_test.go +48 -0
  73. package/native/transform/run.go +72 -0
  74. package/native/transform/transform.go +376 -0
  75. package/native/transform/typia_fast.go +326 -0
  76. package/native/transform/typia_replacement.go +24 -0
  77. package/native/transform.cjs +43 -0
  78. package/package.json +28 -22
  79. package/src/decorators/NoTransformConfigurationError.ts +5 -2
  80. package/src/decorators/internal/load_controller.ts +50 -19
  81. package/src/decorators/internal/validate_request_query.ts +21 -2
  82. package/src/transform.ts +101 -35
  83. package/lib/decorators/internal/NoTransformConfigureError.d.ts +0 -1
  84. package/lib/decorators/internal/NoTransformConfigureError.js +0 -7
  85. package/lib/decorators/internal/NoTransformConfigureError.js.map +0 -1
  86. package/lib/options/INestiaTransformOptions.d.ts +0 -13
  87. package/lib/options/INestiaTransformOptions.js +0 -3
  88. package/lib/options/INestiaTransformOptions.js.map +0 -1
  89. package/lib/options/INestiaTransformProject.d.ts +0 -5
  90. package/lib/options/INestiaTransformProject.js +0 -3
  91. package/lib/options/INestiaTransformProject.js.map +0 -1
  92. package/lib/programmers/PlainBodyProgrammer.d.ts +0 -9
  93. package/lib/programmers/PlainBodyProgrammer.js +0 -58
  94. package/lib/programmers/PlainBodyProgrammer.js.map +0 -1
  95. package/lib/programmers/TypedBodyProgrammer.d.ts +0 -9
  96. package/lib/programmers/TypedBodyProgrammer.js +0 -94
  97. package/lib/programmers/TypedBodyProgrammer.js.map +0 -1
  98. package/lib/programmers/TypedFormDataBodyProgrammer.d.ts +0 -9
  99. package/lib/programmers/TypedFormDataBodyProgrammer.js +0 -65
  100. package/lib/programmers/TypedFormDataBodyProgrammer.js.map +0 -1
  101. package/lib/programmers/TypedHeadersProgrammer.d.ts +0 -9
  102. package/lib/programmers/TypedHeadersProgrammer.js +0 -38
  103. package/lib/programmers/TypedHeadersProgrammer.js.map +0 -1
  104. package/lib/programmers/TypedParamProgrammer.d.ts +0 -10
  105. package/lib/programmers/TypedParamProgrammer.js +0 -32
  106. package/lib/programmers/TypedParamProgrammer.js.map +0 -1
  107. package/lib/programmers/TypedQueryBodyProgrammer.d.ts +0 -9
  108. package/lib/programmers/TypedQueryBodyProgrammer.js +0 -74
  109. package/lib/programmers/TypedQueryBodyProgrammer.js.map +0 -1
  110. package/lib/programmers/TypedQueryProgrammer.d.ts +0 -9
  111. package/lib/programmers/TypedQueryProgrammer.js +0 -75
  112. package/lib/programmers/TypedQueryProgrammer.js.map +0 -1
  113. package/lib/programmers/TypedQueryRouteProgrammer.d.ts +0 -9
  114. package/lib/programmers/TypedQueryRouteProgrammer.js +0 -75
  115. package/lib/programmers/TypedQueryRouteProgrammer.js.map +0 -1
  116. package/lib/programmers/TypedRouteProgrammer.d.ts +0 -9
  117. package/lib/programmers/TypedRouteProgrammer.js +0 -79
  118. package/lib/programmers/TypedRouteProgrammer.js.map +0 -1
  119. package/lib/programmers/http/HttpAssertQuerifyProgrammer.d.ts +0 -9
  120. package/lib/programmers/http/HttpAssertQuerifyProgrammer.js +0 -39
  121. package/lib/programmers/http/HttpAssertQuerifyProgrammer.js.map +0 -1
  122. package/lib/programmers/http/HttpIsQuerifyProgrammer.d.ts +0 -9
  123. package/lib/programmers/http/HttpIsQuerifyProgrammer.js +0 -36
  124. package/lib/programmers/http/HttpIsQuerifyProgrammer.js.map +0 -1
  125. package/lib/programmers/http/HttpQuerifyProgrammer.d.ts +0 -9
  126. package/lib/programmers/http/HttpQuerifyProgrammer.js +0 -50
  127. package/lib/programmers/http/HttpQuerifyProgrammer.js.map +0 -1
  128. package/lib/programmers/http/HttpValidateQuerifyProgrammer.d.ts +0 -9
  129. package/lib/programmers/http/HttpValidateQuerifyProgrammer.js +0 -40
  130. package/lib/programmers/http/HttpValidateQuerifyProgrammer.js.map +0 -1
  131. package/lib/programmers/internal/CoreMetadataUtil.d.ts +0 -5
  132. package/lib/programmers/internal/CoreMetadataUtil.js +0 -19
  133. package/lib/programmers/internal/CoreMetadataUtil.js.map +0 -1
  134. package/lib/transformers/FileTransformer.d.ts +0 -5
  135. package/lib/transformers/FileTransformer.js +0 -80
  136. package/lib/transformers/FileTransformer.js.map +0 -1
  137. package/lib/transformers/MethodTransformer.d.ts +0 -8
  138. package/lib/transformers/MethodTransformer.js +0 -58
  139. package/lib/transformers/MethodTransformer.js.map +0 -1
  140. package/lib/transformers/NodeTransformer.d.ts +0 -8
  141. package/lib/transformers/NodeTransformer.js +0 -24
  142. package/lib/transformers/NodeTransformer.js.map +0 -1
  143. package/lib/transformers/ParameterDecoratorTransformer.d.ts +0 -9
  144. package/lib/transformers/ParameterDecoratorTransformer.js +0 -104
  145. package/lib/transformers/ParameterDecoratorTransformer.js.map +0 -1
  146. package/lib/transformers/ParameterTransformer.d.ts +0 -8
  147. package/lib/transformers/ParameterTransformer.js +0 -37
  148. package/lib/transformers/ParameterTransformer.js.map +0 -1
  149. package/lib/transformers/TypedRouteTransformer.d.ts +0 -9
  150. package/lib/transformers/TypedRouteTransformer.js +0 -68
  151. package/lib/transformers/TypedRouteTransformer.js.map +0 -1
  152. package/lib/transformers/WebSocketRouteTransformer.d.ts +0 -9
  153. package/lib/transformers/WebSocketRouteTransformer.js +0 -72
  154. package/lib/transformers/WebSocketRouteTransformer.js.map +0 -1
  155. package/src/decorators/internal/NoTransformConfigureError.ts +0 -2
  156. package/src/options/INestiaTransformOptions.ts +0 -34
  157. package/src/options/INestiaTransformProject.ts +0 -10
  158. package/src/programmers/PlainBodyProgrammer.ts +0 -72
  159. package/src/programmers/TypedBodyProgrammer.ts +0 -148
  160. package/src/programmers/TypedFormDataBodyProgrammer.ts +0 -118
  161. package/src/programmers/TypedHeadersProgrammer.ts +0 -65
  162. package/src/programmers/TypedParamProgrammer.ts +0 -33
  163. package/src/programmers/TypedQueryBodyProgrammer.ts +0 -113
  164. package/src/programmers/TypedQueryProgrammer.ts +0 -115
  165. package/src/programmers/TypedQueryRouteProgrammer.ts +0 -107
  166. package/src/programmers/TypedRouteProgrammer.ts +0 -103
  167. package/src/programmers/http/HttpAssertQuerifyProgrammer.ts +0 -74
  168. package/src/programmers/http/HttpIsQuerifyProgrammer.ts +0 -77
  169. package/src/programmers/http/HttpQuerifyProgrammer.ts +0 -110
  170. package/src/programmers/http/HttpValidateQuerifyProgrammer.ts +0 -78
  171. package/src/programmers/internal/CoreMetadataUtil.ts +0 -21
  172. package/src/transformers/FileTransformer.ts +0 -109
  173. package/src/transformers/MethodTransformer.ts +0 -103
  174. package/src/transformers/NodeTransformer.ts +0 -23
  175. package/src/transformers/ParameterDecoratorTransformer.ts +0 -143
  176. package/src/transformers/ParameterTransformer.ts +0 -57
  177. package/src/transformers/TypedRouteTransformer.ts +0 -85
  178. package/src/transformers/WebSocketRouteTransformer.ts +0 -120
package/src/transform.ts CHANGED
@@ -1,35 +1,101 @@
1
- import { ITypiaContext } from "@typia/core";
2
- import ts from "typescript";
3
-
4
- import { INestiaTransformOptions } from "./options/INestiaTransformOptions";
5
- import { FileTransformer } from "./transformers/FileTransformer";
6
-
7
- export const transform = (
8
- program: ts.Program,
9
- options: INestiaTransformOptions | undefined,
10
- extras: ITypiaContext["extras"],
11
- ): ts.TransformerFactory<ts.SourceFile> => {
12
- const compilerOptions: ts.CompilerOptions = program.getCompilerOptions();
13
- const strict: boolean =
14
- compilerOptions.strictNullChecks !== undefined
15
- ? !!compilerOptions.strictNullChecks
16
- : !!compilerOptions.strict;
17
- if (strict === false)
18
- extras.addDiagnostic({
19
- category: ts.DiagnosticCategory.Error,
20
- code: "(@nestia/core)" as any,
21
- file: undefined,
22
- start: undefined,
23
- length: undefined,
24
- messageText: "strict mode is required.",
25
- });
26
- return FileTransformer.transform({
27
- program,
28
- compilerOptions,
29
- checker: program.getTypeChecker(),
30
- printer: ts.createPrinter(),
31
- options: options ?? {},
32
- extras,
33
- });
34
- };
35
- export default transform;
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+
5
+ /** @internal */
6
+ interface ITtscPluginFactoryContext {
7
+ projectRoot: string;
8
+ }
9
+
10
+ /** @internal */
11
+ interface ITtscPlugin {
12
+ name: string;
13
+ source: string;
14
+ composes: string[];
15
+ contributors?: { name: string; source: string }[];
16
+ }
17
+
18
+ const filename: string = currentFilename();
19
+ const dirname: string = path.dirname(filename);
20
+
21
+ /**
22
+ * `@nestia/core` ttsc plugin descriptor.
23
+ *
24
+ * `@nestia/sdk` is not a standalone plugin: its Go transform is declared here
25
+ * as a `contributor` that ttsc statically links into this host binary, and
26
+ * only when `@nestia/sdk` is actually resolvable from the project. A project
27
+ * depending on `@nestia/core` alone never compiles any SDK transform code.
28
+ */
29
+ export function createTtscPlugin(
30
+ context: ITtscPluginFactoryContext,
31
+ ): ITtscPlugin {
32
+ const plugin: ITtscPlugin = {
33
+ name: "@nestia/core",
34
+ source: path.resolve(root(context), "native", "cmd", "ttsc-nestia"),
35
+ composes: ["typia/lib/transform"],
36
+ };
37
+ const sdk: string | null = resolveSdkContributorSource(context);
38
+ if (sdk !== null) plugin.contributors = [{ name: "sdk", source: sdk }];
39
+ return plugin;
40
+ }
41
+ export default createTtscPlugin;
42
+
43
+ function root(context: ITtscPluginFactoryContext): string {
44
+ return (
45
+ resolvePackageRoot("@nestia/core/package.json", context.projectRoot) ??
46
+ path.resolve(dirname, "..")
47
+ );
48
+ }
49
+
50
+ function resolveSdkContributorSource(
51
+ context: ITtscPluginFactoryContext,
52
+ ): string | null {
53
+ const manifest: string | null = resolvePackageRoot(
54
+ "@nestia/sdk/package.json",
55
+ context.projectRoot,
56
+ );
57
+ if (manifest === null) return null;
58
+ const source: string = path.resolve(manifest, "native", "sdk");
59
+ return fs.existsSync(source) ? source : null;
60
+ }
61
+
62
+ function resolvePackageRoot(
63
+ packageJson: string,
64
+ projectRoot: string,
65
+ ): string | null {
66
+ try {
67
+ return path.dirname(
68
+ require.resolve(packageJson, { paths: [dirname, projectRoot] }),
69
+ );
70
+ } catch {
71
+ return null;
72
+ }
73
+ }
74
+
75
+ function currentFilename(): string {
76
+ if (
77
+ typeof __filename === "string" &&
78
+ __filename !== "[stdin]" &&
79
+ __filename.length !== 0
80
+ )
81
+ return normalizeFilename(__filename);
82
+
83
+ const line: string | undefined = new Error().stack
84
+ ?.split("\n")
85
+ .find(
86
+ (entry) =>
87
+ entry.includes("/src/transform.ts") ||
88
+ entry.includes("/lib/transform.js") ||
89
+ entry.includes("/lib/transform.mjs"),
90
+ );
91
+ const matched: RegExpMatchArray | null | undefined = line?.match(
92
+ /\(([^()]+):\d+:\d+\)|at ([^\s()]+):\d+:\d+/,
93
+ );
94
+ const fallback: string = typeof __filename === "string" ? __filename : "";
95
+ return normalizeFilename(matched?.[1] ?? matched?.[2] ?? fallback);
96
+ }
97
+
98
+ function normalizeFilename(value: string): string {
99
+ if (value.startsWith("file:")) return fileURLToPath(value);
100
+ return value;
101
+ }
@@ -1 +0,0 @@
1
- export { NoTransformConfigurationError as NoTransformConfigureError } from "../NoTransformConfigurationError";
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NoTransformConfigureError = void 0;
4
- // For very old legay versions
5
- var NoTransformConfigurationError_1 = require("../NoTransformConfigurationError");
6
- Object.defineProperty(exports, "NoTransformConfigureError", { enumerable: true, get: function () { return NoTransformConfigurationError_1.NoTransformConfigurationError; } });
7
- //# sourceMappingURL=NoTransformConfigureError.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NoTransformConfigureError.js","sourceRoot":"","sources":["../../../src/decorators/internal/NoTransformConfigureError.ts"],"names":[],"mappings":";;;AAAA,8BAA8B;AAC9B,kFAA8G;AAArG,0IAAA,6BAA6B,OAA6B"}
@@ -1,13 +0,0 @@
1
- export interface INestiaTransformOptions {
2
- validate?: INestiaTransformOptions.Validate;
3
- stringify?: INestiaTransformOptions.Stringify | null;
4
- llm?: boolean | INestiaTransformOptions.ILlm;
5
- throws?: boolean;
6
- }
7
- export declare namespace INestiaTransformOptions {
8
- type Validate = "assert" | "is" | "validate" | "assertEquals" | "equals" | "validateEquals" | "assertClone" | "validateClone" | "assertPrune" | "validatePrune";
9
- type Stringify = "stringify" | "assert" | "is" | "validate" | "validate.log";
10
- interface ILlm {
11
- strict?: boolean;
12
- }
13
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=INestiaTransformOptions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"INestiaTransformOptions.js","sourceRoot":"","sources":["../../src/options/INestiaTransformOptions.ts"],"names":[],"mappings":""}
@@ -1,5 +0,0 @@
1
- import { ITypiaContext } from "@typia/core";
2
- import { INestiaTransformOptions } from "./INestiaTransformOptions";
3
- export interface INestiaTransformContext extends Omit<ITypiaContext, "options"> {
4
- options: INestiaTransformOptions;
5
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=INestiaTransformProject.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"INestiaTransformProject.js","sourceRoot":"","sources":["../../src/options/INestiaTransformProject.ts"],"names":[],"mappings":""}
@@ -1,9 +0,0 @@
1
- import ts from "typescript";
2
- import { INestiaTransformContext } from "../options/INestiaTransformProject";
3
- export declare namespace PlainBodyProgrammer {
4
- const generate: (props: {
5
- context: INestiaTransformContext;
6
- modulo: ts.LeftHandSideExpression;
7
- type: ts.Type;
8
- }) => ts.Expression;
9
- }
@@ -1,58 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PlainBodyProgrammer = void 0;
4
- const core_1 = require("@typia/core");
5
- var PlainBodyProgrammer;
6
- (function (PlainBodyProgrammer) {
7
- PlainBodyProgrammer.generate = (props) => {
8
- const result = core_1.MetadataFactory.analyze({
9
- checker: props.context.checker,
10
- transformer: props.context.transformer,
11
- options: {
12
- escape: false,
13
- constant: true,
14
- absorb: true,
15
- validate: ({ metadata }) => validate(metadata),
16
- },
17
- components: new core_1.MetadataCollection(),
18
- type: props.type,
19
- });
20
- if (result.success === false)
21
- throw core_1.TransformerError.from({
22
- code: "nestia.core.TypedParam",
23
- errors: result.errors,
24
- });
25
- return core_1.AssertProgrammer.write({
26
- context: Object.assign(Object.assign({}, props.context), { options: {
27
- numeric: false,
28
- finite: false,
29
- functional: false,
30
- } }),
31
- modulo: props.modulo,
32
- config: {
33
- equals: false,
34
- guard: false,
35
- },
36
- type: props.type,
37
- name: undefined,
38
- });
39
- };
40
- })(PlainBodyProgrammer || (exports.PlainBodyProgrammer = PlainBodyProgrammer = {}));
41
- const validate = (metadata) => {
42
- const errors = [];
43
- const insert = (msg) => errors.push(msg);
44
- const expected = (metadata.atomics.some((a) => a.type === "string") ? 1 : 0) +
45
- metadata.templates.length +
46
- metadata.constants
47
- .filter((c) => c.type === "string")
48
- .map((c) => c.values.length)
49
- .reduce((a, b) => a + b, 0);
50
- if (expected === 0 || expected !== metadata.size())
51
- insert(`only string type is allowed`);
52
- if (metadata.nullable === true)
53
- insert(`do not allow nullable type`);
54
- else if (metadata.any === true)
55
- insert(`do not allow any type`);
56
- return errors;
57
- };
58
- //# sourceMappingURL=PlainBodyProgrammer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PlainBodyProgrammer.js","sourceRoot":"","sources":["../../src/programmers/PlainBodyProgrammer.ts"],"names":[],"mappings":";;;AAAA,sCAMqB;AAKrB,IAAiB,mBAAmB,CAyCnC;AAzCD,WAAiB,mBAAmB;IACrB,4BAAQ,GAAG,CAAC,KAIxB,EAAiB,EAAE;QAClB,MAAM,MAAM,GAAG,sBAAe,CAAC,OAAO,CAAC;YACrC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO;YAC9B,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW;YACtC,OAAO,EAAE;gBACP,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;aAC/C;YACD,UAAU,EAAE,IAAI,yBAAkB,EAAE;YACpC,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK;YAC1B,MAAM,uBAAgB,CAAC,IAAI,CAAC;gBAC1B,IAAI,EAAE,wBAAwB;gBAC9B,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC,CAAC;QACL,OAAO,uBAAgB,CAAC,KAAK,CAAC;YAC5B,OAAO,kCACF,KAAK,CAAC,OAAO,KAChB,OAAO,EAAE;oBACP,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,KAAK;iBAClB,GACF;YACD,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,MAAM,EAAE;gBACN,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,KAAK;aACb;YACD,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC,EAzCgB,mBAAmB,mCAAnB,mBAAmB,QAyCnC;AAED,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAY,EAAE;IACtD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEjD,MAAM,QAAQ,GACZ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,QAAQ,CAAC,SAAS,CAAC,MAAM;QACzB,QAAQ,CAAC,SAAS;aACf,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;aAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;aAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAChC,IAAI,QAAQ,KAAK,CAAC,IAAI,QAAQ,KAAK,QAAQ,CAAC,IAAI,EAAE;QAChD,MAAM,CAAC,6BAA6B,CAAC,CAAC;IACxC,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI;QAAE,MAAM,CAAC,4BAA4B,CAAC,CAAC;SAChE,IAAI,QAAQ,CAAC,GAAG,KAAK,IAAI;QAAE,MAAM,CAAC,uBAAuB,CAAC,CAAC;IAEhE,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
@@ -1,9 +0,0 @@
1
- import ts from "typescript";
2
- import { INestiaTransformContext } from "../options/INestiaTransformProject";
3
- export declare namespace TypedBodyProgrammer {
4
- const generate: (props: {
5
- context: INestiaTransformContext;
6
- modulo: ts.LeftHandSideExpression;
7
- type: ts.Type;
8
- }) => ts.ObjectLiteralExpression;
9
- }
@@ -1,94 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.TypedBodyProgrammer = void 0;
7
- const core_1 = require("@typia/core");
8
- const typescript_1 = __importDefault(require("typescript"));
9
- var TypedBodyProgrammer;
10
- (function (TypedBodyProgrammer) {
11
- TypedBodyProgrammer.generate = (props) => {
12
- // VALIDATE TYPE
13
- core_1.JsonMetadataFactory.analyze({
14
- method: "@nestia.core.TypedBody",
15
- checker: props.context.checker,
16
- transformer: props.context.transformer,
17
- type: props.type,
18
- validate: props.context.options.llm
19
- ? (next) => {
20
- var _a, _b;
21
- return core_1.LlmSchemaProgrammer.validate({
22
- config: {
23
- strict: typeof props.context.options.llm === "boolean"
24
- ? false
25
- : ((_b = (_a = props.context.options.llm) === null || _a === void 0 ? void 0 : _a.strict) !== null && _b !== void 0 ? _b : false),
26
- },
27
- metadata: next.metadata,
28
- explore: next.explore,
29
- });
30
- }
31
- : undefined,
32
- });
33
- // GENERATE VALIDATION PLAN
34
- const check = (key) => (equals) => (programmer) => typescript_1.default.factory.createObjectLiteralExpression([
35
- typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createIdentifier("type"), typescript_1.default.factory.createStringLiteral(key)),
36
- typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createIdentifier(key), programmer({
37
- context: Object.assign(Object.assign({}, props.context), { options: {
38
- numeric: false,
39
- finite: false,
40
- functional: false,
41
- } }),
42
- modulo: props.modulo,
43
- config: {
44
- equals,
45
- guard: false,
46
- },
47
- type: props.type,
48
- name: undefined,
49
- })),
50
- ]);
51
- const misc = (key) => (programmer) => typescript_1.default.factory.createObjectLiteralExpression([
52
- typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createIdentifier("type"), typescript_1.default.factory.createStringLiteral(key)),
53
- typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createIdentifier(key), programmer({
54
- context: Object.assign(Object.assign({}, props.context), { options: {
55
- numeric: false,
56
- finite: false,
57
- functional: false,
58
- } }),
59
- modulo: props.modulo,
60
- type: props.type,
61
- name: undefined,
62
- })),
63
- ]);
64
- //----
65
- // RETURNS
66
- //----
67
- const category = props.context.options.validate;
68
- // NORMAL
69
- if (category === "assert")
70
- return check("assert")(false)(core_1.AssertProgrammer.write);
71
- else if (category === "is")
72
- return check("is")(false)(core_1.IsProgrammer.write);
73
- // STRICT
74
- else if (category === "validateEquals")
75
- return check("validate")(true)(core_1.ValidateProgrammer.write);
76
- else if (category === "equals")
77
- return check("is")(true)(core_1.IsProgrammer.write);
78
- else if (category === "assertEquals")
79
- return check("assert")(true)(core_1.AssertProgrammer.write);
80
- // CLONE
81
- else if (category === "assertClone")
82
- return misc("assert")(core_1.MiscAssertCloneProgrammer.write);
83
- else if (category === "validateClone")
84
- return misc("validate")(core_1.MiscValidateCloneProgrammer.write);
85
- // PRUNE
86
- else if (category === "assertPrune")
87
- return misc("assert")(core_1.MiscAssertPruneProgrammer.write);
88
- else if (category === "validatePrune")
89
- return misc("validate")(core_1.MiscValidatePruneProgrammer.write);
90
- // DEFAULT
91
- return check("validate")(false)(core_1.ValidateProgrammer.write);
92
- };
93
- })(TypedBodyProgrammer || (exports.TypedBodyProgrammer = TypedBodyProgrammer = {}));
94
- //# sourceMappingURL=TypedBodyProgrammer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TypedBodyProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedBodyProgrammer.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import ts from "typescript";
2
- import { INestiaTransformContext } from "../options/INestiaTransformProject";
3
- export declare namespace TypedFormDataBodyProgrammer {
4
- const generate: (props: {
5
- context: INestiaTransformContext;
6
- modulo: ts.LeftHandSideExpression;
7
- type: ts.Type;
8
- }) => ts.ObjectLiteralExpression;
9
- }
@@ -1,65 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.TypedFormDataBodyProgrammer = void 0;
7
- const core_1 = require("@typia/core");
8
- const typescript_1 = __importDefault(require("typescript"));
9
- var TypedFormDataBodyProgrammer;
10
- (function (TypedFormDataBodyProgrammer) {
11
- TypedFormDataBodyProgrammer.generate = (props) => {
12
- // VALIDATE TYPE
13
- const storage = new core_1.MetadataCollection();
14
- const result = core_1.MetadataFactory.analyze({
15
- checker: props.context.checker,
16
- transformer: props.context.transformer,
17
- options: {
18
- escape: false,
19
- constant: true,
20
- absorb: true,
21
- validate: core_1.HttpFormDataProgrammer.validate,
22
- },
23
- type: props.type,
24
- components: storage,
25
- });
26
- if (result.success === false)
27
- throw core_1.TransformerError.from({
28
- code: "nestia.core.TypedFormData.Body",
29
- errors: result.errors,
30
- });
31
- const files = result.data.objects[0].type.properties.filter((p) => isFile(p.value) || p.value.arrays.some((a) => isFile(a.type.value))).map((p) => ({
32
- name: p.key.constants[0].values[0].value,
33
- limit: !!p.value.natives.length ? 1 : null,
34
- }));
35
- // GENERATE VALIDATION PLAN
36
- const parameter = (key) => (programmer) => typescript_1.default.factory.createObjectLiteralExpression([
37
- typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createIdentifier("files"), core_1.LiteralFactory.write(files)),
38
- typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createIdentifier("validator"), typescript_1.default.factory.createObjectLiteralExpression([
39
- typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createIdentifier("type"), typescript_1.default.factory.createStringLiteral(key)),
40
- typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createIdentifier(key), programmer({
41
- context: Object.assign(Object.assign({}, props.context), { options: {
42
- numeric: false,
43
- finite: false,
44
- functional: false,
45
- } }),
46
- modulo: props.modulo,
47
- type: props.type,
48
- name: undefined,
49
- })),
50
- ], true)),
51
- ], true);
52
- // RETURNS
53
- const category = props.context.options.validate;
54
- if (category === "is" || category === "equals")
55
- return parameter("is")(core_1.HttpIsFormDataProgrammer.write);
56
- else if (category === "validate" ||
57
- category === "validateEquals" ||
58
- category === "validateClone" ||
59
- category === "validatePrune")
60
- return parameter("validate")(core_1.HttpValidateFormDataProgrammer.write);
61
- return parameter("assert")(core_1.HttpAssertFormDataProgrammer.write);
62
- };
63
- })(TypedFormDataBodyProgrammer || (exports.TypedFormDataBodyProgrammer = TypedFormDataBodyProgrammer = {}));
64
- const isFile = (meta) => meta.natives.some(({ name }) => name === "File" || name === "Blob");
65
- //# sourceMappingURL=TypedFormDataBodyProgrammer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TypedFormDataBodyProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedFormDataBodyProgrammer.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import ts from "typescript";
2
- import { INestiaTransformContext } from "../options/INestiaTransformProject";
3
- export declare namespace TypedHeadersProgrammer {
4
- const generate: (props: {
5
- context: INestiaTransformContext;
6
- modulo: ts.LeftHandSideExpression;
7
- type: ts.Type;
8
- }) => ts.Expression;
9
- }
@@ -1,38 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.TypedHeadersProgrammer = void 0;
7
- const core_1 = require("@typia/core");
8
- const typescript_1 = __importDefault(require("typescript"));
9
- var TypedHeadersProgrammer;
10
- (function (TypedHeadersProgrammer) {
11
- TypedHeadersProgrammer.generate = (props) => {
12
- // GENERATE VALIDATION PLAN
13
- const parameter = (key) => (programmer) => typescript_1.default.factory.createObjectLiteralExpression([
14
- typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createIdentifier("type"), typescript_1.default.factory.createStringLiteral(key)),
15
- typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createIdentifier(key), programmer({
16
- context: Object.assign(Object.assign({}, props.context), { options: {
17
- numeric: false,
18
- finite: false,
19
- functional: false,
20
- } }),
21
- modulo: props.modulo,
22
- type: props.type,
23
- name: undefined,
24
- })),
25
- ]);
26
- // RETURNS
27
- const category = props.context.options.validate;
28
- if (category === "is" || category === "equals")
29
- return parameter("is")(core_1.HttpIsHeadersProgrammer.write);
30
- else if (category === "validate" ||
31
- category === "validateEquals" ||
32
- category === "validateClone" ||
33
- category === "validatePrune")
34
- return parameter("validate")(core_1.HttpValidateHeadersProgrammer.write);
35
- return parameter("assert")(core_1.HttpAssertHeadersProgrammer.write);
36
- };
37
- })(TypedHeadersProgrammer || (exports.TypedHeadersProgrammer = TypedHeadersProgrammer = {}));
38
- //# sourceMappingURL=TypedHeadersProgrammer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TypedHeadersProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedHeadersProgrammer.ts"],"names":[],"mappings":";;;;;;AAAA,sCAKqB;AACrB,4DAA4B;AAK5B,IAAiB,sBAAsB,CAqDtC;AArDD,WAAiB,sBAAsB;IACxB,+BAAQ,GAAG,CAAC,KAIxB,EAAiB,EAAE;QAClB,2BAA2B;QAC3B,MAAM,SAAS,GACb,CAAC,GAA0C,EAAE,EAAE,CAC/C,CACE,UAKmB,EACnB,EAAE,CACF,oBAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC;YACvC,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CACjC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,EACnC,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CACpC;YACD,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CACjC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAChC,UAAU,CAAC;gBACT,OAAO,kCACF,KAAK,CAAC,OAAO,KAChB,OAAO,EAAE;wBACP,OAAO,EAAE,KAAK;wBACd,MAAM,EAAE,KAAK;wBACb,UAAU,EAAE,KAAK;qBAClB,GACF;gBACD,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI,EAAE,SAAS;aAChB,CAAC,CACH;SACF,CAAC,CAAC;QAEP,UAAU;QACV,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;QAChD,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,QAAQ;YAC5C,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,8BAAuB,CAAC,KAAK,CAAC,CAAC;aACnD,IACH,QAAQ,KAAK,UAAU;YACvB,QAAQ,KAAK,gBAAgB;YAC7B,QAAQ,KAAK,eAAe;YAC5B,QAAQ,KAAK,eAAe;YAE5B,OAAO,SAAS,CAAC,UAAU,CAAC,CAAC,oCAA6B,CAAC,KAAK,CAAC,CAAC;QACpE,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC,kCAA2B,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC,CAAC;AACJ,CAAC,EArDgB,sBAAsB,sCAAtB,sBAAsB,QAqDtC"}
@@ -1,10 +0,0 @@
1
- import ts from "typescript";
2
- import { INestiaTransformContext } from "../options/INestiaTransformProject";
3
- export declare namespace TypedParamProgrammer {
4
- const generate: (props: {
5
- context: INestiaTransformContext;
6
- modulo: ts.LeftHandSideExpression;
7
- arguments: readonly ts.Expression[];
8
- type: ts.Type;
9
- }) => readonly ts.Expression[];
10
- }
@@ -1,32 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.TypedParamProgrammer = void 0;
7
- const core_1 = require("@typia/core");
8
- const typescript_1 = __importDefault(require("typescript"));
9
- var TypedParamProgrammer;
10
- (function (TypedParamProgrammer) {
11
- TypedParamProgrammer.generate = (props) => {
12
- var _a, _b;
13
- // ALREADY BEING TRANSFORMED
14
- if (props.arguments.length !== 1)
15
- return props.arguments;
16
- return [
17
- props.arguments[0],
18
- core_1.HttpParameterProgrammer.write({
19
- context: Object.assign(Object.assign({}, props.context), { options: {
20
- numeric: true,
21
- } }),
22
- modulo: props.modulo,
23
- type: props.type,
24
- name: undefined,
25
- }),
26
- ...(((_b = (_a = props.context.options) === null || _a === void 0 ? void 0 : _a.validate) === null || _b === void 0 ? void 0 : _b.startsWith("validate"))
27
- ? [typescript_1.default.factory.createTrue()]
28
- : []),
29
- ];
30
- };
31
- })(TypedParamProgrammer || (exports.TypedParamProgrammer = TypedParamProgrammer = {}));
32
- //# sourceMappingURL=TypedParamProgrammer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TypedParamProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedParamProgrammer.ts"],"names":[],"mappings":";;;;;;AAAA,sCAAsD;AACtD,4DAA4B;AAI5B,IAAiB,oBAAoB,CA2BpC;AA3BD,WAAiB,oBAAoB;IACtB,6BAAQ,GAAG,CAAC,KAKxB,EAA4B,EAAE;;QAC7B,4BAA4B;QAC5B,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,SAAS,CAAC;QACzD,OAAO;YACL,KAAK,CAAC,SAAS,CAAC,CAAC,CAAE;YACnB,8BAAuB,CAAC,KAAK,CAAC;gBAC5B,OAAO,kCACF,KAAK,CAAC,OAAO,KAChB,OAAO,EAAE;wBACP,OAAO,EAAE,IAAI;qBACd,GACF;gBACD,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI,EAAE,SAAS;aAChB,CAAC;YACF,GAAG,CAAC,CAAA,MAAA,MAAA,KAAK,CAAC,OAAO,CAAC,OAAO,0CAAE,QAAQ,0CAAE,UAAU,CAAC,UAAU,CAAC;gBACzD,CAAC,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC3B,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,EA3BgB,oBAAoB,oCAApB,oBAAoB,QA2BpC"}
@@ -1,9 +0,0 @@
1
- import ts from "typescript";
2
- import { INestiaTransformContext } from "../options/INestiaTransformProject";
3
- export declare namespace TypedQueryBodyProgrammer {
4
- const generate: (props: {
5
- context: INestiaTransformContext;
6
- modulo: ts.LeftHandSideExpression;
7
- type: ts.Type;
8
- }) => ts.ObjectLiteralExpression;
9
- }