@cavelang/cli 0.33.0 → 0.35.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.
Files changed (68) hide show
  1. package/README.md +15 -3
  2. package/dist/internal/automate/main.d.ts.map +1 -1
  3. package/dist/internal/automate/main.js +9 -2
  4. package/dist/internal/automate/main.js.map +1 -1
  5. package/dist/internal/connect/declared.d.ts +225 -0
  6. package/dist/internal/connect/declared.d.ts.map +1 -0
  7. package/dist/internal/connect/declared.js +521 -0
  8. package/dist/internal/connect/declared.js.map +1 -0
  9. package/dist/internal/connect/index.d.ts +4 -2
  10. package/dist/internal/connect/index.d.ts.map +1 -1
  11. package/dist/internal/connect/index.js +3 -1
  12. package/dist/internal/connect/index.js.map +1 -1
  13. package/dist/internal/connect/main.d.ts.map +1 -1
  14. package/dist/internal/connect/main.js +356 -10
  15. package/dist/internal/connect/main.js.map +1 -1
  16. package/dist/internal/connect/run.d.ts +47 -1
  17. package/dist/internal/connect/run.d.ts.map +1 -1
  18. package/dist/internal/connect/run.js +81 -33
  19. package/dist/internal/connect/run.js.map +1 -1
  20. package/dist/internal/connect/source.d.ts +33 -2
  21. package/dist/internal/connect/source.d.ts.map +1 -1
  22. package/dist/internal/connect/source.js +168 -8
  23. package/dist/internal/connect/source.js.map +1 -1
  24. package/dist/internal/connect/template.d.ts +18 -0
  25. package/dist/internal/connect/template.d.ts.map +1 -1
  26. package/dist/internal/connect/template.js +28 -0
  27. package/dist/internal/connect/template.js.map +1 -1
  28. package/dist/internal/ingest/main.d.ts.map +1 -1
  29. package/dist/internal/ingest/main.js +19 -2
  30. package/dist/internal/ingest/main.js.map +1 -1
  31. package/dist/internal/mcp/main.d.ts +1 -1
  32. package/dist/internal/mcp/main.d.ts.map +1 -1
  33. package/dist/internal/mcp/main.js +15 -3
  34. package/dist/internal/mcp/main.js.map +1 -1
  35. package/dist/internal/rules/rule.d.ts.map +1 -1
  36. package/dist/internal/rules/rule.js +1 -22
  37. package/dist/internal/rules/rule.js.map +1 -1
  38. package/dist/internal/sync/sync.d.ts +2 -3
  39. package/dist/internal/sync/sync.d.ts.map +1 -1
  40. package/dist/internal/sync/sync.js +3 -15
  41. package/dist/internal/sync/sync.js.map +1 -1
  42. package/dist/internal/view/main.d.ts.map +1 -1
  43. package/dist/internal/view/main.js +4 -3
  44. package/dist/internal/view/main.js.map +1 -1
  45. package/dist/src/cli.d.ts +15 -1
  46. package/dist/src/cli.d.ts.map +1 -1
  47. package/dist/src/cli.js +227 -54
  48. package/dist/src/cli.js.map +1 -1
  49. package/dist/src/commands.d.ts +2 -2
  50. package/dist/src/commands.js +2 -2
  51. package/dist/src/commands.js.map +1 -1
  52. package/dist/src/dispatch.d.ts.map +1 -1
  53. package/dist/src/dispatch.js +7 -1
  54. package/dist/src/dispatch.js.map +1 -1
  55. package/dist/src/doctor.d.ts +1 -1
  56. package/dist/src/doctor.d.ts.map +1 -1
  57. package/dist/src/doctor.js +27 -2
  58. package/dist/src/doctor.js.map +1 -1
  59. package/dist/src/index.d.ts +1 -1
  60. package/dist/src/index.d.ts.map +1 -1
  61. package/dist/src/index.js +1 -1
  62. package/dist/src/index.js.map +1 -1
  63. package/package.json +19 -19
  64. package/src/cli.ts +258 -53
  65. package/src/commands.ts +2 -2
  66. package/src/dispatch.ts +7 -1
  67. package/src/doctor.ts +29 -3
  68. package/src/index.ts +1 -1
@@ -6,8 +6,9 @@ import { existsSync, readFileSync, watch as watchFs } from 'node:fs';
6
6
  import { basename, dirname, resolve } from 'node:path';
7
7
  import { parseArgs } from 'node:util';
8
8
  import { Registry } from '@cavelang/canonical';
9
- import { defaultDbPath, open } from '@cavelang/store';
10
- import { Record as QueryRecord } from '@cavelang/query';
9
+ import { LocateError, defaultDbPath, kindOf, open, openAt } from '@cavelang/store';
10
+ import { Record as QueryRecord, query as caveQuery } from '@cavelang/query';
11
+ import * as Declared from "./declared.js";
11
12
  import * as Source from "./source.js";
12
13
  import * as Template from "./template.js";
13
14
  import { connect, federatedQuery } from "./run.js";
@@ -15,26 +16,47 @@ const usage = `cave connect — deterministic structured ingestion through a map
15
16
 
16
17
  Usage:
17
18
  cave connect [--db <path>] <source> --map <file> [options]
19
+ cave connect [--db <path>] [--name <n>] [--force] [--prune] [--dry-run] [--watch]
20
+ cave connect [--db <path>] --list
21
+ cave connect [--db <path>] --query '<pattern>'
18
22
 
19
23
  The source is a .csv/.tsv/.json/.jsonl/.ndjson file, a SQLite database
20
24
  (with --table or --sql), or an http(s) URL serving JSON or CSV. The
21
25
  mapping is an ordinary CAVE document whose ?field variables stand for
22
26
  record fields; variable-free blocks append once per run, variable blocks
23
27
  instantiate once per record — no LLM in the loop, same input, same claims.
28
+ A short mapping can be written inline, and --sql reshapes any tabular
29
+ source through SQLite before the mapping sees it.
24
30
  Mapped claims retain the physical source; CSV/TSV and JSONL records also carry
25
31
  their exact one-based inclusive line span (spec §9.8).
26
32
 
33
+ Without a source, the store's declared sources run (spec §23.4): every
34
+ source/<name> entity whose current claims name a path, with the other
35
+ options as attributes — HAS map:, key:, format:, delimiter:, table:, sql:,
36
+ records:. A .cave path needs no map (the file is its own template). Paths
37
+ resolve against the store's directory. Declared sources stamp
38
+ @src:<name>/<key> and keep digests under source/<name>/<key>, so the
39
+ source/<name> entity also carries the §26.3 policy for what it yields. A
40
+ CAVE text file used as --db follows its declared sources on every open.
41
+
27
42
  Options:
28
43
  --db <path> knowledge database (default: $CAVE_DB, or cave.db)
29
- --map <file> mapping template (required)
44
+ --map <file|inline> mapping template (required): a file, or the template
45
+ itself — a comma-separated list of claim lines,
46
+ '?name IS person, ?name WORKS-AT ?company'
30
47
  --name <name> source name for record identity (default: file basename)
31
48
  --key <field> record key field — keyed records diff against their
32
49
  previous claims on change; unkeyed records are
33
50
  content-addressed
34
51
  --format <fmt> csv | tsv | json | jsonl | sqlite (default: by extension)
35
52
  --delimiter <char> CSV field delimiter (default , — tab for .tsv)
36
- --table <name> SQLite table to read (SELECT *)
37
- --sql <query> SQLite query (alternative to --table)
53
+ --table <name> SQLite table to read (SELECT *); for other formats
54
+ the temporary table --sql runs against (records)
55
+ --sql <query> SQLite query (alternative to --table); for csv, tsv,
56
+ json and jsonl the records load into a temporary
57
+ in-memory table, values as parsed (CSV cells are
58
+ text: cast for arithmetic), and the query's rows are
59
+ the records
38
60
  --records <path> dot path to the record array inside a JSON document
39
61
  --force re-map records whose digest is unchanged
40
62
  --prune retract claims of records that disappeared from the source
@@ -42,13 +64,20 @@ Options:
42
64
  --watch keep running; re-map when the source or mapping changes
43
65
  --query <pattern> federation-lite (spec §23.3): map, query the union,
44
66
  roll back — nothing persists; uses an in-memory store
45
- when the database file does not exist
67
+ when the database file does not exist; without a
68
+ source, overlays every declared source
69
+ --list print the declared sources as cave connect invocations
70
+ --name <name> without a source: run only this declared source
46
71
  --json with --query: emit matches as JSON
47
72
  --all with --query: match all beliefs, not just current ones
48
73
  --aliases with --query: resolve entities through ALIAS claims
49
74
  --no-prelude open the store without the standard §5.5 registry
50
75
 
51
76
  Examples:
77
+ cave connect --db k.db --list
78
+ cave connect --db k.db
79
+ cave connect --db k.db --watch
80
+ cave query --db notes.cave '?who WORKS-AT acme' # a text store follows its sources
52
81
  cave connect people.csv --map people.map.cave --db k.db --key id
53
82
  cave connect crm.sqlite --table contacts --map contacts.map.cave --key email
54
83
  cave connect https://api.example.com/deps.json --records data.items --map deps.map.cave
@@ -73,7 +102,10 @@ const renderReport = (report) => {
73
102
  }
74
103
  return lines.join('\n');
75
104
  };
76
- const loadMapping = (path) => Template.parse(readFileSync(path, 'utf8'));
105
+ /** `--map` is a template file, or the template itself written inline (spec §23.1). */
106
+ const loadMapping = (spec) => Template.isInline(spec) && !existsSync(spec) ?
107
+ Template.parse(Template.inlineDocument(spec)) :
108
+ Template.parse(readFileSync(spec, 'utf8'));
77
109
  const sourceOptions = (values, context) => ({
78
110
  ...values.format === undefined ? {} : { format: values.format },
79
111
  ...values.delimiter === undefined ? {} : { delimiter: values.delimiter },
@@ -144,7 +176,8 @@ const runQuery = async (source, values, name, io, context) => {
144
176
  const loaded = await loadSource(source, values, context);
145
177
  const db = values.db ?? defaultDbPath();
146
178
  const registry = values['no-prelude'] === true ? { registry: Registry.empty } : {};
147
- const store = existsSync(db) ? open(db, registry) : open(':memory:', registry);
179
+ // Federation over a store that does not exist yet queries the source alone.
180
+ const store = kindOf(db) === 'missing' ? open(':memory:', registry) : openAt(db, { intent: 'scratch', assemble: Declared.assemble, ...registry });
148
181
  try {
149
182
  const { matches, report } = federatedQuery(store, mapping, loaded.records, {
150
183
  name,
@@ -224,7 +257,7 @@ const runWatch = async (store, source, values, name, io, context) => {
224
257
  };
225
258
  // Watch the parent directories — editors replace files on save, and a
226
259
  // watcher on the file itself dies with the old inode.
227
- const targets = [...new Set([resolve(source), resolve(values.map)])];
260
+ const targets = [...new Set([resolve(source), ...Template.isInline(values.map) && !existsSync(values.map) ? [] : [resolve(values.map)]])];
228
261
  const watch = context.watch ?? ((path, listener) => watchFs(path, listener));
229
262
  const watchers = targets.map(target => watch(dirname(target), (_event, filename) => {
230
263
  // Some platforms and watcher backends cannot identify the changed
@@ -249,6 +282,308 @@ const runWatch = async (store, source, values, name, io, context) => {
249
282
  await active;
250
283
  }
251
284
  };
285
+ const printMatches = (store, matches, pattern, values, io) => {
286
+ if (values.json === true) {
287
+ io.stdout.write(`${JSON.stringify(matches.map(match => QueryRecord.of(store, match)), undefined, 2)}\n`);
288
+ return;
289
+ }
290
+ if (matches.length === 0) {
291
+ io.stdout.write('no matches\n');
292
+ return;
293
+ }
294
+ const lines = matches.map(match => {
295
+ const bindings = Object.entries(match.bindings)
296
+ .map(([variable, value]) => `?${variable} = ${value}`)
297
+ .join(' ');
298
+ return bindings !== '' ? bindings : match.row?.raw_line ?? pattern;
299
+ });
300
+ io.stdout.write(`${lines.join('\n')}\n`);
301
+ };
302
+ const registryOf = (values) => values['no-prelude'] === true ? { registry: Registry.empty } : {};
303
+ /** The declared sources of the store, or the one `--name` selects. */
304
+ const selectDeclared = (store, values) => {
305
+ const declared = Declared.declaredSources(store);
306
+ if (values.name === undefined) {
307
+ return declared;
308
+ }
309
+ const selected = declared.filter(source => source.name === values.name);
310
+ if (selected.length === 0) {
311
+ throw new Error(`no declared source/${values.name}` +
312
+ (declared.length === 0 ? ' — the store declares no sources' : ` — declared: ${declared.map(source => source.name).join(', ')}`));
313
+ }
314
+ return selected;
315
+ };
316
+ const declaredPass = async (store, root, values, io, context) => {
317
+ const dir = Declared.directoryOf(root);
318
+ let failed = 0;
319
+ const done = new Map();
320
+ // `--name` selects one declaration and what it declares in turn. The
321
+ // declarations are re-read after every source: a followed .cave source
322
+ // may declare new sources or re-declare existing ones, and the current
323
+ // declaration is what runs, until nothing changes — as `assemble` does.
324
+ // The selection starts as the named source and everything it already
325
+ // owns, so a parent that fails to load does not hide its descendants.
326
+ const allowed = values.name === undefined ? undefined :
327
+ new Set(Declared.closure(store, selectDeclared(store, values).map(declared => declared.name)).map(declared => declared.name));
328
+ const version = Declared.versionCounter();
329
+ for (;;) {
330
+ const next = Declared.declaredSources(store)
331
+ .find(declared => (allowed === undefined || allowed.has(declared.name)) && done.get(declared.name) !== Declared.signature(declared));
332
+ if (next === undefined) {
333
+ return failed > 0 ? 1 : 0;
334
+ }
335
+ version(next.name);
336
+ done.set(next.name, Declared.signature(next));
337
+ try {
338
+ const ready = await Declared.prepare(next, dir, context.fetchImpl);
339
+ const before = Declared.signatures(Declared.declaredSources(store));
340
+ const report = Declared.run(store, ready, { force: values.force === true, prune: values.prune === true });
341
+ if (allowed !== undefined) {
342
+ // The selection grows by whatever this source changed — added,
343
+ // re-declared, or retracted declarations alike — and by what it
344
+ // still owns, so an unchanged source keeps its descendants.
345
+ for (const name of Declared.changedNames(before, Declared.signatures(Declared.declaredSources(store))))
346
+ allowed.add(name);
347
+ for (const name of Declared.ownedDeclarations(store, next.name))
348
+ allowed.add(name);
349
+ }
350
+ io.stdout.write(`source/${next.name}: ${renderReport(report).replace(/^connect: /, '')}\n`);
351
+ if (report.failures.length > 0)
352
+ failed += 1;
353
+ }
354
+ catch (error) {
355
+ io.stderr.write(`source/${next.name} (${next.path}): ${error instanceof Error ? error.message : String(error)}\n`);
356
+ failed += 1;
357
+ }
358
+ }
359
+ };
360
+ const discoverOptions = (values, context, force = values.force === true) => ({
361
+ ...values.name === undefined ? {} : { only: values.name },
362
+ ...context.fetchImpl === undefined ? {} : { fetchImpl: context.fetchImpl },
363
+ force,
364
+ prune: values.prune === true
365
+ });
366
+ /** Previews every declared source, nested declarations included, without touching the store. */
367
+ const declaredDry = async (store, root, values, io, context) => {
368
+ const sections = [];
369
+ let failures = 0;
370
+ for (const ready of await Declared.discover(store, root, discoverOptions(values, context))) {
371
+ sections.push(`; === source/${ready.declared.name} (${ready.declared.path})`);
372
+ if (ready.mapping.prelude !== '') {
373
+ sections.push(`; --- prelude\n\n${ready.mapping.prelude.trimEnd()}`);
374
+ }
375
+ ready.records.forEach((record, at) => {
376
+ const instantiation = Template.instantiate(ready.mapping.templates, name => Template.fieldOf(record, name));
377
+ if (instantiation.problems.length > 0) {
378
+ failures += 1;
379
+ sections.push([`; --- record ${at + 1}`, ...instantiation.problems.map(problem => `; FAILED — ${problem}`)].join('\n'));
380
+ return;
381
+ }
382
+ sections.push(`; --- record ${at + 1}\n\n${instantiation.text.trimEnd()}`);
383
+ });
384
+ }
385
+ io.stdout.write(`${sections.join('\n\n')}\n`);
386
+ return failures > 0 ? 1 : 0;
387
+ };
388
+ const rollback = Symbol('cave-connect declared query rollback');
389
+ /**
390
+ * Federation-lite over every declared source (spec §23.3, §23.4): the
391
+ * sources load first, URLs included, then append inside one transaction
392
+ * that rolls back after the query.
393
+ */
394
+ const stale = Symbol('cave-connect declared query stale');
395
+ const declaredQuery = async (store, root, values, io, context) => {
396
+ // The overlay applies every source (force), so discovery simulates that.
397
+ // The sequence was discovered on a snapshot; a writer may have changed
398
+ // the declarations since, so the replay checks and rediscovers if so.
399
+ for (let attempt = 0; attempt < Declared.overlayAttempts; attempt += 1) {
400
+ const { sequence, baseline } = await Declared.discovery(store, root, discoverOptions(values, context, true));
401
+ let matches;
402
+ let failed = 0;
403
+ try {
404
+ store.transaction(() => {
405
+ if (!Declared.sameDeclarations(baseline, Declared.declarationState(store))) {
406
+ throw stale;
407
+ }
408
+ for (const source of sequence) {
409
+ const report = Declared.run(store, source, { force: true, prune: values.prune === true });
410
+ if (report.failures.length > 0) {
411
+ failed += 1;
412
+ io.stderr.write(`source/${source.declared.name}: ${renderReport(report).replace(/^connect: /, '')}\n`);
413
+ }
414
+ }
415
+ matches = caveQuery(store, values.query, { all: values.all === true, aliases: values.aliases === true });
416
+ throw rollback;
417
+ });
418
+ }
419
+ catch (error) {
420
+ if (error === stale) {
421
+ continue;
422
+ }
423
+ if (error !== rollback) {
424
+ throw error;
425
+ }
426
+ }
427
+ printMatches(store, matches, values.query, values, io);
428
+ return failed > 0 ? 1 : 0;
429
+ }
430
+ throw Declared.staleOverlay();
431
+ };
432
+ const declaredWatch = async (store, root, values, io, context) => {
433
+ const dir = Declared.directoryOf(root);
434
+ const passOnce = async () => {
435
+ try {
436
+ await declaredPass(store, root, values, io, context);
437
+ }
438
+ catch (error) {
439
+ io.stderr.write(`cave connect watch pass: ${error instanceof Error ? error.message : String(error)}\n`);
440
+ }
441
+ refreshWatchers();
442
+ };
443
+ let running = false;
444
+ let queued = false;
445
+ let timer;
446
+ let active;
447
+ const fire = async () => {
448
+ if (running) {
449
+ queued = true;
450
+ return;
451
+ }
452
+ running = true;
453
+ do {
454
+ queued = false;
455
+ await passOnce();
456
+ } while (queued);
457
+ running = false;
458
+ };
459
+ const schedule = context.schedule ?? ((callback, delayMs) => setTimeout(() => { void callback(); }, delayMs));
460
+ const cancelScheduled = context.cancelScheduled ?? (handle => clearTimeout(handle));
461
+ const trigger = () => {
462
+ if (running) {
463
+ queued = true;
464
+ return;
465
+ }
466
+ if (timer !== undefined)
467
+ cancelScheduled(timer);
468
+ timer = schedule(async () => {
469
+ timer = undefined;
470
+ // Retained so shutdown waits for a pass in flight (a URL fetch, say)
471
+ // instead of closing the store under it.
472
+ const pass = fire();
473
+ active = pass;
474
+ await pass;
475
+ if (active === pass)
476
+ active = undefined;
477
+ }, 200);
478
+ };
479
+ // Every local declared file and mapping; URL sources only run on file
480
+ // changes. A followed .cave source may declare more, so the set is
481
+ // refreshed after every pass.
482
+ const watch = context.watch ?? ((path, listener) => watchFs(path, listener));
483
+ const watched = new Map();
484
+ const refreshWatchers = () => {
485
+ let declared;
486
+ try {
487
+ // A named watch watches the selection and everything it owns.
488
+ declared = values.name === undefined ?
489
+ selectDeclared(store, values) :
490
+ Declared.closure(store, selectDeclared(store, values).map(source => source.name));
491
+ }
492
+ catch {
493
+ return;
494
+ }
495
+ for (const target of new Set(declared.flatMap(source => [
496
+ ...Source.isUrl(source.path) ? [] : [Declared.resolvePath(source.path, dir)],
497
+ // A map is a file when it resolves to one, as the loader decides; only
498
+ // otherwise is it inline and nothing to watch.
499
+ ...source.map === undefined || (Template.isInline(source.map) && !existsSync(Declared.resolvePath(source.map, dir))) ?
500
+ [] : [Declared.resolvePath(source.map, dir)]
501
+ ]))) {
502
+ if (watched.has(target))
503
+ continue;
504
+ watched.set(target, watch(dirname(target), (_event, filename) => {
505
+ if (filename === null || filename.toString() === basename(target)) {
506
+ trigger();
507
+ }
508
+ }));
509
+ }
510
+ };
511
+ refreshWatchers();
512
+ if (watched.size === 0) {
513
+ io.stderr.write('cave connect: nothing to watch — no declared local source\n');
514
+ return 1;
515
+ }
516
+ try {
517
+ await passOnce();
518
+ refreshWatchers();
519
+ io.stdout.write('watching (ctrl-c to stop)\n');
520
+ await waitForAbort(io.signal);
521
+ return 0;
522
+ }
523
+ finally {
524
+ if (timer !== undefined)
525
+ cancelScheduled(timer);
526
+ for (const watcher of watched.values())
527
+ watcher.close();
528
+ if (active !== undefined)
529
+ await active;
530
+ }
531
+ };
532
+ /**
533
+ * `cave connect` without a source (spec §23.4): the store's declared
534
+ * sources. `--list` prints them, `--dry-run` previews, `--query` overlays
535
+ * them in a rolled-back transaction, `--watch` re-runs on file changes,
536
+ * and the plain form runs one pass over each.
537
+ */
538
+ const runDeclared = async (values, io, context) => {
539
+ const perSource = ['map', 'key', 'format', 'delimiter', 'table', 'sql', 'records']
540
+ .filter(option => values[option] !== undefined);
541
+ if (perSource.length > 0) {
542
+ io.stderr.write(`cave connect: ${perSource.map(option => `--${option}`).join(', ')} describe a source argument — ` +
543
+ 'without one, declare them on the source/<name> entity (spec §23.4)\n');
544
+ return 1;
545
+ }
546
+ const db = values.db ?? defaultDbPath();
547
+ try {
548
+ if (values.list === true) {
549
+ const store = openAt(db, { intent: 'read', assemble: Declared.assemble, ...registryOf(values) });
550
+ try {
551
+ const declared = selectDeclared(store, values);
552
+ io.stdout.write(declared.length === 0 ? 'no declared sources\n' : `${declared.map(Declared.describe).join('\n')}\n`);
553
+ return 0;
554
+ }
555
+ finally {
556
+ store.close();
557
+ }
558
+ }
559
+ if (values['dry-run'] === true || values.query !== undefined) {
560
+ // Discovery works on a private snapshot, so the dry run only reads;
561
+ // the overlay appends into the store's own rolled-back transaction.
562
+ const store = openAt(db, { intent: values.query === undefined ? 'read' : 'scratch', assemble: Declared.assemble, ...registryOf(values) });
563
+ try {
564
+ return values.query === undefined ?
565
+ await declaredDry(store, db, values, io, context) :
566
+ await declaredQuery(store, db, values, io, context);
567
+ }
568
+ finally {
569
+ store.close();
570
+ }
571
+ }
572
+ const store = openAt(db, { intent: 'write', ...registryOf(values) });
573
+ try {
574
+ return values.watch === true ?
575
+ await declaredWatch(store, db, values, io, context) :
576
+ await declaredPass(store, db, values, io, context);
577
+ }
578
+ finally {
579
+ store.close();
580
+ }
581
+ }
582
+ catch (error) {
583
+ io.stderr.write(`cave connect: ${error instanceof Error ? error.message : String(error)}\n`);
584
+ return error instanceof LocateError ? 1 : 1;
585
+ }
586
+ };
252
587
  export const runConnect = async (argv, context = {}) => {
253
588
  const io = {
254
589
  stdout: context.stdout ?? process.stdout,
@@ -276,6 +611,7 @@ export const runConnect = async (argv, context = {}) => {
276
611
  all: { type: 'boolean' },
277
612
  aliases: { type: 'boolean' },
278
613
  'no-prelude': { type: 'boolean' },
614
+ list: { type: 'boolean' },
279
615
  help: { type: 'boolean', short: 'h' }
280
616
  },
281
617
  allowPositionals: true
@@ -284,11 +620,18 @@ export const runConnect = async (argv, context = {}) => {
284
620
  io.stdout.write(`${usage}\n`);
285
621
  return 0;
286
622
  }
623
+ if (positionals.length === 0) {
624
+ return runDeclared(values, io, context);
625
+ }
287
626
  const [source] = positionals;
288
627
  if (source === undefined || positionals.length !== 1) {
289
628
  io.stderr.write(`cave connect: exactly one source is required\n\n${usage}\n`);
290
629
  return 1;
291
630
  }
631
+ if (values.list === true) {
632
+ io.stderr.write('cave connect: --list takes no source\n');
633
+ return 1;
634
+ }
292
635
  if (values.map === undefined) {
293
636
  io.stderr.write(`cave connect: --map <file> is required\n\n${usage}\n`);
294
637
  return 1;
@@ -313,7 +656,10 @@ export const runConnect = async (argv, context = {}) => {
313
656
  if (values.query !== undefined) {
314
657
  return await runQuery(source, values, name, io, context);
315
658
  }
316
- const store = open(values.db ?? defaultDbPath(), values['no-prelude'] === true ? { registry: Registry.empty } : {});
659
+ const store = openAt(values.db ?? defaultDbPath(), {
660
+ intent: 'write',
661
+ ...values['no-prelude'] === true ? { registry: Registry.empty } : {}
662
+ });
317
663
  try {
318
664
  if (values.watch === true) {
319
665
  return await runWatch(store, source, values, name, io, context);
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,IAAI,OAAO,EAAE,MAAM,SAAS,CAAA;AACpE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAElF,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3E,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAGlD,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6EAsE+D,CAAA;AAmD7E,MAAM,YAAY,GAAG,CAAC,MAAoB,EAAiB,EAAE,CAC3D,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;AAE3I,MAAM,YAAY,GAAG,CAAC,MAAc,EAAU,EAAE;IAC9C,MAAM,KAAK,GAAG;QACZ,YAAY,MAAM,CAAC,OAAO,eAAe,MAAM,CAAC,MAAM,YAAY,MAAM,CAAC,OAAO,sBAAsB;YACtG,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3E,MAAM,MAAM,CAAC,KAAK,WAAW;YAC7B,GAAG,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE;YAClE,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,mBAAmB,CAAC,CAAC,CAAC,EAAE,EAAE;YACnE,GAAG,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,EAAE,EAAE;KACrE,CAAA;IACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAA;IAC/B,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,MAAM,UAAU,CAAC,CAAA;QACzC,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAA;IAClE,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC,CAAA;AAED,sFAAsF;AACtF,MAAM,WAAW,GAAG,CAAC,IAAY,EAA+D,EAAE,CAChG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5C,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/C,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;AAE9C,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,OAAmB,EAAkB,EAAE,CAAC,CAAC;IAC9E,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAuB,EAAE;IAChF,GAAG,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE;IACxE,GAAG,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;IAC5D,GAAG,MAAM,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE;IACtD,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;IAClE,GAAG,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE;CAC3E,CAAC,CAAA;AAEF,MAAM,UAAU,GAAG,KAAK,EAAE,MAAc,EAAE,MAAc,EAAE,OAAmB,EAA0B,EAAE;IACvG,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAClE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC9F,CAAC;AACH,CAAC,CAAA;AAED,MAAM,OAAO,GAAG,KAAK,EACnB,KAAY,EACZ,MAAc,EACd,MAAc,EACd,IAAY,EACZ,EAAM,EACN,OAAmB,EACF,EAAE;IACnB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,GAAI,CAAC,CAAA;IACtD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3C,OAAO,CAAC,CAAA;IACV,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IACxD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;QACrD,IAAI;QACJ,MAAM;QACN,GAAG,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;QAC5D,GAAG,MAAM,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE;QACtD,KAAK,EAAE,MAAM,CAAC,KAAK,KAAK,IAAI;QAC5B,KAAK,EAAE,MAAM,CAAC,KAAK,KAAK,IAAI;KAC7B,CAAC,CAAA;IACF,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC5C,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC3C,CAAC,CAAA;AAED,MAAM,MAAM,GAAG,KAAK,EAAE,MAAc,EAAE,MAAc,EAAE,EAAM,EAAE,OAAmB,EAAmB,EAAE;IACpG,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,GAAI,CAAC,CAAA;IACtD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3C,OAAO,CAAC,CAAA;IACV,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IACxD,uEAAuE;IACvE,wEAAwE;IACxE,oEAAoE;IACpE,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,IAAI,OAAO,CAAC,OAAO,KAAK,EAAE,EAAE,CAAC;QAC3B,QAAQ,CAAC,IAAI,CAAC,oBAAoB,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IAChE,CAAC;IACD,IAAI,QAAQ,GAAG,CAAC,CAAA;IAChB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;QACpC,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;QACrG,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,QAAQ,IAAI,CAAC,CAAA;YACb,QAAQ,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;YACvH,OAAM;QACR,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IAC5E,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC7C,OAAO,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC7B,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,KAAK,EACpB,MAAc,EACd,MAAc,EACd,IAAY,EACZ,EAAM,EACN,OAAmB,EACF,EAAE;IACnB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,GAAI,CAAC,CAAA;IACtD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3C,OAAO,CAAC,CAAA;IACV,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IACxD,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,aAAa,EAAE,CAAA;IACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAClF,4EAA4E;IAC5E,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAA;IACjJ,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,cAAc,CACxC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAC9B;YACE,IAAI;YACJ,MAAM;YACN,GAAG,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;YAC5D,GAAG,MAAM,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE;SACvD,EACD,MAAM,CAAC,KAAM,EACb,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,KAAK,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE,CAC/D,CAAA;QACD,uEAAuE;QACvE,kEAAkE;QAClE,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/C,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC9C,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACzB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;YACxG,OAAO,IAAI,CAAA;QACb,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;YAC/B,OAAO,IAAI,CAAA;QACb,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAChC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;iBAC5C,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,QAAQ,MAAM,KAAK,EAAE,CAAC;iBACrD,IAAI,CAAC,IAAI,CAAC,CAAA;YACb,OAAO,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,IAAI,MAAM,CAAC,KAAM,CAAA;QAC1E,CAAC,CAAC,CAAA;QACF,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACxC,OAAO,IAAI,CAAA;IACb,CAAC;YAAS,CAAC;QACT,KAAK,CAAC,KAAK,EAAE,CAAA;IACf,CAAC;AACH,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,KAAK,EACpB,KAAY,EACZ,MAAc,EACd,MAAc,EACd,IAAY,EACZ,EAAM,EACN,OAAmB,EACF,EAAE;IACnB,MAAM,QAAQ,GAAG,KAAK,IAAmB,EAAE;QACzC,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;QACzD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACzG,CAAC;IACH,CAAC,CAAA;IACD,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,IAAI,MAAM,GAAG,KAAK,CAAA;IAClB,IAAI,KAAc,CAAA;IAClB,IAAI,MAAiC,CAAA;IACrC,MAAM,IAAI,GAAG,KAAK,IAAmB,EAAE;QACrC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,GAAG,IAAI,CAAA;YACb,OAAM;QACR,CAAC;QACD,OAAO,GAAG,IAAI,CAAA;QACd,GAAG,CAAC;YACF,MAAM,GAAG,KAAK,CAAA;YACd,MAAM,QAAQ,EAAE,CAAA;QAClB,CAAC,QAAQ,MAAM,EAAC;QAChB,OAAO,GAAG,KAAK,CAAA;IACjB,CAAC,CAAA;IACD,MAAM,QAAQ,GAAiB,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CACxE,UAAU,CAAC,GAAG,EAAE,GAAG,KAAK,QAAQ,EAAE,CAAA,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;IACjD,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,CAAC,MAAM,CAAC,EAAE,CAC3D,YAAY,CAAC,MAAuC,CAAC,CAAC,CAAA;IACxD,MAAM,OAAO,GAAG,GAAS,EAAE;QACzB,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,GAAG,IAAI,CAAA;YACb,OAAM;QACR,CAAC;QACD,IAAI,KAAK,KAAK,SAAS;YAAE,eAAe,CAAC,KAAK,CAAC,CAAA;QAC/C,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC1B,KAAK,GAAG,SAAS,CAAA;YACjB,MAAM,IAAI,GAAG,IAAI,EAAE,CAAA;YACnB,MAAM,GAAG,IAAI,CAAA;YACb,MAAM,IAAI,CAAA;YACV,IAAI,MAAM,KAAK,IAAI;gBAAE,MAAM,GAAG,SAAS,CAAA;QACzC,CAAC,EAAE,GAAG,CAAC,CAAA;IACT,CAAC,CAAA;IACD,sEAAsE;IACtE,sDAAsD;IACtD,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5I,MAAM,KAAK,GAAc,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;IACvF,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CACpC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;QAC1C,kEAAkE;QAClE,uEAAuE;QACvE,iEAAiE;QACjE,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAClE,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC,CAAC,CAAC,CAAA;IACL,IAAI,CAAC;QACH,qEAAqE;QACrE,iEAAiE;QACjE,MAAM,QAAQ,EAAE,CAAA;QAChB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAC9C,MAAM,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;QAC7B,OAAO,CAAC,CAAA;IACV,CAAC;YAAS,CAAC;QACT,IAAI,KAAK,KAAK,SAAS;YAAE,eAAe,CAAC,KAAK,CAAC,CAAA;QAC/C,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;QAC5C,MAAM,MAAM,CAAA;IACd,CAAC;AACH,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,KAAY,EAAE,OAAyB,EAAE,OAAe,EAAE,MAAc,EAAE,EAAM,EAAQ,EAAE;IAC9G,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACzB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;QACxG,OAAM;IACR,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;QAC/B,OAAM;IACR,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QAChC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;aAC5C,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,QAAQ,MAAM,KAAK,EAAE,CAAC;aACrD,IAAI,CAAC,IAAI,CAAC,CAAA;QACb,OAAO,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,IAAI,OAAO,CAAA;IACpE,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC1C,CAAC,CAAA;AAED,MAAM,UAAU,GAAG,CAAC,MAAc,EAA6B,EAAE,CAC/D,MAAM,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;AAEnE,sEAAsE;AACtE,MAAM,cAAc,GAAG,CAAC,KAAY,EAAE,MAAc,EAAgB,EAAE;IACpE,MAAM,QAAQ,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;IAChD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,QAAQ,CAAA;IACjB,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAA;IACvE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,CAAC,IAAI,EAAE;YACjD,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,gBAAgB,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;IACpI,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,KAAK,EACxB,KAAY,EACZ,IAAY,EACZ,MAAc,EACd,EAAM,EACN,OAAmB,EACF,EAAE;IACnB,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IACtC,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAA;IACtC,qEAAqE;IACrE,uEAAuE;IACvE,uEAAuE;IACvE,wEAAwE;IACxE,qEAAqE;IACrE,sEAAsE;IACtE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;IAC/H,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAA;IACzC,SAAS,CAAC;QACR,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC;aACzC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAA;QACtI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3B,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7C,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;YAClE,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAA;YACnE,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC,CAAA;YACzG,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,+DAA+D;gBAC/D,gEAAgE;gBAChE,4DAA4D;gBAC5D,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;oBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;gBACzH,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC;oBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACpF,CAAC;YACD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;YAC3F,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,IAAI,CAAC,CAAA;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAClH,MAAM,IAAI,CAAC,CAAA;QACb,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,MAAc,EAAE,OAAmB,EAAE,KAAK,GAAG,MAAM,CAAC,KAAK,KAAK,IAAI,EAA4B,EAAE,CAAC,CAAC;IACzH,GAAG,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;IACzD,GAAG,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE;IAC1E,KAAK;IACL,KAAK,EAAE,MAAM,CAAC,KAAK,KAAK,IAAI;CAC7B,CAAC,CAAA;AAEF,gGAAgG;AAChG,MAAM,WAAW,GAAG,KAAK,EAAE,KAAY,EAAE,IAAY,EAAE,MAAc,EAAE,EAAM,EAAE,OAAmB,EAAmB,EAAE;IACrH,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,IAAI,QAAQ,GAAG,CAAC,CAAA;IAChB,KAAK,MAAM,KAAK,IAAI,MAAM,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;QAC3F,QAAQ,CAAC,IAAI,CAAC,gBAAgB,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAA;QAC7E,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,KAAK,EAAE,EAAE,CAAC;YACjC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;QACtE,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;YACnC,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;YAC3G,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,QAAQ,IAAI,CAAC,CAAA;gBACb,QAAQ,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;gBACvH,OAAM;YACR,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;QAC5E,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC7C,OAAO,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC7B,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,MAAM,CAAC,sCAAsC,CAAC,CAAA;AAE/D;;;;GAIG;AACH,MAAM,KAAK,GAAG,MAAM,CAAC,mCAAmC,CAAC,CAAA;AAEzD,MAAM,aAAa,GAAG,KAAK,EAAE,KAAY,EAAE,IAAY,EAAE,MAAc,EAAE,EAAM,EAAE,OAAmB,EAAmB,EAAE;IACvH,yEAAyE;IACzE,uEAAuE;IACvE,sEAAsE;IACtE,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC,eAAe,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QACvE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;QAC5G,IAAI,OAAqC,CAAA;QACzC,IAAI,MAAM,GAAG,CAAC,CAAA;QACd,IAAI,CAAC;YACH,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;gBACrB,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;oBAC3E,MAAM,KAAK,CAAA;gBACb,CAAC;gBACD,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;oBAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC,CAAA;oBACzF,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC/B,MAAM,IAAI,CAAC,CAAA;wBACX,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;oBACxG,CAAC;gBACH,CAAC;gBACD,OAAO,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,KAAM,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,KAAK,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC,CAAA;gBACzG,MAAM,QAAQ,CAAA;YAChB,CAAC,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;gBACpB,SAAQ;YACV,CAAC;YACD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACvB,MAAM,KAAK,CAAA;YACb,CAAC;QACH,CAAC;QACD,YAAY,CAAC,KAAK,EAAE,OAAQ,EAAE,MAAM,CAAC,KAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;QACxD,OAAO,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3B,CAAC;IACD,MAAM,QAAQ,CAAC,YAAY,EAAE,CAAA;AAC/B,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,KAAK,EAAE,KAAY,EAAE,IAAY,EAAE,MAAc,EAAE,EAAM,EAAE,OAAmB,EAAmB,EAAE;IACvH,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IACtC,MAAM,QAAQ,GAAG,KAAK,IAAmB,EAAE;QACzC,IAAI,CAAC;YACH,MAAM,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACzG,CAAC;QACD,eAAe,EAAE,CAAA;IACnB,CAAC,CAAA;IACD,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,IAAI,MAAM,GAAG,KAAK,CAAA;IAClB,IAAI,KAAc,CAAA;IAClB,IAAI,MAAiC,CAAA;IACrC,MAAM,IAAI,GAAG,KAAK,IAAmB,EAAE;QACrC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,GAAG,IAAI,CAAA;YACb,OAAM;QACR,CAAC;QACD,OAAO,GAAG,IAAI,CAAA;QACd,GAAG,CAAC;YACF,MAAM,GAAG,KAAK,CAAA;YACd,MAAM,QAAQ,EAAE,CAAA;QAClB,CAAC,QAAQ,MAAM,EAAC;QAChB,OAAO,GAAG,KAAK,CAAA;IACjB,CAAC,CAAA;IACD,MAAM,QAAQ,GAAiB,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CACxE,UAAU,CAAC,GAAG,EAAE,GAAG,KAAK,QAAQ,EAAE,CAAA,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;IACjD,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,CAAC,MAAM,CAAC,EAAE,CAC3D,YAAY,CAAC,MAAuC,CAAC,CAAC,CAAA;IACxD,MAAM,OAAO,GAAG,GAAS,EAAE;QACzB,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,GAAG,IAAI,CAAA;YACb,OAAM;QACR,CAAC;QACD,IAAI,KAAK,KAAK,SAAS;YAAE,eAAe,CAAC,KAAK,CAAC,CAAA;QAC/C,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC1B,KAAK,GAAG,SAAS,CAAA;YACjB,qEAAqE;YACrE,yCAAyC;YACzC,MAAM,IAAI,GAAG,IAAI,EAAE,CAAA;YACnB,MAAM,GAAG,IAAI,CAAA;YACb,MAAM,IAAI,CAAA;YACV,IAAI,MAAM,KAAK,IAAI;gBAAE,MAAM,GAAG,SAAS,CAAA;QACzC,CAAC,EAAE,GAAG,CAAC,CAAA;IACT,CAAC,CAAA;IACD,sEAAsE;IACtE,mEAAmE;IACnE,8BAA8B;IAC9B,MAAM,KAAK,GAAc,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;IACvF,MAAM,OAAO,GAAG,IAAI,GAAG,EAA6B,CAAA;IACpD,MAAM,eAAe,GAAG,GAAS,EAAE;QACjC,IAAI,QAAsB,CAAA;QAC1B,IAAI,CAAC;YACH,8DAA8D;YAC9D,QAAQ,GAAG,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;gBACpC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC/B,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;QACrF,CAAC;QAAC,MAAM,CAAC;YACP,OAAM;QACR,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACtD,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC5E,uEAAuE;YACvE,+CAA+C;YAC/C,GAAG,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpH,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SAC/C,CAAC,CAAC,EAAE,CAAC;YACJ,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,SAAQ;YACjC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;gBAC9D,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBAClE,OAAO,EAAE,CAAA;gBACX,CAAC;YACH,CAAC,CAAC,CAAC,CAAA;QACL,CAAC;IACH,CAAC,CAAA;IACD,eAAe,EAAE,CAAA;IACjB,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACvB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAA;QAC9E,OAAO,CAAC,CAAA;IACV,CAAC;IACD,IAAI,CAAC;QACH,MAAM,QAAQ,EAAE,CAAA;QAChB,eAAe,EAAE,CAAA;QACjB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAC9C,MAAM,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;QAC7B,OAAO,CAAC,CAAA;IACV,CAAC;YAAS,CAAC;QACT,IAAI,KAAK,KAAK,SAAS;YAAE,eAAe,CAAC,KAAK,CAAC,CAAA;QAC/C,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE;YAAE,OAAO,CAAC,KAAK,EAAE,CAAA;QACvD,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,MAAM,CAAA;IACxC,CAAC;AACH,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,WAAW,GAAG,KAAK,EAAE,MAAc,EAAE,EAAM,EAAE,OAAmB,EAAmB,EAAE;IACzF,MAAM,SAAS,GAAI,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAW;SAC1F,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,CAAA;IACjD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,gCAAgC;YAChH,sEAAsE,CAAC,CAAA;QACzE,OAAO,CAAC,CAAA;IACV,CAAC;IACD,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,aAAa,EAAE,CAAA;IACvC,IAAI,CAAC;QACH,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YAChG,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;gBAC9C,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACpH,OAAO,CAAC,CAAA;YACV,CAAC;oBAAS,CAAC;gBACT,KAAK,CAAC,KAAK,EAAE,CAAA;YACf,CAAC;QACH,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7D,oEAAoE;YACpE,oEAAoE;YACpE,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YACzI,IAAI,CAAC;gBACH,OAAO,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;oBACjC,MAAM,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;oBACnD,MAAM,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;YACvD,CAAC;oBAAS,CAAC;gBACT,KAAK,CAAC,KAAK,EAAE,CAAA;YACf,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACpE,IAAI,CAAC;YACH,OAAO,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;gBAC5B,MAAM,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;gBACrD,MAAM,YAAY,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;QACtD,CAAC;gBAAS,CAAC;YACT,KAAK,CAAC,KAAK,EAAE,CAAA;QACf,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC5F,OAAO,KAAK,YAAY,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7C,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,IAAuB,EAAE,UAAsB,EAAE,EAAmB,EAAE;IACrG,MAAM,EAAE,GAAO;QACb,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM;QACxC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM;QACxC,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;KAClE,CAAA;IACD,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC;QACxC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;QACf,OAAO,EAAE;YACP,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACtB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC7B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC1B,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC1B,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC9B,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC1B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACzB,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACxB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC5B,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACjC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACzB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;SACtC;QACD,gBAAgB,EAAE,IAAI;KACvB,CAA8C,CAAA;IAC/C,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACzB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAA;QAC7B,OAAO,CAAC,CAAA;IACV,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;IACzC,CAAC;IACD,MAAM,CAAC,MAAM,CAAC,GAAG,WAAW,CAAA;IAC5B,IAAI,MAAM,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,mDAAmD,KAAK,IAAI,CAAC,CAAA;QAC7E,OAAO,CAAC,CAAA;IACV,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACzB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAA;QACzD,OAAO,CAAC,CAAA;IACV,CAAC;IACD,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAC7B,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,6CAA6C,KAAK,IAAI,CAAC,CAAA;QACvE,OAAO,CAAC,CAAA;IACV,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACtG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAClF,OAAO,CAAC,CAAA;IACV,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAA;QACzE,OAAO,CAAC,CAAA;IACV,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAChH,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,kFAAkF,CAAC,CAAA;QACnG,OAAO,CAAC,CAAA;IACV,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACjD,IAAI,CAAC;QACH,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;YAC/B,OAAO,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;QAClD,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,MAAM,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;QAC1D,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,aAAa,EAAE,EAAE;YACjD,MAAM,EAAE,OAAO;YACf,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;SACrE,CAAC,CAAA;QACF,IAAI,CAAC;YACH,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC1B,OAAO,MAAM,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;YACjE,CAAC;YACD,OAAO,MAAM,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;QAChE,CAAC;gBAAS,CAAC;YACT,KAAK,CAAC,KAAK,EAAE,CAAA;QACf,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC5F,OAAO,CAAC,CAAA;IACV,CAAC;AACH,CAAC,CAAA"}
@@ -16,18 +16,62 @@
16
16
  * `@src:` context (both are kept).
17
17
  */
18
18
  import type { LineSpan } from '@cavelang/core';
19
- import type { Store } from '@cavelang/store';
19
+ import type { Row, Store } from '@cavelang/store';
20
20
  import type { Match, Options as QueryOptions } from '@cavelang/query';
21
21
  import * as Template from './template.ts';
22
22
  export declare const digestAttribute = "connect-digest";
23
23
  export declare const provenanceContext = "src:cave-connect";
24
24
  /** First 12 hex chars of SHA-256, mirroring `@cavelang/cli/ingest` (spec §9.5). */
25
25
  export declare const digestOf: (content: string) => string;
26
+ /**
27
+ * Claim key of a bookkeeping claim — `subject HAS attribute: … @src:cave-connect`.
28
+ * The value is excluded from keys (spec §9.2), so the key is stable while
29
+ * the value evolves, and the context makes it the connector's own series:
30
+ * an authored claim with the same attribute is another series entirely.
31
+ */
32
+ export declare const bookkeepingKey: (subject: string, attribute: string) => string;
33
+ /**
34
+ * The current row of every claim key whose subject starts with `under`,
35
+ * read with one indexed range query: the range goes into the grouped
36
+ * subquery too, so the latest-per-key aggregation runs over those rows
37
+ * alone, never the whole store.
38
+ */
39
+ export declare const currentRowsUnder: (store: Store, under: string) => Row.t[];
40
+ /** The current digest rows of a unit prefix — the connector's bookkeeping under `source/<name>/` or `connect/<name>/`. */
41
+ export declare const currentDigestsUnder: (store: Store, under: string) => Row.t[];
42
+ /** @returns `true` when the unit has been connected at all — a current digest claim of any value. */
43
+ export declare const hasDigest: (store: Store, subject: string) => boolean;
26
44
  /** @returns `true` when the unit's current digest claim matches `digest`. */
27
45
  export declare const isConnected: (store: Store, subject: string, digest: string) => boolean;
46
+ /**
47
+ * How a pass names its units (spec §23.2, §23.4). `unit` is the digest
48
+ * bookkeeping entity of the prelude (no key) or a record; `run` is the
49
+ * lifecycle run and `@src:` stamp of the same unit; `recordPrefix` is what
50
+ * `--prune` scans for. An ad-hoc `cave connect <source>` uses
51
+ * `connect/<name>` for both; a declared `source/<name>` keeps its digests
52
+ * under its own entity and stamps `@src:<name>/<key>`, so the stamp and
53
+ * the entity that describes the source mirror each other (§26.3).
54
+ */
55
+ export type Naming = {
56
+ readonly unit: (key?: string) => string;
57
+ readonly run: (key?: string) => string;
58
+ readonly recordPrefix: string;
59
+ };
60
+ /** Naming of an ad-hoc `cave connect <source>` pass: `connect/<name>[/<key>]` throughout. */
61
+ export declare const adHocNaming: (name: string) => Naming;
62
+ /** Naming of a declared `source/<name>` (spec §23.4): digests under `source/<name>[/<key>]`, stamps `@src:<name>[/<key>]`. */
63
+ export declare const declaredNaming: (name: string) => Naming;
28
64
  export type ConnectOptions = {
29
65
  /** Source name for record identity (spec §23.2): `connect/<name>/<key>`. */
30
66
  readonly name: string;
67
+ /** Unit naming; ad-hoc `connect/<name>` naming when omitted. */
68
+ readonly naming?: Naming;
69
+ /**
70
+ * Treat the prelude as a lifecycle unit: claims it no longer yields are
71
+ * retracted when it changes, as for a record. A declared `.cave` source is
72
+ * all prelude, and its file is data that changes (spec §23.4).
73
+ */
74
+ readonly preludeLifecycle?: boolean;
31
75
  /** Record key field; unkeyed records are content-addressed by digest. */
32
76
  readonly key?: string;
33
77
  /** Underlying file/URL identity attached to generated record claims. */
@@ -63,6 +107,8 @@ export type Report = {
63
107
  /** Run-level notes (duplicate keys, prelude state). */
64
108
  readonly notes: readonly string[];
65
109
  };
110
+ /** Retracts every current claim a lifecycle run owns — a unit whose declaration changed shape is retired whole. */
111
+ export declare const retireRun: (store: Store, run: string) => number;
66
112
  /**
67
113
  * One connect pass: prelude (digest-skipped as a unit under
68
114
  * `connect/<name>`), then each record (digest-skipped under
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,EAAO,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC,eAAO,MAAM,eAAe,mBAAmB,CAAA;AAE/C,eAAO,MAAM,iBAAiB,qBAAqB,CAAA;AAEnD,+EAA+E;AAC/E,eAAO,MAAM,QAAQ,GAAI,SAAS,MAAM,KAAG,MACsB,CAAA;AAcjE,6EAA6E;AAC7E,eAAO,MAAM,WAAW,GAAI,OAAO,KAAK,EAAE,SAAS,MAAM,EAAE,QAAQ,MAAM,KAAG,OAG3E,CAAA;AAMD,MAAM,MAAM,cAAc,GAAG;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,yEAAyE;IACzE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,wEAAwE;IACxE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAA;IACpC,gDAAgD;IAChD,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;IACxB,kEAAkE;IAClE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,wEAAwE;IACxE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CACrC,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,6BAA6B;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,uDAAuD;IACvD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,sCAAsC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,qDAAqD;IACrD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAA;IACrC,uDAAuD;IACvD,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAClC,CAAA;AAgED;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,GAClB,OAAO,KAAK,EACZ,SAAS,QAAQ,CAAC,OAAO,EACzB,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC3C,SAAS,cAAc,KACtB,MAsHF,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,OAAO,EAAE,SAAS,KAAK,EAAE,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,CAAA;AAID;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GACzB,OAAO,KAAK,EACZ,SAAS,QAAQ,CAAC,OAAO,EACzB,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC3C,SAAS,cAAc,EACvB,SAAS,MAAM,EACf,eAAc,YAAiB,KAC9B,gBAcF,CAAA"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAE9C,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC,eAAO,MAAM,eAAe,mBAAmB,CAAA;AAE/C,eAAO,MAAM,iBAAiB,qBAAqB,CAAA;AAEnD,+EAA+E;AAC/E,eAAO,MAAM,QAAQ,GAAI,SAAS,MAAM,KAAG,MACsB,CAAA;AAEjE;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,EAAE,WAAW,MAAM,KAAG,MAM/D,CAAA;AAKL;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,OAAO,KAAK,EAAE,OAAO,MAAM,KAAG,GAAG,CAAC,CAAC,EAKnE,CAAA;AAED,0HAA0H;AAC1H,eAAO,MAAM,mBAAmB,GAAI,OAAO,KAAK,EAAE,OAAO,MAAM,KAAG,GAAG,CAAC,CAAC,EAGX,CAAA;AAE5D,qGAAqG;AACrG,eAAO,MAAM,SAAS,GAAI,OAAO,KAAK,EAAE,SAAS,MAAM,KAAG,OAGzD,CAAA;AAED,6EAA6E;AAC7E,eAAO,MAAM,WAAW,GAAI,OAAO,KAAK,EAAE,SAAS,MAAM,EAAE,QAAQ,MAAM,KAAG,OAG3E,CAAA;AAMD;;;;;;;;GAQG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IACvC,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED,6FAA6F;AAC7F,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,KAAG,MAIzC,CAAA;AAEF,8HAA8H;AAC9H,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,KAAG,MAI5C,CAAA;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,gEAAgE;IAChE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IACnC,yEAAyE;IACzE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,wEAAwE;IACxE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAA;IACpC,gDAAgD;IAChD,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;IACxB,kEAAkE;IAClE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,wEAAwE;IACxE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CACrC,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,6BAA6B;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,uDAAuD;IACvD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,sCAAsC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,qDAAqD;IACrD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAA;IACrC,uDAAuD;IACvD,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAClC,CAAA;AAgED,mHAAmH;AACnH,eAAO,MAAM,SAAS,GAAI,OAAO,KAAK,EAAE,KAAK,MAAM,KAAG,MACjB,CAAA;AAErC;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,GAClB,OAAO,KAAK,EACZ,SAAS,QAAQ,CAAC,OAAO,EACzB,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC3C,SAAS,cAAc,KACtB,MAgIF,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,OAAO,EAAE,SAAS,KAAK,EAAE,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,CAAA;AAID;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GACzB,OAAO,KAAK,EACZ,SAAS,QAAQ,CAAC,OAAO,EACzB,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC3C,SAAS,cAAc,EACvB,SAAS,MAAM,EACf,eAAc,YAAiB,KAC9B,gBAcF,CAAA"}