@veltdev/types 4.7.2 → 4.7.4

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.
Files changed (75) hide show
  1. package/app/models/data/anchor-record.data.model.d.ts +109 -0
  2. package/app/models/data/area-annotation.data.model.d.ts +7 -1
  3. package/app/models/data/arrow-annotation.data.model.d.ts +51 -0
  4. package/app/models/data/attachment-resolver.data.model.d.ts +52 -0
  5. package/app/models/data/attachment.model.d.ts +21 -1
  6. package/app/models/data/autocomplete.data.model.d.ts +51 -0
  7. package/app/models/data/base-metadata.data.model.d.ts +9 -0
  8. package/app/models/data/button.data.model.d.ts +37 -0
  9. package/app/models/data/comment-actions.data.model.d.ts +199 -0
  10. package/app/models/data/comment-annotation.data.model.d.ts +80 -4
  11. package/app/models/data/comment-events.data.model.d.ts +279 -0
  12. package/app/models/data/comment-resolver.data.model.d.ts +72 -0
  13. package/app/models/data/comment-sidebar-config.model.d.ts +95 -0
  14. package/app/models/data/comment-utils.data.model.d.ts +16 -0
  15. package/app/models/data/comment.data.model.d.ts +26 -1
  16. package/app/models/data/config.data.model.d.ts +23 -0
  17. package/app/models/data/contact-utils.data.model.d.ts +9 -0
  18. package/app/models/data/core-events.data.model.d.ts +180 -0
  19. package/app/models/data/crdt-events.data.model.d.ts +25 -0
  20. package/app/models/data/crdt.data.model.d.ts +60 -0
  21. package/app/models/data/cursor-position.data.model.d.ts +15 -0
  22. package/app/models/data/cursor-user.data.model.d.ts +5 -0
  23. package/app/models/data/custom-chip-dropdown.data.model.d.ts +10 -0
  24. package/app/models/data/custom-css.data.model.d.ts +10 -0
  25. package/app/models/data/custom-filter.data.model.d.ts +8 -0
  26. package/app/models/data/customer-metadata.data.model.d.ts +15 -0
  27. package/app/models/data/document-events.data.model.d.ts +8 -0
  28. package/app/models/data/document-iam.data.model.d.ts +8 -0
  29. package/app/models/data/document-metadata.model.d.ts +28 -0
  30. package/app/models/data/document-paths.data.model.d.ts +51 -1
  31. package/app/models/data/document.data.model.d.ts +63 -0
  32. package/app/models/data/encryption-provider.data.model.d.ts +12 -0
  33. package/app/models/data/event-metadata.data.model.d.ts +32 -0
  34. package/app/models/data/folder-metadata.model.d.ts +40 -0
  35. package/app/models/data/heartbeat.data.model.d.ts +16 -0
  36. package/app/models/data/huddle.model.d.ts +2 -1
  37. package/app/models/data/live-state-data-map.data.model.d.ts +7 -6
  38. package/app/models/data/live-state-data.data.model.d.ts +37 -2
  39. package/app/models/data/live-state-events.data.model.d.ts +23 -0
  40. package/app/models/data/location-metadata.model.d.ts +14 -0
  41. package/app/models/data/location.model.d.ts +0 -2
  42. package/app/models/data/media-preview-config.data.model.d.ts +3 -0
  43. package/app/models/data/multi-thread.data.model.d.ts +63 -0
  44. package/app/models/data/notification.model.d.ts +129 -3
  45. package/app/models/data/notifications-events.data.model.d.ts +9 -0
  46. package/app/models/data/organization-groups.data.model.d.ts +16 -0
  47. package/app/models/data/organization-metadata.model.d.ts +31 -0
  48. package/app/models/data/page-info.model.d.ts +4 -0
  49. package/app/models/data/presence-actions.data.model.d.ts +5 -0
  50. package/app/models/data/presence-events.data.model.d.ts +16 -0
  51. package/app/models/data/presence-user.data.model.d.ts +7 -0
  52. package/app/models/data/provider.data.model.d.ts +10 -0
  53. package/app/models/data/reaction-annotation.data.model.d.ts +68 -0
  54. package/app/models/data/reaction-resolver.data.model.d.ts +42 -0
  55. package/app/models/data/reaction.data.model.d.ts +18 -0
  56. package/app/models/data/recorder-annotation.data.model.d.ts +101 -9
  57. package/app/models/data/recorder-events.data.model.d.ts +45 -0
  58. package/app/models/data/recorder.model.d.ts +31 -2
  59. package/app/models/data/resolver.data.model.d.ts +36 -0
  60. package/app/models/data/screenshot.data.model.d.ts +10 -0
  61. package/app/models/data/selection.model.d.ts +12 -0
  62. package/app/models/data/sync-video-player.data.model.d.ts +47 -0
  63. package/app/models/data/target-element.data.model.d.ts +5 -0
  64. package/app/models/data/target-text-range.data.model.d.ts +13 -0
  65. package/app/models/data/user-contact.data.model.d.ts +21 -0
  66. package/app/models/data/user-iam.data.model.d.ts +15 -0
  67. package/app/models/data/user-organization.data.model.d.ts +12 -0
  68. package/app/models/data/user-resolver.data.model.d.ts +56 -0
  69. package/app/models/data/user.data.model.d.ts +82 -0
  70. package/app/models/data/views.data.model.d.ts +64 -0
  71. package/app/models/element/comment-element.model.d.ts +42 -2
  72. package/app/utils/constants.d.ts +133 -6
  73. package/app/utils/enums.d.ts +209 -4
  74. package/models.d.ts +36 -0
  75. package/package.json +2 -2
