@evercam/api 1.0.0-e1ad6ae1b → 1.0.0-e1cf8aca7

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 (128) hide show
  1. package/README.md +3 -0
  2. package/dist/api/api/3dFirebaseApi.d.ts +210 -0
  3. package/dist/api/{adminApi.d.ts → api/adminApi.d.ts} +103 -96
  4. package/dist/api/api/aiApi.d.ts +168 -0
  5. package/dist/api/api/authzApi.d.ts +37 -0
  6. package/dist/api/{client → api/client}/axios.d.ts +2 -1
  7. package/dist/api/{client → api/client}/swr/Swr.d.ts +1 -1
  8. package/dist/api/{evercamApi.d.ts → api/evercamApi.d.ts} +133 -100
  9. package/dist/api/{evercamLabsApi.d.ts → api/evercamLabsApi.d.ts} +9 -7
  10. package/dist/api/{exNvrApi.d.ts → api/exNvrApi.d.ts} +1 -1
  11. package/dist/api/api/index.d.ts +13 -0
  12. package/dist/api/api/ingestApi.d.ts +156 -0
  13. package/dist/api/{ptzApi.d.ts → api/ptzApi.d.ts} +12 -3
  14. package/dist/api/api/videoWallApi.d.ts +9 -0
  15. package/dist/api/{weatherApi.d.ts → api/weatherApi.d.ts} +2 -2
  16. package/dist/api/index.d.ts +3 -13
  17. package/dist/api/types/360.d.ts +395 -0
  18. package/dist/api/types/aconex.d.ts +143 -0
  19. package/dist/api/types/admin.d.ts +51 -0
  20. package/dist/api/types/aiConfigs.d.ts +154 -0
  21. package/dist/{types → api/types}/analytics.d.ts +167 -50
  22. package/dist/{types → api/types}/anpr.d.ts +48 -2
  23. package/dist/{types → api/types}/auditLogs.d.ts +19 -1
  24. package/dist/api/types/authz.d.ts +61 -0
  25. package/dist/{types → api/types}/autodesk.d.ts +7 -7
  26. package/dist/api/types/automation.d.ts +95 -0
  27. package/dist/{types → api/types}/axios.d.ts +17 -10
  28. package/dist/{types → api/types}/bim.d.ts +36 -5
  29. package/dist/{types → api/types}/camera.d.ts +103 -98
  30. package/dist/{types → api/types}/comments.d.ts +10 -11
  31. package/dist/{types → api/types}/company.d.ts +42 -1
  32. package/dist/{types → api/types}/compare.d.ts +20 -5
  33. package/dist/{types → api/types}/connector.d.ts +4 -5
  34. package/dist/{types → api/types}/coolify.d.ts +18 -2
  35. package/dist/{types → api/types}/copilot.d.ts +11 -6
  36. package/dist/{types → api/types}/credentials.d.ts +1 -0
  37. package/dist/{types → api/types}/detections.d.ts +22 -32
  38. package/dist/api/types/drone.d.ts +107 -0
  39. package/dist/{types → api/types}/errors.d.ts +11 -0
  40. package/dist/{types → api/types}/gateReport.d.ts +50 -158
  41. package/dist/api/types/gateReportManagement.d.ts +175 -0
  42. package/dist/{types → api/types}/hdd.d.ts +26 -1
  43. package/dist/{types → api/types}/index.d.ts +11 -1
  44. package/dist/api/types/ingest.d.ts +158 -0
  45. package/dist/{types → api/types}/kit.d.ts +44 -7
  46. package/dist/api/types/map.d.ts +16 -0
  47. package/dist/{types → api/types}/media.d.ts +8 -2
  48. package/dist/api/types/notification.d.ts +57 -0
  49. package/dist/api/types/oauth.d.ts +62 -0
  50. package/dist/api/types/planner.d.ts +132 -0
  51. package/dist/api/types/posthog.d.ts +53 -0
  52. package/dist/{types → api/types}/procore.d.ts +13 -6
  53. package/dist/{types → api/types}/progressPhoto.d.ts +6 -32
  54. package/dist/api/types/project.d.ts +247 -0
  55. package/dist/{types → api/types}/recording.d.ts +9 -12
  56. package/dist/{types → api/types}/recycleBin.d.ts +1 -1
  57. package/dist/api/types/ring.d.ts +53 -0
  58. package/dist/{types → api/types}/roi.d.ts +4 -3
  59. package/dist/{types → api/types}/router.d.ts +20 -1
  60. package/dist/{types → api/types}/shared.d.ts +30 -4
  61. package/dist/api/types/shares.d.ts +58 -0
  62. package/dist/{types → api/types}/sim.d.ts +6 -6
  63. package/dist/api/types/siteAnalytics.d.ts +287 -0
  64. package/dist/api/types/siteAnalyticsManagement.d.ts +92 -0
  65. package/dist/api/types/siteView.d.ts +73 -0
  66. package/dist/api/types/smartSeach.d.ts +5 -0
  67. package/dist/{types → api/types}/snapshots.d.ts +49 -4
  68. package/dist/api/types/storageProvider.d.ts +19 -0
  69. package/dist/api/types/storyblok.d.ts +40 -0
  70. package/dist/{types → api/types}/streaming.d.ts +3 -3
  71. package/dist/{types → api/types}/tag.d.ts +1 -1
  72. package/dist/api/types/time.d.ts +7 -0
  73. package/dist/{types → api/types}/timelapse.d.ts +8 -5
  74. package/dist/{types → api/types}/user.d.ts +106 -35
  75. package/dist/api/types/videoWall.d.ts +66 -0
  76. package/dist/{types → api/types}/weather.d.ts +75 -11
  77. package/dist/{types → api/types}/widget.d.ts +72 -11
  78. package/dist/{types → api/types}/xweather.d.ts +4 -4
  79. package/dist/index.d.ts +2 -3
  80. package/dist/index.js +2014 -1021
  81. package/dist/index.js.map +1 -1
  82. package/dist/index.umd.cjs +1 -1
  83. package/dist/index.umd.cjs.map +1 -1
  84. package/dist/shared/api/index.d.ts +3 -0
  85. package/dist/shared/components/timelinePlayer/providers/index.d.ts +3 -0
  86. package/dist/shared/components/timelinePlayer/providers/timelineAnprProvider.d.ts +17 -0
  87. package/dist/shared/components/timelinePlayer/providers/timelineDataProvider.d.ts +13 -0
  88. package/dist/shared/components/timelinePlayer/providers/timelineLuminanceProvider.d.ts +16 -0
  89. package/dist/shared/types/components.d.ts +334 -0
  90. package/dist/shared/types/customDataTableFilters.d.ts +10 -0
  91. package/dist/shared/types/imagePlayer.d.ts +41 -0
  92. package/dist/shared/types/index.d.ts +6 -0
  93. package/dist/shared/types/rbac.d.ts +67 -0
  94. package/dist/shared/types/timeline.d.ts +10 -0
  95. package/package.json +6 -4
  96. package/dist/api/3dFirebaseApi.d.ts +0 -20
  97. package/dist/api/aiApi.d.ts +0 -146
  98. package/dist/api/authzApi.d.ts +0 -21
  99. package/dist/api/ingestApi.d.ts +0 -88
  100. package/dist/api/videoWallApi.d.ts +0 -9
  101. package/dist/types/360.d.ts +0 -139
  102. package/dist/types/aconex.d.ts +0 -45
  103. package/dist/types/automation.d.ts +0 -10
  104. package/dist/types/drone.d.ts +0 -17
  105. package/dist/types/ingest.d.ts +0 -47
  106. package/dist/types/map.d.ts +0 -4
  107. package/dist/types/notification.d.ts +0 -27
  108. package/dist/types/planner.d.ts +0 -32
  109. package/dist/types/posthog.d.ts +0 -18
  110. package/dist/types/project.d.ts +0 -129
  111. package/dist/types/shares.d.ts +0 -196
  112. package/dist/types/siteAnalytics.d.ts +0 -142
  113. package/dist/types/storageServers.d.ts +0 -4
  114. package/dist/types/time.d.ts +0 -21
  115. package/dist/types/videoWall.d.ts +0 -33
  116. /package/dist/api/{client → api/client}/customErrors.d.ts +0 -0
  117. /package/dist/api/{client → api/client}/index.d.ts +0 -0
  118. /package/dist/api/{client → api/client}/interceptors.d.ts +0 -0
  119. /package/dist/api/{client → api/client}/swr/SwrStore.d.ts +0 -0
  120. /package/dist/api/{webRtcApi.d.ts → api/webRtcApi.d.ts} +0 -0
  121. /package/dist/{types → api/types}/countries.d.ts +0 -0
  122. /package/dist/{types → api/types}/nvr.d.ts +0 -0
  123. /package/dist/{types → api/types}/routeParams.d.ts +0 -0
  124. /package/dist/{types → api/types}/sso.d.ts +0 -0
  125. /package/dist/{types → api/types}/systemCheck.d.ts +0 -0
  126. /package/dist/{types → api/types}/vendorModel.d.ts +0 -0
  127. /package/dist/{types → api/types}/voyageControl.d.ts +0 -0
  128. /package/dist/{utils.d.ts → api/utils.d.ts} +0 -0
