tileserver-gl-light 5.5.0-pre.2 → 5.5.0-pre.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,10 +1,12 @@
1
1
  # tileserver-gl changelog
2
2
 
3
- ## 5.5.0-pre.2
3
+ ## 5.5.0-pre.4
4
4
  * Add S3 support for PMTiles with multiple AWS credential profiles (https://github.com/maptiler/tileserver-gl/pull/1779) by @acalcutt
5
5
  * Create .aws directory passthrough folder in Dockerfile (https://github.com/maptiler/tileserver-gl/pull/1784) by @acalcutt
6
6
  * Update eslint to v9 (https://github.com/maptiler/tileserver-gl/pull/1473) by @acalcutt
7
7
  * Fix Renderer Crashes from Failed Fetches (https://github.com/maptiler/tileserver-gl/pull/1798) by @acalcutt
8
+ * Add Visual Regression Tests for Static Image Overlays (https://github.com/maptiler/tileserver-gl/pull/1792) by @acalcutt
9
+ * Fix S3 URL parsing for nested paths in AWS buckets (https://github.com/maptiler/tileserver-gl/pull/1819) by @acalcutt
8
10
 
9
11
  ## 5.4.0
10
12
  * Fix the issue where the tile URL cannot be correctly parsed with the HTTPS protocol when using an nginx proxy service (https://github.com/maptiler/tileserver-gl/pull/1578) by @dakanggo
package/docs/config.rst CHANGED
@@ -311,6 +311,23 @@ Here are the available options for each data source:
311
311
  If not specified, uses ``AWS_REGION`` environment variable or defaults to ``us-east-1``.
312
312
  Optional, only applicable to PMTiles sources using S3 URLs.
313
313
 
314
+ ``s3UrlFormat`` (string)
315
+ Specifies how to interpret the S3 URL format.
316
+
317
+ Allowed values:
318
+
319
+ * ``aws`` - Interpret as AWS S3 (``s3://bucket/path/file.pmtiles``)
320
+ * ``custom`` - Interpret as custom S3 endpoint (``s3://endpoint/bucket/path/file.pmtiles``)
321
+ * Not specified (default) - Auto-detect based on URL pattern
322
+
323
+ Can be specified in the URL using ``?s3UrlFormat=aws`` or in the configuration.
324
+ If both are specified, the configuration value takes precedence.
325
+
326
+ Optional, only applicable to PMTiles sources using S3 URLs.
327
+
328
+ .. note::
329
+ By default, URLs with dots in the first segment (e.g., ``s3://storage.example.com/bucket/file.pmtiles``) are treated as custom endpoints, while URLs without dots are treated as AWS S3. Use ``s3UrlFormat: "aws"`` if your AWS bucket name contains dots.
330
+
314
331
  .. note::
315
332
  These configuration options will be overridden by metadata in the MBTiles or PMTiles file. if corresponding properties exist in the file's metadata, you do not need to specify them in the data configuration.
316
333
 
@@ -445,6 +462,17 @@ Precedence order (highest to lowest): Configuration property ``s3Region``, URL p
445
462
 
446
463
  Precedence order (highest to lowest): Configuration property ``requestPayer``, URL parameter ``?requestPayer=true``, Default: ``false``.
447
464
 
465
+ *S3UrlFormat* - Specifies how to interpret S3 URLs::
466
+
467
+ # URL parameter
468
+ "pmtiles": "s3://my.bucket.name/tiles.pmtiles?s3UrlFormat=aws"
469
+
470
+ # Configuration property
471
+ "pmtiles": "s3://my.bucket.name/tiles.pmtiles",
472
+ "s3UrlFormat": "aws"
473
+
474
+ Precedence order (highest to lowest): Configuration property ``s3UrlFormat``, URL parameter ``?s3UrlFormat=...``, Auto-detection.
475
+
448
476
  **Complete Configuration Examples:**
449
477
 
450
478
  Using URL parameters::
@@ -453,6 +481,9 @@ Using URL parameters::
453
481
  "us-west-tiles": {
454
482
  "pmtiles": "s3://prod-bucket/tiles.pmtiles?profile=production&region=us-west-2"
455
483
  },
484
+ "dotted-bucket-name": {
485
+ "pmtiles": "s3://my.bucket.name/tiles.pmtiles?s3UrlFormat=aws&region=us-east-1"
486
+ },
456
487
  "eu-requester-pays": {
457
488
  "pmtiles": "s3://bucket/tiles.pmtiles?profile=prod&region=eu-central-1&requestPayer=true"
458
489
  }
@@ -466,6 +497,11 @@ Using configuration properties (recommended)::
466
497
  "s3Profile": "production",
467
498
  "s3Region": "us-west-2"
468
499
  },
500
+ "dotted-bucket-name": {
501
+ "pmtiles": "s3://my.bucket.name/tiles.pmtiles",
502
+ "s3UrlFormat": "aws",
503
+ "s3Region": "us-east-1"
504
+ },
469
505
  "eu-requester-pays": {
470
506
  "pmtiles": "s3://bucket/tiles.pmtiles",
471
507
  "s3Profile": "production",
@@ -476,13 +512,17 @@ Using configuration properties (recommended)::
476
512
 
477
513
  **Using S3 in Style JSON Sources:**
478
514
 
479
- When referencing S3 sources from within a style JSON file, use the ``pmtiles://`` prefix with S3 URLs. You can only specify profile, region, and requestPayer using URL query parameters (configuration properties are not available in style JSON)::
515
+ When referencing S3 sources from within a style JSON file, use the ``pmtiles://`` prefix with S3 URLs. You can specify profile, region, requestPayer, and s3UrlFormat using URL query parameters (configuration properties are not available in style JSON)::
480
516
 
481
517
  "sources": {
482
518
  "aws-tiles": {
483
519
  "url": "pmtiles://s3://my-bucket/tiles.pmtiles?profile=production",
484
520
  "type": "vector"
485
521
  },
522
+ "dotted-bucket": {
523
+ "url": "pmtiles://s3://my.bucket.name/tiles.pmtiles?s3UrlFormat=aws",
524
+ "type": "vector"
525
+ },
486
526
  "spaces-tiles": {
487
527
  "url": "pmtiles://s3://example-storage.com/my-bucket/tiles.pmtiles?region=nyc3",
488
528
  "type": "vector"
package/docs/usage.rst CHANGED
@@ -64,6 +64,9 @@ The `--file` option supports multiple source types:
64
64
  # Requester-pays bucket
65
65
  tileserver-gl --file "s3://bucket/tiles.pmtiles?requestPayer=true"
66
66
 
67
+ # Bucket name with dots (force AWS S3 interpretation)
68
+ tileserver-gl --file "s3://my.bucket.name/tiles.pmtiles?s3UrlFormat=aws"
69
+
67
70
  # All options combined
68
71
  tileserver-gl --file "s3://bucket/tiles.pmtiles?profile=prod&region=us-west-2&requestPayer=true"
69
72
 
@@ -82,6 +85,8 @@ You can also use `pmtiles://` or `mbtiles://` prefixes to explicitly specify the
82
85
  .. note::
83
86
  For S3 sources, AWS credentials must be configured via environment variables, AWS credentials file (`~/.aws/credentials` on Linux/macOS or `C:\Users\USERNAME\.aws\credentials` on Windows), or IAM roles.
84
87
 
88
+ The `s3UrlFormat` parameter can be set to `aws` or `custom` to override auto-detection when needed (e.g., for AWS bucket names containing dots).
89
+
85
90
  **When using Docker**, the host credentials file can be mounted to the container's user home directory:
86
91
 
87
92
  ::
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tileserver-gl-light",
3
- "version": "5.5.0-pre.2",
3
+ "version": "5.5.0-pre.4",
4
4
  "description": "Map tile server for JSON GL styles - serving vector tiles",
5
5
  "main": "src/main.js",
6
6
  "bin": "src/main.js",
@@ -35,7 +35,7 @@
35
35
  "docker": "docker build . && docker run --rm -i -p 8080:8080 $(docker build -q .)"
36
36
  },
37
37
  "dependencies": {
38
- "@aws-sdk/client-s3": "^3.927.0",
38
+ "@aws-sdk/client-s3": "^3.932.0",
39
39
  "@jsse/pbfont": "^0.3.0",
40
40
  "@mapbox/mapbox-gl-rtl-text": "0.3.0",
41
41
  "@mapbox/mbtiles": "0.12.1",
@@ -48,7 +48,7 @@
48
48
  "advanced-pool": "0.3.3",
49
49
  "chokidar": "4.0.3",
50
50
  "clone": "2.1.2",
51
- "color": "5.0.0",
51
+ "color": "5.0.3",
52
52
  "commander": "14.0.2",
53
53
  "copyfiles": "2.4.1",
54
54
  "cors": "2.8.5",
@@ -57,11 +57,11 @@
57
57
  "http-shutdown": "1.2.2",
58
58
  "leaflet": "1.9.4",
59
59
  "leaflet-hash": "0.2.1",
60
- "maplibre-gl": "5.11.0",
60
+ "maplibre-gl": "5.13.0",
61
61
  "morgan": "1.10.1",
62
62
  "pbf": "4.0.1",
63
63
  "pmtiles": "4.3.0",
64
- "proj4": "2.19.10",
64
+ "proj4": "2.20.0",
65
65
  "sanitize-filename": "1.6.3",
66
66
  "semver": "^7.7.3",
67
67
  "tileserver-gl-styles": "2.0.0"
@@ -37,7 +37,7 @@ class ElevationInfoControl {
37
37
  } else {
38
38
  this.controlContainer.textContent = `Elevation: ${JSON.parse(request.responseText).elevation} (${JSON.stringify(coord)})`;
39
39
  }
40
- }
40
+ };
41
41
  request.send();
42
42
  } else {
43
43
  this.controlContainer.textContent = "Elevation: Click on Globe";