@loaders.gl/wkt 4.3.2 → 4.4.0-alpha.2

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.
Files changed (111) hide show
  1. package/dist/dist.dev.js +1281 -1266
  2. package/dist/dist.min.js +2 -2
  3. package/dist/hex-wkb-loader.d.ts +6 -5
  4. package/dist/hex-wkb-loader.d.ts.map +1 -1
  5. package/dist/hex-wkb-loader.js +4 -4
  6. package/dist/index.cjs +51 -1622
  7. package/dist/index.cjs.map +4 -4
  8. package/dist/index.d.ts +0 -5
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +0 -5
  11. package/dist/lib/version.d.ts.map +1 -0
  12. package/dist/lib/{utils/version.js → version.js} +1 -1
  13. package/dist/twkb-loader.d.ts +3 -3
  14. package/dist/twkb-loader.d.ts.map +1 -1
  15. package/dist/twkb-loader.js +4 -4
  16. package/dist/twkb-writer.d.ts +2 -1
  17. package/dist/twkb-writer.d.ts.map +1 -1
  18. package/dist/twkb-writer.js +5 -4
  19. package/dist/wkb-loader.d.ts +13 -11
  20. package/dist/wkb-loader.d.ts.map +1 -1
  21. package/dist/wkb-loader.js +14 -6
  22. package/dist/wkb-writer.d.ts +3 -2
  23. package/dist/wkb-writer.d.ts.map +1 -1
  24. package/dist/wkb-writer.js +5 -4
  25. package/dist/wkt-crs-loader.d.ts +1 -1
  26. package/dist/wkt-crs-loader.d.ts.map +1 -1
  27. package/dist/wkt-crs-loader.js +2 -2
  28. package/dist/wkt-crs-writer.d.ts +1 -1
  29. package/dist/wkt-crs-writer.d.ts.map +1 -1
  30. package/dist/wkt-crs-writer.js +2 -2
  31. package/dist/wkt-loader.d.ts +2 -2
  32. package/dist/wkt-loader.d.ts.map +1 -1
  33. package/dist/wkt-loader.js +4 -4
  34. package/dist/wkt-worker.js +26 -13
  35. package/dist/wkt-writer.d.ts +6 -5
  36. package/dist/wkt-writer.d.ts.map +1 -1
  37. package/dist/wkt-writer.js +10 -7
  38. package/package.json +6 -6
  39. package/src/hex-wkb-loader.ts +8 -8
  40. package/src/index.ts +0 -10
  41. package/src/twkb-loader.ts +5 -5
  42. package/src/twkb-writer.ts +6 -5
  43. package/src/wkb-loader.ts +24 -12
  44. package/src/wkb-writer.ts +8 -7
  45. package/src/wkt-crs-loader.ts +3 -3
  46. package/src/wkt-crs-writer.ts +3 -5
  47. package/src/wkt-loader.ts +6 -5
  48. package/src/wkt-writer.ts +11 -8
  49. package/dist/lib/encode-twkb.d.ts +0 -6
  50. package/dist/lib/encode-twkb.d.ts.map +0 -1
  51. package/dist/lib/encode-twkb.js +0 -195
  52. package/dist/lib/encode-wkb.d.ts +0 -33
  53. package/dist/lib/encode-wkb.d.ts.map +0 -1
  54. package/dist/lib/encode-wkb.js +0 -286
  55. package/dist/lib/encode-wkt-crs.d.ts +0 -10
  56. package/dist/lib/encode-wkt-crs.d.ts.map +0 -1
  57. package/dist/lib/encode-wkt-crs.js +0 -35
  58. package/dist/lib/encode-wkt.d.ts +0 -8
  59. package/dist/lib/encode-wkt.d.ts.map +0 -1
  60. package/dist/lib/encode-wkt.js +0 -47
  61. package/dist/lib/parse-hex-wkb.d.ts +0 -1
  62. package/dist/lib/parse-hex-wkb.d.ts.map +0 -1
  63. package/dist/lib/parse-hex-wkb.js +0 -1
  64. package/dist/lib/parse-twkb.d.ts +0 -9
  65. package/dist/lib/parse-twkb.d.ts.map +0 -1
  66. package/dist/lib/parse-twkb.js +0 -253
  67. package/dist/lib/parse-wkb-header.d.ts +0 -39
  68. package/dist/lib/parse-wkb-header.d.ts.map +0 -1
  69. package/dist/lib/parse-wkb-header.js +0 -134
  70. package/dist/lib/parse-wkb.d.ts +0 -5
  71. package/dist/lib/parse-wkb.d.ts.map +0 -1
  72. package/dist/lib/parse-wkb.js +0 -241
  73. package/dist/lib/parse-wkt-crs.d.ts +0 -15
  74. package/dist/lib/parse-wkt-crs.d.ts.map +0 -1
  75. package/dist/lib/parse-wkt-crs.js +0 -120
  76. package/dist/lib/parse-wkt.d.ts +0 -30
  77. package/dist/lib/parse-wkt.d.ts.map +0 -1
  78. package/dist/lib/parse-wkt.js +0 -288
  79. package/dist/lib/utils/base64-encoder.d.ts +0 -5
  80. package/dist/lib/utils/base64-encoder.d.ts.map +0 -1
  81. package/dist/lib/utils/base64-encoder.js +0 -153
  82. package/dist/lib/utils/binary-reader.d.ts +0 -18
  83. package/dist/lib/utils/binary-reader.d.ts.map +0 -1
  84. package/dist/lib/utils/binary-reader.js +0 -69
  85. package/dist/lib/utils/binary-writer.d.ts +0 -28
  86. package/dist/lib/utils/binary-writer.d.ts.map +0 -1
  87. package/dist/lib/utils/binary-writer.js +0 -121
  88. package/dist/lib/utils/hex-encoder.d.ts +0 -15
  89. package/dist/lib/utils/hex-encoder.d.ts.map +0 -1
  90. package/dist/lib/utils/hex-encoder.js +0 -54
  91. package/dist/lib/utils/hex-transcoder.d.ts +0 -15
  92. package/dist/lib/utils/hex-transcoder.d.ts.map +0 -1
  93. package/dist/lib/utils/hex-transcoder.js +0 -50
  94. package/dist/lib/utils/version.d.ts.map +0 -1
  95. package/src/lib/encode-twkb.ts +0 -308
  96. package/src/lib/encode-wkb.ts +0 -390
  97. package/src/lib/encode-wkt-crs.ts +0 -41
  98. package/src/lib/encode-wkt.ts +0 -56
  99. package/src/lib/parse-hex-wkb.ts +0 -0
  100. package/src/lib/parse-twkb.ts +0 -365
  101. package/src/lib/parse-wkb-header.ts +0 -174
  102. package/src/lib/parse-wkb.ts +0 -343
  103. package/src/lib/parse-wkt-crs.ts +0 -149
  104. package/src/lib/parse-wkt.ts +0 -327
  105. package/src/lib/utils/base64-encoder.ts +0 -157
  106. package/src/lib/utils/binary-reader.ts +0 -76
  107. package/src/lib/utils/binary-writer.ts +0 -127
  108. package/src/lib/utils/hex-encoder.ts +0 -60
  109. package/src/lib/utils/hex-transcoder.ts +0 -54
  110. /package/dist/lib/{utils/version.d.ts → version.d.ts} +0 -0
  111. /package/src/lib/{utils/version.ts → version.ts} +0 -0
