@evercam/api 1.0.0-2bf5a8b13 → 1.0.0-2c3eef808

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 (133) hide show
  1. package/README.md +4 -0
  2. package/dist/api/api/3dFirebaseApi.d.ts +210 -0
  3. package/dist/api/api/adminApi.d.ts +381 -0
  4. package/dist/api/api/aiApi.d.ts +168 -0
  5. package/dist/api/api/authzApi.d.ts +40 -0
  6. package/dist/api/{client → api/client}/axios.d.ts +2 -1
  7. package/dist/api/{client → api/client}/interceptors.d.ts +1 -1
  8. package/dist/api/api/client/swr/Swr.d.ts +14 -0
  9. package/dist/api/api/client/swr/SwrStore.d.ts +10 -0
  10. package/dist/api/api/evercamApi.d.ts +346 -0
  11. package/dist/api/{evercamLabsApi.d.ts → api/evercamLabsApi.d.ts} +9 -6
  12. package/dist/api/{exNvrApi.d.ts → api/exNvrApi.d.ts} +1 -1
  13. package/dist/api/api/index.d.ts +13 -0
  14. package/dist/api/api/ingestApi.d.ts +156 -0
  15. package/dist/api/{ptzApi.d.ts → api/ptzApi.d.ts} +12 -3
  16. package/dist/api/api/videoWallApi.d.ts +9 -0
  17. package/dist/api/{weatherApi.d.ts → api/weatherApi.d.ts} +2 -2
  18. package/dist/api/index.d.ts +3 -13
  19. package/dist/api/types/360.d.ts +395 -0
  20. package/dist/api/types/aconex.d.ts +143 -0
  21. package/dist/api/types/admin.d.ts +51 -0
  22. package/dist/api/types/aiConfigs.d.ts +154 -0
  23. package/dist/{types → api/types}/analytics.d.ts +196 -40
  24. package/dist/{types → api/types}/anpr.d.ts +55 -13
  25. package/dist/{types → api/types}/auditLogs.d.ts +19 -1
  26. package/dist/api/types/authz.d.ts +107 -0
  27. package/dist/{types → api/types}/autodesk.d.ts +7 -7
  28. package/dist/api/types/automation.d.ts +95 -0
  29. package/dist/{types → api/types}/axios.d.ts +30 -7
  30. package/dist/{types → api/types}/bim.d.ts +37 -6
  31. package/dist/{types → api/types}/camera.d.ts +112 -94
  32. package/dist/{types → api/types}/comments.d.ts +26 -11
  33. package/dist/api/types/company.d.ts +115 -0
  34. package/dist/{types → api/types}/compare.d.ts +20 -5
  35. package/dist/{types → api/types}/connector.d.ts +4 -5
  36. package/dist/api/types/coolify.d.ts +36 -0
  37. package/dist/{types → api/types}/copilot.d.ts +11 -6
  38. package/dist/{types → api/types}/countries.d.ts +0 -7
  39. package/dist/{types → api/types}/credentials.d.ts +1 -0
  40. package/dist/{types → api/types}/detections.d.ts +23 -34
  41. package/dist/api/types/drone.d.ts +107 -0
  42. package/dist/{types → api/types}/errors.d.ts +24 -0
  43. package/dist/{types → api/types}/gateReport.d.ts +50 -158
  44. package/dist/api/types/gateReportManagement.d.ts +175 -0
  45. package/dist/{types → api/types}/hdd.d.ts +26 -1
  46. package/dist/{types → api/types}/index.d.ts +14 -1
  47. package/dist/api/types/ingest.d.ts +158 -0
  48. package/dist/{types → api/types}/kit.d.ts +101 -10
  49. package/dist/api/types/map.d.ts +16 -0
  50. package/dist/{types → api/types}/media.d.ts +8 -2
  51. package/dist/api/types/notification.d.ts +57 -0
  52. package/dist/api/types/oauth.d.ts +62 -0
  53. package/dist/api/types/planner.d.ts +132 -0
  54. package/dist/api/types/posthog.d.ts +53 -0
  55. package/dist/{types → api/types}/procore.d.ts +26 -16
  56. package/dist/{types → api/types}/progressPhoto.d.ts +11 -23
  57. package/dist/api/types/project.d.ts +247 -0
  58. package/dist/{types → api/types}/recording.d.ts +9 -13
  59. package/dist/api/types/recycleBin.d.ts +14 -0
  60. package/dist/api/types/ring.d.ts +53 -0
  61. package/dist/{types → api/types}/roi.d.ts +4 -3
  62. package/dist/{types → api/types}/routeParams.d.ts +4 -2
  63. package/dist/{types → api/types}/router.d.ts +20 -1
  64. package/dist/{types → api/types}/shared.d.ts +31 -10
  65. package/dist/api/types/shares.d.ts +58 -0
  66. package/dist/{types → api/types}/sim.d.ts +6 -6
  67. package/dist/api/types/siteAnalytics.d.ts +287 -0
  68. package/dist/api/types/siteAnalyticsManagement.d.ts +92 -0
  69. package/dist/api/types/siteView.d.ts +73 -0
  70. package/dist/api/types/smartSeach.d.ts +5 -0
  71. package/dist/api/types/snapshots.d.ts +104 -0
  72. package/dist/api/types/sso.d.ts +55 -0
  73. package/dist/api/types/storageProvider.d.ts +19 -0
  74. package/dist/api/types/storyblok.d.ts +40 -0
  75. package/dist/{types → api/types}/streaming.d.ts +4 -5
  76. package/dist/{types → api/types}/tag.d.ts +1 -1
  77. package/dist/api/types/time.d.ts +7 -0
  78. package/dist/{types → api/types}/timelapse.d.ts +8 -5
  79. package/dist/{types → api/types}/user.d.ts +106 -40
  80. package/dist/api/types/videoWall.d.ts +66 -0
  81. package/dist/api/types/weather.d.ts +153 -0
  82. package/dist/{types → api/types}/widget.d.ts +96 -16
  83. package/dist/{types → api/types}/xweather.d.ts +4 -4
  84. package/dist/index.d.ts +2 -3
  85. package/dist/index.js +2404 -982
  86. package/dist/index.js.map +1 -1
  87. package/dist/index.umd.cjs +1 -1
  88. package/dist/index.umd.cjs.map +1 -1
  89. package/dist/shared/api/index.d.ts +3 -0
  90. package/dist/shared/components/timelinePlayer/providers/index.d.ts +3 -0
  91. package/dist/shared/components/timelinePlayer/providers/timelineAnprProvider.d.ts +17 -0
  92. package/dist/shared/components/timelinePlayer/providers/timelineDataProvider.d.ts +13 -0
  93. package/dist/shared/components/timelinePlayer/providers/timelineLuminanceProvider.d.ts +16 -0
  94. package/dist/shared/types/components.d.ts +346 -0
  95. package/dist/shared/types/customDataTableFilters.d.ts +10 -0
  96. package/dist/shared/types/imagePlayer.d.ts +41 -0
  97. package/dist/shared/types/index.d.ts +6 -0
  98. package/dist/shared/types/rbac.d.ts +67 -0
  99. package/dist/shared/types/timeline.d.ts +10 -0
  100. package/package.json +7 -4
  101. package/dist/api/3dFirebaseApi.d.ts +0 -10
  102. package/dist/api/adminApi.d.ts +0 -313
  103. package/dist/api/aiApi.d.ts +0 -125
  104. package/dist/api/authzApi.d.ts +0 -21
  105. package/dist/api/evercamApi.d.ts +0 -294
  106. package/dist/api/ingestApi.d.ts +0 -68
  107. package/dist/api/videoWallApi.d.ts +0 -9
  108. package/dist/types/360.d.ts +0 -87
  109. package/dist/types/aconex.d.ts +0 -45
  110. package/dist/types/automation.d.ts +0 -6
  111. package/dist/types/company.d.ts +0 -46
  112. package/dist/types/coolify.d.ts +0 -18
  113. package/dist/types/drone.d.ts +0 -17
  114. package/dist/types/ingest.d.ts +0 -43
  115. package/dist/types/map.d.ts +0 -4
  116. package/dist/types/notification.d.ts +0 -27
  117. package/dist/types/planner.d.ts +0 -28
  118. package/dist/types/project.d.ts +0 -127
  119. package/dist/types/shares.d.ts +0 -196
  120. package/dist/types/siteAnalytics.d.ts +0 -141
  121. package/dist/types/snapshots.d.ts +0 -50
  122. package/dist/types/storageServers.d.ts +0 -4
  123. package/dist/types/time.d.ts +0 -21
  124. package/dist/types/videoWall.d.ts +0 -33
  125. package/dist/types/weather.d.ts +0 -87
  126. /package/dist/api/{client → api/client}/customErrors.d.ts +0 -0
  127. /package/dist/api/{client → api/client}/index.d.ts +0 -0
  128. /package/dist/api/{webRtcApi.d.ts → api/webRtcApi.d.ts} +0 -0
  129. /package/dist/{types → api/types}/nvr.d.ts +0 -0
  130. /package/dist/{types → api/types}/systemCheck.d.ts +0 -0
  131. /package/dist/{types → api/types}/vendorModel.d.ts +0 -0
  132. /package/dist/{types → api/types}/voyageControl.d.ts +0 -0
  133. /package/dist/{utils.d.ts → api/utils.d.ts} +0 -0
