@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.
Files changed (201) hide show
  1. package/dist/adapters/index.d.ts +8 -0
  2. package/dist/adapters/index.d.ts.map +1 -0
  3. package/dist/adapters/index.js +8 -0
  4. package/dist/adapters/index.js.map +1 -0
  5. package/dist/adapters/loaders/filesystem.loader.d.ts +27 -0
  6. package/dist/adapters/loaders/filesystem.loader.d.ts.map +1 -0
  7. package/dist/adapters/loaders/filesystem.loader.js +183 -0
  8. package/dist/adapters/loaders/filesystem.loader.js.map +1 -0
  9. package/dist/adapters/loaders/filesystem.loader.test.d.ts +2 -0
  10. package/dist/adapters/loaders/filesystem.loader.test.d.ts.map +1 -0
  11. package/dist/adapters/loaders/filesystem.loader.test.js +576 -0
  12. package/dist/adapters/loaders/filesystem.loader.test.js.map +1 -0
  13. package/dist/adapters/parsers/bpmn-steps.d.ts +5 -0
  14. package/dist/adapters/parsers/bpmn-steps.d.ts.map +1 -0
  15. package/dist/adapters/parsers/bpmn-steps.js +124 -0
  16. package/dist/adapters/parsers/bpmn-steps.js.map +1 -0
  17. package/dist/adapters/parsers/bpmn-steps.test.d.ts +2 -0
  18. package/dist/adapters/parsers/bpmn-steps.test.d.ts.map +1 -0
  19. package/dist/adapters/parsers/bpmn-steps.test.js +112 -0
  20. package/dist/adapters/parsers/bpmn-steps.test.js.map +1 -0
  21. package/dist/adapters/parsers/bpmn-txt.parser.d.ts +21 -0
  22. package/dist/adapters/parsers/bpmn-txt.parser.d.ts.map +1 -0
  23. package/dist/adapters/parsers/bpmn-txt.parser.js +56 -0
  24. package/dist/adapters/parsers/bpmn-txt.parser.js.map +1 -0
  25. package/dist/adapters/parsers/bpmn-txt.parser.test.d.ts +2 -0
  26. package/dist/adapters/parsers/bpmn-txt.parser.test.d.ts.map +1 -0
  27. package/dist/adapters/parsers/bpmn-txt.parser.test.js +71 -0
  28. package/dist/adapters/parsers/bpmn-txt.parser.test.js.map +1 -0
  29. package/dist/adapters/parsers/markdown.parser.d.ts +22 -0
  30. package/dist/adapters/parsers/markdown.parser.d.ts.map +1 -0
  31. package/dist/adapters/parsers/markdown.parser.js +85 -0
  32. package/dist/adapters/parsers/markdown.parser.js.map +1 -0
  33. package/dist/adapters/parsers/markdown.parser.test.d.ts +2 -0
  34. package/dist/adapters/parsers/markdown.parser.test.d.ts.map +1 -0
  35. package/dist/adapters/parsers/markdown.parser.test.js +149 -0
  36. package/dist/adapters/parsers/markdown.parser.test.js.map +1 -0
  37. package/dist/adapters/parsers/sidecar.transforms.d.ts +104 -0
  38. package/dist/adapters/parsers/sidecar.transforms.d.ts.map +1 -0
  39. package/dist/adapters/parsers/sidecar.transforms.js +133 -0
  40. package/dist/adapters/parsers/sidecar.transforms.js.map +1 -0
  41. package/dist/adapters/parsers/toml.parser.d.ts +17 -0
  42. package/dist/adapters/parsers/toml.parser.d.ts.map +1 -0
  43. package/dist/adapters/parsers/toml.parser.js +91 -0
  44. package/dist/adapters/parsers/toml.parser.js.map +1 -0
  45. package/dist/adapters/parsers/toml.parser.test.d.ts +2 -0
  46. package/dist/adapters/parsers/toml.parser.test.d.ts.map +1 -0
  47. package/dist/adapters/parsers/toml.parser.test.js +345 -0
  48. package/dist/adapters/parsers/toml.parser.test.js.map +1 -0
  49. package/dist/adapters/parsers/yaml.parser.d.ts +17 -0
  50. package/dist/adapters/parsers/yaml.parser.d.ts.map +1 -0
  51. package/dist/adapters/parsers/yaml.parser.js +67 -0
  52. package/dist/adapters/parsers/yaml.parser.js.map +1 -0
  53. package/dist/adapters/parsers/yaml.parser.test.d.ts +2 -0
  54. package/dist/adapters/parsers/yaml.parser.test.d.ts.map +1 -0
  55. package/dist/adapters/parsers/yaml.parser.test.js +171 -0
  56. package/dist/adapters/parsers/yaml.parser.test.js.map +1 -0
  57. package/dist/adapters/persistence/json.writer.d.ts +7 -0
  58. package/dist/adapters/persistence/json.writer.d.ts.map +1 -0
  59. package/dist/adapters/persistence/json.writer.js +14 -0
  60. package/dist/adapters/persistence/json.writer.js.map +1 -0
  61. package/dist/adapters/persistence/json.writer.test.d.ts +2 -0
  62. package/dist/adapters/persistence/json.writer.test.d.ts.map +1 -0
  63. package/dist/adapters/persistence/json.writer.test.js +111 -0
  64. package/dist/adapters/persistence/json.writer.test.js.map +1 -0
  65. package/dist/domain/catalog.d.ts +28 -0
  66. package/dist/domain/catalog.d.ts.map +1 -0
  67. package/dist/domain/catalog.js +46 -0
  68. package/dist/domain/catalog.js.map +1 -0
  69. package/dist/domain/catalog.test.d.ts +2 -0
  70. package/dist/domain/catalog.test.d.ts.map +1 -0
  71. package/dist/domain/catalog.test.js +346 -0
  72. package/dist/domain/catalog.test.js.map +1 -0
  73. package/dist/domain/connection.d.ts +28 -0
  74. package/dist/domain/connection.d.ts.map +1 -0
  75. package/dist/domain/connection.js +53 -0
  76. package/dist/domain/connection.js.map +1 -0
  77. package/dist/domain/connection.test.d.ts +2 -0
  78. package/dist/domain/connection.test.d.ts.map +1 -0
  79. package/dist/domain/connection.test.js +150 -0
  80. package/dist/domain/connection.test.js.map +1 -0
  81. package/dist/domain/data-store.d.ts +23 -0
  82. package/dist/domain/data-store.d.ts.map +1 -0
  83. package/dist/domain/data-store.js +42 -0
  84. package/dist/domain/data-store.js.map +1 -0
  85. package/dist/domain/data-store.test.d.ts +2 -0
  86. package/dist/domain/data-store.test.d.ts.map +1 -0
  87. package/dist/domain/data-store.test.js +93 -0
  88. package/dist/domain/data-store.test.js.map +1 -0
  89. package/dist/domain/domain.d.ts +9 -0
  90. package/dist/domain/domain.d.ts.map +1 -0
  91. package/dist/domain/domain.js +26 -0
  92. package/dist/domain/domain.js.map +1 -0
  93. package/dist/domain/domain.test.d.ts +2 -0
  94. package/dist/domain/domain.test.d.ts.map +1 -0
  95. package/dist/domain/domain.test.js +92 -0
  96. package/dist/domain/domain.test.js.map +1 -0
  97. package/dist/domain/graph.d.ts +23 -0
  98. package/dist/domain/graph.d.ts.map +1 -0
  99. package/dist/domain/graph.js +2 -0
  100. package/dist/domain/graph.js.map +1 -0
  101. package/dist/domain/index.d.ts +8 -0
  102. package/dist/domain/index.d.ts.map +1 -0
  103. package/dist/domain/index.js +8 -0
  104. package/dist/domain/index.js.map +1 -0
  105. package/dist/domain/service.d.ts +66 -0
  106. package/dist/domain/service.d.ts.map +1 -0
  107. package/dist/domain/service.js +61 -0
  108. package/dist/domain/service.js.map +1 -0
  109. package/dist/domain/service.test.d.ts +2 -0
  110. package/dist/domain/service.test.d.ts.map +1 -0
  111. package/dist/domain/service.test.js +181 -0
  112. package/dist/domain/service.test.js.map +1 -0
  113. package/dist/domain/use-case.d.ts +47 -0
  114. package/dist/domain/use-case.d.ts.map +1 -0
  115. package/dist/domain/use-case.js +70 -0
  116. package/dist/domain/use-case.js.map +1 -0
  117. package/dist/domain/use-case.test.d.ts +2 -0
  118. package/dist/domain/use-case.test.d.ts.map +1 -0
  119. package/dist/domain/use-case.test.js +249 -0
  120. package/dist/domain/use-case.test.js.map +1 -0
  121. package/dist/index.d.ts +6 -0
  122. package/dist/index.d.ts.map +1 -0
  123. package/dist/index.js +11 -0
  124. package/dist/index.js.map +1 -0
  125. package/dist/ports/catalog-loader.port.d.ts +5 -0
  126. package/dist/ports/catalog-loader.port.d.ts.map +1 -0
  127. package/dist/ports/catalog-loader.port.js +2 -0
  128. package/dist/ports/catalog-loader.port.js.map +1 -0
  129. package/dist/ports/catalog-writer.port.d.ts +5 -0
  130. package/dist/ports/catalog-writer.port.d.ts.map +1 -0
  131. package/dist/ports/catalog-writer.port.js +2 -0
  132. package/dist/ports/catalog-writer.port.js.map +1 -0
  133. package/dist/ports/index.d.ts +3 -0
  134. package/dist/ports/index.d.ts.map +1 -0
  135. package/dist/ports/index.js +3 -0
  136. package/dist/ports/index.js.map +1 -0
  137. package/dist/schemas/catalog-config.schema.d.ts +23 -0
  138. package/dist/schemas/catalog-config.schema.d.ts.map +1 -0
  139. package/dist/schemas/catalog-config.schema.js +20 -0
  140. package/dist/schemas/catalog-config.schema.js.map +1 -0
  141. package/dist/schemas/catalog.schema.d.ts +248 -0
  142. package/dist/schemas/catalog.schema.d.ts.map +1 -0
  143. package/dist/schemas/catalog.schema.js +94 -0
  144. package/dist/schemas/catalog.schema.js.map +1 -0
  145. package/dist/schemas/connection.schema.d.ts +19 -0
  146. package/dist/schemas/connection.schema.d.ts.map +1 -0
  147. package/dist/schemas/connection.schema.js +25 -0
  148. package/dist/schemas/connection.schema.js.map +1 -0
  149. package/dist/schemas/connection.schema.test.d.ts +2 -0
  150. package/dist/schemas/connection.schema.test.d.ts.map +1 -0
  151. package/dist/schemas/connection.schema.test.js +114 -0
  152. package/dist/schemas/connection.schema.test.js.map +1 -0
  153. package/dist/schemas/data-store.schema.d.ts +20 -0
  154. package/dist/schemas/data-store.schema.d.ts.map +1 -0
  155. package/dist/schemas/data-store.schema.js +22 -0
  156. package/dist/schemas/data-store.schema.js.map +1 -0
  157. package/dist/schemas/data-store.schema.test.d.ts +2 -0
  158. package/dist/schemas/data-store.schema.test.d.ts.map +1 -0
  159. package/dist/schemas/data-store.schema.test.js +68 -0
  160. package/dist/schemas/data-store.schema.test.js.map +1 -0
  161. package/dist/schemas/domain.schema.d.ts +11 -0
  162. package/dist/schemas/domain.schema.d.ts.map +1 -0
  163. package/dist/schemas/domain.schema.js +10 -0
  164. package/dist/schemas/domain.schema.js.map +1 -0
  165. package/dist/schemas/domain.schema.test.d.ts +2 -0
  166. package/dist/schemas/domain.schema.test.d.ts.map +1 -0
  167. package/dist/schemas/domain.schema.test.js +95 -0
  168. package/dist/schemas/domain.schema.test.js.map +1 -0
  169. package/dist/schemas/index.d.ts +8 -0
  170. package/dist/schemas/index.d.ts.map +1 -0
  171. package/dist/schemas/index.js +8 -0
  172. package/dist/schemas/index.js.map +1 -0
  173. package/dist/schemas/service.schema.d.ts +61 -0
  174. package/dist/schemas/service.schema.d.ts.map +1 -0
  175. package/dist/schemas/service.schema.js +59 -0
  176. package/dist/schemas/service.schema.js.map +1 -0
  177. package/dist/schemas/service.schema.test.d.ts +2 -0
  178. package/dist/schemas/service.schema.test.d.ts.map +1 -0
  179. package/dist/schemas/service.schema.test.js +137 -0
  180. package/dist/schemas/service.schema.test.js.map +1 -0
  181. package/dist/schemas/use-case.schema.d.ts +54 -0
  182. package/dist/schemas/use-case.schema.d.ts.map +1 -0
  183. package/dist/schemas/use-case.schema.js +38 -0
  184. package/dist/schemas/use-case.schema.js.map +1 -0
  185. package/dist/schemas/use-case.schema.test.d.ts +2 -0
  186. package/dist/schemas/use-case.schema.test.d.ts.map +1 -0
  187. package/dist/schemas/use-case.schema.test.js +152 -0
  188. package/dist/schemas/use-case.schema.test.js.map +1 -0
  189. package/dist/services/graph-builder.d.ts +21 -0
  190. package/dist/services/graph-builder.d.ts.map +1 -0
  191. package/dist/services/graph-builder.js +138 -0
  192. package/dist/services/graph-builder.js.map +1 -0
  193. package/dist/services/graph-builder.test.d.ts +2 -0
  194. package/dist/services/graph-builder.test.d.ts.map +1 -0
  195. package/dist/services/graph-builder.test.js +393 -0
  196. package/dist/services/graph-builder.test.js.map +1 -0
  197. package/dist/services/index.d.ts +2 -0
  198. package/dist/services/index.d.ts.map +1 -0
  199. package/dist/services/index.js +2 -0
  200. package/dist/services/index.js.map +1 -0
  201. 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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=connection.test.d.ts.map
@@ -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":"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"}
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data-store.test.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=domain.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain.test.d.ts","sourceRoot":"","sources":["../../src/domain/domain.test.ts"],"names":[],"mappings":""}