flow-frame-core 0.1.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 (416) hide show
  1. package/README.md +64 -0
  2. package/dist/Dockerfile +86 -0
  3. package/dist/GPU_DEPLOYMENT_README.md +324 -0
  4. package/dist/OPS_AGENT_README.md +174 -0
  5. package/dist/README-H100-VM.md +192 -0
  6. package/dist/README-worker-pools.md +231 -0
  7. package/dist/README.md +8 -0
  8. package/dist/WEB-ELEMENT-REQUESTS-README.md +302 -0
  9. package/dist/append.d.ts +3 -0
  10. package/dist/append.d.ts.map +1 -0
  11. package/dist/append.js +42 -0
  12. package/dist/append.js.map +1 -0
  13. package/dist/audioRoutes.d.ts +2 -0
  14. package/dist/audioRoutes.d.ts.map +1 -0
  15. package/dist/audioRoutes.js +97 -0
  16. package/dist/audioRoutes.js.map +1 -0
  17. package/dist/augment-parallel.d.ts +6 -0
  18. package/dist/augment-parallel.d.ts.map +1 -0
  19. package/dist/augment-parallel.js +128 -0
  20. package/dist/augment-parallel.js.map +1 -0
  21. package/dist/augment-worker.d.ts +2 -0
  22. package/dist/augment-worker.d.ts.map +1 -0
  23. package/dist/augment-worker.js +100 -0
  24. package/dist/augment-worker.js.map +1 -0
  25. package/dist/browerRoutes.d.ts +2 -0
  26. package/dist/browerRoutes.d.ts.map +1 -0
  27. package/dist/browerRoutes.js +323 -0
  28. package/dist/browerRoutes.js.map +1 -0
  29. package/dist/browser-utils/utils.d.ts +6 -0
  30. package/dist/browser-utils/utils.d.ts.map +1 -0
  31. package/dist/browser-utils/utils.js +133 -0
  32. package/dist/browser-utils/utils.js.map +1 -0
  33. package/dist/capture_training_data_endpoints.d.ts +158 -0
  34. package/dist/capture_training_data_endpoints.d.ts.map +1 -0
  35. package/dist/capture_training_data_endpoints.js +1812 -0
  36. package/dist/capture_training_data_endpoints.js.map +1 -0
  37. package/dist/config.json +28 -0
  38. package/dist/configEndpoints.d.ts +2 -0
  39. package/dist/configEndpoints.d.ts.map +1 -0
  40. package/dist/configEndpoints.js +459 -0
  41. package/dist/configEndpoints.js.map +1 -0
  42. package/dist/constants.d.ts +109 -0
  43. package/dist/constants.d.ts.map +1 -0
  44. package/dist/constants.js +110 -0
  45. package/dist/constants.js.map +1 -0
  46. package/dist/docs/workflow_nodes.md +257 -0
  47. package/dist/download.d.ts +11 -0
  48. package/dist/download.d.ts.map +1 -0
  49. package/dist/download.js +31 -0
  50. package/dist/download.js.map +1 -0
  51. package/dist/download.py +61 -0
  52. package/dist/ecosystem.config.json +63 -0
  53. package/dist/email-body-extractor.d.ts +20 -0
  54. package/dist/email-body-extractor.d.ts.map +1 -0
  55. package/dist/email-body-extractor.js +103 -0
  56. package/dist/email-body-extractor.js.map +1 -0
  57. package/dist/express_util.d.ts +2 -0
  58. package/dist/express_util.d.ts.map +1 -0
  59. package/dist/express_util.js +30 -0
  60. package/dist/express_util.js.map +1 -0
  61. package/dist/extension/background.d.ts +2 -0
  62. package/dist/extension/background.d.ts.map +1 -0
  63. package/dist/extension/background.js +268 -0
  64. package/dist/extension/background.js.map +1 -0
  65. package/dist/extension/manifest.json +19 -0
  66. package/dist/extensionUtils.d.ts +2 -0
  67. package/dist/extensionUtils.d.ts.map +1 -0
  68. package/dist/extensionUtils.js +48 -0
  69. package/dist/extensionUtils.js.map +1 -0
  70. package/dist/filter-gmail-poller/README.md +320 -0
  71. package/dist/filter-gmail-poller/demo.d.ts +2 -0
  72. package/dist/filter-gmail-poller/demo.d.ts.map +1 -0
  73. package/dist/filter-gmail-poller/demo.js +79 -0
  74. package/dist/filter-gmail-poller/demo.js.map +1 -0
  75. package/dist/filter-gmail-poller/example-existing-app.d.ts +2 -0
  76. package/dist/filter-gmail-poller/example-existing-app.d.ts.map +1 -0
  77. package/dist/filter-gmail-poller/example-existing-app.js +72 -0
  78. package/dist/filter-gmail-poller/example-existing-app.js.map +1 -0
  79. package/dist/filter-gmail-poller/filter-gmail-poller.d.ts +160 -0
  80. package/dist/filter-gmail-poller/filter-gmail-poller.d.ts.map +1 -0
  81. package/dist/filter-gmail-poller/filter-gmail-poller.js +1048 -0
  82. package/dist/filter-gmail-poller/filter-gmail-poller.js.map +1 -0
  83. package/dist/filter-gmail-poller/index.d.ts +3 -0
  84. package/dist/filter-gmail-poller/index.d.ts.map +1 -0
  85. package/dist/filter-gmail-poller/index.js +18 -0
  86. package/dist/filter-gmail-poller/index.js.map +1 -0
  87. package/dist/filter-gmail-poller/manual-test.d.ts +2 -0
  88. package/dist/filter-gmail-poller/manual-test.d.ts.map +1 -0
  89. package/dist/filter-gmail-poller/manual-test.js +70 -0
  90. package/dist/filter-gmail-poller/manual-test.js.map +1 -0
  91. package/dist/filter-gmail-poller/poller-prompts.d.ts +12 -0
  92. package/dist/filter-gmail-poller/poller-prompts.d.ts.map +1 -0
  93. package/dist/filter-gmail-poller/poller-prompts.js +330 -0
  94. package/dist/filter-gmail-poller/poller-prompts.js.map +1 -0
  95. package/dist/filter-gmail-poller/test.js +69 -0
  96. package/dist/flowframe-auto-firebase-adminsdk.json +13 -0
  97. package/dist/gmail-poller/README-microsoft-email-poller.md +203 -0
  98. package/dist/gmail-poller/README.md +129 -0
  99. package/dist/gmail-poller/example.d.ts +5 -0
  100. package/dist/gmail-poller/example.d.ts.map +1 -0
  101. package/dist/gmail-poller/example.js +83 -0
  102. package/dist/gmail-poller/example.js.map +1 -0
  103. package/dist/gmail-poller/gmail-poller.d.ts +82 -0
  104. package/dist/gmail-poller/gmail-poller.d.ts.map +1 -0
  105. package/dist/gmail-poller/gmail-poller.js +455 -0
  106. package/dist/gmail-poller/gmail-poller.js.map +1 -0
  107. package/dist/gmail-poller/manual-test.d.ts +2 -0
  108. package/dist/gmail-poller/manual-test.d.ts.map +1 -0
  109. package/dist/gmail-poller/manual-test.js +37 -0
  110. package/dist/gmail-poller/manual-test.js.map +1 -0
  111. package/dist/gmail-poller/microsoft-email-example.d.ts +8 -0
  112. package/dist/gmail-poller/microsoft-email-example.d.ts.map +1 -0
  113. package/dist/gmail-poller/microsoft-email-example.js +58 -0
  114. package/dist/gmail-poller/microsoft-email-example.js.map +1 -0
  115. package/dist/gmail-poller/microsoft-email-poller.d.ts +73 -0
  116. package/dist/gmail-poller/microsoft-email-poller.d.ts.map +1 -0
  117. package/dist/gmail-poller/microsoft-email-poller.js +346 -0
  118. package/dist/gmail-poller/microsoft-email-poller.js.map +1 -0
  119. package/dist/gmail-poller/setup-auth.d.ts +3 -0
  120. package/dist/gmail-poller/setup-auth.d.ts.map +1 -0
  121. package/dist/gmail-poller/setup-auth.js +36 -0
  122. package/dist/gmail-poller/setup-auth.js.map +1 -0
  123. package/dist/gmail-poller/test.js +36 -0
  124. package/dist/index.d.ts +10 -0
  125. package/dist/index.d.ts.map +1 -0
  126. package/dist/index.js +28 -0
  127. package/dist/index.js.map +1 -0
  128. package/dist/inference/augment_levels.d.ts +2 -0
  129. package/dist/inference/augment_levels.d.ts.map +1 -0
  130. package/dist/inference/augment_levels.js +1 -0
  131. package/dist/inference/augment_levels.js.map +1 -0
  132. package/dist/inference/capture-overlay.d.ts +13 -0
  133. package/dist/inference/capture-overlay.d.ts.map +1 -0
  134. package/dist/inference/capture-overlay.js +355 -0
  135. package/dist/inference/capture-overlay.js.map +1 -0
  136. package/dist/inference/capturescreenshot.d.ts +12 -0
  137. package/dist/inference/capturescreenshot.d.ts.map +1 -0
  138. package/dist/inference/capturescreenshot.js +157 -0
  139. package/dist/inference/capturescreenshot.js.map +1 -0
  140. package/dist/jsonHandler.d.ts +37 -0
  141. package/dist/jsonHandler.d.ts.map +1 -0
  142. package/dist/jsonHandler.js +191 -0
  143. package/dist/jsonHandler.js.map +1 -0
  144. package/dist/localStorage.json +11 -0
  145. package/dist/media_data_endpoints.d.ts +2 -0
  146. package/dist/media_data_endpoints.d.ts.map +1 -0
  147. package/dist/media_data_endpoints.js +102 -0
  148. package/dist/media_data_endpoints.js.map +1 -0
  149. package/dist/operations/blender-ops.d.ts +4 -0
  150. package/dist/operations/blender-ops.d.ts.map +1 -0
  151. package/dist/operations/blender-ops.js +55 -0
  152. package/dist/operations/blender-ops.js.map +1 -0
  153. package/dist/operations.d.ts +34 -0
  154. package/dist/operations.d.ts.map +1 -0
  155. package/dist/operations.js +1514 -0
  156. package/dist/operations.js.map +1 -0
  157. package/dist/pdfRoutes.d.ts +2 -0
  158. package/dist/pdfRoutes.d.ts.map +1 -0
  159. package/dist/pdfRoutes.js +56 -0
  160. package/dist/pdfRoutes.js.map +1 -0
  161. package/dist/peers.d.ts +9 -0
  162. package/dist/peers.d.ts.map +1 -0
  163. package/dist/peers.js +70 -0
  164. package/dist/peers.js.map +1 -0
  165. package/dist/playparser.d.ts +2 -0
  166. package/dist/playparser.d.ts.map +1 -0
  167. package/dist/playparser.js +281 -0
  168. package/dist/playparser.js.map +1 -0
  169. package/dist/process.d.ts +4 -0
  170. package/dist/process.d.ts.map +1 -0
  171. package/dist/process.js +375 -0
  172. package/dist/process.js.map +1 -0
  173. package/dist/promptRoutes.d.ts +7 -0
  174. package/dist/promptRoutes.d.ts.map +1 -0
  175. package/dist/promptRoutes.js +68 -0
  176. package/dist/promptRoutes.js.map +1 -0
  177. package/dist/queueManager.d.ts +23 -0
  178. package/dist/queueManager.d.ts.map +1 -0
  179. package/dist/queueManager.js +96 -0
  180. package/dist/queueManager.js.map +1 -0
  181. package/dist/run-flow.d.ts +8 -0
  182. package/dist/run-flow.d.ts.map +1 -0
  183. package/dist/run-flow.js +220 -0
  184. package/dist/run-flow.js.map +1 -0
  185. package/dist/scraper.d.ts +2 -0
  186. package/dist/scraper.d.ts.map +1 -0
  187. package/dist/scraper.js +75 -0
  188. package/dist/scraper.js.map +1 -0
  189. package/dist/scraper_endpoints.d.ts +2 -0
  190. package/dist/scraper_endpoints.d.ts.map +1 -0
  191. package/dist/scraper_endpoints.js +40 -0
  192. package/dist/scraper_endpoints.js.map +1 -0
  193. package/dist/server.d.ts +2 -0
  194. package/dist/server.d.ts.map +1 -0
  195. package/dist/server.js +528 -0
  196. package/dist/server.js.map +1 -0
  197. package/dist/services/ModelContext.d.ts +7 -0
  198. package/dist/services/ModelContext.d.ts.map +1 -0
  199. package/dist/services/ModelContext.js +7 -0
  200. package/dist/services/ModelContext.js.map +1 -0
  201. package/dist/services/agenticUiPlanner.d.ts +27 -0
  202. package/dist/services/agenticUiPlanner.d.ts.map +1 -0
  203. package/dist/services/agenticUiPlanner.js +161 -0
  204. package/dist/services/agenticUiPlanner.js.map +1 -0
  205. package/dist/services/apiKeyService.d.ts +3 -0
  206. package/dist/services/apiKeyService.d.ts.map +1 -0
  207. package/dist/services/apiKeyService.js +7 -0
  208. package/dist/services/apiKeyService.js.map +1 -0
  209. package/dist/services/audioService.d.ts +10 -0
  210. package/dist/services/audioService.d.ts.map +1 -0
  211. package/dist/services/audioService.js +140 -0
  212. package/dist/services/audioService.js.map +1 -0
  213. package/dist/services/autoPromptOptimizer.d.ts +44 -0
  214. package/dist/services/autoPromptOptimizer.d.ts.map +1 -0
  215. package/dist/services/autoPromptOptimizer.js +344 -0
  216. package/dist/services/autoPromptOptimizer.js.map +1 -0
  217. package/dist/services/autoPromptOptimizer.manual-test.d.ts +2 -0
  218. package/dist/services/autoPromptOptimizer.manual-test.d.ts.map +1 -0
  219. package/dist/services/autoPromptOptimizer.manual-test.js +27 -0
  220. package/dist/services/autoPromptOptimizer.manual-test.js.map +1 -0
  221. package/dist/services/chainExecutor.d.ts +26 -0
  222. package/dist/services/chainExecutor.d.ts.map +1 -0
  223. package/dist/services/chainExecutor.js +399 -0
  224. package/dist/services/chainExecutor.js.map +1 -0
  225. package/dist/services/classifyImageQuestion.d.ts +55 -0
  226. package/dist/services/classifyImageQuestion.d.ts.map +1 -0
  227. package/dist/services/classifyImageQuestion.js +428 -0
  228. package/dist/services/classifyImageQuestion.js.map +1 -0
  229. package/dist/services/configuration/executor.d.ts +3 -0
  230. package/dist/services/configuration/executor.d.ts.map +1 -0
  231. package/dist/services/configuration/executor.js +795 -0
  232. package/dist/services/configuration/executor.js.map +1 -0
  233. package/dist/services/error.d.ts +13 -0
  234. package/dist/services/error.d.ts.map +1 -0
  235. package/dist/services/error.js +34 -0
  236. package/dist/services/error.js.map +1 -0
  237. package/dist/services/executor.d.ts +11 -0
  238. package/dist/services/executor.d.ts.map +1 -0
  239. package/dist/services/executor.js +1587 -0
  240. package/dist/services/executor.js.map +1 -0
  241. package/dist/services/extractPdf.d.ts +26 -0
  242. package/dist/services/extractPdf.d.ts.map +1 -0
  243. package/dist/services/extractPdf.js +256 -0
  244. package/dist/services/extractPdf.js.map +1 -0
  245. package/dist/services/generateJsTransformFromPrompt.d.ts +11 -0
  246. package/dist/services/generateJsTransformFromPrompt.d.ts.map +1 -0
  247. package/dist/services/generateJsTransformFromPrompt.js +328 -0
  248. package/dist/services/generateJsTransformFromPrompt.js.map +1 -0
  249. package/dist/services/localizeFirebaseMedia.d.ts +20 -0
  250. package/dist/services/localizeFirebaseMedia.d.ts.map +1 -0
  251. package/dist/services/localizeFirebaseMedia.js +135 -0
  252. package/dist/services/localizeFirebaseMedia.js.map +1 -0
  253. package/dist/services/polyfill_canvas.d.ts +2 -0
  254. package/dist/services/polyfill_canvas.d.ts.map +1 -0
  255. package/dist/services/polyfill_canvas.js +19 -0
  256. package/dist/services/polyfill_canvas.js.map +1 -0
  257. package/dist/services/promptRoutes.d.ts +7 -0
  258. package/dist/services/promptRoutes.d.ts.map +1 -0
  259. package/dist/services/promptRoutes.js +70 -0
  260. package/dist/services/promptRoutes.js.map +1 -0
  261. package/dist/services/runPrompt.d.ts +29 -0
  262. package/dist/services/runPrompt.d.ts.map +1 -0
  263. package/dist/services/runPrompt.js +232 -0
  264. package/dist/services/runPrompt.js.map +1 -0
  265. package/dist/services/schemaInference.d.ts +2 -0
  266. package/dist/services/schemaInference.d.ts.map +1 -0
  267. package/dist/services/schemaInference.js +17 -0
  268. package/dist/services/schemaInference.js.map +1 -0
  269. package/dist/services/self-learning/api.d.ts +2 -0
  270. package/dist/services/self-learning/api.d.ts.map +1 -0
  271. package/dist/services/self-learning/api.js +84 -0
  272. package/dist/services/self-learning/api.js.map +1 -0
  273. package/dist/services/self-learning/autolearn.d.ts +23 -0
  274. package/dist/services/self-learning/autolearn.d.ts.map +1 -0
  275. package/dist/services/self-learning/autolearn.js +308 -0
  276. package/dist/services/self-learning/autolearn.js.map +1 -0
  277. package/dist/services/self-learning/discover.d.ts +11 -0
  278. package/dist/services/self-learning/discover.d.ts.map +1 -0
  279. package/dist/services/self-learning/discover.js +446 -0
  280. package/dist/services/self-learning/discover.js.map +1 -0
  281. package/dist/services/self-learning/image.d.ts +10 -0
  282. package/dist/services/self-learning/image.d.ts.map +1 -0
  283. package/dist/services/self-learning/image.js +38 -0
  284. package/dist/services/self-learning/image.js.map +1 -0
  285. package/dist/services/self-learning/injest.d.ts +25 -0
  286. package/dist/services/self-learning/injest.d.ts.map +1 -0
  287. package/dist/services/self-learning/injest.js +110 -0
  288. package/dist/services/self-learning/injest.js.map +1 -0
  289. package/dist/services/self-learning/learn.d.ts +2 -0
  290. package/dist/services/self-learning/learn.d.ts.map +1 -0
  291. package/dist/services/self-learning/learn.js +145 -0
  292. package/dist/services/self-learning/learn.js.map +1 -0
  293. package/dist/services/self-learning/matcher.d.ts +2 -0
  294. package/dist/services/self-learning/matcher.d.ts.map +1 -0
  295. package/dist/services/self-learning/matcher.js +38 -0
  296. package/dist/services/self-learning/matcher.js.map +1 -0
  297. package/dist/services/self-learning/openai.d.ts +8 -0
  298. package/dist/services/self-learning/openai.d.ts.map +1 -0
  299. package/dist/services/self-learning/openai.js +97 -0
  300. package/dist/services/self-learning/openai.js.map +1 -0
  301. package/dist/services/self-learning/phash.d.ts +5 -0
  302. package/dist/services/self-learning/phash.d.ts.map +1 -0
  303. package/dist/services/self-learning/phash.js +68 -0
  304. package/dist/services/self-learning/phash.js.map +1 -0
  305. package/dist/services/self-learning/recognize.d.ts +17 -0
  306. package/dist/services/self-learning/recognize.d.ts.map +1 -0
  307. package/dist/services/self-learning/recognize.js +116 -0
  308. package/dist/services/self-learning/recognize.js.map +1 -0
  309. package/dist/services/self-learning/record_transition.d.ts +8 -0
  310. package/dist/services/self-learning/record_transition.d.ts.map +1 -0
  311. package/dist/services/self-learning/record_transition.js +20 -0
  312. package/dist/services/self-learning/record_transition.js.map +1 -0
  313. package/dist/services/self-learning/registry.d.ts +4 -0
  314. package/dist/services/self-learning/registry.d.ts.map +1 -0
  315. package/dist/services/self-learning/registry.js +19 -0
  316. package/dist/services/self-learning/registry.js.map +1 -0
  317. package/dist/services/self-learning/schema.d.ts +114 -0
  318. package/dist/services/self-learning/schema.d.ts.map +1 -0
  319. package/dist/services/self-learning/schema.js +70 -0
  320. package/dist/services/self-learning/schema.js.map +1 -0
  321. package/dist/services/self-learning/schemaStrictify.d.ts +2 -0
  322. package/dist/services/self-learning/schemaStrictify.d.ts.map +1 -0
  323. package/dist/services/self-learning/schemaStrictify.js +34 -0
  324. package/dist/services/self-learning/schemaStrictify.js.map +1 -0
  325. package/dist/services/self-learning/transition_graph.d.ts +6 -0
  326. package/dist/services/self-learning/transition_graph.d.ts.map +1 -0
  327. package/dist/services/self-learning/transition_graph.js +83 -0
  328. package/dist/services/self-learning/transition_graph.js.map +1 -0
  329. package/dist/services/self-learning/transition_log.d.ts +3 -0
  330. package/dist/services/self-learning/transition_log.d.ts.map +1 -0
  331. package/dist/services/self-learning/transition_log.js +42 -0
  332. package/dist/services/self-learning/transition_log.js.map +1 -0
  333. package/dist/services/self-learning/util.d.ts +3 -0
  334. package/dist/services/self-learning/util.d.ts.map +1 -0
  335. package/dist/services/self-learning/util.js +11 -0
  336. package/dist/services/self-learning/util.js.map +1 -0
  337. package/dist/services/stepByStepAiPlanner.d.ts +39 -0
  338. package/dist/services/stepByStepAiPlanner.d.ts.map +1 -0
  339. package/dist/services/stepByStepAiPlanner.js +379 -0
  340. package/dist/services/stepByStepAiPlanner.js.map +1 -0
  341. package/dist/services/test-genjs.js +39 -0
  342. package/dist/services/test-genjs.manual-test.d.ts +2 -0
  343. package/dist/services/test-genjs.manual-test.d.ts.map +1 -0
  344. package/dist/services/test-genjs.manual-test.js +40 -0
  345. package/dist/services/test-genjs.manual-test.js.map +1 -0
  346. package/dist/services/uiMapPathFinder.d.ts +13 -0
  347. package/dist/services/uiMapPathFinder.d.ts.map +1 -0
  348. package/dist/services/uiMapPathFinder.js +79 -0
  349. package/dist/services/uiMapPathFinder.js.map +1 -0
  350. package/dist/services/uiMapService.d.ts +26 -0
  351. package/dist/services/uiMapService.d.ts.map +1 -0
  352. package/dist/services/uiMapService.js +275 -0
  353. package/dist/services/uiMapService.js.map +1 -0
  354. package/dist/services/uiPlanner.d.ts +54 -0
  355. package/dist/services/uiPlanner.d.ts.map +1 -0
  356. package/dist/services/uiPlanner.js +558 -0
  357. package/dist/services/uiPlanner.js.map +1 -0
  358. package/dist/services/utilityFunctions.d.ts +80 -0
  359. package/dist/services/utilityFunctions.d.ts.map +1 -0
  360. package/dist/services/utilityFunctions.js +352 -0
  361. package/dist/services/utilityFunctions.js.map +1 -0
  362. package/dist/services/variableGenerator.d.ts +39 -0
  363. package/dist/services/variableGenerator.d.ts.map +1 -0
  364. package/dist/services/variableGenerator.js +157 -0
  365. package/dist/services/variableGenerator.js.map +1 -0
  366. package/dist/services/workflow/build-workflow.d.ts +49 -0
  367. package/dist/services/workflow/build-workflow.d.ts.map +1 -0
  368. package/dist/services/workflow/build-workflow.js +119 -0
  369. package/dist/services/workflow/build-workflow.js.map +1 -0
  370. package/dist/standardRoutes.d.ts +2 -0
  371. package/dist/standardRoutes.d.ts.map +1 -0
  372. package/dist/standardRoutes.js +1495 -0
  373. package/dist/standardRoutes.js.map +1 -0
  374. package/dist/stepWorkflowRoutes.d.ts +2 -0
  375. package/dist/stepWorkflowRoutes.d.ts.map +1 -0
  376. package/dist/stepWorkflowRoutes.js +1007 -0
  377. package/dist/stepWorkflowRoutes.js.map +1 -0
  378. package/dist/storage.d.ts +19 -0
  379. package/dist/storage.d.ts.map +1 -0
  380. package/dist/storage.docker.json +61 -0
  381. package/dist/storage.js +131 -0
  382. package/dist/storage.js.map +1 -0
  383. package/dist/storage.json +78 -0
  384. package/dist/storage_cache/boxes.json +48 -0
  385. package/dist/storage_cache/suno_state.json +3 -0
  386. package/dist/suno_download.d.ts +11 -0
  387. package/dist/suno_download.d.ts.map +1 -0
  388. package/dist/suno_download.js +33 -0
  389. package/dist/suno_download.js.map +1 -0
  390. package/dist/suno_download.py +119 -0
  391. package/dist/test-web-element-requests.d.ts +6 -0
  392. package/dist/test-web-element-requests.d.ts.map +1 -0
  393. package/dist/test-web-element-requests.js +114 -0
  394. package/dist/test-web-element-requests.js.map +1 -0
  395. package/dist/test_pdf_render.d.ts +2 -0
  396. package/dist/test_pdf_render.d.ts.map +1 -0
  397. package/dist/test_pdf_render.js +50 -0
  398. package/dist/test_pdf_render.js.map +1 -0
  399. package/dist/training_data_viewer_endpoints.d.ts +2 -0
  400. package/dist/training_data_viewer_endpoints.d.ts.map +1 -0
  401. package/dist/training_data_viewer_endpoints.js +141 -0
  402. package/dist/training_data_viewer_endpoints.js.map +1 -0
  403. package/dist/utils.d.ts +353 -0
  404. package/dist/utils.d.ts.map +1 -0
  405. package/dist/utils.js +1517 -0
  406. package/dist/utils.js.map +1 -0
  407. package/dist/vm-h100.env.template +55 -0
  408. package/dist/web-element-requests.d.ts +102 -0
  409. package/dist/web-element-requests.d.ts.map +1 -0
  410. package/dist/web-element-requests.js +278 -0
  411. package/dist/web-element-requests.js.map +1 -0
  412. package/dist/workflowRoutes.d.ts +2 -0
  413. package/dist/workflowRoutes.d.ts.map +1 -0
  414. package/dist/workflowRoutes.js +441 -0
  415. package/dist/workflowRoutes.js.map +1 -0
  416. package/package.json +109 -0
