typia 10.0.2 → 11.0.0

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 (86) hide show
  1. package/README.md +14 -10
  2. package/lib/factories/internal/metadata/emplace_metadata_object.js +11 -1
  3. package/lib/factories/internal/metadata/emplace_metadata_object.js.map +1 -1
  4. package/lib/factories/internal/metadata/emplace_metadata_object.mjs +11 -0
  5. package/lib/index.mjs +2 -2
  6. package/lib/internal/_createStandardSchema.d.mts +1 -1
  7. package/lib/internal/_createStandardSchema.d.ts +1 -1
  8. package/lib/internal/_createStandardSchema.js.map +1 -1
  9. package/lib/internal/_llmApplicationFinalize.d.mts +2 -2
  10. package/lib/internal/_llmApplicationFinalize.d.ts +2 -2
  11. package/lib/internal/_llmApplicationFinalize.js +9 -10
  12. package/lib/internal/_llmApplicationFinalize.js.map +1 -1
  13. package/lib/internal/_llmApplicationFinalize.mjs +12 -13
  14. package/lib/llm.d.mts +20 -199
  15. package/lib/llm.d.ts +20 -199
  16. package/lib/llm.js.map +1 -1
  17. package/lib/misc.d.mts +3 -3
  18. package/lib/misc.d.ts +3 -3
  19. package/lib/misc.js.map +1 -1
  20. package/lib/module.d.mts +2 -2
  21. package/lib/module.d.ts +2 -2
  22. package/lib/programmers/internal/json_schema_object.js +1 -0
  23. package/lib/programmers/internal/json_schema_object.js.map +1 -1
  24. package/lib/programmers/internal/json_schema_object.mjs +1 -0
  25. package/lib/programmers/llm/LlmApplicationProgrammer.d.mts +8 -8
  26. package/lib/programmers/llm/LlmApplicationProgrammer.d.ts +8 -8
  27. package/lib/programmers/llm/LlmApplicationProgrammer.js +58 -64
  28. package/lib/programmers/llm/LlmApplicationProgrammer.js.map +1 -1
  29. package/lib/programmers/llm/LlmApplicationProgrammer.mjs +63 -68
  30. package/lib/programmers/llm/{LlmModelPredicator.d.mts → LlmMetadataFactory.d.mts} +2 -8
  31. package/lib/programmers/llm/{LlmModelPredicator.d.ts → LlmMetadataFactory.d.ts} +2 -8
  32. package/lib/programmers/llm/{LlmModelPredicator.js → LlmMetadataFactory.js} +6 -37
  33. package/lib/programmers/llm/LlmMetadataFactory.js.map +1 -0
  34. package/lib/programmers/llm/{LlmModelPredicator.mjs → LlmMetadataFactory.mjs} +6 -34
  35. package/lib/programmers/llm/LlmMetadataFactory.mjs.map +1 -0
  36. package/lib/programmers/llm/LlmParametersProgrammer.d.mts +8 -8
  37. package/lib/programmers/llm/LlmParametersProgrammer.d.ts +8 -8
  38. package/lib/programmers/llm/LlmParametersProgrammer.js +10 -10
  39. package/lib/programmers/llm/LlmParametersProgrammer.js.map +1 -1
  40. package/lib/programmers/llm/LlmParametersProgrammer.mjs +10 -13
  41. package/lib/programmers/llm/LlmSchemaProgrammer.d.mts +10 -12
  42. package/lib/programmers/llm/LlmSchemaProgrammer.d.ts +10 -12
  43. package/lib/programmers/llm/LlmSchemaProgrammer.js +21 -33
  44. package/lib/programmers/llm/LlmSchemaProgrammer.js.map +1 -1
  45. package/lib/programmers/llm/LlmSchemaProgrammer.mjs +21 -37
  46. package/lib/schemas/metadata/IMetadataProperty.d.mts +1 -0
  47. package/lib/schemas/metadata/IMetadataProperty.d.ts +1 -0
  48. package/lib/schemas/metadata/MetadataProperty.d.mts +1 -0
  49. package/lib/schemas/metadata/MetadataProperty.d.ts +1 -0
  50. package/lib/schemas/metadata/MetadataProperty.js +3 -0
  51. package/lib/schemas/metadata/MetadataProperty.js.map +1 -1
  52. package/lib/schemas/metadata/MetadataProperty.mjs +4 -0
  53. package/lib/transformers/features/llm/LlmApplicationTransformer.d.mts +0 -2
  54. package/lib/transformers/features/llm/LlmApplicationTransformer.d.ts +0 -2
  55. package/lib/transformers/features/llm/LlmApplicationTransformer.js +9 -20
  56. package/lib/transformers/features/llm/LlmApplicationTransformer.js.map +1 -1
  57. package/lib/transformers/features/llm/LlmApplicationTransformer.mjs +9 -20
  58. package/lib/transformers/features/llm/LlmControllerTransformer.js +1 -8
  59. package/lib/transformers/features/llm/LlmControllerTransformer.js.map +1 -1
  60. package/lib/transformers/features/llm/LlmControllerTransformer.mjs +1 -8
  61. package/lib/transformers/features/llm/LlmParametersTransformer.js +6 -15
  62. package/lib/transformers/features/llm/LlmParametersTransformer.js.map +1 -1
  63. package/lib/transformers/features/llm/LlmParametersTransformer.mjs +6 -15
  64. package/lib/transformers/features/llm/LlmSchemaTransformer.js +11 -26
  65. package/lib/transformers/features/llm/LlmSchemaTransformer.js.map +1 -1
  66. package/lib/transformers/features/llm/LlmSchemaTransformer.mjs +11 -26
  67. package/package.json +4 -3
  68. package/src/factories/internal/metadata/emplace_metadata_object.ts +16 -0
  69. package/src/internal/_createStandardSchema.ts +2 -2
  70. package/src/internal/_llmApplicationFinalize.ts +18 -25
  71. package/src/llm.ts +28 -221
  72. package/src/misc.ts +9 -9
  73. package/src/module.ts +2 -2
  74. package/src/programmers/internal/json_schema_object.ts +1 -0
  75. package/src/programmers/llm/LlmApplicationProgrammer.ts +139 -151
  76. package/src/programmers/llm/{LlmModelPredicator.ts → LlmMetadataFactory.ts} +4 -42
  77. package/src/programmers/llm/LlmParametersProgrammer.ts +34 -41
  78. package/src/programmers/llm/LlmSchemaProgrammer.ts +59 -98
  79. package/src/schemas/metadata/IMetadataProperty.ts +1 -0
  80. package/src/schemas/metadata/MetadataProperty.ts +4 -0
  81. package/src/transformers/features/llm/LlmApplicationTransformer.ts +14 -29
  82. package/src/transformers/features/llm/LlmControllerTransformer.ts +1 -12
  83. package/src/transformers/features/llm/LlmParametersTransformer.ts +10 -21
  84. package/src/transformers/features/llm/LlmSchemaTransformer.ts +29 -65
  85. package/lib/programmers/llm/LlmModelPredicator.js.map +0 -1
  86. package/lib/programmers/llm/LlmModelPredicator.mjs.map +0 -1
