@things-factory/integration-base 10.0.0-zeta.3 → 10.0.0

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 (65) hide show
  1. package/dist-server/controllers/scenario-controller.d.ts +2 -2
  2. package/dist-server/controllers/scenario-controller.js +19 -8
  3. package/dist-server/controllers/scenario-controller.js.map +1 -1
  4. package/dist-server/engine/analyzer/analyze-integration.js +6 -2
  5. package/dist-server/engine/analyzer/analyze-integration.js.map +1 -1
  6. package/dist-server/engine/connector/operato-connector.js +4 -1
  7. package/dist-server/engine/connector/operato-connector.js.map +1 -1
  8. package/dist-server/engine/scenario-engine.js +7 -2
  9. package/dist-server/engine/scenario-engine.js.map +1 -1
  10. package/dist-server/engine/task/pick-pending-scenario.js +6 -1
  11. package/dist-server/engine/task/pick-pending-scenario.js.map +1 -1
  12. package/dist-server/engine/task/stop-scenario.js +1 -1
  13. package/dist-server/engine/task/stop-scenario.js.map +1 -1
  14. package/dist-server/engine/task/sub-scenario.js +6 -1
  15. package/dist-server/engine/task/sub-scenario.js.map +1 -1
  16. package/dist-server/engine/task/switch-range-scenario.js +6 -1
  17. package/dist-server/engine/task/switch-range-scenario.js.map +1 -1
  18. package/dist-server/engine/task/switch-scenario.js +6 -1
  19. package/dist-server/engine/task/switch-scenario.js.map +1 -1
  20. package/dist-server/routers/scenario-schedule-callback-router.js +4 -1
  21. package/dist-server/routers/scenario-schedule-callback-router.js.map +1 -1
  22. package/dist-server/routers/scenario-view-router.js +4 -3
  23. package/dist-server/routers/scenario-view-router.js.map +1 -1
  24. package/dist-server/service/index.d.ts +4 -1
  25. package/dist-server/service/index.js +4 -1
  26. package/dist-server/service/index.js.map +1 -1
  27. package/dist-server/service/scenario/event-subscriber.d.ts +22 -0
  28. package/dist-server/service/scenario/event-subscriber.js +49 -0
  29. package/dist-server/service/scenario/event-subscriber.js.map +1 -0
  30. package/dist-server/service/scenario/index.d.ts +6 -2
  31. package/dist-server/service/scenario/index.js +7 -3
  32. package/dist-server/service/scenario/index.js.map +1 -1
  33. package/dist-server/service/scenario/resolve-steps.d.ts +43 -0
  34. package/dist-server/service/scenario/resolve-steps.js +101 -0
  35. package/dist-server/service/scenario/resolve-steps.js.map +1 -0
  36. package/dist-server/service/scenario/scenario-history.d.ts +44 -0
  37. package/dist-server/service/scenario/scenario-history.js +167 -0
  38. package/dist-server/service/scenario/scenario-history.js.map +1 -0
  39. package/dist-server/service/scenario/scenario-mutation.d.ts +2 -0
  40. package/dist-server/service/scenario/scenario-mutation.js +150 -36
  41. package/dist-server/service/scenario/scenario-mutation.js.map +1 -1
  42. package/dist-server/service/scenario/scenario-query.js +8 -14
  43. package/dist-server/service/scenario/scenario-query.js.map +1 -1
  44. package/dist-server/service/scenario/scenario-version-diff.d.ts +8 -0
  45. package/dist-server/service/scenario/scenario-version-diff.js +107 -0
  46. package/dist-server/service/scenario/scenario-version-diff.js.map +1 -0
  47. package/dist-server/service/scenario/scenario-version-query.d.ts +11 -0
  48. package/dist-server/service/scenario/scenario-version-query.js +135 -0
  49. package/dist-server/service/scenario/scenario-version-query.js.map +1 -0
  50. package/dist-server/service/scenario/scenario-version-type.d.ts +18 -0
  51. package/dist-server/service/scenario/scenario-version-type.js +79 -0
  52. package/dist-server/service/scenario/scenario-version-type.js.map +1 -0
  53. package/dist-server/service/scenario/scenario.d.ts +23 -0
  54. package/dist-server/service/scenario/scenario.js +18 -3
  55. package/dist-server/service/scenario/scenario.js.map +1 -1
  56. package/dist-server/service/scenario-instance/scenario-instance-mutation.d.ts +2 -2
  57. package/dist-server/service/scenario-instance/scenario-instance-mutation.js +8 -6
  58. package/dist-server/service/scenario-instance/scenario-instance-mutation.js.map +1 -1
  59. package/dist-server/service/step/step-mutation.js +26 -13
  60. package/dist-server/service/step/step-mutation.js.map +1 -1
  61. package/dist-server/tsconfig.tsbuildinfo +1 -1
  62. package/dist-server/utils/version-text-column.d.ts +16 -0
  63. package/dist-server/utils/version-text-column.js +67 -0
  64. package/dist-server/utils/version-text-column.js.map +1 -0
  65. package/package.json +12 -11
