@evercam/api 1.0.0-a59703ab2 → 1.0.0-a5ed7fc12

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 (104) hide show
  1. package/README.md +1 -0
  2. package/dist/api/api/3dFirebaseApi.d.ts +209 -15
  3. package/dist/api/api/adminApi.d.ts +104 -57
  4. package/dist/api/api/aiApi.d.ts +182 -55
  5. package/dist/api/api/authzApi.d.ts +26 -16
  6. package/dist/api/api/client/axios.d.ts +1 -1
  7. package/dist/api/api/client/swr/Swr.d.ts +1 -1
  8. package/dist/api/api/evercamApi.d.ts +152 -90
  9. package/dist/api/api/evercamLabsApi.d.ts +6 -18
  10. package/dist/api/api/exNvrApi.d.ts +1 -1
  11. package/dist/api/api/index.d.ts +1 -0
  12. package/dist/api/api/ingestApi.d.ts +128 -58
  13. package/dist/api/api/ptzApi.d.ts +9 -4
  14. package/dist/api/api/reportsApi.d.ts +15 -0
  15. package/dist/api/api/videoWallApi.d.ts +2 -2
  16. package/dist/api/api/weatherApi.d.ts +2 -2
  17. package/dist/api/types/360.d.ts +176 -85
  18. package/dist/api/types/aconex.d.ts +9 -9
  19. package/dist/api/types/admin.d.ts +51 -0
  20. package/dist/api/types/aiConfigs.d.ts +244 -0
  21. package/dist/api/types/analytics.d.ts +134 -74
  22. package/dist/api/types/anpr.d.ts +48 -2
  23. package/dist/api/types/apiKey.d.ts +70 -0
  24. package/dist/api/types/auditLogs.d.ts +163 -20
  25. package/dist/api/types/authz.d.ts +116 -12
  26. package/dist/api/types/autodesk.d.ts +7 -7
  27. package/dist/api/types/automation.d.ts +65 -3
  28. package/dist/api/types/axios.d.ts +20 -15
  29. package/dist/api/types/bim.d.ts +39 -10
  30. package/dist/api/types/camera.d.ts +127 -120
  31. package/dist/api/types/comments.d.ts +16 -11
  32. package/dist/api/types/company.d.ts +43 -3
  33. package/dist/api/types/compare.d.ts +21 -6
  34. package/dist/api/types/connector.d.ts +5 -5
  35. package/dist/api/types/coolify.d.ts +18 -2
  36. package/dist/api/types/detections.d.ts +23 -18
  37. package/dist/api/types/drone.d.ts +95 -6
  38. package/dist/api/types/errors.d.ts +18 -2
  39. package/dist/api/types/gateReport.d.ts +46 -68
  40. package/dist/api/types/gateReportManagement.d.ts +170 -0
  41. package/dist/api/types/hammertech.d.ts +98 -0
  42. package/dist/api/types/hdd.d.ts +26 -1
  43. package/dist/api/types/index.d.ts +16 -3
  44. package/dist/api/types/ingest.d.ts +267 -17
  45. package/dist/api/types/kit.d.ts +55 -105
  46. package/dist/api/types/map.d.ts +12 -0
  47. package/dist/api/types/media.d.ts +9 -3
  48. package/dist/api/types/notification.d.ts +83 -3
  49. package/dist/api/types/nvr.d.ts +8 -8
  50. package/dist/api/types/oauth.d.ts +62 -0
  51. package/dist/api/types/observationEvents.d.ts +141 -0
  52. package/dist/api/types/observations.d.ts +80 -0
  53. package/dist/api/types/planner.d.ts +98 -8
  54. package/dist/api/types/posthog.d.ts +35 -0
  55. package/dist/api/types/procore.d.ts +13 -6
  56. package/dist/api/types/progressPhoto.d.ts +6 -2
  57. package/dist/api/types/project.d.ts +111 -25
  58. package/dist/api/types/recording.d.ts +9 -15
  59. package/dist/api/types/recycleBin.d.ts +1 -1
  60. package/dist/api/types/reports.d.ts +108 -0
  61. package/dist/api/types/ring.d.ts +53 -0
  62. package/dist/api/types/roi.d.ts +3 -11
  63. package/dist/api/types/routeParams.d.ts +1 -0
  64. package/dist/api/types/router.d.ts +1 -1
  65. package/dist/api/types/shared.d.ts +42 -25
  66. package/dist/api/types/shares.d.ts +1 -14
  67. package/dist/api/types/sim.d.ts +6 -6
  68. package/dist/api/types/siteAnalytics.d.ts +81 -43
  69. package/dist/api/types/siteAnalyticsManagement.d.ts +127 -0
  70. package/dist/api/types/siteView.d.ts +78 -0
  71. package/dist/api/types/smartSeach.d.ts +5 -0
  72. package/dist/api/types/snapshots.d.ts +49 -4
  73. package/dist/api/types/socket.d.ts +4 -0
  74. package/dist/api/types/storageProvider.d.ts +19 -0
  75. package/dist/api/types/storyblok.d.ts +27 -0
  76. package/dist/api/types/streaming.d.ts +3 -3
  77. package/dist/api/types/tag.d.ts +1 -1
  78. package/dist/api/types/time.d.ts +0 -18
  79. package/dist/api/types/timelapse.d.ts +7 -11
  80. package/dist/api/types/user.d.ts +106 -37
  81. package/dist/api/types/videoWall.d.ts +21 -21
  82. package/dist/api/types/weather.d.ts +75 -11
  83. package/dist/api/types/widget.d.ts +71 -12
  84. package/dist/api/types/xweather.d.ts +4 -4
  85. package/dist/api/utils.d.ts +1 -1
  86. package/dist/index.js +2453 -962
  87. package/dist/index.js.map +1 -1
  88. package/dist/index.umd.cjs +1 -1
  89. package/dist/index.umd.cjs.map +1 -1
  90. package/dist/shared/types/components.d.ts +375 -34
  91. package/dist/shared/types/customDataTableFilters.d.ts +10 -0
  92. package/dist/shared/types/droneUpload.d.ts +93 -0
  93. package/dist/shared/types/imagePlayer.d.ts +9 -2
  94. package/dist/shared/types/index.d.ts +5 -0
  95. package/dist/shared/types/observations.d.ts +25 -0
  96. package/dist/shared/types/rbac.d.ts +67 -0
  97. package/dist/shared/types/report.d.ts +107 -0
  98. package/dist/shared/types/timeline.d.ts +2 -1
  99. package/dist/shared/utils/datePickerValue.d.ts +36 -0
  100. package/dist/shared/utils/datePresets.d.ts +31 -0
  101. package/package.json +4 -2
  102. package/dist/api/types/copilot.d.ts +0 -157
  103. package/dist/api/types/storageServers.d.ts +0 -4
  104. package/dist/api/types/vendorModel.d.ts +0 -15