@@ -5,7 +5,7 @@ import { MetadataCollection } from '../../../factories/MetadataCollection.mjs';
5
5
  import { MetadataFactory } from '../../../factories/MetadataFactory.mjs';
6
6
  import { StatementFactory } from '../../../factories/StatementFactory.mjs';
7
7
  import { LlmApplicationProgrammer } from '../../../programmers/llm/LlmApplicationProgrammer.mjs';
8
- import { LlmModelPredicator } from '../../../programmers/llm/LlmModelPredicator.mjs';
8
+ import { LlmMetadataFactory } from '../../../programmers/llm/LlmMetadataFactory.mjs';
9
9
  import { TransformerError } from '../../TransformerError.mjs';
10
10
 
11
11
  var LlmApplicationTransformer;
@@ -17,11 +17,9 @@ var LlmApplicationTransformer;
17
17
  const literal = ts.factory.createAsExpression(LiteralFactory.write(dec.application), props.context.importer.type({
18
18
  file: "@samchon/openapi",
19
19
  name: "ILlmApplication",
20
- arguments: [
21
- ts.factory.createLiteralTypeNode(ts.factory.createStringLiteral(dec.application.model)),
22
- ],
20
+ arguments: [dec.node],
23
21
  }));
24
- if (!props.expression.arguments?.[0])
22
+ if (props.expression.arguments?.[0] === undefined)
25
23
  return literal;
26
24
  return ExpressionFactory.selfCall(ts.factory.createBlock([
27
25
  StatementFactory.constant({
@@ -33,7 +31,6 @@ var LlmApplicationTransformer;
33
31
  value: ts.factory.createIdentifier("application"),
34
32
  argument: props.expression.arguments[0],
35
33
  equals: dec.config?.equals,
36
- model: dec.application.model,
37
34
  })),
38
35
  ts.factory.createReturnStatement(ts.factory.createIdentifier("application")),
39
36
  ], true));
@@ -50,16 +47,10 @@ var LlmApplicationTransformer;
50
47
  if (ts.isTypeNode(top) === false)
51
48
  return null;
52
49
  // GET TYPE
