@typia/utils 12.0.0-dev.20260306 → 12.0.0-dev.20260307
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/README.md +5 -5
- package/lib/converters/LlmSchemaConverter.d.ts +1 -20
- package/lib/converters/LlmSchemaConverter.js +0 -189
- package/lib/converters/LlmSchemaConverter.js.map +1 -1
- package/lib/converters/LlmSchemaConverter.mjs +0 -227
- package/lib/converters/LlmSchemaConverter.mjs.map +1 -1
- package/lib/http/HttpLlm.d.ts +2 -32
- package/lib/http/HttpLlm.js +4 -27
- package/lib/http/HttpLlm.js.map +1 -1
- package/lib/http/HttpLlm.mjs +1 -24
- package/lib/http/HttpLlm.mjs.map +1 -1
- package/lib/http/internal/HttpLlmApplicationComposer.js +13 -19
- package/lib/http/internal/HttpLlmApplicationComposer.js.map +1 -1
- package/lib/http/internal/HttpLlmApplicationComposer.mjs +7 -9
- package/lib/http/internal/HttpLlmApplicationComposer.mjs.map +1 -1
- package/lib/index.mjs +10 -10
- package/lib/utils/LlmJson.d.ts +67 -0
- package/lib/utils/LlmJson.js +106 -0
- package/lib/utils/LlmJson.js.map +1 -0
- package/lib/utils/LlmJson.mjs +113 -0
- package/lib/utils/LlmJson.mjs.map +1 -0
- package/lib/utils/index.d.ts +1 -1
- package/lib/utils/index.js +1 -1
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/index.mjs +1 -1
- package/lib/utils/internal/coerceLlmArguments.d.ts +1 -0
- package/lib/utils/internal/coerceLlmArguments.js +233 -0
- package/lib/utils/internal/coerceLlmArguments.js.map +1 -0
- package/lib/utils/internal/coerceLlmArguments.mjs +232 -0
- package/lib/utils/internal/coerceLlmArguments.mjs.map +1 -0
- package/lib/utils/internal/parseLenientJson.d.ts +1 -0
- package/lib/utils/internal/parseLenientJson.js +639 -0
- package/lib/utils/internal/parseLenientJson.js.map +1 -0
- package/lib/utils/internal/parseLenientJson.mjs +640 -0
- package/lib/utils/internal/parseLenientJson.mjs.map +1 -0
- package/lib/utils/internal/stringifyValidationFailure.d.ts +2 -0
- package/lib/utils/{stringifyValidationFailure.js → internal/stringifyValidationFailure.js} +55 -63
- package/lib/utils/internal/stringifyValidationFailure.js.map +1 -0
- package/lib/utils/{stringifyValidationFailure.mjs → internal/stringifyValidationFailure.mjs} +54 -63
- package/lib/utils/internal/stringifyValidationFailure.mjs.map +1 -0
- package/lib/validators/internal/OpenApiOneOfValidator.mjs +5 -1
- package/lib/validators/internal/OpenApiOneOfValidator.mjs.map +1 -1
- package/package.json +2 -2
- package/src/converters/LlmSchemaConverter.ts +0 -277
- package/src/http/HttpLlm.ts +1 -44
- package/src/http/internal/HttpLlmApplicationComposer.ts +3 -9
- package/src/utils/LlmJson.ts +115 -0
- package/src/utils/index.ts +1 -1
- package/src/utils/internal/coerceLlmArguments.ts +297 -0
- package/src/utils/internal/parseLenientJson.ts +731 -0
- package/src/utils/{stringifyValidationFailure.ts → internal/stringifyValidationFailure.ts} +66 -70
- package/lib/http/internal/LlmDataMerger.d.ts +0 -48
- package/lib/http/internal/LlmDataMerger.js +0 -60
- package/lib/http/internal/LlmDataMerger.js.map +0 -1
- package/lib/http/internal/LlmDataMerger.mjs +0 -59
- package/lib/http/internal/LlmDataMerger.mjs.map +0 -1
- package/lib/utils/stringifyValidationFailure.d.ts +0 -25
- package/lib/utils/stringifyValidationFailure.js.map +0 -1
- package/lib/utils/stringifyValidationFailure.mjs.map +0 -1
- package/src/http/internal/LlmDataMerger.ts +0 -73
|
@@ -1,36 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.stringifyValidationFailure = stringifyValidationFailure;
|
|
4
|
-
const NamingConvention_1 = require("
|
|
5
|
-
const dedent_1 = require("
|
|
6
|
-
/**
|
|
7
|
-
* Format validation failure for LLM auto-correction feedback.
|
|
8
|
-
*
|
|
9
|
-
* When LLM generates invalid function call arguments, this produces annotated
|
|
10
|
-
* JSON with inline `// ❌` error comments at each invalid property. The output
|
|
11
|
-
* is wrapped in a markdown code block so that LLM can understand and correct
|
|
12
|
-
* its mistakes in the next turn.
|
|
13
|
-
*
|
|
14
|
-
* Below is an example of the output format:
|
|
15
|
-
*
|
|
16
|
-
* ```json
|
|
17
|
-
* {
|
|
18
|
-
* "name": "John",
|
|
19
|
-
* "age": "twenty", // ❌ [{"path":"$input.age","expected":"number & Type<\"uint32\">"}]
|
|
20
|
-
* "email": "not-an-email", // ❌ [{"path":"$input.email","expected":"string & Format<\"email\">"}]
|
|
21
|
-
* "hobbies": "reading" // ❌ [{"path":"$input.hobbies","expected":"Array<string>"}]
|
|
22
|
-
* }
|
|
23
|
-
* ```
|
|
24
|
-
*
|
|
25
|
-
* @author Jeongho Nam - https://github.com/samchon
|
|
26
|
-
* @param failure Validation failure from {@link ILlmFunction.validate}
|
|
27
|
-
* @returns Markdown code block with error-annotated JSON
|
|
28
|
-
*/
|
|
4
|
+
const NamingConvention_1 = require("../NamingConvention");
|
|
5
|
+
const dedent_1 = require("../dedent");
|
|
29
6
|
function stringifyValidationFailure(failure) {
|
|
30
7
|
const usedErrors = new Set();
|
|
8
|
+
// Pre-index errors by path for O(1) lookup
|
|
9
|
+
const errorsByPath = new Map();
|
|
10
|
+
for (const e of failure.errors) {
|
|
11
|
+
const arr = errorsByPath.get(e.path);
|
|
12
|
+
if (arr !== undefined)
|
|
13
|
+
arr.push(e);
|
|
14
|
+
else
|
|
15
|
+
errorsByPath.set(e.path, [e]);
|
|
16
|
+
}
|
|
31
17
|
const jsonOutput = stringify({
|
|
32
18
|
value: failure.data,
|
|
33
|
-
|
|
19
|
+
errorsByPath,
|
|
34
20
|
path: "$input",
|
|
35
21
|
tab: 0,
|
|
36
22
|
inArray: false,
|
|
@@ -59,9 +45,9 @@ function stringifyValidationFailure(failure) {
|
|
|
59
45
|
}
|
|
60
46
|
function stringify(props) {
|
|
61
47
|
var _a;
|
|
62
|
-
const { value,
|
|
48
|
+
const { value, errorsByPath, path, tab, inArray, inToJson, usedErrors } = props;
|
|
63
49
|
const indent = " ".repeat(tab);
|
|
64
|
-
const errorComment = getErrorComment(path,
|
|
50
|
+
const errorComment = getErrorComment(path, errorsByPath, usedErrors);
|
|
65
51
|
// Handle undefined in arrays
|
|
66
52
|
if (inArray && value === undefined) {
|
|
67
53
|
return `${indent}undefined${errorComment}`;
|
|
@@ -69,7 +55,7 @@ function stringify(props) {
|
|
|
69
55
|
// Array
|
|
70
56
|
if (Array.isArray(value)) {
|
|
71
57
|
// Check for missing array element errors (path[])
|
|
72
|
-
const missingElementErrors = getMissingArrayElementErrors(path,
|
|
58
|
+
const missingElementErrors = getMissingArrayElementErrors(path, errorsByPath, usedErrors);
|
|
73
59
|
const hasMissingElements = missingElementErrors.length > 0;
|
|
74
60
|
if (value.length === 0) {
|
|
75
61
|
// Empty array but has missing element errors - show placeholders
|
|
@@ -96,7 +82,7 @@ function stringify(props) {
|
|
|
96
82
|
const needsComma = !isLastElement || hasMissingElements;
|
|
97
83
|
let itemStr = stringify({
|
|
98
84
|
value: item,
|
|
99
|
-
|
|
85
|
+
errorsByPath,
|
|
100
86
|
path: itemPath,
|
|
101
87
|
tab: tab + 1,
|
|
102
88
|
inArray: true,
|
|
@@ -105,16 +91,7 @@ function stringify(props) {
|
|
|
105
91
|
});
|
|
106
92
|
// Add comma before the error comment if not the last element
|
|
107
93
|
if (needsComma) {
|
|
108
|
-
|
|
109
|
-
const lastLine = itemLines[itemLines.length - 1];
|
|
110
|
-
const commentIndex = lastLine.indexOf(" //");
|
|
111
|
-
if (commentIndex !== -1) {
|
|
112
|
-
itemLines[itemLines.length - 1] = `${lastLine.slice(0, commentIndex)},${lastLine.slice(commentIndex)}`;
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
itemLines[itemLines.length - 1] += ",";
|
|
116
|
-
}
|
|
117
|
-
itemStr = itemLines.join("\n");
|
|
94
|
+
itemStr = insertCommaBeforeComment(itemStr);
|
|
118
95
|
}
|
|
119
96
|
lines.push(itemStr);
|
|
120
97
|
});
|
|
@@ -139,7 +116,7 @@ function stringify(props) {
|
|
|
139
116
|
const jsonValue = value.toJSON();
|
|
140
117
|
return stringify({
|
|
141
118
|
value: jsonValue,
|
|
142
|
-
|
|
119
|
+
errorsByPath,
|
|
143
120
|
path,
|
|
144
121
|
tab,
|
|
145
122
|
inArray,
|
|
@@ -153,13 +130,13 @@ function stringify(props) {
|
|
|
153
130
|
const definedEntries = allEntries.filter(([_, val]) => val !== undefined);
|
|
154
131
|
const undefinedEntryKeys = new Set(allEntries.filter(([_, val]) => val === undefined).map(([key]) => key));
|
|
155
132
|
// Find missing properties that have validation errors (not in object at all)
|
|
156
|
-
const missingKeys = getMissingProperties(path, value,
|
|
133
|
+
const missingKeys = getMissingProperties(path, value, errorsByPath);
|
|
157
134
|
// Combine: defined entries + undefined entries with errors + missing properties
|
|
158
135
|
const undefinedKeysWithErrors = Array.from(undefinedEntryKeys).filter((key) => {
|
|
159
136
|
const propPath = NamingConvention_1.NamingConvention.variable(key)
|
|
160
137
|
? `${path}.${key}`
|
|
161
138
|
: `${path}[${JSON.stringify(key)}]`;
|
|
162
|
-
return
|
|
139
|
+
return hasErrorsAtOrUnder(propPath, errorsByPath);
|
|
163
140
|
});
|
|
164
141
|
const allKeys = [
|
|
165
142
|
...definedEntries.map(([key]) => key),
|
|
@@ -187,7 +164,7 @@ function stringify(props) {
|
|
|
187
164
|
typeof val === "boolean" ||
|
|
188
165
|
typeof val === "number" ||
|
|
189
166
|
typeof val === "string") {
|
|
190
|
-
const propErrorComment = getErrorComment(propPath,
|
|
167
|
+
const propErrorComment = getErrorComment(propPath, errorsByPath, usedErrors);
|
|
191
168
|
const keyStr = JSON.stringify(key);
|
|
192
169
|
const valueStr = val === undefined
|
|
193
170
|
? `${propIndent}${keyStr}: undefined`
|
|
@@ -201,7 +178,7 @@ function stringify(props) {
|
|
|
201
178
|
const keyLine = `${propIndent}${JSON.stringify(key)}: `;
|
|
202
179
|
let valStr = stringify({
|
|
203
180
|
value: val,
|
|
204
|
-
|
|
181
|
+
errorsByPath,
|
|
205
182
|
path: propPath,
|
|
206
183
|
tab: tab + 1,
|
|
207
184
|
inArray: false,
|
|
@@ -211,16 +188,7 @@ function stringify(props) {
|
|
|
211
188
|
const valStrWithoutIndent = valStr.trimStart();
|
|
212
189
|
// Add comma before the error comment if not the last property
|
|
213
190
|
if (index < array.length - 1) {
|
|
214
|
-
|
|
215
|
-
const lastLine = valLines[valLines.length - 1];
|
|
216
|
-
const commentIndex = lastLine.indexOf(" //");
|
|
217
|
-
if (commentIndex !== -1) {
|
|
218
|
-
valLines[valLines.length - 1] = `${lastLine.slice(0, commentIndex)},${lastLine.slice(commentIndex)}`;
|
|
219
|
-
}
|
|
220
|
-
else {
|
|
221
|
-
valLines[valLines.length - 1] += ",";
|
|
222
|
-
}
|
|
223
|
-
valStr = valLines.join("\n");
|
|
191
|
+
valStr = insertCommaBeforeComment(valStrWithoutIndent);
|
|
224
192
|
}
|
|
225
193
|
else {
|
|
226
194
|
valStr = valStrWithoutIndent;
|
|
@@ -238,10 +206,24 @@ function stringify(props) {
|
|
|
238
206
|
: ((_a = JSON.stringify(value)) !== null && _a !== void 0 ? _a : String(value));
|
|
239
207
|
return `${indent}${valStr}${errorComment}`;
|
|
240
208
|
}
|
|
209
|
+
/** Insert comma before inline error comment on the last line */
|
|
210
|
+
function insertCommaBeforeComment(str) {
|
|
211
|
+
const lines = str.split("\n");
|
|
212
|
+
const lastLine = lines[lines.length - 1];
|
|
213
|
+
// Use specific error marker to avoid false positives with values containing " //"
|
|
214
|
+
const commentIndex = lastLine.indexOf(" // ❌");
|
|
215
|
+
if (commentIndex !== -1) {
|
|
216
|
+
lines[lines.length - 1] = `${lastLine.slice(0, commentIndex)},${lastLine.slice(commentIndex)}`;
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
lines[lines.length - 1] += ",";
|
|
220
|
+
}
|
|
221
|
+
return lines.join("\n");
|
|
222
|
+
}
|
|
241
223
|
/** Get error comment for a given path */
|
|
242
|
-
function getErrorComment(path,
|
|
243
|
-
const pathErrors =
|
|
244
|
-
if (pathErrors.length === 0) {
|
|
224
|
+
function getErrorComment(path, errorsByPath, usedErrors) {
|
|
225
|
+
const pathErrors = errorsByPath.get(path);
|
|
226
|
+
if (pathErrors === undefined || pathErrors.length === 0) {
|
|
245
227
|
return "";
|
|
246
228
|
}
|
|
247
229
|
// Mark these errors as used
|
|
@@ -256,22 +238,32 @@ function getErrorComment(path, errors, usedErrors) {
|
|
|
256
238
|
* Check if there are missing array element errors (path ending with []) Returns
|
|
257
239
|
* an array of error objects, one per missing element
|
|
258
240
|
*/
|
|
259
|
-
function getMissingArrayElementErrors(path,
|
|
241
|
+
function getMissingArrayElementErrors(path, errorsByPath, usedErrors) {
|
|
242
|
+
var _a;
|
|
260
243
|
const wildcardPath = `${path}[]`;
|
|
261
|
-
const missingErrors =
|
|
244
|
+
const missingErrors = (_a = errorsByPath.get(wildcardPath)) !== null && _a !== void 0 ? _a : [];
|
|
262
245
|
// Mark these errors as used
|
|
263
246
|
missingErrors.forEach((e) => usedErrors.add(e));
|
|
264
247
|
return missingErrors;
|
|
265
248
|
}
|
|
249
|
+
/** Check if any errors exist at or under the given path prefix */
|
|
250
|
+
function hasErrorsAtOrUnder(pathPrefix, errorsByPath) {
|
|
251
|
+
for (const errorPath of errorsByPath.keys()) {
|
|
252
|
+
if (errorPath.startsWith(pathPrefix)) {
|
|
253
|
+
return true;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
return false;
|
|
257
|
+
}
|
|
266
258
|
/**
|
|
267
259
|
* Find missing properties that have validation errors but don't exist in the
|
|
268
260
|
* data Returns array of property keys that should be displayed as undefined
|
|
269
261
|
*/
|
|
270
|
-
function getMissingProperties(path, value,
|
|
262
|
+
function getMissingProperties(path, value, errorsByPath) {
|
|
271
263
|
const missingKeys = new Set();
|
|
272
|
-
for (const
|
|
264
|
+
for (const errorPath of errorsByPath.keys()) {
|
|
273
265
|
// Check if error.path is a direct child of current path
|
|
274
|
-
const childKey = extractDirectChildKey(path,
|
|
266
|
+
const childKey = extractDirectChildKey(path, errorPath);
|
|
275
267
|
if (childKey !== null) {
|
|
276
268
|
// Check if this property actually exists in the value
|
|
277
269
|
if (!(childKey in value)) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stringifyValidationFailure.js","sourceRoot":"","sources":["../../../src/utils/internal/stringifyValidationFailure.ts"],"names":[],"mappings":";;AAKA,gEA2CC;AA9CD,0DAAuD;AACvD,sCAAmC;AAEnC,SAAgB,0BAA0B,CACxC,OAA6B;IAE7B,MAAM,UAAU,GAA4B,IAAI,GAAG,EAAE,CAAC;IACtD,2CAA2C;IAC3C,MAAM,YAAY,GAAsC,IAAI,GAAG,EAAE,CAAC;IAClE,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAqC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACvE,IAAI,GAAG,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;YAC9B,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IACD,MAAM,UAAU,GAAG,SAAS,CAAC;QAC3B,KAAK,EAAE,OAAO,CAAC,IAAI;QACnB,YAAY;QACZ,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,CAAC;QACN,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,KAAK;QACf,UAAU;KACX,CAAC,CAAC;IAEH,wCAAwC;IACxC,MAAM,gBAAgB,GAAyB,OAAO,CAAC,MAAM,CAAC,MAAM,CAClE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAC1B,CAAC;IAEF,kEAAkE;IAClE,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC;QAC7B,OAAO,IAAA,eAAM,EAAA;;QAET,UAAU;;;;;QAKV,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;;KAE5C,CAAC;IACJ,OAAO,IAAA,eAAM,EAAA;;MAET,UAAU;;GAEb,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,KAQlB;;IACC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,GACrE,KAAK,CAAC;IACR,MAAM,MAAM,GAAW,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,YAAY,GAAW,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IAE7E,6BAA6B;IAC7B,IAAI,OAAO,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,GAAG,MAAM,YAAY,YAAY,EAAE,CAAC;IAC7C,CAAC;IAED,QAAQ;IACR,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,kDAAkD;QAClD,MAAM,oBAAoB,GAAG,4BAA4B,CACvD,IAAI,EACJ,YAAY,EACZ,UAAU,CACX,CAAC;QACF,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC;QAE3D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,iEAAiE;YACjE,IAAI,kBAAkB,EAAE,CAAC;gBACvB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gBACzC,MAAM,KAAK,GAAa,EAAE,CAAC;gBAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,YAAY,EAAE,CAAC,CAAC;gBACxC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;oBACtC,MAAM,UAAU,GAAG,SAAS,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC;oBACnH,MAAM,KAAK,GAAG,GAAG,GAAG,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/D,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,YAAY,KAAK,GAAG,UAAU,EAAE,CAAC,CAAC;gBAC7D,CAAC,CAAC,CAAC;gBACH,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;gBACzB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;YACD,OAAO,GAAG,MAAM,KAAK,YAAY,EAAE,CAAC;QACtC,CAAC;QAED,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,YAAY,EAAE,CAAC,CAAC;QAExC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAa,EAAE,KAAa,EAAE,EAAE;YAC7C,MAAM,QAAQ,GAAW,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC;YAC7C,MAAM,aAAa,GAAG,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACjD,uEAAuE;YACvE,MAAM,UAAU,GAAG,CAAC,aAAa,IAAI,kBAAkB,CAAC;YAExD,IAAI,OAAO,GAAW,SAAS,CAAC;gBAC9B,KAAK,EAAE,IAAI;gBACX,YAAY;gBACZ,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,GAAG,GAAG,CAAC;gBACZ,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,KAAK;gBACf,UAAU;aACX,CAAC,CAAC;YACH,6DAA6D;YAC7D,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;YAC9C,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,gEAAgE;QAChE,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACzC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;gBACtC,MAAM,UAAU,GAAG,SAAS,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC;gBACnH,MAAM,KAAK,GAAG,GAAG,GAAG,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,YAAY,KAAK,GAAG,UAAU,EAAE,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;QACzB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,SAAS;IACT,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,0BAA0B;QAC1B,8BAA8B;QAC9B,IAAI,CAAC,QAAQ,IAAI,OAAQ,KAAa,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC7D,8BAA8B;YAC9B,MAAM,SAAS,GAAa,KAAa,CAAC,MAAM,EAAE,CAAC;YACnD,OAAO,SAAS,CAAC;gBACf,KAAK,EAAE,SAAS;gBAChB,YAAY;gBACZ,IAAI;gBACJ,GAAG;gBACH,OAAO;gBACP,QAAQ,EAAE,IAAI;gBACd,UAAU;aACX,CAAC,CAAC;QACL,CAAC;QAED,gFAAgF;QAChF,MAAM,UAAU,GAAwB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAE9D,2CAA2C;QAC3C,MAAM,cAAc,GAAwB,UAAU,CAAC,MAAM,CAC3D,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,CAChC,CAAC;QACF,MAAM,kBAAkB,GAAgB,IAAI,GAAG,CAC7C,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CACvE,CAAC;QAEF,6EAA6E;QAC7E,MAAM,WAAW,GAAa,oBAAoB,CAChD,IAAI,EACJ,KAAK,EACL,YAAY,CACb,CAAC;QAEF,gFAAgF;QAChF,MAAM,uBAAuB,GAAa,KAAK,CAAC,IAAI,CAClD,kBAAkB,CACnB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;YACf,MAAM,QAAQ,GAAG,mCAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAC7C,CAAC,CAAC,GAAG,IAAI,IAAI,GAAG,EAAE;gBAClB,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;YACtC,OAAO,kBAAkB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAa;YACxB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC;YACrC,GAAG,uBAAuB;YAC1B,GAAG,WAAW;SACf,CAAC;QAEF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,GAAG,MAAM,KAAK,YAAY,EAAE,CAAC;QACtC,CAAC;QAED,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,YAAY,EAAE,CAAC,CAAC;QAExC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACpC,MAAM,QAAQ,GAAW,mCAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACrD,CAAC,CAAC,GAAG,IAAI,IAAI,GAAG,EAAE;gBAClB,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;YACtC,MAAM,UAAU,GAAW,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YAEhD,wEAAwE;YACxE,MAAM,GAAG,GACP,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,uBAAuB,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAChE,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,8BAA8B;oBAC7B,KAAa,CAAC,GAAG,CAAC,CAAC;YAE1B,wEAAwE;YACxE,IACE,GAAG,KAAK,SAAS;gBACjB,GAAG,KAAK,IAAI;gBACZ,OAAO,GAAG,KAAK,SAAS;gBACxB,OAAO,GAAG,KAAK,QAAQ;gBACvB,OAAO,GAAG,KAAK,QAAQ,EACvB,CAAC;gBACD,MAAM,gBAAgB,GAAW,eAAe,CAC9C,QAAQ,EACR,YAAY,EACZ,UAAU,CACX,CAAC;gBACF,MAAM,MAAM,GAAW,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBAC3C,MAAM,QAAQ,GACZ,GAAG,KAAK,SAAS;oBACf,CAAC,CAAC,GAAG,UAAU,GAAG,MAAM,aAAa;oBACrC,CAAC,CAAC,GAAG,UAAU,GAAG,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvD,MAAM,SAAS,GACb,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACvD,MAAM,IAAI,GAAW,SAAS,GAAG,gBAAgB,CAAC;gBAClD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;YACD,2CAA2C;iBACtC,CAAC;gBACJ,MAAM,OAAO,GAAW,GAAG,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;gBAChE,IAAI,MAAM,GAAW,SAAS,CAAC;oBAC7B,KAAK,EAAE,GAAG;oBACV,YAAY;oBACZ,IAAI,EAAE,QAAQ;oBACd,GAAG,EAAE,GAAG,GAAG,CAAC;oBACZ,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,KAAK;oBACf,UAAU;iBACX,CAAC,CAAC;gBACH,MAAM,mBAAmB,GAAW,MAAM,CAAC,SAAS,EAAE,CAAC;gBACvD,8DAA8D;gBAC9D,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7B,MAAM,GAAG,wBAAwB,CAAC,mBAAmB,CAAC,CAAC;gBACzD,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,mBAAmB,CAAC;gBAC/B,CAAC;gBACD,MAAM,QAAQ,GAAW,OAAO,GAAG,MAAM,CAAC;gBAC1C,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;QACzB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,mEAAmE;IACnE,MAAM,MAAM,GACV,KAAK,KAAK,SAAS;QACjB,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,CAAC,MAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,mCAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,EAAE,CAAC;AAC7C,CAAC;AAED,gEAAgE;AAChE,SAAS,wBAAwB,CAAC,GAAW;IAC3C,MAAM,KAAK,GAAa,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAW,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;IAClD,kFAAkF;IAClF,MAAM,YAAY,GAAW,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,KAAK,CACzC,CAAC,EACD,YAAY,CACb,IAAI,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;IACjC,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,yCAAyC;AACzC,SAAS,eAAe,CACtB,IAAY,EACZ,YAA+C,EAC/C,UAAmC;IAEnC,MAAM,UAAU,GAAqC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5E,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,4BAA4B;IAC5B,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7C,OAAO,SAAS,IAAI,CAAC,SAAS,CAC5B,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,WAAW,EAAE,CAAC,CAAC,WAAW;KAC3B,CAAC,CAAC,CACJ,EAAE,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,SAAS,4BAA4B,CACnC,IAAY,EACZ,YAA+C,EAC/C,UAAmC;;IAEnC,MAAM,YAAY,GAAG,GAAG,IAAI,IAAI,CAAC;IACjC,MAAM,aAAa,GACjB,MAAA,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,mCAAI,EAAE,CAAC;IAEvC,4BAA4B;IAC5B,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,kEAAkE;AAClE,SAAS,kBAAkB,CACzB,UAAkB,EAClB,YAA+C;IAE/C,KAAK,MAAM,SAAS,IAAI,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5C,IAAI,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAC3B,IAAY,EACZ,KAAa,EACb,YAA+C;IAE/C,MAAM,WAAW,GAAgB,IAAI,GAAG,EAAE,CAAC;IAE3C,KAAK,MAAM,SAAS,IAAI,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5C,wDAAwD;QACxD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACxD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,sDAAsD;YACtD,IAAI,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,EAAE,CAAC;gBACzB,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,qBAAqB,CAC5B,UAAkB,EAClB,SAAiB;IAEjB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAElD,0EAA0E;IAC1E,yEAAyE;IACzE,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAChD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,QAAQ,CAAC,CAAC,CAAE,CAAC;IACtB,CAAC;IAED,wEAAwE;IACxE,mCAAmC;IACnC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtE,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAE,CAAC,CAAC;YAC5C,uDAAuD;YACvD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAAC,WAAM,CAAC;YACP,uBAAuB;QACzB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/lib/utils/{stringifyValidationFailure.mjs → internal/stringifyValidationFailure.mjs}
RENAMED
|
@@ -1,34 +1,20 @@
|
|
|
1
|
-
import { NamingConvention } from '
|
|
2
|
-
import { dedent } from '
|
|
1
|
+
import { NamingConvention } from '../NamingConvention.mjs';
|
|
2
|
+
import { dedent } from '../dedent.mjs';
|
|
3
3
|
|
|
4
|
-
/**
|
|
5
|
-
* Format validation failure for LLM auto-correction feedback.
|
|
6
|
-
*
|
|
7
|
-
* When LLM generates invalid function call arguments, this produces annotated
|
|
8
|
-
* JSON with inline `// ❌` error comments at each invalid property. The output
|
|
9
|
-
* is wrapped in a markdown code block so that LLM can understand and correct
|
|
10
|
-
* its mistakes in the next turn.
|
|
11
|
-
*
|
|
12
|
-
* Below is an example of the output format:
|
|
13
|
-
*
|
|
14
|
-
* ```json
|
|
15
|
-
* {
|
|
16
|
-
* "name": "John",
|
|
17
|
-
* "age": "twenty", // ❌ [{"path":"$input.age","expected":"number & Type<\"uint32\">"}]
|
|
18
|
-
* "email": "not-an-email", // ❌ [{"path":"$input.email","expected":"string & Format<\"email\">"}]
|
|
19
|
-
* "hobbies": "reading" // ❌ [{"path":"$input.hobbies","expected":"Array<string>"}]
|
|
20
|
-
* }
|
|
21
|
-
* ```
|
|
22
|
-
*
|
|
23
|
-
* @author Jeongho Nam - https://github.com/samchon
|
|
24
|
-
* @param failure Validation failure from {@link ILlmFunction.validate}
|
|
25
|
-
* @returns Markdown code block with error-annotated JSON
|
|
26
|
-
*/
|
|
27
4
|
function stringifyValidationFailure(failure) {
|
|
28
5
|
const usedErrors = new Set();
|
|
6
|
+
// Pre-index errors by path for O(1) lookup
|
|
7
|
+
const errorsByPath = new Map();
|
|
8
|
+
for (const e of failure.errors) {
|
|
9
|
+
const arr = errorsByPath.get(e.path);
|
|
10
|
+
if (arr !== undefined)
|
|
11
|
+
arr.push(e);
|
|
12
|
+
else
|
|
13
|
+
errorsByPath.set(e.path, [e]);
|
|
14
|
+
}
|
|
29
15
|
const jsonOutput = stringify({
|
|
30
16
|
value: failure.data,
|
|
31
|
-
|
|
17
|
+
errorsByPath,
|
|
32
18
|
path: "$input",
|
|
33
19
|
tab: 0,
|
|
34
20
|
inArray: false,
|
|
@@ -56,9 +42,9 @@ function stringifyValidationFailure(failure) {
|
|
|
56
42
|
`;
|
|
57
43
|
}
|
|
58
44
|
function stringify(props) {
|
|
59
|
-
const { value,
|
|
45
|
+
const { value, errorsByPath, path, tab, inArray, inToJson, usedErrors } = props;
|
|
60
46
|
const indent = " ".repeat(tab);
|
|
61
|
-
const errorComment = getErrorComment(path,
|
|
47
|
+
const errorComment = getErrorComment(path, errorsByPath, usedErrors);
|
|
62
48
|
// Handle undefined in arrays
|
|
63
49
|
if (inArray && value === undefined) {
|
|
64
50
|
return `${indent}undefined${errorComment}`;
|
|
@@ -66,7 +52,7 @@ function stringify(props) {
|
|
|
66
52
|
// Array
|
|
67
53
|
if (Array.isArray(value)) {
|
|
68
54
|
// Check for missing array element errors (path[])
|
|
69
|
-
const missingElementErrors = getMissingArrayElementErrors(path,
|
|
55
|
+
const missingElementErrors = getMissingArrayElementErrors(path, errorsByPath, usedErrors);
|
|
70
56
|
const hasMissingElements = missingElementErrors.length > 0;
|
|
71
57
|
if (value.length === 0) {
|
|
72
58
|
// Empty array but has missing element errors - show placeholders
|
|
@@ -93,7 +79,7 @@ function stringify(props) {
|
|
|
93
79
|
const needsComma = !isLastElement || hasMissingElements;
|
|
94
80
|
let itemStr = stringify({
|
|
95
81
|
value: item,
|
|
96
|
-
|
|
82
|
+
errorsByPath,
|
|
97
83
|
path: itemPath,
|
|
98
84
|
tab: tab + 1,
|
|
99
85
|
inArray: true,
|
|
@@ -102,16 +88,7 @@ function stringify(props) {
|
|
|
102
88
|
});
|
|
103
89
|
// Add comma before the error comment if not the last element
|
|
104
90
|
if (needsComma) {
|
|
105
|
-
|
|
106
|
-
const lastLine = itemLines[itemLines.length - 1];
|
|
107
|
-
const commentIndex = lastLine.indexOf(" //");
|
|
108
|
-
if (commentIndex !== -1) {
|
|
109
|
-
itemLines[itemLines.length - 1] = `${lastLine.slice(0, commentIndex)},${lastLine.slice(commentIndex)}`;
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
itemLines[itemLines.length - 1] += ",";
|
|
113
|
-
}
|
|
114
|
-
itemStr = itemLines.join("\n");
|
|
91
|
+
itemStr = insertCommaBeforeComment(itemStr);
|
|
115
92
|
}
|
|
116
93
|
lines.push(itemStr);
|
|
117
94
|
});
|
|
@@ -136,7 +113,7 @@ function stringify(props) {
|
|
|
136
113
|
const jsonValue = value.toJSON();
|
|
137
114
|
return stringify({
|
|
138
115
|
value: jsonValue,
|
|
139
|
-
|
|
116
|
+
errorsByPath,
|
|
140
117
|
path,
|
|
141
118
|
tab,
|
|
142
119
|
inArray,
|
|
@@ -150,13 +127,13 @@ function stringify(props) {
|
|
|
150
127
|
const definedEntries = allEntries.filter(([_, val]) => val !== undefined);
|
|
151
128
|
const undefinedEntryKeys = new Set(allEntries.filter(([_, val]) => val === undefined).map(([key]) => key));
|
|
152
129
|
// Find missing properties that have validation errors (not in object at all)
|
|
153
|
-
const missingKeys = getMissingProperties(path, value,
|
|
130
|
+
const missingKeys = getMissingProperties(path, value, errorsByPath);
|
|
154
131
|
// Combine: defined entries + undefined entries with errors + missing properties
|
|
155
132
|
const undefinedKeysWithErrors = Array.from(undefinedEntryKeys).filter((key) => {
|
|
156
133
|
const propPath = NamingConvention.variable(key)
|
|
157
134
|
? `${path}.${key}`
|
|
158
135
|
: `${path}[${JSON.stringify(key)}]`;
|
|
159
|
-
return
|
|
136
|
+
return hasErrorsAtOrUnder(propPath, errorsByPath);
|
|
160
137
|
});
|
|
161
138
|
const allKeys = [
|
|
162
139
|
...definedEntries.map(([key]) => key),
|
|
@@ -184,7 +161,7 @@ function stringify(props) {
|
|
|
184
161
|
typeof val === "boolean" ||
|
|
185
162
|
typeof val === "number" ||
|
|
186
163
|
typeof val === "string") {
|
|
187
|
-
const propErrorComment = getErrorComment(propPath,
|
|
164
|
+
const propErrorComment = getErrorComment(propPath, errorsByPath, usedErrors);
|
|
188
165
|
const keyStr = JSON.stringify(key);
|
|
189
166
|
const valueStr = val === undefined
|
|
190
167
|
? `${propIndent}${keyStr}: undefined`
|
|
@@ -198,7 +175,7 @@ function stringify(props) {
|
|
|
198
175
|
const keyLine = `${propIndent}${JSON.stringify(key)}: `;
|
|
199
176
|
let valStr = stringify({
|
|
200
177
|
value: val,
|
|
201
|
-
|
|
178
|
+
errorsByPath,
|
|
202
179
|
path: propPath,
|
|
203
180
|
tab: tab + 1,
|
|
204
181
|
inArray: false,
|
|
@@ -208,16 +185,7 @@ function stringify(props) {
|
|
|
208
185
|
const valStrWithoutIndent = valStr.trimStart();
|
|
209
186
|
// Add comma before the error comment if not the last property
|
|
210
187
|
if (index < array.length - 1) {
|
|
211
|
-
|
|
212
|
-
const lastLine = valLines[valLines.length - 1];
|
|
213
|
-
const commentIndex = lastLine.indexOf(" //");
|
|
214
|
-
if (commentIndex !== -1) {
|
|
215
|
-
valLines[valLines.length - 1] = `${lastLine.slice(0, commentIndex)},${lastLine.slice(commentIndex)}`;
|
|
216
|
-
}
|
|
217
|
-
else {
|
|
218
|
-
valLines[valLines.length - 1] += ",";
|
|
219
|
-
}
|
|
220
|
-
valStr = valLines.join("\n");
|
|
188
|
+
valStr = insertCommaBeforeComment(valStrWithoutIndent);
|
|
221
189
|
}
|
|
222
190
|
else {
|
|
223
191
|
valStr = valStrWithoutIndent;
|
|
@@ -235,10 +203,24 @@ function stringify(props) {
|
|
|
235
203
|
: (JSON.stringify(value) ?? String(value));
|
|
236
204
|
return `${indent}${valStr}${errorComment}`;
|
|
237
205
|
}
|
|
206
|
+
/** Insert comma before inline error comment on the last line */
|
|
207
|
+
function insertCommaBeforeComment(str) {
|
|
208
|
+
const lines = str.split("\n");
|
|
209
|
+
const lastLine = lines[lines.length - 1];
|
|
210
|
+
// Use specific error marker to avoid false positives with values containing " //"
|
|
211
|
+
const commentIndex = lastLine.indexOf(" // ❌");
|
|
212
|
+
if (commentIndex !== -1) {
|
|
213
|
+
lines[lines.length - 1] = `${lastLine.slice(0, commentIndex)},${lastLine.slice(commentIndex)}`;
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
lines[lines.length - 1] += ",";
|
|
217
|
+
}
|
|
218
|
+
return lines.join("\n");
|
|
219
|
+
}
|
|
238
220
|
/** Get error comment for a given path */
|
|
239
|
-
function getErrorComment(path,
|
|
240
|
-
const pathErrors =
|
|
241
|
-
if (pathErrors.length === 0) {
|
|
221
|
+
function getErrorComment(path, errorsByPath, usedErrors) {
|
|
222
|
+
const pathErrors = errorsByPath.get(path);
|
|
223
|
+
if (pathErrors === undefined || pathErrors.length === 0) {
|
|
242
224
|
return "";
|
|
243
225
|
}
|
|
244
226
|
// Mark these errors as used
|
|
@@ -253,22 +235,31 @@ function getErrorComment(path, errors, usedErrors) {
|
|
|
253
235
|
* Check if there are missing array element errors (path ending with []) Returns
|
|
254
236
|
* an array of error objects, one per missing element
|
|
255
237
|
*/
|
|
256
|
-
function getMissingArrayElementErrors(path,
|
|
238
|
+
function getMissingArrayElementErrors(path, errorsByPath, usedErrors) {
|
|
257
239
|
const wildcardPath = `${path}[]`;
|
|
258
|
-
const missingErrors =
|
|
240
|
+
const missingErrors = errorsByPath.get(wildcardPath) ?? [];
|
|
259
241
|
// Mark these errors as used
|
|
260
242
|
missingErrors.forEach((e) => usedErrors.add(e));
|
|
261
243
|
return missingErrors;
|
|
262
244
|
}
|
|
245
|
+
/** Check if any errors exist at or under the given path prefix */
|
|
246
|
+
function hasErrorsAtOrUnder(pathPrefix, errorsByPath) {
|
|
247
|
+
for (const errorPath of errorsByPath.keys()) {
|
|
248
|
+
if (errorPath.startsWith(pathPrefix)) {
|
|
249
|
+
return true;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
return false;
|
|
253
|
+
}
|
|
263
254
|
/**
|
|
264
255
|
* Find missing properties that have validation errors but don't exist in the
|
|
265
256
|
* data Returns array of property keys that should be displayed as undefined
|
|
266
257
|
*/
|
|
267
|
-
function getMissingProperties(path, value,
|
|
258
|
+
function getMissingProperties(path, value, errorsByPath) {
|
|
268
259
|
const missingKeys = new Set();
|
|
269
|
-
for (const
|
|
260
|
+
for (const errorPath of errorsByPath.keys()) {
|
|
270
261
|
// Check if error.path is a direct child of current path
|
|
271
|
-
const childKey = extractDirectChildKey(path,
|
|
262
|
+
const childKey = extractDirectChildKey(path, errorPath);
|
|
272
263
|
if (childKey !== null) {
|
|
273
264
|
// Check if this property actually exists in the value
|
|
274
265
|
if (!(childKey in value)) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stringifyValidationFailure.mjs","sources":["../../../src/utils/internal/stringifyValidationFailure.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
+
import '../../utils/ArrayUtil.mjs';
|
|
2
|
+
import '../../utils/LlmJson.mjs';
|
|
3
|
+
import { MapUtil } from '../../utils/MapUtil.mjs';
|
|
4
|
+
import '../../utils/NamingConvention.mjs';
|
|
5
|
+
import '../../utils/StringUtil.mjs';
|
|
1
6
|
import { OpenApiTypeChecker } from '../OpenApiTypeChecker.mjs';
|
|
2
7
|
import { OpenApiStationValidator } from './OpenApiStationValidator.mjs';
|
|
3
|
-
import { MapUtil } from '../../utils/MapUtil.mjs';
|
|
4
8
|
|
|
5
9
|
var OpenApiOneOfValidator;
|
|
6
10
|
(function (OpenApiOneOfValidator) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenApiOneOfValidator.mjs","sources":["../../../src/validators/internal/OpenApiOneOfValidator.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OpenApiOneOfValidator.mjs","sources":["../../../src/validators/internal/OpenApiOneOfValidator.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typia/utils",
|
|
3
|
-
"version": "12.0.0-dev.
|
|
3
|
+
"version": "12.0.0-dev.20260307",
|
|
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.
|
|
25
|
+
"@typia/interface": "^12.0.0-dev.20260307"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@rollup/plugin-commonjs": "^29.0.0",
|