@@ -0,0 +1,18 @@
1
+ import { User } from "./user.data.model";
2
+ export declare class Reaction {
3
+ /**
4
+ * Emoji variant.
5
+ */
6
+ variant?: string;
7
+ /**
8
+ * The user who added reaction.
9
+ *
10
+ */
11
+ from: User;
12
+ /**
13
+ * Timestamp when this reaction was added.
14
+ *
15
+ * Auto generated.
16
+ */
17
+ lastUpdated?: Date;
18
+ }
@@ -1,18 +1,24 @@
1
- import { RecorderBoundedScaleRange } from "src/models";
1
+ import { RecorderFileFormat, RecorderLayoutMode, RecorderType } from "../../utils/enums";
2
2
  import { Attachment } from "./attachment.model";
3
+ import { BaseMetadata } from "./base-metadata.data.model";
3
4
  import { CursorPosition } from "./cursor-position.data.model";
4
5
  import { Location } from "./location.model";
5
6
  import { PageInfo } from "./page-info.model";
6
7
  import { TargetElement } from "./target-element.data.model";
7
8
  import { Transcription } from "./transcription.data.model";
8
- import { User } from "./user.data.model";
9
+ import { Context, User } from "./user.data.model";
9
10
  export declare class RecorderAnnotation {
11
+ context?: Context;
10
12
  /**
11
13
  * Unique identifier for the recorder pin annotation.
12
14
  *
13
15
  * Auto generated.
14
16
  */
15
17
  annotationId: string;
18
+ /**
19
+ * Connected comment annotation id of reaction annotation
20
+ */
21
+ commentAnnotationId?: string;
16
22
  /**
17
23
  * The user who created this recorder pin annotation.
18
24
  *
@@ -88,8 +94,8 @@ export declare class RecorderAnnotation {
88
94
  */
89
95
  location?: Location | null;
90
96
  type?: string;
91
- recordingType: string;
92
- mode: 'floating' | 'thread';
97
+ recordingType: RecorderType;
98
+ mode: RecorderLayoutMode;
93
99
  approved?: boolean;
94
100
  /**
95
101
  * Attachment object of recorded media
@@ -118,30 +124,116 @@ export declare class RecorderAnnotation {
118
124
  * Transcription of the recorded media
119
125
  */
120
126
  transcription?: Transcription;
127
+ /**
128
+ * Waveform data for the annotation
129
+ */
130
+ waveformData?: number[];
131
+ /**
132
+ * Display name for the annotation
133
+ */
134
+ displayName?: string;
135
+ metadata?: RecorderMetadata;
121
136
  /**
122
137
  * Current version of the recording edit
123
138
  */
124
139
  latestVersion?: number;
125
140
  /**
126
141
  * History of all editing versions of this recording
142
+ * Maps version number to version data
127
143
  */
128
- recordingEditVersions?: { [key: number]: RecorderAnnotationEditVersion };
144
+ recordingEditVersions?: {
145
+ [key: number]: RecorderAnnotationEditVersion;
146
+ };
147
+ /**
148
+ * URLs for individual uploaded chunks
149
+ */
150
+ chunkUrls?: {
151
+ [key: number]: string;
152
+ };
129
153
  }