@@ -0,0 +1,104 @@
1
+ import { CameraExid, DateType, PaginationParams, Schedule } from "@evercam/api/types";
2
+ export type SnapshotExtractionQyeryParams = PaginationParams & {
3
+ camera: string;
4
+ cameraExid: CameraExid;
5
+ status: SnapshotExtractionStatus;
6
+ };
7
+ export declare enum SnapshotExtractionStatus {
8
+ Cancelling = "canceling",
9
+ Cancelled = "cancelled",
10
+ Completed = "completed",
11
+ Failed = "failed",
12
+ Pending = "pending",
13
+ Processing = "processing"
14
+ }
15
+ export declare enum SnapshotExtractionType {
16
+ Cloud = "cloud",
17
+ Local = "local",
18
+ Timelapse = "timelapse"
19
+ }
20
+ export type SnapshotExtraction = {
21
+ id: number;
22
+ cameraId: number;
23
+ cameraExid: CameraExid;
24
+ cameraName: string;
25
+ fromDate: DateType;
26
+ toDate: DateType;
27
+ type: SnapshotExtractionType;
28
+ notes: string;
29
+ status: SnapshotExtractionStatus;
30
+ interval: number;
31
+ requestor: string;
32
+ jpegsToDropbox: boolean;
33
+ injectTo_cr: Boolean;
34
+ schedule: Schedule;
35
+ created_at: DateType;
36
+ jpegCount?: number;
37
+ obanJobId?: number;
38
+ };
39
+ export type SnapshotTestPayload = {
40
+ cameraExid?: CameraExid;
41
+ camUsername: string;
42
+ camPassword: string;
43
+ externalUrl: string;
44
+ jpgUrl: string;
45
+ };
46
+ export type SnapshotTestResponse = {
47
+ status: string;
48
+ data: string;
49
+ };
50
+ export type SnapshotEmailDeliveryRequestPayload = {
51
+ snapshot: string;
52
+ recipients?: string[];
53
+ message?: string;
54
+ };
55
+ export type SnapshotEmailDeliveryResponsePayload = {
56
+ warning?: string;
57
+ };
58
+ export type DeleteSnapshotQueryParams = {
59
+ fromDate: DateType;
60
+ toDate: DateType;
61
+ adminEmail: string;
62
+ adminFullname: string;
63
+ };
64
+ export type SnapshotTransfer = {
65
+ id: number;
66
+ sourceCamera: SnapshotTransferCamera;
67
+ targetCamera: SnapshotTransferCamera;
68
+ fromDate: DateType;
69
+ toDate: DateType;
70
+ overwriteExisting?: boolean | null;
71
+ deleteSource?: boolean | null;
72
+ requestor: SnapshotTransferRequestor;
73
+ status: SnapshotTransferStatus;
74
+ insertedAt: DateType;
75
+ attempts?: number | null;
76
+ errorMessage?: string | null;
77
+ snapshotsTransferred?: number | null;
78
+ };
79
+ export type SnapshotTransferCamera = {
80
+ id: number;
81
+ exid: CameraExid;
82
+ name: string;
83
+ };
84
+ export type SnapshotTransferRequestor = {
85
+ email: string;
86
+ firstname: string;
87
+ lastname: string;
88
+ };
89
+ export declare enum SnapshotTransferStatus {
90
+ Completed = "completed",
91
+ Failed = "failed",
92
+ Processing = "processing",
93
+ Pending = "pending",
94
+ Cancelled = "cancelled"
95
+ }
96
+ export type TransferCloudRecordingsQueryParams = PaginationParams & {
97
+ targetCameraExid: CameraExid;
98
+ fromDate: DateType;
99
+ toDate: DateType;
100
+ overwriteExisting?: boolean;
101
+ deleteSource?: boolean;
102
+ adminEmail?: string;
103
+ adminFullname?: string;
104
+ };
@@ -0,0 +1,55 @@
1
+ export type SsoProvider = {
2
+ id: number;
3
+ name: string;
4
+ exid: string;
5
+ clientId: string;
6
+ clientSecret: string;
7
+ scope: string;
8
+ responseType: string;
9
+ loginUrl: string;
10
+ iconUrl: string;
11
+ options: {
12
+ showOnLogin: boolean;
13
+ showOnSignup: boolean;
14
+ };
15
+ tokenUri: string;
16
+ tokenIntrospectionUri: string;
17
+ userInfoUri: string;
18
+ enabled: boolean;
19
+ };
20
+ export type SsoUpdatePayload = {
21
+ name: string;
22
+ exid: string;
23
+ clientId: string;
24
+ clientSecret: string;
25
+ scope: string;
26
+ responseType: string;
27
+ loginUrl: string;
28
+ iconUrl: string;
29
+ options: {
30
+ showOnLogin: boolean;
31
+ showOnSignup: boolean;
32
+ };
33
+ tokenUri: string;
34
+ tokenIntrospectionUri: string;
35
+ userInfoUri: string;
36
+ enabled: boolean;
37
+ };
38
+ export type SsoCreatePayload = {
39
+ name: string;
40
+ exid: string;
41
+ clientId: string;
42
+ clientSecret: string;
43
+ scope: string;
44
+ responseType: string;
45
+ loginUrl: string;
46
+ iconUrl: string;
47
+ options: {
48
+ showOnLogin: boolean;
49
+ showOnSignup: boolean;
50
+ };
51
+ tokenUri: string;
52
+ tokenIntrospectionUri: string;
53
+ userInfoUri: string;
54
+ enabled: boolean;
55
+ };
@@ -0,0 +1,19 @@
1
+ import type { DateType } from "@evercam/api/types";
2
+ export type StorageProvider = {
3
+ id?: number;
4
+ cameraId: number;
5
+ type: string;
6
+ provider: string;
7
+ url: string;
8
+ startDate: DateType;
9
+ endDate: DateType;
10
+ config: Record<string, any>;
11
+ insertedAt?: DateType;
12
+ };
13
+ export type StorageProvidersResponsePayload = {
14
+ providers: StorageProvider[];
15
+ };
16
+ export declare enum ProjectStorageProvider {
17
+ Seaweedfs = "seaweedfs",
18
+ S3 = "s3"
19
+ }
@@ -0,0 +1,40 @@
1
+ import type { JsonObject, JsonValue } from "@evercam/api/types";
2
+ export type StoryblokAsset = {
3
+ id: number | null;
4
+ alt: string | null;
5
+ name: string;
6
+ focus: string | null;
7
+ title: string | null;
8
+ filename: string;
9
+ copyright: string | null;
10
+ fieldtype: "asset";
11
+ source?: string;
12
+ metaData?: JsonObject;
13
+ isExternalUrl?: boolean;
14
+ };
15
+ export type StoryblokStory<TContent extends JsonObject = JsonObject> = {
16
+ id: number;
17
+ uuid: string;
18
+ name: string;
19
+ slug: string;
20
+ fullSlug: string;
21
+ content: TContent;
22
+ createdAt: string;
23
+ publishedAt: string | null;
24
+ updatedAt: string;
25
+ position: number;
26
+ tagList: string[];
27
+ isStartpage: boolean;
28
+ parentId: number | null;
29
+ groupId: string;
30
+ firstPublishedAt: string | null;
31
+ releaseId: number | null;
32
+ lang: string;
33
+ path: string;
34
+ };
35
+ export type StoryblokResponse<TContent extends JsonObject = JsonObject> = {
36
+ story: StoryblokStory<TContent>;
37
+ cv: number;
38
+ rels: JsonValue[];
39
+ links: JsonValue[];
40
+ };
@@ -1,11 +1,11 @@
1
- import { DateTime_Z_micros, KitMetricData } from "@/types";
1
+ import { KitMetricData } from "@evercam/api/types";
2
2
  export type ExNvrLoginResponse = {
3
3
  accessToken: string;
4
4
  };
