@evercam/api 1.0.0-624ff9012 → 1.0.0-62a573190

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 (98) hide show
  1. package/README.md +4 -0
  2. package/dist/api/api/3dFirebaseApi.d.ts +203 -5
  3. package/dist/api/api/adminApi.d.ts +147 -79
  4. package/dist/api/api/aiApi.d.ts +191 -83
  5. package/dist/api/api/authzApi.d.ts +34 -15
  6. package/dist/api/api/client/axios.d.ts +2 -1
  7. package/dist/api/api/client/swr/Swr.d.ts +14 -0
  8. package/dist/api/api/client/swr/SwrStore.d.ts +10 -0
  9. package/dist/api/api/evercamApi.d.ts +172 -104
  10. package/dist/api/api/evercamLabsApi.d.ts +9 -7
  11. package/dist/api/api/exNvrApi.d.ts +1 -1
  12. package/dist/api/api/ingestApi.d.ts +127 -33
  13. package/dist/api/api/ptzApi.d.ts +12 -3
  14. package/dist/api/api/videoWallApi.d.ts +7 -7
  15. package/dist/api/api/weatherApi.d.ts +2 -2
  16. package/dist/api/types/360.d.ts +295 -23
  17. package/dist/api/types/aconex.d.ts +104 -6
  18. package/dist/api/types/admin.d.ts +51 -0
  19. package/dist/api/types/aiConfigs.d.ts +244 -0
  20. package/dist/api/types/analytics.d.ts +186 -49
  21. package/dist/api/types/anpr.d.ts +53 -13
  22. package/dist/api/types/auditLogs.d.ts +19 -2
  23. package/dist/api/types/authz.d.ts +132 -0
  24. package/dist/api/types/autodesk.d.ts +7 -7
  25. package/dist/api/types/automation.d.ts +114 -1
  26. package/dist/api/types/axios.d.ts +30 -11
  27. package/dist/api/types/bim.d.ts +38 -9
  28. package/dist/api/types/camera.d.ts +136 -116
  29. package/dist/api/types/comments.d.ts +32 -11
  30. package/dist/api/types/company.d.ts +71 -2
  31. package/dist/api/types/compare.d.ts +20 -5
  32. package/dist/api/types/connector.d.ts +5 -5
  33. package/dist/api/types/coolify.d.ts +20 -2
  34. package/dist/api/types/copilot.d.ts +11 -9
  35. package/dist/api/types/countries.d.ts +0 -7
  36. package/dist/api/types/credentials.d.ts +1 -0
  37. package/dist/api/types/detections.d.ts +23 -33
  38. package/dist/api/types/drone.d.ts +95 -6
  39. package/dist/api/types/errors.d.ts +14 -1
  40. package/dist/api/types/gateReport.d.ts +49 -168
  41. package/dist/api/types/gateReportManagement.d.ts +170 -0
  42. package/dist/api/types/hammertech.d.ts +98 -0
  43. package/dist/api/types/hdd.d.ts +26 -1
  44. package/dist/api/types/index.d.ts +17 -2
  45. package/dist/api/types/ingest.d.ts +191 -4
  46. package/dist/api/types/kit.d.ts +106 -59
  47. package/dist/api/types/map.d.ts +12 -0
  48. package/dist/api/types/media.d.ts +10 -3
  49. package/dist/api/types/notification.d.ts +83 -3
  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 +84 -0
  53. package/dist/api/types/planner.d.ts +102 -9
  54. package/dist/api/types/posthog.d.ts +35 -0
  55. package/dist/api/types/procore.d.ts +26 -16
  56. package/dist/api/types/progressPhoto.d.ts +10 -24
  57. package/dist/api/types/project.d.ts +149 -18
  58. package/dist/api/types/recording.d.ts +10 -15
  59. package/dist/api/types/recycleBin.d.ts +14 -0
  60. package/dist/api/types/ring.d.ts +53 -0
  61. package/dist/api/types/roi.d.ts +3 -11
  62. package/dist/api/types/routeParams.d.ts +3 -1
  63. package/dist/api/types/router.d.ts +20 -1
  64. package/dist/api/types/shared.d.ts +30 -28
  65. package/dist/api/types/shares.d.ts +6 -157
  66. package/dist/api/types/sim.d.ts +6 -6
  67. package/dist/api/types/siteAnalytics.d.ts +192 -48
  68. package/dist/api/types/siteAnalyticsManagement.d.ts +127 -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 +55 -1
  72. package/dist/api/types/socket.d.ts +4 -0
  73. package/dist/api/types/sso.d.ts +55 -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 +4 -5
  77. package/dist/api/types/tag.d.ts +1 -1
  78. package/dist/api/types/time.d.ts +4 -18
  79. package/dist/api/types/timelapse.d.ts +7 -11
  80. package/dist/api/types/user.d.ts +121 -40
  81. package/dist/api/types/videoWall.d.ts +47 -14
  82. package/dist/api/types/weather.d.ts +77 -11
  83. package/dist/api/types/widget.d.ts +96 -16
  84. package/dist/api/types/xweather.d.ts +4 -4
  85. package/dist/index.js +2768 -1024
  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/types/components.d.ts +252 -36
  90. package/dist/shared/types/customDataTableFilters.d.ts +10 -0
  91. package/dist/shared/types/imagePlayer.d.ts +10 -3
  92. package/dist/shared/types/index.d.ts +3 -0
  93. package/dist/shared/types/observations.d.ts +25 -0
  94. package/dist/shared/types/rbac.d.ts +67 -0
  95. package/dist/shared/types/timeline.d.ts +2 -1
  96. package/package.json +7 -4
  97. package/dist/api/types/storageServers.d.ts +0 -4
  98. package/dist/api/types/vendorModel.d.ts +0 -15
