@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,124 @@
1
+ import { MaintenanceRequestInsert, MaintenanceRequestUpdate } from "../types/db";
2
+ export declare function server_get_maintenance_requests_by_device_id(device_id: number): Promise<import("../types").IWebResponseCompatible<{
3
+ created_at: string;
4
+ creator_user_id: string | null;
5
+ defect_timestamp: string;
6
+ description: string;
7
+ device_id: number | null;
8
+ id: number;
9
+ image: string | null;
10
+ is_serviceable: boolean;
11
+ part_id: number | null;
12
+ remediation_completed_at: string | null;
13
+ remediation_completed_user_id: string | null;
14
+ remediation_notes: string | null;
15
+ session_incident_id: number | null;
16
+ updated_at: string | null;
17
+ updated_by_user_id: string | null;
18
+ }[]>>;
19
+ export declare function server_get_maintenance_requests_by_part_id(part_id: number): Promise<import("../types").IWebResponseCompatible<{
20
+ created_at: string;
21
+ creator_user_id: string | null;
22
+ defect_timestamp: string;
23
+ description: string;
24
+ device_id: number | null;
25
+ id: number;
26
+ image: string | null;
27
+ is_serviceable: boolean;
28
+ part_id: number | null;
29
+ remediation_completed_at: string | null;
30
+ remediation_completed_user_id: string | null;
31
+ remediation_notes: string | null;
32
+ session_incident_id: number | null;
33
+ updated_at: string | null;
34
+ updated_by_user_id: string | null;
35
+ }[]>>;
36
+ export declare function server_get_maintenance_requests_by_herd_id(herd_id: number, options?: {
37
+ limit?: number;
38
+ offset?: number;
39
+ }): Promise<import("../types").IWebResponseCompatible<{
40
+ created_at: string;
41
+ creator_user_id: string | null;
42
+ defect_timestamp: string;
43
+ description: string;
44
+ device_id: number | null;
45
+ id: number;
46
+ image: string | null;
47
+ is_serviceable: boolean;
48
+ part_id: number | null;
49
+ remediation_completed_at: string | null;
50
+ remediation_completed_user_id: string | null;
51
+ remediation_notes: string | null;
52
+ session_incident_id: number | null;
53
+ updated_at: string | null;
54
+ updated_by_user_id: string | null;
55
+ }[]>>;
56
+ export declare function server_get_maintenance_requests_count_by_herd_id(herd_id: number): Promise<import("../types").IWebResponseCompatible<number>>;
57
+ export declare function server_get_maintenance_request_by_id(request_id: number): Promise<import("../types").IWebResponseCompatible<{
58
+ created_at: string;
59
+ creator_user_id: string | null;
60
+ defect_timestamp: string;
61
+ description: string;
62
+ device_id: number | null;
63
+ id: number;
64
+ image: string | null;
65
+ is_serviceable: boolean;
66
+ part_id: number | null;
67
+ remediation_completed_at: string | null;
68
+ remediation_completed_user_id: string | null;
69
+ remediation_notes: string | null;
70
+ session_incident_id: number | null;
71
+ updated_at: string | null;
72
+ updated_by_user_id: string | null;
73
+ } | null>>;
74
+ export declare function server_create_maintenance_request(row: MaintenanceRequestInsert): Promise<import("../types").IWebResponseCompatible<{
75
+ created_at: string;
76
+ creator_user_id: string | null;
77
+ defect_timestamp: string;
78
+ description: string;
79
+ device_id: number | null;
80
+ id: number;
81
+ image: string | null;
82
+ is_serviceable: boolean;
83
+ part_id: number | null;
84
+ remediation_completed_at: string | null;
85
+ remediation_completed_user_id: string | null;
86
+ remediation_notes: string | null;
87
+ session_incident_id: number | null;
88
+ updated_at: string | null;
89
+ updated_by_user_id: string | null;
90
+ } | null>>;
91
+ export declare function server_update_maintenance_request(request_id: number, patch: MaintenanceRequestUpdate): Promise<import("../types").IWebResponseCompatible<{
92
+ created_at: string;
93
+ creator_user_id: string | null;
94
+ defect_timestamp: string;
95
+ description: string;
96
+ device_id: number | null;
97
+ id: number;
98
+ image: string | null;
99
+ is_serviceable: boolean;
100
+ part_id: number | null;
101
+ remediation_completed_at: string | null;
102
+ remediation_completed_user_id: string | null;
103
+ remediation_notes: string | null;
104
+ session_incident_id: number | null;
105
+ updated_at: string | null;
106
+ updated_by_user_id: string | null;
107
+ } | null>>;
108
+ export declare function server_delete_maintenance_request(request_id: number): Promise<import("../types").IWebResponseCompatible<{
109
+ created_at: string;
110
+ creator_user_id: string | null;
111
+ defect_timestamp: string;
112
+ description: string;
113
+ device_id: number | null;
114
+ id: number;
115
+ image: string | null;
116
+ is_serviceable: boolean;
117
+ part_id: number | null;
118
+ remediation_completed_at: string | null;
119
+ remediation_completed_user_id: string | null;
120
+ remediation_notes: string | null;
121
+ session_incident_id: number | null;
122
+ updated_at: string | null;
123
+ updated_by_user_id: string | null;
124
+ } | null>>;
@@ -0,0 +1,34 @@
1
+ import { newServerClient } from "../supabase/server";
2
+ import { create_maintenance_request, delete_maintenance_request, get_maintenance_request_by_id, get_maintenance_requests_by_device_id, get_maintenance_requests_by_herd_id, get_maintenance_requests_by_part_id, get_maintenance_requests_count_by_herd_id, update_maintenance_request, } from "./maintenance_requests";
3
+ export async function server_get_maintenance_requests_by_device_id(device_id) {
4
+ const client = await newServerClient();
5
+ return get_maintenance_requests_by_device_id(client, device_id);
6
+ }
7
+ export async function server_get_maintenance_requests_by_part_id(part_id) {
8
+ const client = await newServerClient();
9
+ return get_maintenance_requests_by_part_id(client, part_id);
10
+ }
11
+ export async function server_get_maintenance_requests_by_herd_id(herd_id, options) {
12
+ const client = await newServerClient();
13
+ return get_maintenance_requests_by_herd_id(client, herd_id, options);
14
+ }
15
+ export async function server_get_maintenance_requests_count_by_herd_id(herd_id) {
16
+ const client = await newServerClient();
17
+ return get_maintenance_requests_count_by_herd_id(client, herd_id);
18
+ }
19
+ export async function server_get_maintenance_request_by_id(request_id) {
20
+ const client = await newServerClient();
21
+ return get_maintenance_request_by_id(client, request_id);
22
+ }
23
+ export async function server_create_maintenance_request(row) {
24
+ const client = await newServerClient();
25
+ return create_maintenance_request(client, row);
26
+ }
27
+ export async function server_update_maintenance_request(request_id, patch) {
28
+ const client = await newServerClient();
29
+ return update_maintenance_request(client, request_id, patch);
30
+ }
31
+ export async function server_delete_maintenance_request(request_id) {
32
+ const client = await newServerClient();
33
+ return delete_maintenance_request(client, request_id);
34
+ }
@@ -1,52 +1,14 @@
1
- "use server";
2
1
  import { newServerClient } from "../supabase/server";