@@ -0,0 +1,16 @@
1
+ import { ColumnOptions } from 'typeorm';
2
+ /**
3
+ * 버전 스냅샷/모델을 저장하기 위한 대용량 텍스트 컬럼 옵션.
4
+ *
5
+ * board-service 의 `Board.model` / `BoardHistory.model` 과 동일한 멀티 DB 분기를 따른다.
6
+ * (mysql/mariadb=longtext, oracle=clob, mssql=nvarchar(MAX), 그외=varchar)
7
+ *
8
+ * JSON 값을 문자열로 직렬화해 저장하고 읽을 때 파싱하는 transformer 를 함께 제공한다.
9
+ * varchar/longtext 등 텍스트 컬럼이므로 DB 종류와 무관하게 동일하게 동작한다.
10
+ */
11
+ export declare function jsonTextColumn(options?: ColumnOptions): ColumnOptions;
12
+ /**
13
+ * 대용량 텍스트(문자열 그대로) 컬럼 옵션 — comment 등 순수 문자열용.
14
+ * transformer 없이 텍스트 타입만 멀티 DB 분기.
15
+ */
16
+ export declare function largeTextColumn(options?: ColumnOptions): ColumnOptions;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.jsonTextColumn = jsonTextColumn;
4
+ exports.largeTextColumn = largeTextColumn;
5
+ const env_1 = require("@things-factory/env");
6
+ const ORMCONFIG = env_1.config.get('ormconfig', {});
7
+ const DATABASE_TYPE = ORMCONFIG.type;
8
+ /**
9
+ * 버전 스냅샷/모델을 저장하기 위한 대용량 텍스트 컬럼 옵션.
10
+ *
11
+ * board-service 의 `Board.model` / `BoardHistory.model` 과 동일한 멀티 DB 분기를 따른다.
12
+ * (mysql/mariadb=longtext, oracle=clob, mssql=nvarchar(MAX), 그외=varchar)
13
+ *
14
+ * JSON 값을 문자열로 직렬화해 저장하고 읽을 때 파싱하는 transformer 를 함께 제공한다.
15
+ * varchar/longtext 등 텍스트 컬럼이므로 DB 종류와 무관하게 동일하게 동작한다.
16
+ */
17
+ function jsonTextColumn(options = {}) {
18
+ return {
19
+ nullable: true,
20
+ type: DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'
21
+ ? 'longtext'
22
+ : DATABASE_TYPE == 'oracle'
23
+ ? 'clob'
24
+ : DATABASE_TYPE == 'mssql'
25
+ ? 'nvarchar'
26
+ : 'varchar',
27
+ length: DATABASE_TYPE == 'mssql' ? 'MAX' : undefined,
28
+ transformer: {
29
+ to: (value) => (value === undefined || value === null ? value : JSON.stringify(value)),
30
+ from: (value) => {
31
+ if (value === undefined || value === null) {
32
+ return value;
33
+ }
34
+ if (typeof value !== 'string') {
35
+ // 일부 드라이버(simple-json 등)는 이미 객체로 돌려줄 수 있음
36
+ return value;
37
+ }
38
+ try {
39
+ return JSON.parse(value);
40
+ }
41
+ catch (e) {
42
+ return null;
43
+ }
44
+ }
45
+ },
46
+ ...options
47
+ };
48
+ }
49
+ /**
50
+ * 대용량 텍스트(문자열 그대로) 컬럼 옵션 — comment 등 순수 문자열용.
51
+ * transformer 없이 텍스트 타입만 멀티 DB 분기.
52
+ */
53
+ function largeTextColumn(options = {}) {
54
+ return {
55
+ nullable: true,
56
+ type: DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'
57
+ ? 'longtext'
58
+ : DATABASE_TYPE == 'oracle'
59
+ ? 'clob'
60
+ : DATABASE_TYPE == 'mssql'
61
+ ? 'nvarchar'
62
+ : 'varchar',
63
+ length: DATABASE_TYPE == 'mssql' ? 'MAX' : undefined,
64
+ ...options
65
+ };
66
+ }
67
+ //# sourceMappingURL=version-text-column.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-text-column.js","sourceRoot":"","sources":["../../server/utils/version-text-column.ts"],"names":[],"mappings":";;AAeA,wCA+BC;AAMD,0CAcC;AAjED,6CAA4C;AAE5C,MAAM,SAAS,GAAG,YAAM,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;AAC7C,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAA;AAEpC;;;;;;;;GAQG;AACH,SAAgB,cAAc,CAAC,UAAyB,EAAE;IACxD,OAAO;QACL,QAAQ,EAAE,IAAI;QACd,IAAI,EACF,aAAa,IAAI,OAAO,IAAI,aAAa,IAAI,SAAS;YACpD,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,aAAa,IAAI,QAAQ;gBACzB,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,aAAa,IAAI,OAAO;oBACxB,CAAC,CAAC,UAAU;oBACZ,CAAC,CAAC,SAAS;QACnB,MAAM,EAAE,aAAa,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QACpD,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,KAAU,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC3F,IAAI,EAAE,CAAC,KAAU,EAAE,EAAE;gBACnB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBAC1C,OAAO,KAAK,CAAA;gBACd,CAAC;gBACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC9B,0CAA0C;oBAC1C,OAAO,KAAK,CAAA;gBACd,CAAC;gBACD,IAAI,CAAC;oBACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;gBAC1B,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,IAAI,CAAA;gBACb,CAAC;YACH,CAAC;SACF;QACD,GAAG,OAAO;KACX,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,eAAe,CAAC,UAAyB,EAAE;IACzD,OAAO;QACL,QAAQ,EAAE,IAAI;QACd,IAAI,EACF,aAAa,IAAI,OAAO,IAAI,aAAa,IAAI,SAAS;YACpD,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,aAAa,IAAI,QAAQ;gBACzB,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,aAAa,IAAI,OAAO;oBACxB,CAAC,CAAC,UAAU;oBACZ,CAAC,CAAC,SAAS;QACnB,MAAM,EAAE,aAAa,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QACpD,GAAG,OAAO;KACX,CAAA;AACH,CAAC","sourcesContent":["import { ColumnOptions } from 'typeorm'\nimport { config } from '@things-factory/env'\n\nconst ORMCONFIG = config.get('ormconfig', {})\nconst DATABASE_TYPE = ORMCONFIG.type\n\n/**\n * 버전 스냅샷/모델을 저장하기 위한 대용량 텍스트 컬럼 옵션.\n *\n * board-service 의 `Board.model` / `BoardHistory.model` 과 동일한 멀티 DB 분기를 따른다.\n * (mysql/mariadb=longtext, oracle=clob, mssql=nvarchar(MAX), 그외=varchar)\n *\n * JSON 값을 문자열로 직렬화해 저장하고 읽을 때 파싱하는 transformer 를 함께 제공한다.\n * varchar/longtext 등 텍스트 컬럼이므로 DB 종류와 무관하게 동일하게 동작한다.\n */\nexport function jsonTextColumn(options: ColumnOptions = {}): ColumnOptions {\n return {\n nullable: true,\n type:\n DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'\n ? 'longtext'\n : DATABASE_TYPE == 'oracle'\n ? 'clob'\n : DATABASE_TYPE == 'mssql'\n ? 'nvarchar'\n : 'varchar',\n length: DATABASE_TYPE == 'mssql' ? 'MAX' : undefined,\n transformer: {\n to: (value: any) => (value === undefined || value === null ? value : JSON.stringify(value)),\n from: (value: any) => {\n if (value === undefined || value === null) {\n return value\n }\n if (typeof value !== 'string') {\n // 일부 드라이버(simple-json 등)는 이미 객체로 돌려줄 수 있음\n return value\n }\n try {\n return JSON.parse(value)\n } catch (e) {\n return null\n }\n }\n },\n ...options\n }\n}\n\n/**\n * 대용량 텍스트(문자열 그대로) 컬럼 옵션 — comment 등 순수 문자열용.\n * transformer 없이 텍스트 타입만 멀티 DB 분기.\n */\nexport function largeTextColumn(options: ColumnOptions = {}): ColumnOptions {\n return {\n nullable: true,\n type:\n DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'\n ? 'longtext'\n : DATABASE_TYPE == 'oracle'\n ? 'clob'\n : DATABASE_TYPE == 'mssql'\n ? 'nvarchar'\n : 'varchar',\n length: DATABASE_TYPE == 'mssql' ? 'MAX' : undefined,\n ...options\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/integration-base",
3
- "version": "10.0.0-zeta.3",
3
+ "version": "10.0.0",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.ts",
6
6
  "things-factory": true,
