jumbo-cli 3.17.0 → 3.19.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.
- package/dist/application/context/relations/get/GetRelationsRequest.d.ts +10 -2
- package/dist/application/context/relations/get/GetRelationsRequest.d.ts.map +1 -1
- package/dist/application/context/relations/get/IRelationViewReader.d.ts +4 -6
- package/dist/application/context/relations/get/IRelationViewReader.d.ts.map +1 -1
- package/dist/application/context/relations/get/LocalGetRelationsGateway.d.ts +1 -0
- package/dist/application/context/relations/get/LocalGetRelationsGateway.d.ts.map +1 -1
- package/dist/application/context/relations/get/LocalGetRelationsGateway.js +30 -0
- package/dist/application/context/relations/get/LocalGetRelationsGateway.js.map +1 -1
- package/dist/application/context/relations/get/RelationDirection.d.ts +2 -0
- package/dist/application/context/relations/get/RelationDirection.d.ts.map +1 -0
- package/dist/application/context/relations/get/RelationDirection.js +2 -0
- package/dist/application/context/relations/get/RelationDirection.js.map +1 -0
- package/dist/application/context/relations/get/RelationListFilter.d.ts +15 -0
- package/dist/application/context/relations/get/RelationListFilter.d.ts.map +1 -0
- package/dist/application/context/relations/get/RelationListFilter.js +2 -0
- package/dist/application/context/relations/get/RelationListFilter.js.map +1 -0
- package/dist/application/context/relations/get/RelationNodeReference.d.ts +6 -0
- package/dist/application/context/relations/get/RelationNodeReference.d.ts.map +1 -0
- package/dist/application/context/relations/get/RelationNodeReference.js +2 -0
- package/dist/application/context/relations/get/RelationNodeReference.js.map +1 -0
- package/dist/application/context/relations/get/RelationStatusFilter.d.ts +2 -0
- package/dist/application/context/relations/get/RelationStatusFilter.d.ts.map +1 -0
- package/dist/application/context/relations/get/RelationStatusFilter.js +2 -0
- package/dist/application/context/relations/get/RelationStatusFilter.js.map +1 -0
- package/dist/application/context/relations/path/FindRelationPathController.d.ts +9 -0
- package/dist/application/context/relations/path/FindRelationPathController.d.ts.map +1 -0
- package/dist/application/context/relations/path/FindRelationPathController.js +9 -0
- package/dist/application/context/relations/path/FindRelationPathController.js.map +1 -0
- package/dist/application/context/relations/path/FindRelationPathRequest.d.ts +16 -0
- package/dist/application/context/relations/path/FindRelationPathRequest.d.ts.map +1 -0
- package/dist/application/context/relations/path/FindRelationPathRequest.js +2 -0
- package/dist/application/context/relations/path/FindRelationPathRequest.js.map +1 -0
- package/dist/application/context/relations/path/IFindRelationPathGateway.d.ts +6 -0
- package/dist/application/context/relations/path/IFindRelationPathGateway.d.ts.map +1 -0
- package/dist/application/context/relations/path/IFindRelationPathGateway.js +2 -0
- package/dist/application/context/relations/path/IFindRelationPathGateway.js.map +1 -0
- package/dist/application/context/relations/path/LocalFindRelationPathGateway.d.ts +14 -0
- package/dist/application/context/relations/path/LocalFindRelationPathGateway.d.ts.map +1 -0
- package/dist/application/context/relations/path/LocalFindRelationPathGateway.js +21 -0
- package/dist/application/context/relations/path/LocalFindRelationPathGateway.js.map +1 -0
- package/dist/application/context/relations/path/RelationPathQueryMetadata.d.ts +12 -0
- package/dist/application/context/relations/path/RelationPathQueryMetadata.d.ts.map +1 -0
- package/dist/application/context/relations/path/RelationPathQueryMetadata.js +2 -0
- package/dist/application/context/relations/path/RelationPathQueryMetadata.js.map +1 -0
- package/dist/application/context/relations/path/RelationPathResult.d.ts +13 -0
- package/dist/application/context/relations/path/RelationPathResult.d.ts.map +1 -0
- package/dist/application/context/relations/path/RelationPathResult.js +2 -0
- package/dist/application/context/relations/path/RelationPathResult.js.map +1 -0
- package/dist/application/context/relations/path/RelationShortestPathFinder.d.ts +16 -0
- package/dist/application/context/relations/path/RelationShortestPathFinder.d.ts.map +1 -0
- package/dist/application/context/relations/path/RelationShortestPathFinder.js +104 -0
- package/dist/application/context/relations/path/RelationShortestPathFinder.js.map +1 -0
- package/dist/application/context/relations/traverse/ITraverseRelationsGateway.d.ts +6 -0
- package/dist/application/context/relations/traverse/ITraverseRelationsGateway.d.ts.map +1 -0
- package/dist/application/context/relations/traverse/ITraverseRelationsGateway.js +2 -0
- package/dist/application/context/relations/traverse/ITraverseRelationsGateway.js.map +1 -0
- package/dist/application/context/relations/traverse/LocalTraverseRelationsGateway.d.ts +18 -0
- package/dist/application/context/relations/traverse/LocalTraverseRelationsGateway.d.ts.map +1 -0
- package/dist/application/context/relations/traverse/LocalTraverseRelationsGateway.js +85 -0
- package/dist/application/context/relations/traverse/LocalTraverseRelationsGateway.js.map +1 -0
- package/dist/application/context/relations/traverse/RelationNodeReferenceResolver.d.ts +9 -0
- package/dist/application/context/relations/traverse/RelationNodeReferenceResolver.d.ts.map +1 -0
- package/dist/application/context/relations/traverse/RelationNodeReferenceResolver.js +29 -0
- package/dist/application/context/relations/traverse/RelationNodeReferenceResolver.js.map +1 -0
- package/dist/application/context/relations/traverse/RelationTraversalNode.d.ts +5 -0
- package/dist/application/context/relations/traverse/RelationTraversalNode.d.ts.map +1 -0
- package/dist/application/context/relations/traverse/RelationTraversalNode.js +2 -0
- package/dist/application/context/relations/traverse/RelationTraversalNode.js.map +1 -0
- package/dist/application/context/relations/traverse/RelationTraversalPolicy.d.ts +10 -0
- package/dist/application/context/relations/traverse/RelationTraversalPolicy.d.ts.map +1 -0
- package/dist/application/context/relations/traverse/RelationTraversalPolicy.js +31 -0
- package/dist/application/context/relations/traverse/RelationTraversalPolicy.js.map +1 -0
- package/dist/application/context/relations/traverse/RelationTraversalQuery.d.ts +12 -0
- package/dist/application/context/relations/traverse/RelationTraversalQuery.d.ts.map +1 -0
- package/dist/application/context/relations/traverse/RelationTraversalQuery.js +2 -0
- package/dist/application/context/relations/traverse/RelationTraversalQuery.js.map +1 -0
- package/dist/application/context/relations/traverse/RelationTraversalQueryNormalizer.d.ts +17 -0
- package/dist/application/context/relations/traverse/RelationTraversalQueryNormalizer.d.ts.map +1 -0
- package/dist/application/context/relations/traverse/RelationTraversalQueryNormalizer.js +34 -0
- package/dist/application/context/relations/traverse/RelationTraversalQueryNormalizer.js.map +1 -0
- package/dist/application/context/relations/traverse/RelationTraversalResult.d.ts +13 -0
- package/dist/application/context/relations/traverse/RelationTraversalResult.d.ts.map +1 -0
- package/dist/application/context/relations/traverse/RelationTraversalResult.js +2 -0
- package/dist/application/context/relations/traverse/RelationTraversalResult.js.map +1 -0
- package/dist/application/context/relations/traverse/TraverseRelationsController.d.ts +9 -0
- package/dist/application/context/relations/traverse/TraverseRelationsController.d.ts.map +1 -0
- package/dist/application/context/relations/traverse/TraverseRelationsController.js +9 -0
- package/dist/application/context/relations/traverse/TraverseRelationsController.js.map +1 -0
- package/dist/application/context/relations/traverse/TraverseRelationsRequest.d.ts +15 -0
- package/dist/application/context/relations/traverse/TraverseRelationsRequest.d.ts.map +1 -0
- package/dist/application/context/relations/traverse/TraverseRelationsRequest.js +2 -0
- package/dist/application/context/relations/traverse/TraverseRelationsRequest.js.map +1 -0
- package/dist/application/host/IApplicationContainer.d.ts +4 -0
- package/dist/application/host/IApplicationContainer.d.ts.map +1 -1
- package/dist/infrastructure/context/relations/get/SqliteRelationViewReader.d.ts +7 -1
- package/dist/infrastructure/context/relations/get/SqliteRelationViewReader.d.ts.map +1 -1
- package/dist/infrastructure/context/relations/get/SqliteRelationViewReader.js +75 -12
- package/dist/infrastructure/context/relations/get/SqliteRelationViewReader.js.map +1 -1
- package/dist/infrastructure/host/HostBuilder.d.ts.map +1 -1
- package/dist/infrastructure/host/HostBuilder.js +18 -0
- package/dist/infrastructure/host/HostBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/registry/generated-commands.d.ts.map +1 -1
- package/dist/presentation/cli/commands/registry/generated-commands.js +12 -0
- package/dist/presentation/cli/commands/registry/generated-commands.js.map +1 -1
- package/dist/presentation/cli/commands/relations/list/RelationListOutputBuilder.d.ts +2 -5
- package/dist/presentation/cli/commands/relations/list/RelationListOutputBuilder.d.ts.map +1 -1
- package/dist/presentation/cli/commands/relations/list/RelationListOutputBuilder.js +15 -1
- package/dist/presentation/cli/commands/relations/list/RelationListOutputBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/relations/list/relations.list.d.ts +4 -0
- package/dist/presentation/cli/commands/relations/list/relations.list.d.ts.map +1 -1
- package/dist/presentation/cli/commands/relations/list/relations.list.js +35 -12
- package/dist/presentation/cli/commands/relations/list/relations.list.js.map +1 -1
- package/dist/presentation/cli/commands/relations/path/RelationPathOutputBuilder.d.ts +12 -0
- package/dist/presentation/cli/commands/relations/path/RelationPathOutputBuilder.d.ts.map +1 -0
- package/dist/presentation/cli/commands/relations/path/RelationPathOutputBuilder.js +96 -0
- package/dist/presentation/cli/commands/relations/path/RelationPathOutputBuilder.js.map +1 -0
- package/dist/presentation/cli/commands/relations/path/relations.path.d.ts +16 -0
- package/dist/presentation/cli/commands/relations/path/relations.path.d.ts.map +1 -0
- package/dist/presentation/cli/commands/relations/path/relations.path.js +101 -0
- package/dist/presentation/cli/commands/relations/path/relations.path.js.map +1 -0
- package/dist/presentation/cli/commands/relations/traverse/RelationTraverseOutputBuilder.d.ts +13 -0
- package/dist/presentation/cli/commands/relations/traverse/RelationTraverseOutputBuilder.d.ts.map +1 -0
- package/dist/presentation/cli/commands/relations/traverse/RelationTraverseOutputBuilder.js +95 -0
- package/dist/presentation/cli/commands/relations/traverse/RelationTraverseOutputBuilder.js.map +1 -0
- package/dist/presentation/cli/commands/relations/traverse/relations.traverse.d.ts +15 -0
- package/dist/presentation/cli/commands/relations/traverse/relations.traverse.d.ts.map +1 -0
- package/dist/presentation/cli/commands/relations/traverse/relations.traverse.js +66 -0
- package/dist/presentation/cli/commands/relations/traverse/relations.traverse.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,7 +1,15 @@
|
|
|
1
|
-
import { EntityTypeValue } from "../../../../domain/relations/Constants.js";
|
|
1
|
+
import { EntityTypeValue, RelationStrengthValue } from "../../../../domain/relations/Constants.js";
|
|
2
|
+
import { RelationDirection } from "./RelationDirection.js";
|
|
3
|
+
import { RelationStatusFilter } from "./RelationStatusFilter.js";
|
|
4
|
+
import { RelationNodeReference } from "./RelationNodeReference.js";
|
|
2
5
|
export interface GetRelationsRequest {
|
|
6
|
+
readonly entity?: RelationNodeReference;
|
|
3
7
|
readonly entityType?: EntityTypeValue;
|
|
4
8
|
readonly entityId?: string;
|
|
5
|
-
readonly
|
|
9
|
+
readonly direction?: RelationDirection;
|
|
10
|
+
readonly relationType?: string;
|
|
11
|
+
readonly relatedEntityType?: EntityTypeValue;
|
|
12
|
+
readonly strength?: RelationStrengthValue;
|
|
13
|
+
readonly status: RelationStatusFilter;
|
|
6
14
|
}
|
|
7
15
|
//# sourceMappingURL=GetRelationsRequest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GetRelationsRequest.d.ts","sourceRoot":"","sources":["../../../../../src/application/context/relations/get/GetRelationsRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"GetRelationsRequest.d.ts","sourceRoot":"","sources":["../../../../../src/application/context/relations/get/GetRelationsRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AACnG,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,eAAe,CAAC;IAC7C,QAAQ,CAAC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;CACvC"}
|
|
@@ -2,13 +2,9 @@
|
|
|
2
2
|
* Port interface for listing relations from the projection store.
|
|
3
3
|
* Used by ListRelationsQueryHandler to retrieve relation list with optional filtering.
|
|
4
4
|
*/
|
|
5
|
-
import { RelationView } from "../RelationView.js";
|
|
6
5
|
import { EntityTypeValue } from "../../../../domain/relations/Constants.js";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
entityId?: string;
|
|
10
|
-
status?: "active" | "deactivated" | "removed" | "all";
|
|
11
|
-
}
|
|
6
|
+
import { RelationView } from "../RelationView.js";
|
|
7
|
+
import { RelationListFilter } from "./RelationListFilter.js";
|
|
12
8
|
export interface IRelationViewReader {
|
|
13
9
|
/**
|
|
14
10
|
* Retrieves all relations, optionally filtered by entity or status.
|
|
@@ -16,5 +12,7 @@ export interface IRelationViewReader {
|
|
|
16
12
|
* @returns Array of relation views ordered by creation date
|
|
17
13
|
*/
|
|
18
14
|
findAll(filter?: RelationListFilter): Promise<RelationView[]>;
|
|
15
|
+
/** Returns the distinct projection endpoint types associated with an entity ID. */
|
|
16
|
+
findEndpointTypes(entityId: string): Promise<EntityTypeValue[]>;
|
|
19
17
|
}
|
|
20
18
|
//# sourceMappingURL=IRelationViewReader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IRelationViewReader.d.ts","sourceRoot":"","sources":["../../../../../src/application/context/relations/get/IRelationViewReader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"IRelationViewReader.d.ts","sourceRoot":"","sources":["../../../../../src/application/context/relations/get/IRelationViewReader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAE9D,mFAAmF;IACnF,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;CACjE"}
|
|
@@ -6,5 +6,6 @@ export declare class LocalGetRelationsGateway implements IGetRelationsGateway {
|
|
|
6
6
|
private readonly relationViewReader;
|
|
7
7
|
constructor(relationViewReader: IRelationViewReader);
|
|
8
8
|
getRelations(request: GetRelationsRequest): Promise<GetRelationsResponse>;
|
|
9
|
+
private validate;
|
|
9
10
|
}
|
|
10
11
|
//# sourceMappingURL=LocalGetRelationsGateway.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalGetRelationsGateway.d.ts","sourceRoot":"","sources":["../../../../../src/application/context/relations/get/LocalGetRelationsGateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"LocalGetRelationsGateway.d.ts","sourceRoot":"","sources":["../../../../../src/application/context/relations/get/LocalGetRelationsGateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,qBAAa,wBAAyB,YAAW,oBAAoB;IAEjE,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBAAlB,kBAAkB,EAAE,mBAAmB;IAGpD,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAoB/E,OAAO,CAAC,QAAQ;CAoBjB"}
|
|
@@ -1,14 +1,44 @@
|
|
|
1
|
+
import { EntityType, RelationStrength } from "../../../../domain/relations/Constants.js";
|
|
1
2
|
export class LocalGetRelationsGateway {
|
|
2
3
|
constructor(relationViewReader) {
|
|
3
4
|
this.relationViewReader = relationViewReader;
|
|
4
5
|
}
|
|
5
6
|
async getRelations(request) {
|
|
7
|
+
this.validate(request);
|
|
8
|
+
const entity = request.entity ?? (request.entityType && request.entityId
|
|
9
|
+
? { entityType: request.entityType, entityId: request.entityId }
|
|
10
|
+
: undefined);
|
|
6
11
|
const relations = await this.relationViewReader.findAll({
|
|
12
|
+
entity,
|
|
7
13
|
entityType: request.entityType,
|
|
8
14
|
entityId: request.entityId,
|
|
15
|
+
direction: request.direction,
|
|
16
|
+
relationType: request.relationType,
|
|
17
|
+
relatedEntityType: request.relatedEntityType,
|
|
18
|
+
strength: request.strength,
|
|
9
19
|
status: request.status,
|
|
10
20
|
});
|
|
11
21
|
return { relations };
|
|
12
22
|
}
|
|
23
|
+
validate(request) {
|
|
24
|
+
if (request.direction && !["in", "out", "both"].includes(request.direction)) {
|
|
25
|
+
throw new Error("Direction must be one of: in, out, both.");
|
|
26
|
+
}
|
|
27
|
+
if (!["active", "deactivated", "removed", "all"].includes(request.status)) {
|
|
28
|
+
throw new Error("Status must be one of: active, deactivated, removed, all.");
|
|
29
|
+
}
|
|
30
|
+
if (request.entityType && !Object.values(EntityType).includes(request.entityType)) {
|
|
31
|
+
throw new Error(`Entity type must be one of: ${Object.values(EntityType).join(", ")}.`);
|
|
32
|
+
}
|
|
33
|
+
if (request.entity && !Object.values(EntityType).includes(request.entity.entityType)) {
|
|
34
|
+
throw new Error(`Entity type must be one of: ${Object.values(EntityType).join(", ")}.`);
|
|
35
|
+
}
|
|
36
|
+
if (request.relatedEntityType && !Object.values(EntityType).includes(request.relatedEntityType)) {
|
|
37
|
+
throw new Error(`Related entity type must be one of: ${Object.values(EntityType).join(", ")}.`);
|
|
38
|
+
}
|
|
39
|
+
if (request.strength && !Object.values(RelationStrength).includes(request.strength)) {
|
|
40
|
+
throw new Error("Strength must be one of: strong, medium, weak.");
|
|
41
|
+
}
|
|
42
|
+
}
|
|
13
43
|
}
|
|
14
44
|
//# sourceMappingURL=LocalGetRelationsGateway.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalGetRelationsGateway.js","sourceRoot":"","sources":["../../../../../src/application/context/relations/get/LocalGetRelationsGateway.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LocalGetRelationsGateway.js","sourceRoot":"","sources":["../../../../../src/application/context/relations/get/LocalGetRelationsGateway.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAEzF,MAAM,OAAO,wBAAwB;IACnC,YACmB,kBAAuC;QAAvC,uBAAkB,GAAlB,kBAAkB,CAAqB;IACvD,CAAC;IAEJ,KAAK,CAAC,YAAY,CAAC,OAA4B;QAC7C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACvB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAC/B,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,QAAQ;YACpC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE;YAChE,CAAC,CAAC,SAAS,CACd,CAAC;QACF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;YACtD,MAAM;YACN,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;YAC5C,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QACH,OAAO,EAAE,SAAS,EAAE,CAAC;IACvB,CAAC;IAEO,QAAQ,CAAC,OAA4B;QAC3C,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5E,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1E,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAClF,MAAM,IAAI,KAAK,CAAC,+BAA+B,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1F,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YACrF,MAAM,IAAI,KAAK,CAAC,+BAA+B,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1F,CAAC;QACD,IAAI,OAAO,CAAC,iBAAiB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAChG,MAAM,IAAI,KAAK,CAAC,uCAAuC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClG,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpF,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RelationDirection.d.ts","sourceRoot":"","sources":["../../../../../src/application/context/relations/get/RelationDirection.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RelationDirection.js","sourceRoot":"","sources":["../../../../../src/application/context/relations/get/RelationDirection.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { EntityTypeValue, RelationStrengthValue } from "../../../../domain/relations/Constants.js";
|
|
2
|
+
import { RelationDirection } from "./RelationDirection.js";
|
|
3
|
+
import { RelationStatusFilter } from "./RelationStatusFilter.js";
|
|
4
|
+
import { RelationNodeReference } from "./RelationNodeReference.js";
|
|
5
|
+
export interface RelationListFilter {
|
|
6
|
+
readonly entity?: RelationNodeReference;
|
|
7
|
+
readonly entityType?: EntityTypeValue;
|
|
8
|
+
readonly entityId?: string;
|
|
9
|
+
readonly direction?: RelationDirection;
|
|
10
|
+
readonly relationType?: string;
|
|
11
|
+
readonly relatedEntityType?: EntityTypeValue;
|
|
12
|
+
readonly strength?: RelationStrengthValue;
|
|
13
|
+
readonly status?: RelationStatusFilter;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=RelationListFilter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RelationListFilter.d.ts","sourceRoot":"","sources":["../../../../../src/application/context/relations/get/RelationListFilter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AACnG,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,eAAe,CAAC;IAC7C,QAAQ,CAAC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,oBAAoB,CAAC;CACxC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RelationListFilter.js","sourceRoot":"","sources":["../../../../../src/application/context/relations/get/RelationListFilter.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RelationNodeReference.d.ts","sourceRoot":"","sources":["../../../../../src/application/context/relations/get/RelationNodeReference.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAE5E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RelationNodeReference.js","sourceRoot":"","sources":["../../../../../src/application/context/relations/get/RelationNodeReference.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RelationStatusFilter.d.ts","sourceRoot":"","sources":["../../../../../src/application/context/relations/get/RelationStatusFilter.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,aAAa,GAAG,SAAS,GAAG,KAAK,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RelationStatusFilter.js","sourceRoot":"","sources":["../../../../../src/application/context/relations/get/RelationStatusFilter.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { FindRelationPathRequest } from "./FindRelationPathRequest.js";
|
|
2
|
+
import { IFindRelationPathGateway } from "./IFindRelationPathGateway.js";
|
|
3
|
+
import { RelationPathResult } from "./RelationPathResult.js";
|
|
4
|
+
export declare class FindRelationPathController {
|
|
5
|
+
private readonly gateway;
|
|
6
|
+
constructor(gateway: IFindRelationPathGateway);
|
|
7
|
+
handle(request: FindRelationPathRequest): Promise<RelationPathResult>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=FindRelationPathController.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FindRelationPathController.d.ts","sourceRoot":"","sources":["../../../../../src/application/context/relations/path/FindRelationPathController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,qBAAa,0BAA0B;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,wBAAwB;IAExD,MAAM,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAG5E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FindRelationPathController.js","sourceRoot":"","sources":["../../../../../src/application/context/relations/path/FindRelationPathController.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,0BAA0B;IACrC,YAA6B,OAAiC;QAAjC,YAAO,GAAP,OAAO,CAA0B;IAAG,CAAC;IAElE,KAAK,CAAC,MAAM,CAAC,OAAgC;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;CACF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { EntityTypeValue, RelationStrengthValue } from "../../../../domain/relations/Constants.js";
|
|
2
|
+
import { RelationDirection } from "../get/RelationDirection.js";
|
|
3
|
+
import { RelationStatusFilter } from "../get/RelationStatusFilter.js";
|
|
4
|
+
export interface FindRelationPathRequest {
|
|
5
|
+
readonly fromEntityId: string;
|
|
6
|
+
readonly fromEntityType?: EntityTypeValue;
|
|
7
|
+
readonly toEntityId: string;
|
|
8
|
+
readonly toEntityType?: EntityTypeValue;
|
|
9
|
+
readonly maxDepth?: number;
|
|
10
|
+
readonly direction?: RelationDirection;
|
|
11
|
+
readonly relationType?: string;
|
|
12
|
+
readonly relatedEntityType?: EntityTypeValue;
|
|
13
|
+
readonly strength?: RelationStrengthValue;
|
|
14
|
+
readonly status?: RelationStatusFilter;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=FindRelationPathRequest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FindRelationPathRequest.d.ts","sourceRoot":"","sources":["../../../../../src/application/context/relations/path/FindRelationPathRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,qBAAqB,EACtB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEtE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,eAAe,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,eAAe,CAAC;IAC7C,QAAQ,CAAC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,oBAAoB,CAAC;CACxC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FindRelationPathRequest.js","sourceRoot":"","sources":["../../../../../src/application/context/relations/path/FindRelationPathRequest.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { FindRelationPathRequest } from "./FindRelationPathRequest.js";
|
|
2
|
+
import { RelationPathResult } from "./RelationPathResult.js";
|
|
3
|
+
export interface IFindRelationPathGateway {
|
|
4
|
+
findPath(request: FindRelationPathRequest): Promise<RelationPathResult>;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=IFindRelationPathGateway.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IFindRelationPathGateway.d.ts","sourceRoot":"","sources":["../../../../../src/application/context/relations/path/IFindRelationPathGateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACzE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IFindRelationPathGateway.js","sourceRoot":"","sources":["../../../../../src/application/context/relations/path/IFindRelationPathGateway.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { RelationNodeReferenceResolver } from "../traverse/RelationNodeReferenceResolver.js";
|
|
2
|
+
import { RelationTraversalQueryNormalizer } from "../traverse/RelationTraversalQueryNormalizer.js";
|
|
3
|
+
import { FindRelationPathRequest } from "./FindRelationPathRequest.js";
|
|
4
|
+
import { IFindRelationPathGateway } from "./IFindRelationPathGateway.js";
|
|
5
|
+
import { RelationPathResult } from "./RelationPathResult.js";
|
|
6
|
+
import { RelationShortestPathFinder } from "./RelationShortestPathFinder.js";
|
|
7
|
+
export declare class LocalFindRelationPathGateway implements IFindRelationPathGateway {
|
|
8
|
+
private readonly nodeResolver;
|
|
9
|
+
private readonly queryNormalizer;
|
|
10
|
+
private readonly shortestPathFinder;
|
|
11
|
+
constructor(nodeResolver: RelationNodeReferenceResolver, queryNormalizer: RelationTraversalQueryNormalizer, shortestPathFinder: RelationShortestPathFinder);
|
|
12
|
+
findPath(request: FindRelationPathRequest): Promise<RelationPathResult>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=LocalFindRelationPathGateway.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalFindRelationPathGateway.d.ts","sourceRoot":"","sources":["../../../../../src/application/context/relations/path/LocalFindRelationPathGateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAC7F,OAAO,EAAE,gCAAgC,EAAE,MAAM,iDAAiD,CAAC;AACnG,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAE7E,qBAAa,4BAA6B,YAAW,wBAAwB;IAEzE,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBAFlB,YAAY,EAAE,6BAA6B,EAC3C,eAAe,EAAE,gCAAgC,EACjD,kBAAkB,EAAE,0BAA0B;IAG3D,QAAQ,CACZ,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,kBAAkB,CAAC;CA2B/B"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export class LocalFindRelationPathGateway {
|
|
2
|
+
constructor(nodeResolver, queryNormalizer, shortestPathFinder) {
|
|
3
|
+
this.nodeResolver = nodeResolver;
|
|
4
|
+
this.queryNormalizer = queryNormalizer;
|
|
5
|
+
this.shortestPathFinder = shortestPathFinder;
|
|
6
|
+
}
|
|
7
|
+
async findPath(request) {
|
|
8
|
+
const query = this.queryNormalizer.normalize({
|
|
9
|
+
depth: request.maxDepth,
|
|
10
|
+
direction: request.direction,
|
|
11
|
+
relationType: request.relationType,
|
|
12
|
+
relatedEntityType: request.relatedEntityType,
|
|
13
|
+
strength: request.strength,
|
|
14
|
+
status: request.status,
|
|
15
|
+
}, 5);
|
|
16
|
+
const from = await this.nodeResolver.resolve(request.fromEntityId, request.fromEntityType, "--from-type", "From entity");
|
|
17
|
+
const to = await this.nodeResolver.resolve(request.toEntityId, request.toEntityType, "--to-type", "To entity");
|
|
18
|
+
return this.shortestPathFinder.find(from, to, query);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=LocalFindRelationPathGateway.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalFindRelationPathGateway.js","sourceRoot":"","sources":["../../../../../src/application/context/relations/path/LocalFindRelationPathGateway.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,4BAA4B;IACvC,YACmB,YAA2C,EAC3C,eAAiD,EACjD,kBAA8C;QAF9C,iBAAY,GAAZ,YAAY,CAA+B;QAC3C,oBAAe,GAAf,eAAe,CAAkC;QACjD,uBAAkB,GAAlB,kBAAkB,CAA4B;IAC9D,CAAC;IAEJ,KAAK,CAAC,QAAQ,CACZ,OAAgC;QAEhC,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAC1C;YACE,KAAK,EAAE,OAAO,CAAC,QAAQ;YACvB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;YAC5C,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,EACD,CAAC,CACF,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAC1C,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,cAAc,EACtB,aAAa,EACb,aAAa,CACd,CAAC;QACF,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CACxC,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,YAAY,EACpB,WAAW,EACX,WAAW,CACZ,CAAC;QAEF,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { EntityTypeValue, RelationStrengthValue } from "../../../../domain/relations/Constants.js";
|
|
2
|
+
import { RelationDirection } from "../get/RelationDirection.js";
|
|
3
|
+
import { RelationStatusFilter } from "../get/RelationStatusFilter.js";
|
|
4
|
+
export interface RelationPathQueryMetadata {
|
|
5
|
+
readonly maxDepth: number;
|
|
6
|
+
readonly direction: RelationDirection;
|
|
7
|
+
readonly relationType?: string;
|
|
8
|
+
readonly entityType?: EntityTypeValue;
|
|
9
|
+
readonly strength?: RelationStrengthValue;
|
|
10
|
+
readonly status: RelationStatusFilter;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=RelationPathQueryMetadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RelationPathQueryMetadata.d.ts","sourceRoot":"","sources":["../../../../../src/application/context/relations/path/RelationPathQueryMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,qBAAqB,EACtB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEtE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;CACvC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RelationPathQueryMetadata.js","sourceRoot":"","sources":["../../../../../src/application/context/relations/path/RelationPathQueryMetadata.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { RelationView } from "../RelationView.js";
|
|
2
|
+
import { RelationNodeReference } from "../get/RelationNodeReference.js";
|
|
3
|
+
import { RelationPathQueryMetadata } from "./RelationPathQueryMetadata.js";
|
|
4
|
+
export interface RelationPathResult {
|
|
5
|
+
readonly found: boolean;
|
|
6
|
+
readonly from: RelationNodeReference;
|
|
7
|
+
readonly to: RelationNodeReference;
|
|
8
|
+
readonly hopCount: number;
|
|
9
|
+
readonly nodes: RelationNodeReference[];
|
|
10
|
+
readonly edges: RelationView[];
|
|
11
|
+
readonly query: RelationPathQueryMetadata;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=RelationPathResult.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RelationPathResult.d.ts","sourceRoot":"","sources":["../../../../../src/application/context/relations/path/RelationPathResult.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,EAAE,EAAE,qBAAqB,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,qBAAqB,EAAE,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,yBAAyB,CAAC;CAC3C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RelationPathResult.js","sourceRoot":"","sources":["../../../../../src/application/context/relations/path/RelationPathResult.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { IRelationViewReader } from "../get/IRelationViewReader.js";
|
|
2
|
+
import { RelationNodeReference } from "../get/RelationNodeReference.js";
|
|
3
|
+
import { RelationTraversalPolicy } from "../traverse/RelationTraversalPolicy.js";
|
|
4
|
+
import { RelationTraversalQuery } from "../traverse/RelationTraversalQuery.js";
|
|
5
|
+
import { RelationPathResult } from "./RelationPathResult.js";
|
|
6
|
+
export declare class RelationShortestPathFinder {
|
|
7
|
+
private readonly relationViewReader;
|
|
8
|
+
private readonly traversalPolicy;
|
|
9
|
+
constructor(relationViewReader: IRelationViewReader, traversalPolicy?: RelationTraversalPolicy);
|
|
10
|
+
find(from: RelationNodeReference, to: RelationNodeReference, query: RelationTraversalQuery): Promise<RelationPathResult>;
|
|
11
|
+
private stableTransitions;
|
|
12
|
+
private reconstruct;
|
|
13
|
+
private foundResult;
|
|
14
|
+
private toQueryMetadata;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=RelationShortestPathFinder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RelationShortestPathFinder.d.ts","sourceRoot":"","sources":["../../../../../src/application/context/relations/path/RelationShortestPathFinder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAY7D,qBAAa,0BAA0B;IAEnC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,eAAe;gBADf,kBAAkB,EAAE,mBAAmB,EACvC,eAAe,0BAAgC;IAG5D,IAAI,CACR,IAAI,EAAE,qBAAqB,EAC3B,EAAE,EAAE,qBAAqB,EACzB,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,kBAAkB,CAAC;IAiE9B,OAAO,CAAC,iBAAiB;IAwBzB,OAAO,CAAC,WAAW;IAgCnB,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,eAAe;CAYxB"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { RelationTraversalPolicy } from "../traverse/RelationTraversalPolicy.js";
|
|
2
|
+
export class RelationShortestPathFinder {
|
|
3
|
+
constructor(relationViewReader, traversalPolicy = new RelationTraversalPolicy()) {
|
|
4
|
+
this.relationViewReader = relationViewReader;
|
|
5
|
+
this.traversalPolicy = traversalPolicy;
|
|
6
|
+
}
|
|
7
|
+
async find(from, to, query) {
|
|
8
|
+
const queryMetadata = this.toQueryMetadata(query);
|
|
9
|
+
if (this.traversalPolicy.nodeKey(from) === this.traversalPolicy.nodeKey(to)) {
|
|
10
|
+
return this.foundResult(from, to, [from], [], queryMetadata);
|
|
11
|
+
}
|
|
12
|
+
const visited = new Set([this.traversalPolicy.nodeKey(from)]);
|
|
13
|
+
const predecessors = new Map();
|
|
14
|
+
let frontier = [from];
|
|
15
|
+
for (let depth = 1; depth <= query.depth && frontier.length > 0; depth++) {
|
|
16
|
+
const next = new Map();
|
|
17
|
+
const stableFrontier = [...frontier].sort((left, right) => this.traversalPolicy.compareNodes(left, right));
|
|
18
|
+
for (const current of stableFrontier) {
|
|
19
|
+
const adjacent = await this.relationViewReader.findAll({
|
|
20
|
+
entity: current,
|
|
21
|
+
direction: query.direction,
|
|
22
|
+
relationType: query.relationType,
|
|
23
|
+
relatedEntityType: query.relatedEntityType,
|
|
24
|
+
strength: query.strength,
|
|
25
|
+
status: query.status,
|
|
26
|
+
});
|
|
27
|
+
const transitions = this.stableTransitions(current, adjacent, query);
|
|
28
|
+
for (const transition of transitions) {
|
|
29
|
+
const key = this.traversalPolicy.nodeKey(transition.node);
|
|
30
|
+
if (visited.has(key))
|
|
31
|
+
continue;
|
|
32
|
+
visited.add(key);
|
|
33
|
+
predecessors.set(key, { previous: current, edge: transition.edge });
|
|
34
|
+
if (key === this.traversalPolicy.nodeKey(to)) {
|
|
35
|
+
const path = this.reconstruct(from, to, predecessors);
|
|
36
|
+
return this.foundResult(from, to, path.nodes, path.edges, queryMetadata);
|
|
37
|
+
}
|
|
38
|
+
next.set(key, transition.node);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
frontier = [...next.values()];
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
found: false,
|
|
45
|
+
from,
|
|
46
|
+
to,
|
|
47
|
+
hopCount: 0,
|
|
48
|
+
nodes: [],
|
|
49
|
+
edges: [],
|
|
50
|
+
query: queryMetadata,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
stableTransitions(current, adjacent, query) {
|
|
54
|
+
return adjacent
|
|
55
|
+
.map((edge) => {
|
|
56
|
+
const node = this.traversalPolicy.relatedNode(current, edge, query.direction);
|
|
57
|
+
return node ? { node, edge } : undefined;
|
|
58
|
+
})
|
|
59
|
+
.filter((transition) => transition !== undefined)
|
|
60
|
+
.sort((left, right) => this.traversalPolicy.compareNodes(left.node, right.node) ||
|
|
61
|
+
this.traversalPolicy.compareEdges(left.edge, right.edge));
|
|
62
|
+
}
|
|
63
|
+
reconstruct(from, to, predecessors) {
|
|
64
|
+
const reversedNodes = [to];
|
|
65
|
+
const reversedEdges = [];
|
|
66
|
+
let cursor = to;
|
|
67
|
+
while (this.traversalPolicy.nodeKey(cursor) !==
|
|
68
|
+
this.traversalPolicy.nodeKey(from)) {
|
|
69
|
+
const predecessor = predecessors.get(this.traversalPolicy.nodeKey(cursor));
|
|
70
|
+
if (!predecessor) {
|
|
71
|
+
throw new Error("Relation path reconstruction encountered an incomplete predecessor chain.");
|
|
72
|
+
}
|
|
73
|
+
reversedEdges.push(predecessor.edge);
|
|
74
|
+
reversedNodes.push(predecessor.previous);
|
|
75
|
+
cursor = predecessor.previous;
|
|
76
|
+
}
|
|
77
|
+
return {
|
|
78
|
+
nodes: reversedNodes.reverse(),
|
|
79
|
+
edges: reversedEdges.reverse(),
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
foundResult(from, to, nodes, edges, query) {
|
|
83
|
+
return {
|
|
84
|
+
found: true,
|
|
85
|
+
from,
|
|
86
|
+
to,
|
|
87
|
+
hopCount: edges.length,
|
|
88
|
+
nodes,
|
|
89
|
+
edges,
|
|
90
|
+
query,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
toQueryMetadata(query) {
|
|
94
|
+
return {
|
|
95
|
+
maxDepth: query.depth,
|
|
96
|
+
direction: query.direction,
|
|
97
|
+
relationType: query.relationType,
|
|
98
|
+
entityType: query.relatedEntityType,
|
|
99
|
+
strength: query.strength,
|
|
100
|
+
status: query.status,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=RelationShortestPathFinder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RelationShortestPathFinder.js","sourceRoot":"","sources":["../../../../../src/application/context/relations/path/RelationShortestPathFinder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { RelationTraversalResult } from "./RelationTraversalResult.js";
|
|
2
|
+
import { TraverseRelationsRequest } from "./TraverseRelationsRequest.js";
|
|
3
|
+
export interface ITraverseRelationsGateway {
|
|
4
|
+
traverse(request: TraverseRelationsRequest): Promise<RelationTraversalResult>;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=ITraverseRelationsGateway.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ITraverseRelationsGateway.d.ts","sourceRoot":"","sources":["../../../../../src/application/context/relations/traverse/ITraverseRelationsGateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;CAC/E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ITraverseRelationsGateway.js","sourceRoot":"","sources":["../../../../../src/application/context/relations/traverse/ITraverseRelationsGateway.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { IRelationViewReader } from "../get/IRelationViewReader.js";
|
|
2
|
+
import { ITraverseRelationsGateway } from "./ITraverseRelationsGateway.js";
|
|
3
|
+
import { RelationNodeReferenceResolver } from "./RelationNodeReferenceResolver.js";
|
|
4
|
+
import { RelationTraversalPolicy } from "./RelationTraversalPolicy.js";
|
|
5
|
+
import { RelationTraversalQueryNormalizer } from "./RelationTraversalQueryNormalizer.js";
|
|
6
|
+
import { RelationTraversalResult } from "./RelationTraversalResult.js";
|
|
7
|
+
import { TraverseRelationsRequest } from "./TraverseRelationsRequest.js";
|
|
8
|
+
export declare class LocalTraverseRelationsGateway implements ITraverseRelationsGateway {
|
|
9
|
+
private readonly relationViewReader;
|
|
10
|
+
private readonly nodeResolver;
|
|
11
|
+
private readonly queryNormalizer;
|
|
12
|
+
private readonly traversalPolicy;
|
|
13
|
+
constructor(relationViewReader: IRelationViewReader, nodeResolver?: RelationNodeReferenceResolver, queryNormalizer?: RelationTraversalQueryNormalizer, traversalPolicy?: RelationTraversalPolicy);
|
|
14
|
+
traverse(request: TraverseRelationsRequest): Promise<RelationTraversalResult>;
|
|
15
|
+
private normalize;
|
|
16
|
+
private resolveRoot;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=LocalTraverseRelationsGateway.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalTraverseRelationsGateway.d.ts","sourceRoot":"","sources":["../../../../../src/application/context/relations/traverse/LocalTraverseRelationsGateway.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAEnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,EAAE,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAQzE,qBAAa,6BAA8B,YAAW,yBAAyB;IAE3E,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAHf,kBAAkB,EAAE,mBAAmB,EACvC,YAAY,gCAAwD,EACpE,eAAe,mCAAyC,EACxD,eAAe,0BAAgC;IAG5D,QAAQ,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IA2EnF,OAAO,CAAC,SAAS;YAkBH,WAAW;CAM1B"}
|