@typia/utils 12.0.0-dev.20260311 → 12.0.0-dev.20260312

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 (51) hide show
  1. package/lib/converters/OpenApiConverter.d.ts +29 -16
  2. package/lib/converters/OpenApiConverter.js +25 -15
  3. package/lib/converters/OpenApiConverter.js.map +1 -1
  4. package/lib/converters/OpenApiConverter.mjs +25 -15
  5. package/lib/converters/OpenApiConverter.mjs.map +1 -1
  6. package/lib/converters/internal/OpenApiV3Downgrader.js +38 -18
  7. package/lib/converters/internal/OpenApiV3Downgrader.js.map +1 -1
  8. package/lib/converters/internal/OpenApiV3Downgrader.mjs +50 -27
  9. package/lib/converters/internal/OpenApiV3Downgrader.mjs.map +1 -1
  10. package/lib/converters/internal/OpenApiV3Upgrader.js +36 -18
  11. package/lib/converters/internal/OpenApiV3Upgrader.js.map +1 -1
  12. package/lib/converters/internal/OpenApiV3Upgrader.mjs +50 -29
  13. package/lib/converters/internal/OpenApiV3Upgrader.mjs.map +1 -1
  14. package/lib/converters/internal/OpenApiV3_1Upgrader.js +38 -20
  15. package/lib/converters/internal/OpenApiV3_1Upgrader.js.map +1 -1
  16. package/lib/converters/internal/OpenApiV3_1Upgrader.mjs +51 -29
  17. package/lib/converters/internal/OpenApiV3_1Upgrader.mjs.map +1 -1
  18. package/lib/converters/internal/OpenApiV3_2Upgrader.d.ts +16 -0
  19. package/lib/converters/internal/OpenApiV3_2Upgrader.js +204 -0
  20. package/lib/converters/internal/OpenApiV3_2Upgrader.js.map +1 -0
  21. package/lib/converters/internal/OpenApiV3_2Upgrader.mjs +243 -0
  22. package/lib/converters/internal/OpenApiV3_2Upgrader.mjs.map +1 -0
  23. package/lib/converters/internal/SwaggerV2Downgrader.js +38 -18
  24. package/lib/converters/internal/SwaggerV2Downgrader.js.map +1 -1
  25. package/lib/converters/internal/SwaggerV2Downgrader.mjs +50 -27
  26. package/lib/converters/internal/SwaggerV2Downgrader.mjs.map +1 -1
  27. package/lib/converters/internal/SwaggerV2Upgrader.js +37 -19
  28. package/lib/converters/internal/SwaggerV2Upgrader.js.map +1 -1
  29. package/lib/converters/internal/SwaggerV2Upgrader.mjs +50 -29
  30. package/lib/converters/internal/SwaggerV2Upgrader.mjs.map +1 -1
  31. package/lib/http/internal/HttpMigrateApplicationComposer.js +1 -1
  32. package/lib/http/internal/HttpMigrateApplicationComposer.js.map +1 -1
  33. package/lib/http/internal/HttpMigrateApplicationComposer.mjs +1 -1
  34. package/lib/http/internal/HttpMigrateApplicationComposer.mjs.map +1 -1
  35. package/lib/http/internal/HttpMigrateRouteComposer.d.ts +1 -1
  36. package/lib/utils/LlmJson.d.ts +19 -1
  37. package/lib/utils/LlmJson.js +27 -0
  38. package/lib/utils/LlmJson.js.map +1 -1
  39. package/lib/utils/LlmJson.mjs +27 -0
  40. package/lib/utils/LlmJson.mjs.map +1 -1
  41. package/package.json +2 -2
  42. package/src/converters/OpenApiConverter.ts +322 -285
  43. package/src/converters/internal/OpenApiV3Downgrader.ts +381 -355
  44. package/src/converters/internal/OpenApiV3Upgrader.ts +494 -470
  45. package/src/converters/internal/OpenApiV3_1Upgrader.ts +710 -685
  46. package/src/converters/internal/OpenApiV3_2Upgrader.ts +342 -0
  47. package/src/converters/internal/SwaggerV2Downgrader.ts +450 -424
  48. package/src/converters/internal/SwaggerV2Upgrader.ts +547 -523
  49. package/src/http/internal/HttpMigrateApplicationComposer.ts +56 -56
  50. package/src/http/internal/HttpMigrateRouteComposer.ts +505 -505
  51. package/src/utils/LlmJson.ts +173 -141
