@adventurelabs/scout-core 1.5.4 → 2.0.0

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 (219) 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 +75 -0
  5. package/dist/client/index.js +82 -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/connectivity.d.ts +1 -5
  30. package/dist/helpers/connectivity.js +7 -140
  31. package/dist/helpers/connectivity.queries.d.ts +18 -0
  32. package/dist/helpers/connectivity.queries.js +121 -0
  33. package/dist/helpers/contacts_server.d.ts +63 -0
  34. package/dist/helpers/contacts_server.js +18 -0
  35. package/dist/helpers/deviceTransfer.js +2 -11
  36. package/dist/helpers/deviceTransfer.queries.d.ts +4 -0
  37. package/dist/helpers/deviceTransfer.queries.js +11 -0
  38. package/dist/helpers/devices.js +4 -61
  39. package/dist/helpers/devices.queries.d.ts +4 -1
  40. package/dist/helpers/devices.queries.js +52 -0
  41. package/dist/helpers/document_templates.js +6 -52
  42. package/dist/helpers/document_templates.queries.d.ts +9 -0
  43. package/dist/helpers/document_templates.queries.js +56 -0
  44. package/dist/helpers/documents_server.d.ts +226 -0
  45. package/dist/helpers/documents_server.js +38 -0
  46. package/dist/helpers/email.d.ts +0 -6
  47. package/dist/helpers/email.js +1 -19
  48. package/dist/helpers/embeddings.d.ts +0 -5
  49. package/dist/helpers/embeddings.js +2 -19
  50. package/dist/helpers/embeddings.queries.d.ts +7 -0
  51. package/dist/helpers/{embeddings.internal.js → embeddings.queries.js} +2 -2
  52. package/dist/helpers/eventUtils.d.ts +3 -12
  53. package/dist/helpers/eventUtils.js +0 -10
  54. package/dist/helpers/events.d.ts +0 -1
  55. package/dist/helpers/events.js +7 -107
  56. package/dist/helpers/events.queries.d.ts +17 -0
  57. package/dist/helpers/{events.internal.js → events.queries.js} +24 -15
  58. package/dist/helpers/health_metrics.js +3 -38
  59. package/dist/helpers/health_metrics.queries.d.ts +12 -0
  60. package/dist/helpers/health_metrics.queries.js +39 -0
  61. package/dist/helpers/heartbeats.js +4 -83
  62. package/dist/helpers/heartbeats.queries.d.ts +11 -0
  63. package/dist/helpers/heartbeats.queries.js +76 -0
  64. package/dist/helpers/herd_allowed_domains.js +2 -12
  65. package/dist/helpers/{herd_allowed_domains_internal.d.ts → herd_allowed_domains.queries.d.ts} +1 -1
  66. package/dist/helpers/{herd_allowed_domains_internal.js → herd_allowed_domains.queries.js} +2 -2
  67. package/dist/helpers/herd_credentials_server.d.ts +76 -0
  68. package/dist/helpers/herd_credentials_server.js +22 -0
  69. package/dist/helpers/herd_modules.queries.js +10 -7
  70. package/dist/helpers/herd_roles.js +13 -148
  71. package/dist/helpers/herd_roles.queries.d.ts +18 -0
  72. package/dist/helpers/{herd_roles_internal.js → herd_roles.queries.js} +28 -28
  73. package/dist/helpers/herds.js +5 -47
  74. package/dist/helpers/herds.queries.d.ts +8 -1
  75. package/dist/helpers/herds.queries.js +48 -0
  76. package/dist/helpers/invitations.js +7 -58
  77. package/dist/helpers/invitations.queries.d.ts +10 -0
  78. package/dist/helpers/{invitations_internal.js → invitations.queries.js} +12 -12
  79. package/dist/helpers/issuers.js +6 -52
  80. package/dist/helpers/issuers.queries.d.ts +9 -0
  81. package/dist/helpers/issuers.queries.js +53 -0
  82. package/dist/helpers/layers.js +2 -20
  83. package/dist/helpers/layers.queries.d.ts +2 -1
  84. package/dist/helpers/layers.queries.js +9 -13
  85. package/dist/helpers/lifecycle_server.d.ts +175 -0
  86. package/dist/helpers/lifecycle_server.js +38 -0
  87. package/dist/helpers/localizations.js +5 -42
  88. package/dist/helpers/localizations.queries.d.ts +8 -0
  89. package/dist/helpers/localizations.queries.js +45 -0
  90. package/dist/helpers/maintenance_requests_server.d.ts +124 -0
  91. package/dist/helpers/maintenance_requests_server.js +34 -0
  92. package/dist/helpers/manufacturers.js +5 -43
  93. package/dist/helpers/manufacturers.queries.d.ts +10 -0
  94. package/dist/helpers/manufacturers.queries.js +46 -0
  95. package/dist/helpers/media_urls.d.ts +13 -0
  96. package/dist/helpers/media_urls.js +21 -0
  97. package/dist/helpers/models.js +8 -80
  98. package/dist/helpers/models.queries.d.ts +13 -0
  99. package/dist/helpers/models.queries.js +79 -0
  100. package/dist/helpers/observations_server.d.ts +51 -0
  101. package/dist/helpers/observations_server.js +22 -0
  102. package/dist/helpers/operating_contexts.js +39 -154
  103. package/dist/helpers/operating_contexts.queries.d.ts +48 -0
  104. package/dist/helpers/operating_contexts.queries.js +223 -0
  105. package/dist/helpers/operators.js +4 -57
  106. package/dist/helpers/operators.queries.d.ts +7 -0
  107. package/dist/helpers/operators.queries.js +55 -0
  108. package/dist/helpers/parts.d.ts +0 -87
  109. package/dist/helpers/parts.js +4 -90
  110. package/dist/helpers/parts_server.d.ts +260 -0
  111. package/dist/helpers/parts_server.js +71 -0
  112. package/dist/helpers/pins_server.d.ts +118 -0
  113. package/dist/helpers/pins_server.js +38 -0
  114. package/dist/helpers/plans.js +4 -56
  115. package/dist/helpers/plans.queries.d.ts +4 -1
  116. package/dist/helpers/plans.queries.js +39 -12
  117. package/dist/helpers/points_for_user_server.d.ts +9 -0
  118. package/dist/helpers/points_for_user_server.js +14 -0
  119. package/dist/helpers/product_compatibilities.js +6 -78
  120. package/dist/helpers/product_compatibilities.queries.d.ts +9 -0
  121. package/dist/helpers/product_compatibilities.queries.js +83 -0
  122. package/dist/helpers/product_numbers.js +6 -55
  123. package/dist/helpers/product_numbers.queries.d.ts +9 -0
  124. package/dist/helpers/product_numbers.queries.js +58 -0
  125. package/dist/helpers/products.js +6 -54
  126. package/dist/helpers/products.queries.d.ts +11 -0
  127. package/dist/helpers/products.queries.js +58 -0
  128. package/dist/helpers/providers.js +5 -71
  129. package/dist/helpers/providers.queries.d.ts +5 -1
  130. package/dist/helpers/providers.queries.js +52 -11
  131. package/dist/helpers/pubsub_token_server.d.ts +1 -0
  132. package/dist/helpers/pubsub_token_server.js +5 -2
  133. package/dist/helpers/segmentations_sam3.js +5 -78
  134. package/dist/helpers/segmentations_sam3.queries.d.ts +16 -0
  135. package/dist/helpers/segmentations_sam3.queries.js +81 -0
  136. package/dist/helpers/sensor_poses_server.d.ts +98 -0
  137. package/dist/helpers/sensor_poses_server.js +26 -0
  138. package/dist/helpers/session_incidents_server.d.ts +106 -0
  139. package/dist/helpers/session_incidents_server.js +22 -0
  140. package/dist/helpers/session_summaries.d.ts +2 -0
  141. package/dist/helpers/session_summaries.js +7 -23
  142. package/dist/helpers/session_summaries.queries.d.ts +6 -3
  143. package/dist/helpers/session_summaries.queries.js +27 -0
  144. package/dist/helpers/sessions.js +8 -122
  145. package/dist/helpers/sessions.queries.d.ts +14 -2
  146. package/dist/helpers/sessions.queries.js +88 -1
  147. package/dist/helpers/storage.js +0 -1
  148. package/dist/helpers/supabase_auth.d.ts +6 -0
  149. package/dist/helpers/supabase_auth.js +37 -0
  150. package/dist/helpers/tags.d.ts +0 -1
  151. package/dist/helpers/tags.js +13 -559
  152. package/dist/helpers/tags.queries.d.ts +33 -0
  153. package/dist/helpers/tags.queries.js +454 -0
  154. package/dist/helpers/user_credentials_server.d.ts +76 -0
  155. package/dist/helpers/user_credentials_server.js +22 -0
  156. package/dist/helpers/users.d.ts +2 -2
  157. package/dist/helpers/users.js +8 -107
  158. package/dist/helpers/users.queries.d.ts +9 -1
  159. package/dist/helpers/users.queries.js +107 -0
  160. package/dist/helpers/versions_software.d.ts +3 -1
  161. package/dist/helpers/versions_software.js +24 -0
  162. package/dist/helpers/versions_software_server.d.ts +83 -4
  163. package/dist/helpers/versions_software_server.js +23 -50
  164. package/dist/helpers/zones.d.ts +1 -16
  165. package/dist/helpers/zones.js +4 -104
  166. package/dist/helpers/zones.queries.d.ts +6 -0
  167. package/dist/helpers/zones.queries.js +78 -0
  168. package/dist/hooks/useAuthorizedRealtimeTopics.js +8 -2
  169. package/dist/hooks/useInfiniteQuery.js +18 -14
  170. package/dist/hooks/useScoutRealtimeBroadcast.js +8 -6
  171. package/dist/hooks/useScoutRealtimeDocuments.js +3 -2
  172. package/dist/hooks/useScoutRefresh.d.ts +9 -25
  173. package/dist/hooks/useScoutRefresh.js +33 -213
  174. package/dist/providers/ScoutRefreshProvider.d.ts +1 -1
  175. package/dist/providers/ScoutRefreshProvider.js +56 -13
  176. package/dist/server/index.d.ts +77 -0
  177. package/dist/server/index.js +79 -0
  178. package/dist/server/middleware.d.ts +2 -0
  179. package/dist/server/middleware.js +2 -0
  180. package/dist/server/supabase.d.ts +2 -0
  181. package/dist/server/supabase.js +2 -0
  182. package/dist/store/api.d.ts +40 -40
  183. package/dist/store/api.js +38 -109
  184. package/dist/store/configureStore.d.ts +0 -55
  185. package/dist/store/configureStore.js +1 -8
  186. package/dist/store/hooks.js +1 -0
  187. package/dist/supabase/client.d.ts +3 -0
  188. package/dist/supabase/client.js +10 -0
  189. package/dist/supabase/middleware.d.ts +1 -0
  190. package/dist/supabase/middleware.js +6 -20
  191. package/dist/supabase/server.d.ts +7 -2
  192. package/dist/supabase/server.js +13 -1
  193. package/dist/types/db.d.ts +2 -2
  194. package/dist/types/index.d.ts +5 -0
  195. package/dist/types/index.js +5 -0
  196. package/package.json +53 -4
  197. package/dist/api_keys/index.d.ts +0 -1
  198. package/dist/api_keys/index.js +0 -1
  199. package/dist/helpers/artifacts.internal.d.ts +0 -22
  200. package/dist/helpers/client_abilities_jwt_keys_internal.d.ts +0 -9
  201. package/dist/helpers/client_abilities_jwt_keys_internal.js +0 -20
  202. package/dist/helpers/connectivity.internal.d.ts +0 -10
  203. package/dist/helpers/connectivity.internal.js +0 -47
  204. package/dist/helpers/credentials.d.ts +0 -9
  205. package/dist/helpers/credentials.js +0 -92
  206. package/dist/helpers/embeddings.internal.d.ts +0 -5
  207. package/dist/helpers/events.internal.d.ts +0 -13
  208. package/dist/helpers/herd_roles_internal.d.ts +0 -18
  209. package/dist/helpers/index.d.ts +0 -56
  210. package/dist/helpers/index.js +0 -56
  211. package/dist/helpers/invitations_internal.d.ts +0 -10
  212. package/dist/helpers/versions_software_internal.d.ts +0 -6
  213. package/dist/helpers/versions_software_internal.js +0 -53
  214. package/dist/hooks/useDeviceDisplayName.d.ts +0 -8
  215. package/dist/hooks/useDeviceDisplayName.js +0 -49
  216. package/dist/index.d.ts +0 -108
  217. package/dist/index.js +0 -114
  218. package/dist/supabase/index.d.ts +0 -2
  219. package/dist/supabase/index.js +0 -2
