@adventurelabs/scout-core 1.5.5 → 2.0.1
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.
- package/README.md +47 -0
- package/dist/api_keys/actions.d.ts +0 -1
- package/dist/api_keys/actions.js +0 -14
- package/dist/client/index.d.ts +76 -0
- package/dist/client/index.js +83 -0
- package/dist/constants/index.d.ts +1 -0
- package/dist/constants/index.js +1 -0
- package/dist/helpers/analysis_usage/jobs_server.d.ts +25 -0
- package/dist/helpers/analysis_usage/jobs_server.js +10 -0
- package/dist/helpers/analysis_usage/tasks_server.d.ts +63 -0
- package/dist/helpers/analysis_usage/tasks_server.js +14 -0
- package/dist/helpers/artifacts.d.ts +0 -1
- package/dist/helpers/artifacts.js +10 -147
- package/dist/helpers/artifacts.queries.d.ts +26 -0
- package/dist/helpers/{artifacts.internal.js → artifacts.queries.js} +24 -41
- package/dist/helpers/auth.d.ts +1 -1
- package/dist/helpers/auth.js +2 -3
- package/dist/helpers/auth_server.d.ts +2 -0
- package/dist/helpers/auth_server.js +10 -0
- package/dist/helpers/certificates_server.d.ts +101 -0
- package/dist/helpers/certificates_server.js +42 -0
- package/dist/helpers/chat.d.ts +1 -2
- package/dist/helpers/chat.js +3 -38
- package/dist/helpers/chat.queries.d.ts +13 -0
- package/dist/helpers/chat.queries.js +39 -0
- package/dist/helpers/client_abilities_jwt_keys.js +0 -1
- package/dist/helpers/client_abilities_token_server.d.ts +1 -0
- package/dist/helpers/client_abilities_token_server.js +5 -2
- package/dist/helpers/compliance.d.ts +26 -0
- package/dist/helpers/compliance.js +74 -0
- package/dist/helpers/compliance.queries.d.ts +28 -0
- package/dist/helpers/compliance.queries.js +167 -0
- package/dist/helpers/connectivity.d.ts +1 -5
- package/dist/helpers/connectivity.js +7 -140
- package/dist/helpers/connectivity.queries.d.ts +18 -0
- package/dist/helpers/connectivity.queries.js +121 -0
- package/dist/helpers/contacts_server.d.ts +75 -0
- package/dist/helpers/contacts_server.js +18 -0
- package/dist/helpers/deviceTransfer.js +2 -11
- package/dist/helpers/deviceTransfer.queries.d.ts +4 -0
- package/dist/helpers/deviceTransfer.queries.js +11 -0
- package/dist/helpers/devices.js +4 -61
- package/dist/helpers/devices.queries.d.ts +4 -1
- package/dist/helpers/devices.queries.js +52 -0
- package/dist/helpers/document_templates.js +6 -52
- package/dist/helpers/document_templates.queries.d.ts +9 -0
- package/dist/helpers/document_templates.queries.js +56 -0
- package/dist/helpers/documents_server.d.ts +226 -0
- package/dist/helpers/documents_server.js +38 -0
- package/dist/helpers/email.d.ts +0 -6
- package/dist/helpers/email.js +1 -19
- package/dist/helpers/embeddings.d.ts +0 -5
- package/dist/helpers/embeddings.js +2 -19
- package/dist/helpers/embeddings.queries.d.ts +7 -0
- package/dist/helpers/{embeddings.internal.js → embeddings.queries.js} +2 -2
- package/dist/helpers/eventUtils.d.ts +3 -12
- package/dist/helpers/eventUtils.js +0 -10
- package/dist/helpers/events.d.ts +0 -1
- package/dist/helpers/events.js +7 -107
- package/dist/helpers/events.queries.d.ts +17 -0
- package/dist/helpers/{events.internal.js → events.queries.js} +24 -15
- package/dist/helpers/health_metrics.js +3 -38
- package/dist/helpers/health_metrics.queries.d.ts +12 -0
- package/dist/helpers/health_metrics.queries.js +39 -0
- package/dist/helpers/heartbeats.js +4 -83
- package/dist/helpers/heartbeats.queries.d.ts +11 -0
- package/dist/helpers/heartbeats.queries.js +76 -0
- package/dist/helpers/herd_allowed_domains.js +2 -12
- package/dist/helpers/{herd_allowed_domains_internal.d.ts → herd_allowed_domains.queries.d.ts} +1 -1
- package/dist/helpers/{herd_allowed_domains_internal.js → herd_allowed_domains.queries.js} +2 -2
- package/dist/helpers/herd_credentials_server.d.ts +76 -0
- package/dist/helpers/herd_credentials_server.js +22 -0
- package/dist/helpers/herd_modules.queries.js +10 -7
- package/dist/helpers/herd_roles.js +13 -148
- package/dist/helpers/herd_roles.queries.d.ts +18 -0
- package/dist/helpers/{herd_roles_internal.js → herd_roles.queries.js} +28 -28
- package/dist/helpers/herds.js +5 -47
- package/dist/helpers/herds.queries.d.ts +8 -1
- package/dist/helpers/herds.queries.js +48 -0
- package/dist/helpers/invitations.js +7 -58
- package/dist/helpers/invitations.queries.d.ts +10 -0
- package/dist/helpers/{invitations_internal.js → invitations.queries.js} +12 -12
- package/dist/helpers/issuers.js +6 -52
- package/dist/helpers/issuers.queries.d.ts +9 -0
- package/dist/helpers/issuers.queries.js +53 -0
- package/dist/helpers/layers.js +2 -20
- package/dist/helpers/layers.queries.d.ts +2 -1
- package/dist/helpers/layers.queries.js +9 -13
- package/dist/helpers/lifecycle_server.d.ts +178 -0
- package/dist/helpers/lifecycle_server.js +38 -0
- package/dist/helpers/localizations.js +5 -42
- package/dist/helpers/localizations.queries.d.ts +8 -0
- package/dist/helpers/localizations.queries.js +45 -0
- package/dist/helpers/maintenance_requests_server.d.ts +124 -0
- package/dist/helpers/maintenance_requests_server.js +34 -0
- package/dist/helpers/manufacturers.js +5 -43
- package/dist/helpers/manufacturers.queries.d.ts +10 -0
- package/dist/helpers/manufacturers.queries.js +46 -0
- package/dist/helpers/media_urls.d.ts +13 -0
- package/dist/helpers/media_urls.js +21 -0
- package/dist/helpers/models.js +8 -80
- package/dist/helpers/models.queries.d.ts +13 -0
- package/dist/helpers/models.queries.js +79 -0
- package/dist/helpers/observations_server.d.ts +51 -0
- package/dist/helpers/observations_server.js +22 -0
- package/dist/helpers/operating_contexts.js +39 -154
- package/dist/helpers/operating_contexts.queries.d.ts +48 -0
- package/dist/helpers/operating_contexts.queries.js +223 -0
- package/dist/helpers/operators.js +4 -57
- package/dist/helpers/operators.queries.d.ts +7 -0
- package/dist/helpers/operators.queries.js +55 -0
- package/dist/helpers/parts.d.ts +0 -87
- package/dist/helpers/parts.js +1 -89
- package/dist/helpers/parts_server.d.ts +260 -0
- package/dist/helpers/parts_server.js +71 -0
- package/dist/helpers/pins_server.d.ts +118 -0
- package/dist/helpers/pins_server.js +38 -0
- package/dist/helpers/plans.js +4 -56
- package/dist/helpers/plans.queries.d.ts +4 -1
- package/dist/helpers/plans.queries.js +39 -12
- package/dist/helpers/points_for_user_server.d.ts +9 -0
- package/dist/helpers/points_for_user_server.js +14 -0
- package/dist/helpers/product_compatibilities.js +6 -78
- package/dist/helpers/product_compatibilities.queries.d.ts +9 -0
- package/dist/helpers/product_compatibilities.queries.js +83 -0
- package/dist/helpers/product_numbers.js +6 -55
- package/dist/helpers/product_numbers.queries.d.ts +9 -0
- package/dist/helpers/product_numbers.queries.js +58 -0
- package/dist/helpers/products.js +6 -54
- package/dist/helpers/products.queries.d.ts +11 -0
- package/dist/helpers/products.queries.js +58 -0
- package/dist/helpers/providers.js +5 -71
- package/dist/helpers/providers.queries.d.ts +5 -1
- package/dist/helpers/providers.queries.js +52 -11
- package/dist/helpers/pubsub_token_server.d.ts +1 -0
- package/dist/helpers/pubsub_token_server.js +5 -2
- package/dist/helpers/segmentations_sam3.js +5 -78
- package/dist/helpers/segmentations_sam3.queries.d.ts +16 -0
- package/dist/helpers/segmentations_sam3.queries.js +81 -0
- package/dist/helpers/sensor_poses_server.d.ts +98 -0
- package/dist/helpers/sensor_poses_server.js +26 -0
- package/dist/helpers/session_incidents_server.d.ts +106 -0
- package/dist/helpers/session_incidents_server.js +22 -0
- package/dist/helpers/session_summaries.d.ts +2 -0
- package/dist/helpers/session_summaries.js +7 -23
- package/dist/helpers/session_summaries.queries.d.ts +6 -3
- package/dist/helpers/session_summaries.queries.js +27 -0
- package/dist/helpers/sessions.js +8 -122
- package/dist/helpers/sessions.queries.d.ts +14 -2
- package/dist/helpers/sessions.queries.js +88 -1
- package/dist/helpers/storage.js +0 -1
- package/dist/helpers/supabase_auth.d.ts +6 -0
- package/dist/helpers/supabase_auth.js +37 -0
- package/dist/helpers/tags.d.ts +0 -1
- package/dist/helpers/tags.js +13 -559
- package/dist/helpers/tags.queries.d.ts +33 -0
- package/dist/helpers/tags.queries.js +454 -0
- package/dist/helpers/user_credentials_server.d.ts +76 -0
- package/dist/helpers/user_credentials_server.js +22 -0
- package/dist/helpers/users.d.ts +2 -2
- package/dist/helpers/users.js +8 -107
- package/dist/helpers/users.queries.d.ts +9 -1
- package/dist/helpers/users.queries.js +107 -0
- package/dist/helpers/versions_software.d.ts +3 -1
- package/dist/helpers/versions_software.js +24 -0
- package/dist/helpers/versions_software_server.d.ts +83 -4
- package/dist/helpers/versions_software_server.js +23 -50
- package/dist/helpers/zones.d.ts +1 -16
- package/dist/helpers/zones.js +4 -104
- package/dist/helpers/zones.queries.d.ts +6 -0
- package/dist/helpers/zones.queries.js +78 -0
- package/dist/hooks/useAuthorizedRealtimeTopics.js +8 -2
- package/dist/hooks/useInfiniteQuery.js +18 -14
- package/dist/hooks/useScoutRealtimeBroadcast.js +8 -6
- package/dist/hooks/useScoutRealtimeDocuments.js +3 -2
- package/dist/hooks/useScoutRefresh.d.ts +9 -25
- package/dist/hooks/useScoutRefresh.js +33 -213
- package/dist/providers/ScoutRefreshProvider.d.ts +1 -1
- package/dist/providers/ScoutRefreshProvider.js +56 -13
- package/dist/server/index.d.ts +78 -0
- package/dist/server/index.js +80 -0
- package/dist/server/middleware.d.ts +2 -0
- package/dist/server/middleware.js +2 -0
- package/dist/server/supabase.d.ts +2 -0
- package/dist/server/supabase.js +2 -0
- package/dist/store/api.d.ts +40 -40
- package/dist/store/api.js +38 -109
- package/dist/store/configureStore.d.ts +0 -55
- package/dist/store/configureStore.js +1 -8
- package/dist/store/hooks.js +1 -0
- package/dist/supabase/client.d.ts +3 -0
- package/dist/supabase/client.js +10 -0
- package/dist/supabase/middleware.d.ts +1 -0
- package/dist/supabase/middleware.js +6 -20
- package/dist/supabase/server.d.ts +7 -2
- package/dist/supabase/server.js +13 -1
- package/dist/types/db.d.ts +47 -3
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.js +5 -0
- package/dist/types/supabase.d.ts +512 -0
- package/package.json +53 -4
- package/dist/api_keys/index.d.ts +0 -1
- package/dist/api_keys/index.js +0 -1
- package/dist/helpers/artifacts.internal.d.ts +0 -22
- package/dist/helpers/client_abilities_jwt_keys_internal.d.ts +0 -9
- package/dist/helpers/client_abilities_jwt_keys_internal.js +0 -20
- package/dist/helpers/connectivity.internal.d.ts +0 -10
- package/dist/helpers/connectivity.internal.js +0 -47
- package/dist/helpers/credentials.d.ts +0 -9
- package/dist/helpers/credentials.js +0 -92
- package/dist/helpers/embeddings.internal.d.ts +0 -5
- package/dist/helpers/events.internal.d.ts +0 -13
- package/dist/helpers/herd_roles_internal.d.ts +0 -18
- package/dist/helpers/index.d.ts +0 -56
- package/dist/helpers/index.js +0 -56
- package/dist/helpers/invitations_internal.d.ts +0 -10
- package/dist/helpers/versions_software_internal.d.ts +0 -6
- package/dist/helpers/versions_software_internal.js +0 -53
- package/dist/hooks/useDeviceDisplayName.d.ts +0 -8
- package/dist/hooks/useDeviceDisplayName.js +0 -49
- package/dist/index.d.ts +0 -108
- package/dist/index.js +0 -114
- package/dist/supabase/index.d.ts +0 -2
- package/dist/supabase/index.js +0 -2
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { SensorPoseInsert, SensorPoseUpdate } from "../types/db";
|
|
2
|
+
import { get_sensor_poses_by_part_id } from "./sensor_poses";
|
|
3
|
+
export declare function server_get_sensor_poses_by_part_id(part_id: number, options?: Parameters<typeof get_sensor_poses_by_part_id>[2]): Promise<import("../types").IWebResponseCompatible<{
|
|
4
|
+
active_processing_modality: string | null;
|
|
5
|
+
active_recording_modality: string | null;
|
|
6
|
+
id: number;
|
|
7
|
+
inserted_at: string;
|
|
8
|
+
origin_heading: number | null;
|
|
9
|
+
origin_height: number | null;
|
|
10
|
+
origin_location: unknown;
|
|
11
|
+
origin_pitch: number | null;
|
|
12
|
+
origin_roll: number | null;
|
|
13
|
+
part_id: number;
|
|
14
|
+
sensor_pitch: number | null;
|
|
15
|
+
sensor_roll: number | null;
|
|
16
|
+
sensor_yaw: number | null;
|
|
17
|
+
timestamp_observation: string;
|
|
18
|
+
}[]>>;
|
|
19
|
+
export declare function server_get_sensor_pose_by_id(sensor_pose_id: number): Promise<import("../types").IWebResponseCompatible<{
|
|
20
|
+
active_processing_modality: string | null;
|
|
21
|
+
active_recording_modality: string | null;
|
|
22
|
+
id: number;
|
|
23
|
+
inserted_at: string;
|
|
24
|
+
origin_heading: number | null;
|
|
25
|
+
origin_height: number | null;
|
|
26
|
+
origin_location: unknown;
|
|
27
|
+
origin_pitch: number | null;
|
|
28
|
+
origin_roll: number | null;
|
|
29
|
+
part_id: number;
|
|
30
|
+
sensor_pitch: number | null;
|
|
31
|
+
sensor_roll: number | null;
|
|
32
|
+
sensor_yaw: number | null;
|
|
33
|
+
timestamp_observation: string;
|
|
34
|
+
} | null>>;
|
|
35
|
+
export declare function server_create_sensor_pose(row: SensorPoseInsert): Promise<import("../types").IWebResponseCompatible<{
|
|
36
|
+
active_processing_modality: string | null;
|
|
37
|
+
active_recording_modality: string | null;
|
|
38
|
+
id: number;
|
|
39
|
+
inserted_at: string;
|
|
40
|
+
origin_heading: number | null;
|
|
41
|
+
origin_height: number | null;
|
|
42
|
+
origin_location: unknown;
|
|
43
|
+
origin_pitch: number | null;
|
|
44
|
+
origin_roll: number | null;
|
|
45
|
+
part_id: number;
|
|
46
|
+
sensor_pitch: number | null;
|
|
47
|
+
sensor_roll: number | null;
|
|
48
|
+
sensor_yaw: number | null;
|
|
49
|
+
timestamp_observation: string;
|
|
50
|
+
} | null>>;
|
|
51
|
+
export declare function server_create_sensor_poses(rows: SensorPoseInsert[]): Promise<import("../types").IWebResponseCompatible<{
|
|
52
|
+
active_processing_modality: string | null;
|
|
53
|
+
active_recording_modality: string | null;
|
|
54
|
+
id: number;
|
|
55
|
+
inserted_at: string;
|
|
56
|
+
origin_heading: number | null;
|
|
57
|
+
origin_height: number | null;
|
|
58
|
+
origin_location: unknown;
|
|
59
|
+
origin_pitch: number | null;
|
|
60
|
+
origin_roll: number | null;
|
|
61
|
+
part_id: number;
|
|
62
|
+
sensor_pitch: number | null;
|
|
63
|
+
sensor_roll: number | null;
|
|
64
|
+
sensor_yaw: number | null;
|
|
65
|
+
timestamp_observation: string;
|
|
66
|
+
}[]>>;
|
|
67
|
+
export declare function server_update_sensor_pose(sensor_pose_id: number, patch: SensorPoseUpdate): Promise<import("../types").IWebResponseCompatible<{
|
|
68
|
+
active_processing_modality: string | null;
|
|
69
|
+
active_recording_modality: string | null;
|
|
70
|
+
id: number;
|
|
71
|
+
inserted_at: string;
|
|
72
|
+
origin_heading: number | null;
|
|
73
|
+
origin_height: number | null;
|
|
74
|
+
origin_location: unknown;
|
|
75
|
+
origin_pitch: number | null;
|
|
76
|
+
origin_roll: number | null;
|
|
77
|
+
part_id: number;
|
|
78
|
+
sensor_pitch: number | null;
|
|
79
|
+
sensor_roll: number | null;
|
|
80
|
+
sensor_yaw: number | null;
|
|
81
|
+
timestamp_observation: string;
|
|
82
|
+
} | null>>;
|
|
83
|
+
export declare function server_delete_sensor_pose(sensor_pose_id: number): Promise<import("../types").IWebResponseCompatible<{
|
|
84
|
+
active_processing_modality: string | null;
|
|
85
|
+
active_recording_modality: string | null;
|
|
86
|
+
id: number;
|
|
87
|
+
inserted_at: string;
|
|
88
|
+
origin_heading: number | null;
|
|
89
|
+
origin_height: number | null;
|
|
90
|
+
origin_location: unknown;
|
|
91
|
+
origin_pitch: number | null;
|
|
92
|
+
origin_roll: number | null;
|
|
93
|
+
part_id: number;
|
|
94
|
+
sensor_pitch: number | null;
|
|
95
|
+
sensor_roll: number | null;
|
|
96
|
+
sensor_yaw: number | null;
|
|
97
|
+
timestamp_observation: string;
|
|
98
|
+
} | null>>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { newServerClient } from "../supabase/server";
|
|
2
|
+
import { create_sensor_pose, create_sensor_poses, delete_sensor_pose, get_sensor_pose_by_id, get_sensor_poses_by_part_id, update_sensor_pose, } from "./sensor_poses";
|
|
3
|
+
export async function server_get_sensor_poses_by_part_id(part_id, options) {
|
|
4
|
+
const client = await newServerClient();
|
|
5
|
+
return get_sensor_poses_by_part_id(client, part_id, options);
|
|
6
|
+
}
|
|
7
|
+
export async function server_get_sensor_pose_by_id(sensor_pose_id) {
|
|
8
|
+
const client = await newServerClient();
|
|
9
|
+
return get_sensor_pose_by_id(client, sensor_pose_id);
|
|
10
|
+
}
|
|
11
|
+
export async function server_create_sensor_pose(row) {
|
|
12
|
+
const client = await newServerClient();
|
|
13
|
+
return create_sensor_pose(client, row);
|
|
14
|
+
}
|
|
15
|
+
export async function server_create_sensor_poses(rows) {
|
|
16
|
+
const client = await newServerClient();
|
|
17
|
+
return create_sensor_poses(client, rows);
|
|
18
|
+
}
|
|
19
|
+
export async function server_update_sensor_pose(sensor_pose_id, patch) {
|
|
20
|
+
const client = await newServerClient();
|
|
21
|
+
return update_sensor_pose(client, sensor_pose_id, patch);
|
|
22
|
+
}
|
|
23
|
+
export async function server_delete_sensor_pose(sensor_pose_id) {
|
|
24
|
+
const client = await newServerClient();
|
|
25
|
+
return delete_sensor_pose(client, sensor_pose_id);
|
|
26
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { SessionIncidentInsert, SessionIncidentUpdate } from "../types/db";
|
|
2
|
+
export declare function server_get_session_incidents_by_session_id(session_id: number): Promise<import("../types").IWebResponseCompatible<{
|
|
3
|
+
additional_details: import("../types").Json | null;
|
|
4
|
+
additional_details_version: number | null;
|
|
5
|
+
created_at: string;
|
|
6
|
+
created_by: string | null;
|
|
7
|
+
description: string | null;
|
|
8
|
+
device_altitude: number | null;
|
|
9
|
+
device_battery_percentage: number | null;
|
|
10
|
+
device_battery_time_remaining: string | null;
|
|
11
|
+
device_battery_volts: number | null;
|
|
12
|
+
device_location: unknown;
|
|
13
|
+
device_mode: string | null;
|
|
14
|
+
device_speed: number | null;
|
|
15
|
+
id: number;
|
|
16
|
+
incident_type: import("../types").Database["public"]["Enums"]["session_incident_type"] | null;
|
|
17
|
+
operator: string | null;
|
|
18
|
+
photo: string | null;
|
|
19
|
+
session_id: number;
|
|
20
|
+
updated_at: string;
|
|
21
|
+
updated_by: string | null;
|
|
22
|
+
}[]>>;
|
|
23
|
+
export declare function server_get_session_incident_by_id(incident_id: number): Promise<import("../types").IWebResponseCompatible<{
|
|
24
|
+
additional_details: import("../types").Json | null;
|
|
25
|
+
additional_details_version: number | null;
|
|
26
|
+
created_at: string;
|
|
27
|
+
created_by: string | null;
|
|
28
|
+
description: string | null;
|
|
29
|
+
device_altitude: number | null;
|
|
30
|
+
device_battery_percentage: number | null;
|
|
31
|
+
device_battery_time_remaining: string | null;
|
|
32
|
+
device_battery_volts: number | null;
|
|
33
|
+
device_location: unknown;
|
|
34
|
+
device_mode: string | null;
|
|
35
|
+
device_speed: number | null;
|
|
36
|
+
id: number;
|
|
37
|
+
incident_type: import("../types").Database["public"]["Enums"]["session_incident_type"] | null;
|
|
38
|
+
operator: string | null;
|
|
39
|
+
photo: string | null;
|
|
40
|
+
session_id: number;
|
|
41
|
+
updated_at: string;
|
|
42
|
+
updated_by: string | null;
|
|
43
|
+
} | null>>;
|
|
44
|
+
export declare function server_create_session_incident(row: SessionIncidentInsert): Promise<import("../types").IWebResponseCompatible<{
|
|
45
|
+
additional_details: import("../types").Json | null;
|
|
46
|
+
additional_details_version: number | null;
|
|
47
|
+
created_at: string;
|
|
48
|
+
created_by: string | null;
|
|
49
|
+
description: string | null;
|
|
50
|
+
device_altitude: number | null;
|
|
51
|
+
device_battery_percentage: number | null;
|
|
52
|
+
device_battery_time_remaining: string | null;
|
|
53
|
+
device_battery_volts: number | null;
|
|
54
|
+
device_location: unknown;
|
|
55
|
+
device_mode: string | null;
|
|
56
|
+
device_speed: number | null;
|
|
57
|
+
id: number;
|
|
58
|
+
incident_type: import("../types").Database["public"]["Enums"]["session_incident_type"] | null;
|
|
59
|
+
operator: string | null;
|
|
60
|
+
photo: string | null;
|
|
61
|
+
session_id: number;
|
|
62
|
+
updated_at: string;
|
|
63
|
+
updated_by: string | null;
|
|
64
|
+
} | null>>;
|
|
65
|
+
export declare function server_update_session_incident(incident_id: number, patch: SessionIncidentUpdate): Promise<import("../types").IWebResponseCompatible<{
|
|
66
|
+
additional_details: import("../types").Json | null;
|
|
67
|
+
additional_details_version: number | null;
|
|
68
|
+
created_at: string;
|
|
69
|
+
created_by: string | null;
|
|
70
|
+
description: string | null;
|
|
71
|
+
device_altitude: number | null;
|
|
72
|
+
device_battery_percentage: number | null;
|
|
73
|
+
device_battery_time_remaining: string | null;
|
|
74
|
+
device_battery_volts: number | null;
|
|
75
|
+
device_location: unknown;
|
|
76
|
+
device_mode: string | null;
|
|
77
|
+
device_speed: number | null;
|
|
78
|
+
id: number;
|
|
79
|
+
incident_type: import("../types").Database["public"]["Enums"]["session_incident_type"] | null;
|
|
80
|
+
operator: string | null;
|
|
81
|
+
photo: string | null;
|
|
82
|
+
session_id: number;
|
|
83
|
+
updated_at: string;
|
|
84
|
+
updated_by: string | null;
|
|
85
|
+
} | null>>;
|
|
86
|
+
export declare function server_delete_session_incident(incident_id: number): Promise<import("../types").IWebResponseCompatible<{
|
|
87
|
+
additional_details: import("../types").Json | null;
|
|
88
|
+
additional_details_version: number | null;
|
|
89
|
+
created_at: string;
|
|
90
|
+
created_by: string | null;
|
|
91
|
+
description: string | null;
|
|
92
|
+
device_altitude: number | null;
|
|
93
|
+
device_battery_percentage: number | null;
|
|
94
|
+
device_battery_time_remaining: string | null;
|
|
95
|
+
device_battery_volts: number | null;
|
|
96
|
+
device_location: unknown;
|
|
97
|
+
device_mode: string | null;
|
|
98
|
+
device_speed: number | null;
|
|
99
|
+
id: number;
|
|
100
|
+
incident_type: import("../types").Database["public"]["Enums"]["session_incident_type"] | null;
|
|
101
|
+
operator: string | null;
|
|
102
|
+
photo: string | null;
|
|
103
|
+
session_id: number;
|
|
104
|
+
updated_at: string;
|
|
105
|
+
updated_by: string | null;
|
|
106
|
+
} | null>>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { newServerClient } from "../supabase/server";
|
|
2
|
+
import { create_session_incident, delete_session_incident, get_session_incident_by_id, get_session_incidents_by_session_id, update_session_incident, } from "./session_incidents";
|
|
3
|
+
export async function server_get_session_incidents_by_session_id(session_id) {
|
|
4
|
+
const client = await newServerClient();
|
|
5
|
+
return get_session_incidents_by_session_id(client, session_id);
|
|
6
|
+
}
|
|
7
|
+
export async function server_get_session_incident_by_id(incident_id) {
|
|
8
|
+
const client = await newServerClient();
|
|
9
|
+
return get_session_incident_by_id(client, incident_id);
|
|
10
|
+
}
|
|
11
|
+
export async function server_create_session_incident(row) {
|
|
12
|
+
const client = await newServerClient();
|
|
13
|
+
return create_session_incident(client, row);
|
|
14
|
+
}
|
|
15
|
+
export async function server_update_session_incident(incident_id, patch) {
|
|
16
|
+
const client = await newServerClient();
|
|
17
|
+
return update_session_incident(client, incident_id, patch);
|
|
18
|
+
}
|
|
19
|
+
export async function server_delete_session_incident(incident_id) {
|
|
20
|
+
const client = await newServerClient();
|
|
21
|
+
return delete_session_incident(client, incident_id);
|
|
22
|
+
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { ISessionSummary } from "../types/db";
|
|
2
2
|
import { IWebResponseCompatible } from "../types/requests";
|
|
3
|
+
import { SessionSummaryFilters } from "./session_summaries.queries";
|
|
4
|
+
export declare function server_get_session_summaries(filters: SessionSummaryFilters): Promise<IWebResponseCompatible<ISessionSummary>>;
|
|
3
5
|
export declare function server_get_session_summaries_by_herd(herd_id: number, min_duration_minutes_caller?: number, min_distance_meters_caller?: number, product_numbers_caller?: string[]): Promise<IWebResponseCompatible<ISessionSummary>>;
|
|
4
6
|
export declare function server_get_session_summaries_by_device(device_id: number, min_duration_minutes_caller?: number, min_distance_meters_caller?: number, product_numbers_caller?: string[]): Promise<IWebResponseCompatible<ISessionSummary>>;
|
|
5
7
|
export declare function server_get_session_summaries_with_filters(herd_id?: number, device_id?: number, start_date?: string, end_date?: string, min_duration_minutes_caller?: number, min_distance_meters_caller?: number, product_numbers_caller?: string[]): Promise<IWebResponseCompatible<ISessionSummary>>;
|
|
@@ -1,30 +1,14 @@
|
|
|
1
|
-
"use server";
|
|
2
1
|
import { newServerClient } from "../supabase/server";
|
|
3
|
-
import { get_session_summaries_query } from "./session_summaries.queries";
|
|
2
|
+
import { get_session_summaries_by_device_query, get_session_summaries_by_herd_query, get_session_summaries_query, get_session_summaries_with_filters_query, } from "./session_summaries.queries";
|
|
3
|
+
export async function server_get_session_summaries(filters) {
|
|
4
|
+
return get_session_summaries_query(await newServerClient(), filters);
|
|
5
|
+
}
|
|
4
6
|
export async function server_get_session_summaries_by_herd(herd_id, min_duration_minutes_caller, min_distance_meters_caller, product_numbers_caller) {
|
|
5
|
-
return
|
|
6
|
-
herd_id,
|
|
7
|
-
min_duration_minutes_caller,
|
|
8
|
-
min_distance_meters_caller,
|
|
9
|
-
product_numbers_caller,
|
|
10
|
-
});
|
|
7
|
+
return get_session_summaries_by_herd_query(await newServerClient(), herd_id, min_duration_minutes_caller, min_distance_meters_caller, product_numbers_caller);
|
|
11
8
|
}
|
|
12
9
|
export async function server_get_session_summaries_by_device(device_id, min_duration_minutes_caller, min_distance_meters_caller, product_numbers_caller) {
|
|
13
|
-
return
|
|
14
|
-
device_id,
|
|
15
|
-
min_duration_minutes_caller,
|
|
16
|
-
min_distance_meters_caller,
|
|
17
|
-
product_numbers_caller,
|
|
18
|
-
});
|
|
10
|
+
return get_session_summaries_by_device_query(await newServerClient(), device_id, min_duration_minutes_caller, min_distance_meters_caller, product_numbers_caller);
|
|
19
11
|
}
|
|
20
12
|
export async function server_get_session_summaries_with_filters(herd_id, device_id, start_date, end_date, min_duration_minutes_caller, min_distance_meters_caller, product_numbers_caller) {
|
|
21
|
-
return
|
|
22
|
-
herd_id,
|
|
23
|
-
device_id,
|
|
24
|
-
start_date,
|
|
25
|
-
end_date,
|
|
26
|
-
min_duration_minutes_caller,
|
|
27
|
-
min_distance_meters_caller,
|
|
28
|
-
product_numbers_caller,
|
|
29
|
-
});
|
|
13
|
+
return get_session_summaries_with_filters_query(await newServerClient(), herd_id, device_id, start_date, end_date, min_duration_minutes_caller, min_distance_meters_caller, product_numbers_caller);
|
|
30
14
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { SupabaseClient } from "@supabase/supabase-js";
|
|
2
2
|
import { ISessionSummary } from "../types/db";
|
|
3
3
|
import { IWebResponseCompatible } from "../types/requests";
|
|
4
|
-
|
|
4
|
+
import { Database } from "../types/supabase";
|
|
5
|
+
export interface SessionSummaryFilters {
|
|
5
6
|
herd_id?: number;
|
|
6
7
|
device_id?: number;
|
|
7
8
|
start_date?: string;
|
|
@@ -10,5 +11,7 @@ interface SessionSummaryFilters {
|
|
|
10
11
|
min_distance_meters_caller?: number;
|
|
11
12
|
product_numbers_caller?: string[];
|
|
12
13
|
}
|
|
13
|
-
export declare function get_session_summaries_query(client: SupabaseClient
|
|
14
|
-
export
|
|
14
|
+
export declare function get_session_summaries_query(client: SupabaseClient<Database>, filters: SessionSummaryFilters): Promise<IWebResponseCompatible<ISessionSummary>>;
|
|
15
|
+
export declare function get_session_summaries_by_herd_query(client: SupabaseClient<Database>, herd_id: number, min_duration_minutes_caller?: number, min_distance_meters_caller?: number, product_numbers_caller?: string[]): Promise<IWebResponseCompatible<ISessionSummary>>;
|
|
16
|
+
export declare function get_session_summaries_by_device_query(client: SupabaseClient<Database>, device_id: number, min_duration_minutes_caller?: number, min_distance_meters_caller?: number, product_numbers_caller?: string[]): Promise<IWebResponseCompatible<ISessionSummary>>;
|
|
17
|
+
export declare function get_session_summaries_with_filters_query(client: SupabaseClient<Database>, herd_id?: number, device_id?: number, start_date?: string, end_date?: string, min_duration_minutes_caller?: number, min_distance_meters_caller?: number, product_numbers_caller?: string[]): Promise<IWebResponseCompatible<ISessionSummary>>;
|
|
@@ -17,3 +17,30 @@ export async function get_session_summaries_query(client, filters) {
|
|
|
17
17
|
}
|
|
18
18
|
return IWebResponse.success(data).to_compatible();
|
|
19
19
|
}
|
|
20
|
+
export async function get_session_summaries_by_herd_query(client, herd_id, min_duration_minutes_caller, min_distance_meters_caller, product_numbers_caller) {
|
|
21
|
+
return get_session_summaries_query(client, {
|
|
22
|
+
herd_id,
|
|
23
|
+
min_duration_minutes_caller,
|
|
24
|
+
min_distance_meters_caller,
|
|
25
|
+
product_numbers_caller,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
export async function get_session_summaries_by_device_query(client, device_id, min_duration_minutes_caller, min_distance_meters_caller, product_numbers_caller) {
|
|
29
|
+
return get_session_summaries_query(client, {
|
|
30
|
+
device_id,
|
|
31
|
+
min_duration_minutes_caller,
|
|
32
|
+
min_distance_meters_caller,
|
|
33
|
+
product_numbers_caller,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
export async function get_session_summaries_with_filters_query(client, herd_id, device_id, start_date, end_date, min_duration_minutes_caller, min_distance_meters_caller, product_numbers_caller) {
|
|
37
|
+
return get_session_summaries_query(client, {
|
|
38
|
+
herd_id,
|
|
39
|
+
device_id,
|
|
40
|
+
start_date,
|
|
41
|
+
end_date,
|
|
42
|
+
min_duration_minutes_caller,
|
|
43
|
+
min_distance_meters_caller,
|
|
44
|
+
product_numbers_caller,
|
|
45
|
+
});
|
|
46
|
+
}
|
package/dist/helpers/sessions.js
CHANGED
|
@@ -1,142 +1,28 @@
|
|
|
1
|
-
"use server";
|
|
2
1
|
import { newServerClient } from "../supabase/server";
|
|
3
|
-
import {
|
|
4
|
-
import { generateSignedUrlsBatchWithClient } from "./storage_internal";
|
|
5
|
-
import { isNonEmptyStorageFilePath } from "./storagePath";
|
|
6
|
-
import { get_session_usage_over_time_by_herd_query } from "./sessions.queries";
|
|
7
|
-
// Get session by ID with coordinates
|
|
2
|
+
import { get_artifact_ids_for_session_query, get_events_and_tags_by_session_id_query, get_session_by_id_query, get_session_usage_over_time_by_device_query, get_session_usage_over_time_by_herd_query, insert_session_query, match_sessions_query, update_session_query, } from "./sessions.queries";
|
|
8
3
|
export async function server_get_session_by_id(sessionId) {
|
|
9
|
-
|
|
10
|
-
const { data, error } = await supabase.rpc("get_session_by_id", {
|
|
11
|
-
session_id_caller: sessionId,
|
|
12
|
-
});
|
|
13
|
-
if (error) {
|
|
14
|
-
console.warn("Error fetching session by id:", error.message);
|
|
15
|
-
return { status: EnumWebResponse.ERROR, msg: error.message, data: null };
|
|
16
|
-
}
|
|
17
|
-
return IWebResponse.success(data && data.length > 0 ? data[0] : null).to_compatible();
|
|
4
|
+
return get_session_by_id_query(await newServerClient(), sessionId);
|
|
18
5
|
}
|
|
19
6
|
/** Existing sessions within tolerance of start/end timestamps. */
|
|
20
7
|
export async function server_match_sessions(deviceId, timestampStart, timestampEnd, toleranceSec) {
|
|
21
|
-
|
|
22
|
-
const { data, error } = await supabase.rpc("match_sessions", {
|
|
23
|
-
device_id_caller: deviceId,
|
|
24
|
-
timestamp_start_caller: timestampStart,
|
|
25
|
-
timestamp_end_caller: timestampEnd,
|
|
26
|
-
tolerance_sec_caller: toleranceSec,
|
|
27
|
-
});
|
|
28
|
-
if (error) {
|
|
29
|
-
return IWebResponse.error(error.message).to_compatible();
|
|
30
|
-
}
|
|
31
|
-
return IWebResponse.success(data || []).to_compatible();
|
|
8
|
+
return match_sessions_query(await newServerClient(), deviceId, timestampStart, timestampEnd, toleranceSec);
|
|
32
9
|
}
|
|
33
|
-
// Get session usage over time by herd
|
|
34
10
|
export async function server_get_session_usage_over_time_by_herd(herd_id, min_duration_minutes_caller, min_distance_meters_caller, product_numbers_caller) {
|
|
35
11
|
return get_session_usage_over_time_by_herd_query(await newServerClient(), herd_id, min_duration_minutes_caller, min_distance_meters_caller, product_numbers_caller);
|
|
36
12
|
}
|
|
37
|
-
// Get session usage over time by device
|
|
38
13
|
export async function server_get_session_usage_over_time_by_device(device_id, min_duration_minutes_caller, min_distance_meters_caller, product_numbers_caller) {
|
|
39
|
-
|
|
40
|
-
const { data, error } = await supabase.rpc("get_session_usage_over_time", {
|
|
41
|
-
start_date_caller: undefined,
|
|
42
|
-
end_date_caller: undefined,
|
|
43
|
-
device_id_caller: device_id,
|
|
44
|
-
herd_id_caller: undefined,
|
|
45
|
-
min_duration_minutes_caller,
|
|
46
|
-
min_distance_meters_caller,
|
|
47
|
-
product_numbers_caller,
|
|
48
|
-
});
|
|
49
|
-
if (error) {
|
|
50
|
-
return IWebResponse.error(error.message).to_compatible();
|
|
51
|
-
}
|
|
52
|
-
if (!data) {
|
|
53
|
-
return IWebResponse.error("No session usage data returned").to_compatible();
|
|
54
|
-
}
|
|
55
|
-
return IWebResponse.success(data).to_compatible();
|
|
14
|
+
return get_session_usage_over_time_by_device_query(await newServerClient(), device_id, min_duration_minutes_caller, min_distance_meters_caller, product_numbers_caller);
|
|
56
15
|
}
|
|
57
|
-
// Get events with tags by session id using RPC function
|
|
58
16
|
export async function server_get_events_and_tags_by_session_id(sessionId, limit = 50, offset = 0) {
|
|
59
|
-
|
|
60
|
-
const { data, error } = await supabase.rpc("get_events_and_tags_for_session", {
|
|
61
|
-
session_id_caller: sessionId,
|
|
62
|
-
limit_caller: limit,
|
|
63
|
-
offset_caller: offset,
|
|
64
|
-
});
|
|
65
|
-
if (error) {
|
|
66
|
-
console.warn("Error fetching events and tags by session id:", error.message);
|
|
67
|
-
return {
|
|
68
|
-
status: EnumWebResponse.ERROR,
|
|
69
|
-
msg: error.message,
|
|
70
|
-
data: [],
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
const eventData = (data || []);
|
|
74
|
-
const filePaths = eventData
|
|
75
|
-
.map((event) => event.file_path)
|
|
76
|
-
.filter(isNonEmptyStorageFilePath);
|
|
77
|
-
let eventsWithSignedUrls = eventData;
|
|
78
|
-
if (filePaths.length > 0) {
|
|
79
|
-
const signedUrls = await generateSignedUrlsBatchWithClient(supabase, filePaths);
|
|
80
|
-
const urlMap = new Map();
|
|
81
|
-
filePaths.forEach((path, index) => {
|
|
82
|
-
urlMap.set(path, signedUrls[index]);
|
|
83
|
-
});
|
|
84
|
-
eventsWithSignedUrls = eventData.map((event) => ({
|
|
85
|
-
...event,
|
|
86
|
-
media_url: isNonEmptyStorageFilePath(event.file_path)
|
|
87
|
-
? urlMap.get(event.file_path) ?? null
|
|
88
|
-
: null,
|
|
89
|
-
}));
|
|
90
|
-
}
|
|
91
|
-
return IWebResponse.success(eventsWithSignedUrls).to_compatible();
|
|
17
|
+
return get_events_and_tags_by_session_id_query(await newServerClient(), sessionId, limit, offset);
|
|
92
18
|
}
|
|
93
|
-
// Insert new sessions (accepts array for batch operations)
|
|
94
19
|
export async function server_insert_session(sessions) {
|
|
95
|
-
|
|
96
|
-
const sessionsArray = Array.isArray(sessions) ? sessions : [sessions];
|
|
97
|
-
const { data, error } = await supabase
|
|
98
|
-
.from("sessions")
|
|
99
|
-
.insert(sessionsArray)
|
|
100
|
-
.select("*");
|
|
101
|
-
if (error) {
|
|
102
|
-
console.warn("Error inserting sessions:", error.message);
|
|
103
|
-
return { status: EnumWebResponse.ERROR, msg: error.message, data: [] };
|
|
104
|
-
}
|
|
105
|
-
return IWebResponse.success(data || []).to_compatible();
|
|
20
|
+
return insert_session_query(await newServerClient(), sessions);
|
|
106
21
|
}
|
|
107
|
-
// Update existing sessions (accepts array for batch operations)
|
|
108
|
-
// Each session in the array must include an 'id' field
|
|
109
22
|
export async function server_update_session(sessions) {
|
|
110
|
-
|
|
111
|
-
const sessionsArray = Array.isArray(sessions) ? sessions : [sessions];
|
|
112
|
-
const updatedSessions = [];
|
|
113
|
-
for (const session of sessionsArray) {
|
|
114
|
-
const { id, ...updateData } = session;
|
|
115
|
-
delete updateData.inserted_at;
|
|
116
|
-
const { data, error } = await supabase
|
|
117
|
-
.from("sessions")
|
|
118
|
-
.update(updateData)
|
|
119
|
-
.eq("id", id)
|
|
120
|
-
.select("*")
|
|
121
|
-
.single();
|
|
122
|
-
if (error) {
|
|
123
|
-
console.warn("Error updating session:", error.message);
|
|
124
|
-
return { status: EnumWebResponse.ERROR, msg: error.message, data: [] };
|
|
125
|
-
}
|
|
126
|
-
if (data)
|
|
127
|
-
updatedSessions.push(data);
|
|
128
|
-
}
|
|
129
|
-
return IWebResponse.success(updatedSessions).to_compatible();
|
|
23
|
+
return update_session_query(await newServerClient(), sessions);
|
|
130
24
|
}
|
|
131
25
|
/** Artifact IDs for a session (same device, overlapping session interval). Empty if session or timestamps missing. */
|
|
132
26
|
export async function server_get_artifact_ids_for_session(sessionId) {
|
|
133
|
-
|
|
134
|
-
const { data, error } = await supabase.rpc("get_artifact_ids_for_session", {
|
|
135
|
-
session_id_caller: sessionId,
|
|
136
|
-
});
|
|
137
|
-
if (error) {
|
|
138
|
-
console.warn("Error fetching artifact IDs for session:", error.message);
|
|
139
|
-
return { status: EnumWebResponse.ERROR, msg: error.message, data: [] };
|
|
140
|
-
}
|
|
141
|
-
return IWebResponse.success(Array.isArray(data) ? data : []).to_compatible();
|
|
27
|
+
return get_artifact_ids_for_session_query(await newServerClient(), sessionId);
|
|
142
28
|
}
|
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
import { SupabaseClient } from "@supabase/supabase-js";
|
|
2
|
-
import { ISessionUsageOverTime } from "../types/db";
|
|
2
|
+
import { IEventAndTagsPrettyLocation, ISession, ISessionUsageOverTime, ISessionWithCoordinates, SessionInsert, SessionUpdate } from "../types/db";
|
|
3
3
|
import { IWebResponseCompatible } from "../types/requests";
|
|
4
|
-
|
|
4
|
+
import { Database } from "../types/supabase";
|
|
5
|
+
export declare function get_session_by_id_query(client: SupabaseClient<Database>, sessionId: number): Promise<IWebResponseCompatible<ISessionWithCoordinates | null>>;
|
|
6
|
+
export declare function match_sessions_query(client: SupabaseClient<Database>, deviceId: number, timestampStart: string, timestampEnd: string, toleranceSec: number): Promise<IWebResponseCompatible<ISession[]>>;
|
|
7
|
+
export declare function get_session_usage_over_time_by_herd_query(client: SupabaseClient<Database>, herd_id: number, min_duration_minutes_caller?: number, min_distance_meters_caller?: number, product_numbers_caller?: string[]): Promise<IWebResponseCompatible<ISessionUsageOverTime>>;
|
|
8
|
+
export declare function get_session_usage_over_time_by_device_query(client: SupabaseClient<Database>, device_id: number, min_duration_minutes_caller?: number, min_distance_meters_caller?: number, product_numbers_caller?: string[]): Promise<IWebResponseCompatible<ISessionUsageOverTime>>;
|
|
9
|
+
export declare function get_events_and_tags_by_session_id_query(client: SupabaseClient<Database>, sessionId: number, limit?: number, offset?: number): Promise<IWebResponseCompatible<IEventAndTagsPrettyLocation[]>>;
|
|
10
|
+
export declare function insert_session_query(client: SupabaseClient<Database>, sessions: SessionInsert | SessionInsert[]): Promise<IWebResponseCompatible<ISession[]>>;
|
|
11
|
+
export declare function update_session_query(client: SupabaseClient<Database>, sessions: (SessionUpdate & {
|
|
12
|
+
id: number;
|
|
13
|
+
}) | (SessionUpdate & {
|
|
14
|
+
id: number;
|
|
15
|
+
})[]): Promise<IWebResponseCompatible<ISession[]>>;
|
|
16
|
+
export declare function get_artifact_ids_for_session_query(client: SupabaseClient<Database>, sessionId: number): Promise<IWebResponseCompatible<number[]>>;
|
|
@@ -1,4 +1,27 @@
|
|
|
1
|
-
import { IWebResponse } from "../types/requests";
|
|
1
|
+
import { EnumWebResponse, IWebResponse, } from "../types/requests";
|
|
2
|
+
import { addEventMediaUrls } from "./media_urls";
|
|
3
|
+
export async function get_session_by_id_query(client, sessionId) {
|
|
4
|
+
const { data, error } = await client.rpc("get_session_by_id", {
|
|
5
|
+
session_id_caller: sessionId,
|
|
6
|
+
});
|
|
7
|
+
if (error) {
|
|
8
|
+
console.warn("Error fetching session by id:", error.message);
|
|
9
|
+
return { status: EnumWebResponse.ERROR, msg: error.message, data: null };
|
|
10
|
+
}
|
|
11
|
+
return IWebResponse.success(data && data.length > 0 ? data[0] : null).to_compatible();
|
|
12
|
+
}
|
|
13
|
+
export async function match_sessions_query(client, deviceId, timestampStart, timestampEnd, toleranceSec) {
|
|
14
|
+
const { data, error } = await client.rpc("match_sessions", {
|
|
15
|
+
device_id_caller: deviceId,
|
|
16
|
+
timestamp_start_caller: timestampStart,
|
|
17
|
+
timestamp_end_caller: timestampEnd,
|
|
18
|
+
tolerance_sec_caller: toleranceSec,
|
|
19
|
+
});
|
|
20
|
+
if (error) {
|
|
21
|
+
return IWebResponse.error(error.message).to_compatible();
|
|
22
|
+
}
|
|
23
|
+
return IWebResponse.success(data || []).to_compatible();
|
|
24
|
+
}
|
|
2
25
|
async function get_session_usage_over_time_query(client, herd_id, device_id, min_duration_minutes_caller, min_distance_meters_caller, product_numbers_caller) {
|
|
3
26
|
const { data, error } = await client.rpc("get_session_usage_over_time", {
|
|
4
27
|
start_date_caller: undefined,
|
|
@@ -20,3 +43,67 @@ async function get_session_usage_over_time_query(client, herd_id, device_id, min
|
|
|
20
43
|
export function get_session_usage_over_time_by_herd_query(client, herd_id, min_duration_minutes_caller, min_distance_meters_caller, product_numbers_caller) {
|
|
21
44
|
return get_session_usage_over_time_query(client, herd_id, undefined, min_duration_minutes_caller, min_distance_meters_caller, product_numbers_caller);
|
|
22
45
|
}
|
|
46
|
+
export function get_session_usage_over_time_by_device_query(client, device_id, min_duration_minutes_caller, min_distance_meters_caller, product_numbers_caller) {
|
|
47
|
+
return get_session_usage_over_time_query(client, undefined, device_id, min_duration_minutes_caller, min_distance_meters_caller, product_numbers_caller);
|
|
48
|
+
}
|
|
49
|
+
export async function get_events_and_tags_by_session_id_query(client, sessionId, limit = 50, offset = 0) {
|
|
50
|
+
const { data, error } = await client.rpc("get_events_and_tags_for_session", {
|
|
51
|
+
session_id_caller: sessionId,
|
|
52
|
+
limit_caller: limit,
|
|
53
|
+
offset_caller: offset,
|
|
54
|
+
});
|
|
55
|
+
if (error) {
|
|
56
|
+
console.warn("Error fetching events and tags by session id:", error.message);
|
|
57
|
+
return {
|
|
58
|
+
status: EnumWebResponse.ERROR,
|
|
59
|
+
msg: error.message,
|
|
60
|
+
data: [],
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
const eventData = (data || []);
|
|
64
|
+
const eventsWithSignedUrls = await addEventMediaUrls(client, eventData);
|
|
65
|
+
return IWebResponse.success(eventsWithSignedUrls).to_compatible();
|
|
66
|
+
}
|
|
67
|
+
export async function insert_session_query(client, sessions) {
|
|
68
|
+
const sessionsArray = Array.isArray(sessions) ? sessions : [sessions];
|
|
69
|
+
const { data, error } = await client
|
|
70
|
+
.from("sessions")
|
|
71
|
+
.insert(sessionsArray)
|
|
72
|
+
.select("*");
|
|
73
|
+
if (error) {
|
|
74
|
+
console.warn("Error inserting sessions:", error.message);
|
|
75
|
+
return { status: EnumWebResponse.ERROR, msg: error.message, data: [] };
|
|
76
|
+
}
|
|
77
|
+
return IWebResponse.success(data || []).to_compatible();
|
|
78
|
+
}
|
|
79
|
+
export async function update_session_query(client, sessions) {
|
|
80
|
+
const sessionsArray = Array.isArray(sessions) ? sessions : [sessions];
|
|
81
|
+
const updatedSessions = [];
|
|
82
|
+
for (const session of sessionsArray) {
|
|
83
|
+
const { id, ...updateData } = session;
|
|
84
|
+
delete updateData.inserted_at;
|
|
85
|
+
const { data, error } = await client
|
|
86
|
+
.from("sessions")
|
|
87
|
+
.update(updateData)
|
|
88
|
+
.eq("id", id)
|
|
89
|
+
.select("*")
|
|
90
|
+
.single();
|
|
91
|
+
if (error) {
|
|
92
|
+
console.warn("Error updating session:", error.message);
|
|
93
|
+
return { status: EnumWebResponse.ERROR, msg: error.message, data: [] };
|
|
94
|
+
}
|
|
95
|
+
if (data)
|
|
96
|
+
updatedSessions.push(data);
|
|
97
|
+
}
|
|
98
|
+
return IWebResponse.success(updatedSessions).to_compatible();
|
|
99
|
+
}
|
|
100
|
+
export async function get_artifact_ids_for_session_query(client, sessionId) {
|
|
101
|
+
const { data, error } = await client.rpc("get_artifact_ids_for_session", {
|
|
102
|
+
session_id_caller: sessionId,
|
|
103
|
+
});
|
|
104
|
+
if (error) {
|
|
105
|
+
console.warn("Error fetching artifact IDs for session:", error.message);
|
|
106
|
+
return { status: EnumWebResponse.ERROR, msg: error.message, data: [] };
|
|
107
|
+
}
|
|
108
|
+
return IWebResponse.success(Array.isArray(data) ? data : []).to_compatible();
|
|
109
|
+
}
|
package/dist/helpers/storage.js
CHANGED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { AuthChangeEvent, Session, SupabaseClient } from "@supabase/supabase-js";
|
|
2
|
+
import type { Database } from "../types/supabase";
|
|
3
|
+
type AuthListener = (event: AuthChangeEvent, session: Session | null) => void;
|
|
4
|
+
export declare function subscribeToSupabaseAuth(client: SupabaseClient<Database>, listener: AuthListener): () => void;
|
|
5
|
+
export declare function refreshRealtimeAuth(client: SupabaseClient<Database>): Promise<void>;
|
|
6
|
+
export {};
|