@things-factory/integration-base 7.0.1-rc.5 → 7.0.1-rc.7

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.
Files changed (43) hide show
  1. package/dist-server/engine/task/database-query.d.ts +1 -1
  2. package/dist-server/engine/task/database-query.js +16 -11
  3. package/dist-server/engine/task/database-query.js.map +1 -1
  4. package/dist-server/engine/task/graphql-mutate.d.ts +1 -1
  5. package/dist-server/engine/task/graphql-mutate.js +16 -11
  6. package/dist-server/engine/task/graphql-mutate.js.map +1 -1
  7. package/dist-server/engine/task/graphql-query.d.ts +1 -1
  8. package/dist-server/engine/task/graphql-query.js +16 -11
  9. package/dist-server/engine/task/graphql-query.js.map +1 -1
  10. package/dist-server/engine/task/http-get.d.ts +1 -1
  11. package/dist-server/engine/task/http-get.js +28 -12
  12. package/dist-server/engine/task/http-get.js.map +1 -1
  13. package/dist-server/engine/task/http-post.d.ts +1 -1
  14. package/dist-server/engine/task/http-post.js +22 -11
  15. package/dist-server/engine/task/http-post.js.map +1 -1
  16. package/dist-server/engine/task/local-graphql-mutate.d.ts +1 -1
  17. package/dist-server/engine/task/local-graphql-mutate.js +16 -10
  18. package/dist-server/engine/task/local-graphql-mutate.js.map +1 -1
  19. package/dist-server/engine/task/local-graphql-query.d.ts +1 -1
  20. package/dist-server/engine/task/local-graphql-query.js +16 -10
  21. package/dist-server/engine/task/local-graphql-query.js.map +1 -1
  22. package/dist-server/engine/task/log.d.ts +1 -1
  23. package/dist-server/engine/task/log.js +15 -11
  24. package/dist-server/engine/task/log.js.map +1 -1
  25. package/dist-server/engine/task/oracle-procedure.d.ts +1 -1
  26. package/dist-server/engine/task/oracle-procedure.js +18 -12
  27. package/dist-server/engine/task/oracle-procedure.js.map +1 -1
  28. package/dist-server/engine/task/script.d.ts +1 -1
  29. package/dist-server/engine/task/script.js +30 -18
  30. package/dist-server/engine/task/script.js.map +1 -1
  31. package/dist-server/service/index.d.ts +1 -1
  32. package/dist-server/tsconfig.tsbuildinfo +1 -1
  33. package/package.json +11 -11
  34. package/server/engine/task/database-query.ts +16 -11
  35. package/server/engine/task/graphql-mutate.ts +16 -12
  36. package/server/engine/task/graphql-query.ts +15 -12
  37. package/server/engine/task/http-get.ts +26 -12
  38. package/server/engine/task/http-post.ts +22 -11
  39. package/server/engine/task/local-graphql-mutate.ts +16 -10
  40. package/server/engine/task/local-graphql-query.ts +16 -10
  41. package/server/engine/task/log.ts +14 -11
  42. package/server/engine/task/oracle-procedure.ts +19 -13
  43. package/server/engine/task/script.ts +28 -18
@@ -1 +1 @@
1
- export {};
1
+ import 'ses';
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const vm2_1 = require("vm2");
4
3
  const env_1 = require("@things-factory/env");
5
4
  const utils_1 = require("@things-factory/utils");
6
5
  const connection_manager_1 = require("../connection-manager");
7
6
  const task_registry_1 = require("../task-registry");
7
+ require("ses");
8
8
  try {
9
9
  var oracledb = require('oracledb');
10
10
  }