53
- const model = LlmModelPredicator.getModel({
54
- checker: props.context.checker,
55
- method,
56
- node: props.expression.typeArguments[1],
57
- });
58
- const config = LlmModelPredicator.getConfig({
50
+ const config = LlmMetadataFactory.getConfig({
59
51
  context: props.context,
60
52
  method,
61
- model,
62
- node: props.expression.typeArguments[2],
53
+ node: props.expression.typeArguments[1],
63
54
  });
64
55
  const type = props.context.checker.getTypeFromTypeNode(top);
65
56
  // VALIDATE TYPE
@@ -73,9 +64,10 @@ var LlmApplicationTransformer;
73
64
  constant: true,
74
65
  functional: true,
75
66
  validate: validate === true
76
- ? LlmApplicationProgrammer.validate({
77
- model,
67
+ ? (metadata, explore) => LlmApplicationProgrammer.validate({
78
68
  config,
69
+ metadata,
70
+ explore,
79
71
  })
80
72
  : undefined,
81
73
  },
@@ -95,7 +87,6 @@ var LlmApplicationTransformer;
95
87
  // GENERATE LLM APPLICATION
96
88
  return {
97
89
  application: LlmApplicationProgrammer.write({
98
- model,
99
90
  context: props.context,
100
91
  modulo: props.modulo,
101
92
  metadata: analyze(false),
@@ -110,9 +101,7 @@ var LlmApplicationTransformer;
110
101
  LlmApplicationTransformer.finalize = (props) => {
111
102
  const satisfiesTypeNode = ts.factory.createTypeReferenceNode(ts.factory.createIdentifier("Partial"), [
112
103
  ts.factory.createTypeReferenceNode(ts.factory.createIdentifier("Pick"), [
113
- ts.factory.createImportTypeNode(ts.factory.createLiteralTypeNode(ts.factory.createStringLiteral("@samchon/openapi")), undefined, ts.factory.createQualifiedName(ts.factory.createIdentifier("ILlmApplication"), ts.factory.createIdentifier("IOptions")), [
114
- ts.factory.createLiteralTypeNode(ts.factory.createStringLiteral(props.model)),
115
- ], false),
104
+ ts.factory.createImportTypeNode(ts.factory.createLiteralTypeNode(ts.factory.createStringLiteral("@samchon/openapi")), undefined, ts.factory.createQualifiedName(ts.factory.createIdentifier("ILlmApplication"), ts.factory.createIdentifier("IConfig")), undefined, false),
116
105
  ts.factory.createUnionTypeNode([
117
106
  ts.factory.createLiteralTypeNode(ts.factory.createStringLiteral("separate")),
118
107
  ts.factory.createLiteralTypeNode(ts.factory.createStringLiteral("validate")),
@@ -30,9 +30,6 @@ var LlmControllerTransformer;
30
30
  const property = typescript_1.default.factory.createAsExpression(LiteralFactory_1.LiteralFactory.write(dec.application), props.context.importer.type({
31
31
  file: "@samchon/openapi",
32
32
  name: "ILlmApplication",
33
- arguments: [
34
- typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral(dec.application.model)),
35
- ],
36
33
  }));
37
34
  const value = typescript_1.default.factory.createObjectLiteralExpression([
38
35
  typescript_1.default.factory.createPropertyAssignment("protocol", typescript_1.default.factory.createStringLiteral("class")),
@@ -52,7 +49,6 @@ var LlmControllerTransformer;
52
49
  value: typescript_1.default.factory.createIdentifier("application"),
53
50
  argument: props.expression.arguments[2],
54
51
  equals: (_b = dec.config) === null || _b === void 0 ? void 0 : _b.equals,
55
- model: dec.application.model,
56
52
  })),
57
53
  ]
58
54
  : []),
@@ -60,10 +56,7 @@ var LlmControllerTransformer;
60
56
  ], true), props.context.importer.type({
61
57
  file: "@samchon/openapi",
62
58
  name: "ILlmController",
63
- arguments: [
64
- typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral(dec.application.model)),
65
- dec.node,
66
- ],
59
+ arguments: [dec.node],
67
60
  }));
68
61
  };
69
62
  })(LlmControllerTransformer || (exports.LlmControllerTransformer = LlmControllerTransformer = {}));
@@ -1 +1 @@
1
- {"version":3,"file":"LlmControllerTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/llm/LlmControllerTransformer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LlmControllerTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/llm/LlmControllerTransformer.ts"],"names":[],"mappings":"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"}
@@ -24,9 +24,6 @@ var LlmControllerTransformer;
24
24
  const property = ts.factory.createAsExpression(LiteralFactory.write(dec.application), props.context.importer.type({
25
25
  file: "@samchon/openapi",
26
26
  name: "ILlmApplication",
27
- arguments: [
28
- ts.factory.createLiteralTypeNode(ts.factory.createStringLiteral(dec.application.model)),
29
- ],
30
27
  }));
31
28
  const value = ts.factory.createObjectLiteralExpression([
32
29
  ts.factory.createPropertyAssignment("protocol", ts.factory.createStringLiteral("class")),
@@ -46,7 +43,6 @@ var LlmControllerTransformer;
46
43
  value: ts.factory.createIdentifier("application"),
47
44
  argument: props.expression.arguments[2],
48
45
  equals: dec.config?.equals,
49
- model: dec.application.model,
50
46
  })),
