{ "name": "doxa-maps", "version": "0.1.0", "license": "Apache-2.0", "private": true, "description": "A portable bundler that generates embeddable JAMstack maps — one library, many map bundles that embed on any site, compose into a lazy-loaded SPA, or wrap a Capacitor Android/iOS app.", "type": "module", "scripts": { "apk:debug": "bun run build && bun run cap:sync && bun run app:start-page && bun run cap:verify && cd deployment/capacitor/android && ./gradlew assembleDebug", "apk:install": "adb install -r deployment/capacitor/android/app/build/outputs/apk/debug/app-debug.apk", "app:start-page": "node internal/set-app-start-page.mjs", "browser-gates": "node internal/check-browser-gates-guarded.mjs --list", "build": "bash internal/build-lock.sh", "build:bundle": "bun x vite build", "build:bundles": "node internal/run-parallel.mjs --bundles", "build:unlocked": "bun run gates:pre && bun run library-index && bun run check:library-index && bun run clean && bun run token && bun run build:bundles && bun run tree && bun run gates:post && node internal/sync-dropin.mjs --from-config --if-present", "build:watch": "bun x vite build --watch", "cap:sync": "./node_modules/.bin/cap sync android", "cap:verify": "test -f deployment/capacitor/android/app/src/main/assets/public/index.html && echo \"OK webDir copied\" || (echo \"FAIL: empty assets/public -> blank white screen. Check webDir.\" && exit 1)", "capability-exemplars": "node internal/generate-capability-exemplars.mjs", "check:a11y-button-names": "node internal/check-a11y-button-names.mjs", "check:mobile-gating": "node internal/check-mobile-gating.mjs", "check:app-start-page": "node internal/set-app-start-page.mjs --check", "check:approx-pin-note": "node internal/check-approx-pin-note.mjs", "check:auto-engine": "node internal/check-auto-engine.mjs", "check:no-internal-role-nouns": "node internal/check-no-internal-role-nouns.mjs", "check:plural-forms": "node internal/check-plural-forms.mjs", "check:basemap-labels": "node internal/check-basemap-labels-localized.mjs", "check:browser-gates-guarded": "node internal/check-browser-gates-guarded.mjs", "check:capability-citations": "node internal/check-capability-citations.mjs", "check:capability-derived": "node internal/check-capability-derived.mjs", "check:capability-exemplars": "node internal/check-capability-exemplars.mjs", "check:card-deck": "node internal/check-card-deck.mjs", "check:catalog-currency": "node internal/check-catalog-currency.mjs", "check:catalog-identity": "node internal/check-catalog-identity.mjs", "check:cdn-cache": "bun internal/check-cdn-cache.mjs", "check:cdn-pins": "node internal/check-cdn-pins.mjs", "check:click-sheet": "node plugin-designs/gospel-resources/scripts/verify-gospel-click-sheet.mjs", "check:composed-filters": "node internal/check-gospel-composed-filters.mjs", "check:composite": "node internal/check-composite-freshness.mjs", "check:clustering-modes": "node plugin-designs/doxa-research-map/scripts/check-clustering-modes.mjs", "check:composite-embed-knobs": "node internal/check-composite-embed-knobs.mjs", "check:composite-interop": "node internal/check-composite-interop.mjs", "check:composite-locale-leaks": "node plugin-designs/research-map-plus-grid/scripts/check-composite-locale-leaks.mjs", "check:composite-reg": "node internal/check-composite-registration.mjs", "check:composite-srcs": "node internal/check-composite-srcs.mjs", "check:composite-token-url": "node internal/check-composite-token-url.mjs", "check:composites-mount": "node internal/check-composites-mount.mjs", "check:country-names": "node internal/check-country-names.mjs", "check:country-sheet-one-path": "node plugin-designs/country-posters/scripts/check-country-sheet-one-path.mjs", "check:country-sheet-one-path:self-test": "node plugin-designs/country-posters/scripts/check-country-sheet-one-path.mjs --self-test", "check:coverage-consistent": "node internal/check-gospel-coverage-consistent.mjs", "check:coverage-consistent:chained": "VERIFY_MAX_AGE_DAYS=36500 node internal/check-gospel-coverage-consistent.mjs", "check:coverage-consistent:poison": "node internal/check-gospel-coverage-consistent.mjs --poison", "check:csv-shape": "node internal/check-csv-export-shape.mjs", "check:csv-shape:self-test": "node internal/check-csv-export-shape.mjs --self-test", "check:poster-sizes:self-test": "node internal/check-poster-sizes.mjs --self-test", "check:poster-sizes": "node internal/check-poster-sizes.mjs", "check:pin-hint-floor": "node internal/check-pin-hint-floor.mjs", "check:pin-hint-floor:self-test": "node internal/check-pin-hint-floor.mjs --self-test", "check:preview-flag-dev-only": "node internal/check-preview-flag-dev-only.mjs", "check:preview-flag-dev-only:self-test": "node internal/check-preview-flag-dev-only.mjs --self-test", "check:no-fleet-names": "node internal/check-no-fleet-names.mjs", "check:no-fleet-names:self-test": "node internal/check-no-fleet-names.mjs --self-test", "check:dashboard-filter-a11y": "node plugin-designs/research-dashboard/scripts/check-dashboard-filter-a11y.mjs", "check:dashboard-geocoder-provider": "node plugin-designs/research-dashboard/scripts/check-dashboard-geocoder-provider.mjs", "check:deck-click": "node internal/check-deck-click.mjs", "check:dep-names": "node internal/check-dependency-names.mjs", "check:describe-group": "node internal/check-describe-group.mjs", "check:descriptions": "node internal/check-profile-descriptions.mjs", "check:dev-assets": "node internal/check-dev-assets.mjs", "check:dev-leaf-escape": "node internal/check-dev-leaf-escape.mjs", "check:dev-leaf-escape:self-test": "node internal/check-dev-leaf-escape.mjs --self-test", "check:doc-scripts": "node internal/check-doc-quotes-scripts.mjs", "check:readme-size": "node internal/check-readme-web-folder-size.mjs", "check:doc-scripts:self-test": "node internal/check-doc-quotes-scripts.mjs --self-test", "check:drop": "node internal/drop-portability-check.mjs", "check:element-census-vs-live": "node internal/check-element-census-vs-live.mjs", "check:embed-base": "node internal/check-embed-base-resolution.mjs", "check:embed-basemap": "node internal/check-embed-basemap-paints.mjs", "check:embed-targets": "node internal/check-embed-targets-exist.mjs", "check:embed-targets:self-test": "node internal/check-embed-targets-exist.mjs --self-test", "check:embedded-rtl": "node internal/check-embedded-rtl.mjs", "check:embedder-keys": "node plugin-designs/regions-dashboard/scripts/check-embedder-keys.mjs", "check:english-leaks": "node internal/check-gospel-english-leaks.mjs", "check:experimental-shelf": "node internal/check-experimental-shelf.mjs", "check:export-poster-prints": "node plugin-designs/doxa-research-map/scripts/check-export-poster-prints.mjs", "check:export-poster-prints:maplibre": "node plugin-designs/doxa-research-map/scripts/check-export-poster-prints.mjs --provider maplibre", "check:upg-zone-joins": "node internal/check-upg-zone-joins.mjs", "check:gospel-set-charts": "node internal/check-gospel-set-charts.mjs", "check:gospel-set-fit": "node internal/check-gospel-set-fit.mjs", "check:facet-cascade": "node internal/check-facet-cascade.mjs", "check:facet-cascade:offline": "node internal/check-facet-cascade.mjs --offline", "check:facet-cascade:self-test": "node internal/check-facet-cascade.mjs --self-test", "check:facet-shape": "node internal/check-facet-shape.mjs", "check:facet-changes-map": "node internal/check-facet-changes-map.mjs", "check:facet-changes-map:built": "sh -c 'BASE_URL=${BASE_URL:-http://127.0.0.1:4173} PROBE_PATH=${PROBE_PATH:-/doxa-maps/research-dashboard/research-dashboard/index.html} exec node internal/check-facet-changes-map.mjs'", "check:facet-changes-map:self-test": "node internal/check-facet-changes-map.mjs --self-test", "check:facet-one-field": "node internal/check-facet-one-field.mjs", "check:facet-one-field:self-test": "node internal/check-facet-one-field.mjs --self-test", "check:filter-width": "node internal/check-filter-width-stable.mjs", "check:filter-multivalue": "node plugin-designs/research-map-plus-grid/scripts/check-filter-multivalue.mjs", "check:fits-screen": "node internal/check-fits-the-screen.mjs", "check:fits-screen:self-test": "node internal/check-fits-the-screen.mjs --self-test", "check:fits-screen:self-test:b": "node internal/check-fits-the-screen.mjs --self-test --self-test-clause=b", "check:fits-screen:self-test:c": "node internal/check-fits-the-screen.mjs --self-test --self-test-clause=c", "check:fits-screen:self-test:d": "node internal/check-fits-the-screen.mjs --self-test --self-test-clause=d", "check:fits-screen:self-test:e": "node internal/check-fits-the-screen.mjs --self-test --self-test-clause=e", "check:fixed-anchoring": "node internal/check-fixed-anchoring.mjs", "check:frozen-labels": "node internal/check-frozen-labels.mjs", "check:frozen-labels:self-test": "node internal/check-frozen-labels.mjs --self-test", "check:gallery-embed": "node internal/check-research-gallery-embed.mjs", "check:gallery-embed:iframe": "node internal/check-research-gallery-embed.mjs --mode iframe", "check:gallery-embed:js": "node internal/check-research-gallery-embed.mjs --mode js", "check:gallery-embed:live-cors": "node internal/check-research-gallery-embed.mjs --live-cors", "check:gallery-embed:maplibre": "node internal/check-research-gallery-embed.mjs --provider maplibre", "check:gated-not-in-tree": "node internal/check-gated-not-in-tree.mjs", "check:gospel-all": "node internal/check-gospel-all.mjs", "check:gospel-internet": "node plugin-designs/gospel-internet/scripts/check-gospel-internet-model.mjs && node plugin-designs/gospel-internet/scripts/check-gospel-internet-i18n.mjs && node plugin-designs/gospel-internet/scripts/check-language-tree.mjs && node plugin-designs/gospel-internet/scripts/check-gospel-internet-render.mjs", "check:gospel-tables-staged": "node internal/check-gospel-tables-staged.mjs", "check:gospel-whiteboard": "node internal/check-gospel-whiteboard.mjs", "check:hardcoded-english": "node internal/check-hardcoded-english.mjs", "check:hardcoded-english:self-test": "node internal/check-hardcoded-english.mjs --self-test", "check:embed-contract": "node internal/check-gospel-embed-contract.mjs", "check:engine-contract": "node internal/check-gospel-engine-contract.mjs", "check:leaf-drops-tk": "node internal/check-leaf-drops-tk.mjs", "check:leaf-drops-tk:self-test": "node internal/check-leaf-drops-tk.mjs --self-test", "check:link-coverage": "node internal/check-link-verification-coverage.mjs", "dropin": "node internal/sync-dropin.mjs --from-config", "gospel:bridge-reach": "node plugin-designs/gospel-resources/scripts/build-bridge-reach-table.mjs", "gospel:field-cards": "node plugin-designs/gospel-resources/scripts/build-field-cards.mjs", "check:link-coverage:poison": "node internal/check-link-verification-coverage.mjs --poison", "check:engine-contract:poison": "node internal/check-gospel-engine-contract.mjs --poison", "check:embed-contract:poison": "node internal/check-gospel-embed-contract.mjs --poison", "check:map-attribution": "node internal/check-map-attribution.mjs", "check:map-control-overlap": "node internal/check-map-control-overlap.mjs", "check:studio-rail:self-test": "node internal/check-studio-rail.mjs --self-test", "check:studio-rail": "node internal/check-studio-rail.mjs", "check:translator-contacts": "node internal/check-translator-contacts.mjs", "check:translator-contacts:poison": "node internal/check-translator-contacts.mjs --poison", "check:heartbeat": "node internal/check-heartbeat-threshold.mjs", "check:heartbeat:self-test": "node internal/check-heartbeat-threshold.mjs --self-test", "check:help-reachable": "node internal/check-help-reachable.mjs", "check:hover-channel": "node plugin-designs/research-map-plus-grid/scripts/check-hover-channel.mjs", "check:host-locale-contract": "node internal/check-host-locale-contract.mjs", "check:i18n-keys-exist": "node plugin-designs/research-map-plus-grid/scripts/check-i18n-keys-exist.mjs", "check:i18n-never-translated": "node internal/check-i18n-never-translated.mjs", "check:i18n-parity": "node internal/check-i18n-parity.mjs", "check:sentence-slots": "node internal/check-sentence-slots.mjs", "check:i18n-stopped-scope": "node internal/check-i18n-stopped-scope.mjs", "check:i18n-treeshake": "node internal/check-i18n-treeshake.mjs", "check:instance-config-keys": "node internal/check-instance-config-keys.mjs", "check:kit-options-reachable": "node plugin-designs/research-dashboard/scripts/check-kit-options-reachable.mjs", "check:kpi-unit": "node internal/check-kpi-unit-once.mjs", "check:label-joins": "node internal/check-label-joins.mjs", "check:language-code-link": "node plugin-designs/doxa-research-map/scripts/check-language-code-link.mjs", "check:whiteboard-projection": "node internal/check-whiteboard-projection.mjs", "check:frame-target": "node internal/check-frame-target.mjs", "check:language-tree-model": "node internal/check-language-tree-model.mjs", "check:tiered-points": "node internal/check-tiered-points.mjs", "check:language-tree-layout": "node internal/check-language-tree-layout.mjs", "check:layout-key-namespaced": "node plugin-designs/research-dashboard/scripts/check-layout-key-namespaced.mjs", "check:leaf-engine-per-provider": "node internal/check-leaf-engine-per-provider.mjs", "check:leaf-hints": "node internal/check-leaf-hints.mjs", "check:leaf-english-leaks": "node internal/check-leaf-english-leaks.mjs", "check:leaf-english-leaks:self-test": "node internal/check-leaf-english-leaks.mjs --self-test", "check:leaves-mount": "node internal/check-gospel-leaves-mount.mjs", "check:leaves-mount:poison": "node internal/check-gospel-leaves-mount.mjs --poison", "check:legend-data-contract": "node internal/check-legend-data-contract.mjs", "check:legend-export-reachable": "node internal/check-legend-export-reachable.mjs", "check:legend-logical-insets": "node internal/check-legend-logical-insets.mjs", "check:legend-logical-insets:self-test": "node internal/check-legend-logical-insets.mjs --self-test", "check:legend-mirrors": "node plugin-designs/research-dashboard/scripts/check-legend-mirrors.mjs", "check:legend-source": "node internal/check-legend-matches-source.mjs", "check:library-index": "node internal/check-library-index.mjs", "check:link-rot": "node internal/check-link-rot-sample.mjs", "check:linked-vocabulary": "node plugin-designs/research-map-plus-grid/scripts/check-linked-vocabulary.mjs", "check:list-prop-unit": "node internal/check-list-prop-unit.mjs", "check:list-selection": "node internal/check-list-selection.mjs", "check:locale-reachable": "node internal/check-locale-reachable.mjs", "check:manifest-covers": "node internal/check-manifest-covers-discovery.mjs", "check:map-data-painted": "node internal/check-map-data-painted.mjs", "check:map-data-painted:poison": "node internal/check-map-data-painted.mjs --poison", "check:map-embed-cells": "node internal/check-map-embed-cells.mjs", "check:map-fly-reduced-motion": "node internal/check-map-fly-reduced-motion.mjs", "check:map-paints": "node internal/check-gospel-map-paints.mjs", "check:map-paints:poison": "node internal/check-gospel-map-paints.mjs --poison", "check:map-props-unit": "node internal/check-map-props-unit.mjs", "check:map-unmount-mid-init": "node internal/check-map-unmount-mid-init.mjs", "check:map-unmount-race": "node internal/check-map-unmount-guard.mjs", "check:mapbox-drew": "node internal/check-mapbox-drew.mjs", "check:maplibre-drops": "node internal/check-maplibre-layer-drops.mjs", "check:mfe-two-tab": "node internal/check-mfe-two-tab.mjs", "check:mjs-parse": "node internal/check-mjs-parses.mjs", "check:mobile": "bun run cap:sync && bun run cap:verify", "check:mst-clustering": "node internal/check-mst-clustering.mjs", "check:nav-reachable": "node internal/check-nav-reachable-mobile.mjs", "check:nested-token": "node internal/check-nested-token-delivery.mjs", "check:no-abs-paths": "node internal/check-no-absolute-paths.mjs", "check:no-codename": "node internal/check-no-internal-codename.mjs", "check:no-conflict-markers": "node internal/check-no-conflict-markers.mjs", "check:no-conflict-markers:poison": "node internal/check-no-conflict-markers.mjs --poison", "check:no-credentials-omit": "node internal/check-no-credentials-omit.mjs", "check:no-credentials-omit:self-test": "node internal/check-no-credentials-omit.mjs --self-test", "check:no-cross-plugin-imports": "node internal/check-no-cross-plugin-imports.mjs", "check:no-cross-plugin-imports:self-test": "node internal/check-no-cross-plugin-imports.mjs --self-test", "check:no-dead-library": "node internal/check-no-dead-library.mjs", "check:no-eval": "node internal/check-no-eval.mjs", "check:no-free-identifiers": "node plugin-designs/research-map-plus-grid/scripts/check-no-free-identifiers.mjs", "check:no-orphan-gates": "node internal/check-no-orphan-gates.mjs", "check:no-public-binds": "node internal/check-no-public-binds.mjs", "check:no-silent-engine": "node internal/check-no-silent-engine-substitution.mjs", "check:no-silent-engine:self-test": "node internal/check-no-silent-engine-substitution.mjs --self-test", "check:one-palette": "node internal/check-one-palette.mjs", "check:one-palette:self-test": "node internal/check-one-palette.mjs --self-test", "check:optional-t-equivalence": "node internal/check-optional-t-equivalence.mjs", "check:package-json-unique-keys": "node internal/check-package-json-unique-keys.mjs", "check:no-repo-pb-hooks": "node internal/check-no-repo-pb-hooks.mjs", "check:packet-charts": "node internal/check-packet-charts.mjs", "check:packet-browser": "node internal/check-packet-browser.mjs", "check:packet-fixture": "node internal/generate-packet-fixture.mjs --check", "check:packet-map-missing-loud": "node internal/check-packet-map-missing-loud.mjs", "check:packet-render": "node internal/check-packet-render.mjs", "check:packet-render:expect-funnel": "node internal/check-packet-render.mjs --expect-funnel", "check:series-isolation": "node internal/check-series-isolation.mjs", "check:select-zone-race": "node internal/check-select-zone-race.mjs", "check:selection-kinds": "node internal/check-selection-kinds.mjs", "check:selector-fields": "node internal/check-selector-fields.mjs", "check:selector-fields:self-test": "node internal/check-selector-fields.mjs --self-test", "check:packet-strings-parity": "node internal/check-packet-strings-parity.mjs", "check:packet-variants": "node internal/check-packet-variants.mjs", "check:circular-layout": "node library/packet/scripts/check-circular-layout.mjs", "check:fork-leaders": "node library/packet/scripts/check-fork-leaders.mjs", "check:pins-in-state": "node library/packet/scripts/check-pins-in-state.mjs", "check:label-key-coverage": "node internal/check-label-key-coverage.mjs", "check:host-locale-fetch": "node internal/check-host-locale-fetch.mjs", "check:packet-a1-structure": "node internal/check-packet-a1-structure.mjs", "check:india-states": "node internal/check-india-states.mjs", "check:batch-selection-export": "node internal/check-batch-selection-export.mjs", "check:upg-count": "node internal/check-upg-count.mjs", "check:zone-title-tier-a": "node internal/check-zone-title-tier-a.mjs", "check:evangelical-share": "node internal/check-evangelical-share.mjs", "check:map-labels": "node internal/check-map-labels.mjs", "check:packet-offline": "node internal/build-packet-fixtures.mjs", "check:packets-all": "node internal/check-packets-all.mjs", "check:parse": "node internal/inline-parse-check.mjs", "check:pinned-umd": "node internal/check-pinned-umd.mjs", "check:popup-escaping": "node internal/check-popup-escaping.mjs", "check:ported-globals-identical": "node internal/check-ported-globals-identical.mjs", "check:one-scroll-container": "node internal/check-one-scroll-container.mjs", "check:list-pattern-doc": "node internal/check-list-pattern-doc.mjs", "check:pg-name-gate": "node internal/check-pg-name-gate.mjs", "check:pin-selection": "node internal/check-pin-selection.mjs", "check:poster-action-print": "node internal/check-poster-action-print.mjs", "check:popup-href-escaped": "node internal/check-popup-href-escaped.mjs", "check:popup-pan-controls": "node internal/check-popup-pan-clears-controls.mjs", "check:country-map-refetch": "node internal/check-country-map-refetch.mjs", "check:pane-config-reforward": "node internal/check-pane-config-reforward.mjs", "check:control-inset": "node internal/check-control-inset-measured.mjs", "check:viewport-meta": "node internal/check-viewport-meta.mjs", "check:viewport-meta:self-test": "VIEWPORT_META_SELFTEST=1 node internal/check-viewport-meta.mjs", "check:poster-attribution": "node internal/check-poster-attribution.mjs", "check:poster-layout-optin": "node internal/check-poster-layout-optin.mjs", "check:window-globals-released": "node internal/check-window-globals-released.mjs", "check:poster-card-fits": "node internal/check-poster-card-fits.mjs", "check:poster-degrades": "node internal/check-poster-degrades-honestly.mjs", "check:poster-design-catalogue": "node plugin-designs/poster-design/scripts/check-catalogue.mjs", "check:poster-design-catalogue:self-test": "node plugin-designs/poster-design/scripts/check-catalogue.mjs --self-test", "check:upg100-zone-copy": "node plugin-designs/poster-design/scripts/check-upg100-zone-copy.mjs", "check:upg100-zone-copy:self-test": "node plugin-designs/poster-design/scripts/check-upg100-zone-copy.mjs --self-test", "check:poster-fetch-guard": "node internal/check-poster-fetch-guard.mjs", "check:poster-print-fallback": "node internal/check-poster-print-fallback.mjs", "check:posters-exportable": "node internal/check-posters-exportable.mjs", "check:posterverse-shelf": "node plugin-designs/posterverse/scripts/check-posterverse-shelf.mjs", "check:poster-prints": "node internal/check-poster-prints.mjs", "check:poster-raster": "node internal/check-poster-raster.mjs", "check:poster-wall-localised": "node internal/check-poster-wall-localised.mjs", "check:prayer-walk-planner": "node internal/check-prayer-walk-planner.mjs", "check:preset-config-merge": "node internal/check-preset-config-merge.mjs", "check:print-geometry": "node internal/check-print-geometry.mjs", "check:print-frame-reclaim": "node internal/check-print-frame-reclaim.mjs", "check:pin-dim-slider": "node plugin-designs/doxa-research-map/scripts/check-pin-dim-slider.mjs", "check:profile-table": "node internal/check-profile-table.mjs", "check:profiles-mount": "node internal/check-composites-mount.mjs --all-profiles", "check:provider-for": "node internal/check-provider-for.mjs", "check:provider-switch": "node internal/check-provider-switch.mjs", "check:public-hygiene": "node internal/public-hygiene-check.mjs", "check:published": "node internal/check-published-matches-build.mjs", "check:quoted-scripts": "node internal/check-quoted-scripts.mjs", "check:reduced-motion": "node internal/check-reduced-motion.mjs", "check:region-fill-repaint": "node internal/check-region-fill-repaint.mjs", "check:region-paint-single-source": "node internal/check-region-paint-single-source.mjs", "check:rtl-shaping": "node internal/check-gospel-rtl-shaping.mjs", "check:rtl-shaping:poison": "node internal/check-gospel-rtl-shaping.mjs --poison", "check:ring-vocabulary": "node internal/check-ring-vocabulary.mjs", "check:rtl-raw": "node internal/check-raw-map-rtl-shaping.mjs", "check:universal-props": "node internal/check-universal-props.mjs --report", "check:rtl-raw:poison": "node internal/check-raw-map-rtl-shaping.mjs --poison", "check:scrim-viewport": "node internal/check-scrim-covers-viewport.mjs", "check:scrim-viewport:self-test": "node internal/check-scrim-covers-viewport.mjs --self-test", "check:script-flags": "node internal/check-script-flags-reachable.mjs", "check:script-registry": "node internal/check-script-registry.mjs", "check:settled": "node internal/settled-tree-gate.mjs", "check:provide-shadowing": "node internal/check-provide-shadowing.mjs", "check:element-bootstrap": "node internal/check-element-bootstrap.mjs", "check:map-menu-anchor": "node internal/check-map-menu-anchor.mjs", "check:legend-top-offset": "node internal/check-legend-top-offset.mjs", "check:mercator-slice": "node internal/check-mercator-slice.mjs", "check:embed-url-absolute": "node internal/check-embed-url-absolute.mjs", "check:grid-image-loading": "node internal/check-grid-image-loading.mjs", "check:retry-fetch": "node internal/check-retry-fetch.mjs", "check:grid-merge-defaults": "node internal/check-grid-merge-defaults.mjs", "check:setup-order": "node internal/check-setup-order.mjs", "check:sfc-parse": "node internal/check-sfc-script-parses.mjs", "check:shadow-css-parses": "node internal/check-shadow-css-parses.mjs", "check:shadow-style-labels-unique": "node internal/check-shadow-style-labels-unique.mjs", "check:shadow-reduced-motion": "node internal/check-shadow-reduced-motion.mjs", "check:regions-uses-library": "node plugin-designs/regions-dashboard/scripts/check-regions-uses-library.mjs", "check:religion-label-not-value": "node plugin-designs/regions-dashboard/scripts/check-religion-label-not-value.mjs", "check:ring-bands": "node internal/check-ring-bands.mjs", "check:share-policy": "node internal/check-share-policy.mjs", "check:shared-reached": "node internal/check-shared-component-reached-bundles.mjs", "check:shell-scroll": "node internal/verify-shell-scroll.mjs", "check:shot-distinctness": "node internal/check-shot-distinctness.mjs", "check:shot-fidelity": "node internal/check-shot-fidelity.mjs", "check:shot-fidelity:strict": "node internal/check-shot-fidelity.mjs --strict", "check:shot-fonts": "node internal/check-shot-fonts.mjs", "check:shots": "node internal/check-shot-freshness.mjs", "check:snapshot-guard": "node internal/check-snapshot-guard.mjs", "check:snapshot-guard:poison": "node internal/check-snapshot-guard.mjs --poison", "check:spa-tab-order": "node internal/check-spa-tab-order.mjs", "check:square-map-controls": "node internal/check-square-map-controls.mjs", "check:snippet-engine": "node internal/check-snippet-engine.mjs", "check:snippet-engine:self-test": "node internal/check-snippet-engine.mjs --self-test", "check:sri": "node internal/sri-consistency-check.mjs", "check:stale-sweep-claim": "node internal/check-no-stale-sweep-claim.mjs", "check:studio-all": "node internal/check-studio-every-plugin.mjs", "check:surfaces-read-the-tier": "node internal/check-surfaces-read-the-tier.mjs", "check:surfaces-read-the-tier:poison": "node internal/check-surfaces-read-the-tier.mjs --poison", "check:synced-css": "node internal/check-synced-css-copies.mjs", "check:synced-css:self-test": "node internal/check-synced-css-copies.mjs --self-test", "check:tab-radius": "node internal/check-tab-radius-token.mjs", "check:tab-radius:self-test": "node internal/check-tab-radius-token.mjs --self-test", "check:text-highlight": "node plugin-designs/regions-dashboard/scripts/check-text-highlight.mjs", "check:tabs-localized": "node internal/check-tabs-localized.mjs", "check:targets": "node internal/check-targets.mjs", "check:targets:self-test": "node internal/check-targets.mjs --self-test", "check:tauri": "node internal/check-tauri-config.mjs", "check:template-literal": "node internal/template-literal-check.mjs", "check:tree-relative": "node internal/check-tree-relative.mjs", "check:tree-weight": "node internal/check-published-tree-weight.mjs", "check:upg-map-data": "node internal/check-upg-map-data-painted.mjs", "check:url-resolver": "node internal/check-url-resolver.mjs", "check:vision-card-numbers": "node internal/check-vision-card-numbers.mjs", "check:wp-embed": "php deployment/wordpress/tests/wp-embed-contract-test.php", "check:zone-census": "node internal/check-zone-census.mjs", "check:zoning-declared": "node internal/check-zoning-declared.mjs", "check:zoning-declared:self-test": "node internal/check-zoning-declared.mjs --self-test", "clean": "node internal/clean.mjs", "deploy:dev": "bun run build && bun run dropin", "desktop:build": "node internal/desktop-build.mjs", "dev": "bun x vite", "fix:sri": "node internal/fix-sri.mjs", "gallery": "node internal/generate-gallery.mjs", "gates:post": "node internal/run-parallel.mjs --label=post -- check:capability-derived check:drop check:parse verify check:sri check:public-hygiene check:label-joins check:facet-cascade check:facet-one-field check:heartbeat check:kpi-unit check:composite-reg check:descriptions check:no-abs-paths check:no-codename check:dep-names check:composite-srcs check:embed-targets check:nested-token check:i18n-parity check:tabs-localized check:packets-all check:packet-strings-parity check:zone-census check:zoning-declared check:share-policy check:library-index check:csv-shape check:capability-citations check:catalog-identity check:no-orphan-gates check:quoted-scripts check:script-flags check:capability-exemplars check:packet-fixture check:packet-browser check:provider-switch check:locale-reachable check:url-resolver check:manifest-covers check:one-palette check:pin-dim-slider check:legend-source check:clustering-modes check:composite-embed-knobs check:composite-locale-leaks check:linked-vocabulary check:wp-embed check:dashboard-geocoder-provider check:leaf-engine-per-provider check:auto-engine check:engine-contract check:map-props-unit check:composites-mount check:composite-interop check:no-free-identifiers check:map-fly-reduced-motion check:mst-clustering check:list-prop-unit check:profiles-mount check:cdn-pins check:no-eval check:popup-escaping check:i18n-treeshake check:pinned-umd check:one-palette:self-test check:no-cross-plugin-imports check:no-cross-plugin-imports:self-test check:map-attribution check:studio-rail check:approx-pin-note check:embedder-keys check:provider-for check:legend-logical-insets check:legend-logical-insets:self-test check:optional-t-equivalence check:text-highlight check:religion-label-not-value check:i18n-stopped-scope check:no-silent-engine check:no-silent-engine:self-test check:regions-uses-library check:shadow-css-parses check:square-map-controls check:preset-config-merge check:instance-config-keys check:frozen-labels check:plural-forms check:region-fill-repaint check:region-paint-single-source check:poster-print-fallback check:posters-exportable check:country-names check:reduced-motion check:no-dead-library check:universal-props check:readme-size check:tree-relative check:leaf-hints check:snippet-engine check:snippet-engine:self-test check:embed-base check:link-coverage check:no-public-binds check:shared-reached check:tree-weight check:no-fleet-names:self-test check:pin-hint-floor:self-test check:poster-sizes:self-test check:shell-header:self-test check:preview-flag-dev-only:self-test check:poster-type-registry:self-test check:host-floor:self-test check:phone-print-keep:self-test check:pinned-fetch-fresh:self-test", "gates:pre": "node internal/run-parallel.mjs --label=pre -- check:template-literal check:mjs-parse check:sfc-parse check:tab-radius check:synced-css check:doc-scripts check:setup-order check:package-json-unique-keys check:no-repo-pb-hooks check:no-credentials-omit check:no-credentials-omit:self-test check:shadow-reduced-motion check:poster-action-print check:targets check:targets:self-test check:browser-gates-guarded check:pin-selection check:facet-shape check:hardcoded-english:self-test check:list-selection check:selector-fields check:upg-zone-joins check:gospel-set-charts check:gospel-set-fit check:describe-group check:one-scroll-container check:packet-charts check:pins-in-state check:fork-leaders check:circular-layout check:composite-token-url check:language-tree-layout check:i18n-keys-exist check:i18n-never-translated check:packet-variants check:profile-table check:element-bootstrap check:embed-url-absolute check:frame-target check:language-tree-model check:map-menu-anchor check:selection-kinds check:tiered-points check:whiteboard-projection check:mercator-slice check:ring-vocabulary check:map-props-unit check:mobile-gating check:provide-shadowing check:legend-top-offset check:cdn-cache check:plural-forms check:select-zone-race check:script-registry check:map-control-overlap check:poster-attribution check:board-map-options check:gospel-whiteboard check:packet-map-missing-loud check:poster-layout-optin check:ported-globals-identical check:ring-bands check:packet-a1-structure check:india-states check:batch-selection-export check:zone-title-tier-a check:evangelical-share check:map-labels check:packet-offline check:help-reachable check:gated-not-in-tree check:window-globals-released check:legend-data-contract check:no-internal-role-nouns check:poster-fetch-guard check:people-group-records check:sentence-slots check:popup-href-escaped check:popup-pan-controls check:country-map-refetch check:pane-config-reforward check:viewport-meta check:viewport-meta:self-test check:label-key-coverage check:poster-browser-equiv check:poster-render-pinned check:country-sheet-one-path check:country-sheet-one-path:self-test check:side-lanes check:side-lanes:self-test check:poster-section check:poster-section:self-test check:posterverse-shelf check:host-locale-fetch check:print-frame-reclaim check:click-sheet check:coverage-consistent:chained check:coverage-consistent:poison check:dashboard-filter-a11y check:filter-multivalue check:hover-channel check:kit-options-reachable check:layout-key-namespaced check:legend-mirrors check:map-unmount-race check:no-conflict-markers check:series-isolation check:snapshot-guard check:stale-sweep-claim check:surfaces-read-the-tier check:translator-contacts check:wall-wysiwyg check:wall-print-watch check:wall-no-bg-photos check:wall-pan check:template-i18n check:list-pattern-doc check:shadow-style-labels-unique check:grid-image-loading check:retry-fetch check:panel-sheets check:poster-wall-host-seams check:poster-sections check:poster-sections:self-test check:poster-design-catalogue check:poster-design-catalogue:self-test check:upg100-zone-copy check:upg100-zone-copy:self-test check:wall-photo-weight check:no-fleet-names check:pin-hint-floor check:poster-sizes check:upg-count check:shell-header check:pg-name-gate check:preview-flag-dev-only check:poster-type-registry check:host-floor check:phone-print-keep check:pinned-fetch-fresh check:view-address check:view-address:self-test check:dev-leaf-escape check:dev-leaf-escape:self-test check:leaf-drops-tk check:leaf-drops-tk:self-test", "gen:iso3-to-alpha2": "node library/scripts/generate-iso3-to-alpha2.mjs", "internet:adm1": "node plugin-designs/cities-internet/scripts/build-adm1-internet.mjs", "library-index": "node internal/generate-library-index.mjs", "lists": "node library/scripts/people-groups/build-lists.mjs", "packet-fixture": "node internal/generate-packet-fixture.mjs", "packet:ci": "node internal/build-packet-fixtures.mjs", "packets": "cd library/scripts/posters && VITE_API_BASE_URL=https://pray.doxa.life node packet.mjs", "phone": "bun run apk:debug && bun run apk:install", "phone:deep-research": "APP_START=doxa-maps-spa/doxa-maps-spa/app bun run phone:from-tree", "phone:from-tree": "bun run cap:sync && bun run app:start-page && bun run cap:verify && cd deployment/capacitor/android && ./gradlew assembleDebug && adb install -r app/build/outputs/apk/debug/app-debug.apk", "posters": "cd library/scripts/posters && SPARSE=1 OFFLINE=1 VITE_API_BASE_URL=https://pray.doxa.life FORMAT=3x3 node generate.mjs", "posters:export": "cd library/scripts/posters && node export-public.mjs", "posters:gallery": "cd library/scripts/posters && node build-gallery.mjs && node build-hd-gallery.mjs", "posters:one": "cd library/scripts/posters && SPARSE=1 OFFLINE=1 VITE_API_BASE_URL=https://pray.doxa.life FORMAT=3x3 node generate.mjs", "posters:previews": "cd library/scripts/posters && python3 make-previews.py", "posters:shoot": "cd library/scripts/posters && DSF=2 node shoot.mjs", "preview": "bun x vite preview", "probe:legend-columns": "node internal/legend-columns-probe.mjs", "serve": "node internal/serve-strict.mjs", "serve:permissive": "python3 -m http.server 4173 --bind 127.0.0.1 --directory public", "serve:shell": "python3 -m http.server 4174 --bind 127.0.0.1 --directory library/layouts/app-wrapper-material", "shell": "node internal/install-shell.mjs --no-token", "shots": "node internal/readme-shots.mjs", "smoke": "node internal/smoke.mjs", "smoke:aria-labels": "sh -c 'B=${BASE_URL:-http://127.0.0.1:4173}; exec node internal/check-aria-labels-localized.mjs \"$B/doxa-maps/my-upg-100-list/upg-100-list/index.html\" es,ar,zh'", "smoke:embeds": "node internal/embed-smoke.mjs", "smoke:gallery": "node internal/plugin-gallery-smoke.mjs", "smoke:legend-info": "sh -c 'B=${BASE_URL:-http://127.0.0.1:4173}; exec node internal/check-legend-info-localized.mjs \"$B/doxa-maps/my-upg-100-list/upg-100-list/index.html\" es,ar,zh'", "smoke:playground": "bun run smoke:gallery", "smoke:share": "node internal/share-roundtrip-smoke.mjs", "smoke:share-all": "sh -c 'B=${BASE_URL:-http://127.0.0.1:4173}; exec node internal/share-roundtrip-smoke.mjs --url \"$B/doxa-maps/prayer-walk-planner/prayer-walk-planner/index.html?tk=$MAPBOX_TOKEN\" --url \"$B/doxa-maps/all-people-groups/all-people-groups/index.html?tk=$MAPBOX_TOKEN\" --url \"$B/doxa-maps/cities-internet/connectivity-map/index.html?tk=$MAPBOX_TOKEN\" --url \"$B/doxa-maps/country-posters/country-posters-mfe/index.html?tk=$MAPBOX_TOKEN\" --url \"$B/doxa-maps/demo-map/demo-map/index.html?tk=$MAPBOX_TOKEN\" --url \"$B/doxa-maps/doxa-research-map/research-map/index.html?tk=$MAPBOX_TOKEN\" --url \"$B/doxa-maps/doxa-simple-map/doxa-simple-map/index.html?tk=$MAPBOX_TOKEN\" --url \"$B/doxa-maps/gospel-resources/resources-map/index.html?tk=$MAPBOX_TOKEN\" --url \"$B/doxa-maps/research-dashboard/research-dashboard/index.html?tk=$MAPBOX_TOKEN\" --url \"$B/doxa-maps/dashboard-plus-grid/dashboard-plus-grid/index.html?tk=$MAPBOX_TOKEN\" --url \"$B/doxa-maps/research-map-plus-grid/research-map-plus-grid/index.html?tk=$MAPBOX_TOKEN\" --url \"$B/doxa-maps/my-upg-100-list/upg-100-mfe/index.html?tk=$MAPBOX_TOKEN\" --browser chromium'", "smoke:studio": "node internal/smoke-studio.mjs", "sync:dropin": "node internal/sync-dropin.mjs", "tauri:build": "./node_modules/.bin/tauri build", "token": "node internal/write-token.mjs", "tree": "node internal/generate-tree.mjs", "verify": "node library/scripts/research/verify-all.mjs", "verify:5-caps": "node internal/verify-5-capabilities.mjs", "verify:browser-all": "node internal/verify-browser-all.mjs", "verify:browser-all:plugin-gallery": "node internal/verify-browser-all.mjs --plugin-gallery", "verify:full": "node library/scripts/research/verify-all.mjs --full", "verify:gate1": "node internal/acceptance/big-picture-acceptance.mjs", "verify:gospel-map": "node internal/verify-gospel-map.mjs", "verify:interop": "node internal/acceptance/interop-harness.mjs", "verify:interop:self-test": "node internal/acceptance/interop-harness.mjs --self-test", "verify:interop:self-test:camera-freeze": "node internal/acceptance/interop-harness.mjs --self-test --self-test-mode=camera-freeze", "verify:map-paint": "node internal/verify-map-paint.mjs", "check:people-group-records": "bun internal/check-people-group-records.mjs", "check:poster-browser-equiv": "bun internal/check-poster-browser-equiv.mjs", "check:poster-render-pinned": "bun internal/check-poster-render-pinned.mjs", "check:wall-wysiwyg": "node plugin-designs/wall-of-people-groups/scripts/check-wall-wysiwyg.mjs", "check:wall-print-watch": "node plugin-designs/wall-of-people-groups/scripts/check-wall-print-watch.mjs", "check:wall-no-bg-photos": "node plugin-designs/wall-of-people-groups/scripts/check-wall-no-bg-photos.mjs", "check:wall-pan": "node plugin-designs/wall-of-people-groups/scripts/check-wall-pan.mjs", "check:wall-photo-weight": "node plugin-designs/wall-of-people-groups/scripts/check-wall-photo-weight.mjs", "check:template-i18n": "node plugin-designs/template-bundle/scripts/check-template-i18n.mjs", "check:snippets-draw": "node internal/check-snippets-draw.mjs", "check:snippets-draw:mapbox": "node internal/check-snippets-draw.mjs --mapbox", "pin:poster-render": "node library/scripts/posters/pin-poster-render.mjs", "check:board-map-options": "node internal/check-board-map-options.mjs", "check:panel-sheets": "node internal/check-panel-sheets.mjs", "check:poster-wall-host-seams": "node internal/check-poster-wall-host-seams.mjs", "check:shell-header:self-test": "node internal/check-shell-header.mjs --self-test", "check:shell-header": "node internal/check-shell-header.mjs", "check:side-lanes": "node plugin-designs/country-posters/scripts/check-side-lanes.mjs", "check:side-lanes:self-test": "node plugin-designs/country-posters/scripts/check-side-lanes.mjs --self-test", "check:poster-section": "node plugin-designs/country-posters/scripts/check-poster-section.mjs", "check:poster-section:self-test": "node plugin-designs/country-posters/scripts/check-poster-section.mjs --self-test", "check:view-address": "node internal/check-view-address.mjs", "check:view-address:self-test": "node internal/check-view-address.mjs --self-test", "check:poster-sections": "node plugin-designs/poster-sections/scripts/check-poster-sections.mjs", "check:poster-sections:self-test": "node plugin-designs/poster-sections/scripts/check-poster-sections.mjs --self-test", "gen:poster-sections-presets": "node plugin-designs/poster-sections/scripts/gen-presets.mjs", "check:side-lane-photo-pixels": "node plugin-designs/country-posters/scripts/check-side-lane-photo-pixels.mjs", "check:side-lane-photo-pixels:self-test": "node plugin-designs/country-posters/scripts/check-side-lane-photo-pixels.mjs --self-test", "check:poster-type-registry": "node internal/check-poster-type-registry.mjs", "check:poster-type-registry:self-test": "node internal/check-poster-type-registry.mjs --self-test", "check:host-floor": "node internal/check-host-floor.mjs", "check:host-floor:self-test": "node internal/check-host-floor.mjs --self-test", "check:phone-print-keep": "node internal/check-phone-print-keep.mjs", "check:phone-print-keep:self-test": "node internal/check-phone-print-keep.mjs --self-test", "check:pinned-fetch-fresh": "bun internal/check-pinned-fetch-fresh.mjs", "check:pinned-fetch-fresh:self-test": "bun internal/check-pinned-fetch-fresh.mjs --self-test" }, "//scripts": { "check:pinned-fetch-fresh": "a STALE cached copy of a pinned print-time file never decides a print: library/packet/sha384.js fetchPinned fetches force-cache, and on a copy that is not served or fails its pin, ONCE more with cache:'reload'; every pinned loader (posterSheets poster-render.js + ne-places.json, packetStrings, indiaStates) calls it, and the classic-script path refreshes the cache and retries a refused tag once. With a modelled HTTP cache holding stale copies: the current file after one fresh refetch; a matching cached copy used with one force-cache request; wrong bytes refused; page 1 still draws (generateSheet), the packet keeps every language, India keeps its 36 states. Self-test poisons: no fresh refetch, never the cache, a mismatch accepted, a loader fetching its pinned file directly.", "check:phone-print-keep": "on a PHONE the in-page print document (#dxm-print-root and its print style, library/composables/printInPlace.js) and printImageBlob's object URL outlive afterprint, because Android Chrome fires afterprint once the PREVIEW is built and renders a saved PDF later, from the page as it is then (a phone's saved packet was the bare host page). A timeline on fake timers and a stub DOM with an Android user agent: still mounted 30 s after afterprint; released once the reader is back (shown again after hidden, focused again after blur, or touched after print() but not in its first TOUCH_SETTLE_MS) plus BACK_GRACE_MS (60 s), or at the ceiling; going away again during the grace cancels the pending drop; the Print tap of a late print does not count; a new print replaces it; desktop is the frame path, verbatim. --impl= runs it against another copy (the pre-fix file fails). Self-test poisons: the old drop at afterprint, no release when back, listeners armed at mount, no grace, printImageBlob revoking at afterprint, no ceiling, no cancel when away again, no touch settle window.", "_": "What each script does. These notes used to sit inside the command strings as trailing \"# …\" comments, which made the shell discard any arguments passed after \"--\" (so a gate given --url silently measured its hardcoded default port — possibly another agent's server). Keep notes here, never in a command.", "browser-gates": "lists every package.json script that launches a browser (the same detection run-parallel uses to route them through internal/browser-slot.sh). Run each as internal/browser-slot.sh bun run .", "cap:sync": "NOT `bunx` — bunx is not on PATH in this environment (command not found, exit 127), which broke cap:sync -> apk:debug -> phone at step one. The CLI IS installed locally (@capacitor/cli 7.6.9); invoke the local bin directly. The rest of package.json already uses the spaced `bun x` form.", "capability-exemplars": "regenerate documentation/reference-capability-exemplars.md — the DERIVED answer to \"which bundle is the capability-N example?\", a question answered WRONGLY in three separate artifacts (a gate, the README, the /plugin-designer skill).", "check:a11y-button-names": "every VISIBLE button must have an accessible name (aria-label / aria-labelledby / visible text — a `title` is a TOOLTIP and does NOT count). Measures the RENDERED DOM through shadow roots: a source grep cannot answer this (132 `