@adventurelabs/scout-core 1.0.65 → 1.0.66

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,6 +1,7 @@
1
1
  import { IUser, IUserAndRole, IUserRolePerHerd, Role } from "../types/db";
2
2
  import { IWebResponseCompatible } from "../types/requests";
3
+ import { SupabaseClient } from "@supabase/supabase-js";
3
4
  export declare function server_get_user_roles(herd_id: number): Promise<IWebResponseCompatible<IUserRolePerHerd[]>>;
4
5
  export declare function server_get_user(): Promise<IWebResponseCompatible<IUser | null>>;
5
- export declare function server_get_users_with_herd_access(herd_id: number): Promise<IWebResponseCompatible<IUserAndRole[] | null>>;
6
+ export declare function server_get_users_with_herd_access(herd_id: number, supabaseClient?: SupabaseClient): Promise<IWebResponseCompatible<IUserAndRole[]>>;
6
7
  export declare function server_upsert_user_with_role(herd_id: number, username: string, role: Role): Promise<IWebResponseCompatible<IUserAndRole | null>>;
@@ -25,16 +25,33 @@ export async function server_get_user() {
25
25
  const new_user = data.user;
26
26
  return IWebResponse.success(new_user).to_compatible();
27
27
  }
28
- export async function server_get_users_with_herd_access(herd_id) {
29
- const supabase = await newServerClient();
28
+ export async function server_get_users_with_herd_access(herd_id, supabaseClient) {
29
+ const supabase = supabaseClient || (await newServerClient());
30
30
  const { data, error } = await supabase
31
31
  .from("users_roles_per_herd")
32
- .select("user:users(*), role")
32
+ .select(`
33
+ role,
34
+ users (
35
+ id,
36
+ username
37
+ )
38
+ `)
33
39
  .eq("herd_id", herd_id);
34
40
  if (error) {
35
- return IWebResponse.error(error.message).to_compatible();
41
+ return {
42
+ status: EnumWebResponse.ERROR,
43
+ msg: error.message,
44
+ data: null,
45
+ };
46
+ }
47
+ else {
48
+ // Transform the data to match IUserAndRole interface
49
+ const transformedData = data.map((item) => ({
50
+ user: item.users,
51
+ role: item.role,
52
+ }));
53
+ return IWebResponse.success(transformedData).to_compatible();
36
54
  }
37
- return IWebResponse.success(data).to_compatible();
38
55
  }
39
56
  export async function server_upsert_user_with_role(herd_id, username, role) {
40
57
  const supabase = await newServerClient();
@@ -60,6 +60,7 @@ export function useScoutRefresh(options = {}) {
60
60
  (async () => {
61
61
  const start = Date.now();
62
62
  console.log(`[useScoutRefresh] Starting herd modules request at ${new Date(start).toISOString()}`);
63
+ // High priority request with optimization
63
64
  const result = await server_load_herd_modules();
64
65
  const duration = Date.now() - start;
65
66
  console.log(`[useScoutRefresh] Herd modules request completed in ${duration}ms`);
@@ -68,6 +69,7 @@ export function useScoutRefresh(options = {}) {
68
69
  (async () => {
69
70
  const start = Date.now();
70
71
  console.log(`[useScoutRefresh] Starting user request at ${new Date(start).toISOString()}`);
72
+ // High priority request with optimization
71
73
  const result = await server_get_user();
72
74
  const duration = Date.now() - start;
73
75
  console.log(`[useScoutRefresh] User request completed in ${duration}ms`);
@@ -100,7 +100,7 @@ export class HerdModule {
100
100
  console.warn(`[HerdModule] Failed to get zones and actions:`, error);
101
101
  return { status: EnumWebResponse.ERROR, data: null };
102
102
  }),
103
- server_get_users_with_herd_access(herd.id).catch((error) => {
103
+ server_get_users_with_herd_access(herd.id, client).catch((error) => {
104
104
  console.warn(`[HerdModule] Failed to get user roles:`, error);
105
105
  return { status: EnumWebResponse.ERROR, data: null };
106
106
  }),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adventurelabs/scout-core",
3
- "version": "1.0.65",
3
+ "version": "1.0.66",
4
4
  "description": "Core utilities and helpers for Adventure Labs Scout applications",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",