@workadventure/iframe-api-typings 1.6.3 → 1.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,8 @@
1
+ import * as tg from "generic-type-guard";
2
+ export declare const isChangeZoneEvent: tg.TypeGuard<object & {
3
+ name: string;
4
+ }>;
5
+ /**
6
+ * A message sent from the game to the iFrame when a user enters or leaves a zone.
7
+ */
8
+ export declare type ChangeZoneEvent = tg.GuardedType<typeof isChangeZoneEvent>;
@@ -0,0 +1,10 @@
1
+ import * as tg from "generic-type-guard";
2
+ export declare const isColorEvent: tg.TypeGuard<object & {
3
+ red: number;
4
+ green: number;
5
+ blue: number;
6
+ }>;
7
+ /**
8
+ * A message sent from the iFrame to the game to dynamically set the outline of the player.
9
+ */
10
+ export declare type ColorEvent = tg.GuardedType<typeof isColorEvent>;
@@ -16,20 +16,24 @@ export declare const isEmbeddedWebsiteEvent: tg.TypeGuard<object & {
16
16
  y: number;
17
17
  width: number;
18
18
  height: number;
19
+ origin: "player" | "map";
20
+ scale: number;
19
21
  }>>;
20
22
  export declare const isCreateEmbeddedWebsiteEvent: tg.TypeGuard<object & {
21
23
  name: string;
22
24
  url: string;
23
25
  position: object & {
24
- x: any;
25
- y: any;
26
- width: any;
27
- height: any;
26
+ x: number;
27
+ y: number;
28
+ width: number;
29
+ height: number;
28
30
  };
29
31
  } & Partial<{
30
32
  visible: boolean;
31
33
  allowApi: boolean;
32
34
  allow: string;
35
+ origin: "player" | "map";
36
+ scale: number;
33
37
  }>>;
