@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,65 +1,38 @@
1
- import { fn, literal, Op, where } from '@nocobase/database';
2
- import parser from 'cron-parser';
3
- import Plugin, { Trigger } from '..';
4
- import type { WorkflowModel } from '../types';
1
+ 'use strict';
5
2
 
6
- export type ScheduleOnField =
7
- | string
8
- | {
9
- field: string;
10
- // in seconds
11
- offset?: number;
12
- unit?: 1000 | 60000 | 3600000 | 86400000;
13
- };
14
- export interface ScheduleTriggerConfig {
15
- // trigger mode
16
- mode: number;
17
- // how to repeat
18
- repeat?: string | number | null;
19
- // limit of repeat times
20
- limit?: number;
21
-
22
- startsOn?: ScheduleOnField;
23
- endsOn?: ScheduleOnField;
24
- }
3
+ Object.defineProperty(exports, '__esModule', { value: true });
25
4
 
26
- export const SCHEDULE_MODE = {
27
- CONSTANT: 0,
28
- COLLECTION_FIELD: 1,
29
- } as const;
5
+ var database = require('@nocobase/database');
6
+ var parser = require('cron-parser');
7
+ var __ = require('..');
30
8
 
31
- interface ScheduleMode {
32
- on?(this: ScheduleTrigger, workflow: WorkflowModel): void;
33
- off?(this: ScheduleTrigger, workflow: WorkflowModel): void;
34
- shouldCache(this: ScheduleTrigger, workflow: WorkflowModel, now: Date): Promise<boolean> | boolean;
35
- trigger(this: ScheduleTrigger, workflow: WorkflowModel, now: Date): any;
36
- }
9
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
37
10
 
38
- const ScheduleModes = new Map<number, ScheduleMode>();
11
+ var parser__default = /*#__PURE__*/_interopDefault(parser);
39
12
 
