Excel export (from TWG feedback) - src/analysis/xlsx.js: a dependency-free XLSX writer — an .xlsx is a ZIP of XML, so this packs the required parts with a small stored-ZIP writer. Avoids SheetJS (stale npm package with advisories) and ExcelJS (heavy for an offline-first field app), and does not rely on the JSZip that only reaches us transitively via shp-write. Lazy-loaded as a ~5.6 kB chunk. - After a zonal run the Analysis panel offers "Export table (Excel)", writing a two-sheet workbook: Results (figures as real numbers) and Parameters (zone and input layers with feature counts, the "Apply to" scope, membership rule, statistics, numeric field and export time) — so a table can be verified or reproduced later rather than being an unattributed set of numbers. The button is hidden for overlay runs and cleared when the mode changes. - Verified against two independent readers: openpyxl loads it with zero warnings and correct numeric types, and LibreOffice Calc opens it as a spreadsheet. Also exercised end-to-end through the real zonal pipeline. COG raster entry point - Add External Layer gains a COG type alongside WMS/WFS/XYZ, with a URL pre-flight check that distinguishes a web page, a 404, a CORS block and a server without byte-range support — geotiff.js otherwise reports these only as an opaque "AggregateError: Request failed". Digital Earth Africa ETL - etl/deafrica_dem_to_minio.py exports a DE Africa DEM for a district as a COG and uploads it to the LUSPA MinIO bucket raster-objects, then verifies the object is anonymously readable and range-capable. Credentials come from the environment; the existing PHP integration hardcodes them and an earlier key pair reached Gitea. NOTE: not yet run against the Sandbox — start with --list-products to confirm the DEM product name. Documents - Concept note: Digital Earth Africa added as a raster source (§6.3), separating the live WMS route from the batch Sandbox export; corrected the in-house contour table's provenance to OpenTopography (gdal_contour over an SRTM 30 m / Copernicus 30 m DEM), and added the ToR §2.4.2 / FS §2 alignment chapter. - TWG presentation, architecture and two integration workflow charts (SVG sources kept in the repo so they stay editable), and a user guide for the Analyse tools. Service worker v13 -> v14. .gitignore: exclude Python bytecode from etl/. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
112 lines
2.1 KiB
Plaintext
112 lines
2.1 KiB
Plaintext
# ============================================================================
|
|
# LUPMIS2 PWA — .gitignore
|
|
# ============================================================================
|
|
|
|
# ----- Node / npm dependencies -----
|
|
# Re-installable from package-lock.json; never tracked.
|
|
node_modules/
|
|
|
|
# Vite's dependency optimisation cache (lives inside node_modules but listed
|
|
# explicitly for clarity).
|
|
node_modules/.vite/
|
|
.vite/
|
|
|
|
# npm / yarn / pnpm logs and debug files
|
|
npm-debug.log*
|
|
yarn-debug.log*
|
|
yarn-error.log*
|
|
pnpm-debug.log*
|
|
lerna-debug.log*
|
|
|
|
# ----- Build artefacts -----
|
|
# Vite produces these but we do NOT ignore `dist/` because the repo serves
|
|
# the built output directly. If you switch to a CI-based deploy pipeline
|
|
# later, uncomment the next two lines.
|
|
# dist/
|
|
# dist-ssr/
|
|
|
|
# Pre-compressed / source-map sidecar files outside dist/
|
|
*.tsbuildinfo
|
|
|
|
# ----- Local environment & secrets -----
|
|
.env
|
|
.env.local
|
|
.env.*.local
|
|
*.local
|
|
|
|
# ----- IDE / editor configuration -----
|
|
# BBEdit project / scratchpad state
|
|
*.bbprojectd/
|
|
|
|
# Visual Studio Code (keep recommended-extensions and tasks.json if added)
|
|
.vscode/*
|
|
!.vscode/extensions.json
|
|
!.vscode/tasks.json
|
|
!.vscode/launch.json
|
|
|
|
# JetBrains IDEs (WebStorm, IntelliJ, etc.)
|
|
.idea/
|
|
*.iml
|
|
|
|
# Zed
|
|
.zed/
|
|
|
|
# Sublime Text
|
|
*.sublime-workspace
|
|
*.sublime-project
|
|
|
|
# Vim / Emacs swap files
|
|
*.swp
|
|
*.swo
|
|
*~
|
|
.#*
|
|
|
|
# ----- OS metadata -----
|
|
# macOS
|
|
.DS_Store
|
|
.AppleDouble
|
|
.LSOverride
|
|
Icon
|
|
Icon?
|
|
._*
|
|
|
|
# Windows
|
|
Thumbs.db
|
|
ehthumbs.db
|
|
ehthumbs_vista.db
|
|
Desktop.ini
|
|
$RECYCLE.BIN/
|
|
|
|
# Linux
|
|
.directory
|
|
.Trash-*
|
|
|
|
# ----- Project-specific -----
|
|
# Interim Word-document backups produced when iterating on reports
|
|
# (the *current* report file stays tracked; only versioned snapshots are
|
|
# excluded).
|
|
LUPMIS2_Development_Status_Report-v*.docx
|
|
*-v[0-9].docx
|
|
*-v[0-9][0-9].docx
|
|
|
|
# SQLite databases dropped in the project root for ad-hoc inspection
|
|
/*.sqlite3
|
|
/*.sqlite3-journal
|
|
/*.db
|
|
|
|
# Coverage / test output
|
|
coverage/
|
|
.nyc_output/
|
|
|
|
# Misc caches
|
|
.eslintcache
|
|
.parcel-cache/
|
|
.cache/
|
|
|
|
# Microsoft Office lock / owner files (e.g. ~$Document.docx)
|
|
~$*
|
|
|
|
# Python bytecode (etl/ scripts)
|
|
__pycache__/
|
|
*.pyc
|