@nocobase/plugin-workflow 0.11.1-alpha.5 → 0.12.0-alpha.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 (537) hide show
  1. package/client.d.ts +2 -3
  2. package/client.js +1 -1
  3. package/dist/client/index.js +7802 -0
  4. package/{lib → dist}/client/nodes/aggregate.d.ts +1 -5
  5. package/{lib → dist}/client/nodes/create.d.ts +1 -2
  6. package/{lib → dist}/client/nodes/destroy.d.ts +1 -1
  7. package/{lib → dist}/client/nodes/query.d.ts +1 -2
  8. package/{lib → dist}/client/nodes/request.d.ts +1 -2
  9. package/{lib → dist}/client/nodes/update.d.ts +1 -1
  10. package/{lib → dist}/client/schemas/collection.d.ts +1 -2
  11. package/{lib → dist}/client/triggers/collection.d.ts +6 -7
  12. package/{lib → dist}/index.d.ts +1 -0
  13. package/dist/index.js +18 -0
  14. package/dist/locale/en-US.js +133 -0
  15. package/{lib → dist}/locale/es-ES.js +51 -54
  16. package/dist/locale/fr-FR.js +133 -0
  17. package/dist/locale/ja-JP.js +91 -0
  18. package/dist/locale/pt-BR.js +133 -0
  19. package/dist/locale/ru-RU.js +91 -0
  20. package/dist/locale/tr-TR.js +91 -0
  21. package/dist/locale/zh-CN.js +216 -0
  22. package/dist/node_modules/cron-parser/.eslintrc.json +15 -0
  23. package/dist/node_modules/cron-parser/.travis.yml +7 -0
  24. package/dist/node_modules/cron-parser/LICENSE +21 -0
  25. package/dist/node_modules/cron-parser/component.json +11 -0
  26. package/dist/node_modules/cron-parser/index.d.ts +1 -0
  27. package/dist/node_modules/cron-parser/lib/date.js +252 -0
  28. package/dist/node_modules/cron-parser/lib/expression.js +983 -0
  29. package/dist/node_modules/cron-parser/lib/field_compactor.js +70 -0
  30. package/dist/node_modules/cron-parser/lib/field_stringify.js +38 -0
  31. package/dist/node_modules/cron-parser/lib/parser.js +1 -0
  32. package/dist/node_modules/cron-parser/node_modules/luxon/build/amd/luxon.js +8489 -0
  33. package/dist/node_modules/cron-parser/node_modules/luxon/build/cjs-browser/luxon.js +8487 -0
  34. package/dist/node_modules/cron-parser/node_modules/luxon/build/global/luxon.js +8490 -0
  35. package/dist/node_modules/cron-parser/node_modules/luxon/build/global/luxon.min.js +1 -0
  36. package/dist/node_modules/cron-parser/node_modules/luxon/build/node/luxon.js +7522 -0
  37. package/dist/node_modules/cron-parser/node_modules/luxon/package.json +96 -0
  38. package/dist/node_modules/cron-parser/node_modules/luxon/src/datetime.js +2169 -0
  39. package/dist/node_modules/cron-parser/node_modules/luxon/src/duration.js +880 -0
  40. package/dist/node_modules/cron-parser/node_modules/luxon/src/errors.js +61 -0
  41. package/dist/node_modules/cron-parser/node_modules/luxon/src/impl/conversions.js +157 -0
  42. package/dist/node_modules/cron-parser/node_modules/luxon/src/impl/diff.js +80 -0
  43. package/dist/node_modules/cron-parser/node_modules/luxon/src/impl/digits.js +76 -0
  44. package/dist/node_modules/cron-parser/node_modules/luxon/src/impl/english.js +233 -0
  45. package/dist/node_modules/cron-parser/node_modules/luxon/src/impl/formats.js +191 -0
  46. package/dist/node_modules/cron-parser/node_modules/luxon/src/impl/formatter.js +386 -0
  47. package/dist/node_modules/cron-parser/node_modules/luxon/src/impl/invalid.js +14 -0
  48. package/dist/node_modules/cron-parser/node_modules/luxon/src/impl/locale.js +482 -0
  49. package/dist/node_modules/cron-parser/node_modules/luxon/src/impl/regexParser.js +335 -0
  50. package/dist/node_modules/cron-parser/node_modules/luxon/src/impl/tokenParser.js +424 -0
  51. package/dist/node_modules/cron-parser/node_modules/luxon/src/impl/util.js +292 -0
  52. package/dist/node_modules/cron-parser/node_modules/luxon/src/impl/zoneUtil.js +36 -0
  53. package/dist/node_modules/cron-parser/node_modules/luxon/src/info.js +193 -0
  54. package/dist/node_modules/cron-parser/node_modules/luxon/src/interval.js +602 -0
  55. package/dist/node_modules/cron-parser/node_modules/luxon/src/luxon.js +26 -0
  56. package/dist/node_modules/cron-parser/node_modules/luxon/src/luxonFilled.js +13 -0
  57. package/dist/node_modules/cron-parser/node_modules/luxon/src/settings.js +137 -0
  58. package/dist/node_modules/cron-parser/node_modules/luxon/src/zone.js +88 -0
  59. package/dist/node_modules/cron-parser/node_modules/luxon/src/zones/IANAZone.js +191 -0
  60. package/dist/node_modules/cron-parser/node_modules/luxon/src/zones/fixedOffsetZone.js +94 -0
  61. package/dist/node_modules/cron-parser/node_modules/luxon/src/zones/invalidZone.js +53 -0
  62. package/dist/node_modules/cron-parser/node_modules/luxon/src/zones/localZone.js +63 -0
  63. package/dist/node_modules/cron-parser/package.json +1 -0
  64. package/dist/node_modules/cron-parser/test/31_of_month.js +17 -0
  65. package/dist/node_modules/cron-parser/test/bug.js +29 -0
  66. package/dist/node_modules/cron-parser/test/crondate.js +16 -0
  67. package/dist/node_modules/cron-parser/test/crontab.example +7 -0
  68. package/dist/node_modules/cron-parser/test/empty_around_comma.js +22 -0
  69. package/dist/node_modules/cron-parser/test/expression.js +1489 -0
  70. package/dist/node_modules/cron-parser/test/field_compactor.js +250 -0
  71. package/dist/node_modules/cron-parser/test/field_stringify.js +84 -0
  72. package/dist/node_modules/cron-parser/test/fields.js +32 -0
  73. package/dist/node_modules/cron-parser/test/increment_on_first_iteration.js +22 -0
  74. package/dist/node_modules/cron-parser/test/index-ts3.test-d.ts +133 -0
  75. package/dist/node_modules/cron-parser/test/index.test-d.ts +138 -0
  76. package/dist/node_modules/cron-parser/test/leap_year.js +17 -0
  77. package/dist/node_modules/cron-parser/test/parser.js +46 -0
  78. package/dist/node_modules/cron-parser/test/parser_crondate_formats.js +145 -0
  79. package/dist/node_modules/cron-parser/test/parser_day_of_month.js +169 -0
  80. package/dist/node_modules/cron-parser/test/prev_date.js +32 -0
  81. package/dist/node_modules/cron-parser/test/stringify.js +402 -0
  82. package/dist/node_modules/cron-parser/test/timezone.js +422 -0
  83. package/dist/node_modules/cron-parser/types/common.d.ts +131 -0
  84. package/dist/node_modules/cron-parser/types/index.d.ts +45 -0
  85. package/dist/node_modules/cron-parser/types/ts3/index.d.ts +28 -0
  86. package/dist/node_modules/lru-cache/index-cjs.d.ts +7 -0
  87. package/dist/node_modules/lru-cache/index-cjs.js +1 -0
  88. package/dist/node_modules/lru-cache/index.d.ts +807 -0
  89. package/dist/node_modules/lru-cache/index.js +1334 -0
  90. package/dist/node_modules/lru-cache/index.min.js +2 -0
  91. package/dist/node_modules/lru-cache/package.json +1 -0
  92. package/dist/server/Plugin.js +297 -0
  93. package/{src/server/Processor.ts → dist/server/Processor.js} +80 -147
  94. package/dist/server/actions/index.js +49 -0
  95. package/{src/server/actions/nodes.ts → dist/server/actions/nodes.js} +55 -81
  96. package/{src/server/actions/workflows.ts → dist/server/actions/workflows.js} +60 -72
  97. package/dist/server/collections/executions.js +37 -0
  98. package/dist/server/collections/flow_nodes.js +56 -0
  99. package/dist/server/collections/jobs.js +33 -0
  100. package/dist/server/collections/workflows.js +90 -0
  101. package/{lib → dist}/server/constants.js +5 -8
  102. package/dist/server/fields/expression-field.js +11 -0
  103. package/dist/server/fields/index.js +11 -0
  104. package/dist/server/functions/index.js +13 -0
  105. package/dist/server/index.js +41 -0
  106. package/dist/server/instructions/aggregate.js +37 -0
  107. package/dist/server/instructions/calculation.js +34 -0
  108. package/dist/server/instructions/condition.js +123 -0
  109. package/{src/server/instructions/create.ts → dist/server/instructions/create.js} +17 -17
  110. package/dist/server/instructions/delay.js +87 -0
  111. package/dist/server/instructions/destroy.js +24 -0
  112. package/dist/server/instructions/index.js +40 -0
  113. package/{src/server/instructions/loop.ts → dist/server/instructions/loop.js} +21 -43
  114. package/{src/server/instructions/manual/actions.ts → dist/server/instructions/manual/actions.js} +18 -44
  115. package/dist/server/instructions/manual/collecions/jobs.js +21 -0
  116. package/dist/server/instructions/manual/collecions/users.js +19 -0
  117. package/dist/server/instructions/manual/collecions/users_jobs.js +52 -0
  118. package/{src/server/instructions/manual/forms/create.ts → dist/server/instructions/manual/forms/create.js} +8 -8
  119. package/dist/server/instructions/manual/forms/index.js +16 -0
  120. package/{src/server/instructions/manual/forms/update.ts → dist/server/instructions/manual/forms/update.js} +8 -8
  121. package/dist/server/instructions/manual/index.js +160 -0
  122. package/dist/server/instructions/parallel.js +105 -0
  123. package/dist/server/instructions/query.js +36 -0
  124. package/dist/server/instructions/request.js +69 -0
  125. package/dist/server/instructions/sql.js +26 -0
  126. package/dist/server/instructions/update.js +24 -0
  127. package/{src/server/migrations/20221129153547-calculation-variables.ts → dist/server/migrations/20221129153547-calculation-variables.js} +20 -19
  128. package/dist/server/migrations/20230221032941-change-request-body-type.js +71 -0
  129. package/dist/server/migrations/20230221071831-calculation-expression.js +94 -0
  130. package/dist/server/migrations/20230221121203-condition-calculation.js +41 -0
  131. package/dist/server/migrations/20230221162902-jsonb-to-json.js +52 -0
  132. package/dist/server/migrations/20230411034722-manual-multi-form.js +252 -0
  133. package/dist/server/migrations/20230612021134-manual-collection-block.js +126 -0
  134. package/dist/server/migrations/20230710115902-manual-action-values.js +74 -0
  135. package/{src/server/triggers/collection.ts → dist/server/triggers/collection.js} +34 -64
  136. package/dist/server/triggers/index.js +27 -0
  137. package/{src/server/triggers/schedule.ts → dist/server/triggers/schedule.js} +108 -220
  138. package/dist/server/types/Execution.js +8 -0
  139. package/dist/server/types/FlowNode.js +8 -0
  140. package/dist/server/types/Job.js +8 -0
  141. package/dist/server/types/Workflow.js +8 -0
  142. package/dist/server/types/index.js +2 -0
  143. package/{lib → dist}/server/utils.js +6 -8
  144. package/package.json +26 -37
  145. package/server.d.ts +2 -3
  146. package/server.js +1 -1
  147. package/lib/client/AddButton.js +0 -161
  148. package/lib/client/Branch.js +0 -50
  149. package/lib/client/CanvasContent.js +0 -51
  150. package/lib/client/ExecutionCanvas.js +0 -218
  151. package/lib/client/ExecutionLink.js +0 -48
  152. package/lib/client/ExecutionPage.js +0 -68
  153. package/lib/client/ExecutionResourceProvider.js +0 -48
  154. package/lib/client/FlowContext.js +0 -21
  155. package/lib/client/WorkflowCanvas.js +0 -300
  156. package/lib/client/WorkflowLink.js +0 -48
  157. package/lib/client/WorkflowPage.js +0 -70
  158. package/lib/client/WorkflowProvider.js +0 -100
  159. package/lib/client/components/CollectionBlockInitializer.js +0 -103
  160. package/lib/client/components/CollectionFieldset.js +0 -198
  161. package/lib/client/components/Duration.js +0 -72
  162. package/lib/client/components/DynamicExpression.js +0 -117
  163. package/lib/client/components/FieldsSelect.js +0 -72
  164. package/lib/client/components/FilterDynamicComponent.js +0 -34
  165. package/lib/client/components/NodeDescription.js +0 -73
  166. package/lib/client/components/NullRender.js +0 -9
  167. package/lib/client/components/OpenDrawer.js +0 -68
  168. package/lib/client/components/RadioWithTooltip.js +0 -65
  169. package/lib/client/components/ValueBlock.js +0 -103
  170. package/lib/client/components/renderEngineReference.js +0 -49
  171. package/lib/client/constants.js +0 -126
  172. package/lib/client/index.js +0 -121
  173. package/lib/client/interfaces/expression.js +0 -38
  174. package/lib/client/locale/index.js +0 -42
  175. package/lib/client/nodes/aggregate.js +0 -353
  176. package/lib/client/nodes/calculation.js +0 -292
  177. package/lib/client/nodes/condition.js +0 -531
  178. package/lib/client/nodes/create.js +0 -110
  179. package/lib/client/nodes/delay.js +0 -47
  180. package/lib/client/nodes/destroy.js +0 -49
  181. package/lib/client/nodes/index.js +0 -550
  182. package/lib/client/nodes/loop.js +0 -171
  183. package/lib/client/nodes/manual/AssigneesSelect.js +0 -56
  184. package/lib/client/nodes/manual/DetailsBlockProvider.js +0 -106
  185. package/lib/client/nodes/manual/FormBlockInitializer.js +0 -107
  186. package/lib/client/nodes/manual/FormBlockProvider.js +0 -113
  187. package/lib/client/nodes/manual/ModeConfig.js +0 -126
  188. package/lib/client/nodes/manual/SchemaConfig.js +0 -468
  189. package/lib/client/nodes/manual/WorkflowTodo.js +0 -642
  190. package/lib/client/nodes/manual/WorkflowTodoBlockInitializer.js +0 -60
  191. package/lib/client/nodes/manual/forms/create.js +0 -111
  192. package/lib/client/nodes/manual/forms/custom.js +0 -428
  193. package/lib/client/nodes/manual/forms/update.js +0 -168
  194. package/lib/client/nodes/manual/index.js +0 -168
  195. package/lib/client/nodes/manual/utils.js +0 -31
  196. package/lib/client/nodes/parallel.js +0 -162
  197. package/lib/client/nodes/query.js +0 -112
  198. package/lib/client/nodes/request.js +0 -225
  199. package/lib/client/nodes/sql.js +0 -61
  200. package/lib/client/nodes/update.js +0 -127
  201. package/lib/client/schemas/collection.js +0 -93
  202. package/lib/client/schemas/executions.js +0 -190
  203. package/lib/client/schemas/workflows.js +0 -397
  204. package/lib/client/style.js +0 -350
  205. package/lib/client/triggers/collection.js +0 -188
  206. package/lib/client/triggers/index.js +0 -356
  207. package/lib/client/triggers/schedule/EndsByField.js +0 -71
  208. package/lib/client/triggers/schedule/OnField.js +0 -117
  209. package/lib/client/triggers/schedule/RepeatField.js +0 -155
  210. package/lib/client/triggers/schedule/ScheduleConfig.js +0 -251
  211. package/lib/client/triggers/schedule/constants.js +0 -11
  212. package/lib/client/triggers/schedule/index.js +0 -101
  213. package/lib/client/triggers/schedule/locale/Cron.zh-CN.js +0 -48
  214. package/lib/client/utils.js +0 -59
  215. package/lib/client/variable.js +0 -319
  216. package/lib/index.js +0 -13
  217. package/lib/locale/en-US.js +0 -136
  218. package/lib/locale/fr-FR.js +0 -136
  219. package/lib/locale/ja-JP.js +0 -94
  220. package/lib/locale/pt-BR.js +0 -136
  221. package/lib/locale/ru-RU.js +0 -94
  222. package/lib/locale/tr-TR.js +0 -94
  223. package/lib/locale/zh-CN.js +0 -219
  224. package/lib/server/Plugin.js +0 -382
  225. package/lib/server/Processor.js +0 -394
  226. package/lib/server/actions/index.js +0 -30
  227. package/lib/server/actions/nodes.js +0 -269
  228. package/lib/server/actions/workflows.js +0 -273
  229. package/lib/server/collections/executions.js +0 -33
  230. package/lib/server/collections/flow_nodes.js +0 -53
  231. package/lib/server/collections/jobs.js +0 -30
  232. package/lib/server/collections/workflows.js +0 -76
  233. package/lib/server/fields/expression-field.js +0 -19
  234. package/lib/server/fields/index.js +0 -12
  235. package/lib/server/functions/index.js +0 -26
  236. package/lib/server/index.js +0 -55
  237. package/lib/server/instructions/aggregate.js +0 -57
  238. package/lib/server/instructions/calculation.js +0 -59
  239. package/lib/server/instructions/condition.js +0 -150
  240. package/lib/server/instructions/create.js +0 -60
  241. package/lib/server/instructions/delay.js +0 -118
  242. package/lib/server/instructions/destroy.js +0 -37
  243. package/lib/server/instructions/index.js +0 -44
  244. package/lib/server/instructions/loop.js +0 -107
  245. package/lib/server/instructions/manual/actions.js +0 -99
  246. package/lib/server/instructions/manual/collecions/jobs.js +0 -21
  247. package/lib/server/instructions/manual/collecions/users.js +0 -19
  248. package/lib/server/instructions/manual/collecions/users_jobs.js +0 -46
  249. package/lib/server/instructions/manual/forms/create.js +0 -52
  250. package/lib/server/instructions/manual/forms/index.js +0 -15
  251. package/lib/server/instructions/manual/forms/update.js +0 -53
  252. package/lib/server/instructions/manual/index.js +0 -174
  253. package/lib/server/instructions/parallel.js +0 -128
  254. package/lib/server/instructions/query.js +0 -53
  255. package/lib/server/instructions/request.js +0 -99
  256. package/lib/server/instructions/sql.js +0 -34
  257. package/lib/server/instructions/update.js +0 -38
  258. package/lib/server/migrations/20221129153547-calculation-variables.js +0 -92
  259. package/lib/server/migrations/20230221032941-change-request-body-type.js +0 -90
  260. package/lib/server/migrations/20230221071831-calculation-expression.js +0 -111
  261. package/lib/server/migrations/20230221121203-condition-calculation.js +0 -103
  262. package/lib/server/migrations/20230221162902-jsonb-to-json.js +0 -64
  263. package/lib/server/migrations/20230411034722-manual-multi-form.js +0 -297
  264. package/lib/server/migrations/20230612021134-manual-collection-block.js +0 -155
  265. package/lib/server/migrations/20230710115902-manual-action-values.js +0 -97
  266. package/lib/server/triggers/collection.js +0 -175
  267. package/lib/server/triggers/index.js +0 -46
  268. package/lib/server/triggers/schedule.js +0 -582
  269. package/lib/server/types/Execution.js +0 -15
  270. package/lib/server/types/FlowNode.js +0 -15
  271. package/lib/server/types/Job.js +0 -15
  272. package/lib/server/types/Workflow.js +0 -15
  273. package/lib/server/types/index.js +0 -5
  274. package/src/client/AddButton.tsx +0 -111
  275. package/src/client/Branch.tsx +0 -37
  276. package/src/client/CanvasContent.tsx +0 -25
  277. package/src/client/ExecutionCanvas.tsx +0 -166
  278. package/src/client/ExecutionLink.tsx +0 -16
  279. package/src/client/ExecutionPage.tsx +0 -45
  280. package/src/client/ExecutionResourceProvider.tsx +0 -21
  281. package/src/client/FlowContext.ts +0 -7
  282. package/src/client/WorkflowCanvas.tsx +0 -221
  283. package/src/client/WorkflowLink.tsx +0 -16
  284. package/src/client/WorkflowPage.tsx +0 -52
  285. package/src/client/WorkflowProvider.tsx +0 -84
  286. package/src/client/components/CollectionBlockInitializer.tsx +0 -71
  287. package/src/client/components/CollectionFieldset.tsx +0 -152
  288. package/src/client/components/Duration.tsx +0 -45
  289. package/src/client/components/DynamicExpression.tsx +0 -57
  290. package/src/client/components/FieldsSelect.tsx +0 -32
  291. package/src/client/components/FilterDynamicComponent.tsx +0 -15
  292. package/src/client/components/NodeDescription.tsx +0 -51
  293. package/src/client/components/NullRender.tsx +0 -3
  294. package/src/client/components/OpenDrawer.tsx +0 -24
  295. package/src/client/components/RadioWithTooltip.tsx +0 -38
  296. package/src/client/components/ValueBlock.tsx +0 -67
  297. package/src/client/components/renderEngineReference.tsx +0 -30
  298. package/src/client/constants.tsx +0 -91
  299. package/src/client/index.tsx +0 -51
  300. package/src/client/interfaces/expression.tsx +0 -25
  301. package/src/client/locale/index.ts +0 -18
  302. package/src/client/nodes/aggregate.tsx +0 -327
  303. package/src/client/nodes/calculation.tsx +0 -216
  304. package/src/client/nodes/condition.tsx +0 -463
  305. package/src/client/nodes/create.tsx +0 -85
  306. package/src/client/nodes/delay.tsx +0 -37
  307. package/src/client/nodes/destroy.tsx +0 -34
  308. package/src/client/nodes/index.tsx +0 -500
  309. package/src/client/nodes/loop.tsx +0 -144
  310. package/src/client/nodes/manual/AssigneesSelect.tsx +0 -33
  311. package/src/client/nodes/manual/DetailsBlockProvider.tsx +0 -80
  312. package/src/client/nodes/manual/FormBlockInitializer.tsx +0 -69
  313. package/src/client/nodes/manual/FormBlockProvider.tsx +0 -75
  314. package/src/client/nodes/manual/ModeConfig.tsx +0 -84
  315. package/src/client/nodes/manual/SchemaConfig.tsx +0 -509
  316. package/src/client/nodes/manual/WorkflowTodo.tsx +0 -607
  317. package/src/client/nodes/manual/WorkflowTodoBlockInitializer.tsx +0 -28
  318. package/src/client/nodes/manual/forms/create.tsx +0 -92
  319. package/src/client/nodes/manual/forms/custom.tsx +0 -392
  320. package/src/client/nodes/manual/forms/update.tsx +0 -134
  321. package/src/client/nodes/manual/index.tsx +0 -162
  322. package/src/client/nodes/manual/utils.ts +0 -28
  323. package/src/client/nodes/parallel.tsx +0 -138
  324. package/src/client/nodes/query.tsx +0 -88
  325. package/src/client/nodes/request.tsx +0 -185
  326. package/src/client/nodes/sql.tsx +0 -37
  327. package/src/client/nodes/update.tsx +0 -100
  328. package/src/client/schemas/collection.ts +0 -75
  329. package/src/client/schemas/executions.tsx +0 -169
  330. package/src/client/schemas/workflows.ts +0 -364
  331. package/src/client/style.tsx +0 -350
  332. package/src/client/triggers/collection.tsx +0 -190
  333. package/src/client/triggers/index.tsx +0 -311
  334. package/src/client/triggers/schedule/EndsByField.tsx +0 -40
  335. package/src/client/triggers/schedule/OnField.tsx +0 -64
  336. package/src/client/triggers/schedule/RepeatField.tsx +0 -116
  337. package/src/client/triggers/schedule/ScheduleConfig.tsx +0 -227
  338. package/src/client/triggers/schedule/constants.ts +0 -4
  339. package/src/client/triggers/schedule/index.tsx +0 -78
  340. package/src/client/triggers/schedule/locale/Cron.zh-CN.ts +0 -79
  341. package/src/client/utils.ts +0 -36
  342. package/src/client/variable.tsx +0 -318
  343. package/src/index.ts +0 -1
  344. package/src/locale/en-US.ts +0 -136
  345. package/src/locale/es-ES.ts +0 -129
  346. package/src/locale/fr-FR.ts +0 -137
  347. package/src/locale/ja-JP.ts +0 -90
  348. package/src/locale/pt-BR.ts +0 -136
  349. package/src/locale/ru-RU.ts +0 -90
  350. package/src/locale/tr-TR.ts +0 -90
  351. package/src/locale/zh-CN.ts +0 -248
  352. package/src/server/Plugin.ts +0 -355
  353. package/src/server/__tests__/Plugin.test.ts +0 -398
  354. package/src/server/__tests__/Processor.test.ts +0 -474
  355. package/src/server/__tests__/actions/workflows.test.ts +0 -419
  356. package/src/server/__tests__/collections/categories.ts +0 -27
  357. package/src/server/__tests__/collections/comments.ts +0 -24
  358. package/src/server/__tests__/collections/posts.ts +0 -42
  359. package/src/server/__tests__/collections/replies.ts +0 -9
  360. package/src/server/__tests__/collections/tags.ts +0 -15
  361. package/src/server/__tests__/index.ts +0 -89
  362. package/src/server/__tests__/instructions/aggregate.test.ts +0 -294
  363. package/src/server/__tests__/instructions/calculation.test.ts +0 -265
  364. package/src/server/__tests__/instructions/condition.test.ts +0 -434
  365. package/src/server/__tests__/instructions/create.test.ts +0 -129
  366. package/src/server/__tests__/instructions/delay.test.ts +0 -182
  367. package/src/server/__tests__/instructions/destroy.test.ts +0 -58
  368. package/src/server/__tests__/instructions/loop.test.ts +0 -331
  369. package/src/server/__tests__/instructions/manual.test.ts +0 -1173
  370. package/src/server/__tests__/instructions/parallel.test.ts +0 -445
  371. package/src/server/__tests__/instructions/query.test.ts +0 -359
  372. package/src/server/__tests__/instructions/request.test.ts +0 -247
  373. package/src/server/__tests__/instructions/sql.test.ts +0 -162
  374. package/src/server/__tests__/instructions/update.test.ts +0 -189
  375. package/src/server/__tests__/triggers/collection.test.ts +0 -333
  376. package/src/server/__tests__/triggers/schedule.test.ts +0 -369
  377. package/src/server/actions/index.ts +0 -25
  378. package/src/server/collections/executions.ts +0 -35
  379. package/src/server/collections/flow_nodes.ts +0 -54
  380. package/src/server/collections/jobs.ts +0 -31
  381. package/src/server/collections/workflows.ts +0 -88
  382. package/src/server/constants.ts +0 -26
  383. package/src/server/fields/expression-field.ts +0 -11
  384. package/src/server/fields/index.ts +0 -7
  385. package/src/server/functions/index.ts +0 -16
  386. package/src/server/index.ts +0 -6
  387. package/src/server/instructions/aggregate.ts +0 -42
  388. package/src/server/instructions/calculation.ts +0 -41
  389. package/src/server/instructions/condition.ts +0 -172
  390. package/src/server/instructions/delay.ts +0 -105
  391. package/src/server/instructions/destroy.ts +0 -23
  392. package/src/server/instructions/index.ts +0 -64
  393. package/src/server/instructions/manual/collecions/jobs.ts +0 -17
  394. package/src/server/instructions/manual/collecions/users.ts +0 -15
  395. package/src/server/instructions/manual/collecions/users_jobs.ts +0 -50
  396. package/src/server/instructions/manual/forms/index.ts +0 -12
  397. package/src/server/instructions/manual/index.ts +0 -184
  398. package/src/server/instructions/parallel.ts +0 -121
  399. package/src/server/instructions/query.ts +0 -42
  400. package/src/server/instructions/request.ts +0 -88
  401. package/src/server/instructions/sql.ts +0 -25
  402. package/src/server/instructions/update.ts +0 -24
  403. package/src/server/migrations/20230221032941-change-request-body-type.ts +0 -76
  404. package/src/server/migrations/20230221071831-calculation-expression.ts +0 -102
  405. package/src/server/migrations/20230221121203-condition-calculation.ts +0 -82
  406. package/src/server/migrations/20230221162902-jsonb-to-json.ts +0 -51
  407. package/src/server/migrations/20230411034722-manual-multi-form.ts +0 -282
  408. package/src/server/migrations/20230612021134-manual-collection-block.ts +0 -138
  409. package/src/server/migrations/20230710115902-manual-action-values.ts +0 -78
  410. package/src/server/triggers/index.ts +0 -22
  411. package/src/server/types/Execution.ts +0 -26
  412. package/src/server/types/FlowNode.ts +0 -21
  413. package/src/server/types/Job.ts +0 -18
  414. package/src/server/types/Workflow.ts +0 -36
  415. package/src/server/types/index.ts +0 -4
  416. package/src/server/utils.ts +0 -17
  417. /package/{lib → dist}/client/AddButton.d.ts +0 -0
  418. /package/{lib → dist}/client/Branch.d.ts +0 -0
  419. /package/{lib → dist}/client/CanvasContent.d.ts +0 -0
  420. /package/{lib → dist}/client/ExecutionCanvas.d.ts +0 -0
  421. /package/{lib → dist}/client/ExecutionLink.d.ts +0 -0
  422. /package/{lib → dist}/client/ExecutionPage.d.ts +0 -0
  423. /package/{lib → dist}/client/ExecutionResourceProvider.d.ts +0 -0
  424. /package/{lib → dist}/client/FlowContext.d.ts +0 -0
  425. /package/{lib → dist}/client/WorkflowCanvas.d.ts +0 -0
  426. /package/{lib → dist}/client/WorkflowLink.d.ts +0 -0
  427. /package/{lib → dist}/client/WorkflowPage.d.ts +0 -0
  428. /package/{lib → dist}/client/WorkflowProvider.d.ts +0 -0
  429. /package/{lib → dist}/client/components/CollectionBlockInitializer.d.ts +0 -0
  430. /package/{lib → dist}/client/components/CollectionFieldset.d.ts +0 -0
  431. /package/{lib → dist}/client/components/Duration.d.ts +0 -0
  432. /package/{lib → dist}/client/components/DynamicExpression.d.ts +0 -0
  433. /package/{lib → dist}/client/components/FieldsSelect.d.ts +0 -0
  434. /package/{lib → dist}/client/components/FilterDynamicComponent.d.ts +0 -0
  435. /package/{lib → dist}/client/components/NodeDescription.d.ts +0 -0
  436. /package/{lib → dist}/client/components/NullRender.d.ts +0 -0
  437. /package/{lib → dist}/client/components/OpenDrawer.d.ts +0 -0
  438. /package/{lib → dist}/client/components/RadioWithTooltip.d.ts +0 -0
  439. /package/{lib → dist}/client/components/ValueBlock.d.ts +0 -0
  440. /package/{lib → dist}/client/components/renderEngineReference.d.ts +0 -0
  441. /package/{lib → dist}/client/constants.d.ts +0 -0
  442. /package/{lib → dist}/client/index.d.ts +0 -0
  443. /package/{lib → dist}/client/interfaces/expression.d.ts +0 -0
  444. /package/{lib → dist}/client/locale/index.d.ts +0 -0
  445. /package/{lib → dist}/client/nodes/calculation.d.ts +0 -0
  446. /package/{lib → dist}/client/nodes/condition.d.ts +0 -0
  447. /package/{lib → dist}/client/nodes/delay.d.ts +0 -0
  448. /package/{lib → dist}/client/nodes/index.d.ts +0 -0
  449. /package/{lib → dist}/client/nodes/loop.d.ts +0 -0
  450. /package/{lib → dist}/client/nodes/manual/AssigneesSelect.d.ts +0 -0
  451. /package/{lib → dist}/client/nodes/manual/DetailsBlockProvider.d.ts +0 -0
  452. /package/{lib → dist}/client/nodes/manual/FormBlockInitializer.d.ts +0 -0
  453. /package/{lib → dist}/client/nodes/manual/FormBlockProvider.d.ts +0 -0
  454. /package/{lib → dist}/client/nodes/manual/ModeConfig.d.ts +0 -0
  455. /package/{lib → dist}/client/nodes/manual/SchemaConfig.d.ts +0 -0
  456. /package/{lib → dist}/client/nodes/manual/WorkflowTodo.d.ts +0 -0
  457. /package/{lib → dist}/client/nodes/manual/WorkflowTodoBlockInitializer.d.ts +0 -0
  458. /package/{lib → dist}/client/nodes/manual/forms/create.d.ts +0 -0
  459. /package/{lib → dist}/client/nodes/manual/forms/custom.d.ts +0 -0
  460. /package/{lib → dist}/client/nodes/manual/forms/update.d.ts +0 -0
  461. /package/{lib → dist}/client/nodes/manual/index.d.ts +0 -0
  462. /package/{lib → dist}/client/nodes/manual/utils.d.ts +0 -0
  463. /package/{lib → dist}/client/nodes/parallel.d.ts +0 -0
  464. /package/{lib → dist}/client/nodes/sql.d.ts +0 -0
  465. /package/{lib → dist}/client/schemas/executions.d.ts +0 -0
  466. /package/{lib → dist}/client/schemas/workflows.d.ts +0 -0
  467. /package/{lib → dist}/client/style.d.ts +0 -0
  468. /package/{lib → dist}/client/triggers/index.d.ts +0 -0
  469. /package/{lib → dist}/client/triggers/schedule/EndsByField.d.ts +0 -0
  470. /package/{lib → dist}/client/triggers/schedule/OnField.d.ts +0 -0
  471. /package/{lib → dist}/client/triggers/schedule/RepeatField.d.ts +0 -0
  472. /package/{lib → dist}/client/triggers/schedule/ScheduleConfig.d.ts +0 -0
  473. /package/{lib → dist}/client/triggers/schedule/constants.d.ts +0 -0
  474. /package/{lib → dist}/client/triggers/schedule/index.d.ts +0 -0
  475. /package/{lib → dist}/client/triggers/schedule/locale/Cron.zh-CN.d.ts +0 -0
  476. /package/{lib → dist}/client/utils.d.ts +0 -0
  477. /package/{lib → dist}/client/variable.d.ts +0 -0
  478. /package/{lib → dist}/locale/en-US.d.ts +0 -0
  479. /package/{lib → dist}/locale/es-ES.d.ts +0 -0
  480. /package/{lib → dist}/locale/fr-FR.d.ts +0 -0
  481. /package/{lib → dist}/locale/ja-JP.d.ts +0 -0
  482. /package/{lib → dist}/locale/pt-BR.d.ts +0 -0
  483. /package/{lib → dist}/locale/ru-RU.d.ts +0 -0
  484. /package/{lib → dist}/locale/tr-TR.d.ts +0 -0
  485. /package/{lib → dist}/locale/zh-CN.d.ts +0 -0
  486. /package/{lib → dist}/server/Plugin.d.ts +0 -0
  487. /package/{lib → dist}/server/Processor.d.ts +0 -0
  488. /package/{lib → dist}/server/actions/index.d.ts +0 -0
  489. /package/{lib → dist}/server/actions/nodes.d.ts +0 -0
  490. /package/{lib → dist}/server/actions/workflows.d.ts +0 -0
  491. /package/{lib → dist}/server/collections/executions.d.ts +0 -0
  492. /package/{lib → dist}/server/collections/flow_nodes.d.ts +0 -0
  493. /package/{lib → dist}/server/collections/jobs.d.ts +0 -0
  494. /package/{lib → dist}/server/collections/workflows.d.ts +0 -0
  495. /package/{lib → dist}/server/constants.d.ts +0 -0
  496. /package/{lib → dist}/server/fields/expression-field.d.ts +0 -0
  497. /package/{lib → dist}/server/fields/index.d.ts +0 -0
  498. /package/{lib → dist}/server/functions/index.d.ts +0 -0
  499. /package/{lib → dist}/server/index.d.ts +0 -0
  500. /package/{lib → dist}/server/instructions/aggregate.d.ts +0 -0
  501. /package/{lib → dist}/server/instructions/calculation.d.ts +0 -0
  502. /package/{lib → dist}/server/instructions/condition.d.ts +0 -0
  503. /package/{lib → dist}/server/instructions/create.d.ts +0 -0
  504. /package/{lib → dist}/server/instructions/delay.d.ts +0 -0
  505. /package/{lib → dist}/server/instructions/destroy.d.ts +0 -0
  506. /package/{lib → dist}/server/instructions/index.d.ts +0 -0
  507. /package/{lib → dist}/server/instructions/loop.d.ts +0 -0
  508. /package/{lib → dist}/server/instructions/manual/actions.d.ts +0 -0
  509. /package/{lib → dist}/server/instructions/manual/collecions/jobs.d.ts +0 -0
  510. /package/{lib → dist}/server/instructions/manual/collecions/users.d.ts +0 -0
  511. /package/{lib → dist}/server/instructions/manual/collecions/users_jobs.d.ts +0 -0
  512. /package/{lib → dist}/server/instructions/manual/forms/create.d.ts +0 -0
  513. /package/{lib → dist}/server/instructions/manual/forms/index.d.ts +0 -0
  514. /package/{lib → dist}/server/instructions/manual/forms/update.d.ts +0 -0
  515. /package/{lib → dist}/server/instructions/manual/index.d.ts +0 -0
  516. /package/{lib → dist}/server/instructions/parallel.d.ts +0 -0
  517. /package/{lib → dist}/server/instructions/query.d.ts +0 -0
  518. /package/{lib → dist}/server/instructions/request.d.ts +0 -0
  519. /package/{lib → dist}/server/instructions/sql.d.ts +0 -0
  520. /package/{lib → dist}/server/instructions/update.d.ts +0 -0
  521. /package/{lib → dist}/server/migrations/20221129153547-calculation-variables.d.ts +0 -0
  522. /package/{lib → dist}/server/migrations/20230221032941-change-request-body-type.d.ts +0 -0
  523. /package/{lib → dist}/server/migrations/20230221071831-calculation-expression.d.ts +0 -0
  524. /package/{lib → dist}/server/migrations/20230221121203-condition-calculation.d.ts +0 -0
  525. /package/{lib → dist}/server/migrations/20230221162902-jsonb-to-json.d.ts +0 -0
  526. /package/{lib → dist}/server/migrations/20230411034722-manual-multi-form.d.ts +0 -0
  527. /package/{lib → dist}/server/migrations/20230612021134-manual-collection-block.d.ts +0 -0
  528. /package/{lib → dist}/server/migrations/20230710115902-manual-action-values.d.ts +0 -0
  529. /package/{lib → dist}/server/triggers/collection.d.ts +0 -0
  530. /package/{lib → dist}/server/triggers/index.d.ts +0 -0
  531. /package/{lib → dist}/server/triggers/schedule.d.ts +0 -0
  532. /package/{lib → dist}/server/types/Execution.d.ts +0 -0
  533. /package/{lib → dist}/server/types/FlowNode.d.ts +0 -0
  534. /package/{lib → dist}/server/types/Job.d.ts +0 -0
  535. /package/{lib → dist}/server/types/Workflow.d.ts +0 -0
  536. /package/{lib → dist}/server/types/index.d.ts +0 -0
  537. /package/{lib → dist}/server/utils.d.ts +0 -0