@@ -1,4 +1,4 @@
1
- import { IJsonParseResult, ILlmSchema, IValidation } from "@typia/interface";
1
+ import { IJsonParseResult, ILlmSchema, ILlmStructuredOutput, IValidation } from "@typia/interface";
2
2
  /**
3
3
  * JSON utilities for LLM function calling.
4
4
  *
@@ -84,4 +84,22 @@ export declare namespace LlmJson {
84
84
  * @returns Validator function that checks data against the schema
85
85
  */
86
86
  function validate(parameters: ILlmSchema.IParameters, equals?: boolean | undefined): (value: unknown) => IValidation<unknown>;
87
+ /**
88
+ * Convert LLM parameters schema to structured output interface.
89
+ *
90
+ * Creates an {@link ILlmStructuredOutput} containing everything needed for
91
+ * handling LLM structured outputs: the parameters schema for prompting, and
92
+ * functions for parsing, coercing, and validating responses.
93
+ *
94
+ * This is useful when you have a parameters schema (e.g., from
95
+ * `typia.llm.parameters()`) and need the full structured output interface
96
+ * with all utility functions.
97
+ *
98
+ * @template T The expected output type
99
+ * @param parameters LLM parameters schema
100
+ * @param equals If `true`, reject extraneous properties not defined in the
101
+ * schema during validation. Otherwise, extra properties are ignored.
102
+ * @returns Structured output interface with parse, coerce, and validate
103
+ */
104
+ function structuredOutput<T>(parameters: ILlmSchema.IParameters, equals?: boolean | undefined): ILlmStructuredOutput<T>;
87
105
  }
@@ -125,5 +125,32 @@ var LlmJson;
125
125
  });
126
126
  }
127
127
  LlmJson.validate = validate;
128
+ /**
129
+ * Convert LLM parameters schema to structured output interface.
130
+ *
131
+ * Creates an {@link ILlmStructuredOutput} containing everything needed for
132
+ * handling LLM structured outputs: the parameters schema for prompting, and
133
+ * functions for parsing, coercing, and validating responses.
134
+ *
135
+ * This is useful when you have a parameters schema (e.g., from
136
+ * `typia.llm.parameters()`) and need the full structured output interface
137
+ * with all utility functions.
138
+ *
139
+ * @template T The expected output type
140
+ * @param parameters LLM parameters schema
141
+ * @param equals If `true`, reject extraneous properties not defined in the
142
+ * schema during validation. Otherwise, extra properties are ignored.
143
+ * @returns Structured output interface with parse, coerce, and validate
144
+ */
145
+ function structuredOutput(parameters, equals) {
146
+ const validator = validate(parameters, equals);
147
+ return {
148
+ parameters,
149
+ parse: (str) => parse(str, parameters),
150
+ coerce: (input) => coerce(input, parameters),
151
+ validate: (input) => validator(input),
152
+ };
153
+ }
154
+ LlmJson.structuredOutput = structuredOutput;
128
155
  })(LlmJson || (exports.LlmJson = LlmJson = {}));
