@workadventure/iframe-api-typings 1.22.2 → 1.23.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@workadventure/iframe-api-typings",
3
- "version": "v1.22.2",
3
+ "version": "v1.23.1",
4
4
  "description": "Typescript typings for WorkAdventure iFrame API",
5
5
  "main": "iframe_api.js",
6
6
  "types": "iframe_api.d.ts",
@@ -1560,6 +1560,34 @@ export declare const isIframeEventWrapper: z.ZodUnion<[z.ZodObject<{
1560
1560
  }, {
1561
1561
  type: "restoreRoomList";
1562
1562
  data?: undefined;
1563
+ }>, z.ZodObject<{
1564
+ type: z.ZodLiteral<"startListeningToStreamInBubble">;
1565
+ data: z.ZodObject<{
1566
+ sampleRate: z.ZodNumber;
1567
+ }, "strip", z.ZodTypeAny, {
1568
+ sampleRate: number;
1569
+ }, {
1570
+ sampleRate: number;
1571
+ }>;
1572
+ }, "strip", z.ZodTypeAny, {
1573
+ type: "startListeningToStreamInBubble";
1574
+ data: {
1575
+ sampleRate: number;
1576
+ };
1577
+ }, {
1578
+ type: "startListeningToStreamInBubble";
1579
+ data: {
1580
+ sampleRate: number;
1581
+ };
1582
+ }>, z.ZodObject<{
1583
+ type: z.ZodLiteral<"stopListeningToStreamInBubble">;
1584
+ data: z.ZodUndefined;
1585
+ }, "strip", z.ZodTypeAny, {
1586
+ type: "stopListeningToStreamInBubble";
1587
+ data?: undefined;
1588
+ }, {
1589
+ type: "stopListeningToStreamInBubble";
1590
+ data?: undefined;
1563
1591
  }>]>;
1564
1592
  export type IframeEvent = z.infer<typeof isIframeEventWrapper>;
