@workadventure/iframe-api-typings 1.18.11 → 1.19.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@workadventure/iframe-api-typings",
3
- "version": "v1.18.11",
3
+ "version": "v1.19.0",
4
4
  "description": "Typescript typings for WorkAdventure iFrame API",
5
5
  "main": "iframe_api.js",
6
6
  "types": "iframe_api.d.ts",
@@ -1,9 +1,12 @@
1
1
  import { z } from "zod";
2
2
  export declare const isCameraFollowPlayerEvent: z.ZodObject<{
3
3
  smooth: z.ZodBoolean;
4
+ duration: z.ZodOptional<z.ZodNumber>;
4
5
  }, "strip", z.ZodTypeAny, {
6
+ duration?: number | undefined;
5
7
  smooth: boolean;
6
8
  }, {
9
+ duration?: number | undefined;
7
10
  smooth: boolean;
8
11
  }>;
9
12
  /**
@@ -6,9 +6,11 @@ export declare const isCameraSetEvent: z.ZodObject<{
6
6
  height: z.ZodOptional<z.ZodNumber>;
7
7
  lock: z.ZodBoolean;
8
8
  smooth: z.ZodBoolean;
9
+ duration: z.ZodOptional<z.ZodNumber>;
9
10
  }, "strip", z.ZodTypeAny, {
10
11
  height?: number | undefined;
11
12
  width?: number | undefined;
13
+ duration?: number | undefined;
12
14
  x: number;
13
15
  y: number;
14
16
  lock: boolean;
@@ -16,6 +18,7 @@ export declare const isCameraSetEvent: z.ZodObject<{
16
18
  }, {
17
19
  height?: number | undefined;
18
20
  width?: number | undefined;
21
+ duration?: number | undefined;
19
22
  x: number;
20
23
  y: number;
21
24
  lock: boolean;
@@ -209,19 +209,24 @@ export declare const isIframeEventWrapper: z.ZodUnion<[z.ZodObject<{
209
209
  type: z.ZodLiteral<"cameraFollowPlayer">;
210
210
  data: z.ZodObject<{
211
211
  smooth: z.ZodBoolean;
212
+ duration: z.ZodOptional<z.ZodNumber>;
212
213
  }, "strip", z.ZodTypeAny, {
214
+ duration?: number | undefined;
213
215
  smooth: boolean;
214
216
  }, {
217
+ duration?: number | undefined;
215
218
  smooth: boolean;
216
219
  }>;
217
220
  }, "strip", z.ZodTypeAny, {
218
221
  type: "cameraFollowPlayer";
219
222
  data: {
223
+ duration?: number | undefined;
220
224
  smooth: boolean;
221
225
  };
222
226
  }, {
223
227
  type: "cameraFollowPlayer";
224
228
  data: {
229
+ duration?: number | undefined;
225
230
  smooth: boolean;
226
231
  };
227
232
  }>, z.ZodObject<{
@@ -233,9 +238,11 @@ export declare const isIframeEventWrapper: z.ZodUnion<[z.ZodObject<{
233
238
  height: z.ZodOptional<z.ZodNumber>;
234
239
  lock: z.ZodBoolean;
235
240
  smooth: z.ZodBoolean;
241
+ duration: z.ZodOptional<z.ZodNumber>;
236
242
  }, "strip", z.ZodTypeAny, {
237
243
  height?: number | undefined;
238
244
  width?: number | undefined;
245
+ duration?: number | undefined;
239
246
  x: number;
240
247
  y: number;
241
248
  lock: boolean;
@@ -243,6 +250,7 @@ export declare const isIframeEventWrapper: z.ZodUnion<[z.ZodObject<{
243
250
  }, {
244
251
  height?: number | undefined;
245
252
  width?: number | undefined;
253
+ duration?: number | undefined;
246
254
  x: number;
247
255
  y: number;
248
256
  lock: boolean;
@@ -253,6 +261,7 @@ export declare const isIframeEventWrapper: z.ZodUnion<[z.ZodObject<{
253
261
  data: {
254
262
  height?: number | undefined;
255
263
  width?: number | undefined;
264
+ duration?: number | undefined;
256
265
  x: number;
257
266
  y: number;
258
267
  lock: boolean;
@@ -263,6 +272,7 @@ export declare const isIframeEventWrapper: z.ZodUnion<[z.ZodObject<{
263
272
  data: {
264
273
  height?: number | undefined;
265
274
  width?: number | undefined;
275
+ duration?: number | undefined;
266
276
  x: number;
267
277
  y: number;
268
278
  lock: boolean;
@@ -1489,6 +1499,96 @@ export declare const isIframeEventWrapper: z.ZodUnion<[z.ZodObject<{
1489
1499
  name: string;
1490
1500
  uuid: string;
1491
1501
  };
1502
+ }>, z.ZodObject<{
1503
+ type: z.ZodLiteral<"disableMapEditor">;
1504
+ data: z.ZodUndefined;
1505
+ }, "strip", z.ZodTypeAny, {
1506
+ data?: undefined;
1507
+ type: "disableMapEditor";
1508
+ }, {
1509
+ data?: undefined;
1510
+ type: "disableMapEditor";
1511
+ }>, z.ZodObject<{
1512
+ type: z.ZodLiteral<"restoreMapEditor">;
1513
+ data: z.ZodUndefined;
1514
+ }, "strip", z.ZodTypeAny, {
1515
+ data?: undefined;
1516
+ type: "restoreMapEditor";
1517
+ }, {
1518
+ data?: undefined;
1519
+ type: "restoreMapEditor";
1520
+ }>, z.ZodObject<{
1521
+ type: z.ZodLiteral<"disableScreenSharing">;
1522
+ data: z.ZodUndefined;
1523
+ }, "strip", z.ZodTypeAny, {
1524
+ data?: undefined;
1525
+ type: "disableScreenSharing";
1526
+ }, {
1527
+ data?: undefined;
1528
+ type: "disableScreenSharing";
1529
+ }>, z.ZodObject<{
1530
+ type: z.ZodLiteral<"restoreScreenSharing">;
1531
+ data: z.ZodUndefined;
1532
+ }, "strip", z.ZodTypeAny, {
1533
+ data?: undefined;
1534
+ type: "restoreScreenSharing";
1535
+ }, {
1536
+ data?: undefined;
1537
+ type: "restoreScreenSharing";
1538
+ }>, z.ZodObject<{
1539
+ type: z.ZodLiteral<"disableRightClick">;
1540
+ data: z.ZodUndefined;
1541
+ }, "strip", z.ZodTypeAny, {
1542
+ data?: undefined;
1543
+ type: "disableRightClick";
1544
+ }, {
1545
+ data?: undefined;
1546
+ type: "disableRightClick";
1547
+ }>, z.ZodObject<{
1548
+ type: z.ZodLiteral<"restoreRightClick">;
1549
+ data: z.ZodUndefined;
1550
+ }, "strip", z.ZodTypeAny, {
1551
+ data?: undefined;
1552
+ type: "restoreRightClick";
1553
+ }, {
1554
+ data?: undefined;
1555
+ type: "restoreRightClick";
1556
+ }>, z.ZodObject<{
1557
+ type: z.ZodLiteral<"disableWheelZoom">;
1558
+ data: z.ZodUndefined;
1559
+ }, "strip", z.ZodTypeAny, {
1560
+ data?: undefined;
1561
+ type: "disableWheelZoom";
1562
+ }, {
1563
+ data?: undefined;
1564
+ type: "disableWheelZoom";
1565
+ }>, z.ZodObject<{
1566
+ type: z.ZodLiteral<"restoreWheelZoom">;
1567
+ data: z.ZodUndefined;
1568
+ }, "strip", z.ZodTypeAny, {
1569
+ data?: undefined;
1570
+ type: "restoreWheelZoom";
1571
+ }, {
1572
+ data?: undefined;
1573
+ type: "restoreWheelZoom";
1574
+ }>, z.ZodObject<{
1575
+ type: z.ZodLiteral<"disableInviteUserButton">;
1576
+ data: z.ZodUndefined;
1577
+ }, "strip", z.ZodTypeAny, {
1578
+ data?: undefined;
1579
+ type: "disableInviteUserButton";
1580
+ }, {
1581
+ data?: undefined;
1582
+ type: "disableInviteUserButton";
1583
+ }>, z.ZodObject<{
1584
+ type: z.ZodLiteral<"restoreInviteUserButton">;
1585
+ data: z.ZodUndefined;
1586
+ }, "strip", z.ZodTypeAny, {
1587
+ data?: undefined;
1588
+ type: "restoreInviteUserButton";
1589
+ }, {
1590
+ data?: undefined;
1591
+ type: "restoreInviteUserButton";
1492
1592
  }>]>;
1493
1593
  export type IframeEvent = z.infer<typeof isIframeEventWrapper>;
1494
1594
  export declare const isIframeResponseEvent: z.ZodUnion<[z.ZodObject<{
@@ -1830,6 +1930,210 @@ export declare const isIframeResponseEvent: z.ZodUnion<[z.ZodObject<{
1830
1930
  }, {
1831
1931
  data?: undefined;
1832
1932
  type: "leaveProximityMeetingEvent";
1933
+ }>, z.ZodObject<{
1934
+ type: z.ZodLiteral<"onFollowed">;
1935
+ data: z.ZodObject<{
1936
+ user: z.ZodObject<{
1937
+ playerId: z.ZodNumber;
1938
+ name: z.ZodString;
1939
+ userUuid: z.ZodString;
1940
+ availabilityStatus: z.ZodString;
1941
+ outlineColor: z.ZodOptional<z.ZodNumber>;
1942
+ position: z.ZodObject<{
1943
+ x: z.ZodNumber;
1944
+ y: z.ZodNumber;
1945
+ }, "strip", z.ZodTypeAny, {
1946
+ x: number;
1947
+ y: number;
1948
+ }, {
1949
+ x: number;
1950
+ y: number;
1951
+ }>;
1952
+ variables: z.ZodMap<z.ZodString, z.ZodUnknown>;
1953
+ }, "strip", z.ZodTypeAny, {
1954
+ outlineColor?: number | undefined;
1955
+ name: string;
1956
+ availabilityStatus: string;
1957
+ position: {
1958
+ x: number;
1959
+ y: number;
1960
+ };
1961
+ userUuid: string;
1962
+ variables: Map<string, unknown>;
1963
+ playerId: number;
1964
+ }, {
1965
+ outlineColor?: number | undefined;
1966
+ name: string;
1967
+ availabilityStatus: string;
1968
+ position: {
1969
+ x: number;
1970
+ y: number;
1971
+ };
1972
+ userUuid: string;
1973
+ variables: Map<string, unknown>;
1974
+ playerId: number;
1975
+ }>;
1976
+ }, "strip", z.ZodTypeAny, {
1977
+ user: {
1978
+ outlineColor?: number | undefined;
1979
+ name: string;
1980
+ availabilityStatus: string;
1981
+ position: {
1982
+ x: number;
1983
+ y: number;
1984
+ };
1985
+ userUuid: string;
1986
+ variables: Map<string, unknown>;
1987
+ playerId: number;
1988
+ };
1989
+ }, {
1990
+ user: {
1991
+ outlineColor?: number | undefined;
1992
+ name: string;
1993
+ availabilityStatus: string;
1994
+ position: {
1995
+ x: number;
1996
+ y: number;
1997
+ };
1998
+ userUuid: string;
1999
+ variables: Map<string, unknown>;
2000
+ playerId: number;
2001
+ };
2002
+ }>;
2003
+ }, "strip", z.ZodTypeAny, {
2004
+ type: "onFollowed";
2005
+ data: {
2006
+ user: {
2007
+ outlineColor?: number | undefined;
2008
+ name: string;
2009
+ availabilityStatus: string;
2010
+ position: {
2011
+ x: number;
2012
+ y: number;
2013
+ };
2014
+ userUuid: string;
2015
+ variables: Map<string, unknown>;
2016
+ playerId: number;
2017
+ };
2018
+ };
2019
+ }, {
2020
+ type: "onFollowed";
2021
+ data: {
2022
+ user: {
2023
+ outlineColor?: number | undefined;
2024
+ name: string;
2025
+ availabilityStatus: string;
2026
+ position: {
2027
+ x: number;
2028
+ y: number;
2029
+ };
2030
+ userUuid: string;
2031
+ variables: Map<string, unknown>;
2032
+ playerId: number;
2033
+ };
2034
+ };
2035
+ }>, z.ZodObject<{
2036
+ type: z.ZodLiteral<"onUnfollowed">;
2037
+ data: z.ZodObject<{
2038
+ user: z.ZodObject<{
2039
+ playerId: z.ZodNumber;
2040
+ name: z.ZodString;
2041
+ userUuid: z.ZodString;
2042
+ availabilityStatus: z.ZodString;
2043
+ outlineColor: z.ZodOptional<z.ZodNumber>;
2044
+ position: z.ZodObject<{
2045
+ x: z.ZodNumber;
2046
+ y: z.ZodNumber;
2047
+ }, "strip", z.ZodTypeAny, {
2048
+ x: number;
2049
+ y: number;
2050
+ }, {
2051
+ x: number;
2052
+ y: number;
2053
+ }>;
2054
+ variables: z.ZodMap<z.ZodString, z.ZodUnknown>;
2055
+ }, "strip", z.ZodTypeAny, {
2056
+ outlineColor?: number | undefined;
2057
+ name: string;
2058
+ availabilityStatus: string;
2059
+ position: {
2060
+ x: number;
2061
+ y: number;
2062
+ };
2063
+ userUuid: string;
2064
+ variables: Map<string, unknown>;
2065
+ playerId: number;
2066
+ }, {
2067
+ outlineColor?: number | undefined;
2068
+ name: string;
2069
+ availabilityStatus: string;
2070
+ position: {
2071
+ x: number;
2072
+ y: number;
2073
+ };
2074
+ userUuid: string;
2075
+ variables: Map<string, unknown>;
2076
+ playerId: number;
2077
+ }>;
2078
+ }, "strip", z.ZodTypeAny, {
2079
+ user: {
2080
+ outlineColor?: number | undefined;
2081
+ name: string;
2082
+ availabilityStatus: string;
2083
+ position: {
2084
+ x: number;
2085
+ y: number;
2086
+ };
2087
+ userUuid: string;
2088
+ variables: Map<string, unknown>;
2089
+ playerId: number;
2090
+ };
2091
+ }, {
2092
+ user: {
2093
+ outlineColor?: number | undefined;
2094
+ name: string;
2095
+ availabilityStatus: string;
2096
+ position: {
2097
+ x: number;
2098
+ y: number;
2099
+ };
2100
+ userUuid: string;
2101
+ variables: Map<string, unknown>;
2102
+ playerId: number;
2103
+ };
2104
+ }>;
2105
+ }, "strip", z.ZodTypeAny, {
2106
+ type: "onUnfollowed";
2107
+ data: {
2108
+ user: {
2109
+ outlineColor?: number | undefined;
2110
+ name: string;
2111
+ availabilityStatus: string;
2112
+ position: {
2113
+ x: number;
2114
+ y: number;
2115
+ };
2116
+ userUuid: string;
2117
+ variables: Map<string, unknown>;
2118
+ playerId: number;
2119
+ };
2120
+ };
2121
+ }, {
2122
+ type: "onUnfollowed";
2123
+ data: {
2124
+ user: {
2125
+ outlineColor?: number | undefined;
2126
+ name: string;
2127
+ availabilityStatus: string;
2128
+ position: {
2129
+ x: number;
2130
+ y: number;
2131
+ };
2132
+ userUuid: string;
2133
+ variables: Map<string, unknown>;
2134
+ playerId: number;
2135
+ };
2136
+ };
1833
2137
  }>, z.ZodObject<{
1834
2138
  type: z.ZodLiteral<"enterEvent">;
1835
2139
  data: z.ZodObject<{
@@ -3874,6 +4178,14 @@ export declare const iframeQueryMapTypeGuards: {
3874
4178
  }>;
3875
4179
  answer: z.ZodUndefined;
3876
4180
  };
4181
+ followMe: {
4182
+ query: z.ZodUndefined;
4183
+ answer: z.ZodUndefined;
4184
+ };
4185
+ stopLeading: {
4186
+ query: z.ZodUndefined;
4187
+ answer: z.ZodUndefined;
4188
+ };
3877
4189
  };
3878
4190
  type IframeQueryMapTypeGuardsType = typeof iframeQueryMapTypeGuards;
3879
4191
  type UnknownToVoid<T> = undefined extends T ? void : T;
@@ -3891,15 +4203,15 @@ export interface IframeQueryWrapper<T extends keyof IframeQueryMap> {
3891
4203
  id: number;
3892
4204
  query: IframeQuery<T>;
3893
4205
  }
3894
- export declare const isIframeQueryKey: (type: string) => type is "setVariable" | "triggerActionMessage" | "removeActionMessage" | "dispatchEvent" | "modifyArea" | "setPlayerVariable" | "getState" | "getMapData" | "loadTileset" | "openCoWebsite" | "getCoWebsites" | "closeCoWebsite" | "closeCoWebsites" | "goToLogin" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite" | "createArea" | "getArea" | "deleteArea" | "setPlayerOutline" | "removePlayerOutline" | "getPlayerPosition" | "movePlayerTo" | "teleportPlayerTo" | "openUIWebsite" | "closeUIWebsite" | "getUIWebsites" | "getUIWebsiteById" | "enablePlayersTracking" | "getWoka" | "playSoundInBubble";
3895
- export declare const isIframeQuery: (event: any) => event is IframeQuery<"setVariable" | "triggerActionMessage" | "removeActionMessage" | "dispatchEvent" | "modifyArea" | "setPlayerVariable" | "getState" | "getMapData" | "loadTileset" | "openCoWebsite" | "getCoWebsites" | "closeCoWebsite" | "closeCoWebsites" | "goToLogin" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite" | "createArea" | "getArea" | "deleteArea" | "setPlayerOutline" | "removePlayerOutline" | "getPlayerPosition" | "movePlayerTo" | "teleportPlayerTo" | "openUIWebsite" | "closeUIWebsite" | "getUIWebsites" | "getUIWebsiteById" | "enablePlayersTracking" | "getWoka" | "playSoundInBubble">;
3896
- export declare const isIframeQueryWrapper: (event: any) => event is IframeQueryWrapper<"setVariable" | "triggerActionMessage" | "removeActionMessage" | "dispatchEvent" | "modifyArea" | "setPlayerVariable" | "getState" | "getMapData" | "loadTileset" | "openCoWebsite" | "getCoWebsites" | "closeCoWebsite" | "closeCoWebsites" | "goToLogin" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite" | "createArea" | "getArea" | "deleteArea" | "setPlayerOutline" | "removePlayerOutline" | "getPlayerPosition" | "movePlayerTo" | "teleportPlayerTo" | "openUIWebsite" | "closeUIWebsite" | "getUIWebsites" | "getUIWebsiteById" | "enablePlayersTracking" | "getWoka" | "playSoundInBubble">;
4206
+ export declare const isIframeQueryKey: (type: string) => type is "setVariable" | "triggerActionMessage" | "removeActionMessage" | "dispatchEvent" | "modifyArea" | "setPlayerVariable" | "getState" | "getMapData" | "loadTileset" | "openCoWebsite" | "getCoWebsites" | "closeCoWebsite" | "closeCoWebsites" | "goToLogin" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite" | "createArea" | "getArea" | "deleteArea" | "setPlayerOutline" | "removePlayerOutline" | "getPlayerPosition" | "movePlayerTo" | "teleportPlayerTo" | "openUIWebsite" | "closeUIWebsite" | "getUIWebsites" | "getUIWebsiteById" | "enablePlayersTracking" | "getWoka" | "playSoundInBubble" | "followMe" | "stopLeading";
4207
+ export declare const isIframeQuery: (event: any) => event is IframeQuery<"setVariable" | "triggerActionMessage" | "removeActionMessage" | "dispatchEvent" | "modifyArea" | "setPlayerVariable" | "getState" | "getMapData" | "loadTileset" | "openCoWebsite" | "getCoWebsites" | "closeCoWebsite" | "closeCoWebsites" | "goToLogin" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite" | "createArea" | "getArea" | "deleteArea" | "setPlayerOutline" | "removePlayerOutline" | "getPlayerPosition" | "movePlayerTo" | "teleportPlayerTo" | "openUIWebsite" | "closeUIWebsite" | "getUIWebsites" | "getUIWebsiteById" | "enablePlayersTracking" | "getWoka" | "playSoundInBubble" | "followMe" | "stopLeading">;
4208
+ export declare const isIframeQueryWrapper: (event: any) => event is IframeQueryWrapper<"setVariable" | "triggerActionMessage" | "removeActionMessage" | "dispatchEvent" | "modifyArea" | "setPlayerVariable" | "getState" | "getMapData" | "loadTileset" | "openCoWebsite" | "getCoWebsites" | "closeCoWebsite" | "closeCoWebsites" | "goToLogin" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite" | "createArea" | "getArea" | "deleteArea" | "setPlayerOutline" | "removePlayerOutline" | "getPlayerPosition" | "movePlayerTo" | "teleportPlayerTo" | "openUIWebsite" | "closeUIWebsite" | "getUIWebsites" | "getUIWebsiteById" | "enablePlayersTracking" | "getWoka" | "playSoundInBubble" | "followMe" | "stopLeading">;
3897
4209
  export interface IframeAnswerEvent<T extends keyof IframeQueryMap> {
3898
4210
  id: number;
3899
4211
  type: T;
3900
4212
  data: IframeQueryMap[T]["answer"];
3901
4213
  }
3902
- export declare const isIframeAnswerEvent: (event: any) => event is IframeAnswerEvent<"setVariable" | "triggerActionMessage" | "removeActionMessage" | "dispatchEvent" | "modifyArea" | "setPlayerVariable" | "getState" | "getMapData" | "loadTileset" | "openCoWebsite" | "getCoWebsites" | "closeCoWebsite" | "closeCoWebsites" | "goToLogin" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite" | "createArea" | "getArea" | "deleteArea" | "setPlayerOutline" | "removePlayerOutline" | "getPlayerPosition" | "movePlayerTo" | "teleportPlayerTo" | "openUIWebsite" | "closeUIWebsite" | "getUIWebsites" | "getUIWebsiteById" | "enablePlayersTracking" | "getWoka" | "playSoundInBubble">;
4214
+ export declare const isIframeAnswerEvent: (event: any) => event is IframeAnswerEvent<"setVariable" | "triggerActionMessage" | "removeActionMessage" | "dispatchEvent" | "modifyArea" | "setPlayerVariable" | "getState" | "getMapData" | "loadTileset" | "openCoWebsite" | "getCoWebsites" | "closeCoWebsite" | "closeCoWebsites" | "goToLogin" | "getEmbeddedWebsite" | "deleteEmbeddedWebsite" | "createEmbeddedWebsite" | "createArea" | "getArea" | "deleteArea" | "setPlayerOutline" | "removePlayerOutline" | "getPlayerPosition" | "movePlayerTo" | "teleportPlayerTo" | "openUIWebsite" | "closeUIWebsite" | "getUIWebsites" | "getUIWebsiteById" | "enablePlayersTracking" | "getWoka" | "playSoundInBubble" | "followMe" | "stopLeading">;
3903
4215
  export declare const isIframeErrorAnswerEvent: z.ZodObject<{
3904
4216
  id: z.ZodNumber;
3905
4217
  type: z.ZodString;
@@ -1,15 +1,19 @@
1
1
  import type { Observable } from "rxjs";
2
2
  import { Subject } from "rxjs";
3
- export declare abstract class AbstractWorkadventureStateCommands {
3
+ export declare abstract class AbstractWorkadventureStateCommands<State extends {
4
+ [key: string]: unknown;
5
+ }> {
4
6
  protected setVariableResolvers: Subject<{
5
7
  value?: unknown;
6
8
  key: string;
7
9
  }>;
8
- protected variables: Map<string, unknown>;
9
- protected variableSubscribers: Map<string, Subject<unknown>>;
10
+ protected variables: Partial<State>;
11
+ protected variableSubscribers: Partial<{
12
+ [K in keyof State]: Subject<State[K]>;
13
+ }>;
10
14
  protected constructor();
11
15
  initVariables(_variables: Map<string, unknown>): void;
12
- loadVariable(key: string): unknown;
13
- hasVariable(key: string): boolean;
14
- onVariableChange(key: string): Observable<unknown>;
16
+ loadVariable<K extends keyof State>(key: K): State[K] | undefined;
17
+ hasVariable<K extends keyof State>(key: K): boolean;
18
+ onVariableChange<K extends keyof State>(key: K): Observable<State[K]>;
15
19
  }
@@ -2,6 +2,12 @@ import { Subject } from "rxjs";
2
2
  import { IframeApiContribution } from "../IframeApiContribution";
3
3
  import { RemotePlayer } from "../Players/RemotePlayer";
4
4
  export declare class WorkadventureProximityMeetingCommands extends IframeApiContribution<WorkadventureProximityMeetingCommands> {
5
+ private joinStream;
6
+ private participantJoinStream;
7
+ private participantLeaveStream;
8
+ private followedStream;
9
+ private unfollowedStream;
10
+ private leaveStream;
5
11
  callbacks: ({
6
12
  type: "joinProximityMeetingEvent";
7
13
  callback: (event: {
@@ -53,6 +59,38 @@ export declare class WorkadventureProximityMeetingCommands extends IframeApiCont
53
59
  } | {
54
60
  type: "leaveProximityMeetingEvent";
55
61
  callback: (event: undefined) => void;
62
+ } | {
63
+ type: "onFollowed";
64
+ callback: (event: {
65
+ user: {
66
+ outlineColor?: number | undefined;
67
+ name: string;
68
+ availabilityStatus: string;
69
+ position: {
70
+ x: number;
71
+ y: number;
72
+ };
73
+ userUuid: string;
74
+ variables: Map<string, unknown>;
75
+ playerId: number;
76
+ };
77
+ }) => void;
78
+ } | {
79
+ type: "onUnfollowed";
80
+ callback: (event: {
81
+ user: {
82
+ outlineColor?: number | undefined;
83
+ name: string;
84
+ availabilityStatus: string;
85
+ position: {
86
+ x: number;
87
+ y: number;
88
+ };
89
+ userUuid: string;
90
+ variables: Map<string, unknown>;
91
+ playerId: number;
92
+ };
93
+ }) => void;
56
94
  })[];
57
95
  /**
58
96
  * Detecting when the user enter on a meeting.
@@ -77,10 +115,26 @@ export declare class WorkadventureProximityMeetingCommands extends IframeApiCont
77
115
  onParticipantLeave(): Subject<RemotePlayer>;
78
116
  /**
79
117
  * Detecting when the user leave on a meeting.
80
- * {@link https://workadventu.re/map-building/api-player.md#detecting-when-the-user-entersleaves-a-meeting | Website documentation}
118
+ * {@link https://docs.workadventu.re/developer/map-scripting/references/api-player/#detecting-when-the-user-entersleaves-a-meeting | Website documentation}
81
119
  */
