@adventurelabs/scout-core 1.4.5 → 1.4.7
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/dist/helpers/connectivity.d.ts +6 -2
- package/dist/helpers/connectivity.js +37 -33
- package/dist/helpers/events.d.ts +6 -2
- package/dist/helpers/events.js +35 -35
- package/dist/helpers/sessions.d.ts +6 -2
- package/dist/helpers/sessions.js +35 -35
- package/dist/providers/ScoutRefreshProvider.d.ts +3 -0
- package/dist/types/supabase.d.ts +3 -0
- package/package.json +1 -1
|
@@ -3,5 +3,9 @@ import { IConnectivityWithCoordinates, IConnectivity, ConnectivityInsert, Connec
|
|
|
3
3
|
import { SupabaseClient } from "@supabase/supabase-js";
|
|
4
4
|
export declare function server_get_connectivity_by_session_id(sessionId: number): Promise<IWebResponseCompatible<IConnectivityWithCoordinates[]>>;
|
|
5
5
|
export declare function server_get_connectivity_by_device_id(deviceId: number, timestamp: string): Promise<IWebResponseCompatible<IConnectivityWithCoordinates[]>>;
|
|
6
|
-
export declare function server_insert_connectivity(connectivity: ConnectivityInsert, client?: SupabaseClient): Promise<IWebResponseCompatible<IConnectivity
|
|
7
|
-
export declare function server_update_connectivity(
|
|
6
|
+
export declare function server_insert_connectivity(connectivity: ConnectivityInsert | ConnectivityInsert[], client?: SupabaseClient): Promise<IWebResponseCompatible<IConnectivity[]>>;
|
|
7
|
+
export declare function server_update_connectivity(connectivity: (ConnectivityUpdate & {
|
|
8
|
+
id: number;
|
|
9
|
+
}) | (ConnectivityUpdate & {
|
|
10
|
+
id: number;
|
|
11
|
+
})[], client?: SupabaseClient): Promise<IWebResponseCompatible<IConnectivity[]>>;
|
|
@@ -44,51 +44,55 @@ export async function server_get_connectivity_by_device_id(deviceId, timestamp)
|
|
|
44
44
|
});
|
|
45
45
|
return IWebResponse.success(sortedConnectivity).to_compatible();
|
|
46
46
|
}
|
|
47
|
-
// Insert
|
|
47
|
+
// Insert new connectivity records (accepts array for batch operations)
|
|
48
48
|
export async function server_insert_connectivity(connectivity, client) {
|
|
49
49
|
const supabase = client || (await newServerClient());
|
|
50
|
+
const connectivityArray = Array.isArray(connectivity)
|
|
51
|
+
? connectivity
|
|
52
|
+
: [connectivity];
|
|
50
53
|
const { data, error } = await supabase
|
|
51
54
|
.from("connectivity")
|
|
52
|
-
.insert(
|
|
53
|
-
.select("*")
|
|
54
|
-
.single();
|
|
55
|
+
.insert(connectivityArray)
|
|
56
|
+
.select("*");
|
|
55
57
|
if (error) {
|
|
56
58
|
console.warn("Error inserting connectivity:", error.message);
|
|
57
59
|
return {
|
|
58
60
|
status: EnumWebResponse.ERROR,
|
|
59
61
|
msg: error.message,
|
|
60
|
-
data:
|
|
62
|
+
data: [],
|
|
61
63
|
};
|
|
62
64
|
}
|
|
63
|
-
return IWebResponse.success(data).to_compatible();
|
|
65
|
+
return IWebResponse.success(data || []).to_compatible();
|
|
64
66
|
}
|
|
65
|
-
// Update
|
|
66
|
-
|
|
67
|
+
// Update existing connectivity records (accepts array for batch operations)
|
|
68
|
+
// Each connectivity record in the array must include an 'id' field
|
|
69
|
+
export async function server_update_connectivity(connectivity, client) {
|
|
67
70
|
const supabase = client || (await newServerClient());
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
.
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
71
|
+
const connectivityArray = Array.isArray(connectivity)
|
|
72
|
+
? connectivity
|
|
73
|
+
: [connectivity];
|
|
74
|
+
const updatedConnectivity = [];
|
|
75
|
+
for (const record of connectivityArray) {
|
|
76
|
+
const { id, ...updateData } = record;
|
|
77
|
+
// Remove fields that shouldn't be updated
|
|
78
|
+
delete updateData.inserted_at;
|
|
79
|
+
const { data, error } = await supabase
|
|
80
|
+
.from("connectivity")
|
|
81
|
+
.update(updateData)
|
|
82
|
+
.eq("id", id)
|
|
83
|
+
.select("*")
|
|
84
|
+
.single();
|
|
85
|
+
if (error) {
|
|
86
|
+
console.warn("Error updating connectivity:", error.message);
|
|
87
|
+
return {
|
|
88
|
+
status: EnumWebResponse.ERROR,
|
|
89
|
+
msg: error.message,
|
|
90
|
+
data: [],
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
if (data) {
|
|
94
|
+
updatedConnectivity.push(data);
|
|
95
|
+
}
|
|
92
96
|
}
|
|
93
|
-
return IWebResponse.success(
|
|
97
|
+
return IWebResponse.success(updatedConnectivity).to_compatible();
|
|
94
98
|
}
|
package/dist/helpers/events.d.ts
CHANGED
|
@@ -3,5 +3,9 @@ import { EnumSessionsVisibility } from "../types/events";
|
|
|
3
3
|
import { IEvent, EventInsert, EventUpdate } from "../types/db";
|
|
4
4
|
import { SupabaseClient } from "@supabase/supabase-js";
|
|
5
5
|
export declare function server_get_total_events_by_herd(herd_id: number, sessions_visibility: EnumSessionsVisibility): Promise<IWebResponseCompatible<number>>;
|
|
6
|
-
export declare function server_insert_event(
|
|
7
|
-
export declare function server_update_event(
|
|
6
|
+
export declare function server_insert_event(events: EventInsert | EventInsert[], client?: SupabaseClient): Promise<IWebResponseCompatible<IEvent[]>>;
|
|
7
|
+
export declare function server_update_event(events: (EventUpdate & {
|
|
8
|
+
id: number;
|
|
9
|
+
}) | (EventUpdate & {
|
|
10
|
+
id: number;
|
|
11
|
+
})[], client?: SupabaseClient): Promise<IWebResponseCompatible<IEvent[]>>;
|
package/dist/helpers/events.js
CHANGED
|
@@ -22,51 +22,51 @@ export async function server_get_total_events_by_herd(herd_id, sessions_visibili
|
|
|
22
22
|
return IWebResponse.success(data || 0).to_compatible();
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
-
// Insert
|
|
26
|
-
export async function server_insert_event(
|
|
25
|
+
// Insert new events (accepts array for batch operations)
|
|
26
|
+
export async function server_insert_event(events, client) {
|
|
27
27
|
const supabase = client || (await newServerClient());
|
|
28
|
+
const eventsArray = Array.isArray(events) ? events : [events];
|
|
28
29
|
const { data, error } = await supabase
|
|
29
30
|
.from("events")
|
|
30
|
-
.insert(
|
|
31
|
-
.select("*")
|
|
32
|
-
.single();
|
|
31
|
+
.insert(eventsArray)
|
|
32
|
+
.select("*");
|
|
33
33
|
if (error) {
|
|
34
|
-
console.warn("Error inserting
|
|
34
|
+
console.warn("Error inserting events:", error.message);
|
|
35
35
|
return {
|
|
36
36
|
status: EnumWebResponse.ERROR,
|
|
37
37
|
msg: error.message,
|
|
38
|
-
data:
|
|
38
|
+
data: [],
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
|
-
return IWebResponse.success(data).to_compatible();
|
|
41
|
+
return IWebResponse.success(data || []).to_compatible();
|
|
42
42
|
}
|
|
43
|
-
// Update
|
|
44
|
-
|
|
43
|
+
// Update existing events (accepts array for batch operations)
|
|
44
|
+
// Each event in the array must include an 'id' field
|
|
45
|
+
export async function server_update_event(events, client) {
|
|
45
46
|
const supabase = client || (await newServerClient());
|
|
46
|
-
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
.
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
};
|
|
47
|
+
const eventsArray = Array.isArray(events) ? events : [events];
|
|
48
|
+
const updatedEvents = [];
|
|
49
|
+
for (const event of eventsArray) {
|
|
50
|
+
const { id, ...updateData } = event;
|
|
51
|
+
// Remove fields that shouldn't be updated
|
|
52
|
+
delete updateData.inserted_at;
|
|
53
|
+
const { data, error } = await supabase
|
|
54
|
+
.from("events")
|
|
55
|
+
.update(updateData)
|
|
56
|
+
.eq("id", id)
|
|
57
|
+
.select("*")
|
|
58
|
+
.single();
|
|
59
|
+
if (error) {
|
|
60
|
+
console.warn("Error updating event:", error.message);
|
|
61
|
+
return {
|
|
62
|
+
status: EnumWebResponse.ERROR,
|
|
63
|
+
msg: error.message,
|
|
64
|
+
data: [],
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
if (data) {
|
|
68
|
+
updatedEvents.push(data);
|
|
69
|
+
}
|
|
70
70
|
}
|
|
71
|
-
return IWebResponse.success(
|
|
71
|
+
return IWebResponse.success(updatedEvents).to_compatible();
|
|
72
72
|
}
|
|
@@ -5,5 +5,9 @@ export declare function server_get_session_by_id(sessionId: number, client?: Sup
|
|
|
5
5
|
export declare function server_get_session_usage_over_time_by_herd(herd_id: number, client?: SupabaseClient): Promise<IWebResponseCompatible<ISessionUsageOverTime>>;
|
|
6
6
|
export declare function server_get_session_usage_over_time_by_device(device_id: number, client?: SupabaseClient): Promise<IWebResponseCompatible<ISessionUsageOverTime>>;
|
|
7
7
|
export declare function server_get_events_and_tags_by_session_id(sessionId: number, limit?: number, offset?: number): Promise<IWebResponseCompatible<IEventAndTagsPrettyLocation[]>>;
|
|
8
|
-
export declare function server_insert_session(
|
|
9
|
-
export declare function server_update_session(
|
|
8
|
+
export declare function server_insert_session(sessions: SessionInsert | SessionInsert[], client?: SupabaseClient): Promise<IWebResponseCompatible<ISession[]>>;
|
|
9
|
+
export declare function server_update_session(sessions: (SessionUpdate & {
|
|
10
|
+
id: number;
|
|
11
|
+
}) | (SessionUpdate & {
|
|
12
|
+
id: number;
|
|
13
|
+
})[], client?: SupabaseClient): Promise<IWebResponseCompatible<ISession[]>>;
|
package/dist/helpers/sessions.js
CHANGED
|
@@ -71,51 +71,51 @@ export async function server_get_events_and_tags_by_session_id(sessionId, limit
|
|
|
71
71
|
}
|
|
72
72
|
return IWebResponse.success(data || []).to_compatible();
|
|
73
73
|
}
|
|
74
|
-
// Insert
|
|
75
|
-
export async function server_insert_session(
|
|
74
|
+
// Insert new sessions (accepts array for batch operations)
|
|
75
|
+
export async function server_insert_session(sessions, client) {
|
|
76
76
|
const supabase = client || (await newServerClient());
|
|
77
|
+
const sessionsArray = Array.isArray(sessions) ? sessions : [sessions];
|
|
77
78
|
const { data, error } = await supabase
|
|
78
79
|
.from("sessions")
|
|
79
|
-
.insert(
|
|
80
|
-
.select("*")
|
|
81
|
-
.single();
|
|
80
|
+
.insert(sessionsArray)
|
|
81
|
+
.select("*");
|
|
82
82
|
if (error) {
|
|
83
|
-
console.warn("Error inserting
|
|
83
|
+
console.warn("Error inserting sessions:", error.message);
|
|
84
84
|
return {
|
|
85
85
|
status: EnumWebResponse.ERROR,
|
|
86
86
|
msg: error.message,
|
|
87
|
-
data:
|
|
87
|
+
data: [],
|
|
88
88
|
};
|
|
89
89
|
}
|
|
90
|
-
return IWebResponse.success(data).to_compatible();
|
|
90
|
+
return IWebResponse.success(data || []).to_compatible();
|
|
91
91
|
}
|
|
92
|
-
// Update
|
|
93
|
-
|
|
92
|
+
// Update existing sessions (accepts array for batch operations)
|
|
93
|
+
// Each session in the array must include an 'id' field
|
|
94
|
+
export async function server_update_session(sessions, client) {
|
|
94
95
|
const supabase = client || (await newServerClient());
|
|
95
|
-
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
.
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
96
|
+
const sessionsArray = Array.isArray(sessions) ? sessions : [sessions];
|
|
97
|
+
const updatedSessions = [];
|
|
98
|
+
for (const session of sessionsArray) {
|
|
99
|
+
const { id, ...updateData } = session;
|
|
100
|
+
// Remove fields that shouldn't be updated
|
|
101
|
+
delete updateData.inserted_at;
|
|
102
|
+
const { data, error } = await supabase
|
|
103
|
+
.from("sessions")
|
|
104
|
+
.update(updateData)
|
|
105
|
+
.eq("id", id)
|
|
106
|
+
.select("*")
|
|
107
|
+
.single();
|
|
108
|
+
if (error) {
|
|
109
|
+
console.warn("Error updating session:", error.message);
|
|
110
|
+
return {
|
|
111
|
+
status: EnumWebResponse.ERROR,
|
|
112
|
+
msg: error.message,
|
|
113
|
+
data: [],
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
if (data) {
|
|
117
|
+
updatedSessions.push(data);
|
|
118
|
+
}
|
|
112
119
|
}
|
|
113
|
-
|
|
114
|
-
return {
|
|
115
|
-
status: EnumWebResponse.ERROR,
|
|
116
|
-
msg: "Session not found or update failed",
|
|
117
|
-
data: null,
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
return IWebResponse.success(data).to_compatible();
|
|
120
|
+
return IWebResponse.success(updatedSessions).to_compatible();
|
|
121
121
|
}
|
|
@@ -840,6 +840,7 @@ export declare function useSupabase(): SupabaseClient<Database, "public", "publi
|
|
|
840
840
|
};
|
|
841
841
|
versions_software: {
|
|
842
842
|
Row: {
|
|
843
|
+
broken: boolean;
|
|
843
844
|
commit_hash: string | null;
|
|
844
845
|
created_at: string;
|
|
845
846
|
description: string;
|
|
@@ -854,6 +855,7 @@ export declare function useSupabase(): SupabaseClient<Database, "public", "publi
|
|
|
854
855
|
version: string;
|
|
855
856
|
};
|
|
856
857
|
Insert: {
|
|
858
|
+
broken?: boolean;
|
|
857
859
|
commit_hash?: string | null;
|
|
858
860
|
created_at?: string;
|
|
859
861
|
description: string;
|
|
@@ -868,6 +870,7 @@ export declare function useSupabase(): SupabaseClient<Database, "public", "publi
|
|
|
868
870
|
version: string;
|
|
869
871
|
};
|
|
870
872
|
Update: {
|
|
873
|
+
broken?: boolean;
|
|
871
874
|
commit_hash?: string | null;
|
|
872
875
|
created_at?: string;
|
|
873
876
|
description?: string;
|
package/dist/types/supabase.d.ts
CHANGED
|
@@ -883,6 +883,7 @@ export type Database = {
|
|
|
883
883
|
};
|
|
884
884
|
versions_software: {
|
|
885
885
|
Row: {
|
|
886
|
+
broken: boolean;
|
|
886
887
|
commit_hash: string | null;
|
|
887
888
|
created_at: string;
|
|
888
889
|
description: string;
|
|
@@ -897,6 +898,7 @@ export type Database = {
|
|
|
897
898
|
version: string;
|
|
898
899
|
};
|
|
899
900
|
Insert: {
|
|
901
|
+
broken?: boolean;
|
|
900
902
|
commit_hash?: string | null;
|
|
901
903
|
created_at?: string;
|
|
902
904
|
description: string;
|
|
@@ -911,6 +913,7 @@ export type Database = {
|
|
|
911
913
|
version: string;
|
|
912
914
|
};
|
|
913
915
|
Update: {
|
|
916
|
+
broken?: boolean;
|
|
914
917
|
commit_hash?: string | null;
|
|
915
918
|
created_at?: string;
|
|
916
919
|
description?: string;
|