@@ -0,0 +1,226 @@
1
+ import { DocumentInsert, DocumentUpdate } from "../types/db";
2
+ export declare function server_get_documents_by_herd_id(herd_id: number): Promise<import("../types").IWebResponseCompatible<{
3
+ approved_at: string | null;
4
+ approved_by: string | null;
5
+ created_at: string;
6
+ created_by: string | null;
7
+ device_id: number | null;
8
+ herd_id: number | null;
9
+ id: number;
10
+ is_approved: boolean;
11
+ lifecycle: import("../types").Database["public"]["Enums"]["entity_lifecycle"];
12
+ lifecycle_changed_at: string;
13
+ lifecycle_changed_by: string | null;
14
+ lifecycle_reason: string | null;
15
+ operating_context_id: number | null;
16
+ product_id: number | null;
17
+ related_herd_id: number | null;
18
+ size_bytes: number | null;
19
+ template_id: number | null;
20
+ updated_at: string;
21
+ updated_by: string | null;
22
+ uri: string;
23
+ user_id: string | null;
24
+ valid_from: string | null;
25
+ valid_to: string | null;
26
+ }[]>>;
27
+ export declare function server_get_documents_by_device_id(device_id: number): Promise<import("../types").IWebResponseCompatible<{
28
+ approved_at: string | null;
29
+ approved_by: string | null;
30
+ created_at: string;
31
+ created_by: string | null;
32
+ device_id: number | null;
33
+ herd_id: number | null;
34
+ id: number;
35
+ is_approved: boolean;
36
+ lifecycle: import("../types").Database["public"]["Enums"]["entity_lifecycle"];
37
+ lifecycle_changed_at: string;
38
+ lifecycle_changed_by: string | null;
39
+ lifecycle_reason: string | null;
40
+ operating_context_id: number | null;
41
+ product_id: number | null;
42
+ related_herd_id: number | null;
43
+ size_bytes: number | null;
44
+ template_id: number | null;
45
+ updated_at: string;
46
+ updated_by: string | null;
47
+ uri: string;
48
+ user_id: string | null;
49
+ valid_from: string | null;
50
+ valid_to: string | null;
51
+ }[]>>;
52
+ export declare function server_get_documents_by_user_id(user_id: string): Promise<import("../types").IWebResponseCompatible<{
53
+ approved_at: string | null;
54
+ approved_by: string | null;
55
+ created_at: string;
56
+ created_by: string | null;
57
+ device_id: number | null;
58
+ herd_id: number | null;
59
+ id: number;
60
+ is_approved: boolean;
61
+ lifecycle: import("../types").Database["public"]["Enums"]["entity_lifecycle"];
62
+ lifecycle_changed_at: string;
63
+ lifecycle_changed_by: string | null;
64
+ lifecycle_reason: string | null;
65
+ operating_context_id: number | null;
66
+ product_id: number | null;
67
+ related_herd_id: number | null;
68
+ size_bytes: number | null;
69
+ template_id: number | null;
70
+ updated_at: string;
71
+ updated_by: string | null;
72
+ uri: string;
73
+ user_id: string | null;
74
+ valid_from: string | null;
75
+ valid_to: string | null;
76
+ }[]>>;
77
+ export declare function server_get_documents_by_product_id(product_id: number): Promise<import("../types").IWebResponseCompatible<{
78
+ approved_at: string | null;
79
+ approved_by: string | null;
80
+ created_at: string;
81
+ created_by: string | null;
82
+ device_id: number | null;
83
+ herd_id: number | null;
84
+ id: number;
85
+ is_approved: boolean;
86
+ lifecycle: import("../types").Database["public"]["Enums"]["entity_lifecycle"];
87
+ lifecycle_changed_at: string;
88
+ lifecycle_changed_by: string | null;
89
+ lifecycle_reason: string | null;
90
+ operating_context_id: number | null;
91
+ product_id: number | null;
92
+ related_herd_id: number | null;
93
+ size_bytes: number | null;
94
+ template_id: number | null;
95
+ updated_at: string;
96
+ updated_by: string | null;
97
+ uri: string;
98
+ user_id: string | null;
99
+ valid_from: string | null;
100
+ valid_to: string | null;
101
+ }[]>>;
102
+ export declare function server_get_documents_by_operating_context_id(operating_context_id: number): Promise<import("../types").IWebResponseCompatible<{
103
+ approved_at: string | null;
104
+ approved_by: string | null;
105
+ created_at: string;
106
+ created_by: string | null;
107
+ device_id: number | null;
108
+ herd_id: number | null;
109
+ id: number;
110
+ is_approved: boolean;
111
+ lifecycle: import("../types").Database["public"]["Enums"]["entity_lifecycle"];
112
+ lifecycle_changed_at: string;
113
+ lifecycle_changed_by: string | null;
114
+ lifecycle_reason: string | null;
115
+ operating_context_id: number | null;
116
+ product_id: number | null;
117
+ related_herd_id: number | null;
118
+ size_bytes: number | null;
119
+ template_id: number | null;
120
+ updated_at: string;
121
+ updated_by: string | null;
122
+ uri: string;
123
+ user_id: string | null;
124
+ valid_from: string | null;
125
+ valid_to: string | null;
126
+ }[]>>;
127
+ export declare function server_get_document_by_id(document_id: number): Promise<import("../types").IWebResponseCompatible<{
128
+ approved_at: string | null;
129
+ approved_by: string | null;
130
+ created_at: string;
131
+ created_by: string | null;
132
+ device_id: number | null;
133
+ herd_id: number | null;
134
+ id: number;
135
+ is_approved: boolean;
136
+ lifecycle: import("../types").Database["public"]["Enums"]["entity_lifecycle"];
137
+ lifecycle_changed_at: string;
138
+ lifecycle_changed_by: string | null;
139
+ lifecycle_reason: string | null;
140
+ operating_context_id: number | null;
141
+ product_id: number | null;
142
+ related_herd_id: number | null;
143
+ size_bytes: number | null;
144
+ template_id: number | null;
145
+ updated_at: string;
146
+ updated_by: string | null;
147
+ uri: string;
148
+ user_id: string | null;
149
+ valid_from: string | null;
150
+ valid_to: string | null;
151
+ } | null>>;
152
+ export declare function server_create_document(row: DocumentInsert): Promise<import("../types").IWebResponseCompatible<{
153
+ approved_at: string | null;
154
+ approved_by: string | null;
155
+ created_at: string;
156
+ created_by: string | null;
157
+ device_id: number | null;
158
+ herd_id: number | null;
159
+ id: number;
160
+ is_approved: boolean;
161
+ lifecycle: import("../types").Database["public"]["Enums"]["entity_lifecycle"];
162
+ lifecycle_changed_at: string;
163
+ lifecycle_changed_by: string | null;
164
+ lifecycle_reason: string | null;
165
+ operating_context_id: number | null;
166
+ product_id: number | null;
167
+ related_herd_id: number | null;
168
+ size_bytes: number | null;
169
+ template_id: number | null;
170
+ updated_at: string;
171
+ updated_by: string | null;
172
+ uri: string;
173
+ user_id: string | null;
174
+ valid_from: string | null;
175
+ valid_to: string | null;
176
+ } | null>>;
177
+ export declare function server_update_document(document_id: number, patch: DocumentUpdate): Promise<import("../types").IWebResponseCompatible<{
178
+ approved_at: string | null;
179
+ approved_by: string | null;
180
+ created_at: string;
181
+ created_by: string | null;
182
+ device_id: number | null;
183
+ herd_id: number | null;
184
+ id: number;
185
+ is_approved: boolean;
186
+ lifecycle: import("../types").Database["public"]["Enums"]["entity_lifecycle"];
187
+ lifecycle_changed_at: string;
188
+ lifecycle_changed_by: string | null;
189
+ lifecycle_reason: string | null;
190
+ operating_context_id: number | null;
191
+ product_id: number | null;
192
+ related_herd_id: number | null;
193
+ size_bytes: number | null;
194
+ template_id: number | null;
195
+ updated_at: string;
196
+ updated_by: string | null;
197
+ uri: string;
198
+ user_id: string | null;
199
+ valid_from: string | null;
200
+ valid_to: string | null;
201
+ } | null>>;
202
+ export declare function server_delete_document(document_id: number): Promise<import("../types").IWebResponseCompatible<{
203
+ approved_at: string | null;
204
+ approved_by: string | null;
205
+ created_at: string;
206
+ created_by: string | null;
207
+ device_id: number | null;
208
+ herd_id: number | null;
209
+ id: number;
210
+ is_approved: boolean;
211
+ lifecycle: import("../types").Database["public"]["Enums"]["entity_lifecycle"];
212
+ lifecycle_changed_at: string;
213
+ lifecycle_changed_by: string | null;
214
+ lifecycle_reason: string | null;
215
+ operating_context_id: number | null;
216
+ product_id: number | null;
217
+ related_herd_id: number | null;
218
+ size_bytes: number | null;
219
+ template_id: number | null;
220
+ updated_at: string;
221
+ updated_by: string | null;
222
+ uri: string;
223
+ user_id: string | null;
224
+ valid_from: string | null;
225
+ valid_to: string | null;
226
+ } | null>>;
@@ -0,0 +1,38 @@
1
+ import { newServerClient } from "../supabase/server";
2
+ import { create_document, delete_document, get_document_by_id, get_documents_by_device_id, get_documents_by_herd_id, get_documents_by_operating_context_id, get_documents_by_product_id, get_documents_by_user_id, update_document, } from "./documents";
3
+ export async function server_get_documents_by_herd_id(herd_id) {
4
+ const client = await newServerClient();
5
+ return get_documents_by_herd_id(client, herd_id);
6
+ }
7
+ export async function server_get_documents_by_device_id(device_id) {
8
+ const client = await newServerClient();
9
+ return get_documents_by_device_id(client, device_id);
10
+ }
11
+ export async function server_get_documents_by_user_id(user_id) {
12
+ const client = await newServerClient();
13
+ return get_documents_by_user_id(client, user_id);
14
+ }
15
+ export async function server_get_documents_by_product_id(product_id) {
16
+ const client = await newServerClient();
17
+ return get_documents_by_product_id(client, product_id);
18
+ }
19
+ export async function server_get_documents_by_operating_context_id(operating_context_id) {
20
+ const client = await newServerClient();
21
+ return get_documents_by_operating_context_id(client, operating_context_id);
22
+ }
23
+ export async function server_get_document_by_id(document_id) {
24
+ const client = await newServerClient();
25
+ return get_document_by_id(client, document_id);
26
+ }
27
+ export async function server_create_document(row) {
28
+ const client = await newServerClient();
29
+ return create_document(client, row);
30
+ }
31
+ export async function server_update_document(document_id, patch) {
32
+ const client = await newServerClient();
33
+ return update_document(client, document_id, patch);
34
+ }
35
+ export async function server_delete_document(document_id) {
36
+ const client = await newServerClient();
37
+ return delete_document(client, document_id);
38
+ }
@@ -1,7 +1 @@
1
- /**
2
- * Ensure email conforms to basic email format x@y.z
3
- * @param email
4
- * @returns boolean
5
- *
6
- */
7
1
  export declare function validateEmail(email: string): boolean;
