import { createDirectionsSource } from '../layers/directions/source.js'; import { createRecentImagerySource } from '../layers/recentImagery/source.js'; import { createOpenFreeMapSource } from '../sources/openFreeMap.js'; import { createFlightSource, createMilitarySource, createVesselSource, } from '../sources/live/standalone.js'; import { createCctvSource } from '../layers/cctv/source.js'; import { createRadioSource } from '../layers/radio/source.js'; import { createTransitSource } from '../layers/transit/source.js'; import { createTrafficSource } from '../layers/traffic/source.js'; import { createBikeshareSource } from '../layers/bikeshare/source.js'; import { createInstallationSource } from '../layers/installations/source.js'; import { createSatelliteSource } from '../layers/satellites/source.js'; import { createLaunchSource } from '../layers/launches/source.js'; import { createAlprTileSource } from '../layers/alpr/source.js'; import { createWeatherSource } from '../layers/weather/source.js'; import { createCycloneSource } from '../layers/cyclones/source.js'; import { createWindSource } from '../layers/wind/source.js'; import { createFirmsSource } from '../layers/firms/source.js'; import { createMapillarySource } from '../layers/streetLevel/source.js'; import { createReferenceSources } from '../sources/reference.js'; export { createReferenceSources as createStandaloneReferenceSources } from '../sources/reference.js'; /** Select standalone providers without starting their acquisition. */ export function createStandaloneLayerSources(overrides = {}) { if (!overrides || typeof overrides !== 'object' || Array.isArray(overrides)) throw new TypeError('Source overrides must be an object'); const mapTiles = createOpenFreeMapSource(); const defaults = { ...createReferenceSources(), directions: createDirectionsSource(), 'recent-imagery': createRecentImagerySource(), flights: createFlightSource(), military: createMilitarySource(), vessels: createVesselSource({ apiUrl: import.meta.env?.VITE_AIS_LIVE_API_URL || '/api/vessels', // Resolved against the document's address, which a panel host may // serve from its own scheme. origin: () => globalThis.document?.baseURI ?? 'http://localhost', }), cctv: createCctvSource(), radio: createRadioSource(), traffic: createTrafficSource({ mapTiles }), transit: createTransitSource(), bikeshare: createBikeshareSource(), installations: createInstallationSource({ mapTiles }), satellites: createSatelliteSource(), launches: createLaunchSource(), alpr: createAlprTileSource(), firms: createFirmsSource(), wind: createWindSource(), weather: createWeatherSource(), cyclones: createCycloneSource(), mapillary: createMapillarySource({ token: import.meta.env?.MAPILLARY_CLIENT_TOKEN || '', }), }; for (const name of Object.keys(overrides)) { if (!Object.hasOwn(defaults, name)) throw new TypeError(`Unknown source: ${name}`); } return { ...defaults, ...overrides }; }