@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
@@ -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
+ }
@@ -0,0 +1,98 @@
1
+ import { SensorPoseInsert, SensorPoseUpdate } from "../types/db";
2
+ import { get_sensor_poses_by_part_id } from "./sensor_poses";
3
+ export declare function server_get_sensor_poses_by_part_id(part_id: number, options?: Parameters<typeof get_sensor_poses_by_part_id>[2]): Promise<import("../types").IWebResponseCompatible<{
4
+ active_processing_modality: string | null;
5
+ active_recording_modality: string | null;
6
+ id: number;
7
+ inserted_at: string;
8
+ origin_heading: number | null;
9
+ origin_height: number | null;
10
+ origin_location: unknown;
11
+ origin_pitch: number | null;
12
+ origin_roll: number | null;
13
+ part_id: number;
14
+ sensor_pitch: number | null;
15
+ sensor_roll: number | null;
16
+ sensor_yaw: number | null;
17
+ timestamp_observation: string;
18
+ }[]>>;
19
+ export declare function server_get_sensor_pose_by_id(sensor_pose_id: number): Promise<import("../types").IWebResponseCompatible<{
20
+ active_processing_modality: string | null;
21
+ active_recording_modality: string | null;
22
+ id: number;
23
+ inserted_at: string;
24
+ origin_heading: number | null;
25
+ origin_height: number | null;
26
+ origin_location: unknown;
27
+ origin_pitch: number | null;
28
+ origin_roll: number | null;
29
+ part_id: number;
30
+ sensor_pitch: number | null;
31
+ sensor_roll: number | null;
32
+ sensor_yaw: number | null;
33
+ timestamp_observation: string;
34
+ } | null>>;
35
+ export declare function server_create_sensor_pose(row: SensorPoseInsert): Promise<import("../types").IWebResponseCompatible<{
36
+ active_processing_modality: string | null;
37
+ active_recording_modality: string | null;
38
+ id: number;
39
+ inserted_at: string;
40
+ origin_heading: number | null;
41
+ origin_height: number | null;
42
+ origin_location: unknown;
43
+ origin_pitch: number | null;
44
+ origin_roll: number | null;
45
+ part_id: number;
46
+ sensor_pitch: number | null;
47
+ sensor_roll: number | null;
48
+ sensor_yaw: number | null;
49
+ timestamp_observation: string;
50
+ } | null>>;
51
+ export declare function server_create_sensor_poses(rows: SensorPoseInsert[]): Promise<import("../types").IWebResponseCompatible<{
52
+ active_processing_modality: string | null;
53
+ active_recording_modality: string | null;
54
+ id: number;
55
+ inserted_at: string;
56
+ origin_heading: number | null;
57
+ origin_height: number | null;
58
+ origin_location: unknown;
59
+ origin_pitch: number | null;
60
+ origin_roll: number | null;
61
+ part_id: number;
62
+ sensor_pitch: number | null;
63
+ sensor_roll: number | null;
64
+ sensor_yaw: number | null;
65
+ timestamp_observation: string;
66
+ }[]>>;
67
+ export declare function server_update_sensor_pose(sensor_pose_id: number, patch: SensorPoseUpdate): Promise<import("../types").IWebResponseCompatible<{
68
+ active_processing_modality: string | null;
69
+ active_recording_modality: string | null;
70
+ id: number;
71
+ inserted_at: string;
72
+ origin_heading: number | null;
73
+ origin_height: number | null;
74
+ origin_location: unknown;
75
+ origin_pitch: number | null;
76
+ origin_roll: number | null;
77
+ part_id: number;
78
+ sensor_pitch: number | null;
79
+ sensor_roll: number | null;
80
+ sensor_yaw: number | null;
81
+ timestamp_observation: string;
82
+ } | null>>;
83
+ export declare function server_delete_sensor_pose(sensor_pose_id: number): Promise<import("../types").IWebResponseCompatible<{
84
+ active_processing_modality: string | null;
85
+ active_recording_modality: string | null;
86
+ id: number;
87
+ inserted_at: string;
88
+ origin_heading: number | null;
89
+ origin_height: number | null;
90
+ origin_location: unknown;
91
+ origin_pitch: number | null;
92
+ origin_roll: number | null;
93
+ part_id: number;
94
+ sensor_pitch: number | null;
95
+ sensor_roll: number | null;
96
+ sensor_yaw: number | null;
97
+ timestamp_observation: string;
98
+ } | null>>;
@@ -0,0 +1,26 @@
1
+ import { newServerClient } from "../supabase/server";
2
+ import { create_sensor_pose, create_sensor_poses, delete_sensor_pose, get_sensor_pose_by_id, get_sensor_poses_by_part_id, update_sensor_pose, } from "./sensor_poses";
3
+ export async function server_get_sensor_poses_by_part_id(part_id, options) {
4
+ const client = await newServerClient();
5
+ return get_sensor_poses_by_part_id(client, part_id, options);
6
+ }
7
+ export async function server_get_sensor_pose_by_id(sensor_pose_id) {
8
+ const client = await newServerClient();
9
+ return get_sensor_pose_by_id(client, sensor_pose_id);
10
+ }
11
+ export async function server_create_sensor_pose(row) {
12
+ const client = await newServerClient();
13
+ return create_sensor_pose(client, row);
14
+ }
15
+ export async function server_create_sensor_poses(rows) {
16
+ const client = await newServerClient();
17
+ return create_sensor_poses(client, rows);
18
+ }
19
+ export async function server_update_sensor_pose(sensor_pose_id, patch) {
20
+ const client = await newServerClient();
21
+ return update_sensor_pose(client, sensor_pose_id, patch);
22
+ }
23
+ export async function server_delete_sensor_pose(sensor_pose_id) {
24
+ const client = await newServerClient();
25
+ return delete_sensor_pose(client, sensor_pose_id);
26
+ }
@@ -0,0 +1,106 @@
1
+ import { SessionIncidentInsert, SessionIncidentUpdate } from "../types/db";
2
+ export declare function server_get_session_incidents_by_session_id(session_id: number): Promise<import("../types").IWebResponseCompatible<{
3
+ additional_details: import("../types").Json | null;
4
+ additional_details_version: number | null;
5
+ created_at: string;
6
+ created_by: string | null;
7
+ description: string | null;
8
+ device_altitude: number | null;
9
+ device_battery_percentage: number | null;
10
+ device_battery_time_remaining: string | null;
11
+ device_battery_volts: number | null;
12
+ device_location: unknown;
13
+ device_mode: string | null;
14
+ device_speed: number | null;
15
+ id: number;
16
+ incident_type: import("../types").Database["public"]["Enums"]["session_incident_type"] | null;
17
+ operator: string | null;
18
+ photo: string | null;
19
+ session_id: number;
20
+ updated_at: string;
21
+ updated_by: string | null;
22
+ }[]>>;
23
+ export declare function server_get_session_incident_by_id(incident_id: number): Promise<import("../types").IWebResponseCompatible<{
24
+ additional_details: import("../types").Json | null;
25
+ additional_details_version: number | null;
26
+ created_at: string;
27
+ created_by: string | null;
28
+ description: string | null;
29
+ device_altitude: number | null;
30
+ device_battery_percentage: number | null;
31
+ device_battery_time_remaining: string | null;
32
+ device_battery_volts: number | null;
33
+ device_location: unknown;
34
+ device_mode: string | null;
35
+ device_speed: number | null;
36
+ id: number;
37
+ incident_type: import("../types").Database["public"]["Enums"]["session_incident_type"] | null;
38
+ operator: string | null;
39
+ photo: string | null;
40
+ session_id: number;
41
+ updated_at: string;
42
+ updated_by: string | null;
43
+ } | null>>;
44
+ export declare function server_create_session_incident(row: SessionIncidentInsert): Promise<import("../types").IWebResponseCompatible<{
45
+ additional_details: import("../types").Json | null;
46
+ additional_details_version: number | null;
47
+ created_at: string;
48
+ created_by: string | null;
49
+ description: string | null;
50
+ device_altitude: number | null;
51
+ device_battery_percentage: number | null;
52
+ device_battery_time_remaining: string | null;
53
+ device_battery_volts: number | null;
54
+ device_location: unknown;
55
+ device_mode: string | null;
56
+ device_speed: number | null;
57
+ id: number;
58
+ incident_type: import("../types").Database["public"]["Enums"]["session_incident_type"] | null;
59
+ operator: string | null;
60
+ photo: string | null;
61
+ session_id: number;
62
+ updated_at: string;
63
+ updated_by: string | null;
64
+ } | null>>;
65
+ export declare function server_update_session_incident(incident_id: number, patch: SessionIncidentUpdate): Promise<import("../types").IWebResponseCompatible<{
66
+ additional_details: import("../types").Json | null;
67
+ additional_details_version: number | null;
68
+ created_at: string;
69
+ created_by: string | null;
70
+ description: string | null;
71
+ device_altitude: number | null;
72
+ device_battery_percentage: number | null;
73
+ device_battery_time_remaining: string | null;
74
+ device_battery_volts: number | null;
75
+ device_location: unknown;
76
+ device_mode: string | null;
77
+ device_speed: number | null;
78
+ id: number;
79
+ incident_type: import("../types").Database["public"]["Enums"]["session_incident_type"] | null;
80
+ operator: string | null;
81
+ photo: string | null;
82
+ session_id: number;
83
+ updated_at: string;
84
+ updated_by: string | null;
85
+ } | null>>;
86
+ export declare function server_delete_session_incident(incident_id: number): Promise<import("../types").IWebResponseCompatible<{
87
+ additional_details: import("../types").Json | null;
88
+ additional_details_version: number | null;
89
+ created_at: string;
90
+ created_by: string | null;
91
+ description: string | null;
92
+ device_altitude: number | null;
93
+ device_battery_percentage: number | null;
94
+ device_battery_time_remaining: string | null;
95
+ device_battery_volts: number | null;
96
+ device_location: unknown;
97
+ device_mode: string | null;
98
+ device_speed: number | null;
99
+ id: number;
100
+ incident_type: import("../types").Database["public"]["Enums"]["session_incident_type"] | null;
101
+ operator: string | null;
102
+ photo: string | null;
103
+ session_id: number;
104
+ updated_at: string;
105
+ updated_by: string | null;
106
+ } | null>>;
@@ -0,0 +1,22 @@
1
+ import { newServerClient } from "../supabase/server";
2
+ import { create_session_incident, delete_session_incident, get_session_incident_by_id, get_session_incidents_by_session_id, update_session_incident, } from "./session_incidents";
3
+ export async function server_get_session_incidents_by_session_id(session_id) {
4
+ const client = await newServerClient();
5
+ return get_session_incidents_by_session_id(client, session_id);
6
+ }
7
+ export async function server_get_session_incident_by_id(incident_id) {
8
+ const client = await newServerClient();
9
+ return get_session_incident_by_id(client, incident_id);
10
+ }
11
+ export async function server_create_session_incident(row) {
12
+ const client = await newServerClient();
13
+ return create_session_incident(client, row);
14
+ }
15
+ export async function server_update_session_incident(incident_id, patch) {
16
+ const client = await newServerClient();
17
+ return update_session_incident(client, incident_id, patch);
18
+ }
19
+ export async function server_delete_session_incident(incident_id) {
20
+ const client = await newServerClient();
21
+ return delete_session_incident(client, incident_id);
22
+ }
@@ -1,5 +1,7 @@
1
1
  import { ISessionSummary } from "../types/db";
