@vertesia/workflow 0.78.0-dev-28b447d → 0.79.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (396) hide show
  1. package/lib/cjs/activities/advanced/createDocumentTypeFromInteractionRun.js +34 -0
  2. package/lib/cjs/activities/advanced/createDocumentTypeFromInteractionRun.js.map +1 -0
  3. package/lib/cjs/activities/advanced/createOrUpdateDocumentFromInteractionRun.js +67 -0
  4. package/lib/cjs/activities/advanced/createOrUpdateDocumentFromInteractionRun.js.map +1 -0
  5. package/lib/cjs/activities/advanced/updateDocumentFromInteractionRun.js +20 -0
  6. package/lib/cjs/activities/advanced/updateDocumentFromInteractionRun.js.map +1 -0
  7. package/lib/cjs/activities/chunkDocument.js +86 -0
  8. package/lib/cjs/activities/chunkDocument.js.map +1 -0
  9. package/lib/cjs/activities/createDocumentFromOther.js +64 -0
  10. package/lib/cjs/activities/createDocumentFromOther.js.map +1 -0
  11. package/lib/cjs/activities/executeInteraction.js +189 -0
  12. package/lib/cjs/activities/executeInteraction.js.map +1 -0
  13. package/lib/cjs/activities/extractDocumentText.js +156 -0
  14. package/lib/cjs/activities/extractDocumentText.js.map +1 -0
  15. package/lib/cjs/activities/generateDocumentProperties.js +84 -0
  16. package/lib/cjs/activities/generateDocumentProperties.js.map +1 -0
  17. package/lib/cjs/activities/generateEmbeddings.js +358 -0
  18. package/lib/cjs/activities/generateEmbeddings.js.map +1 -0
  19. package/lib/cjs/activities/generateOrAssignContentType.js +126 -0
  20. package/lib/cjs/activities/generateOrAssignContentType.js.map +1 -0
  21. package/lib/cjs/activities/getObjectFromStore.js +20 -0
  22. package/lib/cjs/activities/getObjectFromStore.js.map +1 -0
  23. package/lib/cjs/activities/handleError.js +22 -0
  24. package/lib/cjs/activities/handleError.js.map +1 -0
  25. package/lib/cjs/activities/index-dsl.js +43 -0
  26. package/lib/cjs/activities/index-dsl.js.map +1 -0
  27. package/lib/cjs/activities/index.js +21 -0
  28. package/lib/cjs/activities/index.js.map +1 -0
  29. package/lib/cjs/activities/media/processPdfWithTextract.js +103 -0
  30. package/lib/cjs/activities/media/processPdfWithTextract.js.map +1 -0
  31. package/lib/cjs/activities/media/transcribeMediaWithGladia.js +51 -0
  32. package/lib/cjs/activities/media/transcribeMediaWithGladia.js.map +1 -0
  33. package/lib/cjs/activities/notifyWebhook.js +157 -0
  34. package/lib/cjs/activities/notifyWebhook.js.map +1 -0
  35. package/lib/cjs/activities/rateLimiter.js +30 -0
  36. package/lib/cjs/activities/rateLimiter.js.map +1 -0
  37. package/lib/cjs/activities/renditions/generateImageRendition.js +66 -0
  38. package/lib/cjs/activities/renditions/generateImageRendition.js.map +1 -0
  39. package/lib/cjs/activities/renditions/generateVideoRendition.js +200 -0
  40. package/lib/cjs/activities/renditions/generateVideoRendition.js.map +1 -0
  41. package/lib/cjs/activities/setDocumentStatus.js +15 -0
  42. package/lib/cjs/activities/setDocumentStatus.js.map +1 -0
  43. package/lib/cjs/conversion/TextractProcessor.js +417 -0
  44. package/lib/cjs/conversion/TextractProcessor.js.map +1 -0
  45. package/lib/cjs/conversion/image.js +149 -0
  46. package/lib/cjs/conversion/image.js.map +1 -0
  47. package/lib/cjs/conversion/markitdown.js +42 -0
  48. package/lib/cjs/conversion/markitdown.js.map +1 -0
  49. package/lib/cjs/conversion/mutool.js +147 -0
  50. package/lib/cjs/conversion/mutool.js.map +1 -0
  51. package/lib/cjs/conversion/pandoc.js +39 -0
  52. package/lib/cjs/conversion/pandoc.js.map +1 -0
  53. package/lib/cjs/dsl/conditions.js +81 -0
  54. package/lib/cjs/dsl/conditions.js.map +1 -0
  55. package/lib/cjs/dsl/dsl-workflow.js +338 -0
  56. package/lib/cjs/dsl/dsl-workflow.js.map +1 -0
  57. package/lib/cjs/dsl/dslProxyActivities.js +23 -0
  58. package/lib/cjs/dsl/dslProxyActivities.js.map +1 -0
  59. package/lib/cjs/dsl/projections.js +59 -0
  60. package/lib/cjs/dsl/projections.js.map +1 -0
  61. package/lib/cjs/dsl/setup/ActivityContext.js +120 -0
  62. package/lib/cjs/dsl/setup/ActivityContext.js.map +1 -0
  63. package/lib/cjs/dsl/setup/fetch/DataProvider.js +51 -0
  64. package/lib/cjs/dsl/setup/fetch/DataProvider.js.map +1 -0
  65. package/lib/cjs/dsl/setup/fetch/index.js +16 -0
  66. package/lib/cjs/dsl/setup/fetch/index.js.map +1 -0
  67. package/lib/cjs/dsl/setup/fetch/providers.js +67 -0
  68. package/lib/cjs/dsl/setup/fetch/providers.js.map +1 -0
  69. package/lib/cjs/dsl/test/test-child-workflow.js +10 -0
  70. package/lib/cjs/dsl/test/test-child-workflow.js.map +1 -0
  71. package/lib/cjs/dsl/validation.js +122 -0
  72. package/lib/cjs/dsl/validation.js.map +1 -0
  73. package/lib/cjs/dsl/vars.js +341 -0
  74. package/lib/cjs/dsl/vars.js.map +1 -0
  75. package/lib/cjs/dsl/walk.js +100 -0
  76. package/lib/cjs/dsl/walk.js.map +1 -0
  77. package/lib/cjs/dsl.js +20 -0
  78. package/lib/cjs/dsl.js.map +1 -0
  79. package/lib/cjs/errors.js +57 -0
  80. package/lib/cjs/errors.js.map +1 -0
  81. package/lib/cjs/index.js +54 -0
  82. package/lib/cjs/index.js.map +1 -0
  83. package/lib/cjs/iterative-generation/activities/extractToc.js +47 -0
  84. package/lib/cjs/iterative-generation/activities/extractToc.js.map +1 -0
  85. package/lib/cjs/iterative-generation/activities/finalizeOutput.js +69 -0
  86. package/lib/cjs/iterative-generation/activities/finalizeOutput.js.map +1 -0
  87. package/lib/cjs/iterative-generation/activities/generatePart.js +74 -0
  88. package/lib/cjs/iterative-generation/activities/generatePart.js.map +1 -0
  89. package/lib/cjs/iterative-generation/activities/generateToc.js +96 -0
  90. package/lib/cjs/iterative-generation/activities/generateToc.js.map +1 -0
  91. package/lib/cjs/iterative-generation/activities/index.js +12 -0
  92. package/lib/cjs/iterative-generation/activities/index.js.map +1 -0
  93. package/lib/cjs/iterative-generation/iterativeGenerationWorkflow.js +56 -0
  94. package/lib/cjs/iterative-generation/iterativeGenerationWorkflow.js.map +1 -0
  95. package/lib/cjs/iterative-generation/types.js +5 -0
  96. package/lib/cjs/iterative-generation/types.js.map +1 -0
  97. package/lib/cjs/iterative-generation/utils.js +121 -0
  98. package/lib/cjs/iterative-generation/utils.js.map +1 -0
  99. package/lib/cjs/package.json +3 -0
  100. package/lib/cjs/result-types.js +10 -0
  101. package/lib/cjs/result-types.js.map +1 -0
  102. package/lib/cjs/system/notifyWebhookWorkflow.js +53 -0
  103. package/lib/cjs/system/notifyWebhookWorkflow.js.map +1 -0
  104. package/lib/cjs/system/recalculateEmbeddingsWorkflow.js +33 -0
  105. package/lib/cjs/system/recalculateEmbeddingsWorkflow.js.map +1 -0
  106. package/lib/cjs/utils/auth.js +15 -0
  107. package/lib/cjs/utils/auth.js.map +1 -0
  108. package/lib/cjs/utils/blobs.js +61 -0
  109. package/lib/cjs/utils/blobs.js.map +1 -0
  110. package/lib/cjs/utils/chunks.js +14 -0
  111. package/lib/cjs/utils/chunks.js.map +1 -0
  112. package/lib/cjs/utils/client.js +29 -0
  113. package/lib/cjs/utils/client.js.map +1 -0
  114. package/lib/cjs/utils/expand-vars.js +33 -0
  115. package/lib/cjs/utils/expand-vars.js.map +1 -0
  116. package/lib/cjs/utils/memory.js +65 -0
  117. package/lib/cjs/utils/memory.js.map +1 -0
  118. package/lib/cjs/utils/renditions.js +88 -0
  119. package/lib/cjs/utils/renditions.js.map +1 -0
  120. package/lib/cjs/utils/storage.js +55 -0
  121. package/lib/cjs/utils/storage.js.map +1 -0
  122. package/lib/cjs/utils/tokens.js +38 -0
  123. package/lib/cjs/utils/tokens.js.map +1 -0
  124. package/lib/cjs/vars.js +20 -0
  125. package/lib/cjs/vars.js.map +1 -0
  126. package/lib/cjs/workflows.js +15 -0
  127. package/lib/cjs/workflows.js.map +1 -0
  128. package/lib/esm/activities/advanced/createDocumentTypeFromInteractionRun.js +31 -0
  129. package/lib/esm/activities/advanced/createDocumentTypeFromInteractionRun.js.map +1 -0
  130. package/lib/esm/activities/advanced/createOrUpdateDocumentFromInteractionRun.js +64 -0
  131. package/lib/esm/activities/advanced/createOrUpdateDocumentFromInteractionRun.js.map +1 -0
  132. package/lib/esm/activities/advanced/updateDocumentFromInteractionRun.js +17 -0
  133. package/lib/esm/activities/advanced/updateDocumentFromInteractionRun.js.map +1 -0
  134. package/lib/esm/activities/chunkDocument.js +83 -0
  135. package/lib/esm/activities/chunkDocument.js.map +1 -0
  136. package/lib/esm/activities/createDocumentFromOther.js +58 -0
  137. package/lib/esm/activities/createDocumentFromOther.js.map +1 -0
  138. package/lib/esm/activities/executeInteraction.js +185 -0
  139. package/lib/esm/activities/executeInteraction.js.map +1 -0
  140. package/lib/esm/activities/extractDocumentText.js +153 -0
  141. package/lib/esm/activities/extractDocumentText.js.map +1 -0
  142. package/lib/esm/activities/generateDocumentProperties.js +81 -0
  143. package/lib/esm/activities/generateDocumentProperties.js.map +1 -0
  144. package/lib/esm/activities/generateEmbeddings.js +355 -0
  145. package/lib/esm/activities/generateEmbeddings.js.map +1 -0
  146. package/lib/esm/activities/generateOrAssignContentType.js +123 -0
  147. package/lib/esm/activities/generateOrAssignContentType.js.map +1 -0
  148. package/lib/esm/activities/getObjectFromStore.js +17 -0
  149. package/lib/esm/activities/getObjectFromStore.js.map +1 -0
  150. package/lib/esm/activities/handleError.js +19 -0
  151. package/lib/esm/activities/handleError.js.map +1 -0
  152. package/lib/esm/activities/index-dsl.js +21 -0
  153. package/lib/esm/activities/index-dsl.js.map +1 -0
  154. package/lib/esm/activities/index.js +5 -0
  155. package/lib/esm/activities/index.js.map +1 -0
  156. package/lib/esm/activities/media/processPdfWithTextract.js +99 -0
  157. package/lib/esm/activities/media/processPdfWithTextract.js.map +1 -0
  158. package/lib/esm/activities/media/transcribeMediaWithGladia.js +48 -0
  159. package/lib/esm/activities/media/transcribeMediaWithGladia.js.map +1 -0
  160. package/lib/esm/activities/notifyWebhook.js +154 -0
  161. package/lib/esm/activities/notifyWebhook.js.map +1 -0
  162. package/lib/esm/activities/rateLimiter.js +27 -0
  163. package/lib/esm/activities/rateLimiter.js.map +1 -0
  164. package/lib/esm/activities/renditions/generateImageRendition.js +63 -0
  165. package/lib/esm/activities/renditions/generateImageRendition.js.map +1 -0
  166. package/lib/esm/activities/renditions/generateVideoRendition.js +194 -0
  167. package/lib/esm/activities/renditions/generateVideoRendition.js.map +1 -0
  168. package/lib/esm/activities/setDocumentStatus.js +12 -0
  169. package/lib/esm/activities/setDocumentStatus.js.map +1 -0
  170. package/lib/esm/conversion/TextractProcessor.js +410 -0
  171. package/lib/esm/conversion/TextractProcessor.js.map +1 -0
  172. package/lib/esm/conversion/image.js +143 -0
  173. package/lib/esm/conversion/image.js.map +1 -0
  174. package/lib/esm/conversion/markitdown.js +36 -0
  175. package/lib/esm/conversion/markitdown.js.map +1 -0
  176. package/lib/esm/conversion/mutool.js +139 -0
  177. package/lib/esm/conversion/mutool.js.map +1 -0
  178. package/lib/esm/conversion/pandoc.js +36 -0
  179. package/lib/esm/conversion/pandoc.js.map +1 -0
  180. package/lib/esm/dsl/conditions.js +75 -0
  181. package/lib/esm/dsl/conditions.js.map +1 -0
  182. package/lib/esm/dsl/dsl-workflow.js +331 -0
  183. package/lib/esm/dsl/dsl-workflow.js.map +1 -0
  184. package/lib/esm/dsl/dslProxyActivities.js +20 -0
  185. package/lib/esm/dsl/dslProxyActivities.js.map +1 -0
  186. package/lib/esm/dsl/projections.js +55 -0
  187. package/lib/esm/dsl/projections.js.map +1 -0
  188. package/lib/esm/dsl/setup/ActivityContext.js +115 -0
  189. package/lib/esm/dsl/setup/ActivityContext.js.map +1 -0
  190. package/lib/esm/dsl/setup/fetch/DataProvider.js +47 -0
  191. package/lib/esm/dsl/setup/fetch/DataProvider.js.map +1 -0
  192. package/lib/esm/dsl/setup/fetch/index.js +12 -0
  193. package/lib/esm/dsl/setup/fetch/index.js.map +1 -0
  194. package/lib/esm/dsl/setup/fetch/providers.js +61 -0
  195. package/lib/esm/dsl/setup/fetch/providers.js.map +1 -0
  196. package/lib/esm/dsl/test/test-child-workflow.js +5 -0
  197. package/lib/esm/dsl/test/test-child-workflow.js.map +1 -0
  198. package/lib/esm/dsl/validation.js +118 -0
  199. package/lib/esm/dsl/validation.js.map +1 -0
  200. package/lib/esm/dsl/vars.js +335 -0
  201. package/lib/esm/dsl/vars.js.map +1 -0
  202. package/lib/esm/dsl/walk.js +96 -0
  203. package/lib/esm/dsl/walk.js.map +1 -0
  204. package/lib/esm/dsl.js +4 -0
  205. package/lib/esm/dsl.js.map +1 -0
  206. package/lib/esm/errors.js +49 -0
  207. package/lib/esm/errors.js.map +1 -0
  208. package/lib/esm/index.js +36 -0
  209. package/lib/esm/index.js.map +1 -0
  210. package/lib/esm/iterative-generation/activities/extractToc.js +44 -0
  211. package/lib/esm/iterative-generation/activities/extractToc.js.map +1 -0
  212. package/lib/esm/iterative-generation/activities/finalizeOutput.js +66 -0
  213. package/lib/esm/iterative-generation/activities/finalizeOutput.js.map +1 -0
  214. package/lib/esm/iterative-generation/activities/generatePart.js +71 -0
  215. package/lib/esm/iterative-generation/activities/generatePart.js.map +1 -0
  216. package/lib/esm/iterative-generation/activities/generateToc.js +93 -0
  217. package/lib/esm/iterative-generation/activities/generateToc.js.map +1 -0
  218. package/lib/esm/iterative-generation/activities/index.js +5 -0
  219. package/lib/esm/iterative-generation/activities/index.js.map +1 -0
  220. package/lib/esm/iterative-generation/iterativeGenerationWorkflow.js +53 -0
  221. package/lib/esm/iterative-generation/iterativeGenerationWorkflow.js.map +1 -0
  222. package/lib/esm/iterative-generation/types.js +2 -0
  223. package/lib/esm/iterative-generation/types.js.map +1 -0
  224. package/lib/esm/iterative-generation/utils.js +112 -0
  225. package/lib/esm/iterative-generation/utils.js.map +1 -0
  226. package/lib/esm/result-types.js +7 -0
  227. package/lib/esm/result-types.js.map +1 -0
  228. package/lib/esm/system/notifyWebhookWorkflow.js +50 -0
  229. package/lib/esm/system/notifyWebhookWorkflow.js.map +1 -0
  230. package/lib/esm/system/recalculateEmbeddingsWorkflow.js +30 -0
  231. package/lib/esm/system/recalculateEmbeddingsWorkflow.js.map +1 -0
  232. package/lib/esm/utils/auth.js +8 -0
  233. package/lib/esm/utils/auth.js.map +1 -0
  234. package/lib/esm/utils/blobs.js +51 -0
  235. package/lib/esm/utils/blobs.js.map +1 -0
  236. package/lib/esm/utils/chunks.js +9 -0
  237. package/lib/esm/utils/chunks.js.map +1 -0
  238. package/lib/esm/utils/client.js +25 -0
  239. package/lib/esm/utils/client.js.map +1 -0
  240. package/lib/esm/utils/expand-vars.js +30 -0
  241. package/lib/esm/utils/expand-vars.js.map +1 -0
  242. package/lib/esm/utils/memory.js +55 -0
  243. package/lib/esm/utils/memory.js.map +1 -0
  244. package/lib/esm/utils/renditions.js +80 -0
  245. package/lib/esm/utils/renditions.js.map +1 -0
  246. package/lib/esm/utils/storage.js +46 -0
  247. package/lib/esm/utils/storage.js.map +1 -0
  248. package/lib/esm/utils/tokens.js +34 -0
  249. package/lib/esm/utils/tokens.js.map +1 -0
  250. package/lib/esm/vars.js +4 -0
  251. package/lib/esm/vars.js.map +1 -0
  252. package/lib/esm/workflows.js +8 -0
  253. package/lib/esm/workflows.js.map +1 -0
  254. package/lib/tsconfig.tsbuildinfo +1 -0
  255. package/lib/types/activities/advanced/createDocumentTypeFromInteractionRun.d.ts +17 -0
  256. package/lib/types/activities/advanced/createDocumentTypeFromInteractionRun.d.ts.map +1 -0
  257. package/lib/types/activities/advanced/createOrUpdateDocumentFromInteractionRun.d.ts +39 -0
  258. package/lib/types/activities/advanced/createOrUpdateDocumentFromInteractionRun.d.ts.map +1 -0
  259. package/lib/types/activities/advanced/updateDocumentFromInteractionRun.d.ts +19 -0
  260. package/lib/types/activities/advanced/updateDocumentFromInteractionRun.d.ts.map +1 -0
  261. package/lib/types/activities/chunkDocument.d.ts +33 -0
  262. package/lib/types/activities/chunkDocument.d.ts.map +1 -0
  263. package/lib/types/activities/createDocumentFromOther.d.ts +21 -0
  264. package/lib/types/activities/createDocumentFromOther.d.ts.map +1 -0
  265. package/lib/types/activities/executeInteraction.d.ts +61 -0
  266. package/lib/types/activities/executeInteraction.d.ts.map +1 -0
  267. package/lib/types/activities/extractDocumentText.d.ts +10 -0
  268. package/lib/types/activities/extractDocumentText.d.ts.map +1 -0
  269. package/lib/types/activities/generateDocumentProperties.d.ts +32 -0
  270. package/lib/types/activities/generateDocumentProperties.d.ts.map +1 -0
  271. package/lib/types/activities/generateEmbeddings.d.ts +53 -0
  272. package/lib/types/activities/generateEmbeddings.d.ts.map +1 -0
  273. package/lib/types/activities/generateOrAssignContentType.d.ts +44 -0
  274. package/lib/types/activities/generateOrAssignContentType.d.ts.map +1 -0
  275. package/lib/types/activities/getObjectFromStore.d.ts +14 -0
  276. package/lib/types/activities/getObjectFromStore.d.ts.map +1 -0
  277. package/lib/types/activities/handleError.d.ts +6 -0
  278. package/lib/types/activities/handleError.d.ts.map +1 -0
  279. package/lib/types/activities/index-dsl.d.ts +20 -0
  280. package/lib/types/activities/index-dsl.d.ts.map +1 -0
  281. package/lib/types/activities/index.d.ts +5 -0
  282. package/lib/types/activities/index.d.ts.map +1 -0
  283. package/lib/types/activities/media/processPdfWithTextract.d.ts +26 -0
  284. package/lib/types/activities/media/processPdfWithTextract.d.ts.map +1 -0
  285. package/lib/types/activities/media/transcribeMediaWithGladia.d.ts +14 -0
  286. package/lib/types/activities/media/transcribeMediaWithGladia.d.ts.map +1 -0
  287. package/lib/types/activities/notifyWebhook.d.ts +27 -0
  288. package/lib/types/activities/notifyWebhook.d.ts.map +1 -0
  289. package/lib/types/activities/rateLimiter.d.ts +11 -0
  290. package/lib/types/activities/rateLimiter.d.ts.map +1 -0
  291. package/lib/types/activities/renditions/generateImageRendition.d.ts +14 -0
  292. package/lib/types/activities/renditions/generateImageRendition.d.ts.map +1 -0
  293. package/lib/types/activities/renditions/generateVideoRendition.d.ts +15 -0
  294. package/lib/types/activities/renditions/generateVideoRendition.d.ts.map +1 -0
  295. package/lib/types/activities/setDocumentStatus.d.ts +15 -0
  296. package/lib/types/activities/setDocumentStatus.d.ts.map +1 -0
  297. package/lib/types/conversion/TextractProcessor.d.ts +45 -0
  298. package/lib/types/conversion/TextractProcessor.d.ts.map +1 -0
  299. package/lib/types/conversion/image.d.ts +13 -0
  300. package/lib/types/conversion/image.d.ts.map +1 -0
  301. package/lib/types/conversion/markitdown.d.ts +2 -0
  302. package/lib/types/conversion/markitdown.d.ts.map +1 -0
  303. package/lib/types/conversion/mutool.d.ts +19 -0
  304. package/lib/types/conversion/mutool.d.ts.map +1 -0
  305. package/lib/types/conversion/pandoc.d.ts +2 -0
  306. package/lib/types/conversion/pandoc.d.ts.map +1 -0
  307. package/lib/types/dsl/conditions.d.ts +2 -0
  308. package/lib/types/dsl/conditions.d.ts.map +1 -0
  309. package/lib/types/dsl/dsl-workflow.d.ts +5 -0
  310. package/lib/types/dsl/dsl-workflow.d.ts.map +1 -0
  311. package/lib/types/dsl/dslProxyActivities.d.ts +10 -0
  312. package/lib/types/dsl/dslProxyActivities.d.ts.map +1 -0
  313. package/lib/types/dsl/projections.d.ts +4 -0
  314. package/lib/types/dsl/projections.d.ts.map +1 -0
  315. package/lib/types/dsl/setup/ActivityContext.d.ts +17 -0
  316. package/lib/types/dsl/setup/ActivityContext.d.ts.map +1 -0
  317. package/lib/types/dsl/setup/fetch/DataProvider.d.ts +9 -0
  318. package/lib/types/dsl/setup/fetch/DataProvider.d.ts.map +1 -0
  319. package/lib/types/dsl/setup/fetch/index.d.ts +6 -0
  320. package/lib/types/dsl/setup/fetch/index.d.ts.map +1 -0
  321. package/lib/types/dsl/setup/fetch/providers.d.ts +25 -0
  322. package/lib/types/dsl/setup/fetch/providers.d.ts.map +1 -0
  323. package/lib/types/dsl/test/test-child-workflow.d.ts +4 -0
  324. package/lib/types/dsl/test/test-child-workflow.d.ts.map +1 -0
  325. package/lib/types/dsl/validation.d.ts +4 -0
  326. package/lib/types/dsl/validation.d.ts.map +1 -0
  327. package/lib/types/dsl/vars.d.ts +48 -0
  328. package/lib/types/dsl/vars.d.ts.map +1 -0
  329. package/lib/types/dsl/walk.d.ts +18 -0
  330. package/lib/types/dsl/walk.d.ts.map +1 -0
  331. package/lib/types/dsl.d.ts +4 -0
  332. package/lib/types/dsl.d.ts.map +1 -0
  333. package/lib/types/errors.d.ts +27 -0
  334. package/lib/types/errors.d.ts.map +1 -0
  335. package/lib/types/index.d.ts +35 -0
  336. package/lib/types/index.d.ts.map +1 -0
  337. package/lib/types/iterative-generation/activities/extractToc.d.ts +10 -0
  338. package/lib/types/iterative-generation/activities/extractToc.d.ts.map +1 -0
  339. package/lib/types/iterative-generation/activities/finalizeOutput.d.ts +3 -0
  340. package/lib/types/iterative-generation/activities/finalizeOutput.d.ts.map +1 -0
  341. package/lib/types/iterative-generation/activities/generatePart.d.ts +3 -0
  342. package/lib/types/iterative-generation/activities/generatePart.d.ts.map +1 -0
  343. package/lib/types/iterative-generation/activities/generateToc.d.ts +4 -0
  344. package/lib/types/iterative-generation/activities/generateToc.d.ts.map +1 -0
  345. package/lib/types/iterative-generation/activities/index.d.ts +5 -0
  346. package/lib/types/iterative-generation/activities/index.d.ts.map +1 -0
  347. package/lib/types/iterative-generation/iterativeGenerationWorkflow.d.ts +3 -0
  348. package/lib/types/iterative-generation/iterativeGenerationWorkflow.d.ts.map +1 -0
  349. package/lib/types/iterative-generation/types.d.ts +79 -0
  350. package/lib/types/iterative-generation/types.d.ts.map +1 -0
  351. package/lib/types/iterative-generation/utils.d.ts +27 -0
  352. package/lib/types/iterative-generation/utils.d.ts.map +1 -0
  353. package/lib/types/result-types.d.ts +22 -0
  354. package/lib/types/result-types.d.ts.map +1 -0
  355. package/lib/types/system/notifyWebhookWorkflow.d.ts +8 -0
  356. package/lib/types/system/notifyWebhookWorkflow.d.ts.map +1 -0
  357. package/lib/types/system/recalculateEmbeddingsWorkflow.d.ts +25 -0
  358. package/lib/types/system/recalculateEmbeddingsWorkflow.d.ts.map +1 -0
  359. package/lib/types/utils/auth.d.ts +4 -0
  360. package/lib/types/utils/auth.d.ts.map +1 -0
  361. package/lib/types/utils/blobs.d.ts +7 -0
  362. package/lib/types/utils/blobs.d.ts.map +1 -0
  363. package/lib/types/utils/chunks.d.ts +9 -0
  364. package/lib/types/utils/chunks.d.ts.map +1 -0
  365. package/lib/types/utils/client.d.ts +12 -0
  366. package/lib/types/utils/client.d.ts.map +1 -0
  367. package/lib/types/utils/expand-vars.d.ts +8 -0
  368. package/lib/types/utils/expand-vars.d.ts.map +1 -0
  369. package/lib/types/utils/memory.d.ts +8 -0
  370. package/lib/types/utils/memory.d.ts.map +1 -0
  371. package/lib/types/utils/renditions.d.ts +23 -0
  372. package/lib/types/utils/renditions.d.ts.map +1 -0
  373. package/lib/types/utils/storage.d.ts +16 -0
  374. package/lib/types/utils/storage.d.ts.map +1 -0
  375. package/lib/types/utils/tokens.d.ts +11 -0
  376. package/lib/types/utils/tokens.d.ts.map +1 -0
  377. package/lib/types/vars.d.ts +3 -0
  378. package/lib/types/vars.d.ts.map +1 -0
  379. package/lib/types/workflows.d.ts +8 -0
  380. package/lib/types/workflows.d.ts.map +1 -0
  381. package/lib/workflows-bundle.js +13145 -0
  382. package/package.json +127 -127
  383. package/src/activities/notifyWebhook.test.ts +18 -14
  384. package/src/activities/notifyWebhook.ts +149 -14
  385. package/src/dsl/setup/ActivityContext.ts +12 -45
  386. package/src/dsl/workflow-exec-child.test.ts +3 -3
  387. package/src/dsl/workflow-fetch.test.ts +1 -1
  388. package/src/dsl/workflow-import.test.ts +1 -1
  389. package/src/dsl/workflow.test.ts +1 -1
  390. package/src/iterative-generation/activities/extractToc.ts +12 -26
  391. package/src/iterative-generation/activities/finalizeOutput.ts +29 -52
  392. package/src/iterative-generation/activities/generatePart.ts +23 -64
  393. package/src/iterative-generation/activities/generateToc.ts +65 -78
  394. package/src/system/notifyWebhookWorkflow.ts +15 -6
  395. package/src/utils/blobs.ts +1 -3
  396. package/src/utils/client.ts +8 -22
