This change eliminates all external CDN dependencies by bundling JavaScript libraries locally using esbuild. All vendor files are now served from the application's own assets, improving reliability and privacy. Changes: - Created assets/js/vendor.js to bundle all external libraries - Added vendor bundle configuration to esbuild in config files - Updated all templates to use local vendor.js instead of CDN scripts - Created download-vendor-files.sh script to fetch vendor libraries - Added vendor files to .gitignore (they're downloaded during setup) - Updated CSS imports to include vendor stylesheets - Added vendor build step to assets.deploy mix task Bundled libraries: - Leaflet 1.9.4 (mapping library) - Leaflet.heat 0.2.0 (heatmap plugin) - Leaflet.markercluster 1.5.3 (marker clustering) - OverlappingMarkerSpiderfier 0.2.6 (overlapping marker handling) - Chart.js 4.5.0 (charting library) - chartjs-adapter-date-fns 3.0.0 (date adapter for Chart.js) All functionality tested and working correctly with local bundles. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| daisyui-theme.js | ||
| daisyui.js | ||
| heroicons.js | ||
| oms.min.js | ||
| README.md | ||
| topbar.js | ||
Vendor JavaScript Libraries
This directory contains third-party JavaScript and CSS libraries that are bundled locally instead of loading from CDNs.
Required Files
The following files need to be downloaded:
JavaScript Files
leaflet.js- from https://unpkg.com/leaflet@1.9.4/dist/leaflet.jsleaflet-heat.js- from https://cdn.jsdelivr.net/npm/leaflet.heat@0.2.0/dist/leaflet-heat.jschart.umd.js- from https://cdn.jsdelivr.net/npm/chart.js@4.5.0/dist/chart.umd.jschartjs-adapter-date-fns.bundle.min.js- from https://cdn.jsdelivr.net/npm/chartjs-adapter-date-fns@3.0.0/dist/chartjs-adapter-date-fns.bundle.min.jsleaflet.markercluster.js- from https://unpkg.com/leaflet.markercluster@1.5.3/dist/leaflet.markercluster.jsoms.min.js- from https://cdnjs.cloudflare.com/ajax/libs/OverlappingMarkerSpiderfier-Leaflet/0.2.6/oms.min.js
CSS Files
leaflet.css- from https://unpkg.com/leaflet@1.9.4/dist/leaflet.cssMarkerCluster.css- from https://unpkg.com/leaflet.markercluster@1.5.3/dist/MarkerCluster.cssMarkerCluster.Default.css- from https://unpkg.com/leaflet.markercluster@1.5.3/dist/MarkerCluster.Default.css
Download Script
To download all vendor files, run:
# From the project root
cd assets/vendor
# Download JavaScript files
curl -L -o leaflet.js https://unpkg.com/leaflet@1.9.4/dist/leaflet.js
curl -L -o leaflet-heat.js https://cdn.jsdelivr.net/npm/leaflet.heat@0.2.0/dist/leaflet-heat.js
curl -L -o chart.umd.js https://cdn.jsdelivr.net/npm/chart.js@4.5.0/dist/chart.umd.js
curl -L -o chartjs-adapter-date-fns.bundle.min.js https://cdn.jsdelivr.net/npm/chartjs-adapter-date-fns@3.0.0/dist/chartjs-adapter-date-fns.bundle.min.js
curl -L -o leaflet.markercluster.js https://unpkg.com/leaflet.markercluster@1.5.3/dist/leaflet.markercluster.js
curl -L -o oms.min.js https://cdnjs.cloudflare.com/ajax/libs/OverlappingMarkerSpiderfier-Leaflet/0.2.6/oms.min.js
# Download CSS files
curl -L -o leaflet.css https://unpkg.com/leaflet@1.9.4/dist/leaflet.css
curl -L -o MarkerCluster.css https://unpkg.com/leaflet.markercluster@1.5.3/dist/MarkerCluster.css
curl -L -o MarkerCluster.Default.css https://unpkg.com/leaflet.markercluster@1.5.3/dist/MarkerCluster.Default.css
Building
The vendor files are bundled using esbuild:
# Build vendor bundle
mix esbuild vendor
# Build with minification (for production)
mix esbuild vendor --minify
The vendor bundle is automatically included in the asset deployment pipeline.