@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
@@ -0,0 +1,703 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decodeVarintInt32 = decodeVarintInt32;
4
+ exports.decodeVarintInt64 = decodeVarintInt64;
5
+ exports.decodeVarintFloat64 = decodeVarintFloat64;
6
+ exports.decodeFastPfor = decodeFastPfor;
7
+ exports.decodeZigZag = decodeZigZag;
8
+ exports.decodeZigZagInt64 = decodeZigZagInt64;
9
+ exports.decodeZigZagFloat64 = decodeZigZagFloat64;
10
+ exports.decodeZigZagValue = decodeZigZagValue;
11
+ exports.decodeZigZagValueInt64 = decodeZigZagValueInt64;
12
+ exports.decodeRle = decodeRle;
13
+ exports.decodeRleInt64 = decodeRleInt64;
14
+ exports.decodeRleFloat64 = decodeRleFloat64;
15
+ exports.decodeUnsignedRle = decodeUnsignedRle;
16
+ exports.decodeUnsignedRleInt64 = decodeUnsignedRleInt64;
17
+ exports.decodeUnsignedRleFloat64 = decodeUnsignedRleFloat64;
18
+ exports.decodeZigZagDelta = decodeZigZagDelta;
19
+ exports.decodeZigZagDeltaInt64 = decodeZigZagDeltaInt64;
20
+ exports.decodeZigZagDeltaFloat64 = decodeZigZagDeltaFloat64;
21
+ exports.decodeZigZagRle = decodeZigZagRle;
22
+ exports.decodeZigZagRleInt64 = decodeZigZagRleInt64;
23
+ exports.decodeZigZagRleFloat64 = decodeZigZagRleFloat64;
24
+ exports.fastInverseDelta = fastInverseDelta;
25
+ exports.inverseDelta = inverseDelta;
26
+ exports.decodeComponentwiseDeltaVec2 = decodeComponentwiseDeltaVec2;
27
+ exports.decodeComponentwiseDeltaVec2Scaled = decodeComponentwiseDeltaVec2Scaled;
28
+ exports.decodeNullableZigZagDelta = decodeNullableZigZagDelta;
29
+ exports.decodeNullableZigZagDeltaInt64 = decodeNullableZigZagDeltaInt64;
30
+ exports.zigZagDeltaOfDeltaDecoding = zigZagDeltaOfDeltaDecoding;
31
+ exports.zigZagRleDeltaDecoding = zigZagRleDeltaDecoding;
32
+ exports.rleDeltaDecoding = rleDeltaDecoding;
33
+ exports.padWithZeros = padWithZeros;
34
+ exports.padZigZagWithZeros = padZigZagWithZeros;
35
+ exports.padWithZerosInt64 = padWithZerosInt64;
36
+ exports.padZigZagWithZerosInt64 = padZigZagWithZerosInt64;
37
+ exports.decodeNullableRle = decodeNullableRle;
38
+ exports.decodeNullableRleInt64 = decodeNullableRleInt64;
39
+ exports.decodeUnsignedConstRle = decodeUnsignedConstRle;
40
+ exports.decodeZigZagConstRle = decodeZigZagConstRle;
41
+ exports.decodeZigZagSequenceRle = decodeZigZagSequenceRle;
42
+ exports.decodeUnsignedConstRleInt64 = decodeUnsignedConstRleInt64;
43
+ exports.decodeZigZagConstRleInt64 = decodeZigZagConstRleInt64;
44
+ exports.decodeZigZagSequenceRleInt64 = decodeZigZagSequenceRleInt64;
45
+ /* Null suppression (physical level) techniques ------------------------------------------------------------------*/
46
+ //based on https://github.com/mapbox/pbf/blob/main/index.js
47
+ function decodeVarintInt32(buf, bufferOffset, numValues) {
48
+ const dst = new Int32Array(numValues);
49
+ let dstOffset = 0;
50
+ let offset = bufferOffset.get();
51
+ for (let i = 0; i < dst.length; i++) {
52
+ let b = buf[offset++];
53
+ let val = b & 0x7f;
54
+ if (b < 0x80) {
55
+ dst[dstOffset++] = val;
56
+ continue;
57
+ }
58
+ b = buf[offset++];
59
+ val |= (b & 0x7f) << 7;
60
+ if (b < 0x80) {
61
+ dst[dstOffset++] = val;
62
+ continue;
63
+ }
64
+ b = buf[offset++];
65
+ val |= (b & 0x7f) << 14;
66
+ if (b < 0x80) {
67
+ dst[dstOffset++] = val;
68
+ continue;
69
+ }
70
+ b = buf[offset++];
71
+ val |= (b & 0x7f) << 21;
72
+ if (b < 0x80) {
73
+ dst[dstOffset++] = val;
74
+ continue;
75
+ }
76
+ b = buf[offset++];
77
+ val |= (b & 0x0f) << 28;
78
+ dst[dstOffset++] = val;
79
+ }
80
+ bufferOffset.set(offset);
81
+ return dst;
82
+ }
83
+ function decodeVarintInt64(src, offset, numValues) {
84
+ const dst = new BigInt64Array(numValues);
85
+ for (let i = 0; i < dst.length; i++) {
86
+ dst[i] = decodeSingleVarintInt64(src, offset);
87
+ }
88
+ return dst;
89
+ }
90
+ /* Since decoding Int64 values to BigInt is more than an order of magnitude slower in the tests
91
+ * then using a Float64, this decoding method limits the max size of a Long value to 53 bits */
92
+ function decodeVarintFloat64(src, numValues, offset) {
93
+ const dst = new Float64Array(numValues);
94
+ for (let i = 0; i < numValues; i++) {
95
+ dst[i] = decodeSingleVarintFloat64(src, offset);
96
+ }
97
+ return dst;
98
+ }
99
+ //based on https://github.com/mapbox/pbf/blob/main/index.js
100
+ function decodeSingleVarintFloat64(buf, offset) {
101
+ let val, b;
102
+ b = buf[offset.get()];
103
+ offset.increment();
104
+ val = b & 0x7f;
105
+ if (b < 0x80)
106
+ return val;
107
+ b = buf[offset.get()];
108
+ offset.increment();
109
+ val |= (b & 0x7f) << 7;
110
+ if (b < 0x80)
111
+ return val;
112
+ b = buf[offset.get()];
113
+ offset.increment();
114
+ val |= (b & 0x7f) << 14;
115
+ if (b < 0x80)
116
+ return val;
117
+ b = buf[offset.get()];
118
+ offset.increment();
119
+ val |= (b & 0x7f) << 21;
120
+ if (b < 0x80)
121
+ return val;
122
+ b = buf[offset.get()];
123
+ val |= (b & 0x0f) << 28;
124
+ return decodeVarintRemainder(val, buf, offset);
125
+ }
126
+ function decodeVarintRemainder(l, buf, offset) {
127
+ let h, b;
128
+ b = buf[offset.get()];
129
+ offset.increment();
130
+ h = (b & 0x70) >> 4;
131
+ if (b < 0x80)
132
+ return h * 0x100000000 + (l >>> 0);
133
+ b = buf[offset.get()];
134
+ offset.increment();
135
+ h |= (b & 0x7f) << 3;
136
+ if (b < 0x80)
137
+ return h * 0x100000000 + (l >>> 0);
138
+ b = buf[offset.get()];
139
+ offset.increment();
140
+ h |= (b & 0x7f) << 10;
141
+ if (b < 0x80)
142
+ return h * 0x100000000 + (l >>> 0);
143
+ b = buf[offset.get()];
144
+ offset.increment();
145
+ h |= (b & 0x7f) << 17;
146
+ if (b < 0x80)
147
+ return h * 0x100000000 + (l >>> 0);
148
+ b = buf[offset.get()];
149
+ offset.increment();
150
+ h |= (b & 0x7f) << 24;
151
+ if (b < 0x80)
152
+ return h * 0x100000000 + (l >>> 0);
153
+ b = buf[offset.get()];
154
+ offset.increment();
155
+ h |= (b & 0x01) << 31;
156
+ if (b < 0x80)
157
+ return h * 0x100000000 + (l >>> 0);
158
+ throw new Error("Expected varint not more than 10 bytes");
159
+ }
160
+ function decodeFastPfor(data, numValues, byteLength, offset) {
161
+ throw new Error("FastPFor is not implemented yet.");
162
+ }
163
+ function decodeZigZag(encodedData) {
164
+ for (let i = 0; i < encodedData.length; i++) {
165
+ const encoded = encodedData[i];
166
+ encodedData[i] = ((encoded >>> 1) ^ -(encoded & 1));
167
+ }
168
+ }
169
+ function decodeZigZagInt64(encodedData) {
170
+ for (let i = 0; i < encodedData.length; i++) {
171
+ const encoded = encodedData[i];
172
+ encodedData[i] = ((encoded >> 1n) ^ -(encoded & 1n));
173
+ }
174
+ }
175
+ function decodeZigZagFloat64(encodedData) {
176
+ for (let i = 0; i < encodedData.length; i++) {
177
+ const encoded = encodedData[i];
178
+ //Get rid of branch? -> var v = encoded % 2 && 1; encodedData[i] = (encoded + v) / (v * 2 - 1) * 2;
179
+ encodedData[i] = encoded % 2 === 1 ? (encoded + 1) / -2 : encoded / 2;
180
+ }
181
+ }
182
+ function decodeZigZagValue(encoded) {
183
+ return ((encoded >>> 1) ^ -(encoded & 1));
184
+ }
185
+ function decodeZigZagValueInt64(encoded) {
186
+ return ((encoded >> 1n) ^ -(encoded & 1n));
187
+ }
188
+ // Source: https://github.com/bazelbuild/bazel/blob/master/src/main/java/com/google/devtools/build/lib/util/VarInt.java
189
+ function decodeSingleVarintInt64(bytes, pos) {
190
+ let value = 0n;
191
+ let shift = 0;
192
+ let index = pos.get();
193
+ while (index < bytes.length) {
194
+ const b = bytes[index++];
195
+ value |= BigInt(b & 0x7F) << BigInt(shift);
196
+ if ((b & 0x80) === 0) {
197
+ break;
198
+ }
199
+ shift += 7;
200
+ if (shift >= 64) {
201
+ throw new Error("Varint too long");
202
+ }
203
+ }
204
+ pos.set(index);
205
+ return value;
206
+ }
207
+ /* Logical Level Techniques Flat Vectors ------------------------------------------------------------------ */
208
+ function decodeRle(data, streamMetadata, isSigned) {
209
+ return isSigned
210
+ ? decodeZigZagRle(data, streamMetadata.runs, streamMetadata.numRleValues)
211
+ : decodeUnsignedRle(data, streamMetadata.runs, streamMetadata.numRleValues);
212
+ }
213
+ function decodeRleInt64(data, streamMetadata, isSigned) {
214
+ return isSigned
215
+ ? decodeZigZagRleInt64(data, streamMetadata.runs, streamMetadata.numRleValues)
216
+ : decodeUnsignedRleInt64(data, streamMetadata.runs, streamMetadata.numRleValues);
217
+ }
218
+ function decodeRleFloat64(data, streamMetadata, isSigned) {
219
+ return isSigned
220
+ ? decodeZigZagRleFloat64(data, streamMetadata.runs, streamMetadata.numRleValues)
221
+ : decodeUnsignedRleFloat64(data, streamMetadata.runs, streamMetadata.numRleValues);
222
+ }
223
+ function decodeUnsignedRle(encodedData, numRuns, numTotalValues) {
224
+ const decodedValues = new Int32Array(numTotalValues);
225
+ let offset = 0;
226
+ for (let i = 0; i < numRuns; i++) {
227
+ const runLength = encodedData[i];
228
+ const value = encodedData[i + numRuns];
229
+ decodedValues.fill(value, offset, offset + runLength);
230
+ offset += runLength;
231
+ }
232
+ return decodedValues;
233
+ }
234
+ function decodeUnsignedRleInt64(encodedData, numRuns, numTotalValues) {
235
+ const decodedValues = new BigInt64Array(numTotalValues);
236
+ let offset = 0;
237
+ for (let i = 0; i < numRuns; i++) {
238
+ const runLength = Number(encodedData[i]);
239
+ const value = encodedData[i + numRuns];
240
+ decodedValues.fill(value, offset, offset + runLength);
241
+ offset += runLength;
242
+ }
243
+ return decodedValues;
244
+ }
245
+ function decodeUnsignedRleFloat64(encodedData, numRuns, numTotalValues) {
246
+ const decodedValues = new Float64Array(numTotalValues);
247
+ let offset = 0;
248
+ for (let i = 0; i < numRuns; i++) {
249
+ const runLength = encodedData[i];
250
+ const value = encodedData[i + numRuns];
251
+ decodedValues.fill(value, offset, offset + runLength);
252
+ offset += runLength;
253
+ }
254
+ return decodedValues;
255
+ }
256
+ /*
257
+ * In place decoding of the zigzag encoded delta values.
258
+ * Inspired by https://github.com/lemire/JavaFastPFOR/blob/master/src/main/java/me/lemire/integercompression/differential/Delta.java
259
+ */
260
+ function decodeZigZagDelta(data) {
261
+ data[0] = (data[0] >>> 1) ^ -(data[0] & 1);
262
+ const sz0 = data.length / 4 * 4;
263
+ let i = 1;
264
+ if (sz0 >= 4) {
265
+ for (; i < sz0 - 4; i += 4) {
266
+ const data1 = data[i];
267
+ const data2 = data[i + 1];
268
+ const data3 = data[i + 2];
269
+ const data4 = data[i + 3];
270
+ data[i] = ((data1 >>> 1) ^ -(data1 & 1)) + data[i - 1];
271
+ data[i + 1] = ((data2 >>> 1) ^ -(data2 & 1)) + data[i];
272
+ data[i + 2] = ((data3 >>> 1) ^ -(data3 & 1)) + data[i + 1];
273
+ data[i + 3] = ((data4 >>> 1) ^ -(data4 & 1)) + data[i + 2];
274
+ }
275
+ }
276
+ for (; i != data.length; ++i) {
277
+ data[i] = ((data[i] >>> 1) ^ -(data[i] & 1)) + data[i - 1];
278
+ }
279
+ }
280
+ function decodeZigZagDeltaInt64(data) {
281
+ data[0] = (data[0] >> 1n) ^ -(data[0] & 1n);
282
+ const sz0 = data.length / 4 * 4;
283
+ let i = 1;
284
+ if (sz0 >= 4) {
285
+ for (; i < sz0 - 4; i += 4) {
286
+ const data1 = data[i];
287
+ const data2 = data[i + 1];
288
+ const data3 = data[i + 2];
289
+ const data4 = data[i + 3];
290
+ data[i] = ((data1 >> 1n) ^ -(data1 & 1n)) + data[i - 1];
291
+ data[i + 1] = ((data2 >> 1n) ^ -(data2 & 1n)) + data[i];
292
+ data[i + 2] = ((data3 >> 1n) ^ -(data3 & 1n)) + data[i + 1];
293
+ data[i + 3] = ((data4 >> 1n) ^ -(data4 & 1n)) + data[i + 2];
294
+ }
295
+ }
296
+ for (; i != data.length; ++i) {
297
+ data[i] = ((data[i] >> 1n) ^ -(data[i] & 1n)) + data[i - 1];
298
+ }
299
+ }
300
+ function decodeZigZagDeltaFloat64(data) {
301
+ data[0] = data[0] % 2 === 1 ? (data[0] + 1) / -2 : data[0] / 2;
302
+ const sz0 = data.length / 4 * 4;
303
+ let i = 1;
304
+ if (sz0 >= 4) {
305
+ for (; i < sz0 - 4; i += 4) {
306
+ const data1 = data[i];
307
+ const data2 = data[i + 1];
308
+ const data3 = data[i + 2];
309
+ const data4 = data[i + 3];
310
+ data[i] = (data1 % 2 === 1 ? (data1 + 1) / -2 : data1 / 2) + data[i - 1];
311
+ data[i + 1] = (data2 % 2 === 1 ? (data2 + 1) / -2 : data2 / 2) + data[i];
312
+ data[i + 2] = (data3 % 2 === 1 ? (data3 + 1) / -2 : data3 / 2) + data[i + 1];
313
+ data[i + 3] = (data4 % 2 === 1 ? (data4 + 1) / -2 : data4 / 2) + data[i + 2];
314
+ }
315
+ }
316
+ for (; i != data.length; ++i) {
317
+ data[i] = (data[i] % 2 === 1 ? (data[i] + 1) / -2 : data[i] / 2) + data[i - 1];
318
+ }
319
+ }
320
+ function decodeZigZagRle(data, numRuns, numTotalValues) {
321
+ const decodedValues = new Int32Array(numTotalValues);
322
+ let offset = 0;
323
+ for (let i = 0; i < numRuns; i++) {
324
+ const runLength = data[i];
325
+ let value = data[i + numRuns];
326
+ value = ((value >>> 1) ^ -(value & 1));
327
+ decodedValues.fill(value, offset, offset + runLength);
328
+ offset += runLength;
329
+ }
330
+ return decodedValues;
331
+ }
332
+ function decodeZigZagRleInt64(data, numRuns, numTotalValues) {
333
+ const decodedValues = new BigInt64Array(numTotalValues);
334
+ let offset = 0;
335
+ for (let i = 0; i < numRuns; i++) {
336
+ const runLength = Number(data[i]);
337
+ let value = data[i + numRuns];
338
+ value = ((value >> 1n) ^ -(value & 1n));
339
+ decodedValues.fill(value, offset, offset + runLength);
340
+ offset += runLength;
341
+ }
342
+ return decodedValues;
343
+ }
344
+ function decodeZigZagRleFloat64(data, numRuns, numTotalValues) {
345
+ const decodedValues = new Float64Array(numTotalValues);
346
+ let offset = 0;
347
+ for (let i = 0; i < numRuns; i++) {
348
+ const runLength = data[i];
349
+ let value = data[i + numRuns];
350
+ //TODO: get rid of branch? -> var v = value % 2 && 1; a = (value + v) / (v * 2 - 1) * 2;
351
+ value = value % 2 === 1 ? (value + 1) / -2 : value / 2;
352
+ decodedValues.fill(value, offset, offset + runLength);
353
+ offset += runLength;
354
+ }
355
+ return decodedValues;
356
+ }
357
+ /*
358
+ * Inspired by https://github.com/lemire/JavaFastPFOR/blob/master/src/main/java/me/lemire/integercompression/differential/Delta.java
359
+ */
360
+ function fastInverseDelta(data) {
361
+ const sz0 = data.length / 4 * 4;
362
+ let i = 1;
363
+ if (sz0 >= 4) {
364
+ for (let a = data[0]; i < sz0 - 4; i += 4) {
365
+ a = data[i] += a;
366
+ a = data[i + 1] += a;
367
+ a = data[i + 2] += a;
368
+ a = data[i + 3] += a;
369
+ }
370
+ }
371
+ while (i != data.length) {
372
+ data[i] += data[i - 1];
373
+ ++i;
374
+ }
375
+ }
376
+ function inverseDelta(data) {
377
+ let prevValue = 0;
378
+ for (let i = 0; i < data.length; i++) {
379
+ data[i] += prevValue;
380
+ prevValue = data[i];
381
+ }
382
+ }
383
+ /*
384
+ * In place decoding of the zigzag delta encoded Vec2.
385
+ * Inspired by https://github.com/lemire/JavaFastPFOR/blob/master/src/main/java/me/lemire/integercompression/differential/Delta.java
386
+ */
387
+ function decodeComponentwiseDeltaVec2(data) {
388
+ data[0] = ((data[0] >>> 1) ^ -(data[0] & 1));
389
+ data[1] = ((data[1] >>> 1) ^ -(data[1] & 1));
390
+ const sz0 = data.length / 4 * 4;
391
+ let i = 2;
392
+ if (sz0 >= 4) {
393
+ for (; i < sz0 - 4; i += 4) {
394
+ const x1 = data[i];
395
+ const y1 = data[i + 1];
396
+ const x2 = data[i + 2];
397
+ const y2 = data[i + 3];
398
+ data[i] = ((x1 >>> 1) ^ -(x1 & 1)) + data[i - 2];
399
+ data[i + 1] = ((y1 >>> 1) ^ -(y1 & 1)) + data[i - 1];
400
+ data[i + 2] = ((x2 >>> 1) ^ -(x2 & 1)) + data[i];
401
+ data[i + 3] = ((y2 >>> 1) ^ -(y2 & 1)) + data[i + 1];
402
+ }
403
+ }
404
+ for (; i != data.length; i += 2) {
405
+ data[i] = ((data[i] >>> 1) ^ -(data[i] & 1)) + data[i - 2];
406
+ data[i + 1] = ((data[i + 1] >>> 1) ^ -(data[i + 1] & 1)) + data[i - 1];
407
+ }
408
+ }
409
+ function decodeComponentwiseDeltaVec2Scaled(data, scale, min, max) {
410
+ let previousVertexX = ((data[0] >>> 1) ^ -(data[0] & 1));
411
+ let previousVertexY = ((data[1] >>> 1) ^ -(data[1] & 1));
412
+ data[0] = clamp(Math.round(previousVertexX * scale), min, max);
413
+ data[1] = clamp(Math.round(previousVertexY * scale), min, max);
414
+ const sz0 = data.length / 16;
415
+ let i = 2;
416
+ if (sz0 >= 4) {
417
+ for (; i < sz0 - 4; i += 4) {
418
+ const x1 = data[i];
419
+ const y1 = data[i + 1];
420
+ const currentVertexX = ((x1 >>> 1) ^ -(x1 & 1)) + previousVertexX;
421
+ const currentVertexY = ((y1 >>> 1) ^ -(y1 & 1)) + previousVertexY;
422
+ data[i] = clamp(Math.round(currentVertexX * scale), min, max);
423
+ data[i + 1] = clamp(Math.round(currentVertexY * scale), min, max);
424
+ const x2 = data[i + 2];
425
+ const y2 = data[i + 3];
426
+ previousVertexX = ((x2 >>> 1) ^ -(x2 & 1)) + currentVertexX;
427
+ previousVertexY = ((y2 >>> 1) ^ -(y2 & 1)) + currentVertexY;
428
+ data[i + 2] = clamp(Math.round(previousVertexX * scale), min, max);
429
+ data[i + 3] = clamp(Math.round(previousVertexY * scale), min, max);
430
+ }
431
+ }
432
+ for (; i != data.length; i += 2) {
433
+ previousVertexX += ((data[i] >>> 1) ^ -(data[i] & 1));
434
+ previousVertexY += ((data[i + 1] >>> 1) ^ -(data[i + 1] & 1));
435
+ data[i] = clamp(Math.round(previousVertexX * scale), min, max);
436
+ data[i + 1] = clamp(Math.round(previousVertexY * scale), min, max);
437
+ }
438
+ }
439
+ function clamp(n, min, max) {
440
+ return Math.min(max, Math.max(min, n));
441
+ }
442
+ function decodeNullableZigZagDelta(bitVector, data) {
443
+ const decodedData = new Int32Array(bitVector.size());
444
+ let dataCounter = 0;
445
+ if (bitVector.get(0)) {
446
+ decodedData[0] = bitVector.get(0) ? ((data[0] >>> 1) ^ -(data[0] & 1)) : 0;
447
+ dataCounter = 1;
448
+ }
449
+ else {
450
+ decodedData[0] = 0;
451
+ }
452
+ let i = 1;
453
+ for (; i != decodedData.length; ++i) {
454
+ decodedData[i] =
455
+ bitVector.get(i)
456
+ ? decodedData[i - 1]
457
+ + ((data[dataCounter] >>> 1) ^ -(data[dataCounter++] & 1))
458
+ : decodedData[i - 1];
459
+ }
460
+ return decodedData;
461
+ }
462
+ function decodeNullableZigZagDeltaInt64(bitVector, data) {
463
+ const decodedData = new BigInt64Array(bitVector.size());
464
+ let dataCounter = 0;
465
+ if (bitVector.get(0)) {
466
+ decodedData[0] = bitVector.get(0) ? ((data[0] >> 1n) ^ -(data[0] & 1n)) : 0n;
467
+ dataCounter = 1;
468
+ }
469
+ else {
470
+ decodedData[0] = 0n;
471
+ }
472
+ let i = 1;
473
+ for (; i != decodedData.length; ++i) {
474
+ decodedData[i] =
475
+ bitVector.get(i)
476
+ ? decodedData[i - 1]
477
+ + ((data[dataCounter] >> 1n) ^ -(data[dataCounter++] & 1n))
478
+ : decodedData[i - 1];
479
+ }
480
+ return decodedData;
481
+ }
482
+ /* Transform data to allow util access ------------------------------------------------------------------------ */
483
+ function zigZagDeltaOfDeltaDecoding(data) {
484
+ const decodedData = new Int32Array(data.length + 1);
485
+ decodedData[0] = 0;
486
+ decodedData[1] = decodeZigZagValue(data[0]);
487
+ let deltaSum = decodedData[1];
488
+ let i = 2;
489
+ for (; i != decodedData.length; ++i) {
490
+ const zigZagValue = data[i - 1];
491
+ const delta = ((zigZagValue >>> 1) ^ -(zigZagValue & 1));
492
+ deltaSum += delta;
493
+ decodedData[i] = decodedData[i - 1] + deltaSum;
494
+ }
495
+ return decodedData;
496
+ }
497
+ function zigZagRleDeltaDecoding(data, numRuns, numTotalValues) {
498
+ const decodedValues = new Int32Array(numTotalValues + 1);
499
+ decodedValues[0] = 0;
500
+ let offset = 1;
501
+ let previousValue = decodedValues[0];
502
+ for (let i = 0; i < numRuns; i++) {
503
+ const runLength = data[i];
504
+ let value = data[i + numRuns];
505
+ value = ((value >>> 1) ^ -(value & 1));
506
+ for (let j = offset; j < offset + runLength; j++) {
507
+ decodedValues[j] = value + previousValue;
508
+ previousValue = decodedValues[j];
509
+ }
510
+ offset += runLength;
511
+ }
512
+ return decodedValues;
513
+ }
514
+ function rleDeltaDecoding(data, numRuns, numTotalValues) {
515
+ const decodedValues = new Int32Array(numTotalValues + 1);
516
+ decodedValues[0] = 0;
517
+ let offset = 1;
518
+ let previousValue = decodedValues[0];
519
+ for (let i = 0; i < numRuns; i++) {
520
+ const runLength = data[i];
521
+ const value = data[i + numRuns];
522
+ for (let j = offset; j < offset + runLength; j++) {
523
+ decodedValues[j] = value + previousValue;
524
+ previousValue = decodedValues[j];
525
+ }
526
+ offset += runLength;
527
+ }
528
+ return decodedValues;
529
+ }
530
+ function padWithZeros(bitVector, data) {
531
+ const decodedData = new Int32Array(bitVector.size());
532
+ let dataCounter = 0;
533
+ let i = 0;
534
+ for (; i != decodedData.length; ++i) {
535
+ decodedData[i] = bitVector.get(i) ? data[dataCounter++] : 0;
536
+ }
537
+ return decodedData;
538
+ }
539
+ function padZigZagWithZeros(bitVector, data) {
540
+ const decodedData = new Int32Array(bitVector.size());
541
+ let dataCounter = 0;
542
+ let i = 0;
543
+ for (; i != decodedData.length; ++i) {
544
+ if (bitVector.get(i)) {
545
+ const value = data[dataCounter++];
546
+ decodedData[i] = ((value >>> 1) ^ -(value & 1));
547
+ }
548
+ else {
549
+ decodedData[i] = 0;
550
+ }
551
+ }
552
+ return decodedData;
553
+ }
554
+ function padWithZerosInt64(bitVector, data) {
555
+ const decodedData = new BigInt64Array(bitVector.size());
556
+ let dataCounter = 0;
557
+ let i = 0;
558
+ for (; i != decodedData.length; ++i) {
559
+ decodedData[i] = bitVector.get(i) ? data[dataCounter++] : 0n;
560
+ }
561
+ return decodedData;
562
+ }
563
+ function padZigZagWithZerosInt64(bitVector, data) {
564
+ const decodedData = new BigInt64Array(bitVector.size());
565
+ let dataCounter = 0;
566
+ let i = 0;
567
+ for (; i != decodedData.length; ++i) {
568
+ if (bitVector.get(i)) {
569
+ const value = data[dataCounter++];
570
+ decodedData[i] = ((value >> 1n) ^ -(value & 1n));
571
+ }
572
+ else {
573
+ decodedData[i] = 0n;
574
+ }
575
+ }
576
+ return decodedData;
577
+ }
578
+ function decodeNullableRle(data, streamMetadata, isSigned, bitVector) {
579
+ const rleMetadata = streamMetadata;
580
+ return isSigned
581
+ ? decodeNullableZigZagRle(bitVector, data, rleMetadata.runs)
582
+ : decodeNullableUnsignedRle(bitVector, data, rleMetadata.runs);
583
+ }
584
+ function decodeNullableUnsignedRle(bitVector, data, numRuns) {
585
+ const values = new Int32Array(bitVector.size());
586
+ let offset = 0;
587
+ for (let i = 0; i < numRuns; i++) {
588
+ const runLength = data[i];
589
+ const value = data[i + numRuns];
590
+ for (let j = offset; j < offset + runLength; j++) {
591
+ /* There can be null values in a run */
592
+ if (bitVector.get(j)) {
593
+ values[j] = value;
594
+ }
595
+ else {
596
+ values[j] = 0;
597
+ offset++;
598
+ }
599
+ }
600
+ offset += runLength;
601
+ }
602
+ return values;
603
+ }
604
+ function decodeNullableZigZagRle(bitVector, data, numRuns) {
605
+ const values = new Int32Array(bitVector.size());
606
+ let offset = 0;
607
+ for (let i = 0; i < numRuns; i++) {
608
+ const runLength = data[i];
609
+ let value = data[i + numRuns];
610
+ value = ((value >>> 1) ^ -(value & 1));
611
+ for (let j = offset; j < offset + runLength; j++) {
612
+ /* There can be null values in a run */
613
+ if (bitVector.get(j)) {
614
+ values[j] = value;
615
+ }
616
+ else {
617
+ values[j] = 0;
618
+ offset++;
619
+ }
620
+ }
621
+ offset += runLength;
622
+ }
623
+ return values;
624
+ }
625
+ function decodeNullableRleInt64(data, streamMetadata, isSigned, bitVector) {
626
+ const rleMetadata = streamMetadata;
627
+ return isSigned
628
+ ? decodeNullableZigZagRleInt64(bitVector, data, rleMetadata.runs)
629
+ : decodeNullableUnsignedRleInt64(bitVector, data, rleMetadata.runs);
630
+ }
631
+ function decodeNullableUnsignedRleInt64(bitVector, data, numRuns) {
632
+ const values = new BigInt64Array(bitVector.size());
633
+ let offset = 0;
634
+ for (let i = 0; i < numRuns; i++) {
635
+ const runLength = Number(data[i]);
636
+ const value = data[i + numRuns];
637
+ for (let j = offset; j < offset + runLength; j++) {
638
+ /* There can be null values in a run */
639
+ if (bitVector.get(j)) {
640
+ values[j] = value;
641
+ }
642
+ else {
643
+ values[j] = 0n;
644
+ offset++;
645
+ }
646
+ }
647
+ offset += runLength;
648
+ }
649
+ return values;
650
+ }
651
+ function decodeNullableZigZagRleInt64(bitVector, data, numRuns) {
652
+ const values = new BigInt64Array(bitVector.size());
653
+ let offset = 0;
654
+ for (let i = 0; i < numRuns; i++) {
655
+ const runLength = Number(data[i]);
656
+ let value = data[i + numRuns];
657
+ value = ((value >> 1n) ^ -(value & 1n));
658
+ for (let j = offset; j < offset + runLength; j++) {
659
+ /* There can be null values in a run */
660
+ if (bitVector.get(j)) {
661
+ values[j] = value;
662
+ }
663
+ else {
664
+ values[j] = 0n;
665
+ offset++;
666
+ }
667
+ }
668
+ offset += runLength;
669
+ }
670
+ return values;
671
+ }
672
+ /* Logical Level Techniques Const and Sequence Vectors ------------------------------------------------------------- */
673
+ function decodeUnsignedConstRle(data) {
674
+ return data[1];
675
+ }
676
+ function decodeZigZagConstRle(data) {
677
+ return decodeZigZagValue(data[1]);
678
+ }
679
+ function decodeZigZagSequenceRle(data) {
680
+ /* base value and delta value are equal */
681
+ if (data.length == 2) {
682
+ const value = decodeZigZagValue(data[1]);
683
+ return [value, value];
684
+ }
685
+ /* base value and delta value are not equal -> 2 runs and 2 values*/
686
+ return [decodeZigZagValue(data[2]), decodeZigZagValue(data[3])];
687
+ }
688
+ function decodeUnsignedConstRleInt64(data) {
689
+ return data[1];
690
+ }
691
+ function decodeZigZagConstRleInt64(data) {
692
+ return decodeZigZagValueInt64(data[1]);
693
+ }
694
+ function decodeZigZagSequenceRleInt64(data) {
695
+ /* base value and delta value are equal */
696
+ if (data.length == 2) {
697
+ const value = decodeZigZagValueInt64(data[1]);
698
+ return [value, value];
699
+ }
700
+ /* base value and delta value are not equal -> 2 runs and 2 values*/
701
+ return [decodeZigZagValueInt64(data[2]), decodeZigZagValueInt64(data[3])];
702
+ }
703
+ //# sourceMappingURL=integerDecodingUtils.js.map