129
156
  //# sourceMappingURL=LlmJson.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LlmJson.js","sourceRoot":"","sources":["../../src/utils/LlmJson.ts"],"names":[],"mappings":";;;AAOA,8CAAmD;AACnD,8CAAiD;AACjD,sEAAmE;AACnE,kEAA+D;AAC/D,sFAAmF;AAEnF;;;;;;;;GAQG;AACH,IAAiB,OAAO,CAsHvB;AAtHD,WAAiB,OAAO;IACtB;;;;;;;;;;;;;;;;;;OAkBG;IACH,SAAgB,MAAM,CACpB,KAAc,EACd,UAAkC;QAElC,OAAO,IAAA,uCAAkB,EAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC/C,CAAC;IALe,cAAM,SAKrB,CAAA;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,SAAgB,KAAK,CACnB,KAAa,EACb,UAAmC;QAEnC,MAAM,MAAM,GAAwB,IAAA,mCAAgB,EAAI,KAAK,CAAC,CAAC;QAE/D,2EAA2E;QAC3E,IAAI,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAC/C,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,IAAA,uCAAkB,EAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAM;aACvD,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAde,aAAK,QAcpB,CAAA;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAgB,SAAS,CAAC,OAA6B;QACrD,OAAO,IAAA,uDAA0B,EAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAFe,iBAAS,YAExB,CAAA;IAED;;;;;;;;;;OAUG;IACH,SAAgB,QAAQ,CACtB,UAAkC,EAClC,MAA4B;QAE5B,MAAM,UAAU,GAAwB;YACtC,OAAO,EAAE,EAAE;SACZ,CAAC;QACF,MAAM,MAAM,GAAwB,+BAAkB,CAAC,MAAM,CAAC;YAC5D,UAAU;YACV,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,UAAU,CAAC,KAAK;SACxB,CAAC,CAAC;QACH,OAAO,6BAAgB,CAAC,MAAM,CAAC;YAC7B,UAAU;YACV,MAAM;YACN,QAAQ,EAAE,IAAI;YACd,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAlBe,gBAAQ,WAkBvB,CAAA;AACH,CAAC,EAtHgB,OAAO,uBAAP,OAAO,QAsHvB"}
1
+ {"version":3,"file":"LlmJson.js","sourceRoot":"","sources":["../../src/utils/LlmJson.ts"],"names":[],"mappings":";;;AAQA,8CAAmD;AACnD,8CAAiD;AACjD,sEAAmE;AACnE,kEAA+D;AAC/D,sFAAmF;AAEnF;;;;;;;;GAQG;AACH,IAAiB,OAAO,CAqJvB;AArJD,WAAiB,OAAO;IACtB;;;;;;;;;;;;;;;;;;OAkBG;IACH,SAAgB,MAAM,CACpB,KAAc,EACd,UAAkC;QAElC,OAAO,IAAA,uCAAkB,EAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC/C,CAAC;IALe,cAAM,SAKrB,CAAA;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,SAAgB,KAAK,CACnB,KAAa,EACb,UAAmC;QAEnC,MAAM,MAAM,GAAwB,IAAA,mCAAgB,EAAI,KAAK,CAAC,CAAC;QAE/D,2EAA2E;QAC3E,IAAI,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAC/C,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,IAAA,uCAAkB,EAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAM;aACvD,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAde,aAAK,QAcpB,CAAA;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAgB,SAAS,CAAC,OAA6B;QACrD,OAAO,IAAA,uDAA0B,EAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAFe,iBAAS,YAExB,CAAA;IAED;;;;;;;;;;OAUG;IACH,SAAgB,QAAQ,CACtB,UAAkC,EAClC,MAA4B;QAE5B,MAAM,UAAU,GAAwB;YACtC,OAAO,EAAE,EAAE;SACZ,CAAC;QACF,MAAM,MAAM,GAAwB,+BAAkB,CAAC,MAAM,CAAC;YAC5D,UAAU;YACV,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,UAAU,CAAC,KAAK;SACxB,CAAC,CAAC;QACH,OAAO,6BAAgB,CAAC,MAAM,CAAC;YAC7B,UAAU;YACV,MAAM;YACN,QAAQ,EAAE,IAAI;YACd,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAlBe,gBAAQ,WAkBvB,CAAA;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,SAAgB,gBAAgB,CAC9B,UAAkC,EAClC,MAA4B;QAE5B,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC/C,OAAO;YACL,UAAU;YACV,KAAK,EAAE,CAAC,GAAW,EAAuB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC;YACnE,MAAM,EAAE,CAAC,KAAc,EAAK,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC;YACxD,QAAQ,EAAE,CAAC,KAAc,EAAkB,EAAE,CAC3C,SAAS,CAAC,KAAK,CAAmB;SACrC,CAAC;IACJ,CAAC;IAZe,wBAAgB,mBAY/B,CAAA;AACH,CAAC,EArJgB,OAAO,uBAAP,OAAO,QAqJvB"}
@@ -130,6 +130,33 @@ var LlmJson;
130
130
  });
