@arki/dot 0.1.4 → 0.3.0
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/README.md +57 -0
- package/dist/cli/index.d.ts +8 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +46 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/render-graph.d.ts +36 -0
- package/dist/cli/render-graph.d.ts.map +1 -0
- package/dist/cli/render-graph.js +70 -0
- package/dist/cli/render-graph.js.map +1 -0
- package/dist/cli/render-openapi.d.ts +38 -0
- package/dist/cli/render-openapi.d.ts.map +1 -0
- package/dist/cli/render-openapi.js +131 -0
- package/dist/cli/render-openapi.js.map +1 -0
- package/dist/define-app.d.ts +10 -0
- package/dist/define-app.d.ts.map +1 -1
- package/dist/define-app.js +2 -0
- package/dist/define-app.js.map +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/kernel/app-instance.d.ts +2 -0
- package/dist/kernel/app-instance.d.ts.map +1 -1
- package/dist/kernel/app-instance.js +67 -17
- package/dist/kernel/app-instance.js.map +1 -1
- package/dist/lifecycle.d.ts +2 -0
- package/dist/lifecycle.d.ts.map +1 -1
- package/dist/lifecycle.js +2 -0
- package/dist/lifecycle.js.map +1 -1
- package/dist/manifest.d.ts +19 -0
- package/dist/manifest.d.ts.map +1 -1
- package/dist/pip-contract.d.ts +24 -2
- package/dist/pip-contract.d.ts.map +1 -1
- package/dist/pip-contract.js +0 -25
- package/dist/pip-contract.js.map +1 -1
- package/dist/pip.d.ts +1 -1
- package/dist/pip.d.ts.map +1 -1
- package/dist/pip.js.map +1 -1
- package/dist/signals.d.ts +65 -0
- package/dist/signals.d.ts.map +1 -0
- package/dist/signals.js +97 -0
- package/dist/signals.js.map +1 -0
- package/dist/test-harness.d.ts +75 -1
- package/dist/test-harness.d.ts.map +1 -1
- package/dist/test-harness.js +71 -0
- package/dist/test-harness.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/index.ts +68 -3
- package/src/cli/render-graph.ts +88 -0
- package/src/cli/render-openapi.ts +147 -0
- package/src/define-app.ts +13 -0
- package/src/index.ts +6 -2
- package/src/kernel/app-instance.ts +113 -51
- package/src/lifecycle.ts +2 -0
- package/src/manifest.ts +19 -0
- package/src/pip-contract.ts +31 -3
- package/src/pip.ts +1 -0
- package/src/signals.ts +134 -0
- package/src/test-harness.ts +140 -1
package/README.md
CHANGED
|
@@ -425,6 +425,58 @@ queue, same-phase calls coalesce onto one in-flight promise, and a
|
|
|
425
425
|
`dispose()` racing a slow `start()` always runs after it — the app ends
|
|
426
426
|
`disposed`, never resurrected.
|
|
427
427
|
|
|
428
|
+
## Testing pips
|
|
429
|
+
|
|
430
|
+
`testPip` is the typed unit-test builder: satisfy a pip's needs directly
|
|
431
|
+
with fakes — no real providers, no dependency chain — and the compiler
|
|
432
|
+
holds the same line it holds in production. A missing fake means `boot()`
|
|
433
|
+
does not compile; a fake of the wrong shape fails at the `.provide()`
|
|
434
|
+
call site:
|
|
435
|
+
|
|
436
|
+
```ts
|
|
437
|
+
import { testPip } from '@arki/dot/test-harness';
|
|
438
|
+
|
|
439
|
+
const app = await testPip(catalog)
|
|
440
|
+
.provide(Db, fakeDb) // token need
|
|
441
|
+
.provide('cache', fakeKv) // anonymous need — wire key is the alias
|
|
442
|
+
.boot();
|
|
443
|
+
|
|
444
|
+
expect(app.services.catalog.list()).toEqual([]);
|
|
445
|
+
await app.dispose();
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
The fakes are published by a synthetic first pip, so lifecycle semantics
|
|
449
|
+
are the real kernel's — reverse-order teardown, lazy auto-dispose, and
|
|
450
|
+
`$config` all behave exactly as in production. `service.lazy<T>()` needs
|
|
451
|
+
accept a plain `T` fake (lifted automatically) or `lazyOf(value)`.
|
|
452
|
+
|
|
453
|
+
For integration tests across several real pips, `testApp([...pips])`
|
|
454
|
+
builds an app from an erased pip array (runtime validation only), and
|
|
455
|
+
`bootTestApp` is the one-line boot-and-return variant.
|
|
456
|
+
|
|
457
|
+
## Operations
|
|
458
|
+
|
|
459
|
+
Two kernel helpers close the gap between "boots on my machine" and "runs
|
|
460
|
+
under a process manager":
|
|
461
|
+
|
|
462
|
+
```ts
|
|
463
|
+
const app = await defineApp('shop', { hookTimeoutMs: 30_000 })
|
|
464
|
+
.use(/* ... */)
|
|
465
|
+
.start();
|
|
466
|
+
|
|
467
|
+
hookSignals(app); // SIGTERM/SIGINT → stop() + dispose() → re-raise
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
- **`hookSignals(app, { timeoutMs? })`** — graceful shutdown wiring. The
|
|
471
|
+
first signal drains the app (bounded by `timeoutMs`, default 10 s) and
|
|
472
|
+
re-raises itself so the exit status keeps standard signal semantics; a
|
|
473
|
+
second signal falls through to the runtime default (immediate kill).
|
|
474
|
+
Returns an unhook function.
|
|
475
|
+
- **`hookTimeoutMs`** — a per-hook watchdog. Any `boot`/`start`/`stop`/
|
|
476
|
+
`dispose` hook exceeding the budget fails with `DOT_LIFECYCLE_E015`
|
|
477
|
+
naming the pip and hook, and the kernel applies its normal rollback or
|
|
478
|
+
aggregation rules. Your app cannot hang silently at boot.
|
|
479
|
+
|
|
428
480
|
## Pip authoring
|
|
429
481
|
|
|
430
482
|
`pip(config)` accepts a `needs` shape plus five lifecycle hooks. Hook
|
|
@@ -473,6 +525,7 @@ Runtime failures carry stable codes (`DotLifecycleError.code`):
|
|
|
473
525
|
| `DOT_LIFECYCLE_E012` | A need has no provider among earlier pips. |
|
|
474
526
|
| `DOT_LIFECYCLE_E013` | A published wire key collides with an earlier one. |
|
|
475
527
|
| `DOT_LIFECYCLE_E014` | A service key uses the reserved `$` (kernel) prefix. |
|
|
528
|
+
| `DOT_LIFECYCLE_E015` | A hook exceeded the `hookTimeoutMs` watchdog. |
|
|
476
529
|
|
|
477
530
|
(Full table including hook-failure codes: [docs/lifecycle.md](./docs/lifecycle.md).)
|
|
478
531
|
|
|
@@ -494,6 +547,10 @@ dot explain --app ./my-app.ts
|
|
|
494
547
|
# Run boot-time diagnostics; non-zero exit if any check fails.
|
|
495
548
|
dot doctor --app ./my-app.ts
|
|
496
549
|
|
|
550
|
+
# Render the pip graph as Mermaid flowchart source. explain shows
|
|
551
|
+
# declaration (= boot) order; doctor boots and shows the OBSERVED wiring.
|
|
552
|
+
dot doctor --app ./my-app.ts --graph
|
|
553
|
+
|
|
497
554
|
# Every command supports --json for agent-friendly output.
|
|
498
555
|
dot explain --app ./my-app.ts --json | jq '.data.pips'
|
|
499
556
|
```
|
package/dist/cli/index.d.ts
CHANGED
|
@@ -37,6 +37,10 @@ export type CliArgs = {
|
|
|
37
37
|
force?: boolean;
|
|
38
38
|
/** `--observability` (only honored by `doctor`). */
|
|
39
39
|
observability?: boolean;
|
|
40
|
+
/** `--graph` (honored by `explain` and `doctor`). */
|
|
41
|
+
graph?: boolean;
|
|
42
|
+
/** `--openapi` (honored by `explain` only). */
|
|
43
|
+
openapi?: boolean;
|
|
40
44
|
};
|
|
41
45
|
/**
|
|
42
46
|
* Parse argv into a typed shape. Exported so tests can exercise it without
|
|
@@ -49,6 +53,8 @@ export declare function parseArgs(argv: readonly string[]): CliArgs;
|
|
|
49
53
|
*/
|
|
50
54
|
export declare function runExplain(discovered: DiscoveredApp, opts: {
|
|
51
55
|
json: boolean;
|
|
56
|
+
graph?: boolean;
|
|
57
|
+
openapi?: boolean;
|
|
52
58
|
out?: (line: string) => void;
|
|
53
59
|
now?: () => Date;
|
|
54
60
|
}): Promise<DotCliEnvelope<unknown>>;
|
|
@@ -62,6 +68,8 @@ type DoctorRunOptions = {
|
|
|
62
68
|
* present. Default `false`.
|
|
63
69
|
*/
|
|
64
70
|
observability?: boolean;
|
|
71
|
+
/** When `true`, emit the pip graph (Mermaid) instead of diagnostics. */
|
|
72
|
+
graph?: boolean;
|
|
65
73
|
};
|
|
66
74
|
/**
|
|
67
75
|
* Run `doctor` on a discovered app. The CLI owns boot+dispose only when it
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;GAgBG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAwB,MAAM,qBAAqB,CAAC;AAGhF,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -25,6 +25,8 @@ import { runNew } from './new.js';
|
|
|
25
25
|
import { probeObservability } from './observability-probe.js';
|
|
26
26
|
import { renderDoctor } from './render-doctor.js';
|
|
27
27
|
import { renderExplain } from './render-explain.js';
|
|
28
|
+
import { renderGraph } from './render-graph.js';
|
|
29
|
+
import { renderOpenApi } from './render-openapi.js';
|
|
28
30
|
const debugCli = createDebugLogger('arki:dot:cli');
|
|
29
31
|
const VERSION = '0.1.0';
|
|
30
32
|
const HELP_TEXT = `dot — CLI for inspecting and scaffolding DOT apps
|
|
@@ -46,6 +48,14 @@ Common options:
|
|
|
46
48
|
--app <path> Path to the app entry file (default: discovers
|
|
47
49
|
./dot.config.ts, ./src/app.ts, or ./app.ts)
|
|
48
50
|
--cwd <dir> Working directory (default: current)
|
|
51
|
+
--graph Emit the pip graph as Mermaid flowchart source
|
|
52
|
+
instead of the standard output. explain shows
|
|
53
|
+
declaration (= boot) order; doctor shows the
|
|
54
|
+
wiring observed during boot. Composes with --json.
|
|
55
|
+
--openapi (explain only) Emit an OpenAPI 3.1 document built
|
|
56
|
+
from the manifest's registered routes and their
|
|
57
|
+
JSON Schemas — no boot required. Composes with
|
|
58
|
+
--json.
|
|
49
59
|
|
|
50
60
|
\`doctor\` options:
|
|
51
61
|
--observability Also probe whether an OpenTelemetry SDK is
|
|
@@ -116,6 +126,8 @@ export function parseArgs(argv) {
|
|
|
116
126
|
'dry-run': { type: 'boolean', default: false },
|
|
117
127
|
force: { type: 'boolean', default: false },
|
|
118
128
|
observability: { type: 'boolean', default: false },
|
|
129
|
+
graph: { type: 'boolean', default: false },
|
|
130
|
+
openapi: { type: 'boolean', default: false },
|
|
119
131
|
},
|
|
120
132
|
});
|
|
121
133
|
}
|
|
@@ -134,6 +146,20 @@ export function parseArgs(argv) {
|
|
|
134
146
|
command = 'version';
|
|
135
147
|
if (!command)
|
|
136
148
|
command = 'help';
|
|
149
|
+
if (values.openapi === true && values.graph === true) {
|
|
150
|
+
throw new DotCliError({
|
|
151
|
+
code: DotCliErrorCode.InvalidArgs,
|
|
152
|
+
message: '--openapi and --graph are mutually exclusive.',
|
|
153
|
+
remediation: 'Pick one output format per invocation.',
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
if (values.openapi === true && command === 'doctor') {
|
|
157
|
+
throw new DotCliError({
|
|
158
|
+
code: DotCliErrorCode.InvalidArgs,
|
|
159
|
+
message: '--openapi is not supported by doctor.',
|
|
160
|
+
remediation: 'Use `dot explain --openapi` — the document renders from the static manifest, no boot needed.',
|
|
161
|
+
});
|
|
162
|
+
}
|
|
137
163
|
let pm;
|
|
138
164
|
if (values.pm !== undefined) {
|
|
139
165
|
if (values.pm !== 'npm' && values.pm !== 'pnpm' && values.pm !== 'bun') {
|
|
@@ -157,6 +183,8 @@ export function parseArgs(argv) {
|
|
|
157
183
|
dryRun: values['dry-run'] ?? false,
|
|
158
184
|
force: values.force ?? false,
|
|
159
185
|
observability: values.observability ?? false,
|
|
186
|
+
graph: values.graph ?? false,
|
|
187
|
+
openapi: values.openapi ?? false,
|
|
160
188
|
};
|
|
161
189
|
}
|
|
162
190
|
/** Discovery wrapper — returns `null` for help/version commands. */
|
|
@@ -182,6 +210,12 @@ export async function runExplain(discovered, opts) {
|
|
|
182
210
|
catch (err) {
|
|
183
211
|
throw wrapLifecycleError(err, 'configure');
|
|
184
212
|
}
|
|
213
|
+
if (opts.openapi === true) {
|
|
214
|
+
return renderOpenApi({ manifest: configured.manifest, command: 'explain' }, { json: opts.json, out: opts.out, now: opts.now });
|
|
215
|
+
}
|
|
216
|
+
if (opts.graph === true) {
|
|
217
|
+
return renderGraph({ manifest: configured.manifest, command: 'explain' }, { json: opts.json, out: opts.out, now: opts.now });
|
|
218
|
+
}
|
|
185
219
|
return renderExplain({ manifest: configured.manifest }, { json: opts.json, out: opts.out, now: opts.now });
|
|
186
220
|
}
|
|
187
221
|
/**
|
|
@@ -198,6 +232,9 @@ export async function runDoctor(discovered, opts) {
|
|
|
198
232
|
// Already-booted app: just read diagnostics, don't touch lifecycle.
|
|
199
233
|
if (!guards.isDotAppBuilder(discovered) && !guards.isDotAppConfigured(discovered)) {
|
|
200
234
|
const app = discovered;
|
|
235
|
+
if (opts.graph === true) {
|
|
236
|
+
return renderGraph({ manifest: app.manifest, command: 'doctor' }, { json: opts.json, out: opts.out, now: opts.now });
|
|
237
|
+
}
|
|
201
238
|
const diagnostics = applyObservabilityProbe(app.diagnostics, opts.observability ?? false);
|
|
202
239
|
return renderDoctor({ diagnostics }, { json: opts.json, out: opts.out, now: opts.now });
|
|
203
240
|
}
|
|
@@ -226,6 +263,13 @@ export async function runDoctor(discovered, opts) {
|
|
|
226
263
|
debugCli('boot threw, falling back to configured diagnostics: %O', err);
|
|
227
264
|
}
|
|
228
265
|
try {
|
|
266
|
+
if (opts.graph === true) {
|
|
267
|
+
// Post-boot manifest carries the observed wiring edges; after a boot
|
|
268
|
+
// failure it carries the edges recorded up to the failing pip.
|
|
269
|
+
const manifest = bootedApp ? bootedApp.manifest : configured.manifest;
|
|
270
|
+
const graphEnvelope = renderGraph({ manifest, command: 'doctor' }, { json: opts.json, out: opts.out, now: opts.now });
|
|
271
|
+
return bootThrew ? { ...graphEnvelope, status: 'failure' } : graphEnvelope;
|
|
272
|
+
}
|
|
229
273
|
const rawDiagnostics = bootedApp ? bootedApp.diagnostics : configured.diagnostics;
|
|
230
274
|
const diagnostics = applyObservabilityProbe(rawDiagnostics, opts.observability ?? false);
|
|
231
275
|
const envelope = renderDoctor({ diagnostics }, { json: opts.json, out: opts.out, now: opts.now });
|
|
@@ -369,10 +413,10 @@ export async function main(options) {
|
|
|
369
413
|
}
|
|
370
414
|
try {
|
|
371
415
|
const discovered = await loadApp(args);
|
|
372
|
-
const opts = { json: args.json, out: stdout, now: nowFactory };
|
|
416
|
+
const opts = { json: args.json, graph: args.graph, out: stdout, now: nowFactory };
|
|
373
417
|
let envelope;
|
|
374
418
|
if (args.command === 'explain') {
|
|
375
|
-
envelope = await runExplain(discovered, opts);
|
|
419
|
+
envelope = await runExplain(discovered, { ...opts, openapi: args.openapi });
|
|
376
420
|
}
|
|
377
421
|
else {
|
|
378
422
|
envelope = await runDoctor(discovered, { ...opts, observability: args.observability });
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,WAAW,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAMpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAC;AAEnD,MAAM,OAAO,GAAG,OAAO,CAAC;AAExB,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCjB,CAAC;AA2BF;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,IAAuB;IAC/C,yEAAyE;IACzE,uEAAuE;IACvE,2CAA2C;IAC3C,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACvB,IAAI,OAAO,GAA8B,IAAI,CAAC;IAE9C,+DAA+D;IAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,GAAG,CAAC;YAChB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBAClG,OAAO,GAAG,GAAG,CAAC;gBACd,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAClB,MAAM;YACR,CAAC;YACD,MAAM,IAAI,WAAW,CAAC;gBACpB,IAAI,EAAE,eAAe,CAAC,cAAc;gBACpC,OAAO,EAAE,oBAAoB,GAAG,EAAE;gBAClC,WAAW,EAAE,+DAA+D;gBAC5E,QAAQ,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE;aAC5B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,4DAA4D;IAC5D,IAAI,UAA8B,CAAC;IACnC,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzB,UAAU,GAAG,GAAG,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAClB,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,MAAwC,CAAC;IAC7C,IAAI,CAAC;QACH,MAAM,GAAG,aAAa,CAAC;YACrB,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,IAAI;YACZ,gBAAgB,EAAE,KAAK;YACvB,OAAO,EAAE;gBACP,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;gBACzC,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACvB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACvB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;gBACzC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;gBAC5C,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACtB,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;gBAC9C,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;gBAC1C,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;gBAClD,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;gBAC1C,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;aAC7C;SACF,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,WAAW,CAAC;YACpB,IAAI,EAAE,eAAe,CAAC,WAAW;YACjC,OAAO,EAAE,0BAA0B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YACrF,WAAW,EAAE,4CAA4C;YACzD,KAAK,EAAE,GAAG;SACX,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAarB,CAAC;IAEF,IAAI,MAAM,CAAC,IAAI;QAAE,OAAO,GAAG,MAAM,CAAC;IAClC,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,GAAG,SAAS,CAAC;IAExC,IAAI,CAAC,OAAO;QAAE,OAAO,GAAG,MAAM,CAAC;IAE/B,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACrD,MAAM,IAAI,WAAW,CAAC;YACpB,IAAI,EAAE,eAAe,CAAC,WAAW;YACjC,OAAO,EAAE,+CAA+C;YACxD,WAAW,EAAE,wCAAwC;SACtD,CAAC,CAAC;IACL,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACpD,MAAM,IAAI,WAAW,CAAC;YACpB,IAAI,EAAE,eAAe,CAAC,WAAW;YACjC,OAAO,EAAE,uCAAuC;YAChD,WAAW,EAAE,8FAA8F;SAC5G,CAAC,CAAC;IACL,CAAC;IAED,IAAI,EAAiB,CAAC;IACtB,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;QAC5B,IAAI,MAAM,CAAC,EAAE,KAAK,KAAK,IAAI,MAAM,CAAC,EAAE,KAAK,MAAM,IAAI,MAAM,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;YACvE,MAAM,IAAI,WAAW,CAAC;gBACpB,IAAI,EAAE,eAAe,CAAC,WAAW;gBACjC,OAAO,EAAE,uBAAuB,MAAM,CAAC,EAAE,EAAE;gBAC3C,WAAW,EAAE,6BAA6B;gBAC1C,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE;aAClC,CAAC,CAAC;QACL,CAAC;QACD,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;IACjB,CAAC;IAED,OAAO;QACL,OAAO;QACP,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,KAAK;QAC1B,OAAO,EAAE,MAAM,CAAC,GAAG;QACnB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,UAAU;QACV,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,EAAE;QACF,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK;QAClC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,KAAK;QAC5B,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,KAAK;QAC5C,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,KAAK;QAC5B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK;KACjC,CAAC;AACJ,CAAC;AAED,oEAAoE;AACpE,KAAK,UAAU,OAAO,CAAC,IAAa;IAClC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,WAAW,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5E,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,UAAyB,EACzB,IAA2G;IAE3G,IAAI,UAAuF,CAAC;IAC5F,IAAI,CAAC;QACH,IAAI,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;YACvC,wCAAwC;YACxC,UAAU,GAAI,UAAqD,CAAC,SAAS,EAAE,CAAC;QAClF,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,UAEgC,CAAC;QAChD,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,kBAAkB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC1B,OAAO,aAAa,CAClB,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,EACrD,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAClD,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,WAAW,CAChB,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,EACrD,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAClD,CAAC;IACJ,CAAC;IACD,OAAO,aAAa,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7G,CAAC;AAgBD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,UAAyB,EACzB,IAAsB;IAEtB,oEAAoE;IACpE,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC;QAClF,MAAM,GAAG,GAAG,UAA6C,CAAC;QAC1D,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACxB,OAAO,WAAW,CAChB,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAC7C,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAClD,CAAC;QACJ,CAAC;QACD,MAAM,WAAW,GAAG,uBAAuB,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,CAAC;QAC1F,OAAO,YAAY,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,4EAA4E;IAC5E,mEAAmE;IACnE,WAAW;IACX,IAAI,UAAqD,CAAC;IAC1D,IAAI,CAAC;QACH,UAAU,GAAG,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC;YAC7C,CAAC,CAAE,UAAqD,CAAC,SAAS,EAAE;YACpE,CAAC,CAAE,UAAwD,CAAC;IAChE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,kBAAkB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,SAAS,GAA2C,IAAI,CAAC;IAC7D,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,CAAC;QACH,SAAS,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;IACtC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,oEAAoE;QACpE,iEAAiE;QACjE,6CAA6C;QAC7C,SAAS,GAAG,IAAI,CAAC;QACjB,QAAQ,CAAC,wDAAwD,EAAE,GAAG,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,CAAC;QACH,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACxB,qEAAqE;YACrE,+DAA+D;YAC/D,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC;YACtE,MAAM,aAAa,GAAG,WAAW,CAC/B,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAC/B,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAClD,CAAC;YACF,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;QAC7E,CAAC;QACD,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC;QAClF,MAAM,WAAW,GAAG,uBAAuB,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,CAAC;QACzF,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAClG,wEAAwE;QACxE,oEAAoE;QACpE,iCAAiC;QACjC,IAAI,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/C,OAAO,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAC5C,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;YAAS,CAAC;QACT,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC;gBACH,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;YAC5B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,QAAQ,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,uBAAuB,CAC9B,WAAc,EACd,OAAgB;IAEhB,IAAI,CAAC,OAAO;QAAE,OAAO,WAAW,CAAC;IACjC,MAAM,UAAU,GAAG,kBAAkB,EAAE,CAAC;IACxC,IAAI,CAAC,UAAU;QAAE,OAAO,WAAW,CAAC;IACpC,OAAO,EAAE,GAAG,WAAW,EAAE,MAAM,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;AACzE,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAY,EAAE,KAA2B;IACnE,IAAI,GAAG,YAAY,WAAW;QAAE,OAAO,GAAG,CAAC;IAE3C,MAAM,gBAAgB,GAAG,GAAG,YAAY,iBAAiB,CAAC;IAC1D,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAErD,OAAO,IAAI,WAAW,CAAC;QACrB,IAAI,EAAE,eAAe,CAAC,kBAAkB;QACxC,OAAO,EAAE,OAAO,KAAK,YAAY,OAAO,EAAE;QAC1C,WAAW,EACT,KAAK,KAAK,WAAW;YACnB,CAAC,CAAC,sJAAsJ;YACxJ,CAAC,CAAC,yFAAyF;QAC/F,QAAQ,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE;QACzC,KAAK,EAAE,GAAG;KACX,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,GAAgB,EAAE,OAAe,EAAE,GAAe;IACvE,MAAM,KAAK,GAAoB;QAC7B,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,QAAQ,EAAE,GAAG,CAAC,QAAQ;KACvB,CAAC;IACF,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,OAAO;QACP,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE;QAChC,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,CAAC,KAAK,CAAC;KAChB,CAAC;AACJ,CAAC;AASD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAAoB;IAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAChF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAChF,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAErD,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;YAC3D,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YACjD,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QAC5B,MAAM,CAAC,SAAS,CAAC,CAAC;QAClB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;QACvB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC;gBAC1B,IAAI,EAAE,eAAe,CAAC,WAAW;gBACjC,OAAO,EAAE,uDAAuD;gBAChE,WAAW,EAAE,sDAAsD;aACpE,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;YACvD,IAAI,IAAI,CAAC,IAAI;gBAAE,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;;gBAC3D,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;YAClC,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC;gBAC5B,IAAI,EAAE,IAAI,CAAC,UAAU;gBACrB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,GAAG,EAAE,MAAM;gBACX,GAAG,EAAE,MAAM;gBACX,GAAG,EAAE,UAAU;aAChB,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;gBAC/B,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;gBACvD,IAAI,IAAI,CAAC,IAAI;oBAAE,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;;oBAC3D,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClC,OAAO,CAAC,CAAC;YACX,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC;QAClF,IAAI,QAAiC,CAAC;QAEtC,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,QAAQ,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9E,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,MAAM,SAAS,CAAC,UAAU,EAAE,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACzF,CAAC;QAED,OAAO,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAC9D,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC;QAED,wEAAwE;QACxE,iEAAiE;QACjE,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC;YAC/B,IAAI,EAAE,eAAe,CAAC,kBAAkB;YACxC,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;YACzD,WAAW,EAAE,kGAAkG;YAC/G,KAAK,EAAE,GAAG;SACX,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACnE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,MAA4B;IACpD,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,eAAe,CAAC,GAAgB;IACvC,OAAO;QACL,QAAQ,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE;QACjC,kBAAkB,GAAG,CAAC,WAAW,EAAE;QACnC,WAAW,GAAG,CAAC,OAAO,EAAE;QACxB,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC;AAEvD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,6EAA6E;AAC7E,iDAAiD;AACjD,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;IACrC,IAAI,CAAC;QACH,gEAAgE;QAChE,IAAI,OAAQ,MAAM,CAAC,IAA2B,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAClE,OAAQ,MAAM,CAAC,IAA0B,CAAC,IAAI,CAAC;QACjD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;IACD,2EAA2E;IAC3E,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC5C,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;QACnD,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC,EAAE,CAAC;AAEL,IAAI,YAAY,EAAE,CAAC;IACjB,KAAK,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACrD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Renderer for `dot explain --graph` / `dot doctor --graph`.
|
|
3
|
+
*
|
|
4
|
+
* Emits the app's pip graph as [Mermaid](https://mermaid.js.org) `flowchart`
|
|
5
|
+
* source — paste-able into GitHub markdown, docs, and mermaid.live.
|
|
6
|
+
*
|
|
7
|
+
* The nodes are the pips in declaration order (which IS boot order in v2 —
|
|
8
|
+
* the numbering makes that visible); the edges are the manifest's
|
|
9
|
+
* **observed** dependency edges, recorded by the kernel when a pip's need
|
|
10
|
+
* was satisfied during boot. `explain` never boots, so its graph shows
|
|
11
|
+
* declaration order with whatever edges configure-time metadata declared;
|
|
12
|
+
* `doctor` boots, so its graph shows the real wiring.
|
|
13
|
+
*/
|
|
14
|
+
import type { DotAppManifest } from '../manifest.js';
|
|
15
|
+
import type { DotCliEnvelope, RenderOptions } from './render-explain.js';
|
|
16
|
+
/** Envelope payload for graph output. */
|
|
17
|
+
export type GraphData = {
|
|
18
|
+
format: 'mermaid';
|
|
19
|
+
/** Mermaid `flowchart` source. */
|
|
20
|
+
source: string;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Build Mermaid `flowchart` source from a manifest. Deterministic: node
|
|
24
|
+
* ids follow declaration order, edges follow manifest order.
|
|
25
|
+
*/
|
|
26
|
+
export declare function buildMermaidGraph(manifest: DotAppManifest): string;
|
|
27
|
+
/**
|
|
28
|
+
* Render the graph output. Plain mode prints raw Mermaid source (pipe it
|
|
29
|
+
* straight into a markdown code fence); `--json` wraps it in the standard
|
|
30
|
+
* CLI envelope under `data.source`.
|
|
31
|
+
*/
|
|
32
|
+
export declare function renderGraph(source: {
|
|
33
|
+
manifest: DotAppManifest;
|
|
34
|
+
command: 'explain' | 'doctor';
|
|
35
|
+
}, opts: RenderOptions): DotCliEnvelope<GraphData>;
|
|
36
|
+
//# sourceMappingURL=render-graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-graph.d.ts","sourceRoot":"","sources":["../../src/cli/render-graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzE,yCAAyC;AACzC,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,SAAS,CAAC;IAClB,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAOF;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAsBlE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE;IAAE,QAAQ,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,SAAS,GAAG,QAAQ,CAAA;CAAE,EACnE,IAAI,EAAE,aAAa,GAClB,cAAc,CAAC,SAAS,CAAC,CAsB3B"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Renderer for `dot explain --graph` / `dot doctor --graph`.
|
|
3
|
+
*
|
|
4
|
+
* Emits the app's pip graph as [Mermaid](https://mermaid.js.org) `flowchart`
|
|
5
|
+
* source — paste-able into GitHub markdown, docs, and mermaid.live.
|
|
6
|
+
*
|
|
7
|
+
* The nodes are the pips in declaration order (which IS boot order in v2 —
|
|
8
|
+
* the numbering makes that visible); the edges are the manifest's
|
|
9
|
+
* **observed** dependency edges, recorded by the kernel when a pip's need
|
|
10
|
+
* was satisfied during boot. `explain` never boots, so its graph shows
|
|
11
|
+
* declaration order with whatever edges configure-time metadata declared;
|
|
12
|
+
* `doctor` boots, so its graph shows the real wiring.
|
|
13
|
+
*/
|
|
14
|
+
/** Escape a pip name for use inside a quoted Mermaid node label. */
|
|
15
|
+
function escapeLabel(name) {
|
|
16
|
+
return name.replaceAll('"', '#quot;');
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Build Mermaid `flowchart` source from a manifest. Deterministic: node
|
|
20
|
+
* ids follow declaration order, edges follow manifest order.
|
|
21
|
+
*/
|
|
22
|
+
export function buildMermaidGraph(manifest) {
|
|
23
|
+
const lines = ['flowchart TD'];
|
|
24
|
+
const idByPip = new Map();
|
|
25
|
+
for (const [index, pip] of manifest.pips.entries()) {
|
|
26
|
+
const id = `p${index.toString()}`;
|
|
27
|
+
idByPip.set(pip.name, id);
|
|
28
|
+
const order = (index + 1).toString();
|
|
29
|
+
const version = pip.version === undefined ? '' : `@${pip.version}`;
|
|
30
|
+
lines.push(` ${id}["${order} · ${escapeLabel(pip.name)}${escapeLabel(version)}"]`);
|
|
31
|
+
}
|
|
32
|
+
for (const edge of manifest.dependencies) {
|
|
33
|
+
const from = idByPip.get(edge.from);
|
|
34
|
+
const to = idByPip.get(edge.to);
|
|
35
|
+
// Edges referencing unknown pips would be a kernel bug — skip rather
|
|
36
|
+
// than emit invalid Mermaid.
|
|
37
|
+
if (from === undefined || to === undefined)
|
|
38
|
+
continue;
|
|
39
|
+
lines.push(` ${from} -->|${edge.kind}| ${to}`);
|
|
40
|
+
}
|
|
41
|
+
return `${lines.join('\n')}\n`;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Render the graph output. Plain mode prints raw Mermaid source (pipe it
|
|
45
|
+
* straight into a markdown code fence); `--json` wraps it in the standard
|
|
46
|
+
* CLI envelope under `data.source`.
|
|
47
|
+
*/
|
|
48
|
+
export function renderGraph(source, opts) {
|
|
49
|
+
const mermaid = buildMermaidGraph(source.manifest);
|
|
50
|
+
const nowFactory = opts.now ?? (() => new Date());
|
|
51
|
+
const envelope = {
|
|
52
|
+
status: 'success',
|
|
53
|
+
command: source.command,
|
|
54
|
+
generatedAt: nowFactory().toISOString(),
|
|
55
|
+
data: { format: 'mermaid', source: mermaid },
|
|
56
|
+
errors: [],
|
|
57
|
+
};
|
|
58
|
+
const out = opts.out ??
|
|
59
|
+
((line) => {
|
|
60
|
+
process.stdout.write(line);
|
|
61
|
+
});
|
|
62
|
+
if (opts.json) {
|
|
63
|
+
out(`${JSON.stringify(envelope, null, 2)}\n`);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
out(mermaid);
|
|
67
|
+
}
|
|
68
|
+
return envelope;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=render-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-graph.js","sourceRoot":"","sources":["../../src/cli/render-graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAYH,oEAAoE;AACpE,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAwB;IACxD,MAAM,KAAK,GAAa,CAAC,cAAc,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE1C,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACnD,MAAM,EAAE,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1B,MAAM,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QACnE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtF,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChC,qEAAqE;QACrE,6BAA6B;QAC7B,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS;YAAE,SAAS;QACrD,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,QAAQ,IAAI,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CACzB,MAAmE,EACnE,IAAmB;IAEnB,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAClD,MAAM,QAAQ,GAA8B;QAC1C,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,WAAW,EAAE,UAAU,EAAE,CAAC,WAAW,EAAE;QACvC,IAAI,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;QAC5C,MAAM,EAAE,EAAE;KACX,CAAC;IAEF,MAAM,GAAG,GACP,IAAI,CAAC,GAAG;QACR,CAAC,CAAC,IAAY,EAAE,EAAE;YAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,OAAO,CAAC,CAAC;IACf,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Renderer for `dot explain --openapi`.
|
|
3
|
+
*
|
|
4
|
+
* Emits an OpenAPI 3.1 document straight from `manifest.routes` — no boot
|
|
5
|
+
* required. Adapters (e.g. `@arki/http`'s `registerRoutes`) convert their
|
|
6
|
+
* validation schemas to JSON Schema at `configure` time and register them
|
|
7
|
+
* via `ctx.registerRoute`, so the manifest already carries everything the
|
|
8
|
+
* document needs: methods, paths, per-location input schemas, output
|
|
9
|
+
* schemas, and the `streaming` flag for `text/event-stream` responses.
|
|
10
|
+
*
|
|
11
|
+
* Deterministic: paths and operations follow manifest registration order
|
|
12
|
+
* (which follows pip declaration order). Only `transport: 'http'` routes
|
|
13
|
+
* are rendered — rpc mounts have their own schema story.
|
|
14
|
+
*/
|
|
15
|
+
import type { DotAppManifest } from '../manifest.js';
|
|
16
|
+
import type { DotCliEnvelope, RenderOptions } from './render-explain.js';
|
|
17
|
+
/** Envelope payload for OpenAPI output. */
|
|
18
|
+
export type OpenApiData = {
|
|
19
|
+
format: 'openapi';
|
|
20
|
+
/** OpenAPI 3.1 document. */
|
|
21
|
+
document: Record<string, unknown>;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Build an OpenAPI 3.1 document from a manifest. First registration wins
|
|
25
|
+
* on a method+path collision — collisions are an app bug the serving
|
|
26
|
+
* adapter rejects at boot; the document renderer stays total.
|
|
27
|
+
*/
|
|
28
|
+
export declare function buildOpenApiDocument(manifest: DotAppManifest): Record<string, unknown>;
|
|
29
|
+
/**
|
|
30
|
+
* Render the OpenAPI output. Plain mode prints the document as JSON
|
|
31
|
+
* (pipe it into a file or a swagger viewer); `--json` wraps it in the
|
|
32
|
+
* standard CLI envelope under `data.document`.
|
|
33
|
+
*/
|
|
34
|
+
export declare function renderOpenApi(source: {
|
|
35
|
+
manifest: DotAppManifest;
|
|
36
|
+
command: 'explain';
|
|
37
|
+
}, opts: RenderOptions): DotCliEnvelope<OpenApiData>;
|
|
38
|
+
//# sourceMappingURL=render-openapi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-openapi.d.ts","sourceRoot":"","sources":["../../src/cli/render-openapi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,gBAAgB,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzE,2CAA2C;AAC3C,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,SAAS,CAAC;IAClB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AAmEF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmBtF;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE;IAAE,QAAQ,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,SAAS,CAAA;CAAE,EACxD,IAAI,EAAE,aAAa,GAClB,cAAc,CAAC,WAAW,CAAC,CAsB7B"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Renderer for `dot explain --openapi`.
|
|
3
|
+
*
|
|
4
|
+
* Emits an OpenAPI 3.1 document straight from `manifest.routes` — no boot
|
|
5
|
+
* required. Adapters (e.g. `@arki/http`'s `registerRoutes`) convert their
|
|
6
|
+
* validation schemas to JSON Schema at `configure` time and register them
|
|
7
|
+
* via `ctx.registerRoute`, so the manifest already carries everything the
|
|
8
|
+
* document needs: methods, paths, per-location input schemas, output
|
|
9
|
+
* schemas, and the `streaming` flag for `text/event-stream` responses.
|
|
10
|
+
*
|
|
11
|
+
* Deterministic: paths and operations follow manifest registration order
|
|
12
|
+
* (which follows pip declaration order). Only `transport: 'http'` routes
|
|
13
|
+
* are rendered — rpc mounts have their own schema story.
|
|
14
|
+
*/
|
|
15
|
+
function openApiPath(path) {
|
|
16
|
+
return path.replaceAll(/:(\w+)/g, '{$1}');
|
|
17
|
+
}
|
|
18
|
+
function pathParamNames(path) {
|
|
19
|
+
return [...path.matchAll(/:(\w+)/g)]
|
|
20
|
+
.map(match => match[1])
|
|
21
|
+
.filter((name) => name !== undefined);
|
|
22
|
+
}
|
|
23
|
+
function buildOperation(route) {
|
|
24
|
+
const parameters = pathParamNames(route.path ?? '').map(name => ({
|
|
25
|
+
name,
|
|
26
|
+
in: 'path',
|
|
27
|
+
required: true,
|
|
28
|
+
schema: { type: 'string' },
|
|
29
|
+
}));
|
|
30
|
+
const querySchema = route.input?.query;
|
|
31
|
+
if (querySchema !== undefined) {
|
|
32
|
+
const properties = (querySchema['properties'] ?? {});
|
|
33
|
+
const required = new Set(querySchema['required']);
|
|
34
|
+
for (const [name, propertySchema] of Object.entries(properties)) {
|
|
35
|
+
parameters.push({ name, in: 'query', required: required.has(name), schema: propertySchema });
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const operation = {
|
|
39
|
+
operationId: route.id,
|
|
40
|
+
tags: [route.pip],
|
|
41
|
+
};
|
|
42
|
+
if (route.description !== undefined)
|
|
43
|
+
operation['summary'] = route.description;
|
|
44
|
+
if (parameters.length > 0)
|
|
45
|
+
operation['parameters'] = parameters;
|
|
46
|
+
const bodySchema = route.input?.body;
|
|
47
|
+
if (bodySchema !== undefined) {
|
|
48
|
+
operation['requestBody'] = {
|
|
49
|
+
required: true,
|
|
50
|
+
content: { 'application/json': { schema: bodySchema } },
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
if (route.streaming === true) {
|
|
54
|
+
operation['responses'] = {
|
|
55
|
+
'200': {
|
|
56
|
+
description: 'event stream',
|
|
57
|
+
content: {
|
|
58
|
+
'text/event-stream': route.output === undefined ? {} : { schema: route.output },
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
else if (route.output === undefined) {
|
|
64
|
+
operation['responses'] = { '200': { description: 'success' } };
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
operation['responses'] = {
|
|
68
|
+
'200': {
|
|
69
|
+
description: 'success',
|
|
70
|
+
content: { 'application/json': { schema: route.output } },
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
return operation;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Build an OpenAPI 3.1 document from a manifest. First registration wins
|
|
78
|
+
* on a method+path collision — collisions are an app bug the serving
|
|
79
|
+
* adapter rejects at boot; the document renderer stays total.
|
|
80
|
+
*/
|
|
81
|
+
export function buildOpenApiDocument(manifest) {
|
|
82
|
+
const paths = {};
|
|
83
|
+
for (const route of manifest.routes) {
|
|
84
|
+
if (route.transport !== 'http')
|
|
85
|
+
continue;
|
|
86
|
+
if (route.path === undefined)
|
|
87
|
+
continue;
|
|
88
|
+
const path = openApiPath(route.path);
|
|
89
|
+
const method = (route.method ?? 'GET').toLowerCase();
|
|
90
|
+
const entry = (paths[path] ??= {});
|
|
91
|
+
if (entry[method] !== undefined)
|
|
92
|
+
continue;
|
|
93
|
+
entry[method] = buildOperation(route);
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
openapi: '3.1.0',
|
|
97
|
+
info: {
|
|
98
|
+
title: manifest.app.name,
|
|
99
|
+
version: manifest.app.version ?? '0.0.0',
|
|
100
|
+
},
|
|
101
|
+
paths,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Render the OpenAPI output. Plain mode prints the document as JSON
|
|
106
|
+
* (pipe it into a file or a swagger viewer); `--json` wraps it in the
|
|
107
|
+
* standard CLI envelope under `data.document`.
|
|
108
|
+
*/
|
|
109
|
+
export function renderOpenApi(source, opts) {
|
|
110
|
+
const document = buildOpenApiDocument(source.manifest);
|
|
111
|
+
const nowFactory = opts.now ?? (() => new Date());
|
|
112
|
+
const envelope = {
|
|
113
|
+
status: 'success',
|
|
114
|
+
command: source.command,
|
|
115
|
+
generatedAt: nowFactory().toISOString(),
|
|
116
|
+
data: { format: 'openapi', document },
|
|
117
|
+
errors: [],
|
|
118
|
+
};
|
|
119
|
+
const out = opts.out ??
|
|
120
|
+
((line) => {
|
|
121
|
+
process.stdout.write(line);
|
|
122
|
+
});
|
|
123
|
+
if (opts.json) {
|
|
124
|
+
out(`${JSON.stringify(envelope, null, 2)}\n`);
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
out(`${JSON.stringify(document, null, 2)}\n`);
|
|
128
|
+
}
|
|
129
|
+
return envelope;
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=render-openapi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-openapi.js","sourceRoot":"","sources":["../../src/cli/render-openapi.ts"],"names":[],"mappings":"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"}
|
package/dist/define-app.d.ts
CHANGED
|
@@ -162,6 +162,16 @@ export declare function defineApp(name: string, options?: {
|
|
|
162
162
|
* `configured.subscribe(...)` or `app.subscribe(...)`.
|
|
163
163
|
*/
|
|
164
164
|
observers?: readonly DotLifecycleObserver[];
|
|
165
|
+
/**
|
|
166
|
+
* Watchdog budget (ms) for each async hook invocation (`boot`, `start`,
|
|
167
|
+
* `stop`, `dispose` — `configure` is sync). A hook exceeding the budget
|
|
168
|
+
* fails with `DOT_LIFECYCLE_E015` naming the pip and hook, and the
|
|
169
|
+
* kernel applies its normal failure rules (boot rollback, teardown
|
|
170
|
+
* aggregation). The hook's promise itself cannot be cancelled — the
|
|
171
|
+
* watchdog makes the hang *visible*, it does not kill it. Default:
|
|
172
|
+
* no watchdog.
|
|
173
|
+
*/
|
|
174
|
+
hookTimeoutMs?: number;
|
|
165
175
|
}): DotAppBuilder<EmptyShape>;
|
|
166
176
|
export {};
|
|
167
177
|
//# sourceMappingURL=define-app.d.ts.map
|
package/dist/define-app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-app.d.ts","sourceRoot":"","sources":["../src/define-app.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"define-app.d.ts","sourceRoot":"","sources":["../src/define-app.ts"],"names":[],"mappings":"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"}
|
package/dist/define-app.js
CHANGED
|
@@ -41,6 +41,7 @@ export function defineApp(name, options = {}) {
|
|
|
41
41
|
pips: [],
|
|
42
42
|
config: options.config,
|
|
43
43
|
observers: options.observers,
|
|
44
|
+
hookTimeoutMs: options.hookTimeoutMs,
|
|
44
45
|
};
|
|
45
46
|
return makeBuilder(state);
|
|
46
47
|
}
|
|
@@ -51,6 +52,7 @@ function buildImpl(state) {
|
|
|
51
52
|
pips: state.pips,
|
|
52
53
|
config: state.config,
|
|
53
54
|
observers: state.observers,
|
|
55
|
+
hookTimeoutMs: state.hookTimeoutMs,
|
|
54
56
|
});
|
|
55
57
|
}
|
|
56
58
|
function makeBuilder(state) {
|