@moq/watch 0.2.6 → 0.2.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/audio/buffer.d.ts +33 -0
- package/audio/buffer.d.ts.map +1 -0
- package/audio/decoder.d.ts.map +1 -1
- package/audio/render.d.ts +20 -11
- package/audio/render.d.ts.map +1 -1
- package/audio/shared-ring-buffer.d.ts +55 -0
- package/audio/shared-ring-buffer.d.ts.map +1 -0
- package/audio/shared-ring-buffer.test.d.ts +2 -0
- package/audio/shared-ring-buffer.test.d.ts.map +1 -0
- package/audio/source.d.ts.map +1 -1
- package/backend.d.ts +2 -1
- package/backend.d.ts.map +1 -1
- package/broadcast-BMWX8K5V.js +4481 -0
- package/broadcast-BMWX8K5V.js.map +1 -0
- package/element.js +1 -1
- package/index.js +2 -2
- package/package.json +4 -4
- package/support/index.d.ts.map +1 -1
- package/support/index.js +11 -9
- package/support/index.js.map +1 -1
- package/sync.d.ts +1 -0
- package/sync.d.ts.map +1 -1
- package/ui/context.d.ts.map +1 -1
- package/ui/index.js +33 -33
- package/ui/index.js.map +1 -1
- package/broadcast-BdsV4u8m.js +0 -6925
- package/broadcast-BdsV4u8m.js.map +0 -1
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Time } from "@moq/lite";
|
|
2
|
+
import { type Getter } from "@moq/signals";
|
|
3
|
+
/**
|
|
4
|
+
* Unified interface for the audio buffer between the main thread and the AudioWorklet.
|
|
5
|
+
*
|
|
6
|
+
* Two implementations exist:
|
|
7
|
+
* - `SharedAudioBuffer`: backed by SharedArrayBuffer, lock-free writes via Atomics.
|
|
8
|
+
* - `PostAudioBuffer`: backed by postMessage transfer (the fallback when SAB is unavailable).
|
|
9
|
+
*
|
|
10
|
+
* Use `createAudioBuffer()` to pick the right implementation automatically.
|
|
11
|
+
*/
|
|
12
|
+
export interface AudioBuffer {
|
|
13
|
+
readonly rate: number;
|
|
14
|
+
readonly channels: number;
|
|
15
|
+
/** Insert audio samples at the given timestamp. Handles out-of-order writes. */
|
|
16
|
+
insert(timestamp: Time.Micro, data: Float32Array[]): void;
|
|
17
|
+
/** Update the target latency in samples. */
|
|
18
|
+
setLatency(samples: number): void;
|
|
19
|
+
/** Current playback timestamp (derived from reader position). */
|
|
20
|
+
readonly timestamp: Getter<Time.Micro>;
|
|
21
|
+
/** Whether the buffer is stalled (waiting to fill). */
|
|
22
|
+
readonly stalled: Getter<boolean>;
|
|
23
|
+
/** Release any resources (event listeners, intervals, etc.). */
|
|
24
|
+
close(): void;
|
|
25
|
+
}
|
|
26
|
+
/** Returns true when SharedArrayBuffer is available and usable in the current context. */
|
|
27
|
+
export declare function supportsSharedArrayBuffer(): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Create the best audio buffer implementation for the current environment.
|
|
30
|
+
* Picks `SharedAudioBuffer` when possible, falling back to `PostAudioBuffer`.
|
|
31
|
+
*/
|
|
32
|
+
export declare function createAudioBuffer(worklet: AudioWorkletNode, channels: number, rate: number, latencySamples: number): AudioBuffer;
|
|
33
|
+
//# sourceMappingURL=buffer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buffer.d.ts","sourceRoot":"","sources":["../../src/audio/buffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAU,KAAK,MAAM,EAAU,MAAM,cAAc,CAAC;AAI3D;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,gFAAgF;IAChF,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAE1D,4CAA4C;IAC5C,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAElC,iEAAiE;IACjE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEvC,uDAAuD;IACvD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAElC,gEAAgE;IAChE,KAAK,IAAI,IAAI,CAAC;CACd;AAED,0FAA0F;AAC1F,wBAAgB,yBAAyB,IAAI,OAAO,CAMnD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAChC,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,GACpB,WAAW,CAOb"}
|
package/audio/decoder.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../../src/audio/decoder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAU,KAAK,MAAM,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../../src/audio/decoder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAU,KAAK,MAAM,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,MAAM,YAAY,GAAG;IAE1B,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,WAAW,UAAU;IAC1B,aAAa,EAAE,MAAM,CAAC;CACtB;AAID,qBAAa,OAAO;;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAGzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,GAAG,SAAS,CAAC,CAAiB;IAKnE,QAAQ,CAAC,IAAI,EAAoB,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IAG/D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,CAAoB;IAGnE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC,CAAe;IAI7D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,CAAmB;IAIrE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAiB;IAOlD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,cAAc,CAAC,CAAkB;gBAO/C,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,YAAY;IAgVhD,KAAK;CAGL"}
|
package/audio/render.d.ts
CHANGED
|
@@ -1,24 +1,33 @@
|
|
|
1
1
|
import type { Time } from "@moq/lite";
|
|
2
|
-
|
|
2
|
+
import type { SharedRingBufferInit } from "./shared-ring-buffer";
|
|
3
|
+
export type Message = InitShared | InitPost | Data | Latency;
|
|
3
4
|
export type ToMain = State;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
stalled: boolean;
|
|
5
|
+
/** Init message when SharedArrayBuffer is available. */
|
|
6
|
+
export interface InitShared extends SharedRingBufferInit {
|
|
7
|
+
type: "init-shared";
|
|
8
8
|
}
|
|
9
|
+
/** Init message for the postMessage fallback path. */
|
|
10
|
+
export interface InitPost {
|
|
11
|
+
type: "init-post";
|
|
12
|
+
channels: number;
|
|
13
|
+
rate: number;
|
|
14
|
+
latency: Time.Milli;
|
|
15
|
+
}
|
|
16
|
+
/** Audio samples sent via postMessage (fallback path only). */
|
|
9
17
|
export interface Data {
|
|
10
18
|
type: "data";
|
|
11
19
|
data: Float32Array[];
|
|
12
20
|
timestamp: Time.Micro;
|
|
13
21
|
}
|
|
14
|
-
|
|
15
|
-
type: "init";
|
|
16
|
-
rate: number;
|
|
17
|
-
channels: number;
|
|
18
|
-
latency: Time.Milli;
|
|
19
|
-
}
|
|
22
|
+
/** Latency update sent via postMessage (fallback path only). */
|
|
20
23
|
export interface Latency {
|
|
21
24
|
type: "latency";
|
|
22
25
|
latency: Time.Milli;
|
|
23
26
|
}
|
|
27
|
+
/** State update from the worklet back to main thread (fallback path only). */
|
|
28
|
+
export interface State {
|
|
29
|
+
type: "state";
|
|
30
|
+
timestamp: Time.Micro;
|
|
31
|
+
stalled: boolean;
|
|
32
|
+
}
|
|
24
33
|
//# sourceMappingURL=render.d.ts.map
|
package/audio/render.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/audio/render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/audio/render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC;AAC7D,MAAM,MAAM,MAAM,GAAG,KAAK,CAAC;AAE3B,wDAAwD;AACxD,MAAM,WAAW,UAAW,SAAQ,oBAAoB;IACvD,IAAI,EAAE,aAAa,CAAC;CACpB;AAED,sDAAsD;AACtD,MAAM,WAAW,QAAQ;IACxB,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;CACpB;AAED,+DAA+D;AAC/D,MAAM,WAAW,IAAI;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC;CACtB;AAED,gEAAgE;AAChE,MAAM,WAAW,OAAO;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;CACpB;AAED,8EAA8E;AAC9E,MAAM,WAAW,KAAK;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;CACjB"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Time } from "@moq/lite";
|
|
2
|
+
export interface SharedRingBufferInit {
|
|
3
|
+
channels: number;
|
|
4
|
+
capacity: number;
|
|
5
|
+
rate: number;
|
|
6
|
+
samples: SharedArrayBuffer;
|
|
7
|
+
control: SharedArrayBuffer;
|
|
8
|
+
}
|
|
9
|
+
export declare function allocSharedRingBuffer(channels: number, capacity: number, rate: number): SharedRingBufferInit;
|
|
10
|
+
export declare class SharedRingBuffer {
|
|
11
|
+
#private;
|
|
12
|
+
readonly channels: number;
|
|
13
|
+
readonly capacity: number;
|
|
14
|
+
readonly rate: number;
|
|
15
|
+
readonly init: SharedRingBufferInit;
|
|
16
|
+
constructor(init: SharedRingBufferInit);
|
|
17
|
+
/**
|
|
18
|
+
* Insert audio samples at the given timestamp.
|
|
19
|
+
* Main thread only. Handles out-of-order writes, gap filling, and overflow.
|
|
20
|
+
*/
|
|
21
|
+
insert(timestamp: Time.Micro, data: Float32Array[]): void;
|
|
22
|
+
/**
|
|
23
|
+
* Read audio samples into the output buffers.
|
|
24
|
+
* AudioWorklet only. Returns the number of samples read.
|
|
25
|
+
*/
|
|
26
|
+
read(output: Float32Array[]): number;
|
|
27
|
+
/** Update the target latency in samples. */
|
|
28
|
+
setLatency(samples: number): void;
|
|
29
|
+
/**
|
|
30
|
+
* Allocate a new ring with `newCapacity` samples and copy the unread window
|
|
31
|
+
* [READ, WRITE) plus control state into it. Used when growing capacity so
|
|
32
|
+
* we don't drop buffered audio. If `newCapacity` is smaller than the unread
|
|
33
|
+
* span, the oldest samples are truncated.
|
|
34
|
+
*
|
|
35
|
+
* Main thread only. `resize()` reads from the source `SharedRingBuffer` and
|
|
36
|
+
* writes into a freshly allocated buffer from `allocSharedRingBuffer`, so it
|
|
37
|
+
* relies on the same invariant as `insert()`: no concurrent main-thread
|
|
38
|
+
* writers. The AudioWorklet reader is tolerated via the CAS discipline used
|
|
39
|
+
* by READ/WRITE elsewhere.
|
|
40
|
+
*/
|
|
41
|
+
resize(newCapacity: number): SharedRingBuffer;
|
|
42
|
+
/** Current playback timestamp derived from READ position. */
|
|
43
|
+
get timestamp(): Time.Micro;
|
|
44
|
+
/** Whether the buffer is stalled (waiting to fill). */
|
|
45
|
+
get stalled(): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Number of buffered samples (WRITE - READ).
|
|
48
|
+
*
|
|
49
|
+
* Non-atomic: WRITE and READ are loaded separately, so a concurrent
|
|
50
|
+
* writer/reader can make the two loads inconsistent. Intended for
|
|
51
|
+
* tests and diagnostics, not control-flow decisions.
|
|
52
|
+
*/
|
|
53
|
+
get length(): number;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=shared-ring-buffer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-ring-buffer.d.ts","sourceRoot":"","sources":["../../src/audio/shared-ring-buffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AASjC,MAAM,WAAW,oBAAoB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,iBAAiB,CAAC;IAC3B,OAAO,EAAE,iBAAiB,CAAC;CAC3B;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAa5G;AA0BD,qBAAa,gBAAgB;;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;gBAKxB,IAAI,EAAE,oBAAoB;IAetC;;;OAGG;IACH,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI;IA+DzD;;;OAGG;IACH,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM;IAkCpC,4CAA4C;IAC5C,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIjC;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,gBAAgB;IA8B7C,6DAA6D;IAC7D,IAAI,SAAS,IAAI,IAAI,CAAC,KAAK,CAG1B;IAED,uDAAuD;IACvD,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;;;OAMG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;CACD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-ring-buffer.test.d.ts","sourceRoot":"","sources":["../../src/audio/shared-ring-buffer.test.ts"],"names":[],"mappings":""}
|
package/audio/source.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../src/audio/source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,OAAO,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAU,KAAK,MAAM,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../src/audio/source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,OAAO,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAU,KAAK,MAAM,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAKpC,MAAM,MAAM,MAAM,GAAG;IAEpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAE1E,MAAM,MAAM,WAAW,GAAG;IACzB,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IAGtD,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAG7C,SAAS,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF;;;GAGG;AACH,qBAAa,MAAM;;IAClB,SAAS,EAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IACzC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAGnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAAiB;IAGpE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAmB;IAGlF,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,CAAe;IAGzD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAgB;IAExE,SAAS,EAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IAGzC,IAAI,EAAE,IAAI,CAAC;gBAIC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,WAAW;IA+F3C,KAAK,IAAI,IAAI;CAGb"}
|
package/backend.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import * as Moq from "@moq/lite";
|
|
|
2
2
|
import { Signal } from "@moq/signals";
|
|
3
3
|
import * as Audio from "./audio";
|
|
4
4
|
import type { Broadcast } from "./broadcast";
|
|
5
|
-
import { type Latency } from "./sync";
|
|
5
|
+
import { type Latency, Sync } from "./sync";
|
|
6
6
|
import * as Video from "./video";
|
|
7
7
|
export interface BufferedRange {
|
|
8
8
|
start: Moq.Time.Milli;
|
|
@@ -49,6 +49,7 @@ export declare class MultiBackend implements Backend {
|
|
|
49
49
|
paused: Signal<boolean>;
|
|
50
50
|
video: VideoBackend;
|
|
51
51
|
audio: AudioBackend;
|
|
52
|
+
sync: Sync;
|
|
52
53
|
signals: Moq.Signals.Effect;
|
|
53
54
|
constructor(props?: MultiBackendProps);
|
|
54
55
|
close(): void;
|
package/backend.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,WAAW,CAAC;AACjC,OAAO,EAAU,MAAM,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,KAAK,OAAO,
|
|
1
|
+
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,WAAW,CAAC;AACjC,OAAO,EAAU,MAAM,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,KAAK,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAGjC,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;IACtB,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;CACpB;AACD,MAAM,MAAM,cAAc,GAAG,aAAa,EAAE,CAAC;AAG7C,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc,CAUpE;AAED,MAAM,WAAW,OAAO;IAEvB,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAGxB,KAAK,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC;IAGtB,KAAK,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC;IAGtB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAGzB,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IACjC,OAAO,CAAC,EAAE,iBAAiB,GAAG,gBAAgB,GAAG,MAAM,CAAC,iBAAiB,GAAG,gBAAgB,GAAG,SAAS,CAAC,CAAC;IAC1G,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IAGtD,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAGpC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAEjC,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;CACnC;AAGD,cAAM,YAAa,YAAW,KAAK,CAAC,OAAO;IAE1C,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;IAGrB,KAAK,8CAAkD;IAGvD,OAAO,8BAA8B;IAGrC,QAAQ,qCAAkC;IAG1C,SAAS,qCAAmD;gBAEhD,MAAM,EAAE,KAAK,CAAC,MAAM;CAGhC;AAGD,cAAM,YAAa,YAAW,KAAK,CAAC,OAAO;IAC1C,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;IAGrB,MAAM,6BAA2B;IAGjC,KAAK,8BAA8B;IAGnC,KAAK,8CAAkD;IAGvD,QAAQ,qCAAkC;gBAE9B,MAAM,EAAE,KAAK,CAAC,MAAM;CAGhC;AAKD,qBAAa,YAAa,YAAW,OAAO;;IAC3C,OAAO,uEAA2E;IAClF,SAAS,EAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAExB,KAAK,EAAE,YAAY,CAAC;IAGpB,KAAK,EAAE,YAAY,CAAC;IAIpB,IAAI,EAAE,IAAI,CAAC;IAEX,OAAO,qBAAgB;gBAEX,KAAK,CAAC,EAAE,iBAAiB;IA0FrC,KAAK,IAAI,IAAI;CAGb"}
|