1565
1593
  export declare const isIframeResponseEvent: z.ZodUnion<[z.ZodObject<{
@@ -3283,6 +3311,25 @@ export declare const isIframeResponseEvent: z.ZodUnion<[z.ZodObject<{
3283
3311
  name: string;
3284
3312
  uuid: string;
3285
3313
  };
3314
+ }>, z.ZodObject<{
3315
+ type: z.ZodLiteral<"appendPCMData">;
3316
+ data: z.ZodObject<{
3317
+ data: z.ZodType<Float32Array, z.ZodTypeDef, Float32Array>;
3318
+ }, "strip", z.ZodTypeAny, {
3319
+ data: Float32Array;
3320
+ }, {
3321
+ data: Float32Array;
3322
+ }>;
3323
+ }, "strip", z.ZodTypeAny, {
3324
+ type: "appendPCMData";
3325
+ data: {
3326
+ data: Float32Array;
3327
+ };
3328
+ }, {
3329
+ type: "appendPCMData";
3330
+ data: {
3331
+ data: Float32Array;
3332
+ };
3286
3333
  }>]>;
3287
3334
  export type IframeResponseEvent = z.infer<typeof isIframeResponseEvent>;
3288
3335
  export declare const isLookingLikeIframeEventWrapper: z.ZodObject<{
@@ -4207,6 +4254,34 @@ export declare const iframeQueryMapTypeGuards: {
4207
4254
  }>;
4208
4255
  answer: z.ZodUndefined;
4209
4256
  };
4257
+ startStreamInBubble: {
4258
+ query: z.ZodObject<{
4259
+ sampleRate: z.ZodNumber;
4260
+ }, "strip", z.ZodTypeAny, {
4261
+ sampleRate: number;
4262
+ }, {
4263
+ sampleRate: number;
4264
+ }>;
4265
+ answer: z.ZodUndefined;
4266
+ };
4267
+ stopStreamInBubble: {
4268
+ query: z.ZodUndefined;
4269
+ answer: z.ZodUndefined;
4270
+ };
4271
+ appendPCMData: {
4272
+ query: z.ZodObject<{
4273
+ data: z.ZodType<Float32Array, z.ZodTypeDef, Float32Array>;
4274
+ }, "strip", z.ZodTypeAny, {
4275
+ data: Float32Array;
4276
+ }, {
4277
+ data: Float32Array;
4278
+ }>;
4279
+ answer: z.ZodUndefined;
4280
+ };
4281
+ resetAudioBuffer: {
4282
+ query: z.ZodUndefined;
4283
+ answer: z.ZodUndefined;
4284
+ };
4210
4285
  followMe: {
4211
4286
  query: z.ZodUndefined;
4212
4287
  answer: z.ZodUndefined;
@@ -4215,6 +4290,16 @@ export declare const iframeQueryMapTypeGuards: {
4215
4290
  query: z.ZodUndefined;
4216
4291
  answer: z.ZodUndefined;
4217
4292
  };
4293
+ getWamMapData: {
4294
+ query: z.ZodUndefined;
4295
+ answer: z.ZodObject<{
4296
+ data: z.ZodUnknown;
4297
+ }, "strip", z.ZodTypeAny, {
4298
+ data?: unknown;
4299
+ }, {
4300
+ data?: unknown;
4301
+ }>;
4302
+ };
4218
4303
  };
4219
4304
  type IframeQueryMapTypeGuardsType = typeof iframeQueryMapTypeGuards;
4220
4305
  type UnknownToVoid<T> = undefined extends T ? void : T;
@@ -4232,15 +4317,15 @@ export interface IframeQueryWrapper<T extends keyof IframeQueryMap> {
4232
4317
  id: number;
4233
4318
  query: IframeQuery<T>;
4234
4319
  }
4235
- export declare const isIframeQueryKey: (type: string) => type is "setVariable" | "triggerActionMessage" | "removeActionMessage" | "dispatchEvent" | "modifyArea" | "setPlayerVariable" | "getState" | "getMapData" | "loadTileset" | "openCoWebsite" | "getCoWebsites" | "closeCoWebsite" | "closeCoWebsites" | "goToLogin" | "triggerPlayerMessage" | "removePlayerMessage" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite" | "createArea" | "getArea" | "deleteArea" | "setPlayerOutline" | "removePlayerOutline" | "getPlayerPosition" | "movePlayerTo" | "teleportPlayerTo" | "openUIWebsite" | "closeUIWebsite" | "getUIWebsites" | "getUIWebsiteById" | "enablePlayersTracking" | "getWoka" | "playSoundInBubble" | "followMe" | "stopLeading";
4236
- export declare const isIframeQuery: (event: any) => event is IframeQuery<"setVariable" | "triggerActionMessage" | "removeActionMessage" | "dispatchEvent" | "modifyArea" | "setPlayerVariable" | "getState" | "getMapData" | "loadTileset" | "openCoWebsite" | "getCoWebsites" | "closeCoWebsite" | "closeCoWebsites" | "goToLogin" | "triggerPlayerMessage" | "removePlayerMessage" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite" | "createArea" | "getArea" | "deleteArea" | "setPlayerOutline" | "removePlayerOutline" | "getPlayerPosition" | "movePlayerTo" | "teleportPlayerTo" | "openUIWebsite" | "closeUIWebsite" | "getUIWebsites" | "getUIWebsiteById" | "enablePlayersTracking" | "getWoka" | "playSoundInBubble" | "followMe" | "stopLeading">;
4237
- export declare const isIframeQueryWrapper: (event: any) => event is IframeQueryWrapper<"setVariable" | "triggerActionMessage" | "removeActionMessage" | "dispatchEvent" | "modifyArea" | "setPlayerVariable" | "getState" | "getMapData" | "loadTileset" | "openCoWebsite" | "getCoWebsites" | "closeCoWebsite" | "closeCoWebsites" | "goToLogin" | "triggerPlayerMessage" | "removePlayerMessage" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite" | "createArea" | "getArea" | "deleteArea" | "setPlayerOutline" | "removePlayerOutline" | "getPlayerPosition" | "movePlayerTo" | "teleportPlayerTo" | "openUIWebsite" | "closeUIWebsite" | "getUIWebsites" | "getUIWebsiteById" | "enablePlayersTracking" | "getWoka" | "playSoundInBubble" | "followMe" | "stopLeading">;
4320
+ export declare const isIframeQueryKey: (type: string) => type is "setVariable" | "triggerActionMessage" | "removeActionMessage" | "dispatchEvent" | "modifyArea" | "setPlayerVariable" | "appendPCMData" | "getState" | "getMapData" | "loadTileset" | "openCoWebsite" | "getCoWebsites" | "closeCoWebsite" | "closeCoWebsites" | "goToLogin" | "triggerPlayerMessage" | "removePlayerMessage" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite" | "createArea" | "getArea" | "deleteArea" | "setPlayerOutline" | "removePlayerOutline" | "getPlayerPosition" | "movePlayerTo" | "teleportPlayerTo" | "openUIWebsite" | "closeUIWebsite" | "getUIWebsites" | "getUIWebsiteById" | "enablePlayersTracking" | "getWoka" | "playSoundInBubble" | "startStreamInBubble" | "stopStreamInBubble" | "resetAudioBuffer" | "followMe" | "stopLeading" | "getWamMapData";
4321
+ export declare const isIframeQuery: (event: any) => event is IframeQuery<"setVariable" | "triggerActionMessage" | "removeActionMessage" | "dispatchEvent" | "modifyArea" | "setPlayerVariable" | "appendPCMData" | "getState" | "getMapData" | "loadTileset" | "openCoWebsite" | "getCoWebsites" | "closeCoWebsite" | "closeCoWebsites" | "goToLogin" | "triggerPlayerMessage" | "removePlayerMessage" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite" | "createArea" | "getArea" | "deleteArea" | "setPlayerOutline" | "removePlayerOutline" | "getPlayerPosition" | "movePlayerTo" | "teleportPlayerTo" | "openUIWebsite" | "closeUIWebsite" | "getUIWebsites" | "getUIWebsiteById" | "enablePlayersTracking" | "getWoka" | "playSoundInBubble" | "startStreamInBubble" | "stopStreamInBubble" | "resetAudioBuffer" | "followMe" | "stopLeading" | "getWamMapData">;
4322
+ export declare const isIframeQueryWrapper: (event: any) => event is IframeQueryWrapper<"setVariable" | "triggerActionMessage" | "removeActionMessage" | "dispatchEvent" | "modifyArea" | "setPlayerVariable" | "appendPCMData" | "getState" | "getMapData" | "loadTileset" | "openCoWebsite" | "getCoWebsites" | "closeCoWebsite" | "closeCoWebsites" | "goToLogin" | "triggerPlayerMessage" | "removePlayerMessage" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite" | "createArea" | "getArea" | "deleteArea" | "setPlayerOutline" | "removePlayerOutline" | "getPlayerPosition" | "movePlayerTo" | "teleportPlayerTo" | "openUIWebsite" | "closeUIWebsite" | "getUIWebsites" | "getUIWebsiteById" | "enablePlayersTracking" | "getWoka" | "playSoundInBubble" | "startStreamInBubble" | "stopStreamInBubble" | "resetAudioBuffer" | "followMe" | "stopLeading" | "getWamMapData">;
4238
4323
  export interface IframeAnswerEvent<T extends keyof IframeQueryMap> {
4239
4324
  id: number;
4240
4325
  type: T;
4241
4326
  data: IframeQueryMap[T]["answer"];
4242
4327
  }
4243
- export declare const isIframeAnswerEvent: (event: any) => event is IframeAnswerEvent<"setVariable" | "triggerActionMessage" | "removeActionMessage" | "dispatchEvent" | "modifyArea" | "setPlayerVariable" | "getState" | "getMapData" | "loadTileset" | "openCoWebsite" | "getCoWebsites" | "closeCoWebsite" | "closeCoWebsites" | "goToLogin" | "triggerPlayerMessage" | "removePlayerMessage" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite" | "createArea" | "getArea" | "deleteArea" | "setPlayerOutline" | "removePlayerOutline" | "getPlayerPosition" | "movePlayerTo" | "teleportPlayerTo" | "openUIWebsite" | "closeUIWebsite" | "getUIWebsites" | "getUIWebsiteById" | "enablePlayersTracking" | "getWoka" | "playSoundInBubble" | "followMe" | "stopLeading">;
4328
+ export declare const isIframeAnswerEvent: (event: any) => event is IframeAnswerEvent<"setVariable" | "triggerActionMessage" | "removeActionMessage" | "dispatchEvent" | "modifyArea" | "setPlayerVariable" | "appendPCMData" | "getState" | "getMapData" | "loadTileset" | "openCoWebsite" | "getCoWebsites" | "closeCoWebsite" | "closeCoWebsites" | "goToLogin" | "triggerPlayerMessage" | "removePlayerMessage" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite" | "createArea" | "getArea" | "deleteArea" | "setPlayerOutline" | "removePlayerOutline" | "getPlayerPosition" | "movePlayerTo" | "teleportPlayerTo" | "openUIWebsite" | "closeUIWebsite" | "getUIWebsites" | "getUIWebsiteById" | "enablePlayersTracking" | "getWoka" | "playSoundInBubble" | "startStreamInBubble" | "stopStreamInBubble" | "resetAudioBuffer" | "followMe" | "stopLeading" | "getWamMapData">;
4244
4329
  export declare const isIframeErrorAnswerEvent: z.ZodObject<{
4245
4330
  id: z.ZodNumber;
4246
4331
  type: z.ZodString;
@@ -0,0 +1,12 @@
1
+ import { z } from "zod";
2
+ export declare const isAppendPCMDataEvent: z.ZodObject<{
3
+ data: z.ZodType<Float32Array, z.ZodTypeDef, Float32Array>;
4
+ }, "strip", z.ZodTypeAny, {
5
+ data: Float32Array;
6
+ }, {
7
+ data: Float32Array;
8
+ }>;
9
+ /**
10
+ * Appends PCM data to the stream played to all players in the current bubble.
11
+ */
12
+ export type AppendPCMDataEvent = z.infer<typeof isAppendPCMDataEvent>;
@@ -0,0 +1,13 @@
1
+ import { z } from "zod";
2
+ export declare const isStartStreamInBubbleEvent: z.ZodObject<{
3
+ sampleRate: z.ZodNumber;
4
+ }, "strip", z.ZodTypeAny, {
5
+ sampleRate: number;
6
+ }, {
7
+ sampleRate: number;
8
+ }>;
9
+ /**
10
+ * A message sent from the iFrame to the game to start a stream to all starters in a bubble.
11
+ * The sampleRate is the sample rate of the audio stream expressed in Hertz.
12
+ */
13
+ export type StartStreamInBubbleEvent = z.infer<typeof isStartStreamInBubbleEvent>;
@@ -0,0 +1,12 @@
1
+ import { z } from "zod";
2
+ export declare const isWamMapDataEvent: z.ZodObject<{
3
+ data: z.ZodUnknown;
4
+ }, "strip", z.ZodTypeAny, {
5
+ data?: unknown;
6
+ }, {
7
+ data?: unknown;
8
+ }>;
9
+ /**
10
+ * A message sent from the game to the iFrame with the content of the WAM file. We don't type the content of the WAM file for performance reasons.
11
+ */
12
+ export type MapDataEvent = z.infer<typeof isWamMapDataEvent>;
@@ -1,10 +1,10 @@
1
1
  import type { IframeEvent, IframeQuery, IframeQueryMap } from "../Events/IframeEvent";
2
- export declare function sendToWorkadventure(content: IframeEvent): void;
2
+ export declare function sendToWorkadventure(content: IframeEvent, transfer?: Transferable[]): void;
3
3
  export declare const answerPromises: Map<number, {
4
4
  resolve: (value: IframeQueryMap[keyof IframeQueryMap]["answer"] | PromiseLike<IframeQueryMap[keyof IframeQueryMap]["answer"]>) => void;
5
5
  reject: (reason?: any) => void;
6
6
  }>;
7
- export declare function queryWorkadventure<T extends keyof IframeQueryMap>(content: IframeQuery<T>): Promise<IframeQueryMap[T]["answer"]>;
7
+ export declare function queryWorkadventure<T extends keyof IframeQueryMap>(content: IframeQuery<T>, transfer?: Transferable[]): Promise<IframeQueryMap[T]["answer"]>;
8
8
  /**
9
9
  * !! be aware that the implemented attributes (addMethodsAtRoot and subObjectIdentifier) must be readonly
10
10
  *
@@ -0,0 +1,12 @@
1
+ import { AreaData } from "@workadventure/map-editor";
2
+ export interface MapEditorArea {
3
+ id: string;
4
+ name: string;
5
+ description: string | undefined;
6
+ x: number;
7
+ y: number;
8
+ width: number;
9
+ height: number;
10
+ searchable: boolean | undefined;
11
+ }
12
+ export declare function toMapEditorArea(area: AreaData): MapEditorArea;
@@ -0,0 +1,5 @@
1
+ export declare class AudioStream {
2
+ appendAudioData(float32Array: Float32Array): Promise<void>;
3
+ resetAudioBuffer(): Promise<void>;
4
+ close(): Promise<void>;
5
+ }
@@ -1,6 +1,7 @@
1
- import { Subject } from "rxjs";
1
+ import { Observable, Subject } from "rxjs";
2
2
  import { IframeApiContribution } from "../IframeApiContribution";
3
3
  import { RemotePlayer } from "../Players/RemotePlayer";
4
+ import { AudioStream } from "./AudioStream";
4
5
  export declare class WorkadventureProximityMeetingCommands extends IframeApiContribution<WorkadventureProximityMeetingCommands> {
5
6
  private joinStream;
6
7
  private participantJoinStream;
@@ -8,6 +9,7 @@ export declare class WorkadventureProximityMeetingCommands extends IframeApiCont
8
9
  private followedStream;
9
10
  private unfollowedStream;
10
11
  private leaveStream;
12
+ private pcmDataStream;
11
13
  callbacks: ({
12
14
  type: "joinProximityMeetingEvent";
13
15
  callback: (event: {
@@ -96,6 +98,11 @@ export declare class WorkadventureProximityMeetingCommands extends IframeApiCont
96
98
  chatID?: string | null | undefined;
97
99
  };
98
100
  }) => void;
101
+ } | {
102
+ type: "appendPCMData";
103
+ callback: (event: {
104
+ data: Float32Array;
105
+ }) => void;
99
106
  })[];
100
107
  /**
101
108
  * Detecting when the user enter on a meeting.
@@ -128,6 +135,18 @@ export declare class WorkadventureProximityMeetingCommands extends IframeApiCont
128
135
  * {@link https://docs.workadventu.re/developer/map-scripting/references/api-player/#playing-a-sound-to-players-in-the-same-meeting | Website documentation}
129
136
  */
130
137
  playSound(url: string): Promise<void>;
138
+ /**
139
+ * Starts an audio stream played to all players in the current meeting.
140
+ * {@link https://docs.workadventu.re/developer/map-scripting/references/api-player/#audio-streams | Website documentation}
141
+ * @param {number} sampleRate - The sample rate of the audio stream expressed in Hertz.
142
+ */
143
+ startAudioStream(sampleRate: number): Promise<AudioStream>;
144
+ /**
145
+ * Listen to the audio stream played sent by all players.
146
+ * The voice of all players in the bubble is merged in a single stream that is regularly sent to the callback.
147
+ * @param {number} sampleRate - The sample rate of the audio stream expressed in Hertz.
148
+ */
149
+ listenToAudioStream(sampleRate: number): Observable<Float32Array>;
131
150
  /**
132
151
  * Ask all players in the current meeting to follow the player.
133
152
  * Note that unlike with the "follow" mode in the UI, the other players will automatically follow the player.
@@ -31,7 +31,7 @@ export declare class WorkadventureAreaCommands extends IframeApiContribution<Wor
31
31
  */
32
32
  get(name: string): Promise<Area>;
33
33
  /**
34
- * Delete Area by it's name.
34
+ * Delete Area by its name.
35
35
  * {@link https://docs.workadventu.re/map-building/api-room.md#delete-area | Website documentation}
36
36
  *
37
37
  * @param {string} name Area name
@@ -1,5 +1,6 @@
1
1
  import type { Observable } from "rxjs";
2
2
  import { IframeApiContribution } from "./IframeApiContribution";
3
+ import { MapEditorArea } from "./MapEditor/MapEditorArea";
3
4
  declare class WorkadventureMapEditorAreaCommands extends IframeApiContribution<WorkadventureMapEditorAreaCommands> {
4
5
  callbacks: ({
5
6
  type: "enterMapEditorAreaEvent";
@@ -28,6 +29,20 @@ declare class WorkadventureMapEditorAreaCommands extends IframeApiContribution<W
28
29
  * @returns {Subject<void>} An observable fired when someone leaves the area
29
30
  */
30
31
  onLeave(areaName: string): Observable<void>;
32
+ private wamMapCache;
33
+ /**
34
+ * Returns a promise that resolves to the WAM map file.
35
+ * The WAM is cached in memory.
36
+ *
37
+ * @returns {Promise<WAMFileFormat>} Map in Tiled JSON format
38
+ */
39
+ private getWamMap;
40
+ /**
41
+ * Returns a list of areas defined in the map editor.
42
+ *
43
+ * @returns {Promise<MapEditorArea[]>} List of areas
44
+ */
45
+ list(): Promise<MapEditorArea[]>;
31
46
  }
32
47
  export declare class WorkadventureMapEditorCommands extends IframeApiContribution<WorkadventureMapEditorCommands> {
33
48
  callbacks: never[];