@@ -0,0 +1,417 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TextractProcessor = void 0;
7
+ const client_s3_1 = require("@aws-sdk/client-s3");
8
+ const client_textract_1 = require("@aws-sdk/client-textract");
9
+ const papaparse_1 = __importDefault(require("papaparse"));
10
+ class TextractProcessor {
11
+ textractClient;
12
+ s3Client;
13
+ fileKey;
14
+ bucket;
15
+ log;
16
+ detectImages;
17
+ /**
18
+ * Whether or not to include confidence values in CSV output for tables.
19
+ */
20
+ includeConfidenceInTables;
21
+ constructor({ fileKey, region, bucket, credentials, log, detectImages = false, includeConfidenceInTables = false // NEW default = false
22
+ }) {
23
+ this.fileKey = fileKey;
24
+ this.bucket = bucket;
25
+ this.log = log;
26
+ this.detectImages = detectImages;
27
+ this.includeConfidenceInTables = includeConfidenceInTables;
28
+ this.textractClient = new client_textract_1.TextractClient({
29
+ region,
30
+ credentials
31
+ });
32
+ this.s3Client = new client_s3_1.S3Client({
33
+ region,
34
+ credentials
35
+ });
36
+ }
37
+ getText(result, blocksMap) {
38
+ let text = '';
39
+ if (result.Relationships) {
40
+ for (const relationship of result.Relationships) {
41
+ if (relationship.Type === 'CHILD') {
42
+ for (const childId of relationship.Ids || []) {
43
+ const word = blocksMap[childId];
44
+ if (word.BlockType === 'WORD') {
45
+ const wordText = word.Text || '';
46
+ // Example logic to quote numeric text with commas
47
+ if (wordText.includes(',') &&
48
+ wordText.replace(',', '').match(/^\d+$/)) {
49
+ text += `"${wordText}" `;
50
+ }
51
+ else {
52
+ text += `${wordText} `;
53
+ }
54
+ }
55
+ if (word.BlockType === 'SELECTION_ELEMENT' &&
56
+ word.SelectionStatus === 'SELECTED') {
57
+ text += 'X ';
58
+ }
59
+ }
60
+ }
61
+ }
62
+ }
63
+ return text.trim();
64
+ }
65
+ isBlockInTable(block, blocksMap) {
66
+ if (block.BlockType !== 'LINE') {
67
+ return false;
68
+ }
69
+ if (block.Relationships) {
70
+ for (const relationship of block.Relationships) {
71
+ if (relationship.Type === 'CHILD') {
72
+ for (const childId of relationship.Ids || []) {
73
+ const wordBlock = blocksMap[childId];
74
+ if (this.isWordInTableCell(wordBlock, blocksMap)) {
75
+ return true;
76
+ }
77
+ }
78
+ }
79
+ }
80
+ }
81
+ return false;
82
+ }
83
+ isWordInTableCell(wordBlock, blocksMap) {
84
+ // Check if the wordBlock is a descendant of any TABLE->CELL block
85
+ for (const blockId in blocksMap) {
86
+ const potentialTable = blocksMap[blockId];
87
+ if (potentialTable.BlockType === 'TABLE' && potentialTable.Relationships) {
88
+ for (const relationship of potentialTable.Relationships) {
89
+ if (relationship.Type === 'CHILD') {
90
+ for (const cellId of relationship.Ids || []) {
91
+ const cell = blocksMap[cellId];
92
+ if (cell.BlockType === 'CELL' && cell.Relationships) {
93
+ for (const cellRel of cell.Relationships) {
94
+ if (cellRel.Type === 'CHILD' &&
95
+ cellRel.Ids?.includes(wordBlock.Id)) {
96
+ return true;
97
+ }
98
+ }
99
+ }
100
+ }
101
+ }
102
+ }
103
+ }
104
+ }
105
+ return false;
106
+ }
107
+ /**
108
+ * NEW: Helper type to store row and column text along with confidence.
109
+ */
110
+ getRowsColumnsMap(tableResult, blocksMap) {
111
+ const rows = [];
112
+ tableResult.Relationships?.forEach(relationship => {
113
+ if (relationship.Type === 'CHILD') {
114
+ relationship.Ids?.forEach(childId => {
115
+ const cell = blocksMap[childId];
116
+ if (cell.BlockType === 'CELL') {
117
+ const rowIndex = cell.RowIndex || 1;
118
+ const colIndex = cell.ColumnIndex || 1;
119
+ // Expand the array if needed
120
+ if (!rows[rowIndex - 1]) {
121
+ rows[rowIndex - 1] = [];
122
+ }
123
+ // Prepare cell text and confidence
124
+ const text = this.getText(cell, blocksMap);
125
+ const confidence = cell.Confidence || 0;
126
+ // If there's a gap, fill it with placeholders
127
+ // so that we can safely place text at colIndex - 1
128
+ for (let i = rows[rowIndex - 1].length; i < colIndex - 1; i++) {
129
+ rows[rowIndex - 1].push({ text: '', confidence: 0 });
130
+ }
131
+ rows[rowIndex - 1][colIndex - 1] = { text, confidence };
132
+ }
133
+ });
134
+ }
135
+ });
136
+ return { rows };
137
+ }
138
+ generateTableCSV(tableResult, blocksMap, _tableIndex, _pageNumber) {
139
+ const { rows } = this.getRowsColumnsMap(tableResult, blocksMap);
140
+ let totalConfidence = 0;
141
+ let cellCount = 0;
142
+ // Prepare CSV data
143
+ const csvData = [];
144
+ for (const row of rows) {
145
+ const rowData = [];
146
+ for (const cell of row) {
147
+ // Add to CSV
148
+ rowData.push(cell.text.trim());
149
+ // Accumulate confidence
150
+ totalConfidence += cell.confidence;
151
+ cellCount++;
152
+ }
153
+ csvData.push(rowData);
154
+ }
155
+ // Compute average confidence (or any other method you prefer)
156
+ const tableConfidence = cellCount > 0 ? (totalConfidence / cellCount) : 0;
157
+ // Convert to CSV
158
+ const csv = papaparse_1.default.unparse(csvData, {
159
+ delimiter: ',',
160
+ quotes: true,
161
+ quoteChar: '"',
162
+ escapeChar: '"',
163
+ header: false,
164
+ newline: '\n',
165
+ skipEmptyLines: false
166
+ });
167
+ return { csv, tableConfidence };
168
+ }
169
+ async upload(fileBuf) {
170
+ this.log.info('Uploading file to S3', { fileKey: this.fileKey });
171
+ const command = new client_s3_1.PutObjectCommand({
172
+ Bucket: this.bucket,
173
+ Key: this.fileKey,
174
+ Body: fileBuf,
175
+ });
176
+ await this.s3Client.send(command);
177
+ }
178
+ async startAnalysis(s3Key) {
179
+ const command = new client_textract_1.StartDocumentAnalysisCommand({
180
+ DocumentLocation: {
181
+ S3Object: {
182
+ Bucket: this.bucket,
183
+ Name: s3Key
184
+ }
185
+ },
186
+ FeatureTypes: ["TABLES"]
187
+ });
188
+ const response = await this.textractClient.send(command);
189
+ return response.JobId;
190
+ }
191
+ async checkJobStatus(jobId) {
192
+ const command = new client_textract_1.GetDocumentAnalysisCommand({ JobId: jobId });
193
+ const response = await this.textractClient.send(command);
194
+ return response.JobStatus;
195
+ }
196
+ getImagePlaceholder(block) {
197
+ const geometry = block.Geometry?.BoundingBox;
198
+ if (!geometry)
199
+ return '';
200
+ const area = (geometry.Width || 0) * (geometry.Height || 0);
201
+ if (area < 0.05)
202
+ return ''; // skip small images
203
+ const top = geometry.Top || 0;
204
+ const left = geometry.Left || 0;
205
+ let position = '';
206
+ if (top < 0.3)
207
+ position += 'TOP_';
208
+ else if (top > 0.7)
209
+ position += 'BOTTOM_';
210
+ if (left < 0.3)
211
+ position += 'LEFT';
212
+ else if (left > 0.7)
213
+ position += 'RIGHT';
214
+ else
215
+ position += 'CENTER';
216
+ return `[IMAGE_${position}]\n`;
217
+ }
218
+ getIndentationLevel(block) {
219
+ const left = block.Geometry?.BoundingBox?.Left || 0;
220
+ if (left < 0.15)
221
+ return 0;
222
+ if (left < 0.25)
223
+ return 1;
224
+ return 2;
225
+ }
226
+ isLikelyHeader(block, prevBlock) {
227
+ if (!prevBlock)
228
+ return true;
229
+ const gap = (block.Geometry?.BoundingBox?.Top || 0) -
230
+ ((prevBlock.Geometry?.BoundingBox?.Top || 0) +
231
+ (prevBlock.Geometry?.BoundingBox?.Height || 0));
232
+ return gap > 0.03;
233
+ }
234
+ formatTextBlock(block, prevBlock) {
235
+ const text = block.Text || '';
236
+ const indentLevel = this.getIndentationLevel(block);
237
+ const indent = ' '.repeat(indentLevel);
238
+ if (this.isLikelyHeader(block, prevBlock)) {
239
+ return `\n${indent}${text}\n`;
240
+ }
241
+ return `${indent}${text}\n`;
242
+ }
243
+ shouldMergeLines(prev, current) {
244
+ const prevBottom = (prev.Geometry?.BoundingBox?.Top || 0)
245
+ + (prev.Geometry?.BoundingBox?.Height || 0);
246
+ const currentTop = current.Geometry?.BoundingBox?.Top || 0;
247
+ const gap = currentTop - prevBottom;
248
+ // For example, if gap < 0.02, treat them as contiguous
249
+ if (gap < 0.02) {
250
+ return true;
251
+ }
252
+ return false;
253
+ }
254
+ async processResults(jobId) {
255
+ let nextToken;
256
+ let allBlocks = [];
257
+ do {
258
+ const command = new client_textract_1.GetDocumentAnalysisCommand({
259
+ JobId: jobId,
260
+ NextToken: nextToken
261
+ });
262
+ const response = await this.textractClient.send(command);
263
+ allBlocks = allBlocks.concat(response.Blocks || []);
264
+ nextToken = response.NextToken;
265
+ } while (nextToken);
266
+ // Create blocks map
267
+ const blocksMap = {};
268
+ for (const block of allBlocks) {
269
+ blocksMap[block.Id] = block;
270
+ }
271
+ // We'll store each page's content in sequence
272
+ const pageContents = [];
273
+ let currentPage = null;
274
+ // We'll keep track of a "current text block" that we're building
275
+ let currentTextContent = "";
276
+ let prevLineBlock = null;
277
+ // Sort by page and vertical position
278
+ allBlocks.sort((a, b) => {
279
+ if (a.Page !== b.Page)
280
+ return (a.Page || 0) - (b.Page || 0);
281
+ return (a.Geometry?.BoundingBox?.Top || 0) - (b.Geometry?.BoundingBox?.Top || 0);
282
+ });
283
+ for (const block of allBlocks) {
284
+ if (block.BlockType === 'PAGE') {
285
+ // If we were building a text block, push it before starting a new page
286
+ if (currentTextContent.trim().length > 0 && currentPage) {
287
+ currentPage.blocks.push({
288
+ type: 'text',
289
+ content: currentTextContent
290
+ });
291
+ }
292
+ if (currentPage) {
293
+ pageContents.push(currentPage);
294
+ }
295
+ currentPage = {
296
+ pageNumber: block.Page || 0,
297
+ blocks: []
298
+ };
299
+ currentTextContent = "";
300
+ prevLineBlock = null;
301
+ }
302
+ else if (currentPage && block.Page === currentPage.pageNumber) {
303
+ // TABLE handling
304
+ if (block.BlockType === 'TABLE') {
305
+ // If there's a pending text block, push it first
306
+ if (currentTextContent.trim().length > 0) {
307
+ currentPage.blocks.push({
308
+ type: 'text',
309
+ content: currentTextContent
310
+ });
311
+ currentTextContent = "";
312
+ }
313
+ const { csv, tableConfidence } = this.generateTableCSV(block, blocksMap, currentPage.blocks.filter(b => b.type === 'table').length + 1, currentPage.pageNumber);
314
+ currentPage.blocks.push({
315
+ type: 'table',
316
+ content: csv,
317
+ confidence: tableConfidence
318
+ });
319
+ prevLineBlock = null;
320
+ }
321
+ // LINE handling (merge or start new)
322
+ else if (block.BlockType === 'LINE' && !this.isBlockInTable(block, blocksMap)) {
323
+ if (prevLineBlock && this.shouldMergeLines(prevLineBlock, block)) {
324
+ // If we consider this line to be part of the same paragraph,
325
+ // just append the text. We'll call formatTextBlock to get
326
+ // indentation/header logic, but we won't add a leading newline.
327
+ const formatted = this.formatTextBlock(block, prevLineBlock);
328
+ // formatTextBlock might include a leading newline if isLikelyHeader = true
329
+ // so you can strip it out if you want them truly "merged" into one paragraph:
330
+ const mergedText = formatted.replace(/^\s*\n/, " ");
331
+ currentTextContent += " " + mergedText.trim();
332
+ }
333
+ else {
334
+ // If there's an existing text block, push it
335
+ if (currentTextContent.trim().length > 0) {
336
+ currentPage.blocks.push({
337
+ type: 'text',
338
+ content: currentTextContent
339
+ });
340
+ }
341
+ // Start a new text block
342
+ currentTextContent = this.formatTextBlock(block, prevLineBlock).trim();
343
+ }
344
+ prevLineBlock = block;
345
+ }
346
+ // IMAGES (if detectImages)
347
+ else if (this.detectImages) {
348
+ const geometry = block.Geometry?.BoundingBox;
349
+ if (geometry && geometry.Width && geometry.Height) {
350
+ const imagePlaceholder = this.getImagePlaceholder(block);
351
+ if (imagePlaceholder) {
352
+ // If there's a pending text block, push it first
353
+ if (currentTextContent.trim().length > 0) {
354
+ currentPage.blocks.push({
355
+ type: 'text',
356
+ content: currentTextContent
357
+ });
358
+ currentTextContent = "";
359
+ }
360
+ currentPage.blocks.push({
361
+ type: 'image',
362
+ content: imagePlaceholder,
363
+ left: geometry.Left,
364
+ top: geometry.Top,
365
+ width: geometry.Width,
366
+ height: geometry.Height
367
+ });
368
+ }
369
+ }
370
+ // No line update to prevLineBlock here
371
+ }
372
+ }
373
+ }
374
+ // Handle last page
375
+ if (currentPage) {
376
+ if (currentTextContent.trim().length > 0) {
377
+ currentPage.blocks.push({
378
+ type: 'text',
379
+ content: currentTextContent
380
+ });
381
+ }
382
+ pageContents.push(currentPage);
383
+ }
384
+ // Build final output
385
+ let fullText = '';
386
+ let imgNumber = 1;
387
+ let tableNumber = 1;
388
+ for (const page of pageContents) {
389
+ fullText += `<page number="${page.pageNumber}">\n`;
390
+ for (const block of page.blocks) {
391
+ if (block.type === 'text') {
392
+ fullText += `<text>\n${block.content}\n</text>\n\n`;
393
+ }
394
+ else if (block.type === 'table') {
395
+ const confidenceAttr = block.confidence !== undefined && this.includeConfidenceInTables
396
+ ? ` confidence="${block.confidence.toFixed(2)}"`
397
+ : '';
398
+ fullText += `<table number=${tableNumber++} type="csv" ${confidenceAttr}>\n`;
399
+ fullText += `${block.content}\n`;
400
+ fullText += `</table>\n\n`;
401
+ }
402
+ else if (block.type === 'image') {
403
+ // Include geometry if you like
404
+ const leftAttr = block.left ? ` left="${block.left.toFixed(4)}"` : '';
405
+ const topAttr = block.top ? ` top="${block.top.toFixed(4)}"` : '';
406
+ const widthAttr = block.width ? ` width="${block.width.toFixed(4)}"` : '';
407
+ const heightAttr = block.height ? ` height="${block.height.toFixed(4)}"` : '';
408
+ fullText += `<image id="${imgNumber++}" ${leftAttr}${topAttr}${widthAttr}${heightAttr}>\n${block.content.trim()}\n</image>\n\n`;
409
+ }
410
+ }
411
+ fullText += `</page>\n\n`;
412
+ }
413
+ return fullText;
414
+ }
415
+ }
416
+ exports.TextractProcessor = TextractProcessor;
417
+ //# sourceMappingURL=TextractProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextractProcessor.js","sourceRoot":"","sources":["../../../src/conversion/TextractProcessor.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAgE;AAEhE,8DAIkC;AAElC,0DAA6B;AAmC7B,MAAa,iBAAiB;IAClB,cAAc,CAAiB;IAC/B,QAAQ,CAAW;IACnB,OAAO,CAAS;IAChB,MAAM,CAAS;IACf,GAAG,CAAM;IACT,YAAY,CAAU;IAC9B;;OAEG;IACK,yBAAyB,CAAU;IAE3C,YAAY,EACR,OAAO,EACP,MAAM,EACN,MAAM,EACN,WAAW,EACX,GAAG,EACH,YAAY,GAAG,KAAK,EACpB,yBAAyB,GAAG,KAAK,CAAE,sBAAsB;MAClC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,yBAAyB,GAAG,yBAAyB,CAAC;QAE3D,IAAI,CAAC,cAAc,GAAG,IAAI,gCAAc,CAAC;YACrC,MAAM;YACN,WAAW;SACd,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAQ,CAAC;YACzB,MAAM;YACN,WAAW;SACd,CAAC,CAAC;IACP,CAAC;IAEO,OAAO,CAAC,MAAa,EAAE,SAAoB;QAC/C,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACvB,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC9C,IAAI,YAAY,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAChC,KAAK,MAAM,OAAO,IAAI,YAAY,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;wBAC3C,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;wBAChC,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;4BAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;4BACjC,kDAAkD;4BAClD,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;gCACtB,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gCAC3C,IAAI,IAAI,IAAI,QAAQ,IAAI,CAAC;4BAC7B,CAAC;iCAAM,CAAC;gCACJ,IAAI,IAAI,GAAG,QAAQ,GAAG,CAAC;4BAC3B,CAAC;wBACL,CAAC;wBACD,IACI,IAAI,CAAC,SAAS,KAAK,mBAAmB;4BACtC,IAAI,CAAC,eAAe,KAAK,UAAU,EACrC,CAAC;4BACC,IAAI,IAAI,IAAI,CAAC;wBACjB,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAEO,cAAc,CAAC,KAAY,EAAE,SAAoB;QACrD,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACtB,KAAK,MAAM,YAAY,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC7C,IAAI,YAAY,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAChC,KAAK,MAAM,OAAO,IAAI,YAAY,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;wBAC3C,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;wBACrC,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;4BAC/C,OAAO,IAAI,CAAC;wBAChB,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,iBAAiB,CAAC,SAAgB,EAAE,SAAoB;QAC5D,kEAAkE;QAClE,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;YAC9B,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;YAC1C,IAAI,cAAc,CAAC,SAAS,KAAK,OAAO,IAAI,cAAc,CAAC,aAAa,EAAE,CAAC;gBACvE,KAAK,MAAM,YAAY,IAAI,cAAc,CAAC,aAAa,EAAE,CAAC;oBACtD,IAAI,YAAY,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBAChC,KAAK,MAAM,MAAM,IAAI,YAAY,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;4BAC1C,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;4BAC/B,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gCAClD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oCACvC,IACI,OAAO,CAAC,IAAI,KAAK,OAAO;wCACxB,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAG,CAAC,EACtC,CAAC;wCACC,OAAO,IAAI,CAAC;oCAChB,CAAC;gCACL,CAAC;4BACL,CAAC;wBACL,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,iBAAiB,CACrB,WAAkB,EAClB,SAAoB;QAIpB,MAAM,IAAI,GAAuD,EAAE,CAAC;QAEpE,WAAW,CAAC,aAAa,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE;YAC9C,IAAI,YAAY,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAChC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;oBAChC,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;oBAChC,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;wBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;wBACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;wBAEvC,6BAA6B;wBAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC;4BACtB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;wBAC5B,CAAC;wBAED,mCAAmC;wBACnC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;wBAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;wBAExC,8CAA8C;wBAC9C,mDAAmD;wBACnD,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;4BAC5D,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;wBACzD,CAAC;wBACD,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;oBAC5D,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,EAAE,IAAI,EAAE,CAAC;IACpB,CAAC;IAEO,gBAAgB,CACpB,WAAkB,EAClB,SAAoB,EACpB,WAAmB,EACnB,WAAmB;QAEnB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAEhE,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,mBAAmB;QACnB,MAAM,OAAO,GAAe,EAAE,CAAC;QAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;gBACrB,aAAa;gBACb,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC/B,wBAAwB;gBACxB,eAAe,IAAI,IAAI,CAAC,UAAU,CAAC;gBACnC,SAAS,EAAE,CAAC;YAChB,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;QAED,8DAA8D;QAC9D,MAAM,eAAe,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1E,iBAAiB;QACjB,MAAM,GAAG,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YAC9B,SAAS,EAAE,GAAG;YACd,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,GAAG;YACd,UAAU,EAAE,GAAG;YACf,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI;YACb,cAAc,EAAE,KAAK;SACxB,CAAC,CAAC;QAEH,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAe;QACxB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,IAAI,4BAAgB,CAAC;YACjC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,IAAI,CAAC,OAAO;YACjB,IAAI,EAAE,OAAO;SAChB,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAa;QAC7B,MAAM,OAAO,GAAG,IAAI,8CAA4B,CAAC;YAC7C,gBAAgB,EAAE;gBACd,QAAQ,EAAE;oBACN,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,IAAI,EAAE,KAAK;iBACd;aACJ;YACD,YAAY,EAAE,CAAC,QAAQ,CAAC;SAC3B,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzD,OAAO,QAAQ,CAAC,KAAM,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAa;QAC9B,MAAM,OAAO,GAAG,IAAI,4CAA0B,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzD,OAAO,QAAQ,CAAC,SAAU,CAAC;IAC/B,CAAC;IAEO,mBAAmB,CAAC,KAAY;QACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC;QAC7C,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;QAC5D,IAAI,IAAI,GAAG,IAAI;YAAE,OAAO,EAAE,CAAC,CAAC,oBAAoB;QAEhD,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC;QAEhC,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,GAAG,GAAG,GAAG;YAAE,QAAQ,IAAI,MAAM,CAAC;aAC7B,IAAI,GAAG,GAAG,GAAG;YAAE,QAAQ,IAAI,SAAS,CAAC;QAE1C,IAAI,IAAI,GAAG,GAAG;YAAE,QAAQ,IAAI,MAAM,CAAC;aAC9B,IAAI,IAAI,GAAG,GAAG;YAAE,QAAQ,IAAI,OAAO,CAAC;;YACpC,QAAQ,IAAI,QAAQ,CAAC;QAE1B,OAAO,UAAU,QAAQ,KAAK,CAAC;IACnC,CAAC;IAEO,mBAAmB,CAAC,KAAY;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,IAAI,CAAC,CAAC;QACpD,IAAI,IAAI,GAAG,IAAI;YAAE,OAAO,CAAC,CAAC;QAC1B,IAAI,IAAI,GAAG,IAAI;YAAE,OAAO,CAAC,CAAC;QAC1B,OAAO,CAAC,CAAC;IACb,CAAC;IAEO,cAAc,CAAC,KAAY,EAAE,SAAuB;QACxD,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAC5B,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,CAAC;YAC/C,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,CAAC;gBACxC,CAAC,SAAS,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;QACxD,OAAO,GAAG,GAAG,IAAI,CAAC;IACtB,CAAC;IAEO,eAAe,CAAC,KAAY,EAAE,SAAuB;QACzD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;QAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAE1C,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;YACxC,OAAO,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC;QAClC,CAAC;QACD,OAAO,GAAG,MAAM,GAAG,IAAI,IAAI,CAAC;IAChC,CAAC;IAEO,gBAAgB,CAAC,IAAW,EAAE,OAAc;QAChD,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,CAAC;cACnD,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,UAAU,GAAG,UAAU,CAAC;QAEpC,uDAAuD;QACvD,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAa;QAC9B,IAAI,SAA6B,CAAC;QAClC,IAAI,SAAS,GAAY,EAAE,CAAC;QAE5B,GAAG,CAAC;YACA,MAAM,OAAO,GAAG,IAAI,4CAA0B,CAAC;gBAC3C,KAAK,EAAE,KAAK;gBACZ,SAAS,EAAE,SAAS;aACvB,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzD,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YACpD,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QACnC,CAAC,QAAQ,SAAS,EAAE;QAEpB,oBAAoB;QACpB,MAAM,SAAS,GAAc,EAAE,CAAC;QAChC,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC5B,SAAS,CAAC,KAAK,CAAC,EAAG,CAAC,GAAG,KAAK,CAAC;QACjC,CAAC;QAED,8CAA8C;QAC9C,MAAM,YAAY,GAAkB,EAAE,CAAC;QACvC,IAAI,WAAW,GAAuB,IAAI,CAAC;QAE3C,iEAAiE;QACjE,IAAI,kBAAkB,GAAG,EAAE,CAAC;QAC5B,IAAI,aAAa,GAAiB,IAAI,CAAC;QAEvC,qCAAqC;QACrC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACpB,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;gBAAE,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YAC5D,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;QAEH,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;gBAC7B,uEAAuE;gBACvE,IAAI,kBAAkB,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,EAAE,CAAC;oBACtD,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;wBACpB,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,kBAAkB;qBAC9B,CAAC,CAAC;gBACP,CAAC;gBACD,IAAI,WAAW,EAAE,CAAC;oBACd,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACnC,CAAC;gBACD,WAAW,GAAG;oBACV,UAAU,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;oBAC3B,MAAM,EAAE,EAAE;iBACb,CAAC;gBACF,kBAAkB,GAAG,EAAE,CAAC;gBACxB,aAAa,GAAG,IAAI,CAAC;YACzB,CAAC;iBACI,IAAI,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,UAAU,EAAE,CAAC;gBAC5D,iBAAiB;gBACjB,IAAI,KAAK,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;oBAC9B,iDAAiD;oBACjD,IAAI,kBAAkB,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACvC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;4BACpB,IAAI,EAAE,MAAM;4BACZ,OAAO,EAAE,kBAAkB;yBAC9B,CAAC,CAAC;wBACH,kBAAkB,GAAG,EAAE,CAAC;oBAC5B,CAAC;oBACD,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAClD,KAAK,EACL,SAAS,EACT,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAC7D,WAAW,CAAC,UAAU,CACzB,CAAC;oBACF,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;wBACpB,IAAI,EAAE,OAAO;wBACb,OAAO,EAAE,GAAG;wBACZ,UAAU,EAAE,eAAe;qBAC9B,CAAC,CAAC;oBACH,aAAa,GAAG,IAAI,CAAC;gBACzB,CAAC;gBACD,qCAAqC;qBAChC,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;oBAC5E,IAAI,aAAa,IAAI,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;wBAC/D,6DAA6D;wBAC7D,0DAA0D;wBAC1D,gEAAgE;wBAChE,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;wBAE7D,2EAA2E;wBAC3E,8EAA8E;wBAC9E,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;wBAEpD,kBAAkB,IAAI,GAAG,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;oBAClD,CAAC;yBAAM,CAAC;wBACJ,6CAA6C;wBAC7C,IAAI,kBAAkB,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACvC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;gCACpB,IAAI,EAAE,MAAM;gCACZ,OAAO,EAAE,kBAAkB;6BAC9B,CAAC,CAAC;wBACP,CAAC;wBACD,yBAAyB;wBACzB,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC;oBAC3E,CAAC;oBACD,aAAa,GAAG,KAAK,CAAC;gBAC1B,CAAC;gBACD,2BAA2B;qBACtB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC;oBAC7C,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;wBAChD,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;wBACzD,IAAI,gBAAgB,EAAE,CAAC;4BACnB,iDAAiD;4BACjD,IAAI,kBAAkB,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCACvC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;oCACpB,IAAI,EAAE,MAAM;oCACZ,OAAO,EAAE,kBAAkB;iCAC9B,CAAC,CAAC;gCACH,kBAAkB,GAAG,EAAE,CAAC;4BAC5B,CAAC;4BAED,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;gCACpB,IAAI,EAAE,OAAO;gCACb,OAAO,EAAE,gBAAgB;gCACzB,IAAI,EAAE,QAAQ,CAAC,IAAI;gCACnB,GAAG,EAAE,QAAQ,CAAC,GAAG;gCACjB,KAAK,EAAE,QAAQ,CAAC,KAAK;gCACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;6BAC1B,CAAC,CAAC;wBACP,CAAC;oBACL,CAAC;oBACD,uCAAuC;gBAC3C,CAAC;YACL,CAAC;QACL,CAAC;QAED,mBAAmB;QACnB,IAAI,WAAW,EAAE,CAAC;YACd,IAAI,kBAAkB,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;oBACpB,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,kBAAkB;iBAC9B,CAAC,CAAC;YACP,CAAC;YACD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC;QAED,qBAAqB;QACrB,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAC9B,QAAQ,IAAI,iBAAiB,IAAI,CAAC,UAAU,MAAM,CAAC;YACnD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC9B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACxB,QAAQ,IAAI,WAAW,KAAK,CAAC,OAAO,eAAe,CAAC;gBACxD,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAChC,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,yBAAyB;wBACnF,CAAC,CAAC,gBAAgB,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;wBAChD,CAAC,CAAC,EAAE,CAAC;oBACT,QAAQ,IAAI,iBAAiB,WAAW,EAAE,eAAe,cAAc,KAAK,CAAC;oBAC7E,QAAQ,IAAI,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC;oBACjC,QAAQ,IAAI,cAAc,CAAC;gBAC/B,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAChC,+BAA+B;oBAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtE,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClE,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1E,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBAE9E,QAAQ,IAAI,cAAc,SAAS,EAAE,KAAK,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC;gBACpI,CAAC;YACL,CAAC;YACD,QAAQ,IAAI,aAAa,CAAC;QAC9B,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;CAEJ;AA9cD,8CA8cC"}
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.imageResizer = imageResizer;
7
+ const activity_1 = require("@temporalio/activity");
8
+ const child_process_1 = require("child_process");
9
+ const fs_1 = __importDefault(require("fs"));
10
+ const tmp_promise_1 = require("tmp-promise");
11
+ const util_1 = require("util");
12
+ const execFile = (0, util_1.promisify)(child_process_1.execFile);
13
+ /**
14
+ * Resizes an image to a maximum height or width using ImageMagick
15
+ * with progressive loading when supported and colorspace correction
16
+ * @param inputPath Input file path
17
+ * @param max_hw Maximum height or width
18
+ * @param format Output format
19
+ * @param progressive Enable progressive loading for supported formats (defaults to true)
20
+ * @param colorspaceCorrection Enable colorspace correction (defaults to true), not recommended for Q8 image magick.
21
+ * @param colorspace Colorspace to use for processing ('RGB', 'LAB', 'LUV', 'sigmoidal') (defaults to 'RGB')
22
+ * @returns Path to the resized image
23
+ */
24
+ async function imageResizer(inputPath, max_hw, format, progressive = true, colorspaceCorrection = true, colorspace = 'RGB') {
25
+ activity_1.log.info(`[image-resizer] Resizing image: ${inputPath} to max_hw: ${max_hw}, format: ${format}, progressive: ${progressive}, colorspaceCorrection: ${colorspaceCorrection ? colorspace : 'disabled'}`);
26
+ const allowedFormats = ["jpg", "jpeg", "png", "webp"];
27
+ if (!format || format.trim() === "") {
28
+ throw new Error(`Invalid format: ${format}.Supported : ${allowedFormats.join(", ")}`);
29
+ }
30
+ //check that max_hw is valid
31
+ if (!Number.isInteger(max_hw) || max_hw <= 0) {
32
+ throw new Error(`Invalid max_hw value: ${max_hw}`);
33
+ }
34
+ //check that inputPath exists
35
+ if (!fs_1.default.existsSync(inputPath)) {
36
+ throw new Error(`Input file does not exist: ${inputPath}`);
37
+ }
38
+ // Create a temporary file
39
+ const { path: outputPath, cleanup } = await (0, tmp_promise_1.file)({ postfix: `.${format}` });
40
+ try {
41
+ // Check if input file exists
42
+ if (!fs_1.default.existsSync(inputPath)) {
43
+ throw new Error(`Input file does not exist: ${inputPath}`);
44
+ }
45
+ // Validate max_hw
46
+ if (!Number.isInteger(max_hw) || max_hw <= 0) {
47
+ throw new Error(`Invalid max_hw value: ${max_hw}`);
48
+ }
49
+ // Progressive loading options
50
+ let conversionOption = "";
51
+ // Only add progressive option for formats that support it
52
+ if (progressive) {
53
+ // JPEG and some other formats support progressive loading
54
+ const lowerFormat = format.toLowerCase();
55
+ if (lowerFormat === "jpg" || lowerFormat === "jpeg") {
56
+ conversionOption = "-interlace JPEG";
57
+ activity_1.log.info(`Enabling interlaced ${lowerFormat.toUpperCase()} format`);
58
+ }
59
+ else if (lowerFormat === "png") {
60
+ conversionOption = "-interlace PNG";
61
+ activity_1.log.info(`Enabling interlaced ${lowerFormat.toUpperCase()} format`);
62
+ }
63
+ else if (lowerFormat === "gif") {
64
+ conversionOption = "-interlace GIF";
65
+ activity_1.log.info(`Enabling interlaced ${lowerFormat.toUpperCase()} format`);
66
+ }
67
+ }
68
+ activity_1.log.info(`Resizing image using ImageMagick: ${inputPath} -> ${outputPath}`);
69
+ const command = `convert`;
70
+ let args = [inputPath];
71
+ // Add JPEG shrink-on-load optimization
72
+ args.push("-define", `jpeg:size=${max_hw * 3}x${max_hw * 3}`);
73
+ // Remove metadata
74
+ args.push("-strip");
75
+ // https://usage.imagemagick.org/filter/nicolas/#downsample
76
+ // Add colorspace correction if enabled
77
+ if (colorspaceCorrection) {
78
+ switch (colorspace) {
79
+ case 'RGB':
80
+ // Linear light, recommended default
81
+ // Convert from sRGB to linear RGB for processing
82
+ args.push("-colorspace", "RGB");
83
+ activity_1.log.info("Using linear RGB colorspace for resize processing");
84
+ break;
85
+ case 'LAB':
86
+ // Perceptual linear light
87
+ // Use LAB colorspace which separates intensity from color
88
+ // Better for avoiding color clipping and distortion
89
+ args.push("-colorspace", "LAB");
90
+ activity_1.log.info("Using LAB colorspace for resize processing");
91
+ break;
92
+ case 'LUV':
93
+ // Perceptual linear light
94
+ // Alternative to LAB with perceptually uniform color deltas
95
+ args.push("-colorspace", "LUV");
96
+ activity_1.log.info("Using LUV colorspace for resize processing");
97
+ break;
98
+ case 'sigmoidal':
99
+ // Sigmoidal colorspace modification to reduce ringing artifacts
100
+ args.push("-colorspace", "RGB");
101
+ args.push("+sigmoidal-contrast", "6.5,50%");
102
+ activity_1.log.info("Using sigmoidal contrast modification for resize processing");
103
+ break;
104
+ }
105
+ }
106
+ // Resize operation
107
+ args.push("-resize", `${max_hw}x${max_hw}>`);
108
+ // Restore colorspace after processing
109
+ if (colorspaceCorrection) {
110
+ switch (colorspace) {
111
+ case 'RGB':
112
+ case 'LAB':
113
+ case 'LUV':
114
+ // Convert back to sRGB for output
115
+ args.push("-colorspace", "sRGB");
116
+ break;
117
+ case 'sigmoidal':
118
+ // Restore from sigmoidal modification and convert to sRGB
119
+ args.push("-sigmoidal-contrast", "6.5,50%");
120
+ args.push("-colorspace", "sRGB");
121
+ break;
122
+ }
123
+ }
124
+ // Add progressive/interlace options
125
+ if (conversionOption) {
126
+ args.push(...conversionOption.split(" "));
127
+ }
128
+ // Output path
129
+ args.push(outputPath);
130
+ activity_1.log.info(`ImageMagick command: ${command} ${args.join(" ")}`);
131
+ const { stderr } = await execFile(command, args);
132
+ if (stderr) {
133
+ activity_1.log.warn(`ImageMagick warning: ${stderr}`);
134
+ }
135
+ // Verify output exists and has content
136
+ if (!fs_1.default.existsSync(outputPath) || fs_1.default.statSync(outputPath).size === 0) {
137
+ throw new Error(`ImageMagick conversion failed: output file not created or empty`);
138
+ }
139
+ return outputPath;
140
+ }
141
+ catch (error) {
142
+ // Clean up the temporary file
143
+ await cleanup();
144
+ const errorMessage = error instanceof Error ? error.message : String(error);
145
+ activity_1.log.error(`Image conversion failed: ${errorMessage}`);
146
+ throw new Error(`Image conversion failed: ${errorMessage}`);
147
+ }
148
+ }
149
+ //# sourceMappingURL=image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.js","sourceRoot":"","sources":["../../../src/conversion/image.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.markdownWithMarkitdown = markdownWithMarkitdown;
7
+ const activity_1 = require("@temporalio/activity");
8
+ const child_process_1 = require("child_process");
9
+ const fs_1 = __importDefault(require("fs"));
10
+ const tmp_1 = __importDefault(require("tmp"));
11
+ function markdownWithMarkitdown(buffer, ext) {
12
+ const inputFile = tmp_1.default.fileSync({ postfix: ext });
13
+ const targetFileName = tmp_1.default.tmpNameSync({ postfix: ".md" });
14
+ fs_1.default.writeSync(inputFile.fd, buffer);
15
+ return new Promise((resolve, reject) => {
16
+ const tool = "markitdown";
17
+ activity_1.log.info(`Converting document to markdown with ${tool}`, { inputFile: inputFile.name, targetFileName });
18
+ const command = (0, child_process_1.spawn)(tool, [inputFile.name, "-o", targetFileName]);
19
+ command.on("exit", function (code) {
20
+ if (code) {
21
+ reject(new Error(`${tool} exited with code ${code}`));
22
+ }
23
+ });
24
+ command.on("close", function (code) {
25
+ if (code) {
26
+ reject(new Error(`${tool} exited with code ${code}`));
27
+ }
28
+ else {
29
+ return fs_1.default.readFile(targetFileName, "utf8", (err, data) => {
30
+ if (err) {
31
+ reject(err);
32
+ }
33
+ return resolve(data);
34
+ });
35
+ }
36
+ });
37
+ command.on("error", (err) => {
38
+ reject(err);
39
+ });
40
+ });
41
+ }
42
+ //# sourceMappingURL=markitdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markitdown.js","sourceRoot":"","sources":["../../../src/conversion/markitdown.ts"],"names":[],"mappings":";;;;;AAKA,wDAmCC;AAxCD,mDAA2C;AAC3C,iDAAsC;AACtC,4CAAoB;AACpB,8CAAsB;AAEtB,SAAgB,sBAAsB,CAAC,MAAc,EAAE,GAAY;IAC/D,MAAM,SAAS,GAAG,aAAG,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IACjD,MAAM,cAAc,GAAG,aAAG,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAE3D,YAAE,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAEnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,IAAI,GAAG,YAAY,CAAC;QAC1B,cAAG,CAAC,IAAI,CAAC,wCAAwC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QAExG,MAAM,OAAO,GAAG,IAAA,qBAAK,EAAC,IAAI,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;QAEpE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,IAAI;YAC7B,IAAI,IAAI,EAAE,CAAC;gBACP,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,qBAAqB,IAAI,EAAE,CAAC,CAAC,CAAC;YAC1D,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,IAAI;YAC9B,IAAI,IAAI,EAAE,CAAC;gBACP,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,qBAAqB,IAAI,EAAE,CAAC,CAAC,CAAC;YAC1D,CAAC;iBAAM,CAAC;gBACJ,OAAO,YAAE,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;oBACrD,IAAI,GAAG,EAAE,CAAC;wBACN,MAAM,CAAC,GAAG,CAAC,CAAC;oBAChB,CAAC;oBACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzB,CAAC,CAAC,CAAC;YACP,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,MAAM,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC"}