From e1107256e82d4d35c43e9892a3927572cfe29f8f Mon Sep 17 00:00:00 2001 From: Andriy Oblivantsev Date: Mon, 2 Mar 2026 22:43:27 +0000 Subject: [PATCH] Vendor frontend CDN dependencies and serve them locally. This switches demo pages and modules to local web/vendor assets, fixes Three GLTFLoader local import resolution, and documents the runtime-data/agent commit workflow updates. Made-with: Cursor --- AGENTS.md | 1 + README.md | 2 + docs/frontend-development.md | 8 +- web/index.html | 6 +- web/leaflet-demo.html | 8 +- web/maplibre-demo.html | 4 +- web/maplibre-demo.js | 4 +- web/qr.js | 4 +- web/scanner.js | 2 +- web/vendor/leaflet/images/marker-icon-2x.png | Bin 0 -> 2464 bytes web/vendor/leaflet/images/marker-icon.png | Bin 0 -> 1466 bytes web/vendor/leaflet/images/marker-shadow.png | Bin 0 -> 618 bytes web/vendor/leaflet/leaflet.css | 661 + web/vendor/leaflet/leaflet.js | 6 + web/vendor/maplibre/maplibre-gl.css | 1 + web/vendor/maplibre/maplibre-gl.js | 59 + web/vendor/qr/jsqr.bundle.mjs | 3 + web/vendor/qr/jsqr.js | 3 + web/vendor/qr/qrcode.bundle.mjs | 10 + web/vendor/qr/qrcode.js | 3 + web/vendor/three/GLTFLoader.js | 4730 ++ web/vendor/three/three.module.js | 53917 +++++++++++++++++ web/vendor/vue/vue.global.prod.js | 9 + web/vendor/vuetify/vuetify.min.css | 12 + web/vendor/vuetify/vuetify.min.js | 2114 + 25 files changed, 61548 insertions(+), 19 deletions(-) create mode 100644 web/vendor/leaflet/images/marker-icon-2x.png create mode 100644 web/vendor/leaflet/images/marker-icon.png create mode 100644 web/vendor/leaflet/images/marker-shadow.png create mode 100644 web/vendor/leaflet/leaflet.css create mode 100644 web/vendor/leaflet/leaflet.js create mode 100644 web/vendor/maplibre/maplibre-gl.css create mode 100644 web/vendor/maplibre/maplibre-gl.js create mode 100644 web/vendor/qr/jsqr.bundle.mjs create mode 100644 web/vendor/qr/jsqr.js create mode 100644 web/vendor/qr/qrcode.bundle.mjs create mode 100644 web/vendor/qr/qrcode.js create mode 100644 web/vendor/three/GLTFLoader.js create mode 100644 web/vendor/three/three.module.js create mode 100644 web/vendor/vue/vue.global.prod.js create mode 100644 web/vendor/vuetify/vuetify.min.css create mode 100644 web/vendor/vuetify/vuetify.min.js diff --git a/AGENTS.md b/AGENTS.md index f0eccb3..4bf23f8 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -48,6 +48,7 @@ bun run build - Prefer minimal changes and avoid unrelated refactors. - Treat `var/` as runtime data only; ignore it for code changes and commits. +- Every change must be committed and pushed. - Add tests when behavior changes. - Verify Go tests after backend changes. - Verify Bun tests after TS client changes. diff --git a/README.md b/README.md index cb26251..45c1df4 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,8 @@ go test ./... go run ./cmd/api ``` +`var/` is runtime data and is ignored by git. + Run tests via Docker (avoids local permission issues, e.g. `var/`): ```bash diff --git a/docs/frontend-development.md b/docs/frontend-development.md index a61b1d3..7db418e 100644 --- a/docs/frontend-development.md +++ b/docs/frontend-development.md @@ -32,7 +32,7 @@ web/ 2. Open: - `http://localhost:8122/web/` - `http://localhost:8122/web/leaflet-demo.html` (Leaflet map demo for 3D/image placement + sharing) - - `http://localhost:8122/web/maplibre-demo.html` (MapLibre GL vector tiles + Three.js object rendering/placement) + - `http://localhost:8122/web/maplibre-demo.html` (MapLibre GL raster tiles + Three.js GLB/GLTF object rendering/placement) ### Runtime dependencies @@ -63,9 +63,11 @@ web/ - upload via backend endpoint (`/v1/assets/{id}/upload`) - copy/open share link and toggle public/private visibility - MapLibre GL + Three.js example: - - vector tile basemap via MapLibre style + - raster OSM basemap via MapLibre style - map click to place object position - - 3D marker rendering in custom Three.js layer + - custom Three.js layer loads real `glb`/`gltf` assets via `GLTFLoader` + - private assets are loaded with bearer auth header when user is logged in + - fallback primitive is rendered if model load fails or no 3D asset is linked - asset upload/link and share/visibility controls backed by API ## TypeScript client (`libs/geo-api-client`) diff --git a/web/index.html b/web/index.html index 0360e4f..b440bfe 100644 --- a/web/index.html +++ b/web/index.html @@ -4,7 +4,7 @@ Momswap Geo Backend Use-Cases Test - +