40
- function parseDateWithoutMs(date: string) {
41
- return Math.floor(Date.parse(date) / 1000) * 1000;
13
+ const SCHEDULE_MODE = {
14
+ CONSTANT: 0,
15
+ COLLECTION_FIELD: 1
16
+ };
17
+ const ScheduleModes = /* @__PURE__ */ new Map();
18
+ function parseDateWithoutMs(date) {
19
+ return Math.floor(Date.parse(date) / 1e3) * 1e3;
42
20
  }
43
-
44
21
  ScheduleModes.set(SCHEDULE_MODE.CONSTANT, {
45
22
  shouldCache(workflow, now) {
46
23
  const { startsOn, endsOn, repeat } = workflow.config;
47
24
  const timestamp = now.getTime();
48
-
49
- // NOTE: align to second start
50
25
  const startTime = parseDateWithoutMs(startsOn);
51
26
  if (!startTime || startTime > timestamp + this.cacheCycle) {
52
27
  return false;
53
28
  }
54
-
55
29
  if (repeat) {
56
- if (typeof repeat === 'number') {
57
- const next = timestamp - ((timestamp - startTime) % repeat) + repeat;
30
+ if (typeof repeat === "number") {
31
+ const next = timestamp - (timestamp - startTime) % repeat + repeat;
58
32
  if (next <= timestamp || next > timestamp + this.cacheCycle) {
59
33
  return false;
60
34
  }
61
35
  }
62
-
63
36
  if (endsOn) {
64
37
  const endTime = parseDateWithoutMs(endsOn);
65
38
  if (!endTime || endTime <= timestamp) {
@@ -71,25 +44,21 @@ ScheduleModes.set(SCHEDULE_MODE.CONSTANT, {
71
44
  return false;
72
45
  }
73
46
  }
74
-
75
47
  return true;
76
48
  },
77
49
  trigger(workflow, now) {
78
50
  const { startsOn, endsOn, repeat } = workflow.config;
79
51
  const timestamp = now.getTime();
80
- // NOTE: align to second start
81
52
  const startTime = parseDateWithoutMs(startsOn);
82
53
  if (!startTime || startTime > timestamp) {
83
54
  return;
84
55
  }
85
-
86
56
  if (repeat) {
87
- if (typeof repeat === 'number') {
57
+ if (typeof repeat === "number") {
88
58
  if (Math.round(timestamp - startTime) % repeat) {
89
59
  return;
90
60
  }
91
61
  }
92
-
93
62
  if (endsOn) {
94
63
  const endTime = parseDateWithoutMs(endsOn);
95
64
  if (!endTime || endTime < timestamp) {
@@ -101,53 +70,46 @@ ScheduleModes.set(SCHEDULE_MODE.CONSTANT, {
101
70
  return;
102
71
  }
103
72
  }
104
-
105
73
  return this.plugin.trigger(workflow, { date: now });
106
- },
74
+ }
107
75
  });
108
-
109
- function getOnTimestampWithOffset(on, now: Date) {
76
+ function getOnTimestampWithOffset(on, now) {
110
77
  switch (typeof on) {
111
- case 'string':
78
+ case "string":
112
79
  return parseDateWithoutMs(on);
113
- case 'object': {
114
- const { field, offset = 0, unit = 1000 } = on;
80
+ case "object": {
81
+ const { field, offset = 0, unit = 1e3 } = on;
115
82
  if (!field) {
116
83
  return null;
117
84
  }
118
85
  const timestamp = now.getTime();
119
- // onDate + offset > now
120
- // onDate > now - offset
121
86
  return timestamp - offset * unit;
122
87
  }
123
88
  default:
124
89
  return null;
125
90
  }
126
91
  }
127
-
128
92
  function getDataOptionTime(data, on, dir = 1) {
129
93
  if (!on) {
130
94
  return null;
131
95
  }
132
96
  switch (typeof on) {
133
- case 'string': {
97
+ case "string": {
134
98
  const time = parseDateWithoutMs(on);
135
99
  return time ? time : null;
136
100
  }
137
- case 'object': {
138
- const { field, offset = 0, unit = 1000 } = on;
101
+ case "object": {
102
+ const { field, offset = 0, unit = 1e3 } = on;
139
103
  return data.get(field) ? data.get(field).getTime() - offset * unit * dir : null;
140
104
  }
141
105
  default:
142
106
  return null;
143
107
  }
144
108
  }
145
-
146
- function getHookId(workflow, type: string) {
109
+ function getHookId(workflow, type) {
147
110
  return `${type}#${workflow.id}`;
148
111
  }
149
-
150
- const DialectTimestampFnMap: { [key: string]: (col: string) => string } = {
112
+ const DialectTimestampFnMap = {
151
113
  postgres(col) {
152
114
  return `CAST(FLOOR(extract(epoch from "${col}")) AS INTEGER)`;
153
115
  },
@@ -156,10 +118,9 @@ const DialectTimestampFnMap: { [key: string]: (col: string) => string } = {
156
118
  },
157
119
  sqlite(col) {
158
120
  return `CAST(FLOOR(unixepoch(${col})) AS INTEGER)`;
159
- },
121
+ }
160
122
  };
161
123
  DialectTimestampFnMap.mariadb = DialectTimestampFnMap.mysql;
162
-
163
124
  ScheduleModes.set(SCHEDULE_MODE.COLLECTION_FIELD, {
164
125
  on(workflow) {
165
126
  const { collection, startsOn, endsOn, repeat } = workflow.config;
@@ -168,9 +129,8 @@ ScheduleModes.set(SCHEDULE_MODE.COLLECTION_FIELD, {
168
129
  if (this.events.has(name)) {
169
130
  return;
170
131
  }
171
- // NOTE: toggle cache depends on new date
172
132
  const listener = async (data, options) => {
173
- const now = new Date();
133
+ const now = /* @__PURE__ */ new Date();
174
134
  now.setMilliseconds(0);
175
135
  const timestamp = now.getTime();
176
136
  const startTime = getDataOptionTime(data, startsOn);
@@ -187,20 +147,14 @@ ScheduleModes.set(SCHEDULE_MODE.COLLECTION_FIELD, {
187
147
  if (!matchNext.call(this, workflow, now)) {
188
148
  return;
189
149
  }
190
- if (
191
- typeof repeat === 'number' &&
192
- repeat > this.cacheCycle &&
193
- (timestamp - startTime) % repeat > this.cacheCycle
194
- ) {
150
+ if (typeof repeat === "number" && repeat > this.cacheCycle && (timestamp - startTime) % repeat > this.cacheCycle) {
195
151
  return;
196
152
  }
197
-
198
153
  this.setCache(workflow);
199
154
  };
200
155
  this.events.set(name, listener);
201
156
  this.plugin.app.db.on(event, listener);
202
157
  },
203
-
204
158
  off(workflow) {
205
159
  const { collection } = workflow.config;
206
160
  const event = `${collection}.afterSave`;
@@ -211,261 +165,207 @@ ScheduleModes.set(SCHEDULE_MODE.COLLECTION_FIELD, {
211
165
  this.plugin.app.db.off(event, listener);
212
166
  }
213
167
  },
214
-
215
168
  async shouldCache(workflow, now) {
216
169
  const { db } = this.plugin.app;
217
170
  const { startsOn, endsOn, repeat, collection } = workflow.config;
218
171
  const timestamp = now.getTime();
219
-
220
172
  const startTimestamp = getOnTimestampWithOffset(startsOn, now);
221
173
  if (!startTimestamp) {
222
174
  return false;
223
175
  }
224
-
225
- const conditions: any[] = [
176
+ const conditions = [
226
177
  {
227
178
  [startsOn.field]: {
228
- [Op.lt]: new Date(startTimestamp + this.cacheCycle),
229
- },
230
- },
179
+ [database.Op.lt]: new Date(startTimestamp + this.cacheCycle)
180
+ }
181
+ }
231
182
  ];
232
-
233
- // when repeat is number, means repeat after startsOn
234
- // (now - startsOn) % repeat <= cacheCycle
235
183
  if (repeat) {
236
- const tsFn = DialectTimestampFnMap[db.options.dialect!];
237
- if (typeof repeat === 'number' && repeat > this.cacheCycle && tsFn) {
184
+ const tsFn = DialectTimestampFnMap[db.options.dialect];
185
+ if (typeof repeat === "number" && repeat > this.cacheCycle && tsFn) {
238
186
  conditions.push(
239
- where(
240
- fn('MOD', literal(`${Math.round(timestamp / 1000)} - ${tsFn(startsOn.field)}`), Math.round(repeat / 1000)),
241
- { [Op.lt]: Math.round(this.cacheCycle / 1000) },
242
- ),
187
+ database.where(
188
+ database.fn("MOD", database.literal(`${Math.round(timestamp / 1e3)} - ${tsFn(startsOn.field)}`), Math.round(repeat / 1e3)),
189
+ { [database.Op.lt]: Math.round(this.cacheCycle / 1e3) }
190
+ )
243
191
  );
244
- // conditions.push(literal(`mod(${timestamp} - ${tsFn(startsOn.field)} * 1000, ${repeat}) < ${this.cacheCycle}`));
245
192
  }
246
-
247
193
  if (endsOn) {
248
194
  const endTimestamp = getOnTimestampWithOffset(endsOn, now);
249
195
  if (!endTimestamp) {
250
196
  return false;
251
197
  }
252
- if (typeof endsOn === 'string') {
198
+ if (typeof endsOn === "string") {
253
199
  if (endTimestamp <= timestamp) {
254
200
  return false;
255
201
  }
256
202
  } else {
257
203
  conditions.push({
258
204
  [endsOn.field]: {
259
- [Op.gte]: new Date(endTimestamp + this.interval),
260
- },
205
+ [database.Op.gte]: new Date(endTimestamp + this.interval)
206
+ }
261
207
  });
262
208
  }
263
209
  }
264
210
  } else {
265
211
  conditions.push({
266
212
  [startsOn.field]: {
267
- [Op.gte]: new Date(startTimestamp),
268
- },
213
+ [database.Op.gte]: new Date(startTimestamp)
214
+ }
269
215
  });
270
216
  }
271
-
272
217
  const { model } = db.getCollection(collection);
273
218
  const count = await model.count({
274
- where: { [Op.and]: conditions },
219
+ where: { [database.Op.and]: conditions }
275
220
  });
276
-
277
221
  return Boolean(count);
278
222
  },
279
-
280
- async trigger(workflow, now: Date) {
223
+ async trigger(workflow, now) {
281
224
  const { startsOn, repeat, endsOn, collection, appends } = workflow.config;
282
225
  const timestamp = now.getTime();
283
-
284
226
  const startTimestamp = getOnTimestampWithOffset(startsOn, now);
285
227
  if (!startTimestamp) {
286
228
  return false;
287
229
  }
288
-
289
- const conditions: any[] = [
230
+ const conditions = [
290
231
  {
291
232
  [startsOn.field]: {
292
- [Op.lt]: new Date(startTimestamp + this.interval),
293
- },
294
- },
233
+ [database.Op.lt]: new Date(startTimestamp + this.interval)
234
+ }
235
+ }
295
236
  ];
296
-
297
237
  if (repeat) {
298
- // startsOn not after now
299
238
  conditions.push({
300
239
  [startsOn.field]: {
301
- [Op.lt]: new Date(startTimestamp),
302
- },
240
+ [database.Op.lt]: new Date(startTimestamp)
241
+ }
303
242
  });
304
-
305
- const tsFn = DialectTimestampFnMap[this.plugin.app.db.options.dialect!];
306
- if (typeof repeat === 'number' && tsFn) {
243
+ const tsFn = DialectTimestampFnMap[this.plugin.app.db.options.dialect];
244
+ if (typeof repeat === "number" && tsFn) {
307
245
  conditions.push(
308
- where(
309
- fn('MOD', literal(`${Math.round(timestamp / 1000)} - ${tsFn(startsOn.field)}`), Math.round(repeat / 1000)),
310
- { [Op.eq]: 0 },
311
- ),
246
+ database.where(
247
+ database.fn("MOD", database.literal(`${Math.round(timestamp / 1e3)} - ${tsFn(startsOn.field)}`), Math.round(repeat / 1e3)),
248
+ { [database.Op.eq]: 0 }
249
+ )
312
250
  );
313
- // conditions.push(literal(`MOD(CAST(${timestamp} AS BIGINT) - CAST((FLOOR(${tsFn(startsOn.field)}) AS BIGINT) * 1000), ${repeat}) = 0`));
314
251
  }
315
-
316
252
  if (endsOn) {
317
253
  const endTimestamp = getOnTimestampWithOffset(endsOn, now);
318
254
  if (!endTimestamp) {
319
255
  return false;
320
256
  }
321
-
322
- if (typeof endsOn === 'string') {
257
+ if (typeof endsOn === "string") {
323
258
  if (endTimestamp <= timestamp) {
324
259
  return false;
325
260
  }
326
261
  } else {
327
262
  conditions.push({
328
263
  [endsOn.field]: {
329
- [Op.gte]: new Date(endTimestamp + this.interval),
330
- },
264
+ [database.Op.gte]: new Date(endTimestamp + this.interval)
265
+ }
331
266
  });
332
267
  }
333
268
  }
334
269
  } else {
335
- // startsOn exactly equal to now in 1s
336
270
  conditions.push({
337
271
  [startsOn.field]: {
338
- [Op.gte]: new Date(startTimestamp),
339
- },
272
+ [database.Op.gte]: new Date(startTimestamp)
273
+ }
340
274
  });
341
275
  }
342
-
343
276
  const repo = this.plugin.app.db.getRepository(collection);
344
277
  const instances = await repo.find({
345
278
  filter: {
346
- $and: conditions,
279
+ $and: conditions
347
280
  },
348
- appends,
281
+ appends
349
282
  });
350
-
351
283
  instances.forEach((item) => {
352
284
  this.plugin.trigger(workflow, {
353
285
  date: now,
354
- data: item.toJSON(),
286
+ data: item.toJSON()
355
287
  });
356
288
  });
357
- },
289
+ }
358
290
  });
359
-
360
- function matchNext(this: ScheduleTrigger, workflow, now: Date, range: number = this.cacheCycle): boolean {
291
+ function matchNext(workflow, now, range = this.cacheCycle) {
361
292
  const { repeat } = workflow.config;
362
- // no repeat means no need to rerun
363
- // but if in current cycle, should be put in cache
364
- // no repeat but in current cycle means startsOn has been configured
365
- // so we need to more info to determine if necessary config items
366
- if (typeof repeat !== 'string') {
293
+ if (typeof repeat !== "string") {
367
294
  return true;
368
295
  }
369
-
370
296
  const currentDate = new Date(now);
371
297
  currentDate.setMilliseconds(-1);
372
298
  const timestamp = now.getTime();
373
- const interval = parser.parseExpression(repeat, { currentDate });
299
+ const interval = parser__default.default.parseExpression(repeat, { currentDate });
374
300
  const next = interval.next();
375
-
376
- // NOTE: cache all workflows will be matched in current cycle
377
301
  if (next.getTime() - timestamp <= range) {
378
302
  return true;
379
303
  }
380
-
381
304
  return false;
382
305
  }
383
-
384
- export default class ScheduleTrigger extends Trigger {
306
+ class ScheduleTrigger extends __.Trigger {
385
307
  static CacheRules = [
386
308
  ({ config, allExecuted }) => (config.limit ? allExecuted < config.limit : true) && config.startsOn,
387
309
  matchNext,
388
- function (workflow, now) {
310
+ function(workflow, now) {
389
311
  const { mode } = workflow.config;
390
312
  const modeHandlers = ScheduleModes.get(mode);
391
313
  if (!modeHandlers) {
392
314
  return false;
393
315
  }
394
316
  return modeHandlers.shouldCache.call(this, workflow, now);
395
- },
317
+ }
396
318
  ];
397
-
398
319
  static TriggerRules = [
399
320
  ({ config, allExecuted }) => (config.limit ? allExecuted < config.limit : true) && config.startsOn,
400
- function (workflow, now) {
321
+ function(workflow, now) {
401
322
  return matchNext.call(this, workflow, now, 0);
402
- },
323
+ }
403
324
  ];
404
-
405
- events = new Map();
406
-
407
- private timer: NodeJS.Timeout | null = null;
408
-
409
- private cache: Map<number | string, any> = new Map();
410
-
325
+ events = /* @__PURE__ */ new Map();
326
+ timer = null;
327
+ cache = /* @__PURE__ */ new Map();
411
328
  // running interval, default to 1s
412
- interval = 1_000;
329
+ interval = 1e3;
413
330
  // caching workflows in range, default to 1min
414
- cacheCycle = 60_000;
415
-
416
- constructor(plugin: Plugin) {
331
+ cacheCycle = 6e4;
332
+ constructor(plugin) {
417
333
  super(plugin);
418
-
419
- plugin.app.on('beforeStop', () => {
334
+ plugin.app.on("beforeStop", () => {
420
335
  if (this.timer) {
421
336
  clearInterval(this.timer);
422
337
  }
423
338
  });
424
339
  }
425
-
426
340
  init() {
427
- if (this.plugin.app.name !== 'main') {
341
+ if (this.plugin.app.name !== "main") {
428
342
  return;
429
343
  }
430
-
431
344
  if (this.timer) {
432
345
  return;
433
346
  }
434
-
435
- const now = new Date();
436
-
437
- // NOTE: assign to this.timer to avoid duplicated initialization
347
+ const now = /* @__PURE__ */ new Date();
438
348
  this.timer = setTimeout(
439
349
  this.run,
440
350
  // NOTE:
441
351
  // try to align to system time on each second starts,
442
352
  // after at least 1 second initialized for everything to get ready.
443
353
  // so jobs in 2 seconds will be missed at first start.
444
- 1_000 - now.getMilliseconds(),
354
+ 1e3 - now.getMilliseconds()
445
355
  );
446
356
  }
447
-
448
357
  run = () => {
449
- const now = new Date();
450
- // 1001 to avoid 999
451
- const nextInterval = 1_001 - now.getMilliseconds();
358
+ const now = /* @__PURE__ */ new Date();
359
+ const nextInterval = 1001 - now.getMilliseconds();
452
360
  now.setMilliseconds(0);
453
-
454
- // NOTE: trigger `onTick` for high interval jobs which are cached in last 1 min
455
361
  this.onTick(now);
456
-
457
- // NOTE: reload when second match cache cycle
458
362
  if (!(now.getTime() % this.cacheCycle)) {
459
363
  this.reload();
460
364
  }
461
-
462
365
  this.timer = setTimeout(this.run, nextInterval);
463
366
  };
464
-
465
367
  async onTick(now) {
466
- // NOTE: trigger workflows in sequence when sqlite due to only one transaction
467
- const isSqlite = this.plugin.app.db.options.dialect === 'sqlite';
468
-
368
+ const isSqlite = this.plugin.app.db.options.dialect === "sqlite";
469
369
  return Array.from(this.cache.values()).reduce(
470
370
  (prev, workflow) => {
471
371
  if (!this.shouldTrigger(workflow, now)) {
@@ -477,70 +377,58 @@ export default class ScheduleTrigger extends Trigger {
477
377
  this.trigger(workflow, now);
478
378
  return null;
479
379
  },
480
- isSqlite ? Promise.resolve() : null,
380
+ isSqlite ? Promise.resolve() : null
481
381
  );
482
382
  }
483
-
484
383
  async reload() {
485
- const WorkflowModel = this.plugin.app.db.getCollection('workflows').model;
384
+ const WorkflowModel = this.plugin.app.db.getCollection("workflows").model;
486
385
  const workflows = await WorkflowModel.findAll({
487
- where: { enabled: true, type: 'schedule' },
386
+ where: { enabled: true, type: "schedule" },
488
387
  include: [
489
388
  {
490
- association: 'executions',
491
- attributes: ['id', 'createdAt'],
389
+ association: "executions",
390
+ attributes: ["id", "createdAt"],
492
391
  separate: true,
493
392
  limit: 1,
494
- order: [['createdAt', 'DESC']],
495
- },
393
+ order: [["createdAt", "DESC"]]
394
+ }
496
395
  ],
497
- group: ['id'],
396
+ group: ["id"]
498
397
  });
499
-
500
- // NOTE: clear cached jobs in last cycle
501
- this.cache = new Map();
502
-
398
+ this.cache = /* @__PURE__ */ new Map();
503
399
  this.inspect(workflows);
504
400
  }
505
-
506
401
  inspect(workflows) {
507
- const now = new Date();
402
+ const now = /* @__PURE__ */ new Date();
508
403
  now.setMilliseconds(0);
509
-
510
404
  workflows.forEach(async (workflow) => {
511
405
  const should = await this.shouldCache(workflow, now);
512
-
513
406
  if (should) {
514
- this.plugin.app.logger.info('caching scheduled workflow will run in next minute:', workflow.id);
407
+ this.plugin.app.logger.info("caching scheduled workflow will run in next minute:", workflow.id);
515
408
  }
516
-
517
409
  this.setCache(workflow, !should);
518
410
  });
519
411
  }
520
-
521
412
  setCache(workflow, out = false) {
522
413
  out ? this.cache.delete(workflow.id) : this.cache.set(workflow.id, workflow);
523
414
  }
524
-
525
415
  async shouldCache(workflow, now) {
526
- for await (const rule of (<typeof ScheduleTrigger>this.constructor).CacheRules) {
527
- if (!(await rule.call(this, workflow, now))) {
416
+ for await (const rule of this.constructor.CacheRules) {
417
+ if (!await rule.call(this, workflow, now)) {
528
418
  return false;
529
419
  }
530
420
  }
531
421
  return true;
532
422
  }
533
-
534
- shouldTrigger(workflow, now): boolean {
535
- for (const rule of (<typeof ScheduleTrigger>this.constructor).TriggerRules) {
423
+ shouldTrigger(workflow, now) {
424
+ for (const rule of this.constructor.TriggerRules) {
536
425
  if (!rule.call(this, workflow, now)) {
537
426
  return false;
538
427
  }
539
428
  }
540
429
  return true;
541
430
  }
542
-
543
- async trigger(workflow, date: Date) {
431
+ async trigger(workflow, date) {
544
432
  const { mode } = workflow.config;
545
433
  const modeHandlers = ScheduleModes.get(mode);
546
434
  if (!modeHandlers) {
@@ -548,11 +436,8 @@ export default class ScheduleTrigger extends Trigger {
548
436
  }
549
437
  return modeHandlers.trigger.call(this, workflow, date);
550
438
  }
551
-
552
439
  on(workflow) {
553
- // NOTE: lazy initialization
554
440
  this.init();
555
-
556
441
  const { mode } = workflow.config;
557
442
  const modeHandlers = ScheduleModes.get(mode);
558
443
  if (modeHandlers && modeHandlers.on) {
@@ -569,3 +454,6 @@ export default class ScheduleTrigger extends Trigger {
569
454
  this.cache.delete(workflow.id);
570
455
  }
571
456
  }
457
+
458
+ exports.SCHEDULE_MODE = SCHEDULE_MODE;
459
+ exports.default = ScheduleTrigger;
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ var database = require('@nocobase/database');
4
+
5
+ class ExecutionModel extends database.Model {
6
+ }
7
+
8
+ module.exports = ExecutionModel;
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ var database = require('@nocobase/database');
4
+
5
+ class FlowNodeModel extends database.Model {
6
+ }
7
+
8
+ module.exports = FlowNodeModel;
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ var database = require('@nocobase/database');
4
+
5
+ class JobModel extends database.Model {
6
+ }
7
+
8
+ module.exports = JobModel;
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ var database = require('@nocobase/database');
4
+
5
+ class WorkflowModel extends database.Model {
6
+ }
7
+
8
+ module.exports = WorkflowModel;
@@ -0,0 +1,2 @@
1
+ 'use strict';
2
+