@googleworkspace/meet-addons 1.2.0-dev-831545221 → 1.2.0-dev-832460133
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/meet.addons.d.ts +243 -243
- package/meet.addons.mjs +68 -67
- package/meet.addons.screenshare.d.ts +35 -35
- package/package.json +1 -1
package/meet.addons.d.ts
CHANGED
|
@@ -1,248 +1,5 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
-
// Original file: live_sharing.v2.types.d.ts
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Binary-encoded state for CoDoing experiences.
|
|
8
|
-
*/
|
|
9
|
-
export interface CoDoingState {
|
|
10
|
-
bytes: Uint8Array;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Host-provided set of base configuration options.
|
|
16
|
-
*/
|
|
17
|
-
export interface CoActivityDelegate {
|
|
18
|
-
/**
|
|
19
|
-
* User-suitable string describing the CoActivity.
|
|
20
|
-
*/
|
|
21
|
-
activityTitle: string;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Host-provided set of callbacks required to operate a CoDoing experience.
|
|
27
|
-
*/
|
|
28
|
-
export interface CoDoingDelegate extends CoActivityDelegate {
|
|
29
|
-
/**
|
|
30
|
-
* Callback for state updates broadcast by other participants in the meeting.
|
|
31
|
-
*
|
|
32
|
-
* Note: This isn't called in response to local changes.
|
|
33
|
-
*
|
|
34
|
-
* @param update the state update to be applied.
|
|
35
|
-
*/
|
|
36
|
-
onCoDoingStateChanged(newState: CoDoingState): void;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Client-constructed CoDoing experience with hooks for hosts to notify
|
|
43
|
-
* of state updates.
|
|
44
|
-
*/
|
|
45
|
-
export interface CoDoingClient {
|
|
46
|
-
/**
|
|
47
|
-
* Broadcasts state to all other current participants, and is the default
|
|
48
|
-
* state for any participant until some other state is broadcast.
|
|
49
|
-
*
|
|
50
|
-
* **Note:** This shared state is eventually consistent across
|
|
51
|
-
* participants. For predictable behavior, this binary state should be
|
|
52
|
-
* complete, not partial, as the Meet add-ons SDK doesn't provide
|
|
53
|
-
* guarantees around the delivery of individual messages -- only eventual
|
|
54
|
-
* consistency.
|
|
55
|
-
*
|
|
56
|
-
* **Note:** In a race condition where two participants call this method
|
|
57
|
-
* simultaneously, the Meet add-ons SDK selects a canonical winning
|
|
58
|
-
* update. The losing update might or might not be applied to participants,
|
|
59
|
-
* but the winning update is always applied later.
|
|
60
|
-
*/
|
|
61
|
-
broadcastStateUpdate(newState: CoDoingState): void;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Current PlaybackState for CoWatching experiences.
|
|
68
|
-
*/
|
|
69
|
-
export type PlaybackState =
|
|
70
|
-
| 'INVALID'
|
|
71
|
-
| 'BUFFERING'
|
|
72
|
-
| 'PLAY'
|
|
73
|
-
| 'PAUSE'
|
|
74
|
-
| 'ENDED';
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* State for CoWatching experiences.
|
|
78
|
-
*/
|
|
79
|
-
export interface CoWatchingState {
|
|
80
|
-
/**
|
|
81
|
-
* The identifier for the media being played.
|
|
82
|
-
*
|
|
83
|
-
* Note: The actual format only matters to the co-watching app.
|
|
84
|
-
*/
|
|
85
|
-
mediaId: string;
|
|
86
|
-
|
|
87
|
-
/** The current position of the media playout, in seconds. */
|
|
88
|
-
mediaPlayoutPosition: number;
|
|
89
|
-
|
|
90
|
-
/** The current playout rate, where {@code 1.0} is normal speed. */
|
|
91
|
-
mediaPlayoutRate: number;
|
|
92
|
-
|
|
93
|
-
/** The current player state, such as Paused, Playing, Buffering, etc. */
|
|
94
|
-
playbackState: PlaybackState;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
type CoWatchingQueryResponse = Pick<CoWatchingState, 'mediaPlayoutPosition'>;
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* Host-provided set of callbacks required to operate a CoWatching experience.
|
|
104
|
-
*/
|
|
105
|
-
export interface CoWatchingDelegate extends CoActivityDelegate {
|
|
106
|
-
/**
|
|
107
|
-
* Apply the supplied state to media playout, up to and including switching
|
|
108
|
-
* to a new media stream if the mediaId changes.
|
|
109
|
-
*
|
|
110
|
-
* @param state the new state to be applied to the player.
|
|
111
|
-
*/
|
|
112
|
-
onCoWatchingStateChanged(newState: CoWatchingState): void;
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* Return the current state of the local media playout. This is called
|
|
116
|
-
* regularly so it should be written to be performant.
|
|
117
|
-
*
|
|
118
|
-
* @return a {@link CoWatchingState} describing the current state.
|
|
119
|
-
*/
|
|
120
|
-
onCoWatchingStateQuery(): CoWatchingQueryResponse;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
* Client-constructed CoWatching experience with hooks for hosts to manage the
|
|
127
|
-
* state.
|
|
128
|
-
*/
|
|
129
|
-
export interface CoWatchingClient {
|
|
130
|
-
/**
|
|
131
|
-
* Notify Meet that the user has switched media so Meet can pass that along
|
|
132
|
-
* to other users.
|
|
133
|
-
*
|
|
134
|
-
* @param mediaTitle The title of the media switched to. This title is
|
|
135
|
-
* reflected in the Meet UI when other users are considering connecting to
|
|
136
|
-
* the co-watching session.
|
|
137
|
-
* @param mediaId The string URI of the media switched to.
|
|
138
|
-
* @param mediaPlayoutPosition The position at which the media began playout.
|
|
139
|
-
*/
|
|
140
|
-
notifySwitchedToMedia(
|
|
141
|
-
mediaTitle: string,
|
|
142
|
-
mediaId: string,
|
|
143
|
-
mediaPlayoutPosition: number,
|
|
144
|
-
): void;
|
|
145
|
-
|
|
146
|
-
/**
|
|
147
|
-
* Notify Meet that the user has paused or unpaused the playback of media, so
|
|
148
|
-
* Meet can mirror that action for other users.
|
|
149
|
-
*
|
|
150
|
-
* @param paused The new paused or unpaused state.
|
|
151
|
-
*/
|
|
152
|
-
notifyPauseState(paused: boolean, mediaPlayoutPosition: number): void;
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* Notify Meet that the user has sought the playback point of the media, so
|
|
156
|
-
* Meet can mirror that action for other users.
|
|
157
|
-
*
|
|
158
|
-
* @param mediaPlayoutPosition The timestamp that the user sought.
|
|
159
|
-
*/
|
|
160
|
-
notifySeekToTimestamp(mediaPlayoutPosition: number): void;
|
|
161
|
-
|
|
162
|
-
/**
|
|
163
|
-
* Notify Meet that the user updated the playout rate of the media to a new
|
|
164
|
-
* value (for example, 1.25x).
|
|
165
|
-
*
|
|
166
|
-
* @param rate The rate at which the media is now being played.
|
|
167
|
-
* @param mediaPlayoutPosition The position at which the media began playout
|
|
168
|
-
*/
|
|
169
|
-
notifyPlayoutRate(rate: number, mediaPlayoutPosition: number): void;
|
|
170
|
-
|
|
171
|
-
/**
|
|
172
|
-
* Notify Meet that the media isn't ready to be played due to
|
|
173
|
-
* buffering, a prior media switch, seeking, or normal network
|
|
174
|
-
* congestion.
|
|
175
|
-
*
|
|
176
|
-
* @param mediaPlayoutPosition The timestamp at which the media is paused or
|
|
177
|
-
* waiting for buffering to complete.
|
|
178
|
-
*/
|
|
179
|
-
notifyBuffering(mediaPlayoutPosition: number): void;
|
|
180
|
-
|
|
181
|
-
/**
|
|
182
|
-
* Notify Meet that the buffering is complete and the media is now ready to
|
|
183
|
-
* play, starting at the supplied timestamp.
|
|
184
|
-
*
|
|
185
|
-
* @param mediaPlayoutPosition The timestamp at which the media is buffered
|
|
186
|
-
* and is now ready to play.
|
|
187
|
-
*/
|
|
188
|
-
notifyReady(mediaPlayoutPosition: number): void;
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
// Original file: index.types.d.ts
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
/**
|
|
197
|
-
* Parameters to retrieve the add-on session.
|
|
198
|
-
*/
|
|
199
|
-
export interface AddonSessionOptions {
|
|
200
|
-
/**
|
|
201
|
-
* The Google Cloud project number of the add-on.
|
|
202
|
-
*/
|
|
203
|
-
cloudProjectNumber: string;
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
/**
|
|
207
|
-
* The main entry point for accessing Meet add-on functionality. Available
|
|
208
|
-
* globally under `window.meet.addon`.
|
|
209
|
-
*/
|
|
210
|
-
export interface MeetAddon {
|
|
211
|
-
/**
|
|
212
|
-
* Returns the {@link
|
|
213
|
-
* https://developers.google.com/meet/add-ons/reference/websdk/addon_sdk.frametype
|
|
214
|
-
* | FrameType} in which the add-on is running in.
|
|
215
|
-
*/
|
|
216
|
-
getFrameType: () => FrameType;
|
|
217
|
-
|
|
218
|
-
/**
|
|
219
|
-
* Creates an add-on session.
|
|
220
|
-
*/
|
|
221
|
-
createAddonSession: (options: AddonSessionOptions) => Promise<AddonSession>;
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
/** The structure of the top-level add-on export. */
|
|
225
|
-
interface MeetAddonExport {
|
|
226
|
-
addon: MeetAddon;
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
/** The structure of an error generated from the Meet add-ons SDK. */
|
|
230
|
-
interface MeetAddonError extends Error {
|
|
231
|
-
readonly errorType: ErrorType;
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
/**
|
|
235
|
-
* The main entry point for accessing Meet add-on functionality.
|
|
236
|
-
*/
|
|
237
|
-
export const meet: MeetAddonExport;
|
|
238
|
-
|
|
239
|
-
declare global {
|
|
240
|
-
export interface Window {
|
|
241
|
-
meet: MeetAddonExport;
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
|
|
246
3
|
// Original file: client.types.d.ts
|
|
247
4
|
|
|
248
5
|
|
|
@@ -500,3 +257,246 @@ export interface AddonSession {
|
|
|
500
257
|
coWatchingDelegate: CoWatchingDelegate,
|
|
501
258
|
): Promise<CoWatchingClient>;
|
|
502
259
|
}
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
// Original file: index.types.d.ts
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
/**
|
|
266
|
+
* Parameters to retrieve the add-on session.
|
|
267
|
+
*/
|
|
268
|
+
export interface AddonSessionOptions {
|
|
269
|
+
/**
|
|
270
|
+
* The Google Cloud project number of the add-on.
|
|
271
|
+
*/
|
|
272
|
+
cloudProjectNumber: string;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* The main entry point for accessing Meet add-on functionality. Available
|
|
277
|
+
* globally under `window.meet.addon`.
|
|
278
|
+
*/
|
|
279
|
+
export interface MeetAddon {
|
|
280
|
+
/**
|
|
281
|
+
* Returns the {@link
|
|
282
|
+
* https://developers.google.com/meet/add-ons/reference/websdk/addon_sdk.frametype
|
|
283
|
+
* | FrameType} in which the add-on is running in.
|
|
284
|
+
*/
|
|
285
|
+
getFrameType: () => FrameType;
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* Creates an add-on session.
|
|
289
|
+
*/
|
|
290
|
+
createAddonSession: (options: AddonSessionOptions) => Promise<AddonSession>;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
/** The structure of the top-level add-on export. */
|
|
294
|
+
interface MeetAddonExport {
|
|
295
|
+
addon: MeetAddon;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
/** The structure of an error generated from the Meet add-ons SDK. */
|
|
299
|
+
interface MeetAddonError extends Error {
|
|
300
|
+
readonly errorType: ErrorType;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
/**
|
|
304
|
+
* The main entry point for accessing Meet add-on functionality.
|
|
305
|
+
*/
|
|
306
|
+
export const meet: MeetAddonExport;
|
|
307
|
+
|
|
308
|
+
declare global {
|
|
309
|
+
export interface Window {
|
|
310
|
+
meet: MeetAddonExport;
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
// Original file: live_sharing.v2.types.d.ts
|
|
316
|
+
|
|
317
|
+
|
|
318
|
+
/**
|
|
319
|
+
* Binary-encoded state for CoDoing experiences.
|
|
320
|
+
*/
|
|
321
|
+
export interface CoDoingState {
|
|
322
|
+
bytes: Uint8Array;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
/**
|
|
327
|
+
* Host-provided set of base configuration options.
|
|
328
|
+
*/
|
|
329
|
+
export interface CoActivityDelegate {
|
|
330
|
+
/**
|
|
331
|
+
* User-suitable string describing the CoActivity.
|
|
332
|
+
*/
|
|
333
|
+
activityTitle: string;
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
|
|
337
|
+
/**
|
|
338
|
+
* Host-provided set of callbacks required to operate a CoDoing experience.
|
|
339
|
+
*/
|
|
340
|
+
export interface CoDoingDelegate extends CoActivityDelegate {
|
|
341
|
+
/**
|
|
342
|
+
* Callback for state updates broadcast by other participants in the meeting.
|
|
343
|
+
*
|
|
344
|
+
* Note: This isn't called in response to local changes.
|
|
345
|
+
*
|
|
346
|
+
* @param update the state update to be applied.
|
|
347
|
+
*/
|
|
348
|
+
onCoDoingStateChanged(newState: CoDoingState): void;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
|
|
352
|
+
|
|
353
|
+
/**
|
|
354
|
+
* Client-constructed CoDoing experience with hooks for hosts to notify
|
|
355
|
+
* of state updates.
|
|
356
|
+
*/
|
|
357
|
+
export interface CoDoingClient {
|
|
358
|
+
/**
|
|
359
|
+
* Broadcasts state to all other current participants, and is the default
|
|
360
|
+
* state for any participant until some other state is broadcast.
|
|
361
|
+
*
|
|
362
|
+
* **Note:** This shared state is eventually consistent across
|
|
363
|
+
* participants. For predictable behavior, this binary state should be
|
|
364
|
+
* complete, not partial, as the Meet add-ons SDK doesn't provide
|
|
365
|
+
* guarantees around the delivery of individual messages -- only eventual
|
|
366
|
+
* consistency.
|
|
367
|
+
*
|
|
368
|
+
* **Note:** In a race condition where two participants call this method
|
|
369
|
+
* simultaneously, the Meet add-ons SDK selects a canonical winning
|
|
370
|
+
* update. The losing update might or might not be applied to participants,
|
|
371
|
+
* but the winning update is always applied later.
|
|
372
|
+
*/
|
|
373
|
+
broadcastStateUpdate(newState: CoDoingState): void;
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
|
|
377
|
+
|
|
378
|
+
/**
|
|
379
|
+
* Current PlaybackState for CoWatching experiences.
|
|
380
|
+
*/
|
|
381
|
+
export type PlaybackState =
|
|
382
|
+
| 'INVALID'
|
|
383
|
+
| 'BUFFERING'
|
|
384
|
+
| 'PLAY'
|
|
385
|
+
| 'PAUSE'
|
|
386
|
+
| 'ENDED';
|
|
387
|
+
|
|
388
|
+
/**
|
|
389
|
+
* State for CoWatching experiences.
|
|
390
|
+
*/
|
|
391
|
+
export interface CoWatchingState {
|
|
392
|
+
/**
|
|
393
|
+
* The identifier for the media being played.
|
|
394
|
+
*
|
|
395
|
+
* Note: The actual format only matters to the co-watching app.
|
|
396
|
+
*/
|
|
397
|
+
mediaId: string;
|
|
398
|
+
|
|
399
|
+
/** The current position of the media playout, in seconds. */
|
|
400
|
+
mediaPlayoutPosition: number;
|
|
401
|
+
|
|
402
|
+
/** The current playout rate, where {@code 1.0} is normal speed. */
|
|
403
|
+
mediaPlayoutRate: number;
|
|
404
|
+
|
|
405
|
+
/** The current player state, such as Paused, Playing, Buffering, etc. */
|
|
406
|
+
playbackState: PlaybackState;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
|
|
410
|
+
|
|
411
|
+
type CoWatchingQueryResponse = Pick<CoWatchingState, 'mediaPlayoutPosition'>;
|
|
412
|
+
|
|
413
|
+
|
|
414
|
+
/**
|
|
415
|
+
* Host-provided set of callbacks required to operate a CoWatching experience.
|
|
416
|
+
*/
|
|
417
|
+
export interface CoWatchingDelegate extends CoActivityDelegate {
|
|
418
|
+
/**
|
|
419
|
+
* Apply the supplied state to media playout, up to and including switching
|
|
420
|
+
* to a new media stream if the mediaId changes.
|
|
421
|
+
*
|
|
422
|
+
* @param state the new state to be applied to the player.
|
|
423
|
+
*/
|
|
424
|
+
onCoWatchingStateChanged(newState: CoWatchingState): void;
|
|
425
|
+
|
|
426
|
+
/**
|
|
427
|
+
* Return the current state of the local media playout. This is called
|
|
428
|
+
* regularly so it should be written to be performant.
|
|
429
|
+
*
|
|
430
|
+
* @return a {@link CoWatchingState} describing the current state.
|
|
431
|
+
*/
|
|
432
|
+
onCoWatchingStateQuery(): CoWatchingQueryResponse;
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
|
|
436
|
+
|
|
437
|
+
/**
|
|
438
|
+
* Client-constructed CoWatching experience with hooks for hosts to manage the
|
|
439
|
+
* state.
|
|
440
|
+
*/
|
|
441
|
+
export interface CoWatchingClient {
|
|
442
|
+
/**
|
|
443
|
+
* Notify Meet that the user has switched media so Meet can pass that along
|
|
444
|
+
* to other users.
|
|
445
|
+
*
|
|
446
|
+
* @param mediaTitle The title of the media switched to. This title is
|
|
447
|
+
* reflected in the Meet UI when other users are considering connecting to
|
|
448
|
+
* the co-watching session.
|
|
449
|
+
* @param mediaId The string URI of the media switched to.
|
|
450
|
+
* @param mediaPlayoutPosition The position at which the media began playout.
|
|
451
|
+
*/
|
|
452
|
+
notifySwitchedToMedia(
|
|
453
|
+
mediaTitle: string,
|
|
454
|
+
mediaId: string,
|
|
455
|
+
mediaPlayoutPosition: number,
|
|
456
|
+
): void;
|
|
457
|
+
|
|
458
|
+
/**
|
|
459
|
+
* Notify Meet that the user has paused or unpaused the playback of media, so
|
|
460
|
+
* Meet can mirror that action for other users.
|
|
461
|
+
*
|
|
462
|
+
* @param paused The new paused or unpaused state.
|
|
463
|
+
*/
|
|
464
|
+
notifyPauseState(paused: boolean, mediaPlayoutPosition: number): void;
|
|
465
|
+
|
|
466
|
+
/**
|
|
467
|
+
* Notify Meet that the user has sought the playback point of the media, so
|
|
468
|
+
* Meet can mirror that action for other users.
|
|
469
|
+
*
|
|
470
|
+
* @param mediaPlayoutPosition The timestamp that the user sought.
|
|
471
|
+
*/
|
|
472
|
+
notifySeekToTimestamp(mediaPlayoutPosition: number): void;
|
|
473
|
+
|
|
474
|
+
/**
|
|
475
|
+
* Notify Meet that the user updated the playout rate of the media to a new
|
|
476
|
+
* value (for example, 1.25x).
|
|
477
|
+
*
|
|
478
|
+
* @param rate The rate at which the media is now being played.
|
|
479
|
+
* @param mediaPlayoutPosition The position at which the media began playout
|
|
480
|
+
*/
|
|
481
|
+
notifyPlayoutRate(rate: number, mediaPlayoutPosition: number): void;
|
|
482
|
+
|
|
483
|
+
/**
|
|
484
|
+
* Notify Meet that the media isn't ready to be played due to
|
|
485
|
+
* buffering, a prior media switch, seeking, or normal network
|
|
486
|
+
* congestion.
|
|
487
|
+
*
|
|
488
|
+
* @param mediaPlayoutPosition The timestamp at which the media is paused or
|
|
489
|
+
* waiting for buffering to complete.
|
|
490
|
+
*/
|
|
491
|
+
notifyBuffering(mediaPlayoutPosition: number): void;
|
|
492
|
+
|
|
493
|
+
/**
|
|
494
|
+
* Notify Meet that the buffering is complete and the media is now ready to
|
|
495
|
+
* play, starting at the supplied timestamp.
|
|
496
|
+
*
|
|
497
|
+
* @param mediaPlayoutPosition The timestamp at which the media is buffered
|
|
498
|
+
* and is now ready to play.
|
|
499
|
+
*/
|
|
500
|
+
notifyReady(mediaPlayoutPosition: number): void;
|
|
501
|
+
}
|
|
502
|
+
|
package/meet.addons.mjs
CHANGED
|
@@ -4,71 +4,72 @@ function da(a,b){if(b)a:{var c=ca;a=a.split(".");for(var d=0;d<a.length-1;d++){v
|
|
|
4
4
|
Copyright The Closure Library Authors.
|
|
5
5
|
SPDX-License-Identifier: Apache-2.0
|
|
6
6
|
*/
|
|
7
|
-
var ea=this||self;function fa(a,b){
|
|
8
|
-
function
|
|
9
|
-
function
|
|
10
|
-
function
|
|
11
|
-
function
|
|
12
|
-
function
|
|
13
|
-
|
|
14
|
-
function
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
function
|
|
18
|
-
|
|
19
|
-
function
|
|
20
|
-
function
|
|
21
|
-
function
|
|
22
|
-
function
|
|
23
|
-
function
|
|
24
|
-
function
|
|
25
|
-
|
|
26
|
-
message:"This method
|
|
27
|
-
|
|
28
|
-
message:"
|
|
29
|
-
message:"The
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
function
|
|
39
|
-
|
|
40
|
-
i:"
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
this.context.h.
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
function
|
|
49
|
-
function
|
|
50
|
-
function
|
|
51
|
-
function
|
|
52
|
-
function
|
|
53
|
-
function ze(a,b,c,d){
|
|
54
|
-
function
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
async function
|
|
60
|
-
async function
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
7
|
+
var ea=this||self;function fa(a,b){a:{var c=["CLOSURE_FLAGS"];for(var d=ea,e=0;e<c.length;e++)if(d=d[c[e]],d==null){c=null;break a}c=d}a=c&&c[a];return a!=null?a:b}function ha(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var d=c.slice();d.push.apply(d,arguments);return a.apply(this,d)}}
|
|
8
|
+
function ia(a,b){function c(){}c.prototype=b.prototype;a.qa=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.oa=function(d,e,f){for(var g=Array(arguments.length-2),h=2;h<arguments.length;h++)g[h-2]=arguments[h];return b.prototype[e].apply(d,g)}};function ja(a,b){if(Error.captureStackTrace)Error.captureStackTrace(this,ja);else{const c=Error().stack;c&&(this.stack=c)}a&&(this.message=String(a));b!==void 0&&(this.cause=b)}ia(ja,Error);ja.prototype.name="CustomError";function ka(a){ea.setTimeout(()=>{throw a;},0)};var la=fa(748402147,!0),ma=fa(824656860,!1);function na(a,b){b=Array.prototype.indexOf.call(a,b,void 0);b>=0&&Array.prototype.splice.call(a,b,1)};const oa=/[-_.]/g,pa={"-":"+",_:"/",".":"="};function qa(a){return pa[a]||""}var ra={};function sa(){return ta||(ta=new ua(null,ra))}var ua=class{constructor(a,b){va(b);this.g=a;if(a!=null&&a.length===0)throw Error("ByteString should be constructed with non-empty values");}};let ta;function va(a){if(a!==ra)throw Error("illegal external caller");};function wa(a,b){a.__closure__error__context__984382||(a.__closure__error__context__984382={});a.__closure__error__context__984382.severity=b};let xa=void 0;function ya(a){a=Error(a);wa(a,"warning");return a};function za(a,b=!1){return b&&Symbol.for&&a?Symbol.for(a):a!=null?Symbol(a):Symbol()}var Aa=za(),Ba=za(),Ca=za("m_m",!0);const l=za("jas",!0);var Da;const Ea=[];Ea[l]=7;Da=Object.freeze(Ea);function Fa(){return typeof BigInt==="function"};var Ga={};function m(a,b){return b===void 0?a.g!==Ha&&!!(2&(a.l[l]|0)):!!(2&b)&&a.g!==Ha}const Ha={};function Ia(a,b){if(a!=null)if(typeof a==="string")a=a?new ua(a,ra):sa();else if(a.constructor!==ua)if(a!=null&&a instanceof Uint8Array)a=a.length?new ua(new Uint8Array(a),ra):sa();else{if(!b)throw Error();a=void 0}return a}var Ja=Object.freeze({});function Ka(a){a.pa=!0;return a};var La=Ka(a=>typeof a==="number"),Ma=Ka(a=>typeof a==="string"),Na=Ka(a=>typeof a==="boolean");var Oa=typeof ea.BigInt==="function"&&typeof ea.BigInt(0)==="bigint";function p(a){var b=a;if(Ma(b)){if(!/^\s*(?:-?[1-9]\d*|0)?\s*$/.test(b))throw Error(String(b));}else if(La(b)&&!Number.isSafeInteger(b))throw Error(String(b));return Oa?BigInt(a):a=Na(a)?a?"1":"0":Ma(a)?a.trim()||"0":String(a)}var Ua=Ka(a=>Oa?a>=Pa&&a<=Qa:a[0]==="-"?Ra(a,Sa):Ra(a,Ta));const Sa=Number.MIN_SAFE_INTEGER.toString(),Pa=Oa?BigInt(Number.MIN_SAFE_INTEGER):void 0,Ta=Number.MAX_SAFE_INTEGER.toString(),Qa=Oa?BigInt(Number.MAX_SAFE_INTEGER):void 0;
|
|
9
|
+
function Ra(a,b){if(a.length>b.length)return!1;if(a.length<b.length||a===b)return!0;for(let c=0;c<a.length;c++){const d=a[c],e=b[c];if(d>e)return!1;if(d<e)return!0}};let q=0,t=0;function Va(a){const b=a>>>0;q=b;t=(a-b)/4294967296>>>0}function Wa(a){if(a<0){Va(-a);const [b,c]=Xa(q,t);q=b>>>0;t=c>>>0}else Va(a)}function Ya(a,b){b>>>=0;a>>>=0;if(b<=2097151)var c=""+(4294967296*b+a);else Fa()?c=""+(BigInt(b)<<BigInt(32)|BigInt(a)):(c=(a>>>24|b<<8)&16777215,b=b>>16&65535,a=(a&16777215)+c*6777216+b*6710656,c+=b*8147497,b*=2,a>=1E7&&(c+=a/1E7>>>0,a%=1E7),c>=1E7&&(b+=c/1E7>>>0,c%=1E7),c=b+Za(c)+Za(a));return c}
|
|
10
|
+
function Za(a){a=String(a);return"0000000".slice(a.length)+a}function $a(){var a=q,b=t;if(b&2147483648)if(Fa())a=""+(BigInt(b|0)<<BigInt(32)|BigInt(a>>>0));else{const [c,d]=Xa(a,b);a="-"+Ya(c,d)}else a=Ya(a,b);return a}function Xa(a,b){b=~b;a?a=~a+1:b+=1;return[a,b]};const ab=typeof BigInt==="function"?BigInt.asIntN:void 0,bb=Number.isSafeInteger,cb=Number.isFinite,db=Math.trunc;function eb(a){if(a==null||typeof a==="number")return a;if(a==="NaN"||a==="Infinity"||a==="-Infinity")return Number(a)}const fb=/^-?([1-9][0-9]*|0)(\.[0-9]+)?$/;function gb(a){switch(typeof a){case "bigint":return!0;case "number":return cb(a);case "string":return fb.test(a);default:return!1}}
|
|
11
|
+
function hb(a){if(a!=null){if(typeof a==="string"&&a)a=+a;else if(typeof a!=="number")return;cb(a)}}function ib(a){if(a!=null)a:{if(!gb(a))throw ya("int64");switch(typeof a){case "string":var b=db(Number(a));bb(b)?a=String(b):(b=a.indexOf("."),b!==-1&&(a=a.substring(0,b)),a=lb(a));break a;case "bigint":a=p(ab(64,a));break a;default:a=mb(a)}}return a}
|
|
12
|
+
function lb(a){var b=a.length;if(a[0]==="-"?b<20||b===20&&a<="-9223372036854775808":b<19||b===19&&a<="9223372036854775807")return a;if(a.length<16)Wa(Number(a));else if(Fa())a=BigInt(a),q=Number(a&BigInt(4294967295))>>>0,t=Number(a>>BigInt(32)&BigInt(4294967295));else{b=+(a[0]==="-");t=q=0;const c=a.length;for(let d=b,e=(c-b)%6+b;e<=c;d=e,e+=6){const f=Number(a.slice(d,e));t*=1E6;q=q*1E6+f;q>=4294967296&&(t+=Math.trunc(q/4294967296),t>>>=0,q>>>=0)}if(b){const [d,e]=Xa(q,t);q=d;t=e}}return $a()}
|
|
13
|
+
function mb(a){a=db(a);if(!bb(a)){Wa(a);var b=q,c=t;if(a=c&2147483648)b=~b+1>>>0,c=~c>>>0,b==0&&(c=c+1>>>0);const d=c*4294967296+(b>>>0);b=Number.isSafeInteger(d)?d:Ya(b,c);a=typeof b==="number"?a?-b:b:a?"-"+b:b}return a}
|
|
14
|
+
function nb(a){var b=typeof a;if(a==null)return a;if(b==="bigint")return p(ab(64,a));if(gb(a))return b==="string"?(b=db(Number(a)),bb(b)?a=p(b):(b=a.indexOf("."),b!==-1&&(a=a.substring(0,b)),a=Fa()?p(ab(64,BigInt(a))):p(lb(a)))):bb(a)?a=p(mb(a)):(a=db(a),bb(a)?a=String(a):(Wa(a),a=$a()),a=p(a)),a}function u(a){if(a!=null&&typeof a!=="string")throw Error();return a}function ob(a,b,c){if(a!=null&&a[Ca]===Ga)return a;if(Array.isArray(a)){var d=a[l]|0;c=d|c&32|c&2;c!==d&&(a[l]=c);return new b(a)}};function pb(a){return a};function qb(a,b,c,d){var e=d!==void 0;d=!!d;const f=[];var g=a.length;let h,k=4294967295,n=!1;const r=!!(b&64),z=r?b&128?0:-1:void 0;if(!(b&1||(h=g&&a[g-1],h!=null&&typeof h==="object"&&h.constructor===Object?(g--,k=g):h=void 0,!r||b&128||e))){n=!0;var A;k=((A=rb)!=null?A:pb)(k-z,z,a,h,void 0)+z}b=void 0;for(e=0;e<g;e++)if(A=a[e],A!=null&&(A=c(A,d))!=null)if(r&&e>=k){const H=e-z;let I;((I=b)!=null?I:b={})[H]=A}else f[e]=A;if(h)for(let H in h){a=h[H];if(a==null||(a=c(a,d))==null)continue;g=+H;let I;
|
|
15
|
+
if(r&&!Number.isNaN(g)&&(I=g+z)<k)f[I]=a;else{let R;((R=b)!=null?R:b={})[H]=a}}b&&(n?f.push(b):f[k]=b);return f}
|
|
16
|
+
function sb(a){switch(typeof a){case "number":return Number.isFinite(a)?a:""+a;case "bigint":return Ua(a)?Number(a):""+a;case "boolean":return a?1:0;case "object":if(Array.isArray(a)){var b=a[l]|0;return a.length===0&&b&1?void 0:qb(a,b,sb)}if(a!=null&&a[Ca]===Ga)return tb(a);if(a instanceof ua){b=a.g;if(b==null)a="";else if(typeof b==="string")a=b;else{let c="",d=0;const e=b.length-10240;for(;d<e;)c+=String.fromCharCode.apply(null,b.subarray(d,d+=10240));c+=String.fromCharCode.apply(null,d?b.subarray(d):
|
|
17
|
+
b);a=a.g=btoa(c)}return a}return}return a}let rb;function tb(a){a=a.l;return qb(a,a[l]|0,sb)};function ub(a,b,c,d=0){if(a==null){var e=32;c?(a=[c],e|=128):a=[];b&&(e=e&-16760833|(b&1023)<<14)}else{if(!Array.isArray(a))throw Error("narr");e=a[l]|0;if(la&&1&e)throw Error("rfarr");2048&e&&!(2&e)&&vb();if(e&256)throw Error("farr");if(e&64)return(e|d)!==e&&(a[l]=e|d),a;if(c&&(e|=128,c!==a[0]))throw Error("mid");a:{c=a;e|=64;var f=c.length;if(f){var g=f-1;const k=c[g];if(k!=null&&typeof k==="object"&&k.constructor===Object){b=e&128?0:-1;g-=b;if(g>=1024)throw Error("pvtlmt");for(var h in k)if(f=
|
|
18
|
+
+h,f<g)c[f+b]=k[h],delete k[h];else break;e=e&-16760833|(g&1023)<<14;break a}}if(b){h=Math.max(b,f-(e&128?0:-1));if(h>1024)throw Error("spvt");e=e&-16760833|(h&1023)<<14}}}a[l]=e|64|d;return a}function vb(){if(la)throw Error("carr");if(Ba!=null){var a;var b=(a=xa)!=null?a:xa={};a=b[Ba]||0;a>=5||(b[Ba]=a+1,b=Error(),wa(b,"incident"),ka(b))}};function wb(a,b){if(typeof a!=="object")return a;if(Array.isArray(a)){var c=a[l]|0;a.length===0&&c&1?a=void 0:c&2||(!b||4096&c||16&c?a=xb(a,c,!1,b&&!(c&16)):(a[l]|=34,c&4&&Object.freeze(a)));return a}if(a!=null&&a[Ca]===Ga)return b=a.l,c=b[l]|0,m(a,c)?a:yb(a,b,c)?zb(a,b):xb(b,c);if(a instanceof ua)return a}function zb(a,b,c){a=new a.constructor(b);c&&(a.g=Ha);a.A=Ha;return a}function xb(a,b,c,d){d!=null||(d=!!(34&b));a=qb(a,b,wb,d);d=32;c&&(d|=2);b=b&16769217|d;a[l]=b;return a}
|
|
19
|
+
function Ab(a){const b=a.l,c=b[l]|0;return m(a,c)?yb(a,b,c)?zb(a,b,!0):new a.constructor(xb(b,c,!1)):a}function Bb(a){if(a.g!==Ha)return!1;var b=a.l;b=xb(b,b[l]|0);b[l]|=2048;a.l=b;a.g=void 0;a.A=void 0;return!0}function Cb(a){if(!Bb(a)&&m(a,a.l[l]|0))throw Error();}function Db(a,b){b===void 0&&(b=a[l]|0);b&32&&!(b&4096)&&(a[l]=b|4096)}function yb(a,b,c){return c&2?!0:c&32&&!(c&4096)?(b[l]=c|2,a.g=Ha,!0):!1};const Eb=p(0);function v(a,b,c,d){a=Fb(a.l,b,c,d);if(a!==null)return a}function Fb(a,b,c,d){if(b===-1)return null;const e=b+(c?0:-1),f=a.length-1;let g,h;if(!(f<1+(c?0:-1))){if(e>=f)if(g=a[f],g!=null&&typeof g==="object"&&g.constructor===Object)c=g[b],h=!0;else if(e===f)c=g;else return;else c=a[e];if(d&&c!=null){d=d(c);if(d==null)return d;if(!Object.is(d,c))return h?g[b]=d:a[e]=d,d}return c}}function Gb(a,b,c){Cb(a);const d=a.l;w(d,d[l]|0,b,c);return a}
|
|
20
|
+
function w(a,b,c,d){const e=c+-1;var f=a.length-1;if(f>=0&&e>=f){const g=a[f];if(g!=null&&typeof g==="object"&&g.constructor===Object)return g[c]=d,b}if(e<=f)return a[e]=d,b;if(d!==void 0){let g;f=((g=b)!=null?g:b=a[l]|0)>>14&1023||536870912;c>=f?d!=null&&(a[f+-1]={[c]:d}):a[e]=d}return b}function Hb(a,b,c,d){const e=a.l;var f=e[l]|0;a=x(a,d)===c?c:-1;return Ib(e,f,b,a)!==void 0}function Jb(a){return!!(2&a)&&!!(4&a)||!!(256&a)}function Kb(a){return Ia(a,!0)}
|
|
21
|
+
function y(a,b,c,d){Cb(a);const e=a.l;w(e,e[l]|0,b,(d==="0"?Number(c)===0:c===d)?void 0:c);return a}function x(a,b){a=a.l;return Lb(Mb(a),a,void 0,b)}function Mb(a){let b;return(b=a[Aa])!=null?b:a[Aa]=new Map}function Lb(a,b,c,d){let e=a.get(d);if(e!=null)return e;e=0;for(let f=0;f<d.length;f++){const g=d[f];Fb(b,g)!=null&&(e!==0&&(c=w(b,c,e)),e=g)}a.set(d,e);return e}
|
|
22
|
+
function Ib(a,b,c,d){let e=!1;d=Fb(a,d,void 0,f=>{const g=ob(f,c,b);e=g!==f&&g!=null;return g});if(d!=null)return e&&!m(d)&&Db(a,b),d}function Nb(a,b,c){let d=a.l,e=d[l]|0;b=Ib(d,e,b,c);if(b==null)return b;e=d[l]|0;if(!m(a,e)){const f=Ab(b);f!==b&&(Bb(a)&&(d=a.l,e=d[l]|0),b=f,e=w(d,e,c,b),Db(d,e))}return b}function Ob(a){a==null&&(a=void 0);return a}function Pb(a,b,c){c=Ob(c);Gb(a,b,c);c&&!m(c)&&Db(a.l);return a}
|
|
23
|
+
function B(a,b,c,d){d=Ob(d);a:{var e=d;Cb(a);const h=a.l;var f=h[l]|0;if(e==null){var g=Mb(h);if(Lb(g,h,f,c)===b)g.set(c,0);else break a}else{g=h;const k=Mb(g),n=Lb(k,g,f,c);n!==b&&(n&&(f=w(g,f,n)),k.set(c,b))}w(h,f,b,e)}d&&!m(d)&&Db(a.l);return a}
|
|
24
|
+
function Qb(a,b){Cb(a);const c=a.l;let d=c[l]|0;if(b==null)return w(c,d,1),a;let e=b===Da?7:b[l]|0,f=e;const g=Jb(e),h=g||Object.isFrozen(b);let k=!0,n=!0;for(let z=0;z<b.length;z++){var r=b[z];g||(r=m(r),k&&(k=!r),n&&(n=r))}g||(e=k?13:5,e=n?e&-4097:e|4096);h&&e===f||(b=[...b],f=0,e=Rb(e,d));e!==f&&(b[l]=e);d=w(c,d,1,b);2&e||!(4096&e||16&e)||Db(c,d);return a}function Rb(a,b){return a=(2&b?a|2:a&-3)&-273}
|
|
25
|
+
function Sb(a){a=v(a,1);a=a==null||typeof a==="boolean"?a:typeof a==="number"?!!a:void 0;return a!=null?a:!1}function Tb(a){a=ma?v(a,1,void 0,nb):nb(v(a,1));return a!=null?a:Eb}function C(a,b){a=v(a,b);a=a==null||typeof a==="string"?a:void 0;return a!=null?a:""}function D(a,b){a=v(a,b);a=a==null?a:cb(a)?a|0:void 0;return a!=null?a:0}function E(a,b,c,d){c=x(a,d)===c?c:-1;return Nb(a,b,c)}function F(a,b,c){if(c!=null){if(!cb(c))throw ya("enum");c|=0}return y(a,b,c,0)};function Ub(){var a=Vb||(Vb=Wb("[1,2,0]"));a=Ab(a);a=Gb(a,4,u("dev-832460133"));const b=a.l,c=b[l]|0;return m(a,c)?a:yb(a,b,c)?zb(a,b):new a.constructor(xb(b,c,!0))}var G=class{constructor(a){this.l=ub(a,void 0,void 0,2048)}toJSON(){return tb(this)}};G.prototype[Ca]=Ga;G.prototype.toString=function(){return this.l.toString()};function Xb(a){return b=>{if(b==null||b=="")b=new a;else{b=JSON.parse(b);if(!Array.isArray(b))throw Error("dnarr");b[l]|=32;b=new a(b)}return b}};var Wb=function(a){return b=>{b=JSON.parse(b);if(!Array.isArray(b)){var c=typeof b;throw Error("Expected jspb data to be an array, got "+(c!="object"?c:b?Array.isArray(b)?"array":c:"null")+": "+b);}b[l]|=34;return new a(b)}}(class extends G{});var Yb=class extends G{};function Zb(a){var b=new $b(500);let c=0,d;return(...e)=>{ac(b)?a(...e):(d=()=>void a(...e),c||(c=setTimeout(()=>{c=0;let f;(f=d)==null||f()},bc(b))))}}function cc(a){var b=new $b(100),c=Promise.resolve();return(...d)=>ac(b)?a(...d):c};function ac(a){return dc(a,a.index)>=a.g?(a.h[a.index]=Date.now(),a.index=(a.index+1)%1,!0):!1}function bc(a){const b=a.g;a=dc(a,a.index);return a>=b?0:b-a}function dc(a,b){let c;return Date.now()-((c=a.h[b])!=null?c:-1*a.g)}var $b=class{constructor(a){this.g=a;this.h=[];this.index=0}};var ec=class extends G{},fc=[2,3];var hc=class extends G{};var J=class extends Error{constructor({errorType:a,message:b,i:c}){super(`Meet add-on SDK error: ${`${b}${c?` - ${c}`:""}`}`);this.errorType=a}},K={errorType:"InternalError",message:"An unexpected error has occurred.",i:"No further information is available."},ic={errorType:"MissingUrlParameter",message:"Missing required Meet SDK URL parameter",i:"This parameter is automatically appended by Meet to the iframe URL. Ensure that your infrastructure does not strip URL parameters (e.g. as part of a redirect)."},
|
|
26
|
+
jc={errorType:"NeedsMainStageContext",message:"This method can only be invoked if the addon is running in the main stage.",i:"Use getFrameType to check whether the addon is running in the main stage before invoking this method."},kc={errorType:"NeedsSidePanelContext",message:"This method can only be invoked if the addon is running in the side panel.",i:"Use getFrameType to check whether the addon is running in the side panel before invoking this method."},lc={errorType:"NotSupportedInStandalone",
|
|
27
|
+
message:"This method is not supported in standalone mode.",i:"Do not call this method in standalone mode."},mc={errorType:"MustBeIframed",message:"The SDK must be run in an iframe as part of a Google Meet add-on.",i:"See https://developers.google.com/meet/add-ons/guides/deploy-add-on to deploy to Meet."},nc={errorType:"InternalError",message:"The frame type URL parameter is set to an unexpected value.",i:"This parameter is automatically appended by Meet to the iframe URL. Ensure that your infrastructure does not modify URL parameters (e.g. as part of a redirect)."},
|
|
28
|
+
oc={errorType:"InvalidCloudProjectNumber",message:"Cloud Project Number provided by meet does not match the one passed in by the SDK. Ensure that the correct Cloud Project Number is passed to the SDK as a string.",i:"This parameter is automatically appended by Meet to the iframe URL. Ensure that your infrastructure does not modify URL parameters (e.g. as part of a redirect) and ensure that the correct Cloud Project Number was passed into the SDK as a string."},pc={errorType:"DestinationNotReady",
|
|
29
|
+
message:"The recipient frame is not connected via the addon SDK and cannot receive the notification.",i:"Make sure the destination frame has connected before sending messages to it."},qc={errorType:"InvalidActivityStartingState",message:"Origin of the ActivityStartingState iframeURLs does not match the origin of the URLs provided in the add-on manifest.",i:"Ensure that the ActivityStartingState iframeURL origins match the origins of the URLs provided in the add-on manifest."},rc={errorType:"ActivityStartingStateMissingAttributes",
|
|
30
|
+
message:"The supplied ActivityStartingState object does not contain any recognized attributes.",i:"Ensure that the ActivityStartingState object contains at least one of the following attributes: mainStageUrl, sidePanelUrl, additionalData."},tc={errorType:"ActivityStartingStateUnrecognizedAttributes",message:"The supplied ActivityStartingState object contains attributes that are not recognized.",i:"Ensure that the ActivityStartingState object has only the following attributes: mainStageUrl, sidePanelUrl, additionalData."},
|
|
31
|
+
uc={errorType:"AddonStartingStateMissingAttributes",message:"The supplied AddonStartingState object does not contain any recognized attributes.",i:"Ensure that the AddonStartingState object contains at least one of the following attributes: sidePanelUrl, additionalData."},vc={errorType:"AddonStartingStateUnrecognizedAttributes",message:"The supplied AddonStartingState object contains attributes that are not recognized.",i:"Ensure that the AddonStartingState object has only the following attributes: sidePanelUrl, additionalData."},
|
|
32
|
+
wc=a=>({errorType:"ArgumentNullError",message:`The argument supplied for '${a}' was 'null' but a value was expected.`,i:"Ensure you are passing a value of the expected type for the argument."}),L=(a,b,c)=>({errorType:"ArgumentTypeError",message:`The type '${b}' of argument supplied for '${a}' did not match the expected type '${c}'.`,i:"Ensure the type of the argument provided matches the expected type."}),xc=a=>({errorType:"InternalError",message:`Could not connect to ${a} channel. Unknown error`,
|
|
33
|
+
i:"No further information is available."}),yc={errorType:"ActivityIsOngoing",message:"Operation cannot be performed while an activity is ongoing.",i:"Ensure that no activity is ongoing."},zc={errorType:"InternalError",message:"Frame message missing required Meet SDK command.",i:"Send one of the available commands in the frame message."},Ac={errorType:"NoActivityFound",message:"No activity found.",i:"Ensure that the activity is started before performing this operation."},Bc={errorType:"RequiresEapEnrollment",
|
|
34
|
+
message:"This feature is only available to early access partners.",i:"Meet add-on early access enrollment is currently closed."},Cc={errorType:"UserNotInitiator",message:"Operation cannot be performed because the user is not the initiator of the current activity.",i:"Ensure that the user is the initiator of the current activity or that the activity has ended."},Dc={errorType:"SizeLimitExceededActivityStartingState",message:"The size of the activityStartingState URLs and/or its data exceed the limits allowed.",
|
|
35
|
+
i:"Ensure that the activityStartingState URL size is less than 512 characters and the additional data size is less than 4096 characters."},Ec={errorType:"SizeLimitExceededFrameToFrameMessage",message:"The size of the frame to frame message exceeds the limits allowed.",i:"Ensure that the frame to frame message size is less than 1,000,000 characters."},Fc={errorType:"AddonSessionAlreadyCreated",message:"The addon session has already been created.",i:"Only instantiate the AddonSession once."},Gc={errorType:"UserCancelled",
|
|
36
|
+
message:"The user cancelled starting an activity.",i:"The user needs to click continue to start the activity."},Hc={errorType:"NotSupportedInMeetCall",message:"This method is not supported during a Meet call.",i:"Do not call this method during a Meet call."},Ic={errorType:"InvalidAddonStartingState",message:"Origin of the AddonStartingState iframeURLs does not match the origin of the URLs provided in the add-on manifest.",i:"Ensure that the AddonStartingState iframeURL origins match the origins of the URLs provided in the add-on manifest."},
|
|
37
|
+
Jc={errorType:"SizeLimitExceededAddonStartingState",message:"The size of the AddonStartingState URLs and/or its data exceed the limits allowed.",i:"Ensure that the AddonStartingState URL size is less than 512 characters and the additional data size is less than 4096 characters."},Kc={errorType:"MeetingPolicyPreventsStartingActivity",message:"A meeting policy (such as using host control settings) prevents the user from starting the activity.",i:"Have a meeting host or administrator modify the necessary settings to allow the current user to start the activity."};
|
|
38
|
+
function Lc(a){switch(a){case 0:return K;case 1:return pc;case 2:return qc;case 3:return yc;case 4:return zc;case 5:return Bc;case 6:return lc;case 7:return Cc;case 8:return Dc;case 9:return Ec;case 10:return Gc;case 11:return Hc;case 12:return Ic;case 13:return Jc;case 14:return Ac;case 15:return Kc;default:return K}}
|
|
39
|
+
function Mc(a){let b;var c=(b=D(a,1))!=null?b:0;a=Nc(x(a,fc));switch(c){case 1:return{errorType:"InternalError",message:`Could not connect to ${a} channel. Meet did not respond with a MessagePort.`,i:"No further information is available."};case 2:return{errorType:"InternalError",message:`Could not connect to ${a}. A conflicting ${a} exists.`,i:"No further information is available."};case 3:return{errorType:"InternalError",message:`Could not connect to ${a} channel. The addon does not have permission to open a ${a}.`,
|
|
40
|
+
i:"This method might require EAP enrollment."};case 4:return{errorType:"InternalError",message:`Could not connect to ${a} channel. The addon is not authorized for this ${a}.`,i:"No further information is available."};case 0:return xc(a);case 5:a:switch(a){case "co":c={errorType:"InternalError",message:`Could not connect to ${a} channel. The coActivity was not found.`,i:`Consider starting the ${a} only after after the startActivity promise returns.`};break a;default:c={errorType:"InternalError",message:`Could not connect to ${a} channel.`,
|
|
41
|
+
i:"No further information is available."}}return c;default:return xc(a)}}function Nc(a){switch(a){case 2:return"co";case 3:return"gd";case 0:return"unknown";default:return"unknown"}}function M({errorType:a,message:b,i:c},d=""){throw new J({errorType:a,message:d?`${b} ${d}`:b,i:c});}function Oc(a,b){M({...ic,message:`${ic.message}: ${a}. In URL ${b}`})};function Pc(a){var b=new Qc;return F(b,1,a)}function Rc(a,b){return y(a,2,u(b),"")}function Sc(a,b){return y(a,3,u(b),"")}var Qc=class extends G{getFrameType(){return D(this,1)}};function Tc(a){var b=a.l,c=b,d=b[l]|0,e=Qc;b=void 0===Ja?2:4;var f=m(a,d);const g=f?1:b;b=g===3;var h=!f;(g===2||h)&&Bb(a)&&(c=a.l,d=c[l]|0);a=Fb(c,1);f=Array.isArray(a)?a:Da;var k=f===Da?7:f[l]|0;a=k;2&d&&(a|=2);var n=a|1;if(a=!(4&n)){var r=f,z=d;const A=!!(2&n);A&&(z|=2);let H=!A,I=!0,R=0,jb=0;for(;R<r.length;R++){const kb=ob(r[R],e,z);if(kb instanceof e){if(!A){const sc=m(kb);H&&(H=!sc);I&&(I=sc)}r[jb++]=kb}}jb<R&&(r.length=jb);n|=4;n=I?n&-4097:n|4096;n=H?n|8:n&-9}n!==k&&(f[l]=n,2&n&&Object.freeze(f));
|
|
42
|
+
if(h&&!(8&n||!f.length&&(g===1||(g!==4?0:2&n||!(16&n)&&32&d)))){Jb(n)&&(f=[...f],n=Rb(n,d),d=w(c,d,1,f));e=f;h=n;for(k=0;k<e.length;k++)r=e[k],n=Ab(r),r!==n&&(e[k]=n);h|=8;n=h=e.length?h|4096:h&-4097;f[l]=n}h=e=n;g===1||(g!==4?0:2&e||!(16&e)&&32&d)?Jb(e)||(e|=!f.length||a&&!(4096&e)||32&d&&!(4096&e||16&e)?2:256,e!==h&&(f[l]=e),Object.freeze(f)):(g===2&&Jb(e)&&(f=[...f],h=0,e=Rb(e,d),d=w(c,d,1,f)),Jb(e)||(b||(e|=16),e!==h&&(f[l]=e)));2&e||!(4096&e||16&e)||Db(c,d);return f}
|
|
43
|
+
function Uc(a){var b=new Vc;return Qb(b,a)}var Vc=class extends G{};var Wc=class extends G{};function Xc(a){return Nb(a,Vc,1)}var Yc=class extends G{};var Zc=class extends G{};var $c=class extends G{};var ad=class extends G{};var bd=class extends G{getMeetPlatformInfo(){return Nb(this,$c,1)}};var cd=class extends G{getMeetingInfo(){return Nb(this,ad,1)}};var dd=class extends G{},N=[1,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21];var ed=class extends G{};var fd=class extends G{};var gd=new Map([[2,"MAIN_STAGE"],[1,"SIDE_PANEL"]]),hd=new Map([[0,"UNKNOWN"],[1,"OPEN_ADDON"],[2,"START_ACTIVITY"],[3,"JOIN_ACTIVITY"]]);function id(a){a&&typeof a.dispose=="function"&&a.dispose()};function O(){this.o=this.o;this.g=this.g}O.prototype.o=!1;O.prototype.dispose=function(){this.o||(this.o=!0,this.H())};O.prototype[Symbol.dispose]=function(){this.dispose()};function jd(a,b){a.o?b():(a.g||(a.g=[]),a.g.push(b))}O.prototype.H=function(){if(this.g)for(;this.g.length;)this.g.shift()()};function kd({J:a,R:b}){if(a===null)throw new J(wc("activityStartingState"));if(b||a!==void 0){if(typeof a!=="object")throw new J(L("activityStartingState",typeof a,`object${b?"":" | undefined"}`));if(a.mainStageUrl!==void 0&&typeof a.mainStageUrl!=="string")throw new J(L("mainStageUrl",typeof a.mainStageUrl,"string | undefined"));if(a.sidePanelUrl!==void 0&&typeof a.sidePanelUrl!=="string")throw new J(L("sidePanelUrl",typeof a.sidePanelUrl,"string | undefined"));if(a.additionalData!==void 0&&typeof a.additionalData!==
|
|
44
|
+
"string")throw new J(L("additionalData",typeof a.additionalData,"string | undefined"));if(Object.keys(a).length!==+!!a.mainStageUrl+ +!!a.sidePanelUrl+ +!!a.additionalData)throw new J(tc);if(Object.keys(a).length===0)throw new J(rc);}}function ld(a){const b=[];b.push(Sc(Rc(Pc(2),a.mainStageUrl),a.additionalData));b.push(Sc(Rc(Pc(1),a.sidePanelUrl),a.additionalData));return b}
|
|
45
|
+
var ud=class extends O{constructor(a){super();this.context=a;this.h={};md(this.context.g.U,b=>{switch(x(b.content,N)){case 7:const d=this.h.frameToFrameMessage;b=E(b.content,Zc,7,N);if(d&&b){var c=D(b,1);c=gd.get(c);if(c===void 0)throw Error("Unknown frame type.");d({originator:c,payload:C(b,2)})}}},this)}async getMeetingInfo(){var a=await nd(this.context.g);var b=a.getMeetingInfo();b=C(b,1);a=a.getMeetingInfo();a=C(a,2);return{meetingId:b,meetingCode:a}}async getFrameOpenReason(){let a;const b=(a=
|
|
46
|
+
this.context.h.da)!=null?a:0;let c;return(c=hd.get(b))!=null?c:"UNKNOWN"}async getActivityStartingState(){var a=Xc(await od(this.context.g));const b=a==null?void 0:Tc(a).find(c=>c.getFrameType()===2);a=a==null?void 0:Tc(a).find(c=>c.getFrameType()===1);return{mainStageUrl:(b==null?void 0:C(b,2))||void 0,sidePanelUrl:(a==null?void 0:C(a,2))||void 0,additionalData:(a==null?void 0:C(a,3))||void 0}}async setActivityStartingState(a){kd({J:a,R:!0});var b=ld(a);a=pd;var c=this.context.g;var d=new ed;b=Uc(b);
|
|
47
|
+
d=Pb(d,1,b);await a(c,d)}on(a,b){this.h[a]=b}async getMeetPlatformInfo(){var a=(await qd(this.context.g)).getMeetPlatformInfo();return{isMeetHardware:Sb(a)}}async closeAddon(){await rd(this.context.g)}async startActivity(a){kd({J:a,R:!1});const b=new fd;a&&(a=ld(a),a=Uc(a),Pb(b,1,a));await sd(this.context.g,b)}async endActivity(a){var b=td,c=this.context.g,d=new Wc;a=F(d,1,a==="aab61ee0-51b4-475d-aa4d-849f2498640d"?999:0);await b(c,a)}};var vd=Xb(class extends G{getFrameOpenReason(){return D(this,5)}});function wd(){var a=window.location.href;var b=window.location.href;var c=(new URL(b)).searchParams.get("meet_sdk");if(c)b=vd(atob(c));else{var d;((d=window.top)!=null?d:window)===window?M(mc):Oc("meet_sdk",b);b=void 0}(c=C(b,1))||Oc("meet_addon_frame_type",a);c=Number(c);if(c!==2&&c!==1)throw new J(nc);(d=C(b,2))||Oc("meet_control_channel_name",a);const e=C(b,4);e||Oc("addon_cloud_project_number",a);var f;a=(f=b.getFrameOpenReason())!=null?f:0;f=C(b,3)||"https://meet.google.com";return{da:a,frameType:c,
|
|
48
|
+
ca:d,cloudProjectNumber:e,S:f}};var xd=class extends G{};var yd=class extends G{};var zd=class extends G{};function Ad(){var a=new Bd,b=new zd;return B(a,1,Cd,b)}var Bd=class extends G{},Cd=[1,2];function Dd(a){var b=new Ed;return Pb(b,2,a)}function Fd(a,b){return y(a,3,u(b),"")}var Ed=class extends G{};var Gd=class extends G{};var Hd=class extends G{};var Id=class extends G{};var Jd=class extends G{};var Kd=class extends G{};var Ld=class extends G{};var Md=class extends G{setAddonStartingState(a){return Pb(this,1,a)}};var Nd=class extends G{};function Od(a,b){return B(a,2,P,b)}var Q=class extends G{},P=[1,2,5,6,7,8,9,10,11,13,14,15,16,17,18,19,20];function Pd(a){return E(a,dd,2,Qd)}var Rd=class extends G{},Sd=Xb(Rd),Qd=[1,2];class Td{constructor(a,b){this.data=a;this.channel=b}};var Ud=Promise;function Vd(a){const b=new MessageChannel;Wd(b.port1,a);return b}function Xd(a,b){Wd(a,b);return new Yd(a)}class Yd{constructor(a){this.g=a}send(a,b,c=[]){b=Vd(b);this.g.postMessage(a,[b.port2].concat(c))}D(a,b){return new Ud(c=>{this.send(a,c,b)})}}function Wd(a,b){b&&(a.onmessage=c=>{var d=c.data;c=Xd(c.ports[0]);b(new Td(d,c))})};var Zd=typeof AsyncContext!=="undefined"&&typeof AsyncContext.Snapshot==="function"?a=>a&&AsyncContext.Snapshot.wrap(a):a=>a;function $d(a,b){a.m(b);a.h<100&&(a.h++,b.next=a.g,a.g=b)}class ae{constructor(a,b){this.j=a;this.m=b;this.h=0;this.g=null}get(){let a;this.h>0?(this.h--,a=this.g,this.g=a.next,a.next=null):a=this.j();return a}};function be(){var a=ce;let b=null;a.g&&(b=a.g,a.g=a.g.next,a.g||(a.h=null),b.next=null);return b}class de{constructor(){this.h=this.g=null}add(a,b){const c=ee.get();c.set(a,b);this.h?this.h.next=c:this.g=c;this.h=c}}var ee=new ae(()=>new fe,a=>a.reset());class fe{constructor(){this.next=this.g=this.h=null}set(a,b){this.h=a;this.g=b;this.next=null}reset(){this.next=this.g=this.h=null}};let ge,he=!1,ce=new de,je=(a,b)=>{ge||ie();he||(ge(),he=!0);ce.add(a,b)},ie=()=>{const a=Promise.resolve(void 0);ge=()=>{a.then(ke)}};function ke(){let a;for(;a=be();){try{a.h.call(a.g)}catch(b){ka(b)}$d(ee,a)}he=!1};function le(){};function S(a){this.g=0;this.T=void 0;this.m=this.h=this.j=null;this.u=this.A=!1;if(a!=le)try{const b=this;a.call(void 0,function(c){me(b,2,c)},function(c){me(b,3,c)})}catch(b){me(this,3,b)}}function ne(){this.next=this.context=this.h=this.m=this.g=null;this.j=!1}ne.prototype.reset=function(){this.context=this.h=this.m=this.g=null;this.j=!1};var oe=new ae(function(){return new ne},function(a){a.reset()});function pe(a,b,c){const d=oe.get();d.m=a;d.h=b;d.context=c;return d}
|
|
49
|
+
function qe(){let a,b;const c=new S(function(d,e){a=d;b=e});return new re(c,a,b)}S.prototype.then=function(a,b,c){return se(this,Zd(typeof a==="function"?a:null),Zd(typeof b==="function"?b:null),c)};S.prototype.$goog_Thenable=!0;function te(a,b){b=Zd(b);b=pe(b,b);b.j=!0;ue(a,b)}S.prototype.cancel=function(a){if(this.g==0){const b=new T(a);je(function(){ve(this,b)},this)}};
|
|
50
|
+
function ve(a,b){if(a.g==0)if(a.j){var c=a.j;if(c.h){var d=0,e=null,f=null;for(let g=c.h;g&&(g.j||(d++,g.g==a&&(e=g),!(e&&d>1)));g=g.next)e||(f=g);e&&(c.g==0&&d==1?ve(c,b):(f?(d=f,d.next==c.m&&(c.m=d),d.next=d.next.next):we(c),xe(c,e,3,b)))}a.j=null}else me(a,3,b)}function ue(a,b){a.h||a.g!=2&&a.g!=3||ye(a);a.m?a.m.next=b:a.h=b;a.m=b}
|
|
51
|
+
function se(a,b,c,d){const e=pe(null,null,null);e.g=new S(function(f,g){e.m=b?function(h){try{const k=b.call(d,h);f(k)}catch(k){g(k)}}:f;e.h=c?function(h){try{const k=c.call(d,h);k===void 0&&h instanceof T?g(h):f(k)}catch(k){g(k)}}:g});e.g.j=a;ue(a,e);return e.g}S.prototype.na=function(a){this.g=0;me(this,2,a)};S.prototype.Y=function(a){this.g=0;me(this,3,a)};
|
|
52
|
+
function me(a,b,c){if(a.g==0){a===c&&(b=3,c=new TypeError("Promise cannot resolve to itself"));a.g=1;a:{var d=c,e=a.na,f=a.Y;if(d instanceof S){ue(d,pe(e||le,f||null,a));var g=!0}else{if(d)try{var h=!!d.$goog_Thenable}catch(k){h=!1}else h=!1;if(h)d.then(e,f,a),g=!0;else{h=typeof d;if(h=="object"&&d!=null||h=="function")try{const k=d.then;if(typeof k==="function"){ze(d,k,e,f,a);g=!0;break a}}catch(k){f.call(a,k);g=!0;break a}g=!1}}}g||(a.T=c,a.g=b,a.j=null,ye(a),b!=3||c instanceof T||Ae(a,c))}}
|
|
53
|
+
function ze(a,b,c,d,e){function f(k){h||(h=!0,d.call(e,k))}function g(k){h||(h=!0,c.call(e,k))}let h=!1;try{b.call(a,g,f)}catch(k){f(k)}}function ye(a){a.A||(a.A=!0,je(a.ma,a))}function we(a){let b=null;a.h&&(b=a.h,a.h=b.next,b.next=null);a.h||(a.m=null);return b}S.prototype.ma=function(){let a;for(;a=we(this);)xe(this,a,this.g,this.T);this.A=!1};
|
|
54
|
+
function xe(a,b,c,d){if(c==3&&b.h&&!b.j)for(;a&&a.u;a=a.j)a.u=!1;if(b.g)b.g.j=null,Be(b,c,d);else try{b.j?b.m.call(b.context):Be(b,c,d)}catch(e){Ce.call(null,e)}$d(oe,b)}function Be(a,b,c){b==2?a.m.call(a.context,c):a.h&&a.h.call(a.context,c)}function Ae(a,b){a.u=!0;je(function(){a.u&&Ce.call(null,b)})}var Ce=ka;function T(a){ja.call(this,a)}ia(T,ja);T.prototype.name="cancel";function re(a,b,c){this.promise=a;this.resolve=b;this.reject=c};let De=1,Ee=new WeakMap;function Fe(a,b,c){var d=Ge;a.h.has(b);d(b,c)}var Ie=class extends O{constructor(){super();this.h=new Set}signal(){const a=new He;this.h.add(a);jd(this,ha(id,a));return a}};function Ge(a,b){return new Promise(c=>{Je(()=>{a.L&&(a.fa=b,a.P=!0);for(const {I:d,slot:e}of a.v.values())try{e(b,{signal:a,I:d})}catch(f){ka(f)}for(const d of a.C)d.resolve(b);a.C.clear();c()})})}function md(a,b,c){const d=De++;Je(()=>{Ke(a,d,b,c)})}
|
|
55
|
+
function Ke(a,b,c,d){if(!a.o)if(d){if(!d.o){const e=()=>{Je(()=>{a.v.delete(b);const f=Ee.get(d);f&&na(f,e)})};a.v.set(b,{I:b,slot:c,G:e});Le(d,e)}}else a.v.set(b,{I:b,slot:c,G:()=>a.v.delete(b)})}
|
|
56
|
+
var He=class extends O{constructor(){super();this.L=!1;this.v=new Map;this.C=new Set;this.P=!1}detach(a){Je(()=>{const b=this.v.get(a);b&&b.G()})}value(a){return this.promise(!0,a)}next(a){return this.promise(!1,a)}promise(a,b){const c=qe();Je(()=>{if(this.o)c.reject(new T("Signal initially disposed"));else if(b&&b.o)c.reject(new T("Owner initially disposed"));else if(a&&this.L&&this.P)c.resolve(this.fa);else if(this.C.add(c),te(c.promise,()=>{this.C.delete(c)}),b){const d=()=>{c.reject(new T("Owner asynchronously disposed"))};
|
|
57
|
+
te(c.promise,()=>{const e=Ee.get(b);e&&na(e,d)});Le(b,d)}});return c.promise}H(){super.H();Je(()=>{for(const {G:a}of this.v.values())a();this.v.clear();for(const a of this.C)a.reject(new T("Signal asynchronously disposed"));this.C.clear()})}};const Me=[];let Ne=!1;function Je(a){Me.push(a);Oe()}async function Oe(){if(!Ne)try{Ne=!0;let a=Pe(0);for(;a<Me.length;)await Promise.resolve(),a=Pe(a)}catch(a){ka(a)}finally{Me.length=0,Ne=!1}}
|
|
58
|
+
function Pe(a){const b=a+100;for(;a<b&&a<Me.length;)try{Me[a++]()}catch(c){ka(c)}return a}function Le(a,b){if(a.o)b();else{var c=Ee.get(a);if(c)c.push(b);else{const d=[b];Ee.set(a,d);jd(a,()=>{for(const e of[...d])e();Ee.delete(a)})}}};function U(a){var b=new Rd;a=B(b,1,Qd,a);return{content:JSON.stringify(tb(a))}}const Qe=new Ie;function Re(a,b){const c=Qe.signal();return{channel:Xd(a,d=>{const e=b(d.data);Fe(Qe,c,{content:e,la:d})}),signal:c}};let Vb;var V=class extends G{};var W=class extends G{};var Te=class extends G{j(){return E(this,V,2,Se)}h(){return Hb(this,V,2,Se)}m(){return E(this,W,3,Se)}u(){return Hb(this,W,3,Se)}},Se=[2,3];var Ue=Xb(class extends G{});var Ve=Xb(class extends G{}),We=[1,2];var Xe=({destination:a,origin:b,ra:c,Z:d="ZNWN1d",onMessage:e})=>{if(b==="*")throw Error("Sending to wildcard origin not allowed.");const f=Vd(e);a.postMessage(c?{n:d,t:c}:d,b,[f.port2]);return Xd(f.port1,e)};function Ye(a,b,c){const d=new Ie,e=d.signal();a=Xe({destination:window.parent,origin:b,Z:a,onMessage:f=>{const g=Sd(f.data.content);x(g,Qd)===2&&Fe(d,e,{content:Pd(g),la:f,messagePort:f.data.messagePort})}});return new Ze(e,a,c)}async function nd(a){var b=X;var c=new Q;var d=new Id;c=B(c,19,P,d);a=await b(a,U(c));let e;return(e=Pd(Sd(a.data.content)))==null?void 0:E(e,cd,20,N)}
|
|
59
|
+
async function od(a){var b=X;var c=new Q;var d=new yd;c=B(c,17,P,d);a=await b(a,U(c));let e;return(e=Pd(Sd(a.data.content)))==null?void 0:E(e,Yc,18,N)}async function pd(a,b){var c=X,d=new Q;b=B(d,8,P,b);await c(a,U(b))}async function qd(a){var b=X;var c=new Q;var d=new Hd;c=B(c,18,P,d);a=await b(a,U(c));let e;return(e=Pd(Sd(a.data.content)))==null?void 0:E(e,bd,19,N)}async function rd(a){var b=X;var c=new Q;var d=new xd;c=B(c,11,P,d);await b(a,U(c))}
|
|
60
|
+
async function sd(a,b){var c=X,d=new Q;b=B(d,14,P,b);await c(a,U(b))}async function td(a,b){var c=X,d=new Q;b=B(d,15,P,b);await c(a,U(b))}async function $e(a){await a.h()}
|
|
61
|
+
async function X(a,b){(a=await a.channel.D(b))||M(K,"Falsy response received from the message channel."+` ${JSON.stringify(a)}`);(b=a.data)||M(K,"Data field in the response from the message channel is falsy."+` ${JSON.stringify(b)}`);(b=b.content)||M(K,"Content field in the response from the message channel is falsy."+` ${JSON.stringify(b)}`);let c=void 0;try{c=Sd(b)}catch(d){M(K,"The ControlMessage can't be deserialized."+` ${JSON.stringify(b)}. ${JSON.stringify(d)}`)}(b=Pd(c))||M(K,"MeetToAddonMessage field on ControlMessage is falsy."+
|
|
62
|
+
` ${JSON.stringify(b)}`);b=b==null?void 0:E(b,hc,10,N);if((b==null?void 0:D(b,1))!==void 0)throw a=D(b,1),new J(Lc(a));return a}async function af(a,b,c){var d=X,e=new Q;b=B(e,1,P,b);d=await d(a,U(b));a=d.data.messagePort;var f;(d=(f=Pd(Sd(d.data.content)))==null?void 0:E(f,ec,1,N))!=null?f=d:(f=new ec,f=F(f,1,0));return{channel:a?Re(a,c):void 0,response:f}}async function bf(a){const b=Ad(),{channel:c,response:d}=await af(a,b,e=>Ve(e));if(!c)throw new J(Mc(d));return c}
|
|
63
|
+
async function cf(a){var b=X;var c=new Q;var d=new Nd;c=B(c,5,P,d);await b(a,U(c))}async function df(a){var b=X;var c=new Q;var d=new Gd;c=B(c,6,P,d);await b(a,U(c))}async function ef(a,b,c){var d=X,e=new Q,f=new Jd;b=F(f,1,b);c=y(b,2,u(c),"");e=B(e,7,P,c);await d(a,U(e))}async function ff(a,b){var c=X,d=new Q;b=B(d,16,P,b);await c(a,U(b))}
|
|
64
|
+
class Ze extends O{constructor(a,b,c){super();this.U=a;this.channel=b;this.h=cc(async()=>{var d=this.channel,e=d.D;var f=new Q;var g=new Kd;f=B(f,13,P,g);await e.call(d,U(f))});a=Ub();C(a,4);hb(v(a,1));hb(v(a,2));hb(v(a,3));c=Od(new Q,Fd(Dd(a),c));this.channel.send(U(c));md(this.U,async d=>{switch(x(d.content,N)){case 16:await $e(this)}},this)}};let gf;var hf=class{constructor(a){var b=gf;this.h=a;this.g=b}delete(){throw Error("Not implemented.");}};var kf=class extends G{j(){return E(this,V,2,jf)}h(){return Hb(this,V,2,jf)}m(){return E(this,W,3,jf)}u(){return Hb(this,W,3,jf)}},jf=[2,3];var lf=class extends G{};var mf=class extends G{};var nf=class extends G{};var pf=class extends G{j(){return E(this,V,2,of)}h(){return Hb(this,V,2,of)}m(){return E(this,W,3,of)}u(){return Hb(this,W,3,of)}},of=[2,3],qf=[5,6];var rf=class extends G{};var sf=class extends G{},tf=[1,2,3];var uf=class extends Error{constructor(){super("Failed to create CoActivity: Connection refused - Meet refused to begin Live Sharing")}};var vf=class{constructor(a){this.config=a}start(){this.g!=null||(this.g=setInterval(()=>{this.config.ia()},this.config.ea));return this}shutdown(){clearInterval(this.g)}};function wf(a){return Ua(a)?Number(a):String(a)};function xf(){const a=new Map,b={set(c,d){a.set(c,d);return b},F:()=>a};return b};function yf(a){if(a.h()){a=a.j();a=v(a,1,void 0,Kb);var b=a==null?sa():a;a=Uint8Array;va(ra);var c=b.g;if(!(c==null||c!=null&&c instanceof Uint8Array))if(typeof c==="string"){c=oa.test(c)?c.replace(oa,qa):c;c=atob(c);const d=new Uint8Array(c.length);for(let e=0;e<c.length;e++)d[e]=c.charCodeAt(e);c=d}else c=null;b=c==null?c:b.g=c;return{bytes:new a(b||0)}}}function zf(a,b){b=Af(b);B(a,2,of,b);return a}function Bf(a,b){b=Af(b);B(a,2,jf,b);return a}
|
|
65
|
+
function Af(a){var b=new V;return y(b,1,Ia(a.bytes,!1),sa())}function Cf(a){if(a.u()){a=a.m();var b,c=C(a,1);var d=(b=Nb(a,Yb,2))==null?void 0:Tb(b);b=d!=null?wf(d):void 0;b=b!=null?b:0;let e;d=(e=v(a,4,void 0,eb))!=null?e:0;return{mediaId:c,mediaPlayoutPosition:b,mediaPlayoutRate:d,playbackState:Df.get(D(a,3))}}}function Ef(a,b){b=Ff(b);B(a,3,of,b);return a}function Gf(a,b){b=Ff(b);B(a,3,jf,b);return a}
|
|
66
|
+
const Df=xf().set(0,"INVALID").set(1,"BUFFERING").set(2,"PLAY").set(3,"PAUSE").set(4,"ENDED").F(),Hf=xf().set("INVALID",0).set("BUFFERING",1).set("PLAY",2).set("PAUSE",3).set("ENDED",4).F();function Ff(a){var b=new W;b=y(b,1,u(a.mediaId),"");var c=a.mediaPlayoutRate;if(c!=null&&typeof c!=="number")throw Error(`Value of float/double field must be a number, found ${typeof c}: ${c}`);b=y(b,4,c,0);c=new Yb;c=y(c,1,ib(a.mediaPlayoutPosition),"0");b=Pb(b,2,c);a=Hf.get(a.playbackState);return F(b,3,a)}
|
|
67
|
+
function If({activityTitle:a}){var b=new nf;return Gb(b,4,u(a))}function Jf(a,b){var c=new mf;b=F(c,1,b.B);B(a,6,qf,b);return a}function Kf(a){var b=new lf;B(a,5,qf,b);return a};const Lf=xf().set("co-doing",1).set("co-watching",2).F();async function Mf(a,b,c){var d=b.D,e=new sf;var f=new rf;f=y(f,1,u(a.activityTitle),"");var g=Lf.get(a.K);f=F(f,2,g);e=B(e,3,tf,f);d=await d.call(b,e,Ue);let h;if((h=Sb(d))!=null&&h)return new Nf(a,b,c,Nb(d,Te,2));throw new uf;}function Of(a,b){const c=a.config.N(b);c&&!a.config.M(a.g,c)&&(a.g=c,a.j=wf(Tb(b)),a.u(a.g))}function Y(a,b){const {state:c,ga:d,context:e}=b(a.g);a.g=c;a.notify(a.g,e,d)}
|
|
68
|
+
class Nf{constructor(a,b,c,d){this.m=a;this.h=b;this.config=c;this.u=Zb(e=>void this.m.O(e));Pf(this.h,e=>{const f=x(e,We);switch(f){case 1:Of(this,E(e,Te,1,We));break;case 2:case 0:console.warn(`IllegalMessage: ${f} - ${"Unhandled message"} - ${"Please raise a bug with the MeetJS team"}`)}});this.A=(new vf({ea:1E3,ia:()=>{var e,f,g=(f=(e=this.m).ka)==null?void 0:f.call(e);if(this.g!==null){this.g={...this.g,...g};e=new sf;f=this.config;g=f.W;var h=new kf;h=y(h,1,ib(this.j),"0");f=g.call(f,h,this.g);
|
|
69
|
+
e=B(e,1,tf,f);this.h.send(e)}}})).start();this.g=null;this.j=0;d&&Of(this,d)}disconnect(){this.h.shutdown();this.A.shutdown()}notify(a,b,c){var d=c?If(c):void 0;c=this.config;var e=c.X;var f=new pf;f=y(f,1,ib(this.j),"0");d=Pb(f,4,d);a=e.call(c,d,a);a=this.config.V(a,b);b=this.h;c=b.send;e=new sf;a=B(e,2,tf,a);c.call(b,a)}};var Qf=class{constructor(a){this.g=a}broadcastStateUpdate(a){Y(this.g,()=>({state:a,context:{}}))}disconnect(){this.g.disconnect()}};function Rf(a,b){return a==null||b==null?!1:a.bytes.length===b.bytes.length&&a.bytes.every((c,d)=>c===b.bytes[d])};var Sf=class{constructor(a){this.g=a}notifySwitchedToMedia(a,b,c){Y(this.g,()=>({state:{mediaId:b,mediaPlayoutRate:1,mediaPlayoutPosition:c,playbackState:"PLAY"},ga:{activityTitle:a},context:{B:1}}))}notifyPauseState(a,b){Y(this.g,c=>{if(c==null)throw Error("Invalid before coWatchingState");return{state:{...c,playbackState:a?"PAUSE":"PLAY",mediaPlayoutPosition:b},context:{B:3}}})}notifySeekToTimestamp(a){Y(this.g,b=>{if(b==null)throw Error("Invalid before coWatchingState");return{state:{...b,mediaPlayoutPosition:a},
|
|
69
70
|
context:{B:2}}})}notifyPlayoutRate(a){Y(this.g,b=>{if(b==null)throw Error("Invalid before coWatchingState");return{state:{...b,mediaPlayoutRate:a},context:{B:4}}})}notifyBuffering(a){Y(this.g,b=>{if(b==null)throw Error("Invalid before coWatchingState");return{state:{...b,mediaPlayoutPosition:a,playbackState:"BUFFERING"},context:{B:3}}})}notifyReady(a){Y(this.g,b=>{if(b==null)throw Error("Invalid before coWatchingState");return{state:{...b,mediaPlayoutPosition:a},context:{B:3}}})}disconnect(){this.g.disconnect()}};
|
|
70
|
-
function
|
|
71
|
-
async function
|
|
72
|
-
+!!a.additionalData)throw new J(
|
|
73
|
-
a)}async createRoomsStandaloneClient(){var a=this.g;if(a.h.frameType!==2)throw new J(
|
|
74
|
-
return
|
|
71
|
+
function Tf(a,b){if(a==null||b==null)return!1;const c=a.playbackState==="PLAY"?3*Math.max(a.mediaPlayoutRate,1):0,d=Math.abs(a.mediaPlayoutPosition-b.mediaPlayoutPosition);return a.mediaId===b.mediaId&&a.mediaPlayoutRate===b.mediaPlayoutRate&&d<=c&&a.playbackState===b.playbackState};function Pf(a,b){md(a.signal,c=>{b(c)},a.g)}var Uf=class{constructor(a,b){this.channel=a;this.signal=b;this.g=new O}send(a){this.channel.send(JSON.stringify(tb(a)))}async D(a,b){a=await this.channel.D(JSON.stringify(tb(a)));return b(a.data)}shutdown(){this.g.dispose()}};function Vf(a,b){var c=Wf;const d=a.signal(),e=a.signal();md(b,f=>{const g=c(f)?d:e;Fe(a,g,f)},a);return{ja:d,ha:e}}function Xf(a,b,c,d=e=>e){md(c,e=>{Fe(a,b,d(e))},a)};async function Yf(a,b){if(b)return a=await Mf({activityTitle:b.activityTitle,K:"co-watching",ka:()=>b.onCoWatchingStateQuery(),O:c=>{b.onCoWatchingStateChanged(c)}},a,{X:Ef,W:Gf,V:Jf,N:Cf,M:Tf}),new Sf(a)}async function Zf(a,b){if(b)return a=await Mf({activityTitle:b.activityTitle,K:"co-doing",O:c=>{b.onCoDoingStateChanged(c)}},a,{X:zf,W:Bf,V:Kf,N:yf,M:Rf}),new Qf(a)}
|
|
72
|
+
async function $f(a){var b=new Ie,c=b.signal();a=await a;Xf(b,c,a.signal,f=>f.content);const {ja:d,ha:e}=Vf(b,c);b=new Uf(a.channel,d);c=new Uf(a.channel,e);return{aa:b,ba:c}}function Wf(a){a:switch(x(a,We)){case 1:a=E(a,Te,1,We);break a;default:throw Error("CA Message arrived with no known content message set");}return a.h()};async function ag(a,b){({aa:a}=await $f(bf(a.g)));b=await Zf(a,b);if(!b)throw Error("Failed to create co-doing session");return b}async function bg(a,b){({ba:a}=await $f(bf(a.g)));b=await Yf(a,b);if(!b)throw Error("Failed to create co-watching session");return b};var cg=class extends ud{async notifySidePanel(a){await ef(this.context.g,1,a)}async unloadSidePanel(){await cf(this.context.g)}async loadSidePanel(){await df(this.context.g)}};var dg=class extends ud{async setAddonStartingState(a){if(a===null)throw new J(wc("addonStartingState"));if(typeof a!=="object")throw new J(L("addonStartingState",typeof a,"object | undefined"));if(a.sidePanelUrl!==void 0&&typeof a.sidePanelUrl!=="string")throw new J(L("sidePanelUrl",typeof a.sidePanelUrl,"string | undefined"));if(a.additionalData!==void 0&&typeof a.additionalData!=="string")throw new J(L("additionalData",typeof a.additionalData,"string | undefined"));if(Object.keys(a).length!==+!!a.sidePanelUrl+
|
|
73
|
+
+!!a.additionalData)throw new J(vc);if(Object.keys(a).length===0)throw new J(uc);var b=[];b.push(Sc(Rc(Pc(1),a.sidePanelUrl),a.additionalData));a=this.context.g;var c=new Md,d=c.setAddonStartingState,e=new Ld;b=Qb(e,b);await ff(a,d.call(c,b))}};var eg=class extends ud{async notifyMainStage(a){await ef(this.context.g,2,a)}};var fg=class{constructor(a){a=a.cloudProjectNumber;const b=wd();if(b.cloudProjectNumber!==a)throw new J(oc);const c=b.S,d=b.ca;let e;gf=(e=gf)!=null?e:Ye(d,c,a);this.g=new hf(b)}async createMainStageClient(){var a=this.g;if(a.h.frameType!==2)throw new J(jc);return await Promise.resolve(new cg(a))}async createSidePanelClient(){var a=this.g;if(a.h.frameType!==1)throw new J(kc);return await Promise.resolve(new eg(a))}async createCoWatchingClient(a){return await bg(this.g,a)}async createCoDoingClient(a){return await ag(this.g,
|
|
74
|
+
a)}async createRoomsStandaloneClient(){var a=this.g;if(a.h.frameType!==2)throw new J(jc);return await Promise.resolve(new dg(a))}};let gg=null;for(var hg={addon:{getFrameType:function(){a:{var a=wd().frameType;switch(a){case 2:a="MAIN_STAGE";break a;case 1:a="SIDE_PANEL";break a;default:throw Error(`Unknown frame type: ${a}`);}}return a},createAddonSession:async function(a){if(a===null)throw new J(wc("config"));if(typeof a!=="object")throw new J(L("config",typeof a,"object"));if(typeof a.cloudProjectNumber!=="string")throw new J(L("cloudProjectNumber",typeof a.cloudProjectNumber,"string"));if(gg&&wd().S!=="integration.test.google.com")throw new J(Fc);
|
|
75
|
+
return gg=new fg(a)}}},ig=["meet"],Z=ea,jg;ig.length&&(jg=ig.shift());)ig.length||hg===void 0?Z[jg]&&Z[jg]!==Object.prototype[jg]?Z=Z[jg]:Z=Z[jg]={}:Z[jg]=hg;}).apply(topLevel);export const meet = topLevel.meet;
|
|
@@ -1,40 +1,5 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
-
// Original file: index.types.d.ts
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* The main entry point for accessing Meet add-on screenshare functionality.
|
|
8
|
-
* Available globally under `window.meet.addon.screensharing`, or by importing
|
|
9
|
-
* `meet.addon.screensharing`.
|
|
10
|
-
*/
|
|
11
|
-
export interface MeetAddonScreenshare {
|
|
12
|
-
/**
|
|
13
|
-
* Enables a third-party site to set content and its corresponding add-on when
|
|
14
|
-
* transitioning from screen sharing to the Meet add-on.
|
|
15
|
-
*/
|
|
16
|
-
exposeToMeetWhenScreensharing(
|
|
17
|
-
clientScreenshareInfo: AddonScreenshareInfo,
|
|
18
|
-
): void;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/** The structure of the top-level add-on screenshare export. */
|
|
22
|
-
interface MeetAddonScreenshareExport {
|
|
23
|
-
addon: {screensharing: MeetAddonScreenshare};
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* The main entry point for accessing Meet add-on screenshare functionality.
|
|
28
|
-
*/
|
|
29
|
-
export const meet: MeetAddonScreenshareExport;
|
|
30
|
-
|
|
31
|
-
declare global {
|
|
32
|
-
export interface Window {
|
|
33
|
-
meet: MeetAddonScreenshareExport;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
|
|
38
3
|
// Original file: screenshare_info.types.d.ts
|
|
39
4
|
|
|
40
5
|
/**
|
|
@@ -68,3 +33,38 @@ export interface AddonScreenshareInfo {
|
|
|
68
33
|
*/
|
|
69
34
|
mainStageUrl?: string;
|
|
70
35
|
}
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
// Original file: index.types.d.ts
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* The main entry point for accessing Meet add-on screenshare functionality.
|
|
43
|
+
* Available globally under `window.meet.addon.screensharing`, or by importing
|
|
44
|
+
* `meet.addon.screensharing`.
|
|
45
|
+
*/
|
|
46
|
+
export interface MeetAddonScreenshare {
|
|
47
|
+
/**
|
|
48
|
+
* Enables a third-party site to set content and its corresponding add-on when
|
|
49
|
+
* transitioning from screen sharing to the Meet add-on.
|
|
50
|
+
*/
|
|
51
|
+
exposeToMeetWhenScreensharing(
|
|
52
|
+
clientScreenshareInfo: AddonScreenshareInfo,
|
|
53
|
+
): void;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/** The structure of the top-level add-on screenshare export. */
|
|
57
|
+
interface MeetAddonScreenshareExport {
|
|
58
|
+
addon: {screensharing: MeetAddonScreenshare};
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* The main entry point for accessing Meet add-on screenshare functionality.
|
|
63
|
+
*/
|
|
64
|
+
export const meet: MeetAddonScreenshareExport;
|
|
65
|
+
|
|
66
|
+
declare global {
|
|
67
|
+
export interface Window {
|
|
68
|
+
meet: MeetAddonScreenshareExport;
|
|
69
|
+
}
|
|
70
|
+
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@googleworkspace/meet-addons",
|
|
3
3
|
"description": "The Google Meet add-ons SDK lets you embed your app into Google Meet as an add-on where users can discover, share, and collaborate in the app without leaving Meet",
|
|
4
|
-
"version": "1.2.0-dev-
|
|
4
|
+
"version": "1.2.0-dev-832460133",
|
|
5
5
|
"repository": "googleworkspace/meet",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE",
|
|
7
7
|
"homepage": "https://developers.google.com/meet/add-ons/guides/overview",
|