@dainprotocol/service-sdk 2.0.54 → 2.0.56
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/dist/client/client.d.ts +4 -5
- package/dist/client/client.js +3 -73
- package/dist/client/client.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/convertToVercelTool.d.ts +2 -3
- package/dist/lib/convertToVercelTool.js +4 -47
- package/dist/lib/convertToVercelTool.js.map +1 -1
- package/dist/lib/schemaConversion.d.ts +35 -0
- package/dist/lib/schemaConversion.js +234 -0
- package/dist/lib/schemaConversion.js.map +1 -0
- package/dist/lib/schemaStructure.d.ts +5 -3
- package/dist/lib/schemaStructure.js +39 -152
- package/dist/lib/schemaStructure.js.map +1 -1
- package/package.json +10 -9
- package/dist/__tests__/api-sdk.test.d.ts +0 -1
- package/dist/__tests__/api-sdk.test.js +0 -102
- package/dist/__tests__/api-sdk.test.js.map +0 -1
- package/dist/__tests__/auth.test.d.ts +0 -1
- package/dist/__tests__/auth.test.js +0 -110
- package/dist/__tests__/auth.test.js.map +0 -1
- package/dist/__tests__/citations-plugin.test.d.ts +0 -1
- package/dist/__tests__/citations-plugin.test.js +0 -491
- package/dist/__tests__/citations-plugin.test.js.map +0 -1
- package/dist/__tests__/context-behavior.test.d.ts +0 -1
- package/dist/__tests__/context-behavior.test.js +0 -290
- package/dist/__tests__/context-behavior.test.js.map +0 -1
- package/dist/__tests__/convertToVercelTool.test.d.ts +0 -1
- package/dist/__tests__/convertToVercelTool.test.js +0 -527
- package/dist/__tests__/convertToVercelTool.test.js.map +0 -1
- package/dist/__tests__/core.test.d.ts +0 -1
- package/dist/__tests__/core.test.js +0 -154
- package/dist/__tests__/core.test.js.map +0 -1
- package/dist/__tests__/crypto-plugin.test.d.ts +0 -1
- package/dist/__tests__/crypto-plugin.test.js +0 -694
- package/dist/__tests__/crypto-plugin.test.js.map +0 -1
- package/dist/__tests__/humanActions.test.d.ts +0 -1
- package/dist/__tests__/humanActions.test.js +0 -221
- package/dist/__tests__/humanActions.test.js.map +0 -1
- package/dist/__tests__/integration.test.d.ts +0 -1
- package/dist/__tests__/integration.test.js +0 -1573
- package/dist/__tests__/integration.test.js.map +0 -1
- package/dist/__tests__/mealMeSchemas.test.d.ts +0 -576
- package/dist/__tests__/mealMeSchemas.test.js +0 -627
- package/dist/__tests__/mealMeSchemas.test.js.map +0 -1
- package/dist/__tests__/oauth-context-simple.test.d.ts +0 -1
- package/dist/__tests__/oauth-context-simple.test.js +0 -90
- package/dist/__tests__/oauth-context-simple.test.js.map +0 -1
- package/dist/__tests__/oauth-context.test.d.ts +0 -1
- package/dist/__tests__/oauth-context.test.js +0 -282
- package/dist/__tests__/oauth-context.test.js.map +0 -1
- package/dist/__tests__/oauth.test.d.ts +0 -1
- package/dist/__tests__/oauth.test.js +0 -378
- package/dist/__tests__/oauth.test.js.map +0 -1
- package/dist/__tests__/oauth2-client-context.test.d.ts +0 -1
- package/dist/__tests__/oauth2-client-context.test.js +0 -165
- package/dist/__tests__/oauth2-client-context.test.js.map +0 -1
- package/dist/__tests__/oauth2-client-integration.test.d.ts +0 -1
- package/dist/__tests__/oauth2-client-integration.test.js +0 -182
- package/dist/__tests__/oauth2-client-integration.test.js.map +0 -1
- package/dist/__tests__/oauth2-client-simple.test.d.ts +0 -1
- package/dist/__tests__/oauth2-client-simple.test.js +0 -144
- package/dist/__tests__/oauth2-client-simple.test.js.map +0 -1
- package/dist/__tests__/oauth2-context.test.d.ts +0 -1
- package/dist/__tests__/oauth2-context.test.js +0 -201
- package/dist/__tests__/oauth2-context.test.js.map +0 -1
- package/dist/__tests__/oauth2-datasource.test.d.ts +0 -1
- package/dist/__tests__/oauth2-datasource.test.js +0 -251
- package/dist/__tests__/oauth2-datasource.test.js.map +0 -1
- package/dist/__tests__/plugin.test.d.ts +0 -1
- package/dist/__tests__/plugin.test.js +0 -900
- package/dist/__tests__/plugin.test.js.map +0 -1
- package/dist/__tests__/processes.test.d.ts +0 -1
- package/dist/__tests__/processes.test.js +0 -239
- package/dist/__tests__/processes.test.js.map +0 -1
- package/dist/__tests__/streaming.test.d.ts +0 -1
- package/dist/__tests__/streaming.test.js +0 -592
- package/dist/__tests__/streaming.test.js.map +0 -1
- package/dist/__tests__/testEnums.d.ts +0 -1
- package/dist/__tests__/testEnums.js +0 -73
- package/dist/__tests__/testEnums.js.map +0 -1
- package/dist/__tests__/testOptionals.test.d.ts +0 -1
- package/dist/__tests__/testOptionals.test.js +0 -83
- package/dist/__tests__/testOptionals.test.js.map +0 -1
- package/dist/__tests__/types.test.d.ts +0 -1
- package/dist/__tests__/types.test.js +0 -98
- package/dist/__tests__/types.test.js.map +0 -1
- package/dist/service/zod-json-converter.d.ts +0 -14
- package/dist/service/zod-json-converter.js +0 -203
- package/dist/service/zod-json-converter.js.map +0 -1
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File: src/lib/schemaConversion.ts
|
|
3
|
+
// Unified schema conversion: JSON ↔ Zod
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.jsonToZod = jsonToZod;
|
|
6
|
+
exports.getZodTypeName = getZodTypeName;
|
|
7
|
+
exports.zodToJson = zodToJson;
|
|
8
|
+
const zod_1 = require("zod");
|
|
9
|
+
/**
|
|
10
|
+
* Convert serialized JSON schema back to Zod schema
|
|
11
|
+
* Used by client to reconstruct schemas received from server
|
|
12
|
+
*/
|
|
13
|
+
function jsonToZod(schema) {
|
|
14
|
+
if (!schema || typeof schema !== "object") {
|
|
15
|
+
return zod_1.z.any();
|
|
16
|
+
}
|
|
17
|
+
const desc = schema.description || "";
|
|
18
|
+
switch (schema.type) {
|
|
19
|
+
case "ZodObject": {
|
|
20
|
+
const shape = {};
|
|
21
|
+
if (schema.shape) {
|
|
22
|
+
for (const [key, value] of Object.entries(schema.shape)) {
|
|
23
|
+
shape[key] = jsonToZod(value);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return zod_1.z.object(shape).describe(desc);
|
|
27
|
+
}
|
|
28
|
+
case "ZodString":
|
|
29
|
+
return zod_1.z.string().describe(desc);
|
|
30
|
+
case "ZodNumber":
|
|
31
|
+
return zod_1.z.number().describe(desc);
|
|
32
|
+
case "ZodBoolean":
|
|
33
|
+
return zod_1.z.boolean().describe(desc);
|
|
34
|
+
case "ZodArray":
|
|
35
|
+
return zod_1.z.array(jsonToZod(schema.element)).describe(desc);
|
|
36
|
+
case "ZodEnum":
|
|
37
|
+
if (!schema.values?.length)
|
|
38
|
+
return zod_1.z.any().describe(desc);
|
|
39
|
+
return zod_1.z.enum(schema.values).describe(desc);
|
|
40
|
+
case "ZodUnion":
|
|
41
|
+
if (!schema.options?.length)
|
|
42
|
+
return zod_1.z.any().describe(desc);
|
|
43
|
+
return zod_1.z.union(schema.options.map(opt => jsonToZod(opt))).describe(desc);
|
|
44
|
+
case "ZodDiscriminatedUnion":
|
|
45
|
+
if (!schema.discriminator || !schema.options?.length)
|
|
46
|
+
return zod_1.z.any().describe(desc);
|
|
47
|
+
return zod_1.z.discriminatedUnion(schema.discriminator, schema.options.map(opt => jsonToZod(opt))).describe(desc);
|
|
48
|
+
case "ZodOptional":
|
|
49
|
+
return jsonToZod(schema.innerType).optional().describe(desc);
|
|
50
|
+
case "ZodNullable":
|
|
51
|
+
return jsonToZod(schema.innerType).nullable().describe(desc);
|
|
52
|
+
case "ZodDefault":
|
|
53
|
+
return jsonToZod(schema.innerType).default(schema.defaultValue).describe(desc);
|
|
54
|
+
case "ZodLiteral":
|
|
55
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
56
|
+
return zod_1.z.literal(schema.value).describe(desc);
|
|
57
|
+
case "ZodTuple":
|
|
58
|
+
if (!schema.items?.length)
|
|
59
|
+
return zod_1.z.tuple([]).describe(desc);
|
|
60
|
+
return zod_1.z.tuple(schema.items.map(item => jsonToZod(item))).describe(desc);
|
|
61
|
+
case "ZodIntersection":
|
|
62
|
+
return zod_1.z.intersection(jsonToZod(schema.left), jsonToZod(schema.right)).describe(desc);
|
|
63
|
+
case "ZodRecord":
|
|
64
|
+
return zod_1.z.record(jsonToZod(schema.keyType), jsonToZod(schema.valueType)).describe(desc);
|
|
65
|
+
case "ZodMap":
|
|
66
|
+
return zod_1.z.map(jsonToZod(schema.keyType), jsonToZod(schema.valueType)).describe(desc);
|
|
67
|
+
case "ZodSet":
|
|
68
|
+
return zod_1.z.set(jsonToZod(schema.valueType)).describe(desc);
|
|
69
|
+
case "ZodDate":
|
|
70
|
+
return zod_1.z.date().describe(desc);
|
|
71
|
+
case "ZodBigInt":
|
|
72
|
+
return zod_1.z.bigint().describe(desc);
|
|
73
|
+
case "ZodPromise":
|
|
74
|
+
return zod_1.z.promise(jsonToZod(schema.innerType)).describe(desc);
|
|
75
|
+
default:
|
|
76
|
+
return zod_1.z.any().describe(desc || "Unknown type");
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Get the Zod type name from a schema instance
|
|
81
|
+
*/
|
|
82
|
+
function getZodTypeName(schema) {
|
|
83
|
+
// Check _def.typeName first (works across Zod versions)
|
|
84
|
+
const typeName = schema._def?.typeName;
|
|
85
|
+
if (typeName)
|
|
86
|
+
return typeName;
|
|
87
|
+
// Fallback to instanceof checks
|
|
88
|
+
if (schema instanceof zod_1.z.ZodDefault)
|
|
89
|
+
return "ZodDefault";
|
|
90
|
+
if (schema instanceof zod_1.z.ZodOptional)
|
|
91
|
+
return "ZodOptional";
|
|
92
|
+
if (schema instanceof zod_1.z.ZodNullable)
|
|
93
|
+
return "ZodNullable";
|
|
94
|
+
if (schema instanceof zod_1.z.ZodArray)
|
|
95
|
+
return "ZodArray";
|
|
96
|
+
if (schema instanceof zod_1.z.ZodEnum)
|
|
97
|
+
return "ZodEnum";
|
|
98
|
+
if (schema instanceof zod_1.z.ZodDiscriminatedUnion)
|
|
99
|
+
return "ZodDiscriminatedUnion";
|
|
100
|
+
if (schema instanceof zod_1.z.ZodUnion)
|
|
101
|
+
return "ZodUnion";
|
|
102
|
+
if (schema instanceof zod_1.z.ZodObject)
|
|
103
|
+
return "ZodObject";
|
|
104
|
+
if (schema instanceof zod_1.z.ZodString)
|
|
105
|
+
return "ZodString";
|
|
106
|
+
if (schema instanceof zod_1.z.ZodNumber)
|
|
107
|
+
return "ZodNumber";
|
|
108
|
+
if (schema instanceof zod_1.z.ZodBoolean)
|
|
109
|
+
return "ZodBoolean";
|
|
110
|
+
if (schema instanceof zod_1.z.ZodLiteral)
|
|
111
|
+
return "ZodLiteral";
|
|
112
|
+
if (schema instanceof zod_1.z.ZodTuple)
|
|
113
|
+
return "ZodTuple";
|
|
114
|
+
if (schema instanceof zod_1.z.ZodIntersection)
|
|
115
|
+
return "ZodIntersection";
|
|
116
|
+
if (schema instanceof zod_1.z.ZodRecord)
|
|
117
|
+
return "ZodRecord";
|
|
118
|
+
if (schema instanceof zod_1.z.ZodMap)
|
|
119
|
+
return "ZodMap";
|
|
120
|
+
if (schema instanceof zod_1.z.ZodSet)
|
|
121
|
+
return "ZodSet";
|
|
122
|
+
if (schema instanceof zod_1.z.ZodDate)
|
|
123
|
+
return "ZodDate";
|
|
124
|
+
if (schema instanceof zod_1.z.ZodBigInt)
|
|
125
|
+
return "ZodBigInt";
|
|
126
|
+
if (schema instanceof zod_1.z.ZodPromise)
|
|
127
|
+
return "ZodPromise";
|
|
128
|
+
return "Unknown";
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Convert Zod schema to serialized JSON format
|
|
132
|
+
* Used by server to serialize schemas for transmission to client
|
|
133
|
+
*/
|
|
134
|
+
function zodToJson(schema) {
|
|
135
|
+
const typeName = getZodTypeName(schema);
|
|
136
|
+
const base = {
|
|
137
|
+
type: typeName,
|
|
138
|
+
description: schema.description,
|
|
139
|
+
};
|
|
140
|
+
switch (typeName) {
|
|
141
|
+
case "ZodObject": {
|
|
142
|
+
const shape = schema.shape;
|
|
143
|
+
return {
|
|
144
|
+
...base,
|
|
145
|
+
shape: Object.fromEntries(Object.entries(shape).map(([k, v]) => [k, zodToJson(v)])),
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
case "ZodArray":
|
|
149
|
+
return {
|
|
150
|
+
...base,
|
|
151
|
+
element: zodToJson(schema.element),
|
|
152
|
+
};
|
|
153
|
+
case "ZodEnum":
|
|
154
|
+
return {
|
|
155
|
+
...base,
|
|
156
|
+
values: schema.options,
|
|
157
|
+
};
|
|
158
|
+
case "ZodUnion":
|
|
159
|
+
return {
|
|
160
|
+
...base,
|
|
161
|
+
options: schema.options.map((opt) => zodToJson(opt)),
|
|
162
|
+
};
|
|
163
|
+
case "ZodDiscriminatedUnion": {
|
|
164
|
+
const def = schema._def;
|
|
165
|
+
const options = Array.isArray(def.options)
|
|
166
|
+
? def.options
|
|
167
|
+
: Array.from(def.options.values());
|
|
168
|
+
return {
|
|
169
|
+
...base,
|
|
170
|
+
discriminator: def.discriminator,
|
|
171
|
+
options: options.map((opt) => zodToJson(opt)),
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
case "ZodOptional":
|
|
175
|
+
case "ZodNullable":
|
|
176
|
+
return {
|
|
177
|
+
...base,
|
|
178
|
+
innerType: zodToJson(schema._def.innerType),
|
|
179
|
+
};
|
|
180
|
+
case "ZodDefault": {
|
|
181
|
+
const def = schema._def;
|
|
182
|
+
// Handle both Zod 3 (function) and Zod 4 (value) defaultValue
|
|
183
|
+
const defaultVal = typeof def.defaultValue === 'function'
|
|
184
|
+
? def.defaultValue()
|
|
185
|
+
: def.defaultValue;
|
|
186
|
+
return {
|
|
187
|
+
...base,
|
|
188
|
+
innerType: zodToJson(def.innerType),
|
|
189
|
+
defaultValue: defaultVal,
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
case "ZodLiteral":
|
|
193
|
+
return {
|
|
194
|
+
...base,
|
|
195
|
+
value: schema.value,
|
|
196
|
+
};
|
|
197
|
+
case "ZodTuple":
|
|
198
|
+
return {
|
|
199
|
+
...base,
|
|
200
|
+
items: schema._def.items.map((item) => zodToJson(item)),
|
|
201
|
+
};
|
|
202
|
+
case "ZodIntersection":
|
|
203
|
+
return {
|
|
204
|
+
...base,
|
|
205
|
+
left: zodToJson(schema._def.left),
|
|
206
|
+
right: zodToJson(schema._def.right),
|
|
207
|
+
};
|
|
208
|
+
case "ZodRecord":
|
|
209
|
+
return {
|
|
210
|
+
...base,
|
|
211
|
+
keyType: zodToJson(schema._def.keyType),
|
|
212
|
+
valueType: zodToJson(schema._def.valueType),
|
|
213
|
+
};
|
|
214
|
+
case "ZodMap":
|
|
215
|
+
return {
|
|
216
|
+
...base,
|
|
217
|
+
keyType: zodToJson(schema._def.keyType),
|
|
218
|
+
valueType: zodToJson(schema._def.valueType),
|
|
219
|
+
};
|
|
220
|
+
case "ZodSet":
|
|
221
|
+
return {
|
|
222
|
+
...base,
|
|
223
|
+
valueType: zodToJson(schema._def.valueType),
|
|
224
|
+
};
|
|
225
|
+
case "ZodPromise":
|
|
226
|
+
return {
|
|
227
|
+
...base,
|
|
228
|
+
innerType: zodToJson(schema._def.type),
|
|
229
|
+
};
|
|
230
|
+
default:
|
|
231
|
+
return base;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
//# sourceMappingURL=schemaConversion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemaConversion.js","sourceRoot":"","sources":["../../src/lib/schemaConversion.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { ZodType } from "zod";
|
|
2
|
+
import { getZodTypeName, zodToJson, SerializedSchema } from "./schemaConversion";
|
|
3
|
+
export { getZodTypeName as getSchemaTypeName, zodToJson as getDetailedSchemaStructure };
|
|
4
|
+
export type { SerializedSchema };
|
|
2
5
|
/**
|
|
3
|
-
* Convert Zod schema to JSON Schema format (compatible with
|
|
6
|
+
* Convert Zod schema to JSON Schema format (compatible with Claude API)
|
|
7
|
+
* Note: Claude API doesn't support oneOf/anyOf/allOf at top level of input_schema
|
|
4
8
|
*/
|
|
5
9
|
export declare function zodToJsonSchema(schema: ZodType<any, any, any>): any;
|
|
6
|
-
export declare function getSchemaTypeName(schema: ZodType<any, any, any>): string;
|
|
7
|
-
export declare function getDetailedSchemaStructure(schema: ZodType<any, any, any>): any;
|
|
@@ -1,15 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
//File: src/lib/schemaStructure.ts
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.getDetailedSchemaStructure = exports.getSchemaTypeName = void 0;
|
|
4
5
|
exports.zodToJsonSchema = zodToJsonSchema;
|
|
5
|
-
|
|
6
|
-
exports.
|
|
7
|
-
|
|
6
|
+
const schemaConversion_1 = require("./schemaConversion");
|
|
7
|
+
Object.defineProperty(exports, "getSchemaTypeName", { enumerable: true, get: function () { return schemaConversion_1.getZodTypeName; } });
|
|
8
|
+
Object.defineProperty(exports, "getDetailedSchemaStructure", { enumerable: true, get: function () { return schemaConversion_1.zodToJson; } });
|
|
8
9
|
/**
|
|
9
|
-
* Convert Zod schema to JSON Schema format (compatible with
|
|
10
|
+
* Convert Zod schema to JSON Schema format (compatible with Claude API)
|
|
11
|
+
* Note: Claude API doesn't support oneOf/anyOf/allOf at top level of input_schema
|
|
10
12
|
*/
|
|
11
13
|
function zodToJsonSchema(schema) {
|
|
12
|
-
const
|
|
14
|
+
const result = zodToJsonSchemaInternal(schema);
|
|
15
|
+
// Claude API guard: wrap top-level oneOf/anyOf/allOf in object
|
|
16
|
+
if (result.oneOf || result.anyOf || result.allOf) {
|
|
17
|
+
return {
|
|
18
|
+
type: 'object',
|
|
19
|
+
properties: { value: result },
|
|
20
|
+
required: ['value'],
|
|
21
|
+
...(result.description && { description: result.description }),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
return result;
|
|
25
|
+
}
|
|
26
|
+
function zodToJsonSchemaInternal(schema) {
|
|
27
|
+
const typeName = (0, schemaConversion_1.getZodTypeName)(schema);
|
|
13
28
|
const baseInfo = {};
|
|
14
29
|
if (schema.description) {
|
|
15
30
|
baseInfo.description = schema.description;
|
|
@@ -21,28 +36,27 @@ function zodToJsonSchema(schema) {
|
|
|
21
36
|
const required = [];
|
|
22
37
|
for (const [key, value] of Object.entries(shape)) {
|
|
23
38
|
const fieldSchema = value;
|
|
24
|
-
properties[key] =
|
|
39
|
+
properties[key] = zodToJsonSchemaInternal(fieldSchema);
|
|
25
40
|
// Check if required (not optional/nullable/default)
|
|
26
|
-
const fieldType =
|
|
41
|
+
const fieldType = (0, schemaConversion_1.getZodTypeName)(fieldSchema);
|
|
27
42
|
if (fieldType !== 'ZodOptional' &&
|
|
28
43
|
fieldType !== 'ZodNullable' &&
|
|
29
44
|
fieldType !== 'ZodDefault') {
|
|
30
45
|
required.push(key);
|
|
31
46
|
}
|
|
32
47
|
}
|
|
33
|
-
|
|
48
|
+
return {
|
|
34
49
|
type: 'object',
|
|
35
50
|
properties,
|
|
36
51
|
...(required.length > 0 && { required }),
|
|
37
52
|
...baseInfo,
|
|
38
53
|
};
|
|
39
|
-
return result;
|
|
40
54
|
}
|
|
41
55
|
case "ZodArray": {
|
|
42
56
|
const element = schema.element;
|
|
43
57
|
return {
|
|
44
58
|
type: 'array',
|
|
45
|
-
items:
|
|
59
|
+
items: zodToJsonSchemaInternal(element),
|
|
46
60
|
...baseInfo,
|
|
47
61
|
};
|
|
48
62
|
}
|
|
@@ -56,25 +70,19 @@ function zodToJsonSchema(schema) {
|
|
|
56
70
|
}
|
|
57
71
|
case "ZodUnion": {
|
|
58
72
|
const options = schema.options;
|
|
59
|
-
// Check if all options are simple primitive types
|
|
73
|
+
// Check if all options are simple primitive types
|
|
60
74
|
const allPrimitives = options.every((opt) => {
|
|
61
|
-
const
|
|
62
|
-
return
|
|
75
|
+
const tn = (0, schemaConversion_1.getZodTypeName)(opt);
|
|
76
|
+
return tn === 'ZodString' || tn === 'ZodNumber' || tn === 'ZodBoolean';
|
|
63
77
|
});
|
|
64
78
|
if (allPrimitives) {
|
|
65
|
-
// For simple type unions, use type: ["string", "number"] format
|
|
66
|
-
const types = options.map((opt) =>
|
|
67
|
-
|
|
68
|
-
return optSchema.type;
|
|
69
|
-
});
|
|
70
|
-
return {
|
|
71
|
-
type: types,
|
|
72
|
-
...baseInfo,
|
|
73
|
-
};
|
|
79
|
+
// For simple type unions, use type: ["string", "number"] format
|
|
80
|
+
const types = options.map((opt) => zodToJsonSchemaInternal(opt).type);
|
|
81
|
+
return { type: types, ...baseInfo };
|
|
74
82
|
}
|
|
75
83
|
// For complex unions, fall back to oneOf
|
|
76
84
|
return {
|
|
77
|
-
oneOf: options.map((opt) =>
|
|
85
|
+
oneOf: options.map((opt) => zodToJsonSchemaInternal(opt)),
|
|
78
86
|
...baseInfo,
|
|
79
87
|
};
|
|
80
88
|
}
|
|
@@ -82,8 +90,7 @@ function zodToJsonSchema(schema) {
|
|
|
82
90
|
case "ZodNullable":
|
|
83
91
|
case "ZodDefault": {
|
|
84
92
|
const innerType = schema._def.innerType;
|
|
85
|
-
const innerSchema =
|
|
86
|
-
// Preserve description from the wrapper if inner doesn't have one
|
|
93
|
+
const innerSchema = zodToJsonSchemaInternal(innerType);
|
|
87
94
|
if (baseInfo.description && !innerSchema.description) {
|
|
88
95
|
innerSchema.description = baseInfo.description;
|
|
89
96
|
}
|
|
@@ -94,14 +101,11 @@ function zodToJsonSchema(schema) {
|
|
|
94
101
|
case "ZodNumber": {
|
|
95
102
|
const numSchema = schema;
|
|
96
103
|
const result = { type: 'number', ...baseInfo };
|
|
97
|
-
// Check if it's an integer type (using isInt property)
|
|
98
104
|
if (numSchema.isInt) {
|
|
99
105
|
result.type = 'integer';
|
|
100
106
|
}
|
|
101
|
-
// Extract min/max constraints from checks
|
|
102
107
|
const checks = numSchema._def.checks || [];
|
|
103
108
|
for (const check of checks) {
|
|
104
|
-
// Access check definition from _zod.def property
|
|
105
109
|
const checkDef = check._zod?.def || check;
|
|
106
110
|
const checkType = checkDef.check || check.kind;
|
|
107
111
|
if (checkType === 'greater_than' || checkType === 'min') {
|
|
@@ -126,7 +130,7 @@ function zodToJsonSchema(schema) {
|
|
|
126
130
|
const items = schema._def.items;
|
|
127
131
|
return {
|
|
128
132
|
type: 'array',
|
|
129
|
-
items: items.map((item) =>
|
|
133
|
+
items: items.map((item) => zodToJsonSchemaInternal(item)),
|
|
130
134
|
...baseInfo,
|
|
131
135
|
};
|
|
132
136
|
}
|
|
@@ -134,7 +138,7 @@ function zodToJsonSchema(schema) {
|
|
|
134
138
|
const left = schema._def.left;
|
|
135
139
|
const right = schema._def.right;
|
|
136
140
|
return {
|
|
137
|
-
allOf: [
|
|
141
|
+
allOf: [zodToJsonSchemaInternal(left), zodToJsonSchemaInternal(right)],
|
|
138
142
|
...baseInfo,
|
|
139
143
|
};
|
|
140
144
|
}
|
|
@@ -143,15 +147,14 @@ function zodToJsonSchema(schema) {
|
|
|
143
147
|
const options = Array.isArray(duDef.options)
|
|
144
148
|
? duDef.options
|
|
145
149
|
: Array.from(duDef.options.values());
|
|
146
|
-
// Convert
|
|
147
|
-
// AI SDK doesn't support oneOf/anyOf/allOf at top level, so we merge all properties
|
|
150
|
+
// Convert to merged object schema for AI SDK compatibility
|
|
148
151
|
const mergedProperties = {};
|
|
149
152
|
const allRequired = new Set();
|
|
150
153
|
// Add discriminator field as required enum
|
|
151
154
|
mergedProperties[duDef.discriminator] = {
|
|
152
155
|
type: 'string',
|
|
153
156
|
enum: options.map((opt) => {
|
|
154
|
-
const optSchema =
|
|
157
|
+
const optSchema = zodToJsonSchemaInternal(opt);
|
|
155
158
|
return optSchema.properties?.[duDef.discriminator]?.const ||
|
|
156
159
|
optSchema.properties?.[duDef.discriminator]?.enum?.[0];
|
|
157
160
|
}).filter(Boolean),
|
|
@@ -160,18 +163,16 @@ function zodToJsonSchema(schema) {
|
|
|
160
163
|
allRequired.add(duDef.discriminator);
|
|
161
164
|
// Merge all properties from all options
|
|
162
165
|
for (const option of options) {
|
|
163
|
-
const optSchema =
|
|
166
|
+
const optSchema = zodToJsonSchemaInternal(option);
|
|
164
167
|
if (optSchema.properties) {
|
|
165
168
|
for (const [key, value] of Object.entries(optSchema.properties)) {
|
|
166
169
|
if (key === duDef.discriminator)
|
|
167
|
-
continue;
|
|
168
|
-
// If property already exists, make it optional (could be from different union branch)
|
|
170
|
+
continue;
|
|
169
171
|
if (!mergedProperties[key]) {
|
|
170
172
|
mergedProperties[key] = value;
|
|
171
173
|
}
|
|
172
174
|
}
|
|
173
175
|
}
|
|
174
|
-
// Don't mark properties as required if they're not in all branches
|
|
175
176
|
}
|
|
176
177
|
return {
|
|
177
178
|
type: 'object',
|
|
@@ -181,11 +182,8 @@ function zodToJsonSchema(schema) {
|
|
|
181
182
|
};
|
|
182
183
|
}
|
|
183
184
|
case "ZodEffects": {
|
|
184
|
-
// ZodEffects wraps schemas with refinements/transformations
|
|
185
|
-
// We extract the underlying schema and convert that instead
|
|
186
185
|
const innerType = schema._def.schema;
|
|
187
|
-
const innerSchema =
|
|
188
|
-
// Preserve description from the wrapper if inner doesn't have one
|
|
186
|
+
const innerSchema = zodToJsonSchemaInternal(innerType);
|
|
189
187
|
if (baseInfo.description && !innerSchema.description) {
|
|
190
188
|
innerSchema.description = baseInfo.description;
|
|
191
189
|
}
|
|
@@ -195,115 +193,4 @@ function zodToJsonSchema(schema) {
|
|
|
195
193
|
return baseInfo;
|
|
196
194
|
}
|
|
197
195
|
}
|
|
198
|
-
function getSchemaTypeName(schema) {
|
|
199
|
-
// Check for ZodEffects using _def.typeName (works across Zod versions)
|
|
200
|
-
const typeName = schema._def?.typeName;
|
|
201
|
-
if (typeName === "ZodEffects")
|
|
202
|
-
return "ZodEffects";
|
|
203
|
-
if (schema instanceof zod_1.z.ZodDefault)
|
|
204
|
-
return "ZodDefault";
|
|
205
|
-
if (schema instanceof zod_1.z.ZodOptional)
|
|
206
|
-
return "ZodOptional";
|
|
207
|
-
if (schema instanceof zod_1.z.ZodNullable)
|
|
208
|
-
return "ZodNullable";
|
|
209
|
-
if (schema instanceof zod_1.z.ZodArray)
|
|
210
|
-
return "ZodArray";
|
|
211
|
-
if (schema instanceof zod_1.z.ZodEnum)
|
|
212
|
-
return "ZodEnum";
|
|
213
|
-
// Check ZodDiscriminatedUnion before ZodUnion (discriminated unions extend unions)
|
|
214
|
-
if (schema instanceof zod_1.z.ZodDiscriminatedUnion)
|
|
215
|
-
return "ZodDiscriminatedUnion";
|
|
216
|
-
if (schema instanceof zod_1.z.ZodUnion)
|
|
217
|
-
return "ZodUnion";
|
|
218
|
-
if (schema instanceof zod_1.z.ZodObject)
|
|
219
|
-
return "ZodObject";
|
|
220
|
-
if (schema instanceof zod_1.z.ZodString)
|
|
221
|
-
return "ZodString";
|
|
222
|
-
if (schema instanceof zod_1.z.ZodNumber)
|
|
223
|
-
return "ZodNumber";
|
|
224
|
-
if (schema instanceof zod_1.z.ZodBoolean)
|
|
225
|
-
return "ZodBoolean";
|
|
226
|
-
if (schema instanceof zod_1.z.ZodLiteral)
|
|
227
|
-
return "ZodLiteral";
|
|
228
|
-
if (schema instanceof zod_1.z.ZodTuple)
|
|
229
|
-
return "ZodTuple";
|
|
230
|
-
if (schema instanceof zod_1.z.ZodIntersection)
|
|
231
|
-
return "ZodIntersection";
|
|
232
|
-
// Add more type checks as needed
|
|
233
|
-
return "Unknown";
|
|
234
|
-
}
|
|
235
|
-
function getDetailedSchemaStructure(schema) {
|
|
236
|
-
const typeName = getSchemaTypeName(schema);
|
|
237
|
-
const baseInfo = {
|
|
238
|
-
type: typeName,
|
|
239
|
-
description: schema.description,
|
|
240
|
-
};
|
|
241
|
-
switch (typeName) {
|
|
242
|
-
case "ZodObject":
|
|
243
|
-
return {
|
|
244
|
-
...baseInfo,
|
|
245
|
-
shape: Object.fromEntries(Object.entries(schema.shape).map(([key, value]) => [
|
|
246
|
-
key,
|
|
247
|
-
getDetailedSchemaStructure(value),
|
|
248
|
-
])),
|
|
249
|
-
};
|
|
250
|
-
case "ZodArray":
|
|
251
|
-
return {
|
|
252
|
-
...baseInfo,
|
|
253
|
-
element: getDetailedSchemaStructure(schema.element),
|
|
254
|
-
};
|
|
255
|
-
case "ZodEnum":
|
|
256
|
-
return {
|
|
257
|
-
...baseInfo,
|
|
258
|
-
values: schema.options,
|
|
259
|
-
};
|
|
260
|
-
case "ZodUnion":
|
|
261
|
-
return {
|
|
262
|
-
...baseInfo,
|
|
263
|
-
options: schema.options.map((option) => getDetailedSchemaStructure(option)),
|
|
264
|
-
};
|
|
265
|
-
case "ZodOptional":
|
|
266
|
-
return {
|
|
267
|
-
...baseInfo,
|
|
268
|
-
innerType: getDetailedSchemaStructure(schema._def.innerType),
|
|
269
|
-
};
|
|
270
|
-
case "ZodNullable":
|
|
271
|
-
return {
|
|
272
|
-
...baseInfo,
|
|
273
|
-
innerType: getDetailedSchemaStructure(schema._def.innerType),
|
|
274
|
-
};
|
|
275
|
-
case "ZodLiteral":
|
|
276
|
-
return {
|
|
277
|
-
...baseInfo,
|
|
278
|
-
value: schema.value,
|
|
279
|
-
};
|
|
280
|
-
case "ZodTuple":
|
|
281
|
-
return {
|
|
282
|
-
...baseInfo,
|
|
283
|
-
items: schema._def.items.map((item) => getDetailedSchemaStructure(item)),
|
|
284
|
-
};
|
|
285
|
-
case "ZodIntersection":
|
|
286
|
-
return {
|
|
287
|
-
...baseInfo,
|
|
288
|
-
left: getDetailedSchemaStructure(schema._def.left),
|
|
289
|
-
right: getDetailedSchemaStructure(schema._def.right),
|
|
290
|
-
};
|
|
291
|
-
case "ZodDiscriminatedUnion": {
|
|
292
|
-
const duDef = schema._def;
|
|
293
|
-
return {
|
|
294
|
-
...baseInfo,
|
|
295
|
-
discriminator: duDef.discriminator,
|
|
296
|
-
options: Array.from(duDef.options.values()).map((option) => getDetailedSchemaStructure(option)),
|
|
297
|
-
};
|
|
298
|
-
}
|
|
299
|
-
case "ZodDefault":
|
|
300
|
-
return {
|
|
301
|
-
...baseInfo,
|
|
302
|
-
innerType: getDetailedSchemaStructure(schema._def.innerType),
|
|
303
|
-
defaultValue: schema._def.defaultValue,
|
|
304
|
-
};
|
|
305
|
-
default:
|
|
306
|
-
return baseInfo;
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
196
|
//# sourceMappingURL=schemaStructure.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemaStructure.js","sourceRoot":"","sources":["../../src/lib/schemaStructure.ts"],"names":[],"mappings":";AAAA,kCAAkC
|
|
1
|
+
{"version":3,"file":"schemaStructure.js","sourceRoot":"","sources":["../../src/lib/schemaStructure.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dainprotocol/service-sdk",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.56",
|
|
4
4
|
"description": "DAIN Service SDK",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -106,6 +106,14 @@
|
|
|
106
106
|
]
|
|
107
107
|
}
|
|
108
108
|
},
|
|
109
|
+
"scripts": {
|
|
110
|
+
"build": "tsc",
|
|
111
|
+
"build:types": "tsc --emitDeclarationOnly",
|
|
112
|
+
"test": "jest",
|
|
113
|
+
"test:watch": "jest --watch",
|
|
114
|
+
"prepublishOnly": "npm run build && npm run build:types",
|
|
115
|
+
"test:streaming": "ts-node src/standalone-streaming-test.ts"
|
|
116
|
+
},
|
|
109
117
|
"keywords": [
|
|
110
118
|
"dain",
|
|
111
119
|
"sdk",
|
|
@@ -159,12 +167,5 @@
|
|
|
159
167
|
"files": [
|
|
160
168
|
"dist",
|
|
161
169
|
"README.md"
|
|
162
|
-
]
|
|
163
|
-
"scripts": {
|
|
164
|
-
"build": "tsc",
|
|
165
|
-
"build:types": "tsc --emitDeclarationOnly",
|
|
166
|
-
"test": "jest",
|
|
167
|
-
"test:watch": "jest --watch",
|
|
168
|
-
"test:streaming": "ts-node src/standalone-streaming-test.ts"
|
|
169
|
-
}
|
|
170
|
+
]
|
|
170
171
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|