Commit graph

61 commits

Author SHA1 Message Date
6944b9829c
Fix Docker build by using pre-bundled vendor assets
- Add new mix alias 'assets.deploy.prod' that skips vendor bundling
- Copy pre-bundled vendor.js and vendor.css files in Dockerfile
- Prevents esbuild errors when npm packages aren't available during build

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-21 12:41:27 -05:00
63a87f3be1
Fix Docker build JavaScript import errors with vendor bundle
Fixed the esbuild errors during Docker build where npm packages couldn't
be resolved. The issue was caused by node_modules being excluded from
the Docker build context in .dockerignore.

Implemented a proper vendor bundle strategy following Phoenix 1.7+ patterns:

- Created vendor.js that bundles all npm dependencies (Leaflet, Chart.js,
  topbar) and their CSS files into a single pre-built bundle
- Added vendor esbuild profile in config.exs with proper CSS/image loaders
- Updated mix.exs to build vendor bundle before app bundle in assets.deploy
- Modified JavaScript imports to use globally loaded libraries from vendor
  bundle instead of importing from node_modules
- Added vendor.js script tag to root.html.heex before app.js

This approach avoids Docker build failures by pre-bundling all vendor
dependencies, eliminating the need for node_modules during production builds.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-21 12:32:39 -05:00
9b034cd211
vendor all js 2025-07-21 11:09:14 -05:00
7dc6c616a2
Bundle all vendor JavaScript files locally instead of loading from CDNs
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>
2025-07-21 09:52:39 -05:00
9c7a6f01dd minor updates for gleam 2025-07-20 18:08:28 -05:00
1a84eb594a
Fix Gleam compilation in Docker builds
- Mark gleam_stdlib and gleeunit with compile: false in mix.exs
- Copy pre-compiled Gleam BEAM files in Dockerfile
- Add explicit mix gleam_compile step before asset compilation
- Ensure priv/gleam directory is included in Docker build

This fixes the "Could not compile :gleam_stdlib" error during deployment.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-18 15:11:08 -05:00
4af0f4a421
Fix JavaScript context binding issues in map component
- Fix "this.__view is undefined" error when calling pushEvent in event handlers
- Bind pushEvent context properly in all marker click and hover handlers
- Replace undefined sendBoundsToServer calls with saveMapState
- Ensure all event handlers check for pushEvent availability and type
- Use .bind(self) to preserve LiveView hook context in callbacks

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-18 15:05:15 -05:00
177f0746bc
Fix Gleam compile script error
- Remove gleam@@compile.erl from erlc paths to prevent compilation errors
- Add gleam@@compile.erl to .gitignore
- Update erlc_paths to only include 'src' directory
- This prevents Erlang from trying to compile Gleam's escript files

The error was caused by Erlang trying to compile a shell script that
starts with #\!/usr/bin/env escript as an Erlang source file.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-18 14:50:22 -05:00
05267f20ad
update 2025-07-18 14:16:17 -05:00
fdcb0b6c5b
Fix Gleam stdlib runtime error in production
- Update gleam_compile task to copy all Gleam stdlib BEAM files
- Add release step to ensure Gleam BEAM files are included in releases
- Copy Gleam stdlib files from both priv/gleam and build directories

This fixes the "UndefinedFunctionError" for gleam@bit_array and other
Gleam stdlib modules in production by ensuring all required BEAM files
are included in the release.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-18 14:14:17 -05:00
3e6d73b553
format 2025-07-18 13:59:03 -05:00
00a8f996f4
Add Gleam language integration to Elixir project
- Rename Gleam module from encoding_simple to encoding
- Move Gleam files from src/aprs/ to src/aprsme/ to match project namespace
- Create custom Mix task for Gleam compilation (lib/mix/tasks/gleam_compile.ex)
- Update EncodingUtils to wrap Gleam implementation instead of pure Elixir
- Add Gleam dependencies to mix.exs and configure build paths
- Update Mix aliases to include Gleam compilation in test and compile tasks
- Add Gleam support to GitHub Actions CI workflow with caching
- Add GLEAM_INTEGRATION.md documentation
- All 357 tests passing with Gleam integration

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-18 13:58:21 -05:00
8d5bfe127e
add email 2025-07-18 10:15:09 -05:00
46340e008a
update deps 2025-07-16 08:20:20 -05:00
ac1390ba12
alawys use vendored aprs library 2025-07-11 14:29:41 -05:00
48447ab42e
refactor and performance improvements 2025-07-10 10:53:34 -05:00
330fe27eec
use aprs module from github in test 2025-07-09 09:10:12 -05:00
9053f0840a
add more i18n testing and fix error page and dashboard 2025-07-08 12:16:00 -05:00
711d92ebb6
performance improvements 2025-07-08 10:03:52 -05:00
bd534da1ac
fix parser version check 2025-07-07 14:01:43 -05:00
da9d89a3a0
fix parser version check 2025-07-07 13:50:04 -05:00
a9bc74b232
release cleanup 2025-07-07 11:41:04 -05:00
6749f41137
built in error tracking 2025-07-07 11:06:22 -05:00
feb71c73d9
deploy fix 2025-07-07 09:55:56 -05:00
2543617f16
add sentry 2025-07-07 09:52:02 -05:00
f47b3d9f09
add decoded path and other ssids 2025-07-05 14:02:45 -05:00
53b82c70d4
deploy fix 2025-07-05 09:29:11 -05:00
172da7d393
upgrade more with modern phoenix 2025-07-05 08:04:06 -05:00
4baf3cffe7
dialyzer fixes 2025-07-03 10:56:06 -05:00
f08330b46c
weather fixing 2025-06-25 11:40:04 -05:00
0beb278371
add packet batcher 2025-06-24 15:06:09 -05:00
ce7c50caa1
refactor to use external parser 2025-06-24 14:22:09 -05:00
a48b2edcb3
add device identifier 2025-06-23 14:19:04 -05:00
6384aa80e4
update to phoenix rc 2025-06-23 12:24:53 -05:00
f91b554a33
update for elixir 1.19 2025-06-23 12:07:16 -05:00
d6ac5cccfc
fixes 2025-06-21 12:26:43 -05:00
d98388895b
add livedashboard 2025-06-19 10:03:56 -05:00
369ce05f1a
typescript 2025-06-18 12:26:13 -05:00
a7a26251be
reorder deps 2025-06-17 14:24:57 -05:00
020d1e58cf
display updates 2025-06-17 11:07:26 -05:00
13a3f2e24f
updates 2025-06-17 10:34:57 -05:00
95409d3e59
add posgis fixes 2025-06-16 10:08:22 -05:00
506e5550b4
postgis 2025-06-16 09:58:17 -05:00
c6626c034a drop to elixir 1.17 2025-06-13 10:42:36 -05:00
c0ab108b4d update deps and gettext 2025-06-13 09:55:58 -05:00
ff9eb9c614 update everything 2025-01-22 12:12:39 -06:00
bbe8f1b420 update deps 2024-01-14 10:51:33 -06:00
2a45b071c1 update the rest of things 2023-12-17 12:13:49 -06:00
e240954b25 update deps 2023-12-17 12:08:45 -06:00
f654d43aa7 update deps 2023-02-02 11:19:49 -06:00