@dainprotocol/service-sdk 2.0.66 → 2.0.68
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/index.d.ts +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/service/index.d.ts +4 -2
- package/dist/service/index.js +8 -1
- package/dist/service/index.js.map +1 -1
- package/dist/service/nodeService.d.ts +4 -2
- package/dist/service/nodeService.js +8 -1
- package/dist/service/nodeService.js.map +1 -1
- package/dist/service/oauth2Manager.js +3 -2
- package/dist/service/oauth2Manager.js.map +1 -1
- package/dist/service/server.js +84 -9
- package/dist/service/server.js.map +1 -1
- package/dist/service/service.js +15 -2
- package/dist/service/service.js.map +1 -1
- package/dist/service/skills.d.ts +106 -0
- package/dist/service/skills.js +156 -0
- package/dist/service/skills.js.map +1 -0
- package/dist/service/trigger-forwarder.d.ts +47 -0
- package/dist/service/trigger-forwarder.js +91 -0
- package/dist/service/trigger-forwarder.js.map +1 -0
- package/dist/service/types.d.ts +4 -0
- package/dist/service/webhooks.d.ts +109 -10
- package/dist/service/webhooks.js +184 -30
- package/dist/service/webhooks.js.map +1 -1
- package/package.json +1 -1
- 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
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const zod_1 = require("zod");
|
|
4
|
-
const schemaStructure_1 = require("../lib/schemaStructure");
|
|
5
|
-
const convertToVercelTool_1 = require("../lib/convertToVercelTool");
|
|
6
|
-
describe('Enum types conversion', () => {
|
|
7
|
-
it('should correctly convert enum types to Vercel AI Tool parameters', () => {
|
|
8
|
-
// Define a schema with enum fields
|
|
9
|
-
const testSchema = zod_1.z.object({
|
|
10
|
-
simpleEnum: zod_1.z.enum(['A', 'B', 'C']),
|
|
11
|
-
optionalEnum: zod_1.z.enum(['X', 'Y', 'Z']).optional(),
|
|
12
|
-
nestedEnum: zod_1.z.object({
|
|
13
|
-
innerEnum: zod_1.z.enum(['inner1', 'inner2', 'inner3'])
|
|
14
|
-
})
|
|
15
|
-
});
|
|
16
|
-
// Create a mock HTTP tool
|
|
17
|
-
const httpTool = {
|
|
18
|
-
id: 'test-enum-tool',
|
|
19
|
-
name: 'Test Enum Tool',
|
|
20
|
-
description: 'A tool to test enum field conversion',
|
|
21
|
-
inputSchema: (0, schemaStructure_1.getDetailedSchemaStructure)(testSchema),
|
|
22
|
-
outputSchema: { type: 'ZodAny' }
|
|
23
|
-
};
|
|
24
|
-
// Convert the HTTP tool to a Vercel AI Tool
|
|
25
|
-
const vercelAITool = (0, convertToVercelTool_1.convertHttpToolToVercelAITool)(httpTool);
|
|
26
|
-
// Check if the conversion was successful
|
|
27
|
-
expect(vercelAITool.name).toBe('test-enum-tool');
|
|
28
|
-
expect(vercelAITool.description).toBe('A tool to test enum field conversion');
|
|
29
|
-
expect(vercelAITool.parameters).toBeInstanceOf(zod_1.z.ZodObject);
|
|
30
|
-
// Check if the fields are correctly converted
|
|
31
|
-
const schemaShape = vercelAITool.parameters._def.shape();
|
|
32
|
-
expect(schemaShape.simpleEnum).toBeInstanceOf(zod_1.z.ZodEnum);
|
|
33
|
-
expect(schemaShape.optionalEnum).toBeInstanceOf(zod_1.z.ZodOptional);
|
|
34
|
-
expect(schemaShape.optionalEnum._def.innerType).toBeInstanceOf(zod_1.z.ZodEnum);
|
|
35
|
-
expect(schemaShape.nestedEnum).toBeInstanceOf(zod_1.z.ZodObject);
|
|
36
|
-
expect(schemaShape.nestedEnum._def.shape().innerEnum).toBeInstanceOf(zod_1.z.ZodEnum);
|
|
37
|
-
// Test parsing with the converted schema
|
|
38
|
-
const validInput = {
|
|
39
|
-
simpleEnum: 'B',
|
|
40
|
-
optionalEnum: 'Y',
|
|
41
|
-
numberEnum: 2,
|
|
42
|
-
mixedEnum: 'one',
|
|
43
|
-
nestedEnum: {
|
|
44
|
-
innerEnum: 'inner2'
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
const parseResult = vercelAITool.parameters.safeParse(validInput);
|
|
48
|
-
expect(parseResult.success).toBe(true);
|
|
49
|
-
// Test parsing with invalid enum values
|
|
50
|
-
const invalidInput = {
|
|
51
|
-
simpleEnum: 'D',
|
|
52
|
-
numberEnum: 4,
|
|
53
|
-
mixedEnum: false,
|
|
54
|
-
nestedEnum: {
|
|
55
|
-
innerEnum: 'inner4'
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
const invalidParseResult = vercelAITool.parameters.safeParse(invalidInput);
|
|
59
|
-
expect(invalidParseResult.success).toBe(false);
|
|
60
|
-
// Test parsing with missing optional enum
|
|
61
|
-
const minimalInput = {
|
|
62
|
-
simpleEnum: 'A',
|
|
63
|
-
numberEnum: 1,
|
|
64
|
-
mixedEnum: true,
|
|
65
|
-
nestedEnum: {
|
|
66
|
-
innerEnum: 'inner1'
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
const minimalParseResult = vercelAITool.parameters.safeParse(minimalInput);
|
|
70
|
-
expect(minimalParseResult.success).toBe(true);
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
//# sourceMappingURL=testEnums.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"testEnums.js","sourceRoot":"","sources":["../../src/__tests__/testEnums.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const zod_1 = require("zod");
|
|
4
|
-
const schemaStructure_1 = require("../lib/schemaStructure");
|
|
5
|
-
const convertToVercelTool_1 = require("../lib/convertToVercelTool");
|
|
6
|
-
describe('Optional and default types conversion', () => {
|
|
7
|
-
it('should correctly convert optional and default types to Vercel AI Tool parameters', () => {
|
|
8
|
-
// Define a schema with optional fields and default values
|
|
9
|
-
const testSchema = zod_1.z.object({
|
|
10
|
-
requiredField: zod_1.z.string(),
|
|
11
|
-
optionalString: zod_1.z.string().optional(),
|
|
12
|
-
optionalNumberWithDefault: zod_1.z.number().optional().default(42),
|
|
13
|
-
optionalBoolean: zod_1.z.boolean().optional(),
|
|
14
|
-
defaultString: zod_1.z.string().default('default value'),
|
|
15
|
-
nestedOptional: zod_1.z.object({
|
|
16
|
-
innerOptional: zod_1.z.string().optional(),
|
|
17
|
-
innerDefault: zod_1.z.number().default(10)
|
|
18
|
-
}).optional()
|
|
19
|
-
});
|
|
20
|
-
// Create a mock HTTP tool
|
|
21
|
-
const httpTool = {
|
|
22
|
-
id: 'test-optional-default-tool',
|
|
23
|
-
name: 'Test Optional and Default Tool',
|
|
24
|
-
description: 'A tool to test optional and default field conversion',
|
|
25
|
-
inputSchema: (0, schemaStructure_1.getDetailedSchemaStructure)(testSchema),
|
|
26
|
-
outputSchema: { type: 'ZodAny' }
|
|
27
|
-
};
|
|
28
|
-
// Convert the HTTP tool to a Vercel AI Tool
|
|
29
|
-
const vercelAITool = (0, convertToVercelTool_1.convertHttpToolToVercelAITool)(httpTool);
|
|
30
|
-
// Check if the conversion was successful
|
|
31
|
-
expect(vercelAITool.name).toBe('test-optional-default-tool');
|
|
32
|
-
expect(vercelAITool.description).toBe('A tool to test optional and default field conversion');
|
|
33
|
-
expect(vercelAITool.parameters).toBeInstanceOf(zod_1.z.ZodObject);
|
|
34
|
-
// Check if the fields are correctly converted
|
|
35
|
-
const schemaShape = vercelAITool.parameters._def.shape();
|
|
36
|
-
expect(schemaShape.requiredField).toBeInstanceOf(zod_1.z.ZodString);
|
|
37
|
-
expect(schemaShape.optionalString).toBeInstanceOf(zod_1.z.ZodOptional);
|
|
38
|
-
expect(schemaShape.optionalBoolean).toBeInstanceOf(zod_1.z.ZodOptional);
|
|
39
|
-
// Update for fields with default values
|
|
40
|
-
expect(schemaShape.optionalNumberWithDefault).toBeInstanceOf(zod_1.z.ZodDefault);
|
|
41
|
-
expect(schemaShape.optionalNumberWithDefault._def.innerType).toBeInstanceOf(zod_1.z.ZodOptional);
|
|
42
|
-
expect(schemaShape.optionalNumberWithDefault._def.innerType._def.innerType).toBeInstanceOf(zod_1.z.ZodNumber);
|
|
43
|
-
expect(schemaShape.defaultString).toBeInstanceOf(zod_1.z.ZodDefault);
|
|
44
|
-
expect(schemaShape.defaultString._def.innerType).toBeInstanceOf(zod_1.z.ZodString);
|
|
45
|
-
expect(schemaShape.nestedOptional).toBeInstanceOf(zod_1.z.ZodOptional);
|
|
46
|
-
// Check nested fields
|
|
47
|
-
const nestedShape = schemaShape.nestedOptional._def.innerType._def.shape();
|
|
48
|
-
expect(nestedShape.innerOptional).toBeInstanceOf(zod_1.z.ZodOptional);
|
|
49
|
-
expect(nestedShape.innerDefault).toBeInstanceOf(zod_1.z.ZodDefault);
|
|
50
|
-
expect(nestedShape.innerDefault._def.innerType).toBeInstanceOf(zod_1.z.ZodNumber);
|
|
51
|
-
// Test parsing with the converted schema
|
|
52
|
-
const validInput = {
|
|
53
|
-
requiredField: 'test',
|
|
54
|
-
optionalString: 'optional',
|
|
55
|
-
nestedOptional: {
|
|
56
|
-
innerOptional: 'nested'
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
const parseResult = vercelAITool.parameters.safeParse(validInput);
|
|
60
|
-
expect(parseResult.success).toBe(true);
|
|
61
|
-
// Test parsing with missing optional fields and check default values
|
|
62
|
-
const minimalInput = {
|
|
63
|
-
requiredField: 'test'
|
|
64
|
-
};
|
|
65
|
-
const minimalParseResult = vercelAITool.parameters.safeParse(minimalInput);
|
|
66
|
-
expect(minimalParseResult.success).toBe(true);
|
|
67
|
-
if (minimalParseResult.success) {
|
|
68
|
-
expect(minimalParseResult.data.optionalNumberWithDefault).toBe(42);
|
|
69
|
-
expect(minimalParseResult.data.defaultString).toBe('default value');
|
|
70
|
-
}
|
|
71
|
-
// Test nested default values
|
|
72
|
-
const nestedInput = {
|
|
73
|
-
requiredField: 'test',
|
|
74
|
-
nestedOptional: {}
|
|
75
|
-
};
|
|
76
|
-
const nestedParseResult = vercelAITool.parameters.safeParse(nestedInput);
|
|
77
|
-
expect(nestedParseResult.success).toBe(true);
|
|
78
|
-
if (nestedParseResult.success) {
|
|
79
|
-
expect(nestedParseResult.data.nestedOptional?.innerDefault).toBe(10);
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
|
-
//# sourceMappingURL=testOptionals.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"testOptionals.test.js","sourceRoot":"","sources":["../../src/__tests__/testOptionals.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// File: src/__tests__/types.test.ts
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
const zod_1 = require("zod");
|
|
5
|
-
describe("DAIN Framework Types", () => {
|
|
6
|
-
test("AgentInfo type is correctly defined", () => {
|
|
7
|
-
const agentInfo = {
|
|
8
|
-
agentId: "test-agent",
|
|
9
|
-
address: "0x1234567890123456789012345678901234567890",
|
|
10
|
-
smartAccountPDA: "1234567890123456789012345678901234567890",
|
|
11
|
-
id: "dain_id_1234567890123456789012345678901234567890",
|
|
12
|
-
};
|
|
13
|
-
expect(agentInfo.agentId).toBe("test-agent");
|
|
14
|
-
expect(agentInfo.address).toBe("0x1234567890123456789012345678901234567890");
|
|
15
|
-
});
|
|
16
|
-
test("PricingInfo type is correctly defined", () => {
|
|
17
|
-
const pricingInfo = {
|
|
18
|
-
pricePerUse: 0.01,
|
|
19
|
-
currency: "USD",
|
|
20
|
-
};
|
|
21
|
-
expect(pricingInfo.pricePerUse).toBe(0.01);
|
|
22
|
-
expect(pricingInfo.currency).toBe("USD");
|
|
23
|
-
});
|
|
24
|
-
test("ToolConfig type is correctly defined", () => {
|
|
25
|
-
const toolConfig = {
|
|
26
|
-
id: "get-weather",
|
|
27
|
-
name: "Get Weather",
|
|
28
|
-
description: "Fetches weather for a city",
|
|
29
|
-
input: zod_1.z.object({ city: zod_1.z.string() }),
|
|
30
|
-
output: zod_1.z.object({ temperature: zod_1.z.number() }),
|
|
31
|
-
pricing: { pricePerUse: 0.01, currency: "USD" },
|
|
32
|
-
handler: async (input, agentInfo) => ({
|
|
33
|
-
text: `The temperature is 25°C`,
|
|
34
|
-
data: { temperature: 25 },
|
|
35
|
-
ui: null
|
|
36
|
-
}),
|
|
37
|
-
};
|
|
38
|
-
expect(toolConfig.id).toBe("get-weather");
|
|
39
|
-
expect(toolConfig.input.shape.city).toBeInstanceOf(zod_1.z.ZodString);
|
|
40
|
-
expect(toolConfig.output.shape.temperature).toBeInstanceOf(zod_1.z.ZodNumber);
|
|
41
|
-
});
|
|
42
|
-
test("ServiceConfig type is correctly defined", () => {
|
|
43
|
-
const serviceConfig = {
|
|
44
|
-
id: "weather-service",
|
|
45
|
-
name: "Weather Service",
|
|
46
|
-
description: "Provides weather information",
|
|
47
|
-
metadata: {
|
|
48
|
-
capabilities: ["current-weather", "forecast"],
|
|
49
|
-
languages: ["en", "es"],
|
|
50
|
-
},
|
|
51
|
-
recommendedPrompt: "Ask about the weather",
|
|
52
|
-
recommendedTools: ["get-weather", "get-forecast"],
|
|
53
|
-
};
|
|
54
|
-
expect(serviceConfig.id).toBe("weather-service");
|
|
55
|
-
expect(serviceConfig.metadata.capabilities).toContain("current-weather");
|
|
56
|
-
expect(serviceConfig.recommendedTools).toContain("get-weather");
|
|
57
|
-
});
|
|
58
|
-
test("ToolboxConfig type is correctly defined", () => {
|
|
59
|
-
const toolboxConfig = {
|
|
60
|
-
id: "weather-toolbox",
|
|
61
|
-
name: "Weather Toolbox",
|
|
62
|
-
description: "Collection of weather tools",
|
|
63
|
-
tools: ["get-weather", "get-forecast"],
|
|
64
|
-
metadata: {
|
|
65
|
-
complexity: "Low",
|
|
66
|
-
applicableFields: ["Meteorology", "Travel"],
|
|
67
|
-
},
|
|
68
|
-
recommendedPrompt: "Use these tools for weather-related tasks",
|
|
69
|
-
};
|
|
70
|
-
expect(toolboxConfig.id).toBe("weather-toolbox");
|
|
71
|
-
expect(toolboxConfig.tools).toContain("get-weather");
|
|
72
|
-
expect(toolboxConfig.metadata.applicableFields).toContain("Meteorology");
|
|
73
|
-
});
|
|
74
|
-
test("DAINServiceConfig type is correctly defined", () => {
|
|
75
|
-
const serviceConfig = {
|
|
76
|
-
metadata: {
|
|
77
|
-
title: "Weather Service",
|
|
78
|
-
description: "Provides weather information",
|
|
79
|
-
version: "1.0.0",
|
|
80
|
-
author: "DAIN Developer",
|
|
81
|
-
tags: ["weather", "forecast"],
|
|
82
|
-
},
|
|
83
|
-
identity: {
|
|
84
|
-
publicKey: "test-public-key",
|
|
85
|
-
agentId: "weather-agent",
|
|
86
|
-
orgId: "weather-org",
|
|
87
|
-
privateKey: "test-private",
|
|
88
|
-
},
|
|
89
|
-
services: [],
|
|
90
|
-
tools: [],
|
|
91
|
-
toolboxes: [],
|
|
92
|
-
contexts: [],
|
|
93
|
-
};
|
|
94
|
-
expect(serviceConfig.metadata.title).toBe("Weather Service");
|
|
95
|
-
expect(serviceConfig.identity.agentId).toBe("weather-agent");
|
|
96
|
-
});
|
|
97
|
-
});
|
|
98
|
-
//# sourceMappingURL=types.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.test.js","sourceRoot":"","sources":["../../src/__tests__/types.test.ts"],"names":[],"mappings":";AAAA,oCAAoC;;AAEpC,6BAAwB;AAUxB,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC/C,MAAM,SAAS,GAAc;YAC3B,OAAO,EAAE,YAAY;YACrB,OAAO,EAAE,4CAA4C;YACrD,eAAe,EAAE,0CAA0C;YAC3D,EAAE,EAAE,kDAAkD;SACvD,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7C,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAC5B,4CAA4C,CAC7C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;QACjD,MAAM,WAAW,GAAgB;YAC/B,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAChD,MAAM,UAAU,GAGZ;YACF,EAAE,EAAE,aAAa;YACjB,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,4BAA4B;YACzC,KAAK,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YACrC,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7C,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YAC/C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;gBACpC,IAAI,EAAE,yBAAyB;gBAC/B,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;gBACzB,EAAE,EAAE,IAAI;aACT,CAAC;SACH,CAAC;QACF,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1C,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,OAAC,CAAC,SAAS,CAAC,CAAC;QAChE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC,OAAC,CAAC,SAAS,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACnD,MAAM,aAAa,GAAkB;YACnC,EAAE,EAAE,iBAAiB;YACrB,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,8BAA8B;YAC3C,QAAQ,EAAE;gBACR,YAAY,EAAE,CAAC,iBAAiB,EAAE,UAAU,CAAC;gBAC7C,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;aACxB;YACD,iBAAiB,EAAE,uBAAuB;YAC1C,gBAAgB,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;SAClD,CAAC;QACF,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjD,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QACzE,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACnD,MAAM,aAAa,GAAkB;YACnC,EAAE,EAAE,iBAAiB;YACrB,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,6BAA6B;YAC1C,KAAK,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;YACtC,QAAQ,EAAE;gBACR,UAAU,EAAE,KAAK;gBACjB,gBAAgB,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC;aAC5C;YACD,iBAAiB,EAAE,2CAA2C;SAC/D,CAAC;QACF,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjD,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACrD,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACvD,MAAM,aAAa,GAAsB;YACvC,QAAQ,EAAE;gBACR,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EAAE,8BAA8B;gBAC3C,OAAO,EAAE,OAAO;gBAChB,MAAM,EAAE,gBAAgB;gBACxB,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;aAC9B;YACD,QAAQ,EAAE;gBACR,SAAS,EAAE,iBAAiB;gBAC5B,OAAO,EAAE,eAAe;gBACxB,KAAK,EAAE,aAAa;gBACpB,UAAU,EAAE,cAAc;aAC3B;YACD,QAAQ,EAAE,EAAE;YACZ,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,EAAE;SACb,CAAC;QACF,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC7D,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Custom Zod to JSON Schema converter that properly handles Zod v4.1.12
|
|
3
|
-
* This replaces the broken zodToJsonSchema from zod-to-json-schema package
|
|
4
|
-
*/
|
|
5
|
-
import { z } from 'zod';
|
|
6
|
-
/**
|
|
7
|
-
* Converts a Zod schema to JSON Schema format
|
|
8
|
-
* Preserves descriptions and properly handles all Zod types
|
|
9
|
-
*/
|
|
10
|
-
export declare function zodToJsonSchemaCustom(schema: z.ZodType<any, any, any>): any;
|
|
11
|
-
/**
|
|
12
|
-
* Test function to verify the converter works
|
|
13
|
-
*/
|
|
14
|
-
export declare function testZodToJsonSchemaCustom(): any;
|
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Custom Zod to JSON Schema converter that properly handles Zod v4.1.12
|
|
4
|
-
* This replaces the broken zodToJsonSchema from zod-to-json-schema package
|
|
5
|
-
*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.zodToJsonSchemaCustom = zodToJsonSchemaCustom;
|
|
8
|
-
exports.testZodToJsonSchemaCustom = testZodToJsonSchemaCustom;
|
|
9
|
-
const zod_1 = require("zod");
|
|
10
|
-
/**
|
|
11
|
-
* Converts a Zod schema to JSON Schema format
|
|
12
|
-
* Preserves descriptions and properly handles all Zod types
|
|
13
|
-
*/
|
|
14
|
-
function zodToJsonSchemaCustom(schema) {
|
|
15
|
-
const def = schema._def;
|
|
16
|
-
// Handle different Zod types
|
|
17
|
-
switch (def.typeName) {
|
|
18
|
-
case 'ZodString': {
|
|
19
|
-
const jsonSchema = { type: 'string' };
|
|
20
|
-
if (def.description)
|
|
21
|
-
jsonSchema.description = def.description;
|
|
22
|
-
// Handle string validations
|
|
23
|
-
if (def.checks) {
|
|
24
|
-
for (const check of def.checks) {
|
|
25
|
-
if (check.kind === 'email') {
|
|
26
|
-
jsonSchema.format = 'email';
|
|
27
|
-
}
|
|
28
|
-
else if (check.kind === 'url') {
|
|
29
|
-
jsonSchema.format = 'uri';
|
|
30
|
-
}
|
|
31
|
-
else if (check.kind === 'uuid') {
|
|
32
|
-
jsonSchema.format = 'uuid';
|
|
33
|
-
}
|
|
34
|
-
else if (check.kind === 'min') {
|
|
35
|
-
jsonSchema.minLength = check.value;
|
|
36
|
-
}
|
|
37
|
-
else if (check.kind === 'max') {
|
|
38
|
-
jsonSchema.maxLength = check.value;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return jsonSchema;
|
|
43
|
-
}
|
|
44
|
-
case 'ZodNumber': {
|
|
45
|
-
const jsonSchema = { type: 'number' };
|
|
46
|
-
if (def.description)
|
|
47
|
-
jsonSchema.description = def.description;
|
|
48
|
-
if (def.checks) {
|
|
49
|
-
for (const check of def.checks) {
|
|
50
|
-
if (check.kind === 'min') {
|
|
51
|
-
jsonSchema.minimum = check.value;
|
|
52
|
-
}
|
|
53
|
-
else if (check.kind === 'max') {
|
|
54
|
-
jsonSchema.maximum = check.value;
|
|
55
|
-
}
|
|
56
|
-
else if (check.kind === 'int') {
|
|
57
|
-
jsonSchema.type = 'integer';
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
return jsonSchema;
|
|
62
|
-
}
|
|
63
|
-
case 'ZodBoolean': {
|
|
64
|
-
const jsonSchema = { type: 'boolean' };
|
|
65
|
-
if (def.description)
|
|
66
|
-
jsonSchema.description = def.description;
|
|
67
|
-
return jsonSchema;
|
|
68
|
-
}
|
|
69
|
-
case 'ZodObject': {
|
|
70
|
-
const jsonSchema = {
|
|
71
|
-
type: 'object',
|
|
72
|
-
properties: {},
|
|
73
|
-
required: []
|
|
74
|
-
};
|
|
75
|
-
if (def.description)
|
|
76
|
-
jsonSchema.description = def.description;
|
|
77
|
-
// Process each property in the object
|
|
78
|
-
const shape = def.shape();
|
|
79
|
-
for (const key in shape) {
|
|
80
|
-
const fieldSchema = shape[key];
|
|
81
|
-
jsonSchema.properties[key] = zodToJsonSchemaCustom(fieldSchema);
|
|
82
|
-
// Check if field is required (not optional)
|
|
83
|
-
if (!fieldSchema.isOptional()) {
|
|
84
|
-
jsonSchema.required.push(key);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
// Remove required array if empty
|
|
88
|
-
if (jsonSchema.required.length === 0) {
|
|
89
|
-
delete jsonSchema.required;
|
|
90
|
-
}
|
|
91
|
-
return jsonSchema;
|
|
92
|
-
}
|
|
93
|
-
case 'ZodArray': {
|
|
94
|
-
const jsonSchema = {
|
|
95
|
-
type: 'array',
|
|
96
|
-
items: zodToJsonSchemaCustom(def.type)
|
|
97
|
-
};
|
|
98
|
-
if (def.description)
|
|
99
|
-
jsonSchema.description = def.description;
|
|
100
|
-
if (def.minLength !== null) {
|
|
101
|
-
jsonSchema.minItems = def.minLength.value;
|
|
102
|
-
}
|
|
103
|
-
if (def.maxLength !== null) {
|
|
104
|
-
jsonSchema.maxItems = def.maxLength.value;
|
|
105
|
-
}
|
|
106
|
-
return jsonSchema;
|
|
107
|
-
}
|
|
108
|
-
case 'ZodEnum': {
|
|
109
|
-
const jsonSchema = {
|
|
110
|
-
type: 'string',
|
|
111
|
-
enum: def.values
|
|
112
|
-
};
|
|
113
|
-
if (def.description)
|
|
114
|
-
jsonSchema.description = def.description;
|
|
115
|
-
return jsonSchema;
|
|
116
|
-
}
|
|
117
|
-
case 'ZodUnion': {
|
|
118
|
-
const jsonSchema = {
|
|
119
|
-
oneOf: def.options.map((option) => zodToJsonSchemaCustom(option))
|
|
120
|
-
};
|
|
121
|
-
if (def.description)
|
|
122
|
-
jsonSchema.description = def.description;
|
|
123
|
-
return jsonSchema;
|
|
124
|
-
}
|
|
125
|
-
case 'ZodOptional': {
|
|
126
|
-
// Unwrap optional and mark as not required in parent
|
|
127
|
-
const innerSchema = zodToJsonSchemaCustom(def.innerType);
|
|
128
|
-
return innerSchema;
|
|
129
|
-
}
|
|
130
|
-
case 'ZodNullable': {
|
|
131
|
-
const innerSchema = zodToJsonSchemaCustom(def.innerType);
|
|
132
|
-
return {
|
|
133
|
-
oneOf: [innerSchema, { type: 'null' }]
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
|
-
case 'ZodRecord': {
|
|
137
|
-
const jsonSchema = {
|
|
138
|
-
type: 'object',
|
|
139
|
-
additionalProperties: zodToJsonSchemaCustom(def.valueType)
|
|
140
|
-
};
|
|
141
|
-
if (def.description)
|
|
142
|
-
jsonSchema.description = def.description;
|
|
143
|
-
return jsonSchema;
|
|
144
|
-
}
|
|
145
|
-
case 'ZodAny': {
|
|
146
|
-
const jsonSchema = {};
|
|
147
|
-
if (def.description)
|
|
148
|
-
jsonSchema.description = def.description;
|
|
149
|
-
return jsonSchema;
|
|
150
|
-
}
|
|
151
|
-
case 'ZodUnknown': {
|
|
152
|
-
const jsonSchema = {};
|
|
153
|
-
if (def.description)
|
|
154
|
-
jsonSchema.description = def.description;
|
|
155
|
-
return jsonSchema;
|
|
156
|
-
}
|
|
157
|
-
case 'ZodLiteral': {
|
|
158
|
-
const jsonSchema = {
|
|
159
|
-
const: def.value,
|
|
160
|
-
type: typeof def.value
|
|
161
|
-
};
|
|
162
|
-
if (def.description)
|
|
163
|
-
jsonSchema.description = def.description;
|
|
164
|
-
return jsonSchema;
|
|
165
|
-
}
|
|
166
|
-
case 'ZodDate': {
|
|
167
|
-
const jsonSchema = {
|
|
168
|
-
type: 'string',
|
|
169
|
-
format: 'date-time'
|
|
170
|
-
};
|
|
171
|
-
if (def.description)
|
|
172
|
-
jsonSchema.description = def.description;
|
|
173
|
-
return jsonSchema;
|
|
174
|
-
}
|
|
175
|
-
default: {
|
|
176
|
-
// Fallback for unknown types
|
|
177
|
-
console.warn(`Unknown Zod type: ${def.typeName}`);
|
|
178
|
-
return { type: 'string' };
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
/**
|
|
183
|
-
* Test function to verify the converter works
|
|
184
|
-
*/
|
|
185
|
-
function testZodToJsonSchemaCustom() {
|
|
186
|
-
const testSchema = zod_1.z.object({
|
|
187
|
-
to: zod_1.z.string().email().describe("Recipient email address"),
|
|
188
|
-
subject: zod_1.z.string().describe("Email subject line"),
|
|
189
|
-
body: zod_1.z.string().describe("Email content"),
|
|
190
|
-
emailAccount: zod_1.z.string().optional().describe("Specific email account")
|
|
191
|
-
});
|
|
192
|
-
const result = zodToJsonSchemaCustom(testSchema);
|
|
193
|
-
console.log('Test conversion result:', JSON.stringify(result, null, 2));
|
|
194
|
-
// Verify structure
|
|
195
|
-
if (result.type !== 'object' || !result.properties) {
|
|
196
|
-
throw new Error('Conversion failed: not an object schema');
|
|
197
|
-
}
|
|
198
|
-
if (!result.properties.to?.description) {
|
|
199
|
-
throw new Error('Conversion failed: description not preserved');
|
|
200
|
-
}
|
|
201
|
-
return result;
|
|
202
|
-
}
|
|
203
|
-
//# sourceMappingURL=zod-json-converter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"zod-json-converter.js","sourceRoot":"","sources":["../../src/service/zod-json-converter.ts"],"names":[],"mappings":"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"}
|