5
5
  export type ExNvrRecordingInterval = {
6
6
  active: boolean;
7
- startDate: DateTime_Z_micros;
8
- endDate: DateTime_Z_micros;
7
+ startDate: string;
8
+ endDate: string;
9
9
  };
10
10
  export type ExNvrDeviceConfig = {
11
11
  id: string;
@@ -39,8 +39,7 @@ export type ExNvrDeviceConfig = {
39
39
  timezone: string;
40
40
  };
41
41
  export declare enum ExNvrFootageAvailableStatus {
42
- Active = "Active",
43
- NotActive = "Not Active",
42
+ Available = "Available",
44
43
  NotAvailable = "Not Available"
45
44
  }
46
45
  export declare enum ExNvrDeviceState {
@@ -1,4 +1,4 @@
1
- import { Kit } from "@/types/kit";
1
+ import { Kit } from "@evercam/api/types/kit";
2
2
  export type Tag<T = string> = {
3
3
  id?: number;
4
4
  name: T;
@@ -0,0 +1,7 @@
1
+ import { Moment } from "moment-timezone";
2
+ export type DateType = Date | string | number;
3
+ export type ExtendedDateType = Moment | DateType;
4
+ export type DateRangeFilter = {
5
+ fromDate: DateType;
6
+ toDate: DateType;
7
+ };
@@ -1,4 +1,4 @@
1
- import { DateType, Schedule } from "@/types";
1
+ import { DateType, Point2D, Schedule } from "@evercam/api/types";
2
2
  export declare enum TimelapseStatus {
3
3
  Pending = 11,
4
4
  Completed = 5,
@@ -7,7 +7,8 @@ export declare enum TimelapseStatus {
7
7
  export declare enum TimelapseDuration {
8
8
  ThirtySeconds = 30,
9
9
  SixtySeconds = 60,
10
- NintySeconds = 90
10
+ NintySeconds = 90,
11
+ TwoMinutes = 120
11
12
  }
12
13
  export type TimelapseVideoOptions = {
13
14
  width?: number;
@@ -15,7 +16,9 @@ export type TimelapseVideoOptions = {
15
16
  removeTimestamp: boolean;
16
17
  smoothTransition: boolean;
17
18
  evercamWatermark: boolean;
19
+ sectionBlur?: boolean;
18
20
  timestampPosition?: TimestampPositionCoordinates;
21
+ blurRegions?: BlurRegionCoordinates[];
19
22
  };
20
23
  export type TimestampPositionCoordinates = {
21
24
  x: number;
@@ -23,14 +26,14 @@ export type TimestampPositionCoordinates = {
23
26
  w: number;
24
27
  h: number;
25
28
  };
29
+ export type BlurRegionCoordinates = Point2D[];
26
30
  export type TimelapseLogoOptions = {
27
- id: number;
31
+ id?: number;
28
32
  x: number;
29
33
  y: number;
30
34
  width: number;
31
35
  height: number;
32
36
  };
33
- export type TimelapseSchedules = string | Schedule;
34
37
  export declare enum TimelapseScheduleType {
35
38
  Continuous = "continuous",
36
39
  WorkingHours = "workingHours",
@@ -56,7 +59,7 @@ export type TimelapseFilterQueryParams = {
56
59
  to?: DateType;
57
60
  period?: TimelapsePeriod;
58
61
  duration?: number;
59
- schedule?: TimelapseSchedules;
62
+ schedule?: Schedule;
60
63
  };
61
64
  export type TimelapseCreationRequestPayload = {
62
65
  title: string;
@@ -1,4 +1,5 @@
1
- import type { DateTime, PaginationParams } from "@/types";
1
+ import type { CameraExid, PaginationParams } from "@evercam/api/types";
2
+ import { Role, RoleSubRole } from "@evercam/api/types/authz";
2
3
  export type User = {
3
4
  id?: number;
4
5
  fullname?: string;
@@ -9,10 +10,16 @@ export type User = {
9
10
  country: string;
10
11
  isAdmin: boolean;
11
12
  persona: Persona;
12
- companyId?: string;
13
+ companyId?: string | number;
13
14
  companyName?: string;
14
15
  companyExid?: string;
15
16
  features?: Array<UserFeatureFlag>;
17
+ confirmedAt?: string;
18
+ createdAt?: string;
19
+ lastLoginAt?: string;
20
+ token?: string;
21
+ updatedAt?: string;
22
+ evercamAccount?: boolean;
16
23
  };
17
24
  export type AdminUser = {
18
25
  id: number;
@@ -32,14 +39,9 @@ export type AdminUser = {
32
39
  camerasOwned: number;
33
40
  countryId: number;
34
41
  countryName: string;
35
- createdAt: DateTime;
42
+ createdAt: string;
36
43
  integrations: string[];
37
- lastEventBrowser: string;
38
- lastEvenCreatedAt: DateTime;
39
- lastEventId: number;
40
- lastEventIpAddress: string;
41
- lastEventName: string;
42
- lastEventOs: string;
44
+ lastSeenAt: string;
43
45
  lastLoginAt: string;
44
46
  lastname: string;
45
47
  persona: string;
@@ -53,7 +55,6 @@ export declare enum UserFeatureFlag {
53
55
  CompanyAdmin = "company-admin",
54
56
  VideoWalls = "video-walls",
55
57
  MassCameraSharing = "mass-camera-sharing",
56
- Copilot = "copilot",
57
58
  ProjectSharing = "project-sharing"
58
59
  }
59
60
  export type ProjectUser = User & {
@@ -64,6 +65,10 @@ export type ProjectUser = User & {
64
65
  cameraExid: string;
65
66
  cameraRights: string;
66
67
  };
68
+ export declare enum ContactRole {
69
+ SalesExecutive = "Sales Executive",
70
+ CustomerSuccessManager = "Customer Success Manager"
71
+ }
67
72
  export declare enum Persona {
68
73
  HQ = "HQ",
69
74
  PM = "PM",
@@ -90,26 +95,44 @@ export type RemotePasswordUpdateRequestPayload = {
90
95
  currentPassword: string;
91
96
  newPassword: string;
92
97
  };
93
- export type LoginResponsePayload = {
94
- confirmedAt?: string;
95
- country?: string;
96
- createdAt?: string;
97
- email?: string;
98
- firstname?: string;
99
- id?: string;
100
- isAdmin?: boolean;
101
- lastLoginAt?: string;
102
- lastname?: string;
103
- persona?: Persona;
104
- telephone?: string;
105
- token?: string;
106
- updatedAt?: string;
107
- evercamAccount?: string;
98
+ export type AuthPasswordOption = {
99
+ type: "password";
100
+ };
101
+ export type AuthSsoOption = {
102
+ type: "sso";
103
+ name: string;
104
+ scope: string;
105
+ prompt: string | null;
106
+ exid: string;
107
+ clientId: string;
108
+ iconUrl: string;
109
+ loginUrl: string;
110
+ responseType: string;
111
+ };
112
+ export type AuthOption = AuthPasswordOption | AuthSsoOption;
113
+ export type AuthOptionsResponsePayload = {
114
+ options: AuthOption[];
115
+ };
116
+ export type AuthProviderConfigPayload = {
117
+ name: string;
118
+ scope: string;
119
+ prompt: string | null;
120
+ exid: string;
121
+ clientId: string;
122
+ iconUrl: string;
123
+ loginUrl: string;
124
+ responseType: string;
108
125
  };
109
126
  export type LogoutParams = {
110
127
  token: string;
111
128
  fromAdmin?: boolean;
112
129
  };
130
+ export type ConfirmUserRequestPayload = {
131
+ c: string;
132
+ };
133
+ export type DeleteActiveSessionRequestPayload = {
134
+ authorization: string;
135
+ };
113
136
  export type UserSession = {
114
137
  browser: string;
115
138
  createdAt: string;
@@ -153,7 +176,6 @@ export type SessionActivitiesListRequestPayload = {
153
176
  };
154
177
  export type SignupUserRequestPayload = {
155
178
  telephone: string;
156
- token: string;
157
179
  firstname: string;
158
180
  lastname: string;
159
181
  email: string;
@@ -171,13 +193,20 @@ export type UserUpdateRequestPayload = {
171
193
  country: string;
172
194
  persona: string;
173
195
  };
174
- export type UserDeleteRequestPayload = {
175
- verifEmail: string;
176
- };
177
196
  export type GoogleAuthRequestPayload = {
178
197
  code: string;
179
198
  redirectUri: string;
180
199
  };
200
+ export type ProjectContact = {
201
+ name: string;
202
+ role: ContactRole | string;
203
+ email?: string;
204
+ phone?: string;
205
+ photo?: string;
206
+ };
207
+ export type ProjectContactsResponsePayload = {
208
+ data: ProjectContact[];
209
+ };
181
210
  export type UserStatsResponse = {
182
211
  data: {
183
212
  userStats: AdminUser;
@@ -198,7 +227,7 @@ export type UserProject = {
198
227
  id: number;
199
228
  exid: string;
200
229
  name: string;
201
- startedAt: DateTime;
230
+ startedAt: string;
202
231
  };
203
232
  export type UserProjectResponse = {
204
233
  data: UserProject[];
@@ -218,9 +247,9 @@ export type Admin = {
218
247
  id: number;
219
248
  fullname: string;
220
249
  email: string;
221
- createdAt: DateTime;
222
- updatedAt: DateTime;
223
- lastSignInAt: DateTime;
250
+ createdAt: string;
251
+ updatedAt: string;
252
+ lastSignInAt: string;
224
253
  signInCount: number;
225
254
  lastSignInIp: string;
226
255
  apiId: string;
@@ -232,17 +261,17 @@ export type ImpersonateUserResponse = {
232
261
  lastname: string;
233
262
  telephone: string;
234
263
  email: string;
235
- is_admin: boolean;
264
+ isAdmin: boolean;
236
265
  persona: Persona;
237
266
  country: string;
238
267
  companyId: number;
239
268
  companyExid: string;
240
269
  companyName: string;
241
270
  evercamAccount: boolean;
242
- createdAt: DateTime;
243
- updatedAt: DateTime;
244
- confirmedAt: DateTime;
245
- last_loginAt: DateTime;
271
+ createdAt: string;
272
+ updatedAt: string;
273
+ confirmedAt: string;
274
+ lastLoginAt: string;
246
275
  features: UserFeatureFlag[];
247
276
  token: string;
248
277
  };
@@ -271,6 +300,43 @@ export type Suppression = {
271
300
  id: number;
272
301
  email: string;
273
302
  source: string;
274
- insertedAt: DateTime;
275
- updatedAt: DateTime;
303
+ insertedAt: string;
304
+ updatedAt: string;
305
+ };
306
+ type Email = string;
307
+ export type WsAccessRestrictionUpdate = {
308
+ camera_id: CameraExid;
309
+ is_access_restricted: boolean;
310
+ };
311
+ export type WsUserRestrictionItem = {
312
+ user_id: number;
313
+ camera_id: CameraExid;
314
+ is_user_access_restricted: boolean;
315
+ };
316
+ export type WsUserRestrictionUpdate = WsUserRestrictionItem[];
317
+ /**
318
+ * Backend WebSocket event payload:
319
+ * {
320
+ * user: {
321
+ * "someone@domain.com": {camera_id, is_access_restricted} OR [{...}, {...}]
322
+ * }
323
+ * }
324
+ */
325
+ export type WsRestrictionChangedPayload = {
326
+ user: Record<Email, WsAccessRestrictionUpdate | WsUserRestrictionUpdate>;
327
+ };
328
+ export type ProjectUserWithRole = {
329
+ id: number;
330
+ email: string;
331
+ fullname: string;
332
+ company: {
333
+ id: number;
334
+ name: string;
335
+ exid: string;
336
+ };
337
+ persona: Persona;
338
+ permissions: string[];
339
+ role: Role;
340
+ subRoles: RoleSubRole[];
276
341
  };
342
+ export {};
@@ -0,0 +1,66 @@
1
+ import { Camera, Media, PaginationParams } from "@evercam/api/types";
2
+ export declare enum VideoWallItemType {
3
+ LiveView = "live",
4
+ Video = "video",
5
+ Image = "image"
6
+ }
7
+ export type VideoWallItem<T extends Camera | Media = Camera> = {
8
+ value: T;
9
+ type: VideoWallItemType;
10
+ };
11
+ export type VideoWallPresetGridConfig = {
12
+ items: VideoWallPresetItem[];
13
+ meta?: VideoWallPresetMeta;
14
+ };
15
+ export type VideoWallPresetItem = {
16
+ i: string | number;
17
+ x: number;
18
+ y: number;
19
+ w: number;
20
+ h: number;
21
+ camera: Camera;
22
+ weather?: Record<string, unknown>;
23
+ media?: Media;
24
+ moved?: boolean;
25
+ };
26
+ export type VideoWallPresetMeta = {
27
+ colNum: number;
28
+ rowCount: number;
29
+ tile: number;
30
+ template: string;
31
+ gridSize: number;
32
+ };
33
+ export type VideoWallSource = "default" | "widget";
34
+ export interface VideoWall {
35
+ id: number;
36
+ exid: string;
37
+ name: string;
38
+ source: VideoWallSource;
39
+ config: Record<string, any>;
40
+ insertedAt: string;
41
+ updatedAt: string;
42
+ user: {
43
+ id: number;
44
+ firstname: string;
45
+ lastname: string;
46
+ email: string;
47
+ };
48
+ }
49
+ export interface VideoWallListParams extends PaginationParams {
50
+ projectExid?: string;
51
+ id?: number;
52
+ exid?: string;
53
+ projectId?: number;
54
+ userId?: number;
55
+ name?: string;
56
+ project?: string;
57
+ user?: string;
58
+ source?: VideoWallSource;
59
+ }
60
+ export type VideoWallCreateUpdatePayload = {
61
+ projectExid?: string;
62
+ name: string;
63
+ source?: VideoWallSource;
64
+ config: Record<string, unknown>;
65
+ scope?: string;
66
+ };