@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.
Files changed (224) hide show
  1. package/README.md +47 -0
  2. package/dist/api_keys/actions.d.ts +0 -1
  3. package/dist/api_keys/actions.js +0 -14
  4. package/dist/client/index.d.ts +76 -0
  5. package/dist/client/index.js +83 -0
  6. package/dist/constants/index.d.ts +1 -0
  7. package/dist/constants/index.js +1 -0
  8. package/dist/helpers/analysis_usage/jobs_server.d.ts +25 -0
  9. package/dist/helpers/analysis_usage/jobs_server.js +10 -0
  10. package/dist/helpers/analysis_usage/tasks_server.d.ts +63 -0
  11. package/dist/helpers/analysis_usage/tasks_server.js +14 -0
  12. package/dist/helpers/artifacts.d.ts +0 -1
  13. package/dist/helpers/artifacts.js +10 -147
  14. package/dist/helpers/artifacts.queries.d.ts +26 -0
  15. package/dist/helpers/{artifacts.internal.js → artifacts.queries.js} +24 -41
  16. package/dist/helpers/auth.d.ts +1 -1
  17. package/dist/helpers/auth.js +2 -3
  18. package/dist/helpers/auth_server.d.ts +2 -0
  19. package/dist/helpers/auth_server.js +10 -0
  20. package/dist/helpers/certificates_server.d.ts +101 -0
  21. package/dist/helpers/certificates_server.js +42 -0
  22. package/dist/helpers/chat.d.ts +1 -2
  23. package/dist/helpers/chat.js +3 -38
  24. package/dist/helpers/chat.queries.d.ts +13 -0
  25. package/dist/helpers/chat.queries.js +39 -0
  26. package/dist/helpers/client_abilities_jwt_keys.js +0 -1
  27. package/dist/helpers/client_abilities_token_server.d.ts +1 -0
  28. package/dist/helpers/client_abilities_token_server.js +5 -2
  29. package/dist/helpers/compliance.d.ts +26 -0
  30. package/dist/helpers/compliance.js +74 -0
  31. package/dist/helpers/compliance.queries.d.ts +28 -0
  32. package/dist/helpers/compliance.queries.js +167 -0
  33. package/dist/helpers/connectivity.d.ts +1 -5
  34. package/dist/helpers/connectivity.js +7 -140
  35. package/dist/helpers/connectivity.queries.d.ts +18 -0
  36. package/dist/helpers/connectivity.queries.js +121 -0
  37. package/dist/helpers/contacts_server.d.ts +75 -0
  38. package/dist/helpers/contacts_server.js +18 -0
  39. package/dist/helpers/deviceTransfer.js +2 -11
  40. package/dist/helpers/deviceTransfer.queries.d.ts +4 -0
  41. package/dist/helpers/deviceTransfer.queries.js +11 -0
  42. package/dist/helpers/devices.js +4 -61
  43. package/dist/helpers/devices.queries.d.ts +4 -1
  44. package/dist/helpers/devices.queries.js +52 -0
  45. package/dist/helpers/document_templates.js +6 -52
  46. package/dist/helpers/document_templates.queries.d.ts +9 -0
  47. package/dist/helpers/document_templates.queries.js +56 -0
  48. package/dist/helpers/documents_server.d.ts +226 -0
  49. package/dist/helpers/documents_server.js +38 -0
  50. package/dist/helpers/email.d.ts +0 -6
  51. package/dist/helpers/email.js +1 -19
  52. package/dist/helpers/embeddings.d.ts +0 -5
  53. package/dist/helpers/embeddings.js +2 -19
  54. package/dist/helpers/embeddings.queries.d.ts +7 -0
  55. package/dist/helpers/{embeddings.internal.js → embeddings.queries.js} +2 -2
  56. package/dist/helpers/eventUtils.d.ts +3 -12
  57. package/dist/helpers/eventUtils.js +0 -10
  58. package/dist/helpers/events.d.ts +0 -1
  59. package/dist/helpers/events.js +7 -107
  60. package/dist/helpers/events.queries.d.ts +17 -0
  61. package/dist/helpers/{events.internal.js → events.queries.js} +24 -15
  62. package/dist/helpers/health_metrics.js +3 -38
  63. package/dist/helpers/health_metrics.queries.d.ts +12 -0
  64. package/dist/helpers/health_metrics.queries.js +39 -0
  65. package/dist/helpers/heartbeats.js +4 -83
  66. package/dist/helpers/heartbeats.queries.d.ts +11 -0
  67. package/dist/helpers/heartbeats.queries.js +76 -0
  68. package/dist/helpers/herd_allowed_domains.js +2 -12
  69. package/dist/helpers/{herd_allowed_domains_internal.d.ts → herd_allowed_domains.queries.d.ts} +1 -1
  70. package/dist/helpers/{herd_allowed_domains_internal.js → herd_allowed_domains.queries.js} +2 -2
  71. package/dist/helpers/herd_credentials_server.d.ts +76 -0
  72. package/dist/helpers/herd_credentials_server.js +22 -0
  73. package/dist/helpers/herd_modules.queries.js +10 -7
  74. package/dist/helpers/herd_roles.js +13 -148
  75. package/dist/helpers/herd_roles.queries.d.ts +18 -0
  76. package/dist/helpers/{herd_roles_internal.js → herd_roles.queries.js} +28 -28
  77. package/dist/helpers/herds.js +5 -47
  78. package/dist/helpers/herds.queries.d.ts +8 -1
  79. package/dist/helpers/herds.queries.js +48 -0
  80. package/dist/helpers/invitations.js +7 -58
  81. package/dist/helpers/invitations.queries.d.ts +10 -0
  82. package/dist/helpers/{invitations_internal.js → invitations.queries.js} +12 -12
  83. package/dist/helpers/issuers.js +6 -52
  84. package/dist/helpers/issuers.queries.d.ts +9 -0
  85. package/dist/helpers/issuers.queries.js +53 -0
  86. package/dist/helpers/layers.js +2 -20
  87. package/dist/helpers/layers.queries.d.ts +2 -1
  88. package/dist/helpers/layers.queries.js +9 -13
  89. package/dist/helpers/lifecycle_server.d.ts +178 -0
  90. package/dist/helpers/lifecycle_server.js +38 -0
  91. package/dist/helpers/localizations.js +5 -42
  92. package/dist/helpers/localizations.queries.d.ts +8 -0
  93. package/dist/helpers/localizations.queries.js +45 -0
  94. package/dist/helpers/maintenance_requests_server.d.ts +124 -0
  95. package/dist/helpers/maintenance_requests_server.js +34 -0
  96. package/dist/helpers/manufacturers.js +5 -43
  97. package/dist/helpers/manufacturers.queries.d.ts +10 -0
  98. package/dist/helpers/manufacturers.queries.js +46 -0
  99. package/dist/helpers/media_urls.d.ts +13 -0
  100. package/dist/helpers/media_urls.js +21 -0
  101. package/dist/helpers/models.js +8 -80
  102. package/dist/helpers/models.queries.d.ts +13 -0
  103. package/dist/helpers/models.queries.js +79 -0
  104. package/dist/helpers/observations_server.d.ts +51 -0
  105. package/dist/helpers/observations_server.js +22 -0
  106. package/dist/helpers/operating_contexts.js +39 -154
  107. package/dist/helpers/operating_contexts.queries.d.ts +48 -0
  108. package/dist/helpers/operating_contexts.queries.js +223 -0
  109. package/dist/helpers/operators.js +4 -57
  110. package/dist/helpers/operators.queries.d.ts +7 -0
  111. package/dist/helpers/operators.queries.js +55 -0
  112. package/dist/helpers/parts.d.ts +0 -87
  113. package/dist/helpers/parts.js +1 -89
  114. package/dist/helpers/parts_server.d.ts +260 -0
  115. package/dist/helpers/parts_server.js +71 -0
  116. package/dist/helpers/pins_server.d.ts +118 -0
  117. package/dist/helpers/pins_server.js +38 -0
  118. package/dist/helpers/plans.js +4 -56
  119. package/dist/helpers/plans.queries.d.ts +4 -1
  120. package/dist/helpers/plans.queries.js +39 -12
  121. package/dist/helpers/points_for_user_server.d.ts +9 -0
  122. package/dist/helpers/points_for_user_server.js +14 -0
  123. package/dist/helpers/product_compatibilities.js +6 -78
  124. package/dist/helpers/product_compatibilities.queries.d.ts +9 -0
  125. package/dist/helpers/product_compatibilities.queries.js +83 -0
  126. package/dist/helpers/product_numbers.js +6 -55
  127. package/dist/helpers/product_numbers.queries.d.ts +9 -0
  128. package/dist/helpers/product_numbers.queries.js +58 -0
  129. package/dist/helpers/products.js +6 -54
  130. package/dist/helpers/products.queries.d.ts +11 -0
  131. package/dist/helpers/products.queries.js +58 -0
  132. package/dist/helpers/providers.js +5 -71
  133. package/dist/helpers/providers.queries.d.ts +5 -1
  134. package/dist/helpers/providers.queries.js +52 -11
  135. package/dist/helpers/pubsub_token_server.d.ts +1 -0
  136. package/dist/helpers/pubsub_token_server.js +5 -2
  137. package/dist/helpers/segmentations_sam3.js +5 -78
  138. package/dist/helpers/segmentations_sam3.queries.d.ts +16 -0
  139. package/dist/helpers/segmentations_sam3.queries.js +81 -0
  140. package/dist/helpers/sensor_poses_server.d.ts +98 -0
  141. package/dist/helpers/sensor_poses_server.js +26 -0
  142. package/dist/helpers/session_incidents_server.d.ts +106 -0
  143. package/dist/helpers/session_incidents_server.js +22 -0
  144. package/dist/helpers/session_summaries.d.ts +2 -0
  145. package/dist/helpers/session_summaries.js +7 -23
  146. package/dist/helpers/session_summaries.queries.d.ts +6 -3
  147. package/dist/helpers/session_summaries.queries.js +27 -0
  148. package/dist/helpers/sessions.js +8 -122
  149. package/dist/helpers/sessions.queries.d.ts +14 -2
  150. package/dist/helpers/sessions.queries.js +88 -1
  151. package/dist/helpers/storage.js +0 -1
  152. package/dist/helpers/supabase_auth.d.ts +6 -0
  153. package/dist/helpers/supabase_auth.js +37 -0
  154. package/dist/helpers/tags.d.ts +0 -1
  155. package/dist/helpers/tags.js +13 -559
  156. package/dist/helpers/tags.queries.d.ts +33 -0
  157. package/dist/helpers/tags.queries.js +454 -0
  158. package/dist/helpers/user_credentials_server.d.ts +76 -0
  159. package/dist/helpers/user_credentials_server.js +22 -0
  160. package/dist/helpers/users.d.ts +2 -2
  161. package/dist/helpers/users.js +8 -107
  162. package/dist/helpers/users.queries.d.ts +9 -1
  163. package/dist/helpers/users.queries.js +107 -0
  164. package/dist/helpers/versions_software.d.ts +3 -1
  165. package/dist/helpers/versions_software.js +24 -0
  166. package/dist/helpers/versions_software_server.d.ts +83 -4
  167. package/dist/helpers/versions_software_server.js +23 -50
  168. package/dist/helpers/zones.d.ts +1 -16
  169. package/dist/helpers/zones.js +4 -104
  170. package/dist/helpers/zones.queries.d.ts +6 -0
  171. package/dist/helpers/zones.queries.js +78 -0
  172. package/dist/hooks/useAuthorizedRealtimeTopics.js +8 -2
  173. package/dist/hooks/useInfiniteQuery.js +18 -14
  174. package/dist/hooks/useScoutRealtimeBroadcast.js +8 -6
  175. package/dist/hooks/useScoutRealtimeDocuments.js +3 -2
  176. package/dist/hooks/useScoutRefresh.d.ts +9 -25
  177. package/dist/hooks/useScoutRefresh.js +33 -213
  178. package/dist/providers/ScoutRefreshProvider.d.ts +1 -1
  179. package/dist/providers/ScoutRefreshProvider.js +56 -13
  180. package/dist/server/index.d.ts +78 -0
  181. package/dist/server/index.js +80 -0
  182. package/dist/server/middleware.d.ts +2 -0
  183. package/dist/server/middleware.js +2 -0
  184. package/dist/server/supabase.d.ts +2 -0
  185. package/dist/server/supabase.js +2 -0
  186. package/dist/store/api.d.ts +40 -40
  187. package/dist/store/api.js +38 -109
  188. package/dist/store/configureStore.d.ts +0 -55
  189. package/dist/store/configureStore.js +1 -8
  190. package/dist/store/hooks.js +1 -0
  191. package/dist/supabase/client.d.ts +3 -0
  192. package/dist/supabase/client.js +10 -0
  193. package/dist/supabase/middleware.d.ts +1 -0
  194. package/dist/supabase/middleware.js +6 -20
  195. package/dist/supabase/server.d.ts +7 -2
  196. package/dist/supabase/server.js +13 -1
  197. package/dist/types/db.d.ts +47 -3
  198. package/dist/types/index.d.ts +5 -0
  199. package/dist/types/index.js +5 -0
  200. package/dist/types/supabase.d.ts +512 -0
  201. package/package.json +53 -4
  202. package/dist/api_keys/index.d.ts +0 -1
  203. package/dist/api_keys/index.js +0 -1
  204. package/dist/helpers/artifacts.internal.d.ts +0 -22
  205. package/dist/helpers/client_abilities_jwt_keys_internal.d.ts +0 -9
  206. package/dist/helpers/client_abilities_jwt_keys_internal.js +0 -20
  207. package/dist/helpers/connectivity.internal.d.ts +0 -10
  208. package/dist/helpers/connectivity.internal.js +0 -47
  209. package/dist/helpers/credentials.d.ts +0 -9
  210. package/dist/helpers/credentials.js +0 -92
  211. package/dist/helpers/embeddings.internal.d.ts +0 -5
  212. package/dist/helpers/events.internal.d.ts +0 -13
  213. package/dist/helpers/herd_roles_internal.d.ts +0 -18
  214. package/dist/helpers/index.d.ts +0 -56
  215. package/dist/helpers/index.js +0 -56
  216. package/dist/helpers/invitations_internal.d.ts +0 -10
  217. package/dist/helpers/versions_software_internal.d.ts +0 -6
  218. package/dist/helpers/versions_software_internal.js +0 -53
  219. package/dist/hooks/useDeviceDisplayName.d.ts +0 -8
  220. package/dist/hooks/useDeviceDisplayName.js +0 -49
  221. package/dist/index.d.ts +0 -108
  222. package/dist/index.js +0 -114
  223. package/dist/supabase/index.d.ts +0 -2
  224. package/dist/supabase/index.js +0 -2
