@workadventure/iframe-api-typings 1.7.1 → 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.
@@ -16,6 +16,8 @@ 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;
@@ -30,6 +32,8 @@ export declare const isCreateEmbeddedWebsiteEvent: tg.TypeGuard<object & {
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
@@ -8,6 +8,7 @@ export declare const isGameStateEvent: tg.TypeGuard<object & {
8
8
  tags: string[];
9
9
  variables: object;
10
10
  userRoomToken: string | undefined;
11
+ playerVariables: object;
11
12
  }>;
12
13
  /**
13
14
  * A message sent from the game to the iFrame when the gameState is received by the script
@@ -22,6 +22,7 @@ import type { MessageReferenceEvent } from "./ui/TriggerActionMessageEvent";
22
22
  import type { MenuRegisterEvent, UnregisterMenuEvent } from "./ui/MenuRegisterEvent";
23
23
  import type { ChangeLayerEvent } from "./ChangeLayerEvent";
24
24
  import type { ChangeZoneEvent } from "./ChangeZoneEvent";
25
+ import type { WasCameraUpdatedEvent } from "./WasCameraUpdatedEvent";
25
26
  export interface TypedMessageEvent<T> extends MessageEvent {
26
27
  data: T;
27
28
  }
@@ -40,6 +41,7 @@ export declare type IframeEventMap = {
40
41
  displayBubble: null;
41
42
  removeBubble: null;
42
43
  onPlayerMove: undefined;
44
+ onCameraUpdate: undefined;
43
45
  showLayer: LayerEvent;
44
46
  hideLayer: LayerEvent;
45
47
  setProperty: SetPropertyEvent;
@@ -68,6 +70,7 @@ export interface IframeResponseEventMap {
68
70
  leaveZoneEvent: ChangeZoneEvent;
69
71
  buttonClickedEvent: ButtonClickedEvent;
70
72
  hasPlayerMoved: HasPlayerMovedEvent;
73
+ wasCameraUpdated: WasCameraUpdatedEvent;
71
74
  menuItemClicked: MenuItemClickedEvent;
72
75
  setVariable: SetVariableEvent;
73
76
  messageTriggered: MessageReferenceEvent;
@@ -95,6 +98,7 @@ export declare const iframeQueryMapTypeGuards: {
95
98
  tags: string[];
96
99
  variables: object;
97
100
  userRoomToken: string | undefined;
101
+ playerVariables: object;
98
102
  }>;
99
103
  };
100
104
  getMapData: {
@@ -107,6 +111,7 @@ export declare const iframeQueryMapTypeGuards: {
107
111
  query: tg.TypeGuard<object & {
108
112
  key: string;
109
113
  value: unknown;
114
+ target: "global" | "player";
110
115
  }>;
111
116
  answer: tg.TypeGuard<undefined>;
112
117
  };
@@ -172,6 +177,8 @@ export declare const iframeQueryMapTypeGuards: {
172
177
  visible: boolean;
173
178
  allowApi: boolean;
174
179
  allow: string;
180
+ origin: "player" | "map";
181
+ scale: number;
175
182
  }>>;
176
183
  };
177
184
  deleteEmbeddedWebsite: {
@@ -192,6 +199,8 @@ export declare const iframeQueryMapTypeGuards: {
192
199
  visible: boolean;
193
200
  allowApi: boolean;
194
201
  allow: string;
202
+ origin: "player" | "map";
203
+ scale: number;
195
204
  }>>;
196
205
  answer: tg.TypeGuard<undefined>;
197
206
  };
@@ -207,6 +216,13 @@ export declare const iframeQueryMapTypeGuards: {
207
216
  query: tg.TypeGuard<undefined>;
208
217
  answer: tg.TypeGuard<undefined>;
209
218
  };
219
+ getPlayerPosition: {
220
+ query: tg.TypeGuard<undefined>;
221
+ answer: tg.TypeGuard<object & {
222
+ x: number;
223
+ y: number;
224
+ }>;
225
+ };
210
226
  };
211
227
  declare type GuardedType<T> = T extends (x: unknown) => x is infer T ? T : never;
212
228
  declare type IframeQueryMapTypeGuardsType = typeof iframeQueryMapTypeGuards;
@@ -225,9 +241,9 @@ export interface IframeQueryWrapper<T extends keyof IframeQueryMap> {
225
241
  id: number;
226
242
  query: IframeQuery<T>;
227
243
  }
228
- export declare const isIframeQueryKey: (type: string) => type is "getState" | "getMapData" | "setVariable" | "loadTileset" | "openCoWebsite" | "getCoWebsites" | "closeCoWebsite" | "closeCoWebsites" | "triggerActionMessage" | "removeActionMessage" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite" | "setPlayerOutline" | "removePlayerOutline";
229
- export declare const isIframeQuery: (event: any) => event is IframeQuery<"getState" | "getMapData" | "setVariable" | "loadTileset" | "openCoWebsite" | "getCoWebsites" | "closeCoWebsite" | "closeCoWebsites" | "triggerActionMessage" | "removeActionMessage" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite" | "setPlayerOutline" | "removePlayerOutline">;
230
- export declare const isIframeQueryWrapper: (event: any) => event is IframeQueryWrapper<"getState" | "getMapData" | "setVariable" | "loadTileset" | "openCoWebsite" | "getCoWebsites" | "closeCoWebsite" | "closeCoWebsites" | "triggerActionMessage" | "removeActionMessage" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite" | "setPlayerOutline" | "removePlayerOutline">;
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">;
231
247
  export interface IframeAnswerEvent<T extends keyof IframeQueryMap> {
232
248
  id: number;
233
249
  type: T;
@@ -236,7 +252,7 @@ export interface IframeAnswerEvent<T extends keyof IframeQueryMap> {
236
252
  export declare const isIframeAnswerEvent: (event: {
237
253
  type?: string;
238
254
  id?: number;
239
- }) => event is IframeAnswerEvent<"getState" | "getMapData" | "setVariable" | "loadTileset" | "openCoWebsite" | "getCoWebsites" | "closeCoWebsite" | "closeCoWebsites" | "triggerActionMessage" | "removeActionMessage" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite" | "setPlayerOutline" | "removePlayerOutline">;
255
+ }) => event is IframeAnswerEvent<"getState" | "getMapData" | "setVariable" | "loadTileset" | "openCoWebsite" | "getCoWebsites" | "closeCoWebsite" | "closeCoWebsites" | "triggerActionMessage" | "removeActionMessage" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite" | "setPlayerOutline" | "removePlayerOutline" | "getPlayerPosition">;
240
256
  export interface IframeErrorAnswerEvent {
241
257
  id: number;
242
258
  type: keyof IframeQueryMap;
@@ -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
@@ -12,5 +13,6 @@ export declare const isSetVariableIframeEvent: tg.TypeGuard<object & {
12
13
  data: object & {
13
14
  key: string;
14
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;
@@ -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.
@@ -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;
@@ -114,6 +121,7 @@ declare class IframeListener {
114
121
  sendEnterZoneEvent(zoneName: string): void;
115
122
  sendLeaveZoneEvent(zoneName: string): void;
116
123
  hasPlayerMoved(event: HasPlayerMovedEvent): void;
124
+ sendCameraUpdated(event: WasCameraUpdatedEvent): void;
117
125
  sendButtonClickedEvent(popupId: number, buttonId: number): void;
118
126
  setVariable(setVariableEvent: SetVariableEvent): void;
119
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;
@@ -5,14 +5,22 @@ export declare const setTags: (_tags: string[]) => void;
5
5
  export declare const setUserRoomToken: (token: string | undefined) => void;
6
6
  export declare const setUuid: (_uuid: string | undefined) => void;
7
7
  export declare class WorkadventurePlayerCommands extends IframeApiContribution<WorkadventurePlayerCommands> {
8
+ readonly state: import("./state").WorkadventureStateCommands & {
9
+ [key: string]: unknown;
10
+ };
8
11
  callbacks: import("./IframeApiContribution").IframeCallbackContribution<keyof import("../Events/IframeEvent").IframeResponseEventMap>[];
9
12
  onPlayerMove(callback: HasPlayerMovedEventCallback): void;
10
13
  get name(): string;
11
14
  get tags(): string[];
12
15
  get id(): string | undefined;
16
+ getPosition(): Promise<Position>;
13
17
  get userRoomToken(): string | undefined;
14
18
  setOutlineColor(red: number, green: number, blue: number): Promise<void>;
15
19
  removeOutlineColor(): Promise<void>;
16
20
  }
21
+ export declare type Position = {
22
+ x: number;
23
+ y: number;
24
+ };
17
25
  declare const _default: WorkadventurePlayerCommands;
18
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.7.1",
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",