@typia/transform 12.0.0-dev.20260307 → 12.0.0-dev.20260309
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/lib/CallExpressionTransformer.js +8 -0
- package/lib/CallExpressionTransformer.js.map +1 -1
- package/lib/CallExpressionTransformer.mjs +8 -0
- package/lib/CallExpressionTransformer.mjs.map +1 -1
- package/lib/features/json/JsonApplicationTransformer.js +3 -4
- package/lib/features/json/JsonApplicationTransformer.js.map +1 -1
- package/lib/features/json/JsonApplicationTransformer.mjs +4 -5
- package/lib/features/json/JsonApplicationTransformer.mjs.map +1 -1
- package/lib/features/json/JsonSchemaTransformer.js +2 -8
- package/lib/features/json/JsonSchemaTransformer.js.map +1 -1
- package/lib/features/json/JsonSchemaTransformer.mjs +3 -9
- package/lib/features/json/JsonSchemaTransformer.mjs.map +1 -1
- package/lib/features/json/JsonSchemasTransformer.js +2 -8
- package/lib/features/json/JsonSchemasTransformer.js.map +1 -1
- package/lib/features/json/JsonSchemasTransformer.mjs +3 -9
- package/lib/features/json/JsonSchemasTransformer.mjs.map +1 -1
- package/lib/features/llm/LlmApplicationTransformer.js +56 -20
- package/lib/features/llm/LlmApplicationTransformer.js.map +1 -1
- package/lib/features/llm/LlmApplicationTransformer.mjs +56 -20
- package/lib/features/llm/LlmApplicationTransformer.mjs.map +1 -1
- package/lib/features/llm/LlmCoerceTransformer.d.ts +5 -0
- package/lib/features/llm/LlmCoerceTransformer.js +81 -0
- package/lib/features/llm/LlmCoerceTransformer.js.map +1 -0
- package/lib/features/llm/LlmCoerceTransformer.mjs +77 -0
- package/lib/features/llm/LlmCoerceTransformer.mjs.map +1 -0
- package/lib/features/llm/LlmControllerTransformer.js +12 -10
- package/lib/features/llm/LlmControllerTransformer.js.map +1 -1
- package/lib/features/llm/LlmControllerTransformer.mjs +12 -10
- package/lib/features/llm/LlmControllerTransformer.mjs.map +1 -1
- package/lib/features/llm/LlmCreateCoerceTransformer.d.ts +5 -0
- package/lib/features/llm/LlmCreateCoerceTransformer.js +75 -0
- package/lib/features/llm/LlmCreateCoerceTransformer.js.map +1 -0
- package/lib/features/llm/LlmCreateCoerceTransformer.mjs +71 -0
- package/lib/features/llm/LlmCreateCoerceTransformer.mjs.map +1 -0
- package/lib/features/llm/LlmCreateParseTransformer.d.ts +5 -0
- package/lib/features/llm/LlmCreateParseTransformer.js +75 -0
- package/lib/features/llm/LlmCreateParseTransformer.js.map +1 -0
- package/lib/features/llm/LlmCreateParseTransformer.mjs +71 -0
- package/lib/features/llm/LlmCreateParseTransformer.mjs.map +1 -0
- package/lib/features/llm/LlmParametersTransformer.d.ts +1 -1
- package/lib/features/llm/LlmParametersTransformer.js +3 -6
- package/lib/features/llm/LlmParametersTransformer.js.map +1 -1
- package/lib/features/llm/LlmParametersTransformer.mjs +4 -7
- package/lib/features/llm/LlmParametersTransformer.mjs.map +1 -1
- package/lib/features/llm/LlmParseTransformer.d.ts +5 -0
- package/lib/features/llm/LlmParseTransformer.js +81 -0
- package/lib/features/llm/LlmParseTransformer.js.map +1 -0
- package/lib/features/llm/LlmParseTransformer.mjs +77 -0
- package/lib/features/llm/LlmParseTransformer.mjs.map +1 -0
- package/lib/features/llm/LlmSchemaTransformer.d.ts +1 -1
- package/lib/features/llm/LlmSchemaTransformer.js +10 -25
- package/lib/features/llm/LlmSchemaTransformer.js.map +1 -1
- package/lib/features/llm/LlmSchemaTransformer.mjs +11 -26
- package/lib/features/llm/LlmSchemaTransformer.mjs.map +1 -1
- package/package.json +4 -4
- package/src/CallExpressionTransformer.ts +8 -0
- package/src/features/json/JsonApplicationTransformer.ts +7 -10
- package/src/features/json/JsonSchemaTransformer.ts +3 -15
- package/src/features/json/JsonSchemasTransformer.ts +3 -15
- package/src/features/llm/LlmApplicationTransformer.ts +66 -26
- package/src/features/llm/LlmCoerceTransformer.ts +95 -0
- package/src/features/llm/LlmControllerTransformer.ts +19 -14
- package/src/features/llm/LlmCreateCoerceTransformer.ts +84 -0
- package/src/features/llm/LlmCreateParseTransformer.ts +84 -0
- package/src/features/llm/LlmParametersTransformer.ts +4 -16
- package/src/features/llm/LlmParseTransformer.ts +95 -0
- package/src/features/llm/LlmSchemaTransformer.ts +15 -61
|
@@ -1,29 +1,65 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { LlmMetadataFactory, LlmApplicationProgrammer, MetadataFactory, MetadataCollection } from '@typia/core';
|
|
2
2
|
import ts from 'typescript';
|
|
3
3
|
import { TransformerError } from '../../TransformerError.mjs';
|
|
4
4
|
|
|
5
5
|
var LlmApplicationTransformer;
|
|
6
6
|
(function (LlmApplicationTransformer) {
|
|
7
7
|
LlmApplicationTransformer.transform = (props) => {
|
|
8
|
-
|
|
9
|
-
if (
|
|
8
|
+
// GET GENERIC ARGUMENT
|
|
9
|
+
if (!props.expression.typeArguments?.length)
|
|
10
|
+
throw new TransformerError({
|
|
11
|
+
code: "typia.llm.application",
|
|
12
|
+
message: "no generic argument.",
|
|
13
|
+
});
|
|
14
|
+
const top = props.expression.typeArguments[0];
|
|
15
|
+
if (ts.isTypeNode(top) === false)
|
|
10
16
|
return props.expression;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
17
|
+
// GET CONFIG
|
|
18
|
+
const config = LlmMetadataFactory.getConfig({
|
|
19
|
+
context: props.context,
|
|
20
|
+
method: "application",
|
|
21
|
+
node: props.expression.typeArguments[1],
|
|
22
|
+
});
|
|
23
|
+
const type = props.context.checker.getTypeFromTypeNode(top);
|
|
24
|
+
// VALIDATE TYPE
|
|
25
|
+
const analyze = (validate) => {
|
|
26
|
+
const result = MetadataFactory.analyze({
|
|
27
|
+
checker: props.context.checker,
|
|
28
|
+
transformer: props.context.transformer,
|
|
29
|
+
options: {
|
|
30
|
+
absorb: validate,
|
|
31
|
+
escape: true,
|
|
32
|
+
constant: true,
|
|
33
|
+
functional: true,
|
|
34
|
+
validate: validate === true
|
|
35
|
+
? (metadata, explore) => LlmApplicationProgrammer.validate({
|
|
36
|
+
config,
|
|
37
|
+
metadata,
|
|
38
|
+
explore,
|
|
39
|
+
})
|
|
40
|
+
: undefined,
|
|
41
|
+
},
|
|
42
|
+
components: new MetadataCollection({
|
|
43
|
+
replace: MetadataCollection.replace,
|
|
44
|
+
}),
|
|
45
|
+
type,
|
|
46
|
+
});
|
|
47
|
+
if (result.success === false)
|
|
48
|
+
throw TransformerError.from({
|
|
49
|
+
code: "typia.llm.application",
|
|
50
|
+
errors: result.errors,
|
|
51
|
+
});
|
|
52
|
+
return result.data;
|
|
53
|
+
};
|
|
54
|
+
analyze(true);
|
|
55
|
+
// GENERATE LLM APPLICATION
|
|
56
|
+
return LlmApplicationProgrammer.write({
|
|
57
|
+
context: props.context,
|
|
58
|
+
modulo: props.modulo,
|
|
59
|
+
metadata: analyze(false),
|
|
60
|
+
name: top.getFullText().trim(),
|
|
61
|
+
config,
|
|
62
|
+
});
|
|
27
63
|
};
|
|
28
64
|
/** @internal */
|
|
29
65
|
LlmApplicationTransformer.decompose = (method, props) => {
|
|
@@ -76,7 +112,7 @@ var LlmApplicationTransformer;
|
|
|
76
112
|
analyze(true);
|
|
77
113
|
// GENERATE LLM APPLICATION
|
|
78
114
|
return {
|
|
79
|
-
application: LlmApplicationProgrammer.
|
|
115
|
+
application: LlmApplicationProgrammer.writeApplication({
|
|
80
116
|
context: props.context,
|
|
81
117
|
modulo: props.modulo,
|
|
82
118
|
metadata: analyze(false),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LlmApplicationTransformer.mjs","sources":["../../../src/features/llm/LlmApplicationTransformer.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"LlmApplicationTransformer.mjs","sources":["../../../src/features/llm/LlmApplicationTransformer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
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.LlmCoerceTransformer = void 0;
|
|
7
|
+
const core_1 = require("@typia/core");
|
|
8
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
9
|
+
const TransformerError_1 = require("../../TransformerError");
|
|
10
|
+
var LlmCoerceTransformer;
|
|
11
|
+
(function (LlmCoerceTransformer) {
|
|
12
|
+
LlmCoerceTransformer.transform = (props) => {
|
|
13
|
+
var _a;
|
|
14
|
+
// CHECK PARAMETER
|
|
15
|
+
if (props.expression.arguments.length === 0)
|
|
16
|
+
throw new TransformerError_1.TransformerError({
|
|
17
|
+
code: "typia.llm.coerce",
|
|
18
|
+
message: "no input value.",
|
|
19
|
+
});
|
|
20
|
+
// GET GENERIC ARGUMENT
|
|
21
|
+
if (!((_a = props.expression.typeArguments) === null || _a === void 0 ? void 0 : _a.length))
|
|
22
|
+
throw new TransformerError_1.TransformerError({
|
|
23
|
+
code: "typia.llm.coerce",
|
|
24
|
+
message: "no generic argument.",
|
|
25
|
+
});
|
|
26
|
+
const top = props.expression.typeArguments[0];
|
|
27
|
+
if (typescript_1.default.isTypeNode(top) === false)
|
|
28
|
+
return props.expression;
|
|
29
|
+
// GET TYPE AND CONFIG
|
|
30
|
+
const config = core_1.LlmMetadataFactory.getConfig({
|
|
31
|
+
context: props.context,
|
|
32
|
+
method: "coerce",
|
|
33
|
+
node: props.expression.typeArguments[1],
|
|
34
|
+
});
|
|
35
|
+
const type = props.context.checker.getTypeFromTypeNode(top);
|
|
36
|
+
if (type.isTypeParameter())
|
|
37
|
+
throw new TransformerError_1.TransformerError({
|
|
38
|
+
code: "typia.llm.coerce",
|
|
39
|
+
message: "non-specified generic argument.",
|
|
40
|
+
});
|
|
41
|
+
// VALIDATE TYPE
|
|
42
|
+
const analyze = (validate) => {
|
|
43
|
+
const result = core_1.MetadataFactory.analyze({
|
|
44
|
+
checker: props.context.checker,
|
|
45
|
+
transformer: props.context.transformer,
|
|
46
|
+
options: {
|
|
47
|
+
absorb: validate,
|
|
48
|
+
escape: true,
|
|
49
|
+
constant: true,
|
|
50
|
+
validate: validate === true
|
|
51
|
+
? (metadata, explore) => core_1.LlmCoerceProgrammer.validate({
|
|
52
|
+
config,
|
|
53
|
+
metadata,
|
|
54
|
+
explore,
|
|
55
|
+
})
|
|
56
|
+
: undefined,
|
|
57
|
+
},
|
|
58
|
+
components: new core_1.MetadataCollection({
|
|
59
|
+
replace: core_1.MetadataCollection.replace,
|
|
60
|
+
}),
|
|
61
|
+
type,
|
|
62
|
+
});
|
|
63
|
+
if (result.success === false)
|
|
64
|
+
throw TransformerError_1.TransformerError.from({
|
|
65
|
+
code: "typia.llm.coerce",
|
|
66
|
+
errors: result.errors,
|
|
67
|
+
});
|
|
68
|
+
return result.data;
|
|
69
|
+
};
|
|
70
|
+
analyze(true);
|
|
71
|
+
// GENERATE CODE
|
|
72
|
+
return typescript_1.default.factory.createCallExpression(core_1.LlmCoerceProgrammer.write({
|
|
73
|
+
context: props.context,
|
|
74
|
+
modulo: props.modulo,
|
|
75
|
+
metadata: analyze(false),
|
|
76
|
+
name: top.getFullText().trim(),
|
|
77
|
+
config,
|
|
78
|
+
}), undefined, props.expression.arguments);
|
|
79
|
+
};
|
|
80
|
+
})(LlmCoerceTransformer || (exports.LlmCoerceTransformer = LlmCoerceTransformer = {}));
|
|
81
|
+
//# sourceMappingURL=LlmCoerceTransformer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LlmCoerceTransformer.js","sourceRoot":"","sources":["../../../src/features/llm/LlmCoerceTransformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { LlmMetadataFactory, LlmCoerceProgrammer, MetadataFactory, MetadataCollection } from '@typia/core';
|
|
2
|
+
import ts from 'typescript';
|
|
3
|
+
import { TransformerError } from '../../TransformerError.mjs';
|
|
4
|
+
|
|
5
|
+
var LlmCoerceTransformer;
|
|
6
|
+
(function (LlmCoerceTransformer) {
|
|
7
|
+
LlmCoerceTransformer.transform = (props) => {
|
|
8
|
+
// CHECK PARAMETER
|
|
9
|
+
if (props.expression.arguments.length === 0)
|
|
10
|
+
throw new TransformerError({
|
|
11
|
+
code: "typia.llm.coerce",
|
|
12
|
+
message: "no input value.",
|
|
13
|
+
});
|
|
14
|
+
// GET GENERIC ARGUMENT
|
|
15
|
+
if (!props.expression.typeArguments?.length)
|
|
16
|
+
throw new TransformerError({
|
|
17
|
+
code: "typia.llm.coerce",
|
|
18
|
+
message: "no generic argument.",
|
|
19
|
+
});
|
|
20
|
+
const top = props.expression.typeArguments[0];
|
|
21
|
+
if (ts.isTypeNode(top) === false)
|
|
22
|
+
return props.expression;
|
|
23
|
+
// GET TYPE AND CONFIG
|
|
24
|
+
const config = LlmMetadataFactory.getConfig({
|
|
25
|
+
context: props.context,
|
|
26
|
+
method: "coerce",
|
|
27
|
+
node: props.expression.typeArguments[1],
|
|
28
|
+
});
|
|
29
|
+
const type = props.context.checker.getTypeFromTypeNode(top);
|
|
30
|
+
if (type.isTypeParameter())
|
|
31
|
+
throw new TransformerError({
|
|
32
|
+
code: "typia.llm.coerce",
|
|
33
|
+
message: "non-specified generic argument.",
|
|
34
|
+
});
|
|
35
|
+
// VALIDATE TYPE
|
|
36
|
+
const analyze = (validate) => {
|
|
37
|
+
const result = MetadataFactory.analyze({
|
|
38
|
+
checker: props.context.checker,
|
|
39
|
+
transformer: props.context.transformer,
|
|
40
|
+
options: {
|
|
41
|
+
absorb: validate,
|
|
42
|
+
escape: true,
|
|
43
|
+
constant: true,
|
|
44
|
+
validate: validate === true
|
|
45
|
+
? (metadata, explore) => LlmCoerceProgrammer.validate({
|
|
46
|
+
config,
|
|
47
|
+
metadata,
|
|
48
|
+
explore,
|
|
49
|
+
})
|
|
50
|
+
: undefined,
|
|
51
|
+
},
|
|
52
|
+
components: new MetadataCollection({
|
|
53
|
+
replace: MetadataCollection.replace,
|
|
54
|
+
}),
|
|
55
|
+
type,
|
|
56
|
+
});
|
|
57
|
+
if (result.success === false)
|
|
58
|
+
throw TransformerError.from({
|
|
59
|
+
code: "typia.llm.coerce",
|
|
60
|
+
errors: result.errors,
|
|
61
|
+
});
|
|
62
|
+
return result.data;
|
|
63
|
+
};
|
|
64
|
+
analyze(true);
|
|
65
|
+
// GENERATE CODE
|
|
66
|
+
return ts.factory.createCallExpression(LlmCoerceProgrammer.write({
|
|
67
|
+
context: props.context,
|
|
68
|
+
modulo: props.modulo,
|
|
69
|
+
metadata: analyze(false),
|
|
70
|
+
name: top.getFullText().trim(),
|
|
71
|
+
config,
|
|
72
|
+
}), undefined, props.expression.arguments);
|
|
73
|
+
};
|
|
74
|
+
})(LlmCoerceTransformer || (LlmCoerceTransformer = {}));
|
|
75
|
+
|
|
76
|
+
export { LlmCoerceTransformer };
|
|
77
|
+
//# sourceMappingURL=LlmCoerceTransformer.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LlmCoerceTransformer.mjs","sources":["../../../src/features/llm/LlmCoerceTransformer.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAaM,IAAW;AAAjB,CAAA,UAAiB,oBAAoB,EAAA;AACtB,IAAA,oBAAA,CAAA,SAAS,GAAG,CAAC,KAAsB,KAAmB;;QAEjE,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YACzC,MAAM,IAAI,gBAAgB,CAAC;AACzB,gBAAA,IAAI,EAAE,kBAAkB;AACxB,gBAAA,OAAO,EAAE,iBAAiB;AAC3B,aAAA,CAAC;;AAGJ,QAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM;YACzC,MAAM,IAAI,gBAAgB,CAAC;AACzB,gBAAA,IAAI,EAAE,kBAAkB;AACxB,gBAAA,OAAO,EAAE,sBAAsB;AAChC,aAAA,CAAC;QAEJ,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,GAAgC,kBAAkB,CAAC,SAAS,CAAC;YACvE,OAAO,EAAE,KAAK,CAAC,OAAO;AACtB,YAAA,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;AACxC,SAAA,CAAgC;AAEjC,QAAA,MAAM,IAAI,GAAY,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC;QAEpE,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,MAAM,IAAI,gBAAgB,CAAC;AACzB,gBAAA,IAAI,EAAE,kBAAkB;AACxB,gBAAA,OAAO,EAAE,iCAAiC;AAC3C,aAAA,CAAC;;AAGJ,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;oBACd,QAAQ,EACN,QAAQ,KAAK;0BACT,CAAC,QAAQ,EAAE,OAAO,KAChB,mBAAmB,CAAC,QAAQ,CAAC;4BAC3B,MAAM;4BACN,QAAQ;4BACR,OAAO;yBACR;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,kBAAkB;oBACxB,MAAM,EAAE,MAAM,CAAC,MAAM;AACtB,iBAAA,CAAC;YACJ,OAAO,MAAM,CAAC,IAAI;AACpB,QAAA,CAAC;QACD,OAAO,CAAC,IAAI,CAAC;;QAGb,OAAO,EAAE,CAAC,OAAO,CAAC,oBAAoB,CACpC,mBAAmB,CAAC,KAAK,CAAC;YACxB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM;AACpB,YAAA,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC;AACxB,YAAA,IAAI,EAAG,GAAmB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;YAC/C,MAAM;SACP,CAAC,EACF,SAAS,EACT,KAAK,CAAC,UAAU,CAAC,SAAS,CAC3B;AACH,IAAA,CAAC;AACH,CAAC,EAjFgB,oBAAoB,KAApB,oBAAoB,GAAA,EAAA,CAAA,CAAA;;;;"}
|
|
@@ -25,16 +25,22 @@ var LlmControllerTransformer;
|
|
|
25
25
|
code: `typia.llm.controller`,
|
|
26
26
|
message: `no executor.`,
|
|
27
27
|
});
|
|
28
|
+
const typeNode = props.context.importer.type({
|
|
29
|
+
file: "typia",
|
|
30
|
+
name: "ILlmController",
|
|
31
|
+
arguments: [dec.node],
|
|
32
|
+
});
|
|
33
|
+
const primitiveTypeNode = props.context.importer.type({
|
|
34
|
+
file: "typia",
|
|
35
|
+
name: "ILlmApplication.__IPrimitive",
|
|
36
|
+
arguments: [dec.node],
|
|
37
|
+
});
|
|
28
38
|
const value = typescript_1.default.factory.createObjectLiteralExpression([
|
|
29
39
|
typescript_1.default.factory.createPropertyAssignment("protocol", typescript_1.default.factory.createStringLiteral("class")),
|
|
30
40
|
typescript_1.default.factory.createPropertyAssignment("name", props.expression.arguments[0]),
|
|
31
41
|
typescript_1.default.factory.createPropertyAssignment("execute", props.expression.arguments[1]),
|
|
32
42
|
typescript_1.default.factory.createPropertyAssignment("application", typescript_1.default.factory.createCallExpression(props.context.importer.internal("llmApplicationFinalize"), undefined, [
|
|
33
|
-
typescript_1.default.factory.createSatisfiesExpression(core_1.LiteralFactory.write(dec.application),
|
|
34
|
-
file: "typia",
|
|
35
|
-
name: "ILlmApplication.__IPrimitive",
|
|
36
|
-
arguments: [dec.node],
|
|
37
|
-
})),
|
|
43
|
+
typescript_1.default.factory.createAsExpression(typescript_1.default.factory.createSatisfiesExpression(core_1.LiteralFactory.write(dec.application), primitiveTypeNode), primitiveTypeNode),
|
|
38
44
|
...(((_a = props.expression.arguments) === null || _a === void 0 ? void 0 : _a[2]) !== undefined
|
|
39
45
|
? [
|
|
40
46
|
LlmApplicationTransformer_1.LlmApplicationTransformer.getConfigArgument({
|
|
@@ -46,11 +52,7 @@ var LlmControllerTransformer;
|
|
|
46
52
|
: []),
|
|
47
53
|
])),
|
|
48
54
|
], true);
|
|
49
|
-
return typescript_1.default.factory.createSatisfiesExpression(value,
|
|
50
|
-
file: "typia",
|
|
51
|
-
name: "ILlmController",
|
|
52
|
-
arguments: [dec.node],
|
|
53
|
-
}));
|
|
55
|
+
return typescript_1.default.factory.createAsExpression(typescript_1.default.factory.createSatisfiesExpression(value, typeNode), typeNode);
|
|
54
56
|
};
|
|
55
57
|
})(LlmControllerTransformer || (exports.LlmControllerTransformer = LlmControllerTransformer = {}));
|
|
56
58
|
//# 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,
|
|
1
|
+
{"version":3,"file":"LlmControllerTransformer.js","sourceRoot":"","sources":["../../../src/features/llm/LlmControllerTransformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,16 +19,22 @@ var LlmControllerTransformer;
|
|
|
19
19
|
code: `typia.llm.controller`,
|
|
20
20
|
message: `no executor.`,
|
|
21
21
|
});
|
|
22
|
+
const typeNode = props.context.importer.type({
|
|
23
|
+
file: "typia",
|
|
24
|
+
name: "ILlmController",
|
|
25
|
+
arguments: [dec.node],
|
|
26
|
+
});
|
|
27
|
+
const primitiveTypeNode = props.context.importer.type({
|
|
28
|
+
file: "typia",
|
|
29
|
+
name: "ILlmApplication.__IPrimitive",
|
|
30
|
+
arguments: [dec.node],
|
|
31
|
+
});
|
|
22
32
|
const value = ts.factory.createObjectLiteralExpression([
|
|
23
33
|
ts.factory.createPropertyAssignment("protocol", ts.factory.createStringLiteral("class")),
|
|
24
34
|
ts.factory.createPropertyAssignment("name", props.expression.arguments[0]),
|
|
25
35
|
ts.factory.createPropertyAssignment("execute", props.expression.arguments[1]),
|
|
26
36
|
ts.factory.createPropertyAssignment("application", ts.factory.createCallExpression(props.context.importer.internal("llmApplicationFinalize"), undefined, [
|
|
27
|
-
ts.factory.createSatisfiesExpression(LiteralFactory.write(dec.application),
|
|
28
|
-
file: "typia",
|
|
29
|
-
name: "ILlmApplication.__IPrimitive",
|
|
30
|
-
arguments: [dec.node],
|
|
31
|
-
})),
|
|
37
|
+
ts.factory.createAsExpression(ts.factory.createSatisfiesExpression(LiteralFactory.write(dec.application), primitiveTypeNode), primitiveTypeNode),
|
|
32
38
|
...(props.expression.arguments?.[2] !== undefined
|
|
33
39
|
? [
|
|
34
40
|
LlmApplicationTransformer.getConfigArgument({
|
|
@@ -40,11 +46,7 @@ var LlmControllerTransformer;
|
|
|
40
46
|
: []),
|
|
41
47
|
])),
|
|
42
48
|
], true);
|
|
43
|
-
return ts.factory.createSatisfiesExpression(value,
|
|
44
|
-
file: "typia",
|
|
45
|
-
name: "ILlmController",
|
|
46
|
-
arguments: [dec.node],
|
|
47
|
-
}));
|
|
49
|
+
return ts.factory.createAsExpression(ts.factory.createSatisfiesExpression(value, typeNode), typeNode);
|
|
48
50
|
};
|
|
49
51
|
})(LlmControllerTransformer || (LlmControllerTransformer = {}));
|
|
50
52
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LlmControllerTransformer.mjs","sources":["../../../src/features/llm/LlmControllerTransformer.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAOM,IAAW;AAAjB,CAAA,UAAiB,wBAAwB,EAAA;AAC1B,IAAA,wBAAA,CAAA,SAAS,GAAG,CAAC,KAAsB,KAAmB;QACjE,MAAM,GAAG,GAAG,yBAAyB,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,CAAC;QACrE,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC,UAAU;aACpC,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS;YAClD,MAAM,IAAI,gBAAgB,CAAC;AACzB,gBAAA,IAAI,EAAE,CAAA,oBAAA,CAAsB;AAC5B,gBAAA,OAAO,EAAE,CAAA,mBAAA,CAAqB;AAC/B,aAAA,CAAC;aACC,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS;YAClD,MAAM,IAAI,gBAAgB,CAAC;AACzB,gBAAA,IAAI,EAAE,CAAA,oBAAA,CAAsB;AAC5B,gBAAA,OAAO,EAAE,CAAA,YAAA,CAAc;AACxB,aAAA,CAAC;
|
|
1
|
+
{"version":3,"file":"LlmControllerTransformer.mjs","sources":["../../../src/features/llm/LlmControllerTransformer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
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.LlmCreateCoerceTransformer = void 0;
|
|
7
|
+
const core_1 = require("@typia/core");
|
|
8
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
9
|
+
const TransformerError_1 = require("../../TransformerError");
|
|
10
|
+
var LlmCreateCoerceTransformer;
|
|
11
|
+
(function (LlmCreateCoerceTransformer) {
|
|
12
|
+
LlmCreateCoerceTransformer.transform = (props) => {
|
|
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.createCoerce",
|
|
18
|
+
message: "no generic argument.",
|
|
19
|
+
});
|
|
20
|
+
const top = props.expression.typeArguments[0];
|
|
21
|
+
if (typescript_1.default.isTypeNode(top) === false)
|
|
22
|
+
return props.expression;
|
|
23
|
+
// GET TYPE AND CONFIG
|
|
24
|
+
const config = core_1.LlmMetadataFactory.getConfig({
|
|
25
|
+
context: props.context,
|
|
26
|
+
method: "createCoerce",
|
|
27
|
+
node: props.expression.typeArguments[1],
|
|
28
|
+
});
|
|
29
|
+
const type = props.context.checker.getTypeFromTypeNode(top);
|
|
30
|
+
if (type.isTypeParameter())
|
|
31
|
+
throw new TransformerError_1.TransformerError({
|
|
32
|
+
code: "typia.llm.createCoerce",
|
|
33
|
+
message: "non-specified generic argument.",
|
|
34
|
+
});
|
|
35
|
+
// VALIDATE TYPE
|
|
36
|
+
const analyze = (validate) => {
|
|
37
|
+
const result = core_1.MetadataFactory.analyze({
|
|
38
|
+
checker: props.context.checker,
|
|
39
|
+
transformer: props.context.transformer,
|
|
40
|
+
options: {
|
|
41
|
+
absorb: validate,
|
|
42
|
+
escape: true,
|
|
43
|
+
constant: true,
|
|
44
|
+
validate: validate === true
|
|
45
|
+
? (metadata, explore) => core_1.LlmCoerceProgrammer.validate({
|
|
46
|
+
config,
|
|
47
|
+
metadata,
|
|
48
|
+
explore,
|
|
49
|
+
})
|
|
50
|
+
: undefined,
|
|
51
|
+
},
|
|
52
|
+
components: new core_1.MetadataCollection({
|
|
53
|
+
replace: core_1.MetadataCollection.replace,
|
|
54
|
+
}),
|
|
55
|
+
type,
|
|
56
|
+
});
|
|
57
|
+
if (result.success === false)
|
|
58
|
+
throw TransformerError_1.TransformerError.from({
|
|
59
|
+
code: "typia.llm.createCoerce",
|
|
60
|
+
errors: result.errors,
|
|
61
|
+
});
|
|
62
|
+
return result.data;
|
|
63
|
+
};
|
|
64
|
+
analyze(true);
|
|
65
|
+
// GENERATE CODE (factory returns the function directly)
|
|
66
|
+
return core_1.LlmCoerceProgrammer.write({
|
|
67
|
+
context: props.context,
|
|
68
|
+
modulo: props.modulo,
|
|
69
|
+
metadata: analyze(false),
|
|
70
|
+
name: top.getFullText().trim(),
|
|
71
|
+
config,
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
})(LlmCreateCoerceTransformer || (exports.LlmCreateCoerceTransformer = LlmCreateCoerceTransformer = {}));
|
|
75
|
+
//# sourceMappingURL=LlmCreateCoerceTransformer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LlmCreateCoerceTransformer.js","sourceRoot":"","sources":["../../../src/features/llm/LlmCreateCoerceTransformer.ts"],"names":[],"mappings":";;;;;;AAAA,sCAMqB;AAErB,4DAA4B;AAG5B,6DAA0D;AAE1D,IAAiB,0BAA0B,CAsE1C;AAtED,WAAiB,0BAA0B;IAC5B,oCAAS,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,wBAAwB;gBAC9B,OAAO,EAAE,sBAAsB;aAChC,CAAC,CAAC;QAEL,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,sBAAsB;QACtB,MAAM,MAAM,GAAgC,yBAAkB,CAAC,SAAS,CAAC;YACvE,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,cAAc;YACtB,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;SACxC,CAAgC,CAAC;QAElC,MAAM,IAAI,GAAY,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAErE,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,MAAM,IAAI,mCAAgB,CAAC;gBACzB,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE,iCAAiC;aAC3C,CAAC,CAAC;QAEL,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,QAAQ,EACN,QAAQ,KAAK,IAAI;wBACf,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CACpB,0BAAmB,CAAC,QAAQ,CAAC;4BAC3B,MAAM;4BACN,QAAQ;4BACR,OAAO;yBACR,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,wBAAwB;oBAC9B,MAAM,EAAE,MAAM,CAAC,MAAM;iBACtB,CAAC,CAAC;YACL,OAAO,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC;QAEd,wDAAwD;QACxD,OAAO,0BAAmB,CAAC,KAAK,CAAC;YAC/B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC;YACxB,IAAI,EAAG,GAAmB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;YAC/C,MAAM;SACP,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC,EAtEgB,0BAA0B,0CAA1B,0BAA0B,QAsE1C"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { LlmMetadataFactory, LlmCoerceProgrammer, MetadataFactory, MetadataCollection } from '@typia/core';
|
|
2
|
+
import ts from 'typescript';
|
|
3
|
+
import { TransformerError } from '../../TransformerError.mjs';
|
|
4
|
+
|
|
5
|
+
var LlmCreateCoerceTransformer;
|
|
6
|
+
(function (LlmCreateCoerceTransformer) {
|
|
7
|
+
LlmCreateCoerceTransformer.transform = (props) => {
|
|
8
|
+
// GET GENERIC ARGUMENT
|
|
9
|
+
if (!props.expression.typeArguments?.length)
|
|
10
|
+
throw new TransformerError({
|
|
11
|
+
code: "typia.llm.createCoerce",
|
|
12
|
+
message: "no generic argument.",
|
|
13
|
+
});
|
|
14
|
+
const top = props.expression.typeArguments[0];
|
|
15
|
+
if (ts.isTypeNode(top) === false)
|
|
16
|
+
return props.expression;
|
|
17
|
+
// GET TYPE AND CONFIG
|
|
18
|
+
const config = LlmMetadataFactory.getConfig({
|
|
19
|
+
context: props.context,
|
|
20
|
+
method: "createCoerce",
|
|
21
|
+
node: props.expression.typeArguments[1],
|
|
22
|
+
});
|
|
23
|
+
const type = props.context.checker.getTypeFromTypeNode(top);
|
|
24
|
+
if (type.isTypeParameter())
|
|
25
|
+
throw new TransformerError({
|
|
26
|
+
code: "typia.llm.createCoerce",
|
|
27
|
+
message: "non-specified generic argument.",
|
|
28
|
+
});
|
|
29
|
+
// VALIDATE TYPE
|
|
30
|
+
const analyze = (validate) => {
|
|
31
|
+
const result = MetadataFactory.analyze({
|
|
32
|
+
checker: props.context.checker,
|
|
33
|
+
transformer: props.context.transformer,
|
|
34
|
+
options: {
|
|
35
|
+
absorb: validate,
|
|
36
|
+
escape: true,
|
|
37
|
+
constant: true,
|
|
38
|
+
validate: validate === true
|
|
39
|
+
? (metadata, explore) => LlmCoerceProgrammer.validate({
|
|
40
|
+
config,
|
|
41
|
+
metadata,
|
|
42
|
+
explore,
|
|
43
|
+
})
|
|
44
|
+
: undefined,
|
|
45
|
+
},
|
|
46
|
+
components: new MetadataCollection({
|
|
47
|
+
replace: MetadataCollection.replace,
|
|
48
|
+
}),
|
|
49
|
+
type,
|
|
50
|
+
});
|
|
51
|
+
if (result.success === false)
|
|
52
|
+
throw TransformerError.from({
|
|
53
|
+
code: "typia.llm.createCoerce",
|
|
54
|
+
errors: result.errors,
|
|
55
|
+
});
|
|
56
|
+
return result.data;
|
|
57
|
+
};
|
|
58
|
+
analyze(true);
|
|
59
|
+
// GENERATE CODE (factory returns the function directly)
|
|
60
|
+
return LlmCoerceProgrammer.write({
|
|
61
|
+
context: props.context,
|
|
62
|
+
modulo: props.modulo,
|
|
63
|
+
metadata: analyze(false),
|
|
64
|
+
name: top.getFullText().trim(),
|
|
65
|
+
config,
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
})(LlmCreateCoerceTransformer || (LlmCreateCoerceTransformer = {}));
|
|
69
|
+
|
|
70
|
+
export { LlmCreateCoerceTransformer };
|
|
71
|
+
//# sourceMappingURL=LlmCreateCoerceTransformer.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LlmCreateCoerceTransformer.mjs","sources":["../../../src/features/llm/LlmCreateCoerceTransformer.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAaM,IAAW;AAAjB,CAAA,UAAiB,0BAA0B,EAAA;AAC5B,IAAA,0BAAA,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,wBAAwB;AAC9B,gBAAA,OAAO,EAAE,sBAAsB;AAChC,aAAA,CAAC;QAEJ,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,GAAgC,kBAAkB,CAAC,SAAS,CAAC;YACvE,OAAO,EAAE,KAAK,CAAC,OAAO;AACtB,YAAA,MAAM,EAAE,cAAc;YACtB,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;AACxC,SAAA,CAAgC;AAEjC,QAAA,MAAM,IAAI,GAAY,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC;QAEpE,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,MAAM,IAAI,gBAAgB,CAAC;AACzB,gBAAA,IAAI,EAAE,wBAAwB;AAC9B,gBAAA,OAAO,EAAE,iCAAiC;AAC3C,aAAA,CAAC;;AAGJ,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;oBACd,QAAQ,EACN,QAAQ,KAAK;0BACT,CAAC,QAAQ,EAAE,OAAO,KAChB,mBAAmB,CAAC,QAAQ,CAAC;4BAC3B,MAAM;4BACN,QAAQ;4BACR,OAAO;yBACR;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,wBAAwB;oBAC9B,MAAM,EAAE,MAAM,CAAC,MAAM;AACtB,iBAAA,CAAC;YACJ,OAAO,MAAM,CAAC,IAAI;AACpB,QAAA,CAAC;QACD,OAAO,CAAC,IAAI,CAAC;;QAGb,OAAO,mBAAmB,CAAC,KAAK,CAAC;YAC/B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM;AACpB,YAAA,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC;AACxB,YAAA,IAAI,EAAG,GAAmB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;YAC/C,MAAM;AACP,SAAA,CAAC;AACJ,IAAA,CAAC;AACH,CAAC,EAtEgB,0BAA0B,KAA1B,0BAA0B,GAAA,EAAA,CAAA,CAAA;;;;"}
|