@loaders.gl/wkt 4.0.3 → 4.1.0-alpha.1

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/dist/dist.dev.js CHANGED
@@ -452,6 +452,7 @@ var __exports__ = (() => {
452
452
  testText: isWKT,
453
453
  options: {
454
454
  wkt: {
455
+ shape: "geojson-geometry",
455
456
  crs: true
456
457
  }
457
458
  }
@@ -728,7 +729,10 @@ var __exports__ = (() => {
728
729
  switch (shape) {
729
730
  case "binary-geometry":
730
731
  return binaryGeometry;
732
+ case "geojson-geometry":
733
+ return binaryToGeometry(binaryGeometry);
731
734
  case "geometry":
735
+ console.error('WKBLoader: "geometry" shape is deprecated, use "binary-geometry" instead');
732
736
  return binaryToGeometry(binaryGeometry);
733
737
  default:
734
738
  throw new Error(shape);
package/dist/index.cjs CHANGED
@@ -460,6 +460,7 @@ var WKTWorkerLoader = {
460
460
  testText: isWKT,
461
461
  options: {
462
462
  wkt: {
463
+ shape: "geojson-geometry",
463
464
  crs: true
464
465
  }
465
466
  }
@@ -631,7 +632,10 @@ function parseWKB(arrayBuffer, options) {
631
632
  switch (shape) {
632
633
  case "binary-geometry":
633
634
  return binaryGeometry;
635
+ case "geojson-geometry":
636
+ return (0, import_gis.binaryToGeometry)(binaryGeometry);
634
637
  case "geometry":
638
+ console.error('WKBLoader: "geometry" shape is deprecated, use "binary-geometry" instead');
635
639
  return (0, import_gis.binaryToGeometry)(binaryGeometry);
636
640
  default:
637
641
  throw new Error(shape);
@@ -857,6 +861,7 @@ var WKBWorkerLoader = {
857
861
  options: {
858
862
  wkb: {
859
863
  shape: "binary-geometry"
864
+ // 'geojson-geometry'
860
865
  }
861
866
  }
862
867
  };
@@ -1601,6 +1606,7 @@ var TWKBWorkerLoader = {
1601
1606
  options: {
1602
1607
  wkb: {
1603
1608
  shape: "binary-geometry"
1609
+ // 'geojson-geometry'
1604
1610
  }
1605
1611
  }
1606
1612
  };
@@ -1 +1 @@
1
- {"version":3,"file":"parse-wkb.d.ts","sourceRoot":"","sources":["../../src/lib/parse-wkb.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,cAAc,EAId,QAAQ,EACT,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAIpD,wBAAgB,QAAQ,CACtB,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE,gBAAgB,GACzB,cAAc,GAAG,QAAQ,CAW3B;AAED,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE,gBAAgB,GACzB,cAAc,CAoChB"}
1
+ {"version":3,"file":"parse-wkb.d.ts","sourceRoot":"","sources":["../../src/lib/parse-wkb.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,cAAc,EAId,QAAQ,EACT,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAIpD,wBAAgB,QAAQ,CACtB,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE,gBAAgB,GACzB,cAAc,GAAG,QAAQ,CAc3B;AAED,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE,gBAAgB,GACzB,cAAc,CAoChB"}
@@ -7,7 +7,10 @@ export function parseWKB(arrayBuffer, options) {
7
7
  switch (shape) {
8
8
  case 'binary-geometry':
9
9
  return binaryGeometry;
10
+ case 'geojson-geometry':
11
+ return binaryToGeometry(binaryGeometry);
10
12
  case 'geometry':
13
+ console.error('WKBLoader: "geometry" shape is deprecated, use "binary-geometry" instead');
11
14
  return binaryToGeometry(binaryGeometry);
12
15
  default:
13
16
  throw new Error(shape);
@@ -1 +1 @@
1
- {"version":3,"file":"parse-wkb.js","names":["binaryToGeometry","parseWKBHeader","WKBGeometryType","parseWKB","arrayBuffer","options","_options$wkb","binaryGeometry","parseWKBToBinary","shape","wkb","Error","dataView","DataView","wkbHeader","geometryType","dimensions","littleEndian","offset","byteOffset","Point","point","parsePoint","geometry","LineString","line","parseLineString","Polygon","polygon","parsePolygon","MultiPoint","multiPoint","parseMultiPoint","type","MultiLineString","multiLine","parseMultiLineString","MultiPolygon","multiPolygon","parseMultiPolygon","dimension","positions","Float64Array","i","getFloat64","value","size","nPoints","getUint32","pathIndices","push","Uint16Array","cumulativeSum","sum","nRings","rings","parsed","concatenatedPositions","concatTypedArrays","buffer","polygonIndices","length","primitivePolygonIndices","map","l","unshift","binaryPointGeometries","littleEndianPoint","getUint8","concatenateBinaryPointGeometries","nLines","binaryLineGeometries","littleEndianLine","concatenateBinaryLineGeometries","nPolygons","binaryPolygonGeometries","littleEndianPolygon","concatenateBinaryPolygonGeometries","lines","polygons","primitivePolygons","binaryPolygon","p","primitivePolygon","filter","x","arrays","byteLength","Uint8Array","data","j"],"sources":["../../src/lib/parse-wkb.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {\n TypedArray,\n BinaryGeometry,\n BinaryPointGeometry,\n BinaryLineGeometry,\n BinaryPolygonGeometry,\n Geometry\n} from '@loaders.gl/schema';\nimport {binaryToGeometry} from '@loaders.gl/gis';\nimport type {WKBLoaderOptions} from '../wkb-loader';\n\nimport {parseWKBHeader, WKBGeometryType} from './parse-wkb-header';\n\nexport function parseWKB(\n arrayBuffer: ArrayBuffer,\n options?: WKBLoaderOptions\n): BinaryGeometry | Geometry {\n const binaryGeometry = parseWKBToBinary(arrayBuffer, options);\n const shape = options?.wkb?.shape || 'binary-geometry';\n switch (shape) {\n case 'binary-geometry':\n return binaryGeometry;\n case 'geometry':\n return binaryToGeometry(binaryGeometry);\n default:\n throw new Error(shape);\n }\n}\n\nexport function parseWKBToBinary(\n arrayBuffer: ArrayBuffer,\n options?: WKBLoaderOptions\n): BinaryGeometry {\n const dataView = new DataView(arrayBuffer);\n\n const wkbHeader = parseWKBHeader(dataView);\n\n const {geometryType, dimensions, littleEndian} = wkbHeader;\n const offset = wkbHeader.byteOffset;\n\n switch (geometryType) {\n case WKBGeometryType.Point:\n const point = parsePoint(dataView, offset, dimensions, littleEndian);\n return point.geometry;\n case WKBGeometryType.LineString:\n const line = parseLineString(dataView, offset, dimensions, littleEndian);\n return line.geometry;\n case WKBGeometryType.Polygon:\n const polygon = parsePolygon(dataView, offset, dimensions, littleEndian);\n return polygon.geometry;\n case WKBGeometryType.MultiPoint:\n const multiPoint = parseMultiPoint(dataView, offset, dimensions, littleEndian);\n multiPoint.type = 'Point';\n return multiPoint;\n case WKBGeometryType.MultiLineString:\n const multiLine = parseMultiLineString(dataView, offset, dimensions, littleEndian);\n multiLine.type = 'LineString';\n return multiLine;\n case WKBGeometryType.MultiPolygon:\n const multiPolygon = parseMultiPolygon(dataView, offset, dimensions, littleEndian);\n multiPolygon.type = 'Polygon';\n return multiPolygon;\n // case WKBGeometryType.GeometryCollection:\n // TODO: handle GeometryCollections\n // return parseGeometryCollection(dataView, offset, dimensions, littleEndian);\n default:\n throw new Error(`WKB: Unsupported geometry type: ${geometryType}`);\n }\n}\n\n// Primitives; parse point and linear ring\nfunction parsePoint(\n dataView: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): {geometry: BinaryPointGeometry; offset: number} {\n const positions = new Float64Array(dimension);\n for (let i = 0; i < dimension; i++) {\n positions[i] = dataView.getFloat64(offset, littleEndian);\n offset += 8;\n }\n\n return {\n geometry: {type: 'Point', positions: {value: positions, size: dimension}},\n offset\n };\n}\n\nfunction parseLineString(\n dataView: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): {geometry: BinaryLineGeometry; offset: number} {\n const nPoints = dataView.getUint32(offset, littleEndian);\n offset += 4;\n\n // Instantiate array\n const positions = new Float64Array(nPoints * dimension);\n for (let i = 0; i < nPoints * dimension; i++) {\n positions[i] = dataView.getFloat64(offset, littleEndian);\n offset += 8;\n }\n\n const pathIndices = [0];\n if (nPoints > 0) {\n pathIndices.push(nPoints);\n }\n\n return {\n geometry: {\n type: 'LineString',\n positions: {value: positions, size: dimension},\n pathIndices: {value: new Uint16Array(pathIndices), size: 1}\n },\n offset\n };\n}\n\n// https://stackoverflow.com/a/55261098\nconst cumulativeSum = (sum: number) => (value: number) => (sum += value);\n\nfunction parsePolygon(\n dataView: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): {geometry: BinaryPolygonGeometry; offset: number} {\n const nRings = dataView.getUint32(offset, littleEndian);\n offset += 4;\n\n const rings: TypedArray[] = [];\n for (let i = 0; i < nRings; i++) {\n const parsed = parseLineString(dataView, offset, dimension, littleEndian);\n const {positions} = parsed.geometry;\n offset = parsed.offset;\n rings.push(positions.value);\n }\n\n const concatenatedPositions = new Float64Array(concatTypedArrays(rings).buffer);\n const polygonIndices = [0];\n if (concatenatedPositions.length > 0) {\n polygonIndices.push(concatenatedPositions.length / dimension);\n }\n const primitivePolygonIndices = rings.map((l) => l.length / dimension).map(cumulativeSum(0));\n primitivePolygonIndices.unshift(0);\n\n return {\n geometry: {\n type: 'Polygon',\n positions: {value: concatenatedPositions, size: dimension},\n polygonIndices: {\n value: new Uint16Array(polygonIndices),\n size: 1\n },\n primitivePolygonIndices: {value: new Uint16Array(primitivePolygonIndices), size: 1}\n },\n offset\n };\n}\n\nfunction parseMultiPoint(\n dataView: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): BinaryPointGeometry {\n const nPoints = dataView.getUint32(offset, littleEndian);\n offset += 4;\n\n const binaryPointGeometries: BinaryPointGeometry[] = [];\n for (let i = 0; i < nPoints; i++) {\n // Byte order for point\n const littleEndianPoint = dataView.getUint8(offset) === 1;\n offset++;\n\n // Assert point type\n if (dataView.getUint32(offset, littleEndianPoint) % 1000 !== 1) {\n throw new Error('WKB: Inner geometries of MultiPoint not of type Point');\n }\n\n offset += 4;\n\n const parsed = parsePoint(dataView, offset, dimension, littleEndianPoint);\n offset = parsed.offset;\n binaryPointGeometries.push(parsed.geometry);\n }\n\n return concatenateBinaryPointGeometries(binaryPointGeometries, dimension);\n}\n\nfunction parseMultiLineString(\n dataView: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): BinaryLineGeometry {\n const nLines = dataView.getUint32(offset, littleEndian);\n offset += 4;\n\n const binaryLineGeometries: BinaryLineGeometry[] = [];\n for (let i = 0; i < nLines; i++) {\n // Byte order for line\n const littleEndianLine = dataView.getUint8(offset) === 1;\n offset++;\n\n // Assert type LineString\n if (dataView.getUint32(offset, littleEndianLine) % 1000 !== 2) {\n throw new Error('WKB: Inner geometries of MultiLineString not of type LineString');\n }\n offset += 4;\n\n const parsed = parseLineString(dataView, offset, dimension, littleEndianLine);\n offset = parsed.offset;\n binaryLineGeometries.push(parsed.geometry);\n }\n\n return concatenateBinaryLineGeometries(binaryLineGeometries, dimension);\n}\n\nfunction parseMultiPolygon(\n dataView: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): BinaryPolygonGeometry {\n const nPolygons = dataView.getUint32(offset, littleEndian);\n offset += 4;\n\n const binaryPolygonGeometries: BinaryPolygonGeometry[] = [];\n for (let i = 0; i < nPolygons; i++) {\n // Byte order for polygon\n const littleEndianPolygon = dataView.getUint8(offset) === 1;\n offset++;\n\n // Assert type Polygon\n if (dataView.getUint32(offset, littleEndianPolygon) % 1000 !== 3) {\n throw new Error('WKB: Inner geometries of MultiPolygon not of type Polygon');\n }\n offset += 4;\n\n const parsed = parsePolygon(dataView, offset, dimension, littleEndianPolygon);\n offset = parsed.offset;\n binaryPolygonGeometries.push(parsed.geometry);\n }\n\n return concatenateBinaryPolygonGeometries(binaryPolygonGeometries, dimension);\n}\n\n// TODO - move to loaders.gl/schema/gis\n\nfunction concatenateBinaryPointGeometries(\n binaryPointGeometries: BinaryPointGeometry[],\n dimension: number\n): BinaryPointGeometry {\n const positions: TypedArray[] = binaryPointGeometries.map((geometry) => geometry.positions.value);\n const concatenatedPositions = new Float64Array(concatTypedArrays(positions).buffer);\n\n return {\n type: 'Point',\n positions: {value: concatenatedPositions, size: dimension}\n };\n}\n\nfunction concatenateBinaryLineGeometries(\n binaryLineGeometries: BinaryLineGeometry[],\n dimension: number\n): BinaryLineGeometry {\n const lines: TypedArray[] = binaryLineGeometries.map((geometry) => geometry.positions.value);\n const concatenatedPositions = new Float64Array(concatTypedArrays(lines).buffer);\n const pathIndices = lines.map((line) => line.length / dimension).map(cumulativeSum(0));\n pathIndices.unshift(0);\n\n return {\n type: 'LineString',\n positions: {value: concatenatedPositions, size: dimension},\n pathIndices: {value: new Uint16Array(pathIndices), size: 1}\n };\n}\n\nfunction concatenateBinaryPolygonGeometries(\n binaryPolygonGeometries: BinaryPolygonGeometry[],\n dimension: number\n): BinaryPolygonGeometry {\n const polygons: TypedArray[] = [];\n const primitivePolygons: TypedArray[] = [];\n\n for (const binaryPolygon of binaryPolygonGeometries) {\n const {positions, primitivePolygonIndices} = binaryPolygon;\n polygons.push(positions.value);\n primitivePolygons.push(primitivePolygonIndices.value);\n }\n\n const concatenatedPositions = new Float64Array(concatTypedArrays(polygons).buffer);\n const polygonIndices = polygons.map((p) => p.length / dimension).map(cumulativeSum(0));\n polygonIndices.unshift(0);\n\n // Combine primitivePolygonIndices from each individual polygon\n const primitivePolygonIndices = [0];\n for (const primitivePolygon of primitivePolygons) {\n primitivePolygonIndices.push(\n ...primitivePolygon\n .filter((x: number) => x > 0)\n .map((x: number) => x + primitivePolygonIndices[primitivePolygonIndices.length - 1])\n );\n }\n\n return {\n type: 'Polygon',\n positions: {value: concatenatedPositions, size: dimension},\n polygonIndices: {value: new Uint16Array(polygonIndices), size: 1},\n primitivePolygonIndices: {value: new Uint16Array(primitivePolygonIndices), size: 1}\n };\n}\n\n// TODO: remove copy; import from typed-array-utils\n// modules/math/src/geometry/typed-arrays/typed-array-utils.js\nfunction concatTypedArrays(arrays: TypedArray[]): TypedArray {\n let byteLength = 0;\n for (let i = 0; i < arrays.length; ++i) {\n byteLength += arrays[i].byteLength;\n }\n const buffer = new Uint8Array(byteLength);\n\n let byteOffset = 0;\n for (let i = 0; i < arrays.length; ++i) {\n const data = new Uint8Array(arrays[i].buffer);\n byteLength = data.length;\n for (let j = 0; j < byteLength; ++j) {\n buffer[byteOffset++] = data[j];\n }\n }\n return buffer;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"parse-wkb.js","names":["binaryToGeometry","parseWKBHeader","WKBGeometryType","parseWKB","arrayBuffer","options","_options$wkb","binaryGeometry","parseWKBToBinary","shape","wkb","console","error","Error","dataView","DataView","wkbHeader","geometryType","dimensions","littleEndian","offset","byteOffset","Point","point","parsePoint","geometry","LineString","line","parseLineString","Polygon","polygon","parsePolygon","MultiPoint","multiPoint","parseMultiPoint","type","MultiLineString","multiLine","parseMultiLineString","MultiPolygon","multiPolygon","parseMultiPolygon","dimension","positions","Float64Array","i","getFloat64","value","size","nPoints","getUint32","pathIndices","push","Uint16Array","cumulativeSum","sum","nRings","rings","parsed","concatenatedPositions","concatTypedArrays","buffer","polygonIndices","length","primitivePolygonIndices","map","l","unshift","binaryPointGeometries","littleEndianPoint","getUint8","concatenateBinaryPointGeometries","nLines","binaryLineGeometries","littleEndianLine","concatenateBinaryLineGeometries","nPolygons","binaryPolygonGeometries","littleEndianPolygon","concatenateBinaryPolygonGeometries","lines","polygons","primitivePolygons","binaryPolygon","p","primitivePolygon","filter","x","arrays","byteLength","Uint8Array","data","j"],"sources":["../../src/lib/parse-wkb.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {\n TypedArray,\n BinaryGeometry,\n BinaryPointGeometry,\n BinaryLineGeometry,\n BinaryPolygonGeometry,\n Geometry\n} from '@loaders.gl/schema';\nimport {binaryToGeometry} from '@loaders.gl/gis';\nimport type {WKBLoaderOptions} from '../wkb-loader';\n\nimport {parseWKBHeader, WKBGeometryType} from './parse-wkb-header';\n\nexport function parseWKB(\n arrayBuffer: ArrayBuffer,\n options?: WKBLoaderOptions\n): BinaryGeometry | Geometry {\n const binaryGeometry = parseWKBToBinary(arrayBuffer, options);\n const shape = options?.wkb?.shape || 'binary-geometry';\n switch (shape) {\n case 'binary-geometry':\n return binaryGeometry;\n case 'geojson-geometry':\n return binaryToGeometry(binaryGeometry);\n case 'geometry':\n console.error('WKBLoader: \"geometry\" shape is deprecated, use \"binary-geometry\" instead');\n return binaryToGeometry(binaryGeometry);\n default:\n throw new Error(shape);\n }\n}\n\nexport function parseWKBToBinary(\n arrayBuffer: ArrayBuffer,\n options?: WKBLoaderOptions\n): BinaryGeometry {\n const dataView = new DataView(arrayBuffer);\n\n const wkbHeader = parseWKBHeader(dataView);\n\n const {geometryType, dimensions, littleEndian} = wkbHeader;\n const offset = wkbHeader.byteOffset;\n\n switch (geometryType) {\n case WKBGeometryType.Point:\n const point = parsePoint(dataView, offset, dimensions, littleEndian);\n return point.geometry;\n case WKBGeometryType.LineString:\n const line = parseLineString(dataView, offset, dimensions, littleEndian);\n return line.geometry;\n case WKBGeometryType.Polygon:\n const polygon = parsePolygon(dataView, offset, dimensions, littleEndian);\n return polygon.geometry;\n case WKBGeometryType.MultiPoint:\n const multiPoint = parseMultiPoint(dataView, offset, dimensions, littleEndian);\n multiPoint.type = 'Point';\n return multiPoint;\n case WKBGeometryType.MultiLineString:\n const multiLine = parseMultiLineString(dataView, offset, dimensions, littleEndian);\n multiLine.type = 'LineString';\n return multiLine;\n case WKBGeometryType.MultiPolygon:\n const multiPolygon = parseMultiPolygon(dataView, offset, dimensions, littleEndian);\n multiPolygon.type = 'Polygon';\n return multiPolygon;\n // case WKBGeometryType.GeometryCollection:\n // TODO: handle GeometryCollections\n // return parseGeometryCollection(dataView, offset, dimensions, littleEndian);\n default:\n throw new Error(`WKB: Unsupported geometry type: ${geometryType}`);\n }\n}\n\n// Primitives; parse point and linear ring\nfunction parsePoint(\n dataView: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): {geometry: BinaryPointGeometry; offset: number} {\n const positions = new Float64Array(dimension);\n for (let i = 0; i < dimension; i++) {\n positions[i] = dataView.getFloat64(offset, littleEndian);\n offset += 8;\n }\n\n return {\n geometry: {type: 'Point', positions: {value: positions, size: dimension}},\n offset\n };\n}\n\nfunction parseLineString(\n dataView: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): {geometry: BinaryLineGeometry; offset: number} {\n const nPoints = dataView.getUint32(offset, littleEndian);\n offset += 4;\n\n // Instantiate array\n const positions = new Float64Array(nPoints * dimension);\n for (let i = 0; i < nPoints * dimension; i++) {\n positions[i] = dataView.getFloat64(offset, littleEndian);\n offset += 8;\n }\n\n const pathIndices = [0];\n if (nPoints > 0) {\n pathIndices.push(nPoints);\n }\n\n return {\n geometry: {\n type: 'LineString',\n positions: {value: positions, size: dimension},\n pathIndices: {value: new Uint16Array(pathIndices), size: 1}\n },\n offset\n };\n}\n\n// https://stackoverflow.com/a/55261098\nconst cumulativeSum = (sum: number) => (value: number) => (sum += value);\n\nfunction parsePolygon(\n dataView: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): {geometry: BinaryPolygonGeometry; offset: number} {\n const nRings = dataView.getUint32(offset, littleEndian);\n offset += 4;\n\n const rings: TypedArray[] = [];\n for (let i = 0; i < nRings; i++) {\n const parsed = parseLineString(dataView, offset, dimension, littleEndian);\n const {positions} = parsed.geometry;\n offset = parsed.offset;\n rings.push(positions.value);\n }\n\n const concatenatedPositions = new Float64Array(concatTypedArrays(rings).buffer);\n const polygonIndices = [0];\n if (concatenatedPositions.length > 0) {\n polygonIndices.push(concatenatedPositions.length / dimension);\n }\n const primitivePolygonIndices = rings.map((l) => l.length / dimension).map(cumulativeSum(0));\n primitivePolygonIndices.unshift(0);\n\n return {\n geometry: {\n type: 'Polygon',\n positions: {value: concatenatedPositions, size: dimension},\n polygonIndices: {\n value: new Uint16Array(polygonIndices),\n size: 1\n },\n primitivePolygonIndices: {value: new Uint16Array(primitivePolygonIndices), size: 1}\n },\n offset\n };\n}\n\nfunction parseMultiPoint(\n dataView: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): BinaryPointGeometry {\n const nPoints = dataView.getUint32(offset, littleEndian);\n offset += 4;\n\n const binaryPointGeometries: BinaryPointGeometry[] = [];\n for (let i = 0; i < nPoints; i++) {\n // Byte order for point\n const littleEndianPoint = dataView.getUint8(offset) === 1;\n offset++;\n\n // Assert point type\n if (dataView.getUint32(offset, littleEndianPoint) % 1000 !== 1) {\n throw new Error('WKB: Inner geometries of MultiPoint not of type Point');\n }\n\n offset += 4;\n\n const parsed = parsePoint(dataView, offset, dimension, littleEndianPoint);\n offset = parsed.offset;\n binaryPointGeometries.push(parsed.geometry);\n }\n\n return concatenateBinaryPointGeometries(binaryPointGeometries, dimension);\n}\n\nfunction parseMultiLineString(\n dataView: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): BinaryLineGeometry {\n const nLines = dataView.getUint32(offset, littleEndian);\n offset += 4;\n\n const binaryLineGeometries: BinaryLineGeometry[] = [];\n for (let i = 0; i < nLines; i++) {\n // Byte order for line\n const littleEndianLine = dataView.getUint8(offset) === 1;\n offset++;\n\n // Assert type LineString\n if (dataView.getUint32(offset, littleEndianLine) % 1000 !== 2) {\n throw new Error('WKB: Inner geometries of MultiLineString not of type LineString');\n }\n offset += 4;\n\n const parsed = parseLineString(dataView, offset, dimension, littleEndianLine);\n offset = parsed.offset;\n binaryLineGeometries.push(parsed.geometry);\n }\n\n return concatenateBinaryLineGeometries(binaryLineGeometries, dimension);\n}\n\nfunction parseMultiPolygon(\n dataView: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): BinaryPolygonGeometry {\n const nPolygons = dataView.getUint32(offset, littleEndian);\n offset += 4;\n\n const binaryPolygonGeometries: BinaryPolygonGeometry[] = [];\n for (let i = 0; i < nPolygons; i++) {\n // Byte order for polygon\n const littleEndianPolygon = dataView.getUint8(offset) === 1;\n offset++;\n\n // Assert type Polygon\n if (dataView.getUint32(offset, littleEndianPolygon) % 1000 !== 3) {\n throw new Error('WKB: Inner geometries of MultiPolygon not of type Polygon');\n }\n offset += 4;\n\n const parsed = parsePolygon(dataView, offset, dimension, littleEndianPolygon);\n offset = parsed.offset;\n binaryPolygonGeometries.push(parsed.geometry);\n }\n\n return concatenateBinaryPolygonGeometries(binaryPolygonGeometries, dimension);\n}\n\n// TODO - move to loaders.gl/schema/gis\n\nfunction concatenateBinaryPointGeometries(\n binaryPointGeometries: BinaryPointGeometry[],\n dimension: number\n): BinaryPointGeometry {\n const positions: TypedArray[] = binaryPointGeometries.map((geometry) => geometry.positions.value);\n const concatenatedPositions = new Float64Array(concatTypedArrays(positions).buffer);\n\n return {\n type: 'Point',\n positions: {value: concatenatedPositions, size: dimension}\n };\n}\n\nfunction concatenateBinaryLineGeometries(\n binaryLineGeometries: BinaryLineGeometry[],\n dimension: number\n): BinaryLineGeometry {\n const lines: TypedArray[] = binaryLineGeometries.map((geometry) => geometry.positions.value);\n const concatenatedPositions = new Float64Array(concatTypedArrays(lines).buffer);\n const pathIndices = lines.map((line) => line.length / dimension).map(cumulativeSum(0));\n pathIndices.unshift(0);\n\n return {\n type: 'LineString',\n positions: {value: concatenatedPositions, size: dimension},\n pathIndices: {value: new Uint16Array(pathIndices), size: 1}\n };\n}\n\nfunction concatenateBinaryPolygonGeometries(\n binaryPolygonGeometries: BinaryPolygonGeometry[],\n dimension: number\n): BinaryPolygonGeometry {\n const polygons: TypedArray[] = [];\n const primitivePolygons: TypedArray[] = [];\n\n for (const binaryPolygon of binaryPolygonGeometries) {\n const {positions, primitivePolygonIndices} = binaryPolygon;\n polygons.push(positions.value);\n primitivePolygons.push(primitivePolygonIndices.value);\n }\n\n const concatenatedPositions = new Float64Array(concatTypedArrays(polygons).buffer);\n const polygonIndices = polygons.map((p) => p.length / dimension).map(cumulativeSum(0));\n polygonIndices.unshift(0);\n\n // Combine primitivePolygonIndices from each individual polygon\n const primitivePolygonIndices = [0];\n for (const primitivePolygon of primitivePolygons) {\n primitivePolygonIndices.push(\n ...primitivePolygon\n .filter((x: number) => x > 0)\n .map((x: number) => x + primitivePolygonIndices[primitivePolygonIndices.length - 1])\n );\n }\n\n return {\n type: 'Polygon',\n positions: {value: concatenatedPositions, size: dimension},\n polygonIndices: {value: new Uint16Array(polygonIndices), size: 1},\n primitivePolygonIndices: {value: new Uint16Array(primitivePolygonIndices), size: 1}\n };\n}\n\n// TODO: remove copy; import from typed-array-utils\n// modules/math/src/geometry/typed-arrays/typed-array-utils.js\nfunction concatTypedArrays(arrays: TypedArray[]): TypedArray {\n let byteLength = 0;\n for (let i = 0; i < arrays.length; ++i) {\n byteLength += arrays[i].byteLength;\n }\n const buffer = new Uint8Array(byteLength);\n\n let byteOffset = 0;\n for (let i = 0; i < arrays.length; ++i) {\n const data = new Uint8Array(arrays[i].buffer);\n byteLength = data.length;\n for (let j = 0; j < byteLength; ++j) {\n buffer[byteOffset++] = data[j];\n }\n }\n return buffer;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"base64-encoder.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/base64-encoder.ts"],"names":[],"mappings":"AAsBA,qBAAa,aAAa;IACxB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM;IAI3C,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,WAAW;CAC/C"}
1
+ {"version":3,"file":"base64-encoder.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/base64-encoder.ts"],"names":[],"mappings":"AAyBA,qBAAa,aAAa;IACxB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM;IAI3C,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,WAAW;CAC/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"base64-encoder.js","names":["Base64Encoder","getDecodedLength","array","Math","ceil","byteLength","decode","target"],"sources":["../../../src/lib/utils/base64-encoder.ts"],"sourcesContent":["/* \nconst binary_to_b64_map = [\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I',\n 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R',\n 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a',\n 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',\n 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',\n 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1',\n '2', '3', '4', '5', '6', '7', '8', '9', '+',\n '/', '='\n];\nconst b64_to_binary_map = {\n '0': 52, '1': 53, '2': 54, '3': 55, '4': 56, '5': 57, '6': 58, '7': 59, '8': 60, '9': 61,\n A: 0, B: 1, C: 2, D: 3, E: 4, F: 5, G: 6, H: 7, I: 8, J: 9, K: 10, L: 11, M: 12, N: 13, O: 14,\n P: 15, Q: 16, R: 17, S: 18, T: 19, U: 20, V: 21, W: 22, X: 23, Y: 24, Z: 25, a: 26, b: 27,\n c: 28, d: 29, e: 30, f: 31, g: 32, h: 33, i: 34, j: 35, k: 36, l: 37, m: 38, n: 39, o: 40,\n p: 41, q: 42, r: 43, s: 44, t: 45, u: 46, v: 47, w: 48, x: 49, y: 50, z: 51, '+': 62, '/': 63,\n '=': 64\n};\n\n*/\n\nexport class Base64Encoder {\n getDecodedLength(array: Uint8Array): number {\n return Math.ceil(array.byteLength / 4) * 3;\n }\n\n decode(array: Uint8Array, target?: ArrayBuffer) {} // eslint-disable-line\n}\n\n/*\n\n//generates an array iterator that returns 3 elements at a time. Use to loop through the Uint8Array Array Buffer\n// to be converted to Base64. (binary array buffer) 8bits * 3 = 6bits * 4 (base64 representation)\nconst generateTripleIterator = (arr) => {\n return {\n *[Symbol.iterator]() {\n for(let n = 0; n < arr.length; n+=3) {\n let result = [];\n result.push(arr[n]);\n\n if(n+1 < arr.length)\n result.push(arr[n+1]);\n if(n+2 < arr.length)\n result.push(arr[n+2]);\n\n yield result;\n }\n }\n };\n};\n\n//generates an array iterator that returns 4 elements at a time. Use to loop through\n// Base64 string because Base64 string is multiples of 4 characters.\nconst generateQuadrupleIterator = (arr) => {\n return {\n *[Symbol.iterator]() {\n for(let n = 0; n < arr.length; n+=4) {\n yield [...arr.slice(n, n+4)];\n }\n }\n };\n};\n\n// Converts a triple of 8 bits into a quadruple of 6 bits. use to convert binary to base64 representation\nconst tripleConvert = (first, second, third) => {\n let [] = triple;\n let binary = null, a = null, b = null, c = null, d = null;\n if (triple.length === 1) {\n binary = (first << 4);\n a = ((binary & 4032) >>> 6);\n b = (binary & 63);\n c = 64;\n d = 64;\n } else if (triple.length === 2) {\n binary = ((first << 10) | (second << 2));\n a = ((binary & 258048) >>> 12);\n b = ((binary & 4032) >>> 6);\n c = (binary & 63);\n d = 64;\n } else {\n binary = ((first << 16) | (second << 8) | third);\n a = ((binary & 16515072) >>> 18);\n b = ((binary & 258048) >>> 12);\n c = ((binary & 4032) >>> 6);\n d = (binary & 63);\n }\n\n return [a, b, c, d];\n};\n\n// Converts a quadruple of 6 bits into a triple of 8 bits. use to convert base64 representation into binary\nconst quadrupleConvert = (quadruple) => {\n let [a, b, c, d] = quadruple;\n let binary = null, first = null, second = null, third = null;\n\n if(c === 64 && d === 64) {\n //two padding\n binary = ((a << 6) | b);\n first = (binary >> 4); //shift off 4 bits, 2 bits per padding\n } else if(d === 64) {\n //one padding\n binary = ((a << 12) | (b << 6) | c );\n binary = (binary >> 2); //shift off 2 bits\n first = binary >> 8;\n second = ((binary << 24) >>> 24);\n } else {\n //no padding\n binary = ((a << 18) | (b << 12) | (c << 6) | d );\n first = (binary >>> 16);\n second = ((binary << 16) >>> 24);\n third = ((binary << 24) >>> 24);\n }\n\n return [first, second, third];\n};\n\n// Convert 8Bits Array Buffer to Base64 string\nexport const ab2b64 = (buffer) => {\n const b64strArray = [];\n const view = new Uint8Array(buffer);\n let iterator = generateTripleIterator(view);\n for(let triple of iterator) {\n b64strArray.push(...tripleConvert(triple));\n }\n return b64strArray.map(b64CharCodePoint => binary_to_b64_map[b64CharCodePoint]).join(\"\");\n};\n\n// Convert Base64 String to 8Bits Array Buffer\nexport const b642ab = (b64str) => {\n let buffer_length = (b64str.length / 4) * 3;\n if(b64str.slice(-2) === '==') {\n buffer_length -= 2;\n } else if(b64str.slice(-1) === '=') {\n buffer_length -= 1;\n }\n\n let buffer = new ArrayBuffer(buffer_length);\n const view = new Uint8Array(buffer);\n let iterator = generateQuadrupleIterator(b64str.split(\"\").map(b64char => b64_to_binary_map[b64char]));\n let byteIndex = 0;\n for(let quadruple of iterator) {\n quadrupleConvert(quadruple).forEach(byte => {\n if(byte != null) {\n view[byteIndex] = byte;\n byteIndex++;\n }\n });\n }\n return buffer;\n};\n\n*/\n"],"mappings":"AAsBA,OAAO,MAAMA,aAAa,CAAC;EACzBC,gBAAgBA,CAACC,KAAiB,EAAU;IAC1C,OAAOC,IAAI,CAACC,IAAI,CAACF,KAAK,CAACG,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC;EAC5C;EAEAC,MAAMA,CAACJ,KAAiB,EAAEK,MAAoB,EAAE,CAAC;AACnD"}
1
+ {"version":3,"file":"base64-encoder.js","names":["Base64Encoder","getDecodedLength","array","Math","ceil","byteLength","decode","target"],"sources":["../../../src/lib/utils/base64-encoder.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\n/* \nconst binary_to_b64_map = [\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I',\n 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R',\n 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a',\n 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',\n 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',\n 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1',\n '2', '3', '4', '5', '6', '7', '8', '9', '+',\n '/', '='\n];\nconst b64_to_binary_map = {\n '0': 52, '1': 53, '2': 54, '3': 55, '4': 56, '5': 57, '6': 58, '7': 59, '8': 60, '9': 61,\n A: 0, B: 1, C: 2, D: 3, E: 4, F: 5, G: 6, H: 7, I: 8, J: 9, K: 10, L: 11, M: 12, N: 13, O: 14,\n P: 15, Q: 16, R: 17, S: 18, T: 19, U: 20, V: 21, W: 22, X: 23, Y: 24, Z: 25, a: 26, b: 27,\n c: 28, d: 29, e: 30, f: 31, g: 32, h: 33, i: 34, j: 35, k: 36, l: 37, m: 38, n: 39, o: 40,\n p: 41, q: 42, r: 43, s: 44, t: 45, u: 46, v: 47, w: 48, x: 49, y: 50, z: 51, '+': 62, '/': 63,\n '=': 64\n};\n\n*/\n\nexport class Base64Encoder {\n getDecodedLength(array: Uint8Array): number {\n return Math.ceil(array.byteLength / 4) * 3;\n }\n\n decode(array: Uint8Array, target?: ArrayBuffer) {} // eslint-disable-line\n}\n\n/*\n\n//generates an array iterator that returns 3 elements at a time. Use to loop through the Uint8Array Array Buffer\n// to be converted to Base64. (binary array buffer) 8bits * 3 = 6bits * 4 (base64 representation)\nconst generateTripleIterator = (arr) => {\n return {\n *[Symbol.iterator]() {\n for(let n = 0; n < arr.length; n+=3) {\n let result = [];\n result.push(arr[n]);\n\n if(n+1 < arr.length)\n result.push(arr[n+1]);\n if(n+2 < arr.length)\n result.push(arr[n+2]);\n\n yield result;\n }\n }\n };\n};\n\n//generates an array iterator that returns 4 elements at a time. Use to loop through\n// Base64 string because Base64 string is multiples of 4 characters.\nconst generateQuadrupleIterator = (arr) => {\n return {\n *[Symbol.iterator]() {\n for(let n = 0; n < arr.length; n+=4) {\n yield [...arr.slice(n, n+4)];\n }\n }\n };\n};\n\n// Converts a triple of 8 bits into a quadruple of 6 bits. use to convert binary to base64 representation\nconst tripleConvert = (first, second, third) => {\n let [] = triple;\n let binary = null, a = null, b = null, c = null, d = null;\n if (triple.length === 1) {\n binary = (first << 4);\n a = ((binary & 4032) >>> 6);\n b = (binary & 63);\n c = 64;\n d = 64;\n } else if (triple.length === 2) {\n binary = ((first << 10) | (second << 2));\n a = ((binary & 258048) >>> 12);\n b = ((binary & 4032) >>> 6);\n c = (binary & 63);\n d = 64;\n } else {\n binary = ((first << 16) | (second << 8) | third);\n a = ((binary & 16515072) >>> 18);\n b = ((binary & 258048) >>> 12);\n c = ((binary & 4032) >>> 6);\n d = (binary & 63);\n }\n\n return [a, b, c, d];\n};\n\n// Converts a quadruple of 6 bits into a triple of 8 bits. use to convert base64 representation into binary\nconst quadrupleConvert = (quadruple) => {\n let [a, b, c, d] = quadruple;\n let binary = null, first = null, second = null, third = null;\n\n if(c === 64 && d === 64) {\n //two padding\n binary = ((a << 6) | b);\n first = (binary >> 4); //shift off 4 bits, 2 bits per padding\n } else if(d === 64) {\n //one padding\n binary = ((a << 12) | (b << 6) | c );\n binary = (binary >> 2); //shift off 2 bits\n first = binary >> 8;\n second = ((binary << 24) >>> 24);\n } else {\n //no padding\n binary = ((a << 18) | (b << 12) | (c << 6) | d );\n first = (binary >>> 16);\n second = ((binary << 16) >>> 24);\n third = ((binary << 24) >>> 24);\n }\n\n return [first, second, third];\n};\n\n// Convert 8Bits Array Buffer to Base64 string\nexport const ab2b64 = (buffer) => {\n const b64strArray = [];\n const view = new Uint8Array(buffer);\n let iterator = generateTripleIterator(view);\n for(let triple of iterator) {\n b64strArray.push(...tripleConvert(triple));\n }\n return b64strArray.map(b64CharCodePoint => binary_to_b64_map[b64CharCodePoint]).join(\"\");\n};\n\n// Convert Base64 String to 8Bits Array Buffer\nexport const b642ab = (b64str) => {\n let buffer_length = (b64str.length / 4) * 3;\n if(b64str.slice(-2) === '==') {\n buffer_length -= 2;\n } else if(b64str.slice(-1) === '=') {\n buffer_length -= 1;\n }\n\n let buffer = new ArrayBuffer(buffer_length);\n const view = new Uint8Array(buffer);\n let iterator = generateQuadrupleIterator(b64str.split(\"\").map(b64char => b64_to_binary_map[b64char]));\n let byteIndex = 0;\n for(let quadruple of iterator) {\n quadrupleConvert(quadruple).forEach(byte => {\n if(byte != null) {\n view[byteIndex] = byte;\n byteIndex++;\n }\n });\n }\n return buffer;\n};\n\n*/\n"],"mappings":"AAyBA,OAAO,MAAMA,aAAa,CAAC;EACzBC,gBAAgBA,CAACC,KAAiB,EAAU;IAC1C,OAAOC,IAAI,CAACC,IAAI,CAACF,KAAK,CAACG,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC;EAC5C;EAEAC,MAAMA,CAACJ,KAAiB,EAAEK,MAAoB,EAAE,CAAC;AACnD"}
@@ -1 +1 @@
1
- {"version":3,"file":"binary-reader.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/binary-reader.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,qBAAa,YAAY;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;gBAEV,WAAW,EAAE,WAAW,EAAE,WAAW,GAAE,OAAe;IAOlE,SAAS;IAKT,UAAU;IAKV,UAAU;IAKV,QAAQ;IAKR,SAAS;IAKT,SAAS;IAKT,SAAS;IAKT,UAAU;IAMV,UAAU;CAgBX"}
1
+ {"version":3,"file":"binary-reader.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/binary-reader.ts"],"names":[],"mappings":"AAGA,uDAAuD;AACvD,qBAAa,YAAY;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;gBAEV,WAAW,EAAE,WAAW,EAAE,WAAW,GAAE,OAAe;IAOlE,SAAS;IAKT,UAAU;IAKV,UAAU;IAKV,QAAQ;IAKR,SAAS;IAKT,SAAS;IAKT,SAAS;IAKT,UAAU;IAMV,UAAU;CAgBX"}
@@ -1 +1 @@
1
- {"version":3,"file":"binary-reader.js","names":["BinaryReader","constructor","arrayBuffer","isBigEndian","arguments","length","undefined","dataView","byteOffset","littleEndian","DataView","readUInt8","value","getUint8","readUInt16","getUint16","readUInt32","getUint32","readInt8","getInt8","readInt16","getInt16","readInt32","getInt32","readFloat","getFloat32","readDouble","getFloat64","readVarInt","result","bytesRead","nextByte"],"sources":["../../../src/lib/utils/binary-reader.ts"],"sourcesContent":["/** A DataView that tracks byte offset when reading. */\nexport class BinaryReader {\n arrayBuffer: ArrayBuffer;\n dataView: DataView;\n byteOffset: number;\n littleEndian: boolean;\n\n constructor(arrayBuffer: ArrayBuffer, isBigEndian: boolean = false) {\n this.arrayBuffer = arrayBuffer;\n this.dataView = new DataView(arrayBuffer);\n this.byteOffset = 0;\n this.littleEndian = !isBigEndian;\n }\n\n readUInt8() {\n const value = this.dataView.getUint8(this.byteOffset);\n this.byteOffset += 1;\n return value;\n }\n readUInt16() {\n const value = this.dataView.getUint16(this.byteOffset, this.littleEndian);\n this.byteOffset += 2;\n return value;\n }\n readUInt32() {\n const value = this.dataView.getUint32(this.byteOffset, this.littleEndian);\n this.byteOffset += 4;\n return value;\n }\n readInt8() {\n const value = this.dataView.getInt8(this.byteOffset);\n this.byteOffset += 1;\n return value;\n }\n readInt16() {\n const value = this.dataView.getInt16(this.byteOffset, this.littleEndian);\n this.byteOffset += 2;\n return value;\n }\n readInt32() {\n const value = this.dataView.getInt32(this.byteOffset, this.littleEndian);\n this.byteOffset += 4;\n return value;\n }\n readFloat() {\n const value = this.dataView.getFloat32(this.byteOffset, this.littleEndian);\n this.byteOffset += 4;\n return value;\n }\n readDouble() {\n const value = this.dataView.getFloat64(this.byteOffset, this.littleEndian);\n this.byteOffset += 8;\n return value;\n }\n\n readVarInt() {\n let result = 0;\n let bytesRead = 0;\n\n let nextByte;\n do {\n // TODO - this needs to be accessed via data view?\n nextByte = this.dataView.getUint8(this.byteOffset + bytesRead);\n result += (nextByte & 0x7f) << (7 * bytesRead);\n bytesRead++;\n } while (nextByte >= 0x80);\n\n this.byteOffset += bytesRead;\n\n return result;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"binary-reader.js","names":["BinaryReader","constructor","arrayBuffer","isBigEndian","arguments","length","undefined","dataView","byteOffset","littleEndian","DataView","readUInt8","value","getUint8","readUInt16","getUint16","readUInt32","getUint32","readInt8","getInt8","readInt16","getInt16","readInt32","getInt32","readFloat","getFloat32","readDouble","getFloat64","readVarInt","result","bytesRead","nextByte"],"sources":["../../../src/lib/utils/binary-reader.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\n/** A DataView that tracks byte offset when reading. */\nexport class BinaryReader {\n arrayBuffer: ArrayBuffer;\n dataView: DataView;\n byteOffset: number;\n littleEndian: boolean;\n\n constructor(arrayBuffer: ArrayBuffer, isBigEndian: boolean = false) {\n this.arrayBuffer = arrayBuffer;\n this.dataView = new DataView(arrayBuffer);\n this.byteOffset = 0;\n this.littleEndian = !isBigEndian;\n }\n\n readUInt8() {\n const value = this.dataView.getUint8(this.byteOffset);\n this.byteOffset += 1;\n return value;\n }\n readUInt16() {\n const value = this.dataView.getUint16(this.byteOffset, this.littleEndian);\n this.byteOffset += 2;\n return value;\n }\n readUInt32() {\n const value = this.dataView.getUint32(this.byteOffset, this.littleEndian);\n this.byteOffset += 4;\n return value;\n }\n readInt8() {\n const value = this.dataView.getInt8(this.byteOffset);\n this.byteOffset += 1;\n return value;\n }\n readInt16() {\n const value = this.dataView.getInt16(this.byteOffset, this.littleEndian);\n this.byteOffset += 2;\n return value;\n }\n readInt32() {\n const value = this.dataView.getInt32(this.byteOffset, this.littleEndian);\n this.byteOffset += 4;\n return value;\n }\n readFloat() {\n const value = this.dataView.getFloat32(this.byteOffset, this.littleEndian);\n this.byteOffset += 4;\n return value;\n }\n readDouble() {\n const value = this.dataView.getFloat64(this.byteOffset, this.littleEndian);\n this.byteOffset += 8;\n return value;\n }\n\n readVarInt() {\n let result = 0;\n let bytesRead = 0;\n\n let nextByte;\n do {\n // TODO - this needs to be accessed via data view?\n nextByte = this.dataView.getUint8(this.byteOffset + bytesRead);\n result += (nextByte & 0x7f) << (7 * bytesRead);\n bytesRead++;\n } while (nextByte >= 0x80);\n\n this.byteOffset += bytesRead;\n\n return result;\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hex-transcoder.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/hex-transcoder.ts"],"names":[],"mappings":"AAiBA;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAQnD;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAUpD"}
1
+ {"version":3,"file":"hex-transcoder.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/hex-transcoder.ts"],"names":[],"mappings":"AAoBA;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAQnD;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAUpD"}
@@ -1 +1 @@
1
- {"version":3,"file":"hex-transcoder.js","names":["alphabet","encodeLookup","decodeLookup","i","encodeHex","array","length","string","decodeHex","sizeof","Uint8Array","n","charCodeAt"],"sources":["../../../src/lib/utils/hex-transcoder.ts"],"sourcesContent":["// Forked from https://github.com/jessetane/hex-transcoder under MIT license\n\nconst alphabet = '0123456789abcdef';\nconst encodeLookup: string[] = [];\nconst decodeLookup: number[] = [];\n\nfor (let i = 0; i < 256; i++) {\n encodeLookup[i] = alphabet[(i >> 4) & 0xf] + alphabet[i & 0xf];\n if (i < 16) {\n if (i < 10) {\n decodeLookup[0x30 + i] = i;\n } else {\n decodeLookup[0x61 - 10 + i] = i;\n }\n }\n}\n\n/**\n * Encode a Uint8Array to a hex string\n *\n * @param array Bytes to encode to string\n * @return hex string\n */\nexport function encodeHex(array: Uint8Array): string {\n const length = array.length;\n let string = '';\n let i = 0;\n while (i < length) {\n string += encodeLookup[array[i++]];\n }\n return string;\n}\n\n/**\n * Decodes a hex string to a Uint8Array\n *\n * @param string hex string to decode to Uint8Array\n * @return Uint8Array\n */\nexport function decodeHex(string: string): Uint8Array {\n const sizeof = string.length >> 1;\n const length = sizeof << 1;\n const array = new Uint8Array(sizeof);\n let n = 0;\n let i = 0;\n while (i < length) {\n array[n++] = (decodeLookup[string.charCodeAt(i++)] << 4) | decodeLookup[string.charCodeAt(i++)];\n }\n return array;\n}\n"],"mappings":"AAEA,MAAMA,QAAQ,GAAG,kBAAkB;AACnC,MAAMC,YAAsB,GAAG,EAAE;AACjC,MAAMC,YAAsB,GAAG,EAAE;AAEjC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,GAAG,EAAEA,CAAC,EAAE,EAAE;EAC5BF,YAAY,CAACE,CAAC,CAAC,GAAGH,QAAQ,CAAEG,CAAC,IAAI,CAAC,GAAI,GAAG,CAAC,GAAGH,QAAQ,CAACG,CAAC,GAAG,GAAG,CAAC;EAC9D,IAAIA,CAAC,GAAG,EAAE,EAAE;IACV,IAAIA,CAAC,GAAG,EAAE,EAAE;MACVD,YAAY,CAAC,IAAI,GAAGC,CAAC,CAAC,GAAGA,CAAC;IAC5B,CAAC,MAAM;MACLD,YAAY,CAAC,IAAI,GAAG,EAAE,GAAGC,CAAC,CAAC,GAAGA,CAAC;IACjC;EACF;AACF;AAQA,OAAO,SAASC,SAASA,CAACC,KAAiB,EAAU;EACnD,MAAMC,MAAM,GAAGD,KAAK,CAACC,MAAM;EAC3B,IAAIC,MAAM,GAAG,EAAE;EACf,IAAIJ,CAAC,GAAG,CAAC;EACT,OAAOA,CAAC,GAAGG,MAAM,EAAE;IACjBC,MAAM,IAAIN,YAAY,CAACI,KAAK,CAACF,CAAC,EAAE,CAAC,CAAC;EACpC;EACA,OAAOI,MAAM;AACf;AAQA,OAAO,SAASC,SAASA,CAACD,MAAc,EAAc;EACpD,MAAME,MAAM,GAAGF,MAAM,CAACD,MAAM,IAAI,CAAC;EACjC,MAAMA,MAAM,GAAGG,MAAM,IAAI,CAAC;EAC1B,MAAMJ,KAAK,GAAG,IAAIK,UAAU,CAACD,MAAM,CAAC;EACpC,IAAIE,CAAC,GAAG,CAAC;EACT,IAAIR,CAAC,GAAG,CAAC;EACT,OAAOA,CAAC,GAAGG,MAAM,EAAE;IACjBD,KAAK,CAACM,CAAC,EAAE,CAAC,GAAIT,YAAY,CAACK,MAAM,CAACK,UAAU,CAACT,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAID,YAAY,CAACK,MAAM,CAACK,UAAU,CAACT,CAAC,EAAE,CAAC,CAAC;EACjG;EACA,OAAOE,KAAK;AACd"}
1
+ {"version":3,"file":"hex-transcoder.js","names":["alphabet","encodeLookup","decodeLookup","i","encodeHex","array","length","string","decodeHex","sizeof","Uint8Array","n","charCodeAt"],"sources":["../../../src/lib/utils/hex-transcoder.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\n// Forked from https://github.com/jessetane/hex-transcoder under MIT license\n\nconst alphabet = '0123456789abcdef';\nconst encodeLookup: string[] = [];\nconst decodeLookup: number[] = [];\n\nfor (let i = 0; i < 256; i++) {\n encodeLookup[i] = alphabet[(i >> 4) & 0xf] + alphabet[i & 0xf];\n if (i < 16) {\n if (i < 10) {\n decodeLookup[0x30 + i] = i;\n } else {\n decodeLookup[0x61 - 10 + i] = i;\n }\n }\n}\n\n/**\n * Encode a Uint8Array to a hex string\n *\n * @param array Bytes to encode to string\n * @return hex string\n */\nexport function encodeHex(array: Uint8Array): string {\n const length = array.length;\n let string = '';\n let i = 0;\n while (i < length) {\n string += encodeLookup[array[i++]];\n }\n return string;\n}\n\n/**\n * Decodes a hex string to a Uint8Array\n *\n * @param string hex string to decode to Uint8Array\n * @return Uint8Array\n */\nexport function decodeHex(string: string): Uint8Array {\n const sizeof = string.length >> 1;\n const length = sizeof << 1;\n const array = new Uint8Array(sizeof);\n let n = 0;\n let i = 0;\n while (i < length) {\n array[n++] = (decodeLookup[string.charCodeAt(i++)] << 4) | decodeLookup[string.charCodeAt(i++)];\n }\n return array;\n}\n"],"mappings":"AAKA,MAAMA,QAAQ,GAAG,kBAAkB;AACnC,MAAMC,YAAsB,GAAG,EAAE;AACjC,MAAMC,YAAsB,GAAG,EAAE;AAEjC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,GAAG,EAAEA,CAAC,EAAE,EAAE;EAC5BF,YAAY,CAACE,CAAC,CAAC,GAAGH,QAAQ,CAAEG,CAAC,IAAI,CAAC,GAAI,GAAG,CAAC,GAAGH,QAAQ,CAACG,CAAC,GAAG,GAAG,CAAC;EAC9D,IAAIA,CAAC,GAAG,EAAE,EAAE;IACV,IAAIA,CAAC,GAAG,EAAE,EAAE;MACVD,YAAY,CAAC,IAAI,GAAGC,CAAC,CAAC,GAAGA,CAAC;IAC5B,CAAC,MAAM;MACLD,YAAY,CAAC,IAAI,GAAG,EAAE,GAAGC,CAAC,CAAC,GAAGA,CAAC;IACjC;EACF;AACF;AAQA,OAAO,SAASC,SAASA,CAACC,KAAiB,EAAU;EACnD,MAAMC,MAAM,GAAGD,KAAK,CAACC,MAAM;EAC3B,IAAIC,MAAM,GAAG,EAAE;EACf,IAAIJ,CAAC,GAAG,CAAC;EACT,OAAOA,CAAC,GAAGG,MAAM,EAAE;IACjBC,MAAM,IAAIN,YAAY,CAACI,KAAK,CAACF,CAAC,EAAE,CAAC,CAAC;EACpC;EACA,OAAOI,MAAM;AACf;AAQA,OAAO,SAASC,SAASA,CAACD,MAAc,EAAc;EACpD,MAAME,MAAM,GAAGF,MAAM,CAACD,MAAM,IAAI,CAAC;EACjC,MAAMA,MAAM,GAAGG,MAAM,IAAI,CAAC;EAC1B,MAAMJ,KAAK,GAAG,IAAIK,UAAU,CAACD,MAAM,CAAC;EACpC,IAAIE,CAAC,GAAG,CAAC;EACT,IAAIR,CAAC,GAAG,CAAC;EACT,OAAOA,CAAC,GAAGG,MAAM,EAAE;IACjBD,KAAK,CAACM,CAAC,EAAE,CAAC,GAAIT,YAAY,CAACK,MAAM,CAACK,UAAU,CAACT,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAID,YAAY,CAACK,MAAM,CAACK,UAAU,CAACT,CAAC,EAAE,CAAC,CAAC;EACjG;EACA,OAAOE,KAAK;AACd"}
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/version.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,KAA8D,CAAC"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/version.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,OAAO,KAA8D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","names":["VERSION","__VERSION__"],"sources":["../../../src/lib/utils/version.ts"],"sourcesContent":["// Version constant cannot be imported, it needs to correspond to the build version of **this** module.\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nexport const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n"],"mappings":"AAGA,OAAO,MAAMA,OAAO,GAAG,OAAOC,WAAW,KAAK,WAAW,GAAGA,WAAW,GAAG,QAAQ"}
1
+ {"version":3,"file":"version.js","names":["VERSION","__VERSION__"],"sources":["../../../src/lib/utils/version.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\n// Version constant cannot be imported, it needs to correspond to the build version of **this** module.\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nexport const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n"],"mappings":"AAMA,OAAO,MAAMA,OAAO,GAAG,OAAOC,WAAW,KAAK,WAAW,GAAGA,WAAW,GAAG,QAAQ"}
@@ -2,7 +2,7 @@ import type { Loader, LoaderWithParser, LoaderOptions } from '@loaders.gl/loader
2
2
  import { BinaryGeometry, Geometry } from '@loaders.gl/schema';
3
3
  export type WKBLoaderOptions = LoaderOptions & {
4
4
  wkb?: {
5
- shape: 'binary-geometry' | 'geometry';
5
+ shape: 'geojson-geometry' | 'binary-geometry';
6
6
  };
7
7
  };
8
8
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"twkb-loader.d.ts","sourceRoot":"","sources":["../src/twkb-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAAC,cAAc,EAAE,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAI5D,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE;QACJ,KAAK,EAAE,iBAAiB,GAAG,UAAU,CAAC;KACvC,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,gBAAgB,CAgBtE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,gBAAgB,CAAC,cAAc,GAAG,QAAQ,EAAE,KAAK,EAAE,gBAAgB,CAI3F,CAAC"}
1
+ {"version":3,"file":"twkb-loader.d.ts","sourceRoot":"","sources":["../src/twkb-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAAC,cAAc,EAAE,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAI5D,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE;QACJ,KAAK,EAAE,kBAAkB,GAAG,iBAAiB,CAAC;KAC/C,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,gBAAgB,CAgBtE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,gBAAgB,CAAC,cAAc,GAAG,QAAQ,EAAE,KAAK,EAAE,gBAAgB,CAI3F,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"twkb-loader.js","names":["VERSION","parseTWKBGeometry","isTWKB","TWKBWorkerLoader","name","id","module","version","worker","category","extensions","mimeTypes","tests","options","wkb","shape","TWKBLoader","parse","arrayBuffer","parseSync"],"sources":["../src/twkb-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {Loader, LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {BinaryGeometry, Geometry} from '@loaders.gl/schema';\nimport {VERSION} from './lib/utils/version';\nimport {parseTWKBGeometry, isTWKB} from './lib/parse-twkb';\n\nexport type WKBLoaderOptions = LoaderOptions & {\n wkb?: {\n shape: 'binary-geometry' | 'geometry';\n };\n};\n\n/**\n * Worker loader for WKB (Well-Known Binary)\n */\nexport const TWKBWorkerLoader: Loader<Geometry, never, WKBLoaderOptions> = {\n name: 'TWKB (Tiny Well-Known Binary)',\n id: 'twkb',\n module: 'wkt',\n version: VERSION,\n worker: true,\n category: 'geometry',\n extensions: ['twkb'],\n mimeTypes: [],\n // TODO can we define static, serializable tests, eg. some binary strings?\n tests: [isTWKB],\n options: {\n wkb: {\n shape: 'binary-geometry'\n }\n }\n};\n\n/**\n * Loader for WKB (Well-Known Binary)\n */\nexport const TWKBLoader: LoaderWithParser<BinaryGeometry | Geometry, never, WKBLoaderOptions> = {\n ...TWKBWorkerLoader,\n parse: async (arrayBuffer: ArrayBuffer) => parseTWKBGeometry(arrayBuffer),\n parseSync: parseTWKBGeometry\n};\n"],"mappings":"SAKQA,OAAO;AAAA,SACPC,iBAAiB,EAAEC,MAAM;AAWjC,OAAO,MAAMC,gBAA2D,GAAG;EACzEC,IAAI,EAAE,+BAA+B;EACrCC,EAAE,EAAE,MAAM;EACVC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAEP,OAAO;EAChBQ,MAAM,EAAE,IAAI;EACZC,QAAQ,EAAE,UAAU;EACpBC,UAAU,EAAE,CAAC,MAAM,CAAC;EACpBC,SAAS,EAAE,EAAE;EAEbC,KAAK,EAAE,CAACV,MAAM,CAAC;EACfW,OAAO,EAAE;IACPC,GAAG,EAAE;MACHC,KAAK,EAAE;IACT;EACF;AACF,CAAC;AAKD,OAAO,MAAMC,UAAgF,GAAG;EAC9F,GAAGb,gBAAgB;EACnBc,KAAK,EAAE,MAAOC,WAAwB,IAAKjB,iBAAiB,CAACiB,WAAW,CAAC;EACzEC,SAAS,EAAElB;AACb,CAAC"}
1
+ {"version":3,"file":"twkb-loader.js","names":["VERSION","parseTWKBGeometry","isTWKB","TWKBWorkerLoader","name","id","module","version","worker","category","extensions","mimeTypes","tests","options","wkb","shape","TWKBLoader","parse","arrayBuffer","parseSync"],"sources":["../src/twkb-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {Loader, LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {BinaryGeometry, Geometry} from '@loaders.gl/schema';\nimport {VERSION} from './lib/utils/version';\nimport {parseTWKBGeometry, isTWKB} from './lib/parse-twkb';\n\nexport type WKBLoaderOptions = LoaderOptions & {\n wkb?: {\n shape: 'geojson-geometry' | 'binary-geometry';\n };\n};\n\n/**\n * Worker loader for WKB (Well-Known Binary)\n */\nexport const TWKBWorkerLoader: Loader<Geometry, never, WKBLoaderOptions> = {\n name: 'TWKB (Tiny Well-Known Binary)',\n id: 'twkb',\n module: 'wkt',\n version: VERSION,\n worker: true,\n category: 'geometry',\n extensions: ['twkb'],\n mimeTypes: [],\n // TODO can we define static, serializable tests, eg. some binary strings?\n tests: [isTWKB],\n options: {\n wkb: {\n shape: 'binary-geometry' // 'geojson-geometry'\n }\n }\n};\n\n/**\n * Loader for WKB (Well-Known Binary)\n */\nexport const TWKBLoader: LoaderWithParser<BinaryGeometry | Geometry, never, WKBLoaderOptions> = {\n ...TWKBWorkerLoader,\n parse: async (arrayBuffer: ArrayBuffer) => parseTWKBGeometry(arrayBuffer),\n parseSync: parseTWKBGeometry\n};\n"],"mappings":"SAKQA,OAAO;AAAA,SACPC,iBAAiB,EAAEC,MAAM;AAWjC,OAAO,MAAMC,gBAA2D,GAAG;EACzEC,IAAI,EAAE,+BAA+B;EACrCC,EAAE,EAAE,MAAM;EACVC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAEP,OAAO;EAChBQ,MAAM,EAAE,IAAI;EACZC,QAAQ,EAAE,UAAU;EACpBC,UAAU,EAAE,CAAC,MAAM,CAAC;EACpBC,SAAS,EAAE,EAAE;EAEbC,KAAK,EAAE,CAACV,MAAM,CAAC;EACfW,OAAO,EAAE;IACPC,GAAG,EAAE;MACHC,KAAK,EAAE;IACT;EACF;AACF,CAAC;AAKD,OAAO,MAAMC,UAAgF,GAAG;EAC9F,GAAGb,gBAAgB;EACnBc,KAAK,EAAE,MAAOC,WAAwB,IAAKjB,iBAAiB,CAACiB,WAAW,CAAC;EACzEC,SAAS,EAAElB;AACb,CAAC"}
@@ -2,13 +2,14 @@ import type { Loader, LoaderWithParser, LoaderOptions } from '@loaders.gl/loader
2
2
  import { BinaryGeometry, Geometry } from '@loaders.gl/schema';
3
3
  export type WKBLoaderOptions = LoaderOptions & {
4
4
  wkb?: {
5
- shape: 'binary-geometry' | 'geometry';
5
+ /** 'geometry' is deprecated use 'geojson-geometry' */
6
+ shape: 'geojson-geometry' | 'binary-geometry' | 'geometry';
6
7
  };
7
8
  };
8
9
  /**
9
10
  * Worker loader for WKB (Well-Known Binary)
10
11
  */
11
- export declare const WKBWorkerLoader: Loader<BinaryGeometry | Geometry, never, WKBLoaderOptions>;
12
+ export declare const WKBWorkerLoader: Loader<Geometry | BinaryGeometry, never, WKBLoaderOptions>;
12
13
  /**
13
14
  * Loader for WKB (Well-Known Binary)
14
15
  */
@@ -1 +1 @@
1
- {"version":3,"file":"wkb-loader.d.ts","sourceRoot":"","sources":["../src/wkb-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAAC,cAAc,EAAE,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAK5D,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE;QACJ,KAAK,EAAE,iBAAiB,GAAG,UAAU,CAAC;KACvC,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,cAAc,GAAG,QAAQ,EAAE,KAAK,EAAE,gBAAgB,CAgBtF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,gBAAgB,CAAC,cAAc,GAAG,QAAQ,EAAE,KAAK,EAAE,gBAAgB,CAI1F,CAAC"}
1
+ {"version":3,"file":"wkb-loader.d.ts","sourceRoot":"","sources":["../src/wkb-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAAC,cAAc,EAAE,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAK5D,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE;QACJ,sDAAsD;QACtD,KAAK,EAAE,kBAAkB,GAAG,iBAAiB,GAAG,UAAU,CAAC;KAC5D,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,QAAQ,GAAG,cAAc,EAAE,KAAK,EAAE,gBAAgB,CAgBtF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,gBAAgB,CAAC,cAAc,GAAG,QAAQ,EAAE,KAAK,EAAE,gBAAgB,CAI1F,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"wkb-loader.js","names":["VERSION","parseWKB","isWKB","WKBWorkerLoader","name","id","module","version","worker","category","extensions","mimeTypes","tests","options","wkb","shape","WKBLoader","parse","arrayBuffer","parseSync"],"sources":["../src/wkb-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {Loader, LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {BinaryGeometry, Geometry} from '@loaders.gl/schema';\nimport {VERSION} from './lib/utils/version';\nimport {parseWKB} from './lib/parse-wkb';\nimport {isWKB} from './lib/parse-wkb-header';\n\nexport type WKBLoaderOptions = LoaderOptions & {\n wkb?: {\n shape: 'binary-geometry' | 'geometry';\n };\n};\n\n/**\n * Worker loader for WKB (Well-Known Binary)\n */\nexport const WKBWorkerLoader: Loader<BinaryGeometry | Geometry, never, WKBLoaderOptions> = {\n name: 'WKB',\n id: 'wkb',\n module: 'wkt',\n version: VERSION,\n worker: true,\n category: 'geometry',\n extensions: ['wkb'],\n mimeTypes: [],\n // TODO can we define static, serializable tests, eg. some binary strings?\n tests: [isWKB],\n options: {\n wkb: {\n shape: 'binary-geometry'\n }\n }\n};\n\n/**\n * Loader for WKB (Well-Known Binary)\n */\nexport const WKBLoader: LoaderWithParser<BinaryGeometry | Geometry, never, WKBLoaderOptions> = {\n ...WKBWorkerLoader,\n parse: async (arrayBuffer: ArrayBuffer) => parseWKB(arrayBuffer),\n parseSync: parseWKB\n};\n"],"mappings":"SAKQA,OAAO;AAAA,SACPC,QAAQ;AAAA,SACRC,KAAK;AAWb,OAAO,MAAMC,eAA2E,GAAG;EACzFC,IAAI,EAAE,KAAK;EACXC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAEP,OAAO;EAChBQ,MAAM,EAAE,IAAI;EACZC,QAAQ,EAAE,UAAU;EACpBC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,EAAE;EAEbC,KAAK,EAAE,CAACV,KAAK,CAAC;EACdW,OAAO,EAAE;IACPC,GAAG,EAAE;MACHC,KAAK,EAAE;IACT;EACF;AACF,CAAC;AAKD,OAAO,MAAMC,SAA+E,GAAG;EAC7F,GAAGb,eAAe;EAClBc,KAAK,EAAE,MAAOC,WAAwB,IAAKjB,QAAQ,CAACiB,WAAW,CAAC;EAChEC,SAAS,EAAElB;AACb,CAAC"}
1
+ {"version":3,"file":"wkb-loader.js","names":["VERSION","parseWKB","isWKB","WKBWorkerLoader","name","id","module","version","worker","category","extensions","mimeTypes","tests","options","wkb","shape","WKBLoader","parse","arrayBuffer","parseSync"],"sources":["../src/wkb-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {Loader, LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {BinaryGeometry, Geometry} from '@loaders.gl/schema';\nimport {VERSION} from './lib/utils/version';\nimport {parseWKB} from './lib/parse-wkb';\nimport {isWKB} from './lib/parse-wkb-header';\n\nexport type WKBLoaderOptions = LoaderOptions & {\n wkb?: {\n /** 'geometry' is deprecated use 'geojson-geometry' */\n shape: 'geojson-geometry' | 'binary-geometry' | 'geometry';\n };\n};\n\n/**\n * Worker loader for WKB (Well-Known Binary)\n */\nexport const WKBWorkerLoader: Loader<Geometry | BinaryGeometry, never, WKBLoaderOptions> = {\n name: 'WKB',\n id: 'wkb',\n module: 'wkt',\n version: VERSION,\n worker: true,\n category: 'geometry',\n extensions: ['wkb'],\n mimeTypes: [],\n // TODO can we define static, serializable tests, eg. some binary strings?\n tests: [isWKB],\n options: {\n wkb: {\n shape: 'binary-geometry' // 'geojson-geometry'\n }\n }\n};\n\n/**\n * Loader for WKB (Well-Known Binary)\n */\nexport const WKBLoader: LoaderWithParser<BinaryGeometry | Geometry, never, WKBLoaderOptions> = {\n ...WKBWorkerLoader,\n parse: async (arrayBuffer: ArrayBuffer) => parseWKB(arrayBuffer),\n parseSync: parseWKB\n};\n"],"mappings":"SAKQA,OAAO;AAAA,SACPC,QAAQ;AAAA,SACRC,KAAK;AAYb,OAAO,MAAMC,eAA2E,GAAG;EACzFC,IAAI,EAAE,KAAK;EACXC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAEP,OAAO;EAChBQ,MAAM,EAAE,IAAI;EACZC,QAAQ,EAAE,UAAU;EACpBC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,EAAE;EAEbC,KAAK,EAAE,CAACV,KAAK,CAAC;EACdW,OAAO,EAAE;IACPC,GAAG,EAAE;MACHC,KAAK,EAAE;IACT;EACF;AACF,CAAC;AAKD,OAAO,MAAMC,SAA+E,GAAG;EAC7F,GAAGb,eAAe;EAClBc,KAAK,EAAE,MAAOC,WAAwB,IAAKjB,QAAQ,CAACiB,WAAW,CAAC;EAChEC,SAAS,EAAElB;AACb,CAAC"}
@@ -3,12 +3,13 @@ import { Geometry } from '@loaders.gl/schema';
3
3
  export type WKTLoaderOptions = LoaderOptions & {
4
4
  /** Options for the WKT parser */
5
5
  wkt?: {
6
- /** Whether to add any CRS, if found, as undocumented CRS property on the return geometry */
6
+ shape?: 'geojson-geometry';
7
+ /** Whether to add any CRS, if found, as undocumented CRS property on the returned geometry */
7
8
  crs?: boolean;
8
9
  };
9
10
  };
10
11
  /**
11
- * Well-Known text loader
12
+ * Well-Known text worker loader
12
13
  */
13
14
  export declare const WKTWorkerLoader: Loader<Geometry, never, WKTLoaderOptions>;
14
15
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"wkt-loader.d.ts","sourceRoot":"","sources":["../src/wkt-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAGtF,OAAO,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAG5C,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,iCAAiC;IACjC,GAAG,CAAC,EAAE;QACJ,4FAA4F;QAC5F,GAAG,CAAC,EAAE,OAAO,CAAC;KACf,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,gBAAgB,CAiBrE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,gBAAgB,CAIzE,CAAC"}
1
+ {"version":3,"file":"wkt-loader.d.ts","sourceRoot":"","sources":["../src/wkt-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAGtF,OAAO,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAG5C,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,iCAAiC;IACjC,GAAG,CAAC,EAAE;QACJ,KAAK,CAAC,EAAE,kBAAkB,CAAC;QAC3B,8FAA8F;QAC9F,GAAG,CAAC,EAAE,OAAO,CAAC;KACf,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,gBAAgB,CAkBrE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,gBAAgB,CAIzE,CAAC"}
@@ -15,6 +15,7 @@ export const WKTWorkerLoader = {
15
15
  testText: isWKT,
16
16
  options: {
17
17
  wkt: {
18
+ shape: 'geojson-geometry',
18
19
  crs: true
19
20
  }
20
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"wkt-loader.js","names":["VERSION","parseWKT","isWKT","WKT_MAGIC_STRINGS","WKTWorkerLoader","name","id","module","version","worker","extensions","mimeTypes","category","text","tests","testText","options","wkt","crs","WKTLoader","parse","arrayBuffer","TextDecoder","decode","parseTextSync"],"sources":["../src/wkt-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {Loader, LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport {parseWKT} from './lib/parse-wkt';\nimport {Geometry} from '@loaders.gl/schema';\nimport {isWKT, WKT_MAGIC_STRINGS} from './lib/parse-wkt';\n\nexport type WKTLoaderOptions = LoaderOptions & {\n /** Options for the WKT parser */\n wkt?: {\n /** Whether to add any CRS, if found, as undocumented CRS property on the return geometry */\n crs?: boolean;\n };\n};\n\n/**\n * Well-Known text loader\n */\nexport const WKTWorkerLoader: Loader<Geometry, never, WKTLoaderOptions> = {\n name: 'WKT (Well-Known Text)',\n id: 'wkt',\n module: 'wkt',\n version: VERSION,\n worker: true,\n extensions: ['wkt'],\n mimeTypes: ['text/plain'],\n category: 'geometry',\n text: true,\n tests: WKT_MAGIC_STRINGS,\n testText: isWKT,\n options: {\n wkt: {\n crs: true\n }\n }\n};\n\n/**\n * Well-Known text loader\n */\nexport const WKTLoader: LoaderWithParser<Geometry, never, WKTLoaderOptions> = {\n ...WKTWorkerLoader,\n parse: async (arrayBuffer, options) => parseWKT(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync: parseWKT\n};\n"],"mappings":"SAIQA,OAAO;AAAA,SACPC,QAAQ;AAAA,SAERC,KAAK,EAAEC,iBAAiB;AAahC,OAAO,MAAMC,eAA0D,GAAG;EACxEC,IAAI,EAAE,uBAAuB;EAC7BC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAER,OAAO;EAChBS,MAAM,EAAE,IAAI;EACZC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,YAAY,CAAC;EACzBC,QAAQ,EAAE,UAAU;EACpBC,IAAI,EAAE,IAAI;EACVC,KAAK,EAAEX,iBAAiB;EACxBY,QAAQ,EAAEb,KAAK;EACfc,OAAO,EAAE;IACPC,GAAG,EAAE;MACHC,GAAG,EAAE;IACP;EACF;AACF,CAAC;AAKD,OAAO,MAAMC,SAA8D,GAAG;EAC5E,GAAGf,eAAe;EAClBgB,KAAK,EAAE,MAAAA,CAAOC,WAAW,EAAEL,OAAO,KAAKf,QAAQ,CAAC,IAAIqB,WAAW,CAAC,CAAC,CAACC,MAAM,CAACF,WAAW,CAAC,EAAEL,OAAO,CAAC;EAC/FQ,aAAa,EAAEvB;AACjB,CAAC"}
1
+ {"version":3,"file":"wkt-loader.js","names":["VERSION","parseWKT","isWKT","WKT_MAGIC_STRINGS","WKTWorkerLoader","name","id","module","version","worker","extensions","mimeTypes","category","text","tests","testText","options","wkt","shape","crs","WKTLoader","parse","arrayBuffer","TextDecoder","decode","parseTextSync"],"sources":["../src/wkt-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {Loader, LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport {parseWKT} from './lib/parse-wkt';\nimport {Geometry} from '@loaders.gl/schema';\nimport {isWKT, WKT_MAGIC_STRINGS} from './lib/parse-wkt';\n\nexport type WKTLoaderOptions = LoaderOptions & {\n /** Options for the WKT parser */\n wkt?: {\n shape?: 'geojson-geometry'; // 'binary-geometry'\n /** Whether to add any CRS, if found, as undocumented CRS property on the returned geometry */\n crs?: boolean;\n };\n};\n\n/**\n * Well-Known text worker loader\n */\nexport const WKTWorkerLoader: Loader<Geometry, never, WKTLoaderOptions> = {\n name: 'WKT (Well-Known Text)',\n id: 'wkt',\n module: 'wkt',\n version: VERSION,\n worker: true,\n extensions: ['wkt'],\n mimeTypes: ['text/plain'],\n category: 'geometry',\n text: true,\n tests: WKT_MAGIC_STRINGS,\n testText: isWKT,\n options: {\n wkt: {\n shape: 'geojson-geometry',\n crs: true\n }\n }\n};\n\n/**\n * Well-Known text loader\n */\nexport const WKTLoader: LoaderWithParser<Geometry, never, WKTLoaderOptions> = {\n ...WKTWorkerLoader,\n parse: async (arrayBuffer, options) => parseWKT(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync: parseWKT\n};\n"],"mappings":"SAIQA,OAAO;AAAA,SACPC,QAAQ;AAAA,SAERC,KAAK,EAAEC,iBAAiB;AAchC,OAAO,MAAMC,eAA0D,GAAG;EACxEC,IAAI,EAAE,uBAAuB;EAC7BC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAER,OAAO;EAChBS,MAAM,EAAE,IAAI;EACZC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,YAAY,CAAC;EACzBC,QAAQ,EAAE,UAAU;EACpBC,IAAI,EAAE,IAAI;EACVC,KAAK,EAAEX,iBAAiB;EACxBY,QAAQ,EAAEb,KAAK;EACfc,OAAO,EAAE;IACPC,GAAG,EAAE;MACHC,KAAK,EAAE,kBAAkB;MACzBC,GAAG,EAAE;IACP;EACF;AACF,CAAC;AAKD,OAAO,MAAMC,SAA8D,GAAG;EAC5E,GAAGhB,eAAe;EAClBiB,KAAK,EAAE,MAAAA,CAAOC,WAAW,EAAEN,OAAO,KAAKf,QAAQ,CAAC,IAAIsB,WAAW,CAAC,CAAC,CAACC,MAAM,CAACF,WAAW,CAAC,EAAEN,OAAO,CAAC;EAC/FS,aAAa,EAAExB;AACjB,CAAC"}
@@ -1,5 +1,8 @@
1
1
  "use strict";
2
2
  (() => {
3
+ // ../worker-utils/src/lib/node/worker_threads-browser.ts
4
+ var parentPort = null;
5
+
3
6
  // ../worker-utils/src/lib/worker-utils/get-transfer-list.ts
4
7
  function getTransferList(object, recursive = true, transfers) {
5
8
  const transfersSet = transfers || /* @__PURE__ */ new Set();
@@ -37,19 +40,6 @@
37
40
 
38
41
  // ../worker-utils/src/lib/worker-farm/worker-body.ts
39
42
  async function getParentPort() {
40
- let parentPort;
41
- try {
42
- eval("globalThis.parentPort = require('worker_threads').parentPort");
43
- parentPort = globalThis.parentPort;
44
- } catch {
45
- try {
46
- eval("globalThis.workerThreadsPromise = import('worker_threads')");
47
- const workerThreads = await globalThis.workerThreadsPromise;
48
- parentPort = workerThreads.parentPort;
49
- } catch (error) {
50
- console.error(error.message);
51
- }
52
- }
53
43
  return parentPort;
54
44
  }
55
45
  var onMessageWrapperMap = /* @__PURE__ */ new Map();
@@ -208,7 +198,7 @@
208
198
  }
209
199
 
210
200
  // src/lib/utils/version.ts
211
- var VERSION = true ? "4.0.3" : "latest";
201
+ var VERSION = true ? "4.1.0-alpha.1" : "latest";
212
202
 
213
203
  // src/lib/parse-wkt.ts
214
204
  var numberRegexp = /[-+]?([0-9]*\.[0-9]+|[0-9]+)([eE][-+]?[0-9]+)?/;
@@ -466,6 +456,7 @@
466
456
  testText: isWKT,
467
457
  options: {
468
458
  wkt: {
459
+ shape: "geojson-geometry",
469
460
  crs: true
470
461
  }
471
462
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@loaders.gl/wkt",
3
3
  "description": "Loader and Writer for the WKT (Well Known Text) Format",
4
- "version": "4.0.3",
4
+ "version": "4.1.0-alpha.1",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "publishConfig": {
@@ -43,8 +43,8 @@
43
43
  "fuzzer": "^0.2.1"
44
44
  },
45
45
  "dependencies": {
46
- "@loaders.gl/loader-utils": "4.0.3",
47
- "@loaders.gl/schema": "4.0.3"
46
+ "@loaders.gl/loader-utils": "4.1.0-alpha.1",
47
+ "@loaders.gl/schema": "4.1.0-alpha.1"
48
48
  },
49
- "gitHead": "03c871839b36c997249dabae1844df53a35d3760"
49
+ "gitHead": "6a4d3da93d45115ad99861474a43c3f4a0b280a7"
50
50
  }
@@ -23,7 +23,10 @@ export function parseWKB(
23
23
  switch (shape) {
24
24
  case 'binary-geometry':
25
25
  return binaryGeometry;
26
+ case 'geojson-geometry':
27
+ return binaryToGeometry(binaryGeometry);
26
28
  case 'geometry':
29
+ console.error('WKBLoader: "geometry" shape is deprecated, use "binary-geometry" instead');
27
30
  return binaryToGeometry(binaryGeometry);
28
31
  default:
29
32
  throw new Error(shape);
@@ -1,3 +1,6 @@
1
+ // loaders.gl, MIT license
2
+ // Copyright (c) vis.gl contributors
3
+
1
4
  /*
2
5
  const binary_to_b64_map = [
3
6
  'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I',
@@ -1,3 +1,6 @@
1
+ // loaders.gl, MIT license
2
+ // Copyright (c) vis.gl contributors
3
+
1
4
  /** A DataView that tracks byte offset when reading. */
2
5
  export class BinaryReader {
3
6
  arrayBuffer: ArrayBuffer;
@@ -1,3 +1,6 @@
1
+ // loaders.gl, MIT license
2
+ // Copyright (c) vis.gl contributors
3
+
1
4
  // Forked from https://github.com/jessetane/hex-transcoder under MIT license
2
5
 
3
6
  const alphabet = '0123456789abcdef';
@@ -1,3 +1,6 @@
1
+ // loaders.gl, MIT license
2
+ // Copyright (c) vis.gl contributors
3
+
1
4
  // Version constant cannot be imported, it needs to correspond to the build version of **this** module.
2
5
  // __VERSION__ is injected by babel-plugin-version-inline
3
6
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
@@ -8,7 +8,7 @@ import {parseTWKBGeometry, isTWKB} from './lib/parse-twkb';
8
8
 
9
9
  export type WKBLoaderOptions = LoaderOptions & {
10
10
  wkb?: {
11
- shape: 'binary-geometry' | 'geometry';
11
+ shape: 'geojson-geometry' | 'binary-geometry';
12
12
  };
13
13
  };
14
14
 
@@ -28,7 +28,7 @@ export const TWKBWorkerLoader: Loader<Geometry, never, WKBLoaderOptions> = {
28
28
  tests: [isTWKB],
29
29
  options: {
30
30
  wkb: {
31
- shape: 'binary-geometry'
31
+ shape: 'binary-geometry' // 'geojson-geometry'
32
32
  }
33
33
  }
34
34
  };
package/src/wkb-loader.ts CHANGED
@@ -9,14 +9,15 @@ import {isWKB} from './lib/parse-wkb-header';
9
9
 
10
10
  export type WKBLoaderOptions = LoaderOptions & {
11
11
  wkb?: {
12
- shape: 'binary-geometry' | 'geometry';
12
+ /** 'geometry' is deprecated use 'geojson-geometry' */
13
+ shape: 'geojson-geometry' | 'binary-geometry' | 'geometry';
13
14
  };
14
15
  };
15
16
 
16
17
  /**
17
18
  * Worker loader for WKB (Well-Known Binary)
18
19
  */
19
- export const WKBWorkerLoader: Loader<BinaryGeometry | Geometry, never, WKBLoaderOptions> = {
20
+ export const WKBWorkerLoader: Loader<Geometry | BinaryGeometry, never, WKBLoaderOptions> = {
20
21
  name: 'WKB',
21
22
  id: 'wkb',
22
23
  module: 'wkt',
@@ -29,7 +30,7 @@ export const WKBWorkerLoader: Loader<BinaryGeometry | Geometry, never, WKBLoader
29
30
  tests: [isWKB],
30
31
  options: {
31
32
  wkb: {
32
- shape: 'binary-geometry'
33
+ shape: 'binary-geometry' // 'geojson-geometry'
33
34
  }
34
35
  }
35
36
  };
package/src/wkt-loader.ts CHANGED
@@ -10,13 +10,14 @@ import {isWKT, WKT_MAGIC_STRINGS} from './lib/parse-wkt';
10
10
  export type WKTLoaderOptions = LoaderOptions & {
11
11
  /** Options for the WKT parser */
12
12
  wkt?: {
13
- /** Whether to add any CRS, if found, as undocumented CRS property on the return geometry */
13
+ shape?: 'geojson-geometry'; // 'binary-geometry'
14
+ /** Whether to add any CRS, if found, as undocumented CRS property on the returned geometry */
14
15
  crs?: boolean;
15
16
  };
16
17
  };
17
18
 
18
19
  /**
19
- * Well-Known text loader
20
+ * Well-Known text worker loader
20
21
  */
21
22
  export const WKTWorkerLoader: Loader<Geometry, never, WKTLoaderOptions> = {
22
23
  name: 'WKT (Well-Known Text)',
@@ -32,6 +33,7 @@ export const WKTWorkerLoader: Loader<Geometry, never, WKTLoaderOptions> = {
32
33
  testText: isWKT,
33
34
  options: {
34
35
  wkt: {
36
+ shape: 'geojson-geometry',
35
37
  crs: true
36
38
  }
37
39
  }