51
47
  ]
52
48
  : []),
@@ -54,10 +50,7 @@ var LlmControllerTransformer;
54
50
  ], true), props.context.importer.type({
55
51
  file: "@samchon/openapi",
56
52
  name: "ILlmController",
57
- arguments: [
58
- ts.factory.createLiteralTypeNode(ts.factory.createStringLiteral(dec.application.model)),
59
- dec.node,
60
- ],
53
+ arguments: [dec.node],
61
54
  }));
62
55
  };
63
56
  })(LlmControllerTransformer || (LlmControllerTransformer = {}));
@@ -8,7 +8,7 @@ const typescript_1 = __importDefault(require("typescript"));
8
8
  const LiteralFactory_1 = require("../../../factories/LiteralFactory");
9
9
  const MetadataCollection_1 = require("../../../factories/MetadataCollection");
10
10
  const MetadataFactory_1 = require("../../../factories/MetadataFactory");
11
- const LlmModelPredicator_1 = require("../../../programmers/llm/LlmModelPredicator");
11
+ const LlmMetadataFactory_1 = require("../../../programmers/llm/LlmMetadataFactory");
12
12
  const LlmParametersProgrammer_1 = require("../../../programmers/llm/LlmParametersProgrammer");
13
13
  const TransformerError_1 = require("../../TransformerError");
14
14
  var LlmParametersTransformer;
@@ -25,16 +25,10 @@ var LlmParametersTransformer;
25
25
  if (typescript_1.default.isTypeNode(top) === false)
26
26
  return props.expression;
27
27
  // GET TYPE
28
- const model = LlmModelPredicator_1.LlmModelPredicator.getModel({
29
- checker: props.context.checker,
30
- method: "parameters",
31
- node: props.expression.typeArguments[1],
32
- });
33
- const config = LlmModelPredicator_1.LlmModelPredicator.getConfig({
28
+ const config = LlmMetadataFactory_1.LlmMetadataFactory.getConfig({
34
29
  context: props.context,
35
30
  method: "parameters",
36
- model,
37
- node: props.expression.typeArguments[2],
31
+ node: props.expression.typeArguments[1],
38
32
  });
39
33
  const type = props.context.checker.getTypeFromTypeNode(top);
40
34
  // VALIDATE TYPE
@@ -47,9 +41,10 @@ var LlmParametersTransformer;
47
41
  escape: true,
48
42
  constant: true,
49
43
  validate: validate === true
50
- ? LlmParametersProgrammer_1.LlmParametersProgrammer.validate({
51
- model,
44
+ ? (metadata, explore) => LlmParametersProgrammer_1.LlmParametersProgrammer.validate({
52
45
  config,
46
+ metadata,
47
+ explore,
53
48
  })
54
49
  : undefined,
55
50
  },
@@ -68,16 +63,12 @@ var LlmParametersTransformer;
68
63
  analyze(true);
69
64
  // GENERATE LLM SCHEMA
70
65
  const out = LlmParametersProgrammer_1.LlmParametersProgrammer.write({
71
- model,
72
66
  metadata: analyze(false),
73
67
  config,
74
68
  });
75
69
  return typescript_1.default.factory.createAsExpression(LiteralFactory_1.LiteralFactory.write(out), props.context.importer.type({
76
70
  file: "@samchon/openapi",
77
71
  name: typescript_1.default.factory.createQualifiedName(typescript_1.default.factory.createIdentifier("ILlmSchema"), typescript_1.default.factory.createIdentifier("IParameters")),
78
- arguments: [
79
- typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral(model)),
80
- ],
81
72
  }));
82
73
  };
83
74
  })(LlmParametersTransformer || (exports.LlmParametersTransformer = LlmParametersTransformer = {}));