2
2
  import { IWebResponseCompatible } from "../types/requests";
3
+ import { SessionSummaryFilters } from "./session_summaries.queries";
4
+ export declare function server_get_session_summaries(filters: SessionSummaryFilters): Promise<IWebResponseCompatible<ISessionSummary>>;
3
5
  export declare function server_get_session_summaries_by_herd(herd_id: number, min_duration_minutes_caller?: number, min_distance_meters_caller?: number, product_numbers_caller?: string[]): Promise<IWebResponseCompatible<ISessionSummary>>;
4
6
  export declare function server_get_session_summaries_by_device(device_id: number, min_duration_minutes_caller?: number, min_distance_meters_caller?: number, product_numbers_caller?: string[]): Promise<IWebResponseCompatible<ISessionSummary>>;
5
7
  export declare function server_get_session_summaries_with_filters(herd_id?: number, device_id?: number, start_date?: string, end_date?: string, min_duration_minutes_caller?: number, min_distance_meters_caller?: number, product_numbers_caller?: string[]): Promise<IWebResponseCompatible<ISessionSummary>>;
@@ -1,30 +1,14 @@
1
- "use server";
2
1
  import { newServerClient } from "../supabase/server";
3
- import { get_session_summaries_query } from "./session_summaries.queries";
2
+ import { get_session_summaries_by_device_query, get_session_summaries_by_herd_query, get_session_summaries_query, get_session_summaries_with_filters_query, } from "./session_summaries.queries";
3
+ export async function server_get_session_summaries(filters) {
4
+ return get_session_summaries_query(await newServerClient(), filters);
5
+ }
4
6
  export async function server_get_session_summaries_by_herd(herd_id, min_duration_minutes_caller, min_distance_meters_caller, product_numbers_caller) {
5
- return get_session_summaries_query(await newServerClient(), {
6
- herd_id,
7
- min_duration_minutes_caller,
8
- min_distance_meters_caller,
9
- product_numbers_caller,
10
- });
7
+ return get_session_summaries_by_herd_query(await newServerClient(), herd_id, min_duration_minutes_caller, min_distance_meters_caller, product_numbers_caller);
11
8
  }
