@things-factory/integration-base 10.0.0-beta.9 → 10.0.0-beta.90
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.js +8 -6
- package/dist-server/controllers/scenario-controller.js.map +1 -1
- package/dist-server/engine/connector/operato-connector.js +17 -6
- package/dist-server/engine/connector/operato-connector.js.map +1 -1
- package/dist-server/engine/connector/socket-server.js +12 -2
- package/dist-server/engine/connector/socket-server.js.map +1 -1
- package/dist-server/engine/task/socket-listener.js +29 -9
- package/dist-server/engine/task/socket-listener.js.map +1 -1
- package/dist-server/engine/task/utils/headless-request-with-recovery.js +29 -26
- package/dist-server/engine/task/utils/headless-request-with-recovery.js.map +1 -1
- package/dist-server/service/connection/connection-mutation.js +25 -26
- package/dist-server/service/connection/connection-mutation.js.map +1 -1
- package/dist-server/service/connection/connection-query.js +11 -3
- package/dist-server/service/connection/connection-query.js.map +1 -1
- package/dist-server/service/connection/connection-subscription.js +9 -2
- package/dist-server/service/connection/connection-subscription.js.map +1 -1
- package/dist-server/service/scenario/scenario-query.js +9 -2
- package/dist-server/service/scenario/scenario-query.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/dist-server/utils/domain-inheritance.d.ts +2 -0
- package/dist-server/utils/domain-inheritance.js +31 -0
- package/dist-server/utils/domain-inheritance.js.map +1 -0
- package/package.json +10 -10
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDomainIdsWithAncestors = getDomainIdsWithAncestors;
|
|
4
|
+
const shell_1 = require("@things-factory/shell");
|
|
5
|
+
/**
|
|
6
|
+
* 멀티테넌트 도메인 다단계 상속 헬퍼.
|
|
7
|
+
*
|
|
8
|
+
* 현재 도메인부터 루트까지의 ancestor id 를 closest-first 순서로 반환.
|
|
9
|
+
* 사용처:
|
|
10
|
+
* - list 쿼리: `andWhere('alias.domain IN (:...ids)')`
|
|
11
|
+
* - 단건 fetch: `In([...ids])` + 결과 중 가장 가까운 도메인 선택
|
|
12
|
+
* - fallback chain: ids 를 순서대로 조회하여 first hit 사용
|
|
13
|
+
*
|
|
14
|
+
* 순환 가드 + 최대 깊이 10 안전장치.
|
|
15
|
+
*/
|
|
16
|
+
const MAX_ANCESTOR_DEPTH = 10;
|
|
17
|
+
async function getDomainIdsWithAncestors(domain) {
|
|
18
|
+
const ids = [domain.id];
|
|
19
|
+
const seen = new Set([domain.id]);
|
|
20
|
+
let parentId = domain.parentId;
|
|
21
|
+
let depth = 0;
|
|
22
|
+
while (parentId && !seen.has(parentId) && depth < MAX_ANCESTOR_DEPTH) {
|
|
23
|
+
seen.add(parentId);
|
|
24
|
+
ids.push(parentId);
|
|
25
|
+
const parent = await (0, shell_1.getRepository)(shell_1.Domain).findOne({ where: { id: parentId } });
|
|
26
|
+
parentId = parent?.parentId;
|
|
27
|
+
depth++;
|
|
28
|
+
}
|
|
29
|
+
return ids;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=domain-inheritance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain-inheritance.js","sourceRoot":"","sources":["../../server/utils/domain-inheritance.ts"],"names":[],"mappings":";;AAeA,8DAiBC;AAhCD,iDAA6D;AAE7D;;;;;;;;;;GAUG;AACH,MAAM,kBAAkB,GAAG,EAAE,CAAA;AAEtB,KAAK,UAAU,yBAAyB,CAAC,MAAc;IAC5D,MAAM,GAAG,GAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACjC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;IAEzC,IAAI,QAAQ,GAAuB,MAAM,CAAC,QAAQ,CAAA;IAClD,IAAI,KAAK,GAAG,CAAC,CAAA;IAEb,OAAO,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,GAAG,kBAAkB,EAAE,CAAC;QACrE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAClB,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAElB,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAA;QAC/E,QAAQ,GAAG,MAAM,EAAE,QAAQ,CAAA;QAC3B,KAAK,EAAE,CAAA;IACT,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC","sourcesContent":["import { Domain, getRepository } from '@things-factory/shell'\n\n/**\n * 멀티테넌트 도메인 다단계 상속 헬퍼.\n *\n * 현재 도메인부터 루트까지의 ancestor id 를 closest-first 순서로 반환.\n * 사용처:\n * - list 쿼리: `andWhere('alias.domain IN (:...ids)')`\n * - 단건 fetch: `In([...ids])` + 결과 중 가장 가까운 도메인 선택\n * - fallback chain: ids 를 순서대로 조회하여 first hit 사용\n *\n * 순환 가드 + 최대 깊이 10 안전장치.\n */\nconst MAX_ANCESTOR_DEPTH = 10\n\nexport async function getDomainIdsWithAncestors(domain: Domain): Promise<string[]> {\n const ids: string[] = [domain.id]\n const seen = new Set<string>([domain.id])\n\n let parentId: string | undefined = domain.parentId\n let depth = 0\n\n while (parentId && !seen.has(parentId) && depth < MAX_ANCESTOR_DEPTH) {\n seen.add(parentId)\n ids.push(parentId)\n\n const parent = await getRepository(Domain).findOne({ where: { id: parentId } })\n parentId = parent?.parentId\n depth++\n }\n\n return ids\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@things-factory/integration-base",
|
|
3
|
-
"version": "10.0.0-beta.
|
|
3
|
+
"version": "10.0.0-beta.90",
|
|
4
4
|
"main": "dist-server/index.js",
|
|
5
5
|
"browser": "client/index.ts",
|
|
6
6
|
"things-factory": true,
|
|
@@ -32,14 +32,14 @@
|
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@apollo/client": "^3.6.9",
|
|
34
34
|
"@operato/moment-timezone-es": "^10.0.0-beta.1",
|
|
35
|
-
"@things-factory/api": "^10.0.0-beta.
|
|
36
|
-
"@things-factory/auth-base": "^10.0.0-beta.
|
|
37
|
-
"@things-factory/cache-service": "^10.0.0-beta.
|
|
38
|
-
"@things-factory/env": "^10.0.0-beta.
|
|
39
|
-
"@things-factory/oauth2-client": "^10.0.0-beta.
|
|
40
|
-
"@things-factory/scheduler-client": "^10.0.0-beta.
|
|
41
|
-
"@things-factory/shell": "^10.0.0-beta.
|
|
42
|
-
"@things-factory/utils": "^10.0.0-beta.
|
|
35
|
+
"@things-factory/api": "^10.0.0-beta.89",
|
|
36
|
+
"@things-factory/auth-base": "^10.0.0-beta.89",
|
|
37
|
+
"@things-factory/cache-service": "^10.0.0-beta.89",
|
|
38
|
+
"@things-factory/env": "^10.0.0-beta.85",
|
|
39
|
+
"@things-factory/oauth2-client": "^10.0.0-beta.89",
|
|
40
|
+
"@things-factory/scheduler-client": "^10.0.0-beta.89",
|
|
41
|
+
"@things-factory/shell": "^10.0.0-beta.89",
|
|
42
|
+
"@things-factory/utils": "^10.0.0-beta.85",
|
|
43
43
|
"async-mqtt": "^2.5.0",
|
|
44
44
|
"chance": "^1.1.11",
|
|
45
45
|
"cross-fetch": "^3.0.4",
|
|
@@ -48,5 +48,5 @@
|
|
|
48
48
|
"promise-socket": "^7.0.0",
|
|
49
49
|
"readline": "^1.3.0"
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "d9cda993179a6409e0d62d10e89a2ad8a3c3dfc0"
|
|
52
52
|
}
|