@loaders.gl/pmtiles 4.0.0-beta.7 → 4.0.0-beta.8

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/LICENSE CHANGED
@@ -1,9 +1,6 @@
1
- Copyright (c) 2015 Uber Technologies, Inc.
2
-
3
- This software includes parts of PhiloGL (https://github.com/philogb/philogl)
4
- under MIT license. PhiloGL parts Copyright © 2013 Sencha Labs.
1
+ loaders.gl is licensed under the MIT license
5
2
 
6
- This software includes adaptations of postprocessing code from THREE.js (https://github.com/mrdoob/three.js/) under MIT license. Additional attribution given in specific source files. THREE.js parts Copyright © 2010-2018 three.js authors.
3
+ Copyright (c) vis.gl contributors
7
4
 
8
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
9
6
  of this software and associated documentation files (the "Software"), to deal
@@ -23,8 +20,12 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
20
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24
21
  THE SOFTWARE.
25
22
 
23
+ ---
24
+
25
+ Copyright (c) 2015 Uber Technologies, Inc.
26
26
 
27
- loaders.gl includes certain files from Cesium (https://github.com/AnalyticalGraphicsInc/cesium) under the Apache 2 License:
27
+ loaders.gl includes certain files from Cesium (https://github.com/AnalyticalGraphicsInc/cesium)
28
+ under the Apache 2 License (found in the submodule: modules/3d-tiles):)
28
29
 
29
30
  Copyright 2011-2018 CesiumJS Contributors
30
31
 
@@ -38,4 +39,3 @@ distributed under the License is distributed on an "AS IS" BASIS,
38
39
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
39
40
  See the License for the specific language governing permissions and limitations under the License.
40
41
 
41
- Cesium-derived code can be found in the submodule: modules/3d-tiles
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AACzD,YAAY,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,YAAY,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AACzD,YAAY,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["PMTilesSource"],"sources":["../src/index.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nexport type {PMTilesMetadata} from './lib/parse-pmtiles';\nexport type {PMTilesSourceProps} from './pmtiles-source';\nexport {PMTilesSource} from './pmtiles-source';\n"],"mappings":"SAIQA,aAAa"}
1
+ {"version":3,"file":"index.js","names":["PMTilesSource"],"sources":["../src/index.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nexport type {PMTilesMetadata} from './lib/parse-pmtiles';\nexport type {PMTilesSourceProps} from './pmtiles-source';\nexport {PMTilesSource} from './pmtiles-source';\n"],"mappings":"SAKQA,aAAa"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-pmtiles.d.ts","sourceRoot":"","sources":["../../src/lib/parse-pmtiles.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AAG9C,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAGnC,yCAAyC;AACzC,MAAM,MAAM,eAAe,GAAG;IAC5B,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,MAAM,EAAE,SAAS,CAAC;IAClB,sDAAsD;IACtD,aAAa,EAAE,MAAM,CAAC;IACtB,qCAAqC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;IAC9B,4FAA4F;IAC5F,QAAQ,EACJ,oCAAoC,GACpC,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,0BAA0B,CAAC;IAC/B,+EAA+E;IAC/E,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC;IAC3B,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACxE,uCAAuC;IACvC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,gGAAgG;IAChG,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,CAAC;AAEF,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CASxF;AAED,wBAAsB,UAAU,CAC9B,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAQlC;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EAChD,OAAO,CAAC,EAAE;IAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAAC,GACxC,eAAe,CA2CjB"}
1
+ {"version":3,"file":"parse-pmtiles.d.ts","sourceRoot":"","sources":["../../src/lib/parse-pmtiles.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AAG9C,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAGnC,yCAAyC;AACzC,MAAM,MAAM,eAAe,GAAG;IAC5B,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,MAAM,EAAE,SAAS,CAAC;IAClB,sDAAsD;IACtD,aAAa,EAAE,MAAM,CAAC;IACtB,qCAAqC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;IAC9B,4FAA4F;IAC5F,QAAQ,EACJ,oCAAoC,GACpC,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,0BAA0B,CAAC;IAC/B,+EAA+E;IAC/E,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC;IAC3B,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACxE,uCAAuC;IACvC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,gGAAgG;IAChG,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,CAAC;AAEF,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CASxF;AAED,wBAAsB,UAAU,CAC9B,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAQlC;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EAChD,OAAO,CAAC,EAAE;IAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAAC,GACxC,eAAe,CA2CjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-pmtiles.js","names":["TileJSONLoader","pmtiles","PMTiles","TileType","loadPMTilesHeader","source","pmTiles","header","getHeader","metadata","getMetadata","tilejsonMetadata","Array","isArray","parsePMTilesHeader","loadPMTile","options","tileZxy","Error","z","x","y","tile","getZxy","data","partialMetadata","name","attribution","attributions","format","formatVersion","specVersion","mimeType","decodeTileType","tileType","minZoom","maxZoom","boundingBox","minLon","minLat","maxLon","maxLat","center","centerLon","centerLat","centerZoom","etag","_TileJSONLoader$parse","tileJSON","parseTextSync","call","JSON","stringify","undefined","error","includeFormatHeader","formatHeader","Mvt","Png","Jpeg","Webp","Avif"],"sources":["../../src/lib/parse-pmtiles.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {TileJSON} from '@loaders.gl/mvt';\nimport {TileJSONLoader} from '@loaders.gl/mvt';\n// import {Source, PMTiles, Header, TileType} from 'pmtiles';\nimport * as pmtiles from 'pmtiles';\nconst {PMTiles, TileType} = pmtiles;\n\n/** Metadata describing a PMTiles file */\nexport type PMTilesMetadata = {\n /** Name of the tileset (extracted from JSON metadata if available) */\n name?: string;\n /** Attribution string (extracted from JSON metadata if available) */\n attributions?: string[];\n\n format: 'pmtiles';\n /** Version of pm tiles format used by this tileset */\n formatVersion: number;\n /** PMTiles format specific header */\n formatHeader?: pmtiles.Header;\n /** MIME type for tile contents. Unknown tile types will return 'application/octet-stream */\n mimeType:\n | 'application/vnd.mapbox-vector-tile'\n | 'image/png'\n | 'image/jpeg'\n | 'image/webp'\n | 'image/avif'\n | 'application/octet-stream';\n /** The original numeric tile type constant specified in the PMTiles tileset */\n tileType: pmtiles.TileType;\n /** Minimal zoom level of tiles in this tileset */\n minZoom: number;\n /** Maximal zoom level of tiles in this tileset */\n maxZoom: number;\n /** Bounding box of tiles in this tileset `[[w, s], [e, n]]` */\n boundingBox: [min: [x: number, y: number], max: [x: number, y: number]];\n /** Center long, lat of this tileset */\n center: [number, number];\n /** Center zoom level of this tileset */\n centerZoom: number;\n /** Cache tag */\n etag?: string;\n tileJSON?: TileJSON;\n /** Current assumption is that this is a tileJSON style metadata generated by e.g. tippecanoe */\n tilejsonMetadata?: Record<string, unknown>;\n};\n\nexport type ParsePMTilesOptions = {\n tileZxy?: [number, number, number];\n};\n\nexport async function loadPMTilesHeader(source: pmtiles.Source): Promise<PMTilesMetadata> {\n const pmTiles = new PMTiles(source);\n const header = await pmTiles.getHeader();\n const metadata = await pmTiles.getMetadata();\n const tilejsonMetadata =\n metadata && typeof metadata === 'object' && !Array.isArray(metadata)\n ? (metadata as Record<string, unknown>)\n : null;\n return parsePMTilesHeader(header, tilejsonMetadata);\n}\n\nexport async function loadPMTile(\n source: pmtiles.Source,\n options: ParsePMTilesOptions\n): Promise<ArrayBuffer | undefined> {\n const pmTiles = new PMTiles(source);\n if (!options.tileZxy) {\n throw new Error('tile zxy missing');\n }\n const [z, x, y] = options.tileZxy;\n const tile = await pmTiles.getZxy(z, x, y);\n return tile?.data;\n}\n\nexport function parsePMTilesHeader(\n header: pmtiles.Header,\n tilejsonMetadata: Record<string, unknown> | null,\n options?: {includeFormatHeader?: boolean}\n): PMTilesMetadata {\n const partialMetadata: Partial<PMTilesMetadata> = {};\n\n if (typeof tilejsonMetadata?.name === 'string') {\n partialMetadata.name = tilejsonMetadata.name;\n }\n\n if (typeof tilejsonMetadata?.attribution === 'string') {\n partialMetadata.attributions = [tilejsonMetadata.attribution];\n }\n\n const metadata: PMTilesMetadata = {\n ...partialMetadata,\n format: 'pmtiles',\n formatVersion: header.specVersion,\n mimeType: decodeTileType(header.tileType),\n tileType: header.tileType,\n minZoom: header.minZoom,\n maxZoom: header.maxZoom,\n boundingBox: [\n [header.minLon, header.minLat],\n [header.maxLon, header.maxLat]\n ],\n center: [header.centerLon, header.centerLat],\n centerZoom: header.centerZoom,\n etag: header.etag\n };\n\n if (tilejsonMetadata) {\n try {\n metadata.tileJSON =\n TileJSONLoader.parseTextSync?.(JSON.stringify(tilejsonMetadata)) || undefined;\n } catch (error) {\n // console.warn('PMTiles invalid tilejson metadata', error);\n metadata.tilejsonMetadata = tilejsonMetadata;\n }\n }\n\n if (options?.includeFormatHeader) {\n metadata.formatHeader = header;\n }\n\n return metadata;\n}\n\n/** Extract a MIME type for tiles from vector tile header */\nfunction decodeTileType(\n tileType: pmtiles.TileType\n):\n | 'application/vnd.mapbox-vector-tile'\n | 'image/png'\n | 'image/jpeg'\n | 'image/webp'\n | 'image/avif'\n | 'application/octet-stream' {\n switch (tileType) {\n case TileType.Mvt:\n return 'application/vnd.mapbox-vector-tile';\n case TileType.Png:\n return 'image/png';\n case TileType.Jpeg:\n return 'image/jpeg';\n case TileType.Webp:\n return 'image/webp';\n case TileType.Avif:\n return 'image/avif';\n default:\n return 'application/octet-stream';\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"parse-pmtiles.js","names":["TileJSONLoader","pmtiles","PMTiles","TileType","loadPMTilesHeader","source","pmTiles","header","getHeader","metadata","getMetadata","tilejsonMetadata","Array","isArray","parsePMTilesHeader","loadPMTile","options","tileZxy","Error","z","x","y","tile","getZxy","data","partialMetadata","name","attribution","attributions","format","formatVersion","specVersion","mimeType","decodeTileType","tileType","minZoom","maxZoom","boundingBox","minLon","minLat","maxLon","maxLat","center","centerLon","centerLat","centerZoom","etag","_TileJSONLoader$parse","tileJSON","parseTextSync","call","JSON","stringify","undefined","error","includeFormatHeader","formatHeader","Mvt","Png","Jpeg","Webp","Avif"],"sources":["../../src/lib/parse-pmtiles.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {TileJSON} from '@loaders.gl/mvt';\nimport {TileJSONLoader} from '@loaders.gl/mvt';\n// import {Source, PMTiles, Header, TileType} from 'pmtiles';\nimport * as pmtiles from 'pmtiles';\nconst {PMTiles, TileType} = pmtiles;\n\n/** Metadata describing a PMTiles file */\nexport type PMTilesMetadata = {\n /** Name of the tileset (extracted from JSON metadata if available) */\n name?: string;\n /** Attribution string (extracted from JSON metadata if available) */\n attributions?: string[];\n\n format: 'pmtiles';\n /** Version of pm tiles format used by this tileset */\n formatVersion: number;\n /** PMTiles format specific header */\n formatHeader?: pmtiles.Header;\n /** MIME type for tile contents. Unknown tile types will return 'application/octet-stream */\n mimeType:\n | 'application/vnd.mapbox-vector-tile'\n | 'image/png'\n | 'image/jpeg'\n | 'image/webp'\n | 'image/avif'\n | 'application/octet-stream';\n /** The original numeric tile type constant specified in the PMTiles tileset */\n tileType: pmtiles.TileType;\n /** Minimal zoom level of tiles in this tileset */\n minZoom: number;\n /** Maximal zoom level of tiles in this tileset */\n maxZoom: number;\n /** Bounding box of tiles in this tileset `[[w, s], [e, n]]` */\n boundingBox: [min: [x: number, y: number], max: [x: number, y: number]];\n /** Center long, lat of this tileset */\n center: [number, number];\n /** Center zoom level of this tileset */\n centerZoom: number;\n /** Cache tag */\n etag?: string;\n tileJSON?: TileJSON;\n /** Current assumption is that this is a tileJSON style metadata generated by e.g. tippecanoe */\n tilejsonMetadata?: Record<string, unknown>;\n};\n\nexport type ParsePMTilesOptions = {\n tileZxy?: [number, number, number];\n};\n\nexport async function loadPMTilesHeader(source: pmtiles.Source): Promise<PMTilesMetadata> {\n const pmTiles = new PMTiles(source);\n const header = await pmTiles.getHeader();\n const metadata = await pmTiles.getMetadata();\n const tilejsonMetadata =\n metadata && typeof metadata === 'object' && !Array.isArray(metadata)\n ? (metadata as Record<string, unknown>)\n : null;\n return parsePMTilesHeader(header, tilejsonMetadata);\n}\n\nexport async function loadPMTile(\n source: pmtiles.Source,\n options: ParsePMTilesOptions\n): Promise<ArrayBuffer | undefined> {\n const pmTiles = new PMTiles(source);\n if (!options.tileZxy) {\n throw new Error('tile zxy missing');\n }\n const [z, x, y] = options.tileZxy;\n const tile = await pmTiles.getZxy(z, x, y);\n return tile?.data;\n}\n\nexport function parsePMTilesHeader(\n header: pmtiles.Header,\n tilejsonMetadata: Record<string, unknown> | null,\n options?: {includeFormatHeader?: boolean}\n): PMTilesMetadata {\n const partialMetadata: Partial<PMTilesMetadata> = {};\n\n if (typeof tilejsonMetadata?.name === 'string') {\n partialMetadata.name = tilejsonMetadata.name;\n }\n\n if (typeof tilejsonMetadata?.attribution === 'string') {\n partialMetadata.attributions = [tilejsonMetadata.attribution];\n }\n\n const metadata: PMTilesMetadata = {\n ...partialMetadata,\n format: 'pmtiles',\n formatVersion: header.specVersion,\n mimeType: decodeTileType(header.tileType),\n tileType: header.tileType,\n minZoom: header.minZoom,\n maxZoom: header.maxZoom,\n boundingBox: [\n [header.minLon, header.minLat],\n [header.maxLon, header.maxLat]\n ],\n center: [header.centerLon, header.centerLat],\n centerZoom: header.centerZoom,\n etag: header.etag\n };\n\n if (tilejsonMetadata) {\n try {\n metadata.tileJSON =\n TileJSONLoader.parseTextSync?.(JSON.stringify(tilejsonMetadata)) || undefined;\n } catch (error) {\n // console.warn('PMTiles invalid tilejson metadata', error);\n metadata.tilejsonMetadata = tilejsonMetadata;\n }\n }\n\n if (options?.includeFormatHeader) {\n metadata.formatHeader = header;\n }\n\n return metadata;\n}\n\n/** Extract a MIME type for tiles from vector tile header */\nfunction decodeTileType(\n tileType: pmtiles.TileType\n):\n | 'application/vnd.mapbox-vector-tile'\n | 'image/png'\n | 'image/jpeg'\n | 'image/webp'\n | 'image/avif'\n | 'application/octet-stream' {\n switch (tileType) {\n case TileType.Mvt:\n return 'application/vnd.mapbox-vector-tile';\n case TileType.Png:\n return 'image/png';\n case TileType.Jpeg:\n return 'image/jpeg';\n case TileType.Webp:\n return 'image/webp';\n case TileType.Avif:\n return 'image/avif';\n default:\n return 'application/octet-stream';\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pmtiles-source.d.ts","sourceRoot":"","sources":["../src/pmtiles-source.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,kBAAkB,EAAE,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AACpF,OAAO,KAAK,EAAC,SAAS,EAAE,eAAe,EAAC,MAAM,0BAA0B,CAAC;AACzE,OAAO,KAAK,EAAC,eAAe,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAC,UAAU,EAAc,MAAM,0BAA0B,CAAC;AAIjE,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AAGzD,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAKnC,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,OAAO,EAAE,YAAY,IAAI,OAAO,GAAG;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC;CAChD,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,iBAAiB,CAAC,aAAa,EAAE,kBAAkB,CAW/E,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,eAAe,GAAG;IACjD,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB,CAAC;AAEF,qBAAa,UAAW,YAAW,OAAO,CAAC,MAAM;IAC/C,IAAI,EAAE,IAAI,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;gBAEA,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM;IAMnC,MAAM;IAKA,QAAQ,CACZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;CAUlC;AACD;;;GAGG;AACH,qBAAa,aAAc,SAAQ,UAAW,YAAW,eAAe,EAAE,gBAAgB;IACxF,KAAK,EAAE,kBAAkB,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;gBAEvB,KAAK,EAAE,kBAAkB;IAU/B,WAAW,IAAI,OAAO,CAAC,eAAe,CAAC;IAUvC,OAAO,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAcnE,WAAW,CAAC,UAAU,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAapE,YAAY,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAOtE,aAAa,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;CAc5E"}
1
+ {"version":3,"file":"pmtiles-source.d.ts","sourceRoot":"","sources":["../src/pmtiles-source.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,kBAAkB,EAAE,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AACpF,OAAO,KAAK,EAAC,SAAS,EAAE,eAAe,EAAC,MAAM,0BAA0B,CAAC;AACzE,OAAO,KAAK,EAAC,eAAe,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAC,UAAU,EAAc,MAAM,0BAA0B,CAAC;AAIjE,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AAGzD,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAKnC,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,OAAO,EAAE,YAAY,IAAI,OAAO,GAAG;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC;CAChD,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,iBAAiB,CAAC,aAAa,EAAE,kBAAkB,CAW/E,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,eAAe,GAAG;IACjD,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB,CAAC;AAEF,qBAAa,UAAW,YAAW,OAAO,CAAC,MAAM;IAC/C,IAAI,EAAE,IAAI,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;gBAEA,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM;IAMnC,MAAM;IAKA,QAAQ,CACZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;CAUlC;AACD;;;GAGG;AACH,qBAAa,aAAc,SAAQ,UAAW,YAAW,eAAe,EAAE,gBAAgB;IACxF,KAAK,EAAE,kBAAkB,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;gBAEvB,KAAK,EAAE,kBAAkB;IAU/B,WAAW,IAAI,OAAO,CAAC,eAAe,CAAC;IAUvC,OAAO,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAcnE,WAAW,CAAC,UAAU,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAapE,YAAY,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAOtE,aAAa,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;CAc5E"}
@@ -1 +1 @@
1
- {"version":3,"file":"pmtiles-source.js","names":["DataSource","resolvePath","ImageLoader","MVTLoader","parsePMTilesHeader","pmtiles","PMTiles","VERSION","PMTilesService","name","id","module","version","extensions","mimeTypes","options","createSource","props","PMTilesSource","BlobSource","constructor","blob","key","getKey","url","getBytes","offset","length","signal","slice","data","arrayBuffer","metadata","getTileData","bind","getMetadata","pmtilesHeader","getHeader","pmtilesMetadata","attributions","getTile","tileParams","x","y","zoom","z","rangeResponse","getZxy","index","mimeType","getVectorTile","layers","getImageTile","parse","loadOptions","_this$loadOptions","shape","mvt","coordinates","tileIndex"],"sources":["../src/pmtiles-source.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {TileLoadParameters, GetTileParameters} from '@loaders.gl/loader-utils';\nimport type {ImageType, DataSourceProps} from '@loaders.gl/loader-utils';\nimport type {ImageTileSource, VectorTileSource} from '@loaders.gl/loader-utils';\nimport {DataSource, resolvePath} from '@loaders.gl/loader-utils';\nimport {ImageLoader} from '@loaders.gl/images';\nimport {MVTLoader, MVTLoaderOptions} from '@loaders.gl/mvt';\n\nimport type {PMTilesMetadata} from './lib/parse-pmtiles';\nimport {parsePMTilesHeader} from './lib/parse-pmtiles';\n\nimport * as pmtiles from 'pmtiles';\nconst {PMTiles} = pmtiles;\n\nconst VERSION = '1.0.0';\n\nexport type Service = {\n name: string;\n id: string;\n module: string;\n version: string;\n extensions: string[];\n mimeTypes: string[];\n options: Record<string, unknown>;\n};\n\nexport type ServiceWithSource<SourceT, SourcePropsT> = Service & {\n _source?: SourceT;\n _sourceProps?: SourcePropsT;\n createSource: (props: SourcePropsT) => SourceT;\n};\n\nexport const PMTilesService: ServiceWithSource<PMTilesSource, PMTilesSourceProps> = {\n name: 'PMTiles',\n id: 'pmtiles',\n module: 'pmtiles',\n version: VERSION,\n extensions: ['pmtiles'],\n mimeTypes: ['application/octet-stream'],\n options: {\n pmtiles: {}\n },\n createSource: (props: PMTilesSourceProps) => new PMTilesSource(props)\n};\n\nexport type PMTilesSourceProps = DataSourceProps & {\n url: string | Blob;\n attributions?: string[];\n};\n\nexport class BlobSource implements pmtiles.Source {\n blob: Blob;\n key: string;\n\n constructor(blob: Blob, key: string) {\n this.blob = blob;\n this.key = key;\n }\n\n // TODO - how is this used?\n getKey() {\n // @ts-expect-error url is only defined on File subclass\n return this.blob.url || '';\n }\n\n async getBytes(\n offset: number,\n length: number,\n signal?: AbortSignal\n ): Promise<pmtiles.RangeResponse> {\n const slice = this.blob.slice(offset, offset + length);\n const data = await slice.arrayBuffer();\n return {\n data\n // etag: response.headers.get('ETag') || undefined,\n // cacheControl: response.headers.get('Cache-Control') || undefined,\n // expires: response.headers.get('Expires') || undefined\n };\n }\n}\n/**\n * A PMTiles data source\n * @note Can be either a raster or vector tile source depending on the contents of the PMTiles file.\n */\nexport class PMTilesSource extends DataSource implements ImageTileSource, VectorTileSource {\n props: PMTilesSourceProps;\n pmtiles: pmtiles.PMTiles;\n metadata: Promise<PMTilesMetadata>;\n\n constructor(props: PMTilesSourceProps) {\n super(props);\n this.props = props;\n const url =\n typeof props.url === 'string' ? resolvePath(props.url) : new BlobSource(props.url, 'pmtiles');\n this.pmtiles = new PMTiles(url);\n this.getTileData = this.getTileData.bind(this);\n this.metadata = this.getMetadata();\n }\n\n async getMetadata(): Promise<PMTilesMetadata> {\n const pmtilesHeader = await this.pmtiles.getHeader();\n const pmtilesMetadata = await this.pmtiles.getMetadata();\n const metadata = parsePMTilesHeader(pmtilesHeader, pmtilesMetadata);\n if (this.props.attributions) {\n metadata.attributions = [...this.props.attributions, ...(metadata.attributions || [])];\n }\n return metadata;\n }\n\n async getTile(tileParams: GetTileParameters): Promise<ArrayBuffer | null> {\n const {x, y, zoom: z} = tileParams;\n const rangeResponse = await this.pmtiles.getZxy(z, x, y);\n const arrayBuffer = rangeResponse?.data;\n if (!arrayBuffer) {\n // console.error('No arrayBuffer', tileParams);\n return null;\n }\n return arrayBuffer;\n }\n\n // Tile Source interface implementation: deck.gl compatible API\n // TODO - currently only handles image tiles, not vector tiles\n\n async getTileData(tileParams: TileLoadParameters): Promise<unknown | null> {\n const {x, y, z} = tileParams.index;\n const metadata = await this.metadata;\n switch (metadata.mimeType) {\n case 'application/vnd.mapbox-vector-tile':\n return await this.getVectorTile({x, y, zoom: z, layers: []});\n default:\n return await this.getImageTile({x, y, zoom: z, layers: []});\n }\n }\n\n // ImageTileSource interface implementation\n\n async getImageTile(tileParams: GetTileParameters): Promise<ImageType | null> {\n const arrayBuffer = await this.getTile(tileParams);\n return arrayBuffer ? await ImageLoader.parse(arrayBuffer, this.loadOptions) : null;\n }\n\n // VectorTileSource interface implementation\n\n async getVectorTile(tileParams: GetTileParameters): Promise<unknown | null> {\n const arrayBuffer = await this.getTile(tileParams);\n const loadOptions: MVTLoaderOptions = {\n shape: 'geojson-table',\n mvt: {\n coordinates: 'wgs84',\n tileIndex: {x: tileParams.x, y: tileParams.y, z: tileParams.zoom},\n ...(this.loadOptions as MVTLoaderOptions)?.mvt\n },\n ...this.loadOptions\n };\n\n return arrayBuffer ? await MVTLoader.parse(arrayBuffer, loadOptions) : null;\n }\n}\n"],"mappings":"AAKA,SAAQA,UAAU,EAAEC,WAAW,QAAO,0BAA0B;AAChE,SAAQC,WAAW,QAAO,oBAAoB;AAC9C,SAAQC,SAAS,QAAyB,iBAAiB;AAAC,SAGpDC,kBAAkB;AAE1B,OAAO,KAAKC,OAAO,MAAM,SAAS;AAClC,MAAM;EAACC;AAAO,CAAC,GAAGD,OAAO;AAEzB,MAAME,OAAO,GAAG,OAAO;AAkBvB,OAAO,MAAMC,cAAoE,GAAG;EAClFC,IAAI,EAAE,SAAS;EACfC,EAAE,EAAE,SAAS;EACbC,MAAM,EAAE,SAAS;EACjBC,OAAO,EAAEL,OAAO;EAChBM,UAAU,EAAE,CAAC,SAAS,CAAC;EACvBC,SAAS,EAAE,CAAC,0BAA0B,CAAC;EACvCC,OAAO,EAAE;IACPV,OAAO,EAAE,CAAC;EACZ,CAAC;EACDW,YAAY,EAAGC,KAAyB,IAAK,IAAIC,aAAa,CAACD,KAAK;AACtE,CAAC;AAOD,OAAO,MAAME,UAAU,CAA2B;EAIhDC,WAAWA,CAACC,IAAU,EAAEC,GAAW,EAAE;IAAA,KAHrCD,IAAI;IAAA,KACJC,GAAG;IAGD,IAAI,CAACD,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,GAAG,GAAGA,GAAG;EAChB;EAGAC,MAAMA,CAAA,EAAG;IAEP,OAAO,IAAI,CAACF,IAAI,CAACG,GAAG,IAAI,EAAE;EAC5B;EAEA,MAAMC,QAAQA,CACZC,MAAc,EACdC,MAAc,EACdC,MAAoB,EACY;IAChC,MAAMC,KAAK,GAAG,IAAI,CAACR,IAAI,CAACQ,KAAK,CAACH,MAAM,EAAEA,MAAM,GAAGC,MAAM,CAAC;IACtD,MAAMG,IAAI,GAAG,MAAMD,KAAK,CAACE,WAAW,CAAC,CAAC;IACtC,OAAO;MACLD;IAIF,CAAC;EACH;AACF;AAKA,OAAO,MAAMZ,aAAa,SAASlB,UAAU,CAA8C;EAKzFoB,WAAWA,CAACH,KAAyB,EAAE;IACrC,KAAK,CAACA,KAAK,CAAC;IAAC,KALfA,KAAK;IAAA,KACLZ,OAAO;IAAA,KACP2B,QAAQ;IAIN,IAAI,CAACf,KAAK,GAAGA,KAAK;IAClB,MAAMO,GAAG,GACP,OAAOP,KAAK,CAACO,GAAG,KAAK,QAAQ,GAAGvB,WAAW,CAACgB,KAAK,CAACO,GAAG,CAAC,GAAG,IAAIL,UAAU,CAACF,KAAK,CAACO,GAAG,EAAE,SAAS,CAAC;IAC/F,IAAI,CAACnB,OAAO,GAAG,IAAIC,OAAO,CAACkB,GAAG,CAAC;IAC/B,IAAI,CAACS,WAAW,GAAG,IAAI,CAACA,WAAW,CAACC,IAAI,CAAC,IAAI,CAAC;IAC9C,IAAI,CAACF,QAAQ,GAAG,IAAI,CAACG,WAAW,CAAC,CAAC;EACpC;EAEA,MAAMA,WAAWA,CAAA,EAA6B;IAC5C,MAAMC,aAAa,GAAG,MAAM,IAAI,CAAC/B,OAAO,CAACgC,SAAS,CAAC,CAAC;IACpD,MAAMC,eAAe,GAAG,MAAM,IAAI,CAACjC,OAAO,CAAC8B,WAAW,CAAC,CAAC;IACxD,MAAMH,QAAQ,GAAG5B,kBAAkB,CAACgC,aAAa,EAAEE,eAAe,CAAC;IACnE,IAAI,IAAI,CAACrB,KAAK,CAACsB,YAAY,EAAE;MAC3BP,QAAQ,CAACO,YAAY,GAAG,CAAC,GAAG,IAAI,CAACtB,KAAK,CAACsB,YAAY,EAAE,IAAIP,QAAQ,CAACO,YAAY,IAAI,EAAE,CAAC,CAAC;IACxF;IACA,OAAOP,QAAQ;EACjB;EAEA,MAAMQ,OAAOA,CAACC,UAA6B,EAA+B;IACxE,MAAM;MAACC,CAAC;MAAEC,CAAC;MAAEC,IAAI,EAAEC;IAAC,CAAC,GAAGJ,UAAU;IAClC,MAAMK,aAAa,GAAG,MAAM,IAAI,CAACzC,OAAO,CAAC0C,MAAM,CAACF,CAAC,EAAEH,CAAC,EAAEC,CAAC,CAAC;IACxD,MAAMZ,WAAW,GAAGe,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEhB,IAAI;IACvC,IAAI,CAACC,WAAW,EAAE;MAEhB,OAAO,IAAI;IACb;IACA,OAAOA,WAAW;EACpB;EAKA,MAAME,WAAWA,CAACQ,UAA8B,EAA2B;IACzE,MAAM;MAACC,CAAC;MAAEC,CAAC;MAAEE;IAAC,CAAC,GAAGJ,UAAU,CAACO,KAAK;IAClC,MAAMhB,QAAQ,GAAG,MAAM,IAAI,CAACA,QAAQ;IACpC,QAAQA,QAAQ,CAACiB,QAAQ;MACvB,KAAK,oCAAoC;QACvC,OAAO,MAAM,IAAI,CAACC,aAAa,CAAC;UAACR,CAAC;UAAEC,CAAC;UAAEC,IAAI,EAAEC,CAAC;UAAEM,MAAM,EAAE;QAAE,CAAC,CAAC;MAC9D;QACE,OAAO,MAAM,IAAI,CAACC,YAAY,CAAC;UAACV,CAAC;UAAEC,CAAC;UAAEC,IAAI,EAAEC,CAAC;UAAEM,MAAM,EAAE;QAAE,CAAC,CAAC;IAC/D;EACF;EAIA,MAAMC,YAAYA,CAACX,UAA6B,EAA6B;IAC3E,MAAMV,WAAW,GAAG,MAAM,IAAI,CAACS,OAAO,CAACC,UAAU,CAAC;IAClD,OAAOV,WAAW,GAAG,MAAM7B,WAAW,CAACmD,KAAK,CAACtB,WAAW,EAAE,IAAI,CAACuB,WAAW,CAAC,GAAG,IAAI;EACpF;EAIA,MAAMJ,aAAaA,CAACT,UAA6B,EAA2B;IAAA,IAAAc,iBAAA;IAC1E,MAAMxB,WAAW,GAAG,MAAM,IAAI,CAACS,OAAO,CAACC,UAAU,CAAC;IAClD,MAAMa,WAA6B,GAAG;MACpCE,KAAK,EAAE,eAAe;MACtBC,GAAG,EAAE;QACHC,WAAW,EAAE,OAAO;QACpBC,SAAS,EAAE;UAACjB,CAAC,EAAED,UAAU,CAACC,CAAC;UAAEC,CAAC,EAAEF,UAAU,CAACE,CAAC;UAAEE,CAAC,EAAEJ,UAAU,CAACG;QAAI,CAAC;QACjE,KAAAW,iBAAA,GAAI,IAAI,CAACD,WAAW,cAAAC,iBAAA,uBAAjBA,iBAAA,CAAwCE,GAAG;MAChD,CAAC;MACD,GAAG,IAAI,CAACH;IACV,CAAC;IAED,OAAOvB,WAAW,GAAG,MAAM5B,SAAS,CAACkD,KAAK,CAACtB,WAAW,EAAEuB,WAAW,CAAC,GAAG,IAAI;EAC7E;AACF"}
1
+ {"version":3,"file":"pmtiles-source.js","names":["DataSource","resolvePath","ImageLoader","MVTLoader","parsePMTilesHeader","pmtiles","PMTiles","VERSION","PMTilesService","name","id","module","version","extensions","mimeTypes","options","createSource","props","PMTilesSource","BlobSource","constructor","blob","key","getKey","url","getBytes","offset","length","signal","slice","data","arrayBuffer","metadata","getTileData","bind","getMetadata","pmtilesHeader","getHeader","pmtilesMetadata","attributions","getTile","tileParams","x","y","zoom","z","rangeResponse","getZxy","index","mimeType","getVectorTile","layers","getImageTile","parse","loadOptions","_this$loadOptions","shape","mvt","coordinates","tileIndex"],"sources":["../src/pmtiles-source.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {TileLoadParameters, GetTileParameters} from '@loaders.gl/loader-utils';\nimport type {ImageType, DataSourceProps} from '@loaders.gl/loader-utils';\nimport type {ImageTileSource, VectorTileSource} from '@loaders.gl/loader-utils';\nimport {DataSource, resolvePath} from '@loaders.gl/loader-utils';\nimport {ImageLoader} from '@loaders.gl/images';\nimport {MVTLoader, MVTLoaderOptions} from '@loaders.gl/mvt';\n\nimport type {PMTilesMetadata} from './lib/parse-pmtiles';\nimport {parsePMTilesHeader} from './lib/parse-pmtiles';\n\nimport * as pmtiles from 'pmtiles';\nconst {PMTiles} = pmtiles;\n\nconst VERSION = '1.0.0';\n\nexport type Service = {\n name: string;\n id: string;\n module: string;\n version: string;\n extensions: string[];\n mimeTypes: string[];\n options: Record<string, unknown>;\n};\n\nexport type ServiceWithSource<SourceT, SourcePropsT> = Service & {\n _source?: SourceT;\n _sourceProps?: SourcePropsT;\n createSource: (props: SourcePropsT) => SourceT;\n};\n\nexport const PMTilesService: ServiceWithSource<PMTilesSource, PMTilesSourceProps> = {\n name: 'PMTiles',\n id: 'pmtiles',\n module: 'pmtiles',\n version: VERSION,\n extensions: ['pmtiles'],\n mimeTypes: ['application/octet-stream'],\n options: {\n pmtiles: {}\n },\n createSource: (props: PMTilesSourceProps) => new PMTilesSource(props)\n};\n\nexport type PMTilesSourceProps = DataSourceProps & {\n url: string | Blob;\n attributions?: string[];\n};\n\nexport class BlobSource implements pmtiles.Source {\n blob: Blob;\n key: string;\n\n constructor(blob: Blob, key: string) {\n this.blob = blob;\n this.key = key;\n }\n\n // TODO - how is this used?\n getKey() {\n // @ts-expect-error url is only defined on File subclass\n return this.blob.url || '';\n }\n\n async getBytes(\n offset: number,\n length: number,\n signal?: AbortSignal\n ): Promise<pmtiles.RangeResponse> {\n const slice = this.blob.slice(offset, offset + length);\n const data = await slice.arrayBuffer();\n return {\n data\n // etag: response.headers.get('ETag') || undefined,\n // cacheControl: response.headers.get('Cache-Control') || undefined,\n // expires: response.headers.get('Expires') || undefined\n };\n }\n}\n/**\n * A PMTiles data source\n * @note Can be either a raster or vector tile source depending on the contents of the PMTiles file.\n */\nexport class PMTilesSource extends DataSource implements ImageTileSource, VectorTileSource {\n props: PMTilesSourceProps;\n pmtiles: pmtiles.PMTiles;\n metadata: Promise<PMTilesMetadata>;\n\n constructor(props: PMTilesSourceProps) {\n super(props);\n this.props = props;\n const url =\n typeof props.url === 'string' ? resolvePath(props.url) : new BlobSource(props.url, 'pmtiles');\n this.pmtiles = new PMTiles(url);\n this.getTileData = this.getTileData.bind(this);\n this.metadata = this.getMetadata();\n }\n\n async getMetadata(): Promise<PMTilesMetadata> {\n const pmtilesHeader = await this.pmtiles.getHeader();\n const pmtilesMetadata = await this.pmtiles.getMetadata();\n const metadata = parsePMTilesHeader(pmtilesHeader, pmtilesMetadata);\n if (this.props.attributions) {\n metadata.attributions = [...this.props.attributions, ...(metadata.attributions || [])];\n }\n return metadata;\n }\n\n async getTile(tileParams: GetTileParameters): Promise<ArrayBuffer | null> {\n const {x, y, zoom: z} = tileParams;\n const rangeResponse = await this.pmtiles.getZxy(z, x, y);\n const arrayBuffer = rangeResponse?.data;\n if (!arrayBuffer) {\n // console.error('No arrayBuffer', tileParams);\n return null;\n }\n return arrayBuffer;\n }\n\n // Tile Source interface implementation: deck.gl compatible API\n // TODO - currently only handles image tiles, not vector tiles\n\n async getTileData(tileParams: TileLoadParameters): Promise<unknown | null> {\n const {x, y, z} = tileParams.index;\n const metadata = await this.metadata;\n switch (metadata.mimeType) {\n case 'application/vnd.mapbox-vector-tile':\n return await this.getVectorTile({x, y, zoom: z, layers: []});\n default:\n return await this.getImageTile({x, y, zoom: z, layers: []});\n }\n }\n\n // ImageTileSource interface implementation\n\n async getImageTile(tileParams: GetTileParameters): Promise<ImageType | null> {\n const arrayBuffer = await this.getTile(tileParams);\n return arrayBuffer ? await ImageLoader.parse(arrayBuffer, this.loadOptions) : null;\n }\n\n // VectorTileSource interface implementation\n\n async getVectorTile(tileParams: GetTileParameters): Promise<unknown | null> {\n const arrayBuffer = await this.getTile(tileParams);\n const loadOptions: MVTLoaderOptions = {\n shape: 'geojson-table',\n mvt: {\n coordinates: 'wgs84',\n tileIndex: {x: tileParams.x, y: tileParams.y, z: tileParams.zoom},\n ...(this.loadOptions as MVTLoaderOptions)?.mvt\n },\n ...this.loadOptions\n };\n\n return arrayBuffer ? await MVTLoader.parse(arrayBuffer, loadOptions) : null;\n }\n}\n"],"mappings":"AAMA,SAAQA,UAAU,EAAEC,WAAW,QAAO,0BAA0B;AAChE,SAAQC,WAAW,QAAO,oBAAoB;AAC9C,SAAQC,SAAS,QAAyB,iBAAiB;AAAC,SAGpDC,kBAAkB;AAE1B,OAAO,KAAKC,OAAO,MAAM,SAAS;AAClC,MAAM;EAACC;AAAO,CAAC,GAAGD,OAAO;AAEzB,MAAME,OAAO,GAAG,OAAO;AAkBvB,OAAO,MAAMC,cAAoE,GAAG;EAClFC,IAAI,EAAE,SAAS;EACfC,EAAE,EAAE,SAAS;EACbC,MAAM,EAAE,SAAS;EACjBC,OAAO,EAAEL,OAAO;EAChBM,UAAU,EAAE,CAAC,SAAS,CAAC;EACvBC,SAAS,EAAE,CAAC,0BAA0B,CAAC;EACvCC,OAAO,EAAE;IACPV,OAAO,EAAE,CAAC;EACZ,CAAC;EACDW,YAAY,EAAGC,KAAyB,IAAK,IAAIC,aAAa,CAACD,KAAK;AACtE,CAAC;AAOD,OAAO,MAAME,UAAU,CAA2B;EAIhDC,WAAWA,CAACC,IAAU,EAAEC,GAAW,EAAE;IAAA,KAHrCD,IAAI;IAAA,KACJC,GAAG;IAGD,IAAI,CAACD,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,GAAG,GAAGA,GAAG;EAChB;EAGAC,MAAMA,CAAA,EAAG;IAEP,OAAO,IAAI,CAACF,IAAI,CAACG,GAAG,IAAI,EAAE;EAC5B;EAEA,MAAMC,QAAQA,CACZC,MAAc,EACdC,MAAc,EACdC,MAAoB,EACY;IAChC,MAAMC,KAAK,GAAG,IAAI,CAACR,IAAI,CAACQ,KAAK,CAACH,MAAM,EAAEA,MAAM,GAAGC,MAAM,CAAC;IACtD,MAAMG,IAAI,GAAG,MAAMD,KAAK,CAACE,WAAW,CAAC,CAAC;IACtC,OAAO;MACLD;IAIF,CAAC;EACH;AACF;AAKA,OAAO,MAAMZ,aAAa,SAASlB,UAAU,CAA8C;EAKzFoB,WAAWA,CAACH,KAAyB,EAAE;IACrC,KAAK,CAACA,KAAK,CAAC;IAAC,KALfA,KAAK;IAAA,KACLZ,OAAO;IAAA,KACP2B,QAAQ;IAIN,IAAI,CAACf,KAAK,GAAGA,KAAK;IAClB,MAAMO,GAAG,GACP,OAAOP,KAAK,CAACO,GAAG,KAAK,QAAQ,GAAGvB,WAAW,CAACgB,KAAK,CAACO,GAAG,CAAC,GAAG,IAAIL,UAAU,CAACF,KAAK,CAACO,GAAG,EAAE,SAAS,CAAC;IAC/F,IAAI,CAACnB,OAAO,GAAG,IAAIC,OAAO,CAACkB,GAAG,CAAC;IAC/B,IAAI,CAACS,WAAW,GAAG,IAAI,CAACA,WAAW,CAACC,IAAI,CAAC,IAAI,CAAC;IAC9C,IAAI,CAACF,QAAQ,GAAG,IAAI,CAACG,WAAW,CAAC,CAAC;EACpC;EAEA,MAAMA,WAAWA,CAAA,EAA6B;IAC5C,MAAMC,aAAa,GAAG,MAAM,IAAI,CAAC/B,OAAO,CAACgC,SAAS,CAAC,CAAC;IACpD,MAAMC,eAAe,GAAG,MAAM,IAAI,CAACjC,OAAO,CAAC8B,WAAW,CAAC,CAAC;IACxD,MAAMH,QAAQ,GAAG5B,kBAAkB,CAACgC,aAAa,EAAEE,eAAe,CAAC;IACnE,IAAI,IAAI,CAACrB,KAAK,CAACsB,YAAY,EAAE;MAC3BP,QAAQ,CAACO,YAAY,GAAG,CAAC,GAAG,IAAI,CAACtB,KAAK,CAACsB,YAAY,EAAE,IAAIP,QAAQ,CAACO,YAAY,IAAI,EAAE,CAAC,CAAC;IACxF;IACA,OAAOP,QAAQ;EACjB;EAEA,MAAMQ,OAAOA,CAACC,UAA6B,EAA+B;IACxE,MAAM;MAACC,CAAC;MAAEC,CAAC;MAAEC,IAAI,EAAEC;IAAC,CAAC,GAAGJ,UAAU;IAClC,MAAMK,aAAa,GAAG,MAAM,IAAI,CAACzC,OAAO,CAAC0C,MAAM,CAACF,CAAC,EAAEH,CAAC,EAAEC,CAAC,CAAC;IACxD,MAAMZ,WAAW,GAAGe,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEhB,IAAI;IACvC,IAAI,CAACC,WAAW,EAAE;MAEhB,OAAO,IAAI;IACb;IACA,OAAOA,WAAW;EACpB;EAKA,MAAME,WAAWA,CAACQ,UAA8B,EAA2B;IACzE,MAAM;MAACC,CAAC;MAAEC,CAAC;MAAEE;IAAC,CAAC,GAAGJ,UAAU,CAACO,KAAK;IAClC,MAAMhB,QAAQ,GAAG,MAAM,IAAI,CAACA,QAAQ;IACpC,QAAQA,QAAQ,CAACiB,QAAQ;MACvB,KAAK,oCAAoC;QACvC,OAAO,MAAM,IAAI,CAACC,aAAa,CAAC;UAACR,CAAC;UAAEC,CAAC;UAAEC,IAAI,EAAEC,CAAC;UAAEM,MAAM,EAAE;QAAE,CAAC,CAAC;MAC9D;QACE,OAAO,MAAM,IAAI,CAACC,YAAY,CAAC;UAACV,CAAC;UAAEC,CAAC;UAAEC,IAAI,EAAEC,CAAC;UAAEM,MAAM,EAAE;QAAE,CAAC,CAAC;IAC/D;EACF;EAIA,MAAMC,YAAYA,CAACX,UAA6B,EAA6B;IAC3E,MAAMV,WAAW,GAAG,MAAM,IAAI,CAACS,OAAO,CAACC,UAAU,CAAC;IAClD,OAAOV,WAAW,GAAG,MAAM7B,WAAW,CAACmD,KAAK,CAACtB,WAAW,EAAE,IAAI,CAACuB,WAAW,CAAC,GAAG,IAAI;EACpF;EAIA,MAAMJ,aAAaA,CAACT,UAA6B,EAA2B;IAAA,IAAAc,iBAAA;IAC1E,MAAMxB,WAAW,GAAG,MAAM,IAAI,CAACS,OAAO,CAACC,UAAU,CAAC;IAClD,MAAMa,WAA6B,GAAG;MACpCE,KAAK,EAAE,eAAe;MACtBC,GAAG,EAAE;QACHC,WAAW,EAAE,OAAO;QACpBC,SAAS,EAAE;UAACjB,CAAC,EAAED,UAAU,CAACC,CAAC;UAAEC,CAAC,EAAEF,UAAU,CAACE,CAAC;UAAEE,CAAC,EAAEJ,UAAU,CAACG;QAAI,CAAC;QACjE,KAAAW,iBAAA,GAAI,IAAI,CAACD,WAAW,cAAAC,iBAAA,uBAAjBA,iBAAA,CAAwCE,GAAG;MAChD,CAAC;MACD,GAAG,IAAI,CAACH;IACV,CAAC;IAED,OAAOvB,WAAW,GAAG,MAAM5B,SAAS,CAACkD,KAAK,CAACtB,WAAW,EAAEuB,WAAW,CAAC,GAAG,IAAI;EAC7E;AACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/pmtiles",
3
- "version": "4.0.0-beta.7",
3
+ "version": "4.0.0-beta.8",
4
4
  "description": "Framework-independent loader for the pmtiles format",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -40,11 +40,11 @@
40
40
  "build-bundle": "ocular-bundle ./src/index.ts"
41
41
  },
42
42
  "dependencies": {
43
- "@loaders.gl/images": "4.0.0-beta.7",
44
- "@loaders.gl/loader-utils": "4.0.0-beta.7",
45
- "@loaders.gl/mvt": "4.0.0-beta.7",
46
- "@loaders.gl/schema": "4.0.0-beta.7",
43
+ "@loaders.gl/images": "4.0.0-beta.8",
44
+ "@loaders.gl/loader-utils": "4.0.0-beta.8",
45
+ "@loaders.gl/mvt": "4.0.0-beta.8",
46
+ "@loaders.gl/schema": "4.0.0-beta.8",
47
47
  "pmtiles": "^2.7.2"
48
48
  },
49
- "gitHead": "5b6cab0ab5d73212cfa37fa5da6e25ad7ef83fe5"
49
+ "gitHead": "ec3d1747b4c01c52a235455d6462680e711b4e19"
50
50
  }
package/src/index.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  // loaders.gl, MIT license
2
+ // Copyright (c) vis.gl contributors
2
3
 
3
4
  export type {PMTilesMetadata} from './lib/parse-pmtiles';
4
5
  export type {PMTilesSourceProps} from './pmtiles-source';
@@ -1,4 +1,5 @@
1
1
  // loaders.gl, MIT license
2
+ // Copyright (c) vis.gl contributors
2
3
 
3
4
  import type {TileJSON} from '@loaders.gl/mvt';
4
5
  import {TileJSONLoader} from '@loaders.gl/mvt';
@@ -1,4 +1,5 @@
1
1
  // loaders.gl, MIT license
2
+ // Copyright (c) vis.gl contributors
2
3
 
3
4
  import type {TileLoadParameters, GetTileParameters} from '@loaders.gl/loader-utils';
4
5
  import type {ImageType, DataSourceProps} from '@loaders.gl/loader-utils';