@@ -0,0 +1,78 @@
1
+ import { ForgeView } from "@evercam/api/types/360";
2
+ import { Point2D, Point3D } from "@evercam/api/types/shared";
3
+ export declare enum SiteViewSoftwareType {
4
+ Revit = "Revit",
5
+ Navisworks = "Navisworks",
6
+ Drone = "Drone",
7
+ Synchro = "Synchro"
8
+ }
9
+ export declare enum SiteViewerType {
10
+ ITwin = "iTwin",
11
+ Cesium = "Cesium",
12
+ Forge = "Forge"
13
+ }
14
+ export type SiteViewCameraListItem = {
15
+ projectId: string;
16
+ projectName: string;
17
+ software: SiteViewSoftwareType;
18
+ type: SiteViewerType;
19
+ uniqueId: string;
20
+ integrationType?: string;
21
+ };
22
+ export type ForgeUrn = {
23
+ id?: string;
24
+ displayName: string;
25
+ urn: string;
26
+ isModelHostedByEvercamACC?: boolean;
27
+ savedViews?: Record<string, ForgeView>;
28
+ };
29
+ export type ForgeAccAlignmentData = {
30
+ bbox: {
31
+ min: Point2D;
32
+ max: Point2D;
33
+ };
34
+ transform: number[];
35
+ coordinateSystem?: {
36
+ context?: {
37
+ type?: string;
38
+ };
39
+ } | null;
40
+ };
41
+ export type TimelineItem = {
42
+ taskNumber: number;
43
+ taskID: string;
44
+ actualStartDate: string;
45
+ actualEndDate: string;
46
+ plannedStartDate: string;
47
+ plannedEndDate: string;
48
+ objectIDs: number[];
49
+ };
50
+ export type ForgeMarkerTransform = {
51
+ position?: Point3D;
52
+ hidden?: boolean;
53
+ };
54
+ export type ForgeMarker = {
55
+ name: string;
56
+ cameraExid: string;
57
+ type: string;
58
+ transforms: Record<string, ForgeMarkerTransform>;
59
+ };
60
+ export type ForgeProjectData = {
61
+ urns?: ForgeUrn[];
62
+ accDrawingsAlignments?: Record<string, ForgeAccAlignmentData>;
63
+ timeline?: TimelineItem[];
64
+ cameraMarkers?: Record<string, ForgeMarker>;
65
+ };
66
+ export type ItwinModel = {
67
+ name: string;
68
+ iTwinId: string;
69
+ iModelId: string;
70
+ changeSetId?: string;
71
+ isIModel: boolean;
72
+ height?: number;
73
+ cesiumId?: number;
74
+ markerDistanceThreshold: number;
75
+ };
76
+ export type ItwinProjectData = {
77
+ models: ItwinModel[];
78
+ };
@@ -0,0 +1,5 @@
1
+ import { CameraExid } from "@evercam/api/types";
2
+ export type SmartSearchQueriesRequestPayload = {
3
+ camerasExid: CameraExid[];
4
+ name?: string;
5
+ };
@@ -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,4 @@
1
+ export type SocketAuthResponsePayload = {
2
+ wsToken: string;
3
+ expiresIn: number;
4
+ };
@@ -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,27 @@
1
+ import type { JsonObject, JsonValue } from "@evercam/api/types";
2
+ export type StoryblokStory<TContent extends JsonObject = JsonObject> = {
3
+ id: number;
4
+ uuid: string;
5
+ name: string;
6
+ slug: string;
7
+ fullSlug: string;
8
+ content: TContent;
9
+ createdAt: string;
10
+ publishedAt: string | null;
11
+ updatedAt: string;
12
+ position: number;
13
+ tagList: string[];
14
+ isStartpage: boolean;
15
+ parentId: number | null;
16
+ groupId: string;
17
+ firstPublishedAt: string | null;
18
+ releaseId: number | null;
19
+ lang: string;
20
+ path: string;
21
+ };
22
+ export type StoryblokResponse<TContent extends JsonObject = JsonObject> = {
23
+ story: StoryblokStory<TContent>;
24
+ cv: number;
25
+ rels: JsonValue[];
26
+ links: JsonValue[];
27
+ };
@@ -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;
@@ -1,25 +1,7 @@
1
1
  import { Moment } from "moment-timezone";