34
38
  /**
35
39
  * A message sent from the iFrame to the game to modify an embedded website
@@ -7,6 +7,8 @@ export declare const isGameStateEvent: tg.TypeGuard<object & {
7
7
  startLayerName: string | null;
8
8
  tags: string[];
9
9
  variables: object;
10
+ userRoomToken: string | undefined;
11
+ playerVariables: object;
10
12
  }>;
11
13
  /**
12
14
  * A message sent from the game to the iFrame when the gameState is received by the script
@@ -21,6 +21,8 @@ import type { LoadTilesetEvent } from "./LoadTilesetEvent";
21
21
  import type { MessageReferenceEvent } from "./ui/TriggerActionMessageEvent";
22
22
  import type { MenuRegisterEvent, UnregisterMenuEvent } from "./ui/MenuRegisterEvent";
23
23
  import type { ChangeLayerEvent } from "./ChangeLayerEvent";
24
+ import type { ChangeZoneEvent } from "./ChangeZoneEvent";
25
+ import type { WasCameraUpdatedEvent } from "./WasCameraUpdatedEvent";
24
26
  export interface TypedMessageEvent<T> extends MessageEvent {
25
27
  data: T;
26
28
  }
@@ -39,6 +41,7 @@ export declare type IframeEventMap = {
39
41
  displayBubble: null;
40
42
  removeBubble: null;
41
43
  onPlayerMove: undefined;
44
+ onCameraUpdate: undefined;
42
45
  showLayer: LayerEvent;
43
46
  hideLayer: LayerEvent;
44
47
  setProperty: SetPropertyEvent;
@@ -63,8 +66,11 @@ export interface IframeResponseEventMap {
63
66
  leaveEvent: EnterLeaveEvent;
64
67
  enterLayerEvent: ChangeLayerEvent;
65
68
  leaveLayerEvent: ChangeLayerEvent;
69
+ enterZoneEvent: ChangeZoneEvent;
70
+ leaveZoneEvent: ChangeZoneEvent;
66
71
  buttonClickedEvent: ButtonClickedEvent;
67
72
  hasPlayerMoved: HasPlayerMovedEvent;
73
+ wasCameraUpdated: WasCameraUpdatedEvent;
68
74
  menuItemClicked: MenuItemClickedEvent;
69
75
  setVariable: SetVariableEvent;
70
76
  messageTriggered: MessageReferenceEvent;
@@ -91,6 +97,8 @@ export declare const iframeQueryMapTypeGuards: {
91
97
  startLayerName: string | null;
92
98
  tags: string[];
93
99
  variables: object;
100
+ userRoomToken: string | undefined;
101
+ playerVariables: object;
94
102
  }>;
95
103
  };
96
104
  getMapData: {
@@ -103,6 +111,7 @@ export declare const iframeQueryMapTypeGuards: {
103
111
  query: tg.TypeGuard<object & {
104
112
  key: string;
105
113
  value: unknown;
114
+ target: "global" | "player";
106
115
  }>;
107
116
  answer: tg.TypeGuard<undefined>;
108
117
  };
@@ -159,15 +168,17 @@ export declare const iframeQueryMapTypeGuards: {
159
168
  name: string;
160
169
  url: string;
161
170
  position: object & {
162
- x: any;
163
- y: any;
164
- width: any;
165
- height: any;
171
+ x: number;
172
+ y: number;
173
+ width: number;
174
+ height: number;
166
175
  };
167
176
  } & Partial<{
168
177
  visible: boolean;
169
178
  allowApi: boolean;
170
179
  allow: string;
180
+ origin: "player" | "map";
181
+ scale: number;
171
182
  }>>;
172
183
  };
173
184
  deleteEmbeddedWebsite: {
@@ -179,18 +190,39 @@ export declare const iframeQueryMapTypeGuards: {
179
190
  name: string;
180
191
  url: string;
181
192
  position: object & {
182
- x: any;
183
- y: any;
184
- width: any;
185
- height: any;
193
+ x: number;
194
+ y: number;
195
+ width: number;
196
+ height: number;
186
197
  };
187
198
  } & Partial<{
188
199
  visible: boolean;
189
200
  allowApi: boolean;
190
201
  allow: string;
202
+ origin: "player" | "map";
203
+ scale: number;
191
204
  }>>;
192
205
  answer: tg.TypeGuard<undefined>;
193
206
  };
207
+ setPlayerOutline: {
208
+ query: tg.TypeGuard<object & {
209
+ red: number;
210
+ green: number;
211
+ blue: number;
212
+ }>;
213
+ answer: tg.TypeGuard<undefined>;
214
+ };
215
+ removePlayerOutline: {
216
+ query: tg.TypeGuard<undefined>;
217
+ answer: tg.TypeGuard<undefined>;
218
+ };
219
+ getPlayerPosition: {
220
+ query: tg.TypeGuard<undefined>;
221
+ answer: tg.TypeGuard<object & {
222
+ x: number;
223
+ y: number;
224
+ }>;
225
+ };
194
226
  };
195
227
  declare type GuardedType<T> = T extends (x: unknown) => x is infer T ? T : never;
196
228
  declare type IframeQueryMapTypeGuardsType = typeof iframeQueryMapTypeGuards;
@@ -209,9 +241,9 @@ export interface IframeQueryWrapper<T extends keyof IframeQueryMap> {
209
241
  id: number;
210
242
  query: IframeQuery<T>;
211
243
  }
212
- export declare const isIframeQueryKey: (type: string) => type is "getState" | "getMapData" | "setVariable" | "loadTileset" | "openCoWebsite" | "getCoWebsites" | "closeCoWebsite" | "closeCoWebsites" | "triggerActionMessage" | "removeActionMessage" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite";
213
- export declare const isIframeQuery: (event: any) => event is IframeQuery<"getState" | "getMapData" | "setVariable" | "loadTileset" | "openCoWebsite" | "getCoWebsites" | "closeCoWebsite" | "closeCoWebsites" | "triggerActionMessage" | "removeActionMessage" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite">;
214
- export declare const isIframeQueryWrapper: (event: any) => event is IframeQueryWrapper<"getState" | "getMapData" | "setVariable" | "loadTileset" | "openCoWebsite" | "getCoWebsites" | "closeCoWebsite" | "closeCoWebsites" | "triggerActionMessage" | "removeActionMessage" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite">;
244
+ export declare const isIframeQueryKey: (type: string) => type is "getState" | "getMapData" | "setVariable" | "loadTileset" | "openCoWebsite" | "getCoWebsites" | "closeCoWebsite" | "closeCoWebsites" | "triggerActionMessage" | "removeActionMessage" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite" | "setPlayerOutline" | "removePlayerOutline" | "getPlayerPosition";
245
+ export declare const isIframeQuery: (event: any) => event is IframeQuery<"getState" | "getMapData" | "setVariable" | "loadTileset" | "openCoWebsite" | "getCoWebsites" | "closeCoWebsite" | "closeCoWebsites" | "triggerActionMessage" | "removeActionMessage" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite" | "setPlayerOutline" | "removePlayerOutline" | "getPlayerPosition">;
246
+ export declare const isIframeQueryWrapper: (event: any) => event is IframeQueryWrapper<"getState" | "getMapData" | "setVariable" | "loadTileset" | "openCoWebsite" | "getCoWebsites" | "closeCoWebsite" | "closeCoWebsites" | "triggerActionMessage" | "removeActionMessage" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite" | "setPlayerOutline" | "removePlayerOutline" | "getPlayerPosition">;
215
247
  export interface IframeAnswerEvent<T extends keyof IframeQueryMap> {
216
248
  id: number;
217
249
  type: T;
@@ -220,7 +252,7 @@ export interface IframeAnswerEvent<T extends keyof IframeQueryMap> {
220
252
  export declare const isIframeAnswerEvent: (event: {
221
253
  type?: string;
222
254
  id?: number;
223
- }) => event is IframeAnswerEvent<"getState" | "getMapData" | "setVariable" | "loadTileset" | "openCoWebsite" | "getCoWebsites" | "closeCoWebsite" | "closeCoWebsites" | "triggerActionMessage" | "removeActionMessage" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite">;
255
+ }) => event is IframeAnswerEvent<"getState" | "getMapData" | "setVariable" | "loadTileset" | "openCoWebsite" | "getCoWebsites" | "closeCoWebsite" | "closeCoWebsites" | "triggerActionMessage" | "removeActionMessage" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite" | "setPlayerOutline" | "removePlayerOutline" | "getPlayerPosition">;
224
256
  export interface IframeErrorAnswerEvent {
225
257
  id: number;
226
258
  type: keyof IframeQueryMap;
@@ -4,8 +4,8 @@ export declare const isOpenPopupEvent: tg.TypeGuard<object & {
4
4
  targetObject: string;
5
5
  message: string;
6
6
  buttons: (object & {
7
- label: any;
8
- className: any;
7
+ label: string;
8
+ className: string | undefined;
9
9
  })[];
10
10
  }>;
11
11
  /**
@@ -2,13 +2,13 @@ import * as tg from "generic-type-guard";
2
2
  export declare const isPlaySoundEvent: tg.TypeGuard<object & {
3
3
  url: string;
4
4
  config: (object & {
5
- volume: any;
6
- loop: any;
7
- mute: any;
8
- rate: any;
9
- detune: any;
10
- seek: any;
11
- delay: any;
5
+ volume: number | undefined;
6
+ loop: boolean | undefined;
7
+ mute: boolean | undefined;
8
+ rate: number | undefined;
9
+ detune: number | undefined;
10
+ seek: number | undefined;
11
+ delay: number | undefined;
12
12
  }) | undefined;
13
13
  }>;
14
14
  /**
@@ -0,0 +1,6 @@
1
+ import * as tg from "generic-type-guard";
2
+ export declare const isPlayerPosition: tg.TypeGuard<object & {
3
+ x: number;
4
+ y: number;
5
+ }>;
6
+ export declare type PlayerPosition = tg.GuardedType<typeof isPlayerPosition>;
@@ -2,6 +2,7 @@ import * as tg from "generic-type-guard";
2
2
  export declare const isSetVariableEvent: tg.TypeGuard<object & {
3
3
  key: string;
4
4
  value: unknown;
5
+ target: "global" | "player";
5
6
  }>;
6
7
  /**
7
8
  * A message sent from the iFrame to the game to change the value of the property of the layer
@@ -10,7 +11,8 @@ export declare type SetVariableEvent = tg.GuardedType<typeof isSetVariableEvent>
10
11
  export declare const isSetVariableIframeEvent: tg.TypeGuard<object & {
11
12
  type: "setVariable";
12
13
  data: object & {
13
- key: any;
14
- value: any;
14
+ key: string;
15
+ value: unknown;
16
+ target: "global" | "player";
15
17
  };
16
18
  }>;
@@ -0,0 +1,13 @@
1
+ import * as tg from "generic-type-guard";
2
+ export declare const isWasCameraUpdatedEvent: tg.TypeGuard<object & {
3
+ x: number;
4
+ y: number;
5
+ width: number;
6
+ height: number;
7
+ zoom: number;
8
+ }>;
9
+ /**
10
+ * A message sent from the game to the iFrame to notify a movement from the camera.
11
+ */
12
+ export declare type WasCameraUpdatedEvent = tg.GuardedType<typeof isWasCameraUpdatedEvent>;
13
+ export declare type WasCameraUpdatedEventCallback = (event: WasCameraUpdatedEvent) => void;
@@ -16,7 +16,7 @@ export declare const isMenuRegisterEvent: tg.TypeGuard<object & {
16
16
  name: string;
17
17
  iframe: string | undefined;
18
18
  options: object & {
19
- allowApi: any;
19
+ allowApi: boolean;
20
20
  };
21
21
  }>;
