gps-plus-slam-app-framework 1.13.0 → 1.14.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 (31) hide show
  1. package/dist/{app-selectors-QM0ZpNA4.d.ts → app-selectors-DBUgwomp.d.ts} +1 -1
  2. package/dist/{ar-world-group-alignment-CvvfACfx.d.ts → ar-world-group-alignment-Dn_UiRy1.d.ts} +1 -1
  3. package/dist/{create-slam-app-store-wYN7YkB5.js → create-slam-app-store-B62K8_Qr.js} +6 -2
  4. package/dist/{create-slam-app-store-HNe1PBtx.d.ts → create-slam-app-store-sxb1-esK.d.ts} +8 -0
  5. package/dist/{gps-event-coordinator-BKwB4RyQ.d.ts → gps-event-coordinator-BAy56wYd.d.ts} +1 -1
  6. package/dist/{index-qtZ2muFd.d.ts → index-qYJ5-SBC.d.ts} +1 -1
  7. package/dist/index.d.ts +8 -8
  8. package/dist/index.js +2 -2
  9. package/dist/{recording-replayer-BKmVuchg.d.ts → recording-replayer-CpFiYczh.d.ts} +1 -1
  10. package/dist/{replay-engine-D-cbT0Fw.d.ts → replay-engine-DI7uknkv.d.ts} +1 -1
  11. package/dist/state/app-selectors.d.ts +1 -1
  12. package/dist/state/combined-root-state.d.ts +1 -1
  13. package/dist/state/create-slam-app-store.d.ts +1 -1
  14. package/dist/state/create-slam-app-store.js +1 -1
  15. package/dist/state/gps-event-coordinator.d.ts +1 -1
  16. package/dist/state/index.d.ts +8 -8
  17. package/dist/state/index.js +2 -2
  18. package/dist/state/recording-replayer.d.ts +2 -2
  19. package/dist/state/recording-replayer.js +1 -1
  20. package/dist/state/replay-engine.d.ts +1 -1
  21. package/dist/state/replay-session.d.ts +2 -2
  22. package/dist/state/replay-session.js +1 -1
  23. package/dist/state/store-subscribers.d.ts +2 -2
  24. package/dist/state/subscribe-to-selector.d.ts +1 -1
  25. package/dist/state/tracking-quality.d.ts +1 -1
  26. package/dist/{state-DxL3T1Id.js → state-BECcnNRW.js} +1 -1
  27. package/dist/{store-subscribers-BbRW35u5.d.ts → store-subscribers-BenHBQhD.d.ts} +1 -1
  28. package/dist/{subscribe-to-selector-B_lm_euO.d.ts → subscribe-to-selector-hitZwSj8.d.ts} +1 -1
  29. package/dist/visualization/ar-world-group-alignment.d.ts +1 -1
  30. package/dist/visualization/index.d.ts +1 -1
  31. package/package.json +2 -2
@@ -1,4 +1,4 @@
1
- import { N as CombinedRootState } from "./create-slam-app-store-HNe1PBtx.js";
1
+ import { N as CombinedRootState } from "./create-slam-app-store-sxb1-esK.js";
2
2
  import * as _$gps_plus_slam_js0 from "gps-plus-slam-js";
3
3
  import { ArImageCapture, GpsPoint, LatLong, Matrix4, Quaternion, Vector3 } from "gps-plus-slam-js";
4
4
  import * as _$_reduxjs_toolkit0 from "@reduxjs/toolkit";
@@ -1,4 +1,4 @@
1
- import { t as SubscribableStore } from "./subscribe-to-selector-B_lm_euO.js";
1
+ import { t as SubscribableStore } from "./subscribe-to-selector-hitZwSj8.js";
2
2
  import * as THREE from "three";
3
3
 
4
4
  //#region ../src/visualization/ar-world-group-alignment.d.ts
@@ -2,7 +2,7 @@ import { trackingReducer } from "./state/tracking-slice.js";
2
2
  import { recordWriteFailure, recordingReducer } from "./state/recording-slice.js";
3
3
  import { createTrackingQualityListenerMiddleware, trackingQualityReducer } from "./state/tracking-quality.js";
4
4
  import { createPersistenceMiddleware, slicePrefixOf } from "./state/persistence-middleware.js";
5
- import { arElementsReducer, gpsDataReducer, gpsElementsReducer, sanitizeForDevTools, setColdStartOverrideEnabled, setCompassExperimentEnabled, setCompassRotationPriorEnabled, setCompassWebXRConsistencyEnabled, setRobustSolverComparisonEnabled, setZeroPos, validateLicenseKey } from "gps-plus-slam-js";
5
+ import { arElementsReducer, gpsDataReducer, gpsElementsReducer, sanitizeForDevTools, setColdStartOverrideEnabled, setCompassExperimentEnabled, setCompassRotationPriorEnabled, setCompassVoteWeight, setCompassWebXRConsistencyEnabled, setRobustSolverComparisonEnabled, setZeroPos, validateLicenseKey } from "gps-plus-slam-js";
6
6
  import { configureStore, createListenerMiddleware } from "@reduxjs/toolkit";
7
7
  import { COMMUNITY_LICENSE_KEY } from "gps-plus-slam-js/community-license-key";
8
8
  //#region ../src/state/slam-app-store-listener.ts
