@workadventure/iframe-api-typings 1.5.6 → 1.6.0

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 isChangeLayerEvent: 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 layer.
7
+ */
8
+ export declare type ChangeLayerEvent = tg.GuardedType<typeof isChangeLayerEvent>;
@@ -0,0 +1,8 @@
1
+ import * as tg from "generic-type-guard";
2
+ export declare const isCloseCoWebsite: tg.TypeGuard<object & {
3
+ id: string | undefined;
4
+ }>;
5
+ /**
6
+ * A message sent from the iFrame to the game to add a message in the chat.
7
+ */
8
+ export declare type CloseCoWebsiteEvent = tg.GuardedType<typeof isCloseCoWebsite>;
@@ -4,6 +4,8 @@ export declare const isHasPlayerMovedEvent: tg.TypeGuard<object & {
4
4
  moving: boolean;
5
5
  x: number;
6
6
  y: number;
7
+ oldX: number | undefined;
8
+ oldY: number | undefined;
7
9
  }>;
8
10
  /**
9
11
  * A message sent from the game to the iFrame to notify a movement from the current player.
@@ -5,7 +5,6 @@ import type { ClosePopupEvent } from "./ClosePopupEvent";
5
5
  import type { EnterLeaveEvent } from "./EnterLeaveEvent";
6
6
  import type { GoToPageEvent } from "./GoToPageEvent";
7
7
  import type { LoadPageEvent } from "./LoadPageEvent";
8
- import type { OpenCoWebSiteEvent } from "./OpenCoWebSiteEvent";
9
8
  import type { OpenPopupEvent } from "./OpenPopupEvent";
10
9
  import type { OpenTabEvent } from "./OpenTabEvent";
11
10
  import type { UserInputChatEvent } from "./UserInputChatEvent";
@@ -21,6 +20,7 @@ import type { EmbeddedWebsite } from "../iframe/Room/EmbeddedWebsite";
21
20
  import type { LoadTilesetEvent } from "./LoadTilesetEvent";
22
21
  import type { MessageReferenceEvent } from "./ui/TriggerActionMessageEvent";
23
22
  import type { MenuRegisterEvent, UnregisterMenuEvent } from "./ui/MenuRegisterEvent";
23
+ import type { ChangeLayerEvent } from "./ChangeLayerEvent";
24
24
  export interface TypedMessageEvent<T> extends MessageEvent {
25
25
  data: T;
26
26
  }
@@ -34,8 +34,6 @@ export declare type IframeEventMap = {
34
34
  closePopup: ClosePopupEvent;
35
35
  openTab: OpenTabEvent;
36
36
  goToPage: GoToPageEvent;
37
- openCoWebSite: OpenCoWebSiteEvent;
38
- closeCoWebSite: null;
39
37
  disablePlayerControls: null;
40
38
  restorePlayerControls: null;
41
39
  displayBubble: null;
@@ -63,6 +61,8 @@ export interface IframeResponseEventMap {
63
61
  userInputChat: UserInputChatEvent;
64
62
  enterEvent: EnterLeaveEvent;
65
63
  leaveEvent: EnterLeaveEvent;
64
+ enterLayerEvent: ChangeLayerEvent;
65
+ leaveLayerEvent: ChangeLayerEvent;
66
66
  buttonClickedEvent: ButtonClickedEvent;
67
67
  hasPlayerMoved: HasPlayerMovedEvent;
68
68
  menuItemClicked: MenuItemClickedEvent;
@@ -112,6 +112,33 @@ export declare const iframeQueryMapTypeGuards: {
112
112
  }>;
113
113
  answer: tg.TypeGuard<number>;
114
114
  };
115
+ openCoWebsite: {
116
+ query: tg.TypeGuard<object & {
117
+ url: string;
118
+ allowApi: boolean | undefined;
119
+ allowPolicy: string | undefined;
120
+ position: number | undefined;
121
+ }>;
122
+ answer: tg.TypeGuard<object & {
123
+ id: string;
124
+ position: number;
125
+ }>;
126
+ };
127
+ getCoWebsites: {
128
+ query: tg.TypeGuard<undefined>;
129
+ answer: tg.TypeGuard<(object & {
130
+ id: string;
131
+ position: number;
132
+ })[]>;
133
+ };
134
+ closeCoWebsite: {
135
+ query: tg.TypeGuard<string>;
136
+ answer: tg.TypeGuard<undefined>;
137
+ };
138
+ closeCoWebsites: {
139
+ query: tg.TypeGuard<undefined>;
140
+ answer: tg.TypeGuard<undefined>;
141
+ };
115
142
  triggerActionMessage: {
116
143
  query: tg.TypeGuard<object & {
117
144
  message: string;
@@ -182,9 +209,9 @@ export interface IframeQueryWrapper<T extends keyof IframeQueryMap> {
182
209
  id: number;
183
210
  query: IframeQuery<T>;
184
211
  }
185
- export declare const isIframeQueryKey: (type: string) => type is "getState" | "getMapData" | "setVariable" | "loadTileset" | "triggerActionMessage" | "removeActionMessage" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite";
186
- export declare const isIframeQuery: (event: any) => event is IframeQuery<"getState" | "getMapData" | "setVariable" | "loadTileset" | "triggerActionMessage" | "removeActionMessage" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite">;
187
- export declare const isIframeQueryWrapper: (event: any) => event is IframeQueryWrapper<"getState" | "getMapData" | "setVariable" | "loadTileset" | "triggerActionMessage" | "removeActionMessage" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite">;
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">;
188
215
  export interface IframeAnswerEvent<T extends keyof IframeQueryMap> {
189
216
  id: number;
190
217
  type: T;
@@ -193,7 +220,7 @@ export interface IframeAnswerEvent<T extends keyof IframeQueryMap> {
193
220
  export declare const isIframeAnswerEvent: (event: {
194
221
  type?: string;
195
222
  id?: number;
196
- }) => event is IframeAnswerEvent<"getState" | "getMapData" | "setVariable" | "loadTileset" | "triggerActionMessage" | "removeActionMessage" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite">;
223
+ }) => event is IframeAnswerEvent<"getState" | "getMapData" | "setVariable" | "loadTileset" | "openCoWebsite" | "getCoWebsites" | "closeCoWebsite" | "closeCoWebsites" | "triggerActionMessage" | "removeActionMessage" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite">;
197
224
  export interface IframeErrorAnswerEvent {
198
225
  id: number;
199
226
  type: keyof IframeQueryMap;
@@ -0,0 +1,15 @@
1
+ import * as tg from "generic-type-guard";
2
+ export declare const isOpenCoWebsiteEvent: tg.TypeGuard<object & {
3
+ url: string;
4
+ allowApi: boolean | undefined;
5
+ allowPolicy: string | undefined;
6
+ position: number | undefined;
7
+ }>;
8
+ export declare const isCoWebsite: tg.TypeGuard<object & {
9
+ id: string;
10
+ position: number;
11
+ }>;
12
+ /**
13
+ * A message sent from the iFrame to the game to add a message in the chat.
14
+ */
15
+ export declare type OpenCoWebsiteEvent = tg.GuardedType<typeof isOpenCoWebsiteEvent>;
@@ -23,12 +23,6 @@ declare class IframeListener {
23
23
  }>;
