@adventurelabs/scout-core 1.0.114 → 1.0.116

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.
@@ -1,7 +1,7 @@
1
1
  import { useEffect, useCallback, useRef, useMemo } from "react";
2
2
  import { useAppDispatch } from "../store/hooks";
3
3
  import { useStore } from "react-redux";
4
- import { EnumScoutStateStatus, setHerdModules, setStatus, setHerdModulesLoadingState, setHerdModulesLoadedInMs, setHerdModulesApiDuration, setUserApiDuration, setDataProcessingDuration, setCacheLoadDuration, setUser, setDataSource, setDataSourceInfo, } from "../store/scout";
4
+ import { EnumScoutStateStatus, setHerdModules, setStatus, setHerdModulesLoadingState, setHerdModulesLoadedInMs, setHerdModulesApiServerProcessingDuration, setHerdModulesApiTotalRequestDuration, setUserApiDuration, setDataProcessingDuration, setCacheLoadDuration, setUser, setDataSource, setDataSourceInfo, } from "../store/scout";
5
5
  import { EnumHerdModulesLoadingState } from "../types/herd_module";
6
6
  import { server_load_herd_modules } from "../helpers/herds";
7
7
  import { scoutCache } from "../helpers/cache";
@@ -167,7 +167,7 @@ export function useScoutRefresh(options = {}) {
167
167
  : "No specific changes identified";
168
168
  }, [normalizeHerdModulesForComparison, sortHerdModulesById]);
169
169
  // Helper function to conditionally dispatch only if business data has changed