@@ -0,0 +1,9 @@
1
+ import { SupabaseClient } from "@supabase/supabase-js";
2
+ import { IProduct, IProductNumber, ProductNumberInsert, ProductNumberUpdate } from "../types/db";
3
+ import { IWebResponseCompatible } from "../types/requests";
4
+ import { Database } from "../types/supabase";
5
+ export declare function get_product_numbers_by_product_query(client: SupabaseClient<Database>, product_id: number): Promise<IWebResponseCompatible<IProductNumber[]>>;
6
+ export declare function get_product_number_query(client: SupabaseClient<Database>, product_number: string): Promise<IWebResponseCompatible<IProductNumber | null>>;
7
+ export declare function get_product_for_product_number_query(client: SupabaseClient<Database>, product_number: string): Promise<IWebResponseCompatible<IProduct | null>>;
8
+ export declare function create_product_number_query(client: SupabaseClient<Database>, row: ProductNumberInsert): Promise<IWebResponseCompatible<IProductNumber | null>>;
9
+ export declare function update_product_number_query(client: SupabaseClient<Database>, product_number: string, updates: ProductNumberUpdate): Promise<IWebResponseCompatible<IProductNumber | null>>;
@@ -0,0 +1,58 @@
1
+ import { EnumWebResponse, IWebResponse, } from "../types/requests";
2
+ export async function get_product_numbers_by_product_query(client, product_id) {
3
+ const { data, error } = await client
4
+ .from("product_numbers")
5
+ .select("*")
6
+ .eq("product_id", product_id)
7
+ .order("product_number");
8
+ if (error) {
9
+ return { status: EnumWebResponse.ERROR, msg: error.message, data: [] };
10
+ }
11
+ return IWebResponse.success(data ?? []).to_compatible();
12
+ }
13
+ export async function get_product_number_query(client, product_number) {
14
+ const { data, error } = await client
15
+ .from("product_numbers")
16
+ .select("*")
17
+ .eq("product_number", product_number)
18
+ .maybeSingle();
19
+ if (error) {
20
+ return { status: EnumWebResponse.ERROR, msg: error.message, data: null };
21
+ }
22
+ return IWebResponse.success(data).to_compatible();
23
+ }
24
+ export async function get_product_for_product_number_query(client, product_number) {
25
+ const { data, error } = await client
26
+ .from("product_numbers")
27
+ .select("products!product_numbers_product_id_fkey(*)")
28
+ .eq("product_number", product_number)
29
+ .maybeSingle();
30
+ if (error) {
31
+ return { status: EnumWebResponse.ERROR, msg: error.message, data: null };
32
+ }
33
+ const product = data?.products ?? null;
34
+ return IWebResponse.success(product).to_compatible();
35
+ }
36
+ export async function create_product_number_query(client, row) {
37
+ const { data, error } = await client
38
+ .from("product_numbers")
39
+ .insert(row)
40
+ .select("*")
41
+ .single();
42
+ if (error) {
43
+ return { status: EnumWebResponse.ERROR, msg: error.message, data: null };
44
+ }
45
+ return IWebResponse.success(data).to_compatible();
46
+ }
47
+ export async function update_product_number_query(client, product_number, updates) {
48
+ const { data, error } = await client
49
+ .from("product_numbers")
50
+ .update(updates)
51
+ .eq("product_number", product_number)
52
+ .select("*")
53
+ .single();
54
+ if (error) {
55
+ return { status: EnumWebResponse.ERROR, msg: error.message, data: null };
56
+ }
57
+ return IWebResponse.success(data).to_compatible();
58
+ }
@@ -1,65 +1,17 @@
1
- "use server";
2
1
  import { newServerClient } from "../supabase/server";
