@ontrails/trails 1.0.0-beta.14 → 1.0.0-beta.15
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/.turbo/turbo-lint.log +1 -1
- package/CHANGELOG.md +13 -0
- package/__tests__/examples.test.ts +29 -4
- package/dist/src/app.js +2 -2
- package/dist/src/app.js.map +1 -1
- package/dist/src/clack.d.ts +1 -1
- package/dist/src/clack.js +1 -1
- package/dist/src/cli.js +4 -3
- package/dist/src/cli.js.map +1 -1
- package/dist/src/trails/add-surface.d.ts +3 -3
- package/dist/src/trails/add-surface.d.ts.map +1 -1
- package/dist/src/trails/add-surface.js +46 -24
- package/dist/src/trails/add-surface.js.map +1 -1
- package/dist/src/trails/add-trail.d.ts +3 -1
- package/dist/src/trails/add-trail.d.ts.map +1 -1
- package/dist/src/trails/add-trail.js +38 -11
- package/dist/src/trails/add-trail.js.map +1 -1
- package/dist/src/trails/add-trailhead.d.ts +1 -1
- package/dist/src/trails/add-trailhead.d.ts.map +1 -1
- package/dist/src/trails/add-trailhead.js +4 -4
- package/dist/src/trails/add-verify.d.ts +1 -1
- package/dist/src/trails/add-verify.d.ts.map +1 -1
- package/dist/src/trails/add-verify.js +7 -6
- package/dist/src/trails/add-verify.js.map +1 -1
- package/dist/src/trails/create-scaffold.d.ts +1 -1
- package/dist/src/trails/create-scaffold.d.ts.map +1 -1
- package/dist/src/trails/create-scaffold.js +10 -3
- package/dist/src/trails/create-scaffold.js.map +1 -1
- package/dist/src/trails/create.d.ts +10 -14
- package/dist/src/trails/create.d.ts.map +1 -1
- package/dist/src/trails/create.js +42 -37
- package/dist/src/trails/create.js.map +1 -1
- package/dist/src/trails/dev-clean.d.ts +4 -4
- package/dist/src/trails/dev-clean.d.ts.map +1 -1
- package/dist/src/trails/dev-clean.js +22 -21
- package/dist/src/trails/dev-clean.js.map +1 -1
- package/dist/src/trails/dev-reset.d.ts +1 -1
- package/dist/src/trails/dev-reset.d.ts.map +1 -1
- package/dist/src/trails/dev-reset.js +3 -2
- package/dist/src/trails/dev-reset.js.map +1 -1
- package/dist/src/trails/dev-stats.d.ts +4 -4
- package/dist/src/trails/dev-stats.d.ts.map +1 -1
- package/dist/src/trails/dev-stats.js +19 -19
- package/dist/src/trails/dev-stats.js.map +1 -1
- package/dist/src/trails/dev-support.d.ts +17 -17
- package/dist/src/trails/dev-support.d.ts.map +1 -1
- package/dist/src/trails/dev-support.js +60 -57
- package/dist/src/trails/dev-support.js.map +1 -1
- package/dist/src/trails/draft-promote.d.ts +1 -1
- package/dist/src/trails/draft-promote.d.ts.map +1 -1
- package/dist/src/trails/draft-promote.js +30 -16
- package/dist/src/trails/draft-promote.js.map +1 -1
- package/dist/src/trails/guide.d.ts +2 -2
- package/dist/src/trails/guide.d.ts.map +1 -1
- package/dist/src/trails/guide.js +1 -4
- package/dist/src/trails/guide.js.map +1 -1
- package/dist/src/trails/load-app.d.ts +7 -1
- package/dist/src/trails/load-app.d.ts.map +1 -1
- package/dist/src/trails/load-app.js +374 -26
- package/dist/src/trails/load-app.js.map +1 -1
- package/dist/src/trails/survey.d.ts +5 -5
- package/dist/src/trails/survey.d.ts.map +1 -1
- package/dist/src/trails/survey.js +51 -29
- package/dist/src/trails/survey.js.map +1 -1
- package/dist/src/trails/topo-export.d.ts +5 -4
- package/dist/src/trails/topo-export.d.ts.map +1 -1
- package/dist/src/trails/topo-export.js +4 -7
- package/dist/src/trails/topo-export.js.map +1 -1
- package/dist/src/trails/topo-history.d.ts +6 -10
- package/dist/src/trails/topo-history.d.ts.map +1 -1
- package/dist/src/trails/topo-history.js +7 -8
- package/dist/src/trails/topo-history.js.map +1 -1
- package/dist/src/trails/topo-pin.d.ts +5 -9
- package/dist/src/trails/topo-pin.d.ts.map +1 -1
- package/dist/src/trails/topo-pin.js +5 -9
- package/dist/src/trails/topo-pin.js.map +1 -1
- package/dist/src/trails/topo-read-support.d.ts +12 -8
- package/dist/src/trails/topo-read-support.d.ts.map +1 -1
- package/dist/src/trails/topo-read-support.js +71 -82
- package/dist/src/trails/topo-read-support.js.map +1 -1
- package/dist/src/trails/topo-reports.d.ts +15 -11
- package/dist/src/trails/topo-reports.d.ts.map +1 -1
- package/dist/src/trails/topo-reports.js +40 -34
- package/dist/src/trails/topo-reports.js.map +1 -1
- package/dist/src/trails/topo-show.d.ts +4 -4
- package/dist/src/trails/topo-show.d.ts.map +1 -1
- package/dist/src/trails/topo-show.js +8 -12
- package/dist/src/trails/topo-show.js.map +1 -1
- package/dist/src/trails/topo-store-support.d.ts +2 -2
- package/dist/src/trails/topo-store-support.d.ts.map +1 -1
- package/dist/src/trails/topo-store-support.js +22 -22
- package/dist/src/trails/topo-store-support.js.map +1 -1
- package/dist/src/trails/topo-support.d.ts +19 -30
- package/dist/src/trails/topo-support.d.ts.map +1 -1
- package/dist/src/trails/topo-support.js +63 -96
- package/dist/src/trails/topo-support.js.map +1 -1
- package/dist/src/trails/topo-unpin.d.ts +9 -4
- package/dist/src/trails/topo-unpin.d.ts.map +1 -1
- package/dist/src/trails/topo-unpin.js +9 -4
- package/dist/src/trails/topo-unpin.js.map +1 -1
- package/dist/src/trails/topo-verify.d.ts +2 -2
- package/dist/src/trails/topo-verify.d.ts.map +1 -1
- package/dist/src/trails/topo-verify.js +1 -5
- package/dist/src/trails/topo-verify.js.map +1 -1
- package/dist/src/trails/topo.d.ts +2 -2
- package/dist/src/trails/topo.d.ts.map +1 -1
- package/dist/src/trails/topo.js +6 -10
- package/dist/src/trails/topo.js.map +1 -1
- package/dist/src/trails/warden.d.ts +3 -2
- package/dist/src/trails/warden.d.ts.map +1 -1
- package/dist/src/trails/warden.js +11 -2
- package/dist/src/trails/warden.js.map +1 -1
- package/dist/src/versions.d.ts +12 -0
- package/dist/src/versions.d.ts.map +1 -0
- package/dist/src/versions.js +23 -0
- package/dist/src/versions.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
- package/src/__tests__/add-trail.test.ts +97 -0
- package/src/__tests__/create.test.ts +91 -27
- package/src/__tests__/guide.test.ts +10 -5
- package/src/__tests__/load-app.test.ts +365 -4
- package/src/__tests__/survey.test.ts +143 -67
- package/src/__tests__/topo-dev.test.ts +48 -46
- package/src/app.ts +2 -2
- package/src/clack.ts +1 -1
- package/src/cli.ts +4 -3
- package/src/trails/add-surface.ts +150 -0
- package/src/trails/add-trail.ts +46 -10
- package/src/trails/add-verify.ts +11 -6
- package/src/trails/create-scaffold.ts +16 -3
- package/src/trails/create.ts +76 -71
- package/src/trails/dev-clean.ts +25 -21
- package/src/trails/dev-reset.ts +3 -2
- package/src/trails/dev-stats.ts +22 -19
- package/src/trails/dev-support.ts +88 -86
- package/src/trails/draft-promote.ts +70 -35
- package/src/trails/guide.ts +1 -4
- package/src/trails/load-app.ts +511 -32
- package/src/trails/survey.ts +60 -35
- package/src/trails/topo-export.ts +5 -9
- package/src/trails/topo-history.ts +8 -10
- package/src/trails/topo-pin.ts +9 -13
- package/src/trails/topo-read-support.ts +103 -106
- package/src/trails/topo-reports.ts +54 -47
- package/src/trails/topo-show.ts +8 -12
- package/src/trails/topo-store-support.ts +36 -28
- package/src/trails/topo-support.ts +90 -134
- package/src/trails/topo-unpin.ts +11 -6
- package/src/trails/topo-verify.ts +1 -5
- package/src/trails/topo.ts +6 -10
- package/src/trails/warden.ts +12 -3
- package/src/versions.ts +43 -0
- package/tsconfig.tests.json +10 -0
- package/src/trails/add-trailhead.ts +0 -121
|
@@ -1,22 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `create` route -- Create a new Trails project.
|
|
3
3
|
*
|
|
4
|
-
* Composes create.scaffold, add.
|
|
5
|
-
* via ctx.cross
|
|
4
|
+
* Composes create.scaffold, add.surface, and add.verify sub-trails
|
|
5
|
+
* via ctx.cross.
|
|
6
6
|
*/
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
readonly verify: boolean;
|
|
15
|
-
}
|
|
16
|
-
export declare const createRoute: import("@ontrails/core").Trail<CreateInput, {
|
|
7
|
+
export declare const createRoute: import("@ontrails/core").Trail<{
|
|
8
|
+
name: string;
|
|
9
|
+
starter: "empty" | "entity" | "hello";
|
|
10
|
+
surfaces: ("cli" | "http" | "mcp")[];
|
|
11
|
+
verify: boolean;
|
|
12
|
+
dir?: string | undefined;
|
|
13
|
+
}, {
|
|
17
14
|
created: string[];
|
|
18
15
|
dir: string;
|
|
19
16
|
name: string;
|
|
20
|
-
}>;
|
|
21
|
-
export {};
|
|
17
|
+
}, never>;
|
|
22
18
|
//# sourceMappingURL=create.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/trails/create.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/trails/create.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoGH,eAAO,MAAM,WAAW;;;;;;;aAgBA,MAAM,EAAE;SAAO,MAAM;UAAQ,MAAM;SAsFzD,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `create` route -- Create a new Trails project.
|
|
3
3
|
*
|
|
4
|
-
* Composes create.scaffold, add.
|
|
5
|
-
* via ctx.cross
|
|
4
|
+
* Composes create.scaffold, add.surface, and add.verify sub-trails
|
|
5
|
+
* via ctx.cross.
|
|
6
6
|
*/
|
|
7
7
|
import { Result, trail } from '@ontrails/core';
|
|
8
8
|
import { z } from 'zod';
|
|
@@ -11,19 +11,18 @@ const buildScaffoldInput = (input) => ({
|
|
|
11
11
|
name: input.name,
|
|
12
12
|
starter: input.starter,
|
|
13
13
|
});
|
|
14
|
-
const
|
|
14
|
+
const buildSurfaceInput = (dir, surface) => ({
|
|
15
15
|
dir,
|
|
16
|
-
|
|
16
|
+
surface,
|
|
17
17
|
});
|
|
18
18
|
const buildVerifyInput = (input) => ({
|
|
19
19
|
...(input.dir === undefined ? {} : { dir: input.dir }),
|
|
20
20
|
name: input.name,
|
|
21
21
|
});
|
|
22
|
-
const
|
|
23
|
-
const addTrailheadFiles = async (cross, dir, trailheads) => {
|
|
22
|
+
const collectSurfaceFiles = async (surfaces, addSurface) => {
|
|
24
23
|
const created = [];
|
|
25
|
-
for (const
|
|
26
|
-
const result = await
|
|
24
|
+
for (const surface of surfaces) {
|
|
25
|
+
const result = await addSurface(surface);
|
|
27
26
|
if (result.isErr()) {
|
|
28
27
|
return Result.err(result.error);
|
|
29
28
|
}
|
|
@@ -31,35 +30,16 @@ const addTrailheadFiles = async (cross, dir, trailheads) => {
|
|
|
31
30
|
}
|
|
32
31
|
return Result.ok(created);
|
|
33
32
|
};
|
|
34
|
-
const collectVerifyFiles = async (
|
|
35
|
-
if (!
|
|
33
|
+
const collectVerifyFiles = async (shouldVerify, addVerify) => {
|
|
34
|
+
if (!shouldVerify) {
|
|
36
35
|
return Result.ok([]);
|
|
37
36
|
}
|
|
38
|
-
const result = await
|
|
37
|
+
const result = await addVerify();
|
|
39
38
|
return result.isErr()
|
|
40
39
|
? Result.err(result.error)
|
|
41
40
|
: Result.ok(result.value.created);
|
|
42
41
|
};
|
|
43
|
-
const collectCreatedFiles = (scaffolded,
|
|
44
|
-
const runCreate = async (cross, input) => {
|
|
45
|
-
const scaffolded = await scaffoldProject(cross, input);
|
|
46
|
-
if (scaffolded.isErr()) {
|
|
47
|
-
return Result.err(scaffolded.error);
|
|
48
|
-
}
|
|
49
|
-
const trailheadResults = await addTrailheadFiles(cross, scaffolded.value.dir, input.trailheads);
|
|
50
|
-
if (trailheadResults.isErr()) {
|
|
51
|
-
return Result.err(trailheadResults.error);
|
|
52
|
-
}
|
|
53
|
-
const verifyFiles = await collectVerifyFiles(cross, input);
|
|
54
|
-
if (verifyFiles.isErr()) {
|
|
55
|
-
return Result.err(verifyFiles.error);
|
|
56
|
-
}
|
|
57
|
-
return Result.ok({
|
|
58
|
-
created: collectCreatedFiles(scaffolded.value.created, trailheadResults.value, verifyFiles.value),
|
|
59
|
-
dir: scaffolded.value.dir,
|
|
60
|
-
name: input.name,
|
|
61
|
-
});
|
|
62
|
-
};
|
|
42
|
+
const collectCreatedFiles = (scaffolded, surfaces, verify) => [...scaffolded, ...surfaces, ...verify];
|
|
63
43
|
// ---------------------------------------------------------------------------
|
|
64
44
|
// Route definition
|
|
65
45
|
// ---------------------------------------------------------------------------
|
|
@@ -68,9 +48,29 @@ export const createRoute = trail('create', {
|
|
|
68
48
|
if (!ctx.cross) {
|
|
69
49
|
return Result.err(new Error('create route requires ctx.cross'));
|
|
70
50
|
}
|
|
71
|
-
|
|
51
|
+
const { cross } = ctx;
|
|
52
|
+
const scaffolded = await cross('create.scaffold', buildScaffoldInput(input));
|
|
53
|
+
if (scaffolded.isErr()) {
|
|
54
|
+
return Result.err(scaffolded.error);
|
|
55
|
+
}
|
|
56
|
+
const finishCreate = async () => {
|
|
57
|
+
const surfaceFiles = await collectSurfaceFiles(input.surfaces, (surface) => cross('add.surface', buildSurfaceInput(scaffolded.value.dir, surface)));
|
|
58
|
+
if (surfaceFiles.isErr()) {
|
|
59
|
+
return Result.err(surfaceFiles.error);
|
|
60
|
+
}
|
|
61
|
+
const verifyFiles = await collectVerifyFiles(input.verify, () => cross('add.verify', buildVerifyInput(input)));
|
|
62
|
+
if (verifyFiles.isErr()) {
|
|
63
|
+
return Result.err(verifyFiles.error);
|
|
64
|
+
}
|
|
65
|
+
return Result.ok({
|
|
66
|
+
created: collectCreatedFiles(scaffolded.value.created, surfaceFiles.value, verifyFiles.value),
|
|
67
|
+
dir: scaffolded.value.dir,
|
|
68
|
+
name: input.name,
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
return finishCreate();
|
|
72
72
|
},
|
|
73
|
-
crosses: ['create.scaffold', 'add.
|
|
73
|
+
crosses: ['create.scaffold', 'add.surface', 'add.verify'],
|
|
74
74
|
description: 'Create a new Trails project',
|
|
75
75
|
fields: {
|
|
76
76
|
starter: {
|
|
@@ -88,7 +88,7 @@ export const createRoute = trail('create', {
|
|
|
88
88
|
{ hint: 'Just the structure', label: 'Empty', value: 'empty' },
|
|
89
89
|
],
|
|
90
90
|
},
|
|
91
|
-
|
|
91
|
+
surfaces: {
|
|
92
92
|
options: [
|
|
93
93
|
{ hint: 'Commander-based command line', label: 'CLI', value: 'cli' },
|
|
94
94
|
{
|
|
@@ -96,6 +96,11 @@ export const createRoute = trail('create', {
|
|
|
96
96
|
label: 'MCP',
|
|
97
97
|
value: 'mcp',
|
|
98
98
|
},
|
|
99
|
+
{
|
|
100
|
+
hint: 'Hono-powered HTTP endpoints',
|
|
101
|
+
label: 'HTTP',
|
|
102
|
+
value: 'http',
|
|
103
|
+
},
|
|
99
104
|
],
|
|
100
105
|
},
|
|
101
106
|
},
|
|
@@ -106,10 +111,10 @@ export const createRoute = trail('create', {
|
|
|
106
111
|
.enum(['hello', 'entity', 'empty'])
|
|
107
112
|
.default('hello')
|
|
108
113
|
.describe('Starter trail'),
|
|
109
|
-
|
|
110
|
-
.array(z.enum(['cli', 'mcp']))
|
|
114
|
+
surfaces: z
|
|
115
|
+
.array(z.enum(['cli', 'http', 'mcp']))
|
|
111
116
|
.default(['cli'])
|
|
112
|
-
.describe('
|
|
117
|
+
.describe('Surfaces'),
|
|
113
118
|
verify: z.boolean().default(true).describe('Include testing + warden'),
|
|
114
119
|
}),
|
|
115
120
|
output: z.object({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/trails/create.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/trails/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export declare const devCleanTrail: import("@ontrails/core").Trail<{
|
|
2
2
|
dryRun: boolean;
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
snapshots: number;
|
|
4
|
+
traceAgeMs: number;
|
|
5
|
+
traces: number;
|
|
6
6
|
yes: boolean;
|
|
7
7
|
rootDir?: string | undefined;
|
|
8
|
-
}, import("./dev-support.js").DevCleanReport>;
|
|
8
|
+
}, import("./dev-support.js").DevCleanReport, never>;
|
|
9
9
|
//# sourceMappingURL=dev-clean.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-clean.d.ts","sourceRoot":"","sources":["../../../src/trails/dev-clean.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dev-clean.d.ts","sourceRoot":"","sources":["../../../src/trails/dev-clean.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,aAAa;;;;;;;oDAmExB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Result, ValidationError, trail } from '@ontrails/core';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import { cleanDevState,
|
|
4
|
-
import {
|
|
3
|
+
import { cleanDevState, DEFAULT_TOPO_SNAPSHOT_RETENTION, } from './dev-support.js';
|
|
4
|
+
import { createIsolatedExampleInput } from './topo-support.js';
|
|
5
5
|
export const devCleanTrail = trail('dev.clean', {
|
|
6
6
|
blaze: (input, ctx) => {
|
|
7
7
|
if (input.dryRun !== true && input.yes !== true) {
|
|
@@ -10,18 +10,18 @@ export const devCleanTrail = trail('dev.clean', {
|
|
|
10
10
|
const rootDir = input.rootDir ?? ctx.cwd ?? process.cwd();
|
|
11
11
|
return Result.ok(cleanDevState({
|
|
12
12
|
dryRun: input.dryRun,
|
|
13
|
-
maxAge: input.
|
|
14
|
-
maxRecords: input.
|
|
13
|
+
maxAge: input.traceAgeMs,
|
|
14
|
+
maxRecords: input.traces,
|
|
15
15
|
rootDir,
|
|
16
|
-
|
|
16
|
+
snapshotRetention: input.snapshots,
|
|
17
17
|
}));
|
|
18
18
|
},
|
|
19
|
-
description: 'Prune unpinned topo
|
|
19
|
+
description: 'Prune unpinned topo snapshots and old trace records',
|
|
20
20
|
examples: [
|
|
21
21
|
{
|
|
22
22
|
input: {
|
|
23
23
|
dryRun: true,
|
|
24
|
-
rootDir:
|
|
24
|
+
rootDir: createIsolatedExampleInput('dev-clean').rootDir,
|
|
25
25
|
},
|
|
26
26
|
name: 'Preview local cleanup',
|
|
27
27
|
},
|
|
@@ -32,34 +32,35 @@ export const devCleanTrail = trail('dev.clean', {
|
|
|
32
32
|
.default(true)
|
|
33
33
|
.describe('Preview cleanup without changing state'),
|
|
34
34
|
rootDir: z.string().optional().describe('Workspace root directory'),
|
|
35
|
-
|
|
35
|
+
snapshots: z
|
|
36
36
|
.number()
|
|
37
|
-
.default(
|
|
38
|
-
.describe('Unpinned topo
|
|
39
|
-
|
|
37
|
+
.default(DEFAULT_TOPO_SNAPSHOT_RETENTION)
|
|
38
|
+
.describe('Unpinned topo snapshots to retain'),
|
|
39
|
+
traceAgeMs: z
|
|
40
40
|
.number()
|
|
41
41
|
.default(7 * 24 * 60 * 60 * 1000)
|
|
42
|
-
.describe('Maximum retained
|
|
43
|
-
|
|
42
|
+
.describe('Maximum retained trace age in milliseconds'),
|
|
43
|
+
traces: z.number().default(10_000).describe('Maximum retained trace count'),
|
|
44
44
|
yes: z.boolean().default(false).describe('Confirm destructive changes'),
|
|
45
45
|
}),
|
|
46
46
|
intent: 'destroy',
|
|
47
47
|
output: z.object({
|
|
48
48
|
dryRun: z.boolean(),
|
|
49
49
|
remaining: z.object({
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
pinnedCount: z.number(),
|
|
51
|
+
snapshotCount: z.number(),
|
|
52
|
+
traceCount: z.number(),
|
|
53
53
|
}),
|
|
54
54
|
removed: z.object({
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
topoSnapshots: z.number(),
|
|
56
|
+
traceRecords: z.number(),
|
|
57
57
|
}),
|
|
58
58
|
retention: z.object({
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
snapshots: z.number(),
|
|
60
|
+
traceAgeMs: z.number(),
|
|
61
|
+
traces: z.number(),
|
|
62
62
|
}),
|
|
63
63
|
}),
|
|
64
|
+
permit: { scopes: ['dev:clean'] },
|
|
64
65
|
});
|
|
65
66
|
//# sourceMappingURL=dev-clean.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-clean.js","sourceRoot":"","sources":["../../../src/trails/dev-clean.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,
|
|
1
|
+
{"version":3,"file":"dev-clean.js","sourceRoot":"","sources":["../../../src/trails/dev-clean.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,5 +2,5 @@ export declare const devResetTrail: import("@ontrails/core").Trail<{
|
|
|
2
2
|
dryRun: boolean;
|
|
3
3
|
yes: boolean;
|
|
4
4
|
rootDir?: string | undefined;
|
|
5
|
-
}, import("./dev-support.js").DevResetReport>;
|
|
5
|
+
}, import("./dev-support.js").DevResetReport, never>;
|
|
6
6
|
//# sourceMappingURL=dev-reset.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-reset.d.ts","sourceRoot":"","sources":["../../../src/trails/dev-reset.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,aAAa;;;;
|
|
1
|
+
{"version":3,"file":"dev-reset.d.ts","sourceRoot":"","sources":["../../../src/trails/dev-reset.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,aAAa;;;;oDAsCxB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Result, ValidationError, trail } from '@ontrails/core';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { resetDevState } from './dev-support.js';
|
|
4
|
-
import {
|
|
4
|
+
import { createIsolatedExampleInput } from './topo-support.js';
|
|
5
5
|
export const devResetTrail = trail('dev.reset', {
|
|
6
6
|
blaze: (input, ctx) => {
|
|
7
7
|
if (input.dryRun !== true && input.yes !== true) {
|
|
@@ -15,7 +15,7 @@ export const devResetTrail = trail('dev.reset', {
|
|
|
15
15
|
{
|
|
16
16
|
input: {
|
|
17
17
|
dryRun: true,
|
|
18
|
-
rootDir:
|
|
18
|
+
rootDir: createIsolatedExampleInput('dev-reset').rootDir,
|
|
19
19
|
},
|
|
20
20
|
name: 'Preview local reset',
|
|
21
21
|
},
|
|
@@ -34,5 +34,6 @@ export const devResetTrail = trail('dev.reset', {
|
|
|
34
34
|
removedCount: z.number(),
|
|
35
35
|
removedFiles: z.array(z.string()),
|
|
36
36
|
}),
|
|
37
|
+
permit: { scopes: ['dev:reset'] },
|
|
37
38
|
});
|
|
38
39
|
//# sourceMappingURL=dev-reset.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-reset.js","sourceRoot":"","sources":["../../../src/trails/dev-reset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"dev-reset.js","sourceRoot":"","sources":["../../../src/trails/dev-reset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAE/D,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,EAAE;IAC9C,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACpB,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;YAChD,OAAO,MAAM,CAAC,GAAG,CACf,IAAI,eAAe,CACjB,+DAA+D,CAChE,CACF,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1D,OAAO,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,WAAW,EAAE,wCAAwC;IACrD,QAAQ,EAAE;QACR;YACE,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,0BAA0B,CAAC,WAAW,CAAC,CAAC,OAAO;aACzD;YACD,IAAI,EAAE,qBAAqB;SAC5B;KACF;IACD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,MAAM,EAAE,CAAC;aACN,OAAO,EAAE;aACT,OAAO,CAAC,IAAI,CAAC;aACb,QAAQ,CAAC,sCAAsC,CAAC;QACnD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QACnE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;KACxE,CAAC;IACF,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;QACnB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;QACxB,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KAClC,CAAC;IACF,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE;CAClC,CAAC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export declare const devStatsTrail: import("@ontrails/core").Trail<{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
snapshots: number;
|
|
3
|
+
traceAgeMs: number;
|
|
4
|
+
traces: number;
|
|
5
5
|
rootDir?: string | undefined;
|
|
6
|
-
}, import("./dev-support.js").DevStatsReport>;
|
|
6
|
+
}, import("./dev-support.js").DevStatsReport, never>;
|
|
7
7
|
//# sourceMappingURL=dev-stats.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-stats.d.ts","sourceRoot":"","sources":["../../../src/trails/dev-stats.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dev-stats.d.ts","sourceRoot":"","sources":["../../../src/trails/dev-stats.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,aAAa;;;;;oDAyDxB,CAAC"}
|
|
@@ -1,35 +1,35 @@
|
|
|
1
1
|
import { Result, trail } from '@ontrails/core';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import { buildDevStats,
|
|
4
|
-
import {
|
|
3
|
+
import { buildDevStats, DEFAULT_TOPO_SNAPSHOT_RETENTION, } from './dev-support.js';
|
|
4
|
+
import { createIsolatedExampleInput } from './topo-support.js';
|
|
5
5
|
export const devStatsTrail = trail('dev.stats', {
|
|
6
6
|
blaze: (input, ctx) => {
|
|
7
7
|
const rootDir = input.rootDir ?? ctx.cwd ?? process.cwd();
|
|
8
8
|
return Result.ok(buildDevStats({
|
|
9
|
-
maxAge: input.
|
|
10
|
-
maxRecords: input.
|
|
9
|
+
maxAge: input.traceAgeMs,
|
|
10
|
+
maxRecords: input.traces,
|
|
11
11
|
rootDir,
|
|
12
|
-
|
|
12
|
+
snapshotRetention: input.snapshots,
|
|
13
13
|
}));
|
|
14
14
|
},
|
|
15
15
|
description: 'Show local Trails workspace state and retention',
|
|
16
16
|
examples: [
|
|
17
17
|
{
|
|
18
|
-
input: { rootDir:
|
|
18
|
+
input: { rootDir: createIsolatedExampleInput('dev-stats').rootDir },
|
|
19
19
|
name: 'Show local dev state',
|
|
20
20
|
},
|
|
21
21
|
],
|
|
22
22
|
input: z.object({
|
|
23
23
|
rootDir: z.string().optional().describe('Workspace root directory'),
|
|
24
|
-
|
|
24
|
+
snapshots: z
|
|
25
25
|
.number()
|
|
26
|
-
.default(
|
|
27
|
-
.describe('Unpinned topo
|
|
28
|
-
|
|
26
|
+
.default(DEFAULT_TOPO_SNAPSHOT_RETENTION)
|
|
27
|
+
.describe('Unpinned topo snapshots to retain'),
|
|
28
|
+
traceAgeMs: z
|
|
29
29
|
.number()
|
|
30
30
|
.default(7 * 24 * 60 * 60 * 1000)
|
|
31
|
-
.describe('Maximum retained
|
|
32
|
-
|
|
31
|
+
.describe('Maximum retained trace age in milliseconds'),
|
|
32
|
+
traces: z.number().default(10_000).describe('Maximum retained trace count'),
|
|
33
33
|
}),
|
|
34
34
|
intent: 'read',
|
|
35
35
|
output: z.object({
|
|
@@ -44,16 +44,16 @@ export const devStatsTrail = trail('dev.stats', {
|
|
|
44
44
|
path: z.string(),
|
|
45
45
|
}),
|
|
46
46
|
retention: z.object({
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
snapshots: z.number(),
|
|
48
|
+
traceAgeMs: z.number(),
|
|
49
|
+
traces: z.number(),
|
|
50
50
|
}),
|
|
51
51
|
topo: z.object({
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
pinnedCount: z.number(),
|
|
53
|
+
prunableSnapshotCount: z.number(),
|
|
54
|
+
snapshotCount: z.number(),
|
|
55
55
|
}),
|
|
56
|
-
|
|
56
|
+
tracing: z.object({
|
|
57
57
|
recordCount: z.number(),
|
|
58
58
|
}),
|
|
59
59
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-stats.js","sourceRoot":"","sources":["../../../src/trails/dev-stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,
|
|
1
|
+
{"version":3,"file":"dev-stats.js","sourceRoot":"","sources":["../../../src/trails/dev-stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,aAAa,EACb,+BAA+B,GAChC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAE/D,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,EAAE;IAC9C,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACpB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1D,OAAO,MAAM,CAAC,EAAE,CACd,aAAa,CAAC;YACZ,MAAM,EAAE,KAAK,CAAC,UAAU;YACxB,UAAU,EAAE,KAAK,CAAC,MAAM;YACxB,OAAO;YACP,iBAAiB,EAAE,KAAK,CAAC,SAAS;SACnC,CAAC,CACH,CAAC;IACJ,CAAC;IACD,WAAW,EAAE,iDAAiD;IAC9D,QAAQ,EAAE;QACR;YACE,KAAK,EAAE,EAAE,OAAO,EAAE,0BAA0B,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE;YACnE,IAAI,EAAE,sBAAsB;SAC7B;KACF;IACD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QACnE,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,OAAO,CAAC,+BAA+B,CAAC;aACxC,QAAQ,CAAC,mCAAmC,CAAC;QAChD,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;aAChC,QAAQ,CAAC,4CAA4C,CAAC;QACzD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC;KAC5E,CAAC;IACF,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;YACX,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;YACnB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;YACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;SACjB,CAAC;QACF,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACb,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;YACnB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;YACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;SACjB,CAAC;QACF,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC;YAClB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;YACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;YACtB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;SACnB,CAAC;QACF,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACb,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;YACvB,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE;YACjC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;SAC1B,CAAC;QACF,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;YAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;SACxB,CAAC;KACH,CAAC;CACH,CAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const
|
|
1
|
+
export declare const DEFAULT_TOPO_SNAPSHOT_RETENTION = 50;
|
|
2
2
|
export interface DevStatsReport {
|
|
3
3
|
readonly db: {
|
|
4
4
|
readonly exists: boolean;
|
|
@@ -11,34 +11,34 @@ export interface DevStatsReport {
|
|
|
11
11
|
readonly path: string;
|
|
12
12
|
};
|
|
13
13
|
readonly retention: {
|
|
14
|
-
readonly
|
|
15
|
-
readonly
|
|
16
|
-
readonly
|
|
14
|
+
readonly snapshots: number;
|
|
15
|
+
readonly traceAgeMs: number;
|
|
16
|
+
readonly traces: number;
|
|
17
17
|
};
|
|
18
18
|
readonly topo: {
|
|
19
|
-
readonly
|
|
20
|
-
readonly
|
|
21
|
-
readonly
|
|
19
|
+
readonly pinnedCount: number;
|
|
20
|
+
readonly prunableSnapshotCount: number;
|
|
21
|
+
readonly snapshotCount: number;
|
|
22
22
|
};
|
|
23
|
-
readonly
|
|
23
|
+
readonly tracing: {
|
|
24
24
|
readonly recordCount: number;
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
27
|
export interface DevCleanReport {
|
|
28
28
|
readonly dryRun: boolean;
|
|
29
29
|
readonly remaining: {
|
|
30
|
-
readonly
|
|
31
|
-
readonly
|
|
32
|
-
readonly
|
|
30
|
+
readonly pinnedCount: number;
|
|
31
|
+
readonly snapshotCount: number;
|
|
32
|
+
readonly traceCount: number;
|
|
33
33
|
};
|
|
34
34
|
readonly removed: {
|
|
35
|
-
readonly
|
|
36
|
-
readonly
|
|
35
|
+
readonly topoSnapshots: number;
|
|
36
|
+
readonly traceRecords: number;
|
|
37
37
|
};
|
|
38
38
|
readonly retention: {
|
|
39
|
-
readonly
|
|
40
|
-
readonly
|
|
41
|
-
readonly
|
|
39
|
+
readonly snapshots: number;
|
|
40
|
+
readonly traceAgeMs: number;
|
|
41
|
+
readonly traces: number;
|
|
42
42
|
};
|
|
43
43
|
}
|
|
44
44
|
export interface DevResetReport {
|
|
@@ -50,7 +50,7 @@ interface DevRetentionOptions {
|
|
|
50
50
|
readonly maxAge?: number;
|
|
51
51
|
readonly maxRecords?: number;
|
|
52
52
|
readonly rootDir?: string;
|
|
53
|
-
readonly
|
|
53
|
+
readonly snapshotRetention?: number;
|
|
54
54
|
}
|
|
55
55
|
export declare const buildDevStats: (options?: DevRetentionOptions) => DevStatsReport;
|
|
56
56
|
export declare const cleanDevState: (options?: DevRetentionOptions & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-support.d.ts","sourceRoot":"","sources":["../../../src/trails/dev-support.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dev-support.d.ts","sourceRoot":"","sources":["../../../src/trails/dev-support.ts"],"names":[],"mappings":"AAuBA,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAYlD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE;QACX,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;QACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;QACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,QAAQ,CAAC,SAAS,EAAE;QAClB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;QACvC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;KAChC,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;KAC9B,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE;QAClB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;KAC/B,CAAC;IACF,QAAQ,CAAC,SAAS,EAAE;QAClB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AA+KD,eAAO,MAAM,aAAa,GACxB,UAAU,mBAAmB,KAC5B,cAeF,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,UAAU,mBAAmB,GAAG;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,KAC5D,cAeF,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,UAAU;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B,KAAG,cAqBH,CAAC"}
|