@saltcorn/data 1.1.0-beta.13 → 1.1.0-beta.14

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 (78) hide show
  1. package/dist/base-plugin/actions.d.ts +102 -9
  2. package/dist/base-plugin/actions.d.ts.map +1 -1
  3. package/dist/base-plugin/actions.js +181 -28
  4. package/dist/base-plugin/actions.js.map +1 -1
  5. package/dist/base-plugin/index.d.ts +123 -122
  6. package/dist/base-plugin/index.d.ts.map +1 -1
  7. package/dist/base-plugin/viewtemplates/edit.d.ts +4 -3
  8. package/dist/base-plugin/viewtemplates/edit.d.ts.map +1 -1
  9. package/dist/base-plugin/viewtemplates/edit.js +25 -4
  10. package/dist/base-plugin/viewtemplates/edit.js.map +1 -1
  11. package/dist/base-plugin/viewtemplates/viewable_fields.d.ts.map +1 -1
  12. package/dist/base-plugin/viewtemplates/viewable_fields.js +5 -1
  13. package/dist/base-plugin/viewtemplates/viewable_fields.js.map +1 -1
  14. package/dist/db/state.d.ts +1 -0
  15. package/dist/db/state.d.ts.map +1 -1
  16. package/dist/db/state.js +1 -0
  17. package/dist/db/state.js.map +1 -1
  18. package/dist/migrations/202412051957.d.ts +3 -0
  19. package/dist/migrations/202412051957.d.ts.map +1 -0
  20. package/dist/migrations/202412051957.js +48 -0
  21. package/dist/migrations/202412051957.js.map +1 -0
  22. package/dist/migrations/202412111526.d.ts +3 -0
  23. package/dist/migrations/202412111526.d.ts.map +1 -0
  24. package/dist/migrations/202412111526.js +38 -0
  25. package/dist/migrations/202412111526.js.map +1 -0
  26. package/dist/models/config.d.ts.map +1 -1
  27. package/dist/models/config.js +17 -7
  28. package/dist/models/config.js.map +1 -1
  29. package/dist/models/field.d.ts.map +1 -1
  30. package/dist/models/field.js +22 -4
  31. package/dist/models/field.js.map +1 -1
  32. package/dist/models/form.d.ts.map +1 -1
  33. package/dist/models/form.js +5 -1
  34. package/dist/models/form.js.map +1 -1
  35. package/dist/models/page.d.ts.map +1 -1
  36. package/dist/models/page.js +3 -1
  37. package/dist/models/page.js.map +1 -1
  38. package/dist/models/scheduler.d.ts.map +1 -1
  39. package/dist/models/scheduler.js +4 -0
  40. package/dist/models/scheduler.js.map +1 -1
  41. package/dist/models/table.d.ts +1 -0
  42. package/dist/models/table.d.ts.map +1 -1
  43. package/dist/models/table.js +18 -0
  44. package/dist/models/table.js.map +1 -1
  45. package/dist/models/trigger.d.ts +5 -1
  46. package/dist/models/trigger.d.ts.map +1 -1
  47. package/dist/models/trigger.js +38 -7
  48. package/dist/models/trigger.js.map +1 -1
  49. package/dist/models/workflow_run.d.ts +77 -0
  50. package/dist/models/workflow_run.d.ts.map +1 -0
  51. package/dist/models/workflow_run.js +342 -0
  52. package/dist/models/workflow_run.js.map +1 -0
  53. package/dist/models/workflow_step.d.ts +58 -0
  54. package/dist/models/workflow_step.d.ts.map +1 -0
  55. package/dist/models/workflow_step.js +144 -0
  56. package/dist/models/workflow_step.js.map +1 -0
  57. package/dist/models/workflow_trace.d.ts +57 -0
  58. package/dist/models/workflow_trace.d.ts.map +1 -0
  59. package/dist/models/workflow_trace.js +90 -0
  60. package/dist/models/workflow_trace.js.map +1 -0
  61. package/dist/plugin-helper.d.ts +0 -1
  62. package/dist/plugin-helper.d.ts.map +1 -1
  63. package/dist/plugin-helper.js +3 -2
  64. package/dist/plugin-helper.js.map +1 -1
  65. package/dist/tests/actions.test.js.map +1 -1
  66. package/dist/tests/field.test.js +47 -0
  67. package/dist/tests/field.test.js.map +1 -1
  68. package/dist/tests/workflow.test.js +3 -0
  69. package/dist/tests/workflow.test.js.map +1 -1
  70. package/dist/tests/workflow_run.test.d.ts +2 -0
  71. package/dist/tests/workflow_run.test.d.ts.map +1 -0
  72. package/dist/tests/workflow_run.test.js +109 -0
  73. package/dist/tests/workflow_run.test.js.map +1 -0
  74. package/dist/utils.d.ts +1 -0
  75. package/dist/utils.d.ts.map +1 -1
  76. package/dist/utils.js +9 -1
  77. package/dist/utils.js.map +1 -1
  78. package/package.json +8 -8
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ /**
6
+ * Workflow step Database Access Layer
7
+ * @category saltcorn-data
8
+ * @module models/workflow_step
9
+ * @subcategory models
10
+ */
11
+ const db_1 = __importDefault(require("../db"));
12
+ const trigger_1 = __importDefault(require("./trigger"));
13
+ const table_1 = __importDefault(require("./table"));
14
+ const expression_1 = __importDefault(require("./expression"));
15
+ const { eval_expression } = expression_1.default;
16
+ const { getState } = require("../db/state");
17
+ /**
18
+ * WorkflowStep Class
19
+ * @category saltcorn-data
20
+ */
21
+ class WorkflowStep {
22
+ /**
23
+ * WorkflowStep constructor
24
+ * @param {object} o
25
+ */
26
+ constructor(o) {
27
+ this.id = o.id;
28
+ this.name = o.name;
29
+ this.trigger_id = o.trigger_id;
30
+ this.next_step = o.next_step;
31
+ this.only_if = o.only_if;
32
+ this.action_name = o.action_name;
33
+ this.initial_step = !!o.initial_step;
34
+ this.configuration =
35
+ typeof o.configuration === "string"
36
+ ? JSON.parse(o.configuration)
37
+ : o.configuration;
38
+ }
39
+ /**
40
+ * @param {object} lib_in
41
+ */
42
+ static async create(step_in) {
43
+ const step = new WorkflowStep(step_in);
44
+ if (step.initial_step) {
45
+ await db_1.default.updateWhere("_sc_workflow_steps", { initial_step: false }, {
46
+ trigger_id: step.trigger_id,
47
+ });
48
+ }
49
+ return await db_1.default.insert("_sc_workflow_steps", step.toJson);
50
+ }
51
+ /**
52
+ * @type {...*}
53
+ */
54
+ get toJson() {
55
+ const { id, ...rest } = this;
56
+ return rest;
57
+ }
58
+ /**
59
+ * @param {*} where
60
+ * @param {*} selectopts
61
+ * @returns {WorkflowStep[]}
62
+ */
63
+ static async find(where, selectopts) {
64
+ const us = await db_1.default.select("_sc_workflow_steps", where, selectopts);
65
+ return us.map((u) => new WorkflowStep(u));
66
+ }
67
+ /**
68
+ * @param {*} where
69
+ * @returns {WorkflowStep}
70
+ */
71
+ static async findOne(where) {
72
+ const u = await db_1.default.selectMaybeOne("_sc_workflow_steps", where);
73
+ return u ? new WorkflowStep(u) : u;
74
+ }
75
+ /**
76
+ * @param {*} what
77
+ * @returns {object}
78
+ */
79
+ /**
80
+ * @returns {Promise<void>}
81
+ */
82
+ async delete() {
83
+ const schema = db_1.default.getTenantSchemaPrefix();
84
+ await db_1.default.query(`delete FROM ${schema}_sc_workflow_steps WHERE id = $1`, [
85
+ this.id,
86
+ ]);
87
+ }
88
+ static async deleteForTrigger(trigger_id) {
89
+ const schema = db_1.default.getTenantSchemaPrefix();
90
+ await db_1.default.query(`delete FROM ${schema}_sc_workflow_steps WHERE trigger_id = $1`, [trigger_id]);
91
+ }
92
+ /**
93
+ * @param {*} row
94
+ * @returns {Promise<void>}
95
+ */
96
+ async update(row) {
97
+ if (row.initial_step) {
98
+ await db_1.default.updateWhere("_sc_workflow_steps", { initial_step: false }, {
99
+ trigger_id: this.trigger_id,
100
+ not: { id: this.id },
101
+ });
102
+ }
103
+ await db_1.default.update("_sc_workflow_steps", row, this.id);
104
+ }
105
+ async run(context, user) {
106
+ if (this.only_if) {
107
+ const proceed = eval_expression(this.only_if, context, user, `Only if expression in ${this.name} step`);
108
+ if (!proceed)
109
+ return;
110
+ }
111
+ if (this.action_name === "TableQuery") {
112
+ const table = table_1.default.findOne({ name: this.configuration.query_table });
113
+ if (!table)
114
+ throw new Error(`Table ${this.configuration.query_table} not found`);
115
+ const query = eval_expression(this.configuration.query_object, context, user, `Query expression in ${this.name} step`);
116
+ const rows = await table.getRows(query);
117
+ return { [this.configuration.query_variable]: rows };
118
+ }
119
+ if (this.action_name === "SetContext") {
120
+ return eval_expression(this.configuration.ctx_values, context, user, `Context values expression in ${this.name} step`);
121
+ }
122
+ let state_action = getState().actions[this.action_name];
123
+ if (state_action) {
124
+ return await state_action.run({
125
+ configuration: this.configuration,
126
+ user,
127
+ row: context,
128
+ mode: "workflow",
129
+ });
130
+ }
131
+ else {
132
+ const trigger = await trigger_1.default.findOne({ name: this.action_name });
133
+ state_action = getState().actions[trigger.action];
134
+ return await state_action.run({
135
+ configuration: trigger.configuration,
136
+ user,
137
+ row: context,
138
+ mode: "workflow",
139
+ });
140
+ }
141
+ }
142
+ }
143
+ module.exports = WorkflowStep;
144
+ //# sourceMappingURL=workflow_step.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow_step.js","sourceRoot":"","sources":["../../models/workflow_step.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import type { Where, SelectOptions } from "@saltcorn/db-common/internal";
2
+ import type { WorkflowTraceCfg } from "@saltcorn/types/model-abstracts/abstract_workflow_trace";
3
+ /**
4
+ * WorkflowTrace Class
5
+ * @category saltcorn-data
6
+ */
7
+ declare class WorkflowTrace {
8
+ id?: number;
9
+ run_id: number;
10
+ context: any;
11
+ step_name_run: string;
12
+ wait_info?: any;
13
+ step_started_at: Date;
14
+ elapsed: number;
15
+ user_id?: number;
16
+ error?: string;
17
+ status: "Pending" | "Running" | "Finished" | "Waiting" | "Error";
18
+ /**
19
+ * WorkflowTrace constructor
20
+ * @param {object} o
21
+ */
22
+ constructor(o: WorkflowTraceCfg | WorkflowTrace);
23
+ /**
24
+ * @param {object} lib_in
25
+ */
26
+ static create(run_in: WorkflowTraceCfg): Promise<WorkflowTrace>;
27
+ /**
28
+ * @type {...*}
29
+ */
30
+ get toJson(): any;
31
+ /**
32
+ * @param {*} where
33
+ * @param {*} selectopts
34
+ * @returns {WorkflowTrace[]}
35
+ */
36
+ static find(where: Where, selectopts?: SelectOptions): Promise<WorkflowTrace[]>;
37
+ /**
38
+ * @param {*} where
39
+ * @returns {WorkflowTrace}
40
+ */
41
+ static findOne(where: Where): Promise<WorkflowTrace>;
42
+ /**
43
+ * @param {*} what
44
+ * @returns {object}
45
+ */
46
+ /**
47
+ * @returns {Promise<void>}
48
+ */
49
+ delete(): Promise<void>;
50
+ /**
51
+ * @param {*} row
52
+ * @returns {Promise<void>}
53
+ */
54
+ static count(where?: Where): Promise<number>;
55
+ }
56
+ export = WorkflowTrace;
57
+ //# sourceMappingURL=workflow_trace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow_trace.d.ts","sourceRoot":"","sources":["../../models/workflow_trace.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAO,MAAM,8BAA8B,CAAC;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yDAAyD,CAAC;AAEhG;;;GAGG;AACH,cAAM,aAAa;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,GAAG,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,eAAe,EAAE,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;IAEjE;;;OAGG;gBACS,CAAC,EAAE,gBAAgB,GAAG,aAAa;IAe/C;;OAEG;WACU,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;IAOrE;;OAEG;IACH,IAAI,MAAM,IAAI,GAAG,CAGhB;IAED;;;;OAIG;WACU,IAAI,CACf,KAAK,EAAE,KAAK,EACZ,UAAU,CAAC,EAAE,aAAa,GACzB,OAAO,CAAC,aAAa,EAAE,CAAC;IAK3B;;;OAGG;WACU,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC;IAK1D;;;OAGG;IACH;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAO7B;;;OAGG;WAEU,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;CAGnD;AAED,SAAS,aAAa,CAAC"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ /**
6
+ * Workflow Trace Database Access Layer
7
+ * @category saltcorn-data
8
+ * @module models/workflow_trace
9
+ * @subcategory models
10
+ */
11
+ const db_1 = __importDefault(require("../db"));
12
+ /**
13
+ * WorkflowTrace Class
14
+ * @category saltcorn-data
15
+ */
16
+ class WorkflowTrace {
17
+ /**
18
+ * WorkflowTrace constructor
19
+ * @param {object} o
20
+ */
21
+ constructor(o) {
22
+ this.id = o.id;
23
+ this.run_id = o.run_id;
24
+ this.context =
25
+ typeof o.context === "string" ? JSON.parse(o.context) : o.context || {};
26
+ this.wait_info =
27
+ typeof o.wait_info === "string" ? JSON.parse(o.wait_info) : o.wait_info;
28
+ this.step_started_at = o.step_started_at || new Date();
29
+ this.user_id = o.user_id;
30
+ this.error = o.error;
31
+ this.status = o.status || "Pending";
32
+ this.step_name_run = o.step_name_run;
33
+ this.elapsed = o.elapsed;
34
+ }
35
+ /**
36
+ * @param {object} lib_in
37
+ */
38
+ static async create(run_in) {
39
+ const run = new WorkflowTrace(run_in);
40
+ const id = await db_1.default.insert("_sc_workflow_trace", run.toJson);
41
+ run.id = id;
42
+ return run;
43
+ }
44
+ /**
45
+ * @type {...*}
46
+ */
47
+ get toJson() {
48
+ const { id, ...rest } = this;
49
+ return rest;
50
+ }
51
+ /**
52
+ * @param {*} where
53
+ * @param {*} selectopts
54
+ * @returns {WorkflowTrace[]}
55
+ */
56
+ static async find(where, selectopts) {
57
+ const us = await db_1.default.select("_sc_workflow_trace", where, selectopts);
58
+ return us.map((u) => new WorkflowTrace(u));
59
+ }
60
+ /**
61
+ * @param {*} where
62
+ * @returns {WorkflowTrace}
63
+ */
64
+ static async findOne(where) {
65
+ const u = await db_1.default.selectMaybeOne("_sc_workflow_trace", where);
66
+ return u ? new WorkflowTrace(u) : u;
67
+ }
68
+ /**
69
+ * @param {*} what
70
+ * @returns {object}
71
+ */
72
+ /**
73
+ * @returns {Promise<void>}
74
+ */
75
+ async delete() {
76
+ const schema = db_1.default.getTenantSchemaPrefix();
77
+ await db_1.default.query(`delete FROM ${schema}_sc_workflow_trace WHERE id = $1`, [
78
+ this.id,
79
+ ]);
80
+ }
81
+ /**
82
+ * @param {*} row
83
+ * @returns {Promise<void>}
84
+ */
85
+ static async count(where) {
86
+ return await db_1.default.count("_sc_workflow_trace", where);
87
+ }
88
+ }
89
+ module.exports = WorkflowTrace;
90
+ //# sourceMappingURL=workflow_trace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow_trace.js","sourceRoot":"","sources":["../../models/workflow_trace.ts"],"names":[],"mappings":";;;;AAAA;;;;;GAKG;AACH,+CAAuB;AAIvB;;;GAGG;AACH,MAAM,aAAa;IAYjB;;;OAGG;IACH,YAAY,CAAmC;QAC7C,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QACvB,IAAI,CAAC,OAAO;YACV,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;QAC1E,IAAI,CAAC,SAAS;YACZ,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1E,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,eAAe,IAAI,IAAI,IAAI,EAAE,CAAC;QACvD,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC;QACpC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAwB;QAC1C,MAAM,GAAG,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,EAAE,GAAG,MAAM,YAAE,CAAC,MAAM,CAAC,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7D,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;QACZ,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,CACf,KAAY,EACZ,UAA0B;QAE1B,MAAM,EAAE,GAAG,MAAM,YAAE,CAAC,MAAM,CAAC,oBAAoB,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QACpE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAY;QAC/B,MAAM,CAAC,GAAG,MAAM,YAAE,CAAC,cAAc,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;QAC/D,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAED;;;OAGG;IACH;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,MAAM,MAAM,GAAG,YAAE,CAAC,qBAAqB,EAAE,CAAC;QAC1C,MAAM,YAAE,CAAC,KAAK,CAAC,eAAe,MAAM,kCAAkC,EAAE;YACtE,IAAI,CAAC,EAAE;SACR,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IAEH,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAa;QAC9B,OAAO,MAAM,YAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;CACF;AAED,iBAAS,aAAa,CAAC"}
@@ -261,6 +261,5 @@ import { sqlBinOp } from "@saltcorn/db-common/internal";
261
261
  import { sqlFun } from "@saltcorn/db-common/internal";