3
- import { EnumWebResponse, IWebResponse, } from "../types/requests";
2
+ import { create_product_query, get_product_by_id_query, get_products_by_manufacturer_query, get_products_query, update_product_query, } from "./products.queries";
4
3
  export async function server_get_products(options) {
5
- const supabase = await newServerClient();
6
- let query = supabase.from("products").select("*").order("name");
7
- if (!options?.include_inactive) {
8
- query = query.eq("lifecycle", "active");
9
- }
10
- const { data, error } = await query;
11
- if (error) {
12
- return { status: EnumWebResponse.ERROR, msg: error.message, data: [] };
13
- }
14
- return IWebResponse.success(data ?? []).to_compatible();
4
+ return get_products_query(await newServerClient(), options);
15
5
  }
16
6
  export async function server_get_product_by_id(product_id) {
17
- const supabase = await newServerClient();
18
- const { data, error } = await supabase
19
- .from("products")
20
- .select("*")
21
- .eq("id", product_id)
22
- .maybeSingle();
23
- if (error) {
24
- return { status: EnumWebResponse.ERROR, msg: error.message, data: null };
25
- }
26
- return IWebResponse.success(data).to_compatible();
7
+ return get_product_by_id_query(await newServerClient(), product_id);
27
8
  }
28
9
  export async function server_get_products_by_manufacturer(manufacturer_id) {
29
- const supabase = await newServerClient();
30
- const { data, error } = await supabase
31
- .from("products")
32
- .select("*")
33
- .eq("manufacturer_id", manufacturer_id)
34
- .eq("lifecycle", "active")
35
- .order("name");
36
- if (error) {
37
- return { status: EnumWebResponse.ERROR, msg: error.message, data: [] };
38
- }
39
- return IWebResponse.success(data ?? []).to_compatible();
10
+ return get_products_by_manufacturer_query(await newServerClient(), manufacturer_id);
40
11
  }
