gps-plus-slam-app-framework 1.9.1 → 1.11.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.
- package/README.md +14 -14
- package/dist/{absolute-orientation-BAxc15J6.d.ts → absolute-orientation-Dj1One3y.d.ts} +1 -1
- package/dist/{accuracy-circles-DkWBkF5g.d.ts → accuracy-circles-BHz7yVIL.d.ts} +1 -1
- package/dist/{alignment-lerper-gD70k7Fq.d.ts → alignment-lerper-DAHicRON.d.ts} +0 -6
- package/dist/{app-selectors-BbAiCRUT.d.ts → app-selectors-DG0ZqaeI.d.ts} +23 -13
- package/dist/ar/ar-crash-isolation.d.ts +2 -0
- package/dist/ar/ar-crash-isolation.js +40 -0
- package/dist/ar/bresenham3d.d.ts +1 -1
- package/dist/ar/camera-blit-capture.d.ts +1 -1
- package/dist/ar/capability-checker.d.ts +1 -1
- package/dist/ar/capture-failure-tracker.d.ts +1 -1
- package/dist/ar/capture-motion-gate.d.ts +2 -0
- package/dist/{capture-motion-gate-_NdTSwKi.js → ar/capture-motion-gate.js} +25 -2
- package/dist/ar/chromium-camera-access-workaround.d.ts +1 -1
- package/dist/ar/chromium-camera-access-workaround.js +1 -1
- package/dist/ar/depth-grid-lookup.d.ts +1 -1
- package/dist/ar/depth-occluder.d.ts +1 -1
- package/dist/ar/depth-occluder.js +1 -1
- package/dist/ar/depth-sampler.d.ts +2 -2
- package/dist/ar/depth-sampler.js +16 -5
- package/dist/ar/depth-unprojection.d.ts +1 -1
- package/dist/ar/enable-gps-ar.d.ts +1 -1
- package/dist/ar/enable-gps-ar.js +2 -2
- package/dist/ar/image-capture.d.ts +1 -1
- package/dist/ar/image-capture.js +1 -1
- package/dist/ar/image-quality.d.ts +2 -2
- package/dist/ar/image-quality.js +159 -8
- package/dist/ar/index.d.ts +32 -30
- package/dist/ar/index.js +15 -14
- package/dist/ar/occlusion-mesh-worker.d.ts +2 -2
- package/dist/ar/occlusion-mesh-worker.js +1 -1
- package/dist/ar/occupancy-grid.d.ts +1 -1
- package/dist/ar/occupancy-grid.js +2 -2
- package/dist/ar/occupancy-mesher.d.ts +1 -1
- package/dist/ar/occupancy-mesher.js +4 -5
- package/dist/ar/qr/index.d.ts +11 -0
- package/dist/ar/qr/index.js +11 -0
- package/dist/ar/{planar-pnp.d.ts → qr/planar-pnp.d.ts} +1 -1
- package/dist/ar/{planar-pnp.js → qr/planar-pnp.js} +1 -1
- package/dist/ar/qr/qr-debug-view.d.ts +2 -0
- package/dist/ar/{qr-debug-view.js → qr/qr-debug-view.js} +2 -2
- package/dist/ar/{qr-derived-pose.d.ts → qr/qr-derived-pose.d.ts} +1 -1
- package/dist/ar/{qr-derived-pose.js → qr/qr-derived-pose.js} +2 -2
- package/dist/ar/{qr-detection-controller.d.ts → qr/qr-detection-controller.d.ts} +1 -1
- package/dist/ar/qr/qr-detection-controller.js +2 -0
- package/dist/ar/{qr-frontend.d.ts → qr/qr-frontend.d.ts} +1 -1
- package/dist/ar/{qr-frontend.js → qr/qr-frontend.js} +1 -1
- package/dist/ar/{qr-pose.d.ts → qr/qr-pose.d.ts} +1 -1
- package/dist/ar/{qr-pose.js → qr/qr-pose.js} +1 -1
- package/dist/ar/qr/qr-size-depth-context.d.ts +3 -0
- package/dist/ar/{qr-size-depth-context.js → qr/qr-size-depth-context.js} +4 -4
- package/dist/ar/{qr-size-measurer.d.ts → qr/qr-size-measurer.d.ts} +1 -1
- package/dist/ar/qr/qr-size-measurer.js +2 -0
- package/dist/ar/replay-scene.d.ts +1 -1
- package/dist/ar/replay-scene.js +15 -13
- package/dist/ar/scene-node-names.d.ts +1 -1
- package/dist/ar/webxr-nue-basis.d.ts +1 -1
- package/dist/ar/webxr-session.d.ts +4 -4
- package/dist/ar/webxr-session.js +2 -2
- package/dist/ar/xr-error-handler.d.ts +1 -1
- package/dist/ar/xr-frame-loop.d.ts +1 -1
- package/dist/ar/xr-frame-loop.js +1 -1
- package/dist/ar-crash-isolation-DlXCGzMf.d.ts +52 -0
- package/dist/{ar-types-Cc5yvBwn.d.ts → ar-types-D6PYS4bc.d.ts} +16 -1
- package/dist/{ar-world-group-alignment-Cfg0trC3.d.ts → ar-world-group-alignment-BdS_h8Nf.d.ts} +2 -2
- package/dist/{capability-checker-BTTpygvZ.d.ts → capability-checker-BZ3_x1YL.d.ts} +1 -1
- package/dist/capture-motion-gate-CPwLekNf.d.ts +120 -0
- package/dist/{chromium-camera-access-workaround-C6yJLXz9.d.ts → chromium-camera-access-workaround-BHR4clTE.d.ts} +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/{create-slam-app-store-D1QSMuKu.d.ts → create-slam-app-store-DFm5K9Ob.d.ts} +15 -6
- package/dist/{create-slam-app-store-DXiAnJwR.js → create-slam-app-store-oK9bnqyI.js} +10 -8
- package/dist/{depth-grid-lookup-D5atpNZ3.d.ts → depth-grid-lookup-CCuzlqUo.d.ts} +1 -1
- package/dist/{depth-sampler-CwObAwEA.d.ts → depth-sampler-CS2jAFw4.d.ts} +15 -5
- package/dist/{depth-unprojection-DRdBU90S.d.ts → depth-unprojection-ET3Gwedf.d.ts} +1 -1
- package/dist/device-orientation-cache-j-kLP8he.js +20 -0
- package/dist/{enable-gps-ar-BBtRO2FJ.d.ts → enable-gps-ar-D_xEHzh5.d.ts} +9 -4
- package/dist/{file-system-utils-DueXHxo9.d.ts → file-system-utils-BHI0rXr9.d.ts} +1 -1
- package/dist/{frame-conversions-DDcNHkTb.d.ts → frame-conversions-CH7E2Iv_.d.ts} +1 -1
- package/dist/{fused-path-C5pp0PJU.d.ts → fused-path-DOKzVMiO.d.ts} +1 -1
- package/dist/geo/h3-proximity.d.ts +1 -1
- package/dist/geo/h3-proximity.js +1 -1
- package/dist/geo/index.d.ts +1 -1
- package/dist/{geodesic-angle-BTldfFgs.js → geodesic-angle-CZ_Ow90I.js} +2 -2
- package/dist/{gps-CDKDQokE.d.ts → gps-CnhYrJCa.d.ts} +8 -1
- package/dist/{gps-anchor-CEjGqEVD.d.ts → gps-anchor-BaqyRsPC.d.ts} +14 -4
- package/dist/{gps-ar-pose-sampler-DEGNk2CI.d.ts → gps-ar-pose-sampler-BuuUuK-D.d.ts} +1 -1
- package/dist/{gps-event-coordinator-BWpgBrHq.d.ts → gps-event-coordinator-Cruoe5I-.d.ts} +16 -29
- package/dist/{gps-event-markers-Di2nBzx-.d.ts → gps-event-markers-y2b2aVl6.d.ts} +35 -1
- package/dist/{h3-proximity-D0GTHQmr.d.ts → h3-proximity-BaAulrnM.d.ts} +1 -1
- package/dist/{image-capture-Bp6Pd4Md.d.ts → image-capture-BevgKpoO.d.ts} +6 -6
- package/dist/{image-capture-DVcuqMtX.js → image-capture-C4DwxC10.js} +12 -10
- package/dist/{image-quality-BMx2ko9-.d.ts → image-quality--HLuyJ2r.d.ts} +44 -2
- package/dist/{index-cCQWuYqy.d.ts → index-BWVwd9Zw.d.ts} +10 -74
- package/dist/{index-B6iBnO_K.d.ts → index-ClmnNJ6-.d.ts} +1 -1
- package/dist/index-Dxb6ATNK.d.ts +64 -0
- package/dist/index.d.ts +79 -79
- package/dist/index.js +26 -24
- package/dist/{leaflet-map-overlay-CBWPvaX9.js → leaflet-map-overlay-CTcTVmL1.js} +1 -1
- package/dist/{leaflet-map-overlay-C8GS4cUy.d.ts → leaflet-map-overlay-CksetpTt.d.ts} +1 -1
- package/dist/{map-data-CUnTzRIC.d.ts → map-data-D8cCqpOM.d.ts} +3 -3
- package/dist/{map-data-1tF5gcYV.js → map-data-DkhsYDGM.js} +1 -1
- package/dist/{map-overlay-draw-6WJeq0Kg.d.ts → map-overlay-draw-Cy-klqoA.d.ts} +1 -1
- package/dist/median-DDBrZGP0.js +44 -0
- package/dist/{null-storage-backend-B1-jlpin.d.ts → null-storage-backend-DXXuwG8T.d.ts} +2 -2
- package/dist/{occlusion-mesh-kXCQ2FM1.d.ts → occlusion-mesh-BWe2PrVi.d.ts} +23 -12
- package/dist/{occupancy-grid-BV7RhB7I.d.ts → occupancy-grid-CYBdmMOo.d.ts} +3 -3
- package/dist/{occupancy-mesher-C2ecWhNp.d.ts → occupancy-mesher-B4Bv4BTk.d.ts} +4 -9
- package/dist/{opfs-storage-backend-D6Z03fML.d.ts → opfs-storage-backend-D1ZpeNEL.d.ts} +2 -2
- package/dist/{persistence-middleware-CG-t08X4.d.ts → persistence-middleware-Cun4aF5M.d.ts} +13 -3
- package/dist/{planar-pnp-D7bc_rLX.d.ts → planar-pnp-ByxwDEyM.d.ts} +2 -2
- package/dist/{ar-BqCudtqE.js → qr-CTp5xI83.js} +24 -34
- package/dist/{qr-debug-view-BJooqbiP.d.ts → qr-debug-view-CGlITU09.d.ts} +2 -2
- package/dist/{qr-derived-pose-BwNWn8oV.d.ts → qr-derived-pose-DZPxZd9C.d.ts} +3 -3
- package/dist/{qr-detected-slice-TzVb8bij.d.ts → qr-detected-slice-mfyxD2-M.d.ts} +9 -8
- package/dist/{qr-detection-controller-Bo4XfQTP.d.ts → qr-detection-controller-C5NII-vs.d.ts} +4 -4
- package/dist/{qr-detection-controller-B-tLVd-S.js → qr-detection-controller-DXc1yHRf.js} +3 -3
- package/dist/{qr-frontend-BPURlh3S.d.ts → qr-frontend-QzKZSqB-.d.ts} +2 -2
- package/dist/{qr-pose-y3vaEd6x.d.ts → qr-pose-21fRDcFO.d.ts} +1 -1
- package/dist/{qr-pose-aggregation-DBiaLW0O.js → qr-pose-aggregation-Cp0Mtg_j.js} +7 -12
- package/dist/{qr-pose-aggregation-CypnmjA-.d.ts → qr-pose-aggregation-mABSN0AW.d.ts} +2 -2
- package/dist/{qr-size-depth-context-apAOmbrZ.d.ts → qr-size-depth-context-CMDv6T29.d.ts} +3 -3
- package/dist/{qr-size-measurer-DxiMqRUw.d.ts → qr-size-measurer-rVFf4AdM.d.ts} +5 -5
- package/dist/{qr-size-measurer-DLb33geH.js → qr-size-measurer-zZB9S1va.js} +9 -15
- package/dist/{recording-replayer-BJ8Lf0QY.d.ts → recording-replayer-qT2EM1Qs.d.ts} +2 -2
- package/dist/{recording-slice-BW8SiLo1.d.ts → recording-slice-DXw5-UvO.d.ts} +10 -5
- package/dist/{replay-engine-DmCAc7WM.d.ts → replay-engine-B1H_kLhK.d.ts} +1 -1
- package/dist/{replay-scene-zJ8SFDjE.d.ts → replay-scene-BJeO36YT.d.ts} +12 -5
- package/dist/sensors/absolute-orientation.d.ts +1 -1
- package/dist/sensors/absolute-orientation.js +1 -1
- package/dist/sensors/gps-error-handler.d.ts +1 -1
- package/dist/sensors/gps.d.ts +1 -1
- package/dist/sensors/gps.js +10 -8
- package/dist/sensors/index.d.ts +3 -3
- package/dist/sensors/index.js +1 -1
- package/dist/sensors/permission-checker.js +71 -40
- package/dist/{session-disposers-BPrMplIC.js → session-disposers-B7hUN90w.js} +1 -1
- package/dist/state/app-selectors.d.ts +1 -1
- package/dist/state/combined-root-state.d.ts +1 -1
- package/dist/state/create-slam-app-store.d.ts +1 -1
- package/dist/state/create-slam-app-store.js +1 -1
- package/dist/state/gps-ar-pose-sampler.d.ts +2 -3
- package/dist/state/gps-ar-pose-sampler.js +1 -1
- package/dist/state/gps-event-coordinator.d.ts +2 -1
- package/dist/state/gps-event-coordinator.js +4 -46
- package/dist/state/index.d.ts +19 -20
- package/dist/state/index.js +6 -5
- package/dist/state/persistence-middleware.d.ts +2 -2
- package/dist/state/persistence-middleware.js +24 -15
- package/dist/state/qr-detected-slice.d.ts +3 -3
- package/dist/state/qr-detected-slice.js +11 -15
- package/dist/state/recording-replayer.d.ts +2 -2
- package/dist/state/recording-replayer.js +1 -1
- package/dist/state/recording-slice.d.ts +1 -1
- package/dist/state/replay-engine.d.ts +1 -1
- package/dist/state/store-subscribers.d.ts +2 -2
- package/dist/state/store-subscribers.js +23 -6
- package/dist/state/subscribe-to-selector.d.ts +1 -1
- package/dist/state/tracking-quality.d.ts +1 -1
- package/dist/state/tracking-quality.js +14 -11
- package/dist/state/tracking-slice.d.ts +1 -1
- package/dist/{state-BeKvn4B-.js → state-CDF5LvsO.js} +2 -4
- package/dist/storage/file-system-utils.d.ts +1 -1
- package/dist/storage/file-system-utils.js +1 -1
- package/dist/storage/index.d.ts +8 -8
- package/dist/storage/null-storage-backend.d.ts +1 -1
- package/dist/storage/opfs-storage-backend.d.ts +1 -1
- package/dist/storage/opfs-storage.d.ts +1 -1
- package/dist/storage/storage-backend.d.ts +1 -1
- package/dist/storage/zip-coverage-embed.d.ts +1 -1
- package/dist/storage/zip-coverage-embed.js +1 -1
- package/dist/storage/zip-export.d.ts +1 -1
- package/dist/storage/zip-export.js +10 -4
- package/dist/storage/zip-reader.d.ts +1 -1
- package/dist/{storage-backend-sEtmM4yW.d.ts → storage-backend-BX7egQKi.d.ts} +1 -1
- package/dist/{store-subscribers-DJUErW-o.d.ts → store-subscribers-CWHToX6N.d.ts} +2 -2
- package/dist/{subscribe-to-selector-dQV8SpsO.d.ts → subscribe-to-selector-j-eOYybQ.d.ts} +1 -1
- package/dist/test-utils/browser-mocks.d.ts +1 -1
- package/dist/test-utils/zip-round-trip-helpers.d.ts +1 -1
- package/dist/{tracking-slice-DMkHlbny.d.ts → tracking-slice-BAbcZK-Y.d.ts} +3 -2
- package/dist/types/ar-types.d.ts +2 -2
- package/dist/types/ar-types.js +31 -1
- package/dist/types/geo-types.d.ts +1 -1
- package/dist/types/index.d.ts +3 -3
- package/dist/types/index.js +2 -1
- package/dist/utils/concurrency.d.ts +1 -1
- package/dist/utils/failure-tracker.d.ts +1 -1
- package/dist/utils/format-file-size.d.ts +1 -1
- package/dist/utils/fused-path.d.ts +1 -1
- package/dist/utils/fused-path.js +1 -1
- package/dist/utils/index.d.ts +7 -7
- package/dist/utils/index.js +1 -1
- package/dist/utils/list-formatter.d.ts +1 -1
- package/dist/utils/logger.d.ts +1 -1
- package/dist/utils/logger.js +30 -20
- package/dist/visualization/accuracy-circles.d.ts +1 -1
- package/dist/visualization/accuracy-circles.js +1 -1
- package/dist/visualization/alignment-lerper.d.ts +1 -1
- package/dist/visualization/alignment-lerper.js +20 -5
- package/dist/visualization/ar-world-group-alignment.d.ts +1 -1
- package/dist/visualization/ar-world-group-alignment.js +2 -2
- package/dist/visualization/camera-follower.d.ts +1 -1
- package/dist/visualization/css3d-renderer-manager.d.ts +1 -1
- package/dist/visualization/frame-conversions.d.ts +1 -1
- package/dist/visualization/frustum-visibility.d.ts +1 -1
- package/dist/visualization/gps-anchor.d.ts +1 -1
- package/dist/visualization/gps-anchor.js +44 -19
- package/dist/visualization/gps-compass-cubes.d.ts +1 -1
- package/dist/visualization/gps-event-markers.d.ts +2 -2
- package/dist/visualization/gps-event-markers.js +27 -6
- package/dist/visualization/hit-test-reticle.d.ts +1 -1
- package/dist/visualization/index.d.ts +19 -20
- package/dist/visualization/index.js +4 -5
- package/dist/visualization/leaflet-map-overlay.d.ts +1 -1
- package/dist/visualization/leaflet-map-overlay.js +1 -1
- package/dist/visualization/lerp-utils.d.ts +1 -1
- package/dist/visualization/map-data.d.ts +1 -1
- package/dist/visualization/map-data.js +1 -1
- package/dist/visualization/map-overlay-draw.d.ts +1 -1
- package/dist/visualization/occluder-mesh-driver.d.ts +2 -2
- package/dist/visualization/occluder-mesh-driver.js +1 -1
- package/dist/visualization/occlusion-mesh.d.ts +2 -2
- package/dist/visualization/occlusion-mesh.js +29 -14
- package/dist/visualization/three-dispose.d.ts +1 -1
- package/dist/visualization/vis-colors.d.ts +1 -1
- package/dist/{webxr-session-BWCpGd-2.d.ts → webxr-session-DefwObIu.d.ts} +143 -193
- package/dist/{webxr-session-BCP2XK7k.js → webxr-session-OyR3YbTq.js} +154 -284
- package/dist/{xr-frame-loop-DX3JPpAU.d.ts → xr-frame-loop-BiZvgqP7.d.ts} +1 -1
- package/dist/{zip-coverage-embed-ncVbaZAz.d.ts → zip-coverage-embed-CyoX7XL7.d.ts} +1 -1
- package/package.json +5 -3
- package/dist/ar/qr-debug-view.d.ts +0 -2
- package/dist/ar/qr-detection-controller.js +0 -2
- package/dist/ar/qr-size-depth-context.d.ts +0 -3
- package/dist/ar/qr-size-measurer.js +0 -2
- package/dist/capture-motion-gate-BGoAMkmf.d.ts +0 -24
- package/dist/map-overlay-BCQgvIgU.d.ts +0 -153
- package/dist/recording-options-DYKWVI93.d.ts +0 -693
- package/dist/state/recording-options.d.ts +0 -2
- package/dist/state/recording-options.js +0 -591
- package/dist/visualization/map-overlay.d.ts +0 -2
- package/dist/visualization/map-overlay.js +0 -241
- /package/dist/{bresenham3d-DGc4nIb-.d.ts → bresenham3d-D-t9i_b5.d.ts} +0 -0
- /package/dist/{camera-blit-capture-BimSdyih.d.ts → camera-blit-capture-BlC-arRb.d.ts} +0 -0
- /package/dist/{camera-follower-DfBm2J5i.d.ts → camera-follower-CO_ibF2o.d.ts} +0 -0
- /package/dist/{capture-failure-tracker-_BVfhpxv.d.ts → capture-failure-tracker-BAUKjtXU.d.ts} +0 -0
- /package/dist/{cell-key-DIB4rOTV.js → cell-key-Bj-eYTLA.js} +0 -0
- /package/dist/{concurrency-DPeGBH0X.d.ts → concurrency-DW0jQo3G.d.ts} +0 -0
- /package/dist/{css3d-renderer-manager-CPpVtvgs.d.ts → css3d-renderer-manager-CJjHtCMT.d.ts} +0 -0
- /package/dist/{failure-tracker-CeKf5HIc.d.ts → failure-tracker-B7fzPfZo.d.ts} +0 -0
- /package/dist/{format-file-size-DxN-EBLc.d.ts → format-file-size-Da8rZgfs.d.ts} +0 -0
- /package/dist/{frustum-visibility-CokkgS_i.d.ts → frustum-visibility-COPfzruF.d.ts} +0 -0
- /package/dist/{geo-types-DrGVu8nS.d.ts → geo-types-BfDK8kJu.d.ts} +0 -0
- /package/dist/{gps-compass-cubes-1mooS3BS.d.ts → gps-compass-cubes-CT3TWctJ.d.ts} +0 -0
- /package/dist/{gps-error-handler-C34GQuTu.d.ts → gps-error-handler-DjVuLXve.d.ts} +0 -0
- /package/dist/{hit-test-reticle-CaQbrhbk.d.ts → hit-test-reticle-DhnCMOsc.d.ts} +0 -0
- /package/dist/{index-DXPVzOpP.d.ts → index-CjxbDm8W.d.ts} +0 -0
- /package/dist/{index-D74JTX4I.d.ts → index-Nr3qg4IH.d.ts} +0 -0
- /package/dist/{lerp-utils-Qs8OhumS.d.ts → lerp-utils-bwMwVCpU.d.ts} +0 -0
- /package/dist/{list-formatter-DLFDnS70.d.ts → list-formatter-1ttG18MQ.d.ts} +0 -0
- /package/dist/{logger-CqTd5Kpk.d.ts → logger-B4StJUDb.d.ts} +0 -0
- /package/dist/{opfs-storage-CTkxvxN4.d.ts → opfs-storage-S_odkCk1.d.ts} +0 -0
- /package/dist/{scene-node-names-CGb-ylBd.d.ts → scene-node-names-DWzhE7Ro.d.ts} +0 -0
- /package/dist/{three-dispose-BMOAmPhb.d.ts → three-dispose-C3mnKQR5.d.ts} +0 -0
- /package/dist/{vis-colors-C7HI0u9_.d.ts → vis-colors-CoSpbZEO.d.ts} +0 -0
- /package/dist/{webxr-nue-basis-CaCnYxuq.d.ts → webxr-nue-basis-C3vTqkE2.d.ts} +0 -0
- /package/dist/{xr-error-handler-uVGDu9IX.d.ts → xr-error-handler-D9y5r8ok.d.ts} +0 -0
- /package/dist/{zip-export-CtiUnAlJ.d.ts → zip-export-CuBimX1J.d.ts} +0 -0
- /package/dist/{zip-reader-BzENzMH6.d.ts → zip-reader-BHc_b_iA.d.ts} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as recordWriteFailure, i as recordDepthSample, n as SessionMetadata, o as recordingReducer, r as endSession, s as startSession, t as RecordingState } from "../recording-slice-
|
|
1
|
+
import { a as recordWriteFailure, i as recordDepthSample, n as SessionMetadata, o as recordingReducer, r as endSession, s as startSession, t as RecordingState } from "../recording-slice-DXw5-UvO.js";
|
|
2
2
|
export { RecordingState, SessionMetadata, endSession, recordDepthSample, recordWriteFailure, recordingReducer, startSession };
|
|
@@ -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-
|
|
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-B1H_kLhK.js";
|
|
2
2
|
export { CompleteCallback, DEFAULT_MAX_DELAY_MS, ErrorCallback, ProgressCallback, ReplayAction, ReplayEngine, ReplayState, computeInterActionDelay, extractActionTimestamp };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { t as SubscribableStore } from "../subscribe-to-selector-
|
|
2
|
-
import { n as wireStoreSubscribers, t as StoreSubscriberDeps } from "../store-subscribers-
|
|
1
|
+
import { t as SubscribableStore } from "../subscribe-to-selector-j-eOYybQ.js";
|
|
2
|
+
import { n as wireStoreSubscribers, t as StoreSubscriberDeps } from "../store-subscribers-CWHToX6N.js";
|
|
3
3
|
export { StoreSubscriberDeps, SubscribableStore, wireStoreSubscribers };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { createLogger } from "../utils/logger.js";
|
|
2
2
|
import { selectAlignmentMatrix, selectGpsPositions, selectOdometryPositions, selectOdometryRotations, selectZeroReference } from "./app-selectors.js";
|
|
3
|
-
import { t as buildMapData } from "../map-data-
|
|
3
|
+
import { t as buildMapData } from "../map-data-DkhsYDGM.js";
|
|
4
4
|
import { subscribeToSelector } from "./subscribe-to-selector.js";
|
|
5
|
-
import { calcGpsCoords } from "gps-plus-slam-js";
|
|
6
5
|
import { mat4, vec3 } from "gl-matrix";
|
|
6
|
+
import { calcGpsCoords } from "gps-plus-slam-js";
|
|
7
7
|
//#region ../src/state/store-subscribers.ts
|
|
8
8
|
const log = createLogger("StoreSubscribers");
|
|
9
9
|
/**
|
|
@@ -42,21 +42,38 @@ function wireStoreSubscribers(store, deps) {
|
|
|
42
42
|
* fused-dot feedback, Slice B), or `null` when there is no overlay or it
|
|
43
43
|
* has no `render` (the minimal `setGpsPosition`-only dep shape).
|
|
44
44
|
*/
|
|
45
|
+
let lastGpsPositionsRef = null;
|
|
46
|
+
let lastOdomPositionsRef = null;
|
|
47
|
+
let lastMatrixRef = null;
|
|
48
|
+
let lastZeroRef = null;
|
|
49
|
+
let lastSnapshotCount = -1;
|
|
50
|
+
let lastMapData = null;
|
|
45
51
|
function rebuildMap() {
|
|
46
52
|
if (!deps.mapOverlay?.render) return null;
|
|
47
53
|
const state = store.getState();
|
|
54
|
+
const gpsPositions = selectGpsPositions(state);
|
|
55
|
+
const odometryPositions = selectOdometryPositions(state);
|
|
56
|
+
const alignmentMatrix = selectAlignmentMatrix(state);
|
|
57
|
+
const zeroRef = selectZeroReference(state);
|
|
58
|
+
if (gpsPositions === lastGpsPositionsRef && odometryPositions === lastOdomPositionsRef && alignmentMatrix === lastMatrixRef && zeroRef === lastZeroRef && alignmentSnapshotGps.length === lastSnapshotCount) return lastMapData;
|
|
48
59
|
const data = buildMapData({
|
|
49
|
-
rawGpsPath:
|
|
60
|
+
rawGpsPath: gpsPositions.map((p) => ({
|
|
50
61
|
lat: p.latitude,
|
|
51
62
|
lng: p.longitude,
|
|
52
63
|
accuracy: p.latLongAccuracy
|
|
53
64
|
})),
|
|
54
|
-
odometryPositions
|
|
65
|
+
odometryPositions,
|
|
55
66
|
odometryRotations: selectOdometryRotations(state),
|
|
56
|
-
alignmentMatrix
|
|
57
|
-
zeroRef
|
|
67
|
+
alignmentMatrix,
|
|
68
|
+
zeroRef,
|
|
58
69
|
alignmentSnapshots: alignmentSnapshotGps
|
|
59
70
|
});
|
|
71
|
+
lastGpsPositionsRef = gpsPositions;
|
|
72
|
+
lastOdomPositionsRef = odometryPositions;
|
|
73
|
+
lastMatrixRef = alignmentMatrix;
|
|
74
|
+
lastZeroRef = zeroRef;
|
|
75
|
+
lastSnapshotCount = alignmentSnapshotGps.length;
|
|
76
|
+
lastMapData = data;
|
|
60
77
|
try {
|
|
61
78
|
deps.mapOverlay.render(data);
|
|
62
79
|
} catch (err) {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as subscribeToSelector, t as SubscribableStore } from "../subscribe-to-selector-
|
|
1
|
+
import { n as subscribeToSelector, t as SubscribableStore } from "../subscribe-to-selector-j-eOYybQ.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-
|
|
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-DFm5K9Ob.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 };
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { t as
|
|
1
|
+
import { t as interpolatingMedian } from "../median-DDBrZGP0.js";
|
|
2
|
+
import { t as geodesicAngleRad } from "../geodesic-angle-CZ_Ow90I.js";
|
|
2
3
|
import { selectTrackingPhase } from "./tracking-slice.js";
|
|
3
4
|
import { selectAlignmentMatrix, selectGpsPositions, selectOdometryPositions, selectZeroReference } from "./app-selectors.js";
|
|
4
|
-
import { calcGpsCoords, distanceInMeters } from "gps-plus-slam-js";
|
|
5
5
|
import { mat4, quat, vec3 } from "gl-matrix";
|
|
6
|
+
import { calcGpsCoords, distanceInMeters } from "gps-plus-slam-js";
|
|
6
7
|
import { createListenerMiddleware, createSlice } from "@reduxjs/toolkit";
|
|
7
8
|
//#region ../src/state/tracking-quality.ts
|
|
8
9
|
const DEFAULT_TRACKING_QUALITY_OPTIONS = {
|
|
@@ -19,7 +20,7 @@ const DEFAULT_TRACKING_QUALITY_OPTIONS = {
|
|
|
19
20
|
residualConfidenceTargetM: 3,
|
|
20
21
|
gpsAccuracyFloorM: 1,
|
|
21
22
|
degradedHoldoff: 3,
|
|
22
|
-
convergenceEmaAlpha: .
|
|
23
|
+
convergenceEmaAlpha: .25
|
|
23
24
|
};
|
|
24
25
|
const initialState = {
|
|
25
26
|
recentAlignments: [],
|
|
@@ -49,12 +50,6 @@ function bearingDeg(north, east) {
|
|
|
49
50
|
if (deg < 0) deg += 360;
|
|
50
51
|
return deg;
|
|
51
52
|
}
|
|
52
|
-
function median(values) {
|
|
53
|
-
if (values.length === 0) return 0;
|
|
54
|
-
const sorted = [...values].sort((a, b) => a - b);
|
|
55
|
-
const mid = Math.floor(sorted.length / 2);
|
|
56
|
-
return sorted.length % 2 === 0 ? (sorted[mid - 1] + sorted[mid]) / 2 : sorted[mid];
|
|
57
|
-
}
|
|
58
53
|
/**
|
|
59
54
|
* Linear ramp: `value ≤ low` → 1, `value ≥ high` → 0, linear between.
|
|
60
55
|
* Used by sub-scores whose underlying physical quantity grows as
|
|
@@ -238,7 +233,7 @@ function computeResidualConsensus(alignmentMatrix, gpsPositions, odometryPositio
|
|
|
238
233
|
medianResidualM: rawResidualCount > 0 ? rawResidualSum / rawResidualCount : 0,
|
|
239
234
|
count: normalised.length
|
|
240
235
|
};
|
|
241
|
-
const medianNorm =
|
|
236
|
+
const medianNorm = interpolatingMedian(normalised);
|
|
242
237
|
const medianResidualM = rawResidualSum / rawResidualCount;
|
|
243
238
|
return {
|
|
244
239
|
score: clamp01(1 / (1 + medianNorm / options.residualConfidenceTargetM)),
|
|
@@ -280,7 +275,7 @@ function computeGpsAccuracy(gpsPositions, options = {}) {
|
|
|
280
275
|
countAccurate: 0,
|
|
281
276
|
countTotal: gpsPositions.length - start
|
|
282
277
|
};
|
|
283
|
-
const medianM =
|
|
278
|
+
const medianM = interpolatingMedian(accs);
|
|
284
279
|
return {
|
|
285
280
|
score: rampDown(medianM, goodMedianM, badMedianM),
|
|
286
281
|
medianM,
|
|
@@ -597,15 +592,23 @@ function createTrackingQualityListenerMiddleware(options = {}) {
|
|
|
597
592
|
...options
|
|
598
593
|
};
|
|
599
594
|
const listenerMiddleware = createListenerMiddleware();
|
|
595
|
+
let lastPoseActionPhase = null;
|
|
600
596
|
listenerMiddleware.startListening({
|
|
601
597
|
predicate: (action) => inputActionPredicate(action),
|
|
602
598
|
effect: (action, api) => {
|
|
603
599
|
const state = api.getState();
|
|
604
600
|
if (action.type === TRACKING_QUALITY_INPUT_ACTIONS.startSession || action.type === TRACKING_QUALITY_INPUT_ACTIONS.resetTracking) {
|
|
601
|
+
lastPoseActionPhase = null;
|
|
605
602
|
const tq = state.trackingQuality;
|
|
606
603
|
if (tq && (tq.recentAlignments.length > 0 || tq.report !== null || tq.degradedConsecutiveCount > 0)) api.dispatch(resetTrackingQuality());
|
|
607
604
|
return;
|
|
608
605
|
}
|
|
606
|
+
if (action.type === TRACKING_QUALITY_INPUT_ACTIONS.poseReceived || action.type === TRACKING_QUALITY_INPUT_ACTIONS.poseLost) {
|
|
607
|
+
const phase = selectTrackingPhase(state);
|
|
608
|
+
const existingReport = state.trackingQuality?.report ?? null;
|
|
609
|
+
if (phase === lastPoseActionPhase && existingReport !== null) return;
|
|
610
|
+
lastPoseActionPhase = phase;
|
|
611
|
+
}
|
|
609
612
|
if (action.type === TRACKING_QUALITY_INPUT_ACTIONS.gpsRecorded || action.type === TRACKING_QUALITY_INPUT_ACTIONS.setZeroPos) {
|
|
610
613
|
const alignment = selectAlignmentMatrix(state);
|
|
611
614
|
if (alignment) {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as TrackingSliceState, c as poseLost, d as selectLastRestartedPayload, f as selectLastSensorOrientation, g as trackingReducer, h as selectTrackingPhase, i as TrackingPhase, l as poseReceived, m as selectLostFrameCount, n as PoseReceivedPayload, o as clearLastRestartedPayload, p as selectLastValidPose, r as ResetTransformData, s as originReset, t as DeviceOrientation, u as resetTracking } from "../tracking-slice-
|
|
1
|
+
import { a as TrackingSliceState, c as poseLost, d as selectLastRestartedPayload, f as selectLastSensorOrientation, g as trackingReducer, h as selectTrackingPhase, i as TrackingPhase, l as poseReceived, m as selectLostFrameCount, n as PoseReceivedPayload, o as clearLastRestartedPayload, p as selectLastValidPose, r as ResetTransformData, s as originReset, t as DeviceOrientation, u as resetTracking } from "../tracking-slice-BAbcZK-Y.js";
|
|
2
2
|
export { DeviceOrientation, PoseReceivedPayload, ResetTransformData, TrackingPhase, TrackingSliceState, clearLastRestartedPayload, originReset, poseLost, poseReceived, resetTracking, selectLastRestartedPayload, selectLastSensorOrientation, selectLastValidPose, selectLostFrameCount, selectTrackingPhase, trackingReducer };
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import "./state/gps-event-coordinator.js";
|
|
2
1
|
import "./state/tracking-slice.js";
|
|
3
|
-
import "./state/recording-options.js";
|
|
4
2
|
import "./state/recording-slice.js";
|
|
5
3
|
import "./state/qr-detected-slice.js";
|
|
6
|
-
import "./state/gps-
|
|
4
|
+
import "./state/gps-event-coordinator.js";
|
|
7
5
|
import "./state/app-selectors.js";
|
|
8
6
|
import { selectTrackingQuality } from "./state/tracking-quality.js";
|
|
9
7
|
import "./state/persistence-middleware.js";
|
|
10
|
-
import "./create-slam-app-store-
|
|
8
|
+
import "./create-slam-app-store-oK9bnqyI.js";
|
|
11
9
|
import "./state/recording-replayer.js";
|
|
12
10
|
import "./state/store-subscribers.js";
|
|
13
11
|
import { add2dImage, calcRelativeCoordsInMeters, recordGpsEvent as recordGpsEvent$1, setZeroPos as setZeroPos$1 } from "gps-plus-slam-js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as formatTimestamp, i as formatFrameFilename, n as SESSION_IMAGES_DIR, r as formatActionFilename, t as LEGACY_SESSION_IMAGES_DIR } from "../file-system-utils-
|
|
1
|
+
import { a as formatTimestamp, i as formatFrameFilename, n as SESSION_IMAGES_DIR, r as formatActionFilename, t as LEGACY_SESSION_IMAGES_DIR } from "../file-system-utils-BHI0rXr9.js";
|
|
2
2
|
export { LEGACY_SESSION_IMAGES_DIR, SESSION_IMAGES_DIR, formatActionFilename, formatFrameFilename, formatTimestamp };
|
|
@@ -33,7 +33,7 @@ function formatFrameFilename(index) {
|
|
|
33
33
|
* is a textbook COLMAP tree (`images/frame-NNNNNN.jpg` next to `sparse/0/`).
|
|
34
34
|
* Both the OPFS write path and the recorder's persisted `imageFile` value must
|
|
35
35
|
* use THIS constant so a recording stays self-consistent (COLMAP export plan
|
|
36
|
-
* Q5, gps-plus-slam/GpsPlusSlamJs_Docs/docs/2026-06-13-colmap-export-plan.md).
|
|
36
|
+
* Q5, gps-plus-slam/GpsPlusSlamJs_Docs/docs/2026-06-13-1205-colmap-export-plan.md).
|
|
37
37
|
*/
|
|
38
38
|
const SESSION_IMAGES_DIR = "images";
|
|
39
39
|
/**
|
package/dist/storage/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { a as getAppRootHandle, c as initOpfsStorage, d as resetSessionHandles, h as writeSessionMetadata, i as createSession, l as listSessions, n as SessionMetadata, o as getSessionHandle, r as checkStorageQuota, s as getSessionsRootHandle, u as resetOpfsStorage } from "../opfs-storage-
|
|
2
|
-
import { n as StorageBackend, t as CreateSessionResult } from "../storage-backend-
|
|
3
|
-
import { a as ZipActionEntry, c as loadActionsFromZip, d as loadSessionMetadata, f as loadSessionMetadataFromBlob, i as RecordedAction, l as loadEntriesFromSubdir, n as GpsPathCoord, p as readZipEntries, r as MAX_ACTION_FILE_SIZE, s as ZipSubdirEntry, t as Entry, u as loadGpsPathFromBlob } from "../zip-reader-
|
|
4
|
-
import { t as NullStorageBackend } from "../null-storage-backend-
|
|
5
|
-
import { t as OpfsStorageBackend } from "../opfs-storage-backend-
|
|
6
|
-
import { a as formatTimestamp, i as formatFrameFilename, r as formatActionFilename } from "../file-system-utils-
|
|
7
|
-
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-
|
|
8
|
-
import { t as embedCoverageInSessionJson } from "../zip-coverage-embed-
|
|
1
|
+
import { a as getAppRootHandle, c as initOpfsStorage, d as resetSessionHandles, h as writeSessionMetadata, i as createSession, l as listSessions, n as SessionMetadata, o as getSessionHandle, r as checkStorageQuota, s as getSessionsRootHandle, u as resetOpfsStorage } from "../opfs-storage-S_odkCk1.js";
|
|
2
|
+
import { n as StorageBackend, t as CreateSessionResult } from "../storage-backend-BX7egQKi.js";
|
|
3
|
+
import { a as ZipActionEntry, c as loadActionsFromZip, d as loadSessionMetadata, f as loadSessionMetadataFromBlob, i as RecordedAction, l as loadEntriesFromSubdir, n as GpsPathCoord, p as readZipEntries, r as MAX_ACTION_FILE_SIZE, s as ZipSubdirEntry, t as Entry, u as loadGpsPathFromBlob } from "../zip-reader-BHc_b_iA.js";
|
|
4
|
+
import { t as NullStorageBackend } from "../null-storage-backend-DXXuwG8T.js";
|
|
5
|
+
import { t as OpfsStorageBackend } from "../opfs-storage-backend-D1ZpeNEL.js";
|
|
6
|
+
import { a as formatTimestamp, i as formatFrameFilename, r as formatActionFilename } from "../file-system-utils-BHI0rXr9.js";
|
|
7
|
+
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-CuBimX1J.js";
|
|
8
|
+
import { t as embedCoverageInSessionJson } from "../zip-coverage-embed-CyoX7XL7.js";
|
|
9
9
|
export { type CreateSessionResult, type Entry, type ExportSessionAsZipOptions, type GpsPathCoord, MAX_ACTION_FILE_SIZE, NullStorageBackend, OpfsStorageBackend, type RecordedAction, type SessionMetadata, type StorageBackend, type ZipActionEntry, type ZipContributorAddFile, type ZipExportContributor, type ZipExportResult, type ZipSubdirEntry, checkStorageQuota, createSession, downloadZip, embedCoverageInSessionJson, exportSessionAsZip, exportSessionHandleAsZip, formatActionFilename, formatFrameFilename, formatTimestamp, getAppRootHandle, getSessionHandle, getSessionsRootHandle, initOpfsStorage, listSessions, loadActionsFromZip, loadEntriesFromSubdir, loadGpsPathFromBlob, loadSessionMetadataFromBlob, loadSessionMetadata as loadSessionMetadataFromZip, readZipEntries, resetOpfsStorage, resetSessionHandles, syncToExternalZip, writeSessionMetadata };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as NullStorageBackend } from "../null-storage-backend-
|
|
1
|
+
import { t as NullStorageBackend } from "../null-storage-backend-DXXuwG8T.js";
|
|
2
2
|
export { NullStorageBackend };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as OpfsStorageBackend } from "../opfs-storage-backend-
|
|
1
|
+
import { t as OpfsStorageBackend } from "../opfs-storage-backend-D1ZpeNEL.js";
|
|
2
2
|
export { OpfsStorageBackend };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as getAppRootHandle, c as initOpfsStorage, d as resetSessionHandles, f as setSessionHandles, h as writeSessionMetadata, i as createSession, l as listSessions, m as writeFrame, n as SessionMetadata, o as getSessionHandle, p as writeAction, r as checkStorageQuota, s as getSessionsRootHandle, t as CreateSessionResult, u as resetOpfsStorage } from "../opfs-storage-
|
|
1
|
+
import { a as getAppRootHandle, c as initOpfsStorage, d as resetSessionHandles, f as setSessionHandles, h as writeSessionMetadata, i as createSession, l as listSessions, m as writeFrame, n as SessionMetadata, o as getSessionHandle, p as writeAction, r as checkStorageQuota, s as getSessionsRootHandle, t as CreateSessionResult, u as resetOpfsStorage } from "../opfs-storage-S_odkCk1.js";
|
|
2
2
|
export { CreateSessionResult, SessionMetadata, checkStorageQuota, createSession, getAppRootHandle, getSessionHandle, getSessionsRootHandle, initOpfsStorage, listSessions, resetOpfsStorage, resetSessionHandles, setSessionHandles, writeAction, writeFrame, writeSessionMetadata };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as StorageBackend, t as CreateSessionResult } from "../storage-backend-
|
|
1
|
+
import { n as StorageBackend, t as CreateSessionResult } from "../storage-backend-BX7egQKi.js";
|
|
2
2
|
export { CreateSessionResult, StorageBackend };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as embedCoverageInSessionJson } from "../zip-coverage-embed-
|
|
1
|
+
import { t as embedCoverageInSessionJson } from "../zip-coverage-embed-CyoX7XL7.js";
|
|
2
2
|
export { embedCoverageInSessionJson };
|
|
@@ -18,7 +18,7 @@ import { BlobReader, BlobWriter, TextReader, TextWriter, Uint8ArrayReader, Uint8
|
|
|
18
18
|
* protocol around it.
|
|
19
19
|
*
|
|
20
20
|
* @see ./zip-coverage-embed.ts.md
|
|
21
|
-
* @see GpsPlusSlamJs_Docs/docs/2026-06-14-
|
|
21
|
+
* @see GpsPlusSlamJs_Docs/docs/2026-06-14-1924-progressive-map-browser-indexing-and-backfill-followup.md (B3)
|
|
22
22
|
*/
|
|
23
23
|
const log = createLogger("ZipCoverageEmbed");
|
|
24
24
|
/**
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
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-
|
|
1
|
+
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-CuBimX1J.js";
|
|
2
2
|
export { ExportSessionAsZipOptions, ZipContributorAddFile, ZipExportContributor, ZipExportResult, downloadZip, exportSessionAsZip, exportSessionHandleAsZip, syncToExternalZip };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { createLogger } from "../utils/logger.js";
|
|
2
|
+
import { getSessionsRootHandle } from "./opfs-storage.js";
|
|
2
3
|
import { BlobReader, BlobWriter, ZipWriter } from "@zip.js/zip.js";
|
|
3
4
|
//#region ../src/storage/zip-export.ts
|
|
4
5
|
/**
|
|
@@ -20,10 +21,15 @@ import { BlobReader, BlobWriter, ZipWriter } from "@zip.js/zip.js";
|
|
|
20
21
|
*/
|
|
21
22
|
const log = createLogger("ZipExport");
|
|
22
23
|
/**
|
|
23
|
-
* Get the OPFS sessions directory handle
|
|
24
|
+
* Get the OPFS sessions directory handle from the layout owner
|
|
25
|
+
* (quality-review G-9 — this used to re-derive the
|
|
26
|
+
* `'gps-plus-slam'/'sessions'` path itself, so a root re-nesting in
|
|
27
|
+
* `opfs-storage.ts` would have silently broken export only).
|
|
24
28
|
*/
|
|
25
|
-
|
|
26
|
-
|
|
29
|
+
function getSessionsHandle() {
|
|
30
|
+
const sessions = getSessionsRootHandle();
|
|
31
|
+
if (!sessions) throw new Error("OPFS storage not initialized — call initOpfsStorage() before exporting");
|
|
32
|
+
return sessions;
|
|
27
33
|
}
|
|
28
34
|
/**
|
|
29
35
|
* Stream all files from a directory recursively into a ZipWriter.
|
|
@@ -65,7 +71,7 @@ async function streamDirectoryToZip(dirHandle, zipWriter, basePath = "") {
|
|
|
65
71
|
*/
|
|
66
72
|
async function exportSessionAsZip(sessionName, options) {
|
|
67
73
|
log.info(`Exporting session: ${sessionName}`);
|
|
68
|
-
const sessionsDir =
|
|
74
|
+
const sessionsDir = getSessionsHandle();
|
|
69
75
|
let sessionHandle;
|
|
70
76
|
try {
|
|
71
77
|
sessionHandle = await sessionsDir.getDirectoryHandle(sessionName);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as ZipActionEntry, c as loadActionsFromZip, d as loadSessionMetadata, f as loadSessionMetadataFromBlob, i as RecordedAction, l as loadEntriesFromSubdir, m as toZipReader, n as GpsPathCoord, o as ZipSource, p as readZipEntries, r as MAX_ACTION_FILE_SIZE, s as ZipSubdirEntry, t as Entry, u as loadGpsPathFromBlob } from "../zip-reader-
|
|
1
|
+
import { a as ZipActionEntry, c as loadActionsFromZip, d as loadSessionMetadata, f as loadSessionMetadataFromBlob, i as RecordedAction, l as loadEntriesFromSubdir, m as toZipReader, n as GpsPathCoord, o as ZipSource, p as readZipEntries, r as MAX_ACTION_FILE_SIZE, s as ZipSubdirEntry, t as Entry, u as loadGpsPathFromBlob } from "../zip-reader-BHc_b_iA.js";
|
|
2
2
|
export { Entry, GpsPathCoord, MAX_ACTION_FILE_SIZE, RecordedAction, ZipActionEntry, ZipSource, ZipSubdirEntry, loadActionsFromZip, loadEntriesFromSubdir, loadGpsPathFromBlob, loadSessionMetadata, loadSessionMetadataFromBlob, readZipEntries, toZipReader };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as MapData } from "./map-data-
|
|
2
|
-
import { t as SubscribableStore } from "./subscribe-to-selector-
|
|
1
|
+
import { t as MapData } from "./map-data-D8cCqpOM.js";
|
|
2
|
+
import { t as SubscribableStore } from "./subscribe-to-selector-j-eOYybQ.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,6 +1,7 @@
|
|
|
1
|
-
import { t as ARPose } from "./ar-types-
|
|
1
|
+
import { t as ARPose } from "./ar-types-D6PYS4bc.js";
|
|
2
2
|
import { OdometryTrackingRestartedPayload, Quaternion, Vector3 } from "gps-plus-slam-js";
|
|
3
3
|
import * as _$_reduxjs_toolkit0 from "@reduxjs/toolkit";
|
|
4
|
+
import * as _$redux from "redux";
|
|
4
5
|
|
|
5
6
|
//#region ../src/state/tracking-slice.d.ts
|
|
6
7
|
/**
|
|
@@ -60,7 +61,7 @@ interface PoseReceivedPayload {
|
|
|
60
61
|
sensorOrientation: DeviceOrientation;
|
|
61
62
|
}
|
|
62
63
|
declare const poseReceived: _$_reduxjs_toolkit0.ActionCreatorWithPayload<PoseReceivedPayload, "tracking/poseReceived">, poseLost: _$_reduxjs_toolkit0.ActionCreatorWithoutPayload<"tracking/poseLost">, originReset: _$_reduxjs_toolkit0.ActionCreatorWithPreparedPayload<[transform?: ResetTransformData | null | undefined], ResetTransformData | null | undefined, "tracking/originReset", never, never>, resetTracking: _$_reduxjs_toolkit0.ActionCreatorWithoutPayload<"tracking/resetTracking">, clearLastRestartedPayload: _$_reduxjs_toolkit0.ActionCreatorWithoutPayload<"tracking/clearLastRestartedPayload">;
|
|
63
|
-
declare const trackingReducer: _$
|
|
64
|
+
declare const trackingReducer: _$redux.Reducer<TrackingSliceState>;
|
|
64
65
|
/**
|
|
65
66
|
* Minimal root-state shape needed by the selectors. Avoids a hard import
|
|
66
67
|
* cycle through `SlamAppRootState`.
|
package/dist/types/ar-types.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as RgbTuple, i as DepthSample, n as ArPoseTuples, o as WebXRQuaternion, r as DepthPoint, s as WebXRVec3, t as ARPose } from "../ar-types-
|
|
2
|
-
export { ARPose, ArPoseTuples, DepthPoint, DepthSample, RgbTuple, WebXRQuaternion, WebXRVec3 };
|
|
1
|
+
import { a as RgbTuple, c as extractOdomPosition, i as DepthSample, l as extractOdomRotation, n as ArPoseTuples, o as WebXRQuaternion, r as DepthPoint, s as WebXRVec3, t as ARPose } from "../ar-types-D6PYS4bc.js";
|
|
2
|
+
export { ARPose, ArPoseTuples, DepthPoint, DepthSample, RgbTuple, WebXRQuaternion, WebXRVec3, extractOdomPosition, extractOdomRotation };
|
package/dist/types/ar-types.js
CHANGED
|
@@ -1 +1,31 @@
|
|
|
1
|
-
|
|
1
|
+
//#region ../src/types/ar-types.ts
|
|
2
|
+
/**
|
|
3
|
+
* Extract the raw odometry position tuple from an {@link ARPose}.
|
|
4
|
+
*
|
|
5
|
+
* Returns the raw WebXR position without coordinate conversion — the reducer
|
|
6
|
+
* applies the WebXR→NUE transform when storing into state (raw-storage
|
|
7
|
+
* pattern, see docs/2026-04-09-raw-storage-convert-on-read.md).
|
|
8
|
+
* WebXR local-floor frame: X=East, Y=Up, Z=South (toward viewer / backward).
|
|
9
|
+
*
|
|
10
|
+
* Lives next to the type (quality-review G-8 — it used to sit in
|
|
11
|
+
* `state/gps-event-coordinator.ts`, forcing an ar→state import in
|
|
12
|
+
* `ar/depth-sampler.ts`).
|
|
13
|
+
*/
|
|
14
|
+
function extractOdomPosition(arPose) {
|
|
15
|
+
return [
|
|
16
|
+
arPose.position.x,
|
|
17
|
+
arPose.position.y,
|
|
18
|
+
arPose.position.z
|
|
19
|
+
];
|
|
20
|
+
}
|
|
21
|
+
/** Extract the raw odometry rotation tuple from an {@link ARPose}. */
|
|
22
|
+
function extractOdomRotation(arPose) {
|
|
23
|
+
return [
|
|
24
|
+
arPose.orientation.x,
|
|
25
|
+
arPose.orientation.y,
|
|
26
|
+
arPose.orientation.z,
|
|
27
|
+
arPose.orientation.w
|
|
28
|
+
];
|
|
29
|
+
}
|
|
30
|
+
//#endregion
|
|
31
|
+
export { extractOdomPosition, extractOdomRotation };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as RawGpsSample, r as RefPointMarker, t as GpsCoord } from "../geo-types-
|
|
1
|
+
import { n as RawGpsSample, r as RefPointMarker, t as GpsCoord } from "../geo-types-BfDK8kJu.js";
|
|
2
2
|
export { GpsCoord, RawGpsSample, RefPointMarker };
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as RgbTuple, i as DepthSample, n as ArPoseTuples, o as WebXRQuaternion, r as DepthPoint, s as WebXRVec3, t as ARPose } from "../ar-types-
|
|
2
|
-
import { n as RawGpsSample, r as RefPointMarker, t as GpsCoord } from "../geo-types-
|
|
3
|
-
export { ARPose, ArPoseTuples, DepthPoint, DepthSample, GpsCoord, RawGpsSample, RefPointMarker, RgbTuple, WebXRQuaternion, WebXRVec3 };
|
|
1
|
+
import { a as RgbTuple, c as extractOdomPosition, i as DepthSample, l as extractOdomRotation, n as ArPoseTuples, o as WebXRQuaternion, r as DepthPoint, s as WebXRVec3, t as ARPose } from "../ar-types-D6PYS4bc.js";
|
|
2
|
+
import { n as RawGpsSample, r as RefPointMarker, t as GpsCoord } from "../geo-types-BfDK8kJu.js";
|
|
3
|
+
export { ARPose, ArPoseTuples, DepthPoint, DepthSample, GpsCoord, RawGpsSample, RefPointMarker, RgbTuple, WebXRQuaternion, WebXRVec3, extractOdomPosition, extractOdomRotation };
|
package/dist/types/index.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import { extractOdomPosition, extractOdomRotation } from "./ar-types.js";
|
|
2
|
+
export { extractOdomPosition, extractOdomRotation };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as mapWithConcurrencyLimit, t as forEachWithConcurrencyLimit } from "../concurrency-
|
|
1
|
+
import { n as mapWithConcurrencyLimit, t as forEachWithConcurrencyLimit } from "../concurrency-DW0jQo3G.js";
|
|
2
2
|
export { forEachWithConcurrencyLimit, mapWithConcurrencyLimit };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as FailureTrackerConfig, r as createFailureTracker, t as FailureTracker } from "../failure-tracker-
|
|
1
|
+
import { n as FailureTrackerConfig, r as createFailureTracker, t as FailureTracker } from "../failure-tracker-B7fzPfZo.js";
|
|
2
2
|
export { FailureTracker, FailureTrackerConfig, createFailureTracker };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as formatFileSize } from "../format-file-size-
|
|
1
|
+
import { t as formatFileSize } from "../format-file-size-Da8rZgfs.js";
|
|
2
2
|
export { formatFileSize };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as computeFusedPath, r as fusedGpsFromOdom, t as FusedPathInput } from "../fused-path-
|
|
1
|
+
import { n as computeFusedPath, r as fusedGpsFromOdom, t as FusedPathInput } from "../fused-path-DOKzVMiO.js";
|
|
2
2
|
export { FusedPathInput, computeFusedPath, fusedGpsFromOdom };
|
package/dist/utils/fused-path.js
CHANGED
package/dist/utils/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
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-
|
|
2
|
-
import { n as computeFusedPath, r as fusedGpsFromOdom, t as FusedPathInput } from "../fused-path-
|
|
3
|
-
import { n as FailureTrackerConfig, r as createFailureTracker, t as FailureTracker } from "../failure-tracker-
|
|
4
|
-
import { n as mapWithConcurrencyLimit } from "../concurrency-
|
|
5
|
-
import { t as geodesicAngleRad } from "../index-
|
|
6
|
-
import { t as formatFileSize } from "../format-file-size-
|
|
7
|
-
import { t as listFormatter } from "../list-formatter-
|
|
1
|
+
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-B4StJUDb.js";
|
|
2
|
+
import { n as computeFusedPath, r as fusedGpsFromOdom, t as FusedPathInput } from "../fused-path-DOKzVMiO.js";
|
|
3
|
+
import { n as FailureTrackerConfig, r as createFailureTracker, t as FailureTracker } from "../failure-tracker-B7fzPfZo.js";
|
|
4
|
+
import { n as mapWithConcurrencyLimit } from "../concurrency-DW0jQo3G.js";
|
|
5
|
+
import { t as geodesicAngleRad } from "../index-Nr3qg4IH.js";
|
|
6
|
+
import { t as formatFileSize } from "../format-file-size-Da8rZgfs.js";
|
|
7
|
+
import { t as listFormatter } from "../list-formatter-1ttG18MQ.js";
|
|
8
8
|
export { FailureTracker, FailureTrackerConfig, FusedPathInput, LogEntry, LogLevel, Logger, clearLogBuffer, computeFusedPath, createFailureTracker, createLogger, formatFileSize, fusedGpsFromOdom, geodesicAngleRad, getGlobalLogLevel, getLogBuffer, listFormatter, mapWithConcurrencyLimit, setGlobalLogLevel, subscribeToLogs };
|
package/dist/utils/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { LogLevel, clearLogBuffer, createLogger, getGlobalLogLevel, getLogBuffer, setGlobalLogLevel, subscribeToLogs } from "./logger.js";
|
|
2
2
|
import { createFailureTracker } from "./failure-tracker.js";
|
|
3
|
-
import { t as geodesicAngleRad } from "../geodesic-angle-
|
|
3
|
+
import { t as geodesicAngleRad } from "../geodesic-angle-CZ_Ow90I.js";
|
|
4
4
|
import { computeFusedPath, fusedGpsFromOdom } from "./fused-path.js";
|
|
5
5
|
import { mapWithConcurrencyLimit } from "./concurrency.js";
|
|
6
6
|
import { formatFileSize } from "./format-file-size.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as listFormatter } from "../list-formatter-
|
|
1
|
+
import { t as listFormatter } from "../list-formatter-1ttG18MQ.js";
|
|
2
2
|
export { listFormatter };
|
package/dist/utils/logger.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
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-
|
|
1
|
+
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-B4StJUDb.js";
|
|
2
2
|
export { LogEntry, LogLevel, Logger, clearLogBuffer, createLogger, getGlobalLogLevel, getLogBuffer, setGlobalLogLevel, subscribeToLogs };
|
package/dist/utils/logger.js
CHANGED
|
@@ -93,10 +93,17 @@ function serializeArg(arg) {
|
|
|
93
93
|
return safeStringify(arg);
|
|
94
94
|
}
|
|
95
95
|
/**
|
|
96
|
+
* Serialize a log call's arguments once (quality-review C-5 — the buffer,
|
|
97
|
+
* breadcrumb, and Sentry-message paths each used to re-serialize the same
|
|
98
|
+
* args, i.e. 2–3× per log call). All downstream consumers take the string.
|
|
99
|
+
*/
|
|
100
|
+
function serializeArgs(args) {
|
|
101
|
+
return args.map((arg) => serializeArg(arg)).join(" ");
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
96
104
|
* Add an entry to the log buffer and notify subscribers
|
|
97
105
|
*/
|
|
98
|
-
function addToBuffer(level, tag,
|
|
99
|
-
const message = args.map((arg) => serializeArg(arg)).join(" ");
|
|
106
|
+
function addToBuffer(level, tag, message) {
|
|
100
107
|
const entry = {
|
|
101
108
|
timestamp: Date.now(),
|
|
102
109
|
level,
|
|
@@ -177,8 +184,8 @@ function toSentryLevel(level) {
|
|
|
177
184
|
* Add a Sentry breadcrumb for debugging context.
|
|
178
185
|
* Breadcrumbs are attached to future exceptions, helping trace what happened before an error.
|
|
179
186
|
*/
|
|
180
|
-
function addSentryBreadcrumb(level, tag,
|
|
181
|
-
const message = `[${tag}] ${
|
|
187
|
+
function addSentryBreadcrumb(level, tag, body) {
|
|
188
|
+
const message = `[${tag}] ${body}`;
|
|
182
189
|
Sentry.addBreadcrumb({
|
|
183
190
|
category: "log",
|
|
184
191
|
level: toSentryLevel(level),
|
|
@@ -213,8 +220,7 @@ function toFingerprintTemplate(body) {
|
|
|
213
220
|
* messages from the same tag remain distinct Issues (see
|
|
214
221
|
* {@link toFingerprintTemplate}).
|
|
215
222
|
*/
|
|
216
|
-
function captureLogMessage(level, tag,
|
|
217
|
-
const body = args.map((arg) => serializeArg(arg)).join(" ");
|
|
223
|
+
function captureLogMessage(level, tag, body) {
|
|
218
224
|
const message = `[${tag}] ${body}`;
|
|
219
225
|
Sentry.captureMessage(message, {
|
|
220
226
|
level,
|
|
@@ -231,8 +237,8 @@ function captureLogMessage(level, tag, args) {
|
|
|
231
237
|
* Called for log.warn() so warnings are independently visible in the
|
|
232
238
|
* Sentry dashboard, not only as breadcrumbs attached to later exceptions.
|
|
233
239
|
*/
|
|
234
|
-
function reportWarningToSentry(tag,
|
|
235
|
-
captureLogMessage("warning", tag,
|
|
240
|
+
function reportWarningToSentry(tag, body) {
|
|
241
|
+
captureLogMessage("warning", tag, body);
|
|
236
242
|
}
|
|
237
243
|
/**
|
|
238
244
|
* Report log.error() arguments to Sentry as standalone Issues.
|
|
@@ -247,37 +253,41 @@ function reportWarningToSentry(tag, args) {
|
|
|
247
253
|
* Issues when an Error is present, and groups via the same normalized template
|
|
248
254
|
* fingerprint as warnings (see {@link captureLogMessage}).
|
|
249
255
|
*/
|
|
250
|
-
function reportErrorsToSentry(tag, args) {
|
|
256
|
+
function reportErrorsToSentry(tag, args, body) {
|
|
251
257
|
let capturedError = false;
|
|
252
258
|
for (const arg of args) if (arg instanceof Error) {
|
|
253
259
|
Sentry.captureException(arg);
|
|
254
260
|
capturedError = true;
|
|
255
261
|
}
|
|
256
|
-
if (!capturedError) captureLogMessage("error", tag,
|
|
262
|
+
if (!capturedError) captureLogMessage("error", tag, body);
|
|
257
263
|
}
|
|
258
264
|
function createLogger(tag) {
|
|
259
265
|
const prefix = `[${tag}]`;
|
|
260
266
|
return {
|
|
261
267
|
debug: (...args) => {
|
|
262
|
-
|
|
263
|
-
|
|
268
|
+
const body = serializeArgs(args);
|
|
269
|
+
addToBuffer(0, tag, body);
|
|
270
|
+
addSentryBreadcrumb(0, tag, body);
|
|
264
271
|
if (globalLogLevel <= 0) console.log(prefix, ...args);
|
|
265
272
|
},
|
|
266
273
|
info: (...args) => {
|
|
267
|
-
|
|
268
|
-
|
|
274
|
+
const body = serializeArgs(args);
|
|
275
|
+
addToBuffer(1, tag, body);
|
|
276
|
+
addSentryBreadcrumb(1, tag, body);
|
|
269
277
|
if (globalLogLevel <= 1) console.log(prefix, ...args);
|
|
270
278
|
},
|
|
271
279
|
warn: (...args) => {
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
280
|
+
const body = serializeArgs(args);
|
|
281
|
+
addToBuffer(2, tag, body);
|
|
282
|
+
addSentryBreadcrumb(2, tag, body);
|
|
283
|
+
reportWarningToSentry(tag, body);
|
|
275
284
|
if (globalLogLevel <= 2) console.warn(prefix, ...args);
|
|
276
285
|
},
|
|
277
286
|
error: (...args) => {
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
287
|
+
const body = serializeArgs(args);
|
|
288
|
+
addToBuffer(3, tag, body);
|
|
289
|
+
addSentryBreadcrumb(3, tag, body);
|
|
290
|
+
reportErrorsToSentry(tag, args, body);
|
|
281
291
|
if (globalLogLevel <= 3) console.error(prefix, ...args);
|
|
282
292
|
}
|
|
283
293
|
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as addAccuracyCircles, i as AccuracyCircleSample, n as ACCURACY_CIRCLE_STROKE_OPACITY, r as ACCURACY_CIRCLE_WEIGHT, t as ACCURACY_CIRCLE_FILL_OPACITY } from "../accuracy-circles-
|
|
1
|
+
import { a as addAccuracyCircles, i as AccuracyCircleSample, n as ACCURACY_CIRCLE_STROKE_OPACITY, r as ACCURACY_CIRCLE_WEIGHT, t as ACCURACY_CIRCLE_FILL_OPACITY } from "../accuracy-circles-BHz7yVIL.js";
|
|
2
2
|
export { ACCURACY_CIRCLE_FILL_OPACITY, ACCURACY_CIRCLE_STROKE_OPACITY, ACCURACY_CIRCLE_WEIGHT, AccuracyCircleSample, addAccuracyCircles };
|