@things-factory/integration-base 4.3.671 → 4.3.673
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-server/engine/connection-manager.js +141 -0
- package/dist-server/engine/connection-manager.js.map +1 -0
- package/dist-server/engine/connector/echo-back-connector.js +41 -0
- package/dist-server/engine/connector/echo-back-connector.js.map +1 -0
- package/dist-server/engine/connector/echo-back-server.js +60 -0
- package/dist-server/engine/connector/echo-back-server.js.map +1 -0
- package/dist-server/engine/connector/graphql-connector.js +91 -0
- package/dist-server/engine/connector/graphql-connector.js.map +1 -0
- package/dist-server/engine/connector/http-connector.js +52 -0
- package/dist-server/engine/connector/http-connector.js.map +1 -0
- package/dist-server/engine/connector/index.js +14 -0
- package/dist-server/engine/connector/index.js.map +1 -0
- package/dist-server/engine/connector/mqtt-connector.js +44 -0
- package/dist-server/engine/connector/mqtt-connector.js.map +1 -0
- package/dist-server/engine/connector/mssql-connector.js +88 -0
- package/dist-server/engine/connector/mssql-connector.js.map +1 -0
- package/dist-server/engine/connector/mysql-connector.js +82 -0
- package/dist-server/engine/connector/mysql-connector.js.map +1 -0
- package/dist-server/engine/connector/oracle-connector.js +80 -0
- package/dist-server/engine/connector/oracle-connector.js.map +1 -0
- package/dist-server/engine/connector/postgresql-connector.js +88 -0
- package/dist-server/engine/connector/postgresql-connector.js.map +1 -0
- package/dist-server/engine/connector/socket-server.js +78 -0
- package/dist-server/engine/connector/socket-server.js.map +1 -0
- package/dist-server/engine/connector/sqlite-connector.js +57 -0
- package/dist-server/engine/connector/sqlite-connector.js.map +1 -0
- package/dist-server/engine/index.js +22 -0
- package/dist-server/engine/index.js.map +1 -0
- package/dist-server/engine/pending-queue.js +75 -0
- package/dist-server/engine/pending-queue.js.map +1 -0
- package/dist-server/engine/scenario-engine.js +74 -0
- package/dist-server/engine/scenario-engine.js.map +1 -0
- package/dist-server/engine/task/book-up-scenario.js +63 -0
- package/dist-server/engine/task/book-up-scenario.js.map +1 -0
- package/dist-server/engine/task/database-query.js +30 -0
- package/dist-server/engine/task/database-query.js.map +1 -0
- package/dist-server/engine/task/echo-receive.js +15 -0
- package/dist-server/engine/task/echo-receive.js.map +1 -0
- package/dist-server/engine/task/echo-send.js +24 -0
- package/dist-server/engine/task/echo-send.js.map +1 -0
- package/dist-server/engine/task/empty-check.js +29 -0
- package/dist-server/engine/task/empty-check.js.map +1 -0
- package/dist-server/engine/task/end.js +14 -0
- package/dist-server/engine/task/end.js.map +1 -0
- package/dist-server/engine/task/floating-point.js +64 -0
- package/dist-server/engine/task/floating-point.js.map +1 -0
- package/dist-server/engine/task/goto.js +20 -0
- package/dist-server/engine/task/goto.js.map +1 -0
- package/dist-server/engine/task/graphql-mutate.js +41 -0
- package/dist-server/engine/task/graphql-mutate.js.map +1 -0
- package/dist-server/engine/task/graphql-query.js +40 -0
- package/dist-server/engine/task/graphql-query.js.map +1 -0
- package/dist-server/engine/task/http-get.js +67 -0
- package/dist-server/engine/task/http-get.js.map +1 -0
- package/dist-server/engine/task/http-post.js +106 -0
- package/dist-server/engine/task/http-post.js.map +1 -0
- package/dist-server/engine/task/index.js +35 -0
- package/dist-server/engine/task/index.js.map +1 -0
- package/dist-server/engine/task/local-graphql-mutate.js +51 -0
- package/dist-server/engine/task/local-graphql-mutate.js.map +1 -0
- package/dist-server/engine/task/local-graphql-query.js +51 -0
- package/dist-server/engine/task/local-graphql-query.js.map +1 -0
- package/dist-server/engine/task/log.js +48 -0
- package/dist-server/engine/task/log.js.map +1 -0
- package/dist-server/engine/task/mqtt-publish.js +35 -0
- package/dist-server/engine/task/mqtt-publish.js.map +1 -0
- package/dist-server/engine/task/mqtt-subscribe.js +109 -0
- package/dist-server/engine/task/mqtt-subscribe.js.map +1 -0
- package/dist-server/engine/task/pick-pending-scenario.js +61 -0
- package/dist-server/engine/task/pick-pending-scenario.js.map +1 -0
- package/dist-server/engine/task/publish.js +31 -0
- package/dist-server/engine/task/publish.js.map +1 -0
- package/dist-server/engine/task/reset-pending-queue.js +13 -0
- package/dist-server/engine/task/reset-pending-queue.js.map +1 -0
- package/dist-server/engine/task/script.js +32 -0
- package/dist-server/engine/task/script.js.map +1 -0
- package/dist-server/engine/task/sleep.js +26 -0
- package/dist-server/engine/task/sleep.js.map +1 -0
- package/dist-server/engine/task/socket-listener.js +86 -0
- package/dist-server/engine/task/socket-listener.js.map +1 -0
- package/dist-server/engine/task/sub-scenario.js +45 -0
- package/dist-server/engine/task/sub-scenario.js.map +1 -0
- package/dist-server/engine/task/switch-goto.js +32 -0
- package/dist-server/engine/task/switch-goto.js.map +1 -0
- package/dist-server/engine/task/switch-range-goto.js +39 -0
- package/dist-server/engine/task/switch-range-goto.js.map +1 -0
- package/dist-server/engine/task/switch-range-scenario.js +60 -0
- package/dist-server/engine/task/switch-range-scenario.js.map +1 -0
- package/dist-server/engine/task/switch-range-set.js +35 -0
- package/dist-server/engine/task/switch-range-set.js.map +1 -0
- package/dist-server/engine/task/switch-scenario.js +53 -0
- package/dist-server/engine/task/switch-scenario.js.map +1 -0
- package/dist-server/engine/task/switch-set.js +28 -0
- package/dist-server/engine/task/switch-set.js.map +1 -0
- package/dist-server/engine/task/throw.js +19 -0
- package/dist-server/engine/task/throw.js.map +1 -0
- package/dist-server/engine/task/utils/substitute.js +46 -0
- package/dist-server/engine/task/utils/substitute.js.map +1 -0
- package/dist-server/engine/task/variables.js +13 -0
- package/dist-server/engine/task/variables.js.map +1 -0
- package/dist-server/engine/task-registry.js +20 -0
- package/dist-server/engine/task-registry.js.map +1 -0
- package/dist-server/engine/types.js +3 -0
- package/dist-server/engine/types.js.map +1 -0
- package/dist-server/index.js +25 -0
- package/dist-server/index.js.map +1 -0
- package/dist-server/migrations/index.js +12 -0
- package/dist-server/migrations/index.js.map +1 -0
- package/dist-server/restful/index.js +4 -0
- package/dist-server/restful/index.js.map +1 -0
- package/dist-server/restful/unstable/index.js +10 -0
- package/dist-server/restful/unstable/index.js.map +1 -0
- package/dist-server/restful/unstable/run-scenario.js +40 -0
- package/dist-server/restful/unstable/run-scenario.js.map +1 -0
- package/dist-server/restful/unstable/scenario-instance.js +54 -0
- package/dist-server/restful/unstable/scenario-instance.js.map +1 -0
- package/dist-server/restful/unstable/scenario-instances.js +76 -0
- package/dist-server/restful/unstable/scenario-instances.js.map +1 -0
- package/dist-server/restful/unstable/scenario.js +44 -0
- package/dist-server/restful/unstable/scenario.js.map +1 -0
- package/dist-server/restful/unstable/scenarios.js +65 -0
- package/dist-server/restful/unstable/scenarios.js.map +1 -0
- package/dist-server/restful/unstable/start-scenario.js +35 -0
- package/dist-server/restful/unstable/start-scenario.js.map +1 -0
- package/dist-server/restful/unstable/stop-scenario.js +32 -0
- package/dist-server/restful/unstable/stop-scenario.js.map +1 -0
- package/dist-server/routers/scenario-view-router.js +42 -0
- package/dist-server/routers/scenario-view-router.js.map +1 -0
- package/dist-server/routes.js +14 -0
- package/dist-server/routes.js.map +1 -0
- package/dist-server/service/connection/connection-mutation.js +162 -0
- package/dist-server/service/connection/connection-mutation.js.map +1 -0
- package/dist-server/service/connection/connection-query.js +112 -0
- package/dist-server/service/connection/connection-query.js.map +1 -0
- package/dist-server/service/connection/connection-subscription.js +114 -0
- package/dist-server/service/connection/connection-subscription.js.map +1 -0
- package/dist-server/service/connection/connection-type.js +253 -0
- package/dist-server/service/connection/connection-type.js.map +1 -0
- package/dist-server/service/connection/index.js +10 -0
- package/dist-server/service/connection/index.js.map +1 -0
- package/dist-server/service/connector/connector-query.js +88 -0
- package/dist-server/service/connector/connector-query.js.map +1 -0
- package/dist-server/service/connector/connector-type.js +55 -0
- package/dist-server/service/connector/connector-type.js.map +1 -0
- package/dist-server/service/connector/index.js +7 -0
- package/dist-server/service/connector/index.js.map +1 -0
- package/dist-server/service/index.js +81 -0
- package/dist-server/service/index.js.map +1 -0
- package/dist-server/service/integration/index.js +9 -0
- package/dist-server/service/integration/index.js.map +1 -0
- package/dist-server/service/integration/integration-mutation.js +120 -0
- package/dist-server/service/integration/integration-mutation.js.map +1 -0
- package/dist-server/service/integration/integration-query.js +87 -0
- package/dist-server/service/integration/integration-query.js.map +1 -0
- package/dist-server/service/integration/integration-type.js +77 -0
- package/dist-server/service/integration/integration-type.js.map +1 -0
- package/dist-server/service/integration/integration.js +147 -0
- package/dist-server/service/integration/integration.js.map +1 -0
- package/dist-server/service/payload-log/index.js +9 -0
- package/dist-server/service/payload-log/index.js.map +1 -0
- package/dist-server/service/payload-log/payload-log-mutation.js +144 -0
- package/dist-server/service/payload-log/payload-log-mutation.js.map +1 -0
- package/dist-server/service/payload-log/payload-log-query.js +77 -0
- package/dist-server/service/payload-log/payload-log-query.js.map +1 -0
- package/dist-server/service/payload-log/payload-log-type.js +65 -0
- package/dist-server/service/payload-log/payload-log-type.js.map +1 -0
- package/dist-server/service/payload-log/payload-log.js +109 -0
- package/dist-server/service/payload-log/payload-log.js.map +1 -0
- package/dist-server/service/property-spec.js +42 -0
- package/dist-server/service/property-spec.js.map +1 -0
- package/dist-server/service/scenario/index.js +9 -0
- package/dist-server/service/scenario/index.js.map +1 -0
- package/dist-server/service/scenario/scenario-mutation.js +213 -0
- package/dist-server/service/scenario/scenario-mutation.js.map +1 -0
- package/dist-server/service/scenario/scenario-query.js +130 -0
- package/dist-server/service/scenario/scenario-query.js.map +1 -0
- package/dist-server/service/scenario/scenario-type.js +220 -0
- package/dist-server/service/scenario/scenario-type.js.map +1 -0
- package/dist-server/service/scenario-flow/scenario-flow.js +37 -0
- package/dist-server/service/scenario-flow/scenario-flow.js.map +1 -0
- package/dist-server/service/scenario-instance/index.js +9 -0
- package/dist-server/service/scenario-instance/index.js.map +1 -0
- package/dist-server/service/scenario-instance/scenario-instance-mutation.js +115 -0
- package/dist-server/service/scenario-instance/scenario-instance-mutation.js.map +1 -0
- package/dist-server/service/scenario-instance/scenario-instance-query.js +122 -0
- package/dist-server/service/scenario-instance/scenario-instance-query.js.map +1 -0
- package/dist-server/service/scenario-instance/scenario-instance-subscription.js +122 -0
- package/dist-server/service/scenario-instance/scenario-instance-subscription.js.map +1 -0
- package/dist-server/service/scenario-instance/scenario-instance-type.js +428 -0
- package/dist-server/service/scenario-instance/scenario-instance-type.js.map +1 -0
- package/dist-server/service/scenario-queue/index.js +7 -0
- package/dist-server/service/scenario-queue/index.js.map +1 -0
- package/dist-server/service/scenario-queue/scenario-queue-subscription.js +69 -0
- package/dist-server/service/scenario-queue/scenario-queue-subscription.js.map +1 -0
- package/dist-server/service/scenario-queue/scenario-queue-type.js +52 -0
- package/dist-server/service/scenario-queue/scenario-queue-type.js.map +1 -0
- package/dist-server/service/step/index.js +9 -0
- package/dist-server/service/step/index.js.map +1 -0
- package/dist-server/service/step/step-mutation.js +66 -0
- package/dist-server/service/step/step-mutation.js.map +1 -0
- package/dist-server/service/step/step-query.js +97 -0
- package/dist-server/service/step/step-query.js.map +1 -0
- package/dist-server/service/step/step-type.js +194 -0
- package/dist-server/service/step/step-type.js.map +1 -0
- package/dist-server/service/task-type/index.js +7 -0
- package/dist-server/service/task-type/index.js.map +1 -0
- package/dist-server/service/task-type/task-type-query.js +119 -0
- package/dist-server/service/task-type/task-type-query.js.map +1 -0
- package/dist-server/service/task-type/task-type-type.js +55 -0
- package/dist-server/service/task-type/task-type-type.js.map +1 -0
- package/dist-server/service/webhook/index.js +9 -0
- package/dist-server/service/webhook/index.js.map +1 -0
- package/dist-server/service/webhook/webhook-mutation.js +19 -0
- package/dist-server/service/webhook/webhook-mutation.js.map +1 -0
- package/dist-server/service/webhook/webhook-query.js +18 -0
- package/dist-server/service/webhook/webhook-query.js.map +1 -0
- package/dist-server/service/webhook/webhook-type.js +77 -0
- package/dist-server/service/webhook/webhook-type.js.map +1 -0
- package/dist-server/service/webhook/webhook.js +82 -0
- package/dist-server/service/webhook/webhook.js.map +1 -0
- package/dist-server/service/webhook-event/index.js +9 -0
- package/dist-server/service/webhook-event/index.js.map +1 -0
- package/dist-server/service/webhook-event/webhook-event-enums.js +36 -0
- package/dist-server/service/webhook-event/webhook-event-enums.js.map +1 -0
- package/dist-server/service/webhook-event/webhook-event-mutation.js +18 -0
- package/dist-server/service/webhook-event/webhook-event-mutation.js.map +1 -0
- package/dist-server/service/webhook-event/webhook-event-query.js +18 -0
- package/dist-server/service/webhook-event/webhook-event-query.js.map +1 -0
- package/dist-server/service/webhook-event/webhook-event-type.js +77 -0
- package/dist-server/service/webhook-event/webhook-event-type.js.map +1 -0
- package/dist-server/service/webhook-event/webhook-event.js +60 -0
- package/dist-server/service/webhook-event/webhook-event.js.map +1 -0
- package/dist-server/service/webhook-handler/lambda-handler.js +30 -0
- package/dist-server/service/webhook-handler/lambda-handler.js.map +1 -0
- package/dist-server/service/webhook-handler/webhook-controller.js +54 -0
- package/dist-server/service/webhook-handler/webhook-controller.js.map +1 -0
- package/dist-server/sqs-client.js +29 -0
- package/dist-server/sqs-client.js.map +1 -0
- package/dist-server/sqs-const.js +6 -0
- package/dist-server/sqs-const.js.map +1 -0
- package/dist-server/util/index.js +19 -0
- package/dist-server/util/index.js.map +1 -0
- package/dist-server/util/lambda/lambda-const.js +7 -0
- package/dist-server/util/lambda/lambda-const.js.map +1 -0
- package/dist-server/util/lambda/lambda-service.js +33 -0
- package/dist-server/util/lambda/lambda-service.js.map +1 -0
- package/dist-server/util/sqs-send-message.js +11 -0
- package/dist-server/util/sqs-send-message.js.map +1 -0
- package/package.json +6 -6
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.mysqlConnector = void 0;
|
|
7
|
+
const connection_manager_1 = require("../connection-manager");
|
|
8
|
+
const promise_1 = __importDefault(require("mysql2/promise"));
|
|
9
|
+
class mysqlConnector {
|
|
10
|
+
async ready(connectionConfigs) {
|
|
11
|
+
await Promise.all(connectionConfigs.map(this.connect));
|
|
12
|
+
connection_manager_1.ConnectionManager.logger.info("mysql-connector connections are ready");
|
|
13
|
+
}
|
|
14
|
+
async connect(connection) {
|
|
15
|
+
const { endpoint, params: { user, password, database }, } = connection;
|
|
16
|
+
const [host, port = 3306] = endpoint.split(":");
|
|
17
|
+
if (!promise_1.default) {
|
|
18
|
+
throw new Error("mysql module loading failed");
|
|
19
|
+
}
|
|
20
|
+
let pool = await promise_1.default.createPool({
|
|
21
|
+
user,
|
|
22
|
+
password,
|
|
23
|
+
host,
|
|
24
|
+
port,
|
|
25
|
+
database,
|
|
26
|
+
});
|
|
27
|
+
const client = await pool.getConnection();
|
|
28
|
+
connection_manager_1.ConnectionManager.addConnectionInstance(connection, {
|
|
29
|
+
query: async (query, params) => {
|
|
30
|
+
var result;
|
|
31
|
+
try {
|
|
32
|
+
const results = await client.query(query);
|
|
33
|
+
if (results && results.length > 0) {
|
|
34
|
+
result = results[0];
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
catch (e) {
|
|
38
|
+
connection_manager_1.ConnectionManager.logger.error(e);
|
|
39
|
+
}
|
|
40
|
+
return result;
|
|
41
|
+
},
|
|
42
|
+
close: client.end(),
|
|
43
|
+
});
|
|
44
|
+
connection_manager_1.ConnectionManager.logger.info(`mysql Database(${connection.name}:${database}) at ${endpoint} connected.`);
|
|
45
|
+
}
|
|
46
|
+
async disconnect(connection) {
|
|
47
|
+
var client = connection_manager_1.ConnectionManager.getConnectionInstance(connection);
|
|
48
|
+
try {
|
|
49
|
+
await client.close();
|
|
50
|
+
connection_manager_1.ConnectionManager.logger.info(`mysql Database(${connection.name}) closed.`);
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
connection_manager_1.ConnectionManager.logger.error(e);
|
|
54
|
+
}
|
|
55
|
+
connection_manager_1.ConnectionManager.removeConnectionInstance(connection);
|
|
56
|
+
}
|
|
57
|
+
get parameterSpec() {
|
|
58
|
+
return [
|
|
59
|
+
{
|
|
60
|
+
type: "string",
|
|
61
|
+
name: "user",
|
|
62
|
+
label: "user",
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
type: "password",
|
|
66
|
+
name: "password",
|
|
67
|
+
label: "password",
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
type: "string",
|
|
71
|
+
name: "database",
|
|
72
|
+
label: "database",
|
|
73
|
+
},
|
|
74
|
+
];
|
|
75
|
+
}
|
|
76
|
+
get taskPrefixes() {
|
|
77
|
+
return ["database"];
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.mysqlConnector = mysqlConnector;
|
|
81
|
+
connection_manager_1.ConnectionManager.registerConnector("mysql-connector", new mysqlConnector());
|
|
82
|
+
//# sourceMappingURL=mysql-connector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mysql-connector.js","sourceRoot":"","sources":["../../../server/engine/connector/mysql-connector.ts"],"names":[],"mappings":";;;;;;AACA,8DAAyD;AACzD,6DAAmC;AAEnC,MAAa,cAAc;IACzB,KAAK,CAAC,KAAK,CAAC,iBAAiB;QAC3B,MAAM,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACvD,sCAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAAU;QACtB,MAAM,EACJ,QAAQ,EACR,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GACrC,GAAG,UAAU,CAAC;QAEf,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEhD,IAAI,CAAC,iBAAK,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAChD;QAED,IAAI,IAAI,GAAG,MAAM,iBAAK,CAAC,UAAU,CAAC;YAChC,IAAI;YACJ,QAAQ;YACR,IAAI;YACJ,IAAI;YACJ,QAAQ;SACT,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC1C,sCAAiB,CAAC,qBAAqB,CAAC,UAAU,EAAE;YAClD,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBAC7B,IAAI,MAAM,CAAC;gBACX,IAAI;oBACF,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC1C,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;wBACjC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;qBACrB;iBACF;gBAAC,OAAO,CAAC,EAAE;oBACV,sCAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBACnC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE;SACpB,CAAC,CAAC;QAEH,sCAAiB,CAAC,MAAM,CAAC,IAAI,CAC3B,kBAAkB,UAAU,CAAC,IAAI,IAAI,QAAQ,QAAQ,QAAQ,aAAa,CAC3E,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAU;QACzB,IAAI,MAAM,GAAG,sCAAiB,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QACjE,IAAI;YACF,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACrB,sCAAiB,CAAC,MAAM,CAAC,IAAI,CAC3B,kBAAkB,UAAU,CAAC,IAAI,WAAW,CAC7C,CAAC;SACH;QAAC,OAAO,CAAC,EAAE;YACV,sCAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACnC;QAED,sCAAiB,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,aAAa;QACf,OAAO;YACL;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;aACd;YACD;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,UAAU;aAClB;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,UAAU;aAClB;SACF,CAAC;IACJ,CAAC;IAED,IAAI,YAAY;QACd,OAAO,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC;CACF;AArFD,wCAqFC;AAED,sCAAiB,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,IAAI,cAAc,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OracleConnector = void 0;
|
|
4
|
+
const connection_manager_1 = require("../connection-manager");
|
|
5
|
+
try {
|
|
6
|
+
var Client = require('oracledb');
|
|
7
|
+
}
|
|
8
|
+
catch (err) {
|
|
9
|
+
console.error('oracledb module loading failed');
|
|
10
|
+
}
|
|
11
|
+
class OracleConnector {
|
|
12
|
+
async ready(connectionConfigs) {
|
|
13
|
+
await Promise.all(connectionConfigs.map(this.connect));
|
|
14
|
+
connection_manager_1.ConnectionManager.logger.info('oracle-connector connections are ready');
|
|
15
|
+
}
|
|
16
|
+
async connect(connection) {
|
|
17
|
+
const { endpoint, params: { user, password, database } } = connection;
|
|
18
|
+
if (!Client) {
|
|
19
|
+
throw new Error('oracledb module loading failed');
|
|
20
|
+
}
|
|
21
|
+
//when oracle not using defualt port must add connection string with port like localhsot:port
|
|
22
|
+
const client = await Client.getConnection({
|
|
23
|
+
user,
|
|
24
|
+
password,
|
|
25
|
+
connectString: `${endpoint.trim()}/${database}`
|
|
26
|
+
});
|
|
27
|
+
connection_manager_1.ConnectionManager.addConnectionInstance(connection, {
|
|
28
|
+
query: async (query, params) => {
|
|
29
|
+
return (await client.execute(query, params, {
|
|
30
|
+
outFormat: Client.OBJECT
|
|
31
|
+
})).rows;
|
|
32
|
+
},
|
|
33
|
+
close: client.close.bind(client)
|
|
34
|
+
});
|
|
35
|
+
connection_manager_1.ConnectionManager.logger.info(`Oracle Database(${connection.name}:${database}) at ${endpoint} connected.`);
|
|
36
|
+
}
|
|
37
|
+
async disconnect(connection) {
|
|
38
|
+
var client = connection_manager_1.ConnectionManager.getConnectionInstance(connection);
|
|
39
|
+
try {
|
|
40
|
+
await client.close();
|
|
41
|
+
connection_manager_1.ConnectionManager.logger.info(`Oracle Database(${connection.name}) closed.`);
|
|
42
|
+
}
|
|
43
|
+
catch (e) {
|
|
44
|
+
connection_manager_1.ConnectionManager.logger.error(e);
|
|
45
|
+
}
|
|
46
|
+
connection_manager_1.ConnectionManager.removeConnectionInstance(connection);
|
|
47
|
+
}
|
|
48
|
+
get parameterSpec() {
|
|
49
|
+
return [
|
|
50
|
+
{
|
|
51
|
+
type: 'string',
|
|
52
|
+
name: 'user',
|
|
53
|
+
label: 'user'
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
type: 'password',
|
|
57
|
+
name: 'password',
|
|
58
|
+
label: 'password'
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
type: 'string',
|
|
62
|
+
name: 'database',
|
|
63
|
+
placeholder: 'SID',
|
|
64
|
+
label: 'database'
|
|
65
|
+
}
|
|
66
|
+
];
|
|
67
|
+
}
|
|
68
|
+
get taskPrefixes() {
|
|
69
|
+
return ['database'];
|
|
70
|
+
}
|
|
71
|
+
get help() {
|
|
72
|
+
return 'integration/connector/oracle-connector';
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
exports.OracleConnector = OracleConnector;
|
|
76
|
+
connection_manager_1.ConnectionManager.registerConnector('oracle-connector', new OracleConnector());
|
|
77
|
+
// need reference:
|
|
78
|
+
// https://download.oracle.com/otn_software/mac/instantclient/193000/instantclient-basiclite-macos.x64-19.3.0.0.0dbru.zip
|
|
79
|
+
// docker pull store/oracle/database-instantclient:12.2.0.1
|
|
80
|
+
//# sourceMappingURL=oracle-connector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oracle-connector.js","sourceRoot":"","sources":["../../../server/engine/connector/oracle-connector.ts"],"names":[],"mappings":";;;AACA,8DAAyD;AACzD,IAAI;IACF,IAAI,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;CACjC;AAAC,OAAO,GAAG,EAAE;IACZ,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAA;CAChD;AAED,MAAa,eAAe;IAC1B,KAAK,CAAC,KAAK,CAAC,iBAAiB;QAC3B,MAAM,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;QAEtD,sCAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAA;IACzE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAAU;QACtB,MAAM,EACJ,QAAQ,EACR,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EACrC,GAAG,UAAU,CAAA;QAEd,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;SAClD;QAED,6FAA6F;QAC7F,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC;YACxC,IAAI;YACJ,QAAQ;YACR,aAAa,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,QAAQ,EAAE;SAChD,CAAC,CAAA;QAEF,sCAAiB,CAAC,qBAAqB,CAAC,UAAU,EAAE;YAClD,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBAC7B,OAAO,CACL,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE;oBAClC,SAAS,EAAE,MAAM,CAAC,MAAM;iBACzB,CAAC,CACH,CAAC,IAAI,CAAA;YACR,CAAC;YACD,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;SACjC,CAAC,CAAA;QAEF,sCAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,UAAU,CAAC,IAAI,IAAI,QAAQ,QAAQ,QAAQ,aAAa,CAAC,CAAA;IAC5G,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAU;QACzB,IAAI,MAAM,GAAG,sCAAiB,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAA;QAChE,IAAI;YACF,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;YACpB,sCAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,UAAU,CAAC,IAAI,WAAW,CAAC,CAAA;SAC7E;QAAC,OAAO,CAAC,EAAE;YACV,sCAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;SAClC;QAED,sCAAiB,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAA;IACxD,CAAC;IAED,IAAI,aAAa;QACf,OAAO;YACL;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;aACd;YACD;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,UAAU;aAClB;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,UAAU;gBAChB,WAAW,EAAE,KAAK;gBAClB,KAAK,EAAE,UAAU;aAClB;SACF,CAAA;IACH,CAAC;IAED,IAAI,YAAY;QACd,OAAO,CAAC,UAAU,CAAC,CAAA;IACrB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,wCAAwC,CAAA;IACjD,CAAC;CACF;AA9ED,0CA8EC;AAED,sCAAiB,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,IAAI,eAAe,EAAE,CAAC,CAAA;AAE9E,kBAAkB;AAClB,yHAAyH;AAEzH,2DAA2D"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PostgresqlConnector = void 0;
|
|
4
|
+
const connection_manager_1 = require("../connection-manager");
|
|
5
|
+
try {
|
|
6
|
+
var { Client } = require('pg');
|
|
7
|
+
}
|
|
8
|
+
catch (err) {
|
|
9
|
+
console.error('postgresql module loading failed');
|
|
10
|
+
}
|
|
11
|
+
class PostgresqlConnector {
|
|
12
|
+
async ready(connectionConfigs) {
|
|
13
|
+
await Promise.all(connectionConfigs.map(this.connect.bind(this)));
|
|
14
|
+
connection_manager_1.ConnectionManager.logger.info('postgresql-connector connections are ready');
|
|
15
|
+
}
|
|
16
|
+
async connect(connection) {
|
|
17
|
+
const { endpoint, params: { user, password, database } } = connection;
|
|
18
|
+
const [host, port = 5432] = endpoint.split(':');
|
|
19
|
+
if (!Client) {
|
|
20
|
+
throw new Error('postgresql module loading failed');
|
|
21
|
+
}
|
|
22
|
+
const client = new Client({
|
|
23
|
+
user,
|
|
24
|
+
host,
|
|
25
|
+
database,
|
|
26
|
+
password,
|
|
27
|
+
port: Number(port)
|
|
28
|
+
});
|
|
29
|
+
client.on('error', async (err) => {
|
|
30
|
+
// create a new database clinet and reconnect to server at an unexpected error
|
|
31
|
+
this.connect(connection);
|
|
32
|
+
});
|
|
33
|
+
try {
|
|
34
|
+
await client.connect();
|
|
35
|
+
connection_manager_1.ConnectionManager.addConnectionInstance(connection, {
|
|
36
|
+
query: async (query, params) => {
|
|
37
|
+
return (await client.query(query, params)).rows;
|
|
38
|
+
},
|
|
39
|
+
close: async () => {
|
|
40
|
+
await client.end();
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
connection_manager_1.ConnectionManager.logger.info(`PostgresSQL Database(${connection.name}:${database}) at ${endpoint} connected.`);
|
|
44
|
+
}
|
|
45
|
+
catch (e) {
|
|
46
|
+
connection_manager_1.ConnectionManager.logger.error(`PostgresSQL Database(${connection.name}:${database}) at ${endpoint} not connected.\ncause: ${e}`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
async disconnect(connection) {
|
|
50
|
+
var client = connection_manager_1.ConnectionManager.getConnectionInstance(connection);
|
|
51
|
+
try {
|
|
52
|
+
await client.close();
|
|
53
|
+
connection_manager_1.ConnectionManager.logger.info(`PostgresSQL Database(${connection.name}) closed.`);
|
|
54
|
+
}
|
|
55
|
+
catch (e) {
|
|
56
|
+
connection_manager_1.ConnectionManager.logger.error(e);
|
|
57
|
+
}
|
|
58
|
+
connection_manager_1.ConnectionManager.removeConnectionInstance(connection);
|
|
59
|
+
}
|
|
60
|
+
get parameterSpec() {
|
|
61
|
+
return [
|
|
62
|
+
{
|
|
63
|
+
type: 'string',
|
|
64
|
+
name: 'user',
|
|
65
|
+
label: 'user'
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
type: 'password',
|
|
69
|
+
name: 'password',
|
|
70
|
+
label: 'password'
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
type: 'string',
|
|
74
|
+
name: 'database',
|
|
75
|
+
label: 'database'
|
|
76
|
+
}
|
|
77
|
+
];
|
|
78
|
+
}
|
|
79
|
+
get taskPrefixes() {
|
|
80
|
+
return ['database'];
|
|
81
|
+
}
|
|
82
|
+
get help() {
|
|
83
|
+
return 'integration/connector/postgresql-connector';
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
exports.PostgresqlConnector = PostgresqlConnector;
|
|
87
|
+
connection_manager_1.ConnectionManager.registerConnector('postgresql-connector', new PostgresqlConnector());
|
|
88
|
+
//# sourceMappingURL=postgresql-connector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgresql-connector.js","sourceRoot":"","sources":["../../../server/engine/connector/postgresql-connector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SocketServer = void 0;
|
|
7
|
+
const net_1 = __importDefault(require("net"));
|
|
8
|
+
const connection_manager_1 = require("../connection-manager");
|
|
9
|
+
const events_1 = require("events");
|
|
10
|
+
class SocketServer {
|
|
11
|
+
// socket: any
|
|
12
|
+
async ready(connectionConfigs) {
|
|
13
|
+
await Promise.all(connectionConfigs.map(this.connect));
|
|
14
|
+
connection_manager_1.ConnectionManager.logger.info('socket servers are ready');
|
|
15
|
+
}
|
|
16
|
+
async connect(config) {
|
|
17
|
+
var em = new events_1.EventEmitter();
|
|
18
|
+
var [host = '0.0.0.0', port = 8124] = config.endpoint.split(':');
|
|
19
|
+
return new Promise((resolve, reject) => {
|
|
20
|
+
var server = net_1.default.createServer(tcp => {
|
|
21
|
+
connection_manager_1.ConnectionManager.logger.info('Client connection: ');
|
|
22
|
+
connection_manager_1.ConnectionManager.logger.info(' local = %s:%s', tcp.localAddress, tcp.localPort);
|
|
23
|
+
connection_manager_1.ConnectionManager.logger.info(' remote = %s:%s', tcp.remoteAddress, tcp.remotePort);
|
|
24
|
+
tcp.on('data', (data) => {
|
|
25
|
+
em['__tcp__'] = tcp;
|
|
26
|
+
var message = data.toString();
|
|
27
|
+
message = message.replace('SB#', '');
|
|
28
|
+
message = message.replace(/(\r\n|\n|\r)/gm, '');
|
|
29
|
+
em.emit('socket-message-arrive', message);
|
|
30
|
+
connection_manager_1.ConnectionManager.logger.info(`socket ${message}`);
|
|
31
|
+
tcp.write('ok');
|
|
32
|
+
});
|
|
33
|
+
tcp.on('end', () => {
|
|
34
|
+
connection_manager_1.ConnectionManager.logger.info('Client disconnected');
|
|
35
|
+
});
|
|
36
|
+
tcp.on('error', ex => {
|
|
37
|
+
connection_manager_1.ConnectionManager.logger.info('Server socket error: ');
|
|
38
|
+
var logger = connection_manager_1.ConnectionManager.logger;
|
|
39
|
+
let message = ex.stack ? ex.stack : ex;
|
|
40
|
+
let msg = typeof message == 'object' ? JSON.stringify(message, null, 2) : message;
|
|
41
|
+
logger.error(msg);
|
|
42
|
+
reject(ex);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
server.listen(port, async () => {
|
|
46
|
+
connection_manager_1.ConnectionManager.logger.info(`tcp echo server listening on ${host}:${port}`);
|
|
47
|
+
/* default client connection */
|
|
48
|
+
try {
|
|
49
|
+
em['__server__'] = server;
|
|
50
|
+
connection_manager_1.ConnectionManager.addConnectionInstance(config, em);
|
|
51
|
+
connection_manager_1.ConnectionManager.logger.info(`socket server connection(${config.name}:${config.endpoint}) is connected`);
|
|
52
|
+
resolve();
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
connection_manager_1.ConnectionManager.logger.error(err);
|
|
56
|
+
reject(err);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
async disconnect(connection) {
|
|
62
|
+
let em = connection_manager_1.ConnectionManager.removeConnectionInstance(connection);
|
|
63
|
+
var tcp = em['__tcp__'];
|
|
64
|
+
var server = em['__server__'];
|
|
65
|
+
tcp && (await tcp.destroy());
|
|
66
|
+
server && (await server.close());
|
|
67
|
+
connection_manager_1.ConnectionManager.logger.info(`socket server connection(${connection.name}) is disconnected`);
|
|
68
|
+
}
|
|
69
|
+
get parameterSpec() {
|
|
70
|
+
return [];
|
|
71
|
+
}
|
|
72
|
+
get taskPrefixes() {
|
|
73
|
+
return ['socket'];
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.SocketServer = SocketServer;
|
|
77
|
+
connection_manager_1.ConnectionManager.registerConnector('socket-server', new SocketServer());
|
|
78
|
+
//# sourceMappingURL=socket-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socket-server.js","sourceRoot":"","sources":["../../../server/engine/connector/socket-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SqliteConnector = void 0;
|
|
4
|
+
const connection_manager_1 = require("../connection-manager");
|
|
5
|
+
const util_1 = require("util");
|
|
6
|
+
try {
|
|
7
|
+
var sqlite3 = require('sqlite3').verbose();
|
|
8
|
+
}
|
|
9
|
+
catch (err) {
|
|
10
|
+
console.error('sqlite3 module loading failed');
|
|
11
|
+
}
|
|
12
|
+
class SqliteConnector {
|
|
13
|
+
async ready(connectionConfigs) {
|
|
14
|
+
await Promise.all(connectionConfigs.map(this.connect.bind(this)));
|
|
15
|
+
connection_manager_1.ConnectionManager.logger.info('sqlite-connector connections are ready');
|
|
16
|
+
}
|
|
17
|
+
async connect(connection) {
|
|
18
|
+
var { endpoint } = connection;
|
|
19
|
+
if (!sqlite3) {
|
|
20
|
+
throw new Error('sqlite3 module loading failed');
|
|
21
|
+
}
|
|
22
|
+
var database = new sqlite3.Database(endpoint, sqlite3.OPEN_READWRITE, err => {
|
|
23
|
+
if (err) {
|
|
24
|
+
connection_manager_1.ConnectionManager.logger.error(`SQLite Database(${connection.name}) at ${endpoint} not connected.\ncause: ${err}`);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
connection_manager_1.ConnectionManager.addConnectionInstance(connection, {
|
|
28
|
+
query: (0, util_1.promisify)(database.all.bind(database)),
|
|
29
|
+
close: (0, util_1.promisify)(database.close.bind(database))
|
|
30
|
+
});
|
|
31
|
+
connection_manager_1.ConnectionManager.logger.info(`SQLite Database(${connection.name}) at ${endpoint} connected.`);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
async disconnect(connection) {
|
|
35
|
+
var database = connection_manager_1.ConnectionManager.getConnectionInstance(connection);
|
|
36
|
+
try {
|
|
37
|
+
await database.close();
|
|
38
|
+
connection_manager_1.ConnectionManager.logger.info(`SQLite Database(${connection.name}) closed.`);
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
connection_manager_1.ConnectionManager.logger.error(e);
|
|
42
|
+
}
|
|
43
|
+
connection_manager_1.ConnectionManager.removeConnectionInstance(connection);
|
|
44
|
+
}
|
|
45
|
+
get parameterSpec() {
|
|
46
|
+
return [];
|
|
47
|
+
}
|
|
48
|
+
get taskPrefixes() {
|
|
49
|
+
return ['database'];
|
|
50
|
+
}
|
|
51
|
+
get help() {
|
|
52
|
+
return 'integration/connector/sqlite-connector';
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.SqliteConnector = SqliteConnector;
|
|
56
|
+
connection_manager_1.ConnectionManager.registerConnector('sqlite-connector', new SqliteConnector());
|
|
57
|
+
//# sourceMappingURL=sqlite-connector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite-connector.js","sourceRoot":"","sources":["../../../server/engine/connector/sqlite-connector.ts"],"names":[],"mappings":";;;AACA,8DAAyD;AACzD,+BAAgC;AAEhC,IAAI;IACF,IAAI,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAA;CAC3C;AAAC,OAAO,GAAG,EAAE;IACZ,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAA;CAC/C;AAED,MAAa,eAAe;IAC1B,KAAK,CAAC,KAAK,CAAC,iBAAiB;QAC3B,MAAM,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAEjE,sCAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAA;IACzE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAAU;QACtB,IAAI,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAA;QAE7B,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;SACjD;QAED,IAAI,QAAQ,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,EAAE;YAC1E,IAAI,GAAG,EAAE;gBACP,sCAAiB,CAAC,MAAM,CAAC,KAAK,CAC5B,mBAAmB,UAAU,CAAC,IAAI,QAAQ,QAAQ,2BAA2B,GAAG,EAAE,CACnF,CAAA;gBACD,OAAM;aACP;YAED,sCAAiB,CAAC,qBAAqB,CAAC,UAAU,EAAE;gBAClD,KAAK,EAAE,IAAA,gBAAS,EAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC7C,KAAK,EAAE,IAAA,gBAAS,EAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAChD,CAAC,CAAA;YAEF,sCAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,UAAU,CAAC,IAAI,QAAQ,QAAQ,aAAa,CAAC,CAAA;QAChG,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAU;QACzB,IAAI,QAAQ,GAAG,sCAAiB,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAA;QAClE,IAAI;YACF,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAA;YACtB,sCAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,UAAU,CAAC,IAAI,WAAW,CAAC,CAAA;SAC7E;QAAC,OAAO,CAAC,EAAE;YACV,sCAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;SAClC;QAED,sCAAiB,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAA;IACxD,CAAC;IAED,IAAI,aAAa;QACf,OAAO,EAAE,CAAA;IACX,CAAC;IAED,IAAI,YAAY;QACd,OAAO,CAAC,UAAU,CAAC,CAAA;IACrB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,wCAAwC,CAAA;IACjD,CAAC;CACF;AAtDD,0CAsDC;AAED,sCAAiB,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,IAAI,eAAe,EAAE,CAAC,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
require("./connector");
|
|
18
|
+
require("./task");
|
|
19
|
+
__exportStar(require("./connection-manager"), exports);
|
|
20
|
+
__exportStar(require("./scenario-engine"), exports);
|
|
21
|
+
__exportStar(require("./task-registry"), exports);
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/engine/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uBAAoB;AACpB,kBAAe;AAEf,uDAAoC;AACpC,oDAAiC;AACjC,kDAA+B"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PendingQueue = void 0;
|
|
4
|
+
const debug = require('debug')('things-factory:integration-base:pending-queue');
|
|
5
|
+
class PendingQueue {
|
|
6
|
+
constructor(changedCallback) {
|
|
7
|
+
this._queue = [];
|
|
8
|
+
this._changedCallback = changedCallback;
|
|
9
|
+
}
|
|
10
|
+
get queue() {
|
|
11
|
+
return this._queue;
|
|
12
|
+
}
|
|
13
|
+
get status() {
|
|
14
|
+
return {
|
|
15
|
+
total: this._queue.length
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
reset() {
|
|
19
|
+
this._queue = [];
|
|
20
|
+
this._changedCallback(this._queue);
|
|
21
|
+
}
|
|
22
|
+
put({ delay, stuff, priority = 0, tag = '' }) {
|
|
23
|
+
const due = Date.now() + (Number(delay) || 0) * 1000;
|
|
24
|
+
const insertBefore = this._queue.findIndex(pended => pended.due > due);
|
|
25
|
+
if (insertBefore == -1) {
|
|
26
|
+
this._queue.push({
|
|
27
|
+
due,
|
|
28
|
+
priority: Number(priority) || 0,
|
|
29
|
+
stuff,
|
|
30
|
+
tag: tag || ''
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
this._queue.splice(insertBefore, 0, {
|
|
35
|
+
due,
|
|
36
|
+
priority,
|
|
37
|
+
stuff,
|
|
38
|
+
tag
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
this._changedCallback(this._queue);
|
|
42
|
+
debug('put', this.status);
|
|
43
|
+
}
|
|
44
|
+
pick(tag = '') {
|
|
45
|
+
const due = Date.now();
|
|
46
|
+
var toppick;
|
|
47
|
+
var index = -1;
|
|
48
|
+
for (let i = 0; i < this._queue.length; i++) {
|
|
49
|
+
var pended = this._queue[i];
|
|
50
|
+
if (pended.due > due) {
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
if (pended.tag !== tag) {
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
if (!toppick || toppick.priority < pended.priority) {
|
|
57
|
+
toppick = pended;
|
|
58
|
+
index = i;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if (index !== -1) {
|
|
62
|
+
this._queue.splice(index, 1);
|
|
63
|
+
this._changedCallback(this._queue);
|
|
64
|
+
}
|
|
65
|
+
toppick && debug('pick', toppick, this.status, due);
|
|
66
|
+
return toppick;
|
|
67
|
+
}
|
|
68
|
+
cancel(stuff) {
|
|
69
|
+
const index = this._queue.findIndex(pended => pended.stuff === stuff);
|
|
70
|
+
index !== -1 && this._queue.splice(index, 1);
|
|
71
|
+
this._changedCallback(this._queue);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.PendingQueue = PendingQueue;
|
|
75
|
+
//# sourceMappingURL=pending-queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pending-queue.js","sourceRoot":"","sources":["../../server/engine/pending-queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ScenarioEngine = void 0;
|
|
4
|
+
const typeorm_1 = require("typeorm");
|
|
5
|
+
const shell_1 = require("@things-factory/shell");
|
|
6
|
+
const service_1 = require("../service");
|
|
7
|
+
const pending_queue_1 = require("./pending-queue");
|
|
8
|
+
const debug = require('debug')('things-factory:integration-base:scenario-engine');
|
|
9
|
+
class ScenarioEngine {
|
|
10
|
+
static getPendingQueue(domain) {
|
|
11
|
+
if (!ScenarioEngine.pendingQueues[domain.id]) {
|
|
12
|
+
ScenarioEngine.pendingQueues[domain.id] = new pending_queue_1.PendingQueue(queue => {
|
|
13
|
+
shell_1.pubsub.publish('scenario-queue-state', {
|
|
14
|
+
scenarioQueueState: {
|
|
15
|
+
domain,
|
|
16
|
+
queue
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
return ScenarioEngine.pendingQueues[domain.id];
|
|
22
|
+
}
|
|
23
|
+
static getScenarioInstance(domain, instanceName) {
|
|
24
|
+
var _a;
|
|
25
|
+
return (_a = ScenarioEngine.scenarioInstances[domain.id]) === null || _a === void 0 ? void 0 : _a[instanceName];
|
|
26
|
+
}
|
|
27
|
+
static getScenarioInstances(domain, scenarioName) {
|
|
28
|
+
const instances = Object.values(ScenarioEngine.scenarioInstances[domain.id] || {}) || [];
|
|
29
|
+
return instances.filter(instance => !scenarioName || instance.scenarioName == scenarioName);
|
|
30
|
+
}
|
|
31
|
+
static async load(instanceName, scenarioConfig, context) {
|
|
32
|
+
const { domain } = scenarioConfig;
|
|
33
|
+
debug('load', domain.subdomain, instanceName);
|
|
34
|
+
var scenarioInstances = ScenarioEngine.scenarioInstances[domain.id];
|
|
35
|
+
if (!scenarioInstances) {
|
|
36
|
+
scenarioInstances = ScenarioEngine.scenarioInstances[domain.id] = {};
|
|
37
|
+
}
|
|
38
|
+
var scenarioInstance = scenarioInstances[instanceName];
|
|
39
|
+
if (scenarioInstance) {
|
|
40
|
+
debug('load - duplicated', instanceName);
|
|
41
|
+
return scenarioInstance;
|
|
42
|
+
}
|
|
43
|
+
var instance = new service_1.ScenarioInstance(instanceName, scenarioConfig, Object.assign(Object.assign({}, context), { client: shell_1.GraphqlLocalClient.client, disposer: () => {
|
|
44
|
+
this.unload(domain, instanceName);
|
|
45
|
+
} }));
|
|
46
|
+
instance.start();
|
|
47
|
+
scenarioInstances[instanceName] = instance;
|
|
48
|
+
return instance;
|
|
49
|
+
}
|
|
50
|
+
static async unload(domain, instanceName) {
|
|
51
|
+
var scenarioInstances = ScenarioEngine.scenarioInstances[domain.id];
|
|
52
|
+
if (!scenarioInstances) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
var instance = scenarioInstances[instanceName];
|
|
56
|
+
if (!instance) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
delete scenarioInstances[instanceName];
|
|
60
|
+
instance.unload();
|
|
61
|
+
}
|
|
62
|
+
static async loadAll() {
|
|
63
|
+
const SCENARIOS = await (0, typeorm_1.getRepository)(service_1.Scenario).find({
|
|
64
|
+
where: { active: true },
|
|
65
|
+
relations: ['domain', 'steps']
|
|
66
|
+
});
|
|
67
|
+
debug('load-all', SCENARIOS.map(scenario => `${scenario.domain.subdomain}: ${scenario.name}`));
|
|
68
|
+
SCENARIOS.forEach(scenario => ScenarioEngine.load(scenario.name, scenario));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.ScenarioEngine = ScenarioEngine;
|
|
72
|
+
ScenarioEngine.scenarioInstances = {}; // TODO impl. by WeakMap
|
|
73
|
+
ScenarioEngine.pendingQueues = {};
|
|
74
|
+
//# sourceMappingURL=scenario-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scenario-engine.js","sourceRoot":"","sources":["../../server/engine/scenario-engine.ts"],"names":[],"mappings":"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"}
|