Lumeo

CDN Dependencies

Satellite packages (Maps, PdfViewer, Charts, Scheduler, CodeEditor) load their JavaScript libraries from a public CDN at runtime. This page lists every dependency, explains how to override the URLs, and shows how to self-host them with the CLI for airgapped or strict-CSP deployments.

How it works

Every satellite's JavaScript interop file uses a small helper:

function _cdn(key, fallback) { return (window.lumeoCdn && window.lumeoCdn[key]) || fallback; } const MAPLIBRE_JS = _cdn('mapLibreJs', 'https://unpkg.com/[email protected]/...');

If window.lumeoCdn is set before the first component mounts, its values take priority. If not, the CDN fallback is used. Nothing else to configure — the default works out of the box.

Self-hosting with the CLI

Run once from your Blazor project root to download every dependency into wwwroot/lib/lumeo-vendor/:

lumeo deps install

This also generates wwwroot/js/lumeo-cdn-init.js which sets window.lumeoCdn to the local paths. Add one script tag to your App.razor <head> before Blazor's framework script:

<script src="js/lumeo-cdn-init.js"></script>

Options

Flag Default Description
--lib <name> all Filter by satellite name, package, or key (e.g. Lumeo.Maps)
--target <dir> auto Project root (defaults to first parent dir with a *.csproj)
--no-bootstrap false Skip generating lumeo-cdn-init.js
--force false Re-download files that already exist
--dry-run false Print what would happen without writing files

Manual override

You can point individual keys at any URL — your own CDN, a local path, or an alternative version — without running the CLI. Set window.lumeoCdn before Blazor boots:

<script> window.lumeoCdn = { mapLibreJs: '/my-cdn/maplibre-gl.js', mapLibreCss: '/my-cdn/maplibre-gl.css', }; </script>

Only the keys you set are overridden — unset keys fall back to the CDN default.

Current dependencies

Loaded from /registry/cdn-deps.json — regenerated by tools/Lumeo.RegistryGen on every CI run.