@typia/transform 12.0.0-dev.20260316 → 12.0.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.
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2022 Jeongho Nam
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2022 Jeongho Nam
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,25 +1,25 @@
1
- # `@typia/transform`
2
-
3
- ![Typia Logo](https://typia.io/logo.png)
4
-
5
- [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/typia/blob/master/LICENSE)
6
- [![NPM Version](https://img.shields.io/npm/v/typia.svg)](https://www.npmjs.com/package/typia)
7
- [![NPM Downloads](https://img.shields.io/npm/dm/typia.svg)](https://www.npmjs.com/package/typia)
8
- [![Build Status](https://github.com/samchon/typia/workflows/test/badge.svg)](https://github.com/samchon/typia/actions?query=workflow%3Atest)
9
- [![Guide Documents](https://img.shields.io/badge/Guide-Documents-forestgreen)](https://typia.io/docs/)
10
- [![Gurubase](https://img.shields.io/badge/Gurubase-Document%20Chatbot-006BFF)](https://gurubase.io/g/typia)
11
- [![Discord Badge](https://img.shields.io/badge/discord-samchon-d91965?style=flat&labelColor=5866f2&logo=discord&logoColor=white&link=https://discord.gg/E94XhzrUCZ)](https://discord.gg/E94XhzrUCZ)
12
-
13
- TypeScript transformer plugin for [`typia`](https://github.com/samchon/typia).
14
-
15
- Transforms `typia.*<T>()` function calls into optimized runtime code at compile time by analyzing TypeScript types.
16
-
17
- This is an **internal package** of `typia`. You don't need to install it directly — it is automatically included as a dependency of `typia`.
18
-
19
- ## Key Exports
20
-
21
- | Export | Description |
22
- |--------|-------------|
23
- | `transform()` | TypeScript transformer factory — the main entry point for `ts-patch` and `ttypescript` |
24
- | `TypiaGenerator.build()` | Programmatic build API for generating transformed output files |
25
- | `ImportTransformer` | Rewrites import paths and removes unused typia imports after transformation |
1
+ # `@typia/transform`
2
+
3
+ ![Typia Logo](https://typia.io/logo.png)
4
+
5
+ [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/samchon/typia/blob/master/LICENSE)
6
+ [![NPM Version](https://img.shields.io/npm/v/typia.svg)](https://www.npmjs.com/package/typia)
7
+ [![NPM Downloads](https://img.shields.io/npm/dm/typia.svg)](https://www.npmjs.com/package/typia)
8
+ [![Build Status](https://github.com/samchon/typia/workflows/test/badge.svg)](https://github.com/samchon/typia/actions?query=workflow%3Atest)
9
+ [![Guide Documents](https://img.shields.io/badge/Guide-Documents-forestgreen)](https://typia.io/docs/)
10
+ [![Gurubase](https://img.shields.io/badge/Gurubase-Document%20Chatbot-006BFF)](https://gurubase.io/g/typia)
11
+ [![Discord Badge](https://img.shields.io/badge/discord-samchon-d91965?style=flat&labelColor=5866f2&logo=discord&logoColor=white&link=https://discord.gg/E94XhzrUCZ)](https://discord.gg/E94XhzrUCZ)
12
+
13
+ TypeScript transformer plugin for [`typia`](https://github.com/samchon/typia).
14
+
15
+ Transforms `typia.*<T>()` function calls into optimized runtime code at compile time by analyzing TypeScript types.
16
+
17
+ This is an **internal package** of `typia`. You don't need to install it directly — it is automatically included as a dependency of `typia`.
18
+
19
+ ## Key Exports
20
+
21
+ | Export | Description |
22
+ |--------|-------------|
23
+ | `transform()` | TypeScript transformer factory — the main entry point for `ts-patch` and `ttypescript` |
24
+ | `TypiaGenerator.build()` | Programmatic build API for generating transformed output files |
25
+ | `ImportTransformer` | Rewrites import paths and removes unused typia imports after transformation |
@@ -1,11 +1,5 @@
1
- import { ITypiaContext } from "@typia/core";
2
1
  import ts from "typescript";
3
2
  import { ITransformProps } from "../../ITransformProps";
4
3
  export declare namespace LlmApplicationTransformer {
5
4
  const transform: (props: ITransformProps) => ts.Expression;
6
- const getConfigArgument: (props: {
7
- context: ITypiaContext;
8
- argument: ts.Expression;
9
- equals?: boolean | undefined;
10
- }) => ts.ObjectLiteralExpression;
11
5
  }
@@ -10,7 +10,7 @@ const TransformerError_1 = require("../../TransformerError");
10
10
  var LlmApplicationTransformer;
11
11
  (function (LlmApplicationTransformer) {
12
12
  LlmApplicationTransformer.transform = (props) => {
13
- var _a;
13
+ var _a, _b;
14
14
  // GET GENERIC ARGUMENT
15
15
  if (!((_a = props.expression.typeArguments) === null || _a === void 0 ? void 0 : _a.length))
16
16
  throw new TransformerError_1.TransformerError({
@@ -66,88 +66,10 @@ var LlmApplicationTransformer;
66
66
  metadata: analyze(false),
67
67
  name: top.getFullText().trim(),
68
68
  config,
69
+ configArgument: ((_b = props.expression.arguments) === null || _b === void 0 ? void 0 : _b[0]) !== undefined
70
+ ? props.expression.arguments[0]
71
+ : undefined,
69
72
  });
70
73
  };
71
- /** @internal */
72
- LlmApplicationTransformer.decompose = (method, props) => {
73
- var _a;
74
- // GET GENERIC ARGUMENT
75
- if (!((_a = props.expression.typeArguments) === null || _a === void 0 ? void 0 : _a.length))
76
- throw new TransformerError_1.TransformerError({
77
- code: `typia.llm.${method}`,
78
- message: "no generic argument.",
79
- });
80
- const top = props.expression.typeArguments[0];
81
- if (typescript_1.default.isTypeNode(top) === false)
82
- return null;
83
- // GET TYPE
84
- const config = core_1.LlmMetadataFactory.getConfig({
85
- context: props.context,
86
- method,
87
- node: props.expression.typeArguments[1],
88
- });
89
- const type = props.context.checker.getTypeFromTypeNode(top);
90
- // VALIDATE TYPE
91
- const analyze = (validate) => {
92
- const result = core_1.MetadataFactory.analyze({
93
- checker: props.context.checker,
94
- transformer: props.context.transformer,
95
- options: {
96
- absorb: validate,
97
- escape: true,
98
- constant: true,
99
- functional: true,
100
- validate: validate === true
101
- ? (next) => core_1.LlmApplicationProgrammer.validate({
102
- config,
103
- metadata: next.metadata,
104
- explore: next.explore,
105
- top: next.top,
106
- })
107
- : undefined,
108
- },
109
- components: new core_1.MetadataCollection({
110
- replace: core_1.MetadataCollection.replace,
111
- }),
112
- type,
113
- });
114
- if (result.success === false)
115
- throw TransformerError_1.TransformerError.from({
116
- code: `typia.llm.${method}`,
117
- errors: result.errors,
118
- });
119
- return result.data;
120
- };
121
- analyze(true);
122
- // GENERATE LLM APPLICATION
123
- return {
124
- application: core_1.LlmApplicationProgrammer.writeApplication({
125
- context: props.context,
126
- modulo: props.modulo,
127
- metadata: analyze(false),
128
- config,
129
- name: top.getFullText().trim(),
130
- }),
131
- node: top,
132
- type,
133
- config,
134
- };
135
- };
136
- LlmApplicationTransformer.getConfigArgument = (props) => {
137
- const satisfiesTypeNode = typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createIdentifier("Partial"), [
138
- typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createIdentifier("Pick"), [
139
- typescript_1.default.factory.createImportTypeNode(typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral("typia")), undefined, typescript_1.default.factory.createQualifiedName(typescript_1.default.factory.createIdentifier("ILlmApplication"), typescript_1.default.factory.createIdentifier("IConfig")), undefined, false),
140
- typescript_1.default.factory.createUnionTypeNode([
141
- typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral("validate")),
142
- ]),
143
- ]),
144
- ]);
145
- return typescript_1.default.factory.createObjectLiteralExpression([
146
- typescript_1.default.factory.createSpreadAssignment(typescript_1.default.factory.createSatisfiesExpression(props.argument, satisfiesTypeNode)),
147
- typescript_1.default.factory.createPropertyAssignment("equals", props.equals === true
148
- ? typescript_1.default.factory.createTrue()
149
- : typescript_1.default.factory.createFalse()),
150
- ], true);
151
- };
152
74
  })(LlmApplicationTransformer || (exports.LlmApplicationTransformer = LlmApplicationTransformer = {}));
153
75
  //# sourceMappingURL=LlmApplicationTransformer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LlmApplicationTransformer.js","sourceRoot":"","sources":["../../../src/features/llm/LlmApplicationTransformer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LlmApplicationTransformer.js","sourceRoot":"","sources":["../../../src/features/llm/LlmApplicationTransformer.ts"],"names":[],"mappings":";;;;;;AAAA,sCAMqB;AAErB,4DAA4B;AAG5B,6DAA0D;AAE1D,IAAiB,yBAAyB,CA2EzC;AA3ED,WAAiB,yBAAyB;IAC3B,mCAAS,GAAG,CAAC,KAAsB,EAAiB,EAAE;;QACjE,uBAAuB;QACvB,IAAI,CAAC,CAAA,MAAA,KAAK,CAAC,UAAU,CAAC,aAAa,0CAAE,MAAM,CAAA;YACzC,MAAM,IAAI,mCAAgB,CAAC;gBACzB,IAAI,EAAE,uBAAuB;gBAC7B,OAAO,EAAE,sBAAsB;aAChC,CAAC,CAAC;QACL,MAAM,GAAG,GAAY,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAE,CAAC;QACxD,IAAI,oBAAE,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC,UAAU,CAAC;QAE1D,aAAa;QACb,MAAM,MAAM,GAMI,yBAAkB,CAAC,SAAS,CAAC;YAC3C,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,aAAa;YACrB,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;SACxC,CAAC,CAAC;QACH,MAAM,IAAI,GAAY,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAErE,gBAAgB;QAChB,MAAM,OAAO,GAAG,CAAC,QAAiB,EAAkB,EAAE;YACpD,MAAM,MAAM,GACV,sBAAe,CAAC,OAAO,CAAC;gBACtB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO;gBAC9B,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW;gBACtC,OAAO,EAAE;oBACP,MAAM,EAAE,QAAQ;oBAChB,MAAM,EAAE,IAAI;oBACZ,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,IAAI;oBAChB,QAAQ,EACN,QAAQ,KAAK,IAAI;wBACf,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CACP,+BAAwB,CAAC,QAAQ,CAAC;4BAChC,MAAM;4BACN,QAAQ,EAAE,IAAI,CAAC,QAAQ;4BACvB,OAAO,EAAE,IAAI,CAAC,OAAO;4BACrB,GAAG,EAAE,IAAI,CAAC,GAAG;yBACd,CAAC;wBACN,CAAC,CAAC,SAAS;iBAChB;gBACD,UAAU,EAAE,IAAI,yBAAkB,CAAC;oBACjC,OAAO,EAAE,yBAAkB,CAAC,OAAO;iBACpC,CAAC;gBACF,IAAI;aACL,CAAC,CAAC;YACL,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK;gBAC1B,MAAM,mCAAgB,CAAC,IAAI,CAAC;oBAC1B,IAAI,EAAE,uBAAuB;oBAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;iBACtB,CAAC,CAAC;YACL,OAAO,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC;QAEd,2BAA2B;QAC3B,OAAO,+BAAwB,CAAC,KAAK,CAAC;YACpC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC;YACxB,IAAI,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;YAC9B,MAAM;YACN,cAAc,EACZ,CAAA,MAAA,KAAK,CAAC,UAAU,CAAC,SAAS,0CAAG,CAAC,CAAC,MAAK,SAAS;gBAC3C,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC/B,CAAC,CAAC,SAAS;SAChB,CAAC,CAAC;IACL,CAAC,CAAC;AAEJ,CAAC,EA3EgB,yBAAyB,yCAAzB,yBAAyB,QA2EzC"}
@@ -60,88 +60,11 @@ var LlmApplicationTransformer;
60
60
  metadata: analyze(false),
61
61
  name: top.getFullText().trim(),
62
62
  config,
63
+ configArgument: props.expression.arguments?.[0] !== undefined
64
+ ? props.expression.arguments[0]
65
+ : undefined,
63
66
  });
64
67
  };
65
- /** @internal */
66
- LlmApplicationTransformer.decompose = (method, props) => {
67
- // GET GENERIC ARGUMENT
68
- if (!props.expression.typeArguments?.length)
69
- throw new TransformerError({
70
- code: `typia.llm.${method}`,
71
- message: "no generic argument.",
72
- });
73
- const top = props.expression.typeArguments[0];
74
- if (ts.isTypeNode(top) === false)
75
- return null;
76
- // GET TYPE
77
- const config = LlmMetadataFactory.getConfig({
78
- context: props.context,
79
- method,
80
- node: props.expression.typeArguments[1],
81
- });
82
- const type = props.context.checker.getTypeFromTypeNode(top);
83
- // VALIDATE TYPE
84
- const analyze = (validate) => {
85
- const result = MetadataFactory.analyze({
86
- checker: props.context.checker,
87
- transformer: props.context.transformer,
88
- options: {
89
- absorb: validate,
90
- escape: true,
91
- constant: true,
92
- functional: true,
93
- validate: validate === true
94
- ? (next) => LlmApplicationProgrammer.validate({
95
- config,
96
- metadata: next.metadata,
97
- explore: next.explore,
98
- top: next.top,
99
- })
100
- : undefined,
101
- },
102
- components: new MetadataCollection({
103
- replace: MetadataCollection.replace,
104
- }),
105
- type,
106
- });
107
- if (result.success === false)
108
- throw TransformerError.from({
109
- code: `typia.llm.${method}`,
110
- errors: result.errors,
111
- });
112
- return result.data;
113
- };
114
- analyze(true);
115
- // GENERATE LLM APPLICATION
116
- return {
117
- application: LlmApplicationProgrammer.writeApplication({
118
- context: props.context,
119
- modulo: props.modulo,
120
- metadata: analyze(false),
121
- config,
122
- name: top.getFullText().trim(),
123
- }),
124
- node: top,
125
- type,
126
- config,
127
- };
128
- };
129
- LlmApplicationTransformer.getConfigArgument = (props) => {
130
- const satisfiesTypeNode = ts.factory.createTypeReferenceNode(ts.factory.createIdentifier("Partial"), [
131
- ts.factory.createTypeReferenceNode(ts.factory.createIdentifier("Pick"), [
132
- ts.factory.createImportTypeNode(ts.factory.createLiteralTypeNode(ts.factory.createStringLiteral("typia")), undefined, ts.factory.createQualifiedName(ts.factory.createIdentifier("ILlmApplication"), ts.factory.createIdentifier("IConfig")), undefined, false),
133
- ts.factory.createUnionTypeNode([
134
- ts.factory.createLiteralTypeNode(ts.factory.createStringLiteral("validate")),
135
- ]),
136
- ]),
137
- ]);
138
- return ts.factory.createObjectLiteralExpression([
139
- ts.factory.createSpreadAssignment(ts.factory.createSatisfiesExpression(props.argument, satisfiesTypeNode)),
140
- ts.factory.createPropertyAssignment("equals", props.equals === true
141
- ? ts.factory.createTrue()
142
- : ts.factory.createFalse()),
143
- ], true);
144
- };
145
68
  })(LlmApplicationTransformer || (LlmApplicationTransformer = {}));
146
69
 
147
70
  export { LlmApplicationTransformer };
@@ -1 +1 @@
1
- {"version":3,"file":"LlmApplicationTransformer.mjs","sources":["../../../src/features/llm/LlmApplicationTransformer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LlmApplicationTransformer.mjs","sources":["../../../src/features/llm/LlmApplicationTransformer.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAaM,IAAW;AAAjB,CAAA,UAAiB,yBAAyB,EAAA;AAC3B,IAAA,yBAAA,CAAA,SAAS,GAAG,CAAC,KAAsB,KAAmB;;AAEjE,QAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM;YACzC,MAAM,IAAI,gBAAgB,CAAC;AACzB,gBAAA,IAAI,EAAE,uBAAuB;AAC7B,gBAAA,OAAO,EAAE,sBAAsB;AAChC,aAAA,CAAC;QACJ,MAAM,GAAG,GAAY,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAE;AACvD,QAAA,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC,UAAU;;AAGzD,QAAA,MAAM,MAAM,GAMI,kBAAkB,CAAC,SAAS,CAAC;YAC3C,OAAO,EAAE,KAAK,CAAC,OAAO;AACtB,YAAA,MAAM,EAAE,aAAa;YACrB,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;AACxC,SAAA,CAAC;AACF,QAAA,MAAM,IAAI,GAAY,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC;;AAGpE,QAAA,MAAM,OAAO,GAAG,CAAC,QAAiB,KAAoB;AACpD,YAAA,MAAM,MAAM,GACV,eAAe,CAAC,OAAO,CAAC;AACtB,gBAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO;AAC9B,gBAAA,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW;AACtC,gBAAA,OAAO,EAAE;AACP,oBAAA,MAAM,EAAE,QAAQ;AAChB,oBAAA,MAAM,EAAE,IAAI;AACZ,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,UAAU,EAAE,IAAI;oBAChB,QAAQ,EACN,QAAQ,KAAK;0BACT,CAAC,IAAI,KACH,wBAAwB,CAAC,QAAQ,CAAC;4BAChC,MAAM;4BACN,QAAQ,EAAE,IAAI,CAAC,QAAQ;4BACvB,OAAO,EAAE,IAAI,CAAC,OAAO;4BACrB,GAAG,EAAE,IAAI,CAAC,GAAG;yBACd;AACL,0BAAE,SAAS;AAChB,iBAAA;gBACD,UAAU,EAAE,IAAI,kBAAkB,CAAC;oBACjC,OAAO,EAAE,kBAAkB,CAAC,OAAO;iBACpC,CAAC;gBACF,IAAI;AACL,aAAA,CAAC;AACJ,YAAA,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK;gBAC1B,MAAM,gBAAgB,CAAC,IAAI,CAAC;AAC1B,oBAAA,IAAI,EAAE,uBAAuB;oBAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;AACtB,iBAAA,CAAC;YACJ,OAAO,MAAM,CAAC,IAAI;AACpB,QAAA,CAAC;QACD,OAAO,CAAC,IAAI,CAAC;;QAGb,OAAO,wBAAwB,CAAC,KAAK,CAAC;YACpC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM;AACpB,YAAA,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC;AACxB,YAAA,IAAI,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;YAC9B,MAAM;YACN,cAAc,EACZ,KAAK,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK;kBAChC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC9B,kBAAE,SAAS;AAChB,SAAA,CAAC;AACJ,IAAA,CAAC;AAEH,CAAC,EA3EgB,yBAAyB,KAAzB,yBAAyB,GAAA,EAAA,CAAA,CAAA;;;;"}
@@ -7,52 +7,80 @@ exports.LlmControllerTransformer = void 0;
7
7
  const core_1 = require("@typia/core");
8
8
  const typescript_1 = __importDefault(require("typescript"));
9
9
  const TransformerError_1 = require("../../TransformerError");
10
- const LlmApplicationTransformer_1 = require("./LlmApplicationTransformer");
11
10
  var LlmControllerTransformer;
12
11
  (function (LlmControllerTransformer) {
13
12
  LlmControllerTransformer.transform = (props) => {
14
- var _a, _b;
15
- const dec = LlmApplicationTransformer_1.LlmApplicationTransformer.decompose("application", props);
16
- if (dec === null)
13
+ var _a;
14
+ // GET GENERIC ARGUMENT
15
+ if (!((_a = props.expression.typeArguments) === null || _a === void 0 ? void 0 : _a.length))
16
+ throw new TransformerError_1.TransformerError({
17
+ code: "typia.llm.controller",
18
+ message: "no generic argument.",
19
+ });
20
+ const top = props.expression.typeArguments[0];
21
+ if (typescript_1.default.isTypeNode(top) === false)
17
22
  return props.expression;
18
- else if (props.expression.arguments[0] === undefined)
23
+ if (props.expression.arguments[0] === undefined)
19
24
  throw new TransformerError_1.TransformerError({
20
- code: `typia.llm.controller`,
21
- message: `no identifier name.`,
25
+ code: "typia.llm.controller",
26
+ message: "no identifier name.",
22
27
  });
23
- else if (props.expression.arguments[1] === undefined)
28
+ if (props.expression.arguments[1] === undefined)
24
29
  throw new TransformerError_1.TransformerError({
25
- code: `typia.llm.controller`,
26
- message: `no executor.`,
30
+ code: "typia.llm.controller",
31
+ message: "no executor.",
27
32
  });
28
- const typeNode = props.context.importer.type({
29
- file: "typia",
30
- name: "ILlmController",
31
- arguments: [dec.node],
33
+ // GET CONFIG
34
+ const config = core_1.LlmMetadataFactory.getConfig({
35
+ context: props.context,
36
+ method: "controller",
37
+ node: props.expression.typeArguments[1],
32
38
  });
33
- const primitiveTypeNode = props.context.importer.type({
34
- file: "typia",
35
- name: "ILlmApplication.__IPrimitive",
36
- arguments: [dec.node],
39
+ const type = props.context.checker.getTypeFromTypeNode(top);
40
+ // VALIDATE TYPE
41
+ const analyze = (validate) => {
42
+ const result = core_1.MetadataFactory.analyze({
43
+ checker: props.context.checker,
44
+ transformer: props.context.transformer,
45
+ options: {
46
+ absorb: validate,
47
+ escape: true,
48
+ constant: true,
49
+ functional: true,
50
+ validate: validate === true
51
+ ? (next) => core_1.LlmApplicationProgrammer.validate({
52
+ config,
53
+ metadata: next.metadata,
54
+ explore: next.explore,
55
+ top: next.top,
56
+ })
57
+ : undefined,
58
+ },
59
+ components: new core_1.MetadataCollection({
60
+ replace: core_1.MetadataCollection.replace,
61
+ }),
62
+ type,
63
+ });
64
+ if (result.success === false)
65
+ throw TransformerError_1.TransformerError.from({
66
+ code: "typia.llm.controller",
67
+ errors: result.errors,
68
+ });
69
+ return result.data;
70
+ };
71
+ analyze(true);
72
+ // GENERATE LLM CONTROLLER
73
+ return core_1.LlmControllerProgrammer.write({
74
+ context: props.context,
75
+ modulo: props.modulo,
76
+ metadata: analyze(false),
77
+ className: top.getFullText().trim(),
78
+ config,
79
+ node: top,
80
+ nameArgument: props.expression.arguments[0],
81
+ executeArgument: props.expression.arguments[1],
82
+ configArgument: props.expression.arguments[2],
37
83
  });
38
- const value = typescript_1.default.factory.createObjectLiteralExpression([
39
- typescript_1.default.factory.createPropertyAssignment("protocol", typescript_1.default.factory.createStringLiteral("class")),
40
- typescript_1.default.factory.createPropertyAssignment("name", props.expression.arguments[0]),
41
- typescript_1.default.factory.createPropertyAssignment("execute", props.expression.arguments[1]),
42
- typescript_1.default.factory.createPropertyAssignment("application", typescript_1.default.factory.createCallExpression(props.context.importer.internal("llmApplicationFinalize"), undefined, [
43
- typescript_1.default.factory.createAsExpression(typescript_1.default.factory.createSatisfiesExpression(core_1.LiteralFactory.write(dec.application), primitiveTypeNode), primitiveTypeNode),
44
- ...(((_a = props.expression.arguments) === null || _a === void 0 ? void 0 : _a[2]) !== undefined
45
- ? [
46
- LlmApplicationTransformer_1.LlmApplicationTransformer.getConfigArgument({
47
- context: props.context,
48
- argument: props.expression.arguments[2],
49
- equals: (_b = dec.config) === null || _b === void 0 ? void 0 : _b.equals,
50
- }),
51
- ]
52
- : []),
53
- ])),
54
- ], true);
55
- return typescript_1.default.factory.createAsExpression(typescript_1.default.factory.createSatisfiesExpression(value, typeNode), typeNode);
56
84
  };
57
85
  })(LlmControllerTransformer || (exports.LlmControllerTransformer = LlmControllerTransformer = {}));
58
86
  //# sourceMappingURL=LlmControllerTransformer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LlmControllerTransformer.js","sourceRoot":"","sources":["../../../src/features/llm/LlmControllerTransformer.ts"],"names":[],"mappings":";;;;;;AAAA,sCAA6C;AAC7C,4DAA4B;AAG5B,6DAA0D;AAC1D,2EAAwE;AAExE,IAAiB,wBAAwB,CAyExC;AAzED,WAAiB,wBAAwB;IAC1B,kCAAS,GAAG,CAAC,KAAsB,EAAiB,EAAE;;QACjE,MAAM,GAAG,GAAG,qDAAyB,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QACtE,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC,UAAU,CAAC;aACrC,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS;YAClD,MAAM,IAAI,mCAAgB,CAAC;gBACzB,IAAI,EAAE,sBAAsB;gBAC5B,OAAO,EAAE,qBAAqB;aAC/B,CAAC,CAAC;aACA,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS;YAClD,MAAM,IAAI,mCAAgB,CAAC;gBACzB,IAAI,EAAE,sBAAsB;gBAC5B,OAAO,EAAE,cAAc;aACxB,CAAC,CAAC;QAEL,MAAM,QAAQ,GAAsB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC9D,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,gBAAgB;YACtB,SAAS,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;SACtB,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAsB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;YACvE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,8BAA8B;YACpC,SAAS,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;SACtB,CAAC,CAAC;QACH,MAAM,KAAK,GACT,oBAAE,CAAC,OAAO,CAAC,6BAA6B,CACtC;YACE,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CACjC,UAAU,EACV,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,CACxC;YACD,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CACjC,MAAM,EACN,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAC9B;YACD,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CACjC,SAAS,EACT,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAC9B;YACD,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CACjC,aAAa,EACb,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EACzD,SAAS,EACT;gBACE,oBAAE,CAAC,OAAO,CAAC,kBAAkB,CAC3B,oBAAE,CAAC,OAAO,CAAC,yBAAyB,CAClC,qBAAc,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,EACrC,iBAAiB,CAClB,EACD,iBAAiB,CAClB;gBACD,GAAG,CAAC,CAAA,MAAA,KAAK,CAAC,UAAU,CAAC,SAAS,0CAAG,CAAC,CAAC,MAAK,SAAS;oBAC/C,CAAC,CAAC;wBACE,qDAAyB,CAAC,iBAAiB,CAAC;4BAC1C,OAAO,EAAE,KAAK,CAAC,OAAO;4BACtB,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;4BACvC,MAAM,EAAE,MAAA,GAAG,CAAC,MAAM,0CAAE,MAAM;yBAC3B,CAAC;qBACH;oBACH,CAAC,CAAC,EAAE,CAAC;aACR,CACF,CACF;SACF,EACD,IAAI,CACL,CAAC;QACJ,OAAO,oBAAE,CAAC,OAAO,CAAC,kBAAkB,CAClC,oBAAE,CAAC,OAAO,CAAC,yBAAyB,CAAC,KAAK,EAAE,QAAQ,CAAC,EACrD,QAAQ,CACT,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,EAzEgB,wBAAwB,wCAAxB,wBAAwB,QAyExC"}
1
+ {"version":3,"file":"LlmControllerTransformer.js","sourceRoot":"","sources":["../../../src/features/llm/LlmControllerTransformer.ts"],"names":[],"mappings":"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"}
@@ -1,52 +1,80 @@
1
- import { LiteralFactory } from '@typia/core';
1
+ import { LlmMetadataFactory, LlmControllerProgrammer, MetadataFactory, MetadataCollection, LlmApplicationProgrammer } from '@typia/core';
2
2
  import ts from 'typescript';
3
3
  import { TransformerError } from '../../TransformerError.mjs';
4
- import { LlmApplicationTransformer } from './LlmApplicationTransformer.mjs';
5
4
 
6
5
  var LlmControllerTransformer;
7
6
  (function (LlmControllerTransformer) {
8
7
  LlmControllerTransformer.transform = (props) => {
9
- const dec = LlmApplicationTransformer.decompose("application", props);
10
- if (dec === null)
8
+ // GET GENERIC ARGUMENT
9
+ if (!props.expression.typeArguments?.length)
10
+ throw new TransformerError({
11
+ code: "typia.llm.controller",
12
+ message: "no generic argument.",
13
+ });
14
+ const top = props.expression.typeArguments[0];
15
+ if (ts.isTypeNode(top) === false)
11
16
  return props.expression;
12
- else if (props.expression.arguments[0] === undefined)
17
+ if (props.expression.arguments[0] === undefined)
13
18
  throw new TransformerError({
14
- code: `typia.llm.controller`,
15
- message: `no identifier name.`,
19
+ code: "typia.llm.controller",
20
+ message: "no identifier name.",
16
21
  });
17
- else if (props.expression.arguments[1] === undefined)
22
+ if (props.expression.arguments[1] === undefined)
18
23
  throw new TransformerError({
19
- code: `typia.llm.controller`,
20
- message: `no executor.`,
24
+ code: "typia.llm.controller",
25
+ message: "no executor.",
21
26
  });
22
- const typeNode = props.context.importer.type({
23
- file: "typia",
24
- name: "ILlmController",
25
- arguments: [dec.node],
27
+ // GET CONFIG
28
+ const config = LlmMetadataFactory.getConfig({
29
+ context: props.context,
30
+ method: "controller",
31
+ node: props.expression.typeArguments[1],
26
32
  });
27
- const primitiveTypeNode = props.context.importer.type({
28
- file: "typia",
29
- name: "ILlmApplication.__IPrimitive",
30
- arguments: [dec.node],
33
+ const type = props.context.checker.getTypeFromTypeNode(top);
34
+ // VALIDATE TYPE
35
+ const analyze = (validate) => {
36
+ const result = MetadataFactory.analyze({
37
+ checker: props.context.checker,
38
+ transformer: props.context.transformer,
39
+ options: {
40
+ absorb: validate,
41
+ escape: true,
42
+ constant: true,
43
+ functional: true,
44
+ validate: validate === true
45
+ ? (next) => LlmApplicationProgrammer.validate({
46
+ config,
47
+ metadata: next.metadata,
48
+ explore: next.explore,
49
+ top: next.top,
50
+ })
51
+ : undefined,
52
+ },
53
+ components: new MetadataCollection({
54
+ replace: MetadataCollection.replace,
55
+ }),
56
+ type,
57
+ });
58
+ if (result.success === false)
59
+ throw TransformerError.from({
60
+ code: "typia.llm.controller",
61
+ errors: result.errors,
62
+ });
63
+ return result.data;
64
+ };
65
+ analyze(true);
66
+ // GENERATE LLM CONTROLLER
67
+ return LlmControllerProgrammer.write({
68
+ context: props.context,
69
+ modulo: props.modulo,
70
+ metadata: analyze(false),
71
+ className: top.getFullText().trim(),
72
+ config,
73
+ node: top,
74
+ nameArgument: props.expression.arguments[0],
75
+ executeArgument: props.expression.arguments[1],
76
+ configArgument: props.expression.arguments[2],
31
77
  });
32
- const value = ts.factory.createObjectLiteralExpression([
33
- ts.factory.createPropertyAssignment("protocol", ts.factory.createStringLiteral("class")),
34
- ts.factory.createPropertyAssignment("name", props.expression.arguments[0]),
35
- ts.factory.createPropertyAssignment("execute", props.expression.arguments[1]),
36
- ts.factory.createPropertyAssignment("application", ts.factory.createCallExpression(props.context.importer.internal("llmApplicationFinalize"), undefined, [
37
- ts.factory.createAsExpression(ts.factory.createSatisfiesExpression(LiteralFactory.write(dec.application), primitiveTypeNode), primitiveTypeNode),
38
- ...(props.expression.arguments?.[2] !== undefined
39
- ? [
40
- LlmApplicationTransformer.getConfigArgument({
41
- context: props.context,
42
- argument: props.expression.arguments[2],
43
- equals: dec.config?.equals,
44
- }),
45
- ]
46
- : []),
47
- ])),
48
- ], true);
49
- return ts.factory.createAsExpression(ts.factory.createSatisfiesExpression(value, typeNode), typeNode);
50
78
  };
51
79
  })(LlmControllerTransformer || (LlmControllerTransformer = {}));
52
80
 
@@ -1 +1 @@
1
- {"version":3,"file":"LlmControllerTransformer.mjs","sources":["../../../src/features/llm/LlmControllerTransformer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LlmControllerTransformer.mjs","sources":["../../../src/features/llm/LlmControllerTransformer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}