262
262
  import Table = require("./models/table");
263
263
  import Field = require("./models/field");
264
- import View = require("./models/view");
265
264
  export { add_free_variables_to_joinfields, sqlBinOp, sqlFun };
266
265
  //# sourceMappingURL=plugin-helper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-helper.d.ts","sourceRoot":"","sources":["../plugin-helper.js"],"names":[],"mappings":"AAkwBA;;;;;;;;;GASG;AACH,wHARW,KAAK,GAAC,MAAM,GAMV,QAAQ,MAAM,EAAE,CAAC,CA0mB7B;AAkLD;;;;;;;;GAQG;AACH,gDANW,MAAM,EAAE,UACR,KAAK,EAAE,sCAGL,MAAM,CA2NlB;AA/SD;;;;;;;;;;;;;;;;;;;;;;;;;EA2EC;AA9KD;;;;;;;GAOG;AACH,uCALW,KAAK,GAAC,MAAM,YACZ,MAAM,sBAEJ,QAAQ,MAAM,EAAE,CAAC,CAoC7B;AAED;;;;;;GAMG;AACH,wCAJW,KAAK,GAAC,MAAM,YACZ,MAAM,GACJ,QAAQ,MAAM,EAAE,CAAC,CAoB7B;AAgeD;;;;;;;;;GASG;AACH;IAPyB,MAAM,EAApB,KAAK,EAAE;IACM,KAAK,EAAlB,MAAM;IACQ,MAAM;IACL,WAAW;IACd,KAAK,EAAjB,KAAK;IACH,MAAM,CAsPlB;AA/YD;;;;;GAKG;AACH,2FAHW,MAAM,GACJ,MAAM,CAuElB;AAsUD;;;;;GAKG;AACH,iEAuHG;AAjnEH;;;;;;GAMG;AACH,2CALW,KAAK,EAAE,sCAGL,MAAM,CA2FlB;AAED;;;;;;GAMG;AACH,+EAkBC;AA0TD;;;;;GAKG;AACH,0CAJW,KAAK,GAAC,MAAM,YACZ,MAAM;oBACqB,MAAM,EAAE;GAqJ7C;AAgjDD;;;;;;GAMG;AACH,iCALW,MAAM,UACN,MAAM,EAAE,aAEN,MAAM,CA0ClB;AAED;;;;;;GAMG;AACH,uCAJW,MAAM,UACN,MAAM,EAAE,GACN,OAAO,MAAE,CAiCrB;AA9uED;;;;GAIG;AACH,iFAFa,MAAM,CAoBlB;AA3HD;;;;;;;;;;;;;;;;GAgBG;AACH,gCAfW,MAAM,SACN,MAAM,sWAYJ,UAAQ,CAmFpB;AA2mBD;;;;;GAKG;AACH,8CAJW,MAAM,SACN,MAAM,eACJ,QAAQ,MAAM,EAAE,CAAC,CAKC;AA5d/B;;;;;;GAMG;AACH,0CALW,KAAK,EAAE,mCAGL,QAAQ,MAAM,CAAC,CAkC3B;AA+8DD;;;;GAIG;AAEH,kCAJW,MAAM,GACJ,MAAM,GAAC,SAAS,CAM5B;AAgOD;;;;;;GAMG;AACH,yDALW,MAAM,GAGJ,YAAU,CAmFtB;AA9ND;;;;;;GAMG;AACH,8EAHW,MAAM,EAAE,GACN,MAAM,CA+HlB;;AAjlED;;;;;GAKG;AACH,kDAJW,KAAK,YACL,MAAM,8BAgDhB;AAED;;;;;;;GAOG;AACH,uDAJW,KAAK,YACL,MAAM;;;KAkChB;AAED;;;;;;;GAOG;AACH,uDANW,KAAK,YACL,MAAM,SACN,MAAM,QACN,MAAM,EAAE,OAuElB;AA0gED;;;;;;;;;;;;;;;;;;;;GAoCC;AAED;;;;GAIG;AACH;;;;;cA0BC;AA5ED,mDAK6B"}