@@ -0,0 +1,455 @@
1
+ import { google } from 'googleapis';
2
+ import path from 'path';
3
+ import { fileURLToPath } from 'url';
4
+ import { authenticate } from '@google-cloud/local-auth';
5
+ import { PDFParse } from 'pdf-parse/node';
6
+ // ES module equivalent of __dirname
7
+ const __filename = fileURLToPath(import.meta.url);
8
+ const __dirname = path.dirname(__filename);
9
+ // Gmail API scopes
10
+ const SCOPES = [
11
+ 'https://www.googleapis.com/auth/gmail.readonly',
12
+ 'https://www.googleapis.com/auth/gmail.modify',
13
+ 'https://www.googleapis.com/auth/gmail.labels'
14
+ ];
15
+ const TEXT_MIME_PREFIXES = ['text/', 'application/json', 'application/xml'];
16
+ const TEXT_EXTENSIONS = ['.txt', '.md', '.csv', '.json', '.xml', '.log'];
17
+ class GmailPoller {
18
+ constructor() {
19
+ this.gmail = null;
20
+ this.isAuthenticated = false;
21
+ this.pollInterval = 30000; // 30 seconds - human-like polling
22
+ this.humanDelayMin = 1000; // 1 second minimum delay
23
+ this.humanDelayMax = 3000; // 3 seconds maximum delay
24
+ }
25
+ /**
26
+ * Authenticate with Gmail API using OAuth2
27
+ */
28
+ async authenticate() {
29
+ try {
30
+ // Use the same OAuth2 authentication as setup-auth.js
31
+ const auth = await authenticate({
32
+ keyfilePath: path.join(__dirname, 'client_secret.apps.googleusercontent.com.json'),
33
+ scopes: SCOPES,
34
+ });
35
+ this.gmail = google.gmail({ version: 'v1', auth });
36
+ this.isAuthenticated = true;
37
+ console.log('โœ… Gmail authentication successful');
38
+ }
39
+ catch (error) {
40
+ console.error('โŒ Gmail authentication failed:', error);
41
+ throw error;
42
+ }
43
+ }
44
+ /**
45
+ * Get human-like delay
46
+ */
47
+ getHumanDelay() {
48
+ return Math.random() * (this.humanDelayMax - this.humanDelayMin) + this.humanDelayMin;
49
+ }
50
+ /**
51
+ * Poll for new emails
52
+ */
53
+ async pollForEmails(query = '', labelIds = ['INBOX']) {
54
+ if (!this.isAuthenticated) {
55
+ throw new Error('Not authenticated with Gmail');
56
+ }
57
+ try {
58
+ const response = await this.gmail.users.messages.list({
59
+ userId: 'me',
60
+ q: query,
61
+ labelIds: labelIds,
62
+ maxResults: 10
63
+ });
64
+ const messages = response.data.messages || [];
65
+ console.log(`๐Ÿ“ง Found ${messages.length} messages`);
66
+ return messages;
67
+ }
68
+ catch (error) {
69
+ console.error('โŒ Error polling emails:', error);
70
+ throw error;
71
+ }
72
+ }
73
+ /**
74
+ * Get full email details
75
+ */
76
+ async getEmailDetails(messageId) {
77
+ if (!this.isAuthenticated) {
78
+ throw new Error('Not authenticated with Gmail');
79
+ }
80
+ try {
81
+ const response = await this.gmail.users.messages.get({
82
+ userId: 'me',
83
+ id: messageId,
84
+ format: 'full'
85
+ });
86
+ const enriched = await this.includeAttachmentsInBody(response.data);
87
+ return enriched;
88
+ }
89
+ catch (error) {
90
+ console.error('โŒ Error getting email details:', error);
91
+ throw error;
92
+ }
93
+ }
94
+ /**
95
+ * Move email to different label/folder
96
+ */
97
+ async moveEmail(messageId, targetLabelId, removeLabelIds = []) {
98
+ if (!this.isAuthenticated) {
99
+ throw new Error('Not authenticated with Gmail');
100
+ }
101
+ try {
102
+ // Add human delay
103
+ await this.delay(this.getHumanDelay());
104
+ const response = await this.gmail.users.messages.modify({
105
+ userId: 'me',
106
+ id: messageId,
107
+ requestBody: {
108
+ addLabelIds: [targetLabelId],
109
+ removeLabelIds: removeLabelIds
110
+ }
111
+ });
112
+ console.log(`๐Ÿ“ฆ Moved email ${messageId} to label ${targetLabelId}`);
113
+ return response.data;
114
+ }
115
+ catch (error) {
116
+ console.error('โŒ Error moving email:', error);
117
+ throw error;
118
+ }
119
+ }
120
+ /**
121
+ * Delete email
122
+ */
123
+ async deleteEmail(messageId) {
124
+ if (!this.isAuthenticated) {
125
+ throw new Error('Not authenticated with Gmail');
126
+ }
127
+ try {
128
+ // Add human delay
129
+ await this.delay(this.getHumanDelay());
130
+ await this.gmail.users.messages.delete({
131
+ userId: 'me',
132
+ id: messageId
133
+ });
134
+ console.log(`๐Ÿ—‘๏ธ Deleted email ${messageId}`);
135
+ }
136
+ catch (error) {
137
+ console.error('โŒ Error deleting email:', error);
138
+ throw error;
139
+ }
140
+ }
141
+ /**
142
+ * Create new label/folder
143
+ */
144
+ async createLabel(labelName) {
145
+ if (!this.isAuthenticated) {
146
+ throw new Error('Not authenticated with Gmail');
147
+ }
148
+ try {
149
+ // Add human delay
150
+ await this.delay(this.getHumanDelay());
151
+ const response = await this.gmail.users.labels.create({
152
+ userId: 'me',
153
+ requestBody: {
154
+ name: labelName,
155
+ labelListVisibility: 'labelShow',
156
+ messageListVisibility: 'show'
157
+ }
158
+ });
159
+ console.log(`๐Ÿ“ Created label: ${labelName}`);
160
+ return response.data;
161
+ }
162
+ catch (error) {
163
+ console.error('โŒ Error creating label:', error);
164
+ throw error;
165
+ }
166
+ }
167
+ /**
168
+ * Get all labels
169
+ */
170
+ async getLabels() {
171
+ if (!this.isAuthenticated) {
172
+ throw new Error('Not authenticated with Gmail');
173
+ }
174
+ try {
175
+ const response = await this.gmail.users.labels.list({
176
+ userId: 'me'
177
+ });
178
+ return response.data.labels || [];
179
+ }
180
+ catch (error) {
181
+ console.error('โŒ Error getting labels:', error);
182
+ throw error;
183
+ }
184
+ }
185
+ /**
186
+ * Find or create label
187
+ */
188
+ async findOrCreateLabel(labelName) {
189
+ const labels = await this.getLabels();
190
+ const existingLabel = labels.find(label => label.name === labelName);
191
+ if (existingLabel) {
192
+ return existingLabel;
193
+ }
194
+ return await this.createLabel(labelName);
195
+ }
196
+ /**
197
+ * Ensure a folder/label exists by name
198
+ * Returns the label object (existing or newly created)
199
+ */
200
+ async ensureFolderExists(folderName) {
201
+ if (!this.isAuthenticated) {
202
+ console.log('๐Ÿ” Not authenticated, authenticating now...');
203
+ await this.authenticate();
204
+ }
205
+ try {
206
+ const label = await this.findOrCreateLabel(folderName);
207
+ console.log(`๐Ÿ“ Folder "${folderName}" is ready (ID: ${label.id})`);
208
+ return label;
209
+ }
210
+ catch (error) {
211
+ console.error(`โŒ Error ensuring folder "${folderName}" exists:`, error);
212
+ throw error;
213
+ }
214
+ }
215
+ /**
216
+ * Move an email to a specific folder by name
217
+ * Automatically ensures the folder exists before moving
218
+ */
219
+ async moveEmailToFolder(messageId, folderName, removeFromInbox = true) {
220
+ if (!this.isAuthenticated) {
221
+ console.log('๐Ÿ” Not authenticated, authenticating now...');
222
+ await this.authenticate();
223
+ }
224
+ try {
225
+ // Ensure the folder exists
226
+ const targetLabel = await this.ensureFolderExists(folderName);
227
+ // Prepare label IDs to remove (typically INBOX if requested)
228
+ const removeLabelIds = removeFromInbox ? ['INBOX'] : [];
229
+ // Move the email
230
+ const result = await this.moveEmail(messageId, targetLabel.id, removeLabelIds);
231
+ console.log(`๐Ÿ“ฆ Moved email ${messageId} to folder "${folderName}"`);
232
+ return result;
233
+ }
234
+ catch (error) {
235
+ console.error(`โŒ Error moving email ${messageId} to folder "${folderName}":`, error);
236
+ throw error;
237
+ }
238
+ }
239
+ /**
240
+ * Step through emails manually with pagination
241
+ * Ensures authentication and allows controlled processing of emails
242
+ */
243
+ async stepThroughEmails(options = {}) {
244
+ // Ensure authentication
245
+ if (!this.isAuthenticated) {
246
+ console.log('๐Ÿ” Not authenticated, authenticating now...');
247
+ await this.authenticate();
248
+ }
249
+ const { query = '', labelIds = ['INBOX'], maxResults = 10, pageToken = null, includeDetails = true } = options;
250
+ try {
251
+ // Get message list with pagination
252
+ const listResponse = await this.gmail.users.messages.list({
253
+ userId: 'me',
254
+ q: query,
255
+ labelIds: labelIds,
256
+ maxResults: maxResults,
257
+ pageToken: pageToken
258
+ });
259
+ const messages = listResponse.data.messages || [];
260
+ console.log(`๐Ÿ“ง Found ${messages.length} messages (page token: ${listResponse.data.nextPageToken || 'none'})`);
261
+ let emailDetails = [];
262
+ if (includeDetails && messages.length > 0) {
263
+ // Get full details for each message with human-like delays
264
+ console.log('โณ Fetching full email details with human-like delays...');
265
+ for (const message of messages) {
266
+ const details = await this.getEmailDetails(message.id);
267
+ emailDetails.push(details);
268
+ }
269
+ }
270
+ return {
271
+ messages: includeDetails ? emailDetails : messages,
272
+ nextPageToken: listResponse.data.nextPageToken,
273
+ hasMore: !!listResponse.data.nextPageToken,
274
+ totalMessages: messages.length
275
+ };
276
+ }
277
+ catch (error) {
278
+ console.error('โŒ Error stepping through emails:', error);
279
+ throw error;
280
+ }
281
+ }
282
+ /**
283
+ * Start polling with callback
284
+ */
285
+ async startPolling(callback, query = '', labelIds = ['INBOX']) {
286
+ console.log('๐Ÿš€ Starting Gmail poller...');
287
+ const poll = async () => {
288
+ try {
289
+ const messages = await this.pollForEmails(query, labelIds);
290
+ if (messages.length > 0) {
291
+ for (const message of messages) {
292
+ const emailDetails = await this.getEmailDetails(message.id);
293
+ await callback(emailDetails);
294
+ }
295
+ }
296
+ }
297
+ catch (error) {
298
+ console.error('โŒ Polling error:', error);
299
+ }
300
+ // Schedule next poll
301
+ setTimeout(poll, this.pollInterval);
302
+ };
303
+ // Start polling
304
+ poll();
305
+ }
306
+ /**
307
+ * Utility delay function
308
+ */
309
+ delay(ms) {
310
+ return new Promise(resolve => setTimeout(resolve, ms));
311
+ }
312
+ /**
313
+ * Process emails with human-like behavior
314
+ */
315
+ async processEmailsHumanLike(emailProcessor) {
316
+ return this.startPolling(async (email) => {
317
+ try {
318
+ await emailProcessor(email);
319
+ // Add extra delay between processing emails
320
+ await this.delay(this.getHumanDelay() * 2);
321
+ }
322
+ catch (error) {
323
+ console.error('โŒ Error processing email:', error);
324
+ }
325
+ });
326
+ }
327
+ isTextMimeType(mimeType = '') {
328
+ return TEXT_MIME_PREFIXES.some(prefix => mimeType.startsWith(prefix));
329
+ }
330
+ isTextExtension(filename = '') {
331
+ const lower = filename.toLowerCase();
332
+ return TEXT_EXTENSIONS.some(ext => lower.endsWith(ext));
333
+ }
334
+ decodeToBuffer(data) {
335
+ const normalized = (data || '').replace(/-/g, '+').replace(/_/g, '/');
336
+ return Buffer.from(normalized, 'base64');
337
+ }
338
+ encodeToBase64Url(str) {
339
+ return Buffer.from(str, 'utf8')
340
+ .toString('base64')
341
+ .replace(/\+/g, '-')
342
+ .replace(/\//g, '_')
343
+ .replace(/=+$/g, '');
344
+ }
345
+ collectAttachmentParts(part, attachments = []) {
346
+ if (!part) {
347
+ return attachments;
348
+ }
349
+ if (part.filename && part.body && (part.body.attachmentId || part.body.data)) {
350
+ attachments.push(part);
351
+ }
352
+ if (Array.isArray(part.parts)) {
353
+ part.parts.forEach(child => this.collectAttachmentParts(child, attachments));
354
+ }
355
+ return attachments;
356
+ }
357
+ async fetchAttachmentBuffer(messageId, attachmentId) {
358
+ if (!attachmentId) {
359
+ return Buffer.alloc(0);
360
+ }
361
+ const attachment = await this.gmail.users.messages.attachments.get({
362
+ userId: 'me',
363
+ messageId,
364
+ id: attachmentId
365
+ });
366
+ return this.decodeToBuffer(attachment.data?.data || '');
367
+ }
368
+ async parsePdfAttachment(buffer, filename = 'attachment.pdf') {
369
+ let parser = null;
370
+ try {
371
+ parser = new PDFParse({ data: buffer });
372
+ const result = await parser.getText();
373
+ return result.text?.trim() || null;
374
+ }
375
+ catch (error) {
376
+ console.warn(`Failed to parse PDF attachment ${filename}:`, error);
377
+ return null;
378
+ }
379
+ finally {
380
+ if (parser && typeof parser.destroy === 'function') {
381
+ try {
382
+ await parser.destroy();
383
+ }
384
+ catch (cleanupError) {
385
+ console.warn('Failed to clean up pdf-parse instance:', cleanupError);
386
+ }
387
+ }
388
+ }
389
+ }
390
+ async extractAttachmentText(messageId, part) {
391
+ const mimeType = part.mimeType || '';
392
+ const filename = part.filename || '';
393
+ let buffer;
394
+ if (part.body?.data) {
395
+ buffer = this.decodeToBuffer(part.body.data);
396
+ }
397
+ else if (part.body?.attachmentId) {
398
+ buffer = await this.fetchAttachmentBuffer(messageId, part.body.attachmentId);
399
+ }
400
+ if (!buffer || !buffer.length) {
401
+ return null;
402
+ }
403
+ if (this.isTextMimeType(mimeType) || this.isTextExtension(filename)) {
404
+ return buffer.toString('utf8').trim();
405
+ }
406
+ if (mimeType === 'application/pdf' || filename.toLowerCase().endsWith('.pdf')) {
407
+ return await this.parsePdfAttachment(buffer, filename || 'attachment.pdf');
408
+ }
409
+ return null;
410
+ }
411
+ async includeAttachmentsInBody(message) {
412
+ if (!message || !message.payload) {
413
+ console.log('No message payload to process attachments.');
414
+ return message;
415
+ }
416
+ const attachments = this.collectAttachmentParts(message.payload, []);
417
+ if (!attachments.length) {
418
+ console.log('No attachments found to include in body.');
419
+ return message;
420
+ }
421
+ const attachmentSections = [];
422
+ console.log(`Processing ${attachments.length} attachments for message ${message.id}...`);
423
+ for (const attachment of attachments) {
424
+ const text = await this.extractAttachmentText(message.id, attachment);
425
+ if (text) {
426
+ attachmentSections.push(`Attachment: ${attachment.filename || attachment.mimeType}\n${text}`);
427
+ }
428
+ else {
429
+ console.log(`Skipping non-text attachment: ${attachment.filename || attachment.mimeType}`);
430
+ }
431
+ }
432
+ if (!attachmentSections.length) {
433
+ console.log('No text attachments found to include in body.');
434
+ return message;
435
+ }
436
+ const combined = attachmentSections.join('\n\n');
437
+ message.attachmentText = combined;
438
+ const textPart = {
439
+ mimeType: 'text/plain',
440
+ filename: 'attachments.txt',
441
+ body: {
442
+ data: this.encodeToBase64Url(`\n\n--- Attachments ---\n${combined}`)
443
+ }
444
+ };
445
+ if (Array.isArray(message.payload.parts)) {
446
+ message.payload.parts.push(textPart);
447
+ }
448
+ else {
449
+ message.payload.parts = [textPart];
450
+ }
451
+ return message;
452
+ }
453
+ }
454
+ export default GmailPoller;
455
+ //# sourceMappingURL=gmail-poller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gmail-poller.js","sourceRoot":"","sources":["../../src/gmail-poller/gmail-poller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=manual-test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manual-test.d.ts","sourceRoot":"","sources":["../../src/gmail-poller/manual-test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,37 @@
1
+ import GmailPoller from './gmail-poller.js';
2
+ async function test() {
3
+ console.log('๐Ÿงช Testing Gmail Poller Setup...\n');
4
+ const poller = new GmailPoller();
5
+ try {
6
+ // Test authentication
7
+ console.log('1. Testing authentication...');
8
+ await poller.authenticate();
9
+ console.log('โœ… Authentication successful\n');
10
+ // Test getting labels
11
+ console.log('2. Testing label retrieval...');
12
+ const labels = await poller.getLabels();
13
+ console.log(`โœ… Found ${labels.length} labels\n`);
14
+ // Test creating a test label
15
+ console.log('3. Testing label creation...');
16
+ const testLabel = await poller.findOrCreateLabel('Test/Auto-Created');
17
+ console.log(`โœ… Created/found label: ${testLabel.name}\n`);
18
+ // Test polling (will be empty if no emails)
19
+ console.log('4. Testing email polling...');
20
+ const messages = await poller.pollForEmails('', ['INBOX']);
21
+ console.log(`โœ… Polling successful, found ${messages.length} messages\n`);
22
+ console.log('๐ŸŽ‰ All tests passed! Gmail Poller is ready to use.');
23
+ console.log('\nTo start polling:');
24
+ console.log('node example.js');
25
+ }
26
+ catch (error) {
27
+ console.error('โŒ Test failed:', error.message);
28
+ console.log('\nMake sure:');
29
+ console.log('1. client_secret.apps.googleusercontent.com.json is in this directory');
30
+ console.log('2. You ran: npm run auth');
31
+ console.log('3. Gmail API is enabled in Google Cloud Console');
32
+ }
33
+ }
34
+ if (import.meta.url === `file://${process.argv[1]}`) {
35
+ test();
36
+ }
37
+ //# sourceMappingURL=manual-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manual-test.js","sourceRoot":"","sources":["../../src/gmail-poller/manual-test.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAE5C,KAAK,UAAU,IAAI;IACjB,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;IAElD,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;IAEjC,IAAI,CAAC;QACH,sBAAsB;QACtB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAC5C,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAE7C,sBAAsB;QACtB,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,MAAM,WAAW,CAAC,CAAC;QAEjD,6BAA6B;QAC7B,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,0BAA0B,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC;QAE1D,4CAA4C;QAC5C,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,+BAA+B,QAAQ,CAAC,MAAM,aAAa,CAAC,CAAC;QAEzE,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAEjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;QACrF,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACpD,IAAI,EAAE,CAAC;AACT,CAAC"}
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Example usage of Microsoft Email Poller
4
+ * This demonstrates how to use the poller for Microsoft Outlook/Exchange emails
5
+ */
6
+ declare function exampleUsage(): Promise<void>;
7
+ export { exampleUsage };
8
+ //# sourceMappingURL=microsoft-email-example.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"microsoft-email-example.d.ts","sourceRoot":"","sources":["../../src/gmail-poller/microsoft-email-example.ts"],"names":[],"mappings":";AAIA;;;GAGG;AACH,iBAAe,YAAY,kBAqD1B;AAOD,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,58 @@
1
+ #!/usr/bin/env node
2
+ import MicrosoftEmailPoller from './microsoft-email-poller.js';
3
+ /**
4
+ * Example usage of Microsoft Email Poller
5
+ * This demonstrates how to use the poller for Microsoft Outlook/Exchange emails
6
+ */
7
+ async function exampleUsage() {
8
+ const poller = new MicrosoftEmailPoller();
9
+ try {
10
+ // Authenticate with Microsoft
11
+ console.log('๐Ÿ” Authenticating with Microsoft...');
12
+ await poller.authenticate();
13
+ // Example 1: Poll for recent emails
14
+ console.log('\n๐Ÿ“ง Polling for recent emails...');
15
+ const recentEmails = await poller.pollForEmails('', 'inbox', 5);
16
+ if (recentEmails.length > 0) {
17
+ console.log(`Found ${recentEmails.length} recent emails:`);
18
+ for (const email of recentEmails.slice(0, 3)) { // Show first 3
19
+ console.log(`- ${email.subject} (from: ${email.sender?.emailAddress?.address})`);
20
+ }
21
+ }
22
+ // Example 2: Step through emails manually
23
+ console.log('\n๐Ÿ“„ Stepping through emails...');
24
+ const emailPage = await poller.stepThroughEmails({
25
+ folder: 'inbox',
26
+ top: 3,
27
+ includeDetails: true
28
+ });
29
+ console.log(`Retrieved ${emailPage.messages.length} emails`);
30
+ // Example 3: Create a folder and move an email (if emails exist)
31
+ if (emailPage.messages.length > 0) {
32
+ const testFolderName = 'Test-Processed';
33
+ console.log(`\n๐Ÿ“ Creating/ensuring folder: ${testFolderName}`);
34
+ const folder = await poller.ensureFolderExists(testFolderName);
35
+ // Move the first email to the test folder
36
+ const firstEmail = emailPage.messages[0];
37
+ console.log(`๐Ÿ“ฆ Moving email "${firstEmail.subject}" to ${testFolderName}...`);
38
+ await poller.moveEmailToFolder(firstEmail.id, testFolderName);
39
+ }
40
+ console.log('\nโœ… Microsoft Email Poller example completed successfully!');
41
+ }
42
+ catch (error) {
43
+ console.error('โŒ Error in example:', error);
44
+ console.log('\n๐Ÿ’ก Setup instructions:');
45
+ console.log('1. Create an Azure AD app registration at https://portal.azure.com');
46
+ console.log('2. Add Mail.Read, Mail.ReadWrite, Mail.Send permissions');
47
+ console.log('3. Set environment variables:');
48
+ console.log(' export MICROSOFT_CLIENT_ID="your-client-id"');
49
+ console.log(' export MICROSOFT_TENANT_ID="your-tenant-id"');
50
+ console.log('4. Run this script again');
51
+ }
52
+ }
53
+ // Run the example if this file is executed directly
54
+ if (import.meta.url === `file://${process.argv[1]}`) {
55
+ exampleUsage();
56
+ }
57
+ export { exampleUsage };
58
+ //# sourceMappingURL=microsoft-email-example.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"microsoft-email-example.js","sourceRoot":"","sources":["../../src/gmail-poller/microsoft-email-example.ts"],"names":[],"mappings":";AAEA,OAAO,oBAAoB,MAAM,6BAA6B,CAAC;AAE/D;;;GAGG;AACH,KAAK,UAAU,YAAY;IACzB,MAAM,MAAM,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAE1C,IAAI,CAAC;QACH,8BAA8B;QAC9B,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACnD,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC;QAE5B,oCAAoC;QACpC,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAEhE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,SAAS,YAAY,CAAC,MAAM,iBAAiB,CAAC,CAAC;YAC3D,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,eAAe;gBAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,OAAO,WAAW,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,GAAG,CAAC,CAAC;YACnF,CAAC;QACH,CAAC;QAED,0CAA0C;QAC1C,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC;YAC/C,MAAM,EAAE,OAAO;YACf,GAAG,EAAE,CAAC;YACN,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,aAAa,SAAS,CAAC,QAAQ,CAAC,MAAM,SAAS,CAAC,CAAC;QAE7D,iEAAiE;QACjE,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,cAAc,GAAG,gBAAgB,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,kCAAkC,cAAc,EAAE,CAAC,CAAC;YAChE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;YAE/D,0CAA0C;YAC1C,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,oBAAoB,UAAU,CAAC,OAAO,QAAQ,cAAc,KAAK,CAAC,CAAC;YAC/E,MAAM,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;IAE5E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;QAClF,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED,oDAAoD;AACpD,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACpD,YAAY,EAAE,CAAC;AACjB,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}