@solidxai/core 0.1.12 → 0.1.13-beta.2

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 (463) hide show
  1. package/dist/controllers/view-metadata.controller.d.ts +1 -1
  2. package/dist/controllers/workflow-definition.controller.d.ts +38 -0
  3. package/dist/controllers/workflow-definition.controller.d.ts.map +1 -0
  4. package/dist/controllers/workflow-definition.controller.js +272 -0
  5. package/dist/controllers/workflow-definition.controller.js.map +1 -0
  6. package/dist/controllers/workflow-execution-artifact.controller.d.ts +24 -0
  7. package/dist/controllers/workflow-execution-artifact.controller.d.ts.map +1 -0
  8. package/dist/controllers/workflow-execution-artifact.controller.js +179 -0
  9. package/dist/controllers/workflow-execution-artifact.controller.js.map +1 -0
  10. package/dist/controllers/workflow-execution-log.controller.d.ts +24 -0
  11. package/dist/controllers/workflow-execution-log.controller.d.ts.map +1 -0
  12. package/dist/controllers/workflow-execution-log.controller.js +179 -0
  13. package/dist/controllers/workflow-execution-log.controller.js.map +1 -0
  14. package/dist/controllers/workflow-execution.controller.d.ts +29 -0
  15. package/dist/controllers/workflow-execution.controller.d.ts.map +1 -0
  16. package/dist/controllers/workflow-execution.controller.js +227 -0
  17. package/dist/controllers/workflow-execution.controller.js.map +1 -0
  18. package/dist/controllers/workflow-secret.controller.d.ts +24 -0
  19. package/dist/controllers/workflow-secret.controller.d.ts.map +1 -0
  20. package/dist/controllers/workflow-secret.controller.js +179 -0
  21. package/dist/controllers/workflow-secret.controller.js.map +1 -0
  22. package/dist/controllers/workflow-step-execution.controller.d.ts +24 -0
  23. package/dist/controllers/workflow-step-execution.controller.d.ts.map +1 -0
  24. package/dist/controllers/workflow-step-execution.controller.js +179 -0
  25. package/dist/controllers/workflow-step-execution.controller.js.map +1 -0
  26. package/dist/controllers/workflow-trigger-execution.controller.d.ts +24 -0
  27. package/dist/controllers/workflow-trigger-execution.controller.d.ts.map +1 -0
  28. package/dist/controllers/workflow-trigger-execution.controller.js +179 -0
  29. package/dist/controllers/workflow-trigger-execution.controller.js.map +1 -0
  30. package/dist/decorators/workflow-field-data-provider.decorator.d.ts +3 -0
  31. package/dist/decorators/workflow-field-data-provider.decorator.d.ts.map +1 -0
  32. package/dist/decorators/workflow-field-data-provider.decorator.js +11 -0
  33. package/dist/decorators/workflow-field-data-provider.decorator.js.map +1 -0
  34. package/dist/decorators/workflow-node-provider.decorator.d.ts +4 -0
  35. package/dist/decorators/workflow-node-provider.decorator.d.ts.map +1 -0
  36. package/dist/decorators/workflow-node-provider.decorator.js +13 -0
  37. package/dist/decorators/workflow-node-provider.decorator.js.map +1 -0
  38. package/dist/dtos/create-workflow-definition.dto.d.ts +14 -0
  39. package/dist/dtos/create-workflow-definition.dto.d.ts.map +1 -0
  40. package/dist/dtos/create-workflow-definition.dto.js +92 -0
  41. package/dist/dtos/create-workflow-definition.dto.js.map +1 -0
  42. package/dist/dtos/create-workflow-execution-artifact.dto.d.ts +22 -0
  43. package/dist/dtos/create-workflow-execution-artifact.dto.d.ts.map +1 -0
  44. package/dist/dtos/create-workflow-execution-artifact.dto.js +139 -0
  45. package/dist/dtos/create-workflow-execution-artifact.dto.js.map +1 -0
  46. package/dist/dtos/create-workflow-execution-log.dto.d.ts +18 -0
  47. package/dist/dtos/create-workflow-execution-log.dto.d.ts.map +1 -0
  48. package/dist/dtos/create-workflow-execution-log.dto.js +116 -0
  49. package/dist/dtos/create-workflow-execution-log.dto.js.map +1 -0
  50. package/dist/dtos/create-workflow-execution.dto.d.ts +33 -0
  51. package/dist/dtos/create-workflow-execution.dto.d.ts.map +1 -0
  52. package/dist/dtos/create-workflow-execution.dto.js +186 -0
  53. package/dist/dtos/create-workflow-execution.dto.js.map +1 -0
  54. package/dist/dtos/create-workflow-secret.dto.d.ts +11 -0
  55. package/dist/dtos/create-workflow-secret.dto.d.ts.map +1 -0
  56. package/dist/dtos/create-workflow-secret.dto.js +74 -0
  57. package/dist/dtos/create-workflow-secret.dto.js.map +1 -0
  58. package/dist/dtos/create-workflow-step-execution.dto.d.ts +27 -0
  59. package/dist/dtos/create-workflow-step-execution.dto.d.ts.map +1 -0
  60. package/dist/dtos/create-workflow-step-execution.dto.js +171 -0
  61. package/dist/dtos/create-workflow-step-execution.dto.js.map +1 -0
  62. package/dist/dtos/create-workflow-trigger-execution.dto.d.ts +25 -0
  63. package/dist/dtos/create-workflow-trigger-execution.dto.d.ts.map +1 -0
  64. package/dist/dtos/create-workflow-trigger-execution.dto.js +158 -0
  65. package/dist/dtos/create-workflow-trigger-execution.dto.js.map +1 -0
  66. package/dist/dtos/execute-workflow.dto.d.ts +7 -0
  67. package/dist/dtos/execute-workflow.dto.d.ts.map +1 -0
  68. package/dist/dtos/execute-workflow.dto.js +11 -0
  69. package/dist/dtos/execute-workflow.dto.js.map +1 -0
  70. package/dist/dtos/update-workflow-definition.dto.d.ts +15 -0
  71. package/dist/dtos/update-workflow-definition.dto.d.ts.map +1 -0
  72. package/dist/dtos/update-workflow-definition.dto.js +97 -0
  73. package/dist/dtos/update-workflow-definition.dto.js.map +1 -0
  74. package/dist/dtos/update-workflow-execution-artifact.dto.d.ts +23 -0
  75. package/dist/dtos/update-workflow-execution-artifact.dto.d.ts.map +1 -0
  76. package/dist/dtos/update-workflow-execution-artifact.dto.js +143 -0
  77. package/dist/dtos/update-workflow-execution-artifact.dto.js.map +1 -0
  78. package/dist/dtos/update-workflow-execution-log.dto.d.ts +19 -0
  79. package/dist/dtos/update-workflow-execution-log.dto.d.ts.map +1 -0
  80. package/dist/dtos/update-workflow-execution-log.dto.js +121 -0
  81. package/dist/dtos/update-workflow-execution-log.dto.js.map +1 -0
  82. package/dist/dtos/update-workflow-execution.dto.d.ts +34 -0
  83. package/dist/dtos/update-workflow-execution.dto.d.ts.map +1 -0
  84. package/dist/dtos/update-workflow-execution.dto.js +190 -0
  85. package/dist/dtos/update-workflow-execution.dto.js.map +1 -0
  86. package/dist/dtos/update-workflow-secret.dto.d.ts +12 -0
  87. package/dist/dtos/update-workflow-secret.dto.d.ts.map +1 -0
  88. package/dist/dtos/update-workflow-secret.dto.js +80 -0
  89. package/dist/dtos/update-workflow-secret.dto.js.map +1 -0
  90. package/dist/dtos/update-workflow-step-execution.dto.d.ts +28 -0
  91. package/dist/dtos/update-workflow-step-execution.dto.d.ts.map +1 -0
  92. package/dist/dtos/update-workflow-step-execution.dto.js +175 -0
  93. package/dist/dtos/update-workflow-step-execution.dto.js.map +1 -0
  94. package/dist/dtos/update-workflow-trigger-execution.dto.d.ts +26 -0
  95. package/dist/dtos/update-workflow-trigger-execution.dto.d.ts.map +1 -0
  96. package/dist/dtos/update-workflow-trigger-execution.dto.js +163 -0
  97. package/dist/dtos/update-workflow-trigger-execution.dto.js.map +1 -0
  98. package/dist/dtos/validate-workflow-definition.dto.d.ts +4 -0
  99. package/dist/dtos/validate-workflow-definition.dto.d.ts.map +1 -0
  100. package/dist/dtos/validate-workflow-definition.dto.js +11 -0
  101. package/dist/dtos/validate-workflow-definition.dto.js.map +1 -0
  102. package/dist/entities/saved-filters.entity.js +3 -3
  103. package/dist/entities/saved-filters.entity.js.map +1 -1
  104. package/dist/entities/workflow-definition.entity.d.ts +15 -0
  105. package/dist/entities/workflow-definition.entity.d.ts.map +1 -0
  106. package/dist/entities/workflow-definition.entity.js +77 -0
  107. package/dist/entities/workflow-definition.entity.js.map +1 -0
  108. package/dist/entities/workflow-execution-artifact.entity.d.ts +23 -0
  109. package/dist/entities/workflow-execution-artifact.entity.d.ts.map +1 -0
  110. package/dist/entities/workflow-execution-artifact.entity.js +113 -0
  111. package/dist/entities/workflow-execution-artifact.entity.js.map +1 -0
  112. package/dist/entities/workflow-execution-log.entity.d.ts +19 -0
  113. package/dist/entities/workflow-execution-log.entity.d.ts.map +1 -0
  114. package/dist/entities/workflow-execution-log.entity.js +95 -0
  115. package/dist/entities/workflow-execution-log.entity.js.map +1 -0
  116. package/dist/entities/workflow-execution.entity.d.ts +28 -0
  117. package/dist/entities/workflow-execution.entity.d.ts.map +1 -0
  118. package/dist/entities/workflow-execution.entity.js +124 -0
  119. package/dist/entities/workflow-execution.entity.js.map +1 -0
  120. package/dist/entities/workflow-secret.entity.d.ts +12 -0
  121. package/dist/entities/workflow-secret.entity.d.ts.map +1 -0
  122. package/dist/entities/workflow-secret.entity.js +66 -0
  123. package/dist/entities/workflow-secret.entity.js.map +1 -0
  124. package/dist/entities/workflow-step-execution.entity.d.ts +28 -0
  125. package/dist/entities/workflow-step-execution.entity.d.ts.map +1 -0
  126. package/dist/entities/workflow-step-execution.entity.js +138 -0
  127. package/dist/entities/workflow-step-execution.entity.js.map +1 -0
  128. package/dist/entities/workflow-trigger-execution.entity.d.ts +26 -0
  129. package/dist/entities/workflow-trigger-execution.entity.d.ts.map +1 -0
  130. package/dist/entities/workflow-trigger-execution.entity.js +127 -0
  131. package/dist/entities/workflow-trigger-execution.entity.js.map +1 -0
  132. package/dist/factories/sms.factory.d.ts.map +1 -1
  133. package/dist/factories/sms.factory.js +4 -1
  134. package/dist/factories/sms.factory.js.map +1 -1
  135. package/dist/helpers/solid-registry.d.ts +5 -1
  136. package/dist/helpers/solid-registry.d.ts.map +1 -1
  137. package/dist/helpers/solid-registry.js +17 -0
  138. package/dist/helpers/solid-registry.js.map +1 -1
  139. package/dist/index.d.ts +55 -0
  140. package/dist/index.d.ts.map +1 -1
  141. package/dist/index.js +55 -0
  142. package/dist/index.js.map +1 -1
  143. package/dist/interfaces/workflow-node-handler.interface.d.ts +5 -0
  144. package/dist/interfaces/workflow-node-handler.interface.d.ts.map +1 -0
  145. package/dist/interfaces/workflow-node-handler.interface.js +3 -0
  146. package/dist/interfaces/workflow-node-handler.interface.js.map +1 -0
  147. package/dist/interfaces.d.ts +24 -0
  148. package/dist/interfaces.d.ts.map +1 -1
  149. package/dist/interfaces.js.map +1 -1
  150. package/dist/jobs/database/workflow-execution-publisher-database.service.d.ts +12 -0
  151. package/dist/jobs/database/workflow-execution-publisher-database.service.d.ts.map +1 -0
  152. package/dist/jobs/database/workflow-execution-publisher-database.service.js +39 -0
  153. package/dist/jobs/database/workflow-execution-publisher-database.service.js.map +1 -0
  154. package/dist/jobs/database/workflow-execution-queue-options-database.d.ts +8 -0
  155. package/dist/jobs/database/workflow-execution-queue-options-database.d.ts.map +1 -0
  156. package/dist/jobs/database/workflow-execution-queue-options-database.js +10 -0
  157. package/dist/jobs/database/workflow-execution-queue-options-database.js.map +1 -0
  158. package/dist/jobs/database/workflow-execution-subscriber-database.service.d.ts +19 -0
  159. package/dist/jobs/database/workflow-execution-subscriber-database.service.d.ts.map +1 -0
  160. package/dist/jobs/database/workflow-execution-subscriber-database.service.js +55 -0
  161. package/dist/jobs/database/workflow-execution-subscriber-database.service.js.map +1 -0
  162. package/dist/jobs/rabbitmq/workflow-execution-publisher.service.d.ts +12 -0
  163. package/dist/jobs/rabbitmq/workflow-execution-publisher.service.d.ts.map +1 -0
  164. package/dist/jobs/rabbitmq/workflow-execution-publisher.service.js +39 -0
  165. package/dist/jobs/rabbitmq/workflow-execution-publisher.service.js.map +1 -0
  166. package/dist/jobs/rabbitmq/workflow-execution-queue-options.d.ts +8 -0
  167. package/dist/jobs/rabbitmq/workflow-execution-queue-options.d.ts.map +1 -0
  168. package/dist/jobs/rabbitmq/workflow-execution-queue-options.js +10 -0
  169. package/dist/jobs/rabbitmq/workflow-execution-queue-options.js.map +1 -0
  170. package/dist/jobs/rabbitmq/workflow-execution-subscriber.service.d.ts +17 -0
  171. package/dist/jobs/rabbitmq/workflow-execution-subscriber.service.d.ts.map +1 -0
  172. package/dist/jobs/rabbitmq/workflow-execution-subscriber.service.js +52 -0
  173. package/dist/jobs/rabbitmq/workflow-execution-subscriber.service.js.map +1 -0
  174. package/dist/jobs/redis/workflow-execution-publisher-redis.service.d.ts +12 -0
  175. package/dist/jobs/redis/workflow-execution-publisher-redis.service.d.ts.map +1 -0
  176. package/dist/jobs/redis/workflow-execution-publisher-redis.service.js +39 -0
  177. package/dist/jobs/redis/workflow-execution-publisher-redis.service.js.map +1 -0
  178. package/dist/jobs/redis/workflow-execution-queue-options-redis.d.ts +8 -0
  179. package/dist/jobs/redis/workflow-execution-queue-options-redis.d.ts.map +1 -0
  180. package/dist/jobs/redis/workflow-execution-queue-options-redis.js +10 -0
  181. package/dist/jobs/redis/workflow-execution-queue-options-redis.js.map +1 -0
  182. package/dist/jobs/redis/workflow-execution-subscriber-redis.service.d.ts +17 -0
  183. package/dist/jobs/redis/workflow-execution-subscriber-redis.service.d.ts.map +1 -0
  184. package/dist/jobs/redis/workflow-execution-subscriber-redis.service.js +52 -0
  185. package/dist/jobs/redis/workflow-execution-subscriber-redis.service.js.map +1 -0
  186. package/dist/repository/security-rule.repository.d.ts +1 -0
  187. package/dist/repository/security-rule.repository.d.ts.map +1 -1
  188. package/dist/repository/security-rule.repository.js +28 -7
  189. package/dist/repository/security-rule.repository.js.map +1 -1
  190. package/dist/repository/workflow-definition.repository.d.ts +12 -0
  191. package/dist/repository/workflow-definition.repository.d.ts.map +1 -0
  192. package/dist/repository/workflow-definition.repository.js +39 -0
  193. package/dist/repository/workflow-definition.repository.js.map +1 -0
  194. package/dist/repository/workflow-execution-artifact.repository.d.ts +12 -0
  195. package/dist/repository/workflow-execution-artifact.repository.d.ts.map +1 -0
  196. package/dist/repository/workflow-execution-artifact.repository.js +39 -0
  197. package/dist/repository/workflow-execution-artifact.repository.js.map +1 -0
  198. package/dist/repository/workflow-execution-log.repository.d.ts +12 -0
  199. package/dist/repository/workflow-execution-log.repository.d.ts.map +1 -0
  200. package/dist/repository/workflow-execution-log.repository.js +39 -0
  201. package/dist/repository/workflow-execution-log.repository.js.map +1 -0
  202. package/dist/repository/workflow-execution.repository.d.ts +12 -0
  203. package/dist/repository/workflow-execution.repository.d.ts.map +1 -0
  204. package/dist/repository/workflow-execution.repository.js +39 -0
  205. package/dist/repository/workflow-execution.repository.js.map +1 -0
  206. package/dist/repository/workflow-secret.repository.d.ts +12 -0
  207. package/dist/repository/workflow-secret.repository.d.ts.map +1 -0
  208. package/dist/repository/workflow-secret.repository.js +39 -0
  209. package/dist/repository/workflow-secret.repository.js.map +1 -0
  210. package/dist/repository/workflow-step-execution.repository.d.ts +12 -0
  211. package/dist/repository/workflow-step-execution.repository.d.ts.map +1 -0
  212. package/dist/repository/workflow-step-execution.repository.js +39 -0
  213. package/dist/repository/workflow-step-execution.repository.js.map +1 -0
  214. package/dist/repository/workflow-trigger-execution.repository.d.ts +12 -0
  215. package/dist/repository/workflow-trigger-execution.repository.d.ts.map +1 -0
  216. package/dist/repository/workflow-trigger-execution.repository.js +39 -0
  217. package/dist/repository/workflow-trigger-execution.repository.js.map +1 -0
  218. package/dist/seeders/module-metadata-seeder.service.d.ts +6 -0
  219. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  220. package/dist/seeders/module-metadata-seeder.service.js +141 -0
  221. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  222. package/dist/seeders/seed-data/solid-core-metadata.json +11437 -5567
  223. package/dist/services/chatter-message.service.d.ts.map +1 -1
  224. package/dist/services/chatter-message.service.js +1 -1
  225. package/dist/services/chatter-message.service.js.map +1 -1
  226. package/dist/services/crud-helper.service.d.ts +16 -1
  227. package/dist/services/crud-helper.service.d.ts.map +1 -1
  228. package/dist/services/crud-helper.service.js +99 -22
  229. package/dist/services/crud-helper.service.js.map +1 -1
  230. package/dist/services/crud.service.d.ts +1 -0
  231. package/dist/services/crud.service.d.ts.map +1 -1
  232. package/dist/services/crud.service.js +15 -0
  233. package/dist/services/crud.service.js.map +1 -1
  234. package/dist/services/solid-introspect.service.d.ts +1 -0
  235. package/dist/services/solid-introspect.service.d.ts.map +1 -1
  236. package/dist/services/solid-introspect.service.js +12 -0
  237. package/dist/services/solid-introspect.service.js.map +1 -1
  238. package/dist/services/view-metadata.service.d.ts +5 -1
  239. package/dist/services/view-metadata.service.d.ts.map +1 -1
  240. package/dist/services/view-metadata.service.js +63 -14
  241. package/dist/services/view-metadata.service.js.map +1 -1
  242. package/dist/services/workflow/nodes/for-each.node.d.ts +6 -0
  243. package/dist/services/workflow/nodes/for-each.node.d.ts.map +1 -0
  244. package/dist/services/workflow/nodes/for-each.node.js +95 -0
  245. package/dist/services/workflow/nodes/for-each.node.js.map +1 -0
  246. package/dist/services/workflow/nodes/http-request.node.d.ts +13 -0
  247. package/dist/services/workflow/nodes/http-request.node.d.ts.map +1 -0
  248. package/dist/services/workflow/nodes/http-request.node.js +549 -0
  249. package/dist/services/workflow/nodes/http-request.node.js.map +1 -0
  250. package/dist/services/workflow/nodes/if.node.d.ts +6 -0
  251. package/dist/services/workflow/nodes/if.node.d.ts.map +1 -0
  252. package/dist/services/workflow/nodes/if.node.js +93 -0
  253. package/dist/services/workflow/nodes/if.node.js.map +1 -0
  254. package/dist/services/workflow/nodes/log-write.node.d.ts +6 -0
  255. package/dist/services/workflow/nodes/log-write.node.d.ts.map +1 -0
  256. package/dist/services/workflow/nodes/log-write.node.js +229 -0
  257. package/dist/services/workflow/nodes/log-write.node.js.map +1 -0
  258. package/dist/services/workflow/nodes/parallel.node.d.ts +6 -0
  259. package/dist/services/workflow/nodes/parallel.node.d.ts.map +1 -0
  260. package/dist/services/workflow/nodes/parallel.node.js +76 -0
  261. package/dist/services/workflow/nodes/parallel.node.js.map +1 -0
  262. package/dist/services/workflow/nodes/runtime-python.node.d.ts +13 -0
  263. package/dist/services/workflow/nodes/runtime-python.node.d.ts.map +1 -0
  264. package/dist/services/workflow/nodes/runtime-python.node.js +522 -0
  265. package/dist/services/workflow/nodes/runtime-python.node.js.map +1 -0
  266. package/dist/services/workflow/nodes/sequential.node.d.ts +6 -0
  267. package/dist/services/workflow/nodes/sequential.node.d.ts.map +1 -0
  268. package/dist/services/workflow/nodes/sequential.node.js +61 -0
  269. package/dist/services/workflow/nodes/sequential.node.js.map +1 -0
  270. package/dist/services/workflow/nodes/solidx-api.helpers.d.ts +25 -0
  271. package/dist/services/workflow/nodes/solidx-api.helpers.d.ts.map +1 -0
  272. package/dist/services/workflow/nodes/solidx-api.helpers.js +143 -0
  273. package/dist/services/workflow/nodes/solidx-api.helpers.js.map +1 -0
  274. package/dist/services/workflow/nodes/solidx-crud.nodes.d.ts +48 -0
  275. package/dist/services/workflow/nodes/solidx-crud.nodes.d.ts.map +1 -0
  276. package/dist/services/workflow/nodes/solidx-crud.nodes.js +475 -0
  277. package/dist/services/workflow/nodes/solidx-crud.nodes.js.map +1 -0
  278. package/dist/services/workflow/nodes/solidx-login.node.d.ts +6 -0
  279. package/dist/services/workflow/nodes/solidx-login.node.d.ts.map +1 -0
  280. package/dist/services/workflow/nodes/solidx-login.node.js +208 -0
  281. package/dist/services/workflow/nodes/solidx-login.node.js.map +1 -0
  282. package/dist/services/workflow/nodes/solidx-send-email.node.d.ts +11 -0
  283. package/dist/services/workflow/nodes/solidx-send-email.node.d.ts.map +1 -0
  284. package/dist/services/workflow/nodes/solidx-send-email.node.js +437 -0
  285. package/dist/services/workflow/nodes/solidx-send-email.node.js.map +1 -0
  286. package/dist/services/workflow/nodes/solidx-send-sms.node.d.ts +10 -0
  287. package/dist/services/workflow/nodes/solidx-send-sms.node.d.ts.map +1 -0
  288. package/dist/services/workflow/nodes/solidx-send-sms.node.js +347 -0
  289. package/dist/services/workflow/nodes/solidx-send-sms.node.js.map +1 -0
  290. package/dist/services/workflow/nodes/switch.node.d.ts +7 -0
  291. package/dist/services/workflow/nodes/switch.node.d.ts.map +1 -0
  292. package/dist/services/workflow/nodes/switch.node.js +113 -0
  293. package/dist/services/workflow/nodes/switch.node.js.map +1 -0
  294. package/dist/services/workflow/workflow-definition-metadata-sync.service.d.ts +19 -0
  295. package/dist/services/workflow/workflow-definition-metadata-sync.service.d.ts.map +1 -0
  296. package/dist/services/workflow/workflow-definition-metadata-sync.service.js +187 -0
  297. package/dist/services/workflow/workflow-definition-metadata-sync.service.js.map +1 -0
  298. package/dist/services/workflow/workflow-definition-validator.service.d.ts +13 -0
  299. package/dist/services/workflow/workflow-definition-validator.service.d.ts.map +1 -0
  300. package/dist/services/workflow/workflow-definition-validator.service.js +163 -0
  301. package/dist/services/workflow/workflow-definition-validator.service.js.map +1 -0
  302. package/dist/services/workflow/workflow-execution-writer.service.d.ts +26 -0
  303. package/dist/services/workflow/workflow-execution-writer.service.d.ts.map +1 -0
  304. package/dist/services/workflow/workflow-execution-writer.service.js +191 -0
  305. package/dist/services/workflow/workflow-execution-writer.service.js.map +1 -0
  306. package/dist/services/workflow/workflow-expression.service.d.ts +14 -0
  307. package/dist/services/workflow/workflow-expression.service.d.ts.map +1 -0
  308. package/dist/services/workflow/workflow-expression.service.js +152 -0
  309. package/dist/services/workflow/workflow-expression.service.js.map +1 -0
  310. package/dist/services/workflow/workflow-invocation.service.d.ts +11 -0
  311. package/dist/services/workflow/workflow-invocation.service.d.ts.map +1 -0
  312. package/dist/services/workflow/workflow-invocation.service.js +37 -0
  313. package/dist/services/workflow/workflow-invocation.service.js.map +1 -0
  314. package/dist/services/workflow/workflow-node-registry.service.d.ts +18 -0
  315. package/dist/services/workflow/workflow-node-registry.service.d.ts.map +1 -0
  316. package/dist/services/workflow/workflow-node-registry.service.js +110 -0
  317. package/dist/services/workflow/workflow-node-registry.service.js.map +1 -0
  318. package/dist/services/workflow/workflow-runtime.service.d.ts +53 -0
  319. package/dist/services/workflow/workflow-runtime.service.d.ts.map +1 -0
  320. package/dist/services/workflow/workflow-runtime.service.js +541 -0
  321. package/dist/services/workflow/workflow-runtime.service.js.map +1 -0
  322. package/dist/services/workflow/workflow-scheduled-trigger.job.d.ts +10 -0
  323. package/dist/services/workflow/workflow-scheduled-trigger.job.d.ts.map +1 -0
  324. package/dist/services/workflow/workflow-scheduled-trigger.job.js +37 -0
  325. package/dist/services/workflow/workflow-scheduled-trigger.job.js.map +1 -0
  326. package/dist/services/workflow-definition.service.d.ts +52 -0
  327. package/dist/services/workflow-definition.service.d.ts.map +1 -0
  328. package/dist/services/workflow-definition.service.js +251 -0
  329. package/dist/services/workflow-definition.service.js.map +1 -0
  330. package/dist/services/workflow-execution-artifact.service.d.ts +12 -0
  331. package/dist/services/workflow-execution-artifact.service.d.ts.map +1 -0
  332. package/dist/services/workflow-execution-artifact.service.js +38 -0
  333. package/dist/services/workflow-execution-artifact.service.js.map +1 -0
  334. package/dist/services/workflow-execution-log.service.d.ts +12 -0
  335. package/dist/services/workflow-execution-log.service.d.ts.map +1 -0
  336. package/dist/services/workflow-execution-log.service.js +38 -0
  337. package/dist/services/workflow-execution-log.service.js.map +1 -0
  338. package/dist/services/workflow-execution.service.d.ts +12 -0
  339. package/dist/services/workflow-execution.service.d.ts.map +1 -0
  340. package/dist/services/workflow-execution.service.js +38 -0
  341. package/dist/services/workflow-execution.service.js.map +1 -0
  342. package/dist/services/workflow-secret.service.d.ts +25 -0
  343. package/dist/services/workflow-secret.service.d.ts.map +1 -0
  344. package/dist/services/workflow-secret.service.js +152 -0
  345. package/dist/services/workflow-secret.service.js.map +1 -0
  346. package/dist/services/workflow-step-execution.service.d.ts +12 -0
  347. package/dist/services/workflow-step-execution.service.d.ts.map +1 -0
  348. package/dist/services/workflow-step-execution.service.js +38 -0
  349. package/dist/services/workflow-step-execution.service.js.map +1 -0
  350. package/dist/services/workflow-trigger-execution.service.d.ts +12 -0
  351. package/dist/services/workflow-trigger-execution.service.d.ts.map +1 -0
  352. package/dist/services/workflow-trigger-execution.service.js +38 -0
  353. package/dist/services/workflow-trigger-execution.service.js.map +1 -0
  354. package/dist/solid-core.module.d.ts.map +1 -1
  355. package/dist/solid-core.module.js +117 -0
  356. package/dist/solid-core.module.js.map +1 -1
  357. package/dist/transformers/empty-string-to-null-transformer.d.ts +4 -0
  358. package/dist/transformers/empty-string-to-null-transformer.d.ts.map +1 -0
  359. package/dist/transformers/empty-string-to-null-transformer.js +12 -0
  360. package/dist/transformers/empty-string-to-null-transformer.js.map +1 -0
  361. package/dist/types/workflow-dsl.types.d.ts +277 -0
  362. package/dist/types/workflow-dsl.types.d.ts.map +1 -0
  363. package/dist/types/workflow-dsl.types.js +3 -0
  364. package/dist/types/workflow-dsl.types.js.map +1 -0
  365. package/dist/types/workflow-execution-queue.types.d.ts +4 -0
  366. package/dist/types/workflow-execution-queue.types.d.ts.map +1 -0
  367. package/dist/types/workflow-execution-queue.types.js +3 -0
  368. package/dist/types/workflow-execution-queue.types.js.map +1 -0
  369. package/package.json +3 -2
  370. package/src/controllers/workflow-definition.controller.ts +141 -0
  371. package/src/controllers/workflow-execution-artifact.controller.ts +93 -0
  372. package/src/controllers/workflow-execution-log.controller.ts +93 -0
  373. package/src/controllers/workflow-execution.controller.ts +126 -0
  374. package/src/controllers/workflow-secret.controller.ts +90 -0
  375. package/src/controllers/workflow-step-execution.controller.ts +93 -0
  376. package/src/controllers/workflow-trigger-execution.controller.ts +93 -0
  377. package/src/decorators/workflow-field-data-provider.decorator.ts +7 -0
  378. package/src/decorators/workflow-node-provider.decorator.ts +14 -0
  379. package/src/dtos/create-workflow-definition.dto.ts +60 -0
  380. package/src/dtos/create-workflow-execution-artifact.dto.ts +99 -0
  381. package/src/dtos/create-workflow-execution-log.dto.ts +80 -0
  382. package/src/dtos/create-workflow-execution.dto.ts +137 -0
  383. package/src/dtos/create-workflow-secret.dto.ts +44 -0
  384. package/src/dtos/create-workflow-step-execution.dto.ts +123 -0
  385. package/src/dtos/create-workflow-trigger-execution.dto.ts +114 -0
  386. package/src/dtos/execute-workflow.dto.ts +6 -0
  387. package/src/dtos/update-workflow-definition.dto.ts +67 -0
  388. package/src/dtos/update-workflow-execution-artifact.dto.ts +105 -0
  389. package/src/dtos/update-workflow-execution-log.dto.ts +87 -0
  390. package/src/dtos/update-workflow-execution.dto.ts +144 -0
  391. package/src/dtos/update-workflow-secret.dto.ts +53 -0
  392. package/src/dtos/update-workflow-step-execution.dto.ts +132 -0
  393. package/src/dtos/update-workflow-trigger-execution.dto.ts +122 -0
  394. package/src/dtos/validate-workflow-definition.dto.ts +3 -0
  395. package/src/entities/saved-filters.entity.ts +3 -3
  396. package/src/entities/workflow-definition.entity.ts +43 -0
  397. package/src/entities/workflow-execution-artifact.entity.ts +72 -0
  398. package/src/entities/workflow-execution-log.entity.ts +58 -0
  399. package/src/entities/workflow-execution.entity.ts +82 -0
  400. package/src/entities/workflow-secret.entity.ts +33 -0
  401. package/src/entities/workflow-step-execution.entity.ts +88 -0
  402. package/src/entities/workflow-trigger-execution.entity.ts +82 -0
  403. package/src/factories/sms.factory.ts +4 -1
  404. package/src/helpers/solid-registry.ts +21 -1
  405. package/src/index.ts +55 -0
  406. package/src/interfaces/workflow-node-handler.interface.ts +10 -0
  407. package/src/interfaces.ts +29 -0
  408. package/src/jobs/database/workflow-execution-publisher-database.service.ts +24 -0
  409. package/src/jobs/database/workflow-execution-queue-options-database.ts +9 -0
  410. package/src/jobs/database/workflow-execution-subscriber-database.service.ts +44 -0
  411. package/src/jobs/rabbitmq/workflow-execution-publisher.service.ts +24 -0
  412. package/src/jobs/rabbitmq/workflow-execution-queue-options.ts +9 -0
  413. package/src/jobs/rabbitmq/workflow-execution-subscriber.service.ts +42 -0
  414. package/src/jobs/redis/workflow-execution-publisher-redis.service.ts +24 -0
  415. package/src/jobs/redis/workflow-execution-queue-options-redis.ts +9 -0
  416. package/src/jobs/redis/workflow-execution-subscriber-redis.service.ts +42 -0
  417. package/src/repository/security-rule.repository.ts +52 -10
  418. package/src/repository/workflow-definition.repository.ts +19 -0
  419. package/src/repository/workflow-execution-artifact.repository.ts +19 -0
  420. package/src/repository/workflow-execution-log.repository.ts +19 -0
  421. package/src/repository/workflow-execution.repository.ts +19 -0
  422. package/src/repository/workflow-secret.repository.ts +19 -0
  423. package/src/repository/workflow-step-execution.repository.ts +19 -0
  424. package/src/repository/workflow-trigger-execution.repository.ts +19 -0
  425. package/src/seeders/module-metadata-seeder.service.ts +166 -4
  426. package/src/seeders/seed-data/solid-core-metadata.json +11437 -5567
  427. package/src/services/chatter-message.service.ts +5 -1
  428. package/src/services/crud-helper.service.ts +220 -22
  429. package/src/services/crud.service.ts +30 -0
  430. package/src/services/solid-introspect.service.ts +19 -0
  431. package/src/services/view-metadata.service.ts +87 -21
  432. package/src/services/workflow/nodes/for-each.node.ts +97 -0
  433. package/src/services/workflow/nodes/http-request.node.ts +624 -0
  434. package/src/services/workflow/nodes/if.node.ts +93 -0
  435. package/src/services/workflow/nodes/log-write.node.ts +232 -0
  436. package/src/services/workflow/nodes/parallel.node.ts +81 -0
  437. package/src/services/workflow/nodes/runtime-python.node.ts +571 -0
  438. package/src/services/workflow/nodes/sequential.node.ts +58 -0
  439. package/src/services/workflow/nodes/solidx-api.helpers.ts +205 -0
  440. package/src/services/workflow/nodes/solidx-crud.nodes.ts +511 -0
  441. package/src/services/workflow/nodes/solidx-login.node.ts +222 -0
  442. package/src/services/workflow/nodes/solidx-send-email.node.ts +489 -0
  443. package/src/services/workflow/nodes/solidx-send-sms.node.ts +377 -0
  444. package/src/services/workflow/nodes/switch.node.ts +125 -0
  445. package/src/services/workflow/workflow-definition-metadata-sync.service.ts +196 -0
  446. package/src/services/workflow/workflow-definition-validator.service.ts +223 -0
  447. package/src/services/workflow/workflow-execution-writer.service.ts +244 -0
  448. package/src/services/workflow/workflow-expression.service.ts +175 -0
  449. package/src/services/workflow/workflow-invocation.service.ts +39 -0
  450. package/src/services/workflow/workflow-node-registry.service.ts +141 -0
  451. package/src/services/workflow/workflow-runtime.service.ts +699 -0
  452. package/src/services/workflow/workflow-scheduled-trigger.job.ts +33 -0
  453. package/src/services/workflow-definition.service.ts +293 -0
  454. package/src/services/workflow-execution-artifact.service.ts +20 -0
  455. package/src/services/workflow-execution-log.service.ts +20 -0
  456. package/src/services/workflow-execution.service.ts +20 -0
  457. package/src/services/workflow-secret.service.ts +161 -0
  458. package/src/services/workflow-step-execution.service.ts +20 -0
  459. package/src/services/workflow-trigger-execution.service.ts +20 -0
  460. package/src/solid-core.module.ts +124 -0
  461. package/src/transformers/empty-string-to-null-transformer.ts +11 -0
  462. package/src/types/workflow-dsl.types.ts +987 -0
  463. package/src/types/workflow-execution-queue.types.ts +3 -0