@@ -30,19 +30,25 @@ async function OracleProcedure(step, context) {
30
30
  var { connection: connectionName, params } = step;
31
31
  var { code = '', parameters = [] } = params.parameters;
32
32
  var dbconnection = connection_manager_1.ConnectionManager.getConnectionInstanceByName(domain, connectionName);
33
- const vm = new vm2_1.VM({
34
- sandbox: {
35
- domain,
36
- user,
37
- lng,
38
- data,
39
- variables
40
- }
41
- });
42
33
  if (!code) {
43
34
  throw 'procedure code not defined';
44
35
  }
45
- code = vm.run('`' + code + '`');
36
+ const compartment = new Compartment({
37
+ domain,
38
+ user,
39
+ lng,
40
+ data,
41
+ variables,
42
+ console
43
+ });
44
+ let evalCode;
45
+ try {
46
+ evalCode = compartment.evaluate('`' + code + '`');
47
+ }
48
+ catch (err) {
49
+ throw new Error(`Failed to evaluate code: ${err.message}`);
50
+ }
51
+ code = evalCode;
46
52
  const procedureParameters = parameters &&
47
53
  parameters.reduce((sum, { name, val, dir, type, accessor, maxSize }) => {
48
54
  sum[name] = {
@@ -52,7 +58,7 @@ async function OracleProcedure(step, context) {
52
58
  const calculated = accessor ? (0, utils_1.access)(accessor, data) || val : val;
53
59
  if (calculated !== undefined) {
54
60
  sum[name].val =
55
- type == 'Date'
61
+ type === 'Date'
56
62
  ? new Date(calculated)
57
63
  : type == 'Number'
58
64
  ? Number(calculated)
@@ -1 +1 @@
1
- {"version":3,"file":"oracle-procedure.js","sourceRoot":"","sources":["../../../server/engine/task/oracle-procedure.ts"],"names":[],"mappings":"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","sourcesContent":["import { VM } from 'vm2'\nimport { logger } from '@things-factory/env'\nimport { access } from '@things-factory/utils'\nimport { ConnectionManager } from '../connection-manager'\nimport { TaskRegistry } from '../task-registry'\nimport { InputStep } from '../../service/step/step-type'\nimport { Context } from '../types'\n\ntry {\n var oracledb = require('oracledb')\n} catch (err) {\n logger.error('oracledb module loading failed', err)\n}\n\ntype ProcedureParameterType = {\n name: string\n dir: string\n type: string\n val?: any\n accessor?: string\n maxSize?: number\n}\n\ntype ValueType = {\n code?: string\n procedure?: string\n parameters?: ProcedureParameterType[]\n}\n\nconst TYPES = {\n Number: oracledb?.NUMBER,\n String: oracledb?.STRING,\n Date: oracledb?.DATE,\n Buffer: oracledb?.BUFFER,\n Blob: oracledb?.BLOB,\n Clob: oracledb?.CLOB,\n Cursor: oracledb?.CURSOR\n}\n\nconst DIR = {\n In: oracledb?.BIND_IN,\n Inout: oracledb?.BIND_INOUT,\n Out: oracledb?.BIND_OUT\n}\n\nasync function OracleProcedure(step: InputStep, context: Context) {\n var { domain, user, data, variables, lng } = context\n var { connection: connectionName, params } = step\n\n var { code = '', parameters = [] } = params.parameters as ValueType\n\n var dbconnection = ConnectionManager.getConnectionInstanceByName(domain, connectionName)\n\n const vm = new VM({\n sandbox: {\n domain,\n user,\n lng,\n data,\n variables\n }\n })\n\n if (!code) {\n throw 'procedure code not defined'\n }\n\n code = vm.run('`' + code + '`')\n\n const procedureParameters =\n parameters &&\n parameters.reduce((sum, { name, val, dir, type, accessor, maxSize }) => {\n sum[name] = {\n dir: DIR[dir],\n type: TYPES[type]\n }\n\n const calculated = accessor ? access(accessor, data) || val : val\n\n if (calculated !== undefined) {\n sum[name].val =\n type == 'Date'\n ? new Date(calculated)\n : type == 'Number'\n ? Number(calculated)\n : type == 'String'\n ? String(calculated)\n : calculated\n }\n\n if (maxSize) {\n sum[name].maxSize = maxSize\n }\n\n return sum\n }, {})\n\n const result = await dbconnection.execute(code, procedureParameters)\n\n return {\n data: result\n }\n}\n\nOracleProcedure.parameterSpec = [\n {\n type: 'procedure-parameters',\n name: 'parameters',\n label: ''\n }\n]\n\nOracleProcedure.help = 'integration/task/oracle-procedure'\n\nTaskRegistry.registerTaskHandler('oracle-procedure', OracleProcedure)\n"]}
1
+ {"version":3,"file":"oracle-procedure.js","sourceRoot":"","sources":["../../../server/engine/task/oracle-procedure.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '@things-factory/env'\nimport { access } from '@things-factory/utils'\nimport { ConnectionManager } from '../connection-manager'\nimport { TaskRegistry } from '../task-registry'\nimport { InputStep } from '../../service/step/step-type'\nimport { Context } from '../types'\nimport 'ses'\n\ntry {\n var oracledb = require('oracledb')\n} catch (err) {\n logger.error('oracledb module loading failed', err)\n}\n\ntype ProcedureParameterType = {\n name: string\n dir: string\n type: string\n val?: any\n accessor?: string\n maxSize?: number\n}\n\ntype ValueType = {\n code?: string\n procedure?: string\n parameters?: ProcedureParameterType[]\n}\n\nconst TYPES = {\n Number: oracledb?.NUMBER,\n String: oracledb?.STRING,\n Date: oracledb?.DATE,\n Buffer: oracledb?.BUFFER,\n Blob: oracledb?.BLOB,\n Clob: oracledb?.CLOB,\n Cursor: oracledb?.CURSOR\n}\n\nconst DIR = {\n In: oracledb?.BIND_IN,\n Inout: oracledb?.BIND_INOUT,\n Out: oracledb?.BIND_OUT\n}\n\nasync function OracleProcedure(step: InputStep, context: Context) {\n var { domain, user, data, variables, lng } = context\n var { connection: connectionName, params } = step\n\n var { code = '', parameters = [] } = params.parameters as ValueType\n\n var dbconnection = ConnectionManager.getConnectionInstanceByName(domain, connectionName)\n\n if (!code) {\n throw 'procedure code not defined'\n }\n\n const compartment = new Compartment({\n domain,\n user,\n lng,\n data,\n variables,\n console\n })\n\n let evalCode\n try {\n evalCode = compartment.evaluate('`' + code + '`')\n } catch (err) {\n throw new Error(`Failed to evaluate code: ${err.message}`)\n }\n\n code = evalCode\n\n const procedureParameters =\n parameters &&\n parameters.reduce((sum, { name, val, dir, type, accessor, maxSize }) => {\n sum[name] = {\n dir: DIR[dir],\n type: TYPES[type]\n }\n\n const calculated = accessor ? access(accessor, data) || val : val\n\n if (calculated !== undefined) {\n sum[name].val =\n type === 'Date'\n ? new Date(calculated)\n : type == 'Number'\n ? Number(calculated)\n : type == 'String'\n ? String(calculated)\n : calculated\n }\n\n if (maxSize) {\n sum[name].maxSize = maxSize\n }\n\n return sum\n }, {})\n\n const result = await dbconnection.execute(code, procedureParameters)\n\n return {\n data: result\n }\n}\n\nOracleProcedure.parameterSpec = [\n {\n type: 'procedure-parameters',\n name: 'parameters',\n label: ''\n }\n]\n\nOracleProcedure.help = 'integration/task/oracle-procedure'\n\nTaskRegistry.registerTaskHandler('oracle-procedure', OracleProcedure)\n"]}
@@ -1 +1 @@
1
- export {};
1
+ import 'ses';
@@ -1,27 +1,39 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const task_registry_1 = require("../task-registry");
4
- const vm2_1 = require("vm2");
4
+ require("ses");
5
5
  async function Script(step, context) {
6
- var { params: { script } } = step;
6
+ const { params: { script } } = step;
7
7
  const { domain, user, data, variables, lng, logger } = context;
8
- const vm = new vm2_1.NodeVM({
9
- timeout: 5000,
10
- wrapper: 'none',
11
- console: 'inherit',
12
- sandbox: {
13
- domain,
14
- user,
15
- lng,
16
- logger,
17
- data,
18
- variables
19
- }
8
+ const compartment = new Compartment({
9
+ domain,
10
+ user,
11
+ data,
12
+ variables,
13
+ logger,
14
+ lng,
15
+ console,
16
+ Math,
17
+ JSON,
18
+ Date,
19
+ setTimeout,
20
+ setInterval,
21
+ clearTimeout,
22
+ clearInterval
20
23
  });
21
- var result = await vm.run(`return (async () => {\n${script}\n})()`);
22
- return {
23
- data: result
24
- };
24
+ const scriptSource = `
25
+ (async () => {
26
+ ${script}
27
+ })();
28
+ `;
29
+ try {
30
+ return {
31
+ data: await compartment.evaluate(scriptSource)
32
+ };
33
+ }
34
+ catch (err) {
35
+ throw new Error(`Script execution failed: ${err.message}`);
36
+ }
25
37
  }
26
38
  Script.parameterSpec = [
27
39
  {
@@ -1 +1 @@
1
- {"version":3,"file":"script.js","sourceRoot":"","sources":["../../../server/engine/task/script.ts"],"names":[],"mappings":";;AAAA,oDAA+C;AAC/C,6BAA4B;AAK5B,KAAK,UAAU,MAAM,CAAC,IAAe,EAAE,OAAgB;IACrD,IAAI,EACF,MAAM,EAAE,EAAE,MAAM,EAAE,EACnB,GAAG,IAAI,CAAA;IAER,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAE9D,MAAM,EAAE,GAAG,IAAI,YAAM,CAAC;QACpB,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,MAAM;QACf,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE;YACP,MAAM;YACN,IAAI;YACJ,GAAG;YACH,MAAM;YACN,IAAI;YACJ,SAAS;SACV;KACF,CAAC,CAAA;IAEF,IAAI,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,0BAA0B,MAAM,QAAQ,CAAC,CAAA;IAEnE,OAAO;QACL,IAAI,EAAE,MAAM;KACb,CAAA;AACH,CAAC;AAED,MAAM,CAAC,aAAa,GAAG;IACrB;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE;YACR,QAAQ,EAAE,YAAY;YACtB,eAAe,EAAE,IAAI;SACtB;QACD,MAAM,EAAE;YACN,IAAI,EAAE,GAAG;SACV;KACF;CACF,CAAA;AAED,MAAM,CAAC,aAAa,GAAG,IAAI,CAAA;AAC3B,MAAM,CAAC,IAAI,GAAG,yBAAyB,CAAA;AAEvC,4BAAY,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA","sourcesContent":["import { TaskRegistry } from '../task-registry'\nimport { NodeVM } from 'vm2'\n\nimport { InputStep } from '../../service/step/step-type'\nimport { Context } from '../types'\n\nasync function Script(step: InputStep, context: Context) {\n var {\n params: { script }\n } = step\n\n const { domain, user, data, variables, lng, logger } = context\n\n const vm = new NodeVM({\n timeout: 5000,\n wrapper: 'none',\n console: 'inherit',\n sandbox: {\n domain,\n user,\n lng,\n logger,\n data,\n variables\n }\n })\n\n var result = await vm.run(`return (async () => {\\n${script}\\n})()`)\n\n return {\n data: result\n }\n}\n\nScript.parameterSpec = [\n {\n type: 'textarea',\n name: 'script',\n label: 'script',\n property: {\n language: 'javascript',\n showLineNumbers: true\n },\n styles: {\n flex: '1'\n }\n }\n]\n\nScript.connectorFree = true\nScript.help = 'integration/task/script'\n\nTaskRegistry.registerTaskHandler('script', Script)\n"]}
1
+ {"version":3,"file":"script.js","sourceRoot":"","sources":["../../../server/engine/task/script.ts"],"names":[],"mappings":";;AAAA,oDAA+C;AAG/C,eAAY;AAEZ,KAAK,UAAU,MAAM,CAAC,IAAe,EAAE,OAAgB;IACrD,MAAM,EACJ,MAAM,EAAE,EAAE,MAAM,EAAE,EACnB,GAAG,IAAI,CAAA;IAER,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAE9D,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC;QAClC,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,SAAS;QACT,MAAM;QACN,GAAG;QACH,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,UAAU;QACV,WAAW;QACX,YAAY;QACZ,aAAa;KACd,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG;;QAEf,MAAM;;GAEX,CAAA;IAED,IAAI,CAAC;QACH,OAAO;YACL,IAAI,EAAE,MAAM,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC;SAC/C,CAAA;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;IAC5D,CAAC;AACH,CAAC;AAED,MAAM,CAAC,aAAa,GAAG;IACrB;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE;YACR,QAAQ,EAAE,YAAY;YACtB,eAAe,EAAE,IAAI;SACtB;QACD,MAAM,EAAE;YACN,IAAI,EAAE,GAAG;SACV;KACF;CACF,CAAA;AAED,MAAM,CAAC,aAAa,GAAG,IAAI,CAAA;AAC3B,MAAM,CAAC,IAAI,GAAG,yBAAyB,CAAA;AAEvC,4BAAY,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA","sourcesContent":["import { TaskRegistry } from '../task-registry'\nimport { InputStep } from '../../service/step/step-type'\nimport { Context } from '../types'\nimport 'ses'\n\nasync function Script(step: InputStep, context: Context) {\n const {\n params: { script }\n } = step\n\n const { domain, user, data, variables, lng, logger } = context\n\n const compartment = new Compartment({\n domain,\n user,\n data,\n variables,\n logger,\n lng,\n console,\n Math,\n JSON,\n Date,\n setTimeout,\n setInterval,\n clearTimeout,\n clearInterval\n })\n\n const scriptSource = `\n (async () => {\n ${script}\n })();\n `\n\n try {\n return {\n data: await compartment.evaluate(scriptSource)\n }\n } catch (err) {\n throw new Error(`Script execution failed: ${err.message}`)\n }\n}\n\nScript.parameterSpec = [\n {\n type: 'textarea',\n name: 'script',\n label: 'script',\n property: {\n language: 'javascript',\n showLineNumbers: true\n },\n styles: {\n flex: '1'\n }\n }\n]\n\nScript.connectorFree = true\nScript.help = 'integration/task/script'\n\nTaskRegistry.registerTaskHandler('script', Script)\n"]}
@@ -11,7 +11,7 @@ export * from './payload-log/payload-log';
11
11
  export * from './state-register/state-register';
12
12
  export declare const entities: any[];
13
13
  export declare const schema: {
14
- resolverClasses: (typeof import("./connection/connection-query").ConnectionQuery | typeof import("./connection/connection-mutation").ConnectionMutation | typeof import("./connection/connection-subscription").ConnectionSubscription | typeof import("./connector/connector-query").ConnectorQuery | typeof import("./scenario/scenario-query").ScenarioQuery | typeof import("./scenario/scenario-mutation").ScenarioMutation | typeof import("./scenario-instance/scenario-instance-query").ScenarioInstanceQuery | typeof import("./scenario-instance/scenario-instance-mutation").ScenarioInstanceMutation | typeof import("./scenario-instance/scenario-instance-subscription").ScenarioInstanceSubscription | typeof import("./scenario-queue/scenario-queue-subscription").ScenarioQueueSubscription | typeof import("./step/step-query").StepQuery | typeof import("./step/step-mutation").StepMutation | typeof import("./task-type/task-type-query").TaskTypeQuery | typeof import("./analysis/analysis-query").IntegrationAnalysisQuery | typeof import("./payload-log/payload-log-query").PayloadLogQuery | typeof import("./payload-log/payload-log-mutation").PayloadLogMutation | typeof import("./state-register/state-register-query").StateRegisterQuery | typeof import("./state-register/state-register-mutation").StateRegisterMutation)[];
14
+ resolverClasses: (typeof import("./connection/connection-query").ConnectionQuery | typeof import("./connection/connection-mutation").ConnectionMutation | typeof import("./connection/connection-subscription").ConnectionSubscription | typeof import("./connector/connector-query").ConnectorQuery | typeof import("./scenario/scenario-query").ScenarioQuery | typeof import("./scenario/scenario-mutation").ScenarioMutation | typeof import("./scenario-instance/scenario-instance-query").ScenarioInstanceQuery | typeof import("./scenario-instance/scenario-instance-mutation").ScenarioInstanceMutation | typeof import("./scenario-instance/scenario-instance-subscription").ScenarioInstanceSubscription | typeof import("./scenario-queue/scenario-queue-subscription").ScenarioQueueSubscription | typeof import("./step/step-query").StepQuery | typeof import("./step/step-mutation").StepMutation | typeof import("./task-type/task-type-query").TaskTypeQuery | typeof import("./payload-log/payload-log-query").PayloadLogQuery | typeof import("./payload-log/payload-log-mutation").PayloadLogMutation | typeof import("./state-register/state-register-query").StateRegisterQuery | typeof import("./state-register/state-register-mutation").StateRegisterMutation | typeof import("./analysis/analysis-query").IntegrationAnalysisQuery)[];
15
15
  };
16
16
  export { PayloadType } from './payload-log/payload-log';
17
17
  export { createPayloadLog } from './payload-log/payload-log-mutation';