@mentra/miniapp 3.2.1-beta.319 → 3.2.1-beta.355
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 +16 -0
- package/dist/background/index.d.ts +5 -3
- package/dist/background/index.d.ts.map +1 -1
- package/dist/background/index.js +1 -0
- package/dist/background/index.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/modules/display.d.ts +33 -0
- package/dist/modules/display.d.ts.map +1 -1
- package/dist/modules/display.js +2 -0
- package/dist/modules/display.js.map +1 -1
- package/dist/modules/meeting.d.ts +66 -6
- package/dist/modules/meeting.d.ts.map +1 -1
- package/dist/modules/meeting.js +72 -19
- package/dist/modules/meeting.js.map +1 -1
- package/dist/modules/stream.d.ts +46 -0
- package/dist/modules/stream.d.ts.map +1 -1
- package/dist/modules/stream.js +107 -0
- package/dist/modules/stream.js.map +1 -1
- package/dist/protocol.d.ts +39 -0
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +36 -0
- package/dist/protocol.js.map +1 -1
- package/dist/react/StreamPreview.d.ts +41 -0
- package/dist/react/StreamPreview.d.ts.map +1 -0
- package/dist/react/StreamPreview.js +144 -0
- package/dist/react/StreamPreview.js.map +1 -0
- package/dist/react/index.d.ts +2 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +1 -0
- package/dist/react/index.js.map +1 -1
- package/dist/react/stream-preview/PreviewConnection.d.ts +139 -0
- package/dist/react/stream-preview/PreviewConnection.d.ts.map +1 -0
- package/dist/react/stream-preview/PreviewConnection.js +462 -0
- package/dist/react/stream-preview/PreviewConnection.js.map +1 -0
- package/dist/react/stream-preview/controlChannel.d.ts +75 -0
- package/dist/react/stream-preview/controlChannel.d.ts.map +1 -0
- package/dist/react/stream-preview/controlChannel.js +55 -0
- package/dist/react/stream-preview/controlChannel.js.map +1 -0
- package/dist/react/stream-preview/creditLoop.d.ts +81 -0
- package/dist/react/stream-preview/creditLoop.d.ts.map +1 -0
- package/dist/react/stream-preview/creditLoop.js +146 -0
- package/dist/react/stream-preview/creditLoop.js.map +1 -0
- package/dist/react/stream-preview/protocol.d.ts +113 -0
- package/dist/react/stream-preview/protocol.d.ts.map +1 -0
- package/dist/react/stream-preview/protocol.js +148 -0
- package/dist/react/stream-preview/protocol.js.map +1 -0
- package/dist/react/stream-preview/resizeCoalescer.d.ts +38 -0
- package/dist/react/stream-preview/resizeCoalescer.d.ts.map +1 -0
- package/dist/react/stream-preview/resizeCoalescer.js +71 -0
- package/dist/react/stream-preview/resizeCoalescer.js.map +1 -0
- package/dist/react/stream-preview/testFrames.d.ts +38 -0
- package/dist/react/stream-preview/testFrames.d.ts.map +1 -0
- package/dist/react/stream-preview/testFrames.js +50 -0
- package/dist/react/stream-preview/testFrames.js.map +1 -0
- package/dist/react/stream-preview/tiers.d.ts +21 -0
- package/dist/react/stream-preview/tiers.d.ts.map +1 -0
- package/dist/react/stream-preview/tiers.js +33 -0
- package/dist/react/stream-preview/tiers.js.map +1 -0
- package/dist/react/stream-preview/trace.d.ts +23 -0
- package/dist/react/stream-preview/trace.d.ts.map +1 -0
- package/dist/react/stream-preview/trace.js +71 -0
- package/dist/react/stream-preview/trace.js.map +1 -0
- package/dist/react/stream-preview/transport.d.ts +79 -0
- package/dist/react/stream-preview/transport.d.ts.map +1 -0
- package/dist/react/stream-preview/transport.js +209 -0
- package/dist/react/stream-preview/transport.js.map +1 -0
- package/dist/react/stream-preview/yuvRenderer.d.ts +31 -0
- package/dist/react/stream-preview/yuvRenderer.d.ts.map +1 -0
- package/dist/react/stream-preview/yuvRenderer.js +398 -0
- package/dist/react/stream-preview/yuvRenderer.js.map +1 -0
- package/dist/session.d.ts +5 -0
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +5 -0
- package/dist/session.js.map +1 -1
- package/dist/ui/index.d.ts +2 -0
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +1 -0
- package/dist/ui/index.js.map +1 -1
- package/package.json +8 -3
- package/src/background/index.ts +14 -1
- package/src/index.ts +15 -0
- package/src/modules/display.ts +37 -0
- package/src/modules/meeting.ts +133 -23
- package/src/modules/stream.ts +153 -1
- package/src/protocol.ts +75 -0
- package/src/react/StreamPreview.tsx +187 -0
- package/src/react/index.ts +2 -0
- package/src/react/stream-preview/PreviewConnection.ts +552 -0
- package/src/react/stream-preview/controlChannel.ts +119 -0
- package/src/react/stream-preview/creditLoop.ts +189 -0
- package/src/react/stream-preview/protocol.ts +227 -0
- package/src/react/stream-preview/resizeCoalescer.ts +88 -0
- package/src/react/stream-preview/testFrames.ts +86 -0
- package/src/react/stream-preview/tiers.ts +37 -0
- package/src/react/stream-preview/trace.ts +81 -0
- package/src/react/stream-preview/transport.ts +242 -0
- package/src/react/stream-preview/yuvRenderer.ts +453 -0
- package/src/session.ts +8 -0
- package/src/ui/index.ts +2 -0
package/dist/modules/stream.d.ts
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* stream and returns playback URLs (managed). Pass `direct` to publish straight
|
|
8
8
|
* to your own ingest URL with no relay.
|
|
9
9
|
*/
|
|
10
|
+
import { type PreviewErrorCode, type PreviewSource } from "../protocol";
|
|
10
11
|
import { MiniappSession } from "../session";
|
|
11
12
|
export interface StreamVideoConfig {
|
|
12
13
|
width?: number;
|
|
@@ -122,9 +123,54 @@ export interface StreamStatus {
|
|
|
122
123
|
resolvedConfig?: StreamResolvedConfig;
|
|
123
124
|
stats?: StreamLiveStats;
|
|
124
125
|
}
|
|
126
|
+
export interface StreamPreviewOptions {
|
|
127
|
+
/** Defaults to `"call"`. `"glasses"` is reserved and rejects with `unsupported`. */
|
|
128
|
+
source?: PreviewSource;
|
|
129
|
+
}
|
|
130
|
+
export type PreviewHandleState = "held" | "ended";
|
|
131
|
+
export interface PreviewHandleStatus {
|
|
132
|
+
state: PreviewHandleState;
|
|
133
|
+
/** Set when `state` is `"ended"`: `stopped`, `source_ended`, `runtime_stopped`, ... */
|
|
134
|
+
reason?: string;
|
|
135
|
+
}
|
|
136
|
+
/** A preview request or lease failed. `code` is one of {@link PreviewErrorCode} when the host sent one. */
|
|
137
|
+
export declare class PreviewError extends Error {
|
|
138
|
+
readonly code: PreviewErrorCode | string;
|
|
139
|
+
constructor(code: PreviewErrorCode | string, message?: string);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* The background-owned lease on a preview source.
|
|
143
|
+
*
|
|
144
|
+
* The lease is what lets a `<StreamPreview>` in the UI show frames. It survives the UI closing and
|
|
145
|
+
* the WebView being destroyed, and ends on `stop()`, when the source ends (the meeting is over), or
|
|
146
|
+
* when the background runtime stops. Hiding the component does not release it.
|
|
147
|
+
*/
|
|
148
|
+
export interface PreviewHandle {
|
|
149
|
+
readonly source: PreviewSource;
|
|
150
|
+
readonly handleId: string;
|
|
151
|
+
/** Correlation id stamped on every `PREVIEW_TRACE` log line for this lease. */
|
|
152
|
+
readonly previewTraceId: string;
|
|
153
|
+
readonly state: PreviewHandleState;
|
|
154
|
+
/** Release the lease. Idempotent. */
|
|
155
|
+
stop(): Promise<void>;
|
|
156
|
+
/** Lease transitions. Fires `{state: "ended", reason}` exactly once. */
|
|
157
|
+
onStatus(cb: (status: PreviewHandleStatus) => void): () => void;
|
|
158
|
+
}
|
|
125
159
|
export declare class StreamModule {
|
|
126
160
|
private readonly session;
|
|
161
|
+
private readonly previewHandles;
|
|
127
162
|
constructor(session: MiniappSession);
|
|
163
|
+
/**
|
|
164
|
+
* Take the preview lease on a source so a `<StreamPreview>` in the UI can show its frames.
|
|
165
|
+
*
|
|
166
|
+
* For `"call"` the caller must declare `CAMERA` and own the active meeting (`session.meeting`).
|
|
167
|
+
* Only one lease exists at a time; a second request fails with `preview_busy`. Rejects with a
|
|
168
|
+
* {@link PreviewError}. Never await this on a call's connect path: preview is additive.
|
|
169
|
+
*/
|
|
170
|
+
preview(options?: StreamPreviewOptions): Promise<PreviewHandle>;
|
|
171
|
+
private releasePreview;
|
|
172
|
+
/** @internal — applied by MiniappSession on inbound STREAM_PREVIEW_STATUS. */
|
|
173
|
+
_applyPreviewStatus(payload: Record<string, unknown>): void;
|
|
128
174
|
/**
|
|
129
175
|
* Start a live video stream from the glasses camera.
|
|
130
176
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/modules/stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/modules/stream.ts"],"names":[],"mappings":"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"}
|
package/dist/modules/stream.js
CHANGED
|
@@ -8,9 +8,116 @@
|
|
|
8
8
|
* to your own ingest URL with no relay.
|
|
9
9
|
*/
|
|
10
10
|
import { MiniappRequestType } from "../protocol";
|
|
11
|
+
/** A preview request or lease failed. `code` is one of {@link PreviewErrorCode} when the host sent one. */
|
|
12
|
+
export class PreviewError extends Error {
|
|
13
|
+
constructor(code, message) {
|
|
14
|
+
super(message ?? code);
|
|
15
|
+
this.name = "PreviewError";
|
|
16
|
+
this.code = code;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function toPreviewError(error) {
|
|
20
|
+
if (error instanceof PreviewError)
|
|
21
|
+
return error;
|
|
22
|
+
const value = (error ?? {});
|
|
23
|
+
const code = typeof value.code === "string" ? value.code : "unsupported";
|
|
24
|
+
const message = typeof value.message === "string" ? value.message : undefined;
|
|
25
|
+
return new PreviewError(code, message);
|
|
26
|
+
}
|
|
27
|
+
class PreviewHandleImpl {
|
|
28
|
+
constructor(source, handleId, previewTraceId, release) {
|
|
29
|
+
this.source = source;
|
|
30
|
+
this.handleId = handleId;
|
|
31
|
+
this.previewTraceId = previewTraceId;
|
|
32
|
+
this.release = release;
|
|
33
|
+
this.state = "held";
|
|
34
|
+
this.listeners = new Set();
|
|
35
|
+
}
|
|
36
|
+
async stop() {
|
|
37
|
+
if (this.state === "ended")
|
|
38
|
+
return;
|
|
39
|
+
this.end("stopped");
|
|
40
|
+
await this.release(this);
|
|
41
|
+
}
|
|
42
|
+
onStatus(cb) {
|
|
43
|
+
this.listeners.add(cb);
|
|
44
|
+
return () => this.listeners.delete(cb);
|
|
45
|
+
}
|
|
46
|
+
/** @internal */
|
|
47
|
+
end(reason) {
|
|
48
|
+
if (this.state === "ended")
|
|
49
|
+
return;
|
|
50
|
+
this.state = "ended";
|
|
51
|
+
this.emit({ state: "ended", reason });
|
|
52
|
+
}
|
|
53
|
+
emit(status) {
|
|
54
|
+
for (const listener of [...this.listeners]) {
|
|
55
|
+
try {
|
|
56
|
+
listener(status);
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
// A throwing listener must not stop the others from hearing that the lease ended.
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
11
64
|
export class StreamModule {
|
|
12
65
|
constructor(session) {
|
|
13
66
|
this.session = session;
|
|
67
|
+
this.previewHandles = new Map();
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Take the preview lease on a source so a `<StreamPreview>` in the UI can show its frames.
|
|
71
|
+
*
|
|
72
|
+
* For `"call"` the caller must declare `CAMERA` and own the active meeting (`session.meeting`).
|
|
73
|
+
* Only one lease exists at a time; a second request fails with `preview_busy`. Rejects with a
|
|
74
|
+
* {@link PreviewError}. Never await this on a call's connect path: preview is additive.
|
|
75
|
+
*/
|
|
76
|
+
async preview(options = {}) {
|
|
77
|
+
const source = options.source ?? "call";
|
|
78
|
+
if (source !== "call") {
|
|
79
|
+
throw new PreviewError("unsupported", `Preview source "${String(source)}" is not supported yet`);
|
|
80
|
+
}
|
|
81
|
+
let result;
|
|
82
|
+
try {
|
|
83
|
+
result = await this.session.sendRequest({
|
|
84
|
+
type: MiniappRequestType.STREAM_PREVIEW_START,
|
|
85
|
+
source,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
throw toPreviewError(error);
|
|
90
|
+
}
|
|
91
|
+
const handle = new PreviewHandleImpl(result.source ?? source, result.handleId, result.previewTraceId, (h) => this.releasePreview(h));
|
|
92
|
+
this.previewHandles.set(handle.handleId, handle);
|
|
93
|
+
handle.onStatus((status) => {
|
|
94
|
+
if (status.state === "ended")
|
|
95
|
+
this.previewHandles.delete(handle.handleId);
|
|
96
|
+
});
|
|
97
|
+
return handle;
|
|
98
|
+
}
|
|
99
|
+
async releasePreview(handle) {
|
|
100
|
+
this.previewHandles.delete(handle.handleId);
|
|
101
|
+
try {
|
|
102
|
+
await this.session.sendRequest({
|
|
103
|
+
type: MiniappRequestType.STREAM_PREVIEW_STOP,
|
|
104
|
+
handleId: handle.handleId,
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
throw toPreviewError(error);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/** @internal — applied by MiniappSession on inbound STREAM_PREVIEW_STATUS. */
|
|
112
|
+
_applyPreviewStatus(payload) {
|
|
113
|
+
if (typeof payload.handleId !== "string")
|
|
114
|
+
return;
|
|
115
|
+
const handle = this.previewHandles.get(payload.handleId);
|
|
116
|
+
if (!handle)
|
|
117
|
+
return;
|
|
118
|
+
if (payload.state === "ended") {
|
|
119
|
+
handle.end(typeof payload.reason === "string" ? payload.reason : "ended");
|
|
120
|
+
}
|
|
14
121
|
}
|
|
15
122
|
/**
|
|
16
123
|
* Start a live video stream from the glasses camera.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/modules/stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAC,kBAAkB,
|
|
1
|
+
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/modules/stream.ts"],"names":[],"mappings":"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"}
|
package/dist/protocol.d.ts
CHANGED
|
@@ -164,6 +164,13 @@ export declare enum MiniappRequestType {
|
|
|
164
164
|
STREAM_STOP = "miniapp_stream_stop",
|
|
165
165
|
MANAGED_STREAM_START = "miniapp_managed_stream_start",
|
|
166
166
|
MANAGED_STREAM_STOP = "miniapp_managed_stream_stop",
|
|
167
|
+
/**
|
|
168
|
+
* Take the single raw decoded-frame preview lease on a source. See
|
|
169
|
+
* `session.stream.preview()`. Replies `{handleId, previewTraceId, source}`.
|
|
170
|
+
*/
|
|
171
|
+
STREAM_PREVIEW_START = "miniapp_stream_preview_start",
|
|
172
|
+
/** Release a preview lease by `handleId`. */
|
|
173
|
+
STREAM_PREVIEW_STOP = "miniapp_stream_preview_stop",
|
|
167
174
|
/** Ask the host to open the glasses Wi-Fi setup flow (mirrors the cloud SDK's requestWifiSetup). */
|
|
168
175
|
REQUEST_WIFI_SETUP = "miniapp_request_wifi_setup",
|
|
169
176
|
/** Read the phone's Wi-Fi radio state (null when the platform cannot determine it). */
|
|
@@ -184,6 +191,10 @@ export declare enum MiniappRequestType {
|
|
|
184
191
|
* Phone-native meeting (ACS Teams). Join/leave/mute live in the MentraOS
|
|
185
192
|
* host so the miniapp never holds the ACS Calling SDK.
|
|
186
193
|
*/
|
|
194
|
+
MEETING_GET_IDENTITY = "miniapp_meeting_get_identity",
|
|
195
|
+
MEETING_GET_CONFIGURATION = "miniapp_meeting_get_configuration",
|
|
196
|
+
MEETING_CREATE = "miniapp_meeting_create",
|
|
197
|
+
MEETING_RETIRE = "miniapp_meeting_retire",
|
|
187
198
|
MEETING_JOIN = "miniapp_meeting_join",
|
|
188
199
|
MEETING_LEAVE = "miniapp_meeting_leave",
|
|
189
200
|
/** Terminate the meeting for everyone, not just this device. See `meeting.end()`. */
|
|
@@ -191,6 +202,8 @@ export declare enum MiniappRequestType {
|
|
|
191
202
|
/** Admit one waiting participant, when the host has Teams lobby permission. */
|
|
192
203
|
MEETING_ADMIT = "miniapp_meeting_admit",
|
|
193
204
|
MEETING_SET_MUTED = "miniapp_meeting_set_muted",
|
|
205
|
+
/** Stop or resume the glasses camera the meeting receives, without leaving. */
|
|
206
|
+
MEETING_SET_VIDEO_ENABLED = "miniapp_meeting_set_video_enabled",
|
|
194
207
|
MEETING_UPDATE_VIDEO_SOURCE = "miniapp_meeting_update_video_source",
|
|
195
208
|
MEETING_GET_STATE = "miniapp_meeting_get_state"
|
|
196
209
|
}
|
|
@@ -238,6 +251,11 @@ export declare enum MiniappResponseType {
|
|
|
238
251
|
* See MeetingModule.onState().
|
|
239
252
|
*/
|
|
240
253
|
MEETING_STATE = "miniapp_meeting_state",
|
|
254
|
+
/**
|
|
255
|
+
* Push: a preview lease changed state. Carries {handleId, state: "held" | "ended", reason?}.
|
|
256
|
+
* See PreviewHandle.onStatus().
|
|
257
|
+
*/
|
|
258
|
+
STREAM_PREVIEW_STATUS = "miniapp_stream_preview_status",
|
|
241
259
|
/**
|
|
242
260
|
* Push: phone is about to tear down the miniapp's session. Gives the SDK
|
|
243
261
|
* a brief window (~50ms grace on the phone side) to fire one last
|
|
@@ -345,4 +363,25 @@ export declare enum MiniappErrorCode {
|
|
|
345
363
|
/** `blob.importFile` failed (not the user cancelling — that resolves to null). */
|
|
346
364
|
BLOB_IMPORT_FAILED = "BLOB_IMPORT_FAILED"
|
|
347
365
|
}
|
|
366
|
+
/**
|
|
367
|
+
* Where a raw preview comes from. `"call"` is the decoded video of the phone-native meeting the
|
|
368
|
+
* caller owns. `"glasses"` is reserved and currently rejects with `unsupported`.
|
|
369
|
+
*/
|
|
370
|
+
export type PreviewSource = "call" | "glasses";
|
|
371
|
+
/**
|
|
372
|
+
* Typed preview failures and non-terminal statuses, shared by the background handle, the UI
|
|
373
|
+
* component and the host. `waiting_for_lease` and `paused_background` are statuses, not errors.
|
|
374
|
+
*/
|
|
375
|
+
export type PreviewErrorCode = "permission_denied" | "not_meeting_owner" | "preview_busy" | "waiting_for_lease" | "source_ended" | "unsupported" | "ack_timeout" | "transport_failed" | "pack_failed" | "paused_background" | "diagnostics_disabled";
|
|
376
|
+
export declare const PREVIEW_ERROR_CODES: readonly PreviewErrorCode[];
|
|
377
|
+
export declare function isPreviewErrorCode(value: unknown): value is PreviewErrorCode;
|
|
378
|
+
/** Lease state pushed to the background with `STREAM_PREVIEW_STATUS`. */
|
|
379
|
+
export interface PreviewStatus {
|
|
380
|
+
handleId: string;
|
|
381
|
+
state: "held" | "ended";
|
|
382
|
+
/** Why the lease ended: `stopped`, `source_ended`, `runtime_stopped`, ... */
|
|
383
|
+
reason?: string;
|
|
384
|
+
}
|
|
385
|
+
/** The single reserved UI channel the host answers itself for preview control. */
|
|
386
|
+
export declare const PREVIEW_UI_CHANNEL = "_preview";
|
|
348
387
|
//# sourceMappingURL=protocol.d.ts.map
|
package/dist/protocol.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
|
package/dist/protocol.js
CHANGED
|
@@ -170,6 +170,13 @@ export var MiniappRequestType;
|
|
|
170
170
|
MiniappRequestType["STREAM_STOP"] = "miniapp_stream_stop";
|
|
171
171
|
MiniappRequestType["MANAGED_STREAM_START"] = "miniapp_managed_stream_start";
|
|
172
172
|
MiniappRequestType["MANAGED_STREAM_STOP"] = "miniapp_managed_stream_stop";
|
|
173
|
+
/**
|
|
174
|
+
* Take the single raw decoded-frame preview lease on a source. See
|
|
175
|
+
* `session.stream.preview()`. Replies `{handleId, previewTraceId, source}`.
|
|
176
|
+
*/
|
|
177
|
+
MiniappRequestType["STREAM_PREVIEW_START"] = "miniapp_stream_preview_start";
|
|
178
|
+
/** Release a preview lease by `handleId`. */
|
|
179
|
+
MiniappRequestType["STREAM_PREVIEW_STOP"] = "miniapp_stream_preview_stop";
|
|
173
180
|
/** Ask the host to open the glasses Wi-Fi setup flow (mirrors the cloud SDK's requestWifiSetup). */
|
|
174
181
|
MiniappRequestType["REQUEST_WIFI_SETUP"] = "miniapp_request_wifi_setup";
|
|
175
182
|
/** Read the phone's Wi-Fi radio state (null when the platform cannot determine it). */
|
|
@@ -191,6 +198,10 @@ export var MiniappRequestType;
|
|
|
191
198
|
* Phone-native meeting (ACS Teams). Join/leave/mute live in the MentraOS
|
|
192
199
|
* host so the miniapp never holds the ACS Calling SDK.
|
|
193
200
|
*/
|
|
201
|
+
MiniappRequestType["MEETING_GET_IDENTITY"] = "miniapp_meeting_get_identity";
|
|
202
|
+
MiniappRequestType["MEETING_GET_CONFIGURATION"] = "miniapp_meeting_get_configuration";
|
|
203
|
+
MiniappRequestType["MEETING_CREATE"] = "miniapp_meeting_create";
|
|
204
|
+
MiniappRequestType["MEETING_RETIRE"] = "miniapp_meeting_retire";
|
|
194
205
|
MiniappRequestType["MEETING_JOIN"] = "miniapp_meeting_join";
|
|
195
206
|
MiniappRequestType["MEETING_LEAVE"] = "miniapp_meeting_leave";
|
|
196
207
|
/** Terminate the meeting for everyone, not just this device. See `meeting.end()`. */
|
|
@@ -198,6 +209,8 @@ export var MiniappRequestType;
|
|
|
198
209
|
/** Admit one waiting participant, when the host has Teams lobby permission. */
|
|
199
210
|
MiniappRequestType["MEETING_ADMIT"] = "miniapp_meeting_admit";
|
|
200
211
|
MiniappRequestType["MEETING_SET_MUTED"] = "miniapp_meeting_set_muted";
|
|
212
|
+
/** Stop or resume the glasses camera the meeting receives, without leaving. */
|
|
213
|
+
MiniappRequestType["MEETING_SET_VIDEO_ENABLED"] = "miniapp_meeting_set_video_enabled";
|
|
201
214
|
MiniappRequestType["MEETING_UPDATE_VIDEO_SOURCE"] = "miniapp_meeting_update_video_source";
|
|
202
215
|
MiniappRequestType["MEETING_GET_STATE"] = "miniapp_meeting_get_state";
|
|
203
216
|
})(MiniappRequestType || (MiniappRequestType = {}));
|
|
@@ -249,6 +262,11 @@ export var MiniappResponseType;
|
|
|
249
262
|
* See MeetingModule.onState().
|
|
250
263
|
*/
|
|
251
264
|
MiniappResponseType["MEETING_STATE"] = "miniapp_meeting_state";
|
|
265
|
+
/**
|
|
266
|
+
* Push: a preview lease changed state. Carries {handleId, state: "held" | "ended", reason?}.
|
|
267
|
+
* See PreviewHandle.onStatus().
|
|
268
|
+
*/
|
|
269
|
+
MiniappResponseType["STREAM_PREVIEW_STATUS"] = "miniapp_stream_preview_status";
|
|
252
270
|
/**
|
|
253
271
|
* Push: phone is about to tear down the miniapp's session. Gives the SDK
|
|
254
272
|
* a brief window (~50ms grace on the phone side) to fire one last
|
|
@@ -371,4 +389,22 @@ export var MiniappErrorCode;
|
|
|
371
389
|
/** `blob.importFile` failed (not the user cancelling — that resolves to null). */
|
|
372
390
|
MiniappErrorCode["BLOB_IMPORT_FAILED"] = "BLOB_IMPORT_FAILED";
|
|
373
391
|
})(MiniappErrorCode || (MiniappErrorCode = {}));
|
|
392
|
+
export const PREVIEW_ERROR_CODES = [
|
|
393
|
+
"permission_denied",
|
|
394
|
+
"not_meeting_owner",
|
|
395
|
+
"preview_busy",
|
|
396
|
+
"waiting_for_lease",
|
|
397
|
+
"source_ended",
|
|
398
|
+
"unsupported",
|
|
399
|
+
"ack_timeout",
|
|
400
|
+
"transport_failed",
|
|
401
|
+
"pack_failed",
|
|
402
|
+
"paused_background",
|
|
403
|
+
"diagnostics_disabled",
|
|
404
|
+
];
|
|
405
|
+
export function isPreviewErrorCode(value) {
|
|
406
|
+
return typeof value === "string" && PREVIEW_ERROR_CODES.includes(value);
|
|
407
|
+
}
|
|
408
|
+
/** The single reserved UI channel the host answers itself for preview control. */
|
|
409
|
+
export const PREVIEW_UI_CHANNEL = "_preview";
|
|
374
410
|
//# sourceMappingURL=protocol.js.map
|
package/dist/protocol.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,+EAA+E;AAC/E,iDAAiD;AACjD,+EAA+E;AAE/E,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `<StreamPreview>` — draws the raw decoded frames of the source the miniapp's background has
|
|
3
|
+
* leased with `session.stream.preview()`.
|
|
4
|
+
*
|
|
5
|
+
* The component owns only the renderer (canvas, WebGL context, textures). Mounting it shows the
|
|
6
|
+
* preview; unmounting it hides the preview and stops production, but keeps the document's
|
|
7
|
+
* connection open so the next mount starts without a handshake. Releasing the lease is the
|
|
8
|
+
* background's job (`handle.stop()`), not this component's.
|
|
9
|
+
*
|
|
10
|
+
* Frame bytes never enter React state: frames go from the transport to the renderer directly.
|
|
11
|
+
*/
|
|
12
|
+
import { type CSSProperties } from "react";
|
|
13
|
+
import type { PreviewConnectionState } from "./stream-preview/PreviewConnection";
|
|
14
|
+
import { type PreviewFit, type YuvRenderer, type YuvRendererOptions } from "./stream-preview/yuvRenderer";
|
|
15
|
+
export type { PreviewFit } from "./stream-preview/yuvRenderer";
|
|
16
|
+
export type { PreviewConnectionState } from "./stream-preview/PreviewConnection";
|
|
17
|
+
export interface StreamPreviewStatus {
|
|
18
|
+
state: PreviewConnectionState;
|
|
19
|
+
/** The Mentra App is in the background; production is paused and resumes on return. */
|
|
20
|
+
paused: boolean;
|
|
21
|
+
/** Why the state changed, when the host said (`source_ended`, `stopped`, ...). */
|
|
22
|
+
reason?: string;
|
|
23
|
+
/** Error code for `error` / `unsupported`. */
|
|
24
|
+
code?: string;
|
|
25
|
+
/** Latest once-a-second host counters plus page-side counters. */
|
|
26
|
+
stats?: Record<string, unknown>;
|
|
27
|
+
}
|
|
28
|
+
export interface StreamPreviewProps {
|
|
29
|
+
/** `contain` letterboxes (default); `cover` fills and crops. The picture is never stretched. */
|
|
30
|
+
fit?: PreviewFit;
|
|
31
|
+
onStatus?: (status: StreamPreviewStatus) => void;
|
|
32
|
+
/** Typed preview error codes: `source_ended`, `unsupported`, `transport_failed`, ... */
|
|
33
|
+
onError?: (code: string) => void;
|
|
34
|
+
className?: string;
|
|
35
|
+
style?: CSSProperties;
|
|
36
|
+
}
|
|
37
|
+
type RendererFactory = (canvas: HTMLCanvasElement, options: YuvRendererOptions) => YuvRenderer | null;
|
|
38
|
+
/** Test seam: WebGL is not available in headless DOMs. */
|
|
39
|
+
export declare function setStreamPreviewRendererFactoryForTests(factory: RendererFactory | null): void;
|
|
40
|
+
export declare function StreamPreview({ fit, onStatus, onError, className, style }: StreamPreviewProps): import("react").JSX.Element;
|
|
41
|
+
//# sourceMappingURL=StreamPreview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StreamPreview.d.ts","sourceRoot":"","sources":["../../src/react/StreamPreview.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAoB,KAAK,aAAa,EAAC,MAAM,OAAO,CAAA;AAE3D,OAAO,KAAK,EAAC,sBAAsB,EAAc,MAAM,oCAAoC,CAAA;AAK3F,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACxB,MAAM,8BAA8B,CAAA;AAErC,YAAY,EAAC,UAAU,EAAC,MAAM,8BAA8B,CAAA;AAC5D,YAAY,EAAC,sBAAsB,EAAC,MAAM,oCAAoC,CAAA;AAE9E,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,sBAAsB,CAAA;IAC7B,uFAAuF;IACvF,MAAM,EAAE,OAAO,CAAA;IACf,kFAAkF;IAClF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,gGAAgG;IAChG,GAAG,CAAC,EAAE,UAAU,CAAA;IAChB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAA;IAChD,wFAAwF;IACxF,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,aAAa,CAAA;CACtB;AAED,KAAK,eAAe,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,kBAAkB,KAAK,WAAW,GAAG,IAAI,CAAA;AAIrG,0DAA0D;AAC1D,wBAAgB,uCAAuC,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,GAAG,IAAI,CAE7F;AAcD,wBAAgB,aAAa,CAAC,EAAC,GAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAC,EAAE,kBAAkB,+BAkHvG"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* `<StreamPreview>` — draws the raw decoded frames of the source the miniapp's background has
|
|
4
|
+
* leased with `session.stream.preview()`.
|
|
5
|
+
*
|
|
6
|
+
* The component owns only the renderer (canvas, WebGL context, textures). Mounting it shows the
|
|
7
|
+
* preview; unmounting it hides the preview and stops production, but keeps the document's
|
|
8
|
+
* connection open so the next mount starts without a handshake. Releasing the lease is the
|
|
9
|
+
* background's job (`handle.stop()`), not this component's.
|
|
10
|
+
*
|
|
11
|
+
* Frame bytes never enter React state: frames go from the transport to the renderer directly.
|
|
12
|
+
*/
|
|
13
|
+
import { useEffect, useRef } from "react";
|
|
14
|
+
import { getPreviewConnection } from "./stream-preview/PreviewConnection";
|
|
15
|
+
import { ResizeCoalescer } from "./stream-preview/resizeCoalescer";
|
|
16
|
+
import { quantizePreviewTier, sameTier } from "./stream-preview/tiers";
|
|
17
|
+
import { previewTrace, previewTraceWarn } from "./stream-preview/trace";
|
|
18
|
+
import { createYuvRenderer, } from "./stream-preview/yuvRenderer";
|
|
19
|
+
let rendererFactory = createYuvRenderer;
|
|
20
|
+
/** Test seam: WebGL is not available in headless DOMs. */
|
|
21
|
+
export function setStreamPreviewRendererFactoryForTests(factory) {
|
|
22
|
+
rendererFactory = factory ?? createYuvRenderer;
|
|
23
|
+
}
|
|
24
|
+
const DEFAULT_STYLE = { display: "block", width: "100%", height: "100%" };
|
|
25
|
+
function measure(canvas) {
|
|
26
|
+
const rect = canvas.getBoundingClientRect();
|
|
27
|
+
const ratio = typeof window === "undefined" ? 1 : window.devicePixelRatio || 1;
|
|
28
|
+
return { width: Math.round(rect.width * ratio), height: Math.round(rect.height * ratio) };
|
|
29
|
+
}
|
|
30
|
+
function isDocumentVisible() {
|
|
31
|
+
return typeof document === "undefined" || document.visibilityState !== "hidden";
|
|
32
|
+
}
|
|
33
|
+
export function StreamPreview({ fit = "contain", onStatus, onError, className, style }) {
|
|
34
|
+
const canvasRef = useRef(null);
|
|
35
|
+
const rendererRef = useRef(null);
|
|
36
|
+
const fitRef = useRef(fit);
|
|
37
|
+
const onStatusRef = useRef(onStatus);
|
|
38
|
+
const onErrorRef = useRef(onError);
|
|
39
|
+
fitRef.current = fit;
|
|
40
|
+
onStatusRef.current = onStatus;
|
|
41
|
+
onErrorRef.current = onError;
|
|
42
|
+
useEffect(() => {
|
|
43
|
+
rendererRef.current?.setFit(fit);
|
|
44
|
+
}, [fit]);
|
|
45
|
+
useEffect(() => {
|
|
46
|
+
const canvas = canvasRef.current;
|
|
47
|
+
if (!canvas)
|
|
48
|
+
return;
|
|
49
|
+
const connection = getPreviewConnection();
|
|
50
|
+
const mountEpoch = connection.nextMountEpoch();
|
|
51
|
+
let contextLosses = 0;
|
|
52
|
+
let status = { state: connection.currentState, paused: false };
|
|
53
|
+
let box = { width: 0, height: 0 };
|
|
54
|
+
let tier = null;
|
|
55
|
+
let running = isDocumentVisible();
|
|
56
|
+
let unmounted = false;
|
|
57
|
+
const emit = (next) => {
|
|
58
|
+
status = { ...status, ...next };
|
|
59
|
+
onStatusRef.current?.(status);
|
|
60
|
+
};
|
|
61
|
+
const buildRenderer = () => {
|
|
62
|
+
rendererRef.current?.dispose();
|
|
63
|
+
rendererRef.current = rendererFactory(canvas, {
|
|
64
|
+
fit: fitRef.current,
|
|
65
|
+
onError: (reason) => {
|
|
66
|
+
previewTraceWarn("renderer_error", { reason, mountEpoch, docGen: connection.documentGeneration });
|
|
67
|
+
connection.reportRendererError(mountEpoch, reason);
|
|
68
|
+
if (reason === "webgl_context_lost")
|
|
69
|
+
contextLosses += 1;
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
if (!rendererRef.current)
|
|
73
|
+
connection.reportRendererError(mountEpoch, "webgl_unavailable");
|
|
74
|
+
};
|
|
75
|
+
buildRenderer();
|
|
76
|
+
// Context loss rebuilds only the renderer. The connection and the lease are not involved,
|
|
77
|
+
// and frames that arrive meanwhile are still acked so the sender does not stall.
|
|
78
|
+
const onContextRestored = () => {
|
|
79
|
+
if (unmounted)
|
|
80
|
+
return;
|
|
81
|
+
previewTrace("renderer_rebuilt", { mountEpoch, contextLosses });
|
|
82
|
+
buildRenderer();
|
|
83
|
+
};
|
|
84
|
+
canvas.addEventListener("webglcontextrestored", onContextRestored);
|
|
85
|
+
const sink = {
|
|
86
|
+
mountEpoch,
|
|
87
|
+
draw: (frame) => rendererRef.current?.drawFrame(frame) ?? null,
|
|
88
|
+
onState: (state, detail) => emit({ state, paused: detail.paused ?? false, reason: detail.reason, code: detail.code }),
|
|
89
|
+
onStatus: (stats) => emit({ stats: { ...stats, contextLosses } }),
|
|
90
|
+
onError: (code) => onErrorRef.current?.(code),
|
|
91
|
+
};
|
|
92
|
+
const detach = connection.attach(sink);
|
|
93
|
+
previewTrace("mount", { mountEpoch, docGen: connection.documentGeneration });
|
|
94
|
+
const push = () => connection.update(mountEpoch, { boxWidth: box.width, boxHeight: box.height, tier, running });
|
|
95
|
+
const coalescer = new ResizeCoalescer({
|
|
96
|
+
apply: (next) => {
|
|
97
|
+
box = next;
|
|
98
|
+
const nextTier = quantizePreviewTier(next.width, next.height);
|
|
99
|
+
if (sameTier(nextTier, tier) && tier !== null)
|
|
100
|
+
return;
|
|
101
|
+
tier = nextTier;
|
|
102
|
+
if (!tier)
|
|
103
|
+
previewTrace("hidden_zero_size", { mountEpoch });
|
|
104
|
+
push();
|
|
105
|
+
},
|
|
106
|
+
});
|
|
107
|
+
let resizeObserver = null;
|
|
108
|
+
const onWindowResize = () => coalescer.push(measure(canvas));
|
|
109
|
+
if (typeof ResizeObserver === "function") {
|
|
110
|
+
resizeObserver = new ResizeObserver(() => coalescer.push(measure(canvas)));
|
|
111
|
+
resizeObserver.observe(canvas);
|
|
112
|
+
}
|
|
113
|
+
else if (typeof window !== "undefined") {
|
|
114
|
+
window.addEventListener("resize", onWindowResize);
|
|
115
|
+
}
|
|
116
|
+
coalescer.push(measure(canvas));
|
|
117
|
+
const onVisibility = () => {
|
|
118
|
+
const visible = isDocumentVisible();
|
|
119
|
+
if (visible === running)
|
|
120
|
+
return;
|
|
121
|
+
running = visible;
|
|
122
|
+
previewTrace("visibility_change", { mountEpoch, visible });
|
|
123
|
+
push();
|
|
124
|
+
};
|
|
125
|
+
document.addEventListener("visibilitychange", onVisibility);
|
|
126
|
+
return () => {
|
|
127
|
+
unmounted = true;
|
|
128
|
+
previewTrace("unmount", { mountEpoch, docGen: connection.documentGeneration });
|
|
129
|
+
document.removeEventListener("visibilitychange", onVisibility);
|
|
130
|
+
resizeObserver?.disconnect();
|
|
131
|
+
if (typeof window !== "undefined")
|
|
132
|
+
window.removeEventListener("resize", onWindowResize);
|
|
133
|
+
coalescer.cancel();
|
|
134
|
+
canvas.removeEventListener("webglcontextrestored", onContextRestored);
|
|
135
|
+
running = false;
|
|
136
|
+
push();
|
|
137
|
+
detach();
|
|
138
|
+
rendererRef.current?.dispose();
|
|
139
|
+
rendererRef.current = null;
|
|
140
|
+
};
|
|
141
|
+
}, []);
|
|
142
|
+
return _jsx("canvas", { ref: canvasRef, className: className, style: { ...DEFAULT_STYLE, ...style } });
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=StreamPreview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StreamPreview.js","sourceRoot":"","sources":["../../src/react/StreamPreview.tsx"],"names":[],"mappings":"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"}
|
package/dist/react/index.d.ts
CHANGED
|
@@ -10,4 +10,6 @@ export type { MiniappHeaderProps } from "./MiniappHeader";
|
|
|
10
10
|
export { MentraProvider } from "./MentraProvider";
|
|
11
11
|
export type { MentraProviderProps } from "./MentraProvider";
|
|
12
12
|
export { useRpc, type RpcCallable } from "./useRpc";
|
|
13
|
+
export { StreamPreview } from "./StreamPreview";
|
|
14
|
+
export type { StreamPreviewProps, StreamPreviewStatus, PreviewFit, PreviewConnectionState } from "./StreamPreview";
|
|
13
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAA;AACzC,YAAY,EAAC,iBAAiB,EAAC,MAAM,eAAe,CAAA;AACpD,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAC,qBAAqB,EAAC,MAAM,yBAAyB,CAAA;AAC7D,YAAY,EAAC,4BAA4B,EAAC,MAAM,yBAAyB,CAAA;AACzE,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAA;AAC7C,YAAY,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAA;AAC/C,YAAY,EAAC,mBAAmB,EAAC,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAC,MAAM,EAAE,KAAK,WAAW,EAAC,MAAM,UAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAA;AACzC,YAAY,EAAC,iBAAiB,EAAC,MAAM,eAAe,CAAA;AACpD,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAC,qBAAqB,EAAC,MAAM,yBAAyB,CAAA;AAC7D,YAAY,EAAC,4BAA4B,EAAC,MAAM,yBAAyB,CAAA;AACzE,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAA;AAC7C,YAAY,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAA;AAC/C,YAAY,EAAC,mBAAmB,EAAC,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAC,MAAM,EAAE,KAAK,WAAW,EAAC,MAAM,UAAU,CAAA;AACjD,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAA;AAC7C,YAAY,EAAC,kBAAkB,EAAE,mBAAmB,EAAE,UAAU,EAAE,sBAAsB,EAAC,MAAM,iBAAiB,CAAA"}
|
package/dist/react/index.js
CHANGED
|
@@ -6,4 +6,5 @@ export { useCapsuleHeaderStyle } from "./useCapsuleHeaderStyle";
|
|
|
6
6
|
export { MiniappHeader } from "./MiniappHeader";
|
|
7
7
|
export { MentraProvider } from "./MentraProvider";
|
|
8
8
|
export { useRpc } from "./useRpc";
|
|
9
|
+
export { StreamPreview } from "./StreamPreview";
|
|
9
10
|
//# sourceMappingURL=index.js.map
|
package/dist/react/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAA;AAEzC,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAC,qBAAqB,EAAC,MAAM,yBAAyB,CAAA;AAE7D,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAA;AAE7C,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAA;AAE/C,OAAO,EAAC,MAAM,EAAmB,MAAM,UAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAA;AAEzC,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAC,qBAAqB,EAAC,MAAM,yBAAyB,CAAA;AAE7D,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAA;AAE7C,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAA;AAE/C,OAAO,EAAC,MAAM,EAAmB,MAAM,UAAU,CAAA;AACjD,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAA"}
|