@@ -0,0 +1,347 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.SolidXSendSmsNode = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const workflow_node_provider_decorator_1 = require("../../../decorators/workflow-node-provider.decorator");
15
+ const sms_factory_1 = require("../../../factories/sms.factory");
16
+ const fullWidthField = {
17
+ layout: {
18
+ width: 'full',
19
+ },
20
+ };
21
+ const jsonEditorField = {
22
+ ...fullWidthField,
23
+ editor: {
24
+ language: 'json',
25
+ },
26
+ };
27
+ let SolidXSendSmsNode = class SolidXSendSmsNode {
28
+ constructor(smsFactory) {
29
+ this.smsFactory = smsFactory;
30
+ }
31
+ async execute(context) {
32
+ const configuration = context.expression.interpolate(context.node.configuration ?? {}, context);
33
+ const mode = configuration.mode ?? 'template';
34
+ const to = this.normalizeRecipients(configuration.to);
35
+ if (!to.length) {
36
+ throw new common_1.BadRequestException('solidx.sms.send requires recipients.');
37
+ }
38
+ const shouldQueueSms = configuration.shouldQueueSms !== false;
39
+ const smsService = this.smsFactory.getSmsService(configuration.providerName);
40
+ if (!smsService) {
41
+ throw new common_1.BadRequestException('No SolidX SMS provider is configured.');
42
+ }
43
+ let response;
44
+ let body = configuration.body;
45
+ let templateName = configuration.templateName;
46
+ if (mode === 'template') {
47
+ if (!templateName) {
48
+ throw new common_1.BadRequestException('solidx.sms.send requires templateName in template mode.');
49
+ }
50
+ response = await smsService.sendSMSUsingTemplate(to.join(','), templateName, configuration.templateParams ?? {}, shouldQueueSms);
51
+ }
52
+ else {
53
+ body = configuration.body;
54
+ if (!body) {
55
+ throw new common_1.BadRequestException('solidx.sms.send requires body in raw mode.');
56
+ }
57
+ response = await smsService.sendSMS(to.join(','), body, shouldQueueSms);
58
+ }
59
+ await context.emitLog({
60
+ level: 'info',
61
+ eventType: 'node.solidx.sms.sent',
62
+ source: 'solidx.sms.send',
63
+ message: mode === 'template'
64
+ ? `SolidX SMS template "${templateName}" queued/sent to ${to.join(', ')}.`
65
+ : `SolidX SMS queued/sent to ${to.join(', ')}.`,
66
+ metadata: {
67
+ mode,
68
+ to,
69
+ shouldQueueSms,
70
+ providerName: configuration.providerName,
71
+ },
72
+ });
73
+ return {
74
+ output: {
75
+ ok: true,
76
+ mode,
77
+ to,
78
+ body,
79
+ templateName,
80
+ queued: shouldQueueSms,
81
+ providerName: configuration.providerName,
82
+ response,
83
+ },
84
+ };
85
+ }
86
+ normalizeRecipients(value) {
87
+ if (value === undefined || value === null || value === '') {
88
+ return [];
89
+ }
90
+ if (Array.isArray(value)) {
91
+ return value
92
+ .flatMap((entry) => this.normalizeRecipients(entry))
93
+ .filter(Boolean);
94
+ }
95
+ return String(value)
96
+ .split(',')
97
+ .map((entry) => entry.trim())
98
+ .filter(Boolean);
99
+ }
100
+ };
101
+ exports.SolidXSendSmsNode = SolidXSendSmsNode;
102
+ exports.SolidXSendSmsNode = SolidXSendSmsNode = __decorate([
103
+ (0, workflow_node_provider_decorator_1.WorkflowNodeProvider)({
104
+ type: 'solidx.sms.send',
105
+ kind: 'task',
106
+ version: '1.0.0',
107
+ category: 'integration',
108
+ subcategory: 'solidx',
109
+ label: 'Send SMS',
110
+ description: 'Sends an SMS using the native SolidX SMS provider and queue settings.',
111
+ tags: ['solidx', 'sms', 'notification', 'template', 'text-message'],
112
+ aliases: ['sms.send', 'text.send', 'solidx.text.send'],
113
+ configSchema: {
114
+ type: 'object',
115
+ required: ['to', 'mode'],
116
+ properties: {
117
+ mode: {
118
+ type: 'string',
119
+ enum: ['template', 'raw'],
120
+ default: 'template',
121
+ },
122
+ to: {},
123
+ body: { type: 'string' },
124
+ templateName: { type: 'string' },
125
+ templateParams: { type: 'object', default: {} },
126
+ shouldQueueSms: { type: 'boolean', default: true },
127
+ providerName: { type: 'string' },
128
+ },
129
+ },
130
+ outputSchema: {
131
+ type: 'object',
132
+ properties: {
133
+ ok: { type: 'boolean' },
134
+ mode: { type: 'string' },
135
+ to: {},
136
+ body: { type: 'string' },
137
+ templateName: { type: 'string' },
138
+ queued: { type: 'boolean' },
139
+ providerName: { type: 'string' },
140
+ response: {},
141
+ },
142
+ },
143
+ examples: [
144
+ {
145
+ key: 'template-sms',
146
+ label: 'Template SMS',
147
+ description: 'Render a SolidX SMS template and queue the message for delivery.',
148
+ language: 'yaml',
149
+ snippet: 'mode: template\nto: "{{ input.mobile }}"\ntemplateName: workflow-alert\ntemplateParams:\n name: "{{ input.name }}"\n reference: "{{ execution.executionIdentifier }}"\nshouldQueueSms: true\n',
150
+ configurationOnly: true,
151
+ },
152
+ {
153
+ key: 'raw-sms',
154
+ label: 'Raw SMS',
155
+ description: 'Send a direct SMS body. Use only with providers that support raw SMS, such as Twilio.',
156
+ language: 'yaml',
157
+ snippet: 'mode: raw\nto:\n - "+15551234567"\nbody: "Workflow {{ execution.executionIdentifier }} completed."\nshouldQueueSms: true\n',
158
+ configurationOnly: true,
159
+ },
160
+ ],
161
+ definitions: [
162
+ {
163
+ key: 'native-sms-provider',
164
+ label: 'Native SolidX SMS provider',
165
+ content: 'This task resolves the active SolidX SMS provider through SmsFactory, so Twilio, Msg91, or consuming-project providers can be selected by the existing smsProvider setting.',
166
+ },
167
+ {
168
+ key: 'template-first',
169
+ label: 'Template-first delivery',
170
+ content: 'Some SMS gateways require registered templates and do not support raw text. Template mode is therefore the default, while raw mode remains available for providers that support it.',
171
+ },
172
+ {
173
+ key: 'queueing',
174
+ label: 'Queueing',
175
+ content: 'shouldQueueSms is passed to the native provider. Providers may still queue based on system settings even when this value is false.',
176
+ },
177
+ ],
178
+ authoring: {
179
+ defaultConfiguration: {
180
+ mode: 'template',
181
+ templateParams: {},
182
+ shouldQueueSms: true,
183
+ },
184
+ configurationFields: [
185
+ {
186
+ key: 'mode',
187
+ label: 'Mode',
188
+ description: 'Send a raw SMS or render a SolidX SMS template.',
189
+ valueType: 'string',
190
+ enumValues: ['template', 'raw'],
191
+ defaultValue: 'template',
192
+ required: true,
193
+ group: 'Message',
194
+ uiSchema: fullWidthField,
195
+ },
196
+ {
197
+ key: 'to',
198
+ label: 'To',
199
+ description: 'Recipient mobile number, comma-separated list, or array. Expressions are allowed.',
200
+ valueType: 'array',
201
+ required: true,
202
+ expressionAllowed: true,
203
+ group: 'Recipients',
204
+ widgetHint: 'json-editor',
205
+ uiSchema: fullWidthField,
206
+ },
207
+ {
208
+ key: 'templateName',
209
+ label: 'Template Name',
210
+ description: 'SolidX SMS template name/user key for template mode. Expressions are allowed.',
211
+ valueType: 'string',
212
+ required: true,
213
+ expressionAllowed: true,
214
+ group: 'Template',
215
+ uiSchema: {
216
+ ...fullWidthField,
217
+ visibleWhen: {
218
+ field: 'mode',
219
+ equals: 'template',
220
+ },
221
+ },
222
+ },
223
+ {
224
+ key: 'templateParams',
225
+ label: 'Template Parameters',
226
+ description: 'JSON parameters used when rendering the SMS template. Expressions are allowed.',
227
+ valueType: 'object',
228
+ expressionAllowed: true,
229
+ group: 'Template',
230
+ widgetHint: 'json-editor',
231
+ uiSchema: {
232
+ ...jsonEditorField,
233
+ visibleWhen: {
234
+ field: 'mode',
235
+ equals: 'template',
236
+ },
237
+ },
238
+ },
239
+ {
240
+ key: 'body',
241
+ label: 'Body',
242
+ description: 'SMS body for raw mode. Expressions are allowed. Some providers require template mode instead.',
243
+ valueType: 'string',
244
+ required: true,
245
+ expressionAllowed: true,
246
+ group: 'Message',
247
+ widgetHint: 'raw-editor',
248
+ uiSchema: {
249
+ ...fullWidthField,
250
+ visibleWhen: {
251
+ field: 'mode',
252
+ equals: 'raw',
253
+ },
254
+ },
255
+ },
256
+ {
257
+ key: 'shouldQueueSms',
258
+ label: 'Queue SMS',
259
+ description: 'Use the native SolidX SMS queue when available.',
260
+ valueType: 'boolean',
261
+ defaultValue: true,
262
+ group: 'Delivery',
263
+ uiSchema: fullWidthField,
264
+ },
265
+ {
266
+ key: 'providerName',
267
+ label: 'Provider Name',
268
+ description: 'Optional registered SMS provider class name. If omitted, the smsProvider setting is used.',
269
+ valueType: 'string',
270
+ expressionAllowed: true,
271
+ group: 'Advanced',
272
+ uiSchema: fullWidthField,
273
+ },
274
+ ],
275
+ outputs: [
276
+ {
277
+ key: 'ok',
278
+ label: 'OK',
279
+ description: 'Whether the SMS provider call completed.',
280
+ valueType: 'boolean',
281
+ path: 'ok',
282
+ },
283
+ {
284
+ key: 'response',
285
+ label: 'Provider Response',
286
+ description: 'Response returned by the active native SMS provider.',
287
+ valueType: 'any',
288
+ path: 'response',
289
+ },
290
+ {
291
+ key: 'to',
292
+ label: 'To',
293
+ description: 'Resolved recipients.',
294
+ valueType: 'array',
295
+ path: 'to',
296
+ },
297
+ {
298
+ key: 'mode',
299
+ label: 'Mode',
300
+ description: 'Resolved send mode.',
301
+ valueType: 'string',
302
+ path: 'mode',
303
+ },
304
+ ],
305
+ supportsExpressions: true,
306
+ supportsRetryPolicy: true,
307
+ supportsTimeoutMs: true,
308
+ supportsOnError: true,
309
+ supportsDisableToggle: true,
310
+ supportsName: true,
311
+ supportsDescription: true,
312
+ searchableText: [
313
+ 'sms',
314
+ 'text',
315
+ 'send',
316
+ 'notification',
317
+ 'template',
318
+ 'solidx',
319
+ ],
320
+ },
321
+ runtime: {
322
+ emitsLogs: true,
323
+ emitsArtifacts: false,
324
+ deterministicOutputs: false,
325
+ executionMode: 'task',
326
+ successStatuses: ['success'],
327
+ },
328
+ documentation: {
329
+ summary: 'Sends raw or template-based SMS through the configured native SolidX SMS provider.',
330
+ },
331
+ ui: {
332
+ icon: 'si-send',
333
+ iconColor: '#0f766e',
334
+ iconBackgroundColor: '#ccfbf1',
335
+ iconBorderColor: '#99f6e4',
336
+ defaultEditorMode: 'schema',
337
+ modalSize: 'xl',
338
+ layoutHints: {
339
+ preferredPanel: 'flow',
340
+ groupOrder: ['Recipients', 'Message', 'Template', 'Delivery', 'Advanced'],
341
+ stickySummary: true,
342
+ },
343
+ },
344
+ }),
345
+ __metadata("design:paramtypes", [sms_factory_1.SmsFactory])
346
+ ], SolidXSendSmsNode);
347
+ //# sourceMappingURL=solidx-send-sms.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solidx-send-sms.node.js","sourceRoot":"","sources":["../../../../src/services/workflow/nodes/solidx-send-sms.node.ts"],"names":[],"mappings":"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","sourcesContent":["import { BadRequestException } from '@nestjs/common';\nimport { WorkflowNodeProvider } from '../../../decorators/workflow-node-provider.decorator';\nimport { SmsFactory } from '../../../factories/sms.factory';\nimport { WorkflowNodeHandler } from '../../../interfaces/workflow-node-handler.interface';\nimport {\n WorkflowNodeExecutionContext,\n WorkflowNodeHandlerResult,\n} from '../../../types/workflow-dsl.types';\n\nconst fullWidthField = {\n layout: {\n width: 'full',\n },\n};\n\nconst jsonEditorField = {\n ...fullWidthField,\n editor: {\n language: 'json',\n },\n};\n\n@WorkflowNodeProvider({\n type: 'solidx.sms.send',\n kind: 'task',\n version: '1.0.0',\n category: 'integration',\n subcategory: 'solidx',\n label: 'Send SMS',\n description:\n 'Sends an SMS using the native SolidX SMS provider and queue settings.',\n tags: ['solidx', 'sms', 'notification', 'template', 'text-message'],\n aliases: ['sms.send', 'text.send', 'solidx.text.send'],\n configSchema: {\n type: 'object',\n required: ['to', 'mode'],\n properties: {\n mode: {\n type: 'string',\n enum: ['template', 'raw'],\n default: 'template',\n },\n to: {},\n body: { type: 'string' },\n templateName: { type: 'string' },\n templateParams: { type: 'object', default: {} },\n shouldQueueSms: { type: 'boolean', default: true },\n providerName: { type: 'string' },\n },\n },\n outputSchema: {\n type: 'object',\n properties: {\n ok: { type: 'boolean' },\n mode: { type: 'string' },\n to: {},\n body: { type: 'string' },\n templateName: { type: 'string' },\n queued: { type: 'boolean' },\n providerName: { type: 'string' },\n response: {},\n },\n },\n examples: [\n {\n key: 'template-sms',\n label: 'Template SMS',\n description:\n 'Render a SolidX SMS template and queue the message for delivery.',\n language: 'yaml',\n snippet:\n 'mode: template\\nto: \"{{ input.mobile }}\"\\ntemplateName: workflow-alert\\ntemplateParams:\\n name: \"{{ input.name }}\"\\n reference: \"{{ execution.executionIdentifier }}\"\\nshouldQueueSms: true\\n',\n configurationOnly: true,\n },\n {\n key: 'raw-sms',\n label: 'Raw SMS',\n description:\n 'Send a direct SMS body. Use only with providers that support raw SMS, such as Twilio.',\n language: 'yaml',\n snippet:\n 'mode: raw\\nto:\\n - \"+15551234567\"\\nbody: \"Workflow {{ execution.executionIdentifier }} completed.\"\\nshouldQueueSms: true\\n',\n configurationOnly: true,\n },\n ],\n definitions: [\n {\n key: 'native-sms-provider',\n label: 'Native SolidX SMS provider',\n content:\n 'This task resolves the active SolidX SMS provider through SmsFactory, so Twilio, Msg91, or consuming-project providers can be selected by the existing smsProvider setting.',\n },\n {\n key: 'template-first',\n label: 'Template-first delivery',\n content:\n 'Some SMS gateways require registered templates and do not support raw text. Template mode is therefore the default, while raw mode remains available for providers that support it.',\n },\n {\n key: 'queueing',\n label: 'Queueing',\n content:\n 'shouldQueueSms is passed to the native provider. Providers may still queue based on system settings even when this value is false.',\n },\n ],\n authoring: {\n defaultConfiguration: {\n mode: 'template',\n templateParams: {},\n shouldQueueSms: true,\n },\n configurationFields: [\n {\n key: 'mode',\n label: 'Mode',\n description: 'Send a raw SMS or render a SolidX SMS template.',\n valueType: 'string',\n enumValues: ['template', 'raw'],\n defaultValue: 'template',\n required: true,\n group: 'Message',\n uiSchema: fullWidthField,\n },\n {\n key: 'to',\n label: 'To',\n description:\n 'Recipient mobile number, comma-separated list, or array. Expressions are allowed.',\n valueType: 'array',\n required: true,\n expressionAllowed: true,\n group: 'Recipients',\n widgetHint: 'json-editor',\n uiSchema: fullWidthField,\n },\n {\n key: 'templateName',\n label: 'Template Name',\n description:\n 'SolidX SMS template name/user key for template mode. Expressions are allowed.',\n valueType: 'string',\n required: true,\n expressionAllowed: true,\n group: 'Template',\n uiSchema: {\n ...fullWidthField,\n visibleWhen: {\n field: 'mode',\n equals: 'template',\n },\n },\n },\n {\n key: 'templateParams',\n label: 'Template Parameters',\n description:\n 'JSON parameters used when rendering the SMS template. Expressions are allowed.',\n valueType: 'object',\n expressionAllowed: true,\n group: 'Template',\n widgetHint: 'json-editor',\n uiSchema: {\n ...jsonEditorField,\n visibleWhen: {\n field: 'mode',\n equals: 'template',\n },\n },\n },\n {\n key: 'body',\n label: 'Body',\n description:\n 'SMS body for raw mode. Expressions are allowed. Some providers require template mode instead.',\n valueType: 'string',\n required: true,\n expressionAllowed: true,\n group: 'Message',\n widgetHint: 'raw-editor',\n uiSchema: {\n ...fullWidthField,\n visibleWhen: {\n field: 'mode',\n equals: 'raw',\n },\n },\n },\n {\n key: 'shouldQueueSms',\n label: 'Queue SMS',\n description: 'Use the native SolidX SMS queue when available.',\n valueType: 'boolean',\n defaultValue: true,\n group: 'Delivery',\n uiSchema: fullWidthField,\n },\n {\n key: 'providerName',\n label: 'Provider Name',\n description:\n 'Optional registered SMS provider class name. If omitted, the smsProvider setting is used.',\n valueType: 'string',\n expressionAllowed: true,\n group: 'Advanced',\n uiSchema: fullWidthField,\n },\n ],\n outputs: [\n {\n key: 'ok',\n label: 'OK',\n description: 'Whether the SMS provider call completed.',\n valueType: 'boolean',\n path: 'ok',\n },\n {\n key: 'response',\n label: 'Provider Response',\n description: 'Response returned by the active native SMS provider.',\n valueType: 'any',\n path: 'response',\n },\n {\n key: 'to',\n label: 'To',\n description: 'Resolved recipients.',\n valueType: 'array',\n path: 'to',\n },\n {\n key: 'mode',\n label: 'Mode',\n description: 'Resolved send mode.',\n valueType: 'string',\n path: 'mode',\n },\n ],\n supportsExpressions: true,\n supportsRetryPolicy: true,\n supportsTimeoutMs: true,\n supportsOnError: true,\n supportsDisableToggle: true,\n supportsName: true,\n supportsDescription: true,\n searchableText: [\n 'sms',\n 'text',\n 'send',\n 'notification',\n 'template',\n 'solidx',\n ],\n },\n runtime: {\n emitsLogs: true,\n emitsArtifacts: false,\n deterministicOutputs: false,\n executionMode: 'task',\n successStatuses: ['success'],\n },\n documentation: {\n summary:\n 'Sends raw or template-based SMS through the configured native SolidX SMS provider.',\n },\n ui: {\n icon: 'si-send',\n iconColor: '#0f766e',\n iconBackgroundColor: '#ccfbf1',\n iconBorderColor: '#99f6e4',\n defaultEditorMode: 'schema',\n modalSize: 'xl',\n layoutHints: {\n preferredPanel: 'flow',\n groupOrder: ['Recipients', 'Message', 'Template', 'Delivery', 'Advanced'],\n stickySummary: true,\n },\n },\n})\nexport class SolidXSendSmsNode implements WorkflowNodeHandler {\n constructor(private readonly smsFactory: SmsFactory) {}\n\n async execute(\n context: WorkflowNodeExecutionContext,\n ): Promise<WorkflowNodeHandlerResult> {\n const configuration = context.expression.interpolate(\n context.node.configuration ?? {},\n context,\n );\n\n const mode = configuration.mode ?? 'template';\n const to = this.normalizeRecipients(configuration.to);\n if (!to.length) {\n throw new BadRequestException('solidx.sms.send requires recipients.');\n }\n\n const shouldQueueSms = configuration.shouldQueueSms !== false;\n const smsService = this.smsFactory.getSmsService(configuration.providerName);\n\n if (!smsService) {\n throw new BadRequestException('No SolidX SMS provider is configured.');\n }\n\n let response: any;\n let body = configuration.body;\n let templateName = configuration.templateName;\n\n if (mode === 'template') {\n if (!templateName) {\n throw new BadRequestException(\n 'solidx.sms.send requires templateName in template mode.',\n );\n }\n\n response = await smsService.sendSMSUsingTemplate(\n to.join(','),\n templateName,\n configuration.templateParams ?? {},\n shouldQueueSms,\n );\n } else {\n body = configuration.body;\n if (!body) {\n throw new BadRequestException(\n 'solidx.sms.send requires body in raw mode.',\n );\n }\n\n response = await smsService.sendSMS(to.join(','), body, shouldQueueSms);\n }\n\n await context.emitLog({\n level: 'info',\n eventType: 'node.solidx.sms.sent',\n source: 'solidx.sms.send',\n message:\n mode === 'template'\n ? `SolidX SMS template \"${templateName}\" queued/sent to ${to.join(', ')}.`\n : `SolidX SMS queued/sent to ${to.join(', ')}.`,\n metadata: {\n mode,\n to,\n shouldQueueSms,\n providerName: configuration.providerName,\n },\n });\n\n return {\n output: {\n ok: true,\n mode,\n to,\n body,\n templateName,\n queued: shouldQueueSms,\n providerName: configuration.providerName,\n response,\n },\n };\n }\n\n private normalizeRecipients(value: any): string[] {\n if (value === undefined || value === null || value === '') {\n return [];\n }\n\n if (Array.isArray(value)) {\n return value\n .flatMap((entry) => this.normalizeRecipients(entry))\n .filter(Boolean);\n }\n\n return String(value)\n .split(',')\n .map((entry) => entry.trim())\n .filter(Boolean);\n }\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import { WorkflowNodeHandler } from '../../../interfaces/workflow-node-handler.interface';
2
+ import { WorkflowNodeExecutionContext, WorkflowNodeHandlerResult } from '../../../types/workflow-dsl.types';
3
+ export declare class SwitchNode implements WorkflowNodeHandler {
4
+ execute(context: WorkflowNodeExecutionContext): Promise<WorkflowNodeHandlerResult>;
5
+ private resolveCaseKey;
6
+ }
7
+ //# sourceMappingURL=switch.node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switch.node.d.ts","sourceRoot":"","sources":["../../../../src/services/workflow/nodes/switch.node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qDAAqD,CAAC;AAC1F,OAAO,EAEL,4BAA4B,EAC5B,yBAAyB,EAC1B,MAAM,mCAAmC,CAAC;AAE3C,qBA4Da,UAAW,YAAW,mBAAmB;IAC9C,OAAO,CACX,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,yBAAyB,CAAC;IAmCrC,OAAO,CAAC,cAAc;CAkBvB"}
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.SwitchNode = void 0;
10
+ const workflow_node_provider_decorator_1 = require("../../../decorators/workflow-node-provider.decorator");
11
+ let SwitchNode = class SwitchNode {
12
+ async execute(context) {
13
+ const configuration = context.node.configuration ?? {};
14
+ const resolvedValue = context.expression.interpolate(configuration.value, context);
15
+ const caseKey = this.resolveCaseKey(resolvedValue, context.node.cases ?? {});
16
+ const selectedNodes = caseKey
17
+ ? context.node.cases?.[caseKey] ?? []
18
+ : context.node.defaults ?? [];
19
+ await context.emitLog({
20
+ level: 'info',
21
+ eventType: 'node.switch.evaluated',
22
+ source: 'switch',
23
+ message: caseKey
24
+ ? `Switch node "${context.node.id}" matched case "${caseKey}".`
25
+ : `Switch node "${context.node.id}" did not match a case and will run defaults.`,
26
+ context: {
27
+ value: resolvedValue,
28
+ caseKey,
29
+ },
30
+ });
31
+ await context.runNodes(selectedNodes);
32
+ return {
33
+ output: {
34
+ value: resolvedValue,
35
+ case: caseKey,
36
+ matched: Boolean(caseKey),
37
+ },
38
+ };
39
+ }
40
+ resolveCaseKey(value, cases) {
41
+ const exactKey = String(value);
42
+ if (Object.prototype.hasOwnProperty.call(cases, exactKey)) {
43
+ return exactKey;
44
+ }
45
+ if (typeof value === 'boolean') {
46
+ const booleanKey = value ? 'true' : 'false';
47
+ if (Object.prototype.hasOwnProperty.call(cases, booleanKey)) {
48
+ return booleanKey;
49
+ }
50
+ }
51
+ return undefined;
52
+ }
53
+ };
54
+ exports.SwitchNode = SwitchNode;
55
+ exports.SwitchNode = SwitchNode = __decorate([
56
+ (0, workflow_node_provider_decorator_1.WorkflowNodeProvider)({
57
+ type: 'switch',
58
+ kind: 'control',
59
+ category: 'control-flow',
60
+ label: 'Switch',
61
+ description: 'Runs one case sequence based on a contextual value, with an optional default sequence.',
62
+ tags: ['switch', 'case', 'branching', 'condition'],
63
+ authoring: {
64
+ defaultConfiguration: {
65
+ value: '{{ input.value }}',
66
+ },
67
+ configurationFields: [
68
+ {
69
+ key: 'value',
70
+ label: 'Value',
71
+ description: 'Expression or literal value used to choose the matching case key.',
72
+ valueType: 'expression',
73
+ required: true,
74
+ expressionAllowed: true,
75
+ widgetHint: 'textarea',
76
+ group: 'General',
77
+ },
78
+ ],
79
+ childSlots: [
80
+ {
81
+ key: 'cases',
82
+ label: 'Cases',
83
+ description: 'Named case sequences. The matching case key is executed.',
84
+ kind: 'case-collection',
85
+ required: true,
86
+ minItems: 1,
87
+ },
88
+ {
89
+ key: 'defaults',
90
+ label: 'Default',
91
+ description: 'Fallback sequence that runs when no case key matches the resolved value.',
92
+ kind: 'sequence',
93
+ },
94
+ ],
95
+ supportsDescription: true,
96
+ supportsName: true,
97
+ },
98
+ documentation: {
99
+ summary: 'Evaluates a contextual value and runs the child node sequence under the matching case key. If no case matches, the optional default sequence runs.',
100
+ },
101
+ ui: {
102
+ icon: 'si-git-branch',
103
+ iconColor: '#db2777',
104
+ iconBackgroundColor: '#fce7f3',
105
+ iconBorderColor: '#f9a8d4',
106
+ modalSize: 'lg',
107
+ layoutHints: {
108
+ groupOrder: ['General'],
109
+ },
110
+ },
111
+ })
112
+ ], SwitchNode);
113
+ //# sourceMappingURL=switch.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switch.node.js","sourceRoot":"","sources":["../../../../src/services/workflow/nodes/switch.node.ts"],"names":[],"mappings":"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","sourcesContent":["import { WorkflowNodeProvider } from '../../../decorators/workflow-node-provider.decorator';\nimport { WorkflowNodeHandler } from '../../../interfaces/workflow-node-handler.interface';\nimport {\n WorkflowNodeDefinition,\n WorkflowNodeExecutionContext,\n WorkflowNodeHandlerResult,\n} from '../../../types/workflow-dsl.types';\n\n@WorkflowNodeProvider({\n type: 'switch',\n kind: 'control',\n category: 'control-flow',\n label: 'Switch',\n description:\n 'Runs one case sequence based on a contextual value, with an optional default sequence.',\n tags: ['switch', 'case', 'branching', 'condition'],\n authoring: {\n defaultConfiguration: {\n value: '{{ input.value }}',\n },\n configurationFields: [\n {\n key: 'value',\n label: 'Value',\n description:\n 'Expression or literal value used to choose the matching case key.',\n valueType: 'expression',\n required: true,\n expressionAllowed: true,\n widgetHint: 'textarea',\n group: 'General',\n },\n ],\n childSlots: [\n {\n key: 'cases',\n label: 'Cases',\n description: 'Named case sequences. The matching case key is executed.',\n kind: 'case-collection',\n required: true,\n minItems: 1,\n },\n {\n key: 'defaults',\n label: 'Default',\n description:\n 'Fallback sequence that runs when no case key matches the resolved value.',\n kind: 'sequence',\n },\n ],\n supportsDescription: true,\n supportsName: true,\n },\n documentation: {\n summary:\n 'Evaluates a contextual value and runs the child node sequence under the matching case key. If no case matches, the optional default sequence runs.',\n },\n ui: {\n icon: 'si-git-branch',\n iconColor: '#db2777',\n iconBackgroundColor: '#fce7f3',\n iconBorderColor: '#f9a8d4',\n modalSize: 'lg',\n layoutHints: {\n groupOrder: ['General'],\n },\n },\n})\nexport class SwitchNode implements WorkflowNodeHandler {\n async execute(\n context: WorkflowNodeExecutionContext,\n ): Promise<WorkflowNodeHandlerResult> {\n const configuration = context.node.configuration ?? {};\n const resolvedValue = context.expression.interpolate(\n configuration.value,\n context,\n );\n const caseKey = this.resolveCaseKey(resolvedValue, context.node.cases ?? {});\n const selectedNodes = caseKey\n ? context.node.cases?.[caseKey] ?? []\n : context.node.defaults ?? [];\n\n await context.emitLog({\n level: 'info',\n eventType: 'node.switch.evaluated',\n source: 'switch',\n message: caseKey\n ? `Switch node \"${context.node.id}\" matched case \"${caseKey}\".`\n : `Switch node \"${context.node.id}\" did not match a case and will run defaults.`,\n context: {\n value: resolvedValue,\n caseKey,\n },\n });\n\n await context.runNodes(selectedNodes);\n\n return {\n output: {\n value: resolvedValue,\n case: caseKey,\n matched: Boolean(caseKey),\n },\n };\n }\n\n private resolveCaseKey(\n value: any,\n cases: Record<string, WorkflowNodeDefinition[]>,\n ): string | undefined {\n const exactKey = String(value);\n if (Object.prototype.hasOwnProperty.call(cases, exactKey)) {\n return exactKey;\n }\n\n if (typeof value === 'boolean') {\n const booleanKey = value ? 'true' : 'false';\n if (Object.prototype.hasOwnProperty.call(cases, booleanKey)) {\n return booleanKey;\n }\n }\n\n return undefined;\n }\n}\n"]}
@@ -0,0 +1,19 @@
1
+ import { WorkflowDefinition } from '../../entities/workflow-definition.entity';
2
+ import { ModuleMetadataHelperService } from '../../helpers/module-metadata-helper.service';
3
+ export declare class WorkflowDefinitionMetadataSyncService {
4
+ private readonly moduleMetadataHelperService;
5
+ private readonly logger;
6
+ constructor(moduleMetadataHelperService: ModuleMetadataHelperService);
7
+ upsertWorkflowDefinition(workflowDefinition: WorkflowDefinition, previousWorkflowDefinition?: WorkflowDefinition | null): Promise<void>;
8
+ removeWorkflowDefinition(workflowDefinition: WorkflowDefinition): Promise<void>;
9
+ private getExistingMetadataFilePath;
10
+ private toMetadataEntry;
11
+ private assignIfPresent;
12
+ private getWorkflowYamlRelativePath;
13
+ private safeWorkflowFileName;
14
+ private resolveWorkflowYamlReference;
15
+ private removeYamlFile;
16
+ private writeMetadataFile;
17
+ private withTrailingNewline;
18
+ }
19
+ //# sourceMappingURL=workflow-definition-metadata-sync.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-definition-metadata-sync.service.d.ts","sourceRoot":"","sources":["../../../src/services/workflow/workflow-definition-metadata-sync.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AAczF,qBACa,qCAAqC;IAI9C,OAAO,CAAC,QAAQ,CAAC,2BAA2B;IAH9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0D;gBAG9D,2BAA2B,EAAE,2BAA2B;IAGrE,wBAAwB,CAC5B,kBAAkB,EAAE,kBAAkB,EACtC,0BAA0B,CAAC,EAAE,kBAAkB,GAAG,IAAI,GACrD,OAAO,CAAC,IAAI,CAAC;IAoDV,wBAAwB,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;YAoCvE,2BAA2B;IAWzC,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,2BAA2B;IAInC,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,4BAA4B;YAWtB,cAAc;YAUd,iBAAiB;IAI/B,OAAO,CAAC,mBAAmB;CAG5B"}