131
131
  }
132
132
  LlmJson.validate = validate;
133
+ /**
134
+ * Convert LLM parameters schema to structured output interface.
135
+ *
136
+ * Creates an {@link ILlmStructuredOutput} containing everything needed for
137
+ * handling LLM structured outputs: the parameters schema for prompting, and
138
+ * functions for parsing, coercing, and validating responses.
139
+ *
140
+ * This is useful when you have a parameters schema (e.g., from
141
+ * `typia.llm.parameters()`) and need the full structured output interface
142
+ * with all utility functions.
143
+ *
144
+ * @template T The expected output type
145
+ * @param parameters LLM parameters schema
146
+ * @param equals If `true`, reject extraneous properties not defined in the
147
+ * schema during validation. Otherwise, extra properties are ignored.
148
+ * @returns Structured output interface with parse, coerce, and validate
149
+ */
150
+ function structuredOutput(parameters, equals) {
151
+ const validator = validate(parameters, equals);
152
+ return {
153
+ parameters,
154
+ parse: (str) => parse(str, parameters),
155
+ coerce: (input) => coerce(input, parameters),
156
+ validate: (input) => validator(input),
157
+ };
158
+ }
159
+ LlmJson.structuredOutput = structuredOutput;
133
160
  })(LlmJson || (LlmJson = {}));
134
161
 
135
162
  export { LlmJson };