@@ -1,22 +1,4 @@
1
- /**
2
- * Ensure email conforms to basic email format x@y.z
3
- * @param email
4
- * @returns boolean
5
- *
6
- */
7
1
  export function validateEmail(email) {
8
- // emails should be x@y
9
2
  const parts = email.split("@");
10
- if (parts.length !== 2) {
11
- return false;
12
- }
13
- // x should not be empty
14
- if (parts[0].length === 0) {
15
- return false;
16
- }
17
- // y should have at least one dot
18
- if (!parts[1].includes(".")) {
19
- return false;
20
- }
21
- return true;
3
+ return parts.length === 2 && parts[0].length > 0 && parts[1].includes(".");
22
4
  }
@@ -1,10 +1,5 @@
1
1
  import type { IEmbeddingSearchResult } from "../types/db";
2
2
  import { IWebResponseCompatible } from "../types/requests";
3
- /**
4
- * Semantic search over the embeddings table (embeddings_vertex_multimodal_001).
5
- * Returns matching embedding row ids with event_id, artifact_id, and confidence.
6
- * Use for general embedding search without coupling to events vs artifacts.
7
- */
8
3
  export declare function server_search_embeddings_vertex_multimodal_001(query_embedding: number[], match_threshold: number, match_count: number, options?: {
9
4
  herd_id?: number | null;
10
5
  }): Promise<IWebResponseCompatible<IEmbeddingSearchResult[]>>;
