@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,248 +0,0 @@
1
- export default {
2
- Workflow: '工作流',
3
- 'Execution history': '执行历史',
4
- Executed: '已执行',
5
- 'Trigger type': '触发方式',
6
- Status: '状态',
7
- On: '启用',
8
- Off: '停用',
9
- Version: '版本',
10
- 'Copy to new version': '复制到新版本',
11
- Duplicate: '复制',
12
- 'Delete a main version will cause all other revisions to be deleted too.': '删除主版本将导致其他版本一并被删除。',
13
- Loading: '加载中',
14
- 'Load failed': '加载失败',
15
- Trigger: '触发器',
16
- 'Trigger variables': '触发器变量',
17
- 'Trigger data': '触发数据',
18
- 'Trigger time': '触发时间',
19
- 'Triggered at': '触发时间',
20
- 'Collection event': '数据表事件',
21
- 'Trigger on': '触发时机',
22
- 'After record added': '新增数据后',
23
- 'After record updated': '更新数据后',
24
- 'After record added or updated': '新增或更新数据后',
25
- 'After record deleted': '删除数据后',
26
- 'Changed fields': '发生变动的字段',
27
- 'Triggered only if one of the selected fields changes. If unselected, it means that it will be triggered when any field changes. When record is added or deleted, any field is considered to have been changed.':
28
- '只有被选中的某个字段发生变动时才会触发。如果不选择,则表示任何字段变动时都会触发。新增或删除数据时,任意字段都被认为发生变动。',
29
- 'Only triggers when match conditions': '满足以下条件才触发',
30
- 'Preload associations': '预加载关联数据',
31
- 'Please select the associated fields that need to be accessed in subsequent nodes. With more than two levels of to-many associations may cause performance issue, please use with caution.':
32
- '请选中需要在后续节点中被访问的关系字段。超过两层的对多关联可能会导致性能问题,请谨慎使用。',
33
- 'Schedule event': '定时任务',
34
- 'Trigger mode': '触发模式',
35
- 'Based on certain date': '自定义时间',
36
- 'Based on date field of collection': '根据数据表时间字段',
37
- 'Starts on': '开始于',
38
- 'Ends on': '结束于',
39
- 'No end': '不结束',
40
- 'Exactly at': '当时',
41
- 'Repeat mode': '重复模式',
42
- 'Repeat limit': '重复次数',
43
- 'No limit': '不限',
44
- Seconds: '秒',
45
- Minutes: '分钟',
46
- Hours: '小时',
47
- Days: '天',
48
- Weeks: '周',
49
- Months: '月',
50
- 'No repeat': '不重复',
51
- Every: '每',
52
- 'By minute': '按分钟',
53
- 'By hour': '按小时',
54
- 'By day': '按天',
55
- 'By week': '按周',
56
- 'By month': '按月',
57
- 'By field': '数据表字段',
58
- 'By custom date': '自定义时间',
59
- Advanced: '高级模式',
60
- End: '结束',
61
- 'Node result': '节点数据',
62
- Calculator: '运算',
63
- 'Calculate an expression based on a calculation engine and obtain a value as the result. Variables in the upstream nodes can be used in the expression. The expression can be static or dynamic one from an expression collections.':
64
- '基于计算引擎对一个表达式进行计算,并获得一个值作为结果。表达式中可以使用上游节点里的变量。表达式可以是静态的,也可以是表达式表中的动态表达式。',
65
- 'String operation': '字符串',
66
- 'System variables': '系统变量',
67
- 'System time': '系统时间',
68
- 'Date variables': '日期变量',
69
-
70
- 'Executed at': '执行于',
71
- Queueing: '队列中',
72
- 'On going': '进行中',
73
- Resolved: '完成',
74
- Pending: '待处理',
75
- Failed: '失败',
76
- Error: '出错',
77
- Aborted: '已终止',
78
- Canceled: '已取消',
79
- Rejected: '已拒绝',
80
-
81
- 'Continue the process': '继续流程',
82
- 'Terminate the process': '终止流程',
83
- 'Save temporarily': '暂存',
84
-
85
- Operations: '操作',
86
- 'This node contains branches, deleting will also be preformed to them, are you sure?':
87
- '节点包含分支,将同时删除其所有分支下的子节点,确定继续?',
88
- Control: '流程控制',
89
- 'Collection operations': '数据表操作',
90
- Manual: '人工处理',
91
- 'Could be used for manually submitting data, and determine whether to continue or exit. Workflow will generate a todo item for assigned user when it reaches a manual node, and continue processing after user submits the form.':
92
- '可用于人工提交数据,并决定是否继续或退出流程。工作流在执行到人工节点时会为被指派的用户生成待办事项,直到用户提交对应表单后继续处理该流程。',
93
- 'Values preset in this form will override user submitted ones when continue or reject.':
94
- '表单中预设的字段值会在用户提交继续或拒绝时覆盖相应字段的值。',
95
- 'Extended types': '扩展类型',
96
- 'Node type': '节点类型',
97
- Calculation: '运算',
98
- 'Expression type': '表达式类型',
99
- Static: '静态',
100
- Dynamic: '动态',
101
- 'Select dynamic expression': '选择动态表达式',
102
- 'Select the dynamic expression queried from the upstream node. You need to query it from an expression collection.':
103
- '从上游节点中选择查询出来的动态表达式。你需要从动态表达式类型的数据表中查询。',
104
- 'Variable datasource': '变量数据源',
105
- 'Calculation engine': '运算引擎',
106
- Basic: '基础',
107
- 'Calculation expression': '运算表达式',
108
- 'Expression syntax error': '表达式语法错误',
109
- 'Syntax references: ': '语法参考:',
110
- 'Calculation result': '运算结果',
111
- True: '真',
112
- False: '假',
113
- concat: '连接',
114
- Condition: '条件判断',
115
- 'Based on boolean result of the calculation to determine whether to "continue" or "exit" the process, or continue on different branches of "yes" and "no".':
116
- '基于运算结果的真假来决定“继续”或“退出”流程,或者在“是”与“否”的分支上分别继续。',
117
- Mode: '模式',
118
- 'Continue when "Yes"': '“是”则继续',
119
- 'Branch into "Yes" and "No"': '“是”和“否”分别继续',
120
- 'Condition expression': '条件表达式',
121
- 'Parallel branch': '分支',
122
- 'Run multiple branch processes in parallel.': '并行运行多个分支流程。',
123
- 'Add branch': '增加分支',
124
- 'All succeeded': '全部成功',
125
- 'Any succeeded': '任意成功',
126
- 'Any succeeded or failed': '任意成功或失败',
127
- 'Continue after all branches succeeded': '全部分支都成功后才能继续',
128
- 'Continue after any branch succeeded': '任意分支成功后就继续',
129
- 'Continue after any branch succeeded, or exit after any branch failed.':
130
- '任意分支成功就继续流程,或者任意分支失败就退出流程。',
131
- Loop: '循环',
132
- 'Loop target': '循环对象',
133
- 'Loop index': '当前索引',
134
- 'Loop length': '循环长度',
135
- 'By using a loop node, you can perform the same operation on multiple sets of data. The source of these sets can be either multiple records from a query node or multiple associated records of a single record. Loop node can also be used for iterating a certain number of times or for looping through each character in a string. However, excessive looping may cause performance issues, so use with caution.':
136
- '使用循环节点可以对多条数据进行同样的操作,多条数据的来源可以是查询节点的多条结果,或者一条数据的多条关系数据。也可以用于一定次数的循环,或者对字符串中每一个字符的循环处理。循环次数过高可能引起性能问题,请谨慎使用。',
137
- 'Scope variables': '局域变量',
138
- 'A single number will be treated as a loop count, a single string will be treated as an array of characters, and other non-array values will be converted to arrays. The loop node ends when the loop count is reached, or when the array loop is completed. You can also add condition nodes to the loop to terminate it.':
139
- '单一数字值将被视为循环次数,单一字符串值将被视为字符数组,其他非数组值将被转换为数组。达到循环次数,或者将数组循环完成后,循环节点结束。你也可以在循环中添加条件节点,以终止循环。',
140
- Delay: '延时',
141
- 'Delay a period of time and then continue or exit the process. Can be used to set wait or timeout times in parallel branches.':
142
- '延时一段时间,然后继续或退出流程。可以用于并行分支中等待其他分支或设置超时时间。',
143
- Duration: '时长',
144
- 'End Status': '到时状态',
145
- 'Select status': '选择状态',
146
- 'Succeed and continue': '通过并继续',
147
- 'Fail and exit': '失败并退出',
148
-
149
- Assignee: '负责人',
150
- Assignees: '负责人',
151
- 'User interface': '操作界面',
152
- 'Configure user interface': '配置界面',
153
- 'View user interface': '查看界面',
154
- Separately: '分别处理',
155
- 'Each user has own task': '每个人处理各自的任务',
156
- Collaboratively: '协作处理',
157
- 'Everyone shares one task': '所有人共享同一个任务',
158
- Negotiation: '协商机制',
159
- 'All pass': '全部通过',
160
- 'Everyone should pass': '每个人通过才通过',
161
- 'Any pass': '任意通过',
162
- 'Anyone pass': '任何一人通过即通过',
163
- 'Field name existed in form': '表单中已有对应标识的字段',
164
- 'Custom form': '自定义表单',
165
- 'Data record': '数据记录',
166
- 'Create record form': '新增数据表单',
167
- 'Update record form': '更新数据表单',
168
- 'Filter settings': '筛选设置',
169
-
170
- 'Create record': '新增数据',
171
- 'Add new record to a collection. You can use variables from upstream nodes to assign values to fields.':
172
- '向一个数据表中添加新的数据。可以使用上游节点里的变量为字段赋值。',
173
- 'Update record': '更新数据',
174
- 'Update records of a collection. You can use variables from upstream nodes as query conditions and field values.':
175
- '更新一个数据表中的数据。可以使用上游节点里的变量作为查询条件和数据值。',
176
- 'Update mode': '更新模式',
177
- 'Update in a batch': '批量更新',
178
- 'Update one by one': '逐条更新',
179
- 'Update all eligible data at one time, which has better performance when the amount of data is large. But the updated data will not trigger other workflows, and will not record audit logs.':
180
- '一次性更新所有符合条件的数据,在数据量较大时有比较好的性能;但被更新的数据不会触发其他工作流,也不会记录更新日志。',
181
- 'The updated data can trigger other workflows, and the audit log will also be recorded. But it is usually only applicable to several or dozens of pieces of data, otherwise there will be performance problems.':
182
- '被更新的数据可以再次触发其他工作流,也会记录更新日志;但通常只适用于数条或数十条数据,否则会有性能问题。',
183
- 'Query record': '查询数据',
184
- 'Query records from a collection. You can use variables from upstream nodes as query conditions.':
185
- '查询一个数据表中的数据。可以使用上游节点里的变量作为查询条件。',
186
- 'Allow multiple records as result': '允许结果是多条数据',
187
- 'If checked, when there are multiple records in the query result, an array will be returned as the result, which can be operated on one by one using a loop node. Otherwise, only one record will be returned.':
188
- '选中后,当查询结果有多条记录时,会返回数组作为结果,可以使用循环节点对它逐条操作;否则,仅返回一条数据。',
189
- 'Exit when query result is null': '查询结果为空时,退出流程',
190
- 'Please select collection first': '请先选择数据表',
191
- 'Only update records matching conditions': '只更新满足条件的数据',
192
- 'Please add at least one condition': '请添加至少一个条件',
193
- 'Unassigned fields will be set to default values, and those without default values will be set to null.':
194
- '未被赋值的字段将被设置为默认值,没有默认值的设置为空值。',
195
-
196
- 'Delete record': '删除数据',
197
- 'Delete records of a collection. Could use variables in workflow context as filter. All records match the filter will be deleted.':
198
- '删除一个数据表中的数据。可以使用上游节点里的变量作为过滤条件。所有满足条件的数据都将被删除。',
199
-
200
- Aggregate: '聚合查询',
201
- 'Counting, summing, finding maximum, minimum, and average values for multiple records of a collection or associated data of a record.':
202
- '对一个数据表里的多条数据或者一条数据里的关系数据进行统计、求和、求最大值、最小值、平均值。',
203
- 'Aggregator function': '聚合函数',
204
- 'Target type': '目标类型',
205
- 'Data of collection': '数据表数据',
206
- 'Data of associated collection': '关联数据表数据',
207
- 'Field to aggregate': '聚合字段',
208
- Distinct: '去重',
209
- 'Query result': '查询结果',
210
-
211
- 'Trigger in executed workflow cannot be modified': '已经执行过工作流的触发器不能被修改',
212
- 'Node in executed workflow cannot be modified': '已经执行过工作流中的节点不能被修改',
213
- 'Can not delete': '无法删除',
214
- 'The result of this node has been referenced by other nodes ({{nodes}}), please remove the usage before deleting.':
215
- '该节点的执行结果已被其他节点({{nodes}})引用,删除前请先移除引用。',
216
-
217
- 'HTTP request': 'HTTP 请求',
218
- 'Send HTTP request to a URL. You can use the variables in the upstream nodes as request headers, parameters and request body.':
219
- '向指定 URL 发送 HTTP 请求。可以使用上游节点里的变量作为请求头、参数和请求体。',
220
- 'HTTP method': 'HTTP 方法',
221
- URL: '地址',
222
- Headers: '请求头',
223
- 'Add request header': '添加请求头',
224
- Parameters: '参数',
225
- 'Add parameter': '添加参数',
226
- Body: '请求体',
227
- 'Use variable': '使用变量',
228
- Format: '格式化',
229
- Insert: '插入',
230
- 'Timeout config': '超时设置',
231
- ms: '毫秒',
232
- 'Input request data': '输入请求数据',
233
- 'Only support standard JSON data': '仅支持标准 JSON 数据',
234
- '"Content-Type" only support "application/json", and no need to specify':
235
- '"Content-Type" 请求头仅支持 "application/json",无需填写',
236
- 'Ignore fail request and continue workflow': '忽略失败的请求并继续工作流',
237
-
238
- 'Workflow todos': '工作流待办',
239
- Task: '任务',
240
-
241
- 'Dynamic expression': '动态表达式',
242
- 'An expression for calculation in each rows': '每行数据计算规则不同时使用',
243
- Unconfigured: '未配置',
244
-
245
- 'SQL action': 'SQL 操作',
246
- 'Execute a SQL statement in database': '在数据库中执行一个 SQL 语句',
247
- 'Usage of SQL query result is not supported yet.': 'SQL 执行的结果暂不支持使用。'
248
- };
@@ -1,355 +0,0 @@
1
- import path from 'path';
2
-
3
- import winston from 'winston';
4
- import LRUCache from 'lru-cache';
5
-
6
- import { Op } from '@nocobase/database';
7
- import { Plugin } from '@nocobase/server';
8
- import { Registry } from '@nocobase/utils';
9
-
10
- import initFields from './fields';
11
- import initActions from './actions';
12
- import { EXECUTION_STATUS } from './constants';
13
- import initInstructions, { Instruction } from './instructions';
14
- import Processor from './Processor';
15
- import initTriggers, { Trigger } from './triggers';
16
- import initFunctions, { CustomFunction } from './functions';
17
- import { createLogger, Logger, LoggerOptions, getLoggerLevel, getLoggerFilePath } from '@nocobase/logger';
18
-
19
- import type { WorkflowModel, ExecutionModel, JobModel } from './types';
20
-
21
- type Pending = [ExecutionModel, JobModel?];
22
-
23
- type ID = number | string;
24
- export default class WorkflowPlugin extends Plugin {
25
- instructions: Registry<Instruction> = new Registry();
26
- triggers: Registry<Trigger> = new Registry();
27
- functions: Registry<CustomFunction> = new Registry();
28
- private executing = false;
29
- private pending: Pending[] = [];
30
- private events: [WorkflowModel, any, { context?: any }][] = [];
31
-
32
- private loggerCache: LRUCache<string, Logger>;
33
-
34
- getLogger(workflowId: ID): Logger {
35
- const now = new Date();
36
- const date = `${now.getFullYear()}-${`0${now.getMonth() + 1}`.slice(-2)}-${`0${now.getDate()}`.slice(-2)}`;
37
- const key = `${date}-${workflowId}}`;
38
- if (this.loggerCache.has(key)) {
39
- return this.loggerCache.get(key);
40
- }
41
-
42
- const logger = createLogger({
43
- transports: [
44
- 'console',
45
- new winston.transports.File({
46
- filename: getLoggerFilePath('workflows', date, `${workflowId}.log`),
47
- level: getLoggerLevel(),
48
- }),
49
- ],
50
- } as LoggerOptions);
51
-
52
- this.loggerCache.set(key, logger);
53
-
54
- return logger;
55
- }
56
-
57
- onBeforeSave = async (instance: WorkflowModel, options) => {
58
- const Model = <typeof WorkflowModel>instance.constructor;
59
-
60
- if (instance.enabled) {
61
- instance.set('current', true);
62
- } else if (!instance.current) {
63
- const count = await Model.count({
64
- where: {
65
- key: instance.key,
66
- },
67
- transaction: options.transaction,
68
- });
69
- if (!count) {
70
- instance.set('current', true);
71
- }
72
- }
73
-
74
- if (!instance.changed('enabled') || !instance.enabled) {
75
- return;
76
- }
77
-
78
- const previous = await Model.findOne({
79
- where: {
80
- key: instance.key,
81
- current: true,
82
- id: {
83
- [Op.ne]: instance.id,
84
- },
85
- },
86
- transaction: options.transaction,
87
- });
88
-
89
- if (previous) {
90
- // NOTE: set to `null` but not `false` will not violate the unique index
91
- await previous.update(
92
- { enabled: false, current: null },
93
- {
94
- transaction: options.transaction,
95
- hooks: false,
96
- },
97
- );
98
-
99
- this.toggle(previous, false);
100
- }
101
- };
102
-
103
- async load() {
104
- const { db, options } = this;
105
-
106
- initFields(this);
107
- initActions(this);
108
- initTriggers(this, options.triggers);
109
- initInstructions(this, options.instructions);
110
- initFunctions(this, options.functions);
111
-
112
- this.loggerCache = new LRUCache({
113
- max: 20,
114
- updateAgeOnGet: true,
115
- dispose(logger) {
116
- (<Logger>logger).end();
117
- },
118
- });
119
-
120
- this.app.acl.registerSnippet({
121
- name: `pm.${this.name}.workflows`,
122
- actions: [
123
- 'workflows:*',
124
- 'workflows.nodes:*',
125
- 'executions:list',
126
- 'executions:get',
127
- 'flow_nodes:update',
128
- 'flow_nodes:destroy',
129
- ],
130
- });
131
-
132
- this.app.acl.allow('users_jobs', ['list', 'get', 'submit'], 'loggedIn');
133
-
134
- await db.import({
135
- directory: path.resolve(__dirname, 'collections'),
136
- });
137
-
138
- this.db.addMigrations({
139
- namespace: 'workflow',
140
- directory: path.resolve(__dirname, 'migrations'),
141
- context: {
142
- plugin: this,
143
- },
144
- });
145
-
146
- db.on('workflows.beforeSave', this.onBeforeSave);
147
- db.on('workflows.afterSave', (model: WorkflowModel) => this.toggle(model));
148
- db.on('workflows.afterDestroy', (model: WorkflowModel) => this.toggle(model, false));
149
-
150
- // [Life Cycle]:
151
- // * load all workflows in db
152
- // * add all hooks for enabled workflows
153
- // * add hooks for create/update[enabled]/delete workflow to add/remove specific hooks
154
- this.app.on('beforeStart', async () => {
155
- const collection = db.getCollection('workflows');
156
- const workflows = await collection.repository.find({
157
- filter: { enabled: true },
158
- });
159
-
160
- workflows.forEach((workflow: WorkflowModel) => {
161
- this.toggle(workflow);
162
- });
163
- });
164
-
165
- this.app.on('afterStart', () => {
166
- // check for not started executions
167
- this.dispatch();
168
- });
169
-
170
- this.app.on('beforeStop', async () => {
171
- const collection = db.getCollection('workflows');
172
- const workflows = await collection.repository.find({
173
- filter: { enabled: true },
174
- });
175
-
176
- workflows.forEach((workflow: WorkflowModel) => {
177
- this.toggle(workflow, false);
178
- });
179
- });
180
- }
181
-
182
- toggle(workflow: WorkflowModel, enable?: boolean) {
183
- const type = workflow.get('type');
184
- const trigger = this.triggers.get(type);
185
- if (typeof enable !== 'undefined' ? enable : workflow.get('enabled')) {
186
- // NOTE: remove previous listener if config updated
187
- const prev = workflow.previous();
188
- if (prev.config) {
189
- trigger.off({ ...workflow.get(), ...prev });
190
- }
191
- trigger.on(workflow);
192
- } else {
193
- trigger.off(workflow);
194
- }
195
- }
196
-
197
- public trigger(workflow: WorkflowModel, context: object, options: { context?: any } = {}): void {
198
- // `null` means not to trigger
199
- if (context == null) {
200
- return;
201
- }
202
-
203
- this.events.push([workflow, context, options]);
204
-
205
- this.getLogger(workflow.id).info(`new event triggered, now events: ${this.events.length}`);
206
- this.getLogger(workflow.id).debug(`event data:`, {
207
- data: context,
208
- });
209
-
210
- if (this.events.length > 1) {
211
- return;
212
- }
213
-
214
- // NOTE: no await for quick return
215
- setTimeout(this.prepare);
216
- }
217
-
218
- private prepare = async () => {
219
- const [event] = this.events;
220
- if (!event) {
221
- return;
222
- }
223
- const [workflow, context, options] = event;
224
-
225
- let valid = true;
226
- if (options.context?.executionId) {
227
- // NOTE: no transaction here for read-uncommitted execution
228
- const existed = await workflow.countExecutions({
229
- where: {
230
- id: options.context.executionId,
231
- },
232
- });
233
-
234
- if (existed) {
235
- this.getLogger(workflow.id).warn(
236
- `workflow ${workflow.id} has already been triggered in same execution (${options.context.executionId}), and newly triggering will be skipped.`,
237
- );
238
-
239
- valid = false;
240
- }
241
- }
242
-
243
- if (valid) {
244
- const execution = await this.db.sequelize.transaction(async (transaction) => {
245
- const execution = await workflow.createExecution(
246
- {
247
- context,
248
- key: workflow.key,
249
- status: EXECUTION_STATUS.QUEUEING,
250
- useTransaction: workflow.useTransaction,
251
- },
252
- { transaction },
253
- );
254
-
255
- await workflow.increment('executed', { transaction });
256
-
257
- await (<typeof WorkflowModel>workflow.constructor).increment('allExecuted', {
258
- where: {
259
- key: workflow.key,
260
- },
261
- transaction,
262
- });
263
-
264
- execution.workflow = workflow;
265
-
266
- return execution;
267
- });
268
-
269
- this.getLogger(workflow.id).debug(`execution of workflow ${workflow.id} created as ${execution.id}`, {
270
- data: execution.context,
271
- });
272
-
273
- // NOTE: cache first execution for most cases
274
- if (!this.executing && !this.pending.length) {
275
- this.pending.push([execution]);
276
- }
277
- }
278
-
279
- this.events.shift();
280
-
281
- if (this.events.length) {
282
- await this.prepare();
283
- } else {
284
- this.dispatch();
285
- }
286
- };
287
-
288
- public async resume(job) {
289
- if (!job.execution) {
290
- job.execution = await job.getExecution();
291
- }
292
-
293
- this.pending.push([job.execution, job]);
294
- this.dispatch();
295
- }
296
-
297
- private async dispatch() {
298
- if (this.executing) {
299
- return;
300
- }
301
-
302
- this.executing = true;
303
-
304
- let next: Pending | null = null;
305
- // resuming has high priority
306
- if (this.pending.length) {
307
- next = this.pending.shift() as Pending;
308
- this.getLogger(next[0].workflowId).info(`pending execution (${next[0].id}) ready to process`);
309
- } else {
310
- const execution = (await this.db.getRepository('executions').findOne({
311
- filter: {
312
- status: EXECUTION_STATUS.QUEUEING,
313
- },
314
- appends: ['workflow'],
315
- sort: 'createdAt',
316
- })) as ExecutionModel;
317
- if (execution && execution.workflow.enabled) {
318
- this.getLogger(execution.workflowId).info(`execution (${execution.id}) fetched from db`);
319
- next = [execution];
320
- }
321
- }
322
- if (next) {
323
- await this.process(...next);
324
- }
325
-
326
- this.executing = false;
327
-
328
- if (next) {
329
- this.dispatch();
330
- }
331
- }
332
-
333
- private async process(execution: ExecutionModel, job?: JobModel) {
334
- if (execution.status === EXECUTION_STATUS.QUEUEING) {
335
- await execution.update({ status: EXECUTION_STATUS.STARTED });
336
- }
337
-
338
- const processor = this.createProcessor(execution);
339
-
340
- this.getLogger(execution.workflowId).info(`execution (${execution.id}) ${job ? 'resuming' : 'starting'}...`);
341
-
342
- try {
343
- await (job ? processor.resume(job) : processor.start());
344
- this.getLogger(execution.workflowId).info(
345
- `execution (${execution.id}) finished with status: ${execution.status}`,
346
- );
347
- } catch (err) {
348
- this.getLogger(execution.workflowId).error(`execution (${execution.id}) error: ${err.message}`, err);
349
- }
350
- }
351
-
352
- public createProcessor(execution: ExecutionModel, options = {}): Processor {
353
- return new Processor(execution, { ...options, plugin: this });
354
- }
355
- }