@rivmux/protocol 0.3.0 → 0.5.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/README.md CHANGED
@@ -1,3 +1,3 @@
1
- # Rivmux Shared
1
+ # Rivmux Protocol
2
2
 
3
- Shared TypeScript contracts used by Rivmux browser packages.
3
+ Protocol TypeScript contracts used by Rivmux browser packages.
@@ -0,0 +1,40 @@
1
+ /** Runtime diagnostics emitted by the `stats` event. */
2
+ export type PlayerStats = {
3
+ bytesReceived?: number;
4
+ currentNetworkSpeed?: number;
5
+ networkIdleMs?: number;
6
+ outputBytes?: number;
7
+ appendQueueLength?: number;
8
+ appendQueueBytes?: number;
9
+ appendQueueMaxLength?: number;
10
+ appendQueueMaxBytes?: number;
11
+ loaderPaused?: boolean;
12
+ sourceBufferUpdating?: boolean;
13
+ sourceBufferCount?: number;
14
+ bufferedStart?: number;
15
+ bufferedEnd?: number;
16
+ bufferedDuration?: number;
17
+ bufferedRangeCount?: number;
18
+ currentTime?: number;
19
+ liveLatency?: number;
20
+ playbackRate?: number;
21
+ readyState?: number;
22
+ droppedFrames?: number;
23
+ };
24
+ /** High-level category for a player error. */
25
+ export type PlayerErrorKind = 'network' | 'unsupported' | 'demux' | 'codec' | 'mux' | 'mse' | 'runtime';
26
+ /** Structured error emitted by the player and runtime. */
27
+ export type PlayerError = {
28
+ kind: PlayerErrorKind;
29
+ code: string;
30
+ message: string;
31
+ terminal: boolean;
32
+ cause?: unknown;
33
+ };
34
+ /** Structured recoverable warning emitted by the player and runtime. */
35
+ export type PlayerWarning = {
36
+ code: string;
37
+ message: string;
38
+ cause?: unknown;
39
+ };
40
+ //# sourceMappingURL=diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,MAAM,MAAM,WAAW,GAAG;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,8CAA8C;AAC9C,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAA;AAEvG,0DAA0D;AAC1D,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,eAAe,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,wEAAwE;AACxE,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA"}
@@ -0,0 +1,17 @@
1
+ import type { MediaInfo } from './media';
2
+ import type { PlayerError, PlayerStats, PlayerWarning } from './diagnostics';
3
+ /** Payload map for player events. */
4
+ export type PlayerEventMap = {
5
+ ready: undefined;
6
+ mediaInfo: MediaInfo;
7
+ stats: PlayerStats;
8
+ warning: PlayerWarning;
9
+ error: PlayerError;
10
+ stopped: undefined;
11
+ destroyed: undefined;
12
+ };
13
+ /** Player event name. */
14
+ export type PlayerEventType = keyof PlayerEventMap;
15
+ /** Typed player event listener. */
16
+ export type PlayerEventListener<T extends PlayerEventType> = (payload: PlayerEventMap[T]) => void;
17
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE5E,qCAAqC;AACrC,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,SAAS,CAAA;IAChB,SAAS,EAAE,SAAS,CAAA;IACpB,KAAK,EAAE,WAAW,CAAA;IAClB,OAAO,EAAE,aAAa,CAAA;IACtB,KAAK,EAAE,WAAW,CAAA;IAClB,OAAO,EAAE,SAAS,CAAA;IAClB,SAAS,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,yBAAyB;AACzB,MAAM,MAAM,eAAe,GAAG,MAAM,cAAc,CAAA;AAElD,mCAAmC;AACnC,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,eAAe,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA"}
package/dist/index.d.ts CHANGED
@@ -1,270 +1,6 @@
1
- /** Playback behavior applied to the attached video element. */
2
- export type PlaybackOptions = {
3
- /** Request playback automatically after the startup buffer is ready. */
4
- autoPlay?: boolean;
5
- /** Sets `HTMLVideoElement.muted` before playback starts. */
6
- muted?: boolean;
7
- };
8
- /** Low-latency live playback policy, expressed in seconds. */
9
- export type LatencyOptions = {
10
- /** Minimum buffered duration required before automatic playback starts. */
11
- startupBuffer?: number;
12
- /** Desired live latency behind the live edge. */
13
- target?: number;
14
- /** Maximum live latency before the runtime seeks closer to the live edge. */
15
- max?: number;
16
- /** Forward buffer threshold where the stream loader may pause. */
17
- maxForwardBuffer?: number;
18
- /** Buffered duration to keep behind the current playhead during cleanup. */
19
- backwardBuffer?: number;
20
- };
21
- /** HTTP request settings for stream loading. */
22
- export type NetworkOptions = {
23
- /** Additional request headers sent with stream fetch requests. */
24
- headers?: Record<string, string>;
25
- /** Fetch credentials mode used for stream requests. */
26
- credentials?: RequestCredentials;
27
- /** Retry policy for recoverable stream request failures. */
28
- retry?: {
29
- /** Maximum number of attempts for a stream request. */
30
- maxAttempts?: number;
31
- /** Base retry delay in milliseconds. */
32
- backoffMs?: number;
33
- };
34
- };
35
- /** Runtime asset and worker selection options. */
36
- export type RuntimeOptions = {
37
- /** Must remain true while M1 supports only worker-backed Media Source Extensions. */
38
- preferWorkerMse?: boolean;
39
- /** Overrides the worker script URL used by the default runtime. */
40
- workerUrl?: string;
41
- /**
42
- * Overrides the WASM asset URL. The matching wasm-bindgen JS glue file must
43
- * be available at the same path with `.js` instead of `.wasm`.
44
- */
45
- wasmUrl?: string;
46
- };
47
- /** Diagnostics and debug reporting options. */
48
- export type DiagnosticsOptions = {
49
- /** Requested runtime stats interval in milliseconds. */
50
- statsIntervalMs?: number;
51
- /** Enables debug-oriented behavior where supported by the runtime. */
52
- debug?: boolean;
53
- };
54
- /** Top-level options accepted by `new RivmuxPlayer(url, options)`. */
55
- export type RivmuxPlayerOptions = {
56
- playback?: PlaybackOptions;
57
- latency?: LatencyOptions;
58
- network?: NetworkOptions;
59
- runtime?: RuntimeOptions;
60
- diagnostics?: DiagnosticsOptions;
61
- };
62
- export type NormalizedPlaybackOptions = Required<PlaybackOptions>;
63
- export type NormalizedLatencyOptions = Required<LatencyOptions>;
64
- export type NormalizedNetworkOptions = {
65
- headers: Record<string, string>;
66
- credentials: RequestCredentials;
67
- retry: {
68
- maxAttempts: number;
69
- backoffMs: number;
70
- };
71
- };
72
- export type NormalizedRuntimeOptions = {
73
- preferWorkerMse: boolean;
74
- workerUrl?: string;
75
- wasmUrl?: string;
76
- };
77
- export type NormalizedDiagnosticsOptions = Required<DiagnosticsOptions>;
78
- /** Fully populated player options after defaults are applied. */
79
- export type NormalizedRivmuxPlayerOptions = {
80
- playback: NormalizedPlaybackOptions;
81
- latency: NormalizedLatencyOptions;
82
- network: NormalizedNetworkOptions;
83
- runtime: NormalizedRuntimeOptions;
84
- diagnostics: NormalizedDiagnosticsOptions;
85
- };
86
- /** Container, codec, and track metadata detected from the stream. */
87
- export type MediaInfo = {
88
- /** Detected media container, such as `flv` or `fmp4`. */
89
- container: string;
90
- /** Video codec string when the stream contains video. */
91
- videoCodec?: string;
92
- /** Audio codec string when the stream contains audio. */
93
- audioCodec?: string;
94
- /** Video width in pixels. */
95
- width?: number;
96
- /** Video height in pixels. */
97
- height?: number;
98
- /** Audio sample rate in Hz. */
99
- audioSampleRate?: number;
100
- /** Number of audio channels. */
101
- audioChannelCount?: number;
102
- };
103
- /** Runtime diagnostics emitted by the `stats` event. */
104
- export type PlayerStats = {
105
- /** Number of source bytes received from the stream loader. */
106
- bytesReceived?: number;
107
- /** Current estimated network speed in bytes per second. */
108
- currentNetworkSpeed?: number;
109
- /** Duration since the last network chunk, in milliseconds. */
110
- networkIdleMs?: number;
111
- /** Number of transmuxed bytes emitted to MSE. */
112
- outputBytes?: number;
113
- /** Number of media segments waiting to be appended. */
114
- appendQueueLength?: number;
115
- /** Total bytes waiting in the append queue. */
116
- appendQueueBytes?: number;
117
- /** Maximum append queue length observed in the current session. */
118
- appendQueueMaxLength?: number;
119
- /** Maximum append queue bytes observed in the current session. */
120
- appendQueueMaxBytes?: number;
121
- /** Whether the loader is paused by latency/buffer policy. */
122
- loaderPaused?: boolean;
123
- /** Whether any SourceBuffer is currently updating. */
124
- sourceBufferUpdating?: boolean;
125
- /** Number of active SourceBuffer instances. */
126
- sourceBufferCount?: number;
127
- /** Start time of the buffered range used for latency calculations. */
128
- bufferedStart?: number;
129
- /** End time of the buffered range used for latency calculations. */
130
- bufferedEnd?: number;
131
- /** Buffered duration ahead of the current playhead. */
132
- bufferedDuration?: number;
133
- /** Number of buffered ranges on the attached video element. */
134
- bufferedRangeCount?: number;
135
- /** Current video playhead time. */
136
- currentTime?: number;
137
- /** Estimated live latency in seconds. */
138
- liveLatency?: number;
139
- /** Current video playback rate. */
140
- playbackRate?: number;
141
- /** Current `HTMLMediaElement.readyState`. */
142
- readyState?: number;
143
- /** Dropped video frame count when the browser exposes it. */
144
- droppedFrames?: number;
145
- };
146
- /** Snapshot of the attached video element sent from the player to the worker. */
147
- export type VideoElementState = {
148
- currentTime: number;
149
- readyState: number;
150
- playbackRate: number;
151
- paused: boolean;
152
- droppedFrames?: number;
153
- };
154
- /** Playback operation requested by the worker-side latency controller. */
155
- export type PlaybackControlAction = {
156
- type: 'play';
157
- reason: 'startup-buffer-ready';
158
- } | {
159
- type: 'set-playback-rate';
160
- playbackRate: number;
161
- reason: 'latency-above-target' | 'latency-near-target';
162
- } | {
163
- type: 'seek';
164
- targetTime: number;
165
- reason: 'latency-max-exceeded';
166
- };
167
- /** Result of applying a worker-requested playback operation. */
168
- export type PlaybackControlResult = {
169
- type: PlaybackControlAction['type'];
170
- accepted: boolean;
171
- message?: string;
172
- };
173
- /** High-level category for a player error. */
174
- export type PlayerErrorKind = 'network' | 'unsupported' | 'demux' | 'codec' | 'mux' | 'mse' | 'runtime';
175
- /** Structured error emitted by the player and runtime. */
176
- export type PlayerError = {
177
- /** Broad error category. */
178
- kind: PlayerErrorKind;
179
- /** Stable machine-readable error code. */
180
- code: string;
181
- /** Human-readable error message. */
182
- message: string;
183
- /** Whether playback should be treated as unrecoverable. */
184
- terminal: boolean;
185
- /** Optional underlying error or diagnostic payload. */
186
- cause?: unknown;
187
- };
188
- /** Structured recoverable warning emitted by the player and runtime. */
189
- export type PlayerWarning = {
190
- /** Stable machine-readable warning code. */
191
- code: string;
192
- /** Human-readable warning message. */
193
- message: string;
194
- /** Optional underlying warning payload. */
195
- cause?: unknown;
196
- };
197
- /** Payload map for player events. */
198
- export type PlayerEventMap = {
199
- /** Worker/runtime initialization completed. */
200
- ready: undefined;
201
- /** Stream metadata was detected. */
202
- mediaInfo: MediaInfo;
203
- /** Runtime diagnostics were sampled. */
204
- stats: PlayerStats;
205
- /** A recoverable runtime warning occurred. */
206
- warning: PlayerWarning;
207
- /** A structured runtime error occurred. */
208
- error: PlayerError;
209
- /** The stream stopped and the media source was detached. */
210
- stopped: undefined;
211
- /** The worker/runtime was destroyed. */
212
- destroyed: undefined;
213
- };
214
- /** Player event name. */
215
- export type PlayerEventType = keyof PlayerEventMap;
216
- /** Typed player event listener. */
217
- export type PlayerEventListener<T extends PlayerEventType> = (payload: PlayerEventMap[T]) => void;
218
- /** Command sent from the player facade to the runtime worker. */
219
- export type WorkerCommand = {
220
- type: 'init';
221
- id: string;
222
- url: string;
223
- options: NormalizedRivmuxPlayerOptions;
224
- } | {
225
- type: 'attach-media-source';
226
- } | {
227
- type: 'start';
228
- } | {
229
- type: 'stop';
230
- } | {
231
- type: 'update-options';
232
- options: Partial<NormalizedRivmuxPlayerOptions>;
233
- } | {
234
- type: 'video-state';
235
- state: VideoElementState;
236
- } | {
237
- type: 'playback-control-result';
238
- result: PlaybackControlResult;
239
- } | {
240
- type: 'destroy';
241
- };
242
- /** Message sent from the runtime worker to the player facade. */
243
- export type WorkerMessage = {
244
- type: 'worker-ready';
245
- } | {
246
- type: 'ready';
247
- } | {
248
- type: 'media-source-handle';
249
- handle: MediaSourceHandle;
250
- } | {
251
- type: 'media-info';
252
- mediaInfo: MediaInfo;
253
- } | {
254
- type: 'stats';
255
- stats: PlayerStats;
256
- } | {
257
- type: 'warning';
258
- warning: PlayerWarning;
259
- } | {
260
- type: 'error';
261
- error: PlayerError;
262
- } | {
263
- type: 'playback-control';
264
- action: PlaybackControlAction;
265
- } | {
266
- type: 'stopped';
267
- } | {
268
- type: 'destroyed';
269
- };
1
+ export type * from './diagnostics';
2
+ export type * from './events';
3
+ export type * from './media';
4
+ export type * from './options';
5
+ export type * from './worker';
270
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,MAAM,MAAM,eAAe,GAAG;IAC5B,wEAAwE;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,8DAA8D;AAC9D,MAAM,MAAM,cAAc,GAAG;IAC3B,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,6EAA6E;IAC7E,GAAG,CAAC,EAAE,MAAM,CAAA;IAEZ,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,gDAAgD;AAChD,MAAM,MAAM,cAAc,GAAG;IAC3B,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAEhC,uDAAuD;IACvD,WAAW,CAAC,EAAE,kBAAkB,CAAA;IAEhC,4DAA4D;IAC5D,KAAK,CAAC,EAAE;QACN,uDAAuD;QACvD,WAAW,CAAC,EAAE,MAAM,CAAA;QAEpB,wCAAwC;QACxC,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,CAAA;CACF,CAAA;AAED,kDAAkD;AAClD,MAAM,MAAM,cAAc,GAAG;IAC3B,qFAAqF;IACrF,eAAe,CAAC,EAAE,OAAO,CAAA;IAEzB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,+CAA+C;AAC/C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,wDAAwD;IACxD,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB,sEAAsE;IACtE,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,sEAAsE;AACtE,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,eAAe,CAAA;IAC1B,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,WAAW,CAAC,EAAE,kBAAkB,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAA;AAEjE,MAAM,MAAM,wBAAwB,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAA;AAE/D,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,WAAW,EAAE,kBAAkB,CAAA;IAC/B,KAAK,EAAE;QACL,WAAW,EAAE,MAAM,CAAA;QACnB,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;CACF,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,eAAe,EAAE,OAAO,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,4BAA4B,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAA;AAEvE,iEAAiE;AACjE,MAAM,MAAM,6BAA6B,GAAG;IAC1C,QAAQ,EAAE,yBAAyB,CAAA;IACnC,OAAO,EAAE,wBAAwB,CAAA;IACjC,OAAO,EAAE,wBAAwB,CAAA;IACjC,OAAO,EAAE,wBAAwB,CAAA;IACjC,WAAW,EAAE,4BAA4B,CAAA;CAC1C,CAAA;AAED,qEAAqE;AACrE,MAAM,MAAM,SAAS,GAAG;IACtB,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAA;IAEjB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,+BAA+B;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB,gCAAgC;IAChC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B,CAAA;AAED,wDAAwD;AACxD,MAAM,MAAM,WAAW,GAAG;IACxB,8DAA8D;IAC9D,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,2DAA2D;IAC3D,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAE5B,8DAA8D;IAC9D,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,uDAAuD;IACvD,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAE1B,+CAA+C;IAC/C,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB,mEAAmE;IACnE,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAE7B,kEAAkE;IAClE,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAE5B,6DAA6D;IAC7D,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB,sDAAsD;IACtD,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAE9B,+CAA+C;IAC/C,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAE1B,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,uDAAuD;IACvD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB,+DAA+D;IAC/D,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAE3B,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,iFAAiF;AACjF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,OAAO,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,0EAA0E;AAC1E,MAAM,MAAM,qBAAqB,GAC7B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,sBAAsB,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,sBAAsB,GAAG,qBAAqB,CAAA;CAAE,GAC3G;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,sBAAsB,CAAA;CAAE,CAAA;AAExE,gEAAgE;AAChE,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAA;IACnC,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,8CAA8C;AAC9C,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAA;AAEvG,0DAA0D;AAC1D,MAAM,MAAM,WAAW,GAAG;IACxB,4BAA4B;IAC5B,IAAI,EAAE,eAAe,CAAA;IAErB,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAA;IAEZ,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAA;IAEf,2DAA2D;IAC3D,QAAQ,EAAE,OAAO,CAAA;IAEjB,uDAAuD;IACvD,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,wEAAwE;AACxE,MAAM,MAAM,aAAa,GAAG;IAC1B,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAA;IAEZ,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAA;IAEf,2CAA2C;IAC3C,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,qCAAqC;AACrC,MAAM,MAAM,cAAc,GAAG;IAC3B,+CAA+C;IAC/C,KAAK,EAAE,SAAS,CAAA;IAEhB,oCAAoC;IACpC,SAAS,EAAE,SAAS,CAAA;IAEpB,wCAAwC;IACxC,KAAK,EAAE,WAAW,CAAA;IAElB,8CAA8C;IAC9C,OAAO,EAAE,aAAa,CAAA;IAEtB,2CAA2C;IAC3C,KAAK,EAAE,WAAW,CAAA;IAElB,4DAA4D;IAC5D,OAAO,EAAE,SAAS,CAAA;IAElB,wCAAwC;IACxC,SAAS,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,yBAAyB;AACzB,MAAM,MAAM,eAAe,GAAG,MAAM,cAAc,CAAA;AAElD,mCAAmC;AACnC,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,eAAe,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;AAEjG,iEAAiE;AACjE,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,6BAA6B,CAAA;CAAE,GACjF;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC,6BAA6B,CAAC,CAAA;CAAE,GAC3E;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,iBAAiB,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,yBAAyB,CAAC;IAAC,MAAM,EAAE,qBAAqB,CAAA;CAAE,GAClE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAA;AAEvB,iEAAiE;AACjE,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,qBAAqB,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,MAAM,EAAE,qBAAqB,CAAA;CAAE,GAC3D;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,eAAe,CAAA;AAClC,mBAAmB,UAAU,CAAA;AAC7B,mBAAmB,SAAS,CAAA;AAC5B,mBAAmB,WAAW,CAAA;AAC9B,mBAAmB,UAAU,CAAA"}
@@ -0,0 +1,45 @@
1
+ /** Container, codec, and track metadata detected from the stream. */
2
+ export type MediaInfo = {
3
+ /** Detected media container, such as `flv` or `fmp4`. */
4
+ container: string;
5
+ /** Video codec string when the stream contains video. */
6
+ videoCodec?: string;
7
+ /** Audio codec string when the stream contains audio. */
8
+ audioCodec?: string;
9
+ /** Video width in pixels. */
10
+ width?: number;
11
+ /** Video height in pixels. */
12
+ height?: number;
13
+ /** Audio sample rate in Hz. */
14
+ audioSampleRate?: number;
15
+ /** Number of audio channels. */
16
+ audioChannelCount?: number;
17
+ };
18
+ /** Snapshot of the attached video element sent from the player to the worker. */
19
+ export type VideoElementState = {
20
+ currentTime: number;
21
+ readyState: number;
22
+ playbackRate: number;
23
+ paused: boolean;
24
+ droppedFrames?: number;
25
+ };
26
+ /** Playback operation requested by the worker-side latency controller. */
27
+ export type PlaybackControlAction = {
28
+ type: 'play';
29
+ reason: 'startup-buffer-ready';
30
+ } | {
31
+ type: 'set-playback-rate';
32
+ playbackRate: number;
33
+ reason: 'latency-above-target' | 'latency-near-target';
34
+ } | {
35
+ type: 'seek';
36
+ targetTime: number;
37
+ reason: 'latency-max-exceeded';
38
+ };
39
+ /** Result of applying a worker-requested playback operation. */
40
+ export type PlaybackControlResult = {
41
+ type: PlaybackControlAction['type'];
42
+ accepted: boolean;
43
+ message?: string;
44
+ };
45
+ //# sourceMappingURL=media.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../src/media.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,MAAM,MAAM,SAAS,GAAG;IACtB,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAA;IACjB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,+BAA+B;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gCAAgC;IAChC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B,CAAA;AAED,iFAAiF;AACjF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,OAAO,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,0EAA0E;AAC1E,MAAM,MAAM,qBAAqB,GAC7B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,sBAAsB,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,sBAAsB,GAAG,qBAAqB,CAAA;CAAE,GAC3G;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,sBAAsB,CAAA;CAAE,CAAA;AAExE,gEAAgE;AAChE,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAA;IACnC,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA"}
@@ -0,0 +1,83 @@
1
+ /** Playback behavior applied to the attached video element. */
2
+ export type PlaybackOptions = {
3
+ /** Request playback automatically after the startup buffer is ready. */
4
+ autoPlay?: boolean;
5
+ /** Sets `HTMLVideoElement.muted` before playback starts. */
6
+ muted?: boolean;
7
+ };
8
+ /** Low-latency live playback policy, expressed in seconds. */
9
+ export type LatencyOptions = {
10
+ /** Minimum buffered duration required before automatic playback starts. */
11
+ startupBuffer?: number;
12
+ /** Desired live latency behind the live edge. */
13
+ target?: number;
14
+ /** Maximum live latency before the runtime seeks closer to the live edge. */
15
+ max?: number;
16
+ /** Forward buffer threshold where the stream loader may pause. */
17
+ maxForwardBuffer?: number;
18
+ /** Buffered duration to keep behind the current playhead during cleanup. */
19
+ backwardBuffer?: number;
20
+ };
21
+ /** HTTP request settings for stream loading. */
22
+ export type NetworkOptions = {
23
+ /** Additional request headers sent with stream fetch requests. */
24
+ headers?: Record<string, string>;
25
+ /** Fetch credentials mode used for stream requests. */
26
+ credentials?: RequestCredentials;
27
+ /** Retry policy for recoverable stream request failures. */
28
+ retry?: {
29
+ /** Maximum number of attempts for a stream request. */
30
+ maxAttempts?: number;
31
+ /** Base retry delay in milliseconds. */
32
+ backoffMs?: number;
33
+ };
34
+ };
35
+ /** Advanced runtime asset deployment options. */
36
+ export type RuntimeOptions = {
37
+ /** Must remain true while M1 supports only worker-backed Media Source Extensions. */
38
+ preferWorkerMse?: boolean;
39
+ /** Overrides the packaged Dedicated Worker script URL. */
40
+ workerUrl?: string;
41
+ /** Overrides the WASM binary URL used by the packaged wasm-bindgen runtime. */
42
+ wasmUrl?: string;
43
+ };
44
+ /** Diagnostics and debug reporting options. */
45
+ export type DiagnosticsOptions = {
46
+ /** Requested runtime stats interval in milliseconds. */
47
+ statsIntervalMs?: number;
48
+ /** Enables debug-oriented behavior where supported by the runtime. */
49
+ debug?: boolean;
50
+ };
51
+ /** Top-level options accepted by `new RivmuxPlayer(url, options)`. */
52
+ export type RivmuxPlayerOptions = {
53
+ playback?: PlaybackOptions;
54
+ latency?: LatencyOptions;
55
+ network?: NetworkOptions;
56
+ runtime?: RuntimeOptions;
57
+ diagnostics?: DiagnosticsOptions;
58
+ };
59
+ export type NormalizedPlaybackOptions = Required<PlaybackOptions>;
60
+ export type NormalizedLatencyOptions = Required<LatencyOptions>;
61
+ export type NormalizedNetworkOptions = {
62
+ headers: Record<string, string>;
63
+ credentials: RequestCredentials;
64
+ retry: {
65
+ maxAttempts: number;
66
+ backoffMs: number;
67
+ };
68
+ };
69
+ export type NormalizedRuntimeOptions = {
70
+ preferWorkerMse: boolean;
71
+ workerUrl?: string;
72
+ wasmUrl?: string;
73
+ };
74
+ export type NormalizedDiagnosticsOptions = Required<DiagnosticsOptions>;
75
+ /** Fully populated player options after defaults are applied. */
76
+ export type NormalizedRivmuxPlayerOptions = {
77
+ playback: NormalizedPlaybackOptions;
78
+ latency: NormalizedLatencyOptions;
79
+ network: NormalizedNetworkOptions;
80
+ runtime: NormalizedRuntimeOptions;
81
+ diagnostics: NormalizedDiagnosticsOptions;
82
+ };
83
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,MAAM,MAAM,eAAe,GAAG;IAC5B,wEAAwE;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,8DAA8D;AAC9D,MAAM,MAAM,cAAc,GAAG;IAC3B,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,6EAA6E;IAC7E,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,gDAAgD;AAChD,MAAM,MAAM,cAAc,GAAG;IAC3B,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,uDAAuD;IACvD,WAAW,CAAC,EAAE,kBAAkB,CAAA;IAChC,4DAA4D;IAC5D,KAAK,CAAC,EAAE;QACN,uDAAuD;QACvD,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,wCAAwC;QACxC,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,CAAA;CACF,CAAA;AAED,iDAAiD;AACjD,MAAM,MAAM,cAAc,GAAG;IAC3B,qFAAqF;IACrF,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,+CAA+C;AAC/C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,wDAAwD;IACxD,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,sEAAsE;IACtE,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,sEAAsE;AACtE,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,eAAe,CAAA;IAC1B,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,WAAW,CAAC,EAAE,kBAAkB,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAA;AACjE,MAAM,MAAM,wBAAwB,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAA;AAE/D,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,WAAW,EAAE,kBAAkB,CAAA;IAC/B,KAAK,EAAE;QACL,WAAW,EAAE,MAAM,CAAA;QACnB,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;CACF,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,eAAe,EAAE,OAAO,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,4BAA4B,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAA;AAEvE,iEAAiE;AACjE,MAAM,MAAM,6BAA6B,GAAG;IAC1C,QAAQ,EAAE,yBAAyB,CAAA;IACnC,OAAO,EAAE,wBAAwB,CAAA;IACjC,OAAO,EAAE,wBAAwB,CAAA;IACjC,OAAO,EAAE,wBAAwB,CAAA;IACjC,WAAW,EAAE,4BAA4B,CAAA;CAC1C,CAAA"}
@@ -0,0 +1,56 @@
1
+ import type { PlayerError, PlayerStats, PlayerWarning } from './diagnostics';
2
+ import type { MediaInfo, PlaybackControlAction, PlaybackControlResult, VideoElementState } from './media';
3
+ import type { NormalizedRivmuxPlayerOptions } from './options';
4
+ /** Command sent from the player facade to the runtime worker. */
5
+ export type WorkerCommand = {
6
+ type: 'init';
7
+ id: string;
8
+ url: string;
9
+ options: NormalizedRivmuxPlayerOptions;
10
+ } | {
11
+ type: 'attach-media-source';
12
+ } | {
13
+ type: 'start';
14
+ } | {
15
+ type: 'stop';
16
+ } | {
17
+ type: 'update-options';
18
+ options: Partial<NormalizedRivmuxPlayerOptions>;
19
+ } | {
20
+ type: 'video-state';
21
+ state: VideoElementState;
22
+ } | {
23
+ type: 'playback-control-result';
24
+ result: PlaybackControlResult;
25
+ } | {
26
+ type: 'destroy';
27
+ };
28
+ /** Message sent from the runtime worker to the player facade. */
29
+ export type WorkerMessage = {
30
+ type: 'worker-ready';
31
+ } | {
32
+ type: 'ready';
33
+ } | {
34
+ type: 'media-source-handle';
35
+ handle: MediaSourceHandle;
36
+ } | {
37
+ type: 'media-info';
38
+ mediaInfo: MediaInfo;
39
+ } | {
40
+ type: 'stats';
41
+ stats: PlayerStats;
42
+ } | {
43
+ type: 'warning';
44
+ warning: PlayerWarning;
45
+ } | {
46
+ type: 'error';
47
+ error: PlayerError;
48
+ } | {
49
+ type: 'playback-control';
50
+ action: PlaybackControlAction;
51
+ } | {
52
+ type: 'stopped';
53
+ } | {
54
+ type: 'destroyed';
55
+ };
56
+ //# sourceMappingURL=worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC5E,OAAO,KAAK,EAAE,SAAS,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AACzG,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAA;AAE9D,iEAAiE;AACjE,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,6BAA6B,CAAA;CAAE,GACjF;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC,6BAA6B,CAAC,CAAA;CAAE,GAC3E;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,iBAAiB,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,yBAAyB,CAAC;IAAC,MAAM,EAAE,qBAAqB,CAAA;CAAE,GAClE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAA;AAEvB,iEAAiE;AACjE,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,qBAAqB,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,MAAM,EAAE,qBAAqB,CAAA;CAAE,GAC3D;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rivmux/protocol",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "description": "Protocol TypeScript contracts for Rivmux packages.",
5
5
  "homepage": "https://www.npmjs.com/package/@rivmux/protocol",
6
6
  "bugs": {
@@ -28,7 +28,7 @@
28
28
  "types": "./dist/index.d.ts",
29
29
  "devDependencies": {
30
30
  "typescript": "~6.0.3",
31
- "vitest": "^4.1.9"
31
+ "vitest": "^4.1.10"
32
32
  },
33
33
  "engines": {
34
34
  "node": "^22.18.0 || >=24.11.0",