@@ -1 +1 @@
1
- {"version":3,"file":"LlmParametersTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/llm/LlmParametersTransformer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LlmParametersTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/llm/LlmParametersTransformer.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import ts from 'typescript';
2
2
  import { LiteralFactory } from '../../../factories/LiteralFactory.mjs';
3
3
  import { MetadataCollection } from '../../../factories/MetadataCollection.mjs';
4
4
  import { MetadataFactory } from '../../../factories/MetadataFactory.mjs';
5
- import { LlmModelPredicator } from '../../../programmers/llm/LlmModelPredicator.mjs';
5
+ import { LlmMetadataFactory } from '../../../programmers/llm/LlmMetadataFactory.mjs';
6
6
  import { LlmParametersProgrammer } from '../../../programmers/llm/LlmParametersProgrammer.mjs';
7
7
  import { TransformerError } from '../../TransformerError.mjs';
8
8
 
@@ -19,16 +19,10 @@ var LlmParametersTransformer;
19
19
  if (ts.isTypeNode(top) === false)
20
20
  return props.expression;
21
21
  // GET TYPE
22
- const model = LlmModelPredicator.getModel({
23
- checker: props.context.checker,
24
- method: "parameters",
25
- node: props.expression.typeArguments[1],
26
- });
27
- const config = LlmModelPredicator.getConfig({
22
+ const config = LlmMetadataFactory.getConfig({
28
23
  context: props.context,
29
24
  method: "parameters",
30
- model,
31
- node: props.expression.typeArguments[2],
25
+ node: props.expression.typeArguments[1],
32
26
  });
33
27
  const type = props.context.checker.getTypeFromTypeNode(top);
34
28
  // VALIDATE TYPE
@@ -41,9 +35,10 @@ var LlmParametersTransformer;
41
35
  escape: true,
42
36
  constant: true,
43
37
  validate: validate === true
44
- ? LlmParametersProgrammer.validate({
45
- model,
38
+ ? (metadata, explore) => LlmParametersProgrammer.validate({
46
39
  config,
40
+ metadata,
41
+ explore,
47
42
  })
48
43
  : undefined,
49
44
  },
@@ -62,16 +57,12 @@ var LlmParametersTransformer;
62
57
  analyze(true);
63
58
  // GENERATE LLM SCHEMA
64
59
  const out = LlmParametersProgrammer.write({
65
- model,
66
60
  metadata: analyze(false),
67
61
  config,
68
62
  });
69
63
  return ts.factory.createAsExpression(LiteralFactory.write(out), props.context.importer.type({
70
64
  file: "@samchon/openapi",
71
65
  name: ts.factory.createQualifiedName(ts.factory.createIdentifier("ILlmSchema"), ts.factory.createIdentifier("IParameters")),
72
- arguments: [
73
- ts.factory.createLiteralTypeNode(ts.factory.createStringLiteral(model)),
74
- ],
75
66
  }));
76
67
  };
77
68
  })(LlmParametersTransformer || (LlmParametersTransformer = {}));
@@ -9,7 +9,7 @@ const IdentifierFactory_1 = require("../../../factories/IdentifierFactory");
9
9
  const LiteralFactory_1 = require("../../../factories/LiteralFactory");
10
10
  const MetadataCollection_1 = require("../../../factories/MetadataCollection");
11
11
  const MetadataFactory_1 = require("../../../factories/MetadataFactory");
12
- const LlmModelPredicator_1 = require("../../../programmers/llm/LlmModelPredicator");
12
+ const LlmMetadataFactory_1 = require("../../../programmers/llm/LlmMetadataFactory");
13
13
  const LlmSchemaProgrammer_1 = require("../../../programmers/llm/LlmSchemaProgrammer");
14
14
  const TransformerError_1 = require("../../TransformerError");
15
15
  var LlmSchemaTransformer;
@@ -26,16 +26,10 @@ var LlmSchemaTransformer;
26
26
  if (typescript_1.default.isTypeNode(top) === false)
27
27
  return props.expression;
28
28
  // GET TYPE
29
- const model = LlmModelPredicator_1.LlmModelPredicator.getModel({
30
- checker: props.context.checker,
31
- method: "schema",
32
- node: props.expression.typeArguments[1],
33
- });
34
- const config = LlmModelPredicator_1.LlmModelPredicator.getConfig({
29
+ const config = LlmMetadataFactory_1.LlmMetadataFactory.getConfig({
35
30
  context: props.context,
36
31
  method: "schema",
37
- model,
38
- node: props.expression.typeArguments[2],
32
+ node: props.expression.typeArguments[1],
39
33
  });
40
34
  const type = props.context.checker.getTypeFromTypeNode(top);
41
35
  // VALIDATE TYPE
@@ -48,9 +42,9 @@ var LlmSchemaTransformer;
48
42
  constant: true,
49
43
  escape: true,
50
44
  validate: validate === true
51
- ? LlmSchemaProgrammer_1.LlmSchemaProgrammer.validate({
52
- model,
45
+ ? (metadata) => LlmSchemaProgrammer_1.LlmSchemaProgrammer.validate({
53
46
  config,
47
+ metadata,
54
48
  })
55
49
  : undefined,
56
50
  },
@@ -69,38 +63,29 @@ var LlmSchemaTransformer;
69
63
  analyze(true);
70
64
  // GENERATE LLM SCHEMA
71
65
  const out = LlmSchemaProgrammer_1.LlmSchemaProgrammer.write({
72
- model,
73
66
  metadata: analyze(false),
74
67
  config,
75
68
  });
76
69
  const schemaTypeNode = props.context.importer.type({
77
70
  file: "@samchon/openapi",
78
71
  name: "ILlmSchema",
79
- arguments: [
80
- typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral(model)),
81
- ],
82
72
  });
83
73
  const literal = typescript_1.default.factory.createAsExpression(LiteralFactory_1.LiteralFactory.write(out.schema), schemaTypeNode);
84
74
  if (Object.keys(out.$defs).length === 0)
85
75
  return literal;
86
76
  return typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createArrowFunction(undefined, undefined, [
87
- IdentifierFactory_1.IdentifierFactory.parameter("props", typescript_1.default.factory.createTypeLiteralNode([
88
- typescript_1.default.factory.createPropertySignature(undefined, typescript_1.default.factory.createIdentifier("$defs"), typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionToken), typescript_1.default.factory.createUnionTypeNode([
89
- typescript_1.default.factory.createTypeReferenceNode("Record", [
90
- typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.StringKeyword),
91
- schemaTypeNode,
92
- ]),
93
- typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.UndefinedKeyword),
94
- ])),
77
+ IdentifierFactory_1.IdentifierFactory.parameter("$defs", typescript_1.default.factory.createTypeReferenceNode("Record", [
78
+ typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.StringKeyword),
79
+ schemaTypeNode,
95
80
  ]), undefined),
96
81
  ], undefined, undefined, typescript_1.default.factory.createBlock([
97
- typescript_1.default.factory.createIfStatement(typescript_1.default.factory.createStrictInequality(typescript_1.default.factory.createIdentifier("undefined"), IdentifierFactory_1.IdentifierFactory.access(typescript_1.default.factory.createIdentifier("props"), "$defs", true)), typescript_1.default.factory.createExpressionStatement(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("Object.assign"), undefined, [
98
- IdentifierFactory_1.IdentifierFactory.access(typescript_1.default.factory.createIdentifier("props"), "$defs"),
82
+ typescript_1.default.factory.createExpressionStatement(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("Object.assign"), undefined, [
83
+ typescript_1.default.factory.createIdentifier("$defs"),
99
84
  typescript_1.default.factory.createAsExpression(LiteralFactory_1.LiteralFactory.write(out.$defs), typescript_1.default.factory.createTypeReferenceNode("Record", [
100
85
  typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.StringKeyword),
101
86
  schemaTypeNode,
102
87
  ])),
103
- ]))),
88
+ ])),
104
89
  typescript_1.default.factory.createReturnStatement(literal),
105
90
  ], true)), undefined, ((_b = props.expression.arguments) === null || _b === void 0 ? void 0 : _b[0]) !== undefined