41
12
  export async function server_create_product(row) {
42
- const supabase = await newServerClient();
43
- const { data, error } = await supabase
44
- .from("products")
45
- .insert(row)
46
- .select("*")
47
- .single();
48
- if (error) {
49
- return { status: EnumWebResponse.ERROR, msg: error.message, data: null };
50
- }
51
- return IWebResponse.success(data).to_compatible();
13
+ return create_product_query(await newServerClient(), row);
52
14
  }
53
15
  export async function server_update_product(product_id, updates) {
54
- const supabase = await newServerClient();
55
- const { data, error } = await supabase
56
- .from("products")
57
- .update(updates)
58
- .eq("id", product_id)
59
- .select("*")
60
- .single();
61
- if (error) {
62
- return { status: EnumWebResponse.ERROR, msg: error.message, data: null };
63
- }
64
- return IWebResponse.success(data).to_compatible();
16
+ return update_product_query(await newServerClient(), product_id, updates);
65
17
  }
@@ -0,0 +1,11 @@
1
+ import { SupabaseClient } from "@supabase/supabase-js";
2
+ import { IProduct, ProductInsert, ProductUpdate } from "../types/db";
3
+ import { IWebResponseCompatible } from "../types/requests";
4
+ import { Database } from "../types/supabase";
5
+ export declare function get_products_query(client: SupabaseClient<Database>, options?: {
6
+ include_inactive?: boolean;
7
+ }): Promise<IWebResponseCompatible<IProduct[]>>;
8
+ export declare function get_product_by_id_query(client: SupabaseClient<Database>, product_id: number): Promise<IWebResponseCompatible<IProduct | null>>;
9
+ export declare function get_products_by_manufacturer_query(client: SupabaseClient<Database>, manufacturer_id: number): Promise<IWebResponseCompatible<IProduct[]>>;
10
+ export declare function create_product_query(client: SupabaseClient<Database>, row: ProductInsert): Promise<IWebResponseCompatible<IProduct | null>>;
11
+ export declare function update_product_query(client: SupabaseClient<Database>, product_id: number, updates: ProductUpdate): Promise<IWebResponseCompatible<IProduct | null>>;
@@ -0,0 +1,58 @@
1
+ import { EnumWebResponse, IWebResponse, } from "../types/requests";
2
+ export async function get_products_query(client, options) {
3
+ let query = client.from("products").select("*").order("name");
4
+ if (!options?.include_inactive) {
5
+ query = query.eq("lifecycle", "active");
6
+ }
7
+ const { data, error } = await query;
8
+ if (error) {
9
+ return { status: EnumWebResponse.ERROR, msg: error.message, data: [] };
10
+ }
11
+ return IWebResponse.success(data ?? []).to_compatible();
12
+ }
13
+ export async function get_product_by_id_query(client, product_id) {
14
+ const { data, error } = await client
15
+ .from("products")
16
+ .select("*")
17
+ .eq("id", product_id)
18
+ .maybeSingle();
19
+ if (error) {
20
+ return { status: EnumWebResponse.ERROR, msg: error.message, data: null };
21
+ }
22
+ return IWebResponse.success(data).to_compatible();
23
+ }
24
+ export async function get_products_by_manufacturer_query(client, manufacturer_id) {
25
+ const { data, error } = await client
26
+ .from("products")
27
+ .select("*")
28
+ .eq("manufacturer_id", manufacturer_id)
29
+ .eq("lifecycle", "active")
30
+ .order("name");
31
+ if (error) {
32
+ return { status: EnumWebResponse.ERROR, msg: error.message, data: [] };
33
+ }
34
+ return IWebResponse.success(data ?? []).to_compatible();
35
+ }
36
+ export async function create_product_query(client, row) {
37
+ const { data, error } = await client
38
+ .from("products")
39
+ .insert(row)
40
+ .select("*")
41
+ .single();
42
+ if (error) {
43
+ return { status: EnumWebResponse.ERROR, msg: error.message, data: null };
44
+ }
45
+ return IWebResponse.success(data).to_compatible();
46
+ }
47
+ export async function update_product_query(client, product_id, updates) {
48
+ const { data, error } = await client
49
+ .from("products")
50
+ .update(updates)
51
+ .eq("id", product_id)
52
+ .select("*")
53
+ .single();
54
+ if (error) {
55
+ return { status: EnumWebResponse.ERROR, msg: error.message, data: null };
56
+ }
57
+ return IWebResponse.success(data).to_compatible();
58
+ }
@@ -1,83 +1,17 @@
1
- "use server";
2
1
  import { newServerClient } from "../supabase/server";
