@adventurelabs/scout-core 1.4.40 → 1.4.41

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.
@@ -8,5 +8,5 @@ export { useScoutRealtimeSessions } from "./useScoutRealtimeSessions";
8
8
  export { useScoutRealtimePlans } from "./useScoutRealtimePlans";
9
9
  export { useScoutRealtimePins } from "./useScoutRealtimePins";
10
10
  export { useScoutRealtimeParts } from "./useScoutRealtimeParts";
11
- export { useInfiniteSessionsByHerd, useInfiniteSessionsByDevice, useInfiniteEventsByHerd, useInfiniteEventsByDevice, useInfiniteArtifactsByHerd, useInfiniteArtifactsByDevice, useIntersectionObserver, } from "./useInfiniteQuery";
11
+ export { useInfiniteSessionsByHerd, useInfiniteSessionsByDevice, useInfiniteEventsByHerd, useInfiniteEventsByDevice, useInfiniteArtifactsByHerd, useInfiniteArtifactsByDevice, useInfiniteFeedByHerd, useInfiniteFeedByDevice, useIntersectionObserver, type UseInfiniteScrollOptions, } from "./useInfiniteQuery";
12
12
  export { useLoadingPerformance, useSessionSummariesByHerd, useHasSessionSummaries, } from "../store/hooks";
@@ -9,6 +9,6 @@ export { useScoutRealtimePlans } from "./useScoutRealtimePlans";
9
9
  export { useScoutRealtimePins } from "./useScoutRealtimePins";
10
10
  export { useScoutRealtimeParts } from "./useScoutRealtimeParts";
11
11
  // RTK Query infinite scroll hooks
12
- export { useInfiniteSessionsByHerd, useInfiniteSessionsByDevice, useInfiniteEventsByHerd, useInfiniteEventsByDevice, useInfiniteArtifactsByHerd, useInfiniteArtifactsByDevice, useIntersectionObserver, } from "./useInfiniteQuery";
12
+ export { useInfiniteSessionsByHerd, useInfiniteSessionsByDevice, useInfiniteEventsByHerd, useInfiniteEventsByDevice, useInfiniteArtifactsByHerd, useInfiniteArtifactsByDevice, useInfiniteFeedByHerd, useInfiniteFeedByDevice, useIntersectionObserver, } from "./useInfiniteQuery";
13
13
  // Session summaries and performance hooks
14
14
  export { useLoadingPerformance, useSessionSummariesByHerd, useHasSessionSummaries, } from "../store/hooks";
@@ -1,9 +1,16 @@
1
1
  import { SupabaseClient } from "@supabase/supabase-js";
2
2
  import { IArtifactWithMediaUrl, ISessionWithCoordinates, IEventAndTagsPrettyLocation, IFeedItem } from "../types/db";