1
+ {"version":3,"file":"plugin-helper.d.ts","sourceRoot":"","sources":["../plugin-helper.js"],"names":[],"mappings":"AAkwBA;;;;;;;;;GASG;AACH,wHARW,KAAK,GAAC,MAAM,GAMV,QAAQ,MAAM,EAAE,CAAC,CA0mB7B;AAkLD;;;;;;;;GAQG;AACH,gDANW,MAAM,EAAE,UACR,KAAK,EAAE,sCAGL,MAAM,CA2NlB;AA/SD;;;;;;;;;;;;;;;;;;;;;;;;;EA2EC;AA9KD;;;;;;;GAOG;AACH,uCALW,KAAK,GAAC,MAAM,YACZ,MAAM,sBAEJ,QAAQ,MAAM,EAAE,CAAC,CAoC7B;AAED;;;;;;GAMG;AACH,wCAJW,KAAK,GAAC,MAAM,YACZ,MAAM,GACJ,QAAQ,MAAM,EAAE,CAAC,CAoB7B;AAgeD;;;;;;;;;GASG;AACH;IAPyB,MAAM,EAApB,KAAK,EAAE;IACM,KAAK,EAAlB,MAAM;IACQ,MAAM;IACL,WAAW;IACd,KAAK,EAAjB,KAAK;IACH,MAAM,CAsPlB;AA/YD;;;;;GAKG;AACH,2FAHW,MAAM,GACJ,MAAM,CAuElB;AAsUD;;;;;GAKG;AACH,iEAuHG;AAjnEH;;;;;;GAMG;AACH,2CALW,KAAK,EAAE,sCAGL,MAAM,CA2FlB;AAED;;;;;;GAMG;AACH,+EAkBC;AA0TD;;;;;GAKG;AACH,0CAJW,KAAK,GAAC,MAAM,YACZ,MAAM;oBACqB,MAAM,EAAE;GAqJ7C;AAgjDD;;;;;;GAMG;AACH,iCALW,MAAM,UACN,MAAM,EAAE,aAEN,MAAM,CA0ClB;AAED;;;;;;GAMG;AACH,uCAJW,MAAM,UACN,MAAM,EAAE,GACN,OAAO,MAAE,CAiCrB;AA9uED;;;;GAIG;AACH,iFAFa,MAAM,CAoBlB;AA3HD;;;;;;;;;;;;;;;;GAgBG;AACH,gCAfW,MAAM,SACN,MAAM,sWAYJ,UAAQ,CAmFpB;AA2mBD;;;;;GAKG;AACH,8CAJW,MAAM,SACN,MAAM,eACJ,QAAQ,MAAM,EAAE,CAAC,CAKC;AA5d/B;;;;;;GAMG;AACH,0CALW,KAAK,EAAE,mCAGL,QAAQ,MAAM,CAAC,CAkC3B;AA+8DD;;;;GAIG;AAEH,kCAJW,MAAM,GACJ,MAAM,GAAC,SAAS,CAM5B;AAgOD;;;;;;GAMG;AACH,yDALW,MAAM,GAGJ,YAAU,CAuFtB;AAlOD;;;;;;GAMG;AACH,8EAHW,MAAM,EAAE,GACN,MAAM,CA+HlB;;AAjlED;;;;;GAKG;AACH,kDAJW,KAAK,YACL,MAAM,8BAgDhB;AAED;;;;;;;GAOG;AACH,uDAJW,KAAK,YACL,MAAM;;;KAkChB;AAED;;;;;;;GAOG;AACH,uDANW,KAAK,YACL,MAAM,SACN,MAAM,QACN,MAAM,EAAE,OAuElB;AA8gED;;;;;;;;;;;;;;;;;;;;GAoCC;AAED;;;;GAIG;AACH;;;;;cA0BC;AA5ED,mDAK6B"}
@@ -2331,8 +2331,9 @@ const run_action_column = async ({ col, req, ...rest }) => {
2331
2331
  }
2332
2332
  else {
2333
2333
  const trigger = await Trigger.findOne({ name: action_name });
2334
- if (trigger?.action === "Multi-step action") {
2335
- goRun = () => trigger.runWithoutRow({ req, ...rest });
2334
+ if (trigger?.action === "Multi-step action" ||
2335
+ trigger?.action === "Workflow") {
2336
+ goRun = () => trigger.runWithoutRow({ req, interactive: true, ...rest });
2336
2337
  }
2337
2338
  else if (trigger) {
2338
2339
  state_action = getState().actions[trigger.action];