@@ -1 +1 @@
1
- {"version":3,"file":"LlmJson.mjs","sources":["../../src/utils/LlmJson.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;AAaA;;;;;;;;AAQG;AACG,IAAW;AAAjB,CAAA,UAAiB,OAAO,EAAA;AACtB;;;;;;;;;;;;;;;;;;AAkBG;AACH,IAAA,SAAgB,MAAM,CACpB,KAAc,EACd,UAAkC,EAAA;AAElC,QAAA,OAAO,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC;IAC9C;AALgB,IAAA,OAAA,CAAA,MAAM,SAKrB;AAED;;;;;;;;;;;;;;;;;;;AAmBG;AACH,IAAA,SAAgB,KAAK,CACnB,KAAa,EACb,UAAmC,EAAA;AAEnC,QAAA,MAAM,MAAM,GAAwB,gBAAgB,CAAI,KAAK,CAAC;;QAG9D,IAAI,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,EAAE;YAC9C,OAAO;AACL,gBAAA,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAM;aACvD;QACH;AACA,QAAA,OAAO,MAAM;IACf;AAdgB,IAAA,OAAA,CAAA,KAAK,QAcpB;AAED;;;;;;;;;;;;;;;;;;;;AAoBG;IACH,SAAgB,SAAS,CAAC,OAA6B,EAAA;AACrD,QAAA,OAAO,0BAA0B,CAAC,OAAO,CAAC;IAC5C;AAFgB,IAAA,OAAA,CAAA,SAAS,YAExB;AAED;;;;;;;;;;AAUG;AACH,IAAA,SAAgB,QAAQ,CACtB,UAAkC,EAClC,MAA4B,EAAA;AAE5B,QAAA,MAAM,UAAU,GAAwB;AACtC,YAAA,OAAO,EAAE,EAAE;SACZ;AACD,QAAA,MAAM,MAAM,GAAwB,kBAAkB,CAAC,MAAM,CAAC;YAC5D,UAAU;AACV,YAAA,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,UAAU,CAAC,KAAK;AACxB,SAAA,CAAC;QACF,OAAO,gBAAgB,CAAC,MAAM,CAAC;YAC7B,UAAU;YACV,MAAM;AACN,YAAA,QAAQ,EAAE,IAAI;YACd,MAAM;AACP,SAAA,CAAC;IACJ;AAlBgB,IAAA,OAAA,CAAA,QAAQ,WAkBvB;AACH,CAAC,EAtHgB,OAAO,KAAP,OAAO,GAAA,EAAA,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"LlmJson.mjs","sources":["../../src/utils/LlmJson.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;AAcA;;;;;;;;AAQG;AACG,IAAW;AAAjB,CAAA,UAAiB,OAAO,EAAA;AACtB;;;;;;;;;;;;;;;;;;AAkBG;AACH,IAAA,SAAgB,MAAM,CACpB,KAAc,EACd,UAAkC,EAAA;AAElC,QAAA,OAAO,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC;IAC9C;AALgB,IAAA,OAAA,CAAA,MAAM,SAKrB;AAED;;;;;;;;;;;;;;;;;;;AAmBG;AACH,IAAA,SAAgB,KAAK,CACnB,KAAa,EACb,UAAmC,EAAA;AAEnC,QAAA,MAAM,MAAM,GAAwB,gBAAgB,CAAI,KAAK,CAAC;;QAG9D,IAAI,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,EAAE;YAC9C,OAAO;AACL,gBAAA,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAM;aACvD;QACH;AACA,QAAA,OAAO,MAAM;IACf;AAdgB,IAAA,OAAA,CAAA,KAAK,QAcpB;AAED;;;;;;;;;;;;;;;;;;;;AAoBG;IACH,SAAgB,SAAS,CAAC,OAA6B,EAAA;AACrD,QAAA,OAAO,0BAA0B,CAAC,OAAO,CAAC;IAC5C;AAFgB,IAAA,OAAA,CAAA,SAAS,YAExB;AAED;;;;;;;;;;AAUG;AACH,IAAA,SAAgB,QAAQ,CACtB,UAAkC,EAClC,MAA4B,EAAA;AAE5B,QAAA,MAAM,UAAU,GAAwB;AACtC,YAAA,OAAO,EAAE,EAAE;SACZ;AACD,QAAA,MAAM,MAAM,GAAwB,kBAAkB,CAAC,MAAM,CAAC;YAC5D,UAAU;AACV,YAAA,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,UAAU,CAAC,KAAK;AACxB,SAAA,CAAC;QACF,OAAO,gBAAgB,CAAC,MAAM,CAAC;YAC7B,UAAU;YACV,MAAM;AACN,YAAA,QAAQ,EAAE,IAAI;YACd,MAAM;AACP,SAAA,CAAC;IACJ;AAlBgB,IAAA,OAAA,CAAA,QAAQ,WAkBvB;AAED;;;;;;;;;;;;;;;;AAgBG;AACH,IAAA,SAAgB,gBAAgB,CAC9B,UAAkC,EAClC,MAA4B,EAAA;QAE5B,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC9C,OAAO;YACL,UAAU;YACV,KAAK,EAAE,CAAC,GAAW,KAA0B,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC;YACnE,MAAM,EAAE,CAAC,KAAc,KAAQ,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC;YACxD,QAAQ,EAAE,CAAC,KAAc,KACvB,SAAS,CAAC,KAAK,CAAmB;SACrC;IACH;AAZgB,IAAA,OAAA,CAAA,gBAAgB,mBAY/B;AACH,CAAC,EArJgB,OAAO,KAAP,OAAO,GAAA,EAAA,CAAA,CAAA;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typia/utils",
3
- "version": "12.0.0-dev.20260311",
3
+ "version": "12.0.0-dev.20260312",
4
4
  "description": "Superfast runtime validators with only one line",
5
5
  "main": "lib/index.js",
6
6
  "exports": {
@@ -22,7 +22,7 @@
22
22
  },
23
23
  "homepage": "https://typia.io",
24
24
  "dependencies": {
25
- "@typia/interface": "^12.0.0-dev.20260311"
25
+ "@typia/interface": "^12.0.0-dev.20260312"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@rollup/plugin-commonjs": "^29.0.0",