gps-plus-slam-app-framework 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +222 -0
  3. package/dist/alignment-lerper-D9BeDwZX.d.ts +29 -0
  4. package/dist/app-selectors-DyMzxCEC.d.ts +140 -0
  5. package/dist/ar/camera-blit-capture.d.ts +2 -0
  6. package/dist/ar/camera-blit-capture.js +253 -0
  7. package/dist/ar/capture-failure-tracker.d.ts +2 -0
  8. package/dist/ar/capture-failure-tracker.js +45 -0
  9. package/dist/ar/chromium-camera-access-workaround.d.ts +2 -0
  10. package/dist/ar/chromium-camera-access-workaround.js +32 -0
  11. package/dist/ar/depth-sampler.d.ts +3 -0
  12. package/dist/ar/depth-sampler.js +147 -0
  13. package/dist/ar/image-capture.d.ts +2 -0
  14. package/dist/ar/image-capture.js +152 -0
  15. package/dist/ar/index.d.ts +12 -0
  16. package/dist/ar/index.js +12 -0
  17. package/dist/ar/replay-scene.d.ts +2 -0
  18. package/dist/ar/replay-scene.js +325 -0
  19. package/dist/ar/scene-node-names.d.ts +2 -0
  20. package/dist/ar/scene-node-names.js +16 -0
  21. package/dist/ar/tracking-state.d.ts +2 -0
  22. package/dist/ar/tracking-state.js +164 -0
  23. package/dist/ar/webxr-session.d.ts +4 -0
  24. package/dist/ar/webxr-session.js +890 -0
  25. package/dist/ar/xr-camera-texture.d.ts +2 -0
  26. package/dist/ar/xr-camera-texture.js +39 -0
  27. package/dist/ar/xr-error-handler.d.ts +2 -0
  28. package/dist/ar/xr-error-handler.js +37 -0
  29. package/dist/ar-types-B-ORgk6Z.d.ts +82 -0
  30. package/dist/camera-blit-capture-DHuyrrxr.d.ts +108 -0
  31. package/dist/camera-follower-BMqPddxx.d.ts +29 -0
  32. package/dist/capture-failure-tracker-2Q6oI2uQ.d.ts +52 -0
  33. package/dist/chromium-camera-access-workaround-CU5zSKNr.d.ts +61 -0
  34. package/dist/community-license-key-ChZLCJyO.d.ts +21 -0
  35. package/dist/concurrency-p6gB30fT.d.ts +24 -0
  36. package/dist/css3d-renderer-manager-rgLMVAvd.d.ts +23 -0
  37. package/dist/depth-sampler-BNCtnEoP.d.ts +108 -0
  38. package/dist/failure-tracker-1sQ_Cgyw.d.ts +49 -0
  39. package/dist/file-system-BsQgYCU3.d.ts +128 -0
  40. package/dist/file-system-utils-5cWO8Xyv.d.ts +24 -0
  41. package/dist/format-file-size-onGq0k1Q.d.ts +24 -0
  42. package/dist/fused-path-DtqCSqJh.d.ts +25 -0
  43. package/dist/geo-types-Xx-LVcnw.d.ts +29 -0
  44. package/dist/gps-Ddzr2KlX.d.ts +54 -0
  45. package/dist/gps-compass-cubes-C-6JEnpR.d.ts +22 -0
  46. package/dist/gps-error-handler-VPuNOuf8.d.ts +40 -0
  47. package/dist/gps-event-markers-DpEy2qRd.d.ts +67 -0
  48. package/dist/h3-ref-point-CFhayNSZ.d.ts +59 -0
  49. package/dist/image-capture-2pKjYUS6.d.ts +130 -0
  50. package/dist/index.d.ts +56 -0
  51. package/dist/index.js +61 -0
  52. package/dist/leaflet-map-overlay-CvfQXTye.d.ts +114 -0
  53. package/dist/lerp-utils-87NWjUOD.d.ts +20 -0
  54. package/dist/licensing/community-license-key.d.ts +2 -0
  55. package/dist/licensing/community-license-key.js +21 -0
  56. package/dist/licensing/index.d.ts +2 -0
  57. package/dist/licensing/index.js +2 -0
  58. package/dist/list-formatter-DKQQVLcl.d.ts +14 -0
  59. package/dist/logger-B81iwxx0.d.ts +74 -0
  60. package/dist/map-overlay-DuiZuCTx.d.ts +153 -0
  61. package/dist/null-storage-backend-CsWvQwN8.d.ts +11 -0
  62. package/dist/opfs-storage-ChOzF_Wp.d.ts +181 -0
  63. package/dist/opfs-storage-backend-CVcmfJHN.d.ts +11 -0
  64. package/dist/permission-checker-jO2ziCWC.d.ts +146 -0
  65. package/dist/persistence-middleware-DrptY02i.d.ts +31 -0
  66. package/dist/recorder-slice-fcwAXrsh.d.ts +35 -0
  67. package/dist/recording-coordinator-DzflP07_.d.ts +81 -0
  68. package/dist/recording-options-BYUFX8iU.d.ts +166 -0
  69. package/dist/recording-replayer-oOzPITrd.d.ts +32 -0
  70. package/dist/ref-point-importer-B_wn5ABk.d.ts +62 -0
  71. package/dist/ref-point-loader-Pt1smgHS.d.ts +117 -0
  72. package/dist/ref-points/h3-ref-point.d.ts +2 -0
  73. package/dist/ref-points/h3-ref-point.js +74 -0
  74. package/dist/ref-points/index.d.ts +2 -0
  75. package/dist/ref-points/index.js +2 -0
  76. package/dist/ref-points-slice-tC-Wd6XJ.d.ts +48 -0
  77. package/dist/reference-points-CFWy8_wj.d.ts +68 -0
  78. package/dist/replay-engine-DuX316ae.d.ts +103 -0
  79. package/dist/replay-scene-DtUm6bsr.d.ts +109 -0
  80. package/dist/routing-slice-BlHTM8eh.d.ts +23 -0
  81. package/dist/scene-node-names-DPsaE2z3.d.ts +14 -0
  82. package/dist/sensors/gps-error-handler.d.ts +2 -0
  83. package/dist/sensors/gps-error-handler.js +53 -0
  84. package/dist/sensors/gps.d.ts +2 -0
  85. package/dist/sensors/gps.js +93 -0
  86. package/dist/sensors/index.d.ts +4 -0
  87. package/dist/sensors/index.js +4 -0
  88. package/dist/sensors/permission-checker.d.ts +2 -0
  89. package/dist/sensors/permission-checker.js +397 -0
  90. package/dist/state/app-selectors.d.ts +2 -0
  91. package/dist/state/app-selectors.js +35 -0
  92. package/dist/state/index.d.ts +17 -0
  93. package/dist/state/index.js +13 -0
  94. package/dist/state/persistence-middleware.d.ts +2 -0
  95. package/dist/state/persistence-middleware.js +71 -0
  96. package/dist/state/recorder-slice.d.ts +2 -0
  97. package/dist/state/recorder-slice.js +47 -0
  98. package/dist/state/recording-coordinator.d.ts +2 -0
  99. package/dist/state/recording-coordinator.js +150 -0
  100. package/dist/state/recording-options.d.ts +2 -0
  101. package/dist/state/recording-options.js +192 -0
  102. package/dist/state/recording-replayer.d.ts +2 -0
  103. package/dist/state/recording-replayer.js +39 -0
  104. package/dist/state/ref-points-slice.d.ts +2 -0
  105. package/dist/state/ref-points-slice.js +44 -0
  106. package/dist/state/replay-engine.d.ts +2 -0
  107. package/dist/state/replay-engine.js +230 -0
  108. package/dist/state/routing-slice.d.ts +2 -0
  109. package/dist/state/routing-slice.js +13 -0
  110. package/dist/state/store-subscribers.d.ts +3 -0
  111. package/dist/state/store-subscribers.js +97 -0
  112. package/dist/state/store.d.ts +9 -0
  113. package/dist/state/store.js +71 -0
  114. package/dist/state/subscribe-to-selector.d.ts +2 -0
  115. package/dist/state/subscribe-to-selector.js +26 -0
  116. package/dist/storage/file-system-utils.d.ts +2 -0
  117. package/dist/storage/file-system-utils.js +31 -0
  118. package/dist/storage/file-system.d.ts +2 -0
  119. package/dist/storage/file-system.js +229 -0
  120. package/dist/storage/index.d.ts +11 -0
  121. package/dist/storage/index.js +10 -0
  122. package/dist/storage/null-storage-backend.d.ts +2 -0
  123. package/dist/storage/null-storage-backend.js +8 -0
  124. package/dist/storage/opfs-storage-backend.d.ts +2 -0
  125. package/dist/storage/opfs-storage-backend.js +15 -0
  126. package/dist/storage/opfs-storage.d.ts +2 -0
  127. package/dist/storage/opfs-storage.js +242 -0
  128. package/dist/storage/ref-point-importer.d.ts +2 -0
  129. package/dist/storage/ref-point-importer.js +163 -0
  130. package/dist/storage/ref-point-loader.d.ts +2 -0
  131. package/dist/storage/ref-point-loader.js +248 -0
  132. package/dist/storage/ref-point-recovery.d.ts +28 -0
  133. package/dist/storage/ref-point-recovery.js +159 -0
  134. package/dist/storage/storage-backend.d.ts +2 -0
  135. package/dist/storage/storage-backend.js +1 -0
  136. package/dist/storage/zip-export.d.ts +2 -0
  137. package/dist/storage/zip-export.js +214 -0
  138. package/dist/storage/zip-reader.d.ts +2 -0
  139. package/dist/storage/zip-reader.js +190 -0
  140. package/dist/storage-backend-BcEItnFr.d.ts +20 -0
  141. package/dist/store-C7PKOj8S.d.ts +96 -0
  142. package/dist/store-subscribers-CuoIzB5T.d.ts +77 -0
  143. package/dist/subscribe-to-selector-UTZ0KkAc.d.ts +26 -0
  144. package/dist/test-utils/browser-mocks.d.ts +294 -0
  145. package/dist/test-utils/browser-mocks.js +568 -0
  146. package/dist/test-utils/zip-round-trip-helpers.d.ts +60 -0
  147. package/dist/test-utils/zip-round-trip-helpers.js +207 -0
  148. package/dist/three-dispose-CCBHjE_a.d.ts +30 -0
  149. package/dist/tracking-state-B9QfuZCg.d.ts +101 -0
  150. package/dist/types/ar-types.d.ts +2 -0
  151. package/dist/types/ar-types.js +1 -0
  152. package/dist/types/geo-types.d.ts +2 -0
  153. package/dist/types/geo-types.js +1 -0
  154. package/dist/types/index.d.ts +3 -0
  155. package/dist/types/index.js +1 -0
  156. package/dist/utils/concurrency.d.ts +2 -0
  157. package/dist/utils/concurrency.js +40 -0
  158. package/dist/utils/failure-tracker.d.ts +2 -0
  159. package/dist/utils/failure-tracker.js +48 -0
  160. package/dist/utils/format-file-size.d.ts +2 -0
  161. package/dist/utils/format-file-size.js +41 -0
  162. package/dist/utils/fused-path.d.ts +2 -0
  163. package/dist/utils/fused-path.js +44 -0
  164. package/dist/utils/index.d.ts +7 -0
  165. package/dist/utils/index.js +7 -0
  166. package/dist/utils/list-formatter.d.ts +2 -0
  167. package/dist/utils/list-formatter.js +17 -0
  168. package/dist/utils/logger.d.ts +2 -0
  169. package/dist/utils/logger.js +226 -0
  170. package/dist/vis-colors-Qi2vlRGt.d.ts +63 -0
  171. package/dist/visualization/alignment-lerper.d.ts +2 -0
  172. package/dist/visualization/alignment-lerper.js +68 -0
  173. package/dist/visualization/camera-follower.d.ts +2 -0
  174. package/dist/visualization/camera-follower.js +51 -0
  175. package/dist/visualization/css3d-renderer-manager.d.ts +2 -0
  176. package/dist/visualization/css3d-renderer-manager.js +41 -0
  177. package/dist/visualization/gps-compass-cubes.d.ts +2 -0
  178. package/dist/visualization/gps-compass-cubes.js +129 -0
  179. package/dist/visualization/gps-event-markers.d.ts +2 -0
  180. package/dist/visualization/gps-event-markers.js +159 -0
  181. package/dist/visualization/index.d.ts +12 -0
  182. package/dist/visualization/index.js +12 -0
  183. package/dist/visualization/leaflet-map-overlay.d.ts +2 -0
  184. package/dist/visualization/leaflet-map-overlay.js +313 -0
  185. package/dist/visualization/lerp-utils.d.ts +2 -0
  186. package/dist/visualization/lerp-utils.js +22 -0
  187. package/dist/visualization/map-overlay.d.ts +2 -0
  188. package/dist/visualization/map-overlay.js +241 -0
  189. package/dist/visualization/reference-points.d.ts +2 -0
  190. package/dist/visualization/reference-points.js +160 -0
  191. package/dist/visualization/three-dispose.d.ts +2 -0
  192. package/dist/visualization/three-dispose.js +55 -0
  193. package/dist/visualization/vis-colors.d.ts +2 -0
  194. package/dist/visualization/vis-colors.js +74 -0
  195. package/dist/webxr-session-COlSrXdL.d.ts +316 -0
  196. package/dist/xr-camera-texture-BbukNE79.d.ts +53 -0
  197. package/dist/xr-error-handler-DTHfmvrl.d.ts +24 -0
  198. package/dist/zip-export-Rtpi75JJ.d.ts +87 -0
  199. package/dist/zip-reader-D7pkpX8K.d.ts +97 -0
  200. package/package.json +104 -0
