@reactor-models/h3-reference-to-video-turbo-realtime 0.3.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.
@@ -0,0 +1,301 @@
1
+ import {
2
+ H3ReferenceToVideoTurboRealtimeTracks,
3
+ MODEL_NAME
4
+ } from "./chunk-G3JJXOQR.mjs";
5
+
6
+ // src/react.tsx
7
+ import {
8
+ ReactorProvider,
9
+ useReactor,
10
+ useReactorMessage,
11
+ ReactorView
12
+ } from "@reactor-team/js-sdk";
13
+ import { jsx } from "react/jsx-runtime";
14
+ function _unwrapMessage(raw) {
15
+ const env = raw;
16
+ if (env && typeof env === "object" && env.data && typeof env.data === "object") {
17
+ return { ...env.data, type: env.type };
18
+ }
19
+ return raw;
20
+ }
21
+ function H3ReferenceToVideoTurboRealtimeProvider({
22
+ children,
23
+ ...rest
24
+ }) {
25
+ return /* @__PURE__ */ jsx(
26
+ ReactorProvider,
27
+ {
28
+ ...rest,
29
+ modelName: MODEL_NAME,
30
+ modelTracks: [...H3ReferenceToVideoTurboRealtimeTracks],
31
+ children
32
+ }
33
+ );
34
+ }
35
+ function useH3ReferenceToVideoTurboRealtime() {
36
+ const connect = useReactor((s) => s.connect);
37
+ const connectOptions = useReactor((s) => s.connectOptions);
38
+ const disconnect = useReactor((s) => s.disconnect);
39
+ const downloadClipAsFile = useReactor((s) => s.downloadClipAsFile);
40
+ const jwtToken = useReactor((s) => s.jwtToken);
41
+ const lastError = useReactor((s) => s.lastError);
42
+ const lastMessage = useReactor((s) => s.lastMessage);
43
+ const pauseTrack = useReactor((s) => s.pauseTrack);
44
+ const publish = useReactor((s) => s.publish);
45
+ const reconnect = useReactor((s) => s.reconnect);
46
+ const requestClip = useReactor((s) => s.requestClip);
47
+ const requestRecording = useReactor((s) => s.requestRecording);
48
+ const resumeTrack = useReactor((s) => s.resumeTrack);
49
+ const sendCommand = useReactor((s) => s.sendCommand);
50
+ const sessionId = useReactor((s) => s.sessionId);
51
+ const status = useReactor((s) => s.status);
52
+ const tracks = useReactor((s) => s.tracks);
53
+ const unpublish = useReactor((s) => s.unpublish);
54
+ const uploadFile = useReactor((s) => s.uploadFile);
55
+ return {
56
+ connect,
57
+ connectOptions,
58
+ disconnect,
59
+ downloadClipAsFile,
60
+ jwtToken,
61
+ lastError,
62
+ lastMessage,
63
+ pauseTrack,
64
+ publish,
65
+ reconnect,
66
+ requestClip,
67
+ requestRecording,
68
+ resumeTrack,
69
+ sendCommand,
70
+ sessionId,
71
+ status,
72
+ tracks,
73
+ unpublish,
74
+ uploadFile,
75
+ pop: async (params) => {
76
+ const reply = await sendCommand("pop", params);
77
+ return reply === void 0 ? void 0 : _unwrapMessage(reply);
78
+ },
79
+ move: async (params) => {
80
+ const reply = await sendCommand("move", params);
81
+ return reply === void 0 ? void 0 : _unwrapMessage(reply);
82
+ },
83
+ play: async (params) => {
84
+ await sendCommand("play", params);
85
+ return void 0;
86
+ },
87
+ stop: async () => {
88
+ await sendCommand("stop", {});
89
+ return void 0;
90
+ },
91
+ reset: async () => {
92
+ const reply = await sendCommand("reset", {});
93
+ return reply === void 0 ? void 0 : _unwrapMessage(reply);
94
+ },
95
+ enqueue: async (params) => {
96
+ const reply = await sendCommand("enqueue", params);
97
+ return reply === void 0 ? void 0 : _unwrapMessage(reply);
98
+ },
99
+ setSeed: async (params) => {
100
+ const reply = await sendCommand("set_seed", params);
101
+ return reply === void 0 ? void 0 : _unwrapMessage(reply);
102
+ },
103
+ getQueue: async () => {
104
+ const reply = await sendCommand("get_queue", {});
105
+ return reply === void 0 ? void 0 : _unwrapMessage(reply);
106
+ },
107
+ getState: async () => {
108
+ const reply = await sendCommand("get_state", {});
109
+ return reply === void 0 ? void 0 : _unwrapMessage(reply);
110
+ },
111
+ setCanvas: async (params) => {
112
+ const reply = await sendCommand("set_canvas", params);
113
+ return reply === void 0 ? void 0 : _unwrapMessage(reply);
114
+ },
115
+ setAutoplay: async (params) => {
116
+ const reply = await sendCommand("set_autoplay", params);
117
+ return reply === void 0 ? void 0 : _unwrapMessage(reply);
118
+ },
119
+ setClipSeconds: async (params) => {
120
+ const reply = await sendCommand("set_clip_seconds", params);
121
+ return reply === void 0 ? void 0 : _unwrapMessage(reply);
122
+ },
123
+ setFlushOnClipEnd: async (params) => {
124
+ const reply = await sendCommand("set_flush_on_clip_end", params);
125
+ return reply === void 0 ? void 0 : _unwrapMessage(reply);
126
+ }
127
+ };
128
+ }
129
+ function useH3ReferenceToVideoTurboRealtimeMessage(handler) {
130
+ useReactorMessage(
131
+ (msg) => handler(_unwrapMessage(msg))
132
+ );
133
+ }
134
+ function useH3ReferenceToVideoTurboRealtimeClipMoved(handler) {
135
+ useReactorMessage((msg) => {
136
+ const m = _unwrapMessage(msg);
137
+ if (m.type === "clip_moved") {
138
+ handler(m);
139
+ }
140
+ });
141
+ }
142
+ function useH3ReferenceToVideoTurboRealtimeClipFailed(handler) {
143
+ useReactorMessage((msg) => {
144
+ const m = _unwrapMessage(msg);
145
+ if (m.type === "clip_failed") {
146
+ handler(m);
147
+ }
148
+ });
149
+ }
150
+ function useH3ReferenceToVideoTurboRealtimeClipPopped(handler) {
151
+ useReactorMessage((msg) => {
152
+ const m = _unwrapMessage(msg);
153
+ if (m.type === "clip_popped") {
154
+ handler(m);
155
+ }
156
+ });
157
+ }
158
+ function useH3ReferenceToVideoTurboRealtimeClipQueued(handler) {
159
+ useReactorMessage((msg) => {
160
+ const m = _unwrapMessage(msg);
161
+ if (m.type === "clip_queued") {
162
+ handler(m);
163
+ }
164
+ });
165
+ }
166
+ function useH3ReferenceToVideoTurboRealtimeClipStarted(handler) {
167
+ useReactorMessage((msg) => {
168
+ const m = _unwrapMessage(msg);
169
+ if (m.type === "clip_started") {
170
+ handler(m);
171
+ }
172
+ });
173
+ }
174
+ function useH3ReferenceToVideoTurboRealtimeClipStopped(handler) {
175
+ useReactorMessage((msg) => {
176
+ const m = _unwrapMessage(msg);
177
+ if (m.type === "clip_stopped") {
178
+ handler(m);
179
+ }
180
+ });
181
+ }
182
+ function useH3ReferenceToVideoTurboRealtimeQueueUpdate(handler) {
183
+ useReactorMessage((msg) => {
184
+ const m = _unwrapMessage(msg);
185
+ if (m.type === "queue_update") {
186
+ handler(m);
187
+ }
188
+ });
189
+ }
190
+ function useH3ReferenceToVideoTurboRealtimeStateUpdate(handler) {
191
+ useReactorMessage((msg) => {
192
+ const m = _unwrapMessage(msg);
193
+ if (m.type === "state_update") {
194
+ handler(m);
195
+ }
196
+ });
197
+ }
198
+ function useH3ReferenceToVideoTurboRealtimeClipFinished(handler) {
199
+ useReactorMessage((msg) => {
200
+ const m = _unwrapMessage(msg);
201
+ if (m.type === "clip_finished") {
202
+ handler(m);
203
+ }
204
+ });
205
+ }
206
+ function useH3ReferenceToVideoTurboRealtimeCommandError(handler) {
207
+ useReactorMessage((msg) => {
208
+ const m = _unwrapMessage(msg);
209
+ if (m.type === "command_error") {
210
+ handler(m);
211
+ }
212
+ });
213
+ }
214
+ function useH3ReferenceToVideoTurboRealtimeSeedAccepted(handler) {
215
+ useReactorMessage((msg) => {
216
+ const m = _unwrapMessage(msg);
217
+ if (m.type === "seed_accepted") {
218
+ handler(m);
219
+ }
220
+ });
221
+ }
222
+ function useH3ReferenceToVideoTurboRealtimeSessionReset(handler) {
223
+ useReactorMessage((msg) => {
224
+ const m = _unwrapMessage(msg);
225
+ if (m.type === "session_reset") {
226
+ handler(m);
227
+ }
228
+ });
229
+ }
230
+ function useH3ReferenceToVideoTurboRealtimeClipGenerated(handler) {
231
+ useReactorMessage((msg) => {
232
+ const m = _unwrapMessage(msg);
233
+ if (m.type === "clip_generated") {
234
+ handler(m);
235
+ }
236
+ });
237
+ }
238
+ function useH3ReferenceToVideoTurboRealtimeFlushAccepted(handler) {
239
+ useReactorMessage((msg) => {
240
+ const m = _unwrapMessage(msg);
241
+ if (m.type === "flush_accepted") {
242
+ handler(m);
243
+ }
244
+ });
245
+ }
246
+ function useH3ReferenceToVideoTurboRealtimeCanvasAccepted(handler) {
247
+ useReactorMessage((msg) => {
248
+ const m = _unwrapMessage(msg);
249
+ if (m.type === "canvas_accepted") {
250
+ handler(m);
251
+ }
252
+ });
253
+ }
254
+ function useH3ReferenceToVideoTurboRealtimeAutoplayAccepted(handler) {
255
+ useReactorMessage((msg) => {
256
+ const m = _unwrapMessage(msg);
257
+ if (m.type === "autoplay_accepted") {
258
+ handler(m);
259
+ }
260
+ });
261
+ }
262
+ function useH3ReferenceToVideoTurboRealtimeClipLengthAccepted(handler) {
263
+ useReactorMessage((msg) => {
264
+ const m = _unwrapMessage(msg);
265
+ if (m.type === "clip_length_accepted") {
266
+ handler(m);
267
+ }
268
+ });
269
+ }
270
+ function useH3ReferenceToVideoTurboRealtimeTrack(name) {
271
+ return useReactor((s) => s.tracks[name]);
272
+ }
273
+ function H3ReferenceToVideoTurboRealtimeMainVideoView(props) {
274
+ return /* @__PURE__ */ jsx(ReactorView, { ...props, track: "main_video" });
275
+ }
276
+
277
+ export {
278
+ H3ReferenceToVideoTurboRealtimeProvider,
279
+ useH3ReferenceToVideoTurboRealtime,
280
+ useH3ReferenceToVideoTurboRealtimeMessage,
281
+ useH3ReferenceToVideoTurboRealtimeClipMoved,
282
+ useH3ReferenceToVideoTurboRealtimeClipFailed,
283
+ useH3ReferenceToVideoTurboRealtimeClipPopped,
284
+ useH3ReferenceToVideoTurboRealtimeClipQueued,
285
+ useH3ReferenceToVideoTurboRealtimeClipStarted,
286
+ useH3ReferenceToVideoTurboRealtimeClipStopped,
287
+ useH3ReferenceToVideoTurboRealtimeQueueUpdate,
288
+ useH3ReferenceToVideoTurboRealtimeStateUpdate,
289
+ useH3ReferenceToVideoTurboRealtimeClipFinished,
290
+ useH3ReferenceToVideoTurboRealtimeCommandError,
291
+ useH3ReferenceToVideoTurboRealtimeSeedAccepted,
292
+ useH3ReferenceToVideoTurboRealtimeSessionReset,
293
+ useH3ReferenceToVideoTurboRealtimeClipGenerated,
294
+ useH3ReferenceToVideoTurboRealtimeFlushAccepted,
295
+ useH3ReferenceToVideoTurboRealtimeCanvasAccepted,
296
+ useH3ReferenceToVideoTurboRealtimeAutoplayAccepted,
297
+ useH3ReferenceToVideoTurboRealtimeClipLengthAccepted,
298
+ useH3ReferenceToVideoTurboRealtimeTrack,
299
+ H3ReferenceToVideoTurboRealtimeMainVideoView
300
+ };
301
+ //# sourceMappingURL=chunk-NXDKLVKO.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/react.tsx"],"sourcesContent":["// Copyright (c) 2026 Reactor Technologies, Inc. All rights reserved.\n\n// Auto-generated by @reactor-team/codegen — DO NOT EDIT\n// Model: h3-reference-to-video-turbo-realtime v0.3.0\n\n\"use client\";\n\nimport { type ReactElement } from \"react\";\nimport {\n ReactorProvider,\n useReactor,\n useReactorMessage,\n ReactorView,\n type ReactorViewProps,\n} from \"@reactor-team/js-sdk\";\nimport {\n MODEL_NAME,\n H3ReferenceToVideoTurboRealtimeTracks,\n type H3ReferenceToVideoTurboRealtimeOptions,\n type H3ReferenceToVideoTurboRealtimePopParams,\n type H3ReferenceToVideoTurboRealtimeMoveParams,\n type H3ReferenceToVideoTurboRealtimePlayParams,\n type H3ReferenceToVideoTurboRealtimeEnqueueParams,\n type H3ReferenceToVideoTurboRealtimeSetSeedParams,\n type H3ReferenceToVideoTurboRealtimeSetCanvasParams,\n type H3ReferenceToVideoTurboRealtimeSetAutoplayParams,\n type H3ReferenceToVideoTurboRealtimeSetClipSecondsParams,\n type H3ReferenceToVideoTurboRealtimeSetFlushOnClipEndParams,\n type H3ReferenceToVideoTurboRealtimeMessage,\n type H3ReferenceToVideoTurboRealtimeClipMovedMessage,\n type H3ReferenceToVideoTurboRealtimeClipFailedMessage,\n type H3ReferenceToVideoTurboRealtimeClipPoppedMessage,\n type H3ReferenceToVideoTurboRealtimeClipQueuedMessage,\n type H3ReferenceToVideoTurboRealtimeClipStartedMessage,\n type H3ReferenceToVideoTurboRealtimeClipStoppedMessage,\n type H3ReferenceToVideoTurboRealtimeQueueUpdateMessage,\n type H3ReferenceToVideoTurboRealtimeStateUpdateMessage,\n type H3ReferenceToVideoTurboRealtimeClipFinishedMessage,\n type H3ReferenceToVideoTurboRealtimeCommandErrorMessage,\n type H3ReferenceToVideoTurboRealtimeSeedAcceptedMessage,\n type H3ReferenceToVideoTurboRealtimeSessionResetMessage,\n type H3ReferenceToVideoTurboRealtimeClipGeneratedMessage,\n type H3ReferenceToVideoTurboRealtimeFlushAcceptedMessage,\n type H3ReferenceToVideoTurboRealtimeCanvasAcceptedMessage,\n type H3ReferenceToVideoTurboRealtimeAutoplayAcceptedMessage,\n type H3ReferenceToVideoTurboRealtimeClipLengthAcceptedMessage,\n type H3ReferenceToVideoTurboRealtimeRecvTrackName,\n} from \"./core.js\";\n\n/**\n * @internal Flatten the `{ type, data, uploads? }` envelope the SDK\n * hands to `reactor.on(\"message\", …)` so a field the model schema\n * declares on a message is reachable at `msg.<field>` — matching the\n * shape the exported message interfaces promise.\n */\nfunction _unwrapMessage<T>(raw: unknown): T {\n const env = raw as { type?: string; data?: Record<string, unknown> };\n if (\n env &&\n typeof env === \"object\" &&\n env.data &&\n typeof env.data === \"object\"\n ) {\n return { ...env.data, type: env.type } as T;\n }\n return raw as T;\n}\n\n/**\n * Props for the {@link H3ReferenceToVideoTurboRealtimeProvider} component.\n *\n * Derived from `ReactorProvider`'s own props, with `modelName` and\n * `modelTracks` stripped — those are supplied by this provider.\n */\nexport type H3ReferenceToVideoTurboRealtimeProviderProps = Omit<\n Parameters<typeof ReactorProvider>[0],\n \"modelName\" | \"modelTracks\"\n>;\n\n/**\n * Provider for the H3ReferenceToVideoTurboRealtime model.\n *\n * Wraps {@link ReactorProvider} with `modelName` and `modelTracks` pre-configured from the\n * generated constants. Drop this near the top of your tree, then use\n * {@link useH3ReferenceToVideoTurboRealtime} and the `useH3ReferenceToVideoTurboRealtime<Message>` hooks below it.\n */\nexport function H3ReferenceToVideoTurboRealtimeProvider({\n children,\n ...rest\n}: H3ReferenceToVideoTurboRealtimeProviderProps): ReactElement {\n return (\n <ReactorProvider\n {...rest}\n modelName={MODEL_NAME}\n modelTracks={[...H3ReferenceToVideoTurboRealtimeTracks]}\n >\n {children}\n </ReactorProvider>\n );\n}\n\n/**\n * Access the H3ReferenceToVideoTurboRealtime model as typed commands bound to the nearest\n * {@link H3ReferenceToVideoTurboRealtimeProvider}.\n *\n * Returns the full action surface — every public field on the SDK's\n * `ReactorStore` (`status`, `sessionId`, `connect`, `disconnect`,\n * `sendCommand`, `uploadFile`, `publish`, `unpublish`, `reconnect`,\n * …) is exposed automatically, alongside one typed method per\n * model event.\n *\n * Fields are pulled off the store one at a time so Zustand's\n * shallow-equality selector keeps each subscription scoped — a\n * component reading only `status` doesn't re-render when\n * `lastError` changes. Future SDK releases that add new\n * store fields flow into this hook on the next codegen run with no\n * hand-edit (the field list is derived from `js-sdk`'s d.ts via\n * `loadReactorStoreFieldsFromDts` in `sdk-surface.ts`).\n *\n * Each typed event method resolves with the command's correlated\n * reply: the declared reply message for commands that return one,\n * `undefined` once the handler completes for commands that don't.\n */\nexport function useH3ReferenceToVideoTurboRealtime() {\n const connect = useReactor((s) => s.connect);\n const connectOptions = useReactor((s) => s.connectOptions);\n const disconnect = useReactor((s) => s.disconnect);\n const downloadClipAsFile = useReactor((s) => s.downloadClipAsFile);\n const jwtToken = useReactor((s) => s.jwtToken);\n const lastError = useReactor((s) => s.lastError);\n const lastMessage = useReactor((s) => s.lastMessage);\n const pauseTrack = useReactor((s) => s.pauseTrack);\n const publish = useReactor((s) => s.publish);\n const reconnect = useReactor((s) => s.reconnect);\n const requestClip = useReactor((s) => s.requestClip);\n const requestRecording = useReactor((s) => s.requestRecording);\n const resumeTrack = useReactor((s) => s.resumeTrack);\n const sendCommand = useReactor((s) => s.sendCommand);\n const sessionId = useReactor((s) => s.sessionId);\n const status = useReactor((s) => s.status);\n const tracks = useReactor((s) => s.tracks);\n const unpublish = useReactor((s) => s.unpublish);\n const uploadFile = useReactor((s) => s.uploadFile);\n\n return {\n connect,\n connectOptions,\n disconnect,\n downloadClipAsFile,\n jwtToken,\n lastError,\n lastMessage,\n pauseTrack,\n publish,\n reconnect,\n requestClip,\n requestRecording,\n resumeTrack,\n sendCommand,\n sessionId,\n status,\n tracks,\n unpublish,\n uploadFile,\n pop: async (params: H3ReferenceToVideoTurboRealtimePopParams): Promise<H3ReferenceToVideoTurboRealtimeClipPoppedMessage | undefined> => {\n const reply = await sendCommand(\"pop\", params);\n return reply === undefined ? undefined : _unwrapMessage<H3ReferenceToVideoTurboRealtimeClipPoppedMessage>(reply);\n },\n move: async (params: H3ReferenceToVideoTurboRealtimeMoveParams): Promise<H3ReferenceToVideoTurboRealtimeClipMovedMessage | undefined> => {\n const reply = await sendCommand(\"move\", params);\n return reply === undefined ? undefined : _unwrapMessage<H3ReferenceToVideoTurboRealtimeClipMovedMessage>(reply);\n },\n play: async (params: H3ReferenceToVideoTurboRealtimePlayParams): Promise<undefined> => {\n await sendCommand(\"play\", params);\n return undefined;\n },\n stop: async (): Promise<undefined> => {\n await sendCommand(\"stop\", {});\n return undefined;\n },\n reset: async (): Promise<H3ReferenceToVideoTurboRealtimeSessionResetMessage | undefined> => {\n const reply = await sendCommand(\"reset\", {});\n return reply === undefined ? undefined : _unwrapMessage<H3ReferenceToVideoTurboRealtimeSessionResetMessage>(reply);\n },\n enqueue: async (params: H3ReferenceToVideoTurboRealtimeEnqueueParams): Promise<H3ReferenceToVideoTurboRealtimeClipQueuedMessage | undefined> => {\n const reply = await sendCommand(\"enqueue\", params);\n return reply === undefined ? undefined : _unwrapMessage<H3ReferenceToVideoTurboRealtimeClipQueuedMessage>(reply);\n },\n setSeed: async (params: H3ReferenceToVideoTurboRealtimeSetSeedParams): Promise<H3ReferenceToVideoTurboRealtimeSeedAcceptedMessage | undefined> => {\n const reply = await sendCommand(\"set_seed\", params);\n return reply === undefined ? undefined : _unwrapMessage<H3ReferenceToVideoTurboRealtimeSeedAcceptedMessage>(reply);\n },\n getQueue: async (): Promise<H3ReferenceToVideoTurboRealtimeQueueUpdateMessage | undefined> => {\n const reply = await sendCommand(\"get_queue\", {});\n return reply === undefined ? undefined : _unwrapMessage<H3ReferenceToVideoTurboRealtimeQueueUpdateMessage>(reply);\n },\n getState: async (): Promise<H3ReferenceToVideoTurboRealtimeStateUpdateMessage | undefined> => {\n const reply = await sendCommand(\"get_state\", {});\n return reply === undefined ? undefined : _unwrapMessage<H3ReferenceToVideoTurboRealtimeStateUpdateMessage>(reply);\n },\n setCanvas: async (params: H3ReferenceToVideoTurboRealtimeSetCanvasParams): Promise<H3ReferenceToVideoTurboRealtimeCanvasAcceptedMessage | undefined> => {\n const reply = await sendCommand(\"set_canvas\", params);\n return reply === undefined ? undefined : _unwrapMessage<H3ReferenceToVideoTurboRealtimeCanvasAcceptedMessage>(reply);\n },\n setAutoplay: async (params: H3ReferenceToVideoTurboRealtimeSetAutoplayParams): Promise<H3ReferenceToVideoTurboRealtimeAutoplayAcceptedMessage | undefined> => {\n const reply = await sendCommand(\"set_autoplay\", params);\n return reply === undefined ? undefined : _unwrapMessage<H3ReferenceToVideoTurboRealtimeAutoplayAcceptedMessage>(reply);\n },\n setClipSeconds: async (params: H3ReferenceToVideoTurboRealtimeSetClipSecondsParams): Promise<H3ReferenceToVideoTurboRealtimeClipLengthAcceptedMessage | undefined> => {\n const reply = await sendCommand(\"set_clip_seconds\", params);\n return reply === undefined ? undefined : _unwrapMessage<H3ReferenceToVideoTurboRealtimeClipLengthAcceptedMessage>(reply);\n },\n setFlushOnClipEnd: async (params: H3ReferenceToVideoTurboRealtimeSetFlushOnClipEndParams): Promise<H3ReferenceToVideoTurboRealtimeFlushAcceptedMessage | undefined> => {\n const reply = await sendCommand(\"set_flush_on_clip_end\", params);\n return reply === undefined ? undefined : _unwrapMessage<H3ReferenceToVideoTurboRealtimeFlushAcceptedMessage>(reply);\n },\n };\n}\n\n/**\n * Subscribe to any H3ReferenceToVideoTurboRealtime message with a fully-typed handler.\n * The handler receives a discriminated H3ReferenceToVideoTurboRealtimeMessage.\n */\nexport function useH3ReferenceToVideoTurboRealtimeMessage(\n handler: (message: H3ReferenceToVideoTurboRealtimeMessage) => void,\n): void {\n useReactorMessage((msg: unknown) =>\n handler(_unwrapMessage<H3ReferenceToVideoTurboRealtimeMessage>(msg)),\n );\n}\n\n/**\n * Subscribe to \"clip_moved\" messages only.\n * Handler receives a fully-typed H3ReferenceToVideoTurboRealtimeClipMovedMessage.\n */\nexport function useH3ReferenceToVideoTurboRealtimeClipMoved(\n handler: (message: H3ReferenceToVideoTurboRealtimeClipMovedMessage) => void,\n): void {\n useReactorMessage((msg: unknown) => {\n const m = _unwrapMessage<H3ReferenceToVideoTurboRealtimeMessage>(msg);\n if (m.type === \"clip_moved\") {\n handler(m as H3ReferenceToVideoTurboRealtimeClipMovedMessage);\n }\n });\n}\n\n/**\n * Subscribe to \"clip_failed\" messages only.\n * Handler receives a fully-typed H3ReferenceToVideoTurboRealtimeClipFailedMessage.\n */\nexport function useH3ReferenceToVideoTurboRealtimeClipFailed(\n handler: (message: H3ReferenceToVideoTurboRealtimeClipFailedMessage) => void,\n): void {\n useReactorMessage((msg: unknown) => {\n const m = _unwrapMessage<H3ReferenceToVideoTurboRealtimeMessage>(msg);\n if (m.type === \"clip_failed\") {\n handler(m as H3ReferenceToVideoTurboRealtimeClipFailedMessage);\n }\n });\n}\n\n/**\n * Subscribe to \"clip_popped\" messages only.\n * Handler receives a fully-typed H3ReferenceToVideoTurboRealtimeClipPoppedMessage.\n */\nexport function useH3ReferenceToVideoTurboRealtimeClipPopped(\n handler: (message: H3ReferenceToVideoTurboRealtimeClipPoppedMessage) => void,\n): void {\n useReactorMessage((msg: unknown) => {\n const m = _unwrapMessage<H3ReferenceToVideoTurboRealtimeMessage>(msg);\n if (m.type === \"clip_popped\") {\n handler(m as H3ReferenceToVideoTurboRealtimeClipPoppedMessage);\n }\n });\n}\n\n/**\n * Subscribe to \"clip_queued\" messages only.\n * Handler receives a fully-typed H3ReferenceToVideoTurboRealtimeClipQueuedMessage.\n */\nexport function useH3ReferenceToVideoTurboRealtimeClipQueued(\n handler: (message: H3ReferenceToVideoTurboRealtimeClipQueuedMessage) => void,\n): void {\n useReactorMessage((msg: unknown) => {\n const m = _unwrapMessage<H3ReferenceToVideoTurboRealtimeMessage>(msg);\n if (m.type === \"clip_queued\") {\n handler(m as H3ReferenceToVideoTurboRealtimeClipQueuedMessage);\n }\n });\n}\n\n/**\n * Subscribe to \"clip_started\" messages only.\n * Handler receives a fully-typed H3ReferenceToVideoTurboRealtimeClipStartedMessage.\n */\nexport function useH3ReferenceToVideoTurboRealtimeClipStarted(\n handler: (message: H3ReferenceToVideoTurboRealtimeClipStartedMessage) => void,\n): void {\n useReactorMessage((msg: unknown) => {\n const m = _unwrapMessage<H3ReferenceToVideoTurboRealtimeMessage>(msg);\n if (m.type === \"clip_started\") {\n handler(m as H3ReferenceToVideoTurboRealtimeClipStartedMessage);\n }\n });\n}\n\n/**\n * Subscribe to \"clip_stopped\" messages only.\n * Handler receives a fully-typed H3ReferenceToVideoTurboRealtimeClipStoppedMessage.\n */\nexport function useH3ReferenceToVideoTurboRealtimeClipStopped(\n handler: (message: H3ReferenceToVideoTurboRealtimeClipStoppedMessage) => void,\n): void {\n useReactorMessage((msg: unknown) => {\n const m = _unwrapMessage<H3ReferenceToVideoTurboRealtimeMessage>(msg);\n if (m.type === \"clip_stopped\") {\n handler(m as H3ReferenceToVideoTurboRealtimeClipStoppedMessage);\n }\n });\n}\n\n/**\n * Subscribe to \"queue_update\" messages only.\n * Handler receives a fully-typed H3ReferenceToVideoTurboRealtimeQueueUpdateMessage.\n */\nexport function useH3ReferenceToVideoTurboRealtimeQueueUpdate(\n handler: (message: H3ReferenceToVideoTurboRealtimeQueueUpdateMessage) => void,\n): void {\n useReactorMessage((msg: unknown) => {\n const m = _unwrapMessage<H3ReferenceToVideoTurboRealtimeMessage>(msg);\n if (m.type === \"queue_update\") {\n handler(m as H3ReferenceToVideoTurboRealtimeQueueUpdateMessage);\n }\n });\n}\n\n/**\n * Subscribe to \"state_update\" messages only.\n * Handler receives a fully-typed H3ReferenceToVideoTurboRealtimeStateUpdateMessage.\n */\nexport function useH3ReferenceToVideoTurboRealtimeStateUpdate(\n handler: (message: H3ReferenceToVideoTurboRealtimeStateUpdateMessage) => void,\n): void {\n useReactorMessage((msg: unknown) => {\n const m = _unwrapMessage<H3ReferenceToVideoTurboRealtimeMessage>(msg);\n if (m.type === \"state_update\") {\n handler(m as H3ReferenceToVideoTurboRealtimeStateUpdateMessage);\n }\n });\n}\n\n/**\n * Subscribe to \"clip_finished\" messages only.\n * Handler receives a fully-typed H3ReferenceToVideoTurboRealtimeClipFinishedMessage.\n */\nexport function useH3ReferenceToVideoTurboRealtimeClipFinished(\n handler: (message: H3ReferenceToVideoTurboRealtimeClipFinishedMessage) => void,\n): void {\n useReactorMessage((msg: unknown) => {\n const m = _unwrapMessage<H3ReferenceToVideoTurboRealtimeMessage>(msg);\n if (m.type === \"clip_finished\") {\n handler(m as H3ReferenceToVideoTurboRealtimeClipFinishedMessage);\n }\n });\n}\n\n/**\n * Subscribe to \"command_error\" messages only.\n * Handler receives a fully-typed H3ReferenceToVideoTurboRealtimeCommandErrorMessage.\n */\nexport function useH3ReferenceToVideoTurboRealtimeCommandError(\n handler: (message: H3ReferenceToVideoTurboRealtimeCommandErrorMessage) => void,\n): void {\n useReactorMessage((msg: unknown) => {\n const m = _unwrapMessage<H3ReferenceToVideoTurboRealtimeMessage>(msg);\n if (m.type === \"command_error\") {\n handler(m as H3ReferenceToVideoTurboRealtimeCommandErrorMessage);\n }\n });\n}\n\n/**\n * Subscribe to \"seed_accepted\" messages only.\n * Handler receives a fully-typed H3ReferenceToVideoTurboRealtimeSeedAcceptedMessage.\n */\nexport function useH3ReferenceToVideoTurboRealtimeSeedAccepted(\n handler: (message: H3ReferenceToVideoTurboRealtimeSeedAcceptedMessage) => void,\n): void {\n useReactorMessage((msg: unknown) => {\n const m = _unwrapMessage<H3ReferenceToVideoTurboRealtimeMessage>(msg);\n if (m.type === \"seed_accepted\") {\n handler(m as H3ReferenceToVideoTurboRealtimeSeedAcceptedMessage);\n }\n });\n}\n\n/**\n * Subscribe to \"session_reset\" messages only.\n * Handler receives a fully-typed H3ReferenceToVideoTurboRealtimeSessionResetMessage.\n */\nexport function useH3ReferenceToVideoTurboRealtimeSessionReset(\n handler: (message: H3ReferenceToVideoTurboRealtimeSessionResetMessage) => void,\n): void {\n useReactorMessage((msg: unknown) => {\n const m = _unwrapMessage<H3ReferenceToVideoTurboRealtimeMessage>(msg);\n if (m.type === \"session_reset\") {\n handler(m as H3ReferenceToVideoTurboRealtimeSessionResetMessage);\n }\n });\n}\n\n/**\n * Subscribe to \"clip_generated\" messages only.\n * Handler receives a fully-typed H3ReferenceToVideoTurboRealtimeClipGeneratedMessage.\n */\nexport function useH3ReferenceToVideoTurboRealtimeClipGenerated(\n handler: (message: H3ReferenceToVideoTurboRealtimeClipGeneratedMessage) => void,\n): void {\n useReactorMessage((msg: unknown) => {\n const m = _unwrapMessage<H3ReferenceToVideoTurboRealtimeMessage>(msg);\n if (m.type === \"clip_generated\") {\n handler(m as H3ReferenceToVideoTurboRealtimeClipGeneratedMessage);\n }\n });\n}\n\n/**\n * Subscribe to \"flush_accepted\" messages only.\n * Handler receives a fully-typed H3ReferenceToVideoTurboRealtimeFlushAcceptedMessage.\n */\nexport function useH3ReferenceToVideoTurboRealtimeFlushAccepted(\n handler: (message: H3ReferenceToVideoTurboRealtimeFlushAcceptedMessage) => void,\n): void {\n useReactorMessage((msg: unknown) => {\n const m = _unwrapMessage<H3ReferenceToVideoTurboRealtimeMessage>(msg);\n if (m.type === \"flush_accepted\") {\n handler(m as H3ReferenceToVideoTurboRealtimeFlushAcceptedMessage);\n }\n });\n}\n\n/**\n * Subscribe to \"canvas_accepted\" messages only.\n * Handler receives a fully-typed H3ReferenceToVideoTurboRealtimeCanvasAcceptedMessage.\n */\nexport function useH3ReferenceToVideoTurboRealtimeCanvasAccepted(\n handler: (message: H3ReferenceToVideoTurboRealtimeCanvasAcceptedMessage) => void,\n): void {\n useReactorMessage((msg: unknown) => {\n const m = _unwrapMessage<H3ReferenceToVideoTurboRealtimeMessage>(msg);\n if (m.type === \"canvas_accepted\") {\n handler(m as H3ReferenceToVideoTurboRealtimeCanvasAcceptedMessage);\n }\n });\n}\n\n/**\n * Subscribe to \"autoplay_accepted\" messages only.\n * Handler receives a fully-typed H3ReferenceToVideoTurboRealtimeAutoplayAcceptedMessage.\n */\nexport function useH3ReferenceToVideoTurboRealtimeAutoplayAccepted(\n handler: (message: H3ReferenceToVideoTurboRealtimeAutoplayAcceptedMessage) => void,\n): void {\n useReactorMessage((msg: unknown) => {\n const m = _unwrapMessage<H3ReferenceToVideoTurboRealtimeMessage>(msg);\n if (m.type === \"autoplay_accepted\") {\n handler(m as H3ReferenceToVideoTurboRealtimeAutoplayAcceptedMessage);\n }\n });\n}\n\n/**\n * Subscribe to \"clip_length_accepted\" messages only.\n * Handler receives a fully-typed H3ReferenceToVideoTurboRealtimeClipLengthAcceptedMessage.\n */\nexport function useH3ReferenceToVideoTurboRealtimeClipLengthAccepted(\n handler: (message: H3ReferenceToVideoTurboRealtimeClipLengthAcceptedMessage) => void,\n): void {\n useReactorMessage((msg: unknown) => {\n const m = _unwrapMessage<H3ReferenceToVideoTurboRealtimeMessage>(msg);\n if (m.type === \"clip_length_accepted\") {\n handler(m as H3ReferenceToVideoTurboRealtimeClipLengthAcceptedMessage);\n }\n });\n}\n\n/**\n * Subscribe to a recvonly MediaStreamTrack the model publishes, by name.\n *\n * Returns `undefined` until the model emits the track, then the live track for the lifetime of the connection. `name` is constrained to the model's declared recvonly channels — use one of `H3ReferenceToVideoTurboRealtimeRecvTrackName`.\n * @param name - A recvonly track name declared by the model\n * @returns The live MediaStreamTrack, or `undefined` until received\n */\nexport function useH3ReferenceToVideoTurboRealtimeTrack(\n name: H3ReferenceToVideoTurboRealtimeRecvTrackName,\n): MediaStreamTrack | undefined {\n return useReactor((s) => s.tracks[name]);\n}\n\nexport type H3ReferenceToVideoTurboRealtimeMainVideoViewProps = Omit<ReactorViewProps, \"track\">;\n\n/**\n * Render the model's \"main_video\" recvonly video track in a `<video>` element.\n *\n * Thin wrapper around `<ReactorView>` with `track` pre-bound. Accepts every other `ReactorViewProps` (`audioTrack`, `className`, `style`, `videoObjectFit`, `muted`, …). Must be rendered inside `<H3ReferenceToVideoTurboRealtimeProvider>`.\n */\nexport function H3ReferenceToVideoTurboRealtimeMainVideoView(\n props: H3ReferenceToVideoTurboRealtimeMainVideoViewProps,\n): ReactElement {\n return <ReactorView {...props} track=\"main_video\" />;\n}\n"],"mappings":"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","names":[]}