@@ -1,22 +1,5 @@
1
- "use server";
2
1
  import { newServerClient } from "../supabase/server";
3
- import { IWebResponse } from "../types/requests";
4
- /**
5
- * Semantic search over the embeddings table (embeddings_vertex_multimodal_001).
6
- * Returns matching embedding row ids with event_id, artifact_id, and confidence.
7
- * Use for general embedding search without coupling to events vs artifacts.
8
- */
2
+ import { search_embeddings_vertex_multimodal_001_query } from "./embeddings.queries";
9
3
  export async function server_search_embeddings_vertex_multimodal_001(query_embedding, match_threshold, match_count, options) {
10
- const client = await newServerClient();
11
- const rpcName = "search_embeddings_vertex_multimodal_001";
12
- const { data, error } = await client.rpc(rpcName, {
13
- query_embedding: JSON.stringify(query_embedding),
14
- match_threshold,
15
- match_count,
16
- ...(options?.herd_id != null && { herd_id_caller: options.herd_id }),
17
- });
18
- if (error) {
19
- return IWebResponse.error(error.message).to_compatible();
20
- }
21
- return IWebResponse.success((data ?? [])).to_compatible();
4
+ return search_embeddings_vertex_multimodal_001_query(await newServerClient(), query_embedding, match_threshold, match_count, options);
22
5
  }
