@retab/node 0.0.46 → 0.0.52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (263) hide show
  1. package/README.md +8 -215
  2. package/dist/api/client.d.ts +2 -2
  3. package/dist/api/client.d.ts.map +1 -1
  4. package/dist/api/client.js +2 -2
  5. package/dist/api/documents/client.d.ts +3 -3
  6. package/dist/api/documents/client.d.ts.map +1 -1
  7. package/dist/api/documents/client.js +3 -3
  8. package/dist/api/projects/client.d.ts +15 -0
  9. package/dist/api/projects/client.d.ts.map +1 -0
  10. package/dist/api/projects/client.js +43 -0
  11. package/dist/api/projects/documents/client.d.ts +12 -0
  12. package/dist/api/projects/documents/client.d.ts.map +1 -0
  13. package/dist/api/projects/documents/client.js +39 -0
  14. package/dist/api/projects/iterations/client.d.ts +17 -0
  15. package/dist/api/projects/iterations/client.d.ts.map +1 -0
  16. package/dist/api/projects/iterations/client.js +64 -0
  17. package/dist/client.d.ts +1 -0
  18. package/dist/client.d.ts.map +1 -1
  19. package/dist/client.js +6 -1
  20. package/dist/generated_types.d.ts +17837 -40090
  21. package/dist/generated_types.d.ts.map +1 -1
  22. package/dist/generated_types.js +309 -979
  23. package/dist/index.d.ts +7 -2
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +2 -2
  26. package/dist/types.d.ts +188 -80
  27. package/dist/types.d.ts.map +1 -1
  28. package/dist/types.js +22 -1
  29. package/package.json +6 -9
  30. package/dist/api/consensus/client.d.ts +0 -7
  31. package/dist/api/consensus/client.d.ts.map +0 -1
  32. package/dist/api/consensus/client.js +0 -14
  33. package/dist/errors.d.ts +0 -34
  34. package/dist/errors.d.ts.map +0 -1
  35. package/dist/errors.js +0 -53
  36. package/dist/resource.d.ts +0 -12
  37. package/dist/resource.d.ts.map +0 -1
  38. package/dist/resource.js +0 -19
  39. package/dist/resources/consensus/completions.d.ts +0 -66
  40. package/dist/resources/consensus/completions.d.ts.map +0 -1
  41. package/dist/resources/consensus/completions.js +0 -84
  42. package/dist/resources/consensus/index.d.ts +0 -72
  43. package/dist/resources/consensus/index.d.ts.map +0 -1
  44. package/dist/resources/consensus/index.js +0 -76
  45. package/dist/resources/consensus/responses.d.ts +0 -69
  46. package/dist/resources/consensus/responses.d.ts.map +0 -1
  47. package/dist/resources/consensus/responses.js +0 -99
  48. package/dist/resources/documents/extractions.d.ts +0 -74
  49. package/dist/resources/documents/extractions.d.ts.map +0 -1
  50. package/dist/resources/documents/extractions.js +0 -196
  51. package/dist/resources/documents/index.d.ts +0 -21
  52. package/dist/resources/documents/index.d.ts.map +0 -1
  53. package/dist/resources/documents/index.js +0 -55
  54. package/dist/resources/evaluations/documents.d.ts +0 -40
  55. package/dist/resources/evaluations/documents.d.ts.map +0 -1
  56. package/dist/resources/evaluations/documents.js +0 -123
  57. package/dist/resources/evaluations/index.d.ts +0 -14
  58. package/dist/resources/evaluations/index.d.ts.map +0 -1
  59. package/dist/resources/evaluations/index.js +0 -17
  60. package/dist/resources/evaluations/iterations.d.ts +0 -50
  61. package/dist/resources/evaluations/iterations.d.ts.map +0 -1
  62. package/dist/resources/evaluations/iterations.js +0 -156
  63. package/dist/resources/files.d.ts +0 -82
  64. package/dist/resources/files.d.ts.map +0 -1
  65. package/dist/resources/files.js +0 -150
  66. package/dist/resources/finetuning.d.ts +0 -105
  67. package/dist/resources/finetuning.d.ts.map +0 -1
  68. package/dist/resources/finetuning.js +0 -181
  69. package/dist/resources/index.d.ts +0 -11
  70. package/dist/resources/index.d.ts.map +0 -1
  71. package/dist/resources/index.js +0 -10
  72. package/dist/resources/models.d.ts +0 -57
  73. package/dist/resources/models.d.ts.map +0 -1
  74. package/dist/resources/models.js +0 -72
  75. package/dist/resources/processors/automations/endpoints.d.ts +0 -90
  76. package/dist/resources/processors/automations/endpoints.d.ts.map +0 -1
  77. package/dist/resources/processors/automations/endpoints.js +0 -145
  78. package/dist/resources/processors/automations/index.d.ts +0 -7
  79. package/dist/resources/processors/automations/index.d.ts.map +0 -1
  80. package/dist/resources/processors/automations/index.js +0 -6
  81. package/dist/resources/processors/automations/links.d.ts +0 -90
  82. package/dist/resources/processors/automations/links.d.ts.map +0 -1
  83. package/dist/resources/processors/automations/links.js +0 -149
  84. package/dist/resources/processors/automations/logs.d.ts +0 -35
  85. package/dist/resources/processors/automations/logs.d.ts.map +0 -1
  86. package/dist/resources/processors/automations/logs.js +0 -60
  87. package/dist/resources/processors/automations/mailboxes.d.ts +0 -102
  88. package/dist/resources/processors/automations/mailboxes.d.ts.map +0 -1
  89. package/dist/resources/processors/automations/mailboxes.js +0 -157
  90. package/dist/resources/processors/automations/outlook.d.ts +0 -114
  91. package/dist/resources/processors/automations/outlook.d.ts.map +0 -1
  92. package/dist/resources/processors/automations/outlook.js +0 -170
  93. package/dist/resources/processors/automations/tests.d.ts +0 -58
  94. package/dist/resources/processors/automations/tests.d.ts.map +0 -1
  95. package/dist/resources/processors/automations/tests.js +0 -90
  96. package/dist/resources/processors/index.d.ts +0 -303
  97. package/dist/resources/processors/index.d.ts.map +0 -1
  98. package/dist/resources/processors/index.js +0 -261
  99. package/dist/resources/schemas.d.ts +0 -63
  100. package/dist/resources/schemas.d.ts.map +0 -1
  101. package/dist/resources/schemas.js +0 -183
  102. package/dist/resources/secrets/external_api_keys.d.ts +0 -61
  103. package/dist/resources/secrets/external_api_keys.d.ts.map +0 -1
  104. package/dist/resources/secrets/external_api_keys.js +0 -120
  105. package/dist/resources/secrets/index.d.ts +0 -14
  106. package/dist/resources/secrets/index.d.ts.map +0 -1
  107. package/dist/resources/secrets/index.js +0 -17
  108. package/dist/resources/secrets/webhooks.d.ts +0 -73
  109. package/dist/resources/secrets/webhooks.d.ts.map +0 -1
  110. package/dist/resources/secrets/webhooks.js +0 -145
  111. package/dist/resources/usage.d.ts +0 -223
  112. package/dist/resources/usage.d.ts.map +0 -1
  113. package/dist/resources/usage.js +0 -310
  114. package/dist/types/ai_models.d.ts +0 -389
  115. package/dist/types/ai_models.d.ts.map +0 -1
  116. package/dist/types/ai_models.js +0 -145
  117. package/dist/types/automations/cron.d.ts +0 -28
  118. package/dist/types/automations/cron.d.ts.map +0 -1
  119. package/dist/types/automations/cron.js +0 -1
  120. package/dist/types/automations/endpoints.d.ts +0 -13
  121. package/dist/types/automations/endpoints.d.ts.map +0 -1
  122. package/dist/types/automations/endpoints.js +0 -1
  123. package/dist/types/automations/index.d.ts +0 -7
  124. package/dist/types/automations/index.d.ts.map +0 -1
  125. package/dist/types/automations/index.js +0 -6
  126. package/dist/types/automations/links.d.ts +0 -15
  127. package/dist/types/automations/links.d.ts.map +0 -1
  128. package/dist/types/automations/links.js +0 -1
  129. package/dist/types/automations/mailboxes.d.ts +0 -18
  130. package/dist/types/automations/mailboxes.d.ts.map +0 -1
  131. package/dist/types/automations/mailboxes.js +0 -1
  132. package/dist/types/automations/outlook.d.ts +0 -37
  133. package/dist/types/automations/outlook.d.ts.map +0 -1
  134. package/dist/types/automations/outlook.js +0 -1
  135. package/dist/types/automations/webhooks.d.ts +0 -13
  136. package/dist/types/automations/webhooks.d.ts.map +0 -1
  137. package/dist/types/automations/webhooks.js +0 -1
  138. package/dist/types/browser_canvas.d.ts +0 -4
  139. package/dist/types/browser_canvas.d.ts.map +0 -1
  140. package/dist/types/browser_canvas.js +0 -2
  141. package/dist/types/chat.d.ts +0 -99
  142. package/dist/types/chat.d.ts.map +0 -1
  143. package/dist/types/chat.js +0 -20
  144. package/dist/types/consensus.d.ts +0 -10
  145. package/dist/types/consensus.d.ts.map +0 -1
  146. package/dist/types/consensus.js +0 -1
  147. package/dist/types/db/annotations.d.ts +0 -108
  148. package/dist/types/db/annotations.d.ts.map +0 -1
  149. package/dist/types/db/annotations.js +0 -6
  150. package/dist/types/db/files.d.ts +0 -133
  151. package/dist/types/db/files.d.ts.map +0 -1
  152. package/dist/types/db/files.js +0 -5
  153. package/dist/types/documents/extractions.d.ts +0 -1849
  154. package/dist/types/documents/extractions.d.ts.map +0 -1
  155. package/dist/types/documents/extractions.js +0 -211
  156. package/dist/types/documents/processing.d.ts +0 -249
  157. package/dist/types/documents/processing.d.ts.map +0 -1
  158. package/dist/types/documents/processing.js +0 -6
  159. package/dist/types/evaluations/iterations.d.ts +0 -41
  160. package/dist/types/evaluations/iterations.d.ts.map +0 -1
  161. package/dist/types/evaluations/iterations.js +0 -1
  162. package/dist/types/jobs/base.d.ts +0 -162
  163. package/dist/types/jobs/base.d.ts.map +0 -1
  164. package/dist/types/jobs/base.js +0 -6
  165. package/dist/types/jobs/specialized.d.ts +0 -200
  166. package/dist/types/jobs/specialized.d.ts.map +0 -1
  167. package/dist/types/jobs/specialized.js +0 -37
  168. package/dist/types/logs.d.ts +0 -92
  169. package/dist/types/logs.d.ts.map +0 -1
  170. package/dist/types/logs.js +0 -1
  171. package/dist/types/mime.d.ts +0 -426
  172. package/dist/types/mime.d.ts.map +0 -1
  173. package/dist/types/mime.js +0 -48
  174. package/dist/types/modalities.d.ts +0 -31
  175. package/dist/types/modalities.d.ts.map +0 -1
  176. package/dist/types/modalities.js +0 -109
  177. package/dist/types/pagination.d.ts +0 -5
  178. package/dist/types/pagination.d.ts.map +0 -1
  179. package/dist/types/pagination.js +0 -1
  180. package/dist/types/schemas/enhancement.d.ts +0 -250
  181. package/dist/types/schemas/enhancement.d.ts.map +0 -1
  182. package/dist/types/schemas/enhancement.js +0 -6
  183. package/dist/types/schemas/generate.d.ts +0 -160
  184. package/dist/types/schemas/generate.d.ts.map +0 -1
  185. package/dist/types/schemas/generate.js +0 -19
  186. package/dist/types/schemas/object.d.ts +0 -116
  187. package/dist/types/schemas/object.d.ts.map +0 -1
  188. package/dist/types/schemas/object.js +0 -861
  189. package/dist/types/secrets/external_api_keys.d.ts +0 -27
  190. package/dist/types/secrets/external_api_keys.d.ts.map +0 -1
  191. package/dist/types/secrets/external_api_keys.js +0 -11
  192. package/dist/types/secrets/index.d.ts +0 -2
  193. package/dist/types/secrets/index.d.ts.map +0 -1
  194. package/dist/types/secrets/index.js +0 -1
  195. package/dist/types/standards.d.ts +0 -37
  196. package/dist/types/standards.d.ts.map +0 -1
  197. package/dist/types/standards.js +0 -1
  198. package/dist/utils/ai_models.d.ts +0 -10
  199. package/dist/utils/ai_models.d.ts.map +0 -1
  200. package/dist/utils/ai_models.js +0 -183
  201. package/dist/utils/batch_processing.d.ts +0 -227
  202. package/dist/utils/batch_processing.d.ts.map +0 -1
  203. package/dist/utils/batch_processing.js +0 -268
  204. package/dist/utils/benchmarking.d.ts +0 -115
  205. package/dist/utils/benchmarking.d.ts.map +0 -1
  206. package/dist/utils/benchmarking.js +0 -355
  207. package/dist/utils/chat.d.ts +0 -70
  208. package/dist/utils/chat.d.ts.map +0 -1
  209. package/dist/utils/chat.js +0 -79
  210. package/dist/utils/cost_calculation.d.ts +0 -26
  211. package/dist/utils/cost_calculation.d.ts.map +0 -1
  212. package/dist/utils/cost_calculation.js +0 -99
  213. package/dist/utils/datasets.d.ts +0 -135
  214. package/dist/utils/datasets.d.ts.map +0 -1
  215. package/dist/utils/datasets.js +0 -359
  216. package/dist/utils/display.d.ts +0 -108
  217. package/dist/utils/display.d.ts.map +0 -1
  218. package/dist/utils/display.js +0 -244
  219. package/dist/utils/hash.d.ts +0 -18
  220. package/dist/utils/hash.d.ts.map +0 -1
  221. package/dist/utils/hash.js +0 -31
  222. package/dist/utils/hashing.d.ts +0 -18
  223. package/dist/utils/hashing.d.ts.map +0 -1
  224. package/dist/utils/hashing.js +0 -28
  225. package/dist/utils/index.d.ts +0 -8
  226. package/dist/utils/index.d.ts.map +0 -1
  227. package/dist/utils/index.js +0 -10
  228. package/dist/utils/json_schema.d.ts +0 -18
  229. package/dist/utils/json_schema.d.ts.map +0 -1
  230. package/dist/utils/json_schema.js +0 -334
  231. package/dist/utils/json_schema_utils.d.ts +0 -42
  232. package/dist/utils/json_schema_utils.d.ts.map +0 -1
  233. package/dist/utils/json_schema_utils.js +0 -212
  234. package/dist/utils/jsonl.d.ts +0 -60
  235. package/dist/utils/jsonl.d.ts.map +0 -1
  236. package/dist/utils/jsonl.js +0 -259
  237. package/dist/utils/mime.d.ts +0 -6
  238. package/dist/utils/mime.d.ts.map +0 -1
  239. package/dist/utils/mime.js +0 -129
  240. package/dist/utils/model_cards.d.ts +0 -219
  241. package/dist/utils/model_cards.d.ts.map +0 -1
  242. package/dist/utils/model_cards.js +0 -462
  243. package/dist/utils/prompt_optimization.d.ts +0 -96
  244. package/dist/utils/prompt_optimization.d.ts.map +0 -1
  245. package/dist/utils/prompt_optimization.js +0 -275
  246. package/dist/utils/responses.d.ts +0 -35
  247. package/dist/utils/responses.d.ts.map +0 -1
  248. package/dist/utils/responses.js +0 -37
  249. package/dist/utils/stream.d.ts +0 -13
  250. package/dist/utils/stream.d.ts.map +0 -1
  251. package/dist/utils/stream.js +0 -64
  252. package/dist/utils/stream_context_managers.d.ts +0 -147
  253. package/dist/utils/stream_context_managers.d.ts.map +0 -1
  254. package/dist/utils/stream_context_managers.js +0 -380
  255. package/dist/utils/usage.d.ts +0 -57
  256. package/dist/utils/usage.d.ts.map +0 -1
  257. package/dist/utils/usage.js +0 -97
  258. package/dist/utils/webhook_secrets.d.ts +0 -59
  259. package/dist/utils/webhook_secrets.d.ts.map +0 -1
  260. package/dist/utils/webhook_secrets.js +0 -107
  261. package/dist/utils/zod_to_json_schema.d.ts +0 -11
  262. package/dist/utils/zod_to_json_schema.d.ts.map +0 -1
  263. package/dist/utils/zod_to_json_schema.js +0 -123
