Integrate main into bundler-2/work

# Conflicts:
#	public/doxa-maps/dashboard-plus-grid/dashboard-plus-grid.js
#	public/doxa-maps/dashboard-plus-grid/dashboard-plus-grid/default/index.html
#	public/doxa-maps/dashboard-plus-grid/dashboard-plus-grid/index.html
#	public/doxa-maps/doxa-maps-spa/manifest.json
#	public/doxa-maps/index.html
#	public/doxa-maps/manifest.json
#	public/doxa-maps/research-dashboard/research-dashboard.js
#	public/doxa-maps/research-dashboard/research-dashboard/index.html
This commit is contained in:
doxa-maps-88655c70 2026-09-25 13:52:06 +00:00
commit a6c15c96c4
52 changed files with 449 additions and 370 deletions

View file

@ -20,11 +20,28 @@
* exists at runtime. A scoreboard entry for this was open with nothing able to confirm or refute
* it; that is what this closes.
*
* ⚠ WHAT THIS DOES **NOT** PROVE — read before quoting it as evidence.
* It selects the locale with ?lang=, the URL query param, because detectLocale() reads the URL
* FIRST (library/i18n/index.js): every generated leaf page is hardcoded lang="en" (measured 20 of
* 20), so without the param the ten non-English locales are unreachable in a dropped tree.
* That proves THE TRANSLATIONS EXIST AND RENDER. It does NOT prove a HOST can select them.
*
* A host embeds these elements and sets profile-config.locale. ProfileLoader applies it by
* driving appI18n.global.locale — but only via `inject('appI18n', null)`, so a bundle that calls
* app.use(createAppI18n()) WITHOUT app.provide('appI18n', i18n) makes that watchEffect a SILENT
* no-op: no error, no warning, no translation. Measured by regions on my-upg-100-list: 0 Arabic
* strings with profile-config.locale='ar', while the same harness switched regions-dashboard
* (which does provide it) perfectly.
* So a GREEN run here is consistent with a host being unable to set the language at all. The
* profile-config channel is a SECOND assertion this gate should grow once the 7-plugin contract
* is settled; until it does, do not read this as interop coverage.
*
* Usage: node internal/check-poster-wall-localised.mjs [baseUrl]
* SKIPs when nothing is served; exits 2 (NOT MEASURED) when the server is not this tree.
*/
import { chromium } from 'playwright'
import { resolve, dirname } from 'node:path'
import { readFileSync } from 'node:fs'
import { resolve, dirname, join } from 'node:path'
import { fileURLToPath } from 'node:url'
import { servesThisTree } from './_serves-this-tree.mjs'
@ -41,9 +58,11 @@ const LEAVES = [
'key-cities/city-poster-wall',
'regions-dashboard/regions-list',
]
// ro is the widest-rendering Latin locale, ar is RTL, zh is double-width CJK: three different
// ways a translation can be wrong, and all three differ from the humanized English key.
const LANGS = (process.env.PW_LANG || 'ro,ar,zh').split(',').map((s) => s.trim()).filter(Boolean)
// FIVE SCRIPTS, because a translation can fail differently in each: ro is the widest-rendering
// Latin locale, ar is RTL, zh is double-width CJK, hi is Devanagari, ru is Cyrillic. hi and ru
// were added so this gate matches what the independent verifier measured and can serve as the
// tie-breaker between the two readings; all five differ from the humanized English key.
const LANGS = (process.env.PW_LANG || 'ro,ar,zh,hi,ru').split(',').map((s) => s.trim()).filter(Boolean)
// The humanizeKey outputs for every key the wall renders. Seeing ONE of these in a non-English
// locale means the fallback fired. Derived from the same transform the component uses, so the
@ -54,6 +73,34 @@ const humanizeKey = (k) => String(k).split('.').pop()
.replace(/([a-z0-9])([A-Z])/g, '$1 $2').replace(/^./, (c) => c.toUpperCase())
const FALLBACKS = new Set(KEYS.map(humanizeKey))
// ★ A LOCALE CAN BE BLIND TO THIS DEFECT, and a blind locale passing looks exactly like a clean
// one. The whole gate rests on "the translated string differs from the humanized key" — so if a
// catalogue ever translates buttons.prayerList to literally "Prayer List", that locale can no
// longer tell a real translation from the fallback and would go green forever. Checked against
// the catalogues on disk, not assumed: today all five are clear, and this fails loudly the day
// one is not, rather than quietly losing a locale's worth of coverage.
const blind = []
for (const lang of LANGS) {
let cat = null
try {
cat = JSON.parse(readFileSync(join(ROOT, `library/i18n/locales/${lang}/buttons.json`), 'utf8'))
} catch { blind.push(`${lang}: no buttons.json to compare against`); continue }
for (const k of KEYS) {
const leaf = k.split('.').pop()
if (cat[leaf] !== undefined && cat[leaf] === humanizeKey(k)) {
blind.push(`${lang}.${leaf} === "${humanizeKey(k)}" (identical to the fallback)`)
}
}
}
if (blind.length) {
console.error('POSTER-WALL-LOCALISED: NOT MEASURED — one or more locales cannot detect this defect.')
for (const b of blind) console.error(` ${b}`)
console.error(' A locale whose translation EQUALS the humanized key renders the same text whether')
console.error(' i18n worked or threw, so this gate would pass on it regardless. Retranslate the')
console.error(' key, or drop that locale from PW_LANG and say so.')
process.exit(2)
}
let reachable = false
try { const r = await fetch(`${BASE}/doxa-maps/manifest.json`, { signal: AbortSignal.timeout(4000) }); reachable = r.ok } catch { /* precondition */ }
if (!reachable) {
@ -166,3 +213,8 @@ if (fails.length) {
}
console.log(`\nPOSTER-WALL-LOCALISED: PASS — ${measured} leaf x locale combination(s), `
+ `${LANGS.join('/')}. The shared wall's own chrome is translated everywhere it mounts.`)
// The caveat travels WITH the result, not only in this file's header: a green line pasted into a
// scoreboard is exactly where "translations render" silently becomes "localisation works".
console.log(' SCOPE: locale selected via ?lang= (the URL channel). This does NOT assert that a')
console.log(' HOST can select the locale through profile-config — see the header. A bundle that')
console.log(' omits app.provide(\'appI18n\', i18n) renders perfectly here and ignores its host.')

View file

@ -121,7 +121,7 @@ export function createAppI18n() {
document.documentElement.dir = 'rtl'
}
} catch { /* no document (SSR/tests) — nothing to reflect */ }
return createI18n({
const i18n = createI18n({
legacy: false,
globalInjection: true,
locale,
@ -130,6 +130,33 @@ export function createAppI18n() {
missingWarn: false,
fallbackWarn: false,
})
// ★ INSTALLING i18n ALSO PROVIDES IT, so a bundle CANNOT forget. This is the durable half of a
// bug that is invisible by construction.
//
// THE DEFECT: ProfileLoader applies a host's `profile-config.locale` by driving the app's i18n
// directly — but it reaches it with `inject('appI18n', null)` (ProfileLoader.vue:168-169):
// const appI18n = inject('appI18n', null)
// watchEffect(() => { if (lang.value && appI18n) appI18n.global.locale.value = lang.value })
// The inject DEFAULT IS NULL. So a bundle whose entry does `app.use(createAppI18n())` without a
// matching `app.provide('appI18n', i18n)` turns that watchEffect into a SILENT no-op: no error,
// no warning, no translation. MEASURED by regions on my-upg-100-list — profile-config.locale
// 'ar' produced ZERO Arabic strings, while the same harness switched regions-dashboard (which
// does provide it) perfectly. A host embedding the element simply cannot set its language.
//
// ⚠ WHY HERE AND NOT IN SIX index.js FILES. The fix is one line per bundle, which is exactly
// why it decays: it is one fact stored in six places, and the seventh bundle written next month
// re-introduces it with nothing to catch it. An i18n instance IS a Vue plugin, so wrapping its
// own install() makes the provide a consequence of installing rather than a step beside it.
// Bundles that already call app.provide('appI18n', i18n) with this same instance are
// unaffected — providing the identical value twice is a no-op.
const install = i18n.install.bind(i18n)
i18n.install = (app, ...rest) => {
const out = install(app, ...rest)
app.provide('appI18n', i18n)
return out
}
return i18n
}
export default createAppI18n

File diff suppressed because one or more lines are too long

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <all-people-groups> custom element. -->
<script src="../all-people-groups.js" integrity="sha384-tLAMFSmOXgKsuumAYlSOGxWarmOzELfe4FfQqpvfBimiWBm23Ajinbv0qsxRZupf" crossorigin="anonymous"></script>
<script src="../all-people-groups.js" integrity="sha384-FzP3VH99kAlWO2OEooSLCJfuue+HWIXu2Kf7Dx3dELmg9EzHuPvBzx3HB8X1nYS3" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

View file

@ -26,7 +26,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <cities-internet-map> custom element. -->
<script src="../cities-internet.js" integrity="sha384-mbN7vJ4SwlPjwow485s6WcZtjgHfRL9c/cEScZGYM4iZVwTX3imUfgz/lNX7UKJe" crossorigin="anonymous"></script>
<script src="../cities-internet.js" integrity="sha384-2K2SKyR/TsbJcIv322N0K18RY4erDK9aW/rhDf/5gS+sRgc3GPEY7eZuvaPWaYbi" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <cities-internet-map> custom element. -->
<script src="../cities-internet.js" integrity="sha384-mbN7vJ4SwlPjwow485s6WcZtjgHfRL9c/cEScZGYM4iZVwTX3imUfgz/lNX7UKJe" crossorigin="anonymous"></script>
<script src="../cities-internet.js" integrity="sha384-2K2SKyR/TsbJcIv322N0K18RY4erDK9aW/rhDf/5gS+sRgc3GPEY7eZuvaPWaYbi" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -26,7 +26,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <cities-internet-map> custom element. -->
<script src="../cities-internet.js" integrity="sha384-mbN7vJ4SwlPjwow485s6WcZtjgHfRL9c/cEScZGYM4iZVwTX3imUfgz/lNX7UKJe" crossorigin="anonymous"></script>
<script src="../cities-internet.js" integrity="sha384-2K2SKyR/TsbJcIv322N0K18RY4erDK9aW/rhDf/5gS+sRgc3GPEY7eZuvaPWaYbi" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <country-posters-map> custom element. -->
<script src="../country-posters.js" integrity="sha384-XihJJ+5H6GH3dOVnuzv4/ykroXFbCmwSrZS5MDmw4xmhrctg7Wpz62FkZ8JCAKjK" crossorigin="anonymous"></script>
<script src="../country-posters.js" integrity="sha384-xz1NJHd55AgJVsv68mgxQq2Nd0kIUeXq5YxQv89+TUiS7jXQlPYE7xre8Z2mubi+" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -26,7 +26,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <country-posters-map> custom element. -->
<script src="../country-posters.js" integrity="sha384-XihJJ+5H6GH3dOVnuzv4/ykroXFbCmwSrZS5MDmw4xmhrctg7Wpz62FkZ8JCAKjK" crossorigin="anonymous"></script>
<script src="../country-posters.js" integrity="sha384-xz1NJHd55AgJVsv68mgxQq2Nd0kIUeXq5YxQv89+TUiS7jXQlPYE7xre8Z2mubi+" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -40,7 +40,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <country-posters-map> custom element. -->
<script src="../country-posters.js" integrity="sha384-XihJJ+5H6GH3dOVnuzv4/ykroXFbCmwSrZS5MDmw4xmhrctg7Wpz62FkZ8JCAKjK" crossorigin="anonymous"></script>
<script src="../country-posters.js" integrity="sha384-xz1NJHd55AgJVsv68mgxQq2Nd0kIUeXq5YxQv89+TUiS7jXQlPYE7xre8Z2mubi+" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <demo-map> custom element. -->
<script src="../demo-map.js" integrity="sha384-OiUABqAB3sINj95nEswpAJ2nJBd9bwrMR2bezKyN6WpxHw9/NvUmYMe8o0i1muWV" crossorigin="anonymous"></script>
<script src="../demo-map.js" integrity="sha384-JP/cidUhoN1H0pPxekQts4d5xgTn6Slne9QNwF0Q3xnqq1dmUUV9RktCmViXFgJ8" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -27,7 +27,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <demo-map> custom element. -->
<script src="../../demo-map.js" integrity="sha384-OiUABqAB3sINj95nEswpAJ2nJBd9bwrMR2bezKyN6WpxHw9/NvUmYMe8o0i1muWV" crossorigin="anonymous"></script>
<script src="../../demo-map.js" integrity="sha384-JP/cidUhoN1H0pPxekQts4d5xgTn6Slne9QNwF0Q3xnqq1dmUUV9RktCmViXFgJ8" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <doxa-research-map> custom element. -->
<script src="../doxa-research-map.js" integrity="sha384-AAattix3svi8r4BuxeWrOrNjBj3Wj8qN4eKNzxbzN6jN5m7cZRzlgk1WKJf32Exo" crossorigin="anonymous"></script>
<script src="../doxa-research-map.js" integrity="sha384-MK+oC+mf/cHoNDwNURn4kLCQoaTXreIcBJ7qmTiSkwX2CzmBSyCVGCs3rX6cGV5n" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -27,7 +27,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <doxa-research-map> custom element. -->
<script src="../../doxa-research-map.js" integrity="sha384-AAattix3svi8r4BuxeWrOrNjBj3Wj8qN4eKNzxbzN6jN5m7cZRzlgk1WKJf32Exo" crossorigin="anonymous"></script>
<script src="../../doxa-research-map.js" integrity="sha384-MK+oC+mf/cHoNDwNURn4kLCQoaTXreIcBJ7qmTiSkwX2CzmBSyCVGCs3rX6cGV5n" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <doxa-map> custom element. -->
<script src="../../doxa-simple-map.js" integrity="sha384-QDnthNH0t4oJYQcYunMxIb9DUGBQRAUm+TPEg2RWvsrkJ4CYrbAlzbyCWoTqOXB7" crossorigin="anonymous"></script>
<script src="../../doxa-simple-map.js" integrity="sha384-eG+aPFxt0jUKyGrHbQ5LWHJkpTsOzpoQoMRjb3crZXOsO4ilR2Q2BQgcSVmI8mus" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <doxa-map> custom element. -->
<script src="../../doxa-simple-map.js" integrity="sha384-QDnthNH0t4oJYQcYunMxIb9DUGBQRAUm+TPEg2RWvsrkJ4CYrbAlzbyCWoTqOXB7" crossorigin="anonymous"></script>
<script src="../../doxa-simple-map.js" integrity="sha384-eG+aPFxt0jUKyGrHbQ5LWHJkpTsOzpoQoMRjb3crZXOsO4ilR2Q2BQgcSVmI8mus" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <doxa-map> custom element. -->
<script src="../doxa-simple-map.js" integrity="sha384-QDnthNH0t4oJYQcYunMxIb9DUGBQRAUm+TPEg2RWvsrkJ4CYrbAlzbyCWoTqOXB7" crossorigin="anonymous"></script>
<script src="../doxa-simple-map.js" integrity="sha384-eG+aPFxt0jUKyGrHbQ5LWHJkpTsOzpoQoMRjb3crZXOsO4ilR2Q2BQgcSVmI8mus" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <doxa-map> custom element. -->
<script src="../../doxa-simple-map.js" integrity="sha384-QDnthNH0t4oJYQcYunMxIb9DUGBQRAUm+TPEg2RWvsrkJ4CYrbAlzbyCWoTqOXB7" crossorigin="anonymous"></script>
<script src="../../doxa-simple-map.js" integrity="sha384-eG+aPFxt0jUKyGrHbQ5LWHJkpTsOzpoQoMRjb3crZXOsO4ilR2Q2BQgcSVmI8mus" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -26,7 +26,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
<script src="../gospel-resources.js" integrity="sha384-fzLhpfKMl4bKSqmFhf4jJ4W27zM/8UA7drIJcDBlajgJ3tl5y7muZUBrRbarpgws" crossorigin="anonymous"></script>
<script src="../gospel-resources.js" integrity="sha384-m6wMxfyalCRzeQS+TWIQmzGNyuRc7MLWNCjX8sFul6OBgXh1YvrcDcWEZhMsyfAi" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -26,7 +26,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
<script src="../gospel-resources.js" integrity="sha384-fzLhpfKMl4bKSqmFhf4jJ4W27zM/8UA7drIJcDBlajgJ3tl5y7muZUBrRbarpgws" crossorigin="anonymous"></script>
<script src="../gospel-resources.js" integrity="sha384-m6wMxfyalCRzeQS+TWIQmzGNyuRc7MLWNCjX8sFul6OBgXh1YvrcDcWEZhMsyfAi" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -40,7 +40,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
<script src="../gospel-resources.js" integrity="sha384-fzLhpfKMl4bKSqmFhf4jJ4W27zM/8UA7drIJcDBlajgJ3tl5y7muZUBrRbarpgws" crossorigin="anonymous"></script>
<script src="../gospel-resources.js" integrity="sha384-m6wMxfyalCRzeQS+TWIQmzGNyuRc7MLWNCjX8sFul6OBgXh1YvrcDcWEZhMsyfAi" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

View file

@ -26,7 +26,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
<script src="../gospel-resources.js" integrity="sha384-fzLhpfKMl4bKSqmFhf4jJ4W27zM/8UA7drIJcDBlajgJ3tl5y7muZUBrRbarpgws" crossorigin="anonymous"></script>
<script src="../gospel-resources.js" integrity="sha384-m6wMxfyalCRzeQS+TWIQmzGNyuRc7MLWNCjX8sFul6OBgXh1YvrcDcWEZhMsyfAi" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
<script src="../gospel-resources.js" integrity="sha384-fzLhpfKMl4bKSqmFhf4jJ4W27zM/8UA7drIJcDBlajgJ3tl5y7muZUBrRbarpgws" crossorigin="anonymous"></script>
<script src="../gospel-resources.js" integrity="sha384-m6wMxfyalCRzeQS+TWIQmzGNyuRc7MLWNCjX8sFul6OBgXh1YvrcDcWEZhMsyfAi" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -26,7 +26,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <my-upg-100-list-map> custom element. -->
<script src="../my-upg-100-list.js" integrity="sha384-vqUN7kfMcv1vUvjQIzNxapDlwPSdtR8atXoIETM0hxoqOCKG+7FAPPltRsA4jukY" crossorigin="anonymous"></script>
<script src="../my-upg-100-list.js" integrity="sha384-68x8r21upPbnkVGOtyTWt3LV4hB3KQXWBb/6rk02cfq7CsOCLszCaeqM1iDn2+eZ" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <my-upg-100-list-map> custom element. -->
<script src="../my-upg-100-list.js" integrity="sha384-vqUN7kfMcv1vUvjQIzNxapDlwPSdtR8atXoIETM0hxoqOCKG+7FAPPltRsA4jukY" crossorigin="anonymous"></script>
<script src="../my-upg-100-list.js" integrity="sha384-68x8r21upPbnkVGOtyTWt3LV4hB3KQXWBb/6rk02cfq7CsOCLszCaeqM1iDn2+eZ" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -40,7 +40,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <my-upg-100-list-map> custom element. -->
<script src="../my-upg-100-list.js" integrity="sha384-vqUN7kfMcv1vUvjQIzNxapDlwPSdtR8atXoIETM0hxoqOCKG+7FAPPltRsA4jukY" crossorigin="anonymous"></script>
<script src="../my-upg-100-list.js" integrity="sha384-68x8r21upPbnkVGOtyTWt3LV4hB3KQXWBb/6rk02cfq7CsOCLszCaeqM1iDn2+eZ" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <pplr-data-maps> custom element. -->
<script src="../pplr-data-maps.js" integrity="sha384-+EOcMT3P42D39HGIjZBbJ6waYI2yJDhNDwNf+8wFruaHqEhdYYa36M+iLIT5fRiH" crossorigin="anonymous"></script>
<script src="../pplr-data-maps.js" integrity="sha384-KmVt63NCnFNNvxhTpi9V+O9/ckmzTrT5Sh8oVh1+UXR2NdE6gqyF8Cp+LTIb4eig" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <prayer-walk-planner> custom element. -->
<script src="../prayer-walk-planner.js" integrity="sha384-v0hrmAp17LGeHHfWbgdEkrTILIqrZRQh2QDFT1tgxN359vVW/Xt7t+GAQS16uA4U" crossorigin="anonymous"></script>
<script src="../prayer-walk-planner.js" integrity="sha384-/v5q7YNtRoUDKipjLRiR93/MQ9IIpqBxT7M6koVPkz8/whdWQ0cqkaMmVLb1uJBz" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <regions-dashboard> custom element. -->
<script src="../regions-dashboard.js" integrity="sha384-ue+5wU/3Mucc33aYWFlq/+ASVdSLukayWgbK4P3SPiku6Pr9uPWhfx6T4roaGmCl" crossorigin="anonymous"></script>
<script src="../regions-dashboard.js" integrity="sha384-oEd6CX+fSvpyIg/gSEEd6wlz7kxYztibJia3vAp/DtjHWP9h4nmec4NaVnvHiXIt" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

View file

@ -26,7 +26,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <regions-dashboard> custom element. -->
<script src="../regions-dashboard.js" integrity="sha384-ue+5wU/3Mucc33aYWFlq/+ASVdSLukayWgbK4P3SPiku6Pr9uPWhfx6T4roaGmCl" crossorigin="anonymous"></script>
<script src="../regions-dashboard.js" integrity="sha384-oEd6CX+fSvpyIg/gSEEd6wlz7kxYztibJia3vAp/DtjHWP9h4nmec4NaVnvHiXIt" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -40,7 +40,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <regions-dashboard> custom element. -->
<script src="../regions-dashboard.js" integrity="sha384-ue+5wU/3Mucc33aYWFlq/+ASVdSLukayWgbK4P3SPiku6Pr9uPWhfx6T4roaGmCl" crossorigin="anonymous"></script>
<script src="../regions-dashboard.js" integrity="sha384-oEd6CX+fSvpyIg/gSEEd6wlz7kxYztibJia3vAp/DtjHWP9h4nmec4NaVnvHiXIt" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <upg-neighbor> custom element. -->
<script src="../../upg-neighbor.js" integrity="sha384-L9U5BmHdIQSgYXleGnKoycRFoPQq/zCBFGCK+76Xt++6f/Z0byB9sSlVef7ofjXi" crossorigin="anonymous"></script>
<script src="../../upg-neighbor.js" integrity="sha384-xuJSN1MtKpY5lw8G46H8AR5LLwI1JbPRiqlAqegaV6XH5mM/50GmeN68w2v/5dMw" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <upg-neighbor> custom element. -->
<script src="../../upg-neighbor.js" integrity="sha384-L9U5BmHdIQSgYXleGnKoycRFoPQq/zCBFGCK+76Xt++6f/Z0byB9sSlVef7ofjXi" crossorigin="anonymous"></script>
<script src="../../upg-neighbor.js" integrity="sha384-xuJSN1MtKpY5lw8G46H8AR5LLwI1JbPRiqlAqegaV6XH5mM/50GmeN68w2v/5dMw" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <upg-neighbor> custom element. -->
<script src="../upg-neighbor.js" integrity="sha384-L9U5BmHdIQSgYXleGnKoycRFoPQq/zCBFGCK+76Xt++6f/Z0byB9sSlVef7ofjXi" crossorigin="anonymous"></script>
<script src="../upg-neighbor.js" integrity="sha384-xuJSN1MtKpY5lw8G46H8AR5LLwI1JbPRiqlAqegaV6XH5mM/50GmeN68w2v/5dMw" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <upg-neighbor> custom element. -->
<script src="../../upg-neighbor.js" integrity="sha384-L9U5BmHdIQSgYXleGnKoycRFoPQq/zCBFGCK+76Xt++6f/Z0byB9sSlVef7ofjXi" crossorigin="anonymous"></script>
<script src="../../upg-neighbor.js" integrity="sha384-xuJSN1MtKpY5lw8G46H8AR5LLwI1JbPRiqlAqegaV6XH5mM/50GmeN68w2v/5dMw" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <upg-neighbor> custom element. -->
<script src="../../upg-neighbor.js" integrity="sha384-L9U5BmHdIQSgYXleGnKoycRFoPQq/zCBFGCK+76Xt++6f/Z0byB9sSlVef7ofjXi" crossorigin="anonymous"></script>
<script src="../../upg-neighbor.js" integrity="sha384-xuJSN1MtKpY5lw8G46H8AR5LLwI1JbPRiqlAqegaV6XH5mM/50GmeN68w2v/5dMw" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <upg-neighbor> custom element. -->
<script src="../../upg-neighbor.js" integrity="sha384-L9U5BmHdIQSgYXleGnKoycRFoPQq/zCBFGCK+76Xt++6f/Z0byB9sSlVef7ofjXi" crossorigin="anonymous"></script>
<script src="../../upg-neighbor.js" integrity="sha384-xuJSN1MtKpY5lw8G46H8AR5LLwI1JbPRiqlAqegaV6XH5mM/50GmeN68w2v/5dMw" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

View file

@ -26,7 +26,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <wall-of-people-groups> custom element. -->
<script src="../wall-of-people-groups.js" integrity="sha384-YPFNNohoobgb+Dvpie0KY661J5Y6ggXDDYmAeGt2ZqEwzvon8gKh3po0I/RPxAZR" crossorigin="anonymous"></script>
<script src="../wall-of-people-groups.js" integrity="sha384-dIwKgGUIgpAkAq8rO1P8DEssasjx2o9TGpNuJebLbg/R9igbiwnFMX8Lu+Rh0D2+" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order: