@lyku/lockstep-core 0.2.1 → 0.2.2
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/LLMs.md +17 -13
- package/README.md +64 -126
- package/diagrams/generate.d.ts +10 -0
- package/diagrams/generate.d.ts.map +1 -0
- package/diagrams/generate.js +164 -0
- package/diagrams/generate.js.map +1 -0
- package/package.json +1 -1
- package/pipeline.svg +1 -0
- package/tson/parseBON.d.ts.map +1 -1
- package/tson/parseBON.js +0 -15
- package/tson/parseBON.js.map +1 -1
- package/tson/stringifyBON.d.ts.map +1 -1
- package/tson/stringifyBON.js +1 -1
- package/tson/stringifyBON.js.map +1 -1
- package/vitest.config.d.ts +3 -0
- package/vitest.config.d.ts.map +1 -0
- package/vitest.config.js +13 -0
- package/vitest.config.js.map +1 -0
package/LLMs.md
CHANGED
|
@@ -5,19 +5,23 @@ This document is a complete mechanical reference for the `@lyku/lockstep-core` l
|
|
|
5
5
|
## Pipeline overview
|
|
6
6
|
|
|
7
7
|
```
|
|
8
|
-
|
|
9
|
-
↓ generateJsonModels
|
|
10
|
-
|
|
11
|
-
↓ generateDbTypes
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
↓ generateApiTypes
|
|
16
|
-
|
|
17
|
-
↓ generateHandles
|
|
18
|
-
|
|
19
|
-
↓
|
|
20
|
-
|
|
8
|
+
Table schemas (PostgresRecordModel)
|
|
9
|
+
↓ generateJsonModels (this package)
|
|
10
|
+
JSON schemas + TypeScript types
|
|
11
|
+
↓ generateDbTypes (this package)
|
|
12
|
+
Kysely Database interface
|
|
13
|
+
|
|
14
|
+
API definitions (TsonHandlerModel)
|
|
15
|
+
↓ generateApiTypes (this package)
|
|
16
|
+
Request/Response TypeScript types
|
|
17
|
+
↓ generateHandles (@lyku/lockstep-handles-ts)
|
|
18
|
+
Handler factories with validators
|
|
19
|
+
↓ generateTsClient (@lyku/lockstep-client-ts)
|
|
20
|
+
Type-safe HTTP client
|
|
21
|
+
|
|
22
|
+
Table schemas
|
|
23
|
+
↓ detectDrift / generateMigration (@lyku/lockstep-pg)
|
|
24
|
+
SQL migrations
|
|
21
25
|
```
|
|
22
26
|
|
|
23
27
|
---
|
package/README.md
CHANGED
|
@@ -1,23 +1,19 @@
|
|
|
1
1
|
# @lyku/lockstep-core
|
|
2
2
|
|
|
3
|
-
Schema-driven code generation for TypeScript. Define your database tables and API endpoints once, generate everything else: TypeScript types, Kysely types, runtime validators,
|
|
3
|
+
Schema-driven code generation for TypeScript. Define your database tables and API endpoints once, generate everything else: TypeScript types, Kysely types, runtime validators, and more.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## The lockstep ecosystem
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
↓ generateHandles
|
|
18
|
-
handles (Handler factories + validators)
|
|
19
|
-
↓ generateClient
|
|
20
|
-
monolith-ts-api (Type-safe HTTP + WebSocket client)
|
|
7
|
+
<!-- Generated from libs/lockstep-core/diagrams/pipeline.mmd — do not edit manually -->
|
|
8
|
+
|
|
9
|
+
<p align="center"><img src="./pipeline.svg" alt="lockstep-core pipeline diagram" /></p>
|
|
10
|
+
|
|
11
|
+
This package (`lockstep-core`) provides the schema type system, the first three generators, runtime validators, and BON serialization. Handler and client generation live in separate packages.
|
|
12
|
+
|
|
13
|
+
## Installation
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install @lyku/lockstep-core
|
|
21
17
|
```
|
|
22
18
|
|
|
23
19
|
## Defining schemas
|
|
@@ -25,17 +21,17 @@ monolith-ts-api (Type-safe HTTP + WebSocket client)
|
|
|
25
21
|
### Database tables
|
|
26
22
|
|
|
27
23
|
```typescript
|
|
28
|
-
// libs/pg-models/src/friendship.ts
|
|
29
24
|
import type { PostgresRecordModel } from '@lyku/lockstep-core';
|
|
30
25
|
|
|
31
|
-
export const
|
|
26
|
+
export const users = {
|
|
32
27
|
properties: {
|
|
33
28
|
id: { type: 'bigserial' },
|
|
29
|
+
username: { type: 'varchar', maxLength: 32 },
|
|
34
30
|
created: { type: 'timestamptz', default: { sql: 'CURRENT_TIMESTAMP' } },
|
|
35
|
-
|
|
36
|
-
|
|
31
|
+
email: { type: 'text' },
|
|
32
|
+
banned: { type: 'boolean' },
|
|
37
33
|
},
|
|
38
|
-
required: ['
|
|
34
|
+
required: ['id', 'username', 'created', 'email'],
|
|
39
35
|
} as const satisfies PostgresRecordModel;
|
|
40
36
|
```
|
|
41
37
|
|
|
@@ -44,24 +40,20 @@ Supported column types: `bigint`, `bigserial`, `serial`, `integer`, `smallint`,
|
|
|
44
40
|
### API endpoints
|
|
45
41
|
|
|
46
42
|
```typescript
|
|
47
|
-
// libs/mapi-models/src/createFriendRequest.ts
|
|
48
43
|
import type { TsonHandlerModel } from '@lyku/lockstep-core';
|
|
49
44
|
|
|
50
|
-
export const
|
|
45
|
+
export const getUser = {
|
|
51
46
|
request: { type: 'bigint' },
|
|
52
47
|
response: {
|
|
53
48
|
type: 'object',
|
|
54
|
-
properties: {
|
|
55
|
-
|
|
49
|
+
properties: {
|
|
50
|
+
id: { type: 'bigint' },
|
|
51
|
+
username: { type: 'string' },
|
|
52
|
+
},
|
|
53
|
+
required: ['id', 'username'],
|
|
56
54
|
},
|
|
57
55
|
authenticated: true,
|
|
58
|
-
throws: [400, 401, 404
|
|
59
|
-
|
|
60
|
-
title: 'Create Friend Request',
|
|
61
|
-
description: 'Sends a friend request to another user.',
|
|
62
|
-
category: 'Friendship',
|
|
63
|
-
tags: ['social', 'friends'],
|
|
64
|
-
since: '1.0.0',
|
|
56
|
+
throws: [400, 401, 404],
|
|
65
57
|
} as const satisfies TsonHandlerModel;
|
|
66
58
|
```
|
|
67
59
|
|
|
@@ -91,14 +83,14 @@ The type system used by API models:
|
|
|
91
83
|
|
|
92
84
|
String formats: `email`, `uuid`, `uri`, `ipv4`, `ipv6`, `hostname`, `date-time`.
|
|
93
85
|
|
|
94
|
-
##
|
|
86
|
+
## Generators
|
|
95
87
|
|
|
96
|
-
###
|
|
88
|
+
### `generateJsonModels`
|
|
97
89
|
|
|
98
90
|
Converts PostgreSQL column schemas to JSON schemas and TypeScript types.
|
|
99
91
|
|
|
100
92
|
```bash
|
|
101
|
-
|
|
93
|
+
lockstep generate json-models --models ./my-tables --output ./generated/json-models
|
|
102
94
|
```
|
|
103
95
|
|
|
104
96
|
Produces two type variants per table:
|
|
@@ -106,12 +98,12 @@ Produces two type variants per table:
|
|
|
106
98
|
- Full type (all fields, optionals included)
|
|
107
99
|
- Insertable type (only required fields, auto-generated columns excluded)
|
|
108
100
|
|
|
109
|
-
###
|
|
101
|
+
### `generateDbTypes`
|
|
110
102
|
|
|
111
103
|
Generates a Kysely `Database` interface from PostgreSQL table definitions.
|
|
112
104
|
|
|
113
105
|
```bash
|
|
114
|
-
|
|
106
|
+
lockstep generate db-types --models ./my-tables --output ./generated/db-types --file kysely.d.ts
|
|
115
107
|
```
|
|
116
108
|
|
|
117
109
|
Output:
|
|
@@ -129,88 +121,29 @@ export interface Database {
|
|
|
129
121
|
}
|
|
130
122
|
```
|
|
131
123
|
|
|
132
|
-
###
|
|
124
|
+
### `generateApiTypes`
|
|
133
125
|
|
|
134
126
|
Generates TypeScript request/response types from API models.
|
|
135
127
|
|
|
136
128
|
```bash
|
|
137
|
-
|
|
129
|
+
lockstep generate api-types --models ./my-endpoints --output ./generated/api-types
|
|
138
130
|
```
|
|
139
131
|
|
|
140
132
|
Output:
|
|
141
133
|
|
|
142
134
|
```typescript
|
|
143
|
-
export type
|
|
144
|
-
export type
|
|
135
|
+
export type GetUserRequest = bigint;
|
|
136
|
+
export type GetUserResponse = { id: bigint; username: string };
|
|
145
137
|
|
|
146
138
|
export type ApiTypes = {
|
|
147
|
-
|
|
148
|
-
request:
|
|
149
|
-
response:
|
|
139
|
+
getUser: {
|
|
140
|
+
request: GetUserRequest;
|
|
141
|
+
response: GetUserResponse;
|
|
150
142
|
};
|
|
151
143
|
// ...
|
|
152
144
|
};
|
|
153
145
|
```
|
|
154
146
|
|
|
155
|
-
### 4. `generateHandles`
|
|
156
|
-
|
|
157
|
-
Generates handler factory functions with built-in request validation.
|
|
158
|
-
|
|
159
|
-
```bash
|
|
160
|
-
from-schema generate handles \
|
|
161
|
-
--models ./mapi-models --output ./handles \
|
|
162
|
-
--models-pkg @myapp/mapi-models \
|
|
163
|
-
--types-pkg @myapp/mapi-types
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
Each handler factory wraps your implementation with type safety:
|
|
167
|
-
|
|
168
|
-
```typescript
|
|
169
|
-
// Generated
|
|
170
|
-
export declare const handleCreateFriendRequest: (handler: (request: CreateFriendRequestRequest, context: SecureHttpContext<typeof createFriendRequest>) => CreateFriendRequestResponse | Promise<CreateFriendRequestResponse>) => {
|
|
171
|
-
readonly execute: typeof handler;
|
|
172
|
-
readonly validator: { validate; validateOrThrow; isValid };
|
|
173
|
-
readonly model: typeof createFriendRequest;
|
|
174
|
-
};
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
Usage in route handlers:
|
|
178
|
-
|
|
179
|
-
```typescript
|
|
180
|
-
import { handleCreateFriendRequest } from '@lyku/handles';
|
|
181
|
-
|
|
182
|
-
export const createFriendRequest = handleCreateFriendRequest(async (targetUserId, { requester }) => {
|
|
183
|
-
// fully typed: targetUserId is bigint, requester is bigint
|
|
184
|
-
const bond = await createBond(requester, targetUserId);
|
|
185
|
-
return { id: bond.id };
|
|
186
|
-
});
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
### 5. `generateClient`
|
|
190
|
-
|
|
191
|
-
Generates a type-safe API client using MessagePack serialization.
|
|
192
|
-
|
|
193
|
-
```bash
|
|
194
|
-
from-schema generate client \
|
|
195
|
-
--models ./mapi-models --output ./client \
|
|
196
|
-
--types-pkg @myapp/mapi-types
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
The generated client supports both HTTP and WebSocket endpoints:
|
|
200
|
-
|
|
201
|
-
```typescript
|
|
202
|
-
import { createClient } from '@myapp/client';
|
|
203
|
-
|
|
204
|
-
const api = createClient({ baseUrl: 'https://api.example.com' });
|
|
205
|
-
|
|
206
|
-
// HTTP — returns Promise<Response>
|
|
207
|
-
const result = await api.createFriendRequest(456n);
|
|
208
|
-
|
|
209
|
-
// WebSocket — returns StreamSocket
|
|
210
|
-
const socket = api.subscribeToPosts({ groupId: 1n });
|
|
211
|
-
socket.listen((post) => console.log(post));
|
|
212
|
-
```
|
|
213
|
-
|
|
214
147
|
## Handler contexts
|
|
215
148
|
|
|
216
149
|
Handlers receive a typed context object based on auth requirements:
|
|
@@ -244,19 +177,16 @@ Context fields:
|
|
|
244
177
|
|
|
245
178
|
## Runtime validation
|
|
246
179
|
|
|
247
|
-
|
|
180
|
+
Build validators from any schema:
|
|
248
181
|
|
|
249
182
|
```typescript
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
// Collect all validation errors
|
|
253
|
-
const errors = handle.validator.validate(input);
|
|
183
|
+
import { buildValidator } from '@lyku/lockstep-core';
|
|
254
184
|
|
|
255
|
-
|
|
256
|
-
handle.validator.validateOrThrow(input);
|
|
185
|
+
const validator = buildValidator('input', { type: 'string', minLength: 1 });
|
|
257
186
|
|
|
258
|
-
//
|
|
259
|
-
|
|
187
|
+
validator.validate(input); // returns string[] of errors
|
|
188
|
+
validator.validateOrThrow(input); // throws on invalid
|
|
189
|
+
validator.isValid(input); // returns true or first error string
|
|
260
190
|
```
|
|
261
191
|
|
|
262
192
|
Validators check types, required fields, string lengths/patterns/formats, numeric ranges, enum membership, and array constraints.
|
|
@@ -283,29 +213,37 @@ API models support rich documentation metadata:
|
|
|
283
213
|
|
|
284
214
|
```typescript
|
|
285
215
|
{
|
|
286
|
-
title: '
|
|
287
|
-
description: '
|
|
288
|
-
category: '
|
|
289
|
-
tags: ['
|
|
216
|
+
title: 'Get User',
|
|
217
|
+
description: 'Fetch a user by ID.',
|
|
218
|
+
category: 'Users',
|
|
219
|
+
tags: ['users'],
|
|
290
220
|
since: '1.0.0',
|
|
291
|
-
examples: [{ title: 'Basic', request: 456n, response: { id:
|
|
292
|
-
notes: ['
|
|
293
|
-
errors: [{ code:
|
|
294
|
-
relatedEndpoints: ['
|
|
295
|
-
rateLimit: { requests:
|
|
296
|
-
deprecated: { since: '2.0.0', useInstead: '
|
|
297
|
-
requiredPermissions: ['
|
|
221
|
+
examples: [{ title: 'Basic', request: 456n, response: { id: 456n, username: 'alice' } }],
|
|
222
|
+
notes: ['Returns 404 if user does not exist'],
|
|
223
|
+
errors: [{ code: 404, title: 'Not Found', description: '...' }],
|
|
224
|
+
relatedEndpoints: ['updateUser', 'deleteUser'],
|
|
225
|
+
rateLimit: { requests: 100, period: '1 minute', scope: 'user' },
|
|
226
|
+
deprecated: { since: '2.0.0', useInstead: 'getUserV2', reason: '...' },
|
|
227
|
+
requiredPermissions: ['users:read'],
|
|
298
228
|
}
|
|
299
229
|
```
|
|
300
230
|
|
|
301
231
|
## Exports
|
|
302
232
|
|
|
303
233
|
```
|
|
304
|
-
@lyku/lockstep-core
|
|
305
|
-
@lyku/lockstep-core/contexts
|
|
306
|
-
@lyku/lockstep-core/generators # Code generators (json-models, db-types, api-types
|
|
234
|
+
@lyku/lockstep-core # Schema types, BON, type converters, validators
|
|
235
|
+
@lyku/lockstep-core/contexts # Handler context types
|
|
236
|
+
@lyku/lockstep-core/generators # Code generators (json-models, db-types, api-types)
|
|
307
237
|
```
|
|
308
238
|
|
|
239
|
+
## Related packages
|
|
240
|
+
|
|
241
|
+
| Package | Purpose |
|
|
242
|
+
| --------------------------- | ------------------------------------------------ |
|
|
243
|
+
| `@lyku/lockstep-handles-ts` | Generate typed handler factories from API models |
|
|
244
|
+
| `@lyku/lockstep-client-ts` | Generate typed HTTP clients from API models |
|
|
245
|
+
| `@lyku/lockstep-pg` | PostgreSQL drift detection and migrations |
|
|
246
|
+
|
|
309
247
|
## License
|
|
310
248
|
|
|
311
249
|
GPL-3.0
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generates per-package pipeline diagrams from the master pipeline.mmd.
|
|
3
|
+
*
|
|
4
|
+
* Each variant highlights the nodes belonging to that package and dims everything else.
|
|
5
|
+
* Output is a mermaid code block ready to paste into a README.
|
|
6
|
+
*
|
|
7
|
+
* Usage: bun libs/lockstep-core/diagrams/generate.ts
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=generate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../../libs/lockstep-core/diagrams/generate.ts"],"names":[],"mappings":"AACA;;;;;;;GAOG"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/* eslint-disable security/detect-non-literal-fs-filename, security/detect-object-injection */
|
|
2
|
+
/**
|
|
3
|
+
* Generates per-package pipeline diagrams from the master pipeline.mmd.
|
|
4
|
+
*
|
|
5
|
+
* Each variant highlights the nodes belonging to that package and dims everything else.
|
|
6
|
+
* Output is a mermaid code block ready to paste into a README.
|
|
7
|
+
*
|
|
8
|
+
* Usage: bun libs/lockstep-core/diagrams/generate.ts
|
|
9
|
+
*/
|
|
10
|
+
import { readFileSync, writeFileSync, mkdirSync, copyFileSync } from 'fs';
|
|
11
|
+
import { join, dirname } from 'path';
|
|
12
|
+
import { execSync } from 'child_process';
|
|
13
|
+
const DIAGRAMS_DIR = dirname(new URL(import.meta.url).pathname);
|
|
14
|
+
const master = readFileSync(join(DIAGRAMS_DIR, 'pipeline.mmd'), 'utf-8');
|
|
15
|
+
// Strip comment lines from master
|
|
16
|
+
const masterLines = master
|
|
17
|
+
.split('\n')
|
|
18
|
+
.filter((line) => !line.trim().startsWith('%%'));
|
|
19
|
+
const packages = {
|
|
20
|
+
'lockstep-core': {
|
|
21
|
+
prefix: 'core-',
|
|
22
|
+
title: '@lyku/lockstep-core',
|
|
23
|
+
},
|
|
24
|
+
'lockstep-handles-ts': {
|
|
25
|
+
prefix: 'handles-',
|
|
26
|
+
title: '@lyku/lockstep-handles-ts',
|
|
27
|
+
},
|
|
28
|
+
'lockstep-client-ts': {
|
|
29
|
+
prefix: 'client-',
|
|
30
|
+
title: '@lyku/lockstep-client-ts',
|
|
31
|
+
},
|
|
32
|
+
'lockstep-pg': {
|
|
33
|
+
prefix: 'pg-',
|
|
34
|
+
title: '@lyku/lockstep-pg',
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
// Find all node IDs in the diagram
|
|
38
|
+
const nodeIdRegex = /^\s{4}(\S+?)[[("]/m;
|
|
39
|
+
const allNodeIds = [];
|
|
40
|
+
for (const line of masterLines) {
|
|
41
|
+
const match = line.match(nodeIdRegex);
|
|
42
|
+
if (match) {
|
|
43
|
+
allNodeIds.push(match[1]);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function generateVariant(pkgKey) {
|
|
47
|
+
const pkg = packages[pkgKey];
|
|
48
|
+
const highlighted = allNodeIds.filter((id) => id.startsWith(pkg.prefix));
|
|
49
|
+
const dimmed = allNodeIds.filter((id) => !id.startsWith(pkg.prefix) &&
|
|
50
|
+
!id.startsWith('input-') &&
|
|
51
|
+
!id.startsWith('output-'));
|
|
52
|
+
const inputs = allNodeIds.filter((id) => id.startsWith('input-'));
|
|
53
|
+
const outputs = allNodeIds.filter((id) => id.startsWith('output-'));
|
|
54
|
+
// Find which outputs are directly produced by this package's nodes
|
|
55
|
+
// by scanning edges: highlighted-node --> output-node
|
|
56
|
+
const ownedOutputs = new Set();
|
|
57
|
+
for (const line of masterLines) {
|
|
58
|
+
const edgeMatch = line.match(/^\s{4}(\S+)\s+--.*?-->\s+(\S+)/);
|
|
59
|
+
const simpleEdge = line.match(/^\s{4}(\S+)\s+-->\s+(\S+)/);
|
|
60
|
+
const dottedEdge = line.match(/^\s{4}(\S+)\s+-\.\s*->\s+(\S+)/);
|
|
61
|
+
const dottedEdge2 = line.match(/^\s{4}(\S+)\s+-\.+->\s+(\S+)/);
|
|
62
|
+
const edge = edgeMatch || simpleEdge || dottedEdge || dottedEdge2;
|
|
63
|
+
if (edge) {
|
|
64
|
+
const [, from, to] = edge;
|
|
65
|
+
if (from.startsWith(pkg.prefix) && to.startsWith('output-')) {
|
|
66
|
+
ownedOutputs.add(to);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// Find which inputs feed directly into this package's nodes
|
|
71
|
+
const ownedInputs = new Set();
|
|
72
|
+
for (const line of masterLines) {
|
|
73
|
+
const edgeMatch = line.match(/^\s{4}(\S+)\s+--.*?-->\s+(\S+)/);
|
|
74
|
+
const simpleEdge = line.match(/^\s{4}(\S+)\s+-->\s+(\S+)/);
|
|
75
|
+
const dottedEdge = line.match(/^\s{4}(\S+)\s+-\.\s*->\s+(\S+)/);
|
|
76
|
+
const dottedEdge2 = line.match(/^\s{4}(\S+)\s+-\.+->\s+(\S+)/);
|
|
77
|
+
const edge = edgeMatch || simpleEdge || dottedEdge || dottedEdge2;
|
|
78
|
+
if (edge) {
|
|
79
|
+
const [, from, to] = edge;
|
|
80
|
+
if (from.startsWith('input-') && to.startsWith(pkg.prefix)) {
|
|
81
|
+
ownedInputs.add(from);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
const classDefs = [
|
|
86
|
+
'classDef highlight fill:#4f46e5,stroke:#3730a3,color:#fff,stroke-width:2px',
|
|
87
|
+
'classDef dimmed fill:#f1f5f9,stroke:#cbd5e1,color:#94a3b8,stroke-width:1px',
|
|
88
|
+
'classDef inputNode fill:#fef3c7,stroke:#f59e0b,color:#92400e,stroke-width:1px',
|
|
89
|
+
'classDef outputNode fill:#d1fae5,stroke:#10b981,color:#065f46,stroke-width:1px',
|
|
90
|
+
'classDef ownedOutput fill:#a5b4fc,stroke:#4f46e5,color:#1e1b4b,stroke-width:2px',
|
|
91
|
+
'classDef ownedInput fill:#fde68a,stroke:#4f46e5,color:#1e1b4b,stroke-width:2px',
|
|
92
|
+
];
|
|
93
|
+
const classAssignments = [];
|
|
94
|
+
if (highlighted.length > 0) {
|
|
95
|
+
classAssignments.push(`class ${highlighted.join(',')} highlight`);
|
|
96
|
+
}
|
|
97
|
+
if (dimmed.length > 0) {
|
|
98
|
+
classAssignments.push(`class ${dimmed.join(',')} dimmed`);
|
|
99
|
+
}
|
|
100
|
+
// Assign input/output classes, with owned variants taking precedence
|
|
101
|
+
const regularInputs = inputs.filter((id) => !ownedInputs.has(id));
|
|
102
|
+
const regularOutputs = outputs.filter((id) => !ownedOutputs.has(id));
|
|
103
|
+
if (regularInputs.length > 0) {
|
|
104
|
+
classAssignments.push(`class ${regularInputs.join(',')} inputNode`);
|
|
105
|
+
}
|
|
106
|
+
if (regularOutputs.length > 0) {
|
|
107
|
+
classAssignments.push(`class ${regularOutputs.join(',')} outputNode`);
|
|
108
|
+
}
|
|
109
|
+
if (ownedInputs.size > 0) {
|
|
110
|
+
classAssignments.push(`class ${[...ownedInputs].join(',')} ownedInput`);
|
|
111
|
+
}
|
|
112
|
+
if (ownedOutputs.size > 0) {
|
|
113
|
+
classAssignments.push(`class ${[...ownedOutputs].join(',')} ownedOutput`);
|
|
114
|
+
}
|
|
115
|
+
const lines = [...masterLines, '', ...classDefs, ...classAssignments];
|
|
116
|
+
return lines.join('\n').trim();
|
|
117
|
+
}
|
|
118
|
+
// Generate all variants
|
|
119
|
+
mkdirSync(join(DIAGRAMS_DIR, 'generated'), { recursive: true });
|
|
120
|
+
for (const [pkgKey, _pkg] of Object.entries(packages)) {
|
|
121
|
+
const variant = generateVariant(pkgKey);
|
|
122
|
+
const outPath = join(DIAGRAMS_DIR, 'generated', `${pkgKey}.mmd`);
|
|
123
|
+
writeFileSync(outPath, variant + '\n');
|
|
124
|
+
console.log(`Generated ${outPath}`);
|
|
125
|
+
}
|
|
126
|
+
// Also generate a "full" variant with no highlighting (all nodes normal)
|
|
127
|
+
const fullVariant = [
|
|
128
|
+
...masterLines,
|
|
129
|
+
'',
|
|
130
|
+
`classDef inputNode fill:#fef3c7,stroke:#f59e0b,color:#92400e,stroke-width:1px`,
|
|
131
|
+
`classDef outputNode fill:#d1fae5,stroke:#10b981,color:#065f46,stroke-width:1px`,
|
|
132
|
+
`classDef coreNode fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f,stroke-width:1px`,
|
|
133
|
+
`classDef handlesNode fill:#e0e7ff,stroke:#6366f1,color:#312e81,stroke-width:1px`,
|
|
134
|
+
`classDef clientNode fill:#fce7f3,stroke:#ec4899,color:#831843,stroke-width:1px`,
|
|
135
|
+
`classDef pgNode fill:#fef9c3,stroke:#eab308,color:#713f12,stroke-width:1px`,
|
|
136
|
+
`class ${allNodeIds.filter((id) => id.startsWith('input-')).join(',')} inputNode`,
|
|
137
|
+
`class ${allNodeIds.filter((id) => id.startsWith('output-')).join(',')} outputNode`,
|
|
138
|
+
`class ${allNodeIds.filter((id) => id.startsWith('core-')).join(',')} coreNode`,
|
|
139
|
+
`class ${allNodeIds.filter((id) => id.startsWith('handles-')).join(',')} handlesNode`,
|
|
140
|
+
`class ${allNodeIds.filter((id) => id.startsWith('client-')).join(',')} clientNode`,
|
|
141
|
+
`class ${allNodeIds.filter((id) => id.startsWith('pg-')).join(',')} pgNode`,
|
|
142
|
+
]
|
|
143
|
+
.join('\n')
|
|
144
|
+
.trim();
|
|
145
|
+
writeFileSync(join(DIAGRAMS_DIR, 'generated', 'full.mmd'), fullVariant + '\n');
|
|
146
|
+
console.log(`Generated ${join(DIAGRAMS_DIR, 'generated', 'full.mmd')}`);
|
|
147
|
+
// Render all .mmd files to SVG
|
|
148
|
+
const LIBS_DIR = join(DIAGRAMS_DIR, '..', '..');
|
|
149
|
+
const generatedDir = join(DIAGRAMS_DIR, 'generated');
|
|
150
|
+
console.log('\nRendering SVGs...');
|
|
151
|
+
for (const file of ['full', ...Object.keys(packages)]) {
|
|
152
|
+
const mmdPath = join(generatedDir, `${file}.mmd`);
|
|
153
|
+
const svgPath = join(generatedDir, `${file}.svg`);
|
|
154
|
+
execSync(`npx @mermaid-js/mermaid-cli -i "${mmdPath}" -o "${svgPath}" -b transparent -p /dev/null`, { stdio: 'inherit' });
|
|
155
|
+
console.log(`Rendered ${svgPath}`);
|
|
156
|
+
}
|
|
157
|
+
// Copy per-package SVGs into each package directory
|
|
158
|
+
for (const pkgKey of Object.keys(packages)) {
|
|
159
|
+
const src = join(generatedDir, `${pkgKey}.svg`);
|
|
160
|
+
const dest = join(LIBS_DIR, pkgKey, 'pipeline.svg');
|
|
161
|
+
copyFileSync(src, dest);
|
|
162
|
+
console.log(`Copied ${dest}`);
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=generate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../../libs/lockstep-core/diagrams/generate.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;AAChE,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC;AAEzE,kCAAkC;AAClC,MAAM,WAAW,GAAG,MAAM;KACxB,KAAK,CAAC,IAAI,CAAC;KACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AAElD,MAAM,QAAQ,GAAsD;IACnE,eAAe,EAAE;QAChB,MAAM,EAAE,OAAO;QACf,KAAK,EAAE,qBAAqB;KAC5B;IACD,qBAAqB,EAAE;QACtB,MAAM,EAAE,UAAU;QAClB,KAAK,EAAE,2BAA2B;KAClC;IACD,oBAAoB,EAAE;QACrB,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,0BAA0B;KACjC;IACD,aAAa,EAAE;QACd,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,mBAAmB;KAC1B;CACD,CAAC;AAEF,mCAAmC;AACnC,MAAM,WAAW,GAAG,oBAAoB,CAAC;AACzC,MAAM,UAAU,GAAa,EAAE,CAAC;AAChC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC;QACX,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;AACF,CAAC;AAED,SAAS,eAAe,CAAC,MAAc;IACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAC/B,CAAC,EAAE,EAAE,EAAE,CACN,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;QAC1B,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QACxB,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAC1B,CAAC;IACF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IAEpE,mEAAmE;IACnE,sDAAsD;IACtD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,CAAC;QAClE,IAAI,IAAI,EAAE,CAAC;YACV,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC;YAC1B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7D,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACtB,CAAC;QACF,CAAC;IACF,CAAC;IAED,4DAA4D;IAC5D,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,SAAS,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,CAAC;QAClE,IAAI,IAAI,EAAE,CAAC;YACV,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC;YAC1B,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5D,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;QACF,CAAC;IACF,CAAC;IAED,MAAM,SAAS,GAAG;QACjB,4EAA4E;QAC5E,4EAA4E;QAC5E,+EAA+E;QAC/E,gFAAgF;QAChF,iFAAiF;QACjF,gFAAgF;KAChF,CAAC;IAEF,MAAM,gBAAgB,GAAa,EAAE,CAAC;IAEtC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,gBAAgB,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,gBAAgB,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;IAED,qEAAqE;IACrE,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAClE,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAErE,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,gBAAgB,CAAC,IAAI,CAAC,SAAS,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,gBAAgB,CAAC,IAAI,CAAC,SAAS,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC1B,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC3B,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,GAAG,WAAW,EAAE,EAAE,EAAE,GAAG,SAAS,EAAE,GAAG,gBAAgB,CAAC,CAAC;IAEtE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AAChC,CAAC;AAED,wBAAwB;AACxB,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAEhE,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;IACvD,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,CAAC;IACjE,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,yEAAyE;AACzE,MAAM,WAAW,GAAG;IACnB,GAAG,WAAW;IACd,EAAE;IACF,+EAA+E;IAC/E,gFAAgF;IAChF,8EAA8E;IAC9E,iFAAiF;IACjF,gFAAgF;IAChF,4EAA4E;IAC5E,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY;IACjF,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa;IACnF,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW;IAC/E,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc;IACrF,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa;IACnF,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS;CAC3E;KACC,IAAI,CAAC,IAAI,CAAC;KACV,IAAI,EAAE,CAAC;AAET,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC,CAAC;AAC/E,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;AAExE,+BAA+B;AAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAChD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AAErD,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AACnC,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;IACvD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC;IAClD,QAAQ,CACP,mCAAmC,OAAO,SAAS,OAAO,+BAA+B,EACzF,EAAE,KAAK,EAAE,SAAS,EAAE,CACpB,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,oDAAoD;AACpD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;IACpD,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACxB,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;AAC/B,CAAC"}
|
package/package.json
CHANGED
package/pipeline.svg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg id="my-svg" width="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="flowchart" style="max-width: 1035.32px; background-color: transparent;" viewBox="0 0 1035.3203125 558" role="graphics-document document" aria-roledescription="flowchart-v2"><style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#my-svg .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#my-svg .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#333333;stroke:#333333;}#my-svg .marker.cross{stroke:#333333;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg p{margin:0;}#my-svg .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#my-svg .cluster-label text{fill:#333;}#my-svg .cluster-label span{color:#333;}#my-svg .cluster-label span p{background-color:transparent;}#my-svg .label text,#my-svg span{fill:#333;color:#333;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#my-svg .rough-node .label text,#my-svg .node .label text,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .rough-node .label,#my-svg .node .label,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#my-svg .arrowheadPath{fill:#333333;}#my-svg .edgePath .path{stroke:#333333;stroke-width:2.0px;}#my-svg .flowchart-link{stroke:#333333;fill:none;}#my-svg .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#my-svg .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#my-svg .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#my-svg .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#my-svg .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#my-svg .cluster text{fill:#333;}#my-svg .cluster span{color:#333;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg rect.text{fill:none;stroke-width:0;}#my-svg .icon-shape,#my-svg .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#my-svg .icon-shape p,#my-svg .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#my-svg .icon-shape .label rect,#my-svg .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#my-svg .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#my-svg .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}#my-svg .highlight>*{fill:#4f46e5!important;stroke:#3730a3!important;color:#fff!important;stroke-width:2px!important;}#my-svg .highlight span{fill:#4f46e5!important;stroke:#3730a3!important;color:#fff!important;stroke-width:2px!important;}#my-svg .highlight tspan{fill:#fff!important;}#my-svg .dimmed>*{fill:#f1f5f9!important;stroke:#cbd5e1!important;color:#94a3b8!important;stroke-width:1px!important;}#my-svg .dimmed span{fill:#f1f5f9!important;stroke:#cbd5e1!important;color:#94a3b8!important;stroke-width:1px!important;}#my-svg .dimmed tspan{fill:#94a3b8!important;}#my-svg .inputNode>*{fill:#fef3c7!important;stroke:#f59e0b!important;color:#92400e!important;stroke-width:1px!important;}#my-svg .inputNode span{fill:#fef3c7!important;stroke:#f59e0b!important;color:#92400e!important;stroke-width:1px!important;}#my-svg .inputNode tspan{fill:#92400e!important;}#my-svg .outputNode>*{fill:#d1fae5!important;stroke:#10b981!important;color:#065f46!important;stroke-width:1px!important;}#my-svg .outputNode span{fill:#d1fae5!important;stroke:#10b981!important;color:#065f46!important;stroke-width:1px!important;}#my-svg .outputNode tspan{fill:#065f46!important;}#my-svg .ownedOutput>*{fill:#a5b4fc!important;stroke:#4f46e5!important;color:#1e1b4b!important;stroke-width:2px!important;}#my-svg .ownedOutput span{fill:#a5b4fc!important;stroke:#4f46e5!important;color:#1e1b4b!important;stroke-width:2px!important;}#my-svg .ownedOutput tspan{fill:#1e1b4b!important;}#my-svg .ownedInput>*{fill:#fde68a!important;stroke:#4f46e5!important;color:#1e1b4b!important;stroke-width:2px!important;}#my-svg .ownedInput span{fill:#fde68a!important;stroke:#4f46e5!important;color:#1e1b4b!important;stroke-width:2px!important;}#my-svg .ownedInput tspan{fill:#1e1b4b!important;}</style><g><marker id="my-svg_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><g class="root"><g class="clusters"/><g class="edgePaths"><path d="M744.994,86L736.586,90.167C728.178,94.333,711.363,102.667,702.955,110.333C694.547,118,694.547,125,694.547,128.5L694.547,132" id="L_input-tables_core-jsonmodels_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_input-tables_core-jsonmodels_0" data-points="W3sieCI6NzQ0Ljk5Mzk1NzUxOTUzMTIsInkiOjg2fSx7IngiOjY5NC41NDY4NzUsInkiOjExMX0seyJ4Ijo2OTQuNTQ2ODc1LCJ5IjoxMzZ9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M694.547,190L694.547,194.167C694.547,198.333,694.547,206.667,694.547,214.333C694.547,222,694.547,229,694.547,232.5L694.547,236" id="L_core-jsonmodels_output-jsonschemas_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_core-jsonmodels_output-jsonschemas_0" data-points="W3sieCI6Njk0LjU0Njg3NSwieSI6MTkwfSx7IngiOjY5NC41NDY4NzUsInkiOjIxNX0seyJ4Ijo2OTQuNTQ2ODc1LCJ5IjoyNDB9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M694.547,318L694.547,322.167C694.547,326.333,694.547,334.667,694.547,342.333C694.547,350,694.547,357,694.547,360.5L694.547,364" id="L_output-jsonschemas_core-dbtypes_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_output-jsonschemas_core-dbtypes_0" data-points="W3sieCI6Njk0LjU0Njg3NSwieSI6MzE4fSx7IngiOjY5NC41NDY4NzUsInkiOjM0M30seyJ4Ijo2OTQuNTQ2ODc1LCJ5IjozNjh9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M694.547,422L694.547,426.167C694.547,430.333,694.547,438.667,694.547,446.333C694.547,454,694.547,461,694.547,464.5L694.547,468" id="L_core-dbtypes_output-kysely_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_core-dbtypes_output-kysely_0" data-points="W3sieCI6Njk0LjU0Njg3NSwieSI6NDIyfSx7IngiOjY5NC41NDY4NzUsInkiOjQ0N30seyJ4Ijo2OTQuNTQ2ODc1LCJ5Ijo0NzJ9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M219.156,75.195L201.046,81.163C182.935,87.13,146.714,99.065,128.603,108.533C110.492,118,110.492,125,110.492,128.5L110.492,132" id="L_input-api_core-apitypes_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_input-api_core-apitypes_0" data-points="W3sieCI6MjE5LjE1NjI1LCJ5Ijo3NS4xOTUzMTgxNTYyMjIzNH0seyJ4IjoxMTAuNDkyMTg3NSwieSI6MTExfSx7IngiOjExMC40OTIxODc1LCJ5IjoxMzZ9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M110.492,190L110.492,194.167C110.492,198.333,110.492,206.667,110.492,214.333C110.492,222,110.492,229,110.492,232.5L110.492,236" id="L_core-apitypes_output-reqres_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_core-apitypes_output-reqres_0" data-points="W3sieCI6MTEwLjQ5MjE4NzUsInkiOjE5MH0seyJ4IjoxMTAuNDkyMTg3NSwieSI6MjE1fSx7IngiOjExMC40OTIxODc1LCJ5IjoyNDB9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M390.297,79.572L404.057,84.81C417.818,90.048,445.339,100.524,459.099,114.429C472.859,128.333,472.859,145.667,472.859,163C472.859,180.333,472.859,197.667,472.859,211.833C472.859,226,472.859,237,472.859,242.5L472.859,248" id="L_input-api_core-validators_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_input-api_core-validators_0" data-points="W3sieCI6MzkwLjI5Njg3NSwieSI6NzkuNTcyNDY0MTA0ODI3ODR9LHsieCI6NDcyLjg1OTM3NSwieSI6MTExfSx7IngiOjQ3Mi44NTkzNzUsInkiOjE2M30seyJ4Ijo0NzIuODU5Mzc1LCJ5IjoyMTV9LHsieCI6NDcyLjg1OTM3NSwieSI6MjUyfV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M212.984,314.604L226.608,319.337C240.232,324.069,267.479,333.535,285.81,342.019C304.141,350.502,313.555,358.005,318.262,361.756L322.969,365.507" id="L_output-reqres_handles-gen_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_output-reqres_handles-gen_0" data-points="W3sieCI6MjEyLjk4NDM3NSwieSI6MzE0LjYwNDEwNDgyNTcxNDU2fSx7IngiOjI5NC43MjY1NjI1LCJ5IjozNDN9LHsieCI6MzI2LjA5Njc1NDgwNzY5MjMsInkiOjM2OH1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M338.395,86L341.992,90.167C345.589,94.333,352.783,102.667,356.38,115.5C359.977,128.333,359.977,145.667,359.977,163C359.977,180.333,359.977,197.667,359.977,217C359.977,236.333,359.977,257.667,359.977,279C359.977,300.333,359.977,321.667,359.977,335.833C359.977,350,359.977,357,359.977,360.5L359.977,364" id="L_input-api_handles-gen_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_input-api_handles-gen_0" data-points="W3sieCI6MzM4LjM5NDUzMTI1LCJ5Ijo4Nn0seyJ4IjozNTkuOTc2NTYyNSwieSI6MTExfSx7IngiOjM1OS45NzY1NjI1LCJ5IjoxNjN9LHsieCI6MzU5Ljk3NjU2MjUsInkiOjIxNX0seyJ4IjozNTkuOTc2NTYyNSwieSI6Mjc5fSx7IngiOjM1OS45NzY1NjI1LCJ5IjozNDN9LHsieCI6MzU5Ljk3NjU2MjUsInkiOjM2OH1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M472.859,306L472.859,312.167C472.859,318.333,472.859,330.667,464.42,340.721C455.98,350.775,439.101,358.551,430.661,362.439L422.222,366.326" id="L_core-validators_handles-gen_0" class="edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_core-validators_handles-gen_0" data-points="W3sieCI6NDcyLjg1OTM3NSwieSI6MzA2fSx7IngiOjQ3Mi44NTkzNzUsInkiOjM0M30seyJ4Ijo0MTguNTg4NzkyMDY3MzA3NywieSI6MzY4fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M359.977,422L359.977,426.167C359.977,430.333,359.977,438.667,359.977,446.333C359.977,454,359.977,461,359.977,464.5L359.977,468" id="L_handles-gen_output-handlers_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_handles-gen_output-handlers_0" data-points="W3sieCI6MzU5Ljk3NjU2MjUsInkiOjQyMn0seyJ4IjozNTkuOTc2NTYyNSwieSI6NDQ3fSx7IngiOjM1OS45NzY1NjI1LCJ5Ijo0NzJ9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M110.492,318L110.492,322.167C110.492,326.333,110.492,334.667,111.752,342.372C113.011,350.077,115.53,357.154,116.789,360.693L118.049,364.232" id="L_output-reqres_client-gen_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_output-reqres_client-gen_0" data-points="W3sieCI6MTEwLjQ5MjE4NzUsInkiOjMxOH0seyJ4IjoxMTAuNDkyMTg3NSwieSI6MzQzfSx7IngiOjExOS4zOTAxNzQyNzg4NDYxNiwieSI6MzY4fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M286.445,86L284.492,90.167C282.539,94.333,278.633,102.667,276.68,115.5C274.727,128.333,274.727,145.667,274.727,163C274.727,180.333,274.727,197.667,274.727,217C274.727,236.333,274.727,257.667,274.727,279C274.727,300.333,274.727,321.667,263.678,336.276C252.629,350.885,230.531,358.77,219.482,362.713L208.433,366.656" id="L_input-api_client-gen_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_input-api_client-gen_0" data-points="W3sieCI6Mjg2LjQ0NTMxMjUsInkiOjg2fSx7IngiOjI3NC43MjY1NjI1LCJ5IjoxMTF9LHsieCI6Mjc0LjcyNjU2MjUsInkiOjE2M30seyJ4IjoyNzQuNzI2NTYyNSwieSI6MjE1fSx7IngiOjI3NC43MjY1NjI1LCJ5IjoyNzl9LHsieCI6Mjc0LjcyNjU2MjUsInkiOjM0M30seyJ4IjoyMDQuNjY1NzE1MTQ0MjMwNzcsInkiOjM2OH1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M129,422L129,426.167C129,430.333,129,438.667,129,446.333C129,454,129,461,129,464.5L129,468" id="L_client-gen_output-client_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_client-gen_output-client_0" data-points="W3sieCI6MTI5LCJ5Ijo0MjJ9LHsieCI6MTI5LCJ5Ijo0NDd9LHsieCI6MTI5LCJ5Ijo0NzJ9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M890.201,86L897.307,90.167C904.413,94.333,918.624,102.667,925.73,110.333C932.836,118,932.836,125,932.836,128.5L932.836,132" id="L_input-tables_pg-drift_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_input-tables_pg-drift_0" data-points="W3sieCI6ODkwLjIwMTM1NDk4MDQ2ODgsInkiOjg2fSx7IngiOjkzMi44MzU5Mzc1LCJ5IjoxMTF9LHsieCI6OTMyLjgzNTkzNzUsInkiOjEzNn1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M932.836,190L932.836,194.167C932.836,198.333,932.836,206.667,932.836,216.333C932.836,226,932.836,237,932.836,242.5L932.836,248" id="L_pg-drift_pg-migrate_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_pg-drift_pg-migrate_0" data-points="W3sieCI6OTMyLjgzNTkzNzUsInkiOjE5MH0seyJ4Ijo5MzIuODM1OTM3NSwieSI6MjE1fSx7IngiOjkzMi44MzU5Mzc1LCJ5IjoyNTJ9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M932.836,306L932.836,312.167C932.836,318.333,932.836,330.667,932.836,340.333C932.836,350,932.836,357,932.836,360.5L932.836,364" id="L_pg-migrate_output-sql_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_pg-migrate_output-sql_0" data-points="W3sieCI6OTMyLjgzNTkzNzUsInkiOjMwNn0seyJ4Ijo5MzIuODM1OTM3NSwieSI6MzQzfSx7IngiOjkzMi44MzU5Mzc1LCJ5IjozNjh9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/></g><g class="edgeLabels"><g class="edgeLabel"><g class="label" data-id="L_input-tables_core-jsonmodels_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_core-jsonmodels_output-jsonschemas_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_output-jsonschemas_core-dbtypes_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_core-dbtypes_output-kysely_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_input-api_core-apitypes_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_core-apitypes_output-reqres_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_input-api_core-validators_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_output-reqres_handles-gen_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_input-api_handles-gen_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_core-validators_handles-gen_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_handles-gen_output-handlers_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_output-reqres_client-gen_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_input-api_client-gen_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_client-gen_output-client_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_input-tables_pg-drift_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_pg-drift_pg-migrate_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_pg-migrate_output-sql_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g></g><g class="nodes"><g class="node default ownedInput" id="flowchart-input-tables-0" transform="translate(823.69140625, 47)"><rect class="basic label-container" style="fill:#fde68a !important;stroke:#4f46e5 !important;stroke-width:2px !important" x="-95.9375" y="-39" width="191.875" height="78"/><g class="label" style="color:#1e1b4b !important" transform="translate(-65.9375, -24)"><rect/><foreignObject width="131.875" height="48"><div style="color: rgb(30, 27, 75) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="color:#1e1b4b !important" class="nodeLabel"><p>Table Schemas<br /><small>PostgresRecordModel</small></p></span></div></foreignObject></g></g><g class="node default ownedInput" id="flowchart-input-api-1" transform="translate(304.7265625, 47)"><rect class="basic label-container" style="fill:#fde68a !important;stroke:#4f46e5 !important;stroke-width:2px !important" x="-85.5703125" y="-39" width="171.140625" height="78"/><g class="label" style="color:#1e1b4b !important" transform="translate(-55.5703125, -24)"><rect/><foreignObject width="111.140625" height="48"><div style="color: rgb(30, 27, 75) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="color:#1e1b4b !important" class="nodeLabel"><p>API Definitions<br /><small>TsonHandlerModel</small></p></span></div></foreignObject></g></g><g class="node default highlight" id="flowchart-core-jsonmodels-2" transform="translate(694.546875, 163)"><rect class="basic label-container" style="fill:#4f46e5 !important;stroke:#3730a3 !important;stroke-width:2px !important" x="-104.2734375" y="-27" width="208.546875" height="54"/><g class="label" style="color:#fff !important" transform="translate(-74.2734375, -12)"><rect/><foreignObject width="148.546875" height="24"><div style="color: rgb(255, 255, 255) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="color:#fff !important" class="nodeLabel"><p>generateJsonModels</p></span></div></foreignObject></g></g><g class="node default highlight" id="flowchart-core-dbtypes-3" transform="translate(694.546875, 395)"><rect class="basic label-container" style="fill:#4f46e5 !important;stroke:#3730a3 !important;stroke-width:2px !important" x="-93.15625" y="-27" width="186.3125" height="54"/><g class="label" style="color:#fff !important" transform="translate(-63.15625, -12)"><rect/><foreignObject width="126.3125" height="24"><div style="color: rgb(255, 255, 255) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="color:#fff !important" class="nodeLabel"><p>generateDbTypes</p></span></div></foreignObject></g></g><g class="node default highlight" id="flowchart-core-apitypes-4" transform="translate(110.4921875, 163)"><rect class="basic label-container" style="fill:#4f46e5 !important;stroke:#3730a3 !important;stroke-width:2px !important" x="-94.4921875" y="-27" width="188.984375" height="54"/><g class="label" style="color:#fff !important" transform="translate(-64.4921875, -12)"><rect/><foreignObject width="128.984375" height="24"><div style="color: rgb(255, 255, 255) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="color:#fff !important" class="nodeLabel"><p>generateApiTypes</p></span></div></foreignObject></g></g><g class="node default highlight" id="flowchart-core-validators-5" transform="translate(472.859375, 279)"><rect class="basic label-container" style="fill:#4f46e5 !important;stroke:#3730a3 !important;stroke-width:2px !important" x="-77.8828125" y="-27" width="155.765625" height="54"/><g class="label" style="color:#fff !important" transform="translate(-47.8828125, -12)"><rect/><foreignObject width="95.765625" height="24"><div style="color: rgb(255, 255, 255) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="color:#fff !important" class="nodeLabel"><p>buildValidator</p></span></div></foreignObject></g></g><g class="node default dimmed" id="flowchart-handles-gen-6" transform="translate(359.9765625, 395)"><rect class="basic label-container" style="fill:#f1f5f9 !important;stroke:#cbd5e1 !important;stroke-width:1px !important" x="-90.9375" y="-27" width="181.875" height="54"/><g class="label" style="color:#94a3b8 !important" transform="translate(-60.9375, -12)"><rect/><foreignObject width="121.875" height="24"><div style="color: rgb(148, 163, 184) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="color:#94a3b8 !important" class="nodeLabel"><p>generateHandles</p></span></div></foreignObject></g></g><g class="node default dimmed" id="flowchart-client-gen-7" transform="translate(129, 395)"><rect class="basic label-container" style="fill:#f1f5f9 !important;stroke:#cbd5e1 !important;stroke-width:1px !important" x="-90.0390625" y="-27" width="180.078125" height="54"/><g class="label" style="color:#94a3b8 !important" transform="translate(-60.0390625, -12)"><rect/><foreignObject width="120.078125" height="24"><div style="color: rgb(148, 163, 184) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="color:#94a3b8 !important" class="nodeLabel"><p>generateTsClient</p></span></div></foreignObject></g></g><g class="node default dimmed" id="flowchart-pg-drift-8" transform="translate(932.8359375, 163)"><rect class="basic label-container" style="fill:#f1f5f9 !important;stroke:#cbd5e1 !important;stroke-width:1px !important" x="-66.4609375" y="-27" width="132.921875" height="54"/><g class="label" style="color:#94a3b8 !important" transform="translate(-36.4609375, -12)"><rect/><foreignObject width="72.921875" height="24"><div style="color: rgb(148, 163, 184) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="color:#94a3b8 !important" class="nodeLabel"><p>detectDrift</p></span></div></foreignObject></g></g><g class="node default dimmed" id="flowchart-pg-migrate-9" transform="translate(932.8359375, 279)"><rect class="basic label-container" style="fill:#f1f5f9 !important;stroke:#cbd5e1 !important;stroke-width:1px !important" x="-94.484375" y="-27" width="188.96875" height="54"/><g class="label" style="color:#94a3b8 !important" transform="translate(-64.484375, -12)"><rect/><foreignObject width="128.96875" height="24"><div style="color: rgb(148, 163, 184) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="color:#94a3b8 !important" class="nodeLabel"><p>generateMigration</p></span></div></foreignObject></g></g><g class="node default ownedOutput" id="flowchart-output-jsonschemas-10" transform="translate(694.546875, 279)"><rect class="basic label-container" style="fill:#a5b4fc !important;stroke:#4f46e5 !important;stroke-width:2px !important" x="-93.8046875" y="-39" width="187.609375" height="78"/><g class="label" style="color:#1e1b4b !important" transform="translate(-63.8046875, -24)"><rect/><foreignObject width="127.609375" height="48"><div style="color: rgb(30, 27, 75) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="color:#1e1b4b !important" class="nodeLabel"><p>JSON Schemas +<br />TypeScript Types</p></span></div></foreignObject></g></g><g class="node default ownedOutput" id="flowchart-output-kysely-11" transform="translate(694.546875, 511)"><rect class="basic label-container" style="fill:#a5b4fc !important;stroke:#4f46e5 !important;stroke-width:2px !important" x="-90.03125" y="-39" width="180.0625" height="78"/><g class="label" style="color:#1e1b4b !important" transform="translate(-60.03125, -24)"><rect/><foreignObject width="120.0625" height="48"><div style="color: rgb(30, 27, 75) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="color:#1e1b4b !important" class="nodeLabel"><p>Kysely Database<br />Interface</p></span></div></foreignObject></g></g><g class="node default ownedOutput" id="flowchart-output-reqres-12" transform="translate(110.4921875, 279)"><rect class="basic label-container" style="fill:#a5b4fc !important;stroke:#4f46e5 !important;stroke-width:2px !important" x="-102.4921875" y="-39" width="204.984375" height="78"/><g class="label" style="color:#1e1b4b !important" transform="translate(-72.4921875, -24)"><rect/><foreignObject width="144.984375" height="48"><div style="color: rgb(30, 27, 75) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="color:#1e1b4b !important" class="nodeLabel"><p>Request / Response<br />TypeScript Types</p></span></div></foreignObject></g></g><g class="node default outputNode" id="flowchart-output-handlers-13" transform="translate(359.9765625, 511)"><rect class="basic label-container" style="fill:#d1fae5 !important;stroke:#10b981 !important;stroke-width:1px !important" x="-93.140625" y="-39" width="186.28125" height="78"/><g class="label" style="color:#065f46 !important" transform="translate(-63.140625, -24)"><rect/><foreignObject width="126.28125" height="48"><div style="color: rgb(6, 95, 70) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="color:#065f46 !important" class="nodeLabel"><p>Handler Factories<br />+ Validators</p></span></div></foreignObject></g></g><g class="node default outputNode" id="flowchart-output-client-14" transform="translate(129, 511)"><rect class="basic label-container" style="fill:#d1fae5 !important;stroke:#10b981 !important;stroke-width:1px !important" x="-73.421875" y="-39" width="146.84375" height="78"/><g class="label" style="color:#065f46 !important" transform="translate(-43.421875, -24)"><rect/><foreignObject width="86.84375" height="48"><div style="color: rgb(6, 95, 70) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="color:#065f46 !important" class="nodeLabel"><p>Type-safe<br />HTTP Client</p></span></div></foreignObject></g></g><g class="node default outputNode" id="flowchart-output-sql-15" transform="translate(932.8359375, 395)"><rect class="basic label-container" style="fill:#d1fae5 !important;stroke:#10b981 !important;stroke-width:1px !important" x="-84.8359375" y="-27" width="169.671875" height="54"/><g class="label" style="color:#065f46 !important" transform="translate(-54.8359375, -12)"><rect/><foreignObject width="109.671875" height="24"><div style="color: rgb(6, 95, 70) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="color:#065f46 !important" class="nodeLabel"><p>SQL Migrations</p></span></div></foreignObject></g></g></g></g></g></svg>
|
package/tson/parseBON.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseBON.d.ts","sourceRoot":"","sources":["../../../../libs/lockstep-core/tson/parseBON.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parseBON.d.ts","sourceRoot":"","sources":["../../../../libs/lockstep-core/tson/parseBON.ts"],"names":[],"mappings":"AA4aA;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,OAAO,MAAM,KAAG,CA+F3C,CAAC"}
|
package/tson/parseBON.js
CHANGED
|
@@ -13,12 +13,6 @@ const MAX_INPUT_LENGTH = 100000000; // 100MB
|
|
|
13
13
|
function tokenize(input) {
|
|
14
14
|
const tokens = [];
|
|
15
15
|
let pos = 0;
|
|
16
|
-
// Special case: ISO date string from stringifyBON (No quotes around dates)
|
|
17
|
-
const isoDatePattern = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,3})?Z/;
|
|
18
|
-
if (isoDatePattern.test(input)) {
|
|
19
|
-
tokens.push({ type: 'string', value: input, position: 0 });
|
|
20
|
-
return tokens;
|
|
21
|
-
}
|
|
22
16
|
while (pos < input.length) {
|
|
23
17
|
const char = input[pos];
|
|
24
18
|
// Skip whitespace
|
|
@@ -87,15 +81,6 @@ function tokenize(input) {
|
|
|
87
81
|
tokens.push({ type: 'string', value, position: startPos });
|
|
88
82
|
continue;
|
|
89
83
|
}
|
|
90
|
-
// Handle ISO date string pattern (no quotes) - for date values in objects or arrays
|
|
91
|
-
const remainingInput = input.substring(pos);
|
|
92
|
-
const dateMatch = remainingInput.match(isoDatePattern);
|
|
93
|
-
if (dateMatch && dateMatch.index === 0) {
|
|
94
|
-
const value = dateMatch[0];
|
|
95
|
-
tokens.push({ type: 'string', value, position: pos });
|
|
96
|
-
pos += value.length;
|
|
97
|
-
continue;
|
|
98
|
-
}
|
|
99
84
|
// Handle literals (true, false, null, undefined)
|
|
100
85
|
if (input.startsWith('true', pos)) {
|
|
101
86
|
tokens.push({ type: 'true', value: 'true', position: pos });
|
package/tson/parseBON.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseBON.js","sourceRoot":"","sources":["../../../../libs/lockstep-core/tson/parseBON.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parseBON.js","sourceRoot":"","sources":["../../../../libs/lockstep-core/tson/parseBON.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stringifyBON.d.ts","sourceRoot":"","sources":["../../../../libs/lockstep-core/tson/stringifyBON.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GACxB,OAAO,OAAO,EACd,cAAU,EACV,OAAM,GAAG,CAAC,OAAO,CAAa,KAC5B,
|
|
1
|
+
{"version":3,"file":"stringifyBON.d.ts","sourceRoot":"","sources":["../../../../libs/lockstep-core/tson/stringifyBON.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GACxB,OAAO,OAAO,EACd,cAAU,EACV,OAAM,GAAG,CAAC,OAAO,CAAa,KAC5B,MAgIF,CAAC"}
|
package/tson/stringifyBON.js
CHANGED
|
@@ -80,7 +80,7 @@ export const stringifyBON = (value, space = '', seen = new Set()) => {
|
|
|
80
80
|
}
|
|
81
81
|
if (isValidDate(value)) {
|
|
82
82
|
seen.delete(value);
|
|
83
|
-
return `
|
|
83
|
+
return `"${value.toISOString()}"`;
|
|
84
84
|
}
|
|
85
85
|
// Special handling for Error objects
|
|
86
86
|
if (value instanceof Error) {
|
package/tson/stringifyBON.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stringifyBON.js","sourceRoot":"","sources":["../../../../libs/lockstep-core/tson/stringifyBON.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAC3B,KAAc,EACd,KAAK,GAAG,EAAE,EACV,OAAqB,IAAI,GAAG,EAAE,EACrB,EAAE;IACX,qDAAqD;IACrD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC;IACf,CAAC;IAED,kEAAkE;IAClE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACjD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACvE,CAAC;QACD,wEAAwE;QACxE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAED,QAAQ,OAAO,KAAK,EAAE,CAAC;QACtB,KAAK,QAAQ,CAAC,CAAC,CAAC;YACf,kDAAkD;YAClD,4EAA4E;YAC5E,IAAI,MAAM,GAAG,KAAK,CAAC;YAEnB,2BAA2B;YAC3B,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAEvC,gBAAgB;YAChB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAErC,iDAAiD;YACjD,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACjE,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACjE,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACjE,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACjE,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAEjE,OAAO,IAAI,MAAM,GAAG,CAAC;QACtB,CAAC;QAED,KAAK,WAAW;YACf,OAAO,WAAW,CAAC;QAEpB,KAAK,QAAQ;YACZ,yEAAyE;YACzE,IAAI,KAAK,CAAC,KAAe,CAAC,EAAE,CAAC;gBAC5B,OAAO,KAAK,CAAC;YACd,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,KAAe,CAAC,EAAE,CAAC;gBAChC,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;YAC7C,CAAC;YACD,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;QAEzB,KAAK,SAAS;YACb,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;QAEzB,KAAK,QAAQ,CAAC;QACd,KAAK,UAAU;YACd,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,0CAA0C;QAEpE,KAAK,QAAQ;YACZ,OAAO,KAAK,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,CAAC,2CAA2C;QAE3E,KAAK,QAAQ;YACZ,uCAAuC;YACvC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,yDAAyD;gBACzD,MAAM,UAAU,GAAG,EAAE,CAAC;gBACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACvC,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;wBAChB,4DAA4D;wBAC5D,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;oBACtD,CAAC;yBAAM,CAAC;wBACP,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC9B,CAAC;gBACF,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACnB,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YACrC,CAAC;YAED,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACnB,OAAO,
|
|
1
|
+
{"version":3,"file":"stringifyBON.js","sourceRoot":"","sources":["../../../../libs/lockstep-core/tson/stringifyBON.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vitest.config.d.ts","sourceRoot":"","sources":["../../../libs/lockstep-core/vitest.config.ts"],"names":[],"mappings":";AAEA,wBAUG"}
|
package/vitest.config.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { defineConfig } from 'vitest/config';
|
|
2
|
+
export default defineConfig({
|
|
3
|
+
test: {
|
|
4
|
+
globals: true,
|
|
5
|
+
environment: 'node',
|
|
6
|
+
include: ['**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
|
|
7
|
+
coverage: {
|
|
8
|
+
provider: 'v8',
|
|
9
|
+
reporter: ['text'],
|
|
10
|
+
},
|
|
11
|
+
},
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=vitest.config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vitest.config.js","sourceRoot":"","sources":["../../../libs/lockstep-core/vitest.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,eAAe,YAAY,CAAC;IAC3B,IAAI,EAAE;QACL,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE,CAAC,kDAAkD,CAAC;QAC7D,QAAQ,EAAE;YACT,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,CAAC,MAAM,CAAC;SAClB;KACD;CACD,CAAC,CAAC"}
|