3
- import { EnumWebResponse, IWebResponse, } from "../types/requests";
2
+ import { create_manufacturer_query, get_manufacturer_by_id_query, get_manufacturers_query, update_manufacturer_query, } from "./manufacturers.queries";
4
3
  export async function server_get_manufacturers(options) {
5
- const supabase = await newServerClient();
6
- let query = supabase.from("manufacturers").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_manufacturers_query(await newServerClient(), options);
15
5
  }
16
6
  export async function server_get_manufacturer_by_id(manufacturer_id) {
17
- const supabase = await newServerClient();
18
- const { data, error } = await supabase
19
- .from("manufacturers")
20
- .select("*")
21
- .eq("id", manufacturer_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_manufacturer_by_id_query(await newServerClient(), manufacturer_id);
27
8
  }
28
9
  export async function server_create_manufacturer(row) {
29
- const supabase = await newServerClient();
30
- const { data, error } = await supabase
31
- .from("manufacturers")
32
- .insert(row)
33
- .select("*")
34
- .single();
35
- if (error) {
36
- return { status: EnumWebResponse.ERROR, msg: error.message, data: null };
37
- }
38
- return IWebResponse.success(data).to_compatible();
10
+ return create_manufacturer_query(await newServerClient(), row);
39
11
  }
40
12
  export async function server_update_manufacturer(manufacturer_id, updates) {
41
- const supabase = await newServerClient();
42
- const { data, error } = await supabase
43
- .from("manufacturers")
44
- .update(updates)
45
- .eq("id", manufacturer_id)
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 update_manufacturer_query(await newServerClient(), manufacturer_id, updates);
52
14
  }
@@ -0,0 +1,10 @@
1
+ import { SupabaseClient } from "@supabase/supabase-js";
2
+ import { IManufacturer, ManufacturerInsert, ManufacturerUpdate } from "../types/db";
3
+ import { IWebResponseCompatible } from "../types/requests";
4
+ import { Database } from "../types/supabase";
5
+ export declare function get_manufacturers_query(client: SupabaseClient<Database>, options?: {
6
+ include_inactive?: boolean;
7
+ }): Promise<IWebResponseCompatible<IManufacturer[]>>;
8
+ export declare function get_manufacturer_by_id_query(client: SupabaseClient<Database>, manufacturer_id: number): Promise<IWebResponseCompatible<IManufacturer | null>>;
9
+ export declare function create_manufacturer_query(client: SupabaseClient<Database>, row: ManufacturerInsert): Promise<IWebResponseCompatible<IManufacturer | null>>;
10
+ export declare function update_manufacturer_query(client: SupabaseClient<Database>, manufacturer_id: number, updates: ManufacturerUpdate): Promise<IWebResponseCompatible<IManufacturer | null>>;
@@ -0,0 +1,46 @@
1
+ import { EnumWebResponse, IWebResponse, } from "../types/requests";
2
+ export async function get_manufacturers_query(client, options) {
3
+ let query = client.from("manufacturers").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_manufacturer_by_id_query(client, manufacturer_id) {
14
+ const { data, error } = await client
15
+ .from("manufacturers")
16
+ .select("*")
17
+ .eq("id", manufacturer_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 create_manufacturer_query(client, row) {
25
+ const { data, error } = await client
26
+ .from("manufacturers")
27
+ .insert(row)
28
+ .select("*")
29
+ .single();
30
+ if (error) {
31
+ return { status: EnumWebResponse.ERROR, msg: error.message, data: null };
32
+ }
33
+ return IWebResponse.success(data).to_compatible();
34
+ }
35
+ export async function update_manufacturer_query(client, manufacturer_id, updates) {
36
+ const { data, error } = await client
37
+ .from("manufacturers")
38
+ .update(updates)
39
+ .eq("id", manufacturer_id)
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
+ }
@@ -0,0 +1,13 @@
1
+ import type { SupabaseClient } from "@supabase/supabase-js";
2
+ import type { IArtifact, IArtifactWithMediaUrl } from "../types/db";
3
+ import type { Database } from "../types/supabase";
4
+ type EventWithStoragePath = {
5
+ file_path?: string | null;
6
+ media_url?: string | null;
7
+ };
8
+ export declare function createSignedUrlMap(client: SupabaseClient<Database>, paths: Iterable<string | null | undefined>): Promise<Map<string, string | null>>;
9
+ export declare function addEventMediaUrls<T extends EventWithStoragePath>(client: SupabaseClient<Database>, events: T[]): Promise<Array<T & {
10
+ media_url: string | null;
11
+ }>>;
12
+ export declare function addArtifactMediaUrls(client: SupabaseClient<Database>, artifacts: IArtifact[]): Promise<IArtifactWithMediaUrl[]>;
13
+ export {};
@@ -0,0 +1,21 @@
1
+ import { collectArtifactStoragePaths, withArtifactMediaUrls, } from "./artifactMedia";
2
+ import { generateSignedUrlsBatchWithClient } from "./storage_internal";
3
+ import { isNonEmptyStorageFilePath } from "./storagePath";
4
+ export async function createSignedUrlMap(client, paths) {
5
+ const uniquePaths = Array.from(new Set(Array.from(paths).filter(isNonEmptyStorageFilePath)));
6
+ const urls = await generateSignedUrlsBatchWithClient(client, uniquePaths);
7
+ return new Map(uniquePaths.map((path, index) => [path, urls[index]]));
8
+ }
9
+ export async function addEventMediaUrls(client, events) {
10
+ const urlMap = await createSignedUrlMap(client, events.map((event) => event.file_path));
11
+ return events.map((event) => ({
12
+ ...event,
13
+ media_url: isNonEmptyStorageFilePath(event.file_path)
14
+ ? urlMap.get(event.file_path) ?? event.media_url ?? null
15
+ : event.media_url ?? null,
16
+ }));
17
+ }
18
+ export async function addArtifactMediaUrls(client, artifacts) {
19
+ const urlMap = await createSignedUrlMap(client, collectArtifactStoragePaths(artifacts));
20
+ return artifacts.map((artifact) => withArtifactMediaUrls(artifact, urlMap));
21
+ }
@@ -1,95 +1,23 @@
1
- "use server";
2
1
  import { newServerClient } from "../supabase/server";
3
- import { EnumWebResponse, IWebResponse, } from "../types/requests";
4
- // function that fetches a single model by id; null if not found
2
+ import { create_models_per_jobs_per_herd_query, delete_models_per_jobs_per_herd_by_ids_query, get_model_by_id_query, get_models_by_ids_query, get_models_per_jobs_per_herd_by_herd_query, get_models_query, update_models_per_jobs_per_herd_query, } from "./models.queries";
5
3
  export async function server_get_model_by_id(model_id) {
6
- const supabase = await newServerClient();
7
- const { data, error } = await supabase
8
- .from("models")
9
- .select("*")
10
- .eq("id", model_id)
11
- .maybeSingle();
12
- if (error) {
13
- return { status: EnumWebResponse.ERROR, msg: error.message, data: null };
14
- }
15
- return IWebResponse.success(data).to_compatible();
4
+ return get_model_by_id_query(await newServerClient(), model_id);
16
5
  }
17
- // function that fetches multiple models by id
18
6
  export async function server_get_models_by_ids(model_ids) {
19
- if (model_ids.length === 0) {
20
- return IWebResponse.success([]).to_compatible();
21
- }
22
- const supabase = await newServerClient();
23
- const { data, error } = await supabase
24
- .from("models")
25
- .select("*")
26
- .in("id", model_ids);
27
- if (error) {
28
- return { status: EnumWebResponse.ERROR, msg: error.message, data: [] };
29
- }
30
- return IWebResponse.success(data ?? []).to_compatible();
7
+ return get_models_by_ids_query(await newServerClient(), model_ids);
31
8
  }
32
- // function that lists models, active only by default
33
9
  export async function server_get_models(options) {
34
- const supabase = await newServerClient();
35
- let query = supabase.from("models").select("*").order("name");
36
- if (!options?.include_inactive) {
37
- query = query.eq("is_active", true);
38
- }
39
- const { data, error } = await query;
40
- if (error) {
41
- return { status: EnumWebResponse.ERROR, msg: error.message, data: [] };
42
- }
43
- return IWebResponse.success(data ?? []).to_compatible();
10
+ return get_models_query(await newServerClient(), options);
44
11
  }
45
- // function that fetches the model activations for a herd
46
12
  export async function server_get_models_per_jobs_per_herd_by_herd(herd_id) {
47
- const supabase = await newServerClient();
48
- const { data, error } = await supabase
49
- .from("models_per_jobs_per_herd")
50
- .select("*")
51
- .eq("herd_id", herd_id);
52
- if (error) {
53
- return { status: EnumWebResponse.ERROR, msg: error.message, data: [] };
54
- }
55
- return IWebResponse.success(data ?? []).to_compatible();
13
+ return get_models_per_jobs_per_herd_by_herd_query(await newServerClient(), herd_id);
56
14
  }
57
- // function that creates a model activation
58
15
  export async function server_create_models_per_jobs_per_herd(activation) {
59
- const supabase = await newServerClient();
60
- const { data, error } = await supabase
61
- .from("models_per_jobs_per_herd")
62
- .insert(activation)
63
- .select("*")
64
- .single();
65
- if (error) {
66
- return { status: EnumWebResponse.ERROR, msg: error.message, data: null };
67
- }
68
- return IWebResponse.success(data).to_compatible();
16
+ return create_models_per_jobs_per_herd_query(await newServerClient(), activation);
69
17
  }
70
- // function that updates a model activation
71
18
  export async function server_update_models_per_jobs_per_herd(id, updates) {
72
- const supabase = await newServerClient();
73
- const { data, error } = await supabase
74
- .from("models_per_jobs_per_herd")
75
- .update(updates)
76
- .eq("id", id)
77
- .select("*")
78
- .single();
79
- if (error) {
80
- return { status: EnumWebResponse.ERROR, msg: error.message, data: null };
81
- }
82
- return IWebResponse.success(data).to_compatible();
19
+ return update_models_per_jobs_per_herd_query(await newServerClient(), id, updates);
83
20
  }
84
- // function that deletes model activations by ids
85
21
  export async function server_delete_models_per_jobs_per_herd_by_ids(ids) {
86
- const supabase = await newServerClient();
87
- const { error } = await supabase
88
- .from("models_per_jobs_per_herd")
89
- .delete()
90
- .in("id", ids);
91
- if (error) {
92
- return { status: EnumWebResponse.ERROR, msg: error.message, data: false };
93
- }
94
- return IWebResponse.success(true).to_compatible();
22
+ return delete_models_per_jobs_per_herd_by_ids_query(await newServerClient(), ids);
95
23
  }
@@ -0,0 +1,13 @@
1
+ import { SupabaseClient } from "@supabase/supabase-js";
2
+ import { IModel, IModelsPerJobsPerHerd } from "../types/db";
3
+ import { IWebResponseCompatible } from "../types/requests";
4
+ import { Database } from "../types/supabase";
5
+ export declare function get_model_by_id_query(client: SupabaseClient<Database>, model_id: number): Promise<IWebResponseCompatible<IModel | null>>;
6
+ export declare function get_models_by_ids_query(client: SupabaseClient<Database>, model_ids: number[]): Promise<IWebResponseCompatible<IModel[]>>;
7
+ export declare function get_models_query(client: SupabaseClient<Database>, options?: {
8
+ include_inactive?: boolean;
9
+ }): Promise<IWebResponseCompatible<IModel[]>>;
10
+ export declare function get_models_per_jobs_per_herd_by_herd_query(client: SupabaseClient<Database>, herd_id: number): Promise<IWebResponseCompatible<IModelsPerJobsPerHerd[]>>;
11
+ export declare function create_models_per_jobs_per_herd_query(client: SupabaseClient<Database>, activation: Omit<IModelsPerJobsPerHerd, "id" | "inserted_at">): Promise<IWebResponseCompatible<IModelsPerJobsPerHerd>>;
12
+ export declare function update_models_per_jobs_per_herd_query(client: SupabaseClient<Database>, id: number, updates: Partial<Omit<IModelsPerJobsPerHerd, "id" | "inserted_at">>): Promise<IWebResponseCompatible<IModelsPerJobsPerHerd>>;
13
+ export declare function delete_models_per_jobs_per_herd_by_ids_query(client: SupabaseClient<Database>, ids: number[]): Promise<IWebResponseCompatible<boolean>>;
@@ -0,0 +1,79 @@
1
+ import { EnumWebResponse, IWebResponse, } from "../types/requests";
2
+ export async function get_model_by_id_query(client, model_id) {
3
+ const { data, error } = await client
4
+ .from("models")
5
+ .select("*")
6
+ .eq("id", model_id)
7
+ .maybeSingle();
8
+ if (error) {
9
+ return { status: EnumWebResponse.ERROR, msg: error.message, data: null };
10
+ }
11
+ return IWebResponse.success(data).to_compatible();
12
+ }
13
+ export async function get_models_by_ids_query(client, model_ids) {
14
+ if (model_ids.length === 0) {
15
+ return IWebResponse.success([]).to_compatible();
16
+ }
17
+ const { data, error } = await client
18
+ .from("models")
19
+ .select("*")
20
+ .in("id", model_ids);
21
+ if (error) {
22
+ return { status: EnumWebResponse.ERROR, msg: error.message, data: [] };
23
+ }
24
+ return IWebResponse.success(data ?? []).to_compatible();
25
+ }
26
+ export async function get_models_query(client, options) {
27
+ let query = client.from("models").select("*").order("name");
28
+ if (!options?.include_inactive) {
29
+ query = query.eq("is_active", true);
30
+ }
31
+ const { data, error } = await query;
32
+ if (error) {
33
+ return { status: EnumWebResponse.ERROR, msg: error.message, data: [] };
34
+ }
35
+ return IWebResponse.success(data ?? []).to_compatible();
36
+ }
37
+ export async function get_models_per_jobs_per_herd_by_herd_query(client, herd_id) {
38
+ const { data, error } = await client
39
+ .from("models_per_jobs_per_herd")
40
+ .select("*")
41
+ .eq("herd_id", herd_id);
42
+ if (error) {
43
+ return { status: EnumWebResponse.ERROR, msg: error.message, data: [] };
44
+ }
45
+ return IWebResponse.success(data ?? []).to_compatible();
46
+ }
47
+ export async function create_models_per_jobs_per_herd_query(client, activation) {
48
+ const { data, error } = await client
49
+ .from("models_per_jobs_per_herd")
50
+ .insert(activation)
51
+ .select("*")
52
+ .single();
53
+ if (error) {
54
+ return { status: EnumWebResponse.ERROR, msg: error.message, data: null };
55
+ }
56
+ return IWebResponse.success(data).to_compatible();
57
+ }
58
+ export async function update_models_per_jobs_per_herd_query(client, id, updates) {
59
+ const { data, error } = await client
60
+ .from("models_per_jobs_per_herd")
61
+ .update(updates)
62
+ .eq("id", id)
63
+ .select("*")
64
+ .single();
65
+ if (error) {
66
+ return { status: EnumWebResponse.ERROR, msg: error.message, data: null };
67
+ }
68
+ return IWebResponse.success(data).to_compatible();
69
+ }
70
+ export async function delete_models_per_jobs_per_herd_by_ids_query(client, ids) {
71
+ const { error } = await client
72
+ .from("models_per_jobs_per_herd")
73
+ .delete()
74
+ .in("id", ids);
75
+ if (error) {
76
+ return { status: EnumWebResponse.ERROR, msg: error.message, data: false };
77
+ }
78
+ return IWebResponse.success(true).to_compatible();
79
+ }
@@ -0,0 +1,51 @@
1
+ import { ObservationInsert, ObservationUpdate } from "../types/db";
2
+ export declare function server_get_observations_for_session(session_id: number): Promise<import("../types").IWebResponseCompatible<{
3
+ action_complete: boolean;
4
+ action_required: string | null;
5
+ description: string;
6
+ id: number;
7
+ inserted_at: string;
8
+ session_id: number;
9
+ timestamp: string | null;
10
+ updated_at: string | null;
11
+ }[]>>;
12
+ export declare function server_get_observation_by_id(observation_id: number): Promise<import("../types").IWebResponseCompatible<{
13
+ action_complete: boolean;
14
+ action_required: string | null;
15
+ description: string;
16
+ id: number;
17
+ inserted_at: string;
18
+ session_id: number;
19
+ timestamp: string | null;
20
+ updated_at: string | null;
21
+ } | null>>;
22
+ export declare function server_create_observation(row: ObservationInsert): Promise<import("../types").IWebResponseCompatible<{
23
+ action_complete: boolean;
24
+ action_required: string | null;
25
+ description: string;
26
+ id: number;
27
+ inserted_at: string;
28
+ session_id: number;
29
+ timestamp: string | null;
30
+ updated_at: string | null;
31
+ } | null>>;
32
+ export declare function server_update_observation(observation_id: number, patch: ObservationUpdate): Promise<import("../types").IWebResponseCompatible<{
33
+ action_complete: boolean;
34
+ action_required: string | null;
35
+ description: string;
36
+ id: number;
37
+ inserted_at: string;
38
+ session_id: number;
39
+ timestamp: string | null;
40
+ updated_at: string | null;
41
+ } | null>>;
42
+ export declare function server_delete_observation(observation_id: number): Promise<import("../types").IWebResponseCompatible<{
43
+ action_complete: boolean;
44
+ action_required: string | null;
45
+ description: string;
46
+ id: number;
47
+ inserted_at: string;
48
+ session_id: number;
49
+ timestamp: string | null;
50
+ updated_at: string | null;
51
+ } | null>>;
@@ -0,0 +1,22 @@
1
+ import { newServerClient } from "../supabase/server";
2
+ import { create_observation, delete_observation, get_observation_by_id, get_observations_for_session, update_observation, } from "./observations";
3
+ export async function server_get_observations_for_session(session_id) {
4
+ const client = await newServerClient();
5
+ return get_observations_for_session(client, session_id);
6
+ }
7
+ export async function server_get_observation_by_id(observation_id) {
8
+ const client = await newServerClient();
9
+ return get_observation_by_id(client, observation_id);
10
+ }
11
+ export async function server_create_observation(row) {
12
+ const client = await newServerClient();
13
+ return create_observation(client, row);
14
+ }
15
+ export async function server_update_observation(observation_id, patch) {
16
+ const client = await newServerClient();
17
+ return update_observation(client, observation_id, patch);
18
+ }
19
+ export async function server_delete_observation(observation_id) {
20
+ const client = await newServerClient();
21
+ return delete_observation(client, observation_id);
22
+ }