@evercam/api 1.0.0-e03a0c41b → 1.0.0-fa346266d

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.umd.cjs","sources":["../types/360.ts","../types/aconex.ts","../types/analytics.ts","../types/anpr.ts","../types/media.ts","../types/bim.ts","../types/camera.ts","../types/compare.ts","../types/copilot.ts","../types/devices.ts","../types/drone.ts","../types/errors.ts","../types/gateReport.ts","../types/ingest.ts","../types/map.ts","../types/connector.ts","../types/notification.ts","../types/nvr.ts","../types/progressPhoto.ts","../types/project.ts","../types/recording.ts","../types/roi.ts","../types/routeParams.ts","../types/router.ts","../types/shares.ts","../types/sim.ts","../types/sitePlanner.ts","../types/streaming.ts","../types/timelapse.ts","../types/user.ts","../types/videoWall.ts","../types/weather.ts","../types/shared.ts","../types/kit.ts","../types/auditLogs.ts","../types/snapshots.ts","../types/siteAnalytics.ts","../types/widget.ts","../types/countries.ts","../types/automation.ts","../api/client/customErrors.ts","../api/client/interceptors.ts","../api/client/axios.ts","../api/adminApi.ts","../api/videoWallApi.ts","../api/3dFirebaseApi.ts","../utils.ts","../api/aiApi.ts","../api/webRtcApi.ts","../api/weatherApi.ts","../api/evercamLabsApi.ts","../api/evercamApi.ts","../api/ptzApi.ts","../api/ingestApi.ts","../api/exNvrApi.ts","../api/authzApi.ts"],"sourcesContent":["import { DateType } from \"@/types/time\"\n\nexport type _360CameraParams = {\n azimuthAngle: number\n polarAngle: number\n}\n\nexport type _360Floor = {\n floorID: string\n name: string\n}\n\nexport type _360Scene = {\n date: string // DD-MM-YYYY\n dateID: string\n floors: _360Floor[]\n polarAngle: number\n azimuthAngle: number\n}\n\nexport type _360ProjectJsonResponse = {\n dates: _360Scene[]\n [key: string]: any\n}\n\nexport type MobileCaptureSnapshot = {\n id: string\n uploadedBy: string\n updatedAt: string //YYYY-MM-DDTHH:mm:SS.MS (ISO)\n assetType: string //mobile_photos or mobile_audios\n thumbnailUrl: string //presigned S3 URL\n}\n\nexport enum _360UrlParams {\n DateId = \"date_id\",\n Floor = \"floor\",\n Marker = \"marker\",\n PolarAngle = \"polarAngle\",\n AzimuthAngle = \"azimuthAngle\",\n}\n\nexport enum _360AssetType {\n Video = \"video\",\n Image = \"image\",\n Model = \"model\",\n Route = \"route\",\n MobilePhoto = \"mobile_photos\",\n MobileAudio = \"mobile_audios\",\n}\n\nexport enum _360IntergrationType {\n Matterport = \"Matterport\",\n OpenSpace = \"Openspace\",\n HoloBuilder = \"Holobuilder\",\n DroneDeploy = \"Dronedeploy\",\n Evercam = \"Evercam\",\n}\n\nexport type _360AssetsQueryParams = {\n page: number\n limit: number\n projectID: string\n date: DateType\n floor: string\n id: string\n}\n\nexport type _360AssetsRequestPayload = {\n projectId: string\n date: DateType\n floor: string\n uploadedBy?: string\n}\n\nexport type _360AssetsUploadPayload = {\n targetPointsCount: number\n assetType: string\n upload: {\n url: string\n title: string\n fileExtension: string\n }[]\n deviceSerial: string\n startPosition: string\n endPosition: string\n isTimelapse: boolean\n}\n\nexport type Generate360MapRequestPayload = {\n dateId: string\n floorId: string\n cameraOffset: string\n startPoint: string\n endPoint: string\n}\n","export type AconexUserProjectsResponsePayload = Array<{\n id: number\n name: string\n shortName: string\n startDate: string\n endDate: string\n}>\n\nexport type AconexDocumentSchemaField = {\n dataType: AconexDocumentDataType\n identifier: string\n schemaValues: Array<{ id: string; value: string }>\n fieldName: string\n mandatoryStatus: AconexMandatoryStatus\n componentType?: AconexFormComponentType\n items?: Array<any>\n disabled?: boolean\n}\n\nexport enum AconexDocumentDataType {\n Long = \"LONG\",\n Integer = \"INTEGER\",\n String = \"STRING\",\n Boolean = \"BOOLEAN\",\n Date = \"DATE\",\n}\n\nexport enum AconexFormComponentType {\n Select = \"SelectField\",\n Text = \"TextField\",\n DateTime = \"DateTimeField\",\n Switch = \"SwitchField\",\n}\n\nexport enum AconexMandatoryStatus {\n Mandatory = \"MANDATORY\",\n NotMandatory = \"NOT_MANDATORY\",\n}\n\nexport type AconexAuthCallbackParams = {\n code: string\n location: string\n}\n\nexport type AconexEditedImageUploadRequestPayload = {\n projectExid: string\n snapshot: string\n}\n","import { DateType } from \"@/types\"\n\nexport type AnalyticsRequestPayload = {\n name: string\n cameraExid: string\n} & { [key: string]: any }\n\nexport enum AnalyticsEventPageId {\n Timeline = \"Timeline\",\n Copilot = \"Copilot\",\n Recordings = \"Recordings\",\n Liveview = \"LiveView\",\n Compare = \"Compare\",\n BimCompare = \"BimCompare\",\n Sharing = \"Sharing\",\n Timelapse = \"Timelapse\",\n Project = \"Project\",\n AllProjects = \"AllProjects\",\n Tutorials = \"Tutorials\",\n ProjectMapView = \"ProjectMapView\",\n AccountMapView = \"AccountMapView\",\n Automations = \"Automations\",\n ProgressPhotosUnsubscribe = \"ProgressPhotosUnsubscribe\",\n VideoWall = \"VideoWall\",\n ProjectSettings = \"ProjectSettings\",\n ProjectSettingsCameraSettings = \"ProjectSettings-CameraSettings\",\n ProjectSettingsMembers = \"ProjectSettings-Members\",\n ProjectSettingsOverview = \"ProjectSettings-Overview\",\n Settings = \"Settings\",\n SettingsAccount = \"Settings-Account\",\n SettingsActivities = \"Settings-Activities\",\n SettingsConnectors = \"Settings-Connectors\",\n MediaHub = \"MediaHub\",\n MediaOveriew = \"MediaOveriew\",\n GateReport = \"GateReport\",\n Bim = \"Bim\",\n Drone = \"Drone\",\n ThreeSixty = \"360\",\n SitePlanner = \"SitePlanner\",\n Widgets = \"Widgets\",\n Company = \"Company\",\n EmbeddedLive = \"EmbeddedLive\",\n EmbeddedRecordings = \"EmbeddedRecordings\",\n EmbeddedBimCompare = \"EmbeddedBimCompare\",\n GateReportInfo = \"GateReportInfo\",\n BimInfo = \"BimInfo\",\n DroneInfo = \"DroneInfo\",\n ThreeSixtyInfo = \"360Info\",\n BimCompareInfo = \"BimCompareInfo\",\n WeatherReport = \"WeatherReport\",\n EvercamGoInfo = \"EvercamGoInfo\",\n}\n\nexport enum AnalyticsEvent {\n // Global events\n PageView = \"PageView\",\n OpenCompanyPage = \"OpenCompanyPage\",\n OpenSettings = \"OpenSettings\",\n ToggleHelpDialog = \"ToggleHelpDialog\",\n\n // Layout events\n LayoutToggleRightSidebar = \"Layout-ToggleRightSidebar\",\n LayoutResizeRightSidebar = \"Layout-ResizeRightSidebar\",\n LayoutThemeMode = \"Layout-ThemeMode\",\n\n // Features toggle events\n Xray = \"Xray-Toggle\",\n Weather = \"Weather-Toggle\",\n MarkUpTool = \"MarkUpTool-Toggle\",\n Comment = \"Comment-Toggle\",\n Compare = \"Compare-Toggle\",\n Copilot = \"Copilot-Toggle\",\n\n // App settings events\n SettingsAccountUpdatePassword = \"UpdatePassword\",\n SettingsAccountUpdatePersonalInformation = \"UpdatePersonalInformation\",\n SettingsAccountRevokeSession = \"RevokeSession\",\n SettingsAccountCancelRevokeSession = \"CancelRevokeSession\",\n SettingsAccountClickRowsPerPage = \"ClickRowsPerPage\",\n SettingsAccountOpenDeleteAccountDialog = \"DeleteAccount\",\n SettingsActivitiesFromDateSelect = \"FromDateSelect\",\n SettingsActivitiesToDateSelect = \"ToDateSelect\",\n SettingsConnectorsConnectToProcore = \"ConnectToProcore\",\n SettingsConnectorsConnectToAconex = \"ConnectToAconex\",\n SettingsConnectorsConnectToAutodesk = \"ConnectToAutodesk\",\n SettingsConnectorsConnectToVoyageControl = \"ConnectToVoyageControl\",\n SettingsConnectorsContactUsButtonClick = \"ClickContactUs\",\n SettingsConnectorsRemoveAconexConnection = \"RemoveAconex\",\n SettingsConnectorsRemoveAutodeskConnection = \"RemoveAutodesk\",\n SettingsConnectorsRemoveProcoreConnection = \"RemoveProcore\",\n SettingsConnectorsRemoveVoyageControlConnection = \"RemoveVoyageControl\",\n SettingsConnectorsToggleConnectorPromptDialog = \"ToggleConnectorPromptDialog\",\n SettingsConnectorsToggleVoyageControlDialog = \"ToggleVoyageControlDialog\",\n\n // Widgets events\n WidgetsAddWidgetClick = \"AddWidget\",\n WidgetsCancelClick = \"Cancel\",\n WidgetsEditHeight = \"EditHeight\",\n WidgetsEditHeightResolutionType = \"EditHeightResolutionType\",\n WidgetsEditWidth = \"EditWidth\",\n WidgetsEditWidthResolutionType = \"EditWidthResolutionType\",\n WidgetsLayout = \"ClickLayout\",\n WidgetsSaveClick = \"Save\",\n WidgetsSelectCamera = \"SelectCamera\",\n WidgetsSelectTypeBIMCompare = \"SelectTypeBIMCompare\",\n WidgetsSelectTypeLiveView = \"SelectTypeLiveView\",\n WidgetsSelectTypeRecordings = \"SelectTypeRecordings\",\n WidgetsSelectTypeVideoWall = \"SelectTypeVideoWall\",\n WidgetsSettingRefreshRate = \"EditRefreshRate\",\n WidgetsSettingRestrictRecentImagesInput = \"EditRestrictRecentImagesInput\",\n WidgetsSettingToggleBIMCompareDarkMode = \"ToggleBIMDarkMode\",\n WidgetsSettingToggleBIMCompareTimeLine = \"ToggleBIMTimeline\",\n WidgetsSettingToggleBIMCompareCalendar = \"ToggleBIMCalendar\",\n WidgetsSettingToggleDownload = \"ToggleDownload\",\n WidgetsSettingToggleFullScreen = \"ToggleFullScreen\",\n WidgetsSettingTogglePlayPause = \"TogglePlayPause\",\n WidgetsSettingToggleRecordingsCalendar = \"ToggleRecordingsCalendar\",\n WidgetsSettingToggleRecordingsDarkMode = \"ToggleRecordingsDarkMode\",\n WidgetsSettingToggleRestrictRecentImages = \"ToggleRestrictRecentImages\",\n WidgetsSettingToggleZoom = \"ToggleZoom\",\n WidgetsTogglePublicWidget = \"TogglePublicWidget\",\n\n // Player events\n PlayerSelectCamera = \"Player-SelectCamera\",\n PlayerDownload = \"Player-Download\",\n PlayerToggleFullscreen = \"Player-ToggleFullscreen\",\n PlayerEnableLive = \"Player-EnableLive\",\n PlayerTogglePlayback = \"Player-TogglePlayback\",\n PlayerSelectSpeed = \"Player-SelectSpeed\",\n PlayerSelectQuality = \"Player-SelectQuality\",\n PlayerJumptoNextTicks = \"Player-JumptoNextTicks\",\n PlayerJumptoPreviousTicks = \"Player-JumptoPreviousTicks\",\n PlayerSwitchMode = \"Player-SwitchMode\",\n PlayerZoomIn = \"Player-ZoomIn\",\n PlayerZoomOut = \"Player-ZoomOut\",\n\n // PTZ camera events\n PTZAddPresetClick = \"PTZ-AddPresetClick\",\n PTZCreatePreset = \"PTZ-CreatePreset\",\n PTZUpdatePreset = \"PTZ-UpdatePreset\",\n PTZDeletePreset = \"PTZ-DeletePreset\",\n PTZMoveDown = \"PTZ-MoveDown\",\n PTZMoveLeft = \"PTZ-MoveLeft\",\n PTZMoveRight = \"PTZ-MoveRight\",\n PTZMoveUp = \"PTZ-MoveUp\",\n PTZPresetSelect = \"PTZ-PresetSelect\",\n PTZResetPosition = \"PTZ-ResetPosition\",\n PTZToggleCreatePresetForm = \"PTZ-ToggleCreatePresetForm\",\n PTZToggleDeletePresetDialog = \"PTZ-ToggleDeletePresetDialog\",\n PTZToggleEditPresetForm = \"PTZ-ToggleEditPresetForm\",\n PTZTogglePresetsMenu = \"PTZ-TogglePresetsMenu\",\n PTZZoomIn = \"PTZ-ZoomIn\",\n PTZZoomOut = \"PTZ-ZoomOut\",\n\n // Timeline actions\n TimelineClickEvent = \"Timeline-ClickEvent\",\n TimelineCompareMoveBeforeMarker = \"Compare-MoveBeforeMarker\",\n TimelineCompareMoveAfterMarker = \"Compare-MoveAfterMarker\",\n TimelineCompareSlide = \"Compare-Slide\",\n TimelineSelectMilestoneItem = \"Timeline-SelectMilestoneItem\",\n TimelineSelectTimestamp = \"Timeline-SelectTimestamp\",\n\n // Copilot\n CopilotSendMessage = \"Copilot-SendMessage\",\n CopilotClickTimestamp = \"Copilot-ClickTimestamp\",\n CopilotRegenerate = \"Copilot-Regenerate\",\n CopilotError = \"Copilot-Error\",\n CopilotNavigation = \"Copilot-Navigation\",\n CopilotToggle = \"Copilot-Toggle\",\n\n // Timeline groups visibility events\n GroupsVisibilityMobileCapture = \"GroupsVisibility-MobileCapture\",\n GroupsVisibilityAnpr = \"GroupsVisibility-Anpr\",\n GroupsVisibilityComments = \"GroupsVisibility-Comments\",\n GroupsVisibilityMediaHub = \"GroupsVisibility-MediaHub\",\n GroupsVisibilityBimMilestones = \"GroupsVisibility-BimMilestines\",\n GroupsVisibilityDroneFlights = \"GroupsVisibility-DroneFlights\",\n GroupsVisibility360Walks = \"GroupsVisibility-360Walks\",\n GroupsVisibilityExNvrVideoRecordings = \"GroupsVisibility-ExNvrVideoRecordings\",\n GroupsVisibilityLuminance = \"GroupsVisibility-Luminance\",\n\n // Comments events\n CommentsPlaceMarker = \"Comments-PlaceMarker\",\n CommentsSave = \"Comments-Save\",\n CommentsCancelSave = \"Comments-CancelSave\",\n CommentsRemove = \"Comments-Remove\",\n CommentsCancelRemove = \"Comments-CancelRemove\",\n CommentsArchive = \"Comments-Archive\",\n CommentsCancelArchive = \"Comments-CancelArchive\",\n CommentsSelect = \"Comments-Select\",\n\n // Xray events\n XrayMove = \"Xray-Move\",\n XrayMoveBeforeMarker = \"Xray-MoveBeforeMarker\",\n XrayMoveAfterMarker = \"Xray-MoveAfterMarker\",\n XrayToggleExportDialog = \"Xray-ToggleExportDialog\",\n XrayDownload = \"Xray-Download\",\n XraySaveToMediaHub = \"Xray-SaveToMediaHub\",\n XarySelectDate = \"Xray-SelectDate\",\n XarySelectLatestDate = \"Xray-SelectLatestDate\",\n XarySelectOldestDate = \"Xray-SelectOldestDate\",\n XraySendToConnector = \"Xray-SendToConnector\",\n\n // Weather events\n WeatherGoBackDate = \"Weather-GoBackDate\",\n WeatherGoForwardDate = \"Weather-GoForwardDate\",\n WeatherReportExportFile = \"ExportFile\",\n WeatherReportExportType = \"ExportType\",\n WeatherReportMediaHubUploadFile = \"MediaHubUploadFile\",\n WeatherReportSelectStartDate = \"SelectStartDate\",\n WeatherReportSelectEndDate = \"SelectEndDate\",\n WeatherReportViewChart = \"ViewChart\",\n WeatherSelectDate = \"Weather-SelectDate\",\n WeatherSelectLegend = \"Weather-SelectLegend\",\n WeatherSelectProvider = \"Weather-SelectProvider\",\n WeatherSelectTempScale = \"Weather-SelectTempScale\",\n\n // Compare events\n CompareSlide = \"Slide\",\n CompareSelectBeforeDate = \"SelectBeforeDate\",\n CompareSelectBeforeLatestDate = \"SelectBeforeLatestDate\",\n CompareSelectBeforeOldestDate = \"SelectBeforeOldestDate\",\n CompareSelectAfterDate = \"SelectAfterDate\",\n CompareSelectAfterOldestDate = \"SelectAfterOldestDate\",\n CompareSelectAfterLatestDate = \"SelectAfterLatestDate\",\n CompareToggleExportDialog = \"ToggleExportDialog\",\n CompareSaveToMediaHub = \"SaveToMediaHub\",\n CompareGoToMediaHub = \"GoToMediaHub\",\n CompareDownloadAs = \"DownloadAs\",\n CompareCopyDownloadFileUrl = \"CopyDownloadFileUrl\",\n\n // Bim Compare events\n BimCompareSlide = \"BimCompare-Slide\",\n BimCompareSelectCameraDate = \"BimCompare-SelectCameraDate\",\n BimCompareSelectCameraLatestDate = \"BimCompare-SelectCameraLatestDate\",\n BimCompareSelectCameraOldestDate = \"BimCompare-SelectCameraOldestDate\",\n BimCompareSelectBimDate = \"BimCompare-SelectBimDate\",\n BimCompareSelectBimOldestDate = \"BimCompare-SelectBimOldestDate\",\n BimCompareSelectBimLatestDate = \"BimCompare-SelectBimLatestDate\",\n BimCompareSelectModel = \"BimCompare-SelectModel\",\n BimCompareChangeTransparency = \"BimCompare-ChangeTransparency\",\n BimCompareSelectTimelineDate = \"BimCompare-SelectTimelineDate\",\n BimCompareToggleExportDialog = \"BimCompare-ToggleExportDialog\",\n BimCompareSaveToMediaHub = \"BimCompare-SaveToMediaHub\",\n BimCompareGoToMediaHub = \"BimCompare-GoToMediaHub\",\n BimCompareDownloadAs = \"BimCompare-DownloadAs\",\n BimCompareCopyDownloadFileUrl = \"BimCompare-CopyDownloadFileUrl\",\n\n // Mark-up tool events\n MarkUpToolClose = \"MarkUpTool-Close\",\n MarkUpToolCopyImage = \"MarkUpTool-CopyImage\",\n MarkUpToolOpen = \"MarkUpTool-Open\",\n MarkUpToolSelectTool = \"MarkUpTool-SelectTool\",\n MarkUpToolSelectBlur = \"MarkUpTool-SelectBlur\",\n MarkUpToolSelectCrop = \"MarkUpTool-SelectCrop\",\n MarkUpToolSelectLine = \"MarkUpTool-SelectLine\",\n MarkUpToolSelectBrush = \"MarkUpTool-SelectBrush\",\n MarkUpToolSelectRectangle = \"MarkUpTool-SelectRectangle\",\n MarkUpToolSelectCircle = \"MarkUpTool-SelectCircle\",\n MarkUpToolSelectArrow = \"MarkUpTool-SelectArrow\",\n MarkUpToolSelectText = \"MarkUpTool-SelectText\",\n MarkUpToolUndo = \"MarkUpTool-Undo\",\n MarkUpToolRedo = \"MarkUpTool-Redo\",\n MarkUpToolSelectColor = \"MarkUpTool-SelectColor\",\n MarkUpToolApplyCrop = \"MarkUpTool-ApplyCrop\",\n MarkUpToolCancelCrop = \"MarkUpTool-CancelCrop\",\n MarkUpToolCancelSend = \"MarkUpTool-CancelSend\",\n MarkUpToolOpenEditName = \"MarkUpTool-OpenEditName\",\n MarkUpToolCancelEditName = \"MarkUpTool-CancelEditName\",\n MarkUpToolSaveEditedName = \"MarkUpTool-SaveEditedName\",\n MarkUpToolSaveToMediaHub = \"MarkUpTool-SaveToMediaHub\",\n MarkUpToolDownloadAs = \"MarkUpTool-DownloadAs\",\n MarkUpToolSendToConnector = \"MarkUpTool-SendToConnector\",\n\n // Ai Tools events\n AiToolToggleBrainToolsMenu = \"AITool-ToggleBrainToolsMenu\",\n AiToolSelectObjectDetection = \"AITool-SelectObjectDetection\",\n AiToolSelectAskChatGpt = \"AITool-SelectAskChatGpt\",\n AiToolSelectSegmentation = \"AITool-SelectSegmentation\",\n AiToolSelectDepthAnalysis = \"AITool-SelectDepthAnalysis\",\n AiToolUpdateTransparency = \"AITool-UpdateTransparency\",\n\n // Recordings events\n RecordingsCancelExportDialog = \"CancelExportDialog\",\n RecordingsClickSupportLink = \"ClickSupportLink\",\n RecordingsCreateClip = \"CreateClip\",\n RecordingsToggleExportDialog = \"ToggleExportDialog\",\n RecordingToggleGateReportEvents = \"ToggleGateReportEvents\",\n RecordingsSelectDate = \"SelectDate\",\n RecordingsSelectDateClickMonthYear = \"SelectDate-ClickMonthYear\",\n RecordingsSelectLatestDate = \"SelectLatestDate\",\n RecordingsSelectOldestDate = \"SelectOldestDate\",\n\n // Sharing events\n SharingToggleAddUserDialog = \"ToggleAddUserDialog\",\n SharingToggleEditVisibilityOptionsDialog = \"ToggleEditVisibilityOptionsDialog\",\n SharingAddUser = \"AddUser\",\n SharingToggleDeleteUserDialog = \"ToggleDeleteUserDialog\",\n SharingDeleteUser = \"DeleteUser\",\n SharingSaveVisibilityOptions = \"SaveVisibilityOptions\",\n SharingCopyLink = \"CopyLink\",\n SharingResendInvite = \"ResendInvite\",\n SharingTransferOwnership = \"TransferOwnership\",\n SharingSortBy = \"SortBy\",\n SharingChangeAccessRight = \"ChangeAccessRight\",\n\n // ThreeSixty events\n ThreeSixtyChangeDate = \"ChangeDate\",\n ThreeSixtyChangeFloor = \"ChangeFloor\",\n ThreeSixtyCloseCompare = \"CloseCompare\",\n ThreeSixtyCloseForgeBIM = \"CloseForgeBIM\",\n ThreeSixtyDeleteTag = \"DeleteTag\",\n ThreeSixtyDisableMeasuringTool = \"DisableMeasuringTool\",\n ThreeSixtyDisableTagTool = \"DisableTagTool\",\n ThreeSixtyEnableMeasuringTool = \"EnableMeasuringTool\",\n ThreeSixtyEnableTagTool = \"EnableTagTool\",\n ThreeSixtyLockCompare = \"LockCompare\",\n ThreeSixtyLockForgeBIM = \"LockForgeBIM\",\n ThreeSixtyMarkerThumbnailClicked = \"MarkerThumbnailClicked\",\n ThreeSixtyMiniMapMarkerClicked = \"MiniMapMarkerClicked\",\n ThreeSixtyOpen = \"Open\",\n ThreeSixtyOpenCompare = \"OpenCompare\",\n ThreeSixtyOpenForgeBIM = \"OpenForgeBIM\",\n ThreeSixtyOpenMarkersThumbnailsList = \"OpenMarkersThumbnailsList\",\n ThreeSixtyOpenTagsList = \"OpenTagsList\",\n ThreeSixtySaveTag = \"SaveTag\",\n ThreeSixtyShareView = \"ShareView\",\n ThreeSixtyTagClicked = \"TagClicked\",\n ThreeSixtyToggleMarkersVisibility = \"ToggleMarkersVisibility\",\n ThreeSixtyToggleMinimapVisibility = \"ToggleMinimapVisibility\",\n ThreeSixtyToggleMiniModel = \"ToggleMiniModel\",\n ThreeSixtyToggleTagsVisibility = \"ToggleTagsVisibility\",\n ThreeSixtyTourPause = \"Tour-Pause\",\n ThreeSixtyTourPlay = \"Tour-Play\",\n ThreeSixtyTourSetSpeedXHalve = \"Tour-SetSpeedX0.5\",\n ThreeSixtyTourSetSpeedX1 = \"Tour-SetSpeedX1\",\n ThreeSixtyTourSetSpeedX2 = \"Tour-SetSpeedX2\",\n ThreeSixtyTourSetSpeedX4 = \"Tour-SetSpeedX4\",\n ThreeSixtyTourToggleLoop = \"Tour-ToggleLoop\",\n ThreeSixtyUnlockCompare = \"UnlockCompare\",\n ThreeSixtyUnlockForgeBIM = \"UnlockForgeBIM\",\n\n // Drone events\n DroneAreaToolClick = \"AreaTool-Click\",\n DroneChangeDate = \"ChangeDate\",\n DroneChooseTagType = \"ChooseTagType\",\n DroneClickCameraLiveView = \"ClickCameraLiveView\",\n DroneClickCameraMarker = \"ClickCameraMarker\",\n DroneCompareToolClick = \"CompareTool-Click\",\n DroneCompareToolSaveToMediaHub = \"CompareToolSaveToMediaHub\",\n DroneCompareToolSliderMove = \"CompareTool-SliderMove\",\n DroneCompareToolToggleExportDialog = \"CompareToolToggleExportDialog\",\n DroneCopyLocationToClipboard = \"CopyLocationToClipboard\",\n DroneEnable2DImagery = \"Enable2DImagery\",\n DroneGenerateUploadFlight = \"GenerateUploadFlight\",\n DroneInspectionToolClick = \"InspectionTool-Click\",\n DroneMeasuringToolClick = \"MeasuringTool-Click\",\n DroneOpenHelpPanel = \"OpenHelpPanel\",\n DroneOpenImageViewer = \"OpenImageViewer\",\n DroneResetView = \"ResetView\",\n DroneSaveTag = \"SaveTag\",\n DroneSettingsToggle360PathsVisibility = \"Settings-Toggle360PathsVisibility\",\n DroneSettingsToggleCameraMarkersVisibility = \"Settings-ToggleCameraMarkersVisibility\",\n DroneSettingsToggleSurroundingBuildingsTool = \"Settings-ToggleSurroundingBuildingsTool\",\n DroneSettingsToggleTagsVisibility = \"Settings-ToggleTagsVisibility\",\n DroneShareLink = \"ShareLink\",\n DroneTagsToolClick = \"TagsTool-Click\",\n DroneToggleBimCompareTool = \"ToggleBimCompareTool\",\n DroneToggleFullScreen = \"ToggleFullScreen\",\n DroneToggleMapStyle = \"ToggleMapStyle\",\n DroneToggleQualityMode = \"ChooseQuality\",\n DroneToggleSideMenu = \"ToggleSideMenu\",\n DroneToggleImageryPlan = \"ToggleImageryPlan\",\n DroneToggleSceneMode = \"ToggleSceneMode\",\n DroneUploadFlight = \"UploadFlight\",\n DroneViewLocationInGoogleMaps = \"ViewLocationInGoogleMaps\",\n DroneVolumeToolClick = \"VolumeTool-Click\",\n DroneZoomIn = \"ZoomIn\",\n DroneZoomOut = \"ZoomOut\",\n\n // Site Planner events\n SitePlannerAddCameraClick = \"AddCameraClick\",\n SitePlannerAddSitePlanDrawingClick = \"AddSitePlanDrawingClick\",\n SitePlannerAddSitePlanClick = \"AddSitePlanClick\",\n SitePlannerAttachSitePlanDrawing = \"AttachSitePlanDrawing\",\n SitePlannerCameraMarkerEditFOVAngle = \"CameraMarker-EditFOVAngle\",\n SitePlannerCameraMarkerEditHeading = \"CameraMarker-EditHeading\",\n SitePlannerCameraMarkerEditName = \"CameraMarker-EditName\",\n SitePlannerCameraMarkerEditRadius = \"CameraMarker-EditRadius\",\n SitePlannerCameraMarkerSelectColor = \"CameraMarker-SelectColor\",\n SitePlannerCameraMarkerToggleVisibility = \"CameraMarker-ToggleVisibility\",\n SitePlannerCameraMarkerToggleDeleteDialog = \"CameraMarker-ToggleDeleteDialog\",\n SitePlannerCancelUploadSitePlanDrawing = \"CancelUploadSitePlanDrawing\",\n SitePlannerChangeLocation = \"ChangeLocation\",\n SitePlannerOpen = \"Open\",\n SitePlannerResetView = \"ResetView\",\n SitePlannerSitePlansList = \"SitePlansList\",\n SitePlannerToggleCamerasLabel = \"ToggleCamerasLabel\",\n SitePlannerToggleFullscreen = \"ToggleFullscreen\",\n SitePlannerToggleMapStyle = \"ToggleMapStyle\",\n SitePlannerToggleSaveSessionDialog = \"ToggleSaveSessionDialog\",\n SitePlannerUploadSitePlanDrawing = \"UploadSitePlanDrawing\",\n SitePlannerZoomIn = \"ZoomIn\",\n SitePlannerZoomOut = \"ZoomOut\",\n\n // Markers events\n MarkerClicked = \"MarkerClicked\",\n\n // Timelapse Creator events\n TimelapseToggleHelpDialog = \"ToggleHelpDialog\",\n TimelapseSelectCustomPeriod = \"SelectCustomPeriod\",\n TimelapseToggleCustomScheduleDialog = \"ToggleCustomScheduleDialog\",\n TimelapseSaveCustomSchedule = \"SaveCustomSchedule\",\n TimelapseToggleExportDialog = \"ToggleExportDialog\",\n TimelapseExportSelectStep = \"SelectStep\",\n TimelapseSelectOption = \"SelectOption\",\n TimelapseSelectSchedule = \"SelectSchedule\",\n TimelapseSaveToMediaHub = \"SaveToMediaHub\",\n TimelapseGoToMediaHub = \"GoToMediaHub\",\n TimelapseToggleUploadLogoDialog = \"ToggleUploadLogoDialog\",\n TimelapseUploadLogo = \"UploadLogo\",\n\n // Progress Photos events\n ProgressPhotoCancelPause = \"ProgressPhoto-CancelPause\",\n ProgressPhotoCancelResume = \"ProgressPhoto-CancelResume\",\n ProgressPhotoCancelDelete = \"ProgressPhoto-CancelDelete\",\n ProgressPhotoCreate = \"ProgressPhoto-Create\",\n ProgressPhotoDelete = \"ProgressPhoto-Delete\",\n ProgressPhotoEdit = \"ProgressPhoto-Edit\",\n ProgressPhotoEditCamerasFilter = \"ProgressPhoto-EditCamerasFilter\",\n ProgressPhotoEditDaysFilter = \"ProgressPhoto-EditDaysFilter\",\n ProgressPhotoEditProjectsFilter = \"ProgressPhoto-EditProjectsFilter\",\n ProgressPhotoEditSearchFilter = \"ProgressPhoto-EditSearchFilter\",\n ProgressPhotoEditStatusFilter = \"ProgressPhoto-EditStatusFilter\",\n ProgressPhotoEditUsersFilter = \"ProgressPhoto-EditUsersFilter\",\n ProgressPhotoFiltersClicked = \"ProgressPhoto-FiltersClicked\",\n ProgressPhotoPause = \"ProgressPhoto-Pause\",\n ProgressPhotoResume = \"ProgressPhoto-Resume\",\n ProgressPhotoResumeDelete = \"ProgressPhoto-ResumeDelete\",\n ProgressPhotoSelectCameras = \"ProgressPhoto-SelectCameras\",\n ProgressPhotoSelectDays = \"ProgressPhoto-SelectDays\",\n ProgressPhotoSelectMember = \"ProgressPhoto-SelectMember\",\n ProgressPhotoSelectProvider = \"ProgressPhoto-SelectProvider\",\n ProgressPhotoSelectTime = \"ProgressPhoto-SelectTime\",\n ProgressPhotoSelectTimezone = \"ProgressPhoto-SelectTimezone\",\n ProgressPhotoToggleCreateDialog = \"ProgressPhoto-ToggleCreateDialog\",\n ProgressPhotoToggleEditDialog = \"ProgressPhoto-ToggleEditDialog\",\n ProgressPhotoUnsubscribeUser = \"ProgressPhoto-UnsubscribeUser\",\n\n // Map View events\n MapViewChooseSatellite = \"MapView-ChooseSatellite\",\n MapViewChooseTerrain = \"MapView-ChooseMap\",\n MapViewClickCameraLink = \"MapView-ClickCameraLink\",\n MapViewToggleCameraMapInfoTooltip = \"MapView-ToggleCameraMapInfoTooltip\",\n\n // Video Wall events\n VideoWallToggleFullscreen = \"VideoWall-ToggleFullscreen\",\n VideoWallToggleCameraFullscreen = \"VideoWall-ToggleCameraFullscreen\",\n VideoWallToggleConfigDialog = \"VideoWall-ToggleConfigDialog\",\n VideoWallToggleCameraVisibility = \"VideoWall-ToggleCameraVisibility\",\n VideoWallPositionCameraOnWall = \"VideoWall-PositionCameraOnWall\",\n VideoWallSaveConfig = \"VideoWall-SaveConfig\",\n\n // Project Settings\n ProjectSettingsCameraSettingsCancelEditCameraName = \"CancelEditCameraName\",\n ProjectSettingsCameraSettingsEditCameraName = \"EditCameraName\",\n ProjectSettingsCameraSettingsEditCameraVisibility = \"EditCameraVisibility\",\n ProjectSettingsCameraSettingsSaveCameraName = \"SaveCameraName\",\n ProjectSettingsMembersApplyCamerasFilter = \"ApplyCamerasFilter\",\n ProjectSettingsMembersApplySearchFilter = \"ApplySearchFilter\",\n ProjectSettingsMembersAddMember = \"AddMember\",\n ProjectSettingsMembersDeleteCameraAccess = \"DeleteCameraAccess\",\n ProjectSettingsMembersEditCameraAccess = \"EditCameraAccess\",\n ProjectSettingsMembersFiltersClick = \"FiltersClick\",\n ProjectSettingsMembersShareCamera = \"ShareCamera\",\n ProjectSettingsMembersToggleAddDialog = \"ToggleAddDialog\",\n ProjectSettingsOverviewOpenInMapView = \"OpenInMapView\",\n ProjectSettingsOverviewCloseUpdateThumbnailDialog = \"CloseUpdateThumbnailDialog\",\n ProjectSettingsOverviewOpenUpdateThumbnailDialog = \"UpdateThumbnailClicked\",\n ProjectSettingsOverviewUploadNewThumbnail = \"UploadNewThumbnail\",\n ProjectSettingsOverviewUpdateThumbnail = \"UpdateThumbnail\",\n\n // Media Hub events\n MediaHubSelectFilter = \"SelectFilter\",\n MediaHubApplyFilters = \"ApplyFilters\",\n MediaHubToggleAddMediaUrlDialog = \"ToggleAddMediaUrlDialog\",\n MediaHubToggleUploadFileDialog = \"ToggleUploadFileDialog\",\n MediaHubToggleUploadLocalClipDialog = \"ToggleUploadLocalClipDialog\",\n MediaHubSaveMediaUrl = \"SaveMediaUrl\",\n MediaHubUploadFile = \"UploadFile\",\n MediaHubSelectPage = \"SelectPage\",\n MediaHubGoToNextPage = \"GoToNextPage\",\n MediaHubGoToPreviousPage = \"GoToPreviousPage\",\n\n // Media Hub Item events\n MediaDelete = \"Media-Delete\",\n MediaToggleTitleEditing = \"Media-ToggleTitleEditing\",\n MediaSaveTitle = \"Media-SaveTitle\",\n MediaDownloadAs = \"Media-DownloadAs\",\n MediaTogglePublicVisibility = \"Media-TogglePublicVisibility\",\n MediaShareToPlatform = \"Media-ShareToPlatform\",\n MediaCopyMediaLink = \"Media-CopyMediaLink\",\n MediaGoToMediaHub = \"Media-GoBackToMediaHub\",\n\n // Gate report\n GateReportCalendarTreeDateClick = \"CalendarTree-DateClick\",\n GateReportExportPdf = \"ExportPdf\",\n GateReportExportCsv = \"ExportCsv\",\n GateReportFilterEntryExit = \"FilterEntryExit\",\n GateReportFilterCameras = \"FilterCameras\",\n GateReportFilterPlateNumber = \"FilterPlateNumber\",\n GateReportFilterVehicleTypes = \"FilterVehicleTypes\",\n GateReportOpenVehicleTypeInfo = \"OpenVehicleTypeInfo\",\n GateReportTimelineDateClick = \"Timeline-DateClick\",\n GateReportToggleThumbnails = \"ToggleThumbnails\",\n\n // TODO: The events bellow are old events, should be updated!\n\n //Help Menu\n HelpMenuToggleMenuButton = \"HelpMenu-ToggleMenuButton\",\n HelpMenuOpenLiveChat = \"HelpMenu-OpenLiveChat\",\n HelpMenuClickTutorialsLink = \"HelpMenu-ClickTutorialsLink\",\n HelpMenuClickWhatsNewLink = \"HelpMenu-ClickWhatsNewLink\",\n HelpMenuClickUserManuaLink = \"HelpMenu-ClickUserManuaLink\",\n HelpMenuClickSupportTicketsLink = \"HelpMenu-ClickSupportTicketsLink\",\n}\n\nexport type ProjectPAStatsRequestPayload = {\n period: \"day\" | \"week\" | \"month\"\n startDate?: string\n endDate?: string\n}\n\nexport type ProjectPAStatsResponsePayload = {\n period: DateType\n name: string\n count: number | string\n}\n\nexport type ActiveUsersStatsRequestPayload = {\n companyId: number\n from: string\n to: string\n}\n\nexport type ActiveUserStat = {\n date: string\n dau: number\n wau: number\n mau: number\n}\n","import {\n BoundingBox,\n CameraExid,\n DateType,\n GateReportVehicleType,\n TimelinePrecision,\n} from \"@/types\"\n\nexport type AnprQueryParams = {\n page?: number\n limit?: number\n firstSeen?: {\n gte: DateType\n }\n lastSeen?: {\n lte: DateType\n }\n captureTime?: {\n gte?: DateType\n lt?: DateType\n }\n direction?: { eq?: string } | string\n plateNumber?: { eq?: string } | string\n sort?: string\n fromDate?: DateType\n toDate?: DateType\n tab?: string\n}\n\nexport type AnprCountsQueryParams = {\n precision: TimelinePrecision\n fromDate?: string\n toDate?: string\n isPublic?: boolean\n cameras?: CameraExid[]\n direction?: AnprDirection\n isPlate?: boolean\n isDuplicate?: boolean\n vehicleTypes?: GateReportVehicleType[]\n camerasExid?: CameraExid[]\n}\n\nexport enum AnprDirection {\n Left = \"reverse\",\n Arrived = \"forward\",\n Unknown = \"unknown\",\n}\n\nexport type AnprEvent = {\n id: number\n plateNumber: string\n cameraex: CameraExid\n picName: string\n captureTime: string\n insertedAt: string\n isDuplicate: boolean\n direction: AnprDirection\n updatedAt: string\n isPlate: boolean\n isPostprocessed: boolean\n vehicleType?: GateReportVehicleType\n contextVehicleType?: GateReportVehicleType\n anprVehicleType: string\n anprVehicleModel: string\n anprVehicleMake: string\n anprVehicleColor: string\n anprVehicleSpeed: number | null\n anprSnapshotLink: string\n contextSnapshotLink: string\n contextCamera: string\n votedVehicleType: GateReportVehicleType | string\n metadata_: {\n evercamMetadata?: {\n anpr?: {\n bbox: BoundingBox\n label: string\n score: number\n }\n context?: {\n bbox: BoundingBox\n label: string\n score: number\n }\n }\n plateRecognizerMetadata?: {\n plateNumber?: string\n vehicleMake?: string\n vehicleType?: string\n vehicleColor?: string\n vehicleModel?: string\n vehicleOrientation?: string\n }\n }\n}\n\nexport type AnprCount = {\n date: string\n counts: Record<AnprDirection, number>\n}\n\nexport enum AnprEventStatus {\n IsPlate = \"is_plate\",\n NotPlate = \"not_plate\",\n IsDuplicate = \"is_duplicate\",\n NotDuplicate = \"not_duplicate\",\n}\n","import type { CameraExid, Exid, DateType } from \"@/types\"\n\nexport type MediaExid = Exid\n\nexport type Media = {\n project_exid?: string\n cameraExid?: CameraExid\n cameraName: string\n cameraTimezone: string\n createdAt: string\n fromDate: string\n id: number\n requesterEmail: string\n requesterName: string\n title: string\n toDate: string\n url?: string\n exid?: MediaExid\n embedCode?: string\n fileName?: string\n format?: string\n frames?: number\n link?: string\n public?: boolean\n type: MediaType\n status?: MediaStatus\n projectExid?: string\n thumbnailUrl?: string\n mediaUrl?: string\n}\n\nexport enum MediaType {\n EditedImage = \"edit\",\n ExternalUrl = \"url\",\n Clip = \"clip\",\n File = \"file\",\n LocalClip = \"local_clip\",\n XRay = \"x-ray\",\n Timelapse = \"timelapse\",\n Compare = \"compare\",\n MobileAsset = \"mobile-asset\",\n}\n\nexport enum MediaFileType {\n Gif = \"gif\",\n Mp4 = \"mp4\",\n Png = \"png\",\n Pdf = \"pdf\",\n Jpeg = \"jpeg\",\n}\n\nexport enum MediaStatus {\n Pending = \"Pending\",\n Creating = \"Creating\",\n Processing = \"Processing\",\n Extracting = \"Extracting\",\n Uploading = \"Uploading\",\n Completed = \"Completed\",\n Failed = \"Failed\",\n NoData = \"No Data\",\n}\n\nexport enum MediaStatusId {\n Pending = 0,\n Processing = 1,\n Completed = 2,\n Failed = 3,\n}\n\nexport type MediaFilterQueryParams = {\n title?: string\n sort?: string\n sortBy?: string\n dateRange?: string | string[]\n fromDate?: string\n toDate?: string\n cameraName?: string\n requesterEmail?: string\n type?: MediaType\n cameraExid?: string\n page?: number\n limit?: number\n camera?: string\n}\n\nexport type MediaUpdateRequestPayload = {\n name?: string\n title?: string\n public?: boolean\n}\n\nexport type MediaCreateRequestPayload = {\n fromDate: DateType\n toDate: DateType\n title: string\n type: MediaType\n fileUrl?: string\n fileExtension?: string\n url?: string\n content?: string\n cameraExid?: string\n requestedBy?: string\n notes?: string\n category?: ClipsCategory\n isUrgent?: boolean\n storeAsType?: MediaType\n}\n\nexport type MediaUsersResponsePayload = Array<{\n id: number\n email: string\n name: string\n}>\nexport enum ClipsCategory {\n HealthSafetySecurity = \"health_safety_security\",\n Legal = \"legal\",\n Marketing = \"marketing\",\n BestPracticies = \"best_practices\",\n}\n\nexport type MediaDeleteRequestPayload = {\n timelapseIds: (string | number)[]\n compareIds: (string | number)[]\n archiveIds: (string | number)[]\n}\n","import { DateTime, DateType } from \"@/types\"\n\nexport enum BimModelType {\n Architectural = \"Architectural\",\n Structural = \"Structural\",\n FourD = \"4D\",\n Mep = \"Mep\",\n}\n\nexport type BimSnapshotRequestPayload = {\n model: string\n layerTimestamp: string\n apiKey: string\n apiId: string\n}\n\nexport type BimSnapshotResponsePayload = {\n imageUrl?: string\n}\n\nexport type BimModelRequestPayload = {\n model?: string\n timestamp?: string\n apiKey?: string\n apiId?: string\n}\n\nexport type BimModelResponsePayload = {\n dates?: [string]\n height?: number\n imageUrl?: string\n model?: string\n models?: [string]\n rotation?: number\n scaleX?: number\n scaleY?: number\n viewerHeight?: number\n viewerWidth?: number\n width?: number\n x?: number\n y?: number\n}\n\nexport type BimCompareExportRequestPayload = {\n name: string\n cameraExid: string\n snapshotDate: string\n bimDate: string\n embed: string\n compareExid: string\n createAnimation: boolean\n bimTransparency?: number\n model?: string\n layerId?: number\n maskId?: number\n evercamWatermark?: boolean\n}\n\nexport type BimLayerResponsePayload = {\n id: number\n name: string\n insertedAt: DateTime\n updatedAt: DateTime\n shapes: string\n startAt: DateTime\n}\n\nexport enum BimUploadStatus {\n Initial = 0,\n Saving = 1,\n Success = 2,\n Failed = 3,\n}\n\nexport type BimCreationPayload = {\n title: string\n software:\n | \"synchro\"\n | \"navisworks\"\n | \"revit\"\n | \"tekla\"\n | \"archicad\"\n | \"solibri\"\n | \"bim360\"\n | \"other\"\n model: string\n apiKey: string\n apiId: string\n displayName: string\n fileUrl: string\n requestor: string\n finalView: boolean\n enableDistortion: boolean\n startAt: string\n}\n\nexport enum BIMLayerTypes {\n Mask = \"mask\",\n MeasuringGrid = \"measuring_grid\",\n BimArchitectural = \"bim_architectural\",\n BimStructural = \"bim_structural\",\n Bim4D = \"bim_4d\",\n BimMep = \"bim_mep\",\n RecordingsTag = \"recordings_tag\",\n Milestone = \"milestone\",\n}\n\nexport type BimLayersQueryParams = {\n layerType: BIMLayerTypes\n timestamp: DateType\n}\n\nexport type BIMLayerPostPayload = {\n name: string\n layerType: BIMLayerTypes\n startAt: DateType\n shapes: string\n zIndex: number\n}\n\nexport type BIMLayer = {\n id: number\n name: string\n layerType: BIMLayerTypes\n startAt: DateType\n insertedAt: DateType\n updatedAt: DateType\n shapes: string\n}\n\nexport type BimPendingImage = {\n url: string\n s3Url: string\n}\n\nexport type BimUploadCameraParameters = {\n distortionFov: [number]\n horizontalFov: number\n verticalFov: number\n focalLength1: number\n focalLength2: number\n centerX: number\n centerY: number\n}\n\nexport type PendingBimImagesParams = {\n model: string\n apiKey: string\n apiId: string\n}\n\nexport type ProcessPendingImagesBimParams = {\n model: string\n names: string[]\n enableDistortion: boolean\n apiId: string\n apiKey: string\n}\n\nexport type BimUploadsQueryParams = {\n page: number\n limit: number\n projectId: string\n id: string\n uploadedBy: string\n}\n\nexport type BimUploadPayload = {\n upload: {\n url: string\n title: string\n fileExtension: string\n }[]\n}\n","import {\n AuditLogActionType,\n DateTime_Z_micros,\n DateType,\n EntityByExid,\n Exid,\n NvrDeviceType,\n PaginationParams,\n PowerSchedule,\n PowerType,\n ProjectExid,\n Schedule,\n} from \"@/types\"\n\nexport type CameraExid = Exid\n\nexport type CamerasByExid = EntityByExid<Camera>\n\nexport type Cartesian3 = {\n x: number\n y: number\n z: number\n}\n\nexport type Camera = {\n cameraPowerSchedule?: Schedule\n camPassword?: string\n camUsername?: string\n cloudRecordings: {\n frequency: number\n schedule: Schedule\n status: string\n storageDuration: string\n }\n createdAt: DateTime_Z_micros\n description: null\n discoverable: boolean\n external: {\n host: string\n http: {\n camera: string\n jpg: string\n nvrJpg: string\n nvrPort: string\n port: string\n }\n rtsp: {\n h264: string\n port: string\n }\n }\n featureFlags: Array<CameraFeatureFlag>\n fovAngle: number\n fovRadius: number\n heading: null\n id: CameraExid\n exid: CameraExid\n isOnline: boolean\n isPowerScheduleActive: boolean\n isPublic: boolean\n lastOnlineAt: DateTime_Z_micros\n lastPolledAt: DateTime_Z_micros\n location: { lat: number; lng: number }\n modelId: string\n modelName: string\n name: string\n nvrChannel: number\n nvrDeviceId: string\n nvrHost: string\n nvrHttpPort: number\n nvrModel: NvrModel\n nvrScheme: string\n nvrSnapshotEndpoint: string\n nvrStreamingEndpoint: string\n offlineReason: string\n owned: boolean\n owner: string\n pitch: null\n project: { id: string; name: string }\n proxyUrl: { hls: string; rtmp: string }\n ptz: boolean\n rights: string\n roll: null\n routerId: number\n status: CameraStatus\n streamingServer: string\n thumbnailUrl: string\n largeThumbnailUrl?: string\n timezone: string\n updatedAt: DateTime_Z_micros\n vendorName: string\n}\n\nexport type AdminCamera = {\n cameraHost: string\n cameraHttpPort: number\n cameraModel: string\n cameraPassword: string\n cameraPictureEndpoint: string\n cameraRtspPort: number\n cameraScheme: string\n cameraUsername: string\n cameraFirmwareVersion: string\n cameraTimezone: string\n cloudRecordingFrequency: number\n cloudRecordingId: number\n cloudRecordingSchedule: Schedule\n cloudRecordingStatus: string\n cloudRecordingStorageDuration: number\n createdAt: DateTime_Z_micros\n description: null\n discoverable: false\n exid: CameraExid\n featureFlags: CameraFeatureFlag[]\n fovAngle: 45.0\n fovRadius: number\n heading: null\n id: number\n isPowerScheduleActive: true\n isPublic: false\n kitId?: number\n lastOnlineAt: DateTime_Z_micros\n lastPolledAt: DateTime_Z_micros\n location: { lat: number; lng: number }\n macAddress: string\n name: string\n nvrChannel: null\n nvrDeviceId: string\n nvrHost: string\n nvrHttpPort: number\n nvrModel: NvrModel\n nvrPassword: string\n nvrPictureEndpoint: string\n nvrRtspPort: number\n nvrScheme: string\n nvrUsername: string\n offlineReason: null\n pitch: null\n powerSchedule: Schedule\n projectExid: string\n projectFeatureFlags: []\n projectId: number\n projectName: string\n ptz: false\n recordingFromNvr: false\n roll: null\n routerId: number\n status: string\n storageProviders: []\n streamEndpoint: string\n timezone: string\n updatedAt: DateTime_Z_micros\n userApiId: string\n userApiKey: string\n userEmail: string\n userFullname: string\n userId: number\n zohoId: string\n thumbnailUrl?: string\n}\n\nexport type CameraMapMarker = {\n isOnline: boolean\n location: {\n lat: number\n lng: number\n }\n needFov: boolean\n rotation: number\n fovAngle: number\n fovRadius: number\n}\n\nexport enum CameraStatus {\n Online = \"online\",\n Offline = \"offline\",\n OfflineScheduled = \"offline_scheduled\",\n Decommissioned = \"decommissioned\",\n OnHold = \"on_hold\",\n Waiting = \"waiting\",\n UnderMaintenance = \"under_maintenance\",\n WaitingForSiteVisit = \"waiting_for_site_visit\",\n}\n\nexport enum CameraFeatureFlag {\n EdgeVideo = \"edge_video\",\n BimCompare = \"bim_compare\",\n GateReport = \"gate_report\",\n VideoStream = \"video_stream\",\n WebRTC = \"webrtc\",\n ANPR = \"anpr\",\n ReverseANPR = \"reverse_anpr\",\n PTZ = \"ptz\",\n ObjectDetection = \"object_detection\",\n Segmentation = \"segmentation\",\n SegmentationAutoLabelling = \"segmentation_auto_labelling\",\n}\n\nexport type CameraLogsRequestPayload = {\n limit: number\n page: number\n types: string\n from: string\n to: string\n}\n\nexport type CameraUpdateRequestPayload = {\n status?: string\n timezone?: string\n isPuclic?: boolean\n discoverable?: boolean\n fullname?: string\n lastOnline?: string\n owner?: string\n description?: string\n cameraPowerSchedule?: Schedule\n isPowerScheduleActive?: boolean\n powerSchedule?: object\n ptz?: boolean\n camUsername?: string\n camPassword?: string\n project?: { id: string; name: string }\n modelName?: string\n host?: string\n nvrChannel?: number\n nvrPortHttp?: string\n externalRtspPort?: string\n name?: string\n h264Url?: string\n snapshotUrl?: string\n nvrSnapshotUrl?: string\n routerId?: string | number\n coordinates?: Array<number>\n heading?: number\n fovAngle?: number\n fovRadius?: number\n}\n\nexport type CamerasResponsePayload = {\n cameras?: Camera[]\n}\n\nexport type CameraLogsResponsePayload = {\n cameraExid: string\n cameraName: string\n logs?: Log[]\n details?: { customMessage?: string }\n}\n\nexport type CameraStatusLog = {\n start: string\n end: string\n state: CameraStatus\n}\n\nexport type Log = {\n details: {\n agent?: string\n country?: string\n countryCode?: string\n ip?: string\n with?: string\n message?: string\n status?: string\n type?: string\n }\n insertedAt: string\n type: string\n who: string\n}\n\nexport type NvrConfig = {\n apiUrl: string\n username?: string\n password?: string\n deviceId: string\n streamingUrl: string\n snapshotUrl: string\n bifUrl: string\n}\n\nexport enum NvrModel {\n YCam = \"y-cam\",\n Axis = \"axis\",\n Dahua = \"dahua\",\n Mobotix = \"mobotix\",\n Hikvision = \"hikvision\",\n Avigilion = \"avigilion\",\n Hanwha = \"hanwha\",\n Nxwitness = \"nxwitness\",\n ExNvr = \"ex_nvr\",\n}\n\nexport enum CameraModel {\n YCam = \"y-cam\",\n Axis = \"axis\",\n Dahua = \"dahua\",\n Mobotix = \"mobotix\",\n Milesight = \"milesight\",\n Hikvision = \"hikvision\",\n Avigilion = \"avigilion\",\n Hanwha = \"hanwha\",\n Other = \"other\",\n}\n\nexport type DroneCameraTransform = {\n position: Cartesian3\n direction: Cartesian3\n up: Cartesian3\n right: Cartesian3\n}\n\nexport type Footage = {\n cameraExid: string\n cameraName: string\n endDate: string | null\n startDate: string | null\n}\n\nexport type Hdd = {\n id: number\n location: string\n serialNumber: string\n hddStatus: string\n shelfBlock: string\n type: string\n size: string\n format: string\n footages: Array<Footage>\n reportedCapacity: string\n reportedFreeSpace: string\n reportedProperty: string\n reportedPath: string\n reportedHddType: string\n errorStatus: string\n canExpand: boolean\n}\n\nexport enum ResolutionDimensions {\n QVGA = \"320x240\",\n VGA = \"640x480\",\n SVGA = \"800x600\",\n XGA = \"1024x768\",\n HD = \"1280x720\",\n WXGA = \"1280x800\",\n HDPlus = \"1366x768\",\n WXGAPlus = \"1440x900\",\n HDPlusPlus = \"1600x900\",\n UXGA = \"1600x1200\",\n FullHD = \"1920x1080\",\n WUXGA = \"1920x1200\",\n TwoK = \"2048x1080\",\n QHD = \"2560x1440\",\n WQXGA = \"2560x1600\",\n FourK = \"3840x2160\",\n FourKCinema = \"4096x2160\",\n FiveK = \"5120x2880\",\n EightK = \"7680x4320\",\n WHUXGA = \"7680x4800\",\n}\n\nexport enum ResolutionLabel {\n QVGA = \"QVGA\",\n VGA = \"VGA\",\n SVGA = \"SVGA\",\n XGA = \"XGA\",\n HD = \"HD\",\n WXGA = \"WXGA\",\n HDPlus = \"HD+\",\n WXGAPlus = \"WXGA++\",\n HDPlusPlus = \"HD++\",\n UXGA = \"UXGA\",\n FullHD = \"FullHD\",\n WUXGA = \"WUXGA\",\n TwoK = \"2K\",\n QHD = \"QHD\",\n WQXGA = \"WQXGA\",\n FourK = \"4K\",\n FourKCinema = \"4KCinema\",\n FiveK = \"5K\",\n EightK = \"8K\",\n WHUXGA = \"WHUXGA\",\n}\n\nexport type ResolutionInfo = {\n ratioString: string\n ratioFloat: number\n resolutionDimensions: ResolutionDimensions\n resolutionLabel: ResolutionLabel\n}\n\nexport type CameraPath = {\n projectExid: ProjectExid\n cameraExid: CameraExid\n}\n\nexport type CheckCameraPortPayload = {\n address: string\n port: number\n}\n\nexport type CameraCreateRequestPayload = {\n status: CameraStatus\n timezone?: string\n powerSchedule?: Schedule\n isPowerScheduleActive?: boolean\n ptz?: boolean\n name: string\n coordinates?: [number, number]\n recordingFromNvr?: boolean\n CameraConfig: {\n model: CameraModel\n scheme?: \"http\" | \"https\"\n host: string\n httpPort: number\n username: string\n password: string\n rtspPort?: number\n pictureEndpoint?: string\n streamEndpoint?: string\n }\n nvr?: {\n model: NvrModel\n serial?: string\n deviceType?: NvrDeviceType\n macAddress?: string\n username: string\n password: string\n httpUrl: string\n rtspUrl?: string\n }\n cloudRecording?: {\n id?: number\n frequency: 1 | 2 | 4 | 5 | 6 | 10 | 12 | 30 | 60\n storageDuration: -1 | 1 | 7 | 30 | 90\n status: \"on\" | \"off\" | \"paused\" | \"on_scheduled\"\n schedule: Schedule\n }\n ownerId: number\n projectId: number\n}\n\nexport type CameraDeletePayload = {\n verify: string\n password: string\n}\n\nexport type SaveNotePayload = {\n noteType: string\n content: string\n}\n\nexport type CameraNote = {\n id: number\n cameraId: number\n noteType: string\n content: string\n insertedAt: DateType\n}\n\nexport type CreateCameraNotePayload = {\n id?: number\n cameraExid: CameraExid\n customMessage: string\n action: string\n}\n\nexport enum HddStatus {\n Error = \"error\",\n Idle = \"idle\",\n NotExist = \"notExist\",\n Unformatted = \"unformatted\",\n Ok = \"ok\",\n}\n\nexport type NvrQueryParams = PaginationParams & {\n ownerId: number\n cameraName: string\n cameraExid: CameraExid\n cameraIp: string\n hddStatus: HddStatus\n}\n\nexport type OfflineCamera = {\n id: number\n exid: string\n name: string\n fullname: string\n timezone: string\n status: CameraStatus\n zohoId: string\n externalHost: string\n nvrHttpPort: string\n externalRtspPort: string\n username: string\n password: string\n createdAt: DateType\n lastPolledAt: DateType\n lastOnlineAt: DateType\n powerType: PowerType\n powerSchedule: PowerSchedule\n batteryReadingsLastSeen: DateType\n batteryReadingsLastVoltage: number\n sims: {\n billPayer: string\n number: string\n provider: string\n }[]\n}\n\nexport type OfflineCameraQueryParams = PaginationParams & {\n status: CameraStatus\n cameraExid: CameraExid\n cameraName: string\n timezone: string\n cameraOwner: string\n powerType: PowerType\n powerSchedule: PowerSchedule\n batteryReadingsLastVoltage: number\n}\n\nexport type OfflineCameraNote = {\n action: AuditLogActionType\n username: string\n insertedAt: DateType\n cameraId: number\n customMessage: string\n}\n\nexport type OfflineCameraNoteResponse = {\n publicNotes: OfflineCameraNote[]\n privateNotes: OfflineCameraNote[]\n}\n\nexport type SiteVisitCamerasQueryParams = PaginationParams & {\n cameraOwner: string\n}\n\nexport type ProjectCamera = {\n apiId: string\n apiKey: string\n exid: string\n id: number\n name: string\n ownerEmail: string\n ownerFullname: string\n}\n\nexport enum DuplicatedCameraFields {\n Host = \"host\",\n CameraHttpPort = \"camera_http_port\",\n NvrHttpPort = \"nvr_http_port\",\n NvrDeviceId = \"nvr_device_id\",\n}\n\nexport type DuplicatedCameraObject = {\n exid: string\n name: string\n cameraStatus: string\n crStatus: string\n}\n\nexport type DuplicatedCameraResponse = {\n cameras: DuplicatedCameraObject[]\n host: string\n cameraHttpPort: number\n nvrHttpPort: number\n nvrDeviceId: string\n count: number\n}\n\nexport type MergeDuplicatedCameraPayload = {\n masterCamera: Record<string, unknown>\n shareeCameras: Record<string, unknown>\n}\n\nexport type FetchCameraQueryParams = PaginationParams & {\n status: CameraStatus\n isPublic: boolean\n featureFlags: CameraFeatureFlag[]\n ptz: boolean\n frequency: number\n channel: number\n cameraExid: CameraExid\n cameraExids: CameraExid[]\n cameraName: string\n projectName: string\n timezone: string\n region: string\n cameraModel: CameraModel\n nvrModel: NvrModel\n cameraOwner: string\n ownerEmail: string\n isRecording: boolean\n cloudRecordingStorageDuration: number\n cameraIds: string\n hasLocation: boolean\n externalHttpPort: string\n externalRsptPort: string\n nvrHttpPort: string\n}\n","import { DateType, PaginationParams } from \"@/types\"\n\nexport type Compare = {\n cameraExid: string\n createdAt: string\n embedCode: string\n embedTime: boolean\n fileName: string\n frames: number\n fromDate: string\n id: number\n exid: string\n mediaUrls: {\n gif: string\n mp4: string\n }\n public: boolean\n requesterEmail: string\n requesterName: string\n status: string\n thumbnailUrl: string\n title: string\n toDate: string\n type: string\n}\n\nexport enum CompareStatus {\n Processing = 0,\n Completed = 1,\n Failed = 2,\n}\n\nexport type CompareRequestPayload = {\n name: string\n afterDate: string\n beforeDate: string\n embed: string\n compareExid: string\n cameraExid?: string\n createAnimation: boolean\n evercamWatermark?: boolean\n}\n\nexport type AdminCompare = {\n id: number\n compareExid: string\n exid: string\n projectId: string\n apiId: string\n apiKey: string\n name: string\n fullname: string\n camera: string\n status: number\n embedCode: string\n insertedAt: DateType\n}\n\nexport type AdminCompareQueryParams = PaginationParams & {\n name: string\n camera: string\n}\n","import type {\n AnalyticsEventPageId,\n CameraExid,\n CameraFeatureFlag,\n CameraStatus,\n ProjectExid,\n ProjectFeatureFlag,\n ProjectStatus,\n} from \"@/types\"\n\nexport enum CopilotMessageAuthor {\n Copilot = \"copilot\",\n User = \"user\",\n}\n\nexport enum CopilotMessageType {\n Text = \"text\",\n Progress = \"progress\",\n Error = \"error\",\n Json = \"json\",\n}\n\nexport type CopilotMessage = {\n content: string\n url?: string\n type: CopilotMessageType\n id?: number\n conversationId?: number\n}\n\nexport enum CopilotStepId {\n SendToLLM = \"send_to_llm\",\n FunctionCallRequest = \"function_call_request\",\n ExecFunctionCall = \"exec_function_call\",\n SendToUser = \"send_to_user\",\n RequestMissingFields = \"request_missing_fields\",\n CompletedFieldsResponse = \"completed_fields_response\",\n SendRawToolCallResponse = \"send_raw_tool_call_response\",\n SubmitToolOutputsToLLM = \"submit_tool_outputs_to_llm\",\n CancelCall = \"cancel_call\",\n}\n\nexport enum CopilotMissingFieldsLabels {\n ProjectExid = \"Project\",\n CameraExid = \"Camera\",\n FromDate = \"Start date\",\n ToDate = \"End date\",\n}\n\nexport type CopilotMissingField = {\n name: string\n label: string\n value: any\n type: string\n toolId: string\n}\n\nexport type CopilotMissingFields = Record<number, CopilotMissingField[]>\n\nexport type UserConversations = CopilotConversation & {\n Message: CopilotMessage[]\n}\n\nexport enum CopilotSocketEvent {\n ConversationStart = \"conversation:start\",\n ConversationCreated = \"conversation:created\",\n LLMMessageChunk = \"llm:message:chunk\",\n LLMMessageComplete = \"llm:message:complete\",\n LLMMessageLoading = \"llm:message:loading\",\n LLMRequestCancel = \"llm:request:cancel\",\n LLMRequestCanceled = \"llm:request:canceled\",\n UserMessage = \"user:message\",\n ContextError = \"chat:contextError\",\n ChatError = \"chat:chatError\",\n MissingFields = \"chat:missingFields\",\n MissingFieldsCompleted = \"chat:missingFields:completed\",\n SystemToolCallResponse = \"system:toolCall:response\",\n}\n\nexport type CopilotConversation = {\n id: number\n user: string\n model: string\n context: string\n cameraExid: CameraExid\n projectExid: ProjectExid\n startDate: string\n endDate: string\n messagesCount: number\n}\n\nexport enum CopilotProvider {\n Gemini = \"gemini\",\n ChatGPT = \"chatgpt\",\n}\n\nexport enum CopilotSuggestion {\n UserManual = \"user_manual\",\n GateReport = \"gate_report\",\n Weather = \"weather\",\n Clip = \"clip\",\n Timelapse = \"timelapse\",\n Chart = \"chart\",\n}\n\nexport enum CopilotChatProvider {\n Gemini = \"gemini\",\n ChatGpt = \"chatGpt\",\n}\n\nexport enum CopilotLayout {\n Floating = \"floating\",\n}\n\nexport enum CopilotToolId {\n GetReports = \"getReports\",\n GetVehiclesDetections = \"getVehiclesDetections\",\n GetVehiclesDetectionsCounts = \"getVehiclesDetectionsCounts\",\n GetWeather = \"getWeather\",\n CreateClip = \"createClip\",\n NavigateToPage = \"navigateToPage\",\n CreateTimelapse = \"createTimelapse\",\n RequestMissingFields = \"requestMissingFields\",\n RenderCharts = \"renderCharts\",\n}\n\nexport type CopilotSystemToolCallResponse<I = unknown, O = unknown> = {\n toolId?: CopilotToolId\n input?: I\n output?: O\n}\n\nexport type CopilotCamera = {\n name: string\n exid: CameraExid\n status: CameraStatus\n featureFlags?: CameraFeatureFlag[]\n}\n\nexport type CopilotProject = {\n name: string\n exid: ProjectExid\n status: ProjectStatus\n featureFlags?: ProjectFeatureFlag[]\n cameras?: CopilotCamera[]\n}\n\nexport type CopilotConversationContext = {\n availableProjects: CopilotProject[]\n}\n\nexport type CopilotMessageContext = {\n pageId?: AnalyticsEventPageId\n selectedCamera?: CopilotCamera\n selectedProject?: CopilotProject\n}\n\nexport type CopilotMessageStep = {\n args: string[]\n depth: number\n id: number\n message_id: number\n step: CopilotStepId\n timestamp: string\n}\n\nexport enum CopilotMissingFieldComponent {\n Select = \"SelectField\",\n DateTime = \"DateTimeField\",\n Schedule = \"ScheduleField\",\n MultiOptions = \"MultiOptionsField\",\n Switch = \"SwitchField\",\n}\n\nexport enum CopilotMissingFieldName {\n ProjectExid = \"projectExid\",\n CameraExid = \"cameraExid\",\n FromDate = \"fromDate\",\n ToDate = \"toDate\",\n Schedule = \"schedule\",\n Duration = \"duration\",\n}\n\nexport enum CopilotMissingFieldType {\n Boolean = \"boolean\",\n String = \"string\",\n Number = \"number\",\n}\n","export type MilesightRequestParams = {\n host: string\n httpPort: number\n username: string\n password: string\n}\n\nexport type MilesightCameraNetworkConfiguration = {\n httpEnable: number\n httpPort: number\n httpsEnable: number\n httpsPort: number\n certSubject: string\n certDate: string\n certResult: number\n requestSubject: string\n certUpdateFlag: number\n ipv4Ipaddress: string\n ipv6Ipaddress: string\n notBefore: string\n notAfter: string\n country: string\n ST: string\n O: string\n CN: string\n}\n\nexport type MilesightCameraSystemSettings = {\n model: string\n mac: string\n firmwareVersion: string\n systemBootTime: string\n wireless: number\n dhcpEnable: number\n ipaddress: string\n netmask: string\n gateway: string\n pppoeEnable: number\n dns0: string\n dns1: string\n ddnsEnable: number\n ddnsHostName: string\n ddnsStatus: number\n wirelessEnable: number\n deviceName: string\n deviceLacation: string\n deviceInformation: string\n deviceVender: string\n hardwareVersion: string\n kernelVersion: string\n sdkVersion: string\n aiNnieStatus: number\n ioSupport: number\n audioSupport: number\n audioMode: number\n audioType: number\n audioLineInput: number\n alarmInputSupport: number\n alarmOutputSupport: number\n fisheyeSupport: number\n vcaSupport: number\n vcaType: number\n anrSupport: number\n speakerSupport: number\n lprSupport: number\n lprVersion: number\n lprLicense: number\n radarSupport: number\n upgrade: number\n faceSupport: number\n polygonFaceSupport: number\n irSensor: number\n dnSensitivitySupport: number\n croproiSupport: number\n dnRefocusSupport: number\n reduceStutteringSupport: number\n polygonSupport: number\n localDisplaySupport: number\n fanWorkingModeSupport: number\n smartIrLimitType: number\n smartIrLimitSum: number\n audioFileManagerSupport: number\n humanVehicleSupport: number\n manualSpeedSupport: number\n snCode: string\n mosaicSupport: number\n antiShakeSupport: number\n corridorModeSupport: number\n imageRotationSupport: number\n humanDetectionSupport: number\n regionalPeopleSupport: number\n heatMapSupport: number\n msChip: string\n runtime: number\n lprlicenStatus: number\n p2pSupport: number\n ptzSupport: number\n adminoptions: number\n adminuser: string\n miscAnonymous: number\n pwdStrengthType: number\n viewerdef: number\n viewerOptions: number\n oemIndex: number\n audioAlarmSupport: number\n ledSupport: number\n ledGroupSupport: number\n ptzMaxZoomTimes: number\n realPtzSupport: number\n iotSupport: number\n isSpeedDm: number\n supportOsdLarger: number\n isFaceCustomizeModeExists: number\n autoTrackSupport: number\n smartStreamSupportInOtherStream: number\n wiperSupport: number\n oemupdateonline: number\n whiteLedSupport: number\n defogSupport: number\n manualTrackingSupport: number\n manualTrackingDisable: number\n \"3DPositionSupport\": number\n rs485Support: number\n ptzStatusSupport: number\n heaterSupport: number\n}\n\nexport type MilesightCameraStreamConfig = {\n enable?: number\n width?: number\n height?: number\n url?: string\n profileGop?: number\n rateMode?: MilesightCameraRateModeId\n framerate?: number\n bitrate?: number\n smartStreamEnable?: number\n smartStreamLevel?: number\n profile?: number\n profileCodec?: MilesightCameraCodecId\n rateQuality?: number\n vbrQuality?: MilesightCameraVbrQualityId\n}\n\nexport type MilesightCameraStreamConfigList = {\n mainStream: MilesightCameraStreamConfig\n subStream: MilesightCameraStreamConfig\n thirdStream: MilesightCameraStreamConfig\n fourthStream?: {\n enable: number\n }\n fifthStream?: {\n enable: number\n }\n}\n\nexport type MilesightCameraVideoConfig = {\n deviceModel: string\n deviceSensor: string\n deviceTvStandards: number\n streamList: MilesightCameraStreamConfigList\n cTvStandards: number\n rtspPort: number\n eventStreamEnable: number\n eventStreamFramerate: number\n eventStreamBitrate: number\n eventStreamIframe: number\n fishDisplayModel: number\n fishInstallModel: number\n fishCorrectModel: number\n mainCodecres: number\n imageScheMode: number\n hlcMode: number\n exposurectrl: number\n wdrEnable: number\n}\nexport type MilesightCameraStreamOsdInfo = {\n streamIndex: number\n osdEnable: number\n osdString: string\n osdDateTimeEnable: number\n osdFontSize: number\n osdFontColor: string\n osdBackgroundEnable: number\n osdBackgroundColor: string\n osdTextPosition: number\n osdDateTimePosition: number\n osdDateTimeFormat: number\n cropRoiEnable: number\n}\n\nexport type MilesightCameraOsdConfiguration = {\n osdInfoList: MilesightCameraStreamOsdInfo[]\n osdZoomTime: number\n}\n\nexport type MilesightCameraSdCardInfo = {\n sdcardStatus: number\n sdcardDiskStatus: number\n sdcardFullStatus: number\n sdcardTotalSize: string\n sdcardFreeSize: string\n sdcardUseSize: string\n sdEncryptStatus: number\n}\n\nexport type MilesightCameraTimeInfo = {\n year: number\n month: number\n day: number\n hour: number\n minute: number\n second: number\n timeZoneTz: string\n zoneNameTz: string\n dayLight: number\n timeType: number\n ntpServer: string\n ntpSyncEnable: number\n ntpInterval: number\n}\n\nexport enum MilesightCameraCodecId {\n H264 = 0,\n H265 = 3,\n MJpeg1 = 1,\n MJpeg2 = 2,\n}\nexport enum MilesightCameraVbrQualityId {\n Low = 0,\n Medium = 1,\n High = 2,\n}\n\nexport enum MilesightCameraRateModeId {\n CBR = 0,\n VBR = 1,\n}\n","export type DroneModel = {\n cesiumId: string\n cesiumId2D: string\n date: string\n cesiumPointCloudId: string\n pointSize: string\n maximumScreenSpaceError: string\n link: string\n trueIndex: number\n}\n\nexport type DroneProjectJsonResponse = {\n models: DroneModel[]\n [key: string]: any\n}\n\nexport enum DroneUrlParams {\n Date = \"date\",\n}\n","import { AxiosError } from \"axios\"\n\nexport enum ErrorType {\n BadRequestError = \"BadRequestError\",\n NotFoundError = \"NotFoundError\",\n UnauthorizedError = \"UnauthorizedError\",\n GatewayTimeoutError = \"GatewayTimeoutError\",\n BadGatewayError = \"BadGatewayError\",\n ForbiddenError = \"ForbiddenError\",\n HlsError = \"HlsError\",\n SnapshotError = \"SnapshotError\",\n ConflictError = \"ConflictError\",\n InternalServerError = \"InternalServerError\",\n CanceledError = \"CanceledError\",\n UnhandledRejection = \"UnhandledRejection\",\n TypeError = \"TypeError\",\n}\n\nexport enum EvercamApiErrorCode {\n BadArgument = \"BAD_ARGUMENT\",\n DeviceError = \"DEVICE_ERROR\",\n UnsupportedOperation = \"UNSUPPORTED_OPERATION\",\n QuotaExceeded = \"QUOTA_EXCEEDED\",\n InvalidCredentials = \"INVALID_CREDENTIALS\",\n ProviderAuthFailure = \"PROVIDER_AUTH_FAILURE\",\n ProviderEmailRequired = \"PROVIDER_EMAIL_REQUIRED\",\n PasswordReset = \"PASSWORD_RESET\",\n RequireShareRequest = \"REQUIRE_SHARE_REQUEST\",\n Generic = \"GENERIC\",\n}\n\ntype _EvercamApiError = {\n code: EvercamApiErrorCode\n message: string\n details: string\n innerError?: _EvercamApiError\n}\n\nexport type EvercamApiError = AxiosError<_EvercamApiError>\n","import {\n AnprDirection,\n CameraExid,\n Date_HH,\n Date_YYYY,\n Date_YYYY_MM,\n Date_YYYY_MM_DD,\n DateTime,\n DateTimeSpaceSeparated,\n DateType,\n PaginatedItems,\n PaginationParams,\n ProjectExid,\n ProjectFeatureFlag,\n Timestamp,\n} from \"@/types\"\n\nexport enum GateReportDetectionType {\n Auto = \"auto\",\n Manual = \"manual\",\n Cloud = \"cloud\",\n Edge = \"edge\",\n}\n\nexport enum GateReportEventType {\n Arrived = \"arrived\",\n Left = \"left\",\n}\n\nexport enum DetectionLabel {\n ArticulatedDumper = \"articulated-dumper\",\n BackhoeLoader = \"backhoe-loader\",\n CompactExcavator = \"compact-excavator\",\n ConcretePump = \"concrete-pump\",\n Dumper = \"dumper\",\n Excavator = \"excavator\",\n FlatbedSemiTrailer = \"flatbed-semi-trailer\",\n IndustrialTruck = \"industrial-truck\",\n Loader = \"loader\",\n Mewps = \"mewps\",\n MobileCrane = \"mobile-crane\",\n MobileCrusher = \"mobile-crusher\",\n OtherTruck = \"other-truck\",\n PileDrillingRig = \"pile-drilling-rig\",\n RoadVehicle = \"road-vehicle\",\n Roller = \"roller\",\n SemiTrailer = \"semi-trailer\",\n SkidSteerLoader = \"skid-steer-loader\",\n SkipTruck = \"skip-truck\",\n SmallTruck = \"small-truck\",\n TankTruck = \"tank-truck\",\n TeleHandler = \"tele-handler\",\n TippingTruck = \"tipping-truck\",\n TowerCrane = \"tower-crane\",\n TowerMountedConcreteMix = \"tower-mounted-concrete-mix\",\n TractorDozer = \"tractor-dozer\",\n TruckHead = \"truck-head\",\n TruckMixer = \"truck-mixer\",\n TruckMountedMobileCrane = \"truck-mounted-mobile-crane\",\n Unknown = \"unknown\",\n Worker = \"worker\",\n Rubble = \"rubble\",\n Puddle = \"puddle\",\n DirtGravelCementPile = \"dirt_gravel_cement_pile\",\n DetachedExcavatorBucket = \"detached_excavator_bucket\",\n IntermediateBulkContainer = \"intermediate_bulk_container\",\n WoodenPallet = \"wooden_pallet\",\n ShippingContainer = \"shipping_container\",\n AirCompressor = \"air_compressor\",\n DryMortarSilo = \"dry_mortar_silo\",\n Fence = \"fence\",\n Brick = \"brick\",\n Barrel = \"barrel\",\n Cardboard = \"cardboard\",\n CardboardBox = \"cardboard_box\",\n CementBag = \"cement_bag\",\n ConcreteBlock = \"concrete_block\",\n ConcretePipe = \"concrete_pipe\",\n ConcreteSlab = \"concrete_slab\",\n PlasticWrap = \"plastic_wrap\",\n ContainerOffice = \"container_office\",\n ElectricalPole = \"electrical_pole\",\n ElectricalBox = \"electrical_box\",\n FireHydrant = \"fire_hydrant\",\n HoseReel = \"hose_reel\",\n Ladder = \"ladder\",\n MetalBeam = \"metal_beam\",\n MetalPipe = \"metal_pipe\",\n Pallet = \"pallet\",\n Pillar = \"pillar\",\n PlasticBin = \"plastic_bin\",\n PlasticBucket = \"plastic_bucket\",\n PlasticPipe = \"plastic_pipe\",\n PublicToilet = \"public_toilet\",\n Sign = \"sign\",\n SiteToolbox = \"site_toolbox\",\n StreetSink = \"street_sink\",\n TrafficBarrier = \"traffic_barrier\",\n TrafficCone = \"traffic_cone\",\n Wall = \"wall\",\n WasteContainer = \"waste_container\",\n WaterStorageTank = \"water_storage_tank\",\n Wheelbarrow = \"wheelbarrow\",\n Window = \"window\",\n WoodPlank = \"wood_plank\",\n CableReel = \"cable_reel\",\n AirConditioningSystem = \"air_conditioning_system\",\n WoodenBox = \"wooden_box\",\n PlasticBag = \"plastic_bag\",\n MaterialStack = \"material_stack\",\n}\n\nexport enum SegmentLabel {\n AirCompressor = \"air_compressor\",\n Brick = \"brick\",\n Building = \"building\",\n CableReel = \"cable_reel\",\n CementMixer = \"cement_mixer\",\n CementPile = \"cement_pile\",\n ConcreteBarrier = \"concrete_barrier\",\n ConcreteBlock = \"concrete_block\",\n ConstructionContainer = \"construction_container\",\n ConstructionSite = \"construction_site\",\n Crane = \"crane\",\n DetachedExcavatorBucket = \"detached_excavator_bucket\",\n DryMortarSilo = \"dry_mortar_silo\",\n DumpTruck = \"dump_truck\",\n Dumpster = \"dumpster\",\n Fence = \"fence\",\n FireHydrant = \"fire_hydrant\",\n GarbageBin = \"garbage_bin\",\n HoseReel = \"hose_reel\",\n Ibc = \"ibc\",\n JerryCan = \"jerry_can\",\n MetalBeam = \"metal_beam\",\n MiniDumper = \"mini_dumper\",\n Pallet = \"pallet\",\n Pipe = \"pipe\",\n Puddle = \"puddle\",\n Rebar = \"rebar\",\n Rubble = \"rubble\",\n Scaffolding = \"scaffolding\",\n ShippingContainer = \"shipping_container\",\n SiteOffice = \"site_office\",\n TrafficCone = \"traffic_cone\",\n Transformer = \"transformer\",\n Vehicle = \"vehicle\",\n Window = \"window\",\n WoodenSpool = \"wooden_spool\",\n Unknown = \"unknown\",\n}\n\nexport enum GateReportVehicleType {\n ConcretePump = DetectionLabel.ConcretePump,\n FlatbedSemiTrailer = DetectionLabel.FlatbedSemiTrailer,\n OtherTruck = DetectionLabel.OtherTruck,\n RoadVehicle = DetectionLabel.RoadVehicle,\n SemiTrailer = DetectionLabel.SemiTrailer,\n SmallTruck = DetectionLabel.SmallTruck,\n TankTruck = DetectionLabel.TankTruck,\n TippingTruck = DetectionLabel.TippingTruck,\n TruckHead = DetectionLabel.TruckHead,\n TruckMixer = DetectionLabel.TruckMixer,\n Unknown = DetectionLabel.Unknown,\n}\n\nexport type GateReportVehicleTypeItem = {\n name: string\n id: GateReportVehicleType\n}\n\nexport type GateReportEvent = {\n id: number\n vehicleTypes: GateReportVehicleType\n exid: string\n cameraExid?: string\n boundingBox: BoundingBox\n detectionType: GateReportDetectionType\n edited: boolean\n eventTime: string\n timestamp?: string\n eventType: GateReportEventType\n isPublic: boolean\n roiId: string\n truckType: GateReportVehicleType\n thumbnailUrl?: string\n}\n\nexport type GateReportArrivedEvent = GateReportEvent & {\n eventType: GateReportEventType.Arrived\n}\n\nexport type GateReportLeftEvent = GateReportEvent & {\n eventType: GateReportEventType.Left\n}\n\nexport type GateReportVerifiedDay = {\n id: number\n day: Date_YYYY_MM_DD\n isMatched: boolean\n insertedAt: DateTime\n updatedAt: DateTime\n verifiedBy: string\n cameraExid: CameraExid\n projectExid: ProjectExid\n}\n\nexport type BoundingBox = {\n xmax: number\n xmin: number\n ymax: number\n ymin: number\n}\n\nexport type EventsCountsByVehicleType = Record<GateReportVehicleType, number>\n\nexport type EventsCount = {\n in: number\n out: number\n source: GateReportDataSource\n}\n\nexport type YearlyEventCount = EventsCount & {\n year: Date_YYYY\n}\n\nexport type MonthlyEventCount = EventsCount & {\n month: Date_YYYY_MM\n}\n\nexport type DailyEventCount = EventsCount & {\n day: Date_YYYY_MM_DD\n}\n\nexport type HourlyEventCount = {\n hour: Date_HH\n count: number\n}\n\nexport type EventCountRequestPayload = {\n vehicleTypes?: GateReportVehicleType[]\n isPublic?: boolean\n camerasExid?: string[]\n}\n\nexport type EventCountResponsePayload = {\n days?: DailyEventCount[]\n months?: MonthlyEventCount[]\n years?: YearlyEventCount[]\n}\n\nexport type ProcessedDaysRequestPayload = {\n apiId?: string\n apiKey?: string\n isPublic?: Boolean\n}\n\nexport type EventsRequestPayload = {\n apiId?: string\n apiKey?: string\n camerasExid?: CameraExid[]\n cameras?: string[]\n eventType?: GateReportEventType\n fromDate?: DateTime\n isPublic?: boolean\n toDate?: DateTime\n truckTypes?: GateReportVehicleType[]\n vehicleTypes?: string[]\n} & PaginationParams\n\nexport type EventsResponsePayload = PaginatedItems<GateReportEvent>\n\nexport enum GateReportDataSource {\n Anpr = \"anpr\",\n Events = \"events\",\n}\n\nexport type GateReportResponsePayload = {\n source: GateReportDataSource\n results: PaginatedItems<GateReportEvent>\n}\n\nexport enum GateReportEventDirection {\n In = \"in\",\n Out = \"out\",\n Unknown = \"unknown\",\n}\n\nexport type GatReportRequestPayload = {\n camerasExid?: CameraExid[]\n eventType?: GateReportEventType\n fromDate?: DateTime\n isPublic?: boolean\n toDate?: DateTime\n vehicleTypes?: GateReportVehicleType[]\n} & PaginationParams\n\nexport enum GateReportExportType {\n Pdf = \"pdf\",\n Csv = \"csv\",\n}\n\nexport type EventsExportRequestParameters = {\n vehicleTypes: GateReportVehicleType[]\n fileType: GateReportExportType\n fromDate: DateTimeSpaceSeparated\n toDate: DateTimeSpaceSeparated\n camerasExid: CameraExid[]\n eventType: GateReportEventType\n}\n\nexport type AnprBasedGateReportExportRequestParams = {\n vehicleTypes?: GateReportVehicleType[]\n fileType?: GateReportExportType\n fromDate?: DateTimeSpaceSeparated\n toDate?: DateTimeSpaceSeparated\n camerasExid?: CameraExid[]\n direction?: AnprDirection\n}\n\ntype X1 = number\ntype Y1 = number\ntype X2 = number\ntype Y2 = number\n\nexport enum GateReportROIShapeType {\n Rectangle = \"rectangle\",\n Direction = \"direction\",\n Line = \"line\",\n}\n\nexport type GateReportROIShape = {\n coordinates: [[X1, Y1], [X2, Y2]]\n type: GateReportROIShapeType\n}\n\nexport type GateReportROI = {\n cameraex?: string\n fromDate?: string\n directionFilter?: string\n id?: number\n insertedAt?: Timestamp\n isactive?: boolean\n name?: string\n roiType?: string\n updatedAt?: Timestamp\n shapes?: GateReportROIShape[]\n}\n\nexport enum GateReportProcessingStatus {\n Processed = \"processed\",\n Unprocessed = \"unprocessed\",\n}\n\nexport const VEHICLE_TYPE_IDS = Object.values(GateReportVehicleType)\n\nexport type GateReportCamera = {\n exid: number\n name: string\n status: string\n note: string\n last_published_day: DateType\n last_processed_day: DateType\n}\n\nexport type GateReportProject = {\n exid: string\n name: string\n status: string\n featureFlags: ProjectFeatureFlag\n cameras: GateReportCamera[]\n}\n\nexport type AnalyticsParameters = {\n id: number\n cameraex: string\n processingType: string\n startDate: DateTime\n endDate: DateTime\n skipWeekend: boolean\n hourSiteOpening: number\n hourSiteClosure: number\n gateReportActive: boolean\n countingActive: boolean\n queueSystem: string\n reprocess: boolean\n framesToSkip: number\n detection_model: string\n detectionThreshold: number\n printLogsFrame: number\n crossingVectorAngleLimit: number\n minTruckLife: number\n insideMinTime: number\n trackerMaxAge: number\n trackerMinHit: number\n snapshotUpload: boolean\n snapshotPerSecond: number\n detectionClasses: string\n deepEventEndpointUrl: string\n timestampCalculation: string\n matchingEmbeddedDstCoeff: number\n matchingTimeCoeff: number\n matchingQueueOrderCoeff: number\n rabbitmqServerUrl: string\n rabbitmqEventsQueue: string\n rabbitmqEventsExchange: string\n rabbitmqCountingQueue: string\n rabbitmqCountingExchange: string\n dangerZones: boolean\n workflows: boolean\n linkedAnprCameras: Record<string, unknown>\n}\n\nexport type VerifiedDaysQueryParams = PaginationParams & {\n projectExid: ProjectExid\n camerasExid: CameraExid[]\n verifiedBy: string\n isMatched: boolean\n insertedAt: DateTime[]\n updatedAt: DateTime[]\n day: string\n}\n\nexport type EventUpdateRequestPayload = {\n cameraex: string\n roiId: number\n eventType: string\n eventTime: \"2024-12-13T14:25:58.066Z\"\n truckType: string\n isPublic: boolean\n boundingBox: {\n additionalProp1: number\n additionalProp2: number\n additionalProp3: number\n }\n valid: boolean\n loadState: string\n embeddingId: number\n embedding: number[]\n similarityDst: number\n detectionType: string\n trackingId: number\n deliveriesId: number\n edited: boolean\n isDeleted: boolean\n modelVersion: string\n}\n\nexport type VerifyDayUpdateRequestPayload = {\n camerasExid: string[]\n projectExid: string\n day: Date_YYYY_MM_DD\n isMatched: boolean\n verifiedBy: string\n}\n\nexport type ProcessedDaysQueryParams = {\n camerasExid: CameraExid[]\n isPublic: boolean\n eventType: GateReportEventType\n}\n\nexport type SecurityMeasurementQueryParams = {\n cameraex: string\n timestamp: DateTime\n prompt: string\n snapshotUrl: string\n}\n\nexport type ObjectDetectionQueryParams = {\n cameraex: string\n timestamp: DateTime\n base64Img: string\n snapshotUrl: string\n}\n\nexport type RoisQueryParams = {\n cameraExid: string\n id: number\n name: string\n fromDate: string\n roiType: GateReportROIShapeType\n isactive: boolean\n directionFilter: string\n sort: string\n}\n\nexport type GateReportROICreateRequestPayload = {\n id?: number\n roi: {\n cameraex: string\n name: string\n roiType: string\n isactive: true\n fromDate: string\n shapes: Record<string, unknown>[]\n directionFilter: string\n note: string\n }\n createdBy: string\n}\n","import { PaginationParams, DateType } from \"@/types\"\n\nexport enum IngestProcessingStatus {\n Completed = \"completed\",\n Uploading = \"uploading\",\n Created = \"created\",\n Failed = \"failed\",\n Aborted = \"aborted\",\n Paused = \"paused\",\n InProgress = \"inprogress\",\n Pending = \"pending\",\n}\n\nexport type DronesQueryParams = Omit<PaginationParams, \"sort\"> & {\n projectId: string\n consumed: string\n token: string\n processingStatus: IngestProcessingStatus\n}\n\nexport type DroneUploadUpdateRequestPayload = {\n flightMetadata: {\n dateTime: string\n gpsAltitude: string\n gpsCoordinates: string\n }\n upload: {\n url: string\n title: string\n fileExtension: string\n }[]\n projectName: string\n}\n\nexport type CalculateMeasuringOperationRequestPayload = {\n date: DateType\n points: [number, number][]\n operation: string\n}\n\nexport type FlightImagesQueryParams = Partial<\n Omit<PaginationParams, \"sort\">\n> & {\n date: DateType\n}\n\nexport type InspectionToolRequestPayload = {\n date: DateType\n gpsAltitude: string\n gpsCoordinates: string\n}\n","export enum MapType {\n Hybrid = \"hybrid\",\n Terrain = \"terrain\",\n}\n","export type ConnectorDetail = {\n login: string\n hostname: string\n}\n\nexport enum Connector {\n Aconex = \"aconex\",\n Procore = \"procore\",\n Autodesk = \"autodesk\",\n AutodeskViewer = \"autodesk_viewer\",\n VoyageControl = \"voyage_control\",\n}\n\nexport type ConnectorResponsePayload = Array<{\n hostname: string\n login: string\n provider: string\n}>\n","export enum NotificationType {\n CameraShare = \"camera_share\",\n CameraStatusChange = \"camera_status_changed\",\n Mention = \"mention\",\n TimelapseCreated = \"timelapse_created\",\n TimelapseFailed = \"timelapse_failed\",\n DroneProcessing = \"drone_processing_done\",\n Processing360 = \"three_sixty_done\",\n}\n\nexport interface CameraShareContext {\n cameraExid: string\n projectExid: string\n shareId: number\n}\n\n// export interface CameraStatusChangeContext {\n// cameraExid: string;\n// projectExid: string;\n// status: string;\n// }\n\n// export interface MentionContext {\n// postId: number;\n// commentId?: number;\n// }\n\nexport type Notification = {\n id: number\n type: NotificationType\n insertedAt: string\n initiatorId: number\n initiatorFullname: string\n initiatorEmail: string\n targetId: number\n targetFullname: string\n targetEmail: string\n readTimestamp: string | null\n context: CameraShareContext //| CameraStatusChangeContext | MentionContext\n}\n","import type { NvrModel } from \"@evercam/api/types\"\n\nexport type Nvr = {\n id?: number\n deviceType: NvrDeviceType\n serial: string\n model: NvrModel\n httpUrl: string\n rtspUrl: string\n macAddress: string\n username: string\n password: string\n nerves: boolean\n}\n\nexport enum NvrDeviceType {\n Rpi4 = \"rpi4\",\n Rpi5 = \"rpi5\",\n OrinNano = \"orin_nano\",\n}\n\nexport enum NvrHddStatus {\n Error = \"error\",\n Idle = \"idle\",\n NotExist = \"notexist\",\n Ok = \"ok\",\n Unformatted = \"unformatted\",\n}\n\nexport type NvrCreatePayload = {\n serial?: string\n httpUrl: string\n rtspUrl?: string\n deviceType?: NvrDeviceType\n model: NvrModel\n username: string\n password: string\n kitId?: number\n}\n","import { DateTime, DateType, PaginationParams } from \"@/types\"\nexport type ProgressPhoto = {\n cameraIds: string\n cameraNames: number\n createdAt: string\n id: number\n provider: string\n config: Partial<{\n recipients: string\n projectId: number\n companyId: number\n }>\n isPaused: boolean\n notifyDays: string\n notifyTime: string\n requesterEmail: string\n requesterName: string\n timezone: string\n title: string\n}\n\nexport type ProgressPhotosCreateUpdateRequestPayload = {\n cameraExids?: string\n notifyDays?: string\n notifyTime?: string\n provider?: string\n config?: {\n recipients?: string\n projectId?: number\n companyId?: number\n catergoryId?: string\n }\n subject?: string\n isPaused?: boolean\n timezone?: string\n}\n\nexport type ProgressPhotosUnSubscribeParams = {\n email: string\n token?: string\n}\n\nexport type ProgressPhotosResponsePayload = {\n progressPhotos: ProgressPhoto[]\n}\n\nexport enum ProgressPhotoDialogType {\n Create = \"create\",\n Edit = \"edit\",\n Pause = \"pause\",\n}\n\nexport type CameraOption = {\n exid: string\n name: string\n}\n\nexport interface ProgressPhotoItem {\n id: number\n cameras: CameraOption[] | string[] | string\n insertedAt: string\n provider: string\n config: {\n recipients: string | string[]\n sendSnapshotAs: string\n }\n isPaused: boolean\n notifyDays: string | string[]\n notifyTime: string\n api_id: string\n api_key: string\n timezone: string\n exid: string\n fullname: string\n}\n\nexport type ProgressPhotosQueryParams = PaginationParams & {\n fullname: string\n recipients: string\n notifyTime: string\n timezone: string\n cameras: string\n}\n\nexport type progressPhotosHistoryQueryParams = {\n insertedAt: DateType[]\n recipients: string\n subject: string\n cameraId: string\n failedCameraId: string\n}\n\nexport type ProgressPhotosHistory = {\n id: number\n cameraIds: string\n failedCameraIds: string\n subject: string\n recipients: DateTime\n}\n","import {\n AdminCamera,\n Camera,\n CameraExid,\n DateTime,\n DateType,\n EntityByExid,\n Exid,\n PaginationParams,\n} from \"@/types\"\n\nexport type ProjectExid = Exid\n\nexport type ProjectsByExid = EntityByExid<Project>\n\nexport type Project = {\n id: string | number\n exid: ProjectExid\n name: string\n status?: ProjectStatus\n insertedAt?: string\n startedAt?: string\n timezone?: string\n zohoId?: string\n cameras?: Array<Camera | AdminCamera>\n featureFlags: Array<ProjectFeatureFlag>\n owner?: { email?: string }\n}\n\nexport enum ProjectStatus {\n ToStart = \"To Start\",\n InProgress = \"In Progress\",\n Completed = \"Completed\",\n NotAplicable = \"Not Applicable\",\n}\n\nexport enum ProjectArchiveTier {\n Full = \"Full\",\n Partial = \"Partial\",\n Minimal = \"Minimal\",\n ScheduledForDeletion = \"Scheduled for Deletion\",\n}\n\nexport type ProjectResponsePayload = {\n data?: Project[]\n}\n\nexport type Logo = {\n name: string\n url: string\n}\n\nexport type ProjectLogoResponsePayload = Logo[]\n\nexport enum ProjectFeatureFlag {\n AnprLegacy = \"anpr_legacy\",\n DroneView = \"drone_view\",\n Bim = \"4d_bim\",\n BimItwin = \"4d_bim_itwin\",\n BimForge = \"4d_bim_forge\",\n ThreeSixtyView = \"360_view\",\n NdaMc = \"NDA/MC\",\n GateReport = \"gate_report\",\n GateReportAutoVerify = \"auto_publish\",\n GateReportMotionDetection = \"motion_detection\",\n FullEmpty = \"full_empty\",\n MediaHubSharing = \"archives_sharing\",\n GateReportAnprBased = \"anpr_sourced\",\n NoLicensePlate = \"no_license_plate\",\n DefaultToProjectApp = \"default_to_project_app\",\n Go = \"evercam_go\",\n}\n\nexport type ProjectBatteryReading = {\n exid: number\n voltage: number\n lastSeen: DateType\n}\n\nexport type ThumbnailData = {\n cameraExid: CameraExid\n custom: boolean\n image: string\n}\n\nexport type ProjectsQueryParams = PaginationParams & {\n name: string\n exid: string\n status: ProjectStatus\n cameras: string\n featureFlags: Array<ProjectFeatureFlag>\n archived: string\n}\n\nexport type ProjectCreateRequestPayload = {\n projectExid?: string\n projectName: string\n ownerId: number\n cameras: string[]\n}\n\nexport type ProjectCreateResponse = {\n name: string\n exid: string\n id: number\n userId: number\n zohoId: string\n}\n\nexport type ProjectUpdateRequestPayload = {\n name: string\n timezone: string\n featureFlags: ProjectFeatureFlag[]\n cameras: string[]\n}\n\nexport type ProjectStatusStats = {\n nil: number\n Completed: number\n \"In Progress\": number\n \"Not Applicable\": number\n \"To Start\": number\n}\n\nexport type ProjectUserProperty = {\n active: boolean\n activeOneMonth: boolean\n cameraExid: string\n cameraName: string\n cameraRights: string\n email: string\n eventsCount: number\n fullname: string\n id: number\n lastSeenAt: DateTime\n persona: string\n}\n\nexport type ProjectUsers = {\n cameras: {\n exid: string\n name: string\n }[]\n users: Record<string, ProjectUserProperty[]>\n}\n","import { ApiCredentials } from \"@/types\"\nimport { CancelToken } from \"axios\"\n\nexport type Snapshot = {\n createdAt: string\n data: string\n status?: string\n}\n\nexport type NearestSnapshotRequestPayload = {\n apiKey?: string\n apiId?: string\n token?: string\n cancelToken?: object\n}\n\nexport type AvailableDaysRequestPayload = {\n cameraId: string\n year: string\n month: string\n payload?: ApiCredentials\n}\nexport type AvailableDaysResponsePayload = {\n days: Array<number>\n}\n\nexport type AvailableHoursRequestPayload = {\n cameraId: string\n year: string\n month: string\n day: string\n payload?: ApiCredentials\n cancelToken?: CancelToken\n}\nexport type AvailableHoursResponsePayload = {\n hours: Array<number>\n}\n\nexport type NearestSnapshotResponsePayload = {\n snapshots: Array<{\n createdAt: string\n data: string\n notes?: string\n }>\n}\n\nexport type SnapshotRangeRequestPayload = {\n from: string\n to: string\n limit?: number\n page?: number\n schedule?: boolean\n count?: number\n}\nexport type SnapshotInstance = {\n createdAt: string\n notes?: string\n data?: string\n}\nexport type SnapshotRangeResponsePayload = {\n snapshots: Array<SnapshotInstance>\n}\n\nexport enum BrainTool {\n Detections = \"detections\",\n Segmentation = \"sam\",\n DepthAnalysis = \"depthAnalysis\",\n}\n\nexport enum CloudRecordingFrequency {\n EverySecond = 60,\n Every2Seconds = 30,\n Every5Seconds = 12,\n Every10Seconds = 6,\n Every15Seconds = 4,\n Every30Seconds = 2,\n Every60Seconds = 1,\n Every5Minutes = 5,\n Every10Minutes = 10,\n}\n\nexport enum CloudRecordingDuration {\n Infinity = -1,\n Day = 1,\n Week = 7,\n Month = 30,\n ThreeMonths = 90,\n}\n\nexport enum CloudRecordingStatus {\n On = \"on\",\n Off = \"off\",\n Paused = \"paused\",\n OnScheduled = \"on-scheduled\",\n}\n\nexport enum SnapshotExtractionInterval {\n EverySecond = 1,\n Every5Seconds = 5,\n Every10Seconds = 10,\n Every15Seconds = 15,\n Every20Seconds = 20,\n Every30Second = 30,\n EveryMinute = 60,\n Every5Minutes = 300,\n Every10Minutes = 600,\n Every15Minutes = 900,\n Every20Minutes = 1200,\n Every30Minutes = 1800,\n EveryHour = 3600,\n Every2Hours = 7200,\n Every6Hours = 21600,\n Every12Hours = 43200,\n Every24Hours = 86400,\n}\n\nexport enum VpnServer {\n None = \"None\",\n OpenVPN1 = \"OpenVPN1\",\n OpenVPN2 = \"OpenVPN2\",\n OpenVPN3 = \"OpenVPN3\",\n OpenVPN4 = \"OpenVPN4\",\n OpenVPN5 = \"OpenVPN5\",\n PPTP1 = \"PPTP1\",\n PPTP2 = \"PPTP2\",\n WireGuard1 = \"WireGuard1\",\n WireGuard2 = \"WireGuard2\",\n WireGuard3 = \"WireGuard3\",\n WireGuard4 = \"WireGuard4\",\n WireGuard5 = \"WireGuard5\",\n WireGuard6 = \"WireGuard6\",\n WireGuard7 = \"WireGuard7\",\n WireGuard8 = \"WireGuard8\",\n WireGuard9 = \"WireGuard9\",\n WireGuard10 = \"WireGuard10\",\n}\n","export enum RoiType {\n Gate = \"gate\",\n AnprContext = \"anpr_context\",\n ExclusionZone = \"exclusion_zone\",\n WorkflowArea = \"workflow_area\",\n SiteAnalytics = \"site_analytics\",\n}\n\nexport enum RoiShapeType {\n Polygon = \"polygon\",\n Line = \"line\",\n Direction = \"direction\",\n Rectangle = \"rectangle\",\n}\n\nexport type RoiShape = {\n id: number | null\n name: string\n x1: number\n x2: number\n y1: number\n y2: number\n}\n\nexport enum RoiDirection {\n Arrived = \"arrived\",\n Left = \"left\",\n Bidirectional = \"arrived,left\",\n}\n","export type RouteParams = {\n projectExid?: string\n cameraExid?: string\n timestamp?: string\n fromDate?: string\n toDate?: string\n}\n\nexport enum UrlParamValue {\n True = \"true\",\n False = \"false\",\n}\n\nexport enum TimelineUrlParam {\n CameraExid = \"cameraExid\",\n Timestamp = \"timestamp\",\n FromDate = \"fromDate\",\n ToDate = \"toDate\",\n Live = \"live\",\n Video = \"video\",\n BeforeTimestamp = \"beforeTimestamp\",\n OverlayType = \"overlayType\",\n Sidebar = \"sidebar\",\n ThreeSixtyId = \"_360Id\",\n DroneId = \"droneId\",\n MediaId = \"mediaId\",\n}\n\nexport enum Timeline360UrlParams {\n Show360 = \"show360\",\n}\n\nexport enum TimelineDroneUrlParams {\n ShowDrone = \"showDrone\",\n}\n\nexport enum TimelineMediaUrlParams {\n ShowMedia = \"showMedia\",\n}\n\nexport enum TimelineBimUrlParams {\n ShowBim = \"showBim\",\n}\n\nexport enum TimelineExNvrRecordingsUrlParams {\n ShowExNvrRecordings = \"showExNvrRecordings\",\n}\n\nexport enum TimelineAnprUrlParams {\n ShowAnpr = \"showAnpr\",\n}\n\nexport enum TimelineMobileCaptureUrlParams {\n ShowMobileCapture = \"showMobileCapture\",\n}\n\nexport enum TimelineCommentsUrlParams {\n ShowComments = \"showComments\",\n}\n\nexport type TimelineUrlParams = Record<\n | TimelineUrlParam\n | TimelineMediaUrlParams\n | TimelineBimUrlParams\n | TimelineExNvrRecordingsUrlParams\n | TimelineAnprUrlParams\n | TimelineMobileCaptureUrlParams\n | TimelineCommentsUrlParams,\n string | null\n>\n","import { Camera, PaginationParams, Project, Sim } from \"@/types\"\nexport type RouterBillPayer = { name: string }\n\nexport type SimProvider = { name: string }\n\nexport type Router = {\n id?: number\n kitId: number | null\n routerType: string\n routerUserId: string\n routerPassword: string\n serialNumber: number | null\n rmsUrl?: string\n externalHost?: string\n routerHttpPort: number | null\n vpnPassword: string\n vpnUserId: string\n vpnServer: string\n netbirdUrl: string\n status: RouterStatus\n powerType: PowerType\n powerSchedule: string\n battery?: {\n lastVoltage: number\n lastSeen: string\n }\n sims: Array<Pick<Sim, \"id\" | \"number\">>\n billPayers?: Array<RouterBillPayer>\n simProviders?: Array<SimProvider>\n projects?: Pick<Project, \"exid\" | \"id\" | \"name\">[]\n cameras?: Pick<Camera, \"id\" | \"name\">[]\n}\n\nexport enum PowerType {\n Mains = \"mains\",\n Battery = \"battery\",\n Solar = \"solar\",\n Generator = \"generator\",\n Other = \"other\",\n}\n\nexport enum PowerSchedule {\n Schedule = \"schedule\",\n FullTime = \"24/7\",\n}\n\nexport enum RouterStatus {\n Active = \"active\",\n Inactive = \"inactive\",\n}\n\nexport type RouterQueryParams = PaginationParams & {\n routerType: string\n vpnServer: string\n serialNumber: string\n}\n\nexport type RouterCreatePayload = {\n serialNumber: number\n vpnUserId?: string\n vpnPassword?: string\n routerType: string\n routerUserId?: string\n routerPassword?: string\n routerHttpPort: number\n powerType: PowerType\n powerSchedule: PowerSchedule\n vpnServer?: string\n netbirdUrl?: string\n}\n","import type { CameraExid, DateTime, DateType } from \"@/types\"\n\nexport type ShareRequest = {\n cameraId: string\n createdAt: DateType | number\n email: string\n id: number\n rights: string\n sharerEmail: string\n sharerName: string\n userId: number\n}\n\nexport type Share = {\n cameraId: string\n createdAt: DateType | number\n email: string\n fullname: string\n id: number\n lastSeenAt: DateType\n rights: string\n sessionCount: number\n sharerEmail: string\n sharerId: number\n sharerName: string\n userId: number\n}\n\nexport type ShareRequestsResponsePayload = {\n shareRequests: ShareRequest[]\n}\n\nexport type ShareOwner = {\n email: string\n fullname: string\n lastSeenAt: DateType\n sessionCount: number\n}\n\nexport type SharesResponsePayload = {\n owner: ShareOwner\n shares: Share[]\n}\n\nexport type ShareDeletionRequestPayload = {\n email?: string\n key?: string\n origin?: string\n}\n\nexport type SharedUsersResponsePayload = Array<{\n email: string\n name: string\n}>\n\nexport type ShareCreateRequestPayload = {\n email: string[] | string\n message?: string\n permission?: string\n rights: string\n apiId?: string\n apiKey?: string\n}\n\nexport type ShareProjectCamerasRequestPayload = {\n email: string[]\n cameraExids: CameraExid[]\n message: string\n permission?: string\n rights: string\n}\n\nexport type ShareCreateResponsePayload = {\n shares: Share[]\n shareRequests: ShareRequest[]\n}\n\nexport type ShareRequestByKeyResponsePayload = {\n shareRequests: Array<{\n id: string\n email: string\n rights: string\n cameraId: string\n sharerName: string\n userId: string\n sharerEmail: string\n createdAt: DateType\n }>\n}\n\nexport type ResendShareRequestPayload = {\n email: string\n apiId?: string\n apiKey?: string\n}\n\nexport enum SharePermission {\n Minimum = \"minimum\",\n Share = \"minimal+share\",\n Full = \"full\",\n Custom = \"custom\",\n}\n\nexport enum ShareType {\n Share = \"share\",\n Request = \"request\",\n}\n\nexport enum ShareRequestStatus {\n All = \"\",\n Pending = -1,\n Cancelled = -2,\n Failed = -3,\n Used = 1,\n}\n\nexport enum ShareVisibility {\n PublicDiscoverable = \"publicDiscoverable\",\n PublicUndiscoverable = \"publicUndiscoverable\",\n Private = \"private\",\n}\n\nexport type ProjectShare = {\n id: number\n projectId: string\n userId: number\n email: string\n fullname: string\n sharerId: number\n sharerEmail: string\n sharerName: string\n role: \"member\" | \"admin\"\n cameras: Record<string, string>\n message: string | null\n updatedAt: DateType\n insertedAt: DateType\n}\n\nexport type ProjectShareRequest = ProjectShare\n\nexport type ProjectShareResponse = {\n projectShares: ProjectShare[]\n projectShareRequests: ProjectShareRequest[]\n}\n\nexport type AdminShare = {\n sharerId: number\n sharerFullname: string\n sharerApiId: string\n sharerApiKey: string\n shareeId: number\n shareeFullname: string\n shareeApiId: string\n shareeApiKey: string\n shareeEmail: string\n cameraId: number\n exid: string\n projectId: string\n name: string\n id: number\n message: string\n createdAt: DateType\n}\n\nexport type CameraShareRequestPayload = {\n email: string[]\n rights: string\n message?: string\n}\n\nexport type ShareQueryParams = {\n exid: string\n sharerFullname: string\n shareeFullname: string\n shareeEmail: string\n}\n\nexport type CameraShare = {\n sharerId: number\n sharerFullname: string\n sharerApiId: string\n sharerApiKey: string\n shareeId: number\n shareeFullname: string\n shareeApiId: string\n shareeApiKey: string\n shareeEmail: string\n cameraId: number\n exid: string\n projectId: string\n name: string\n id: number\n message: string\n createdAt: DateTime\n}\n\nexport type CameraShareRequestsQueryParams = {\n shareeEmail: string\n camera: string\n sharer: string\n status: string\n}\n\nexport type CameraShareRequest = {\n id: number\n shareeEmail: string\n camera: string\n sharer: string\n message: number\n rights: string\n status: number\n projectId: string\n cameraExid: string\n apiId: string\n apiKey: number\n createdAt: DateTime\n}\n","import { DateTime, PaginationParams } from \"@/types\"\nexport enum SmsCommands {\n Cellular = \"cellular\",\n Gpson = \"gpson\",\n GPS = \"gps\",\n IPUnblock = \"ipunblock\",\n IOStatus = \"iostatus\",\n IOSet = \"ioset\",\n MonitoringStatus = \"monitoring_status\",\n MobileOn = \"mobileon\",\n MobileOff = \"mobileoff\",\n Reboot = \"reboot\",\n Restore = \"restore\",\n RmsOn = \"rms_on\",\n RmsConnect = \"rms_connect\",\n RmsStatus = \"rms_status\",\n SwitchSIM = \"switch_sim\",\n Status = \"status\",\n SshOn = \"sshon\",\n SshOff = \"sshoff\",\n Uci = \"uci\",\n VpnOn = \"vpnon\",\n VpnOff = \"vpnoff\",\n VpnStatus = \"vpnstatus\",\n WifiOn = \"wifion\",\n WifiOff = \"wifioff\",\n Wakeup = \"wakeup\",\n WebOn = \"webon\",\n WebOff = \"weboff\",\n}\n\nexport enum SmsStatuses {\n Delivered = \"Delivered\",\n Accepted = \"accepted\",\n Pending = \"Pending\",\n}\n\nexport type SimCreateUpdatePayload = {\n number: string\n simProvider: string\n billPayer?: string\n pin1?: string\n pin2?: string\n puk?: string\n iccid?: string\n description?: string\n cameraId: string[]\n}\n\nexport type SimsQueryParams = PaginationParams & {\n simProvider: string\n number: string\n billPayer: string\n iccid: string\n cameraName: string\n description: string\n}\n\nexport type Sim = {\n id: number\n number: string\n simProvider: string\n billPayer: string\n lastSms: string\n pin1: string\n pin2: string\n puk: string\n iccid: string\n description: string\n lastSmsAt: DateTime\n cameras: {\n name: string\n exid: string\n id: number\n }[]\n}\n\nexport type SendSmsPayload = {\n number: string\n smsMessage: string\n}\n\nexport type SendSmsResponse = {\n status: number\n errorText: string\n}\n\nexport type SmsHistory = {\n insertedAt: DateTime\n type: string\n status: string\n text: string\n deliveryDatetime: DateTime\n}\n\nexport type SmsHistoryResponse = {\n singleSimSms: SmsHistory[]\n}\n\nexport type Sms = {\n id: number\n from: string\n fromName: string\n to: string\n toName: string\n messageId: string\n status: string\n text: string\n type: string\n insertedAt: DateTime\n deliveryDatetime: DateTime\n}\n\nexport type SmsQueryParams = PaginationParams & {\n dateRange: string\n fromName: string\n toName: string\n fromNumber: string\n toNumber: string\n smsText: string\n smsType: string\n smsStatus: SmsStatuses\n deliveryDatetime: string\n}\n","export enum EMapTypes {\n Blank = \"Blank\",\n Satellite = \"Satellite\",\n Street = \"Street\",\n GoogleSatellite = \"hybrid\",\n GoogleStreet = \"roadmap\",\n}\n\nexport enum EMarkers {\n CameraMarker = \"cameraMarker\",\n}\n\nexport enum EPageType {\n List = \"list\",\n Item = \"item\",\n}\n\nexport enum EPaths {\n Home = \"/\",\n Session = \"/session\",\n}\n\nexport enum EProjectItems {\n Camera = \"camera\",\n Overlay = \"overlay\",\n}\n\nexport enum ERoles {\n Admin = \"admin\",\n User = \"user\",\n}\n","import {\n MilesightCameraNetworkConfiguration,\n MilesightCameraOsdConfiguration,\n MilesightCameraSdCardInfo,\n MilesightCameraSystemSettings,\n MilesightCameraTimeInfo,\n MilesightCameraVideoConfig,\n TaskStatus,\n DateTime_Z_micros,\n KitMetricData,\n} from \"@/types\"\n\nexport enum ExNvrHealthCheckTaskId {\n ExNvrLogin = \"exNvrLogin\",\n ExNvrConfigCheck = \"exNvrGetDeviceInfo\",\n ExNvrSystemStatus = \"exNvrSystemStatus\",\n ExNvrRecordings = \"exNvrGetRecordings\",\n CameraSystemConfigCheck = \"getCameraSystemInfo\",\n CameraTimeConfigCheck = \"getCameraTimeInfo\",\n CameraStreamsConfigCheck = \"getCameraStreamsInfo\",\n CameraNetworkConfigCheck = \"getCameraNetworkInfo\",\n CameraOsdConfigCheck = \"getCameraOsdInfo\",\n CameraStorageConfigCheck = \"getCameraStorageInfo\",\n}\n\nexport type ExNvrHealthCheckTaskResult<T extends ExNvrHealthCheckTaskId> =\n T extends ExNvrHealthCheckTaskId.ExNvrLogin\n ? ExNvrLoginResponse\n : T extends ExNvrHealthCheckTaskId.ExNvrConfigCheck\n ? ExNvrDeviceConfig\n : T extends ExNvrHealthCheckTaskId.ExNvrSystemStatus\n ? ExNvrSystemStatus\n : T extends ExNvrHealthCheckTaskId.ExNvrRecordings\n ? ExNvrRecordingInterval[]\n : T extends ExNvrHealthCheckTaskId.CameraStreamsConfigCheck\n ? MilesightCameraVideoConfig\n : T extends ExNvrHealthCheckTaskId.CameraSystemConfigCheck\n ? MilesightCameraSystemSettings\n : T extends ExNvrHealthCheckTaskId.CameraTimeConfigCheck\n ? MilesightCameraTimeInfo\n : T extends ExNvrHealthCheckTaskId.CameraNetworkConfigCheck\n ? MilesightCameraNetworkConfiguration\n : T extends ExNvrHealthCheckTaskId.CameraOsdConfigCheck\n ? MilesightCameraOsdConfiguration\n : T extends ExNvrHealthCheckTaskId.CameraStorageConfigCheck\n ? MilesightCameraSdCardInfo\n : never\n\nexport type ExNvrHealthCheckTask<T extends ExNvrHealthCheckTaskId> = {\n id: T\n status: TaskStatus\n duration?: number\n result?: ExNvrHealthCheckTaskResult<T>\n error?: Error\n}\n\nexport type ExNvrLoginResponse = { accessToken: string }\n\nexport type ExNvrRecordingInterval = {\n active: boolean\n startDate: DateTime_Z_micros\n endDate: DateTime_Z_micros\n}\n\nexport type ExNvrDeviceConfig = {\n id: string\n name: string\n type: string\n state: ExNvrDeviceState\n credentials: {\n password: string\n username: string\n }\n mac: string\n url: string\n insertedAt: string\n updatedAt: string\n settings: {\n storageAddress: string\n overrideOnFullDisk: boolean\n overrideOnFullDiskThreshold: number\n generateBif: boolean\n }\n vendor: string\n model: string\n streamConfig: {\n filename: string | null\n duration: string | null\n temporaryPath: string | null\n snapshotUri: string\n streamUri: string\n subStreamUri: string\n }\n timezone: string\n}\n\nexport enum ExNvrFootageAvailableStatus {\n Active = \"Active\",\n NotActive = \"Not Active\",\n NotAvailable = \"Not Available\",\n}\n\nexport enum ExNvrDeviceState {\n Recording = \"recording\",\n Failed = \"failed\",\n Stopped = \"stopped\",\n}\n\nexport type ExNvrCpuStatus = {\n load: number[]\n numCores: number\n}\n\nexport type ExNvrMemoryStatus = {\n systemTotalMemory: number\n freeMemory: number\n totalMemory: number\n bufferedMemory: number\n cachedMemory: number\n totalSwap: number\n freeSwap: number\n availableMemory: number\n}\n\nexport type ExNvrSolarChargerStatus = {\n v: number\n vpv: number\n ppv: number\n i: number\n il: number\n load: string\n relayState: string\n offReason: number\n h19: number\n h20: number\n h21: number\n h22: number\n h23: number\n err: number\n cs: string\n fw: string\n pid: string\n serialNumber: string\n}\n\nexport type ExNvrSystemStatus = {\n version: string\n cpu: ExNvrCpuStatus\n memory: ExNvrMemoryStatus\n solarCharger: ExNvrSolarChargerStatus\n}\n\nexport enum ExNvrMetricId {\n CpuLoad = \"cpu_load\",\n RamUsage = \"ram_usage\",\n SwapUsage = \"swap_usage\",\n}\n\nexport type ExNvrMetric = KitMetricData & {\n metricId: ExNvrMetricId\n value: number\n}\n","import { DateType, Schedule } from \"@/types\"\n\nexport enum TimelapseStatus {\n Pending = 11,\n Completed = 5,\n Failed = 7,\n}\n\nexport enum TimelapseDuration {\n ThirtySeconds = 30,\n SixtySeconds = 60,\n NintySeconds = 90,\n}\n\nexport type TimelapseVideoOptions = {\n width?: number\n height?: number\n removeTimestamp: boolean\n smoothTransition: boolean\n evercamWatermark: boolean\n}\n\nexport type TimelapseLogoOptions = {\n id: number\n x: number\n y: number\n width: number\n height: number\n}\n\nexport type TimelapseSchedules = string | Schedule\n\nexport enum TimelapseScheduleType {\n Continuous = \"continuous\",\n WorkingHours = \"workingHours\",\n Custom = \"custom\",\n}\n\nexport enum TimelapsePeriod {\n Day = 1,\n Week = 7,\n Month = 30,\n WholeProject = \"whole_project\",\n Custom = \"custom\",\n}\n\nexport type TimelapseFilterQueryParams = {\n from?: DateType\n to?: DateType\n period?: TimelapsePeriod\n duration?: number\n schedule?: TimelapseSchedules\n}\n\nexport type TimelapseCreationRequestPayload = {\n title: string\n duration: number\n fromDatetime: string\n toDatetime: string\n cameraExid: string\n schedule: Schedule\n videoOptions: TimelapseVideoOptions\n logo?: TimelapseLogoOptions\n}\n\nexport type TimelapseCreationResponsePayload = {\n Timelapse: {\n camera: string\n createdAt: string\n fromDate: string\n id: number\n duration: number\n requestor: string\n schedule: Schedule\n status: number\n toDate: string\n updatedAt: string\n }\n}\n\nexport type TimelapseSnapshotRequestPayload = {\n from: string\n to: string\n schedule: string\n count: number\n}\n\nexport type TimelapseSnapshotResponsePayload = {\n snapshots: string[]\n}\n\nexport enum TimelapseExportStep {\n Format = 1,\n Effects = 2,\n Confirm = 3,\n Finish = 4,\n}\n","import type { DateTime, PaginationParams } from \"@/types\"\n\nexport type User = {\n id?: number\n fullname?: string\n firstname: string\n lastname: string\n email: string\n telephone: string\n country: string\n isAdmin: boolean\n persona: Persona\n companyId?: string\n companyName?: string\n companyExid?: string\n features?: Array<UserFeatureFlag>\n}\n\nexport type AdminUser = {\n id: number\n fullname: string\n firstname: string\n email: string\n telephone: string\n country: string\n isAdmin: boolean\n companyId: string\n companyName: string\n companyExid: string\n features: Array<UserFeatureFlag>\n active: boolean\n cameraShares: number\n camerasCount: number\n camerasOwned: number\n countryId: number\n countryName: string\n createdAt: DateTime\n integrations: string[]\n lastEventBrowser: string\n lastEvenCreatedAt: DateTime\n lastEventId: number\n lastEventIpAddress: string\n lastEventName: string\n lastEventOs: string\n lastLoginAt: string\n lastname: string\n persona: string\n projects: string[]\n projectsCount: number\n referralUrl?: string\n snapmailCount: number\n zohoId: string\n}\n\nexport enum UserFeatureFlag {\n CompanyAdmin = \"company-admin\",\n VideoWalls = \"video-walls\",\n MassCameraSharing = \"mass-camera-sharing\",\n Copilot = \"copilot\",\n ProjectSharing = \"project-sharing\",\n}\n\nexport type ProjectUser = User & {\n lastSeenAt: string\n active: boolean\n activeOneMonth: boolean\n eventsCount: string\n cameraExid: string\n cameraRights: string\n}\n\nexport enum Persona {\n HQ = \"HQ\",\n PM = \"PM\",\n QS = \"QS\",\n Marketing = \"Marketing\",\n HS = \"H&S\",\n DI = \"DI\",\n Other = \"Other\",\n}\n\nexport type UpdatePasswordRequestPayload = {\n token: string\n password: string\n}\n\nexport type Credentials = {\n apiKey: string\n apiId: string\n}\n\nexport type LoginRequestPayload = {\n username: string\n password: string\n redirectToZoho?: boolean\n}\n\nexport type RemotePasswordUpdateRequestPayload = {\n currentPassword: string\n newPassword: string\n}\n\nexport type LoginResponsePayload = {\n confirmedAt?: string\n country?: string\n createdAt?: string\n email?: string\n firstname?: string\n id?: string\n isAdmin?: boolean\n lastLoginAt?: string\n lastname?: string\n persona?: Persona\n telephone?: string\n token?: string\n updatedAt?: string\n evercamAccount?: string\n}\n\nexport type LogoutParams = {\n token: string\n fromAdmin?: boolean\n}\n\nexport type UserSession = {\n browser: string\n createdAt: string\n id: number\n ipAddress: string\n isCurrent: boolean\n lastUsedAt: string\n os: string\n}\n\nexport type SessionsListRequestPayload = {\n authorization: string\n browser?: string\n os?: string\n ipAddress?: string\n sort: string\n limit: number\n page: number\n}\n\nexport type SessionActivityCamSettingsDetail = {\n new: any\n old: any\n}\n\nexport type SessionActivityDetail = {\n agent: string\n camSettings: SessionActivityCamSettingsDetail\n country: string\n countryCode: string\n ip: string\n}\n\nexport type SessionActivity = {\n cameraExid: string\n details: SessionActivityDetail\n insertedAt: string\n type: string\n who: string\n}\n\nexport type SessionActivitiesListRequestPayload = {\n limit: number\n from: string\n to: string\n}\n\nexport type SignupUserRequestPayload = {\n telephone: string\n token: string\n firstname: string\n lastname: string\n email: string\n password: string\n shareRequestKey: string\n referralUrl: string\n persona: string\n disablePassword: boolean\n}\n\nexport type UserUpdateRequestPayload = {\n firstname: string\n lastname: string\n email: string\n telephone: string\n country: string\n persona: string\n}\n\nexport type UserDeleteRequestPayload = {\n verifEmail: string\n}\n\nexport type GoogleAuthRequestPayload = { code: string; redirectUri: string }\n\nexport type UserStatsResponse = { data: { userStats: AdminUser } }\n\nexport type UserCamera = {\n id: number\n exid: string\n ownerFullname: string\n ownerEmail: string\n apiId: string\n apiKey: string\n}\n\nexport type UserCameraResponse = { data: UserCamera[] }\n\nexport type UserProject = {\n id: number\n exid: string\n name: string\n startedAt: DateTime\n}\n\nexport type UserProjectResponse = { data: UserProject[] }\n\nexport type AdminUserUpdateRequestPayload = {\n companyId: string\n email: string\n persona: Persona\n country: string\n features: UserFeatureFlag[]\n}\n\nexport type AdminQueryParams = PaginationParams & {\n email: string\n fullname: string\n}\n\nexport type Admin = {\n id: number\n fullname: string\n email: string\n createdAt: DateTime\n updatedAt: DateTime\n lastSignInAt: DateTime\n signInCount: number\n lastSignInIp: string\n apiId: string\n apiKey: string\n}\n\nexport type ImpersonateUserResponse = {\n id: string\n firstname: string\n lastname: string\n telephone: string\n email: string\n is_admin: boolean\n persona: Persona\n country: string\n companyId: number\n companyExid: string\n companyName: string\n evercamAccount: boolean\n createdAt: DateTime\n updatedAt: DateTime\n confirmedAt: DateTime\n last_loginAt: DateTime\n features: UserFeatureFlag[]\n token: string\n}\n\nexport type AdminUserQueryParams = PaginationParams & {\n fullname: string\n email: string\n telephone: string\n persona: Persona\n companyName: string\n camerasCount: string\n projectsCount: string\n snapmailCount: string\n camerasOwned: string\n cameraShares: string\n createdAtDate: string\n lastLoginAtDate: string\n integrations: \"procore\" | \"aconex\" | \"autodesk\"\n features: UserFeatureFlag.ProjectSharing | UserFeatureFlag.VideoWalls\n}\n\nexport type SuppressionsQueryParams = PaginationParams & {\n id: number\n email: string\n source: string\n}\n\nexport type Suppression = {\n id: number\n email: string\n source: string\n insertedAt: DateTime\n updatedAt: DateTime\n}\n","import { Camera, Media } from \"@/types\"\n\nexport enum VideoWallItemType {\n LiveView = \"live\",\n Video = \"video\",\n Image = \"image\",\n}\n\nexport type VideoWallItem<T extends Camera | Media> = {\n value: T\n type: VideoWallItemType\n}\n\nexport type VideoWallPresetItemConfig = {\n camera: Camera\n h: number\n i: string | number\n moved: boolean\n w: number\n x: number\n y: number\n}\n\nexport type VideoWallPreset = {\n name?: string\n configuration: Array<VideoWallPresetItemConfig>\n}\n\nexport type VideoWallPresetItem = {\n i: string | number\n x: number\n y: number\n w: number\n h: number\n camera: Camera\n weather?: Record<string, unknown>\n media?: Media\n}\n","import { Date_YYYY_MM_DD, DateType } from \"@/types/time\"\n\nexport type HistoryWeatherRequestPayload = {\n day: string\n}\n\nexport type WeatherResponsePayload = Array<{\n hour?: number\n temp?: number\n clouds?: number\n feelsLike?: number\n pressure?: number\n humidity?: number\n windSpeed?: number\n windDegree?: number\n weather?: [WeatherSummary]\n rain?: HourlyReading\n snow?: HourlyReading\n}>\n\nexport type WeatherSummary = {\n id?: number\n main?: string\n description?: string\n icon?: string\n}\n\nexport type HourlyReading = {\n \"1h\"?: number\n \"3h\"?: number\n}\n\nexport enum WeatherProvider {\n WeatherStack = \"WeatherStack\",\n AerisWeather = \"AerisWeather\",\n}\n\nexport type Weatherstatus = {\n description: string\n hour: DateType\n id: number\n temp: number\n}\n\nexport type WeatherDataResponse = {\n minFeelsLike: number\n id: number\n sunhour: number\n maxFeelsLike: number\n minWindchill: number\n minPressure: number\n minWindDegree: number\n minDewpoint: number\n maxClouds: number\n maxWindgust: number\n minWindSpeed: number\n astro: {\n moonIllumination: number\n moonPhase: string\n moonrise: string\n moonset: string\n sunrise: string\n sunset: string\n }\n insertedAt: string\n maxDewpoint: number\n maxTemp: number\n minClouds: number\n weather: Weatherstatus[]\n minHeatindex: number\n minPrecip: number\n maxWindDegree: number\n maxUvIndex: number\n minHumidity: number\n maxWindSpeed: number\n minWindgust: number\n updatedAt: DateType\n maxPrecip: number\n uvIndex: number\n maxHeatindex: number\n minTemp: number\n date: Date_YYYY_MM_DD\n totalsnow: number\n maxPressure: number\n maxWindchill: number\n maxHumidity: number\n avgtemp: number\n projectId: number\n minUvIndex: number\n}\n","import { DateType } from \"@/types\"\n\ntype sortby = string\ntype sortDirection = \"asc\" | \"desc\"\n\nexport type SortingUrlParam = `${sortby}|${sortDirection}`\n\nexport type BatteryReading = {\n id: number\n voltage: number\n datetime: DateType\n serialNo: string\n iValue: number\n vpvValue: number\n ppvValue: number\n csValue: number\n errValue: number\n h19Value: number\n h20Value: number\n h21Value: number\n h22Value: number\n h23Value: number\n ilValue: number\n mpptValue: number\n loadValue: number\n pValue: number\n consumedAmphours: number\n socValue: number\n timeToGo: number\n alarm: string\n relay: string\n arValue: number\n bmvValue: number\n h1Value: number\n h2Value: number\n h3Value: number\n h4Value: number\n h5Value: number\n h6Value: number\n h7Value: number\n h8Value: number\n h9Value: number\n h10Value: number\n h11Value: number\n}\n\nexport interface PaginatedItems<T> {\n from: number\n items: Array<T>\n limit: number\n page: number\n to: number\n total: number\n}\n\nexport enum UnitSystem {\n Imperial = \"imperial\",\n Metric = \"metric\",\n}\n\nexport type Timestamp = string | number\n\nexport type Schedule = {\n Friday: string[]\n Monday: string[]\n Saturday: string[]\n Sunday: string[]\n Thursday: string[]\n Tuesday: string[]\n Wednesday: string[]\n}\n\nexport type ScheduleLowercase = {\n friday: string[]\n monday: string[]\n saturday: string[]\n sunday: string[]\n thursday: string[]\n tuesday: string[]\n wednesday: string[]\n}\n\nexport type PaginationParams = {\n sort?: SortingUrlParam\n page?: number\n limit?: number\n}\n\nexport type LabsPaginationParams = {\n sortBy?: string\n sortDirection?: \"asc\" | \"desc\"\n page?: number\n limit?: number\n}\n\nexport enum MobileDevice {\n Ios = \"ios\",\n Android = \"android\",\n}\n\nexport enum _3dViewer {\n Itwin = \"itwin\",\n Cesium = \"cesium\",\n}\n\nexport enum SsoProvider {\n Microsoft = \"microsoft\",\n Google = \"google\",\n Evercam = \"evercam\",\n}\n\nexport enum InfoPage {\n ThreeSixtyView = \"360\",\n BIMView = \"bim\",\n BimCompare = \"bim-compare\",\n GateReport = \"gate-report\",\n DroneView = \"drone-view\",\n Compare = \"compare\",\n Timeline = \"timeline\",\n WeatherReport = \"weather-report\",\n EvercamGo = \"evercam-go\",\n}\n\nexport enum EvercamGoFeatures {\n XRay = \"xray\",\n MagicWand = \"magic-wand\",\n Weather = \"weather\",\n DownloadSnapshot = \"download-snapshot\",\n LocalRecordings = \"local-recordings\",\n MarkupTool = \"markup-tool\",\n}\n\nexport enum DownloadTypes {\n Jpeg = \"jpeg\",\n Pdf = \"pdf\",\n Csv = \"csv\",\n}\n\nexport enum FeedbackContext {\n CopilotMessage = \"copilot_message\",\n}\n\nexport type FeedbackPayload<T> = {\n id?: number\n user: string\n text: string\n type: T\n context: FeedbackContext\n messageId?: number\n conversationId?: number\n}\n\nexport type Stringified<T> = string & {\n [P in keyof T]: { \"_ value\": T[P] }\n}\n\nexport interface JSON {\n stringify<T>(\n value: T,\n replacer?: (key: string, value: unknown) => unknown,\n space?: string | number\n ): string & Stringified<T>\n\n parse<T>(\n text: Stringified<T>,\n reviver?: (key: unknown, value: unknown) => unknown\n ): T\n}\n\nexport type Exid = string\n\nexport type EntityByExid<Entity extends unknown> = Record<Exid, Entity>\n\nexport type BatteryVoltage = {\n date: DateType\n max_value: number\n min_value: number\n}\n\nexport type GlobalSearchQueryParams = PaginationParams & {\n resource: \"projects\" | \"users\" | \"cameras\" | \"companies\" | \"sims\" | \"routers\"\n term: string\n email: string\n featureFlag: string\n}\n\nexport type TimelineDateInterval = {\n fromDate: string\n toDate: string\n}\n\nexport enum TimelinePrecision {\n Year = \"year\",\n Month = \"month\",\n Week = \"week\",\n Day = \"day\",\n Hour = \"hour\",\n Minute = \"minute\",\n Events = \"events\",\n}\n\nexport type EntityStatsQueryParams = {\n period: \"day\" | \"week\" | \"month\"\n startDate: string\n endDate: string\n}\n\nexport type EntityStat = {\n period: string\n name: string\n count: number\n}\n\nexport enum TaskStatus {\n Idle = \"idle\",\n Loading = \"loading\",\n Success = \"success\",\n Error = \"error\",\n}\n\nexport type PatchPayload<T> = Partial<T> & { [K in keyof T]?: T[K] | undefined }\n\nexport enum PtzDirection {\n Up = \"up\",\n Down = \"down\",\n Left = \"left\",\n Right = \"right\",\n}\n\nexport type MoveParams = {\n cameraExid: string\n direction: PtzDirection\n isRecordingFromNvr: boolean\n}\n\nexport enum ZoomDirection {\n In = \"in\",\n Out = \"out\",\n}\n\nexport type ZoomParams = {\n cameraExid: string\n direction: ZoomDirection\n isRecordingFromNvr: boolean\n}\n","import {\n CountryCode,\n CountryId,\n DateType,\n Nvr,\n PaginationParams,\n PowerType,\n Project,\n Region,\n Router,\n Schedule,\n} from \"@/types\"\n\nexport type Kit = {\n alarms: KitAlarm[]\n countryCode: CountryCode\n countryId: CountryId\n countryName: string\n countryRegion: Region\n id?: number\n jobId: number\n name: string\n nvr: Nvr\n powerType: PowerType\n project: Project\n projectId: number\n router: Partial<Router>\n serial: string\n status: KitStatus\n powerSchedule: Schedule\n}\n\nexport enum KitStatus {\n New = \"new\",\n Active = \"active\",\n Deployed = \"deployed\",\n Decommissioned = \"decommissioned\",\n}\n\nexport enum KitAlarm {\n NvrOffline = \"nvr_offline\",\n UnknownCamera = \"unknown_camera\",\n NotRecordingCamera = \"not_recording_camera\",\n OfflineScheduled = \"offline_scheduled\",\n}\n\nexport enum KitMetricId {\n BatteryStats = \"battery\",\n PanelPowerStats = \"panel_power\",\n}\n\nexport enum KitMetricPeriod {\n Last15Minutes = \"now-15m\",\n Last1Hour = \"now-1h\",\n Last24Hours = \"now-24h\",\n Last7Days = \"now-7d\",\n Last30Days = \"now-30d\",\n Last90Days = \"now-90d\",\n}\n\nexport enum GrafanaMetricId {\n SbcCpuLoad = \"SbcCpuLoad\",\n SbcSystemLoad5MnAvg = \"SbcSystemLoad5MnAvg\",\n SbcSystemLoad15MnAvg = \"SbcSystemLoad15MnAvg\",\n SbcRamUsed = \"SbcRamUsed\",\n SbcSwapUsed = \"SbcSwapUsed\",\n SbcRootFsUsed = \"SbcRootFsUsed\",\n SbcCpuCoresTotal = \"SbcCpuCoresTotal\",\n SbcRamTotal = \"SbcRamTotal\",\n SbcSwapTotal = \"SbcSwapTotal\",\n SbcRootFsTotal = \"SbcRootFsTotal\",\n SbcUptime = \"SbcUptime\",\n SbcCpuStats = \"SbcCpuStats\",\n SbcRamStats = \"SbcRamStats\",\n SbcNetworkStats = \"SbcNetworkStats\",\n SbcTimeSyncStats = \"SbcTimeSyncStats\",\n SbcTemperatureStats = \"SbcTemperatureStats\",\n SbcTimeSyncDriftStats = \"SbcTimeSyncDriftStats\",\n CameraInfo = \"CameraInfo\",\n CameraRecordingStateTimeline = \"CameraRecordingStateTimeline\",\n CameraStreamInfo = \"CameraStreamInfo\",\n LocalStorage = \"LocalStorage\",\n StorageSpaceUsed = \"StorageSpaceUsed\",\n RouterTemperature = \"RouterTemperature\",\n RouterCpuLoad = \"RouterCpuLoad\",\n RouterRamUsed = \"RouterRamUsed\",\n RouterSystemLoad5MnAvg = \"RouterSystemLoad5MnAvg\",\n RouterSwapTotal = \"RouterSwapTotal\",\n RouterRamTotal = \"RouterRamTotal\",\n RouterUptime = \"RouterUptime\",\n RouterCpuCoresTotal = \"RouterCpuCoresTotal\",\n RouterSignalReliability = \"RouterSignalReliability\",\n RouterSINR = \"RouterSINR\",\n RouterRSRP = \"RouterRSRP\",\n RouterRSRQ = \"RouterRSRQ\",\n RouterRSSI = \"RouterRSSI\",\n RouterSignalStrengthStats = \"RouterSignalStrengthStats\",\n RouterSignalQualityStats = \"RouterSignalQualityStats\",\n RouterDataConsumptionStats = \"RouterDataConsumptionStats\",\n BatteryVoltageAndCurrentStats = \"BatteryVoltageAndCurrentStats\",\n PanelVoltageAndPowerStats = \"PanelVoltageAndPowerStats\",\n ExNvrStatus = \"ExNvrStatus\",\n ExNvrVersion = \"ExNvrVersion\",\n ExNvrMemoryUsage = \"ExNvrMemoryUsage\",\n ExNvrLogs = \"ExNvrLogs\",\n}\n\nexport enum KitChartType {\n Stat = \"stat\",\n Gauge = \"gauge\",\n Graph = \"graph\",\n Table = \"table\",\n StateTimeline = \"state-timeline\",\n Logs = \"logs\",\n TimeSeries = \"timeseries\",\n BarChart = \"barchart\",\n}\n\nexport type GrafanaDataSource = {\n type: string\n uid: string\n}\n\nexport type GrafanaTarget = {\n expr: string\n refId: string\n datasourceId?: string\n intervalMs?: number\n maxDataPoints?: number\n}\n\nexport type GrafanaPanel = {\n [key: string]: unknown\n id: GrafanaMetricId\n name: keyof GrafanaMetricId\n title: string\n description: string\n type: KitChartType\n datasource: GrafanaDataSource\n targets: GrafanaTarget[]\n maxDataPoints?: number\n interval?: string\n timeFrom?: string\n timeShift?: string\n options?: {\n maxDataPoints?: number\n interval?: string\n }\n}\n\nexport type GrafanaDashboard = {\n [key: string]: unknown\n panels: GrafanaPanel[]\n time?: {\n from: string\n to: string\n }\n timepicker?: {\n refresh_intervals: string[]\n time_options: string[]\n }\n}\n\nexport type GrafanaQueryOptions = {\n metricId: GrafanaMetricId\n host: string\n job?: string\n from?: string\n to?: string\n variables?: Record<string, string>\n}\n\nexport type GrafanaTimeSeriesValue = number | string | null\nexport type GrafanaTimeSeriesValues = GrafanaTimeSeriesValue[][]\n\nexport type GrafanaFieldConfig = {\n displayNameFromDS?: string\n links?: string[]\n color?: string\n custom?: {\n lineInterpolation?: string\n fillOpacity?: number\n gradientMode?: string\n lineWidth?: number\n spanNulls?: boolean\n resultType?: string\n }\n thresholds?: {\n mode: string\n steps: Array<{\n color: string\n value: number | null\n }>\n }\n unit?: string\n decimals?: number\n interval?: number\n}\n\nexport type GrafanaField = {\n name: string\n type: string\n typeInfo: {\n frame: string\n nullable?: boolean\n }\n config: GrafanaFieldConfig\n labels?: {\n [key: string]: string\n }\n values?: GrafanaTimeSeriesValues\n}\n\nexport type GrafanaSchemaMeta = {\n type?: string\n typeVersion?: number[]\n custom?: {\n resultType?: string\n frameType?: string\n }\n stats?: Array<{\n displayName: string\n value: number\n unit?: string\n }>\n executedQueryString?: string\n}\n\nexport type GrafanaSchema = {\n name?: string\n refId: string\n meta: GrafanaSchemaMeta\n fields: GrafanaField[]\n}\n\nexport type GrafanaFrame = {\n schema: GrafanaSchema\n data: {\n values: GrafanaTimeSeriesValues\n nanos?: Array<number[] | null>\n }\n}\n\nexport type KitMetricData = {\n type: KitChartType\n chartProps?: Record<string, unknown>\n}\n\nexport type GrafanaQueryResult = {\n status: number\n frames: GrafanaFrame[]\n}\n\nexport type GrafanaMetricData = KitMetricData & {\n results: {\n [key: string]: GrafanaQueryResult\n }\n}\n\nexport type EvercamMetricData = KitMetricData & {\n stats: EvercamStats[]\n}\n\nexport type GrafanaKitMetrics = Record<\n keyof typeof GrafanaMetricId,\n GrafanaMetricData\n>\n\nexport type EvercamStats = {\n [k: string]: number | string\n timestamp: string\n}\n\nexport type KitQueryParams = PaginationParams & {\n name: string\n serial: string\n status: KitStatus\n}\n\nexport type AdminKit = {\n id: number\n name: string\n serial: string\n status: string\n powerType: PowerType\n location: string\n countryId: number\n countryName: string\n countryRegion: string\n nvr: Nvr\n router: {\n id: number\n serialNumber: number\n vpnUserId: string\n vpnPassword: string\n routerType: string\n routerUserId: string\n routerPassword: string\n routerHttpPort: number\n powerType: PowerType\n powerSchedule: Schedule\n vpnServer: string\n netbirdUrl: string\n sims: {\n id: number\n number: string\n }[]\n }\n project: {\n id: number\n exid: string\n name: string\n timezone: string\n status: string\n zohoId: string\n insertedAt: DateType\n }\n}\n\nexport type KitCreatePayload = {\n projectId?: number\n countryCode?: string\n name: string\n status: KitStatus\n powerType: PowerType\n config: {\n region: Region\n }\n}\n\nexport type KitUpdatePayload = {\n countryId: number\n name: string\n kitSerial: string\n kitStatus: KitStatus\n type: string\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\nimport { CameraStatus, DateType, PaginationParams } from \"@/types\"\n\nexport enum AuditLogActionType {\n VH_STATUS = \"vh_status\",\n CR_UPDATED = \"cr_updated\",\n CR_CREATED = \"cr_created\",\n ONLINE = \"online\",\n OFFLINE = \"offline\",\n ON_HOLD = \"on_hold\",\n WAITING = \"waiting\",\n DECOMMISSIONED = \"decommissioned\",\n UNDER_MAINTENANCE = \"under_maintenance\",\n WAITING_FOR_SITE_VISIT = \"waiting_for_site_visit\",\n SMS = \"sms\",\n CUSTOM = \"custom\",\n PUBLIC_NOTE = \"public_note\",\n SIM = \"sim\",\n LOGIN = \"login\",\n LOGOUT = \"logout\",\n CREATE = \"create\",\n UPDATE = \"update\",\n DELETE = \"delete\",\n DEVICE_SETTINGS = \"device_settings\",\n LINK_SIM_WITH_ROUTER = \"link_sim_with_router\",\n UNLINK_SIM_FROM_ROUTER = \"unlink_sim_from_router\",\n LINK_CAMERA_WITH_ROUTER = \"link_camera_with_router\",\n UNLINK_CAMERA_FROM_ROUTER = \"unlink_camera_from_router\",\n SHARE = \"share\",\n UPDATE_SHARE = \"update_share\",\n DELETE_SHARE = \"delete_share\",\n SHARE_REQUEST = \"share_request\",\n DELETE_SHARE_REQUEST = \"delete_share_request\",\n TRANSFER_OWNERSHIP = \"transfer_ownership\",\n BIM_NOTE = \"bim_note\",\n GATE_REPORT_NOTE = \"gate_report_note\",\n}\n\nexport type AuditLog = {\n id: number\n action: AuditLogActionType\n details: Record<string, any>\n insertedAt: DateType\n entity: string\n user_details: {\n browser: string\n country: string\n countryCode: string\n device: string | null\n ip: string\n os: string | null\n }\n who: string\n}\n\nexport type AuditLogsParams = PaginationParams & {\n routerId: number\n cameraId: number\n entity: string\n byRouter: boolean\n byCamera: boolean\n byProject: boolean\n action: string\n}\n\nexport type CameraLogsQueryParams = {\n historyDays: number\n accountId?: string\n status: CameraStatus[]\n}\n\nexport type CameraLogItem = {\n start: DateType\n state: CameraStatus\n end: DateType\n}\n\nexport type CameraLog = {\n data: CameraLogItem[]\n measure: string\n}\n\nexport type CameraAuditLog = {\n id: number\n action: AuditLogActionType\n details: {\n error_body?: string\n exid: string\n id: number\n name: string\n reason?: string\n }\n insertedAt: DateType\n entity: string\n user_details: {\n ip: string\n country: string\n countryCode: string\n agent: string\n }\n who: string\n}\n\nexport type CameraAuditLogsQueryParams = PaginationParams & {\n from: string\n to: string\n action: AuditLogActionType[]\n}\n","import { CameraExid, DateType, PaginationParams, Schedule } from \"@/types\"\n\nexport type SnapshotExtractionQyeryParams = PaginationParams & {\n camera: string // search by camera name\n cameraExid: CameraExid\n status: SnapshotExtractionStatus\n}\n\nexport enum SnapshotExtractionStatus {\n Completed = \"completed\",\n Failed = \"failed\",\n Processing = \"processing\",\n}\n\nexport enum SnapshotExtractionType {\n Cloud = \"cloud\",\n Local = \"local\",\n Timelapse = \"timelapse\",\n}\n\nexport type SnapshotExtraction = {\n id: number\n cameraId: number\n cameraExid: CameraExid\n cameraName: string\n fromDate: DateType\n toDate: DateType\n type: SnapshotExtractionType\n notes: string\n status: SnapshotExtractionStatus\n interval: number\n requestor: string\n jpegsToDropbox: boolean\n injectTo_cr: Boolean\n schedule: Schedule\n created_at: DateType\n}\n\nexport type SnapshotTestPayload = {\n cameraExid?: CameraExid\n camUsername: string\n camPassword: string\n externalUrl: string\n jpgUrl: string\n}\n\nexport type SnapshotTestResponse = {\n status: string\n data: string\n}\n\nexport type DeleteSnapshotQueryParams = {\n fromDate: DateType\n toDate: DateType\n adminEmail: string\n adminFullname: string\n}\n","export enum SiteAnalyticsMode {\n Cranes = \"cranes\",\n Detections = \"detections\",\n Segments = \"segments\",\n}\n","import type { DateTime } from \"@evercam/api/types/time\"\nimport { VideoWallPresetItemConfig } from \"@evercam/api/types/videoWall\"\n\nexport enum DelayUnit {\n Minute = \"minute\",\n Hour = \"hour\",\n Day = \"day\",\n}\n\nexport enum CommonWidgetSettingsKeys {\n Width = \"width\",\n WidthResolution = \"resolution\",\n Height = \"height\",\n HeightResolution = \"heightResolution\",\n}\n\nexport enum RecordingsWidgetSettingsKeys {\n DarkMode = \"darkMode\",\n Calendar = \"calendar\",\n HasDelay = \"hasDelay\",\n Delay = \"delay\",\n DelayUnit = \"delayUnit\",\n HasRange = \"hasRange\",\n DateRange = \"dateRange\",\n Width = CommonWidgetSettingsKeys.Width,\n WidthResolution = CommonWidgetSettingsKeys.WidthResolution,\n Height = CommonWidgetSettingsKeys.Height,\n HeightResolution = CommonWidgetSettingsKeys.HeightResolution,\n}\n\nexport enum LiveViewWidgetSettingsKeys {\n Fullscreen = \"fullscreen\",\n Download = \"download\",\n Zoom = \"zoom\",\n Playpause = \"playpause\",\n Refresh = \"refresh\",\n Width = CommonWidgetSettingsKeys.Width,\n WidthResolution = CommonWidgetSettingsKeys.WidthResolution,\n Height = CommonWidgetSettingsKeys.Height,\n HeightResolution = CommonWidgetSettingsKeys.HeightResolution,\n}\n\nexport enum BimCompareWidgetSettingsKeys {\n Timeline = \"timeline\",\n Calendar = \"calendar\",\n DarkMode = \"darkMode\",\n Width = CommonWidgetSettingsKeys.Width,\n WidthResolution = CommonWidgetSettingsKeys.WidthResolution,\n Height = CommonWidgetSettingsKeys.Height,\n HeightResolution = CommonWidgetSettingsKeys.HeightResolution,\n}\n\nexport enum VideoWallWidgetSettingsKeys {\n Preset = \"preset\",\n RefreshRate = \"refreshRate\",\n Width = CommonWidgetSettingsKeys.Width,\n WidthResolution = CommonWidgetSettingsKeys.WidthResolution,\n Height = CommonWidgetSettingsKeys.Height,\n HeightResolution = CommonWidgetSettingsKeys.HeightResolution,\n}\n\nexport type CommonWidgetSettings = {\n width: number\n resolution: string\n height: number\n heightResolution: string\n}\n\nexport type RecordingsWidgetSettings = CommonWidgetSettings & {\n darkMode: boolean\n calendar: boolean\n hasDelay: boolean\n delay: number\n delayUnit: DelayUnit\n}\n\nexport type LiveViewWidgetSettings = CommonWidgetSettings & {\n fullscreen: boolean\n download: boolean\n zoom: boolean\n playpause: boolean\n refresh: number\n}\n\nexport type BimCompareWidgetSettings = CommonWidgetSettings & {\n timeline: boolean\n darkMode: boolean\n}\n\nexport type VideoWallWidgetSettings = CommonWidgetSettings & {\n preset: VideoWallPresetItemConfig\n refreshRate: number\n}\n\nexport type WidgetSettings =\n | RecordingsWidgetSettings\n | LiveViewWidgetSettings\n | BimCompareWidgetSettings\n | VideoWallWidgetSettings\n\nexport enum WidgetType {\n LiveWidget = \"Live View\",\n Recording = \"Recordings\",\n BimCompare = \"BIM Compare\",\n VideoWall = \"Video Wall\",\n}\n\nexport const RessourceByType = {\n camera: [WidgetType.LiveWidget, WidgetType.Recording, WidgetType.BimCompare],\n project: [WidgetType.VideoWall],\n}\n\nexport type WidgetsListRequestPayload = {\n userId: number\n projectId: number\n cameraId: number\n active: boolean\n settings: WidgetSettings\n widgetType: WidgetType\n isPublic: boolean\n allowedOrigin: string\n}\n\nexport type Widget = {\n id: number\n ressources: {\n camera?: {\n id: number\n exid: string\n name: string\n }\n project?: {\n id: number\n exid: string\n name: string\n }\n }\n widgetType: WidgetType\n settings: WidgetSettings\n allowedOrigin: string\n isPublic: boolean\n active: boolean\n user: {\n id: number\n email: string\n }\n insertedAt: DateTime\n updatedAt: DateTime\n}\n\nexport type WidgetFull = {\n id: number\n ressources: {\n camera?: {\n id: number\n exid: string\n name: string\n }\n project?: {\n id: number\n exid: string\n name: string\n }\n }\n widgetType: WidgetType\n widgetKey: string\n widgetId: string\n active: boolean\n user: {\n id: number\n email: string\n }\n settings: WidgetSettings\n sessionSettings: any\n allowedOrigin: string\n isPublic: boolean\n insertedAt: DateTime\n updatedAt: DateTime\n}\n\nexport type WidgetPayload = {\n ressources: {\n cameraId?: number\n projectId?: number\n }\n widgetType: WidgetType\n active: boolean\n settings: WidgetSettings\n isPublic: boolean\n allowedOrigin: string\n}\n","export enum CountryId {\n Andorra = 1,\n UnitedArabEmirates = 2,\n Afghanistan = 3,\n AntiguaAndBarbuda = 4,\n Anguilla = 5,\n Albania = 6,\n Armenia = 7,\n NetherlandsAntilles = 8,\n Angola = 9,\n Antarctica = 10,\n Argentina = 11,\n AmericanSamoa = 12,\n Austria = 13,\n Australia = 14,\n Aruba = 15,\n AlandIslands = 16,\n Azerbaijan = 17,\n BosniaAndHerzegovina = 18,\n Barbados = 19,\n Bangladesh = 20,\n Belgium = 21,\n BurkinaFaso = 22,\n Bulgaria = 23,\n Bahrain = 24,\n Burundi = 25,\n Benin = 26,\n Bermuda = 27,\n BruneiDarussalam = 28,\n Bolivia = 29,\n Brazil = 30,\n Bahamas = 31,\n Bhutan = 32,\n BouvetIsland = 33,\n Botswana = 34,\n Belarus = 35,\n Belize = 36,\n Canada = 37,\n CocosKeelingIslands = 38,\n CongoKinshasa = 39,\n CentralAfricanRepublic = 40,\n CongoBrazzaville = 41,\n Switzerland = 42,\n CoteDIvoire = 43,\n CookIslands = 44,\n Chile = 45,\n Cameroon = 46,\n China = 47,\n Colombia = 48,\n CostaRica = 49,\n Cuba = 50,\n CapeVerde = 51,\n ChristmasIsland = 52,\n Cyprus = 53,\n CzechRepublic = 54,\n Germany = 55,\n Djibouti = 56,\n Denmark = 57,\n Dominica = 58,\n DominicanRepublic = 59,\n Algeria = 60,\n Ecuador = 61,\n Estonia = 62,\n Egypt = 63,\n WesternSahara = 64,\n Eritrea = 65,\n Spain = 66,\n Ethiopia = 67,\n Finland = 68,\n Fiji = 69,\n FalklandIslands = 70,\n Micronesia = 71,\n FaroeIslands = 72,\n France = 73,\n Gabon = 74,\n UnitedKingdom = 75,\n Grenada = 76,\n Georgia = 77,\n FrenchGuiana = 78,\n Guernsey = 79,\n Ghana = 80,\n Gibraltar = 81,\n Greenland = 82,\n Gambia = 83,\n Guinea = 84,\n Guadeloupe = 85,\n EquatorialGuinea = 86,\n Greece = 87,\n SouthGeorgiaAndTheSouthSandwichIslands = 88,\n Guatemala = 89,\n Guam = 90,\n GuineaBissau = 91,\n Guyana = 92,\n HongKong = 93,\n HeardIslandAndMcDonaldIslands = 94,\n Honduras = 95,\n Croatia = 96,\n Haiti = 97,\n Hungary = 98,\n Indonesia = 99,\n Ireland = 100,\n Israel = 101,\n IsleOfMan = 102,\n India = 103,\n BritishIndianOceanTerritory = 104,\n Iraq = 105,\n Iran = 106,\n Iceland = 107,\n Italy = 108,\n Jersey = 109,\n Jamaica = 110,\n Jordan = 111,\n Japan = 112,\n Kenya = 113,\n Kyrgyzstan = 114,\n Cambodia = 115,\n Kiribati = 116,\n Comoros = 117,\n SaintKittsAndNevis = 118,\n NorthKorea = 119,\n SouthKorea = 120,\n Kuwait = 121,\n CaymanIslands = 122,\n Kazakhstan = 123,\n Laos = 124,\n Lebanon = 125,\n SaintLucia = 126,\n Liechtenstein = 127,\n SriLanka = 128,\n Liberia = 129,\n Lesotho = 130,\n Lithuania = 131,\n Luxembourg = 132,\n Latvia = 133,\n LibyanArabJamahiriya = 134,\n Morocco = 135,\n Monaco = 136,\n Moldova = 137,\n Montenegro = 138,\n Madagascar = 139,\n MarshallIslands = 140,\n Macedonia = 141,\n Mali = 142,\n Myanmar = 143,\n Mongolia = 144,\n Macao = 145,\n NorthernMarianaIslands = 146,\n Martinique = 147,\n Mauritania = 148,\n Montserrat = 149,\n Malta = 150,\n Mauritius = 151,\n Maldives = 152,\n Malawi = 153,\n Mexico = 154,\n Malaysia = 155,\n Mozambique = 156,\n Namibia = 157,\n NewCaledonia = 158,\n Niger = 159,\n NorfolkIsland = 160,\n Nigeria = 161,\n Nicaragua = 162,\n Netherlands = 163,\n Norway = 164,\n Nepal = 165,\n Nauru = 166,\n Niue = 167,\n NewZealand = 168,\n Oman = 169,\n Panama = 170,\n Peru = 171,\n FrenchPolynesia = 172,\n PapuaNewGuinea = 173,\n Philippines = 174,\n Pakistan = 175,\n Poland = 176,\n SaintPierreAndMiquelon = 177,\n Pitcairn = 178,\n PuertoRico = 179,\n PalestinianTerritory = 180,\n Portugal = 181,\n Palau = 182,\n Paraguay = 183,\n Qatar = 184,\n Reunion = 185,\n Romania = 186,\n Serbia = 187,\n RussianFederation = 188,\n Rwanda = 189,\n SaudiArabia = 190,\n SolomonIslands = 191,\n Seychelles = 192,\n Sudan = 193,\n Sweden = 194,\n Singapore = 195,\n SaintHelena = 196,\n Slovenia = 197,\n SvalbardAndJanMayen = 198,\n Slovakia = 199,\n SierraLeone = 200,\n SanMarino = 201,\n Senegal = 202,\n Somalia = 203,\n Suriname = 204,\n SaoTomeAndPrincipe = 205,\n ElSalvador = 206,\n SyrianArabRepublic = 207,\n Swaziland = 208,\n TurksAndCaicosIslands = 209,\n Chad = 210,\n FrenchSouthernTerritories = 211,\n Togo = 212,\n Thailand = 213,\n Tajikistan = 214,\n Tokelau = 215,\n TimorLeste = 216,\n Turkmenistan = 217,\n Tunisia = 218,\n Tonga = 219,\n Turkey = 220,\n TrinidadAndTobago = 221,\n Tuvalu = 222,\n Taiwan = 223,\n Tanzania = 224,\n Ukraine = 225,\n Uganda = 226,\n UnitedStatesMinorOutlyingIslands = 227,\n UnitedStates = 228,\n Uruguay = 229,\n Uzbekistan = 230,\n VaticanCityState = 231,\n SaintVincentAndTheGrenadines = 232,\n Venezuela = 233,\n VirginIslandsBritish = 234,\n VirginIslandsUS = 235,\n VietNam = 236,\n Vanuatu = 237,\n WallisAndFutuna = 238,\n Samoa = 239,\n Yemen = 240,\n Mayotte = 241,\n SouthAfrica = 242,\n Zambia = 243,\n Zimbabwe = 244,\n}\n\nexport enum CountryCode {\n Andorra = \"ad\",\n UnitedArabEmirates = \"ae\",\n Afghanistan = \"af\",\n AntiguaAndBarbuda = \"ag\",\n Anguilla = \"ai\",\n Albania = \"al\",\n Armenia = \"am\",\n NetherlandsAntilles = \"an\",\n Angola = \"ao\",\n Antarctica = \"aq\",\n Argentina = \"ar\",\n AmericanSamoa = \"as\",\n Austria = \"at\",\n Australia = \"au\",\n Aruba = \"aw\",\n AlandIslands = \"ax\",\n Azerbaijan = \"az\",\n BosniaAndHerzegovina = \"ba\",\n Barbados = \"bb\",\n Bangladesh = \"bd\",\n Belgium = \"be\",\n BurkinaFaso = \"bf\",\n Bulgaria = \"bg\",\n Bahrain = \"bh\",\n Burundi = \"bi\",\n Benin = \"bj\",\n Bermuda = \"bm\",\n BruneiDarussalam = \"bn\",\n Bolivia = \"bo\",\n Brazil = \"br\",\n Bahamas = \"bs\",\n Bhutan = \"bt\",\n BouvetIsland = \"bv\",\n Botswana = \"bw\",\n Belarus = \"by\",\n Belize = \"bz\",\n Canada = \"ca\",\n CocosKeelingIslands = \"cc\",\n CongoKinshasa = \"cd\",\n CentralAfricanRepublic = \"cf\",\n CongoBrazzaville = \"cg\",\n Switzerland = \"ch\",\n CoteDIvoire = \"ci\",\n CookIslands = \"ck\",\n Chile = \"cl\",\n Cameroon = \"cm\",\n China = \"cn\",\n Colombia = \"co\",\n CostaRica = \"cr\",\n Cuba = \"cu\",\n CapeVerde = \"cv\",\n ChristmasIsland = \"cx\",\n Cyprus = \"cy\",\n CzechRepublic = \"cz\",\n Germany = \"de\",\n Djibouti = \"dj\",\n Denmark = \"dk\",\n Dominica = \"dm\",\n DominicanRepublic = \"do\",\n Algeria = \"dz\",\n Ecuador = \"ec\",\n Estonia = \"ee\",\n Egypt = \"eg\",\n WesternSahara = \"eh\",\n Eritrea = \"er\",\n Spain = \"es\",\n Ethiopia = \"et\",\n Finland = \"fi\",\n Fiji = \"fj\",\n FalklandIslands = \"fk\",\n Micronesia = \"fm\",\n FaroeIslands = \"fo\",\n France = \"fr\",\n Gabon = \"ga\",\n UnitedKingdom = \"gb\",\n Grenada = \"gd\",\n Georgia = \"ge\",\n FrenchGuiana = \"gf\",\n Guernsey = \"gg\",\n Ghana = \"gh\",\n Gibraltar = \"gi\",\n Greenland = \"gl\",\n Gambia = \"gm\",\n Guinea = \"gn\",\n Guadeloupe = \"gp\",\n EquatorialGuinea = \"gq\",\n Greece = \"gr\",\n SouthGeorgiaAndTheSouthSandwichIslands = \"gs\",\n Guatemala = \"gt\",\n Guam = \"gu\",\n GuineaBissau = \"gw\",\n Guyana = \"gy\",\n HongKong = \"hk\",\n HeardIslandAndMcDonaldIslands = \"hm\",\n Honduras = \"hn\",\n Croatia = \"hr\",\n Haiti = \"ht\",\n Hungary = \"hu\",\n Indonesia = \"id\",\n Ireland = \"ie\",\n Israel = \"il\",\n IsleOfMan = \"im\",\n India = \"in\",\n BritishIndianOceanTerritory = \"io\",\n Iraq = \"iq\",\n Iran = \"ir\",\n Iceland = \"is\",\n Italy = \"it\",\n Jersey = \"je\",\n Jamaica = \"jm\",\n Jordan = \"jo\",\n Japan = \"jp\",\n Kenya = \"ke\",\n Kyrgyzstan = \"kg\",\n Cambodia = \"kh\",\n Kiribati = \"ki\",\n Comoros = \"km\",\n SaintKittsAndNevis = \"kn\",\n NorthKorea = \"kp\",\n SouthKorea = \"kr\",\n Kuwait = \"kw\",\n CaymanIslands = \"ky\",\n Kazakhstan = \"kz\",\n Laos = \"la\",\n Lebanon = \"lb\",\n SaintLucia = \"lc\",\n Liechtenstein = \"li\",\n SriLanka = \"lk\",\n Liberia = \"lr\",\n Lesotho = \"ls\",\n Lithuania = \"lt\",\n Luxembourg = \"lu\",\n Latvia = \"lv\",\n LibyanArabJamahiriya = \"ly\",\n Morocco = \"ma\",\n Monaco = \"mc\",\n Moldova = \"md\",\n Montenegro = \"me\",\n Madagascar = \"mg\",\n MarshallIslands = \"mh\",\n Macedonia = \"mk\",\n Mali = \"ml\",\n Myanmar = \"mm\",\n Mongolia = \"mn\",\n Macao = \"mo\",\n NorthernMarianaIslands = \"mp\",\n Martinique = \"mq\",\n Mauritania = \"mr\",\n Montserrat = \"ms\",\n Malta = \"mt\",\n Mauritius = \"mu\",\n Maldives = \"mv\",\n Malawi = \"mw\",\n Mexico = \"mx\",\n Malaysia = \"my\",\n Mozambique = \"mz\",\n Namibia = \"na\",\n NewCaledonia = \"nc\",\n Niger = \"ne\",\n NorfolkIsland = \"nf\",\n Nigeria = \"ng\",\n Nicaragua = \"ni\",\n Netherlands = \"nl\",\n Norway = \"no\",\n Nepal = \"np\",\n Nauru = \"nr\",\n Niue = \"nu\",\n NewZealand = \"nz\",\n Oman = \"om\",\n Panama = \"pa\",\n Peru = \"pe\",\n FrenchPolynesia = \"pf\",\n PapuaNewGuinea = \"pg\",\n Philippines = \"ph\",\n Pakistan = \"pk\",\n Poland = \"pl\",\n SaintPierreAndMiquelon = \"pm\",\n Pitcairn = \"pn\",\n PuertoRico = \"pr\",\n PalestinianTerritory = \"ps\",\n Portugal = \"pt\",\n Palau = \"pw\",\n Paraguay = \"py\",\n Qatar = \"qa\",\n Reunion = \"re\",\n Romania = \"ro\",\n Serbia = \"rs\",\n RussianFederation = \"ru\",\n Rwanda = \"rw\",\n SaudiArabia = \"sa\",\n SolomonIslands = \"sb\",\n Seychelles = \"sc\",\n Sudan = \"sd\",\n Sweden = \"se\",\n Singapore = \"sg\",\n SaintHelena = \"sh\",\n Slovenia = \"si\",\n SvalbardAndJanMayen = \"sj\",\n Slovakia = \"sk\",\n SierraLeone = \"sl\",\n SanMarino = \"sm\",\n Senegal = \"sn\",\n Somalia = \"so\",\n Suriname = \"sr\",\n SaoTomeAndPrincipe = \"st\",\n ElSalvador = \"sv\",\n SyrianArabRepublic = \"sy\",\n Swaziland = \"sz\",\n TurksAndCaicosIslands = \"tc\",\n Chad = \"td\",\n FrenchSouthernTerritories = \"tf\",\n Togo = \"tg\",\n Thailand = \"th\",\n Tajikistan = \"tj\",\n Tokelau = \"tk\",\n TimorLeste = \"tl\",\n Turkmenistan = \"tm\",\n Tunisia = \"tn\",\n Tonga = \"to\",\n Turkey = \"tr\",\n TrinidadAndTobago = \"tt\",\n Tuvalu = \"tv\",\n Taiwan = \"tw\",\n Tanzania = \"tz\",\n Ukraine = \"ua\",\n Uganda = \"ug\",\n UnitedStatesMinorOutlyingIslands = \"um\",\n UnitedStates = \"us\",\n Uruguay = \"uy\",\n Uzbekistan = \"uz\",\n VaticanCityState = \"va\",\n SaintVincentAndTheGrenadines = \"vc\",\n Venezuela = \"ve\",\n VirginIslandsBritish = \"vg\",\n VirginIslandsUS = \"vi\",\n VietNam = \"vn\",\n Vanuatu = \"vu\",\n WallisAndFutuna = \"wf\",\n Samoa = \"ws\",\n Yemen = \"ye\",\n Mayotte = \"yt\",\n SouthAfrica = \"za\",\n Zambia = \"zm\",\n Zimbabwe = \"zw\",\n}\n\nexport enum Region {\n Apac = \"apac\",\n Emea = \"emea\",\n Us = \"us\",\n Latam = \"latam\",\n Na = \"na\",\n}\n\nexport enum CameraRegion {\n APAC = \"apac\",\n AU = \"au\",\n EU = \"eu\",\n UK = \"uk\",\n IE = \"ie\",\n US = \"us\",\n}\n","import { Connector } from \"./connector\"\n\nexport enum AutomationProvider {\n Aconex = Connector.Aconex,\n Procore = Connector.Procore,\n Autodesk = Connector.Autodesk,\n Email = \"email\",\n}\n","import { ErrorType } from \"@evercam/api/types\"\n\nconst createErrorClass = (errorName: string) => {\n return class extends Error {\n constructor(error: unknown) {\n const e =\n error instanceof Error\n ? error\n : new Error(typeof error === \"string\" ? error : \"unknown\")\n super(e.message)\n this.name = errorName\n this.message = e.message\n this.stack = (e.stack || \"\").replace(/^Error: /, `${errorName}: `)\n }\n }\n}\n\nexport const BadRequestError = createErrorClass(ErrorType.BadRequestError)\nexport const NotFoundError = createErrorClass(ErrorType.NotFoundError)\nexport const UnauthorizedError = createErrorClass(ErrorType.UnauthorizedError)\nexport const GatewayTimeoutError = createErrorClass(\n ErrorType.GatewayTimeoutError\n)\nexport const BadGatewayError = createErrorClass(ErrorType.BadGatewayError)\nexport const ForbiddenError = createErrorClass(ErrorType.ForbiddenError)\nexport const HlsError = createErrorClass(ErrorType.HlsError)\nexport const SnapshotError = createErrorClass(ErrorType.SnapshotError)\nexport const ConflictError = createErrorClass(ErrorType.ConflictError)\nexport const InternalServerError = createErrorClass(\n ErrorType.InternalServerError\n)\n","import { camelizeKeys, decamelize, decamelizeKeys } from \"humps\"\nimport Axios, {\n type AxiosError,\n type AxiosRequestConfig,\n type AxiosResponse,\n} from \"axios\"\nimport type { AxiosEnvironment } from \"../../types\"\nimport {\n NotFoundError,\n BadRequestError,\n UnauthorizedError,\n BadGatewayError,\n GatewayTimeoutError,\n ForbiddenError,\n InternalServerError,\n ConflictError,\n} from \"./customErrors\"\nimport axios from \"axios\"\n\nlet numberOfRequestsSentInThePastSecond = 0\nconst maxRequestsPerSecond = 10\nconst requestsRateLimit = async () => {\n while (numberOfRequestsSentInThePastSecond === maxRequestsPerSecond) {\n await new Promise((r) => setTimeout(r, 1000))\n }\n numberOfRequestsSentInThePastSecond++\n\n setTimeout(() => {\n numberOfRequestsSentInThePastSecond--\n }, 1000)\n}\n\nexport const onRequest = async (\n request: AxiosRequestConfig,\n axiosEnv: AxiosEnvironment\n) => {\n if (request?.raw) {\n return request\n }\n\n if (request?.timing) {\n request._metadata = { startTime: performance.now() }\n }\n await requestsRateLimit()\n ensureBaseUrl(request, axiosEnv)\n addAuthTokenHeader(request, axiosEnv)\n if (\n axiosEnv.app === \"dashboard\" &&\n typeof document.referrer === \"string\" &&\n document.referrer.length !== 0\n ) {\n // @ts-expect-error - common type string | number | undefined\n request.headers.common[\"iframe-origin\"] = new URL(document.referrer).origin\n }\n\n if (!request.preserveCasing) {\n transformCamelCaseToSnakeCase(request)\n }\n\n return request\n}\n\nexport const onResponse = (response: AxiosResponse) => {\n if (response?.config?.raw) {\n return response\n }\n\n if (!(\"data\" in response)) {\n return response\n } else if (response.data instanceof Blob) {\n return response.data\n }\n\n const data = response?.config?.preserveCasing\n ? response.data\n : camelizeKeys(response.data)\n\n if (response?.config?.timing && response?.config?._metadata?.startTime) {\n const duration = performance.now() - response.config._metadata.startTime\n\n return {\n ...response,\n data: data,\n duration,\n }\n }\n\n return data\n}\n\nexport const onError = async (\n error: AxiosError,\n axiosEnv: AxiosEnvironment\n) => {\n if (error?.config?.timing && error?.config?._metadata?.startTime) {\n const duration = performance.now() - error.config._metadata.startTime\n\n return { error, duration }\n }\n const statusCode = error.response ? error.response.status : null\n const method = (error.config?.method || \"\").toUpperCase()\n const url = error.config?.url\n // @ts-expect-error - AxiosError has no response property\n const backendErrorCode = error?.response?.data?.code || \"\"\n\n let customError = {}\n let customMessage = error.message\n\n if (url && method && statusCode) {\n customMessage =\n `${method} ${url} (${statusCode}) ${backendErrorCode}`.trim()\n }\n switch (statusCode) {\n case 400:\n customError = new BadRequestError(new Error(customMessage))\n break\n case 401:\n customError = new UnauthorizedError(new Error(customMessage))\n break\n case 403:\n customError = new ForbiddenError(new Error(customMessage))\n break\n case 404:\n customError = new NotFoundError(new Error(customMessage))\n break\n case 409:\n customError = new ConflictError(new Error(customMessage))\n break\n case 500:\n customError = new InternalServerError(new Error(customMessage))\n break\n case 502:\n customError = new BadGatewayError(new Error(customMessage))\n break\n case 504:\n customError = new GatewayTimeoutError(new Error(customMessage))\n break\n case null: // null case\n case 0: // 0 case occurred when user has no internet connection\n customError = new Error(\n \"A network error occurred. This could be a CORS issue, a cancel request or a dropped internet connection.\"\n )\n break\n }\n const isCancelError = Axios.isCancel(error)\n\n if (isCancelError || statusCode === 404) {\n return Promise.reject(customError)\n }\n\n console.warn(\"[@evercam/api/axios.ts]: Caught error:\", error)\n\n const breadcrumbLogger = axiosEnv.errorLogger\n if (url && breadcrumbLogger) {\n breadcrumbLogger({\n // @ts-expect-error axios issue\n category: \"axios.info\",\n data: {\n url: `Error in URL: ${url}`,\n status: statusCode,\n },\n })\n }\n\n return Promise.reject(customError)\n}\n\nfunction addAuthTokenHeader(\n request: AxiosRequestConfig,\n axiosEnv: AxiosEnvironment\n) {\n // Add auth token header\n const JwtToken = axiosEnv?.getAuthToken!()\n if (JwtToken) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore (See https://github.com/axios/axios/issues/4193 )\n request.headers.common.Authorization = `Bearer ${JwtToken}`\n }\n}\n\nfunction ensureBaseUrl(\n request: AxiosRequestConfig,\n axiosEnv: AxiosEnvironment\n) {\n // Set baseURL if not already set\n if (!request.baseURL) {\n request.baseURL = axiosEnv?.baseUrl as string\n }\n}\n\nfunction transformCamelCaseToSnakeCase(\n request: AxiosRequestConfig<Record<string, any>>\n) {\n let paramsIgnoredCasing = {}\n let { data, params } = request\n\n if (\n data &&\n !(\n data instanceof Blob ||\n data instanceof FormData ||\n typeof data === \"string\"\n )\n ) {\n // Ignore casing transformation for some params when prompted using the `ignoreCasingFromParams` prop\n if (data?.ignoreCasingFromParams) {\n paramsIgnoredCasing =\n data.ignoreCasingFromParams.reduce(\n (acc: Record<string, any>, item: any) => ({\n ...acc,\n [item]: data![item],\n }),\n {}\n ) || {}\n delete data.ignoreCasingFromParams\n }\n if (Array.isArray(data)) {\n data = decamelizeKeys(data)\n } else {\n data = { ...decamelizeKeys(data), ...paramsIgnoredCasing }\n }\n }\n\n // Apply camelCase -> snake_cake on the request payload for FormData of instance of data\n if (data && data instanceof FormData) {\n let formData = new FormData()\n // @ts-ignore\n for (const [key, value] of data.entries()) {\n formData.append(decamelize(key), value)\n }\n data = formData\n }\n\n // Apply camelCase -> snake_cake on the request query params\n if (params && !(params instanceof Blob)) {\n params = decamelizeKeys(params)\n }\n\n request.data = data\n request.params = params\n}\n\nexport const OnRequestExpiredTokenInterceptor = async (\n request: AxiosRequestConfig,\n isTokenExpired: () => boolean,\n handler: () => Promise<void>\n) => {\n if (isTokenExpired()) {\n await handler()\n throw new axios.Cancel(\"Request canceled due to expired token\")\n }\n\n return request\n}\n","import Axios, { type CancelTokenSource } from \"axios\"\nimport type {\n ErrorInterceptor,\n ExtendedAxiosInstance,\n RequestInterceptor,\n ResponseInterceptor,\n} from \"@/types\"\nimport { onRequest, onResponse, onError } from \"./interceptors\"\n\nlet requestInterceptors: RequestInterceptor[] = []\nlet responseInterceptors: ResponseInterceptor[] = []\nlet errorInterceptors: ErrorInterceptor[] = []\n\ndeclare module \"axios\" {\n export interface AxiosRequestConfig {\n // Skip all request / response interceptors\n raw?: boolean\n\n // Skip the camelCase / snake_case transformations\n preserveCasing?: boolean\n\n // Measure the request duration (adds a field \"duration\" to the response)\n timing?: boolean\n\n // (readonly) Start time of the request (automatically set when timing == true)\n _metadata?: { startTime: number }\n }\n}\n\nconst axios = Axios.create({\n headers: {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore (See: https://github.com/axios/axios/issues/4193 )\n common: {\n Accept: \"application/json, text/plain, */*\",\n \"Content-Type\": \"application/json\",\n },\n },\n}) as ExtendedAxiosInstance\n\naxios.env = {}\n\naxios.addEnvironmentVariables = (vars: Record<string, any>) => {\n axios.env = { ...axios.env, ...vars }\n // log a warning if some values are null, undefined or no length only if localhost\n Object.entries(axios.env).forEach(([key, value]) => {\n if (\n (value === null ||\n value === undefined ||\n (typeof value === \"string\" && !value.length)) &&\n window.location.hostname.includes(\"localhost\")\n ) {\n console.warn(\n `AXIOS environment value for ${key} is ${value} - check your .env file.`\n )\n }\n })\n}\n\naxios.addRequestInterceptor = (\n requestInterceptor: RequestInterceptor,\n errorInterceptor?: ErrorInterceptor\n) => {\n requestInterceptors.push(requestInterceptor)\n if (errorInterceptor && !errorInterceptors.includes(errorInterceptor)) {\n errorInterceptors.push(errorInterceptor)\n }\n\n // Ensure we only set up the interceptors once to prevent duplicate calls\n // @ts-expect-error\n if (axios.interceptors.request.handlers.length === 0) {\n axios.interceptors.request.use(\n async (request) => {\n for (const interceptor of requestInterceptors) {\n request = await interceptor(request, axios.env)\n }\n\n return request\n },\n (error) => {\n for (const interceptor of errorInterceptors) {\n interceptor(error, axios.env)\n }\n }\n )\n }\n}\n\naxios.addResponseInterceptor = (\n responseInterceptor,\n errorInterceptor?: ErrorInterceptor\n) => {\n responseInterceptors.push(responseInterceptor)\n if (errorInterceptor && !errorInterceptors.includes(errorInterceptor)) {\n errorInterceptors.push(errorInterceptor)\n }\n\n // Ensure we only set up the interceptors once to prevent duplicate calls\n // @ts-expect-error\n if (axios.interceptors.response.handlers.length === 0) {\n axios.interceptors.response.use(\n async (response) => {\n for (const interceptor of responseInterceptors) {\n response = await interceptor(response, axios.env)\n }\n\n return response\n },\n (error) => {\n for (const interceptor of errorInterceptors) {\n interceptor(error, axios.env)\n }\n\n return Promise.reject(error)\n }\n )\n }\n}\n\n// Adds auth guards and applies cameraCase -> snake_case transforms on request payload & params\naxios.addRequestInterceptor(onRequest, onError)\n\n// Apply snake_case -> camelCase on incoming responses data\naxios.addResponseInterceptor(onResponse, onError)\n\nconst setHeader = (headerName: string, value: any) => {\n if (!value) {\n delete axios.defaults.headers.common[headerName]\n } else {\n axios.defaults.headers.common[headerName] = value\n }\n}\n\nconst setToken = (token: string) => {\n setHeader(\"Authorization\", token ? `Bearer ${token}` : null)\n}\n\naxios.CancelToken = Axios.CancelToken\naxios.isCancel = Axios.isCancel\naxios.setHeader = setHeader\naxios.setToken = setToken\n\nlet cancelTokens: CancelTokenSource[] = []\n\naxios.generateCancelTokenSource = () => axios.CancelToken.source()\naxios.addCancelToken = (token: CancelTokenSource) =>\n (cancelTokens = [token, ...cancelTokens])\naxios.resetCancelTokens = () => (cancelTokens = [])\naxios.cancelRequests = () => {\n if (cancelTokens.length) {\n cancelTokens.forEach((t) => {\n t.cancel(\"Operation canceled due to new request\")\n })\n axios.resetCancelTokens()\n }\n}\n\nexport { axios }\n","import { axios } from \"./client\"\nimport type {\n CamerasResponsePayload,\n CameraUpdateRequestPayload,\n PaginatedItems,\n AdminCamera,\n Project,\n Hdd,\n AdminUser,\n ProgressPhotosCreateUpdateRequestPayload,\n ProgressPhoto,\n Kit,\n PatchPayload,\n StorageServersResponsePayload,\n MediaFilterQueryParams,\n Media,\n MediaDeleteRequestPayload,\n AuditLogsParams,\n AuditLog,\n SnapshotExtractionQyeryParams,\n SnapshotExtraction,\n CameraCreateRequestPayload,\n CameraDeletePayload,\n SnapshotTestPayload,\n SnapshotTestResponse,\n DuplicatedCameraFields,\n DuplicatedCameraResponse,\n MergeDuplicatedCameraPayload,\n FetchCameraQueryParams,\n DeleteSnapshotQueryParams,\n SaveNotePayload,\n CameraNote,\n CreateCameraNotePayload,\n CompanyQueryParams,\n Company,\n CompanyUpdatePayload,\n SuppressionsQueryParams,\n Suppression,\n SnapshotExtractionType,\n PaginationParams,\n GateReportProject,\n KitQueryParams,\n KitCreatePayload,\n AdminKit,\n CameraLogsQueryParams,\n CameraLog,\n CameraAuditLogsQueryParams,\n CameraAuditLog,\n NvrQueryParams,\n Nvr,\n SiteVisitCamerasQueryParams,\n OfflineCameraQueryParams,\n OfflineCamera,\n OfflineCameraNoteResponse,\n UserStatsResponse,\n EntityStatsQueryParams,\n EntityStat,\n UserSession,\n UserCameraResponse,\n UserProjectResponse,\n ProjectUsers,\n ProjectCamera,\n ProjectsQueryParams,\n ProjectStatusStats,\n ProjectCreateRequestPayload,\n ProjectCreateResponse,\n ProjectUpdateRequestPayload,\n RouterQueryParams,\n Router,\n RouterCreatePayload,\n GlobalSearchQueryParams,\n CameraShareRequestsQueryParams,\n CameraShareRequest,\n CameraShareRequestPayload,\n ShareCreateResponsePayload,\n ShareQueryParams,\n AdminShare,\n SimCreateUpdatePayload,\n SimsQueryParams,\n Sim,\n SendSmsPayload,\n SendSmsResponse,\n SmsHistoryResponse,\n SmsQueryParams,\n Sms,\n ProgressPhotosQueryParams,\n ProgressPhotoItem,\n progressPhotosHistoryQueryParams,\n ProgressPhotosHistory,\n AdminUserUpdateRequestPayload,\n AdminQueryParams,\n Admin,\n ImpersonateUserResponse,\n AdminUserQueryParams,\n AdminCompareQueryParams,\n AdminCompare,\n NvrCreatePayload,\n} from \"@evercam/api/types\"\n\nimport { KitMetricId } from \"@evercam/api/types\"\n\nexport const AdminApi = {\n mediaHub: {\n getAllMedia(params: {\n params: Partial<MediaFilterQueryParams>\n }): Promise<PaginatedItems<Media>> {\n return axios.get(\"/admin/media-hub\", params)\n },\n deleteMedia(params: Partial<MediaDeleteRequestPayload>): Promise<void> {\n return axios.delete(\"/admin/media-hub\", { params })\n },\n },\n auditLogs: {\n getAuditLogs(params: {\n params: Partial<AuditLogsParams>\n }): Promise<PaginatedItems<AuditLog>[]> {\n return axios.get(\"/admin/audit-logs\", params)\n },\n },\n cameras: {\n getCamerasStats(params: {\n params: {\n email?: string\n }\n }): Promise<CamerasResponsePayload> {\n return axios.get(\"/admin/cameras/status-stats\", params)\n },\n rebootCamera(cameraId: string): Promise<{ message: string }> {\n return axios.post(`/admin/devices/camera/${cameraId}/reboot`)\n },\n focusCamera(\n cameraId: string,\n device: string\n ): Promise<{ message: string }> {\n return axios.post(`/admin/devices/${device}/${cameraId}/focus`)\n },\n getStorageServers(): Promise<StorageServersResponsePayload> {\n return axios.get(\"/admin/storage/servers\")\n },\n getStorageDetails() {\n return axios.get(\"/admin/storage\")\n },\n getSnapshotExtractions(params: {\n params: Partial<SnapshotExtractionQyeryParams>\n }): Promise<PaginatedItems<SnapshotExtraction>> {\n return axios.get(\"/admin/snapshot-extractions\", params)\n },\n createCameras(\n payload: CameraCreateRequestPayload\n ): Promise<{ cameras: [AdminCamera] }> {\n return axios.post(\"/admin/cameras\", payload)\n },\n deleteCamera(exid: string, payload: CameraDeletePayload): Promise<void> {\n return axios.post(`/admin/cameras/${exid}/delete`, payload)\n },\n testSnapshot(payload: SnapshotTestPayload): Promise<SnapshotTestResponse> {\n return axios.post(\"/admin/cameras/test-snapshot\", payload)\n },\n getDuplicateCameras(params: {\n params: {\n fields?: DuplicatedCameraFields[]\n sort?: string\n }\n }): Promise<PaginatedItems<DuplicatedCameraResponse>> {\n return axios.get(\"/admin/duplicate-cameras\", params)\n },\n mergeDuplicateCameras(\n payload: MergeDuplicatedCameraPayload\n ): Promise<{ success: boolean }> {\n return axios.post(\"/admin/merge-cameras\", payload)\n },\n getCameras(params: {\n params: Partial<FetchCameraQueryParams>\n }): Promise<PaginatedItems<AdminCamera>> {\n return axios.get(\"/admin/cameras\", params)\n },\n getCompares(params: {\n params: AdminCompareQueryParams\n }): Promise<PaginatedItems<AdminCompare[]>> {\n return axios.get(\"/admin/compares\", params)\n },\n getCameraDetails(exid: string): Promise<AdminCamera> {\n return axios.get(`/admin/cameras/${exid}`)\n },\n deleteSnapshots(\n cameraId: string,\n params: DeleteSnapshotQueryParams\n ): Promise<void> {\n return axios.delete(`admin/cameras/${cameraId}/snapshots`, {\n params,\n })\n },\n refreshDeviceSettings(cameraId: string): Promise<void> {\n return axios.post(\n `/admin/cameras/${cameraId}/device-settings/refresh`,\n {}\n )\n },\n // (Azhar) Old save note code will be remove once we migrate all old saved camera notes\n saveNote(cameraId: string, params: SaveNotePayload): Promise<CameraNote> {\n return axios.post(`/admin/cameras/${cameraId}/save-note`, params)\n },\n saveCameraNote(\n cameraId: string,\n params: CreateCameraNotePayload\n ): Promise<{ message: string }> {\n return axios.post(`/admin/cameras/${cameraId}/note`, params)\n },\n update(\n cameraId: string,\n params: CameraUpdateRequestPayload\n ): Promise<CamerasResponsePayload> {\n return axios.patch(`/admin/cameras/${cameraId}`, params)\n },\n },\n companies: {\n getCompanies(params: {\n params: Partial<CompanyQueryParams>\n }): Promise<PaginatedItems<Company[]>> {\n return axios.get(\"/admin/companies\", params)\n },\n updateCompany(\n id: string,\n params: CompanyUpdatePayload\n ): Promise<Omit<CompanyUpdatePayload, \"linkedinUrl\">> {\n return axios.patch(`/admin/companies/${id}`, params)\n },\n deleteCompany(params: {\n ids: string | string[]\n }): Promise<{ success: true }> {\n return axios.delete(\"/admin/companies\", { params })\n },\n reSyncCompanies(params: {\n companyIds: string[]\n }): Promise<{ success: true }> {\n return axios.post(\"/admin/companies/resync\", params)\n },\n },\n emailing: {\n performEmailing(template: string, params: Record<string, unknown>) {\n return axios.post(`/admin/mailing/${template}`, params)\n },\n suppressions(params: {\n params: SuppressionsQueryParams\n }): Promise<PaginatedItems<Suppression[]>> {\n return axios.get(\"/admin/mailing/suppressions\", params)\n },\n deleteSuppression(id: number): Promise<void> {\n return axios.delete(`/admin/mailing/suppressions/${id}`)\n },\n },\n extractions: {\n updateCloudRecordings(cameraId: string, params: Record<string, unknown>) {\n return axios.post(`/admin/cameras/${cameraId}/cloud-recordings`, params)\n },\n addExtraction(\n cameraId: string,\n params: SnapshotExtractionQyeryParams\n ): Promise<PaginatedItems<SnapshotExtraction>> {\n return axios.post(`admin/cameras/${cameraId}/extractions`, params)\n },\n getExtractionStatus(\n cameraId: string,\n extractionId: number,\n params: {\n type: SnapshotExtractionType\n }\n ): Promise<{ status: string; jpegs: number }> {\n return axios.get(\n `admin/cameras/${cameraId}/extractions/${extractionId}`,\n {\n params,\n }\n )\n },\n deleteSnapshotExtraction(\n cameraId: string,\n extractionId: number,\n params: {\n type: SnapshotExtractionType\n }\n ): Promise<void> {\n return axios.delete(\n `admin/cameras/${cameraId}/extractions/${extractionId}`,\n {\n params,\n }\n )\n },\n },\n gateReport: {\n getGateReportProjects(params: {\n params: PaginationParams\n }): Promise<PaginatedItems<GateReportProject[]>> {\n return axios.get(\"/admin/gate-report\", params)\n },\n getGateReportProject(projectExid: string): Promise<Project> {\n return axios.get(`/admin/projects/${projectExid}`)\n },\n },\n kits: {\n getAllKits(params: {\n params: KitQueryParams\n }): Promise<PaginatedItems<Kit[]>> {\n return axios.get(\"/admin/kits\", params)\n },\n async getKit(kitId: number): Promise<Kit> {\n return axios.get(`/admin/kits/${kitId}`)\n },\n createKit(params: KitCreatePayload): Promise<AdminKit> {\n return axios.post(\"/admin/kits\", params)\n },\n updateKit(id: string, params: PatchPayload<Kit>) {\n return axios.patch(`/admin/kits/${id}`, params)\n },\n deleteKit(id: string, params: Record<string, unknown>) {\n return axios.delete(`/admin/kits/${id}`, { params })\n },\n getKitStats({\n kitId,\n metric,\n fromDate,\n toDate,\n }: {\n kitId: number\n metric: KitMetricId\n fromDate: string\n toDate: string\n }) {\n return axios.get(`/admin/kits/${kitId}/stats/${metric}`, {\n params: {\n fromDate,\n toDate,\n },\n })\n },\n },\n logs: {\n getAllCamerasStatusLogs(params: {\n params: CameraLogsQueryParams\n }): Promise<{ data: CameraLog[] }> {\n return axios.get(\"/admin/cameras-logs\", params)\n },\n getCameraLogs(\n cameraId: string,\n payload: {\n params: CameraAuditLogsQueryParams\n }\n ): Promise<PaginatedItems<CameraAuditLog[]>> {\n return axios.get(`/admin/cameras/${cameraId}/audit-logs`, payload)\n },\n togglePinNote(id: string): Promise<PaginatedItems<CameraAuditLog[]>> {\n return axios.patch(`/admin/audit-logs/${id}/toggle-pin`)\n },\n },\n nvrs: {\n getNvrs(params: {\n params: NvrQueryParams\n }): Promise<PaginatedItems<Nvr[]>> {\n return axios.get(\"/admin/nvrs\", params)\n },\n createNvr(params: NvrCreatePayload) {\n return axios.post(\"/admin/nvrs\", params)\n },\n updateNvr(id: string, params: PatchPayload<Nvr>) {\n return axios.patch(`/admin/nvrs/${id}`, params)\n },\n rebootNVR(cameraId: string): Promise<{ message: string }> {\n return axios.post(`/admin/devices/nvr/${cameraId}/reboot`)\n },\n },\n offlineCameras: {\n getSiteVisitCameras(params: {\n params: Partial<SiteVisitCamerasQueryParams>\n }): Promise<PaginatedItems<AdminCamera>> {\n return axios.get(\"/admin/site-visit-cameras\", params)\n },\n getOfflineCameras(params: {\n params: Partial<OfflineCameraQueryParams>\n }): Promise<PaginatedItems<OfflineCamera>> {\n return axios.get(\"/admin/offline-cameras\", params)\n },\n getOfflineCamerasLastNote(params: {\n cameraIds: number[]\n }): Promise<OfflineCameraNoteResponse> {\n return axios.get(\"/admin/offline-cameras/notes\", { params: params })\n },\n },\n pa: {\n getPAUser(\n id: number,\n params: Record<string, unknown>\n ): Promise<UserStatsResponse> {\n return axios.get(\n `/admin/users/${id}${\"with_zoho\" in params ? \"?with_zoho\" : \"\"}`\n )\n },\n getPAProjectPeriodEvents(\n id: string | number,\n payload: EntityStatsQueryParams\n ): Promise<EntityStat[]> {\n return axios.get(`/admin/projects/${id}/stats`, { params: payload })\n },\n getPAUserEvents(id: string | number): Promise<UserSession[]> {\n return axios.get(`/admin/users/${id}/events`)\n },\n getPAUserCameras(id: number): Promise<UserCameraResponse> {\n return axios.get(`/admin/users/${id}/cameras`)\n },\n getPAUserProjects(id: number): Promise<UserProjectResponse> {\n return axios.get(`/admin/users/${id}/projects`)\n },\n getPAUserPeriodEvents(\n id: number,\n payload: EntityStatsQueryParams\n ): Promise<EntityStat[]> {\n return axios.get(`/admin/users/${id}/stats`, { params: payload })\n },\n getProjectUsers(id: string): Promise<ProjectUsers> {\n return axios.get(`/admin/projects/${id}/users`)\n },\n getPAProject(\n id: string,\n params: Record<string, unknown>\n ): Promise<{ data: Project }> {\n return axios.get(\n `/admin/projects/${id}${\"with_zoho\" in params ? \"?with_zoho\" : \"\"}`\n )\n },\n getPAProjectCameras(id: string): Promise<{ data: ProjectCamera[] }> {\n return axios.get(`/admin/projects/${id}/cameras`)\n },\n },\n projects: {\n getAll(params: {\n params: Partial<ProjectsQueryParams>\n }): Promise<PaginatedItems<Project>> {\n return axios.get(\"/admin/projects\", params)\n },\n getProject(exid: string): Promise<Project> {\n return axios.get(`/admin/projects/${exid}`)\n },\n getProjectsStats(): Promise<ProjectStatusStats> {\n return axios.get(\"/admin/projects/status-stats\")\n },\n createProject(\n params: ProjectCreateRequestPayload\n ): Promise<ProjectCreateResponse> {\n return axios.post(\"/admin/projects\", params)\n },\n updateProject(\n projectExid: string,\n params: Partial<ProjectUpdateRequestPayload>\n ): Promise<ProjectCreateResponse> {\n return axios.put(`/admin/projects/${projectExid}`, params)\n },\n deleteProject(projectExid: string): Promise<{ success: boolean }> {\n return axios.delete(`/admin/projects/${projectExid}`)\n },\n addToProject(\n projectExid: string,\n params: { cameraExids: string[] }\n ): Promise<void> {\n return axios.post(`/admin/projects/${projectExid}/add-cameras`, params)\n },\n },\n routers: {\n getRouters(params: {\n params: Partial<RouterQueryParams>\n }): Promise<PaginatedItems<Router[]>> {\n return axios.get(\"/admin/routers\", params)\n },\n getRouterTypes(): Promise<string[]> {\n return axios.get(\"/admin/router-types\")\n },\n createRouter(params: RouterCreatePayload): Promise<{ routerId: number }> {\n return axios.post(\"/admin/routers\", params)\n },\n updateRouter(\n id: number,\n params: RouterCreatePayload\n ): Promise<{ success: boolean }> {\n return axios.patch(`/admin/routers/${id}`, params)\n },\n deleteRouter(id: number): Promise<void> {\n return axios.delete(`/admin/routers/${id}`)\n },\n getRouter(id: number): Promise<Router> {\n return axios.get(`/admin/routers/${id}`)\n },\n },\n search: {\n search(params: {\n params: GlobalSearchQueryParams\n }): Promise<PaginatedItems<Record<string, unknown>>> {\n return axios.get(\"/admin/search\", params)\n },\n },\n hdds: {\n getHdds(payload: { projectId: string; companyId: string }): Promise<Hdd[]> {\n return axios.get(\"/admin/hdds\", { params: payload })\n },\n },\n shareRequests: {\n getShareRequests(params: {\n params: Partial<CameraShareRequestsQueryParams>\n }): Promise<PaginatedItems<CameraShareRequest[]>> {\n return axios.get(\"/admin/camera-share-requests\", params)\n },\n deleteShareRequest(params: {\n ids: number[]\n }): Promise<{ success: boolean }> {\n return axios.delete(\"/admin/camera-share-requests\", { params: params })\n },\n updateShareRequestStatus(params: {\n ids: number[]\n status: string\n }): Promise<{ success: boolean }> {\n return axios.patch(\"/admin/camera-share-requests\", params)\n },\n },\n shares: {\n createShares(\n cameraExid: string,\n payload: CameraShareRequestPayload\n ): Promise<ShareCreateResponsePayload> {\n return axios.post(`/admin/cameras/${cameraExid}/shares`, payload)\n },\n getShares(params: {\n params: Partial<ShareQueryParams>\n }): Promise<PaginatedItems<AdminShare[]>> {\n return axios.get(\"/admin/camera-shares\", params)\n },\n deleteShares(ids: number[]): Promise<void> {\n return axios.delete(\"/admin/camera-shares\", { params: ids })\n },\n },\n sims: {\n deleteSim(simId: number): Promise<{ deleted: boolean }> {\n return axios.delete(`/admin/sims/${simId}`)\n },\n createSim(\n params: Omit<SimCreateUpdatePayload, \"cameraId\">\n ): Promise<{ success: boolean }> {\n return axios.post(\"/admin/sims\", params)\n },\n updateSim(\n simId: number,\n params: CameraShareRequestPayload\n ): Promise<{ success: boolean }> {\n return axios.patch(`/admin/sims/${simId}`, params)\n },\n getSims(params: {\n params: Partial<SimsQueryParams>\n }): Promise<PaginatedItems<Sim[]>> {\n return axios.get(\"/admin/sims\", params)\n },\n getSimProviders() {\n return axios.get(\"/admin/sim-providers\")\n },\n getBillPayers() {\n return axios.get(\"/admin/sims/bill-payers\")\n },\n },\n sms: {\n sendSms(number: string, params: SendSmsPayload): Promise<SendSmsResponse> {\n return axios.post(`/admin/sims/${number}/sms`, params)\n },\n getSimHistory(number: string): Promise<SmsHistoryResponse> {\n return axios.get(`/admin/sims/${number}/sms`)\n },\n getSms(params: {\n params: Partial<SmsQueryParams>\n }): Promise<PaginatedItems<Sms[]>> {\n return axios.get(\"/admin/sms\", params)\n },\n },\n progressPhotos: {\n getProgressPhotos(params: {\n params: Partial<ProgressPhotosQueryParams>\n }): Promise<PaginatedItems<ProgressPhotoItem[]>> {\n return axios.get(\"/admin/progress-photos\", params)\n },\n getProgressPhotosHistory(params: {\n params: Partial<progressPhotosHistoryQueryParams>\n }): Promise<ProgressPhotosHistory> {\n return axios.get(\"/admin/progress-photos/history\", params)\n },\n getProgressPhotoTemplate({\n id,\n }: {\n id: string\n }): Promise<{ progressPhoto: string }> {\n return axios.get(`/admin/progress-photos/history/${id}/email`)\n },\n update(\n id: string,\n payload: ProgressPhotosCreateUpdateRequestPayload\n ): Promise<ProgressPhoto> {\n return axios.patch(`/admin/progress-photos/${id}`, payload)\n },\n },\n users: {\n updateUser(\n id: number,\n params: Partial<AdminUserUpdateRequestPayload>\n ): Promise<AdminUser> {\n return axios.put(`/admin/users/${id}`, params)\n },\n getAdmins(params: {\n params: Partial<AdminQueryParams>\n }): Promise<PaginatedItems<Admin[]>> {\n return axios.get(\"/admin\", params)\n },\n deleteAdmin(email: string): Promise<void | { message: string }> {\n return axios.put(`/admin/users/${email}/revoke-admin`)\n },\n makeAdmin(email: string): Promise<void | { message: string }> {\n return axios.put(`/admin/users/${email}/grant-admin`)\n },\n deleteUser(\n email: string,\n params: { verifyEmail: string }\n ): Promise<void | { message: string }> {\n return axios.post(`/users/${email}/delete`, params)\n },\n impersonateUser(email: string): Promise<ImpersonateUserResponse> {\n return axios.post(`/admin/users/${email}/impersonate`)\n },\n getUsers(params: {\n params: Partial<AdminUserQueryParams>\n }): Promise<PaginatedItems<AdminUser>> {\n return axios.get(\"/admin/users\", params)\n },\n getUserPasswordResetLink(\n email: string\n ): Promise<{ passwordResetLink: string }> {\n return axios.post(`/admin/users/${email}/password/reset`)\n },\n },\n}\n","import { axios } from \"./client\"\nimport { VideoWallPreset } from \"@evercam/api/types\"\n\nexport const VideoWallApi = {\n presets: {\n getProjectPresets(email: string, projectId: number) {\n const encodedEmail = btoa(email)\n\n return axios.get(\n `${axios.env.firebaseVideowallUrl}/${encodedEmail}/presets/${projectId}.json`,\n {\n transformRequest: (data, headers) => {\n // @ts-expect-error - common type string | number | undefined\n delete headers.common[\"Authorization\"]\n\n return data\n },\n }\n )\n },\n saveProjectPreset(\n email: string,\n projectId: string,\n payload: Record<string, unknown>\n ) {\n const preset = JSON.stringify({ configuration: payload.configuration })\n const presetName = payload.name\n const encodedEmail = btoa(email)\n\n return axios.patch(\n `${axios.env.firebaseVideowallUrl}/${encodedEmail}/presets/${projectId}/${presetName}.json`,\n preset,\n {\n transformRequest: (data, headers) => {\n // @ts-expect-error - common type string | number | undefined\n delete headers.common[\"Authorization\"]\n\n return data\n },\n }\n )\n },\n getGlobalPreset(email: string): Promise<VideoWallPreset> {\n const encodedEmail = btoa(email)\n\n return axios.get(\n `${axios.env.firebaseVideowallUrl}/${encodedEmail}/presets/global.json`,\n {\n transformRequest: (data, headers) => {\n // @ts-expect-error - common type string | number | undefined\n delete headers.common[\"Authorization\"]\n\n return data\n },\n }\n )\n },\n saveGlobalPreset(email: string, payload: VideoWallPreset): Promise<void> {\n const preset = JSON.stringify({ configuration: payload.configuration })\n const encodedEmail = btoa(email)\n\n return axios.patch(\n `${axios.env.firebaseVideowallUrl}/${encodedEmail}/presets/global.json`,\n preset,\n {\n transformRequest: (data, headers) => {\n // @ts-expect-error - common type string | number | undefined\n delete headers.common[\"Authorization\"]\n\n return data\n },\n }\n )\n },\n },\n}\n","import { axios } from \"./client\"\nimport {\n _360ProjectJsonResponse,\n DroneProjectJsonResponse,\n ProjectExid,\n} from \"@evercam/api/types\"\n\nexport const _3dFirebaseApi = {\n drone: {\n getProjectInfo(\n projectExid: ProjectExid\n ): Promise<DroneProjectJsonResponse> {\n return fetch(\n `${axios.env.firebaseDbLink}data/projects/cesium/${projectExid}.json`\n ).then((res) => res.json())\n },\n },\n _360: {\n getProjectInfo(projectExid: ProjectExid): Promise<_360ProjectJsonResponse> {\n return fetch(\n `${axios.env.firebaseDbLink}data/projects/360/${projectExid}.json`\n ).then((res) => res.json())\n },\n },\n}\n","import { decamelizeKeys } from \"humps\"\n\nexport type Falsy = \"\" | null | undefined | false\n\nexport interface QueryParams {\n [k: string]: string | number | boolean | string[] | Falsy\n}\n\nexport const toQueryString = <T extends Record<string, unknown>>(\n paramsObject: T | QueryParams = {},\n { forceSnakeCase = true, forceArrayBrackets = false } = {}\n) => {\n if (Object.keys(paramsObject).length === 0) {\n return\n }\n let params = { ...paramsObject }\n if (forceSnakeCase) {\n params = decamelizeKeys(paramsObject) as QueryParams\n }\n\n return Object.entries(params).reduce((acc, [param, value], index) => {\n let encodedParam = \"\"\n if (\n [\"\", null, undefined]?.includes(value as string | null | undefined) ||\n (Array.isArray(value) && value.length === 0)\n ) {\n return acc\n } else if (value && typeof value === \"object\") {\n encodedParam = Object.entries(value).reduce((_acc, [key, v], i) => {\n let paramName = param\n if (isNaN(Number.parseInt(key))) {\n paramName = `${param}[${key}]`\n } else if (Array.isArray(value) && forceArrayBrackets) {\n paramName = `${param}[]`\n }\n\n return `${_acc}${i > 0 ? \"&\" : \"\"}${paramName}=${encodeURIComponent(v)}`\n }, \"\")\n } else {\n encodedParam = `${param}=${encodeURIComponent(\n value as string | number | boolean\n )}`\n }\n\n return `${acc}${index > 0 ? \"&\" : \"\"}${encodedParam}`\n }, \"\")\n}\n\nexport function queryStringToObject(queryString = \"\"): QueryParams {\n const entries = [\n ...new URLSearchParams(\n queryString.indexOf(\"#\") > -1 ? queryString.split(\"#\")[0] : queryString\n ).entries(),\n ].filter(([, value]) => value)\n\n return entries.reduce<QueryParams>((acc, [key, value]) => {\n const isSingleParam =\n (queryString.match(new RegExp(`${key}=`, \"g\")) || []).length <= 1\n if (isSingleParam) {\n return { ...acc, [key]: value }\n }\n\n if (acc[key]) {\n return {\n ...acc,\n [key]: [...(acc[key] as string[]), value],\n }\n }\n\n return { ...acc, [key]: [value] }\n }, {})\n}\n","import { axios } from \"./client\"\nimport { toQueryString } from \"../utils\"\nimport type {\n AnprQueryParams,\n AnprEvent,\n EventCountRequestPayload,\n EventCountResponsePayload,\n EventsExportRequestParameters,\n EventsRequestPayload,\n EventsResponsePayload,\n GateReportROI,\n PaginatedItems,\n GateReportVerifiedDay,\n ProjectExid,\n CameraExid,\n AnprCountsQueryParams,\n AnprCount,\n AnprBasedGateReportExportRequestParams,\n GateReportResponsePayload,\n GatReportRequestPayload,\n AnalyticsParameters,\n VerifiedDaysQueryParams,\n EventUpdateRequestPayload,\n VerifyDayUpdateRequestPayload,\n ProcessedDaysQueryParams,\n GateReportEventType,\n DateTime,\n RoisQueryParams,\n GateReportROICreateRequestPayload,\n SegmentsSimilaritySearchParams,\n} from \"@evercam/api/types\"\nimport type { AxiosPromise, AxiosRequestConfig } from \"axios\"\nimport { VEHICLE_TYPE_IDS } from \"@evercam/api/types\"\n\nexport const getAiApiUrl = () => {\n if (axios.env.isStaging) {\n return axios.env.stagingAiApiUrl\n }\n\n return axios.env.aiApiUrl\n}\n\nexport const AiApi = {\n analyticsParameters: {\n getParameters(\n cameraId: CameraExid,\n params: Record<string, unknown> = {}\n ): Promise<AnalyticsParameters> {\n return axios.get(\n `${getAiApiUrl()}/cameras/${cameraId}/analytics-parameters`,\n {\n params,\n }\n )\n },\n createParameters(\n params: Omit<AnalyticsParameters, \"id\">\n ): Promise<AnalyticsParameters> {\n return axios.post(`${getAiApiUrl()}/cameras/analytics-parameters`, params)\n },\n updateParameters({\n updatedBy,\n id,\n ...payload\n }: Partial<AnalyticsParameters> & {\n updatedBy: string\n }): Promise<AnalyticsParameters> {\n return axios.patch(\n `${getAiApiUrl()}/cameras/analytics-parameters/${id}?${toQueryString({\n updatedBy,\n })}`,\n payload\n )\n },\n },\n anpr: {\n exportAnprLegacyEvents(projectExid: ProjectExid, params: AnprQueryParams) {\n return axios({\n url: `${getAiApiUrl()}/projects/${projectExid}/anpr/export?${toQueryString(\n params\n )}`,\n method: \"GET\",\n responseType: \"blob\",\n })\n },\n getAnprEvents(\n projectExid: ProjectExid,\n params: AnprQueryParams\n ): Promise<PaginatedItems<AnprEvent>> {\n return axios.get(\n `${getAiApiUrl()}/projects/${projectExid}/anpr?${toQueryString(params)}`\n )\n },\n getAnprCounts(\n projectExid: ProjectExid,\n payload: AnprCountsQueryParams\n ): Promise<AnprCount[]> {\n return axios.get(\n `${getAiApiUrl()}/projects/${projectExid}/anpr/counts?${toQueryString(\n payload\n )}`\n )\n },\n updateAnprEvent(anprEventId: string, eventBody: Record<string, unknown>) {\n return axios.patch(`${getAiApiUrl()}/projects/anpr/${anprEventId}`, {\n ...eventBody,\n })\n },\n bulkUpdateAnprRecords(\n anprEventsIds: number[],\n action: \"is_plate\" | \"not_plate\" | \"is_duplicate\" | \"not_duplicate\"\n ) {\n return axios.patch(\n `${getAiApiUrl()}/projects/anpr/update/status?${toQueryString({\n anprEventsIds,\n action,\n })}`\n )\n },\n exportAnprEvents(\n projectExid: string,\n params: AnprBasedGateReportExportRequestParams\n ): AxiosPromise<string> {\n return axios({\n url: `${getAiApiUrl()}/projects/${projectExid}/anpr/events/export?${toQueryString<AnprBasedGateReportExportRequestParams>(\n params\n )}`,\n method: \"GET\",\n responseType: \"blob\",\n })\n },\n },\n gateReport: {\n getGateReportProjects(params: Record<string, unknown>) {\n return axios.get(\n `${getAiApiUrl()}/projects/gate-report/get-projects-data`,\n params\n )\n },\n getLastVerified(params: Record<string, unknown>) {\n return axios.get(\n `${getAiApiUrl()}/projects/gate-report/last-verified`,\n params\n )\n },\n deleteEvent(id: number, params: Record<string, unknown>) {\n return axios.delete(\n `${getAiApiUrl()}/projects/events/${id}?${toQueryString(params)}`\n )\n },\n dismissEvents(params: Record<string, unknown>) {\n return axios.delete(\n `${getAiApiUrl()}/projects/events?${toQueryString(params)}`\n )\n },\n exportEvents(projectExid: string, params: EventsExportRequestParameters) {\n return axios({\n url: `${getAiApiUrl()}/projects/${projectExid}/gate-report/events/export?${toQueryString<EventsExportRequestParameters>(\n params\n )}`,\n method: \"GET\",\n responseType: \"blob\",\n })\n },\n exportEventsProgress(projectExid: string, params: { exportDate: string }) {\n return axios.get(\n `${getAiApiUrl()}/projects/${projectExid}/gate-report/events/export/progress?${toQueryString(\n params\n )}`\n )\n },\n getAllEvents(\n projectExid: ProjectExid,\n params: EventsRequestPayload,\n extraParams?: AxiosRequestConfig\n ): Promise<EventsResponsePayload> {\n if (!params.vehicleTypes) {\n params.vehicleTypes = VEHICLE_TYPE_IDS\n }\n if (!params.truckTypes) {\n params.vehicleTypes = VEHICLE_TYPE_IDS\n }\n if (!params.camerasExid) {\n params.camerasExid = params.cameras\n }\n\n return axios.get(\n `${getAiApiUrl()}/projects/${projectExid}/events?${toQueryString(\n params\n )}`,\n extraParams\n )\n },\n getEventCounts(\n projectExid: string,\n payload: EventCountRequestPayload = {},\n extraParams?: AxiosRequestConfig\n ): Promise<EventCountResponsePayload> {\n if (!payload.vehicleTypes) {\n payload.vehicleTypes = VEHICLE_TYPE_IDS\n }\n\n return axios.get(\n `${getAiApiUrl()}/projects/${projectExid}/project-stats?${toQueryString(\n payload\n )}`,\n {\n ...(extraParams || {}),\n }\n )\n },\n getVerifiedDays(\n projectExid: ProjectExid,\n params: Partial<VerifiedDaysQueryParams>,\n extraParams = {}\n ): Promise<PaginatedItems<GateReportVerifiedDay>> {\n return axios.get(\n `${getAiApiUrl()}/projects/${projectExid}/gate-report/verified-days?${toQueryString(\n params\n )}`,\n extraParams\n )\n },\n updateEventById(\n eventId: number,\n {\n updatedBy,\n payload,\n }: {\n updatedBy: string\n payload: Partial<EventUpdateRequestPayload>\n }\n ) {\n return axios.patch(\n `${getAiApiUrl()}/projects/events/${eventId}?${toQueryString({\n updatedBy,\n })}`,\n payload\n )\n },\n verifyDay(params: VerifyDayUpdateRequestPayload) {\n return axios.post(\n `${getAiApiUrl()}/projects/gate-report/verified-days`,\n params\n )\n },\n regenerateThumbnail(id: number, params: { cameraExid: string }) {\n return axios.put(\n `${getAiApiUrl()}/projects/gate-report/event-thumbnail/render/${id}?${toQueryString(\n params\n )}`,\n {\n method: \"PUT\",\n }\n )\n },\n getDailyStatus(\n projectExid: string,\n params: Partial<ProcessedDaysQueryParams> = {}\n ) {\n return axios.get(\n `${getAiApiUrl()}/projects/${projectExid}/processed-days`,\n { params }\n )\n },\n getEventThumbnail({\n cameraExid,\n eventType,\n eventTime,\n token,\n }: {\n cameraExid: string\n eventType: GateReportEventType\n eventTime: DateTime\n token: string\n }) {\n return `${getAiApiUrl()}/cameras/${cameraExid}/gate-report/${eventType}/${eventTime}/thumbnail?authorization=${token}`\n },\n getEventSnapshot({\n cameraExid,\n eventType,\n eventTime,\n token,\n }: {\n cameraExid: string\n eventType: GateReportEventType\n eventTime: DateTime\n token: string\n }) {\n return `${getAiApiUrl()}/cameras/${cameraExid}/gate-report/${eventType}/${eventTime}/snapshot?authorization=${token}`\n },\n getEvents(\n projectExid: ProjectExid,\n params: GatReportRequestPayload,\n extraParams: AxiosRequestConfig = {}\n ): Promise<GateReportResponsePayload> {\n return axios.get(\n `${getAiApiUrl()}/projects/${projectExid}/gate-report/events?${toQueryString(\n params\n )}`,\n extraParams\n )\n },\n getCounts(\n projectExid: string,\n payload: EventCountRequestPayload = {},\n extraParams: AxiosRequestConfig = {}\n ): Promise<EventCountResponsePayload> {\n return axios.get(\n `${getAiApiUrl()}/projects/${projectExid}/gate-report/counts?${toQueryString(\n payload\n )}`,\n extraParams\n )\n },\n },\n brainTool: {\n getObjectDetectionsResults(payload = {}) {\n return axios.post(`${getAiApiUrl()}/ai-models/object-detection`, payload)\n },\n getSegments(payload = {}) {\n return axios.post(`${getAiApiUrl()}/ai-models/segment`, payload)\n },\n async getDepth(cameraExid: string, timestamp: string) {\n return axios.post(`${getAiApiUrl()}/depth-estimation`, {\n cameraex: cameraExid,\n timestamp,\n })\n },\n },\n roi: {\n getROIs(\n projectExid: string,\n params: Partial<RoisQueryParams> = {}\n ): Promise<GateReportROI[]> {\n return axios.get(\n `${getAiApiUrl()}/projects/${projectExid}/rois?${toQueryString(params)}`\n )\n },\n createROI(params: GateReportROICreateRequestPayload) {\n return axios.post(`${getAiApiUrl()}/projects/rois`, params)\n },\n updateROI({\n updatedBy,\n roi,\n }: {\n updatedBy: string\n roi: GateReportROICreateRequestPayload\n }) {\n return axios.patch(\n `${getAiApiUrl()}/projects/rois/${roi.id}?${toQueryString({\n updatedBy,\n })}`,\n roi\n )\n },\n deleteROI({ id, updatedBy }: { id: number; updatedBy: string }) {\n return axios.patch(\n `${getAiApiUrl()}/projects/rois/${id}?${toQueryString({\n updatedBy,\n })}`,\n { isactive: false, note: \"delete roi\" }\n )\n },\n },\n detections: {\n async getSimilarSegmentsInTimeIntervals({\n cameraExid,\n iouThreshold = 0.8,\n ...params\n }: SegmentsSimilaritySearchParams) {\n return axios.get(\n `${getAiApiUrl()}/cameras/${cameraExid}/segments/appearance-from-points`,\n {\n params: {\n cameraExid,\n iouThreshold,\n ...params,\n },\n }\n )\n },\n },\n}\n","import axios from \"axios\"\n\nexport const WebRtcApi = {\n webRtc: {\n requestIceServers({ url, token }: { url: string; token: string }) {\n return axios({\n url,\n method: \"OPTIONS\",\n headers: {\n Authorization: `Bearer ${token}`,\n },\n })\n },\n sendLocalOffer({\n url,\n token,\n data,\n }: {\n url: string\n token: string\n data: {\n sdp: string\n type: string\n }\n }) {\n return axios({\n url,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/sdp\",\n Authorization: `Bearer ${token}`,\n },\n data,\n })\n },\n sendLocalCandidates({\n url,\n token,\n data,\n tag,\n }: {\n url: string\n token: string\n data: Record<string, unknown>\n tag: string\n }) {\n return axios({\n url,\n method: \"PATCH\",\n headers: {\n \"Content-Type\": \"application/trickle-ice-sdpfrag\",\n \"If-Match\": tag,\n Authorization: `Bearer ${token}`,\n },\n data,\n })\n },\n },\n}\n","import { axios } from \"./client\"\nimport { toQueryString } from \"@evercam/api/utils\"\nimport {\n HistoryWeatherRequestPayload,\n WeatherDataResponse,\n WeatherProvider,\n WeatherResponsePayload,\n} from \"@evercam/api/types\"\n\nexport const WeatherApi = {\n current: {\n getCurrentWeather({\n projectExid,\n weatherProvider = WeatherProvider.WeatherStack,\n }: {\n projectExid: string\n weatherProvider: WeatherProvider\n }): Promise<WeatherResponsePayload> | undefined {\n if (weatherProvider === WeatherProvider.WeatherStack) {\n return axios.get(`/projects/${projectExid}/weather/current`)\n } else if (weatherProvider === WeatherProvider.AerisWeather) {\n return axios.get(\n `${axios.env.weatherApiBaseUrl}/weatherApi/getWeatherData?projectExid=${projectExid}`\n )\n }\n },\n },\n historical: {\n getWeatherBeforeDate({\n projectExid,\n weatherProvider = WeatherProvider.WeatherStack,\n payload,\n }: {\n projectExid: string\n weatherProvider: WeatherProvider\n payload: HistoryWeatherRequestPayload\n }): Promise<WeatherResponsePayload> | undefined {\n if (weatherProvider === WeatherProvider.WeatherStack) {\n return axios.get(\n `/projects/${projectExid}/weather?${toQueryString(payload)}`\n )\n } else if (weatherProvider === WeatherProvider.AerisWeather) {\n return axios.get(\n `${axios.env.weatherApiBaseUrl}/weatherApi/getWeatherData?projectExid=${projectExid}&day=${payload.day}`\n )\n }\n },\n },\n weather: {\n getWeatherData({\n projectExid,\n weatherProvider = WeatherProvider.WeatherStack,\n payload,\n }: {\n projectExid: string\n weatherProvider: WeatherProvider\n payload: HistoryWeatherRequestPayload\n }): Promise<{ data: WeatherDataResponse[] }> | undefined {\n if (weatherProvider === WeatherProvider.WeatherStack) {\n return axios.get(\n `/projects/${projectExid}/weather/filters?${toQueryString(payload)}`\n )\n } else if (weatherProvider === WeatherProvider.AerisWeather) {\n return axios.get(\n `${axios.env.weatherApiBaseUrl}/weatherApi/getWeatherData?projectExid=${projectExid}&day=${payload.day}`\n )\n }\n },\n },\n}\n","import { axios } from \"./client\"\nimport type {\n CameraExid,\n CopilotConversation,\n CopilotMessage,\n CopilotMessageStep,\n CountByPeriod,\n CountsParams,\n DetectionsFilters,\n DetectionsPresenceByLabel,\n FeedbackPayload,\n GrafanaKitMetrics,\n LabsPaginationParams,\n LuminanceReading,\n MilesightCameraNetworkConfiguration,\n MilesightCameraOsdConfiguration,\n MilesightCameraSdCardInfo,\n MilesightCameraSystemSettings,\n MilesightCameraVideoConfig,\n MilesightRequestParams,\n PaginatedItems,\n SegmentsByLabel,\n SegmentsPresenceByLabel,\n TrackingsByLabel,\n} from \"@evercam/api/types\"\nimport { GrafanaMetricId, KitMetricPeriod } from \"@evercam/api/types\"\n\nexport function getLabsBaseUrl() {\n const labsPrNumber = /labs-(\\d+)/g.exec(window.location.href)?.[1]\n\n return labsPrNumber\n ? `https://${labsPrNumber}.labs.evercam.io`\n : axios.env.evercamLabsUrl\n}\n\nexport const EvercamLabsApi = {\n milesight: {\n getVideoConfig(\n { host, httpPort, username, password }: MilesightRequestParams,\n config = {}\n ): Promise<MilesightCameraVideoConfig> {\n return axios.get(`${getLabsBaseUrl()}/milesight/video`, {\n params: {\n host,\n port: httpPort,\n username,\n password,\n },\n ...config,\n })\n },\n getNetworkConfiguration(\n { host, httpPort, username, password }: MilesightRequestParams,\n config = {}\n ): Promise<MilesightCameraNetworkConfiguration> {\n return axios.get(`${getLabsBaseUrl()}/milesight/network`, {\n params: {\n host,\n port: httpPort,\n username,\n password,\n },\n ...config,\n })\n },\n getSystemSettings(\n { host, httpPort, username, password }: MilesightRequestParams,\n config = {}\n ): Promise<MilesightCameraSystemSettings> {\n return axios.get(`${getLabsBaseUrl()}/milesight/system`, {\n params: {\n host,\n port: httpPort,\n username,\n password,\n },\n ...config,\n })\n },\n getTimeSettings(\n { host, httpPort, username, password }: MilesightRequestParams,\n config = {}\n ): Promise<MilesightCameraSystemSettings> {\n return axios.get(`${getLabsBaseUrl()}/milesight/time`, {\n params: {\n host,\n port: httpPort,\n username,\n password,\n },\n ...config,\n })\n },\n getOsdConfiguration(\n { host, httpPort, username, password }: MilesightRequestParams,\n config = {}\n ): Promise<MilesightCameraOsdConfiguration> {\n return axios.get(`${getLabsBaseUrl()}/milesight/osd`, {\n params: {\n host,\n port: httpPort,\n username,\n password,\n },\n ...config,\n })\n },\n getSdCardInfo(\n { host, httpPort, username, password }: MilesightRequestParams,\n config = {}\n ): Promise<MilesightCameraSdCardInfo> {\n return axios.get(`${getLabsBaseUrl()}/milesight/storage`, {\n params: {\n host,\n port: httpPort,\n username,\n password,\n },\n ...config,\n })\n },\n },\n copilot: {\n async getAllConversations(\n params: LabsPaginationParams & {\n cameraExid?: string\n projectExid?: string\n user?: string\n }\n ): Promise<PaginatedItems<CopilotConversation>> {\n return axios.get(`${getLabsBaseUrl()}/copilot/conversations`, {\n params,\n preserveCasing: true,\n })\n },\n async getOneConversation(\n conversationId: number\n ): Promise<PaginatedItems<CopilotConversation>> {\n return axios.get(\n `${getLabsBaseUrl()}/copilot/conversations/${conversationId}`,\n {\n preserveCasing: true,\n }\n )\n },\n async getConversationMessages(\n conversationId: number,\n params: LabsPaginationParams\n ): Promise<PaginatedItems<CopilotMessage>> {\n return axios.get(\n `${getLabsBaseUrl()}/copilot/conversations/${conversationId}/messages`,\n { params, preserveCasing: true }\n )\n },\n async getMessageSteps(\n message: CopilotMessage\n ): Promise<CopilotMessageStep[]> {\n return axios.get(\n `${getLabsBaseUrl()}/copilot/conversations/${\n message.conversationId\n }/messages/${message.id}/steps`\n )\n },\n async submitMessageFeedback<T>({\n conversationId,\n messageId,\n ...params\n }: FeedbackPayload<T>) {\n return axios.post(\n `${getLabsBaseUrl()}/copilot/conversations/${conversationId}/messages/${messageId}/feedback`,\n params,\n {\n preserveCasing: true,\n }\n )\n },\n },\n detections: {\n async getDetectionsTracking(\n cameraExid: CameraExid,\n params: DetectionsFilters\n ): Promise<TrackingsByLabel> {\n return axios.get(\n `${getLabsBaseUrl()}/cameras/${cameraExid}/detections/tracking`,\n {\n params,\n preserveCasing: true,\n }\n )\n },\n async getSegmentsMasks(\n cameraExid: CameraExid,\n params: DetectionsFilters\n ): Promise<SegmentsByLabel> {\n return axios.get(\n `${getLabsBaseUrl()}/cameras/${cameraExid}/segments/masks`,\n {\n params,\n preserveCasing: true,\n }\n )\n },\n async getDetectionsPresenceDateIntervals({\n cameraExid,\n fromDate,\n toDate,\n precision,\n }: CountsParams): Promise<DetectionsPresenceByLabel> {\n return axios.get(\n `${getLabsBaseUrl()}/cameras/${cameraExid}/detections/presence-intervals`,\n {\n params: { fromDate, toDate, precision },\n preserveCasing: true,\n }\n )\n },\n async getSegmentsDateIntervals({\n cameraExid,\n fromDate,\n toDate,\n precision,\n }: CountsParams): Promise<SegmentsPresenceByLabel> {\n return axios.get(\n `${getLabsBaseUrl()}/cameras/${cameraExid}/segments/presence-intervals`,\n {\n params: { fromDate, toDate, precision },\n preserveCasing: true,\n }\n )\n },\n async getCranesMovement({\n cameraExid,\n fromDate,\n toDate,\n precision,\n }: CountsParams): Promise<CountByPeriod[]> {\n return axios.get(\n `${getLabsBaseUrl()}/cameras/${cameraExid}/detections/movement`,\n {\n params: { fromDate, toDate, precision },\n preserveCasing: true,\n }\n )\n },\n },\n googleCloudStorage: {\n listFiles(\n prefix: string = \"\"\n ): Promise<{ files: string[]; folders: string[] }> {\n return axios.get(\n `${getLabsBaseUrl()}/gc-storage/buckets/evercam-labs/files`,\n {\n params: {\n prefix,\n },\n preserveCasing: true,\n }\n )\n },\n getSignedUrl(fileName: string): Promise<{ url: string }> {\n return axios.get(\n `${getLabsBaseUrl()}/gc-storage/buckets/evercam-labs/files/signed-url`,\n {\n params: {\n fileName,\n },\n preserveCasing: true,\n }\n )\n },\n },\n luminance: {\n getReadings(params: {\n cameraExid: CameraExid\n fromDate: string\n toDate: string\n }): Promise<LuminanceReading[]> {\n return axios.get(\n `${getLabsBaseUrl()}/cameras/${\n params.cameraExid || \"echel-mdqur\"\n }/luminance/readings`,\n {\n params: {\n fromDate: params.fromDate,\n toDate: params.toDate,\n },\n preserveCasing: true,\n }\n )\n },\n },\n kits: {\n getMetrics(\n kitId: string,\n metrics: GrafanaMetricId[],\n period: KitMetricPeriod = KitMetricPeriod.Last1Hour\n ): Promise<GrafanaKitMetrics> {\n return axios.get(`${getLabsBaseUrl()}/kits/${kitId}/metrics`, {\n params: {\n metrics,\n from: period,\n },\n preserveCasing: true,\n })\n },\n },\n}\n","import { axios } from \"./client\"\nimport type { AxiosRequestConfig } from \"axios\"\nimport { queryStringToObject, toQueryString } from \"@evercam/api/utils\"\nimport type {\n AconexAuthCallbackParams,\n AconexEditedImageUploadRequestPayload,\n AconexUserProjectsResponsePayload,\n ActiveUsersStatsRequestPayload,\n ActiveUserStat,\n AnalyticsRequestPayload,\n ApiCredentials,\n AutodeskFolderResponsePayload,\n AutodeskProjectsResponsePayload,\n AutodeskTokenResponsePayload,\n AutodeskUploadSnapshotPayload,\n AutodeskUserHubsResponsePayload,\n AvailableDaysRequestPayload,\n AvailableDaysResponsePayload,\n AvailableHoursRequestPayload,\n AvailableHoursResponsePayload,\n BatteryReading,\n BatteryVoltage,\n BimCompareExportRequestPayload,\n BimCreationPayload,\n BIMLayer,\n BIMLayerPostPayload,\n BimLayersQueryParams,\n BimModelRequestPayload,\n BimModelResponsePayload,\n BimPendingImage,\n BimSnapshotRequestPayload,\n BimSnapshotResponsePayload,\n BimUploadCameraParameters,\n CameraExid,\n CameraLogsResponsePayload,\n CamerasResponsePayload,\n CameraStatusLog,\n CameraUpdateRequestPayload,\n CheckCameraPortPayload,\n Comment,\n CommentCreationRequestPayload,\n CommentsRequestPayload,\n Company,\n CompanyProject,\n CompanyUser,\n Compare,\n CompareRequestPayload,\n ConnectorResponsePayload,\n Credentials,\n GoogleAuthRequestPayload,\n LoginRequestPayload,\n LoginResponsePayload,\n Logo,\n LogoutParams,\n Media,\n MediaCreateRequestPayload,\n MediaFilterQueryParams,\n MediaUpdateRequestPayload,\n MediaUsersResponsePayload,\n NearestSnapshotRequestPayload,\n NearestSnapshotResponsePayload,\n PaginatedItems,\n PendingBimImagesParams,\n ProcessPendingImagesBimParams,\n ProcoreEditedImageUploadRequestPayload,\n ProcoreProjectsAlbumsPayload,\n ProcoreProjectsAlbumsRequestPayload,\n ProcoreUserCompaniesResponsePayload,\n ProcoreUserProjectRequestPayload,\n ProcoreUserProjectsResponsePayload,\n ProgressPhotosCreateUpdateRequestPayload,\n ProgressPhotosResponsePayload,\n ProgressPhotosUnSubscribeParams,\n ProjectBatteryReading,\n ProjectExid,\n ProjectLogoResponsePayload,\n ProjectPAStatsRequestPayload,\n ProjectPAStatsResponsePayload,\n ProjectResponsePayload,\n ProjectShareResponse,\n RemotePasswordUpdateRequestPayload,\n ResendShareRequestPayload,\n SessionActivitiesListRequestPayload,\n SessionActivity,\n SessionsListRequestPayload,\n Share,\n ShareCreateRequestPayload,\n ShareCreateResponsePayload,\n ShareDeletionRequestPayload,\n SharedUsersResponsePayload,\n ShareProjectCamerasRequestPayload,\n ShareRequestsResponsePayload,\n SharesResponsePayload,\n SignupUserRequestPayload,\n Snapshot,\n SnapshotRangeRequestPayload,\n SnapshotRangeResponsePayload,\n ThumbnailData,\n TimelapseCreationRequestPayload,\n TimelapseCreationResponsePayload,\n TimelapseSnapshotRequestPayload,\n TimelapseSnapshotResponsePayload,\n UpdatePasswordRequestPayload,\n UserDeleteRequestPayload,\n UserSession,\n UserUpdateRequestPayload,\n VoyageControlConnectorPayload,\n Widget,\n WidgetFull,\n WidgetPayload,\n WidgetsListRequestPayload,\n} from \"@evercam/api/types\"\n\nexport const EvercamApi = {\n apiStatus: {\n getApiStatus() {\n return axios.get(\"/status\")\n },\n },\n users: {\n signup(payload: SignupUserRequestPayload) {\n return axios.post(\"/users\", payload)\n },\n fetchAccessFeatures(email: string): Promise<{ features: string[] }> {\n return axios.get(`/users/${email}/features`)\n },\n impersonationLogin(token: string) {\n return axios.post(`/auth/impersonate/${token}`)\n },\n login(params: LoginRequestPayload): Promise<LoginResponsePayload> {\n return axios.post(\"/auth/login\", toQueryString(params))\n },\n loginWithApiCredentials(\n apiId: String,\n apiKey: String\n ): Promise<LoginResponsePayload> {\n return axios.post(`/auth/login?api_id=${apiId}&api_key=${apiKey}`)\n },\n loginWithWidgetCredentials(\n widgetId: String,\n widgetKey: String\n ): Promise<LoginResponsePayload> {\n return axios.post(\n `/auth/login?widget_id=${widgetId}&widget_key=${widgetKey}`\n )\n },\n loginWithProvider(\n provider: string,\n payload: GoogleAuthRequestPayload\n ): Promise<LoginResponsePayload> {\n return axios.post(`/auth/${provider}`, payload)\n },\n getUser(email: string): Promise<{ users: LoginResponsePayload[] }> {\n return axios.get(`/users/${email}`)\n },\n logout(\n payload: LogoutParams,\n config: Partial<AxiosRequestConfig> = {}\n ): Promise<void> {\n return axios.delete(\"/auth/logout\", { params: payload, ...config })\n },\n resetPassword(email: string): Promise<{ message: string }> {\n return axios.post(`/users/${email}/password/reset`)\n },\n getCredentials(): Promise<Credentials> {\n return axios.get(\"/auth/credentials\")\n },\n updatePassword(\n user: string,\n payload: UpdatePasswordRequestPayload\n ): Promise<{ message: string }> {\n return axios.patch(`/users/${user}/password`, payload)\n },\n remotePasswordUpdate(\n email: string,\n payload: RemotePasswordUpdateRequestPayload\n ): Promise<{ message: string }> {\n return axios.patch(`/users/${email}/password/update`, payload)\n },\n confirm(email: string, payload: any): Promise<LoginResponsePayload> {\n return axios.post(`/users/${email}/confirm`, payload)\n },\n deleteActiveSession(sessionId: string, payload: any = {}): Promise<void> {\n return axios.delete(`/users/active-sessions/${sessionId}`, {\n params: payload,\n })\n },\n getActiveSessions(\n payload: SessionsListRequestPayload\n ): Promise<PaginatedItems<UserSession>> {\n return axios.get(\"/users/active-sessions\", {\n params: payload,\n })\n },\n getSessionActivities(\n payload: SessionActivitiesListRequestPayload\n ): Promise<PaginatedItems<SessionActivity>> {\n return axios.get(\"/users/session/activities\", { params: payload })\n },\n update(\n email: string,\n params: Partial<UserUpdateRequestPayload> = {}\n ): Promise<{ users: LoginResponsePayload[] }> {\n return axios.patch(`/users/${email}`, params)\n },\n delete(email: string, params: UserDeleteRequestPayload): Promise<void> {\n return axios.post(`/users/${email}/delete`, params)\n },\n fetchPermissions(): Promise<{ permissions: string[] }> {\n return axios.get(\"/users/permissions\")\n },\n },\n notifications: {\n get() {\n return axios.get(\"/notifications\")\n },\n markAllAsRead(id: string) {\n return axios.patch(`/notifications/${id}`)\n },\n markAsRead() {\n return axios.post(\"/notifications/mark-as-read\")\n },\n },\n bim: {\n getBimSnapshot(\n cameraId: string,\n dateTime: string,\n payload: Partial<BimSnapshotRequestPayload>,\n extraParams?: AxiosRequestConfig\n ): Promise<BimSnapshotResponsePayload> {\n return axios.get(`/cameras/${cameraId}/bim/${dateTime}`, {\n params: payload,\n ...(extraParams || {}),\n })\n },\n getBimModel(\n cameraId: string,\n payload: BimModelRequestPayload,\n extraParams?: AxiosRequestConfig\n ): Promise<BimModelResponsePayload> {\n return axios.get(`/cameras/${cameraId}/bim`, {\n params: payload,\n ...(extraParams || {}),\n })\n },\n pendingBimImages(\n cameraId: string,\n params: PendingBimImagesParams\n ): Promise<BimPendingImage[]> {\n return axios.get(`/cameras/${cameraId}/bim/pending`, { params })\n },\n processPendingImages(\n cameraId: string,\n params: Partial<ProcessPendingImagesBimParams>\n ): Promise<void> {\n return axios.post(`/cameras/${cameraId}/bim/pending`, params)\n },\n createBim(cameraId: string, params: BimCreationPayload): Promise<void> {\n return axios.post(`/cameras/${cameraId}/bim`, params)\n },\n getCameraParameters(\n cameraId: string,\n params: ApiCredentials\n ): Promise<BimUploadCameraParameters> {\n return axios.get(`/cameras/${cameraId}/bim/camera-parameters`, {\n params,\n })\n },\n uploadCameraParameters(\n cameraId: string,\n params: BimUploadCameraParameters\n ): Promise<BimUploadCameraParameters> {\n return axios.post(`/cameras/${cameraId}/bim/camera-parameters`, params)\n },\n exportCompare(\n projectExid: string,\n payload: BimCompareExportRequestPayload\n ): Promise<Compare> {\n return axios.post(\n `/projects/${projectExid}/media-hub/compares/bim-compares`,\n payload\n )\n },\n },\n cameras: {\n getCameras(): Promise<CamerasResponsePayload> {\n return axios.get(\"/cameras\")\n },\n getCameraById(\n cameraId: string,\n params?: ApiCredentials\n ): Promise<CamerasResponsePayload> {\n return axios.get(`/cameras/${cameraId}?${toQueryString(params)}`)\n },\n getCameraLastPublicNote(\n cameraId: string\n ): Promise<CameraLogsResponsePayload> {\n return axios.get(`/cameras/${cameraId}/last-public-note`)\n },\n portCheck(payload: {\n params: CheckCameraPortPayload\n }): Promise<CheckCameraPortPayload & { open: boolean }> {\n return axios.get(\"/cameras/port-check\", payload)\n },\n getNvrStreamingToken({\n cameraExid,\n token,\n }: {\n cameraExid: string\n token: string\n }): Promise<string> {\n return fetch(\n `${axios.env.baseUrl}/cameras/${cameraExid}/hls?authorization=${token}`\n ).then(\n ({ url }) => queryStringToObject(url.split(\"?\")[1] || \"\").access_token\n ) as Promise<string>\n },\n getCameraStatusLogs(\n exid: string,\n params: {\n params: {\n from: string\n to: string\n }\n }\n ): Promise<CameraStatusLog[]> {\n return axios.get(`/cameras/${exid}/health`, params)\n },\n updateCamera(\n exid: string,\n params: CameraUpdateRequestPayload\n ): Promise<CamerasResponsePayload> {\n return axios.patch(`/cameras/${exid}`, params)\n },\n },\n projects: {\n index(params?: ApiCredentials): Promise<ProjectResponsePayload> {\n return axios.get(`/projects?${toQueryString(params)}`)\n },\n getLogos(projectId: string): Promise<ProjectLogoResponsePayload> {\n return axios.get(`/projects/${projectId}/logos`)\n },\n createLogo(\n projectId: string,\n formData: FormData\n ): Promise<Logo & { id: number }> {\n const headers = { \"Content-Type\": \"multipart/form-data\" }\n\n return axios.post(`/projects/${projectId}/logos`, formData, {\n headers,\n })\n },\n deleteLogo(projectId: string, id: number): Promise<void> {\n return axios.delete(`/projects/${projectId}/logos/${id}`)\n },\n updateLogo(projectId: string, id: number, name: string) {\n return axios.patch(\n `/projects/${projectId}/logos/${id}`,\n toQueryString({ name })\n )\n },\n updateThumbnail(\n projectExid: string,\n params: { cameraExid?: string; uploadedThumbnail?: string }\n ): Promise<{ message: string }> {\n if (params.uploadedThumbnail) {\n return axios.post(`/projects/${projectExid}/thumbnail`, {\n thumbnail: params.uploadedThumbnail,\n })\n }\n\n return axios.put(`/projects/${projectExid}/thumbnail`, {\n cameraExid: params.cameraExid,\n })\n },\n getThumbnailData(projectExid: string): Promise<ThumbnailData> {\n return axios.get(`/projects/${projectExid}/thumbnail?include_data=true`)\n },\n },\n timelapse: {\n getSnapshotRange(\n cameraId: string,\n payload: TimelapseSnapshotRequestPayload,\n extraParams?: AxiosRequestConfig\n ): Promise<TimelapseSnapshotResponsePayload> {\n return axios.get(`/cameras/${cameraId}/timelapses/snapshots`, {\n params: payload,\n ...(extraParams || {}),\n })\n },\n createTimelapse(\n projectExid: string,\n payload: TimelapseCreationRequestPayload\n ): Promise<TimelapseCreationResponsePayload> {\n return axios.post(\n `/projects/${projectExid}/media-hub/timelapses`,\n payload\n )\n },\n cUpdate(\n projectExid: string,\n id: string | number,\n payload: MediaUpdateRequestPayload\n ): Promise<TimelapseCreationResponsePayload> {\n return axios.patch(\n `/projects/${projectExid}/media-hub/timelapses/${id}`,\n payload\n )\n },\n cDelete(projectExid: string, id: number): Promise<void> {\n return axios.delete(`/projects/${projectExid}/media-hub/timelapses/${id}`)\n },\n },\n compares: {\n cCreate(\n projectExid: string,\n payload: CompareRequestPayload\n ): Promise<Compare> {\n return axios.post(`/projects/${projectExid}/media-hub/compares`, payload)\n },\n cShow(projectExid: string, id: string): Promise<Compare> {\n return axios.get(`/projects/${projectExid}/media-hub/compares/${id}`)\n },\n cUpdate(\n projectExid: string,\n id: string,\n payload: MediaUpdateRequestPayload\n ): Promise<Compare> {\n return axios.patch(\n `/projects/${projectExid}/media-hub/compares/${id}`,\n payload\n )\n },\n cDelete(projectExid: string, id: string): Promise<void> {\n return axios.delete(`/projects/${projectExid}/media-hub/compares/${id}`)\n },\n },\n providers: {\n getProviders(): Promise<ConnectorResponsePayload> {\n return axios.get(\"/oauth2-tokens/providers\")\n },\n },\n aconex: {\n authenticate(payload: AconexAuthCallbackParams): Promise<void> {\n return axios.get(\"/aconex/auth/callback\", {\n params: payload,\n })\n },\n getUserProjects(): Promise<AconexUserProjectsResponsePayload> {\n return axios.get(\"/aconex/projects\")\n },\n revoke(): Promise<void> {\n return axios.post(\"/aconex/auth/revoke\")\n },\n uploadEditedSnapshot(\n projectId: number,\n payload: AconexEditedImageUploadRequestPayload\n ): Promise<void> {\n return axios.post(\n `/aconex/projects/${projectId}/upload-snapshot`,\n payload\n )\n },\n getDocumentSchema(projectId: number): Promise<void> {\n return axios.get(`/aconex/projects/${projectId}/register/schema`)\n },\n },\n procore: {\n getUserCompanies(): Promise<ProcoreUserCompaniesResponsePayload> {\n return axios.get(\"/procore/companies\")\n },\n getUserProjects(\n payload: ProcoreUserProjectRequestPayload\n ): Promise<ProcoreUserProjectsResponsePayload> {\n return axios.get(\"/procore/projects\", {\n params: payload,\n })\n },\n getProjectAlbums(\n payload: ProcoreProjectsAlbumsRequestPayload\n ): Promise<ProcoreProjectsAlbumsPayload> {\n return axios.get(\"/procore/image-categories\", {\n params: payload,\n })\n },\n uploadEditedSnapshot(\n payload: ProcoreEditedImageUploadRequestPayload\n ): Promise<void> {\n return axios.post(\"/procore/upload-snapshot\", payload)\n },\n sendRevoke(): Promise<void> {\n return axios.post(\"/users/auth/procore/revoke\")\n },\n },\n autodesk: {\n sendRevoke(): Promise<void> {\n return axios.post(\"/users/auth/autodesk/revoke\")\n },\n getUserHubs(): Promise<AutodeskUserHubsResponsePayload> {\n return axios.get(\"/autodesk/hubs\")\n },\n getProjects(hubId: string): Promise<AutodeskProjectsResponsePayload> {\n return axios.get(`/autodesk/hubs/${hubId}/projects`)\n },\n getFolders(\n hubId: string,\n projectId: string\n ): Promise<Array<AutodeskFolderResponsePayload>> {\n return axios.get(`/autodesk/hubs/${hubId}/projects/${projectId}/folders`)\n },\n getSubFolders(\n projectId: string,\n parentFolderId: string,\n getDerivatives: Boolean\n ): Promise<Array<AutodeskFolderResponsePayload>> {\n return axios.get(\n `/autodesk/projects/${projectId}/folders/${parentFolderId}/subfolders`,\n {\n params: {\n getDerivatives,\n },\n }\n )\n },\n getFolder(\n projectId: string,\n folderId: string\n ): Promise<AutodeskFolderResponsePayload> {\n return axios.get(`/autodesk/projects/${projectId}/folders/${folderId}`)\n },\n uploadEditedSnapshot(\n payload: AutodeskUploadSnapshotPayload\n ): Promise<null> {\n return axios.post(\"/autodesk/upload-snapshot\", payload)\n },\n fetchViewerToken(exid: string): Promise<AutodeskTokenResponsePayload> {\n return axios.get(`/autodesk/${exid}/token/viewer`)\n },\n },\n voyageControl: {\n connect(payload: VoyageControlConnectorPayload): Promise<unknown> {\n return axios.post(\"/voyage-control/auth/connect\", payload)\n },\n sendRevoke(): Promise<null> {\n return axios.post(\"/voyage-control/auth/revoke\")\n },\n },\n recordings: {\n oldest(cameraId: string, payload?: ApiCredentials): Promise<Snapshot> {\n return axios.get(`/cameras/${cameraId}/recordings/snapshots/oldest`, {\n params: payload,\n })\n },\n latest(cameraId: string, payload?: ApiCredentials): Promise<Snapshot> {\n return axios.get(`/cameras/${cameraId}/recordings/snapshots/latest`, {\n params: payload,\n })\n },\n nearest(\n cameraId: string,\n timestamp: string,\n payload?: NearestSnapshotRequestPayload,\n extraParams?: AxiosRequestConfig\n ): Promise<NearestSnapshotResponsePayload> {\n return axios.get(\n `/cameras/${cameraId}/recordings/snapshots/${timestamp}/nearest`,\n {\n params: payload,\n ...(extraParams || {}),\n }\n )\n },\n availableDays({\n cameraId,\n year,\n month,\n payload,\n }: AvailableDaysRequestPayload): Promise<AvailableDaysResponsePayload> {\n return axios.get(\n `/cameras/${cameraId}/recordings/snapshots/${year}/${month}/days`,\n {\n params: payload,\n }\n )\n },\n availableHours({\n cameraId,\n year,\n month,\n day,\n payload,\n cancelToken,\n }: AvailableHoursRequestPayload): Promise<AvailableHoursResponsePayload> {\n return axios.get(\n `/cameras/${cameraId}/recordings/snapshots/${year}/${month}/${day}/hours`,\n {\n params: payload,\n cancelToken,\n }\n )\n },\n getSnapshot(\n cameraId: string,\n dateTime: string\n ): Promise<SnapshotRangeResponsePayload> {\n return axios.get(`/cameras/${cameraId}/recordings/snapshots/${dateTime}`)\n },\n getSnapshotRange(\n cameraId: string,\n payload: SnapshotRangeRequestPayload\n ): Promise<SnapshotRangeResponsePayload> {\n return axios.get(`/cameras/${cameraId}/recordings/snapshots`, {\n params: payload,\n })\n },\n },\n progressPhotos: {\n index(): Promise<ProgressPhotosResponsePayload> {\n return axios.get(\"/progress-photos\")\n },\n show(id: string): Promise<ProgressPhotosResponsePayload> {\n return axios.get(`/progress-photos/${id}`)\n },\n create(\n payload: ProgressPhotosCreateUpdateRequestPayload\n ): Promise<ProgressPhotosResponsePayload> {\n return axios.post(\"/progress-photos\", payload)\n },\n update(\n id: string,\n payload: ProgressPhotosCreateUpdateRequestPayload\n ): Promise<ProgressPhotosResponsePayload> {\n return axios.patch(`/progress-photos/${id}`, payload)\n },\n unsubscribe(\n progressPhotoId: string,\n params: ProgressPhotosUnSubscribeParams\n ): Promise<ProgressPhotosResponsePayload> {\n return axios.patch(\n `/progress-photos/${progressPhotoId}/unsubscribe?${toQueryString(\n params\n )}`\n )\n },\n delete(id: string, params?: ApiCredentials): Promise<void> {\n return axios.delete(`/progress-photos/${id}?${toQueryString(params)}`)\n },\n },\n mediaHub: {\n getAllMedia(\n projectExid: string,\n params: MediaFilterQueryParams\n ): Promise<PaginatedItems<Media>> {\n return axios.get(\n `projects/${projectExid}/media-hub?${toQueryString(params, {\n forceArrayBrackets: true,\n })}`\n )\n },\n getAllMediaUsers(projectExid: string): Promise<MediaUsersResponsePayload> {\n return axios.get(`/projects/${projectExid}/media-hub/users`)\n },\n cShow(projectExid: string, id: string): Promise<Media> {\n return axios.get(`/projects/${projectExid}/media-hub/${id}`)\n },\n cCreate(\n projectExid: string,\n payload: MediaCreateRequestPayload\n ): Promise<Media> {\n return axios.post(`/projects/${projectExid}/media-hub`, payload)\n },\n cUpdate(\n projectExid: number,\n id: number,\n payload: MediaUpdateRequestPayload\n ): Promise<Media> {\n return axios.patch(`/projects/${projectExid}/media-hub/${id}`, payload)\n },\n cDelete(projectExid: number, id: number): Promise<void> {\n return axios.delete(`/projects/${projectExid}/media-hub/${id}`)\n },\n },\n analytics: {\n sendAnalyticsEvent(\n params: AnalyticsRequestPayload,\n headers: object\n ): Promise<null> {\n return axios.post(\"/pa/events\", params, headers)\n },\n getPACompanyPeriodEvents(\n id: string | number,\n payload: ProjectPAStatsRequestPayload\n ): Promise<PaginatedItems<ProjectPAStatsResponsePayload>> {\n return axios.get(`/companies/${id}/stats`, { params: payload })\n },\n getPAProjectPeriodEvents(\n projectId: string,\n payload: ProjectPAStatsRequestPayload\n ): Promise<PaginatedItems<ProjectPAStatsResponsePayload>> {\n return axios.get(`/projects/${projectId}/stats`, { params: payload })\n },\n getActiveUsers(params: {\n params: ActiveUsersStatsRequestPayload\n }): Promise<ActiveUserStat> {\n return axios.get(\"/pa/active-users\", params)\n },\n },\n shares: {\n updateShareRights(\n cameraExid: CameraExid,\n payload: { email: string; rights: string }\n ): Promise<Share> {\n return axios.patch(`/cameras/${cameraExid}/shares`, payload)\n },\n updateShareRequestRights(\n cameraExid: CameraExid,\n payload: { email: string; rights: string }\n ) {\n return axios.patch(`/cameras/${cameraExid}/shares/requests`, payload)\n },\n cIndex(cameraId: string): Promise<SharesResponsePayload> {\n return axios.get(`/cameras/${cameraId}/shares`)\n },\n getShareRequest(\n cameraId: string,\n payload: { status: string }\n ): Promise<ShareRequestsResponsePayload> {\n return axios.get(`/cameras/${cameraId}/shares/requests`, {\n params: payload,\n })\n },\n deleteShare(\n cameraId: string,\n payload: { [key: string]: ShareDeletionRequestPayload }\n ): Promise<void> {\n return axios.delete(`/cameras/${cameraId}/shares`, payload)\n },\n deleteRequest(\n cameraId: string,\n payload: { [key: string]: ShareDeletionRequestPayload }\n ): Promise<void> {\n return axios.delete(`/cameras/${cameraId}/shares/requests`, payload)\n },\n deleteShareRequest(payload: {\n params: ShareDeletionRequestPayload\n }): Promise<void> {\n return axios.delete(`/share-requests/${payload.params.key}`)\n },\n getSharedUsers(cameraId: string): Promise<SharedUsersResponsePayload> {\n return axios.get(`/cameras/${cameraId}/shares/users`)\n },\n cCreate(\n cameraId: string,\n payload: ShareCreateRequestPayload\n ): Promise<ShareCreateResponsePayload> {\n return axios.post(`/cameras/${cameraId}/shares`, payload)\n },\n shareProjectCameras(\n projectExid: ProjectExid,\n payload: ShareProjectCamerasRequestPayload\n ) {\n return axios.post(`/projects/${projectExid}/shares/cameras`, payload)\n },\n getShareRequestByKey(\n key: string\n ): Promise<Pick<ShareCreateResponsePayload, \"shareRequests\">> {\n return axios.get(`/shares/requests/${key}`)\n },\n transferOwnership(\n cameraId: string,\n payload: { userId: number }\n ): Promise<void> {\n return axios.put(`/cameras/${cameraId}`, payload)\n },\n resendShareRequest(\n cameraId: string,\n data: ResendShareRequestPayload\n ): Promise<void> {\n return axios.post(`/cameras/${cameraId}/shares/requests/resend`, data)\n },\n getProjectShares(exid: string): Promise<ProjectShareResponse> {\n return axios.get(\n `/projects/${exid}/shares?include_camera_shares=true&sort=fullname|asc`\n )\n },\n },\n companies: {\n getCompanyUsers(\n companyExid: string,\n params: { params: { page: number; limit: number } }\n ): Promise<PaginatedItems<CompanyUser>> {\n return axios.get(`/companies/${companyExid}/users`, params)\n },\n getCompanyProjects(\n companyId: string,\n params: { params: { page: number; limit: number } }\n ): Promise<PaginatedItems<CompanyProject>> {\n return axios.get(`/companies/${companyId}/projects`, params)\n },\n getPACompanyDetails(\n companyId: string,\n params: Record<string, string> = {}\n ): Promise<Company> {\n return axios.get(\n `/companies/${companyId}${\"with_zoho\" in params ? \"?with_zoho\" : \"\"}`\n )\n },\n getActiveUsers(\n params: ActiveUsersStatsRequestPayload\n ): Promise<ActiveUserStat> {\n return axios.get(\"/pa/active-users\", { params })\n },\n getCompanyCameras(id: string, params: Record<string, string>) {\n return axios.get(`/companies/${id}/cameras`, params)\n },\n },\n batteries: {\n ProjectBatteryReadings(\n projectExid: string\n ): Promise<ProjectBatteryReading[]> {\n return axios.get(`/projects/${projectExid}/battery-readings`)\n },\n batteryReadings(\n cameraExid: string,\n params: { fromDate: string; toDate: string }\n ): Promise<PaginatedItems<BatteryReading>> {\n return axios.get(`/cameras/${cameraExid}/battery-readings`, {\n params: params,\n })\n },\n readingsVoltageSummary(\n cameraExid: string,\n params: { fromDate: string; toDate: string }\n ): Promise<BatteryVoltage[]> {\n return axios.get(\n `/cameras/${cameraExid}//battery-readings/voltage-summary`,\n {\n params: params,\n }\n )\n },\n },\n layers: {\n getLayer(\n cameraId: string,\n params: BimLayersQueryParams,\n extraParams: Record<string, string> = {}\n ): Promise<BIMLayer[]> {\n return axios.get(`/cameras/${cameraId}/layers`, {\n params,\n ...(extraParams || {}),\n })\n },\n getLayersById(\n cameraId: string,\n id: number,\n params: Record<string, string>\n ): Promise<BIMLayer> {\n return axios.get(`/cameras/${cameraId}/layers/${id}`, { params })\n },\n getLayers(\n cameraId: string,\n params: BimLayersQueryParams\n ): Promise<BIMLayer[]> {\n return axios.get(`/cameras/${cameraId}/layers`, { params })\n },\n createLayer(\n cameraId: string,\n params: BIMLayerPostPayload\n ): Promise<BIMLayer> {\n return axios.post(`/cameras/${cameraId}/layers`, params)\n },\n deleteLayer(\n cameraId: string,\n id: number,\n params: Record<string, unknown>\n ): Promise<void> {\n return axios.delete(`/cameras/${cameraId}/layers/${id}`, { params })\n },\n updateLayer(\n cameraId: string,\n id: number,\n params: Partial<BIMLayerPostPayload>\n ): Promise<BIMLayer> {\n return axios.put(`/cameras/${cameraId}/layers/${id}`, params)\n },\n },\n comments: {\n fetchComments(\n projectExid: string,\n params: CommentsRequestPayload\n ): Promise<PaginatedItems<Comment>> {\n return axios.get(`/projects/${projectExid}/comments`, { params })\n },\n addComment(\n projectId: string,\n params: CommentCreationRequestPayload\n ): Promise<Comment> {\n return axios.post(`/projects/${projectId}/comments`, params)\n },\n archiveOrUnarchiveComment(\n projectId: string,\n id: number,\n archive: boolean\n ): Promise<Comment> {\n return axios.patch(\n `/projects/${projectId}/comments/${id}?${toQueryString({ archive })}`\n )\n },\n deleteComment(projectId: string, id: number): Promise<void> {\n return axios.delete(`/projects/${projectId}/comments/${id}`)\n },\n },\n storyblock: {\n getStory(params: { route: string; params: string }) {\n return axios.get(\"/proxy/storyblok\", { params })\n },\n },\n mailing: {\n unsubscribe(params: { key: string }) {\n return axios.post(\"/mailing/unsubscribe\", params)\n },\n },\n widgets: {\n index(params: WidgetsListRequestPayload): Promise<PaginatedItems<Widget>> {\n return axios.get(\"/widgets\", { params })\n },\n show(id: number): Promise<WidgetFull> {\n return axios.get(`/widgets/${id}`)\n },\n getByKeys(): Promise<WidgetFull> {\n return axios.get(\"/widgets/credentials\")\n },\n setSessionSettings(params: any): Promise<WidgetFull> {\n return axios.put(\"/widgets/session\", params)\n },\n createProjectWidget(\n projectId: string,\n payload: WidgetPayload\n ): Promise<WidgetFull> {\n return axios.post(`/projects/${projectId}/widgets`, payload)\n },\n createCameraWidget(\n cameraId: string,\n payload: WidgetPayload\n ): Promise<WidgetFull> {\n return axios.post(`/cameras/${cameraId}/widgets`, payload)\n },\n update(id: number, payload: WidgetPayload): Promise<WidgetFull> {\n return axios.put(`/widgets/${id}`, payload)\n },\n delete(id: number) {\n return axios.delete(`/widgets/${id}`)\n },\n },\n}\n","import { axios } from \"./client\"\nimport { MoveParams, ZoomParams } from \"@/types\"\n\nexport const PtzApi = {\n presets: {\n index({ cameraExid }: { cameraExid: string }) {\n return axios.get(`/cameras/${cameraExid}/ptz/presets`)\n },\n go({\n cameraExid,\n presetId,\n }: {\n cameraExid: string\n presetId: string | number\n }) {\n return axios.post(`/cameras/${cameraExid}/ptz/presets/go/${presetId}`)\n },\n home({\n cameraExid,\n isRecordingFromNvr,\n }: {\n cameraExid: string\n isRecordingFromNvr: boolean\n }) {\n if (!isRecordingFromNvr) {\n return axios.post(`/cameras/${cameraExid}/ptz/home`)\n }\n\n return axios.post(`/cameras/${cameraExid}/ptz/relative`)\n },\n create({\n cameraExid,\n presetName,\n }: {\n cameraExid: string\n presetName: string\n }) {\n return axios.post(`/cameras/${cameraExid}/ptz/presets/create`, {\n presetName,\n })\n },\n update({\n cameraExid,\n presetId,\n presetName,\n }: {\n cameraExid: string\n presetId: string | number\n presetName: string\n }) {\n // eslint-disable-next-line\n return axios.post(`/cameras/${cameraExid}/ptz/presets/${presetId}/set`, {\n presetName,\n })\n },\n delete({\n cameraExid,\n presetId,\n }: {\n cameraExid: string\n presetId: string | number\n }) {\n // eslint-disable-next-line\n return axios.delete(\n `/cameras/${cameraExid}/ptz/presets/${presetId}/remove`\n )\n },\n },\n controls: {\n move({ cameraExid, direction, isRecordingFromNvr }: MoveParams) {\n if (!isRecordingFromNvr) {\n return axios.post(`/cameras/${cameraExid}/ptz/relative?${direction}=4`)\n }\n\n return axios.post(\n `/cameras/${cameraExid}/ptz/continuous/start/${direction}`\n )\n },\n zoom({ cameraExid, direction, isRecordingFromNvr }: ZoomParams) {\n if (!isRecordingFromNvr) {\n const zoomValue = direction === \"in\" ? 1 : -1\n\n return axios.post(\n `/cameras/${cameraExid}/ptz/relative?zoom=${zoomValue}`\n )\n }\n\n return axios.post(\n `/cameras/${cameraExid}/ptz/continuous/zoom/${direction}`,\n {\n direction,\n }\n )\n },\n stop({ cameraExid }: { cameraExid: string }) {\n return axios.post(`/cameras/${cameraExid}/ptz/continuous/stop`)\n },\n },\n}\n","import { axios } from \"./client\"\nimport type {\n _360AssetsQueryParams,\n _360AssetsRequestPayload,\n _360AssetsUploadPayload,\n BimUploadPayload,\n BimUploadsQueryParams,\n CalculateMeasuringOperationRequestPayload,\n DronesQueryParams,\n DroneUploadUpdateRequestPayload,\n FlightImagesQueryParams,\n Generate360MapRequestPayload,\n InspectionToolRequestPayload,\n MobileCaptureSnapshot,\n} from \"@evercam/api/types\"\n\nexport const IngestApi = {\n drone: {\n createUpload(projectId: string, params: { uploadedBy: string }) {\n return axios.post(\n `${axios.env.ingestApiUrl}/drone/${projectId}/upload`,\n null,\n { params }\n )\n },\n reprocessDrone(id: number, params: Record<string, unknown>) {\n return axios.post(\n `${axios.env.ingestApiUrl}/drone/${id}/reprocess`,\n null,\n { params }\n )\n },\n getDrones(params: { params: Partial<DronesQueryParams> }) {\n return axios.get(`${axios.env.ingestApiUrl}/drone/uploads/`, params)\n },\n getArchive(id: number, params: { dataType: string }) {\n return axios.get(\n `${axios.env.ingestApiUrl}/drone/uploads/archive/${id}`,\n {\n params,\n }\n )\n },\n deleteUpload(id: number) {\n return axios.delete(`${axios.env.ingestApiUrl}/drone/uploads/${id}`)\n },\n prepareForUpload(\n projectId: string,\n params: {\n uploadedBy: string\n token: string\n }\n ) {\n return axios.put(\n `${axios.env.ingestApiUrl}/drone/${projectId}/prepare-upload`,\n null,\n { params }\n )\n },\n upload(\n projectId: string,\n params: {\n uploadedBy: string\n token: string\n },\n payload: DroneUploadUpdateRequestPayload\n ) {\n return axios.put(\n `${axios.env.ingestApiUrl}/drone/${projectId}/upload`,\n payload,\n { params }\n )\n },\n verifyToken(projectId: string, params: { token: string }) {\n return axios.get(\n `${axios.env.ingestApiUrl}/drone/uploads/${projectId}/verify`,\n {\n params: { token: params.token },\n }\n )\n },\n calculateMeasuringOperation(\n projectId: string,\n params: CalculateMeasuringOperationRequestPayload\n ) {\n return axios.post(\n `${axios.env.ingestApiUrl}/drone/api/${projectId}/calculate-measuring-operation`,\n params\n )\n },\n inspectionTool(projectId: string, params: InspectionToolRequestPayload) {\n return axios.post(\n `${axios.env.ingestApiUrl}/drone/api/${projectId}/inspection-tool`,\n params\n )\n },\n isInspectionEnabled(projectId: string, params: Record<string, unknown>) {\n return axios.post(\n `${axios.env.ingestApiUrl}/drone/api/${projectId}/inspection-enabled`,\n null,\n { params }\n )\n },\n getDroneQueueSize() {\n return axios.get(`${axios.env.ingestApiUrl}/drone/queue`)\n },\n getFlightImages(projectId: string, params: FlightImagesQueryParams) {\n return axios.get(\n `${axios.env.ingestApiUrl}/drone/api/${projectId}/flight-images`,\n {\n params,\n }\n )\n },\n },\n assets360: {\n get360Assets(params: { params: Partial<_360AssetsQueryParams> }) {\n return axios.get(`${axios.env.ingestApiUrl}/360/assets/`, params)\n },\n deleteUpload(id: number) {\n return axios.delete(`${axios.env.ingestApiUrl}/360/assets/${id}`)\n },\n getArchive(id: number, params: { dateType: string }) {\n return axios.get(`${axios.env.ingestApiUrl}/360/assets/archive/${id}`, {\n params,\n })\n },\n createUpload(projectId: string, params: _360AssetsRequestPayload) {\n return axios.post(\n `${axios.env.ingestApiUrl}/360/${projectId}/upload`,\n null,\n { params }\n )\n },\n upload(\n id: number,\n params: Record<string, unknown>,\n payload: _360AssetsUploadPayload\n ) {\n return axios.put(`${axios.env.ingestApiUrl}/360/${id}/upload`, payload, {\n params,\n })\n },\n generate360map(projectId: string, params: Generate360MapRequestPayload) {\n return axios.post(\n `${axios.env.ingestApiUrl}/360/api/${projectId}/generate-360-map`,\n params\n )\n },\n get360QueueSize() {\n return axios.get(`${axios.env.ingestApiUrl}/360/queue`)\n },\n },\n bim: {\n createUpload(projectId: string, params: { uploadedBy: string }) {\n return axios.post(\n `${axios.env.ingestApiUrl}/bim/${projectId}/upload`,\n null,\n { params }\n )\n },\n getBIMs(params: { params: Partial<BimUploadsQueryParams> }) {\n return axios.get(`${axios.env.ingestApiUrl}/bim/uploads/`, params)\n },\n getArchive(id: number) {\n return axios.get(`${axios.env.ingestApiUrl}/bim/uploads/archive/${id}`)\n },\n deleteUpload(id: number) {\n return axios.delete(`${axios.env.ingestApiUrl}/bim/uploads/${id}`)\n },\n upload(\n projectId: string,\n params: {\n id: string\n name: string\n },\n payload: BimUploadPayload\n ) {\n return axios.put(\n `${axios.env.ingestApiUrl}/bim/${projectId}/upload`,\n payload,\n { params }\n )\n },\n },\n mobileCapture: {\n getProjectMobileAssets(\n params: Record<string, unknown>\n ): Promise<MobileCaptureSnapshot[]> {\n return axios.get(`${axios.env.ingestApiUrl}/mobile/assets/`, {\n params,\n })\n },\n getMobileAssetPhoto(\n assetId: string | number,\n params: Record<string, unknown>\n ) {\n return axios.get(`${axios.env.ingestApiUrl}/mobile/assets/${assetId}`, {\n params,\n })\n },\n },\n getTotalQueueSize() {\n return axios.get(`${axios.env.ingestApiUrl}/queue`)\n },\n checkFlightAvailableFeatures(\n projectId: string,\n params: Record<string, unknown>\n ) {\n return axios.get(\n `${axios.env.ingestApiUrl}/drone/api/${projectId}/flight-available-features`,\n {\n params,\n }\n )\n },\n}\n","import { axios } from \"./client\"\nimport {\n ExNvrDeviceConfig,\n ExNvrLoginResponse,\n ExNvrRecordingInterval,\n ExNvrSystemStatus,\n} from \"@evercam/api/types/\"\n\nexport const ExNvrApi = {\n users: {\n login(\n {\n apiUrl,\n username,\n password,\n }: {\n apiUrl: string\n username: string\n password: string\n },\n config: { timing?: boolean } = {}\n ): Promise<ExNvrLoginResponse> {\n return axios.post(\n `${apiUrl}/api/users/login`,\n {\n username,\n password,\n },\n config\n )\n },\n },\n devices: {\n getDevices({\n apiUrl,\n token,\n }: {\n apiUrl: string\n token: string\n }): Promise<ExNvrDeviceConfig> {\n return axios.get(`${apiUrl}/api/devices/`, {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n })\n },\n getSystemStatus(\n { apiUrl, token }: { apiUrl: string; token: string },\n config: Record<string, string> = {}\n ): Promise<ExNvrSystemStatus> {\n return axios.get(`${apiUrl}/api/system/status`, {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n ...config,\n })\n },\n getDeviceConfig(\n {\n apiUrl,\n deviceId,\n token,\n }: {\n apiUrl: string\n deviceId: string\n token: string\n },\n config: { timing?: boolean } = {}\n ): Promise<ExNvrDeviceConfig> {\n return axios.get(`${apiUrl}/api/devices/${deviceId}`, {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n ...config,\n })\n },\n getAvailableRecordings(\n {\n apiUrl,\n deviceId,\n token,\n }: {\n apiUrl: string\n deviceId: string\n token: string\n },\n config: { timing?: boolean } = {}\n ): Promise<ExNvrRecordingInterval[]> {\n return axios.get(`${apiUrl}/api/devices/${deviceId}/recordings`, {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n ...config,\n })\n },\n downloadFootage({\n apiUrl,\n deviceId,\n token,\n startDate,\n duration,\n }: {\n apiUrl: string\n deviceId: string\n token: string\n startDate: string\n duration: number\n }): Promise<Blob> {\n return axios.get(`${apiUrl}/api/devices/${deviceId}/footage`, {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n params: {\n startDate,\n duration,\n },\n responseType: \"blob\",\n })\n },\n },\n}\n","import { axios } from \"./client\"\n\nexport const AuthzApi = {\n roles: {\n async get(params: any) {\n return await axios.get(\"/admin/authz/roles\", params)\n },\n async getRoleDetails(id: number) {\n return await axios.get(`/admin/authz/roles/${id}`)\n },\n createRole(params: any) {\n return axios.post(\"/admin/authz/roles\", params)\n },\n updateRole(id: number, params: any) {\n return axios.patch(`/admin/authz/roles/${id}`, params)\n },\n deleteRole(id: number) {\n return axios.delete(`/admin/authz/roles/${id}`)\n },\n addPermission(id: number, action: string) {\n return axios.post(`/admin/authz/roles/${id}/permissions/`, { action })\n },\n deletePermission(id: number, action: string) {\n return axios.delete(`/admin/authz/roles/${id}/permissions/${action}`)\n },\n async getRoleUsers(id: number) {\n return axios.get(`/admin/authz/roles/${id}/users`)\n },\n async assignUsers(id: number, emails: Array<string>, resource_id: string) {\n return axios.post(`/admin/authz/roles/${id}/users`, {\n emails,\n resource_id,\n })\n },\n async unassignUsers(\n id: number,\n emails: Array<string>,\n resource_id: string\n ) {\n return axios.delete(`/admin/authz/roles/${id}/users`, {\n params: {\n emails,\n resource_id,\n },\n })\n },\n getUserRoles() {\n return axios.get(\"/users/roles\")\n },\n },\n scopes: {\n async get() {\n return await axios.get(\"/admin/authz/scopes\")\n },\n create(params: any) {\n return axios.post(\"/admin/authz/scopes\", params)\n },\n delete(id: number) {\n return axios.delete(`/admin/authz/scopes/${id}`)\n },\n update(id: number, params: any) {\n return axios.patch(`/admin/authz/scopes/${id}`, params)\n },\n },\n}\n"],"names":["_360UrlParams","_360AssetType","_360IntergrationType","AconexDocumentDataType","AconexFormComponentType","AconexMandatoryStatus","AnalyticsEventPageId","AnalyticsEvent","AnprDirection","AnprEventStatus","MediaType","MediaFileType","MediaStatus","MediaStatusId","ClipsCategory","BimModelType","BimUploadStatus","BIMLayerTypes","CameraStatus","CameraFeatureFlag","NvrModel","CameraModel","ResolutionDimensions","ResolutionLabel","HddStatus","DuplicatedCameraFields","CompareStatus","CopilotMessageAuthor","CopilotMessageType","CopilotStepId","CopilotMissingFieldsLabels","CopilotSocketEvent","CopilotProvider","CopilotSuggestion","CopilotChatProvider","CopilotLayout","CopilotToolId","CopilotMissingFieldComponent","CopilotMissingFieldName","CopilotMissingFieldType","MilesightCameraCodecId","MilesightCameraVbrQualityId","MilesightCameraRateModeId","DroneUrlParams","ErrorType","EvercamApiErrorCode","GateReportDetectionType","GateReportEventType","DetectionLabel","SegmentLabel","GateReportVehicleType","GateReportDataSource","GateReportEventDirection","GateReportExportType","GateReportROIShapeType","GateReportProcessingStatus","VEHICLE_TYPE_IDS","IngestProcessingStatus","MapType","Connector","NotificationType","NvrDeviceType","NvrHddStatus","ProgressPhotoDialogType","ProjectStatus","ProjectArchiveTier","ProjectFeatureFlag","BrainTool","CloudRecordingFrequency","CloudRecordingDuration","CloudRecordingStatus","SnapshotExtractionInterval","VpnServer","RoiType","RoiShapeType","RoiDirection","UrlParamValue","TimelineUrlParam","Timeline360UrlParams","TimelineDroneUrlParams","TimelineMediaUrlParams","TimelineBimUrlParams","TimelineExNvrRecordingsUrlParams","TimelineAnprUrlParams","TimelineMobileCaptureUrlParams","TimelineCommentsUrlParams","PowerType","PowerSchedule","RouterStatus","SharePermission","ShareType","ShareRequestStatus","ShareVisibility","SmsCommands","SmsStatuses","EMapTypes","EMarkers","EPageType","EPaths","EProjectItems","ERoles","ExNvrHealthCheckTaskId","ExNvrFootageAvailableStatus","ExNvrDeviceState","ExNvrMetricId","TimelapseStatus","TimelapseDuration","TimelapseScheduleType","TimelapsePeriod","TimelapseExportStep","UserFeatureFlag","Persona","VideoWallItemType","WeatherProvider","UnitSystem","MobileDevice","_3dViewer","SsoProvider","InfoPage","EvercamGoFeatures","DownloadTypes","FeedbackContext","TimelinePrecision","TaskStatus","PtzDirection","ZoomDirection","KitStatus","KitAlarm","KitMetricId","KitMetricPeriod","GrafanaMetricId","KitChartType","AuditLogActionType","SnapshotExtractionStatus","SnapshotExtractionType","SiteAnalyticsMode","DelayUnit","CommonWidgetSettingsKeys","RecordingsWidgetSettingsKeys","LiveViewWidgetSettingsKeys","BimCompareWidgetSettingsKeys","VideoWallWidgetSettingsKeys","WidgetType","RessourceByType","CountryId","CountryCode","Region","CameraRegion","AutomationProvider","createErrorClass","errorName","error","e","BadRequestError","NotFoundError","UnauthorizedError","GatewayTimeoutError","BadGatewayError","ForbiddenError","HlsError","SnapshotError","ConflictError","InternalServerError","numberOfRequestsSentInThePastSecond","maxRequestsPerSecond","requestsRateLimit","r","onRequest","request","axiosEnv","ensureBaseUrl","addAuthTokenHeader","transformCamelCaseToSnakeCase","onResponse","response","_a","data","_b","camelizeKeys","_c","_e","_d","duration","onError","statusCode","method","url","backendErrorCode","_g","_f","customError","customMessage","Axios","breadcrumbLogger","JwtToken","paramsIgnoredCasing","params","acc","item","decamelizeKeys","formData","key","value","decamelize","OnRequestExpiredTokenInterceptor","isTokenExpired","handler","axios","requestInterceptors","responseInterceptors","errorInterceptors","vars","requestInterceptor","errorInterceptor","interceptor","responseInterceptor","setHeader","headerName","setToken","token","cancelTokens","t","AdminApi","cameraId","device","payload","exid","id","template","extractionId","projectExid","kitId","metric","fromDate","toDate","cameraExid","ids","simId","number","email","VideoWallApi","projectId","encodedEmail","headers","preset","presetName","_3dFirebaseApi","res","toQueryString","paramsObject","forceSnakeCase","forceArrayBrackets","param","index","encodedParam","_acc","v","i","paramName","queryStringToObject","queryString","getAiApiUrl","AiApi","updatedBy","anprEventId","eventBody","anprEventsIds","action","extraParams","eventId","eventType","eventTime","timestamp","roi","iouThreshold","WebRtcApi","tag","WeatherApi","weatherProvider","getLabsBaseUrl","labsPrNumber","EvercamLabsApi","host","httpPort","username","password","config","conversationId","message","messageId","precision","prefix","fileName","metrics","period","EvercamApi","apiId","apiKey","widgetId","widgetKey","provider","user","sessionId","dateTime","name","hubId","parentFolderId","getDerivatives","folderId","year","month","day","cancelToken","progressPhotoId","companyExid","companyId","archive","PtzApi","presetId","isRecordingFromNvr","direction","zoomValue","IngestApi","assetId","ExNvrApi","apiUrl","deviceId","startDate","AuthzApi","emails","resource_id"],"mappings":"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"}
1
+ {"version":3,"file":"index.umd.cjs","sources":["../types/360.ts","../types/aconex.ts","../types/analytics.ts","../types/anpr.ts","../types/media.ts","../types/bim.ts","../types/camera.ts","../types/compare.ts","../types/copilot.ts","../types/devices.ts","../types/drone.ts","../types/errors.ts","../types/gateReport.ts","../types/hdd.ts","../types/ingest.ts","../types/map.ts","../types/connector.ts","../types/notification.ts","../types/nvr.ts","../types/progressPhoto.ts","../types/project.ts","../types/recording.ts","../types/roi.ts","../types/routeParams.ts","../types/router.ts","../types/shares.ts","../types/sim.ts","../types/sitePlanner.ts","../types/streaming.ts","../types/timelapse.ts","../types/user.ts","../types/videoWall.ts","../types/weather.ts","../types/shared.ts","../types/kit.ts","../types/auditLogs.ts","../types/snapshots.ts","../types/siteAnalytics.ts","../types/widget.ts","../types/countries.ts","../types/automation.ts","../api/client/customErrors.ts","../api/client/interceptors.ts","../api/client/axios.ts","../api/adminApi.ts","../api/videoWallApi.ts","../api/3dFirebaseApi.ts","../utils.ts","../api/aiApi.ts","../api/webRtcApi.ts","../api/weatherApi.ts","../api/evercamLabsApi.ts","../api/evercamApi.ts","../api/ptzApi.ts","../api/ingestApi.ts","../api/exNvrApi.ts","../api/authzApi.ts"],"sourcesContent":["import { DateType } from \"@/types/time\"\n\nexport type _360CameraParams = {\n azimuthAngle: number\n polarAngle: number\n}\n\nexport type _360Floor = {\n floorID: string\n name: string\n}\n\nexport type _360Scene = {\n date: string // DD-MM-YYYY\n dateID: string\n floors: _360Floor[]\n polarAngle: number\n azimuthAngle: number\n}\n\nexport type _360ProjectJsonResponse = {\n dates: _360Scene[]\n [key: string]: any\n}\n\nexport type MobileCaptureSnapshot = {\n id: string\n uploadedBy: string\n updatedAt: string //YYYY-MM-DDTHH:mm:SS.MS (ISO)\n assetType: string //mobile_photos or mobile_audios\n thumbnailUrl: string //presigned S3 URL\n}\n\nexport enum _360UrlParams {\n DateId = \"date_id\",\n Floor = \"floor\",\n Marker = \"marker\",\n PolarAngle = \"polarAngle\",\n AzimuthAngle = \"azimuthAngle\",\n}\n\nexport enum _360AssetType {\n Video = \"video\",\n Image = \"image\",\n Model = \"model\",\n Route = \"route\",\n MobilePhoto = \"mobile_photos\",\n MobileAudio = \"mobile_audios\",\n}\n\nexport enum _360IntergrationType {\n Matterport = \"Matterport\",\n OpenSpace = \"Openspace\",\n HoloBuilder = \"Holobuilder\",\n DroneDeploy = \"Dronedeploy\",\n Evercam = \"Evercam\",\n}\n\nexport type _360AssetsQueryParams = {\n page: number\n limit: number\n projectID: string\n date: DateType\n floor: string\n id: string\n}\n\nexport type _360AssetsRequestPayload = {\n projectId: string\n date: DateType\n floor: string\n uploadedBy?: string\n}\n\nexport type _360AssetsUploadPayload = {\n targetPointsCount: number\n assetType: string\n upload: {\n url: string\n title: string\n fileExtension: string\n }[]\n deviceSerial: string\n startPosition: string\n endPosition: string\n isTimelapse: boolean\n}\n\nexport type Generate360MapRequestPayload = {\n dateId: string\n floorId: string\n cameraOffset: string\n startPoint: string\n endPoint: string\n}\n","export type AconexUserProjectsResponsePayload = Array<{\n id: number\n name: string\n shortName: string\n startDate: string\n endDate: string\n}>\n\nexport type AconexDocumentSchemaField = {\n dataType: AconexDocumentDataType\n identifier: string\n schemaValues: Array<{ id: string; value: string }>\n fieldName: string\n mandatoryStatus: AconexMandatoryStatus\n componentType?: AconexFormComponentType\n items?: Array<any>\n disabled?: boolean\n}\n\nexport enum AconexDocumentDataType {\n Long = \"LONG\",\n Integer = \"INTEGER\",\n String = \"STRING\",\n Boolean = \"BOOLEAN\",\n Date = \"DATE\",\n}\n\nexport enum AconexFormComponentType {\n Select = \"SelectField\",\n Text = \"TextField\",\n DateTime = \"DateTimeField\",\n Switch = \"SwitchField\",\n}\n\nexport enum AconexMandatoryStatus {\n Mandatory = \"MANDATORY\",\n NotMandatory = \"NOT_MANDATORY\",\n}\n\nexport type AconexAuthCallbackParams = {\n code: string\n location: string\n}\n\nexport type AconexEditedImageUploadRequestPayload = {\n projectExid: string\n snapshot: string\n}\n","import { DateType } from \"@/types\"\n\nexport type AnalyticsRequestPayload = {\n name: string\n cameraExid: string\n} & { [key: string]: any }\n\nexport enum AnalyticsEventPageId {\n Timeline = \"Timeline\",\n Copilot = \"Copilot\",\n Recordings = \"Recordings\",\n Liveview = \"LiveView\",\n Compare = \"Compare\",\n BimCompare = \"BimCompare\",\n Sharing = \"Sharing\",\n Timelapse = \"Timelapse\",\n Project = \"Project\",\n AllProjects = \"AllProjects\",\n Tutorials = \"Tutorials\",\n ProjectMapView = \"ProjectMapView\",\n AccountMapView = \"AccountMapView\",\n Automations = \"Automations\",\n ProgressPhotosUnsubscribe = \"ProgressPhotosUnsubscribe\",\n VideoWall = \"VideoWall\",\n ProjectSettings = \"ProjectSettings\",\n ProjectSettingsCameraSettings = \"ProjectSettings-CameraSettings\",\n ProjectSettingsMembers = \"ProjectSettings-Members\",\n ProjectSettingsOverview = \"ProjectSettings-Overview\",\n Settings = \"Settings\",\n SettingsAccount = \"Settings-Account\",\n SettingsActivities = \"Settings-Activities\",\n SettingsConnectors = \"Settings-Connectors\",\n MediaHub = \"MediaHub\",\n MediaOveriew = \"MediaOveriew\",\n GateReport = \"GateReport\",\n Bim = \"Bim\",\n Drone = \"Drone\",\n ThreeSixty = \"360\",\n SitePlanner = \"SitePlanner\",\n Widgets = \"Widgets\",\n Company = \"Company\",\n EmbeddedLive = \"EmbeddedLive\",\n EmbeddedRecordings = \"EmbeddedRecordings\",\n EmbeddedBimCompare = \"EmbeddedBimCompare\",\n GateReportInfo = \"GateReportInfo\",\n BimInfo = \"BimInfo\",\n DroneInfo = \"DroneInfo\",\n ThreeSixtyInfo = \"360Info\",\n BimCompareInfo = \"BimCompareInfo\",\n WeatherReport = \"WeatherReport\",\n EvercamGoInfo = \"EvercamGoInfo\",\n}\n\nexport enum AnalyticsEvent {\n // Global events\n PageView = \"PageView\",\n OpenCompanyPage = \"OpenCompanyPage\",\n OpenSettings = \"OpenSettings\",\n ToggleHelpDialog = \"ToggleHelpDialog\",\n\n // Layout events\n LayoutToggleRightSidebar = \"Layout-ToggleRightSidebar\",\n LayoutResizeRightSidebar = \"Layout-ResizeRightSidebar\",\n LayoutThemeMode = \"Layout-ThemeMode\",\n\n // Features toggle events\n Xray = \"Xray-Toggle\",\n Weather = \"Weather-Toggle\",\n MarkUpTool = \"MarkUpTool-Toggle\",\n Comment = \"Comment-Toggle\",\n Compare = \"Compare-Toggle\",\n Copilot = \"Copilot-Toggle\",\n\n // App settings events\n SettingsAccountUpdatePassword = \"UpdatePassword\",\n SettingsAccountUpdatePersonalInformation = \"UpdatePersonalInformation\",\n SettingsAccountRevokeSession = \"RevokeSession\",\n SettingsAccountCancelRevokeSession = \"CancelRevokeSession\",\n SettingsAccountClickRowsPerPage = \"ClickRowsPerPage\",\n SettingsAccountOpenDeleteAccountDialog = \"DeleteAccount\",\n SettingsActivitiesFromDateSelect = \"FromDateSelect\",\n SettingsActivitiesToDateSelect = \"ToDateSelect\",\n SettingsConnectorsConnectToProcore = \"ConnectToProcore\",\n SettingsConnectorsConnectToAconex = \"ConnectToAconex\",\n SettingsConnectorsConnectToAutodesk = \"ConnectToAutodesk\",\n SettingsConnectorsConnectToVoyageControl = \"ConnectToVoyageControl\",\n SettingsConnectorsContactUsButtonClick = \"ClickContactUs\",\n SettingsConnectorsRemoveAconexConnection = \"RemoveAconex\",\n SettingsConnectorsRemoveAutodeskConnection = \"RemoveAutodesk\",\n SettingsConnectorsRemoveProcoreConnection = \"RemoveProcore\",\n SettingsConnectorsRemoveVoyageControlConnection = \"RemoveVoyageControl\",\n SettingsConnectorsToggleConnectorPromptDialog = \"ToggleConnectorPromptDialog\",\n SettingsConnectorsToggleVoyageControlDialog = \"ToggleVoyageControlDialog\",\n\n // Widgets events\n WidgetsAddWidgetClick = \"AddWidget\",\n WidgetsCancelClick = \"Cancel\",\n WidgetsEditHeight = \"EditHeight\",\n WidgetsEditHeightResolutionType = \"EditHeightResolutionType\",\n WidgetsEditWidth = \"EditWidth\",\n WidgetsEditWidthResolutionType = \"EditWidthResolutionType\",\n WidgetsLayout = \"ClickLayout\",\n WidgetsSaveClick = \"Save\",\n WidgetsSelectCamera = \"SelectCamera\",\n WidgetsSelectTypeBIMCompare = \"SelectTypeBIMCompare\",\n WidgetsSelectTypeLiveView = \"SelectTypeLiveView\",\n WidgetsSelectTypeRecordings = \"SelectTypeRecordings\",\n WidgetsSelectTypeVideoWall = \"SelectTypeVideoWall\",\n WidgetsSettingRefreshRate = \"EditRefreshRate\",\n WidgetsSettingRestrictRecentImagesInput = \"EditRestrictRecentImagesInput\",\n WidgetsSettingToggleBIMCompareDarkMode = \"ToggleBIMDarkMode\",\n WidgetsSettingToggleBIMCompareTimeLine = \"ToggleBIMTimeline\",\n WidgetsSettingToggleBIMCompareCalendar = \"ToggleBIMCalendar\",\n WidgetsSettingToggleDownload = \"ToggleDownload\",\n WidgetsSettingToggleFullScreen = \"ToggleFullScreen\",\n WidgetsSettingTogglePlayPause = \"TogglePlayPause\",\n WidgetsSettingToggleRecordingsCalendar = \"ToggleRecordingsCalendar\",\n WidgetsSettingToggleRecordingsDarkMode = \"ToggleRecordingsDarkMode\",\n WidgetsSettingToggleRestrictRecentImages = \"ToggleRestrictRecentImages\",\n WidgetsSettingToggleZoom = \"ToggleZoom\",\n WidgetsTogglePublicWidget = \"TogglePublicWidget\",\n\n // Player events\n PlayerSelectCamera = \"Player-SelectCamera\",\n PlayerDownload = \"Player-Download\",\n PlayerToggleFullscreen = \"Player-ToggleFullscreen\",\n PlayerEnableLive = \"Player-EnableLive\",\n PlayerTogglePlayback = \"Player-TogglePlayback\",\n PlayerSelectSpeed = \"Player-SelectSpeed\",\n PlayerSelectQuality = \"Player-SelectQuality\",\n PlayerJumptoNextTicks = \"Player-JumptoNextTicks\",\n PlayerJumptoPreviousTicks = \"Player-JumptoPreviousTicks\",\n PlayerSwitchMode = \"Player-SwitchMode\",\n PlayerZoomIn = \"Player-ZoomIn\",\n PlayerZoomOut = \"Player-ZoomOut\",\n\n // PTZ camera events\n PTZAddPresetClick = \"PTZ-AddPresetClick\",\n PTZCreatePreset = \"PTZ-CreatePreset\",\n PTZUpdatePreset = \"PTZ-UpdatePreset\",\n PTZDeletePreset = \"PTZ-DeletePreset\",\n PTZMoveDown = \"PTZ-MoveDown\",\n PTZMoveLeft = \"PTZ-MoveLeft\",\n PTZMoveRight = \"PTZ-MoveRight\",\n PTZMoveUp = \"PTZ-MoveUp\",\n PTZPresetSelect = \"PTZ-PresetSelect\",\n PTZResetPosition = \"PTZ-ResetPosition\",\n PTZToggleCreatePresetForm = \"PTZ-ToggleCreatePresetForm\",\n PTZToggleDeletePresetDialog = \"PTZ-ToggleDeletePresetDialog\",\n PTZToggleEditPresetForm = \"PTZ-ToggleEditPresetForm\",\n PTZTogglePresetsMenu = \"PTZ-TogglePresetsMenu\",\n PTZZoomIn = \"PTZ-ZoomIn\",\n PTZZoomOut = \"PTZ-ZoomOut\",\n\n // Timeline actions\n TimelineClickEvent = \"Timeline-ClickEvent\",\n TimelineCompareMoveBeforeMarker = \"Compare-MoveBeforeMarker\",\n TimelineCompareMoveAfterMarker = \"Compare-MoveAfterMarker\",\n TimelineCompareSlide = \"Compare-Slide\",\n TimelineSelectMilestoneItem = \"Timeline-SelectMilestoneItem\",\n TimelineSelectTimestamp = \"Timeline-SelectTimestamp\",\n\n // Copilot\n CopilotSendMessage = \"Copilot-SendMessage\",\n CopilotClickTimestamp = \"Copilot-ClickTimestamp\",\n CopilotRegenerate = \"Copilot-Regenerate\",\n CopilotError = \"Copilot-Error\",\n CopilotNavigation = \"Copilot-Navigation\",\n CopilotToggle = \"Copilot-Toggle\",\n\n // Timeline groups visibility events\n GroupsVisibilityMobileCapture = \"GroupsVisibility-MobileCapture\",\n GroupsVisibilityAnpr = \"GroupsVisibility-Anpr\",\n GroupsVisibilityComments = \"GroupsVisibility-Comments\",\n GroupsVisibilityMediaHub = \"GroupsVisibility-MediaHub\",\n GroupsVisibilityBimMilestones = \"GroupsVisibility-BimMilestines\",\n GroupsVisibilityDroneFlights = \"GroupsVisibility-DroneFlights\",\n GroupsVisibility360Walks = \"GroupsVisibility-360Walks\",\n GroupsVisibilityExNvrVideoRecordings = \"GroupsVisibility-ExNvrVideoRecordings\",\n GroupsVisibilityLuminance = \"GroupsVisibility-Luminance\",\n\n // Comments events\n CommentsPlaceMarker = \"Comments-PlaceMarker\",\n CommentsSave = \"Comments-Save\",\n CommentsCancelSave = \"Comments-CancelSave\",\n CommentsRemove = \"Comments-Remove\",\n CommentsCancelRemove = \"Comments-CancelRemove\",\n CommentsArchive = \"Comments-Archive\",\n CommentsCancelArchive = \"Comments-CancelArchive\",\n CommentsSelect = \"Comments-Select\",\n\n // Xray events\n XrayMove = \"Xray-Move\",\n XrayMoveBeforeMarker = \"Xray-MoveBeforeMarker\",\n XrayMoveAfterMarker = \"Xray-MoveAfterMarker\",\n XrayToggleExportDialog = \"Xray-ToggleExportDialog\",\n XrayDownload = \"Xray-Download\",\n XraySaveToMediaHub = \"Xray-SaveToMediaHub\",\n XarySelectDate = \"Xray-SelectDate\",\n XarySelectLatestDate = \"Xray-SelectLatestDate\",\n XarySelectOldestDate = \"Xray-SelectOldestDate\",\n XraySendToConnector = \"Xray-SendToConnector\",\n\n // Weather events\n WeatherGoBackDate = \"Weather-GoBackDate\",\n WeatherGoForwardDate = \"Weather-GoForwardDate\",\n WeatherReportExportFile = \"ExportFile\",\n WeatherReportExportType = \"ExportType\",\n WeatherReportMediaHubUploadFile = \"MediaHubUploadFile\",\n WeatherReportSelectStartDate = \"SelectStartDate\",\n WeatherReportSelectEndDate = \"SelectEndDate\",\n WeatherReportViewChart = \"ViewChart\",\n WeatherSelectDate = \"Weather-SelectDate\",\n WeatherSelectLegend = \"Weather-SelectLegend\",\n WeatherSelectProvider = \"Weather-SelectProvider\",\n WeatherSelectTempScale = \"Weather-SelectTempScale\",\n\n // Compare events\n CompareSlide = \"Slide\",\n CompareSelectBeforeDate = \"SelectBeforeDate\",\n CompareSelectBeforeLatestDate = \"SelectBeforeLatestDate\",\n CompareSelectBeforeOldestDate = \"SelectBeforeOldestDate\",\n CompareSelectAfterDate = \"SelectAfterDate\",\n CompareSelectAfterOldestDate = \"SelectAfterOldestDate\",\n CompareSelectAfterLatestDate = \"SelectAfterLatestDate\",\n CompareToggleExportDialog = \"ToggleExportDialog\",\n CompareSaveToMediaHub = \"SaveToMediaHub\",\n CompareGoToMediaHub = \"GoToMediaHub\",\n CompareDownloadAs = \"DownloadAs\",\n CompareCopyDownloadFileUrl = \"CopyDownloadFileUrl\",\n\n // Bim Compare events\n BimCompareSlide = \"BimCompare-Slide\",\n BimCompareSelectCameraDate = \"BimCompare-SelectCameraDate\",\n BimCompareSelectCameraLatestDate = \"BimCompare-SelectCameraLatestDate\",\n BimCompareSelectCameraOldestDate = \"BimCompare-SelectCameraOldestDate\",\n BimCompareSelectBimDate = \"BimCompare-SelectBimDate\",\n BimCompareSelectBimOldestDate = \"BimCompare-SelectBimOldestDate\",\n BimCompareSelectBimLatestDate = \"BimCompare-SelectBimLatestDate\",\n BimCompareSelectModel = \"BimCompare-SelectModel\",\n BimCompareChangeTransparency = \"BimCompare-ChangeTransparency\",\n BimCompareSelectTimelineDate = \"BimCompare-SelectTimelineDate\",\n BimCompareToggleExportDialog = \"BimCompare-ToggleExportDialog\",\n BimCompareSaveToMediaHub = \"BimCompare-SaveToMediaHub\",\n BimCompareGoToMediaHub = \"BimCompare-GoToMediaHub\",\n BimCompareDownloadAs = \"BimCompare-DownloadAs\",\n BimCompareCopyDownloadFileUrl = \"BimCompare-CopyDownloadFileUrl\",\n\n // Mark-up tool events\n MarkUpToolClose = \"MarkUpTool-Close\",\n MarkUpToolCopyImage = \"MarkUpTool-CopyImage\",\n MarkUpToolOpen = \"MarkUpTool-Open\",\n MarkUpToolSelectTool = \"MarkUpTool-SelectTool\",\n MarkUpToolSelectBlur = \"MarkUpTool-SelectBlur\",\n MarkUpToolSelectCrop = \"MarkUpTool-SelectCrop\",\n MarkUpToolSelectLine = \"MarkUpTool-SelectLine\",\n MarkUpToolSelectBrush = \"MarkUpTool-SelectBrush\",\n MarkUpToolSelectRectangle = \"MarkUpTool-SelectRectangle\",\n MarkUpToolSelectCircle = \"MarkUpTool-SelectCircle\",\n MarkUpToolSelectArrow = \"MarkUpTool-SelectArrow\",\n MarkUpToolSelectText = \"MarkUpTool-SelectText\",\n MarkUpToolUndo = \"MarkUpTool-Undo\",\n MarkUpToolRedo = \"MarkUpTool-Redo\",\n MarkUpToolSelectColor = \"MarkUpTool-SelectColor\",\n MarkUpToolApplyCrop = \"MarkUpTool-ApplyCrop\",\n MarkUpToolCancelCrop = \"MarkUpTool-CancelCrop\",\n MarkUpToolCancelSend = \"MarkUpTool-CancelSend\",\n MarkUpToolOpenEditName = \"MarkUpTool-OpenEditName\",\n MarkUpToolCancelEditName = \"MarkUpTool-CancelEditName\",\n MarkUpToolSaveEditedName = \"MarkUpTool-SaveEditedName\",\n MarkUpToolSaveToMediaHub = \"MarkUpTool-SaveToMediaHub\",\n MarkUpToolDownloadAs = \"MarkUpTool-DownloadAs\",\n MarkUpToolSendToConnector = \"MarkUpTool-SendToConnector\",\n\n // Ai Tools events\n AiToolToggleBrainToolsMenu = \"AITool-ToggleBrainToolsMenu\",\n AiToolSelectObjectDetection = \"AITool-SelectObjectDetection\",\n AiToolSelectAskChatGpt = \"AITool-SelectAskChatGpt\",\n AiToolSelectSegmentation = \"AITool-SelectSegmentation\",\n AiToolSelectDepthAnalysis = \"AITool-SelectDepthAnalysis\",\n AiToolUpdateTransparency = \"AITool-UpdateTransparency\",\n\n // Recordings events\n RecordingsCancelExportDialog = \"CancelExportDialog\",\n RecordingsClickSupportLink = \"ClickSupportLink\",\n RecordingsCreateClip = \"CreateClip\",\n RecordingsToggleExportDialog = \"ToggleExportDialog\",\n RecordingToggleGateReportEvents = \"ToggleGateReportEvents\",\n RecordingsSelectDate = \"SelectDate\",\n RecordingsSelectDateClickMonthYear = \"SelectDate-ClickMonthYear\",\n RecordingsSelectLatestDate = \"SelectLatestDate\",\n RecordingsSelectOldestDate = \"SelectOldestDate\",\n\n // Sharing events\n SharingToggleAddUserDialog = \"ToggleAddUserDialog\",\n SharingToggleEditVisibilityOptionsDialog = \"ToggleEditVisibilityOptionsDialog\",\n SharingAddUser = \"AddUser\",\n SharingToggleDeleteUserDialog = \"ToggleDeleteUserDialog\",\n SharingDeleteUser = \"DeleteUser\",\n SharingSaveVisibilityOptions = \"SaveVisibilityOptions\",\n SharingCopyLink = \"CopyLink\",\n SharingResendInvite = \"ResendInvite\",\n SharingTransferOwnership = \"TransferOwnership\",\n SharingSortBy = \"SortBy\",\n SharingChangeAccessRight = \"ChangeAccessRight\",\n\n // ThreeSixty events\n ThreeSixtyChangeDate = \"ChangeDate\",\n ThreeSixtyChangeFloor = \"ChangeFloor\",\n ThreeSixtyCloseCompare = \"CloseCompare\",\n ThreeSixtyCloseForgeBIM = \"CloseForgeBIM\",\n ThreeSixtyDeleteTag = \"DeleteTag\",\n ThreeSixtyDisableMeasuringTool = \"DisableMeasuringTool\",\n ThreeSixtyDisableTagTool = \"DisableTagTool\",\n ThreeSixtyEnableMeasuringTool = \"EnableMeasuringTool\",\n ThreeSixtyEnableTagTool = \"EnableTagTool\",\n ThreeSixtyLockCompare = \"LockCompare\",\n ThreeSixtyLockForgeBIM = \"LockForgeBIM\",\n ThreeSixtyMarkerThumbnailClicked = \"MarkerThumbnailClicked\",\n ThreeSixtyMiniMapMarkerClicked = \"MiniMapMarkerClicked\",\n ThreeSixtyOpen = \"Open\",\n ThreeSixtyOpenCompare = \"OpenCompare\",\n ThreeSixtyOpenForgeBIM = \"OpenForgeBIM\",\n ThreeSixtyOpenMarkersThumbnailsList = \"OpenMarkersThumbnailsList\",\n ThreeSixtyOpenTagsList = \"OpenTagsList\",\n ThreeSixtySaveTag = \"SaveTag\",\n ThreeSixtyShareView = \"ShareView\",\n ThreeSixtyTagClicked = \"TagClicked\",\n ThreeSixtyToggleMarkersVisibility = \"ToggleMarkersVisibility\",\n ThreeSixtyToggleMinimapVisibility = \"ToggleMinimapVisibility\",\n ThreeSixtyToggleMiniModel = \"ToggleMiniModel\",\n ThreeSixtyToggleTagsVisibility = \"ToggleTagsVisibility\",\n ThreeSixtyTourPause = \"Tour-Pause\",\n ThreeSixtyTourPlay = \"Tour-Play\",\n ThreeSixtyTourSetSpeedXHalve = \"Tour-SetSpeedX0.5\",\n ThreeSixtyTourSetSpeedX1 = \"Tour-SetSpeedX1\",\n ThreeSixtyTourSetSpeedX2 = \"Tour-SetSpeedX2\",\n ThreeSixtyTourSetSpeedX4 = \"Tour-SetSpeedX4\",\n ThreeSixtyTourToggleLoop = \"Tour-ToggleLoop\",\n ThreeSixtyUnlockCompare = \"UnlockCompare\",\n ThreeSixtyUnlockForgeBIM = \"UnlockForgeBIM\",\n\n // Drone events\n DroneAreaToolClick = \"AreaTool-Click\",\n DroneChangeDate = \"ChangeDate\",\n DroneChooseTagType = \"ChooseTagType\",\n DroneClickCameraLiveView = \"ClickCameraLiveView\",\n DroneClickCameraMarker = \"ClickCameraMarker\",\n DroneCompareToolClick = \"CompareTool-Click\",\n DroneCompareToolSaveToMediaHub = \"CompareToolSaveToMediaHub\",\n DroneCompareToolSliderMove = \"CompareTool-SliderMove\",\n DroneCompareToolToggleExportDialog = \"CompareToolToggleExportDialog\",\n DroneCopyLocationToClipboard = \"CopyLocationToClipboard\",\n DroneEnable2DImagery = \"Enable2DImagery\",\n DroneGenerateUploadFlight = \"GenerateUploadFlight\",\n DroneInspectionToolClick = \"InspectionTool-Click\",\n DroneMeasuringToolClick = \"MeasuringTool-Click\",\n DroneOpenHelpPanel = \"OpenHelpPanel\",\n DroneOpenImageViewer = \"OpenImageViewer\",\n DroneResetView = \"ResetView\",\n DroneSaveTag = \"SaveTag\",\n DroneSettingsToggle360PathsVisibility = \"Settings-Toggle360PathsVisibility\",\n DroneSettingsToggleCameraMarkersVisibility = \"Settings-ToggleCameraMarkersVisibility\",\n DroneSettingsToggleSurroundingBuildingsTool = \"Settings-ToggleSurroundingBuildingsTool\",\n DroneSettingsToggleTagsVisibility = \"Settings-ToggleTagsVisibility\",\n DroneShareLink = \"ShareLink\",\n DroneTagsToolClick = \"TagsTool-Click\",\n DroneToggleBimCompareTool = \"ToggleBimCompareTool\",\n DroneToggleFullScreen = \"ToggleFullScreen\",\n DroneToggleMapStyle = \"ToggleMapStyle\",\n DroneToggleQualityMode = \"ChooseQuality\",\n DroneToggleSideMenu = \"ToggleSideMenu\",\n DroneToggleImageryPlan = \"ToggleImageryPlan\",\n DroneToggleSceneMode = \"ToggleSceneMode\",\n DroneUploadFlight = \"UploadFlight\",\n DroneViewLocationInGoogleMaps = \"ViewLocationInGoogleMaps\",\n DroneVolumeToolClick = \"VolumeTool-Click\",\n DroneZoomIn = \"ZoomIn\",\n DroneZoomOut = \"ZoomOut\",\n\n // Planner events\n SitePlannerAddCameraClick = \"AddCameraClick\",\n SitePlannerAddSitePlanDrawingClick = \"AddSitePlanDrawingClick\",\n SitePlannerAddSitePlanClick = \"AddSitePlanClick\",\n SitePlannerAttachSitePlanDrawing = \"AttachSitePlanDrawing\",\n SitePlannerCameraMarkerEditFOVAngle = \"CameraMarker-EditFOVAngle\",\n SitePlannerCameraMarkerEditHeading = \"CameraMarker-EditHeading\",\n SitePlannerCameraMarkerEditName = \"CameraMarker-EditName\",\n SitePlannerCameraMarkerEditRadius = \"CameraMarker-EditRadius\",\n SitePlannerCameraMarkerSelectColor = \"CameraMarker-SelectColor\",\n SitePlannerCameraMarkerToggleVisibility = \"CameraMarker-ToggleVisibility\",\n SitePlannerCameraMarkerToggleDeleteDialog = \"CameraMarker-ToggleDeleteDialog\",\n SitePlannerCancelUploadSitePlanDrawing = \"CancelUploadSitePlanDrawing\",\n SitePlannerChangeLocation = \"ChangeLocation\",\n SitePlannerOpen = \"Open\",\n SitePlannerResetView = \"ResetView\",\n SitePlannerSitePlansList = \"SitePlansList\",\n SitePlannerToggleCamerasLabel = \"ToggleCamerasLabel\",\n SitePlannerToggleFullscreen = \"ToggleFullscreen\",\n SitePlannerToggleMapStyle = \"ToggleMapStyle\",\n SitePlannerToggleSaveSessionDialog = \"ToggleSaveSessionDialog\",\n SitePlannerUploadSitePlanDrawing = \"UploadSitePlanDrawing\",\n SitePlannerZoomIn = \"ZoomIn\",\n SitePlannerZoomOut = \"ZoomOut\",\n\n // Markers events\n MarkerClicked = \"MarkerClicked\",\n\n // Timelapse Creator events\n TimelapseToggleHelpDialog = \"ToggleHelpDialog\",\n TimelapseSelectCustomPeriod = \"SelectCustomPeriod\",\n TimelapseToggleCustomScheduleDialog = \"ToggleCustomScheduleDialog\",\n TimelapseSaveCustomSchedule = \"SaveCustomSchedule\",\n TimelapseToggleExportDialog = \"ToggleExportDialog\",\n TimelapseExportSelectStep = \"SelectStep\",\n TimelapseSelectOption = \"SelectOption\",\n TimelapseSelectSchedule = \"SelectSchedule\",\n TimelapseSaveToMediaHub = \"SaveToMediaHub\",\n TimelapseGoToMediaHub = \"GoToMediaHub\",\n TimelapseToggleUploadLogoDialog = \"ToggleUploadLogoDialog\",\n TimelapseUploadLogo = \"UploadLogo\",\n\n // Progress Photos events\n ProgressPhotoCancelPause = \"ProgressPhoto-CancelPause\",\n ProgressPhotoCancelResume = \"ProgressPhoto-CancelResume\",\n ProgressPhotoCancelDelete = \"ProgressPhoto-CancelDelete\",\n ProgressPhotoCreate = \"ProgressPhoto-Create\",\n ProgressPhotoDelete = \"ProgressPhoto-Delete\",\n ProgressPhotoEdit = \"ProgressPhoto-Edit\",\n ProgressPhotoEditCamerasFilter = \"ProgressPhoto-EditCamerasFilter\",\n ProgressPhotoEditDaysFilter = \"ProgressPhoto-EditDaysFilter\",\n ProgressPhotoEditProjectsFilter = \"ProgressPhoto-EditProjectsFilter\",\n ProgressPhotoEditSearchFilter = \"ProgressPhoto-EditSearchFilter\",\n ProgressPhotoEditStatusFilter = \"ProgressPhoto-EditStatusFilter\",\n ProgressPhotoEditUsersFilter = \"ProgressPhoto-EditUsersFilter\",\n ProgressPhotoFiltersClicked = \"ProgressPhoto-FiltersClicked\",\n ProgressPhotoPause = \"ProgressPhoto-Pause\",\n ProgressPhotoResume = \"ProgressPhoto-Resume\",\n ProgressPhotoResumeDelete = \"ProgressPhoto-ResumeDelete\",\n ProgressPhotoSelectCameras = \"ProgressPhoto-SelectCameras\",\n ProgressPhotoSelectDays = \"ProgressPhoto-SelectDays\",\n ProgressPhotoSelectMember = \"ProgressPhoto-SelectMember\",\n ProgressPhotoSelectProvider = \"ProgressPhoto-SelectProvider\",\n ProgressPhotoSelectTime = \"ProgressPhoto-SelectTime\",\n ProgressPhotoSelectTimezone = \"ProgressPhoto-SelectTimezone\",\n ProgressPhotoToggleCreateDialog = \"ProgressPhoto-ToggleCreateDialog\",\n ProgressPhotoToggleEditDialog = \"ProgressPhoto-ToggleEditDialog\",\n ProgressPhotoUnsubscribeUser = \"ProgressPhoto-UnsubscribeUser\",\n\n // Map View events\n MapViewChooseSatellite = \"MapView-ChooseSatellite\",\n MapViewChooseTerrain = \"MapView-ChooseMap\",\n MapViewClickCameraLink = \"MapView-ClickCameraLink\",\n MapViewToggleCameraMapInfoTooltip = \"MapView-ToggleCameraMapInfoTooltip\",\n\n // Video Wall events\n VideoWallToggleFullscreen = \"VideoWall-ToggleFullscreen\",\n VideoWallToggleCameraFullscreen = \"VideoWall-ToggleCameraFullscreen\",\n VideoWallToggleConfigDialog = \"VideoWall-ToggleConfigDialog\",\n VideoWallToggleCameraVisibility = \"VideoWall-ToggleCameraVisibility\",\n VideoWallPositionCameraOnWall = \"VideoWall-PositionCameraOnWall\",\n VideoWallSaveConfig = \"VideoWall-SaveConfig\",\n\n // Project Settings\n ProjectSettingsCameraSettingsCancelEditCameraName = \"CancelEditCameraName\",\n ProjectSettingsCameraSettingsEditCameraName = \"EditCameraName\",\n ProjectSettingsCameraSettingsEditCameraVisibility = \"EditCameraVisibility\",\n ProjectSettingsCameraSettingsSaveCameraName = \"SaveCameraName\",\n ProjectSettingsMembersApplyCamerasFilter = \"ApplyCamerasFilter\",\n ProjectSettingsMembersApplySearchFilter = \"ApplySearchFilter\",\n ProjectSettingsMembersAddMember = \"AddMember\",\n ProjectSettingsMembersDeleteCameraAccess = \"DeleteCameraAccess\",\n ProjectSettingsMembersEditCameraAccess = \"EditCameraAccess\",\n ProjectSettingsMembersFiltersClick = \"FiltersClick\",\n ProjectSettingsMembersShareCamera = \"ShareCamera\",\n ProjectSettingsMembersToggleAddDialog = \"ToggleAddDialog\",\n ProjectSettingsOverviewOpenInMapView = \"OpenInMapView\",\n ProjectSettingsOverviewCloseUpdateThumbnailDialog = \"CloseUpdateThumbnailDialog\",\n ProjectSettingsOverviewOpenUpdateThumbnailDialog = \"UpdateThumbnailClicked\",\n ProjectSettingsOverviewUploadNewThumbnail = \"UploadNewThumbnail\",\n ProjectSettingsOverviewUpdateThumbnail = \"UpdateThumbnail\",\n\n // Media Hub events\n MediaHubSelectFilter = \"SelectFilter\",\n MediaHubApplyFilters = \"ApplyFilters\",\n MediaHubToggleAddMediaUrlDialog = \"ToggleAddMediaUrlDialog\",\n MediaHubToggleUploadFileDialog = \"ToggleUploadFileDialog\",\n MediaHubToggleUploadLocalClipDialog = \"ToggleUploadLocalClipDialog\",\n MediaHubSaveMediaUrl = \"SaveMediaUrl\",\n MediaHubUploadFile = \"UploadFile\",\n MediaHubSelectPage = \"SelectPage\",\n MediaHubGoToNextPage = \"GoToNextPage\",\n MediaHubGoToPreviousPage = \"GoToPreviousPage\",\n\n // Media Hub Item events\n MediaDelete = \"Media-Delete\",\n MediaToggleTitleEditing = \"Media-ToggleTitleEditing\",\n MediaSaveTitle = \"Media-SaveTitle\",\n MediaDownloadAs = \"Media-DownloadAs\",\n MediaTogglePublicVisibility = \"Media-TogglePublicVisibility\",\n MediaShareToPlatform = \"Media-ShareToPlatform\",\n MediaCopyMediaLink = \"Media-CopyMediaLink\",\n MediaGoToMediaHub = \"Media-GoBackToMediaHub\",\n\n // Gate report\n GateReportCalendarTreeDateClick = \"CalendarTree-DateClick\",\n GateReportExportPdf = \"ExportPdf\",\n GateReportExportCsv = \"ExportCsv\",\n GateReportFilterEntryExit = \"FilterEntryExit\",\n GateReportFilterCameras = \"FilterCameras\",\n GateReportFilterPlateNumber = \"FilterPlateNumber\",\n GateReportFilterVehicleTypes = \"FilterVehicleTypes\",\n GateReportOpenVehicleTypeInfo = \"OpenVehicleTypeInfo\",\n GateReportTimelineDateClick = \"Timeline-DateClick\",\n GateReportToggleThumbnails = \"ToggleThumbnails\",\n\n // TODO: The events bellow are old events, should be updated!\n\n //Help Menu\n HelpMenuToggleMenuButton = \"HelpMenu-ToggleMenuButton\",\n HelpMenuOpenLiveChat = \"HelpMenu-OpenLiveChat\",\n HelpMenuClickTutorialsLink = \"HelpMenu-ClickTutorialsLink\",\n HelpMenuClickWhatsNewLink = \"HelpMenu-ClickWhatsNewLink\",\n HelpMenuClickUserManuaLink = \"HelpMenu-ClickUserManuaLink\",\n HelpMenuClickSupportTicketsLink = \"HelpMenu-ClickSupportTicketsLink\",\n}\n\nexport type ProjectPAStatsRequestPayload = {\n period: \"day\" | \"week\" | \"month\"\n startDate?: string\n endDate?: string\n}\n\nexport type ProjectPAStatsResponsePayload = {\n period: DateType\n name: string\n count: number | string\n}\n\nexport type ActiveUsersStatsRequestPayload = {\n companyId: number\n from: string\n to: string\n}\n\nexport type ActiveUserStat = {\n date: string\n dau: number\n wau: number\n mau: number\n}\n","import {\n BoundingBox,\n CameraExid,\n DateType,\n GateReportVehicleType,\n TimelinePrecision,\n} from \"@/types\"\n\nexport type AnprQueryParams = {\n page?: number\n limit?: number\n firstSeen?: {\n gte: DateType\n }\n lastSeen?: {\n lte: DateType\n }\n captureTime?: {\n gte?: DateType\n lt?: DateType\n }\n direction?: { eq?: string } | string\n plateNumber?: { eq?: string } | string\n sort?: string\n fromDate?: DateType\n toDate?: DateType\n tab?: string\n}\n\nexport type AnprCountsQueryParams = {\n precision: TimelinePrecision\n fromDate?: string\n toDate?: string\n isPublic?: boolean\n cameras?: CameraExid[]\n direction?: AnprDirection\n isPlate?: boolean\n isDuplicate?: boolean\n vehicleTypes?: GateReportVehicleType[]\n camerasExid?: CameraExid[]\n}\n\nexport enum AnprDirection {\n Left = \"reverse\",\n Arrived = \"forward\",\n Unknown = \"unknown\",\n}\n\nexport type AnprEvent = {\n id: number\n plateNumber: string\n cameraex: CameraExid\n picName: string\n captureTime: string\n insertedAt: string\n isDuplicate: boolean\n direction: AnprDirection\n updatedAt: string\n isPlate: boolean\n isPostprocessed: boolean\n vehicleType?: GateReportVehicleType\n contextVehicleType?: GateReportVehicleType\n anprVehicleType: string\n anprVehicleModel: string\n anprVehicleMake: string\n anprVehicleColor: string\n anprVehicleSpeed: number | null\n anprSnapshotLink: string\n contextSnapshotLink: string\n contextCamera: string\n votedVehicleType: GateReportVehicleType | string\n metadata_: {\n evercamMetadata?: {\n anpr?: {\n bbox: BoundingBox\n label: string\n score: number\n }\n context?: {\n bbox: BoundingBox\n label: string\n score: number\n }\n }\n plateRecognizerMetadata?: {\n plateNumber?: string\n vehicleMake?: string\n vehicleType?: string\n vehicleColor?: string\n vehicleModel?: string\n vehicleOrientation?: string\n }\n }\n}\n\nexport type AnprCount = {\n date: string\n counts: Record<AnprDirection, number>\n}\n\nexport enum AnprEventStatus {\n IsPlate = \"is_plate\",\n NotPlate = \"not_plate\",\n IsDuplicate = \"is_duplicate\",\n NotDuplicate = \"not_duplicate\",\n}\n","import type { CameraExid, Exid, DateType } from \"@/types\"\n\nexport type MediaExid = Exid\n\nexport type Media = {\n project_exid?: string\n cameraExid?: CameraExid\n cameraName: string\n cameraTimezone: string\n createdAt: string\n fromDate: string\n id: number\n requesterEmail: string\n requesterName: string\n title: string\n toDate: string\n url?: string\n exid?: MediaExid\n embedCode?: string\n fileName?: string\n format?: string\n frames?: number\n link?: string\n public?: boolean\n type: MediaType\n status?: MediaStatus\n projectExid?: string\n thumbnailUrl?: string\n mediaUrl?: string\n}\n\nexport enum MediaType {\n EditedImage = \"edit\",\n ExternalUrl = \"url\",\n Clip = \"clip\",\n File = \"file\",\n LocalClip = \"local_clip\",\n XRay = \"x-ray\",\n Timelapse = \"timelapse\",\n Compare = \"compare\",\n MobileAsset = \"mobile-asset\",\n}\n\nexport enum MediaFileType {\n Gif = \"gif\",\n Mp4 = \"mp4\",\n Png = \"png\",\n Pdf = \"pdf\",\n Jpeg = \"jpeg\",\n}\n\nexport enum MediaStatus {\n Pending = \"Pending\",\n Creating = \"Creating\",\n Processing = \"Processing\",\n Extracting = \"Extracting\",\n Uploading = \"Uploading\",\n Completed = \"Completed\",\n Failed = \"Failed\",\n NoData = \"No Data\",\n}\n\nexport enum MediaStatusId {\n Pending = 0,\n Processing = 1,\n Completed = 2,\n Failed = 3,\n}\n\nexport type MediaFilterQueryParams = {\n title?: string\n sort?: string\n sortBy?: string\n dateRange?: string | string[]\n fromDate?: string\n toDate?: string\n cameraName?: string\n requesterEmail?: string\n type?: MediaType\n cameraExid?: string\n page?: number\n limit?: number\n camera?: string\n}\n\nexport type MediaUpdateRequestPayload = {\n name?: string\n title?: string\n public?: boolean\n}\n\nexport type MediaCreateRequestPayload = {\n fromDate: DateType\n toDate: DateType\n title: string\n type: MediaType\n fileUrl?: string\n fileExtension?: string\n url?: string\n content?: string\n cameraExid?: string\n requestedBy?: string\n notes?: string\n category?: ClipsCategory\n isUrgent?: boolean\n storeAsType?: MediaType\n}\n\nexport type MediaUsersResponsePayload = Array<{\n id: number\n email: string\n name: string\n}>\nexport enum ClipsCategory {\n HealthSafetySecurity = \"health_safety_security\",\n Legal = \"legal\",\n Marketing = \"marketing\",\n BestPracticies = \"best_practices\",\n}\n\nexport type MediaDeleteRequestPayload = {\n timelapseIds: (string | number)[]\n compareIds: (string | number)[]\n archiveIds: (string | number)[]\n}\n","import { DateTime, DateType } from \"@/types\"\n\nexport enum BimModelType {\n Architectural = \"Architectural\",\n Structural = \"Structural\",\n FourD = \"4D\",\n Mep = \"Mep\",\n}\n\nexport type BimSnapshotRequestPayload = {\n model: string\n layerTimestamp: string\n apiKey: string\n apiId: string\n}\n\nexport type BimSnapshotResponsePayload = {\n imageUrl?: string\n}\n\nexport type BimModelRequestPayload = {\n model?: string\n timestamp?: string\n apiKey?: string\n apiId?: string\n}\n\nexport type BimModelResponsePayload = {\n dates?: [string]\n height?: number\n imageUrl?: string\n model?: string\n models?: [string]\n rotation?: number\n scaleX?: number\n scaleY?: number\n viewerHeight?: number\n viewerWidth?: number\n width?: number\n x?: number\n y?: number\n}\n\nexport type BimCompareExportRequestPayload = {\n name: string\n cameraExid: string\n snapshotDate: string\n bimDate: string\n embed: string\n compareExid: string\n createAnimation: boolean\n bimTransparency?: number\n model?: string\n layerId?: number\n maskId?: number\n evercamWatermark?: boolean\n}\n\nexport type BimLayerResponsePayload = {\n id: number\n name: string\n insertedAt: DateTime\n updatedAt: DateTime\n shapes: string\n startAt: DateTime\n}\n\nexport enum BimUploadStatus {\n Initial = 0,\n Saving = 1,\n Success = 2,\n Failed = 3,\n}\n\nexport type BimCreationPayload = {\n title: string\n software:\n | \"synchro\"\n | \"navisworks\"\n | \"revit\"\n | \"tekla\"\n | \"archicad\"\n | \"solibri\"\n | \"bim360\"\n | \"other\"\n model: string\n apiKey: string\n apiId: string\n displayName: string\n fileUrl: string\n requestor: string\n finalView: boolean\n enableDistortion: boolean\n startAt: string\n}\n\nexport enum BIMLayerTypes {\n Mask = \"mask\",\n MeasuringGrid = \"measuring_grid\",\n BimArchitectural = \"bim_architectural\",\n BimStructural = \"bim_structural\",\n Bim4D = \"bim_4d\",\n BimMep = \"bim_mep\",\n RecordingsTag = \"recordings_tag\",\n Milestone = \"milestone\",\n}\n\nexport type BimLayersQueryParams = {\n layerType: BIMLayerTypes\n timestamp: DateType\n}\n\nexport type BIMLayerPostPayload = {\n name: string\n layerType: BIMLayerTypes\n startAt: DateType\n shapes: string\n zIndex: number\n}\n\nexport type BIMLayer = {\n id: number\n name: string\n layerType: BIMLayerTypes\n startAt: DateType\n insertedAt: DateType\n updatedAt: DateType\n shapes: string\n}\n\nexport type BimPendingImage = {\n url: string\n s3Url: string\n}\n\nexport type BimUploadCameraParameters = {\n distortionFov: [number]\n horizontalFov: number\n verticalFov: number\n focalLength1: number\n focalLength2: number\n centerX: number\n centerY: number\n}\n\nexport type PendingBimImagesParams = {\n model: string\n apiKey: string\n apiId: string\n}\n\nexport type ProcessPendingImagesBimParams = {\n model: string\n names: string[]\n enableDistortion: boolean\n apiId: string\n apiKey: string\n}\n\nexport type BimUploadsQueryParams = {\n page: number\n limit: number\n projectId: string\n id: string\n uploadedBy: string\n}\n\nexport type BimUploadPayload = {\n upload: {\n url: string\n title: string\n fileExtension: string\n }[]\n}\n","import {\n AuditLogActionType,\n DateTime_Z_micros,\n DateType,\n EntityByExid,\n Exid,\n NvrDeviceType,\n PaginationParams,\n PowerSchedule,\n PowerType,\n ProjectExid,\n Schedule,\n} from \"@/types\"\n\nexport type CameraExid = Exid\n\nexport type CamerasByExid = EntityByExid<Camera>\n\nexport type Cartesian3 = {\n x: number\n y: number\n z: number\n}\n\nexport type Camera = {\n cameraPowerSchedule?: Schedule\n camPassword?: string\n camUsername?: string\n cloudRecordings: {\n frequency: number\n schedule: Schedule\n status: string\n storageDuration: string\n }\n createdAt: DateTime_Z_micros\n description: null\n discoverable: boolean\n external: {\n host: string\n http: {\n camera: string\n jpg: string\n nvrJpg: string\n nvrPort: string\n port: string\n }\n rtsp: {\n h264: string\n port: string\n }\n }\n featureFlags: Array<CameraFeatureFlag>\n fovAngle: number\n fovRadius: number\n heading: null\n id: CameraExid\n exid: CameraExid\n isOnline: boolean\n isPowerScheduleActive: boolean\n isPublic: boolean\n lastOnlineAt: DateTime_Z_micros\n lastPolledAt: DateTime_Z_micros\n location: { lat: number; lng: number }\n modelId: string\n modelName: string\n name: string\n nvrChannel: number\n nvrDeviceId: string\n nvrHost: string\n nvrHttpPort: number\n nvrModel: NvrModel\n nvrScheme: string\n nvrSnapshotEndpoint: string\n nvrStreamingEndpoint: string\n offlineReason: string\n owned: boolean\n owner: string\n pitch: null\n project: { id: string; name: string }\n proxyUrl: { hls: string; rtmp: string }\n ptz: boolean\n rights: string\n roll: null\n routerId: number\n status: CameraStatus\n streamingServer: string\n thumbnailUrl: string\n largeThumbnailUrl?: string\n timezone: string\n updatedAt: DateTime_Z_micros\n vendorName: string\n}\n\nexport type AdminCamera = {\n cameraHost: string\n cameraHttpPort: number\n cameraModel: string\n cameraPassword: string\n cameraPictureEndpoint: string\n cameraRtspPort: number\n cameraScheme: string\n cameraUsername: string\n cameraFirmwareVersion: string\n cameraTimezone: string\n cloudRecordingFrequency: number\n cloudRecordingId: number\n cloudRecordingSchedule: Schedule\n cloudRecordingStatus: string\n cloudRecordingStorageDuration: number\n createdAt: DateTime_Z_micros\n description: null\n discoverable: false\n exid: CameraExid\n featureFlags: CameraFeatureFlag[]\n fovAngle: 45.0\n fovRadius: number\n heading: null\n id: number\n isPowerScheduleActive: true\n isPublic: false\n kitId?: number\n lastOnlineAt: DateTime_Z_micros\n lastPolledAt: DateTime_Z_micros\n location: { lat: number; lng: number }\n macAddress: string\n name: string\n nvrChannel: null\n nvrDeviceId: string\n nvrHost: string\n nvrHttpPort: number\n nvrModel: NvrModel\n nvrPassword: string\n nvrPictureEndpoint: string\n nvrRtspPort: number\n nvrScheme: string\n nvrUsername: string\n offlineReason: null\n pitch: null\n powerSchedule: Schedule\n projectExid: string\n projectFeatureFlags: []\n projectId: number\n projectName: string\n ptz: false\n recordingFromNvr: false\n roll: null\n routerId: number\n status: string\n storageProviders: []\n streamEndpoint: string\n timezone: string\n updatedAt: DateTime_Z_micros\n userApiId: string\n userApiKey: string\n userEmail: string\n userFullname: string\n userId: number\n zohoId: string\n thumbnailUrl?: string\n}\n\nexport type CameraMapMarker = {\n isOnline: boolean\n location: {\n lat: number\n lng: number\n }\n needFov: boolean\n rotation: number\n fovAngle: number\n fovRadius: number\n}\n\nexport enum CameraStatus {\n Online = \"online\",\n Offline = \"offline\",\n OfflineScheduled = \"offline_scheduled\",\n Decommissioned = \"decommissioned\",\n OnHold = \"on_hold\",\n Waiting = \"waiting\",\n UnderMaintenance = \"under_maintenance\",\n WaitingForSiteVisit = \"waiting_for_site_visit\",\n}\n\nexport enum CameraFeatureFlag {\n EdgeVideo = \"edge_video\",\n BimCompare = \"bim_compare\",\n GateReport = \"gate_report\",\n VideoStream = \"video_stream\",\n WebRTC = \"webrtc\",\n ANPR = \"anpr\",\n ReverseANPR = \"reverse_anpr\",\n PTZ = \"ptz\",\n ObjectDetection = \"object_detection\",\n Segmentation = \"segmentation\",\n SegmentationAutoLabelling = \"segmentation_auto_labelling\",\n}\n\nexport type CameraLogsRequestPayload = {\n limit: number\n page: number\n types: string\n from: string\n to: string\n}\n\nexport type CameraUpdateRequestPayload = {\n status?: string\n timezone?: string\n isPuclic?: boolean\n discoverable?: boolean\n fullname?: string\n lastOnline?: string\n owner?: string\n description?: string\n cameraPowerSchedule?: Schedule\n isPowerScheduleActive?: boolean\n powerSchedule?: object\n ptz?: boolean\n camUsername?: string\n camPassword?: string\n project?: { id: string; name: string }\n modelName?: string\n host?: string\n nvrChannel?: number\n nvrPortHttp?: string\n externalRtspPort?: string\n name?: string\n h264Url?: string\n snapshotUrl?: string\n nvrSnapshotUrl?: string\n routerId?: string | number\n coordinates?: Array<number>\n heading?: number\n fovAngle?: number\n fovRadius?: number\n}\n\nexport type CamerasResponsePayload = {\n cameras?: Camera[]\n}\n\nexport type CameraLogsResponsePayload = {\n cameraExid: string\n cameraName: string\n logs?: Log[]\n details?: { customMessage?: string }\n}\n\nexport type CameraStatusLog = {\n start: string\n end: string\n state: CameraStatus\n}\n\nexport type Log = {\n details: {\n agent?: string\n country?: string\n countryCode?: string\n ip?: string\n with?: string\n message?: string\n status?: string\n type?: string\n }\n insertedAt: string\n type: string\n who: string\n}\n\nexport type NvrConfig = {\n apiUrl: string\n username?: string\n password?: string\n deviceId: string\n streamingUrl: string\n snapshotUrl: string\n bifUrl: string\n}\n\nexport enum NvrModel {\n YCam = \"y-cam\",\n Axis = \"axis\",\n Dahua = \"dahua\",\n Mobotix = \"mobotix\",\n Hikvision = \"hikvision\",\n Avigilion = \"avigilion\",\n Hanwha = \"hanwha\",\n Nxwitness = \"nxwitness\",\n ExNvr = \"ex_nvr\",\n}\n\nexport enum CameraModel {\n YCam = \"y-cam\",\n Axis = \"axis\",\n Dahua = \"dahua\",\n Mobotix = \"mobotix\",\n Milesight = \"milesight\",\n Hikvision = \"hikvision\",\n Avigilion = \"avigilion\",\n Hanwha = \"hanwha\",\n Other = \"other\",\n}\n\nexport type DroneCameraTransform = {\n position: Cartesian3\n direction: Cartesian3\n up: Cartesian3\n right: Cartesian3\n}\n\nexport type Footage = {\n cameraExid: string\n cameraName: string\n endDate: string | null\n startDate: string | null\n}\n\nexport type Hdd = {\n id: number\n location: string\n serialNumber: string\n hddStatus: string\n shelfBlock: string\n type: string\n size: string\n format: string\n footages: Array<Footage>\n reportedCapacity: string\n reportedFreeSpace: string\n reportedProperty: string\n reportedPath: string\n reportedHddType: string\n errorStatus: string\n canExpand: boolean\n}\n\nexport enum ResolutionDimensions {\n QVGA = \"320x240\",\n VGA = \"640x480\",\n SVGA = \"800x600\",\n XGA = \"1024x768\",\n HD = \"1280x720\",\n WXGA = \"1280x800\",\n HDPlus = \"1366x768\",\n WXGAPlus = \"1440x900\",\n HDPlusPlus = \"1600x900\",\n UXGA = \"1600x1200\",\n FullHD = \"1920x1080\",\n WUXGA = \"1920x1200\",\n TwoK = \"2048x1080\",\n QHD = \"2560x1440\",\n WQXGA = \"2560x1600\",\n FourK = \"3840x2160\",\n FourKCinema = \"4096x2160\",\n FiveK = \"5120x2880\",\n EightK = \"7680x4320\",\n WHUXGA = \"7680x4800\",\n}\n\nexport enum ResolutionLabel {\n QVGA = \"QVGA\",\n VGA = \"VGA\",\n SVGA = \"SVGA\",\n XGA = \"XGA\",\n HD = \"HD\",\n WXGA = \"WXGA\",\n HDPlus = \"HD+\",\n WXGAPlus = \"WXGA++\",\n HDPlusPlus = \"HD++\",\n UXGA = \"UXGA\",\n FullHD = \"FullHD\",\n WUXGA = \"WUXGA\",\n TwoK = \"2K\",\n QHD = \"QHD\",\n WQXGA = \"WQXGA\",\n FourK = \"4K\",\n FourKCinema = \"4KCinema\",\n FiveK = \"5K\",\n EightK = \"8K\",\n WHUXGA = \"WHUXGA\",\n}\n\nexport type ResolutionInfo = {\n ratioString: string\n ratioFloat: number\n resolutionDimensions: ResolutionDimensions\n resolutionLabel: ResolutionLabel\n}\n\nexport type CameraPath = {\n projectExid: ProjectExid\n cameraExid: CameraExid\n}\n\nexport type CheckCameraPortPayload = {\n address: string\n port: number\n}\n\nexport type CameraCreateRequestPayload = {\n status: CameraStatus\n timezone?: string\n powerSchedule?: Schedule\n isPowerScheduleActive?: boolean\n ptz?: boolean\n name: string\n coordinates?: [number, number]\n recordingFromNvr?: boolean\n CameraConfig: {\n model: CameraModel\n scheme?: \"http\" | \"https\"\n host: string\n httpPort: number\n username: string\n password: string\n rtspPort?: number\n pictureEndpoint?: string\n streamEndpoint?: string\n }\n nvr?: {\n model: NvrModel\n serial?: string\n deviceType?: NvrDeviceType\n macAddress?: string\n username: string\n password: string\n httpUrl: string\n rtspUrl?: string\n }\n cloudRecording?: {\n id?: number\n frequency: 1 | 2 | 4 | 5 | 6 | 10 | 12 | 30 | 60\n storageDuration: -1 | 1 | 7 | 30 | 90\n status: \"on\" | \"off\" | \"paused\" | \"on_scheduled\"\n schedule: Schedule\n }\n ownerId: number\n projectId: number\n}\n\nexport type CameraDeletePayload = {\n verify: string\n password: string\n}\n\nexport type SaveNotePayload = {\n noteType: string\n content: string\n}\n\nexport type CameraNote = {\n id: number\n cameraId: number\n noteType: string\n content: string\n insertedAt: DateType\n}\n\nexport type CreateCameraNotePayload = {\n id?: number\n cameraExid: CameraExid\n customMessage: string\n action: string\n}\n\nexport enum HddStatus {\n Error = \"error\",\n Idle = \"idle\",\n NotExist = \"notExist\",\n Unformatted = \"unformatted\",\n Ok = \"ok\",\n}\n\nexport type NvrQueryParams = PaginationParams & {\n ownerId: number\n cameraName: string\n cameraExid: CameraExid\n cameraIp: string\n hddStatus: HddStatus\n}\n\nexport type OfflineCamera = {\n id: number\n exid: string\n name: string\n fullname: string\n timezone: string\n status: CameraStatus\n zohoId: string\n externalHost: string\n nvrHttpPort: string\n externalRtspPort: string\n username: string\n password: string\n createdAt: DateType\n lastPolledAt: DateType\n lastOnlineAt: DateType\n powerType: PowerType\n powerSchedule: PowerSchedule\n batteryReadingsLastSeen: DateType\n batteryReadingsLastVoltage: number\n sims: {\n billPayer: string\n number: string\n provider: string\n }[]\n}\n\nexport type OfflineCameraQueryParams = PaginationParams & {\n status: CameraStatus\n cameraExid: CameraExid\n cameraName: string\n timezone: string\n cameraOwner: string\n powerType: PowerType\n powerSchedule: PowerSchedule\n batteryReadingsLastVoltage: number\n}\n\nexport type OfflineCameraNote = {\n action: AuditLogActionType\n username: string\n insertedAt: DateType\n cameraId: number\n customMessage: string\n}\n\nexport type OfflineCameraNoteResponse = {\n publicNotes: OfflineCameraNote[]\n privateNotes: OfflineCameraNote[]\n}\n\nexport type SiteVisitCamerasQueryParams = PaginationParams & {\n cameraOwner: string\n}\n\nexport type ProjectCamera = {\n apiId: string\n apiKey: string\n exid: string\n id: number\n name: string\n ownerEmail: string\n ownerFullname: string\n}\n\nexport enum DuplicatedCameraFields {\n Host = \"host\",\n CameraHttpPort = \"camera_http_port\",\n NvrHttpPort = \"nvr_http_port\",\n NvrDeviceId = \"nvr_device_id\",\n}\n\nexport type DuplicatedCameraObject = {\n exid: string\n name: string\n cameraStatus: string\n crStatus: string\n}\n\nexport type DuplicatedCameraResponse = {\n cameras: DuplicatedCameraObject[]\n host: string\n cameraHttpPort: number\n nvrHttpPort: number\n nvrDeviceId: string\n count: number\n}\n\nexport type MergeDuplicatedCameraPayload = {\n masterCamera: Record<string, unknown>\n shareeCameras: Record<string, unknown>\n}\n\nexport type FetchCameraQueryParams = PaginationParams & {\n status: CameraStatus\n isPublic: boolean\n featureFlags: CameraFeatureFlag[]\n ptz: boolean\n frequency: number\n channel: number\n cameraExid: CameraExid\n cameraExids: CameraExid[]\n cameraName: string\n projectName: string\n timezone: string\n region: string\n cameraModel: CameraModel\n nvrModel: NvrModel\n cameraOwner: string\n ownerEmail: string\n isRecording: boolean\n cloudRecordingStorageDuration: number\n cameraIds: string\n hasLocation: boolean\n externalHttpPort: string\n externalRsptPort: string\n nvrHttpPort: string\n}\n","import { DateType, PaginationParams } from \"@/types\"\n\nexport type Compare = {\n cameraExid: string\n createdAt: string\n embedCode: string\n embedTime: boolean\n fileName: string\n frames: number\n fromDate: string\n id: number\n exid: string\n mediaUrls: {\n gif: string\n mp4: string\n }\n public: boolean\n requesterEmail: string\n requesterName: string\n status: string\n thumbnailUrl: string\n title: string\n toDate: string\n type: string\n}\n\nexport enum CompareStatus {\n Processing = 0,\n Completed = 1,\n Failed = 2,\n}\n\nexport type CompareRequestPayload = {\n name: string\n afterDate: string\n beforeDate: string\n embed: string\n compareExid: string\n cameraExid?: string\n createAnimation: boolean\n evercamWatermark?: boolean\n}\n\nexport type AdminCompare = {\n id: number\n compareExid: string\n exid: string\n projectId: string\n apiId: string\n apiKey: string\n name: string\n fullname: string\n camera: string\n status: number\n embedCode: string\n insertedAt: DateType\n}\n\nexport type AdminCompareQueryParams = PaginationParams & {\n name: string\n camera: string\n}\n","import type {\n AnalyticsEventPageId,\n CameraExid,\n CameraFeatureFlag,\n CameraStatus,\n ProjectExid,\n ProjectFeatureFlag,\n ProjectStatus,\n} from \"@/types\"\n\nexport enum CopilotMessageAuthor {\n Copilot = \"copilot\",\n User = \"user\",\n}\n\nexport enum CopilotMessageType {\n Text = \"text\",\n Progress = \"progress\",\n Error = \"error\",\n Json = \"json\",\n}\n\nexport type CopilotMessage = {\n content: string\n url?: string\n type: CopilotMessageType\n id?: number\n conversationId?: number\n}\n\nexport enum CopilotStepId {\n SendToLLM = \"send_to_llm\",\n FunctionCallRequest = \"function_call_request\",\n ExecFunctionCall = \"exec_function_call\",\n SendToUser = \"send_to_user\",\n RequestMissingFields = \"request_missing_fields\",\n CompletedFieldsResponse = \"completed_fields_response\",\n SendRawToolCallResponse = \"send_raw_tool_call_response\",\n SubmitToolOutputsToLLM = \"submit_tool_outputs_to_llm\",\n CancelCall = \"cancel_call\",\n}\n\nexport enum CopilotMissingFieldsLabels {\n ProjectExid = \"Project\",\n CameraExid = \"Camera\",\n FromDate = \"Start date\",\n ToDate = \"End date\",\n}\n\nexport type CopilotMissingField = {\n name: string\n label: string\n value: any\n type: string\n toolId: string\n}\n\nexport type CopilotMissingFields = Record<number, CopilotMissingField[]>\n\nexport type UserConversations = CopilotConversation & {\n Message: CopilotMessage[]\n}\n\nexport enum CopilotSocketEvent {\n ConversationStart = \"conversation:start\",\n ConversationCreated = \"conversation:created\",\n LLMMessageChunk = \"llm:message:chunk\",\n LLMMessageComplete = \"llm:message:complete\",\n LLMMessageLoading = \"llm:message:loading\",\n LLMRequestCancel = \"llm:request:cancel\",\n LLMRequestCanceled = \"llm:request:canceled\",\n UserMessage = \"user:message\",\n ContextError = \"chat:contextError\",\n ChatError = \"chat:chatError\",\n MissingFields = \"chat:missingFields\",\n MissingFieldsCompleted = \"chat:missingFields:completed\",\n SystemToolCallResponse = \"system:toolCall:response\",\n}\n\nexport type CopilotConversation = {\n id: number\n user: string\n model: string\n context: string\n cameraExid: CameraExid\n projectExid: ProjectExid\n startDate: string\n endDate: string\n messagesCount: number\n}\n\nexport enum CopilotProvider {\n Gemini = \"gemini\",\n ChatGPT = \"chatgpt\",\n}\n\nexport enum CopilotSuggestion {\n UserManual = \"user_manual\",\n GateReport = \"gate_report\",\n Weather = \"weather\",\n Clip = \"clip\",\n Timelapse = \"timelapse\",\n Chart = \"chart\",\n}\n\nexport enum CopilotChatProvider {\n Gemini = \"gemini\",\n ChatGpt = \"chatGpt\",\n}\n\nexport enum CopilotLayout {\n Floating = \"floating\",\n}\n\nexport enum CopilotToolId {\n GetReports = \"getReports\",\n GetVehiclesDetections = \"getVehiclesDetections\",\n GetVehiclesDetectionsCounts = \"getVehiclesDetectionsCounts\",\n GetWeather = \"getWeather\",\n CreateClip = \"createClip\",\n NavigateToPage = \"navigateToPage\",\n CreateTimelapse = \"createTimelapse\",\n RequestMissingFields = \"requestMissingFields\",\n RenderCharts = \"renderCharts\",\n}\n\nexport type CopilotSystemToolCallResponse<I = unknown, O = unknown> = {\n toolId?: CopilotToolId\n input?: I\n output?: O\n}\n\nexport type CopilotCamera = {\n name: string\n exid: CameraExid\n status: CameraStatus\n featureFlags?: CameraFeatureFlag[]\n}\n\nexport type CopilotProject = {\n name: string\n exid: ProjectExid\n status: ProjectStatus\n featureFlags?: ProjectFeatureFlag[]\n cameras?: CopilotCamera[]\n}\n\nexport type CopilotConversationContext = {\n availableProjects: CopilotProject[]\n}\n\nexport type CopilotMessageContext = {\n pageId?: AnalyticsEventPageId\n selectedCamera?: CopilotCamera\n selectedProject?: CopilotProject\n}\n\nexport type CopilotMessageStep = {\n args: string[]\n depth: number\n id: number\n message_id: number\n step: CopilotStepId\n timestamp: string\n}\n\nexport enum CopilotMissingFieldComponent {\n Select = \"SelectField\",\n DateTime = \"DateTimeField\",\n Schedule = \"ScheduleField\",\n MultiOptions = \"MultiOptionsField\",\n Switch = \"SwitchField\",\n}\n\nexport enum CopilotMissingFieldName {\n ProjectExid = \"projectExid\",\n CameraExid = \"cameraExid\",\n FromDate = \"fromDate\",\n ToDate = \"toDate\",\n Schedule = \"schedule\",\n Duration = \"duration\",\n}\n\nexport enum CopilotMissingFieldType {\n Boolean = \"boolean\",\n String = \"string\",\n Number = \"number\",\n}\n","export type MilesightRequestParams = {\n host: string\n httpPort: number\n username: string\n password: string\n}\n\nexport type MilesightCameraNetworkConfiguration = {\n httpEnable: number\n httpPort: number\n httpsEnable: number\n httpsPort: number\n certSubject: string\n certDate: string\n certResult: number\n requestSubject: string\n certUpdateFlag: number\n ipv4Ipaddress: string\n ipv6Ipaddress: string\n notBefore: string\n notAfter: string\n country: string\n ST: string\n O: string\n CN: string\n}\n\nexport type MilesightCameraSystemSettings = {\n model: string\n mac: string\n firmwareVersion: string\n systemBootTime: string\n wireless: number\n dhcpEnable: number\n ipaddress: string\n netmask: string\n gateway: string\n pppoeEnable: number\n dns0: string\n dns1: string\n ddnsEnable: number\n ddnsHostName: string\n ddnsStatus: number\n wirelessEnable: number\n deviceName: string\n deviceLacation: string\n deviceInformation: string\n deviceVender: string\n hardwareVersion: string\n kernelVersion: string\n sdkVersion: string\n aiNnieStatus: number\n ioSupport: number\n audioSupport: number\n audioMode: number\n audioType: number\n audioLineInput: number\n alarmInputSupport: number\n alarmOutputSupport: number\n fisheyeSupport: number\n vcaSupport: number\n vcaType: number\n anrSupport: number\n speakerSupport: number\n lprSupport: number\n lprVersion: number\n lprLicense: number\n radarSupport: number\n upgrade: number\n faceSupport: number\n polygonFaceSupport: number\n irSensor: number\n dnSensitivitySupport: number\n croproiSupport: number\n dnRefocusSupport: number\n reduceStutteringSupport: number\n polygonSupport: number\n localDisplaySupport: number\n fanWorkingModeSupport: number\n smartIrLimitType: number\n smartIrLimitSum: number\n audioFileManagerSupport: number\n humanVehicleSupport: number\n manualSpeedSupport: number\n snCode: string\n mosaicSupport: number\n antiShakeSupport: number\n corridorModeSupport: number\n imageRotationSupport: number\n humanDetectionSupport: number\n regionalPeopleSupport: number\n heatMapSupport: number\n msChip: string\n runtime: number\n lprlicenStatus: number\n p2pSupport: number\n ptzSupport: number\n adminoptions: number\n adminuser: string\n miscAnonymous: number\n pwdStrengthType: number\n viewerdef: number\n viewerOptions: number\n oemIndex: number\n audioAlarmSupport: number\n ledSupport: number\n ledGroupSupport: number\n ptzMaxZoomTimes: number\n realPtzSupport: number\n iotSupport: number\n isSpeedDm: number\n supportOsdLarger: number\n isFaceCustomizeModeExists: number\n autoTrackSupport: number\n smartStreamSupportInOtherStream: number\n wiperSupport: number\n oemupdateonline: number\n whiteLedSupport: number\n defogSupport: number\n manualTrackingSupport: number\n manualTrackingDisable: number\n \"3DPositionSupport\": number\n rs485Support: number\n ptzStatusSupport: number\n heaterSupport: number\n}\n\nexport type MilesightCameraStreamConfig = {\n enable?: number\n width?: number\n height?: number\n url?: string\n profileGop?: number\n rateMode?: MilesightCameraRateModeId\n framerate?: number\n bitrate?: number\n smartStreamEnable?: number\n smartStreamLevel?: number\n profile?: number\n profileCodec?: MilesightCameraCodecId\n rateQuality?: number\n vbrQuality?: MilesightCameraVbrQualityId\n}\n\nexport type MilesightCameraStreamConfigList = {\n mainStream: MilesightCameraStreamConfig\n subStream: MilesightCameraStreamConfig\n thirdStream: MilesightCameraStreamConfig\n fourthStream?: {\n enable: number\n }\n fifthStream?: {\n enable: number\n }\n}\n\nexport type MilesightCameraVideoConfig = {\n deviceModel: string\n deviceSensor: string\n deviceTvStandards: number\n streamList: MilesightCameraStreamConfigList\n cTvStandards: number\n rtspPort: number\n eventStreamEnable: number\n eventStreamFramerate: number\n eventStreamBitrate: number\n eventStreamIframe: number\n fishDisplayModel: number\n fishInstallModel: number\n fishCorrectModel: number\n mainCodecres: number\n imageScheMode: number\n hlcMode: number\n exposurectrl: number\n wdrEnable: number\n}\nexport type MilesightCameraStreamOsdInfo = {\n streamIndex: number\n osdEnable: number\n osdString: string\n osdDateTimeEnable: number\n osdFontSize: number\n osdFontColor: string\n osdBackgroundEnable: number\n osdBackgroundColor: string\n osdTextPosition: number\n osdDateTimePosition: number\n osdDateTimeFormat: number\n cropRoiEnable: number\n}\n\nexport type MilesightCameraOsdConfiguration = {\n osdInfoList: MilesightCameraStreamOsdInfo[]\n osdZoomTime: number\n}\n\nexport type MilesightCameraSdCardInfo = {\n sdcardStatus: number\n sdcardDiskStatus: number\n sdcardFullStatus: number\n sdcardTotalSize: string\n sdcardFreeSize: string\n sdcardUseSize: string\n sdEncryptStatus: number\n}\n\nexport type MilesightCameraTimeInfo = {\n year: number\n month: number\n day: number\n hour: number\n minute: number\n second: number\n timeZoneTz: string\n zoneNameTz: string\n dayLight: number\n timeType: number\n ntpServer: string\n ntpSyncEnable: number\n ntpInterval: number\n}\n\nexport enum MilesightCameraCodecId {\n H264 = 0,\n H265 = 3,\n MJpeg1 = 1,\n MJpeg2 = 2,\n}\nexport enum MilesightCameraVbrQualityId {\n Low = 0,\n Medium = 1,\n High = 2,\n}\n\nexport enum MilesightCameraRateModeId {\n CBR = 0,\n VBR = 1,\n}\n","export type DroneModel = {\n cesiumId: string\n cesiumId2D: string\n date: string\n cesiumPointCloudId: string\n pointSize: string\n maximumScreenSpaceError: string\n link: string\n trueIndex: number\n}\n\nexport type DroneProjectJsonResponse = {\n models: DroneModel[]\n [key: string]: any\n}\n\nexport enum DroneUrlParams {\n Date = \"date\",\n}\n","import { AxiosError } from \"axios\"\n\nexport enum ErrorType {\n BadRequestError = \"BadRequestError\",\n NotFoundError = \"NotFoundError\",\n UnauthorizedError = \"UnauthorizedError\",\n GatewayTimeoutError = \"GatewayTimeoutError\",\n BadGatewayError = \"BadGatewayError\",\n ForbiddenError = \"ForbiddenError\",\n HlsError = \"HlsError\",\n SnapshotError = \"SnapshotError\",\n ConflictError = \"ConflictError\",\n InternalServerError = \"InternalServerError\",\n CanceledError = \"CanceledError\",\n UnhandledRejection = \"UnhandledRejection\",\n TypeError = \"TypeError\",\n}\n\nexport enum EvercamApiErrorCode {\n BadArgument = \"BAD_ARGUMENT\",\n DeviceError = \"DEVICE_ERROR\",\n UnsupportedOperation = \"UNSUPPORTED_OPERATION\",\n QuotaExceeded = \"QUOTA_EXCEEDED\",\n InvalidCredentials = \"INVALID_CREDENTIALS\",\n ProviderAuthFailure = \"PROVIDER_AUTH_FAILURE\",\n ProviderEmailRequired = \"PROVIDER_EMAIL_REQUIRED\",\n PasswordReset = \"PASSWORD_RESET\",\n RequireShareRequest = \"REQUIRE_SHARE_REQUEST\",\n Generic = \"GENERIC\",\n}\n\ntype _EvercamApiError = {\n code: EvercamApiErrorCode\n message: string\n details: string\n innerError?: _EvercamApiError\n}\n\nexport type EvercamApiError = AxiosError<_EvercamApiError>\n","import {\n AnprDirection,\n CameraExid,\n Date_HH,\n Date_YYYY,\n Date_YYYY_MM,\n Date_YYYY_MM_DD,\n DateTime,\n DateTimeSpaceSeparated,\n DateType,\n PaginatedItems,\n PaginationParams,\n ProjectExid,\n ProjectFeatureFlag,\n Timestamp,\n} from \"@/types\"\n\nexport enum GateReportDetectionType {\n Auto = \"auto\",\n Manual = \"manual\",\n Cloud = \"cloud\",\n Edge = \"edge\",\n}\n\nexport enum GateReportEventType {\n Arrived = \"arrived\",\n Left = \"left\",\n}\n\nexport enum DetectionLabel {\n ArticulatedDumper = \"articulated-dumper\",\n BackhoeLoader = \"backhoe-loader\",\n CompactExcavator = \"compact-excavator\",\n ConcretePump = \"concrete-pump\",\n Dumper = \"dumper\",\n Excavator = \"excavator\",\n FlatbedSemiTrailer = \"flatbed-semi-trailer\",\n IndustrialTruck = \"industrial-truck\",\n Loader = \"loader\",\n Mewps = \"mewps\",\n MobileCrane = \"mobile-crane\",\n MobileCrusher = \"mobile-crusher\",\n OtherTruck = \"other-truck\",\n PileDrillingRig = \"pile-drilling-rig\",\n RoadVehicle = \"road-vehicle\",\n Roller = \"roller\",\n SemiTrailer = \"semi-trailer\",\n SkidSteerLoader = \"skid-steer-loader\",\n SkipTruck = \"skip-truck\",\n SmallTruck = \"small-truck\",\n TankTruck = \"tank-truck\",\n TeleHandler = \"tele-handler\",\n TippingTruck = \"tipping-truck\",\n TowerCrane = \"tower-crane\",\n TowerMountedConcreteMix = \"tower-mounted-concrete-mix\",\n TractorDozer = \"tractor-dozer\",\n TruckHead = \"truck-head\",\n TruckMixer = \"truck-mixer\",\n TruckMountedMobileCrane = \"truck-mounted-mobile-crane\",\n Unknown = \"unknown\",\n Worker = \"worker\",\n Rubble = \"rubble\",\n Puddle = \"puddle\",\n DirtGravelCementPile = \"dirt_gravel_cement_pile\",\n DetachedExcavatorBucket = \"detached_excavator_bucket\",\n IntermediateBulkContainer = \"intermediate_bulk_container\",\n WoodenPallet = \"wooden_pallet\",\n ShippingContainer = \"shipping_container\",\n AirCompressor = \"air_compressor\",\n DryMortarSilo = \"dry_mortar_silo\",\n Fence = \"fence\",\n Brick = \"brick\",\n Barrel = \"barrel\",\n Cardboard = \"cardboard\",\n CardboardBox = \"cardboard_box\",\n CementBag = \"cement_bag\",\n ConcreteBlock = \"concrete_block\",\n ConcretePipe = \"concrete_pipe\",\n ConcreteSlab = \"concrete_slab\",\n PlasticWrap = \"plastic_wrap\",\n ContainerOffice = \"container_office\",\n ElectricalPole = \"electrical_pole\",\n ElectricalBox = \"electrical_box\",\n FireHydrant = \"fire_hydrant\",\n HoseReel = \"hose_reel\",\n Ladder = \"ladder\",\n MetalBeam = \"metal_beam\",\n MetalPipe = \"metal_pipe\",\n Pallet = \"pallet\",\n Pillar = \"pillar\",\n PlasticBin = \"plastic_bin\",\n PlasticBucket = \"plastic_bucket\",\n PlasticPipe = \"plastic_pipe\",\n PublicToilet = \"public_toilet\",\n Sign = \"sign\",\n SiteToolbox = \"site_toolbox\",\n StreetSink = \"street_sink\",\n TrafficBarrier = \"traffic_barrier\",\n TrafficCone = \"traffic_cone\",\n Wall = \"wall\",\n WasteContainer = \"waste_container\",\n WaterStorageTank = \"water_storage_tank\",\n Wheelbarrow = \"wheelbarrow\",\n Window = \"window\",\n WoodPlank = \"wood_plank\",\n CableReel = \"cable_reel\",\n AirConditioningSystem = \"air_conditioning_system\",\n WoodenBox = \"wooden_box\",\n PlasticBag = \"plastic_bag\",\n MaterialStack = \"material_stack\",\n}\n\nexport enum SegmentLabel {\n AirCompressor = \"air_compressor\",\n Brick = \"brick\",\n Building = \"building\",\n CableReel = \"cable_reel\",\n CementMixer = \"cement_mixer\",\n CementPile = \"cement_pile\",\n ConcreteBarrier = \"concrete_barrier\",\n ConcreteBlock = \"concrete_block\",\n ConstructionContainer = \"construction_container\",\n ConstructionSite = \"construction_site\",\n Crane = \"crane\",\n DetachedExcavatorBucket = \"detached_excavator_bucket\",\n DryMortarSilo = \"dry_mortar_silo\",\n DumpTruck = \"dump_truck\",\n Dumpster = \"dumpster\",\n Fence = \"fence\",\n FireHydrant = \"fire_hydrant\",\n GarbageBin = \"garbage_bin\",\n HoseReel = \"hose_reel\",\n Ibc = \"ibc\",\n JerryCan = \"jerry_can\",\n MetalBeam = \"metal_beam\",\n MiniDumper = \"mini_dumper\",\n Pallet = \"pallet\",\n Pipe = \"pipe\",\n Puddle = \"puddle\",\n Rebar = \"rebar\",\n Rubble = \"rubble\",\n Scaffolding = \"scaffolding\",\n ShippingContainer = \"shipping_container\",\n SiteOffice = \"site_office\",\n TrafficCone = \"traffic_cone\",\n Transformer = \"transformer\",\n Vehicle = \"vehicle\",\n Window = \"window\",\n WoodenSpool = \"wooden_spool\",\n Unknown = \"unknown\",\n}\n\nexport enum GateReportVehicleType {\n ConcretePump = DetectionLabel.ConcretePump,\n FlatbedSemiTrailer = DetectionLabel.FlatbedSemiTrailer,\n OtherTruck = DetectionLabel.OtherTruck,\n RoadVehicle = DetectionLabel.RoadVehicle,\n SemiTrailer = DetectionLabel.SemiTrailer,\n SmallTruck = DetectionLabel.SmallTruck,\n TankTruck = DetectionLabel.TankTruck,\n TippingTruck = DetectionLabel.TippingTruck,\n TruckHead = DetectionLabel.TruckHead,\n TruckMixer = DetectionLabel.TruckMixer,\n Unknown = DetectionLabel.Unknown,\n}\n\nexport type GateReportVehicleTypeItem = {\n name: string\n id: GateReportVehicleType\n}\n\nexport type GateReportEvent = {\n id: number\n vehicleTypes: GateReportVehicleType\n exid: string\n cameraExid?: string\n boundingBox: BoundingBox\n detectionType: GateReportDetectionType\n edited: boolean\n eventTime: string\n timestamp?: string\n eventType: GateReportEventType\n isPublic: boolean\n roiId: string\n truckType: GateReportVehicleType\n thumbnailUrl?: string\n}\n\nexport type GateReportArrivedEvent = GateReportEvent & {\n eventType: GateReportEventType.Arrived\n}\n\nexport type GateReportLeftEvent = GateReportEvent & {\n eventType: GateReportEventType.Left\n}\n\nexport type GateReportVerifiedDay = {\n id: number\n day: Date_YYYY_MM_DD\n isMatched: boolean\n insertedAt: DateTime\n updatedAt: DateTime\n verifiedBy: string\n cameraExid: CameraExid\n projectExid: ProjectExid\n}\n\nexport type BoundingBox = {\n xmax: number\n xmin: number\n ymax: number\n ymin: number\n}\n\nexport type EventsCountsByVehicleType = Record<GateReportVehicleType, number>\n\nexport type EventsCount = {\n in: number\n out: number\n source: GateReportDataSource\n}\n\nexport type YearlyEventCount = EventsCount & {\n year: Date_YYYY\n}\n\nexport type MonthlyEventCount = EventsCount & {\n month: Date_YYYY_MM\n}\n\nexport type DailyEventCount = EventsCount & {\n day: Date_YYYY_MM_DD\n}\n\nexport type HourlyEventCount = {\n hour: Date_HH\n count: number\n}\n\nexport type EventCountRequestPayload = {\n vehicleTypes?: GateReportVehicleType[]\n isPublic?: boolean\n camerasExid?: string[]\n}\n\nexport type EventCountResponsePayload = {\n days?: DailyEventCount[]\n months?: MonthlyEventCount[]\n years?: YearlyEventCount[]\n}\n\nexport type ProcessedDaysRequestPayload = {\n apiId?: string\n apiKey?: string\n isPublic?: Boolean\n}\n\nexport type EventsRequestPayload = {\n apiId?: string\n apiKey?: string\n camerasExid?: CameraExid[]\n cameras?: string[]\n eventType?: GateReportEventType\n fromDate?: DateTime\n isPublic?: boolean\n toDate?: DateTime\n truckTypes?: GateReportVehicleType[]\n vehicleTypes?: string[]\n} & PaginationParams\n\nexport type EventsResponsePayload = PaginatedItems<GateReportEvent>\n\nexport enum GateReportDataSource {\n Anpr = \"anpr\",\n Events = \"events\",\n}\n\nexport type GateReportResponsePayload = {\n source: GateReportDataSource\n results: PaginatedItems<GateReportEvent>\n}\n\nexport enum GateReportEventDirection {\n In = \"in\",\n Out = \"out\",\n Unknown = \"unknown\",\n}\n\nexport type GatReportRequestPayload = {\n camerasExid?: CameraExid[]\n eventType?: GateReportEventType\n fromDate?: DateTime\n isPublic?: boolean\n toDate?: DateTime\n vehicleTypes?: GateReportVehicleType[]\n} & PaginationParams\n\nexport enum GateReportExportType {\n Pdf = \"pdf\",\n Csv = \"csv\",\n}\n\nexport type EventsExportRequestParameters = {\n vehicleTypes: GateReportVehicleType[]\n fileType: GateReportExportType\n fromDate: DateTimeSpaceSeparated\n toDate: DateTimeSpaceSeparated\n camerasExid: CameraExid[]\n eventType: GateReportEventType\n}\n\nexport type AnprBasedGateReportExportRequestParams = {\n vehicleTypes?: GateReportVehicleType[]\n fileType?: GateReportExportType\n fromDate?: DateTimeSpaceSeparated\n toDate?: DateTimeSpaceSeparated\n camerasExid?: CameraExid[]\n direction?: AnprDirection\n}\n\ntype X1 = number\ntype Y1 = number\ntype X2 = number\ntype Y2 = number\n\nexport enum GateReportROIShapeType {\n Rectangle = \"rectangle\",\n Direction = \"direction\",\n Line = \"line\",\n}\n\nexport type GateReportROIShape = {\n coordinates: [[X1, Y1], [X2, Y2]]\n type: GateReportROIShapeType\n}\n\nexport type GateReportROI = {\n cameraex?: string\n fromDate?: string\n directionFilter?: string\n id?: number\n insertedAt?: Timestamp\n isactive?: boolean\n name?: string\n roiType?: string\n updatedAt?: Timestamp\n shapes?: GateReportROIShape[]\n}\n\nexport enum GateReportProcessingStatus {\n Processed = \"processed\",\n Unprocessed = \"unprocessed\",\n}\n\nexport const VEHICLE_TYPE_IDS = Object.values(GateReportVehicleType)\n\nexport type GateReportCamera = {\n exid: number\n name: string\n status: string\n note: string\n last_published_day: DateType\n last_processed_day: DateType\n}\n\nexport type GateReportProject = {\n exid: string\n name: string\n status: string\n featureFlags: ProjectFeatureFlag\n cameras: GateReportCamera[]\n}\n\nexport type AnalyticsParameters = {\n id: number\n cameraex: string\n processingType: string\n startDate: DateTime\n endDate: DateTime\n skipWeekend: boolean\n hourSiteOpening: number\n hourSiteClosure: number\n gateReportActive: boolean\n countingActive: boolean\n queueSystem: string\n reprocess: boolean\n framesToSkip: number\n detection_model: string\n detectionThreshold: number\n printLogsFrame: number\n crossingVectorAngleLimit: number\n minTruckLife: number\n insideMinTime: number\n trackerMaxAge: number\n trackerMinHit: number\n snapshotUpload: boolean\n snapshotPerSecond: number\n detectionClasses: string\n deepEventEndpointUrl: string\n timestampCalculation: string\n matchingEmbeddedDstCoeff: number\n matchingTimeCoeff: number\n matchingQueueOrderCoeff: number\n rabbitmqServerUrl: string\n rabbitmqEventsQueue: string\n rabbitmqEventsExchange: string\n rabbitmqCountingQueue: string\n rabbitmqCountingExchange: string\n dangerZones: boolean\n workflows: boolean\n linkedAnprCameras: Record<string, unknown>\n}\n\nexport type VerifiedDaysQueryParams = PaginationParams & {\n projectExid: ProjectExid\n camerasExid: CameraExid[]\n verifiedBy: string\n isMatched: boolean\n insertedAt: DateTime[]\n updatedAt: DateTime[]\n day: string\n}\n\nexport type EventUpdateRequestPayload = {\n cameraex: string\n roiId: number\n eventType: string\n eventTime: \"2024-12-13T14:25:58.066Z\"\n truckType: string\n isPublic: boolean\n boundingBox: {\n additionalProp1: number\n additionalProp2: number\n additionalProp3: number\n }\n valid: boolean\n loadState: string\n embeddingId: number\n embedding: number[]\n similarityDst: number\n detectionType: string\n trackingId: number\n deliveriesId: number\n edited: boolean\n isDeleted: boolean\n modelVersion: string\n}\n\nexport type VerifyDayUpdateRequestPayload = {\n camerasExid: string[]\n projectExid: string\n day: Date_YYYY_MM_DD\n isMatched: boolean\n verifiedBy: string\n}\n\nexport type ProcessedDaysQueryParams = {\n camerasExid: CameraExid[]\n isPublic: boolean\n eventType: GateReportEventType\n}\n\nexport type SecurityMeasurementQueryParams = {\n cameraex: string\n timestamp: DateTime\n prompt: string\n snapshotUrl: string\n}\n\nexport type ObjectDetectionQueryParams = {\n cameraex: string\n timestamp: DateTime\n base64Img: string\n snapshotUrl: string\n}\n\nexport type RoisQueryParams = {\n cameraExid: string\n id: number\n name: string\n fromDate: string\n roiType: GateReportROIShapeType\n isactive: boolean\n directionFilter: string\n sort: string\n}\n\nexport type GateReportROICreateRequestPayload = {\n id?: number\n roi: {\n cameraex: string\n name: string\n roiType: string\n isactive: true\n fromDate: string\n shapes: Record<string, unknown>[]\n directionFilter: string\n note: string\n }\n createdBy: string\n}\n","import { PaginationParams } from \"@/types\"\n\nexport enum HddFormat {\n ExFat = \"ExFAT\",\n HikFs = \"HikFS\",\n}\n\nexport enum HddType {\n Magnetic35 = '3.5\" Magnetic',\n Magnetic25 = '2.5\" Magnetic',\n Ssd25 = '2.5\" SSD',\n}\n\nexport enum HddState {\n Blank = \"Blank\",\n InUse = \"In Use\",\n ColdStorage = \"Cold Storage\",\n}\n\nexport enum WarehouseLocationIndex {\n IEWarehouse = 1,\n Deployed = 2,\n CustomerStorage = 3,\n USWarehouse = 4,\n AUWarehouse = 5,\n UKWarehouse = 6,\n}\n\nexport enum WarehouseLocation {\n IEWarehouse = \"IE Warehouse\",\n Deployed = \"Deployed\",\n CustomerStorage = \"Customer Storage\",\n USWarehouse = \"US Warehouse\",\n AUWarehouse = \"AU Warehouse\",\n UKWarehouse = \"UK Warehouse\",\n}\n\nexport enum HddSize {\n TwoTB = \"2 TB\",\n FourTB = \"4 TB\",\n FiveTB = \"5 TB\",\n SixTB = \"6 TB\",\n EightTB = \"8 TB\",\n TenTB = \"10 TB\",\n}\n\nexport type FootageCreateUpdatePayload = {\n cameraId: string\n startDate: string\n endDate: string\n}\n\nexport type HDDCreateUpdatePayload = {\n size: string\n type: string\n format: string\n locationId: string\n serialNumber: string\n hddStatus: string\n shelfBlock: string\n}\n\nexport type HDDsQueryParams = PaginationParams & {\n id: number\n location: string\n serialNumber: string\n shelfBlock: string\n format: string\n size: string\n type: string\n hddStatus: string\n}\n","import { PaginationParams, DateType } from \"@/types\"\n\nexport enum IngestProcessingStatus {\n Completed = \"completed\",\n Uploading = \"uploading\",\n Created = \"created\",\n Failed = \"failed\",\n Aborted = \"aborted\",\n Paused = \"paused\",\n InProgress = \"inprogress\",\n Pending = \"pending\",\n}\n\nexport type DronesQueryParams = Omit<PaginationParams, \"sort\"> & {\n projectId: string\n consumed: string\n token: string\n processingStatus: IngestProcessingStatus\n}\n\nexport type DroneUploadUpdateRequestPayload = {\n flightMetadata: {\n dateTime: string\n gpsAltitude: string\n gpsCoordinates: string\n }\n upload: {\n url: string\n title: string\n fileExtension: string\n }[]\n projectName: string\n}\n\nexport type CalculateMeasuringOperationRequestPayload = {\n date: DateType\n points: [number, number][]\n operation: string\n}\n\nexport type FlightImagesQueryParams = Partial<\n Omit<PaginationParams, \"sort\">\n> & {\n date: DateType\n}\n\nexport type InspectionToolRequestPayload = {\n date: DateType\n gpsAltitude: string\n gpsCoordinates: string\n}\n","export enum MapType {\n Hybrid = \"hybrid\",\n Terrain = \"terrain\",\n}\n","export type ConnectorDetail = {\n login: string\n hostname: string\n}\n\nexport enum Connector {\n Aconex = \"aconex\",\n Procore = \"procore\",\n Autodesk = \"autodesk\",\n AutodeskViewer = \"autodesk_viewer\",\n VoyageControl = \"voyage_control\",\n}\n\nexport type ConnectorResponsePayload = Array<{\n hostname: string\n login: string\n provider: string\n}>\n","export enum NotificationType {\n CameraShare = \"camera_share\",\n CameraStatusChange = \"camera_status_changed\",\n Mention = \"mention\",\n TimelapseCreated = \"timelapse_created\",\n TimelapseFailed = \"timelapse_failed\",\n DroneProcessing = \"drone_processing_done\",\n Processing360 = \"three_sixty_done\",\n}\n\nexport interface CameraShareContext {\n cameraExid: string\n projectExid: string\n shareId: number\n}\n\n// export interface CameraStatusChangeContext {\n// cameraExid: string;\n// projectExid: string;\n// status: string;\n// }\n\n// export interface MentionContext {\n// postId: number;\n// commentId?: number;\n// }\n\nexport type Notification = {\n id: number\n type: NotificationType\n insertedAt: string\n initiatorId: number\n initiatorFullname: string\n initiatorEmail: string\n targetId: number\n targetFullname: string\n targetEmail: string\n readTimestamp: string | null\n context: CameraShareContext //| CameraStatusChangeContext | MentionContext\n}\n","import type { NvrModel } from \"@evercam/api/types\"\n\nexport type Nvr = {\n id?: number\n deviceType: NvrDeviceType\n serial: string\n model: NvrModel\n httpUrl: string\n rtspUrl: string\n macAddress: string\n username: string\n password: string\n nerves: boolean\n}\n\nexport enum NvrDeviceType {\n Rpi4 = \"rpi4\",\n Rpi5 = \"rpi5\",\n OrinNano = \"orin_nano\",\n Giraffe = \"giraffe\",\n}\n\nexport enum NvrHddStatus {\n Error = \"error\",\n Idle = \"idle\",\n NotExist = \"notexist\",\n Ok = \"ok\",\n Unformatted = \"unformatted\",\n}\n\nexport type NvrCreatePayload = {\n serial?: string\n httpUrl: string\n rtspUrl?: string\n deviceType?: NvrDeviceType\n model: NvrModel\n username: string\n password: string\n kitId?: number\n}\n","import { DateTime, DateType, PaginationParams } from \"@/types\"\nexport type ProgressPhoto = {\n cameraIds: string\n cameraNames: number\n createdAt: string\n id: number\n provider: string\n config: Partial<{\n recipients: string\n projectId: number\n companyId: number\n }>\n isPaused: boolean\n notifyDays: string\n notifyTime: string\n requesterEmail: string\n requesterName: string\n timezone: string\n title: string\n}\n\nexport type ProgressPhotosCreateUpdateRequestPayload = {\n cameraExids?: string\n notifyDays?: string\n notifyTime?: string\n provider?: string\n config?: {\n recipients?: string\n projectId?: number\n companyId?: number\n catergoryId?: string\n }\n subject?: string\n isPaused?: boolean\n timezone?: string\n}\n\nexport type ProgressPhotosUnSubscribeParams = {\n email: string\n token?: string\n}\n\nexport type ProgressPhotosResponsePayload = {\n progressPhotos: ProgressPhoto[]\n}\n\nexport enum ProgressPhotoDialogType {\n Create = \"create\",\n Edit = \"edit\",\n Pause = \"pause\",\n}\n\nexport type CameraOption = {\n exid: string\n name: string\n}\n\nexport interface ProgressPhotoItem {\n id: number\n cameras: CameraOption[] | string[] | string\n insertedAt: string\n provider: string\n config: {\n recipients: string | string[]\n sendSnapshotAs: string\n }\n isPaused: boolean\n notifyDays: string | string[]\n notifyTime: string\n api_id: string\n api_key: string\n timezone: string\n exid: string\n fullname: string\n}\n\nexport type ProgressPhotosQueryParams = PaginationParams & {\n fullname: string\n recipients: string\n notifyTime: string\n timezone: string\n cameras: string\n}\n\nexport type progressPhotosHistoryQueryParams = {\n insertedAt: DateType[]\n recipients: string\n subject: string\n cameraId: string\n failedCameraId: string\n}\n\nexport type ProgressPhotosHistory = {\n id: number\n cameraIds: string\n failedCameraIds: string\n subject: string\n recipients: DateTime\n}\n","import {\n AdminCamera,\n Camera,\n CameraExid,\n DateTime,\n DateType,\n EntityByExid,\n Exid,\n PaginationParams,\n} from \"@/types\"\n\nexport type ProjectExid = Exid\n\nexport type ProjectsByExid = EntityByExid<Project>\n\nexport type Project = {\n id: string | number\n exid: ProjectExid\n name: string\n status?: ProjectStatus\n insertedAt?: string\n startedAt?: string\n timezone?: string\n zohoId?: string\n cameras?: Array<Camera | AdminCamera>\n featureFlags: Array<ProjectFeatureFlag>\n owner?: { email?: string }\n}\n\nexport enum ProjectStatus {\n ToStart = \"To Start\",\n InProgress = \"In Progress\",\n Completed = \"Completed\",\n NotAplicable = \"Not Applicable\",\n}\n\nexport enum ProjectArchiveTier {\n Full = \"Full\",\n Partial = \"Partial\",\n Minimal = \"Minimal\",\n ScheduledForDeletion = \"Scheduled for Deletion\",\n}\n\nexport type ProjectResponsePayload = {\n data?: Project[]\n}\n\nexport type Logo = {\n name: string\n url: string\n}\n\nexport type ProjectLogoResponsePayload = Logo[]\n\nexport enum ProjectFeatureFlag {\n AnprLegacy = \"anpr_legacy\",\n DroneView = \"drone_view\",\n Bim = \"4d_bim\",\n BimItwin = \"4d_bim_itwin\",\n BimForge = \"4d_bim_forge\",\n ThreeSixtyView = \"360_view\",\n NdaMc = \"NDA/MC\",\n GateReport = \"gate_report\",\n GateReportAutoVerify = \"auto_publish\",\n GateReportMotionDetection = \"motion_detection\",\n FullEmpty = \"full_empty\",\n MediaHubSharing = \"archives_sharing\",\n GateReportAnprBased = \"anpr_sourced\",\n NoLicensePlate = \"no_license_plate\",\n DefaultToProjectApp = \"default_to_project_app\",\n Go = \"evercam_go\",\n}\n\nexport type ProjectBatteryReading = {\n exid: number\n voltage: number\n lastSeen: DateType\n}\n\nexport type ThumbnailData = {\n cameraExid: CameraExid\n custom: boolean\n image: string\n}\n\nexport type ProjectsQueryParams = PaginationParams & {\n name: string\n exid: string\n status: ProjectStatus\n cameras: string\n featureFlags: Array<ProjectFeatureFlag>\n archived: string\n}\n\nexport type ProjectCreateRequestPayload = {\n projectExid?: string\n projectName: string\n ownerId: number\n cameras: string[]\n}\n\nexport type ProjectCreateResponse = {\n name: string\n exid: string\n id: number\n userId: number\n zohoId: string\n}\n\nexport type ProjectUpdateRequestPayload = {\n name: string\n timezone: string\n featureFlags: ProjectFeatureFlag[]\n cameras: string[]\n}\n\nexport type ProjectStatusStats = {\n nil: number\n Completed: number\n \"In Progress\": number\n \"Not Applicable\": number\n \"To Start\": number\n}\n\nexport type ProjectUserProperty = {\n active: boolean\n activeOneMonth: boolean\n cameraExid: string\n cameraName: string\n cameraRights: string\n email: string\n eventsCount: number\n fullname: string\n id: number\n lastSeenAt: DateTime\n persona: string\n}\n\nexport type ProjectUsers = {\n cameras: {\n exid: string\n name: string\n }[]\n users: Record<string, ProjectUserProperty[]>\n}\n","import { ApiCredentials } from \"@/types\"\nimport { CancelToken } from \"axios\"\n\nexport type Snapshot = {\n createdAt: string\n data: string\n status?: string\n}\n\nexport type NearestSnapshotRequestPayload = {\n apiKey?: string\n apiId?: string\n token?: string\n cancelToken?: object\n}\n\nexport type AvailableDaysRequestPayload = {\n cameraId: string\n year: string\n month: string\n payload?: ApiCredentials\n}\nexport type AvailableDaysResponsePayload = {\n days: Array<number>\n}\n\nexport type AvailableHoursRequestPayload = {\n cameraId: string\n year: string\n month: string\n day: string\n payload?: ApiCredentials\n cancelToken?: CancelToken\n}\nexport type AvailableHoursResponsePayload = {\n hours: Array<number>\n}\n\nexport type NearestSnapshotResponsePayload = {\n snapshots: Array<{\n createdAt: string\n data: string\n notes?: string\n }>\n}\n\nexport type SnapshotRangeRequestPayload = {\n from: string\n to: string\n limit?: number\n page?: number\n schedule?: boolean\n count?: number\n}\nexport type SnapshotInstance = {\n createdAt: string\n notes?: string\n data?: string\n}\nexport type SnapshotRangeResponsePayload = {\n snapshots: Array<SnapshotInstance>\n}\n\nexport enum BrainTool {\n Detections = \"detections\",\n Segmentation = \"sam\",\n DepthAnalysis = \"depthAnalysis\",\n}\n\nexport enum CloudRecordingFrequency {\n EverySecond = 60,\n Every2Seconds = 30,\n Every5Seconds = 12,\n Every10Seconds = 6,\n Every15Seconds = 4,\n Every30Seconds = 2,\n Every60Seconds = 1,\n Every5Minutes = 5,\n Every10Minutes = 10,\n}\n\nexport enum CloudRecordingDuration {\n Infinity = -1,\n Day = 1,\n Week = 7,\n Month = 30,\n ThreeMonths = 90,\n}\n\nexport enum CloudRecordingStatus {\n On = \"on\",\n Off = \"off\",\n Paused = \"paused\",\n OnScheduled = \"on-scheduled\",\n}\n\nexport enum SnapshotExtractionInterval {\n EverySecond = 1,\n Every5Seconds = 5,\n Every10Seconds = 10,\n Every15Seconds = 15,\n Every20Seconds = 20,\n Every30Second = 30,\n EveryMinute = 60,\n Every5Minutes = 300,\n Every10Minutes = 600,\n Every15Minutes = 900,\n Every20Minutes = 1200,\n Every30Minutes = 1800,\n EveryHour = 3600,\n Every2Hours = 7200,\n Every6Hours = 21600,\n Every12Hours = 43200,\n Every24Hours = 86400,\n}\n\nexport enum VpnServer {\n None = \"None\",\n OpenVPN1 = \"OpenVPN1\",\n OpenVPN2 = \"OpenVPN2\",\n OpenVPN3 = \"OpenVPN3\",\n OpenVPN4 = \"OpenVPN4\",\n OpenVPN5 = \"OpenVPN5\",\n PPTP1 = \"PPTP1\",\n PPTP2 = \"PPTP2\",\n WireGuard1 = \"WireGuard1\",\n WireGuard2 = \"WireGuard2\",\n WireGuard3 = \"WireGuard3\",\n WireGuard4 = \"WireGuard4\",\n WireGuard5 = \"WireGuard5\",\n WireGuard6 = \"WireGuard6\",\n WireGuard7 = \"WireGuard7\",\n WireGuard8 = \"WireGuard8\",\n WireGuard9 = \"WireGuard9\",\n WireGuard10 = \"WireGuard10\",\n}\n","export enum RoiType {\n Gate = \"gate\",\n AnprContext = \"anpr_context\",\n ExclusionZone = \"exclusion_zone\",\n WorkflowArea = \"workflow_area\",\n SiteAnalytics = \"site_analytics\",\n}\n\nexport enum RoiShapeType {\n Polygon = \"polygon\",\n Line = \"line\",\n Direction = \"direction\",\n Rectangle = \"rectangle\",\n}\n\nexport type RoiShape = {\n id: number | null\n name: string\n x1: number\n x2: number\n y1: number\n y2: number\n}\n\nexport enum RoiDirection {\n Arrived = \"arrived\",\n Left = \"left\",\n Bidirectional = \"arrived,left\",\n}\n","export type RouteParams = {\n projectExid?: string\n cameraExid?: string\n timestamp?: string\n fromDate?: string\n toDate?: string\n}\n\nexport enum UrlParamValue {\n True = \"true\",\n False = \"false\",\n}\n\nexport enum TimelineUrlParam {\n CameraExid = \"cameraExid\",\n Timestamp = \"timestamp\",\n FromDate = \"fromDate\",\n ToDate = \"toDate\",\n Live = \"live\",\n Video = \"video\",\n BeforeTimestamp = \"beforeTimestamp\",\n OverlayType = \"overlayType\",\n Sidebar = \"sidebar\",\n ThreeSixtyId = \"_360Id\",\n DroneId = \"droneId\",\n MediaId = \"mediaId\",\n}\n\nexport enum Timeline360UrlParams {\n Show360 = \"show360\",\n}\n\nexport enum TimelineDroneUrlParams {\n ShowDrone = \"showDrone\",\n}\n\nexport enum TimelineMediaUrlParams {\n ShowMedia = \"showMedia\",\n}\n\nexport enum TimelineBimUrlParams {\n ShowBim = \"showBim\",\n}\n\nexport enum TimelineExNvrRecordingsUrlParams {\n ShowExNvrRecordings = \"showExNvrRecordings\",\n}\n\nexport enum TimelineAnprUrlParams {\n ShowAnpr = \"showAnpr\",\n}\n\nexport enum TimelineMobileCaptureUrlParams {\n ShowMobileCapture = \"showMobileCapture\",\n}\n\nexport enum TimelineCommentsUrlParams {\n ShowComments = \"showComments\",\n}\n\nexport type TimelineUrlParams = Record<\n | TimelineUrlParam\n | TimelineMediaUrlParams\n | TimelineBimUrlParams\n | TimelineExNvrRecordingsUrlParams\n | TimelineAnprUrlParams\n | TimelineMobileCaptureUrlParams\n | TimelineCommentsUrlParams,\n string | null\n>\n","import { Camera, PaginationParams, Project, Sim } from \"@/types\"\nexport type RouterBillPayer = { name: string }\n\nexport type SimProvider = { name: string }\n\nexport type Router = {\n id?: number\n kitId: number | null\n routerType: string\n routerUserId: string\n routerPassword: string\n serialNumber: number | null\n rmsUrl?: string\n externalHost?: string\n routerHttpPort: number | null\n vpnPassword: string\n vpnUserId: string\n vpnServer: string\n netbirdUrl: string\n status: RouterStatus\n powerType: PowerType\n powerSchedule: string\n battery?: {\n lastVoltage: number\n lastSeen: string\n }\n sims: Array<Pick<Sim, \"id\" | \"number\">>\n billPayers?: Array<RouterBillPayer>\n simProviders?: Array<SimProvider>\n projects?: Pick<Project, \"exid\" | \"id\" | \"name\">[]\n cameras?: Pick<Camera, \"id\" | \"name\">[]\n}\n\nexport enum PowerType {\n Mains = \"mains\",\n Battery = \"battery\",\n Solar = \"solar\",\n Generator = \"generator\",\n Other = \"other\",\n}\n\nexport enum PowerSchedule {\n Schedule = \"schedule\",\n FullTime = \"24/7\",\n}\n\nexport enum RouterStatus {\n Active = \"active\",\n Inactive = \"inactive\",\n}\n\nexport type RouterQueryParams = PaginationParams & {\n routerType: string\n vpnServer: string\n serialNumber: string\n}\n\nexport type RouterCreatePayload = {\n serialNumber: number\n vpnUserId?: string\n vpnPassword?: string\n routerType: string\n routerUserId?: string\n routerPassword?: string\n routerHttpPort: number\n powerType: PowerType\n powerSchedule: PowerSchedule\n vpnServer?: string\n netbirdUrl?: string\n}\n","import type { CameraExid, DateTime, DateType } from \"@/types\"\n\nexport type ShareRequest = {\n cameraId: string\n createdAt: DateType | number\n email: string\n id: number\n rights: string\n sharerEmail: string\n sharerName: string\n userId: number\n}\n\nexport type Share = {\n cameraId: string\n createdAt: DateType | number\n email: string\n fullname: string\n id: number\n lastSeenAt: DateType\n rights: string\n sessionCount: number\n sharerEmail: string\n sharerId: number\n sharerName: string\n userId: number\n}\n\nexport type ShareRequestsResponsePayload = {\n shareRequests: ShareRequest[]\n}\n\nexport type ShareOwner = {\n email: string\n fullname: string\n lastSeenAt: DateType\n sessionCount: number\n}\n\nexport type SharesResponsePayload = {\n owner: ShareOwner\n shares: Share[]\n}\n\nexport type ShareDeletionRequestPayload = {\n email?: string\n key?: string\n origin?: string\n}\n\nexport type SharedUsersResponsePayload = Array<{\n email: string\n name: string\n}>\n\nexport type ShareCreateRequestPayload = {\n email: string[] | string\n message?: string\n permission?: string\n rights: string\n apiId?: string\n apiKey?: string\n}\n\nexport type ShareProjectCamerasRequestPayload = {\n email: string[]\n cameraExids: CameraExid[]\n message: string\n permission?: string\n rights: string\n}\n\nexport type ShareCreateResponsePayload = {\n shares: Share[]\n shareRequests: ShareRequest[]\n}\n\nexport type ShareRequestByKeyResponsePayload = {\n shareRequests: Array<{\n id: string\n email: string\n rights: string\n cameraId: string\n sharerName: string\n userId: string\n sharerEmail: string\n createdAt: DateType\n }>\n}\n\nexport type ResendShareRequestPayload = {\n email: string\n apiId?: string\n apiKey?: string\n}\n\nexport enum SharePermission {\n Minimum = \"minimum\",\n Share = \"minimal+share\",\n Full = \"full\",\n Custom = \"custom\",\n}\n\nexport enum ShareType {\n Share = \"share\",\n Request = \"request\",\n}\n\nexport enum ShareRequestStatus {\n All = \"\",\n Pending = -1,\n Cancelled = -2,\n Failed = -3,\n Used = 1,\n}\n\nexport enum ShareVisibility {\n PublicDiscoverable = \"publicDiscoverable\",\n PublicUndiscoverable = \"publicUndiscoverable\",\n Private = \"private\",\n}\n\nexport type ProjectShare = {\n id: number\n projectId: string\n userId: number\n email: string\n fullname: string\n sharerId: number\n sharerEmail: string\n sharerName: string\n role: \"member\" | \"admin\"\n cameras: Record<string, string>\n message: string | null\n updatedAt: DateType\n insertedAt: DateType\n}\n\nexport type ProjectShareRequest = ProjectShare\n\nexport type ProjectShareResponse = {\n projectShares: ProjectShare[]\n projectShareRequests: ProjectShareRequest[]\n}\n\nexport type AdminShare = {\n sharerId: number\n sharerFullname: string\n sharerApiId: string\n sharerApiKey: string\n shareeId: number\n shareeFullname: string\n shareeApiId: string\n shareeApiKey: string\n shareeEmail: string\n cameraId: number\n exid: string\n projectId: string\n name: string\n id: number\n message: string\n createdAt: DateType\n}\n\nexport type CameraShareRequestPayload = {\n email: string[]\n rights: string\n message?: string\n}\n\nexport type ShareQueryParams = {\n exid: string\n sharerFullname: string\n shareeFullname: string\n shareeEmail: string\n}\n\nexport type CameraShare = {\n sharerId: number\n sharerFullname: string\n sharerApiId: string\n sharerApiKey: string\n shareeId: number\n shareeFullname: string\n shareeApiId: string\n shareeApiKey: string\n shareeEmail: string\n cameraId: number\n exid: string\n projectId: string\n name: string\n id: number\n message: string\n createdAt: DateTime\n}\n\nexport type CameraShareRequestsQueryParams = {\n shareeEmail: string\n camera: string\n sharer: string\n status: string\n}\n\nexport type CameraShareRequest = {\n id: number\n shareeEmail: string\n camera: string\n sharer: string\n message: number\n rights: string\n status: number\n projectId: string\n cameraExid: string\n apiId: string\n apiKey: number\n createdAt: DateTime\n}\n","import { DateTime, PaginationParams } from \"@/types\"\nexport enum SmsCommands {\n Cellular = \"cellular\",\n Gpson = \"gpson\",\n GPS = \"gps\",\n IPUnblock = \"ipunblock\",\n IOStatus = \"iostatus\",\n IOSet = \"ioset\",\n MonitoringStatus = \"monitoring_status\",\n MobileOn = \"mobileon\",\n MobileOff = \"mobileoff\",\n Reboot = \"reboot\",\n Restore = \"restore\",\n RmsOn = \"rms_on\",\n RmsConnect = \"rms_connect\",\n RmsStatus = \"rms_status\",\n SwitchSIM = \"switch_sim\",\n Status = \"status\",\n SshOn = \"sshon\",\n SshOff = \"sshoff\",\n Uci = \"uci\",\n VpnOn = \"vpnon\",\n VpnOff = \"vpnoff\",\n VpnStatus = \"vpnstatus\",\n WifiOn = \"wifion\",\n WifiOff = \"wifioff\",\n Wakeup = \"wakeup\",\n WebOn = \"webon\",\n WebOff = \"weboff\",\n}\n\nexport enum SmsStatuses {\n Delivered = \"Delivered\",\n Accepted = \"accepted\",\n Pending = \"Pending\",\n}\n\nexport type SimCreateUpdatePayload = {\n number: string\n simProvider: string\n billPayer?: string\n pin1?: string\n pin2?: string\n puk?: string\n iccid?: string\n description?: string\n cameraId: string[]\n}\n\nexport type SimsQueryParams = PaginationParams & {\n simProvider: string\n number: string\n billPayer: string\n iccid: string\n cameraName: string\n description: string\n}\n\nexport type Sim = {\n id: number\n number: string\n simProvider: string\n billPayer: string\n lastSms: string\n pin1: string\n pin2: string\n puk: string\n iccid: string\n description: string\n lastSmsAt: DateTime\n cameras: {\n name: string\n exid: string\n id: number\n }[]\n}\n\nexport type SendSmsPayload = {\n number: string\n smsMessage: string\n}\n\nexport type SendSmsResponse = {\n status: number\n errorText: string\n}\n\nexport type SmsHistory = {\n insertedAt: DateTime\n type: string\n status: string\n text: string\n deliveryDatetime: DateTime\n}\n\nexport type SmsHistoryResponse = {\n singleSimSms: SmsHistory[]\n}\n\nexport type Sms = {\n id: number\n from: string\n fromName: string\n to: string\n toName: string\n messageId: string\n status: string\n text: string\n type: string\n insertedAt: DateTime\n deliveryDatetime: DateTime\n}\n\nexport type SmsQueryParams = PaginationParams & {\n dateRange: string\n fromName: string\n toName: string\n fromNumber: string\n toNumber: string\n smsText: string\n smsType: string\n smsStatus: SmsStatuses\n deliveryDatetime: string\n}\n","export enum EMapTypes {\n Blank = \"Blank\",\n Satellite = \"Satellite\",\n Street = \"Street\",\n GoogleSatellite = \"hybrid\",\n GoogleStreet = \"roadmap\",\n}\n\nexport enum EMarkers {\n CameraMarker = \"cameraMarker\",\n}\n\nexport enum EPageType {\n List = \"list\",\n Item = \"item\",\n}\n\nexport enum EPaths {\n Home = \"/\",\n Session = \"/session\",\n}\n\nexport enum EProjectItems {\n Camera = \"camera\",\n Overlay = \"overlay\",\n}\n\nexport enum ERoles {\n Admin = \"admin\",\n User = \"user\",\n}\n","import {\n MilesightCameraNetworkConfiguration,\n MilesightCameraOsdConfiguration,\n MilesightCameraSdCardInfo,\n MilesightCameraSystemSettings,\n MilesightCameraTimeInfo,\n MilesightCameraVideoConfig,\n TaskStatus,\n DateTime_Z_micros,\n KitMetricData,\n} from \"@/types\"\n\nexport enum ExNvrHealthCheckTaskId {\n ExNvrLogin = \"exNvrLogin\",\n ExNvrConfigCheck = \"exNvrGetDeviceInfo\",\n ExNvrSystemStatus = \"exNvrSystemStatus\",\n ExNvrRecordings = \"exNvrGetRecordings\",\n CameraSystemConfigCheck = \"getCameraSystemInfo\",\n CameraTimeConfigCheck = \"getCameraTimeInfo\",\n CameraStreamsConfigCheck = \"getCameraStreamsInfo\",\n CameraNetworkConfigCheck = \"getCameraNetworkInfo\",\n CameraOsdConfigCheck = \"getCameraOsdInfo\",\n CameraStorageConfigCheck = \"getCameraStorageInfo\",\n}\n\nexport type ExNvrHealthCheckTaskResult<T extends ExNvrHealthCheckTaskId> =\n T extends ExNvrHealthCheckTaskId.ExNvrLogin\n ? ExNvrLoginResponse\n : T extends ExNvrHealthCheckTaskId.ExNvrConfigCheck\n ? ExNvrDeviceConfig\n : T extends ExNvrHealthCheckTaskId.ExNvrSystemStatus\n ? ExNvrSystemStatus\n : T extends ExNvrHealthCheckTaskId.ExNvrRecordings\n ? ExNvrRecordingInterval[]\n : T extends ExNvrHealthCheckTaskId.CameraStreamsConfigCheck\n ? MilesightCameraVideoConfig\n : T extends ExNvrHealthCheckTaskId.CameraSystemConfigCheck\n ? MilesightCameraSystemSettings\n : T extends ExNvrHealthCheckTaskId.CameraTimeConfigCheck\n ? MilesightCameraTimeInfo\n : T extends ExNvrHealthCheckTaskId.CameraNetworkConfigCheck\n ? MilesightCameraNetworkConfiguration\n : T extends ExNvrHealthCheckTaskId.CameraOsdConfigCheck\n ? MilesightCameraOsdConfiguration\n : T extends ExNvrHealthCheckTaskId.CameraStorageConfigCheck\n ? MilesightCameraSdCardInfo\n : never\n\nexport type ExNvrHealthCheckTask<T extends ExNvrHealthCheckTaskId> = {\n id: T\n status: TaskStatus\n duration?: number\n result?: ExNvrHealthCheckTaskResult<T>\n error?: Error\n}\n\nexport type ExNvrLoginResponse = { accessToken: string }\n\nexport type ExNvrRecordingInterval = {\n active: boolean\n startDate: DateTime_Z_micros\n endDate: DateTime_Z_micros\n}\n\nexport type ExNvrDeviceConfig = {\n id: string\n name: string\n type: string\n state: ExNvrDeviceState\n credentials: {\n password: string\n username: string\n }\n mac: string\n url: string\n insertedAt: string\n updatedAt: string\n settings: {\n storageAddress: string\n overrideOnFullDisk: boolean\n overrideOnFullDiskThreshold: number\n generateBif: boolean\n }\n vendor: string\n model: string\n streamConfig: {\n filename: string | null\n duration: string | null\n temporaryPath: string | null\n snapshotUri: string\n streamUri: string\n subStreamUri: string\n }\n timezone: string\n}\n\nexport enum ExNvrFootageAvailableStatus {\n Active = \"Active\",\n NotActive = \"Not Active\",\n NotAvailable = \"Not Available\",\n}\n\nexport enum ExNvrDeviceState {\n Recording = \"recording\",\n Failed = \"failed\",\n Stopped = \"stopped\",\n}\n\nexport type ExNvrCpuStatus = {\n load: number[]\n numCores: number\n}\n\nexport type ExNvrMemoryStatus = {\n systemTotalMemory: number\n freeMemory: number\n totalMemory: number\n bufferedMemory: number\n cachedMemory: number\n totalSwap: number\n freeSwap: number\n availableMemory: number\n}\n\nexport type ExNvrSolarChargerStatus = {\n v: number\n vpv: number\n ppv: number\n i: number\n il: number\n load: string\n relayState: string\n offReason: number\n h19: number\n h20: number\n h21: number\n h22: number\n h23: number\n err: number\n cs: string\n fw: string\n pid: string\n serialNumber: string\n}\n\nexport type ExNvrSystemStatus = {\n version: string\n cpu: ExNvrCpuStatus\n memory: ExNvrMemoryStatus\n solarCharger: ExNvrSolarChargerStatus\n}\n\nexport enum ExNvrMetricId {\n CpuLoad = \"cpu_load\",\n RamUsage = \"ram_usage\",\n SwapUsage = \"swap_usage\",\n}\n\nexport type ExNvrMetric = KitMetricData & {\n metricId: ExNvrMetricId\n value: number\n}\n","import { DateType, Schedule } from \"@/types\"\n\nexport enum TimelapseStatus {\n Pending = 11,\n Completed = 5,\n Failed = 7,\n}\n\nexport enum TimelapseDuration {\n ThirtySeconds = 30,\n SixtySeconds = 60,\n NintySeconds = 90,\n}\n\nexport type TimelapseVideoOptions = {\n width?: number\n height?: number\n removeTimestamp: boolean\n smoothTransition: boolean\n evercamWatermark: boolean\n}\n\nexport type TimelapseLogoOptions = {\n id: number\n x: number\n y: number\n width: number\n height: number\n}\n\nexport type TimelapseSchedules = string | Schedule\n\nexport enum TimelapseScheduleType {\n Continuous = \"continuous\",\n WorkingHours = \"workingHours\",\n Custom = \"custom\",\n}\n\nexport enum TimelapsePeriod {\n Day = 1,\n Week = 7,\n Month = 30,\n WholeProject = \"whole_project\",\n Custom = \"custom\",\n}\n\nexport type TimelapseFilterQueryParams = {\n from?: DateType\n to?: DateType\n period?: TimelapsePeriod\n duration?: number\n schedule?: TimelapseSchedules\n}\n\nexport type TimelapseCreationRequestPayload = {\n title: string\n duration: number\n fromDatetime: string\n toDatetime: string\n cameraExid: string\n schedule: Schedule\n videoOptions: TimelapseVideoOptions\n logo?: TimelapseLogoOptions\n}\n\nexport type TimelapseCreationResponsePayload = {\n Timelapse: {\n camera: string\n createdAt: string\n fromDate: string\n id: number\n duration: number\n requestor: string\n schedule: Schedule\n status: number\n toDate: string\n updatedAt: string\n }\n}\n\nexport type TimelapseSnapshotRequestPayload = {\n from: string\n to: string\n schedule: string\n count: number\n}\n\nexport type TimelapseSnapshotResponsePayload = {\n snapshots: string[]\n}\n\nexport enum TimelapseExportStep {\n Format = 1,\n Effects = 2,\n Confirm = 3,\n Finish = 4,\n}\n","import type { DateTime, PaginationParams } from \"@/types\"\n\nexport type User = {\n id?: number\n fullname?: string\n firstname: string\n lastname: string\n email: string\n telephone: string\n country: string\n isAdmin: boolean\n persona: Persona\n companyId?: string\n companyName?: string\n companyExid?: string\n features?: Array<UserFeatureFlag>\n}\n\nexport type AdminUser = {\n id: number\n fullname: string\n firstname: string\n email: string\n telephone: string\n country: string\n isAdmin: boolean\n companyId: string\n companyName: string\n companyExid: string\n features: Array<UserFeatureFlag>\n active: boolean\n cameraShares: number\n camerasCount: number\n camerasOwned: number\n countryId: number\n countryName: string\n createdAt: DateTime\n integrations: string[]\n lastEventBrowser: string\n lastEvenCreatedAt: DateTime\n lastEventId: number\n lastEventIpAddress: string\n lastEventName: string\n lastEventOs: string\n lastLoginAt: string\n lastname: string\n persona: string\n projects: string[]\n projectsCount: number\n referralUrl?: string\n snapmailCount: number\n zohoId: string\n}\n\nexport enum UserFeatureFlag {\n CompanyAdmin = \"company-admin\",\n VideoWalls = \"video-walls\",\n MassCameraSharing = \"mass-camera-sharing\",\n Copilot = \"copilot\",\n ProjectSharing = \"project-sharing\",\n}\n\nexport type ProjectUser = User & {\n lastSeenAt: string\n active: boolean\n activeOneMonth: boolean\n eventsCount: string\n cameraExid: string\n cameraRights: string\n}\n\nexport enum Persona {\n HQ = \"HQ\",\n PM = \"PM\",\n QS = \"QS\",\n Marketing = \"Marketing\",\n HS = \"H&S\",\n DI = \"DI\",\n Other = \"Other\",\n}\n\nexport type UpdatePasswordRequestPayload = {\n token: string\n password: string\n}\n\nexport type Credentials = {\n apiKey: string\n apiId: string\n}\n\nexport type LoginRequestPayload = {\n username: string\n password: string\n redirectToZoho?: boolean\n}\n\nexport type RemotePasswordUpdateRequestPayload = {\n currentPassword: string\n newPassword: string\n}\n\nexport type LoginResponsePayload = {\n confirmedAt?: string\n country?: string\n createdAt?: string\n email?: string\n firstname?: string\n id?: string\n isAdmin?: boolean\n lastLoginAt?: string\n lastname?: string\n persona?: Persona\n telephone?: string\n token?: string\n updatedAt?: string\n evercamAccount?: string\n}\n\nexport type LogoutParams = {\n token: string\n fromAdmin?: boolean\n}\n\nexport type UserSession = {\n browser: string\n createdAt: string\n id: number\n ipAddress: string\n isCurrent: boolean\n lastUsedAt: string\n os: string\n}\n\nexport type SessionsListRequestPayload = {\n authorization: string\n browser?: string\n os?: string\n ipAddress?: string\n sort: string\n limit: number\n page: number\n}\n\nexport type SessionActivityCamSettingsDetail = {\n new: any\n old: any\n}\n\nexport type SessionActivityDetail = {\n agent: string\n camSettings: SessionActivityCamSettingsDetail\n country: string\n countryCode: string\n ip: string\n}\n\nexport type SessionActivity = {\n cameraExid: string\n details: SessionActivityDetail\n insertedAt: string\n type: string\n who: string\n}\n\nexport type SessionActivitiesListRequestPayload = {\n limit: number\n from: string\n to: string\n}\n\nexport type SignupUserRequestPayload = {\n telephone: string\n token: string\n firstname: string\n lastname: string\n email: string\n password: string\n shareRequestKey: string\n referralUrl: string\n persona: string\n disablePassword: boolean\n}\n\nexport type UserUpdateRequestPayload = {\n firstname: string\n lastname: string\n email: string\n telephone: string\n country: string\n persona: string\n}\n\nexport type UserDeleteRequestPayload = {\n verifEmail: string\n}\n\nexport type GoogleAuthRequestPayload = { code: string; redirectUri: string }\n\nexport type UserStatsResponse = { data: { userStats: AdminUser } }\n\nexport type UserCamera = {\n id: number\n exid: string\n ownerFullname: string\n ownerEmail: string\n apiId: string\n apiKey: string\n}\n\nexport type UserCameraResponse = { data: UserCamera[] }\n\nexport type UserProject = {\n id: number\n exid: string\n name: string\n startedAt: DateTime\n}\n\nexport type UserProjectResponse = { data: UserProject[] }\n\nexport type AdminUserUpdateRequestPayload = {\n companyId: string\n email: string\n persona: Persona\n country: string\n features: UserFeatureFlag[]\n}\n\nexport type AdminQueryParams = PaginationParams & {\n email: string\n fullname: string\n}\n\nexport type Admin = {\n id: number\n fullname: string\n email: string\n createdAt: DateTime\n updatedAt: DateTime\n lastSignInAt: DateTime\n signInCount: number\n lastSignInIp: string\n apiId: string\n apiKey: string\n}\n\nexport type ImpersonateUserResponse = {\n id: string\n firstname: string\n lastname: string\n telephone: string\n email: string\n is_admin: boolean\n persona: Persona\n country: string\n companyId: number\n companyExid: string\n companyName: string\n evercamAccount: boolean\n createdAt: DateTime\n updatedAt: DateTime\n confirmedAt: DateTime\n last_loginAt: DateTime\n features: UserFeatureFlag[]\n token: string\n}\n\nexport type AdminUserQueryParams = PaginationParams & {\n fullname: string\n email: string\n telephone: string\n persona: Persona\n companyName: string\n camerasCount: string\n projectsCount: string\n snapmailCount: string\n camerasOwned: string\n cameraShares: string\n createdAtDate: string\n lastLoginAtDate: string\n integrations: \"procore\" | \"aconex\" | \"autodesk\"\n features: UserFeatureFlag.ProjectSharing | UserFeatureFlag.VideoWalls\n}\n\nexport type SuppressionsQueryParams = PaginationParams & {\n id: number\n email: string\n source: string\n}\n\nexport type Suppression = {\n id: number\n email: string\n source: string\n insertedAt: DateTime\n updatedAt: DateTime\n}\n","import { Camera, Media } from \"@/types\"\n\nexport enum VideoWallItemType {\n LiveView = \"live\",\n Video = \"video\",\n Image = \"image\",\n}\n\nexport type VideoWallItem<T extends Camera | Media> = {\n value: T\n type: VideoWallItemType\n}\n\nexport type VideoWallPresetItemConfig = {\n camera: Camera\n h: number\n i: string | number\n moved: boolean\n w: number\n x: number\n y: number\n}\n\nexport type VideoWallPreset = {\n name?: string\n configuration: Array<VideoWallPresetItemConfig>\n}\n\nexport type VideoWallPresetItem = {\n i: string | number\n x: number\n y: number\n w: number\n h: number\n camera: Camera\n weather?: Record<string, unknown>\n media?: Media\n}\n","import { Date_YYYY_MM_DD, DateType } from \"@/types/time\"\n\nexport type HistoryWeatherRequestPayload = {\n day: string\n}\n\nexport type WeatherResponsePayload = Array<{\n hour?: number\n temp?: number\n clouds?: number\n feelsLike?: number\n pressure?: number\n humidity?: number\n windSpeed?: number\n windDegree?: number\n weather?: [WeatherSummary]\n rain?: HourlyReading\n snow?: HourlyReading\n}>\n\nexport type WeatherSummary = {\n id?: number\n main?: string\n description?: string\n icon?: string\n}\n\nexport type HourlyReading = {\n \"1h\"?: number\n \"3h\"?: number\n}\n\nexport enum WeatherProvider {\n WeatherStack = \"WeatherStack\",\n AerisWeather = \"AerisWeather\",\n}\n\nexport type Weatherstatus = {\n description: string\n hour: DateType\n id: number\n temp: number\n}\n\nexport type WeatherDataResponse = {\n minFeelsLike: number\n id: number\n sunhour: number\n maxFeelsLike: number\n minWindchill: number\n minPressure: number\n minWindDegree: number\n minDewpoint: number\n maxClouds: number\n maxWindgust: number\n minWindSpeed: number\n astro: {\n moonIllumination: number\n moonPhase: string\n moonrise: string\n moonset: string\n sunrise: string\n sunset: string\n }\n insertedAt: string\n maxDewpoint: number\n maxTemp: number\n minClouds: number\n weather: Weatherstatus[]\n minHeatindex: number\n minPrecip: number\n maxWindDegree: number\n maxUvIndex: number\n minHumidity: number\n maxWindSpeed: number\n minWindgust: number\n updatedAt: DateType\n maxPrecip: number\n uvIndex: number\n maxHeatindex: number\n minTemp: number\n date: Date_YYYY_MM_DD\n totalsnow: number\n maxPressure: number\n maxWindchill: number\n maxHumidity: number\n avgtemp: number\n projectId: number\n minUvIndex: number\n}\n","import { DateType } from \"@/types\"\n\ntype sortby = string\ntype sortDirection = \"asc\" | \"desc\"\n\nexport type SortingUrlParam = `${sortby}|${sortDirection}`\n\nexport type BatteryReading = {\n id: number\n voltage: number\n datetime: DateType\n serialNo: string\n iValue: number\n vpvValue: number\n ppvValue: number\n csValue: number\n errValue: number\n h19Value: number\n h20Value: number\n h21Value: number\n h22Value: number\n h23Value: number\n ilValue: number\n mpptValue: number\n loadValue: number\n pValue: number\n consumedAmphours: number\n socValue: number\n timeToGo: number\n alarm: string\n relay: string\n arValue: number\n bmvValue: number\n h1Value: number\n h2Value: number\n h3Value: number\n h4Value: number\n h5Value: number\n h6Value: number\n h7Value: number\n h8Value: number\n h9Value: number\n h10Value: number\n h11Value: number\n}\n\nexport interface PaginatedItems<T> {\n from: number\n items: Array<T>\n limit: number\n page: number\n to: number\n total: number\n}\n\nexport enum UnitSystem {\n Imperial = \"imperial\",\n Metric = \"metric\",\n}\n\nexport type Timestamp = string | number\n\nexport type Schedule = {\n Friday: string[]\n Monday: string[]\n Saturday: string[]\n Sunday: string[]\n Thursday: string[]\n Tuesday: string[]\n Wednesday: string[]\n}\n\nexport type ScheduleLowercase = {\n friday: string[]\n monday: string[]\n saturday: string[]\n sunday: string[]\n thursday: string[]\n tuesday: string[]\n wednesday: string[]\n}\n\nexport type PaginationParams = {\n sort?: SortingUrlParam\n page?: number\n limit?: number\n}\n\nexport type LabsPaginationParams = {\n sortBy?: string\n sortDirection?: \"asc\" | \"desc\"\n page?: number\n limit?: number\n}\n\nexport enum MobileDevice {\n Ios = \"ios\",\n Android = \"android\",\n}\n\nexport enum _3dViewer {\n Itwin = \"itwin\",\n Cesium = \"cesium\",\n}\n\nexport enum SsoProvider {\n Microsoft = \"microsoft\",\n Google = \"google\",\n Evercam = \"evercam\",\n}\n\nexport enum InfoPage {\n ThreeSixtyView = \"360\",\n BIMView = \"bim\",\n BimCompare = \"bim-compare\",\n GateReport = \"gate-report\",\n DroneView = \"drone-view\",\n Compare = \"compare\",\n Timeline = \"timeline\",\n WeatherReport = \"weather-report\",\n EvercamGo = \"evercam-go\",\n}\n\nexport enum EvercamGoFeatures {\n XRay = \"xray\",\n MagicWand = \"magic-wand\",\n Weather = \"weather\",\n DownloadSnapshot = \"download-snapshot\",\n LocalRecordings = \"local-recordings\",\n MarkupTool = \"markup-tool\",\n}\n\nexport enum DownloadTypes {\n Jpeg = \"jpeg\",\n Pdf = \"pdf\",\n Csv = \"csv\",\n}\n\nexport enum FeedbackContext {\n CopilotMessage = \"copilot_message\",\n}\n\nexport type FeedbackPayload<T> = {\n id?: number\n user: string\n text: string\n type: T\n context: FeedbackContext\n messageId?: number\n conversationId?: number\n}\n\nexport type Stringified<T> = string & {\n [P in keyof T]: { \"_ value\": T[P] }\n}\n\nexport interface JSON {\n stringify<T>(\n value: T,\n replacer?: (key: string, value: unknown) => unknown,\n space?: string | number\n ): string & Stringified<T>\n\n parse<T>(\n text: Stringified<T>,\n reviver?: (key: unknown, value: unknown) => unknown\n ): T\n}\n\nexport type Exid = string\n\nexport type EntityByExid<Entity extends unknown> = Record<Exid, Entity>\n\nexport type BatteryVoltage = {\n date: DateType\n max_value: number\n min_value: number\n}\n\nexport type GlobalSearchQueryParams = PaginationParams & {\n resource: \"projects\" | \"users\" | \"cameras\" | \"companies\" | \"sims\" | \"routers\"\n term: string\n email: string\n featureFlag: string\n}\n\nexport type TimelineDateInterval = {\n fromDate: string\n toDate: string\n}\n\nexport enum TimelinePrecision {\n Year = \"year\",\n Month = \"month\",\n Week = \"week\",\n Day = \"day\",\n Hour = \"hour\",\n Minute = \"minute\",\n Events = \"events\",\n}\n\nexport type EntityStatsQueryParams = {\n period: \"day\" | \"week\" | \"month\"\n startDate: string\n endDate: string\n}\n\nexport type EntityStat = {\n period: string\n name: string\n count: number\n}\n\nexport enum TaskStatus {\n Idle = \"idle\",\n Loading = \"loading\",\n Success = \"success\",\n Error = \"error\",\n}\n\nexport type PatchPayload<T> = Partial<T> & { [K in keyof T]?: T[K] | undefined }\n\nexport enum PtzDirection {\n Up = \"up\",\n Down = \"down\",\n Left = \"left\",\n Right = \"right\",\n}\n\nexport type MoveParams = {\n cameraExid: string\n direction: PtzDirection\n useContinuous: boolean\n}\n\nexport enum ZoomDirection {\n In = \"in\",\n Out = \"out\",\n}\n\nexport type ZoomParams = {\n cameraExid: string\n direction: ZoomDirection\n isRecordingFromNvr: boolean\n}\n","import {\n CountryCode,\n CountryId,\n DateType,\n Nvr,\n PaginationParams,\n PowerType,\n Project,\n Region,\n Router,\n Schedule,\n} from \"@/types\"\n\nexport type Kit = {\n alarms: KitAlarm[]\n countryCode: CountryCode\n countryId: CountryId\n countryName: string\n countryRegion: Region\n id?: number\n jobId: number\n name: string\n nvr: Nvr\n powerType: PowerType\n project: Project\n projectId: number\n router: Partial<Router>\n serial: string\n status: KitStatus\n powerSchedule: Schedule\n}\n\nexport enum KitStatus {\n New = \"new\",\n Active = \"active\",\n Deployed = \"deployed\",\n Decommissioned = \"decommissioned\",\n}\n\nexport enum KitAlarm {\n NvrOffline = \"nvr_offline\",\n UnknownCamera = \"unknown_camera\",\n NotRecordingCamera = \"not_recording_camera\",\n OfflineScheduled = \"offline_scheduled\",\n FullSD = \"full_sd\",\n FullStorage = \"full_storage\",\n}\n\nexport enum KitMetricId {\n BatteryStats = \"battery\",\n PanelPowerStats = \"panel_power\",\n}\n\nexport enum KitMetricPeriod {\n Last15Minutes = \"now-15m\",\n Last1Hour = \"now-1h\",\n Last24Hours = \"now-24h\",\n Last7Days = \"now-7d\",\n Last30Days = \"now-30d\",\n Last90Days = \"now-90d\",\n}\n\nexport enum GrafanaMetricId {\n SbcCpuLoad = \"SbcCpuLoad\",\n SbcSystemLoad5MnAvg = \"SbcSystemLoad5MnAvg\",\n SbcSystemLoad15MnAvg = \"SbcSystemLoad15MnAvg\",\n SbcRamUsed = \"SbcRamUsed\",\n SbcSwapUsed = \"SbcSwapUsed\",\n SbcRootFsUsed = \"SbcRootFsUsed\",\n SbcCpuCoresTotal = \"SbcCpuCoresTotal\",\n SbcRamTotal = \"SbcRamTotal\",\n SbcSwapTotal = \"SbcSwapTotal\",\n SbcRootFsTotal = \"SbcRootFsTotal\",\n SbcUptime = \"SbcUptime\",\n SbcCpuStats = \"SbcCpuStats\",\n SbcRamStats = \"SbcRamStats\",\n SbcNetworkStats = \"SbcNetworkStats\",\n SbcTimeSyncStats = \"SbcTimeSyncStats\",\n SbcTemperatureStats = \"SbcTemperatureStats\",\n SbcTimeSyncDriftStats = \"SbcTimeSyncDriftStats\",\n CameraInfo = \"CameraInfo\",\n CameraRecordingStateTimeline = \"CameraRecordingStateTimeline\",\n CameraStreamInfo = \"CameraStreamInfo\",\n LocalStorage = \"LocalStorage\",\n StorageSpaceUsed = \"StorageSpaceUsed\",\n RouterTemperature = \"RouterTemperature\",\n RouterCpuLoad = \"RouterCpuLoad\",\n RouterRamUsed = \"RouterRamUsed\",\n RouterSystemLoad5MnAvg = \"RouterSystemLoad5MnAvg\",\n RouterSwapTotal = \"RouterSwapTotal\",\n RouterRamTotal = \"RouterRamTotal\",\n RouterUptime = \"RouterUptime\",\n RouterCpuCoresTotal = \"RouterCpuCoresTotal\",\n RouterSignalReliability = \"RouterSignalReliability\",\n RouterSINR = \"RouterSINR\",\n RouterRSRP = \"RouterRSRP\",\n RouterRSRQ = \"RouterRSRQ\",\n RouterRSSI = \"RouterRSSI\",\n RouterSignalStrengthStats = \"RouterSignalStrengthStats\",\n RouterSignalQualityStats = \"RouterSignalQualityStats\",\n RouterDataConsumptionStats = \"RouterDataConsumptionStats\",\n BatteryVoltageAndCurrentStats = \"BatteryVoltageAndCurrentStats\",\n PanelVoltageAndPowerStats = \"PanelVoltageAndPowerStats\",\n ExNvrStatus = \"ExNvrStatus\",\n ExNvrVersion = \"ExNvrVersion\",\n ExNvrMemoryUsage = \"ExNvrMemoryUsage\",\n ExNvrLogs = \"ExNvrLogs\",\n}\n\nexport enum KitChartType {\n Stat = \"stat\",\n Gauge = \"gauge\",\n Graph = \"graph\",\n Table = \"table\",\n StateTimeline = \"state-timeline\",\n Logs = \"logs\",\n TimeSeries = \"timeseries\",\n BarChart = \"barchart\",\n}\n\nexport type GrafanaDataSource = {\n type: string\n uid: string\n}\n\nexport type GrafanaTarget = {\n expr: string\n refId: string\n datasourceId?: string\n intervalMs?: number\n maxDataPoints?: number\n}\n\nexport type GrafanaPanel = {\n [key: string]: unknown\n id: GrafanaMetricId\n name: keyof GrafanaMetricId\n title: string\n description: string\n type: KitChartType\n datasource: GrafanaDataSource\n targets: GrafanaTarget[]\n maxDataPoints?: number\n interval?: string\n timeFrom?: string\n timeShift?: string\n options?: {\n maxDataPoints?: number\n interval?: string\n }\n}\n\nexport type GrafanaDashboard = {\n [key: string]: unknown\n panels: GrafanaPanel[]\n time?: {\n from: string\n to: string\n }\n timepicker?: {\n refresh_intervals: string[]\n time_options: string[]\n }\n}\n\nexport type GrafanaQueryOptions = {\n metricId: GrafanaMetricId\n host: string\n job?: string\n from?: string\n to?: string\n variables?: Record<string, string>\n}\n\nexport type GrafanaTimeSeriesValue = number | string | null\nexport type GrafanaTimeSeriesValues = GrafanaTimeSeriesValue[][]\n\nexport type GrafanaFieldConfig = {\n displayNameFromDS?: string\n links?: string[]\n color?: string\n custom?: {\n lineInterpolation?: string\n fillOpacity?: number\n gradientMode?: string\n lineWidth?: number\n spanNulls?: boolean\n resultType?: string\n }\n thresholds?: {\n mode: string\n steps: Array<{\n color: string\n value: number | null\n }>\n }\n unit?: string\n decimals?: number\n interval?: number\n}\n\nexport type GrafanaField = {\n name: string\n type: string\n typeInfo: {\n frame: string\n nullable?: boolean\n }\n config: GrafanaFieldConfig\n labels?: {\n [key: string]: string\n }\n values?: GrafanaTimeSeriesValues\n}\n\nexport type GrafanaSchemaMeta = {\n type?: string\n typeVersion?: number[]\n custom?: {\n resultType?: string\n frameType?: string\n }\n stats?: Array<{\n displayName: string\n value: number\n unit?: string\n }>\n executedQueryString?: string\n}\n\nexport type GrafanaSchema = {\n name?: string\n refId: string\n meta: GrafanaSchemaMeta\n fields: GrafanaField[]\n}\n\nexport type GrafanaFrame = {\n schema: GrafanaSchema\n data: {\n values: GrafanaTimeSeriesValues\n nanos?: Array<number[] | null>\n }\n}\n\nexport type KitMetricData = {\n type: KitChartType\n chartProps?: Record<string, unknown>\n}\n\nexport type GrafanaQueryResult = {\n status: number\n frames: GrafanaFrame[]\n}\n\nexport type GrafanaMetricData = KitMetricData & {\n results: {\n [key: string]: GrafanaQueryResult\n }\n}\n\nexport type EvercamMetricData = KitMetricData & {\n stats: EvercamStats[]\n}\n\nexport type GrafanaKitMetrics = Record<\n keyof typeof GrafanaMetricId,\n GrafanaMetricData\n>\n\nexport type EvercamStats = {\n [k: string]: number | string\n timestamp: string\n}\n\nexport type KitQueryParams = PaginationParams & {\n name: string\n serial: string\n status: KitStatus\n}\n\nexport type AdminKit = {\n id: number\n name: string\n serial: string\n status: string\n powerType: PowerType\n location: string\n countryId: number\n countryName: string\n countryRegion: string\n nvr: Nvr\n router: {\n id: number\n serialNumber: number\n vpnUserId: string\n vpnPassword: string\n routerType: string\n routerUserId: string\n routerPassword: string\n routerHttpPort: number\n powerType: PowerType\n powerSchedule: Schedule\n vpnServer: string\n netbirdUrl: string\n sims: {\n id: number\n number: string\n }[]\n }\n project: {\n id: number\n exid: string\n name: string\n timezone: string\n status: string\n zohoId: string\n insertedAt: DateType\n }\n}\n\nexport type KitCreatePayload = {\n projectId?: number\n countryCode?: string\n name: string\n status: KitStatus\n powerType: PowerType\n config: {\n region: Region\n }\n}\n\nexport type KitUpdatePayload = {\n countryId: number\n name: string\n kitSerial: string\n kitStatus: KitStatus\n type: string\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\nimport { CameraStatus, DateType, PaginationParams } from \"@/types\"\n\nexport enum AuditLogActionType {\n VH_STATUS = \"vh_status\",\n CR_UPDATED = \"cr_updated\",\n CR_CREATED = \"cr_created\",\n ONLINE = \"online\",\n OFFLINE = \"offline\",\n ON_HOLD = \"on_hold\",\n WAITING = \"waiting\",\n DECOMMISSIONED = \"decommissioned\",\n UNDER_MAINTENANCE = \"under_maintenance\",\n WAITING_FOR_SITE_VISIT = \"waiting_for_site_visit\",\n SMS = \"sms\",\n CUSTOM = \"custom\",\n PUBLIC_NOTE = \"public_note\",\n SIM = \"sim\",\n LOGIN = \"login\",\n LOGOUT = \"logout\",\n CREATE = \"create\",\n UPDATE = \"update\",\n DELETE = \"delete\",\n DEVICE_SETTINGS = \"device_settings\",\n LINK_SIM_WITH_ROUTER = \"link_sim_with_router\",\n UNLINK_SIM_FROM_ROUTER = \"unlink_sim_from_router\",\n LINK_CAMERA_WITH_ROUTER = \"link_camera_with_router\",\n UNLINK_CAMERA_FROM_ROUTER = \"unlink_camera_from_router\",\n SHARE = \"share\",\n UPDATE_SHARE = \"update_share\",\n DELETE_SHARE = \"delete_share\",\n SHARE_REQUEST = \"share_request\",\n DELETE_SHARE_REQUEST = \"delete_share_request\",\n TRANSFER_OWNERSHIP = \"transfer_ownership\",\n BIM_NOTE = \"bim_note\",\n GATE_REPORT_NOTE = \"gate_report_note\",\n}\n\nexport type AuditLog = {\n id: number\n action: AuditLogActionType\n details: Record<string, any>\n insertedAt: DateType\n entity: string\n user_details: {\n browser: string\n country: string\n countryCode: string\n device: string | null\n ip: string\n os: string | null\n }\n who: string\n}\n\nexport type AuditLogsParams = PaginationParams & {\n routerId: number\n cameraId: number\n entity: string\n byRouter: boolean\n byCamera: boolean\n byProject: boolean\n action: string\n}\n\nexport type CameraLogsQueryParams = {\n historyDays: number\n accountId?: string\n status: CameraStatus[]\n}\n\nexport type CameraLogItem = {\n start: DateType\n state: CameraStatus\n end: DateType\n}\n\nexport type CameraLog = {\n data: CameraLogItem[]\n measure: string\n}\n\nexport type CameraAuditLog = {\n id: number\n action: AuditLogActionType\n details: {\n error_body?: string\n exid: string\n id: number\n name: string\n reason?: string\n }\n insertedAt: DateType\n entity: string\n user_details: {\n ip: string\n country: string\n countryCode: string\n agent: string\n }\n who: string\n}\n\nexport type CameraAuditLogsQueryParams = PaginationParams & {\n from: string\n to: string\n action: AuditLogActionType[]\n}\n","import { CameraExid, DateType, PaginationParams, Schedule } from \"@/types\"\n\nexport type SnapshotExtractionQyeryParams = PaginationParams & {\n camera: string // search by camera name\n cameraExid: CameraExid\n status: SnapshotExtractionStatus\n}\n\nexport enum SnapshotExtractionStatus {\n Completed = \"completed\",\n Failed = \"failed\",\n Processing = \"processing\",\n}\n\nexport enum SnapshotExtractionType {\n Cloud = \"cloud\",\n Local = \"local\",\n Timelapse = \"timelapse\",\n}\n\nexport type SnapshotExtraction = {\n id: number\n cameraId: number\n cameraExid: CameraExid\n cameraName: string\n fromDate: DateType\n toDate: DateType\n type: SnapshotExtractionType\n notes: string\n status: SnapshotExtractionStatus\n interval: number\n requestor: string\n jpegsToDropbox: boolean\n injectTo_cr: Boolean\n schedule: Schedule\n created_at: DateType\n}\n\nexport type SnapshotTestPayload = {\n cameraExid?: CameraExid\n camUsername: string\n camPassword: string\n externalUrl: string\n jpgUrl: string\n}\n\nexport type SnapshotTestResponse = {\n status: string\n data: string\n}\n\nexport type DeleteSnapshotQueryParams = {\n fromDate: DateType\n toDate: DateType\n adminEmail: string\n adminFullname: string\n}\n","import type { BBox, BoundingBox, DetectionLabel } from \"@evercam/api/types\"\n\nexport enum SiteAnalyticsMode {\n Cranes = \"cranes\",\n Detections = \"detections\",\n Segments = \"segments\",\n}\n\nexport type SmartSearchOptionData = {\n id?: string\n type: SmartSearchQueryComponentType\n value: DetectionLabel | SmartSearchOperatorType | SmartSearchConditionData\n}\n\nexport type SmartSearchQueryPart =\n | SmartSearchOptionData\n | SmartSearchQueryPart[]\n\nexport enum SmartSearchQueryComponentType {\n Condition = \"condition\",\n Object = \"object\",\n Area = \"in_area\",\n Time = \"time\",\n Operator = \"operator\",\n}\n\nexport type SmartSearchQueryComponentData = {\n id: string\n type: SmartSearchQueryComponentType\n parts: SmartSearchQueryPart[]\n}\n\nexport enum SmartSearchCondition {\n InArea = \"in_area\",\n Intersects = \"intersects\",\n Time = \"time\",\n}\n\nexport type SmartSearchConditionData = {\n condition: SmartSearchCondition\n value: string | BoundingBox | DetectionLabel | Date\n}\n\nexport type SmartSearchQuery = {\n returnTargets: SmartSearchQueryTargets[]\n rulesLogic: SmartSearchOperatorType\n rules: {\n logic: SmartSearchOperatorType\n conditions: {\n type: SmartSearchQueryConditionTypes\n target: SmartSearchQueryTargets\n operator?: SmartSearchQueryOperators\n attribute?: string\n value: string | number | string[]\n reference?: {\n target: SmartSearchQueryTargets\n attribute: string\n value: string | number | string[]\n }\n polygon?: BBox\n }[]\n }[]\n returnType: SmartSearchQueryReturnType\n}\n\nexport enum SmartSearchQueryTargets {\n Tracking = \"tracking\",\n Segments = \"segments\",\n}\n\nexport enum SmartSearchQueryReturnType {\n All = \"all\",\n FirstLastSeen = \"first_last_seen\",\n}\n\nexport enum SmartSearchOperatorType {\n And = \"AND\",\n Or = \"OR\",\n}\n\nexport enum SmartSearchQueryOperators {\n Near = \"near\",\n Far = \"far\",\n Intersects = \"intersects\",\n DoesNotIntersect = \"does_not_intersect\",\n Inside = \"inside\",\n Outside = \"outside\",\n DistanceBelow = \"distance_below\",\n DistanceAbove = \"distance_above\",\n Area = \"in_area\",\n}\n\nexport enum SmartSearchQueryConditionTypes {\n Selection = \"selection\",\n Spatial = \"spatial\",\n Area = \"area\",\n Iou = \"iou\",\n Near = \"near\",\n Far = \"far\",\n}\n","import type { DateTime } from \"@evercam/api/types/time\"\nimport { PaginationParams } from \"@/types\"\nimport { VideoWallPresetItemConfig } from \"@evercam/api/types/videoWall\"\n\nexport enum DelayUnit {\n Minute = \"minute\",\n Hour = \"hour\",\n Day = \"day\",\n}\n\nexport enum CommonWidgetSettingsKeys {\n Width = \"width\",\n WidthResolution = \"resolution\",\n Height = \"height\",\n HeightResolution = \"heightResolution\",\n}\n\nexport enum RecordingsWidgetSettingsKeys {\n DarkMode = \"darkMode\",\n Calendar = \"calendar\",\n HasDelay = \"hasDelay\",\n Delay = \"delay\",\n DelayUnit = \"delayUnit\",\n HasRange = \"hasRange\",\n DateRange = \"dateRange\",\n Width = CommonWidgetSettingsKeys.Width,\n WidthResolution = CommonWidgetSettingsKeys.WidthResolution,\n Height = CommonWidgetSettingsKeys.Height,\n HeightResolution = CommonWidgetSettingsKeys.HeightResolution,\n}\n\nexport enum LiveViewWidgetSettingsKeys {\n Fullscreen = \"fullscreen\",\n Download = \"download\",\n Zoom = \"zoom\",\n Playpause = \"playpause\",\n Refresh = \"refresh\",\n Width = CommonWidgetSettingsKeys.Width,\n WidthResolution = CommonWidgetSettingsKeys.WidthResolution,\n Height = CommonWidgetSettingsKeys.Height,\n HeightResolution = CommonWidgetSettingsKeys.HeightResolution,\n}\n\nexport enum BimCompareWidgetSettingsKeys {\n Timeline = \"timeline\",\n Calendar = \"calendar\",\n DarkMode = \"darkMode\",\n Width = CommonWidgetSettingsKeys.Width,\n WidthResolution = CommonWidgetSettingsKeys.WidthResolution,\n Height = CommonWidgetSettingsKeys.Height,\n HeightResolution = CommonWidgetSettingsKeys.HeightResolution,\n}\n\nexport enum VideoWallWidgetSettingsKeys {\n Preset = \"preset\",\n RefreshRate = \"refreshRate\",\n Width = CommonWidgetSettingsKeys.Width,\n WidthResolution = CommonWidgetSettingsKeys.WidthResolution,\n Height = CommonWidgetSettingsKeys.Height,\n HeightResolution = CommonWidgetSettingsKeys.HeightResolution,\n}\n\nexport type CommonWidgetSettings = {\n width: number\n resolution: string\n height: number\n heightResolution: string\n}\n\nexport type RecordingsWidgetSettings = CommonWidgetSettings & {\n darkMode: boolean\n calendar: boolean\n hasDelay: boolean\n delay: number\n delayUnit: DelayUnit\n}\n\nexport type LiveViewWidgetSettings = CommonWidgetSettings & {\n fullscreen: boolean\n download: boolean\n zoom: boolean\n playpause: boolean\n refresh: number\n}\n\nexport type BimCompareWidgetSettings = CommonWidgetSettings & {\n timeline: boolean\n darkMode: boolean\n}\n\nexport type VideoWallWidgetSettings = CommonWidgetSettings & {\n preset: VideoWallPresetItemConfig\n refreshRate: number\n}\n\nexport type WidgetSettings =\n | RecordingsWidgetSettings\n | LiveViewWidgetSettings\n | BimCompareWidgetSettings\n | VideoWallWidgetSettings\n\nexport enum WidgetType {\n LiveWidget = \"Live View\",\n Recording = \"Recordings\",\n BimCompare = \"BIM Compare\",\n VideoWall = \"Video Wall\",\n}\n\nexport const RessourceByType = {\n camera: [WidgetType.LiveWidget, WidgetType.Recording, WidgetType.BimCompare],\n project: [WidgetType.VideoWall],\n}\n\nexport type WidgetsListRequestPayload = PaginationParams & {\n userId: number\n projectId: number\n cameraId: number\n active: boolean\n settings: WidgetSettings\n widgetType: WidgetType\n isPublic: boolean\n allowedOrigin: string\n}\n\nexport type Widget = {\n id: number\n ressources: {\n camera?: {\n id: number\n exid: string\n name: string\n }\n project?: {\n id: number\n exid: string\n name: string\n }\n }\n widgetType: WidgetType\n settings: WidgetSettings\n allowedOrigin: string\n isPublic: boolean\n active: boolean\n user: {\n id: number\n email: string\n firstname: string\n lastname: string\n }\n insertedAt: DateTime\n updatedAt: DateTime\n}\n\nexport type WidgetFull = {\n id: number\n ressources: {\n camera?: {\n id: number\n exid: string\n name: string\n }\n project?: {\n id: number\n exid: string\n name: string\n }\n }\n widgetType: WidgetType\n widgetKey: string\n widgetId: string\n active: boolean\n user: {\n id: number\n email: string\n }\n settings: WidgetSettings\n sessionSettings: any\n allowedOrigin: string\n isPublic: boolean\n insertedAt: DateTime\n updatedAt: DateTime\n}\n\nexport type WidgetPayload = {\n ressources: {\n cameraId?: number\n projectId?: number\n }\n widgetType: WidgetType\n active: boolean\n settings: WidgetSettings\n isPublic: boolean\n allowedOrigin: string\n}\n","export enum CountryId {\n Andorra = 1,\n UnitedArabEmirates = 2,\n Afghanistan = 3,\n AntiguaAndBarbuda = 4,\n Anguilla = 5,\n Albania = 6,\n Armenia = 7,\n NetherlandsAntilles = 8,\n Angola = 9,\n Antarctica = 10,\n Argentina = 11,\n AmericanSamoa = 12,\n Austria = 13,\n Australia = 14,\n Aruba = 15,\n AlandIslands = 16,\n Azerbaijan = 17,\n BosniaAndHerzegovina = 18,\n Barbados = 19,\n Bangladesh = 20,\n Belgium = 21,\n BurkinaFaso = 22,\n Bulgaria = 23,\n Bahrain = 24,\n Burundi = 25,\n Benin = 26,\n Bermuda = 27,\n BruneiDarussalam = 28,\n Bolivia = 29,\n Brazil = 30,\n Bahamas = 31,\n Bhutan = 32,\n BouvetIsland = 33,\n Botswana = 34,\n Belarus = 35,\n Belize = 36,\n Canada = 37,\n CocosKeelingIslands = 38,\n CongoKinshasa = 39,\n CentralAfricanRepublic = 40,\n CongoBrazzaville = 41,\n Switzerland = 42,\n CoteDIvoire = 43,\n CookIslands = 44,\n Chile = 45,\n Cameroon = 46,\n China = 47,\n Colombia = 48,\n CostaRica = 49,\n Cuba = 50,\n CapeVerde = 51,\n ChristmasIsland = 52,\n Cyprus = 53,\n CzechRepublic = 54,\n Germany = 55,\n Djibouti = 56,\n Denmark = 57,\n Dominica = 58,\n DominicanRepublic = 59,\n Algeria = 60,\n Ecuador = 61,\n Estonia = 62,\n Egypt = 63,\n WesternSahara = 64,\n Eritrea = 65,\n Spain = 66,\n Ethiopia = 67,\n Finland = 68,\n Fiji = 69,\n FalklandIslands = 70,\n Micronesia = 71,\n FaroeIslands = 72,\n France = 73,\n Gabon = 74,\n UnitedKingdom = 75,\n Grenada = 76,\n Georgia = 77,\n FrenchGuiana = 78,\n Guernsey = 79,\n Ghana = 80,\n Gibraltar = 81,\n Greenland = 82,\n Gambia = 83,\n Guinea = 84,\n Guadeloupe = 85,\n EquatorialGuinea = 86,\n Greece = 87,\n SouthGeorgiaAndTheSouthSandwichIslands = 88,\n Guatemala = 89,\n Guam = 90,\n GuineaBissau = 91,\n Guyana = 92,\n HongKong = 93,\n HeardIslandAndMcDonaldIslands = 94,\n Honduras = 95,\n Croatia = 96,\n Haiti = 97,\n Hungary = 98,\n Indonesia = 99,\n Ireland = 100,\n Israel = 101,\n IsleOfMan = 102,\n India = 103,\n BritishIndianOceanTerritory = 104,\n Iraq = 105,\n Iran = 106,\n Iceland = 107,\n Italy = 108,\n Jersey = 109,\n Jamaica = 110,\n Jordan = 111,\n Japan = 112,\n Kenya = 113,\n Kyrgyzstan = 114,\n Cambodia = 115,\n Kiribati = 116,\n Comoros = 117,\n SaintKittsAndNevis = 118,\n NorthKorea = 119,\n SouthKorea = 120,\n Kuwait = 121,\n CaymanIslands = 122,\n Kazakhstan = 123,\n Laos = 124,\n Lebanon = 125,\n SaintLucia = 126,\n Liechtenstein = 127,\n SriLanka = 128,\n Liberia = 129,\n Lesotho = 130,\n Lithuania = 131,\n Luxembourg = 132,\n Latvia = 133,\n LibyanArabJamahiriya = 134,\n Morocco = 135,\n Monaco = 136,\n Moldova = 137,\n Montenegro = 138,\n Madagascar = 139,\n MarshallIslands = 140,\n Macedonia = 141,\n Mali = 142,\n Myanmar = 143,\n Mongolia = 144,\n Macao = 145,\n NorthernMarianaIslands = 146,\n Martinique = 147,\n Mauritania = 148,\n Montserrat = 149,\n Malta = 150,\n Mauritius = 151,\n Maldives = 152,\n Malawi = 153,\n Mexico = 154,\n Malaysia = 155,\n Mozambique = 156,\n Namibia = 157,\n NewCaledonia = 158,\n Niger = 159,\n NorfolkIsland = 160,\n Nigeria = 161,\n Nicaragua = 162,\n Netherlands = 163,\n Norway = 164,\n Nepal = 165,\n Nauru = 166,\n Niue = 167,\n NewZealand = 168,\n Oman = 169,\n Panama = 170,\n Peru = 171,\n FrenchPolynesia = 172,\n PapuaNewGuinea = 173,\n Philippines = 174,\n Pakistan = 175,\n Poland = 176,\n SaintPierreAndMiquelon = 177,\n Pitcairn = 178,\n PuertoRico = 179,\n PalestinianTerritory = 180,\n Portugal = 181,\n Palau = 182,\n Paraguay = 183,\n Qatar = 184,\n Reunion = 185,\n Romania = 186,\n Serbia = 187,\n RussianFederation = 188,\n Rwanda = 189,\n SaudiArabia = 190,\n SolomonIslands = 191,\n Seychelles = 192,\n Sudan = 193,\n Sweden = 194,\n Singapore = 195,\n SaintHelena = 196,\n Slovenia = 197,\n SvalbardAndJanMayen = 198,\n Slovakia = 199,\n SierraLeone = 200,\n SanMarino = 201,\n Senegal = 202,\n Somalia = 203,\n Suriname = 204,\n SaoTomeAndPrincipe = 205,\n ElSalvador = 206,\n SyrianArabRepublic = 207,\n Swaziland = 208,\n TurksAndCaicosIslands = 209,\n Chad = 210,\n FrenchSouthernTerritories = 211,\n Togo = 212,\n Thailand = 213,\n Tajikistan = 214,\n Tokelau = 215,\n TimorLeste = 216,\n Turkmenistan = 217,\n Tunisia = 218,\n Tonga = 219,\n Turkey = 220,\n TrinidadAndTobago = 221,\n Tuvalu = 222,\n Taiwan = 223,\n Tanzania = 224,\n Ukraine = 225,\n Uganda = 226,\n UnitedStatesMinorOutlyingIslands = 227,\n UnitedStates = 228,\n Uruguay = 229,\n Uzbekistan = 230,\n VaticanCityState = 231,\n SaintVincentAndTheGrenadines = 232,\n Venezuela = 233,\n VirginIslandsBritish = 234,\n VirginIslandsUS = 235,\n VietNam = 236,\n Vanuatu = 237,\n WallisAndFutuna = 238,\n Samoa = 239,\n Yemen = 240,\n Mayotte = 241,\n SouthAfrica = 242,\n Zambia = 243,\n Zimbabwe = 244,\n}\n\nexport enum CountryCode {\n Andorra = \"ad\",\n UnitedArabEmirates = \"ae\",\n Afghanistan = \"af\",\n AntiguaAndBarbuda = \"ag\",\n Anguilla = \"ai\",\n Albania = \"al\",\n Armenia = \"am\",\n NetherlandsAntilles = \"an\",\n Angola = \"ao\",\n Antarctica = \"aq\",\n Argentina = \"ar\",\n AmericanSamoa = \"as\",\n Austria = \"at\",\n Australia = \"au\",\n Aruba = \"aw\",\n AlandIslands = \"ax\",\n Azerbaijan = \"az\",\n BosniaAndHerzegovina = \"ba\",\n Barbados = \"bb\",\n Bangladesh = \"bd\",\n Belgium = \"be\",\n BurkinaFaso = \"bf\",\n Bulgaria = \"bg\",\n Bahrain = \"bh\",\n Burundi = \"bi\",\n Benin = \"bj\",\n Bermuda = \"bm\",\n BruneiDarussalam = \"bn\",\n Bolivia = \"bo\",\n Brazil = \"br\",\n Bahamas = \"bs\",\n Bhutan = \"bt\",\n BouvetIsland = \"bv\",\n Botswana = \"bw\",\n Belarus = \"by\",\n Belize = \"bz\",\n Canada = \"ca\",\n CocosKeelingIslands = \"cc\",\n CongoKinshasa = \"cd\",\n CentralAfricanRepublic = \"cf\",\n CongoBrazzaville = \"cg\",\n Switzerland = \"ch\",\n CoteDIvoire = \"ci\",\n CookIslands = \"ck\",\n Chile = \"cl\",\n Cameroon = \"cm\",\n China = \"cn\",\n Colombia = \"co\",\n CostaRica = \"cr\",\n Cuba = \"cu\",\n CapeVerde = \"cv\",\n ChristmasIsland = \"cx\",\n Cyprus = \"cy\",\n CzechRepublic = \"cz\",\n Germany = \"de\",\n Djibouti = \"dj\",\n Denmark = \"dk\",\n Dominica = \"dm\",\n DominicanRepublic = \"do\",\n Algeria = \"dz\",\n Ecuador = \"ec\",\n Estonia = \"ee\",\n Egypt = \"eg\",\n WesternSahara = \"eh\",\n Eritrea = \"er\",\n Spain = \"es\",\n Ethiopia = \"et\",\n Finland = \"fi\",\n Fiji = \"fj\",\n FalklandIslands = \"fk\",\n Micronesia = \"fm\",\n FaroeIslands = \"fo\",\n France = \"fr\",\n Gabon = \"ga\",\n UnitedKingdom = \"gb\",\n Grenada = \"gd\",\n Georgia = \"ge\",\n FrenchGuiana = \"gf\",\n Guernsey = \"gg\",\n Ghana = \"gh\",\n Gibraltar = \"gi\",\n Greenland = \"gl\",\n Gambia = \"gm\",\n Guinea = \"gn\",\n Guadeloupe = \"gp\",\n EquatorialGuinea = \"gq\",\n Greece = \"gr\",\n SouthGeorgiaAndTheSouthSandwichIslands = \"gs\",\n Guatemala = \"gt\",\n Guam = \"gu\",\n GuineaBissau = \"gw\",\n Guyana = \"gy\",\n HongKong = \"hk\",\n HeardIslandAndMcDonaldIslands = \"hm\",\n Honduras = \"hn\",\n Croatia = \"hr\",\n Haiti = \"ht\",\n Hungary = \"hu\",\n Indonesia = \"id\",\n Ireland = \"ie\",\n Israel = \"il\",\n IsleOfMan = \"im\",\n India = \"in\",\n BritishIndianOceanTerritory = \"io\",\n Iraq = \"iq\",\n Iran = \"ir\",\n Iceland = \"is\",\n Italy = \"it\",\n Jersey = \"je\",\n Jamaica = \"jm\",\n Jordan = \"jo\",\n Japan = \"jp\",\n Kenya = \"ke\",\n Kyrgyzstan = \"kg\",\n Cambodia = \"kh\",\n Kiribati = \"ki\",\n Comoros = \"km\",\n SaintKittsAndNevis = \"kn\",\n NorthKorea = \"kp\",\n SouthKorea = \"kr\",\n Kuwait = \"kw\",\n CaymanIslands = \"ky\",\n Kazakhstan = \"kz\",\n Laos = \"la\",\n Lebanon = \"lb\",\n SaintLucia = \"lc\",\n Liechtenstein = \"li\",\n SriLanka = \"lk\",\n Liberia = \"lr\",\n Lesotho = \"ls\",\n Lithuania = \"lt\",\n Luxembourg = \"lu\",\n Latvia = \"lv\",\n LibyanArabJamahiriya = \"ly\",\n Morocco = \"ma\",\n Monaco = \"mc\",\n Moldova = \"md\",\n Montenegro = \"me\",\n Madagascar = \"mg\",\n MarshallIslands = \"mh\",\n Macedonia = \"mk\",\n Mali = \"ml\",\n Myanmar = \"mm\",\n Mongolia = \"mn\",\n Macao = \"mo\",\n NorthernMarianaIslands = \"mp\",\n Martinique = \"mq\",\n Mauritania = \"mr\",\n Montserrat = \"ms\",\n Malta = \"mt\",\n Mauritius = \"mu\",\n Maldives = \"mv\",\n Malawi = \"mw\",\n Mexico = \"mx\",\n Malaysia = \"my\",\n Mozambique = \"mz\",\n Namibia = \"na\",\n NewCaledonia = \"nc\",\n Niger = \"ne\",\n NorfolkIsland = \"nf\",\n Nigeria = \"ng\",\n Nicaragua = \"ni\",\n Netherlands = \"nl\",\n Norway = \"no\",\n Nepal = \"np\",\n Nauru = \"nr\",\n Niue = \"nu\",\n NewZealand = \"nz\",\n Oman = \"om\",\n Panama = \"pa\",\n Peru = \"pe\",\n FrenchPolynesia = \"pf\",\n PapuaNewGuinea = \"pg\",\n Philippines = \"ph\",\n Pakistan = \"pk\",\n Poland = \"pl\",\n SaintPierreAndMiquelon = \"pm\",\n Pitcairn = \"pn\",\n PuertoRico = \"pr\",\n PalestinianTerritory = \"ps\",\n Portugal = \"pt\",\n Palau = \"pw\",\n Paraguay = \"py\",\n Qatar = \"qa\",\n Reunion = \"re\",\n Romania = \"ro\",\n Serbia = \"rs\",\n RussianFederation = \"ru\",\n Rwanda = \"rw\",\n SaudiArabia = \"sa\",\n SolomonIslands = \"sb\",\n Seychelles = \"sc\",\n Sudan = \"sd\",\n Sweden = \"se\",\n Singapore = \"sg\",\n SaintHelena = \"sh\",\n Slovenia = \"si\",\n SvalbardAndJanMayen = \"sj\",\n Slovakia = \"sk\",\n SierraLeone = \"sl\",\n SanMarino = \"sm\",\n Senegal = \"sn\",\n Somalia = \"so\",\n Suriname = \"sr\",\n SaoTomeAndPrincipe = \"st\",\n ElSalvador = \"sv\",\n SyrianArabRepublic = \"sy\",\n Swaziland = \"sz\",\n TurksAndCaicosIslands = \"tc\",\n Chad = \"td\",\n FrenchSouthernTerritories = \"tf\",\n Togo = \"tg\",\n Thailand = \"th\",\n Tajikistan = \"tj\",\n Tokelau = \"tk\",\n TimorLeste = \"tl\",\n Turkmenistan = \"tm\",\n Tunisia = \"tn\",\n Tonga = \"to\",\n Turkey = \"tr\",\n TrinidadAndTobago = \"tt\",\n Tuvalu = \"tv\",\n Taiwan = \"tw\",\n Tanzania = \"tz\",\n Ukraine = \"ua\",\n Uganda = \"ug\",\n UnitedStatesMinorOutlyingIslands = \"um\",\n UnitedStates = \"us\",\n Uruguay = \"uy\",\n Uzbekistan = \"uz\",\n VaticanCityState = \"va\",\n SaintVincentAndTheGrenadines = \"vc\",\n Venezuela = \"ve\",\n VirginIslandsBritish = \"vg\",\n VirginIslandsUS = \"vi\",\n VietNam = \"vn\",\n Vanuatu = \"vu\",\n WallisAndFutuna = \"wf\",\n Samoa = \"ws\",\n Yemen = \"ye\",\n Mayotte = \"yt\",\n SouthAfrica = \"za\",\n Zambia = \"zm\",\n Zimbabwe = \"zw\",\n}\n\nexport enum Region {\n Apac = \"apac\",\n Emea = \"emea\",\n Us = \"us\",\n Latam = \"latam\",\n Na = \"na\",\n}\n\nexport enum CameraRegion {\n APAC = \"apac\",\n AU = \"au\",\n EU = \"eu\",\n UK = \"uk\",\n IE = \"ie\",\n US = \"us\",\n}\n","import { Connector } from \"./connector\"\n\nexport enum AutomationProvider {\n Aconex = Connector.Aconex,\n Procore = Connector.Procore,\n Autodesk = Connector.Autodesk,\n Email = \"email\",\n}\n","import { ErrorType } from \"@evercam/api/types\"\n\nconst createErrorClass = (errorName: string) => {\n return class extends Error {\n constructor(error: unknown) {\n const e =\n error instanceof Error\n ? error\n : new Error(typeof error === \"string\" ? error : \"unknown\")\n super(e.message)\n this.name = errorName\n this.message = e.message\n this.stack = (e.stack || \"\").replace(/^Error: /, `${errorName}: `)\n }\n }\n}\n\nexport const BadRequestError = createErrorClass(ErrorType.BadRequestError)\nexport const NotFoundError = createErrorClass(ErrorType.NotFoundError)\nexport const UnauthorizedError = createErrorClass(ErrorType.UnauthorizedError)\nexport const GatewayTimeoutError = createErrorClass(\n ErrorType.GatewayTimeoutError\n)\nexport const BadGatewayError = createErrorClass(ErrorType.BadGatewayError)\nexport const ForbiddenError = createErrorClass(ErrorType.ForbiddenError)\nexport const HlsError = createErrorClass(ErrorType.HlsError)\nexport const SnapshotError = createErrorClass(ErrorType.SnapshotError)\nexport const ConflictError = createErrorClass(ErrorType.ConflictError)\nexport const InternalServerError = createErrorClass(\n ErrorType.InternalServerError\n)\n","import humps from \"humps\"\nimport Axios, {\n type AxiosError,\n type AxiosRequestConfig,\n type AxiosResponse,\n} from \"axios\"\nimport type { AxiosEnvironment } from \"../../types\"\nimport {\n NotFoundError,\n BadRequestError,\n UnauthorizedError,\n BadGatewayError,\n GatewayTimeoutError,\n ForbiddenError,\n InternalServerError,\n ConflictError,\n} from \"./customErrors\"\nimport axios from \"axios\"\n\nlet numberOfRequestsSentInThePastSecond = 0\nconst maxRequestsPerSecond = 10\nconst requestsRateLimit = async () => {\n while (numberOfRequestsSentInThePastSecond === maxRequestsPerSecond) {\n await new Promise((r) => setTimeout(r, 1000))\n }\n numberOfRequestsSentInThePastSecond++\n\n setTimeout(() => {\n numberOfRequestsSentInThePastSecond--\n }, 1000)\n}\n\nexport const onRequest = async (\n request: AxiosRequestConfig,\n axiosEnv: AxiosEnvironment\n) => {\n if (request?.raw) {\n return request\n }\n\n if (request?.timing) {\n request._metadata = { startTime: performance.now() }\n }\n await requestsRateLimit()\n ensureBaseUrl(request, axiosEnv)\n addAuthTokenHeader(request, axiosEnv)\n if (\n axiosEnv.app === \"dashboard\" &&\n typeof document.referrer === \"string\" &&\n document.referrer.length !== 0\n ) {\n // @ts-expect-error - common type string | number | undefined\n request.headers.common[\"iframe-origin\"] = new URL(document.referrer).origin\n }\n\n if (!request.preserveCasing) {\n transformCamelCaseToSnakeCase(request)\n }\n\n return request\n}\n\nexport const onResponse = (response: AxiosResponse) => {\n if (response?.config?.raw) {\n return response\n }\n\n if (!(\"data\" in response)) {\n return response\n } else if (response.data instanceof Blob) {\n return response.data\n }\n\n const data = response?.config?.preserveCasing\n ? response.data\n : humps.camelizeKeys(response.data)\n\n if (response?.config?.timing && response?.config?._metadata?.startTime) {\n const duration = performance.now() - response.config._metadata.startTime\n\n return {\n ...response,\n data: data,\n duration,\n }\n }\n\n return data\n}\n\nexport const onError = async (\n error: AxiosError,\n axiosEnv: AxiosEnvironment\n) => {\n if (error?.config?.timing && error?.config?._metadata?.startTime) {\n const duration = performance.now() - error.config._metadata.startTime\n\n return { error, duration }\n }\n const statusCode = error.response ? error.response.status : null\n const method = (error.config?.method || \"\").toUpperCase()\n const url = error.config?.url\n // @ts-expect-error - AxiosError has no response property\n const backendErrorCode = error?.response?.data?.code || \"\"\n\n let customError = {}\n let customMessage = error.message\n\n if (url && method && statusCode) {\n customMessage =\n `${method} ${url} (${statusCode}) ${backendErrorCode}`.trim()\n }\n switch (statusCode) {\n case 400:\n customError = new BadRequestError(new Error(customMessage))\n break\n case 401:\n customError = new UnauthorizedError(new Error(customMessage))\n break\n case 403:\n customError = new ForbiddenError(new Error(customMessage))\n break\n case 404:\n customError = new NotFoundError(new Error(customMessage))\n break\n case 409:\n customError = new ConflictError(new Error(customMessage))\n break\n case 500:\n customError = new InternalServerError(new Error(customMessage))\n break\n case 502:\n customError = new BadGatewayError(new Error(customMessage))\n break\n case 504:\n customError = new GatewayTimeoutError(new Error(customMessage))\n break\n case null: // null case\n case 0: // 0 case occurred when user has no internet connection\n customError = new Error(\n \"A network error occurred. This could be a CORS issue, a cancel request or a dropped internet connection.\"\n )\n break\n }\n const isCancelError = Axios.isCancel(error)\n\n if (isCancelError || statusCode === 404) {\n return Promise.reject(customError)\n }\n\n console.warn(\"[@evercam/api/axios.ts]: Caught error:\", error)\n\n const breadcrumbLogger = axiosEnv.errorLogger\n if (url && breadcrumbLogger) {\n breadcrumbLogger({\n // @ts-expect-error axios issue\n category: \"axios.info\",\n data: {\n url: `Error in URL: ${url}`,\n status: statusCode,\n },\n })\n }\n\n return Promise.reject(customError)\n}\n\nfunction addAuthTokenHeader(\n request: AxiosRequestConfig,\n axiosEnv: AxiosEnvironment\n) {\n // Add auth token header\n const JwtToken = axiosEnv?.getAuthToken!()\n if (JwtToken) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore (See https://github.com/axios/axios/issues/4193 )\n request.headers.common.Authorization = `Bearer ${JwtToken}`\n }\n}\n\nfunction ensureBaseUrl(\n request: AxiosRequestConfig,\n axiosEnv: AxiosEnvironment\n) {\n // Set baseURL if not already set\n if (!request.baseURL) {\n request.baseURL = axiosEnv?.baseUrl as string\n }\n}\n\nfunction transformCamelCaseToSnakeCase(\n request: AxiosRequestConfig<Record<string, any>>\n) {\n let paramsIgnoredCasing = {}\n let { data, params } = request\n\n if (\n data &&\n !(\n data instanceof Blob ||\n data instanceof FormData ||\n typeof data === \"string\"\n )\n ) {\n // Ignore casing transformation for some params when prompted using the `ignoreCasingFromParams` prop\n if (data?.ignoreCasingFromParams) {\n paramsIgnoredCasing =\n data.ignoreCasingFromParams.reduce(\n (acc: Record<string, any>, item: any) => ({\n ...acc,\n [item]: data![item],\n }),\n {}\n ) || {}\n delete data.ignoreCasingFromParams\n }\n if (Array.isArray(data)) {\n data = humps.decamelizeKeys(data)\n } else {\n data = { ...humps.decamelizeKeys(data), ...paramsIgnoredCasing }\n }\n }\n\n // Apply camelCase -> snake_cake on the request payload for FormData of instance of data\n if (data && data instanceof FormData) {\n let formData = new FormData()\n // @ts-ignore\n for (const [key, value] of data.entries()) {\n formData.append(humps.decamelize(key), value)\n }\n data = formData\n }\n\n // Apply camelCase -> snake_cake on the request query params\n if (params && !(params instanceof Blob)) {\n params = humps.decamelizeKeys(params)\n }\n\n request.data = data\n request.params = params\n}\n\nexport const OnRequestExpiredTokenInterceptor = async (\n request: AxiosRequestConfig,\n isTokenExpired: () => boolean,\n handler: () => Promise<void>\n) => {\n if (isTokenExpired()) {\n await handler()\n throw new axios.Cancel(\"Request canceled due to expired token\")\n }\n\n return request\n}\n","import Axios, { type CancelTokenSource } from \"axios\"\nimport type {\n ErrorInterceptor,\n ExtendedAxiosInstance,\n RequestInterceptor,\n ResponseInterceptor,\n} from \"@/types\"\nimport { onRequest, onResponse, onError } from \"./interceptors\"\n\nlet requestInterceptors: RequestInterceptor[] = []\nlet responseInterceptors: ResponseInterceptor[] = []\nlet errorInterceptors: ErrorInterceptor[] = []\n\ndeclare module \"axios\" {\n export interface AxiosRequestConfig {\n // Skip all request / response interceptors\n raw?: boolean\n\n // Skip the camelCase / snake_case transformations\n preserveCasing?: boolean\n\n // Measure the request duration (adds a field \"duration\" to the response)\n timing?: boolean\n\n // (readonly) Start time of the request (automatically set when timing == true)\n _metadata?: { startTime: number }\n }\n}\n\nconst axios = Axios.create({\n headers: {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore (See: https://github.com/axios/axios/issues/4193 )\n common: {\n Accept: \"application/json, text/plain, */*\",\n \"Content-Type\": \"application/json\",\n },\n },\n}) as ExtendedAxiosInstance\n\naxios.env = {}\n\naxios.addEnvironmentVariables = (vars: Record<string, any>) => {\n axios.env = { ...axios.env, ...vars }\n // log a warning if some values are null, undefined or no length only if localhost\n Object.entries(axios.env).forEach(([key, value]) => {\n if (\n (value === null ||\n value === undefined ||\n (typeof value === \"string\" && !value.length)) &&\n window.location.hostname.includes(\"localhost\")\n ) {\n console.warn(\n `AXIOS environment value for ${key} is ${value} - check your .env file.`\n )\n }\n })\n}\n\naxios.addRequestInterceptor = (\n requestInterceptor: RequestInterceptor,\n errorInterceptor?: ErrorInterceptor\n) => {\n requestInterceptors.push(requestInterceptor)\n if (errorInterceptor && !errorInterceptors.includes(errorInterceptor)) {\n errorInterceptors.push(errorInterceptor)\n }\n\n // Ensure we only set up the interceptors once to prevent duplicate calls\n // @ts-expect-error\n if (axios.interceptors.request.handlers.length === 0) {\n axios.interceptors.request.use(\n async (request) => {\n for (const interceptor of requestInterceptors) {\n request = await interceptor(request, axios.env)\n }\n\n return request\n },\n (error) => {\n for (const interceptor of errorInterceptors) {\n interceptor(error, axios.env)\n }\n }\n )\n }\n}\n\naxios.addResponseInterceptor = (\n responseInterceptor,\n errorInterceptor?: ErrorInterceptor\n) => {\n responseInterceptors.push(responseInterceptor)\n if (errorInterceptor && !errorInterceptors.includes(errorInterceptor)) {\n errorInterceptors.push(errorInterceptor)\n }\n\n // Ensure we only set up the interceptors once to prevent duplicate calls\n // @ts-expect-error\n if (axios.interceptors.response.handlers.length === 0) {\n axios.interceptors.response.use(\n async (response) => {\n for (const interceptor of responseInterceptors) {\n response = await interceptor(response, axios.env)\n }\n\n return response\n },\n (error) => {\n for (const interceptor of errorInterceptors) {\n interceptor(error, axios.env)\n }\n\n return Promise.reject(error)\n }\n )\n }\n}\n\n// Adds auth guards and applies cameraCase -> snake_case transforms on request payload & params\naxios.addRequestInterceptor(onRequest, onError)\n\n// Apply snake_case -> camelCase on incoming responses data\naxios.addResponseInterceptor(onResponse, onError)\n\nconst setHeader = (headerName: string, value: any) => {\n if (!value) {\n delete axios.defaults.headers.common[headerName]\n } else {\n axios.defaults.headers.common[headerName] = value\n }\n}\n\nconst setToken = (token: string) => {\n setHeader(\"Authorization\", token ? `Bearer ${token}` : null)\n}\n\naxios.CancelToken = Axios.CancelToken\naxios.isCancel = Axios.isCancel\naxios.setHeader = setHeader\naxios.setToken = setToken\n\nlet cancelTokens: CancelTokenSource[] = []\n\naxios.generateCancelTokenSource = () => axios.CancelToken.source()\naxios.addCancelToken = (token: CancelTokenSource) =>\n (cancelTokens = [token, ...cancelTokens])\naxios.resetCancelTokens = () => (cancelTokens = [])\naxios.cancelRequests = () => {\n if (cancelTokens.length) {\n cancelTokens.forEach((t) => {\n t.cancel(\"Operation canceled due to new request\")\n })\n axios.resetCancelTokens()\n }\n}\n\nexport { axios }\n","import {\n FootageCreateUpdatePayload,\n HDDCreateUpdatePayload,\n HDDsQueryParams,\n} from \"@/types/hdd\"\nimport { axios } from \"./client\"\nimport type {\n CamerasResponsePayload,\n CameraUpdateRequestPayload,\n PaginatedItems,\n AdminCamera,\n Project,\n Hdd,\n AdminUser,\n ProgressPhotosCreateUpdateRequestPayload,\n ProgressPhoto,\n Kit,\n PatchPayload,\n StorageServersResponsePayload,\n MediaFilterQueryParams,\n Media,\n MediaDeleteRequestPayload,\n AuditLogsParams,\n AuditLog,\n SnapshotExtractionQyeryParams,\n SnapshotExtraction,\n CameraCreateRequestPayload,\n CameraDeletePayload,\n SnapshotTestPayload,\n SnapshotTestResponse,\n DuplicatedCameraFields,\n DuplicatedCameraResponse,\n MergeDuplicatedCameraPayload,\n FetchCameraQueryParams,\n DeleteSnapshotQueryParams,\n SaveNotePayload,\n CameraNote,\n CreateCameraNotePayload,\n CompanyQueryParams,\n Company,\n CompanyUpdatePayload,\n SuppressionsQueryParams,\n Suppression,\n SnapshotExtractionType,\n PaginationParams,\n GateReportProject,\n KitQueryParams,\n KitCreatePayload,\n AdminKit,\n CameraLogsQueryParams,\n CameraLog,\n CameraAuditLogsQueryParams,\n CameraAuditLog,\n NvrQueryParams,\n Nvr,\n SiteVisitCamerasQueryParams,\n OfflineCameraQueryParams,\n OfflineCamera,\n OfflineCameraNoteResponse,\n UserStatsResponse,\n EntityStatsQueryParams,\n EntityStat,\n UserSession,\n UserCameraResponse,\n UserProjectResponse,\n ProjectUsers,\n ProjectCamera,\n ProjectsQueryParams,\n ProjectStatusStats,\n ProjectCreateRequestPayload,\n ProjectCreateResponse,\n ProjectUpdateRequestPayload,\n RouterQueryParams,\n Router,\n RouterCreatePayload,\n GlobalSearchQueryParams,\n CameraShareRequestsQueryParams,\n CameraShareRequest,\n CameraShareRequestPayload,\n ShareCreateResponsePayload,\n ShareQueryParams,\n AdminShare,\n SimCreateUpdatePayload,\n SimsQueryParams,\n Sim,\n SendSmsPayload,\n SendSmsResponse,\n SmsHistoryResponse,\n SmsQueryParams,\n Sms,\n ProgressPhotosQueryParams,\n ProgressPhotoItem,\n progressPhotosHistoryQueryParams,\n ProgressPhotosHistory,\n AdminUserUpdateRequestPayload,\n AdminQueryParams,\n Admin,\n ImpersonateUserResponse,\n AdminUserQueryParams,\n AdminCompareQueryParams,\n AdminCompare,\n NvrCreatePayload,\n WidgetsListRequestPayload,\n Widget,\n WidgetFull,\n WidgetPayload,\n} from \"@evercam/api/types\"\n\nimport { KitMetricId } from \"@evercam/api/types\"\n\nexport const AdminApi = {\n mediaHub: {\n getAllMedia(params: {\n params: Partial<MediaFilterQueryParams>\n }): Promise<PaginatedItems<Media>> {\n return axios.get(\"/admin/media-hub\", params)\n },\n deleteMedia(params: Partial<MediaDeleteRequestPayload>): Promise<void> {\n return axios.delete(\"/admin/media-hub\", { params })\n },\n },\n auditLogs: {\n getAuditLogs(params: {\n params: Partial<AuditLogsParams>\n }): Promise<PaginatedItems<AuditLog>[]> {\n return axios.get(\"/admin/audit-logs\", params)\n },\n },\n cameras: {\n getCamerasStats(params: {\n params: {\n email?: string\n }\n }): Promise<CamerasResponsePayload> {\n return axios.get(\"/admin/cameras/status-stats\", params)\n },\n rebootCamera(cameraId: string): Promise<{ message: string }> {\n return axios.post(`/admin/devices/camera/${cameraId}/reboot`)\n },\n focusCamera(\n cameraId: string,\n device: string\n ): Promise<{ message: string }> {\n return axios.post(`/admin/devices/${device}/${cameraId}/focus`)\n },\n getStorageServers(): Promise<StorageServersResponsePayload> {\n return axios.get(\"/admin/storage/servers\")\n },\n getStorageDetails() {\n return axios.get(\"/admin/storage\")\n },\n getSnapshotExtractions(params: {\n params: Partial<SnapshotExtractionQyeryParams>\n }): Promise<PaginatedItems<SnapshotExtraction>> {\n return axios.get(\"/admin/snapshot-extractions\", params)\n },\n createCameras(\n payload: CameraCreateRequestPayload\n ): Promise<{ cameras: [AdminCamera] }> {\n return axios.post(\"/admin/cameras\", payload)\n },\n deleteCamera(exid: string, payload: CameraDeletePayload): Promise<void> {\n return axios.post(`/admin/cameras/${exid}/delete`, payload)\n },\n testSnapshot(payload: SnapshotTestPayload): Promise<SnapshotTestResponse> {\n return axios.post(\"/admin/cameras/test-snapshot\", payload)\n },\n getDuplicateCameras(params: {\n params: {\n fields?: DuplicatedCameraFields[]\n sort?: string\n }\n }): Promise<PaginatedItems<DuplicatedCameraResponse>> {\n return axios.get(\"/admin/duplicate-cameras\", params)\n },\n mergeDuplicateCameras(\n payload: MergeDuplicatedCameraPayload\n ): Promise<{ success: boolean }> {\n return axios.post(\"/admin/merge-cameras\", payload)\n },\n getCameras(params: {\n params: Partial<FetchCameraQueryParams>\n }): Promise<PaginatedItems<AdminCamera>> {\n return axios.get(\"/admin/cameras\", params)\n },\n getCompares(params: {\n params: AdminCompareQueryParams\n }): Promise<PaginatedItems<AdminCompare[]>> {\n return axios.get(\"/admin/compares\", params)\n },\n getCameraDetails(exid: string): Promise<AdminCamera> {\n return axios.get(`/admin/cameras/${exid}`)\n },\n deleteSnapshots(\n cameraId: string,\n params: DeleteSnapshotQueryParams\n ): Promise<void> {\n return axios.delete(`admin/cameras/${cameraId}/snapshots`, {\n params,\n })\n },\n refreshDeviceSettings(cameraId: string): Promise<void> {\n return axios.post(\n `/admin/cameras/${cameraId}/device-settings/refresh`,\n {}\n )\n },\n // (Azhar) Old save note code will be remove once we migrate all old saved camera notes\n saveNote(cameraId: string, params: SaveNotePayload): Promise<CameraNote> {\n return axios.post(`/admin/cameras/${cameraId}/save-note`, params)\n },\n saveCameraNote(\n cameraId: string,\n params: CreateCameraNotePayload\n ): Promise<{ message: string }> {\n return axios.post(`/admin/cameras/${cameraId}/note`, params)\n },\n update(\n cameraId: string,\n params: CameraUpdateRequestPayload\n ): Promise<CamerasResponsePayload> {\n return axios.patch(`/admin/cameras/${cameraId}`, params)\n },\n },\n companies: {\n getCompanies(params: {\n params: Partial<CompanyQueryParams>\n }): Promise<PaginatedItems<Company[]>> {\n return axios.get(\"/admin/companies\", params)\n },\n updateCompany(\n id: string,\n params: CompanyUpdatePayload\n ): Promise<Omit<CompanyUpdatePayload, \"linkedinUrl\">> {\n return axios.patch(`/admin/companies/${id}`, params)\n },\n deleteCompany(params: {\n ids: string | string[]\n }): Promise<{ success: true }> {\n return axios.delete(\"/admin/companies\", { params })\n },\n reSyncCompanies(params: {\n companyIds: string[]\n }): Promise<{ success: true }> {\n return axios.post(\"/admin/companies/resync\", params)\n },\n },\n emailing: {\n performEmailing(template: string, params: Record<string, unknown>) {\n return axios.post(`/admin/mailing/${template}`, params)\n },\n suppressions(params: {\n params: SuppressionsQueryParams\n }): Promise<PaginatedItems<Suppression[]>> {\n return axios.get(\"/admin/mailing/suppressions\", params)\n },\n deleteSuppression(id: number): Promise<void> {\n return axios.delete(`/admin/mailing/suppressions/${id}`)\n },\n },\n extractions: {\n updateCloudRecordings(cameraId: string, params: Record<string, unknown>) {\n return axios.post(`/admin/cameras/${cameraId}/cloud-recordings`, params)\n },\n addExtraction(\n cameraId: string,\n params: SnapshotExtractionQyeryParams\n ): Promise<PaginatedItems<SnapshotExtraction>> {\n return axios.post(`admin/cameras/${cameraId}/extractions`, params)\n },\n getExtractionStatus(\n cameraId: string,\n extractionId: number,\n params: {\n type: SnapshotExtractionType\n }\n ): Promise<{ status: string; jpegs: number }> {\n return axios.get(\n `admin/cameras/${cameraId}/extractions/${extractionId}`,\n {\n params,\n }\n )\n },\n deleteSnapshotExtraction(\n cameraId: string,\n extractionId: number,\n params: {\n type: SnapshotExtractionType\n }\n ): Promise<void> {\n return axios.delete(\n `admin/cameras/${cameraId}/extractions/${extractionId}`,\n {\n params,\n }\n )\n },\n },\n gateReport: {\n getGateReportProjects(params: {\n params: PaginationParams\n }): Promise<PaginatedItems<GateReportProject[]>> {\n return axios.get(\"/admin/gate-report\", params)\n },\n getGateReportProject(projectExid: string): Promise<Project> {\n return axios.get(`/admin/projects/${projectExid}`)\n },\n },\n kits: {\n getAllKits(params: {\n params: KitQueryParams\n }): Promise<PaginatedItems<Kit[]>> {\n return axios.get(\"/admin/kits\", params)\n },\n async getKit(kitId: number): Promise<Kit> {\n return axios.get(`/admin/kits/${kitId}`)\n },\n createKit(params: KitCreatePayload): Promise<AdminKit> {\n return axios.post(\"/admin/kits\", params)\n },\n updateKit(id: string, params: PatchPayload<Kit>) {\n return axios.patch(`/admin/kits/${id}`, params)\n },\n deleteKit(id: string, params: Record<string, unknown>) {\n return axios.delete(`/admin/kits/${id}`, { params })\n },\n getKitStats({\n kitId,\n metric,\n fromDate,\n toDate,\n }: {\n kitId: number\n metric: KitMetricId\n fromDate: string\n toDate: string\n }) {\n return axios.get(`/admin/kits/${kitId}/stats/${metric}`, {\n params: {\n fromDate,\n toDate,\n },\n })\n },\n },\n logs: {\n getAllCamerasStatusLogs(params: {\n params: CameraLogsQueryParams\n }): Promise<{ data: CameraLog[] }> {\n return axios.get(\"/admin/cameras-logs\", params)\n },\n getCameraLogs(\n cameraId: string,\n payload: {\n params: CameraAuditLogsQueryParams\n }\n ): Promise<PaginatedItems<CameraAuditLog[]>> {\n return axios.get(`/admin/cameras/${cameraId}/audit-logs`, payload)\n },\n togglePinNote(id: string): Promise<PaginatedItems<CameraAuditLog[]>> {\n return axios.patch(`/admin/audit-logs/${id}/toggle-pin`)\n },\n },\n nvrs: {\n getNvrs(params: {\n params: NvrQueryParams\n }): Promise<PaginatedItems<Nvr[]>> {\n return axios.get(\"/admin/nvrs\", params)\n },\n createNvr(params: NvrCreatePayload) {\n return axios.post(\"/admin/nvrs\", params)\n },\n updateNvr(id: string, params: PatchPayload<Nvr>) {\n return axios.patch(`/admin/nvrs/${id}`, params)\n },\n rebootNVR(cameraId: string): Promise<{ message: string }> {\n return axios.post(`/admin/devices/nvr/${cameraId}/reboot`)\n },\n },\n offlineCameras: {\n getSiteVisitCameras(params: {\n params: Partial<SiteVisitCamerasQueryParams>\n }): Promise<PaginatedItems<AdminCamera>> {\n return axios.get(\"/admin/site-visit-cameras\", params)\n },\n getOfflineCameras(params: {\n params: Partial<OfflineCameraQueryParams>\n }): Promise<PaginatedItems<OfflineCamera>> {\n return axios.get(\"/admin/offline-cameras\", params)\n },\n getOfflineCamerasLastNote(params: {\n cameraIds: number[]\n }): Promise<OfflineCameraNoteResponse> {\n return axios.get(\"/admin/offline-cameras/notes\", { params: params })\n },\n },\n pa: {\n getPAUser(\n id: number,\n params: Record<string, unknown>\n ): Promise<UserStatsResponse> {\n return axios.get(\n `/admin/users/${id}${\"with_zoho\" in params ? \"?with_zoho\" : \"\"}`\n )\n },\n getPAProjectPeriodEvents(\n id: string | number,\n payload: EntityStatsQueryParams\n ): Promise<EntityStat[]> {\n return axios.get(`/admin/projects/${id}/stats`, { params: payload })\n },\n getPAUserEvents(id: string | number): Promise<UserSession[]> {\n return axios.get(`/admin/users/${id}/events`)\n },\n getPAUserCameras(id: number): Promise<UserCameraResponse> {\n return axios.get(`/admin/users/${id}/cameras`)\n },\n getPAUserProjects(id: number): Promise<UserProjectResponse> {\n return axios.get(`/admin/users/${id}/projects`)\n },\n getPAUserPeriodEvents(\n id: number,\n payload: EntityStatsQueryParams\n ): Promise<EntityStat[]> {\n return axios.get(`/admin/users/${id}/stats`, { params: payload })\n },\n getProjectUsers(id: string): Promise<ProjectUsers> {\n return axios.get(`/admin/projects/${id}/users`)\n },\n getPAProject(\n id: string,\n params: Record<string, unknown>\n ): Promise<{ data: Project }> {\n return axios.get(\n `/admin/projects/${id}${\"with_zoho\" in params ? \"?with_zoho\" : \"\"}`\n )\n },\n getPAProjectCameras(id: string): Promise<{ data: ProjectCamera[] }> {\n return axios.get(`/admin/projects/${id}/cameras`)\n },\n },\n projects: {\n getAll(params: {\n params: Partial<ProjectsQueryParams>\n }): Promise<PaginatedItems<Project>> {\n return axios.get(\"/admin/projects\", params)\n },\n getProject(exid: string): Promise<Project> {\n return axios.get(`/admin/projects/${exid}`)\n },\n getProjectsStats(): Promise<ProjectStatusStats> {\n return axios.get(\"/admin/projects/status-stats\")\n },\n createProject(\n params: ProjectCreateRequestPayload\n ): Promise<ProjectCreateResponse> {\n return axios.post(\"/admin/projects\", params)\n },\n updateProject(\n projectExid: string,\n params: Partial<ProjectUpdateRequestPayload>\n ): Promise<ProjectCreateResponse> {\n return axios.put(`/admin/projects/${projectExid}`, params)\n },\n deleteProject(projectExid: string): Promise<{ success: boolean }> {\n return axios.delete(`/admin/projects/${projectExid}`)\n },\n addToProject(\n projectExid: string,\n params: { cameraExids: string[] }\n ): Promise<void> {\n return axios.post(`/admin/projects/${projectExid}/add-cameras`, params)\n },\n },\n routers: {\n getRouters(params: {\n params: Partial<RouterQueryParams>\n }): Promise<PaginatedItems<Router[]>> {\n return axios.get(\"/admin/routers\", params)\n },\n getRouterTypes(): Promise<string[]> {\n return axios.get(\"/admin/router-types\")\n },\n createRouter(params: RouterCreatePayload): Promise<{ routerId: number }> {\n return axios.post(\"/admin/routers\", params)\n },\n updateRouter(\n id: number,\n params: RouterCreatePayload\n ): Promise<{ success: boolean }> {\n return axios.patch(`/admin/routers/${id}`, params)\n },\n deleteRouter(id: number): Promise<void> {\n return axios.delete(`/admin/routers/${id}`)\n },\n getRouter(id: number): Promise<Router> {\n return axios.get(`/admin/routers/${id}`)\n },\n },\n search: {\n search(params: {\n params: GlobalSearchQueryParams\n }): Promise<PaginatedItems<Record<string, unknown>>> {\n return axios.get(\"/admin/search\", params)\n },\n },\n hdds: {\n getHdds(payload: { projectId: string; companyId: string }): Promise<Hdd[]> {\n return axios.get(\"/admin/hdds\", { params: payload })\n },\n getAllHdds(params: { params: Partial<HDDsQueryParams> }) {\n return axios.get(\"/admin/hdds\", params)\n },\n deleteHdd(hddId: number) {\n return axios.delete(`/admin/hdds/${hddId}`)\n },\n saveHdd(params: HDDCreateUpdatePayload) {\n return axios.post(\"/admin/hdds\", params)\n },\n updateHdd(hddId: number, params: HDDCreateUpdatePayload) {\n return axios.patch(`/admin/hdds/${hddId}`, params)\n },\n saveFootage(hddId: number, params: FootageCreateUpdatePayload) {\n return axios.post(`/admin/hdds/${hddId}/footages`, params)\n },\n deleteFootage(hddId: number, footageId: number) {\n return axios.delete(`/admin/hdds/${hddId}/footages/${footageId}`)\n },\n updateFootage(\n hddId: number,\n footageId: number,\n params: FootageCreateUpdatePayload\n ) {\n return axios.patch(`/admin/hdds/${hddId}/footages/${footageId}`, params)\n },\n },\n shareRequests: {\n getShareRequests(params: {\n params: Partial<CameraShareRequestsQueryParams>\n }): Promise<PaginatedItems<CameraShareRequest[]>> {\n return axios.get(\"/admin/camera-share-requests\", params)\n },\n deleteShareRequest(params: {\n ids: number[]\n }): Promise<{ success: boolean }> {\n return axios.delete(\"/admin/camera-share-requests\", { params: params })\n },\n updateShareRequestStatus(params: {\n ids: number[]\n status: string\n }): Promise<{ success: boolean }> {\n return axios.patch(\"/admin/camera-share-requests\", params)\n },\n },\n shares: {\n createShares(\n cameraExid: string,\n payload: CameraShareRequestPayload\n ): Promise<ShareCreateResponsePayload> {\n return axios.post(`/admin/cameras/${cameraExid}/shares`, payload)\n },\n getShares(params: {\n params: Partial<ShareQueryParams>\n }): Promise<PaginatedItems<AdminShare[]>> {\n return axios.get(\"/admin/camera-shares\", params)\n },\n deleteShares(ids: number[]): Promise<void> {\n return axios.delete(\"/admin/camera-shares\", { params: ids })\n },\n },\n sims: {\n deleteSim(simId: number): Promise<{ deleted: boolean }> {\n return axios.delete(`/admin/sims/${simId}`)\n },\n createSim(\n params: Omit<SimCreateUpdatePayload, \"cameraId\">\n ): Promise<{ success: boolean }> {\n return axios.post(\"/admin/sims\", params)\n },\n updateSim(\n simId: number,\n params: CameraShareRequestPayload\n ): Promise<{ success: boolean }> {\n return axios.patch(`/admin/sims/${simId}`, params)\n },\n getSims(params: {\n params: Partial<SimsQueryParams>\n }): Promise<PaginatedItems<Sim[]>> {\n return axios.get(\"/admin/sims\", params)\n },\n getSimProviders() {\n return axios.get(\"/admin/sim-providers\")\n },\n getBillPayers() {\n return axios.get(\"/admin/sims/bill-payers\")\n },\n },\n sms: {\n sendSms(number: string, params: SendSmsPayload): Promise<SendSmsResponse> {\n return axios.post(`/admin/sims/${number}/sms`, params)\n },\n getSimHistory(number: string): Promise<SmsHistoryResponse> {\n return axios.get(`/admin/sims/${number}/sms`)\n },\n getSms(params: {\n params: Partial<SmsQueryParams>\n }): Promise<PaginatedItems<Sms[]>> {\n return axios.get(\"/admin/sms\", params)\n },\n },\n progressPhotos: {\n getProgressPhotos(params: {\n params: Partial<ProgressPhotosQueryParams>\n }): Promise<PaginatedItems<ProgressPhotoItem[]>> {\n return axios.get(\"/admin/progress-photos\", params)\n },\n getProgressPhotosHistory(params: {\n params: Partial<progressPhotosHistoryQueryParams>\n }): Promise<ProgressPhotosHistory> {\n return axios.get(\"/admin/progress-photos/history\", params)\n },\n getProgressPhotoTemplate({\n id,\n }: {\n id: string\n }): Promise<{ progressPhoto: string }> {\n return axios.get(`/admin/progress-photos/history/${id}/email`)\n },\n update(\n id: string,\n payload: ProgressPhotosCreateUpdateRequestPayload\n ): Promise<ProgressPhoto> {\n return axios.patch(`/admin/progress-photos/${id}`, payload)\n },\n },\n users: {\n updateUser(\n id: number,\n params: Partial<AdminUserUpdateRequestPayload>\n ): Promise<AdminUser> {\n return axios.put(`/admin/users/${id}`, params)\n },\n getAdmins(params: {\n params: Partial<AdminQueryParams>\n }): Promise<PaginatedItems<Admin[]>> {\n return axios.get(\"/admin\", params)\n },\n deleteAdmin(email: string): Promise<void | { message: string }> {\n return axios.put(`/admin/users/${email}/revoke-admin`)\n },\n makeAdmin(email: string): Promise<void | { message: string }> {\n return axios.put(`/admin/users/${email}/grant-admin`)\n },\n deleteUser(\n email: string,\n params: { verifyEmail: string }\n ): Promise<void | { message: string }> {\n return axios.post(`/users/${email}/delete`, params)\n },\n impersonateUser(email: string): Promise<ImpersonateUserResponse> {\n return axios.post(`/admin/users/${email}/impersonate`)\n },\n getUsers(params: {\n params: Partial<AdminUserQueryParams>\n }): Promise<PaginatedItems<AdminUser>> {\n return axios.get(\"/admin/users\", params)\n },\n getUserPasswordResetLink(\n email: string\n ): Promise<{ passwordResetLink: string }> {\n return axios.post(`/admin/users/${email}/password/reset`)\n },\n },\n widgets: {\n index(params: {\n params: Partial<WidgetsListRequestPayload>\n }): Promise<PaginatedItems<Widget>> {\n return axios.get(\"/admin/widgets\", params)\n },\n show(id: number): Promise<WidgetFull> {\n return axios.get(`/admin/widgets/${id}`)\n },\n update(id: number, payload: WidgetPayload): Promise<WidgetFull> {\n return axios.put(`/admin/widgets/${id}`, payload)\n },\n delete(id: number) {\n return axios.delete(`/admin/widgets/${id}`)\n },\n },\n}\n","import { axios } from \"./client\"\nimport { VideoWallPreset } from \"@evercam/api/types\"\n\nexport const VideoWallApi = {\n presets: {\n getProjectPresets(email: string, projectId: number) {\n const encodedEmail = btoa(email)\n\n return axios.get(\n `${axios.env.firebaseVideowallUrl}/${encodedEmail}/presets/${projectId}.json`,\n {\n transformRequest: (data, headers) => {\n // @ts-expect-error - common type string | number | undefined\n delete headers.common[\"Authorization\"]\n\n return data\n },\n }\n )\n },\n saveProjectPreset(\n email: string,\n projectId: string,\n payload: Record<string, unknown>\n ) {\n const preset = JSON.stringify({ configuration: payload.configuration })\n const presetName = payload.name\n const encodedEmail = btoa(email)\n\n return axios.patch(\n `${axios.env.firebaseVideowallUrl}/${encodedEmail}/presets/${projectId}/${presetName}.json`,\n preset,\n {\n transformRequest: (data, headers) => {\n // @ts-expect-error - common type string | number | undefined\n delete headers.common[\"Authorization\"]\n\n return data\n },\n }\n )\n },\n getGlobalPreset(email: string): Promise<VideoWallPreset> {\n const encodedEmail = btoa(email)\n\n return axios.get(\n `${axios.env.firebaseVideowallUrl}/${encodedEmail}/presets/global.json`,\n {\n transformRequest: (data, headers) => {\n // @ts-expect-error - common type string | number | undefined\n delete headers.common[\"Authorization\"]\n\n return data\n },\n }\n )\n },\n saveGlobalPreset(email: string, payload: VideoWallPreset): Promise<void> {\n const preset = JSON.stringify({ configuration: payload.configuration })\n const encodedEmail = btoa(email)\n\n return axios.patch(\n `${axios.env.firebaseVideowallUrl}/${encodedEmail}/presets/global.json`,\n preset,\n {\n transformRequest: (data, headers) => {\n // @ts-expect-error - common type string | number | undefined\n delete headers.common[\"Authorization\"]\n\n return data\n },\n }\n )\n },\n },\n}\n","import { axios } from \"./client\"\nimport {\n _360ProjectJsonResponse,\n DroneProjectJsonResponse,\n ProjectExid,\n} from \"@evercam/api/types\"\n\nexport const _3dFirebaseApi = {\n drone: {\n getProjectInfo(\n projectExid: ProjectExid\n ): Promise<DroneProjectJsonResponse> {\n return fetch(\n `${axios.env.firebaseDbLink}data/projects/cesium/${projectExid}.json`\n ).then((res) => res.json())\n },\n },\n _360: {\n getProjectInfo(projectExid: ProjectExid): Promise<_360ProjectJsonResponse> {\n return fetch(\n `${axios.env.firebaseDbLink}data/projects/360/${projectExid}.json`\n ).then((res) => res.json())\n },\n },\n}\n","import humps from \"humps\"\n\nexport type Falsy = \"\" | null | undefined | false\n\nexport interface QueryParams {\n [k: string]: string | number | boolean | string[] | Falsy\n}\n\nexport const toQueryString = <T extends Record<string, unknown>>(\n paramsObject: T | QueryParams = {},\n { forceSnakeCase = true, forceArrayBrackets = false } = {}\n) => {\n if (Object.keys(paramsObject).length === 0) {\n return\n }\n let params = { ...paramsObject }\n if (forceSnakeCase) {\n params = humps.decamelizeKeys(paramsObject) as QueryParams\n }\n\n return Object.entries(params).reduce((acc, [param, value], index) => {\n let encodedParam = \"\"\n if (\n [\"\", null, undefined]?.includes(value as string | null | undefined) ||\n (Array.isArray(value) && value.length === 0)\n ) {\n return acc\n } else if (value && typeof value === \"object\") {\n encodedParam = Object.entries(value).reduce((_acc, [key, v], i) => {\n let paramName = param\n if (isNaN(Number.parseInt(key))) {\n paramName = `${param}[${key}]`\n } else if (Array.isArray(value) && forceArrayBrackets) {\n paramName = `${param}[]`\n }\n\n return `${_acc}${i > 0 ? \"&\" : \"\"}${paramName}=${encodeURIComponent(v)}`\n }, \"\")\n } else {\n encodedParam = `${param}=${encodeURIComponent(\n value as string | number | boolean\n )}`\n }\n\n return `${acc}${index > 0 ? \"&\" : \"\"}${encodedParam}`\n }, \"\")\n}\n\nexport function queryStringToObject(queryString = \"\"): QueryParams {\n const entries = [\n ...new URLSearchParams(\n queryString.indexOf(\"#\") > -1 ? queryString.split(\"#\")[0] : queryString\n ).entries(),\n ].filter(([, value]) => value)\n\n return entries.reduce<QueryParams>((acc, [key, value]) => {\n const isSingleParam =\n (queryString.match(new RegExp(`${key}=`, \"g\")) || []).length <= 1\n if (isSingleParam) {\n return { ...acc, [key]: value }\n }\n\n if (acc[key]) {\n return {\n ...acc,\n [key]: [...(acc[key] as string[]), value],\n }\n }\n\n return { ...acc, [key]: [value] }\n }, {})\n}\n","import { axios } from \"./client\"\nimport { toQueryString } from \"../utils\"\nimport type {\n AnprQueryParams,\n AnprEvent,\n EventCountRequestPayload,\n EventCountResponsePayload,\n EventsExportRequestParameters,\n EventsRequestPayload,\n EventsResponsePayload,\n GateReportROI,\n PaginatedItems,\n GateReportVerifiedDay,\n ProjectExid,\n CameraExid,\n AnprCountsQueryParams,\n AnprCount,\n AnprBasedGateReportExportRequestParams,\n GateReportResponsePayload,\n GatReportRequestPayload,\n AnalyticsParameters,\n VerifiedDaysQueryParams,\n EventUpdateRequestPayload,\n VerifyDayUpdateRequestPayload,\n ProcessedDaysQueryParams,\n GateReportEventType,\n DateTime,\n RoisQueryParams,\n GateReportROICreateRequestPayload,\n SegmentsSimilaritySearchParams,\n DetectionsFilters,\n TrackingsByLabel,\n SegmentsByLabel,\n CountsParams,\n DetectionsPresenceByLabel,\n} from \"@evercam/api/types\"\nimport type { AxiosPromise, AxiosRequestConfig } from \"axios\"\nimport { VEHICLE_TYPE_IDS } from \"@evercam/api/types\"\n\nexport const getAiApiUrl = () => {\n if (axios.env.isStaging) {\n return axios.env.stagingAiApiUrl\n }\n\n return axios.env.aiApiUrl\n}\n\nexport const AiApi = {\n analyticsParameters: {\n getParameters(\n cameraId: CameraExid,\n params: Record<string, unknown> = {}\n ): Promise<AnalyticsParameters> {\n return axios.get(\n `${getAiApiUrl()}/cameras/${cameraId}/analytics-parameters`,\n {\n params,\n }\n )\n },\n createParameters(\n params: Omit<AnalyticsParameters, \"id\">\n ): Promise<AnalyticsParameters> {\n return axios.post(`${getAiApiUrl()}/cameras/analytics-parameters`, params)\n },\n updateParameters({\n updatedBy,\n id,\n ...payload\n }: Partial<AnalyticsParameters> & {\n updatedBy: string\n }): Promise<AnalyticsParameters> {\n return axios.patch(\n `${getAiApiUrl()}/cameras/analytics-parameters/${id}?${toQueryString({\n updatedBy,\n })}`,\n payload\n )\n },\n },\n anpr: {\n exportAnprLegacyEvents(projectExid: ProjectExid, params: AnprQueryParams) {\n return axios({\n url: `${getAiApiUrl()}/projects/${projectExid}/anpr/export?${toQueryString(\n params\n )}`,\n method: \"GET\",\n responseType: \"blob\",\n })\n },\n getAnprEvents(\n projectExid: ProjectExid,\n params: AnprQueryParams\n ): Promise<PaginatedItems<AnprEvent>> {\n return axios.get(\n `${getAiApiUrl()}/projects/${projectExid}/anpr?${toQueryString(params)}`\n )\n },\n getAnprCounts(\n projectExid: ProjectExid,\n payload: AnprCountsQueryParams\n ): Promise<AnprCount[]> {\n return axios.get(\n `${getAiApiUrl()}/projects/${projectExid}/anpr/counts?${toQueryString(\n payload\n )}`\n )\n },\n updateAnprEvent(anprEventId: string, eventBody: Record<string, unknown>) {\n return axios.patch(`${getAiApiUrl()}/projects/anpr/${anprEventId}`, {\n ...eventBody,\n })\n },\n bulkUpdateAnprRecords(\n anprEventsIds: number[],\n action: \"is_plate\" | \"not_plate\" | \"is_duplicate\" | \"not_duplicate\"\n ) {\n return axios.patch(\n `${getAiApiUrl()}/projects/anpr/update/status?${toQueryString({\n anprEventsIds,\n action,\n })}`\n )\n },\n exportAnprEvents(\n projectExid: string,\n params: AnprBasedGateReportExportRequestParams\n ): AxiosPromise<string> {\n return axios({\n url: `${getAiApiUrl()}/projects/${projectExid}/anpr/events/export?${toQueryString<AnprBasedGateReportExportRequestParams>(\n params\n )}`,\n method: \"GET\",\n responseType: \"blob\",\n })\n },\n },\n gateReport: {\n getGateReportProjects(params: Record<string, unknown>) {\n return axios.get(\n `${getAiApiUrl()}/projects/gate-report/get-projects-data`,\n params\n )\n },\n getLastVerified(params: Record<string, unknown>) {\n return axios.get(\n `${getAiApiUrl()}/projects/gate-report/last-verified`,\n params\n )\n },\n deleteEvent(id: number, params: Record<string, unknown>) {\n return axios.delete(\n `${getAiApiUrl()}/projects/events/${id}?${toQueryString(params)}`\n )\n },\n dismissEvents(params: Record<string, unknown>) {\n return axios.delete(\n `${getAiApiUrl()}/projects/events?${toQueryString(params)}`\n )\n },\n exportEvents(projectExid: string, params: EventsExportRequestParameters) {\n return axios({\n url: `${getAiApiUrl()}/projects/${projectExid}/gate-report/events/export?${toQueryString<EventsExportRequestParameters>(\n params\n )}`,\n method: \"GET\",\n responseType: \"blob\",\n })\n },\n exportEventsProgress(projectExid: string, params: { exportDate: string }) {\n return axios.get(\n `${getAiApiUrl()}/projects/${projectExid}/gate-report/events/export/progress?${toQueryString(\n params\n )}`\n )\n },\n getAllEvents(\n projectExid: ProjectExid,\n params: EventsRequestPayload,\n extraParams?: AxiosRequestConfig\n ): Promise<EventsResponsePayload> {\n if (!params.vehicleTypes) {\n params.vehicleTypes = VEHICLE_TYPE_IDS\n }\n if (!params.truckTypes) {\n params.vehicleTypes = VEHICLE_TYPE_IDS\n }\n if (!params.camerasExid) {\n params.camerasExid = params.cameras\n }\n\n return axios.get(\n `${getAiApiUrl()}/projects/${projectExid}/events?${toQueryString(\n params\n )}`,\n extraParams\n )\n },\n getEventCounts(\n projectExid: string,\n payload: EventCountRequestPayload = {},\n extraParams?: AxiosRequestConfig\n ): Promise<EventCountResponsePayload> {\n if (!payload.vehicleTypes) {\n payload.vehicleTypes = VEHICLE_TYPE_IDS\n }\n\n return axios.get(\n `${getAiApiUrl()}/projects/${projectExid}/project-stats?${toQueryString(\n payload\n )}`,\n {\n ...(extraParams || {}),\n }\n )\n },\n getVerifiedDays(\n projectExid: ProjectExid,\n params: Partial<VerifiedDaysQueryParams>,\n extraParams = {}\n ): Promise<PaginatedItems<GateReportVerifiedDay>> {\n return axios.get(\n `${getAiApiUrl()}/projects/${projectExid}/gate-report/verified-days?${toQueryString(\n params\n )}`,\n extraParams\n )\n },\n updateEventById(\n eventId: number,\n {\n updatedBy,\n payload,\n }: {\n updatedBy: string\n payload: Partial<EventUpdateRequestPayload>\n }\n ) {\n return axios.patch(\n `${getAiApiUrl()}/projects/events/${eventId}?${toQueryString({\n updatedBy,\n })}`,\n payload\n )\n },\n verifyDay(params: VerifyDayUpdateRequestPayload) {\n return axios.post(\n `${getAiApiUrl()}/projects/gate-report/verified-days`,\n params\n )\n },\n regenerateThumbnail(id: number, params: { cameraExid: string }) {\n return axios.put(\n `${getAiApiUrl()}/projects/gate-report/event-thumbnail/render/${id}?${toQueryString(\n params\n )}`,\n {\n method: \"PUT\",\n }\n )\n },\n getDailyStatus(\n projectExid: string,\n params: Partial<ProcessedDaysQueryParams> = {}\n ) {\n return axios.get(\n `${getAiApiUrl()}/projects/${projectExid}/processed-days`,\n { params }\n )\n },\n getEventThumbnail({\n cameraExid,\n eventType,\n eventTime,\n token,\n }: {\n cameraExid: string\n eventType: GateReportEventType\n eventTime: DateTime\n token: string\n }) {\n return `${getAiApiUrl()}/cameras/${cameraExid}/gate-report/${eventType}/${eventTime}/thumbnail?authorization=${token}`\n },\n getEventSnapshot({\n cameraExid,\n eventType,\n eventTime,\n token,\n }: {\n cameraExid: string\n eventType: GateReportEventType\n eventTime: DateTime\n token: string\n }) {\n return `${getAiApiUrl()}/cameras/${cameraExid}/gate-report/${eventType}/${eventTime}/snapshot?authorization=${token}`\n },\n getEvents(\n projectExid: ProjectExid,\n params: GatReportRequestPayload,\n extraParams: AxiosRequestConfig = {}\n ): Promise<GateReportResponsePayload> {\n return axios.get(\n `${getAiApiUrl()}/projects/${projectExid}/gate-report/events?${toQueryString(\n params\n )}`,\n extraParams\n )\n },\n getCounts(\n projectExid: string,\n payload: EventCountRequestPayload = {},\n extraParams: AxiosRequestConfig = {}\n ): Promise<EventCountResponsePayload> {\n return axios.get(\n `${getAiApiUrl()}/projects/${projectExid}/gate-report/counts?${toQueryString(\n payload\n )}`,\n extraParams\n )\n },\n },\n brainTool: {\n getObjectDetectionsResults(payload = {}) {\n return axios.post(`${getAiApiUrl()}/ai-models/object-detection`, payload)\n },\n getSegments(payload = {}) {\n return axios.post(`${getAiApiUrl()}/ai-models/segment`, payload)\n },\n async getDepth(cameraExid: string, timestamp: string) {\n return axios.post(`${getAiApiUrl()}/depth-estimation`, {\n cameraex: cameraExid,\n timestamp,\n })\n },\n },\n roi: {\n getROIs(\n projectExid: string,\n params: Partial<RoisQueryParams> = {}\n ): Promise<GateReportROI[]> {\n return axios.get(\n `${getAiApiUrl()}/projects/${projectExid}/rois?${toQueryString(params)}`\n )\n },\n createROI(params: GateReportROICreateRequestPayload) {\n return axios.post(`${getAiApiUrl()}/projects/rois`, params)\n },\n updateROI({\n updatedBy,\n roi,\n }: {\n updatedBy: string\n roi: GateReportROICreateRequestPayload\n }) {\n return axios.patch(\n `${getAiApiUrl()}/projects/rois/${roi.id}?${toQueryString({\n updatedBy,\n })}`,\n roi\n )\n },\n deleteROI({ id, updatedBy }: { id: number; updatedBy: string }) {\n return axios.patch(\n `${getAiApiUrl()}/projects/rois/${id}?${toQueryString({\n updatedBy,\n })}`,\n { isactive: false, note: \"delete roi\" }\n )\n },\n },\n detections: {\n async getSimilarSegmentsInTimeIntervals({\n cameraExid,\n iouThreshold = 0.8,\n ...params\n }: SegmentsSimilaritySearchParams) {\n return axios.get(\n `${getAiApiUrl()}/cameras/${cameraExid}/segments/appearance-from-points`,\n {\n params: {\n cameraExid,\n iouThreshold,\n ...params,\n },\n }\n )\n },\n async getDetectionsTracking(\n cameraExid: CameraExid,\n params: DetectionsFilters\n ): Promise<TrackingsByLabel> {\n return axios.get(\n `${getAiApiUrl()}/cameras/${cameraExid}/detections/trackings`,\n {\n params,\n }\n )\n },\n async getSegmentsMasks(\n cameraExid: CameraExid,\n params: DetectionsFilters\n ): Promise<SegmentsByLabel> {\n return axios.get(\n `${getAiApiUrl()}/cameras/${cameraExid}/segments/masks`,\n {\n params,\n }\n )\n },\n async getDetectionsPresenceDateIntervals({\n cameraExid,\n ...params\n }: CountsParams): Promise<DetectionsPresenceByLabel> {\n return axios.get(\n `${getAiApiUrl()}/cameras/${cameraExid}/detections/presence-intervals`,\n {\n params,\n }\n )\n },\n },\n siteAnalytics: {\n smartSearch({\n cameraExid,\n query,\n payload,\n }: {\n cameraExid: CameraExid\n query: Record<string, unknown>\n payload: Record<string, unknown>\n }) {\n return axios.post(\n `${getAiApiUrl()}/cameras/${cameraExid}/advanced_search?${toQueryString(\n query\n )}`,\n payload\n )\n },\n },\n}\n","import axios from \"axios\"\n\nexport const WebRtcApi = {\n webRtc: {\n requestIceServers({ url, token }: { url: string; token: string }) {\n return axios({\n url,\n method: \"OPTIONS\",\n headers: {\n Authorization: `Bearer ${token}`,\n },\n })\n },\n sendLocalOffer({\n url,\n token,\n data,\n }: {\n url: string\n token: string\n data: {\n sdp: string\n type: string\n }\n }) {\n return axios({\n url,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/sdp\",\n Authorization: `Bearer ${token}`,\n },\n data,\n })\n },\n sendLocalCandidates({\n url,\n token,\n data,\n tag,\n }: {\n url: string\n token: string\n data: Record<string, unknown>\n tag: string\n }) {\n return axios({\n url,\n method: \"PATCH\",\n headers: {\n \"Content-Type\": \"application/trickle-ice-sdpfrag\",\n \"If-Match\": tag,\n Authorization: `Bearer ${token}`,\n },\n data,\n })\n },\n },\n}\n","import { axios } from \"./client\"\nimport { toQueryString } from \"@evercam/api/utils\"\nimport {\n HistoryWeatherRequestPayload,\n WeatherDataResponse,\n WeatherProvider,\n WeatherResponsePayload,\n} from \"@evercam/api/types\"\n\nexport const WeatherApi = {\n current: {\n getCurrentWeather({\n projectExid,\n weatherProvider = WeatherProvider.WeatherStack,\n }: {\n projectExid: string\n weatherProvider: WeatherProvider\n }): Promise<WeatherResponsePayload> | undefined {\n if (weatherProvider === WeatherProvider.WeatherStack) {\n return axios.get(`/projects/${projectExid}/weather/current`)\n } else if (weatherProvider === WeatherProvider.AerisWeather) {\n return axios.get(\n `${axios.env.weatherApiBaseUrl}/weatherApi/getWeatherData?projectExid=${projectExid}`\n )\n }\n },\n },\n historical: {\n getWeatherBeforeDate({\n projectExid,\n weatherProvider = WeatherProvider.WeatherStack,\n payload,\n }: {\n projectExid: string\n weatherProvider: WeatherProvider\n payload: HistoryWeatherRequestPayload\n }): Promise<WeatherResponsePayload> | undefined {\n if (weatherProvider === WeatherProvider.WeatherStack) {\n return axios.get(\n `/projects/${projectExid}/weather?${toQueryString(payload)}`\n )\n } else if (weatherProvider === WeatherProvider.AerisWeather) {\n return axios.get(\n `${axios.env.weatherApiBaseUrl}/weatherApi/getWeatherData?projectExid=${projectExid}&day=${payload.day}`\n )\n }\n },\n },\n weather: {\n getWeatherData({\n projectExid,\n weatherProvider = WeatherProvider.WeatherStack,\n payload,\n }: {\n projectExid: string\n weatherProvider: WeatherProvider\n payload: HistoryWeatherRequestPayload\n }): Promise<{ data: WeatherDataResponse[] }> | undefined {\n if (weatherProvider === WeatherProvider.WeatherStack) {\n return axios.get(\n `/projects/${projectExid}/weather/filters?${toQueryString(payload)}`\n )\n } else if (weatherProvider === WeatherProvider.AerisWeather) {\n return axios.get(\n `${axios.env.weatherApiBaseUrl}/weatherApi/getWeatherData?projectExid=${projectExid}&day=${payload.day}`\n )\n }\n },\n },\n}\n","import { axios } from \"./client\"\nimport type {\n CameraExid,\n CopilotConversation,\n CopilotMessage,\n CopilotMessageStep,\n CountByPeriod,\n CountsParams,\n FeedbackPayload,\n GrafanaKitMetrics,\n LabsPaginationParams,\n LuminanceReading,\n MilesightCameraNetworkConfiguration,\n MilesightCameraOsdConfiguration,\n MilesightCameraSdCardInfo,\n MilesightCameraSystemSettings,\n MilesightCameraVideoConfig,\n MilesightRequestParams,\n PaginatedItems,\n SegmentsPresenceByLabel,\n} from \"@evercam/api/types\"\nimport { GrafanaMetricId, KitMetricPeriod } from \"@evercam/api/types\"\n\nexport function getLabsBaseUrl() {\n const labsPrNumber = /labs-(\\d+)/g.exec(window.location.href)?.[1]\n\n return labsPrNumber\n ? `https://${labsPrNumber}.labs.evercam.io`\n : axios.env.evercamLabsUrl\n}\n\nexport const EvercamLabsApi = {\n milesight: {\n getVideoConfig(\n { host, httpPort, username, password }: MilesightRequestParams,\n config = {}\n ): Promise<MilesightCameraVideoConfig> {\n return axios.get(`${getLabsBaseUrl()}/milesight/video`, {\n params: {\n host,\n port: httpPort,\n username,\n password,\n },\n ...config,\n })\n },\n getNetworkConfiguration(\n { host, httpPort, username, password }: MilesightRequestParams,\n config = {}\n ): Promise<MilesightCameraNetworkConfiguration> {\n return axios.get(`${getLabsBaseUrl()}/milesight/network`, {\n params: {\n host,\n port: httpPort,\n username,\n password,\n },\n ...config,\n })\n },\n getSystemSettings(\n { host, httpPort, username, password }: MilesightRequestParams,\n config = {}\n ): Promise<MilesightCameraSystemSettings> {\n return axios.get(`${getLabsBaseUrl()}/milesight/system`, {\n params: {\n host,\n port: httpPort,\n username,\n password,\n },\n ...config,\n })\n },\n getTimeSettings(\n { host, httpPort, username, password }: MilesightRequestParams,\n config = {}\n ): Promise<MilesightCameraSystemSettings> {\n return axios.get(`${getLabsBaseUrl()}/milesight/time`, {\n params: {\n host,\n port: httpPort,\n username,\n password,\n },\n ...config,\n })\n },\n getOsdConfiguration(\n { host, httpPort, username, password }: MilesightRequestParams,\n config = {}\n ): Promise<MilesightCameraOsdConfiguration> {\n return axios.get(`${getLabsBaseUrl()}/milesight/osd`, {\n params: {\n host,\n port: httpPort,\n username,\n password,\n },\n ...config,\n })\n },\n getSdCardInfo(\n { host, httpPort, username, password }: MilesightRequestParams,\n config = {}\n ): Promise<MilesightCameraSdCardInfo> {\n return axios.get(`${getLabsBaseUrl()}/milesight/storage`, {\n params: {\n host,\n port: httpPort,\n username,\n password,\n },\n ...config,\n })\n },\n },\n copilot: {\n async getAllConversations(\n params: LabsPaginationParams & {\n cameraExid?: string\n projectExid?: string\n user?: string\n }\n ): Promise<PaginatedItems<CopilotConversation>> {\n return axios.get(`${getLabsBaseUrl()}/copilot/conversations`, {\n params,\n preserveCasing: true,\n })\n },\n async getOneConversation(\n conversationId: number\n ): Promise<PaginatedItems<CopilotConversation>> {\n return axios.get(\n `${getLabsBaseUrl()}/copilot/conversations/${conversationId}`,\n {\n preserveCasing: true,\n }\n )\n },\n async getConversationMessages(\n conversationId: number,\n params: LabsPaginationParams\n ): Promise<PaginatedItems<CopilotMessage>> {\n return axios.get(\n `${getLabsBaseUrl()}/copilot/conversations/${conversationId}/messages`,\n { params, preserveCasing: true }\n )\n },\n async getMessageSteps(\n message: CopilotMessage\n ): Promise<CopilotMessageStep[]> {\n return axios.get(\n `${getLabsBaseUrl()}/copilot/conversations/${\n message.conversationId\n }/messages/${message.id}/steps`\n )\n },\n async submitMessageFeedback<T>({\n conversationId,\n messageId,\n ...params\n }: FeedbackPayload<T>) {\n return axios.post(\n `${getLabsBaseUrl()}/copilot/conversations/${conversationId}/messages/${messageId}/feedback`,\n params,\n {\n preserveCasing: true,\n }\n )\n },\n },\n detections: {\n async getSegmentsDateIntervals({\n cameraExid,\n fromDate,\n toDate,\n precision,\n }: CountsParams): Promise<SegmentsPresenceByLabel> {\n return axios.get(\n `${getLabsBaseUrl()}/cameras/${cameraExid}/segments/presence-intervals`,\n {\n params: { fromDate, toDate, precision },\n preserveCasing: true,\n }\n )\n },\n async getCranesMovement({\n cameraExid,\n fromDate,\n toDate,\n precision,\n }: CountsParams): Promise<CountByPeriod[]> {\n return axios.get(\n `${getLabsBaseUrl()}/cameras/${cameraExid}/detections/movement`,\n {\n params: { fromDate, toDate, precision },\n preserveCasing: true,\n }\n )\n },\n },\n googleCloudStorage: {\n listFiles(\n prefix: string = \"\"\n ): Promise<{ files: string[]; folders: string[] }> {\n return axios.get(\n `${getLabsBaseUrl()}/gc-storage/buckets/evercam-labs/files`,\n {\n params: {\n prefix,\n },\n preserveCasing: true,\n }\n )\n },\n getSignedUrl(fileName: string): Promise<{ url: string }> {\n return axios.get(\n `${getLabsBaseUrl()}/gc-storage/buckets/evercam-labs/files/signed-url`,\n {\n params: {\n fileName,\n },\n preserveCasing: true,\n }\n )\n },\n },\n luminance: {\n getReadings(params: {\n cameraExid: CameraExid\n fromDate: string\n toDate: string\n }): Promise<LuminanceReading[]> {\n return axios.get(\n `${getLabsBaseUrl()}/cameras/${\n params.cameraExid || \"echel-mdqur\"\n }/luminance/readings`,\n {\n params: {\n fromDate: params.fromDate,\n toDate: params.toDate,\n },\n preserveCasing: true,\n }\n )\n },\n },\n kits: {\n getMetrics(\n kitId: string,\n metrics: GrafanaMetricId[],\n period: KitMetricPeriod = KitMetricPeriod.Last1Hour\n ): Promise<GrafanaKitMetrics> {\n return axios.get(`${getLabsBaseUrl()}/kits/${kitId}/metrics`, {\n params: {\n metrics,\n from: period,\n },\n preserveCasing: true,\n })\n },\n },\n}\n","import { axios } from \"./client\"\nimport type { AxiosRequestConfig } from \"axios\"\nimport { queryStringToObject, toQueryString } from \"@evercam/api/utils\"\nimport type {\n AconexAuthCallbackParams,\n AconexEditedImageUploadRequestPayload,\n AconexUserProjectsResponsePayload,\n ActiveUsersStatsRequestPayload,\n ActiveUserStat,\n AnalyticsRequestPayload,\n ApiCredentials,\n AutodeskFolderResponsePayload,\n AutodeskProjectsResponsePayload,\n AutodeskTokenResponsePayload,\n AutodeskUploadSnapshotPayload,\n AutodeskUserHubsResponsePayload,\n AvailableDaysRequestPayload,\n AvailableDaysResponsePayload,\n AvailableHoursRequestPayload,\n AvailableHoursResponsePayload,\n BatteryReading,\n BatteryVoltage,\n BimCompareExportRequestPayload,\n BimCreationPayload,\n BIMLayer,\n BIMLayerPostPayload,\n BimLayersQueryParams,\n BimModelRequestPayload,\n BimModelResponsePayload,\n BimPendingImage,\n BimSnapshotRequestPayload,\n BimSnapshotResponsePayload,\n BimUploadCameraParameters,\n CameraExid,\n CameraLogsResponsePayload,\n CamerasResponsePayload,\n CameraStatusLog,\n CameraUpdateRequestPayload,\n CheckCameraPortPayload,\n Comment,\n CommentCreationRequestPayload,\n CommentsRequestPayload,\n Company,\n CompanyProject,\n CompanyUser,\n Compare,\n CompareRequestPayload,\n ConnectorResponsePayload,\n Credentials,\n GoogleAuthRequestPayload,\n LoginRequestPayload,\n LoginResponsePayload,\n Logo,\n LogoutParams,\n Media,\n MediaCreateRequestPayload,\n MediaFilterQueryParams,\n MediaUpdateRequestPayload,\n MediaUsersResponsePayload,\n NearestSnapshotRequestPayload,\n NearestSnapshotResponsePayload,\n PaginatedItems,\n PendingBimImagesParams,\n ProcessPendingImagesBimParams,\n ProcoreEditedImageUploadRequestPayload,\n ProcoreProjectsAlbumsPayload,\n ProcoreProjectsAlbumsRequestPayload,\n ProcoreUserCompaniesResponsePayload,\n ProcoreUserProjectRequestPayload,\n ProcoreUserProjectsResponsePayload,\n ProgressPhotosCreateUpdateRequestPayload,\n ProgressPhotosResponsePayload,\n ProgressPhotosUnSubscribeParams,\n ProjectBatteryReading,\n ProjectExid,\n ProjectLogoResponsePayload,\n ProjectPAStatsRequestPayload,\n ProjectPAStatsResponsePayload,\n ProjectResponsePayload,\n ProjectShareResponse,\n RemotePasswordUpdateRequestPayload,\n ResendShareRequestPayload,\n SessionActivitiesListRequestPayload,\n SessionActivity,\n SessionsListRequestPayload,\n Share,\n ShareCreateRequestPayload,\n ShareCreateResponsePayload,\n ShareDeletionRequestPayload,\n SharedUsersResponsePayload,\n ShareProjectCamerasRequestPayload,\n ShareRequestsResponsePayload,\n SharesResponsePayload,\n SignupUserRequestPayload,\n Snapshot,\n SnapshotRangeRequestPayload,\n SnapshotRangeResponsePayload,\n ThumbnailData,\n TimelapseCreationRequestPayload,\n TimelapseCreationResponsePayload,\n TimelapseSnapshotRequestPayload,\n TimelapseSnapshotResponsePayload,\n UpdatePasswordRequestPayload,\n UserDeleteRequestPayload,\n UserSession,\n UserUpdateRequestPayload,\n VoyageControlConnectorPayload,\n Widget,\n WidgetFull,\n WidgetPayload,\n WidgetsListRequestPayload,\n} from \"@evercam/api/types\"\n\nexport const EvercamApi = {\n apiStatus: {\n getApiStatus() {\n return axios.get(\"/status\")\n },\n },\n users: {\n signup(payload: SignupUserRequestPayload) {\n return axios.post(\"/users\", payload)\n },\n fetchAccessFeatures(email: string): Promise<{ features: string[] }> {\n return axios.get(`/users/${email}/features`)\n },\n impersonationLogin(token: string) {\n return axios.post(`/auth/impersonate/${token}`)\n },\n login(params: LoginRequestPayload): Promise<LoginResponsePayload> {\n return axios.post(\"/auth/login\", toQueryString(params))\n },\n loginWithApiCredentials(\n apiId: String,\n apiKey: String\n ): Promise<LoginResponsePayload> {\n return axios.post(`/auth/login?api_id=${apiId}&api_key=${apiKey}`)\n },\n loginWithWidgetCredentials(\n widgetId: String,\n widgetKey: String\n ): Promise<LoginResponsePayload> {\n return axios.post(\n `/auth/login?widget_id=${widgetId}&widget_key=${widgetKey}`\n )\n },\n loginWithProvider(\n provider: string,\n payload: GoogleAuthRequestPayload\n ): Promise<LoginResponsePayload> {\n return axios.post(`/auth/${provider}`, payload)\n },\n getUser(email: string): Promise<{ users: LoginResponsePayload[] }> {\n return axios.get(`/users/${email}`)\n },\n logout(\n payload: LogoutParams,\n config: Partial<AxiosRequestConfig> = {}\n ): Promise<void> {\n return axios.delete(\"/auth/logout\", { params: payload, ...config })\n },\n resetPassword(email: string): Promise<{ message: string }> {\n return axios.post(`/users/${email}/password/reset`)\n },\n getCredentials(): Promise<Credentials> {\n return axios.get(\"/auth/credentials\")\n },\n updatePassword(\n user: string,\n payload: UpdatePasswordRequestPayload\n ): Promise<{ message: string }> {\n return axios.patch(`/users/${user}/password`, payload)\n },\n remotePasswordUpdate(\n email: string,\n payload: RemotePasswordUpdateRequestPayload\n ): Promise<{ message: string }> {\n return axios.patch(`/users/${email}/password/update`, payload)\n },\n confirm(email: string, payload: any): Promise<LoginResponsePayload> {\n return axios.post(`/users/${email}/confirm`, payload)\n },\n deleteActiveSession(sessionId: string, payload: any = {}): Promise<void> {\n return axios.delete(`/users/active-sessions/${sessionId}`, {\n params: payload,\n })\n },\n getActiveSessions(\n payload: SessionsListRequestPayload\n ): Promise<PaginatedItems<UserSession>> {\n return axios.get(\"/users/active-sessions\", {\n params: payload,\n })\n },\n getSessionActivities(\n payload: SessionActivitiesListRequestPayload\n ): Promise<PaginatedItems<SessionActivity>> {\n return axios.get(\"/users/session/activities\", { params: payload })\n },\n update(\n email: string,\n params: Partial<UserUpdateRequestPayload> = {}\n ): Promise<{ users: LoginResponsePayload[] }> {\n return axios.patch(`/users/${email}`, params)\n },\n delete(email: string, params: UserDeleteRequestPayload): Promise<void> {\n return axios.post(`/users/${email}/delete`, params)\n },\n fetchPermissions(): Promise<{ permissions: string[] }> {\n return axios.get(\"/users/permissions\")\n },\n },\n notifications: {\n get() {\n return axios.get(\"/notifications\")\n },\n markAllAsRead(id: string) {\n return axios.patch(`/notifications/${id}`)\n },\n markAsRead() {\n return axios.post(\"/notifications/mark-as-read\")\n },\n },\n bim: {\n getBimSnapshot(\n cameraId: string,\n dateTime: string,\n payload: Partial<BimSnapshotRequestPayload>,\n extraParams?: AxiosRequestConfig\n ): Promise<BimSnapshotResponsePayload> {\n return axios.get(`/cameras/${cameraId}/bim/${dateTime}`, {\n params: payload,\n ...(extraParams || {}),\n })\n },\n getBimModel(\n cameraId: string,\n payload: BimModelRequestPayload,\n extraParams?: AxiosRequestConfig\n ): Promise<BimModelResponsePayload> {\n return axios.get(`/cameras/${cameraId}/bim`, {\n params: payload,\n ...(extraParams || {}),\n })\n },\n pendingBimImages(\n cameraId: string,\n params: PendingBimImagesParams\n ): Promise<BimPendingImage[]> {\n return axios.get(`/cameras/${cameraId}/bim/pending`, { params })\n },\n processPendingImages(\n cameraId: string,\n params: Partial<ProcessPendingImagesBimParams>\n ): Promise<void> {\n return axios.post(`/cameras/${cameraId}/bim/pending`, params)\n },\n createBim(cameraId: string, params: BimCreationPayload): Promise<void> {\n return axios.post(`/cameras/${cameraId}/bim`, params)\n },\n getCameraParameters(\n cameraId: string,\n params: ApiCredentials\n ): Promise<BimUploadCameraParameters> {\n return axios.get(`/cameras/${cameraId}/bim/camera-parameters`, {\n params,\n })\n },\n uploadCameraParameters(\n cameraId: string,\n params: BimUploadCameraParameters\n ): Promise<BimUploadCameraParameters> {\n return axios.post(`/cameras/${cameraId}/bim/camera-parameters`, params)\n },\n exportCompare(\n projectExid: string,\n payload: BimCompareExportRequestPayload\n ): Promise<Compare> {\n return axios.post(\n `/projects/${projectExid}/media-hub/compares/bim-compares`,\n payload\n )\n },\n },\n cameras: {\n getCameras(): Promise<CamerasResponsePayload> {\n return axios.get(\"/cameras\")\n },\n getCameraById(\n cameraId: string,\n params?: ApiCredentials\n ): Promise<CamerasResponsePayload> {\n return axios.get(`/cameras/${cameraId}?${toQueryString(params)}`)\n },\n getCameraLastPublicNote(\n cameraId: string\n ): Promise<CameraLogsResponsePayload> {\n return axios.get(`/cameras/${cameraId}/last-public-note`)\n },\n portCheck(payload: {\n params: CheckCameraPortPayload\n }): Promise<CheckCameraPortPayload & { open: boolean }> {\n return axios.get(\"/cameras/port-check\", payload)\n },\n getNvrStreamingToken({\n cameraExid,\n token,\n }: {\n cameraExid: string\n token: string\n }): Promise<string> {\n return fetch(\n `${axios.env.baseUrl}/cameras/${cameraExid}/hls?authorization=${token}`\n ).then(\n ({ url }) => queryStringToObject(url.split(\"?\")[1] || \"\").access_token\n ) as Promise<string>\n },\n getCameraStatusLogs(\n exid: string,\n params: {\n params: {\n from: string\n to: string\n }\n }\n ): Promise<CameraStatusLog[]> {\n return axios.get(`/cameras/${exid}/health`, params)\n },\n updateCamera(\n exid: string,\n params: CameraUpdateRequestPayload\n ): Promise<CamerasResponsePayload> {\n return axios.patch(`/cameras/${exid}`, params)\n },\n },\n projects: {\n index(params?: ApiCredentials): Promise<ProjectResponsePayload> {\n return axios.get(`/projects?${toQueryString(params)}`)\n },\n getLogos(projectId: string): Promise<ProjectLogoResponsePayload> {\n return axios.get(`/projects/${projectId}/logos`)\n },\n createLogo(\n projectId: string,\n formData: FormData\n ): Promise<Logo & { id: number }> {\n const headers = { \"Content-Type\": \"multipart/form-data\" }\n\n return axios.post(`/projects/${projectId}/logos`, formData, {\n headers,\n })\n },\n deleteLogo(projectId: string, id: number): Promise<void> {\n return axios.delete(`/projects/${projectId}/logos/${id}`)\n },\n updateLogo(projectId: string, id: number, name: string) {\n return axios.patch(\n `/projects/${projectId}/logos/${id}`,\n toQueryString({ name })\n )\n },\n updateThumbnail(\n projectExid: string,\n params: { cameraExid?: string; uploadedThumbnail?: string }\n ): Promise<{ message: string }> {\n if (params.uploadedThumbnail) {\n return axios.post(`/projects/${projectExid}/thumbnail`, {\n thumbnail: params.uploadedThumbnail,\n })\n }\n\n return axios.put(`/projects/${projectExid}/thumbnail`, {\n cameraExid: params.cameraExid,\n })\n },\n getThumbnailData(projectExid: string): Promise<ThumbnailData> {\n return axios.get(`/projects/${projectExid}/thumbnail?include_data=true`)\n },\n },\n timelapse: {\n getSnapshotRange(\n cameraId: string,\n payload: TimelapseSnapshotRequestPayload,\n extraParams?: AxiosRequestConfig\n ): Promise<TimelapseSnapshotResponsePayload> {\n return axios.get(`/cameras/${cameraId}/timelapses/snapshots`, {\n params: payload,\n ...(extraParams || {}),\n })\n },\n createTimelapse(\n projectExid: string,\n payload: TimelapseCreationRequestPayload\n ): Promise<TimelapseCreationResponsePayload> {\n return axios.post(\n `/projects/${projectExid}/media-hub/timelapses`,\n payload\n )\n },\n cUpdate(\n projectExid: string,\n id: string | number,\n payload: MediaUpdateRequestPayload\n ): Promise<TimelapseCreationResponsePayload> {\n return axios.patch(\n `/projects/${projectExid}/media-hub/timelapses/${id}`,\n payload\n )\n },\n cDelete(projectExid: string, id: number): Promise<void> {\n return axios.delete(`/projects/${projectExid}/media-hub/timelapses/${id}`)\n },\n },\n compares: {\n cCreate(\n projectExid: string,\n payload: CompareRequestPayload\n ): Promise<Compare> {\n return axios.post(`/projects/${projectExid}/media-hub/compares`, payload)\n },\n cShow(projectExid: string, id: string): Promise<Compare> {\n return axios.get(`/projects/${projectExid}/media-hub/compares/${id}`)\n },\n cUpdate(\n projectExid: string,\n id: string,\n payload: MediaUpdateRequestPayload\n ): Promise<Compare> {\n return axios.patch(\n `/projects/${projectExid}/media-hub/compares/${id}`,\n payload\n )\n },\n cDelete(projectExid: string, id: string): Promise<void> {\n return axios.delete(`/projects/${projectExid}/media-hub/compares/${id}`)\n },\n },\n providers: {\n getProviders(): Promise<ConnectorResponsePayload> {\n return axios.get(\"/oauth2-tokens/providers\")\n },\n },\n aconex: {\n authenticate(payload: AconexAuthCallbackParams): Promise<void> {\n return axios.get(\"/aconex/auth/callback\", {\n params: payload,\n })\n },\n getUserProjects(): Promise<AconexUserProjectsResponsePayload> {\n return axios.get(\"/aconex/projects\")\n },\n revoke(): Promise<void> {\n return axios.post(\"/aconex/auth/revoke\")\n },\n uploadEditedSnapshot(\n projectId: number,\n payload: AconexEditedImageUploadRequestPayload\n ): Promise<void> {\n return axios.post(\n `/aconex/projects/${projectId}/upload-snapshot`,\n payload\n )\n },\n getDocumentSchema(projectId: number): Promise<void> {\n return axios.get(`/aconex/projects/${projectId}/register/schema`)\n },\n },\n procore: {\n getUserCompanies(): Promise<ProcoreUserCompaniesResponsePayload> {\n return axios.get(\"/procore/companies\")\n },\n getUserProjects(\n payload: ProcoreUserProjectRequestPayload\n ): Promise<ProcoreUserProjectsResponsePayload> {\n return axios.get(\"/procore/projects\", {\n params: payload,\n })\n },\n getProjectAlbums(\n payload: ProcoreProjectsAlbumsRequestPayload\n ): Promise<ProcoreProjectsAlbumsPayload> {\n return axios.get(\"/procore/image-categories\", {\n params: payload,\n })\n },\n uploadEditedSnapshot(\n payload: ProcoreEditedImageUploadRequestPayload\n ): Promise<void> {\n return axios.post(\"/procore/upload-snapshot\", payload)\n },\n sendRevoke(): Promise<void> {\n return axios.post(\"/users/auth/procore/revoke\")\n },\n },\n autodesk: {\n sendRevoke(): Promise<void> {\n return axios.post(\"/users/auth/autodesk/revoke\")\n },\n getUserHubs(): Promise<AutodeskUserHubsResponsePayload> {\n return axios.get(\"/autodesk/hubs\")\n },\n getProjects(hubId: string): Promise<AutodeskProjectsResponsePayload> {\n return axios.get(`/autodesk/hubs/${hubId}/projects`)\n },\n getFolders(\n hubId: string,\n projectId: string\n ): Promise<Array<AutodeskFolderResponsePayload>> {\n return axios.get(`/autodesk/hubs/${hubId}/projects/${projectId}/folders`)\n },\n getSubFolders(\n projectId: string,\n parentFolderId: string,\n getDerivatives: Boolean\n ): Promise<Array<AutodeskFolderResponsePayload>> {\n return axios.get(\n `/autodesk/projects/${projectId}/folders/${parentFolderId}/subfolders`,\n {\n params: {\n getDerivatives,\n },\n }\n )\n },\n getFolder(\n projectId: string,\n folderId: string\n ): Promise<AutodeskFolderResponsePayload> {\n return axios.get(`/autodesk/projects/${projectId}/folders/${folderId}`)\n },\n uploadEditedSnapshot(\n payload: AutodeskUploadSnapshotPayload\n ): Promise<null> {\n return axios.post(\"/autodesk/upload-snapshot\", payload)\n },\n fetchViewerToken(exid: string): Promise<AutodeskTokenResponsePayload> {\n return axios.get(`/autodesk/${exid}/token/viewer`)\n },\n },\n voyageControl: {\n connect(payload: VoyageControlConnectorPayload): Promise<unknown> {\n return axios.post(\"/voyage-control/auth/connect\", payload)\n },\n sendRevoke(): Promise<null> {\n return axios.post(\"/voyage-control/auth/revoke\")\n },\n },\n recordings: {\n oldest(cameraId: string, payload?: ApiCredentials): Promise<Snapshot> {\n return axios.get(`/cameras/${cameraId}/recordings/snapshots/oldest`, {\n params: payload,\n })\n },\n latest(cameraId: string, payload?: ApiCredentials): Promise<Snapshot> {\n return axios.get(`/cameras/${cameraId}/recordings/snapshots/latest`, {\n params: payload,\n })\n },\n nearest(\n cameraId: string,\n timestamp: string,\n payload?: NearestSnapshotRequestPayload,\n extraParams?: AxiosRequestConfig\n ): Promise<NearestSnapshotResponsePayload> {\n return axios.get(\n `/cameras/${cameraId}/recordings/snapshots/${timestamp}/nearest`,\n {\n params: payload,\n ...(extraParams || {}),\n }\n )\n },\n availableDays({\n cameraId,\n year,\n month,\n payload,\n }: AvailableDaysRequestPayload): Promise<AvailableDaysResponsePayload> {\n return axios.get(\n `/cameras/${cameraId}/recordings/snapshots/${year}/${month}/days`,\n {\n params: payload,\n }\n )\n },\n availableHours({\n cameraId,\n year,\n month,\n day,\n payload,\n cancelToken,\n }: AvailableHoursRequestPayload): Promise<AvailableHoursResponsePayload> {\n return axios.get(\n `/cameras/${cameraId}/recordings/snapshots/${year}/${month}/${day}/hours`,\n {\n params: payload,\n cancelToken,\n }\n )\n },\n getSnapshot(\n cameraId: string,\n dateTime: string\n ): Promise<SnapshotRangeResponsePayload> {\n return axios.get(`/cameras/${cameraId}/recordings/snapshots/${dateTime}`)\n },\n getSnapshotRange(\n cameraId: string,\n payload: SnapshotRangeRequestPayload\n ): Promise<SnapshotRangeResponsePayload> {\n return axios.get(`/cameras/${cameraId}/recordings/snapshots`, {\n params: payload,\n })\n },\n },\n progressPhotos: {\n index(): Promise<ProgressPhotosResponsePayload> {\n return axios.get(\"/progress-photos\")\n },\n show(id: string): Promise<ProgressPhotosResponsePayload> {\n return axios.get(`/progress-photos/${id}`)\n },\n create(\n payload: ProgressPhotosCreateUpdateRequestPayload\n ): Promise<ProgressPhotosResponsePayload> {\n return axios.post(\"/progress-photos\", payload)\n },\n update(\n id: string,\n payload: ProgressPhotosCreateUpdateRequestPayload\n ): Promise<ProgressPhotosResponsePayload> {\n return axios.patch(`/progress-photos/${id}`, payload)\n },\n unsubscribe(\n progressPhotoId: string,\n params: ProgressPhotosUnSubscribeParams\n ): Promise<ProgressPhotosResponsePayload> {\n return axios.patch(\n `/progress-photos/${progressPhotoId}/unsubscribe?${toQueryString(\n params\n )}`\n )\n },\n delete(id: string, params?: ApiCredentials): Promise<void> {\n return axios.delete(`/progress-photos/${id}?${toQueryString(params)}`)\n },\n },\n mediaHub: {\n getAllMedia(\n projectExid: string,\n params: MediaFilterQueryParams\n ): Promise<PaginatedItems<Media>> {\n return axios.get(\n `projects/${projectExid}/media-hub?${toQueryString(params, {\n forceArrayBrackets: true,\n })}`\n )\n },\n getAllMediaUsers(projectExid: string): Promise<MediaUsersResponsePayload> {\n return axios.get(`/projects/${projectExid}/media-hub/users`)\n },\n cShow(projectExid: string, id: string): Promise<Media> {\n return axios.get(`/projects/${projectExid}/media-hub/${id}`)\n },\n cCreate(\n projectExid: string,\n payload: MediaCreateRequestPayload\n ): Promise<Media> {\n return axios.post(`/projects/${projectExid}/media-hub`, payload)\n },\n cUpdate(\n projectExid: number,\n id: number,\n payload: MediaUpdateRequestPayload\n ): Promise<Media> {\n return axios.patch(`/projects/${projectExid}/media-hub/${id}`, payload)\n },\n cDelete(projectExid: number, id: number): Promise<void> {\n return axios.delete(`/projects/${projectExid}/media-hub/${id}`)\n },\n },\n analytics: {\n sendAnalyticsEvent(\n params: AnalyticsRequestPayload,\n headers: object\n ): Promise<null> {\n return axios.post(\"/pa/events\", params, headers)\n },\n getPACompanyPeriodEvents(\n id: string | number,\n payload: ProjectPAStatsRequestPayload\n ): Promise<PaginatedItems<ProjectPAStatsResponsePayload>> {\n return axios.get(`/companies/${id}/stats`, { params: payload })\n },\n getPAProjectPeriodEvents(\n projectId: string,\n payload: ProjectPAStatsRequestPayload\n ): Promise<PaginatedItems<ProjectPAStatsResponsePayload>> {\n return axios.get(`/projects/${projectId}/stats`, { params: payload })\n },\n getActiveUsers(params: {\n params: ActiveUsersStatsRequestPayload\n }): Promise<ActiveUserStat> {\n return axios.get(\"/pa/active-users\", params)\n },\n },\n shares: {\n updateShareRights(\n cameraExid: CameraExid,\n payload: { email: string; rights: string }\n ): Promise<Share> {\n return axios.patch(`/cameras/${cameraExid}/shares`, payload)\n },\n updateShareRequestRights(\n cameraExid: CameraExid,\n payload: { email: string; rights: string }\n ) {\n return axios.patch(`/cameras/${cameraExid}/shares/requests`, payload)\n },\n cIndex(cameraId: string): Promise<SharesResponsePayload> {\n return axios.get(`/cameras/${cameraId}/shares`)\n },\n getShareRequest(\n cameraId: string,\n payload: { status: string }\n ): Promise<ShareRequestsResponsePayload> {\n return axios.get(`/cameras/${cameraId}/shares/requests`, {\n params: payload,\n })\n },\n deleteShare(\n cameraId: string,\n payload: { [key: string]: ShareDeletionRequestPayload }\n ): Promise<void> {\n return axios.delete(`/cameras/${cameraId}/shares`, payload)\n },\n deleteRequest(\n cameraId: string,\n payload: { [key: string]: ShareDeletionRequestPayload }\n ): Promise<void> {\n return axios.delete(`/cameras/${cameraId}/shares/requests`, payload)\n },\n deleteShareRequest(payload: {\n params: ShareDeletionRequestPayload\n }): Promise<void> {\n return axios.delete(`/share-requests/${payload.params.key}`)\n },\n getSharedUsers(cameraId: string): Promise<SharedUsersResponsePayload> {\n return axios.get(`/cameras/${cameraId}/shares/users`)\n },\n cCreate(\n cameraId: string,\n payload: ShareCreateRequestPayload\n ): Promise<ShareCreateResponsePayload> {\n return axios.post(`/cameras/${cameraId}/shares`, payload)\n },\n shareProjectCameras(\n projectExid: ProjectExid,\n payload: ShareProjectCamerasRequestPayload\n ) {\n return axios.post(`/projects/${projectExid}/shares/cameras`, payload)\n },\n getShareRequestByKey(\n key: string\n ): Promise<Pick<ShareCreateResponsePayload, \"shareRequests\">> {\n return axios.get(`/shares/requests/${key}`)\n },\n transferOwnership(\n cameraId: string,\n payload: { userId: number }\n ): Promise<void> {\n return axios.put(`/cameras/${cameraId}`, payload)\n },\n resendShareRequest(\n cameraId: string,\n data: ResendShareRequestPayload\n ): Promise<void> {\n return axios.post(`/cameras/${cameraId}/shares/requests/resend`, data)\n },\n getProjectShares(exid: string): Promise<ProjectShareResponse> {\n return axios.get(\n `/projects/${exid}/shares?include_camera_shares=true&sort=fullname|asc`\n )\n },\n },\n companies: {\n getCompanyUsers(\n companyExid: string,\n params: { params: { page: number; limit: number } }\n ): Promise<PaginatedItems<CompanyUser>> {\n return axios.get(`/companies/${companyExid}/users`, params)\n },\n getCompanyProjects(\n companyId: string,\n params: { params: { page: number; limit: number } }\n ): Promise<PaginatedItems<CompanyProject>> {\n return axios.get(`/companies/${companyId}/projects`, params)\n },\n getPACompanyDetails(\n companyId: string,\n params: Record<string, string> = {}\n ): Promise<Company> {\n return axios.get(\n `/companies/${companyId}${\"with_zoho\" in params ? \"?with_zoho\" : \"\"}`\n )\n },\n getActiveUsers(\n params: ActiveUsersStatsRequestPayload\n ): Promise<ActiveUserStat> {\n return axios.get(\"/pa/active-users\", { params })\n },\n getCompanyCameras(id: string, params: Record<string, string>) {\n return axios.get(`/companies/${id}/cameras`, params)\n },\n },\n batteries: {\n ProjectBatteryReadings(\n projectExid: string\n ): Promise<ProjectBatteryReading[]> {\n return axios.get(`/projects/${projectExid}/battery-readings`)\n },\n batteryReadings(\n cameraExid: string,\n params: { fromDate: string; toDate: string }\n ): Promise<PaginatedItems<BatteryReading>> {\n return axios.get(`/cameras/${cameraExid}/battery-readings`, {\n params: params,\n })\n },\n readingsVoltageSummary(\n cameraExid: string,\n params: { fromDate: string; toDate: string }\n ): Promise<BatteryVoltage[]> {\n return axios.get(\n `/cameras/${cameraExid}//battery-readings/voltage-summary`,\n {\n params: params,\n }\n )\n },\n },\n layers: {\n getLayer(\n cameraId: string,\n params: BimLayersQueryParams,\n extraParams: Record<string, string> = {}\n ): Promise<BIMLayer[]> {\n return axios.get(`/cameras/${cameraId}/layers`, {\n params,\n ...(extraParams || {}),\n })\n },\n getLayersById(\n cameraId: string,\n id: number,\n params: Record<string, string>\n ): Promise<BIMLayer> {\n return axios.get(`/cameras/${cameraId}/layers/${id}`, { params })\n },\n getLayers(\n cameraId: string,\n params: BimLayersQueryParams\n ): Promise<BIMLayer[]> {\n return axios.get(`/cameras/${cameraId}/layers`, { params })\n },\n createLayer(\n cameraId: string,\n params: BIMLayerPostPayload\n ): Promise<BIMLayer> {\n return axios.post(`/cameras/${cameraId}/layers`, params)\n },\n deleteLayer(\n cameraId: string,\n id: number,\n params: Record<string, unknown>\n ): Promise<void> {\n return axios.delete(`/cameras/${cameraId}/layers/${id}`, { params })\n },\n updateLayer(\n cameraId: string,\n id: number,\n params: Partial<BIMLayerPostPayload>\n ): Promise<BIMLayer> {\n return axios.put(`/cameras/${cameraId}/layers/${id}`, params)\n },\n },\n comments: {\n fetchComments(\n projectExid: string,\n params: CommentsRequestPayload\n ): Promise<PaginatedItems<Comment>> {\n return axios.get(`/projects/${projectExid}/comments`, { params })\n },\n addComment(\n projectId: string,\n params: CommentCreationRequestPayload\n ): Promise<Comment> {\n return axios.post(`/projects/${projectId}/comments`, params)\n },\n archiveOrUnarchiveComment(\n projectId: string,\n id: number,\n archive: boolean\n ): Promise<Comment> {\n return axios.patch(\n `/projects/${projectId}/comments/${id}?${toQueryString({ archive })}`\n )\n },\n deleteComment(projectId: string, id: number): Promise<void> {\n return axios.delete(`/projects/${projectId}/comments/${id}`)\n },\n },\n storyblock: {\n getStory(params: { route: string; params: string }) {\n return axios.get(\"/proxy/storyblok\", { params })\n },\n },\n mailing: {\n unsubscribe(params: { key: string }) {\n return axios.post(\"/mailing/unsubscribe\", params)\n },\n },\n widgets: {\n index(\n params: Partial<WidgetsListRequestPayload>\n ): Promise<PaginatedItems<Widget>> {\n return axios.get(`/widgets?${toQueryString(params)}`)\n },\n show(id: number): Promise<WidgetFull> {\n return axios.get(`/widgets/${id}`)\n },\n getByKeys(): Promise<WidgetFull> {\n return axios.get(\"/widgets/credentials\")\n },\n setSessionSettings(params: any): Promise<WidgetFull> {\n return axios.put(\"/widgets/session\", params)\n },\n createProjectWidget(\n projectId: string,\n payload: WidgetPayload\n ): Promise<WidgetFull> {\n return axios.post(`/projects/${projectId}/widgets`, payload)\n },\n createCameraWidget(\n cameraId: string,\n payload: WidgetPayload\n ): Promise<WidgetFull> {\n return axios.post(`/cameras/${cameraId}/widgets`, payload)\n },\n update(id: number, payload: WidgetPayload): Promise<WidgetFull> {\n return axios.put(`/widgets/${id}`, payload)\n },\n delete(id: number) {\n return axios.delete(`/widgets/${id}`)\n },\n },\n}\n","import { axios } from \"./client\"\nimport { MoveParams, ZoomParams } from \"@/types\"\n\nexport const PtzApi = {\n presets: {\n index({ cameraExid }: { cameraExid: string }) {\n return axios.get(`/cameras/${cameraExid}/ptz/presets`)\n },\n go({\n cameraExid,\n presetId,\n }: {\n cameraExid: string\n presetId: string | number\n }) {\n return axios.post(`/cameras/${cameraExid}/ptz/presets/go/${presetId}`)\n },\n home({\n cameraExid,\n isRecordingFromNvr,\n }: {\n cameraExid: string\n isRecordingFromNvr: boolean\n }) {\n if (!isRecordingFromNvr) {\n return axios.post(`/cameras/${cameraExid}/ptz/home`)\n }\n\n return axios.post(`/cameras/${cameraExid}/ptz/relative`)\n },\n create({\n cameraExid,\n presetName,\n }: {\n cameraExid: string\n presetName: string\n }) {\n return axios.post(`/cameras/${cameraExid}/ptz/presets/create`, {\n presetName,\n })\n },\n update({\n cameraExid,\n presetId,\n presetName,\n }: {\n cameraExid: string\n presetId: string | number\n presetName: string\n }) {\n // eslint-disable-next-line\n return axios.post(`/cameras/${cameraExid}/ptz/presets/${presetId}/set`, {\n presetName,\n })\n },\n delete({\n cameraExid,\n presetId,\n }: {\n cameraExid: string\n presetId: string | number\n }) {\n // eslint-disable-next-line\n return axios.delete(\n `/cameras/${cameraExid}/ptz/presets/${presetId}/remove`\n )\n },\n },\n controls: {\n move({ cameraExid, direction, useContinuous }: MoveParams) {\n if (useContinuous) {\n return axios.post(\n `/cameras/${cameraExid}/ptz/continuous/start/${direction}`\n )\n }\n\n return axios.post(`/cameras/${cameraExid}/ptz/relative?${direction}=4`)\n },\n zoom({ cameraExid, direction, isRecordingFromNvr }: ZoomParams) {\n if (!isRecordingFromNvr) {\n const zoomValue = direction === \"in\" ? 1 : -1\n\n return axios.post(\n `/cameras/${cameraExid}/ptz/relative?zoom=${zoomValue}`\n )\n }\n\n return axios.post(\n `/cameras/${cameraExid}/ptz/continuous/zoom/${direction}`,\n {\n direction,\n }\n )\n },\n stop({ cameraExid }: { cameraExid: string }) {\n return axios.post(`/cameras/${cameraExid}/ptz/continuous/stop`)\n },\n },\n}\n","import { axios } from \"./client\"\nimport type {\n _360AssetsQueryParams,\n _360AssetsRequestPayload,\n _360AssetsUploadPayload,\n BimUploadPayload,\n BimUploadsQueryParams,\n CalculateMeasuringOperationRequestPayload,\n DronesQueryParams,\n DroneUploadUpdateRequestPayload,\n FlightImagesQueryParams,\n Generate360MapRequestPayload,\n InspectionToolRequestPayload,\n MobileCaptureSnapshot,\n} from \"@evercam/api/types\"\n\nexport const IngestApi = {\n drone: {\n createUpload(projectId: string, params: { uploadedBy: string }) {\n return axios.post(\n `${axios.env.ingestApiUrl}/drone/${projectId}/upload`,\n null,\n { params }\n )\n },\n reprocessDrone(id: number, params: Record<string, unknown>) {\n return axios.post(\n `${axios.env.ingestApiUrl}/drone/${id}/reprocess`,\n null,\n { params }\n )\n },\n getDrones(params: { params: Partial<DronesQueryParams> }) {\n return axios.get(`${axios.env.ingestApiUrl}/drone/uploads/`, params)\n },\n getArchive(id: number, params: { dataType: string }) {\n return axios.get(\n `${axios.env.ingestApiUrl}/drone/uploads/archive/${id}`,\n {\n params,\n }\n )\n },\n deleteUpload(id: number) {\n return axios.delete(`${axios.env.ingestApiUrl}/drone/uploads/${id}`)\n },\n prepareForUpload(\n projectId: string,\n params: {\n uploadedBy: string\n token: string\n }\n ) {\n return axios.put(\n `${axios.env.ingestApiUrl}/drone/${projectId}/prepare-upload`,\n null,\n { params }\n )\n },\n upload(\n projectId: string,\n params: {\n uploadedBy: string\n token: string\n },\n payload: DroneUploadUpdateRequestPayload\n ) {\n return axios.put(\n `${axios.env.ingestApiUrl}/drone/${projectId}/upload`,\n payload,\n { params }\n )\n },\n verifyToken(projectId: string, params: { token: string }) {\n return axios.get(\n `${axios.env.ingestApiUrl}/drone/uploads/${projectId}/verify`,\n {\n params: { token: params.token },\n }\n )\n },\n calculateMeasuringOperation(\n projectId: string,\n params: CalculateMeasuringOperationRequestPayload\n ) {\n return axios.post(\n `${axios.env.ingestApiUrl}/drone/api/${projectId}/calculate-measuring-operation`,\n params\n )\n },\n inspectionTool(projectId: string, params: InspectionToolRequestPayload) {\n return axios.post(\n `${axios.env.ingestApiUrl}/drone/api/${projectId}/inspection-tool`,\n params\n )\n },\n isInspectionEnabled(projectId: string, params: Record<string, unknown>) {\n return axios.post(\n `${axios.env.ingestApiUrl}/drone/api/${projectId}/inspection-enabled`,\n null,\n { params }\n )\n },\n getDroneQueueSize() {\n return axios.get(`${axios.env.ingestApiUrl}/drone/queue`)\n },\n getFlightImages(projectId: string, params: FlightImagesQueryParams) {\n return axios.get(\n `${axios.env.ingestApiUrl}/drone/api/${projectId}/flight-images`,\n {\n params,\n }\n )\n },\n },\n assets360: {\n get360Assets(params: { params: Partial<_360AssetsQueryParams> }) {\n return axios.get(`${axios.env.ingestApiUrl}/360/assets/`, params)\n },\n deleteUpload(id: number) {\n return axios.delete(`${axios.env.ingestApiUrl}/360/assets/${id}`)\n },\n getArchive(id: number, params: { dateType: string }) {\n return axios.get(`${axios.env.ingestApiUrl}/360/assets/archive/${id}`, {\n params,\n })\n },\n createUpload(projectId: string, params: _360AssetsRequestPayload) {\n return axios.post(\n `${axios.env.ingestApiUrl}/360/${projectId}/upload`,\n null,\n { params }\n )\n },\n upload(\n id: number,\n params: Record<string, unknown>,\n payload: _360AssetsUploadPayload\n ) {\n return axios.put(`${axios.env.ingestApiUrl}/360/${id}/upload`, payload, {\n params,\n })\n },\n generate360map(projectId: string, params: Generate360MapRequestPayload) {\n return axios.post(\n `${axios.env.ingestApiUrl}/360/api/${projectId}/generate-360-map`,\n params\n )\n },\n get360QueueSize() {\n return axios.get(`${axios.env.ingestApiUrl}/360/queue`)\n },\n },\n bim: {\n createUpload(projectId: string, params: { uploadedBy: string }) {\n return axios.post(\n `${axios.env.ingestApiUrl}/bim/${projectId}/upload`,\n null,\n { params }\n )\n },\n getBIMs(params: { params: Partial<BimUploadsQueryParams> }) {\n return axios.get(`${axios.env.ingestApiUrl}/bim/uploads/`, params)\n },\n getArchive(id: number) {\n return axios.get(`${axios.env.ingestApiUrl}/bim/uploads/archive/${id}`)\n },\n deleteUpload(id: number) {\n return axios.delete(`${axios.env.ingestApiUrl}/bim/uploads/${id}`)\n },\n upload(\n projectId: string,\n params: {\n id: string\n name: string\n },\n payload: BimUploadPayload\n ) {\n return axios.put(\n `${axios.env.ingestApiUrl}/bim/${projectId}/upload`,\n payload,\n { params }\n )\n },\n },\n mobileCapture: {\n getProjectMobileAssets(\n params: Record<string, unknown>\n ): Promise<MobileCaptureSnapshot[]> {\n return axios.get(`${axios.env.ingestApiUrl}/mobile/assets/`, {\n params,\n })\n },\n getMobileAssetPhoto(\n assetId: string | number,\n params: Record<string, unknown>\n ) {\n return axios.get(`${axios.env.ingestApiUrl}/mobile/assets/${assetId}`, {\n params,\n })\n },\n },\n getTotalQueueSize() {\n return axios.get(`${axios.env.ingestApiUrl}/queue`)\n },\n checkFlightAvailableFeatures(\n projectId: string,\n params: Record<string, unknown>\n ) {\n return axios.get(\n `${axios.env.ingestApiUrl}/drone/api/${projectId}/flight-available-features`,\n {\n params,\n }\n )\n },\n}\n","import { axios } from \"./client\"\nimport {\n ExNvrDeviceConfig,\n ExNvrLoginResponse,\n ExNvrRecordingInterval,\n ExNvrSystemStatus,\n} from \"@evercam/api/types/\"\n\nexport const ExNvrApi = {\n users: {\n login(\n {\n apiUrl,\n username,\n password,\n }: {\n apiUrl: string\n username: string\n password: string\n },\n config: { timing?: boolean } = {}\n ): Promise<ExNvrLoginResponse> {\n return axios.post(\n `${apiUrl}/api/users/login`,\n {\n username,\n password,\n },\n config\n )\n },\n },\n devices: {\n getDevices({\n apiUrl,\n token,\n }: {\n apiUrl: string\n token: string\n }): Promise<ExNvrDeviceConfig> {\n return axios.get(`${apiUrl}/api/devices/`, {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n })\n },\n getSystemStatus(\n { apiUrl, token }: { apiUrl: string; token: string },\n config: Record<string, string> = {}\n ): Promise<ExNvrSystemStatus> {\n return axios.get(`${apiUrl}/api/system/status`, {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n ...config,\n })\n },\n getDeviceConfig(\n {\n apiUrl,\n deviceId,\n token,\n }: {\n apiUrl: string\n deviceId: string\n token: string\n },\n config: { timing?: boolean } = {}\n ): Promise<ExNvrDeviceConfig> {\n return axios.get(`${apiUrl}/api/devices/${deviceId}`, {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n ...config,\n })\n },\n getAvailableRecordings(\n {\n apiUrl,\n deviceId,\n token,\n }: {\n apiUrl: string\n deviceId: string\n token: string\n },\n config: { timing?: boolean } = {}\n ): Promise<ExNvrRecordingInterval[]> {\n return axios.get(`${apiUrl}/api/devices/${deviceId}/recordings`, {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n ...config,\n })\n },\n downloadFootage({\n apiUrl,\n deviceId,\n token,\n startDate,\n duration,\n }: {\n apiUrl: string\n deviceId: string\n token: string\n startDate: string\n duration: number\n }): Promise<Blob> {\n return axios.get(`${apiUrl}/api/devices/${deviceId}/footage`, {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n params: {\n startDate,\n duration,\n },\n responseType: \"blob\",\n })\n },\n },\n}\n","import { axios } from \"./client\"\n\nexport const AuthzApi = {\n roles: {\n async get(params: any) {\n return await axios.get(\"/admin/authz/roles\", params)\n },\n async getRoleDetails(id: number) {\n return await axios.get(`/admin/authz/roles/${id}`)\n },\n createRole(params: any) {\n return axios.post(\"/admin/authz/roles\", params)\n },\n updateRole(id: number, params: any) {\n return axios.patch(`/admin/authz/roles/${id}`, params)\n },\n deleteRole(id: number) {\n return axios.delete(`/admin/authz/roles/${id}`)\n },\n addPermission(id: number, action: string) {\n return axios.post(`/admin/authz/roles/${id}/permissions/`, { action })\n },\n deletePermission(id: number, action: string) {\n return axios.delete(`/admin/authz/roles/${id}/permissions/${action}`)\n },\n async getRoleUsers(id: number) {\n return axios.get(`/admin/authz/roles/${id}/users`)\n },\n async assignUsers(id: number, emails: Array<string>, resource_id: string) {\n return axios.post(`/admin/authz/roles/${id}/users`, {\n emails,\n resource_id,\n })\n },\n async unassignUsers(\n id: number,\n emails: Array<string>,\n resource_id: string\n ) {\n return axios.delete(`/admin/authz/roles/${id}/users`, {\n params: {\n emails,\n resource_id,\n },\n })\n },\n getUserRoles() {\n return axios.get(\"/users/roles\")\n },\n },\n scopes: {\n async get() {\n return await axios.get(\"/admin/authz/scopes\")\n },\n create(params: any) {\n return axios.post(\"/admin/authz/scopes\", params)\n },\n delete(id: number) {\n return axios.delete(`/admin/authz/scopes/${id}`)\n },\n update(id: number, params: any) {\n return axios.patch(`/admin/authz/scopes/${id}`, params)\n },\n },\n}\n"],"names":["_360UrlParams","_360AssetType","_360IntergrationType","AconexDocumentDataType","AconexFormComponentType","AconexMandatoryStatus","AnalyticsEventPageId","AnalyticsEvent","AnprDirection","AnprEventStatus","MediaType","MediaFileType","MediaStatus","MediaStatusId","ClipsCategory","BimModelType","BimUploadStatus","BIMLayerTypes","CameraStatus","CameraFeatureFlag","NvrModel","CameraModel","ResolutionDimensions","ResolutionLabel","HddStatus","DuplicatedCameraFields","CompareStatus","CopilotMessageAuthor","CopilotMessageType","CopilotStepId","CopilotMissingFieldsLabels","CopilotSocketEvent","CopilotProvider","CopilotSuggestion","CopilotChatProvider","CopilotLayout","CopilotToolId","CopilotMissingFieldComponent","CopilotMissingFieldName","CopilotMissingFieldType","MilesightCameraCodecId","MilesightCameraVbrQualityId","MilesightCameraRateModeId","DroneUrlParams","ErrorType","EvercamApiErrorCode","GateReportDetectionType","GateReportEventType","DetectionLabel","SegmentLabel","GateReportVehicleType","GateReportDataSource","GateReportEventDirection","GateReportExportType","GateReportROIShapeType","GateReportProcessingStatus","VEHICLE_TYPE_IDS","HddFormat","HddType","HddState","WarehouseLocationIndex","WarehouseLocation","HddSize","IngestProcessingStatus","MapType","Connector","NotificationType","NvrDeviceType","NvrHddStatus","ProgressPhotoDialogType","ProjectStatus","ProjectArchiveTier","ProjectFeatureFlag","BrainTool","CloudRecordingFrequency","CloudRecordingDuration","CloudRecordingStatus","SnapshotExtractionInterval","VpnServer","RoiType","RoiShapeType","RoiDirection","UrlParamValue","TimelineUrlParam","Timeline360UrlParams","TimelineDroneUrlParams","TimelineMediaUrlParams","TimelineBimUrlParams","TimelineExNvrRecordingsUrlParams","TimelineAnprUrlParams","TimelineMobileCaptureUrlParams","TimelineCommentsUrlParams","PowerType","PowerSchedule","RouterStatus","SharePermission","ShareType","ShareRequestStatus","ShareVisibility","SmsCommands","SmsStatuses","EMapTypes","EMarkers","EPageType","EPaths","EProjectItems","ERoles","ExNvrHealthCheckTaskId","ExNvrFootageAvailableStatus","ExNvrDeviceState","ExNvrMetricId","TimelapseStatus","TimelapseDuration","TimelapseScheduleType","TimelapsePeriod","TimelapseExportStep","UserFeatureFlag","Persona","VideoWallItemType","WeatherProvider","UnitSystem","MobileDevice","_3dViewer","SsoProvider","InfoPage","EvercamGoFeatures","DownloadTypes","FeedbackContext","TimelinePrecision","TaskStatus","PtzDirection","ZoomDirection","KitStatus","KitAlarm","KitMetricId","KitMetricPeriod","GrafanaMetricId","KitChartType","AuditLogActionType","SnapshotExtractionStatus","SnapshotExtractionType","SiteAnalyticsMode","SmartSearchQueryComponentType","SmartSearchCondition","SmartSearchQueryTargets","SmartSearchQueryReturnType","SmartSearchOperatorType","SmartSearchQueryOperators","SmartSearchQueryConditionTypes","DelayUnit","CommonWidgetSettingsKeys","RecordingsWidgetSettingsKeys","LiveViewWidgetSettingsKeys","BimCompareWidgetSettingsKeys","VideoWallWidgetSettingsKeys","WidgetType","RessourceByType","CountryId","CountryCode","Region","CameraRegion","AutomationProvider","createErrorClass","errorName","error","e","BadRequestError","NotFoundError","UnauthorizedError","GatewayTimeoutError","BadGatewayError","ForbiddenError","HlsError","SnapshotError","ConflictError","InternalServerError","numberOfRequestsSentInThePastSecond","maxRequestsPerSecond","requestsRateLimit","r","onRequest","request","axiosEnv","ensureBaseUrl","addAuthTokenHeader","transformCamelCaseToSnakeCase","onResponse","response","_a","data","_b","humps","_c","_e","_d","duration","onError","statusCode","method","url","backendErrorCode","_g","_f","customError","customMessage","Axios","breadcrumbLogger","JwtToken","paramsIgnoredCasing","params","acc","item","formData","key","value","OnRequestExpiredTokenInterceptor","isTokenExpired","handler","axios","requestInterceptors","responseInterceptors","errorInterceptors","vars","requestInterceptor","errorInterceptor","interceptor","responseInterceptor","setHeader","headerName","setToken","token","cancelTokens","t","AdminApi","cameraId","device","payload","exid","id","template","extractionId","projectExid","kitId","metric","fromDate","toDate","hddId","footageId","cameraExid","ids","simId","number","email","VideoWallApi","projectId","encodedEmail","headers","preset","presetName","_3dFirebaseApi","res","toQueryString","paramsObject","forceSnakeCase","forceArrayBrackets","param","index","encodedParam","_acc","v","i","paramName","queryStringToObject","queryString","getAiApiUrl","AiApi","updatedBy","anprEventId","eventBody","anprEventsIds","action","extraParams","eventId","eventType","eventTime","timestamp","roi","iouThreshold","query","WebRtcApi","tag","WeatherApi","weatherProvider","getLabsBaseUrl","labsPrNumber","EvercamLabsApi","host","httpPort","username","password","config","conversationId","message","messageId","precision","prefix","fileName","metrics","period","EvercamApi","apiId","apiKey","widgetId","widgetKey","provider","user","sessionId","dateTime","name","hubId","parentFolderId","getDerivatives","folderId","year","month","day","cancelToken","progressPhotoId","companyExid","companyId","archive","PtzApi","presetId","isRecordingFromNvr","direction","useContinuous","zoomValue","IngestApi","assetId","ExNvrApi","apiUrl","deviceId","startDate","AuthzApi","emails","resource_id"],"mappings":"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"}