@@ -96,7 +96,7 @@ const BUILTIN_PERSISTED_PREFIXES = [slicePrefixOf(setZeroPos.type), slicePrefixO
96
96
  * design rationale.
97
97
  */
98
98
  function createSlamAppStore(options) {
99
- const { storageBackend, extraReducers, extraMiddleware, persistedExtraPrefixes, onWriteFailure, enableDevChecks = true, licenseKey = COMMUNITY_LICENSE_KEY, trackingQualityOptions, enableCompassColdStartOverride = true, enableCompassRotationPrior = false, enableCompassWebXRConsistency = false, enableCompassExperiment = false, enableRobustSolverComparison = false } = options;
99
+ const { storageBackend, extraReducers, extraMiddleware, persistedExtraPrefixes, onWriteFailure, enableDevChecks = true, licenseKey = COMMUNITY_LICENSE_KEY, trackingQualityOptions, enableCompassColdStartOverride = true, enableCompassRotationPrior = false, enableCompassWebXRConsistency = false, enableCompassExperiment = false, enableRobustSolverComparison = false, compassVoteWeight } = options;
100
100
  validateLicenseKey(licenseKey);
101
101
  const builtins = {
102
102
  gpsData: gpsDataReducer,
@@ -136,6 +136,10 @@ function createSlamAppStore(options) {
136
136
  isSet: (s) => s.gpsData?.robustSolverComparisonEnabled === true,
137
137
  apply: (dispatch) => dispatch(setRobustSolverComparisonEnabled(true))
138
138
  });
139
+ if (compassVoteWeight !== void 0) compassOptIns.push({
140
+ isSet: (s) => s.gpsData?.compassVoteWeight === compassVoteWeight,
141
+ apply: (dispatch) => dispatch(setCompassVoteWeight(compassVoteWeight))
142
+ });
139
143
  const prependedListeners = [trackingQualityMiddleware];
140
144
  if (compassOptIns.length > 0) prependedListeners.push(createSlamAppStoreListenerMiddleware(compassOptIns));
141
145
  const persistenceMiddleware = createPersistenceMiddleware({
@@ -371,6 +371,14 @@ interface SlamAppStoreOptions<ExtraReducers extends ReducersMapObject = Record<s
371
371
  * persists into recordings.
372
372
  */
373
373
  enableRobustSolverComparison?: boolean;
374
+ /**
375
+ * **Field-test knob** — steady-state compass vote weight ∈ [0,1] for the
376
+ * rotation prior / compass experiment (the recorder's vote-weight slider,
377
+ * 2026-07-19 weight-curve follow-up). Dispatches `setCompassVoteWeight(w)`
378
+ * once `gpsData` exists. Absent ⇒ the library default; only consulted while
379
+ * a rotation prior is active. The action persists into recordings.
380
+ */
381
+ compassVoteWeight?: number;
374
382
  }
375
383
  /**
376
384
  * Combined root state: the framework's base state plus any caller-supplied
@@ -1,7 +1,7 @@
1
1
  import { t as ARPose } from "./ar-types-BprL3nKv.js";
2
2
  import { n as RawDeviceOrientation, t as GpsPosition } from "./gps-CC0l9lCp.js";
3
3
  import { t as AbsoluteOrientationReading } from "./absolute-orientation-0WIsqJnu.js";
4
- import { i as SlamAppStore } from "./create-slam-app-store-HNe1PBtx.js";
4
+ import { i as SlamAppStore } from "./create-slam-app-store-sxb1-esK.js";
5
5
  import { RawAbsoluteOrientation, RawGpsPoint, RecordGpsEventPayload, eulerToQuaternion } from "gps-plus-slam-js";
6
6
  import { ReducersMapObject } from "@reduxjs/toolkit";
7
7
 
@@ -1,4 +1,4 @@
1
- import { N as CombinedRootState, m as TrackingQualityReport } from "./create-slam-app-store-HNe1PBtx.js";
1
+ import { N as CombinedRootState, m as TrackingQualityReport } from "./create-slam-app-store-sxb1-esK.js";
2
2
  import { Add2dImagePayload, GpsPoint as GpsPoint$1, LatLong as LatLong$1, RawDeviceOrientation, RawGpsPoint as RawGpsPoint$1, RecordGpsEventPayload as RecordGpsEventPayload$1, add2dImage, calcRelativeCoordsInMeters, recordGpsEvent as recordGpsEvent$1, setZeroPos as setZeroPos$1 } from "gps-plus-slam-js";
3
3
 
4
4
  //#region ../src/state/onboarding-guidance.d.ts
package/dist/index.d.ts CHANGED
@@ -53,20 +53,20 @@ import { t as listFormatter } from "./list-formatter-C45u3Vgv.js";
53
53
  import { a as recordWriteFailure, i as recordDepthSample, o as recordingReducer, r as endSession, s as startSession, t as RecordingState } from "./recording-slice-zMedT0ot.js";
54
54
  import { a as getAppRootHandle, c as initOpfsStorage, d as resetSessionHandles, i as createSession, l as listSessions, o as getSessionHandle, r as checkStorageQuota, s as getSessionsRootHandle, u as resetOpfsStorage } from "./opfs-storage-CrhVauNL.js";
55
55
  import { n as StorageBackend, t as CreateSessionResult } from "./storage-backend-DCYbOvTw.js";
56
- import { A as snapshotPushed, C as createTrackingQualityListenerMiddleware, D as resetTrackingQuality, E as reportUpdated, M as trackingQualityReducer, O as selectRecentAlignments, S as computeTrackingQualityReport, T as matrixDelta, _ as computeConvergence, a as SlamAppStoreOptions, b as computeGpsVsFusedDivergence, g as TrackingQualityState, h as TrackingQualitySliceState, i as SlamAppStore, j as snapshotsTrimmed, k as selectTrackingQuality, m as TrackingQualityReport, n as SlamAppMiddleware, o as createSlamAppStore, p as TrackingQualityOptions, r as SlamAppRootState, s as AlignmentSnapshot, t as SlamAppCombinedState, u as DEFAULT_TRACKING_QUALITY_OPTIONS, v as computeCoverage, x as computeResidualConsensus, y as computeGpsAccuracy } from "./create-slam-app-store-HNe1PBtx.js";
57
- import { a as eulerToQuaternion, c as getLastDeviceOrientation, i as createGpsPositionHandler, l as updateDeviceOrientation, n as buildRawGpsPoint, o as resetCoordinatorState, r as buildRecordGpsEventPayload, t as RecordingCoordinatorConfig } from "./gps-event-coordinator-BKwB4RyQ.js";
56
+ import { A as snapshotPushed, C as createTrackingQualityListenerMiddleware, D as resetTrackingQuality, E as reportUpdated, M as trackingQualityReducer, O as selectRecentAlignments, S as computeTrackingQualityReport, T as matrixDelta, _ as computeConvergence, a as SlamAppStoreOptions, b as computeGpsVsFusedDivergence, g as TrackingQualityState, h as TrackingQualitySliceState, i as SlamAppStore, j as snapshotsTrimmed, k as selectTrackingQuality, m as TrackingQualityReport, n as SlamAppMiddleware, o as createSlamAppStore, p as TrackingQualityOptions, r as SlamAppRootState, s as AlignmentSnapshot, t as SlamAppCombinedState, u as DEFAULT_TRACKING_QUALITY_OPTIONS, v as computeCoverage, x as computeResidualConsensus, y as computeGpsAccuracy } from "./create-slam-app-store-sxb1-esK.js";
57
+ import { a as eulerToQuaternion, c as getLastDeviceOrientation, i as createGpsPositionHandler, l as updateDeviceOrientation, n as buildRawGpsPoint, o as resetCoordinatorState, r as buildRecordGpsEventPayload, t as RecordingCoordinatorConfig } from "./gps-event-coordinator-BAy56wYd.js";
58
58
  import { a as ZipActionEntry, c as loadActionsFromZip, f as loadSessionMetadataFromBlob, i as RecordedAction, n as GpsPathCoord, p as readZipEntries, r as MAX_ACTION_FILE_SIZE, u as loadGpsPathFromBlob } from "./zip-reader-DwkuvlGo.js";
59
- import { n as replayRecording } from "./recording-replayer-BKmVuchg.js";
60
- import { a as ReplayAction, c as computeInterActionDelay, i as ProgressCallback, l as extractActionTimestamp, n as DEFAULT_MAX_DELAY_MS, o as ReplayEngine, r as ErrorCallback, s as ReplayState, t as CompleteCallback } from "./replay-engine-D-cbT0Fw.js";
59
+ import { n as replayRecording } from "./recording-replayer-CpFiYczh.js";
60
+ import { a as ReplayAction, c as computeInterActionDelay, i as ProgressCallback, l as extractActionTimestamp, n as DEFAULT_MAX_DELAY_MS, o as ReplayEngine, r as ErrorCallback, s as ReplayState, t as CompleteCallback } from "./replay-engine-DI7uknkv.js";
61
61
  import { n as MapDataInput, r as buildMapData, t as MapData } from "./map-data-BQXPtRz7.js";
62
- import { t as SubscribableStore } from "./subscribe-to-selector-B_lm_euO.js";
63
- import { n as wireStoreSubscribers, t as StoreSubscriberDeps } from "./store-subscribers-BbRW35u5.js";
64
- import { c as calcRelativeCoordsInMeters, d as OnboardingGuidance, f as OnboardingPhase, l as recordGpsEvent, m as selectOnboardingGuidance, p as computeOnboardingGuidance, s as add2dImage, u as setZeroPos } from "./index-qtZ2muFd.js";
62
+ import { t as SubscribableStore } from "./subscribe-to-selector-hitZwSj8.js";
63
+ import { n as wireStoreSubscribers, t as StoreSubscriberDeps } from "./store-subscribers-BenHBQhD.js";
64
+ import { c as calcRelativeCoordsInMeters, d as OnboardingGuidance, f as OnboardingPhase, l as recordGpsEvent, m as selectOnboardingGuidance, p as computeOnboardingGuidance, s as add2dImage, u as setZeroPos } from "./index-qYJ5-SBC.js";
65
65
  import { t as NullStorageBackend } from "./null-storage-backend-Dtn3TBfT.js";
66
66
  import { t as OpfsStorageBackend } from "./opfs-storage-backend-CZ-ECudx.js";
67
67
  import { a as formatTimestamp, i as formatFrameFilename, r as formatActionFilename } from "./file-system-utils-DE3BViuq.js";
68
68
  import { a as downloadZip, c as syncToExternalZip, i as ZipExportResult, n as ZipContributorAddFile, o as exportSessionAsZip, r as ZipExportContributor, s as exportSessionHandleAsZip, t as ExportSessionAsZipOptions } from "./zip-export-Cfl_kNQ7.js";
69
- import { n as ArWorldGroupAlignmentOptions, r as enableArWorldGroupAlignment, t as ArWorldGroupAlignmentHandle } from "./ar-world-group-alignment-CvvfACfx.js";
69
+ import { n as ArWorldGroupAlignmentOptions, r as enableArWorldGroupAlignment, t as ArWorldGroupAlignmentHandle } from "./ar-world-group-alignment-Dn_UiRy1.js";
70
70
  import { i as createGpsCompassCubes, n as COMPASS_CUBE_SIZE, r as GpsCompassCubes, t as COMPASS_CUBE_DISTANCE } from "./gps-compass-cubes-QQJgpRXR.js";
71
71
  import { i as isSphereInCameraFrustum, n as isObjectInCameraFrustum, r as isPointInCameraFrustum, t as buildCameraFrustum } from "./frustum-visibility-BTx1Sqfo.js";
72
72
  import { n as worldNueToGps, t as nueToArLocal } from "./frame-conversions-CzPQDYpM.js";
package/dist/index.js CHANGED
@@ -66,12 +66,12 @@ import { MAX_ACTION_FILE_SIZE, loadActionsFromZip, loadGpsPathFromBlob, loadSess
66
66
  import { formatActionFilename, formatFrameFilename, formatTimestamp } from "./storage/file-system-utils.js";
67
67
  import { NullStorageBackend } from "./storage/null-storage-backend.js";
68
68
  import { DEFAULT_TRACKING_QUALITY_OPTIONS, computeConvergence, computeCoverage, computeGpsAccuracy, computeGpsVsFusedDivergence, computeResidualConsensus, computeTrackingQualityReport, createTrackingQualityListenerMiddleware, matrixDelta, reportUpdated, resetTrackingQuality, selectRecentAlignments, selectTrackingQuality, snapshotPushed, snapshotsTrimmed, trackingQualityReducer } from "./state/tracking-quality.js";
69
- import { t as createSlamAppStore } from "./create-slam-app-store-wYN7YkB5.js";
69
+ import { t as createSlamAppStore } from "./create-slam-app-store-B62K8_Qr.js";
70
70
  import { replayRecording } from "./state/recording-replayer.js";
71
71
  import { DEFAULT_MAX_DELAY_MS, ReplayEngine, computeInterActionDelay, extractActionTimestamp } from "./state/replay-engine.js";
72
72
  import { t as buildMapData } from "./map-data-vL8jb5Z9.js";
73
73
  import { wireStoreSubscribers } from "./state/store-subscribers.js";
74
- import { a as computeOnboardingGuidance, i as setZeroPos, n as calcRelativeCoordsInMeters, o as selectOnboardingGuidance, r as recordGpsEvent, t as add2dImage } from "./state-DxL3T1Id.js";
74
+ import { a as computeOnboardingGuidance, i as setZeroPos, n as calcRelativeCoordsInMeters, o as selectOnboardingGuidance, r as recordGpsEvent, t as add2dImage } from "./state-BECcnNRW.js";
75
75
  import { checkStorageQuota, createSession, getAppRootHandle, getSessionHandle, getSessionsRootHandle, initOpfsStorage, listSessions, resetOpfsStorage, resetSessionHandles } from "./storage/opfs-storage.js";
76
76
  import { OpfsStorageBackend } from "./storage/opfs-storage-backend.js";
77
77
  import { downloadZip, exportSessionAsZip, exportSessionHandleAsZip, syncToExternalZip } from "./storage/zip-export.js";
@@ -1,4 +1,4 @@
1
- import { N as CombinedRootState } from "./create-slam-app-store-HNe1PBtx.js";
1
+ import { N as CombinedRootState } from "./create-slam-app-store-sxb1-esK.js";
2
2
  import { i as RecordedAction } from "./zip-reader-DwkuvlGo.js";
3
3
 
4
4
  //#region ../src/state/recording-replayer.d.ts
@@ -1,4 +1,4 @@
1
- import { i as SlamAppStore } from "./create-slam-app-store-HNe1PBtx.js";
1
+ import { i as SlamAppStore } from "./create-slam-app-store-sxb1-esK.js";
2
2
  import { ReducersMapObject } from "@reduxjs/toolkit";
3
3
 
4
4
  //#region ../src/state/replay-engine.d.ts
@@ -1,2 +1,2 @@
1
- import { a as selectOdometryRotations, i as selectOdometryPositions, n as selectFrameTilesInWebXR, o as selectZeroReference, r as selectGpsPositions, t as selectAlignmentMatrix } from "../app-selectors-QM0ZpNA4.js";
1
+ import { a as selectOdometryRotations, i as selectOdometryPositions, n as selectFrameTilesInWebXR, o as selectZeroReference, r as selectGpsPositions, t as selectAlignmentMatrix } from "../app-selectors-DBUgwomp.js";
2
2
  export { selectAlignmentMatrix, selectFrameTilesInWebXR, selectGpsPositions, selectOdometryPositions, selectOdometryRotations, selectZeroReference };
@@ -1,2 +1,2 @@
1
- import { N as CombinedRootState } from "../create-slam-app-store-HNe1PBtx.js";
1
+ import { N as CombinedRootState } from "../create-slam-app-store-sxb1-esK.js";
2
2
  export { CombinedRootState };
@@ -1,2 +1,2 @@
1
- import { a as SlamAppStoreOptions, i as SlamAppStore, n as SlamAppMiddleware, o as createSlamAppStore, r as SlamAppRootState, t as SlamAppCombinedState } from "../create-slam-app-store-HNe1PBtx.js";
1
+ import { a as SlamAppStoreOptions, i as SlamAppStore, n as SlamAppMiddleware, o as createSlamAppStore, r as SlamAppRootState, t as SlamAppCombinedState } from "../create-slam-app-store-sxb1-esK.js";
2
2
  export { SlamAppCombinedState, SlamAppMiddleware, SlamAppRootState, SlamAppStore, SlamAppStoreOptions, createSlamAppStore };
@@ -1,2 +1,2 @@
1
- import { t as createSlamAppStore } from "../create-slam-app-store-wYN7YkB5.js";
1
+ import { t as createSlamAppStore } from "../create-slam-app-store-B62K8_Qr.js";
2
2
  export { createSlamAppStore };
@@ -1,3 +1,3 @@
1
1
  import { c as extractOdomPosition, l as extractOdomRotation } from "../ar-types-BprL3nKv.js";
2
- import { a as eulerToQuaternion, c as getLastDeviceOrientation, i as createGpsPositionHandler, l as updateDeviceOrientation, n as buildRawGpsPoint, o as resetCoordinatorState, r as buildRecordGpsEventPayload, s as toRawAbsoluteOrientation, t as RecordingCoordinatorConfig } from "../gps-event-coordinator-BKwB4RyQ.js";
2
+ import { a as eulerToQuaternion, c as getLastDeviceOrientation, i as createGpsPositionHandler, l as updateDeviceOrientation, n as buildRawGpsPoint, o as resetCoordinatorState, r as buildRecordGpsEventPayload, s as toRawAbsoluteOrientation, t as RecordingCoordinatorConfig } from "../gps-event-coordinator-BAy56wYd.js";
3
3
  export { RecordingCoordinatorConfig, buildRawGpsPoint, buildRecordGpsEventPayload, createGpsPositionHandler, eulerToQuaternion, extractOdomPosition, extractOdomRotation, getLastDeviceOrientation, resetCoordinatorState, toRawAbsoluteOrientation, updateDeviceOrientation };
@@ -6,14 +6,14 @@ import { a as recordWriteFailure, i as recordDepthSample, n as SessionMetadata$1
6
6
  import { C as setQrMaxHistory, S as selectStableQrPose, _ as selectQrPoseStability, a as RootWithQrDetected, b as selectResolvedQrSizeM, c as medianQrPosition, d as recordQrDetection, f as recordQrSizeEstimate, g as selectQrMarkers, h as selectQrMarker, i as QrMarkerState, l as pruneQrDetections, m as selectLatestQrDetection, n as QrDetectedState, o as clearAllQrMarkers, p as selectDerivedQrPlacement, r as QrDetectionEntry, s as clearQrMarker, t as DEFAULT_QR_MAX_HISTORY, u as qrDetectedReducer, v as selectQrRawObservations, x as selectSolvedQrPose, y as selectQrSize } from "../qr-detected-slice-8t_laDR9.js";
7
7
  import { n as SessionMetadata } from "../opfs-storage-CrhVauNL.js";
8
8
  import { n as StorageBackend } from "../storage-backend-DCYbOvTw.js";
9
- import { A as snapshotPushed, C as createTrackingQualityListenerMiddleware, D as resetTrackingQuality, E as reportUpdated, M as trackingQualityReducer, O as selectRecentAlignments, S as computeTrackingQualityReport, T as matrixDelta, _ as computeConvergence, a as SlamAppStoreOptions, b as computeGpsVsFusedDivergence, g as TrackingQualityState, h as TrackingQualitySliceState, i as SlamAppStore, j as snapshotsTrimmed, k as selectTrackingQuality, m as TrackingQualityReport, n as SlamAppMiddleware, o as createSlamAppStore, p as TrackingQualityOptions, r as SlamAppRootState, s as AlignmentSnapshot, t as SlamAppCombinedState, u as DEFAULT_TRACKING_QUALITY_OPTIONS, v as computeCoverage, w as degradedCountUpdated, x as computeResidualConsensus, y as computeGpsAccuracy } from "../create-slam-app-store-HNe1PBtx.js";
10
- import { a as eulerToQuaternion, c as getLastDeviceOrientation, i as createGpsPositionHandler, l as updateDeviceOrientation, n as buildRawGpsPoint, o as resetCoordinatorState, r as buildRecordGpsEventPayload, t as RecordingCoordinatorConfig } from "../gps-event-coordinator-BKwB4RyQ.js";
9
+ import { A as snapshotPushed, C as createTrackingQualityListenerMiddleware, D as resetTrackingQuality, E as reportUpdated, M as trackingQualityReducer, O as selectRecentAlignments, S as computeTrackingQualityReport, T as matrixDelta, _ as computeConvergence, a as SlamAppStoreOptions, b as computeGpsVsFusedDivergence, g as TrackingQualityState, h as TrackingQualitySliceState, i as SlamAppStore, j as snapshotsTrimmed, k as selectTrackingQuality, m as TrackingQualityReport, n as SlamAppMiddleware, o as createSlamAppStore, p as TrackingQualityOptions, r as SlamAppRootState, s as AlignmentSnapshot, t as SlamAppCombinedState, u as DEFAULT_TRACKING_QUALITY_OPTIONS, v as computeCoverage, w as degradedCountUpdated, x as computeResidualConsensus, y as computeGpsAccuracy } from "../create-slam-app-store-sxb1-esK.js";
10
+ import { a as eulerToQuaternion, c as getLastDeviceOrientation, i as createGpsPositionHandler, l as updateDeviceOrientation, n as buildRawGpsPoint, o as resetCoordinatorState, r as buildRecordGpsEventPayload, t as RecordingCoordinatorConfig } from "../gps-event-coordinator-BAy56wYd.js";
11
11
  import { i as captureGpsAnchorSample, n as GpsAnchorSample, r as GpsAnchorSampleGpsPoint, t as CaptureGpsAnchorSampleOptions } from "../gps-ar-pose-sampler-DBEYDFY5.js";
12
- import { n as replayRecording, t as ReplayRecordingOptions } from "../recording-replayer-BKmVuchg.js";
12
+ import { n as replayRecording, t as ReplayRecordingOptions } from "../recording-replayer-CpFiYczh.js";
13
13
  import { i as slicePrefixOf, n as PersistenceMiddlewareOptions, r as createPersistenceMiddleware } from "../persistence-middleware-Byo_Fs4n.js";
14
- import { a as ReplayAction, c as computeInterActionDelay, i as ProgressCallback, l as extractActionTimestamp, n as DEFAULT_MAX_DELAY_MS, o as ReplayEngine, r as ErrorCallback, s as ReplayState, t as CompleteCallback } from "../replay-engine-D-cbT0Fw.js";
15
- import { n as subscribeToSelector, t as SubscribableStore } from "../subscribe-to-selector-B_lm_euO.js";
16
- import { n as wireStoreSubscribers, t as StoreSubscriberDeps } from "../store-subscribers-BbRW35u5.js";
17
- import { a as selectOdometryRotations, i as selectOdometryPositions, n as selectFrameTilesInWebXR, o as selectZeroReference, r as selectGpsPositions, t as selectAlignmentMatrix } from "../app-selectors-QM0ZpNA4.js";
18
- import { a as RawGpsPoint, c as calcRelativeCoordsInMeters, d as OnboardingGuidance, f as OnboardingPhase, i as RawDeviceOrientation, l as recordGpsEvent, m as selectOnboardingGuidance, n as GpsPoint, o as RecordGpsEventPayload, p as computeOnboardingGuidance, r as LatLong, s as add2dImage, t as Add2dImagePayload, u as setZeroPos } from "../index-qtZ2muFd.js";
14
+ import { a as ReplayAction, c as computeInterActionDelay, i as ProgressCallback, l as extractActionTimestamp, n as DEFAULT_MAX_DELAY_MS, o as ReplayEngine, r as ErrorCallback, s as ReplayState, t as CompleteCallback } from "../replay-engine-DI7uknkv.js";
15
+ import { n as subscribeToSelector, t as SubscribableStore } from "../subscribe-to-selector-hitZwSj8.js";
16
+ import { n as wireStoreSubscribers, t as StoreSubscriberDeps } from "../store-subscribers-BenHBQhD.js";
17
+ import { a as selectOdometryRotations, i as selectOdometryPositions, n as selectFrameTilesInWebXR, o as selectZeroReference, r as selectGpsPositions, t as selectAlignmentMatrix } from "../app-selectors-DBUgwomp.js";
18
+ import { a as RawGpsPoint, c as calcRelativeCoordsInMeters, d as OnboardingGuidance, f as OnboardingPhase, i as RawDeviceOrientation, l as recordGpsEvent, m as selectOnboardingGuidance, n as GpsPoint, o as RecordGpsEventPayload, p as computeOnboardingGuidance, r as LatLong, s as add2dImage, t as Add2dImagePayload, u as setZeroPos } from "../index-qYJ5-SBC.js";
19
19
  export { Add2dImagePayload, AlignmentSnapshot, CaptureGpsAnchorSampleOptions, CompleteCallback, DEFAULT_MAX_DELAY_MS, DEFAULT_QR_MAX_HISTORY, DEFAULT_TRACKING_QUALITY_OPTIONS, DepthPoint, DepthSample, DeviceOrientation, ErrorCallback, GpsAnchorSample, GpsAnchorSampleGpsPoint, GpsPoint, LatLong, OnboardingGuidance, OnboardingPhase, SessionMetadata as OpfsSessionMetadata, PersistenceMiddlewareOptions, PoseReceivedPayload, ProgressCallback, QrDetectedState, QrDetectionEntry, QrMarkerState, QrPoseStability, QrPoseStabilityOptions, QrPoseStabilityStatus, QrSizeEstimate, QrSizeStatus, RawDeviceOrientation, RawGpsPoint, RecordGpsEventPayload, RecordingCoordinatorConfig, RecordingState, ReplayAction, ReplayEngine, ReplayRecordingOptions, ReplayState, ResetTransformData, RootWithQrDetected, SessionMetadata$1 as SessionMetadata, SlamAppCombinedState, SlamAppMiddleware, SlamAppRootState, SlamAppStore, SlamAppStoreOptions, StorageBackend, StoreSubscriberDeps, SubscribableStore, TrackingPhase, TrackingQualityOptions, TrackingQualityReport, TrackingQualitySliceState, TrackingQualityState, TrackingSliceState, add2dImage, buildRawGpsPoint, buildRecordGpsEventPayload, calcRelativeCoordsInMeters, captureGpsAnchorSample, clearAllQrMarkers, clearLastRestartedPayload, clearQrMarker, computeConvergence, computeCoverage, computeGpsAccuracy, computeGpsVsFusedDivergence, computeInterActionDelay, computeOnboardingGuidance, computeResidualConsensus, computeTrackingQualityReport, createGpsPositionHandler, createPersistenceMiddleware, createSlamAppStore, createTrackingQualityListenerMiddleware, degradedCountUpdated, endSession, eulerToQuaternion, extractActionTimestamp, extractOdomPosition, extractOdomRotation, getLastDeviceOrientation, matrixDelta, medianQrPosition, originReset, poseLost, poseReceived, pruneQrDetections, qrDetectedReducer, recordDepthSample, recordGpsEvent, recordQrDetection, recordQrSizeEstimate, recordWriteFailure, recordingReducer, replayRecording, reportUpdated, resetCoordinatorState, resetTracking, resetTrackingQuality, selectAlignmentMatrix, selectDerivedQrPlacement, selectFrameTilesInWebXR, selectGpsPositions, selectLastRestartedPayload, selectLastSensorOrientation, selectLastValidPose, selectLatestQrDetection, selectLostFrameCount, selectOdometryPositions, selectOdometryRotations, selectOnboardingGuidance, selectQrMarker, selectQrMarkers, selectQrPoseStability, selectQrRawObservations, selectQrSize, selectRecentAlignments, selectResolvedQrSizeM, selectSolvedQrPose, selectStableQrPose, selectTrackingPhase, selectTrackingQuality, selectZeroReference, setQrMaxHistory, setZeroPos, slicePrefixOf, snapshotPushed, snapshotsTrimmed, startSession, subscribeToSelector, trackingQualityReducer, trackingReducer, updateDeviceOrientation, wireStoreSubscribers };
@@ -8,10 +8,10 @@ import { captureGpsAnchorSample } from "./gps-ar-pose-sampler.js";
8
8
  import { selectAlignmentMatrix, selectFrameTilesInWebXR, selectGpsPositions, selectOdometryPositions, selectOdometryRotations, selectZeroReference } from "./app-selectors.js";
9
9
  import { DEFAULT_TRACKING_QUALITY_OPTIONS, computeConvergence, computeCoverage, computeGpsAccuracy, computeGpsVsFusedDivergence, computeResidualConsensus, computeTrackingQualityReport, createTrackingQualityListenerMiddleware, degradedCountUpdated, matrixDelta, reportUpdated, resetTrackingQuality, selectRecentAlignments, selectTrackingQuality, snapshotPushed, snapshotsTrimmed, trackingQualityReducer } from "./tracking-quality.js";
10
10
  import { createPersistenceMiddleware, slicePrefixOf } from "./persistence-middleware.js";
11
- import { t as createSlamAppStore } from "../create-slam-app-store-wYN7YkB5.js";
11
+ import { t as createSlamAppStore } from "../create-slam-app-store-B62K8_Qr.js";
12
12
  import { replayRecording } from "./recording-replayer.js";
13
13
  import { DEFAULT_MAX_DELAY_MS, ReplayEngine, computeInterActionDelay, extractActionTimestamp } from "./replay-engine.js";
14
14
  import { subscribeToSelector } from "./subscribe-to-selector.js";
15
15
  import { wireStoreSubscribers } from "./store-subscribers.js";
16
- import { a as computeOnboardingGuidance, i as setZeroPos, n as calcRelativeCoordsInMeters, o as selectOnboardingGuidance, r as recordGpsEvent, t as add2dImage } from "../state-DxL3T1Id.js";
16
+ import { a as computeOnboardingGuidance, i as setZeroPos, n as calcRelativeCoordsInMeters, o as selectOnboardingGuidance, r as recordGpsEvent, t as add2dImage } from "../state-BECcnNRW.js";
17
17
  export { DEFAULT_MAX_DELAY_MS, DEFAULT_QR_MAX_HISTORY, DEFAULT_TRACKING_QUALITY_OPTIONS, ReplayEngine, add2dImage, buildRawGpsPoint, buildRecordGpsEventPayload, calcRelativeCoordsInMeters, captureGpsAnchorSample, clearAllQrMarkers, clearLastRestartedPayload, clearQrMarker, computeConvergence, computeCoverage, computeGpsAccuracy, computeGpsVsFusedDivergence, computeInterActionDelay, computeOnboardingGuidance, computeResidualConsensus, computeTrackingQualityReport, createGpsPositionHandler, createPersistenceMiddleware, createSlamAppStore, createTrackingQualityListenerMiddleware, degradedCountUpdated, endSession, eulerToQuaternion, extractActionTimestamp, extractOdomPosition, extractOdomRotation, getLastDeviceOrientation, matrixDelta, medianQrPosition, originReset, poseLost, poseReceived, pruneQrDetections, qrDetectedReducer, recordDepthSample, recordGpsEvent, recordQrDetection, recordQrSizeEstimate, recordWriteFailure, recordingReducer, replayRecording, reportUpdated, resetCoordinatorState, resetTracking, resetTrackingQuality, selectAlignmentMatrix, selectDerivedQrPlacement, selectFrameTilesInWebXR, selectGpsPositions, selectLastRestartedPayload, selectLastSensorOrientation, selectLastValidPose, selectLatestQrDetection, selectLostFrameCount, selectOdometryPositions, selectOdometryRotations, selectOnboardingGuidance, selectQrMarker, selectQrMarkers, selectQrPoseStability, selectQrRawObservations, selectQrSize, selectRecentAlignments, selectResolvedQrSizeM, selectSolvedQrPose, selectStableQrPose, selectTrackingPhase, selectTrackingQuality, selectZeroReference, setQrMaxHistory, setZeroPos, slicePrefixOf, snapshotPushed, snapshotsTrimmed, startSession, subscribeToSelector, trackingQualityReducer, trackingReducer, updateDeviceOrientation, wireStoreSubscribers };
@@ -1,3 +1,3 @@
1
- import { N as CombinedRootState } from "../create-slam-app-store-HNe1PBtx.js";
2
- import { n as replayRecording, t as ReplayRecordingOptions } from "../recording-replayer-BKmVuchg.js";
1
+ import { N as CombinedRootState } from "../create-slam-app-store-sxb1-esK.js";
2
+ import { n as replayRecording, t as ReplayRecordingOptions } from "../recording-replayer-CpFiYczh.js";
3
3
  export { CombinedRootState, ReplayRecordingOptions, replayRecording };
@@ -1,6 +1,6 @@
1
1
  import { loadActionsFromZip } from "../storage/zip-reader.js";
2
2
  import { NullStorageBackend } from "../storage/null-storage-backend.js";
3
- import { t as createSlamAppStore } from "../create-slam-app-store-wYN7YkB5.js";
3
+ import { t as createSlamAppStore } from "../create-slam-app-store-B62K8_Qr.js";
4
4
  //#region ../src/state/recording-replayer.ts
5
5
  /**
6
6
  * Recording Replayer
@@ -1,2 +1,2 @@
1
- import { a as ReplayAction, c as computeInterActionDelay, i as ProgressCallback, l as extractActionTimestamp, n as DEFAULT_MAX_DELAY_MS, o as ReplayEngine, r as ErrorCallback, s as ReplayState, t as CompleteCallback } from "../replay-engine-D-cbT0Fw.js";
1
+ import { a as ReplayAction, c as computeInterActionDelay, i as ProgressCallback, l as extractActionTimestamp, n as DEFAULT_MAX_DELAY_MS, o as ReplayEngine, r as ErrorCallback, s as ReplayState, t as CompleteCallback } from "../replay-engine-DI7uknkv.js";
2
2
  export { CompleteCallback, DEFAULT_MAX_DELAY_MS, ErrorCallback, ProgressCallback, ReplayAction, ReplayEngine, ReplayState, computeInterActionDelay, extractActionTimestamp };
@@ -1,6 +1,6 @@
1
1
  import { r as OccupancyGrid } from "../occupancy-grid-DKzIdCSZ.js";
2
- import { i as SlamAppStore } from "../create-slam-app-store-HNe1PBtx.js";
3
- import { a as ReplayAction, s as ReplayState } from "../replay-engine-D-cbT0Fw.js";
2
+ import { i as SlamAppStore } from "../create-slam-app-store-sxb1-esK.js";
3
+ import { a as ReplayAction, s as ReplayState } from "../replay-engine-DI7uknkv.js";
4
4
  import { i as OcclusionMesh } from "../occlusion-mesh-BY2aMej3.js";
5
5
  import { t as OccupancyCubesVisualizer } from "../occupancy-cubes-visualizer-soN0Sizd.js";
6
6
  import * as THREE from "three";
@@ -3,7 +3,7 @@ import { b as nuePositionToWebXR, x as nueQuaternionToWebXR } from "../webxr-ses
3
3
  import { OccupancyGrid } from "../ar/occupancy-grid.js";
4
4
  import { disposeReplayScene, getAlignmentLerper, initReplayScene, updateOrbitTarget } from "../ar/replay-scene.js";
5
5
  import { NullStorageBackend } from "../storage/null-storage-backend.js";
6
- import { t as createSlamAppStore } from "../create-slam-app-store-wYN7YkB5.js";
6
+ import { t as createSlamAppStore } from "../create-slam-app-store-B62K8_Qr.js";
7
7
  import { ReplayEngine } from "./replay-engine.js";
8
8
  import { wireStoreSubscribers } from "./store-subscribers.js";
9
9
  import { gpsEventVisualizer } from "../visualization/gps-event-markers.js";
@@ -1,3 +1,3 @@
1
- import { t as SubscribableStore } from "../subscribe-to-selector-B_lm_euO.js";
2
- import { n as wireStoreSubscribers, t as StoreSubscriberDeps } from "../store-subscribers-BbRW35u5.js";
1
+ import { t as SubscribableStore } from "../subscribe-to-selector-hitZwSj8.js";
2
+ import { n as wireStoreSubscribers, t as StoreSubscriberDeps } from "../store-subscribers-BenHBQhD.js";
3
3
  export { StoreSubscriberDeps, SubscribableStore, wireStoreSubscribers };
@@ -1,2 +1,2 @@
1
- import { n as subscribeToSelector, t as SubscribableStore } from "../subscribe-to-selector-B_lm_euO.js";
1
+ import { n as subscribeToSelector, t as SubscribableStore } from "../subscribe-to-selector-hitZwSj8.js";
2
2
  export { SubscribableStore, subscribeToSelector };
@@ -1,2 +1,2 @@
1
- import { A as snapshotPushed, C as createTrackingQualityListenerMiddleware, D as resetTrackingQuality, E as reportUpdated, M as trackingQualityReducer, O as selectRecentAlignments, S as computeTrackingQualityReport, T as matrixDelta, _ as computeConvergence, b as computeGpsVsFusedDivergence, c as ConvergenceResult, d as GpsAccuracyResult, f as ResidualConsensusResult, g as TrackingQualityState, h as TrackingQualitySliceState, j as snapshotsTrimmed, k as selectTrackingQuality, l as CoverageResult, m as TrackingQualityReport, p as TrackingQualityOptions, s as AlignmentSnapshot, u as DEFAULT_TRACKING_QUALITY_OPTIONS, v as computeCoverage, w as degradedCountUpdated, x as computeResidualConsensus, y as computeGpsAccuracy } from "../create-slam-app-store-HNe1PBtx.js";
1
+ import { A as snapshotPushed, C as createTrackingQualityListenerMiddleware, D as resetTrackingQuality, E as reportUpdated, M as trackingQualityReducer, O as selectRecentAlignments, S as computeTrackingQualityReport, T as matrixDelta, _ as computeConvergence, b as computeGpsVsFusedDivergence, c as ConvergenceResult, d as GpsAccuracyResult, f as ResidualConsensusResult, g as TrackingQualityState, h as TrackingQualitySliceState, j as snapshotsTrimmed, k as selectTrackingQuality, l as CoverageResult, m as TrackingQualityReport, p as TrackingQualityOptions, s as AlignmentSnapshot, u as DEFAULT_TRACKING_QUALITY_OPTIONS, v as computeCoverage, w as degradedCountUpdated, x as computeResidualConsensus, y as computeGpsAccuracy } from "../create-slam-app-store-sxb1-esK.js";
2
2
  export { AlignmentSnapshot, ConvergenceResult, CoverageResult, DEFAULT_TRACKING_QUALITY_OPTIONS, GpsAccuracyResult, ResidualConsensusResult, TrackingQualityOptions, TrackingQualityReport, TrackingQualitySliceState, TrackingQualityState, computeConvergence, computeCoverage, computeGpsAccuracy, computeGpsVsFusedDivergence, computeResidualConsensus, computeTrackingQualityReport, createTrackingQualityListenerMiddleware, degradedCountUpdated, matrixDelta, reportUpdated, resetTrackingQuality, selectRecentAlignments, selectTrackingQuality, snapshotPushed, snapshotsTrimmed, trackingQualityReducer };
@@ -5,7 +5,7 @@ import "./state/gps-event-coordinator.js";
5
5
  import "./state/app-selectors.js";
6
6
  import { selectTrackingQuality } from "./state/tracking-quality.js";
7
7
  import "./state/persistence-middleware.js";
8
- import "./create-slam-app-store-wYN7YkB5.js";
8
+ import "./create-slam-app-store-B62K8_Qr.js";
9
9
  import "./state/recording-replayer.js";
10
10
  import "./state/store-subscribers.js";
11
11
  import { add2dImage, calcRelativeCoordsInMeters, recordGpsEvent as recordGpsEvent$1, setZeroPos as setZeroPos$1 } from "gps-plus-slam-js";
@@ -1,5 +1,5 @@
1
1
  import { t as MapData } from "./map-data-BQXPtRz7.js";
2
- import { t as SubscribableStore } from "./subscribe-to-selector-B_lm_euO.js";
2
+ import { t as SubscribableStore } from "./subscribe-to-selector-hitZwSj8.js";
3
3
  import { LatLong, Matrix4, Quaternion, Vector3 } from "gps-plus-slam-js";
4
4
 
5
5
  //#region ../src/state/store-subscribers.d.ts
@@ -1,4 +1,4 @@
1
- import { N as CombinedRootState } from "./create-slam-app-store-HNe1PBtx.js";
1
+ import { N as CombinedRootState } from "./create-slam-app-store-sxb1-esK.js";
2
2
 
3
3
  //#region ../src/state/subscribe-to-selector.d.ts
4
4
  /**
@@ -1,2 +1,2 @@
1
- import { n as ArWorldGroupAlignmentOptions, r as enableArWorldGroupAlignment, t as ArWorldGroupAlignmentHandle } from "../ar-world-group-alignment-CvvfACfx.js";
1
+ import { n as ArWorldGroupAlignmentOptions, r as enableArWorldGroupAlignment, t as ArWorldGroupAlignmentHandle } from "../ar-world-group-alignment-Dn_UiRy1.js";
2
2
  export { ArWorldGroupAlignmentHandle, ArWorldGroupAlignmentOptions, enableArWorldGroupAlignment };
@@ -2,7 +2,7 @@ import { n as createCameraFollower, t as CameraFollower } from "../camera-follow
2
2
  import { n as createAlignmentLerper, t as AlignmentLerper } from "../alignment-lerper-CK1TYLIL.js";
3
3
  import { n as createCss3dRendererManager, t as Css3dRendererManager } from "../css3d-renderer-manager-CE6xN7XM.js";
4
4
  import { n as MapDataInput, r as buildMapData, t as MapData } from "../map-data-BQXPtRz7.js";
5
- import { n as ArWorldGroupAlignmentOptions, r as enableArWorldGroupAlignment, t as ArWorldGroupAlignmentHandle } from "../ar-world-group-alignment-CvvfACfx.js";
5
+ import { n as ArWorldGroupAlignmentOptions, r as enableArWorldGroupAlignment, t as ArWorldGroupAlignmentHandle } from "../ar-world-group-alignment-Dn_UiRy1.js";
6
6
  import { i as createGpsCompassCubes, n as COMPASS_CUBE_SIZE, r as GpsCompassCubes, t as COMPASS_CUBE_DISTANCE } from "../gps-compass-cubes-QQJgpRXR.js";
7
7
  import { i as isSphereInCameraFrustum, n as isObjectInCameraFrustum, r as isPointInCameraFrustum, t as buildCameraFrustum } from "../frustum-visibility-BTx1Sqfo.js";
8
8
  import { n as worldNueToGps, t as nueToArLocal } from "../frame-conversions-CzPQDYpM.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gps-plus-slam-app-framework",
3
- "version": "1.13.0",
3
+ "version": "1.14.0",
4
4
  "description": "Reusable AR+GPS app framework layer — WebXR session management, Three.js visualization, GPS sensors, storage abstractions, replay engine, and store wiring for gps-plus-slam-js.",
5
5
  "type": "module",
6
6
  "files": [
@@ -37,7 +37,7 @@
37
37
  "dependencies": {
38
38
  "@reduxjs/toolkit": "^2.11.2",
39
39
  "gl-matrix": "3.4.4",
40
- "gps-plus-slam-js": "^1.13.0",
40
+ "gps-plus-slam-js": "^1.14.0",
41
41
  "redux": "^5.0.1"
42
42
  },
43
43
  "peerDependencies": {