12
9
  export async function server_get_session_summaries_by_device(device_id, min_duration_minutes_caller, min_distance_meters_caller, product_numbers_caller) {
13
- return get_session_summaries_query(await newServerClient(), {
14
- device_id,
15
- min_duration_minutes_caller,
16
- min_distance_meters_caller,
17
- product_numbers_caller,
18
- });
10
+ return get_session_summaries_by_device_query(await newServerClient(), device_id, min_duration_minutes_caller, min_distance_meters_caller, product_numbers_caller);
19
11
  }
20
12
  export async function server_get_session_summaries_with_filters(herd_id, device_id, start_date, end_date, min_duration_minutes_caller, min_distance_meters_caller, product_numbers_caller) {
21
- return get_session_summaries_query(await newServerClient(), {
22
- herd_id,
23
- device_id,
24
- start_date,
25
- end_date,
26
- min_duration_minutes_caller,
27
- min_distance_meters_caller,
28
- product_numbers_caller,
29
- });
13
+ return get_session_summaries_with_filters_query(await newServerClient(), herd_id, device_id, start_date, end_date, min_duration_minutes_caller, min_distance_meters_caller, product_numbers_caller);
30
14
  }
@@ -1,7 +1,8 @@
1
1
  import { SupabaseClient } from "@supabase/supabase-js";