@@ -1,12 +1,15 @@
1
- import { CameraExid, DateType, PaginationParams, Schedule } from "@/types";
1
+ import { CameraExid, DateType, PaginationParams, Schedule } from "@evercam/api/types";
2
2
  export type SnapshotExtractionQyeryParams = PaginationParams & {
3
3
  camera: string;
4
4
  cameraExid: CameraExid;
5
5
  status: SnapshotExtractionStatus;
6
6
  };
7
7
  export declare enum SnapshotExtractionStatus {
8
+ Cancelling = "canceling",
9
+ Cancelled = "cancelled",
8
10
  Completed = "completed",
9
11
  Failed = "failed",
12
+ Pending = "pending",
10
13
  Processing = "processing"
11
14
  }
12
15
  export declare enum SnapshotExtractionType {
@@ -30,6 +33,8 @@ export type SnapshotExtraction = {
30
33
  injectTo_cr: Boolean;
31
34
  schedule: Schedule;
32
35
  created_at: DateType;
36
+ jpegCount?: number;
37
+ obanJobId?: number;
33
38
  };
34
39
  export type SnapshotTestPayload = {
35
40
  cameraExid?: CameraExid;
@@ -42,18 +47,58 @@ export type SnapshotTestResponse = {
42
47
  status: string;
43
48
  data: string;
44
49
  };
50
+ export type SnapshotEmailDeliveryRequestPayload = {
51
+ snapshot: string;
52
+ recipients?: string[];
53
+ message?: string;
54
+ };
55
+ export type SnapshotEmailDeliveryResponsePayload = {
56
+ warning?: string;
57
+ };
45
58
  export type DeleteSnapshotQueryParams = {
46
59
  fromDate: DateType;
47
60
  toDate: DateType;
48
61
  adminEmail: string;
49
62
  adminFullname: string;
50
63
  };
51
- export type TransferCloudRecordingsQueryParams = {
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 & {
52
97
  targetCameraExid: CameraExid;
53
98
  fromDate: DateType;
54
99
  toDate: DateType;
55
- overwriteExistingSnapshots?: boolean;
56
- keepSourceSnapshots?: boolean;
100
+ overwriteExisting?: boolean;
101
+ deleteSource?: boolean;
57
102
  adminEmail?: string;
58
103
  adminFullname?: string;
59
104
  };
@@ -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;
@@ -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,9 +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
- lastSeenAt: DateTime;
44
+ lastSeenAt: string;
38
45
  lastLoginAt: string;
39
46
  lastname: string;
40
47
  persona: string;
@@ -48,7 +55,6 @@ export declare enum UserFeatureFlag {
48
55
  CompanyAdmin = "company-admin",
49
56
  VideoWalls = "video-walls",
50
57
  MassCameraSharing = "mass-camera-sharing",
51
- Copilot = "copilot",
52
58
  ProjectSharing = "project-sharing"
53
59
  }
54
60
  export type ProjectUser = User & {
@@ -59,6 +65,10 @@ export type ProjectUser = User & {
59
65
  cameraExid: string;
60
66
  cameraRights: string;
61
67
  };
68
+ export declare enum ContactRole {
69
+ SalesExecutive = "Sales Executive",
70
+ CustomerSuccessManager = "Customer Success Manager"
71
+ }
62
72
  export declare enum Persona {
63
73
  HQ = "HQ",
64
74
  PM = "PM",
@@ -85,26 +95,44 @@ export type RemotePasswordUpdateRequestPayload = {
85
95
  currentPassword: string;
86
96
  newPassword: string;
87
97
  };
88
- export type LoginResponsePayload = {
89
- confirmedAt?: string;
90
- country?: string;
91
- createdAt?: string;
92
- email?: string;
93
- firstname?: string;
94
- id?: string;
95
- isAdmin?: boolean;
96
- lastLoginAt?: string;
97
- lastname?: string;
98
- persona?: Persona;
99
- telephone?: string;
100
- token?: string;
101
- updatedAt?: string;
102
- 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;
103
125
  };
104
126
  export type LogoutParams = {
105
127
  token: string;
106
128
  fromAdmin?: boolean;
107
129
  };
130
+ export type ConfirmUserRequestPayload = {
131
+ c: string;
132
+ };
133
+ export type DeleteActiveSessionRequestPayload = {
134
+ authorization: string;
135
+ };
108
136
  export type UserSession = {
109
137
  browser: string;
110
138
  createdAt: string;
@@ -148,7 +176,6 @@ export type SessionActivitiesListRequestPayload = {
148
176
  };
149
177
  export type SignupUserRequestPayload = {
150
178
  telephone: string;
151
- token: string;
152
179
  firstname: string;
153
180
  lastname: string;
154
181
  email: string;
@@ -166,13 +193,20 @@ export type UserUpdateRequestPayload = {
166
193
  country: string;
167
194
  persona: string;
168
195
  };
169
- export type UserDeleteRequestPayload = {
170
- verifEmail: string;
171
- };
172
196
  export type GoogleAuthRequestPayload = {
173
197
  code: string;
174
198
  redirectUri: string;
175
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
+ };
176
210
  export type UserStatsResponse = {
177
211
  data: {
178
212
  userStats: AdminUser;
@@ -193,7 +227,7 @@ export type UserProject = {
193
227
  id: number;
194
228
  exid: string;
195
229
  name: string;
196
- startedAt: DateTime;
230
+ startedAt: string;
197
231
  };
198
232
  export type UserProjectResponse = {
199
233
  data: UserProject[];
@@ -213,9 +247,9 @@ export type Admin = {
213
247
  id: number;
214
248
  fullname: string;
215
249
  email: string;
216
- createdAt: DateTime;
217
- updatedAt: DateTime;
218
- lastSignInAt: DateTime;
250
+ createdAt: string;
251
+ updatedAt: string;
252
+ lastSignInAt: string;
219
253
  signInCount: number;
220
254
  lastSignInIp: string;
221
255
  apiId: string;
@@ -227,17 +261,17 @@ export type ImpersonateUserResponse = {
227
261
  lastname: string;
228
262
  telephone: string;
229
263
  email: string;
230
- is_admin: boolean;
264
+ isAdmin: boolean;
231
265
  persona: Persona;
232
266
  country: string;
233
267
  companyId: number;
234
268
  companyExid: string;
235
269
  companyName: string;
236
270
  evercamAccount: boolean;
237
- createdAt: DateTime;
238
- updatedAt: DateTime;
239
- confirmedAt: DateTime;
240
- last_loginAt: DateTime;
271
+ createdAt: string;
272
+ updatedAt: string;
273
+ confirmedAt: string;
274
+ lastLoginAt: string;
241
275
  features: UserFeatureFlag[];
242
276
  token: string;
243
277
  };
@@ -266,6 +300,43 @@ export type Suppression = {
266
300
  id: number;
267
301
  email: string;
268
302
  source: string;
269
- insertedAt: DateTime;
270
- 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[];
271
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
+ };
@@ -1,31 +1,95 @@
1
- import { Date_YYYY_MM_DD, DateType } from "@/types/time";
1
+ import { DateType } from "@evercam/api/types/time";
2
2
  export type HistoryWeatherRequestPayload = {
3
3
  day: string;
4
4
  provider: WeatherProvider;
5
5
  };
6
+ export type WeatherReportParams = {
7
+ startDate: string;
8
+ endDate: string;
9
+ weatherConditionIds?: number[];
10
+ minMinTemp?: number;
11
+ maxMinTemp?: number;
12
+ minMaxTemp?: number;
13
+ maxMaxTemp?: number;
14
+ minMinPrecip?: number;
15
+ maxMinPrecip?: number;
16
+ minMaxPrecip?: number;
17
+ maxMaxPrecip?: number;
18
+ minMinWindSpeed?: number;
19
+ maxMinWindSpeed?: number;
20
+ minMaxWindSpeed?: number;
21
+ maxMaxWindSpeed?: number;
22
+ minMinHumidity?: number;
23
+ maxMinHumidity?: number;
24
+ minMaxHumidity?: number;
25
+ maxMaxHumidity?: number;
26
+ minMinPressure?: number;
27
+ maxMinPressure?: number;
28
+ minMaxPressure?: number;
29
+ maxMaxPressure?: number;
30
+ minMinClouds?: number;
31
+ maxMinClouds?: number;
32
+ minMaxClouds?: number;
33
+ maxMaxClouds?: number;
34
+ minMaxUvIndex?: number;
35
+ maxMaxUvIndex?: number;
36
+ };
37
+ export declare enum WeatherReportScope {
38
+ Daily = "daily"
39
+ }
40
+ export type WeatherReportRequestPayload = WeatherReportParams & {
41
+ scope: WeatherReportScope;
42
+ includeRecent: boolean;
43
+ };
6
44
  export type CurrentWeatherRequestPayload = {
7
45
  provider: WeatherProvider;
8
46
  includeForecast?: boolean;
9
47
  forecastDays?: number;
10
48
  };
11
- export type WeatherResponsePayload = Array<{
12
- hour?: number;
13
- temp?: number;
49
+ export type WeatherHourlyItem = {
50
+ chanceoffog: number;
51
+ chanceoffrost: number;
52
+ chanceofhightemp: number;
53
+ chanceofovercast: number;
54
+ chanceofrain: number;
55
+ chanceofremdry: number;
56
+ chanceofsnow: number;
57
+ chanceofsunshine: number;
58
+ chanceofthunder: number;
59
+ chanceofwindy: number;
14
60
  clouds?: number;
61
+ dewpoint: number;
15
62
  feelsLike?: number;
16
- pressure?: number;
63
+ heatindex: number;
64
+ hour?: number;
17
65
  humidity?: number;
18
- windSpeed?: number;
19
- windDegree?: number;
20
- weather?: [WeatherSummary];
66
+ isRequestedWeather?: boolean;
67
+ precip: number;
68
+ pressure?: number;
21
69
  rain?: HourlyReading;
22
70
  snow?: HourlyReading;
23
- }>;
71
+ source: string;
72
+ temp?: number;
73
+ uvIndex: number;
74
+ weather?: WeatherSummary;
75
+ windchill: number;
76
+ windDegree?: number;
77
+ windDir: string;
78
+ windgust: number;
79
+ windSpeed?: number;
80
+ wind?: {
81
+ speed: number;
82
+ };
83
+ };
84
+ export type WeatherResponsePayload = Array<WeatherHourlyItem>;
24
85
  export type WeatherSummary = {
25
86
  id?: number;
26
87
  main?: string;
27
88
  description?: string;
28
- icon?: string;
89
+ temperature?: number;
90
+ icon?: string | string[];
91
+ weatherIndex?: number;
92
+ rain?: HourlyReading;
29
93
  };
30
94
  export type HourlyReading = {
31
95
  "1h"?: number;
@@ -78,7 +142,7 @@ export type WeatherDataResponse = {
78
142
  uvIndex: number;
79
143
  maxHeatindex: number;
80
144
  minTemp: number;
81
- date: Date_YYYY_MM_DD;
145
+ date: string;
82
146
  totalsnow: number;
83
147
  maxPressure: number;
84
148
  maxWindchill: number;