@hartvig/developer-control-center 0.8.7 → 0.8.8
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/.developer-control-center/metrics.json +1 -1
- package/.developer-control-center/status.json +1 -1
- package/.developer-control-center/timings.jsonl +10 -0
- package/dist/cli.js +1 -1
- package/dist/core/runtime.d.ts.map +1 -1
- package/dist/core/runtime.js +0 -1
- package/dist/core/runtime.js.map +1 -1
- package/dist/core/task-runner.d.ts.map +1 -1
- package/dist/core/task-runner.js +58 -21
- package/dist/core/task-runner.js.map +1 -1
- package/dist/ui/app.d.ts.map +1 -1
- package/dist/ui/app.js +28 -15
- package/dist/ui/app.js.map +1 -1
- package/dist/ui/app.test.d.ts +2 -0
- package/dist/ui/app.test.d.ts.map +1 -0
- package/dist/ui/app.test.js +157 -0
- package/dist/ui/app.test.js.map +1 -0
- package/package.json +2 -2
- package/src/cli.ts +1 -1
- package/src/core/runtime.ts +0 -1
- package/src/core/task-runner.ts +55 -20
- package/src/ui/app.test.tsx +177 -0
- package/src/ui/app.tsx +29 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"projectRunning":
|
|
1
|
+
{"projectRunning":false,"activeTasks":0,"packageVersion":"0.8.7","latestTest":{"label":"Run all tests","status":"success","time":1782309973017},"latestBuild":{"status":"running"},"lastGitPush":{"label":"Commit & push","time":1780608994995}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[["deploy-publish",{"id":"deploy-publish","label":"Publish package","status":"running","output":"","startTime":1782310012701,"watchMode":false}]]
|
|
1
|
+
[["deploy-publish",{"id":"deploy-publish","label":"Publish package","status":"failure","output":"npm warn publish npm auto-corrected some errors in your package.json when publishing. Please run \"npm pkg fix\" to address these errors.\nnpm warn publish errors corrected:\nnpm warn publish \"bin[dcc]\" script name was cleaned\nnpm notice\nnpm notice 📦 @hartvig/developer-control-center@0.8.7\nnpm notice Tarball Contents\nnpm notice 239B .developer-control-center/metrics.json\nnpm notice 145B .developer-control-center/status.json\nnpm notice 5.9kB .developer-control-center/timings.jsonl\nnpm notice 893B .github/workflows/ci.yml\nnpm notice 2.2kB AGENTS.md\nnpm notice 3.1kB PLUGINS.md\nnpm notice 3.2kB README.md\nnpm notice 5.4kB coverage/base.css\nnpm notice 2.7kB coverage/block-navigation.js\nnpm notice 33.3kB coverage/clover.xml\nnpm notice 144.1kB coverage/coverage-final.json\nnpm notice 25.3kB coverage/Developer Control Center/dcc.config.js.html\nnpm notice 4.4kB coverage/Developer Control Center/index.html\nnpm notice 4.5kB coverage/Developer Control Center/src/config/index.html\nnpm notice 19.4kB coverage/Developer Control Center/src/config/loader.ts.html\nnpm notice 6.2kB coverage/Developer Control Center/src/core/ci.ts.html\nnpm notice 7.5kB coverage/Developer Control Center/src/core/event-bus.ts.html\nnpm notice 8.0kB coverage/Developer Control Center/src/core/index.html\nnpm notice 7.7kB coverage/Developer Control Center/src/core/notifier.ts.html\nnpm notice 3.4kB coverage/Developer Control Center/src/core/persistence.ts.html\nnpm notice 64.3kB coverage/Developer Control Center/src/core/task-runner.ts.html\nnpm notice 12.0kB coverage/Developer Control Center/src/core/workspaces.ts.html\nnpm notice 4.5kB coverage/Developer Control Center/src/plugins/index.html\nnpm notice 10.3kB coverage/Developer Control Center/src/plugins/manager.ts.html\nnpm notice 4.5kB coverage/Developer Control Center/src/status/index.html\nnpm notice 13.6kB coverage/Developer Control Center/src/status/store.ts.html\nnpm notice 24.1kB coverage/Developer Control Center/src/ui/command-list.tsx.html\nnpm notice 6.7kB coverage/Developer Control Center/src/ui/index.html\nnpm notice 34.0kB coverage/Developer Control Center/src/ui/metrics-panel.tsx.html\nnpm notice 12.9kB coverage/Developer Control Center/src/ui/panel.tsx.html\nnpm notice 24.5kB coverage/Developer Control Center/src/ui/status-panel.tsx.html\nnpm notice 445B coverage/favicon.png\nnpm notice 8.2kB coverage/index.html\nnpm notice 676B coverage/prettify.css\nnpm notice 17.6kB coverage/prettify.js\nnpm notice 138B coverage/sort-arrow-sprite.png\nnpm notice 6.7kB coverage/sorter.js\nnpm notice 2.2kB dcc.config.example.js\nnpm notice 5.3kB dcc.config.js\nnpm notice 64B dist/cli.d.ts\nnpm notice 100B dist/cli.d.ts.map\nnpm notice 6.0kB dist/cli.js\nnpm notice 3.5kB dist/cli.js.map\nnpm notice 214B dist/config/index.d.ts\nnpm notice 254B dist/config/index.d.ts.map\nnpm notice 90B dist/config/index.js\nnpm notice 161B dist/config/index.js.map\nnpm notice 299B dist/config/loader.d.ts\nnpm notice 361B dist/config/loader.d.ts.map\nnpm notice 3.1kB dist/config/loader.js\nnpm notice 3.7kB dist/config/loader.js.map\nnpm notice 52B dist/config/loader.test.d.ts\nnpm notice 126B dist/config/loader.test.d.ts.map\nnpm notice 1.1kB dist/config/loader.test.js\nnpm notice 1.3kB dist/config/loader.test.js.map\nnpm notice 199B dist/config/presets/node.d.ts\nnpm notice 142B dist/config/presets/node.d.ts.map\nnpm notice 677B dist/config/presets/node.js\nnpm notice 543B dist/config/presets/node.js.map\nnpm notice 200B dist/config/presets/react.d.ts\nnpm notice 144B dist/config/presets/react.d.ts.map\nnpm notice 817B dist/config/presets/react.js\nnpm notice 622B dist/config/presets/react.js.map\nnpm notice 1.2kB dist/config/types.d.ts\nnpm notice 1.5kB dist/config/types.d.ts.map\nnpm notice 44B dist/config/types.js\nnpm notice 112B dist/config/types.js.map\nnpm notice 51B dist/config/types.test.d.ts\nnpm notice 124B dist/config/types.test.d.ts.map\nnpm notice 759B dist/config/types.test.js\nnpm notice 937B dist/config/types.test.js.map\nnpm notice 142B dist/core/ci.d.ts\nnpm notice 220B dist/core/ci.d.ts.map\nnpm notice 622B dist/core/ci.js\nnpm notice 881B dist/core/ci.js.map\nnpm notice 48B dist/core/ci.test.d.ts\nnpm notice 116B dist/core/ci.test.d.ts.map\nnpm notice 1.6kB dist/core/ci.test.js\nnpm notice 2.2kB dist/core/ci.test.js.map\nnpm notice 728B dist/core/event-bus.d.ts\nnpm notice 982B dist/core/event-bus.d.ts.map\nnpm notice 507B dist/core/event-bus.js\nnpm notice 796B dist/core/event-bus.js.map\nnpm notice 55B dist/core/event-bus.test.d.ts\nnpm notice 130B dist/core/event-bus.test.d.ts.map\nnpm notice 1.6kB dist/core/event-bus.test.js\nnpm notice 2.5kB dist/core/event-bus.test.js.map\nnpm notice 399B dist/core/index.d.ts\nnpm notice 452B dist/core/index.d.ts.map\nnpm notice 301B dist/core/index.js\nnpm notice 364B dist/core/index.js.map\nnpm notice 118B dist/core/notifier.d.ts\nnpm notice 193B dist/core/notifier.d.ts.map\nnpm notice 844B dist/core/notifier.js\nnpm notice 1.0kB dist/core/notifier.js.map\nnpm notice 54B dist/core/notifier.test.d.ts\nnpm notice 128B dist/core/notifier.test.d.ts.map\nnpm notice 948B dist/core/notifier.test.js\nnpm notice 1.3kB dist/core/notifier.test.js.map\nnpm notice 109B dist/core/persistence.d.ts\nnpm notice 155B dist/core/persistence.d.ts.map\nnpm notice 99B dist/core/persistence.js\nnpm notice 163B dist/core/persistence.js.map\nnpm notice 900B dist/core/runtime.d.ts\nnpm notice 905B dist/core/runtime.d.ts.map\nnpm notice 3.0kB dist/core/runtime.js\nnpm notice 3.1kB dist/core/runtime.js.map\nnpm notice 1.1kB dist/core/task-runner.d.ts\nnpm notice 1.0kB dist/core/task-runner.d.ts.map\nnpm notice 16.1kB dist/core/task-runner.js\nnpm notice 16.9kB dist/core/task-runner.js.map\nnpm notice 57B dist/core/task-runner.test.d.ts\nnpm notice 134B dist/core/task-runner.test.d.ts.map\nnpm notice 13.5kB dist/core/task-runner.test.js\nnpm notice 15.1kB dist/core/task-runner.test.js.map\nnpm notice 135B dist/core/timer-plugin.d.ts\nnpm notice 210B dist/core/timer-plugin.d.ts.map\nnpm notice 1.2kB dist/core/timer-plugin.js\nnpm notice 1.3kB dist/core/timer-plugin.js.map\nnpm notice 193B dist/core/workspaces.d.ts\nnpm notice 262B dist/core/workspaces.d.ts.map\nnpm notice 2.1kB dist/core/workspaces.js\nnpm notice 2.3kB dist/core/workspaces.js.map\nnpm notice 56B dist/core/workspaces.test.d.ts\nnpm notice 132B dist/core/workspaces.test.d.ts.map\nnpm notice 2.9kB dist/core/workspaces.test.js\nnpm notice 3.7kB dist/core/workspaces.test.js.map\nnpm notice 898B dist/index.d.ts\nnpm notice 827B dist/index.d.ts.map\nnpm notice 534B dist/index.js\nnpm notice 540B dist/index.js.map\nnpm notice 136B dist/plugins/index.d.ts\nnpm notice 205B dist/plugins/index.d.ts.map\nnpm notice 79B dist/plugins/index.js\nnpm notice 152B dist/plugins/index.js.map\nnpm notice 597B dist/plugins/manager.d.ts\nnpm notice 729B dist/plugins/manager.d.ts.map\nnpm notice 1.3kB dist/plugins/manager.js\nnpm notice 1.5kB dist/plugins/manager.js.map\nnpm notice 53B dist/plugins/manager.test.d.ts\nnpm notice 129B dist/plugins/manager.test.d.ts.map\nnpm notice 3.0kB dist/plugins/manager.test.js\nnpm notice 3.9kB dist/plugins/manager.test.js.map\nnpm notice 575B dist/plugins/types.d.ts\nnpm notice 762B dist/plugins/types.d.ts.map\nnpm notice 44B dist/plugins/types.js\nnpm notice 113B dist/plugins/types.js.map\nnpm notice 134B dist/status/index.d.ts\nnpm notice 204B dist/status/index.d.ts.map\nnpm notice 75B dist/status/index.js\nnpm notice 151B dist/status/index.js.map\nnpm notice 603B dist/status/store.d.ts\nnpm notice 715B dist/status/store.d.ts.map\nnpm notice 2.2kB dist/status/store.js\nnpm notice 2.8kB dist/status/store.js.map\nnpm notice 51B dist/status/store.test.d.ts\nnpm notice 124B dist/status/store.test.d.ts.map\nnpm notice 4.3kB dist/status/store.test.js\nnpm notice 5.2kB dist/status/store.test.js.map\nnpm notice 309B dist/status/types.d.ts\nnpm notice 436B dist/status/types.d.ts.map\nnpm notice 44B dist/status/types.js\nnpm notice 112B dist/status/types.js.map\nnpm notice 283B dist/ui/app.d.ts\nnpm notice 362B dist/ui/app.d.ts.map\nnpm notice 26.9kB dist/ui/app.js\nnpm notice 28.0kB dist/ui/app.js.map\nnpm notice 49B dist/ui/app.test.d.ts\nnpm notice 117B dist/ui/app.test.d.ts.map\nnpm notice 6.4kB dist/ui/app.test.js\nnpm notice 7.0kB dist/ui/app.test.js.map\nnpm notice 797B dist/ui/command-list.d.ts\nnpm notice 947B dist/ui/command-list.d.ts.map\nnpm notice 3.8kB dist/ui/command-list.js\nnpm notice 4.6kB dist/ui/command-list.js.map\nnpm notice 58B dist/ui/command-list.test.d.ts\nnpm notice 135B dist/ui/command-list.test.d.ts.map\nnpm notice 4.5kB dist/ui/command-list.test.js\nnpm notice 5.0kB dist/ui/command-list.test.js.map\nnpm notice 221B dist/ui/index.d.ts\nnpm notice 260B dist/ui/index.d.ts.map\nnpm notice 304B dist/ui/index.js\nnpm notice 376B dist/ui/index.js.map\nnpm notice 301B dist/ui/metrics-panel.d.ts\nnpm notice 391B dist/ui/metrics-panel.d.ts.map\nnpm notice 7.2kB dist/ui/metrics-panel.js\nnpm notice 7.8kB dist/ui/metrics-panel.js.map\nnpm notice 59B dist/ui/metrics-panel.test.d.ts\nnpm notice 137B dist/ui/metrics-panel.test.d.ts.map\nnpm notice 4.8kB dist/ui/metrics-panel.test.js\nnpm notice 5.3kB dist/ui/metrics-panel.test.js.map\nnpm notice 407B dist/ui/panel.d.ts\nnpm notice 531B dist/ui/panel.d.ts.map\nnpm notice 2.4kB dist/ui/panel.js\nnpm notice 2.7kB dist/ui/panel.js.map\nnpm notice 51B dist/ui/panel.test.d.ts\nnpm notice 121B dist/ui/panel.test.d.ts.map\nnpm notice 2.7kB dist/ui/panel.test.js\nnpm notice 3.3kB dist/ui/panel.test.js.map\nnpm notice 541B dist/ui/status-panel.d.ts\nnpm notice 633B dist/ui/status-panel.d.ts.map\nnpm notice 4.5kB dist/ui/status-panel.js\nnpm notice 5.3kB dist/ui/status-panel.js.map\nnpm notice 58B dist/ui/status-panel.test.d.ts\nnpm notice 135B dist/ui/status-panel.test.d.ts.map\nnpm notice 4.1kB dist/ui/status-panel.test.js\nnpm notice 4.8kB dist/ui/status-panel.test.js.map\nnpm notice 662B package.json\nnpm notice 5.8kB src/cli.ts\nnpm notice 179B src/config/index.ts\nnpm notice 979B src/config/loader.test.ts\nnpm notice 3.1kB src/config/loader.ts\nnpm notice 509B src/config/presets/node.ts\nnpm notice 622B src/config/presets/react.ts\nnpm notice 641B src/config/types.test.ts\nnpm notice 1.1kB src/config/types.ts\nnpm notice 1.5kB src/core/ci.test.ts\nnpm notice 613B src/core/ci.ts\nnpm notice 1.5kB src/core/event-bus.test.ts\nnpm notice 1.1kB src/core/event-bus.ts\nnpm notice 364B src/core/index.ts\nnpm notice 863B src/core/notifier.test.ts\nnpm notice 838B src/core/notifier.ts\nnpm notice 60B src/core/persistence.ts\nnpm notice 3.1kB src/core/runtime.ts\nnpm notice 12.0kB src/core/task-runner.test.ts\nnpm notice 14.7kB src/core/task-runner.ts\nnpm notice 1.0kB src/core/timer-plugin.ts\nnpm notice 2.8kB src/core/workspaces.test.ts\nnpm notice 1.9kB src/core/workspaces.ts\nnpm notice 863B src/index.ts\nnpm notice 101B src/plugins/index.ts\nnpm notice 2.7kB src/plugins/manager.test.ts\nnpm notice 1.4kB src/plugins/manager.ts\nnpm notice 518B src/plugins/types.ts\nnpm notice 99B src/status/index.ts\nnpm notice 3.9kB src/status/store.test.ts\nnpm notice 2.3kB src/status/store.ts\nnpm notice 259B src/status/types.ts\nnpm notice 5.9kB src/ui/app.test.tsx\nnpm notice 24.9kB src/ui/app.tsx\nnpm notice 4.1kB src/ui/command-list.test.tsx\nnpm notice 4.8kB src/ui/command-list.tsx\nnpm notice 358B src/ui/index.tsx\nnpm notice 4.5kB src/ui/metrics-panel.test.tsx\nnpm notice 7.5kB src/ui/metrics-panel.tsx\nnpm notice 2.5kB src/ui/panel.test.tsx\nnpm notice 2.6kB src/ui/panel.tsx\nnpm notice 3.9kB src/ui/status-panel.test.tsx\nnpm notice 5.3kB src/ui/status-panel.tsx\nnpm notice 475B tsconfig.json\nnpm notice 171B vitest.config.ts\nnpm notice Tarball Details\nnpm notice name: @hartvig/developer-control-center\nnpm notice version: 0.8.7\nnpm notice filename: hartvig-developer-control-center-0.8.7.tgz\nnpm notice package size: 164.4 kB\nnpm notice unpacked size: 991.8 kB\nnpm notice shasum: 0a2492e7aa1b98c7c400d9632b7ca9b63c15bda1\nnpm notice integrity: sha512-68/JgQXuseDA9[...]Kq6qtx8zfsjeg==\nnpm notice total files: 252\nnpm notice\nnpm notice Publishing to https://registry.npmjs.org/ with tag latest and public access\nnpm error code E403\nnpm error 403 403 Forbidden - PUT https://registry.npmjs.org/@hartvig%2fdeveloper-control-center - You cannot publish over the previously published versions: 0.8.7.\nnpm error 403 In most cases, you or one of your dependencies are requesting\nnpm error 403 a package version that is forbidden by your security policy, or\nnpm error 403 on a server you do not have access to.\nnpm error A complete log of this run can be found in: /home/ole/.npm/_logs/2026-06-24T15_06_04_971Z-debug-0.log\n","startTime":1782313564870,"endTime":1782313566580,"exitCode":1,"watchMode":false}]]
|
|
@@ -33,3 +33,13 @@
|
|
|
33
33
|
{"id":"test","label":"Run all tests","duration":3206,"exitCode":0,"status":"success","timestamp":"2026-06-24T14:06:13.022Z"}
|
|
34
34
|
{"id":"bump-version","label":"Bump version","duration":246,"exitCode":0,"status":"success","timestamp":"2026-06-24T14:06:33.826Z"}
|
|
35
35
|
{"id":"build","label":"Build all packages","duration":2568,"exitCode":0,"status":"success","timestamp":"2026-06-24T14:06:41.632Z"}
|
|
36
|
+
{"id":"deploy-publish","label":"Publish package","duration":2300,"exitCode":0,"status":"success","timestamp":"2026-06-24T14:06:54.988Z"}
|
|
37
|
+
{"id":"status-outdated","label":"Check outdated deps","duration":824,"exitCode":1,"status":"failure","timestamp":"2026-06-24T14:07:44.048Z"}
|
|
38
|
+
{"id":"status-outdated:on-nonzero","label":"Update all","duration":6507,"exitCode":0,"status":"success","timestamp":"2026-06-24T14:07:59.783Z"}
|
|
39
|
+
{"id":"status-outdated","label":"Check outdated deps","duration":690,"exitCode":1,"status":"failure","timestamp":"2026-06-24T14:08:03.442Z"}
|
|
40
|
+
{"id":"install","label":"Install all packages","duration":1344,"exitCode":0,"status":"success","timestamp":"2026-06-24T14:09:34.820Z"}
|
|
41
|
+
{"id":"status-outdated","label":"Check outdated deps","duration":640,"exitCode":0,"status":"success","timestamp":"2026-06-24T14:09:45.852Z"}
|
|
42
|
+
{"id":"status-packages","label":"List workspace packages","duration":394,"exitCode":0,"status":"success","timestamp":"2026-06-24T14:09:49.560Z"}
|
|
43
|
+
{"id":"status-git","label":"Git status","duration":70,"exitCode":0,"status":"success","timestamp":"2026-06-24T14:11:08.139Z"}
|
|
44
|
+
{"id":"status-git","label":"Git status","duration":80,"exitCode":0,"status":"success","timestamp":"2026-06-24T15:03:09.128Z"}
|
|
45
|
+
{"id":"deploy-publish","label":"Publish package","duration":1734,"exitCode":1,"status":"failure","timestamp":"2026-06-24T15:06:06.585Z"}
|
package/dist/cli.js
CHANGED
|
@@ -4,7 +4,7 @@ import path from 'path';
|
|
|
4
4
|
import { loadConfig } from './config/index.js';
|
|
5
5
|
import { Runtime, detectCI } from './core/index.js';
|
|
6
6
|
import { startUI } from './ui/index.js';
|
|
7
|
-
const VERSION = '0.
|
|
7
|
+
const VERSION = '0.8.7';
|
|
8
8
|
function printHelp() {
|
|
9
9
|
console.log(`
|
|
10
10
|
developer-control-center v${VERSION}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/core/runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAoB,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAErE,OAAO,EAAY,MAAM,EAAE,MAAM,SAAS,CAAC;AAgB3C,qBAAa,OAAO;IAiBN,QAAQ,CAAC,MAAM,EAAE,YAAY;IAhBzC,QAAQ,CAAC,QAAQ,WAAkB;IACnC,QAAQ,CAAC,WAAW,cAAqB;IACzC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,aAAa,gBAIpB;IACF,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,EAAE,CAAC;IACxC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,OAAO,CAAC,cAAc,CAAmB;IACzC,OAAO,CAAC,gBAAgB,CAAC,CAAa;IACtC,OAAO,CAAC,aAAa,CAAC,CAAa;gBAEd,MAAM,EAAE,YAAY;IAanC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB5B,IAAI,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/core/runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAoB,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAErE,OAAO,EAAY,MAAM,EAAE,MAAM,SAAS,CAAC;AAgB3C,qBAAa,OAAO;IAiBN,QAAQ,CAAC,MAAM,EAAE,YAAY;IAhBzC,QAAQ,CAAC,QAAQ,WAAkB;IACnC,QAAQ,CAAC,WAAW,cAAqB;IACzC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,aAAa,gBAIpB;IACF,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,EAAE,CAAC;IACxC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,OAAO,CAAC,cAAc,CAAmB;IACzC,OAAO,CAAC,gBAAgB,CAAC,CAAa;IACtC,OAAO,CAAC,aAAa,CAAC,CAAa;gBAEd,MAAM,EAAE,YAAY;IAanC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB5B,IAAI,IAAI,IAAI;IAMZ,OAAO,CAAC,aAAa;CAyBtB"}
|
package/dist/core/runtime.js
CHANGED
package/dist/core/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/core/runtime.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/core/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-runner.d.ts","sourceRoot":"","sources":["../../src/core/task-runner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"task-runner.d.ts","sourceRoot":"","sources":["../../src/core/task-runner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AA8B1C,qBAAa,UAAU;IAOnB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,aAAa,CAAC;IACtB,OAAO,CAAC,QAAQ;IATlB,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,cAAc,CAAqD;IAC3E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;gBAG7B,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,aAAa,CAAC,EAAE,aAAa,YAAA,EAC7B,QAAQ,GAAE,aAAa,EAAO;IAGxC,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI;IAItC,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,SAAS,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA4InE,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAkBvB,QAAQ,IAAI,IAAI;IAahB,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IA2BlC,OAAO,CAAC,kBAAkB;YAYZ,WAAW;YAiDX,gBAAgB;IAyE9B,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,UAAU;IAqClB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,SAAS;IAgBjB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,UAAU;IAqBlB,OAAO,CAAC,SAAS;CAOlB"}
|
package/dist/core/task-runner.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
import { spawn,
|
|
1
|
+
import { spawn, exec } from 'child_process';
|
|
2
2
|
import fs from 'fs';
|
|
3
3
|
class FileWatcher {
|
|
4
4
|
watcher;
|
|
5
5
|
debounceTimer;
|
|
6
|
+
exclude = /[/\\](node_modules|\.git)[/\\]/;
|
|
6
7
|
watch(dir, onChange) {
|
|
7
8
|
this.stop();
|
|
8
9
|
try {
|
|
9
|
-
this.watcher = fs.watch(dir, { recursive: true }, () => {
|
|
10
|
+
this.watcher = fs.watch(dir, { recursive: true }, (event, filename) => {
|
|
11
|
+
if (filename && this.exclude.test(filename.toString()))
|
|
12
|
+
return;
|
|
10
13
|
if (this.debounceTimer)
|
|
11
14
|
clearTimeout(this.debounceTimer);
|
|
12
15
|
this.debounceTimer = setTimeout(onChange, 500);
|
|
@@ -58,7 +61,9 @@ export class TaskRunner {
|
|
|
58
61
|
return;
|
|
59
62
|
const existing = this.statusStore.getTask(command.id);
|
|
60
63
|
if (existing?.status === 'running') {
|
|
61
|
-
|
|
64
|
+
if (!command.parallel)
|
|
65
|
+
return;
|
|
66
|
+
this.abort(command.id);
|
|
62
67
|
}
|
|
63
68
|
await this.pluginManager?.executeHook('beforeRun', command);
|
|
64
69
|
this.stopWatcher(command.id);
|
|
@@ -74,17 +79,40 @@ export class TaskRunner {
|
|
|
74
79
|
watchMode: false,
|
|
75
80
|
});
|
|
76
81
|
this.eventBus.emit('task:start', command);
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
82
|
+
let child;
|
|
83
|
+
try {
|
|
84
|
+
child = spawn(command.command, [], {
|
|
85
|
+
shell: true,
|
|
86
|
+
detached: true,
|
|
87
|
+
windowsHide: true,
|
|
88
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
89
|
+
cwd: command.cwd,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
this.statusStore.updateTask(command.id, {
|
|
94
|
+
status: 'failure',
|
|
95
|
+
output: `Failed to spawn: ${err instanceof Error ? err.message : String(err)}\n`,
|
|
96
|
+
exitCode: -1,
|
|
97
|
+
endTime: Date.now(),
|
|
98
|
+
});
|
|
99
|
+
this.eventBus.emit('task:error', command.id, err instanceof Error ? err : new Error(String(err)));
|
|
100
|
+
this.pluginManager?.executeHook('onError', command.id, err instanceof Error ? err : new Error(String(err)));
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
84
103
|
this.running.set(command.id, child);
|
|
85
104
|
if (command.toggle?.check) {
|
|
86
105
|
this.startCheck(command);
|
|
87
106
|
}
|
|
107
|
+
let timedOut = false;
|
|
108
|
+
const timeoutMs = command.timeout ?? 0;
|
|
109
|
+
let timeoutTimer = null;
|
|
110
|
+
if (timeoutMs > 0) {
|
|
111
|
+
timeoutTimer = setTimeout(() => {
|
|
112
|
+
timedOut = true;
|
|
113
|
+
this.abort(command.id);
|
|
114
|
+
}, timeoutMs);
|
|
115
|
+
}
|
|
88
116
|
let output = '';
|
|
89
117
|
child.stdout?.on('data', (data) => {
|
|
90
118
|
const text = data.toString();
|
|
@@ -101,6 +129,8 @@ export class TaskRunner {
|
|
|
101
129
|
this.pluginManager?.executeHook('onOutput', command.id, text);
|
|
102
130
|
});
|
|
103
131
|
child.on('close', (exitCode) => {
|
|
132
|
+
if (timeoutTimer)
|
|
133
|
+
clearTimeout(timeoutTimer);
|
|
104
134
|
this.running.delete(command.id);
|
|
105
135
|
if (command.toggle?.check)
|
|
106
136
|
return;
|
|
@@ -148,6 +178,14 @@ export class TaskRunner {
|
|
|
148
178
|
}
|
|
149
179
|
this.stopWatcher(id);
|
|
150
180
|
this.stopCheck(id);
|
|
181
|
+
const existing = this.statusStore.getTask(id);
|
|
182
|
+
if (existing?.status === 'running') {
|
|
183
|
+
this.statusStore.updateTask(id, {
|
|
184
|
+
status: 'failure',
|
|
185
|
+
endTime: Date.now(),
|
|
186
|
+
});
|
|
187
|
+
this.eventBus.emit('task:complete', id, -1);
|
|
188
|
+
}
|
|
151
189
|
}
|
|
152
190
|
abortAll() {
|
|
153
191
|
for (const [id, child] of this.running) {
|
|
@@ -388,17 +426,16 @@ export class TaskRunner {
|
|
|
388
426
|
return;
|
|
389
427
|
const checkCmd = command.toggle.check;
|
|
390
428
|
const interval = setInterval(() => {
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
}
|
|
429
|
+
exec(checkCmd, { encoding: 'utf-8', timeout: 3000 }, (err) => {
|
|
430
|
+
if (err) {
|
|
431
|
+
this.statusStore.updateTask(id, {
|
|
432
|
+
status: 'failure',
|
|
433
|
+
endTime: Date.now(),
|
|
434
|
+
});
|
|
435
|
+
this.eventBus.emit('task:complete', id, -1);
|
|
436
|
+
this.stopCheck(id);
|
|
437
|
+
}
|
|
438
|
+
});
|
|
402
439
|
}, this.CHECK_INTERVAL);
|
|
403
440
|
this.checkIntervals.set(id, interval);
|
|
404
441
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-runner.js","sourceRoot":"","sources":["../../src/core/task-runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"task-runner.js","sourceRoot":"","sources":["../../src/core/task-runner.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/ui/app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAEjF,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAgC,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/ui/app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAEjF,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAgC,MAAM,oBAAoB,CAAC;AAQhF,UAAU,QAAQ;IAChB,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB;AAmED,eAAO,MAAM,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,QAAQ,CAkpBlC,CAAC"}
|
package/dist/ui/app.js
CHANGED
|
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { useState, useEffect, useMemo, useCallback, useRef } from 'react';
|
|
3
3
|
import { Box, Text, useInput, useApp, useStdout } from 'ink';
|
|
4
4
|
import { mergeCommands } from '../config/index.js';
|
|
5
|
+
import { sendNotification } from '../core/notifier.js';
|
|
5
6
|
import { CommandList } from './command-list.js';
|
|
6
7
|
import { MetricsPanel } from './metrics-panel.js';
|
|
7
8
|
import { Panel } from './panel.js';
|
|
@@ -65,11 +66,19 @@ export const App = ({ config, runtime }) => {
|
|
|
65
66
|
const [multiSelected, setMultiSelected] = useState(new Set());
|
|
66
67
|
const [helpScroll, setHelpScroll] = useState(0);
|
|
67
68
|
const [activeProfile, setActiveProfile] = useState(config.profile);
|
|
68
|
-
const
|
|
69
|
+
const [termSize, setTermSize] = useState({ rows: stdout?.rows ?? 24, cols: stdout?.columns ?? 120 });
|
|
70
|
+
const terminalRows = termSize.rows;
|
|
69
71
|
const dynamicRows = Math.max(4, terminalRows - 7);
|
|
70
72
|
const menuRows = config.menuRows ?? dynamicRows;
|
|
71
73
|
const outputRows = config.outputRows ?? menuRows;
|
|
72
|
-
const terminalColumns =
|
|
74
|
+
const terminalColumns = termSize.cols;
|
|
75
|
+
useEffect(() => {
|
|
76
|
+
const onResize = () => {
|
|
77
|
+
setTermSize({ rows: stdout?.rows ?? 24, cols: stdout?.columns ?? 120 });
|
|
78
|
+
};
|
|
79
|
+
stdout?.on?.('resize', onResize);
|
|
80
|
+
return () => { stdout?.off?.('resize', onResize); };
|
|
81
|
+
}, [stdout]);
|
|
73
82
|
const statusPaneWidth = 28;
|
|
74
83
|
const activeCommands = useMemo(() => commandsForProfile(config, activeProfile), [activeProfile, config]);
|
|
75
84
|
useEffect(() => {
|
|
@@ -101,8 +110,12 @@ export const App = ({ config, runtime }) => {
|
|
|
101
110
|
popupRef.current = popup;
|
|
102
111
|
useEffect(() => {
|
|
103
112
|
const onComplete = (id, exitCode) => {
|
|
113
|
+
const cmd = commandsRef.current.find((c) => c.id === id);
|
|
114
|
+
if (cmd) {
|
|
115
|
+
const status = exitCode === null ? 'Stopped' : exitCode === 0 ? 'Completed' : 'Failed';
|
|
116
|
+
sendNotification(`DCC: ${cmd.label}`, status);
|
|
117
|
+
}
|
|
104
118
|
if (exitCode != null && exitCode > 0) {
|
|
105
|
-
const cmd = commandsRef.current.find((c) => c.id === id);
|
|
106
119
|
if (cmd?.onNonZeroExit) {
|
|
107
120
|
setConfirmingCmd({
|
|
108
121
|
id: `${cmd.id}:on-nonzero`,
|
|
@@ -438,11 +451,11 @@ export const App = ({ config, runtime }) => {
|
|
|
438
451
|
else if (key.upArrow) {
|
|
439
452
|
setScrollOffsets((prev) => {
|
|
440
453
|
const next = new Map(prev);
|
|
441
|
-
const entries = Array.from(
|
|
454
|
+
const entries = Array.from(tasksRef.current.values()).sort((a, b) => (b.startTime || 0) - (a.startTime || 0));
|
|
442
455
|
const target = entries[0];
|
|
443
456
|
if (target) {
|
|
444
|
-
const
|
|
445
|
-
next.set(target.id,
|
|
457
|
+
const hiddenFromBottom = next.get(target.id) ?? 0;
|
|
458
|
+
next.set(target.id, hiddenFromBottom + 1);
|
|
446
459
|
}
|
|
447
460
|
return next;
|
|
448
461
|
});
|
|
@@ -450,11 +463,11 @@ export const App = ({ config, runtime }) => {
|
|
|
450
463
|
else if (key.downArrow) {
|
|
451
464
|
setScrollOffsets((prev) => {
|
|
452
465
|
const next = new Map(prev);
|
|
453
|
-
const entries = Array.from(
|
|
466
|
+
const entries = Array.from(tasksRef.current.values()).sort((a, b) => (b.startTime || 0) - (a.startTime || 0));
|
|
454
467
|
const target = entries[0];
|
|
455
468
|
if (target) {
|
|
456
|
-
const
|
|
457
|
-
next.set(target.id, Math.max(0,
|
|
469
|
+
const hiddenFromBottom = next.get(target.id) ?? 0;
|
|
470
|
+
next.set(target.id, Math.max(0, hiddenFromBottom - 1));
|
|
458
471
|
}
|
|
459
472
|
return next;
|
|
460
473
|
});
|
|
@@ -462,11 +475,11 @@ export const App = ({ config, runtime }) => {
|
|
|
462
475
|
else if (key.pageUp) {
|
|
463
476
|
setScrollOffsets((prev) => {
|
|
464
477
|
const next = new Map(prev);
|
|
465
|
-
const entries = Array.from(
|
|
478
|
+
const entries = Array.from(tasksRef.current.values()).sort((a, b) => (b.startTime || 0) - (a.startTime || 0));
|
|
466
479
|
const target = entries[0];
|
|
467
480
|
if (target) {
|
|
468
|
-
const
|
|
469
|
-
next.set(target.id,
|
|
481
|
+
const hiddenFromBottom = next.get(target.id) ?? 0;
|
|
482
|
+
next.set(target.id, hiddenFromBottom + 10);
|
|
470
483
|
}
|
|
471
484
|
return next;
|
|
472
485
|
});
|
|
@@ -474,11 +487,11 @@ export const App = ({ config, runtime }) => {
|
|
|
474
487
|
else if (key.pageDown) {
|
|
475
488
|
setScrollOffsets((prev) => {
|
|
476
489
|
const next = new Map(prev);
|
|
477
|
-
const entries = Array.from(
|
|
490
|
+
const entries = Array.from(tasksRef.current.values()).sort((a, b) => (b.startTime || 0) - (a.startTime || 0));
|
|
478
491
|
const target = entries[0];
|
|
479
492
|
if (target) {
|
|
480
|
-
const
|
|
481
|
-
next.set(target.id, Math.max(0,
|
|
493
|
+
const hiddenFromBottom = next.get(target.id) ?? 0;
|
|
494
|
+
next.set(target.id, Math.max(0, hiddenFromBottom - 10));
|
|
482
495
|
}
|
|
483
496
|
return next;
|
|
484
497
|
});
|
package/dist/ui/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/ui/app.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACjF,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAE7D,OAAO,EAA+B,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEhF,OAAO,EAAE,WAAW,EAAsC,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAiBhD,MAAM,gBAAgB,GAAG,YAAY,CAAC;AACtC,MAAM,WAAW,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;AAQ7E,MAAM,WAAW,GAAgB;IAC/B,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE;IACtC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE;IACtD,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,sBAAsB,EAAE;IAC3D,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,2BAA2B,EAAE;IAChE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE;IACtD,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,wBAAwB,EAAE;IACzD,EAAE,IAAI,EAAE,QAAQ,EAAE;IAClB,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE;IACvC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,EAAE;IACxD,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE;IAC1D,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,kBAAkB,EAAE;IACrD,EAAE,IAAI,EAAE,QAAQ,EAAE;IAClB,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;IAClC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,kBAAkB,EAAE;IACnD,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,wBAAwB,EAAE;IAC3D,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;IAC5C,EAAE,IAAI,EAAE,QAAQ,EAAE;IAClB,EAAE,IAAI,EAAE,MAAM,EAAE;CACjB,CAAC;AAEF,MAAM,kBAAkB,GAAG,WAAW,CAAC,MAAM,CAAC;AAE9C,SAAS,kBAAkB,CAAC,MAAoB,EAAE,OAAgB;IAChE,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,QAAQ,CAAC;IACpD,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpF,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAE5E,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;QAC9C,QAAQ,CAAC,IAAI,CAAC;YACZ,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,WAAW,EAAE,iBAAiB,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC1D,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,aAAa,EAAE,QAAQ,CAAC,KAAK;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,eAAe,CAAC,IAAc;IACrC,OAAO,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,MAAM,GAAG,GAAuB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IAC7D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;IAC/B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAO,QAAQ,CAAC,CAAC;IACjD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAO,UAAU,CAAC,CAAC;IACjE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAyB,IAAI,GAAG,EAAE,CAAC,CAAC;IACtE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAChD,IAAI,CACL,CAAC;IACF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAuB,IAAI,CAAC,CAAC;IACrE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAoB,IAAI,CAAC,CAAC;IAC5D,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAChD,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAChB,CAAC;IACF,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACtE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAc,IAAI,GAAG,EAAE,CAAC,CAAC;IAC3E,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAqB,MAAM,CAAC,OAAO,CAAC,CAAC;IACvF,MAAM,YAAY,GAAG,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;IACxC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,WAAW,CAAC;IAChD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,QAAQ,CAAC;IACjD,MAAM,eAAe,GAAG,MAAM,EAAE,OAAO,IAAI,GAAG,CAAC;IAC/C,MAAM,eAAe,GAAG,EAAE,CAAC;IAE3B,MAAM,cAAc,GAAG,OAAO,CAC5B,GAAG,EAAE,CAAC,kBAAkB,CAAC,MAAM,EAAE,aAAa,CAAC,EAC/C,CAAC,aAAa,EAAE,MAAM,CAAC,CACxB,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IACjD,CAAC,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC,CAAG,CAAC;IAEhC,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,EAAE;QACpC,MAAM,OAAO,GAAG,CAAC,CAAC;QAClB,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAClD,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;YAC5D,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC,EAAE,CAAC,CAAC,CAAC;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,OAAO,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,eAAe,GAAG,eAAe,GAAG,CAAC,CAAC,CAAC;IAC/F,CAAC,EAAE,CAAC,cAAc,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC;IAEvD,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,eAAe,GAAG,gBAAgB,GAAG,eAAe,GAAG,CAAC,CAAC,CAAC;IAC/F,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,GAAG,UAAU,CAAC,CAAC;IAEnE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IACvB,MAAM,gBAAgB,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;IAC/C,gBAAgB,CAAC,OAAO,GAAG,aAAa,CAAC;IACzC,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IAC/B,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACzC,aAAa,CAAC,OAAO,GAAG,UAAU,CAAC;IACnC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;IAC3C,WAAW,CAAC,OAAO,GAAG,cAAc,CAAC;IACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;IAEzB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,UAAU,GAAG,CAAC,EAAU,EAAE,QAAuB,EAAE,EAAE;YACzD,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;gBACrC,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;gBACzD,IAAI,GAAG,EAAE,aAAa,EAAE,CAAC;oBACvB,gBAAgB,CAAC;wBACf,EAAE,EAAE,GAAG,GAAG,CAAC,EAAE,aAAa;wBAC1B,KAAK,EAAE,GAAG,CAAC,aAAa,CAAC,KAAK;wBAC9B,OAAO,EAAE,GAAG,CAAC,aAAa,CAAC,OAAO;qBACnC,CAAC,CAAC;oBACH,OAAO,CAAC,SAAS,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QACF,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QAEjD,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;YACtD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;YAC7B,QAAQ,CAAC,GAAG,CAAC,CAAC;YACd,gBAAgB,CAAC,CAAC,IAAI,EAAE,EAAE;gBACxB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC3B,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;oBAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;wBAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACpC,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;YAClD,KAAK,EAAE,CAAC;QACV,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE;QAC1B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,MAAM,GAAgB,EAAE,CAAC;QAC/B,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;YACjC,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACpB,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CACjC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAC7B,CAAC,MAAM,CAAC;gBACT,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,WAAW,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,MAAM,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAAE,OAAO,EAAE,GAAG,EAAE,CAAC;YAC3C,IAAI,EAAE,KAAK,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC,CAAC;YACzB,IAAI,EAAE,KAAK,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC;YACxB,OAAO,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACpC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IAE5C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAe,EAAE;QACzC,IAAI,YAAY,KAAK,gBAAgB,EAAE,CAAC;YACtC,MAAM,cAAc,GAAkB;gBACpC,IAAI,EAAE,SAAS;gBACf,EAAE,EAAE,mBAAmB;gBACvB,KAAK,EAAE,SAAS;gBAChB,MAAM,EAAE,CAAC,aAAa;aACvB,CAAC;YACF,OAAO;gBACL,cAAc;gBACd,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,EAAiB,EAAE,CAAC,CAAC;oBAC/C,IAAI,EAAE,SAAS;oBACf,EAAE,EAAE,aAAa,OAAO,EAAE;oBAC1B,KAAK,EAAE,OAAO;oBACd,OAAO;oBACP,MAAM,EAAE,aAAa,KAAK,OAAO;iBAClC,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAgB,WAAW;YAC3C,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/E,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;QAE7E,IAAI,CAAC,SAAS;YAAE,OAAO,CAAC,GAAG,SAAS,EAAE,GAAG,YAAY,EAAE,GAAG,SAAS,CAAC,CAAC;QAErE,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,YAAY,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,CAAC,GAAG,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,YAAY,EAAE,GAAG,SAAS,CAAC,CAAC;IAClE,CAAC,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;IAEhG,MAAM,aAAa,GAAG,OAAO,CAAC,GAAe,EAAE;QAC7C,IAAI,CAAC,WAAW;YAAE,OAAO,SAAS,CAAC;QACnC,MAAM,CAAC,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACzC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CACrC,CAAC;QACF,IAAI,CAAC,SAAS,IAAI,YAAY;YAAE,OAAO,QAAQ,CAAC;QAChD,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,CACzC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAC1D,CAAC;QACF,OAAO,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC/E,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC;IAEtE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtE,gBAAgB,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IAE1C,MAAM,UAAU,GAAG,SAAS,IAAI,YAAY;QAC1C,CAAC,CAAC,KAAK,YAAY,KAAK,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,EAAE;QACtE,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC;IACpC,MAAM,YAAY,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,IAAI,KAAK,MAAM;QAChC,CAAC,CAAC,8BAA8B;QAChC,CAAC,CAAC,YAAY;YACZ,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC;gBAC7B,CAAC,CAAC,YAAY,CAAC,MAAM;oBACnB,CAAC,CAAC,mBAAmB,YAAY,CAAC,KAAK,EAAE;oBACzC,CAAC,CAAC,aAAa,YAAY,CAAC,KAAK,UAAU;gBAC7C,CAAC,CAAC,OAAO,IAAI,YAAY;oBACvB,CAAC,CAAC,QAAQ,YAAY,CAAC,KAAK,EAAE;oBAC9B,CAAC,CAAC,YAAY,CAAC,WAAW,IAAI,+DAA+D;YACjG,CAAC,CAAC,+DAA+D,CAAC;IAEtE,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,GAAkB,EAAE,EAAE;QACnD,IAAI,GAAG,CAAC,EAAE,KAAK,sBAAsB,EAAE,CAAC;YACtC,QAAQ,CAAC;gBACP,KAAK,EAAE,gBAAgB;gBACvB,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;gBACtB,QAAQ,EAAE,CAAC;gBACX,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;oBACnB,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;wBACrB,EAAE,EAAE,qBAAqB;wBACzB,KAAK,EAAE,iBAAiB,MAAM,EAAE;wBAChC,OAAO,EAAE,uBAAuB,MAAM,GAAG;qBAC1C,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBACrB,CAAC;aACF,CAAC,CAAC;YACH,OAAO,CAAC,OAAO,CAAC,CAAC;YACjB,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1C,IAAI,IAAI,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC/B,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;oBAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;gBAClD,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YACvB,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,CAAC,SAAS,CAAC,CAAC;QACrB,CAAC;aAAM,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACrB,WAAW,CAAC,GAAG,CAAC,CAAC;YACjB,aAAa,CAAC,EAAE,CAAC,CAAC;YAClB,OAAO,CAAC,OAAO,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;gBAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,SAAS,UAAU,CAAC,IAAc;QAChC,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/B,eAAe,CAAC,IAAI,CAAC,CAAC;YACtB,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACpB,gBAAgB,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;YACpB,eAAe,CAAC,IAAI,CAAC,EAAE,KAAK,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9E,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IAED,SAAS,gBAAgB;QACvB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;QACxC,gBAAgB,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QAC5B,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;YACjC,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;oBAC/B,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;wBAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;oBAClD,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnE,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,CAAC;gBACrC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACvB,IAAI,GAAG,EAAE,CAAC;oBACR,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;wBACd,WAAW,CAAC,GAAG,CAAC,CAAC;wBACjB,aAAa,CAAC,EAAE,CAAC,CAAC;wBAClB,OAAO,CAAC,OAAO,CAAC,CAAC;oBACnB,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,QAAQ,CAAC,CAAC;wBAClB,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;4BAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;wBAClD,CAAC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC;iBAAM,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACxD,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACvB,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpB,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC;YAChC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACf,WAAW,CAAC,IAAI,CAAC,CAAC;gBAClB,aAAa,CAAC,EAAE,CAAC,CAAC;gBAClB,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpB,CAAC;iBAAM,IAAI,GAAG,CAAC,MAAM,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACxC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAClB,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAClB,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBACvB,IAAI,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC;oBAChC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,OAAO;wBAAE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;oBACxD,OAAO,CAAC,UAAU,CAAC,GAAG,CACpB,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAC5D,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;wBACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;oBAClD,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACvC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,CAAC;iBAAM,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjE,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;oBACrC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC;YAC3B,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACf,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACf,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpB,CAAC;iBAAM,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;gBAC5B,QAAQ,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5D,CAAC;iBAAM,IAAI,GAAG,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC;gBAC9B,QAAQ,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;YAC/E,CAAC;iBAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACrC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACf,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAClB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACrB,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YAC/B,IAAI,GAAG,CAAC,MAAM,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;gBAChC,aAAa,CAAC,CAAC,CAAC,CAAC;gBACjB,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAClB,OAAO;YACT,CAAC;QACH,CAAC;QAED,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACf,cAAc,CAAC,EAAE,CAAC,CAAC;gBACnB,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpB,CAAC;iBAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACtB,MAAM,IAAI,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;gBAC1C,IAAI,IAAI;oBAAE,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC3B,cAAc,CAAC,EAAE,CAAC,CAAC;gBACnB,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpB,CAAC;iBAAM,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACvC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,CAAC;iBAAM,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjE,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;oBACrC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;YACD,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBAChB,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9C,CAAC;iBAAM,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;gBACzB,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE;oBACrB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAClD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC9B,CAAC,CAAC,CAAC;YACL,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;YACZ,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QAED,IAAI,KAAK,KAAK,GAAG,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAClD,aAAa,CAAC,CAAC,CAAC,CAAC;YACjB,OAAO,CAAC,MAAM,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QAED,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,OAAO,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;gBAC/B,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBAChB,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC3C,CAAC;qBAAM,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;oBACzB,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvD,CAAC;qBAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;oBACtB,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC5C,CAAC;qBAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;oBACxB,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBACxD,CAAC;qBAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;oBACtB,cAAc,CAAC,UAAU,CAAC,CAAC;gBAC7B,CAAC;gBACD,OAAO;YACT,CAAC;YAED,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACf,cAAc,CAAC,UAAU,CAAC,CAAC;YAC7B,CAAC;iBAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBACvB,gBAAgB,CAAC,CAAC,IAAI,EAAE,EAAE;oBACxB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAC7C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAClD,CAAC;oBACF,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC1B,IAAI,MAAM,EAAE,CAAC;wBACX,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;wBACzC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;oBACnC,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;gBACzB,gBAAgB,CAAC,CAAC,IAAI,EAAE,EAAE;oBACxB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAC7C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAClD,CAAC;oBACF,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC1B,IAAI,MAAM,EAAE,CAAC;wBACX,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;wBACzC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;oBAChD,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACtB,gBAAgB,CAAC,CAAC,IAAI,EAAE,EAAE;oBACxB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAC7C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAClD,CAAC;oBACF,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC1B,IAAI,MAAM,EAAE,CAAC;wBACX,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;wBACzC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,CAAC,CAAC;oBACpC,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACxB,gBAAgB,CAAC,CAAC,IAAI,EAAE,EAAE;oBACxB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAC7C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAClD,CAAC;oBACF,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC1B,IAAI,MAAM,EAAE,CAAC;wBACX,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;wBACzC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;oBACjD,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC,CAAC;YACL,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YACzB,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE;gBACrB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAClD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACtB,IAAI,aAAa,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC3B,gBAAgB,EAAE,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;gBAC1C,IAAI,IAAI;oBAAE,UAAU,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;YAC1C,IAAI,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClC,UAAU,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;iBAAM,IAAI,IAAI,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC;gBACtC,gBAAgB,CAAC,CAAC,IAAI,EAAE,EAAE;oBACxB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;wBACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACvB,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACpB,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,IAAI,EAAE,CAAC;gBAChB,eAAe,CAAC,IAAI,CAAC,EAAE,KAAK,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC9E,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YACzB,cAAc,CAAC,EAAE,CAAC,CAAC;YACnB,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpB,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACtB,IAAI,aAAa,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC3B,gBAAgB,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;YAC9B,CAAC;iBAAM,IAAI,SAAS,IAAI,YAAY,EAAE,CAAC;gBACrC,eAAe,CAAC,IAAI,CAAC,CAAC;gBACtB,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,EAAE,CAAC;YACT,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YACrC,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,EAAE,CAAC;QACT,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,OAAO,EAAE,CAAC,aACpC,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,MAAM,oBAAW,EAClC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,qBAAY,EAC9B,KAAC,IAAI,IAAC,IAAI,kBAAE,MAAM,CAAC,IAAI,GAAQ,EAC9B,OAAO,CAAC,SAAS,IAAI,CACpB,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,kBAAS,EAC3B,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,wBAAI,OAAO,CAAC,SAAS,IAAQ,IAC1C,CACR,EACA,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAChC,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,kBAAS,EAC3B,MAAC,IAAI,IAAC,KAAK,EAAC,SAAS,wBAAI,OAAO,CAAC,UAAU,CAAC,MAAM,IAAQ,IACrD,CACR,EACA,aAAa,IAAI,CAChB,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,kBAAS,EAC3B,MAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,wBAAI,aAAa,IAAQ,IACxC,CACR,EACA,OAAO,CAAC,EAAE,CAAC,IAAI,IAAI,CAClB,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,kBAAS,EAC3B,MAAC,IAAI,IAAC,KAAK,EAAC,KAAK,wBAAI,OAAO,CAAC,EAAE,CAAC,IAAI,IAAQ,IACvC,CACR,IACG,EAEL,IAAI,KAAK,QAAQ,IAAI,CACpB,MAAC,GAAG,IAAC,OAAO,EAAE,CAAC,aACb,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,6BAAU,EAC5B,MAAC,IAAI,oBAAG,WAAW,IAAQ,EAC3B,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,mBAAI,aAAa,CAAC,MAAM,SAAS,IAC/C,CACP,EAED,MAAC,GAAG,IAAC,SAAS,EAAE,CAAC,aACd,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAC3B,KAAC,KAAK,IACJ,KAAK,EAAC,UAAU,EAChB,WAAW,EAAC,MAAM,EAClB,MAAM,EAAE,QAAQ,GAAG,CAAC,EACpB,KAAK,EAAE,gBAAgB,YAEvB,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,aACvD,KAAC,GAAG,cACF,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,MAAM,YAAE,KAAK,CAAC,KAAK,GAAQ,GACxC,EACN,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,YACrC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAChC,KAAC,GAAG,cACF,MAAC,IAAI,IAAC,KAAK,EAAE,CAAC,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,aACjD,CAAC,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAG,MAAM,IACrC,IAHC,MAAM,CAIV,CACP,CAAC,GACE,EACN,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,4EAA+C,GAC7D,IACF,GACA,CACT,CAAC,CAAC,CAAC,CACF,KAAC,WAAW,IACV,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,gBAAgB,EACvB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,WAAW,KAAK,UAAU,EACnC,QAAQ,EAAE,QAAQ,GAClB,CACH,EACD,KAAC,GAAG,IAAC,KAAK,EAAE,CAAC,GAAI,EACjB,KAAC,YAAY,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,GAAI,EAC5E,KAAC,GAAG,IAAC,KAAK,EAAE,CAAC,GAAI,EAChB,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CACjB,KAAC,KAAK,IACJ,KAAK,EAAC,MAAM,EACZ,UAAU,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EACvD,UAAU,EACR,aAAa,GAAG,CAAC;4BACf,CAAC,CAAC,KAAC,IAAI,cAAE,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,GAAQ;4BACzF,CAAC,CAAC,SAAS,EAEf,eAAe,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC1C,WAAW,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EACxD,MAAM,EAAE,UAAU,GAAG,CAAC,EACtB,KAAK,EAAE,eAAe,YAEtB,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAE,CAAC,YACvC,WAAW,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;gCACvE,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;oCACnB,KAAK,QAAQ;wCACX,OAAO,KAAC,GAAG,cAAsB,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,MAAM,YAAE,KAAK,CAAC,IAAI,GAAQ,IAA3D,CAAC,GAAG,UAAU,CAAmD,CAAC;oCACrF,KAAK,KAAK;wCACR,OAAO,CACL,MAAC,GAAG,eACF,MAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,mBAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAQ,EACpD,KAAC,IAAI,cAAE,KAAK,CAAC,IAAI,GAAQ,KAFjB,CAAC,GAAG,UAAU,CAGlB,CACP,CAAC;oCACJ,KAAK,QAAQ;wCACX,OAAO,KAAC,GAAG,cAAsB,KAAC,IAAI,oBAAS,IAA9B,CAAC,GAAG,UAAU,CAAsB,CAAC;oCACxD,KAAK,MAAM;wCACT,OAAO,KAAC,GAAG,cAAsB,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,kCAAyB,IAA3D,CAAC,GAAG,UAAU,CAAmD,CAAC;gCACvF,CAAC;4BACH,CAAC,CAAC,GACE,GACA,CACT,CAAC,CAAC,CAAC,CACF,KAAC,WAAW,IACV,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,eAAe,EACtB,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAC5D,YAAY,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAChD,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,UAAU,GACpB,CACH,IACG,EAEN,KAAC,GAAG,cACF,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,UAAU,GAAQ,GAClC,IACF,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/ui/app.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.test.d.ts","sourceRoot":"","sources":["../../src/ui/app.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
3
|
+
import { act } from 'react';
|
|
4
|
+
import { render } from 'ink-testing-library';
|
|
5
|
+
import { App } from './app.js';
|
|
6
|
+
import { EventBus } from '../core/event-bus.js';
|
|
7
|
+
import { StatusStore } from '../status/store.js';
|
|
8
|
+
function createMockRuntime() {
|
|
9
|
+
const eventBus = new EventBus();
|
|
10
|
+
const statusStore = new StatusStore();
|
|
11
|
+
const taskRunner = {
|
|
12
|
+
run: vi.fn().mockResolvedValue(undefined),
|
|
13
|
+
stop: vi.fn(),
|
|
14
|
+
abortAll: vi.fn(),
|
|
15
|
+
setCommands: vi.fn(),
|
|
16
|
+
abort: vi.fn(),
|
|
17
|
+
};
|
|
18
|
+
return {
|
|
19
|
+
eventBus,
|
|
20
|
+
statusStore,
|
|
21
|
+
taskRunner,
|
|
22
|
+
pluginManager: { register: vi.fn(), executeHook: vi.fn(), loadFromConfig: vi.fn() },
|
|
23
|
+
gitBranch: 'main',
|
|
24
|
+
workspaces: [],
|
|
25
|
+
ci: { isCI: false, name: undefined },
|
|
26
|
+
stop: vi.fn(),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
const baseConfig = {
|
|
30
|
+
name: 'test-project',
|
|
31
|
+
commands: [
|
|
32
|
+
{ id: 'build', label: 'Build', command: 'npm run build', description: 'Build the project' },
|
|
33
|
+
{ id: 'test', label: 'Test', command: 'npm test' },
|
|
34
|
+
],
|
|
35
|
+
};
|
|
36
|
+
describe('App', () => {
|
|
37
|
+
let runtime;
|
|
38
|
+
beforeEach(() => {
|
|
39
|
+
runtime = createMockRuntime();
|
|
40
|
+
});
|
|
41
|
+
afterEach(() => {
|
|
42
|
+
vi.restoreAllMocks();
|
|
43
|
+
});
|
|
44
|
+
it('renders the project name in the header', () => {
|
|
45
|
+
const { lastFrame } = render(_jsx(App, { config: baseConfig, runtime: runtime }));
|
|
46
|
+
expect(lastFrame()).toContain('test-project');
|
|
47
|
+
});
|
|
48
|
+
it('shows the git branch', () => {
|
|
49
|
+
const { lastFrame } = render(_jsx(App, { config: baseConfig, runtime: runtime }));
|
|
50
|
+
expect(lastFrame()).toContain('⎇ main');
|
|
51
|
+
});
|
|
52
|
+
it('renders command items', () => {
|
|
53
|
+
const { lastFrame } = render(_jsx(App, { config: baseConfig, runtime: runtime }));
|
|
54
|
+
const frame = lastFrame();
|
|
55
|
+
expect(frame).toContain('Build');
|
|
56
|
+
expect(frame).toContain('Test');
|
|
57
|
+
});
|
|
58
|
+
it('shows no tasks yet in output panel', () => {
|
|
59
|
+
const { lastFrame } = render(_jsx(App, { config: baseConfig, runtime: runtime }));
|
|
60
|
+
expect(lastFrame()).toContain('No tasks yet');
|
|
61
|
+
});
|
|
62
|
+
it('shows selected command description in footer', () => {
|
|
63
|
+
const { lastFrame } = render(_jsx(App, { config: baseConfig, runtime: runtime }));
|
|
64
|
+
expect(lastFrame()).toContain('Build the project');
|
|
65
|
+
});
|
|
66
|
+
it('renders with groups', () => {
|
|
67
|
+
const config = {
|
|
68
|
+
name: 'test',
|
|
69
|
+
commands: [
|
|
70
|
+
{ id: 'build', label: 'Build', command: 'npm run build', group: 'Build' },
|
|
71
|
+
{ id: 'test', label: 'Test', command: 'npm test', group: 'Test' },
|
|
72
|
+
],
|
|
73
|
+
};
|
|
74
|
+
const { lastFrame } = render(_jsx(App, { config: config, runtime: runtime }));
|
|
75
|
+
expect(lastFrame()).toContain('▶ Build');
|
|
76
|
+
expect(lastFrame()).toContain('▶ Test');
|
|
77
|
+
});
|
|
78
|
+
it('shows active profile in header', () => {
|
|
79
|
+
const config = {
|
|
80
|
+
name: 'test',
|
|
81
|
+
commands: [{ id: 'build', label: 'Build', command: 'npm run build' }],
|
|
82
|
+
profiles: { prod: { commands: [] } },
|
|
83
|
+
profile: 'prod',
|
|
84
|
+
};
|
|
85
|
+
const { lastFrame } = render(_jsx(App, { config: config, runtime: runtime }));
|
|
86
|
+
expect(lastFrame()).toContain('⚙ prod');
|
|
87
|
+
});
|
|
88
|
+
it('shows workspace count when present', () => {
|
|
89
|
+
runtime.workspaces = [{ name: 'pkg-a', path: '/pkg-a' }];
|
|
90
|
+
const { lastFrame } = render(_jsx(App, { config: baseConfig, runtime: runtime }));
|
|
91
|
+
expect(lastFrame()).toContain('⊞ 1');
|
|
92
|
+
});
|
|
93
|
+
it('handles status store updates', () => {
|
|
94
|
+
const { lastFrame } = render(_jsx(App, { config: baseConfig, runtime: runtime }));
|
|
95
|
+
act(() => {
|
|
96
|
+
runtime.statusStore.updateTask('build', {
|
|
97
|
+
id: 'build',
|
|
98
|
+
label: 'Build',
|
|
99
|
+
status: 'running',
|
|
100
|
+
output: 'compiling...',
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
const frame = lastFrame();
|
|
104
|
+
expect(frame).toContain('compiling...');
|
|
105
|
+
});
|
|
106
|
+
it('shows confirm prompt for confirm commands', () => {
|
|
107
|
+
const config = {
|
|
108
|
+
name: 'test',
|
|
109
|
+
commands: [
|
|
110
|
+
{ id: 'deploy', label: 'Deploy', command: 'npm run deploy', confirm: true },
|
|
111
|
+
],
|
|
112
|
+
};
|
|
113
|
+
const { lastFrame, stdin } = render(_jsx(App, { config: config, runtime: runtime }));
|
|
114
|
+
act(() => { stdin.write('\r'); });
|
|
115
|
+
const frame = lastFrame();
|
|
116
|
+
expect(frame).toContain('⚠');
|
|
117
|
+
});
|
|
118
|
+
it('shows DCC in header', () => {
|
|
119
|
+
const { lastFrame } = render(_jsx(App, { config: baseConfig, runtime: runtime }));
|
|
120
|
+
expect(lastFrame()).toContain('DCC');
|
|
121
|
+
});
|
|
122
|
+
it('shows status pane (middle panel)', () => {
|
|
123
|
+
const { lastFrame } = render(_jsx(App, { config: baseConfig, runtime: runtime }));
|
|
124
|
+
expect(lastFrame()).toContain('Status');
|
|
125
|
+
});
|
|
126
|
+
it('shows output pane (right panel)', () => {
|
|
127
|
+
const { lastFrame } = render(_jsx(App, { config: baseConfig, runtime: runtime }));
|
|
128
|
+
expect(lastFrame()).toContain('Output');
|
|
129
|
+
});
|
|
130
|
+
it('shows CI badge when in CI environment', () => {
|
|
131
|
+
runtime.ci = { isCI: true, name: 'GitHub Actions' };
|
|
132
|
+
const { lastFrame } = render(_jsx(App, { config: baseConfig, runtime: runtime }));
|
|
133
|
+
expect(lastFrame()).toContain('⊡ GitHub Actions');
|
|
134
|
+
});
|
|
135
|
+
it('switches pane focus on Tab', () => {
|
|
136
|
+
const { lastFrame, stdin } = render(_jsx(App, { config: baseConfig, runtime: runtime }));
|
|
137
|
+
act(() => { stdin.write('\t'); });
|
|
138
|
+
const frame = lastFrame();
|
|
139
|
+
expect(frame).toContain('Output');
|
|
140
|
+
});
|
|
141
|
+
it('enters search mode on / key', () => {
|
|
142
|
+
const { lastFrame, stdin } = render(_jsx(App, { config: baseConfig, runtime: runtime }));
|
|
143
|
+
act(() => { stdin.write('/'); });
|
|
144
|
+
expect(lastFrame()).toContain('🔍');
|
|
145
|
+
});
|
|
146
|
+
it('shows default footer hint for command without description', () => {
|
|
147
|
+
const config = {
|
|
148
|
+
name: 'test',
|
|
149
|
+
commands: [
|
|
150
|
+
{ id: 'foo', label: 'Foo', command: 'echo foo' },
|
|
151
|
+
],
|
|
152
|
+
};
|
|
153
|
+
const { lastFrame } = render(_jsx(App, { config: config, runtime: runtime }));
|
|
154
|
+
expect(lastFrame()).toContain('Enter to run');
|
|
155
|
+
});
|
|
156
|
+
});
|
|
157
|
+
//# sourceMappingURL=app.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.test.js","sourceRoot":"","sources":["../../src/ui/app.test.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAc,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,SAAS,iBAAiB;IACxB,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;IAChC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IACtC,MAAM,UAAU,GAAG;QACjB,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;QACzC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;QACb,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE;QACjB,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE;QACpB,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;KACf,CAAC;IACF,OAAO;QACL,QAAQ;QACR,WAAW;QACX,UAAU;QACV,aAAa,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;QACnF,SAAS,EAAE,MAAM;QACjB,UAAU,EAAE,EAAsC;QAClD,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAA+B,EAAE;QAC1D,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;KACd,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,GAAG;IACjB,IAAI,EAAE,cAAc;IACpB,QAAQ,EAAE;QACR,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,mBAAmB,EAAE;QAC3F,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;KACnD;CACF,CAAC;AAEF,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;IACnB,IAAI,OAA6C,CAAC;IAElD,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,GAAG,iBAAiB,EAAS,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,eAAe,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAC,GAAG,IAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAc,GAAI,CAAC,CAAC;QACnF,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAC,GAAG,IAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAc,GAAI,CAAC,CAAC;QACnF,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAC,GAAG,IAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAc,GAAI,CAAC,CAAC;QACnF,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;QAC1B,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAC,GAAG,IAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAc,GAAI,CAAC,CAAC;QACnF,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAC,GAAG,IAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAc,GAAI,CAAC,CAAC;QACnF,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC7B,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE;gBACR,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE;gBACzE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE;aAClE;SACF,CAAC;QACF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAC,GAAG,IAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAc,GAAI,CAAC,CAAC;QAC/E,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;YACrE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE;YACpC,OAAO,EAAE,MAAM;SAChB,CAAC;QACF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAC,GAAG,IAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAc,GAAI,CAAC,CAAC;QAC/E,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,OAAO,CAAC,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAC,GAAG,IAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAc,GAAI,CAAC,CAAC;QACnF,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAC,GAAG,IAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAc,GAAI,CAAC,CAAC;QACnF,GAAG,CAAC,GAAG,EAAE;YACP,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,EAAE;gBACtC,EAAE,EAAE,OAAO;gBACX,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,cAAc;aACvB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;QAC1B,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE;gBACR,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE;aAC5E;SACF,CAAC;QACF,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,KAAC,GAAG,IAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAc,GAAI,CAAC,CAAC;QACtF,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;QAC1B,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC7B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAC,GAAG,IAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAc,GAAI,CAAC,CAAC;QACnF,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAC,GAAG,IAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAc,GAAI,CAAC,CAAC;QACnF,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAC,GAAG,IAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAc,GAAI,CAAC,CAAC;QACnF,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;QACpD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAC,GAAG,IAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAc,GAAI,CAAC,CAAC;QACnF,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,KAAC,GAAG,IAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAc,GAAI,CAAC,CAAC;QAC1F,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;QAC1B,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,KAAC,GAAG,IAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAc,GAAI,CAAC,CAAC;QAC1F,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE;gBACR,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE;aACjD;SACF,CAAC;QACF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAC,GAAG,IAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAc,GAAI,CAAC,CAAC;QAC/E,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hartvig/developer-control-center",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.8",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"private": false,
|
|
6
6
|
"bin": {
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"react": "^19.0.0"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@types/node": "^
|
|
25
|
+
"@types/node": "^26.0.0",
|
|
26
26
|
"@types/react": "^19.0.0",
|
|
27
27
|
"@vitest/coverage-v8": "^4.1.9",
|
|
28
28
|
"ink-testing-library": "^4.0.0",
|
package/src/cli.ts
CHANGED
package/src/core/runtime.ts
CHANGED
package/src/core/task-runner.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { spawn,
|
|
1
|
+
import { spawn, exec, ChildProcess } from 'child_process';
|
|
2
2
|
import fs from 'fs';
|
|
3
3
|
import { ProkomCommand } from '../config/types.js';
|
|
4
4
|
import { StatusStore } from '../status/store.js';
|
|
@@ -8,11 +8,13 @@ import { EventBus } from './event-bus.js';
|
|
|
8
8
|
class FileWatcher {
|
|
9
9
|
private watcher?: fs.FSWatcher;
|
|
10
10
|
private debounceTimer?: ReturnType<typeof setTimeout>;
|
|
11
|
+
private exclude = /[/\\](node_modules|\.git)[/\\]/;
|
|
11
12
|
|
|
12
13
|
watch(dir: string, onChange: () => void): boolean {
|
|
13
14
|
this.stop();
|
|
14
15
|
try {
|
|
15
|
-
this.watcher = fs.watch(dir, { recursive: true }, () => {
|
|
16
|
+
this.watcher = fs.watch(dir, { recursive: true }, (event, filename) => {
|
|
17
|
+
if (filename && this.exclude.test(filename.toString())) return;
|
|
16
18
|
if (this.debounceTimer) clearTimeout(this.debounceTimer);
|
|
17
19
|
this.debounceTimer = setTimeout(onChange, 500);
|
|
18
20
|
});
|
|
@@ -63,7 +65,8 @@ export class TaskRunner {
|
|
|
63
65
|
|
|
64
66
|
const existing = this.statusStore.getTask(command.id);
|
|
65
67
|
if (existing?.status === 'running') {
|
|
66
|
-
return;
|
|
68
|
+
if (!command.parallel) return;
|
|
69
|
+
this.abort(command.id);
|
|
67
70
|
}
|
|
68
71
|
|
|
69
72
|
await this.pluginManager?.executeHook('beforeRun', command);
|
|
@@ -83,13 +86,26 @@ export class TaskRunner {
|
|
|
83
86
|
|
|
84
87
|
this.eventBus.emit('task:start', command);
|
|
85
88
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
89
|
+
let child: ChildProcess;
|
|
90
|
+
try {
|
|
91
|
+
child = spawn(command.command, [], {
|
|
92
|
+
shell: true,
|
|
93
|
+
detached: true,
|
|
94
|
+
windowsHide: true,
|
|
95
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
96
|
+
cwd: command.cwd,
|
|
97
|
+
});
|
|
98
|
+
} catch (err) {
|
|
99
|
+
this.statusStore.updateTask(command.id, {
|
|
100
|
+
status: 'failure',
|
|
101
|
+
output: `Failed to spawn: ${err instanceof Error ? err.message : String(err)}\n`,
|
|
102
|
+
exitCode: -1,
|
|
103
|
+
endTime: Date.now(),
|
|
104
|
+
});
|
|
105
|
+
this.eventBus.emit('task:error', command.id, err instanceof Error ? err : new Error(String(err)));
|
|
106
|
+
this.pluginManager?.executeHook('onError', command.id, err instanceof Error ? err : new Error(String(err)));
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
93
109
|
|
|
94
110
|
this.running.set(command.id, child);
|
|
95
111
|
|
|
@@ -97,6 +113,16 @@ export class TaskRunner {
|
|
|
97
113
|
this.startCheck(command);
|
|
98
114
|
}
|
|
99
115
|
|
|
116
|
+
let timedOut = false;
|
|
117
|
+
const timeoutMs = command.timeout ?? 0;
|
|
118
|
+
let timeoutTimer: ReturnType<typeof setTimeout> | null = null;
|
|
119
|
+
if (timeoutMs > 0) {
|
|
120
|
+
timeoutTimer = setTimeout(() => {
|
|
121
|
+
timedOut = true;
|
|
122
|
+
this.abort(command.id);
|
|
123
|
+
}, timeoutMs);
|
|
124
|
+
}
|
|
125
|
+
|
|
100
126
|
let output = '';
|
|
101
127
|
|
|
102
128
|
child.stdout?.on('data', (data: Buffer) => {
|
|
@@ -116,6 +142,7 @@ export class TaskRunner {
|
|
|
116
142
|
});
|
|
117
143
|
|
|
118
144
|
child.on('close', (exitCode) => {
|
|
145
|
+
if (timeoutTimer) clearTimeout(timeoutTimer);
|
|
119
146
|
this.running.delete(command.id);
|
|
120
147
|
|
|
121
148
|
if (command.toggle?.check) return;
|
|
@@ -171,6 +198,14 @@ export class TaskRunner {
|
|
|
171
198
|
}
|
|
172
199
|
this.stopWatcher(id);
|
|
173
200
|
this.stopCheck(id);
|
|
201
|
+
const existing = this.statusStore.getTask(id);
|
|
202
|
+
if (existing?.status === 'running') {
|
|
203
|
+
this.statusStore.updateTask(id, {
|
|
204
|
+
status: 'failure',
|
|
205
|
+
endTime: Date.now(),
|
|
206
|
+
});
|
|
207
|
+
this.eventBus.emit('task:complete', id, -1);
|
|
208
|
+
}
|
|
174
209
|
}
|
|
175
210
|
|
|
176
211
|
abortAll(): void {
|
|
@@ -446,16 +481,16 @@ export class TaskRunner {
|
|
|
446
481
|
|
|
447
482
|
const checkCmd = command.toggle!.check!;
|
|
448
483
|
const interval = setInterval(() => {
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
}
|
|
484
|
+
exec(checkCmd, { encoding: 'utf-8', timeout: 3000 }, (err) => {
|
|
485
|
+
if (err) {
|
|
486
|
+
this.statusStore.updateTask(id, {
|
|
487
|
+
status: 'failure',
|
|
488
|
+
endTime: Date.now(),
|
|
489
|
+
});
|
|
490
|
+
this.eventBus.emit('task:complete', id, -1);
|
|
491
|
+
this.stopCheck(id);
|
|
492
|
+
}
|
|
493
|
+
});
|
|
459
494
|
}, this.CHECK_INTERVAL);
|
|
460
495
|
|
|
461
496
|
this.checkIntervals.set(id, interval);
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
2
|
+
import React, { act } from 'react';
|
|
3
|
+
import { render } from 'ink-testing-library';
|
|
4
|
+
import { App } from './app.js';
|
|
5
|
+
import { EventBus } from '../core/event-bus.js';
|
|
6
|
+
import { StatusStore } from '../status/store.js';
|
|
7
|
+
|
|
8
|
+
function createMockRuntime() {
|
|
9
|
+
const eventBus = new EventBus();
|
|
10
|
+
const statusStore = new StatusStore();
|
|
11
|
+
const taskRunner = {
|
|
12
|
+
run: vi.fn().mockResolvedValue(undefined),
|
|
13
|
+
stop: vi.fn(),
|
|
14
|
+
abortAll: vi.fn(),
|
|
15
|
+
setCommands: vi.fn(),
|
|
16
|
+
abort: vi.fn(),
|
|
17
|
+
};
|
|
18
|
+
return {
|
|
19
|
+
eventBus,
|
|
20
|
+
statusStore,
|
|
21
|
+
taskRunner,
|
|
22
|
+
pluginManager: { register: vi.fn(), executeHook: vi.fn(), loadFromConfig: vi.fn() },
|
|
23
|
+
gitBranch: 'main',
|
|
24
|
+
workspaces: [] as { name: string; path: string }[],
|
|
25
|
+
ci: { isCI: false, name: undefined as string | undefined },
|
|
26
|
+
stop: vi.fn(),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const baseConfig = {
|
|
31
|
+
name: 'test-project',
|
|
32
|
+
commands: [
|
|
33
|
+
{ id: 'build', label: 'Build', command: 'npm run build', description: 'Build the project' },
|
|
34
|
+
{ id: 'test', label: 'Test', command: 'npm test' },
|
|
35
|
+
],
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
describe('App', () => {
|
|
39
|
+
let runtime: ReturnType<typeof createMockRuntime>;
|
|
40
|
+
|
|
41
|
+
beforeEach(() => {
|
|
42
|
+
runtime = createMockRuntime() as any;
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
afterEach(() => {
|
|
46
|
+
vi.restoreAllMocks();
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
it('renders the project name in the header', () => {
|
|
50
|
+
const { lastFrame } = render(<App config={baseConfig} runtime={runtime as any} />);
|
|
51
|
+
expect(lastFrame()).toContain('test-project');
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
it('shows the git branch', () => {
|
|
55
|
+
const { lastFrame } = render(<App config={baseConfig} runtime={runtime as any} />);
|
|
56
|
+
expect(lastFrame()).toContain('⎇ main');
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
it('renders command items', () => {
|
|
60
|
+
const { lastFrame } = render(<App config={baseConfig} runtime={runtime as any} />);
|
|
61
|
+
const frame = lastFrame();
|
|
62
|
+
expect(frame).toContain('Build');
|
|
63
|
+
expect(frame).toContain('Test');
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
it('shows no tasks yet in output panel', () => {
|
|
67
|
+
const { lastFrame } = render(<App config={baseConfig} runtime={runtime as any} />);
|
|
68
|
+
expect(lastFrame()).toContain('No tasks yet');
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
it('shows selected command description in footer', () => {
|
|
72
|
+
const { lastFrame } = render(<App config={baseConfig} runtime={runtime as any} />);
|
|
73
|
+
expect(lastFrame()).toContain('Build the project');
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
it('renders with groups', () => {
|
|
77
|
+
const config = {
|
|
78
|
+
name: 'test',
|
|
79
|
+
commands: [
|
|
80
|
+
{ id: 'build', label: 'Build', command: 'npm run build', group: 'Build' },
|
|
81
|
+
{ id: 'test', label: 'Test', command: 'npm test', group: 'Test' },
|
|
82
|
+
],
|
|
83
|
+
};
|
|
84
|
+
const { lastFrame } = render(<App config={config} runtime={runtime as any} />);
|
|
85
|
+
expect(lastFrame()).toContain('▶ Build');
|
|
86
|
+
expect(lastFrame()).toContain('▶ Test');
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
it('shows active profile in header', () => {
|
|
90
|
+
const config = {
|
|
91
|
+
name: 'test',
|
|
92
|
+
commands: [{ id: 'build', label: 'Build', command: 'npm run build' }],
|
|
93
|
+
profiles: { prod: { commands: [] } },
|
|
94
|
+
profile: 'prod',
|
|
95
|
+
};
|
|
96
|
+
const { lastFrame } = render(<App config={config} runtime={runtime as any} />);
|
|
97
|
+
expect(lastFrame()).toContain('⚙ prod');
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
it('shows workspace count when present', () => {
|
|
101
|
+
runtime.workspaces = [{ name: 'pkg-a', path: '/pkg-a' }];
|
|
102
|
+
const { lastFrame } = render(<App config={baseConfig} runtime={runtime as any} />);
|
|
103
|
+
expect(lastFrame()).toContain('⊞ 1');
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
it('handles status store updates', () => {
|
|
107
|
+
const { lastFrame } = render(<App config={baseConfig} runtime={runtime as any} />);
|
|
108
|
+
act(() => {
|
|
109
|
+
runtime.statusStore.updateTask('build', {
|
|
110
|
+
id: 'build',
|
|
111
|
+
label: 'Build',
|
|
112
|
+
status: 'running',
|
|
113
|
+
output: 'compiling...',
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
const frame = lastFrame();
|
|
117
|
+
expect(frame).toContain('compiling...');
|
|
118
|
+
});
|
|
119
|
+
|
|
120
|
+
it('shows confirm prompt for confirm commands', () => {
|
|
121
|
+
const config = {
|
|
122
|
+
name: 'test',
|
|
123
|
+
commands: [
|
|
124
|
+
{ id: 'deploy', label: 'Deploy', command: 'npm run deploy', confirm: true },
|
|
125
|
+
],
|
|
126
|
+
};
|
|
127
|
+
const { lastFrame, stdin } = render(<App config={config} runtime={runtime as any} />);
|
|
128
|
+
act(() => { stdin.write('\r'); });
|
|
129
|
+
const frame = lastFrame();
|
|
130
|
+
expect(frame).toContain('⚠');
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
it('shows DCC in header', () => {
|
|
134
|
+
const { lastFrame } = render(<App config={baseConfig} runtime={runtime as any} />);
|
|
135
|
+
expect(lastFrame()).toContain('DCC');
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
it('shows status pane (middle panel)', () => {
|
|
139
|
+
const { lastFrame } = render(<App config={baseConfig} runtime={runtime as any} />);
|
|
140
|
+
expect(lastFrame()).toContain('Status');
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
it('shows output pane (right panel)', () => {
|
|
144
|
+
const { lastFrame } = render(<App config={baseConfig} runtime={runtime as any} />);
|
|
145
|
+
expect(lastFrame()).toContain('Output');
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
it('shows CI badge when in CI environment', () => {
|
|
149
|
+
runtime.ci = { isCI: true, name: 'GitHub Actions' };
|
|
150
|
+
const { lastFrame } = render(<App config={baseConfig} runtime={runtime as any} />);
|
|
151
|
+
expect(lastFrame()).toContain('⊡ GitHub Actions');
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
it('switches pane focus on Tab', () => {
|
|
155
|
+
const { lastFrame, stdin } = render(<App config={baseConfig} runtime={runtime as any} />);
|
|
156
|
+
act(() => { stdin.write('\t'); });
|
|
157
|
+
const frame = lastFrame();
|
|
158
|
+
expect(frame).toContain('Output');
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
it('enters search mode on / key', () => {
|
|
162
|
+
const { lastFrame, stdin } = render(<App config={baseConfig} runtime={runtime as any} />);
|
|
163
|
+
act(() => { stdin.write('/'); });
|
|
164
|
+
expect(lastFrame()).toContain('🔍');
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
it('shows default footer hint for command without description', () => {
|
|
168
|
+
const config = {
|
|
169
|
+
name: 'test',
|
|
170
|
+
commands: [
|
|
171
|
+
{ id: 'foo', label: 'Foo', command: 'echo foo' },
|
|
172
|
+
],
|
|
173
|
+
};
|
|
174
|
+
const { lastFrame } = render(<App config={config} runtime={runtime as any} />);
|
|
175
|
+
expect(lastFrame()).toContain('Enter to run');
|
|
176
|
+
});
|
|
177
|
+
});
|
package/src/ui/app.tsx
CHANGED
|
@@ -3,6 +3,7 @@ import { Box, Text, useInput, useApp, useStdout } from 'ink';
|
|
|
3
3
|
import { Runtime } from '../core/index.js';
|
|
4
4
|
import { ProkomConfig, ProkomCommand, mergeCommands } from '../config/index.js';
|
|
5
5
|
import { TaskState } from '../status/types.js';
|
|
6
|
+
import { sendNotification } from '../core/notifier.js';
|
|
6
7
|
import { CommandList, MenuGroup, MenuItem, ProfileOption } from './command-list.js';
|
|
7
8
|
import { MetricsPanel } from './metrics-panel.js';
|
|
8
9
|
import { Panel } from './panel.js';
|
|
@@ -99,11 +100,20 @@ export const App: React.FC<AppProps> = ({ config, runtime }) => {
|
|
|
99
100
|
const [multiSelected, setMultiSelected] = useState<Set<string>>(new Set());
|
|
100
101
|
const [helpScroll, setHelpScroll] = useState(0);
|
|
101
102
|
const [activeProfile, setActiveProfile] = useState<string | undefined>(config.profile);
|
|
102
|
-
const
|
|
103
|
+
const [termSize, setTermSize] = useState({ rows: stdout?.rows ?? 24, cols: stdout?.columns ?? 120 });
|
|
104
|
+
const terminalRows = termSize.rows;
|
|
103
105
|
const dynamicRows = Math.max(4, terminalRows - 7);
|
|
104
106
|
const menuRows = config.menuRows ?? dynamicRows;
|
|
105
107
|
const outputRows = config.outputRows ?? menuRows;
|
|
106
|
-
const terminalColumns =
|
|
108
|
+
const terminalColumns = termSize.cols;
|
|
109
|
+
|
|
110
|
+
useEffect(() => {
|
|
111
|
+
const onResize = () => {
|
|
112
|
+
setTermSize({ rows: stdout?.rows ?? 24, cols: stdout?.columns ?? 120 });
|
|
113
|
+
};
|
|
114
|
+
stdout?.on?.('resize', onResize);
|
|
115
|
+
return () => { stdout?.off?.('resize', onResize); };
|
|
116
|
+
}, [stdout]);
|
|
107
117
|
const statusPaneWidth = 28;
|
|
108
118
|
|
|
109
119
|
const activeCommands = useMemo(
|
|
@@ -144,8 +154,12 @@ export const App: React.FC<AppProps> = ({ config, runtime }) => {
|
|
|
144
154
|
|
|
145
155
|
useEffect(() => {
|
|
146
156
|
const onComplete = (id: string, exitCode: number | null) => {
|
|
157
|
+
const cmd = commandsRef.current.find((c) => c.id === id);
|
|
158
|
+
if (cmd) {
|
|
159
|
+
const status = exitCode === null ? 'Stopped' : exitCode === 0 ? 'Completed' : 'Failed';
|
|
160
|
+
sendNotification(`DCC: ${cmd.label}`, status);
|
|
161
|
+
}
|
|
147
162
|
if (exitCode != null && exitCode > 0) {
|
|
148
|
-
const cmd = commandsRef.current.find((c) => c.id === id);
|
|
149
163
|
if (cmd?.onNonZeroExit) {
|
|
150
164
|
setConfirmingCmd({
|
|
151
165
|
id: `${cmd.id}:on-nonzero`,
|
|
@@ -484,52 +498,52 @@ export const App: React.FC<AppProps> = ({ config, runtime }) => {
|
|
|
484
498
|
} else if (key.upArrow) {
|
|
485
499
|
setScrollOffsets((prev) => {
|
|
486
500
|
const next = new Map(prev);
|
|
487
|
-
const entries = Array.from(
|
|
501
|
+
const entries = Array.from(tasksRef.current.values()).sort(
|
|
488
502
|
(a, b) => (b.startTime || 0) - (a.startTime || 0),
|
|
489
503
|
);
|
|
490
504
|
const target = entries[0];
|
|
491
505
|
if (target) {
|
|
492
|
-
const
|
|
493
|
-
next.set(target.id,
|
|
506
|
+
const hiddenFromBottom = next.get(target.id) ?? 0;
|
|
507
|
+
next.set(target.id, hiddenFromBottom + 1);
|
|
494
508
|
}
|
|
495
509
|
return next;
|
|
496
510
|
});
|
|
497
511
|
} else if (key.downArrow) {
|
|
498
512
|
setScrollOffsets((prev) => {
|
|
499
513
|
const next = new Map(prev);
|
|
500
|
-
const entries = Array.from(
|
|
514
|
+
const entries = Array.from(tasksRef.current.values()).sort(
|
|
501
515
|
(a, b) => (b.startTime || 0) - (a.startTime || 0),
|
|
502
516
|
);
|
|
503
517
|
const target = entries[0];
|
|
504
518
|
if (target) {
|
|
505
|
-
const
|
|
506
|
-
next.set(target.id, Math.max(0,
|
|
519
|
+
const hiddenFromBottom = next.get(target.id) ?? 0;
|
|
520
|
+
next.set(target.id, Math.max(0, hiddenFromBottom - 1));
|
|
507
521
|
}
|
|
508
522
|
return next;
|
|
509
523
|
});
|
|
510
524
|
} else if (key.pageUp) {
|
|
511
525
|
setScrollOffsets((prev) => {
|
|
512
526
|
const next = new Map(prev);
|
|
513
|
-
const entries = Array.from(
|
|
527
|
+
const entries = Array.from(tasksRef.current.values()).sort(
|
|
514
528
|
(a, b) => (b.startTime || 0) - (a.startTime || 0),
|
|
515
529
|
);
|
|
516
530
|
const target = entries[0];
|
|
517
531
|
if (target) {
|
|
518
|
-
const
|
|
519
|
-
next.set(target.id,
|
|
532
|
+
const hiddenFromBottom = next.get(target.id) ?? 0;
|
|
533
|
+
next.set(target.id, hiddenFromBottom + 10);
|
|
520
534
|
}
|
|
521
535
|
return next;
|
|
522
536
|
});
|
|
523
537
|
} else if (key.pageDown) {
|
|
524
538
|
setScrollOffsets((prev) => {
|
|
525
539
|
const next = new Map(prev);
|
|
526
|
-
const entries = Array.from(
|
|
540
|
+
const entries = Array.from(tasksRef.current.values()).sort(
|
|
527
541
|
(a, b) => (b.startTime || 0) - (a.startTime || 0),
|
|
528
542
|
);
|
|
529
543
|
const target = entries[0];
|
|
530
544
|
if (target) {
|
|
531
|
-
const
|
|
532
|
-
next.set(target.id, Math.max(0,
|
|
545
|
+
const hiddenFromBottom = next.get(target.id) ?? 0;
|
|
546
|
+
next.set(target.id, Math.max(0, hiddenFromBottom - 10));
|
|
533
547
|
}
|
|
534
548
|
return next;
|
|
535
549
|
});
|