@maplibre/mlt 0.0.1-alpha.6

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 (215) hide show
  1. package/README.md +28 -0
  2. package/dist/encodings/decodingUtils.d.ts +13 -0
  3. package/dist/encodings/decodingUtils.js +194 -0
  4. package/dist/encodings/decodingUtils.js.map +1 -0
  5. package/dist/encodings/doubleDecoder.d.ts +4 -0
  6. package/dist/encodings/doubleDecoder.js +22 -0
  7. package/dist/encodings/doubleDecoder.js.map +1 -0
  8. package/dist/encodings/fastpfor/bitpacking.d.ts +51 -0
  9. package/dist/encodings/fastpfor/bitpacking.js +4444 -0
  10. package/dist/encodings/fastpfor/bitpacking.js.map +1 -0
  11. package/dist/encodings/fastpfor/codec.d.ts +19 -0
  12. package/dist/encodings/fastpfor/codec.js +3 -0
  13. package/dist/encodings/fastpfor/codec.js.map +1 -0
  14. package/dist/encodings/fastpfor/fastpfor.d.ts +38 -0
  15. package/dist/encodings/fastpfor/fastpfor.js +123 -0
  16. package/dist/encodings/fastpfor/fastpfor.js.map +1 -0
  17. package/dist/encodings/fastpfor/index.d.ts +20 -0
  18. package/dist/encodings/fastpfor/index.js +47 -0
  19. package/dist/encodings/fastpfor/index.js.map +1 -0
  20. package/dist/encodings/fastpfor/util.d.ts +2 -0
  21. package/dist/encodings/fastpfor/util.js +16 -0
  22. package/dist/encodings/fastpfor/util.js.map +1 -0
  23. package/dist/encodings/fastpfor/varint.d.ts +18 -0
  24. package/dist/encodings/fastpfor/varint.js +125 -0
  25. package/dist/encodings/fastpfor/varint.js.map +1 -0
  26. package/dist/encodings/fsstDecoder.d.ts +9 -0
  27. package/dist/encodings/fsstDecoder.js +34 -0
  28. package/dist/encodings/fsstDecoder.js.map +1 -0
  29. package/dist/encodings/geometryDecoder.d.ts +5 -0
  30. package/dist/encodings/geometryDecoder.js +453 -0
  31. package/dist/encodings/geometryDecoder.js.map +1 -0
  32. package/dist/encodings/geometryScaling.d.ts +6 -0
  33. package/dist/encodings/geometryScaling.js +3 -0
  34. package/dist/encodings/geometryScaling.js.map +1 -0
  35. package/dist/encodings/intWrapper.d.ts +8 -0
  36. package/dist/encodings/intWrapper.js +22 -0
  37. package/dist/encodings/intWrapper.js.map +1 -0
  38. package/dist/encodings/integerDecodingUtils.d.ts +46 -0
  39. package/dist/encodings/integerDecodingUtils.js +703 -0
  40. package/dist/encodings/integerDecodingUtils.js.map +1 -0
  41. package/dist/encodings/integerStreamDecoder.d.ts +26 -0
  42. package/dist/encodings/integerStreamDecoder.js +254 -0
  43. package/dist/encodings/integerStreamDecoder.js.map +1 -0
  44. package/dist/encodings/propertyDecoder.d.ts +4 -0
  45. package/dist/encodings/propertyDecoder.js +194 -0
  46. package/dist/encodings/propertyDecoder.js.map +1 -0
  47. package/dist/encodings/stringDecoder.d.ts +11 -0
  48. package/dist/encodings/stringDecoder.js +148 -0
  49. package/dist/encodings/stringDecoder.js.map +1 -0
  50. package/dist/index.d.ts +8 -0
  51. package/dist/index.js +19 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/metadata/tile/dictionaryType.d.ts +8 -0
  54. package/dist/metadata/tile/dictionaryType.js +13 -0
  55. package/dist/metadata/tile/dictionaryType.js.map +1 -0
  56. package/dist/metadata/tile/lengthType.d.ts +9 -0
  57. package/dist/metadata/tile/lengthType.js +14 -0
  58. package/dist/metadata/tile/lengthType.js.map +1 -0
  59. package/dist/metadata/tile/logicalLevelTechnique.d.ts +8 -0
  60. package/dist/metadata/tile/logicalLevelTechnique.js +15 -0
  61. package/dist/metadata/tile/logicalLevelTechnique.js.map +1 -0
  62. package/dist/metadata/tile/logicalStreamType.d.ts +12 -0
  63. package/dist/metadata/tile/logicalStreamType.js +21 -0
  64. package/dist/metadata/tile/logicalStreamType.js.map +1 -0
  65. package/dist/metadata/tile/mortonEncodedStreamMetadata.d.ts +15 -0
  66. package/dist/metadata/tile/mortonEncodedStreamMetadata.js +29 -0
  67. package/dist/metadata/tile/mortonEncodedStreamMetadata.js.map +1 -0
  68. package/dist/metadata/tile/offsetType.d.ts +6 -0
  69. package/dist/metadata/tile/offsetType.js +11 -0
  70. package/dist/metadata/tile/offsetType.js.map +1 -0
  71. package/dist/metadata/tile/physicalLevelTechnique.d.ts +17 -0
  72. package/dist/metadata/tile/physicalLevelTechnique.js +22 -0
  73. package/dist/metadata/tile/physicalLevelTechnique.js.map +1 -0
  74. package/dist/metadata/tile/physicalStreamType.d.ts +6 -0
  75. package/dist/metadata/tile/physicalStreamType.js +11 -0
  76. package/dist/metadata/tile/physicalStreamType.js.map +1 -0
  77. package/dist/metadata/tile/rleEncodedStreamMetadata.d.ts +20 -0
  78. package/dist/metadata/tile/rleEncodedStreamMetadata.js +34 -0
  79. package/dist/metadata/tile/rleEncodedStreamMetadata.js.map +1 -0
  80. package/dist/metadata/tile/scalarType.d.ts +12 -0
  81. package/dist/metadata/tile/scalarType.js +17 -0
  82. package/dist/metadata/tile/scalarType.js.map +1 -0
  83. package/dist/metadata/tile/streamMetadata.d.ts +23 -0
  84. package/dist/metadata/tile/streamMetadata.js +71 -0
  85. package/dist/metadata/tile/streamMetadata.js.map +1 -0
  86. package/dist/metadata/tile/streamMetadataDecoder.d.ts +5 -0
  87. package/dist/metadata/tile/streamMetadataDecoder.js +24 -0
  88. package/dist/metadata/tile/streamMetadataDecoder.js.map +1 -0
  89. package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.d.ts +10 -0
  90. package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.js +112 -0
  91. package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.js.map +1 -0
  92. package/dist/metadata/tileset/tilesetMetadata.g.d.ts +418 -0
  93. package/dist/metadata/tileset/tilesetMetadata.g.js +476 -0
  94. package/dist/metadata/tileset/tilesetMetadata.g.js.map +1 -0
  95. package/dist/metadata/tileset/typeMap.d.ts +38 -0
  96. package/dist/metadata/tileset/typeMap.js +185 -0
  97. package/dist/metadata/tileset/typeMap.js.map +1 -0
  98. package/dist/mltDecoder.d.ts +11 -0
  99. package/dist/mltDecoder.js +146 -0
  100. package/dist/mltDecoder.js.map +1 -0
  101. package/dist/mltMetadata.d.ts +40 -0
  102. package/dist/mltMetadata.js +34 -0
  103. package/dist/mltMetadata.js.map +1 -0
  104. package/dist/vector/constant/intConstVector.d.ts +19 -0
  105. package/dist/vector/constant/intConstVector.js +89 -0
  106. package/dist/vector/constant/intConstVector.js.map +1 -0
  107. package/dist/vector/constant/longConstVector.d.ts +19 -0
  108. package/dist/vector/constant/longConstVector.js +87 -0
  109. package/dist/vector/constant/longConstVector.js.map +1 -0
  110. package/dist/vector/dictionary/stringDictionaryVector.d.ts +22 -0
  111. package/dist/vector/dictionary/stringDictionaryVector.js +180 -0
  112. package/dist/vector/dictionary/stringDictionaryVector.js.map +1 -0
  113. package/dist/vector/featureTable.d.ts +29 -0
  114. package/dist/vector/featureTable.js +70 -0
  115. package/dist/vector/featureTable.js.map +1 -0
  116. package/dist/vector/filter/constSelectionVector.d.ts +0 -0
  117. package/dist/vector/filter/constSelectionVector.js +1 -0
  118. package/dist/vector/filter/constSelectionVector.js.map +1 -0
  119. package/dist/vector/filter/flatSelectionVector.d.ts +16 -0
  120. package/dist/vector/filter/flatSelectionVector.js +42 -0
  121. package/dist/vector/filter/flatSelectionVector.js.map +1 -0
  122. package/dist/vector/filter/selectionVector.d.ts +8 -0
  123. package/dist/vector/filter/selectionVector.js +3 -0
  124. package/dist/vector/filter/selectionVector.js.map +1 -0
  125. package/dist/vector/filter/selectionVectorUtils.d.ts +7 -0
  126. package/dist/vector/filter/selectionVectorUtils.js +44 -0
  127. package/dist/vector/filter/selectionVectorUtils.js.map +1 -0
  128. package/dist/vector/filter/sequenceSelectionVector.d.ts +0 -0
  129. package/dist/vector/filter/sequenceSelectionVector.js +1 -0
  130. package/dist/vector/filter/sequenceSelectionVector.js.map +1 -0
  131. package/dist/vector/fixedSizeVector.d.ts +5 -0
  132. package/dist/vector/fixedSizeVector.js +14 -0
  133. package/dist/vector/fixedSizeVector.js.map +1 -0
  134. package/dist/vector/flat/bitVector.d.ts +14 -0
  135. package/dist/vector/flat/bitVector.js +38 -0
  136. package/dist/vector/flat/bitVector.js.map +1 -0
  137. package/dist/vector/flat/booleanFlatVector.d.ts +20 -0
  138. package/dist/vector/flat/booleanFlatVector.js +55 -0
  139. package/dist/vector/flat/booleanFlatVector.js.map +1 -0
  140. package/dist/vector/flat/doubleFlatVector.d.ts +19 -0
  141. package/dist/vector/flat/doubleFlatVector.js +109 -0
  142. package/dist/vector/flat/doubleFlatVector.js.map +1 -0
  143. package/dist/vector/flat/floatFlatVector.d.ts +19 -0
  144. package/dist/vector/flat/floatFlatVector.js +109 -0
  145. package/dist/vector/flat/floatFlatVector.js.map +1 -0
  146. package/dist/vector/flat/intFlatVector.d.ts +19 -0
  147. package/dist/vector/flat/intFlatVector.js +123 -0
  148. package/dist/vector/flat/intFlatVector.js.map +1 -0
  149. package/dist/vector/flat/longFlatVector.d.ts +19 -0
  150. package/dist/vector/flat/longFlatVector.js +124 -0
  151. package/dist/vector/flat/longFlatVector.js.map +1 -0
  152. package/dist/vector/flat/stringFlatVector.d.ts +20 -0
  153. package/dist/vector/flat/stringFlatVector.js +165 -0
  154. package/dist/vector/flat/stringFlatVector.js.map +1 -0
  155. package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.d.ts +27 -0
  156. package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js +115 -0
  157. package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js.map +1 -0
  158. package/dist/vector/geometry/constGeometryVector.d.ts +17 -0
  159. package/dist/vector/geometry/constGeometryVector.js +51 -0
  160. package/dist/vector/geometry/constGeometryVector.js.map +1 -0
  161. package/dist/vector/geometry/constGpuVector.d.ts +15 -0
  162. package/dist/vector/geometry/constGpuVector.js +66 -0
  163. package/dist/vector/geometry/constGpuVector.js.map +1 -0
  164. package/dist/vector/geometry/flatGeometryVector.d.ts +16 -0
  165. package/dist/vector/geometry/flatGeometryVector.js +64 -0
  166. package/dist/vector/geometry/flatGeometryVector.js.map +1 -0
  167. package/dist/vector/geometry/flatGpuVector.d.ts +14 -0
  168. package/dist/vector/geometry/flatGpuVector.js +67 -0
  169. package/dist/vector/geometry/flatGpuVector.js.map +1 -0
  170. package/dist/vector/geometry/geometryType.d.ts +13 -0
  171. package/dist/vector/geometry/geometryType.js +19 -0
  172. package/dist/vector/geometry/geometryType.js.map +1 -0
  173. package/dist/vector/geometry/geometryVector.d.ts +37 -0
  174. package/dist/vector/geometry/geometryVector.js +73 -0
  175. package/dist/vector/geometry/geometryVector.js.map +1 -0
  176. package/dist/vector/geometry/geometryVectorConverter.d.ts +2 -0
  177. package/dist/vector/geometry/geometryVectorConverter.js +302 -0
  178. package/dist/vector/geometry/geometryVectorConverter.js.map +1 -0
  179. package/dist/vector/geometry/gpuVector.d.ts +21 -0
  180. package/dist/vector/geometry/gpuVector.js +38 -0
  181. package/dist/vector/geometry/gpuVector.js.map +1 -0
  182. package/dist/vector/geometry/point.d.ts +195 -0
  183. package/dist/vector/geometry/point.js +283 -0
  184. package/dist/vector/geometry/point.js.map +1 -0
  185. package/dist/vector/geometry/spaceFillingCurve.d.ts +22 -0
  186. package/dist/vector/geometry/spaceFillingCurve.js +26 -0
  187. package/dist/vector/geometry/spaceFillingCurve.js.map +1 -0
  188. package/dist/vector/geometry/topologyVector.d.ts +9 -0
  189. package/dist/vector/geometry/topologyVector.js +21 -0
  190. package/dist/vector/geometry/topologyVector.js.map +1 -0
  191. package/dist/vector/geometry/zOrderCurve.d.ts +17 -0
  192. package/dist/vector/geometry/zOrderCurve.js +44 -0
  193. package/dist/vector/geometry/zOrderCurve.js.map +1 -0
  194. package/dist/vector/intVector.d.ts +8 -0
  195. package/dist/vector/intVector.js +3 -0
  196. package/dist/vector/intVector.js.map +1 -0
  197. package/dist/vector/sequence/intSequenceVector.d.ts +18 -0
  198. package/dist/vector/sequence/intSequenceVector.js +72 -0
  199. package/dist/vector/sequence/intSequenceVector.js.map +1 -0
  200. package/dist/vector/sequence/longSequenceVector.d.ts +18 -0
  201. package/dist/vector/sequence/longSequenceVector.js +57 -0
  202. package/dist/vector/sequence/longSequenceVector.js.map +1 -0
  203. package/dist/vector/sequence/sequenceVector.d.ts +5 -0
  204. package/dist/vector/sequence/sequenceVector.js +15 -0
  205. package/dist/vector/sequence/sequenceVector.js.map +1 -0
  206. package/dist/vector/variableSizeVector.d.ts +6 -0
  207. package/dist/vector/variableSizeVector.js +16 -0
  208. package/dist/vector/variableSizeVector.js.map +1 -0
  209. package/dist/vector/vector.d.ts +30 -0
  210. package/dist/vector/vector.js +73 -0
  211. package/dist/vector/vector.js.map +1 -0
  212. package/dist/vector/vectorType.d.ts +7 -0
  213. package/dist/vector/vectorType.js +12 -0
  214. package/dist/vector/vectorType.js.map +1 -0
  215. package/package.json +81 -0