3
- interface UseInfiniteScrollOptions {
3
+ export interface UseInfiniteScrollOptions {
4
4
  limit?: number;
5
5
  enabled?: boolean;
6
6
  supabase: SupabaseClient;
7
+ /** Inclusive time window in iso format */
8
+ rangeStart?: string | null;
9
+ rangeEnd?: string | null;
10
+ /** [Sessions only] minimum flight duration in minutez */
11
+ minFlightTimeMinutes?: number | null;
12
+ /** [Sessions only] minimum distance_total in meterz */
13
+ minFlightDistanceMeters?: number | null;
7
14
  }
8
15
  interface InfiniteScrollData<T> {
9
16
  items: T[];
@@ -1,5 +1,18 @@
1
1
  import { useState, useCallback, useMemo, useEffect, useRef } from "react";
2
2
  import { useGetSessionsInfiniteByHerdQuery, useGetSessionsInfiniteByDeviceQuery, useGetEventsInfiniteByHerdQuery, useGetEventsInfiniteByDeviceQuery, useGetArtifactsInfiniteByHerdQuery, useGetArtifactsInfiniteByDeviceQuery, useGetFeedInfiniteByHerdQuery, useGetFeedInfiniteByDeviceQuery, } from "../store/api";
3
+ function useInfiniteFiltersKey(options) {
4
+ return useMemo(() => JSON.stringify({
5
+ rangeStart: options.rangeStart ?? null,
6
+ rangeEnd: options.rangeEnd ?? null,
7
+ minFlightTimeMinutes: options.minFlightTimeMinutes ?? null,
8
+ minFlightDistanceMeters: options.minFlightDistanceMeters ?? null,
9
+ }), [
10
+ options.rangeStart,
11
+ options.rangeEnd,
12
+ options.minFlightTimeMinutes,
13
+ options.minFlightDistanceMeters,
14
+ ]);
15
+ }
3
16
  // =====================================================
4
17
  // SESSIONS INFINITE SCROLL HOOKS
5
18
  // =====================================================
@@ -7,11 +20,17 @@ export const useInfiniteSessionsByHerd = (herdId, options) => {
7
20
  const [pages, setPages] = useState([]);
8
21
  const [currentCursor, setCurrentCursor] = useState(null);
9
22
  const prevHerdIdRef = useRef();
23
+ const infiniteFiltersKey = useInfiniteFiltersKey(options);
24
+ const prevInfiniteFiltersKeyRef = useRef(null);
10
25
  const currentQuery = useGetSessionsInfiniteByHerdQuery({
11
26
  herdId,
12
27
  limit: options.limit || 20,
13
28
  cursor: currentCursor,
14
29
  supabase: options.supabase,
30
+ rangeStart: options.rangeStart ?? null,
31
+ rangeEnd: options.rangeEnd ?? null,
32
+ minFlightTimeMinutes: options.minFlightTimeMinutes ?? null,
33
+ minFlightDistanceMeters: options.minFlightDistanceMeters ?? null,
15
34
  }, {
16
35
  skip: !options.enabled || !herdId,
17
36
  });
@@ -26,6 +45,17 @@ export const useInfiniteSessionsByHerd = (herdId, options) => {
26
45
  }
27
46
  prevHerdIdRef.current = herdId;
28
47
  }, [herdId, options.enabled]);
48
+ useEffect(() => {
49
+ if (prevInfiniteFiltersKeyRef.current === null) {
50
+ prevInfiniteFiltersKeyRef.current = infiniteFiltersKey;
51
+ return;
52
+ }
53
+ if (prevInfiniteFiltersKeyRef.current !== infiniteFiltersKey) {
54
+ prevInfiniteFiltersKeyRef.current = infiniteFiltersKey;
55
+ setPages([]);
56
+ setCurrentCursor(null);
57
+ }
58
+ }, [infiniteFiltersKey]);
29
59
  // Update pages when new data arrives
30
60
  useEffect(() => {
31
61
  if (currentQuery.data && !currentQuery.isLoading) {
@@ -75,11 +105,17 @@ export const useInfiniteSessionsByDevice = (deviceId, options) => {
75
105
  const [pages, setPages] = useState([]);
76
106
  const [currentCursor, setCurrentCursor] = useState(null);
77
107
  const prevDeviceIdRef = useRef();
108
+ const infiniteFiltersKey = useInfiniteFiltersKey(options);
109
+ const prevInfiniteFiltersKeyRef = useRef(null);
78
110
  const currentQuery = useGetSessionsInfiniteByDeviceQuery({
79
111
  deviceId,
80
112
  limit: options.limit || 20,
81
113
  cursor: currentCursor,
82
114
  supabase: options.supabase,
115
+ rangeStart: options.rangeStart ?? null,
116
+ rangeEnd: options.rangeEnd ?? null,
117
+ minFlightTimeMinutes: options.minFlightTimeMinutes ?? null,
118
+ minFlightDistanceMeters: options.minFlightDistanceMeters ?? null,
83
119
  }, {
84
120
  skip: !options.enabled || !deviceId,
85
121
  });
@@ -94,6 +130,17 @@ export const useInfiniteSessionsByDevice = (deviceId, options) => {
94
130
  }
95
131
  prevDeviceIdRef.current = deviceId;
96
132
  }, [deviceId, options.enabled]);
133
+ useEffect(() => {
134
+ if (prevInfiniteFiltersKeyRef.current === null) {
135
+ prevInfiniteFiltersKeyRef.current = infiniteFiltersKey;
136
+ return;
137
+ }
138
+ if (prevInfiniteFiltersKeyRef.current !== infiniteFiltersKey) {
139
+ prevInfiniteFiltersKeyRef.current = infiniteFiltersKey;
140
+ setPages([]);
141
+ setCurrentCursor(null);
142
+ }
143
+ }, [infiniteFiltersKey]);
97
144
  useEffect(() => {
98
145
  if (currentQuery.data && !currentQuery.isLoading) {
99
146
  setPages((prev) => {
@@ -144,11 +191,15 @@ export const useInfiniteEventsByHerd = (herdId, options) => {
144
191
  const [pages, setPages] = useState([]);
145
192
  const [currentCursor, setCurrentCursor] = useState(null);
146
193
  const prevHerdIdRef = useRef();
194
+ const infiniteFiltersKey = useInfiniteFiltersKey(options);
195
+ const prevInfiniteFiltersKeyRef = useRef(null);
147
196
  const currentQuery = useGetEventsInfiniteByHerdQuery({
148
197
  herdId,
149
198
  limit: options.limit || 20,
150
199
  cursor: currentCursor,
151
200
  supabase: options.supabase,
201
+ rangeStart: options.rangeStart ?? null,
202
+ rangeEnd: options.rangeEnd ?? null,
152
203
  }, {
153
204
  skip: !options.enabled || !herdId,
154
205
  });
@@ -163,6 +214,17 @@ export const useInfiniteEventsByHerd = (herdId, options) => {
163
214
  }
164
215
  prevHerdIdRef.current = herdId;
165
216
  }, [herdId, options.enabled]);
217
+ useEffect(() => {
218
+ if (prevInfiniteFiltersKeyRef.current === null) {
219
+ prevInfiniteFiltersKeyRef.current = infiniteFiltersKey;
220
+ return;
221
+ }
222
+ if (prevInfiniteFiltersKeyRef.current !== infiniteFiltersKey) {
223
+ prevInfiniteFiltersKeyRef.current = infiniteFiltersKey;
224
+ setPages([]);
225
+ setCurrentCursor(null);
226
+ }
227
+ }, [infiniteFiltersKey]);
166
228
  useEffect(() => {
167
229
  if (currentQuery.data && !currentQuery.isLoading) {
168
230
  setPages((prev) => {
@@ -210,11 +272,15 @@ export const useInfiniteEventsByDevice = (deviceId, options) => {
210
272
  const [pages, setPages] = useState([]);
211
273
  const [currentCursor, setCurrentCursor] = useState(null);
212
274
  const prevDeviceIdRef = useRef();
275
+ const infiniteFiltersKey = useInfiniteFiltersKey(options);
276
+ const prevInfiniteFiltersKeyRef = useRef(null);
213
277
  const currentQuery = useGetEventsInfiniteByDeviceQuery({
214
278
  deviceId,
215
279
  limit: options.limit || 20,
216
280
  cursor: currentCursor,
217
281
  supabase: options.supabase,
282
+ rangeStart: options.rangeStart ?? null,
283
+ rangeEnd: options.rangeEnd ?? null,
218
284
  }, {
219
285
  skip: !options.enabled || !deviceId,
220
286
  });
@@ -229,6 +295,17 @@ export const useInfiniteEventsByDevice = (deviceId, options) => {
229
295
  }
230
296
  prevDeviceIdRef.current = deviceId;
231
297
  }, [deviceId, options.enabled]);
298
+ useEffect(() => {
299
+ if (prevInfiniteFiltersKeyRef.current === null) {
300
+ prevInfiniteFiltersKeyRef.current = infiniteFiltersKey;
301
+ return;
302
+ }
303
+ if (prevInfiniteFiltersKeyRef.current !== infiniteFiltersKey) {
304
+ prevInfiniteFiltersKeyRef.current = infiniteFiltersKey;
305
+ setPages([]);
306
+ setCurrentCursor(null);
307
+ }
308
+ }, [infiniteFiltersKey]);
232
309
  useEffect(() => {
233
310
  if (currentQuery.data && !currentQuery.isLoading) {
234
311
  setPages((prev) => {
@@ -279,11 +356,15 @@ export const useInfiniteArtifactsByHerd = (herdId, options) => {
279
356
  const [pages, setPages] = useState([]);
280
357
  const [currentCursor, setCurrentCursor] = useState(null);
281
358
  const prevHerdIdRef = useRef();
359
+ const infiniteFiltersKey = useInfiniteFiltersKey(options);
360
+ const prevInfiniteFiltersKeyRef = useRef(null);
282
361
  const currentQuery = useGetArtifactsInfiniteByHerdQuery({
283
362
  herdId,
284
363
  limit: options.limit || 20,
285
364
  cursor: currentCursor,
286
365
  supabase: options.supabase,
366
+ rangeStart: options.rangeStart ?? null,
367
+ rangeEnd: options.rangeEnd ?? null,
287
368
  }, {
288
369
  skip: !options.enabled || !herdId,
289
370
  });
@@ -298,6 +379,17 @@ export const useInfiniteArtifactsByHerd = (herdId, options) => {
298
379
  }
299
380
  prevHerdIdRef.current = herdId;
300
381
  }, [herdId, options.enabled]);
382
+ useEffect(() => {
383
+ if (prevInfiniteFiltersKeyRef.current === null) {
384
+ prevInfiniteFiltersKeyRef.current = infiniteFiltersKey;
385
+ return;
386
+ }
387
+ if (prevInfiniteFiltersKeyRef.current !== infiniteFiltersKey) {
388
+ prevInfiniteFiltersKeyRef.current = infiniteFiltersKey;
389
+ setPages([]);
390
+ setCurrentCursor(null);
391
+ }
392
+ }, [infiniteFiltersKey]);
301
393
  useEffect(() => {
302
394
  if (currentQuery.data && !currentQuery.isLoading) {
303
395
  setPages((prev) => {
@@ -345,11 +437,15 @@ export const useInfiniteArtifactsByDevice = (deviceId, options) => {
345
437
  const [pages, setPages] = useState([]);
346
438
  const [currentCursor, setCurrentCursor] = useState(null);
347
439
  const prevDeviceIdRef = useRef();
440
+ const infiniteFiltersKey = useInfiniteFiltersKey(options);
441
+ const prevInfiniteFiltersKeyRef = useRef(null);
348
442
  const currentQuery = useGetArtifactsInfiniteByDeviceQuery({
349
443
  deviceId,
350
444
  limit: options.limit || 20,
351
445
  cursor: currentCursor,
352
446
  supabase: options.supabase,
447
+ rangeStart: options.rangeStart ?? null,
448
+ rangeEnd: options.rangeEnd ?? null,
353
449
  }, {
354
450
  skip: !options.enabled || !deviceId,
355
451
  });
@@ -364,6 +460,17 @@ export const useInfiniteArtifactsByDevice = (deviceId, options) => {
364
460
  }
365
461
  prevDeviceIdRef.current = deviceId;
366
462
  }, [deviceId, options.enabled]);
463
+ useEffect(() => {
464
+ if (prevInfiniteFiltersKeyRef.current === null) {
465
+ prevInfiniteFiltersKeyRef.current = infiniteFiltersKey;
466
+ return;
467
+ }
468
+ if (prevInfiniteFiltersKeyRef.current !== infiniteFiltersKey) {
469
+ prevInfiniteFiltersKeyRef.current = infiniteFiltersKey;
470
+ setPages([]);
471
+ setCurrentCursor(null);
472
+ }
473
+ }, [infiniteFiltersKey]);
367
474
  useEffect(() => {
368
475
  if (currentQuery.data && !currentQuery.isLoading) {
369
476
  setPages((prev) => {
@@ -428,12 +535,16 @@ export const useInfiniteFeedByHerd = (herdId, options) => {
428
535
  const pagesLengthRef = useRef(0);
429
536
  /** When true, pass null to the query so we don't request (newHerdId, oldCursor) before state commits. */
430
537
  const forceNullCursorRef = useRef(false);
538
+ const infiniteFiltersKey = useInfiniteFiltersKey(options);
539
+ const prevInfiniteFiltersKeyRef = useRef(null);
431
540
  const cursorForQuery = forceNullCursorRef.current ? null : currentCursor;
432
541
  const currentQuery = useGetFeedInfiniteByHerdQuery({
433
542
  herdId,
434
543
  limit,
435
544
  cursor: cursorForQuery,
436
545
  supabase: options.supabase,
546
+ rangeStart: options.rangeStart ?? null,
547
+ rangeEnd: options.rangeEnd ?? null,
437
548
  }, { skip: !enabled });
438
549
  const isLoading = currentQuery.isLoading;
439
550
  useEffect(() => {
@@ -453,6 +564,20 @@ export const useInfiniteFeedByHerd = (herdId, options) => {
453
564
  }
454
565
  prevHerdIdRef.current = herdId;
455
566
  }, [herdId, enabled]);
567
+ useEffect(() => {
568
+ if (prevInfiniteFiltersKeyRef.current === null) {
569
+ prevInfiniteFiltersKeyRef.current = infiniteFiltersKey;
570
+ return;
571
+ }
572
+ if (prevInfiniteFiltersKeyRef.current !== infiniteFiltersKey) {
573
+ prevInfiniteFiltersKeyRef.current = infiniteFiltersKey;
574
+ forceNullCursorRef.current = true;
575
+ setPages([]);
576
+ setCurrentCursor(null);
577
+ setCurrentResult(null);
578
+ lastAddedCursorRef.current = undefined;
579
+ }
580
+ }, [infiniteFiltersKey]);
456
581
  // When cursor changes, clear ref so we merge the new response
457
582
  useEffect(() => {
458
583
  lastAddedCursorRef.current = undefined;
@@ -572,12 +697,16 @@ export const useInfiniteFeedByDevice = (deviceId, options) => {
572
697
  const lastAddedCursorRef = useRef(undefined);
573
698
  const pagesLengthRef = useRef(0);
574
699
  const forceNullCursorRef = useRef(false);
700
+ const infiniteFiltersKey = useInfiniteFiltersKey(options);
701
+ const prevInfiniteFiltersKeyRef = useRef(null);
575
702
  const cursorForQuery = forceNullCursorRef.current ? null : currentCursor;
576
703
  const currentQuery = useGetFeedInfiniteByDeviceQuery({
577
704
  deviceId,
578
705
  limit: options.limit || 20,
579
706
  cursor: cursorForQuery,
580
707
  supabase: options.supabase,
708
+ rangeStart: options.rangeStart ?? null,
709
+ rangeEnd: options.rangeEnd ?? null,
581
710
  }, { skip: !options.enabled || !deviceId });
582
711
  useEffect(() => {
583
712
  pagesLengthRef.current = pages.length;
@@ -594,6 +723,20 @@ export const useInfiniteFeedByDevice = (deviceId, options) => {
594
723
  }
595
724
  prevDeviceIdRef.current = deviceId;
596
725
  }, [deviceId]);
726
+ useEffect(() => {
727
+ if (prevInfiniteFiltersKeyRef.current === null) {
728
+ prevInfiniteFiltersKeyRef.current = infiniteFiltersKey;
729
+ return;
730
+ }
731
+ if (prevInfiniteFiltersKeyRef.current !== infiniteFiltersKey) {
732
+ prevInfiniteFiltersKeyRef.current = infiniteFiltersKey;
733
+ forceNullCursorRef.current = true;
734
+ setPages([]);
735
+ setCurrentCursor(null);
736
+ lastAddedCursorRef.current = undefined;
737
+ setLastResult(null);
738
+ }
739
+ }, [infiniteFiltersKey]);
597
740
  // When we request a new page (cursor changed), clear ref so we merge the new response
598
741
  useEffect(() => {
599
742
  lastAddedCursorRef.current = undefined;
@@ -1727,6 +1727,37 @@ export declare function useSupabase(): SupabaseClient<Database, "public", "publi
1727
1727
  isOneToOne: false;
1728
1728
  isSetofReturn: true;
1729
1729
  };
1730
+ } | {
1731
+ Args: {
1732
+ cursor_id?: number;
1733
+ cursor_timestamp?: string;
1734
+ device_id_caller: number;
1735
+ limit_caller?: number;
1736
+ range_end?: string;
1737
+ range_start?: string;
1738
+ };
1739
+ Returns: {
1740
+ created_at: string;
1741
+ device_id: number;
1742
+ embedded_at: string | null;
1743
+ file_path: string;
1744
+ file_size_bytes: number | null;
1745
+ id: number;
1746
+ modality: string | null;
1747
+ segmented_at: string | null;
1748
+ session_id: number | null;
1749
+ tagged_at: string | null;
1750
+ timestamp_observation: string | null;
1751
+ timestamp_observation_end: string;
1752
+ tracked_at: string | null;
1753
+ updated_at: string | null;
1754
+ }[];
1755
+ SetofOptions: {
1756
+ from: "*";
1757
+ to: "artifacts";
1758
+ isOneToOne: false;
1759
+ isSetofReturn: true;
1760
+ };
1730
1761
  };
1731
1762
  get_artifacts_infinite_by_herd: {
1732
1763
  Args: {
@@ -1757,6 +1788,37 @@ export declare function useSupabase(): SupabaseClient<Database, "public", "publi
1757
1788
  isOneToOne: false;
1758
1789
  isSetofReturn: true;
1759
1790
  };
1791
+ } | {
1792
+ Args: {
1793
+ cursor_id?: number;
1794
+ cursor_timestamp?: string;
1795
+ herd_id_caller: number;
1796
+ limit_caller?: number;
1797
+ range_end?: string;
1798
+ range_start?: string;
1799
+ };
1800
+ Returns: {
1801
+ created_at: string;
1802
+ device_id: number;
1803
+ embedded_at: string | null;
1804
+ file_path: string;
1805
+ file_size_bytes: number | null;
1806
+ id: number;
1807
+ modality: string | null;
1808
+ segmented_at: string | null;
1809
+ session_id: number | null;
1810
+ tagged_at: string | null;
1811
+ timestamp_observation: string | null;
1812
+ timestamp_observation_end: string;
1813
+ tracked_at: string | null;
1814
+ updated_at: string | null;
1815
+ }[];
1816
+ SetofOptions: {
1817
+ from: "*";
1818
+ to: "artifacts";
1819
+ isOneToOne: false;
1820
+ isSetofReturn: true;
1821
+ };
1760
1822
  };
1761
1823
  get_connectivity_for_artifact: {
1762
1824
  Args: {
@@ -1964,6 +2026,22 @@ export declare function useSupabase(): SupabaseClient<Database, "public", "publi
1964
2026
  isOneToOne: false;
1965
2027
  isSetofReturn: true;
1966
2028
  };
2029
+ } | {
2030
+ Args: {
2031
+ cursor_id?: number;
2032
+ cursor_timestamp?: string;
2033
+ device_id_caller: number;
2034
+ limit_caller?: number;
2035
+ range_end?: string;
2036
+ range_start?: string;
2037
+ };
2038
+ Returns: Database["public"]["CompositeTypes"]["event_and_tags_pretty_location"][];
2039
+ SetofOptions: {
2040
+ from: "*";
2041
+ to: "event_and_tags_pretty_location";
2042
+ isOneToOne: false;
2043
+ isSetofReturn: true;
2044
+ };
1967
2045
  };
1968
2046
  get_events_infinite_by_herd: {
1969
2047
  Args: {
@@ -1979,6 +2057,22 @@ export declare function useSupabase(): SupabaseClient<Database, "public", "publi
1979
2057
  isOneToOne: false;
1980
2058
  isSetofReturn: true;
1981
2059
  };
2060
+ } | {
2061
+ Args: {
2062
+ cursor_id?: number;
2063
+ cursor_timestamp?: string;
2064
+ herd_id_caller: number;
2065
+ limit_caller?: number;
2066
+ range_end?: string;
2067
+ range_start?: string;
2068
+ };
2069
+ Returns: Database["public"]["CompositeTypes"]["event_and_tags_pretty_location"][];
2070
+ SetofOptions: {
2071
+ from: "*";
2072
+ to: "event_and_tags_pretty_location";
2073
+ isOneToOne: false;
2074
+ isSetofReturn: true;
2075
+ };
1982
2076
  };
1983
2077
  get_events_with_tags_for_herd: {
1984
2078
  Args: {
@@ -2009,6 +2103,23 @@ export declare function useSupabase(): SupabaseClient<Database, "public", "publi
2009
2103
  isOneToOne: false;
2010
2104
  isSetofReturn: true;
2011
2105
  };
2106
+ } | {
2107
+ Args: {
2108
+ cursor_feed_type?: string;
2109
+ cursor_id?: number;
2110
+ cursor_timestamp?: string;
2111
+ device_id_caller: number;
2112
+ limit_caller?: number;
2113
+ range_end?: string;
2114
+ range_start?: string;
2115
+ };
2116
+ Returns: Database["public"]["CompositeTypes"]["feed_item"][];
2117
+ SetofOptions: {
2118
+ from: "*";
2119
+ to: "feed_item";
2120
+ isOneToOne: false;
2121
+ isSetofReturn: true;
2122
+ };
2012
2123
  };
2013
2124
  get_feed_infinite_by_herd: {
2014
2125
  Args: {
@@ -2025,6 +2136,23 @@ export declare function useSupabase(): SupabaseClient<Database, "public", "publi
2025
2136
  isOneToOne: false;
2026
2137
  isSetofReturn: true;
2027
2138
  };
2139
+ } | {
2140
+ Args: {
2141
+ cursor_feed_type?: string;
2142
+ cursor_id?: number;
2143
+ cursor_timestamp?: string;
2144
+ herd_id_caller: number;
2145
+ limit_caller?: number;
2146
+ range_end?: string;
2147
+ range_start?: string;
2148
+ };
2149
+ Returns: Database["public"]["CompositeTypes"]["feed_item"][];
2150
+ SetofOptions: {
2151
+ from: "*";
2152
+ to: "feed_item";
2153
+ isOneToOne: false;
2154
+ isSetofReturn: true;
2155
+ };
2028
2156
  };
2029
2157
  get_health_metrics_summary: {
2030
2158
  Args: {
@@ -2113,6 +2241,10 @@ export declare function useSupabase(): SupabaseClient<Database, "public", "publi
2113
2241
  cursor_timestamp?: string;
2114
2242
  device_id_caller: number;
2115
2243
  limit_caller?: number;
2244
+ min_flight_distance_meters?: number;
2245
+ min_flight_time_minutes?: number;
2246
+ range_end?: string;
2247
+ range_start?: string;
2116
2248
  };
2117
2249
  Returns: Database["public"]["CompositeTypes"]["session_with_coordinates"][];
2118
2250
  SetofOptions: {
@@ -2128,6 +2260,10 @@ export declare function useSupabase(): SupabaseClient<Database, "public", "publi
2128
2260
  cursor_timestamp?: string;
2129
2261
  herd_id_caller: number;
2130
2262
  limit_caller?: number;
2263
+ min_flight_distance_meters?: number;
2264
+ min_flight_time_minutes?: number;
2265
+ range_end?: string;
2266
+ range_start?: string;
2131
2267
  };
2132
2268
  Returns: Database["public"]["CompositeTypes"]["session_with_coordinates"][];
2133
2269
  SetofOptions: {
@@ -8,6 +8,13 @@ export interface InfiniteQueryArgs {
8
8
  timestamp: string;
9
9
  id: number;
10
10
  } | null;
11
+ /** Inclusive time window on the RPC sort timestamp (ISO strings). */
12
+ rangeStart?: string | null;
13
+ rangeEnd?: string | null;
14
+ /** Sessions RPC only: minimum (timestamp_end - timestamp_start) in minutes. */
15
+ minFlightTimeMinutes?: number | null;
16
+ /** Sessions RPC only: minimum distance_total in meters. */
17
+ minFlightDistanceMeters?: number | null;
11
18
  }
12
19
  export interface SessionsInfiniteResponse {
13
20
  sessions: ISessionWithCoordinates[];
@@ -43,6 +50,22 @@ export interface FeedInfiniteResponse {
43
50
  nextCursor: FeedCursor | null;
44
51
  hasMore: boolean;
45
52
  }
53
+ export interface FeedInfiniteByHerdQueryArgs {
54
+ herdId: number;
55
+ limit?: number;
56
+ cursor?: FeedCursor | null;
57
+ supabase: SupabaseClient;
58
+ rangeStart?: string | null;
59
+ rangeEnd?: string | null;
60
+ }
61
+ export interface FeedInfiniteByDeviceQueryArgs {
62
+ deviceId: number;
63
+ limit?: number;
64
+ cursor?: FeedCursor | null;
65
+ supabase: SupabaseClient;
66
+ rangeStart?: string | null;
67
+ rangeEnd?: string | null;
68
+ }
46
69
  export declare const scoutApi: import("@reduxjs/toolkit/query").Api<import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, {
47
70
  getSessionsInfiniteByHerd: import("@reduxjs/toolkit/query").QueryDefinition<InfiniteQueryArgs & {
48
71
  supabase: SupabaseClient;
@@ -62,18 +85,8 @@ export declare const scoutApi: import("@reduxjs/toolkit/query").Api<import("@red
62
85
  getArtifactsInfiniteByDevice: import("@reduxjs/toolkit/query").QueryDefinition<InfiniteQueryArgs & {
63
86
  supabase: SupabaseClient;
64
87
  }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", ArtifactsInfiniteResponse, "scoutApi", unknown>;
65
- getFeedInfiniteByHerd: import("@reduxjs/toolkit/query").QueryDefinition<{
66
- herdId: number;
67
- limit?: number;
68
- cursor?: FeedCursor | null;
69
- supabase: SupabaseClient;
70
- }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>;
71
- getFeedInfiniteByDevice: import("@reduxjs/toolkit/query").QueryDefinition<{
72
- deviceId: number;
73
- limit?: number;
74
- cursor?: FeedCursor | null;
75
- supabase: SupabaseClient;
76
- }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>;
88
+ getFeedInfiniteByHerd: import("@reduxjs/toolkit/query").QueryDefinition<FeedInfiniteByHerdQueryArgs, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>;
89
+ getFeedInfiniteByDevice: import("@reduxjs/toolkit/query").QueryDefinition<FeedInfiniteByDeviceQueryArgs, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>;
77
90
  }, "scoutApi", "Session" | "Event" | "Artifact", typeof import("@reduxjs/toolkit/query").coreModuleName | typeof import("@reduxjs/toolkit/query/react").reactHooksModuleName>;
78
91
  export declare const useGetSessionsInfiniteByHerdQuery: <R extends Record<string, any> = import("@reduxjs/toolkit/query").TSHelpersId<(Omit<{
79
92
  status: import("@reduxjs/toolkit/query").QueryStatus.uninitialized;
@@ -1005,12 +1018,7 @@ export declare const useGetSessionsInfiniteByHerdQuery: <R extends Record<string
1005
1018
  isError: false;
1006
1019
  }, "isUninitialized"> & {
1007
1020
  isUninitialized: true;
1008
- }) | import("@reduxjs/toolkit/query").TSHelpersOverride<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<{
1009
- herdId: number;
1010
- limit?: number;
1011
- cursor?: FeedCursor | null;
1012
- supabase: SupabaseClient;
1013
- }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1021
+ }) | import("@reduxjs/toolkit/query").TSHelpersOverride<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<FeedInfiniteByHerdQueryArgs, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1014
1022
  currentData?: FeedInfiniteResponse | undefined;
1015
1023
  isUninitialized: false;
1016
1024
  isLoading: false;
@@ -1025,12 +1033,7 @@ export declare const useGetSessionsInfiniteByHerdQuery: <R extends Record<string
1025
1033
  isSuccess: true;
1026
1034
  isFetching: true;
1027
1035
  error: undefined;
1028
- } & Required<Pick<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<{
1029
- herdId: number;
1030
- limit?: number;
1031
- cursor?: FeedCursor | null;
1032
- supabase: SupabaseClient;
1033
- }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1036
+ } & Required<Pick<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<FeedInfiniteByHerdQueryArgs, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1034
1037
  currentData?: FeedInfiniteResponse | undefined;
1035
1038
  isUninitialized: false;
1036
1039
  isLoading: false;
@@ -1041,12 +1044,7 @@ export declare const useGetSessionsInfiniteByHerdQuery: <R extends Record<string
1041
1044
  isSuccess: true;
1042
1045
  isFetching: false;
1043
1046
  error: undefined;
1044
- } & Required<Pick<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<{
1045
- herdId: number;
1046
- limit?: number;
1047
- cursor?: FeedCursor | null;
1048
- supabase: SupabaseClient;
1049
- }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1047
+ } & Required<Pick<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<FeedInfiniteByHerdQueryArgs, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1050
1048
  currentData?: FeedInfiniteResponse | undefined;
1051
1049
  isUninitialized: false;
1052
1050
  isLoading: false;
@@ -1055,12 +1053,7 @@ export declare const useGetSessionsInfiniteByHerdQuery: <R extends Record<string
1055
1053
  isError: false;
1056
1054
  }, "data" | "fulfilledTimeStamp" | "currentData">>) | ({
1057
1055
  isError: true;
1058
- } & Required<Pick<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<{
1059
- herdId: number;
1060
- limit?: number;
1061
- cursor?: FeedCursor | null;
1062
- supabase: SupabaseClient;
1063
- }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1056
+ } & Required<Pick<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<FeedInfiniteByHerdQueryArgs, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1064
1057
  currentData?: FeedInfiniteResponse | undefined;
1065
1058
  isUninitialized: false;
1066
1059
  isLoading: false;
@@ -1069,12 +1062,7 @@ export declare const useGetSessionsInfiniteByHerdQuery: <R extends Record<string
1069
1062
  isError: false;
1070
1063
  }, "error">>)>> & {
1071
1064
  status: import("@reduxjs/toolkit/query").QueryStatus;
1072
- }>(arg: {
1073
- herdId: number;
1074
- limit?: number;
1075
- cursor?: FeedCursor | null;
1076
- supabase: SupabaseClient;
1077
- } | typeof import("@reduxjs/toolkit/query").skipToken, options?: (import("@reduxjs/toolkit/query").SubscriptionOptions & {
1065
+ }>(arg: FeedInfiniteByHerdQueryArgs | typeof import("@reduxjs/toolkit/query").skipToken, options?: (import("@reduxjs/toolkit/query").SubscriptionOptions & {
1078
1066
  skip?: boolean;
1079
1067
  refetchOnMountOrArgChange?: boolean | number;
1080
1068
  } & {
@@ -1097,12 +1085,7 @@ export declare const useGetSessionsInfiniteByHerdQuery: <R extends Record<string
1097
1085
  isError: false;
1098
1086
  }, "isUninitialized"> & {
1099
1087
  isUninitialized: true;
1100
- }) | import("@reduxjs/toolkit/query").TSHelpersOverride<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<{
1101
- herdId: number;
1102
- limit?: number;
1103
- cursor?: FeedCursor | null;
1104
- supabase: SupabaseClient;
1105
- }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1088
+ }) | import("@reduxjs/toolkit/query").TSHelpersOverride<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<FeedInfiniteByHerdQueryArgs, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1106
1089
  currentData?: FeedInfiniteResponse | undefined;
1107
1090
  isUninitialized: false;
1108
1091
  isLoading: false;
@@ -1117,12 +1100,7 @@ export declare const useGetSessionsInfiniteByHerdQuery: <R extends Record<string
1117
1100
  isSuccess: true;
1118
1101
  isFetching: true;
1119
1102
  error: undefined;
1120
- } & Required<Pick<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<{
1121
- herdId: number;
1122
- limit?: number;
1123
- cursor?: FeedCursor | null;
1124
- supabase: SupabaseClient;
1125
- }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1103
+ } & Required<Pick<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<FeedInfiniteByHerdQueryArgs, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1126
1104
  currentData?: FeedInfiniteResponse | undefined;
1127
1105
  isUninitialized: false;
1128
1106
  isLoading: false;
@@ -1133,12 +1111,7 @@ export declare const useGetSessionsInfiniteByHerdQuery: <R extends Record<string
1133
1111
  isSuccess: true;
1134
1112
  isFetching: false;
1135
1113
  error: undefined;
1136
- } & Required<Pick<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<{
1137
- herdId: number;
1138
- limit?: number;
1139
- cursor?: FeedCursor | null;
1140
- supabase: SupabaseClient;
1141
- }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1114
+ } & Required<Pick<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<FeedInfiniteByHerdQueryArgs, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1142
1115
  currentData?: FeedInfiniteResponse | undefined;
1143
1116
  isUninitialized: false;
1144
1117
  isLoading: false;
@@ -1147,12 +1120,7 @@ export declare const useGetSessionsInfiniteByHerdQuery: <R extends Record<string
1147
1120
  isError: false;
1148
1121
  }, "data" | "fulfilledTimeStamp" | "currentData">>) | ({
1149
1122
  isError: true;
1150
- } & Required<Pick<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<{
1151
- herdId: number;
1152
- limit?: number;
1153
- cursor?: FeedCursor | null;
1154
- supabase: SupabaseClient;
1155
- }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1123
+ } & Required<Pick<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<FeedInfiniteByHerdQueryArgs, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1156
1124
  currentData?: FeedInfiniteResponse | undefined;
1157
1125
  isUninitialized: false;
1158
1126
  isLoading: false;
@@ -1163,12 +1131,7 @@ export declare const useGetSessionsInfiniteByHerdQuery: <R extends Record<string
1163
1131
  status: import("@reduxjs/toolkit/query").QueryStatus;
1164
1132
  }) => R) | undefined;
1165
1133
  }) | undefined) => [R][R extends any ? 0 : never] & {
1166
- refetch: () => import("@reduxjs/toolkit/query").QueryActionCreatorResult<import("@reduxjs/toolkit/query").QueryDefinition<{
1167
- herdId: number;
1168
- limit?: number;
1169
- cursor?: FeedCursor | null;
1170
- supabase: SupabaseClient;
1171
- }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>>;
1134
+ refetch: () => import("@reduxjs/toolkit/query").QueryActionCreatorResult<import("@reduxjs/toolkit/query").QueryDefinition<FeedInfiniteByHerdQueryArgs, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>>;
1172
1135
  }, useGetFeedInfiniteByDeviceQuery: <R extends Record<string, any> = import("@reduxjs/toolkit/query").TSHelpersId<(Omit<{
1173
1136
  status: import("@reduxjs/toolkit/query").QueryStatus.uninitialized;
1174
1137
  originalArgs?: undefined | undefined;
@@ -1187,12 +1150,7 @@ export declare const useGetSessionsInfiniteByHerdQuery: <R extends Record<string
1187
1150
  isError: false;
1188
1151
  }, "isUninitialized"> & {
1189
1152
  isUninitialized: true;
1190
- }) | import("@reduxjs/toolkit/query").TSHelpersOverride<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<{
1191
- deviceId: number;
1192
- limit?: number;
1193
- cursor?: FeedCursor | null;
1194
- supabase: SupabaseClient;
1195
- }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1153
+ }) | import("@reduxjs/toolkit/query").TSHelpersOverride<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<FeedInfiniteByDeviceQueryArgs, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1196
1154
  currentData?: FeedInfiniteResponse | undefined;
1197
1155
  isUninitialized: false;
1198
1156
  isLoading: false;
@@ -1207,12 +1165,7 @@ export declare const useGetSessionsInfiniteByHerdQuery: <R extends Record<string
1207
1165
  isSuccess: true;
1208
1166
  isFetching: true;
1209
1167
  error: undefined;
1210
- } & Required<Pick<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<{
1211
- deviceId: number;
1212
- limit?: number;
1213
- cursor?: FeedCursor | null;
1214
- supabase: SupabaseClient;
1215
- }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1168
+ } & Required<Pick<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<FeedInfiniteByDeviceQueryArgs, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1216
1169
  currentData?: FeedInfiniteResponse | undefined;
1217
1170
  isUninitialized: false;
1218
1171
  isLoading: false;
@@ -1223,12 +1176,7 @@ export declare const useGetSessionsInfiniteByHerdQuery: <R extends Record<string
1223
1176
  isSuccess: true;
1224
1177
  isFetching: false;
1225
1178
  error: undefined;
1226
- } & Required<Pick<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<{
1227
- deviceId: number;
1228
- limit?: number;
1229
- cursor?: FeedCursor | null;
1230
- supabase: SupabaseClient;
1231
- }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1179
+ } & Required<Pick<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<FeedInfiniteByDeviceQueryArgs, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1232
1180
  currentData?: FeedInfiniteResponse | undefined;
1233
1181
  isUninitialized: false;
1234
1182
  isLoading: false;
@@ -1237,12 +1185,7 @@ export declare const useGetSessionsInfiniteByHerdQuery: <R extends Record<string
1237
1185
  isError: false;
1238
1186
  }, "data" | "fulfilledTimeStamp" | "currentData">>) | ({
1239
1187
  isError: true;
1240
- } & Required<Pick<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<{
1241
- deviceId: number;
1242
- limit?: number;
1243
- cursor?: FeedCursor | null;
1244
- supabase: SupabaseClient;
1245
- }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1188
+ } & Required<Pick<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<FeedInfiniteByDeviceQueryArgs, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1246
1189
  currentData?: FeedInfiniteResponse | undefined;
1247
1190
  isUninitialized: false;
1248
1191
  isLoading: false;
@@ -1251,12 +1194,7 @@ export declare const useGetSessionsInfiniteByHerdQuery: <R extends Record<string
1251
1194
  isError: false;
1252
1195
  }, "error">>)>> & {
1253
1196
  status: import("@reduxjs/toolkit/query").QueryStatus;
1254
- }>(arg: {
1255
- deviceId: number;
1256
- limit?: number;
1257
- cursor?: FeedCursor | null;
1258
- supabase: SupabaseClient;
1259
- } | typeof import("@reduxjs/toolkit/query").skipToken, options?: (import("@reduxjs/toolkit/query").SubscriptionOptions & {
1197
+ }>(arg: FeedInfiniteByDeviceQueryArgs | typeof import("@reduxjs/toolkit/query").skipToken, options?: (import("@reduxjs/toolkit/query").SubscriptionOptions & {
1260
1198
  skip?: boolean;
1261
1199
  refetchOnMountOrArgChange?: boolean | number;
1262
1200
  } & {
@@ -1279,12 +1217,7 @@ export declare const useGetSessionsInfiniteByHerdQuery: <R extends Record<string
1279
1217
  isError: false;
1280
1218
  }, "isUninitialized"> & {
1281
1219
  isUninitialized: true;
1282
- }) | import("@reduxjs/toolkit/query").TSHelpersOverride<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<{
1283
- deviceId: number;
1284
- limit?: number;
1285
- cursor?: FeedCursor | null;
1286
- supabase: SupabaseClient;
1287
- }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1220
+ }) | import("@reduxjs/toolkit/query").TSHelpersOverride<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<FeedInfiniteByDeviceQueryArgs, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1288
1221
  currentData?: FeedInfiniteResponse | undefined;
1289
1222
  isUninitialized: false;
1290
1223
  isLoading: false;
@@ -1299,12 +1232,7 @@ export declare const useGetSessionsInfiniteByHerdQuery: <R extends Record<string
1299
1232
  isSuccess: true;
1300
1233
  isFetching: true;
1301
1234
  error: undefined;
1302
- } & Required<Pick<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<{
1303
- deviceId: number;
1304
- limit?: number;
1305
- cursor?: FeedCursor | null;
1306
- supabase: SupabaseClient;
1307
- }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1235
+ } & Required<Pick<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<FeedInfiniteByDeviceQueryArgs, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1308
1236
  currentData?: FeedInfiniteResponse | undefined;