@@ -1,8 +1,8 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- import { VERSION } from "./lib/utils/version.js";
5
- import { encodeWKB } from "./lib/encode-wkb.js";
4
+ import { convertGeometryToWKB } from '@loaders.gl/gis';
5
+ import { VERSION } from "./lib/version.js";
6
6
  /**
7
7
  * WKB exporter
8
8
  */
@@ -12,6 +12,7 @@ export const WKBWriter = {
12
12
  module: 'wkt',
13
13
  version: VERSION,
14
14
  extensions: ['wkb'],
15
+ mimeTypes: ['application/wkb', 'application/octet-stream'],
15
16
  options: {
16
17
  wkb: {
17
18
  hasZ: false,
@@ -19,9 +20,9 @@ export const WKBWriter = {
19
20
  }
20
21
  },
21
22
  async encode(data, options) {
22
- return encodeWKB(data, options?.wkb);
23
+ return convertGeometryToWKB(data); // , options?.wkb);
23
24
  },
24
25
  encodeSync(data, options) {
25
- return encodeWKB(data, options?.wkb);
26
+ return convertGeometryToWKB(data); // , options?.wkb);
26
27
  }
27
28
  };
@@ -1,5 +1,5 @@
1
1
  import type { LoaderOptions } from '@loaders.gl/loader-utils';
2
- import type { ParseWKTCRSOptions, WKTCRS } from "./lib/parse-wkt-crs.js";
2
+ import type { ParseWKTCRSOptions, WKTCRS } from '@loaders.gl/gis';
3
3
  export type WKTCRSLoaderOptions = LoaderOptions & {
4
4
  'wkt-crs'?: ParseWKTCRSOptions;
5
5
  };
@@ -1 +1 @@
1
- {"version":3,"file":"wkt-crs-loader.d.ts","sourceRoot":"","sources":["../src/wkt-crs-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAmB,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAE9E,OAAO,KAAK,EAAC,kBAAkB,EAAE,MAAM,EAAC,+BAA4B;AAGpE,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG;IAChD,SAAS,CAAC,EAAE,kBAAkB,CAAC;CAChC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY;uBACM,MAAM;wBAChB,KAAK;;;;;;;;;;;;;;;CAgB+C,CAAC"}
1
+ {"version":3,"file":"wkt-crs-loader.d.ts","sourceRoot":"","sources":["../src/wkt-crs-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAmB,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAC,kBAAkB,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAIhE,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG;IAChD,SAAS,CAAC,EAAE,kBAAkB,CAAC;CAChC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY;uBACM,MAAM;wBAChB,KAAK;;;;;;;;;;;;;;;CAgB+C,CAAC"}
@@ -1,8 +1,8 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- import { VERSION } from "./lib/utils/version.js";
5
- import { parseWKTCRS } from "./lib/parse-wkt-crs.js";
4
+ import { parseWKTCRS } from '@loaders.gl/gis';
5
+ import { VERSION } from "./lib/version.js";
6
6
  /**
7
7
  * Well-Known text CRS loader
8
8
  * @see OGC Standard: https://www.ogc.org/standards/wkt-crs
@@ -1,5 +1,5 @@
1
1
  import type { WriterOptions } from '@loaders.gl/loader-utils';
2
- import type { EncodeWKTCRSOptions } from "./lib/encode-wkt-crs.js";
2
+ import type { EncodeWKTCRSOptions } from '@loaders.gl/gis';
3
3
  export type WKTCRSWriterOptions = WriterOptions & {
4
4
  'wkt-crs'?: EncodeWKTCRSOptions;
5
5
  };
@@ -1 +1 @@
1
- {"version":3,"file":"wkt-crs-writer.d.ts","sourceRoot":"","sources":["../src/wkt-crs-writer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAoB,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAI/E,OAAO,KAAK,EAAC,mBAAmB,EAAC,gCAA6B;AAG9D,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG;IAChD,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACjC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;CAkBiD,CAAC"}
1
+ {"version":3,"file":"wkt-crs-writer.d.ts","sourceRoot":"","sources":["../src/wkt-crs-writer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAoB,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAC/E,OAAO,KAAK,EAAS,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AAIjE,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG;IAChD,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACjC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;CAkBiD,CAAC"}
@@ -1,8 +1,8 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- import { VERSION } from "./lib/utils/version.js";
5
- import { encodeWKTCRS } from "./lib/encode-wkt-crs.js";
4
+ import { encodeWKTCRS } from '@loaders.gl/gis';
5
+ import { VERSION } from "./lib/version.js";
6
6
  /**
7
7
  * Well-Known text CRS loader
8
8
  * @see OGC Standard: https://www.ogc.org/standards/wkt-crs
@@ -1,6 +1,6 @@
1
1
  import type { LoaderOptions } from '@loaders.gl/loader-utils';
2
- import { isWKT } from "./lib/parse-wkt.js";
3
- import { Geometry } from '@loaders.gl/schema';
2
+ import type { Geometry } from '@loaders.gl/schema';
3
+ import { isWKT } from '@loaders.gl/gis';
4
4
  export type WKTLoaderOptions = LoaderOptions & {
5
5
  /** Options for the WKTLoader */
6
6
  wkt?: {
@@ -1 +1 @@
1
- {"version":3,"file":"wkt-loader.d.ts","sourceRoot":"","sources":["../src/wkt-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAA2B,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAEtF,OAAO,EAAW,KAAK,EAAoB,2BAAwB;AACnE,OAAO,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAE5C,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,gCAAgC;IAChC,GAAG,CAAC,EAAE;QACJ,iCAAiC;QACjC,KAAK,CAAC,EAAE,kBAAkB,CAAC;QAC3B,8FAA8F;QAC9F,GAAG,CAAC,EAAE,OAAO,CAAC;QACd,8EAA8E;QAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe;uBACG,QAAQ;wBAClB,KAAK;;;;;;;;;;;;;;;;;;CAmBoC,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,SAAS;;qCAGI,MAAM;uBA5BD,QAAQ;wBAClB,KAAK;;;;;;;;;;;;;;;;;;CA4B8C,CAAC"}
1
+ {"version":3,"file":"wkt-loader.d.ts","sourceRoot":"","sources":["../src/wkt-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAA2B,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACtF,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,KAAK,EAA0C,MAAM,iBAAiB,CAAC;AAG/E,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,gCAAgC;IAChC,GAAG,CAAC,EAAE;QACJ,iCAAiC;QACjC,KAAK,CAAC,EAAE,kBAAkB,CAAC;QAC3B,8FAA8F;QAC9F,GAAG,CAAC,EAAE,OAAO,CAAC;QACd,8EAA8E;QAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe;uBACG,QAAQ;wBAClB,KAAK;;;;;;;;;;;;;;;;;;CAmBoC,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,SAAS;;qCAII,MAAM;uBA7BD,QAAQ;wBAClB,KAAK;;;;;;;;;;;;;;;;;;CA6B8C,CAAC"}
@@ -1,8 +1,8 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- import { VERSION } from "./lib/utils/version.js";
5
- import { parseWKT, isWKT, WKT_MAGIC_STRINGS } from "./lib/parse-wkt.js";
4
+ import { isWKT, WKT_MAGIC_STRINGS, convertWKTToGeometry } from '@loaders.gl/gis';
5
+ import { VERSION } from "./lib/version.js";
6
6
  /**
7
7
  * Well-Known text worker loader
8
8
  */
@@ -32,6 +32,6 @@ export const WKTWorkerLoader = {
32
32
  */
33
33
  export const WKTLoader = {
34
34
  ...WKTWorkerLoader,
35
- parse: async (arrayBuffer, options) => parseWKT(new TextDecoder().decode(arrayBuffer), options),
36
- parseTextSync: (string, options) => parseWKT(string, options)
35
+ parse: async (arrayBuffer, options) => convertWKTToGeometry(new TextDecoder().decode(arrayBuffer), options),
36
+ parseTextSync: (string, options) => convertWKTToGeometry(string, options)
37
37
  };
@@ -199,12 +199,7 @@
199
199
  return await parser(data, { ...options }, context, loader);
200
200
  }
201
201
 
202
- // src/lib/utils/version.ts
203
- var VERSION = true ? "4.3.1" : "latest";
204
-
205
- // src/lib/parse-wkt.ts
206
- var numberRegexp = /[-+]?([0-9]*\.[0-9]+|[0-9]+)([eE][-+]?[0-9]+)?/;
207
- var tuples = new RegExp("^" + numberRegexp.source + "(\\s" + numberRegexp.source + "){1,}");
202
+ // ../gis/src/lib/geometry-converters/wkb/helpers/wkb-types.ts
208
203
  var WKT_MAGIC_STRINGS = [
209
204
  "POINT(",
210
205
  "LINESTRING(",
@@ -213,15 +208,30 @@
213
208
  "MULTILINESTRING(",
214
209
  "MULTIPOLYGON(",
215
210
  "GEOMETRYCOLLECTION("
216
- // We only support this "geojson" subset of the OGC simple features standard
217
211
  ];
212
+ var textEncoder = new TextEncoder();
213
+ var WKT_MAGIC_BYTES = WKT_MAGIC_STRINGS.map((string) => textEncoder.encode(string));
214
+
215
+ // ../gis/src/lib/geometry-converters/wkb/helpers/parse-wkb-header.ts
218
216
  function isWKT(input) {
219
- return WKT_MAGIC_STRINGS.some((magicString) => input.startsWith(magicString));
217
+ return getWKTGeometryType(input) !== null;
220
218
  }
221
- function parseWKT(input, options) {
222
- return parseWKTToGeometry(input, options);
219
+ function getWKTGeometryType(input) {
220
+ if (typeof input === "string") {
221
+ const index2 = WKT_MAGIC_STRINGS.findIndex((magicString) => input.startsWith(magicString));
222
+ return index2 >= 0 ? index2 + 1 : null;
223
+ }
224
+ const inputArray = new Uint8Array(input);
225
+ const index = WKT_MAGIC_BYTES.findIndex(
226
+ (magicBytes) => magicBytes.every((value, index2) => value === inputArray[index2])
227
+ );
228
+ return index >= 0 ? index + 1 : null;
223
229
  }
224
- function parseWKTToGeometry(input, options) {
230
+
231
+ // ../gis/src/lib/geometry-converters/wkb/convert-wkt-to-geometry.ts
232
+ var numberRegexp = /[-+]?([0-9]*\.[0-9]+|[0-9]+)([eE][-+]?[0-9]+)?/;
233
+ var tuples = new RegExp("^" + numberRegexp.source + "(\\s" + numberRegexp.source + "){1,}");
234
+ function convertWKTToGeometry(input, options) {
225
235
  const parts = input.split(";");
226
236
  let _ = parts.pop();
227
237
  const srid = (parts.shift() || "").split("=").pop();
@@ -443,6 +453,9 @@
443
453
  $(/^\s*/, state);
444
454
  }
445
455
 
456
+ // src/lib/version.ts
457
+ var VERSION = true ? "4.4.0-alpha.1" : "latest";
458
+
446
459
  // src/wkt-loader.ts
447
460
  var WKTWorkerLoader = {
448
461
  dataType: null,
@@ -467,8 +480,8 @@
467
480
  };
468
481
  var WKTLoader = {
469
482
  ...WKTWorkerLoader,
470
- parse: async (arrayBuffer, options) => parseWKT(new TextDecoder().decode(arrayBuffer), options),
471
- parseTextSync: (string, options) => parseWKT(string, options)
483
+ parse: async (arrayBuffer, options) => convertWKTToGeometry(new TextDecoder().decode(arrayBuffer), options),
484
+ parseTextSync: (string, options) => convertWKTToGeometry(string, options)
472
485
  };
473
486
 
474
487
  // src/workers/wkt-worker.ts
@@ -1,6 +1,6 @@
1
1
  import type { WriterOptions } from '@loaders.gl/loader-utils';
2
- import { encodeWKT } from "./lib/encode-wkt.js";
3
- import { Geometry } from '@loaders.gl/schema';
2
+ import type { Geometry } from '@loaders.gl/schema';
3
+ import { convertGeometryToWKT } from '@loaders.gl/gis';
4
4
  export type WKTWriterOptions = WriterOptions & {
5
5
  wkt?: {};
6
6
  };
@@ -13,14 +13,15 @@ export declare const WKTWriter: {
13
13
  readonly module: "wkt";
14
14
  readonly version: any;
15
15
  readonly extensions: ["wkt"];
16
+ readonly mimeTypes: ["application/wkt", "text/plain"];
16
17
  readonly text: true;
17
18
  readonly encode: (geometry: Geometry) => Promise<ArrayBuffer>;
18
- readonly encodeSync: typeof encodeWKTSync;
19
- readonly encodeTextSync: typeof encodeWKT;
19
+ readonly encodeSync: typeof convertGeometryToWKTSync;
20
+ readonly encodeTextSync: typeof convertGeometryToWKT;
20
21
  readonly options: {
21
22
  readonly wkt: {};
22
23
  };
23
24
  };
24
- declare function encodeWKTSync(geometry: Geometry): ArrayBuffer;
25
+ declare function convertGeometryToWKTSync(geometry: Geometry): ArrayBuffer;
25
26
  export {};
26
27
  //# sourceMappingURL=wkt-writer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wkt-writer.d.ts","sourceRoot":"","sources":["../src/wkt-writer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAoB,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAE/E,OAAO,EAAC,SAAS,EAAC,4BAAyB;AAC3C,OAAO,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAE5C,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE,EAAE,CAAC;CACV,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;gCAOK,QAAQ;;;;;;CAMsC,CAAC;AAE1E,iBAAS,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,WAAW,CAEtD"}
1
+ {"version":3,"file":"wkt-writer.d.ts","sourceRoot":"","sources":["../src/wkt-writer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAoB,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAC/E,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,oBAAoB,EAAC,MAAM,iBAAiB,CAAC;AAGrD,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE,EAAE,CAAC;CACV,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;gCAQK,QAAQ;;;;;;CAMsC,CAAC;AAE1E,iBAAS,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,GAAG,WAAW,CAIjE"}
@@ -1,8 +1,8 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- import { VERSION } from "./lib/utils/version.js";
5
- import { encodeWKT } from "./lib/encode-wkt.js";
4
+ import { convertGeometryToWKT } from '@loaders.gl/gis';
5
+ import { VERSION } from "./lib/version.js";
6
6
  /**
7
7
  * WKT exporter
8
8
  */
@@ -12,14 +12,17 @@ export const WKTWriter = {
12
12
  module: 'wkt',
13
13
  version: VERSION,
14
14
  extensions: ['wkt'],
15
+ mimeTypes: ['application/wkt', 'text/plain'],
15
16
  text: true,
16
- encode: async (geometry) => encodeWKTSync(geometry),
17
- encodeSync: encodeWKTSync,
18
- encodeTextSync: encodeWKT,
17
+ encode: async (geometry) => convertGeometryToWKTSync(geometry),
18
+ encodeSync: convertGeometryToWKTSync,
19
+ encodeTextSync: convertGeometryToWKT,
19
20
  options: {
20
21
  wkt: {}
21
22
  }
22
23
  };
23
- function encodeWKTSync(geometry) {
24
- return new TextEncoder().encode(encodeWKT(geometry)).buffer;
24
+ function convertGeometryToWKTSync(geometry) {
25
+ const wktString = convertGeometryToWKT(geometry);
26
+ const wktTypedArray = new TextEncoder().encode(wktString);
27
+ return wktTypedArray.buffer;
25
28
  }
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.3.2",
4
+ "version": "4.4.0-alpha.2",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "publishConfig": {
@@ -44,12 +44,12 @@
44
44
  "fuzzer": "^0.2.1"
45
45
  },
46
46
  "dependencies": {
47
- "@loaders.gl/gis": "4.3.2",
48
- "@loaders.gl/loader-utils": "4.3.2",
49
- "@loaders.gl/schema": "4.3.2"
47
+ "@loaders.gl/gis": "4.4.0-alpha.2",
48
+ "@loaders.gl/loader-utils": "4.4.0-alpha.2",
49
+ "@loaders.gl/schema": "4.4.0-alpha.2"
50
50
  },
51
51
  "peerDependencies": {
52
- "@loaders.gl/core": "^4.3.0"
52
+ "@loaders.gl/core": "4.4.0-alpha.1"
53
53
  },
54
- "gitHead": "b4203b8703f64a38d6f79a3113bc7bb51d45c93a"
54
+ "gitHead": "3d9fed050eabdc0812ddf2f4d5fb9914a34ee0c2"
55
55
  }
@@ -3,12 +3,12 @@
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
5
  import type {LoaderWithParser} from '@loaders.gl/loader-utils';
6
- import {BinaryGeometry} from '@loaders.gl/schema';
6
+ import type {Geometry} from '@loaders.gl/schema';
7
+ import {convertWKBToGeometry, decodeHex} from '@loaders.gl/gis';
7
8
 
8
9
  import type {WKBLoaderOptions} from './wkb-loader';
9
10
  import {WKBLoader} from './wkb-loader';
10
- import {VERSION} from './lib/utils/version';
11
- import {decodeHex} from './lib/utils/hex-transcoder';
11
+ import {VERSION} from './lib/version';
12
12
 
13
13
  export type HexWKBLoaderOptions = WKBLoaderOptions;
14
14
 
@@ -16,7 +16,7 @@ export type HexWKBLoaderOptions = WKBLoaderOptions;
16
16
  * Worker loader for Hex-encoded WKB (Well-Known Binary)
17
17
  */
18
18
  export const HexWKBLoader = {
19
- dataType: null as unknown as BinaryGeometry,
19
+ dataType: null as unknown as Geometry,
20
20
  batchType: null as never,
21
21
  name: 'Hexadecimal WKB',
22
22
  id: 'wkb',
@@ -32,12 +32,11 @@ export const HexWKBLoader = {
32
32
  // TODO - encoding here seems wasteful - extend hex transcoder?
33
33
  parse: async (arrayBuffer: ArrayBuffer) => parseHexWKB(new TextDecoder().decode(arrayBuffer)),
34
34
  parseTextSync: parseHexWKB
35
- } as const satisfies LoaderWithParser<BinaryGeometry, never, HexWKBLoaderOptions>;
35
+ } as const satisfies LoaderWithParser<Geometry, never, HexWKBLoaderOptions>;
36
36
 
37
- function parseHexWKB(text: string, options?: HexWKBLoaderOptions): BinaryGeometry {
37
+ function parseHexWKB(text: string, options?: HexWKBLoaderOptions): Geometry {
38
38
  const uint8Array = decodeHex(text);
39
- const binaryGeometry = WKBLoader.parseSync?.(uint8Array.buffer, options);
40
- // @ts-expect-error
39
+ const binaryGeometry = convertWKBToGeometry(uint8Array.buffer); // , options?.wkb);
41
40
  return binaryGeometry;
42
41
  }
43
42
 
@@ -47,6 +46,7 @@ function parseHexWKB(text: string, options?: HexWKBLoaderOptions): BinaryGeometr
47
46
  *
48
47
  * @param str input string
49
48
  * @returns true if string is a valid WKB in HEX format
49
+ * @todo Avoid costly regex check
50
50
  */
51
51
  export function isHexWKB(string: string | null): boolean {
52
52
  if (!string) {
package/src/index.ts CHANGED
@@ -15,13 +15,3 @@ export {HexWKBLoader} from './hex-wkb-loader';
15
15
 
16
16
  export {TWKBLoader} from './twkb-loader';
17
17
  export {TWKBWriter} from './twkb-writer';
18
-
19
- // EXPERIMENTAL APIs
20
- export {isWKT} from './lib/parse-wkt';
21
-
22
- export {isWKB, parseWKBHeader} from './lib/parse-wkb-header';
23
- export type {WKBHeader} from './lib/parse-wkb-header';
24
-
25
- export {isTWKB} from './lib/parse-twkb';
26
-
27
- export {encodeHex, decodeHex} from './lib/utils/hex-transcoder';
@@ -3,9 +3,9 @@
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
5
  import type {Loader, LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';
6
- import {BinaryGeometry, Geometry} from '@loaders.gl/schema';
7
- import {VERSION} from './lib/utils/version';
8
- import {parseTWKBGeometry, isTWKB} from './lib/parse-twkb';
6
+ import type {BinaryGeometry, Geometry} from '@loaders.gl/schema';
7
+ import {convertTWKBToGeometry, isTWKB} from '@loaders.gl/gis';
8
+ import {VERSION} from './lib/version';
9
9
 
10
10
  export type WKBLoaderOptions = LoaderOptions & {
11
11
  wkb?: {
@@ -42,6 +42,6 @@ export const TWKBWorkerLoader = {
42
42
  */
43
43
  export const TWKBLoader = {
44
44
  ...TWKBWorkerLoader,
45
- parse: async (arrayBuffer: ArrayBuffer) => parseTWKBGeometry(arrayBuffer),
46
- parseSync: parseTWKBGeometry
45
+ parse: async (arrayBuffer: ArrayBuffer) => convertTWKBToGeometry(arrayBuffer),
46
+ parseSync: convertTWKBToGeometry
47
47
  } as const satisfies LoaderWithParser<BinaryGeometry | Geometry, never, WKBLoaderOptions>;
@@ -3,9 +3,9 @@
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
5
  import type {WriterWithEncoder, WriterOptions} from '@loaders.gl/loader-utils';
6
- import {VERSION} from './lib/utils/version';
7
- import {encodeTWKB} from './lib/encode-twkb';
8
- import {Geometry} from '@loaders.gl/schema';
6
+ import type {Geometry} from '@loaders.gl/schema';
7
+ import {convertGeometryToTWKB} from '@loaders.gl/gis';
8
+ import {VERSION} from './lib/version';
9
9
 
10
10
  export type TWKBWriterOptions = WriterOptions & {
11
11
  twkb?: {
@@ -23,10 +23,11 @@ export const TWKBWriter = {
23
23
  module: 'wkt',
24
24
  version: VERSION,
25
25
  extensions: ['twkb'],
26
+ mimeTypes: ['application/text'],
26
27
  encode: async (geometry: Geometry, options?: TWKBWriterOptions) =>
27
- encodeTWKB(geometry, options?.twkb),
28
+ convertGeometryToTWKB(geometry, options?.twkb),
28
29
  encodeSync: (geometry: Geometry, options?: TWKBWriterOptions) =>
29
- encodeTWKB(geometry, options?.twkb),
30
+ convertGeometryToTWKB(geometry, options?.twkb),
30
31
  options: {
31
32
  twkb: {
32
33
  hasZ: false,
package/src/wkb-loader.ts CHANGED
@@ -3,15 +3,14 @@
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
5
  import type {Loader, LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';
6
- import {BinaryGeometry, Geometry} from '@loaders.gl/schema';
7
- import {VERSION} from './lib/utils/version';
8
- import {parseWKB} from './lib/parse-wkb';
9
- import {isWKB} from './lib/parse-wkb-header';
6
+ import type {Geometry} from '@loaders.gl/schema';
7
+ import {convertWKBToGeometry, isWKB} from '@loaders.gl/gis';
8
+ import {VERSION} from './lib/version';
10
9
 
11
10
  export type WKBLoaderOptions = LoaderOptions & {
12
11
  wkb?: {
13
- /** 'geometry' is deprecated use 'geojson-geometry' */
14
- shape: 'geojson-geometry' | 'binary-geometry' | 'geometry';
12
+ /** Shape is deprecated, only geojson is supported */
13
+ shape: 'geojson-geometry';
15
14
  };
16
15
  };
17
16
 
@@ -19,7 +18,7 @@ export type WKBLoaderOptions = LoaderOptions & {
19
18
  * Worker loader for WKB (Well-Known Binary)
20
19
  */
21
20
  export const WKBWorkerLoader = {
22
- dataType: null as unknown as Geometry | BinaryGeometry,
21
+ dataType: null as unknown as Geometry,
23
22
  batchType: null as never,
24
23
  name: 'WKB',
25
24
  id: 'wkb',
@@ -33,16 +32,29 @@ export const WKBWorkerLoader = {
33
32
  tests: [isWKB],
34
33
  options: {
35
34
  wkb: {
36
- shape: 'binary-geometry' // 'geojson-geometry'
35
+ shape: 'geojson-geometry'
37
36
  }
38
37
  }
39
- } as const satisfies Loader<Geometry | BinaryGeometry, never, WKBLoaderOptions>;
38
+ } as const satisfies Loader<Geometry, never, WKBLoaderOptions>;
40
39
 
41
40
  /**
42
41
  * Loader for WKB (Well-Known Binary)
43
42
  */
44
43
  export const WKBLoader = {
45
44
  ...WKBWorkerLoader,
46
- parse: async (arrayBuffer: ArrayBuffer) => parseWKB(arrayBuffer),
47
- parseSync: parseWKB
48
- } as const satisfies LoaderWithParser<BinaryGeometry | Geometry, never, WKBLoaderOptions>;
45
+ parse: async (arrayBuffer: ArrayBuffer, options?) => parseWKB(arrayBuffer, options?.wkb),
46
+ parseSync: (arrayBuffer: ArrayBuffer, options?) => parseWKB(arrayBuffer, options?.wkb)
47
+ } as const satisfies LoaderWithParser<Geometry, never, WKBLoaderOptions>;
48
+
49
+ export function parseWKB(
50
+ arrayBuffer: ArrayBuffer,
51
+ options?: {shape?: 'geojson-geometry'}
52
+ ): Geometry {
53
+ const shape = options?.shape || 'geojson-geometry';
54
+ switch (shape) {
55
+ case 'geojson-geometry':
56
+ return convertWKBToGeometry(arrayBuffer);
57
+ default:
58
+ throw new Error(shape);
59
+ }
60
+ }
package/src/wkb-writer.ts CHANGED
@@ -3,9 +3,9 @@
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
5
  import type {WriterWithEncoder, WriterOptions} from '@loaders.gl/loader-utils';
6
- import {VERSION} from './lib/utils/version';
7
- import {encodeWKB} from './lib/encode-wkb';
8
6
  import type {Geometry, Feature} from '@loaders.gl/schema';
7
+ import {convertGeometryToWKB} from '@loaders.gl/gis';
8
+ import {VERSION} from './lib/version';
9
9
 
10
10
  export type WKBWriterOptions = WriterOptions & {
11
11
  wkb?: {
@@ -29,16 +29,17 @@ export const WKBWriter = {
29
29
  module: 'wkt',
30
30
  version: VERSION,
31
31
  extensions: ['wkb'],
32
+ mimeTypes: ['application/wkb', 'application/octet-stream'],
32
33
  options: {
33
34
  wkb: {
34
35
  hasZ: false,
35
36
  hasM: false
36
37
  }
37
38
  },
38
- async encode(data: Geometry | Feature, options?: WriterOptions): Promise<ArrayBuffer> {
39
- return encodeWKB(data, options?.wkb);
39
+ async encode(data: Geometry | Feature, options?: WKBWriterOptions): Promise<ArrayBuffer> {
40
+ return convertGeometryToWKB(data); // , options?.wkb);
40
41
  },
41
- encodeSync(data: Geometry | Feature, options?: WriterOptions): ArrayBuffer {
42
- return encodeWKB(data, options?.wkb);
42
+ encodeSync(data: Geometry | Feature, options?: WKBWriterOptions): ArrayBuffer {
43
+ return convertGeometryToWKB(data); // , options?.wkb);
43
44
  }
44
- } as const satisfies WriterWithEncoder<Geometry | Feature, never, WriterOptions>;
45
+ } as const satisfies WriterWithEncoder<Geometry | Feature, never, WKBWriterOptions>;
@@ -3,9 +3,9 @@
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
5
  import type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';
6
- import {VERSION} from './lib/utils/version';
7
- import type {ParseWKTCRSOptions, WKTCRS} from './lib/parse-wkt-crs';
8
- import {parseWKTCRS} from './lib/parse-wkt-crs';
6
+ import type {ParseWKTCRSOptions, WKTCRS} from '@loaders.gl/gis';
7
+ import {parseWKTCRS} from '@loaders.gl/gis';
8
+ import {VERSION} from './lib/version';
9
9
 
10
10
  export type WKTCRSLoaderOptions = LoaderOptions & {
11
11
  'wkt-crs'?: ParseWKTCRSOptions;
@@ -3,11 +3,9 @@
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
5
  import type {WriterWithEncoder, WriterOptions} from '@loaders.gl/loader-utils';
6
- import {VERSION} from './lib/utils/version';
7
-
8
- import type {WKTCRS} from './lib/parse-wkt-crs';
9
- import type {EncodeWKTCRSOptions} from './lib/encode-wkt-crs';
10
- import {encodeWKTCRS} from './lib/encode-wkt-crs';
6
+ import type {WKTCRS, EncodeWKTCRSOptions} from '@loaders.gl/gis';
7
+ import {encodeWKTCRS} from '@loaders.gl/gis';
8
+ import {VERSION} from './lib/version';
11
9
 
12
10
  export type WKTCRSWriterOptions = WriterOptions & {
13
11
  'wkt-crs'?: EncodeWKTCRSOptions;
package/src/wkt-loader.ts CHANGED
@@ -3,9 +3,9 @@
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
5
  import type {Loader, LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';
6
- import {VERSION} from './lib/utils/version';
7
- import {parseWKT, isWKT, WKT_MAGIC_STRINGS} from './lib/parse-wkt';
8
- import {Geometry} from '@loaders.gl/schema';
6
+ import type {Geometry} from '@loaders.gl/schema';
7
+ import {isWKT, WKT_MAGIC_STRINGS, convertWKTToGeometry} from '@loaders.gl/gis';
8
+ import {VERSION} from './lib/version';
9
9
 
10
10
  export type WKTLoaderOptions = LoaderOptions & {
11
11
  /** Options for the WKTLoader */
@@ -50,6 +50,7 @@ export const WKTWorkerLoader = {
50
50
  */
51
51
  export const WKTLoader = {
52
52
  ...WKTWorkerLoader,
53
- parse: async (arrayBuffer, options?) => parseWKT(new TextDecoder().decode(arrayBuffer), options),
54
- parseTextSync: (string: string, options?) => parseWKT(string, options)
53
+ parse: async (arrayBuffer, options?) =>
54
+ convertWKTToGeometry(new TextDecoder().decode(arrayBuffer), options)!,
55
+ parseTextSync: (string: string, options?) => convertWKTToGeometry(string, options)!
55
56
  } as const satisfies LoaderWithParser<Geometry, never, WKTLoaderOptions>;
package/src/wkt-writer.ts CHANGED
@@ -3,9 +3,9 @@
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
5
  import type {WriterWithEncoder, WriterOptions} from '@loaders.gl/loader-utils';
6
- import {VERSION} from './lib/utils/version';
7
- import {encodeWKT} from './lib/encode-wkt';
8
- import {Geometry} from '@loaders.gl/schema';
6
+ import type {Geometry} from '@loaders.gl/schema';
7
+ import {convertGeometryToWKT} from '@loaders.gl/gis';
8
+ import {VERSION} from './lib/version';
9
9
 
10
10
  export type WKTWriterOptions = WriterOptions & {
11
11
  wkt?: {};
@@ -20,15 +20,18 @@ export const WKTWriter = {
20
20
  module: 'wkt',
21
21
  version: VERSION,
22
22
  extensions: ['wkt'],
23
+ mimeTypes: ['application/wkt', 'text/plain'],
23
24
  text: true,
24
- encode: async (geometry: Geometry) => encodeWKTSync(geometry),
25
- encodeSync: encodeWKTSync,
26
- encodeTextSync: encodeWKT,
25
+ encode: async (geometry: Geometry) => convertGeometryToWKTSync(geometry),
26
+ encodeSync: convertGeometryToWKTSync,
27
+ encodeTextSync: convertGeometryToWKT,
27
28
  options: {
28
29
  wkt: {}
29
30
  }
30
31
  } as const satisfies WriterWithEncoder<Geometry, never, WKTWriterOptions>;
31
32
 
32
- function encodeWKTSync(geometry: Geometry): ArrayBuffer {
33
- return new TextEncoder().encode(encodeWKT(geometry)).buffer;
33
+ function convertGeometryToWKTSync(geometry: Geometry): ArrayBuffer {
34
+ const wktString = convertGeometryToWKT(geometry);
35
+ const wktTypedArray = new TextEncoder().encode(wktString);
36
+ return wktTypedArray.buffer;
34
37
  }
@@ -1,6 +0,0 @@
1
- import type { Geometry } from '@loaders.gl/schema';
2
- export declare function encodeTWKB(geometry: Geometry, options?: {
3
- hasZ?: boolean;
4
- hasM?: boolean;
5
- }): ArrayBuffer;
6
- //# sourceMappingURL=encode-twkb.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"encode-twkb.d.ts","sourceRoot":"","sources":["../../src/lib/encode-twkb.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAQV,QAAQ,EACT,MAAM,oBAAoB,CAAC;AAmB5B,wBAAgB,UAAU,CACxB,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAC,GACzC,WAAW,CAab"}