Changelog
v6.1.2
🐛 Bug Fixes
- Default
filterso omitting it does not hide the layer
v6.1.1
🐛 Bug Fixes
Install without bun's cache when publishing the module
Rebuild layers after an in-place style diff
v6.1.0
✨ Features
- Ship an opt-in stylesheet that carries MapLibre's rules
🐛 Bug Fixes
Generate the playground types before the module build
Restore the major-tracking vue3-maplibre-gl range
📚 Documentation
- Reconcile the maintainer docs with the 6.0.4 release
v6.0.4
🐛 Bug Fixes
Ship the navbar logo and correct the test counts
Repair the dead CDN and MapLibre API links
Drop the private tile server and widen the count check
📚 Documentation
- Correct stale version references across the docs
🚨 Tests
- Cover the "N tests across M files" spelling
🛠 Build
- Pin prettier to an exact 3.6.2
v6.0.3
📚 Documentation
- Fix the LICENSE badge link and the composables example
v6.0.2
⚙️ CI
- Run deploy-docs and release only on master pushes
✨ Features
- Compile every docs code block against the built package
🐛 Bug Fixes
Infer the handler's event type from the event name
Stop coalescing minzoom and maxzoom past their defaults
Stop a unit test from reading build output the Test step lacks
💎 Styles
- Format the maintainer docs Prettier had never seen
📚 Documentation
Show the one-package install where it actually works
Use one install command everywhere
Give every page the same four install tabs and counts
Track the five maintainer docs and reconcile them to v6
Correct the standards and architecture docs against source
Remove documented APIs that do not exist
Correct component defaults and complete the event tables
Correct the names the compiler found wrong
Compile the 24 blocks that were opted out of the check
Compile the last two skipped blocks
Table every return the reference described in prose
Name the callback props GeolocateControls actually has
Point both npm pages at docs that exist
🚨 Tests
Compile the Returns tables in the API reference
Check the Type column of every Returns row
Check that every returned field has a Returns row
Compare the types reference with the real types
Check prose names, component attributes and instructions
Let prose opt out of the name check with a reason
Check a generic row against a real type parameter
Compile the Parameters, Props and Events tables
Compile the Slots, Default and prop/emit-name claims
Reach the ten Parameters tables no pattern matched
Count what every doc check actually reaches
Check the advertised size of the test suite
🛠 Build
- Refresh the lockfile against the published vue3-maplibre-gl
v6.0.1
Republish of v6.0.0. The v6.0.0 tarball on npm was built before maplibre-gl moved to peerDependencies and still lists it under dependencies. npm does not allow republishing a version, so the corrected build ships as v6.0.1 and v6.0.0 is deprecated. No source change beyond that.
v6.0.0
⚙️ CI
Merge deploy-docs + release into single CI/CD workflow
Assert the published output contract
✨ Features
- Auto-update changelog on each release via git-cliff
🐛 Bug Fixes
Stop 'project already exists' error noise in deploy-docs
Return reactive containers instead of dead snapshots
Stop destroying the component before it mounts
Own image lifecycle in an effect scope
Hand register read-only refs
Push both stylesheets and declare the real dependencies
Attach listeners when the target arrives after the composable
Keep the map usable after a post-load runtime error
Settle each animation on its own event, not the next one
Auto-import every composable the package exports
💎 Styles
Polish footer, link MIT License + Harry Nguyen site
Use dynamic current year in footer copyright
Update title and description in VitePress config
Format the tree and gate format:check in CI
📚 Documentation
Include Cloudflare in Nuxt SSR deployment examples
Document all missing composables and event-handler types
Add the v5 to v6 migration guide
Import MapLibre's stylesheet and runtime from their own paths
Record the phase 3 reactivity and API changes
Correct composable signatures that contradicted the code
Fix the signatures the first reconciliation pass missed
Complete the layer tables and fix the geolocate event names
Document the error, options and camera behaviour changes
Rewrite against the repository's actual state
📦 Refactor
Remove the two unused computed helpers
Remove unreachable states and dead guards
🚀 Performance
Emit preserved modules and unpin the MapLibre runtime
Drop deep watching from eight prop watchers
Stop map watchers from triggering themselves
🚨 Tests
Cover the reactivity contract and image lifecycle
Cover listener hygiene, lifecycle, and gate coverage
Model MapLibre's layer-scoped listener overload in the mock
Raise the ratchet to the coverage the new tests reach
🛠 Build
Bump actions to Node24 majors to clear deprecation warnings
Keep test declarations out of the package
Ship the version in package.json
Drop nanoid, a devDependency imported at runtime
Stop shipping orphan chunks and unresolvable Nuxt imports
Point the module's docs link at the documentation site
Set nuxt-maplibre-gl to 2.0.0 and stop guessing the bump
Make maplibre-gl a peer dependency
v5.0.0
Major internal refactor — zero breaking API changes.
Architecture
- DRY factory patterns: Event listeners, camera animations, and layer composables consolidated via shared factories (59% LOC reduction)
- Event listener factory: Adapter pattern for map, layer, and geolocate events
- Camera animation factory: Shared promise-wrapping with opt-in timeout support
- Layer property setter factory: Typed generics preserving value types
Performance
- Fixed event listener memory leak in Maplibre.vue
- Removed private
map._loadedAPI — replaced withmap.isStyleLoaded() - Shallow equality default in
useOptimizedComputed(reduced GC pressure)
Type Safety
- New consumer-facing event handler types (
MapClickHandler,LayerClickHandler, etc.) - JSDoc for
ExpressionsandStyleFunctiontype limitations - Exported
EventListenerStatus,AnimationStatusenums
SSR Compatibility
- All
window.setTimeoutreplaced with SSR-safesetTimeout isBrowserguard for map/marker/popup creation- Works with Nuxt SSR/SSG out of the box
Component Consistency
- All 4 layer components forward
registercallback consistently - Verified
shallowRef+markRawfor all MapLibre object storage
Testing
- Added vitest framework with 27 unit tests for factory functions
- Test coverage for event listeners, camera animations, and layer setters
Build
- Migrated from yarn to bun package manager
- Updated
sideEffectsfor better tree-shaking - Upgraded VitePress docs to v1.6.4
v4.2.3
- Documentation updates for MapLibre integration
v4.2.2
- Optimized layer and source handling with
markRaw