82
120
  onLeave(): Subject<void>;
121
+ /**
122
+ * Play a sound to all players in the current meeting.
123
+ * {@link https://docs.workadventu.re/developer/map-scripting/references/api-player/#playing-a-sound-to-players-in-the-same-meeting | Website documentation}
124
+ */
83
125
  playSound(url: string): Promise<void>;
126
+ /**
127
+ * Ask all players in the current meeting to follow the player.
128
+ * Note that unlike with the "follow" mode in the UI, the other players will automatically follow the player.
129
+ */
130
+ followMe(): Promise<void>;
131
+ stopLeading(): Promise<void>;
132
+ /**
133
+ * Triggered when a player starts following us.
134
+ */
135
+ onFollowed(): Subject<RemotePlayer>;
136
+ /**
137
+ * Triggered when a player stops following us.
138
+ */
139
+ onUnfollowed(): Subject<RemotePlayer>;
84
140
  }
85
- declare const _default: WorkadventureProximityMeetingCommands;
86
- export default _default;
@@ -3,7 +3,7 @@ import { Subject } from "rxjs";
3
3
  import type { AddPlayerEvent } from "../../Events/AddPlayerEvent";
4
4
  import type { PlayerPosition } from "../../Events/PlayerPosition";
5
5
  import { ActionsMenuAction } from "../ui";
