@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,19 @@
1
+ export interface IntegerCODEC {
2
+ uncompress(model: {
3
+ input: Uint32Array;
4
+ inpos: number;
5
+ inlength: number;
6
+ output: Uint32Array;
7
+ outpos: number;
8
+ }): void;
9
+ }
10
+ export interface SkippableIntegerCODEC {
11
+ headlessUncompress(model: {
12
+ input: Uint32Array;
13
+ inpos: number;
14
+ inlength: number;
15
+ output: Uint32Array;
16
+ outpos: number;
17
+ num: number;
18
+ }): void;
19
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=codec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec.js","sourceRoot":"","sources":["../../../src/encodings/fastpfor/codec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * This code is based on the work previously done by
3
+ * Daniel Lemire, http://lemire.me/en/
4
+ */
5
+ import ByteBuffer from 'bytebuffer';
6
+ import { IntegerCODEC, SkippableIntegerCODEC } from "./codec";
7
+ export declare class FastPFOR implements IntegerCODEC, SkippableIntegerCODEC {
8
+ static readonly OVERHEAD_OF_EACH_EXCEPT = 8;
9
+ static readonly DEFAULT_PAGE_SIZE = 65536;
10
+ static readonly BLOCK_SIZE = 256;
11
+ pageSize: number;
12
+ dataTobePacked: Uint32Array[];
13
+ byteContainer: ByteBuffer;
14
+ dataPointers: Uint32Array;
15
+ private constructor();
16
+ static default(): FastPFOR;
17
+ headlessUncompress(model: {
18
+ input: Uint32Array;
19
+ inpos: number;
20
+ output: Uint32Array;
21
+ outpos: number;
22
+ num: number;
23
+ }): void;
24
+ decodePage(model: {
25
+ input: Uint32Array;
26
+ inpos: number;
27
+ output: Uint32Array;
28
+ outpos: number;
29
+ num: number;
30
+ }): void;
31
+ uncompress(model: {
32
+ input: Uint32Array;
33
+ inpos: number;
34
+ inlength: number;
35
+ output: Uint32Array;
36
+ outpos: number;
37
+ }): void;
38
+ }
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ /**
3
+ * This code is based on the work previously done by
4
+ * Daniel Lemire, http://lemire.me/en/
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.FastPFOR = void 0;
11
+ // eslint-disable functional/no-this-expression
12
+ // eslint-disable functional/no-class
13
+ // eslint-disable functional/prefer-readonly-type
14
+ const bytebuffer_1 = __importDefault(require("bytebuffer"));
15
+ const bitpacking_1 = require("./bitpacking");
16
+ const util_1 = require("./util");
17
+ class FastPFOR {
18
+ constructor(pagesize) {
19
+ this.dataTobePacked = new Array(33);
20
+ this.dataPointers = new Uint32Array(33).fill(0);
21
+ this.pageSize = pagesize;
22
+ this.byteContainer = new bytebuffer_1.default(3 * this.pageSize
23
+ / FastPFOR.BLOCK_SIZE + this.pageSize, true);
24
+ for (let k = 1; k < this.dataTobePacked.length; ++k)
25
+ this.dataTobePacked[k] = new Uint32Array(this.pageSize / 32 * 4).fill(0);
26
+ }
27
+ static default() {
28
+ return new FastPFOR(FastPFOR.DEFAULT_PAGE_SIZE);
29
+ }
30
+ headlessUncompress(model) {
31
+ const mynvalue = (0, util_1.greatestMultiple)(model.num, FastPFOR.BLOCK_SIZE);
32
+ const finalout = model.outpos.valueOf() + mynvalue;
33
+ while (model.outpos.valueOf() != finalout) {
34
+ model.num = Math.min(this.pageSize, finalout - model.outpos.valueOf());
35
+ this.decodePage(model);
36
+ }
37
+ }
38
+ decodePage(model) {
39
+ const initpos = model.inpos.valueOf();
40
+ const wheremeta = model.input[model.inpos];
41
+ model.inpos += 1;
42
+ let inexcept = initpos + wheremeta;
43
+ const bytesize = model.input[inexcept++];
44
+ this.byteContainer.clear();
45
+ for (let i = inexcept; i < inexcept + Math.floor((bytesize + 3) / 4); i++)
46
+ this.byteContainer.writeInt32(model.input[i]);
47
+ // this.byteContainer.writeBytes(new Uint8Array(model.input).slice(inexcept, inexcept + (bytesize + 3) / 4));
48
+ inexcept += Math.floor((bytesize + 3) / 4);
49
+ const bitmap = model.input[inexcept++];
50
+ for (let k = 2; k <= 32; ++k) {
51
+ if ((bitmap & (1 << (k - 1))) != 0) {
52
+ const size = model.input[inexcept++];
53
+ const roudedup = (0, util_1.greatestMultiple)(size + 31, 32);
54
+ if (this.dataTobePacked[k].length < roudedup)
55
+ this.dataTobePacked[k] = new Uint32Array(roudedup);
56
+ if (inexcept + roudedup / 32 * k <= model.input.length) {
57
+ let j = 0;
58
+ for (; j < size; j += 32) {
59
+ (0, bitpacking_1.fastunpack)({ input: model.input, inpos: inexcept, output: this.dataTobePacked[k], outpos: j, bit: k });
60
+ inexcept += k;
61
+ }
62
+ const overflow = j - size;
63
+ inexcept -= Math.floor(overflow * k / 32);
64
+ }
65
+ else {
66
+ let j = 0;
67
+ const buf = new Uint32Array(roudedup / 32 * k);
68
+ const initinexcept = inexcept;
69
+ (0, util_1.arraycopy)(model.input, inexcept, buf, 0, model.input.length - inexcept);
70
+ for (; j < size; j += 32) {
71
+ (0, bitpacking_1.fastunpack)({ input: buf, inpos: inexcept - initinexcept, output: this.dataTobePacked[k], outpos: j, bit: k });
72
+ inexcept += k;
73
+ }
74
+ const overflow = j - size;
75
+ inexcept -= Math.floor(overflow * k / 32);
76
+ }
77
+ }
78
+ }
79
+ this.dataPointers.fill(0);
80
+ let tmpoutpos = model.outpos.valueOf();
81
+ let tmpinpos = model.inpos.valueOf();
82
+ this.byteContainer.flip();
83
+ for (let run = 0, run_end = model.num / FastPFOR.BLOCK_SIZE; run < run_end; ++run, tmpoutpos += FastPFOR.BLOCK_SIZE) {
84
+ const b = this.byteContainer.readByte();
85
+ const cexcept = this.byteContainer.readByte() & 0xFF;
86
+ for (let k = 0; k < FastPFOR.BLOCK_SIZE; k += 32) {
87
+ (0, bitpacking_1.fastunpack)({ input: model.input, inpos: tmpinpos, output: model.output, outpos: tmpoutpos + k, bit: b });
88
+ tmpinpos += b;
89
+ }
90
+ if (cexcept > 0) {
91
+ const maxbits = this.byteContainer.readByte();
92
+ const index = maxbits - b;
93
+ if (index == 1) {
94
+ for (let k = 0; k < cexcept; ++k) {
95
+ const pos = this.byteContainer.readByte() & 0xFF;
96
+ model.output[pos + tmpoutpos] |= 1 << b;
97
+ }
98
+ }
99
+ else {
100
+ for (let k = 0; k < cexcept; ++k) {
101
+ const pos = this.byteContainer.readByte() & 0xFF;
102
+ const exceptValue = this.dataTobePacked[index][this.dataPointers[index]++];
103
+ model.output[pos + tmpoutpos] |= exceptValue << b;
104
+ }
105
+ }
106
+ }
107
+ }
108
+ model.outpos = tmpoutpos;
109
+ model.inpos = inexcept;
110
+ }
111
+ uncompress(model) {
112
+ if (model.input.length == 0)
113
+ return;
114
+ const outlength = model.input[model.inpos];
115
+ model.inpos++;
116
+ this.headlessUncompress({ input: model.input, inpos: model.inpos, output: model.output, outpos: model.outpos, num: outlength });
117
+ }
118
+ }
119
+ exports.FastPFOR = FastPFOR;
120
+ FastPFOR.OVERHEAD_OF_EACH_EXCEPT = 8;
121
+ FastPFOR.DEFAULT_PAGE_SIZE = 65536;
122
+ FastPFOR.BLOCK_SIZE = 256;
123
+ //# sourceMappingURL=fastpfor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fastpfor.js","sourceRoot":"","sources":["../../../src/encodings/fastpfor/fastpfor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { SkippableIntegerCODEC } from "./codec";
2
+ export declare class SkippableComposition implements SkippableIntegerCODEC {
3
+ F1: SkippableIntegerCODEC;
4
+ F2: SkippableIntegerCODEC;
5
+ constructor(f1: SkippableIntegerCODEC, f2: SkippableIntegerCODEC);
6
+ headlessUncompress(model: {
7
+ input: Uint32Array;
8
+ inpos: number;
9
+ inlength: number;
10
+ output: Uint32Array;
11
+ outpos: number;
12
+ num: number;
13
+ }): void;
14
+ }
15
+ export declare class FastPFORDecoder {
16
+ codec: SkippableIntegerCODEC;
17
+ constructor(codec: SkippableIntegerCODEC);
18
+ static default(): FastPFORDecoder;
19
+ uncompress(input: Uint32Array): Uint32Array;
20
+ }
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FastPFORDecoder = exports.SkippableComposition = void 0;
4
+ const fastpfor_1 = require("./fastpfor");
5
+ const varint_1 = require("./varint");
6
+ // When in doubt use FastPFORDecoder
7
+ class SkippableComposition {
8
+ constructor(f1, f2) {
9
+ this.F1 = f1;
10
+ this.F2 = f2;
11
+ }
12
+ headlessUncompress(model) {
13
+ const init = model.inpos;
14
+ const num = model.num;
15
+ this.F1.headlessUncompress(model);
16
+ if (model.inpos == init) {
17
+ model.inpos++;
18
+ }
19
+ model.inlength -= model.inpos - init;
20
+ model.num -= model.outpos;
21
+ this.F2.headlessUncompress(model);
22
+ model.num = num;
23
+ }
24
+ }
25
+ exports.SkippableComposition = SkippableComposition;
26
+ class FastPFORDecoder {
27
+ constructor(codec) {
28
+ this.codec = codec;
29
+ }
30
+ static default() {
31
+ return new FastPFORDecoder(new SkippableComposition(fastpfor_1.FastPFOR.default(), varint_1.VarInt.default()));
32
+ }
33
+ uncompress(input) {
34
+ const output = new Uint32Array(input[0]);
35
+ this.codec.headlessUncompress({
36
+ input: input,
37
+ inpos: 1,
38
+ inlength: input.length - 1,
39
+ output: output,
40
+ outpos: 0,
41
+ num: output.length
42
+ });
43
+ return output;
44
+ }
45
+ }
46
+ exports.FastPFORDecoder = FastPFORDecoder;
47
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/encodings/fastpfor/index.ts"],"names":[],"mappings":";;;AACA,yCAAoC;AACpC,qCAAgC;AAGhC,oCAAoC;AAGpC,MAAa,oBAAoB;IAI7B,YAAmB,EAAyB,EAAE,EAAyB;QACnE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACjB,CAAC;IAEM,kBAAkB,CAAC,KAOzB;QACG,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;QAEtB,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;YACtB,KAAK,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;QACD,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;QACrC,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC;QAE1B,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAElC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;IACpB,CAAC;CACJ;AA/BD,oDA+BC;AAED,MAAa,eAAe;IAGxB,YAAmB,KAA4B;QAC3C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IACM,MAAM,CAAC,OAAO;QACjB,OAAO,IAAI,eAAe,CAAC,IAAI,oBAAoB,CAC/C,mBAAQ,CAAC,OAAO,EAAE,EAClB,eAAM,CAAC,OAAO,EAAE,CACnB,CAAC,CAAC;IACP,CAAC;IAEM,UAAU,CAAC,KAAkB;QAChC,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;YAC1B,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,CAAC;YACR,QAAQ,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC;YAC1B,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,MAAM,CAAC,MAAM;SACrB,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AA3BD,0CA2BC"}
@@ -0,0 +1,2 @@
1
+ export declare function greatestMultiple(value: number, factor: number): number;
2
+ export declare function arraycopy(src: Uint32Array, srcPos: number, dest: Uint32Array, destPos: number, length: number): void;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.greatestMultiple = greatestMultiple;
4
+ exports.arraycopy = arraycopy;
5
+ function greatestMultiple(value, factor) {
6
+ return value - value % factor;
7
+ }
8
+ function arraycopy(src, srcPos, dest, destPos, length) {
9
+ if (srcPos < 0 || destPos < 0 || length < 0 || srcPos + length > src.length || destPos + length > dest.length) {
10
+ throw new Error('Invalid source or destination positions or length');
11
+ } // Todo: Necessary?
12
+ for (let i = 0; i < length; i++) {
13
+ dest[destPos + i] = src[srcPos + i];
14
+ }
15
+ }
16
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/encodings/fastpfor/util.ts"],"names":[],"mappings":";;AACA,4CAEC;AAED,8BAQC;AAZD,SAAgB,gBAAgB,CAAC,KAAa,EAAE,MAAc;IAC5D,OAAO,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;AAChC,CAAC;AAED,SAAgB,SAAS,CAAC,GAAgB,EAAE,MAAc,EAAE,IAAiB,EAAE,OAAe,EAAE,MAAc;IAC5G,IAAI,MAAM,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9G,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC,CAAC,mBAAmB;IAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtC,CAAC;AACH,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { IntegerCODEC, SkippableIntegerCODEC } from "./codec";
2
+ export declare class VarInt implements IntegerCODEC, SkippableIntegerCODEC {
3
+ static default(): VarInt;
4
+ private toNum;
5
+ private readVarintRemainder;
6
+ private uncompress_single;
7
+ uncompress(model: {
8
+ input: Uint32Array;
9
+ }): Uint32Array;
10
+ headlessUncompress(model: {
11
+ input: Uint32Array;
12
+ inpos: number;
13
+ inlength: number;
14
+ output: Uint32Array;
15
+ outpos: number;
16
+ num: number;
17
+ }): void;
18
+ }
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VarInt = void 0;
4
+ //
5
+ // function toNum(low: number, high: number, isSigned: boolean): number {
6
+ // return isSigned ? high * 0x100000000 + (low >>> 0) : ((high >>> 0) * 0x100000000) + (low >>> 0);
7
+ // }
8
+ //
9
+ // function readVarintRemainder(l: number, s: boolean, model: { input: Uint8Array, pos: number }): number {
10
+ // let h: number, b: number;
11
+ //
12
+ // b = model.input[model.pos++]; h = (b & 0x70) >> 4; if (b < 0x80) return toNum(l, h, s);
13
+ // b = model.input[model.pos++]; h |= (b & 0x7f) << 3; if (b < 0x80) return toNum(l, h, s);
14
+ // b = model.input[model.pos++]; h |= (b & 0x7f) << 10; if (b < 0x80) return toNum(l, h, s);
15
+ // b = model.input[model.pos++]; h |= (b & 0x7f) << 17; if (b < 0x80) return toNum(l, h, s);
16
+ // b = model.input[model.pos++]; h |= (b & 0x7f) << 24; if (b < 0x80) return toNum(l, h, s);
17
+ // b = model.input[model.pos++]; h |= (b & 0x01) << 31; if (b < 0x80) return toNum(l, h, s);
18
+ //
19
+ // throw new Error('Expected varint not more than 10 bytes');
20
+ // }
21
+ class VarInt {
22
+ static default() {
23
+ return new VarInt();
24
+ }
25
+ toNum(low, high, isSigned) {
26
+ return isSigned ? high * 0x100000000 + (low >>> 0) : ((high >>> 0) * 0x100000000) + (low >>> 0);
27
+ }
28
+ readVarintRemainder(val, isSigned, model) {
29
+ let h, b;
30
+ b = model.buffer[model.pos++];
31
+ h = (b & 0x70) >> 4;
32
+ if (b < 0x80)
33
+ return this.toNum(val, h, isSigned);
34
+ b = model.buffer[model.pos++];
35
+ h |= (b & 0x7f) << 3;
36
+ if (b < 0x80)
37
+ return this.toNum(val, h, isSigned);
38
+ b = model.buffer[model.pos++];
39
+ h |= (b & 0x7f) << 10;
40
+ if (b < 0x80)
41
+ return this.toNum(val, h, isSigned);
42
+ b = model.buffer[model.pos++];
43
+ h |= (b & 0x7f) << 17;
44
+ if (b < 0x80)
45
+ return this.toNum(val, h, isSigned);
46
+ b = model.buffer[model.pos++];
47
+ h |= (b & 0x7f) << 24;
48
+ if (b < 0x80)
49
+ return this.toNum(val, h, isSigned);
50
+ b = model.buffer[model.pos++];
51
+ h |= (b & 0x01) << 31;
52
+ if (b < 0x80)
53
+ return this.toNum(val, h, isSigned);
54
+ throw new Error('Expected varint not more than 10 bytes');
55
+ }
56
+ uncompress_single(model, isSigned = false) {
57
+ let val, b;
58
+ b = model.buffer[model.pos++];
59
+ val = b & 0x7f;
60
+ if (b < 0x80)
61
+ return val;
62
+ b = model.buffer[model.pos++];
63
+ val |= (b & 0x7f) << 7;
64
+ if (b < 0x80)
65
+ return val;
66
+ b = model.buffer[model.pos++];
67
+ val |= (b & 0x7f) << 14;
68
+ if (b < 0x80)
69
+ return val;
70
+ b = model.buffer[model.pos++];
71
+ val |= (b & 0x7f) << 21;
72
+ if (b < 0x80)
73
+ return val;
74
+ b = model.buffer[model.pos];
75
+ val |= (b & 0x0f) << 28;
76
+ return this.readVarintRemainder(val, isSigned, model);
77
+ }
78
+ uncompress(model) {
79
+ const output = new Uint32Array(model.input.length);
80
+ const tmp = new Uint8Array(model.input.buffer);
81
+ const inner_model = {
82
+ buffer: tmp,
83
+ pos: 0
84
+ };
85
+ for (let i = 0; inner_model.pos < model.input.length; i++) {
86
+ output[i] = this.uncompress_single(inner_model, false);
87
+ }
88
+ return output;
89
+ // const input = new Uint8Array(model.input.buffer);
90
+ //
91
+ // for (let i=0; i < model.input.length; i++) {
92
+ // model.output[i] = this.decode_single({ input: input, pos: i });
93
+ // }
94
+ }
95
+ headlessUncompress(model) {
96
+ let s = 0;
97
+ let val = 0;
98
+ let p = model.inpos;
99
+ let tmpoutpos = model.outpos;
100
+ const finaloutpos = model.num + tmpoutpos;
101
+ for (let v = 0, shift = 0; tmpoutpos < finaloutpos;) {
102
+ val = model.input[p];
103
+ const c = val >>> s;
104
+ // Shift to next byte
105
+ s += 8;
106
+ // Shift to next integer if s == 32
107
+ p += s >> 5;
108
+ // cycle from 31 to 0
109
+ s = s & 31;
110
+ v += ((c & 127) << shift);
111
+ if ((c & 128) === 128) {
112
+ model.output[tmpoutpos++] = v;
113
+ v = 0;
114
+ shift = 0;
115
+ }
116
+ else {
117
+ shift += 7;
118
+ }
119
+ }
120
+ model.outpos = tmpoutpos;
121
+ model.inpos = p + (s !== 0 ? 1 : 0);
122
+ }
123
+ }
124
+ exports.VarInt = VarInt;
125
+ //# sourceMappingURL=varint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"varint.js","sourceRoot":"","sources":["../../../src/encodings/fastpfor/varint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Decode FSST compressed data
3
+ *
4
+ * @param symbols Array of symbols, where each symbol can be between 1 and 8 bytes
5
+ * @param symbolLengths Array of symbol lengths, length of each symbol in symbols array
6
+ * @param compressedData FSST Compressed data, where each entry is an index to the symbols array
7
+ * @returns Decoded data as Uint8Array
8
+ */
9
+ export declare function decodeFsst(symbols: Uint8Array, symbolLengths: Uint32Array, compressedData: Uint8Array): Uint8Array;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decodeFsst = decodeFsst;
4
+ /**
5
+ * Decode FSST compressed data
6
+ *
7
+ * @param symbols Array of symbols, where each symbol can be between 1 and 8 bytes
8
+ * @param symbolLengths Array of symbol lengths, length of each symbol in symbols array
9
+ * @param compressedData FSST Compressed data, where each entry is an index to the symbols array
10
+ * @returns Decoded data as Uint8Array
11
+ */
12
+ //TODO: improve -> quick and dirty implementation
13
+ function decodeFsst(symbols, symbolLengths, compressedData) {
14
+ //TODO: use typed array directly
15
+ const decodedData = [];
16
+ const symbolOffsets = new Array(symbolLengths.length).fill(0);
17
+ for (let i = 1; i < symbolLengths.length; i++) {
18
+ symbolOffsets[i] = symbolOffsets[i - 1] + symbolLengths[i - 1];
19
+ }
20
+ for (let i = 0; i < compressedData.length; i++) {
21
+ if (compressedData[i] === 255) {
22
+ decodedData.push(compressedData[++i]);
23
+ }
24
+ else {
25
+ const symbolLength = symbolLengths[compressedData[i]];
26
+ const symbolOffset = symbolOffsets[compressedData[i]];
27
+ for (let j = 0; j < symbolLength; j++) {
28
+ decodedData.push(symbols[symbolOffset + j]);
29
+ }
30
+ }
31
+ }
32
+ return new Uint8Array(decodedData);
33
+ }
34
+ //# sourceMappingURL=fsstDecoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fsstDecoder.js","sourceRoot":"","sources":["../../src/encodings/fsstDecoder.ts"],"names":[],"mappings":";;AASA,gCAqBC;AA9BD;;;;;;;GAOG;AACH,iDAAiD;AACjD,SAAgB,UAAU,CAAC,OAAmB,EAAE,aAA0B,EAAE,cAA0B;IAClG,gCAAgC;IAChC,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,aAAa,GAAa,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAExE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC5B,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACJ,MAAM,YAAY,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD,MAAM,YAAY,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC;YAChD,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;AACvC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { GeometryVector } from "../vector/geometry/geometryVector";
2
+ import IntWrapper from "./intWrapper";
3
+ import { GpuVector } from "../vector/geometry/gpuVector";
4
+ import GeometryScaling from "./geometryScaling";
5
+ export declare function decodeGeometryColumn(tile: Uint8Array, numStreams: number, offset: IntWrapper, numFeatures: number, scalingData?: GeometryScaling): GeometryVector | GpuVector;