3
- import { EnumWebResponse, IWebResponse, } from "../types/requests";
4
- import { get_providers_by_herd_ids_query } from "./herd_scoped.queries";
5
- // function that fetches the providers from our db given a herd id
2
+ import { create_provider_query, delete_providers_by_ids_query, get_providers_by_herd_ids_query, get_providers_by_herd_query, update_provider_query, } from "./providers.queries";
6
3
  export async function server_get_providers_by_herd(herd_id) {
7
- const supabase = await newServerClient();
8
- const { data, error } = await supabase
9
- .from("providers")
10
- .select("*")
11
- .eq("herd_id", herd_id);
12
- if (error) {
13
- return {
14
- status: EnumWebResponse.ERROR,
15
- msg: error.message,
16
- data: null,
17
- };
18
- }
19
- else {
20
- return IWebResponse.success(data).to_compatible();
21
- }
4
+ return get_providers_by_herd_query(await newServerClient(), herd_id);
22
5
  }
23
- // Fetches providers for many herds in one query, grouped by herd_id.
24
6
  export async function server_get_providers_by_herd_ids(herd_ids) {
25
7
  return get_providers_by_herd_ids_query(await newServerClient(), herd_ids);
26
8
  }
27
- // function that creates a new provider in our db
28
9
  export async function server_create_provider(provider) {
29
- const supabase = await newServerClient();
30
- const { data, error } = await supabase
31
- .from("providers")
32
- .insert(provider)
33
- .select("*")
34
- .single();
35
- if (error) {
36
- return {
37
- status: EnumWebResponse.ERROR,
38
- msg: error.message,
39
- data: null,
40
- };
41
- }
42
- else {
43
- return IWebResponse.success(data).to_compatible();
44
- }
10
+ return create_provider_query(await newServerClient(), provider);
45
11
  }
46
- // function that updates a provider in our db
47
12
  export async function server_update_provider(provider_id, updates) {
48
- const supabase = await newServerClient();
49
- const { data, error } = await supabase
50
- .from("providers")
51
- .update(updates)
52
- .eq("id", provider_id)
53
- .select("*")
54
- .single();
55
- if (error) {
56
- return {
57
- status: EnumWebResponse.ERROR,
58
- msg: error.message,
59
- data: null,
60
- };
61
- }
62
- else {
63
- return IWebResponse.success(data).to_compatible();
64
- }
13
+ return update_provider_query(await newServerClient(), provider_id, updates);
65
14
  }