@@ -0,0 +1,73 @@
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
+ displayName: string;
24
+ urn: string;
25
+ isModelHostedByEvercamACC?: boolean;
26
+ };
27
+ export type ForgeAccAlignmentData = {
28
+ bbox: {
29
+ min: Point2D;
30
+ max: Point2D;
31
+ };
32
+ transform: number[];
33
+ };
34
+ export type TimelineItem = {
35
+ taskNumber: number;
36
+ taskID: string;
37
+ actualStartDate: string;
38
+ actualEndDate: string;
39
+ plannedStartDate: string;
40
+ plannedEndDate: string;
41
+ objectIDs: number[];
42
+ };
43
+ export type ForgeMarkerTransform = {
44
+ default: {
45
+ position: Point3D;
46
+ type: string;
47
+ };
48
+ };
49
+ export type ForgeMarker = {
50
+ name: string;
51
+ cameraExid: string;
52
+ transforms: ForgeMarkerTransform;
53
+ };
54
+ export type ForgeProjectData = {
55
+ urns?: ForgeUrn[];
56
+ accDrawingsAlignments?: Record<string, ForgeAccAlignmentData>;
57
+ timeline?: TimelineItem[];
58
+ savedView?: ForgeView;
59
+ markers?: ForgeMarker[];
60
+ };
61
+ export type ItwinModel = {
62
+ name: string;
63
+ iTwinId: string;
64
+ iModelId: string;
65
+ changeSetId?: string;
66
+ isIModel: boolean;
67
+ height?: number;
68
+ cesiumId?: number;
69
+ markerDistanceThreshold: number;
70
+ };
71
+ export type ItwinProjectData = {
72
+ models: ItwinModel[];
73
+ };
@@ -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,9 +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
  };
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,4 @@
1
+ export type SocketAuthResponsePayload = {
2
+ wsToken: string;
3
+ expiresIn: number;
4
+ };
@@ -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,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;
@@ -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;
@@ -1,21 +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
- export {};
4
+ export type DateRangeFilter = {
5
+ fromDate: DateType;
6
+ toDate: DateType;
7
+ };
@@ -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 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;
@@ -128,6 +151,21 @@ export type SessionsListRequestPayload = {
128
151
  limit: number;
129
152
  page: number;
130
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
+ };
131
169
  export type SessionActivityCamSettingsDetail = {
132
170
  new: any;
133
171
  old: any;
@@ -153,7 +191,6 @@ export type SessionActivitiesListRequestPayload = {
153
191
  };
154
192
  export type SignupUserRequestPayload = {
155
193
  telephone: string;
156
- token: string;
157
194
  firstname: string;
158
195
  lastname: string;
159
196
  email: string;
@@ -171,13 +208,20 @@ export type UserUpdateRequestPayload = {
171
208
  country: string;
172
209
  persona: string;
173
210
  };
174
- export type UserDeleteRequestPayload = {
175
- verifEmail: string;
176
- };
177
211
  export type GoogleAuthRequestPayload = {
178
212
  code: string;
179
213
  redirectUri: string;
180
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
+ };
181
225
  export type UserStatsResponse = {
182
226
  data: {
183
227
  userStats: AdminUser;
@@ -198,7 +242,7 @@ export type UserProject = {
198
242
  id: number;
199
243
  exid: string;
200
244
  name: string;
201
- startedAt: DateTime;
245
+ startedAt: string;
202
246
  };
203
247
  export type UserProjectResponse = {
204
248
  data: UserProject[];
@@ -218,9 +262,9 @@ export type Admin = {
218
262
  id: number;
219
263
  fullname: string;
220
264
  email: string;
221
- createdAt: DateTime;
222
- updatedAt: DateTime;
223
- lastSignInAt: DateTime;
265
+ createdAt: string;
266
+ updatedAt: string;
267
+ lastSignInAt: string;
224
268
  signInCount: number;
225
269
  lastSignInIp: string;
226
270
  apiId: string;
@@ -232,17 +276,17 @@ export type ImpersonateUserResponse = {
232
276
  lastname: string;
233
277
  telephone: string;
234
278
  email: string;
235
- is_admin: boolean;
279
+ isAdmin: boolean;
236
280
  persona: Persona;
237
281
  country: string;
238
282
  companyId: number;
239
283
  companyExid: string;
240
284
  companyName: string;
241
285
  evercamAccount: boolean;
242
- createdAt: DateTime;
243
- updatedAt: DateTime;
244
- confirmedAt: DateTime;
245
- last_loginAt: DateTime;
286
+ createdAt: string;
287
+ updatedAt: string;
288
+ confirmedAt: string;
289
+ lastLoginAt: string;
246
290
  features: UserFeatureFlag[];
247
291
  token: string;
248
292
  };
@@ -271,6 +315,43 @@ export type Suppression = {
271
315
  id: number;
272
316
  email: string;
273
317
  source: string;
274
- insertedAt: DateTime;
275
- 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>;
342
+ };
343
+ export type ProjectUserWithRole = {
344
+ id: number;
345
+ email: string;
346
+ fullname: string;
347
+ company: {
348
+ id: number;
349
+ name: string;
350
+ exid: string;
351
+ };
352
+ persona: Persona;
353
+ permissions: string[];
354
+ role: Role;
355
+ subRoles: RoleSubRole[];
276
356
  };
357
+ export {};