@gachlab/devup 0.7.1 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -0
- package/README.md +4 -2
- package/dist/control-plane/client.d.ts +17 -0
- package/dist/control-plane/client.d.ts.map +1 -0
- package/dist/control-plane/socket-server.d.ts +6 -0
- package/dist/control-plane/socket-server.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1640 -894
- package/dist/index.js.map +1 -1
- package/dist/orchestrator/config-watcher.d.ts +22 -0
- package/dist/orchestrator/config-watcher.d.ts.map +1 -0
- package/dist/orchestrator/daemon.d.ts +38 -0
- package/dist/orchestrator/daemon.d.ts.map +1 -0
- package/dist/orchestrator/subcommands.d.ts +7 -0
- package/dist/orchestrator/subcommands.d.ts.map +1 -1
- package/dist/tui/hooks/useControlPlane.d.ts +9 -1
- package/dist/tui/hooks/useControlPlane.d.ts.map +1 -1
- package/dist/tui/hooks/useHotReload.d.ts +2 -3
- package/dist/tui/hooks/useHotReload.d.ts.map +1 -1
- package/dist/tui/hooks/useProcessManager.d.ts +9 -0
- package/dist/tui/hooks/useProcessManager.d.ts.map +1 -1
- package/dist/utils/broadcaster.d.ts +6 -0
- package/dist/utils/broadcaster.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ProcessManager } from '../process/manager.js';
|
|
2
|
+
export interface ConfigWatchOpts {
|
|
3
|
+
configPath: string;
|
|
4
|
+
baseCwd: string;
|
|
5
|
+
manager: ProcessManager;
|
|
6
|
+
/** Receives status lines: success, validation errors, reload errors. */
|
|
7
|
+
log: (msg: string) => void;
|
|
8
|
+
}
|
|
9
|
+
/** Re-loads the config, validates it, diffs against the running set, and
|
|
10
|
+
* applies add/remove/restart at the service level. A failed validation
|
|
11
|
+
* leaves the running set untouched. Pure (idempotent given the same
|
|
12
|
+
* config file + manager state), so both the TUI hook and the daemon
|
|
13
|
+
* can call it directly. */
|
|
14
|
+
export declare function applyConfigChange(opts: ConfigWatchOpts): Promise<void>;
|
|
15
|
+
/** Watch a config file and call applyConfigChange on each save, debounced
|
|
16
|
+
* to 250 ms. Uses `fs.watchFile` (polling, 500 ms) rather than `fs.watch`
|
|
17
|
+
* for cross-platform reliability — `fs.watch` on a single file is flaky
|
|
18
|
+
* on macOS (FSEvents) and has its own quirks on Windows. Polling a single
|
|
19
|
+
* file every 500 ms is negligible cost for a long-running daemon.
|
|
20
|
+
* In-flight guard coalesces back-to-back saves. Returns a cleanup function. */
|
|
21
|
+
export declare function watchConfig(opts: ConfigWatchOpts): () => void;
|
|
22
|
+
//# sourceMappingURL=config-watcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-watcher.d.ts","sourceRoot":"","sources":["../../src/orchestrator/config-watcher.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,cAAc,CAAC;IACxB,wEAAwE;IACxE,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5B;AAED;;;;4BAI4B;AAC5B,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAoC5E;AAED;;;;;gFAKgF;AAChF,wBAAgB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,IAAI,CA6B7D"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { DevStackConfig, ServiceConfig } from '../config/types.js';
|
|
2
|
+
import type { CliArgs } from '../config/cli.js';
|
|
3
|
+
import type { Platform } from '../platform/types.js';
|
|
4
|
+
import type { ProxyConfigProvider, ProxyOpts } from '../proxy-config/types.js';
|
|
5
|
+
export declare function pidPathFor(projectName: string): string;
|
|
6
|
+
export declare function bootErrorPathFor(projectName: string): string;
|
|
7
|
+
/** Inspect the PID file. `pid=null` means no daemon recorded.
|
|
8
|
+
* `stale=true` means a pid file exists but the recorded pid is not alive. */
|
|
9
|
+
export declare function isDaemonRunning(projectName: string): {
|
|
10
|
+
pid: number | null;
|
|
11
|
+
stale: boolean;
|
|
12
|
+
};
|
|
13
|
+
export interface DaemonOpts {
|
|
14
|
+
config: DevStackConfig;
|
|
15
|
+
services: ServiceConfig[];
|
|
16
|
+
cliArgs: CliArgs;
|
|
17
|
+
platform: Platform;
|
|
18
|
+
env: Record<string, string>;
|
|
19
|
+
baseCwd: string;
|
|
20
|
+
proxyProvider: ProxyConfigProvider | null;
|
|
21
|
+
proxyOpts: ProxyOpts | null;
|
|
22
|
+
}
|
|
23
|
+
/** Runs in the detached child process. Boots the stack, opens the control
|
|
24
|
+
* plane, writes the PID file when ready (the parent's success signal), then
|
|
25
|
+
* stays alive until SIGTERM/SIGINT. */
|
|
26
|
+
export declare function daemonBody(opts: DaemonOpts): Promise<void>;
|
|
27
|
+
export interface DetachedOpts extends DaemonOpts {
|
|
28
|
+
out?: (line: string) => void;
|
|
29
|
+
}
|
|
30
|
+
/** Runs in the parent process. Validates state, spawns the daemon child
|
|
31
|
+
* detached, polls for the PID file (ready) or boot-error file (failure),
|
|
32
|
+
* prints the welcome line, and returns the exit code. */
|
|
33
|
+
export declare function runDetached(opts: DetachedOpts): Promise<number>;
|
|
34
|
+
export declare function stopDaemon(projectName: string, opts?: {
|
|
35
|
+
out?: (line: string) => void;
|
|
36
|
+
gracePeriodMs?: number;
|
|
37
|
+
}): Promise<number>;
|
|
38
|
+
//# sourceMappingURL=daemon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../src/orchestrator/daemon.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAgB,MAAM,0BAA0B,CAAC;AAO7F,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEtD;AACD,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE5D;AAMD;8EAC8E;AAC9E,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAW3F;AAID,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC1C,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;CAC7B;AAED;;wCAEwC;AACxC,wBAAsB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA2JhE;AA6ED,MAAM,WAAW,YAAa,SAAQ,UAAU;IAC9C,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAED;;0DAE0D;AAC1D,wBAAsB,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAkErE;AAID,wBAAsB,UAAU,CAC9B,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAO,GAClE,OAAO,CAAC,MAAM,CAAC,CAuCjB"}
|
|
@@ -13,6 +13,13 @@ export declare function runInstall(opts: SubOpts & {
|
|
|
13
13
|
concurrency?: number;
|
|
14
14
|
}): Promise<number>;
|
|
15
15
|
export declare function runStatus(opts: SubOpts): Promise<number>;
|
|
16
|
+
interface CtlOpts {
|
|
17
|
+
config: DevStackConfig;
|
|
18
|
+
out?: (line: string) => void;
|
|
19
|
+
socketPath?: string;
|
|
20
|
+
}
|
|
21
|
+
export declare function runCtl(argv: string[], opts: CtlOpts): Promise<number>;
|
|
22
|
+
export declare function runDown(opts: SubOpts): Promise<number>;
|
|
16
23
|
export declare function runHelp(argv: string[], opts?: {
|
|
17
24
|
out?: (l: string) => void;
|
|
18
25
|
}): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subcommands.d.ts","sourceRoot":"","sources":["../../src/orchestrator/subcommands.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"subcommands.d.ts","sourceRoot":"","sources":["../../src/orchestrator/subcommands.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIzD,mFAAmF;AACnF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAG9D;AAED,UAAU,OAAO;IACf,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAaD,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAqB5E;AAoCD,wBAAsB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA+B1F;AAiBD,wBAAsB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAe9D;AAID,UAAU,OAAO;IACf,MAAM,EAAE,cAAc,CAAC;IACvB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAoBD,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA0F3E;AAID,wBAAsB,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAG5D;AAID,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAAO,GAAG,MAAM,CA0DxF"}
|
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
import type { ProcessManager } from '../../process/manager.js';
|
|
2
2
|
import type { LogSink } from '../../process/log-sink.js';
|
|
3
|
+
import type { Broadcaster } from '../../utils/broadcaster.js';
|
|
4
|
+
import type { ProcessState } from '../../process/types.js';
|
|
3
5
|
import { type SocketServerHandle } from '../../control-plane/socket-server.js';
|
|
4
6
|
/** Lifecycle of the Unix-socket JSON-RPC control plane. Mounts when the
|
|
5
7
|
* manager is ready; tears down on unmount.
|
|
6
8
|
*
|
|
7
9
|
* On listen failure (perms, dir missing, port already-in-use on the inode)
|
|
8
10
|
* devup keeps running without the control plane and logs a single notice. */
|
|
9
|
-
export declare function useControlPlane(manager: ProcessManager | null, projectName: string, logSink: LogSink | null, pushLog: (svc: string, msg: string, colorIdx?: number) => void
|
|
11
|
+
export declare function useControlPlane(manager: ProcessManager | null, projectName: string, logSink: LogSink | null, pushLog: (svc: string, msg: string, colorIdx?: number) => void, logBus: Broadcaster<{
|
|
12
|
+
svc: string;
|
|
13
|
+
text: string;
|
|
14
|
+
}>, stateBus: Broadcaster<{
|
|
15
|
+
name: string;
|
|
16
|
+
state: ProcessState;
|
|
17
|
+
}>): React.RefObject<SocketServerHandle | null>;
|
|
10
18
|
//# sourceMappingURL=useControlPlane.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useControlPlane.d.ts","sourceRoot":"","sources":["../../../src/tui/hooks/useControlPlane.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAqB,KAAK,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAElG;;;;8EAI8E;AAC9E,wBAAgB,eAAe,CAC7B,OAAO,EAAE,cAAc,GAAG,IAAI,EAC9B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,GAAG,IAAI,EACvB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,
|
|
1
|
+
{"version":3,"file":"useControlPlane.d.ts","sourceRoot":"","sources":["../../../src/tui/hooks/useControlPlane.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAqB,KAAK,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAElG;;;;8EAI8E;AAC9E,wBAAgB,eAAe,CAC7B,OAAO,EAAE,cAAc,GAAG,IAAI,EAC9B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,GAAG,IAAI,EACvB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,EAC9D,MAAM,EAAE,WAAW,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAClD,QAAQ,EAAE,WAAW,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,CAAC,GAC3D,KAAK,CAAC,SAAS,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAwC5C"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { ProcessManager } from '../../process/manager.js';
|
|
2
2
|
import type { CliArgs } from '../../config/cli.js';
|
|
3
|
-
/** Watches the resolved config file when --watch-config is on.
|
|
4
|
-
*
|
|
5
|
-
* A failed validation leaves the running set untouched. 250 ms debounce. */
|
|
3
|
+
/** Watches the resolved config file when --watch-config is on. Bridge between
|
|
4
|
+
* React's lifecycle and the pure `watchConfig` helper used by the daemon. */
|
|
6
5
|
export declare function useHotReload(manager: ProcessManager | null, cliArgs: CliArgs, baseCwd: string, pushLog: (svc: string, msg: string, colorIdx?: number) => void): void;
|
|
7
6
|
//# sourceMappingURL=useHotReload.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useHotReload.d.ts","sourceRoot":"","sources":["../../../src/tui/hooks/useHotReload.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useHotReload.d.ts","sourceRoot":"","sources":["../../../src/tui/hooks/useHotReload.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAInD;8EAC8E;AAC9E,wBAAgB,YAAY,CAC1B,OAAO,EAAE,cAAc,GAAG,IAAI,EAC9B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,GAC7D,IAAI,CAgBN"}
|
|
@@ -4,6 +4,7 @@ import type { Platform } from '../../platform/types.js';
|
|
|
4
4
|
import type { ServiceConfig } from '../../config/types.js';
|
|
5
5
|
import { type LogLevel } from '../../utils.js';
|
|
6
6
|
import { LogSink } from '../../process/log-sink.js';
|
|
7
|
+
import { Broadcaster } from '../../utils/broadcaster.js';
|
|
7
8
|
export interface LogEntry {
|
|
8
9
|
svcName: string;
|
|
9
10
|
text: string;
|
|
@@ -28,5 +29,13 @@ export declare function useProcessManager(platform: Platform, baseCwd: string, e
|
|
|
28
29
|
setPaused: (paused: boolean) => void;
|
|
29
30
|
pushLog: (svcName: string, text: string, colorIdx?: number) => void;
|
|
30
31
|
manager: ProcessManager | null;
|
|
32
|
+
logBus: Broadcaster<{
|
|
33
|
+
svc: string;
|
|
34
|
+
text: string;
|
|
35
|
+
}>;
|
|
36
|
+
stateBus: Broadcaster<{
|
|
37
|
+
name: string;
|
|
38
|
+
state: ProcessState;
|
|
39
|
+
}>;
|
|
31
40
|
};
|
|
32
41
|
//# sourceMappingURL=useProcessManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useProcessManager.d.ts","sourceRoot":"","sources":["../../../src/tui/hooks/useProcessManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAkC,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"useProcessManager.d.ts","sourceRoot":"","sources":["../../../src/tui/hooks/useProcessManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAkC,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,OAAO,GAAE,OAAO,GAAG,IAAW;;;;iBAgHH,aAAa,YAAY,MAAM;iBAC/B,MAAM;oBACH,MAAM;mBACP,aAAa,YAAY,MAAM;;;wBAjBrB,OAAO;uBAjBR,MAAM,QAAQ,MAAM;;;aApEb,MAAM;cAAQ,MAAM;;;cACjB,MAAM;eAAS,YAAY;;EA8G5E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"broadcaster.d.ts","sourceRoot":"","sources":["../../src/utils/broadcaster.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAW,CAAC,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6B;IAElD,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAKzC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI;CAKjB"}
|