@maplibre/mlt 0.0.1-alpha.10

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 (242) 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 +3930 -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 +148 -0
  16. package/dist/encodings/fastpfor/fastpfor.js.map +1 -0
  17. package/dist/encodings/fastpfor/fastpfor.spec.d.ts +1 -0
  18. package/dist/encodings/fastpfor/fastpfor.spec.js +160 -0
  19. package/dist/encodings/fastpfor/fastpfor.spec.js.map +1 -0
  20. package/dist/encodings/fastpfor/index.d.ts +20 -0
  21. package/dist/encodings/fastpfor/index.js +50 -0
  22. package/dist/encodings/fastpfor/index.js.map +1 -0
  23. package/dist/encodings/fastpfor/util.d.ts +2 -0
  24. package/dist/encodings/fastpfor/util.js +16 -0
  25. package/dist/encodings/fastpfor/util.js.map +1 -0
  26. package/dist/encodings/fastpfor/varint.d.ts +18 -0
  27. package/dist/encodings/fastpfor/varint.js +125 -0
  28. package/dist/encodings/fastpfor/varint.js.map +1 -0
  29. package/dist/encodings/fsstDecoder.d.ts +9 -0
  30. package/dist/encodings/fsstDecoder.js +34 -0
  31. package/dist/encodings/fsstDecoder.js.map +1 -0
  32. package/dist/encodings/geometryDecoder.d.ts +5 -0
  33. package/dist/encodings/geometryDecoder.js +441 -0
  34. package/dist/encodings/geometryDecoder.js.map +1 -0
  35. package/dist/encodings/geometryDecoder.spec.d.ts +1 -0
  36. package/dist/encodings/geometryDecoder.spec.js +7 -0
  37. package/dist/encodings/geometryDecoder.spec.js.map +1 -0
  38. package/dist/encodings/geometryScaling.d.ts +6 -0
  39. package/dist/encodings/geometryScaling.js +3 -0
  40. package/dist/encodings/geometryScaling.js.map +1 -0
  41. package/dist/encodings/intWrapper.d.ts +8 -0
  42. package/dist/encodings/intWrapper.js +23 -0
  43. package/dist/encodings/intWrapper.js.map +1 -0
  44. package/dist/encodings/integerDecodingUtils.d.ts +46 -0
  45. package/dist/encodings/integerDecodingUtils.js +699 -0
  46. package/dist/encodings/integerDecodingUtils.js.map +1 -0
  47. package/dist/encodings/integerDecodingUtils.spec.d.ts +1 -0
  48. package/dist/encodings/integerDecodingUtils.spec.js +63 -0
  49. package/dist/encodings/integerDecodingUtils.spec.js.map +1 -0
  50. package/dist/encodings/integerStreamDecoder.d.ts +26 -0
  51. package/dist/encodings/integerStreamDecoder.js +249 -0
  52. package/dist/encodings/integerStreamDecoder.js.map +1 -0
  53. package/dist/encodings/propertyDecoder.d.ts +4 -0
  54. package/dist/encodings/propertyDecoder.js +146 -0
  55. package/dist/encodings/propertyDecoder.js.map +1 -0
  56. package/dist/encodings/stringDecoder.d.ts +11 -0
  57. package/dist/encodings/stringDecoder.js +149 -0
  58. package/dist/encodings/stringDecoder.js.map +1 -0
  59. package/dist/index.d.ts +11 -0
  60. package/dist/index.js +19 -0
  61. package/dist/index.js.map +1 -0
  62. package/dist/metadata/tile/dictionaryType.d.ts +8 -0
  63. package/dist/metadata/tile/dictionaryType.js +13 -0
  64. package/dist/metadata/tile/dictionaryType.js.map +1 -0
  65. package/dist/metadata/tile/lengthType.d.ts +9 -0
  66. package/dist/metadata/tile/lengthType.js +14 -0
  67. package/dist/metadata/tile/lengthType.js.map +1 -0
  68. package/dist/metadata/tile/logicalLevelTechnique.d.ts +8 -0
  69. package/dist/metadata/tile/logicalLevelTechnique.js +15 -0
  70. package/dist/metadata/tile/logicalLevelTechnique.js.map +1 -0
  71. package/dist/metadata/tile/logicalStreamType.d.ts +12 -0
  72. package/dist/metadata/tile/logicalStreamType.js +24 -0
  73. package/dist/metadata/tile/logicalStreamType.js.map +1 -0
  74. package/dist/metadata/tile/mortonEncodedStreamMetadata.d.ts +15 -0
  75. package/dist/metadata/tile/mortonEncodedStreamMetadata.js +31 -0
  76. package/dist/metadata/tile/mortonEncodedStreamMetadata.js.map +1 -0
  77. package/dist/metadata/tile/offsetType.d.ts +6 -0
  78. package/dist/metadata/tile/offsetType.js +11 -0
  79. package/dist/metadata/tile/offsetType.js.map +1 -0
  80. package/dist/metadata/tile/physicalLevelTechnique.d.ts +17 -0
  81. package/dist/metadata/tile/physicalLevelTechnique.js +22 -0
  82. package/dist/metadata/tile/physicalLevelTechnique.js.map +1 -0
  83. package/dist/metadata/tile/physicalStreamType.d.ts +6 -0
  84. package/dist/metadata/tile/physicalStreamType.js +11 -0
  85. package/dist/metadata/tile/physicalStreamType.js.map +1 -0
  86. package/dist/metadata/tile/rleEncodedStreamMetadata.d.ts +20 -0
  87. package/dist/metadata/tile/rleEncodedStreamMetadata.js +36 -0
  88. package/dist/metadata/tile/rleEncodedStreamMetadata.js.map +1 -0
  89. package/dist/metadata/tile/scalarType.d.ts +12 -0
  90. package/dist/metadata/tile/scalarType.js +17 -0
  91. package/dist/metadata/tile/scalarType.js.map +1 -0
  92. package/dist/metadata/tile/streamMetadata.d.ts +23 -0
  93. package/dist/metadata/tile/streamMetadata.js +78 -0
  94. package/dist/metadata/tile/streamMetadata.js.map +1 -0
  95. package/dist/metadata/tile/streamMetadataDecoder.d.ts +5 -0
  96. package/dist/metadata/tile/streamMetadataDecoder.js +24 -0
  97. package/dist/metadata/tile/streamMetadataDecoder.js.map +1 -0
  98. package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.d.ts +10 -0
  99. package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.js +123 -0
  100. package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.js.map +1 -0
  101. package/dist/metadata/tileset/tilesetMetadata.d.ts +80 -0
  102. package/dist/metadata/tileset/tilesetMetadata.js +32 -0
  103. package/dist/metadata/tileset/tilesetMetadata.js.map +1 -0
  104. package/dist/metadata/tileset/typeMap.d.ts +38 -0
  105. package/dist/metadata/tileset/typeMap.js +193 -0
  106. package/dist/metadata/tileset/typeMap.js.map +1 -0
  107. package/dist/mltDecoder.d.ts +11 -0
  108. package/dist/mltDecoder.js +149 -0
  109. package/dist/mltDecoder.js.map +1 -0
  110. package/dist/mltDecoder.spec.d.ts +1 -0
  111. package/dist/mltDecoder.spec.js +142 -0
  112. package/dist/mltDecoder.spec.js.map +1 -0
  113. package/dist/mltMetadata.d.ts +40 -0
  114. package/dist/mltMetadata.js +34 -0
  115. package/dist/mltMetadata.js.map +1 -0
  116. package/dist/vector/constant/intConstVector.d.ts +19 -0
  117. package/dist/vector/constant/intConstVector.js +90 -0
  118. package/dist/vector/constant/intConstVector.js.map +1 -0
  119. package/dist/vector/constant/longConstVector.d.ts +19 -0
  120. package/dist/vector/constant/longConstVector.js +88 -0
  121. package/dist/vector/constant/longConstVector.js.map +1 -0
  122. package/dist/vector/dictionary/stringDictionaryVector.d.ts +22 -0
  123. package/dist/vector/dictionary/stringDictionaryVector.js +193 -0
  124. package/dist/vector/dictionary/stringDictionaryVector.js.map +1 -0
  125. package/dist/vector/dictionary/stringDictionaryVector.spec.d.ts +1 -0
  126. package/dist/vector/dictionary/stringDictionaryVector.spec.js +49 -0
  127. package/dist/vector/dictionary/stringDictionaryVector.spec.js.map +1 -0
  128. package/dist/vector/featureTable.d.ts +33 -0
  129. package/dist/vector/featureTable.js +109 -0
  130. package/dist/vector/featureTable.js.map +1 -0
  131. package/dist/vector/filter/constSelectionVector.d.ts +0 -0
  132. package/dist/vector/filter/constSelectionVector.js +1 -0
  133. package/dist/vector/filter/constSelectionVector.js.map +1 -0
  134. package/dist/vector/filter/flatSelectionVector.d.ts +16 -0
  135. package/dist/vector/filter/flatSelectionVector.js +44 -0
  136. package/dist/vector/filter/flatSelectionVector.js.map +1 -0
  137. package/dist/vector/filter/selectionVector.d.ts +8 -0
  138. package/dist/vector/filter/selectionVector.js +3 -0
  139. package/dist/vector/filter/selectionVector.js.map +1 -0
  140. package/dist/vector/filter/selectionVectorUtils.d.ts +7 -0
  141. package/dist/vector/filter/selectionVectorUtils.js +44 -0
  142. package/dist/vector/filter/selectionVectorUtils.js.map +1 -0
  143. package/dist/vector/filter/sequenceSelectionVector.d.ts +0 -0
  144. package/dist/vector/filter/sequenceSelectionVector.js +1 -0
  145. package/dist/vector/filter/sequenceSelectionVector.js.map +1 -0
  146. package/dist/vector/fixedSizeVector.d.ts +3 -0
  147. package/dist/vector/fixedSizeVector.js +11 -0
  148. package/dist/vector/fixedSizeVector.js.map +1 -0
  149. package/dist/vector/flat/bitVector.d.ts +14 -0
  150. package/dist/vector/flat/bitVector.js +40 -0
  151. package/dist/vector/flat/bitVector.js.map +1 -0
  152. package/dist/vector/flat/booleanFlatVector.d.ts +20 -0
  153. package/dist/vector/flat/booleanFlatVector.js +55 -0
  154. package/dist/vector/flat/booleanFlatVector.js.map +1 -0
  155. package/dist/vector/flat/doubleFlatVector.d.ts +17 -0
  156. package/dist/vector/flat/doubleFlatVector.js +109 -0
  157. package/dist/vector/flat/doubleFlatVector.js.map +1 -0
  158. package/dist/vector/flat/floatFlatVector.d.ts +17 -0
  159. package/dist/vector/flat/floatFlatVector.js +109 -0
  160. package/dist/vector/flat/floatFlatVector.js.map +1 -0
  161. package/dist/vector/flat/intFlatVector.d.ts +17 -0
  162. package/dist/vector/flat/intFlatVector.js +122 -0
  163. package/dist/vector/flat/intFlatVector.js.map +1 -0
  164. package/dist/vector/flat/longFlatVector.d.ts +17 -0
  165. package/dist/vector/flat/longFlatVector.js +123 -0
  166. package/dist/vector/flat/longFlatVector.js.map +1 -0
  167. package/dist/vector/flat/stringFlatVector.d.ts +20 -0
  168. package/dist/vector/flat/stringFlatVector.js +177 -0
  169. package/dist/vector/flat/stringFlatVector.js.map +1 -0
  170. package/dist/vector/flat/stringFlatVector.spec.d.ts +1 -0
  171. package/dist/vector/flat/stringFlatVector.spec.js +46 -0
  172. package/dist/vector/flat/stringFlatVector.spec.js.map +1 -0
  173. package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.d.ts +27 -0
  174. package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js +123 -0
  175. package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js.map +1 -0
  176. package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.spec.d.ts +1 -0
  177. package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.spec.js +33 -0
  178. package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.spec.js.map +1 -0
  179. package/dist/vector/geometry/constGeometryVector.d.ts +18 -0
  180. package/dist/vector/geometry/constGeometryVector.js +54 -0
  181. package/dist/vector/geometry/constGeometryVector.js.map +1 -0
  182. package/dist/vector/geometry/constGpuVector.d.ts +15 -0
  183. package/dist/vector/geometry/constGpuVector.js +68 -0
  184. package/dist/vector/geometry/constGpuVector.js.map +1 -0
  185. package/dist/vector/geometry/flatGeometryVector.d.ts +17 -0
  186. package/dist/vector/geometry/flatGeometryVector.js +65 -0
  187. package/dist/vector/geometry/flatGeometryVector.js.map +1 -0
  188. package/dist/vector/geometry/flatGpuVector.d.ts +14 -0
  189. package/dist/vector/geometry/flatGpuVector.js +68 -0
  190. package/dist/vector/geometry/flatGpuVector.js.map +1 -0
  191. package/dist/vector/geometry/geometryType.d.ts +13 -0
  192. package/dist/vector/geometry/geometryType.js +19 -0
  193. package/dist/vector/geometry/geometryType.js.map +1 -0
  194. package/dist/vector/geometry/geometryVector.d.ts +37 -0
  195. package/dist/vector/geometry/geometryVector.js +73 -0
  196. package/dist/vector/geometry/geometryVector.js.map +1 -0
  197. package/dist/vector/geometry/geometryVectorConverter.d.ts +2 -0
  198. package/dist/vector/geometry/geometryVectorConverter.js +305 -0
  199. package/dist/vector/geometry/geometryVectorConverter.js.map +1 -0
  200. package/dist/vector/geometry/gpuVector.d.ts +26 -0
  201. package/dist/vector/geometry/gpuVector.js +129 -0
  202. package/dist/vector/geometry/gpuVector.js.map +1 -0
  203. package/dist/vector/geometry/point.d.ts +195 -0
  204. package/dist/vector/geometry/point.js +310 -0
  205. package/dist/vector/geometry/point.js.map +1 -0
  206. package/dist/vector/geometry/spaceFillingCurve.d.ts +22 -0
  207. package/dist/vector/geometry/spaceFillingCurve.js +34 -0
  208. package/dist/vector/geometry/spaceFillingCurve.js.map +1 -0
  209. package/dist/vector/geometry/topologyVector.d.ts +9 -0
  210. package/dist/vector/geometry/topologyVector.js +24 -0
  211. package/dist/vector/geometry/topologyVector.js.map +1 -0
  212. package/dist/vector/geometry/vertexBufferType.d.ts +5 -0
  213. package/dist/vector/geometry/vertexBufferType.js +10 -0
  214. package/dist/vector/geometry/vertexBufferType.js.map +1 -0
  215. package/dist/vector/geometry/zOrderCurve.d.ts +17 -0
  216. package/dist/vector/geometry/zOrderCurve.js +44 -0
  217. package/dist/vector/geometry/zOrderCurve.js.map +1 -0
  218. package/dist/vector/geometry/zOrderCurve.spec.d.ts +1 -0
  219. package/dist/vector/geometry/zOrderCurve.spec.js +19 -0
  220. package/dist/vector/geometry/zOrderCurve.spec.js.map +1 -0
  221. package/dist/vector/intVector.d.ts +8 -0
  222. package/dist/vector/intVector.js +3 -0
  223. package/dist/vector/intVector.js.map +1 -0
  224. package/dist/vector/sequence/intSequenceVector.d.ts +18 -0
  225. package/dist/vector/sequence/intSequenceVector.js +72 -0
  226. package/dist/vector/sequence/intSequenceVector.js.map +1 -0
  227. package/dist/vector/sequence/longSequenceVector.d.ts +18 -0
  228. package/dist/vector/sequence/longSequenceVector.js +57 -0
  229. package/dist/vector/sequence/longSequenceVector.js.map +1 -0
  230. package/dist/vector/sequence/sequenceVector.d.ts +5 -0
  231. package/dist/vector/sequence/sequenceVector.js +16 -0
  232. package/dist/vector/sequence/sequenceVector.js.map +1 -0
  233. package/dist/vector/variableSizeVector.d.ts +6 -0
  234. package/dist/vector/variableSizeVector.js +17 -0
  235. package/dist/vector/variableSizeVector.js.map +1 -0
  236. package/dist/vector/vector.d.ts +30 -0
  237. package/dist/vector/vector.js +76 -0
  238. package/dist/vector/vector.js.map +1 -0
  239. package/dist/vector/vectorType.d.ts +7 -0
  240. package/dist/vector/vectorType.js +12 -0
  241. package/dist/vector/vectorType.js.map +1 -0
  242. package/package.json +49 -0