2
2
  export type DateType = Date | string | number;
3
3
  export type ExtendedDateType = Moment | DateType;
4
- type YYYY = number;
5
- type MM = number;
6
- type DD = number;
7
- type HH = number;
8
- type mm = number;
9
- type ss = number;
10
- type microS = number;
11
- export type Date_YYYY = `${YYYY}` | string;
12
- export type Date_YYYY_MM = `${YYYY}-${MM}` | string;
13
- export type Date_YYYY_MM_DD = `${YYYY}-${MM}-${DD}` | string;
14
- export type Time_HH_mm_ss = `${HH}:${mm}:${ss}` | string;
15
- export type Date_HH = `${HH}` | string;
16
- export type DateTime = `${Date_YYYY_MM_DD}T${Time_HH_mm_ss}` | string;
17
- export type DateTime_tz = `${Date_YYYY_MM_DD}T${Time_HH_mm_ss}${"+" | "-"}${HH}:${mm}` | string;
18
- export type DateTime_Z = `${Date_YYYY_MM_DD}T${Time_HH_mm_ss}Z` | string;
19
- export type DateTime_Z_micros = `${Date_YYYY_MM_DD}T${Time_HH_mm_ss}.${microS}Z` | string;
20
- export type DateTimeSpaceSeparated = `${Date_YYYY_MM_DD} ${Time_HH_mm_ss}` | string;
21
4
  export type DateRangeFilter = {
22
5
  fromDate: DateType;
23
6
  toDate: DateType;
24
7
  };