24
24
  private readonly _loadPageStream;
25
25
  readonly loadPageStream: import("rxjs").Observable<string>;
26
- private readonly _openCoWebSiteStream;
27
- readonly openCoWebSiteStream: import("rxjs").Observable<object & {
28
- url: string;
29
- allowApi: boolean;
30
- allowPolicy: string;
31
- }>;
32
26
  private readonly _disablePlayerControlStream;
33
27
  readonly disablePlayerControlStream: import("rxjs").Observable<void>;
34
28
  private readonly _enablePlayerControlStream;
@@ -109,11 +103,14 @@ declare class IframeListener {
109
103
  unregisterIframe(iframe: HTMLIFrameElement): void;
110
104
  registerScript(scriptUrl: string): Promise<void>;
111
105
  private getBaseUrl;
106
+ getBaseUrlFromSource(source: MessageEventSource): string;
112
107
  private static getIFrameId;
113
108
  unregisterScript(scriptUrl: string): void;
114
109
  sendUserInputChat(message: string): void;
115
110
  sendEnterEvent(name: string): void;
116
111
  sendLeaveEvent(name: string): void;
112
+ sendEnterLayerEvent(layerName: string): void;
113
+ sendLeaveLayerEvent(layerName: string): void;
117
114
  hasPlayerMoved(event: HasPlayerMovedEvent): void;
118
115
  sendButtonClickedEvent(popupId: number, buttonId: number): void;
119
116
  setVariable(setVariableEvent: SetVariableEvent): void;
@@ -2,8 +2,6 @@ import type { ChatEvent } from "./Events/ChatEvent";
2
2
  declare class ScriptUtils {
3
3
  openTab(url: string): void;
4
4
  goToPage(url: string): void;
5
- openCoWebsite(url: string, base: string, api: boolean, policy: string): void;
6
- closeCoWebSite(): void;
7
5
  sendAnonymousChat(chatEvent: ChatEvent): void;
8
6
  }
9
7
  export declare const scriptUtils: ScriptUtils;
@@ -1,11 +1,21 @@
1
1
  import { IframeApiContribution } from "./IframeApiContribution";
2
+ export declare class CoWebsite {
3
+ private readonly id;
4
+ readonly position: number;
5
+ constructor(id: string, position: number);
6
+ close(): Promise<void>;
7
+ }
2
8
  export declare class WorkadventureNavigationCommands extends IframeApiContribution<WorkadventureNavigationCommands> {
3
9
  callbacks: never[];
4
10
  openTab(url: string): void;
5
11
  goToPage(url: string): void;
6
12
  goToRoom(url: string): void;
7
- openCoWebSite(url: string, allowApi?: boolean, allowPolicy?: string): void;
8
- closeCoWebSite(): void;
13
+ openCoWebSite(url: string, allowApi?: boolean, allowPolicy?: string, position?: number): Promise<CoWebsite>;
14
+ getCoWebSites(): Promise<CoWebsite[]>;
15
+ /**
16
+ * @deprecated Use closeCoWebsites instead to close all co-websites
17
+ */
18
+ closeCoWebSite(): Promise<void>;
9
19
  }
10
20
  declare const _default: WorkadventureNavigationCommands;
11
21
  export default _default;
@@ -1,3 +1,4 @@
1
+ import { Subject } from "rxjs";
1
2
  import { IframeApiContribution } from "./IframeApiContribution";
2
3
  import type { ITiledMap } from "../../Phaser/Map/ITiledMap";
3
4
  import type { WorkadventureRoomWebsiteCommands } from "./website";
@@ -11,8 +12,16 @@ export declare const setRoomId: (id: string) => void;
11
12
  export declare const setMapURL: (url: string) => void;
12
13
  export declare class WorkadventureRoomCommands extends IframeApiContribution<WorkadventureRoomCommands> {
13
14
  callbacks: import("./IframeApiContribution").IframeCallbackContribution<keyof import("../Events/IframeEvent").IframeResponseEventMap>[];
15
+ /**
16
+ * @deprecated Use onEnterLayer instead
17
+ */
14
18
  onEnterZone(name: string, callback: () => void): void;
19
+ /**
20
+ * @deprecated Use onLeaveLayer instead
21
+ */
15
22
  onLeaveZone(name: string, callback: () => void): void;
23
+ onEnterLayer(layerName: string): Subject<void>;
24
+ onLeaveLayer(layerName: string): Subject<void>;
16
25
  showLayer(layerName: string): void;
17
26
  hideLayer(layerName: string): void;
18
27
  setProperty(layerName: string, propertyName: string, propertyValue: string | number | boolean | undefined): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@workadventure/iframe-api-typings",
3
- "version": "v1.5.6",
3
+ "version": "v1.6.0",
4
4
  "description": "Typescript typings for WorkAdventure iFrame API",
5
5
  "main": "iframe_api.js",
6
6
  "types": "iframe_api.d.ts",
@@ -1,10 +0,0 @@
1
- import * as tg from "generic-type-guard";
2
- export declare const isOpenCoWebsite: tg.TypeGuard<object & {
3
- url: string;
4
- allowApi: boolean;
5
- allowPolicy: string;
6
- }>;
7
- /**
8
- * A message sent from the iFrame to the game to add a message in the chat.
9
- */
10
- export declare type OpenCoWebSiteEvent = tg.GuardedType<typeof isOpenCoWebsite>;