@loaders.gl/wkt 4.0.0-beta.3 → 4.0.0-beta.5

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
@@ -197,7 +197,6 @@ var __exports__ = (() => {
197
197
  worker: true,
198
198
  extensions: [],
199
199
  mimeTypes: ["text/plain"],
200
- // category: 'json',
201
200
  text: true,
202
201
  options: {
203
202
  "wkt-crs": {}
@@ -210,16 +209,7 @@ var __exports__ = (() => {
210
209
  // src/lib/parse-wkt.ts
211
210
  var numberRegexp = /[-+]?([0-9]*\.[0-9]+|[0-9]+)([eE][-+]?[0-9]+)?/;
212
211
  var tuples = new RegExp("^" + numberRegexp.source + "(\\s" + numberRegexp.source + "){1,}");
213
- var WKT_MAGIC_STRINGS = [
214
- "POINT(",
215
- "LINESTRING(",
216
- "POLYGON(",
217
- "MULTIPOINT(",
218
- "MULTILINESTRING(",
219
- "MULTIPOLYGON(",
220
- "GEOMETRYCOLLECTION("
221
- // We only support this "geojson" subset of the OGC simple features standard
222
- ];
212
+ var WKT_MAGIC_STRINGS = ["POINT(", "LINESTRING(", "POLYGON(", "MULTIPOINT(", "MULTILINESTRING(", "MULTIPOLYGON(", "GEOMETRYCOLLECTION("];
223
213
  function isWKT(input) {
224
214
  return WKT_MAGIC_STRINGS.some((magicString) => input.startsWith(magicString));
225
215
  }
@@ -322,7 +312,6 @@ var __exports__ = (() => {
322
312
  white(state);
323
313
  return {
324
314
  type: "MultiLineString",
325
- // @ts-expect-error
326
315
  coordinates: c
327
316
  };
328
317
  }
@@ -337,7 +326,6 @@ var __exports__ = (() => {
337
326
  }
338
327
  return {
339
328
  type: "Polygon",
340
- // @ts-expect-error
341
329
  coordinates: c
342
330
  };
343
331
  }
@@ -352,7 +340,6 @@ var __exports__ = (() => {
352
340
  }
353
341
  return {
354
342
  type: "MultiPolygon",
355
- // @ts-expect-error
356
343
  coordinates: c
357
344
  };
358
345
  }
@@ -522,7 +509,6 @@ var __exports__ = (() => {
522
509
  module: "wkt",
523
510
  version: VERSION,
524
511
  extensions: ["wkt"],
525
- // @ts-expect-error
526
512
  encodeSync: encodeWKT,
527
513
  options: {
528
514
  wkt: {}
@@ -634,7 +620,7 @@ var __exports__ = (() => {
634
620
  var EWKB_FLAG_M = 1073741824;
635
621
  var EWKB_FLAG_SRID = 536870912;
636
622
  var MAX_SRID = 1e4;
637
- var WKBGeometryType = /* @__PURE__ */ function(WKBGeometryType2) {
623
+ var WKBGeometryType = function(WKBGeometryType2) {
638
624
  WKBGeometryType2[WKBGeometryType2["Point"] = 1] = "Point";
639
625
  WKBGeometryType2[WKBGeometryType2["LineString"] = 2] = "LineString";
640
626
  WKBGeometryType2[WKBGeometryType2["Polygon"] = 3] = "Polygon";
@@ -1006,7 +992,6 @@ var __exports__ = (() => {
1006
992
  category: "geometry",
1007
993
  extensions: ["wkb"],
1008
994
  mimeTypes: [],
1009
- // TODO can we define static, serializable tests, eg. some binary strings?
1010
995
  tests: [isWKB],
1011
996
  options: {
1012
997
  wkb: {
@@ -1102,7 +1087,6 @@ var __exports__ = (() => {
1102
1087
  this.dataView.setFloat64(this.byteOffset, value, BE);
1103
1088
  this.byteOffset += 8;
1104
1089
  }
1105
- /** A varint uses a variable number of bytes */
1106
1090
  writeVarInt(value) {
1107
1091
  let length = 1;
1108
1092
  while ((value & 4294967168) !== 0) {
@@ -1113,14 +1097,12 @@ var __exports__ = (() => {
1113
1097
  this.writeUInt8(value & 127);
1114
1098
  return length;
1115
1099
  }
1116
- /** Append another ArrayBuffer to this ArrayBuffer */
1117
1100
  writeBuffer(arrayBuffer) {
1118
1101
  this._ensureSize(arrayBuffer.byteLength);
1119
1102
  const tempArray = new Uint8Array(this.arrayBuffer);
1120
1103
  tempArray.set(new Uint8Array(arrayBuffer), this.byteOffset);
1121
1104
  this.byteOffset += arrayBuffer.byteLength;
1122
1105
  }
1123
- /** Resizes this.arrayBuffer if not enough space */
1124
1106
  _ensureSize(size) {
1125
1107
  if (this.arrayBuffer.byteLength < this.byteOffset + size) {
1126
1108
  if (this.allowResize) {
@@ -1136,7 +1118,7 @@ var __exports__ = (() => {
1136
1118
  };
1137
1119
 
1138
1120
  // src/lib/encode-wkb.ts
1139
- var WKB = /* @__PURE__ */ function(WKB2) {
1121
+ var WKB = function(WKB2) {
1140
1122
  WKB2[WKB2["Point"] = 1] = "Point";
1141
1123
  WKB2[WKB2["LineString"] = 2] = "LineString";
1142
1124
  WKB2[WKB2["Polygon"] = 3] = "Polygon";
@@ -1451,7 +1433,6 @@ var __exports__ = (() => {
1451
1433
  options: WKBLoader.options,
1452
1434
  text: true,
1453
1435
  testText: isHexWKB,
1454
- // TODO - encoding here seems wasteful - extend hex transcoder?
1455
1436
  parse: async (arrayBuffer) => parseHexWKB(new TextDecoder().decode(arrayBuffer)),
1456
1437
  parseTextSync: parseHexWKB
1457
1438
  };
@@ -1800,7 +1781,6 @@ var __exports__ = (() => {
1800
1781
  category: "geometry",
1801
1782
  extensions: ["twkb"],
1802
1783
  mimeTypes: [],
1803
- // TODO can we define static, serializable tests, eg. some binary strings?
1804
1784
  tests: [isTWKB],
1805
1785
  options: {
1806
1786
  wkb: {
@@ -2000,13 +1980,9 @@ var __exports__ = (() => {
2000
1980
  module: "wkt",
2001
1981
  version: VERSION,
2002
1982
  extensions: ["twkb"],
2003
- // @ts-expect-error not implemented yet
2004
1983
  encodeSync: async (data, options) => encodeTWKB,
2005
1984
  options: {
2006
- twkb: {
2007
- // hasZ: false,
2008
- // hasM: false
2009
- }
1985
+ twkb: {}
2010
1986
  }
2011
1987
  };
2012
1988
  return __toCommonJS(src_exports);
package/dist/index.cjs CHANGED
@@ -313,6 +313,7 @@ function parseMultiLineString(state) {
313
313
  }
314
314
  white(state);
315
315
  return {
316
+ // @ts-ignore
316
317
  type: "MultiLineString",
317
318
  // @ts-expect-error
318
319
  coordinates: c
@@ -328,6 +329,7 @@ function parsePolygon(state) {
328
329
  return null;
329
330
  }
330
331
  return {
332
+ // @ts-ignore
331
333
  type: "Polygon",
332
334
  // @ts-expect-error
333
335
  coordinates: c
@@ -1 +1 @@
1
- {"version":3,"file":"parse-wkt.js","names":["numberRegexp","tuples","RegExp","source","WKT_MAGIC_STRINGS","isWKT","input","some","magicString","startsWith","parseWKT","options","parseWKTToGeometry","_options$wkt","parts","split","_","pop","srid","shift","state","i","geometry","parseGeometry","wkt","crs","addCRS","parsePoint","parseLineString","parsePolygon","parseMultiPoint","parseMultiLineString","parseMultiPolygon","parseGeometryCollection","obj","match","type","properties","name","$","white","c","coords","coordinates","_state$_","_state$_2","newCoordsFormat","substring","indexOf","length","replace","multicoords","geometries","push","depth","rings","stack","pointer","elem","isNaN","Array","prototype","apply","map","parseFloat","list","item","pt","regexp","_state$_3"],"sources":["../../src/lib/parse-wkt.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Fork of https://github.com/mapbox/wellknown under ISC license (MIT/BSD-2-clause equivalent)\n\nimport {Geometry} from '@loaders.gl/schema';\n\n/* eslint-disable */\n// @ts-nocheck\n\nconst numberRegexp = /[-+]?([0-9]*\\.[0-9]+|[0-9]+)([eE][-+]?[0-9]+)?/;\n// Matches sequences like '100 100' or '100 100 100'.\nconst tuples = new RegExp('^' + numberRegexp.source + '(\\\\s' + numberRegexp.source + '){1,}');\n\nexport const WKT_MAGIC_STRINGS = [\n 'POINT(',\n 'LINESTRING(',\n 'POLYGON(',\n 'MULTIPOINT(',\n 'MULTILINESTRING(',\n 'MULTIPOLYGON(',\n 'GEOMETRYCOLLECTION('\n // We only support this \"geojson\" subset of the OGC simple features standard\n];\n\nexport type ParseWKTOptions = {\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 * Check if a string is WKT.\n * @param input A potential WKT geometry string\n * @return `true` if input appears to be a WKT geometry string, `false` otherwise\n\n * @note We only support the \"geojson\" subset of the OGC simple features standard\n * @todo Does not handle leading spaces which appear to be permitted per the spec:\n * \"A WKT string contains no white space outside of double quotes. \n * However padding with white space to improve human readability is permitted; \n * the examples of WKT that are included in this document have \n * spaces and line feeds inserted to improve clarity. Any padding is stripped out or ignored by parsers.\"\n */\nexport function isWKT(input: string): boolean {\n return WKT_MAGIC_STRINGS.some((magicString) => input.startsWith(magicString));\n}\n\n/**\n * Parse WKT and return GeoJSON.\n * @param input A WKT geometry string\n * @return A GeoJSON geometry object\n *\n * @note We only support the \"geojson\" subset of the OGC simple features standard\n **/\nexport function parseWKT(input: string, options?: ParseWKTOptions): Geometry {\n // TODO handle options.wkt.shape\n return parseWKTToGeometry(input, options)!;\n}\n\n/** State of parser, passed around between parser functions */\ntype ParseWKTState = {\n parts: string[];\n _: string | undefined;\n i: number;\n};\n\n/** Parse into GeoJSON geometry */\nfunction parseWKTToGeometry(input: string, options?: ParseWKTOptions): Geometry | null {\n const parts = input.split(';');\n let _ = parts.pop();\n const srid = (parts.shift() || '').split('=').pop();\n\n const state: ParseWKTState = {parts, _, i: 0};\n\n const geometry = parseGeometry(state);\n\n return options?.wkt?.crs ? addCRS(geometry, srid) : geometry;\n}\n\nfunction parseGeometry(state: ParseWKTState): Geometry | null {\n return (\n parsePoint(state) ||\n parseLineString(state) ||\n parsePolygon(state) ||\n parseMultiPoint(state) ||\n parseMultiLineString(state) ||\n parseMultiPolygon(state) ||\n parseGeometryCollection(state)\n );\n}\n\n/** Adds a coordinate reference system as an undocumented */\nfunction addCRS(obj: Geometry | null, srid?: string): Geometry | null {\n if (obj && srid?.match(/\\d+/)) {\n const crs = {\n type: 'name',\n properties: {\n name: 'urn:ogc:def:crs:EPSG::' + srid\n }\n };\n // @ts-expect-error we assign an undocumented property on the geometry\n obj.crs = crs;\n }\n\n return obj;\n}\n\n// GEOMETRIES\n\nfunction parsePoint(state: ParseWKTState): Geometry | null {\n if (!$(/^(POINT(\\sz)?)/i, state)) {\n return null;\n }\n white(state);\n if (!$(/^(\\()/, state)) {\n return null;\n }\n const c = coords(state);\n if (!c) {\n return null;\n }\n white(state);\n if (!$(/^(\\))/, state)) {\n return null;\n }\n return {\n type: 'Point',\n coordinates: c[0]\n };\n}\n\nfunction parseMultiPoint(state: ParseWKTState): Geometry | null {\n if (!$(/^(MULTIPOINT)/i, state)) {\n return null;\n }\n white(state);\n const newCoordsFormat = state._?.substring(state._?.indexOf('(') + 1, state._.length - 1)\n .replace(/\\(/g, '')\n .replace(/\\)/g, '');\n state._ = 'MULTIPOINT (' + newCoordsFormat + ')';\n const c = multicoords(state);\n if (!c) {\n return null;\n }\n white(state);\n return {\n type: 'MultiPoint',\n coordinates: c\n };\n}\n\nfunction parseLineString(state: ParseWKTState): Geometry | null {\n if (!$(/^(LINESTRING(\\sz)?)/i, state)) {\n return null;\n }\n white(state);\n if (!$(/^(\\()/, state)) {\n return null;\n }\n const c = coords(state);\n if (!c) {\n return null;\n }\n if (!$(/^(\\))/, state)) {\n return null;\n }\n return {\n type: 'LineString',\n coordinates: c\n };\n}\n\nfunction parseMultiLineString(state: ParseWKTState): Geometry | null {\n if (!$(/^(MULTILINESTRING)/i, state)) return null;\n white(state);\n const c = multicoords(state);\n if (!c) {\n return null;\n }\n white(state);\n return {\n type: 'MultiLineString',\n // @ts-expect-error\n coordinates: c\n };\n}\n\nfunction parsePolygon(state: ParseWKTState): Geometry | null {\n if (!$(/^(POLYGON(\\sz)?)/i, state)) {\n return null;\n }\n white(state);\n const c = multicoords(state);\n if (!c) {\n return null;\n }\n return {\n type: 'Polygon',\n // @ts-expect-error\n coordinates: c\n };\n}\n\nfunction parseMultiPolygon(state: ParseWKTState): Geometry | null {\n if (!$(/^(MULTIPOLYGON)/i, state)) {\n return null;\n }\n white(state);\n const c = multicoords(state);\n if (!c) {\n return null;\n }\n return {\n type: 'MultiPolygon',\n // @ts-expect-error\n coordinates: c\n };\n}\n\nfunction parseGeometryCollection(state: ParseWKTState): Geometry | null {\n const geometries: Geometry[] = [];\n let geometry: Geometry | null;\n\n if (!$(/^(GEOMETRYCOLLECTION)/i, state)) {\n return null;\n }\n white(state);\n\n if (!$(/^(\\()/, state)) {\n return null;\n }\n while ((geometry = parseGeometry(state))) {\n geometries.push(geometry);\n white(state);\n $(/^(,)/, state);\n white(state);\n }\n if (!$(/^(\\))/, state)) {\n return null;\n }\n\n return {\n type: 'GeometryCollection',\n geometries: geometries\n };\n}\n\n// COORDINATES\n\nfunction multicoords(state: ParseWKTState): number[][] | null {\n white(state);\n let depth = 0;\n const rings: number[][] = [];\n const stack = [rings];\n let pointer: any = rings;\n let elem;\n\n while ((elem = $(/^(\\()/, state) || $(/^(\\))/, state) || $(/^(,)/, state) || $(tuples, state))) {\n if (elem === '(') {\n stack.push(pointer);\n pointer = [];\n stack[stack.length - 1].push(pointer);\n depth++;\n } else if (elem === ')') {\n // For the case: Polygon(), ...\n if (pointer.length === 0) return null;\n\n // @ts-ignore\n pointer = stack.pop();\n // the stack was empty, input was malformed\n if (!pointer) return null;\n depth--;\n if (depth === 0) break;\n } else if (elem === ',') {\n pointer = [];\n stack[stack.length - 1].push(pointer);\n } else if (!elem.split(/\\s/g).some(isNaN)) {\n Array.prototype.push.apply(pointer, elem.split(/\\s/g).map(parseFloat));\n } else {\n return null;\n }\n white(state);\n }\n\n if (depth !== 0) return null;\n\n return rings;\n}\n\nfunction coords(state: ParseWKTState): number[][] | null {\n const list: number[][] = [];\n let item: any;\n let pt;\n while ((pt = $(tuples, state) || $(/^(,)/, state))) {\n if (pt === ',') {\n list.push(item);\n item = [];\n } else if (!pt.split(/\\s/g).some(isNaN)) {\n if (!item) item = [];\n Array.prototype.push.apply(item, pt.split(/\\s/g).map(parseFloat));\n }\n white(state);\n }\n\n if (item) list.push(item);\n else return null;\n\n return list.length ? list : null;\n}\n\n// HELPERS\n\nfunction $(regexp: RegExp, state: ParseWKTState) {\n const match = state._?.substring(state.i).match(regexp);\n if (!match) return null;\n else {\n state.i += match[0].length;\n return match[0];\n }\n}\n\nfunction white(state: ParseWKTState) {\n $(/^\\s*/, state);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"parse-wkt.js","names":["numberRegexp","tuples","RegExp","source","WKT_MAGIC_STRINGS","isWKT","input","some","magicString","startsWith","parseWKT","options","parseWKTToGeometry","_options$wkt","parts","split","_","pop","srid","shift","state","i","geometry","parseGeometry","wkt","crs","addCRS","parsePoint","parseLineString","parsePolygon","parseMultiPoint","parseMultiLineString","parseMultiPolygon","parseGeometryCollection","obj","match","type","properties","name","$","white","c","coords","coordinates","_state$_","_state$_2","newCoordsFormat","substring","indexOf","length","replace","multicoords","geometries","push","depth","rings","stack","pointer","elem","isNaN","Array","prototype","apply","map","parseFloat","list","item","pt","regexp","_state$_3"],"sources":["../../src/lib/parse-wkt.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Fork of https://github.com/mapbox/wellknown under ISC license (MIT/BSD-2-clause equivalent)\n\nimport {Geometry} from '@loaders.gl/schema';\n\n/* eslint-disable */\n// @ts-nocheck\n\nconst numberRegexp = /[-+]?([0-9]*\\.[0-9]+|[0-9]+)([eE][-+]?[0-9]+)?/;\n// Matches sequences like '100 100' or '100 100 100'.\nconst tuples = new RegExp('^' + numberRegexp.source + '(\\\\s' + numberRegexp.source + '){1,}');\n\nexport const WKT_MAGIC_STRINGS = [\n 'POINT(',\n 'LINESTRING(',\n 'POLYGON(',\n 'MULTIPOINT(',\n 'MULTILINESTRING(',\n 'MULTIPOLYGON(',\n 'GEOMETRYCOLLECTION('\n // We only support this \"geojson\" subset of the OGC simple features standard\n];\n\nexport type ParseWKTOptions = {\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 * Check if a string is WKT.\n * @param input A potential WKT geometry string\n * @return `true` if input appears to be a WKT geometry string, `false` otherwise\n\n * @note We only support the \"geojson\" subset of the OGC simple features standard\n * @todo Does not handle leading spaces which appear to be permitted per the spec:\n * \"A WKT string contains no white space outside of double quotes. \n * However padding with white space to improve human readability is permitted; \n * the examples of WKT that are included in this document have \n * spaces and line feeds inserted to improve clarity. Any padding is stripped out or ignored by parsers.\"\n */\nexport function isWKT(input: string): boolean {\n return WKT_MAGIC_STRINGS.some((magicString) => input.startsWith(magicString));\n}\n\n/**\n * Parse WKT and return GeoJSON.\n * @param input A WKT geometry string\n * @return A GeoJSON geometry object\n *\n * @note We only support the \"geojson\" subset of the OGC simple features standard\n **/\nexport function parseWKT(input: string, options?: ParseWKTOptions): Geometry {\n // TODO handle options.wkt.shape\n return parseWKTToGeometry(input, options)!;\n}\n\n/** State of parser, passed around between parser functions */\ntype ParseWKTState = {\n parts: string[];\n _: string | undefined;\n i: number;\n};\n\n/** Parse into GeoJSON geometry */\nfunction parseWKTToGeometry(input: string, options?: ParseWKTOptions): Geometry | null {\n const parts = input.split(';');\n let _ = parts.pop();\n const srid = (parts.shift() || '').split('=').pop();\n\n const state: ParseWKTState = {parts, _, i: 0};\n\n const geometry = parseGeometry(state);\n\n return options?.wkt?.crs ? addCRS(geometry, srid) : geometry;\n}\n\nfunction parseGeometry(state: ParseWKTState): Geometry | null {\n return (\n parsePoint(state) ||\n parseLineString(state) ||\n parsePolygon(state) ||\n parseMultiPoint(state) ||\n parseMultiLineString(state) ||\n parseMultiPolygon(state) ||\n parseGeometryCollection(state)\n );\n}\n\n/** Adds a coordinate reference system as an undocumented */\nfunction addCRS(obj: Geometry | null, srid?: string): Geometry | null {\n if (obj && srid?.match(/\\d+/)) {\n const crs = {\n type: 'name',\n properties: {\n name: 'urn:ogc:def:crs:EPSG::' + srid\n }\n };\n // @ts-expect-error we assign an undocumented property on the geometry\n obj.crs = crs;\n }\n\n return obj;\n}\n\n// GEOMETRIES\n\nfunction parsePoint(state: ParseWKTState): Geometry | null {\n if (!$(/^(POINT(\\sz)?)/i, state)) {\n return null;\n }\n white(state);\n if (!$(/^(\\()/, state)) {\n return null;\n }\n const c = coords(state);\n if (!c) {\n return null;\n }\n white(state);\n if (!$(/^(\\))/, state)) {\n return null;\n }\n return {\n type: 'Point',\n coordinates: c[0]\n };\n}\n\nfunction parseMultiPoint(state: ParseWKTState): Geometry | null {\n if (!$(/^(MULTIPOINT)/i, state)) {\n return null;\n }\n white(state);\n const newCoordsFormat = state._?.substring(state._?.indexOf('(') + 1, state._.length - 1)\n .replace(/\\(/g, '')\n .replace(/\\)/g, '');\n state._ = 'MULTIPOINT (' + newCoordsFormat + ')';\n const c = multicoords(state);\n if (!c) {\n return null;\n }\n white(state);\n return {\n type: 'MultiPoint',\n coordinates: c\n };\n}\n\nfunction parseLineString(state: ParseWKTState): Geometry | null {\n if (!$(/^(LINESTRING(\\sz)?)/i, state)) {\n return null;\n }\n white(state);\n if (!$(/^(\\()/, state)) {\n return null;\n }\n const c = coords(state);\n if (!c) {\n return null;\n }\n if (!$(/^(\\))/, state)) {\n return null;\n }\n return {\n type: 'LineString',\n coordinates: c\n };\n}\n\nfunction parseMultiLineString(state: ParseWKTState): Geometry | null {\n if (!$(/^(MULTILINESTRING)/i, state)) return null;\n white(state);\n const c = multicoords(state);\n if (!c) {\n return null;\n }\n white(state);\n return {\n // @ts-ignore\n type: 'MultiLineString',\n // @ts-expect-error\n coordinates: c\n };\n}\n\nfunction parsePolygon(state: ParseWKTState): Geometry | null {\n if (!$(/^(POLYGON(\\sz)?)/i, state)) {\n return null;\n }\n white(state);\n const c = multicoords(state);\n if (!c) {\n return null;\n }\n return {\n // @ts-ignore\n type: 'Polygon',\n // @ts-expect-error\n coordinates: c\n };\n}\n\nfunction parseMultiPolygon(state: ParseWKTState): Geometry | null {\n if (!$(/^(MULTIPOLYGON)/i, state)) {\n return null;\n }\n white(state);\n const c = multicoords(state);\n if (!c) {\n return null;\n }\n return {\n type: 'MultiPolygon',\n // @ts-expect-error\n coordinates: c\n };\n}\n\nfunction parseGeometryCollection(state: ParseWKTState): Geometry | null {\n const geometries: Geometry[] = [];\n let geometry: Geometry | null;\n\n if (!$(/^(GEOMETRYCOLLECTION)/i, state)) {\n return null;\n }\n white(state);\n\n if (!$(/^(\\()/, state)) {\n return null;\n }\n while ((geometry = parseGeometry(state))) {\n geometries.push(geometry);\n white(state);\n $(/^(,)/, state);\n white(state);\n }\n if (!$(/^(\\))/, state)) {\n return null;\n }\n\n return {\n type: 'GeometryCollection',\n geometries: geometries\n };\n}\n\n// COORDINATES\n\nfunction multicoords(state: ParseWKTState): number[][] | null {\n white(state);\n let depth = 0;\n const rings: number[][] = [];\n const stack = [rings];\n let pointer: any = rings;\n let elem;\n\n while ((elem = $(/^(\\()/, state) || $(/^(\\))/, state) || $(/^(,)/, state) || $(tuples, state))) {\n if (elem === '(') {\n stack.push(pointer);\n pointer = [];\n stack[stack.length - 1].push(pointer);\n depth++;\n } else if (elem === ')') {\n // For the case: Polygon(), ...\n if (pointer.length === 0) return null;\n\n // @ts-ignore\n pointer = stack.pop();\n // the stack was empty, input was malformed\n if (!pointer) return null;\n depth--;\n if (depth === 0) break;\n } else if (elem === ',') {\n pointer = [];\n stack[stack.length - 1].push(pointer);\n } else if (!elem.split(/\\s/g).some(isNaN)) {\n Array.prototype.push.apply(pointer, elem.split(/\\s/g).map(parseFloat));\n } else {\n return null;\n }\n white(state);\n }\n\n if (depth !== 0) return null;\n\n return rings;\n}\n\nfunction coords(state: ParseWKTState): number[][] | null {\n const list: number[][] = [];\n let item: any;\n let pt;\n while ((pt = $(tuples, state) || $(/^(,)/, state))) {\n if (pt === ',') {\n list.push(item);\n item = [];\n } else if (!pt.split(/\\s/g).some(isNaN)) {\n if (!item) item = [];\n Array.prototype.push.apply(item, pt.split(/\\s/g).map(parseFloat));\n }\n white(state);\n }\n\n if (item) list.push(item);\n else return null;\n\n return list.length ? list : null;\n}\n\n// HELPERS\n\nfunction $(regexp: RegExp, state: ParseWKTState) {\n const match = state._?.substring(state.i).match(regexp);\n if (!match) return null;\n else {\n state.i += match[0].length;\n return match[0];\n }\n}\n\nfunction white(state: ParseWKTState) {\n $(/^\\s*/, state);\n}\n"],"mappings":"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"}
@@ -200,7 +200,7 @@
200
200
  }
201
201
 
202
202
  // src/lib/utils/version.ts
203
- var VERSION = true ? "4.0.0-beta.3" : "latest";
203
+ var VERSION = true ? "4.0.0-beta.5" : "latest";
204
204
 
205
205
  // src/lib/parse-wkt.ts
206
206
  var numberRegexp = /[-+]?([0-9]*\.[0-9]+|[0-9]+)([eE][-+]?[0-9]+)?/;
@@ -312,6 +312,7 @@
312
312
  }
313
313
  white(state);
314
314
  return {
315
+ // @ts-ignore
315
316
  type: "MultiLineString",
316
317
  // @ts-expect-error
317
318
  coordinates: c
@@ -327,6 +328,7 @@
327
328
  return null;
328
329
  }
329
330
  return {
331
+ // @ts-ignore
330
332
  type: "Polygon",
331
333
  // @ts-expect-error
332
334
  coordinates: c
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.0-beta.3",
4
+ "version": "4.0.0-beta.5",
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.0-beta.3",
47
- "@loaders.gl/schema": "4.0.0-beta.3"
46
+ "@loaders.gl/loader-utils": "4.0.0-beta.5",
47
+ "@loaders.gl/schema": "4.0.0-beta.5"
48
48
  },
49
- "gitHead": "7ba9621cc51c7a26c407086ac86171f35b8712af"
49
+ "gitHead": "a6f5a0d1a316cc22396e5a4d480c14329d1ef146"
50
50
  }
@@ -178,6 +178,7 @@ function parseMultiLineString(state: ParseWKTState): Geometry | null {
178
178
  }
179
179
  white(state);
180
180
  return {
181
+ // @ts-ignore
181
182
  type: 'MultiLineString',
182
183
  // @ts-expect-error
183
184
  coordinates: c
@@ -194,6 +195,7 @@ function parsePolygon(state: ParseWKTState): Geometry | null {
194
195
  return null;
195
196
  }
196
197
  return {
198
+ // @ts-ignore
197
199
  type: 'Polygon',
198
200
  // @ts-expect-error
199
201
  coordinates: c