deps: pin stac-fastapi-api/types/extensions to 6.2.1 - #1061
Merged
Conversation
…nt type subtitle, header description, full-width search) and move Data Formats to top of Configure nav Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
…y layer-type metaconfig - LayerModal.handleClose: guard the field-repopulation pass on config.tabs so a missing/unresolved plugin metaconfig no longer throws and leaves the modal stuck open (and no longer risks wiping the layer); the modal always closes. - pluginValidation: re-check capabilities is a valid object before reading defaultInteractions so a manifest with capabilities:null reports an error instead of throwing out of registry generation. Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
- Dropy global dropdown (topbar External Links links): open below the trigger and raise z-index above #topBar so the list is no longer pinned behind the topbar and invisible. - Configure LayerModal 'Core' tab: collapse MUI's disabled scroll button so it no longer leaves an empty 40px gap before the first tab. - Configure: surface a snackbar error when the layer-type registry fails to load, instead of a silently blank layer editor. - GlobeRenderer._addCesiumLayer: restore the pre-migration warning for a layer type with no Cesium globe renderer (e.g. model). - Shorten LayerModal handleClose comment. Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
- DataShaders.colorize: recompute min/max on the tile layer's 'load' event (all visible tiles settled), not only per-tile 'tileload'. Fixes data legends stuck at NaN until a pan/zoom or opening layer settings. - Configure LayerModal: when the async layer-type registry has no metaconfig for a known layer type (still loading or failed), show an explicit notice and disable Done instead of rendering a silent, no-op blank editor. Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
Route the vectortile click pipeline through resolveLayerInteractions (as the two Map_ call sites already do) so manifest capabilities.defaultInteractions are merged with precedence type-defaults -> legacy kind -> explicit interactions. No built-in ships defaultInteractions, so behavior is unchanged today. Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
- pluginValidation: _skipValue now recognizes regex literals (via _skipRegex + _regexAllowedAfter) so a /re/ containing brackets/quotes no longer corrupts brace/string tracking and hides later operation/phase typos. Adds unit test. - DataFormats: distinguish 'no results for search' from 'registry empty/failed' in both By-Format and By-Layer-Type views. Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
Plugin-backed globe types dispatch through the async LayerInterface.run, so addLayer previously returned a Promise for those types but the raw handle for gradient_polyline / not-yet-migrated fallbacks. Make addLayer async so it resolves uniformly to the engine handle for every type, and update the gradient_polyline handle-storing call sites to await/.then the result (errors now surface via .catch instead of a sync throw). Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
Manifests intentionally differ for name vs typeId (ThreeDTiles/3dtiles, VectorTile/vectortile); the search now matches the visible heading name in addition to the internal typeId. Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
The accordions are uncontrolled, so defaultExpanded={Boolean(q)} was only read
on mount and already-listed rows stayed collapsed on search. Include the
search-active flag in the key so they remount (and re-read defaultExpanded)
when a search starts/stops.
Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
GlobeRenderer.addLayer became async, and the gradient_polyline call sites now chain .then()/.catch(). When a mission has no globe panel the litho instance is getMockLitho(), whose addLayer() returned undefined, so .then threw a synchronous TypeError that .catch could not intercept — aborting toggleLayer before the 2D layer was added. Mock addLayer now returns Promise.resolve() to honor the contract. Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
…egistry-driven LayersTool colors - plugin-cli: 'create layertype <Name>' scaffold (plugin.json + map module + metaconfig + colocated test), plus contract-valid E2E coverage - tests: LayerInterface.run phase pipeline/shorthand, GlobeRenderer.addLayer always-async contract guard, per-type registry smoke + created-type registers - LayersTool: resolve per-type indicator color from plugin.json manifest (registry) via inline --lt-color, instead of hardcoded --color-<type> CSS vars, so new/external layer types are colored by their own manifest Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
The registry is a generated, gitignored artifact and may not exist in a fresh checkout/CI. Generate it via updateLayerTypes() in beforeAll (matching updateTools.spec.js) instead of assuming the committed file is present. Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
Wire the remaining map lifecycle operations through the layer-type map plugin so the 2D map honors the same contract the globe already does: - Add LayerInterface.runMap: a synchronous variant of run() for the Leaflet surface (callers read state right after dispatch), running before -> main ?? coreDefault -> after inline. - setOpacity/setVisibility/setStyle -> runMap in Layers_ with current core behavior as coreDefault. - destroy -> MapRenderer.removeLayer (now a real dispatch) and the layer-delete teardown path. - timeChange -> async run() in TimeControl (reload is async) with the refreshLayer reload as coreDefault. - make is unchanged (still phase-dispatched around the make lock); load is folded into make on both surfaces. Built-in types declare no map ops, so coreDefault runs unchanged. Also fix the gradient-polyline orphan race introduced by the always-async GlobeRenderer.addLayer: centralize add/remove in L_.addGradientPolyline / L_.removeGradientPolyline, tracking the in-flight build with a generation + wantsOn flag so a teardown that races ahead of the async build discards the primitive instead of leaving it stuck on the globe. Routes all gradient add/remove sites in Layers_ and LayerConstructors through the helpers. Add runMap unit tests (sync ordering, coreDefault fallback, main override, no-module built-in path, every canonical op). Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
… runSync) Devin Review flagged that GlobeRenderer fire-and-forgets the async LayerInterface.run for destroy/setVisibility/setOpacity/timeChange/ setStyle and then immediately does its own core cleanup (e.g. removeLayer deletes this._layers[name] right after dispatching destroy). This works only because shipped modules declare no 'before' phase; the documented contract allows 'before' on every op, and as soon as a module adds one, run() defers main onto a microtask so it runs AFTER core cleanup -> the Cesium primitive/imagery/data-source is never torn down (and visibility/ opacity/style changes are dropped). Fix: dispatch these ops through the synchronous runner so main always runs inline, before the core bookkeeping. Since this is the same sync-ordering guarantee the 2D map needs, generalize the helper: rename LayerInterface.runMap -> runSync (surface-neutral) and use it on both surfaces. addLayer/make keep async run() (they return the handle, per the earlier always-async decision). Add a runSync test asserting main runs inline even when 'before' is async (the exact ordering the globe relies on). Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
Two Devin Review findings from the async/color work: - Configure Layers list rows briefly rendered the neutral default color + generic icon until the async layerTypeConfiguration registry fetch resolved (and stayed that way if it failed), a regression from the old synchronous hardcoded switch. Add a static BUILTIN_LAYER_TYPE_VISUALS fallback in layerTypeVisuals.js (kept in sync with each built-in's plugin.json) that getLayerTypeVisual consults when the registry has no manifest for the type. Registry manifest still wins; external types still resolve from it once loaded; built-ins are correct on first paint. Drops the now-redundant in-registry gate in Layers.js. - _runPendingVectorReload fire-and-forgot the now-async GlobeRenderer .addLayer with no .catch, so a failed queued reload surfaced as an unhandled rejection instead of a logged warning. Add a .catch that logs and leaves the previous features on screen. Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
Hardening for the by-layer-type search: only string metadata contributes to the search haystack, so a manifest supplying a non-string label/ category/description can't stringify into matchable text. Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
…-plugins Layer types as plugins: migrate all built-in layer types + supportedData metadata
…ender/ registry/ interface/ Pure file moves plus import-path updates. VectorLayerCore.js becomes commons/vector.js. Layers_.js and LayerUtils.js stay at the root, Filtering/ and LayerGeologic/ are untouched. Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
…tions.js Bodies moved verbatim; each takes L_ explicitly and Layers_.js keeps a thin delegator so L_'s public surface is unchanged. Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
…ycle/ init/onceLoaded/loaded/fullyLoaded/clear/fina/setSite/home/global-loading move to lifecycle/lifecycle.js and the module-scope parseConfig to lifecycle/config.js. Method bodies that used `this` now take L_ explicitly. Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
…yle.js Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
…display/sublayers.js Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
…tures/selection.js Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
…ility.js Last section of the split. Layers_.js is now the ~360-line facade: state fields plus delegators; imports that only the moved bodies used are dropped. Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
Its only importer is the VectorTile map renderer and it shares nothing with Map_/, so the plugin owns it now. Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
…mporal-fixes Fix geodataset temporal bugs: legacy tables, start-only time filters, recreate with new time mappings
Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
…nd-time-histogram-fixes Fix LithoSphere globe layer ops, vector time-filter race, and time-tile histogram
Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
…ening Harden websocket, server defaults, and HTML rendering
…f use Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
…action-pins ci: correct checkout pin comments, bump CI Node to 22, harden head_ref use
Co-Authored-By: tariq.k.soliman <tariqksoliman@gmail.com>
…api-deps deps: pin stac-fastapi-api/types/extensions to 6.2.1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
With Devin: JPL-Devin#125