25
- export {};
@@ -1,4 +1,4 @@
1
- import { DateType, Schedule } from "@/types";
1
+ import { 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",
@@ -51,13 +54,6 @@ export declare enum TimelapseType {
51
54
  Year = "year",
52
55
  FullProject = "full_project"
53
56
  }
54
- export type TimelapseFilterQueryParams = {
55
- from?: DateType;
56
- to?: DateType;
57
- period?: TimelapsePeriod;
58
- duration?: number;
59
- schedule?: TimelapseSchedules;
60
- };
61
57
  export type TimelapseCreationRequestPayload = {
62
58
  title: string;
63
59
  duration: number;
@@ -1,4 +1,5 @@
1
- import { DateTime, PaginationParams, BaseRole, SubRole } 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 & {
@@ -89,26 +95,44 @@ export type RemotePasswordUpdateRequestPayload = {
89
95
  currentPassword: string;
90
96
  newPassword: string;
91
97
  };
92
- export type LoginResponsePayload = {
93
- confirmedAt?: string;
94
- country?: string;
95
- createdAt?: string;
96
- email?: string;
97
- firstname?: string;
98
- id?: string;
99
- isAdmin?: boolean;
100
- lastLoginAt?: string;
101
- lastname?: string;
102
- persona?: Persona;
103
- telephone?: string;
104
- token?: string;
105
- updatedAt?: string;
106
- 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;
107
125
  };
108
126
  export type LogoutParams = {
109
127
  token: string;
110
128
  fromAdmin?: boolean;
111
129
  };
130
+ export type ConfirmUserRequestPayload = {
131
+ c: string;
132
+ };
133
+ export type DeleteActiveSessionRequestPayload = {
134
+ authorization: string;
135
+ };
112
136
  export type UserSession = {
113
137
  browser: string;
114
138
  createdAt: string;
@@ -127,6 +151,21 @@ export type SessionsListRequestPayload = {
127
151
  limit: number;
128
152
  page: number;
129
153
  };
154
+ export type AuthorizedApp = {
155
+ id: number;
156
+ clientId: string;
157
+ clientName: string;
158
+ clientDescription: string | null;
159
+ logoUrl: string | null;
160
+ scopes: string[];
161
+ grantedAt: string;
162
+ };
163
+ export type AuthorizedAppsListRequestPayload = {
164
+ search?: string;
165
+ sort?: string;
166
+ limit?: number;
167
+ page?: number;
168
+ };
130
169
  export type SessionActivityCamSettingsDetail = {
131
170
  new: any;
132
171
  old: any;
@@ -152,7 +191,6 @@ export type SessionActivitiesListRequestPayload = {
152
191
  };
153
192
  export type SignupUserRequestPayload = {
154
193
  telephone: string;
155
- token: string;
156
194
  firstname: string;
157
195
  lastname: string;
158
196
  email: string;
@@ -170,13 +208,20 @@ export type UserUpdateRequestPayload = {
170
208
  country: string;
171
209
  persona: string;
172
210
  };
173
- export type UserDeleteRequestPayload = {
174
- verifEmail: string;
175
- };
176
211
  export type GoogleAuthRequestPayload = {
177
212
  code: string;
178
213
  redirectUri: string;
179
214
  };
215
+ export type ProjectContact = {
216
+ name: string;
217
+ role: ContactRole | string;
218
+ email?: string;
219
+ phone?: string;
220
+ photo?: string;
221
+ };
222
+ export type ProjectContactsResponsePayload = {
223
+ data: ProjectContact[];
224
+ };
180
225
  export type UserStatsResponse = {
181
226
  data: {
182
227
  userStats: AdminUser;
@@ -197,7 +242,7 @@ export type UserProject = {
197
242
  id: number;
198
243
  exid: string;
199
244
  name: string;
200
- startedAt: DateTime;
245
+ startedAt: string;
201
246
  };
202
247
  export type UserProjectResponse = {
203
248
  data: UserProject[];
@@ -217,9 +262,9 @@ export type Admin = {
217
262
  id: number;
218
263
  fullname: string;
219
264
  email: string;
220
- createdAt: DateTime;
221
- updatedAt: DateTime;
222
- lastSignInAt: DateTime;
265
+ createdAt: string;
266
+ updatedAt: string;
267
+ lastSignInAt: string;
223
268
  signInCount: number;
224
269
  lastSignInIp: string;
225
270
  apiId: string;
@@ -231,17 +276,17 @@ export type ImpersonateUserResponse = {
231
276
  lastname: string;
232
277
  telephone: string;
233
278
  email: string;
234
- is_admin: boolean;
279
+ isAdmin: boolean;
235
280
  persona: Persona;
236
281
  country: string;
237
282
  companyId: number;
238
283
  companyExid: string;
239
284
  companyName: string;
240
285
  evercamAccount: boolean;
241
- createdAt: DateTime;
242
- updatedAt: DateTime;
243
- confirmedAt: DateTime;
244
- last_loginAt: DateTime;
286
+ createdAt: string;
287
+ updatedAt: string;
288
+ confirmedAt: string;
289
+ lastLoginAt: string;
245
290
  features: UserFeatureFlag[];
246
291
  token: string;
247
292
  };
@@ -270,8 +315,30 @@ export type Suppression = {
270
315
  id: number;
271
316
  email: string;
272
317
  source: string;
273
- insertedAt: DateTime;
274
- updatedAt: DateTime;
318
+ insertedAt: string;
319
+ updatedAt: string;
320
+ };
321
+ type Email = string;
322
+ export type WsAccessRestrictionUpdate = {
323
+ camera_id: CameraExid;
324
+ is_access_restricted: boolean;
325
+ };
326
+ export type WsUserRestrictionItem = {
327
+ user_id: number;
328
+ camera_id: CameraExid;
329
+ is_user_access_restricted: boolean;
330
+ };
331
+ export type WsUserRestrictionUpdate = WsUserRestrictionItem[];
332
+ /**
333
+ * Backend WebSocket event payload:
334
+ * {
335
+ * user: {
336
+ * "someone@domain.com": {camera_id, is_access_restricted} OR [{...}, {...}]
337
+ * }
338
+ * }
339
+ */
340
+ export type WsRestrictionChangedPayload = {
341
+ user: Record<Email, WsAccessRestrictionUpdate | WsUserRestrictionUpdate>;
275
342
  };
276
343
  export type ProjectUserWithRole = {
277
344
  id: number;
@@ -282,7 +349,9 @@ export type ProjectUserWithRole = {
282
349
  name: string;
283
350
  exid: string;
284
351
  };
352
+ persona: Persona;
285
353
  permissions: string[];
286
- role: BaseRole;
287
- subRoles: SubRole[];
354
+ role: Role;
355
+ subRoles: RoleSubRole[];
288
356
  };
357
+ export {};
@@ -1,25 +1,16 @@
1
- import { Camera, Media, PaginationParams } from "@/types";
1
+ import { Camera, Media, PaginationParams } from "@evercam/api/types";
2
2
  export declare enum VideoWallItemType {
3
3
  LiveView = "live",
4
4
  Video = "video",
5
5
  Image = "image"
6
6
  }
7
- export type VideoWallItem<T extends Camera | Media> = {
7
+ export type VideoWallItem<T extends Camera | Media = Camera> = {
8
8
  value: T;
9
9
  type: VideoWallItemType;
10
10
  };
11
- export type VideoWallPresetItemConfig = {
12
- camera: Camera;
13
- h: number;
14
- i: string | number;
15
- moved: boolean;
16
- w: number;
17
- x: number;
18
- y: number;
19
- };
20
- export type VideoWallPreset = {
21
- name?: string;
22
- configuration: Array<VideoWallPresetItemConfig>;
11
+ export type VideoWallPresetGridConfig = {
12
+ items: VideoWallPresetItem[];
13
+ meta?: VideoWallPresetMeta;
23
14
  };
24
15
  export type VideoWallPresetItem = {
25
16
  i: string | number;
@@ -30,6 +21,14 @@ export type VideoWallPresetItem = {
30
21
  camera: Camera;
31
22
  weather?: Record<string, unknown>;
32
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;
33
32
  };
34
33
  export type VideoWallSource = "default" | "widget";
35
34
  export interface VideoWall {
@@ -38,8 +37,8 @@ export interface VideoWall {
38
37
  name: string;
39
38
  source: VideoWallSource;
40
39
  config: Record<string, any>;
41
- inserted_at: string;
42
- updated_at: string;
40
+ insertedAt: string;
41
+ updatedAt: string;
43
42
  user: {
44
43
  id: number;
45
44
  firstname: string;
@@ -47,20 +46,21 @@ export interface VideoWall {
47
46
  email: string;
48
47
  };
49
48
  }
50
- export interface ListParams extends PaginationParams {
51
- project_exid?: string;
49
+ export interface VideoWallListParams extends PaginationParams {
50
+ projectExid?: string;
52
51
  id?: number;
53
52
  exid?: string;
54
- project_id?: number;
55
- user_id?: number;
53
+ projectId?: number;
54
+ userId?: number;
56
55
  name?: string;
57
56
  project?: string;
58
57
  user?: string;
59
58
  source?: VideoWallSource;
60
59
  }
61
60
  export type VideoWallCreateUpdatePayload = {
62
- project_exid: string;
61
+ projectExid?: string;
63
62
  name: string;
64
63
  source?: VideoWallSource;
65
64
  config: Record<string, unknown>;
65
+ scope?: string;
66
66
  };