@tachybase/module-event-source 0.23.8
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/.turbo/turbo-build.log +6 -0
- package/LICENSE +201 -0
- package/README.md +1 -0
- package/client.d.ts +2 -0
- package/client.js +1 -0
- package/dist/client/customEventSources/CustomEventSourcePane.d.ts +2 -0
- package/dist/client/customEventSources/CustomEventSourcePane.schema.d.ts +213 -0
- package/dist/client/customEventSources/customEventSourcePane.collection.d.ts +51 -0
- package/dist/client/customEventSources/useSyncCustomEventSource.d.ts +3 -0
- package/dist/client/index.d.ts +5 -0
- package/dist/client/index.js +9 -0
- package/dist/client/locale.d.ts +4 -0
- package/dist/client/webhook/WebhookManager.d.ts +10 -0
- package/dist/client/webhook/collections/dispatchers.d.ts +2 -0
- package/dist/externalVersion.js +16 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +39 -0
- package/dist/locale/en-US.json +5 -0
- package/dist/locale/zh-CN.json +5 -0
- package/dist/server/actions/CustomEventSourceController.d.ts +5 -0
- package/dist/server/actions/CustomEventSourceController.js +196 -0
- package/dist/server/collections/customEventSources.d.ts +14 -0
- package/dist/server/collections/customEventSources.js +58 -0
- package/dist/server/collections/webhooks.d.ts +2 -0
- package/dist/server/collections/webhooks.js +69 -0
- package/dist/server/index.d.ts +1 -0
- package/dist/server/index.js +33 -0
- package/dist/server/plugin.d.ts +5 -0
- package/dist/server/plugin.js +89 -0
- package/dist/server/services/ActionAPIService.d.ts +4 -0
- package/dist/server/services/ActionAPIService.js +122 -0
- package/dist/server/services/ApplicationEventService.d.ts +5 -0
- package/dist/server/services/ApplicationEventService.js +124 -0
- package/dist/server/services/BeforeResourceService.d.ts +5 -0
- package/dist/server/services/BeforeResourceService.js +123 -0
- package/dist/server/services/DatabaseEventService.d.ts +5 -0
- package/dist/server/services/DatabaseEventService.js +135 -0
- package/dist/server/services/ResourceService.d.ts +5 -0
- package/dist/server/services/ResourceService.js +114 -0
- package/dist/server/utils/eval-simulate.d.ts +4 -0
- package/dist/server/utils/eval-simulate.js +37 -0
- package/dist/server/webhooks/Plugin.d.ts +4 -0
- package/dist/server/webhooks/Plugin.js +103 -0
- package/dist/server/webhooks/webhooks.d.ts +15 -0
- package/dist/server/webhooks/webhooks.js +272 -0
- package/package.json +29 -0
- package/server.d.ts +2 -0
- package/server.js +1 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Context, Next } from '@tachybase/actions';
|
|
2
|
+
export declare class CustomEventSourceController {
|
|
3
|
+
sync(context: Context, next: Next): Promise<void>;
|
|
4
|
+
searchParent(context: Context, currentUiSchema: any, currentSchemaList: [string, string][], transaction: any): Promise<any>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
|
|
7
|
+
var __typeError = (msg) => {
|
|
8
|
+
throw TypeError(msg);
|
|
9
|
+
};
|
|
10
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
11
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
12
|
+
var __export = (target, all) => {
|
|
13
|
+
for (var name in all)
|
|
14
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
15
|
+
};
|
|
16
|
+
var __copyProps = (to, from, except, desc) => {
|
|
17
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
18
|
+
for (let key of __getOwnPropNames(from))
|
|
19
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
20
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
};
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var __decoratorStart = (base) => [, , , __create((base == null ? void 0 : base[__knownSymbol("metadata")]) ?? null)];
|
|
26
|
+
var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
|
|
27
|
+
var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
|
|
28
|
+
var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
|
|
29
|
+
var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
|
|
30
|
+
var __runInitializers = (array, flags, self, value) => {
|
|
31
|
+
for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);
|
|
32
|
+
return value;
|
|
33
|
+
};
|
|
34
|
+
var __decorateElement = (array, flags, name, decorators, target, extra) => {
|
|
35
|
+
var fn, it, done, ctx, access, k = flags & 7, s = !!(flags & 8), p = !!(flags & 16);
|
|
36
|
+
var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0, key = __decoratorStrings[k + 5];
|
|
37
|
+
var initializers = k > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []);
|
|
38
|
+
var desc = k && (!p && !s && (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : { get [name]() {
|
|
39
|
+
return __privateGet(this, extra);
|
|
40
|
+
}, set [name](x) {
|
|
41
|
+
return __privateSet(this, extra, x);
|
|
42
|
+
} }, name));
|
|
43
|
+
k ? p && k < 4 && __name(extra, (k > 2 ? "set " : k > 1 ? "get " : "") + name) : __name(target, name);
|
|
44
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
45
|
+
ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
|
|
46
|
+
if (k) {
|
|
47
|
+
ctx.static = s, ctx.private = p, access = ctx.access = { has: p ? (x) => __privateIn(target, x) : (x) => name in x };
|
|
48
|
+
if (k ^ 3) access.get = p ? (x) => (k ^ 1 ? __privateGet : __privateMethod)(x, target, k ^ 4 ? extra : desc.get) : (x) => x[name];
|
|
49
|
+
if (k > 2) access.set = p ? (x, y) => __privateSet(x, target, y, k ^ 4 ? extra : desc.set) : (x, y) => x[name] = y;
|
|
50
|
+
}
|
|
51
|
+
it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1;
|
|
52
|
+
if (k ^ 4 || it === void 0) __expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);
|
|
53
|
+
else if (typeof it !== "object" || it === null) __typeError("Object expected");
|
|
54
|
+
else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
|
|
55
|
+
}
|
|
56
|
+
return k || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target;
|
|
57
|
+
};
|
|
58
|
+
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
|
|
59
|
+
var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj);
|
|
60
|
+
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
|
|
61
|
+
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
|
|
62
|
+
var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
|
|
63
|
+
var CustomEventSourceController_exports = {};
|
|
64
|
+
__export(CustomEventSourceController_exports, {
|
|
65
|
+
CustomEventSourceController: () => CustomEventSourceController
|
|
66
|
+
});
|
|
67
|
+
module.exports = __toCommonJS(CustomEventSourceController_exports);
|
|
68
|
+
var import_actions = require("@tachybase/actions");
|
|
69
|
+
var import_utils = require("@tachybase/utils");
|
|
70
|
+
var import_sequelize = require("sequelize");
|
|
71
|
+
var _sync_dec, _CustomEventSourceController_decorators, _init;
|
|
72
|
+
_CustomEventSourceController_decorators = [(0, import_utils.Controller)("customEventSources")], _sync_dec = [(0, import_utils.Action)("sync")];
|
|
73
|
+
class CustomEventSourceController {
|
|
74
|
+
constructor() {
|
|
75
|
+
__runInitializers(_init, 5, this);
|
|
76
|
+
}
|
|
77
|
+
async sync(context, next) {
|
|
78
|
+
var _a;
|
|
79
|
+
const transaction = await context.db.sequelize.transaction();
|
|
80
|
+
const query = `
|
|
81
|
+
SELECT * FROM public."uiSchemas"
|
|
82
|
+
WHERE schema::jsonb -> 'x-action-settings' IS NOT NULL
|
|
83
|
+
AND jsonb_array_length((schema::jsonb -> 'x-action-settings' -> 'triggerWorkflows')::jsonb) > 0;
|
|
84
|
+
`;
|
|
85
|
+
const uiSchemaList = await context.db.sequelize.query(query, {
|
|
86
|
+
transaction,
|
|
87
|
+
type: import_sequelize.QueryTypes.SELECT
|
|
88
|
+
});
|
|
89
|
+
for (const currentUiSchema of uiSchemaList) {
|
|
90
|
+
let currentSchemaList = [];
|
|
91
|
+
const { "x-uid": xuid, schema } = currentUiSchema;
|
|
92
|
+
const schemaTitle = schema["title"];
|
|
93
|
+
const triggerWorkflows = schema["x-action-settings"]["triggerWorkflows"];
|
|
94
|
+
currentSchemaList.push([xuid, schemaTitle]);
|
|
95
|
+
const completeUiSchemaRecord = await this.searchParent(context, currentUiSchema, currentSchemaList, transaction);
|
|
96
|
+
for (const triggerWorkflow of triggerWorkflows) {
|
|
97
|
+
const { workflowKey } = triggerWorkflow;
|
|
98
|
+
const RepoWorkflow = context.db.getRepository("workflows");
|
|
99
|
+
const targetWorkflow = await RepoWorkflow.findOne({
|
|
100
|
+
filter: {
|
|
101
|
+
key: workflowKey
|
|
102
|
+
},
|
|
103
|
+
transaction
|
|
104
|
+
});
|
|
105
|
+
if (targetWorkflow && completeUiSchemaRecord) {
|
|
106
|
+
const { "x-uid": completeUiSchemaId, schema: schema2 } = completeUiSchemaRecord;
|
|
107
|
+
const collectionName = (_a = schema2 == null ? void 0 : schema2["x-decorator-props"]) == null ? void 0 : _a["collection"];
|
|
108
|
+
const pathDesc = currentSchemaList.map(([key, title]) => `${title}(${key})`).reverse().join("->");
|
|
109
|
+
const RepoWorkflowsManager = import_actions.utils.getRepositoryFromParams(context);
|
|
110
|
+
const workflowsManagerRecord = await RepoWorkflowsManager.findOne({
|
|
111
|
+
filter: {
|
|
112
|
+
pathDesc
|
|
113
|
+
},
|
|
114
|
+
transaction
|
|
115
|
+
});
|
|
116
|
+
if (workflowsManagerRecord) {
|
|
117
|
+
const { id } = workflowsManagerRecord;
|
|
118
|
+
await RepoWorkflowsManager.update({
|
|
119
|
+
values: {
|
|
120
|
+
collectionName,
|
|
121
|
+
pathDesc,
|
|
122
|
+
workflowId: targetWorkflow.id,
|
|
123
|
+
uiSchemaId: xuid,
|
|
124
|
+
completeUiSchemaId
|
|
125
|
+
},
|
|
126
|
+
filter: {
|
|
127
|
+
id
|
|
128
|
+
},
|
|
129
|
+
transaction
|
|
130
|
+
});
|
|
131
|
+
} else {
|
|
132
|
+
await RepoWorkflowsManager.create({
|
|
133
|
+
values: {
|
|
134
|
+
collectionName,
|
|
135
|
+
pathDesc,
|
|
136
|
+
workflowId: targetWorkflow.id,
|
|
137
|
+
uiSchemaId: xuid,
|
|
138
|
+
completeUiSchemaId
|
|
139
|
+
}
|
|
140
|
+
// transaction,
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
await next();
|
|
147
|
+
}
|
|
148
|
+
async searchParent(context, currentUiSchema, currentSchemaList, transaction) {
|
|
149
|
+
const { "x-uid": childKey } = currentUiSchema;
|
|
150
|
+
const RepoParent = context.db.getRepository("uiSchemaTreePath");
|
|
151
|
+
const parentUiSchemaList = await RepoParent.find({
|
|
152
|
+
filter: {
|
|
153
|
+
descendant: childKey
|
|
154
|
+
},
|
|
155
|
+
transaction
|
|
156
|
+
});
|
|
157
|
+
for (const parentUiSchema of parentUiSchemaList) {
|
|
158
|
+
const { ancestor } = parentUiSchema;
|
|
159
|
+
if (ancestor === childKey) {
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
162
|
+
const RepoUiSchema = context.db.getRepository("uiSchemas");
|
|
163
|
+
const parentUiSchemaRecord = await RepoUiSchema.findOne({
|
|
164
|
+
filter: {
|
|
165
|
+
"x-uid": ancestor
|
|
166
|
+
},
|
|
167
|
+
transaction
|
|
168
|
+
});
|
|
169
|
+
if (parentUiSchemaRecord) {
|
|
170
|
+
const { "x-uid": parentKey, schema: parentSchema } = parentUiSchemaRecord;
|
|
171
|
+
const {
|
|
172
|
+
title: parentSchemaTitle,
|
|
173
|
+
"x-component": component,
|
|
174
|
+
"x-decorator-props": decoratorProps
|
|
175
|
+
} = parentSchema;
|
|
176
|
+
currentSchemaList.push([parentKey, parentSchemaTitle || component]);
|
|
177
|
+
if (component === "CardItem" && !!(decoratorProps == null ? void 0 : decoratorProps["collection"])) {
|
|
178
|
+
return parentUiSchemaRecord;
|
|
179
|
+
} else {
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
182
|
+
} else {
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
_init = __decoratorStart(null);
|
|
190
|
+
__decorateElement(_init, 1, "sync", _sync_dec, CustomEventSourceController);
|
|
191
|
+
CustomEventSourceController = __decorateElement(_init, 0, "CustomEventSourceController", _CustomEventSourceController_decorators, CustomEventSourceController);
|
|
192
|
+
__runInitializers(_init, 1, CustomEventSourceController);
|
|
193
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
194
|
+
0 && (module.exports = {
|
|
195
|
+
CustomEventSourceController
|
|
196
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 管理工作流
|
|
3
|
+
* 1. id
|
|
4
|
+
* 2. 工作流名称
|
|
5
|
+
* 2. 直接触发该工作流的 uiSchema 的 x-uid (是否要存储嵌套路径上所有的 uiSchema )
|
|
6
|
+
* 3. 数据表名称
|
|
7
|
+
* 4. 位置字符串
|
|
8
|
+
*
|
|
9
|
+
* ps:
|
|
10
|
+
* 1. 多个 uiSchema 的顺序名称, 组成指示路径,
|
|
11
|
+
* 2. 最外层的 uiSchema 作为链接, 可直接管理修改当前工作流配置
|
|
12
|
+
*/
|
|
13
|
+
declare const _default: import("@tachybase/database").CollectionOptions;
|
|
14
|
+
export default _default;
|
|
@@ -0,0 +1,58 @@
|
|
|
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 customEventSources_exports = {};
|
|
19
|
+
__export(customEventSources_exports, {
|
|
20
|
+
default: () => customEventSources_default
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(customEventSources_exports);
|
|
23
|
+
var import_database = require("@tachybase/database");
|
|
24
|
+
var customEventSources_default = (0, import_database.defineCollection)({
|
|
25
|
+
name: "customEventSources",
|
|
26
|
+
dumpRules: "required",
|
|
27
|
+
createdBy: true,
|
|
28
|
+
updatedBy: true,
|
|
29
|
+
shared: true,
|
|
30
|
+
fields: [
|
|
31
|
+
{
|
|
32
|
+
name: "collectionName",
|
|
33
|
+
type: "string"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
name: "pathDesc",
|
|
37
|
+
type: "text"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
type: "belongsTo",
|
|
41
|
+
name: "workflow",
|
|
42
|
+
foreignKey: "workflowId",
|
|
43
|
+
target: "workflows"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
type: "belongsTo",
|
|
47
|
+
name: "uiSchema",
|
|
48
|
+
target: "uiSchemas",
|
|
49
|
+
foreignKey: "uiSchemaId"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
type: "belongsTo",
|
|
53
|
+
name: "completeUiSchema",
|
|
54
|
+
target: "uiSchemas",
|
|
55
|
+
foreignKey: "completeUiSchemaId"
|
|
56
|
+
}
|
|
57
|
+
]
|
|
58
|
+
});
|
|
@@ -0,0 +1,69 @@
|
|
|
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 webhooks_exports = {};
|
|
19
|
+
__export(webhooks_exports, {
|
|
20
|
+
default: () => webhooks_default
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(webhooks_exports);
|
|
23
|
+
var import_database = require("@tachybase/database");
|
|
24
|
+
var webhooks_default = (0, import_database.defineCollection)({
|
|
25
|
+
name: "webhooks",
|
|
26
|
+
dumpRules: {
|
|
27
|
+
group: "required"
|
|
28
|
+
},
|
|
29
|
+
fields: [
|
|
30
|
+
{
|
|
31
|
+
name: "name",
|
|
32
|
+
unique: true,
|
|
33
|
+
type: "string"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
name: "enabled",
|
|
37
|
+
type: "boolean"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: "workflowKey",
|
|
41
|
+
type: "string"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: "type",
|
|
45
|
+
// code/plugin
|
|
46
|
+
type: "string"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: "code",
|
|
50
|
+
type: "text"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: "settings",
|
|
54
|
+
type: "json"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: "actionName",
|
|
58
|
+
type: "string"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: "resourceName",
|
|
62
|
+
type: "text"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: "eventName",
|
|
66
|
+
type: "string"
|
|
67
|
+
}
|
|
68
|
+
]
|
|
69
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './plugin';
|
|
@@ -0,0 +1,33 @@
|
|
|
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 server_exports = {};
|
|
29
|
+
__export(server_exports, {
|
|
30
|
+
default: () => import_plugin.default
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(server_exports);
|
|
33
|
+
var import_plugin = __toESM(require("./plugin"));
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
|
|
7
|
+
var __typeError = (msg) => {
|
|
8
|
+
throw TypeError(msg);
|
|
9
|
+
};
|
|
10
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
11
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
12
|
+
var __export = (target, all) => {
|
|
13
|
+
for (var name in all)
|
|
14
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
15
|
+
};
|
|
16
|
+
var __copyProps = (to, from, except, desc) => {
|
|
17
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
18
|
+
for (let key of __getOwnPropNames(from))
|
|
19
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
20
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
};
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var __decoratorStart = (base) => [, , , __create((base == null ? void 0 : base[__knownSymbol("metadata")]) ?? null)];
|
|
26
|
+
var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
|
|
27
|
+
var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
|
|
28
|
+
var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
|
|
29
|
+
var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
|
|
30
|
+
var __runInitializers = (array, flags, self, value) => {
|
|
31
|
+
for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);
|
|
32
|
+
return value;
|
|
33
|
+
};
|
|
34
|
+
var __decorateElement = (array, flags, name, decorators, target, extra) => {
|
|
35
|
+
var fn, it, done, ctx, access, k = flags & 7, s = !!(flags & 8), p = !!(flags & 16);
|
|
36
|
+
var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0, key = __decoratorStrings[k + 5];
|
|
37
|
+
var initializers = k > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []);
|
|
38
|
+
var desc = k && (!p && !s && (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : { get [name]() {
|
|
39
|
+
return __privateGet(this, extra);
|
|
40
|
+
}, set [name](x) {
|
|
41
|
+
return __privateSet(this, extra, x);
|
|
42
|
+
} }, name));
|
|
43
|
+
k ? p && k < 4 && __name(extra, (k > 2 ? "set " : k > 1 ? "get " : "") + name) : __name(target, name);
|
|
44
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
45
|
+
ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
|
|
46
|
+
if (k) {
|
|
47
|
+
ctx.static = s, ctx.private = p, access = ctx.access = { has: p ? (x) => __privateIn(target, x) : (x) => name in x };
|
|
48
|
+
if (k ^ 3) access.get = p ? (x) => (k ^ 1 ? __privateGet : __privateMethod)(x, target, k ^ 4 ? extra : desc.get) : (x) => x[name];
|
|
49
|
+
if (k > 2) access.set = p ? (x, y) => __privateSet(x, target, y, k ^ 4 ? extra : desc.set) : (x, y) => x[name] = y;
|
|
50
|
+
}
|
|
51
|
+
it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1;
|
|
52
|
+
if (k ^ 4 || it === void 0) __expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);
|
|
53
|
+
else if (typeof it !== "object" || it === null) __typeError("Object expected");
|
|
54
|
+
else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
|
|
55
|
+
}
|
|
56
|
+
return k || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target;
|
|
57
|
+
};
|
|
58
|
+
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
|
|
59
|
+
var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj);
|
|
60
|
+
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
|
|
61
|
+
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
|
|
62
|
+
var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
|
|
63
|
+
var plugin_exports = {};
|
|
64
|
+
__export(plugin_exports, {
|
|
65
|
+
ModuleEventSourceServer: () => ModuleEventSourceServer,
|
|
66
|
+
default: () => plugin_default
|
|
67
|
+
});
|
|
68
|
+
module.exports = __toCommonJS(plugin_exports);
|
|
69
|
+
var import_server = require("@tachybase/server");
|
|
70
|
+
var import_CustomEventSourceController = require("./actions/CustomEventSourceController");
|
|
71
|
+
var import_Plugin = require("./webhooks/Plugin");
|
|
72
|
+
var _ModuleEventSourceServer_decorators, _init, _a;
|
|
73
|
+
_ModuleEventSourceServer_decorators = [(0, import_server.InjectedPlugin)({
|
|
74
|
+
Controllers: [import_CustomEventSourceController.CustomEventSourceController]
|
|
75
|
+
})];
|
|
76
|
+
class ModuleEventSourceServer extends (_a = import_server.Plugin) {
|
|
77
|
+
constructor(app, options) {
|
|
78
|
+
super(app, options);
|
|
79
|
+
this.addFeature(import_Plugin.PluginWebhook);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
_init = __decoratorStart(_a);
|
|
83
|
+
ModuleEventSourceServer = __decorateElement(_init, 0, "ModuleEventSourceServer", _ModuleEventSourceServer_decorators, ModuleEventSourceServer);
|
|
84
|
+
__runInitializers(_init, 1, ModuleEventSourceServer);
|
|
85
|
+
var plugin_default = ModuleEventSourceServer;
|
|
86
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
87
|
+
0 && (module.exports = {
|
|
88
|
+
ModuleEventSourceServer
|
|
89
|
+
});
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
|
|
7
|
+
var __typeError = (msg) => {
|
|
8
|
+
throw TypeError(msg);
|
|
9
|
+
};
|
|
10
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
11
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
12
|
+
var __export = (target, all) => {
|
|
13
|
+
for (var name in all)
|
|
14
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
15
|
+
};
|
|
16
|
+
var __copyProps = (to, from, except, desc) => {
|
|
17
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
18
|
+
for (let key of __getOwnPropNames(from))
|
|
19
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
20
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
};
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var __decoratorStart = (base) => [, , , __create((base == null ? void 0 : base[__knownSymbol("metadata")]) ?? null)];
|
|
26
|
+
var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
|
|
27
|
+
var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
|
|
28
|
+
var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
|
|
29
|
+
var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
|
|
30
|
+
var __runInitializers = (array, flags, self, value) => {
|
|
31
|
+
for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);
|
|
32
|
+
return value;
|
|
33
|
+
};
|
|
34
|
+
var __decorateElement = (array, flags, name, decorators, target, extra) => {
|
|
35
|
+
var fn, it, done, ctx, access, k = flags & 7, s = !!(flags & 8), p = !!(flags & 16);
|
|
36
|
+
var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0, key = __decoratorStrings[k + 5];
|
|
37
|
+
var initializers = k > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []);
|
|
38
|
+
var desc = k && (!p && !s && (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : { get [name]() {
|
|
39
|
+
return __privateGet(this, extra);
|
|
40
|
+
}, set [name](x) {
|
|
41
|
+
return __privateSet(this, extra, x);
|
|
42
|
+
} }, name));
|
|
43
|
+
k ? p && k < 4 && __name(extra, (k > 2 ? "set " : k > 1 ? "get " : "") + name) : __name(target, name);
|
|
44
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
45
|
+
ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
|
|
46
|
+
if (k) {
|
|
47
|
+
ctx.static = s, ctx.private = p, access = ctx.access = { has: p ? (x) => __privateIn(target, x) : (x) => name in x };
|
|
48
|
+
if (k ^ 3) access.get = p ? (x) => (k ^ 1 ? __privateGet : __privateMethod)(x, target, k ^ 4 ? extra : desc.get) : (x) => x[name];
|
|
49
|
+
if (k > 2) access.set = p ? (x, y) => __privateSet(x, target, y, k ^ 4 ? extra : desc.set) : (x, y) => x[name] = y;
|
|
50
|
+
}
|
|
51
|
+
it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1;
|
|
52
|
+
if (k ^ 4 || it === void 0) __expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);
|
|
53
|
+
else if (typeof it !== "object" || it === null) __typeError("Object expected");
|
|
54
|
+
else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
|
|
55
|
+
}
|
|
56
|
+
return k || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target;
|
|
57
|
+
};
|
|
58
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
59
|
+
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
|
|
60
|
+
var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj);
|
|
61
|
+
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
|
|
62
|
+
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
|
|
63
|
+
var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
|
|
64
|
+
var ActionAPIService_exports = {};
|
|
65
|
+
__export(ActionAPIService_exports, {
|
|
66
|
+
ActionAPIService: () => ActionAPIService
|
|
67
|
+
});
|
|
68
|
+
module.exports = __toCommonJS(ActionAPIService_exports);
|
|
69
|
+
var import_utils = require("@tachybase/utils");
|
|
70
|
+
var import_webhooks = require("../webhooks/webhooks");
|
|
71
|
+
var _app_dec, _ActionAPIService_decorators, _init;
|
|
72
|
+
_ActionAPIService_decorators = [(0, import_utils.Service)()], _app_dec = [(0, import_utils.App)()];
|
|
73
|
+
class ActionAPIService {
|
|
74
|
+
constructor() {
|
|
75
|
+
__publicField(this, "app", __runInitializers(_init, 8, this)), __runInitializers(_init, 11, this);
|
|
76
|
+
}
|
|
77
|
+
async load() {
|
|
78
|
+
this.app.acl.use(
|
|
79
|
+
async (ctx, next) => {
|
|
80
|
+
const app = this.app;
|
|
81
|
+
if (import_utils.lodash.isEmpty(ctx.action.params)) {
|
|
82
|
+
await next();
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
const { resourceName, actionName } = ctx.action;
|
|
86
|
+
const webhooksRepo = ctx.db.getRepository("webhooks");
|
|
87
|
+
const actions = await app.cache.wrap(
|
|
88
|
+
"webhooks",
|
|
89
|
+
async () => {
|
|
90
|
+
return await webhooksRepo.find({
|
|
91
|
+
filter: {
|
|
92
|
+
enabled: true,
|
|
93
|
+
type: "action"
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
},
|
|
97
|
+
30 * 60 * 1e3
|
|
98
|
+
);
|
|
99
|
+
const actionObj = {};
|
|
100
|
+
const actionList = actions.filter((action) => {
|
|
101
|
+
return resourceName === action["resourceName"] && actionName === action["actionName"];
|
|
102
|
+
});
|
|
103
|
+
for (const action of actionList) {
|
|
104
|
+
actionObj[action.id] = await new import_webhooks.WebhookController().action(ctx, action);
|
|
105
|
+
}
|
|
106
|
+
await next();
|
|
107
|
+
for (const action of actionList) {
|
|
108
|
+
await new import_webhooks.WebhookController().triggerWorkflow(ctx, action, actionObj[action.id]);
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
{ tag: "api-webhook", after: "core" }
|
|
112
|
+
);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
_init = __decoratorStart(null);
|
|
116
|
+
__decorateElement(_init, 5, "app", _app_dec, ActionAPIService);
|
|
117
|
+
ActionAPIService = __decorateElement(_init, 0, "ActionAPIService", _ActionAPIService_decorators, ActionAPIService);
|
|
118
|
+
__runInitializers(_init, 1, ActionAPIService);
|
|
119
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
120
|
+
0 && (module.exports = {
|
|
121
|
+
ActionAPIService
|
|
122
|
+
});
|