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,558 @@
1
+ import { runPrompt, processLLMResponse } from './runPrompt.js';
2
+ export class UiPlanner {
3
+ /**
4
+ * @param {Object} uiMap - The UI Map object (states, edges).
5
+ * @param {UiMapPathFinder} pathFinder - Instance of UiMapPathFinder.
6
+ * @param {Object} [macroRegistry] - Optional registry for macro fallbacks.
7
+ * @param {Array<{path: string, content: Object}>} [automationFiles] - List of automation file contents.
8
+ */
9
+ constructor(uiMap, pathFinder, macroRegistry = {}, automationFiles = []) {
10
+ this.uiMap = uiMap;
11
+ this.pathFinder = pathFinder;
12
+ this.macroRegistry = macroRegistry;
13
+ this.automationFiles = automationFiles;
14
+ this.automationFieldIndex = this._buildAutomationIndex(automationFiles);
15
+ this.indexes = this._buildIndexes(uiMap);
16
+ }
17
+ _buildAutomationIndex(files) {
18
+ const index = new Map();
19
+ for (const file of files) {
20
+ const steps = file.content.steps || [];
21
+ for (const step of steps) {
22
+ const meta = step.selfLearningMetadata || step.params?.selfLearningMetadata || step.param?.selfLearningMetadata;
23
+ if (meta && (meta.field || meta.name)) {
24
+ const name = meta.name || meta.field;
25
+ if (!index.has(name)) {
26
+ index.set(name, []);
27
+ }
28
+ index.get(name).push(meta);
29
+ }
30
+ }
31
+ }
32
+ return index;
33
+ }
34
+ _buildIndexes(uiMap) {
35
+ const fieldToStateIds = new Map();
36
+ for (const [stateId, state] of Object.entries(uiMap.states)) {
37
+ const fields = state.fields || [];
38
+ let names = [];
39
+ if (Array.isArray(fields)) {
40
+ names = fields.map(f => f.name || f.field).filter(Boolean);
41
+ }
42
+ else {
43
+ names = Object.keys(fields);
44
+ }
45
+ for (const fieldName of names) {
46
+ if (!fieldToStateIds.has(fieldName)) {
47
+ fieldToStateIds.set(fieldName, []);
48
+ }
49
+ fieldToStateIds.get(fieldName).push(stateId);
50
+ }
51
+ }
52
+ return { fieldToStateIds };
53
+ }
54
+ /**
55
+ * End-to-end planner: Request -> Goal -> PlanOps -> Executable Steps
56
+ * @param {string} request - Natural language request
57
+ * @param {string} startStateId - Current state ID
58
+ * @param {Object} context - Additional context (e.g. screen text, previous errors)
59
+ * @param {string} model - The LLM model to use (default: 'gpt-5.2-2025-12-11')
60
+ * @returns {Promise<Array<Object>>} List of executable steps
61
+ */
62
+ async plan(request, startStateId = 'home', context = {}, model = 'gpt-5.2-2025-12-11') {
63
+ let goal = await this._compileRequestToGoal(request, context, model);
64
+ console.log('Planner Goal:', JSON.stringify(goal, null, 2));
65
+ let attempts = 0;
66
+ const maxAttempts = 5;
67
+ while (attempts < maxAttempts) {
68
+ const errors = this._validateGoal(goal);
69
+ if (errors.length > 0) {
70
+ console.warn(`Plan validation failed (Attempt ${attempts + 1}):`, errors);
71
+ goal = await this._fixGoalWithLLM(goal, errors, request, model);
72
+ }
73
+ else {
74
+ const check = await this._checkCompleteness(goal, request, model);
75
+ if (check.complete)
76
+ break;
77
+ console.warn(`Plan incomplete (Attempt ${attempts + 1}):`, check.reason);
78
+ goal = await this._fixGoalWithLLM(goal, [`Plan is incomplete: ${check.reason}`], request, model);
79
+ }
80
+ attempts++;
81
+ }
82
+ console.log('Validated Goal:', JSON.stringify(goal, null, 2));
83
+ const planOps = this.generatePlan(goal, startStateId);
84
+ console.log('Planner Ops:', JSON.stringify(planOps, null, 2));
85
+ const compiled = this.compile(planOps, startStateId);
86
+ compiled.description = await this._generatePlanDescription(compiled.steps, request, model);
87
+ return compiled;
88
+ }
89
+ async _compileRequestToGoal(request, context, model) {
90
+ const knownFields = [];
91
+ for (const [stateId, state] of Object.entries(this.uiMap.states)) {
92
+ if (state.fields) {
93
+ state.fields.forEach(f => {
94
+ let desc = f.name;
95
+ if (f.type === 'wait_area' && f.description) {
96
+ desc += ` (Wait Area: ${f.description})`;
97
+ }
98
+ if (!knownFields.includes(desc)) {
99
+ knownFields.push(desc);
100
+ }
101
+ });
102
+ }
103
+ }
104
+ // Fallback to index keys if map is empty or structure differs
105
+ if (knownFields.length === 0) {
106
+ knownFields.push(...Array.from(this.indexes.fieldToStateIds.keys()));
107
+ }
108
+ const promptContext = context.promptContext || '';
109
+ const requestStr = typeof request === 'object' ? JSON.stringify(request, null, 2) : request;
110
+ const systemPrompt = `
111
+ You are an expert UI Automation Planner.
112
+ Your job is to convert a natural language User Request (or JSON data) into a structured Automation Plan.
113
+
114
+ AVAILABLE FIELDS (Use these exact names):
115
+ ${knownFields.join(', ')}
116
+
117
+ ADDITIONAL CONTEXT:
118
+ ${promptContext}
119
+
120
+ PLAN SCHEMA:
121
+ {
122
+ "steps": [
123
+ {
124
+ "kind": "setField",
125
+ "field": "string", // MUST be one of the AVAILABLE FIELDS
126
+ "value": "any", // The actual value to type/select
127
+ "valueType": "text | money | date | number | boolean"
128
+ },
129
+ {
130
+ "kind": "select",
131
+ "field": "string",
132
+ "valueSpec": { "source": "any", "match": "any" }
133
+ },
134
+ {
135
+ "kind": "navigate",
136
+ "target": "string" // State ID or Section Name
137
+ },
138
+ {
139
+ "kind": "commit",
140
+ "label": "string" // e.g. "Save", "Search", "Apply"
141
+ },
142
+ {
143
+ "kind": "wait",
144
+ "field": "string", // The element to wait for
145
+ "condition": "string" // e.g. "disappear", "loading to finish"
146
+ }
147
+ ]
148
+ }
149
+
150
+ RULES:
151
+ 1. Analyze the User Request. If it is a JSON object, treat keys as potential field names or descriptions, and values as the data to enter.
152
+ 2. For every data point in the User Request that corresponds to a UI field, generate a 'setField' step.
153
+ 3. Use 'navigate' to move between screens if fields are on different screens (refer to Context or infer from field names).
154
+ 4. Use 'commit' to finalize actions (Save, Search, Generate, etc.).
155
+ 5. Use 'wait' if the user asks to wait for something or if a process takes time (e.g. "Wait for generation"). Look for fields marked as (Wait Area: ...).
156
+ 6. Use the EXACT field names from AVAILABLE FIELDS (excluding the description in parentheses).
157
+ 7. If the User Request contains specific instructions (e.g. "High-level intended flow"), FOLLOW THEM.
158
+ 8. Return ONLY valid JSON.
159
+ `;
160
+ const userMessage = `
161
+ Context: ${JSON.stringify(context)}
162
+ User Request: "${requestStr}"
163
+ `;
164
+ const response = await runPrompt([
165
+ { role: 'system', content: systemPrompt },
166
+ { role: 'user', content: userMessage }
167
+ ], model);
168
+ return processLLMResponse(response, model, 'openai');
169
+ }
170
+ async _checkCompleteness(goal, request, model) {
171
+ const requestStr = typeof request === 'object' ? JSON.stringify(request, null, 2) : request;
172
+ const systemPrompt = `
173
+ You are a strict UI Automation Reviewer.
174
+ Analyze if the CURRENT PLAN fully satisfies the USER REQUEST.
175
+
176
+ USER REQUEST: "${requestStr}"
177
+
178
+ CURRENT PLAN:
179
+ ${JSON.stringify(goal.steps, null, 2)}
180
+
181
+ CRITERIA:
182
+ 1. Are all data points mentioned in the request being set in the plan? (Look for 'setField' steps with matching values).
183
+ 2. Are all necessary navigation steps included?
184
+ 3. Is the final action (save, submit, search) present if implied?
185
+
186
+ OUTPUT JSON:
187
+ {
188
+ "complete": boolean,
189
+ "reason": "Detailed explanation of what is missing, or 'Plan is complete'"
190
+ }
191
+ `;
192
+ const response = await runPrompt([{ role: 'system', content: systemPrompt }], model);
193
+ return processLLMResponse(response, model, 'openai');
194
+ }
195
+ _validateGoal(goal) {
196
+ const errors = [];
197
+ if (!goal || !goal.steps)
198
+ return ["Invalid JSON structure"];
199
+ goal.steps.forEach((step, i) => {
200
+ if (step.kind === 'setField' || step.kind === 'select' || step.kind === 'wait') {
201
+ const inMap = this.indexes.fieldToStateIds.has(step.field);
202
+ const inFiles = this.automationFieldIndex ? this.automationFieldIndex.has(step.field) : false;
203
+ if (!inMap) {
204
+ if (inFiles) {
205
+ errors.push(`Step ${i}: Field "${step.field}" exists in automation files but is missing from the UI Map (cannot determine state).`);
206
+ }
207
+ else {
208
+ errors.push(`Step ${i}: Field "${step.field}" not found in map or automation files.`);
209
+ }
210
+ }
211
+ }
212
+ if (step.kind === 'navigate') {
213
+ if (!this.uiMap.states[step.target]) {
214
+ errors.push(`Step ${i}: State "${step.target}" not found in map.`);
215
+ }
216
+ }
217
+ });
218
+ return errors;
219
+ }
220
+ async _fixGoalWithLLM(goal, errors, request, model) {
221
+ const knownFields = Array.from(this.indexes.fieldToStateIds.keys());
222
+ const requestStr = typeof request === 'object' ? JSON.stringify(request, null, 2) : request;
223
+ const systemPrompt = `
224
+ You are an expert UI Automation Planner.
225
+ The previous plan you generated had errors or was incomplete. Please fix it.
226
+
227
+ AVAILABLE FIELDS (Use these exact names):
228
+ ${knownFields.join(', ')}
229
+
230
+ ERRORS / MISSING ITEMS:
231
+ ${errors.join('\n')}
232
+
233
+ ORIGINAL REQUEST: "${requestStr}"
234
+ BAD PLAN: ${JSON.stringify(goal)}
235
+
236
+ INSTRUCTIONS:
237
+ 1. Correct the invalid field names or state targets.
238
+ 2. Add 'setField' steps for any missing data points from the ORIGINAL REQUEST.
239
+ 3. Add 'navigate' steps if fields are on different screens.
240
+ 4. Return the corrected JSON plan.
241
+ 5. Ensure all fields exist in AVAILABLE FIELDS.
242
+ `;
243
+ const response = await runPrompt([{ role: 'system', content: systemPrompt }], model);
244
+ return processLLMResponse(response, model, 'openai');
245
+ }
246
+ async _generatePlanDescription(steps, request, model) {
247
+ const stepsSummary = steps.map((s, i) => `${i + 1}. ${s.description || s.action}`).join('\n');
248
+ const requestStr = typeof request === 'object' ? JSON.stringify(request, null, 2) : request;
249
+ const systemPrompt = `
250
+ You are a helpful assistant that summarizes UI Automation plans.
251
+ User Request: "${requestStr}"
252
+
253
+ Plan Steps:
254
+ ${stepsSummary}
255
+
256
+ Please provide a concise, natural language description of what this automation plan will do.
257
+ Focus on the user-facing actions and the outcome.
258
+ `;
259
+ const response = await runPrompt([{ role: 'system', content: systemPrompt }], model);
260
+ return response;
261
+ }
262
+ /**
263
+ * Generates a high-level plan (list of PlanOps) based on a structured goal.
264
+ * @param {Object} goal - { steps: Array<{ kind, field, value, ... }> }
265
+ * @param {string} startStateId - The current state of the application.
266
+ * @returns {Array<Object>} List of PlanOps.
267
+ */
268
+ generatePlan(goal, startStateId = 'home') {
269
+ const ops = [];
270
+ if (!goal.steps || !Array.isArray(goal.steps)) {
271
+ console.warn("Invalid goal structure: missing 'steps' array.");
272
+ return ops;
273
+ }
274
+ for (const step of goal.steps) {
275
+ switch (step.kind) {
276
+ case 'navigate':
277
+ ops.push({ kind: 'goto', toState: step.target });
278
+ break;
279
+ case 'setField':
280
+ case 'select':
281
+ case 'wait':
282
+ // Resolve field location to help disambiguate, but don't force a goto
283
+ const candidateStates = this.indexes.fieldToStateIds.get(step.field) || [];
284
+ if (candidateStates.length > 0) {
285
+ // Hint the target state.
286
+ step.targetStateId = candidateStates[0];
287
+ }
288
+ else {
289
+ console.warn(`Field ${step.field} not found in any state.`);
290
+ }
291
+ ops.push(step);
292
+ break;
293
+ case 'commit':
294
+ ops.push(step);
295
+ break;
296
+ }
297
+ }
298
+ return ops;
299
+ }
300
+ /**
301
+ * Compiles a list of PlanOps into executable automation steps.
302
+ * @param {Array<Object>} planOps
303
+ * @param {string} startStateId
304
+ * @returns {Array<Object>} List of executable steps.
305
+ */
306
+ compile(planOps, startStateId) {
307
+ const steps = [];
308
+ let currentState = startStateId;
309
+ for (const op of planOps) {
310
+ // 1. Handle Raw Steps (Pre-hydrated steps from Automation Files)
311
+ if (!op.kind && op.id) {
312
+ if (op.targetStateId && currentState !== op.targetStateId) {
313
+ const path = this.pathFinder.findPath(currentState, op.targetStateId);
314
+ if (path) {
315
+ for (const edge of path) {
316
+ steps.push(this._createStepFromEdge(edge));
317
+ }
318
+ if (path.length > 0)
319
+ currentState = path[path.length - 1].to;
320
+ }
321
+ else {
322
+ this._handleMissingPath(steps, currentState, op.targetStateId);
323
+ currentState = op.targetStateId;
324
+ }
325
+ }
326
+ steps.push(op);
327
+ continue;
328
+ }
329
+ if (op.kind === 'goto') {
330
+ if (currentState === op.toState)
331
+ continue;
332
+ const path = this.pathFinder.findPath(currentState, op.toState);
333
+ if (path) {
334
+ for (const edge of path) {
335
+ steps.push(this._createStepFromEdge(edge, op));
336
+ }
337
+ if (path.length > 0) {
338
+ currentState = path[path.length - 1].to;
339
+ }
340
+ }
341
+ else {
342
+ this._handleMissingPath(steps, currentState, op.toState);
343
+ currentState = op.toState;
344
+ }
345
+ }
346
+ else if (op.kind === 'setField' || op.kind === 'select' || op.kind === 'wait') {
347
+ // Check if we are already at the correct state for this field
348
+ let alreadyAtField = false;
349
+ const state = this.uiMap.states[currentState];
350
+ const findField = (s, name) => {
351
+ if (!s || !s.fields)
352
+ return null;
353
+ if (Array.isArray(s.fields)) {
354
+ return s.fields.find(f => (f.name === name || f.field === name));
355
+ }
356
+ return s.fields[name];
357
+ };
358
+ if (op.targetStateId) {
359
+ alreadyAtField = (currentState === op.targetStateId);
360
+ }
361
+ else {
362
+ alreadyAtField = !!findField(state, op.field);
363
+ }
364
+ if (!alreadyAtField) {
365
+ const path = this.pathFinder.findPath(currentState, op.field, op.targetStateId);
366
+ if (path) {
367
+ for (const edge of path) {
368
+ steps.push(this._createStepFromEdge(edge));
369
+ }
370
+ if (path.length > 0) {
371
+ currentState = path[path.length - 1].to;
372
+ }
373
+ }
374
+ else {
375
+ console.warn(`No path to field ${op.field} from ${currentState}`);
376
+ if (op.targetStateId) {
377
+ this._handleMissingPath(steps, currentState, op.targetStateId);
378
+ currentState = op.targetStateId;
379
+ }
380
+ }
381
+ }
382
+ // Interact with the field
383
+ const currentStateObj = this.uiMap.states[currentState];
384
+ const fieldDef = findField(currentStateObj, op.field);
385
+ if (fieldDef) {
386
+ const result = this._createStepFromField(fieldDef, op);
387
+ if (Array.isArray(result)) {
388
+ steps.push(...result);
389
+ }
390
+ else {
391
+ steps.push(result);
392
+ }
393
+ }
394
+ else {
395
+ console.warn(`Field ${op.field} not found in state ${currentState}`);
396
+ }
397
+ }
398
+ else if (op.kind === 'commit') {
399
+ const state = this.uiMap.states[currentState];
400
+ const findField = (s, name) => {
401
+ if (!s || !s.fields)
402
+ return null;
403
+ if (Array.isArray(s.fields)) {
404
+ return s.fields.find(f => (f.name === name || f.field === name));
405
+ }
406
+ return s.fields[name];
407
+ };
408
+ const fieldDef = findField(state, op.label);
409
+ if (fieldDef) {
410
+ steps.push(this._createStepFromField(fieldDef, { ...op, kind: 'commit' }));
411
+ }
412
+ else {
413
+ console.warn(`Commit button "${op.label}" not found in state ${currentState}`);
414
+ steps.push({
415
+ ...op,
416
+ action: 'type',
417
+ params: {
418
+ keys: '{enter}'
419
+ },
420
+ description: `Commit: ${op.label} (Fallback to Enter)`
421
+ });
422
+ }
423
+ }
424
+ else {
425
+ console.warn(`Unknown PlanOp kind: ${op.kind}`);
426
+ }
427
+ }
428
+ // Hydrate steps with details from automation files
429
+ for (const step of steps) {
430
+ if (!step.id)
431
+ continue;
432
+ let match = null;
433
+ for (const file of this.automationFiles) {
434
+ const fileSteps = file.content.steps || [];
435
+ match = fileSteps.find(s => s.id === step.id || (s.params?.annotation?.stepId === step.id));
436
+ if (match)
437
+ break;
438
+ }
439
+ if (match) {
440
+ // Merge top-level properties
441
+ ['mediaType', 'mediaUrl', 'timestampms'].forEach(key => {
442
+ if (match[key] && !step[key])
443
+ step[key] = match[key];
444
+ });
445
+ // Merge params
446
+ if (match.params) {
447
+ step.params = { ...match.params, ...step.params };
448
+ }
449
+ }
450
+ }
451
+ return { steps };
452
+ }
453
+ _handleMissingPath(steps, from, to) {
454
+ console.warn(`No path found from ${from} to ${to}. Checking macros...`);
455
+ const macroKey = `${from}->${to}`;
456
+ if (this.macroRegistry[macroKey]) {
457
+ steps.push({
458
+ action: 'run_macro',
459
+ macro: this.macroRegistry[macroKey],
460
+ description: `Macro transition from ${from} to ${to}`
461
+ });
462
+ }
463
+ else {
464
+ console.error(`Gap in map: ${from} -> ${to}`);
465
+ }
466
+ }
467
+ _createStepFromEdge(edge, op = {}) {
468
+ const { stepId, from, to, ...edgeParams } = edge;
469
+ return {
470
+ ...op,
471
+ action: 'move_interact',
472
+ id: stepId,
473
+ params: {
474
+ ...edgeParams,
475
+ action: 'click',
476
+ },
477
+ description: `Navigate: ${from} -> ${to}`
478
+ };
479
+ }
480
+ _createStepFromField(fieldDef, op) {
481
+ // Extract metadata that goes to top-level or is handled separately
482
+ const { stepId, selfLearningMetadata, name, field, params: fieldDefParams, // Extract nested params if they exist
483
+ // Top-level properties to preserve
484
+ mediaType, mediaUrl, timestampms, type, description, id, ...rest } = fieldDef;
485
+ // Merge field params (coordinates) with operation params (values)
486
+ // We merge 'fieldDefParams' (nested) and 'rest' (flattened) to handle both structures
487
+ let params = {
488
+ ...(fieldDefParams || {}),
489
+ ...rest,
490
+ ...op
491
+ };
492
+ // Base step object with top-level properties
493
+ const baseStep = {
494
+ ...op,
495
+ action: "move_interact",
496
+ id: stepId || id,
497
+ mediaType,
498
+ mediaUrl,
499
+ timestampms,
500
+ type,
501
+ description: description || `Interact with ${op.field}`,
502
+ selfLearningMetadata: selfLearningMetadata || {}
503
+ };
504
+ if (op.kind === 'setField' && op.valueType !== 'boolean') {
505
+ // Special handling for text input: Click first, then Type
506
+ const clickStep = {
507
+ ...baseStep,
508
+ params: {
509
+ ...params,
510
+ action: 'click'
511
+ },
512
+ description: `Focus field: ${op.field}`
513
+ };
514
+ const typeStep = {
515
+ ...baseStep,
516
+ params: {
517
+ ...params,
518
+ action: 'type',
519
+ text: String(op.value)
520
+ },
521
+ description: `Type into field: ${op.field}`
522
+ };
523
+ return [clickStep, typeStep];
524
+ }
525
+ if (op.kind === 'wait') {
526
+ // Prefer the prompt from the map (which comes from the recording) over the LLM's condition
527
+ // unless the map doesn't have one.
528
+ const promptToUse = params?.prompt || fieldDef.prompt || op.condition;
529
+ return {
530
+ ...baseStep,
531
+ action: 'move_interact',
532
+ params: {
533
+ ...params,
534
+ action: 'wait_on_area',
535
+ prompt: promptToUse
536
+ }
537
+ };
538
+ }
539
+ let subAction = 'click';
540
+ if (op.kind === 'select') {
541
+ subAction = 'click';
542
+ }
543
+ else if (op.kind === 'commit') {
544
+ subAction = 'click';
545
+ }
546
+ else if (op.kind === 'setField' && op.valueType === 'boolean') {
547
+ subAction = 'click';
548
+ }
549
+ return {
550
+ ...baseStep,
551
+ params: {
552
+ action: subAction,
553
+ ...params
554
+ }
555
+ };
556
+ }
557
+ }
558
+ //# sourceMappingURL=uiPlanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uiPlanner.js","sourceRoot":"","sources":["../../src/services/uiPlanner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAE/D,MAAM,OAAO,SAAS;IACpB;;;;;OAKG;IACH,YAAY,KAAK,EAAE,UAAU,EAAE,aAAa,GAAG,EAAE,EAAE,eAAe,GAAG,EAAE;QACrE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;QACxE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,qBAAqB,CAAC,KAAK;QACzB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;QACxB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;YACvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,MAAM,EAAE,oBAAoB,IAAI,IAAI,CAAC,KAAK,EAAE,oBAAoB,CAAC;gBAChH,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC;oBACrC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;wBACrB,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACtB,CAAC;oBACD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,aAAa,CAAC,KAAK;QACjB,MAAM,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5D,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;YAClC,IAAI,KAAK,GAAG,EAAE,CAAC;YAEf,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACN,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9B,CAAC;YAED,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;gBAC9B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBACpC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gBACrC,CAAC;gBACD,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QACD,OAAO,EAAE,eAAe,EAAE,CAAC;IAC7B,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,KAAK,GAAG,oBAAoB;QACnF,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAE5D,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,MAAM,WAAW,GAAG,CAAC,CAAC;QAEtB,OAAO,QAAQ,GAAG,WAAW,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAExC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,IAAI,CAAC,mCAAmC,QAAQ,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAC1E,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YAClE,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;gBAClE,IAAI,KAAK,CAAC,QAAQ;oBAAE,MAAM;gBAE1B,OAAO,CAAC,IAAI,CAAC,4BAA4B,QAAQ,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBACzE,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,uBAAuB,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YACnG,CAAC;YACD,QAAQ,EAAE,CAAC;QACb,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAE9D,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAE9D,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACrD,QAAQ,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAC3F,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK;QACjD,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACjE,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjB,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACvB,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;oBAClB,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;wBAC5C,IAAI,IAAI,gBAAgB,CAAC,CAAC,WAAW,GAAG,CAAC;oBAC3C,CAAC;oBACD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBAChC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,8DAA8D;QAC9D,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,WAAW,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;QAElD,MAAM,UAAU,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAE5F,MAAM,YAAY,GAAG;;;;;EAKvB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;;;EAGtB,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCd,CAAC;QAEE,MAAM,WAAW,GAAG;WACb,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;iBACjB,UAAU;CAC1B,CAAC;QAEE,MAAM,QAAQ,GAAG,MAAM,SAAS,CAC9B;YACE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;YACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE;SACvC,EACD,KAAK,CACN,CAAC;QAEF,OAAO,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK;QAC3C,MAAM,UAAU,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAC5F,MAAM,YAAY,GAAG;;;;iBAIR,UAAU;;;EAGzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;;;;;;;;;;;;CAYpC,CAAC;QACE,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QACrF,OAAO,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED,aAAa,CAAC,IAAI;QAChB,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAE5D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC/E,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAE9F,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,IAAI,OAAO,EAAE,CAAC;wBACZ,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,IAAI,CAAC,KAAK,uFAAuF,CAAC,CAAC;oBACtI,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,IAAI,CAAC,KAAK,yCAAyC,CAAC,CAAC;oBACxF,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;oBACpC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,IAAI,CAAC,MAAM,qBAAqB,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;QAChD,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;QACpE,MAAM,UAAU,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAC5F,MAAM,YAAY,GAAG;;;;;EAKvB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;;;EAGtB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;;qBAEE,UAAU;YACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;;;;;;;;CAQ/B,CAAC;QACE,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QACrF,OAAO,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK;QAClD,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9F,MAAM,UAAU,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAE5F,MAAM,YAAY,GAAG;;iBAER,UAAU;;;EAGzB,YAAY;;;;CAIb,CAAC;QAEE,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QACrF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM;QACtC,MAAM,GAAG,GAAG,EAAE,CAAC;QAEf,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9C,OAAO,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;YAC/D,OAAO,GAAG,CAAC;QACb,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,KAAK,UAAU;oBACb,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;oBACjD,MAAM;gBAER,KAAK,UAAU,CAAC;gBAChB,KAAK,QAAQ,CAAC;gBACd,KAAK,MAAM;oBACT,sEAAsE;oBACtE,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;oBAE3E,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC/B,0BAA0B;wBAC1B,IAAI,CAAC,aAAa,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;oBAC1C,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,0BAA0B,CAAC,CAAC;oBAC9D,CAAC;oBAED,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACf,MAAM;gBAER,KAAK,QAAQ;oBACX,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACf,MAAM;YACV,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,OAAO,EAAE,YAAY;QAC3B,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,IAAI,YAAY,GAAG,YAAY,CAAC;QAEhC,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;YACzB,iEAAiE;YACjE,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpB,IAAI,EAAE,CAAC,aAAa,IAAI,YAAY,KAAK,EAAE,CAAC,aAAa,EAAE,CAAC;oBACzD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC;oBACtE,IAAI,IAAI,EAAE,CAAC;wBACT,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;4BACxB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;wBAC7C,CAAC;wBACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;4BAAE,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/D,CAAC;yBAAM,CAAC;wBACL,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC;wBAC/D,YAAY,GAAG,EAAE,CAAC,aAAa,CAAC;oBACnC,CAAC;gBACJ,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,SAAS;YACb,CAAC;YAED,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACvB,IAAI,YAAY,KAAK,EAAE,CAAC,OAAO;oBAAE,SAAS;gBAE1C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;gBAChE,IAAI,IAAI,EAAE,CAAC;oBACT,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;wBACxB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;oBACjD,CAAC;oBACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACpB,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1C,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;oBACzD,YAAY,GAAG,EAAE,CAAC,OAAO,CAAC;gBAC5B,CAAC;YACH,CAAC;iBAAM,IAAI,EAAE,CAAC,IAAI,KAAK,UAAU,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAChF,8DAA8D;gBAC9D,IAAI,cAAc,GAAG,KAAK,CAAC;gBAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAE9C,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;oBAC5B,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;wBAAE,OAAO,IAAI,CAAC;oBACjC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC5B,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC;oBACnE,CAAC;oBACD,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACxB,CAAC,CAAC;gBAEF,IAAI,EAAE,CAAC,aAAa,EAAE,CAAC;oBACrB,cAAc,GAAG,CAAC,YAAY,KAAK,EAAE,CAAC,aAAa,CAAC,CAAC;gBACvD,CAAC;qBAAM,CAAC;oBACN,cAAc,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;gBAChD,CAAC;gBAED,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC;oBAEhF,IAAI,IAAI,EAAE,CAAC;wBACT,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;4BACxB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;wBAC7C,CAAC;wBACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACpB,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC1C,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,KAAK,SAAS,YAAY,EAAE,CAAC,CAAC;wBAClE,IAAI,EAAE,CAAC,aAAa,EAAE,CAAC;4BACrB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC;4BAC/D,YAAY,GAAG,EAAE,CAAC,aAAa,CAAC;wBAClC,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,0BAA0B;gBAC1B,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACxD,MAAM,QAAQ,GAAG,SAAS,CAAC,eAAe,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;gBAEtD,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;oBACvD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;oBACxB,CAAC;yBAAM,CAAC;wBACN,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACrB,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,uBAAuB,YAAY,EAAE,CAAC,CAAC;gBACvE,CAAC;YAEH,CAAC;iBAAM,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAC9C,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;oBAC5B,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;wBAAE,OAAO,IAAI,CAAC;oBACjC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC5B,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC;oBACnE,CAAC;oBACD,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACxB,CAAC,CAAC;gBAEF,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;gBAC5C,IAAI,QAAQ,EAAE,CAAC;oBACb,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;gBAC7E,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,KAAK,wBAAwB,YAAY,EAAE,CAAC,CAAC;oBAC/E,KAAK,CAAC,IAAI,CAAC;wBACT,GAAG,EAAE;wBACL,MAAM,EAAE,MAAM;wBACd,MAAM,EAAE;4BACN,IAAI,EAAE,SAAS;yBAChB;wBACD,WAAW,EAAE,WAAW,EAAE,CAAC,KAAK,sBAAsB;qBACvD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBACI,CAAC;gBACJ,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,mDAAmD;QACnD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,EAAE;gBAAE,SAAS;YAEvB,IAAI,KAAK,GAAG,IAAI,CAAC;YACjB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACxC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC3C,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC5F,IAAI,KAAK;oBAAE,MAAM;YACnB,CAAC;YAED,IAAI,KAAK,EAAE,CAAC;gBACV,6BAA6B;gBAC7B,CAAC,WAAW,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACrD,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;wBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;gBACvD,CAAC,CAAC,CAAC;gBAEH,eAAe;gBACf,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;oBACjB,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBACpD,CAAC;YACH,CAAC;QACH,CAAC;QAGD,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IAED,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QAChC,OAAO,CAAC,IAAI,CAAC,sBAAsB,IAAI,OAAO,EAAE,sBAAsB,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,GAAG,IAAI,KAAK,EAAE,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC;gBACT,MAAM,EAAE,WAAW;gBACnB,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;gBACnC,WAAW,EAAE,yBAAyB,IAAI,OAAO,EAAE,EAAE;aACtD,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,eAAe,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,mBAAmB,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE;QAC/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC;QACjD,OAAO;YACL,GAAG,EAAE;YACL,MAAM,EAAE,eAAe;YACvB,EAAE,EAAE,MAAM;YACV,MAAM,EAAE;gBACN,GAAG,UAAU;gBACb,MAAM,EAAE,OAAO;aAChB;YACD,WAAW,EAAE,aAAa,IAAI,OAAO,EAAE,EAAE;SAC1C,CAAC;IACJ,CAAC;IAED,oBAAoB,CAAC,QAAQ,EAAE,EAAE;QAC/B,mEAAmE;QACnE,MAAM,EACJ,MAAM,EACN,oBAAoB,EACpB,IAAI,EACJ,KAAK,EACL,MAAM,EAAE,cAAc,EAAE,sCAAsC;QAC9D,mCAAmC;QACnC,SAAS,EACT,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,WAAW,EACX,EAAE,EACF,GAAG,IAAI,EACR,GAAG,QAAQ,CAAC;QAEb,kEAAkE;QAClE,sFAAsF;QACtF,IAAI,MAAM,GAAG;YACX,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC;YACzB,GAAG,IAAI;YACP,GAAG,EAAE;SACN,CAAC;QAEF,6CAA6C;QAC7C,MAAM,QAAQ,GAAG;YACf,GAAG,EAAE;YACL,MAAM,EAAE,eAAe;YACvB,EAAE,EAAE,MAAM,IAAI,EAAE;YAChB,SAAS;YACT,QAAQ;YACR,WAAW;YACX,IAAI;YACJ,WAAW,EAAE,WAAW,IAAI,iBAAiB,EAAE,CAAC,KAAK,EAAE;YACvD,oBAAoB,EAAE,oBAAoB,IAAI,EAAE;SACjD,CAAC;QAEF,IAAI,EAAE,CAAC,IAAI,KAAK,UAAU,IAAI,EAAE,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACzD,0DAA0D;YAC1D,MAAM,SAAS,GAAG;gBAChB,GAAG,QAAQ;gBACX,MAAM,EAAE;oBACN,GAAG,MAAM;oBACT,MAAM,EAAE,OAAO;iBAChB;gBACD,WAAW,EAAE,gBAAgB,EAAE,CAAC,KAAK,EAAE;aACxC,CAAC;YAEF,MAAM,QAAQ,GAAG;gBACf,GAAG,QAAQ;gBACX,MAAM,EAAE;oBACN,GAAG,MAAM;oBACT,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC;iBACvB;gBACD,WAAW,EAAE,oBAAoB,EAAE,CAAC,KAAK,EAAE;aAC5C,CAAC;YAEF,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACvB,2FAA2F;YAC3F,mCAAmC;YACnC,MAAM,WAAW,GAAG,MAAM,EAAE,MAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,SAAS,CAAC;YACtE,OAAO;gBACL,GAAG,QAAQ;gBACX,MAAM,EAAE,eAAe;gBACvB,MAAM,EAAE;oBACN,GAAG,MAAM;oBACT,MAAM,EAAE,cAAc;oBACtB,MAAM,EAAE,WAAW;iBACpB;aACF,CAAC;QACJ,CAAC;QAED,IAAI,SAAS,GAAG,OAAO,CAAC;QACxB,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACzB,SAAS,GAAG,OAAO,CAAC;QACtB,CAAC;aAAM,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAChC,SAAS,GAAG,OAAO,CAAC;QACtB,CAAC;aAAM,IAAI,EAAE,CAAC,IAAI,KAAK,UAAU,IAAI,EAAE,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAChE,SAAS,GAAG,OAAO,CAAC;QACtB,CAAC;QAED,OAAO;YACL,GAAG,QAAQ;YACX,MAAM,EAAE;gBACN,MAAM,EAAE,SAAS;gBACjB,GAAG,MAAM;aACV;SACF,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,80 @@
1
+ export declare const deepMerge: (target: any, source: any) => any;
2
+ /**
3
+ * Extracts JSON from a string or returns the object as-is
4
+ * @param {string|object} input - The input to process
5
+ * @returns {object|null} - The parsed JSON object or null if parsing fails
6
+ */
7
+ export declare function extractJSON(input: any): any;
8
+ /**
9
+ * Cleans a string to extract pure JSON
10
+ * @param {string} str - The string to clean
11
+ * @returns {string} - The cleaned JSON string
12
+ */
13
+ declare function cleanJSONString(str: any, options?: {
14
+ allowTrailingText?: boolean;
15
+ }): any;
16
+ /**
17
+ * Safe JSON extraction with fallback options
18
+ * @param {string|object} input - The input to process
19
+ * @param {object} options - Options for extraction
20
+ * @returns {object} - The result object
21
+ */
22
+ declare function safeExtractJSON(input: any, options?: {
23
+ returnOriginalOnFail?: boolean;
24
+ defaultValue?: any;
25
+ throwOnError?: boolean;
26
+ }): any;
27
+ /**
28
+ * Validates if a string contains valid JSON
29
+ * @param {string} str - The string to validate
30
+ * @returns {boolean} - True if contains valid JSON
31
+ */
32
+ declare function containsJSON(str: any, options?: {
33
+ allowTrailingText?: boolean;
34
+ }): boolean;
35
+ /**
36
+ * Extracts multiple JSON objects from a string
37
+ * @param {string} str - The string to process
38
+ * @returns {array} - Array of JSON objects found
39
+ */
40
+ declare function extractMultipleJSON(str: any): any[];
41
+ /**
42
+ * Predefined utility functions available in ExecJSNode execution context
43
+ */
44
+ export declare const getUtilityFunctions: () => {
45
+ capitalize: (str: any) => any;
46
+ titleCase: (str: any) => any;
47
+ slugify: (str: any) => any;
48
+ truncate: (str: any, length: any, suffix?: string) => any;
49
+ chunk: (array: any, size: any) => any[];
50
+ unique: (array: any) => unknown[];
51
+ flatten: (array: any) => any;
52
+ groupBy: (array: any, key: any) => any;
53
+ pick: (obj: any, keys: any) => any;
54
+ omit: (obj: any, keys: any) => any;
55
+ formatDate: (datestring: any, format?: string) => string;
56
+ extractJSON: typeof extractJSON;
57
+ cleanJSONString: typeof cleanJSONString;
58
+ safeExtractJSON: typeof safeExtractJSON;
59
+ containsJSON: typeof containsJSON;
60
+ extractMultipleJSON: typeof extractMultipleJSON;
61
+ timeAgo: (datestring: any) => string;
62
+ clamp: (num: any, min: any, max: any) => number;
63
+ round: (num: any, decimals?: number) => number;
64
+ deepMerge: (target: any, source: any) => any;
65
+ randomBetween: (min: any, max: any) => any;
66
+ formatNumber: (num: any, locale?: string) => string;
67
+ isEmail: (str: any) => boolean;
68
+ isUrl: (str: any) => boolean;
69
+ isEmpty: (value: any) => boolean;
70
+ fetchJSON: (url: any, options?: {
71
+ headers?: Record<string, string>;
72
+ }) => Promise<any>;
73
+ delay: (ms: any) => Promise<unknown>;
74
+ retry: (fn: any, maxAttempts?: number, delayMs?: number) => Promise<any>;
75
+ template: (str: any, data: any) => any;
76
+ log: (...args: any[]) => any;
77
+ inspect: (obj: any) => any;
78
+ };
79
+ export {};
80
+ //# sourceMappingURL=utilityFunctions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utilityFunctions.d.ts","sourceRoot":"","sources":["../../src/services/utilityFunctions.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,SAAS,GAAI,WAAM,EAAE,WAAM,QAUvC,CAAA;AAED;;;;GAIG;AAEH,wBAAgB,WAAW,CAAC,KAAK,KAAA,OAwBhC;AAED;;;;GAIG;AAEH,iBAAS,eAAe,CAAC,GAAG,KAAA,EAAE,OAAO,CAAC,EAAE;IAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAE,OAsDtE;AAED;;;;;GAKG;AAEH,iBAAS,eAAe,CACpB,KAAK,KAAA,EACL,OAAO,GAAE;IACL,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;CACrB,OAuCT;AAED;;;;GAIG;AAEH,iBAAS,YAAY,CAAC,GAAG,KAAA,EAAE,OAAO,CAAC,EAAE;IAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAE,WAYnE;AAED;;;;GAIG;AACH,iBAAS,mBAAmB,CAAC,GAAG,KAAA,SAyD/B;AAKD;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;oCA8HQ;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;;;;;;CAsC3E,CAAC"}