66
- // function that deletes providers by ids
67
15
  export async function server_delete_providers_by_ids(provider_ids) {
68
- const supabase = await newServerClient();
69
- const { error } = await supabase
70
- .from("providers")
71
- .delete()
72
- .in("id", provider_ids);
73
- if (error) {
74
- return {
75
- status: EnumWebResponse.ERROR,
76
- msg: error.message,
77
- data: false,
78
- };
79
- }
80
- else {
81
- return IWebResponse.success(true).to_compatible();
82
- }
16
+ return delete_providers_by_ids_query(await newServerClient(), provider_ids);
83
17
  }
@@ -2,4 +2,8 @@ import { SupabaseClient } from "@supabase/supabase-js";
2
2
  import { IProvider } from "../types/db";
3
3
  import { Database } from "../types/supabase";
4
4
  import { IWebResponseCompatible } from "../types/requests";
5
- export declare function get_providers_by_herd_ids_query(client: SupabaseClient<Database>, herd_ids: number[]): Promise<IWebResponseCompatible<Record<number, IProvider[]>>>;
5
+ export { get_providers_by_herd_ids_query } from "./herd_scoped.queries";
6
+ export declare function get_providers_by_herd_query(client: SupabaseClient<Database>, herd_id: number): Promise<IWebResponseCompatible<IProvider[]>>;
7
+ export declare function create_provider_query(client: SupabaseClient<Database>, provider: Omit<IProvider, "id" | "created_at">): Promise<IWebResponseCompatible<IProvider>>;
8
+ export declare function update_provider_query(client: SupabaseClient<Database>, provider_id: number, updates: Partial<Omit<IProvider, "id" | "created_at">>): Promise<IWebResponseCompatible<IProvider>>;
9
+ export declare function delete_providers_by_ids_query(client: SupabaseClient<Database>, provider_ids: number[]): Promise<IWebResponseCompatible<boolean>>;
@@ -1,20 +1,61 @@
1
1
  import { EnumWebResponse, IWebResponse, } from "../types/requests";
