@veltdev/sdk 4.5.0-beta.1 → 4.5.0-beta.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,23 @@
1
+ import { LiveStateSyncEventTypes } from "../../utils/enums";
2
+ import { User } from "./user.data.model";
3
+ export interface AccessRequestEvent {
4
+ viewer?: User;
5
+ editor?: User;
6
+ timestamp?: number;
7
+ status?: string;
8
+ }
9
+ export interface SEMEvent {
10
+ viewer?: User;
11
+ editor?: User;
12
+ timestamp?: number;
13
+ role?: string;
14
+ }
15
+ export type LiveStateEventTypesMap = {
16
+ [LiveStateSyncEventTypes.ACCESS_REQUESTED]: AccessRequestEvent;
17
+ [LiveStateSyncEventTypes.ACCESS_REQUEST_CANCELED]: AccessRequestEvent;
18
+ [LiveStateSyncEventTypes.ACCESS_ACCEPTED]: AccessRequestEvent;
19
+ [LiveStateSyncEventTypes.ACCESS_REJECTED]: AccessRequestEvent;
20
+ [LiveStateSyncEventTypes.EDITOR_ASSIGNED]: SEMEvent;
21
+ [LiveStateSyncEventTypes.VIEWER_ASSIGNED]: SEMEvent;
22
+ [LiveStateSyncEventTypes.EDITOR_ON_DIFFERENT_TAB_DETECTED]: SEMEvent;
23
+ };
@@ -0,0 +1,8 @@
1
+ import { PresenceEventTypes } from "../../utils/enums";
2
+ import { PresenceUser } from "./presence-user.data.model";
3
+ export interface PresenceMultipleUsersOnlineEvent {
4
+ users: PresenceUser[];
5
+ }
6
+ export type PresenceEventTypesMap = {
7
+ [PresenceEventTypes.MULTIPLE_USERS_ONLINE]: PresenceMultipleUsersOnlineEvent;
8
+ };
@@ -81,4 +81,6 @@ export declare class PresenceUser {
81
81
  isAnonymous?: boolean;
82
82
  pageInfo: PageInfo;
83
83
  initial?: string;
84
+ isTabAway?: boolean;
85
+ isUserIdle?: boolean;
84
86
  }
@@ -2,6 +2,7 @@
2
2
  import { SingleEditorConfig, UserEditorAccess, EditorAccessTimer, LiveStateDataConfig, SetLiveStateDataConfig } from '../data/live-state-data.data.model';
3
3
  import { User } from '../data/user.data.model';
4
4
  import { ServerConnectionState } from '../../utils/enums';
5
+ import { LiveStateEventTypesMap } from '../data/live-state-events.data.model';
5
6
 
6
7
  /**
7
8
  * Represents the synchronization element for live state.
@@ -141,6 +142,11 @@ export declare class LiveStateSyncElement {
141
142
  */
142
143
  onServerConnectionStateChange: () => Observable<ServerConnectionState>;
143
144
 
145
+ /**
146
+ * Subscribe to live state events
147
+ */
148
+ on: <T extends keyof LiveStateEventTypesMap>(action: T) => Observable<LiveStateEventTypesMap[T]>;
149
+
144
150
  /**
145
151
  * Constructor for LiveStateSyncElement.
146
152
  */
@@ -278,4 +284,9 @@ export declare class LiveStateSyncElement {
278
284
  * To get server connection state
279
285
  */
280
286
  private _onServerConnectionStateChange;
287
+
288
+ /**
289
+ * Subscribe to live state events
290
+ */
291
+ private _on;
281
292
  }
@@ -1,6 +1,7 @@
1
1
  // @ts-nocheck
2
2
  import { Observable } from "rxjs";
3
3
  import { PresenceUser } from "../data/presence-user.data.model";