1309
1237
  isUninitialized: false;
1310
1238
  isLoading: false;
@@ -1315,12 +1243,7 @@ export declare const useGetSessionsInfiniteByHerdQuery: <R extends Record<string
1315
1243
  isSuccess: true;
1316
1244
  isFetching: false;
1317
1245
  error: undefined;
1318
- } & Required<Pick<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<{
1319
- deviceId: number;
1320
- limit?: number;
1321
- cursor?: FeedCursor | null;
1322
- supabase: SupabaseClient;
1323
- }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1246
+ } & Required<Pick<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<FeedInfiniteByDeviceQueryArgs, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1324
1247
  currentData?: FeedInfiniteResponse | undefined;
1325
1248
  isUninitialized: false;
1326
1249
  isLoading: false;
@@ -1329,12 +1252,7 @@ export declare const useGetSessionsInfiniteByHerdQuery: <R extends Record<string
1329
1252
  isError: false;
1330
1253
  }, "data" | "fulfilledTimeStamp" | "currentData">>) | ({
1331
1254
  isError: true;
1332
- } & Required<Pick<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<{
1333
- deviceId: number;
1334
- limit?: number;
1335
- cursor?: FeedCursor | null;
1336
- supabase: SupabaseClient;
1337
- }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1255
+ } & Required<Pick<import("@reduxjs/toolkit/query").QuerySubState<import("@reduxjs/toolkit/query").QueryDefinition<FeedInfiniteByDeviceQueryArgs, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>> & {
1338
1256
  currentData?: FeedInfiniteResponse | undefined;
1339
1257
  isUninitialized: false;
1340
1258
  isLoading: false;
@@ -1345,10 +1263,5 @@ export declare const useGetSessionsInfiniteByHerdQuery: <R extends Record<string
1345
1263
  status: import("@reduxjs/toolkit/query").QueryStatus;
1346
1264
  }) => R) | undefined;
