Skip to content

Version Packages (pre)#102

Merged
gmaclennan merged 1 commit intomainfrom
changeset-release/main
Mar 23, 2026
Merged

Version Packages (pre)#102
gmaclennan merged 1 commit intomainfrom
changeset-release/main

Conversation

@awana-release-bot
Copy link
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

⚠️⚠️⚠️⚠️⚠️⚠️

main is currently in pre mode so this branch has prereleases rather than normal releases. If you want to exit prereleases, run changeset pre exit on main.

⚠️⚠️⚠️⚠️⚠️⚠️

Releases

smp-noto-glyphs@1.0.0-pre.0

Major Changes

  • #92 799c2fd Thanks @gmaclennan! - Initial release. Pre-built Noto Sans SDF glyph PBFs (80+ scripts) for use as fallback glyphs in MapLibre-compatible map servers. Built from GoNotoKurrent covering Latin, Cyrillic, Greek, Arabic, Hebrew, Devanagari, Thai, and many more. CJK/Hangul ranges excluded (rendered client-side by MapLibre).

Patch Changes

styled-map-package-api@5.0.0-pre.4

Minor Changes

  • #92 799c2fd Thanks @gmaclennan! - Add fallback tile and glyph handlers for serving missing resources from SMP files. emptyTileFallback returns format-aware empty tiles (gzipped MVT, transparent PNG/WebP). emptyGlyphFallback returns empty PBFs so MapLibre renders blank space instead of 404 errors. Add --fallback flag to smp view command.

  • #97 4cc7a88 Thanks @gmaclennan! - Add --dedupe flag to smp download CLI command and dedupe option to the download() API, exposing the Writer's tile deduplication to reduce file size for maps with many repeated tiles.

  • #93 8efbb36 Thanks @gmaclennan! - Add validate() function and smp validate CLI command for checking .smp files against the specification.

    The validator returns structured issues with kind (error/warning), severity (fatal/rendering/spec), a stable type identifier, and a path for location context. Results include valid (spec-compliant) and usable (no fatal issues) booleans.

    Checks include: ZIP validity, VERSION file, style.json conformance, SMP metadata validation, tile completeness and format consistency, glyph template and per-font range coverage, sprite file verification, external resource detection, and entry name safety.

    Spec updates:

    • §4.2.2: resource URLs MUST use SMP URIs (upgraded from SHOULD)
    • §4.3.2: smp:maxzoom value MUST be between 0 and 30
    • §8.2: writers MUST fetch and store external GeoJSON data (upgraded from SHOULD)
  • #95 9fc6faf Thanks @gmaclennan! - Exclude locally-rendered glyph ranges from validation and downloads. MapLibre GL renders CJK, Hangul, Kana, Yi, and Halfwidth/Fullwidth glyphs client-side via localIdeographFontFamily, so SMP files do not need to include these 163 of 256 glyph ranges. Adds skipLocalGlyphs option to download() and --skip-local-glyphs CLI flag. Validator glyph completeness check now only counts the 93 required ranges.

Patch Changes

  • #100 5ec8ecf Thanks @gmaclennan! - Drop CJS support - ESM only from now on

  • #98 911d64d Thanks @gmaclennan! - Fix uncaught error in download() when the style URL is unreachable — errors now propagate through the returned stream instead of becoming unhandled rejections. Accept Readonly<BBox> in public API type signatures.

  • #96 6ce4486 Thanks @gmaclennan! - Fix: automatically migrate v7 styles to v8 when downloading or constructing a StyleDownloader, instead of rejecting them as invalid.

  • #91 4e1f56c Thanks @gmaclennan! - Update implementation to strictly conform with spec

  • #89 03e43f6 Thanks @gmaclennan! - add fallbackTile and fallbackGlyph options to createServer

styled-map-package@5.0.0-pre.4

Minor Changes

  • #92 799c2fd Thanks @gmaclennan! - Add fallback tile and glyph handlers for serving missing resources from SMP files. emptyTileFallback returns format-aware empty tiles (gzipped MVT, transparent PNG/WebP). emptyGlyphFallback returns empty PBFs so MapLibre renders blank space instead of 404 errors. Add --fallback flag to smp view command.

  • #97 4cc7a88 Thanks @gmaclennan! - Add --dedupe flag to smp download CLI command and dedupe option to the download() API, exposing the Writer's tile deduplication to reduce file size for maps with many repeated tiles.

  • #93 8efbb36 Thanks @gmaclennan! - Add validate() function and smp validate CLI command for checking .smp files against the specification.

    The validator returns structured issues with kind (error/warning), severity (fatal/rendering/spec), a stable type identifier, and a path for location context. Results include valid (spec-compliant) and usable (no fatal issues) booleans.

    Checks include: ZIP validity, VERSION file, style.json conformance, SMP metadata validation, tile completeness and format consistency, glyph template and per-font range coverage, sprite file verification, external resource detection, and entry name safety.

    Spec updates:

    • §4.2.2: resource URLs MUST use SMP URIs (upgraded from SHOULD)
    • §4.3.2: smp:maxzoom value MUST be between 0 and 30
    • §8.2: writers MUST fetch and store external GeoJSON data (upgraded from SHOULD)
  • #95 9fc6faf Thanks @gmaclennan! - Exclude locally-rendered glyph ranges from validation and downloads. MapLibre GL renders CJK, Hangul, Kana, Yi, and Halfwidth/Fullwidth glyphs client-side via localIdeographFontFamily, so SMP files do not need to include these 163 of 256 glyph ranges. Adds skipLocalGlyphs option to download() and --skip-local-glyphs CLI flag. Validator glyph completeness check now only counts the 93 required ranges.

Patch Changes

@gmaclennan gmaclennan merged commit 6b65823 into main Mar 23, 2026
15 checks passed
@gmaclennan gmaclennan deleted the changeset-release/main branch March 23, 2026 14:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant