@retab/node 0.0.0-reserved → 0.0.42

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 (270) hide show
  1. package/README.md +293 -2
  2. package/dist/api/client.d.ts +15 -0
  3. package/dist/api/client.d.ts.map +1 -0
  4. package/dist/api/client.js +16 -0
  5. package/dist/api/consensus/client.d.ts +7 -0
  6. package/dist/api/consensus/client.d.ts.map +1 -0
  7. package/dist/api/consensus/client.js +14 -0
  8. package/dist/api/deployments/client.d.ts +20 -0
  9. package/dist/api/deployments/client.d.ts.map +1 -0
  10. package/dist/api/deployments/client.js +23 -0
  11. package/dist/api/documents/client.d.ts +10 -0
  12. package/dist/api/documents/client.d.ts.map +1 -0
  13. package/dist/api/documents/client.js +35 -0
  14. package/dist/api/models/client.d.ts +17 -0
  15. package/dist/api/models/client.d.ts.map +1 -0
  16. package/dist/api/models/client.js +15 -0
  17. package/dist/api/schemas/client.d.ts +12 -0
  18. package/dist/api/schemas/client.d.ts.map +1 -0
  19. package/dist/api/schemas/client.js +14 -0
  20. package/dist/client.d.ts +50 -0
  21. package/dist/client.d.ts.map +1 -0
  22. package/dist/client.js +135 -0
  23. package/dist/errors.d.ts +34 -0
  24. package/dist/errors.d.ts.map +1 -0
  25. package/dist/errors.js +53 -0
  26. package/dist/generated_types.d.ts +64373 -0
  27. package/dist/generated_types.d.ts.map +1 -0
  28. package/dist/generated_types.js +2267 -0
  29. package/dist/index.d.ts +8 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +9 -0
  32. package/dist/mime.d.ts +5 -0
  33. package/dist/mime.d.ts.map +1 -0
  34. package/dist/mime.js +66 -0
  35. package/dist/resource.d.ts +12 -0
  36. package/dist/resource.d.ts.map +1 -0
  37. package/dist/resource.js +19 -0
  38. package/dist/resources/consensus/completions.d.ts +66 -0
  39. package/dist/resources/consensus/completions.d.ts.map +1 -0
  40. package/dist/resources/consensus/completions.js +84 -0
  41. package/dist/resources/consensus/index.d.ts +72 -0
  42. package/dist/resources/consensus/index.d.ts.map +1 -0
  43. package/dist/resources/consensus/index.js +76 -0
  44. package/dist/resources/consensus/responses.d.ts +69 -0
  45. package/dist/resources/consensus/responses.d.ts.map +1 -0
  46. package/dist/resources/consensus/responses.js +99 -0
  47. package/dist/resources/documents/extractions.d.ts +74 -0
  48. package/dist/resources/documents/extractions.d.ts.map +1 -0
  49. package/dist/resources/documents/extractions.js +196 -0
  50. package/dist/resources/documents/index.d.ts +21 -0
  51. package/dist/resources/documents/index.d.ts.map +1 -0
  52. package/dist/resources/documents/index.js +55 -0
  53. package/dist/resources/evaluations/documents.d.ts +40 -0
  54. package/dist/resources/evaluations/documents.d.ts.map +1 -0
  55. package/dist/resources/evaluations/documents.js +123 -0
  56. package/dist/resources/evaluations/index.d.ts +14 -0
  57. package/dist/resources/evaluations/index.d.ts.map +1 -0
  58. package/dist/resources/evaluations/index.js +17 -0
  59. package/dist/resources/evaluations/iterations.d.ts +50 -0
  60. package/dist/resources/evaluations/iterations.d.ts.map +1 -0
  61. package/dist/resources/evaluations/iterations.js +156 -0
  62. package/dist/resources/files.d.ts +82 -0
  63. package/dist/resources/files.d.ts.map +1 -0
  64. package/dist/resources/files.js +150 -0
  65. package/dist/resources/finetuning.d.ts +105 -0
  66. package/dist/resources/finetuning.d.ts.map +1 -0
  67. package/dist/resources/finetuning.js +181 -0
  68. package/dist/resources/index.d.ts +11 -0
  69. package/dist/resources/index.d.ts.map +1 -0
  70. package/dist/resources/index.js +10 -0
  71. package/dist/resources/models.d.ts +57 -0
  72. package/dist/resources/models.d.ts.map +1 -0
  73. package/dist/resources/models.js +72 -0
  74. package/dist/resources/processors/automations/endpoints.d.ts +90 -0
  75. package/dist/resources/processors/automations/endpoints.d.ts.map +1 -0
  76. package/dist/resources/processors/automations/endpoints.js +145 -0
  77. package/dist/resources/processors/automations/index.d.ts +7 -0
  78. package/dist/resources/processors/automations/index.d.ts.map +1 -0
  79. package/dist/resources/processors/automations/index.js +6 -0
  80. package/dist/resources/processors/automations/links.d.ts +90 -0
  81. package/dist/resources/processors/automations/links.d.ts.map +1 -0
  82. package/dist/resources/processors/automations/links.js +149 -0
  83. package/dist/resources/processors/automations/logs.d.ts +35 -0
  84. package/dist/resources/processors/automations/logs.d.ts.map +1 -0
  85. package/dist/resources/processors/automations/logs.js +60 -0
  86. package/dist/resources/processors/automations/mailboxes.d.ts +102 -0
  87. package/dist/resources/processors/automations/mailboxes.d.ts.map +1 -0
  88. package/dist/resources/processors/automations/mailboxes.js +157 -0
  89. package/dist/resources/processors/automations/outlook.d.ts +114 -0
  90. package/dist/resources/processors/automations/outlook.d.ts.map +1 -0
  91. package/dist/resources/processors/automations/outlook.js +170 -0
  92. package/dist/resources/processors/automations/tests.d.ts +58 -0
  93. package/dist/resources/processors/automations/tests.d.ts.map +1 -0
  94. package/dist/resources/processors/automations/tests.js +90 -0
  95. package/dist/resources/processors/index.d.ts +303 -0
  96. package/dist/resources/processors/index.d.ts.map +1 -0
  97. package/dist/resources/processors/index.js +261 -0
  98. package/dist/resources/schemas.d.ts +63 -0
  99. package/dist/resources/schemas.d.ts.map +1 -0
  100. package/dist/resources/schemas.js +183 -0
  101. package/dist/resources/secrets/external_api_keys.d.ts +61 -0
  102. package/dist/resources/secrets/external_api_keys.d.ts.map +1 -0
  103. package/dist/resources/secrets/external_api_keys.js +120 -0
  104. package/dist/resources/secrets/index.d.ts +14 -0
  105. package/dist/resources/secrets/index.d.ts.map +1 -0
  106. package/dist/resources/secrets/index.js +17 -0
  107. package/dist/resources/secrets/webhooks.d.ts +73 -0
  108. package/dist/resources/secrets/webhooks.d.ts.map +1 -0
  109. package/dist/resources/secrets/webhooks.js +145 -0
  110. package/dist/resources/usage.d.ts +223 -0
  111. package/dist/resources/usage.d.ts.map +1 -0
  112. package/dist/resources/usage.js +310 -0
  113. package/dist/types/ai_models.d.ts +389 -0
  114. package/dist/types/ai_models.d.ts.map +1 -0
  115. package/dist/types/ai_models.js +145 -0
  116. package/dist/types/automations/cron.d.ts +28 -0
  117. package/dist/types/automations/cron.d.ts.map +1 -0
  118. package/dist/types/automations/cron.js +1 -0
  119. package/dist/types/automations/endpoints.d.ts +13 -0
  120. package/dist/types/automations/endpoints.d.ts.map +1 -0
  121. package/dist/types/automations/endpoints.js +1 -0
  122. package/dist/types/automations/index.d.ts +7 -0
  123. package/dist/types/automations/index.d.ts.map +1 -0
  124. package/dist/types/automations/index.js +6 -0
  125. package/dist/types/automations/links.d.ts +15 -0
  126. package/dist/types/automations/links.d.ts.map +1 -0
  127. package/dist/types/automations/links.js +1 -0
  128. package/dist/types/automations/mailboxes.d.ts +18 -0
  129. package/dist/types/automations/mailboxes.d.ts.map +1 -0
  130. package/dist/types/automations/mailboxes.js +1 -0
  131. package/dist/types/automations/outlook.d.ts +37 -0
  132. package/dist/types/automations/outlook.d.ts.map +1 -0
  133. package/dist/types/automations/outlook.js +1 -0
  134. package/dist/types/automations/webhooks.d.ts +13 -0
  135. package/dist/types/automations/webhooks.d.ts.map +1 -0
  136. package/dist/types/automations/webhooks.js +1 -0
  137. package/dist/types/browser_canvas.d.ts +4 -0
  138. package/dist/types/browser_canvas.d.ts.map +1 -0
  139. package/dist/types/browser_canvas.js +2 -0
  140. package/dist/types/chat.d.ts +99 -0
  141. package/dist/types/chat.d.ts.map +1 -0
  142. package/dist/types/chat.js +20 -0
  143. package/dist/types/consensus.d.ts +10 -0
  144. package/dist/types/consensus.d.ts.map +1 -0
  145. package/dist/types/consensus.js +1 -0
  146. package/dist/types/db/annotations.d.ts +108 -0
  147. package/dist/types/db/annotations.d.ts.map +1 -0
  148. package/dist/types/db/annotations.js +6 -0
  149. package/dist/types/db/files.d.ts +133 -0
  150. package/dist/types/db/files.d.ts.map +1 -0
  151. package/dist/types/db/files.js +5 -0
  152. package/dist/types/documents/extractions.d.ts +1849 -0
  153. package/dist/types/documents/extractions.d.ts.map +1 -0
  154. package/dist/types/documents/extractions.js +211 -0
  155. package/dist/types/documents/processing.d.ts +249 -0
  156. package/dist/types/documents/processing.d.ts.map +1 -0
  157. package/dist/types/documents/processing.js +6 -0
  158. package/dist/types/evaluations/iterations.d.ts +41 -0
  159. package/dist/types/evaluations/iterations.d.ts.map +1 -0
  160. package/dist/types/evaluations/iterations.js +1 -0
  161. package/dist/types/jobs/base.d.ts +162 -0
  162. package/dist/types/jobs/base.d.ts.map +1 -0
  163. package/dist/types/jobs/base.js +6 -0
  164. package/dist/types/jobs/specialized.d.ts +200 -0
  165. package/dist/types/jobs/specialized.d.ts.map +1 -0
  166. package/dist/types/jobs/specialized.js +37 -0
  167. package/dist/types/logs.d.ts +92 -0
  168. package/dist/types/logs.d.ts.map +1 -0
  169. package/dist/types/logs.js +1 -0
  170. package/dist/types/mime.d.ts +426 -0
  171. package/dist/types/mime.d.ts.map +1 -0
  172. package/dist/types/mime.js +48 -0
  173. package/dist/types/modalities.d.ts +31 -0
  174. package/dist/types/modalities.d.ts.map +1 -0
  175. package/dist/types/modalities.js +109 -0
  176. package/dist/types/pagination.d.ts +5 -0
  177. package/dist/types/pagination.d.ts.map +1 -0
  178. package/dist/types/pagination.js +1 -0
  179. package/dist/types/schemas/enhancement.d.ts +250 -0
  180. package/dist/types/schemas/enhancement.d.ts.map +1 -0
  181. package/dist/types/schemas/enhancement.js +6 -0
  182. package/dist/types/schemas/generate.d.ts +160 -0
  183. package/dist/types/schemas/generate.d.ts.map +1 -0
  184. package/dist/types/schemas/generate.js +19 -0
  185. package/dist/types/schemas/object.d.ts +116 -0
  186. package/dist/types/schemas/object.d.ts.map +1 -0
  187. package/dist/types/schemas/object.js +861 -0
  188. package/dist/types/secrets/external_api_keys.d.ts +27 -0
  189. package/dist/types/secrets/external_api_keys.d.ts.map +1 -0
  190. package/dist/types/secrets/external_api_keys.js +11 -0
  191. package/dist/types/secrets/index.d.ts +2 -0
  192. package/dist/types/secrets/index.d.ts.map +1 -0
  193. package/dist/types/secrets/index.js +1 -0
  194. package/dist/types/standards.d.ts +37 -0
  195. package/dist/types/standards.d.ts.map +1 -0
  196. package/dist/types/standards.js +1 -0
  197. package/dist/types.d.ts +276 -0
  198. package/dist/types.d.ts.map +1 -0
  199. package/dist/types.js +85 -0
  200. package/dist/utils/ai_models.d.ts +10 -0
  201. package/dist/utils/ai_models.d.ts.map +1 -0
  202. package/dist/utils/ai_models.js +183 -0
  203. package/dist/utils/batch_processing.d.ts +227 -0
  204. package/dist/utils/batch_processing.d.ts.map +1 -0
  205. package/dist/utils/batch_processing.js +268 -0
  206. package/dist/utils/benchmarking.d.ts +115 -0
  207. package/dist/utils/benchmarking.d.ts.map +1 -0
  208. package/dist/utils/benchmarking.js +355 -0
  209. package/dist/utils/chat.d.ts +70 -0
  210. package/dist/utils/chat.d.ts.map +1 -0
  211. package/dist/utils/chat.js +79 -0
  212. package/dist/utils/cost_calculation.d.ts +26 -0
  213. package/dist/utils/cost_calculation.d.ts.map +1 -0
  214. package/dist/utils/cost_calculation.js +99 -0
  215. package/dist/utils/datasets.d.ts +135 -0
  216. package/dist/utils/datasets.d.ts.map +1 -0
  217. package/dist/utils/datasets.js +359 -0
  218. package/dist/utils/display.d.ts +108 -0
  219. package/dist/utils/display.d.ts.map +1 -0
  220. package/dist/utils/display.js +244 -0
  221. package/dist/utils/hash.d.ts +18 -0
  222. package/dist/utils/hash.d.ts.map +1 -0
  223. package/dist/utils/hash.js +31 -0
  224. package/dist/utils/hashing.d.ts +18 -0
  225. package/dist/utils/hashing.d.ts.map +1 -0
  226. package/dist/utils/hashing.js +28 -0
  227. package/dist/utils/index.d.ts +8 -0
  228. package/dist/utils/index.d.ts.map +1 -0
  229. package/dist/utils/index.js +10 -0
  230. package/dist/utils/json_schema.d.ts +18 -0
  231. package/dist/utils/json_schema.d.ts.map +1 -0
  232. package/dist/utils/json_schema.js +334 -0
  233. package/dist/utils/json_schema_utils.d.ts +42 -0
  234. package/dist/utils/json_schema_utils.d.ts.map +1 -0
  235. package/dist/utils/json_schema_utils.js +212 -0
  236. package/dist/utils/jsonl.d.ts +60 -0
  237. package/dist/utils/jsonl.d.ts.map +1 -0
  238. package/dist/utils/jsonl.js +259 -0
  239. package/dist/utils/mime.d.ts +6 -0
  240. package/dist/utils/mime.d.ts.map +1 -0
  241. package/dist/utils/mime.js +129 -0
  242. package/dist/utils/model_cards.d.ts +219 -0
  243. package/dist/utils/model_cards.d.ts.map +1 -0
  244. package/dist/utils/model_cards.js +462 -0
  245. package/dist/utils/prompt_optimization.d.ts +96 -0
  246. package/dist/utils/prompt_optimization.d.ts.map +1 -0
  247. package/dist/utils/prompt_optimization.js +275 -0
  248. package/dist/utils/responses.d.ts +35 -0
  249. package/dist/utils/responses.d.ts.map +1 -0
  250. package/dist/utils/responses.js +37 -0
  251. package/dist/utils/stream.d.ts +13 -0
  252. package/dist/utils/stream.d.ts.map +1 -0
  253. package/dist/utils/stream.js +64 -0
  254. package/dist/utils/stream_context_managers.d.ts +147 -0
  255. package/dist/utils/stream_context_managers.d.ts.map +1 -0
  256. package/dist/utils/stream_context_managers.js +380 -0
  257. package/dist/utils/usage.d.ts +57 -0
  258. package/dist/utils/usage.d.ts.map +1 -0
  259. package/dist/utils/usage.js +97 -0
  260. package/dist/utils/webhook_secrets.d.ts +59 -0
  261. package/dist/utils/webhook_secrets.d.ts.map +1 -0
  262. package/dist/utils/webhook_secrets.js +107 -0
  263. package/dist/utils/zod_to_json_schema.d.ts +11 -0
  264. package/dist/utils/zod_to_json_schema.d.ts.map +1 -0
  265. package/dist/utils/zod_to_json_schema.js +123 -0
  266. package/dist/utils.d.ts +19 -0
  267. package/dist/utils.d.ts.map +1 -0
  268. package/dist/utils.js +1 -0
  269. package/package.json +62 -6
  270. package/index.js +0 -7