4
+ import { PresenceEventTypesMap } from "../data/presence-events.data.model";
4
5
  export declare class PresenceElement {
5
6
 
6
7
  /**
@@ -36,6 +37,11 @@ export declare class PresenceElement {
36
37
  * To disable adding self to the presence list
37
38
  */
38
39
  disableSelf: () => void;
40
+
41
+ /**
42
+ * Subscribe to presence events
43
+ */
44
+ on: <T extends keyof PresenceEventTypesMap>(action: T) => Observable<PresenceEventTypesMap[T]>;
39
45
  constructor();
40
46
  /**
41
47
  * Subscribe to a list of all online users who are either active or inactive on the current document.
@@ -70,4 +76,9 @@ export declare class PresenceElement {
70
76
  * To disable adding self to the presence list
71
77
  */
72
78
  private _disableSelf;
79
+
80
+ /**
81
+ * Subscribe to presence events
82
+ */
83
+ private _on;
73
84
  }
@@ -67,9 +67,23 @@ export declare const CoreEventTypes: {
67
67
  readonly DOCUMENT_INIT: "documentInit";
68
68
  readonly ERROR: "error";
69
69
  };
70
+ export declare const LiveStateSyncEventTypes: {
71
+ readonly ACCESS_REQUESTED: "accessRequested";
72
+ readonly ACCESS_REQUEST_CANCELED: "accessRequestCanceled";
73
+ readonly ACCESS_ACCEPTED: "accessAccepted";
74
+ readonly ACCESS_REJECTED: "accessRejected";
75
+ readonly EDITOR_ASSIGNED: "editorAssigned";
76
+ readonly VIEWER_ASSIGNED: "viewerAssigned";
77
+ readonly EDITOR_ON_DIFFERENT_TAB_DETECTED: "editorOnDifferentTabDetected";
78
+ };
79
+ export declare const PresenceEventTypes: {
80
+ readonly MULTIPLE_USERS_ONLINE: "multipleUsersOnline";
81
+ };
70
82
  export type CommentEventType = typeof CommentEventTypes[keyof typeof CommentEventTypes];
71
83
  export type RecorderEventType = typeof RecorderEventTypes[keyof typeof RecorderEventTypes];
72
84
  export type CoreEventType = typeof CoreEventTypes[keyof typeof CoreEventTypes];
85
+ export type LiveStateSyncEventType = typeof LiveStateSyncEventTypes[keyof typeof LiveStateSyncEventTypes];
86
+ export type PresenceEventType = typeof PresenceEventTypes[keyof typeof PresenceEventTypes];
73
87
  export declare enum TagStatus {
74
88
  ADDED = "added",
75
89
  UPDATED = "updated",
package/models.d.ts CHANGED
@@ -28,6 +28,7 @@ export * from './app/models/data/document-user.data.model';
28
28
  export * from './app/models/data/huddle.model';
29
29
  export * from './app/models/data/live-state-data-map.data.model';
30
30
  export * from './app/models/data/live-state-data.data.model';
31
+ export * from './app/models/data/live-state-events.data.model';
31
32
  export * from './app/models/data/localstorage.data.model';
32
33
  export * from './app/models/data/location-metadata.model';
33
34
  export * from './app/models/data/location.model';
@@ -37,6 +38,7 @@ export * from './app/models/data/notification.model';
37
38
  export * from './app/models/data/page-info.model';
38
39
  export * from './app/models/data/permission.data.model';
39
40
  export * from './app/models/data/presence-user.data.model';
41
+ export * from './app/models/data/presence-events.data.model';
40
42
  export * from './app/models/data/recorder.model';
41
43
  export * from './app/models/data/recorder-annotation.data.model';
42
44
  export * from './app/models/data/recorder-events.data.model';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@veltdev/sdk",
3
- "version": "4.5.0-beta.1",
3
+ "version": "4.5.0-beta.2",
4
4
  "description": "Velt is an SDK to add collaborative features to your product within minutes. Example: Comments like Figma, Frame.io, Google docs or sheets, Recording like Loom, Huddles like Slack and much more.",
5
5
  "homepage": "https://velt.dev",
6
6
  "keywords": [