170
- const conditionalDispatch = useCallback((newData, currentData, actionCreator, dataType, skipTimestampOnlyUpdates = false) => {
170
+ const conditionalDispatch = useCallback((newData, currentData, actionCreator, dataType, skipTimestampOnlyUpdates = true) => {
171
171
  // For herd modules, sort both datasets by ID before comparison
172
172
  let dataToCompare = newData;
173
173
  let currentToCompare = currentData;
@@ -185,7 +185,7 @@ export function useScoutRefresh(options = {}) {
185
185
  console.log(`[useScoutRefresh] ${dataType} business data changed, updating store`);
186
186
  // Add debugging for unexpected business changes
187
187
  if (skipTimestampOnlyUpdates && dataType.includes("Herd modules")) {
188
- const changes = findBusinessDataChanges(newData, currentData);
188
+ const changes = findBusinessDataChanges(dataToCompare, currentToCompare);
189
189
  console.log(`[useScoutRefresh] ${dataType} changes: ${changes}`);
190
190
  }
191
191
  dispatch(actionCreator(newData)); // Always dispatch original unsorted data
@@ -239,7 +239,6 @@ export function useScoutRefresh(options = {}) {
239
239
  if (cacheFirst) {
240
240
  const cacheStartTime = Date.now();
241
241
  try {
242
- console.log("[useScoutRefresh] Loading from cache...");
243
242
  const cacheResult = await scoutCache.getHerdModules();
244
243
  cacheLoadDuration = Date.now() - cacheStartTime;
245
244
  timingRefs.current.cacheLoadDuration = cacheLoadDuration;
@@ -264,19 +263,24 @@ export function useScoutRefresh(options = {}) {
264
263
  }
265
264
  // If cache is fresh, we still background fetch but don't wait
266
265
  if (!cacheResult.isStale) {
267
- console.log("[useScoutRefresh] Cache is fresh, background fetching fresh data...");
268
266
  // Background fetch fresh data without blocking
269
267
  (async () => {
270
268
  try {
271
- console.log("[useScoutRefresh] Starting background fetch...");
272
269
  const backgroundStartTime = Date.now();
273
270
  const [backgroundHerdModulesResult, backgroundUserResult] = await Promise.all([
274
271
  (async () => {
275
272
  const start = Date.now();
276
273
  const result = await server_load_herd_modules();
277
- const duration = Date.now() - start;
278
- timingRefs.current.herdModulesDuration = duration;
279
- dispatch(setHerdModulesApiDuration(duration));
274
+ const totalDuration = Date.now() - start;
275
+ const serverDuration = result.server_processing_time_ms || totalDuration;
276
+ const clientOverhead = totalDuration - serverDuration;
277
+ console.log(`[useScoutRefresh] Background API timing breakdown:`);
278
+ console.log(` - Server processing: ${serverDuration}ms`);
279
+ console.log(` - Client overhead: ${clientOverhead}ms`);
280
+ console.log(` - Total request: ${totalDuration}ms`);
281
+ timingRefs.current.herdModulesDuration = serverDuration;
282
+ dispatch(setHerdModulesApiServerProcessingDuration(serverDuration));
283
+ dispatch(setHerdModulesApiTotalRequestDuration(totalDuration));
280
284
  return result;
281
285
  })(),
282
286
  (async () => {
@@ -289,7 +293,6 @@ export function useScoutRefresh(options = {}) {
289
293
  })(),
290
294
  ]);
291
295
  const backgroundDuration = Date.now() - backgroundStartTime;
292
- console.log(`[useScoutRefresh] Background fetch completed in ${backgroundDuration}ms`);
293
296
  // Validate background responses
294
297
  if (backgroundHerdModulesResult.data &&
295
298
  Array.isArray(backgroundHerdModulesResult.data) &&
@@ -298,7 +301,6 @@ export function useScoutRefresh(options = {}) {
298
301
  // Update cache with fresh data
299
302
  try {
300
303
  await scoutCache.setHerdModules(backgroundHerdModulesResult.data, cacheTtlMs);
301
- console.log(`[useScoutRefresh] Background cache updated with TTL: ${Math.round(cacheTtlMs / 1000)}s`);
302
304
  }
303
305
  catch (cacheError) {
304
306
  console.warn("[useScoutRefresh] Background cache save failed:", cacheError);
@@ -321,7 +323,6 @@ export function useScoutRefresh(options = {}) {
321
323
  source: EnumDataSource.DATABASE,
322
324
  timestamp: Date.now(),
323
325
  }));
324
- console.log("[useScoutRefresh] Background fetch completed and store updated");
325
326
  }
326
327
  else {
327
328
  console.warn("[useScoutRefresh] Background fetch returned invalid data");
@@ -334,13 +335,11 @@ export function useScoutRefresh(options = {}) {
334
335
  const totalDuration = Date.now() - startTime;
335
336
  dispatch(setHerdModulesLoadedInMs(totalDuration));
336
337
  dispatch(setStatus(EnumScoutStateStatus.DONE_LOADING));
337
- console.log(`[useScoutRefresh] Cache-first refresh completed in ${totalDuration}ms (background fetch in progress)`);
338
338
  onRefreshComplete?.();
339
339
  return;
340
340
  }
341
341
  }
342
342
  else {
343
- console.log("[useScoutRefresh] No cached data found");
344
343
  }
345
344
  }
346
345
  catch (cacheError) {
@@ -350,23 +349,19 @@ export function useScoutRefresh(options = {}) {
350
349
  }
351
350
  }
352
351
  // Step 2: Load fresh data from API
353
- console.log("[useScoutRefresh] Loading fresh data from API...");
354
352
  const parallelStartTime = Date.now();
355
353
  const [herdModulesResult, userResult] = await Promise.all([
356
354
  (async () => {
357
355
  const start = Date.now();
358
- console.log(`[useScoutRefresh] Starting herd modules request at ${new Date(start).toISOString()}`);
359
356
  const result = await server_load_herd_modules();
360
- const duration = Date.now() - start;
361
- console.log(`[useScoutRefresh] Herd modules request completed in ${duration}ms`);
362
- return { result, duration, start };
357
+ const totalDuration = Date.now() - start;
358
+ const serverDuration = result.server_processing_time_ms || totalDuration;
359
+ return { result, totalDuration, serverDuration, start };
363
360
  })(),
364
361
  (async () => {
365
362
  const start = Date.now();
366
- console.log(`[useScoutRefresh] Starting user request at ${new Date(start).toISOString()}`);
367
363
  const { data } = await supabase.auth.getUser();
368
364
  const duration = Date.now() - start;
369
- console.log(`[useScoutRefresh] User request completed in ${duration}ms`);
370
365
  return {
371
366
  result: { data: data.user, status: "success" },
372
367
  duration,
@@ -379,13 +374,20 @@ export function useScoutRefresh(options = {}) {
379
374
  // Extract results and timing
380
375
  const herdModulesResponse = herdModulesResult.result;
381
376
  const res_new_user = userResult.result;
382
- const herdModulesDuration = herdModulesResult.duration;
377
+ const herdModulesServerDuration = herdModulesResult.serverDuration;
378
+ const herdModulesTotalDuration = herdModulesResult.totalDuration;
383
379
  const userApiDuration = userResult.duration;
380
+ const clientOverhead = herdModulesTotalDuration - herdModulesServerDuration;
381
+ console.log(`[useScoutRefresh] Fresh API timing breakdown:`);
382
+ console.log(` - Server processing: ${herdModulesServerDuration}ms`);
383
+ console.log(` - Client overhead: ${clientOverhead}ms`);
384
+ console.log(` - Total request: ${herdModulesTotalDuration}ms`);
384
385
  // Store timing values
385
- timingRefs.current.herdModulesDuration = herdModulesDuration;
386
+ timingRefs.current.herdModulesDuration = herdModulesServerDuration;
386
387
  timingRefs.current.userApiDuration = userApiDuration;
387
388
  // Dispatch timing actions
388
- dispatch(setHerdModulesApiDuration(herdModulesDuration));
389
+ dispatch(setHerdModulesApiServerProcessingDuration(herdModulesServerDuration));
390
+ dispatch(setHerdModulesApiTotalRequestDuration(herdModulesTotalDuration));
389
391
  dispatch(setUserApiDuration(userApiDuration));
390
392
  // Validate API responses
391
393
  const validationStartTime = Date.now();
@@ -435,15 +437,8 @@ export function useScoutRefresh(options = {}) {
435
437
  const loadingDuration = Date.now() - startTime;
436
438
  dispatch(setHerdModulesLoadedInMs(loadingDuration));
437
439
  dispatch(setStatus(EnumScoutStateStatus.DONE_LOADING));
438
- // Log essential performance metrics
439
- console.log(`[useScoutRefresh] Refresh completed successfully:`);
440
- console.log(` - Total duration: ${loadingDuration}ms`);
441
- console.log(` - Cache load: ${cacheLoadDuration}ms`);
442
- console.log(` - Herd modules API: ${herdModulesDuration}ms`);
443
- console.log(` - User API: ${userApiDuration}ms`);
444
- console.log(` - Cache save: ${timingRefs.current.cacheSaveDuration}ms`);
445
- console.log(` - Data processing: ${dataProcessingDuration}ms`);
446
- console.log(` - Cache TTL: ${Math.round(cacheTtlMs / 1000)}s`);
440
+ // Log concise completion summary
441
+ console.log(`[useScoutRefresh] Refresh completed in ${loadingDuration}ms (Server: ${herdModulesServerDuration}ms, Total API: ${herdModulesTotalDuration}ms)`);
447
442
  onRefreshComplete?.();
448
443
  }
449
444
  catch (error) {
@@ -460,10 +455,7 @@ export function useScoutRefresh(options = {}) {
460
455
  dispatch(setHerdModulesLoadedInMs(loadingDuration));
461
456
  dispatch(setStatus(EnumScoutStateStatus.DONE_LOADING));
462
457
  // Log essential error metrics
463
- console.log(`[useScoutRefresh] Refresh failed:`);
464
- console.log(` - Total duration: ${loadingDuration}ms`);
465
- console.log(` - Herd modules: ${timingRefs.current.herdModulesDuration}ms`);
466
- console.log(` - User API: ${timingRefs.current.userApiDuration}ms`);
458
+ console.log(`[useScoutRefresh] Refresh failed after ${loadingDuration}ms`);
467
459
  // Call completion callback even on error for consistency
468
460
  onRefreshComplete?.();
469
461
  }
@@ -489,7 +481,6 @@ export function useScoutRefresh(options = {}) {
489
481
  const clearCache = useCallback(async () => {
490
482
  try {
491
483
  await scoutCache.clearHerdModules();
492
- console.log("[useScoutRefresh] Cache cleared successfully");
493
484
  }
494
485
  catch (error) {
495
486
  console.error("[useScoutRefresh] Failed to clear cache:", error);
@@ -11,7 +11,8 @@ export interface ScoutState {
11
11
  status: EnumScoutStateStatus;
12
12
  herd_modules_loading_state: EnumHerdModulesLoadingState;
13
13
  herd_modules_loaded_in_ms: number | null;
14
- herd_modules_api_duration_ms: number | null;
14
+ herd_modules_api_server_processing_ms: number | null;
15
+ herd_modules_api_total_request_ms: number | null;
15
16
  user_api_duration_ms: number | null;
16
17
  data_processing_duration_ms: number | null;
17
18
  cache_load_duration_ms: number | null;
@@ -43,7 +44,11 @@ export declare const scoutSlice: import("@reduxjs/toolkit").Slice<ScoutState, {
43
44
  payload: any;
44
45
  type: string;
45
46
  }) => void;
46
- setHerdModulesApiDuration: (state: import("immer").WritableDraft<ScoutState>, action: {
47
+ setHerdModulesApiServerProcessingDuration: (state: import("immer").WritableDraft<ScoutState>, action: {
48
+ payload: any;
49
+ type: string;
50
+ }) => void;
51
+ setHerdModulesApiTotalRequestDuration: (state: import("immer").WritableDraft<ScoutState>, action: {
47
52
  payload: any;
48
53
  type: string;
49
54
  }) => void;
@@ -160,6 +165,6 @@ export declare const scoutSlice: import("@reduxjs/toolkit").Slice<ScoutState, {
160
165
  type: string;
161
166
  }) => void;
162
167
  }, "scout", "scout", import("@reduxjs/toolkit").SliceSelectors<ScoutState>>;
163
- export declare const setHerdModules: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/setHerdModules">, setStatus: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/setStatus">, setHerdModulesLoadingState: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/setHerdModulesLoadingState">, setHerdModulesLoadedInMs: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/setHerdModulesLoadedInMs">, setHerdModulesApiDuration: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/setHerdModulesApiDuration">, setUserApiDuration: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/setUserApiDuration">, setDataProcessingDuration: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/setDataProcessingDuration">, setCacheLoadDuration: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/setCacheLoadDuration">, setActiveHerdId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/setActiveHerdId">, setActiveDeviceId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/setActiveDeviceId">, setDataSource: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/setDataSource">, setDataSourceInfo: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/setDataSourceInfo">, appendEventsToHerdModule: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/appendEventsToHerdModule">, replaceEventsForHerdModule: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/replaceEventsForHerdModule">, updateEventValuesForHerdModule: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/updateEventValuesForHerdModule">, updatePageIndexForHerdModule: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/updatePageIndexForHerdModule">, appendPlansToHerdModule: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/appendPlansToHerdModule">, setUser: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/setUser">, addTag: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/addTag">, deleteTag: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/deleteTag">, updateTag: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/updateTag">, addNewDeviceToHerdModule: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/addNewDeviceToHerdModule">, updateDeviceForHerdModule: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/updateDeviceForHerdModule">, addDevice: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/addDevice">, deleteDevice: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/deleteDevice">, updateDevice: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/updateDevice">, addPlan: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/addPlan">, deletePlan: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/deletePlan">, updatePlan: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/updatePlan">, addSessionToStore: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/addSessionToStore">, deleteSessionFromStore: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/deleteSessionFromStore">, updateSessionInStore: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/updateSessionInStore">, setActiveHerdGpsTrackersConnectivity: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/setActiveHerdGpsTrackersConnectivity">;
168
+ export declare const setHerdModules: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/setHerdModules">, setStatus: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/setStatus">, setHerdModulesLoadingState: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/setHerdModulesLoadingState">, setHerdModulesLoadedInMs: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/setHerdModulesLoadedInMs">, setHerdModulesApiServerProcessingDuration: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/setHerdModulesApiServerProcessingDuration">, setHerdModulesApiTotalRequestDuration: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/setHerdModulesApiTotalRequestDuration">, setUserApiDuration: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/setUserApiDuration">, setDataProcessingDuration: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/setDataProcessingDuration">, setCacheLoadDuration: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/setCacheLoadDuration">, setActiveHerdId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/setActiveHerdId">, setActiveDeviceId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/setActiveDeviceId">, setDataSource: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/setDataSource">, setDataSourceInfo: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/setDataSourceInfo">, appendEventsToHerdModule: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/appendEventsToHerdModule">, replaceEventsForHerdModule: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/replaceEventsForHerdModule">, updateEventValuesForHerdModule: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/updateEventValuesForHerdModule">, updatePageIndexForHerdModule: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/updatePageIndexForHerdModule">, appendPlansToHerdModule: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/appendPlansToHerdModule">, setUser: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/setUser">, addTag: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/addTag">, deleteTag: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/deleteTag">, updateTag: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/updateTag">, addNewDeviceToHerdModule: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/addNewDeviceToHerdModule">, updateDeviceForHerdModule: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/updateDeviceForHerdModule">, addDevice: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/addDevice">, deleteDevice: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/deleteDevice">, updateDevice: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/updateDevice">, addPlan: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/addPlan">, deletePlan: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/deletePlan">, updatePlan: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/updatePlan">, addSessionToStore: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/addSessionToStore">, deleteSessionFromStore: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/deleteSessionFromStore">, updateSessionInStore: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/updateSessionInStore">, setActiveHerdGpsTrackersConnectivity: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "scout/setActiveHerdGpsTrackersConnectivity">;
164
169
  declare const _default: import("redux").Reducer<ScoutState>;
165
170
  export default _default;
@@ -12,7 +12,8 @@ const initialState = {
12
12
  herd_modules_loading_state: EnumHerdModulesLoadingState.NOT_LOADING,
13
13
  herd_modules_loaded_in_ms: null,
14
14
  // Initialize timing variables
15
- herd_modules_api_duration_ms: null,
15
+ herd_modules_api_server_processing_ms: null,
16
+ herd_modules_api_total_request_ms: null,
16
17
  user_api_duration_ms: null,
17
18
  data_processing_duration_ms: null,
18
19
  cache_load_duration_ms: null,
@@ -42,8 +43,11 @@ export const scoutSlice = createSlice({
42
43
  setHerdModulesLoadedInMs: (state, action) => {
43
44
  state.herd_modules_loaded_in_ms = action.payload;
44
45
  },
45
- setHerdModulesApiDuration: (state, action) => {
46
- state.herd_modules_api_duration_ms = action.payload;
46
+ setHerdModulesApiServerProcessingDuration: (state, action) => {
47
+ state.herd_modules_api_server_processing_ms = action.payload;
48
+ },
49
+ setHerdModulesApiTotalRequestDuration: (state, action) => {
50
+ state.herd_modules_api_total_request_ms = action.payload;
47
51
  },
48
52
  setUserApiDuration: (state, action) => {
49
53
  state.user_api_duration_ms = action.payload;
@@ -269,5 +273,5 @@ export const scoutSlice = createSlice({
269
273
  },
270
274
  });
271
275
  // Action creators are generated for each case reducer function
272
- export const { setHerdModules, setStatus, setHerdModulesLoadingState, setHerdModulesLoadedInMs, setHerdModulesApiDuration, setUserApiDuration, setDataProcessingDuration, setCacheLoadDuration, setActiveHerdId, setActiveDeviceId, setDataSource, setDataSourceInfo, appendEventsToHerdModule, replaceEventsForHerdModule, updateEventValuesForHerdModule, updatePageIndexForHerdModule, appendPlansToHerdModule, setUser, addTag, deleteTag, updateTag, addNewDeviceToHerdModule, updateDeviceForHerdModule, addDevice, deleteDevice, updateDevice, addPlan, deletePlan, updatePlan, addSessionToStore, deleteSessionFromStore, updateSessionInStore, setActiveHerdGpsTrackersConnectivity, } = scoutSlice.actions;
276
+ export const { setHerdModules, setStatus, setHerdModulesLoadingState, setHerdModulesLoadedInMs, setHerdModulesApiServerProcessingDuration, setHerdModulesApiTotalRequestDuration, setUserApiDuration, setDataProcessingDuration, setCacheLoadDuration, setActiveHerdId, setActiveDeviceId, setDataSource, setDataSourceInfo, appendEventsToHerdModule, replaceEventsForHerdModule, updateEventValuesForHerdModule, updatePageIndexForHerdModule, appendPlansToHerdModule, setUser, addTag, deleteTag, updateTag, addNewDeviceToHerdModule, updateDeviceForHerdModule, addDevice, deleteDevice, updateDevice, addPlan, deletePlan, updatePlan, addSessionToStore, deleteSessionFromStore, updateSessionInStore, setActiveHerdGpsTrackersConnectivity, } = scoutSlice.actions;
273
277
  export default scoutSlice.reducer;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adventurelabs/scout-core",
3
- "version": "1.0.114",
3
+ "version": "1.0.116",
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",