@@ -31,15 +31,16 @@
31
31
  },
32
32
  "dependencies": {
33
33
  "@apollo/client": "^3.6.9",
34
- "@operato/moment-timezone-es": "^10.0.0-beta.1",
35
- "@things-factory/api": "^10.0.0-zeta.3",
36
- "@things-factory/auth-base": "^10.0.0-zeta.3",
37
- "@things-factory/cache-service": "^10.0.0-zeta.3",
38
- "@things-factory/env": "^10.0.0-zeta.1",
39
- "@things-factory/oauth2-client": "^10.0.0-zeta.3",
40
- "@things-factory/scheduler-client": "^10.0.0-zeta.3",
41
- "@things-factory/shell": "^10.0.0-zeta.3",
42
- "@things-factory/utils": "^10.0.0-zeta.1",
34
+ "@operato/moment-timezone-es": "^10.0.0",
35
+ "@operato/typeorm-history": "^10.0.0-beta.64",
36
+ "@things-factory/api": "^10.0.0",
37
+ "@things-factory/auth-base": "^10.0.0",
38
+ "@things-factory/cache-service": "^10.0.0",
39
+ "@things-factory/env": "^10.0.0",
40
+ "@things-factory/oauth2-client": "^10.0.0",
41
+ "@things-factory/scheduler-client": "^10.0.0",
42
+ "@things-factory/shell": "^10.0.0",
43
+ "@things-factory/utils": "^10.0.0",
43
44
  "async-mqtt": "^2.5.0",
44
45
  "chance": "^1.1.11",
45
46
  "cross-fetch": "^3.0.4",
@@ -48,5 +49,5 @@
48
49
  "promise-socket": "^7.0.0",
49
50
  "readline": "^1.3.0"
50
51
  },
51
- "gitHead": "2d998abaea0493b286bba8202c0f17083c518089"
52
+ "gitHead": "b20fa0816c33727f7ec327e0455687d3be620c58"
52
53
  }