@ai-sdk-tool/parser 3.2.0 → 3.3.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.
- package/README.md +24 -116
- package/dist/{chunk-PIUBQRFC.js → chunk-3QJVNEHE.js} +369 -59
- package/dist/chunk-3QJVNEHE.js.map +1 -0
- package/dist/chunk-DZB6Y354.js +240 -0
- package/dist/chunk-DZB6Y354.js.map +1 -0
- package/dist/chunk-IX4FJELL.js +671 -0
- package/dist/chunk-IX4FJELL.js.map +1 -0
- package/dist/chunk-TR2ARLIF.js +2216 -0
- package/dist/chunk-TR2ARLIF.js.map +1 -0
- package/dist/community.cjs +3547 -223
- package/dist/community.cjs.map +1 -1
- package/dist/community.js +4 -1
- package/dist/community.js.map +1 -1
- package/dist/index.cjs +3584 -175
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +11 -1
- package/dist/rjson.cjs +697 -0
- package/dist/rjson.cjs.map +1 -0
- package/dist/rjson.d.cts +108 -0
- package/dist/rjson.d.ts +108 -0
- package/dist/rjson.js +11 -0
- package/dist/rjson.js.map +1 -0
- package/dist/rxml.cjs +2471 -0
- package/dist/rxml.cjs.map +1 -0
- package/dist/rxml.d.cts +90 -0
- package/dist/rxml.d.ts +90 -0
- package/dist/rxml.js +10 -0
- package/dist/rxml.js.map +1 -0
- package/dist/schema-coerce.cjs +266 -0
- package/dist/schema-coerce.cjs.map +1 -0
- package/dist/schema-coerce.d.cts +5 -0
- package/dist/schema-coerce.d.ts +5 -0
- package/dist/schema-coerce.js +11 -0
- package/dist/schema-coerce.js.map +1 -0
- package/package.json +46 -14
- package/dist/chunk-PIUBQRFC.js.map +0 -1
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
// src/schema-coerce/index.ts
|
|
2
|
+
var NUMERIC_REGEX = /^-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?$/;
|
|
3
|
+
var EMPTY_OBJECT_REGEX = /^\{\s*\}$/s;
|
|
4
|
+
var NEWLINE_SPLIT_REGEX = /\n+/;
|
|
5
|
+
var COMMA_SPLIT_REGEX = /,\s*/;
|
|
6
|
+
var DIGIT_KEY_REGEX = /^\d+$/;
|
|
7
|
+
function unwrapJsonSchema(schema) {
|
|
8
|
+
if (!schema || typeof schema !== "object") {
|
|
9
|
+
return schema;
|
|
10
|
+
}
|
|
11
|
+
const s = schema;
|
|
12
|
+
if (s.jsonSchema && typeof s.jsonSchema === "object") {
|
|
13
|
+
return unwrapJsonSchema(s.jsonSchema);
|
|
14
|
+
}
|
|
15
|
+
return schema;
|
|
16
|
+
}
|
|
17
|
+
function getSchemaType(schema) {
|
|
18
|
+
const unwrapped = unwrapJsonSchema(schema);
|
|
19
|
+
if (!unwrapped || typeof unwrapped !== "object") {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const t = unwrapped.type;
|
|
23
|
+
if (typeof t === "string") {
|
|
24
|
+
return t;
|
|
25
|
+
}
|
|
26
|
+
if (Array.isArray(t)) {
|
|
27
|
+
const preferred = [
|
|
28
|
+
"object",
|
|
29
|
+
"array",
|
|
30
|
+
"boolean",
|
|
31
|
+
"number",
|
|
32
|
+
"integer",
|
|
33
|
+
"string"
|
|
34
|
+
];
|
|
35
|
+
for (const p of preferred) {
|
|
36
|
+
if (t.includes(p)) {
|
|
37
|
+
return p;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
const s = unwrapped;
|
|
42
|
+
if (s && typeof s === "object" && (s.properties || s.additionalProperties)) {
|
|
43
|
+
return "object";
|
|
44
|
+
}
|
|
45
|
+
if (s && typeof s === "object" && (s.items || s.prefixItems)) {
|
|
46
|
+
return "array";
|
|
47
|
+
}
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
function coerceStringWithoutSchema(value) {
|
|
51
|
+
const s = value.trim();
|
|
52
|
+
const lower = s.toLowerCase();
|
|
53
|
+
if (lower === "true") {
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
if (lower === "false") {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
if (NUMERIC_REGEX.test(s)) {
|
|
60
|
+
const num = Number(s);
|
|
61
|
+
if (Number.isFinite(num)) {
|
|
62
|
+
return num;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (s.startsWith("{") && s.endsWith("}") || s.startsWith("[") && s.endsWith("]")) {
|
|
66
|
+
try {
|
|
67
|
+
const parsed = JSON.parse(s);
|
|
68
|
+
return coerceBySchema(parsed, void 0);
|
|
69
|
+
} catch (e) {
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return value;
|
|
73
|
+
}
|
|
74
|
+
function coerceStringToObject(s, unwrapped) {
|
|
75
|
+
try {
|
|
76
|
+
let normalized = s.replace(/'/g, '"');
|
|
77
|
+
normalized = normalized.replace(EMPTY_OBJECT_REGEX, "{}");
|
|
78
|
+
const obj = JSON.parse(normalized);
|
|
79
|
+
if (obj && typeof obj === "object" && !Array.isArray(obj)) {
|
|
80
|
+
const props = unwrapped.properties;
|
|
81
|
+
const out = {};
|
|
82
|
+
for (const [k, v] of Object.entries(obj)) {
|
|
83
|
+
const propSchema = props ? props[k] : void 0;
|
|
84
|
+
out[k] = typeof propSchema === "boolean" ? v : coerceBySchema(v, propSchema);
|
|
85
|
+
}
|
|
86
|
+
return out;
|
|
87
|
+
}
|
|
88
|
+
} catch (e) {
|
|
89
|
+
}
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
function coerceStringToArray(s, unwrapped) {
|
|
93
|
+
const prefixItems = Array.isArray(unwrapped.prefixItems) ? unwrapped.prefixItems : void 0;
|
|
94
|
+
const itemsSchema = unwrapped.items;
|
|
95
|
+
try {
|
|
96
|
+
const normalized = s.replace(/'/g, '"');
|
|
97
|
+
const arr = JSON.parse(normalized);
|
|
98
|
+
if (Array.isArray(arr)) {
|
|
99
|
+
if (prefixItems && arr.length === prefixItems.length) {
|
|
100
|
+
return arr.map((v, i) => coerceBySchema(v, prefixItems[i]));
|
|
101
|
+
}
|
|
102
|
+
return arr.map((v) => coerceBySchema(v, itemsSchema));
|
|
103
|
+
}
|
|
104
|
+
} catch (e) {
|
|
105
|
+
const csv = s.includes("\n") ? s.split(NEWLINE_SPLIT_REGEX) : s.split(COMMA_SPLIT_REGEX);
|
|
106
|
+
const trimmed = csv.map((x) => x.trim()).filter((x) => x.length > 0);
|
|
107
|
+
if (prefixItems && trimmed.length === prefixItems.length) {
|
|
108
|
+
return trimmed.map((x, i) => coerceBySchema(x, prefixItems[i]));
|
|
109
|
+
}
|
|
110
|
+
return trimmed.map((x) => coerceBySchema(x, itemsSchema));
|
|
111
|
+
}
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
function coerceObjectToObject(value, unwrapped) {
|
|
115
|
+
const out = {};
|
|
116
|
+
const props = unwrapped.properties;
|
|
117
|
+
for (const [k, v] of Object.entries(value)) {
|
|
118
|
+
const propSchema = props ? props[k] : void 0;
|
|
119
|
+
out[k] = typeof propSchema === "boolean" ? v : coerceBySchema(v, propSchema);
|
|
120
|
+
}
|
|
121
|
+
return out;
|
|
122
|
+
}
|
|
123
|
+
function coerceArrayToArray(value, prefixItems, itemsSchema) {
|
|
124
|
+
if (prefixItems && value.length === prefixItems.length) {
|
|
125
|
+
return value.map((v, i) => coerceBySchema(v, prefixItems[i]));
|
|
126
|
+
}
|
|
127
|
+
return value.map((v) => coerceBySchema(v, itemsSchema));
|
|
128
|
+
}
|
|
129
|
+
function coerceObjectToArray(maybe, prefixItems, itemsSchema) {
|
|
130
|
+
if (Object.hasOwn(maybe, "item")) {
|
|
131
|
+
const items = maybe.item;
|
|
132
|
+
const arr = Array.isArray(items) ? items : [items];
|
|
133
|
+
return coerceArrayToArray(arr, prefixItems, itemsSchema);
|
|
134
|
+
}
|
|
135
|
+
const keys = Object.keys(maybe);
|
|
136
|
+
if (keys.length === 1) {
|
|
137
|
+
const singleValue = maybe[keys[0]];
|
|
138
|
+
if (Array.isArray(singleValue)) {
|
|
139
|
+
return singleValue.map((v) => coerceBySchema(v, itemsSchema));
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
if (keys.length > 0 && keys.every((k) => DIGIT_KEY_REGEX.test(k))) {
|
|
143
|
+
const arr = keys.sort((a, b) => Number(a) - Number(b)).map((k) => maybe[k]);
|
|
144
|
+
return coerceArrayToArray(arr, prefixItems, itemsSchema);
|
|
145
|
+
}
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
function coercePrimitiveToArray(value, prefixItems, itemsSchema) {
|
|
149
|
+
if (prefixItems && prefixItems.length > 0) {
|
|
150
|
+
return [coerceBySchema(value, prefixItems[0])];
|
|
151
|
+
}
|
|
152
|
+
return [coerceBySchema(value, itemsSchema)];
|
|
153
|
+
}
|
|
154
|
+
function coerceStringToPrimitive(s, schemaType) {
|
|
155
|
+
if (schemaType === "boolean") {
|
|
156
|
+
const lower = s.toLowerCase();
|
|
157
|
+
if (lower === "true") {
|
|
158
|
+
return true;
|
|
159
|
+
}
|
|
160
|
+
if (lower === "false") {
|
|
161
|
+
return false;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
if ((schemaType === "number" || schemaType === "integer") && NUMERIC_REGEX.test(s)) {
|
|
165
|
+
const num = Number(s);
|
|
166
|
+
if (Number.isFinite(num)) {
|
|
167
|
+
return num;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
return null;
|
|
171
|
+
}
|
|
172
|
+
function coerceStringValue(value, schemaType, u) {
|
|
173
|
+
const s = value.trim();
|
|
174
|
+
if (schemaType === "object") {
|
|
175
|
+
const result = coerceStringToObject(s, u);
|
|
176
|
+
if (result !== null) {
|
|
177
|
+
return result;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
if (schemaType === "array") {
|
|
181
|
+
const result = coerceStringToArray(s, u);
|
|
182
|
+
if (result !== null) {
|
|
183
|
+
return result;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
const primitiveResult = coerceStringToPrimitive(s, schemaType);
|
|
187
|
+
if (primitiveResult !== null) {
|
|
188
|
+
return primitiveResult;
|
|
189
|
+
}
|
|
190
|
+
return value;
|
|
191
|
+
}
|
|
192
|
+
function coerceArrayValue(value, prefixItems, itemsSchema) {
|
|
193
|
+
if (Array.isArray(value)) {
|
|
194
|
+
return coerceArrayToArray(value, prefixItems, itemsSchema);
|
|
195
|
+
}
|
|
196
|
+
if (value && typeof value === "object") {
|
|
197
|
+
const result = coerceObjectToArray(
|
|
198
|
+
value,
|
|
199
|
+
prefixItems,
|
|
200
|
+
itemsSchema
|
|
201
|
+
);
|
|
202
|
+
if (result !== null) {
|
|
203
|
+
return result;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
if (value == null || typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
|
|
207
|
+
return coercePrimitiveToArray(value, prefixItems, itemsSchema);
|
|
208
|
+
}
|
|
209
|
+
return value;
|
|
210
|
+
}
|
|
211
|
+
function coerceBySchema(value, schema) {
|
|
212
|
+
const unwrapped = unwrapJsonSchema(schema);
|
|
213
|
+
if (!unwrapped || typeof unwrapped !== "object") {
|
|
214
|
+
if (typeof value === "string") {
|
|
215
|
+
return coerceStringWithoutSchema(value);
|
|
216
|
+
}
|
|
217
|
+
return value;
|
|
218
|
+
}
|
|
219
|
+
const schemaType = getSchemaType(unwrapped);
|
|
220
|
+
const u = unwrapped;
|
|
221
|
+
if (typeof value === "string") {
|
|
222
|
+
return coerceStringValue(value, schemaType, u);
|
|
223
|
+
}
|
|
224
|
+
if (schemaType === "object" && value && typeof value === "object" && !Array.isArray(value)) {
|
|
225
|
+
return coerceObjectToObject(value, u);
|
|
226
|
+
}
|
|
227
|
+
if (schemaType === "array") {
|
|
228
|
+
const prefixItems = Array.isArray(u.prefixItems) ? u.prefixItems : void 0;
|
|
229
|
+
const itemsSchema = u.items;
|
|
230
|
+
return coerceArrayValue(value, prefixItems, itemsSchema);
|
|
231
|
+
}
|
|
232
|
+
return value;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
export {
|
|
236
|
+
unwrapJsonSchema,
|
|
237
|
+
getSchemaType,
|
|
238
|
+
coerceBySchema
|
|
239
|
+
};
|
|
240
|
+
//# sourceMappingURL=chunk-DZB6Y354.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/schema-coerce/index.ts"],"sourcesContent":["// Regex constants for performance\nconst NUMERIC_REGEX = /^-?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$/;\nconst EMPTY_OBJECT_REGEX = /^\\{\\s*\\}$/s;\nconst NEWLINE_SPLIT_REGEX = /\\n+/;\nconst COMMA_SPLIT_REGEX = /,\\s*/;\nconst DIGIT_KEY_REGEX = /^\\d+$/;\n\nexport function unwrapJsonSchema(schema: unknown): unknown {\n if (!schema || typeof schema !== \"object\") {\n return schema;\n }\n const s = schema as Record<string, unknown>;\n if (s.jsonSchema && typeof s.jsonSchema === \"object\") {\n return unwrapJsonSchema(s.jsonSchema);\n }\n return schema;\n}\n\nexport function getSchemaType(schema: unknown): string | undefined {\n const unwrapped = unwrapJsonSchema(schema);\n if (!unwrapped || typeof unwrapped !== \"object\") {\n return;\n }\n const t: unknown = (unwrapped as Record<string, unknown>).type;\n if (typeof t === \"string\") {\n return t;\n }\n if (Array.isArray(t)) {\n const preferred = [\n \"object\",\n \"array\",\n \"boolean\",\n \"number\",\n \"integer\",\n \"string\",\n ];\n for (const p of preferred) {\n if (t.includes(p)) {\n return p;\n }\n }\n }\n const s = unwrapped as Record<string, unknown>;\n if (s && typeof s === \"object\" && (s.properties || s.additionalProperties)) {\n return \"object\";\n }\n if (\n s &&\n typeof s === \"object\" &&\n (s.items || (s as Record<string, unknown>).prefixItems)\n ) {\n return \"array\";\n }\n return;\n}\n\n/**\n * Coerce string value without schema information\n */\nfunction coerceStringWithoutSchema(value: string): unknown {\n const s = value.trim();\n const lower = s.toLowerCase();\n if (lower === \"true\") {\n return true;\n }\n if (lower === \"false\") {\n return false;\n }\n if (NUMERIC_REGEX.test(s)) {\n const num = Number(s);\n if (Number.isFinite(num)) {\n return num;\n }\n }\n\n // Fallback: try parsing JSON-like strings when no schema info\n if (\n (s.startsWith(\"{\") && s.endsWith(\"}\")) ||\n (s.startsWith(\"[\") && s.endsWith(\"]\"))\n ) {\n try {\n const parsed = JSON.parse(s);\n return coerceBySchema(parsed, undefined);\n } catch {\n // If parsing fails, return original value\n }\n }\n return value;\n}\n\n/**\n * Coerce string to object using schema\n */\nfunction coerceStringToObject(\n s: string,\n unwrapped: Record<string, unknown>\n): unknown {\n try {\n let normalized = s.replace(/'/g, '\"');\n normalized = normalized.replace(EMPTY_OBJECT_REGEX, \"{}\");\n\n const obj = JSON.parse(normalized);\n if (obj && typeof obj === \"object\" && !Array.isArray(obj)) {\n const props = unwrapped.properties as Record<string, unknown> | undefined;\n const out: Record<string, unknown> = {};\n for (const [k, v] of Object.entries(obj as Record<string, unknown>)) {\n const propSchema = props ? (props[k] as unknown) : undefined;\n out[k] =\n typeof propSchema === \"boolean\" ? v : coerceBySchema(v, propSchema);\n }\n return out;\n }\n } catch {\n // fallthrough\n }\n return null;\n}\n\n/**\n * Coerce string to array using schema\n */\nfunction coerceStringToArray(\n s: string,\n unwrapped: Record<string, unknown>\n): unknown {\n const prefixItems = Array.isArray(unwrapped.prefixItems)\n ? (unwrapped.prefixItems as unknown[])\n : undefined;\n const itemsSchema = unwrapped.items as unknown;\n\n try {\n const normalized = s.replace(/'/g, '\"');\n const arr = JSON.parse(normalized);\n if (Array.isArray(arr)) {\n if (prefixItems && arr.length === prefixItems.length) {\n return arr.map((v, i) => coerceBySchema(v, prefixItems[i]));\n }\n return arr.map((v) => coerceBySchema(v, itemsSchema));\n }\n } catch {\n const csv = s.includes(\"\\n\")\n ? s.split(NEWLINE_SPLIT_REGEX)\n : s.split(COMMA_SPLIT_REGEX);\n const trimmed = csv.map((x) => x.trim()).filter((x) => x.length > 0);\n if (prefixItems && trimmed.length === prefixItems.length) {\n return trimmed.map((x, i) => coerceBySchema(x, prefixItems[i]));\n }\n return trimmed.map((x) => coerceBySchema(x, itemsSchema));\n }\n return null;\n}\n\n/**\n * Coerce object to object using schema\n */\nfunction coerceObjectToObject(\n value: Record<string, unknown>,\n unwrapped: Record<string, unknown>\n): Record<string, unknown> {\n const out: Record<string, unknown> = {};\n const props = unwrapped.properties as Record<string, unknown> | undefined;\n for (const [k, v] of Object.entries(value)) {\n const propSchema = props ? (props[k] as unknown) : undefined;\n out[k] =\n typeof propSchema === \"boolean\" ? v : coerceBySchema(v, propSchema);\n }\n return out;\n}\n\n/**\n * Coerce array to array using schema\n */\nfunction coerceArrayToArray(\n value: unknown[],\n prefixItems: unknown[] | undefined,\n itemsSchema: unknown\n): unknown[] {\n if (prefixItems && value.length === prefixItems.length) {\n return value.map((v, i) => coerceBySchema(v, prefixItems[i]));\n }\n return value.map((v) => coerceBySchema(v, itemsSchema));\n}\n\n/**\n * Coerce object to array using schema\n */\nfunction coerceObjectToArray(\n maybe: Record<string, unknown>,\n prefixItems: unknown[] | undefined,\n itemsSchema: unknown\n): unknown {\n if (Object.hasOwn(maybe, \"item\")) {\n const items = maybe.item as unknown;\n const arr = Array.isArray(items) ? items : [items];\n return coerceArrayToArray(arr, prefixItems, itemsSchema);\n }\n\n const keys = Object.keys(maybe);\n\n // Check for single field that contains an array (common XML pattern)\n if (keys.length === 1) {\n const singleValue = maybe[keys[0]];\n if (Array.isArray(singleValue)) {\n return singleValue.map((v) => coerceBySchema(v, itemsSchema));\n }\n }\n\n // Check for numeric keys (traditional tuple handling)\n if (keys.length > 0 && keys.every((k) => DIGIT_KEY_REGEX.test(k))) {\n const arr = keys.sort((a, b) => Number(a) - Number(b)).map((k) => maybe[k]);\n return coerceArrayToArray(arr, prefixItems, itemsSchema);\n }\n\n return null;\n}\n\n/**\n * Coerce primitive to array using schema\n */\nfunction coercePrimitiveToArray(\n value: unknown,\n prefixItems: unknown[] | undefined,\n itemsSchema: unknown\n): unknown[] {\n if (prefixItems && prefixItems.length > 0) {\n return [coerceBySchema(value, prefixItems[0])];\n }\n return [coerceBySchema(value, itemsSchema)];\n}\n\n/**\n * Coerce string to primitive type using schema\n */\nfunction coerceStringToPrimitive(\n s: string,\n schemaType: string | undefined\n): unknown {\n if (schemaType === \"boolean\") {\n const lower = s.toLowerCase();\n if (lower === \"true\") {\n return true;\n }\n if (lower === \"false\") {\n return false;\n }\n }\n if (\n (schemaType === \"number\" || schemaType === \"integer\") &&\n NUMERIC_REGEX.test(s)\n ) {\n const num = Number(s);\n if (Number.isFinite(num)) {\n return num;\n }\n }\n return null;\n}\n\nfunction coerceStringValue(\n value: string,\n schemaType: string | undefined,\n u: Record<string, unknown>\n): unknown {\n const s = value.trim();\n\n if (schemaType === \"object\") {\n const result = coerceStringToObject(s, u);\n if (result !== null) {\n return result;\n }\n }\n\n if (schemaType === \"array\") {\n const result = coerceStringToArray(s, u);\n if (result !== null) {\n return result;\n }\n }\n\n const primitiveResult = coerceStringToPrimitive(s, schemaType);\n if (primitiveResult !== null) {\n return primitiveResult;\n }\n\n return value;\n}\n\nfunction coerceArrayValue(\n value: unknown,\n prefixItems: unknown[] | undefined,\n itemsSchema: unknown\n): unknown {\n if (Array.isArray(value)) {\n return coerceArrayToArray(value, prefixItems, itemsSchema);\n }\n\n if (value && typeof value === \"object\") {\n const result = coerceObjectToArray(\n value as Record<string, unknown>,\n prefixItems,\n itemsSchema\n );\n if (result !== null) {\n return result;\n }\n }\n\n if (\n value == null ||\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\"\n ) {\n return coercePrimitiveToArray(value, prefixItems, itemsSchema);\n }\n\n return value;\n}\n\nexport function coerceBySchema(value: unknown, schema?: unknown): unknown {\n const unwrapped = unwrapJsonSchema(schema);\n if (!unwrapped || typeof unwrapped !== \"object\") {\n if (typeof value === \"string\") {\n return coerceStringWithoutSchema(value);\n }\n return value;\n }\n\n const schemaType = getSchemaType(unwrapped);\n const u = unwrapped as Record<string, unknown>;\n\n // Handle string values\n if (typeof value === \"string\") {\n return coerceStringValue(value, schemaType, u);\n }\n\n // Handle object to object coercion\n if (\n schemaType === \"object\" &&\n value &&\n typeof value === \"object\" &&\n !Array.isArray(value)\n ) {\n return coerceObjectToObject(value as Record<string, unknown>, u);\n }\n\n // Handle array coercion\n if (schemaType === \"array\") {\n const prefixItems = Array.isArray(u.prefixItems)\n ? (u.prefixItems as unknown[])\n : undefined;\n const itemsSchema = u.items as unknown;\n\n return coerceArrayValue(value, prefixItems, itemsSchema);\n }\n\n return value;\n}\n"],"mappings":"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","names":[]}
|