package/README.md ADDED
@@ -0,0 +1,28 @@
1
+ # maplibre-tile-spec
2
+
3
+ This package contains a JavaScript decoder for the experimental MapLibre Tile (MLT) vector tile format.
4
+
5
+ ## Install
6
+
7
+ `npm install @maplibre/maplibre-tile-spec`
8
+
9
+ ## Quickstart
10
+
11
+ To decode a tile, you will want to load `MltDecoder`:
12
+
13
+ ```js
14
+ import { decodeTile } from '@maplibre/maplibre-tile-spec';
15
+
16
+ const data = fs.readFileSync(tilePath);
17
+ const tile = decodeTile(data);
18
+ ```
19
+ ## Contents
20
+
21
+ ### Code
22
+
23
+ Code is in `src/`.
24
+
25
+ ### Tests
26
+
27
+ Tests are in `test/unit/`. Run tests by running `npm run test`.
28
+ currently not integrated
@@ -0,0 +1,13 @@
1
+ import IntWrapper from "./intWrapper";
2
+ import { VectorType } from "../vector/vectorType";
3
+ import BitVector from "../vector/flat/bitVector";
4
+ export declare function skipColumn(numStreams: number, tile: Uint8Array, offset: IntWrapper): void;
5
+ export declare function decodeBooleanRle(buffer: Uint8Array, numBooleans: number, pos: IntWrapper): Uint8Array;
6
+ export declare function decodeNullableBooleanRle(buffer: Uint8Array, numBooleans: number, pos: IntWrapper, nullabilityBuffer: BitVector): Uint8Array;
7
+ export declare function decodeByteRle(buffer: Uint8Array, numBytes: number, pos: IntWrapper): Uint8Array;
8
+ export declare function decodeFloatsLE(encodedValues: Uint8Array, pos: IntWrapper, numValues: number): Float32Array;
9
+ export declare function decodeDoublesLE(encodedValues: Uint8Array, pos: IntWrapper, numValues: number): Float64Array;
10
+ export declare function decodeNullableFloatsLE(encodedValues: Uint8Array, pos: IntWrapper, nullabilityBuffer: BitVector, numValues: number): Float32Array;
11
+ export declare function decodeNullableDoublesLE(encodedValues: Uint8Array, pos: IntWrapper, nullabilityBuffer: BitVector, numValues: number): Float64Array;
12
+ export declare function decodeString(buf: Uint8Array, pos: number, end: number): string;
13
+ export declare function getVectorTypeBooleanStream(numFeatures: number, byteLength: number, data: Uint8Array, offset: IntWrapper): VectorType;
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.skipColumn = skipColumn;
7
+ exports.decodeBooleanRle = decodeBooleanRle;
8
+ exports.decodeNullableBooleanRle = decodeNullableBooleanRle;
9
+ exports.decodeByteRle = decodeByteRle;
10
+ exports.decodeFloatsLE = decodeFloatsLE;
11
+ exports.decodeDoublesLE = decodeDoublesLE;
12
+ exports.decodeNullableFloatsLE = decodeNullableFloatsLE;
13
+ exports.decodeNullableDoublesLE = decodeNullableDoublesLE;
14
+ exports.decodeString = decodeString;
15
+ exports.getVectorTypeBooleanStream = getVectorTypeBooleanStream;
16
+ const vectorType_1 = require("../vector/vectorType");
17
+ const bitVector_1 = __importDefault(require("../vector/flat/bitVector"));
18
+ const streamMetadataDecoder_1 = require("../metadata/tile/streamMetadataDecoder");
19
+ function skipColumn(numStreams, tile, offset) {
20
+ //TODO: add size of column in Mlt for fast skipping
21
+ for (let i = 0; i < numStreams; i++) {
22
+ const streamMetadata = streamMetadataDecoder_1.StreamMetadataDecoder.decode(tile, offset);
23
+ offset.add(streamMetadata.byteLength);
24
+ }
25
+ }
26
+ function decodeBooleanRle(buffer, numBooleans, pos) {
27
+ const numBytes = Math.ceil(numBooleans / 8.0);
28
+ return decodeByteRle(buffer, numBytes, pos);
29
+ }
30
+ function decodeNullableBooleanRle(buffer, numBooleans, pos, nullabilityBuffer) {
31
+ // TODO: refactor quick and dirty solution -> use solution in one pass
32
+ const numBytes = Math.ceil(numBooleans / 8);
33
+ const values = decodeByteRle(buffer, numBytes, pos);
34
+ const bitVector = new bitVector_1.default(values, numBooleans);
35
+ const size = nullabilityBuffer.size();
36
+ const nullableBitvector = new bitVector_1.default(new Uint8Array(size), size);
37
+ let valueCounter = 0;
38
+ for (let i = 0; i < nullabilityBuffer.size(); i++) {
39
+ const value = nullabilityBuffer.get(i) ? bitVector.get(valueCounter++) : false;
40
+ nullableBitvector.set(i, value);
41
+ }
42
+ return nullableBitvector.getBuffer();
43
+ }
44
+ function decodeByteRle(buffer, numBytes, pos) {
45
+ const values = new Uint8Array(numBytes);
46
+ let valueOffset = 0;
47
+ while (valueOffset < numBytes) {
48
+ const header = buffer[pos.increment()];
49
+ /* Runs */
50
+ if (header <= 0x7f) {
51
+ const numRuns = header + 3;
52
+ const value = buffer[pos.increment()];
53
+ const endValueOffset = valueOffset + numRuns;
54
+ values.fill(value, valueOffset, endValueOffset);
55
+ valueOffset = endValueOffset;
56
+ }
57
+ else {
58
+ /* Literals */
59
+ const numLiterals = 256 - header;
60
+ for (let i = 0; i < numLiterals; i++) {
61
+ values[valueOffset++] = buffer[pos.increment()];
62
+ }
63
+ }
64
+ }
65
+ return values;
66
+ }
67
+ function decodeFloatsLE(encodedValues, pos, numValues) {
68
+ const currentPos = pos.get();
69
+ const newOffset = currentPos + numValues * Float32Array.BYTES_PER_ELEMENT;
70
+ const newBuf = new Uint8Array(encodedValues.subarray(currentPos, newOffset)).buffer;
71
+ const fb = new Float32Array(newBuf);
72
+ pos.set(newOffset);
73
+ return fb;
74
+ }
75
+ function decodeDoublesLE(encodedValues, pos, numValues) {
76
+ const currentPos = pos.get();
77
+ const newOffset = currentPos + numValues * Float64Array.BYTES_PER_ELEMENT;
78
+ const newBuf = new Uint8Array(encodedValues.subarray(currentPos, newOffset)).buffer;
79
+ const fb = new Float64Array(newBuf);
80
+ pos.set(newOffset);
81
+ return fb;
82
+ }
83
+ function decodeNullableFloatsLE(encodedValues, pos, nullabilityBuffer, numValues) {
84
+ const currentPos = pos.get();
85
+ const newOffset = currentPos + numValues * Float32Array.BYTES_PER_ELEMENT;
86
+ const newBuf = new Uint8Array(encodedValues.subarray(currentPos, newOffset)).buffer;
87
+ const fb = new Float32Array(newBuf);
88
+ pos.set(newOffset);
89
+ const numTotalValues = nullabilityBuffer.size();
90
+ const nullableFloatsBuffer = new Float32Array(numTotalValues);
91
+ let offset = 0;
92
+ for (let i = 0; i < numTotalValues; i++) {
93
+ nullableFloatsBuffer[i] = nullabilityBuffer.get(i) ? fb[offset++] : 0;
94
+ }
95
+ return nullableFloatsBuffer;
96
+ }
97
+ function decodeNullableDoublesLE(encodedValues, pos, nullabilityBuffer, numValues) {
98
+ const currentPos = pos.get();
99
+ const newOffset = currentPos + numValues * Float64Array.BYTES_PER_ELEMENT;
100
+ const newBuf = new Uint8Array(encodedValues.subarray(currentPos, newOffset)).buffer;
101
+ const fb = new Float64Array(newBuf);
102
+ pos.set(newOffset);
103
+ const numTotalValues = nullabilityBuffer.size();
104
+ const nullableDoubleBuffer = new Float64Array(numTotalValues);
105
+ let offset = 0;
106
+ for (let i = 0; i < numTotalValues; i++) {
107
+ nullableDoubleBuffer[i] = nullabilityBuffer.get(i) ? fb[offset++] : 0;
108
+ }
109
+ return nullableDoubleBuffer;
110
+ }
111
+ const TEXT_DECODER_MIN_LENGTH = 12;
112
+ const utf8TextDecoder = new TextDecoder();
113
+ // Source: https://github.com/mapbox/pbf/issues/106
114
+ function decodeString(buf, pos, end) {
115
+ if (end - pos >= TEXT_DECODER_MIN_LENGTH) {
116
+ // longer strings are fast with the built-in browser TextDecoder API
117
+ return utf8TextDecoder.decode(buf.subarray(pos, end));
118
+ }
119
+ // short strings are fast with custom implementation
120
+ return readUtf8(buf, pos, end);
121
+ }
122
+ function readUtf8(buf, pos, end) {
123
+ let str = "";
124
+ let i = pos;
125
+ while (i < end) {
126
+ const b0 = buf[i];
127
+ let c = null; // codepoint
128
+ let bytesPerSequence = b0 > 0xef ? 4 : b0 > 0xdf ? 3 : b0 > 0xbf ? 2 : 1;
129
+ if (i + bytesPerSequence > end)
130
+ break;
131
+ let b1, b2, b3;
132
+ if (bytesPerSequence === 1) {
133
+ if (b0 < 0x80) {
134
+ c = b0;
135
+ }
136
+ }
137
+ else if (bytesPerSequence === 2) {
138
+ b1 = buf[i + 1];
139
+ if ((b1 & 0xc0) === 0x80) {
140
+ c = ((b0 & 0x1f) << 0x6) | (b1 & 0x3f);
141
+ if (c <= 0x7f) {
142
+ c = null;
143
+ }
144
+ }
145
+ }
146
+ else if (bytesPerSequence === 3) {
147
+ b1 = buf[i + 1];
148
+ b2 = buf[i + 2];
149
+ if ((b1 & 0xc0) === 0x80 && (b2 & 0xc0) === 0x80) {
150
+ c = ((b0 & 0xf) << 0xc) | ((b1 & 0x3f) << 0x6) | (b2 & 0x3f);
151
+ if (c <= 0x7ff || (c >= 0xd800 && c <= 0xdfff)) {
152
+ c = null;
153
+ }
154
+ }
155
+ }
156
+ else if (bytesPerSequence === 4) {
157
+ b1 = buf[i + 1];
158
+ b2 = buf[i + 2];
159
+ b3 = buf[i + 3];
160
+ if ((b1 & 0xc0) === 0x80 && (b2 & 0xc0) === 0x80 && (b3 & 0xc0) === 0x80) {
161
+ c = ((b0 & 0xf) << 0x12) | ((b1 & 0x3f) << 0xc) | ((b2 & 0x3f) << 0x6) | (b3 & 0x3f);
162
+ if (c <= 0xffff || c >= 0x110000) {
163
+ c = null;
164
+ }
165
+ }
166
+ }
167
+ if (c === null) {
168
+ c = 0xfffd;
169
+ bytesPerSequence = 1;
170
+ }
171
+ else if (c > 0xffff) {
172
+ c -= 0x10000;
173
+ str += String.fromCharCode(((c >>> 10) & 0x3ff) | 0xd800);
174
+ c = 0xdc00 | (c & 0x3ff);
175
+ }
176
+ str += String.fromCharCode(c);
177
+ i += bytesPerSequence;
178
+ }
179
+ return str;
180
+ }
181
+ function getVectorTypeBooleanStream(numFeatures, byteLength, data, offset) {
182
+ const valuesPerRun = 0x83;
183
+ // TODO: use VectorType metadata field for to test which VectorType is used
184
+ return Math.ceil(numFeatures / valuesPerRun) * 2 == byteLength &&
185
+ /* Test the first value byte if all bits are set to true */
186
+ (data[offset.get() + 1] & 0xff) === (bitCount(numFeatures) << 2) - 1
187
+ ? vectorType_1.VectorType.CONST
188
+ : vectorType_1.VectorType.FLAT;
189
+ }
190
+ function bitCount(number) {
191
+ //TODO: refactor to get rid of special case handling
192
+ return number === 0 ? 1 : Math.floor(Math.log2(number) + 1);
193
+ }
194
+ //# sourceMappingURL=decodingUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decodingUtils.js","sourceRoot":"","sources":["../../src/encodings/decodingUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import IntWrapper from './intWrapper';
2
+ import { StreamMetadata } from '../metadata/tile/streamMetadata';
3
+ export declare function decodeFloatStream(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata): Float32Array;
4
+ export declare function decodeDoubleStream(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata): Float32Array;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decodeFloatStream = decodeFloatStream;
4
+ exports.decodeDoubleStream = decodeDoubleStream;
5
+ const decodingUtils_1 = require("./decodingUtils");
6
+ function decodeFloatStream(data, offset, streamMetadata) {
7
+ const values = (0, decodingUtils_1.decodeFloatsLE)(data, offset, streamMetadata.numValues);
8
+ const valuesList = new Float32Array(values.length);
9
+ for (let i = 0; i < values.length; i++) {
10
+ valuesList[i] = values[i];
11
+ }
12
+ return valuesList;
13
+ }
14
+ function decodeDoubleStream(data, offset, streamMetadata) {
15
+ const values = (0, decodingUtils_1.decodeDoublesLE)(data, offset, streamMetadata.numValues);
16
+ const valuesList = new Float32Array(values.length);
17
+ for (let i = 0; i < values.length; i++) {
18
+ valuesList[i] = values[i];
19
+ }
20
+ return valuesList;
21
+ }
22
+ //# sourceMappingURL=doubleDecoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doubleDecoder.js","sourceRoot":"","sources":["../../src/encodings/doubleDecoder.ts"],"names":[],"mappings":";;AAIA,8CAOC;AAED,gDAOC;AAlBD,mDAAgE;AAEhE,SAAgB,iBAAiB,CAAC,IAAgB,EAAE,MAAkB,EAAE,cAA8B;IAC9F,MAAM,MAAM,GAAG,IAAA,8BAAc,EAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IACtE,MAAM,UAAU,GAAiB,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,UAAU,CAAC;AAC1B,CAAC;AAED,SAAgB,kBAAkB,CAAC,IAAgB,EAAE,MAAkB,EAAE,cAA8B;IACnG,MAAM,MAAM,GAAG,IAAA,+BAAe,EAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IACvE,MAAM,UAAU,GAAiB,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,UAAU,CAAC;AACtB,CAAC"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Pack 32 numberegers
3
+ *
4
+ * @param input
5
+ * source array
6
+ * @param inpos
7
+ * position in source array
8
+ * @param output
9
+ * output array
10
+ * @param outpos
11
+ * position in output array
12
+ * @param bit
13
+ * number of bits to use per numbereger
14
+ */
15
+ export declare function fastpack(input: Uint32Array, inpos: number, output: Uint32Array, outpos: number, bit: number): void;
16
+ /**
17
+ * Unpack 32 numberegers
18
+ *
19
+ * @param input
20
+ * source array
21
+ * @param inpos
22
+ * position in source array
23
+ * @param output
24
+ * output array
25
+ * @param outpos
26
+ * position in output array
27
+ * @param bit
28
+ * number of bits to use per numbereger
29
+ */
30
+ export declare function fastpackwithoutmask(input: Uint32Array, inpos: number, output: Uint32Array, outpos: number, bit: number): void;
31
+ /**
32
+ * Pack the 32 numberegers
33
+ *
34
+ * @param input
35
+ * source array
36
+ * @param inpos
37
+ * starting ponumber in the source array
38
+ * @param output
39
+ * output array
40
+ * @param outpos
41
+ * starting ponumber in the output array
42
+ * @param bit
43
+ * how many bits to use per numbereger
44
+ */
45
+ export declare function fastunpack(model: {
46
+ input: Uint32Array;
47
+ inpos: number;
48
+ output: Uint32Array;
49
+ outpos: number;
50
+ bit: number;
51
+ }): void;