2
- export async function get_providers_by_herd_ids_query(client, herd_ids) {
3
- var _a;
4
- if (herd_ids.length === 0) {
5
- return IWebResponse.success({}).to_compatible();
2
+ export { get_providers_by_herd_ids_query } from "./herd_scoped.queries";
3
+ export async function get_providers_by_herd_query(client, herd_id) {
4
+ const { data, error } = await client
5
+ .from("providers")
6
+ .select("*")
7
+ .eq("herd_id", herd_id);
8
+ if (error) {
9
+ return {
10
+ status: EnumWebResponse.ERROR,
11
+ msg: error.message,
12
+ data: null,
13
+ };
14
+ }
15
+ return IWebResponse.success(data).to_compatible();
16
+ }
17
+ export async function create_provider_query(client, provider) {
18
+ const { data, error } = await client
19
+ .from("providers")
20
+ .insert(provider)
21
+ .select("*")
22
+ .single();
23
+ if (error) {
24
+ return {
25
+ status: EnumWebResponse.ERROR,
26
+ msg: error.message,
27
+ data: null,
28
+ };
6
29
  }
30
+ return IWebResponse.success(data).to_compatible();
31
+ }
32
+ export async function update_provider_query(client, provider_id, updates) {
7
33
  const { data, error } = await client
8
34
  .from("providers")
35
+ .update(updates)
36
+ .eq("id", provider_id)
9
37
  .select("*")
10
- .in("herd_id", herd_ids)
11
- .order("id", { ascending: true });
38
+ .single();
12
39
  if (error) {
13
- return { status: EnumWebResponse.ERROR, msg: error.message, data: null };
40
+ return {
41
+ status: EnumWebResponse.ERROR,
42
+ msg: error.message,
43
+ data: null,
44
+ };
14
45
  }
15
- const grouped = {};
16
- for (const row of data ?? []) {
17
- (grouped[_a = row.herd_id] ?? (grouped[_a] = [])).push(row);
46
+ return IWebResponse.success(data).to_compatible();
47
+ }
48
+ export async function delete_providers_by_ids_query(client, provider_ids) {
49
+ const { error } = await client
50
+ .from("providers")
51
+ .delete()
52
+ .in("id", provider_ids);
53
+ if (error) {
54
+ return {
55
+ status: EnumWebResponse.ERROR,
56
+ msg: error.message,
57
+ data: false,
58
+ };
18
59
  }
19
- return IWebResponse.success(grouped).to_compatible();
60
+ return IWebResponse.success(true).to_compatible();
20
61
  }
@@ -1,3 +1,4 @@
1
1
  import { IPubsubTokenMint } from "../types/pubsub_token";
2
2
  import { IWebResponseCompatible } from "../types/requests";
3
3
  export declare function server_mint_pubsub_token(): Promise<IWebResponseCompatible<IPubsubTokenMint>>;
4
+ export declare function server_get_pubsub_jwt_public_keys(): Promise<IWebResponseCompatible<import("../types").IPubsubJwtPublicKeyEntry[]>>;
@@ -1,7 +1,10 @@
1
- "use server";
2
1
  import { newServerClient } from "../supabase/server";
3
- import { mint_pubsub_token } from "./pubsub_token";
2
+ import { get_pubsub_jwt_public_keys, mint_pubsub_token, } from "./pubsub_token";
4
3
  export async function server_mint_pubsub_token() {
5
4
  const client = await newServerClient();
6
5
  return mint_pubsub_token(client);
7
6
  }
7
+ export async function server_get_pubsub_jwt_public_keys() {
8
+ const client = await newServerClient();
9
+ return get_pubsub_jwt_public_keys(client);
10
+ }
@@ -1,91 +1,18 @@
1
- "use server";
2
1
  import { newServerClient } from "../supabase/server";
3
- import { EnumWebResponse, IWebResponse, } from "../types/requests";
2
+ import { get_segmentations_sam3_for_artifact_by_frame_index_query, get_segmentations_sam3_for_artifact_by_subject_id_query, get_segmentations_sam3_for_artifact_query, get_segmentations_sam3_for_event_query, } from "./segmentations_sam3.queries";
4
3
  /** SAM3 masks for an artifact; optional timestamp_observation range and max_elements (omit or null for no limit). */
5
4
  export async function server_get_segmentations_sam3_for_artifact(artifactId, options) {
6
- const supabase = await newServerClient();
7
- const { data, error } = await supabase.rpc("get_segmentations_sam3_for_artifact", {
8
- artifact_id_caller: artifactId,
9
- ...(options?.start_timestamp != null && {
10
- start_timestamp_caller: options.start_timestamp,
11
- }),
12
- ...(options?.end_timestamp != null && {
13
- end_timestamp_caller: options.end_timestamp,
14
- }),
15
- ...(options?.max_elements != null && {
16
- max_elements_caller: options.max_elements,
17
- }),
18
- });
19
- if (error) {
20
- console.warn("Error fetching segmentations_sam3 for artifact:", error.message);
21
- return {
22
- status: EnumWebResponse.ERROR,
23
- msg: error.message,
24
- data: [],
25
- };
26
- }
27
- return IWebResponse.success(data ?? []).to_compatible();
5
+ return get_segmentations_sam3_for_artifact_query(await newServerClient(), artifactId, options);
28
6
  }
29
7
  /** SAM3 masks for an event; optional timestamp_observation range and max_elements (omit or null for no limit). */
30
8
  export async function server_get_segmentations_sam3_for_event(eventId, options) {
31
- const supabase = await newServerClient();
32
- const { data, error } = await supabase.rpc("get_segmentations_sam3_for_event", {
33
- event_id_caller: eventId,
34
- ...(options?.start_timestamp != null && {
35
- start_timestamp_caller: options.start_timestamp,
36
- }),
37
- ...(options?.end_timestamp != null && {
38
- end_timestamp_caller: options.end_timestamp,
39
- }),
40
- ...(options?.max_elements != null && {
41
- max_elements_caller: options.max_elements,
42
- }),
43
- });
44
- if (error) {
45
- console.warn("Error fetching segmentations_sam3 for event:", error.message);
46
- return {
47
- status: EnumWebResponse.ERROR,
48
- msg: error.message,
49
- data: [],
50
- };
51
- }
52
- return IWebResponse.success(data ?? []).to_compatible();
9
+ return get_segmentations_sam3_for_event_query(await newServerClient(), eventId, options);
53
10
  }
54
11
  /** SAM3 masks for an artifact by inclusive frame_index range; optional min_conf and max_elements (omit or null for no limit on rows). */
55
12
  export async function server_get_segmentations_sam3_for_artifact_by_frame_index(artifactId, frameIndexStart, frameIndexEnd, minConf = null, maxElements = null) {
56
- const supabase = await newServerClient();
57
- const { data, error } = await supabase.rpc("get_segmentations_sam3_for_artifact_by_frame_index", {
58
- artifact_id_caller: artifactId,
59
- frame_index_start_caller: frameIndexStart,
60
- frame_index_end_caller: frameIndexEnd,
61
- ...(minConf != null && { min_conf_caller: minConf }),
62
- ...(maxElements != null && { max_elements_caller: maxElements }),
63
- });
64
- if (error) {
65
- console.warn("Error fetching segmentations_sam3 for artifact by frame index:", error.message);
66
- return {
67
- status: EnumWebResponse.ERROR,
68
- msg: error.message,
69
- data: [],
70
- };
71
- }
72
- return IWebResponse.success(data ?? []).to_compatible();
13
+ return get_segmentations_sam3_for_artifact_by_frame_index_query(await newServerClient(), artifactId, frameIndexStart, frameIndexEnd, minConf, maxElements);
73
14
  }
74
15
  /** SAM3 masks for an artifact and subject_id; omit maxElements (or null) for no row limit. */
75
16
  export async function server_get_segmentations_sam3_for_artifact_by_subject_id(artifactId, subjectId, maxElements = null) {
76
- const supabase = await newServerClient();
77
- const { data, error } = await supabase.rpc("get_segmentations_sam3_for_artifact_by_subject_id", {
78
- artifact_id_caller: artifactId,
79
- subject_id_caller: subjectId,
80
- ...(maxElements != null && { max_elements_caller: maxElements }),
81
- });
82
- if (error) {
83
- console.warn("Error fetching segmentations_sam3 for artifact by subject id:", error.message);
84
- return {
85
- status: EnumWebResponse.ERROR,
86
- msg: error.message,
87
- data: [],
88
- };
89
- }
90
- return IWebResponse.success(data ?? []).to_compatible();
17
+ return get_segmentations_sam3_for_artifact_by_subject_id_query(await newServerClient(), artifactId, subjectId, maxElements);
91
18
  }
@@ -0,0 +1,16 @@
1
+ import { SupabaseClient } from "@supabase/supabase-js";
2
+ import { ISegmentationSam3Pretty } from "../types/db";
3
+ import { IWebResponseCompatible } from "../types/requests";
4
+ import { Database } from "../types/supabase";
5
+ export declare function get_segmentations_sam3_for_artifact_query(client: SupabaseClient<Database>, artifactId: number, options?: {
6
+ start_timestamp?: string | null;
7
+ end_timestamp?: string | null;
8
+ max_elements?: number | null;
9
+ }): Promise<IWebResponseCompatible<ISegmentationSam3Pretty[]>>;
10
+ export declare function get_segmentations_sam3_for_event_query(client: SupabaseClient<Database>, eventId: number, options?: {
11
+ start_timestamp?: string | null;
12
+ end_timestamp?: string | null;
13
+ max_elements?: number | null;
14
+ }): Promise<IWebResponseCompatible<ISegmentationSam3Pretty[]>>;
15
+ export declare function get_segmentations_sam3_for_artifact_by_frame_index_query(client: SupabaseClient<Database>, artifactId: number, frameIndexStart: number, frameIndexEnd: number, minConf?: number | null, maxElements?: number | null): Promise<IWebResponseCompatible<ISegmentationSam3Pretty[]>>;
16
+ export declare function get_segmentations_sam3_for_artifact_by_subject_id_query(client: SupabaseClient<Database>, artifactId: number, subjectId: number, maxElements?: number | null): Promise<IWebResponseCompatible<ISegmentationSam3Pretty[]>>;
@@ -0,0 +1,81 @@
1
+ import { EnumWebResponse, IWebResponse, } from "../types/requests";
2
+ export async function get_segmentations_sam3_for_artifact_query(client, artifactId, options) {
3
+ const { data, error } = await client.rpc("get_segmentations_sam3_for_artifact", {
4
+ artifact_id_caller: artifactId,
5
+ ...(options?.start_timestamp != null && {
6
+ start_timestamp_caller: options.start_timestamp,
7
+ }),
8
+ ...(options?.end_timestamp != null && {
9
+ end_timestamp_caller: options.end_timestamp,
10
+ }),
11
+ ...(options?.max_elements != null && {
12
+ max_elements_caller: options.max_elements,
13
+ }),
14
+ });
15
+ if (error) {
16
+ console.warn("Error fetching segmentations_sam3 for artifact:", error.message);
17
+ return {
18
+ status: EnumWebResponse.ERROR,
19
+ msg: error.message,
20
+ data: [],
21
+ };
22
+ }
23
+ return IWebResponse.success(data ?? []).to_compatible();
24
+ }
25
+ export async function get_segmentations_sam3_for_event_query(client, eventId, options) {
26
+ const { data, error } = await client.rpc("get_segmentations_sam3_for_event", {
27
+ event_id_caller: eventId,
28
+ ...(options?.start_timestamp != null && {
29
+ start_timestamp_caller: options.start_timestamp,
30
+ }),
31
+ ...(options?.end_timestamp != null && {
32
+ end_timestamp_caller: options.end_timestamp,
33
+ }),
34
+ ...(options?.max_elements != null && {
35
+ max_elements_caller: options.max_elements,
36
+ }),
37
+ });
38
+ if (error) {
39
+ console.warn("Error fetching segmentations_sam3 for event:", error.message);
40
+ return {
41
+ status: EnumWebResponse.ERROR,
42
+ msg: error.message,
43
+ data: [],
44
+ };
45
+ }
46
+ return IWebResponse.success(data ?? []).to_compatible();
47
+ }
48
+ export async function get_segmentations_sam3_for_artifact_by_frame_index_query(client, artifactId, frameIndexStart, frameIndexEnd, minConf = null, maxElements = null) {
49
+ const { data, error } = await client.rpc("get_segmentations_sam3_for_artifact_by_frame_index", {
50
+ artifact_id_caller: artifactId,
51
+ frame_index_start_caller: frameIndexStart,
52
+ frame_index_end_caller: frameIndexEnd,
53
+ ...(minConf != null && { min_conf_caller: minConf }),
54
+ ...(maxElements != null && { max_elements_caller: maxElements }),
55
+ });
56
+ if (error) {
57
+ console.warn("Error fetching segmentations_sam3 for artifact by frame index:", error.message);
58
+ return {
59
+ status: EnumWebResponse.ERROR,
60
+ msg: error.message,
61
+ data: [],
62
+ };
63
+ }
64
+ return IWebResponse.success(data ?? []).to_compatible();
65
+ }
66
+ export async function get_segmentations_sam3_for_artifact_by_subject_id_query(client, artifactId, subjectId, maxElements = null) {
67
+ const { data, error } = await client.rpc("get_segmentations_sam3_for_artifact_by_subject_id", {
68
+ artifact_id_caller: artifactId,
69
+ subject_id_caller: subjectId,
70
+ ...(maxElements != null && { max_elements_caller: maxElements }),
71
+ });
72
+ if (error) {
73
+ console.warn("Error fetching segmentations_sam3 for artifact by subject id:", error.message);
74
+ return {
75
+ status: EnumWebResponse.ERROR,
76
+ msg: error.message,
77
+ data: [],
78
+ };
79
+ }
80
+ return IWebResponse.success(data ?? []).to_compatible();
81
+ }