130
-
131
154
  export interface RecorderAnnotationEditVersion {
132
155
  from?: User;
133
156
  createdAt?: Date;
134
157
  attachment?: Attachment | null;
135
158
  attachments?: Attachment[];
136
- recordedTime?: { duration?: number, display?: string } | null;
159
+ recordedTime?: {
160
+ duration?: number;
161
+ display?: string;
162
+ } | null;
137
163
  transcription?: Transcription;
138
164
  waveformData?: number[];
139
165
  displayName?: string;
140
166
  boundedTrimRanges?: RecorderBoundedTrimRange[];
141
167
  boundedScaleRanges?: RecorderBoundedScaleRange[];
142
168
  }
143
-
144
169
  export interface RecorderBoundedTrimRange {
145
170
  start: number;
146
171
  end: number;
147
- }
172
+ }
173
+ export interface RecorderBoundedScaleRange {
174
+ start: number;
175
+ end: number;
176
+ zoomInDuration?: number;
177
+ holdDuration?: number;
178
+ zoomOutDuration?: number;
179
+ zoomFactor?: number;
180
+ centerX?: number;
181
+ centerY?: number;
182
+ topLeftX?: number;
183
+ topLeftY?: number;
184
+ topLeftXPixels?: number;
185
+ topLeftYPixels?: number;
186
+ }
187
+ export interface RecorderEditRange {
188
+ trimRanges: RecorderBoundedTrimRange[];
189
+ scaleRanges: RecorderBoundedScaleRange[];
190
+ }
191
+ export declare class RecorderMetadata extends BaseMetadata {
192
+ [key: string]: any;
193
+ }
194
+ declare class RecorderDataTranscriptSegment {
195
+ startTime: string;
196
+ endTime: string;
197
+ startTimeInSeconds: number;
198
+ endTimeInSeconds: number;
199
+ text: string;
200
+ }
201
+ declare class RecorderDataTranscription {
202
+ transcriptSegments?: RecorderDataTranscriptSegment[];
203
+ vttFileUrl?: string;
204
+ contentSummary?: string;
205
+ }
206
+ declare class RecorderDataAsset {
207
+ version?: number;
208
+ url: string;
209
+ mimeType?: string;
210
+ fileName?: string;
211
+ /** File size in bytes */
212
+ fileSizeInBytes?: number;
213
+ /**
214
+ * The format/extension of the file
215
+ * @example 'mp3', 'mp4', 'webm'
216
+ */
217
+ fileFormat?: RecorderFileFormat;
218
+ thumbnailUrl?: string;
219
+ transcription: RecorderDataTranscription;
220
+ }
221
+ export declare class RecorderData {
222
+ recorderId: string;
223
+ from?: User | null;
224
+ metadata?: RecorderMetadata;
225
+ assets: RecorderDataAsset[];
226
+ assetsAllVersions: RecorderDataAsset[];
227
+ transcription: RecorderDataTranscription;
228
+ }
229
+ export interface RecorderRequestQuery {
230
+ recorderIds: string[];
231
+ }
232
+ export interface GetRecordingDataResponse {
233
+ data: Record<string, RecorderData> | null;
234
+ }
235
+ export interface GetRecordingsResponse extends RecorderData {
236
+ }
237
+ export interface DeleteRecordingsResponse extends RecorderData {
238
+ }
239
+ export {};
@@ -0,0 +1,45 @@
1
+ import { RecorderData } from "../../models/data/recorder-annotation.data.model";
2
+ import { RecorderEventTypes } from "../../utils/enums";
3
+ export interface TranscriptionDoneEvent extends RecorderData {
4
+ }
5
+ export interface RecordingDoneEvent extends RecorderData {
6
+ }
7
+ export interface RecordingDeleteEvent extends RecorderData {
8
+ }
9
+ export interface RecordingEditDoneEvent extends RecorderData {
10
+ }
11
+ export interface RecordingActionsEvent {
12
+ type: 'audio' | 'video' | 'screen';
13
+ }
14
+ export interface RecordingStartedEvent extends RecordingActionsEvent {
15
+ }
16
+ export interface RecordingPausedEvent extends RecordingActionsEvent {
17
+ }
18
+ export interface RecordingCancelledEvent extends RecordingActionsEvent {
19
+ }
20
+ export interface RecordingStoppedEvent extends RecordingActionsEvent {
21
+ }
22
+ export interface RecordingResumedEvent extends RecordingActionsEvent {
23
+ }
24
+ export interface RecordingErrorEvent {
25
+ type: string;
26
+ message: string;
27
+ recorderId?: string;
28
+ url?: string;
29
+ }
30
+ export interface RecordingSaveInitiatedEvent {
31
+ annotationId?: string;
32
+ message: string;
33
+ type: 'edit' | 'record';
34
+ }
35
+ export type RecorderEventTypesMap = {
36
+ [RecorderEventTypes.TRANSCRIPTION_DONE]: TranscriptionDoneEvent;
37
+ [RecorderEventTypes.RECORDING_DONE]: RecordingDoneEvent;
38
+ [RecorderEventTypes.RECORDING_EDIT_DONE]: RecordingEditDoneEvent;
39
+ [RecorderEventTypes.DELETE_RECORDING]: RecordingDeleteEvent;
40
+ [RecorderEventTypes.RECORDING_STARTED]: RecordingStartedEvent;
41
+ [RecorderEventTypes.RECORDING_PAUSED]: RecordingPausedEvent;
42
+ [RecorderEventTypes.RECORDING_CANCELLED]: RecordingCancelledEvent;
43
+ [RecorderEventTypes.RECORDING_STOPPED]: RecordingStoppedEvent;
44
+ [RecorderEventTypes.RECORDING_RESUMED]: RecordingResumedEvent;
45
+ };
@@ -1,4 +1,5 @@
1
1
  import { Observable } from "rxjs";