2
2
  import { ISessionSummary } from "../types/db";
3
3
  import { IWebResponseCompatible } from "../types/requests";
4
- interface SessionSummaryFilters {
4
+ import { Database } from "../types/supabase";
5
+ export interface SessionSummaryFilters {
5
6
  herd_id?: number;
6
7
  device_id?: number;
7
8
  start_date?: string;
@@ -10,5 +11,7 @@ interface SessionSummaryFilters {
10
11
  min_distance_meters_caller?: number;
11
12
  product_numbers_caller?: string[];
12
13
  }
13
- export declare function get_session_summaries_query(client: SupabaseClient, filters: SessionSummaryFilters): Promise<IWebResponseCompatible<ISessionSummary>>;
14
- export {};
14
+ export declare function get_session_summaries_query(client: SupabaseClient<Database>, filters: SessionSummaryFilters): Promise<IWebResponseCompatible<ISessionSummary>>;
15
+ export declare function get_session_summaries_by_herd_query(client: SupabaseClient<Database>, herd_id: number, min_duration_minutes_caller?: number, min_distance_meters_caller?: number, product_numbers_caller?: string[]): Promise<IWebResponseCompatible<ISessionSummary>>;
16
+ export declare function get_session_summaries_by_device_query(client: SupabaseClient<Database>, device_id: number, min_duration_minutes_caller?: number, min_distance_meters_caller?: number, product_numbers_caller?: string[]): Promise<IWebResponseCompatible<ISessionSummary>>;
17
+ export declare function get_session_summaries_with_filters_query(client: SupabaseClient<Database>, herd_id?: number, device_id?: number, start_date?: string, end_date?: string, min_duration_minutes_caller?: number, min_distance_meters_caller?: number, product_numbers_caller?: string[]): Promise<IWebResponseCompatible<ISessionSummary>>;
@@ -17,3 +17,30 @@ export async function get_session_summaries_query(client, filters) {
17
17
  }
18
18
  return IWebResponse.success(data).to_compatible();
19
19
  }
20
+ export async function get_session_summaries_by_herd_query(client, herd_id, min_duration_minutes_caller, min_distance_meters_caller, product_numbers_caller) {
21
+ return get_session_summaries_query(client, {
22
+ herd_id,
23
+ min_duration_minutes_caller,
24
+ min_distance_meters_caller,
25
+ product_numbers_caller,
26
+ });
27
+ }
28
+ export async function get_session_summaries_by_device_query(client, device_id, min_duration_minutes_caller, min_distance_meters_caller, product_numbers_caller) {
29
+ return get_session_summaries_query(client, {
30
+ device_id,
31
+ min_duration_minutes_caller,
32
+ min_distance_meters_caller,
33
+ product_numbers_caller,
34
+ });
35
+ }
36
+ export async function get_session_summaries_with_filters_query(client, herd_id, device_id, start_date, end_date, min_duration_minutes_caller, min_distance_meters_caller, product_numbers_caller) {
37
+ return get_session_summaries_query(client, {
38
+ herd_id,
39
+ device_id,
40
+ start_date,
41
+ end_date,
42
+ min_duration_minutes_caller,
43
+ min_distance_meters_caller,
44
+ product_numbers_caller,
45
+ });
46
+ }