@googleworkspace/meet-addons 1.2.0-dev-868356913 → 1.2.0-dev-869421759
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 +6 -6
- 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,12 +4,12 @@ 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
|
|
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
|
|
7
|
+
var ea=this||self;function fa(a){a:{var b=["CLOSURE_FLAGS"];for(var c=ea,d=0;d<b.length;d++)if(c=c[b[d]],c==null){b=null;break a}b=c}a=b&&b[a];return a!=null?a:!0}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),ma=fa(824656860);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(){return typeof BigInt==="function"};function Aa(a,b=!1){return b&&Symbol.for&&a?Symbol.for(a):a!=null?Symbol(a):Symbol()}var Ba=Aa(),Ca=Aa(),Da=Aa("m_m",!0);const l=Aa("jas",!0);var Ea;const Fa=[];Fa[l]=7;Ea=Object.freeze(Fa);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
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 za()?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
10
|
function Za(a){a=String(a);return"0000000".slice(a.length)+a}function $a(){var a=q,b=t;if(b&2147483648)if(za())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]};function ab(a,b=`unexpected value ${a}!`){throw Error(b);};const bb=typeof BigInt==="function"?BigInt.asIntN:void 0,cb=Number.isSafeInteger,db=Number.isFinite,eb=Math.trunc;function fb(a){if(a==null||typeof a==="number")return a;if(a==="NaN"||a==="Infinity"||a==="-Infinity")return Number(a)}const gb=/^-?([1-9][0-9]*|0)(\.[0-9]+)?$/;function hb(a){switch(typeof a){case "bigint":return!0;case "number":return db(a);case "string":return gb.test(a);default:return!1}}
|
|
11
11
|
function ib(a){if(a!=null){if(typeof a==="string"&&a)a=+a;else if(typeof a!=="number")return;db(a)}}
|
|
12
|
-
function
|
|
12
|
+
function lb(a){var b=void 0;b!=null||(b=ma?1024:0);if(!hb(a))throw ya("int64");const c=typeof a;switch(b){case 512:switch(c){case "string":return mb(a);case "bigint":return String(bb(64,a));default:return nb(a)}case 1024:switch(c){case "string":return ob(a);case "bigint":return p(bb(64,a));default:return pb(a)}case 0:switch(c){case "string":return mb(a);case "bigint":return p(bb(64,a));default:return qb(a)}default:return ab(b,"Unknown format requested type for int64")}}
|
|
13
13
|
function rb(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(za())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()}
|
|
14
14
|
function qb(a){a=eb(a);if(!cb(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}function nb(a){a=eb(a);cb(a)?a=String(a):(Wa(a),a=$a());return a}function mb(a){var b=eb(Number(a));if(cb(b))return String(b);b=a.indexOf(".");b!==-1&&(a=a.substring(0,b));return rb(a)}
|
|
15
15
|
function ob(a){var b=eb(Number(a));if(cb(b))return p(b);b=a.indexOf(".");b!==-1&&(a=a.substring(0,b));return za()?p(bb(64,BigInt(a))):p(rb(a))}function pb(a){return cb(a)?p(qb(a)):p(nb(a))}function sb(a){const b=typeof a;if(a==null)return a;if(b==="bigint")return p(bb(64,a));if(hb(a))return b==="string"?ob(a):pb(a)}function u(a){if(a!=null&&typeof a!=="string")throw Error();return a}
|
|
@@ -24,8 +24,8 @@ function y(a,b,c,d){Hb(a);const e=a.l;w(e,e[l]|0,b,(d==="0"?Number(c)===0:c===d)
|
|
|
24
24
|
function Nb(a,b,c,d){let e=!1;d=Kb(a,d,void 0,f=>{const g=tb(f,c,b);e=g!==f&&g!=null;return g});if(d!=null)return e&&!m(d)&&Ib(a,b),d}function Sb(a,b,c){let d=a.l,e=d[l]|0;b=Nb(d,e,b,c);if(b==null)return b;e=d[l]|0;if(!m(a,e)){const f=Fb(b);f!==b&&(Gb(a)&&(d=a.l,e=d[l]|0),b=f,e=w(d,e,c,b),Ib(d,e))}return b}function Tb(a){a==null&&(a=void 0);return a}function Ub(a,b,c){c=Tb(c);Lb(a,b,c);c&&!m(c)&&Ib(a.l);return a}
|
|
25
25
|
function B(a,b,c,d){d=Tb(d);a:{var e=d;Hb(a);const h=a.l;var f=h[l]|0;if(e==null){var g=Rb(h);if(Qb(g,h,f,c)===b)g.set(c,0);else break a}else{g=h;const k=Rb(g),n=Qb(k,g,f,c);n!==b&&(n&&(f=w(g,f,n)),k.set(c,b))}w(h,f,b,e)}d&&!m(d)&&Ib(a.l);return a}
|
|
26
26
|
function Vb(a,b){Hb(a);const c=a.l;let d=c[l]|0;if(b==null)return w(c,d,1),a;let e=b===Ea?7:b[l]|0,f=e;const g=Ob(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=Wb(e,d));e!==f&&(b[l]=e);d=w(c,d,1,b);2&e||!(4096&e||16&e)||Ib(c,d);return a}function Wb(a,b){return a=(2&b?a|2:a&-3)&-273}
|
|
27
|
-
function Xb(a){a=v(a,1);a=a==null||typeof a==="boolean"?a:typeof a==="number"?!!a:void 0;return a!=null?a:!1}function Yb(a){a=ma?v(a,1,void 0,sb):sb(v(a,1));return a!=null?a:Jb}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:db(a)?a|0:void 0;return a!=null?a:0}function E(a,b,c,d){c=x(a,d)===c?c:-1;return Sb(a,b,c)}function Zb(a,b){return y(a,1,b==null?b:
|
|
28
|
-
function F(a,b,c){if(c!=null){if(!db(c))throw ya("enum");c|=0}return y(a,b,c,0)};function $b(){var a=ac||(ac=bc("[1,2,0]"));a=Fb(a);a=Lb(a,4,u("dev-
|
|
27
|
+
function Xb(a){a=v(a,1);a=a==null||typeof a==="boolean"?a:typeof a==="number"?!!a:void 0;return a!=null?a:!1}function Yb(a){a=ma?v(a,1,void 0,sb):sb(v(a,1));return a!=null?a:Jb}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:db(a)?a|0:void 0;return a!=null?a:0}function E(a,b,c,d){c=x(a,d)===c?c:-1;return Sb(a,b,c)}function Zb(a,b){return y(a,1,b==null?b:lb(b),"0")}
|
|
28
|
+
function F(a,b,c){if(c!=null){if(!db(c))throw ya("enum");c|=0}return y(a,b,c,0)};function $b(){var a=ac||(ac=bc("[1,2,0]"));a=Fb(a);a=Lb(a,4,u("dev-869421759"));const b=a.l,c=b[l]|0;return m(a,c)?a:Db(a,b,c)?Eb(a,b):new a.constructor(Cb(b,c,!0))}var G=class{constructor(a){this.l=zb(a,void 0,void 0,2048)}toJSON(){return yb(this)}};G.prototype[Da]=Ga;G.prototype.toString=function(){return this.l.toString()};function cc(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 bc=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 dc=class extends G{};function ec(a){var b=new fc(500);let c=0,d;return(...e)=>{hc(b)?a(...e):(d=()=>void a(...e),c||(c=setTimeout(()=>{c=0;let f;(f=d)==null||f()},ic(b))))}}function jc(a){var b=new fc(100),c=Promise.resolve();return(...d)=>hc(b)?a(...d):c};function hc(a){return kc(a,a.index)>=a.g?(a.h[a.index]=Date.now(),a.index=(a.index+1)%1,!0):!1}function ic(a){const b=a.g;a=kc(a,a.index);return a>=b?0:b-a}function kc(a,b){let c;return Date.now()-((c=a.h[b])!=null?c:-1*a.g)}var fc=class{constructor(a){this.g=a;this.h=[];this.index=0}};var lc=class extends G{},mc=[2,3];var nc=class extends G{};var H=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."},oc={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)."},
|
|
29
29
|
pc={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."},qc={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."},rc={errorType:"NotSupportedInStandalone",
|
|
30
30
|
message:"This method is not supported in standalone mode.",i:"Do not call this method in standalone mode."},sc={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."},tc={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)."},
|
|
31
31
|
uc={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."},vc={errorType:"DestinationNotReady",
|
|
@@ -41,7 +41,7 @@ Pc={errorType:"SizeLimitExceededAddonStartingState",message:"The size of the Add
|
|
|
41
41
|
function Rc(a){switch(a){case 0:return K;case 1:return vc;case 2:return wc;case 3:return Ec;case 4:return Fc;case 5:return Hc;case 6:return rc;case 7:return Ic;case 8:return Jc;case 9:return Kc;case 10:return Mc;case 11:return Nc;case 12:return Oc;case 13:return Pc;case 14:return Gc;case 15:return Qc;default:return K}}
|
|
42
42
|
function Sc(a){let b;var c=(b=D(a,1))!=null?b:0;a=Tc(x(a,mc));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}.`,
|
|
43
43
|
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 Dc(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.`,
|
|
44
|
-
i:"No further information is available."}}return c;default:return Dc(a)}}function Tc(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 H({errorType:a,message:d?`${b} ${d}`:b,i:c});}function Uc(a,b){M({...oc,message:`${oc.message}: ${a}. In URL ${b}`})};function Vc(a){var b=new Wc;return F(b,1,a)}function Xc(a,b){return y(a,2,u(b),"")}function Yc(a,b){return y(a,3,u(b),"")}var Wc=class extends G{getFrameType(){return D(this,1)}};function Zc(a){var b=a.l,c=b,d=b[l]|0,e=Wc;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)&&Gb(a)&&(c=a.l,d=c[l]|0);a=Kb(c,1);f=Array.isArray(a)?a:Ea;var k=f===Ea?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 I=!A,J=!0,R=0,
|
|
44
|
+
i:"No further information is available."}}return c;default:return Dc(a)}}function Tc(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 H({errorType:a,message:d?`${b} ${d}`:b,i:c});}function Uc(a,b){M({...oc,message:`${oc.message}: ${a}. In URL ${b}`})};function Vc(a){var b=new Wc;return F(b,1,a)}function Xc(a,b){return y(a,2,u(b),"")}function Yc(a,b){return y(a,3,u(b),"")}var Wc=class extends G{getFrameType(){return D(this,1)}};function Zc(a){var b=a.l,c=b,d=b[l]|0,e=Wc;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)&&Gb(a)&&(c=a.l,d=c[l]|0);a=Kb(c,1);f=Array.isArray(a)?a:Ea;var k=f===Ea?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 I=!A,J=!0,R=0,jb=0;for(;R<r.length;R++){const kb=tb(r[R],e,z);if(kb instanceof e){if(!A){const xc=m(kb);I&&(I=!xc);J&&(J=xc)}r[jb++]=kb}}jb<R&&(r.length=jb);n|=4;n=J?n&-4097:n|4096;n=I?n|8:n&-9}n!==k&&(f[l]=n,2&n&&Object.freeze(f));
|
|
45
45
|
if(h&&!(8&n||!f.length&&(g===1||(g!==4?0:2&n||!(16&n)&&32&d)))){Ob(n)&&(f=[...f],n=Wb(n,d),d=w(c,d,1,f));e=f;h=n;for(k=0;k<e.length;k++)r=e[k],n=Fb(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)?Ob(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&&Ob(e)&&(f=[...f],h=0,e=Wb(e,d),d=w(c,d,1,f)),Ob(e)||(b||(e|=16),e!==h&&(f[l]=e)));2&e||!(4096&e||16&e)||Ib(c,d);return f}
|
|
46
46
|
function $c(a){var b=new ad;return Vb(b,a)}var ad=class extends G{};var bd=class extends G{};function cd(a){return Sb(a,ad,1)}var dd=class extends G{};var ed=class extends G{};var fd=class extends G{};var gd=class extends G{};var hd=class extends G{getMeetPlatformInfo(){return Sb(this,fd,1)}};var id=class extends G{getMeetingInfo(){return Sb(this,gd,1)}};var jd=class extends G{},N=[1,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21];var kd=class extends G{};var ld=class extends G{};var md=new Map([[2,"MAIN_STAGE"],[1,"SIDE_PANEL"]]),nd=new Map([[0,"UNKNOWN"],[1,"OPEN_ADDON"],[2,"START_ACTIVITY"],[3,"JOIN_ACTIVITY"]]);function od(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 pd(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 qd({J:a,R:b}){if(a===null)throw new H(Cc("activityStartingState"));if(b||a!==void 0){if(typeof a!=="object")throw new H(L("activityStartingState",typeof a,`object${b?"":" | undefined"}`));if(a.mainStageUrl!==void 0&&typeof a.mainStageUrl!=="string")throw new H(L("mainStageUrl",typeof a.mainStageUrl,"string | undefined"));if(a.sidePanelUrl!==void 0&&typeof a.sidePanelUrl!=="string")throw new H(L("sidePanelUrl",typeof a.sidePanelUrl,"string | undefined"));if(a.additionalData!==void 0&&typeof a.additionalData!==
|
|
47
47
|
"string")throw new H(L("additionalData",typeof a.additionalData,"string | undefined"));if(Object.keys(a).length!==+!!a.mainStageUrl+ +!!a.sidePanelUrl+ +!!a.additionalData)throw new H(zc);if(Object.keys(a).length===0)throw new H(yc);}}function rd(a){const b=[];b.push(Yc(Xc(Vc(2),a.mainStageUrl),a.additionalData));b.push(Yc(Xc(Vc(1),a.sidePanelUrl),a.additionalData));return b}
|
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-869421759",
|
|
5
5
|
"repository": "googleworkspace/meet",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE",
|
|
7
7
|
"homepage": "https://developers.google.com/meet/add-ons/guides/overview",
|