@@ -1,107 +0,0 @@
1
- import { createHash, createHmac, timingSafeEqual } from 'crypto';
2
- /**
3
- * Generate webhook signature for payload
4
- */
5
- export function generateSignature(payload, secret, timestamp, encoding = 'hex') {
6
- const ts = timestamp || Math.floor(Date.now() / 1000);
7
- const payloadString = Buffer.isBuffer(payload) ? payload.toString('utf8') : payload;
8
- const signedPayload = `${ts}.${payloadString}`;
9
- const hmac = createHmac('sha256', secret);
10
- hmac.update(signedPayload);
11
- return hmac.digest(encoding);
12
- }
13
- /**
14
- * Verify webhook signature
15
- */
16
- export function verifySignature(payload, signature, secret, timestamp, config = {}) {
17
- const { tolerance = 300, encoding = 'hex' } = config; // 5 minute default tolerance
18
- try {
19
- const ts = timestamp || Math.floor(Date.now() / 1000);
20
- const expectedSignature = generateSignature(payload, secret, ts, encoding);
21
- // Use timing-safe comparison to prevent timing attacks
22
- const sigBuffer = Buffer.from(signature, encoding);
23
- const expectedBuffer = Buffer.from(expectedSignature, encoding);
24
- if (sigBuffer.length !== expectedBuffer.length) {
25
- return false;
26
- }
27
- const isSignatureValid = timingSafeEqual(sigBuffer, expectedBuffer);
28
- // Check timestamp tolerance if provided
29
- if (timestamp && tolerance > 0) {
30
- const now = Math.floor(Date.now() / 1000);
31
- const isTimestampValid = Math.abs(now - timestamp) <= tolerance;
32
- return isSignatureValid && isTimestampValid;
33
- }
34
- return isSignatureValid;
35
- }
36
- catch (error) {
37
- return false;
38
- }
39
- }
40
- /**
41
- * Parse webhook headers for signature and timestamp
42
- */
43
- export function parseWebhookHeaders(headers) {
44
- const signature = headers['x-webhook-signature'] ||
45
- headers['x-retab-signature'] ||
46
- headers['signature'];
47
- const timestampHeader = headers['x-webhook-timestamp'] ||
48
- headers['x-retab-timestamp'] ||
49
- headers['timestamp'];
50
- const timestamp = timestampHeader ? parseInt(timestampHeader, 10) : undefined;
51
- return { signature, timestamp };
52
- }
53
- /**
54
- * Verify webhook request
55
- */
56
- export function verifyWebhookRequest(payload, headers, secret, config = {}) {
57
- const { signature, timestamp } = parseWebhookHeaders(headers);
58
- if (!signature) {
59
- return false;
60
- }
61
- return verifySignature(payload, signature, secret, timestamp, config);
62
- }
63
- /**
64
- * Generate webhook secret
65
- */
66
- export function generateWebhookSecret(length = 32) {
67
- return createHash('sha256')
68
- .update(Math.random().toString())
69
- .update(Date.now().toString())
70
- .digest('hex')
71
- .slice(0, length);
72
- }
73
- /**
74
- * Create webhook signature header
75
- */
76
- export function createSignatureHeader(payload, secret, encoding = 'hex') {
77
- const timestamp = Math.floor(Date.now() / 1000);
78
- const signature = generateSignature(payload, secret, timestamp, encoding);
79
- return { signature, timestamp };
80
- }
81
- /**
82
- * Webhook middleware for Express-like frameworks
83
- */
84
- export function webhookMiddleware(secret, config = {}) {
85
- return (req, res, next) => {
86
- try {
87
- const payload = req.rawBody || req.body;
88
- const headers = req.headers;
89
- if (!verifyWebhookRequest(payload, headers, secret, config)) {
90
- return res.status(401).json({ error: 'Invalid webhook signature' });
91
- }
92
- next();
93
- }
94
- catch (error) {
95
- return res.status(400).json({ error: 'Webhook verification failed' });
96
- }
97
- };
98
- }
99
- export default {
100
- generateSignature,
101
- verifySignature,
102
- parseWebhookHeaders,
103
- verifyWebhookRequest,
104
- generateWebhookSecret,
105
- createSignatureHeader,
106
- webhookMiddleware,
107
- };
@@ -1,11 +0,0 @@
1
- import { z } from 'zod';
2
- /**
3
- * Convert a Zod schema to JSON Schema.
4
- * This is a basic implementation that handles common Zod types.
5
- */
6
- export declare function zodToJsonSchema(zodSchema: z.ZodType<any>): Record<string, any>;
7
- /**
8
- * Extract descriptions from Zod schema and convert them to field descriptions.
9
- */
10
- export declare function extractZodDescriptions(zodSchema: z.ZodType<any>): Record<string, string>;
11
- //# sourceMappingURL=zod_to_json_schema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"zod_to_json_schema.d.ts","sourceRoot":"","sources":["../../src/utils/zod_to_json_schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA8G9E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA0BxF"}
@@ -1,123 +0,0 @@
1
- /**
2
- * Convert a Zod schema to JSON Schema.
3
- * This is a basic implementation that handles common Zod types.
4
- */
5
- export function zodToJsonSchema(zodSchema) {
6
- function convertZodType(schema) {
7
- const def = schema._def;
8
- switch (def.typeName) {
9
- case 'ZodString':
10
- const stringSchema = { type: 'string' };
11
- if (def.description) {
12
- stringSchema.description = def.description;
13
- }
14
- return stringSchema;
15
- case 'ZodNumber':
16
- const numberSchema = { type: 'number' };
17
- if (def.description) {
18
- numberSchema.description = def.description;
19
- }
20
- return numberSchema;
21
- case 'ZodBoolean':
22
- const booleanSchema = { type: 'boolean' };
23
- if (def.description) {
24
- booleanSchema.description = def.description;
25
- }
26
- return booleanSchema;
27
- case 'ZodArray':
28
- return {
29
- type: 'array',
30
- items: convertZodType(def.type),
31
- ...(def.description && { description: def.description })
32
- };
33
- case 'ZodObject':
34
- const properties = {};
35
- const required = [];
36
- for (const [key, value] of Object.entries(def.shape())) {
37
- properties[key] = convertZodType(value);
38
- // Check if the field is required (not optional)
39
- const zodValue = value;
40
- if (!zodValue._def.typeName?.includes('Optional') &&
41
- zodValue._def.typeName !== 'ZodOptional') {
42
- required.push(key);
43
- }
44
- }
45
- const objectSchema = {
46
- type: 'object',
47
- properties,
48
- additionalProperties: false
49
- };
50
- if (required.length > 0) {
51
- objectSchema.required = required;
52
- }
53
- if (def.description) {
54
- objectSchema.description = def.description;
55
- }
56
- return objectSchema;
57
- case 'ZodOptional':
58
- return convertZodType(def.innerType);
59
- case 'ZodNullable':
60
- const innerSchema = convertZodType(def.innerType);
61
- return {
62
- ...innerSchema,
63
- nullable: true
64
- };
65
- case 'ZodUnion':
66
- return {
67
- anyOf: def.options.map((option) => convertZodType(option))
68
- };
69
- case 'ZodEnum':
70
- return {
71
- type: 'string',
72
- enum: def.values,
73
- ...(def.description && { description: def.description })
74
- };
75
- case 'ZodLiteral':
76
- return {
77
- type: typeof def.value,
78
- const: def.value,
79
- ...(def.description && { description: def.description })
80
- };
81
- case 'ZodRecord':
82
- return {
83
- type: 'object',
84
- additionalProperties: convertZodType(def.valueType),
85
- ...(def.description && { description: def.description })
86
- };
87
- default:
88
- // Fallback for unknown types
89
- return {
90
- type: 'string',
91
- description: def.description || `Unsupported Zod type: ${def.typeName}`
92
- };
93
- }
94
- }
95
- return convertZodType(zodSchema);
96
- }
97
- /**
98
- * Extract descriptions from Zod schema and convert them to field descriptions.
99
- */
100
- export function extractZodDescriptions(zodSchema) {
101
- const descriptions = {};
102
- function extractFromType(schema, path = '') {
103
- const def = schema._def;
104
- if (def.typeName === 'ZodObject') {
105
- for (const [key, value] of Object.entries(def.shape())) {
106
- const currentPath = path ? `${path}.${key}` : key;
107
- const zodValue = value;
108
- if (zodValue._def.description) {
109
- descriptions[currentPath] = zodValue._def.description;
110
- }
111
- extractFromType(zodValue, currentPath);
112
- }
113
- }
114
- else if (def.typeName === 'ZodOptional' || def.typeName === 'ZodNullable') {
115
- extractFromType(def.innerType, path);
116
- }
117
- else if (def.typeName === 'ZodArray') {
118
- extractFromType(def.type, path);
119
- }
120
- }
121
- extractFromType(zodSchema);
122
- return descriptions;
123
- }