iso3-to-iso2 mapped SJM to NO, so every research fetch keyed through it filed Norway's figures under Svalbard. With SJM -> SJ on main, the four fetched tables now hold what the pipeline produces for Svalbard itself, re-fetched for SJ through each script's own code: network-operators 60 Norwegian networks -> none (RIPEstat: 0 ASNs for SJ) platform-reachability 15 rows of Norway's OONI -> 15 not-measured (no SJ probes) social-platforms 8 rows of Norway, 2026-07 -> 4 rows of Svalbard, 2026-09 messaging-channels 3 rows from Norway's store -> none (no SJ storefront) Norway is not added: it is not in the DX country spine these tables are built over, so no build produces Norway rows here. Svalbard's own people group rows elsewhere are untouched, and every other country's rows are unchanged and in order. |
||
|---|---|---|
| .. | ||
| api | ||
| colors | ||
| components | ||
| composables | ||
| constants | ||
| data | ||
| i18n | ||
| layouts | ||
| lists | ||
| maps | ||
| packet | ||
| scripts | ||
| stores | ||
| styles | ||
| utils | ||
| vendor/cldr | ||
| index.js | ||
| ProfileLoader.vue | ||
| README.md | ||
library/ (@map) — the shared map template
The other half of the architecture (see ../plugin-designs/README.md):
every map in plugin-designs/<your-map>/ composes the reusable, parameterized pieces that live here.
Fix something here and every map benefits on the next build; break something here and every map
breaks — read components/WARNING.md before touching shared pieces.
| Folder | What lives there |
|---|---|
ProfileLoader.vue |
The root of every bundle: parses profile-config, loads the profile, provides the stores + config |
components/ |
Shared UI — map, legends, controls, popup (PeopleGroupDetail), tables, charts, hints (README) |
composables/ |
Shared logic — map engine (useMapInstance), provider switch, shadow-DOM styles, theming |
stores/ |
Per-instance Pinia stores (ui / map / data) — provided by ProfileLoader, injected by children |
api/ |
Data-source registry (sources.json) + fetch layer — the JAMstack runtime wiring |
colors/ |
Color sets maps opt into via profile-config.colorSet |
i18n/ |
The shared string catalogs (all maps speak the same languages) |
data/ |
Small shared datasets baked at build time (big served data lives in ../data/) |
constants/ |
Shared constants |
scripts/ |
Maintainer pipelines (posters, research) — not part of any bundle |
The rule of thumb (same as WARNING.md): custom code in your app-profile, reusable code here — and things only move from the first to the second once they've earned it.