@tachybase/module-workflow 0.23.47 → 0.23.58
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.
- package/dist/client/features/dynamic-calculation/DynamicCalculation.d.ts +12 -0
- package/dist/client/features/loop/LoopInstruction.d.ts +12 -0
- package/dist/client/features/parallel/ParallelInstruction.d.ts +12 -0
- package/dist/client/features/request/RequestInstruction.d.ts +1 -2
- package/dist/client/features/sql/SQLInstruction.d.ts +12 -0
- package/dist/client/features/variables/VariablesInstruction.d.ts +12 -0
- package/dist/client/index.js +10 -10
- package/dist/client/nodes/calculation.d.ts +12 -0
- package/dist/client/nodes/condition.d.ts +12 -0
- package/dist/client/nodes/end.d.ts +12 -0
- package/dist/client/variable.d.ts +1 -5
- package/dist/externalVersion.js +15 -15
- package/dist/locale/en-US.json +4 -0
- package/dist/locale/zh-CN.json +4 -0
- package/dist/node_modules/@babel/core/package.json +1 -1
- package/dist/node_modules/cron-parser/package.json +1 -1
- package/dist/node_modules/form-data/package.json +1 -1
- package/dist/node_modules/jsonata/package.json +1 -1
- package/dist/node_modules/lru-cache/package.json +1 -1
- package/dist/node_modules/mime-types/package.json +1 -1
- package/dist/node_modules/qrcode/package.json +1 -1
- package/dist/server/Plugin.js +21 -12
- package/dist/server/Processor.d.ts +1 -0
- package/dist/server/Processor.js +2 -1
- package/dist/server/features/interception/RequestInterceptionTrigger.js +4 -1
- package/dist/server/features/omni-trigger/CustomActionTrigger.js +4 -1
- package/package.json +17 -17
- package/dist/server/features/webhook/Plugin.d.ts +0 -4
- package/dist/server/features/webhook/Plugin.js +0 -109
- package/dist/server/features/webhook/index.d.ts +0 -1
- package/dist/server/features/webhook/index.js +0 -27
- package/dist/server/features/webhook/webhooks.d.ts +0 -9
- package/dist/server/features/webhook/webhooks.js +0 -286
|
@@ -57,6 +57,18 @@ export default class extends Instruction {
|
|
|
57
57
|
};
|
|
58
58
|
}[];
|
|
59
59
|
};
|
|
60
|
+
remarks: {
|
|
61
|
+
type: string;
|
|
62
|
+
title: string;
|
|
63
|
+
'x-decorator': string;
|
|
64
|
+
'x-component': string;
|
|
65
|
+
'x-component-props': {
|
|
66
|
+
autoSize: {
|
|
67
|
+
minRows: number;
|
|
68
|
+
};
|
|
69
|
+
placeholder: string;
|
|
70
|
+
};
|
|
71
|
+
};
|
|
60
72
|
};
|
|
61
73
|
scope: {
|
|
62
74
|
renderEngineReference: (key: string) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -83,6 +83,18 @@ export default class extends Instruction {
|
|
|
83
83
|
};
|
|
84
84
|
required: boolean;
|
|
85
85
|
};
|
|
86
|
+
remarks: {
|
|
87
|
+
type: string;
|
|
88
|
+
title: string;
|
|
89
|
+
'x-decorator': string;
|
|
90
|
+
'x-component': string;
|
|
91
|
+
'x-component-props': {
|
|
92
|
+
autoSize: {
|
|
93
|
+
minRows: number;
|
|
94
|
+
};
|
|
95
|
+
placeholder: string;
|
|
96
|
+
};
|
|
97
|
+
};
|
|
86
98
|
};
|
|
87
99
|
options: {
|
|
88
100
|
label: string;
|
|
@@ -20,6 +20,18 @@ export default class extends Instruction {
|
|
|
20
20
|
required: boolean;
|
|
21
21
|
default: JOB_STATUS;
|
|
22
22
|
};
|
|
23
|
+
remarks: {
|
|
24
|
+
type: string;
|
|
25
|
+
title: string;
|
|
26
|
+
'x-decorator': string;
|
|
27
|
+
'x-component': string;
|
|
28
|
+
'x-component-props': {
|
|
29
|
+
autoSize: {
|
|
30
|
+
minRows: number;
|
|
31
|
+
};
|
|
32
|
+
placeholder: string;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
23
35
|
};
|
|
24
36
|
end: boolean;
|
|
25
37
|
}
|
|
@@ -64,11 +64,7 @@ export declare const BaseTypeSets: {
|
|
|
64
64
|
string: Set<string>;
|
|
65
65
|
date: Set<string>;
|
|
66
66
|
};
|
|
67
|
-
export declare function useWorkflowVariableOptions(options?: UseVariableOptions):
|
|
68
|
-
[x: number]: any;
|
|
69
|
-
key: any;
|
|
70
|
-
disabled: boolean;
|
|
71
|
-
}[];
|
|
67
|
+
export declare function useWorkflowVariableOptions(options?: UseVariableOptions): any[];
|
|
72
68
|
export declare function useWorkflowVariableFormOptions(options?: UseVariableOptions): {
|
|
73
69
|
[x: number]: any;
|
|
74
70
|
key: any;
|
package/dist/externalVersion.js
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
module.exports = {
|
|
2
2
|
"react": "18.3.1",
|
|
3
|
-
"@tachybase/client": "0.23.
|
|
3
|
+
"@tachybase/client": "0.23.58",
|
|
4
4
|
"@ant-design/icons": "5.3.7",
|
|
5
5
|
"antd": "5.22.5",
|
|
6
6
|
"lodash": "4.17.21",
|
|
7
|
-
"@tachybase/utils": "0.23.
|
|
7
|
+
"@tachybase/utils": "0.23.58",
|
|
8
8
|
"react-i18next": "15.2.0",
|
|
9
9
|
"react-router-dom": "6.28.1",
|
|
10
|
-
"@tachybase/schema": "0.23.
|
|
11
|
-
"@tachybase/database": "0.23.
|
|
12
|
-
"@tachybase/logger": "0.23.
|
|
13
|
-
"@tachybase/server": "0.23.
|
|
14
|
-
"@tachybase/evaluators": "0.23.
|
|
15
|
-
"@tachybase/components": "0.23.
|
|
16
|
-
"@tachybase/actions": "0.23.
|
|
17
|
-
"@tachybase/data-source": "0.23.
|
|
10
|
+
"@tachybase/schema": "0.23.58",
|
|
11
|
+
"@tachybase/database": "0.23.58",
|
|
12
|
+
"@tachybase/logger": "0.23.58",
|
|
13
|
+
"@tachybase/server": "0.23.58",
|
|
14
|
+
"@tachybase/evaluators": "0.23.58",
|
|
15
|
+
"@tachybase/components": "0.23.58",
|
|
16
|
+
"@tachybase/actions": "0.23.58",
|
|
17
|
+
"@tachybase/data-source": "0.23.58",
|
|
18
18
|
"axios": "1.7.7",
|
|
19
19
|
"sequelize": "6.37.5",
|
|
20
|
-
"@tachybase/plugin-workflow-test": "0.23.
|
|
21
|
-
"@tachybase/test": "0.23.
|
|
22
|
-
"@tachybase/module-error-handler": "0.23.
|
|
23
|
-
"@tachybase/resourcer": "0.23.
|
|
24
|
-
"@tachybase/module-ui-schema": "0.23.
|
|
20
|
+
"@tachybase/plugin-workflow-test": "0.23.58",
|
|
21
|
+
"@tachybase/test": "0.23.58",
|
|
22
|
+
"@tachybase/module-error-handler": "0.23.58",
|
|
23
|
+
"@tachybase/resourcer": "0.23.58",
|
|
24
|
+
"@tachybase/module-ui-schema": "0.23.58"
|
|
25
25
|
};
|
package/dist/locale/en-US.json
CHANGED
|
@@ -166,6 +166,7 @@
|
|
|
166
166
|
"Initiate Request": "Initiate Request",
|
|
167
167
|
"Initiator": "Initiator",
|
|
168
168
|
"Input body comment": "Input body comment",
|
|
169
|
+
"Input remarks": "Input remarks",
|
|
169
170
|
"Input request data": "Input request data",
|
|
170
171
|
"Insert": "Insert",
|
|
171
172
|
"Interceptor": "Interceptor",
|
|
@@ -225,6 +226,7 @@
|
|
|
225
226
|
"Reject": "Reject",
|
|
226
227
|
"Rejected": "Rejected",
|
|
227
228
|
"Related approvals": "Related approvals",
|
|
229
|
+
"Remarks": "Remarks",
|
|
228
230
|
"Repeat limit": "Repeat limit",
|
|
229
231
|
"Repeat mode": "Repeat mode",
|
|
230
232
|
"Resource": "Resource",
|
|
@@ -279,6 +281,7 @@
|
|
|
279
281
|
"Trigger type": "Trigger type",
|
|
280
282
|
"Trigger variables": "Trigger variables",
|
|
281
283
|
"Trigger workflow": "Trigger workflow",
|
|
284
|
+
"Trigger workflow?": "Trigger workflow?",
|
|
282
285
|
"Triggered at": "Triggered at",
|
|
283
286
|
"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.": "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.",
|
|
284
287
|
"True": "True",
|
|
@@ -311,6 +314,7 @@
|
|
|
311
314
|
"Withdrawable": "Withdrawable",
|
|
312
315
|
"Withdrawn": "Withdrawn",
|
|
313
316
|
"Workflow": "Workflow",
|
|
317
|
+
"Workflow on your action failed, please contact the administrator": "Workflow on your action failed, please contact the administrator",
|
|
314
318
|
"Workflow todos": "Workflow todos",
|
|
315
319
|
"comment": "comment",
|
|
316
320
|
"concat": "concat",
|
package/dist/locale/zh-CN.json
CHANGED
|
@@ -208,6 +208,7 @@
|
|
|
208
208
|
"Initiator": "发起人",
|
|
209
209
|
"Initiator's interface": "发起人的操作界面",
|
|
210
210
|
"Input body comment": "请输入请求的备注",
|
|
211
|
+
"Input remarks": "输入备注",
|
|
211
212
|
"Input request data": "输入请求数据",
|
|
212
213
|
"Insert": "插入",
|
|
213
214
|
"Interceptor": "拦截器",
|
|
@@ -281,6 +282,7 @@
|
|
|
281
282
|
"Rejected": "否决",
|
|
282
283
|
"Rejected from a manual node.": "被人工节点拒绝继续。",
|
|
283
284
|
"Related approvals": "相关审批",
|
|
285
|
+
"Remarks": "备注",
|
|
284
286
|
"Repeat limit": "重复次数",
|
|
285
287
|
"Repeat mode": "重复模式",
|
|
286
288
|
"Resolved": "完成",
|
|
@@ -354,6 +356,7 @@
|
|
|
354
356
|
"Trigger type": "触发方式",
|
|
355
357
|
"Trigger variables": "触发器变量",
|
|
356
358
|
"Trigger workflow": "触发工作流",
|
|
359
|
+
"Trigger workflow?": "是否执行工作流",
|
|
357
360
|
"Triggered at": "触发时间",
|
|
358
361
|
"Triggered but still waiting in queue to execute.": "已触发但仍在队列中等待执行。",
|
|
359
362
|
"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.": "只有被选中的某个字段发生变动时才会触发。如果不选择,则表示任何字段变动时都会触发。新增或删除数据时,任意字段都被认为发生变动。",
|
|
@@ -398,6 +401,7 @@
|
|
|
398
401
|
"Withdraw": "撤回",
|
|
399
402
|
"Withdrawn": "撤回",
|
|
400
403
|
"Workflow": "工作流",
|
|
404
|
+
"Workflow on your action failed, please contact the administrator": "工作流执行失败, 请联系管理员",
|
|
401
405
|
"Workflow todos": "工作流待办",
|
|
402
406
|
"Workflow will be triggered before deleting succeeded.": "删除成功之前触发工作流。",
|
|
403
407
|
"Workflow will be triggered before or after submitting succeeded based on workflow type.": "工作流会基于其类型在提交成功之前或之后触发。",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@babel/core","version":"7.26.0","description":"Babel compiler core.","main":"./lib/index.js","author":"The Babel Team (https://babel.dev/team)","license":"MIT","publishConfig":{"access":"public"},"repository":{"type":"git","url":"https://github.com/babel/babel.git","directory":"packages/babel-core"},"homepage":"https://babel.dev/docs/en/next/babel-core","bugs":"https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20core%22+is%3Aopen","keywords":["6to5","babel","classes","const","es6","harmony","let","modules","transpile","transpiler","var","babel-core","compiler"],"engines":{"node":">=6.9.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/babel"},"browser":{"./lib/config/files/index.js":"./lib/config/files/index-browser.js","./lib/config/resolve-targets.js":"./lib/config/resolve-targets-browser.js","./lib/transform-file.js":"./lib/transform-file-browser.js","./src/config/files/index.ts":"./src/config/files/index-browser.ts","./src/config/resolve-targets.ts":"./src/config/resolve-targets-browser.ts","./src/transform-file.ts":"./src/transform-file-browser.ts"},"dependencies":{"@ampproject/remapping":"^2.2.0","@babel/code-frame":"^7.26.0","@babel/generator":"^7.26.0","@babel/helper-compilation-targets":"^7.25.9","@babel/helper-module-transforms":"^7.26.0","@babel/helpers":"^7.26.0","@babel/parser":"^7.26.0","@babel/template":"^7.25.9","@babel/traverse":"^7.25.9","@babel/types":"^7.26.0","convert-source-map":"^2.0.0","debug":"^4.1.0","gensync":"^1.0.0-beta.2","json5":"^2.2.3","semver":"^6.3.1"},"devDependencies":{"@babel/helper-transform-fixture-test-runner":"^7.26.0","@babel/plugin-syntax-flow":"^7.26.0","@babel/plugin-transform-flow-strip-types":"^7.25.9","@babel/plugin-transform-modules-commonjs":"^7.25.9","@babel/preset-env":"^7.26.0","@babel/preset-typescript":"^7.26.0","@jridgewell/trace-mapping":"^0.3.25","@types/convert-source-map":"^2.0.0","@types/debug":"^4.1.0","@types/gensync":"^1.0.0","@types/resolve":"^1.3.2","@types/semver":"^5.4.0","rimraf":"^3.0.0","ts-node":"^11.0.0-beta.1"},"type":"commonjs","_lastModified":"2025-
|
|
1
|
+
{"name":"@babel/core","version":"7.26.0","description":"Babel compiler core.","main":"./lib/index.js","author":"The Babel Team (https://babel.dev/team)","license":"MIT","publishConfig":{"access":"public"},"repository":{"type":"git","url":"https://github.com/babel/babel.git","directory":"packages/babel-core"},"homepage":"https://babel.dev/docs/en/next/babel-core","bugs":"https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20core%22+is%3Aopen","keywords":["6to5","babel","classes","const","es6","harmony","let","modules","transpile","transpiler","var","babel-core","compiler"],"engines":{"node":">=6.9.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/babel"},"browser":{"./lib/config/files/index.js":"./lib/config/files/index-browser.js","./lib/config/resolve-targets.js":"./lib/config/resolve-targets-browser.js","./lib/transform-file.js":"./lib/transform-file-browser.js","./src/config/files/index.ts":"./src/config/files/index-browser.ts","./src/config/resolve-targets.ts":"./src/config/resolve-targets-browser.ts","./src/transform-file.ts":"./src/transform-file-browser.ts"},"dependencies":{"@ampproject/remapping":"^2.2.0","@babel/code-frame":"^7.26.0","@babel/generator":"^7.26.0","@babel/helper-compilation-targets":"^7.25.9","@babel/helper-module-transforms":"^7.26.0","@babel/helpers":"^7.26.0","@babel/parser":"^7.26.0","@babel/template":"^7.25.9","@babel/traverse":"^7.25.9","@babel/types":"^7.26.0","convert-source-map":"^2.0.0","debug":"^4.1.0","gensync":"^1.0.0-beta.2","json5":"^2.2.3","semver":"^6.3.1"},"devDependencies":{"@babel/helper-transform-fixture-test-runner":"^7.26.0","@babel/plugin-syntax-flow":"^7.26.0","@babel/plugin-transform-flow-strip-types":"^7.25.9","@babel/plugin-transform-modules-commonjs":"^7.25.9","@babel/preset-env":"^7.26.0","@babel/preset-typescript":"^7.26.0","@jridgewell/trace-mapping":"^0.3.25","@types/convert-source-map":"^2.0.0","@types/debug":"^4.1.0","@types/gensync":"^1.0.0","@types/resolve":"^1.3.2","@types/semver":"^5.4.0","rimraf":"^3.0.0","ts-node":"^11.0.0-beta.1"},"type":"commonjs","_lastModified":"2025-03-06T10:03:09.449Z"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"cron-parser","version":"4.9.0","description":"Node.js library for parsing crontab instructions","main":"lib/parser.js","types":"types/index.d.ts","typesVersions":{"<4.1":{"*":["types/ts3/*"]}},"directories":{"test":"test"},"scripts":{"test:tsd":"tsd","test:unit":"TZ=UTC tap ./test/*.js","test:cover":"TZ=UTC tap --coverage-report=html ./test/*.js","lint":"eslint .","lint:fix":"eslint --fix .","test":"npm run lint && npm run test:unit && npm run test:tsd"},"repository":{"type":"git","url":"https://github.com/harrisiirak/cron-parser.git"},"keywords":["cron","crontab","parser"],"author":"Harri Siirak","contributors":["Nicholas Clawson","Daniel Prentis <daniel@salsitasoft.com>","Renault John Lecoultre","Richard Astbury <richard.astbury@gmail.com>","Meaglin Wasabi <Meaglin.wasabi@gmail.com>","Mike Kusold <hello@mikekusold.com>","Alex Kit <alex.kit@atmajs.com>","Santiago Gimeno <santiago.gimeno@gmail.com>","Daniel <darc.tec@gmail.com>","Christian Steininger <christian.steininger.cs@gmail.com>","Mykola Piskovyi <m.piskovyi@gmail.com>","Brian Vaughn <brian.david.vaughn@gmail.com>","Nicholas Clawson <nickclaw@gmail.com>","Yasuhiroki <yasuhiroki.duck@gmail.com>","Nicholas Clawson <nickclaw@gmail.com>","Brendan Warkentin <faazshift@gmail.com>","Charlie Fish <fishcharlie.code@gmail.com>","Ian Graves <ian+diskimage@iangrav.es>","Andy Thompson <me@andytson.com>","Regev Brody <regevbr@gmail.com>"],"license":"MIT","dependencies":{"luxon":"^3.2.1"},"devDependencies":{"eslint":"^8.27.0","sinon":"^15.0.1","tap":"^16.3.3","tsd":"^0.26.0"},"engines":{"node":">=12.0.0"},"browser":{"fs":false},"tap":{"check-coverage":false},"tsd":{"directory":"test","compilerOptions":{"lib":["es2017","dom"]}},"files":["lib","types","LICENSE","README.md"],"_lastModified":"2025-
|
|
1
|
+
{"name":"cron-parser","version":"4.9.0","description":"Node.js library for parsing crontab instructions","main":"lib/parser.js","types":"types/index.d.ts","typesVersions":{"<4.1":{"*":["types/ts3/*"]}},"directories":{"test":"test"},"scripts":{"test:tsd":"tsd","test:unit":"TZ=UTC tap ./test/*.js","test:cover":"TZ=UTC tap --coverage-report=html ./test/*.js","lint":"eslint .","lint:fix":"eslint --fix .","test":"npm run lint && npm run test:unit && npm run test:tsd"},"repository":{"type":"git","url":"https://github.com/harrisiirak/cron-parser.git"},"keywords":["cron","crontab","parser"],"author":"Harri Siirak","contributors":["Nicholas Clawson","Daniel Prentis <daniel@salsitasoft.com>","Renault John Lecoultre","Richard Astbury <richard.astbury@gmail.com>","Meaglin Wasabi <Meaglin.wasabi@gmail.com>","Mike Kusold <hello@mikekusold.com>","Alex Kit <alex.kit@atmajs.com>","Santiago Gimeno <santiago.gimeno@gmail.com>","Daniel <darc.tec@gmail.com>","Christian Steininger <christian.steininger.cs@gmail.com>","Mykola Piskovyi <m.piskovyi@gmail.com>","Brian Vaughn <brian.david.vaughn@gmail.com>","Nicholas Clawson <nickclaw@gmail.com>","Yasuhiroki <yasuhiroki.duck@gmail.com>","Nicholas Clawson <nickclaw@gmail.com>","Brendan Warkentin <faazshift@gmail.com>","Charlie Fish <fishcharlie.code@gmail.com>","Ian Graves <ian+diskimage@iangrav.es>","Andy Thompson <me@andytson.com>","Regev Brody <regevbr@gmail.com>"],"license":"MIT","dependencies":{"luxon":"^3.2.1"},"devDependencies":{"eslint":"^8.27.0","sinon":"^15.0.1","tap":"^16.3.3","tsd":"^0.26.0"},"engines":{"node":">=12.0.0"},"browser":{"fs":false},"tap":{"check-coverage":false},"tsd":{"directory":"test","compilerOptions":{"lib":["es2017","dom"]}},"files":["lib","types","LICENSE","README.md"],"_lastModified":"2025-03-06T10:03:09.691Z"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"author":"Felix Geisendörfer <felix@debuggable.com> (http://debuggable.com/)","name":"form-data","description":"A library to create readable \"multipart/form-data\" streams. Can be used to submit forms and file uploads to other web applications.","version":"4.0.1","repository":{"type":"git","url":"git://github.com/form-data/form-data.git"},"main":"./lib/form_data","browser":"./lib/browser","typings":"./index.d.ts","scripts":{"pretest":"npm run lint","pretests-only":"rimraf coverage test/tmp","tests-only":"istanbul cover test/run.js","posttests-only":"istanbul report lcov text","test":"npm run tests-only","posttest":"npx npm@'>=10.2' audit --production","lint":"eslint --ext=js,mjs .","report":"istanbul report lcov text","ci-lint":"is-node-modern 8 && npm run lint || is-node-not-modern 8","ci-test":"npm run tests-only && npm run browser && npm run report","predebug":"rimraf coverage test/tmp","debug":"verbose=1 ./test/run.js","browser":"browserify -t browserify-istanbul test/run-browser.js | obake --coverage","check":"istanbul check-coverage coverage/coverage*.json","files":"pkgfiles --sort=name","get-version":"node -e \"console.log(require('./package.json').version)\"","update-readme":"sed -i.bak 's/\\/master\\.svg/\\/v'$(npm --silent run get-version)'.svg/g' README.md","restore-readme":"mv README.md.bak README.md","prepublish":"in-publish && npm run update-readme || not-in-publish","postpublish":"npm run restore-readme"},"pre-commit":["lint","ci-test","check"],"engines":{"node":">= 6"},"dependencies":{"asynckit":"^0.4.0","combined-stream":"^1.0.8","mime-types":"^2.1.12"},"devDependencies":{"@types/node":"^12.0.10","browserify":"^13.1.1","browserify-istanbul":"^2.0.0","coveralls":"^3.0.4","cross-spawn":"^6.0.5","eslint":"^6.0.1","fake":"^0.2.2","far":"^0.0.7","formidable":"^1.0.17","in-publish":"^2.0.0","is-node-modern":"^1.0.0","istanbul":"^0.4.5","obake":"^0.1.2","puppeteer":"^1.19.0","pkgfiles":"^2.3.0","pre-commit":"^1.1.3","request":"^2.88.0","rimraf":"^2.7.1","tape":"^4.6.2","typescript":"^3.5.2"},"license":"MIT","_lastModified":"2025-
|
|
1
|
+
{"author":"Felix Geisendörfer <felix@debuggable.com> (http://debuggable.com/)","name":"form-data","description":"A library to create readable \"multipart/form-data\" streams. Can be used to submit forms and file uploads to other web applications.","version":"4.0.1","repository":{"type":"git","url":"git://github.com/form-data/form-data.git"},"main":"./lib/form_data","browser":"./lib/browser","typings":"./index.d.ts","scripts":{"pretest":"npm run lint","pretests-only":"rimraf coverage test/tmp","tests-only":"istanbul cover test/run.js","posttests-only":"istanbul report lcov text","test":"npm run tests-only","posttest":"npx npm@'>=10.2' audit --production","lint":"eslint --ext=js,mjs .","report":"istanbul report lcov text","ci-lint":"is-node-modern 8 && npm run lint || is-node-not-modern 8","ci-test":"npm run tests-only && npm run browser && npm run report","predebug":"rimraf coverage test/tmp","debug":"verbose=1 ./test/run.js","browser":"browserify -t browserify-istanbul test/run-browser.js | obake --coverage","check":"istanbul check-coverage coverage/coverage*.json","files":"pkgfiles --sort=name","get-version":"node -e \"console.log(require('./package.json').version)\"","update-readme":"sed -i.bak 's/\\/master\\.svg/\\/v'$(npm --silent run get-version)'.svg/g' README.md","restore-readme":"mv README.md.bak README.md","prepublish":"in-publish && npm run update-readme || not-in-publish","postpublish":"npm run restore-readme"},"pre-commit":["lint","ci-test","check"],"engines":{"node":">= 6"},"dependencies":{"asynckit":"^0.4.0","combined-stream":"^1.0.8","mime-types":"^2.1.12"},"devDependencies":{"@types/node":"^12.0.10","browserify":"^13.1.1","browserify-istanbul":"^2.0.0","coveralls":"^3.0.4","cross-spawn":"^6.0.5","eslint":"^6.0.1","fake":"^0.2.2","far":"^0.0.7","formidable":"^1.0.17","in-publish":"^2.0.0","is-node-modern":"^1.0.0","istanbul":"^0.4.5","obake":"^0.1.2","puppeteer":"^1.19.0","pkgfiles":"^2.3.0","pre-commit":"^1.1.3","request":"^2.88.0","rimraf":"^2.7.1","tape":"^4.6.2","typescript":"^3.5.2"},"license":"MIT","_lastModified":"2025-03-06T10:03:04.908Z"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"jsonata","version":"2.0.6","description":"JSON query and transformation language","module":"jsonata.js","main":"jsonata.js","typings":"jsonata.d.ts","homepage":"http://jsonata.org/","repository":{"type":"git","url":"https://github.com/jsonata-js/jsonata.git"},"scripts":{"pretest":"npm run lint","mocha":"nyc ./node_modules/mocha/bin/_mocha -- \"test/**/*.js\"","test":"npm run mocha","posttest":"npm run check-coverage && npm run browserify && npm run minify && npm run build-es5","build-es5":"npm run mkdir-dist && npm run regenerator && npm run browserify-es5 && npm run minify-es5","check-coverage":"nyc check-coverage --statements 100 --branches 100 --functions 100 --lines 100","browserify":"browserify src/jsonata.js --outfile jsonata.js --standalone jsonata","mkdir-dist":"mkdirp ./dist","regenerator":"babel src --out-dir dist --presets=@babel/env","browserify-es5":"regenerator --include-runtime polyfill.js > jsonata-es5.js; browserify dist/jsonata.js --standalone jsonata >> jsonata-es5.js","prepublishOnly":"npm run browserify && npm run minify && npm run build-es5","lint":"eslint src","doc":"jsdoc --configure jsdoc.json .","cover":"nyc _mocha","minify":"uglifyjs jsonata.js -o jsonata.min.js --compress --mangle","minify-es5":"uglifyjs jsonata-es5.js -o jsonata-es5.min.js --compress --mangle"},"license":"MIT","keywords":["JSON","query","transformation","transform","mapping","path"],"devDependencies":{"@babel/cli":"^7.8.4","@babel/core":"^7.8.4","@babel/preset-env":"^7.8.4","browserify":"^16.5.0","chai":"^4.2.0","chai-as-promised":"^7.1.1","eslint":"8.0.0","eslint-plugin-ideal":"^0.1.3","eslint-plugin-promise":"^6.0.0","jsdoc":"^3.6.3","mkdirp":"^1.0.3","mocha":"^7.0.1","mocha-lcov-reporter":"^1.3.0","nyc":"^15.1.0","regenerator":"^0.14.4","request":"^2.88.2","uglify-es":"^3.3.10"},"engines":{"node":">= 8"},"_lastModified":"2025-
|
|
1
|
+
{"name":"jsonata","version":"2.0.6","description":"JSON query and transformation language","module":"jsonata.js","main":"jsonata.js","typings":"jsonata.d.ts","homepage":"http://jsonata.org/","repository":{"type":"git","url":"https://github.com/jsonata-js/jsonata.git"},"scripts":{"pretest":"npm run lint","mocha":"nyc ./node_modules/mocha/bin/_mocha -- \"test/**/*.js\"","test":"npm run mocha","posttest":"npm run check-coverage && npm run browserify && npm run minify && npm run build-es5","build-es5":"npm run mkdir-dist && npm run regenerator && npm run browserify-es5 && npm run minify-es5","check-coverage":"nyc check-coverage --statements 100 --branches 100 --functions 100 --lines 100","browserify":"browserify src/jsonata.js --outfile jsonata.js --standalone jsonata","mkdir-dist":"mkdirp ./dist","regenerator":"babel src --out-dir dist --presets=@babel/env","browserify-es5":"regenerator --include-runtime polyfill.js > jsonata-es5.js; browserify dist/jsonata.js --standalone jsonata >> jsonata-es5.js","prepublishOnly":"npm run browserify && npm run minify && npm run build-es5","lint":"eslint src","doc":"jsdoc --configure jsdoc.json .","cover":"nyc _mocha","minify":"uglifyjs jsonata.js -o jsonata.min.js --compress --mangle","minify-es5":"uglifyjs jsonata-es5.js -o jsonata-es5.min.js --compress --mangle"},"license":"MIT","keywords":["JSON","query","transformation","transform","mapping","path"],"devDependencies":{"@babel/cli":"^7.8.4","@babel/core":"^7.8.4","@babel/preset-env":"^7.8.4","browserify":"^16.5.0","chai":"^4.2.0","chai-as-promised":"^7.1.1","eslint":"8.0.0","eslint-plugin-ideal":"^0.1.3","eslint-plugin-promise":"^6.0.0","jsdoc":"^3.6.3","mkdirp":"^1.0.3","mocha":"^7.0.1","mocha-lcov-reporter":"^1.3.0","nyc":"^15.1.0","regenerator":"^0.14.4","request":"^2.88.2","uglify-es":"^3.3.10"},"engines":{"node":">= 8"},"_lastModified":"2025-03-06T10:03:05.969Z"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"type":"commonjs","_lastModified":"2025-
|
|
1
|
+
{"type":"commonjs","_lastModified":"2025-03-06T10:03:04.631Z"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"mime-types","description":"The ultimate javascript content-type utility.","version":"2.1.35","contributors":["Douglas Christopher Wilson <doug@somethingdoug.com>","Jeremiah Senkpiel <fishrock123@rocketmail.com> (https://searchbeam.jit.su)","Jonathan Ong <me@jongleberry.com> (http://jongleberry.com)"],"license":"MIT","keywords":["mime","types"],"repository":"jshttp/mime-types","dependencies":{"mime-db":"1.52.0"},"devDependencies":{"eslint":"7.32.0","eslint-config-standard":"14.1.1","eslint-plugin-import":"2.25.4","eslint-plugin-markdown":"2.2.1","eslint-plugin-node":"11.1.0","eslint-plugin-promise":"5.2.0","eslint-plugin-standard":"4.1.0","mocha":"9.2.2","nyc":"15.1.0"},"files":["HISTORY.md","LICENSE","index.js"],"engines":{"node":">= 0.6"},"scripts":{"lint":"eslint .","test":"mocha --reporter spec test/test.js","test-ci":"nyc --reporter=lcov --reporter=text npm test","test-cov":"nyc --reporter=html --reporter=text npm test"},"_lastModified":"2025-
|
|
1
|
+
{"name":"mime-types","description":"The ultimate javascript content-type utility.","version":"2.1.35","contributors":["Douglas Christopher Wilson <doug@somethingdoug.com>","Jeremiah Senkpiel <fishrock123@rocketmail.com> (https://searchbeam.jit.su)","Jonathan Ong <me@jongleberry.com> (http://jongleberry.com)"],"license":"MIT","keywords":["mime","types"],"repository":"jshttp/mime-types","dependencies":{"mime-db":"1.52.0"},"devDependencies":{"eslint":"7.32.0","eslint-config-standard":"14.1.1","eslint-plugin-import":"2.25.4","eslint-plugin-markdown":"2.2.1","eslint-plugin-node":"11.1.0","eslint-plugin-promise":"5.2.0","eslint-plugin-standard":"4.1.0","mocha":"9.2.2","nyc":"15.1.0"},"files":["HISTORY.md","LICENSE","index.js"],"engines":{"node":">= 0.6"},"scripts":{"lint":"eslint .","test":"mocha --reporter spec test/test.js","test-ci":"nyc --reporter=lcov --reporter=text npm test","test-cov":"nyc --reporter=html --reporter=text npm test"},"_lastModified":"2025-03-06T10:03:05.138Z"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"qrcode","description":"QRCode / 2d Barcode api with both server side and client side support using canvas","version":"1.5.4","author":"Ryan Day <soldair@gmail.com>","contributors":["Vincenzo Greco <greco.vincenzo@gmail.com>","Linus Unnebäck <linus@folkdatorn.se>"],"keywords":["qr","code","canvas","qrcode"],"main":"./lib/index.js","browser":{"./lib/index.js":"./lib/browser.js","fs":false},"files":["bin","build","lib","helper"],"homepage":"http://github.com/soldair/node-qrcode","license":"MIT","scripts":{"lint":"standard","pretest":"npm run lint","test":"node --throw-deprecation test.js","build":"rollup -c","prepublish":"npm run build","browser":"node examples/clientsideserver.js"},"bin":{"qrcode":"./bin/qrcode"},"dependencies":{"dijkstrajs":"^1.0.1","pngjs":"^5.0.0","yargs":"^15.3.1"},"devDependencies":{"@babel/core":"^7.9.0","@babel/preset-env":"^7.9.5","@rollup/plugin-commonjs":"^11.1.0","@rollup/plugin-node-resolve":"^7.1.3","browserify":"^16.5.1","canvas":"^2.8.0","canvasutil":"0.0.4","colors":"^1.4.0","express":"^4.17.1","htmlparser2":"^4.1.0","rollup":"^2.6.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-terser":"^5.3.0","sinon":"^9.0.2","standard":"^16.0.4","tap":"^16.2.0"},"repository":{"type":"git","url":"git://github.com/soldair/node-qrcode.git"},"engines":{"node":">=10.13.0"},"standard":{"ignore":["build/","examples/vendors/","lib/core/regex.js"]},"_lastModified":"2025-
|
|
1
|
+
{"name":"qrcode","description":"QRCode / 2d Barcode api with both server side and client side support using canvas","version":"1.5.4","author":"Ryan Day <soldair@gmail.com>","contributors":["Vincenzo Greco <greco.vincenzo@gmail.com>","Linus Unnebäck <linus@folkdatorn.se>"],"keywords":["qr","code","canvas","qrcode"],"main":"./lib/index.js","browser":{"./lib/index.js":"./lib/browser.js","fs":false},"files":["bin","build","lib","helper"],"homepage":"http://github.com/soldair/node-qrcode","license":"MIT","scripts":{"lint":"standard","pretest":"npm run lint","test":"node --throw-deprecation test.js","build":"rollup -c","prepublish":"npm run build","browser":"node examples/clientsideserver.js"},"bin":{"qrcode":"./bin/qrcode"},"dependencies":{"dijkstrajs":"^1.0.1","pngjs":"^5.0.0","yargs":"^15.3.1"},"devDependencies":{"@babel/core":"^7.9.0","@babel/preset-env":"^7.9.5","@rollup/plugin-commonjs":"^11.1.0","@rollup/plugin-node-resolve":"^7.1.3","browserify":"^16.5.1","canvas":"^2.8.0","canvasutil":"0.0.4","colors":"^1.4.0","express":"^4.17.1","htmlparser2":"^4.1.0","rollup":"^2.6.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-terser":"^5.3.0","sinon":"^9.0.2","standard":"^16.0.4","tap":"^16.2.0"},"repository":{"type":"git","url":"git://github.com/soldair/node-qrcode.git"},"engines":{"node":">=10.13.0"},"standard":{"ignore":["build/","examples/vendors/","lib/core/regex.js"]},"_lastModified":"2025-03-06T10:03:05.552Z"}
|
package/dist/server/Plugin.js
CHANGED
|
@@ -370,24 +370,33 @@ class PluginWorkflowServer extends import_server.Plugin {
|
|
|
370
370
|
}
|
|
371
371
|
async createExecution(workflow, context, options) {
|
|
372
372
|
const { transaction = await this.db.sequelize.transaction() } = options;
|
|
373
|
+
const sameTransaction = options.transaction === transaction;
|
|
373
374
|
const trigger = this.triggers.get(workflow.type);
|
|
374
375
|
const valid = await trigger.validateEvent(workflow, context, { ...options, transaction });
|
|
375
376
|
if (!valid) {
|
|
376
|
-
if (!
|
|
377
|
+
if (!sameTransaction) {
|
|
377
378
|
await transaction.commit();
|
|
378
379
|
}
|
|
379
380
|
return null;
|
|
380
381
|
}
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
382
|
+
let execution;
|
|
383
|
+
try {
|
|
384
|
+
execution = await workflow.createExecution(
|
|
385
|
+
{
|
|
386
|
+
context,
|
|
387
|
+
key: workflow.key,
|
|
388
|
+
status: import_constants.EXECUTION_STATUS.QUEUEING,
|
|
389
|
+
parentNode: options.parentNode || null,
|
|
390
|
+
parentId: options.parent ? options.parent.id : null
|
|
391
|
+
},
|
|
392
|
+
{ transaction }
|
|
393
|
+
);
|
|
394
|
+
} catch (err) {
|
|
395
|
+
if (!sameTransaction) {
|
|
396
|
+
await transaction.rollback();
|
|
397
|
+
}
|
|
398
|
+
throw err;
|
|
399
|
+
}
|
|
391
400
|
this.getLogger(workflow.id).info(`execution of workflow ${workflow.id} created as ${execution.id}`);
|
|
392
401
|
await workflow.increment(["executed", "allExecuted"], { transaction });
|
|
393
402
|
if (this.db.options.dialect !== "postgres") {
|
|
@@ -404,7 +413,7 @@ class PluginWorkflowServer extends import_server.Plugin {
|
|
|
404
413
|
transaction
|
|
405
414
|
}
|
|
406
415
|
);
|
|
407
|
-
if (!
|
|
416
|
+
if (!sameTransaction) {
|
|
408
417
|
await transaction.commit();
|
|
409
418
|
}
|
|
410
419
|
execution.workflow = workflow;
|
package/dist/server/Processor.js
CHANGED
|
@@ -280,7 +280,8 @@ class Processor {
|
|
|
280
280
|
$context: this.execution.context,
|
|
281
281
|
$jobsMapByNodeKey: this.jobsMapByNodeKey,
|
|
282
282
|
$system: systemFns,
|
|
283
|
-
$scopes
|
|
283
|
+
$scopes,
|
|
284
|
+
$env: this.options.plugin.app.environment.getVariables()
|
|
284
285
|
};
|
|
285
286
|
}
|
|
286
287
|
getParsedValue(value, sourceNodeId, additionalScope) {
|
|
@@ -112,7 +112,10 @@ const _RequestInterceptionTrigger = class _RequestInterceptionTrigger extends im
|
|
|
112
112
|
}
|
|
113
113
|
if (processor.execution.status < import_constants.EXECUTION_STATUS.STARTED) {
|
|
114
114
|
if ((lastNode == null ? void 0 : lastNode.type) !== "end") {
|
|
115
|
-
return context.throw(
|
|
115
|
+
return context.throw(
|
|
116
|
+
500,
|
|
117
|
+
context.t("Workflow on your action failed, please contact the administrator", { ns: "workflow" })
|
|
118
|
+
);
|
|
116
119
|
}
|
|
117
120
|
const err = new RequestInterceptionError("Request is intercepted by workflow");
|
|
118
121
|
err.status = 400;
|
|
@@ -131,7 +131,10 @@ const _OmniTrigger = class _OmniTrigger extends import_triggers.default {
|
|
|
131
131
|
}
|
|
132
132
|
if (processor.execution.status < import_constants.EXECUTION_STATUS.STARTED) {
|
|
133
133
|
if ((lastNode == null ? void 0 : lastNode.type) !== "end") {
|
|
134
|
-
return context.throw(
|
|
134
|
+
return context.throw(
|
|
135
|
+
500,
|
|
136
|
+
context.t("Workflow on your action failed, please contact the administrator", { ns: "workflow" })
|
|
137
|
+
);
|
|
135
138
|
}
|
|
136
139
|
const err = new CustomActionInterceptionError("Request is intercepted by workflow");
|
|
137
140
|
err.status = 400;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tachybase/module-workflow",
|
|
3
3
|
"displayName": "Workflow",
|
|
4
|
-
"version": "0.23.
|
|
4
|
+
"version": "0.23.58",
|
|
5
5
|
"description": "A powerful BPM tool that provides foundational support for business automation, with the capability to extend unlimited triggers and nodes.",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"Workflow"
|
|
@@ -35,24 +35,24 @@
|
|
|
35
35
|
"react-js-cron": "^3.2.0",
|
|
36
36
|
"react-router-dom": "6.28.1",
|
|
37
37
|
"sequelize": "^6.37.5",
|
|
38
|
-
"@tachybase/components": "0.23.
|
|
39
|
-
"@tachybase/plugin-workflow-test": "0.23.
|
|
38
|
+
"@tachybase/components": "0.23.58",
|
|
39
|
+
"@tachybase/plugin-workflow-test": "0.23.58"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
|
-
"@tachybase/actions": "0.23.
|
|
43
|
-
"@tachybase/
|
|
44
|
-
"@tachybase/client": "0.23.
|
|
45
|
-
"@tachybase/
|
|
46
|
-
"@tachybase/evaluators": "0.23.
|
|
47
|
-
"@tachybase/logger": "0.23.
|
|
48
|
-
"@tachybase/module-collection": "0.23.
|
|
49
|
-
"@tachybase/module-error-handler": "0.23.
|
|
50
|
-
"@tachybase/module-user": "0.23.
|
|
51
|
-
"@tachybase/resourcer": "0.23.
|
|
52
|
-
"@tachybase/server": "0.23.
|
|
53
|
-
"@tachybase/
|
|
54
|
-
"@tachybase/test": "0.23.
|
|
55
|
-
"@tachybase/
|
|
42
|
+
"@tachybase/actions": "0.23.58",
|
|
43
|
+
"@tachybase/data-source": "0.23.58",
|
|
44
|
+
"@tachybase/client": "0.23.58",
|
|
45
|
+
"@tachybase/database": "0.23.58",
|
|
46
|
+
"@tachybase/evaluators": "0.23.58",
|
|
47
|
+
"@tachybase/logger": "0.23.58",
|
|
48
|
+
"@tachybase/module-collection": "0.23.58",
|
|
49
|
+
"@tachybase/module-error-handler": "0.23.58",
|
|
50
|
+
"@tachybase/module-user": "0.23.58",
|
|
51
|
+
"@tachybase/resourcer": "0.23.58",
|
|
52
|
+
"@tachybase/server": "0.23.58",
|
|
53
|
+
"@tachybase/utils": "0.23.58",
|
|
54
|
+
"@tachybase/test": "0.23.58",
|
|
55
|
+
"@tachybase/schema": "0.23.58"
|
|
56
56
|
},
|
|
57
57
|
"description.zh-CN": "一个强大的 BPM 工具,为业务自动化提供基础支持,并且可任意扩展更多的触发器和节点。",
|
|
58
58
|
"displayName.zh-CN": "工作流",
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
var __create = Object.create;
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
-
};
|
|
11
|
-
var __copyProps = (to, from, except, desc) => {
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
-
for (let key of __getOwnPropNames(from))
|
|
14
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
-
}
|
|
17
|
-
return to;
|
|
18
|
-
};
|
|
19
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
-
mod
|
|
26
|
-
));
|
|
27
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
-
var Plugin_exports = {};
|
|
29
|
-
__export(Plugin_exports, {
|
|
30
|
-
PluginWebhook: () => PluginWebhook
|
|
31
|
-
});
|
|
32
|
-
module.exports = __toCommonJS(Plugin_exports);
|
|
33
|
-
var import_path = __toESM(require("path"));
|
|
34
|
-
var import_server = require("@tachybase/server");
|
|
35
|
-
var import_lodash = __toESM(require("lodash"));
|
|
36
|
-
var import_webhooks = require("./webhooks");
|
|
37
|
-
class PluginWebhook extends import_server.Plugin {
|
|
38
|
-
async load() {
|
|
39
|
-
this.app.on("afterStart", async () => {
|
|
40
|
-
const webhooksRepo = this.db.getRepository("webhooks");
|
|
41
|
-
const resources = await webhooksRepo.find({
|
|
42
|
-
filter: {
|
|
43
|
-
enabled: true,
|
|
44
|
-
type: "resource"
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
for (const resourceDef of resources) {
|
|
48
|
-
if (!this.app.resourcer.isDefined(resourceDef.resourceName)) {
|
|
49
|
-
this.app.resourcer.define({ name: resourceDef.resourceName });
|
|
50
|
-
}
|
|
51
|
-
this.app.resourcer.getResource(resourceDef.resourceName).addAction(resourceDef.actionName, async (ctx) => {
|
|
52
|
-
const body = await new import_webhooks.WebhookController().action(ctx, resourceDef);
|
|
53
|
-
await new import_webhooks.WebhookController().triggerWorkflow(ctx, resourceDef, body);
|
|
54
|
-
});
|
|
55
|
-
this.app.acl.allow(resourceDef.resourceName, resourceDef.actionName, "loggedIn");
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
await this.db.import({
|
|
59
|
-
directory: import_path.default.resolve(__dirname, "collections")
|
|
60
|
-
});
|
|
61
|
-
this.app.resourcer.define({
|
|
62
|
-
name: "webhooks",
|
|
63
|
-
actions: {
|
|
64
|
-
trigger: new import_webhooks.WebhookController().getLink,
|
|
65
|
-
test: new import_webhooks.WebhookController().test
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
this.app.acl.allow("webhooks", ["trigger", "test"], "loggedIn");
|
|
69
|
-
const app = this.app;
|
|
70
|
-
this.app.acl.use(
|
|
71
|
-
async (ctx, next) => {
|
|
72
|
-
if (import_lodash.default.isEmpty(ctx.action.params)) {
|
|
73
|
-
await next();
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
const { resourceName, actionName } = ctx.action;
|
|
77
|
-
const webhooksRepo = ctx.db.getRepository("webhooks");
|
|
78
|
-
const actions = await app.cache.wrap(
|
|
79
|
-
"webhooks",
|
|
80
|
-
async () => {
|
|
81
|
-
return await webhooksRepo.find({
|
|
82
|
-
filter: {
|
|
83
|
-
enabled: true,
|
|
84
|
-
type: "action"
|
|
85
|
-
}
|
|
86
|
-
});
|
|
87
|
-
},
|
|
88
|
-
30 * 60 * 1e3
|
|
89
|
-
);
|
|
90
|
-
const actionObj = {};
|
|
91
|
-
const actionList = actions.filter((action) => {
|
|
92
|
-
return resourceName === action["resourceName"] && actionName === action["actionName"];
|
|
93
|
-
});
|
|
94
|
-
for (const action of actionList) {
|
|
95
|
-
actionObj[action.id] = await new import_webhooks.WebhookController().action(ctx, action);
|
|
96
|
-
}
|
|
97
|
-
await next();
|
|
98
|
-
for (const action of actionList) {
|
|
99
|
-
await new import_webhooks.WebhookController().triggerWorkflow(ctx, action, actionObj[action.id]);
|
|
100
|
-
}
|
|
101
|
-
},
|
|
102
|
-
{ tag: "api-webhook", after: "core" }
|
|
103
|
-
);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
107
|
-
0 && (module.exports = {
|
|
108
|
-
PluginWebhook
|
|
109
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { PluginWebhook } from './Plugin';
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
-
};
|
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
-
var webhook_exports = {};
|
|
19
|
-
__export(webhook_exports, {
|
|
20
|
-
PluginWebhook: () => import_Plugin.PluginWebhook
|
|
21
|
-
});
|
|
22
|
-
module.exports = __toCommonJS(webhook_exports);
|
|
23
|
-
var import_Plugin = require("./Plugin");
|
|
24
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
25
|
-
0 && (module.exports = {
|
|
26
|
-
PluginWebhook
|
|
27
|
-
});
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { Context } from '@tachybase/actions';
|
|
2
|
-
export declare class WebhookController {
|
|
3
|
-
getLink(ctx: Context): Promise<never>;
|
|
4
|
-
test(ctx: Context): Promise<void>;
|
|
5
|
-
action(ctx: Context, action: {
|
|
6
|
-
code: string;
|
|
7
|
-
}): Promise<string>;
|
|
8
|
-
triggerWorkflow(ctx: any, action: any, body: any): Promise<void>;
|
|
9
|
-
}
|