@@ -0,0 +1,149 @@
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.default = decodeTile;
7
+ const featureTable_1 = __importDefault(require("./vector/featureTable"));
8
+ const tilesetMetadata_1 = require("./metadata/tileset/tilesetMetadata");
9
+ const intWrapper_1 = __importDefault(require("./encodings/intWrapper"));
10
+ const streamMetadataDecoder_1 = require("./metadata/tile/streamMetadataDecoder");
11
+ const vectorType_1 = require("./vector/vectorType");
12
+ const intFlatVector_1 = require("./vector/flat/intFlatVector");
13
+ const bitVector_1 = __importDefault(require("./vector/flat/bitVector"));
14
+ const integerStreamDecoder_1 = __importDefault(require("./encodings/integerStreamDecoder"));
15
+ const intSequenceVector_1 = require("./vector/sequence/intSequenceVector");
16
+ const longFlatVector_1 = require("./vector/flat/longFlatVector");
17
+ const longSequenceVector_1 = require("./vector/sequence/longSequenceVector");
18
+ const integerDecodingUtils_1 = require("./encodings/integerDecodingUtils");
19
+ const geometryDecoder_1 = require("./encodings/geometryDecoder");
20
+ const propertyDecoder_1 = require("./encodings/propertyDecoder");
21
+ const intConstVector_1 = require("./vector/constant/intConstVector");
22
+ const longConstVector_1 = require("./vector/constant/longConstVector");
23
+ const decodingUtils_1 = require("./encodings/decodingUtils");
24
+ const doubleFlatVector_1 = require("./vector/flat/doubleFlatVector");
25
+ const embeddedTilesetMetadataDecoder_1 = require("./metadata/tileset/embeddedTilesetMetadataDecoder");
26
+ const typeMap_1 = require("./metadata/tileset/typeMap");
27
+ const ID_COLUMN_NAME = "id";
28
+ const GEOMETRY_COLUMN_NAME = "geometry";
29
+ /**
30
+ * Decodes a tile with embedded metadata (Tag 0x01 format).
31
+ * This is the primary decoder function for MLT tiles.
32
+ *
33
+ * @param tile The tile data to decode
34
+ * @param geometryScaling Optional geometry scaling parameters
35
+ * @param idWithinMaxSafeInteger If true, limits ID values to JavaScript safe integer range (53 bits)
36
+ */
37
+ function decodeTile(tile, geometryScaling, idWithinMaxSafeInteger = true) {
38
+ const offset = new intWrapper_1.default(0);
39
+ const featureTables = [];
40
+ while (offset.get() < tile.length) {
41
+ const blockLength = (0, integerDecodingUtils_1.decodeVarintInt32)(tile, offset, 1)[0] >>> 0;
42
+ const blockStart = offset.get();
43
+ const blockEnd = blockStart + blockLength;
44
+ if (blockEnd > tile.length) {
45
+ throw new Error(`Block overruns tile: ${blockEnd} > ${tile.length}`);
46
+ }
47
+ const tag = (0, integerDecodingUtils_1.decodeVarintInt32)(tile, offset, 1)[0] >>> 0;
48
+ if (tag !== 1) {
49
+ // Skip unknown block types
50
+ offset.set(blockEnd);
51
+ continue;
52
+ }
53
+ // Decode embedded metadata and extent (one of each per block)
54
+ const decode = (0, embeddedTilesetMetadataDecoder_1.decodeEmbeddedTileSetMetadata)(tile, offset);
55
+ const metadata = decode[0];
56
+ const extent = decode[1];
57
+ const featureTableMetadata = metadata.featureTables[0];
58
+ // Decode columns from streams
59
+ let idVector = null;
60
+ let geometryVector = null;
61
+ const propertyVectors = [];
62
+ let numFeatures = 0;
63
+ for (const columnMetadata of featureTableMetadata.columns) {
64
+ const columnName = columnMetadata.name;
65
+ const numStreams = typeMap_1.TypeMap.hasStreamCount(columnMetadata) ? (0, integerDecodingUtils_1.decodeVarintInt32)(tile, offset, 1)[0] : 1;
66
+ if (columnName === ID_COLUMN_NAME) {
67
+ let nullabilityBuffer = null;
68
+ // Check column metadata nullable flag, not numStreams (ID columns don't have stream count)
69
+ if (columnMetadata.nullable) {
70
+ const presentStreamMetadata = streamMetadataDecoder_1.StreamMetadataDecoder.decode(tile, offset);
71
+ const streamDataStart = offset.get();
72
+ const values = (0, decodingUtils_1.decodeBooleanRle)(tile, presentStreamMetadata.numValues, offset);
73
+ // Fix offset: decodeBooleanRle doesn't consume all compressed bytes
74
+ offset.set(streamDataStart + presentStreamMetadata.byteLength);
75
+ nullabilityBuffer = new bitVector_1.default(values, presentStreamMetadata.numValues);
76
+ }
77
+ const idDataStreamMetadata = streamMetadataDecoder_1.StreamMetadataDecoder.decode(tile, offset);
78
+ numFeatures = idDataStreamMetadata.numValues;
79
+ idVector = decodeIdColumn(tile, columnMetadata, offset, columnName, idDataStreamMetadata, nullabilityBuffer ?? numFeatures, idWithinMaxSafeInteger);
80
+ }
81
+ else if (columnName === GEOMETRY_COLUMN_NAME) {
82
+ if (geometryScaling) {
83
+ geometryScaling.scale = geometryScaling.extent / extent;
84
+ }
85
+ geometryVector = (0, geometryDecoder_1.decodeGeometryColumn)(tile, numStreams, offset, numFeatures, geometryScaling);
86
+ }
87
+ else {
88
+ if (numStreams === 0 && columnMetadata.type === "scalarType") {
89
+ continue;
90
+ }
91
+ const propertyVector = (0, propertyDecoder_1.decodePropertyColumn)(tile, offset, columnMetadata, numStreams, numFeatures, undefined);
92
+ if (propertyVector) {
93
+ if (Array.isArray(propertyVector)) {
94
+ propertyVectors.push(...propertyVector);
95
+ }
96
+ else {
97
+ propertyVectors.push(propertyVector);
98
+ }
99
+ }
100
+ }
101
+ }
102
+ const featureTable = new featureTable_1.default(featureTableMetadata.name, geometryVector, idVector, propertyVectors, extent);
103
+ featureTables.push(featureTable);
104
+ offset.set(blockEnd);
105
+ }
106
+ return featureTables;
107
+ }
108
+ function decodeIdColumn(tile, columnMetadata, offset, columnName, idDataStreamMetadata, sizeOrNullabilityBuffer, idWithinMaxSafeInteger = false) {
109
+ const idDataType = columnMetadata.scalarType.physicalType;
110
+ const vectorType = integerStreamDecoder_1.default.getVectorType(idDataStreamMetadata, sizeOrNullabilityBuffer);
111
+ if (idDataType === tilesetMetadata_1.ScalarType.UINT_32) {
112
+ switch (vectorType) {
113
+ case vectorType_1.VectorType.FLAT: {
114
+ const id = integerStreamDecoder_1.default.decodeIntStream(tile, offset, idDataStreamMetadata, false);
115
+ return new intFlatVector_1.IntFlatVector(columnName, id, sizeOrNullabilityBuffer);
116
+ }
117
+ case vectorType_1.VectorType.SEQUENCE: {
118
+ const id = integerStreamDecoder_1.default.decodeSequenceIntStream(tile, offset, idDataStreamMetadata);
119
+ return new intSequenceVector_1.IntSequenceVector(columnName, id[0], id[1], idDataStreamMetadata.numRleValues);
120
+ }
121
+ case vectorType_1.VectorType.CONST: {
122
+ const id = integerStreamDecoder_1.default.decodeConstIntStream(tile, offset, idDataStreamMetadata, false);
123
+ return new intConstVector_1.IntConstVector(columnName, id, sizeOrNullabilityBuffer);
124
+ }
125
+ }
126
+ }
127
+ else {
128
+ switch (vectorType) {
129
+ case vectorType_1.VectorType.FLAT: {
130
+ if (idWithinMaxSafeInteger) {
131
+ const id = integerStreamDecoder_1.default.decodeLongFloat64Stream(tile, offset, idDataStreamMetadata, false);
132
+ return new doubleFlatVector_1.DoubleFlatVector(columnName, id, sizeOrNullabilityBuffer);
133
+ }
134
+ const id = integerStreamDecoder_1.default.decodeLongStream(tile, offset, idDataStreamMetadata, false);
135
+ return new longFlatVector_1.LongFlatVector(columnName, id, sizeOrNullabilityBuffer);
136
+ }
137
+ case vectorType_1.VectorType.SEQUENCE: {
138
+ const id = integerStreamDecoder_1.default.decodeSequenceLongStream(tile, offset, idDataStreamMetadata);
139
+ return new longSequenceVector_1.LongSequenceVector(columnName, id[0], id[1], idDataStreamMetadata.numRleValues);
140
+ }
141
+ case vectorType_1.VectorType.CONST: {
142
+ const id = integerStreamDecoder_1.default.decodeConstLongStream(tile, offset, idDataStreamMetadata, false);
143
+ return new longConstVector_1.LongConstVector(columnName, id, sizeOrNullabilityBuffer);
144
+ }
145
+ }
146
+ }
147
+ throw new Error("Vector type not supported for id column.");
148
+ }
149
+ //# sourceMappingURL=mltDecoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mltDecoder.js","sourceRoot":"","sources":["../src/mltDecoder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,142 @@
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
+ const vitest_1 = require("vitest");
7
+ const fs_1 = require("fs");
8
+ const path_1 = require("path");
9
+ const vector_tile_1 = require("@mapbox/vector-tile");
10
+ const pbf_1 = __importDefault(require("pbf"));
11
+ const _1 = require(".");
12
+ (0, vitest_1.describe)("MLT Decoder - MVT comparison for SIMPLE tiles", () => {
13
+ const simpleMltTileDir = "../test/expected/tag0x01/simple";
14
+ const simpleMvtTileDir = "../test/fixtures/simple";
15
+ testTiles(simpleMltTileDir, simpleMvtTileDir);
16
+ });
17
+ (0, vitest_1.describe)("MLT Decoder - MVT comparison for Amazon tiles", () => {
18
+ const amazonMltTileDir = "../test/expected/tag0x01/amazon";
19
+ const amazonMvtTileDir = "../test/fixtures/amazon";
20
+ testTiles(amazonMltTileDir, amazonMvtTileDir);
21
+ });
22
+ (0, vitest_1.describe)("MLT Decoder - MVT comparison for OMT tiles", () => {
23
+ const omtMltTileDir = "../test/expected/tag0x01/omt";
24
+ const omtMvtTileDir = "../test/fixtures/omt";
25
+ // TODO: remove ignore list when the issues with the ID of these tiles are resolved
26
+ testTiles(omtMltTileDir, omtMvtTileDir, [
27
+ "10_530_683",
28
+ "10_532_683",
29
+ "11_1062_1367",
30
+ "11_1064_1366",
31
+ "13_4267_5467",
32
+ ]);
33
+ });
34
+ function testTiles(mltSearchDir, mvtSearchDir, ignoreList = []) {
35
+ const mltFileNames = (0, fs_1.readdirSync)(mltSearchDir)
36
+ .filter((file) => (0, path_1.parse)(file).ext === ".mlt" && !ignoreList.includes((0, path_1.parse)(file).name))
37
+ .map((file) => (0, path_1.parse)(file).name);
38
+ for (const fileName of mltFileNames) {
39
+ (0, vitest_1.it)(`should compare ${fileName} tile`, () => {
40
+ const mltFileName = `${fileName}.mlt`;
41
+ const mltPath = (0, path_1.join)(mltSearchDir, mltFileName);
42
+ const mvtPath = (0, path_1.join)(mvtSearchDir, `${fileName}.mvt`);
43
+ const encodedMvt = (0, fs_1.readFileSync)(mvtPath);
44
+ const encodedMlt = (0, fs_1.readFileSync)(mltPath);
45
+ const buf = new pbf_1.default(encodedMvt);
46
+ const decodedMvt = new vector_tile_1.VectorTile(buf);
47
+ const decodedMlt = (0, _1.decodeTile)(encodedMlt, undefined, true);
48
+ comparePlainGeometryEncodedTile(decodedMlt, decodedMvt);
49
+ });
50
+ }
51
+ }
52
+ function removeEmptyStrings(mvtProperties) {
53
+ for (const key of Object.keys(mvtProperties)) {
54
+ const value = mvtProperties[key];
55
+ if (typeof value === "string" && !value.length) {
56
+ delete mvtProperties[key];
57
+ }
58
+ }
59
+ }
60
+ function comparePlainGeometryEncodedTile(mlt, mvt) {
61
+ for (const featureTable of mlt) {
62
+ const layer = mvt.layers[featureTable.name];
63
+ // Use getFeatures() instead of iterator (like C++ and Java implementations)
64
+ const mltFeatures = featureTable.getFeatures();
65
+ for (let j = 0; j < mltFeatures.length; j++) {
66
+ const mltFeature = mltFeatures[j];
67
+ const mvtFeature = layer.feature(j);
68
+ compareId(mltFeature, mvtFeature, true);
69
+ const mltGeometry = mltFeature.geometry?.coordinates;
70
+ const mvtGeometry = mvtFeature.loadGeometry();
71
+ (0, vitest_1.expect)(mltGeometry).toEqual(mvtGeometry);
72
+ const mltProperties = mltFeature.properties;
73
+ const mvtProperties = mvtFeature.properties;
74
+ transformPropertyNames(mltProperties);
75
+ transformPropertyNames(mvtProperties);
76
+ convertBigIntPropertyValues(mltProperties);
77
+ //TODO: fix -> since a change in the java converter shared dictionary encoding empty strings are not
78
+ //encoded anymore
79
+ removeEmptyStrings(mvtProperties);
80
+ removeEmptyStrings(mltProperties);
81
+ (0, vitest_1.expect)(Object.keys(mltProperties).length).toEqual(Object.keys(mvtProperties).length);
82
+ (0, vitest_1.expect)(mltProperties).toEqual(mvtProperties);
83
+ }
84
+ }
85
+ }
86
+ function compareId(mltFeature, mvtFeature, idWithinMaxSafeInteger) {
87
+ if (!mvtFeature.id) {
88
+ /* Java MVT library in the MVT converter decodes zero for undefined ids */
89
+ (0, vitest_1.expect)([0, null, 0n]).toContain(mltFeature.id);
90
+ }
91
+ else {
92
+ const mltFeatureId = mltFeature.id;
93
+ /* For const and sequence vectors the decoder can return bigint compared to the vector-tile-js library */
94
+ const actualId = idWithinMaxSafeInteger && typeof mltFeatureId !== "bigint" ? mltFeatureId : Number(mltFeatureId);
95
+ /*
96
+ * The id check can fail for two known reasons:
97
+ * - The java-vector-tile library used in the Java converter returns negative integers for the
98
+ * unoptimized tileset in some tiles
99
+ * - The vector-tile-js library is using number types for the id so there can only be stored
100
+ * values up to 53 bits without loss of precision
101
+ **/
102
+ if (mltFeatureId < 0 || mltFeatureId > Number.MAX_SAFE_INTEGER) {
103
+ /* Expected to fail in some/most cases */
104
+ try {
105
+ (0, vitest_1.expect)(actualId).toEqual(mvtFeature.id);
106
+ }
107
+ catch (e) {
108
+ //console.info("id mismatch", featureTableName, mltFeatureId, mvtFeature.id);
109
+ }
110
+ return;
111
+ }
112
+ (0, vitest_1.expect)(actualId).toEqual(mvtFeature.id);
113
+ }
114
+ }
115
+ /* Change bigint to number for comparison with MVT */
116
+ function convertBigIntPropertyValues(mltProperties) {
117
+ for (const key of Object.keys(mltProperties)) {
118
+ if (typeof mltProperties[key] === "bigint") {
119
+ mltProperties[key] = Number(mltProperties[key]);
120
+ }
121
+ }
122
+ }
123
+ function transformPropertyNames(properties) {
124
+ const propertyNames = Object.keys(properties);
125
+ for (let k = 0; k < propertyNames.length; k++) {
126
+ const key = propertyNames[k];
127
+ let newKey = key;
128
+ /* rename the property names which are separated with : in mlt to match _ in omt mvts */
129
+ if (key.startsWith("name") && key.includes(":")) {
130
+ newKey = key.replaceAll(":", "_");
131
+ properties[newKey] = properties[key];
132
+ delete properties[key];
133
+ }
134
+ /* Currently id is not supported as a property name in a FeatureTable,
135
+ * so this quick workaround is implemented */
136
+ if (newKey === "_id") {
137
+ properties["id"] = properties[newKey];
138
+ delete properties[newKey];
139
+ }
140
+ }
141
+ }
142
+ //# sourceMappingURL=mltDecoder.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mltDecoder.spec.js","sourceRoot":"","sources":["../src/mltDecoder.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ export declare enum ColumnDataType {
2
+ STRING = 0,
3
+ FLOAT = 1,
4
+ DOUBLE = 2,
5
+ INT_64 = 3,
6
+ UINT_64 = 4,
7
+ BOOLEAN = 5,
8
+ GEOMETRY = 6,
9
+ GEOMETRY_M = 7,
10
+ GEOMETRY_Z = 8,
11
+ GEOMETRY_ZM = 9
12
+ }
13
+ export declare enum ColumnEncoding {
14
+ PLAIN = 0,
15
+ VARINT = 1,
16
+ DELTA_VARINT = 2,
17
+ RLE = 3,
18
+ BOOLEAN_RLE = 4,
19
+ BYTE_RLE = 5,
20
+ DICTIONARY = 6,
21
+ LOCALIZED_DICTIONARY = 7,
22
+ ORDERED_GEOMETRY_ENCODING = 8,
23
+ INDEXED_COORDINATE_ENCODING = 9
24
+ }
25
+ export interface ColumnMetadata {
26
+ columnName: string;
27
+ columnType: ColumnDataType;
28
+ columnEncoding: ColumnEncoding;
29
+ streams: Map<string, StreamMetadata>;
30
+ }
31
+ export interface StreamMetadata {
32
+ numValues: number;
33
+ byteLength: number;
34
+ }
35
+ export interface LayerMetadata {
36
+ name: string;
37
+ numColumns: number;
38
+ numFeatures: number;
39
+ columnMetadata: ColumnMetadata[];
40
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ColumnEncoding = exports.ColumnDataType = void 0;
4
+ var ColumnDataType;
5
+ (function (ColumnDataType) {
6
+ ColumnDataType[ColumnDataType["STRING"] = 0] = "STRING";
7
+ ColumnDataType[ColumnDataType["FLOAT"] = 1] = "FLOAT";
8
+ ColumnDataType[ColumnDataType["DOUBLE"] = 2] = "DOUBLE";
9
+ ColumnDataType[ColumnDataType["INT_64"] = 3] = "INT_64";
10
+ ColumnDataType[ColumnDataType["UINT_64"] = 4] = "UINT_64";
11
+ ColumnDataType[ColumnDataType["BOOLEAN"] = 5] = "BOOLEAN";
12
+ ColumnDataType[ColumnDataType["GEOMETRY"] = 6] = "GEOMETRY";
13
+ ColumnDataType[ColumnDataType["GEOMETRY_M"] = 7] = "GEOMETRY_M";
14
+ ColumnDataType[ColumnDataType["GEOMETRY_Z"] = 8] = "GEOMETRY_Z";
15
+ ColumnDataType[ColumnDataType["GEOMETRY_ZM"] = 9] = "GEOMETRY_ZM";
16
+ })(ColumnDataType || (exports.ColumnDataType = ColumnDataType = {}));
17
+ var ColumnEncoding;
18
+ (function (ColumnEncoding) {
19
+ /*
20
+ * String -> no dictionary coding
21
+ * Geometry -> standard unsorted encoding
22
+ * */
23
+ ColumnEncoding[ColumnEncoding["PLAIN"] = 0] = "PLAIN";
24
+ ColumnEncoding[ColumnEncoding["VARINT"] = 1] = "VARINT";
25
+ ColumnEncoding[ColumnEncoding["DELTA_VARINT"] = 2] = "DELTA_VARINT";
26
+ ColumnEncoding[ColumnEncoding["RLE"] = 3] = "RLE";
27
+ ColumnEncoding[ColumnEncoding["BOOLEAN_RLE"] = 4] = "BOOLEAN_RLE";
28
+ ColumnEncoding[ColumnEncoding["BYTE_RLE"] = 5] = "BYTE_RLE";
29
+ ColumnEncoding[ColumnEncoding["DICTIONARY"] = 6] = "DICTIONARY";
30
+ ColumnEncoding[ColumnEncoding["LOCALIZED_DICTIONARY"] = 7] = "LOCALIZED_DICTIONARY";
31
+ ColumnEncoding[ColumnEncoding["ORDERED_GEOMETRY_ENCODING"] = 8] = "ORDERED_GEOMETRY_ENCODING";
32
+ ColumnEncoding[ColumnEncoding["INDEXED_COORDINATE_ENCODING"] = 9] = "INDEXED_COORDINATE_ENCODING";
33
+ })(ColumnEncoding || (exports.ColumnEncoding = ColumnEncoding = {}));
34
+ //# sourceMappingURL=mltMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mltMetadata.js","sourceRoot":"","sources":["../src/mltMetadata.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAWX;AAXD,WAAY,cAAc;IACtB,uDAAM,CAAA;IACN,qDAAK,CAAA;IACL,uDAAM,CAAA;IACN,uDAAM,CAAA;IACN,yDAAO,CAAA;IACP,yDAAO,CAAA;IACP,2DAAQ,CAAA;IACR,+DAAU,CAAA;IACV,+DAAU,CAAA;IACV,iEAAW,CAAA;AACf,CAAC,EAXW,cAAc,8BAAd,cAAc,QAWzB;AAED,IAAY,cAeX;AAfD,WAAY,cAAc;IACtB;;;SAGK;IACL,qDAAK,CAAA;IACL,uDAAM,CAAA;IACN,mEAAY,CAAA;IACZ,iDAAG,CAAA;IACH,iEAAW,CAAA;IACX,2DAAQ,CAAA;IACR,+DAAU,CAAA;IACV,mFAAoB,CAAA;IACpB,6FAAyB,CAAA;IACzB,iGAA2B,CAAA;AAC/B,CAAC,EAfW,cAAc,8BAAd,cAAc,QAezB"}
@@ -0,0 +1,19 @@
1
+ import type BitVector from "../flat/bitVector";
2
+ import { type SelectionVector } from "../filter/selectionVector";
3
+ import Vector from "../vector";
4
+ export declare class IntConstVector extends Vector<Int32Array, number> {
5
+ constructor(name: string, value: number, sizeOrNullabilityBuffer: number | BitVector);
6
+ filter(value: number): SelectionVector;
7
+ match(values: number[]): SelectionVector;
8
+ filterSelected(value: number, selectionVector: SelectionVector): void;
9
+ matchSelected(values: number[], selectionVector: SelectionVector): void;
10
+ protected getValueFromBuffer(index: number): number;
11
+ greaterThanOrEqualTo(testValue: number): SelectionVector;
12
+ greaterThanOrEqualToSelected(value: number, selectionVector: SelectionVector): void;
13
+ smallerThanOrEqualTo(value: number): SelectionVector;
14
+ smallerThanOrEqualToSelected(value: number, selectionVector: SelectionVector): void;
15
+ filterNotEqual(value: number): SelectionVector;
16
+ filterNotEqualSelected(value: number, selectionVector: SelectionVector): void;
17
+ noneMatch(values: number[]): SelectionVector;
18
+ noneMatchSelected(values: number[], selectionVector: SelectionVector): void;
19
+ }
@@ -0,0 +1,90 @@
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.IntConstVector = void 0;
7
+ const flatSelectionVector_1 = require("../filter/flatSelectionVector");
8
+ const vector_1 = __importDefault(require("../vector"));
9
+ const selectionVectorUtils_1 = require("../filter/selectionVectorUtils");
10
+ class IntConstVector extends vector_1.default {
11
+ constructor(name, value, sizeOrNullabilityBuffer) {
12
+ super(name, Int32Array.of(value), sizeOrNullabilityBuffer);
13
+ }
14
+ filter(value) {
15
+ //TODO: create also different SelectionVectors -> Const, Sequence and Flat
16
+ const vectorValue = this.dataBuffer[0];
17
+ if (vectorValue !== value) {
18
+ return new flatSelectionVector_1.FlatSelectionVector([]);
19
+ }
20
+ return (0, selectionVectorUtils_1.createNullableSelectionVector)(this.size, this.nullabilityBuffer);
21
+ }
22
+ match(values) {
23
+ const vectorValue = this.dataBuffer[0];
24
+ if (!values.includes(vectorValue)) {
25
+ return new flatSelectionVector_1.FlatSelectionVector([]);
26
+ }
27
+ return (0, selectionVectorUtils_1.createNullableSelectionVector)(this.size, this.nullabilityBuffer);
28
+ }
29
+ filterSelected(value, selectionVector) {
30
+ const vectorValue = this.dataBuffer[0];
31
+ if (vectorValue !== value) {
32
+ selectionVector.setLimit(0);
33
+ return;
34
+ }
35
+ (0, selectionVectorUtils_1.updateNullableSelectionVector)(selectionVector, this.nullabilityBuffer);
36
+ }
37
+ matchSelected(values, selectionVector) {
38
+ const vectorValue = this.dataBuffer[0];
39
+ if (!values.includes(vectorValue)) {
40
+ selectionVector.setLimit(0);
41
+ return;
42
+ }
43
+ (0, selectionVectorUtils_1.updateNullableSelectionVector)(selectionVector, this.nullabilityBuffer);
44
+ }
45
+ getValueFromBuffer(index) {
46
+ return this.dataBuffer[0];
47
+ }
48
+ greaterThanOrEqualTo(testValue) {
49
+ //TODO: handle bitVector?
50
+ return this.dataBuffer[0] >= testValue
51
+ ? (0, selectionVectorUtils_1.createNullableSelectionVector)(this.size, this.nullabilityBuffer)
52
+ : new flatSelectionVector_1.FlatSelectionVector([]);
53
+ }
54
+ greaterThanOrEqualToSelected(value, selectionVector) {
55
+ if (this.dataBuffer[0] >= value) {
56
+ (0, selectionVectorUtils_1.updateNullableSelectionVector)(selectionVector, this.nullabilityBuffer);
57
+ return;
58
+ }
59
+ selectionVector.setLimit(0);
60
+ }
61
+ smallerThanOrEqualTo(value) {
62
+ return this.dataBuffer[0] <= value
63
+ ? (0, selectionVectorUtils_1.createNullableSelectionVector)(this.size, this.nullabilityBuffer)
64
+ : new flatSelectionVector_1.FlatSelectionVector([]);
65
+ }
66
+ smallerThanOrEqualToSelected(value, selectionVector) {
67
+ if (this.dataBuffer[0] <= value) {
68
+ (0, selectionVectorUtils_1.updateNullableSelectionVector)(selectionVector, this.nullabilityBuffer);
69
+ return;
70
+ }
71
+ selectionVector.setLimit(0);
72
+ }
73
+ filterNotEqual(value) {
74
+ return this.dataBuffer[0] !== value ? (0, selectionVectorUtils_1.createSelectionVector)(this.size) : new flatSelectionVector_1.FlatSelectionVector([]);
75
+ }
76
+ filterNotEqualSelected(value, selectionVector) {
77
+ if (this.dataBuffer[0] !== value) {
78
+ return;
79
+ }
80
+ selectionVector.setLimit(0);
81
+ }
82
+ noneMatch(values) {
83
+ throw new Error("Not implemented yet.");
84
+ }
85
+ noneMatchSelected(values, selectionVector) {
86
+ throw new Error("Not implemented yet.");
87
+ }
88
+ }
89
+ exports.IntConstVector = IntConstVector;
90
+ //# sourceMappingURL=intConstVector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intConstVector.js","sourceRoot":"","sources":["../../../src/vector/constant/intConstVector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type BitVector from "../flat/bitVector";
2
+ import { type SelectionVector } from "../filter/selectionVector";
3
+ import Vector from "../vector";
4
+ export declare class LongConstVector extends Vector<BigInt64Array, bigint> {
5
+ constructor(name: string, value: bigint, sizeOrNullabilityBuffer: number | BitVector);
6
+ filter(value: bigint): SelectionVector;
7
+ match(values: bigint[]): SelectionVector;
8
+ filterSelected(value: bigint, selectionVector: SelectionVector): void;
9
+ matchSelected(values: bigint[], selectionVector: SelectionVector): void;
10
+ protected getValueFromBuffer(index: number): bigint;
11
+ greaterThanOrEqualTo(value: bigint): SelectionVector;
12
+ greaterThanOrEqualToSelected(value: bigint, selectionVector: SelectionVector): void;
13
+ smallerThanOrEqualTo(value: bigint): SelectionVector;
14
+ smallerThanOrEqualToSelected(value: bigint, selectionVector: SelectionVector): void;
15
+ filterNotEqual(value: bigint): SelectionVector;
16
+ filterNotEqualSelected(value: bigint, selectionVector: SelectionVector): void;
17
+ noneMatch(values: bigint[]): SelectionVector;
18
+ noneMatchSelected(values: bigint[], selectionVector: SelectionVector): void;
19
+ }
@@ -0,0 +1,88 @@
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.LongConstVector = void 0;
7
+ const flatSelectionVector_1 = require("../filter/flatSelectionVector");
8
+ const vector_1 = __importDefault(require("../vector"));
9
+ const selectionVectorUtils_1 = require("../filter/selectionVectorUtils");
10
+ class LongConstVector extends vector_1.default {
11
+ constructor(name, value, sizeOrNullabilityBuffer) {
12
+ super(name, BigInt64Array.of(value), sizeOrNullabilityBuffer);
13
+ }
14
+ filter(value) {
15
+ const vectorValue = this.dataBuffer[0];
16
+ if (vectorValue !== value) {
17
+ return new flatSelectionVector_1.FlatSelectionVector([]);
18
+ }
19
+ return (0, selectionVectorUtils_1.createNullableSelectionVector)(this.size, this.nullabilityBuffer);
20
+ }
21
+ match(values) {
22
+ const vectorValue = this.dataBuffer[0];
23
+ if (!values.includes(vectorValue)) {
24
+ return new flatSelectionVector_1.FlatSelectionVector([]);
25
+ }
26
+ return (0, selectionVectorUtils_1.createNullableSelectionVector)(this.size, this.nullabilityBuffer);
27
+ }
28
+ filterSelected(value, selectionVector) {
29
+ const vectorValue = this.dataBuffer[0];
30
+ if (vectorValue !== value) {
31
+ selectionVector.setLimit(0);
32
+ return;
33
+ }
34
+ (0, selectionVectorUtils_1.updateNullableSelectionVector)(selectionVector, this.nullabilityBuffer);
35
+ }
36
+ matchSelected(values, selectionVector) {
37
+ const vectorValue = this.dataBuffer[0];
38
+ if (!values.includes(vectorValue)) {
39
+ selectionVector.setLimit(0);
40
+ return;
41
+ }
42
+ (0, selectionVectorUtils_1.updateNullableSelectionVector)(selectionVector, this.nullabilityBuffer);
43
+ }
44
+ getValueFromBuffer(index) {
45
+ return this.dataBuffer[0];
46
+ }
47
+ greaterThanOrEqualTo(value) {
48
+ return this.dataBuffer[0] >= value
49
+ ? (0, selectionVectorUtils_1.createNullableSelectionVector)(this.size, this.nullabilityBuffer)
50
+ : new flatSelectionVector_1.FlatSelectionVector([]);
51
+ }
52
+ greaterThanOrEqualToSelected(value, selectionVector) {
53
+ if (this.dataBuffer[0] >= value) {
54
+ (0, selectionVectorUtils_1.updateNullableSelectionVector)(selectionVector, this.nullabilityBuffer);
55
+ return;
56
+ }
57
+ selectionVector.setLimit(0);
58
+ }
59
+ smallerThanOrEqualTo(value) {
60
+ return this.dataBuffer[0] <= value
61
+ ? (0, selectionVectorUtils_1.createNullableSelectionVector)(this.size, this.nullabilityBuffer)
62
+ : new flatSelectionVector_1.FlatSelectionVector([]);
63
+ }
64
+ smallerThanOrEqualToSelected(value, selectionVector) {
65
+ if (this.dataBuffer[0] <= value) {
66
+ (0, selectionVectorUtils_1.updateNullableSelectionVector)(selectionVector, this.nullabilityBuffer);
67
+ return;
68
+ }
69
+ selectionVector.setLimit(0);
70
+ }
71
+ filterNotEqual(value) {
72
+ return this.dataBuffer[0] !== value ? (0, selectionVectorUtils_1.createSelectionVector)(this.size) : new flatSelectionVector_1.FlatSelectionVector([]);
73
+ }
74
+ filterNotEqualSelected(value, selectionVector) {
75
+ if (this.dataBuffer[0] !== value) {
76
+ return;
77
+ }
78
+ selectionVector.setLimit(0);
79
+ }
80
+ noneMatch(values) {
81
+ throw new Error("Not implemented yet.");
82
+ }
83
+ noneMatchSelected(values, selectionVector) {
84
+ throw new Error("Not implemented yet.");
85
+ }
86
+ }
87
+ exports.LongConstVector = LongConstVector;
88
+ //# sourceMappingURL=longConstVector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"longConstVector.js","sourceRoot":"","sources":["../../../src/vector/constant/longConstVector.ts"],"names":[],"mappings":"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"}