diff --git a/scripts/package-boundaries.json b/scripts/package-boundaries.json index 276b9e0db..dfb42419f 100644 --- a/scripts/package-boundaries.json +++ b/scripts/package-boundaries.json @@ -12,27 +12,50 @@ "src/data/inputOwnership.js", "src/data/infrastructureOverlayEntry.js" ], - "external": ["cesium"] + "external": [ + "cesium" + ] }, "application": { - "exports": ["./application"], - "modules": ["src/app/application.js"], + "exports": [ + "./application" + ], + "modules": [ + "src/app/application.js" + ], "external": [] }, "viewer": { - "exports": ["./application/viewer"], - "modules": ["src/app/viewer.js", "src/app/atmosphereCompat.js"], - "external": ["cesium"] + "exports": [ + "./application/viewer" + ], + "modules": [ + "src/app/viewer.js", + "src/app/atmosphereCompat.js" + ], + "external": [ + "cesium" + ] }, "vite-build": { "runtime": "node", - "exports": ["./build/vite", "./build/html"], - "modules": ["build/vite.js", "build/application-html.js"], - "external": ["vite-plugin-cesium"] + "exports": [ + "./build/vite", + "./build/html" + ], + "modules": [ + "build/vite.js", + "build/application-html.js" + ], + "external": [ + "vite-plugin-cesium" + ] }, "live-providers": { "runtime": "node", - "exports": ["./server/providers/live"], + "exports": [ + "./server/providers/live" + ], "modules": [ "server/providers/live.js", "server/providers/common/http.js", @@ -48,16 +71,24 @@ "src/data/aisWatchdog.js", "src/sources/httpBody.js" ], - "external": ["ws"] + "external": [ + "ws" + ] }, "adsb-lol-source": { - "exports": ["./sources/adsb-lol"], - "modules": ["src/data/adsbLolFallback.js"], + "exports": [ + "./sources/adsb-lol" + ], + "modules": [ + "src/data/adsbLolFallback.js" + ], "external": [] }, "place-providers": { "runtime": "node", - "exports": ["./server/providers/places"], + "exports": [ + "./server/providers/places" + ], "modules": [ "server/providers/places.js", "server/providers/places/google.js", @@ -75,13 +106,19 @@ "external": [] }, "place-payloads": { - "exports": ["./sources/places"], - "modules": ["src/data/placeProviderPayloads.js"], + "exports": [ + "./sources/places" + ], + "modules": [ + "src/data/placeProviderPayloads.js" + ], "external": [] }, "space-providers": { "runtime": "node", - "exports": ["./server/providers/space"], + "exports": [ + "./server/providers/space" + ], "modules": [ "server/providers/space.js", "server/providers/space/celestrak.js", @@ -93,13 +130,19 @@ "external": [] }, "space-requests": { - "exports": ["./sources/space"], - "modules": ["src/data/spaceProviderRequests.js"], + "exports": [ + "./sources/space" + ], + "modules": [ + "src/data/spaceProviderRequests.js" + ], "external": [] }, "terrain-provider": { "runtime": "node", - "exports": ["./server/providers/terrain"], + "exports": [ + "./server/providers/terrain" + ], "modules": [ "server/providers/terrain.js", "src/data/terrainHeightsProxy.js" @@ -107,35 +150,59 @@ "external": [] }, "terrain-source": { - "exports": ["./sources/terrain"], - "modules": ["src/data/terrainHeightsProxy.js"], + "exports": [ + "./sources/terrain" + ], + "modules": [ + "src/data/terrainHeightsProxy.js" + ], "external": [] }, "traffic-provider": { "runtime": "node", - "exports": ["./server/providers/traffic"], - "modules": ["server/providers/traffic.js", "src/data/tomtomTiles.js"], + "exports": [ + "./server/providers/traffic" + ], + "modules": [ + "server/providers/traffic.js", + "src/data/tomtomTiles.js" + ], "external": [] }, "traffic-source": { - "exports": ["./sources/traffic"], - "modules": ["src/data/tomtomTiles.js"], + "exports": [ + "./sources/traffic" + ], + "modules": [ + "src/data/tomtomTiles.js" + ], "external": [] }, "firms-csv": { - "exports": ["./sources/firms-csv"], - "modules": ["src/data/firmsCsv.js"], + "exports": [ + "./sources/firms-csv" + ], + "modules": [ + "src/data/firmsCsv.js" + ], "external": [] }, "firms-provider": { "runtime": "node", - "exports": ["./server/providers/firms"], - "modules": ["server/providers/firms.js", "src/data/firmsCsv.js"], + "exports": [ + "./server/providers/firms" + ], + "modules": [ + "server/providers/firms.js", + "src/data/firmsCsv.js" + ], "external": [] }, "gbfs-provider": { "runtime": "node", - "exports": ["./server/providers/gbfs"], + "exports": [ + "./server/providers/gbfs" + ], "modules": [ "server/providers/gbfs.js", "server/providers/common/http.js", @@ -145,13 +212,19 @@ "external": [] }, "gbfs-source": { - "exports": ["./sources/gbfs"], - "modules": ["src/data/gbfsSource.js"], + "exports": [ + "./sources/gbfs" + ], + "modules": [ + "src/data/gbfsSource.js" + ], "external": [] }, "cctv-provider": { "runtime": "node", - "exports": ["./server/providers/cctv"], + "exports": [ + "./server/providers/cctv" + ], "modules": [ "server/providers/cctv.js", "server/providers/cctv/cap.js", @@ -176,7 +249,9 @@ }, "radio-provider": { "runtime": "node", - "exports": ["./server/providers/radio"], + "exports": [ + "./server/providers/radio" + ], "modules": [ "server/providers/radio.js", "server/providers/radio/catalog.js", @@ -192,7 +267,9 @@ }, "overpass-provider": { "runtime": "node", - "exports": ["./server/providers/overpass"], + "exports": [ + "./server/providers/overpass" + ], "modules": [ "server/providers/common/geo.js", "server/providers/common/http.js", @@ -215,7 +292,9 @@ }, "military-installations-provider": { "runtime": "node", - "exports": ["./server/providers/military-installations"], + "exports": [ + "./server/providers/military-installations" + ], "modules": [ "server/providers/common/http.js", "server/providers/common/query.js", @@ -234,7 +313,9 @@ }, "regional-provider": { "runtime": "node", - "exports": ["./server/providers/regional"], + "exports": [ + "./server/providers/regional" + ], "modules": [ "server/providers/common/http.js", "server/providers/common/query.js", @@ -261,7 +342,9 @@ }, "openai-provider": { "runtime": "node", - "exports": ["./server/providers/openai"], + "exports": [ + "./server/providers/openai" + ], "modules": [ "src/hudLayoutPolicy.js", "server/providers/common/rate-limit.js", @@ -289,7 +372,9 @@ }, "standalone-key-setup": { "runtime": "node", - "exports": ["./server/standalone/key-setup"], + "exports": [ + "./server/standalone/key-setup" + ], "modules": [ "scripts/pinokio-environment.mjs", "server/providers/common/source-root.js", @@ -300,7 +385,9 @@ "external": [] }, "place-search": { - "exports": ["./search"], + "exports": [ + "./search" + ], "modules": [ "src/search/index.js", "src/search/placeSearch.js", @@ -321,17 +408,27 @@ "external": [] }, "panel-disclosure": { - "exports": ["./ui/panels"], - "modules": ["src/ui/panelDisclosure.js"], + "exports": [ + "./ui/panels" + ], + "modules": [ + "src/ui/panelDisclosure.js" + ], "external": [] }, "surface-keyboard": { - "exports": ["./ui/surfaces"], - "modules": ["src/ui/surfaceKeyboard.js"], + "exports": [ + "./ui/surfaces" + ], + "modules": [ + "src/ui/surfaceKeyboard.js" + ], "external": [] }, "panel-rail-layout": { - "exports": ["./ui/layout"], + "exports": [ + "./ui/layout" + ], "modules": [ "src/ui/panelRails.js", "src/ui/displayPanelScroll.js", @@ -344,7 +441,9 @@ "external": [] }, "visual-input": { - "exports": ["./ui/input"], + "exports": [ + "./ui/input" + ], "modules": [ "src/ui/visualInput.js", "src/ui/applicationShortcuts.js", @@ -353,12 +452,19 @@ "external": [] }, "display-controls": { - "exports": ["./ui/display"], - "modules": ["src/ui/displayControls.js"], + "exports": [ + "./ui/display" + ], + "modules": [ + "src/ui/displayControls.js" + ], "external": [] }, "visual-effects": { - "exports": ["./ui/effects", "./ui/effects/bloom"], + "exports": [ + "./ui/effects", + "./ui/effects/bloom" + ], "modules": [ "src/ui/effects.js", "src/ui/visualEffects.js", @@ -371,76 +477,130 @@ "src/styles/noir.js", "src/styles/snow.js" ], - "external": ["cesium"] + "external": [ + "cesium" + ] }, "map-source-controls": { - "exports": ["./ui/maps"], + "exports": [ + "./ui/maps" + ], "modules": [ - "src/ui/mapSource.js", - "src/ui/mapSourceControls.js", + "src/i18n/index.js", + "src/i18n/locale.js", + "src/i18n/locales/en/cockpit.js", + "src/i18n/locales/en/layers.js", + "src/i18n/locales/en/setup.js", + "src/i18n/locales/en/shell.js", + "src/keySetupCore.mjs", "src/mapStackChips.js", - "src/keySetupCore.mjs" + "src/ui/mapSource.js", + "src/ui/mapSourceControls.js" ], "external": [] }, "layer-panel": { - "exports": ["./ui/layers", "./ui/layers/feedback"], + "exports": [ + "./ui/layers", + "./ui/layers/feedback" + ], "modules": [ - "src/ui/layers.js", - "src/ui/layerPanel.js", - "src/ui/weatherPanel.js", - "src/ui/railCards.js", - "src/ui/railCardBlocks.js", - "src/ui/chipGroup.js", - "src/ui/rowList.js", - "src/ui/railTimeline.js", - "src/ui/clearLayersControl.js", - "src/loadingFeedback.js", - "src/data/installationFeedback.js", - "src/keySetupCore.mjs", "src/data/feedState.js", - "src/data/layerSnapshot.js" + "src/data/installationFeedback.js", + "src/data/layerSnapshot.js", + "src/i18n/index.js", + "src/i18n/locale.js", + "src/i18n/locales/en/cockpit.js", + "src/i18n/locales/en/layers.js", + "src/i18n/locales/en/setup.js", + "src/i18n/locales/en/shell.js", + "src/keySetupCore.mjs", + "src/loadingFeedback.js", + "src/ui/chipGroup.js", + "src/ui/clearLayersControl.js", + "src/ui/layerPanel.js", + "src/ui/layers.js", + "src/ui/railCardBlocks.js", + "src/ui/railCards.js", + "src/ui/railTimeline.js", + "src/ui/rowList.js", + "src/ui/weatherPanel.js" ], "external": [] }, "location-controls": { - "exports": ["./ui/location"], + "exports": [ + "./ui/location" + ], "modules": [ + "src/app/stateChannel.js", + "src/i18n/index.js", + "src/i18n/locale.js", + "src/i18n/locales/en/cockpit.js", + "src/i18n/locales/en/layers.js", + "src/i18n/locales/en/setup.js", + "src/i18n/locales/en/shell.js", + "src/locationStatus.js", "src/ui/location.js", "src/ui/locationControls.js", - "src/ui/locationSearch.js", - "src/locationStatus.js", - "src/app/stateChannel.js" + "src/ui/locationSearch.js" ], "external": [] }, "radio-controls": { - "exports": ["./ui/radio"], + "exports": [ + "./ui/radio" + ], "modules": [ + "src/i18n/index.js", + "src/i18n/locale.js", + "src/i18n/locales/en/cockpit.js", + "src/i18n/locales/en/layers.js", + "src/i18n/locales/en/setup.js", + "src/i18n/locales/en/shell.js", "src/ui/radio.js", - "src/ui/radioControls.js", "src/ui/radioBindings.js", + "src/ui/radioControls.js", "src/ui/radioPresentation.js", "src/ui/radioTunerModel.js" ], "external": [] }, "cctv-controls": { - "exports": ["./ui/cctv"], + "exports": [ + "./ui/cctv" + ], "modules": [ + "src/i18n/index.js", + "src/i18n/locale.js", + "src/i18n/locales/en/cockpit.js", + "src/i18n/locales/en/layers.js", + "src/i18n/locales/en/setup.js", + "src/i18n/locales/en/shell.js", "src/ui/cctv.js", "src/ui/cctvBindings.js", "src/ui/cctvCalibration.js", "src/ui/cctvControls.js", "src/ui/cctvFrames.js", - "src/ui/cctvVideo.js", - "src/ui/cctvPresentation.js" + "src/ui/cctvPresentation.js", + "src/ui/cctvVideo.js" ], "external": [] }, "context-controls": { - "exports": ["./ui/context", "./ui/context/policy"], + "exports": [ + "./ui/context", + "./ui/context/policy" + ], "modules": [ + "src/contextModePolicy.js", + "src/i18n/index.js", + "src/i18n/locale.js", + "src/i18n/locales/en/cockpit.js", + "src/i18n/locales/en/layers.js", + "src/i18n/locales/en/setup.js", + "src/i18n/locales/en/shell.js", + "src/rightRailPolicy.js", "src/ui/context.js", "src/ui/contextActions.js", "src/ui/contextBindings.js", @@ -450,8 +610,6 @@ "src/ui/contextSession.js", "src/ui/contextSubscriptions.js", "src/ui/contextTransactions.js", - "src/contextModePolicy.js", - "src/rightRailPolicy.js", "src/ui/panelRailGeometry.js" ], "external": [] @@ -464,42 +622,56 @@ "./ui/cockpit/vision" ], "modules": [ + "src/cockpitMath.js", + "src/cockpitUtilityLayout.js", + "src/cockpitVisionPolicy.js", + "src/i18n/index.js", + "src/i18n/locale.js", + "src/i18n/locales/en/cockpit.js", + "src/i18n/locales/en/layers.js", + "src/i18n/locales/en/setup.js", + "src/i18n/locales/en/shell.js", "src/ui/cockpit.js", "src/ui/cockpitBriefing.js", "src/ui/cockpitCamera.js", "src/ui/cockpitContext.js", "src/ui/cockpitController.js", "src/ui/cockpitDisplayPortal.js", - "src/ui/displayPanelScroll.js", "src/ui/cockpitInput.js", "src/ui/cockpitInstruments.js", "src/ui/cockpitLayout.js", "src/ui/cockpitPresentation.js", "src/ui/cockpitSignals.js", "src/ui/cockpitTrackingController.js", - "src/cockpitMath.js", - "src/cockpitUtilityLayout.js", - "src/cockpitVisionPolicy.js", + "src/ui/displayPanelScroll.js", "src/ui/panelRailGeometry.js" ], - "external": ["cesium"] + "external": [ + "cesium" + ] }, "scene-controls": { - "exports": ["./ui/scenes"], + "exports": [ + "./ui/scenes" + ], "modules": [ - "src/ui/scenes.js", + "src/i18n/index.js", + "src/i18n/locale.js", + "src/i18n/locales/en/cockpit.js", + "src/i18n/locales/en/layers.js", + "src/i18n/locales/en/setup.js", + "src/i18n/locales/en/shell.js", "src/ui/sceneControls.js", - "src/ui/scenePresentation.js" + "src/ui/scenePresentation.js", + "src/ui/scenes.js" ], "external": [] }, "ui-shell": { - "exports": ["./ui/shell"], + "exports": [ + "./ui/shell" + ], "modules": [ - "src/hudLayouts.js", - "src/hudLayoutPolicy.js", - "src/cyberSonar.js", - "src/ui/radioPanelPlacement.js", "src/app/stateChannel.js", "src/bloom.js", "src/cctvFocusPolicy.js", @@ -510,13 +682,27 @@ "src/cockpitVisionPolicy.js", "src/contactsDetectionPolicy.js", "src/contextModePolicy.js", + "src/cyberSonar.js", + "src/data/cameraArrival.js", "src/data/detectionPolicy.js", + "src/data/feedState.js", "src/data/installationFeedback.js", + "src/data/layerSnapshot.js", "src/data/layerState.js", "src/data/layerStateTokenReservations.json", "src/data/militaryAwarenessEngine.js", "src/data/scenePick.js", + "src/hudLayoutPolicy.js", + "src/hudLayouts.js", + "src/i18n/index.js", + "src/i18n/locale.js", + "src/i18n/locales/en/cockpit.js", + "src/i18n/locales/en/layers.js", + "src/i18n/locales/en/setup.js", + "src/i18n/locales/en/shell.js", "src/keySetupCore.mjs", + "src/layers/localAdsb/feedNames.js", + "src/layers/weather/imageryHost.js", "src/loadingFeedback.js", "src/locationStatus.js", "src/mapStackChips.js", @@ -530,27 +716,26 @@ "src/styles/snow.js", "src/styles/surveillance.js", "src/styles/thermal.js", + "src/ui/aircraftDisplay.js", "src/ui/applicationShell.js", - "src/ui/cyberSonarControls.js", - "src/ui/locationNavigation.js", - "src/ui/cockpitCoordinator.js", - "src/ui/cameraOrientationControls.js", "src/ui/applicationShortcuts.js", + "src/ui/cameraOrientationControls.js", "src/ui/cctv.js", "src/ui/cctvBindings.js", "src/ui/cctvCalibration.js", "src/ui/cctvControls.js", "src/ui/cctvFrames.js", - "src/ui/cctvVideo.js", "src/ui/cctvPresentation.js", + "src/ui/cctvVideo.js", + "src/ui/chipGroup.js", "src/ui/clearLayersControl.js", "src/ui/cockpit.js", "src/ui/cockpitBriefing.js", "src/ui/cockpitCamera.js", "src/ui/cockpitContext.js", "src/ui/cockpitController.js", + "src/ui/cockpitCoordinator.js", "src/ui/cockpitDisplayPortal.js", - "src/ui/displayPanelScroll.js", "src/ui/cockpitInput.js", "src/ui/cockpitInstruments.js", "src/ui/cockpitLayout.js", @@ -566,20 +751,21 @@ "src/ui/contextSession.js", "src/ui/contextSubscriptions.js", "src/ui/contextTransactions.js", + "src/ui/cyberSonarControls.js", + "src/ui/displayBindings.js", "src/ui/displayControls.js", + "src/ui/displayPanelScroll.js", "src/ui/effects.js", "src/ui/frameRateMonitor.js", + "src/ui/layerBindings.js", "src/ui/layerPanel.js", - "src/ui/weatherPanel.js", - "src/ui/railCards.js", - "src/ui/railCardBlocks.js", - "src/ui/chipGroup.js", - "src/ui/rowList.js", - "src/ui/railTimeline.js", "src/ui/layers.js", "src/ui/leftPanelRail.js", + "src/ui/localSdrControls.js", + "src/ui/localSdrPresentation.js", "src/ui/location.js", "src/ui/locationControls.js", + "src/ui/locationNavigation.js", "src/ui/locationSearch.js", "src/ui/mapSource.js", "src/ui/mapSourceControls.js", @@ -594,15 +780,21 @@ "src/ui/radio.js", "src/ui/radioBindings.js", "src/ui/radioControls.js", + "src/ui/radioPanelPlacement.js", "src/ui/radioPresentation.js", "src/ui/radioTunerModel.js", + "src/ui/railCardBlocks.js", + "src/ui/railCards.js", + "src/ui/railTimeline.js", "src/ui/recordingControls.js", "src/ui/rightPanelRail.js", + "src/ui/rowList.js", "src/ui/sceneControls.js", "src/ui/scenePresentation.js", "src/ui/scenes.js", "src/ui/shareRestoration.js", "src/ui/shellElements.js", + "src/ui/shellFacade.js", "src/ui/shellFeedback.js", "src/ui/styleParameters.js", "src/ui/surfaceKeyboard.js", @@ -611,23 +803,17 @@ "src/ui/visualInput.js", "src/ui/visualPresets.js", "src/ui/visualSettings.js", - "src/worldFocus.js", - "src/data/feedState.js", - "src/data/layerSnapshot.js", - "src/ui/aircraftDisplay.js", - "src/layers/weather/imageryHost.js", - "src/ui/layerBindings.js", - "src/ui/displayBindings.js", - "src/ui/shellFacade.js", - "src/ui/localSdrControls.js", - "src/layers/localAdsb/feedNames.js", - "src/ui/localSdrPresentation.js", - "src/data/cameraArrival.js" + "src/ui/weatherPanel.js", + "src/worldFocus.js" ], - "external": ["cesium"] + "external": [ + "cesium" + ] }, "ui-styles": { - "exports": ["./ui/styles"], + "exports": [ + "./ui/styles" + ], "modules": [ "src/ui/styles.js", "style.css", @@ -657,7 +843,9 @@ "external": [] }, "director": { - "exports": ["./director"], + "exports": [ + "./director" + ], "modules": [ "src/director/playback.js", "src/director/clock.js", @@ -680,59 +868,71 @@ "external": [] }, "scenes": { - "exports": ["./scenes"], + "exports": [ + "./scenes" + ], "modules": [ - "src/scenes/nepalEvidencePack.js", + "src/app/stateChannel.js", + "src/bloom.js", + "src/contextModePolicy.js", + "src/data/bhoteKoshiFloodPath.js", "src/data/bhoteKoshiIncidentPlaces.js", "src/data/bhoteKoshiShotPaths.js", - "src/data/bhoteKoshiFloodPath.js", - "src/maps/catalog.js", - "src/scenes/director.js", - "src/scenes/playbackAdapter.js", - "src/director/playback.js", - "src/scenes/recipes.js", - "src/scenes/scenePolicy.js", - "src/bloom.js", - "src/app/stateChannel.js", - "src/ui/scenes.js", - "src/ui/sceneControls.js", - "src/ui/scenePresentation.js", - "src/contextModePolicy.js", - "src/director/clock.js", - "src/director/timeline.js", - "src/scenes/shotPresentation.js", - "src/scenes/packs/registry.js", - "src/scenes/packs/defaults.js", - "src/scenes/packs/nepal.js", - "src/director/document.js", - "src/scenes/project.js", - "src/director/documentFields.js", - "src/director/cameraDocument.js", + "src/data/cameraArrival.js", + "src/data/inputOwnership.js", + "src/director/authoring.js", "src/director/camera.js", - "src/scenes/cameraMotion.js", - "src/director/packs/source.js", - "src/director/packs/session.js", - "src/director/packs/geojson.js", - "src/director/packs/manifest.js", - "src/scenes/dataPacks/controller.js", - "src/scenes/dataPacks/presentation.js", - "src/scenes/dataPacks/geometry.js", + "src/director/cameraDocument.js", + "src/director/clock.js", + "src/director/document.js", + "src/director/documentFields.js", "src/director/interactions/document.js", "src/director/interactions/session.js", - "src/scenes/interactions.js", - "src/data/inputOwnership.js", + "src/director/packs/geojson.js", + "src/director/packs/manifest.js", + "src/director/packs/session.js", + "src/director/packs/source.js", + "src/director/playback.js", "src/director/sharing/bundle.js", - "src/director/sharing/preview.js", "src/director/sharing/lifetime.js", - "src/director/authoring.js", + "src/director/sharing/preview.js", + "src/director/timeline.js", + "src/i18n/index.js", + "src/i18n/locale.js", + "src/i18n/locales/en/cockpit.js", + "src/i18n/locales/en/layers.js", + "src/i18n/locales/en/setup.js", + "src/i18n/locales/en/shell.js", + "src/maps/catalog.js", + "src/scenes/cameraMotion.js", + "src/scenes/dataPacks/controller.js", + "src/scenes/dataPacks/geometry.js", + "src/scenes/dataPacks/presentation.js", + "src/scenes/director.js", + "src/scenes/interactions.js", + "src/scenes/nepalEvidencePack.js", + "src/scenes/packs/defaults.js", + "src/scenes/packs/nepal.js", + "src/scenes/packs/registry.js", + "src/scenes/playbackAdapter.js", + "src/scenes/project.js", + "src/scenes/recipes.js", + "src/scenes/scenePolicy.js", "src/scenes/sharing.js", + "src/scenes/shotPresentation.js", + "src/ui/sceneControls.js", + "src/ui/scenePresentation.js", "src/ui/sceneSharing.js", - "src/data/cameraArrival.js" + "src/ui/scenes.js" ], - "external": ["cesium"] + "external": [ + "cesium" + ] }, "live-observations": { - "exports": ["./sources/live"], + "exports": [ + "./sources/live" + ], "modules": [ "src/sources/live/aircraft.js", "src/sources/live/contract.js", @@ -743,7 +943,9 @@ "external": [] }, "civil-flights": { - "exports": ["./layers/flights"], + "exports": [ + "./layers/flights" + ], "modules": [ "src/cyberSonar.js", "src/data/aircraftClass.js", @@ -754,38 +956,48 @@ "src/data/cockpitContactDot.js", "src/data/contactMatch.js", "src/data/iconOrientation.js", + "src/data/inputOwnership.js", "src/data/layerState.js", "src/data/layerStateTokenReservations.json", + "src/data/modelEligibility.js", "src/data/modelVisualAnchor.js", "src/data/motionModel.js", "src/data/renderAltitude.js", "src/data/routePlausible.js", "src/data/trackedModelRegime.js", "src/data/trackingClickGesture.js", + "src/i18n/index.js", + "src/i18n/locale.js", + "src/i18n/locales/en/cockpit.js", + "src/i18n/locales/en/layers.js", + "src/i18n/locales/en/setup.js", + "src/i18n/locales/en/shell.js", "src/layers/flights/controller.js", "src/layers/flights/enrichment.js", "src/layers/flights/evidence.js", "src/layers/flights/index.js", "src/layers/flights/ingestion.js", "src/layers/flights/lifecycle.js", + "src/layers/flights/modelSpec.js", "src/layers/flights/motion.js", "src/layers/flights/policy.js", "src/layers/flights/queries.js", + "src/layers/flights/recordPolicy.js", + "src/layers/flights/records.js", "src/layers/flights/rendering.js", + "src/layers/flights/snapshotRenderer.js", "src/layers/flights/state.js", "src/layers/flights/testing.js", - "src/layers/flights/tracking.js", - "src/layers/flights/records.js", - "src/layers/flights/recordPolicy.js", - "src/layers/flights/snapshotRenderer.js", - "src/layers/flights/modelSpec.js", - "src/data/inputOwnership.js", - "src/data/modelEligibility.js" + "src/layers/flights/tracking.js" ], - "external": ["cesium"] + "external": [ + "cesium" + ] }, "military-flights": { - "exports": ["./layers/military"], + "exports": [ + "./layers/military" + ], "modules": [ "src/cyberSonar.js", "src/data/aircraftClass.js", @@ -796,13 +1008,21 @@ "src/data/cockpitContactDot.js", "src/data/contactMatch.js", "src/data/iconOrientation.js", + "src/data/inputOwnership.js", "src/data/layerState.js", "src/data/layerStateTokenReservations.json", + "src/data/modelEligibility.js", "src/data/modelVisualAnchor.js", "src/data/motionModel.js", "src/data/renderAltitude.js", "src/data/trackedModelRegime.js", "src/data/trackingClickGesture.js", + "src/i18n/index.js", + "src/i18n/locale.js", + "src/i18n/locales/en/cockpit.js", + "src/i18n/locales/en/layers.js", + "src/i18n/locales/en/setup.js", + "src/i18n/locales/en/shell.js", "src/layers/military/controller.js", "src/layers/military/index.js", "src/layers/military/ingestion.js", @@ -810,20 +1030,22 @@ "src/layers/military/motion.js", "src/layers/military/policy.js", "src/layers/military/queries.js", + "src/layers/military/recordPolicy.js", + "src/layers/military/records.js", "src/layers/military/rendering.js", + "src/layers/military/snapshotRenderer.js", "src/layers/military/state.js", "src/layers/military/testing.js", - "src/layers/military/tracking.js", - "src/layers/military/records.js", - "src/layers/military/recordPolicy.js", - "src/layers/military/snapshotRenderer.js", - "src/data/inputOwnership.js", - "src/data/modelEligibility.js" + "src/layers/military/tracking.js" ], - "external": ["cesium"] + "external": [ + "cesium" + ] }, "aircraft-mechanics": { - "exports": ["./aircraft"], + "exports": [ + "./aircraft" + ], "modules": [ "src/data/aircraftClass.js", "src/data/aircraftIcons.js", @@ -845,11 +1067,24 @@ "src/layers/aircraft/index.js", "src/data/inputOwnership.js" ], - "external": ["cesium"] + "external": [ + "cesium" + ] }, "vessel-layer": { - "exports": ["./layers/vessels"], + "exports": [ + "./layers/vessels" + ], "modules": [ + "src/data/iconOrientation.js", + "src/data/inputOwnership.js", + "src/data/vesselLabels.js", + "src/i18n/index.js", + "src/i18n/locale.js", + "src/i18n/locales/en/cockpit.js", + "src/i18n/locales/en/layers.js", + "src/i18n/locales/en/setup.js", + "src/i18n/locales/en/shell.js", "src/layers/vessels/cards.js", "src/layers/vessels/evidence.js", "src/layers/vessels/index.js", @@ -857,32 +1092,37 @@ "src/layers/vessels/lifecycle.js", "src/layers/vessels/policy.js", "src/layers/vessels/queries.js", + "src/layers/vessels/recordPolicy.js", + "src/layers/vessels/records.js", "src/layers/vessels/rendering.js", "src/layers/vessels/selection.js", + "src/layers/vessels/snapshotRenderer.js", "src/layers/vessels/state.js", "src/layers/vessels/testing.js", - "src/layers/vessels/tracking.js", - "src/data/iconOrientation.js", - "src/data/vesselLabels.js", - "src/layers/vessels/records.js", - "src/layers/vessels/recordPolicy.js", - "src/layers/vessels/snapshotRenderer.js", - "src/data/inputOwnership.js" + "src/layers/vessels/tracking.js" ], - "external": ["cesium"] + "external": [ + "cesium" + ] }, "earthquakes": { - "exports": ["./layers/earthquakes"], + "exports": [ + "./layers/earthquakes" + ], "modules": [ "src/layers/earthquakes/index.js", "src/layers/earthquakes/model.js", "src/layers/earthquakes/source.js", "src/layers/earthquakes/records.js" ], - "external": ["cesium"] + "external": [ + "cesium" + ] }, "recent-imagery": { - "exports": ["./layers/recent-imagery"], + "exports": [ + "./layers/recent-imagery" + ], "modules": [ "src/layers/recentImagery/index.js", "src/layers/recentImagery/model.js", @@ -891,14 +1131,25 @@ "src/layers/recentImagery/thumbnails.js", "src/maps/imageryHost.js" ], - "external": ["cesium"] + "external": [ + "cesium" + ] }, "fire-layer": { - "exports": ["./layers/firms"], + "exports": [ + "./layers/firms" + ], "modules": [ "src/data/firmsAdapt.js", "src/data/firmsLabels.js", "src/data/iconOrientation.js", + "src/data/inputOwnership.js", + "src/i18n/index.js", + "src/i18n/locale.js", + "src/i18n/locales/en/cockpit.js", + "src/i18n/locales/en/layers.js", + "src/i18n/locales/en/setup.js", + "src/i18n/locales/en/shell.js", "src/layers/firms/anchors.js", "src/layers/firms/cards.js", "src/layers/firms/index.js", @@ -911,17 +1162,27 @@ "src/layers/firms/selection.js", "src/layers/firms/source.js", "src/layers/firms/state.js", - "src/layers/firms/viewport.js", - "src/data/inputOwnership.js" + "src/layers/firms/viewport.js" ], - "external": ["cesium"] + "external": [ + "cesium" + ] }, "satellites-layer": { - "exports": ["./layers/satellites"], + "exports": [ + "./layers/satellites" + ], "modules": [ + "src/data/inputOwnership.js", "src/data/issPass.js", "src/data/satelliteClass.js", "src/data/satellitePass.js", + "src/i18n/index.js", + "src/i18n/locale.js", + "src/i18n/locales/en/cockpit.js", + "src/i18n/locales/en/layers.js", + "src/i18n/locales/en/setup.js", + "src/i18n/locales/en/shell.js", "src/layers/satellites/catalog.js", "src/layers/satellites/controls.js", "src/layers/satellites/index.js", @@ -930,21 +1191,32 @@ "src/layers/satellites/labels.js", "src/layers/satellites/lifecycle.js", "src/layers/satellites/orbits.js", - "src/layers/satellites/records.js", "src/layers/satellites/policy.js", + "src/layers/satellites/records.js", "src/layers/satellites/rendering.js", "src/layers/satellites/source.js", "src/layers/satellites/state.js", "src/layers/satellites/testing.js", - "src/layers/satellites/tracking.js", - "src/data/inputOwnership.js" + "src/layers/satellites/tracking.js" ], - "external": ["cesium", "satellite.js"] + "external": [ + "cesium", + "satellite.js" + ] }, "launches-layer": { - "exports": ["./layers/launches"], + "exports": [ + "./layers/launches" + ], "modules": [ "src/cyberSonar.js", + "src/data/inputOwnership.js", + "src/i18n/index.js", + "src/i18n/locale.js", + "src/i18n/locales/en/cockpit.js", + "src/i18n/locales/en/layers.js", + "src/i18n/locales/en/setup.js", + "src/i18n/locales/en/shell.js", "src/layers/launches/camera.js", "src/layers/launches/controls.js", "src/layers/launches/index.js", @@ -963,53 +1235,74 @@ "src/layers/launches/selection.js", "src/layers/launches/source.js", "src/layers/launches/state.js", - "src/layers/launches/testing.js", - "src/data/inputOwnership.js" + "src/layers/launches/testing.js" ], - "external": ["cesium"] + "external": [ + "cesium" + ] }, "installations-layer": { - "exports": ["./layers/installations"], + "exports": [ + "./layers/installations" + ], "modules": [ + "src/data/bundledJson.js", "src/data/cameraSensitivity.js", + "src/data/infrastructureOverlayEntry.js", + "src/data/inputOwnership.js", "src/data/installationFeedback.js", + "src/data/local_data/osm_military_names/names.json", "src/data/militaryInstallationData.js", + "src/data/militaryNames.js", + "src/data/retryableLoad.js", + "src/data/tomtomTiles.js", + "src/i18n/index.js", + "src/i18n/locale.js", + "src/i18n/locales/en/cockpit.js", + "src/i18n/locales/en/layers.js", + "src/i18n/locales/en/setup.js", + "src/i18n/locales/en/shell.js", "src/layers/installations/controls.js", "src/layers/installations/index.js", "src/layers/installations/ingestion.js", "src/layers/installations/lifecycle.js", "src/layers/installations/model.js", + "src/layers/installations/namedMarkers.js", "src/layers/installations/policy.js", "src/layers/installations/rendering.js", "src/layers/installations/selection.js", "src/layers/installations/source.js", "src/layers/installations/state.js", "src/layers/installations/viewport.js", - "src/data/inputOwnership.js", - "src/data/tomtomTiles.js", "src/sources/capability.js", "src/sources/httpBody.js", - "src/sources/openFreeMap.js", "src/sources/militaryTileGeometry.js", - "src/sources/vectorTiles.js", + "src/sources/openFreeMap.js", "src/sources/phaseTiming.js", - "src/data/militaryNames.js", "src/sources/requestDeadline.js", - "src/data/local_data/osm_military_names/names.json", - "src/data/bundledJson.js", - "src/data/retryableLoad.js", - "src/layers/installations/namedMarkers.js", - "src/data/infrastructureOverlayEntry.js" + "src/sources/vectorTiles.js" ], - "external": ["cesium", "@mapbox/vector-tile", "pbf"] + "external": [ + "cesium", + "@mapbox/vector-tile", + "pbf" + ] }, "awareness-layer": { - "exports": ["./layers/awareness"], + "exports": [ + "./layers/awareness" + ], "modules": [ - "src/cyberSonar.js", "src/cockpitMath.js", + "src/cyberSonar.js", "src/data/iconOrientation.js", "src/data/militaryAwarenessEngine.js", + "src/i18n/index.js", + "src/i18n/locale.js", + "src/i18n/locales/en/cockpit.js", + "src/i18n/locales/en/layers.js", + "src/i18n/locales/en/setup.js", + "src/i18n/locales/en/shell.js", "src/layers/awareness/controls.js", "src/layers/awareness/dependencies.js", "src/layers/awareness/focus.js", @@ -1028,10 +1321,14 @@ "src/layers/awareness/testing.js", "src/ui/panelRailGeometry.js" ], - "external": ["cesium"] + "external": [ + "cesium" + ] }, "traffic-layer": { - "exports": ["./layers/traffic"], + "exports": [ + "./layers/traffic" + ], "modules": [ "src/data/cameraSensitivity.js", "src/data/flowMatch.js", @@ -1040,6 +1337,12 @@ "src/data/trafficFlowStyle.js", "src/data/trafficPresetStyle.js", "src/data/trafficQueue.js", + "src/i18n/index.js", + "src/i18n/locale.js", + "src/i18n/locales/en/cockpit.js", + "src/i18n/locales/en/layers.js", + "src/i18n/locales/en/setup.js", + "src/i18n/locales/en/shell.js", "src/layers/traffic/animation.js", "src/layers/traffic/controls.js", "src/layers/traffic/flow.js", @@ -1048,32 +1351,46 @@ "src/layers/traffic/footprint.js", "src/layers/traffic/index.js", "src/layers/traffic/ingestion.js", - "src/sources/requestDeadline.js", "src/layers/traffic/lifecycle.js", "src/layers/traffic/model.js", "src/layers/traffic/policy.js", "src/layers/traffic/rendering.js", "src/layers/traffic/retention.js", + "src/layers/traffic/roadModes.js", "src/layers/traffic/source.js", "src/layers/traffic/state.js", "src/layers/traffic/style.js", "src/layers/traffic/surface.js", "src/layers/traffic/timing.js", "src/layers/traffic/viewport.js", - "src/sources/overpassRoads.js", "src/sources/capability.js", "src/sources/httpBody.js", - "src/sources/openFreeMap.js", "src/sources/militaryTileGeometry.js", - "src/sources/vectorTiles.js", + "src/sources/openFreeMap.js", + "src/sources/overpassRoads.js", "src/sources/phaseTiming.js", - "src/layers/traffic/roadModes.js" + "src/sources/requestDeadline.js", + "src/sources/vectorTiles.js" ], - "external": ["cesium", "pbf", "@mapbox/vector-tile"] + "external": [ + "cesium", + "pbf", + "@mapbox/vector-tile" + ] }, "bikeshare-layer": { - "exports": ["./layers/bikeshare"], + "exports": [ + "./layers/bikeshare" + ], "modules": [ + "src/data/cameraSensitivity.js", + "src/data/inputOwnership.js", + "src/i18n/index.js", + "src/i18n/locale.js", + "src/i18n/locales/en/cockpit.js", + "src/i18n/locales/en/layers.js", + "src/i18n/locales/en/setup.js", + "src/i18n/locales/en/shell.js", "src/layers/bikeshare/controls.js", "src/layers/bikeshare/index.js", "src/layers/bikeshare/ingestion.js", @@ -1087,21 +1404,31 @@ "src/layers/bikeshare/source.js", "src/layers/bikeshare/state.js", "src/layers/bikeshare/testing.js", - "src/layers/bikeshare/viewport.js", - "src/data/inputOwnership.js", - "src/data/cameraSensitivity.js" + "src/layers/bikeshare/viewport.js" ], - "external": ["cesium"] + "external": [ + "cesium" + ] }, "cctv-layer": { - "exports": ["./layers/cctv"], + "exports": [ + "./layers/cctv" + ], "modules": [ "src/data/cctvCards.js", + "src/data/cctvFootprint.js", "src/data/cctvGizmo.js", "src/data/cctvLod.js", "src/data/cctvViewshed.js", "src/data/iconOrientation.js", + "src/data/inputOwnership.js", "src/data/trackingClickGesture.js", + "src/i18n/index.js", + "src/i18n/locale.js", + "src/i18n/locales/en/cockpit.js", + "src/i18n/locales/en/layers.js", + "src/i18n/locales/en/setup.js", + "src/i18n/locales/en/shell.js", "src/layers/cctv/calibration.js", "src/layers/cctv/cards.js", "src/layers/cctv/catalog.js", @@ -1121,21 +1448,24 @@ "src/layers/cctv/policy.js", "src/layers/cctv/presentation.js", "src/layers/cctv/projection.js", - "src/layers/cctv/videoPlayback.js", "src/layers/cctv/rendering.js", "src/layers/cctv/selection.js", "src/layers/cctv/source.js", + "src/layers/cctv/sourcePolicy.js", "src/layers/cctv/state.js", "src/layers/cctv/testing.js", - "src/overlays/worldOverlayTokens.js", - "src/data/cctvFootprint.js", - "src/data/inputOwnership.js", - "src/layers/cctv/sourcePolicy.js" + "src/layers/cctv/videoPlayback.js", + "src/overlays/worldOverlayTokens.js" ], - "external": ["hls.js", "cesium"] + "external": [ + "hls.js", + "cesium" + ] }, "alpr-cameras": { - "exports": ["./layers/alpr"], + "exports": [ + "./layers/alpr" + ], "modules": [ "src/layers/alpr/index.js", "src/layers/alpr/model.js", @@ -1154,15 +1484,28 @@ "src/sources/phaseTiming.js", "src/layers/alpr/floors.js" ], - "external": ["cesium", "@mapbox/vector-tile", "pbf"] + "external": [ + "cesium", + "@mapbox/vector-tile", + "pbf" + ] }, "radio-layer": { - "exports": ["./layers/radio"], + "exports": [ + "./layers/radio" + ], "modules": [ "src/data/iconOrientation.js", + "src/data/inputOwnership.js", "src/data/layerState.js", "src/data/layerStateTokenReservations.json", "src/data/radioCountry.js", + "src/i18n/index.js", + "src/i18n/locale.js", + "src/i18n/locales/en/cockpit.js", + "src/i18n/locales/en/layers.js", + "src/i18n/locales/en/setup.js", + "src/i18n/locales/en/shell.js", "src/layers/radio/catalogModel.js", "src/layers/radio/categories.js", "src/layers/radio/clustering.js", @@ -1185,14 +1528,24 @@ "src/layers/radio/tuning.js", "src/layers/radio/tuningNoise.js", "src/layers/radio/volume.js", - "src/ui/radioTunerModel.js", - "src/data/inputOwnership.js" + "src/ui/radioTunerModel.js" ], - "external": ["cesium"] + "external": [ + "cesium" + ] }, "submarine-cables": { - "exports": ["./layers/submarine-cables"], + "exports": [ + "./layers/submarine-cables" + ], "modules": [ + "src/data/inputOwnership.js", + "src/i18n/index.js", + "src/i18n/locale.js", + "src/i18n/locales/en/cockpit.js", + "src/i18n/locales/en/layers.js", + "src/i18n/locales/en/setup.js", + "src/i18n/locales/en/shell.js", "src/layers/submarineCables/geometry.js", "src/layers/submarineCables/index.js", "src/layers/submarineCables/ingestion.js", @@ -1202,13 +1555,16 @@ "src/layers/submarineCables/policy.js", "src/layers/submarineCables/rendering.js", "src/layers/submarineCables/state.js", - "src/layers/submarineCables/surface.js", - "src/data/inputOwnership.js" + "src/layers/submarineCables/surface.js" ], - "external": ["cesium"] + "external": [ + "cesium" + ] }, "bundled-cables": { - "exports": ["./sources/bundled-cables"], + "exports": [ + "./sources/bundled-cables" + ], "modules": [ "src/layers/submarineCables/bundledSource.js", "src/data/local_data/telegeography_submarine_cables/cable-geo.json", @@ -1217,7 +1573,10 @@ "external": [] }, "geography": { - "exports": ["./geography/natural-earth", "./geography/neighborhoods"], + "exports": [ + "./geography/natural-earth", + "./geography/neighborhoods" + ], "modules": [ "src/data/naturalEarthRegions.js", "src/data/neighborhoodPolygons.js", @@ -1239,21 +1598,29 @@ "./maps/defaults" ], "modules": [ + "src/i18n/index.js", + "src/i18n/locale.js", + "src/i18n/locales/en/cockpit.js", + "src/i18n/locales/en/layers.js", + "src/i18n/locales/en/setup.js", + "src/i18n/locales/en/shell.js", + "src/keySetupCore.mjs", "src/maps/availability.js", "src/maps/catalog.js", "src/maps/controller.js", - "src/maps/imageryComparison.js", "src/maps/credits.js", "src/maps/defaultSources.js", "src/maps/google3d.js", "src/maps/imagery.js", + "src/maps/imageryComparison.js", + "src/maps/imageryHost.js", "src/maps/registry.js", "src/maps/terrain.js", - "src/maps/terrainRetry.js", - "src/keySetupCore.mjs", - "src/maps/imageryHost.js" + "src/maps/terrainRetry.js" ], - "external": ["cesium"] + "external": [ + "cesium" + ] }, "voice-connection": { "exports": [ @@ -1265,27 +1632,33 @@ "./voice/realtime-session" ], "modules": [ - "src/voice/realtimeController.js", - "src/voice/realtimeBackend.js", + "src/i18n/index.js", + "src/i18n/locale.js", + "src/i18n/locales/en/cockpit.js", + "src/i18n/locales/en/layers.js", + "src/i18n/locales/en/setup.js", + "src/i18n/locales/en/shell.js", + "src/voice/commands.js", "src/voice/control.js", "src/voice/layerSummary.js", - "src/voice/voiceCost.js", - "src/voice/commands.js", - "src/voice/session.js", - "src/voice/sessionCommands.js", - "src/voice/realtimeSession.js", + "src/voice/realtimeBackend.js", + "src/voice/realtimeConnection.js", + "src/voice/realtimeController.js", + "src/voice/realtimeCost.js", + "src/voice/realtimeDiagnostics.js", "src/voice/realtimeEvents.js", + "src/voice/realtimeFacade.js", + "src/voice/realtimeInput.js", + "src/voice/realtimeInputPolicy.js", "src/voice/realtimePreferences.js", "src/voice/realtimeProtocol.js", - "src/voice/realtimeDiagnostics.js", - "src/voice/realtimeViewport.js", - "src/voice/realtimeInputPolicy.js", - "src/voice/realtimeInput.js", - "src/voice/realtimeCost.js", - "src/voice/realtimeFacade.js", "src/voice/realtimeRadio.js", + "src/voice/realtimeSession.js", "src/voice/realtimeTurns.js", - "src/voice/realtimeConnection.js" + "src/voice/realtimeViewport.js", + "src/voice/session.js", + "src/voice/sessionCommands.js", + "src/voice/voiceCost.js" ], "external": [] }, @@ -1309,27 +1682,16 @@ "./standalone/catalog" ], "modules": [ - "src/cyberSonarScene.js", - "src/cyberSonar.js", - "src/hudLayouts.js", - "src/hudLayoutPolicy.js", - "src/ui/radioPanelPlacement.js", - "src/cyberSonarGpu.js", - "src/scenes/nepalEvidencePack.js", - "src/data/bhoteKoshiEvent.js", - "src/ui/imagerySplit.js", - "src/data/bhoteKoshiEmbeddedMedia.js", - "src/data/bhoteKoshiLocator.js", - "src/data/bhoteKoshiIncidentPlaces.js", - "src/data/bhoteKoshiFloodPath.js", - "src/data/bhoteKoshiShotPaths.js", "src/annotations/annotationEngine.js", "src/annotations/annotationResolver.js", + "src/annotations/drawMode.js", + "src/annotations/drawTool.js", "src/annotations/hybridAnnotationRenderer.js", "src/annotations/index.js", "src/annotations/resolver.js", "src/annotations/screenAnnotationRenderer.js", "src/annotations/worldAnnotationRenderer.js", + "src/app/atmosphereCompat.js", "src/app/catalog.js", "src/app/constructCatalog.js", "src/app/controls.js", @@ -1340,28 +1702,32 @@ "src/app/layers/alprCameras.js", "src/app/layers/bikeshare.js", "src/app/layers/cctv.js", + "src/app/layers/directions.js", "src/app/layers/earthquakes.js", "src/app/layers/firms.js", "src/app/layers/flights.js", + "src/app/layers/localAdsb.js", "src/app/layers/militaryAwareness.js", "src/app/layers/militaryFlights.js", "src/app/layers/militaryInstallations.js", "src/app/layers/overlayHost.js", + "src/app/layers/perimeters.js", "src/app/layers/radio.js", + "src/app/layers/recentImagery.js", "src/app/layers/rocketLaunches.js", "src/app/layers/satellites.js", "src/app/layers/submarineCables.js", "src/app/layers/traffic.js", + "src/app/layers/transit.js", + "src/app/localGeojsonServices.js", "src/app/operations.js", "src/app/scene.js", - "src/sources/sourceSlot.js", "src/app/sources.js", "src/app/startupChrome.js", "src/app/stateChannel.js", "src/app/surfaceServices.js", "src/app/tools.js", "src/app/viewer.js", - "src/app/atmosphereCompat.js", "src/bloom.js", "src/camera.js", "src/cameraGroundGuard.js", @@ -1377,6 +1743,10 @@ "src/contactsDetectionPolicy.js", "src/contextModePolicy.js", "src/creditKeyboard.js", + "src/cyberSonar.js", + "src/cyberSonarGpu.js", + "src/cyberSonarScene.js", + "src/data/adminBoundaries.js", "src/data/aircraftClass.js", "src/data/aircraftIcons.js", "src/data/aircraftMeta.js", @@ -1385,7 +1755,16 @@ "src/data/aisLiveVessels.js", "src/data/alprCameras.js", "src/data/analystEngine.js", + "src/data/bhoteKoshiEmbeddedMedia.js", + "src/data/bhoteKoshiEvent.js", + "src/data/bhoteKoshiFloodPath.js", + "src/data/bhoteKoshiIncidentPlaces.js", + "src/data/bhoteKoshiLocator.js", + "src/data/bhoteKoshiShotPaths.js", "src/data/bikeshare.js", + "src/data/bundledJson.js", + "src/data/cameraArrival.js", + "src/data/cameraSensitivity.js", "src/data/cctv.js", "src/data/cctvCards.js", "src/data/cctvFootprint.js", @@ -1395,28 +1774,19 @@ "src/data/cockpitAirLod.js", "src/data/cockpitContactDot.js", "src/data/contactMatch.js", + "src/data/contactPlayback.js", + "src/data/contactTrailRenderer.js", "src/data/contextStore.js", "src/data/dataCredits.js", - "src/data/wind.js", - "src/layers/wind/index.js", - "src/layers/wind/model.js", - "src/layers/wind/fields.js", - "src/layers/wind/streamlines.js", - "src/layers/wind/gpuRendering.js", - "src/layers/wind/relief.js", - "src/layers/wind/inspection.js", - "src/layers/wind/presentation.js", - "src/layers/wind/rendering.js", - "src/layers/weather/rasterTiles.js", - "src/layers/wind/source.js", - "src/sources/windBody.js", "src/data/detection.js", "src/data/detectionCohort.js", "src/data/detectionDraw.js", "src/data/detectionPolicy.js", "src/data/detectionPresentation.js", "src/data/detectionRenderDemand.js", + "src/data/directions.js", "src/data/earthquakes.js", + "src/data/feedState.js", "src/data/fireAnchors.js", "src/data/firmsAdapt.js", "src/data/firmsHeatmap.js", @@ -1427,11 +1797,15 @@ "src/data/geoid.js", "src/data/groundFloor.js", "src/data/groundSnap.js", + "src/data/gtfsRealtime.js", "src/data/iconOrientation.js", "src/data/infrastructure.js", + "src/data/infrastructureOverlayEntry.js", + "src/data/inputOwnership.js", "src/data/installationFeedback.js", "src/data/issPass.js", "src/data/labelArbiter.js", + "src/data/layerSnapshot.js", "src/data/layerState.js", "src/data/layerStateTokenReservations.json", "src/data/lifecycle.js", @@ -1439,9 +1813,13 @@ "src/data/localGeojsonCore.js", "src/data/localGeojsonLod.js", "src/data/localLayers.js", + "src/data/local_data/natural_earth/countries.json", "src/data/local_data/natural_earth/marine.json", "src/data/local_data/natural_earth/regions.json", + "src/data/local_data/natural_earth/states_provinces.json", "src/data/local_data/neighborhoods/san-francisco.json", + "src/data/local_data/osm_military_names/names.json", + "src/data/local_data/us_census_counties/counties.json", "src/data/manager.js", "src/data/meshFloorSampler.js", "src/data/militaryAwareness.js", @@ -1449,14 +1827,12 @@ "src/data/militaryFlights.js", "src/data/militaryInstallationData.js", "src/data/militaryInstallations.js", + "src/data/militaryNames.js", "src/data/militaryRegistry.js", + "src/data/modelEligibility.js", "src/data/modelVisualAnchor.js", "src/data/motionModel.js", "src/data/naturalEarthRegions.js", - "src/data/adminBoundaries.js", - "src/data/local_data/natural_earth/states_provinces.json", - "src/data/local_data/natural_earth/countries.json", - "src/data/local_data/us_census_counties/counties.json", "src/data/neighborhoodPolygons.js", "src/data/pickRegistry.js", "src/data/radio.js", @@ -1464,10 +1840,10 @@ "src/data/regionalBrief.js", "src/data/regionalModel.js", "src/data/renderAltitude.js", - "src/data/bundledJson.js", "src/data/retryableLoad.js", "src/data/rocketLaunches.js", "src/data/routePlausible.js", + "src/data/routeSteps.js", "src/data/satelliteClass.js", "src/data/satellitePass.js", "src/data/satellites.js", @@ -1488,22 +1864,56 @@ "src/data/trafficPresetStyle.js", "src/data/trafficQueue.js", "src/data/trailRenderer.js", + "src/data/transit.js", + "src/data/transitFeeds.js", + "src/data/transitIcons.js", + "src/data/transitPresetStyle.js", + "src/data/transitProxy.js", "src/data/vesselLabels.js", + "src/data/wind.js", + "src/director/authoring.js", + "src/director/camera.js", + "src/director/cameraDocument.js", + "src/director/clock.js", + "src/director/document.js", + "src/director/documentFields.js", + "src/director/interactions/document.js", + "src/director/interactions/session.js", + "src/director/packs/geojson.js", + "src/director/packs/manifest.js", + "src/director/packs/session.js", + "src/director/packs/source.js", + "src/director/playback.js", + "src/director/sharing/bundle.js", + "src/director/sharing/lifetime.js", + "src/director/sharing/preview.js", + "src/director/timeline.js", "src/firstRunExperience.js", "src/hud.js", + "src/hudLayoutPolicy.js", + "src/hudLayouts.js", "src/hudLocality.js", "src/hudSummaryResponse.js", + "src/i18n/index.js", + "src/i18n/locale.js", + "src/i18n/locales/en/cockpit.js", + "src/i18n/locales/en/layers.js", + "src/i18n/locales/en/setup.js", + "src/i18n/locales/en/shell.js", "src/keySetup.js", "src/keySetupCore.mjs", "src/keylessGeocoder.js", "src/layers/aircraft/classification.js", + "src/layers/alpr/floors.js", "src/layers/alpr/index.js", "src/layers/alpr/model.js", + "src/layers/alpr/overlay.js", "src/layers/alpr/policy.js", "src/layers/alpr/presentation.js", - "src/layers/alpr/visuals.js", - "src/layers/alpr/overlay.js", + "src/layers/alpr/records.js", "src/layers/alpr/source.js", + "src/layers/alpr/tileRecords.js", + "src/layers/alpr/visuals.js", "src/layers/awareness/controls.js", "src/layers/awareness/dependencies.js", "src/layers/awareness/focus.js", @@ -1553,14 +1963,21 @@ "src/layers/cctv/policy.js", "src/layers/cctv/presentation.js", "src/layers/cctv/projection.js", - "src/layers/cctv/videoPlayback.js", "src/layers/cctv/rendering.js", "src/layers/cctv/selection.js", "src/layers/cctv/source.js", + "src/layers/cctv/sourcePolicy.js", "src/layers/cctv/state.js", "src/layers/cctv/testing.js", + "src/layers/cctv/videoPlayback.js", + "src/layers/cyclones/index.js", + "src/layers/cyclones/labels.js", + "src/layers/cyclones/rendering.js", + "src/layers/cyclones/source.js", + "src/layers/directions/index.js", "src/layers/earthquakes/index.js", "src/layers/earthquakes/model.js", + "src/layers/earthquakes/records.js", "src/layers/earthquakes/source.js", "src/layers/firms/anchors.js", "src/layers/firms/cards.js", @@ -1581,10 +1998,14 @@ "src/layers/flights/index.js", "src/layers/flights/ingestion.js", "src/layers/flights/lifecycle.js", + "src/layers/flights/modelSpec.js", "src/layers/flights/motion.js", "src/layers/flights/policy.js", "src/layers/flights/queries.js", + "src/layers/flights/recordPolicy.js", + "src/layers/flights/records.js", "src/layers/flights/rendering.js", + "src/layers/flights/snapshotRenderer.js", "src/layers/flights/state.js", "src/layers/flights/testing.js", "src/layers/flights/tracking.js", @@ -1593,6 +2014,7 @@ "src/layers/installations/ingestion.js", "src/layers/installations/lifecycle.js", "src/layers/installations/model.js", + "src/layers/installations/namedMarkers.js", "src/layers/installations/policy.js", "src/layers/installations/rendering.js", "src/layers/installations/selection.js", @@ -1618,6 +2040,15 @@ "src/layers/launches/source.js", "src/layers/launches/state.js", "src/layers/launches/testing.js", + "src/layers/localAdsb/card.js", + "src/layers/localAdsb/enrichment.js", + "src/layers/localAdsb/feedNames.js", + "src/layers/localAdsb/feeds.js", + "src/layers/localAdsb/index.js", + "src/layers/localAdsb/models.js", + "src/layers/localAdsb/motion.js", + "src/layers/localAdsb/policy.js", + "src/layers/localAdsb/status.js", "src/layers/military/controller.js", "src/layers/military/index.js", "src/layers/military/ingestion.js", @@ -1625,10 +2056,18 @@ "src/layers/military/motion.js", "src/layers/military/policy.js", "src/layers/military/queries.js", + "src/layers/military/recordPolicy.js", + "src/layers/military/records.js", "src/layers/military/rendering.js", + "src/layers/military/snapshotRenderer.js", "src/layers/military/state.js", "src/layers/military/testing.js", "src/layers/military/tracking.js", + "src/layers/perimeters/cards.js", + "src/layers/perimeters/inciweb.js", + "src/layers/perimeters/index.js", + "src/layers/perimeters/records.js", + "src/layers/perimeters/source.js", "src/layers/radio/catalogModel.js", "src/layers/radio/categories.js", "src/layers/radio/clustering.js", @@ -1651,6 +2090,11 @@ "src/layers/radio/tuning.js", "src/layers/radio/tuningNoise.js", "src/layers/radio/volume.js", + "src/layers/recentImagery/catalog.js", + "src/layers/recentImagery/index.js", + "src/layers/recentImagery/model.js", + "src/layers/recentImagery/rendering.js", + "src/layers/recentImagery/thumbnails.js", "src/layers/satellites/catalog.js", "src/layers/satellites/controls.js", "src/layers/satellites/index.js", @@ -1659,8 +2103,8 @@ "src/layers/satellites/labels.js", "src/layers/satellites/lifecycle.js", "src/layers/satellites/orbits.js", - "src/layers/satellites/records.js", "src/layers/satellites/policy.js", + "src/layers/satellites/records.js", "src/layers/satellites/rendering.js", "src/layers/satellites/source.js", "src/layers/satellites/state.js", @@ -1685,18 +2129,34 @@ "src/layers/traffic/footprint.js", "src/layers/traffic/index.js", "src/layers/traffic/ingestion.js", - "src/sources/requestDeadline.js", "src/layers/traffic/lifecycle.js", "src/layers/traffic/model.js", "src/layers/traffic/policy.js", "src/layers/traffic/rendering.js", "src/layers/traffic/retention.js", + "src/layers/traffic/roadModes.js", "src/layers/traffic/source.js", "src/layers/traffic/state.js", "src/layers/traffic/style.js", "src/layers/traffic/surface.js", "src/layers/traffic/timing.js", "src/layers/traffic/viewport.js", + "src/layers/transit/controls.js", + "src/layers/transit/height.js", + "src/layers/transit/index.js", + "src/layers/transit/ingestion.js", + "src/layers/transit/lifecycle.js", + "src/layers/transit/movement.js", + "src/layers/transit/policy.js", + "src/layers/transit/qaMetrics.js", + "src/layers/transit/queries.js", + "src/layers/transit/rendering.js", + "src/layers/transit/selection.js", + "src/layers/transit/source.js", + "src/layers/transit/state.js", + "src/layers/transit/testing.js", + "src/layers/transit/trails.js", + "src/layers/transit/viewport.js", "src/layers/vessels/cards.js", "src/layers/vessels/evidence.js", "src/layers/vessels/index.js", @@ -1704,11 +2164,34 @@ "src/layers/vessels/lifecycle.js", "src/layers/vessels/policy.js", "src/layers/vessels/queries.js", + "src/layers/vessels/recordPolicy.js", + "src/layers/vessels/records.js", "src/layers/vessels/rendering.js", "src/layers/vessels/selection.js", + "src/layers/vessels/snapshotRenderer.js", "src/layers/vessels/state.js", "src/layers/vessels/testing.js", "src/layers/vessels/tracking.js", + "src/layers/weather/clock.js", + "src/layers/weather/imageryHost.js", + "src/layers/weather/imageryOrder.js", + "src/layers/weather/index.js", + "src/layers/weather/infraredAlpha.js", + "src/layers/weather/infraredImage.js", + "src/layers/weather/rasterTiles.js", + "src/layers/weather/rendering.js", + "src/layers/weather/shellRendering.js", + "src/layers/weather/source.js", + "src/layers/wind/fields.js", + "src/layers/wind/gpuRendering.js", + "src/layers/wind/index.js", + "src/layers/wind/inspection.js", + "src/layers/wind/model.js", + "src/layers/wind/presentation.js", + "src/layers/wind/relief.js", + "src/layers/wind/rendering.js", + "src/layers/wind/source.js", + "src/layers/wind/streamlines.js", "src/loadingFeedback.js", "src/locationStatus.js", "src/locations.js", @@ -1719,15 +2202,17 @@ "src/maps/availability.js", "src/maps/catalog.js", "src/maps/controller.js", - "src/maps/imageryComparison.js", "src/maps/credits.js", "src/maps/defaultSources.js", "src/maps/google3d.js", "src/maps/imagery.js", + "src/maps/imageryComparison.js", + "src/maps/imageryHost.js", "src/maps/registry.js", "src/maps/terrain.js", "src/maps/terrainRetry.js", "src/navigationPolicy.js", + "src/nominatimGeocode.js", "src/orbit.js", "src/overlays/worldOverlay.js", "src/overlays/worldOverlayDraw.js", @@ -1735,17 +2220,36 @@ "src/panelStackLayout.js", "src/renderGovernor.js", "src/rightRailPolicy.js", + "src/scenes/cameraMotion.js", + "src/scenes/dataPacks/controller.js", + "src/scenes/dataPacks/geometry.js", + "src/scenes/dataPacks/presentation.js", "src/scenes/director.js", + "src/scenes/interactions.js", + "src/scenes/nepalEvidencePack.js", + "src/scenes/packs/defaults.js", + "src/scenes/packs/nepal.js", + "src/scenes/packs/registry.js", "src/scenes/playbackAdapter.js", - "src/director/playback.js", + "src/scenes/project.js", "src/scenes/recipes.js", "src/scenes/scenePolicy.js", + "src/scenes/sharing.js", + "src/scenes/shotPresentation.js", "src/scopeMask.js", + "src/sdr/controller.js", + "src/sdr/gain.js", + "src/sdr/spectrum.js", + "src/sdr/usbDevices.js", + "src/search/coordinateGeocoder.js", + "src/search/coordinateParser.js", "src/search/defaults.js", "src/search/geospatial.js", "src/search/google.js", "src/search/http.js", + "src/search/nominatim.js", "src/search/placeSearch.js", + "src/search/presetGeocoder.js", "src/services/application.js", "src/services/groundFloor.js", "src/services/groundSnap.js", @@ -1753,10 +2257,28 @@ "src/services/requests.js", "src/services/terrainHeights.js", "src/sharelink.js", + "src/sources/adsbRecords.js", + "src/sources/capability.js", + "src/sources/featureGeometry.js", + "src/sources/featureSource.js", + "src/sources/httpBody.js", "src/sources/live/aircraft.js", "src/sources/live/contract.js", "src/sources/live/standalone.js", "src/sources/live/vessels.js", + "src/sources/militaryTileGeometry.js", + "src/sources/nominatim.js", + "src/sources/openFreeMap.js", + "src/sources/overpassFeatures.js", + "src/sources/overpassFeaturesRecords.js", + "src/sources/overpassRoads.js", + "src/sources/phaseTiming.js", + "src/sources/reference.js", + "src/sources/requestDeadline.js", + "src/sources/sourceSlot.js", + "src/sources/transitHistory.js", + "src/sources/vectorTiles.js", + "src/sources/windBody.js", "src/splitFlap.js", "src/standalone/catalog.js", "src/standalone/layerSources.js", @@ -1766,27 +2288,26 @@ "src/styles/snow.js", "src/styles/surveillance.js", "src/styles/thermal.js", + "src/ui/aircraftDisplay.js", "src/ui/applicationShell.js", - "src/ui/cyberSonarControls.js", - "src/ui/locationNavigation.js", - "src/ui/cockpitCoordinator.js", - "src/ui/cameraOrientationControls.js", "src/ui/applicationShortcuts.js", + "src/ui/cameraOrientationControls.js", "src/ui/cctv.js", "src/ui/cctvBindings.js", "src/ui/cctvCalibration.js", "src/ui/cctvControls.js", "src/ui/cctvFrames.js", - "src/ui/cctvVideo.js", "src/ui/cctvPresentation.js", + "src/ui/cctvVideo.js", + "src/ui/chipGroup.js", "src/ui/clearLayersControl.js", "src/ui/cockpit.js", "src/ui/cockpitBriefing.js", "src/ui/cockpitCamera.js", "src/ui/cockpitContext.js", "src/ui/cockpitController.js", + "src/ui/cockpitCoordinator.js", "src/ui/cockpitDisplayPortal.js", - "src/ui/displayPanelScroll.js", "src/ui/cockpitInput.js", "src/ui/cockpitInstruments.js", "src/ui/cockpitLayout.js", @@ -1803,20 +2324,23 @@ "src/ui/contextSession.js", "src/ui/contextSubscriptions.js", "src/ui/contextTransactions.js", + "src/ui/cyberSonarControls.js", + "src/ui/displayBindings.js", "src/ui/displayControls.js", + "src/ui/displayPanelScroll.js", "src/ui/effects.js", "src/ui/frameRateMonitor.js", + "src/ui/imageryBoxTool.js", + "src/ui/imagerySplit.js", + "src/ui/layerBindings.js", "src/ui/layerPanel.js", - "src/ui/weatherPanel.js", - "src/ui/railCards.js", - "src/ui/railCardBlocks.js", - "src/ui/chipGroup.js", - "src/ui/rowList.js", - "src/ui/railTimeline.js", "src/ui/layers.js", "src/ui/leftPanelRail.js", + "src/ui/localSdrControls.js", + "src/ui/localSdrPresentation.js", "src/ui/location.js", "src/ui/locationControls.js", + "src/ui/locationNavigation.js", "src/ui/locationSearch.js", "src/ui/mapSource.js", "src/ui/mapSourceControls.js", @@ -1831,15 +2355,23 @@ "src/ui/radio.js", "src/ui/radioBindings.js", "src/ui/radioControls.js", + "src/ui/radioPanelPlacement.js", "src/ui/radioPresentation.js", "src/ui/radioTunerModel.js", + "src/ui/railCardBlocks.js", + "src/ui/railCards.js", + "src/ui/railTimeline.js", + "src/ui/recentImagery.js", "src/ui/recordingControls.js", "src/ui/rightPanelRail.js", + "src/ui/rowList.js", "src/ui/sceneControls.js", "src/ui/scenePresentation.js", + "src/ui/sceneSharing.js", "src/ui/scenes.js", "src/ui/shareRestoration.js", "src/ui/shellElements.js", + "src/ui/shellFacade.js", "src/ui/shellFeedback.js", "src/ui/styleParameters.js", "src/ui/surfaceKeyboard.js", @@ -1848,186 +2380,32 @@ "src/ui/visualInput.js", "src/ui/visualPresets.js", "src/ui/visualSettings.js", + "src/ui/weatherPanel.js", "src/voice/commands.js", "src/voice/control.js", "src/voice/gevActions.js", "src/voice/gevRealtime.js", "src/voice/layerSummary.js", "src/voice/realtimeBackend.js", + "src/voice/realtimeConnection.js", "src/voice/realtimeController.js", - "src/voice/voiceCost.js", - "src/weatherEffectsMath.js", - "src/worldFocus.js", - "src/layers/flights/records.js", - "src/layers/flights/recordPolicy.js", - "src/layers/flights/snapshotRenderer.js", - "src/layers/flights/modelSpec.js", - "src/layers/military/records.js", - "src/layers/military/recordPolicy.js", - "src/layers/military/snapshotRenderer.js", - "src/layers/vessels/records.js", - "src/layers/vessels/recordPolicy.js", - "src/layers/vessels/snapshotRenderer.js", - "src/data/inputOwnership.js", - "src/annotations/drawMode.js", - "src/annotations/drawTool.js", - "src/data/routeSteps.js", - "src/layers/directions/index.js", - "src/data/directions.js", - "src/app/layers/directions.js", - "src/search/coordinateGeocoder.js", - "src/search/coordinateParser.js", - "src/search/presetGeocoder.js", - "src/voice/session.js", - "src/voice/sessionCommands.js", - "src/voice/realtimeSession.js", + "src/voice/realtimeCost.js", + "src/voice/realtimeDiagnostics.js", "src/voice/realtimeEvents.js", - "src/app/localGeojsonServices.js", - "src/data/feedState.js", - "src/data/layerSnapshot.js", - "src/layers/alpr/records.js", - "src/layers/earthquakes/records.js", - "src/app/layers/perimeters.js", - "src/layers/perimeters/index.js", - "src/layers/perimeters/source.js", - "src/layers/perimeters/records.js", - "src/layers/perimeters/cards.js", - "src/layers/perimeters/inciweb.js", - "src/layers/cctv/sourcePolicy.js", - "src/sources/reference.js", - "src/search/nominatim.js", - "src/nominatimGeocode.js", - "src/sources/httpBody.js", - "src/sources/nominatim.js", - "src/app/layers/transit.js", - "src/data/transit.js", - "src/data/transitFeeds.js", - "src/data/transitIcons.js", - "src/data/transitPresetStyle.js", - "src/layers/transit/controls.js", - "src/layers/transit/height.js", - "src/layers/transit/index.js", - "src/layers/transit/ingestion.js", - "src/layers/transit/lifecycle.js", - "src/layers/transit/policy.js", - "src/layers/transit/queries.js", - "src/layers/transit/rendering.js", - "src/layers/transit/selection.js", - "src/layers/transit/state.js", - "src/layers/transit/testing.js", - "src/layers/transit/viewport.js", - "src/data/cameraSensitivity.js", - "src/data/contactPlayback.js", - "src/data/contactTrailRenderer.js", - "src/data/transitProxy.js", - "src/data/gtfsRealtime.js", - "src/data/modelEligibility.js", - "src/layers/transit/trails.js", - "src/layers/transit/movement.js", - "src/layers/transit/qaMetrics.js", - "src/layers/transit/source.js", - "src/sources/transitHistory.js", - "src/sources/featureGeometry.js", - "src/sources/overpassFeaturesRecords.js", - "src/sources/overpassFeatures.js", - "src/sources/featureSource.js", - "src/sources/overpassRoads.js", - "src/ui/aircraftDisplay.js", - "src/ui/layerBindings.js", - "src/ui/displayBindings.js", - "src/ui/shellFacade.js", + "src/voice/realtimeFacade.js", + "src/voice/realtimeInput.js", + "src/voice/realtimeInputPolicy.js", "src/voice/realtimePreferences.js", "src/voice/realtimeProtocol.js", - "src/voice/realtimeDiagnostics.js", - "src/voice/realtimeViewport.js", - "src/voice/realtimeInputPolicy.js", - "src/voice/realtimeInput.js", - "src/voice/realtimeCost.js", - "src/voice/realtimeFacade.js", "src/voice/realtimeRadio.js", + "src/voice/realtimeSession.js", "src/voice/realtimeTurns.js", - "src/voice/realtimeConnection.js", - "src/layers/weather/index.js", - "src/layers/weather/clock.js", - "src/layers/weather/rendering.js", - "src/layers/weather/shellRendering.js", - "src/layers/weather/infraredAlpha.js", - "src/layers/weather/infraredImage.js", - "src/layers/weather/source.js", - "src/director/clock.js", - "src/director/timeline.js", - "src/scenes/shotPresentation.js", - "src/scenes/packs/registry.js", - "src/scenes/packs/defaults.js", - "src/scenes/packs/nepal.js", - "src/director/document.js", - "src/scenes/project.js", - "src/director/documentFields.js", - "src/director/cameraDocument.js", - "src/director/camera.js", - "src/scenes/cameraMotion.js", - "src/director/packs/source.js", - "src/director/packs/session.js", - "src/director/packs/geojson.js", - "src/director/packs/manifest.js", - "src/scenes/dataPacks/controller.js", - "src/scenes/dataPacks/presentation.js", - "src/scenes/dataPacks/geometry.js", - "src/director/interactions/document.js", - "src/director/interactions/session.js", - "src/scenes/interactions.js", - "src/director/sharing/bundle.js", - "src/director/sharing/preview.js", - "src/director/sharing/lifetime.js", - "src/director/authoring.js", - "src/scenes/sharing.js", - "src/ui/sceneSharing.js", - "src/layers/weather/imageryOrder.js", - "src/layers/weather/imageryHost.js", - "src/layers/cyclones/index.js", - "src/layers/cyclones/rendering.js", - "src/layers/cyclones/labels.js", - "src/layers/cyclones/source.js", - "src/app/layers/localAdsb.js", - "src/layers/localAdsb/index.js", - "src/layers/localAdsb/policy.js", - "src/layers/localAdsb/card.js", - "src/layers/localAdsb/feeds.js", - "src/layers/localAdsb/status.js", - "src/layers/localAdsb/feedNames.js", - "src/layers/localAdsb/motion.js", - "src/layers/localAdsb/models.js", - "src/layers/localAdsb/enrichment.js", - "src/sources/adsbRecords.js", - "src/sdr/controller.js", - "src/sdr/spectrum.js", - "src/sdr/gain.js", - "src/sdr/usbDevices.js", - "src/ui/localSdrControls.js", - "src/ui/localSdrPresentation.js", - "src/app/layers/recentImagery.js", - "src/layers/recentImagery/index.js", - "src/layers/recentImagery/model.js", - "src/layers/recentImagery/catalog.js", - "src/layers/recentImagery/rendering.js", - "src/layers/recentImagery/thumbnails.js", - "src/maps/imageryHost.js", - "src/ui/recentImagery.js", - "src/ui/imageryBoxTool.js", - "src/layers/alpr/tileRecords.js", - "src/sources/capability.js", - "src/sources/openFreeMap.js", - "src/sources/militaryTileGeometry.js", - "src/sources/vectorTiles.js", - "src/sources/phaseTiming.js", - "src/layers/traffic/roadModes.js", - "src/data/cameraArrival.js", - "src/layers/alpr/floors.js", - "src/data/militaryNames.js", - "src/sources/requestDeadline.js", - "src/data/local_data/osm_military_names/names.json", - "src/layers/installations/namedMarkers.js", - "src/data/infrastructureOverlayEntry.js" + "src/voice/realtimeViewport.js", + "src/voice/session.js", + "src/voice/sessionCommands.js", + "src/voice/voiceCost.js", + "src/weatherEffectsMath.js", + "src/worldFocus.js" ], "external": [ "hls.js", @@ -2041,61 +2419,67 @@ ] }, "application-catalog": { - "exports": ["./application/catalog"], - "modules": ["src/app/catalog.js"], + "exports": [ + "./application/catalog" + ], + "modules": [ + "src/app/catalog.js" + ], "external": [] }, "application-layer-construction": { - "exports": ["./application/layers"], + "exports": [ + "./application/layers" + ], "modules": [ - "src/cyberSonar.js", - "src/data/bhoteKoshiEvent.js", - "src/ui/imagerySplit.js", - "src/maps/imageryComparison.js", - "src/data/bhoteKoshiEmbeddedMedia.js", - "src/data/bhoteKoshiLocator.js", - "src/data/bhoteKoshiIncidentPlaces.js", - "src/data/bhoteKoshiFloodPath.js", - "src/data/bhoteKoshiShotPaths.js", "src/annotations/annotationResolver.js", "src/annotations/resolver.js", + "src/annotations/worldAnnotationRenderer.js", "src/app/catalog.js", "src/app/constructCatalog.js", - "src/layers/wind/index.js", - "src/layers/wind/model.js", - "src/layers/wind/fields.js", - "src/layers/wind/streamlines.js", - "src/layers/wind/gpuRendering.js", - "src/layers/wind/relief.js", - "src/layers/wind/inspection.js", - "src/layers/wind/presentation.js", - "src/layers/wind/rendering.js", - "src/layers/weather/rasterTiles.js", "src/app/layers/aisLiveVessels.js", "src/app/layers/alprCameras.js", "src/app/layers/bikeshare.js", "src/app/layers/cctv.js", + "src/app/layers/directions.js", "src/app/layers/earthquakes.js", "src/app/layers/firms.js", "src/app/layers/flights.js", + "src/app/layers/localAdsb.js", "src/app/layers/militaryAwareness.js", "src/app/layers/militaryFlights.js", "src/app/layers/militaryInstallations.js", "src/app/layers/overlayHost.js", + "src/app/layers/perimeters.js", "src/app/layers/radio.js", + "src/app/layers/recentImagery.js", "src/app/layers/rocketLaunches.js", "src/app/layers/satellites.js", "src/app/layers/submarineCables.js", "src/app/layers/traffic.js", - "src/sources/sourceSlot.js", + "src/app/layers/transit.js", + "src/app/localGeojsonServices.js", + "src/cameraGroundGuard.js", + "src/cameraVerbs.js", "src/cctvFocusRequest.js", "src/celestialRing.js", "src/cockpitMath.js", + "src/cyberSonar.js", + "src/data/adminBoundaries.js", "src/data/aircraftClass.js", "src/data/aircraftIcons.js", "src/data/aircraftMeta.js", "src/data/aircraftNearbyPolicy.js", "src/data/aircraftRecession.js", + "src/data/bhoteKoshiEmbeddedMedia.js", + "src/data/bhoteKoshiEvent.js", + "src/data/bhoteKoshiFloodPath.js", + "src/data/bhoteKoshiIncidentPlaces.js", + "src/data/bhoteKoshiLocator.js", + "src/data/bhoteKoshiShotPaths.js", + "src/data/bundledJson.js", + "src/data/cameraArrival.js", + "src/data/cameraSensitivity.js", "src/data/cctvCards.js", "src/data/cctvFootprint.js", "src/data/cctvGizmo.js", @@ -2104,49 +2488,63 @@ "src/data/cockpitAirLod.js", "src/data/cockpitContactDot.js", "src/data/contactMatch.js", + "src/data/contactPlayback.js", + "src/data/contactTrailRenderer.js", "src/data/contextStore.js", "src/data/dataCredits.js", + "src/data/detection.js", "src/data/detectionCohort.js", "src/data/detectionDraw.js", "src/data/detectionPolicy.js", + "src/data/detectionPresentation.js", + "src/data/detectionRenderDemand.js", + "src/data/directions.js", "src/data/firmsAdapt.js", "src/data/firmsLabels.js", "src/data/flowMatch.js", "src/data/focusDeemphasis.js", "src/data/geoid.js", + "src/data/groundFloor.js", + "src/data/gtfsRealtime.js", "src/data/iconOrientation.js", "src/data/infrastructure.js", + "src/data/infrastructureOverlayEntry.js", + "src/data/inputOwnership.js", "src/data/installationFeedback.js", "src/data/issPass.js", - "src/data/satellitePass.js", "src/data/labelArbiter.js", "src/data/layerState.js", "src/data/layerStateTokenReservations.json", "src/data/localGeojson.js", "src/data/localGeojsonCore.js", "src/data/localGeojsonLod.js", + "src/data/local_data/natural_earth/countries.json", "src/data/local_data/natural_earth/marine.json", "src/data/local_data/natural_earth/regions.json", + "src/data/local_data/natural_earth/states_provinces.json", "src/data/local_data/neighborhoods/san-francisco.json", + "src/data/local_data/osm_military_names/names.json", + "src/data/local_data/us_census_counties/counties.json", "src/data/militaryAwarenessEngine.js", "src/data/militaryInstallationData.js", + "src/data/militaryNames.js", + "src/data/modelEligibility.js", "src/data/modelVisualAnchor.js", "src/data/motionModel.js", "src/data/naturalEarthRegions.js", - "src/data/adminBoundaries.js", - "src/data/local_data/natural_earth/states_provinces.json", - "src/data/local_data/natural_earth/countries.json", - "src/data/local_data/us_census_counties/counties.json", "src/data/neighborhoodPolygons.js", "src/data/pickRegistry.js", "src/data/radioCountry.js", + "src/data/regionalModel.js", "src/data/renderAltitude.js", - "src/data/bundledJson.js", "src/data/retryableLoad.js", "src/data/routePlausible.js", + "src/data/routeSteps.js", "src/data/satelliteClass.js", + "src/data/satellitePass.js", "src/data/scenePick.js", "src/data/spriteOrder.js", + "src/data/terrainHeights.js", "src/data/tomtomTiles.js", "src/data/tr3bRegistry.js", "src/data/trackedCamera.js", @@ -2158,16 +2556,29 @@ "src/data/trafficPresetStyle.js", "src/data/trafficQueue.js", "src/data/trailRenderer.js", + "src/data/transitFeeds.js", + "src/data/transitIcons.js", + "src/data/transitPresetStyle.js", + "src/data/transitProxy.js", "src/data/vesselLabels.js", + "src/i18n/index.js", + "src/i18n/locale.js", + "src/i18n/locales/en/cockpit.js", + "src/i18n/locales/en/layers.js", + "src/i18n/locales/en/setup.js", + "src/i18n/locales/en/shell.js", "src/keylessGeocoder.js", "src/layers/aircraft/classification.js", + "src/layers/alpr/floors.js", "src/layers/alpr/index.js", "src/layers/alpr/model.js", + "src/layers/alpr/overlay.js", "src/layers/alpr/policy.js", "src/layers/alpr/presentation.js", - "src/layers/alpr/visuals.js", - "src/layers/alpr/overlay.js", + "src/layers/alpr/records.js", "src/layers/alpr/source.js", + "src/layers/alpr/tileRecords.js", + "src/layers/alpr/visuals.js", "src/layers/awareness/controls.js", "src/layers/awareness/dependencies.js", "src/layers/awareness/focus.js", @@ -2217,14 +2628,21 @@ "src/layers/cctv/policy.js", "src/layers/cctv/presentation.js", "src/layers/cctv/projection.js", - "src/layers/cctv/videoPlayback.js", "src/layers/cctv/rendering.js", "src/layers/cctv/selection.js", "src/layers/cctv/source.js", + "src/layers/cctv/sourcePolicy.js", "src/layers/cctv/state.js", "src/layers/cctv/testing.js", + "src/layers/cctv/videoPlayback.js", + "src/layers/cyclones/index.js", + "src/layers/cyclones/labels.js", + "src/layers/cyclones/rendering.js", + "src/layers/cyclones/source.js", + "src/layers/directions/index.js", "src/layers/earthquakes/index.js", "src/layers/earthquakes/model.js", + "src/layers/earthquakes/records.js", "src/layers/earthquakes/source.js", "src/layers/firms/anchors.js", "src/layers/firms/cards.js", @@ -2245,10 +2663,14 @@ "src/layers/flights/index.js", "src/layers/flights/ingestion.js", "src/layers/flights/lifecycle.js", + "src/layers/flights/modelSpec.js", "src/layers/flights/motion.js", "src/layers/flights/policy.js", "src/layers/flights/queries.js", + "src/layers/flights/recordPolicy.js", + "src/layers/flights/records.js", "src/layers/flights/rendering.js", + "src/layers/flights/snapshotRenderer.js", "src/layers/flights/state.js", "src/layers/flights/testing.js", "src/layers/flights/tracking.js", @@ -2257,6 +2679,7 @@ "src/layers/installations/ingestion.js", "src/layers/installations/lifecycle.js", "src/layers/installations/model.js", + "src/layers/installations/namedMarkers.js", "src/layers/installations/policy.js", "src/layers/installations/rendering.js", "src/layers/installations/selection.js", @@ -2282,6 +2705,15 @@ "src/layers/launches/source.js", "src/layers/launches/state.js", "src/layers/launches/testing.js", + "src/layers/localAdsb/card.js", + "src/layers/localAdsb/enrichment.js", + "src/layers/localAdsb/feedNames.js", + "src/layers/localAdsb/feeds.js", + "src/layers/localAdsb/index.js", + "src/layers/localAdsb/models.js", + "src/layers/localAdsb/motion.js", + "src/layers/localAdsb/policy.js", + "src/layers/localAdsb/status.js", "src/layers/military/controller.js", "src/layers/military/index.js", "src/layers/military/ingestion.js", @@ -2289,10 +2721,18 @@ "src/layers/military/motion.js", "src/layers/military/policy.js", "src/layers/military/queries.js", + "src/layers/military/recordPolicy.js", + "src/layers/military/records.js", "src/layers/military/rendering.js", + "src/layers/military/snapshotRenderer.js", "src/layers/military/state.js", "src/layers/military/testing.js", "src/layers/military/tracking.js", + "src/layers/perimeters/cards.js", + "src/layers/perimeters/inciweb.js", + "src/layers/perimeters/index.js", + "src/layers/perimeters/records.js", + "src/layers/perimeters/source.js", "src/layers/radio/catalogModel.js", "src/layers/radio/categories.js", "src/layers/radio/clustering.js", @@ -2315,6 +2755,11 @@ "src/layers/radio/tuning.js", "src/layers/radio/tuningNoise.js", "src/layers/radio/volume.js", + "src/layers/recentImagery/catalog.js", + "src/layers/recentImagery/index.js", + "src/layers/recentImagery/model.js", + "src/layers/recentImagery/rendering.js", + "src/layers/recentImagery/thumbnails.js", "src/layers/satellites/catalog.js", "src/layers/satellites/controls.js", "src/layers/satellites/index.js", @@ -2323,8 +2768,8 @@ "src/layers/satellites/labels.js", "src/layers/satellites/lifecycle.js", "src/layers/satellites/orbits.js", - "src/layers/satellites/records.js", "src/layers/satellites/policy.js", + "src/layers/satellites/records.js", "src/layers/satellites/rendering.js", "src/layers/satellites/source.js", "src/layers/satellites/state.js", @@ -2348,18 +2793,34 @@ "src/layers/traffic/footprint.js", "src/layers/traffic/index.js", "src/layers/traffic/ingestion.js", - "src/sources/requestDeadline.js", "src/layers/traffic/lifecycle.js", "src/layers/traffic/model.js", "src/layers/traffic/policy.js", "src/layers/traffic/rendering.js", "src/layers/traffic/retention.js", + "src/layers/traffic/roadModes.js", "src/layers/traffic/source.js", "src/layers/traffic/state.js", "src/layers/traffic/style.js", "src/layers/traffic/surface.js", "src/layers/traffic/timing.js", "src/layers/traffic/viewport.js", + "src/layers/transit/controls.js", + "src/layers/transit/height.js", + "src/layers/transit/index.js", + "src/layers/transit/ingestion.js", + "src/layers/transit/lifecycle.js", + "src/layers/transit/movement.js", + "src/layers/transit/policy.js", + "src/layers/transit/qaMetrics.js", + "src/layers/transit/queries.js", + "src/layers/transit/rendering.js", + "src/layers/transit/selection.js", + "src/layers/transit/source.js", + "src/layers/transit/state.js", + "src/layers/transit/testing.js", + "src/layers/transit/trails.js", + "src/layers/transit/viewport.js", "src/layers/vessels/cards.js", "src/layers/vessels/evidence.js", "src/layers/vessels/index.js", @@ -2367,151 +2828,79 @@ "src/layers/vessels/lifecycle.js", "src/layers/vessels/policy.js", "src/layers/vessels/queries.js", + "src/layers/vessels/recordPolicy.js", + "src/layers/vessels/records.js", "src/layers/vessels/rendering.js", "src/layers/vessels/selection.js", + "src/layers/vessels/snapshotRenderer.js", "src/layers/vessels/state.js", "src/layers/vessels/testing.js", "src/layers/vessels/tracking.js", + "src/layers/weather/clock.js", + "src/layers/weather/imageryHost.js", + "src/layers/weather/imageryOrder.js", + "src/layers/weather/index.js", + "src/layers/weather/infraredAlpha.js", + "src/layers/weather/infraredImage.js", + "src/layers/weather/rasterTiles.js", + "src/layers/weather/rendering.js", + "src/layers/weather/shellRendering.js", + "src/layers/weather/source.js", + "src/layers/wind/fields.js", + "src/layers/wind/gpuRendering.js", + "src/layers/wind/index.js", + "src/layers/wind/inspection.js", + "src/layers/wind/model.js", + "src/layers/wind/presentation.js", + "src/layers/wind/relief.js", + "src/layers/wind/rendering.js", + "src/layers/wind/streamlines.js", "src/locations.js", + "src/maps/imageryComparison.js", + "src/maps/imageryHost.js", "src/navigationPolicy.js", + "src/nominatimGeocode.js", "src/overlays/worldOverlay.js", "src/overlays/worldOverlayDraw.js", "src/overlays/worldOverlayTokens.js", "src/renderGovernor.js", + "src/sdr/controller.js", + "src/sdr/gain.js", + "src/sdr/spectrum.js", + "src/sdr/usbDevices.js", + "src/search/coordinateGeocoder.js", + "src/search/coordinateParser.js", "src/search/defaults.js", "src/search/geospatial.js", "src/search/google.js", "src/search/http.js", + "src/search/nominatim.js", "src/search/placeSearch.js", + "src/search/presetGeocoder.js", "src/services/application.js", + "src/services/groundFloor.js", "src/services/requests.js", + "src/services/terrainHeights.js", + "src/sources/adsbRecords.js", + "src/sources/capability.js", + "src/sources/featureGeometry.js", + "src/sources/featureSource.js", + "src/sources/httpBody.js", + "src/sources/militaryTileGeometry.js", + "src/sources/nominatim.js", + "src/sources/openFreeMap.js", + "src/sources/overpassFeatures.js", + "src/sources/overpassFeaturesRecords.js", + "src/sources/overpassRoads.js", + "src/sources/phaseTiming.js", + "src/sources/requestDeadline.js", + "src/sources/sourceSlot.js", + "src/sources/transitHistory.js", + "src/sources/vectorTiles.js", + "src/ui/imagerySplit.js", "src/ui/panelRailGeometry.js", "src/ui/radioTunerModel.js", - "src/worldFocus.js", - "src/layers/flights/records.js", - "src/layers/flights/recordPolicy.js", - "src/layers/flights/snapshotRenderer.js", - "src/layers/flights/modelSpec.js", - "src/layers/military/records.js", - "src/layers/military/recordPolicy.js", - "src/layers/military/snapshotRenderer.js", - "src/layers/vessels/records.js", - "src/layers/vessels/recordPolicy.js", - "src/layers/vessels/snapshotRenderer.js", - "src/data/inputOwnership.js", - "src/annotations/worldAnnotationRenderer.js", - "src/cameraGroundGuard.js", - "src/cameraVerbs.js", - "src/services/groundFloor.js", - "src/data/routeSteps.js", - "src/layers/directions/index.js", - "src/services/terrainHeights.js", - "src/data/terrainHeights.js", - "src/data/groundFloor.js", - "src/data/directions.js", - "src/app/layers/directions.js", - "src/search/coordinateGeocoder.js", - "src/search/coordinateParser.js", - "src/search/presetGeocoder.js", - "src/app/localGeojsonServices.js", - "src/layers/alpr/records.js", - "src/layers/earthquakes/records.js", - "src/app/layers/perimeters.js", - "src/layers/perimeters/index.js", - "src/layers/perimeters/source.js", - "src/layers/perimeters/records.js", - "src/layers/perimeters/cards.js", - "src/layers/perimeters/inciweb.js", - "src/layers/cctv/sourcePolicy.js", - "src/search/nominatim.js", - "src/nominatimGeocode.js", - "src/data/regionalModel.js", - "src/sources/httpBody.js", - "src/sources/nominatim.js", - "src/app/layers/transit.js", - "src/data/transitFeeds.js", - "src/data/transitIcons.js", - "src/data/transitPresetStyle.js", - "src/layers/transit/controls.js", - "src/layers/transit/height.js", - "src/layers/transit/index.js", - "src/layers/transit/ingestion.js", - "src/layers/transit/lifecycle.js", - "src/layers/transit/policy.js", - "src/layers/transit/queries.js", - "src/layers/transit/rendering.js", - "src/layers/transit/selection.js", - "src/layers/transit/state.js", - "src/layers/transit/testing.js", - "src/layers/transit/viewport.js", - "src/data/cameraSensitivity.js", - "src/data/contactPlayback.js", - "src/data/contactTrailRenderer.js", - "src/data/transitProxy.js", - "src/data/gtfsRealtime.js", - "src/layers/transit/trails.js", - "src/layers/transit/movement.js", - "src/layers/transit/qaMetrics.js", - "src/layers/transit/source.js", - "src/sources/transitHistory.js", - "src/sources/featureGeometry.js", - "src/sources/overpassFeaturesRecords.js", - "src/sources/overpassFeatures.js", - "src/sources/featureSource.js", - "src/sources/overpassRoads.js", - "src/layers/weather/index.js", - "src/layers/weather/clock.js", - "src/layers/weather/rendering.js", - "src/layers/weather/shellRendering.js", - "src/layers/weather/infraredAlpha.js", - "src/layers/weather/infraredImage.js", - "src/layers/weather/source.js", - "src/layers/weather/imageryOrder.js", - "src/layers/weather/imageryHost.js", - "src/layers/cyclones/index.js", - "src/layers/cyclones/rendering.js", - "src/layers/cyclones/labels.js", - "src/layers/cyclones/source.js", - "src/app/layers/localAdsb.js", - "src/layers/localAdsb/index.js", - "src/layers/localAdsb/policy.js", - "src/layers/localAdsb/card.js", - "src/layers/localAdsb/feeds.js", - "src/layers/localAdsb/status.js", - "src/layers/localAdsb/feedNames.js", - "src/layers/localAdsb/motion.js", - "src/layers/localAdsb/models.js", - "src/layers/localAdsb/enrichment.js", - "src/sources/adsbRecords.js", - "src/sdr/controller.js", - "src/sdr/spectrum.js", - "src/sdr/gain.js", - "src/sdr/usbDevices.js", - "src/data/detection.js", - "src/data/detectionRenderDemand.js", - "src/data/detectionPresentation.js", - "src/data/modelEligibility.js", - "src/app/layers/recentImagery.js", - "src/layers/recentImagery/index.js", - "src/layers/recentImagery/model.js", - "src/layers/recentImagery/catalog.js", - "src/layers/recentImagery/rendering.js", - "src/layers/recentImagery/thumbnails.js", - "src/maps/imageryHost.js", - "src/layers/alpr/tileRecords.js", - "src/sources/capability.js", - "src/sources/openFreeMap.js", - "src/sources/militaryTileGeometry.js", - "src/sources/vectorTiles.js", - "src/sources/phaseTiming.js", - "src/layers/traffic/roadModes.js", - "src/data/cameraArrival.js", - "src/layers/alpr/floors.js", - "src/data/militaryNames.js", - "src/sources/requestDeadline.js", - "src/data/local_data/osm_military_names/names.json", - "src/layers/installations/namedMarkers.js", - "src/data/infrastructureOverlayEntry.js" + "src/worldFocus.js" ], "external": [ "hls.js", @@ -2525,7 +2914,9 @@ ] }, "application-operations": { - "exports": ["./application/operations"], + "exports": [ + "./application/operations" + ], "modules": [ "src/annotations/annotationResolver.js", "src/annotations/resolver.js", @@ -2586,26 +2977,43 @@ ] }, "layer-lifecycle": { - "exports": ["./data/lifecycle"], - "modules": ["src/data/lifecycle.js", "src/data/cameraArrival.js"], + "exports": [ + "./data/lifecycle" + ], + "modules": [ + "src/data/lifecycle.js", + "src/data/cameraArrival.js" + ], "external": [] }, "ui-navigation": { - "exports": ["./ui/navigation"], + "exports": [ + "./ui/navigation" + ], "modules": [ "src/navigationPolicy.js", "src/ui/navigationController.js", "src/app/stateChannel.js", "src/data/cameraArrival.js" ], - "external": ["cesium"] + "external": [ + "cesium" + ] }, "ui-share-restoration": { - "exports": ["./ui/share-restoration"], + "exports": [ + "./ui/share-restoration" + ], "modules": [ "src/data/installationFeedback.js", "src/data/layerState.js", "src/data/layerStateTokenReservations.json", + "src/i18n/index.js", + "src/i18n/locale.js", + "src/i18n/locales/en/cockpit.js", + "src/i18n/locales/en/layers.js", + "src/i18n/locales/en/setup.js", + "src/i18n/locales/en/shell.js", "src/loadingFeedback.js", "src/navigationPolicy.js", "src/ui/shareRestoration.js", @@ -2614,16 +3022,23 @@ "external": [] }, "ui-visual-settings": { - "exports": ["./ui/visual-settings"], + "exports": [ + "./ui/visual-settings" + ], "modules": [ - "src/cyberSonar.js", - "src/hudLayouts.js", - "src/hudLayoutPolicy.js", - "src/ui/radioPanelPlacement.js", "src/bloom.js", "src/cockpitVisionPolicy.js", "src/contactsDetectionPolicy.js", + "src/cyberSonar.js", "src/data/detectionPolicy.js", + "src/hudLayoutPolicy.js", + "src/hudLayouts.js", + "src/i18n/index.js", + "src/i18n/locale.js", + "src/i18n/locales/en/cockpit.js", + "src/i18n/locales/en/layers.js", + "src/i18n/locales/en/setup.js", + "src/i18n/locales/en/shell.js", "src/styles/anime.js", "src/styles/noir.js", "src/styles/retro.js", @@ -2632,6 +3047,7 @@ "src/styles/thermal.js", "src/ui/applicationShortcuts.js", "src/ui/effects.js", + "src/ui/radioPanelPlacement.js", "src/ui/styleParameters.js", "src/ui/uiLifetime.js", "src/ui/visualEffects.js", @@ -2639,14 +3055,23 @@ "src/ui/visualPresets.js", "src/ui/visualSettings.js" ], - "external": ["cesium"] + "external": [ + "cesium" + ] }, "ui-panel-chrome": { - "exports": ["./ui/panel-chrome"], + "exports": [ + "./ui/panel-chrome" + ], "modules": [ - "src/ui/displayPanelScroll.js", - "src/ui/radioPanelPlacement.js", + "src/i18n/index.js", + "src/i18n/locale.js", + "src/i18n/locales/en/cockpit.js", + "src/i18n/locales/en/layers.js", + "src/i18n/locales/en/setup.js", + "src/i18n/locales/en/shell.js", "src/panelStackLayout.js", + "src/ui/displayPanelScroll.js", "src/ui/leftPanelRail.js", "src/ui/panelChrome.js", "src/ui/panelDisclosure.js", @@ -2655,13 +3080,16 @@ "src/ui/panelPositionControls.js", "src/ui/panelRailGeometry.js", "src/ui/panelRails.js", + "src/ui/radioPanelPlacement.js", "src/ui/rightPanelRail.js", "src/ui/uiLifetime.js" ], "external": [] }, "civil-flight-records": { - "exports": ["./layers/flights/records"], + "exports": [ + "./layers/flights/records" + ], "modules": [ "src/layers/flights/records.js", "src/layers/flights/recordPolicy.js", @@ -2672,7 +3100,9 @@ "external": [] }, "civil-flight-ingestion": { - "exports": ["./layers/flights/ingestion"], + "exports": [ + "./layers/flights/ingestion" + ], "modules": [ "src/layers/flights/ingestion.js", "src/layers/flights/recordPolicy.js" @@ -2680,7 +3110,9 @@ "external": [] }, "military-flight-records": { - "exports": ["./layers/military/records"], + "exports": [ + "./layers/military/records" + ], "modules": [ "src/layers/military/records.js", "src/layers/military/recordPolicy.js", @@ -2691,7 +3123,9 @@ "external": [] }, "military-flight-ingestion": { - "exports": ["./layers/military/ingestion"], + "exports": [ + "./layers/military/ingestion" + ], "modules": [ "src/layers/military/ingestion.js", "src/layers/military/recordPolicy.js" @@ -2699,7 +3133,9 @@ "external": [] }, "vessel-records": { - "exports": ["./layers/vessels/records"], + "exports": [ + "./layers/vessels/records" + ], "modules": [ "src/layers/vessels/records.js", "src/layers/vessels/recordPolicy.js" @@ -2707,7 +3143,9 @@ "external": [] }, "vessel-ingestion": { - "exports": ["./layers/vessels/ingestion"], + "exports": [ + "./layers/vessels/ingestion" + ], "modules": [ "src/layers/vessels/ingestion.js", "src/layers/vessels/recordPolicy.js" @@ -2715,46 +3153,85 @@ "external": [] }, "directions-layer": { - "exports": ["./layers/directions"], - "modules": ["src/layers/directions/index.js", "src/data/routeSteps.js"], - "external": ["cesium"] + "exports": [ + "./layers/directions" + ], + "modules": [ + "src/layers/directions/index.js", + "src/data/routeSteps.js" + ], + "external": [ + "cesium" + ] }, "radio-browser-source": { - "exports": ["./sources/radio-browser"], - "modules": ["src/sources/radioBrowser.js", "src/data/radioCountry.js"], + "exports": [ + "./sources/radio-browser" + ], + "modules": [ + "src/sources/radioBrowser.js", + "src/data/radioCountry.js" + ], "external": [] }, "cctv-types-source": { - "exports": ["./sources/cctv-types"], - "modules": ["src/sources/cctvTypes.js"], + "exports": [ + "./sources/cctv-types" + ], + "modules": [ + "src/sources/cctvTypes.js" + ], "external": [] }, "regional-source": { - "exports": ["./sources/regional"], - "modules": ["src/data/regionalModel.js"], + "exports": [ + "./sources/regional" + ], + "modules": [ + "src/data/regionalModel.js" + ], "external": [] }, "voice-action-schemas": { - "exports": ["./voice/action-schemas"], - "modules": ["src/voice/actionSchemas.js", "src/hudLayoutPolicy.js"], + "exports": [ + "./voice/action-schemas" + ], + "modules": [ + "src/voice/actionSchemas.js", + "src/hudLayoutPolicy.js" + ], "external": [] }, "voice-session": { - "exports": ["./voice/session"], - "modules": ["src/voice/session.js"], + "exports": [ + "./voice/session" + ], + "modules": [ + "src/voice/session.js" + ], "external": [] }, "voice-session-controls": { - "exports": ["./voice/session-controls"], + "exports": [ + "./voice/session-controls" + ], "modules": [ - "src/voice/sessionCommands.js", + "src/i18n/index.js", + "src/i18n/locale.js", + "src/i18n/locales/en/cockpit.js", + "src/i18n/locales/en/layers.js", + "src/i18n/locales/en/setup.js", + "src/i18n/locales/en/shell.js", + "src/voice/control.js", "src/voice/session.js", - "src/voice/control.js" + "src/voice/sessionCommands.js" ], "external": [] }, "alpr-source": { - "exports": ["./layers/alpr/source"], + "exports": [ + "./layers/alpr/source" + ], "modules": [ "src/layers/alpr/policy.js", "src/layers/alpr/records.js", @@ -2765,20 +3242,34 @@ "src/sources/vectorTiles.js", "src/sources/phaseTiming.js" ], - "external": ["@mapbox/vector-tile", "pbf"] + "external": [ + "@mapbox/vector-tile", + "pbf" + ] }, "bikeshare-source": { - "exports": ["./layers/bikeshare/source"], - "modules": ["src/layers/bikeshare/source.js"], + "exports": [ + "./layers/bikeshare/source" + ], + "modules": [ + "src/layers/bikeshare/source.js" + ], "external": [] }, "cctv-source": { - "exports": ["./layers/cctv/source"], - "modules": ["src/layers/cctv/source.js", "src/layers/cctv/sourcePolicy.js"], + "exports": [ + "./layers/cctv/source" + ], + "modules": [ + "src/layers/cctv/source.js", + "src/layers/cctv/sourcePolicy.js" + ], "external": [] }, "earthquakes-source": { - "exports": ["./layers/earthquakes/source"], + "exports": [ + "./layers/earthquakes/source" + ], "modules": [ "src/layers/earthquakes/records.js", "src/layers/earthquakes/source.js" @@ -2786,12 +3277,18 @@ "external": [] }, "firms-source": { - "exports": ["./layers/firms/source"], - "modules": ["src/layers/firms/source.js"], + "exports": [ + "./layers/firms/source" + ], + "modules": [ + "src/layers/firms/source.js" + ], "external": [] }, "installations-source": { - "exports": ["./layers/installations/source"], + "exports": [ + "./layers/installations/source" + ], "modules": [ "src/layers/installations/source.js", "src/data/militaryInstallationData.js", @@ -2808,25 +3305,43 @@ "src/data/bundledJson.js", "src/data/retryableLoad.js" ], - "external": ["@mapbox/vector-tile", "pbf"] + "external": [ + "@mapbox/vector-tile", + "pbf" + ] }, "launches-source": { - "exports": ["./layers/launches/source"], - "modules": ["src/layers/launches/source.js"], + "exports": [ + "./layers/launches/source" + ], + "modules": [ + "src/layers/launches/source.js" + ], "external": [] }, "radio-source": { - "exports": ["./layers/radio/source"], - "modules": ["src/layers/radio/policy.js", "src/layers/radio/source.js"], + "exports": [ + "./layers/radio/source" + ], + "modules": [ + "src/layers/radio/policy.js", + "src/layers/radio/source.js" + ], "external": [] }, "satellites-source": { - "exports": ["./layers/satellites/source"], - "modules": ["src/layers/satellites/source.js"], + "exports": [ + "./layers/satellites/source" + ], + "modules": [ + "src/layers/satellites/source.js" + ], "external": [] }, "traffic-source-factory": { - "exports": ["./layers/traffic/source"], + "exports": [ + "./layers/traffic/source" + ], "modules": [ "src/data/tomtomTiles.js", "src/layers/traffic/flowDecode.js", @@ -2842,10 +3357,16 @@ "src/layers/traffic/roadModes.js", "src/data/flowMatch.js" ], - "external": ["@mapbox/vector-tile", "pbf"] + "external": [ + "@mapbox/vector-tile", + "pbf" + ] }, "reference-sources": { - "exports": ["./sources/reference", "./layers/submarine-cables/source"], + "exports": [ + "./sources/reference", + "./layers/submarine-cables/source" + ], "modules": [ "src/sources/reference.js", "src/layers/earthquakes/source.js", @@ -2858,7 +3379,9 @@ "external": [] }, "nominatim-provider": { - "exports": ["./search/nominatim"], + "exports": [ + "./search/nominatim" + ], "modules": [ "src/search/nominatim.js", "src/nominatimGeocode.js", @@ -2871,17 +3394,27 @@ "external": [] }, "source-http-body": { - "exports": ["./sources/http-body"], - "modules": ["src/sources/httpBody.js"], + "exports": [ + "./sources/http-body" + ], + "modules": [ + "src/sources/httpBody.js" + ], "external": [] }, "overpass-lexer": { - "exports": ["./sources/overpass"], - "modules": ["src/sources/overpass.js"], + "exports": [ + "./sources/overpass" + ], + "modules": [ + "src/sources/overpass.js" + ], "external": [] }, "nominatim-source": { - "exports": ["./sources/nominatim"], + "exports": [ + "./sources/nominatim" + ], "modules": [ "src/sources/nominatim.js", "src/nominatimGeocode.js", @@ -2893,7 +3426,9 @@ }, "transit-provider": { "runtime": "node", - "exports": ["./server/providers/transit"], + "exports": [ + "./server/providers/transit" + ], "modules": [ "server/providers/common/http.js", "server/providers/common/rate-limit.js", @@ -2908,20 +3443,28 @@ "src/sources/transitHistoryStore.js", "src/sources/rateLimit.js" ], - "external": ["pbf"] + "external": [ + "pbf" + ] }, "transit-source": { - "exports": ["./sources/transit"], + "exports": [ + "./sources/transit" + ], "modules": [ "src/data/gtfsRealtime.js", "src/data/transitFeeds.js", "src/data/transitProxy.js", "src/sources/transitHistory.js" ], - "external": ["pbf"] + "external": [ + "pbf" + ] }, "transit-standalone": { - "exports": ["./layers/transit/standalone"], + "exports": [ + "./layers/transit/standalone" + ], "modules": [ "src/cyberSonar.js", "src/app/sourceSlot.js", @@ -2980,10 +3523,16 @@ "src/sources/featureSource.js", "src/sources/capability.js" ], - "external": ["cesium", "egm96-universal", "pbf"] + "external": [ + "cesium", + "egm96-universal", + "pbf" + ] }, "transit-layer": { - "exports": ["./layers/transit"], + "exports": [ + "./layers/transit" + ], "modules": [ "src/data/iconOrientation.js", "src/data/inputOwnership.js", @@ -3017,10 +3566,15 @@ "src/layers/transit/source.js", "src/sources/transitHistory.js" ], - "external": ["cesium", "pbf"] + "external": [ + "cesium", + "pbf" + ] }, "transit-source-factory": { - "exports": ["./layers/transit/source"], + "exports": [ + "./layers/transit/source" + ], "modules": [ "src/layers/transit/source.js", "src/sources/transitHistory.js" @@ -3028,7 +3582,9 @@ "external": [] }, "transit-service": { - "exports": ["./sources/transit-service"], + "exports": [ + "./sources/transit-service" + ], "modules": [ "src/data/transitFeeds.js", "src/data/transitProxy.js", @@ -3039,10 +3595,14 @@ "src/sources/transitHistoryStore.js", "src/sources/rateLimit.js" ], - "external": ["pbf"] + "external": [ + "pbf" + ] }, "map-feature-source": { - "exports": ["./sources/map-features"], + "exports": [ + "./sources/map-features" + ], "modules": [ "src/sources/featureGeometry.js", "src/sources/overpassFeaturesRecords.js", @@ -3053,7 +3613,9 @@ "external": [] }, "perimeters": { - "exports": ["./layers/perimeters"], + "exports": [ + "./layers/perimeters" + ], "modules": [ "src/layers/perimeters/index.js", "src/sources/httpBody.js", @@ -3062,10 +3624,14 @@ "src/layers/perimeters/cards.js", "src/layers/perimeters/inciweb.js" ], - "external": ["cesium"] + "external": [ + "cesium" + ] }, "perimeters-source": { - "exports": ["./layers/perimeters/source"], + "exports": [ + "./layers/perimeters/source" + ], "modules": [ "src/layers/perimeters/records.js", "src/sources/httpBody.js", diff --git a/src/app/controls.js b/src/app/controls.js index 8d9b988b5..9b9bc0b98 100644 --- a/src/app/controls.js +++ b/src/app/controls.js @@ -2,6 +2,7 @@ import { catalogControlServices } from './catalog.js'; import { StyleManager } from '../ui/composition.js'; import { flyToAustin } from '../camera.js'; import { initCockpitCloudEffects } from '../cockpitCloudEffects.js'; +import { t } from '../i18n/index.js'; /** Construct the existing controls and camera presentation. */ export function createApplicationControls({ @@ -41,10 +42,10 @@ export function createApplicationControls({ // If no share link state, do default fly-to Austin if (!styleManager.hasShareState) { - loaderStatus.textContent = 'Flying to Austin, TX...'; + loaderStatus.textContent = t('shell.loading.status.flying'); defer(flyToAustin(viewer)); } else { - loaderStatus.textContent = 'Restoring shared view...'; + loaderStatus.textContent = t('shell.loading.status.restoring'); } return { styleManager, weatherEffects, cockpitCloudEffects }; diff --git a/src/app/scene.js b/src/app/scene.js index 65e40cd7e..986ad7bc7 100644 --- a/src/app/scene.js +++ b/src/app/scene.js @@ -14,6 +14,7 @@ import { governorRequestRender, } from '../renderGovernor.js'; import { describeError } from './errors.js'; +import { t } from '../i18n/index.js'; /** Construct the application globe using the caller's local configuration. */ export async function createApplicationScene({ @@ -41,7 +42,7 @@ export async function createApplicationScene({ else window.__GOOGLE_MAPS_API_KEY__ = previousKey; }); } - loaderStatus.textContent = 'Configuring viewer...'; + loaderStatus.textContent = t('shell.loading.status.configuring'); // Provider attribution stays visible, including clean-view and recording. const creditContainer = document.createElement('div'); creditContainer.id = 'cesium-credits'; @@ -60,8 +61,8 @@ export async function createApplicationScene({ configureCreditKeyboardAccess(document); loaderStatus.textContent = googleApiKey || cesiumToken - ? 'Loading Google 3D Tiles...' - : 'Loading the keyless globe...'; + ? t('shell.loading.status.tilesGoogle') + : t('shell.loading.status.tilesKeyless'); const photoreal = await loadPhotorealisticTileset(Cesium, { googleApiKey, cesiumToken, @@ -88,12 +89,14 @@ export async function createApplicationScene({ tileError, ); const tileErrorDetail = describeError(tileError); - loaderStatus.textContent = `Google 3D Tiles unavailable (${tileErrorDetail}). Loading the keyless globe...`; + loaderStatus.textContent = t('shell.loading.status.tilesUnavailable', { + detail: tileErrorDetail, + }); } viewer.scene.globe.show = true; } - loaderStatus.textContent = 'Initializing systems...'; + loaderStatus.textContent = t('shell.loading.status.systems'); const mapStackController = new MapController(viewer, { requestRender: governorRequestRender, diff --git a/src/creditKeyboard.js b/src/creditKeyboard.js index 5e1c3dea2..7d7c19cdb 100644 --- a/src/creditKeyboard.js +++ b/src/creditKeyboard.js @@ -2,6 +2,8 @@ * Adds the keyboard semantics omitted by Cesium's href-less attribution links. * Cesium retains ownership of showing and hiding its required credit lightbox. */ +import { t } from './i18n/index.js'; + export function configureCreditKeyboardAccess(root = document) { const expand = root?.querySelector?.( '#cesium-credits .cesium-credit-expand-link', @@ -19,7 +21,7 @@ export function configureCreditKeyboardAccess(root = document) { expand.setAttribute('aria-expanded', 'false'); close.setAttribute('role', 'button'); close.setAttribute('tabindex', '0'); - close.setAttribute('aria-label', 'Close data attribution'); + close.setAttribute('aria-label', t('shell.credits.closeAria')); if (expand.dataset.gevKeyboardReady === 'true') return true; expand.dataset.gevKeyboardReady = 'true'; diff --git a/src/data/militaryAwareness.test.mjs b/src/data/militaryAwareness.test.mjs index e4deae82e..e1f5e0232 100644 --- a/src/data/militaryAwareness.test.mjs +++ b/src/data/militaryAwareness.test.mjs @@ -301,7 +301,7 @@ test('Contacts continuation target is the visible explanatory note', () => { const source = readLayerSource(new URL('./militaryAwareness.js', import.meta.url)); assert.match( source, - /
Open-source mapped\/observed context\./, + /
\$\{t\('layers\.awareness\.note'\)\}<\/p>/,
);
assert.doesNotMatch(source, /]*data-awareness-focus-continuation/);
});
diff --git a/src/data/militaryAwarenessEngine.js b/src/data/militaryAwarenessEngine.js
index 996ad5b81..17886e8fa 100644
--- a/src/data/militaryAwarenessEngine.js
+++ b/src/data/militaryAwarenessEngine.js
@@ -1,5 +1,7 @@
/** Pure proximity helpers for Global Context. No capability modeling. */
+import { t } from '../i18n/index.js';
+
export const AWARENESS_RADIUS_M = 250000;
export const AWARENESS_MAX_FLIGHT_SEARCH_RADIUS_M = 16000000;
export const AWARENESS_RELATIONSHIP = Object.freeze({
@@ -82,14 +84,14 @@ export function summarizeAwarenessCohort(
relationship: AWARENESS_RELATIONSHIP.UNKNOWN,
count: null,
nearest: [],
- reason: 'feed unavailable',
+ reason: t('layers.awareness.reason.feedUnavailable'),
};
if (stale)
return {
relationship: AWARENESS_RELATIONSHIP.UNKNOWN,
count: null,
nearest: [],
- reason: 'feed stale',
+ reason: t('layers.awareness.reason.feedStale'),
};
const normalized = (Array.isArray(items) ? items : [])
.filter(
@@ -106,8 +108,8 @@ export function summarizeAwarenessCohort(
count: normalized.length,
nearest: normalized.slice(0, limit),
reason: normalized.length
- ? 'observed or mapped nearby context'
- : 'no observed or mapped objects in current feeds',
+ ? t('layers.awareness.reason.nearby')
+ : t('layers.awareness.reason.none'),
};
}
diff --git a/src/data/satelliteClass.js b/src/data/satelliteClass.js
index 29a7df3b1..83ea0e846 100644
--- a/src/data/satelliteClass.js
+++ b/src/data/satelliteClass.js
@@ -17,6 +17,8 @@
* for), then the constellations users can actually name, then the grab-bag.
*/
+import { t } from '../i18n/index.js';
+
/**
* Class registry. `label` is the card/legend token, `color` the point color,
* `blurb` the plain-language gloss for the legend tooltip.
@@ -77,6 +79,32 @@ export const SATELLITE_CLASS_ORDER = Object.freeze([
'comms',
]);
+// Display keys for the class table above: `label`/`blurb` stay the English
+// source-of-truth tokens (tests read them), while the card and legend accessors
+// translate through these keys at the presentation boundary.
+const CLASS_DISPLAY_KEYS = Object.freeze({
+ station: Object.freeze({
+ label: 'layers.satellites.class.station',
+ blurb: 'layers.satellites.class.stationBlurb',
+ }),
+ nav: Object.freeze({
+ label: 'layers.satellites.class.nav',
+ blurb: 'layers.satellites.class.navBlurb',
+ }),
+ geo: Object.freeze({
+ label: 'layers.satellites.class.geo',
+ blurb: 'layers.satellites.class.geoBlurb',
+ }),
+ visual: Object.freeze({
+ label: 'layers.satellites.class.visual',
+ blurb: 'layers.satellites.class.visualBlurb',
+ }),
+ comms: Object.freeze({
+ label: 'layers.satellites.class.comms',
+ blurb: 'layers.satellites.class.commsBlurb',
+ }),
+});
+
/**
* CelesTrak group tag β { class, subtype }. Subtype names the specific
* constellation so the card can read "NAV Β· GPS" rather than a bare "NAV".
@@ -139,7 +167,7 @@ export function satelliteClassColor(group) {
*/
export function satelliteClassLabel(group, { isIss = false } = {}) {
const { klass, subtype } = satelliteClassOf(group, { isIss });
- const base = SATELLITE_CLASSES[klass].label;
+ const base = t(CLASS_DISPLAY_KEYS[klass].label);
return subtype ? `${base} Β· ${subtype}` : base;
}
@@ -180,11 +208,12 @@ export function satelliteClassLegend(counts) {
const count = counts?.[klass];
if (!(count > 0)) continue;
const spec = SATELLITE_CLASSES[klass];
+ const display = CLASS_DISPLAY_KEYS[klass];
result.push({
klass,
- label: spec.label,
+ label: t(display.label),
color: spec.color,
- blurb: spec.blurb,
+ blurb: t(display.blurb),
count,
});
}
diff --git a/src/data/vesselLabels.js b/src/data/vesselLabels.js
index 240e22828..6db97e93d 100644
--- a/src/data/vesselLabels.js
+++ b/src/data/vesselLabels.js
@@ -4,6 +4,8 @@
* after the vessel cards moved out of their dedicated canvas renderer.
*/
+import { t } from '../i18n/index.js';
+
export const VESSEL_OVERLAY_SOURCE_ID = 'ais-live-vessels';
/** Existing selector grid size; one ambient winner is retained per cell. */
export const VESSEL_LABEL_GRID_PX = 118;
@@ -64,6 +66,43 @@ const NUMERIC_TYPE_FAMILIES = {
9: 'OTHER',
};
+// Display keys for the normalized English type tokens above. The tokens stay
+// machine values β TYPE_STYLES matches on them and tests pin them β so card
+// text translates only through this map at the presentation boundary.
+const TYPE_DISPLAY_KEYS = Object.freeze({
+ FISHING: 'layers.vessel.type.fishing',
+ TOWING: 'layers.vessel.type.towing',
+ DREDGER: 'layers.vessel.type.dredger',
+ 'DIVE OPS': 'layers.vessel.type.diveOps',
+ MILITARY: 'layers.vessel.type.military',
+ SAILING: 'layers.vessel.type.sailing',
+ PLEASURE: 'layers.vessel.type.pleasure',
+ PILOT: 'layers.vessel.type.pilot',
+ SAR: 'layers.vessel.type.sar',
+ TUG: 'layers.vessel.type.tug',
+ 'PORT TENDER': 'layers.vessel.type.portTender',
+ 'ANTI-POLLUTION': 'layers.vessel.type.antiPollution',
+ 'LAW ENFORCE': 'layers.vessel.type.lawEnforce',
+ MEDICAL: 'layers.vessel.type.medical',
+ 'HIGH-SPEED': 'layers.vessel.type.highSpeed',
+ PASSENGER: 'layers.vessel.type.passenger',
+ CARGO: 'layers.vessel.type.cargo',
+ TANKER: 'layers.vessel.type.tanker',
+ OTHER: 'layers.vessel.type.other',
+});
+
+/**
+ * Card-display form of a normalized AIS type: known tokens translate through
+ * the catalog; free-text types and unknown codes render unchanged.
+ * @param {string} type Raw AIS type.
+ * @returns {string}
+ */
+export function displayVesselType(type) {
+ const normalized = normalizeVesselType(type);
+ const key = TYPE_DISPLAY_KEYS[normalized.toUpperCase()];
+ return key ? t(key) : normalized;
+}
+
/**
* Resolve an AIS type to display text: bare numeric ship-type codes map to
* family names ("71" β "CARGO"); text types pass through unchanged.
diff --git a/src/firstRunExperience.js b/src/firstRunExperience.js
index 6dffb7c5e..c26a18a7b 100644
--- a/src/firstRunExperience.js
+++ b/src/firstRunExperience.js
@@ -21,6 +21,8 @@ import { createSurfaceKeyboard } from './ui/surfaceKeyboard.js';
// Choosing a mission is deliberately NOT durable suppression: picking a mission
// is enthusiasm, not "never show me this again".
+import { t } from './i18n/index.js';
+
/** Durable suppression. Written ONLY by the "Don't show this again" checkbox. */
export const FIRST_RUN_STORAGE_KEY = 'gev:first-run-mission:v1';
/** Per-session dismissal. Written by every close path; scoped to sessionStorage. */
@@ -34,10 +36,12 @@ export const FIRST_RUN_SESSION_KEY = 'gev:first-run-mission-session:v1';
*/
export const ENVIRONMENTAL_LABEL_CHOICE = 'ENVIRONMENTAL';
-const ENVIRONMENTAL_LABELS = Object.freeze({
- ENVIRONMENTAL: Object.freeze({ title: 'ENVIRONMENTAL' }),
- EARTH_WATCH: Object.freeze({ title: 'EARTH WATCH' }),
- ACTIVE_EVENTS: Object.freeze({ title: 'ACTIVE EVENTS' }),
+// Catalog keys per label choice. Resolved through t() at CALL time (init),
+// never at module load β the locale is not resolved until main.js's body runs.
+const ENVIRONMENTAL_LABEL_KEYS = Object.freeze({
+ ENVIRONMENTAL: 'setup.firstRun.environmentalTitle.environmental',
+ EARTH_WATCH: 'setup.firstRun.environmentalTitle.earthWatch',
+ ACTIVE_EVENTS: 'setup.firstRun.environmentalTitle.activeEvents',
});
/**
@@ -45,7 +49,9 @@ const ENVIRONMENTAL_LABELS = Object.freeze({
* @returns {{title: string}} The label set the constant above selects.
*/
export function environmentalLabel(choice = ENVIRONMENTAL_LABEL_CHOICE) {
- return ENVIRONMENTAL_LABELS[choice] || ENVIRONMENTAL_LABELS.ENVIRONMENTAL;
+ const key =
+ ENVIRONMENTAL_LABEL_KEYS[choice] || ENVIRONMENTAL_LABEL_KEYS.ENVIRONMENTAL;
+ return { title: t(key) };
}
/*
@@ -92,12 +98,12 @@ export const FIRST_RUN_MISSIONS = Object.freeze({
contacts: Object.freeze({
kind: 'context',
contextMode: 'contacts',
- busyText: 'Starting live contactsβ¦',
+ busyKey: 'setup.firstRun.busy.contacts',
}),
'space-missions': Object.freeze({
kind: 'context',
contextMode: 'space-missions',
- busyText: 'Opening space missionsβ¦',
+ busyKey: 'setup.firstRun.busy.spaceMissions',
}),
environmental: Object.freeze({
kind: 'globe',
@@ -115,7 +121,7 @@ export const FIRST_RUN_MISSIONS = Object.freeze({
// before a launch. LEDGERED post-launch. Until it lands, keyless visitors
// are judged on the layer row, which tells them the truth.
layerIds: Object.freeze(['earthquakes', 'local-firms']),
- busyText: 'Scanning active eventsβ¦',
+ busyKey: 'setup.firstRun.busy.environmental',
}),
explore: Object.freeze({ kind: 'none' }),
});
@@ -352,12 +358,23 @@ export function initFirstRunExperience({
}
// The tile name is owner-switchable from one constant, so paint it from the
- // module rather than trusting the markup to have been edited to match.
+ // module rather than trusting the markup to have been edited to match. The
+ // persuasive description line and the tile's feed subcopy are the two
+ // phase-2 exceptions whose static sites are pinned verbatim by
+ // firstRunExperience.test.mjs β the runtime write is their only legal
+ // localization point (docs/TRANSLATORS.md, runtime-only static sites).
const environmentalTitle = root.querySelector(
'[data-first-run-environmental-title]',
);
if (environmentalTitle)
environmentalTitle.textContent = environmentalLabel().title;
+ const environmentalSub = root.querySelector(
+ '[data-first-run-environmental-title] + small',
+ );
+ if (environmentalSub)
+ environmentalSub.textContent = t('setup.firstRun.choice.environmentalSub');
+ const description = root.querySelector('#first-run-description');
+ if (description) description.textContent = t('setup.firstRun.description');
const status = root.querySelector('[data-first-run-status]');
const suppressBox = root.querySelector('[data-first-run-suppress]');
@@ -440,7 +457,9 @@ export function initFirstRunExperience({
button.setAttribute('aria-disabled', String(next));
if (!status) return;
if (next)
- status.textContent = FIRST_RUN_MISSIONS[choice]?.busyText || 'Workingβ¦';
+ status.textContent = t(
+ FIRST_RUN_MISSIONS[choice]?.busyKey || 'setup.firstRun.busy.working',
+ );
else if (status.dataset.sticky !== 'true')
status.textContent = defaultStatus;
};
@@ -490,7 +509,7 @@ export function initFirstRunExperience({
Array.isArray(failed) && failed.length ? ` (${failed.join(', ')})` : '';
if (status) {
status.dataset.sticky = 'true';
- status.textContent = `Could not open that mission${detail}. Retry or explore manually.`;
+ status.textContent = t('setup.firstRun.status.failed', { detail });
}
setBusy(false);
};
@@ -506,8 +525,7 @@ export function initFirstRunExperience({
if (box) box.checked = !wanted;
if (!status) return;
status.dataset.sticky = 'true';
- status.textContent =
- 'This browser is blocking storage, so that could not be saved.';
+ status.textContent = t('setup.firstRun.status.storageBlocked');
};
const keyboard = createSurfaceKeyboard({
diff --git a/src/hud.js b/src/hud.js
index eb8c0ab34..f251c0193 100644
--- a/src/hud.js
+++ b/src/hud.js
@@ -35,6 +35,7 @@ import {
DEFAULT_HUD_LAYOUT,
normalizeHudLayout,
} from './hudLayouts.js';
+import { t } from './i18n/index.js';
/** Color palettes keyed by shader mode; applied as CSS custom properties. */
const HUD_COLORS = {
@@ -201,15 +202,15 @@ export class IntelHUD {