6
- export declare const remotePlayers: Map<number, RemotePlayer>;
6
+ import { PublicPlayerState, ReadOnlyPublicPlayerState } from "../PublicPlayerState";
7
7
  export interface RemotePlayerInterface {
8
8
  /**
9
9
  * A unique ID for this player. Each character on the map has a unique ID
@@ -33,18 +33,13 @@ export interface RemotePlayerInterface {
33
33
  /**
34
34
  * An object storing players variables
35
35
  */
36
- readonly state: ReadOnlyState;
36
+ readonly state: ReadOnlyPublicPlayerState;
37
37
  /**
38
38
  * Send an event to the player.
39
39
  * Remote player can listen to this event using `WA.event.on(key).subscribe((event) => { ... })`.
40
40
  */
41
41
  sendEvent(key: string, value: unknown): Promise<void>;
42
42
  }
43
- export type ReadOnlyState = {
44
- onVariableChange(key: string): Observable<unknown>;
45
- } & {
46
- readonly [key: string]: unknown;
47
- };
48
43
  export declare class RemotePlayer implements RemotePlayerInterface {
49
44
  private _playerId;
50
45
  private _name;
@@ -54,7 +49,7 @@ export declare class RemotePlayer implements RemotePlayerInterface {
54
49
  private _position;
55
50
  private _variables;
56
51
  private _variablesSubjects;
57
- readonly state: ReadOnlyState;
52
+ readonly state: ReadOnlyPublicPlayerState;
58
53
  private actions;
59
54
  constructor(addPlayerEvent: AddPlayerEvent);
60
55
  get playerId(): number;
@@ -75,7 +70,7 @@ export declare class RemotePlayer implements RemotePlayerInterface {
75
70
  y: number;
76
71
  }>;
77
72
  destroy(): void;
78
- setVariable(name: string, value: unknown): void;
73
+ setVariable<K extends keyof PublicPlayerState>(name: K, value: PublicPlayerState[K]): void;
79
74
  addAction(key: string, callback: () => void): ActionsMenuAction;
80
75
  callAction(key: string): void;
81
76
  removeAction(key: string): void;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * PrivatePlayerState is the part of the state of a player that is secret (not shared with other players).
3
+ * The interface is empty. It is meant to be extended by the ScriptingAPI developers to add custom properties.
4
+ */
5
+ export interface PrivatePlayerState {
6
+ [key: string]: unknown;
7
+ }
@@ -0,0 +1,11 @@
1
+ import { Observable } from "rxjs";
2
+ /**
3
+ * PublicPlayerState is the part of the state of a player that is shared with other players.
4
+ * The interface is empty. It is meant to be extended by the ScriptingAPI developers to add custom properties.
5
+ */
6
+ export interface PublicPlayerState {
7
+ [key: string]: unknown;
8
+ }
9
+ export type ReadOnlyPublicPlayerState = Readonly<PublicPlayerState> & {
10
+ onVariableChange<K extends keyof PublicPlayerState>(key: K): Observable<PublicPlayerState[K]>;
11
+ };
@@ -0,0 +1,7 @@
1
+ /**
2
+ * RoomState is the state of a room (i.e. the type associated with the room variables).
3
+ * The interface is empty. It is meant to be extended by the ScriptingAPI developers to add custom properties.
4
+ */
5
+ export interface RoomState {
6
+ [key: string]: unknown;
7
+ }
@@ -18,7 +18,7 @@ export declare class WorkAdventureCameraCommands extends IframeApiContribution<W
18
18
  *
19
19
  * @param smooth Smooth transition
20
20
  */
21
- followPlayer(smooth?: boolean): void;
21
+ followPlayer(smooth?: boolean, duration?: number): void;
22
22
  /**
23
23
  * Set camera to look at given spot. Setting width and height will adjust zoom.
24
24
  * Set lock to true to lock camera in this position.
@@ -32,7 +32,7 @@ export declare class WorkAdventureCameraCommands extends IframeApiContribution<W
32
32
  * @param {boolean} lock Zoom locked
33
33
  * @param {boolean} smooth Smooth transition
34
34
  */
35
- set(x: number, y: number, width?: number, height?: number, lock?: boolean, smooth?: boolean): void;
35
+ set(x: number, y: number, width?: number, height?: number, lock?: boolean, smooth?: boolean, duration?: number): void;
36
36
  /**
37
37
  * Listens to updates of the camera viewport.
38
38
  * It will trigger for every update of the camera's properties (position or scale for instance).
@@ -2,10 +2,13 @@ import { Subscription } from "rxjs";
2
2
  import { SendChatMessageOptions } from "@workadventure/shared-utils";
3
3
  import { IframeApiContribution } from "./IframeApiContribution";
4
4
  import { RemotePlayerInterface } from "./Players/RemotePlayer";
5
+ import { PublicPlayerState } from "./PublicPlayerState";
5
6
  export interface OnChatMessageOptions {
6
7
  scope: "local" | "bubble";
7
8
  }
8
- export declare class WorkadventureChatCommands extends IframeApiContribution<WorkadventureChatCommands> {
9
+ export declare class WorkadventureChatCommands<PublicState extends {
10
+ [key: string]: unknown;
11
+ }> extends IframeApiContribution<WorkadventureChatCommands<PublicState>> {
9
12
  callbacks: {
10
13
  type: "userInputChat";
11
14
  callback: (event: {
@@ -62,5 +65,5 @@ export declare class WorkadventureChatCommands extends IframeApiContribution<Wor
62
65
  author: RemotePlayerInterface | undefined;
63
66
  }) => void, options?: OnChatMessageOptions): Subscription;
64
67
  }
65
- declare const _default: WorkadventureChatCommands;
68
+ declare const _default: WorkadventureChatCommands<PublicPlayerState>;
66
69
  export default _default;
@@ -51,6 +51,56 @@ export declare class WorkadventureControlsCommands extends IframeApiContribution
51
51
  * {@link https://workadventu.re/map-building/api-controls.md#disabling--restoring-proximity-meeting | Website documentation}
52
52
  */
53
53
  restorePlayerProximityMeeting(): void;
54
+ /**
55
+ * Disable map editor mode.
56
+ * {@link https://workadventu.re/map-building/api-controls.md#disabling--restoring-map-editor | Website documentation}
57
+ */
58
+ disableMapEditor(): void;
59
+ /**
60
+ * Restore map editor mode.
61
+ * {@link https://workadventu.re/map-building/api-controls.md#disabling--restoring-map-editor | Website documentation}
62
+ */
63
+ restoreMapEditor(): void;
64
+ /**
65
+ * Disable screen sharing.
66
+ * {@link https://workadventu.re/map-building/api-controls.md#disabling--restoring-screen-sharing | Website documentation}
67
+ */
68
+ disableScreenSharing(): void;
69
+ /**
70
+ * Restore screen sharing.
71
+ * {@link https://workadventu.re/map-building/api-controls.md#disabling--restoring-screen-sharing | Website documentation}
72
+ */
73
+ restoreScreenSharing(): void;
74
+ /**
75
+ * Disable wheel zoom.
76
+ * {@link https://workadventu.re/map-building/api-controls.md#disabling--restoring-wheel-zoom | Website documentation}
77
+ */
78
+ disableWheelZoom(): void;
79
+ /**
80
+ * Restore wheel zoom.
81
+ * {@link https://workadventu.re/map-building/api-controls.md#disabling--restoring-wheel-zoom | Website documentation}
82
+ */
83
+ restoreWheelZoom(): void;
84
+ /**
85
+ * Disable Right Click.
86
+ * {@link https://workadventu.re/map-building/api-controls.md#disabling--restoring-right-click | Website documentation}
87
+ */
88
+ disableRightClick(): void;
89
+ /**
90
+ * Restore Right Click.
91
+ * {@link https://workadventu.re/map-building/api-controls.md#disabling--restoring-right-click | Website documentation}
92
+ */
93
+ restoreRightClick(): void;
94
+ /**
95
+ * Disable invite button.
96
+ * {@link https://workadventu.re/map-building/api-controls.md#disabling--restoring-invite-button | Website documentation}
97
+ */
98
+ disableInviteButton(): void;
99
+ /**
100
+ * Restore invite button.
101
+ * {@link https://workadventu.re/map-building/api-controls.md#disabling--restoring-invite-user-button | Website documentation}
102
+ */
103
+ restoreInviteButton(): void;
54
104
  }
55
105
  declare const _default: WorkadventureControlsCommands;
56
106
  export default _default;
@@ -1,7 +1,7 @@
1
1
  import { Subscription } from "rxjs";
2
2
  import type { HasPlayerMovedEventCallback } from "../Events/HasPlayerMovedEvent";
3
3
  import { IframeApiContribution } from "./IframeApiContribution";
4
- import type { WorkadventureProximityMeetingCommands } from "./Player/ProximityMeeting";
4
+ import { WorkadventureProximityMeetingCommands } from "./Player/ProximityMeeting";
5
5
  export declare const setPlayerName: (name: string) => void;
6
6
  export declare const setPlayerLanguage: (language: string | undefined) => void;
7
7
  export declare const setTags: (_tags: string[]) => void;
@@ -10,9 +10,8 @@ export declare const setPlayerId: (_id: number | undefined) => void;
10
10
  export declare const setUuid: (_uuid: string | undefined) => void;
11
11
  export declare const setIsLogged: (_isLogged: boolean | undefined) => void;
12
12
  export declare class WorkadventurePlayerCommands extends IframeApiContribution<WorkadventurePlayerCommands> {
13
- readonly state: import("./playerState").WorkadventurePlayerStateCommands & {
14
- [key: string]: unknown;
15
- };
13
+ readonly state: import("./playerState").WorkadventurePlayerStateCommands & import("./PublicPlayerState").PublicPlayerState & import("./PrivatePlayerState").PrivatePlayerState;
14
+ private _proximityMeeting;
16
15
  callbacks: {
17
16
  type: "hasPlayerMoved";
18
17
  callback: (event: {
@@ -1,5 +1,8 @@
1
1
  import { AbstractWorkadventureStateCommands } from "./AbstractState";
2
- export declare class WorkadventurePlayerStateCommands extends AbstractWorkadventureStateCommands {
2
+ import { PrivatePlayerState } from "./PrivatePlayerState";
3
+ import { PublicPlayerState } from "./PublicPlayerState";
4
+ type PlayerState = PublicPlayerState & PrivatePlayerState;
5
+ export declare class WorkadventurePlayerStateCommands extends AbstractWorkadventureStateCommands<PlayerState> {
3
6
  constructor();
4
7
  callbacks: {
5
8
  type: "setPlayerVariable";
@@ -8,13 +11,12 @@ export declare class WorkadventurePlayerStateCommands extends AbstractWorkadvent
8
11
  key: string;
9
12
  }) => void;
10
13
  }[];
11
- saveVariable(key: string, value: unknown, options?: {
14
+ saveVariable<K extends keyof PlayerState & string>(key: K, value: PlayerState[K], options?: {
12
15
  public?: boolean;
13
16
  persist?: boolean;
14
17
  ttl?: number;
15
18
  scope?: "world" | "room";
16
19
  }): Promise<void>;
17
20
  }
18
- export declare const playerState: WorkadventurePlayerStateCommands & {
19
- [key: string]: unknown;
20
- };
21
+ export declare const playerState: WorkadventurePlayerStateCommands & PublicPlayerState & PrivatePlayerState;
22
+ export {};
@@ -2,13 +2,22 @@ import type { Observable } from "rxjs";
2
2
  import { IframeApiContribution } from "./IframeApiContribution";
3
3
  import type { RemotePlayerInterface, RemotePlayerMoved } from "./Players/RemotePlayer";
4
4
  import { RemotePlayer } from "./Players/RemotePlayer";
5
- export interface PlayerVariableChanged {
5
+ import { PublicPlayerState } from "./PublicPlayerState";
6
+ export interface PlayerVariableChanged<V> {
6
7
  player: RemotePlayer;
7
- value: unknown;
8
+ value: V;
8
9
  }
9
10
  export declare class WorkadventurePlayersCommands extends IframeApiContribution<WorkadventurePlayersCommands> {
10
11
  private trackingPlayers;
11
12
  private trackingMovement;
13
+ private sharedPlayersVariableStream;
14
+ private remotePlayers;
15
+ private _newRemotePlayersStream;
16
+ private newRemotePlayersStream;
17
+ private _removeRemotePlayersStream;
18
+ private removeRemotePlayersStream;
19
+ private _playersMovedStream;
20
+ private playersMovedStream;
12
21
  callbacks: ({
13
22
  type: "setSharedPlayerVariable";
14
23
  callback: (event: {
@@ -77,7 +86,7 @@ export declare class WorkadventurePlayersCommands extends IframeApiContribution<
77
86
  *
78
87
  * If you are looking to listen for variable changes of only one player, look at `RemotePlayer.onVariableChange` instead.
79
88
  */
80
- onVariableChange(variableName: string): Observable<PlayerVariableChanged>;
89
+ onVariableChange<K extends keyof PublicPlayerState>(variableName: K): Observable<PlayerVariableChanged<PublicPlayerState[K]>>;
81
90
  /**
82
91
  * Listens to new remote players.
83
92
  * These will be triggered when a remote player is entering our "zone" (zone ~= viewport)
@@ -1,5 +1,6 @@
1
1
  import { AbstractWorkadventureStateCommands } from "./AbstractState";
2
- export declare class WorkadventureStateCommands extends AbstractWorkadventureStateCommands {
2
+ import { RoomState } from "./RoomState";
3
+ export declare class WorkadventureStateCommands extends AbstractWorkadventureStateCommands<RoomState> {
3
4
  constructor();
4
5
  callbacks: {
5
6
  type: "setVariable";
@@ -8,8 +9,6 @@ export declare class WorkadventureStateCommands extends AbstractWorkadventureSta
8
9
  key: string;
9
10
  }) => void;
10
11
  }[];
11
- saveVariable(key: string, value: unknown): Promise<void>;
12
+ saveVariable<K extends keyof RoomState & string>(key: K, value: RoomState[K]): Promise<void>;
12
13
  }
13
- export declare function createState(): WorkadventureStateCommands & {
14
- [key: string]: unknown;
15
- };
14
+ export declare function createState(): WorkadventureStateCommands & RoomState;
@@ -16,19 +16,20 @@ export type { TileDescriptor } from "./front/Api/Iframe/room";
16
16
  export type { ScriptingEvent } from "./front/Api/Iframe/AbstractEvent";
17
17
  export type { RemotePlayerInterface } from "./front/Api/Iframe/Players/RemotePlayer";
18
18
  export type { SendChatMessageOptions, SendLocalChatMessageOptions, SendBubbleChatMessageOptions, } from "../../libs/shared-utils/src/Events/ChatEvent";
19
+ export type { RoomState } from "./front/Api/Iframe/RoomState";
20
+ export type { PrivatePlayerState } from "./front/Api/Iframe/PrivatePlayerState";
21
+ export type { PublicPlayerState } from "./front/Api/Iframe/PublicPlayerState";
19
22
  declare const wa: {
20
23
  ui: import("./front/Api/Iframe/ui").WorkAdventureUiCommands;
21
24
  nav: import("./front/Api/Iframe/nav").WorkadventureNavigationCommands;
22
25
  controls: import("./front/Api/Iframe/controls").WorkadventureControlsCommands;
23
- chat: import("./front/Api/Iframe/chat").WorkadventureChatCommands;
26
+ chat: import("./front/Api/Iframe/chat").WorkadventureChatCommands<import("./front/Api/Iframe/PublicPlayerState").PublicPlayerState>;
24
27
  sound: import("./front/Api/Iframe/sound").WorkadventureSoundCommands;
25
28
  room: import("./front/Api/Iframe/room").WorkadventureRoomCommands;
26
29
  player: import("./front/Api/Iframe/player").WorkadventurePlayerCommands;
27
30
  players: import("./front/Api/Iframe/players").WorkadventurePlayersCommands;
28
31
  camera: import("./front/Api/Iframe/camera").WorkAdventureCameraCommands;
29
- state: import("./front/Api/Iframe/state").WorkadventureStateCommands & {
30
- [key: string]: unknown;
31
- };
32
+ state: import("./front/Api/Iframe/state").WorkadventureStateCommands & import("./front/Api/Iframe/RoomState").RoomState;
32
33
  event: import("./front/Api/Iframe/event").WorkadventureEventCommands;
33
34
  /**
34
35
  * When your script / iFrame loads WorkAdventure, it takes a few milliseconds for your