@cwygoda/service-catalog-core 0.17.1
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/adapters/index.d.ts +8 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +8 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/loaders/filesystem.loader.d.ts +27 -0
- package/dist/adapters/loaders/filesystem.loader.d.ts.map +1 -0
- package/dist/adapters/loaders/filesystem.loader.js +183 -0
- package/dist/adapters/loaders/filesystem.loader.js.map +1 -0
- package/dist/adapters/loaders/filesystem.loader.test.d.ts +2 -0
- package/dist/adapters/loaders/filesystem.loader.test.d.ts.map +1 -0
- package/dist/adapters/loaders/filesystem.loader.test.js +576 -0
- package/dist/adapters/loaders/filesystem.loader.test.js.map +1 -0
- package/dist/adapters/parsers/bpmn-steps.d.ts +5 -0
- package/dist/adapters/parsers/bpmn-steps.d.ts.map +1 -0
- package/dist/adapters/parsers/bpmn-steps.js +124 -0
- package/dist/adapters/parsers/bpmn-steps.js.map +1 -0
- package/dist/adapters/parsers/bpmn-steps.test.d.ts +2 -0
- package/dist/adapters/parsers/bpmn-steps.test.d.ts.map +1 -0
- package/dist/adapters/parsers/bpmn-steps.test.js +112 -0
- package/dist/adapters/parsers/bpmn-steps.test.js.map +1 -0
- package/dist/adapters/parsers/bpmn-txt.parser.d.ts +21 -0
- package/dist/adapters/parsers/bpmn-txt.parser.d.ts.map +1 -0
- package/dist/adapters/parsers/bpmn-txt.parser.js +56 -0
- package/dist/adapters/parsers/bpmn-txt.parser.js.map +1 -0
- package/dist/adapters/parsers/bpmn-txt.parser.test.d.ts +2 -0
- package/dist/adapters/parsers/bpmn-txt.parser.test.d.ts.map +1 -0
- package/dist/adapters/parsers/bpmn-txt.parser.test.js +71 -0
- package/dist/adapters/parsers/bpmn-txt.parser.test.js.map +1 -0
- package/dist/adapters/parsers/markdown.parser.d.ts +22 -0
- package/dist/adapters/parsers/markdown.parser.d.ts.map +1 -0
- package/dist/adapters/parsers/markdown.parser.js +85 -0
- package/dist/adapters/parsers/markdown.parser.js.map +1 -0
- package/dist/adapters/parsers/markdown.parser.test.d.ts +2 -0
- package/dist/adapters/parsers/markdown.parser.test.d.ts.map +1 -0
- package/dist/adapters/parsers/markdown.parser.test.js +149 -0
- package/dist/adapters/parsers/markdown.parser.test.js.map +1 -0
- package/dist/adapters/parsers/sidecar.transforms.d.ts +104 -0
- package/dist/adapters/parsers/sidecar.transforms.d.ts.map +1 -0
- package/dist/adapters/parsers/sidecar.transforms.js +133 -0
- package/dist/adapters/parsers/sidecar.transforms.js.map +1 -0
- package/dist/adapters/parsers/toml.parser.d.ts +17 -0
- package/dist/adapters/parsers/toml.parser.d.ts.map +1 -0
- package/dist/adapters/parsers/toml.parser.js +91 -0
- package/dist/adapters/parsers/toml.parser.js.map +1 -0
- package/dist/adapters/parsers/toml.parser.test.d.ts +2 -0
- package/dist/adapters/parsers/toml.parser.test.d.ts.map +1 -0
- package/dist/adapters/parsers/toml.parser.test.js +345 -0
- package/dist/adapters/parsers/toml.parser.test.js.map +1 -0
- package/dist/adapters/parsers/yaml.parser.d.ts +17 -0
- package/dist/adapters/parsers/yaml.parser.d.ts.map +1 -0
- package/dist/adapters/parsers/yaml.parser.js +67 -0
- package/dist/adapters/parsers/yaml.parser.js.map +1 -0
- package/dist/adapters/parsers/yaml.parser.test.d.ts +2 -0
- package/dist/adapters/parsers/yaml.parser.test.d.ts.map +1 -0
- package/dist/adapters/parsers/yaml.parser.test.js +171 -0
- package/dist/adapters/parsers/yaml.parser.test.js.map +1 -0
- package/dist/adapters/persistence/json.writer.d.ts +7 -0
- package/dist/adapters/persistence/json.writer.d.ts.map +1 -0
- package/dist/adapters/persistence/json.writer.js +14 -0
- package/dist/adapters/persistence/json.writer.js.map +1 -0
- package/dist/adapters/persistence/json.writer.test.d.ts +2 -0
- package/dist/adapters/persistence/json.writer.test.d.ts.map +1 -0
- package/dist/adapters/persistence/json.writer.test.js +111 -0
- package/dist/adapters/persistence/json.writer.test.js.map +1 -0
- package/dist/domain/catalog.d.ts +28 -0
- package/dist/domain/catalog.d.ts.map +1 -0
- package/dist/domain/catalog.js +46 -0
- package/dist/domain/catalog.js.map +1 -0
- package/dist/domain/catalog.test.d.ts +2 -0
- package/dist/domain/catalog.test.d.ts.map +1 -0
- package/dist/domain/catalog.test.js +346 -0
- package/dist/domain/catalog.test.js.map +1 -0
- package/dist/domain/connection.d.ts +28 -0
- package/dist/domain/connection.d.ts.map +1 -0
- package/dist/domain/connection.js +53 -0
- package/dist/domain/connection.js.map +1 -0
- package/dist/domain/connection.test.d.ts +2 -0
- package/dist/domain/connection.test.d.ts.map +1 -0
- package/dist/domain/connection.test.js +150 -0
- package/dist/domain/connection.test.js.map +1 -0
- package/dist/domain/data-store.d.ts +23 -0
- package/dist/domain/data-store.d.ts.map +1 -0
- package/dist/domain/data-store.js +42 -0
- package/dist/domain/data-store.js.map +1 -0
- package/dist/domain/data-store.test.d.ts +2 -0
- package/dist/domain/data-store.test.d.ts.map +1 -0
- package/dist/domain/data-store.test.js +93 -0
- package/dist/domain/data-store.test.js.map +1 -0
- package/dist/domain/domain.d.ts +9 -0
- package/dist/domain/domain.d.ts.map +1 -0
- package/dist/domain/domain.js +26 -0
- package/dist/domain/domain.js.map +1 -0
- package/dist/domain/domain.test.d.ts +2 -0
- package/dist/domain/domain.test.d.ts.map +1 -0
- package/dist/domain/domain.test.js +92 -0
- package/dist/domain/domain.test.js.map +1 -0
- package/dist/domain/graph.d.ts +23 -0
- package/dist/domain/graph.d.ts.map +1 -0
- package/dist/domain/graph.js +2 -0
- package/dist/domain/graph.js.map +1 -0
- package/dist/domain/index.d.ts +8 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/index.js +8 -0
- package/dist/domain/index.js.map +1 -0
- package/dist/domain/service.d.ts +66 -0
- package/dist/domain/service.d.ts.map +1 -0
- package/dist/domain/service.js +61 -0
- package/dist/domain/service.js.map +1 -0
- package/dist/domain/service.test.d.ts +2 -0
- package/dist/domain/service.test.d.ts.map +1 -0
- package/dist/domain/service.test.js +181 -0
- package/dist/domain/service.test.js.map +1 -0
- package/dist/domain/use-case.d.ts +47 -0
- package/dist/domain/use-case.d.ts.map +1 -0
- package/dist/domain/use-case.js +70 -0
- package/dist/domain/use-case.js.map +1 -0
- package/dist/domain/use-case.test.d.ts +2 -0
- package/dist/domain/use-case.test.d.ts.map +1 -0
- package/dist/domain/use-case.test.js +249 -0
- package/dist/domain/use-case.test.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/ports/catalog-loader.port.d.ts +5 -0
- package/dist/ports/catalog-loader.port.d.ts.map +1 -0
- package/dist/ports/catalog-loader.port.js +2 -0
- package/dist/ports/catalog-loader.port.js.map +1 -0
- package/dist/ports/catalog-writer.port.d.ts +5 -0
- package/dist/ports/catalog-writer.port.d.ts.map +1 -0
- package/dist/ports/catalog-writer.port.js +2 -0
- package/dist/ports/catalog-writer.port.js.map +1 -0
- package/dist/ports/index.d.ts +3 -0
- package/dist/ports/index.d.ts.map +1 -0
- package/dist/ports/index.js +3 -0
- package/dist/ports/index.js.map +1 -0
- package/dist/schemas/catalog-config.schema.d.ts +23 -0
- package/dist/schemas/catalog-config.schema.d.ts.map +1 -0
- package/dist/schemas/catalog-config.schema.js +20 -0
- package/dist/schemas/catalog-config.schema.js.map +1 -0
- package/dist/schemas/catalog.schema.d.ts +248 -0
- package/dist/schemas/catalog.schema.d.ts.map +1 -0
- package/dist/schemas/catalog.schema.js +94 -0
- package/dist/schemas/catalog.schema.js.map +1 -0
- package/dist/schemas/connection.schema.d.ts +19 -0
- package/dist/schemas/connection.schema.d.ts.map +1 -0
- package/dist/schemas/connection.schema.js +25 -0
- package/dist/schemas/connection.schema.js.map +1 -0
- package/dist/schemas/connection.schema.test.d.ts +2 -0
- package/dist/schemas/connection.schema.test.d.ts.map +1 -0
- package/dist/schemas/connection.schema.test.js +114 -0
- package/dist/schemas/connection.schema.test.js.map +1 -0
- package/dist/schemas/data-store.schema.d.ts +20 -0
- package/dist/schemas/data-store.schema.d.ts.map +1 -0
- package/dist/schemas/data-store.schema.js +22 -0
- package/dist/schemas/data-store.schema.js.map +1 -0
- package/dist/schemas/data-store.schema.test.d.ts +2 -0
- package/dist/schemas/data-store.schema.test.d.ts.map +1 -0
- package/dist/schemas/data-store.schema.test.js +68 -0
- package/dist/schemas/data-store.schema.test.js.map +1 -0
- package/dist/schemas/domain.schema.d.ts +11 -0
- package/dist/schemas/domain.schema.d.ts.map +1 -0
- package/dist/schemas/domain.schema.js +10 -0
- package/dist/schemas/domain.schema.js.map +1 -0
- package/dist/schemas/domain.schema.test.d.ts +2 -0
- package/dist/schemas/domain.schema.test.d.ts.map +1 -0
- package/dist/schemas/domain.schema.test.js +95 -0
- package/dist/schemas/domain.schema.test.js.map +1 -0
- package/dist/schemas/index.d.ts +8 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +8 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/service.schema.d.ts +61 -0
- package/dist/schemas/service.schema.d.ts.map +1 -0
- package/dist/schemas/service.schema.js +59 -0
- package/dist/schemas/service.schema.js.map +1 -0
- package/dist/schemas/service.schema.test.d.ts +2 -0
- package/dist/schemas/service.schema.test.d.ts.map +1 -0
- package/dist/schemas/service.schema.test.js +137 -0
- package/dist/schemas/service.schema.test.js.map +1 -0
- package/dist/schemas/use-case.schema.d.ts +54 -0
- package/dist/schemas/use-case.schema.d.ts.map +1 -0
- package/dist/schemas/use-case.schema.js +38 -0
- package/dist/schemas/use-case.schema.js.map +1 -0
- package/dist/schemas/use-case.schema.test.d.ts +2 -0
- package/dist/schemas/use-case.schema.test.d.ts.map +1 -0
- package/dist/schemas/use-case.schema.test.js +152 -0
- package/dist/schemas/use-case.schema.test.js.map +1 -0
- package/dist/services/graph-builder.d.ts +21 -0
- package/dist/services/graph-builder.d.ts.map +1 -0
- package/dist/services/graph-builder.js +138 -0
- package/dist/services/graph-builder.js.map +1 -0
- package/dist/services/graph-builder.test.d.ts +2 -0
- package/dist/services/graph-builder.test.d.ts.map +1 -0
- package/dist/services/graph-builder.test.js +393 -0
- package/dist/services/graph-builder.test.js.map +1 -0
- package/dist/services/index.d.ts +2 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +2 -0
- package/dist/services/index.js.map +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.test.js","sourceRoot":"","sources":["../../src/domain/catalog.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Connection entity - represents a dependency from one service to another.
|
|
3
|
+
*/
|
|
4
|
+
export type ConnectionType = 'http' | 'event' | 'grpc';
|
|
5
|
+
export type ConnectionRole = 'producer' | 'consumer';
|
|
6
|
+
export interface Connection {
|
|
7
|
+
/** Target service ID */
|
|
8
|
+
target: string;
|
|
9
|
+
/** Connection type */
|
|
10
|
+
type: ConnectionType;
|
|
11
|
+
/** Role of the declaring service in event connections */
|
|
12
|
+
role?: ConnectionRole;
|
|
13
|
+
/** API endpoints for http/grpc connections */
|
|
14
|
+
endpoints?: string[];
|
|
15
|
+
/** Event topics for event connections */
|
|
16
|
+
events?: string[];
|
|
17
|
+
/** Markdown description of this connection */
|
|
18
|
+
description?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Creates a Connection with defaults applied.
|
|
22
|
+
*/
|
|
23
|
+
export declare function createConnection(input: Connection): Connection;
|
|
24
|
+
/**
|
|
25
|
+
* Type guard for Connection.
|
|
26
|
+
*/
|
|
27
|
+
export declare function isConnection(value: unknown): value is Connection;
|
|
28
|
+
//# sourceMappingURL=connection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/domain/connection.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AACvD,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,UAAU,CAAC;AAErD,MAAM,WAAW,UAAU;IACzB,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB;IACtB,IAAI,EAAE,cAAc,CAAC;IACrB,yDAAyD;IACzD,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAS9D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAkChE"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Connection entity - represents a dependency from one service to another.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Creates a Connection with defaults applied.
|
|
6
|
+
*/
|
|
7
|
+
export function createConnection(input) {
|
|
8
|
+
return {
|
|
9
|
+
target: input.target,
|
|
10
|
+
type: input.type,
|
|
11
|
+
...(input.role && { role: input.role }),
|
|
12
|
+
...(input.endpoints && { endpoints: input.endpoints }),
|
|
13
|
+
...(input.events && { events: input.events }),
|
|
14
|
+
...(input.description && { description: input.description }),
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Type guard for Connection.
|
|
19
|
+
*/
|
|
20
|
+
export function isConnection(value) {
|
|
21
|
+
if (typeof value !== 'object' || value === null) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
const conn = value;
|
|
25
|
+
if (typeof conn['target'] !== 'string' || conn['target'].length === 0) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
if (conn['type'] !== 'http' && conn['type'] !== 'event' && conn['type'] !== 'grpc') {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
if (conn['role'] !== undefined) {
|
|
32
|
+
if (conn['role'] !== 'producer' && conn['role'] !== 'consumer')
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
if (conn['endpoints'] !== undefined) {
|
|
36
|
+
if (!Array.isArray(conn['endpoints']))
|
|
37
|
+
return false;
|
|
38
|
+
if (!conn['endpoints'].every((e) => typeof e === 'string'))
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
if (conn['events'] !== undefined) {
|
|
42
|
+
if (!Array.isArray(conn['events']))
|
|
43
|
+
return false;
|
|
44
|
+
if (!conn['events'].every((e) => typeof e === 'string'))
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
if (conn['description'] !== undefined) {
|
|
48
|
+
if (typeof conn['description'] !== 'string')
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=connection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/domain/connection.ts"],"names":[],"mappings":"AAAA;;GAEG;AAoBH;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAiB;IAChD,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QACvC,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;QACtD,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;QAC7C,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;KAC7D,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,GAAG,KAAgC,CAAC;IAE9C,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE,CAAC;QACnF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,UAAU;YAAE,OAAO,KAAK,CAAC;IAC/E,CAAC;IAED,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,SAAS,EAAE,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC3E,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IACxE,CAAC;IAED,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,SAAS,EAAE,CAAC;QACtC,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;IAC5D,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.test.d.ts","sourceRoot":"","sources":["../../src/domain/connection.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { createConnection, isConnection } from './connection.js';
|
|
3
|
+
describe('Connection entity', () => {
|
|
4
|
+
describe('createConnection', () => {
|
|
5
|
+
it('creates http connection with endpoints', () => {
|
|
6
|
+
const conn = createConnection({
|
|
7
|
+
target: 'billing-service',
|
|
8
|
+
type: 'http',
|
|
9
|
+
endpoints: ['/payments', '/refunds'],
|
|
10
|
+
});
|
|
11
|
+
expect(conn.target).toBe('billing-service');
|
|
12
|
+
expect(conn.type).toBe('http');
|
|
13
|
+
expect(conn.endpoints).toEqual(['/payments', '/refunds']);
|
|
14
|
+
expect(conn.events).toBeUndefined();
|
|
15
|
+
});
|
|
16
|
+
it('creates event connection with events', () => {
|
|
17
|
+
const conn = createConnection({
|
|
18
|
+
target: 'crm-service',
|
|
19
|
+
type: 'event',
|
|
20
|
+
events: ['order.created', 'order.shipped'],
|
|
21
|
+
});
|
|
22
|
+
expect(conn.target).toBe('crm-service');
|
|
23
|
+
expect(conn.type).toBe('event');
|
|
24
|
+
expect(conn.events).toEqual(['order.created', 'order.shipped']);
|
|
25
|
+
expect(conn.endpoints).toBeUndefined();
|
|
26
|
+
});
|
|
27
|
+
it('creates grpc connection with endpoints', () => {
|
|
28
|
+
const conn = createConnection({
|
|
29
|
+
target: 'billing-service',
|
|
30
|
+
type: 'grpc',
|
|
31
|
+
endpoints: ['billing.v1.BillingService/Charge'],
|
|
32
|
+
});
|
|
33
|
+
expect(conn.target).toBe('billing-service');
|
|
34
|
+
expect(conn.type).toBe('grpc');
|
|
35
|
+
expect(conn.endpoints).toEqual(['billing.v1.BillingService/Charge']);
|
|
36
|
+
});
|
|
37
|
+
it('creates minimal connection without optional fields', () => {
|
|
38
|
+
const conn = createConnection({
|
|
39
|
+
target: 'auth-service',
|
|
40
|
+
type: 'http',
|
|
41
|
+
});
|
|
42
|
+
expect(conn.target).toBe('auth-service');
|
|
43
|
+
expect(conn.type).toBe('http');
|
|
44
|
+
expect(conn.endpoints).toBeUndefined();
|
|
45
|
+
expect(conn.events).toBeUndefined();
|
|
46
|
+
expect(conn.role).toBeUndefined();
|
|
47
|
+
expect(conn.description).toBeUndefined();
|
|
48
|
+
});
|
|
49
|
+
it('creates event connection with role and description', () => {
|
|
50
|
+
const conn = createConnection({
|
|
51
|
+
target: 'notifications-service',
|
|
52
|
+
type: 'event',
|
|
53
|
+
role: 'producer',
|
|
54
|
+
events: ['order.expired'],
|
|
55
|
+
description: 'Sends expiration notifications via SQS',
|
|
56
|
+
});
|
|
57
|
+
expect(conn.target).toBe('notifications-service');
|
|
58
|
+
expect(conn.type).toBe('event');
|
|
59
|
+
expect(conn.role).toBe('producer');
|
|
60
|
+
expect(conn.events).toEqual(['order.expired']);
|
|
61
|
+
expect(conn.description).toBe('Sends expiration notifications via SQS');
|
|
62
|
+
});
|
|
63
|
+
it('creates consumer event connection', () => {
|
|
64
|
+
const conn = createConnection({
|
|
65
|
+
target: 'otm-service',
|
|
66
|
+
type: 'event',
|
|
67
|
+
role: 'consumer',
|
|
68
|
+
});
|
|
69
|
+
expect(conn.role).toBe('consumer');
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
describe('isConnection', () => {
|
|
73
|
+
it('returns true for valid http connection', () => {
|
|
74
|
+
const conn = {
|
|
75
|
+
target: 'billing-service',
|
|
76
|
+
type: 'http',
|
|
77
|
+
endpoints: ['/payments'],
|
|
78
|
+
};
|
|
79
|
+
expect(isConnection(conn)).toBe(true);
|
|
80
|
+
});
|
|
81
|
+
it('returns true for valid event connection', () => {
|
|
82
|
+
const conn = {
|
|
83
|
+
target: 'crm-service',
|
|
84
|
+
type: 'event',
|
|
85
|
+
events: ['user.created'],
|
|
86
|
+
};
|
|
87
|
+
expect(isConnection(conn)).toBe(true);
|
|
88
|
+
});
|
|
89
|
+
it('returns true for valid grpc connection', () => {
|
|
90
|
+
const conn = {
|
|
91
|
+
target: 'billing-service',
|
|
92
|
+
type: 'grpc',
|
|
93
|
+
endpoints: ['billing.v1.BillingService/Charge'],
|
|
94
|
+
};
|
|
95
|
+
expect(isConnection(conn)).toBe(true);
|
|
96
|
+
});
|
|
97
|
+
it('returns true for minimal connection', () => {
|
|
98
|
+
const conn = {
|
|
99
|
+
target: 'auth-service',
|
|
100
|
+
type: 'http',
|
|
101
|
+
};
|
|
102
|
+
expect(isConnection(conn)).toBe(true);
|
|
103
|
+
});
|
|
104
|
+
it('returns false for null', () => {
|
|
105
|
+
expect(isConnection(null)).toBe(false);
|
|
106
|
+
});
|
|
107
|
+
it('returns false for non-object', () => {
|
|
108
|
+
expect(isConnection('string')).toBe(false);
|
|
109
|
+
expect(isConnection(123)).toBe(false);
|
|
110
|
+
expect(isConnection(undefined)).toBe(false);
|
|
111
|
+
});
|
|
112
|
+
it('returns false for missing target', () => {
|
|
113
|
+
expect(isConnection({ type: 'http' })).toBe(false);
|
|
114
|
+
});
|
|
115
|
+
it('returns false for empty target', () => {
|
|
116
|
+
expect(isConnection({ target: '', type: 'http' })).toBe(false);
|
|
117
|
+
});
|
|
118
|
+
it('returns false for invalid type', () => {
|
|
119
|
+
expect(isConnection({ target: 'svc', type: 'websocket' })).toBe(false);
|
|
120
|
+
expect(isConnection({ target: 'svc', type: '' })).toBe(false);
|
|
121
|
+
});
|
|
122
|
+
it('returns false for non-array endpoints', () => {
|
|
123
|
+
expect(isConnection({ target: 'svc', type: 'http', endpoints: '/path' })).toBe(false);
|
|
124
|
+
});
|
|
125
|
+
it('returns false for non-string endpoints', () => {
|
|
126
|
+
expect(isConnection({ target: 'svc', type: 'http', endpoints: [123] })).toBe(false);
|
|
127
|
+
});
|
|
128
|
+
it('returns false for non-array events', () => {
|
|
129
|
+
expect(isConnection({ target: 'svc', type: 'event', events: 'topic' })).toBe(false);
|
|
130
|
+
});
|
|
131
|
+
it('returns false for non-string events', () => {
|
|
132
|
+
expect(isConnection({ target: 'svc', type: 'event', events: [{}] })).toBe(false);
|
|
133
|
+
});
|
|
134
|
+
it('returns true for valid role', () => {
|
|
135
|
+
expect(isConnection({ target: 'svc', type: 'event', role: 'producer' })).toBe(true);
|
|
136
|
+
expect(isConnection({ target: 'svc', type: 'event', role: 'consumer' })).toBe(true);
|
|
137
|
+
});
|
|
138
|
+
it('returns false for invalid role', () => {
|
|
139
|
+
expect(isConnection({ target: 'svc', type: 'event', role: 'observer' })).toBe(false);
|
|
140
|
+
expect(isConnection({ target: 'svc', type: 'event', role: 123 })).toBe(false);
|
|
141
|
+
});
|
|
142
|
+
it('returns true for valid description', () => {
|
|
143
|
+
expect(isConnection({ target: 'svc', type: 'http', description: 'Some desc' })).toBe(true);
|
|
144
|
+
});
|
|
145
|
+
it('returns false for non-string description', () => {
|
|
146
|
+
expect(isConnection({ target: 'svc', type: 'http', description: 123 })).toBe(false);
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
//# sourceMappingURL=connection.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.test.js","sourceRoot":"","sources":["../../src/domain/connection.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAmB,MAAM,iBAAiB,CAAC;AAElF,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,IAAI,GAAG,gBAAgB,CAAC;gBAC5B,MAAM,EAAE,iBAAiB;gBACzB,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;aACrC,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;YAC1D,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,IAAI,GAAG,gBAAgB,CAAC;gBAC5B,MAAM,EAAE,aAAa;gBACrB,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC;aAC3C,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC;YAChE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,IAAI,GAAG,gBAAgB,CAAC;gBAC5B,MAAM,EAAE,iBAAiB;gBACzB,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE,CAAC,kCAAkC,CAAC;aAChD,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,IAAI,GAAG,gBAAgB,CAAC;gBAC5B,MAAM,EAAE,cAAc;gBACtB,IAAI,EAAE,MAAM;aACb,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,aAAa,EAAE,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,IAAI,GAAG,gBAAgB,CAAC;gBAC5B,MAAM,EAAE,uBAAuB;gBAC/B,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,CAAC,eAAe,CAAC;gBACzB,WAAW,EAAE,wCAAwC;aACtD,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,IAAI,GAAG,gBAAgB,CAAC;gBAC5B,MAAM,EAAE,aAAa;gBACrB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,UAAU;aACjB,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,IAAI,GAAe;gBACvB,MAAM,EAAE,iBAAiB;gBACzB,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE,CAAC,WAAW,CAAC;aACzB,CAAC;YACF,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,IAAI,GAAe;gBACvB,MAAM,EAAE,aAAa;gBACrB,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,CAAC,cAAc,CAAC;aACzB,CAAC;YACF,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,IAAI,GAAe;gBACvB,MAAM,EAAE,iBAAiB;gBACzB,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE,CAAC,kCAAkC,CAAC;aAChD,CAAC;YACF,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,IAAI,GAAe;gBACvB,MAAM,EAAE,cAAc;gBACtB,IAAI,EAAE,MAAM;aACb,CAAC;YACF,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;YAChC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3C,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpF,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrF,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Link } from './service.js';
|
|
2
|
+
export type DataStoreType = 'database' | 'cache' | 'queue' | 'search-index' | 'object-store';
|
|
3
|
+
export interface DataStore {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
description: string;
|
|
7
|
+
type: DataStoreType;
|
|
8
|
+
domain?: string;
|
|
9
|
+
owner?: string;
|
|
10
|
+
technology?: string;
|
|
11
|
+
links?: Link[];
|
|
12
|
+
content?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare function isDataStore(value: unknown): value is DataStore;
|
|
15
|
+
export interface CreateDataStoreOptions {
|
|
16
|
+
domain?: string;
|
|
17
|
+
owner?: string;
|
|
18
|
+
technology?: string;
|
|
19
|
+
links?: Link[];
|
|
20
|
+
content?: string;
|
|
21
|
+
}
|
|
22
|
+
export declare function createDataStore(id: string, name: string, description: string, type: DataStoreType, options?: CreateDataStoreOptions): DataStore;
|
|
23
|
+
//# sourceMappingURL=data-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-store.d.ts","sourceRoot":"","sources":["../../src/domain/data-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,cAAc,GAAG,cAAc,CAAC;AAE7F,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CA0B9D;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,eAAe,CAC7B,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,aAAa,EACnB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,SAAS,CAYX"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
const VALID_TYPES = new Set(['database', 'cache', 'queue', 'search-index', 'object-store']);
|
|
2
|
+
export function isDataStore(value) {
|
|
3
|
+
if (typeof value !== 'object' || value === null)
|
|
4
|
+
return false;
|
|
5
|
+
const obj = value;
|
|
6
|
+
// Required fields
|
|
7
|
+
if (typeof obj['id'] !== 'string')
|
|
8
|
+
return false;
|
|
9
|
+
if (typeof obj['name'] !== 'string')
|
|
10
|
+
return false;
|
|
11
|
+
if (typeof obj['description'] !== 'string')
|
|
12
|
+
return false;
|
|
13
|
+
if (typeof obj['type'] !== 'string' || !VALID_TYPES.has(obj['type']))
|
|
14
|
+
return false;
|
|
15
|
+
// Optional fields
|
|
16
|
+
if ('domain' in obj && obj['domain'] !== undefined && typeof obj['domain'] !== 'string') {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
if ('owner' in obj && obj['owner'] !== undefined && typeof obj['owner'] !== 'string') {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
if ('technology' in obj &&
|
|
23
|
+
obj['technology'] !== undefined &&
|
|
24
|
+
typeof obj['technology'] !== 'string') {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
export function createDataStore(id, name, description, type, options) {
|
|
30
|
+
return {
|
|
31
|
+
id,
|
|
32
|
+
name,
|
|
33
|
+
description,
|
|
34
|
+
type,
|
|
35
|
+
...(options?.domain !== undefined && { domain: options.domain }),
|
|
36
|
+
...(options?.owner !== undefined && { owner: options.owner }),
|
|
37
|
+
...(options?.technology !== undefined && { technology: options.technology }),
|
|
38
|
+
...(options?.links !== undefined && { links: options.links }),
|
|
39
|
+
...(options?.content !== undefined && { content: options.content }),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=data-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-store.js","sourceRoot":"","sources":["../../src/domain/data-store.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,GAAG,IAAI,GAAG,CAAS,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC;AAEpG,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,GAAG,GAAG,KAAgC,CAAC;IAE7C,kBAAkB;IAClB,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAChD,IAAI,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAClD,IAAI,OAAO,GAAG,CAAC,aAAa,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACzD,IAAI,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAEnF,kBAAkB;IAClB,IAAI,QAAQ,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC;QACxF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACrF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IACE,YAAY,IAAI,GAAG;QACnB,GAAG,CAAC,YAAY,CAAC,KAAK,SAAS;QAC/B,OAAO,GAAG,CAAC,YAAY,CAAC,KAAK,QAAQ,EACrC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAUD,MAAM,UAAU,eAAe,CAC7B,EAAU,EACV,IAAY,EACZ,WAAmB,EACnB,IAAmB,EACnB,OAAgC;IAEhC,OAAO;QACL,EAAE;QACF,IAAI;QACJ,WAAW;QACX,IAAI;QACJ,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QAChE,GAAG,CAAC,OAAO,EAAE,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QAC7D,GAAG,CAAC,OAAO,EAAE,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;QAC5E,GAAG,CAAC,OAAO,EAAE,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QAC7D,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;KACpE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-store.test.d.ts","sourceRoot":"","sources":["../../src/domain/data-store.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { isDataStore, createDataStore } from './data-store.js';
|
|
3
|
+
describe('DataStore', () => {
|
|
4
|
+
describe('isDataStore', () => {
|
|
5
|
+
it('returns true for valid data store', () => {
|
|
6
|
+
const ds = {
|
|
7
|
+
id: 'orders-db',
|
|
8
|
+
name: 'Orders DB',
|
|
9
|
+
description: 'Primary database',
|
|
10
|
+
type: 'database',
|
|
11
|
+
};
|
|
12
|
+
expect(isDataStore(ds)).toBe(true);
|
|
13
|
+
});
|
|
14
|
+
it('validates all types', () => {
|
|
15
|
+
const types = ['database', 'cache', 'queue', 'search-index', 'object-store'];
|
|
16
|
+
for (const type of types) {
|
|
17
|
+
expect(isDataStore({ id: 'test', name: 'Test', description: 'Desc', type })).toBe(true);
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
it('returns false for missing id', () => {
|
|
21
|
+
expect(isDataStore({ name: 'Test', description: 'Desc', type: 'database' })).toBe(false);
|
|
22
|
+
});
|
|
23
|
+
it('returns false for missing name', () => {
|
|
24
|
+
expect(isDataStore({ id: 'test', description: 'Desc', type: 'database' })).toBe(false);
|
|
25
|
+
});
|
|
26
|
+
it('returns false for missing description', () => {
|
|
27
|
+
expect(isDataStore({ id: 'test', name: 'Test', type: 'database' })).toBe(false);
|
|
28
|
+
});
|
|
29
|
+
it('returns false for missing type', () => {
|
|
30
|
+
expect(isDataStore({ id: 'test', name: 'Test', description: 'Desc' })).toBe(false);
|
|
31
|
+
});
|
|
32
|
+
it('returns false for invalid type', () => {
|
|
33
|
+
expect(isDataStore({ id: 'test', name: 'Test', description: 'Desc', type: 'nosql' })).toBe(false);
|
|
34
|
+
});
|
|
35
|
+
it('returns false for non-object', () => {
|
|
36
|
+
expect(isDataStore(null)).toBe(false);
|
|
37
|
+
expect(isDataStore('string')).toBe(false);
|
|
38
|
+
expect(isDataStore(42)).toBe(false);
|
|
39
|
+
});
|
|
40
|
+
it('returns false for non-string optional fields', () => {
|
|
41
|
+
const base = { id: 'test', name: 'Test', description: 'Desc', type: 'database' };
|
|
42
|
+
expect(isDataStore({ ...base, domain: 42 })).toBe(false);
|
|
43
|
+
expect(isDataStore({ ...base, owner: 42 })).toBe(false);
|
|
44
|
+
expect(isDataStore({ ...base, technology: 42 })).toBe(false);
|
|
45
|
+
});
|
|
46
|
+
it('accepts valid optional fields', () => {
|
|
47
|
+
expect(isDataStore({
|
|
48
|
+
id: 'test',
|
|
49
|
+
name: 'Test',
|
|
50
|
+
description: 'Desc',
|
|
51
|
+
type: 'database',
|
|
52
|
+
domain: 'commerce',
|
|
53
|
+
owner: 'order-service',
|
|
54
|
+
technology: 'PostgreSQL',
|
|
55
|
+
})).toBe(true);
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
describe('createDataStore', () => {
|
|
59
|
+
it('creates data store with required fields only', () => {
|
|
60
|
+
const ds = createDataStore('orders-db', 'Orders DB', 'Primary database', 'database');
|
|
61
|
+
expect(ds).toEqual({
|
|
62
|
+
id: 'orders-db',
|
|
63
|
+
name: 'Orders DB',
|
|
64
|
+
description: 'Primary database',
|
|
65
|
+
type: 'database',
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
it('creates data store with all optional fields', () => {
|
|
69
|
+
const links = [{ url: 'https://dash.io', title: 'Dashboard' }];
|
|
70
|
+
const ds = createDataStore('orders-db', 'Orders DB', 'Primary database', 'database', {
|
|
71
|
+
domain: 'commerce',
|
|
72
|
+
owner: 'order-service',
|
|
73
|
+
technology: 'PostgreSQL',
|
|
74
|
+
links,
|
|
75
|
+
content: 'Some content',
|
|
76
|
+
});
|
|
77
|
+
expect(ds.domain).toBe('commerce');
|
|
78
|
+
expect(ds.owner).toBe('order-service');
|
|
79
|
+
expect(ds.technology).toBe('PostgreSQL');
|
|
80
|
+
expect(ds.links).toBe(links);
|
|
81
|
+
expect(ds.content).toBe('Some content');
|
|
82
|
+
});
|
|
83
|
+
it('omits optional fields when not provided', () => {
|
|
84
|
+
const ds = createDataStore('test', 'Test', 'Desc', 'cache');
|
|
85
|
+
expect('domain' in ds).toBe(false);
|
|
86
|
+
expect('owner' in ds).toBe(false);
|
|
87
|
+
expect('technology' in ds).toBe(false);
|
|
88
|
+
expect('links' in ds).toBe(false);
|
|
89
|
+
expect('content' in ds).toBe(false);
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
//# sourceMappingURL=data-store.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-store.test.js","sourceRoot":"","sources":["../../src/domain/data-store.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface Domain {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
description: string;
|
|
5
|
+
parent?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function isDomain(value: unknown): value is Domain;
|
|
8
|
+
export declare function createDomain(id: string, name: string, description: string, parent?: string): Domain;
|
|
9
|
+
//# sourceMappingURL=domain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../src/domain/domain.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAexD;AAED,wBAAgB,YAAY,CAC1B,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAOR"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export function isDomain(value) {
|
|
2
|
+
if (typeof value !== 'object' || value === null)
|
|
3
|
+
return false;
|
|
4
|
+
const obj = value;
|
|
5
|
+
// Required fields
|
|
6
|
+
if (typeof obj['id'] !== 'string')
|
|
7
|
+
return false;
|
|
8
|
+
if (typeof obj['name'] !== 'string')
|
|
9
|
+
return false;
|
|
10
|
+
if (typeof obj['description'] !== 'string')
|
|
11
|
+
return false;
|
|
12
|
+
// Optional parent
|
|
13
|
+
if ('parent' in obj && obj['parent'] !== undefined && typeof obj['parent'] !== 'string') {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
export function createDomain(id, name, description, parent) {
|
|
19
|
+
return {
|
|
20
|
+
id,
|
|
21
|
+
name,
|
|
22
|
+
description,
|
|
23
|
+
...(parent !== undefined && { parent }),
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=domain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain.js","sourceRoot":"","sources":["../../src/domain/domain.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,GAAG,GAAG,KAAgC,CAAC;IAE7C,kBAAkB;IAClB,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAChD,IAAI,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAClD,IAAI,OAAO,GAAG,CAAC,aAAa,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAEzD,kBAAkB;IAClB,IAAI,QAAQ,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC;QACxF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,EAAU,EACV,IAAY,EACZ,WAAmB,EACnB,MAAe;IAEf,OAAO;QACL,EAAE;QACF,IAAI;QACJ,WAAW;QACX,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,CAAC;KACxC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain.test.d.ts","sourceRoot":"","sources":["../../src/domain/domain.test.ts"],"names":[],"mappings":""}
|