@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,149 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { parseUseCaseMarkdown, markdownToUseCase } from './markdown.parser.js';
|
|
3
|
+
const EXAMPLE_MD = `---
|
|
4
|
+
id: order-data
|
|
5
|
+
name: Order Data Products
|
|
6
|
+
domain: data-delivery
|
|
7
|
+
participants:
|
|
8
|
+
- service: catalog-ui
|
|
9
|
+
role: frontend
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Overview
|
|
13
|
+
Customer browses and orders satellite data.
|
|
14
|
+
|
|
15
|
+
\`\`\`bpmn
|
|
16
|
+
process: order-data
|
|
17
|
+
task: browse
|
|
18
|
+
name: "Browse Products"
|
|
19
|
+
type: user
|
|
20
|
+
service: catalog-ui
|
|
21
|
+
doc: browsing
|
|
22
|
+
|
|
23
|
+
task: validate-order
|
|
24
|
+
name: "Validate Order"
|
|
25
|
+
type: service
|
|
26
|
+
service: catalog-order-service
|
|
27
|
+
doc: order-validation
|
|
28
|
+
\`\`\`
|
|
29
|
+
|
|
30
|
+
## Browsing {#browsing}
|
|
31
|
+
|
|
32
|
+
Detailed explanation of the browsing step...
|
|
33
|
+
|
|
34
|
+
## Order Validation {#order-validation}
|
|
35
|
+
|
|
36
|
+
The order service checks inventory...
|
|
37
|
+
`;
|
|
38
|
+
describe('parseUseCaseMarkdown', () => {
|
|
39
|
+
it('extracts frontmatter', () => {
|
|
40
|
+
const result = parseUseCaseMarkdown(EXAMPLE_MD);
|
|
41
|
+
expect(result.frontmatter.id).toBe('order-data');
|
|
42
|
+
expect(result.frontmatter.name).toBe('Order Data Products');
|
|
43
|
+
expect(result.frontmatter.domain).toBe('data-delivery');
|
|
44
|
+
expect(result.frontmatter.participants).toHaveLength(1);
|
|
45
|
+
expect(result.frontmatter.participants?.[0]?.service).toBe('catalog-ui');
|
|
46
|
+
});
|
|
47
|
+
it('extracts bpmn blocks', () => {
|
|
48
|
+
const result = parseUseCaseMarkdown(EXAMPLE_MD);
|
|
49
|
+
expect(result.bpmnBlocks).toHaveLength(1);
|
|
50
|
+
expect(result.bpmnBlocks[0]).toContain('process: order-data');
|
|
51
|
+
expect(result.bpmnBlocks[0]).toContain('task: browse');
|
|
52
|
+
});
|
|
53
|
+
it('strips bpmn from content', () => {
|
|
54
|
+
const result = parseUseCaseMarkdown(EXAMPLE_MD);
|
|
55
|
+
expect(result.content).not.toContain('```bpmn');
|
|
56
|
+
expect(result.content).toContain('## Browsing');
|
|
57
|
+
expect(result.content).toContain('## Order Validation');
|
|
58
|
+
});
|
|
59
|
+
it('extracts description from # Overview', () => {
|
|
60
|
+
const result = parseUseCaseMarkdown(EXAMPLE_MD);
|
|
61
|
+
expect(result.description).toBe('Customer browses and orders satellite data.');
|
|
62
|
+
});
|
|
63
|
+
it('extracts description from first paragraph when no overview', () => {
|
|
64
|
+
const md = `---
|
|
65
|
+
id: test
|
|
66
|
+
name: Test
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
First paragraph of description.
|
|
70
|
+
|
|
71
|
+
## Section
|
|
72
|
+
Details...
|
|
73
|
+
`;
|
|
74
|
+
const result = parseUseCaseMarkdown(md);
|
|
75
|
+
expect(result.description).toBe('First paragraph of description.');
|
|
76
|
+
});
|
|
77
|
+
it('handles missing bpmn blocks', () => {
|
|
78
|
+
const md = `---
|
|
79
|
+
id: simple
|
|
80
|
+
name: Simple
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
Just prose content.
|
|
84
|
+
`;
|
|
85
|
+
const result = parseUseCaseMarkdown(md);
|
|
86
|
+
expect(result.bpmnBlocks).toHaveLength(0);
|
|
87
|
+
expect(result.content).toBe('Just prose content.');
|
|
88
|
+
});
|
|
89
|
+
it('throws on invalid frontmatter', () => {
|
|
90
|
+
const md = `---
|
|
91
|
+
name: Missing ID
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
Content
|
|
95
|
+
`;
|
|
96
|
+
expect(() => parseUseCaseMarkdown(md)).toThrow('Invalid use-case.md frontmatter');
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
describe('markdownToUseCase', () => {
|
|
100
|
+
it('creates UseCase from parsed markdown', () => {
|
|
101
|
+
const parsed = parseUseCaseMarkdown(EXAMPLE_MD);
|
|
102
|
+
const useCase = markdownToUseCase(parsed);
|
|
103
|
+
expect(useCase.id).toBe('order-data');
|
|
104
|
+
expect(useCase.name).toBe('Order Data Products');
|
|
105
|
+
expect(useCase.domain).toBe('data-delivery');
|
|
106
|
+
expect(useCase.description).toBe('Customer browses and orders satellite data.');
|
|
107
|
+
expect(useCase.steps).toEqual([]);
|
|
108
|
+
expect(useCase.content).toBeTruthy();
|
|
109
|
+
});
|
|
110
|
+
it('derives participants from service refs', () => {
|
|
111
|
+
const parsed = parseUseCaseMarkdown(EXAMPLE_MD);
|
|
112
|
+
const useCase = markdownToUseCase(parsed, {
|
|
113
|
+
serviceRefs: [
|
|
114
|
+
{ elementId: 'browse', serviceId: 'catalog-ui' },
|
|
115
|
+
{ elementId: 'validate', serviceId: 'catalog-order-service' },
|
|
116
|
+
],
|
|
117
|
+
});
|
|
118
|
+
// catalog-ui overridden by frontmatter (role: frontend)
|
|
119
|
+
// catalog-order-service derived (role: bpmn-participant)
|
|
120
|
+
expect(useCase.participants).toHaveLength(2);
|
|
121
|
+
const uiParticipant = useCase.participants.find((p) => p.service === 'catalog-ui');
|
|
122
|
+
expect(uiParticipant?.role).toBe('frontend');
|
|
123
|
+
const orderParticipant = useCase.participants.find((p) => p.service === 'catalog-order-service');
|
|
124
|
+
expect(orderParticipant?.role).toBe('bpmn-participant');
|
|
125
|
+
});
|
|
126
|
+
it('passes through bpmn XML and links', () => {
|
|
127
|
+
const parsed = parseUseCaseMarkdown(EXAMPLE_MD);
|
|
128
|
+
const docLinks = [{ elementId: 'browse', anchor: 'browsing' }];
|
|
129
|
+
const serviceRefs = [{ elementId: 'browse', serviceId: 'catalog-ui' }];
|
|
130
|
+
const useCase = markdownToUseCase(parsed, {
|
|
131
|
+
bpmnXml: '<xml/>',
|
|
132
|
+
docLinks,
|
|
133
|
+
serviceRefs,
|
|
134
|
+
});
|
|
135
|
+
expect(useCase.bpmn).toBe('<xml/>');
|
|
136
|
+
expect(useCase.docLinks).toEqual(docLinks);
|
|
137
|
+
expect(useCase.serviceRefs).toEqual(serviceRefs);
|
|
138
|
+
});
|
|
139
|
+
it('accepts steps via options', () => {
|
|
140
|
+
const parsed = parseUseCaseMarkdown(EXAMPLE_MD);
|
|
141
|
+
const steps = [
|
|
142
|
+
{ sequence: 1, action: 'Browse Products', service: 'catalog-ui' },
|
|
143
|
+
{ sequence: 2, action: 'Validate Order', service: 'catalog-order-service' },
|
|
144
|
+
];
|
|
145
|
+
const useCase = markdownToUseCase(parsed, { steps });
|
|
146
|
+
expect(useCase.steps).toEqual(steps);
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
//# sourceMappingURL=markdown.parser.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.parser.test.js","sourceRoot":"","sources":["../../../src/adapters/parsers/markdown.parser.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { type ServiceSidecar } from '../../schemas/service.schema.js';
|
|
2
|
+
import { type UseCaseSidecar } from '../../schemas/use-case.schema.js';
|
|
3
|
+
import { type DomainSidecar } from '../../schemas/domain.schema.js';
|
|
4
|
+
import { type DataStoreSidecar } from '../../schemas/data-store.schema.js';
|
|
5
|
+
import type { Service } from '../../domain/service.js';
|
|
6
|
+
import type { UseCase } from '../../domain/use-case.js';
|
|
7
|
+
import type { Domain } from '../../domain/domain.js';
|
|
8
|
+
import type { DataStore } from '../../domain/data-store.js';
|
|
9
|
+
export declare const compiledServiceSchema: import("@sinclair/typebox/compiler").TypeCheck<import("@sinclair/typebox").TObject<{
|
|
10
|
+
service: import("@sinclair/typebox").TObject<{
|
|
11
|
+
id: import("@sinclair/typebox").TString;
|
|
12
|
+
name: import("@sinclair/typebox").TString;
|
|
13
|
+
description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
14
|
+
domain: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
15
|
+
type: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"web-service">, import("@sinclair/typebox").TLiteral<"event-consumer">, import("@sinclair/typebox").TLiteral<"event-producer">, import("@sinclair/typebox").TLiteral<"event-transformer">, import("@sinclair/typebox").TLiteral<"web-app">, import("@sinclair/typebox").TLiteral<"library">]>>;
|
|
16
|
+
lifecycle: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"experimental">, import("@sinclair/typebox").TLiteral<"active">, import("@sinclair/typebox").TLiteral<"deprecated">, import("@sinclair/typebox").TLiteral<"sunset">]>>;
|
|
17
|
+
owner: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
18
|
+
tags: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
|
|
19
|
+
links: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
20
|
+
url: import("@sinclair/typebox").TString;
|
|
21
|
+
title: import("@sinclair/typebox").TString;
|
|
22
|
+
type: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
23
|
+
}>>>;
|
|
24
|
+
repository: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
25
|
+
tier: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"critical">, import("@sinclair/typebox").TLiteral<"standard">, import("@sinclair/typebox").TLiteral<"internal">]>>;
|
|
26
|
+
contacts: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
27
|
+
type: import("@sinclair/typebox").TString;
|
|
28
|
+
value: import("@sinclair/typebox").TString;
|
|
29
|
+
}>>>;
|
|
30
|
+
language: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
|
|
31
|
+
frameworks: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
|
|
32
|
+
dataStores: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
33
|
+
target: import("@sinclair/typebox").TString;
|
|
34
|
+
access: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"r">, import("@sinclair/typebox").TLiteral<"rw">]>;
|
|
35
|
+
}>>>;
|
|
36
|
+
specs: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
37
|
+
openapi: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
38
|
+
asyncapi: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
39
|
+
}>>;
|
|
40
|
+
connections: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
41
|
+
target: import("@sinclair/typebox").TString;
|
|
42
|
+
type: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"http">, import("@sinclair/typebox").TLiteral<"event">, import("@sinclair/typebox").TLiteral<"grpc">]>;
|
|
43
|
+
role: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"producer">, import("@sinclair/typebox").TLiteral<"consumer">]>>;
|
|
44
|
+
endpoints: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
|
|
45
|
+
events: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
|
|
46
|
+
description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
47
|
+
}>>>;
|
|
48
|
+
}>;
|
|
49
|
+
}>>;
|
|
50
|
+
export declare const compiledUseCaseSchema: import("@sinclair/typebox/compiler").TypeCheck<import("@sinclair/typebox").TObject<{
|
|
51
|
+
use_case: import("@sinclair/typebox").TObject<{
|
|
52
|
+
id: import("@sinclair/typebox").TString;
|
|
53
|
+
name: import("@sinclair/typebox").TString;
|
|
54
|
+
description: import("@sinclair/typebox").TString;
|
|
55
|
+
domain: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
56
|
+
bpmn: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
57
|
+
participants: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
58
|
+
service: import("@sinclair/typebox").TString;
|
|
59
|
+
role: import("@sinclair/typebox").TString;
|
|
60
|
+
}>>;
|
|
61
|
+
steps: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
62
|
+
sequence: import("@sinclair/typebox").TNumber;
|
|
63
|
+
actor: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
64
|
+
service: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
65
|
+
action: import("@sinclair/typebox").TString;
|
|
66
|
+
endpoint: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
67
|
+
}>>;
|
|
68
|
+
}>;
|
|
69
|
+
}>>;
|
|
70
|
+
export declare const compiledDomainSchema: import("@sinclair/typebox/compiler").TypeCheck<import("@sinclair/typebox").TObject<{
|
|
71
|
+
domain: import("@sinclair/typebox").TObject<{
|
|
72
|
+
id: import("@sinclair/typebox").TString;
|
|
73
|
+
name: import("@sinclair/typebox").TString;
|
|
74
|
+
description: import("@sinclair/typebox").TString;
|
|
75
|
+
parent: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
76
|
+
}>;
|
|
77
|
+
}>>;
|
|
78
|
+
export declare const compiledDataStoreSchema: import("@sinclair/typebox/compiler").TypeCheck<import("@sinclair/typebox").TObject<{
|
|
79
|
+
data_store: import("@sinclair/typebox").TObject<{
|
|
80
|
+
id: import("@sinclair/typebox").TString;
|
|
81
|
+
name: import("@sinclair/typebox").TString;
|
|
82
|
+
description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
83
|
+
type: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"database">, import("@sinclair/typebox").TLiteral<"cache">, import("@sinclair/typebox").TLiteral<"queue">, import("@sinclair/typebox").TLiteral<"search-index">, import("@sinclair/typebox").TLiteral<"object-store">]>;
|
|
84
|
+
domain: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
85
|
+
owner: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
86
|
+
technology: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
87
|
+
links: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
88
|
+
url: import("@sinclair/typebox").TString;
|
|
89
|
+
title: import("@sinclair/typebox").TString;
|
|
90
|
+
type: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
91
|
+
}>>>;
|
|
92
|
+
}>;
|
|
93
|
+
}>>;
|
|
94
|
+
export declare class ValidationError extends Error {
|
|
95
|
+
readonly filePath: string;
|
|
96
|
+
readonly errors: string[];
|
|
97
|
+
constructor(message: string, filePath: string, errors: string[]);
|
|
98
|
+
toString(): string;
|
|
99
|
+
}
|
|
100
|
+
export declare function sidecarToService(sidecar: ServiceSidecar): Service;
|
|
101
|
+
export declare function sidecarToUseCase(sidecar: UseCaseSidecar): UseCase;
|
|
102
|
+
export declare function sidecarToDomain(sidecar: DomainSidecar): Domain;
|
|
103
|
+
export declare function sidecarToDataStore(sidecar: DataStoreSidecar): DataStore;
|
|
104
|
+
//# sourceMappingURL=sidecar.transforms.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidecar.transforms.d.ts","sourceRoot":"","sources":["../../../src/adapters/parsers/sidecar.transforms.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAC5F,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAC7F,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACzF,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACnG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAc,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAG5D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAA6C,CAAC;AAChF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;GAA6C,CAAC;AAChF,eAAO,MAAM,oBAAoB;;;;;;;GAA4C,CAAC;AAC9E,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;GAA+C,CAAC;AAEpF,qBAAa,eAAgB,SAAQ,KAAK;aAGtB,QAAQ,EAAE,MAAM;aAChB,MAAM,EAAE,MAAM,EAAE;gBAFhC,OAAO,EAAE,MAAM,EACC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EAAE;IAMzB,QAAQ,IAAI,MAAM;CAG5B;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAiCjE;AAeD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CA8BjE;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAc9D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAgBvE"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { TypeCompiler } from '@sinclair/typebox/compiler';
|
|
2
|
+
import { ServiceSidecarSchema } from '../../schemas/service.schema.js';
|
|
3
|
+
import { UseCaseSidecarSchema } from '../../schemas/use-case.schema.js';
|
|
4
|
+
import { DomainSidecarSchema } from '../../schemas/domain.schema.js';
|
|
5
|
+
import { DataStoreSidecarSchema } from '../../schemas/data-store.schema.js';
|
|
6
|
+
import { detectBpmnTxtContent } from './bpmn-txt.parser.js';
|
|
7
|
+
export const compiledServiceSchema = TypeCompiler.Compile(ServiceSidecarSchema);
|
|
8
|
+
export const compiledUseCaseSchema = TypeCompiler.Compile(UseCaseSidecarSchema);
|
|
9
|
+
export const compiledDomainSchema = TypeCompiler.Compile(DomainSidecarSchema);
|
|
10
|
+
export const compiledDataStoreSchema = TypeCompiler.Compile(DataStoreSidecarSchema);
|
|
11
|
+
export class ValidationError extends Error {
|
|
12
|
+
filePath;
|
|
13
|
+
errors;
|
|
14
|
+
constructor(message, filePath, errors) {
|
|
15
|
+
super(message);
|
|
16
|
+
this.filePath = filePath;
|
|
17
|
+
this.errors = errors;
|
|
18
|
+
this.name = 'ValidationError';
|
|
19
|
+
}
|
|
20
|
+
toString() {
|
|
21
|
+
return `${this.name}: ${this.message} at ${this.filePath}\n ${this.errors.join('\n ')}`;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export function sidecarToService(sidecar) {
|
|
25
|
+
const s = sidecar.service;
|
|
26
|
+
const service = {
|
|
27
|
+
id: s.id,
|
|
28
|
+
name: s.name,
|
|
29
|
+
description: s.description ?? '',
|
|
30
|
+
type: s.type ?? 'web-service',
|
|
31
|
+
lifecycle: s.lifecycle ?? 'active',
|
|
32
|
+
};
|
|
33
|
+
if (s.domain !== undefined)
|
|
34
|
+
service.domain = s.domain;
|
|
35
|
+
if (s.owner !== undefined)
|
|
36
|
+
service.owner = s.owner;
|
|
37
|
+
if (s.tags !== undefined)
|
|
38
|
+
service.tags = s.tags;
|
|
39
|
+
if (s.links !== undefined)
|
|
40
|
+
service.links = s.links;
|
|
41
|
+
if (s.repository !== undefined)
|
|
42
|
+
service.repository = s.repository;
|
|
43
|
+
if (s.tier !== undefined)
|
|
44
|
+
service.tier = s.tier;
|
|
45
|
+
if (s.contacts !== undefined)
|
|
46
|
+
service.contacts = s.contacts;
|
|
47
|
+
if (s.language !== undefined)
|
|
48
|
+
service.language = s.language;
|
|
49
|
+
if (s.frameworks !== undefined)
|
|
50
|
+
service.frameworks = s.frameworks;
|
|
51
|
+
if (s.dataStores !== undefined)
|
|
52
|
+
service.dataStores = s.dataStores;
|
|
53
|
+
// specs: Spec resolution happens in loader, not parser
|
|
54
|
+
if (s.connections && s.connections.length > 0) {
|
|
55
|
+
service.connections = s.connections.map((c) => ({
|
|
56
|
+
target: c.target,
|
|
57
|
+
type: c.type,
|
|
58
|
+
...(c.endpoints && { endpoints: c.endpoints }),
|
|
59
|
+
...(c.events && { events: c.events }),
|
|
60
|
+
}));
|
|
61
|
+
}
|
|
62
|
+
return service;
|
|
63
|
+
}
|
|
64
|
+
function detectBpmnSource(bpmnValue) {
|
|
65
|
+
if (bpmnValue.endsWith('.bpmn.txt')) {
|
|
66
|
+
return { type: 'bpmn-txt', path: bpmnValue };
|
|
67
|
+
}
|
|
68
|
+
if (bpmnValue.endsWith('.bpmn')) {
|
|
69
|
+
return { type: 'xml', path: bpmnValue };
|
|
70
|
+
}
|
|
71
|
+
if (detectBpmnTxtContent(bpmnValue)) {
|
|
72
|
+
return { type: 'bpmn-txt', content: bpmnValue };
|
|
73
|
+
}
|
|
74
|
+
return { type: 'xml', path: bpmnValue };
|
|
75
|
+
}
|
|
76
|
+
export function sidecarToUseCase(sidecar) {
|
|
77
|
+
const uc = sidecar.use_case;
|
|
78
|
+
const useCase = {
|
|
79
|
+
id: uc.id,
|
|
80
|
+
name: uc.name,
|
|
81
|
+
description: uc.description,
|
|
82
|
+
participants: uc.participants.map((p) => ({
|
|
83
|
+
service: p.service,
|
|
84
|
+
role: p.role,
|
|
85
|
+
})),
|
|
86
|
+
steps: uc.steps.map((s) => ({
|
|
87
|
+
sequence: s.sequence,
|
|
88
|
+
action: s.action,
|
|
89
|
+
...(s.actor !== undefined && { actor: s.actor }),
|
|
90
|
+
...(s.service !== undefined && { service: s.service }),
|
|
91
|
+
...(s.endpoint !== undefined && { endpoint: s.endpoint }),
|
|
92
|
+
})),
|
|
93
|
+
};
|
|
94
|
+
if (uc.domain !== undefined) {
|
|
95
|
+
useCase.domain = uc.domain;
|
|
96
|
+
}
|
|
97
|
+
if (uc.bpmn !== undefined) {
|
|
98
|
+
useCase.bpmn = uc.bpmn;
|
|
99
|
+
useCase.bpmnSource = detectBpmnSource(uc.bpmn);
|
|
100
|
+
}
|
|
101
|
+
return useCase;
|
|
102
|
+
}
|
|
103
|
+
export function sidecarToDomain(sidecar) {
|
|
104
|
+
const d = sidecar.domain;
|
|
105
|
+
const domain = {
|
|
106
|
+
id: d.id,
|
|
107
|
+
name: d.name,
|
|
108
|
+
description: d.description,
|
|
109
|
+
};
|
|
110
|
+
if (d.parent !== undefined) {
|
|
111
|
+
domain.parent = d.parent;
|
|
112
|
+
}
|
|
113
|
+
return domain;
|
|
114
|
+
}
|
|
115
|
+
export function sidecarToDataStore(sidecar) {
|
|
116
|
+
const ds = sidecar.data_store;
|
|
117
|
+
const dataStore = {
|
|
118
|
+
id: ds.id,
|
|
119
|
+
name: ds.name,
|
|
120
|
+
description: ds.description ?? '',
|
|
121
|
+
type: ds.type,
|
|
122
|
+
};
|
|
123
|
+
if (ds.domain !== undefined)
|
|
124
|
+
dataStore.domain = ds.domain;
|
|
125
|
+
if (ds.owner !== undefined)
|
|
126
|
+
dataStore.owner = ds.owner;
|
|
127
|
+
if (ds.technology !== undefined)
|
|
128
|
+
dataStore.technology = ds.technology;
|
|
129
|
+
if (ds.links !== undefined)
|
|
130
|
+
dataStore.links = ds.links;
|
|
131
|
+
return dataStore;
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=sidecar.transforms.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidecar.transforms.js","sourceRoot":"","sources":["../../../src/adapters/parsers/sidecar.transforms.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ServiceSidecar } from '../../schemas/service.schema.js';
|
|
2
|
+
import type { UseCaseSidecar } from '../../schemas/use-case.schema.js';
|
|
3
|
+
import type { DomainSidecar } from '../../schemas/domain.schema.js';
|
|
4
|
+
import type { DataStoreSidecar } from '../../schemas/data-store.schema.js';
|
|
5
|
+
export { ValidationError, sidecarToService, sidecarToUseCase, sidecarToDomain, sidecarToDataStore, } from './sidecar.transforms.js';
|
|
6
|
+
export declare class TomlParseError extends Error {
|
|
7
|
+
readonly filePath: string;
|
|
8
|
+
readonly line?: number | undefined;
|
|
9
|
+
readonly column?: number | undefined;
|
|
10
|
+
constructor(message: string, filePath: string, line?: number | undefined, column?: number | undefined);
|
|
11
|
+
toString(): string;
|
|
12
|
+
}
|
|
13
|
+
export declare function parseToml(content: string, filePath: string): ServiceSidecar;
|
|
14
|
+
export declare function parseUseCaseToml(content: string, filePath: string): UseCaseSidecar;
|
|
15
|
+
export declare function parseDomainToml(content: string, filePath: string): DomainSidecar;
|
|
16
|
+
export declare function parseDataStoreToml(content: string, filePath: string): DataStoreSidecar;
|
|
17
|
+
//# sourceMappingURL=toml.parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toml.parser.d.ts","sourceRoot":"","sources":["../../../src/adapters/parsers/toml.parser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAU3E,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,cAAe,SAAQ,KAAK;aAGrB,QAAQ,EAAE,MAAM;aAChB,IAAI,CAAC,EAAE,MAAM;aACb,MAAM,CAAC,EAAE,MAAM;gBAH/B,OAAO,EAAE,MAAM,EACC,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,MAAM,CAAC,EAAE,MAAM,YAAA;IAMxB,QAAQ,IAAI,MAAM;CAM5B;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,CAuB3E;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,CAuBlF;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,CAuBhF;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAuBtF"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { parse, TomlError } from 'smol-toml';
|
|
2
|
+
import { ValidationError, compiledServiceSchema, compiledUseCaseSchema, compiledDomainSchema, compiledDataStoreSchema, } from './sidecar.transforms.js';
|
|
3
|
+
// Re-export shared transforms for backward compatibility
|
|
4
|
+
export { ValidationError, sidecarToService, sidecarToUseCase, sidecarToDomain, sidecarToDataStore, } from './sidecar.transforms.js';
|
|
5
|
+
export class TomlParseError extends Error {
|
|
6
|
+
filePath;
|
|
7
|
+
line;
|
|
8
|
+
column;
|
|
9
|
+
constructor(message, filePath, line, column) {
|
|
10
|
+
super(message);
|
|
11
|
+
this.filePath = filePath;
|
|
12
|
+
this.line = line;
|
|
13
|
+
this.column = column;
|
|
14
|
+
this.name = 'TomlParseError';
|
|
15
|
+
}
|
|
16
|
+
toString() {
|
|
17
|
+
const location = this.line
|
|
18
|
+
? `:${String(this.line)}${this.column ? `:${String(this.column)}` : ''}`
|
|
19
|
+
: '';
|
|
20
|
+
return `${this.name}: ${this.message} at ${this.filePath}${location}`;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export function parseToml(content, filePath) {
|
|
24
|
+
let parsed;
|
|
25
|
+
try {
|
|
26
|
+
parsed = parse(content);
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
if (error instanceof TomlError) {
|
|
30
|
+
throw new TomlParseError(error.message, filePath, error.line, error.column);
|
|
31
|
+
}
|
|
32
|
+
throw new TomlParseError(error instanceof Error ? error.message : 'Unknown parse error', filePath);
|
|
33
|
+
}
|
|
34
|
+
if (!compiledServiceSchema.Check(parsed)) {
|
|
35
|
+
const errors = [...compiledServiceSchema.Errors(parsed)].map((e) => `${e.path}: ${e.message} (got ${JSON.stringify(e.value)})`);
|
|
36
|
+
throw new ValidationError('Invalid service sidecar', filePath, errors);
|
|
37
|
+
}
|
|
38
|
+
return parsed;
|
|
39
|
+
}
|
|
40
|
+
export function parseUseCaseToml(content, filePath) {
|
|
41
|
+
let parsed;
|
|
42
|
+
try {
|
|
43
|
+
parsed = parse(content);
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
if (error instanceof TomlError) {
|
|
47
|
+
throw new TomlParseError(error.message, filePath, error.line, error.column);
|
|
48
|
+
}
|
|
49
|
+
throw new TomlParseError(error instanceof Error ? error.message : 'Unknown parse error', filePath);
|
|
50
|
+
}
|
|
51
|
+
if (!compiledUseCaseSchema.Check(parsed)) {
|
|
52
|
+
const errors = [...compiledUseCaseSchema.Errors(parsed)].map((e) => `${e.path}: ${e.message} (got ${JSON.stringify(e.value)})`);
|
|
53
|
+
throw new ValidationError('Invalid use case sidecar', filePath, errors);
|
|
54
|
+
}
|
|
55
|
+
return parsed;
|
|
56
|
+
}
|
|
57
|
+
export function parseDomainToml(content, filePath) {
|
|
58
|
+
let parsed;
|
|
59
|
+
try {
|
|
60
|
+
parsed = parse(content);
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
if (error instanceof TomlError) {
|
|
64
|
+
throw new TomlParseError(error.message, filePath, error.line, error.column);
|
|
65
|
+
}
|
|
66
|
+
throw new TomlParseError(error instanceof Error ? error.message : 'Unknown parse error', filePath);
|
|
67
|
+
}
|
|
68
|
+
if (!compiledDomainSchema.Check(parsed)) {
|
|
69
|
+
const errors = [...compiledDomainSchema.Errors(parsed)].map((e) => `${e.path}: ${e.message} (got ${JSON.stringify(e.value)})`);
|
|
70
|
+
throw new ValidationError('Invalid domain sidecar', filePath, errors);
|
|
71
|
+
}
|
|
72
|
+
return parsed;
|
|
73
|
+
}
|
|
74
|
+
export function parseDataStoreToml(content, filePath) {
|
|
75
|
+
let parsed;
|
|
76
|
+
try {
|
|
77
|
+
parsed = parse(content);
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
if (error instanceof TomlError) {
|
|
81
|
+
throw new TomlParseError(error.message, filePath, error.line, error.column);
|
|
82
|
+
}
|
|
83
|
+
throw new TomlParseError(error instanceof Error ? error.message : 'Unknown parse error', filePath);
|
|
84
|
+
}
|
|
85
|
+
if (!compiledDataStoreSchema.Check(parsed)) {
|
|
86
|
+
const errors = [...compiledDataStoreSchema.Errors(parsed)].map((e) => `${e.path}: ${e.message} (got ${JSON.stringify(e.value)})`);
|
|
87
|
+
throw new ValidationError('Invalid data store sidecar', filePath, errors);
|
|
88
|
+
}
|
|
89
|
+
return parsed;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=toml.parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toml.parser.js","sourceRoot":"","sources":["../../../src/adapters/parsers/toml.parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toml.parser.test.d.ts","sourceRoot":"","sources":["../../../src/adapters/parsers/toml.parser.test.ts"],"names":[],"mappings":""}
|