@@ -1,12 +1,12 @@
1
- import Processor from '../Processor';
2
- import { JOB_STATUS } from '../constants';
3
- import type { FlowNodeModel, JobModel } from '../types';
1
+ 'use strict';
2
+
3
+ var constants = require('../constants');
4
4
 
5
5
  function getTargetLength(target) {
6
6
  let length = 0;
7
- if (typeof target === 'number') {
7
+ if (typeof target === "number") {
8
8
  if (target < 0) {
9
- throw new Error('Loop target in number type must be greater than 0');
9
+ throw new Error("Loop target in number type must be greater than 0");
10
10
  }
11
11
  length = Math.floor(target);
12
12
  } else {
@@ -15,57 +15,39 @@ function getTargetLength(target) {
15
15
  }
16
16
  return length;
17
17
  }
18
-
19
- export default {
20
- async run(node: FlowNodeModel, prevJob: JobModel, processor: Processor) {
18
+ var loop_default = {
19
+ async run(node, prevJob, processor) {
21
20
  const [branch] = processor.getBranches(node);
22
21
  const target = processor.getParsedValue(node.config.target, node);
23
22
  const length = getTargetLength(target);
24
-
25
23
  if (!branch || !length) {
26
24
  return {
27
- status: JOB_STATUS.RESOLVED,
28
- result: 0,
25
+ status: constants.JOB_STATUS.RESOLVED,
26
+ result: 0
29
27
  };
30
28
  }
31
-
32
29
  const job = await processor.saveJob({
33
- status: JOB_STATUS.PENDING,
30
+ status: constants.JOB_STATUS.PENDING,
34
31
  // save loop index
35
32
  result: 0,
36
33
  nodeId: node.id,
37
- upstreamId: prevJob?.id ?? null,
34
+ upstreamId: (prevJob == null ? void 0 : prevJob.id) ?? null
38
35
  });
39
-
40
- // TODO: add loop scope to stack
41
- // processor.stack.push({
42
- // label: node.title,
43
- // value: node.id
44
- // });
45
-
46
36
  await processor.run(branch, job);
47
-
48
37
  return null;
49
38
  },
50
-
51
- async resume(node: FlowNodeModel, branchJob, processor: Processor) {
52
- const job = processor.findBranchParentJob(branchJob, node) as JobModel;
39
+ async resume(node, branchJob, processor) {
40
+ const job = processor.findBranchParentJob(branchJob, node);
53
41
  const loop = processor.nodesMap.get(job.nodeId);
54
42
  const [branch] = processor.getBranches(node);
55
-
56
43
  const { result, status } = job;
57
- // if loop has been done (resolved / rejected), do not care newly executed branch jobs.
58
- if (status !== JOB_STATUS.PENDING) {
44
+ if (status !== constants.JOB_STATUS.PENDING) {
59
45
  return processor.exit();
60
46
  }
61
-
62
47
  const nextIndex = result + 1;
63
-
64
48
  const target = processor.getParsedValue(loop.config.target, node);
65
- // branchJob.status === JOB_STATUS.RESOLVED means branchJob is done, try next loop or exit as resolved
66
- if (branchJob.status > JOB_STATUS.PENDING) {
49
+ if (branchJob.status > constants.JOB_STATUS.PENDING) {
67
50
  job.set({ result: nextIndex });
68
-
69
51
  const length = getTargetLength(target);
70
52
  if (nextIndex < length) {
71
53
  await processor.saveJob(job);
@@ -73,27 +55,23 @@ export default {
73
55
  return null;
74
56
  }
75
57
  }
76
-
77
- // branchJob.status < JOB_STATUS.PENDING means branchJob is rejected, any rejection should cause loop rejected
78
58
  job.set({
79
- status: branchJob.status,
59
+ status: branchJob.status
80
60
  });
81
-
82
61
  return job;
83
62
  },
84
-
85
63
  getScope(node, index, processor) {
86
64
  const target = processor.getParsedValue(node.config.target, node);
87
65
  const targets = (Array.isArray(target) ? target : [target]).filter((t) => t != null);
88
66
  const length = getTargetLength(target);
89
- const item = typeof target === 'number' ? index : targets[index];
90
-
67
+ const item = typeof target === "number" ? index : targets[index];
91
68
  const result = {
92
69
  item,
93
70
  index,
94
- length,
71
+ length
95
72
  };
96
-
97
73
  return result;
98
- },
74
+ }
99
75
  };
76
+
77
+ module.exports = loop_default;
@@ -1,55 +1,39 @@
1
- import { Context, utils } from '@nocobase/actions';
1
+ 'use strict';
2
2
 
3
- import Plugin from '../..';
4
- import { EXECUTION_STATUS, JOB_STATUS } from '../../constants';
5
- import ManualInstruction from '.';
3
+ var actions = require('@nocobase/actions');
4
+ var constants = require('../../constants');
6
5
 
7
- export async function submit(context: Context, next) {
8
- const repository = utils.getRepositoryFromParams(context);
6
+ async function submit(context, next) {
7
+ var _a, _b, _c;
8
+ const repository = actions.utils.getRepositoryFromParams(context);
9
9
  const { filterByTk, values } = context.action.params;
10
10
  const { currentUser } = context.state;
11
-
12
11
  if (!currentUser) {
13
12
  return context.throw(401);
14
13
  }
15
-
16
- const plugin: Plugin = context.app.pm.get('workflow') as Plugin;
17
- const instruction = plugin.instructions.get('manual') as ManualInstruction;
18
-
14
+ const plugin = context.app.pm.get("workflow");
15
+ const instruction = plugin.instructions.get("manual");
19
16
  const userJob = await repository.findOne({
20
17
  filterByTk,
21
18
  // filter: {
22
19
  // userId: currentUser?.id
23
20
  // },
24
- appends: ['job', 'node', 'execution', 'workflow'],
25
- context,
21
+ appends: ["job", "node", "execution", "workflow"],
22
+ context
26
23
  });
27
-
28
24
  if (!userJob) {
29
25
  return context.throw(404);
30
26
  }
31
-
32
27
  const { forms = {} } = userJob.node.config;
33
- const [formKey] = Object.keys(values.result ?? {}).filter(key => key !== '_');
34
- const actionKey = values.result?._;
35
-
36
- const actionItem = forms[formKey]?.actions?.find((item) => item.key === actionKey);
37
- // NOTE: validate status
38
- if (
39
- userJob.status !== JOB_STATUS.PENDING ||
40
- userJob.job.status !== JOB_STATUS.PENDING ||
41
- userJob.execution.status !== EXECUTION_STATUS.STARTED ||
42
- !userJob.workflow.enabled ||
43
- !actionKey || actionItem?.status == null
44
- ) {
28
+ const [formKey] = Object.keys(values.result ?? {}).filter((key) => key !== "_");
29
+ const actionKey = (_a = values.result) == null ? void 0 : _a._;
30
+ const actionItem = (_c = (_b = forms[formKey]) == null ? void 0 : _b.actions) == null ? void 0 : _c.find((item) => item.key === actionKey);
31
+ if (userJob.status !== constants.JOB_STATUS.PENDING || userJob.job.status !== constants.JOB_STATUS.PENDING || userJob.execution.status !== constants.EXECUTION_STATUS.STARTED || !userJob.workflow.enabled || !actionKey || (actionItem == null ? void 0 : actionItem.status) == null) {
45
32
  return context.throw(400);
46
33
  }
47
-
48
34
  userJob.execution.workflow = userJob.workflow;
49
35
  const processor = plugin.createProcessor(userJob.execution);
50
36
  await processor.prepare();
51
-
52
- // NOTE: validate assignee
53
37
  const assignees = processor.getParsedValue(userJob.node.config.assignees ?? []);
54
38
  if (!assignees.includes(currentUser.id) || userJob.userId !== currentUser.id) {
55
39
  return context.throw(403);
@@ -57,35 +41,25 @@ export async function submit(context: Context, next) {
57
41
  const presetValues = processor.getParsedValue(actionItem.values ?? {}, null, {
58
42
  currentUser: currentUser.toJSON(),
59
43
  currentRecord: values.result[formKey],
60
- currentTime: new Date(),
44
+ currentTime: /* @__PURE__ */ new Date()
61
45
  });
62
-
63
46
  userJob.set({
64
47
  status: actionItem.status,
65
- result: actionItem.status > JOB_STATUS.PENDING
66
- ? { [formKey]: Object.assign(values.result[formKey], presetValues), _: actionKey }
67
- : Object.assign(userJob.result ?? {}, values.result),
48
+ result: actionItem.status > constants.JOB_STATUS.PENDING ? { [formKey]: Object.assign(values.result[formKey], presetValues), _: actionKey } : Object.assign(userJob.result ?? {}, values.result)
68
49
  });
69
-
70
50
  const handler = instruction.formTypes.get(forms[formKey].type);
71
51
  if (handler && userJob.status) {
72
52
  await handler.call(instruction, userJob, forms[formKey], processor);
73
53
  }
74
-
75
54
  await userJob.save({ transaction: processor.transaction });
76
-
77
55
  await processor.exit();
78
-
79
56
  context.body = userJob;
80
57
  context.status = 202;
81
-
82
58
  await next();
83
-
84
59
  userJob.job.execution = userJob.execution;
85
60
  userJob.job.latestUserJob = userJob;
86
-
87
- // NOTE: resume the process and no `await` for quick returning
88
61
  processor.logger.info(`manual node (${userJob.nodeId}) action trigger execution (${userJob.execution.id}) to resume`);
89
-
90
62
  plugin.resume(userJob.job);
91
63
  }
64
+
65
+ exports.submit = submit;
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ var jobs_default = {
4
+ name: "jobs",
5
+ fields: [
6
+ {
7
+ type: "belongsToMany",
8
+ name: "users",
9
+ through: "users_jobs"
10
+ },
11
+ {
12
+ type: "hasMany",
13
+ name: "usersJobs",
14
+ target: "users_jobs",
15
+ foreignKey: "jobId",
16
+ onDelete: "CASCADE"
17
+ }
18
+ ]
19
+ };
20
+
21
+ module.exports = jobs_default;
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ var users_default = {
4
+ name: "users",
5
+ fields: [
6
+ {
7
+ type: "belongsToMany",
8
+ name: "jobs",
9
+ through: "users_jobs"
10
+ },
11
+ {
12
+ type: "hasMany",
13
+ name: "usersJobs",
14
+ target: "users_jobs"
15
+ }
16
+ ]
17
+ };
18
+
19
+ module.exports = users_default;
@@ -0,0 +1,52 @@
1
+ 'use strict';
2
+
3
+ var users_jobs_default = {
4
+ namespace: "workflow.executionLogs",
5
+ name: "users_jobs",
6
+ duplicator: "optional",
7
+ fields: [
8
+ {
9
+ type: "bigInt",
10
+ name: "id",
11
+ primaryKey: true,
12
+ autoIncrement: true
13
+ },
14
+ {
15
+ type: "belongsTo",
16
+ name: "job",
17
+ target: "jobs",
18
+ foreignKey: "jobId",
19
+ primaryKey: false
20
+ },
21
+ {
22
+ type: "belongsTo",
23
+ name: "user",
24
+ target: "users",
25
+ foreignKey: "userId",
26
+ primaryKey: false
27
+ },
28
+ {
29
+ type: "belongsTo",
30
+ name: "execution"
31
+ },
32
+ {
33
+ type: "belongsTo",
34
+ name: "node",
35
+ target: "flow_nodes"
36
+ },
37
+ {
38
+ type: "belongsTo",
39
+ name: "workflow"
40
+ },
41
+ {
42
+ type: "integer",
43
+ name: "status"
44
+ },
45
+ {
46
+ type: "jsonb",
47
+ name: "result"
48
+ }
49
+ ]
50
+ };
51
+
52
+ module.exports = users_jobs_default;
@@ -1,23 +1,23 @@
1
- import { Processor } from '../../..';
2
- import ManualInstruction from '..';
1
+ 'use strict';
3
2
 
4
- export default async function (this: ManualInstruction, instance, { collection }, processor: Processor) {
3
+ async function create_default(instance, { collection }, processor) {
5
4
  const repo = this.plugin.db.getRepository(collection);
6
5
  if (!repo) {
7
6
  throw new Error(`collection ${collection} for create data on manual node not found`);
8
7
  }
9
-
10
8
  const { _, ...form } = instance.result;
11
9
  const [values] = Object.values(form);
12
10
  await repo.create({
13
11
  values: {
14
- ...((values as { [key: string]: any }) ?? {}),
12
+ ...values ?? {},
15
13
  createdBy: instance.userId,
16
- updatedBy: instance.userId,
14
+ updatedBy: instance.userId
17
15
  },
18
16
  context: {
19
- executionId: processor.execution.id,
17
+ executionId: processor.execution.id
20
18
  },
21
- transaction: processor.transaction,
19
+ transaction: processor.transaction
22
20
  });
23
21
  }
22
+
23
+ module.exports = create_default;
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ var create = require('./create');
4
+ var update = require('./update');
5
+
6
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
+
8
+ var create__default = /*#__PURE__*/_interopDefault(create);
9
+ var update__default = /*#__PURE__*/_interopDefault(update);
10
+
11
+ function forms_default({ formTypes }) {
12
+ formTypes.register("create", create__default.default);
13
+ formTypes.register("update", update__default.default);
14
+ }
15
+
16
+ module.exports = forms_default;
@@ -1,23 +1,23 @@
1
- import { Processor } from '../../..';
2
- import ManualInstruction from '..';
1
+ 'use strict';
3
2
 
4
- export default async function (this: ManualInstruction, instance, { collection, filter = {} }, processor: Processor) {
3
+ async function update_default(instance, { collection, filter = {} }, processor) {
5
4
  const repo = this.plugin.db.getRepository(collection);
6
5
  if (!repo) {
7
6
  throw new Error(`collection ${collection} for update data on manual node not found`);
8
7
  }
9
-
10
8
  const { _, ...form } = instance.result;
11
9
  const [values] = Object.values(form);
12
10
  await repo.update({
13
11
  filter: processor.getParsedValue(filter),
14
12
  values: {
15
- ...((values as { [key: string]: any }) ?? {}),
16
- updatedBy: instance.userId,
13
+ ...values ?? {},
14
+ updatedBy: instance.userId
17
15
  },
18
16
  context: {
19
- executionId: processor.execution.id,
17
+ executionId: processor.execution.id
20
18
  },
21
- transaction: processor.transaction,
19
+ transaction: processor.transaction
22
20
  });
23
21
  }
22
+
23
+ module.exports = update_default;
@@ -0,0 +1,160 @@
1
+ 'use strict';
2
+
3
+ var actions = require('@nocobase/actions');
4
+ var utils = require('@nocobase/utils');
5
+ var constants = require('../../constants');
6
+ var jobsCollection = require('./collecions/jobs');
7
+ var usersCollection = require('./collecions/users');
8
+ var usersJobsCollection = require('./collecions/users_jobs');
9
+ var actions$1 = require('./actions');
10
+ var initFormTypes = require('./forms');
11
+
12
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
13
+
14
+ var actions__default = /*#__PURE__*/_interopDefault(actions);
15
+ var jobsCollection__default = /*#__PURE__*/_interopDefault(jobsCollection);
16
+ var usersCollection__default = /*#__PURE__*/_interopDefault(usersCollection);
17
+ var usersJobsCollection__default = /*#__PURE__*/_interopDefault(usersJobsCollection);
18
+ var initFormTypes__default = /*#__PURE__*/_interopDefault(initFormTypes);
19
+
20
+ const MULTIPLE_ASSIGNED_MODE = {
21
+ SINGLE: Symbol("single"),
22
+ ALL: Symbol("all"),
23
+ ANY: Symbol("any"),
24
+ ALL_PERCENTAGE: Symbol("all percentage"),
25
+ ANY_PERCENTAGE: Symbol("any percentage")
26
+ };
27
+ const Modes = {
28
+ [MULTIPLE_ASSIGNED_MODE.SINGLE]: {
29
+ getStatus(distribution, assignees) {
30
+ const done = distribution.find((item) => item.status !== constants.JOB_STATUS.PENDING && item.count > 0);
31
+ return done ? done.status : null;
32
+ }
33
+ },
34
+ [MULTIPLE_ASSIGNED_MODE.ALL]: {
35
+ getStatus(distribution, assignees) {
36
+ const resolved = distribution.find((item) => item.status === constants.JOB_STATUS.RESOLVED);
37
+ if (resolved && resolved.count === assignees.length) {
38
+ return constants.JOB_STATUS.RESOLVED;
39
+ }
40
+ const rejected = distribution.find((item) => item.status < constants.JOB_STATUS.PENDING);
41
+ if (rejected && rejected.count) {
42
+ return rejected.status;
43
+ }
44
+ return null;
45
+ }
46
+ },
47
+ [MULTIPLE_ASSIGNED_MODE.ANY]: {
48
+ getStatus(distribution, assignees) {
49
+ const resolved = distribution.find((item) => item.status === constants.JOB_STATUS.RESOLVED);
50
+ if (resolved && resolved.count) {
51
+ return constants.JOB_STATUS.RESOLVED;
52
+ }
53
+ const rejectedCount = distribution.reduce(
54
+ (count, item) => item.status < constants.JOB_STATUS.PENDING ? count + item.count : count,
55
+ 0
56
+ );
57
+ if (rejectedCount === assignees.length) {
58
+ return constants.JOB_STATUS.REJECTED;
59
+ }
60
+ return null;
61
+ }
62
+ }
63
+ };
64
+ function getMode(mode) {
65
+ switch (true) {
66
+ case mode === 1:
67
+ return Modes[MULTIPLE_ASSIGNED_MODE.ALL];
68
+ case mode === -1:
69
+ return Modes[MULTIPLE_ASSIGNED_MODE.ANY];
70
+ case mode > 0:
71
+ return Modes[MULTIPLE_ASSIGNED_MODE.ALL_PERCENTAGE];
72
+ case mode < 0:
73
+ return Modes[MULTIPLE_ASSIGNED_MODE.ANY_PERCENTAGE];
74
+ default:
75
+ return Modes[MULTIPLE_ASSIGNED_MODE.SINGLE];
76
+ }
77
+ }
78
+ class manual_default {
79
+ constructor(plugin) {
80
+ this.plugin = plugin;
81
+ plugin.db.collection(usersJobsCollection__default.default);
82
+ plugin.db.extendCollection(usersCollection__default.default);
83
+ plugin.db.extendCollection(jobsCollection__default.default);
84
+ plugin.app.resource({
85
+ name: "users_jobs",
86
+ actions: {
87
+ list: {
88
+ filter: {
89
+ $or: [
90
+ {
91
+ "workflow.enabled": true
92
+ },
93
+ {
94
+ "workflow.enabled": false,
95
+ status: {
96
+ $ne: constants.JOB_STATUS.PENDING
97
+ }
98
+ }
99
+ ]
100
+ },
101
+ handler: actions__default.default.list
102
+ },
103
+ submit: actions$1.submit
104
+ }
105
+ });
106
+ initFormTypes__default.default(this);
107
+ }
108
+ formTypes = new utils.Registry();
109
+ async run(node, prevJob, processor) {
110
+ const { mode, ...config } = node.config;
111
+ const assignees = [...new Set(processor.getParsedValue(config.assignees) || [])];
112
+ const job = await processor.saveJob({
113
+ status: constants.JOB_STATUS.PENDING,
114
+ result: mode ? [] : null,
115
+ nodeId: node.id,
116
+ upstreamId: (prevJob == null ? void 0 : prevJob.id) ?? null
117
+ });
118
+ const UserJobModel = processor.options.plugin.db.getModel("users_jobs");
119
+ await UserJobModel.bulkCreate(
120
+ assignees.map((userId) => ({
121
+ userId,
122
+ jobId: job.id,
123
+ nodeId: node.id,
124
+ executionId: job.executionId,
125
+ workflowId: node.workflowId,
126
+ status: constants.JOB_STATUS.PENDING
127
+ })),
128
+ {
129
+ transaction: processor.transaction
130
+ }
131
+ );
132
+ return job;
133
+ }
134
+ async resume(node, job, processor) {
135
+ var _a;
136
+ const { assignees = [], mode } = node.config;
137
+ const UserJobModel = processor.options.plugin.db.getModel("users_jobs");
138
+ const distribution = await UserJobModel.count({
139
+ where: {
140
+ jobId: job.id
141
+ },
142
+ group: ["status"],
143
+ transaction: processor.transaction
144
+ });
145
+ const submitted = distribution.reduce(
146
+ (count, item) => item.status !== constants.JOB_STATUS.PENDING ? count + item.count : count,
147
+ 0
148
+ );
149
+ const status = job.status || (getMode(mode).getStatus(distribution, assignees) ?? constants.JOB_STATUS.PENDING);
150
+ const result = mode ? (submitted || 0) / assignees.length : ((_a = job.latestUserJob) == null ? void 0 : _a.result) ?? job.result;
151
+ processor.logger.debug(`manual resume job and next status: ${status}`);
152
+ job.set({
153
+ status,
154
+ result
155
+ });
156
+ return job;
157
+ }
158
+ }
159
+
160
+ module.exports = manual_default;
@@ -0,0 +1,105 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var constants = require('../constants');
6
+
7
+ const PARALLEL_MODE = {
8
+ ALL: "all",
9
+ ANY: "any",
10
+ RACE: "race"
11
+ };
12
+ const Modes = {
13
+ [PARALLEL_MODE.ALL]: {
14
+ next(previous) {
15
+ return previous.status >= constants.JOB_STATUS.PENDING;
16
+ },
17
+ getStatus(result) {
18
+ const failedStatus = result.find((status) => status != null && status < constants.JOB_STATUS.PENDING);
19
+ if (typeof failedStatus !== "undefined") {
20
+ return failedStatus;
21
+ }
22
+ if (result.every((status) => status != null && status === constants.JOB_STATUS.RESOLVED)) {
23
+ return constants.JOB_STATUS.RESOLVED;
24
+ }
25
+ return constants.JOB_STATUS.PENDING;
26
+ }
27
+ },
28
+ [PARALLEL_MODE.ANY]: {
29
+ next(previous) {
30
+ return previous.status <= constants.JOB_STATUS.PENDING;
31
+ },
32
+ getStatus(result) {
33
+ if (result.some((status) => status != null && status === constants.JOB_STATUS.RESOLVED)) {
34
+ return constants.JOB_STATUS.RESOLVED;
35
+ }
36
+ if (result.some((status) => status != null ? status === constants.JOB_STATUS.PENDING : true)) {
37
+ return constants.JOB_STATUS.PENDING;
38
+ }
39
+ return constants.JOB_STATUS.FAILED;
40
+ }
41
+ },
42
+ [PARALLEL_MODE.RACE]: {
43
+ next(previous) {
44
+ return previous.status === constants.JOB_STATUS.PENDING;
45
+ },
46
+ getStatus(result) {
47
+ if (result.some((status) => status != null && status === constants.JOB_STATUS.RESOLVED)) {
48
+ return constants.JOB_STATUS.RESOLVED;
49
+ }
50
+ const failedStatus = result.find((status) => status != null && status < constants.JOB_STATUS.PENDING);
51
+ if (typeof failedStatus !== "undefined") {
52
+ return failedStatus;
53
+ }
54
+ return constants.JOB_STATUS.PENDING;
55
+ }
56
+ }
57
+ };
58
+ var parallel_default = {
59
+ async run(node, prevJob, processor) {
60
+ const branches = processor.getBranches(node);
61
+ const job = await processor.saveJob({
62
+ status: constants.JOB_STATUS.PENDING,
63
+ result: Array(branches.length).fill(null),
64
+ nodeId: node.id,
65
+ upstreamId: (prevJob == null ? void 0 : prevJob.id) ?? null
66
+ });
67
+ const { mode = PARALLEL_MODE.ALL } = node.config;
68
+ await branches.reduce(
69
+ (promise, branch, i) => promise.then(async (previous) => {
70
+ if (i && !Modes[mode].next(previous)) {
71
+ return previous;
72
+ }
73
+ await processor.run(branch, job);
74
+ return processor.findBranchLastJob(branch);
75
+ }),
76
+ Promise.resolve()
77
+ );
78
+ return null;
79
+ },
80
+ async resume(node, branchJob, processor) {
81
+ const job = processor.findBranchParentJob(branchJob, node);
82
+ const { result, status } = job;
83
+ if (status !== constants.JOB_STATUS.PENDING) {
84
+ return processor.exit();
85
+ }
86
+ const jobNode = processor.nodesMap.get(branchJob.nodeId);
87
+ const branchStartNode = processor.findBranchStartNode(jobNode, node);
88
+ const branches = processor.getBranches(node);
89
+ const branchIndex = branches.indexOf(branchStartNode);
90
+ const { mode = PARALLEL_MODE.ALL } = node.config || {};
91
+ const newResult = [...result.slice(0, branchIndex), branchJob.status, ...result.slice(branchIndex + 1)];
92
+ job.set({
93
+ result: newResult,
94
+ status: Modes[mode].getStatus(newResult)
95
+ });
96
+ if (job.status === constants.JOB_STATUS.PENDING) {
97
+ await job.save({ transaction: processor.transaction });
98
+ return processor.exit();
99
+ }
100
+ return job;
101
+ }
102
+ };
103
+
104
+ exports.PARALLEL_MODE = PARALLEL_MODE;
105
+ exports.default = parallel_default;