@things-factory/integration-base 7.0.1-beta.9 → 7.0.1-rc.1
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/controllers/index.d.ts +1 -0
- package/dist-server/controllers/scenario-controller.d.ts +4 -0
- package/dist-server/controllers/scenario-controller.js +11 -6
- package/dist-server/controllers/scenario-controller.js.map +1 -1
- package/dist-server/engine/analyzer/analyze-integration.d.ts +5 -0
- package/dist-server/engine/analyzer/analyze-integration.js +1 -2
- package/dist-server/engine/analyzer/analyze-integration.js.map +1 -1
- package/dist-server/engine/connection-manager.d.ts +35 -0
- package/dist-server/engine/connection-manager.js.map +1 -1
- package/dist-server/engine/connector/echo-back-connector.d.ts +9 -0
- package/dist-server/engine/connector/echo-back-connector.js.map +1 -1
- package/dist-server/engine/connector/echo-back-server.d.ts +8 -0
- package/dist-server/engine/connector/echo-back-server.js.map +1 -1
- package/dist-server/engine/connector/graphql-connector.d.ts +19 -0
- package/dist-server/engine/connector/graphql-connector.js +1 -1
- package/dist-server/engine/connector/graphql-connector.js.map +1 -1
- package/dist-server/engine/connector/http-connector.d.ts +25 -0
- package/dist-server/engine/connector/http-connector.js.map +1 -1
- package/dist-server/engine/connector/index.d.ts +12 -0
- package/dist-server/engine/connector/mqtt-connector.d.ts +14 -0
- package/dist-server/engine/connector/mqtt-connector.js.map +1 -1
- package/dist-server/engine/connector/mssql-connector.d.ts +30 -0
- package/dist-server/engine/connector/mssql-connector.js.map +1 -1
- package/dist-server/engine/connector/mysql-connector.d.ts +13 -0
- package/dist-server/engine/connector/mysql-connector.js.map +1 -1
- package/dist-server/engine/connector/operato-connector.d.ts +27 -0
- package/dist-server/engine/connector/operato-connector.js +1 -1
- package/dist-server/engine/connector/operato-connector.js.map +1 -1
- package/dist-server/engine/connector/oracle-connector.d.ts +29 -0
- package/dist-server/engine/connector/oracle-connector.js.map +1 -1
- package/dist-server/engine/connector/postgresql-connector.d.ts +14 -0
- package/dist-server/engine/connector/postgresql-connector.js.map +1 -1
- package/dist-server/engine/connector/proxy-connector.d.ts +15 -0
- package/dist-server/engine/connector/socket-server.d.ts +9 -0
- package/dist-server/engine/connector/socket-server.js.map +1 -1
- package/dist-server/engine/connector/sqlite-connector.d.ts +10 -0
- package/dist-server/engine/connector/sqlite-connector.js.map +1 -1
- package/dist-server/engine/edge-client.d.ts +18 -0
- package/dist-server/engine/edge-client.js +5 -6
- package/dist-server/engine/edge-client.js.map +1 -1
- package/dist-server/engine/index.d.ts +8 -0
- package/dist-server/engine/index.js.map +1 -1
- package/dist-server/engine/pending-queue.d.ts +24 -0
- package/dist-server/engine/pending-queue.js.map +1 -1
- package/dist-server/engine/scenario-engine.d.ts +11 -0
- package/dist-server/engine/scenario-engine.js.map +1 -1
- package/dist-server/engine/task/book-up-scenario.d.ts +1 -0
- package/dist-server/engine/task/csv-readline.d.ts +1 -0
- package/dist-server/engine/task/csv-readline.js.map +1 -1
- package/dist-server/engine/task/data-accessor.d.ts +1 -0
- package/dist-server/engine/task/data-mapper.d.ts +1 -0
- package/dist-server/engine/task/data-mapper.js.map +1 -1
- package/dist-server/engine/task/database-query.d.ts +1 -0
- package/dist-server/engine/task/echo-receive.d.ts +1 -0
- package/dist-server/engine/task/echo-send.d.ts +1 -0
- package/dist-server/engine/task/echo-send.js.map +1 -1
- package/dist-server/engine/task/empty-check.d.ts +1 -0
- package/dist-server/engine/task/empty-check.js.map +1 -1
- package/dist-server/engine/task/end.d.ts +1 -0
- package/dist-server/engine/task/floating-point.d.ts +1 -0
- package/dist-server/engine/task/floating-point.js.map +1 -1
- package/dist-server/engine/task/goto.d.ts +1 -0
- package/dist-server/engine/task/graphql-mutate.d.ts +1 -0
- package/dist-server/engine/task/graphql-query.d.ts +1 -0
- package/dist-server/engine/task/headless-post.d.ts +1 -0
- package/dist-server/engine/task/headless-post.js.map +1 -1
- package/dist-server/engine/task/headless-scrap.d.ts +1 -0
- package/dist-server/engine/task/headless-scrap.js.map +1 -1
- package/dist-server/engine/task/http-get.d.ts +1 -0
- package/dist-server/engine/task/http-get.js.map +1 -1
- package/dist-server/engine/task/http-post.d.ts +1 -0
- package/dist-server/engine/task/http-post.js.map +1 -1
- package/dist-server/engine/task/index.d.ts +43 -0
- package/dist-server/engine/task/jsonata.d.ts +1 -0
- package/dist-server/engine/task/local-graphql-mutate.d.ts +1 -0
- package/dist-server/engine/task/local-graphql-mutate.js.map +1 -1
- package/dist-server/engine/task/local-graphql-query.d.ts +1 -0
- package/dist-server/engine/task/local-graphql-query.js.map +1 -1
- package/dist-server/engine/task/log.d.ts +1 -0
- package/dist-server/engine/task/log.js.map +1 -1
- package/dist-server/engine/task/mqtt-publish.d.ts +1 -0
- package/dist-server/engine/task/mqtt-publish.js.map +1 -1
- package/dist-server/engine/task/mqtt-subscribe.d.ts +1 -0
- package/dist-server/engine/task/mqtt-subscribe.js.map +1 -1
- package/dist-server/engine/task/oracle-procedure.d.ts +1 -0
- package/dist-server/engine/task/oracle-procedure.js.map +1 -1
- package/dist-server/engine/task/pick-pending-scenario.d.ts +1 -0
- package/dist-server/engine/task/pick-pending-scenario.js.map +1 -1
- package/dist-server/engine/task/publish.d.ts +1 -0
- package/dist-server/engine/task/publish.js.map +1 -1
- package/dist-server/engine/task/random.d.ts +1 -0
- package/dist-server/engine/task/reset-pending-queue.d.ts +1 -0
- package/dist-server/engine/task/script.d.ts +1 -0
- package/dist-server/engine/task/set-domain.d.ts +1 -0
- package/dist-server/engine/task/set-domain.js.map +1 -1
- package/dist-server/engine/task/sleep.d.ts +1 -0
- package/dist-server/engine/task/sleep.js.map +1 -1
- package/dist-server/engine/task/socket-listener.d.ts +1 -0
- package/dist-server/engine/task/socket-listener.js.map +1 -1
- package/dist-server/engine/task/state-read.d.ts +1 -0
- package/dist-server/engine/task/state-read.js.map +1 -1
- package/dist-server/engine/task/state-write.d.ts +1 -0
- package/dist-server/engine/task/state-write.js.map +1 -1
- package/dist-server/engine/task/stop-scenario.d.ts +1 -0
- package/dist-server/engine/task/sub-scenario.d.ts +1 -0
- package/dist-server/engine/task/switch-goto.d.ts +1 -0
- package/dist-server/engine/task/switch-range-goto.d.ts +1 -0
- package/dist-server/engine/task/switch-range-goto.js.map +1 -1
- package/dist-server/engine/task/switch-range-scenario.d.ts +1 -0
- package/dist-server/engine/task/switch-range-scenario.js.map +1 -1
- package/dist-server/engine/task/switch-range-set.d.ts +1 -0
- package/dist-server/engine/task/switch-range-set.js.map +1 -1
- package/dist-server/engine/task/switch-scenario.d.ts +1 -0
- package/dist-server/engine/task/switch-set.d.ts +1 -0
- package/dist-server/engine/task/throw.d.ts +1 -0
- package/dist-server/engine/task/utils/headless-pool-for-scenario.d.ts +1 -0
- package/dist-server/engine/task/utils/headless-pool-for-scenario.js +1 -2
- package/dist-server/engine/task/utils/headless-pool-for-scenario.js.map +1 -1
- package/dist-server/engine/task/utils/substitute.d.ts +1 -0
- package/dist-server/engine/task/utils/substitute.js +1 -2
- package/dist-server/engine/task/utils/substitute.js.map +1 -1
- package/dist-server/engine/task/variables.d.ts +1 -0
- package/dist-server/engine/task-registry.d.ts +12 -0
- package/dist-server/engine/types.d.ts +94 -0
- package/dist-server/engine/types.js.map +1 -1
- package/dist-server/index.d.ts +6 -0
- package/dist-server/index.js.map +1 -1
- package/dist-server/migrations/index.d.ts +1 -0
- package/dist-server/restful/index.d.ts +1 -0
- package/dist-server/restful/unstable/index.d.ts +7 -0
- package/dist-server/restful/unstable/run-scenario.d.ts +1 -0
- package/dist-server/restful/unstable/run-scenario.js +0 -1
- package/dist-server/restful/unstable/run-scenario.js.map +1 -1
- package/dist-server/restful/unstable/scenario-instance.d.ts +1 -0
- package/dist-server/restful/unstable/scenario-instances.d.ts +1 -0
- package/dist-server/restful/unstable/scenario.d.ts +1 -0
- package/dist-server/restful/unstable/scenarios.d.ts +1 -0
- package/dist-server/restful/unstable/start-scenario.d.ts +1 -0
- package/dist-server/restful/unstable/stop-scenario.d.ts +1 -0
- package/dist-server/routers/scenario-schedule-callback-router.d.ts +1 -0
- package/dist-server/routers/scenario-schedule-callback-router.js +2 -3
- package/dist-server/routers/scenario-schedule-callback-router.js.map +1 -1
- package/dist-server/routers/scenario-view-router.d.ts +1 -0
- package/dist-server/routers/scenario-view-router.js.map +1 -1
- package/dist-server/routes.d.ts +1 -0
- package/dist-server/routes.js.map +1 -1
- package/dist-server/service/analysis/analysis-query.d.ts +3 -0
- package/dist-server/service/analysis/analysis-query.js +2 -2
- package/dist-server/service/analysis/analysis-query.js.map +1 -1
- package/dist-server/service/analysis/index.d.ts +2 -0
- package/dist-server/service/connection/connection-mutation.d.ts +30 -0
- package/dist-server/service/connection/connection-mutation.js +2 -2
- package/dist-server/service/connection/connection-mutation.js.map +1 -1
- package/dist-server/service/connection/connection-query.d.ts +12 -0
- package/dist-server/service/connection/connection-query.js +10 -6
- package/dist-server/service/connection/connection-query.js.map +1 -1
- package/dist-server/service/connection/connection-subscription.d.ts +10 -0
- package/dist-server/service/connection/connection-subscription.js +2 -2
- package/dist-server/service/connection/connection-subscription.js.map +1 -1
- package/dist-server/service/connection/connection-type.d.ts +133 -0
- package/dist-server/service/connection/connection-type.js +11 -11
- package/dist-server/service/connection/connection-type.js.map +1 -1
- package/dist-server/service/connection/index.d.ts +6 -0
- package/dist-server/service/connector/connector-query.d.ts +6 -0
- package/dist-server/service/connector/connector-query.js +2 -2
- package/dist-server/service/connector/connector-query.js.map +1 -1
- package/dist-server/service/connector/connector-type.d.ts +12 -0
- package/dist-server/service/connector/connector-type.js +4 -4
- package/dist-server/service/connector/connector-type.js.map +1 -1
- package/dist-server/service/connector/index.d.ts +3 -0
- package/dist-server/service/index.d.ts +17 -0
- package/dist-server/service/payload-log/index.d.ts +5 -0
- package/dist-server/service/payload-log/payload-log-mutation.d.ts +10 -0
- package/dist-server/service/payload-log/payload-log-mutation.js +4 -4
- package/dist-server/service/payload-log/payload-log-mutation.js.map +1 -1
- package/dist-server/service/payload-log/payload-log-query.d.ts +11 -0
- package/dist-server/service/payload-log/payload-log-query.js +3 -3
- package/dist-server/service/payload-log/payload-log-query.js.map +1 -1
- package/dist-server/service/payload-log/payload-log-type.d.ts +15 -0
- package/dist-server/service/payload-log/payload-log-type.js +6 -6
- package/dist-server/service/payload-log/payload-log-type.js.map +1 -1
- package/dist-server/service/payload-log/payload-log.d.ts +23 -0
- package/dist-server/service/payload-log/payload-log.js +5 -5
- package/dist-server/service/payload-log/payload-log.js.map +1 -1
- package/dist-server/service/property-spec.d.ts +12 -0
- package/dist-server/service/property-spec.js +2 -2
- package/dist-server/service/property-spec.js.map +1 -1
- package/dist-server/service/scenario/index.d.ts +5 -0
- package/dist-server/service/scenario/scenario-mutation.d.ts +13 -0
- package/dist-server/service/scenario/scenario-mutation.js +3 -3
- package/dist-server/service/scenario/scenario-mutation.js.map +1 -1
- package/dist-server/service/scenario/scenario-query.d.ts +18 -0
- package/dist-server/service/scenario/scenario-query.js +3 -3
- package/dist-server/service/scenario/scenario-query.js.map +1 -1
- package/dist-server/service/scenario/scenario-type.d.ts +30 -0
- package/dist-server/service/scenario/scenario-type.js +14 -6
- package/dist-server/service/scenario/scenario-type.js.map +1 -1
- package/dist-server/service/scenario/scenario.d.ts +27 -0
- package/dist-server/service/scenario/scenario.js +9 -4
- package/dist-server/service/scenario/scenario.js.map +1 -1
- package/dist-server/service/scenario-flow/scenario-flow.d.ts +6 -0
- package/dist-server/service/scenario-flow/scenario-flow.js +2 -2
- package/dist-server/service/scenario-flow/scenario-flow.js.map +1 -1
- package/dist-server/service/scenario-instance/index.d.ts +5 -0
- package/dist-server/service/scenario-instance/scenario-instance-mutation.d.ts +6 -0
- package/dist-server/service/scenario-instance/scenario-instance-mutation.js +3 -3
- package/dist-server/service/scenario-instance/scenario-instance-mutation.js.map +1 -1
- package/dist-server/service/scenario-instance/scenario-instance-query.d.ts +6 -0
- package/dist-server/service/scenario-instance/scenario-instance-query.js +3 -67
- package/dist-server/service/scenario-instance/scenario-instance-query.js.map +1 -1
- package/dist-server/service/scenario-instance/scenario-instance-subscription.d.ts +10 -0
- package/dist-server/service/scenario-instance/scenario-instance-subscription.js +2 -2
- package/dist-server/service/scenario-instance/scenario-instance-subscription.js.map +1 -1
- package/dist-server/service/scenario-instance/scenario-instance-type.d.ts +102 -0
- package/dist-server/service/scenario-instance/scenario-instance-type.js +109 -23
- package/dist-server/service/scenario-instance/scenario-instance-type.js.map +1 -1
- package/dist-server/service/scenario-queue/index.d.ts +3 -0
- package/dist-server/service/scenario-queue/scenario-queue-subscription.d.ts +6 -0
- package/dist-server/service/scenario-queue/scenario-queue-subscription.js +2 -2
- package/dist-server/service/scenario-queue/scenario-queue-subscription.js.map +1 -1
- package/dist-server/service/scenario-queue/scenario-queue-type.d.ts +11 -0
- package/dist-server/service/scenario-queue/scenario-queue-type.js +4 -4
- package/dist-server/service/scenario-queue/scenario-queue-type.js.map +1 -1
- package/dist-server/service/state-register/index.d.ts +6 -0
- package/dist-server/service/state-register/state-register-mutation.d.ts +11 -0
- package/dist-server/service/state-register/state-register-mutation.js +2 -2
- package/dist-server/service/state-register/state-register-mutation.js.map +1 -1
- package/dist-server/service/state-register/state-register-query.d.ts +14 -0
- package/dist-server/service/state-register/state-register-query.js +3 -3
- package/dist-server/service/state-register/state-register-query.js.map +1 -1
- package/dist-server/service/state-register/state-register-type.d.ts +23 -0
- package/dist-server/service/state-register/state-register-type.js +6 -6
- package/dist-server/service/state-register/state-register-type.js.map +1 -1
- package/dist-server/service/state-register/state-register.d.ts +22 -0
- package/dist-server/service/state-register/state-register.js +2 -2
- package/dist-server/service/state-register/state-register.js.map +1 -1
- package/dist-server/service/step/index.d.ts +5 -0
- package/dist-server/service/step/step-mutation.d.ts +5 -0
- package/dist-server/service/step/step-mutation.js +2 -2
- package/dist-server/service/step/step-mutation.js.map +1 -1
- package/dist-server/service/step/step-query.d.ts +12 -0
- package/dist-server/service/step/step-query.js +3 -3
- package/dist-server/service/step/step-query.js.map +1 -1
- package/dist-server/service/step/step-type.d.ts +111 -0
- package/dist-server/service/step/step-type.js +8 -8
- package/dist-server/service/step/step-type.js.map +1 -1
- package/dist-server/service/task-type/index.d.ts +3 -0
- package/dist-server/service/task-type/task-type-query.d.ts +6 -0
- package/dist-server/service/task-type/task-type-query.js +2 -2
- package/dist-server/service/task-type/task-type-query.js.map +1 -1
- package/dist-server/service/task-type/task-type-type.d.ts +12 -0
- package/dist-server/service/task-type/task-type-type.js +4 -4
- package/dist-server/service/task-type/task-type-type.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/helps/integration/connector/mssql-connector.ja.md +10 -6
- package/helps/integration/connector/mssql-connector.ko.md +10 -6
- package/helps/integration/connector/mssql-connector.md +10 -6
- package/helps/integration/connector/mssql-connector.ms.md +10 -6
- package/helps/integration/connector/mssql-connector.zh.md +10 -6
- package/helps/integration/connector/operato-connector.ja.md +0 -3
- package/package.json +11 -10
- package/server/controllers/scenario-controller.ts +55 -19
- package/server/engine/index.ts +1 -1
- package/server/engine/types.ts +2 -2
- package/server/restful/unstable/run-scenario.ts +0 -1
- package/server/routers/scenario-schedule-callback-router.ts +2 -2
- package/server/service/connection/connection-query.ts +13 -4
- package/server/service/payload-log/payload-log-query.ts +4 -1
- package/server/service/payload-log/payload-log.ts +2 -2
- package/server/service/scenario/scenario-query.ts +1 -1
- package/server/service/scenario/scenario-type.ts +6 -0
- package/server/service/scenario/scenario.ts +6 -2
- package/server/service/scenario-instance/scenario-instance-mutation.ts +7 -4
- package/server/service/scenario-instance/scenario-instance-query.ts +4 -30
- package/server/service/scenario-instance/scenario-instance-type.ts +87 -9
- package/server/service/state-register/state-register-query.ts +4 -1
- package/server/service/step/step-query.ts +1 -1
- package/server/service/step/step-type.ts +22 -22
@@ -0,0 +1 @@
|
|
1
|
+
export * from './scenario-controller';
|
@@ -0,0 +1,4 @@
|
|
1
|
+
import { ScenarioInstance, ScenarioInstanceRunResult } from '../service/scenario-instance/scenario-instance-type';
|
2
|
+
export declare function runScenario(instanceName: string, scenarioName: string, variables: any, context: ResolverContext): Promise<ScenarioInstanceRunResult>;
|
3
|
+
export declare function startScenario(instanceName: string, scenarioName: string, variables: any, context: ResolverContext): Promise<ScenarioInstance>;
|
4
|
+
export declare function stopScenario(instanceName: string, context: ResolverContext): Promise<ScenarioInstance | undefined>;
|
@@ -1,8 +1,11 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.
|
3
|
+
exports.runScenario = runScenario;
|
4
|
+
exports.startScenario = startScenario;
|
5
|
+
exports.stopScenario = stopScenario;
|
4
6
|
const shell_1 = require("@things-factory/shell");
|
5
7
|
const auth_base_1 = require("@things-factory/auth-base");
|
8
|
+
const cache_service_1 = require("@things-factory/cache-service");
|
6
9
|
const scenario_engine_1 = require("../engine/scenario-engine");
|
7
10
|
const scenario_1 = require("../service/scenario/scenario");
|
8
11
|
const scenario_instance_type_1 = require("../service/scenario-instance/scenario-instance-type");
|
@@ -37,6 +40,12 @@ async function runScenario(instanceName, scenarioName, variables, context) {
|
|
37
40
|
scenario: scenarioName
|
38
41
|
}));
|
39
42
|
}
|
43
|
+
if (scenario.ttl > 0) {
|
44
|
+
const cachedValue = await cache_service_1.cacheService.getFromCache(scenario.id, { domain: domain.id, variables: variables || {} });
|
45
|
+
if (cachedValue) {
|
46
|
+
return cachedValue.value;
|
47
|
+
}
|
48
|
+
}
|
40
49
|
/* 시나리오 인스턴스를 생성한다. */
|
41
50
|
instanceName = instanceName || scenarioName + '-' + String(Date.now());
|
42
51
|
var instance = new scenario_instance_type_1.ScenarioInstance(instanceName, scenario, {
|
@@ -47,7 +56,7 @@ async function runScenario(instanceName, scenarioName, variables, context) {
|
|
47
56
|
client: shell_1.GraphqlLocalClient.client
|
48
57
|
});
|
49
58
|
try {
|
50
|
-
await instance.run();
|
59
|
+
return await instance.run();
|
51
60
|
}
|
52
61
|
catch (err) {
|
53
62
|
console.error(err);
|
@@ -55,9 +64,7 @@ async function runScenario(instanceName, scenarioName, variables, context) {
|
|
55
64
|
scenario: scenarioName
|
56
65
|
}));
|
57
66
|
}
|
58
|
-
return instance;
|
59
67
|
}
|
60
|
-
exports.runScenario = runScenario;
|
61
68
|
async function startScenario(instanceName, scenarioName, variables, context) {
|
62
69
|
const { domain, user, lng, unsafeIP, prohibitedPrivileges } = context.state;
|
63
70
|
debug('startScenario', instanceName, scenarioName, variables);
|
@@ -74,7 +81,6 @@ async function startScenario(instanceName, scenarioName, variables, context) {
|
|
74
81
|
instanceName = instanceName || scenarioName;
|
75
82
|
return await scenario_engine_1.ScenarioEngine.load(instanceName, scenario, { domain, user, lng, variables });
|
76
83
|
}
|
77
|
-
exports.startScenario = startScenario;
|
78
84
|
async function stopScenario(instanceName, context) {
|
79
85
|
const { domain, user, unsafeIP, prohibitedPrivileges } = context.state;
|
80
86
|
debug('stopScenario', instanceName);
|
@@ -94,5 +100,4 @@ async function stopScenario(instanceName, context) {
|
|
94
100
|
await scenario_engine_1.ScenarioEngine.unload(domain, instanceName);
|
95
101
|
return scenarioInstance;
|
96
102
|
}
|
97
|
-
exports.stopScenario = stopScenario;
|
98
103
|
//# sourceMappingURL=scenario-controller.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scenario-controller.js","sourceRoot":"","sources":["../../server/controllers/scenario-controller.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"scenario-controller.js","sourceRoot":"","sources":["../../server/controllers/scenario-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import { getRepository, Domain, GraphqlLocalClient } from '@things-factory/shell'\nimport { PrivilegeObject, User, checkPermission } from '@things-factory/auth-base'\nimport { cacheService } from '@things-factory/cache-service'\n\nimport { ScenarioEngine } from '../engine/scenario-engine'\nimport { Scenario } from '../service/scenario/scenario'\nimport {\n ScenarioInstance,\n ScenarioInstanceRunResult,\n ScenarioInstanceStatus\n} from '../service/scenario-instance/scenario-instance-type'\nimport { Step } from '../service/step/step-type'\n\nconst debug = require('debug')('things-factory:integration-base:controller:run-scenario')\n\nasync function findScenario(\n scenarioName: string,\n domain: Domain\n): Promise<{ id: string; name: string; steps: Step[]; domain: Domain; privilege?: PrivilegeObject; ttl?: number }> {\n var repository = getRepository(Scenario)\n\n var scenario = await repository.findOne({\n where: { domain: { id: domain.id }, name: scenarioName },\n relations: ['domain', 'steps', 'creator', 'updater']\n })\n\n if (!scenario && domain.parentId) {\n scenario = await repository.findOne({\n where: { domain: { id: domain.parentId }, name: scenarioName },\n relations: ['domain', 'steps', 'creator', 'updater']\n })\n }\n\n return scenario as any\n}\n\nexport async function runScenario(\n instanceName: string,\n scenarioName: string,\n variables: any,\n context: ResolverContext\n): Promise<ScenarioInstanceRunResult> {\n const { domain, user, lng, unsafeIP, prohibitedPrivileges } = context.state\n\n debug('runScenario', scenarioName, instanceName, variables)\n\n var scenario = await findScenario(scenarioName, domain)\n\n if (!scenario) {\n throw new Error(\n context.t('error.scenario not found', {\n scenario: scenarioName\n })\n )\n }\n\n if (!(await checkPermission(scenario.privilege, user, domain, unsafeIP, prohibitedPrivileges))) {\n const { category, privilege } = scenario.privilege || {}\n\n console.error(\n `Unauthorized! ${category && privilege ? category + ':' + privilege + ' privilege' : 'ownership granted'} required`\n )\n\n throw new Error(\n context.t('error.scenario run unauthorized', {\n scenario: scenarioName\n })\n )\n }\n\n if (scenario.ttl > 0) {\n const cachedValue = await cacheService.getFromCache(scenario.id, { domain: domain.id, variables: variables || {} })\n if (cachedValue) {\n return cachedValue.value\n }\n }\n\n /* 시나리오 인스턴스를 생성한다. */\n instanceName = instanceName || scenarioName + '-' + String(Date.now())\n var instance = new ScenarioInstance(instanceName, scenario, {\n domain,\n user,\n lng,\n variables,\n client: GraphqlLocalClient.client\n })\n\n try {\n return await instance.run()\n } catch (err) {\n console.error(err)\n\n throw new Error(\n context.t('error.scenario run error', {\n scenario: scenarioName\n })\n )\n }\n}\n\nexport async function startScenario(\n instanceName: string,\n scenarioName: string,\n variables: any,\n context: ResolverContext\n): Promise<ScenarioInstance> {\n const { domain, user, lng, unsafeIP, prohibitedPrivileges } = context.state\n\n debug('startScenario', instanceName, scenarioName, variables)\n\n var scenario = await findScenario(scenarioName, domain)\n\n if (!scenario) {\n throw new Error(\n context.t('error.scenario not found', {\n scenario: scenarioName\n })\n )\n }\n\n if (!(await checkPermission(scenario.privilege, user, domain, unsafeIP, prohibitedPrivileges))) {\n const { category, privilege } = scenario.privilege || {}\n throw new Error(\n `Unauthorized! ${category && privilege ? category + ':' + privilege + ' privilege' : 'ownership granted'} required`\n )\n }\n\n instanceName = instanceName || scenarioName\n return await ScenarioEngine.load(instanceName, scenario, { domain, user, lng, variables })\n}\n\nexport async function stopScenario(\n instanceName: string,\n context: ResolverContext\n): Promise<ScenarioInstance | undefined> {\n const { domain, user, unsafeIP, prohibitedPrivileges } = context.state\n\n debug('stopScenario', instanceName)\n\n runScenario\n\n var scenarioInstance = ScenarioEngine.getScenarioInstance(domain, instanceName)\n\n if (!scenarioInstance) {\n debug('stopScenario', `ScenarioInstance(${instanceName}) Not Found.`)\n throw new Error(\n context.t('error.scenario instance not found', {\n instance: instanceName\n })\n )\n }\n\n var scenario = await findScenario(scenarioInstance.scenarioName, domain)\n\n if (!(await checkPermission(scenario.privilege, user, domain, unsafeIP, prohibitedPrivileges))) {\n const { category, privilege } = scenario.privilege || {}\n throw new Error(\n `Unauthorized! ${category && privilege ? category + ':' + privilege + ' privilege' : 'ownership granted'} required`\n )\n }\n\n await ScenarioEngine.unload(domain, instanceName)\n\n return scenarioInstance\n}\n"]}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.analyzeIntegration =
|
3
|
+
exports.analyzeIntegration = analyzeIntegration;
|
4
4
|
const tslib_1 = require("tslib");
|
5
5
|
const uniq_1 = tslib_1.__importDefault(require("lodash/uniq"));
|
6
6
|
const shell_1 = require("@things-factory/shell");
|
@@ -93,5 +93,4 @@ async function analyzeIntegration(domain) {
|
|
93
93
|
});
|
94
94
|
return model;
|
95
95
|
}
|
96
|
-
exports.analyzeIntegration = analyzeIntegration;
|
97
96
|
//# sourceMappingURL=analyze-integration.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"analyze-integration.js","sourceRoot":"","sources":["../../../server/engine/analyzer/analyze-integration.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"analyze-integration.js","sourceRoot":"","sources":["../../../server/engine/analyzer/analyze-integration.ts"],"names":[],"mappings":"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","sourcesContent":["import uniq from 'lodash/uniq'\n\nimport { Domain, getRepository } from '@things-factory/shell'\nimport { Scenario } from '../../service/scenario/scenario'\nimport { Connection } from '../../service/connection/connection-type'\n\nexport async function analyzeIntegration(domain: Domain) {\n const tagNames = []\n\n const model = {\n nodes: [],\n relationships: []\n }\n\n var id = 0\n\n const scenarios = await getRepository(Scenario).find({\n where: { domain: { id: domain.id } },\n relations: ['steps']\n })\n\n const connections = await getRepository(Connection).find({\n where: { domain: { id: domain.id } }\n })\n\n model.nodes = model.nodes.concat(\n scenarios.map(scenario => {\n return {\n id: scenario.id,\n labels: ['Scenario'],\n text: scenario.name,\n icon: 'settings',\n properties: {\n name: scenario.name,\n description: scenario.description\n }\n }\n })\n )\n\n model.nodes = model.nodes.concat(\n connections.map(connection => {\n return {\n id: connection.id,\n labels: ['Connection'],\n text: connection.name,\n icon: 'link',\n properties: {\n name: connection.name,\n description: connection.description\n }\n }\n })\n )\n\n scenarios.forEach(scenario => {\n const connectionNames = uniq(scenario.steps.map(step => step.connection).filter(Boolean))\n const connectionList = connectionNames\n .map(connectionName => connections.find(connection => connection.name == connectionName))\n .filter(Boolean)\n\n const relationships = connectionList.map(connection => {\n return {\n id: ++id,\n type: 'using',\n startNode: scenario.id,\n endNode: connection.id,\n properties: {}\n }\n })\n\n model.relationships = model.relationships.concat(relationships)\n })\n\n scenarios.forEach(scenario => {\n const tags = uniq(\n scenario.steps\n .filter(step => !step.connection && step.task == 'publish')\n .map(step => JSON.parse(step.params)?.tag)\n .filter(Boolean)\n )\n\n for (const tag of tags) {\n if (tagNames.includes(tag)) {\n continue\n }\n\n model.nodes.push({\n id: `tag-${tag}`,\n labels: ['Tag'],\n text: tag,\n icon: 'label',\n properties: {\n tag\n }\n })\n\n tagNames.push(tag)\n }\n\n const relationships = tags.map(tag => {\n return {\n id: ++id,\n type: 'publish',\n startNode: scenario.id,\n endNode: `tag-${tag}`,\n properties: {}\n }\n })\n\n model.relationships = model.relationships.concat(relationships)\n })\n\n return model\n}\n"]}
|
@@ -0,0 +1,35 @@
|
|
1
|
+
import { Domain } from '@things-factory/shell';
|
2
|
+
import { Connection } from '../service';
|
3
|
+
import { Connector } from './types';
|
4
|
+
export declare class ConnectionManager {
|
5
|
+
private static connectors;
|
6
|
+
private static connections;
|
7
|
+
private static entities;
|
8
|
+
private static logFormat;
|
9
|
+
static logger: import("winston").Logger;
|
10
|
+
static ready(): Promise<void>;
|
11
|
+
static registerConnector(type: string, connector: Connector): void;
|
12
|
+
static getConnector(type: string): Connector;
|
13
|
+
static getConnectors(): {
|
14
|
+
[connectorName: string]: Connector;
|
15
|
+
};
|
16
|
+
static unregisterConnector(type: string): void;
|
17
|
+
static getConnections(): {
|
18
|
+
[domainId: string]: {
|
19
|
+
[name: string]: any;
|
20
|
+
};
|
21
|
+
};
|
22
|
+
static getEntities(): {};
|
23
|
+
static getConnectionInstance(connection: Connection): any;
|
24
|
+
static getConnectionInstanceByName(domain: Domain, name: string): any;
|
25
|
+
static getConnectionInstanceEntityByName(domain: Domain, name: string): any;
|
26
|
+
static getConnectionInstances(domain: Domain): {
|
27
|
+
[connectionName: string]: any;
|
28
|
+
};
|
29
|
+
static getConnectionInstanceEntities(domain: Domain): {
|
30
|
+
[connectionName: string]: any;
|
31
|
+
};
|
32
|
+
static addConnectionInstance(connection: Connection, instance: any): void;
|
33
|
+
static removeConnectionInstance(connection: Connection): any;
|
34
|
+
private static publishState;
|
35
|
+
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"connection-manager.js","sourceRoot":"","sources":["../../server/engine/connection-manager.ts"],"names":[],"mappings":"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","sourcesContent":["import moment from 'moment-timezone'\nimport { createLogger, format, transports } from 'winston'\n\nimport { Domain, getRepository, pubsub, PubSubLogTransport } from '@things-factory/shell'\n\nimport { Connection, ConnectionStatus } from '../service'\nimport { Connector } from './types'\nimport { ProxyConnector } from './connector/proxy-connector'\n\nconst { combine, timestamp, splat, printf } = format\nconst debug = require('debug')('things-factory:integration-base:connections')\n\nconst SYSTEM_TZ = Intl.DateTimeFormat().resolvedOptions().timeZone\nconst systemTimestamp = format((info, opts) => {\n if (opts.tz) info.timestamp = moment().tz(opts.tz).format()\n return info\n})\n\nexport class ConnectionManager {\n private static connectors: { [propName: string]: Connector } = {}\n private static connections: { [domainId: string]: { [name: string]: any } } = {}\n private static entities = {}\n private static logFormat = printf(({ level, message, timestamp }) => {\n return `${timestamp} ${level}: ${message}`\n })\n\n public static logger = createLogger({\n format: combine(systemTimestamp({ tz: SYSTEM_TZ }), splat(), ConnectionManager.logFormat),\n transports: [\n new (transports as any).DailyRotateFile({\n filename: `logs/connections-%DATE%.log`,\n datePattern: 'YYYY-MM-DD-HH',\n zippedArchive: false,\n maxSize: '20m',\n maxFiles: '14d',\n level: 'info'\n }),\n new PubSubLogTransport({\n topic: 'connection-log'\n })\n ]\n })\n\n static async ready() {\n const CONNECTIONS = (\n await getRepository(Connection).find({\n where: { active: true },\n relations: ['domain', 'edge', 'creator', 'updater']\n })\n ).map(connection => {\n var params = {}\n try {\n params = JSON.parse(connection.params || '{}')\n } catch (ex) {\n ConnectionManager.logger.error(`connection '${connection.name}' params should be JSON format`)\n ConnectionManager.logger.error(ex)\n }\n\n return {\n ...connection,\n params\n }\n })\n\n ConnectionManager.logger.info('Initializing ConnectionManager...')\n\n return await Promise.all(\n [...Object.keys(ConnectionManager.connectors), 'proxy-connector'].map(type => {\n const connector = 'proxy-connector' ? ProxyConnector.instance : ConnectionManager.getConnector(type)\n\n ConnectionManager.logger.info(`Connector '${type}' started to ready`)\n\n return connector\n .ready(\n CONNECTIONS.filter(connection => {\n if (type == 'proxy-connector') {\n return !!connection.edge\n } else {\n return !connection.edge && connection.type == type\n }\n }) as any\n )\n .catch(error => {\n ConnectionManager.logger.error(error.message)\n })\n .then(() => {\n ConnectionManager.logger.info(`All connector for '${type}' ready`)\n })\n })\n ).then(() => {\n ConnectionManager.logger.info('ConnectionManager initialization done:')\n Object.keys(ConnectionManager.connections).forEach(key => {\n var connections = ConnectionManager.connections[key]\n ConnectionManager.logger.info('For domain(%s) : %s', key, JSON.stringify(Object.keys(connections)))\n })\n })\n }\n\n static registerConnector(type: string, connector: Connector) {\n ConnectionManager.connectors[type] = connector\n }\n\n static getConnector(type: string): Connector {\n return ConnectionManager.connectors[type]\n }\n\n static getConnectors(): { [connectorName: string]: Connector } {\n return {\n ...ConnectionManager.connectors\n }\n }\n\n static unregisterConnector(type: string) {\n delete ConnectionManager.connectors[type]\n }\n\n static getConnections() {\n return ConnectionManager.connections\n }\n\n static getEntities() {\n return ConnectionManager.entities\n }\n\n static getConnectionInstance(connection: Connection): any {\n const { domain, name } = connection\n return ConnectionManager.connections[domain.id]?.[name]\n }\n\n static getConnectionInstanceByName(domain: Domain, name: string) {\n const connections = ConnectionManager.connections[domain.id]\n const connection = connections?.[name]\n\n if (!connection) {\n throw `The connection with the given name(${name}) cannot be found`\n }\n\n return connection\n }\n\n static getConnectionInstanceEntityByName(domain: Domain, name: string): any {\n const entities = ConnectionManager.entities[domain.id]\n return entities?.[name]\n }\n\n static getConnectionInstances(domain: Domain): { [connectionName: string]: any } {\n const connections = ConnectionManager.connections[domain.id]\n\n return {\n ...connections\n }\n }\n\n static getConnectionInstanceEntities(domain: Domain): { [connectionName: string]: any } {\n const connections = ConnectionManager.entities[domain.id]\n\n return {\n ...connections\n }\n }\n\n static addConnectionInstance(connection: Connection, instance: any) {\n const { domain, name } = connection\n\n var connections = ConnectionManager.connections[domain.id]\n if (!connections) {\n connections = ConnectionManager.connections[domain.id] = {}\n }\n\n var entities = ConnectionManager.entities[domain.id]\n if (!entities) {\n entities = ConnectionManager.entities[domain.id] = {}\n }\n\n connections[name] = instance\n entities[name] = connection\n\n ConnectionManager.publishState(connection, ConnectionStatus.CONNECTED)\n debug('add-connection', domain.subdomain, name)\n }\n\n static removeConnectionInstance(connection: Connection): any {\n const { domain, name } = connection\n var connections = ConnectionManager.connections[domain.id]\n var entities = ConnectionManager.entities[domain.id]\n\n var instance = connections?.[name]\n\n if (!connections || !instance) {\n debug('remove-connection', `'${name}' connection not found in domain '${domain.subdomain}'`)\n return\n }\n\n delete connections[name]\n delete entities[name]\n\n ConnectionManager.publishState(connection, ConnectionStatus.DISCONNECTED)\n debug('remove-connection', `'${name}' connection is removed from domain '${domain.subdomain}'`)\n\n return instance\n }\n\n private static async publishState(connection: Connection, state) {\n const { domain, id, name, description, type, edge } = connection\n\n pubsub.publish('connection-state', {\n connectionState: {\n domain,\n id,\n name,\n description,\n type,\n edge,\n state,\n timestamp: new Date()\n }\n })\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"connection-manager.js","sourceRoot":"","sources":["../../server/engine/connection-manager.ts"],"names":[],"mappings":"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","sourcesContent":["import moment from 'moment-timezone'\nimport { createLogger, format, transports } from 'winston'\n\nimport { Domain, getRepository, pubsub, PubSubLogTransport } from '@things-factory/shell'\n\nimport { Connection, ConnectionStatus } from '../service'\nimport { Connector } from './types'\nimport { ProxyConnector } from './connector/proxy-connector'\n\nconst { combine, timestamp, splat, printf } = format\nconst debug = require('debug')('things-factory:integration-base:connections')\n\nconst SYSTEM_TZ = Intl.DateTimeFormat().resolvedOptions().timeZone\nconst systemTimestamp = format((info, opts) => {\n if (opts.tz) info.timestamp = moment().tz(opts.tz).format()\n return info\n})\n\nexport class ConnectionManager {\n private static connectors: { [propName: string]: Connector } = {}\n private static connections: { [domainId: string]: { [name: string]: any } } = {}\n private static entities = {}\n private static logFormat = printf(({ level, message, timestamp }) => {\n return `${timestamp} ${level}: ${message}`\n })\n\n public static logger = createLogger({\n format: combine(systemTimestamp({ tz: SYSTEM_TZ }), splat(), ConnectionManager.logFormat),\n transports: [\n new (transports as any).DailyRotateFile({\n filename: `logs/connections-%DATE%.log`,\n datePattern: 'YYYY-MM-DD-HH',\n zippedArchive: false,\n maxSize: '20m',\n maxFiles: '14d',\n level: 'info'\n }),\n new PubSubLogTransport({\n topic: 'connection-log'\n })\n ]\n })\n\n static async ready() {\n const CONNECTIONS = (\n await getRepository(Connection).find({\n where: { active: true },\n relations: ['domain', 'edge', 'creator', 'updater']\n })\n ).map(connection => {\n var params = {}\n try {\n params = JSON.parse(connection.params || '{}')\n } catch (ex) {\n ConnectionManager.logger.error(`connection '${connection.name}' params should be JSON format`)\n ConnectionManager.logger.error(ex)\n }\n\n return {\n ...connection,\n params\n }\n })\n\n ConnectionManager.logger.info('Initializing ConnectionManager...')\n\n return await Promise.all(\n [...Object.keys(ConnectionManager.connectors), 'proxy-connector'].map(type => {\n const connector = 'proxy-connector' ? ProxyConnector.instance : ConnectionManager.getConnector(type)\n\n ConnectionManager.logger.info(`Connector '${type}' started to ready`)\n\n return connector\n .ready(\n CONNECTIONS.filter(connection => {\n if (type == 'proxy-connector') {\n return !!connection.edge\n } else {\n return !connection.edge && connection.type == type\n }\n }) as any\n )\n .catch(error => {\n ConnectionManager.logger.error(error.message)\n })\n .then(() => {\n ConnectionManager.logger.info(`All connector for '${type}' ready`)\n })\n })\n ).then(() => {\n ConnectionManager.logger.info('ConnectionManager initialization done:')\n Object.keys(ConnectionManager.connections).forEach(key => {\n var connections = ConnectionManager.connections[key]\n ConnectionManager.logger.info('For domain(%s) : %s', key, JSON.stringify(Object.keys(connections)))\n })\n })\n }\n\n static registerConnector(type: string, connector: Connector) {\n ConnectionManager.connectors[type] = connector\n }\n\n static getConnector(type: string): Connector {\n return ConnectionManager.connectors[type]\n }\n\n static getConnectors(): { [connectorName: string]: Connector } {\n return {\n ...ConnectionManager.connectors\n }\n }\n\n static unregisterConnector(type: string) {\n delete ConnectionManager.connectors[type]\n }\n\n static getConnections() {\n return ConnectionManager.connections\n }\n\n static getEntities() {\n return ConnectionManager.entities\n }\n\n static getConnectionInstance(connection: Connection): any {\n const { domain, name } = connection\n return ConnectionManager.connections[domain.id]?.[name]\n }\n\n static getConnectionInstanceByName(domain: Domain, name: string) {\n const connections = ConnectionManager.connections[domain.id]\n const connection = connections?.[name]\n\n if (!connection) {\n throw `The connection with the given name(${name}) cannot be found`\n }\n\n return connection\n }\n\n static getConnectionInstanceEntityByName(domain: Domain, name: string): any {\n const entities = ConnectionManager.entities[domain.id]\n return entities?.[name]\n }\n\n static getConnectionInstances(domain: Domain): { [connectionName: string]: any } {\n const connections = ConnectionManager.connections[domain.id]\n\n return {\n ...connections\n }\n }\n\n static getConnectionInstanceEntities(domain: Domain): { [connectionName: string]: any } {\n const connections = ConnectionManager.entities[domain.id]\n\n return {\n ...connections\n }\n }\n\n static addConnectionInstance(connection: Connection, instance: any) {\n const { domain, name } = connection\n\n var connections = ConnectionManager.connections[domain.id]\n if (!connections) {\n connections = ConnectionManager.connections[domain.id] = {}\n }\n\n var entities = ConnectionManager.entities[domain.id]\n if (!entities) {\n entities = ConnectionManager.entities[domain.id] = {}\n }\n\n connections[name] = instance\n entities[name] = connection\n\n ConnectionManager.publishState(connection, ConnectionStatus.CONNECTED)\n debug('add-connection', domain.subdomain, name)\n }\n\n static removeConnectionInstance(connection: Connection): any {\n const { domain, name } = connection\n var connections = ConnectionManager.connections[domain.id]\n var entities = ConnectionManager.entities[domain.id]\n\n var instance = connections?.[name]\n\n if (!connections || !instance) {\n debug('remove-connection', `'${name}' connection not found in domain '${domain.subdomain}'`)\n return\n }\n\n delete connections[name]\n delete entities[name]\n\n ConnectionManager.publishState(connection, ConnectionStatus.DISCONNECTED)\n debug('remove-connection', `'${name}' connection is removed from domain '${domain.subdomain}'`)\n\n return instance\n }\n\n private static async publishState(connection: Connection, state) {\n const { domain, id, name, description, type, edge } = connection\n\n pubsub.publish('connection-state', {\n connectionState: {\n domain,\n id,\n name,\n description,\n type,\n edge,\n state,\n timestamp: new Date()\n }\n })\n }\n}\n"]}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import { Connector } from '../types';
|
2
|
+
import { InputConnection } from '../../service/connection/connection-type';
|
3
|
+
export declare class EchoBack implements Connector {
|
4
|
+
ready(connectionConfigs: any): Promise<void>;
|
5
|
+
connect(connection: InputConnection): Promise<void>;
|
6
|
+
disconnect(connection: InputConnection): Promise<void>;
|
7
|
+
get parameterSpec(): any[];
|
8
|
+
get taskPrefixes(): string[];
|
9
|
+
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"echo-back-connector.js","sourceRoot":"","sources":["../../../server/engine/connector/echo-back-connector.ts"],"names":[],"mappings":";;;;AAAA,sDAAqB;AACrB,4EAA0C;AAG1C,8DAAyD;AAGzD,MAAa,QAAQ;IACnB,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,iCAAiC,CAAC,CAAA;IAClE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAA2B;QACvC,IAAI,MAAM,GAAG,IAAI,wBAAa,CAAC,IAAI,aAAG,CAAC,MAAM,EAAE,CAAC,CAAA;QAChD,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAExD,IAAI;
|
1
|
+
{"version":3,"file":"echo-back-connector.js","sourceRoot":"","sources":["../../../server/engine/connector/echo-back-connector.ts"],"names":[],"mappings":";;;;AAAA,sDAAqB;AACrB,4EAA0C;AAG1C,8DAAyD;AAGzD,MAAa,QAAQ;IACnB,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,iCAAiC,CAAC,CAAA;IAClE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAA2B;QACvC,IAAI,MAAM,GAAG,IAAI,wBAAa,CAAC,IAAI,aAAG,CAAC,MAAM,EAAE,CAAC,CAAA;QAChD,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAExD,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;YACxC,sCAAiB,CAAC,qBAAqB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;YAE3D,sCAAiB,CAAC,MAAM,CAAC,IAAI,CAC3B,kCAAkC,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,QAAQ,gBAAgB,CACzF,CAAA;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,sCAAiB,CAAC,MAAM,CAAC,KAAK,CAC5B,kCAAkC,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,QAAQ,+BAA+B,CAAC,EAAE,CAC3G,CAAA;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAA2B;QAC1C,IAAI,MAAM,GAAG,sCAAiB,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAA;QAEnE,MAAM,MAAM,CAAC,OAAO,EAAE,CAAA;QAEtB,sCAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,UAAU,CAAC,IAAI,mBAAmB,CAAC,CAAA;IACrG,CAAC;IAED,IAAI,aAAa;QACf,OAAO,EAAE,CAAA;IACX,CAAC;IAED,IAAI,YAAY;QACd,OAAO,CAAC,MAAM,CAAC,CAAA;IACjB,CAAC;CACF;AAxCD,4BAwCC;AAED,sCAAiB,CAAC,iBAAiB,CAAC,WAAW,EAAE,IAAI,QAAQ,EAAE,CAAC,CAAA","sourcesContent":["import net from 'net'\nimport PromiseSocket from 'promise-socket'\n\nimport { Connector } from '../types'\nimport { ConnectionManager } from '../connection-manager'\nimport { InputConnection } from '../../service/connection/connection-type'\n\nexport class EchoBack implements Connector {\n async ready(connectionConfigs) {\n await Promise.all(connectionConfigs.map(this.connect.bind(this)))\n\n ConnectionManager.logger.info('echo-back connections are ready')\n }\n\n async connect(connection: InputConnection) {\n let socket = new PromiseSocket(new net.Socket())\n let [host, port = 8124] = connection.endpoint.split(':')\n\n try {\n await socket.connect(Number(port), host)\n ConnectionManager.addConnectionInstance(connection, socket)\n\n ConnectionManager.logger.info(\n `echo-back-connector connection(${connection.name}:${connection.endpoint}) is connected`\n )\n } catch (e) {\n ConnectionManager.logger.error(\n `echo-back-connector connection(${connection.name}:${connection.endpoint}) is not connected.\\ncause: ${e}`\n )\n }\n }\n\n async disconnect(connection: InputConnection) {\n let socket = ConnectionManager.removeConnectionInstance(connection)\n\n await socket.destroy()\n\n ConnectionManager.logger.info(`echo-back-connector connection(${connection.name}) is disconnected`)\n }\n\n get parameterSpec() {\n return []\n }\n\n get taskPrefixes() {\n return ['echo']\n }\n}\n\nConnectionManager.registerConnector('echo-back', new EchoBack())\n"]}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import { Connector } from '../types';
|
2
|
+
import { InputConnection } from '../../service/connection/connection-type';
|
3
|
+
export declare class EchoBack implements Connector {
|
4
|
+
ready(connectionConfigs: InputConnection[]): Promise<void>;
|
5
|
+
connect(config: InputConnection): Promise<void>;
|
6
|
+
disconnect(connection: InputConnection): Promise<void>;
|
7
|
+
get parameterSpec(): any[];
|
8
|
+
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"echo-back-server.js","sourceRoot":"","sources":["../../../server/engine/connector/echo-back-server.ts"],"names":[],"mappings":";;;;AAAA,sDAAqB;AACrB,4EAA0C;AAG1C,8DAAyD;AAGzD,MAAa,QAAQ;IACnB,KAAK,CAAC,KAAK,CAAC,iBAAoC;QAC9C,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,6BAA6B,CAAC,CAAA;IAC9D,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAuB;QACnC,IAAI,CAAC,IAAI,GAAG,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAEhE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,MAAM,GAAG,aAAG,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;gBACrC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,IAAI;oBAC9B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;gBAC/B,CAAC,CAAC,CAAA;gBAEF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,GAAG;oBAC9B,sCAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;oBACnC,MAAM,CAAC,GAAG,CAAC,CAAA;gBACb,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YAEF,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;gBAC7B,sCAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAA;gBAE9E,+BAA+B;gBAC/B,IAAI,MAAM,GAAG,IAAI,aAAG,CAAC,MAAM,EAAE,CAAA;gBAC7B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;gBAEjC,IAAI;
|
1
|
+
{"version":3,"file":"echo-back-server.js","sourceRoot":"","sources":["../../../server/engine/connector/echo-back-server.ts"],"names":[],"mappings":"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","sourcesContent":["import net from 'net'\nimport PromiseSocket from 'promise-socket'\n\nimport { Connector } from '../types'\nimport { ConnectionManager } from '../connection-manager'\nimport { InputConnection } from '../../service/connection/connection-type'\n\nexport class EchoBack implements Connector {\n async ready(connectionConfigs: InputConnection[]) {\n await Promise.all(connectionConfigs.map(this.connect.bind(this)))\n\n ConnectionManager.logger.info('echo-back-servers are ready')\n }\n\n async connect(config: InputConnection): Promise<void> {\n var [host = '0.0.0.0', port = 8124] = config.endpoint.split(':')\n\n return new Promise((resolve, reject) => {\n var server = net.createServer(socket => {\n socket.on('data', function (data) {\n socket.write(data.toString())\n })\n\n socket.on('error', function (err) {\n ConnectionManager.logger.error(err)\n reject(err)\n })\n })\n\n server.listen(port, async () => {\n ConnectionManager.logger.info(`Echo-back server listening on ${host}:${port}`)\n\n /* default client connection */\n let socket = new net.Socket()\n socket.on('error', console.error)\n\n try {\n let promiseSocket = new PromiseSocket(socket)\n await promiseSocket.connect(Number(port), 'localhost')\n promiseSocket['__server__'] = server\n\n ConnectionManager.addConnectionInstance(config, promiseSocket)\n\n ConnectionManager.logger.info(`echo-back-server connection(${config.name}:${config.endpoint}) is connected`)\n\n resolve()\n } catch (err) {\n ConnectionManager.logger.error(\n `echo-back-server connection(${config.name}:${config.endpoint}) is connected.\\ncause: ${err}`\n )\n reject(err)\n }\n })\n })\n }\n\n async disconnect(connection: InputConnection) {\n let socket = ConnectionManager.removeConnectionInstance(connection)\n var server = socket['__server__']\n\n await socket.destroy()\n server && (await server.close())\n\n ConnectionManager.logger.info(`echo-back-server connection(${connection.name}) is disconnected`)\n }\n\n get parameterSpec() {\n return []\n }\n}\n\nConnectionManager.registerConnector('echo-back-server', new EchoBack())\n"]}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import 'cross-fetch/polyfill';
|
2
|
+
import { Connector } from '../types';
|
3
|
+
import { InputConnection } from '../../service/connection/connection-type';
|
4
|
+
export declare class GraphqlConnector implements Connector {
|
5
|
+
ready(connectionConfigs: InputConnection[]): Promise<void>;
|
6
|
+
connect(connection: InputConnection): Promise<void>;
|
7
|
+
disconnect(connection: InputConnection): Promise<void>;
|
8
|
+
get parameterSpec(): {
|
9
|
+
type: string;
|
10
|
+
name: string;
|
11
|
+
label: string;
|
12
|
+
property: {
|
13
|
+
queryName: string;
|
14
|
+
};
|
15
|
+
}[];
|
16
|
+
get taskPrefixes(): string[];
|
17
|
+
get description(): string;
|
18
|
+
get help(): string;
|
19
|
+
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"graphql-connector.js","sourceRoot":"","sources":["../../../server/engine/connector/graphql-connector.ts"],"names":[],"mappings":";;;AAAA,gCAA6B;AAE7B,8CAA6F;AAC7F,qDAAmD;AACnD,iEAA4D;AAC5D,iDAAqD;AAErD,8DAAyD;AAIzD,MAAM,cAAc,GAAQ;IAC1B,UAAU,EAAE;QACV,WAAW,EAAE,UAAU;QACvB,WAAW,EAAE,QAAQ;KACtB;IACD,KAAK,EAAE;QACL,WAAW,EAAE,UAAU;
|
1
|
+
{"version":3,"file":"graphql-connector.js","sourceRoot":"","sources":["../../../server/engine/connector/graphql-connector.ts"],"names":[],"mappings":"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","sourcesContent":["import 'cross-fetch/polyfill'\n\nimport { ApolloClient, ApolloLink, from, HttpLink, InMemoryCache } from '@apollo/client/core'\nimport { onError } from '@apollo/client/link/error'\nimport { Oauth2Client } from '@things-factory/oauth2-client'\nimport { getRepository } from '@things-factory/shell'\n\nimport { ConnectionManager } from '../connection-manager'\nimport { Connector } from '../types'\nimport { InputConnection } from '../../service/connection/connection-type'\n\nconst defaultOptions: any = {\n watchQuery: {\n fetchPolicy: 'no-cache',\n errorPolicy: 'ignore'\n },\n query: {\n fetchPolicy: 'no-cache', //'network-only'\n errorPolicy: 'all'\n },\n mutate: {\n errorPolicy: 'all'\n }\n}\n\nexport class GraphqlConnector implements Connector {\n async ready(connectionConfigs: InputConnection[]) {\n await Promise.all(connectionConfigs.map(this.connect.bind(this)))\n\n ConnectionManager.logger.info('graphql-connector connections are ready')\n }\n\n async connect(connection: InputConnection) {\n const {\n endpoint: uri,\n params: { authClient }\n } = connection\n\n const ERROR_HANDLER: any = ({ graphQLErrors, networkError }) => {\n if (graphQLErrors)\n graphQLErrors.map(({ message, locations, path }) => {\n ConnectionManager.logger.error(`[GraphQL error] Message: ${message}, Location: ${locations}, Path: ${path}`)\n })\n\n if (networkError) {\n ConnectionManager.logger.error(`[Network error - ${networkError.statusCode}] ${networkError}`)\n }\n }\n\n const oauth2Client: Oauth2Client = await getRepository(Oauth2Client).findOneBy({ id: authClient })\n\n const authMiddleware = new ApolloLink((operation, forward) => {\n // add the authorization to the headers\n operation.setContext(({ headers = {} }) => ({\n headers: {\n ...headers,\n ...oauth2Client.getAuthHeaders()\n }\n }))\n\n return forward(operation)\n })\n\n const cache = new InMemoryCache({\n addTypename: false\n })\n\n ConnectionManager.addConnectionInstance(\n connection,\n new ApolloClient({\n defaultOptions,\n cache,\n link: from([\n authMiddleware,\n onError(ERROR_HANDLER),\n new HttpLink({\n uri,\n credentials: 'include'\n })\n ])\n })\n )\n\n ConnectionManager.logger.info(`graphql-connector connection(${connection.name}:${connection.endpoint}) is connected`)\n }\n\n async disconnect(connection: InputConnection) {\n const client = ConnectionManager.getConnectionInstance(connection)\n client.stop()\n ConnectionManager.removeConnectionInstance(connection)\n\n ConnectionManager.logger.info(`graphql-connector connection(${connection.name}) is disconnected`)\n }\n\n get parameterSpec() {\n return [\n {\n type: 'entity-selector',\n name: 'authClient',\n label: 'auth-client',\n property: {\n queryName: 'oauth2Clients'\n }\n }\n ]\n }\n\n get taskPrefixes() {\n return ['graphql']\n }\n\n get description() {\n return 'Graphql Http Connector'\n }\n\n get help() {\n return 'integration/connector/graphql-connector'\n }\n}\n\nConnectionManager.registerConnector('graphql-connector', new GraphqlConnector())\n"]}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import { Connector } from '../types';
|
2
|
+
import { InputConnection } from '../../service/connection/connection-type';
|
3
|
+
export declare class HttpConnector implements Connector {
|
4
|
+
ready(connectionConfigs: InputConnection[]): Promise<void>;
|
5
|
+
connect(connection: InputConnection): Promise<void>;
|
6
|
+
disconnect(connection: InputConnection): Promise<void>;
|
7
|
+
get parameterSpec(): ({
|
8
|
+
type: string;
|
9
|
+
name: string;
|
10
|
+
label: string;
|
11
|
+
property: {
|
12
|
+
queryName: string;
|
13
|
+
options?: undefined;
|
14
|
+
};
|
15
|
+
} | {
|
16
|
+
type: string;
|
17
|
+
name: string;
|
18
|
+
label: string;
|
19
|
+
property: {
|
20
|
+
options: string[];
|
21
|
+
queryName?: undefined;
|
22
|
+
};
|
23
|
+
})[];
|
24
|
+
get taskPrefixes(): string[];
|
25
|
+
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"http-connector.js","sourceRoot":"","sources":["../../../server/engine/connector/http-connector.ts"],"names":[],"mappings":";;;AAAA,iEAA4D;AAC5D,iDAAqD;AAErD,8DAAyD;AAIzD,MAAa,aAAa;IACxB,KAAK,CAAC,KAAK,CAAC,iBAAoC;QAC9C,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,sCAAsC,CAAC,CAAA;IACvE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAA2B;QACvC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAAA;QAC3B,MAAM,CAAC,kBAAkB,GAAG,CAAC,MAAM,CAAC,kBAAkB,IAAI,GAAG,CAAC,KAAK,GAAG,CAAA;QAEtE,IAAI,MAAM,CAAC,UAAU,EAAE;
|
1
|
+
{"version":3,"file":"http-connector.js","sourceRoot":"","sources":["../../../server/engine/connector/http-connector.ts"],"names":[],"mappings":";;;AAAA,iEAA4D;AAC5D,iDAAqD;AAErD,8DAAyD;AAIzD,MAAa,aAAa;IACxB,KAAK,CAAC,KAAK,CAAC,iBAAoC;QAC9C,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,sCAAsC,CAAC,CAAA;IACvE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAA2B;QACvC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAAA;QAC3B,MAAM,CAAC,kBAAkB,GAAG,CAAC,MAAM,CAAC,kBAAkB,IAAI,GAAG,CAAC,KAAK,GAAG,CAAA;QAEtE,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,MAAM,YAAY,GAAiB,MAAM,IAAA,qBAAa,EAAC,4BAAY,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAA;YACzG,IAAI,WAAW,GAAG,YAAY,CAAC,cAAc,EAAE,CAAA;QACjD,CAAC;QAED,sCAAiB,CAAC,qBAAqB,CAAC,UAAU,kCAC7C,UAAU,KACb,WAAW,EAAE,WAAW,IAAI,EAAE,EAC9B,MAAM,IACN,CAAA;QAEF,sCAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,QAAQ,gBAAgB,CAAC,CAAA;IACpH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAA2B;QAC1C,sCAAiB,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAA;QAEtD,sCAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,UAAU,CAAC,IAAI,mBAAmB,CAAC,CAAA;IAChG,CAAC;IAED,IAAI,aAAa;QACf,OAAO;YACL;gBACE,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,aAAa;gBACpB,QAAQ,EAAE;oBACR,SAAS,EAAE,eAAe;iBAC3B;aACF;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,oBAAoB;gBAC1B,KAAK,EAAE,qBAAqB;gBAC5B,QAAQ,EAAE;oBACR,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;iBACpB;aACF;SACF,CAAA;IACH,CAAC;IAED,IAAI,YAAY;QACd,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IAC7B,CAAC;CACF;AAvDD,sCAuDC;AAED,sCAAiB,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,IAAI,aAAa,EAAE,CAAC,CAAA","sourcesContent":["import { Oauth2Client } from '@things-factory/oauth2-client'\nimport { getRepository } from '@things-factory/shell'\n\nimport { ConnectionManager } from '../connection-manager'\nimport { Connector } from '../types'\nimport { InputConnection } from '../../service/connection/connection-type'\n\nexport class HttpConnector implements Connector {\n async ready(connectionConfigs: InputConnection[]) {\n await Promise.all(connectionConfigs.map(this.connect.bind(this)))\n\n ConnectionManager.logger.info('http-connector connections are ready')\n }\n\n async connect(connection: InputConnection) {\n var { params } = connection\n params.rejectUnauthorized = (params.rejectUnauthorized || 'Y') === 'Y'\n\n if (params.authClient) {\n const oauth2Client: Oauth2Client = await getRepository(Oauth2Client).findOneBy({ id: params.authClient })\n var authHeaders = oauth2Client.getAuthHeaders()\n }\n\n ConnectionManager.addConnectionInstance(connection, {\n ...connection,\n authHeaders: authHeaders || {},\n params\n })\n\n ConnectionManager.logger.info(`http-connector connection(${connection.name}:${connection.endpoint}) is connected`)\n }\n\n async disconnect(connection: InputConnection) {\n ConnectionManager.removeConnectionInstance(connection)\n\n ConnectionManager.logger.info(`http-connector connection(${connection.name}) is disconnected`)\n }\n\n get parameterSpec() {\n return [\n {\n type: 'entity-selector',\n name: 'authClient',\n label: 'auth-client',\n property: {\n queryName: 'oauth2Clients'\n }\n },\n {\n type: 'select',\n name: 'rejectUnauthorized',\n label: 'reject-unauthorized',\n property: {\n options: ['Y', 'N']\n }\n }\n ]\n }\n\n get taskPrefixes() {\n return ['http', 'headless']\n }\n}\n\nConnectionManager.registerConnector('http-connector', new HttpConnector())\n"]}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import './echo-back-server';
|
2
|
+
import './echo-back-connector';
|
3
|
+
import './http-connector';
|
4
|
+
import './graphql-connector';
|
5
|
+
import './sqlite-connector';
|
6
|
+
import './postgresql-connector';
|
7
|
+
import './mqtt-connector';
|
8
|
+
import './mssql-connector';
|
9
|
+
import './oracle-connector';
|
10
|
+
import './mysql-connector';
|
11
|
+
import './socket-server';
|
12
|
+
import './operato-connector';
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import { Connector } from '../types';
|
2
|
+
import { InputConnection } from '../../service/connection/connection-type';
|
3
|
+
export declare class MqttConnector implements Connector {
|
4
|
+
ready(connectionConfigs: InputConnection[]): Promise<void>;
|
5
|
+
connect(connection: InputConnection): Promise<void>;
|
6
|
+
disconnect(connection: InputConnection): Promise<void>;
|
7
|
+
get parameterSpec(): {
|
8
|
+
type: string;
|
9
|
+
name: string;
|
10
|
+
label: string;
|
11
|
+
}[];
|
12
|
+
get taskPrefixes(): string[];
|
13
|
+
get help(): string;
|
14
|
+
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"mqtt-connector.js","sourceRoot":"","sources":["../../../server/engine/connector/mqtt-connector.ts"],"names":[],"mappings":";;;;AACA,8DAAyD;AAGzD,oEAA6B;AAE7B,MAAa,aAAa;IACxB,KAAK,CAAC,KAAK,CAAC,iBAAoC;QAC9C,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,sCAAsC,CAAC,CAAA;IACvE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAA2B;QACvC,MAAM,EACJ,QAAQ,EAAE,GAAG,EACb,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAC3B,GAAG,UAAU,CAAA;QAEd,IAAI;
|
1
|
+
{"version":3,"file":"mqtt-connector.js","sourceRoot":"","sources":["../../../server/engine/connector/mqtt-connector.ts"],"names":[],"mappings":";;;;AACA,8DAAyD;AAGzD,oEAA6B;AAE7B,MAAa,aAAa;IACxB,KAAK,CAAC,KAAK,CAAC,iBAAoC;QAC9C,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,sCAAsC,CAAC,CAAA;IACvE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAA2B;QACvC,MAAM,EACJ,QAAQ,EAAE,GAAG,EACb,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAC3B,GAAG,UAAU,CAAA;QAEd,IAAI,CAAC;YACH,IAAI,MAAM,GAAG,IAAI,CAAA;YACjB,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC;gBACrB,MAAM,GAAG,MAAM,oBAAI,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;YAC/E,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,MAAM,oBAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;YACvC,CAAC;YAED,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CACb,wDAAwD,GAAG,WAAW,IAAI,cAAc,QAAQ,EAAE,CACnG,CAAA;YACH,CAAC;YAED,sCAAiB,CAAC,qBAAqB,CAAC,UAAU,EAAE;gBAClD,MAAM;gBACN,UAAU;aACX,CAAC,CAAA;YAEF,sCAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,QAAQ,gBAAgB,CAAC,CAAA;QACpH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,sCAAiB,CAAC,MAAM,CAAC,KAAK,CAC5B,6BAA6B,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,QAAQ,wBAAwB,GAAG,EAAE,CACjG,CAAA;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAA2B;QAC1C,MAAM,EAAE,MAAM,EAAE,GAAG,sCAAiB,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAA;QAEzE,MAAM,IAAI,CAAC,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC,CAAA;IAChC,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;SACF,CAAA;IACH,CAAC;IAED,IAAI,YAAY;QACd,OAAO,CAAC,MAAM,CAAC,CAAA;IACjB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,sCAAsC,CAAA;IAC/C,CAAC;CACF;AApED,sCAoEC;AAED,sCAAiB,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,IAAI,aAAa,EAAE,CAAC,CAAA","sourcesContent":["import { Connector } from '../types'\nimport { ConnectionManager } from '../connection-manager'\nimport { InputConnection } from '../../service/connection/connection-type'\n\nimport mqtt from 'async-mqtt'\n\nexport class MqttConnector implements Connector {\n async ready(connectionConfigs: InputConnection[]) {\n await Promise.all(connectionConfigs.map(this.connect.bind(this)))\n\n ConnectionManager.logger.info('mqtt-connector connections are ready')\n }\n\n async connect(connection: InputConnection) {\n const {\n endpoint: uri,\n params: { user, password }\n } = connection\n\n try {\n var client = null\n if (user && password) {\n client = await mqtt.connectAsync(uri, { username: user, password: password })\n } else {\n client = await mqtt.connectAsync(uri)\n }\n\n if (!client) {\n throw new Error(\n `the initialization of mqtt connector is failed. uri: ${uri}, user: ${user} password: ${password}`\n )\n }\n\n ConnectionManager.addConnectionInstance(connection, {\n client,\n connection\n })\n\n ConnectionManager.logger.info(`mqtt-connector connection(${connection.name}:${connection.endpoint}) is connected`)\n } catch (err) {\n ConnectionManager.logger.error(\n `mqtt-connector connection(${connection.name}:${connection.endpoint}) is failed.\\ncause: ${err}`\n )\n }\n }\n\n async disconnect(connection: InputConnection) {\n const { client } = ConnectionManager.removeConnectionInstance(connection)\n\n client && (await client.end())\n }\n\n get parameterSpec() {\n return [\n {\n type: 'string',\n name: 'user',\n label: 'user'\n },\n {\n type: 'password',\n name: 'password',\n label: 'password'\n }\n ]\n }\n\n get taskPrefixes() {\n return ['mqtt']\n }\n\n get help() {\n return 'integration/connector/mqtt-connector'\n }\n}\n\nConnectionManager.registerConnector('mqtt-connector', new MqttConnector())\n"]}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
import { Connector } from '../types';
|
2
|
+
import { InputConnection } from '../../service/connection/connection-type';
|
3
|
+
export declare class MssqlConnector implements Connector {
|
4
|
+
ready(connectionConfigs: InputConnection[]): Promise<void>;
|
5
|
+
connect(connection: InputConnection): Promise<void>;
|
6
|
+
disconnect(connection: InputConnection): Promise<void>;
|
7
|
+
get parameterSpec(): ({
|
8
|
+
type: string;
|
9
|
+
name: string;
|
10
|
+
label: string;
|
11
|
+
placeholder?: undefined;
|
12
|
+
property?: undefined;
|
13
|
+
} | {
|
14
|
+
type: string;
|
15
|
+
name: string;
|
16
|
+
placeholder: string;
|
17
|
+
label: string;
|
18
|
+
property?: undefined;
|
19
|
+
} | {
|
20
|
+
type: string;
|
21
|
+
name: string;
|
22
|
+
label: string;
|
23
|
+
property: {
|
24
|
+
options: string[];
|
25
|
+
};
|
26
|
+
placeholder?: undefined;
|
27
|
+
})[];
|
28
|
+
get taskPrefixes(): string[];
|
29
|
+
get help(): string;
|
30
|
+
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"mssql-connector.js","sourceRoot":"","sources":["../../../server/engine/connector/mssql-connector.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAE5C,8DAAyD;AAIzD,IAAI;
|
1
|
+
{"version":3,"file":"mssql-connector.js","sourceRoot":"","sources":["../../../server/engine/connector/mssql-connector.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '@things-factory/env'\n\nimport { ConnectionManager } from '../connection-manager'\nimport { Connector } from '../types'\nimport { InputConnection } from '../../service/connection/connection-type'\n\ntry {\n var Client = require('mssql')\n} catch (err) {\n logger.error('mssql module loading failed')\n}\n\nexport class MssqlConnector implements Connector {\n async ready(connectionConfigs: InputConnection[]) {\n await Promise.all(connectionConfigs.map(this.connect))\n\n ConnectionManager.logger.info('mssql-connector connections are ready')\n }\n\n async connect(connection: InputConnection) {\n const {\n endpoint,\n params: { user, password, database, encrypt = 'Y', trustServerCertificate }\n } = connection\n\n const [host, port = 1433] = endpoint.split(':')\n\n if (!Client) {\n throw new Error('mssql module loading failed')\n }\n\n const client = await Client.connect({\n // client is pool\n user,\n password,\n server: host,\n database,\n pool: {\n max: 10,\n min: 0,\n idleTimeoutMillis: 30000\n },\n options: {\n encrypt: encrypt === 'Y',\n trustServerCertificate: trustServerCertificate === 'Y'\n }\n })\n\n ConnectionManager.addConnectionInstance(connection, {\n query: async (query, params) => {\n var result = await client.query(query)\n return result.recordset\n\n // return (await client.query(query))\n },\n close: client.close.bind(client)\n })\n\n ConnectionManager.logger.info(`MSSql Database(${connection.name}:${database}) at ${endpoint} connected.`)\n }\n\n async disconnect(connection: InputConnection) {\n var client = ConnectionManager.getConnectionInstance(connection)\n try {\n await client.close()\n ConnectionManager.logger.info(`MSSql Database(${connection.name}) closed.`)\n } catch (e) {\n ConnectionManager.logger.error(e)\n }\n\n ConnectionManager.removeConnectionInstance(connection)\n }\n\n get parameterSpec() {\n return [\n {\n type: 'string',\n name: 'user',\n label: 'user'\n },\n {\n type: 'password',\n name: 'password',\n label: 'password'\n },\n {\n type: 'string',\n name: 'database',\n placeholder: 'SID',\n label: 'database'\n },\n {\n type: 'select',\n name: 'encrypt',\n label: 'encrypt',\n property: {\n options: ['Y', 'N']\n }\n },\n {\n type: 'select',\n name: 'trustServerCertificate',\n label: 'trust-server-certificate',\n property: {\n options: ['Y', 'N']\n }\n }\n ]\n }\n\n get taskPrefixes() {\n return ['database']\n }\n\n get help() {\n return 'integration/connector/mssql-connector'\n }\n}\n\nConnectionManager.registerConnector('mssql-connector', new MssqlConnector())\n"]}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import { Connector } from '../types';
|
2
|
+
import { InputConnection } from '../../service/connection/connection-type';
|
3
|
+
export declare class mysqlConnector implements Connector {
|
4
|
+
ready(connectionConfigs: InputConnection[]): Promise<void>;
|
5
|
+
connect(connection: InputConnection): Promise<void>;
|
6
|
+
disconnect(connection: InputConnection): Promise<void>;
|
7
|
+
get parameterSpec(): {
|
8
|
+
type: string;
|
9
|
+
name: string;
|
10
|
+
label: string;
|
11
|
+
}[];
|
12
|
+
get taskPrefixes(): string[];
|
13
|
+
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"mysql-connector.js","sourceRoot":"","sources":["../../../server/engine/connector/mysql-connector.ts"],"names":[],"mappings":";;;;AAAA,qEAAmC;AAGnC,8DAAyD;AAGzD,MAAa,cAAc;IACzB,KAAK,CAAC,KAAK,CAAC,iBAAoC;QAC9C,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,UAA2B;QACvC,MAAM,EACJ,QAAQ,EACR,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GACrC,GAAG,UAAU,CAAC;QAEf,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEhD,IAAI,CAAC,iBAAK,EAAE;
|
1
|
+
{"version":3,"file":"mysql-connector.js","sourceRoot":"","sources":["../../../server/engine/connector/mysql-connector.ts"],"names":[],"mappings":"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","sourcesContent":["import Mysql from \"mysql2/promise\";\n\nimport { Connector } from '../types'\nimport { ConnectionManager } from '../connection-manager'\nimport { InputConnection } from '../../service/connection/connection-type'\n\nexport class mysqlConnector implements Connector {\n async ready(connectionConfigs: InputConnection[]) {\n await Promise.all(connectionConfigs.map(this.connect));\n ConnectionManager.logger.info(\"mysql-connector connections are ready\");\n }\n\n async connect(connection: InputConnection) {\n const {\n endpoint,\n params: { user, password, database },\n } = connection;\n\n let [host, port = '3306'] = endpoint.split(\":\");\n\n if (!Mysql) {\n throw new Error(\"mysql module loading failed\");\n }\n\n let pool = await Mysql.createPool({\n user,\n password,\n host,\n port: Number(port),\n database,\n });\n\n const client = await pool.getConnection();\n ConnectionManager.addConnectionInstance(connection, {\n query: async (query, params) => {\n var result;\n try {\n const results = await client.query(query);\n if (results && results.length > 0) {\n result = results[0];\n }\n } catch (e) {\n ConnectionManager.logger.error(e);\n }\n return result;\n },\n close: client.end(),\n });\n\n ConnectionManager.logger.info(\n `mysql Database(${connection.name}:${database}) at ${endpoint} connected.`\n );\n }\n\n async disconnect(connection: InputConnection) {\n var client = ConnectionManager.getConnectionInstance(connection);\n try {\n await client.close();\n ConnectionManager.logger.info(\n `mysql Database(${connection.name}) closed.`\n );\n } catch (e) {\n ConnectionManager.logger.error(e);\n }\n\n ConnectionManager.removeConnectionInstance(connection);\n }\n\n get parameterSpec() {\n return [\n {\n type: \"string\",\n name: \"user\",\n label: \"user\",\n },\n {\n type: \"password\",\n name: \"password\",\n label: \"password\",\n },\n {\n type: \"string\",\n name: \"database\",\n label: \"database\",\n },\n ];\n }\n\n get taskPrefixes() {\n return [\"database\"];\n }\n}\n\nConnectionManager.registerConnector(\"mysql-connector\", new mysqlConnector());\n"]}
|