106
91
  ? [props.expression.arguments[0]]
@@ -1 +1 @@
1
- {"version":3,"file":"LlmSchemaTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/llm/LlmSchemaTransformer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LlmSchemaTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/llm/LlmSchemaTransformer.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { IdentifierFactory } from '../../../factories/IdentifierFactory.mjs';
3
3
  import { LiteralFactory } from '../../../factories/LiteralFactory.mjs';
4
4
  import { MetadataCollection } from '../../../factories/MetadataCollection.mjs';
5
5
  import { MetadataFactory } from '../../../factories/MetadataFactory.mjs';
6
- import { LlmModelPredicator } from '../../../programmers/llm/LlmModelPredicator.mjs';
6
+ import { LlmMetadataFactory } from '../../../programmers/llm/LlmMetadataFactory.mjs';
7
7
  import { LlmSchemaProgrammer } from '../../../programmers/llm/LlmSchemaProgrammer.mjs';
8
8
  import { TransformerError } from '../../TransformerError.mjs';
9
9
 
@@ -20,16 +20,10 @@ var LlmSchemaTransformer;
20
20
  if (ts.isTypeNode(top) === false)
21
21
  return props.expression;
22
22
  // GET TYPE
23
- const model = LlmModelPredicator.getModel({
24
- checker: props.context.checker,
25
- method: "schema",
26
- node: props.expression.typeArguments[1],
27
- });
28
- const config = LlmModelPredicator.getConfig({
23
+ const config = LlmMetadataFactory.getConfig({
29
24
  context: props.context,
30
25
  method: "schema",
31
- model,
32
- node: props.expression.typeArguments[2],
26
+ node: props.expression.typeArguments[1],
33
27
  });
34
28
  const type = props.context.checker.getTypeFromTypeNode(top);
35
29
  // VALIDATE TYPE
@@ -42,9 +36,9 @@ var LlmSchemaTransformer;
42
36
  constant: true,
43
37
  escape: true,
44
38
  validate: validate === true
45
- ? LlmSchemaProgrammer.validate({
46
- model,
39
+ ? (metadata) => LlmSchemaProgrammer.validate({
47
40
  config,
41
+ metadata,
48
42
  })
49
43
  : undefined,
50
44
  },
@@ -63,38 +57,29 @@ var LlmSchemaTransformer;
63
57
  analyze(true);
64
58
  // GENERATE LLM SCHEMA
65
59
  const out = LlmSchemaProgrammer.write({
66
- model,
67
60
  metadata: analyze(false),
68
61
  config,
69
62
  });
70
63
  const schemaTypeNode = props.context.importer.type({
71
64
  file: "@samchon/openapi",
72
65
  name: "ILlmSchema",
73
- arguments: [
74
- ts.factory.createLiteralTypeNode(ts.factory.createStringLiteral(model)),
75
- ],
76
66
  });
77
67
  const literal = ts.factory.createAsExpression(LiteralFactory.write(out.schema), schemaTypeNode);
78
68
  if (Object.keys(out.$defs).length === 0)
79
69
  return literal;
80
70
  return ts.factory.createCallExpression(ts.factory.createArrowFunction(undefined, undefined, [
81
- IdentifierFactory.parameter("props", ts.factory.createTypeLiteralNode([
82
- ts.factory.createPropertySignature(undefined, ts.factory.createIdentifier("$defs"), ts.factory.createToken(ts.SyntaxKind.QuestionToken), ts.factory.createUnionTypeNode([
83
- ts.factory.createTypeReferenceNode("Record", [
84
- ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword),
85
- schemaTypeNode,
86
- ]),
87
- ts.factory.createKeywordTypeNode(ts.SyntaxKind.UndefinedKeyword),
88
- ])),
71
+ IdentifierFactory.parameter("$defs", ts.factory.createTypeReferenceNode("Record", [
72
+ ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword),
73
+ schemaTypeNode,
89
74
  ]), undefined),
90
75
  ], undefined, undefined, ts.factory.createBlock([
91
- ts.factory.createIfStatement(ts.factory.createStrictInequality(ts.factory.createIdentifier("undefined"), IdentifierFactory.access(ts.factory.createIdentifier("props"), "$defs", true)), ts.factory.createExpressionStatement(ts.factory.createCallExpression(ts.factory.createIdentifier("Object.assign"), undefined, [
92
- IdentifierFactory.access(ts.factory.createIdentifier("props"), "$defs"),
76
+ ts.factory.createExpressionStatement(ts.factory.createCallExpression(ts.factory.createIdentifier("Object.assign"), undefined, [
77
+ ts.factory.createIdentifier("$defs"),
93
78
  ts.factory.createAsExpression(LiteralFactory.write(out.$defs), ts.factory.createTypeReferenceNode("Record", [
94
79
  ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword),
95
80
  schemaTypeNode,
96
81
  ])),
97
- ]))),
82
+ ])),
98
83
  ts.factory.createReturnStatement(literal),
99
84
  ], true)), undefined, props.expression.arguments?.[0] !== undefined
100
85
  ? [props.expression.arguments[0]]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typia",
3
- "version": "10.0.2",
3
+ "version": "11.0.0",
4
4
  "description": "Superfast runtime validators with only one line",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -41,7 +41,7 @@
41
41
  },
42
42
  "homepage": "https://typia.io",
43
43
  "dependencies": {
44
- "@samchon/openapi": "^5.0.1",
44
+ "@samchon/openapi": "^6.0.0",
45
45
  "@standard-schema/spec": "^1.0.0",
46
46
  "commander": "^10.0.0",
47
47
  "comment-json": "^4.2.3",
@@ -118,5 +118,6 @@
118
118
  "claude",
119
119
  "gemini",
120
120
  "llama"
121
- ]
121
+ ],
122
+ "packageManager": "pnpm@10.6.4"
122
123
  }
@@ -51,6 +51,7 @@ export const emplace_metadata_object = (
51
51
  key: Metadata;
52
52
  value: Metadata;
53
53
  symbol: ts.Symbol | undefined;
54
+ node?: ts.Declaration;
54
55
  filter?: (doc: ts.JSDocTagInfo) => boolean;
55
56
  }): MetadataProperty => {
56
57
  // COMMENTS AND TAGS
@@ -61,12 +62,25 @@ export const emplace_metadata_object = (
61
62
  props.symbol?.getJsDocTags() ?? []
62
63
  ).filter(props.filter ?? (() => true));
63
64
 
65
+ // CHECK MUTABILITY
66
+ const mutability: "readonly" | null | undefined =
67
+ props.node &&
68
+ ts.canHaveModifiers(props.node) &&
69
+ ts
70
+ .getModifiers(props.node)
71
+ ?.some(
72
+ (modifier) => modifier.kind === ts.SyntaxKind.ReadonlyKeyword,
73
+ ) === true
74
+ ? "readonly"
75
+ : null;
76
+
64
77
  // THE PROPERTY
65
78
  const property: MetadataProperty = MetadataProperty.create({
66
79
  key: props.key,
67
80
  value: props.value,
68
81
  description,
69
82
  jsDocTags,
83
+ mutability,
70
84
  });
71
85
  obj.properties.push(property);
72
86
  return property;
@@ -118,6 +132,7 @@ export const emplace_metadata_object = (
118
132
  key,
119
133
  value,
120
134
  symbol,
135
+ node,
121
136
  });
122
137
  }
