vaulter 1.0.12 → 1.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +131 -1
- package/dist/cli/index.js +68 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/tui/audit-viewer.d.ts +15 -0
- package/dist/cli/tui/audit-viewer.d.ts.map +1 -0
- package/dist/cli/tui/audit-viewer.js +348 -0
- package/dist/cli/tui/audit-viewer.js.map +1 -0
- package/dist/cli/tui/dashboard.d.ts +15 -0
- package/dist/cli/tui/dashboard.d.ts.map +1 -0
- package/dist/cli/tui/dashboard.js +212 -0
- package/dist/cli/tui/dashboard.js.map +1 -0
- package/dist/cli/tui/index.d.ts +10 -0
- package/dist/cli/tui/index.d.ts.map +1 -0
- package/dist/cli/tui/index.js +10 -0
- package/dist/cli/tui/index.js.map +1 -0
- package/dist/cli/tui/key-manager.d.ts +12 -0
- package/dist/cli/tui/key-manager.d.ts.map +1 -0
- package/dist/cli/tui/key-manager.js +261 -0
- package/dist/cli/tui/key-manager.js.map +1 -0
- package/dist/cli/tui/launcher.d.ts +16 -0
- package/dist/cli/tui/launcher.d.ts.map +1 -0
- package/dist/cli/tui/launcher.js +200 -0
- package/dist/cli/tui/launcher.js.map +1 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +2 -1
- package/dist/client.js.map +1 -1
- package/dist/lib/config-loader.d.ts +19 -1
- package/dist/lib/config-loader.d.ts.map +1 -1
- package/dist/lib/config-loader.js +37 -1
- package/dist/lib/config-loader.js.map +1 -1
- package/dist/mcp/resources.d.ts +2 -1
- package/dist/mcp/resources.d.ts.map +1 -1
- package/dist/mcp/resources.js +187 -1
- package/dist/mcp/resources.js.map +1 -1
- package/dist/mcp/server.d.ts +5 -2
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +13 -3
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools.d.ts +66 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +259 -9
- package/dist/mcp/tools.js.map +1 -1
- package/dist/types.d.ts +27 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1497,6 +1497,135 @@ npx @anthropic-ai/mcp-inspector vaulter mcp
|
|
|
1497
1497
|
}
|
|
1498
1498
|
```
|
|
1499
1499
|
|
|
1500
|
+
### MCP Configuration
|
|
1501
|
+
|
|
1502
|
+
The MCP server uses a priority chain to resolve defaults:
|
|
1503
|
+
|
|
1504
|
+
1. **Tool arguments** (explicit in each call)
|
|
1505
|
+
2. **Project config** (`.vaulter/config.yaml`)
|
|
1506
|
+
3. **Project MCP config** (`.vaulter/config.yaml` → `mcp:` section)
|
|
1507
|
+
4. **Global MCP config** (`~/.vaulter/config.yaml` → `mcp:` section)
|
|
1508
|
+
5. **Hardcoded defaults**
|
|
1509
|
+
|
|
1510
|
+
#### Project MCP Defaults
|
|
1511
|
+
|
|
1512
|
+
Add an `mcp:` section to your project's `.vaulter/config.yaml`:
|
|
1513
|
+
|
|
1514
|
+
```yaml
|
|
1515
|
+
# .vaulter/config.yaml
|
|
1516
|
+
version: "1"
|
|
1517
|
+
project: my-project
|
|
1518
|
+
|
|
1519
|
+
backend:
|
|
1520
|
+
url: s3://bucket/envs?region=us-east-1
|
|
1521
|
+
|
|
1522
|
+
# MCP defaults (used when MCP server runs in this project)
|
|
1523
|
+
mcp:
|
|
1524
|
+
default_backend: s3://bucket/envs?region=us-east-1
|
|
1525
|
+
default_project: my-project
|
|
1526
|
+
default_environment: dev
|
|
1527
|
+
default_key: master # Key name for encryption
|
|
1528
|
+
```
|
|
1529
|
+
|
|
1530
|
+
#### Global MCP Defaults
|
|
1531
|
+
|
|
1532
|
+
For MCP clients that don't support `cwd`, create `~/.vaulter/config.yaml`:
|
|
1533
|
+
|
|
1534
|
+
```yaml
|
|
1535
|
+
# ~/.vaulter/config.yaml
|
|
1536
|
+
mcp:
|
|
1537
|
+
default_backend: s3://bucket/envs?region=us-east-1
|
|
1538
|
+
default_project: my-project
|
|
1539
|
+
default_environment: dev
|
|
1540
|
+
default_key: master
|
|
1541
|
+
```
|
|
1542
|
+
|
|
1543
|
+
#### Working Directory
|
|
1544
|
+
|
|
1545
|
+
MCP clients need to know which project to use. Options:
|
|
1546
|
+
|
|
1547
|
+
```json
|
|
1548
|
+
{
|
|
1549
|
+
"mcpServers": {
|
|
1550
|
+
"vaulter": {
|
|
1551
|
+
"command": "vaulter",
|
|
1552
|
+
"args": ["mcp", "--cwd", "/path/to/project"]
|
|
1553
|
+
}
|
|
1554
|
+
}
|
|
1555
|
+
}
|
|
1556
|
+
```
|
|
1557
|
+
|
|
1558
|
+
Or use the `VAULTER_CWD` environment variable:
|
|
1559
|
+
|
|
1560
|
+
```json
|
|
1561
|
+
{
|
|
1562
|
+
"mcpServers": {
|
|
1563
|
+
"vaulter": {
|
|
1564
|
+
"command": "vaulter",
|
|
1565
|
+
"args": ["mcp"],
|
|
1566
|
+
"env": {
|
|
1567
|
+
"VAULTER_CWD": "/path/to/project"
|
|
1568
|
+
}
|
|
1569
|
+
}
|
|
1570
|
+
}
|
|
1571
|
+
}
|
|
1572
|
+
```
|
|
1573
|
+
|
|
1574
|
+
### Debugging MCP Configuration
|
|
1575
|
+
|
|
1576
|
+
With multiple config levels (project, global, CLI), it can be confusing to know WHERE each setting comes from. Use the `vaulter://mcp-config` resource to see exactly which config file provided each value:
|
|
1577
|
+
|
|
1578
|
+
```bash
|
|
1579
|
+
# In MCP client, read the resource:
|
|
1580
|
+
vaulter://mcp-config
|
|
1581
|
+
```
|
|
1582
|
+
|
|
1583
|
+
**Example output:**
|
|
1584
|
+
```json
|
|
1585
|
+
{
|
|
1586
|
+
"summary": "MCP Configuration Sources - shows WHERE each setting was loaded from",
|
|
1587
|
+
"settings": {
|
|
1588
|
+
"backend": {
|
|
1589
|
+
"value": "s3://my-bucket/envs",
|
|
1590
|
+
"source": "project",
|
|
1591
|
+
"sourceDescription": "Project config (.vaulter/config.yaml)"
|
|
1592
|
+
},
|
|
1593
|
+
"project": {
|
|
1594
|
+
"value": "my-project",
|
|
1595
|
+
"source": "project.mcp",
|
|
1596
|
+
"sourceDescription": "Project MCP defaults (.vaulter/config.yaml → mcp section)"
|
|
1597
|
+
},
|
|
1598
|
+
"environment": {
|
|
1599
|
+
"value": "dev",
|
|
1600
|
+
"source": "global.mcp",
|
|
1601
|
+
"sourceDescription": "Global MCP defaults (~/.vaulter/config.yaml → mcp section)"
|
|
1602
|
+
}
|
|
1603
|
+
},
|
|
1604
|
+
"configFiles": {
|
|
1605
|
+
"projectConfig": "/home/user/project/.vaulter/config.yaml",
|
|
1606
|
+
"globalConfig": "/home/user/.vaulter/config.yaml"
|
|
1607
|
+
}
|
|
1608
|
+
}
|
|
1609
|
+
```
|
|
1610
|
+
|
|
1611
|
+
**Config Sources:**
|
|
1612
|
+
|
|
1613
|
+
| Source | Description |
|
|
1614
|
+
|:-------|:------------|
|
|
1615
|
+
| `cli` | CLI flag (`--backend`, `--project`, etc.) |
|
|
1616
|
+
| `project` | Project config (`.vaulter/config.yaml`) |
|
|
1617
|
+
| `project.mcp` | Project MCP defaults (`.vaulter/config.yaml` → `mcp:` section) |
|
|
1618
|
+
| `global.mcp` | Global MCP defaults (`~/.vaulter/config.yaml` → `mcp:` section) |
|
|
1619
|
+
| `default` | Built-in default value |
|
|
1620
|
+
|
|
1621
|
+
**Verbose Startup:**
|
|
1622
|
+
|
|
1623
|
+
For CLI debugging, use the `--verbose` flag to see config sources on startup:
|
|
1624
|
+
|
|
1625
|
+
```bash
|
|
1626
|
+
vaulter mcp --verbose
|
|
1627
|
+
```
|
|
1628
|
+
|
|
1500
1629
|
### Available Tools (22)
|
|
1501
1630
|
|
|
1502
1631
|
#### Core Operations
|
|
@@ -1541,11 +1670,12 @@ npx @anthropic-ai/mcp-inspector vaulter mcp
|
|
|
1541
1670
|
| `vaulter_key_export` | Export key to encrypted bundle |
|
|
1542
1671
|
| `vaulter_key_import` | Import key from encrypted bundle |
|
|
1543
1672
|
|
|
1544
|
-
### Resources (
|
|
1673
|
+
### Resources (10)
|
|
1545
1674
|
|
|
1546
1675
|
| URI Pattern | Description |
|
|
1547
1676
|
|:------------|:------------|
|
|
1548
1677
|
| `vaulter://instructions` | ⚠️ **CRITICAL**: How vaulter stores data (read first!) |
|
|
1678
|
+
| `vaulter://mcp-config` | 🔍 Shows WHERE each MCP setting comes from |
|
|
1549
1679
|
| `vaulter://config` | Project configuration |
|
|
1550
1680
|
| `vaulter://services` | Monorepo services |
|
|
1551
1681
|
| `vaulter://keys` | List all encryption keys |
|
package/dist/cli/index.js
CHANGED
|
@@ -327,7 +327,21 @@ const cliSchema = {
|
|
|
327
327
|
]
|
|
328
328
|
},
|
|
329
329
|
mcp: {
|
|
330
|
-
description: 'Start MCP server for Claude integration'
|
|
330
|
+
description: 'Start MCP server for Claude integration',
|
|
331
|
+
options: {
|
|
332
|
+
cwd: {
|
|
333
|
+
type: 'string',
|
|
334
|
+
description: 'Working directory (where to look for .vaulter/config.yaml)',
|
|
335
|
+
aliases: ['C']
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
},
|
|
339
|
+
tui: {
|
|
340
|
+
description: 'Launch interactive TUI (menu, dashboard, audit, keys)',
|
|
341
|
+
aliases: ['ui'],
|
|
342
|
+
positional: [
|
|
343
|
+
{ name: 'screen', required: false, description: 'Screen to open: menu, dashboard, audit, keys' }
|
|
344
|
+
]
|
|
331
345
|
},
|
|
332
346
|
config: {
|
|
333
347
|
description: 'Manage configuration'
|
|
@@ -637,7 +651,59 @@ async function main() {
|
|
|
637
651
|
process.exit(1);
|
|
638
652
|
}
|
|
639
653
|
const { startServer } = await import('../mcp/server.js');
|
|
640
|
-
|
|
654
|
+
// Pass CLI options to MCP server (e.g., --backend, --cwd flags)
|
|
655
|
+
await startServer({
|
|
656
|
+
backend: opts.backend,
|
|
657
|
+
cwd: opts.cwd,
|
|
658
|
+
verbose: opts.verbose
|
|
659
|
+
});
|
|
660
|
+
break;
|
|
661
|
+
case 'tui':
|
|
662
|
+
case 'ui':
|
|
663
|
+
// TUI - dynamically loaded (not available in standalone binaries)
|
|
664
|
+
if (IS_STANDALONE) {
|
|
665
|
+
console.error('Error: TUI is not available in standalone binaries');
|
|
666
|
+
console.error('Install via npm/pnpm to use TUI: pnpm add -g vaulter');
|
|
667
|
+
process.exit(1);
|
|
668
|
+
}
|
|
669
|
+
const tuiScreen = context.args._[1] || 'menu';
|
|
670
|
+
switch (tuiScreen) {
|
|
671
|
+
case 'dashboard':
|
|
672
|
+
case 'secrets':
|
|
673
|
+
const { startDashboard } = await import('./tui/index.js');
|
|
674
|
+
await startDashboard({
|
|
675
|
+
environment: context.environment,
|
|
676
|
+
service: context.service,
|
|
677
|
+
verbose: context.verbose
|
|
678
|
+
});
|
|
679
|
+
break;
|
|
680
|
+
case 'audit':
|
|
681
|
+
case 'logs':
|
|
682
|
+
const { startAuditViewer } = await import('./tui/index.js');
|
|
683
|
+
await startAuditViewer({
|
|
684
|
+
environment: context.environment,
|
|
685
|
+
service: context.service,
|
|
686
|
+
verbose: context.verbose
|
|
687
|
+
});
|
|
688
|
+
break;
|
|
689
|
+
case 'keys':
|
|
690
|
+
case 'key':
|
|
691
|
+
const { startKeyManager } = await import('./tui/index.js');
|
|
692
|
+
await startKeyManager({
|
|
693
|
+
verbose: context.verbose
|
|
694
|
+
});
|
|
695
|
+
break;
|
|
696
|
+
case 'menu':
|
|
697
|
+
default:
|
|
698
|
+
const { startLauncher } = await import('./tui/index.js');
|
|
699
|
+
await startLauncher({
|
|
700
|
+
environment: context.environment,
|
|
701
|
+
service: context.service,
|
|
702
|
+
verbose: context.verbose,
|
|
703
|
+
screen: tuiScreen !== 'menu' ? tuiScreen : undefined
|
|
704
|
+
});
|
|
705
|
+
break;
|
|
706
|
+
}
|
|
641
707
|
break;
|
|
642
708
|
case 'config':
|
|
643
709
|
console.log('config command not yet implemented');
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,yEAAyE;AACzE,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,SAAS,EAA2C,MAAM,iBAAiB,CAAA;AAEpF,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,8DAA8D;AAC9D,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,iBAAiB,EAAE,IAAI,OAAO,CAAA;AAE7E,SAAS,iBAAiB;IACxB,IAAI,CAAC;QACH,iEAAiE;QACjE,IAAI,OAAe,CAAA;QACnB,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE,CAAC;YACrC,cAAc;YACd,OAAO,GAAG,SAAS,CAAA;QACrB,CAAC;aAAM,IAAI,OAAO,MAAM,CAAC,IAAI,EAAE,GAAG,KAAK,QAAQ,EAAE,CAAC;YAChD,cAAc;YACd,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QACxD,CAAC;aAAM,CAAC;YACN,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,4DAA4D;QAC5D,IAAI,GAAG,GAAG,OAAO,CAAA;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;YAC9C,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAyB,CAAA;gBACjF,OAAO,GAAG,CAAC,OAAO,CAAA;YACpB,CAAC;YACD,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACzB,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,eAAe;AACf,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAA;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAA;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD,mEAAmE;AACnE,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,MAAM,CAAA;AAE/D;;GAEG;AACH;;;;;;;;;;;;GAYG;AACH,MAAM,kBAAkB,GAAG;IACzB,GAAG,EAAE,SAAS,EAAyB,6BAA6B;IACpE,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,EAAG,0BAA0B;IACjE,IAAI,EAAE,SAAS,EAAwB,2CAA2C;IAClF,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAM,sCAAsC;CAC9E,CAAA;AAED,MAAM,SAAS,GAAc;IAC3B,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,wDAAwD;IACrE,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE,kBAAkB;IAE9B,2CAA2C;IAC3C,OAAO,EAAE;QACP,IAAI,EAAE;YACJ,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,WAAW;SACzB;QACD,OAAO,EAAE;YACP,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,cAAc;SAC5B;QACD,OAAO,EAAE;YACP,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,kDAAkD;SAChE;QACD,OAAO,EAAE;YACP,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,wDAAwD;SACtE;QACD,GAAG,EAAE;YACH,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,yCAAyC;SACvD;QACD,OAAO,EAAE;YACP,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,sBAAsB;SACpC;QACD,GAAG,EAAE;YACH,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,gCAAgC;SAC9C;QACD,OAAO,EAAE;YACP,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,uBAAuB;SACrC;QACD,GAAG,EAAE;YACH,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,mCAAmC;SACjD;QACD,SAAS,EAAE;YACT,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,gDAAgD;SAC9D;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,uBAAuB;SACrC;QACD,KAAK,EAAE;YACL,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,oBAAoB;SAClC;QACD,IAAI,EAAE;YACJ,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,WAAW;SACzB;QACD,MAAM,EAAE;YACN,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,kBAAkB;SAChC;QACD,SAAS,EAAE;YACT,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,sBAAsB;SACpC;QACD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,eAAe;SAC7B;KACF;IAED,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,WAAW,EAAE,yCAAyC;YACtD,OAAO,EAAE;gBACP,KAAK,EAAE;oBACL,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,uDAAuD;iBACrE;aACF;SACF;QAED,GAAG,EAAE;YACH,WAAW,EAAE,mCAAmC;YAChD,UAAU,EAAE;gBACV,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE;aAC9D;SACF;QAED,GAAG,EAAE;YACH,WAAW,EAAE,wEAAwE;YACrF,UAAU,EAAE;gBACV,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,+BAA+B,EAAE;gBAC9E,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,gCAAgC,EAAE;aAClF;SACF;QAED,MAAM,EAAE;YACN,WAAW,EAAE,gCAAgC;YAC7C,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;YACzB,UAAU,EAAE;gBACV,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE;aAC9D;SACF;QAED,IAAI,EAAE;YACJ,WAAW,EAAE,gCAAgC;YAC7C,OAAO,EAAE,CAAC,IAAI,CAAC;YACf,OAAO,EAAE;gBACP,UAAU,EAAE;oBACV,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,wCAAwC;iBACtD;aACF;SACF;QAED,MAAM,EAAE;YACN,WAAW,EAAE,uCAAuC;SACrD;QAED,IAAI,EAAE;YACJ,WAAW,EAAE,oCAAoC;SAClD;QAED,IAAI,EAAE;YACJ,WAAW,EAAE,2CAA2C;SACzD;QAED,IAAI,EAAE;YACJ,WAAW,EAAE,4BAA4B;SAC1C;QAED,GAAG,EAAE;YACH,WAAW,EAAE,yBAAyB;YACtC,QAAQ,EAAE;gBACR,QAAQ,EAAE;oBACR,WAAW,EAAE,+BAA+B;oBAC5C,OAAO,EAAE;wBACP,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,iCAAiC;yBAC/C;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,KAAK;4BACd,WAAW,EAAE,2CAA2C;yBACzD;wBACD,UAAU,EAAE;4BACV,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,KAAK;4BACd,WAAW,EAAE,uCAAuC;yBACrD;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,KAAK;4BACd,WAAW,EAAE,wBAAwB;yBACtC;wBACD,SAAS,EAAE;4BACT,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,iDAAiD;yBAC/D;wBACD,GAAG,EAAE;4BACH,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,uBAAuB;yBACrC;qBACF;iBACF;gBACD,MAAM,EAAE;oBACN,WAAW,EAAE,gCAAgC;oBAC7C,OAAO,EAAE;wBACP,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,oBAAoB;yBAClC;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,KAAK;4BACd,WAAW,EAAE,2CAA2C;yBACzD;qBACF;iBACF;gBACD,MAAM,EAAE;oBACN,WAAW,EAAE,kCAAkC;oBAC/C,OAAO,EAAE;wBACP,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,6DAA6D;yBAC3E;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,KAAK;4BACd,WAAW,EAAE,iDAAiD;yBAC/D;qBACF;iBACF;gBACD,IAAI,EAAE;oBACJ,WAAW,EAAE,eAAe;oBAC5B,OAAO,EAAE,CAAC,IAAI,CAAC;iBAChB;gBACD,IAAI,EAAE;oBACJ,WAAW,EAAE,eAAe;oBAC5B,OAAO,EAAE;wBACP,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,kBAAkB;yBAChC;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,KAAK;4BACd,WAAW,EAAE,2CAA2C;yBACzD;qBACF;iBACF;gBACD,MAAM,EAAE;oBACN,WAAW,EAAE,uBAAuB;iBACrC;aACF;SACF;QAED,QAAQ,EAAE;YACR,WAAW,EAAE,2BAA2B;YACxC,OAAO,EAAE,CAAC,KAAK,CAAC;SACjB;QAED,IAAI,EAAE;YACJ,WAAW,EAAE,qEAAqE;YAClF,UAAU,EAAE;gBACV,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,wBAAwB,EAAE;aACzE;SACF;QAED,GAAG,EAAE;YACH,WAAW,EAAE,yCAAyC;SACvD;QAED,MAAM,EAAE;YACN,WAAW,EAAE,sBAAsB;SACpC;QAED,YAAY,EAAE;YACZ,WAAW,EAAE,iCAAiC;SAC/C;QAED,eAAe,EAAE;YACf,WAAW,EAAE,oCAAoC;SAClD;QAED,aAAa,EAAE;YACb,WAAW,EAAE,2BAA2B;SACzC;QAED,SAAS,EAAE;YACT,WAAW,EAAE,4BAA4B;SAC1C;QAED,SAAS,EAAE;YACT,WAAW,EAAE,yBAAyB;SACvC;QAED,KAAK,EAAE;YACL,WAAW,EAAE,sBAAsB;YACnC,QAAQ,EAAE;gBACR,IAAI,EAAE;oBACJ,WAAW,EAAE,oBAAoB;oBACjC,OAAO,EAAE,CAAC,IAAI,CAAC;oBACf,OAAO,EAAE;wBACP,UAAU,EAAE;4BACV,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,KAAK;4BACd,WAAW,EAAE,8BAA8B;yBAC5C;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,gBAAgB;yBAC9B;wBACD,SAAS,EAAE;4BACT,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,uDAAuD;yBACrE;wBACD,OAAO,EAAE;4BACP,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,oDAAoD;yBAClE;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,0CAA0C;yBACxD;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,6CAA6C;yBAC3D;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,8CAA8C;yBAC5D;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,yCAAyC;yBACvD;qBACF;iBACF;gBACD,IAAI,EAAE;oBACJ,WAAW,EAAE,gCAAgC;oBAC7C,UAAU,EAAE;wBACV,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,gBAAgB,EAAE;qBAC9D;iBACF;gBACD,KAAK,EAAE;oBACL,WAAW,EAAE,uBAAuB;iBACrC;gBACD,OAAO,EAAE;oBACP,WAAW,EAAE,0BAA0B;oBACvC,OAAO,EAAE;wBACP,SAAS,EAAE;4BACT,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,wCAAwC;yBACtD;qBACF;iBACF;aACF;SACF;QAED,QAAQ,EAAE;YACR,WAAW,EAAE,4BAA4B;YACzC,QAAQ,EAAE;gBACR,KAAK,EAAE;oBACL,WAAW,EAAE,mCAAmC;oBAChD,OAAO,EAAE,CAAC,QAAQ,CAAC;oBACnB,OAAO,EAAE;wBACP,UAAU,EAAE;4BACV,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,KAAK;4BACd,WAAW,EAAE,+BAA+B;yBAC7C;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,+CAA+C;yBAC7D;qBACF;iBACF;gBACD,GAAG,EAAE;oBACH,WAAW,EAAE,kCAAkC;oBAC/C,UAAU,EAAE;wBACV,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE;qBAChE;oBACD,OAAO,EAAE;wBACP,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,wCAAwC;yBACtD;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,KAAK;4BACd,WAAW,EAAE,uBAAuB;yBACrC;qBACF;iBACF;gBACD,IAAI,EAAE;oBACJ,WAAW,EAAE,qCAAqC;oBAClD,OAAO,EAAE,CAAC,IAAI,CAAC;iBAChB;aACF;SACF;KACF;CACF,CAAA;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,MAA0B;IAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAkC,CAAA;IACtD,MAAM,GAAG,GAAG,MAAM,CAAC,UAAqC,CAAA;IAExD,sDAAsD;IACtD,MAAM,IAAI,GAAa,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IAC1C,qCAAqC;IACrC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,KAAe,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,GAAI,MAAM,CAAC,IAAiB,CAAC,CAAA;IAEvC,OAAO;QACL,CAAC,EAAE,IAAI;QACP,iBAAiB;QACjB,OAAO,EAAE,IAAI,CAAC,OAA6B;QAC3C,CAAC,EAAE,IAAI,CAAC,OAA6B;QACrC,OAAO,EAAE,IAAI,CAAC,OAA6B;QAC3C,CAAC,EAAE,IAAI,CAAC,OAA6B;QACrC,GAAG,EAAE,IAAI,CAAC,GAAyB;QACnC,CAAC,EAAE,IAAI,CAAC,GAAyB;QACjC,OAAO,EAAE,IAAI,CAAC,OAA6B;QAC3C,CAAC,EAAE,IAAI,CAAC,OAA6B;QACrC,GAAG,EAAE,IAAI,CAAC,GAAyB;QACnC,CAAC,EAAE,IAAI,CAAC,GAAyB;QACjC,OAAO,EAAE,IAAI,CAAC,OAA8B;QAC5C,CAAC,EAAE,IAAI,CAAC,OAA8B;QACtC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAwB;QACjD,IAAI,EAAE,IAAI,CAAC,IAA2B;QACtC,KAAK,EAAE,IAAI,CAAC,KAA4B;QACxC,GAAG,EAAE,IAAI,CAAC,GAA0B;QACpC,IAAI,EAAE,IAAI,CAAC,IAA0B;QACrC,CAAC,EAAE,IAAI,CAAC,IAA0B;QAClC,MAAM,EAAE,IAAI,CAAC,MAA4B;QACzC,CAAC,EAAE,IAAI,CAAC,MAA4B;QACpC,SAAS,EAAE,IAAI,CAAC,SAA+B;QAC/C,CAAC,EAAE,IAAI,CAAC,SAA+B;QACvC,MAAM,EAAE,IAAI,CAAC,MAA4B;QACzC,2BAA2B;QAC3B,KAAK,EAAE,IAAI,CAAC,KAA4B;QACxC,sBAAsB;QACtB,IAAI,EAAE,IAAI,CAAC,IAA0B;QACrC,MAAM,EAAE,IAAI,CAAC,MAA6B;QAC1C,UAAU,EAAE,IAAI,CAAC,UAAiC;QAClD,IAAI,EAAE,IAAI,CAAC,IAA2B;QACtC,SAAS,EAAE,IAAI,CAAC,SAA+B;QAC/C,GAAG,EAAE,IAAI,CAAC,GAAyB;QACnC,uBAAuB;QACvB,UAAU,EAAE,IAAI,CAAC,UAAU,CAAwB;QACnD,2BAA2B;QAC3B,IAAI,EAAE,IAAI,CAAC,IAA0B;QACrC,QAAQ,EAAE,IAAI,CAAC,QAA8B;QAC7C,KAAK,EAAE,IAAI,CAAC,KAA4B;QACxC,wBAAwB;QACxB,SAAS,EAAE,IAAI,CAAC,SAA+B;QAC/C,OAAO,EAAE,IAAI,CAAC,OAA6B;QAC3C,IAAI,EAAE,IAAI,CAAC,IAA0B;QACrC,SAAS,EAAE,IAAI,CAAC,SAA+B;QAC/C,KAAK,EAAE,IAAI,CAAC,KAA2B;QACvC,KAAK,EAAE,IAAI,CAAC,KAA2B;QACvC,KAAK,EAAE,IAAI,CAAC,KAA2B;QACvC,MAAM,EAAE,IAAI,CAAC,MAA4B;KAC1C,CAAA;AACH,CAAC;AAOD;;GAEG;AACH,SAAS,YAAY,CAAC,MAA0B,EAAE,MAA4B;IAC5E,MAAM,IAAI,GAAG,MAAM,CAAC,OAAkC,CAAA;IACtD,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;IAE9B,kBAAkB;IAClB,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,MAAM,EAAE,mBAAmB,IAAI,KAAK,CAAgB,CAAA;IACrF,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAW,CAAA;IAClF,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,EAAE,OAAO,CAAuB,CAAA;IACvE,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,CAAY,CAAA;IAClD,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAY,CAAA;IACpD,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,CAAY,CAAA;IAElD,oEAAoE;IACpE,MAAM,OAAO,GAAI,MAAkC,CAAC,OAAqD,CAAA;IACzG,MAAM,OAAO,GAAI,MAAkC,CAAC,OAAqD,CAAA;IACzG,MAAM,IAAI,GAAI,MAAkC,CAAC,IAAkD,CAAA;IAEnG,OAAO;QACL,IAAI;QACJ,MAAM;QACN,OAAO;QACP,OAAO;QACP,WAAW;QACX,OAAO;QACP,MAAM;QACN,UAAU;QACV,oBAAoB;QACpB,OAAO,EAAE,OAAO,IAAI,EAAE;QACtB,OAAO,EAAE,OAAO,IAAI,EAAE;QACtB,IAAI,EAAE,IAAI,IAAI,EAAE;KACjB,CAAA;AACH,CAAC;AAED,sBAAsB;AACtB,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,CAAA;AAEhC;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAkC,CAAA;IAEtD,gEAAgE;IAChE,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;QACrC,OAAM;IACR,CAAC;IAED,iBAAiB;IACjB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,EAAE,CAAC,CAAA;QAClC,OAAM;IACR,CAAC;IAED,wDAAwD;IACxD,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,EAAE,CAAC,CAAA;QAClC,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAEjC,qBAAqB;IACrB,IAAI,MAAM,GAAyB,IAAI,CAAA;IACvC,IAAI,CAAC;QACH,MAAM,GAAG,UAAU,EAAE,CAAA;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,2CAA2C;IAC7C,CAAC;IAED,gBAAgB;IAChB,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE5C,IAAI,CAAC;QACH,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,MAAM;gBACT,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;gBACtB,MAAK;YAEP,KAAK,KAAK;gBACR,MAAM,MAAM,CAAC,OAAO,CAAC,CAAA;gBACrB,MAAK;YAEP,KAAK,KAAK;gBACR,MAAM,MAAM,CAAC,OAAO,CAAC,CAAA;gBACrB,MAAK;YAEP,KAAK,QAAQ,CAAC;YACd,KAAK,IAAI,CAAC;YACV,KAAK,QAAQ;gBACX,MAAM,SAAS,CAAC,OAAO,CAAC,CAAA;gBACxB,MAAK;YAEP,KAAK,MAAM,CAAC;YACZ,KAAK,IAAI;gBACP,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;gBACtB,MAAK;YAEP,KAAK,QAAQ;gBACX,MAAM,SAAS,CAAC,OAAO,CAAC,CAAA;gBACxB,MAAK;YAEP,KAAK,MAAM;gBACT,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;gBACtB,MAAK;YAEP,KAAK,MAAM;gBACT,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;gBACtB,MAAK;YAEP,KAAK,MAAM;gBACT,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;gBACtB,MAAK;YAEP,KAAK,KAAK;gBACR,MAAM,MAAM,CAAC,OAAO,CAAC,CAAA;gBACrB,MAAK;YAEP,KAAK,UAAU,CAAC;YAChB,KAAK,KAAK;gBACR,MAAM,WAAW,CAAC,OAAO,CAAC,CAAA;gBAC1B,MAAK;YAEP,KAAK,MAAM;gBACT,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;gBACtB,MAAK;YAEP,KAAK,KAAK;gBACR,yEAAyE;gBACzE,IAAI,aAAa,EAAE,CAAC;oBAClB,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAA;oBAC1E,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAA;oBACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACjB,CAAC;gBACD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAA;gBACxD,MAAM,WAAW,EAAE,CAAA;gBACnB,MAAK;YAEP,KAAK,QAAQ;gBACX,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAA;gBACjD,MAAK;YAEP,KAAK,YAAY;gBACf,MAAM,YAAY,CAAC,OAAO,CAAC,CAAA;gBAC3B,MAAK;YAEP,KAAK,eAAe;gBAClB,MAAM,eAAe,CAAC,OAAO,CAAC,CAAA;gBAC9B,MAAK;YAEP,KAAK,aAAa;gBAChB,MAAM,aAAa,CAAC,OAAO,CAAC,CAAA;gBAC5B,MAAK;YAEP,KAAK,SAAS;gBACZ,MAAM,SAAS,CAAC,OAAO,CAAC,CAAA;gBACxB,MAAK;YAEP,KAAK,SAAS;gBACZ,MAAM,SAAS,CAAC,OAAO,CAAC,CAAA;gBACxB,MAAK;YAEP,KAAK,OAAO;gBACV,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAA;gBACvB,MAAK;YAEP,KAAK,UAAU;gBACb,MAAM,WAAW,CAAC,OAAO,CAAC,CAAA;gBAC1B,MAAK;YAEP;gBACE,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAA;gBAC5C,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAA;gBAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACpB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,UAAW,GAAa,CAAC,OAAO,EAAE,CAAC,CAAA;QACnD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAED,MAAM;AACN,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IACjB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,yEAAyE;AACzE,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,SAAS,EAA2C,MAAM,iBAAiB,CAAA;AAEpF,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,8DAA8D;AAC9D,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,iBAAiB,EAAE,IAAI,OAAO,CAAA;AAE7E,SAAS,iBAAiB;IACxB,IAAI,CAAC;QACH,iEAAiE;QACjE,IAAI,OAAe,CAAA;QACnB,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE,CAAC;YACrC,cAAc;YACd,OAAO,GAAG,SAAS,CAAA;QACrB,CAAC;aAAM,IAAI,OAAO,MAAM,CAAC,IAAI,EAAE,GAAG,KAAK,QAAQ,EAAE,CAAC;YAChD,cAAc;YACd,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QACxD,CAAC;aAAM,CAAC;YACN,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,4DAA4D;QAC5D,IAAI,GAAG,GAAG,OAAO,CAAA;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;YAC9C,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAyB,CAAA;gBACjF,OAAO,GAAG,CAAC,OAAO,CAAA;YACpB,CAAC;YACD,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACzB,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,eAAe;AACf,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAA;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAA;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD,mEAAmE;AACnE,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,MAAM,CAAA;AAE/D;;GAEG;AACH;;;;;;;;;;;;GAYG;AACH,MAAM,kBAAkB,GAAG;IACzB,GAAG,EAAE,SAAS,EAAyB,6BAA6B;IACpE,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,EAAG,0BAA0B;IACjE,IAAI,EAAE,SAAS,EAAwB,2CAA2C;IAClF,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAM,sCAAsC;CAC9E,CAAA;AAED,MAAM,SAAS,GAAc;IAC3B,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,wDAAwD;IACrE,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE,kBAAkB;IAE9B,2CAA2C;IAC3C,OAAO,EAAE;QACP,IAAI,EAAE;YACJ,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,WAAW;SACzB;QACD,OAAO,EAAE;YACP,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,cAAc;SAC5B;QACD,OAAO,EAAE;YACP,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,kDAAkD;SAChE;QACD,OAAO,EAAE;YACP,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,wDAAwD;SACtE;QACD,GAAG,EAAE;YACH,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,yCAAyC;SACvD;QACD,OAAO,EAAE;YACP,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,sBAAsB;SACpC;QACD,GAAG,EAAE;YACH,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,gCAAgC;SAC9C;QACD,OAAO,EAAE;YACP,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,uBAAuB;SACrC;QACD,GAAG,EAAE;YACH,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,mCAAmC;SACjD;QACD,SAAS,EAAE;YACT,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,gDAAgD;SAC9D;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,uBAAuB;SACrC;QACD,KAAK,EAAE;YACL,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,oBAAoB;SAClC;QACD,IAAI,EAAE;YACJ,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,WAAW;SACzB;QACD,MAAM,EAAE;YACN,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,kBAAkB;SAChC;QACD,SAAS,EAAE;YACT,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,sBAAsB;SACpC;QACD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,eAAe;SAC7B;KACF;IAED,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,WAAW,EAAE,yCAAyC;YACtD,OAAO,EAAE;gBACP,KAAK,EAAE;oBACL,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,uDAAuD;iBACrE;aACF;SACF;QAED,GAAG,EAAE;YACH,WAAW,EAAE,mCAAmC;YAChD,UAAU,EAAE;gBACV,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE;aAC9D;SACF;QAED,GAAG,EAAE;YACH,WAAW,EAAE,wEAAwE;YACrF,UAAU,EAAE;gBACV,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,+BAA+B,EAAE;gBAC9E,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,gCAAgC,EAAE;aAClF;SACF;QAED,MAAM,EAAE;YACN,WAAW,EAAE,gCAAgC;YAC7C,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;YACzB,UAAU,EAAE;gBACV,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE;aAC9D;SACF;QAED,IAAI,EAAE;YACJ,WAAW,EAAE,gCAAgC;YAC7C,OAAO,EAAE,CAAC,IAAI,CAAC;YACf,OAAO,EAAE;gBACP,UAAU,EAAE;oBACV,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,wCAAwC;iBACtD;aACF;SACF;QAED,MAAM,EAAE;YACN,WAAW,EAAE,uCAAuC;SACrD;QAED,IAAI,EAAE;YACJ,WAAW,EAAE,oCAAoC;SAClD;QAED,IAAI,EAAE;YACJ,WAAW,EAAE,2CAA2C;SACzD;QAED,IAAI,EAAE;YACJ,WAAW,EAAE,4BAA4B;SAC1C;QAED,GAAG,EAAE;YACH,WAAW,EAAE,yBAAyB;YACtC,QAAQ,EAAE;gBACR,QAAQ,EAAE;oBACR,WAAW,EAAE,+BAA+B;oBAC5C,OAAO,EAAE;wBACP,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,iCAAiC;yBAC/C;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,KAAK;4BACd,WAAW,EAAE,2CAA2C;yBACzD;wBACD,UAAU,EAAE;4BACV,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,KAAK;4BACd,WAAW,EAAE,uCAAuC;yBACrD;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,KAAK;4BACd,WAAW,EAAE,wBAAwB;yBACtC;wBACD,SAAS,EAAE;4BACT,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,iDAAiD;yBAC/D;wBACD,GAAG,EAAE;4BACH,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,uBAAuB;yBACrC;qBACF;iBACF;gBACD,MAAM,EAAE;oBACN,WAAW,EAAE,gCAAgC;oBAC7C,OAAO,EAAE;wBACP,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,oBAAoB;yBAClC;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,KAAK;4BACd,WAAW,EAAE,2CAA2C;yBACzD;qBACF;iBACF;gBACD,MAAM,EAAE;oBACN,WAAW,EAAE,kCAAkC;oBAC/C,OAAO,EAAE;wBACP,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,6DAA6D;yBAC3E;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,KAAK;4BACd,WAAW,EAAE,iDAAiD;yBAC/D;qBACF;iBACF;gBACD,IAAI,EAAE;oBACJ,WAAW,EAAE,eAAe;oBAC5B,OAAO,EAAE,CAAC,IAAI,CAAC;iBAChB;gBACD,IAAI,EAAE;oBACJ,WAAW,EAAE,eAAe;oBAC5B,OAAO,EAAE;wBACP,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,kBAAkB;yBAChC;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,KAAK;4BACd,WAAW,EAAE,2CAA2C;yBACzD;qBACF;iBACF;gBACD,MAAM,EAAE;oBACN,WAAW,EAAE,uBAAuB;iBACrC;aACF;SACF;QAED,QAAQ,EAAE;YACR,WAAW,EAAE,2BAA2B;YACxC,OAAO,EAAE,CAAC,KAAK,CAAC;SACjB;QAED,IAAI,EAAE;YACJ,WAAW,EAAE,qEAAqE;YAClF,UAAU,EAAE;gBACV,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,wBAAwB,EAAE;aACzE;SACF;QAED,GAAG,EAAE;YACH,WAAW,EAAE,yCAAyC;YACtD,OAAO,EAAE;gBACP,GAAG,EAAE;oBACH,IAAI,EAAE,QAAiB;oBACvB,WAAW,EAAE,4DAA4D;oBACzE,OAAO,EAAE,CAAC,GAAG,CAAC;iBACf;aACF;SACF;QAED,GAAG,EAAE;YACH,WAAW,EAAE,uDAAuD;YACpE,OAAO,EAAE,CAAC,IAAI,CAAC;YACf,UAAU,EAAE;gBACV,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,8CAA8C,EAAE;aACjG;SACF;QAED,MAAM,EAAE;YACN,WAAW,EAAE,sBAAsB;SACpC;QAED,YAAY,EAAE;YACZ,WAAW,EAAE,iCAAiC;SAC/C;QAED,eAAe,EAAE;YACf,WAAW,EAAE,oCAAoC;SAClD;QAED,aAAa,EAAE;YACb,WAAW,EAAE,2BAA2B;SACzC;QAED,SAAS,EAAE;YACT,WAAW,EAAE,4BAA4B;SAC1C;QAED,SAAS,EAAE;YACT,WAAW,EAAE,yBAAyB;SACvC;QAED,KAAK,EAAE;YACL,WAAW,EAAE,sBAAsB;YACnC,QAAQ,EAAE;gBACR,IAAI,EAAE;oBACJ,WAAW,EAAE,oBAAoB;oBACjC,OAAO,EAAE,CAAC,IAAI,CAAC;oBACf,OAAO,EAAE;wBACP,UAAU,EAAE;4BACV,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,KAAK;4BACd,WAAW,EAAE,8BAA8B;yBAC5C;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,gBAAgB;yBAC9B;wBACD,SAAS,EAAE;4BACT,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,uDAAuD;yBACrE;wBACD,OAAO,EAAE;4BACP,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,oDAAoD;yBAClE;wBACD,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,0CAA0C;yBACxD;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,6CAA6C;yBAC3D;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,8CAA8C;yBAC5D;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,yCAAyC;yBACvD;qBACF;iBACF;gBACD,IAAI,EAAE;oBACJ,WAAW,EAAE,gCAAgC;oBAC7C,UAAU,EAAE;wBACV,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,gBAAgB,EAAE;qBAC9D;iBACF;gBACD,KAAK,EAAE;oBACL,WAAW,EAAE,uBAAuB;iBACrC;gBACD,OAAO,EAAE;oBACP,WAAW,EAAE,0BAA0B;oBACvC,OAAO,EAAE;wBACP,SAAS,EAAE;4BACT,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,wCAAwC;yBACtD;qBACF;iBACF;aACF;SACF;QAED,QAAQ,EAAE;YACR,WAAW,EAAE,4BAA4B;YACzC,QAAQ,EAAE;gBACR,KAAK,EAAE;oBACL,WAAW,EAAE,mCAAmC;oBAChD,OAAO,EAAE,CAAC,QAAQ,CAAC;oBACnB,OAAO,EAAE;wBACP,UAAU,EAAE;4BACV,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,KAAK;4BACd,WAAW,EAAE,+BAA+B;yBAC7C;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,+CAA+C;yBAC7D;qBACF;iBACF;gBACD,GAAG,EAAE;oBACH,WAAW,EAAE,kCAAkC;oBAC/C,UAAU,EAAE;wBACV,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE;qBAChE;oBACD,OAAO,EAAE;wBACP,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,wCAAwC;yBACtD;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,KAAK;4BACd,WAAW,EAAE,uBAAuB;yBACrC;qBACF;iBACF;gBACD,IAAI,EAAE;oBACJ,WAAW,EAAE,qCAAqC;oBAClD,OAAO,EAAE,CAAC,IAAI,CAAC;iBAChB;aACF;SACF;KACF;CACF,CAAA;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,MAA0B;IAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAkC,CAAA;IACtD,MAAM,GAAG,GAAG,MAAM,CAAC,UAAqC,CAAA;IAExD,sDAAsD;IACtD,MAAM,IAAI,GAAa,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IAC1C,qCAAqC;IACrC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,KAAe,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,GAAI,MAAM,CAAC,IAAiB,CAAC,CAAA;IAEvC,OAAO;QACL,CAAC,EAAE,IAAI;QACP,iBAAiB;QACjB,OAAO,EAAE,IAAI,CAAC,OAA6B;QAC3C,CAAC,EAAE,IAAI,CAAC,OAA6B;QACrC,OAAO,EAAE,IAAI,CAAC,OAA6B;QAC3C,CAAC,EAAE,IAAI,CAAC,OAA6B;QACrC,GAAG,EAAE,IAAI,CAAC,GAAyB;QACnC,CAAC,EAAE,IAAI,CAAC,GAAyB;QACjC,OAAO,EAAE,IAAI,CAAC,OAA6B;QAC3C,CAAC,EAAE,IAAI,CAAC,OAA6B;QACrC,GAAG,EAAE,IAAI,CAAC,GAAyB;QACnC,CAAC,EAAE,IAAI,CAAC,GAAyB;QACjC,OAAO,EAAE,IAAI,CAAC,OAA8B;QAC5C,CAAC,EAAE,IAAI,CAAC,OAA8B;QACtC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAwB;QACjD,IAAI,EAAE,IAAI,CAAC,IAA2B;QACtC,KAAK,EAAE,IAAI,CAAC,KAA4B;QACxC,GAAG,EAAE,IAAI,CAAC,GAA0B;QACpC,IAAI,EAAE,IAAI,CAAC,IAA0B;QACrC,CAAC,EAAE,IAAI,CAAC,IAA0B;QAClC,MAAM,EAAE,IAAI,CAAC,MAA4B;QACzC,CAAC,EAAE,IAAI,CAAC,MAA4B;QACpC,SAAS,EAAE,IAAI,CAAC,SAA+B;QAC/C,CAAC,EAAE,IAAI,CAAC,SAA+B;QACvC,MAAM,EAAE,IAAI,CAAC,MAA4B;QACzC,2BAA2B;QAC3B,KAAK,EAAE,IAAI,CAAC,KAA4B;QACxC,sBAAsB;QACtB,IAAI,EAAE,IAAI,CAAC,IAA0B;QACrC,MAAM,EAAE,IAAI,CAAC,MAA6B;QAC1C,UAAU,EAAE,IAAI,CAAC,UAAiC;QAClD,IAAI,EAAE,IAAI,CAAC,IAA2B;QACtC,SAAS,EAAE,IAAI,CAAC,SAA+B;QAC/C,GAAG,EAAE,IAAI,CAAC,GAAyB;QACnC,uBAAuB;QACvB,UAAU,EAAE,IAAI,CAAC,UAAU,CAAwB;QACnD,2BAA2B;QAC3B,IAAI,EAAE,IAAI,CAAC,IAA0B;QACrC,QAAQ,EAAE,IAAI,CAAC,QAA8B;QAC7C,KAAK,EAAE,IAAI,CAAC,KAA4B;QACxC,wBAAwB;QACxB,SAAS,EAAE,IAAI,CAAC,SAA+B;QAC/C,OAAO,EAAE,IAAI,CAAC,OAA6B;QAC3C,IAAI,EAAE,IAAI,CAAC,IAA0B;QACrC,SAAS,EAAE,IAAI,CAAC,SAA+B;QAC/C,KAAK,EAAE,IAAI,CAAC,KAA2B;QACvC,KAAK,EAAE,IAAI,CAAC,KAA2B;QACvC,KAAK,EAAE,IAAI,CAAC,KAA2B;QACvC,MAAM,EAAE,IAAI,CAAC,MAA4B;KAC1C,CAAA;AACH,CAAC;AAOD;;GAEG;AACH,SAAS,YAAY,CAAC,MAA0B,EAAE,MAA4B;IAC5E,MAAM,IAAI,GAAG,MAAM,CAAC,OAAkC,CAAA;IACtD,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;IAE9B,kBAAkB;IAClB,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,MAAM,EAAE,mBAAmB,IAAI,KAAK,CAAgB,CAAA;IACrF,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAW,CAAA;IAClF,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,EAAE,OAAO,CAAuB,CAAA;IACvE,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,CAAY,CAAA;IAClD,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAY,CAAA;IACpD,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,CAAY,CAAA;IAElD,oEAAoE;IACpE,MAAM,OAAO,GAAI,MAAkC,CAAC,OAAqD,CAAA;IACzG,MAAM,OAAO,GAAI,MAAkC,CAAC,OAAqD,CAAA;IACzG,MAAM,IAAI,GAAI,MAAkC,CAAC,IAAkD,CAAA;IAEnG,OAAO;QACL,IAAI;QACJ,MAAM;QACN,OAAO;QACP,OAAO;QACP,WAAW;QACX,OAAO;QACP,MAAM;QACN,UAAU;QACV,oBAAoB;QACpB,OAAO,EAAE,OAAO,IAAI,EAAE;QACtB,OAAO,EAAE,OAAO,IAAI,EAAE;QACtB,IAAI,EAAE,IAAI,IAAI,EAAE;KACjB,CAAA;AACH,CAAC;AAED,sBAAsB;AACtB,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,CAAA;AAEhC;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAkC,CAAA;IAEtD,gEAAgE;IAChE,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;QACrC,OAAM;IACR,CAAC;IAED,iBAAiB;IACjB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,EAAE,CAAC,CAAA;QAClC,OAAM;IACR,CAAC;IAED,wDAAwD;IACxD,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,EAAE,CAAC,CAAA;QAClC,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAEjC,qBAAqB;IACrB,IAAI,MAAM,GAAyB,IAAI,CAAA;IACvC,IAAI,CAAC;QACH,MAAM,GAAG,UAAU,EAAE,CAAA;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,2CAA2C;IAC7C,CAAC;IAED,gBAAgB;IAChB,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE5C,IAAI,CAAC;QACH,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,MAAM;gBACT,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;gBACtB,MAAK;YAEP,KAAK,KAAK;gBACR,MAAM,MAAM,CAAC,OAAO,CAAC,CAAA;gBACrB,MAAK;YAEP,KAAK,KAAK;gBACR,MAAM,MAAM,CAAC,OAAO,CAAC,CAAA;gBACrB,MAAK;YAEP,KAAK,QAAQ,CAAC;YACd,KAAK,IAAI,CAAC;YACV,KAAK,QAAQ;gBACX,MAAM,SAAS,CAAC,OAAO,CAAC,CAAA;gBACxB,MAAK;YAEP,KAAK,MAAM,CAAC;YACZ,KAAK,IAAI;gBACP,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;gBACtB,MAAK;YAEP,KAAK,QAAQ;gBACX,MAAM,SAAS,CAAC,OAAO,CAAC,CAAA;gBACxB,MAAK;YAEP,KAAK,MAAM;gBACT,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;gBACtB,MAAK;YAEP,KAAK,MAAM;gBACT,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;gBACtB,MAAK;YAEP,KAAK,MAAM;gBACT,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;gBACtB,MAAK;YAEP,KAAK,KAAK;gBACR,MAAM,MAAM,CAAC,OAAO,CAAC,CAAA;gBACrB,MAAK;YAEP,KAAK,UAAU,CAAC;YAChB,KAAK,KAAK;gBACR,MAAM,WAAW,CAAC,OAAO,CAAC,CAAA;gBAC1B,MAAK;YAEP,KAAK,MAAM;gBACT,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;gBACtB,MAAK;YAEP,KAAK,KAAK;gBACR,yEAAyE;gBACzE,IAAI,aAAa,EAAE,CAAC;oBAClB,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAA;oBAC1E,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAA;oBACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACjB,CAAC;gBACD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAA;gBACxD,gEAAgE;gBAChE,MAAM,WAAW,CAAC;oBAChB,OAAO,EAAE,IAAI,CAAC,OAA6B;oBAC3C,GAAG,EAAE,IAAI,CAAC,GAAyB;oBACnC,OAAO,EAAE,IAAI,CAAC,OAA8B;iBAC7C,CAAC,CAAA;gBACF,MAAK;YAEP,KAAK,KAAK,CAAC;YACX,KAAK,IAAI;gBACP,kEAAkE;gBAClE,IAAI,aAAa,EAAE,CAAC;oBAClB,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAA;oBACnE,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAA;oBACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACjB,CAAC;gBACD,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAA;gBAC7C,QAAQ,SAAS,EAAE,CAAC;oBAClB,KAAK,WAAW,CAAC;oBACjB,KAAK,SAAS;wBACZ,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAA;wBACzD,MAAM,cAAc,CAAC;4BACnB,WAAW,EAAE,OAAO,CAAC,WAAW;4BAChC,OAAO,EAAE,OAAO,CAAC,OAAO;4BACxB,OAAO,EAAE,OAAO,CAAC,OAAO;yBACzB,CAAC,CAAA;wBACF,MAAK;oBACP,KAAK,OAAO,CAAC;oBACb,KAAK,MAAM;wBACT,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAA;wBAC3D,MAAM,gBAAgB,CAAC;4BACrB,WAAW,EAAE,OAAO,CAAC,WAAW;4BAChC,OAAO,EAAE,OAAO,CAAC,OAAO;4BACxB,OAAO,EAAE,OAAO,CAAC,OAAO;yBACzB,CAAC,CAAA;wBACF,MAAK;oBACP,KAAK,MAAM,CAAC;oBACZ,KAAK,KAAK;wBACR,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAA;wBAC1D,MAAM,eAAe,CAAC;4BACpB,OAAO,EAAE,OAAO,CAAC,OAAO;yBACzB,CAAC,CAAA;wBACF,MAAK;oBACP,KAAK,MAAM,CAAC;oBACZ;wBACE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAA;wBACxD,MAAM,aAAa,CAAC;4BAClB,WAAW,EAAE,OAAO,CAAC,WAAW;4BAChC,OAAO,EAAE,OAAO,CAAC,OAAO;4BACxB,OAAO,EAAE,OAAO,CAAC,OAAO;4BACxB,MAAM,EAAE,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;yBACrD,CAAC,CAAA;wBACF,MAAK;gBACT,CAAC;gBACD,MAAK;YAEP,KAAK,QAAQ;gBACX,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAA;gBACjD,MAAK;YAEP,KAAK,YAAY;gBACf,MAAM,YAAY,CAAC,OAAO,CAAC,CAAA;gBAC3B,MAAK;YAEP,KAAK,eAAe;gBAClB,MAAM,eAAe,CAAC,OAAO,CAAC,CAAA;gBAC9B,MAAK;YAEP,KAAK,aAAa;gBAChB,MAAM,aAAa,CAAC,OAAO,CAAC,CAAA;gBAC5B,MAAK;YAEP,KAAK,SAAS;gBACZ,MAAM,SAAS,CAAC,OAAO,CAAC,CAAA;gBACxB,MAAK;YAEP,KAAK,SAAS;gBACZ,MAAM,SAAS,CAAC,OAAO,CAAC,CAAA;gBACxB,MAAK;YAEP,KAAK,OAAO;gBACV,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAA;gBACvB,MAAK;YAEP,KAAK,UAAU;gBACb,MAAM,WAAW,CAAC,OAAO,CAAC,CAAA;gBAC1B,MAAK;YAEP;gBACE,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAA;gBAC5C,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAA;gBAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACpB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,UAAW,GAAa,CAAC,OAAO,EAAE,CAAC,CAAA;QACnD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAED,MAAM;AACN,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IACjB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vaulter TUI Audit Log Viewer
|
|
3
|
+
*
|
|
4
|
+
* Interactive terminal interface for viewing and filtering audit logs
|
|
5
|
+
*/
|
|
6
|
+
import type { Environment } from '../../types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Start the Audit Viewer TUI
|
|
9
|
+
*/
|
|
10
|
+
export declare function startAuditViewer(options: {
|
|
11
|
+
environment?: Environment;
|
|
12
|
+
service?: string;
|
|
13
|
+
verbose?: boolean;
|
|
14
|
+
}): Promise<void>;
|
|
15
|
+
//# sourceMappingURL=audit-viewer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit-viewer.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/audit-viewer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAqBH,OAAO,KAAK,EAAiB,WAAW,EAA2C,MAAM,gBAAgB,CAAA;AAmdzG;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE;IAC9C,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBhB"}
|
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vaulter TUI Audit Log Viewer
|
|
3
|
+
*
|
|
4
|
+
* Interactive terminal interface for viewing and filtering audit logs
|
|
5
|
+
*/
|
|
6
|
+
import { render, Box, Text, Spacer, AppShell, StatusBar, Table, Badge, Spinner, Select, TextInput, useState, useEffect, useHotkeys, useApp, setTheme, tokyoNightTheme, } from 'tuiuiu.js';
|
|
7
|
+
import { loadConfig, getProjectName } from '../../lib/config-loader.js';
|
|
8
|
+
import { AuditLogger } from '../../lib/audit.js';
|
|
9
|
+
import { resolveBackendUrls, loadEncryptionKey } from '../../index.js';
|
|
10
|
+
const OPERATIONS = [
|
|
11
|
+
{ value: 'all', label: 'All Operations' },
|
|
12
|
+
{ value: 'set', label: 'Set' },
|
|
13
|
+
{ value: 'delete', label: 'Delete' },
|
|
14
|
+
{ value: 'sync', label: 'Sync' },
|
|
15
|
+
{ value: 'push', label: 'Push' },
|
|
16
|
+
{ value: 'rotate', label: 'Rotate' },
|
|
17
|
+
{ value: 'deleteAll', label: 'Delete All' },
|
|
18
|
+
];
|
|
19
|
+
const SOURCES = [
|
|
20
|
+
{ value: 'all', label: 'All Sources' },
|
|
21
|
+
{ value: 'cli', label: 'CLI' },
|
|
22
|
+
{ value: 'mcp', label: 'MCP' },
|
|
23
|
+
{ value: 'api', label: 'API' },
|
|
24
|
+
{ value: 'loader', label: 'Loader' },
|
|
25
|
+
];
|
|
26
|
+
/**
|
|
27
|
+
* Header component with audit info
|
|
28
|
+
*/
|
|
29
|
+
function AuditHeader(props) {
|
|
30
|
+
return Box({ flexDirection: 'row', paddingX: 1, alignItems: 'center' }, Text({ color: 'primary', bold: true }, '◆ VAULTER AUDIT'), Text({ color: 'muted' }, ' │ '), Text({ bold: true }, props.project), Spacer({}), Badge({ label: `${props.count} entries`, color: 'info' }), Text({ color: 'muted' }, ' '), Badge({ label: props.environment.toUpperCase(), color: getEnvColor(props.environment) }));
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Get color for environment badge
|
|
34
|
+
*/
|
|
35
|
+
function getEnvColor(env) {
|
|
36
|
+
switch (env.toLowerCase()) {
|
|
37
|
+
case 'prd':
|
|
38
|
+
case 'prod':
|
|
39
|
+
case 'production':
|
|
40
|
+
return 'error';
|
|
41
|
+
case 'stg':
|
|
42
|
+
case 'staging':
|
|
43
|
+
return 'warning';
|
|
44
|
+
case 'dev':
|
|
45
|
+
case 'development':
|
|
46
|
+
return 'success';
|
|
47
|
+
default:
|
|
48
|
+
return 'info';
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Get color for operation badge
|
|
53
|
+
*/
|
|
54
|
+
function getOpColor(op) {
|
|
55
|
+
switch (op) {
|
|
56
|
+
case 'set':
|
|
57
|
+
return 'success';
|
|
58
|
+
case 'delete':
|
|
59
|
+
case 'deleteAll':
|
|
60
|
+
return 'error';
|
|
61
|
+
case 'sync':
|
|
62
|
+
case 'push':
|
|
63
|
+
return 'info';
|
|
64
|
+
case 'rotate':
|
|
65
|
+
return 'warning';
|
|
66
|
+
default:
|
|
67
|
+
return 'info';
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Format timestamp for display
|
|
72
|
+
*/
|
|
73
|
+
function formatTimestamp(date) {
|
|
74
|
+
const d = typeof date === 'string' ? new Date(date) : date;
|
|
75
|
+
if (isNaN(d.getTime()))
|
|
76
|
+
return '-';
|
|
77
|
+
const now = new Date();
|
|
78
|
+
const diffMs = now.getTime() - d.getTime();
|
|
79
|
+
const diffMins = Math.floor(diffMs / (1000 * 60));
|
|
80
|
+
const diffHours = Math.floor(diffMs / (1000 * 60 * 60));
|
|
81
|
+
const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24));
|
|
82
|
+
if (diffMins < 1)
|
|
83
|
+
return 'just now';
|
|
84
|
+
if (diffMins < 60)
|
|
85
|
+
return `${diffMins}m ago`;
|
|
86
|
+
if (diffHours < 24)
|
|
87
|
+
return `${diffHours}h ago`;
|
|
88
|
+
if (diffDays < 7)
|
|
89
|
+
return `${diffDays}d ago`;
|
|
90
|
+
return d.toLocaleDateString('en-US', { month: 'short', day: 'numeric' });
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Entry to row conversion
|
|
94
|
+
*/
|
|
95
|
+
function entryToRow(entry) {
|
|
96
|
+
return {
|
|
97
|
+
time: formatTimestamp(entry.timestamp),
|
|
98
|
+
user: entry.user.length > 12 ? entry.user.substring(0, 10) + '..' : entry.user,
|
|
99
|
+
op: entry.operation,
|
|
100
|
+
key: entry.key.length > 25 ? entry.key.substring(0, 23) + '..' : entry.key,
|
|
101
|
+
env: entry.environment,
|
|
102
|
+
src: entry.source,
|
|
103
|
+
id: entry.id
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Detail Panel for selected entry
|
|
108
|
+
*/
|
|
109
|
+
function DetailPanel(props) {
|
|
110
|
+
if (!props.entry) {
|
|
111
|
+
return Box({ padding: 1, borderStyle: 'round', borderColor: 'border' }, Text({ color: 'muted', dim: true }, 'Select an entry to view details'));
|
|
112
|
+
}
|
|
113
|
+
const e = props.entry;
|
|
114
|
+
return Box({ flexDirection: 'column', padding: 1, borderStyle: 'round', borderColor: 'border', gap: 0 }, Box({ flexDirection: 'row', gap: 1 }, Text({ color: 'muted' }, 'ID:'), Text({ color: 'primary' }, e.id)), Box({ flexDirection: 'row', gap: 1 }, Text({ color: 'muted' }, 'Time:'), Text({}, e.timestamp instanceof Date ? e.timestamp.toISOString() : String(e.timestamp))), Box({ flexDirection: 'row', gap: 1 }, Text({ color: 'muted' }, 'User:'), Text({ bold: true }, e.user)), Box({ flexDirection: 'row', gap: 1 }, Text({ color: 'muted' }, 'Operation:'), Badge({ label: e.operation.toUpperCase(), color: getOpColor(e.operation) })), Box({ flexDirection: 'row', gap: 1 }, Text({ color: 'muted' }, 'Key:'), Text({ color: 'warning' }, e.key)), e.previousValue ? Box({ flexDirection: 'row', gap: 1 }, Text({ color: 'muted' }, 'Previous:'), Text({ color: 'error', dim: true }, e.previousValue)) : null, e.newValue ? Box({ flexDirection: 'row', gap: 1 }, Text({ color: 'muted' }, 'New:'), Text({ color: 'success' }, e.newValue)) : null);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Filter Bar component
|
|
118
|
+
*/
|
|
119
|
+
function FilterBar(props) {
|
|
120
|
+
if (props.activeFilter === 'none') {
|
|
121
|
+
return Box({ flexDirection: 'row', paddingX: 1, gap: 2 }, Text({ color: 'muted', dim: true }, 'Filters:'), props.operation !== 'all'
|
|
122
|
+
? Badge({ label: `op:${props.operation}`, color: 'info' })
|
|
123
|
+
: null, props.source !== 'all'
|
|
124
|
+
? Badge({ label: `src:${props.source}`, color: 'info' })
|
|
125
|
+
: null, props.searchQuery
|
|
126
|
+
? Badge({ label: `"${props.searchQuery}"`, color: 'warning' })
|
|
127
|
+
: null, props.operation === 'all' && props.source === 'all' && !props.searchQuery
|
|
128
|
+
? Text({ color: 'muted', dim: true }, 'none')
|
|
129
|
+
: null);
|
|
130
|
+
}
|
|
131
|
+
if (props.activeFilter === 'operation') {
|
|
132
|
+
return Box({ paddingX: 1 }, Select({
|
|
133
|
+
items: OPERATIONS,
|
|
134
|
+
initialValue: props.operation,
|
|
135
|
+
onChange: (val) => {
|
|
136
|
+
props.onOperationChange(val);
|
|
137
|
+
props.onFilterClose();
|
|
138
|
+
},
|
|
139
|
+
onCancel: props.onFilterClose,
|
|
140
|
+
maxVisible: 7
|
|
141
|
+
}));
|
|
142
|
+
}
|
|
143
|
+
if (props.activeFilter === 'source') {
|
|
144
|
+
return Box({ paddingX: 1 }, Select({
|
|
145
|
+
items: SOURCES,
|
|
146
|
+
initialValue: props.source,
|
|
147
|
+
onChange: (val) => {
|
|
148
|
+
props.onSourceChange(val);
|
|
149
|
+
props.onFilterClose();
|
|
150
|
+
},
|
|
151
|
+
onCancel: props.onFilterClose,
|
|
152
|
+
maxVisible: 5
|
|
153
|
+
}));
|
|
154
|
+
}
|
|
155
|
+
if (props.activeFilter === 'search') {
|
|
156
|
+
return Box({ paddingX: 1, flexDirection: 'row', gap: 1 }, Text({ color: 'muted' }, 'Search key:'), TextInput({
|
|
157
|
+
initialValue: props.searchQuery,
|
|
158
|
+
placeholder: 'Type to filter by key...',
|
|
159
|
+
width: 30,
|
|
160
|
+
onSubmit: (val) => {
|
|
161
|
+
props.onSearchChange(val);
|
|
162
|
+
props.onFilterClose();
|
|
163
|
+
}
|
|
164
|
+
}));
|
|
165
|
+
}
|
|
166
|
+
return null;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Main Audit Viewer component
|
|
170
|
+
*/
|
|
171
|
+
function AuditViewer(props) {
|
|
172
|
+
const app = useApp();
|
|
173
|
+
const [loading, setLoading] = useState(true);
|
|
174
|
+
const [entries, setEntries] = useState([]);
|
|
175
|
+
const [rows, setRows] = useState([]);
|
|
176
|
+
const [error, setError] = useState(null);
|
|
177
|
+
const [selectedIndex, setSelectedIndex] = useState(0);
|
|
178
|
+
const [logger, setLogger] = useState(null);
|
|
179
|
+
// Filters
|
|
180
|
+
const [activeFilter, setActiveFilter] = useState('none');
|
|
181
|
+
const [opFilter, setOpFilter] = useState('all');
|
|
182
|
+
const [srcFilter, setSrcFilter] = useState('all');
|
|
183
|
+
const [searchQuery, setSearchQuery] = useState('');
|
|
184
|
+
const project = getProjectName(props.config);
|
|
185
|
+
const isFilterActive = activeFilter() !== 'none';
|
|
186
|
+
// Register hotkeys (disabled when filter is open)
|
|
187
|
+
useHotkeys('q', () => app.exit(), { description: 'Quit' });
|
|
188
|
+
useHotkeys('r', () => { if (!isFilterActive)
|
|
189
|
+
loadEntries(); }, { description: 'Refresh' });
|
|
190
|
+
useHotkeys('o', () => { if (!isFilterActive)
|
|
191
|
+
setActiveFilter('operation'); }, { description: 'Filter operation' });
|
|
192
|
+
useHotkeys('s', () => { if (!isFilterActive)
|
|
193
|
+
setActiveFilter('source'); }, { description: 'Filter source' });
|
|
194
|
+
useHotkeys('/', () => { if (!isFilterActive)
|
|
195
|
+
setActiveFilter('search'); }, { description: 'Search' });
|
|
196
|
+
useHotkeys('c', () => {
|
|
197
|
+
if (!isFilterActive) {
|
|
198
|
+
setOpFilter('all');
|
|
199
|
+
setSrcFilter('all');
|
|
200
|
+
setSearchQuery('');
|
|
201
|
+
}
|
|
202
|
+
}, { description: 'Clear filters' });
|
|
203
|
+
useHotkeys('escape', () => setActiveFilter('none'), { description: 'Close filter' });
|
|
204
|
+
// Navigation
|
|
205
|
+
useHotkeys('j', () => {
|
|
206
|
+
if (!isFilterActive)
|
|
207
|
+
setSelectedIndex(i => Math.min(i + 1, rows().length - 1));
|
|
208
|
+
}, { description: 'Down' });
|
|
209
|
+
useHotkeys('k', () => {
|
|
210
|
+
if (!isFilterActive)
|
|
211
|
+
setSelectedIndex(i => Math.max(i - 1, 0));
|
|
212
|
+
}, { description: 'Up' });
|
|
213
|
+
useHotkeys('down', () => {
|
|
214
|
+
if (!isFilterActive)
|
|
215
|
+
setSelectedIndex(i => Math.min(i + 1, rows().length - 1));
|
|
216
|
+
}, { description: 'Down' });
|
|
217
|
+
useHotkeys('up', () => {
|
|
218
|
+
if (!isFilterActive)
|
|
219
|
+
setSelectedIndex(i => Math.max(i - 1, 0));
|
|
220
|
+
}, { description: 'Up' });
|
|
221
|
+
// Initialize logger
|
|
222
|
+
async function initLogger() {
|
|
223
|
+
const urls = resolveBackendUrls(props.config);
|
|
224
|
+
if (urls.length === 0) {
|
|
225
|
+
throw new Error('No backend URL configured');
|
|
226
|
+
}
|
|
227
|
+
const passphrase = await loadEncryptionKey(props.config) || undefined;
|
|
228
|
+
const newLogger = new AuditLogger(props.config.audit);
|
|
229
|
+
await newLogger.connect(urls[0], passphrase);
|
|
230
|
+
setLogger(newLogger);
|
|
231
|
+
return newLogger;
|
|
232
|
+
}
|
|
233
|
+
// Load entries
|
|
234
|
+
async function loadEntries() {
|
|
235
|
+
setLoading(true);
|
|
236
|
+
setError(null);
|
|
237
|
+
try {
|
|
238
|
+
let lg = logger();
|
|
239
|
+
if (!lg) {
|
|
240
|
+
lg = await initLogger();
|
|
241
|
+
}
|
|
242
|
+
const queryOpts = {
|
|
243
|
+
project,
|
|
244
|
+
environment: props.environment,
|
|
245
|
+
service: props.service,
|
|
246
|
+
limit: 100
|
|
247
|
+
};
|
|
248
|
+
if (opFilter() !== 'all') {
|
|
249
|
+
queryOpts.operation = opFilter();
|
|
250
|
+
}
|
|
251
|
+
if (srcFilter() !== 'all') {
|
|
252
|
+
queryOpts.source = srcFilter();
|
|
253
|
+
}
|
|
254
|
+
if (searchQuery()) {
|
|
255
|
+
queryOpts.key = searchQuery();
|
|
256
|
+
}
|
|
257
|
+
const result = await lg.query(queryOpts);
|
|
258
|
+
setEntries(result);
|
|
259
|
+
setRows(result.map(entryToRow));
|
|
260
|
+
setSelectedIndex(0);
|
|
261
|
+
}
|
|
262
|
+
catch (err) {
|
|
263
|
+
setError(err.message);
|
|
264
|
+
}
|
|
265
|
+
finally {
|
|
266
|
+
setLoading(false);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
// Reload when filters change
|
|
270
|
+
useEffect(() => {
|
|
271
|
+
loadEntries();
|
|
272
|
+
});
|
|
273
|
+
// Get selected entry
|
|
274
|
+
const selectedEntry = entries()[selectedIndex()] || null;
|
|
275
|
+
// Status bar content
|
|
276
|
+
const statusBar = StatusBar({
|
|
277
|
+
left: Text({ color: 'muted' }, `${rows().length} entries`),
|
|
278
|
+
center: error() ? Text({ color: 'error' }, error()) : undefined,
|
|
279
|
+
right: Text({ color: 'muted', dim: true }, 'q:quit r:refresh o:op s:src /:search c:clear')
|
|
280
|
+
});
|
|
281
|
+
// Table columns
|
|
282
|
+
const columns = [
|
|
283
|
+
{ key: 'time', header: 'Time', width: 10 },
|
|
284
|
+
{ key: 'user', header: 'User', width: 12 },
|
|
285
|
+
{ key: 'op', header: 'Op', width: 8 },
|
|
286
|
+
{ key: 'key', header: 'Key' },
|
|
287
|
+
{ key: 'env', header: 'Env', width: 5 },
|
|
288
|
+
{ key: 'src', header: 'Src', width: 6 }
|
|
289
|
+
];
|
|
290
|
+
// Main content
|
|
291
|
+
const content = loading()
|
|
292
|
+
? Box({ justifyContent: 'center', alignItems: 'center', height: '100%', flexDirection: 'row' }, Spinner({ style: 'dots', color: 'primary' }), Text({ color: 'muted' }, ' Loading audit log...'))
|
|
293
|
+
: error()
|
|
294
|
+
? Box({ justifyContent: 'center', alignItems: 'center', height: '100%', flexDirection: 'column', gap: 1 }, Text({ color: 'error', bold: true }, '✗ Error'), Text({ color: 'muted' }, error()))
|
|
295
|
+
: rows().length === 0
|
|
296
|
+
? Box({ justifyContent: 'center', alignItems: 'center', height: '100%', flexDirection: 'column', gap: 1 }, Text({ color: 'muted' }, 'No audit entries found'), Text({ color: 'muted', dim: true }, 'Try changing filters or running some commands first'))
|
|
297
|
+
: Box({ flexDirection: 'column', gap: 1, height: '100%' }, FilterBar({
|
|
298
|
+
activeFilter: activeFilter(),
|
|
299
|
+
operation: opFilter(),
|
|
300
|
+
source: srcFilter(),
|
|
301
|
+
searchQuery: searchQuery(),
|
|
302
|
+
onOperationChange: setOpFilter,
|
|
303
|
+
onSourceChange: setSrcFilter,
|
|
304
|
+
onSearchChange: setSearchQuery,
|
|
305
|
+
onFilterClose: () => setActiveFilter('none')
|
|
306
|
+
}), Box({ flexDirection: 'row', gap: 1, flexGrow: 1 }, Box({ flexGrow: 1 }, Table({
|
|
307
|
+
columns,
|
|
308
|
+
data: rows(),
|
|
309
|
+
borderStyle: 'round'
|
|
310
|
+
})), Box({ width: 40 }, DetailPanel({ entry: selectedEntry }))));
|
|
311
|
+
return AppShell({
|
|
312
|
+
header: AuditHeader({
|
|
313
|
+
project,
|
|
314
|
+
environment: props.environment,
|
|
315
|
+
count: rows().length
|
|
316
|
+
}),
|
|
317
|
+
headerHeight: 1,
|
|
318
|
+
footer: statusBar,
|
|
319
|
+
footerHeight: 1,
|
|
320
|
+
dividers: true,
|
|
321
|
+
dividerStyle: 'line',
|
|
322
|
+
dividerColor: 'border',
|
|
323
|
+
padding: 0,
|
|
324
|
+
children: Box({ padding: 1 }, content)
|
|
325
|
+
});
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Start the Audit Viewer TUI
|
|
329
|
+
*/
|
|
330
|
+
export async function startAuditViewer(options) {
|
|
331
|
+
// Load config
|
|
332
|
+
const config = loadConfig();
|
|
333
|
+
if (!config || !config.project) {
|
|
334
|
+
throw new Error('No .vaulter/config.yaml found. Run "vaulter init" first.');
|
|
335
|
+
}
|
|
336
|
+
// Set theme
|
|
337
|
+
setTheme(tokyoNightTheme);
|
|
338
|
+
// Determine environment
|
|
339
|
+
const environment = options.environment || config.default_environment || 'dev';
|
|
340
|
+
// Render the viewer
|
|
341
|
+
render(() => AuditViewer({
|
|
342
|
+
config,
|
|
343
|
+
environment,
|
|
344
|
+
service: options.service,
|
|
345
|
+
verbose: options.verbose
|
|
346
|
+
}));
|
|
347
|
+
}
|
|
348
|
+
//# sourceMappingURL=audit-viewer.js.map
|