@things-factory/integration-base 7.0.1-beta.18 → 7.0.1-beta.19
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/scenario-controller.d.ts +2 -2
- package/dist-server/controllers/scenario-controller.js +8 -2
- package/dist-server/controllers/scenario-controller.js.map +1 -1
- package/dist-server/engine/types.d.ts +2 -2
- package/dist-server/engine/types.js.map +1 -1
- package/dist-server/restful/unstable/run-scenario.js +0 -1
- package/dist-server/restful/unstable/run-scenario.js.map +1 -1
- package/dist-server/service/scenario/scenario-type.d.ts +2 -0
- package/dist-server/service/scenario/scenario-type.js +8 -0
- package/dist-server/service/scenario/scenario-type.js.map +1 -1
- package/dist-server/service/scenario/scenario.d.ts +1 -0
- package/dist-server/service/scenario/scenario.js +5 -0
- package/dist-server/service/scenario/scenario.js.map +1 -1
- package/dist-server/service/scenario-instance/scenario-instance-mutation.d.ts +2 -2
- package/dist-server/service/scenario-instance/scenario-instance-mutation.js +1 -1
- package/dist-server/service/scenario-instance/scenario-instance-mutation.js.map +1 -1
- package/dist-server/service/scenario-instance/scenario-instance-query.d.ts +1 -7
- package/dist-server/service/scenario-instance/scenario-instance-query.js +0 -64
- package/dist-server/service/scenario-instance/scenario-instance-query.js.map +1 -1
- package/dist-server/service/scenario-instance/scenario-instance-type.d.ts +35 -11
- package/dist-server/service/scenario-instance/scenario-instance-type.js +100 -14
- package/dist-server/service/scenario-instance/scenario-instance-type.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -2
- package/server/controllers/scenario-controller.ts +55 -19
- package/server/engine/types.ts +2 -2
- package/server/restful/unstable/run-scenario.ts +0 -1
- package/server/service/scenario/scenario-type.ts +6 -0
- package/server/service/scenario/scenario.ts +4 -0
- package/server/service/scenario-instance/scenario-instance-mutation.ts +7 -4
- package/server/service/scenario-instance/scenario-instance-query.ts +0 -29
- package/server/service/scenario-instance/scenario-instance-type.ts +87 -9
@@ -1,4 +1,4 @@
|
|
1
|
-
import { ScenarioInstance } from '../service/scenario-instance/scenario-instance-type';
|
2
|
-
export declare function runScenario(instanceName: string, scenarioName: string, variables: any, context: ResolverContext): Promise<
|
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
3
|
export declare function startScenario(instanceName: string, scenarioName: string, variables: any, context: ResolverContext): Promise<ScenarioInstance>;
|
4
4
|
export declare function stopScenario(instanceName: string, context: ResolverContext): Promise<ScenarioInstance | undefined>;
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.stopScenario = exports.startScenario = exports.runScenario = void 0;
|
4
4
|
const shell_1 = require("@things-factory/shell");
|
5
5
|
const auth_base_1 = require("@things-factory/auth-base");
|
6
|
+
const cache_service_1 = require("@things-factory/cache-service");
|
6
7
|
const scenario_engine_1 = require("../engine/scenario-engine");
|
7
8
|
const scenario_1 = require("../service/scenario/scenario");
|
8
9
|
const scenario_instance_type_1 = require("../service/scenario-instance/scenario-instance-type");
|
@@ -37,6 +38,12 @@ async function runScenario(instanceName, scenarioName, variables, context) {
|
|
37
38
|
scenario: scenarioName
|
38
39
|
}));
|
39
40
|
}
|
41
|
+
if (scenario.ttl > 0) {
|
42
|
+
const cachedValue = await cache_service_1.cacheService.getFromCache(scenario.id, variables || {});
|
43
|
+
if (cachedValue) {
|
44
|
+
return cachedValue.value;
|
45
|
+
}
|
46
|
+
}
|
40
47
|
/* 시나리오 인스턴스를 생성한다. */
|
41
48
|
instanceName = instanceName || scenarioName + '-' + String(Date.now());
|
42
49
|
var instance = new scenario_instance_type_1.ScenarioInstance(instanceName, scenario, {
|
@@ -47,7 +54,7 @@ async function runScenario(instanceName, scenarioName, variables, context) {
|
|
47
54
|
client: shell_1.GraphqlLocalClient.client
|
48
55
|
});
|
49
56
|
try {
|
50
|
-
await instance.run();
|
57
|
+
return await instance.run();
|
51
58
|
}
|
52
59
|
catch (err) {
|
53
60
|
console.error(err);
|
@@ -55,7 +62,6 @@ async function runScenario(instanceName, scenarioName, variables, context) {
|
|
55
62
|
scenario: scenarioName
|
56
63
|
}));
|
57
64
|
}
|
58
|
-
return instance;
|
59
65
|
}
|
60
66
|
exports.runScenario = runScenario;
|
61
67
|
async function startScenario(instanceName, scenarioName, variables, context) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scenario-controller.js","sourceRoot":"","sources":["../../server/controllers/scenario-controller.ts"],"names":[],"mappings":";;;AAAA,iDAAiF;AACjF,
|
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, 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,4 +1,4 @@
|
|
1
|
-
import { Connection, PropertySpec, ScenarioInstanceStatus, Step } from '../service';
|
1
|
+
import { Connection, PropertySpec, ScenarioInstance, ScenarioInstanceStatus, Step } from '../service';
|
2
2
|
import { Domain } from '@things-factory/shell';
|
3
3
|
import { User } from '@things-factory/auth-base';
|
4
4
|
export interface Connector {
|
@@ -65,7 +65,7 @@ export type Context = {
|
|
65
65
|
/**
|
66
66
|
* Root object, can be used for various purposes.
|
67
67
|
*/
|
68
|
-
root
|
68
|
+
root?: ScenarioInstance;
|
69
69
|
/**
|
70
70
|
* Array of function closures.
|
71
71
|
*/
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../server/engine/types.ts"],"names":[],"mappings":"","sourcesContent":["import { Connection, PropertySpec, ScenarioInstanceStatus, Step } from '../service'\nimport { Domain } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\n\nexport interface Connector {\n ready(connections: Connection[]): Promise<any>\n connect(connection: Connection): Promise<any>\n disconnect(connection: Connection): Promise<any>\n parameterSpec: PropertySpec[]\n taskPrefixes?: string[]\n description?: string\n help?: string\n}\n\nexport type Context = {\n /**\n * Represents the domain context.\n */\n domain: Domain\n\n /**\n * User information.\n */\n user: User\n\n /**\n * Language code, for example 'en', 'ko'.\n */\n lng: string\n\n /**\n * Flag to indicate if the IP is unsafe, can be undefined.\n */\n unsafeIP: boolean | undefined\n\n /**\n * List of prohibited privileges, can be undefined.\n */\n prohibitedPrivileges: { category: string; privilege: string }[] | undefined\n\n /**\n * Logger for logging purposes.\n */\n logger: any\n\n /**\n * Function to publish events or messages.\n */\n publish: Function\n\n /**\n * Function to load resources or data.\n */\n load: Function\n\n /**\n * Current status of the scenario instance.\n */\n state: ScenarioInstanceStatus\n\n /**\n * General data storage object.\n */\n data: any\n\n /**\n * Variables related to the context.\n */\n variables: Object\n\n /**\n * Local GraphQL client object.\n */\n client: any /* graphql local client */\n\n /**\n * Root object, can be used for various purposes.\n */\n root
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../server/engine/types.ts"],"names":[],"mappings":"","sourcesContent":["import { Connection, PropertySpec, ScenarioInstance, ScenarioInstanceStatus, Step } from '../service'\nimport { Domain } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\n\nexport interface Connector {\n ready(connections: Connection[]): Promise<any>\n connect(connection: Connection): Promise<any>\n disconnect(connection: Connection): Promise<any>\n parameterSpec: PropertySpec[]\n taskPrefixes?: string[]\n description?: string\n help?: string\n}\n\nexport type Context = {\n /**\n * Represents the domain context.\n */\n domain: Domain\n\n /**\n * User information.\n */\n user: User\n\n /**\n * Language code, for example 'en', 'ko'.\n */\n lng: string\n\n /**\n * Flag to indicate if the IP is unsafe, can be undefined.\n */\n unsafeIP: boolean | undefined\n\n /**\n * List of prohibited privileges, can be undefined.\n */\n prohibitedPrivileges: { category: string; privilege: string }[] | undefined\n\n /**\n * Logger for logging purposes.\n */\n logger: any\n\n /**\n * Function to publish events or messages.\n */\n publish: Function\n\n /**\n * Function to load resources or data.\n */\n load: Function\n\n /**\n * Current status of the scenario instance.\n */\n state: ScenarioInstanceStatus\n\n /**\n * General data storage object.\n */\n data: any\n\n /**\n * Variables related to the context.\n */\n variables: Object\n\n /**\n * Local GraphQL client object.\n */\n client: any /* graphql local client */\n\n /**\n * Root object, can be used for various purposes.\n */\n root?: ScenarioInstance\n\n /**\n * Array of function closures.\n */\n closures: Function[]\n\n /**\n * Function to check the state.\n */\n checkState: Function\n\n /**\n * MQTT subscriber context object.\n */\n __mqtt_subscriber?: any\n\n /**\n * socket listener context object.\n */\n __socket_listener?: any\n\n /**\n * csv readline context object.\n */\n __csv_resources?: any\n}\n\nexport type TaskHandler = (\n step: Step,\n context: Context\n) => Promise<{\n next?: string\n state?: ScenarioInstanceStatus\n data?: any\n}>\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"run-scenario.js","sourceRoot":"","sources":["../../../server/restful/unstable/run-scenario.ts"],"names":[],"mappings":";;;AAAA,sEAA6B;AAE7B,6CAAgE;AAEhE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,+DAA+D,CAAC,CAAA;AAE/F,sBAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAC1E,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAChC,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,MAAM,CAAA;IACvC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAA;IACvC,IAAI,EAAE,YAAY,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,IAAI,CAAA;IAEhD,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,SAAS,GAAG,IAAI,CAAA;IAClB,CAAC;IAED,KAAK,CAAC,2CAA2C,EAAE,YAAY,CAAC,CAAA;IAChE,IAAI,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QACjC,QAAQ,EAAE,IAAA,qBAAG,EAAA
|
1
|
+
{"version":3,"file":"run-scenario.js","sourceRoot":"","sources":["../../../server/restful/unstable/run-scenario.ts"],"names":[],"mappings":";;;AAAA,sEAA6B;AAE7B,6CAAgE;AAEhE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,+DAA+D,CAAC,CAAA;AAE/F,sBAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAC1E,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAChC,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,MAAM,CAAA;IACvC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAA;IACvC,IAAI,EAAE,YAAY,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,IAAI,CAAA;IAEhD,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,SAAS,GAAG,IAAI,CAAA;IAClB,CAAC;IAED,KAAK,CAAC,2CAA2C,EAAE,YAAY,CAAC,CAAA;IAChE,IAAI,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QACjC,QAAQ,EAAE,IAAA,qBAAG,EAAA;;;;;;;;;;;KAWZ;QACD,SAAS,EAAE;YACT,YAAY;YACZ,YAAY;YACZ,SAAS;SACV;QACD,OAAO;KACR,CAAC,CAAA;IAEF,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAA;IAEjC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,MAAM,GAAG,GAAG,CAAA;QACpB,OAAO,CAAC,IAAI,GAAG,MAAM,CAAA;QAErB,OAAM;IACR,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAA;IAEnC,OAAO,CAAC,IAAI,GAAG,MAAM,CAAA;AACvB,CAAC,CAAC,CAAA","sourcesContent":["import gql from 'graphql-tag'\n\nimport { restfulApiRouter as router } from '@things-factory/api'\n\nconst debug = require('debug')('things-factory:integration-base:restful:unstable:run-scenario')\n\nrouter.post('/unstable/run-scenario/:scenarioName', async (context, next) => {\n const { client } = context.state\n const { scenarioName } = context.params\n const body = context.request.body || {}\n let { instanceName = '', variables = {} } = body\n\n if (Object.keys(variables).length === 0) {\n variables = body\n }\n\n debug('post:/unstable/run-scenario/:scenarioName', scenarioName)\n let response = await client.mutate({\n mutation: gql`\n mutation ($instanceName: String, $scenarioName: String!, $variables: Object) {\n runScenario(instanceName: $instanceName, scenarioName: $scenarioName, variables: $variables) {\n instanceName\n scenarioName\n data\n result\n message\n timestamp\n }\n }\n `,\n variables: {\n instanceName,\n scenarioName,\n variables\n },\n context\n })\n\n const { errors, data } = response\n\n if (!data) {\n context.status = 500\n context.body = errors\n\n return\n }\n\n const { result } = data.runScenario\n\n context.body = result\n})\n"]}
|
@@ -7,6 +7,7 @@ export declare class NewScenario {
|
|
7
7
|
type?: string;
|
8
8
|
schedule?: string;
|
9
9
|
timezone?: string;
|
10
|
+
ttl?: number;
|
10
11
|
active?: boolean;
|
11
12
|
privilege?: PrivilegeInput;
|
12
13
|
}
|
@@ -17,6 +18,7 @@ export declare class ScenarioPatch {
|
|
17
18
|
type?: string;
|
18
19
|
schedule?: string;
|
19
20
|
timezone?: string;
|
21
|
+
ttl?: number;
|
20
22
|
active?: boolean;
|
21
23
|
steps?: StepPatch[];
|
22
24
|
privilege?: PrivilegeInput;
|
@@ -29,6 +29,10 @@ tslib_1.__decorate([
|
|
29
29
|
(0, type_graphql_1.Field)({ nullable: true }),
|
30
30
|
tslib_1.__metadata("design:type", String)
|
31
31
|
], NewScenario.prototype, "timezone", void 0);
|
32
|
+
tslib_1.__decorate([
|
33
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
34
|
+
tslib_1.__metadata("design:type", Number)
|
35
|
+
], NewScenario.prototype, "ttl", void 0);
|
32
36
|
tslib_1.__decorate([
|
33
37
|
(0, type_graphql_1.Field)({ nullable: true }),
|
34
38
|
tslib_1.__metadata("design:type", Boolean)
|
@@ -67,6 +71,10 @@ tslib_1.__decorate([
|
|
67
71
|
(0, type_graphql_1.Field)({ nullable: true }),
|
68
72
|
tslib_1.__metadata("design:type", String)
|
69
73
|
], ScenarioPatch.prototype, "timezone", void 0);
|
74
|
+
tslib_1.__decorate([
|
75
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
76
|
+
tslib_1.__metadata("design:type", Number)
|
77
|
+
], ScenarioPatch.prototype, "ttl", void 0);
|
70
78
|
tslib_1.__decorate([
|
71
79
|
(0, type_graphql_1.Field)({ nullable: true }),
|
72
80
|
tslib_1.__metadata("design:type", Boolean)
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scenario-type.js","sourceRoot":"","sources":["../../../server/service/scenario/scenario-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAoE;AAEpE,yDAA0D;AAE1D,yCAAqC;AACrC,iDAA6C;AAGtC,IAAM,WAAW,GAAjB,MAAM,WAAW;
|
1
|
+
{"version":3,"file":"scenario-type.js","sourceRoot":"","sources":["../../../server/service/scenario/scenario-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAoE;AAEpE,yDAA0D;AAE1D,yCAAqC;AACrC,iDAA6C;AAGtC,IAAM,WAAW,GAAjB,MAAM,WAAW;CAwBvB,CAAA;AAxBY,kCAAW;AAEtB;IADC,IAAA,oBAAK,GAAE;;yCACI;AAGZ;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACN;AAGpB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCACb;AAGb;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACT;AAGjB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACT;AAGjB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wCACd;AAGZ;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACV;AAGhB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,0BAAc;8CAAA;sBAvBf,WAAW;IADvB,IAAA,wBAAS,GAAE;GACC,WAAW,CAwBvB;AAGM,IAAM,aAAa,GAAnB,MAAM,aAAa;CAiCzB,CAAA;AAjCY,sCAAa;AAExB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCAC3B;AAGX;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACb;AAGb;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACN;AAGpB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACb;AAGb;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACT;AAGjB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACT;AAGjB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CACd;AAGZ;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACV;AAGhB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,qBAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4CAC5B;AAGnB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,0BAAc;gDAAA;AAG1B;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACX;wBAhCJ,aAAa;IADzB,IAAA,wBAAS,GAAE;GACC,aAAa,CAiCzB;AAGM,IAAM,YAAY,GAAlB,MAAM,YAAY;CAMxB,CAAA;AANY,oCAAY;AAEvB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,mBAAQ,CAAC,CAAC;;2CACT;AAGjB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;2CACN;uBALF,YAAY;IADxB,IAAA,yBAAU,GAAE;GACA,YAAY,CAMxB","sourcesContent":["import { Field, ID, InputType, Int, ObjectType } from 'type-graphql'\n\nimport { PrivilegeInput } from '@things-factory/auth-base'\n\nimport { Scenario } from './scenario'\nimport { StepPatch } from '../step/step-type'\n\n@InputType()\nexport class NewScenario {\n @Field()\n name: string\n\n @Field({ nullable: true })\n description?: string\n\n @Field({ nullable: true })\n type?: string\n\n @Field({ nullable: true })\n schedule?: string\n\n @Field({ nullable: true })\n timezone?: string\n\n @Field({ nullable: true })\n ttl?: number\n\n @Field({ nullable: true })\n active?: boolean\n\n @Field({ nullable: true })\n privilege?: PrivilegeInput\n}\n\n@InputType()\nexport class ScenarioPatch {\n @Field(type => ID, { nullable: true })\n id?: string\n\n @Field({ nullable: true })\n name?: string\n\n @Field({ nullable: true })\n description?: string\n\n @Field({ nullable: true })\n type?: string\n\n @Field({ nullable: true })\n schedule?: string\n\n @Field({ nullable: true })\n timezone?: string\n\n @Field({ nullable: true })\n ttl?: number\n\n @Field({ nullable: true })\n active?: boolean\n\n @Field(type => [StepPatch], { nullable: true })\n steps?: StepPatch[]\n\n @Field({ nullable: true })\n privilege?: PrivilegeInput\n\n @Field({ nullable: true })\n cuFlag?: string\n}\n\n@ObjectType()\nexport class ScenarioList {\n @Field(type => [Scenario])\n items: Scenario[]\n\n @Field(type => Int)\n total: number\n}\n"]}
|
@@ -78,6 +78,11 @@ tslib_1.__decorate([
|
|
78
78
|
(0, type_graphql_1.Field)({ nullable: true }),
|
79
79
|
tslib_1.__metadata("design:type", String)
|
80
80
|
], Scenario.prototype, "timezone", void 0);
|
81
|
+
tslib_1.__decorate([
|
82
|
+
(0, typeorm_1.Column)({ nullable: true }),
|
83
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
84
|
+
tslib_1.__metadata("design:type", Number)
|
85
|
+
], Scenario.prototype, "ttl", void 0);
|
81
86
|
tslib_1.__decorate([
|
82
87
|
(0, typeorm_1.OneToMany)(type => step_type_1.Step, step => step.scenario),
|
83
88
|
(0, type_graphql_1.Field)(type => [step_type_1.Step], { nullable: true }),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scenario.js","sourceRoot":"","sources":["../../../server/service/scenario/scenario.ts"],"names":[],"mappings":";;;;AAAA,+CAAoE;AACpE,qCAUgB;AAEhB,yDAAiF;AACjF,iDAA8C;AAE9C,yCAA6C;AAC7C,iDAAwC;AAKjC,IAAM,QAAQ,GAAd,MAAM,QAAQ;
|
1
|
+
{"version":3,"file":"scenario.js","sourceRoot":"","sources":["../../../server/service/scenario/scenario.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, ID, InputType, Int, ObjectType } from 'type-graphql'\nimport {\n Column,\n CreateDateColumn,\n Entity,\n Index,\n ManyToOne,\n OneToMany,\n PrimaryGeneratedColumn,\n RelationId,\n UpdateDateColumn\n} from 'typeorm'\n\nimport { PrivilegeObject, PrivilegeInput, User } from '@things-factory/auth-base'\nimport { Domain } from '@things-factory/shell'\n\nimport { ScenarioEngine } from '../../engine'\nimport { Step } from '../step/step-type'\n\n@Entity()\n@Index('ix_scenario_0', (scenario: Scenario) => [scenario.domain, scenario.name], { unique: true })\n@ObjectType()\nexport class Scenario {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n id?: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain)\n domain?: Domain\n\n @RelationId((scenario: Scenario) => scenario.domain)\n domainId?: string\n\n @Column()\n @Field()\n name?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n description?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n type?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'accessible and executable system-wide' })\n public?: boolean\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: '[will be deprecated] automatically be started when this server start' })\n active?: boolean\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n schedule?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n scheduleId?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n timezone?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n ttl?: number\n\n @OneToMany(type => Step, step => step.scenario)\n @Field(type => [Step], { nullable: true })\n steps?: Step[]\n\n @Column({ type: 'simple-json', nullable: true })\n @Field(type => PrivilegeObject, { nullable: true })\n privilege?: PrivilegeObject\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((scenario: Scenario) => scenario.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((scenario: Scenario) => scenario.updater)\n updaterId?: string\n\n async start(instanceName, variables?: any) {\n try {\n await ScenarioEngine.load(instanceName || this.name, this, { domain: this.domain, user: this.updater, variables })\n } catch (ex) {}\n }\n\n async stop(instanceName?) {\n try {\n await ScenarioEngine.unload(this.domain, instanceName || this.name)\n } finally {\n }\n }\n}\n"]}
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import { ScenarioInstance } from './scenario-instance-type';
|
1
|
+
import { ScenarioInstance, ScenarioInstanceRunResult } from './scenario-instance-type';
|
2
2
|
export declare class ScenarioInstanceMutation {
|
3
|
-
runScenario(instanceName: string, scenarioName: string, variables: any, context: ResolverContext): Promise<
|
3
|
+
runScenario(instanceName: string, scenarioName: string, variables: any, context: ResolverContext): Promise<ScenarioInstanceRunResult>;
|
4
4
|
startScenario(instanceName: string, scenarioName: string, variables: any, context: ResolverContext): Promise<ScenarioInstance>;
|
5
5
|
stopScenario(instanceName: string, context: ResolverContext): Promise<ScenarioInstance | undefined>;
|
6
6
|
}
|
@@ -19,7 +19,7 @@ let ScenarioInstanceMutation = class ScenarioInstanceMutation {
|
|
19
19
|
};
|
20
20
|
exports.ScenarioInstanceMutation = ScenarioInstanceMutation;
|
21
21
|
tslib_1.__decorate([
|
22
|
-
(0, type_graphql_1.Mutation)(returns => scenario_instance_type_1.
|
22
|
+
(0, type_graphql_1.Mutation)(returns => scenario_instance_type_1.ScenarioInstanceRunResult, {
|
23
23
|
description: 'To run new scenario instance and will return the result after the scenario stop.'
|
24
24
|
}),
|
25
25
|
tslib_1.__param(0, (0, type_graphql_1.Arg)('instanceName', { nullable: true })),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scenario-instance-mutation.js","sourceRoot":"","sources":["../../../server/service/scenario-instance/scenario-instance-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAA2D;AAE3D,iDAAoD;AAEpD,
|
1
|
+
{"version":3,"file":"scenario-instance-mutation.js","sourceRoot":"","sources":["../../../server/service/scenario-instance/scenario-instance-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAA2D;AAE3D,iDAAoD;AAEpD,qEAAsF;AAEtF,+EAI8C;AAGvC,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IAI7B,AAAN,KAAK,CAAC,WAAW,CAC0B,YAAoB,EACxC,YAAoB,EACmB,SAAc,EACnE,OAAwB;QAE/B,OAAO,MAAM,IAAA,iCAAqB,EAAC,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;IACpF,CAAC;IAGK,AAAN,KAAK,CAAC,aAAa,CACwB,YAAoB,EACxC,YAAoB,EACmB,SAAc,EACnE,OAAwB;QAE/B,OAAO,MAAM,IAAA,mCAAuB,EAAC,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;IACtF,CAAC;IAGK,AAAN,KAAK,CAAC,YAAY,CACyB,YAAoB,EACtD,OAAwB;QAE/B,OAAO,MAAM,IAAA,kCAAsB,EAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IAC5D,CAAC;CACF,CAAA;AA9BY,4DAAwB;AAI7B;IAHL,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,kDAAyB,EAAE;QAC9C,WAAW,EAAE,kFAAkF;KAChG,CAAC;IAEC,mBAAA,IAAA,kBAAG,EAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IACvC,mBAAA,IAAA,kBAAG,EAAC,cAAc,CAAC,CAAA;IACnB,mBAAA,IAAA,kBAAG,EAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,oBAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1D,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;2DAGP;AAGK;IADL,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,yCAAgB,EAAE,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC;IAEtF,mBAAA,IAAA,kBAAG,EAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IACvC,mBAAA,IAAA,kBAAG,EAAC,cAAc,CAAC,CAAA;IACnB,mBAAA,IAAA,kBAAG,EAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,oBAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1D,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;6DAGP;AAGK;IADL,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,yCAAgB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC;IAEtG,mBAAA,IAAA,kBAAG,EAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IACvC,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;4DAGP;mCA7BU,wBAAwB;IADpC,IAAA,uBAAQ,EAAC,yCAAgB,CAAC;GACd,wBAAwB,CA8BpC","sourcesContent":["import { Arg, Ctx, Mutation, Resolver } from 'type-graphql'\n\nimport { ScalarObject } from '@things-factory/shell'\n\nimport { ScenarioInstance, ScenarioInstanceRunResult } from './scenario-instance-type'\n\nimport {\n runScenario as controllerRunScenario,\n startScenario as controllerStartScenario,\n stopScenario as controllerStopScenario\n} from '../../controllers/scenario-controller'\n\n@Resolver(ScenarioInstance)\nexport class ScenarioInstanceMutation {\n @Mutation(returns => ScenarioInstanceRunResult, {\n description: 'To run new scenario instance and will return the result after the scenario stop.'\n })\n async runScenario(\n @Arg('instanceName', { nullable: true }) instanceName: string,\n @Arg('scenarioName') scenarioName: string,\n @Arg('variables', type => ScalarObject, { nullable: true }) variables: any,\n @Ctx() context: ResolverContext\n ): Promise<ScenarioInstanceRunResult> {\n return await controllerRunScenario(instanceName, scenarioName, variables, context)\n }\n\n @Mutation(returns => ScenarioInstance, { description: 'To start new scenario instance' })\n async startScenario(\n @Arg('instanceName', { nullable: true }) instanceName: string,\n @Arg('scenarioName') scenarioName: string,\n @Arg('variables', type => ScalarObject, { nullable: true }) variables: any,\n @Ctx() context: ResolverContext\n ): Promise<ScenarioInstance> {\n return await controllerStartScenario(instanceName, scenarioName, variables, context)\n }\n\n @Mutation(returns => ScenarioInstance, { nullable: true, description: 'To start new scenario instance' })\n async stopScenario(\n @Arg('instanceName', { nullable: true }) instanceName: string,\n @Ctx() context: ResolverContext\n ): Promise<ScenarioInstance | undefined> {\n return await controllerStopScenario(instanceName, context)\n }\n}\n"]}
|
@@ -1,12 +1,6 @@
|
|
1
1
|
import { ListParam } from '@things-factory/shell';
|
2
|
-
import { ScenarioInstance, ScenarioInstanceList
|
2
|
+
import { ScenarioInstance, ScenarioInstanceList } from './scenario-instance-type';
|
3
3
|
export declare class ScenarioInstanceQuery {
|
4
4
|
scenarioInstance(instanceName: string, context: ResolverContext): Promise<ScenarioInstance>;
|
5
5
|
scenarioInstances(params: ListParam, context: ResolverContext): Promise<ScenarioInstanceList>;
|
6
|
-
root(scenarioInstance: ScenarioInstance): Promise<ScenarioInstance>;
|
7
|
-
state(scenarioInstance: ScenarioInstance): Promise<ScenarioInstanceStatus>;
|
8
|
-
progress(scenarioInstance: ScenarioInstance): ScenarioInstanceProgress;
|
9
|
-
variables(scenarioInstance: ScenarioInstance): Promise<Object>;
|
10
|
-
data(scenarioInstance: ScenarioInstance): Promise<Object>;
|
11
|
-
timestamp(scenarioInstance: ScenarioInstance): Promise<Date>;
|
12
6
|
}
|
@@ -21,28 +21,6 @@ let ScenarioInstanceQuery = class ScenarioInstanceQuery {
|
|
21
21
|
total: items.length
|
22
22
|
};
|
23
23
|
}
|
24
|
-
async root(scenarioInstance) {
|
25
|
-
var _a;
|
26
|
-
return (_a = scenarioInstance.context) === null || _a === void 0 ? void 0 : _a.root;
|
27
|
-
}
|
28
|
-
async state(scenarioInstance) {
|
29
|
-
var _a;
|
30
|
-
return (_a = scenarioInstance.context) === null || _a === void 0 ? void 0 : _a.state;
|
31
|
-
}
|
32
|
-
progress(scenarioInstance) {
|
33
|
-
return scenarioInstance.calcProgress();
|
34
|
-
}
|
35
|
-
async variables(scenarioInstance) {
|
36
|
-
var _a;
|
37
|
-
return (_a = scenarioInstance.context) === null || _a === void 0 ? void 0 : _a.variables;
|
38
|
-
}
|
39
|
-
async data(scenarioInstance) {
|
40
|
-
var _a;
|
41
|
-
return (_a = scenarioInstance.context) === null || _a === void 0 ? void 0 : _a.data;
|
42
|
-
}
|
43
|
-
async timestamp(scenarioInstance) {
|
44
|
-
return new Date();
|
45
|
-
}
|
46
24
|
};
|
47
25
|
exports.ScenarioInstanceQuery = ScenarioInstanceQuery;
|
48
26
|
tslib_1.__decorate([
|
@@ -61,48 +39,6 @@ tslib_1.__decorate([
|
|
61
39
|
tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
|
62
40
|
tslib_1.__metadata("design:returntype", Promise)
|
63
41
|
], ScenarioInstanceQuery.prototype, "scenarioInstances", null);
|
64
|
-
tslib_1.__decorate([
|
65
|
-
(0, type_graphql_1.FieldResolver)(type => scenario_instance_type_1.ScenarioInstance),
|
66
|
-
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
67
|
-
tslib_1.__metadata("design:type", Function),
|
68
|
-
tslib_1.__metadata("design:paramtypes", [scenario_instance_type_1.ScenarioInstance]),
|
69
|
-
tslib_1.__metadata("design:returntype", Promise)
|
70
|
-
], ScenarioInstanceQuery.prototype, "root", null);
|
71
|
-
tslib_1.__decorate([
|
72
|
-
(0, type_graphql_1.FieldResolver)(type => scenario_instance_type_1.ScenarioInstanceStatus),
|
73
|
-
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
74
|
-
tslib_1.__metadata("design:type", Function),
|
75
|
-
tslib_1.__metadata("design:paramtypes", [scenario_instance_type_1.ScenarioInstance]),
|
76
|
-
tslib_1.__metadata("design:returntype", Promise)
|
77
|
-
], ScenarioInstanceQuery.prototype, "state", null);
|
78
|
-
tslib_1.__decorate([
|
79
|
-
(0, type_graphql_1.FieldResolver)(type => scenario_instance_type_1.ScenarioInstanceProgress),
|
80
|
-
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
81
|
-
tslib_1.__metadata("design:type", Function),
|
82
|
-
tslib_1.__metadata("design:paramtypes", [scenario_instance_type_1.ScenarioInstance]),
|
83
|
-
tslib_1.__metadata("design:returntype", scenario_instance_type_1.ScenarioInstanceProgress)
|
84
|
-
], ScenarioInstanceQuery.prototype, "progress", null);
|
85
|
-
tslib_1.__decorate([
|
86
|
-
(0, type_graphql_1.FieldResolver)(type => shell_1.ScalarObject),
|
87
|
-
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
88
|
-
tslib_1.__metadata("design:type", Function),
|
89
|
-
tslib_1.__metadata("design:paramtypes", [scenario_instance_type_1.ScenarioInstance]),
|
90
|
-
tslib_1.__metadata("design:returntype", Promise)
|
91
|
-
], ScenarioInstanceQuery.prototype, "variables", null);
|
92
|
-
tslib_1.__decorate([
|
93
|
-
(0, type_graphql_1.FieldResolver)(type => shell_1.ScalarObject),
|
94
|
-
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
95
|
-
tslib_1.__metadata("design:type", Function),
|
96
|
-
tslib_1.__metadata("design:paramtypes", [scenario_instance_type_1.ScenarioInstance]),
|
97
|
-
tslib_1.__metadata("design:returntype", Promise)
|
98
|
-
], ScenarioInstanceQuery.prototype, "data", null);
|
99
|
-
tslib_1.__decorate([
|
100
|
-
(0, type_graphql_1.FieldResolver)(),
|
101
|
-
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
102
|
-
tslib_1.__metadata("design:type", Function),
|
103
|
-
tslib_1.__metadata("design:paramtypes", [scenario_instance_type_1.ScenarioInstance]),
|
104
|
-
tslib_1.__metadata("design:returntype", Promise)
|
105
|
-
], ScenarioInstanceQuery.prototype, "timestamp", null);
|
106
42
|
exports.ScenarioInstanceQuery = ScenarioInstanceQuery = tslib_1.__decorate([
|
107
43
|
(0, type_graphql_1.Resolver)(scenario_instance_type_1.ScenarioInstance)
|
108
44
|
], ScenarioInstanceQuery);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scenario-instance-query.js","sourceRoot":"","sources":["../../../server/service/scenario-instance/scenario-instance-query.ts"],"names":[],"mappings":";;;;AAAA,+CAAmF;AAEnF,iDAA+D;AAE/D,yCAA6C;AAC7C,qEAKiC;AAG1B,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAE1B,AAAN,KAAK,CAAC,gBAAgB,CACC,YAAoB,EAClC,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,OAAO,uBAAc,CAAC,mBAAmB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACjE,CAAC;IAGK,AAAN,KAAK,CAAC,iBAAiB,CACI,MAAiB,EACnC,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,IAAI,iBAAiB,GAAG,uBAAc,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;QAEnE,0BAA0B;QAC1B,IAAI,KAAK,GAAG,iBAAiB,CAAA;QAE7B,OAAO;YACL,KAAK;YACL,KAAK,EAAE,KAAK,CAAC,MAAM;SACpB,CAAA;IACH,CAAC;
|
1
|
+
{"version":3,"file":"scenario-instance-query.js","sourceRoot":"","sources":["../../../server/service/scenario-instance/scenario-instance-query.ts"],"names":[],"mappings":";;;;AAAA,+CAAmF;AAEnF,iDAA+D;AAE/D,yCAA6C;AAC7C,qEAKiC;AAG1B,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAE1B,AAAN,KAAK,CAAC,gBAAgB,CACC,YAAoB,EAClC,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,OAAO,uBAAc,CAAC,mBAAmB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACjE,CAAC;IAGK,AAAN,KAAK,CAAC,iBAAiB,CACI,MAAiB,EACnC,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,IAAI,iBAAiB,GAAG,uBAAc,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;QAEnE,0BAA0B;QAC1B,IAAI,KAAK,GAAG,iBAAiB,CAAA;QAE7B,OAAO;YACL,KAAK;YACL,KAAK,EAAE,KAAK,CAAC,MAAM;SACpB,CAAA;IACH,CAAC;CACF,CAAA;AA5BY,sDAAqB;AAE1B;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,yCAAgB,EAAE,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC;IAEjF,mBAAA,IAAA,kBAAG,EAAC,cAAc,CAAC,CAAA;IACnB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;6DAKP;AAGK;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,6CAAoB,EAAE,EAAE,WAAW,EAAE,sCAAsC,EAAE,CAAC;IAE7F,mBAAA,IAAA,mBAAI,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,CAAC,CAAA;IACvB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAD2B,iBAAS;;8DAc3C;gCA3BU,qBAAqB;IADjC,IAAA,uBAAQ,EAAC,yCAAgB,CAAC;GACd,qBAAqB,CA4BjC","sourcesContent":["import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\n\nimport { ListParam, ScalarObject } from '@things-factory/shell'\n\nimport { ScenarioEngine } from '../../engine'\nimport {\n ScenarioInstance,\n ScenarioInstanceList,\n ScenarioInstanceProgress,\n ScenarioInstanceStatus\n} from './scenario-instance-type'\n\n@Resolver(ScenarioInstance)\nexport class ScenarioInstanceQuery {\n @Query(returns => ScenarioInstance, { description: 'To fetch a scenario instance' })\n async scenarioInstance(\n @Arg('instanceName') instanceName: string,\n @Ctx() context: ResolverContext\n ): Promise<ScenarioInstance> {\n const { domain } = context.state\n\n return ScenarioEngine.getScenarioInstance(domain, instanceName)\n }\n\n @Query(returns => ScenarioInstanceList, { description: 'To fetch multiple scenario instances' })\n async scenarioInstances(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<ScenarioInstanceList> {\n const { domain } = context.state\n\n var scenarioInstances = ScenarioEngine.getScenarioInstances(domain)\n\n /* IMPLEMENT-ME 검색 기능.. */\n var items = scenarioInstances\n\n return {\n items,\n total: items.length\n }\n }\n}\n"]}
|
@@ -2,6 +2,7 @@ import 'winston-daily-rotate-file';
|
|
2
2
|
import { Domain } from '@things-factory/shell';
|
3
3
|
import { User } from '@things-factory/auth-base';
|
4
4
|
import { Context } from '../../engine/types';
|
5
|
+
import { Step } from '../step/step-type';
|
5
6
|
export declare enum ScenarioInstanceStatus {
|
6
7
|
READY = "READY",
|
7
8
|
STARTED = "STARTED",
|
@@ -26,6 +27,16 @@ export declare class ScenarioInstanceState {
|
|
26
27
|
message: string;
|
27
28
|
timestamp: Date;
|
28
29
|
}
|
30
|
+
export declare class ScenarioInstanceRunResult {
|
31
|
+
scenarioName: string;
|
32
|
+
instanceName: string;
|
33
|
+
variables: any;
|
34
|
+
data: any;
|
35
|
+
result: any;
|
36
|
+
timestamp: Date;
|
37
|
+
message: string;
|
38
|
+
state: ScenarioInstanceStatus;
|
39
|
+
}
|
29
40
|
export declare class ScenarioInstance {
|
30
41
|
private subScenarioInstances;
|
31
42
|
context: Context;
|
@@ -33,14 +44,16 @@ export declare class ScenarioInstance {
|
|
33
44
|
user: User;
|
34
45
|
scenarioName: string;
|
35
46
|
instanceName: string;
|
36
|
-
root: ScenarioInstance;
|
37
|
-
state: ScenarioInstanceStatus;
|
38
|
-
progress: ScenarioInstanceProgress;
|
39
|
-
variables: any;
|
40
|
-
data: any;
|
47
|
+
get root(): ScenarioInstance;
|
48
|
+
get state(): ScenarioInstanceStatus;
|
49
|
+
get progress(): ScenarioInstanceProgress;
|
50
|
+
get variables(): any;
|
51
|
+
get data(): any;
|
41
52
|
result: any;
|
42
|
-
timestamp: Date;
|
53
|
+
get timestamp(): Date;
|
43
54
|
message: string;
|
55
|
+
private scenarioId;
|
56
|
+
private scenarioTtl;
|
44
57
|
private steps;
|
45
58
|
private rounds;
|
46
59
|
private lastStep;
|
@@ -49,12 +62,23 @@ export declare class ScenarioInstance {
|
|
49
62
|
addSubScenarioInstance(instance: ScenarioInstance): ScenarioInstance[];
|
50
63
|
getSubScenarioInstances(): ScenarioInstance[];
|
51
64
|
stopSubScenarios(): Promise<void>;
|
52
|
-
constructor(instanceName: any, { name: scenarioName, steps, domain: scenarioDomain }: {
|
53
|
-
|
54
|
-
|
55
|
-
|
65
|
+
constructor(instanceName: any, { id: scenarioId, ttl: scenarioTtl, name: scenarioName, steps, domain: scenarioDomain }: {
|
66
|
+
id: string;
|
67
|
+
ttl?: number;
|
68
|
+
name: string;
|
69
|
+
steps: Step[];
|
70
|
+
domain: Domain;
|
56
71
|
}, context?: any);
|
57
|
-
run(): Promise<
|
72
|
+
run(): Promise<{
|
73
|
+
scenarioName: string;
|
74
|
+
instanceName: string;
|
75
|
+
variables: any;
|
76
|
+
data: any;
|
77
|
+
result: any;
|
78
|
+
timestamp: Date;
|
79
|
+
message: string;
|
80
|
+
state: ScenarioInstanceStatus;
|
81
|
+
}>;
|
58
82
|
loadSubscenario(step: any, scenarioConfig: any, context: any): Promise<any>;
|
59
83
|
publishData(tag: any, data: any): void;
|
60
84
|
publishState(): void;
|