@@ -0,0 +1,107 @@
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
+ };
@@ -0,0 +1,11 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,123 @@
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
+ }
@@ -0,0 +1,19 @@
1
+ type SchemaTypeInfer<T extends string> = T extends "string" ? string : T extends "number" ? number : T extends "integer" ? number : T extends "boolean" ? boolean : T extends "array" ? any[] : T extends "object" ? Record<string, any> : T extends "null" ? null : never;
2
+ type BuildAnyOf<T> = T extends [infer U, ...infer Rest] ? SchemaInfer<U> | BuildAnyOf<Rest> : never;
3
+ type BuildAllOf<T> = T extends [infer U, ...infer Rest] ? SchemaInfer<U> & BuildAllOf<Rest> : any;
4
+ type WalkProp<Ctx, Prop> = Ctx[Prop];
5
+ type ResolveRelativeRef<Ctx, Ref extends string> = Ref extends `${infer Prop}/${infer Rest}` ? ResolveRelativeRef<WalkProp<Ctx, Prop>, Rest> : WalkProp<Ctx, Ref>;
6
+ type ResolveRef<Ctx, Ref extends string> = Ref extends `#/${infer Rest}` ? ResolveRelativeRef<Ctx, Rest> : never;
7
+ type BuildTypes<T extends string[]> = T extends [infer Type extends string, ...infer Rest extends string[]] ? SchemaTypeInfer<Type> | BuildTypes<Rest> : never;
8
+ type SchemaInfer<T, Ctx = T> = T extends {
9
+ $ref: string;
10
+ } ? ResolveRef<Ctx, T["$ref"]> : T extends {
11
+ anyOf: any[];
12
+ } ? BuildAnyOf<T["anyOf"]> : T extends {
13
+ allOf: any[];
14
+ } ? BuildAllOf<T["allOf"]> : T extends {
15
+ type: string[];
16
+ } ? BuildTypes<T["type"]> : T extends {
17
+ type: string;
18
+ } ? SchemaTypeInfer<T["type"]> : never;
19
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,KAAK,eAAe,CAAC,CAAC,SAAS,MAAM,IACjC,CAAC,SAAS,QAAQ,GAAG,MAAM,GAC3B,CAAC,SAAS,QAAQ,GAAG,MAAM,GAC3B,CAAC,SAAS,SAAS,GAAG,MAAM,GAC5B,CAAC,SAAS,SAAS,GAAG,OAAO,GAC7B,CAAC,SAAS,OAAO,GAAG,GAAG,EAAE,GACzB,CAAC,SAAS,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACxC,CAAC,SAAS,MAAM,GAAG,IAAI,GACvB,KAAK,CAAC;AAEV,KAAK,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AACpG,KAAK,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;AAGlG,KAAK,QAAQ,CAAC,GAAG,EAAE,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;AACrC,KAAK,kBAAkB,CAAC,GAAG,EAAE,GAAG,SAAS,MAAM,IAC3C,GAAG,SAAS,GAAG,MAAM,IAAI,IAAI,MAAM,IAAI,EAAE,GACrC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAC7C,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAE3B,KAAK,UAAU,CAAC,GAAG,EAAE,GAAG,SAAS,MAAM,IACnC,GAAG,SAAS,KAAK,MAAM,IAAI,EAAE,GAAG,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;AAE1E,KAAK,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,SAAS,MAAM,EAAE,GAAG,MAAM,IAAI,SAAS,MAAM,EAAE,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AAE/J,KAAK,WAAW,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,IACvB,CAAC,SAAS;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GACrD,CAAC,SAAS;IAAC,KAAK,EAAE,GAAG,EAAE,CAAA;CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GACjD,CAAC,SAAS;IAAC,KAAK,EAAE,GAAG,EAAE,CAAA;CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GACjD,CAAC,SAAS;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAClD,CAAC,SAAS;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GACrD,KAAK,CAAC"}
package/dist/utils.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";
package/package.json CHANGED
@@ -1,12 +1,68 @@
1
1
  {
2
2
  "name": "@retab/node",
3
- "version": "0.0.0-reserved",
4
- "description": "Reserved for the @retab org",
5
- "publishConfig": { "access": "public" },
3
+ "version": "0.0.42",
4
+ "description": "Retab official Node.js library",
5
+ "main": "dist/index.js",
6
+ "exports": {
7
+ ".": "./dist/index.js"
8
+ },
9
+ "types": "dist/index.d.ts",
10
+ "type": "module",
11
+ "scripts": {
12
+ "build": "tsc",
13
+ "test": "jest",
14
+ "test:watch": "jest --watch",
15
+ "test:coverage": "jest --coverage",
16
+ "test:verbose": "jest --verbose",
17
+ "lint": "eslint src --ext .ts",
18
+ "format": "prettier --write \"src/**/*.ts\"",
19
+ "prepare": "npm run build",
20
+ "clean": "rm -rf dist",
21
+ "rebuild": "npm run clean && npm run build"
22
+ },
6
23
  "repository": {
7
24
  "type": "git",
8
- "url": "https://github.com/retab/node.git"
25
+ "url": "https://github.com/Retab-dev/retab"
26
+ },
27
+ "keywords": [
28
+ "retab",
29
+ "sdk",
30
+ "api",
31
+ "client"
32
+ ],
33
+ "author": "Retab",
34
+ "license": "MIT",
35
+ "dependencies": {
36
+ "axios": "^1.6.0",
37
+ "axios-retry": "^4.0.0",
38
+ "blake2": "^5.0.0",
39
+ "dotenv": "^17.2.0",
40
+ "file-type": "^21.0.0",
41
+ "form-data": "^4.0.0",
42
+ "js-yaml": "^4.1.0",
43
+ "openai": "^5.8.2",
44
+ "zod": "^3.22.0",
45
+ "zod-to-json-schema": "^3.24.6"
46
+ },
47
+ "devDependencies": {
48
+ "@types/blake2": "^4.0.4",
49
+ "@types/jest": "^29.0.0",
50
+ "@types/js-yaml": "^4.0.9",
51
+ "@types/node": "^20.0.0",
52
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
53
+ "@typescript-eslint/parser": "^6.0.0",
54
+ "eslint": "^8.0.0",
55
+ "jest": "^29.0.0",
56
+ "prettier": "^3.0.0",
57
+ "ts-jest": "^29.0.0",
58
+ "typescript": "^5.0.0"
59
+ },
60
+ "engines": {
61
+ "node": ">=16.0.0"
9
62
  },
10
- "author": "Retab, Inc.",
11
- "license": "MIT"
63
+ "files": [
64
+ "dist/**/*",
65
+ "README.md",
66
+ "LICENSE"
67
+ ]
12
68
  }
package/index.js DELETED
@@ -1,7 +0,0 @@
1
- /**
2
- * Placeholder package – just reserving the name for now.
3
- * Feel free to open an issue if you’d like to collaborate!
4
- */
5
- module.exports = function () {
6
- console.log('Package “my-awesome-name” is reserved by @your-npm-user.');
7
- };