@@ -0,0 +1,56 @@
1
+ import { i as computeCaptureSize, n as CameraBlitCaptureConfig, r as DEFAULT_BLIT_CONFIG, t as CameraBlitCapture } from "./camera-blit-capture-DHuyrrxr.js";
2
+ import { a as createCaptureFailureTracker, i as DEFAULT_CAPTURE_TRACKER_CONFIG, n as CaptureFailureTracker, r as CaptureFailureTrackerConfig, t as CAPTURE_FAILURE_WARNING } from "./capture-failure-tracker-2Q6oI2uQ.js";
3
+ import { n as applyChromiumProjectionLayerWorkaround, t as ChromiumProjectionLayerWorkaroundResult } from "./chromium-camera-access-workaround-CU5zSKNr.js";
4
+ import { a as WebXRQuaternion, i as DepthSample, n as ArPoseTuples, o as WebXRVec3, r as DepthPoint, t as ARPose } from "./ar-types-B-ORgk6Z.js";
5
+ import { i as DepthSamplerConfig, n as DepthSampler, r as DepthSamplerCallbacks, t as DepthInfo } from "./depth-sampler-BNCtnEoP.js";
6
+ import { a as ImageCaptureManager, i as ImageCaptureConfig, n as DEFAULT_CAPTURE_CONFIG, o as MIN_VALID_IMAGE_BYTES, r as ImageCaptureCallbacks, t as CapturedImage } from "./image-capture-2pKjYUS6.js";
7
+ import { n as createCameraFollower, t as CameraFollower } from "./camera-follower-BMqPddxx.js";
8
+ import { n as createAlignmentLerper, t as AlignmentLerper } from "./alignment-lerper-D9BeDwZX.js";
9
+ import { n as createCss3dRendererManager, t as Css3dRendererManager } from "./css3d-renderer-manager-rgLMVAvd.js";
10
+ import { a as getCameraFollower, c as getReplayState, d as updateOrbitTarget, i as getAlignmentLerper, l as initReplayScene, n as ReplaySceneState, o as getCameraMode, r as disposeReplayScene, t as CameraMode, u as toggleCameraMode } from "./replay-scene-DtUm6bsr.js";
11
+ import { t as SCENE_NODE } from "./scene-node-names-DPsaE2z3.js";
12
+ import { a as TrackingStateManager, i as TrackingStateCallbacks, r as TrackingState, t as DeviceOrientation } from "./tracking-state-B9QfuZCg.js";
13
+ import { _ as validateRecordingOptions, a as IMAGE_CONSTRAINTS, c as RecordingOptionsInput, d as loadRecordingOptions, f as resetRecordingOptions, g as validateImageOptions, h as validateDepthOptions, i as DepthCaptureOptions, l as STORAGE_KEY, n as DEFAULT_RECORDING_OPTIONS, o as ImageCaptureOptions, p as saveRecordingOptions, r as DEPTH_CONSTRAINTS, s as RecordingOptions, u as cloneRecordingOptions } from "./recording-options-BYUFX8iU.js";
14
+ import { i as acquireCameraTexture, n as RendererLike, r as XRCameraLike, t as CameraTextureResult } from "./xr-camera-texture-BbukNE79.js";
15
+ import { A as setTrackingLostCallback, D as setImageCaptureCallback, E as setFrameCallback, F as stopDepthCapture, I as stopImageCapture, N as startDepthCapture, P as startImageCapture, T as setDepthCaptureCallback, d as getDepthSampleCount, f as getImageCaptureFrameCount, g as initAR, i as endARSession, k as setTrackingCallbacks, p as getLiveCss3dManager } from "./webxr-session-COlSrXdL.js";
16
+ import { n as XR_ERROR_MESSAGE_UNKNOWN, r as getXrErrorMessage, t as XR_ERROR_MESSAGES } from "./xr-error-handler-DTHfmvrl.js";
17
+ import { a as startOrientationWatch, i as startGpsWatch, n as RawDeviceOrientation, o as stopGpsWatch, r as requestOrientationPermission, s as stopOrientationWatch, t as GpsPosition } from "./gps-Ddzr2KlX.js";
18
+ import { a as getGpsErrorMessage, i as createGpsErrorHandler, n as GPS_ERROR_MESSAGES, r as GPS_ERROR_MESSAGE_UNKNOWN, t as GPS_ERROR_CODES } from "./gps-error-handler-VPuNOuf8.js";
19
+ import { a as checkFileSystemPermission, c as checkWebXRSupport, d as requestGeolocationPermission, f as requestOrientationPermission$1, h as setFileSystemState, i as checkCameraPermission, l as requestAllPermissions, m as resetFileSystemState, n as PermissionStatus, o as checkGeolocationPermission, p as requestWebXRWithDepthPermission, r as checkAllPermissions, s as checkOrientationPermission, t as PermissionCheckResult, u as requestCameraPermission } from "./permission-checker-jO2ziCWC.js";
20
+ import { a as gpsToH3, i as findNearbyRefPoint, n as KnownRefPoint, o as h3RefsMatch, r as approxDistanceMetres, s as isH3Index, t as H3_RESOLUTION } from "./h3-ref-point-CFhayNSZ.js";
21
+ import { a as createLogger, c as setGlobalLogLevel, i as clearLogBuffer, l as subscribeToLogs, n as LogLevel, o as getGlobalLogLevel, r as Logger, s as getLogBuffer, t as LogEntry } from "./logger-B81iwxx0.js";
22
+ import { n as RefPointMarker, t as GpsCoord } from "./geo-types-Xx-LVcnw.js";
23
+ import { n as computeFusedPath, r as fusedGpsFromOdom, t as FusedPathInput } from "./fused-path-DtqCSqJh.js";
24
+ import { n as FailureTrackerConfig, r as createFailureTracker, t as FailureTracker } from "./failure-tracker-1sQ_Cgyw.js";
25
+ import { t as mapWithConcurrencyLimit } from "./concurrency-p6gB30fT.js";
26
+ import { t as formatFileSize } from "./format-file-size-onGq0k1Q.js";
27
+ import { t as listFormatter } from "./list-formatter-DKQQVLcl.js";
28
+ import { a as getScenarioHandle, c as initOpfsStorage, d as resetOpfsStorage, f as resetSessionHandles, i as createSession, o as getScenariosRootHandle, r as checkStorageQuota, s as getSessionHandle, t as CreateSessionResult, u as listSessions } from "./opfs-storage-ChOzF_Wp.js";
29
+ import { t as StorageBackend } from "./storage-backend-BcEItnFr.js";
30
+ import { a as recordWriteFailure, c as startSession, i as recordDepthSample, r as endSession, s as setCurrentScenarioName, t as RecorderState } from "./recorder-slice-fcwAXrsh.js";
31
+ import { n as RefPointImportResult, r as importRefPointsFromFolder, t as ImportedRefPoint } from "./ref-point-importer-B_wn5ABk.js";
32
+ import { a as resetRefPointsState, i as refPointsReducer, n as clearSessionRefPointUsage, o as selectCachedKnownRefPoints, r as incrementRefPointUsage, s as setImportedRefPoints } from "./ref-points-slice-tC-Wd6XJ.js";
33
+ import { n as RoutingState, r as navigateTo, t as AppScreen } from "./routing-slice-BlHTM8eh.js";
34
+ import { a as flattenRefPointsToMarks, c as loadRefPoint, i as averageGpsPerRefPoint, l as saveRefPointObservation, n as RefPointMark, o as listRefPointIds, r as RefPointObservation, s as loadAllRefPoints, t as RefPointDefinition } from "./ref-point-loader-Pt1smgHS.js";
35
+ import { _ as setZeroPos, d as RootState, f as add2dImage, g as recordGpsEvent, h as markReferencePoint, l as RecorderStore, m as createRecorderStore, n as CombinedRootState, p as calcRelativeCoordsInMeters, t as AppDispatch, u as RecorderStoreOptions } from "./store-C7PKOj8S.js";
36
+ import { a as eulerToQuaternion, c as getLastDeviceOrientation, i as createGpsPositionHandler, l as resetCoordinatorState, n as buildRawGpsPoint, o as extractOdomPosition, r as buildRecordGpsEventPayload, s as extractOdomRotation, t as RecordingCoordinatorConfig, u as updateDeviceOrientation } from "./recording-coordinator-DzflP07_.js";
37
+ import { a as ZipActionEntry, i as RecordedAction, l as loadSessionMetadataFromBlob, n as GpsPathCoord, o as loadActionsFromZip, r as MAX_ACTION_FILE_SIZE, s as loadGpsPathFromBlob, u as readZipEntries } from "./zip-reader-D7pkpX8K.js";
38
+ import { n as replayRecording } from "./recording-replayer-oOzPITrd.js";
39
+ 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-DuX316ae.js";
40
+ import { t as SubscribableStore } from "./subscribe-to-selector-UTZ0KkAc.js";
41
+ import { n as wireStoreSubscribers, t as StoreSubscriberDeps } from "./store-subscribers-CuoIzB5T.js";
42
+ import { t as NullStorageBackend } from "./null-storage-backend-CsWvQwN8.js";
43
+ import { t as OpfsStorageBackend } from "./opfs-storage-backend-CVcmfJHN.js";
44
+ import { a as initStorage, c as resetForNewSession, d as startSession$1, f as verifyWriteAccess, l as resetStorageState, m as writeFrame, n as WriteAccessResult, p as writeAction } from "./file-system-BsQgYCU3.js";
45
+ import { n as formatFrameFilename, r as formatTimestamp, t as formatActionFilename } from "./file-system-utils-5cWO8Xyv.js";
46
+ import { a as syncToExternalZip, i as exportSessionAsZip, n as downloadZip, r as exportAndDownloadSession, t as ZipExportResult } from "./zip-export-Rtpi75JJ.js";
47
+ import { i as createGpsCompassCubes, n as COMPASS_CUBE_SIZE, r as GpsCompassCubes, t as COMPASS_CUBE_DISTANCE } from "./gps-compass-cubes-C-6JEnpR.js";
48
+ import { n as gpsEventVisualizer, t as GpsEventVisualizer } from "./gps-event-markers-DpEy2qRd.js";
49
+ import { a as DEFAULT_Z_OFFSET, n as DEFAULT_LEAFLET_MAP_SIZE_PX, o as LeafletMapOverlay, r as DEFAULT_WORLD_SIZE, s as LeafletMapOverlayOptions } from "./leaflet-map-overlay-CvfQXTye.js";
50
+ import { n as clampedAlpha, t as DEFAULT_LERP_RATE } from "./lerp-utils-87NWjUOD.js";
51
+ import { a as MapOverlayOptions, c as tileXYToLatLon, i as MapOverlay, n as DEFAULT_MAP_SIZE, o as TextureLoaderInterface, r as DEFAULT_ZOOM, s as latLonToTileXY, t as DEFAULT_HEIGHT_OFFSET } from "./map-overlay-DuiZuCTx.js";
52
+ import { n as refPointVisualizer, t as RefPointVisualizer } from "./reference-points-CFWy8_wj.js";
53
+ import { n as disposeMeshArray, r as disposeObject3D, t as DisposeOptions } from "./three-dispose-CCBHjE_a.js";
54
+ import { t as VIS_COLORS } from "./vis-colors-Qi2vlRGt.js";
55
+ import { t as COMMUNITY_LICENSE_KEY } from "./community-license-key-ChZLCJyO.js";
56
+ export { ARPose, AlignmentLerper, type AppDispatch, type AppScreen, ArPoseTuples, CAPTURE_FAILURE_WARNING, COMMUNITY_LICENSE_KEY, COMPASS_CUBE_DISTANCE, COMPASS_CUBE_SIZE, CameraBlitCapture, CameraBlitCaptureConfig, CameraFollower, CameraMode, CameraTextureResult, CaptureFailureTracker, CaptureFailureTrackerConfig, CapturedImage, ChromiumProjectionLayerWorkaroundResult, type CombinedRootState, type CompleteCallback, type CreateSessionResult, Css3dRendererManager, DEFAULT_BLIT_CONFIG, DEFAULT_CAPTURE_CONFIG, DEFAULT_CAPTURE_TRACKER_CONFIG, DEFAULT_HEIGHT_OFFSET, DEFAULT_LEAFLET_MAP_SIZE_PX, DEFAULT_LERP_RATE, DEFAULT_MAP_SIZE, DEFAULT_MAX_DELAY_MS, DEFAULT_RECORDING_OPTIONS, DEFAULT_WORLD_SIZE, DEFAULT_ZOOM, DEFAULT_Z_OFFSET, DEPTH_CONSTRAINTS, type DepthCaptureOptions, DepthInfo, DepthPoint, DepthSample, DepthSampler, DepthSamplerCallbacks, DepthSamplerConfig, DeviceOrientation, DisposeOptions, type ErrorCallback, FailureTracker, FailureTrackerConfig, FusedPathInput, GPS_ERROR_CODES, GPS_ERROR_MESSAGES, GPS_ERROR_MESSAGE_UNKNOWN, GpsCompassCubes, GpsCoord, GpsEventVisualizer, type GpsPathCoord, GpsPosition, H3_RESOLUTION, IMAGE_CONSTRAINTS, ImageCaptureCallbacks, ImageCaptureConfig, ImageCaptureManager, type ImageCaptureOptions, type ImportedRefPoint, KnownRefPoint, LeafletMapOverlay, LeafletMapOverlayOptions, LogEntry, LogLevel, Logger, MAX_ACTION_FILE_SIZE, MIN_VALID_IMAGE_BYTES, MapOverlay, MapOverlayOptions, NullStorageBackend, OpfsStorageBackend, PermissionCheckResult, PermissionStatus, type ProgressCallback, RawDeviceOrientation, type RecordedAction, type RecorderState, type RecorderStore, type RecorderStoreOptions, type RecordingCoordinatorConfig, type RecordingOptions, type RecordingOptionsInput, type RefPointDefinition, type RefPointImportResult, type RefPointMark, RefPointMarker, type RefPointObservation, RefPointVisualizer, RendererLike, type ReplayAction, ReplayEngine, ReplaySceneState, type ReplayState, type RootState, type RoutingState, SCENE_NODE, STORAGE_KEY, type StorageBackend, type StoreSubscriberDeps, type SubscribableStore, TextureLoaderInterface, TrackingState, TrackingStateCallbacks, TrackingStateManager, VIS_COLORS, WebXRQuaternion, WebXRVec3, type WriteAccessResult, XRCameraLike, XR_ERROR_MESSAGES, XR_ERROR_MESSAGE_UNKNOWN, type ZipActionEntry, type ZipExportResult, acquireCameraTexture, add2dImage, applyChromiumProjectionLayerWorkaround, approxDistanceMetres, averageGpsPerRefPoint, buildRawGpsPoint, buildRecordGpsEventPayload, calcRelativeCoordsInMeters, checkAllPermissions, checkCameraPermission, checkFileSystemPermission, checkGeolocationPermission, checkOrientationPermission, checkStorageQuota, checkWebXRSupport, clampedAlpha, clearLogBuffer, clearSessionRefPointUsage, cloneRecordingOptions, computeCaptureSize, computeFusedPath, computeInterActionDelay, createAlignmentLerper, createCameraFollower, createCaptureFailureTracker, createCss3dRendererManager, createFailureTracker, createGpsCompassCubes, createGpsErrorHandler, createGpsPositionHandler, createLogger, createRecorderStore, createSession, disposeMeshArray, disposeObject3D, disposeReplayScene, downloadZip, endARSession, endSession, eulerToQuaternion, exportAndDownloadSession, exportSessionAsZip, extractActionTimestamp, extractOdomPosition, extractOdomRotation, findNearbyRefPoint, flattenRefPointsToMarks, formatActionFilename, formatFileSize, formatFrameFilename, formatTimestamp, fusedGpsFromOdom, getAlignmentLerper, getCameraFollower, getCameraMode, getDepthSampleCount, getGlobalLogLevel, getGpsErrorMessage, getImageCaptureFrameCount, getLastDeviceOrientation, getLiveCss3dManager, getLogBuffer, getReplayState, getScenarioHandle, getScenariosRootHandle, getSessionHandle, getXrErrorMessage, gpsEventVisualizer, gpsToH3, h3RefsMatch, importRefPointsFromFolder, incrementRefPointUsage, initAR, initOpfsStorage, initReplayScene, initStorage, isH3Index, latLonToTileXY, listFormatter, listRefPointIds, listSessions, loadActionsFromZip, loadAllRefPoints, loadGpsPathFromBlob, loadRecordingOptions, loadRefPoint, loadSessionMetadataFromBlob, mapWithConcurrencyLimit, markReferencePoint, navigateTo, readZipEntries, recordDepthSample, recordGpsEvent, recordWriteFailure, refPointVisualizer, refPointsReducer, replayRecording, requestAllPermissions, requestCameraPermission, requestOrientationPermission as requestDeviceOrientationPermission, requestGeolocationPermission, requestOrientationPermission$1 as requestOrientationPermission, requestWebXRWithDepthPermission, resetCoordinatorState, resetFileSystemState, resetForNewSession, resetOpfsStorage, resetRecordingOptions, resetRefPointsState, resetSessionHandles, resetStorageState, saveRecordingOptions, saveRefPointObservation, selectCachedKnownRefPoints, setCurrentScenarioName, setDepthCaptureCallback, setFileSystemState, setFrameCallback, setGlobalLogLevel, setImageCaptureCallback, setImportedRefPoints, setTrackingCallbacks, setTrackingLostCallback, setZeroPos, startDepthCapture, startGpsWatch, startImageCapture, startOrientationWatch, startSession, startSession$1 as startStorageSession, stopDepthCapture, stopGpsWatch, stopImageCapture, stopOrientationWatch, subscribeToLogs, syncToExternalZip, tileXYToLatLon, toggleCameraMode, updateDeviceOrientation, updateOrbitTarget, validateDepthOptions, validateImageOptions, validateRecordingOptions, verifyWriteAccess, wireStoreSubscribers, writeAction, writeFrame };
package/dist/index.js ADDED
@@ -0,0 +1,61 @@
1
+ import { LogLevel, clearLogBuffer, createLogger, getGlobalLogLevel, getLogBuffer, setGlobalLogLevel, subscribeToLogs } from "./utils/logger.js";
2
+ import { disposeMeshArray, disposeObject3D } from "./visualization/three-dispose.js";
3
+ import { CameraBlitCapture, DEFAULT_BLIT_CONFIG, computeCaptureSize } from "./ar/camera-blit-capture.js";
4
+ import { applyChromiumProjectionLayerWorkaround } from "./ar/chromium-camera-access-workaround.js";
5
+ import { createFailureTracker } from "./utils/failure-tracker.js";
6
+ import { CAPTURE_FAILURE_WARNING, DEFAULT_CAPTURE_TRACKER_CONFIG, createCaptureFailureTracker } from "./ar/capture-failure-tracker.js";
7
+ import { endSession, recordDepthSample, recordWriteFailure, setCurrentScenarioName, startSession } from "./state/recorder-slice.js";
8
+ import { H3_RESOLUTION, approxDistanceMetres, findNearbyRefPoint, gpsToH3, h3RefsMatch, isH3Index } from "./ref-points/h3-ref-point.js";
9
+ import { clearSessionRefPointUsage, incrementRefPointUsage, refPointsReducer, resetRefPointsState, selectCachedKnownRefPoints, setImportedRefPoints } from "./state/ref-points-slice.js";
10
+ import { navigateTo } from "./state/routing-slice.js";
11
+ import { checkAllPermissions, checkCameraPermission, checkFileSystemPermission, checkGeolocationPermission, checkOrientationPermission, checkWebXRSupport, requestAllPermissions, requestCameraPermission, requestGeolocationPermission, requestOrientationPermission as requestOrientationPermission$1, requestWebXRWithDepthPermission, resetFileSystemState, setFileSystemState } from "./sensors/permission-checker.js";
12
+ import { formatActionFilename, formatFrameFilename, formatTimestamp } from "./storage/file-system-utils.js";
13
+ import { checkStorageQuota, createSession, getScenarioHandle, getScenariosRootHandle, getSessionHandle, initOpfsStorage, listSessions, resetOpfsStorage, resetSessionHandles } from "./storage/opfs-storage.js";
14
+ import { initStorage, resetForNewSession, resetStorageState, startSession as startSession$1, verifyWriteAccess, writeAction, writeFrame } from "./storage/file-system.js";
15
+ import { OpfsStorageBackend } from "./storage/opfs-storage-backend.js";
16
+ import { COMMUNITY_LICENSE_KEY } from "./licensing/community-license-key.js";
17
+ import { add2dImage, calcRelativeCoordsInMeters, createRecorderStore, markReferencePoint, recordGpsEvent, setZeroPos } from "./state/store.js";
18
+ import { buildRawGpsPoint, buildRecordGpsEventPayload, createGpsPositionHandler, eulerToQuaternion, extractOdomPosition, extractOdomRotation, getLastDeviceOrientation, resetCoordinatorState, updateDeviceOrientation } from "./state/recording-coordinator.js";
19
+ import { DepthSampler } from "./ar/depth-sampler.js";
20
+ import { DEFAULT_CAPTURE_CONFIG, ImageCaptureManager, MIN_VALID_IMAGE_BYTES } from "./ar/image-capture.js";
21
+ import { TrackingState, TrackingStateManager } from "./ar/tracking-state.js";
22
+ import { acquireCameraTexture } from "./ar/xr-camera-texture.js";
23
+ import { DEFAULT_RECORDING_OPTIONS, DEPTH_CONSTRAINTS, IMAGE_CONSTRAINTS, STORAGE_KEY, cloneRecordingOptions, loadRecordingOptions, resetRecordingOptions, saveRecordingOptions, validateDepthOptions, validateImageOptions, validateRecordingOptions } from "./state/recording-options.js";
24
+ import { SCENE_NODE } from "./ar/scene-node-names.js";
25
+ import { createCss3dRendererManager } from "./visualization/css3d-renderer-manager.js";
26
+ import { endARSession, getDepthSampleCount, getImageCaptureFrameCount, getLiveCss3dManager, initAR, setDepthCaptureCallback, setFrameCallback, setImageCaptureCallback, setTrackingCallbacks, setTrackingLostCallback, startDepthCapture, startImageCapture, stopDepthCapture, stopImageCapture } from "./ar/webxr-session.js";
27
+ import { DEFAULT_LERP_RATE, clampedAlpha } from "./visualization/lerp-utils.js";
28
+ import { createCameraFollower } from "./visualization/camera-follower.js";
29
+ import { createAlignmentLerper } from "./visualization/alignment-lerper.js";
30
+ import { VIS_COLORS } from "./visualization/vis-colors.js";
31
+ import { COMPASS_CUBE_DISTANCE, COMPASS_CUBE_SIZE, createGpsCompassCubes } from "./visualization/gps-compass-cubes.js";
32
+ import { disposeReplayScene, getAlignmentLerper, getCameraFollower, getCameraMode, getReplayState, initReplayScene, toggleCameraMode, updateOrbitTarget } from "./ar/replay-scene.js";
33
+ import { XR_ERROR_MESSAGES, XR_ERROR_MESSAGE_UNKNOWN, getXrErrorMessage } from "./ar/xr-error-handler.js";
34
+ import "./ar/index.js";
35
+ import { requestOrientationPermission, startGpsWatch, startOrientationWatch, stopGpsWatch, stopOrientationWatch } from "./sensors/gps.js";
36
+ import { GPS_ERROR_CODES, GPS_ERROR_MESSAGES, GPS_ERROR_MESSAGE_UNKNOWN, createGpsErrorHandler, getGpsErrorMessage } from "./sensors/gps-error-handler.js";
37
+ import "./sensors/index.js";
38
+ import "./ref-points/index.js";
39
+ import { computeFusedPath, fusedGpsFromOdom } from "./utils/fused-path.js";
40
+ import { mapWithConcurrencyLimit } from "./utils/concurrency.js";
41
+ import { formatFileSize } from "./utils/format-file-size.js";
42
+ import { listFormatter } from "./utils/list-formatter.js";
43
+ import "./utils/index.js";
44
+ import "./types/index.js";
45
+ import { MAX_ACTION_FILE_SIZE, loadActionsFromZip, loadGpsPathFromBlob, loadSessionMetadataFromBlob, readZipEntries } from "./storage/zip-reader.js";
46
+ import { NullStorageBackend } from "./storage/null-storage-backend.js";
47
+ import { replayRecording } from "./state/recording-replayer.js";
48
+ import { DEFAULT_MAX_DELAY_MS, ReplayEngine, computeInterActionDelay, extractActionTimestamp } from "./state/replay-engine.js";
49
+ import { wireStoreSubscribers } from "./state/store-subscribers.js";
50
+ import "./state/index.js";
51
+ import { importRefPointsFromFolder } from "./storage/ref-point-importer.js";
52
+ import { averageGpsPerRefPoint, flattenRefPointsToMarks, listRefPointIds, loadAllRefPoints, loadRefPoint, saveRefPointObservation } from "./storage/ref-point-loader.js";
53
+ import { downloadZip, exportAndDownloadSession, exportSessionAsZip, syncToExternalZip } from "./storage/zip-export.js";
54
+ import "./storage/index.js";
55
+ import { GpsEventVisualizer, gpsEventVisualizer } from "./visualization/gps-event-markers.js";
56
+ import { DEFAULT_LEAFLET_MAP_SIZE_PX, DEFAULT_WORLD_SIZE, DEFAULT_Z_OFFSET, LeafletMapOverlay } from "./visualization/leaflet-map-overlay.js";
57
+ import { DEFAULT_HEIGHT_OFFSET, DEFAULT_MAP_SIZE, DEFAULT_ZOOM, MapOverlay, latLonToTileXY, tileXYToLatLon } from "./visualization/map-overlay.js";
58
+ import { RefPointVisualizer, refPointVisualizer } from "./visualization/reference-points.js";
59
+ import "./visualization/index.js";
60
+ import "./licensing/index.js";
61
+ export { CAPTURE_FAILURE_WARNING, COMMUNITY_LICENSE_KEY, COMPASS_CUBE_DISTANCE, COMPASS_CUBE_SIZE, CameraBlitCapture, DEFAULT_BLIT_CONFIG, DEFAULT_CAPTURE_CONFIG, DEFAULT_CAPTURE_TRACKER_CONFIG, DEFAULT_HEIGHT_OFFSET, DEFAULT_LEAFLET_MAP_SIZE_PX, DEFAULT_LERP_RATE, DEFAULT_MAP_SIZE, DEFAULT_MAX_DELAY_MS, DEFAULT_RECORDING_OPTIONS, DEFAULT_WORLD_SIZE, DEFAULT_ZOOM, DEFAULT_Z_OFFSET, DEPTH_CONSTRAINTS, DepthSampler, GPS_ERROR_CODES, GPS_ERROR_MESSAGES, GPS_ERROR_MESSAGE_UNKNOWN, GpsEventVisualizer, H3_RESOLUTION, IMAGE_CONSTRAINTS, ImageCaptureManager, LeafletMapOverlay, LogLevel, MAX_ACTION_FILE_SIZE, MIN_VALID_IMAGE_BYTES, MapOverlay, NullStorageBackend, OpfsStorageBackend, RefPointVisualizer, ReplayEngine, SCENE_NODE, STORAGE_KEY, TrackingState, TrackingStateManager, VIS_COLORS, XR_ERROR_MESSAGES, XR_ERROR_MESSAGE_UNKNOWN, acquireCameraTexture, add2dImage, applyChromiumProjectionLayerWorkaround, approxDistanceMetres, averageGpsPerRefPoint, buildRawGpsPoint, buildRecordGpsEventPayload, calcRelativeCoordsInMeters, checkAllPermissions, checkCameraPermission, checkFileSystemPermission, checkGeolocationPermission, checkOrientationPermission, checkStorageQuota, checkWebXRSupport, clampedAlpha, clearLogBuffer, clearSessionRefPointUsage, cloneRecordingOptions, computeCaptureSize, computeFusedPath, computeInterActionDelay, createAlignmentLerper, createCameraFollower, createCaptureFailureTracker, createCss3dRendererManager, createFailureTracker, createGpsCompassCubes, createGpsErrorHandler, createGpsPositionHandler, createLogger, createRecorderStore, createSession, disposeMeshArray, disposeObject3D, disposeReplayScene, downloadZip, endARSession, endSession, eulerToQuaternion, exportAndDownloadSession, exportSessionAsZip, extractActionTimestamp, extractOdomPosition, extractOdomRotation, findNearbyRefPoint, flattenRefPointsToMarks, formatActionFilename, formatFileSize, formatFrameFilename, formatTimestamp, fusedGpsFromOdom, getAlignmentLerper, getCameraFollower, getCameraMode, getDepthSampleCount, getGlobalLogLevel, getGpsErrorMessage, getImageCaptureFrameCount, getLastDeviceOrientation, getLiveCss3dManager, getLogBuffer, getReplayState, getScenarioHandle, getScenariosRootHandle, getSessionHandle, getXrErrorMessage, gpsEventVisualizer, gpsToH3, h3RefsMatch, importRefPointsFromFolder, incrementRefPointUsage, initAR, initOpfsStorage, initReplayScene, initStorage, isH3Index, latLonToTileXY, listFormatter, listRefPointIds, listSessions, loadActionsFromZip, loadAllRefPoints, loadGpsPathFromBlob, loadRecordingOptions, loadRefPoint, loadSessionMetadataFromBlob, mapWithConcurrencyLimit, markReferencePoint, navigateTo, readZipEntries, recordDepthSample, recordGpsEvent, recordWriteFailure, refPointVisualizer, refPointsReducer, replayRecording, requestAllPermissions, requestCameraPermission, requestOrientationPermission as requestDeviceOrientationPermission, requestGeolocationPermission, requestOrientationPermission$1 as requestOrientationPermission, requestWebXRWithDepthPermission, resetCoordinatorState, resetFileSystemState, resetForNewSession, resetOpfsStorage, resetRecordingOptions, resetRefPointsState, resetSessionHandles, resetStorageState, saveRecordingOptions, saveRefPointObservation, selectCachedKnownRefPoints, setCurrentScenarioName, setDepthCaptureCallback, setFileSystemState, setFrameCallback, setGlobalLogLevel, setImageCaptureCallback, setImportedRefPoints, setTrackingCallbacks, setTrackingLostCallback, setZeroPos, startDepthCapture, startGpsWatch, startImageCapture, startOrientationWatch, startSession, startSession$1 as startStorageSession, stopDepthCapture, stopGpsWatch, stopImageCapture, stopOrientationWatch, subscribeToLogs, syncToExternalZip, tileXYToLatLon, toggleCameraMode, updateDeviceOrientation, updateOrbitTarget, validateDepthOptions, validateImageOptions, validateRecordingOptions, verifyWriteAccess, wireStoreSubscribers, writeAction, writeFrame };
@@ -0,0 +1,114 @@
1
+ import * as THREE from "three";
2
+ import { LatLong } from "gps-plus-slam-js";
3
+ import L from "leaflet";
4
+
5
+ //#region ../src/visualization/leaflet-map-overlay.d.ts
6
+ /** Default pixel size of the Leaflet map container */
7
+ declare const DEFAULT_LEAFLET_MAP_SIZE_PX = 600;
8
+ /** Default world-space size in meters (matches old MapOverlay) */
9
+ declare const DEFAULT_WORLD_SIZE = 10;
10
+ /** Default height offset below camera (negative = below) */
11
+ declare const DEFAULT_HEIGHT_OFFSET = -4;
12
+ /** Default forward offset from parent (negative = forward in parent-local Z) */
13
+ declare const DEFAULT_Z_OFFSET = -1;
14
+ /** Default zoom level for the Leaflet map */
15
+ declare const DEFAULT_ZOOM = 17;
16
+ /**
17
+ * Configuration options for the Leaflet map overlay.
18
+ */
19
+ interface LeafletMapOverlayOptions {
20
+ /** Pixel dimensions of the Leaflet map container (default: 600). */
21
+ readonly mapSizePx?: number;
22
+ /** World-space size in meters (default: 10). */
23
+ readonly worldSize?: number;
24
+ /** Height offset below parent in meters (default: -4). */
25
+ readonly heightOffset?: number;
26
+ /** Initial Leaflet zoom level (default: 17). */
27
+ readonly zoomLevel?: number;
28
+ /** Tile server URL template (default: OSM). */
29
+ readonly tileServerUrl?: string;
30
+ /**
31
+ * Object3D to attach the CSS3DObject to instead of the camera.
32
+ * Use CameraFollower.object3D for GPS-world-aligned map.
33
+ */
34
+ readonly mapParent?: THREE.Object3D;
35
+ /** Called when a map tile fails to load (e.g., offline, server error). */
36
+ readonly onTileError?: (error: unknown) => void;
37
+ /**
38
+ * DOM element to append the off-screen Leaflet container to.
39
+ * Defaults to `document.body`. In multi-instance or shadow-DOM scenarios
40
+ * pass a scoped element to avoid injecting nodes into `<body>`.
41
+ */
42
+ readonly offscreenRoot?: HTMLElement;
43
+ }
44
+ declare class LeafletMapOverlay {
45
+ private scene;
46
+ private camera;
47
+ private readonly mapParent;
48
+ private readonly worldSize;
49
+ private readonly heightOffset;
50
+ private readonly mapSizePx;
51
+ private readonly tileServerUrl;
52
+ private readonly onTileError?;
53
+ private readonly offscreenRoot;
54
+ private zoomLevel;
55
+ private gpsPosition;
56
+ private visible;
57
+ private mapContainer;
58
+ private leafletMap;
59
+ private tileLayer;
60
+ private cssObject;
61
+ private rawGpsPoints;
62
+ private fusedPoints;
63
+ private snapshotPoints;
64
+ private refPoints;
65
+ private userMarker;
66
+ private rawGpsPolyline;
67
+ private fusedPolyline;
68
+ private snapshotPolyline;
69
+ constructor(scene: THREE.Scene, camera: THREE.Camera, options?: LeafletMapOverlayOptions);
70
+ setGpsPosition(lat: number, lon: number): void;
71
+ getGpsPosition(): LatLong | null;
72
+ show(): void;
73
+ hide(): void;
74
+ toggle(): void;
75
+ isVisible(): boolean;
76
+ addRawGpsPoint(lat: number, lon: number): void;
77
+ addFusedPoint(lat: number, lon: number): void;
78
+ addAlignmentSnapshot(lat: number, lon: number): void;
79
+ addRefPoint(lat: number, lon: number, name: string): void;
80
+ addPriorRefPoint(lat: number, lon: number, name: string): void;
81
+ addPriorRefPoints(refPoints: Array<{
82
+ lat: number;
83
+ lon: number;
84
+ name: string;
85
+ }>): void;
86
+ clearPriorRefPoints(): void;
87
+ setZoomLevel(zoom: number): void;
88
+ getZoomLevel(): number;
89
+ /** Increment zoom level by 1 (clamped at MAX_ZOOM). */
90
+ zoomIn(): void;
91
+ /** Decrement zoom level by 1 (clamped at MIN_ZOOM). */
92
+ zoomOut(): void;
93
+ getWorldSize(): number;
94
+ getHeightOffset(): number;
95
+ getMapSizePx(): number;
96
+ /** Expose the Leaflet map instance for testing and advanced usage. */
97
+ getLeafletMap(): L.Map | null;
98
+ /**
99
+ * No-op — kept for backward compatibility with the frame-loop call
100
+ * in main.ts. The CSS3DObject is a child of the parent, so Three.js
101
+ * scene graph propagation handles positioning automatically.
102
+ */
103
+ updatePosition(): void;
104
+ dispose(): void;
105
+ private createLeafletMap;
106
+ private destroyLeafletMap;
107
+ private createCssObject;
108
+ private removeCssObject;
109
+ private applyBufferedOverlays;
110
+ private updateUserMarker;
111
+ private createRefPointMarker;
112
+ }
113
+ //#endregion
114
+ export { DEFAULT_Z_OFFSET as a, DEFAULT_ZOOM as i, DEFAULT_LEAFLET_MAP_SIZE_PX as n, LeafletMapOverlay as o, DEFAULT_WORLD_SIZE as r, LeafletMapOverlayOptions as s, DEFAULT_HEIGHT_OFFSET as t };
@@ -0,0 +1,20 @@
1
+ //#region ../src/visualization/lerp-utils.d.ts
2
+ /**
3
+ * Shared lerp utilities for visualization modules.
4
+ *
5
+ * Both alignment-lerper and camera-follower need the same smoothing
6
+ * rate constant and clamped-alpha formula. Centralised here (R3) to
7
+ * keep the two modules in sync.
8
+ */
9
+ /** Default speed multiplier — ~90 % convergence in ~0.3 s at 60 fps. */
10
+ declare const DEFAULT_LERP_RATE = 8;
11
+ /**
12
+ * Compute a frame-rate-independent lerp/slerp factor clamped to [0, 1].
13
+ *
14
+ * @param lerpRate Speed multiplier (higher = faster convergence).
15
+ * @param dt Delta time in seconds since last frame.
16
+ * @returns The interpolation alpha, guaranteed ≤ 1.0.
17
+ */
18
+ declare function clampedAlpha(lerpRate: number, dt: number): number;
19
+ //#endregion
20
+ export { clampedAlpha as n, DEFAULT_LERP_RATE as t };
@@ -0,0 +1,2 @@
1
+ import { t as COMMUNITY_LICENSE_KEY } from "../community-license-key-ChZLCJyO.js";
2
+ export { COMMUNITY_LICENSE_KEY };
@@ -0,0 +1,21 @@
1
+ //#region ../src/licensing/community-license-key.ts
2
+ /**
3
+ * Community license key for the gps-plus-slam-js core library.
4
+ *
5
+ * Generated by the core library maintainers and bundled with the open-source
6
+ * `gps-plus-slam-app-framework` package so that every example app (and any
7
+ * downstream app built on the framework) automatically uses a valid license
8
+ * without per-developer registration.
9
+ *
10
+ * The key has a rolling expiration of 12 months. Each release of the
11
+ * open-source packages renews it. Active users who regularly update their
12
+ * dependencies will never be affected by the expiration.
13
+ *
14
+ * For licenses with extended validity beyond the community key's scope,
15
+ * contact support@csutil.com.
16
+ *
17
+ * @see GpsPlusSlamJs/EULA.md §3 — License Key
18
+ */
19
+ const COMMUNITY_LICENSE_KEY = "eyJ0eXBlIjoiY29tbXVuaXR5IiwiZXhwIjoxODA4NzcyNDI3fQ.YYNf0IdqniZdMzRXCuvewxsQQ01XNywrKsfL5IpiJotfFJfqtrGg4u9z0QFhXeszPtUhnvgC8_oOnbOkbXPuAw";
20
+ //#endregion
21
+ export { COMMUNITY_LICENSE_KEY };
@@ -0,0 +1,2 @@
1
+ import { t as COMMUNITY_LICENSE_KEY } from "../community-license-key-ChZLCJyO.js";
2
+ export { COMMUNITY_LICENSE_KEY };
@@ -0,0 +1,2 @@
1
+ import { COMMUNITY_LICENSE_KEY } from "./community-license-key.js";
2
+ export { COMMUNITY_LICENSE_KEY };
@@ -0,0 +1,14 @@
1
+ //#region ../src/utils/list-formatter.d.ts
2
+ /**
3
+ * Shared list formatter for displaying comma-separated lists with "and".
4
+ *
5
+ * Uses English locale to match the app's UI language. If i18n support is added
6
+ * in the future, this should be updated to use the user's preferred locale.
7
+ *
8
+ * @example
9
+ * listFormatter.format(['Camera', 'Location']) // "Camera and Location"
10
+ * listFormatter.format(['A', 'B', 'C']) // "A, B, and C"
11
+ */
12
+ declare const listFormatter: Intl.ListFormat;
13
+ //#endregion
14
+ export { listFormatter as t };
@@ -0,0 +1,74 @@
1
+ //#region ../src/utils/logger.d.ts
2
+ /**
3
+ * Configurable Logger Utility
4
+ *
5
+ * Provides a simple logging API with configurable log levels.
6
+ * This allows disabling verbose logging in production while keeping
7
+ * it available for development and debugging.
8
+ *
9
+ * Also maintains an in-memory ring buffer of recent log entries
10
+ * for display in the expandable log panel UI.
11
+ *
12
+ * Sentry Integration:
13
+ * - All log levels add Sentry breadcrumbs for debugging context
14
+ * - log.error() with Error objects automatically reports to Sentry
15
+ */
16
+ /**
17
+ * Log levels in order of verbosity (lower = more verbose)
18
+ */
19
+ declare enum LogLevel {
20
+ DEBUG = 0,
21
+ INFO = 1,
22
+ WARN = 2,
23
+ ERROR = 3,
24
+ SILENT = 4
25
+ }
26
+ /**
27
+ * Structure for a single log entry in the buffer
28
+ */
29
+ interface LogEntry {
30
+ readonly timestamp: number;
31
+ readonly level: LogLevel;
32
+ readonly tag: string;
33
+ readonly message: string;
34
+ }
35
+ /**
36
+ * Subscribers that get notified when new log entries are added
37
+ */
38
+ type LogSubscriber = (entry: LogEntry) => void;
39
+ /**
40
+ * Get a copy of the current log buffer
41
+ * @returns Array of log entries (copy to prevent external mutation)
42
+ */
43
+ declare function getLogBuffer(): LogEntry[];
44
+ /**
45
+ * Clear all entries from the log buffer
46
+ */
47
+ declare function clearLogBuffer(): void;
48
+ /**
49
+ * Subscribe to new log entries
50
+ * @param callback - Function called when a new log entry is added
51
+ * @returns Unsubscribe function
52
+ */
53
+ declare function subscribeToLogs(callback: LogSubscriber): () => void;
54
+ /**
55
+ * Set the global log level
56
+ * @param level - The minimum level to log
57
+ */
58
+ declare function setGlobalLogLevel(level: LogLevel): void;
59
+ /**
60
+ * Get the current global log level
61
+ */
62
+ declare function getGlobalLogLevel(): LogLevel;
63
+ /**
64
+ * Logger interface for type safety
65
+ */
66
+ interface Logger {
67
+ debug: (...args: unknown[]) => void;
68
+ info: (...args: unknown[]) => void;
69
+ warn: (...args: unknown[]) => void;
70
+ error: (...args: unknown[]) => void;
71
+ }
72
+ declare function createLogger(tag: string): Logger;
73
+ //#endregion
74
+ export { createLogger as a, setGlobalLogLevel as c, clearLogBuffer as i, subscribeToLogs as l, LogLevel as n, getGlobalLogLevel as o, Logger as r, getLogBuffer as s, LogEntry as t };
@@ -0,0 +1,153 @@
1
+ import * as THREE from "three";
2
+ import { LatLong } from "gps-plus-slam-js";
3
+
4
+ //#region ../src/visualization/map-overlay.d.ts
5
+ /** Default zoom level for OSM tiles (higher = more detail, smaller area) */
6
+ declare const DEFAULT_ZOOM = 17;
7
+ /** Default map size in meters */
8
+ declare const DEFAULT_MAP_SIZE = 10;
9
+ /** Default height offset below camera (negative = below) */
10
+ declare const DEFAULT_HEIGHT_OFFSET = -4;
11
+ /**
12
+ * Interface for loading textures (allows mocking in tests).
13
+ */
14
+ interface TextureLoaderInterface {
15
+ load(url: string, onLoad?: (texture: THREE.Texture) => void, onProgress?: (event: ProgressEvent) => void, onError?: (err: unknown) => void): THREE.Texture;
16
+ }
17
+ /**
18
+ * Configuration options for the map overlay.
19
+ */
20
+ interface MapOverlayOptions {
21
+ /** Size of the map in meters (default: 10) */
22
+ readonly mapSize?: number;
23
+ /** Height offset below camera in meters (default: -4) */
24
+ readonly heightOffset?: number;
25
+ /** OSM zoom level 0-19 (default: 17) */
26
+ readonly zoomLevel?: number;
27
+ /** Base URL for tile server (default: OSM) */
28
+ readonly tileServerUrl?: string;
29
+ /** Custom texture loader (for testing) */
30
+ readonly textureLoader?: TextureLoaderInterface;
31
+ /** Called when a map tile fails to load (e.g., offline, server error) */
32
+ readonly onTileError?: (error: unknown) => void;
33
+ /**
34
+ * Object3D to attach the map mesh to instead of the camera.
35
+ * When provided, the mesh is added to mapParent (e.g., a CameraFollower)
36
+ * so the map stays GPS-world-aligned and does not rotate with the camera.
37
+ * Defaults to camera when not provided (backward-compatible).
38
+ */
39
+ readonly mapParent?: THREE.Object3D;
40
+ }
41
+ /**
42
+ * Convert latitude/longitude to tile X/Y coordinates.
43
+ * Uses Web Mercator projection (EPSG:3857).
44
+ *
45
+ * @param lat - Latitude in degrees
46
+ * @param lon - Longitude in degrees
47
+ * @param zoom - Zoom level (0-19)
48
+ * @returns [tileX, tileY] as integers
49
+ */
50
+ declare function latLonToTileXY(lat: number, lon: number, zoom: number): [number, number];
51
+ /**
52
+ * Convert tile X/Y coordinates back to latitude/longitude.
53
+ * Returns the top-left corner of the tile.
54
+ *
55
+ * @param x - Tile X coordinate
56
+ * @param y - Tile Y coordinate
57
+ * @param zoom - Zoom level
58
+ * @returns [lat, lon] in degrees
59
+ */
60
+ declare function tileXYToLatLon(x: number, y: number, zoom: number): [number, number];
61
+ /**
62
+ * Interactive 3D map overlay that displays OSM tiles in the AR scene.
63
+ * The map floats below the user and follows their horizontal movement.
64
+ */
65
+ declare class MapOverlay {
66
+ private scene;
67
+ private camera;
68
+ private options;
69
+ private onTileError?;
70
+ private mapParent;
71
+ private mesh;
72
+ private material;
73
+ private geometry;
74
+ private textureLoader;
75
+ private gpsPosition;
76
+ private currentTile;
77
+ private visible;
78
+ /**
79
+ * Create a new map overlay.
80
+ *
81
+ * @param scene - The Three.js scene to add the map to
82
+ * @param camera - The camera to follow (for positioning)
83
+ * @param options - Configuration options
84
+ */
85
+ constructor(scene: THREE.Scene, camera: THREE.Camera, options?: MapOverlayOptions);
86
+ /**
87
+ * Set the current GPS position for tile loading.
88
+ *
89
+ * @param lat - Latitude in degrees
90
+ * @param lon - Longitude in degrees
91
+ */
92
+ setGpsPosition(lat: number, lon: number): void;
93
+ /**
94
+ * Get the current GPS position.
95
+ */
96
+ getGpsPosition(): LatLong | null;
97
+ /**
98
+ * Show the map overlay.
99
+ * Requires GPS position to be set first.
100
+ */
101
+ show(): void;
102
+ /**
103
+ * Hide the map overlay.
104
+ */
105
+ hide(): void;
106
+ /**
107
+ * Toggle map visibility.
108
+ */
109
+ toggle(): void;
110
+ /**
111
+ * Check if the map is currently visible.
112
+ */
113
+ isVisible(): boolean;
114
+ /**
115
+ * Get the map size in meters.
116
+ */
117
+ getMapSize(): number;
118
+ /**
119
+ * Get the height offset below camera.
120
+ */
121
+ getHeightOffset(): number;
122
+ /**
123
+ * Get the mesh (for testing).
124
+ */
125
+ getMesh(): THREE.Mesh | null;
126
+ /**
127
+ * Update the map position to follow the camera.
128
+ *
129
+ * Since the mesh is now a child of the camera, Three.js handles
130
+ * world-space transforms automatically. This method is kept for
131
+ * backward compatibility but is a no-op (position is set once in
132
+ * createMesh and doesn't need per-frame updates).
133
+ */
134
+ updatePosition(): void;
135
+ /**
136
+ * Clean up resources.
137
+ */
138
+ dispose(): void;
139
+ /**
140
+ * Create the map mesh (plane facing up).
141
+ */
142
+ private createMesh;
143
+ /**
144
+ * Remove the mesh from the camera.
145
+ */
146
+ private removeMesh;
147
+ /**
148
+ * Update the tile texture based on current GPS position.
149
+ */
150
+ private updateTile;
151
+ }
152
+ //#endregion
153
+ export { MapOverlayOptions as a, tileXYToLatLon as c, MapOverlay as i, DEFAULT_MAP_SIZE as n, TextureLoaderInterface as o, DEFAULT_ZOOM as r, latLonToTileXY as s, DEFAULT_HEIGHT_OFFSET as t };
@@ -0,0 +1,11 @@
1
+ import { n as SessionMetadata } from "./opfs-storage-ChOzF_Wp.js";
2
+ import { t as StorageBackend } from "./storage-backend-BcEItnFr.js";
3
+
4
+ //#region ../src/storage/null-storage-backend.d.ts
5
+ declare class NullStorageBackend implements StorageBackend {
6
+ writeAction(_action: unknown, _index: number): Promise<void>;
7
+ writeFrame(_blob: Blob, _index: number): Promise<void>;
8
+ writeSessionMetadata(_metadata: SessionMetadata): Promise<void>;
9
+ }
10
+ //#endregion
11
+ export { NullStorageBackend as t };