22
22
  export declare type MenuRegisterEvent = tg.GuardedType<typeof isMenuRegisterEvent>;
@@ -2,13 +2,13 @@ import * as tg from "generic-type-guard";
2
2
  export declare const isTriggerMessageHandlerEvent: tg.PartialTypeGuard<unknown, (object & {
3
3
  type: "triggerActionMessage";
4
4
  data: object & {
5
- message: any;
6
- uuid: any;
7
- type: any;
5
+ message: string;
6
+ uuid: string;
7
+ type: "message" | "warning";
8
8
  };
9
9
  }) | (object & {
10
10
  type: "removeActionMessage";
11
11
  data: object & {
12
- uuid: any;
12
+ uuid: string;
13
13
  };
14
14
  })>;
@@ -1,6 +1,7 @@
1
1
  import { IframeQueryMap, IframeResponseEvent, IframeResponseEventMap } from "./Events/IframeEvent";
2
2
  import type { HasPlayerMovedEvent } from "./Events/HasPlayerMovedEvent";
3
3
  import type { SetVariableEvent } from "./Events/SetVariableEvent";
4
+ import type { WasCameraUpdatedEvent } from "./Events/WasCameraUpdatedEvent";
4
5
  declare type AnswererCallback<T extends keyof IframeQueryMap> = (query: IframeQueryMap[T]["query"], source: MessageEventSource | null) => IframeQueryMap[T]["answer"] | PromiseLike<IframeQueryMap[T]["answer"]>;