123
138
 
@@ -180,6 +195,7 @@ export const emplace_metadata_object = (
180
195
  symbol: index.declaration?.parent
181
196
  ? props.checker.getSymbolAtLocation(index.declaration.parent)
182
197
  : undefined,
198
+ node: index.declaration,
183
199
  filter: (doc) => doc.name !== "default",
184
200
  });
185
201
  }
@@ -4,7 +4,7 @@ import { IValidation } from "../IValidation";
4
4
 
5
5
  export const _createStandardSchema = <T>(
6
6
  fn: (input: unknown) => IValidation<T>,
7
- ): ((input: unknown) => IValidation<T>) & StandardSchemaV1<unknown, T> =>
7
+ ): ((input: unknown) => IValidation<T>) & StandardSchemaV1<T, T> =>
8
8
  Object.assign(fn, {
9
9
  "~standard": {
10
10
  version: 1,
@@ -25,7 +25,7 @@ export const _createStandardSchema = <T>(
25
25
  }
26
26
  },
27
27
  },
28
- } satisfies StandardSchemaV1<unknown, T>);
28
+ } satisfies StandardSchemaV1<T, T>);
29
29
 
30
30
  enum PathParserState {
31
31
  // Start of a new segment
@@ -1,37 +1,30 @@
1
- import {
2
- ILlmApplication,
3
- ILlmFunction,
4
- ILlmSchema,
5
- IValidation,
6
- } from "@samchon/openapi";
1
+ import { ILlmApplication, IValidation } from "@samchon/openapi";
7
2
  import { LlmSchemaComposer } from "@samchon/openapi/lib/composers/LlmSchemaComposer";
8
3
 
9
- export const _llmApplicationFinalize = <Model extends ILlmSchema.Model>(
10
- app: ILlmApplication<Model>,
11
- options?: Partial<
12
- Pick<ILlmApplication.IOptions<Model>, "separate" | "validate"> & {
4
+ export const _llmApplicationFinalize = (
5
+ app: ILlmApplication,
6
+ config?: Partial<
7
+ Pick<ILlmApplication.IConfig, "separate" | "validate"> & {
13
8
  equals?: boolean;
14
9
  }
15
10
  >,
16
11
  ): void => {
17
- app.options = {
18
- ...LlmSchemaComposer.defaultConfig(app.model),
19
- separate: options?.separate ?? null,
20
- validate: options?.validate ?? null,
12
+ app.config = {
13
+ ...LlmSchemaComposer.getConfig(),
14
+ separate: config?.separate ?? null,
15
+ validate: config?.validate ?? null,
21
16
  };
22
- if (app.options.separate !== null)
17
+ if (app.config.separate !== null)
23
18
  for (const func of app.functions)
24
- func.separated = LlmSchemaComposer.separateParameters(app.model)({
25
- parameters:
26
- func.parameters satisfies ILlmSchema.IParameters<Model> as any,
27
- predicate: app.options
28
- .separate as ILlmApplication.IOptions<Model>["separate"] as any,
29
- equals: options?.equals ?? false,
30
- }) as ILlmFunction.ISeparated<Model>;
31
- if (app.options.validate !== null)
19
+ func.separated = LlmSchemaComposer.separate({
20
+ parameters: func.parameters,
21
+ predicate: app.config.separate,
22
+ equals: config?.equals ?? false,
23
+ });
24
+ if (app.config.validate !== null)
32
25
  for (const func of app.functions)
33
- if (typeof app.options.validate?.[func.name] === "function")
34
- func.validate = app.options.validate[
26
+ if (typeof app.config.validate?.[func.name] === "function")
27
+ func.validate = app.config.validate[
35
28
  func.name
36
29
  ]! satisfies Validator as Validator;
37
30
  };