@evercam/api 1.0.0-591fdcb25 → 1.0.0-5c3022ccb

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 (107) hide show
  1. package/README.md +3 -0
  2. package/dist/api/api/3dFirebaseApi.d.ts +27 -0
  3. package/dist/api/{adminApi.d.ts → api/adminApi.d.ts} +67 -33
  4. package/dist/api/{aiApi.d.ts → api/aiApi.d.ts} +43 -40
  5. package/dist/api/{authzApi.d.ts → api/authzApi.d.ts} +10 -1
  6. package/dist/api/{client → api/client}/axios.d.ts +1 -0
  7. package/dist/api/{client → api/client}/customErrors.d.ts +10 -0
  8. package/dist/api/{client → api/client}/interceptors.d.ts +1 -1
  9. package/dist/api/api/client/swr/Swr.d.ts +14 -0
  10. package/dist/api/api/client/swr/SwrStore.d.ts +10 -0
  11. package/dist/api/{evercamApi.d.ts → api/evercamApi.d.ts} +71 -46
  12. package/dist/api/{evercamLabsApi.d.ts → api/evercamLabsApi.d.ts} +7 -3
  13. package/dist/api/api/index.d.ts +13 -0
  14. package/dist/api/api/ingestApi.d.ts +96 -0
  15. package/dist/api/{ptzApi.d.ts → api/ptzApi.d.ts} +4 -0
  16. package/dist/api/api/videoWallApi.d.ts +9 -0
  17. package/dist/api/index.d.ts +3 -13
  18. package/dist/api/types/360.d.ts +274 -0
  19. package/dist/api/types/aconex.d.ts +143 -0
  20. package/dist/{types → api/types}/analytics.d.ts +135 -11
  21. package/dist/{types → api/types}/anpr.d.ts +7 -11
  22. package/dist/api/types/authz.d.ts +28 -0
  23. package/dist/api/types/automation.d.ts +61 -0
  24. package/dist/{types → api/types}/axios.d.ts +16 -0
  25. package/dist/{types → api/types}/camera.d.ts +26 -6
  26. package/dist/{types → api/types}/comments.d.ts +19 -7
  27. package/dist/{types → api/types}/company.d.ts +29 -1
  28. package/dist/{types → api/types}/connector.d.ts +4 -0
  29. package/dist/{types → api/types}/coolify.d.ts +2 -0
  30. package/dist/{types → api/types}/countries.d.ts +0 -7
  31. package/dist/{types → api/types}/credentials.d.ts +1 -0
  32. package/dist/{types → api/types}/detections.d.ts +51 -15
  33. package/dist/{types → api/types}/errors.d.ts +13 -0
  34. package/dist/{types → api/types}/gateReport.d.ts +4 -101
  35. package/dist/{types → api/types}/index.d.ts +4 -0
  36. package/dist/{types → api/types}/ingest.d.ts +8 -0
  37. package/dist/{types → api/types}/kit.d.ts +55 -7
  38. package/dist/{types → api/types}/planner.d.ts +7 -0
  39. package/dist/api/types/posthog.d.ts +18 -0
  40. package/dist/api/types/procore.d.ts +222 -0
  41. package/dist/{types → api/types}/progressPhoto.d.ts +6 -22
  42. package/dist/{types → api/types}/project.d.ts +52 -3
  43. package/dist/{types → api/types}/recording.d.ts +2 -2
  44. package/dist/api/types/recycleBin.d.ts +14 -0
  45. package/dist/{types → api/types}/routeParams.d.ts +4 -2
  46. package/dist/{types → api/types}/router.d.ts +19 -0
  47. package/dist/{types → api/types}/shared.d.ts +1 -6
  48. package/dist/api/types/shares.d.ts +58 -0
  49. package/dist/api/types/siteAnalytics.d.ts +247 -0
  50. package/dist/{types → api/types}/snapshots.d.ts +9 -0
  51. package/dist/api/types/sso.d.ts +55 -0
  52. package/dist/{types → api/types}/streaming.d.ts +1 -2
  53. package/dist/{types → api/types}/time.d.ts +6 -0
  54. package/dist/{types → api/types}/user.d.ts +19 -7
  55. package/dist/api/types/videoWall.d.ts +66 -0
  56. package/dist/{types → api/types}/weather.d.ts +2 -0
  57. package/dist/{types → api/types}/widget.d.ts +27 -6
  58. package/dist/{utils.d.ts → api/utils.d.ts} +1 -0
  59. package/dist/index.d.ts +2 -3
  60. package/dist/index.js +1356 -829
  61. package/dist/index.js.map +1 -1
  62. package/dist/index.umd.cjs +1 -1
  63. package/dist/index.umd.cjs.map +1 -1
  64. package/dist/shared/api/index.d.ts +3 -0
  65. package/dist/shared/components/timelinePlayer/providers/index.d.ts +3 -0
  66. package/dist/shared/components/timelinePlayer/providers/timelineAnprProvider.d.ts +17 -0
  67. package/dist/shared/components/timelinePlayer/providers/timelineDataProvider.d.ts +13 -0
  68. package/dist/shared/components/timelinePlayer/providers/timelineLuminanceProvider.d.ts +16 -0
  69. package/dist/shared/types/components.d.ts +199 -0
  70. package/dist/shared/types/imagePlayer.d.ts +34 -0
  71. package/dist/shared/types/index.d.ts +4 -0
  72. package/dist/shared/types/timeline.d.ts +9 -0
  73. package/package.json +5 -4
  74. package/dist/api/3dFirebaseApi.d.ts +0 -10
  75. package/dist/api/ingestApi.d.ts +0 -68
  76. package/dist/api/videoWallApi.d.ts +0 -9
  77. package/dist/types/360.d.ts +0 -83
  78. package/dist/types/aconex.d.ts +0 -45
  79. package/dist/types/automation.d.ts +0 -6
  80. package/dist/types/procore.d.ts +0 -76
  81. package/dist/types/shares.d.ts +0 -196
  82. package/dist/types/siteAnalytics.d.ts +0 -123
  83. package/dist/types/videoWall.d.ts +0 -33
  84. /package/dist/api/{client → api/client}/index.d.ts +0 -0
  85. /package/dist/api/{exNvrApi.d.ts → api/exNvrApi.d.ts} +0 -0
  86. /package/dist/api/{weatherApi.d.ts → api/weatherApi.d.ts} +0 -0
  87. /package/dist/api/{webRtcApi.d.ts → api/webRtcApi.d.ts} +0 -0
  88. /package/dist/{types → api/types}/auditLogs.d.ts +0 -0
  89. /package/dist/{types → api/types}/autodesk.d.ts +0 -0
  90. /package/dist/{types → api/types}/bim.d.ts +0 -0
  91. /package/dist/{types → api/types}/compare.d.ts +0 -0
  92. /package/dist/{types → api/types}/copilot.d.ts +0 -0
  93. /package/dist/{types → api/types}/drone.d.ts +0 -0
  94. /package/dist/{types → api/types}/hdd.d.ts +0 -0
  95. /package/dist/{types → api/types}/map.d.ts +0 -0
  96. /package/dist/{types → api/types}/media.d.ts +0 -0
  97. /package/dist/{types → api/types}/notification.d.ts +0 -0
  98. /package/dist/{types → api/types}/nvr.d.ts +0 -0
  99. /package/dist/{types → api/types}/roi.d.ts +0 -0
  100. /package/dist/{types → api/types}/sim.d.ts +0 -0
  101. /package/dist/{types → api/types}/storageServers.d.ts +0 -0
  102. /package/dist/{types → api/types}/systemCheck.d.ts +0 -0
  103. /package/dist/{types → api/types}/tag.d.ts +0 -0
  104. /package/dist/{types → api/types}/timelapse.d.ts +0 -0
  105. /package/dist/{types → api/types}/vendorModel.d.ts +0 -0
  106. /package/dist/{types → api/types}/voyageControl.d.ts +0 -0
  107. /package/dist/{types → api/types}/xweather.d.ts +0 -0