2
+ import { RecorderType } from "../../utils/enums";
2
3
  export declare class RecorderConfig {
3
4
  type: {
4
5
  audio?: boolean;
@@ -26,7 +27,7 @@ export declare class RecorderInitData {
26
27
  /**
27
28
  * Type of media recorder, possible values are 'audio', 'video' and 'screen'
28
29
  */
29
- type: 'audio' | 'video' | 'screen';
30
+ type: RecorderType;
30
31
  /**
31
32
  * Observable of recorded raw data.
32
33
  */
@@ -44,7 +45,7 @@ export declare class RecordedRawData {
44
45
  /**
45
46
  * Type of recorded data, possible values are 'audio' and 'video'
46
47
  */
47
- type: 'audio' | 'video' | 'screen';
48
+ type: RecorderType;
48
49
  /**
49
50
  * Base64 encoded string of thumbnail image of one frame of recorded video
50
51
  */
@@ -56,6 +57,12 @@ export declare class RecordedRawData {
56
57
  duration?: number;
57
58
  display?: string;
58
59
  } | null;
60
+ /**
61
+ * Array of URLs for individual uploaded chunks
62
+ */
63
+ chunkUrls?: {
64
+ [key: number]: string;
65
+ };
59
66
  }
60
67
  export declare class RecordedData {
61
68
  /**
@@ -78,5 +85,27 @@ export declare class RecordedData {
78
85
  * URL of the hosted website to open video in new tab
79
86
  */
80
87
  videoPlayerUrl?: string;
88
+ /**
89
+ * URLs for individual uploaded chunks
90
+ */
91
+ chunkUrls?: {
92
+ [key: number]: string;
93
+ };
81
94
  getThumbnailTag: (url?: string) => string;
82
95
  }
96
+ export declare class RecorderQualityConstraintsOptions {
97
+ video?: MediaTrackConstraints;
98
+ audio?: MediaTrackConstraints;
99
+ }
100
+ export declare class RecorderQualityConstraints {
101
+ safari?: RecorderQualityConstraintsOptions;
102
+ other?: RecorderQualityConstraintsOptions;
103
+ }
104
+ export declare class RecorderEncodingOptions {
105
+ safari?: MediaRecorderOptions;
106
+ other?: MediaRecorderOptions;
107
+ }
108
+ export declare class RecorderDevicePermissionOptions {
109
+ audio?: boolean;
110
+ video?: boolean;
111
+ }
@@ -0,0 +1,36 @@
1
+ export interface ResolverEndpointConfig {
2
+ url: string;
3
+ headers?: Record<string, string>;
4
+ }
5
+ export interface ResolverConfig {
6
+ resolveTimeout?: number;
7
+ saveRetryConfig?: RetryConfig;
8
+ deleteRetryConfig?: RetryConfig;
9
+ getRetryConfig?: RetryConfig;
10
+ resolveUsersConfig?: ResolveUsersConfig;
11
+ fieldsToRemove?: string[];
12
+ getConfig?: ResolverEndpointConfig;
13
+ saveConfig?: ResolverEndpointConfig;
14
+ deleteConfig?: ResolverEndpointConfig;
15
+ }
16
+ export interface ResolveUsersConfig {
17
+ organization?: boolean;
18
+ folder?: boolean;
19
+ document?: boolean;
20
+ }
21
+ export interface ResolverResponse<T> {
22
+ data?: T;
23
+ success: boolean;
24
+ message?: string;
25
+ timestamp?: number;
26
+ statusCode: number;
27
+ }
28
+ export interface RetryConfig {
29
+ retryCount?: number;
30
+ retryDelay?: number;
31
+ revertOnFailure?: boolean;
32
+ }
33
+ export interface ResolverResponseConfig {
34
+ revertOnFailure?: boolean;
35
+ isSuccess?: boolean;
36
+ }
@@ -0,0 +1,10 @@
1
+ import { AreaAnnotation } from "./area-annotation.data.model";
2
+ import { CommentAnnotation } from "./comment-annotation.data.model";
3
+ export interface ScreenshotData {
4
+ source?: string;
5
+ sourceData?: {
6
+ commentAnnotation?: CommentAnnotation;
7
+ areaAnnotation?: AreaAnnotation;
8
+ };
9
+ eventType: string;
10
+ }
@@ -19,4 +19,16 @@ export declare class Selection {
19
19
  */
20
20
  targetTextRange?: TargetTextRange | null;
21
21
  pageInfo: PageInfo;
22
+ timestamp: number;
23
+ }
24
+ export declare enum UserIndicatorPosition {
25
+ Start = "start",
26
+ End = "end"
27
+ }
28
+ export declare enum UserIndicatorType {
29
+ Avatar = "avatar",
30
+ Label = "label"
31
+ }
32
+ export declare class LiveSelectionData {
33
+ [userIdHash: string]: Selection;
22
34
  }
@@ -0,0 +1,47 @@
1
+ import { User } from "./user.data.model";
2
+ export declare class SyncVideoPlayer {
3
+ /**
4
+ * The id of the player
5
+ */
6
+ playerId?: string;
7
+ src?: string;
8
+ sources?: string[];
9
+ /**
10
+ * Last updated timestamp
11
+ */
12
+ lastUpdated?: number;
13
+ /**
14
+ * Last updated by user
15
+ */
16
+ lastUpdatedBy?: User;
17
+ /**
18
+ * Last updated event
19
+ */
20
+ lastUpdatedEvent?: string;
21
+ /**
22
+ * The state of the player
23
+ */
24
+ playerState: SyncVideoPlayerState;
25
+ }
26
+ export declare class SyncVideoPlayerState {
27
+ /**
28
+ * True if the video is playing
29
+ */
30
+ playing?: boolean;
31
+ /**
32
+ * Current time of the video
33
+ */
34
+ currentTime?: number;
35
+ /**
36
+ * True if the video is muted
37
+ */
38
+ muted?: boolean;
39
+ /**
40
+ * Volume of the video
41
+ */
42
+ volume?: number;
43
+ /**
44
+ * Playback rate of the video
45
+ */
46
+ speed?: number;
47
+ }
@@ -1,3 +1,4 @@
1
+ import { AnchorRecord } from './anchor-record.data.model';
1
2
  export declare class TargetElement {
2
3
  /**
3
4
  * Xpath of target element
@@ -19,4 +20,8 @@ export declare class TargetElement {
19
20
  * Relative left position of cursor on target element
20
21
  */
21
22
  leftPercentage: number;
23
+ /**
24
+ * Robust anchor descriptor for the element
25
+ */
26
+ anchor?: AnchorRecord | null;
22
27
  }
@@ -1,8 +1,21 @@
1
+ import { AnchorRecord } from "./anchor-record.data.model";
1
2
  export declare class TargetTextRange {
2
3
  /**
3
4
  * Xpath of common Ancestor Container
4
5
  */
5
6
  commonAncestorContainer?: string;
7
+ /**
8
+ * Full xpath of common Ancestor Container
9
+ */
10
+ commonAncestorContainerFXpath?: string;
11
+ /**
12
+ * Full xpath of common Ancestor Container with class names
13
+ */
14
+ commonAncestorContainerCFXpath?: string;
15
+ /**
16
+ * Anchor of common Ancestor Container
17
+ */
18
+ commonAncestorContainerAnchor?: AnchorRecord;
6
19
  /**
7
20
  * Selected text
8
21
  */
@@ -26,4 +26,25 @@ export declare class UserContact {
26
26
  groupId?: string;
27
27
  source?: string;
28
28
  visibility: 'group' | 'private';
29
+ color?: string;
30
+ textColor?: string;
31
+ initial?: string;
32
+ }
33
+ export declare class SelectedUserContact {
34
+ /**
35
+ * Selected user contact details.
36
+ */
37
+ contact: UserContact;
38
+ /**
39
+ * Is user part of organization contact.
40
+ */
41
+ isOrganizationContact: boolean;
42
+ /**
43
+ * Is user part of document contact.
44
+ */
45
+ isDocumentContact: boolean;
46
+ /**
47
+ * Document access type.
48
+ */
49
+ documentAccessType: string;
29
50
  }
@@ -1,3 +1,4 @@
1
+ import { BaseMetadata } from "./base-metadata.data.model";
1
2
  import { UserContact } from "./user-contact.data.model";
2
3
  import { UserRole } from "./user-role.data.model";
3
4
  import { User } from "./user.data.model";
@@ -10,6 +11,16 @@ export declare class UserIAM {
10
11
  * The user's contact details
11
12
  */
12
13
  user: UserContact;
14
+ accessFields?: string[];
15
+ documentIds?: string[];
16
+ viewerDocumentIds?: string[];
17
+ folderIds?: string[];
18
+ viewerFolderIds?: string[];
19
+ organizationIds?: string[];
20
+ viewerOrganizationIds?: string[];
21
+ documentIdsCount?: number;
22
+ folderIdsCount?: number;
23
+ organizationIdsCount?: number;
13
24
  /**
14
25
  * The user's role in the document
15
26
  */
@@ -30,4 +41,8 @@ export declare class UserIAM {
30
41
  * Date when this user was updated
31
42
  */
32
43
  updatedDate?: any;
44
+ groups?: {
45
+ [groupId: string]: boolean;
46
+ };
47
+ metadata?: BaseMetadata;
33
48
  }
@@ -0,0 +1,12 @@
1
+ import { OrganizationUserGroup } from "./organization-groups.data.model";
2
+ import { OrganizationMetadata } from "./organization-metadata.model";
3
+ export declare class UserOrganization {
4
+ /**
5
+ * User organization metadata.
6
+ */
7
+ metadata?: OrganizationMetadata;
8
+ /**
9
+ * User organization groups.
10
+ */
11
+ groups?: OrganizationUserGroup[];
12
+ }
@@ -0,0 +1,56 @@
1
+ import { ResolverConfig } from "./resolver.data.model";
2
+ import { User } from "./user.data.model";
3
+ export interface UserDataProvider {
4
+ get(userIds: string[]): Promise<Record<string, User>>;
5
+ config?: ResolverConfig;
6
+ resolveTimeout?: number;
7
+ }
8
+ export interface GetUserResolverRequest {
9
+ organizationId: string;
10
+ userIds: string[];
11
+ }
12
+ export interface GetUserPermissionsRequest {
13
+ organizationId?: string;
14
+ folderIds?: string[];
15
+ documentIds?: string[];
16
+ }
17
+ export interface GetUserPermissionsResponse {
18
+ [userId: string]: {
19
+ folders?: {
20
+ [folderId: string]: {
21
+ accessRole?: UserPermissionAccessRole;
22
+ expiresAt?: number;
23
+ error?: string;
24
+ errorCode?: UserPermissionAccessRoleResult;
25
+ };
26
+ };
27
+ organization?: {
28
+ [organizationId: string]: {
29
+ accessRole?: UserPermissionAccessRole;
30
+ expiresAt?: number;
31
+ error?: string;
32
+ errorCode?: UserPermissionAccessRoleResult;
33
+ };
34
+ };
35
+ documents?: {
36
+ [documentId: string]: {
37
+ accessRole?: UserPermissionAccessRole;
38
+ expiresAt?: number;
39
+ error?: string;
40
+ errorCode?: UserPermissionAccessRoleResult;
41
+ };
42
+ };
43
+ context?: {
44
+ accessFields?: Array<string>;
45
+ };
46
+ };
47
+ }
48
+ export declare enum UserPermissionAccessRole {
49
+ EDITOR = "editor",
50
+ VIEWER = "viewer"
51
+ }
52
+ export declare enum UserPermissionAccessRoleResult {
53
+ DOES_NOT_EXIST = "does_not_exist",
54
+ PERMISSION_DENIED = "permission_denied",
55
+ SOMETHING_WENT_WRONG = "something_went_wrong"
56
+ }
@@ -1,4 +1,6 @@
1
+ import { SetDocumentsContext } from "./document.data.model";
1
2
  import { UserContact } from "./user-contact.data.model";
3
+ import { UserPermissionAccessRole } from "./user-resolver.data.model";
2
4
  export declare class User {
3
5
  /**
4
6
  * Unique user identifier that you use to identify your user.
@@ -10,6 +12,7 @@ export declare class User {
10
12
  * Default: Random avatar name.
11
13
  */
12
14
  name?: string;
15
+ clientUserName?: string;
13
16
  /**
14
17
  * Your user's display picture URL.
15
18
  *
@@ -37,6 +40,8 @@ export declare class User {
37
40
  * Original groupId provided by the user.
38
41
  */
39
42
  clientGroupId?: string;
43
+ organizationId?: string;
44
+ clientOrganizationId?: string;
40
45
  /**
41
46
  * Auto generated unique user id that is linked with your app's user ID.
42
47
  * This is needed by us for internal processing.
@@ -47,6 +52,10 @@ export declare class User {
47
52
  * This is the color on the avatar border and live cursor, if these features are enabled.
48
53
  */
49
54
  color?: string;
55
+ /**
56
+ * This is the color on the avatar text.
57
+ */
58
+ textColor?: string;
50
59
  /**
51
60
  * User type.
52
61
  *
@@ -65,6 +74,7 @@ export declare class User {
65
74
  * Guest user
66
75
  */
67
76
  isGuest?: boolean;
77
+ initial?: string;
68
78
  }
69
79
  export declare class Options {
70
80
  /**
@@ -86,4 +96,76 @@ export declare class Options {
86
96
  * Pass the auth token of the user.
87
97
  */
88
98
  authToken?: string;
99
+ /**
100
+ * If you want to force re-login the user.
101
+ */
102
+ forceReset?: boolean;
103
+ /**
104
+ * If you want to throw an error if the user is not authenticated.
105
+ */
106
+ throwError?: boolean;
107
+ }
108
+ export interface AuthRetryConfig {
109
+ retryCount?: number;
110
+ retryDelay?: number;
111
+ }
112
+ export interface Context {
113
+ access: {
114
+ [key: string]: string | number;
115
+ };
116
+ accessFields?: Array<string>;
117
+ }
118
+ export interface VeltAuthProvider {
119
+ user: User;
120
+ options?: Options;
121
+ retryConfig?: AuthRetryConfig;
122
+ generateToken?: () => Promise<string>;
123
+ onError?: (err: unknown) => void;
124
+ }
125
+ export declare enum RevokeAccessOnType {
126
+ DOCUMENT_UNSET = "document_unset",
127
+ USER_LOGOUT = "user_logout"
128
+ }
129
+ export declare enum PermissionSource {
130
+ SET_DOCUMENTS = "setDocuments",
131
+ IDENTIFY = "identify",
132
+ GET_NOTIFICATIONS = "getNotifications",
133
+ SET_NOTIFICATIONS = "setNotifications",
134
+ REVOKE_ACCESS_ON_USER_LOGOUT = "revokeAccessOnUserLogout",
135
+ REVOKE_ACCESS_ON_DOCUMENT_UNSET = "revokeAccessOnDocumentUnset"
136
+ }
137
+ export interface RevokeAccessOn {
138
+ type: RevokeAccessOnType;
139
+ revokeOrganizationAccess?: boolean;
140
+ }
141
+ export interface VeltPermissionProvider {
142
+ retryConfig?: AuthRetryConfig;
143
+ isContextEnabled?: boolean;
144
+ revokeAccessOn?: RevokeAccessOn[];
145
+ forceRefresh?: boolean;
146
+ }
147
+ export declare enum PermissionResourceType {
148
+ FOLDER = "folder",
149
+ DOCUMENT = "document",
150
+ ORGANIZATION = "organization",
151
+ CONTEXT = "context"
152
+ }
153
+ export interface PermissionQuery {
154
+ userId: string;
155
+ resource: {
156
+ id: string;
157
+ type: PermissionResourceType;
158
+ source: PermissionSource;
159
+ organizationId: string;
160
+ context?: Context | SetDocumentsContext;
161
+ };
162
+ }
163
+ export interface PermissionResult {
164
+ userId: string;
165
+ resourceId: string;
166
+ organizationId: string;
167
+ type: PermissionResourceType;
168
+ accessRole?: UserPermissionAccessRole;
169
+ expiresAt?: number;
170
+ hasAccess: boolean;
89
171
  }