@@ -0,0 +1,7 @@
1
+ import { SupabaseClient } from "@supabase/supabase-js";
2
+ import type { IEmbeddingSearchResult } from "../types/db";
3
+ import { IWebResponseCompatible } from "../types/requests";
4
+ import type { Database } from "../types/supabase";
5
+ export declare function search_embeddings_vertex_multimodal_001_query(client: SupabaseClient<Database>, query_embedding: number[], match_threshold: number, match_count: number, options?: {
6
+ herd_id?: number | null;
7
+ }): Promise<IWebResponseCompatible<IEmbeddingSearchResult[]>>;
@@ -1,11 +1,11 @@
1
1
  import { IWebResponse } from "../types/requests";
2
- export async function searchEmbeddingsVertexMultimodal001WithClient(client, query_embedding, match_threshold, match_count, herd_id) {
2
+ export async function search_embeddings_vertex_multimodal_001_query(client, query_embedding, match_threshold, match_count, options) {
3
3
  const rpcName = "search_embeddings_vertex_multimodal_001";
4
4
  const { data, error } = await client.rpc(rpcName, {
5
5
  query_embedding: JSON.stringify(query_embedding),
6
6
  match_threshold,
7
7
  match_count,
8
- ...(herd_id != null && { herd_id_caller: herd_id }),
8
+ ...(options?.herd_id != null && { herd_id_caller: options.herd_id }),
9
9
  });
10
10
  if (error) {
11
11
  return IWebResponse.error(error.message).to_compatible();
@@ -1,12 +1,3 @@
1
- /**
2
- * Gets the media URL for an event (signed URL if file_path exists, otherwise media_url)
3
- * @param event - Event object that may have file_path or media_url
4
- * @returns string | null - The media URL or null if none available
5
- */
6
- export declare function getEventMediaUrl(event: any): string | null;
7
- /**
8
- * Checks if an event has any media URL available
9
- * @param event - Event object
10
- * @returns boolean - True if event has any media URL
11
- */
12
- export declare function hasEventMedia(event: any): boolean;
1
+ import type { IEventWithMediaUrl } from "../types/db";
2
+ export declare function getEventMediaUrl(event: IEventWithMediaUrl): string | null;
3
+ export declare function hasEventMedia(event: IEventWithMediaUrl): boolean;
@@ -1,16 +1,6 @@
1
- /**
2
- * Gets the media URL for an event (signed URL if file_path exists, otherwise media_url)
3
- * @param event - Event object that may have file_path or media_url
4
- * @returns string | null - The media URL or null if none available
5
- */
6
1
  export function getEventMediaUrl(event) {
7
2
  return event.media_url || null;
8
3
  }
9
- /**
10
- * Checks if an event has any media URL available
11
- * @param event - Event object
12
- * @returns boolean - True if event has any media URL
13
- */
14
4
  export function hasEventMedia(event) {
15
5
  return !!(event.media_url || event.file_path);
16
6
  }
@@ -10,7 +10,6 @@ export declare function server_update_event(events: (EventUpdate & {
10
10
  id: number;
11
11
  })[]): Promise<IWebResponseCompatible<IEvent[]>>;
12
12
  export declare function server_delete_event(id: number | number[]): Promise<IWebResponseCompatible<boolean>>;
13
- /** Semantic search over events using Vertex multimodal embedding (embedding_vertex_mm_01). */
14
13
  export declare function server_match_events_by_vertex_embedding(query_embedding: number[], match_threshold: number, match_count: number, options?: {
15
14
  herd_id?: number | null;
16
15
  }): Promise<IWebResponseCompatible<IEvent[]>>;
@@ -1,120 +1,20 @@
1
- "use server";
2
1
  import { newServerClient } from "../supabase/server";
3
- import { EnumWebResponse, IWebResponse, } from "../types/requests";
4
- import { EnumSessionsVisibility } from "../types/events";
5
- import { generateSignedUrlWithClient } from "./storage_internal";
6
- import { isNonEmptyStorageFilePath } from "./storagePath";
2
+ import { delete_event_query, get_event_by_id_query, get_total_events_by_herd_query, insert_event_query, match_events_by_vertex_embedding_query, update_event_query, } from "./events.queries";
7
3
  export async function server_get_event_by_id(id) {
8
- const client = await newServerClient();
9
- const { data, error } = await client
10
- .from("events")
11
- .select("*")
12
- .eq("id", id)
13
- .single();
14
- if (error) {
15
- return IWebResponse.error(error.message).to_compatible();
16
- }
17
- if (!data) {
18
- return IWebResponse.success(null).to_compatible();
19
- }
20
- const event = data;
21
- let media_url = null;
22
- if (isNonEmptyStorageFilePath(event.file_path)) {
23
- media_url = await generateSignedUrlWithClient(client, event.file_path);
24
- }
25
- return IWebResponse.success({
26
- ...event,
27
- media_url,
28
- }).to_compatible();
4
+ return get_event_by_id_query(await newServerClient(), id);
29
5
  }
30
- // function to get total number of events for a herd
31
6
  export async function server_get_total_events_by_herd(herd_id, sessions_visibility) {
32
- const supabase = await newServerClient();
33
- // Convert sessions_visibility to exclude_session_events boolean
34
- const exclude_session_events = sessions_visibility === EnumSessionsVisibility.Exclude;
35
- const { data, error } = (await supabase.rpc("get_total_events_for_herd_with_session_filter", {
36
- herd_id_caller: herd_id,
37
- exclude_session_events: exclude_session_events,
38
- }));
39
- if (error) {
40
- return {
41
- status: EnumWebResponse.ERROR,
42
- msg: error.message,
43
- data: 0,
44
- };
45
- }
46
- else {
47
- return IWebResponse.success(data || 0).to_compatible();
48
- }
7
+ return get_total_events_by_herd_query(await newServerClient(), herd_id, sessions_visibility);
49
8
  }
50
- // Insert new events (accepts array for batch operations)
51
9
  export async function server_insert_event(events) {
52
- const client = await newServerClient();
53
- const eventsArray = Array.isArray(events) ? events : [events];
54
- const { data, error } = await client
55
- .from("events")
56
- .insert(eventsArray)
57
- .select("*");
58
- if (error) {
59
- console.warn("Error inserting events:", error.message);
60
- return {
61
- status: EnumWebResponse.ERROR,
62
- msg: error.message,
63
- data: [],
64
- };
65
- }
66
- return IWebResponse.success(data || []).to_compatible();
10
+ return insert_event_query(await newServerClient(), events);
67
11
  }
68
- // Update existing events (accepts array for batch operations)
69
- // Each event in the array must include an 'id' field
70
12
  export async function server_update_event(events) {
71
- const client = await newServerClient();
72
- const eventsArray = Array.isArray(events) ? events : [events];
73
- const updatedEvents = [];
74
- for (const event of eventsArray) {
75
- const { id, ...updateData } = event;
76
- delete updateData.inserted_at;
77
- const { data, error } = await client
78
- .from("events")
79
- .update(updateData)
80
- .eq("id", id)
81
- .select("*")
82
- .single();
83
- if (error) {
84
- console.warn("Error updating event:", error.message);
85
- return {
86
- status: EnumWebResponse.ERROR,
87
- msg: error.message,
88
- data: [],
89
- };
90
- }
91
- if (data) {
92
- updatedEvents.push(data);
93
- }
94
- }
95
- return IWebResponse.success(updatedEvents).to_compatible();
13
+ return update_event_query(await newServerClient(), events);
96
14
  }
97
15
  export async function server_delete_event(id) {
98
- const client = await newServerClient();
99
- const ids = Array.isArray(id) ? id : [id];
100
- const { error } = await client.from("events").delete().in("id", ids);
101
- if (error) {
102
- return IWebResponse.error(error.message).to_compatible();
103
- }
104
- return IWebResponse.success(true).to_compatible();
16
+ return delete_event_query(await newServerClient(), id);
105
17
  }
106
- /** Semantic search over events using Vertex multimodal embedding (embedding_vertex_mm_01). */
107
18
  export async function server_match_events_by_vertex_embedding(query_embedding, match_threshold, match_count, options) {
108
- const client = await newServerClient();
109
- const rpcName = "match_events_by_vertex_embedding";
110
- const { data, error } = await client.rpc(rpcName, {
111
- query_embedding: JSON.stringify(query_embedding),
112
- match_threshold,
113
- match_count,
114
- herd_id_caller: options?.herd_id ?? undefined,
115
- });
116
- if (error) {
117
- return IWebResponse.error(error.message).to_compatible();
118
- }
119
- return IWebResponse.success((data ?? [])).to_compatible();
19
+ return match_events_by_vertex_embedding_query(await newServerClient(), query_embedding, match_threshold, match_count, options);
120
20
  }
@@ -0,0 +1,17 @@
1
+ import { SupabaseClient } from "@supabase/supabase-js";
2
+ import { EventInsert, EventUpdate, IEvent, IEventWithMediaUrl } from "../types/db";
3
+ import { EnumSessionsVisibility } from "../types/events";
4
+ import { IWebResponseCompatible } from "../types/requests";
5
+ import { Database } from "../types/supabase";
6
+ export declare function get_event_by_id_query(client: SupabaseClient<Database>, id: number): Promise<IWebResponseCompatible<IEventWithMediaUrl | null>>;
7
+ export declare function get_total_events_by_herd_query(client: SupabaseClient<Database>, herd_id: number, sessions_visibility: EnumSessionsVisibility): Promise<IWebResponseCompatible<number>>;
8
+ export declare function insert_event_query(client: SupabaseClient<Database>, events: EventInsert | EventInsert[]): Promise<IWebResponseCompatible<IEvent[]>>;
9
+ export declare function update_event_query(client: SupabaseClient<Database>, events: (EventUpdate & {
10
+ id: number;
11
+ }) | (EventUpdate & {
12
+ id: number;
13
+ })[]): Promise<IWebResponseCompatible<IEvent[]>>;
14
+ export declare function delete_event_query(client: SupabaseClient<Database>, id: number | number[]): Promise<IWebResponseCompatible<boolean>>;
15
+ export declare function match_events_by_vertex_embedding_query(client: SupabaseClient<Database>, query_embedding: number[], match_threshold: number, match_count: number, options?: {
16
+ herd_id?: number | null;
17
+ }): Promise<IWebResponseCompatible<IEvent[]>>;
@@ -1,7 +1,7 @@
1
+ import { EnumSessionsVisibility } from "../types/events";
1
2
  import { EnumWebResponse, IWebResponse, } from "../types/requests";
2
- import { generateSignedUrlWithClient } from "./storage_internal";
3
- import { isNonEmptyStorageFilePath } from "./storagePath";
4
- export async function getEventByIdWithClient(client, id) {
3
+ import { addEventMediaUrls } from "./media_urls";
4
+ export async function get_event_by_id_query(client, id) {
5
5
  const { data, error } = await client
6
6
  .from("events")
7
7
  .select("*")
@@ -14,16 +14,25 @@ export async function getEventByIdWithClient(client, id) {
14
14
  return IWebResponse.success(null).to_compatible();
15
15
  }
16
16
  const event = data;
17
- let media_url = null;
18
- if (isNonEmptyStorageFilePath(event.file_path)) {
19
- media_url = await generateSignedUrlWithClient(client, event.file_path);
17
+ const [eventWithUrl] = await addEventMediaUrls(client, [event]);
18
+ return IWebResponse.success(eventWithUrl).to_compatible();
19
+ }
20
+ export async function get_total_events_by_herd_query(client, herd_id, sessions_visibility) {
21
+ const exclude_session_events = sessions_visibility === EnumSessionsVisibility.Exclude;
22
+ const { data, error } = (await client.rpc("get_total_events_for_herd_with_session_filter", {
23
+ herd_id_caller: herd_id,
24
+ exclude_session_events,
25
+ }));
26
+ if (error) {
27
+ return {
28
+ status: EnumWebResponse.ERROR,
29
+ msg: error.message,
30
+ data: 0,
31
+ };
20
32
  }
21
- return IWebResponse.success({
22
- ...event,
23
- media_url,
24
- }).to_compatible();
33
+ return IWebResponse.success(data || 0).to_compatible();
25
34
  }
26
- export async function insertEventWithClient(client, events) {
35
+ export async function insert_event_query(client, events) {
27
36
  const eventsArray = Array.isArray(events) ? events : [events];
28
37
  const { data, error } = await client
29
38
  .from("events")
@@ -39,7 +48,7 @@ export async function insertEventWithClient(client, events) {
39
48
  }
40
49
  return IWebResponse.success(data || []).to_compatible();
41
50
  }
42
- export async function updateEventWithClient(client, events) {
51
+ export async function update_event_query(client, events) {
43
52
  const eventsArray = Array.isArray(events) ? events : [events];
44
53
  const updatedEvents = [];
45
54
  for (const event of eventsArray) {
@@ -65,7 +74,7 @@ export async function updateEventWithClient(client, events) {
65
74
  }
66
75
  return IWebResponse.success(updatedEvents).to_compatible();
67
76
  }
68
- export async function deleteEventWithClient(client, id) {
77
+ export async function delete_event_query(client, id) {
69
78
  const ids = Array.isArray(id) ? id : [id];
70
79
  const { error } = await client.from("events").delete().in("id", ids);
71
80
  if (error) {
@@ -73,13 +82,13 @@ export async function deleteEventWithClient(client, id) {
73
82
  }
74
83
  return IWebResponse.success(true).to_compatible();
75
84
  }
76
- export async function matchEventsByVertexEmbeddingWithClient(client, query_embedding, match_threshold, match_count, herd_id) {
85
+ export async function match_events_by_vertex_embedding_query(client, query_embedding, match_threshold, match_count, options) {
77
86
  const rpcName = "match_events_by_vertex_embedding";
78
87
  const { data, error } = await client.rpc(rpcName, {
79
88
  query_embedding: JSON.stringify(query_embedding),
80
89
  match_threshold,
81
90
  match_count,
82
- herd_id_caller: herd_id ?? undefined,
91
+ herd_id_caller: options?.herd_id ?? undefined,
83
92
  });
84
93
  if (error) {
85
94
  return IWebResponse.error(error.message).to_compatible();