1347
1265
  }) | undefined) => [R][R extends any ? 0 : never] & {
1348
- refetch: () => import("@reduxjs/toolkit/query").QueryActionCreatorResult<import("@reduxjs/toolkit/query").QueryDefinition<{
1349
- deviceId: number;
1350
- limit?: number;
1351
- cursor?: FeedCursor | null;
1352
- supabase: SupabaseClient;
1353
- }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>>;
1266
+ refetch: () => import("@reduxjs/toolkit/query").QueryActionCreatorResult<import("@reduxjs/toolkit/query").QueryDefinition<FeedInfiniteByDeviceQueryArgs, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", FeedInfiniteResponse, "scoutApi", unknown>>;
1354
1267
  };
package/dist/store/api.js CHANGED
@@ -16,7 +16,7 @@ export const scoutApi = createApi({
16
16
  // =====================================================
17
17
  getSessionsInfiniteByHerd: builder.query({
18
18
  serializeQueryArgs,
19
- async queryFn({ herdId, limit = 20, cursor, supabase }) {
19
+ async queryFn({ herdId, limit = 20, cursor, rangeStart, rangeEnd, minFlightTimeMinutes, minFlightDistanceMeters, supabase, }) {
20
20
  try {
21
21
  if (!herdId) {
22
22
  return {
@@ -28,6 +28,10 @@ export const scoutApi = createApi({
28
28
  limit_caller: limit + 1, // Fetch one extra to determine if there are more
29
29
  cursor_timestamp: cursor?.timestamp || null,
30
30
  cursor_id: cursor?.id || null,
31
+ range_start: rangeStart ?? null,
32
+ range_end: rangeEnd ?? null,
33
+ min_flight_time_minutes: minFlightTimeMinutes ?? null,
34
+ min_flight_distance_meters: minFlightDistanceMeters ?? null,
31
35
  });
32
36
  if (error) {
33
37
  return {
@@ -68,7 +72,7 @@ export const scoutApi = createApi({
68
72
  }),
69
73
  getSessionsInfiniteByDevice: builder.query({
70
74
  serializeQueryArgs,
71
- async queryFn({ deviceId, limit = 20, cursor, supabase }) {
75
+ async queryFn({ deviceId, limit = 20, cursor, rangeStart, rangeEnd, minFlightTimeMinutes, minFlightDistanceMeters, supabase, }) {
72
76
  try {
73
77
  if (!deviceId) {
74
78
  return {
@@ -80,6 +84,10 @@ export const scoutApi = createApi({
80
84
  limit_caller: limit + 1,
81
85
  cursor_timestamp: cursor?.timestamp || null,
82
86
  cursor_id: cursor?.id || null,
87
+ range_start: rangeStart ?? null,
88
+ range_end: rangeEnd ?? null,
89
+ min_flight_time_minutes: minFlightTimeMinutes ?? null,
90
+ min_flight_distance_meters: minFlightDistanceMeters ?? null,
83
91
  });
84
92
  if (error) {
85
93
  return {
@@ -123,7 +131,7 @@ export const scoutApi = createApi({
123
131
  // =====================================================
124
132
  getEventsInfiniteByHerd: builder.query({
125
133
  serializeQueryArgs,
126
- async queryFn({ herdId, limit = 20, cursor, supabase }) {
134
+ async queryFn({ herdId, limit = 20, cursor, rangeStart, rangeEnd, supabase, }) {
127
135
  try {
128
136
  if (!herdId) {
129
137
  return {
@@ -135,6 +143,8 @@ export const scoutApi = createApi({
135
143
  limit_caller: limit + 1,
136
144
  cursor_timestamp: cursor?.timestamp || null,
137
145
  cursor_id: cursor?.id || null,
146
+ range_start: rangeStart ?? null,
147
+ range_end: rangeEnd ?? null,
138
148
  });
139
149
  if (error) {
140
150
  return {
@@ -199,7 +209,7 @@ export const scoutApi = createApi({
199
209
  }),
200
210
  getEventsInfiniteByDevice: builder.query({
201
211
  serializeQueryArgs,
202
- async queryFn({ deviceId, limit = 20, cursor, supabase }) {
212
+ async queryFn({ deviceId, limit = 20, cursor, rangeStart, rangeEnd, supabase, }) {
203
213
  try {
204
214
  if (!deviceId) {
205
215
  return {
@@ -211,6 +221,8 @@ export const scoutApi = createApi({
211
221
  limit_caller: limit + 1,
212
222
  cursor_timestamp: cursor?.timestamp || null,
213
223
  cursor_id: cursor?.id || null,
224
+ range_start: rangeStart ?? null,
225
+ range_end: rangeEnd ?? null,
214
226
  });
215
227
  if (error) {
216
228
  return {
@@ -278,7 +290,7 @@ export const scoutApi = createApi({
278
290
  // =====================================================
279
291
  getArtifactsInfiniteByHerd: builder.query({
280
292
  serializeQueryArgs,
281
- async queryFn({ herdId, limit = 20, cursor, supabase }) {
293
+ async queryFn({ herdId, limit = 20, cursor, rangeStart, rangeEnd, supabase, }) {
282
294
  try {
283
295
  if (!herdId) {
284
296
  return {
@@ -290,6 +302,8 @@ export const scoutApi = createApi({
290
302
  limit_caller: limit + 1,
291
303
  cursor_timestamp: cursor?.timestamp || null,
292
304
  cursor_id: cursor?.id || null,
305
+ range_start: rangeStart ?? null,
306
+ range_end: rangeEnd ?? null,
293
307
  });
294
308
  if (error) {
295
309
  return {
@@ -355,7 +369,7 @@ export const scoutApi = createApi({
355
369
  }),
356
370
  getArtifactsInfiniteByDevice: builder.query({
357
371
  serializeQueryArgs,
358
- async queryFn({ deviceId, limit = 20, cursor, supabase }) {
372
+ async queryFn({ deviceId, limit = 20, cursor, rangeStart, rangeEnd, supabase, }) {
359
373
  try {
360
374
  if (!deviceId) {
361
375
  return {
@@ -367,6 +381,8 @@ export const scoutApi = createApi({
367
381
  limit_caller: limit + 1,
368
382
  cursor_timestamp: cursor?.timestamp || null,
369
383
  cursor_id: cursor?.id || null,
384
+ range_start: rangeStart ?? null,
385
+ range_end: rangeEnd ?? null,
370
386
  });
371
387
  if (error) {
372
388
  return {
@@ -435,7 +451,7 @@ export const scoutApi = createApi({
435
451
  // =====================================================
436
452
  getFeedInfiniteByHerd: builder.query({
437
453
  serializeQueryArgs,
438
- async queryFn({ herdId, limit = 20, cursor, supabase }) {
454
+ async queryFn({ herdId, limit = 20, cursor, rangeStart, rangeEnd, supabase, }) {
439
455
  try {
440
456
  if (!herdId) {
441
457
  return {
@@ -448,6 +464,8 @@ export const scoutApi = createApi({
448
464
  cursor_timestamp: cursor?.timestamp ?? null,
449
465
  cursor_id: cursor?.id ?? null,
450
466
  cursor_feed_type: cursor?.feed_type ?? null,
467
+ range_start: rangeStart ?? null,
468
+ range_end: rangeEnd ?? null,
451
469
  });
452
470
  if (error) {
453
471
  return {
@@ -522,7 +540,7 @@ export const scoutApi = createApi({
522
540
  }),
523
541
  getFeedInfiniteByDevice: builder.query({
524
542
  serializeQueryArgs,
525
- async queryFn({ deviceId, limit = 20, cursor, supabase }) {
543
+ async queryFn({ deviceId, limit = 20, cursor, rangeStart, rangeEnd, supabase, }) {
526
544
  try {
527
545
  if (!deviceId) {
528
546
  return {
@@ -535,6 +553,8 @@ export const scoutApi = createApi({
535
553
  cursor_timestamp: cursor?.timestamp ?? null,
536
554
  cursor_id: cursor?.id ?? null,
537
555
  cursor_feed_type: cursor?.feed_type ?? null,
556
+ range_start: rangeStart ?? null,
557
+ range_end: rangeEnd ?? null,
538
558
  });
539
559
  if (error) {
540
560
  return {
@@ -19,18 +19,8 @@ export declare const configureScoutStore: () => import("@reduxjs/toolkit").Enhan
19
19
  getArtifactsInfiniteByDevice: import("@reduxjs/toolkit/query").QueryDefinition<import("./api").InfiniteQueryArgs & {
20
20
  supabase: import("@supabase/supabase-js").SupabaseClient;
21
21
  }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", import("./api").ArtifactsInfiniteResponse, "scoutApi", unknown>;
22
- getFeedInfiniteByHerd: import("@reduxjs/toolkit/query").QueryDefinition<{
23
- herdId: number;
24
- limit?: number;
25
- cursor?: import("./api").FeedCursor | null;
26
- supabase: import("@supabase/supabase-js").SupabaseClient;
27
- }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", import("./api").FeedInfiniteResponse, "scoutApi", unknown>;
28
- getFeedInfiniteByDevice: import("@reduxjs/toolkit/query").QueryDefinition<{
29
- deviceId: number;
30
- limit?: number;
31
- cursor?: import("./api").FeedCursor | null;
32
- supabase: import("@supabase/supabase-js").SupabaseClient;
33
- }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", import("./api").FeedInfiniteResponse, "scoutApi", unknown>;
22
+ getFeedInfiniteByHerd: import("@reduxjs/toolkit/query").QueryDefinition<import("./api").FeedInfiniteByHerdQueryArgs, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", import("./api").FeedInfiniteResponse, "scoutApi", unknown>;
23
+ getFeedInfiniteByDevice: import("@reduxjs/toolkit/query").QueryDefinition<import("./api").FeedInfiniteByDeviceQueryArgs, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", import("./api").FeedInfiniteResponse, "scoutApi", unknown>;
34
24
  }, "Session" | "Event" | "Artifact", "scoutApi">;
35
25
  }, import("redux").UnknownAction, import("@reduxjs/toolkit").Tuple<[import("redux").StoreEnhancer<{
36
26
  dispatch: import("redux-thunk").ThunkDispatch<{
@@ -54,18 +44,8 @@ export declare const configureScoutStore: () => import("@reduxjs/toolkit").Enhan
54
44
  getArtifactsInfiniteByDevice: import("@reduxjs/toolkit/query").QueryDefinition<import("./api").InfiniteQueryArgs & {
55
45
  supabase: import("@supabase/supabase-js").SupabaseClient;
56
46
  }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", import("./api").ArtifactsInfiniteResponse, "scoutApi", unknown>;
57
- getFeedInfiniteByHerd: import("@reduxjs/toolkit/query").QueryDefinition<{
58
- herdId: number;
59
- limit?: number;
60
- cursor?: import("./api").FeedCursor | null;
61
- supabase: import("@supabase/supabase-js").SupabaseClient;
62
- }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", import("./api").FeedInfiniteResponse, "scoutApi", unknown>;
63
- getFeedInfiniteByDevice: import("@reduxjs/toolkit/query").QueryDefinition<{
64
- deviceId: number;
65
- limit?: number;
66
- cursor?: import("./api").FeedCursor | null;
67
- supabase: import("@supabase/supabase-js").SupabaseClient;
68
- }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", import("./api").FeedInfiniteResponse, "scoutApi", unknown>;
47
+ getFeedInfiniteByHerd: import("@reduxjs/toolkit/query").QueryDefinition<import("./api").FeedInfiniteByHerdQueryArgs, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", import("./api").FeedInfiniteResponse, "scoutApi", unknown>;
48
+ getFeedInfiniteByDevice: import("@reduxjs/toolkit/query").QueryDefinition<import("./api").FeedInfiniteByDeviceQueryArgs, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", import("./api").FeedInfiniteResponse, "scoutApi", unknown>;
69
49
  }, "Session" | "Event" | "Artifact", "scoutApi">;
70
50
  }, undefined, import("redux").UnknownAction>;
71
51
  }>, import("redux").StoreEnhancer]>>;
@@ -92,18 +72,8 @@ export declare const store: import("@reduxjs/toolkit").EnhancedStore<{
92
72
  getArtifactsInfiniteByDevice: import("@reduxjs/toolkit/query").QueryDefinition<import("./api").InfiniteQueryArgs & {
93
73
  supabase: import("@supabase/supabase-js").SupabaseClient;
94
74
  }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", import("./api").ArtifactsInfiniteResponse, "scoutApi", unknown>;
95
- getFeedInfiniteByHerd: import("@reduxjs/toolkit/query").QueryDefinition<{
96
- herdId: number;
97
- limit?: number;
98
- cursor?: import("./api").FeedCursor | null;
99
- supabase: import("@supabase/supabase-js").SupabaseClient;
100
- }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", import("./api").FeedInfiniteResponse, "scoutApi", unknown>;
101
- getFeedInfiniteByDevice: import("@reduxjs/toolkit/query").QueryDefinition<{
102
- deviceId: number;
103
- limit?: number;
104
- cursor?: import("./api").FeedCursor | null;
105
- supabase: import("@supabase/supabase-js").SupabaseClient;
106
- }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", import("./api").FeedInfiniteResponse, "scoutApi", unknown>;
75
+ getFeedInfiniteByHerd: import("@reduxjs/toolkit/query").QueryDefinition<import("./api").FeedInfiniteByHerdQueryArgs, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", import("./api").FeedInfiniteResponse, "scoutApi", unknown>;
76
+ getFeedInfiniteByDevice: import("@reduxjs/toolkit/query").QueryDefinition<import("./api").FeedInfiniteByDeviceQueryArgs, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", import("./api").FeedInfiniteResponse, "scoutApi", unknown>;
107
77
  }, "Session" | "Event" | "Artifact", "scoutApi">;
108
78
  }, import("redux").UnknownAction, import("@reduxjs/toolkit").Tuple<[import("redux").StoreEnhancer<{
109
79
  dispatch: import("redux-thunk").ThunkDispatch<{
@@ -127,18 +97,8 @@ export declare const store: import("@reduxjs/toolkit").EnhancedStore<{
127
97
  getArtifactsInfiniteByDevice: import("@reduxjs/toolkit/query").QueryDefinition<import("./api").InfiniteQueryArgs & {
128
98
  supabase: import("@supabase/supabase-js").SupabaseClient;
129
99
  }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", import("./api").ArtifactsInfiniteResponse, "scoutApi", unknown>;
130
- getFeedInfiniteByHerd: import("@reduxjs/toolkit/query").QueryDefinition<{
131
- herdId: number;
132
- limit?: number;
133
- cursor?: import("./api").FeedCursor | null;
134
- supabase: import("@supabase/supabase-js").SupabaseClient;
135
- }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", import("./api").FeedInfiniteResponse, "scoutApi", unknown>;
136
- getFeedInfiniteByDevice: import("@reduxjs/toolkit/query").QueryDefinition<{
137
- deviceId: number;
138
- limit?: number;
139
- cursor?: import("./api").FeedCursor | null;
140
- supabase: import("@supabase/supabase-js").SupabaseClient;
141
- }, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", import("./api").FeedInfiniteResponse, "scoutApi", unknown>;
100
+ getFeedInfiniteByHerd: import("@reduxjs/toolkit/query").QueryDefinition<import("./api").FeedInfiniteByHerdQueryArgs, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", import("./api").FeedInfiniteResponse, "scoutApi", unknown>;
101
+ getFeedInfiniteByDevice: import("@reduxjs/toolkit/query").QueryDefinition<import("./api").FeedInfiniteByDeviceQueryArgs, import("@reduxjs/toolkit/query").BaseQueryFn<any, unknown, unknown, {}, {}>, "Session" | "Event" | "Artifact", import("./api").FeedInfiniteResponse, "scoutApi", unknown>;
142
102
  }, "Session" | "Event" | "Artifact", "scoutApi">;
143
103
  }, undefined, import("redux").UnknownAction>;
144
104
  }>, import("redux").StoreEnhancer]>>;
@@ -1804,6 +1804,37 @@ export type Database = {
1804
1804
  isOneToOne: false;
1805
1805
  isSetofReturn: true;
1806
1806
  };
1807
+ } | {
1808
+ Args: {
1809
+ cursor_id?: number;
1810
+ cursor_timestamp?: string;
1811
+ device_id_caller: number;
1812
+ limit_caller?: number;
1813
+ range_end?: string;
1814
+ range_start?: string;
1815
+ };
1816
+ Returns: {
1817
+ created_at: string;
1818
+ device_id: number;
1819
+ embedded_at: string | null;
1820
+ file_path: string;
1821
+ file_size_bytes: number | null;
1822
+ id: number;
1823
+ modality: string | null;
1824
+ segmented_at: string | null;
1825
+ session_id: number | null;
1826
+ tagged_at: string | null;
1827
+ timestamp_observation: string | null;
1828
+ timestamp_observation_end: string;
1829
+ tracked_at: string | null;
1830
+ updated_at: string | null;
1831
+ }[];
1832
+ SetofOptions: {
1833
+ from: "*";
1834
+ to: "artifacts";
1835
+ isOneToOne: false;
1836
+ isSetofReturn: true;
1837
+ };
1807
1838
  };
1808
1839
  get_artifacts_infinite_by_herd: {
1809
1840
  Args: {
@@ -1834,6 +1865,37 @@ export type Database = {
1834
1865
  isOneToOne: false;
1835
1866
  isSetofReturn: true;
1836
1867
  };
1868
+ } | {
1869
+ Args: {
1870
+ cursor_id?: number;
1871
+ cursor_timestamp?: string;
1872
+ herd_id_caller: number;
1873
+ limit_caller?: number;
1874
+ range_end?: string;
1875
+ range_start?: string;
1876
+ };
1877
+ Returns: {
1878
+ created_at: string;
1879
+ device_id: number;
1880
+ embedded_at: string | null;
1881
+ file_path: string;
1882
+ file_size_bytes: number | null;
1883
+ id: number;
1884
+ modality: string | null;
1885
+ segmented_at: string | null;
1886
+ session_id: number | null;
1887
+ tagged_at: string | null;
1888
+ timestamp_observation: string | null;
1889
+ timestamp_observation_end: string;
1890
+ tracked_at: string | null;
1891
+ updated_at: string | null;
1892
+ }[];
1893
+ SetofOptions: {
1894
+ from: "*";
1895
+ to: "artifacts";
1896
+ isOneToOne: false;
1897
+ isSetofReturn: true;
1898
+ };
1837
1899
  };
1838
1900
  get_connectivity_for_artifact: {
1839
1901
  Args: {
@@ -2041,6 +2103,22 @@ export type Database = {
2041
2103
  isOneToOne: false;
2042
2104
  isSetofReturn: true;
2043
2105
  };
2106
+ } | {
2107
+ Args: {
2108
+ cursor_id?: number;
2109
+ cursor_timestamp?: string;
2110
+ device_id_caller: number;
2111
+ limit_caller?: number;
2112
+ range_end?: string;
2113
+ range_start?: string;
2114
+ };
2115
+ Returns: Database["public"]["CompositeTypes"]["event_and_tags_pretty_location"][];
2116
+ SetofOptions: {
2117
+ from: "*";
2118
+ to: "event_and_tags_pretty_location";
2119
+ isOneToOne: false;
2120
+ isSetofReturn: true;
2121
+ };
2044
2122
  };
2045
2123
  get_events_infinite_by_herd: {
2046
2124
  Args: {
@@ -2056,6 +2134,22 @@ export type Database = {
2056
2134
  isOneToOne: false;
2057
2135
  isSetofReturn: true;
2058
2136
  };
2137
+ } | {
2138
+ Args: {
2139
+ cursor_id?: number;
2140
+ cursor_timestamp?: string;
2141
+ herd_id_caller: number;
2142
+ limit_caller?: number;
2143
+ range_end?: string;
2144
+ range_start?: string;
2145
+ };
2146
+ Returns: Database["public"]["CompositeTypes"]["event_and_tags_pretty_location"][];
2147
+ SetofOptions: {
2148
+ from: "*";
2149
+ to: "event_and_tags_pretty_location";
2150
+ isOneToOne: false;
2151
+ isSetofReturn: true;
2152
+ };
2059
2153
  };
2060
2154
  get_events_with_tags_for_herd: {
2061
2155
  Args: {
@@ -2086,6 +2180,23 @@ export type Database = {
2086
2180
  isOneToOne: false;
2087
2181
  isSetofReturn: true;
2088
2182
  };
2183
+ } | {
2184
+ Args: {
2185
+ cursor_feed_type?: string;
2186
+ cursor_id?: number;
2187
+ cursor_timestamp?: string;
2188
+ device_id_caller: number;
2189
+ limit_caller?: number;
2190
+ range_end?: string;
2191
+ range_start?: string;
2192
+ };
2193
+ Returns: Database["public"]["CompositeTypes"]["feed_item"][];
2194
+ SetofOptions: {
2195
+ from: "*";
2196
+ to: "feed_item";
2197
+ isOneToOne: false;
2198
+ isSetofReturn: true;
2199
+ };
2089
2200
  };
2090
2201
  get_feed_infinite_by_herd: {
2091
2202
  Args: {
@@ -2102,6 +2213,23 @@ export type Database = {
2102
2213
  isOneToOne: false;
2103
2214
  isSetofReturn: true;
2104
2215
  };
2216
+ } | {
2217
+ Args: {
2218
+ cursor_feed_type?: string;
2219
+ cursor_id?: number;
2220
+ cursor_timestamp?: string;
2221
+ herd_id_caller: number;
2222
+ limit_caller?: number;
2223
+ range_end?: string;
2224
+ range_start?: string;
2225
+ };
2226
+ Returns: Database["public"]["CompositeTypes"]["feed_item"][];
2227
+ SetofOptions: {
2228
+ from: "*";
2229
+ to: "feed_item";
2230
+ isOneToOne: false;
2231
+ isSetofReturn: true;
2232
+ };
2105
2233
  };
2106
2234
  get_health_metrics_summary: {
2107
2235
  Args: {
@@ -2190,6 +2318,10 @@ export type Database = {
2190
2318
  cursor_timestamp?: string;
2191
2319
  device_id_caller: number;
2192
2320
  limit_caller?: number;
2321
+ min_flight_distance_meters?: number;
2322
+ min_flight_time_minutes?: number;
2323
+ range_end?: string;
2324
+ range_start?: string;
2193
2325
  };
2194
2326
  Returns: Database["public"]["CompositeTypes"]["session_with_coordinates"][];
2195
2327
  SetofOptions: {
@@ -2205,6 +2337,10 @@ export type Database = {
2205
2337
  cursor_timestamp?: string;
2206
2338
  herd_id_caller: number;
2207
2339
  limit_caller?: number;
2340
+ min_flight_distance_meters?: number;
2341
+ min_flight_time_minutes?: number;
2342
+ range_end?: string;
2343
+ range_start?: string;
2208
2344
  };
2209
2345
  Returns: Database["public"]["CompositeTypes"]["session_with_coordinates"][];
2210
2346
  SetofOptions: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adventurelabs/scout-core",
3
- "version": "1.4.40",
3
+ "version": "1.4.41",
4
4
  "description": "Core utilities and helpers for Adventure Labs Scout applications",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",