@@ -2,16 +2,6 @@ import { BoundingBox, CameraExid, DateType, GateReportVehicleType, TimelinePreci
2
2
  export type AnprQueryParams = {
3
3
  page?: number;
4
4
  limit?: number;
5
- firstSeen?: {
6
- gte: DateType;
7
- };
8
- lastSeen?: {
9
- lte: DateType;
10
- };
11
- captureTime?: {
12
- gte?: DateType;
13
- lt?: DateType;
14
- };
15
5
  direction?: {
16
6
  eq?: string;
17
7
  } | string;
@@ -21,7 +11,11 @@ export type AnprQueryParams = {
21
11
  sort?: string;
22
12
  fromDate?: DateType;
23
13
  toDate?: DateType;
24
- tab?: string;
14
+ camerasExid?: CameraExid[];
15
+ vehicleTypes?: GateReportVehicleType[];
16
+ isDuplicate?: boolean;
17
+ isPostprocessed?: boolean;
18
+ isPlate?: boolean;
25
19
  };
26
20
  export type AnprCountsQueryParams = {
27
21
  precision: TimelinePrecision;
@@ -44,6 +38,7 @@ export type AnprEvent = {
44
38
  id: number;
45
39
  plateNumber: string;
46
40
  cameraExid: CameraExid;
41
+ cameraex: CameraExid;
47
42
  picName: string;
48
43
  eventTime: string;
49
44
  insertedAt: string;
@@ -66,6 +61,7 @@ export type AnprEvent = {
66
61
  contextCamera: string;
67
62
  votedVehicleType: GateReportVehicleType | string;
68
63
  roiId?: number;
64
+ captureTime: DateType;
69
65
  metadata_: {
70
66
  evercamMetadata?: {
71
67
  anpr?: {
@@ -0,0 +1,28 @@
1
+ export declare enum RoleResourceType {
2
+ App = "app",
3
+ Camera = "camera",
4
+ Project = "project"
5
+ }
6
+ export type BaseRole = {
7
+ id: number;
8
+ name: string;
9
+ };
10
+ export type Role = BaseRole & {
11
+ resource: string;
12
+ resourceType: RoleResourceType;
13
+ permissions: string[];
14
+ subRoles?: Array<SubRole>;
15
+ };
16
+ export type SubRole = {
17
+ resourceId: string;
18
+ roleId: number;
19
+ permissions: string[];
20
+ roleName: string;
21
+ };
22
+ export type ProjectResourceRole = Role & {
23
+ resourceType: RoleResourceType.Project;
24
+ };
25
+ export type CameraResourceRole = Omit<Role, "subRoles"> & {
26
+ resourceType: RoleResourceType.Camera;
27
+ };
28
+ export type ProjectRoleRequestPayload = Omit<Role, "id" | "resource" | "resourceType">;
@@ -0,0 +1,61 @@
1
+ import { AconexIdentifiers, CameraExid } from "@evercam/api/types";
2
+ export declare enum AutomationProvider {
3
+ Aconex = "aconex",
4
+ Procore = "procore",
5
+ Autodesk = "autodesk",
6
+ Email = "email"
7
+ }
8
+ export declare enum AutomationType {
9
+ Photo = "photo",
10
+ Compare = "compare"
11
+ }
12
+ export type AutomationCompareConfig = {
13
+ compareDelay: number;
14
+ };
15
+ export type AutomationEmailProviderConfig = {
16
+ recipients: string | string[];
17
+ };
18
+ export type AutomationProcoreProviderConfig = {
19
+ companyId: number;
20
+ companyName: string;
21
+ projectId: number;
22
+ projectName: string;
23
+ categoryId: number;
24
+ categoryName: string;
25
+ };
26
+ export type AutomationAconexProviderConfig = {
27
+ projectId: number;
28
+ projectName: string;
29
+ } & Partial<Record<AconexIdentifiers, string | number | boolean>>;
30
+ export type AutomationAutodeskProviderConfig = {
31
+ hubId: number;
32
+ hubName: string;
33
+ projectId: number;
34
+ projectName: string;
35
+ folderId: number;
36
+ accFileType: string;
37
+ accFolderType: string;
38
+ folderName: string;
39
+ };
40
+ export type AutomationProviderConfig = AutomationEmailProviderConfig | AutomationProcoreProviderConfig | AutomationAconexProviderConfig | AutomationAutodeskProviderConfig;
41
+ export type AutomationOptionsConfig = AutomationCompareConfig | {};
42
+ export type AutomationConfig = AutomationProviderConfig & AutomationOptionsConfig;
43
+ export type Automation = {
44
+ cameraExids: CameraExid[];
45
+ name: string;
46
+ subject?: string;
47
+ provider: AutomationProvider;
48
+ type: AutomationType;
49
+ config: AutomationConfig;
50
+ notifyDays: string[];
51
+ notifyTime: string;
52
+ timezone: string;
53
+ isPaused: boolean;
54
+ restrictedCameraExids?: string[];
55
+ };
56
+ export declare enum AutomationConfigStep {
57
+ Type = "type",
58
+ Cameras = "cameras",
59
+ Settings = "settings",
60
+ Destination = "destination"
61
+ }
@@ -1,4 +1,5 @@
1
1
  import type { AxiosError, AxiosInstance, AxiosRequestConfig, AxiosResponse, CancelTokenSource, CancelTokenStatic } from "axios";
2
+ import { Swr } from "@/api/client/swr/Swr";
2
3
  export type TimedRequest<T> = Promise<AxiosResponse<T> & {
3
4
  duration: number;
4
5
  error?: AxiosError;
@@ -7,7 +8,9 @@ export type AxiosEnvironment = {
7
8
  baseUrl?: string | null;
8
9
  stagingAiApiUrl?: string | null;
9
10
  aiApiUrl?: string | null;
11
+ aiApiUrlV2?: string | null;
10
12
  ingestApiUrl?: string | null;
13
+ ingestGpuApiUrl?: string | null;
11
14
  posthogApiUrl?: string | null;
12
15
  posthogProjectId?: string | null;
13
16
  posthogPrivateApiKey?: string | null;
@@ -15,10 +18,13 @@ export type AxiosEnvironment = {
15
18
  weatherApiBaseUrl?: string | null;
16
19
  evercamLabsUrl?: string | null;
17
20
  firebaseDbLink?: string | null;
21
+ firebaseStorageUrl?: string | null;
22
+ firebaseStorageToken?: string | null;
18
23
  snapshotsURL?: string | null;
19
24
  app?: string | null;
20
25
  getAuthToken?: () => string | null;
21
26
  errorLogger?: (error: AxiosError) => void;
27
+ swrKey?: string;
22
28
  };
23
29
  export type RequestInterceptor = (req: AxiosRequestConfig, env: AxiosEnvironment) => AxiosRequestConfig & any;
24
30
  export type ResponseInterceptor = (res: AxiosResponse, env: AxiosEnvironment) => AxiosResponse & any;
@@ -37,7 +43,13 @@ export interface ExtendedAxiosInstance extends AxiosInstance {
37
43
  addRequestInterceptor: (interceptor: RequestInterceptor, errorInterceptor?: ErrorInterceptor) => void;
38
44
  addResponseInterceptor: (interceptor: ResponseInterceptor, errorInterceptor?: ErrorInterceptor) => void;
39
45
  addErrorInterceptor: (interceptor: ErrorInterceptor) => void;
46
+ swr: Swr;
40
47
  }
48
+ export type ResponseValue<T> = T | undefined;
49
+ export type SwrResponse<T> = {
50
+ cachedValue: ResponseValue<T>;
51
+ freshPromise: Promise<ResponseValue<T>>;
52
+ };
41
53
  declare module "axios" {
42
54
  interface AxiosRequestConfig {
43
55
  raw?: boolean;
@@ -46,5 +58,9 @@ declare module "axios" {
46
58
  _metadata?: {
47
59
  startTime: number;
48
60
  };
61
+ swr?: boolean;
62
+ onSwrHit?: <T>(data: T) => unknown;
63
+ onSwrRefresh?: <T>(data: T) => unknown;
64
+ onSwrError?: (error: Error) => unknown;
49
65
  }
50
66
  }
@@ -1,4 +1,5 @@
1
- import { AuditLogActionType, DateTime_Z_micros, DateType, EntityByExid, NvrDeviceType, PaginationParams, PowerSchedule, PowerType, ProjectExid, Schedule } from "@/types";
1
+ import { AuditLogActionType, DateTime_Z_micros, DateType, EntityByExid, NvrDeviceType, PaginationParams, PowerSchedule, PowerType, ProjectExid, ProjectFeatureFlag, Schedule } from "@/types";
2
+ import { DateRangeFilter } from "@/types/time";
2
3
  export type CameraExid = string;
3
4
  export type CamerasByExid = EntityByExid<Camera>;
4
5
  export type Cartesian3 = {
@@ -17,7 +18,7 @@ export type Camera = {
17
18
  storageDuration: string;
18
19
  };
19
20
  createdAt: DateTime_Z_micros;
20
- description: null;
21
+ description: string | null;
21
22
  discoverable: boolean;
22
23
  external: {
23
24
  host: string;
@@ -62,7 +63,7 @@ export type Camera = {
62
63
  offlineReason: string;
63
64
  owned: boolean;
64
65
  owner: string;
65
- pitch: null;
66
+ pitch: string | null;
66
67
  project: {
67
68
  id: string;
68
69
  name: string;
@@ -72,8 +73,7 @@ export type Camera = {
72
73
  rtmp: string;
73
74
  };
74
75
  ptz: boolean;
75
- rights: string;
76
- roll: null;
76
+ roll: string | null;
77
77
  routerId: number;
78
78
  status: CameraStatus;
79
79
  streamingServer: string;
@@ -83,6 +83,7 @@ export type Camera = {
83
83
  updatedAt: DateTime_Z_micros;
84
84
  vendorName: string;
85
85
  isAccessRestricted?: boolean;
86
+ kitAlarms?: string[];
86
87
  };
87
88
  export type AdminCamera = {
88
89
  cameraHost: string;
@@ -134,7 +135,7 @@ export type AdminCamera = {
134
135
  pitch: null;
135
136
  powerSchedule: Schedule;
136
137
  projectExid: string;
137
- projectFeatureFlags: [];
138
+ projectFeatureFlags: ProjectFeatureFlag[];
138
139
  projectId: number;
139
140
  projectName: string;
140
141
  ptz: false;
@@ -153,6 +154,7 @@ export type AdminCamera = {
153
154
  userId: number;
154
155
  zohoId: string;
155
156
  thumbnailUrl?: string;
157
+ sharedWithConstruction: boolean;
156
158
  };
157
159
  export type CameraMapMarker = {
158
160
  isOnline: boolean;
@@ -175,9 +177,19 @@ export declare enum CameraStatus {
175
177
  UnderMaintenance = "under_maintenance",
176
178
  WaitingForSiteVisit = "waiting_for_site_visit"
177
179
  }
180
+ export declare enum IntensityChange {
181
+ High = "High",
182
+ Moderate = "Moderate",
183
+ Low = "Low",
184
+ NoChange = "No change",
185
+ Default = "Default"
186
+ }
187
+ export declare const IntensityChangeColorMap: Record<IntensityChange, string>;
178
188
  export declare enum CameraFeatureFlag {
179
189
  EdgeVideo = "edge_video",
180
190
  BimCompare = "bim_compare",
191
+ TwoDBimCompare = "2d_bim_compare",
192
+ ForgeBIMCompare = "forge_bim_compare",
181
193
  GateReport = "gate_report",
182
194
  VideoStream = "video_stream",
183
195
  WebRTC = "webrtc",
@@ -331,6 +343,7 @@ export type CameraPath = {
331
343
  export type CheckCameraPortPayload = {
332
344
  address: string;
333
345
  port: number;
346
+ open: boolean;
334
347
  };
335
348
  export type CameraCreateRequestPayload = {
336
349
  status: CameraStatus;
@@ -515,3 +528,10 @@ export type FetchCameraQueryParams = PaginationParams & {
515
528
  externalRsptPort: string;
516
529
  nvrHttpPort: string;
517
530
  };
531
+ export declare enum BimType {
532
+ TwoD = "2D",
533
+ Forge = "Forge"
534
+ }
535
+ export type CameraDateRangeFilter = DateRangeFilter & {
536
+ cameraExid: CameraExid;
537
+ };
@@ -1,15 +1,26 @@
1
- import { CameraExid, DateType, ProjectExid } from "@/types";
1
+ import { CameraExid, DateType, ProjectExid, PaginationParams } from "@/types";
2
2
  export declare enum CommentsScope {
3
3
  Recordings = "recordings",
4
- ThreeSixty = "360"
4
+ ThreeSixty = "360",
5
+ Drone = "drone"
6
+ }
7
+ export declare enum CommentsLabel {
8
+ Info = "Info",
9
+ Danger = "Danger",
10
+ Restricted = "Restricted"
5
11
  }
6
12
  export type CommentsRequestPayload = {
7
- cameraExid: CameraExid;
8
- fromDate: string;
9
- toDate: string;
10
13
  scope: CommentsScope;
11
- page?: number;
12
- limit?: number;
14
+ };
15
+ export type CommentsListRequestPayload = PaginationParams & {
16
+ projectExid?: ProjectExid;
17
+ cameraExid?: CameraExid;
18
+ fromDate?: string;
19
+ toDate?: string;
20
+ scope?: CommentsScope;
21
+ creatorEmail?: string;
22
+ content?: string;
23
+ includeArchived?: boolean;
13
24
  };
14
25
  export type Comment = {
15
26
  fromDate?: string;
@@ -28,6 +39,7 @@ export type Comment = {
28
39
  context?: Record<string, unknown>;
29
40
  canDelete?: boolean;
30
41
  archivedAt?: string;
42
+ label?: CommentsLabel;
31
43
  };
32
44
  export type CommentCreationRequestPayload = {
33
45
  fromDate?: DateType;
@@ -13,6 +13,34 @@ export type CompanyProject = {
13
13
  status: string;
14
14
  startedAt: DateType;
15
15
  };
16
+ export type CompanyKit = {
17
+ id: number;
18
+ name: string;
19
+ serial: string;
20
+ status: string;
21
+ powerType: string;
22
+ countryName: string;
23
+ nvrId: string;
24
+ nvrSerial: string;
25
+ nvrVersion: string;
26
+ nvrNerves: boolean;
27
+ nvrModel: string;
28
+ nvrDeviceType: string;
29
+ routerId: string;
30
+ routerSerial: string;
31
+ projectExid: string;
32
+ projectName: string;
33
+ alarms: Array<string>;
34
+ sims: Array<{
35
+ id: number;
36
+ number: string;
37
+ }>;
38
+ cameras: Array<{
39
+ exid: string;
40
+ name: string;
41
+ status: string;
42
+ }>;
43
+ };
16
44
  export type Company = {
17
45
  id: number;
18
46
  exid: string;
@@ -25,7 +53,7 @@ export type Company = {
25
53
  cameras: number;
26
54
  users: number;
27
55
  activeUsers: number;
28
- createdAt: DateType;
56
+ insertedAt: DateType;
29
57
  };
30
58
  export type CompanyQueryParams = PaginationParams & {
31
59
  name: string;
@@ -10,6 +10,10 @@ export declare enum Connector {
10
10
  VoyageControl = "voyage_control",
11
11
  XWeather = "xweather"
12
12
  }
13
+ export declare enum ProcoreType {
14
+ Observations = "observations",
15
+ Photos = "photos"
16
+ }
13
17
  export type ConnectorResponsePayload = Array<{
14
18
  hostname: string;
15
19
  login: string;
@@ -6,6 +6,7 @@ export type CreateCoolifyAppRequestPayload = {
6
6
  snapshotRequestTimeout: string | number;
7
7
  serverUuid: string;
8
8
  branch: string;
9
+ useThirdParty: boolean;
9
10
  };
10
11
  export type SaveCoolifyAppRequestPayload = {
11
12
  contextCameraExid: string;
@@ -15,4 +16,5 @@ export type SaveCoolifyAppRequestPayload = {
15
16
  branchName: string;
16
17
  snapshotRequestTimeout: string | number;
17
18
  serverUuid: string;
19
+ useThirdParty: boolean;
18
20
  };
@@ -490,13 +490,6 @@ export declare enum CountryCode {
490
490
  Zambia = "zm",
491
491
  Zimbabwe = "zw"
492
492
  }
493
- export declare enum Region {
494
- Apac = "apac",
495
- Emea = "emea",
496
- Us = "us",
497
- Latam = "latam",
498
- Na = "na"
499
- }
500
493
  export declare enum CameraRegion {
501
494
  APAC = "apac",
502
495
  AU = "au",
@@ -2,4 +2,5 @@ export type ApiCredentials = {
2
2
  apiKey?: string;
3
3
  apiId?: string;
4
4
  token?: string;
5
+ includeImage?: boolean;
5
6
  };
@@ -1,11 +1,17 @@
1
- import { type BoundingBox, type CameraExid, type DateType, DetectionLabel, SegmentLabel, type TimelineDateInterval, TimelinePrecision } from "@/types";
2
- export type DetectionsFilters = {
3
- cameraExid: CameraExid;
1
+ import { type BoundingBox, type ProjectExid, type CameraExid, type DateType, DetectionLabel, SegmentLabel, type TimelineDateInterval, TimelinePrecision, DateRangeFilter, ProjectDateRangeFilter, CameraDateRangeFilter } from "@/types";
2
+ export type BaseDetectionsFilters = {
4
3
  fromDate: string | Date;
5
4
  toDate: string | Date;
6
5
  labels: DetectionLabel | DetectionLabel[];
7
6
  trackId?: number;
8
7
  };
8
+ export type DetectionsFilters = BaseDetectionsFilters & {
9
+ projectExid: ProjectExid;
10
+ cameraExids?: CameraExid[];
11
+ };
12
+ export type SegmentsFilters = BaseDetectionsFilters & {
13
+ cameraExid: CameraExid;
14
+ };
9
15
  export type BBox = number[];
10
16
  export type SelectedObjectPath = {
11
17
  label: string;
@@ -16,9 +22,32 @@ export type SelectedObjectPath = {
16
22
  bbox: BBox;
17
23
  }>;
18
24
  };
25
+ export type Label = DetectionLabel | PpeLabel;
19
26
  export type Detection = {
20
27
  bbox: BBox;
21
28
  timestamp: string | Date;
29
+ label: DetectionLabel;
30
+ confidenceScore: number;
31
+ };
32
+ export type DetectionsGroup = {
33
+ timestamp: DateType;
34
+ detections: Detection[];
35
+ };
36
+ export type DetectionsCounts = {
37
+ timestamps: number;
38
+ } & {
39
+ [label in Label]: number;
40
+ };
41
+ export type DetectionsCountsByPeriod = {
42
+ days: Array<{
43
+ day: string;
44
+ } & DetectionsCounts>;
45
+ months: Array<{
46
+ month: string;
47
+ } & DetectionsCounts>;
48
+ years: Array<{
49
+ year: string;
50
+ } & DetectionsCounts>;
22
51
  };
23
52
  export type Tracking = {
24
53
  trackId: number;
@@ -43,11 +72,6 @@ export type SegmentSimilarityResult = {
43
72
  distance: number;
44
73
  segment: Segment;
45
74
  };
46
- export type SegmentsSimilaritySearchResult = {
47
- firstSeen: DateType | null;
48
- lastSeen: DateType | null;
49
- similarSegments: SegmentSimilarityResult[];
50
- };
51
75
  export type SegmentsSimilaritySearchParams = {
52
76
  cameraExid: CameraExid;
53
77
  referenceId: string;
@@ -55,18 +79,15 @@ export type SegmentsSimilaritySearchParams = {
55
79
  fromDate: string;
56
80
  toDate: string;
57
81
  };
58
- export type CountsParams = {
59
- cameraExid: CameraExid;
60
- fromDate: string | Date;
61
- toDate: string | Date;
82
+ export type BaseCountsParams = DateRangeFilter & {
62
83
  precision: keyof typeof TimelinePrecision;
63
84
  trackId: number;
64
85
  labels: DetectionLabel | DetectionLabel[];
65
86
  };
66
- export type CountByPeriod = {
67
- date: string | Date;
68
- counts: Record<string, number>;
87
+ export type DetectionsCountsParams = ProjectDateRangeFilter & BaseCountsParams & {
88
+ cameraExids?: CameraExid[];
69
89
  };
90
+ export type SegmentsCountsParams = CameraDateRangeFilter & BaseCountsParams;
70
91
  export type DetectionsPresenceByLabel = Record<DetectionLabel, TimelineDateInterval[]>;
71
92
  export type SegmentsPresenceByLabel = Record<SegmentLabel, TimelineDateInterval[]>;
72
93
  export type LuminanceReading = {
@@ -74,3 +95,18 @@ export type LuminanceReading = {
74
95
  luminanceDelta: number;
75
96
  luminanceAverage: number;
76
97
  };
98
+ export declare enum PpeLabel {
99
+ Helmet = "helmet",
100
+ HighVisibilityVest = "high-visibility-vest",
101
+ SafetyGlasses = "safety-glasses",
102
+ Person = "person",
103
+ Man = "man",
104
+ Woman = "woman"
105
+ }
106
+ export declare enum DetectionModel {
107
+ Yolov10 = 1,
108
+ Yolov11 = 2,
109
+ Yolov112 = 3,
110
+ GroundingDino = 4,
111
+ Owlv2 = 5
112
+ }
@@ -14,12 +14,25 @@ export declare enum ErrorType {
14
14
  UnhandledRejection = "UnhandledRejection",
15
15
  TypeError = "TypeError"
16
16
  }
17
+ export declare enum ErrorCode {
18
+ InternalServerError = 500,
19
+ BadGatewayError = 502,
20
+ ServiceUnavailableError = 503,
21
+ GatewayTimeoutError = 504,
22
+ BadRequestError = 400,
23
+ UnauthorizedError = 401,
24
+ ForbiddenError = 403,
25
+ NotFoundError = 404,
26
+ ConflictError = 409
27
+ }
17
28
  export declare enum EvercamApiErrorCode {
29
+ IntegrationError = "INTEGRATION_ERROR",
18
30
  BadArgument = "BAD_ARGUMENT",
19
31
  DeviceError = "DEVICE_ERROR",
20
32
  UnsupportedOperation = "UNSUPPORTED_OPERATION",
21
33
  QuotaExceeded = "QUOTA_EXCEEDED",
22
34
  InvalidCredentials = "INVALID_CREDENTIALS",
35
+ InvalidToken = "INVALID_TOKEN",
23
36
  ProviderAuthFailure = "PROVIDER_AUTH_FAILURE",
24
37
  ProviderEmailRequired = "PROVIDER_EMAIL_REQUIRED",
25
38
  PasswordReset = "PASSWORD_RESET",