5
6
  /**
6
7
  * Listens to messages from iframes and turn those messages into easy to use observables.
@@ -13,8 +14,8 @@ declare class IframeListener {
13
14
  targetObject: string;
14
15
  message: string;
15
16
  buttons: (object & {
16
- label: any;
17
- className: any;
17
+ label: string;
18
+ className: string | undefined;
18
19
  })[];
19
20
  }>;
20
21
  private readonly _openTabStream;
@@ -53,13 +54,13 @@ declare class IframeListener {
53
54
  readonly playSoundStream: import("rxjs").Observable<object & {
54
55
  url: string;
55
56
  config: (object & {
56
- volume: any;
57
- loop: any;
58
- mute: any;
59
- rate: any;
60
- detune: any;
61
- seek: any;
62
- delay: any;
57
+ volume: number | undefined;
58
+ loop: boolean | undefined;
59
+ mute: boolean | undefined;
60
+ rate: number | undefined;
61
+ detune: number | undefined;
62
+ seek: number | undefined;
63
+ delay: number | undefined;
63
64
  }) | undefined;
64
65
  }>;
65
66
  private readonly _stopSoundStream;
@@ -70,6 +71,10 @@ declare class IframeListener {
70
71
  readonly loadSoundStream: import("rxjs").Observable<object & {
71
72
  url: string;
72
73
  }>;
74
+ private readonly _trackCameraUpdateStream;
75
+ readonly trackCameraUpdateStream: import("rxjs").Observable<object & {
76
+ url: string;
77
+ }>;
73
78
  private readonly _setTilesStream;
74
79
  readonly setTilesStream: import("rxjs").Observable<(object & {
75
80
  x: number;
@@ -89,6 +94,8 @@ declare class IframeListener {
89
94
  y: number;
90
95
  width: number;
91
96
  height: number;
97
+ origin: "player" | "map";
98
+ scale: number;
92
99
  }>>;
93
100
  private readonly iframes;
94
101
  private readonly iframeCloseCallbacks;
@@ -111,7 +118,10 @@ declare class IframeListener {
111
118
  sendLeaveEvent(name: string): void;
112
119
  sendEnterLayerEvent(layerName: string): void;
113
120
  sendLeaveLayerEvent(layerName: string): void;
121
+ sendEnterZoneEvent(zoneName: string): void;
122
+ sendLeaveZoneEvent(zoneName: string): void;
114
123
  hasPlayerMoved(event: HasPlayerMovedEvent): void;
124
+ sendCameraUpdated(event: WasCameraUpdatedEvent): void;
115
125
  sendButtonClickedEvent(popupId: number, buttonId: number): void;
116
126
  setVariable(setVariableEvent: SetVariableEvent): void;
117
127
  sendActionMessageTriggered(uuid: string): void;
@@ -7,11 +7,21 @@ export declare class EmbeddedWebsite {
7
7
  private _allow;
8
8
  private _allowApi;
9
9
  private _position;
10
+ private readonly origin;
11
+ private _scale;
10
12
  constructor(config: CreateEmbeddedWebsiteEvent);
13
+ get url(): string;
11
14
  set url(url: string);
15
+ get visible(): boolean;
12
16
  set visible(visible: boolean);
17
+ get x(): number;
13
18
  set x(x: number);
19
+ get y(): number;
14
20
  set y(y: number);
21
+ get width(): number;
15
22
  set width(width: number);
23
+ get height(): number;
16
24
  set height(height: number);
25
+ get scale(): number;
26
+ set scale(scale: number);
17
27
  }
@@ -0,0 +1,9 @@
1
+ import { IframeApiContribution } from "./IframeApiContribution";
2
+ import { Subject } from "rxjs";
3
+ import type { WasCameraUpdatedEvent } from "../Events/WasCameraUpdatedEvent";
4
+ export declare class WorkAdventureCameraCommands extends IframeApiContribution<WorkAdventureCameraCommands> {
5
+ callbacks: import("./IframeApiContribution").IframeCallbackContribution<keyof import("../Events/IframeEvent").IframeResponseEventMap>[];
6
+ onCameraUpdate(): Subject<WasCameraUpdatedEvent>;
7
+ }
8
+ declare const _default: WorkAdventureCameraCommands;
9
+ export default _default;
@@ -2,13 +2,25 @@ import { IframeApiContribution } from "./IframeApiContribution";
2
2
  import type { HasPlayerMovedEventCallback } from "../Events/HasPlayerMovedEvent";
3
3
  export declare const setPlayerName: (name: string) => void;
4
4
  export declare const setTags: (_tags: string[]) => void;
5
+ export declare const setUserRoomToken: (token: string | undefined) => void;
5
6
  export declare const setUuid: (_uuid: string | undefined) => void;
6
7
  export declare class WorkadventurePlayerCommands extends IframeApiContribution<WorkadventurePlayerCommands> {
8
+ readonly state: import("./state").WorkadventureStateCommands & {
9
+ [key: string]: unknown;
10
+ };
7
11
  callbacks: import("./IframeApiContribution").IframeCallbackContribution<keyof import("../Events/IframeEvent").IframeResponseEventMap>[];
8
12
  onPlayerMove(callback: HasPlayerMovedEventCallback): void;
9
13
  get name(): string;
10
14
  get tags(): string[];
11
15
  get id(): string | undefined;
16
+ getPosition(): Promise<Position>;
17
+ get userRoomToken(): string | undefined;
18
+ setOutlineColor(red: number, green: number, blue: number): Promise<void>;
19
+ removeOutlineColor(): Promise<void>;
12
20
  }
21
+ export declare type Position = {
22
+ x: number;
23
+ y: number;
24
+ };
13
25
  declare const _default: WorkadventurePlayerCommands;
14
26
  export default _default;
@@ -1,14 +1,18 @@
1
1
  import { Observable } from "rxjs";
2
2
  import { IframeApiContribution } from "./IframeApiContribution";
3
- export declare const initVariables: (_variables: Map<string, unknown>) => void;
4
3
  export declare class WorkadventureStateCommands extends IframeApiContribution<WorkadventureStateCommands> {
4
+ private target;
5
+ private setVariableResolvers;
6
+ private variables;
7
+ private variableSubscribers;
8
+ constructor(target: "global" | "player");
5
9
  callbacks: import("./IframeApiContribution").IframeCallbackContribution<keyof import("../Events/IframeEvent").IframeResponseEventMap>[];
10
+ initVariables(_variables: Map<string, unknown>): void;
6
11
  saveVariable(key: string, value: unknown): Promise<void>;
7
12
  loadVariable(key: string): unknown;
8
13
  hasVariable(key: string): boolean;
9
14
  onVariableChange(key: string): Observable<unknown>;
10
15
  }
11
- declare const proxyCommand: WorkadventureStateCommands & {
16
+ export declare function createState(target: "global" | "player"): WorkadventureStateCommands & {
12
17
  [key: string]: unknown;
13
18
  };
14
- export default proxyCommand;
package/iframe_api.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { CoWebsite } from "./Api/iframe/nav";
1
2
  import type { ButtonDescriptor } from "./Api/iframe/Ui/ButtonDescriptor";
2
3
  import type { Popup } from "./Api/iframe/Ui/Popup";
3
4
  import type { Sound } from "./Api/iframe/Sound/Sound";
@@ -9,6 +10,7 @@ declare const wa: {
9
10
  sound: import("./Api/iframe/sound").WorkadventureSoundCommands;
10
11
  room: import("./Api/iframe/room").WorkadventureRoomCommands;
11
12
  player: import("./Api/iframe/player").WorkadventurePlayerCommands;
13
+ camera: import("./Api/iframe/camera").WorkAdventureCameraCommands;
12
14
  state: import("./Api/iframe/state").WorkadventureStateCommands & {
13
15
  [key: string]: unknown;
14
16
  };
@@ -52,11 +54,11 @@ declare const wa: {
52
54
  /**
53
55
  * @deprecated Use WA.nav.openCoWebSite instead
54
56
  */
55
- openCoWebSite(url: string, allowApi?: boolean, allowPolicy?: string): void;
57
+ openCoWebSite(url: string, allowApi?: boolean, allowPolicy?: string): Promise<CoWebsite>;
56
58
  /**
57
59
  * @deprecated Use WA.nav.closeCoWebSite instead
58
60
  */
59
- closeCoWebSite(): void;
61
+ closeCoWebSite(): Promise<void>;
60
62
  /**
61
63
  * @deprecated Use WA.ui.openPopup instead
62
64
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@workadventure/iframe-api-typings",
3
- "version": "v1.6.3",
3
+ "version": "v1.7.2",
4
4
  "description": "Typescript typings for WorkAdventure iFrame API",
5
5
  "main": "iframe_api.js",
6
6
  "types": "iframe_api.d.ts",