@maplibre/mlt 1.1.0 → 1.1.1

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 (115) hide show
  1. package/LICENSE.txt +231 -0
  2. package/dist/decoding/decodingUtils.js.map +1 -1
  3. package/dist/decoding/decodingUtils.spec.js +2 -2
  4. package/dist/decoding/decodingUtils.spec.js.map +1 -1
  5. package/dist/decoding/fsstDecoder.js.map +1 -1
  6. package/dist/decoding/fsstDecoder.spec.js +14 -10
  7. package/dist/decoding/fsstDecoder.spec.js.map +1 -1
  8. package/dist/decoding/geometryDecoder.js +32 -192
  9. package/dist/decoding/geometryDecoder.js.map +1 -1
  10. package/dist/decoding/geometryDecoder.spec.js.map +1 -1
  11. package/dist/decoding/geometryScaling.js.map +1 -1
  12. package/dist/decoding/intWrapper.js.map +1 -1
  13. package/dist/decoding/integerDecodingUtils.js.map +1 -1
  14. package/dist/decoding/integerDecodingUtils.spec.js.map +1 -1
  15. package/dist/decoding/integerStreamDecoder.d.ts +12 -21
  16. package/dist/decoding/integerStreamDecoder.js +234 -237
  17. package/dist/decoding/integerStreamDecoder.js.map +1 -1
  18. package/dist/decoding/integerStreamDecoder.spec.js +55 -35
  19. package/dist/decoding/integerStreamDecoder.spec.js.map +1 -1
  20. package/dist/decoding/propertyDecoder.js +11 -11
  21. package/dist/decoding/propertyDecoder.js.map +1 -1
  22. package/dist/decoding/propertyDecoder.spec.js +157 -197
  23. package/dist/decoding/propertyDecoder.spec.js.map +1 -1
  24. package/dist/decoding/stringDecoder.js +14 -13
  25. package/dist/decoding/stringDecoder.js.map +1 -1
  26. package/dist/decoding/stringDecoder.spec.js +56 -57
  27. package/dist/decoding/stringDecoder.spec.js.map +1 -1
  28. package/dist/index.js.map +1 -1
  29. package/dist/metadata/tile/dictionaryType.js.map +1 -1
  30. package/dist/metadata/tile/lengthType.js.map +1 -1
  31. package/dist/metadata/tile/logicalLevelTechnique.js.map +1 -1
  32. package/dist/metadata/tile/logicalStreamType.js.map +1 -1
  33. package/dist/metadata/tile/mortonEncodedStreamMetadata.js.map +1 -1
  34. package/dist/metadata/tile/offsetType.js.map +1 -1
  35. package/dist/metadata/tile/physicalLevelTechnique.js.map +1 -1
  36. package/dist/metadata/tile/physicalStreamType.js.map +1 -1
  37. package/dist/metadata/tile/rleEncodedStreamMetadata.js.map +1 -1
  38. package/dist/metadata/tile/scalarType.js.map +1 -1
  39. package/dist/metadata/tile/streamMetadata.js.map +1 -1
  40. package/dist/metadata/tile/streamMetadataDecoder.js.map +1 -1
  41. package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.js.map +1 -1
  42. package/dist/metadata/tileset/tilesetMetadata.js.map +1 -1
  43. package/dist/metadata/tileset/typeMap.js.map +1 -1
  44. package/dist/mltDecoder.js +9 -9
  45. package/dist/mltDecoder.js.map +1 -1
  46. package/dist/mltDecoder.spec.js.map +1 -1
  47. package/dist/mltMetadata.js.map +1 -1
  48. package/dist/vector/constant/intConstVector.js.map +1 -1
  49. package/dist/vector/constant/longConstVector.js.map +1 -1
  50. package/dist/vector/dictionary/stringDictionaryVector.js.map +1 -1
  51. package/dist/vector/featureTable.js.map +1 -1
  52. package/dist/vector/filter/flatSelectionVector.d.ts +27 -0
  53. package/dist/vector/filter/flatSelectionVector.js +54 -0
  54. package/dist/vector/filter/flatSelectionVector.js.map +1 -0
  55. package/dist/vector/filter/flatSelectionVector.spec.d.ts +1 -0
  56. package/dist/vector/filter/flatSelectionVector.spec.js +51 -0
  57. package/dist/vector/filter/flatSelectionVector.spec.js.map +1 -0
  58. package/dist/vector/filter/selectionVector.d.ts +8 -0
  59. package/dist/vector/filter/selectionVector.js +2 -0
  60. package/dist/vector/filter/selectionVector.js.map +1 -0
  61. package/dist/vector/filter/selectionVectorUtil.spec.d.ts +1 -0
  62. package/dist/vector/filter/selectionVectorUtil.spec.js +154 -0
  63. package/dist/vector/filter/selectionVectorUtil.spec.js.map +1 -0
  64. package/dist/vector/filter/selectionVectorUtils.d.ts +16 -0
  65. package/dist/vector/filter/selectionVectorUtils.js +37 -0
  66. package/dist/vector/filter/selectionVectorUtils.js.map +1 -0
  67. package/dist/vector/filter/sequenceSelectionVector.d.ts +26 -0
  68. package/dist/vector/filter/sequenceSelectionVector.js +67 -0
  69. package/dist/vector/filter/sequenceSelectionVector.js.map +1 -0
  70. package/dist/vector/filter/sequenceSelectionVector.spec.d.ts +1 -0
  71. package/dist/vector/filter/sequenceSelectionVector.spec.js +115 -0
  72. package/dist/vector/filter/sequenceSelectionVector.spec.js.map +1 -0
  73. package/dist/vector/fixedSizeVector.js.map +1 -1
  74. package/dist/vector/flat/bitVector.js.map +1 -1
  75. package/dist/vector/flat/booleanFlatVector.js.map +1 -1
  76. package/dist/vector/flat/doubleFlatVector.js.map +1 -1
  77. package/dist/vector/flat/floatFlatVector.js.map +1 -1
  78. package/dist/vector/flat/floatFlatVector.spec.js.map +1 -1
  79. package/dist/vector/flat/intFlatVector.js.map +1 -1
  80. package/dist/vector/flat/intFlatVector.spec.js.map +1 -1
  81. package/dist/vector/flat/longFlatVector.js.map +1 -1
  82. package/dist/vector/flat/longFlatVector.spec.js.map +1 -1
  83. package/dist/vector/flat/stringFlatVector.js.map +1 -1
  84. package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js.map +1 -1
  85. package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.spec.js.map +1 -1
  86. package/dist/vector/geometry/constGeometryVector.d.ts +2 -2
  87. package/dist/vector/geometry/constGeometryVector.js +6 -6
  88. package/dist/vector/geometry/constGeometryVector.js.map +1 -1
  89. package/dist/vector/geometry/constGpuVector.d.ts +1 -1
  90. package/dist/vector/geometry/constGpuVector.js +3 -24
  91. package/dist/vector/geometry/constGpuVector.js.map +1 -1
  92. package/dist/vector/geometry/flatGeometryVector.d.ts +2 -2
  93. package/dist/vector/geometry/flatGeometryVector.js +7 -7
  94. package/dist/vector/geometry/flatGeometryVector.js.map +1 -1
  95. package/dist/vector/geometry/flatGpuVector.d.ts +1 -1
  96. package/dist/vector/geometry/flatGpuVector.js +3 -22
  97. package/dist/vector/geometry/flatGpuVector.js.map +1 -1
  98. package/dist/vector/geometry/geometryType.js.map +1 -1
  99. package/dist/vector/geometry/geometryVector.js.map +1 -1
  100. package/dist/vector/geometry/geometryVectorConverter.js.map +1 -1
  101. package/dist/vector/geometry/gpuVector.js.map +1 -1
  102. package/dist/vector/geometry/spaceFillingCurve.js.map +1 -1
  103. package/dist/vector/geometry/topologyVector.js.map +1 -1
  104. package/dist/vector/geometry/vertexBufferType.js.map +1 -1
  105. package/dist/vector/geometry/zOrderCurve.js.map +1 -1
  106. package/dist/vector/geometry/zOrderCurve.spec.js.map +1 -1
  107. package/dist/vector/intVector.js.map +1 -1
  108. package/dist/vector/sequence/intSequenceVector.js.map +1 -1
  109. package/dist/vector/sequence/longSequenceVector.js.map +1 -1
  110. package/dist/vector/sequence/longSequenceVektor.spec.js.map +1 -1
  111. package/dist/vector/sequence/sequenceVector.js.map +1 -1
  112. package/dist/vector/variableSizeVector.js.map +1 -1
  113. package/dist/vector/vector.js.map +1 -1
  114. package/dist/vector/vectorType.js.map +1 -1
  115. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"propertyDecoder.spec.js","sourceRoot":"","sources":["../../src/decoding/propertyDecoder.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"propertyDecoder.spec.js","sourceRoot":"","sources":["../../src/decoding/propertyDecoder.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { afterEach, describe, expect, it, vi } from \"vitest\";\nimport { StreamMetadataDecoder } from \"../metadata/tile/streamMetadataDecoder\";\nimport * as IntegerStreamDecoder from \"./integerStreamDecoder\";\nimport { decodePropertyColumn } from \"./propertyDecoder\";\nimport { type Column } from \"../metadata/tileset/tilesetMetadata\";\nimport { ScalarType } from \"../metadata/tile/scalarType\";\nimport IntWrapper from \"./intWrapper\";\nimport { IntFlatVector } from \"../vector/flat/intFlatVector\";\nimport { LongFlatVector } from \"../vector/flat/longFlatVector\";\nimport { IntSequenceVector } from \"../vector/sequence/intSequenceVector\";\nimport { LongSequenceVector } from \"../vector/sequence/longSequenceVector\";\nimport { IntConstVector } from \"../vector/constant/intConstVector\";\nimport { LongConstVector } from \"../vector/constant/longConstVector\";\nimport { VectorType } from \"../vector/vectorType\";\nimport { StringDecoder } from \"./stringDecoder\";\nimport * as decodingUtils from \"./decodingUtils\";\nimport { BooleanFlatVector } from \"../vector/flat/booleanFlatVector\";\nimport { FloatFlatVector } from \"../vector/flat/floatFlatVector\";\nimport { DoubleFlatVector } from \"../vector/flat/doubleFlatVector\";\nimport { type StringFlatVector } from \"../vector/flat/stringFlatVector\";\n\n// Constants for test data\nconst TEST_DATA = {\n BYTE_LENGTH: 12,\n NUM_VALUES: 3,\n NULLABILITY_BYTE_LENGTH: 1,\n BUFFER_SIZE: 100,\n};\n\n// Helper: Create column with specific configuration\nfunction createColumn(scalarType: ScalarType, nullable: boolean = false): Column {\n return {\n name: \"age\",\n nullable,\n columnScope: null,\n type: \"scalarType\",\n scalarType: {\n longID: false,\n physicalType: scalarType,\n logicalType: null,\n type: \"physicalType\",\n },\n complexType: null,\n };\n}\n\n// Helper: Setup stream metadata mock\nfunction mockStreamMetadata(byteLength: number = TEST_DATA.BYTE_LENGTH, numValues: number = TEST_DATA.NUM_VALUES) {\n return {\n byteLength,\n numValues,\n logicalLevelTechnique1: 0,\n logicalLevelTechnique2: 0,\n physicalLevelTechnique: 0,\n } as any;\n}\n\n// Helper: Setup RLE stream metadata for sequence encoding\nfunction mockRleStreamMetadata(\n byteLength: number = TEST_DATA.BYTE_LENGTH,\n numValues: number = TEST_DATA.NUM_VALUES,\n numRleValues: number = 2,\n) {\n return {\n byteLength,\n numValues,\n numRleValues,\n logicalLevelTechnique1: 0,\n logicalLevelTechnique2: 0,\n physicalLevelTechnique: 0,\n } as any;\n}\n\n// Helper: Mock integer decoders (INT_32 or INT_64)\nfunction mockIntegerDecoder(scalarType: ScalarType) {\n vi.spyOn(IntegerStreamDecoder, \"getVectorType\").mockReturnValue(VectorType.FLAT);\n\n if (scalarType === ScalarType.INT_64 || scalarType === ScalarType.UINT_64) {\n vi.spyOn(IntegerStreamDecoder, \"decodeLongStream\").mockReturnValue(new BigInt64Array([100n, 200n, 300n]));\n } else {\n vi.spyOn(IntegerStreamDecoder, \"decodeIntStream\").mockReturnValue(new Int32Array([100, 200, 300]));\n }\n}\n\n// Helper: Mock integer sequence decoders\nfunction mockIntegerSequenceDecoder(scalarType: ScalarType) {\n vi.spyOn(IntegerStreamDecoder, \"getVectorType\").mockReturnValue(VectorType.SEQUENCE);\n\n if (scalarType === ScalarType.INT_64 || scalarType === ScalarType.UINT_64) {\n vi.spyOn(IntegerStreamDecoder, \"decodeSequenceLongStream\").mockReturnValue([10n, 20n]);\n } else {\n vi.spyOn(IntegerStreamDecoder, \"decodeSequenceIntStream\").mockReturnValue([10, 20]);\n }\n}\n\n// Helper: Mock integer const decoders\nfunction mockIntegerConstDecoder(scalarType: ScalarType) {\n vi.spyOn(IntegerStreamDecoder, \"getVectorType\").mockReturnValue(VectorType.CONST);\n\n if (scalarType === ScalarType.INT_64 || scalarType === ScalarType.UINT_64) {\n vi.spyOn(IntegerStreamDecoder, \"decodeConstLongStream\").mockReturnValue(42n);\n } else {\n vi.spyOn(IntegerStreamDecoder, \"decodeConstIntStream\").mockReturnValue(42);\n }\n}\n\n// Helper: Mock float decoders (FLOAT or DOUBLE)\nfunction mockFloatDecoder(scalarType: ScalarType) {\n if (scalarType === ScalarType.FLOAT) {\n vi.spyOn(decodingUtils, \"decodeFloatsLE\").mockReturnValue(new Float32Array([100.5, 200.5, 300.5]));\n } else if (scalarType === ScalarType.DOUBLE) {\n vi.spyOn(decodingUtils, \"decodeDoublesLE\").mockReturnValue(new Float64Array([100.5, 200.5, 300.5]));\n }\n}\n\n// Helper: Mock nullable float decoders\nfunction mockNullableFloatDecoder(scalarType: ScalarType) {\n if (scalarType === ScalarType.FLOAT) {\n vi.spyOn(decodingUtils, \"decodeNullableFloatsLE\").mockReturnValue(new Float32Array([100.5, 200.5, 300.5]));\n } else if (scalarType === ScalarType.DOUBLE) {\n vi.spyOn(decodingUtils, \"decodeNullableDoublesLE\").mockReturnValue(new Float64Array([100.5, 200.5, 300.5]));\n }\n}\n\n// Helper: Mock nullable integer decoders\nfunction mockNullableIntegerDecoder(scalarType: ScalarType) {\n vi.spyOn(IntegerStreamDecoder, \"getVectorType\").mockReturnValue(VectorType.FLAT);\n\n if (scalarType === ScalarType.INT_64 || scalarType === ScalarType.UINT_64) {\n vi.spyOn(IntegerStreamDecoder, \"decodeNullableLongStream\").mockReturnValue(\n new BigInt64Array([100n, 200n, 300n]),\n );\n } else {\n vi.spyOn(IntegerStreamDecoder, \"decodeNullableIntStream\").mockReturnValue(new Int32Array([100, 200, 300]));\n }\n}\n\n// Helper: Setup nullable column with separate nullability stream\nfunction setupNullableStreamMocks() {\n const metadataSpy = vi.spyOn(StreamMetadataDecoder, \"decode\");\n\n // First call: nullability stream\n metadataSpy.mockReturnValueOnce({\n byteLength: TEST_DATA.NULLABILITY_BYTE_LENGTH,\n numValues: TEST_DATA.NUM_VALUES,\n logicalLevelTechnique1: 0,\n logicalLevelTechnique2: 0,\n physicalLevelTechnique: 0,\n } as any);\n\n // Subsequent calls: data stream\n metadataSpy.mockReturnValue(mockStreamMetadata());\n\n // Mock the nullability bitmap decoding\n vi.spyOn(decodingUtils, \"decodeBooleanRle\").mockReturnValue(new Uint8Array([0b00000111]));\n}\n\ndescribe(\"decodePropertyColumn\", () => {\n afterEach(() => vi.restoreAllMocks());\n\n describe(\"Number Columns - Non-Nullable - Signed Types\", () => {\n const numberTypes = [\n {\n scalarType: ScalarType.INT_32,\n vectorClass: IntFlatVector,\n mockFn: mockIntegerDecoder,\n testName: \"INT_32\",\n },\n {\n scalarType: ScalarType.INT_64,\n vectorClass: LongFlatVector,\n mockFn: mockIntegerDecoder,\n testName: \"INT_64\",\n },\n ];\n\n it.each(numberTypes)(\"should decode $testName column\", ({ scalarType, vectorClass, mockFn }) => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decode\").mockReturnValue(mockStreamMetadata());\n mockFn(scalarType);\n const column = createColumn(scalarType, false);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeInstanceOf(vectorClass);\n expect((result as any)._name).toBe(\"age\");\n expect((result as any).dataBuffer).toHaveLength(TEST_DATA.NUM_VALUES);\n });\n });\n\n describe(\"Number Columns - Non-Nullable - Unsigned Types\", () => {\n const numberTypes = [\n {\n scalarType: ScalarType.UINT_32,\n vectorClass: IntFlatVector,\n mockFn: mockIntegerDecoder,\n testName: \"UINT_32\",\n },\n {\n scalarType: ScalarType.UINT_64,\n vectorClass: LongFlatVector,\n mockFn: mockIntegerDecoder,\n testName: \"UINT_64\",\n },\n ];\n\n it.each(numberTypes)(\"should decode $testName column\", ({ scalarType, vectorClass, mockFn }) => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decode\").mockReturnValue(mockStreamMetadata());\n mockFn(scalarType);\n const column = createColumn(scalarType, false);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeInstanceOf(vectorClass);\n expect((result as any)._name).toBe(\"age\");\n expect((result as any).dataBuffer).toHaveLength(TEST_DATA.NUM_VALUES);\n });\n });\n\n describe(\"Number Columns - Nullable - Signed Types\", () => {\n const numberTypes = [\n { scalarType: ScalarType.INT_32, mockFn: mockNullableIntegerDecoder, testName: \"INT_32\" },\n { scalarType: ScalarType.INT_64, mockFn: mockNullableIntegerDecoder, testName: \"INT_64\" },\n ];\n\n it.each(numberTypes)(\"should decode nullable $testName column with null mask\", ({ scalarType, mockFn }) => {\n // Arrange\n setupNullableStreamMocks();\n mockFn(scalarType);\n const column = createColumn(scalarType, true);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 2, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeDefined();\n expect((result as any)._name).toBe(\"age\");\n });\n });\n\n describe(\"Number Columns - Nullable - Unsigned Types\", () => {\n const numberTypes = [\n { scalarType: ScalarType.UINT_32, mockFn: mockNullableIntegerDecoder, testName: \"UINT_32\" },\n { scalarType: ScalarType.UINT_64, mockFn: mockNullableIntegerDecoder, testName: \"UINT_64\" },\n ];\n\n it.each(numberTypes)(\"should decode nullable $testName column with null mask\", ({ scalarType, mockFn }) => {\n // Arrange\n setupNullableStreamMocks();\n mockFn(scalarType);\n const column = createColumn(scalarType, true);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 2, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeDefined();\n expect((result as any)._name).toBe(\"age\");\n });\n });\n\n describe(\"Integer Vector Encoding Types - SEQUENCE\", () => {\n const numberTypes = [\n {\n scalarType: ScalarType.INT_32,\n vectorClass: IntSequenceVector,\n mockFn: mockIntegerSequenceDecoder,\n testName: \"INT_32\",\n },\n {\n scalarType: ScalarType.INT_64,\n vectorClass: LongSequenceVector,\n mockFn: mockIntegerSequenceDecoder,\n testName: \"INT_64\",\n },\n ];\n\n it.each(numberTypes)(\n \"should decode $testName with SEQUENCE encoding\",\n ({ scalarType, vectorClass, mockFn }) => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decode\").mockReturnValue(mockRleStreamMetadata());\n mockFn(scalarType);\n const column = createColumn(scalarType, false);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeInstanceOf(vectorClass);\n expect((result as any)._name).toBe(\"age\");\n },\n );\n });\n\n describe(\"Integer Vector Encoding Types - CONST\", () => {\n const numberTypes = [\n {\n scalarType: ScalarType.INT_32,\n vectorClass: IntConstVector,\n mockFn: mockIntegerConstDecoder,\n testName: \"INT_32\",\n },\n {\n scalarType: ScalarType.INT_64,\n vectorClass: LongConstVector,\n mockFn: mockIntegerConstDecoder,\n testName: \"INT_64\",\n },\n ];\n\n it.each(numberTypes)(\"should decode $testName with CONST encoding\", ({ scalarType, vectorClass, mockFn }) => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decode\").mockReturnValue(mockStreamMetadata());\n mockFn(scalarType);\n const column = createColumn(scalarType, false);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeInstanceOf(vectorClass);\n expect((result as any)._name).toBe(\"age\");\n });\n });\n\n describe(\"Float Columns - Non-Nullable\", () => {\n const numberTypes = [\n {\n scalarType: ScalarType.FLOAT,\n vectorClass: FloatFlatVector,\n mockFn: mockFloatDecoder,\n testName: \"FLOAT\",\n },\n {\n scalarType: ScalarType.DOUBLE,\n vectorClass: DoubleFlatVector,\n mockFn: mockFloatDecoder,\n testName: \"DOUBLE\",\n },\n ];\n\n it.each(numberTypes)(\"should decode $testName column\", ({ scalarType, vectorClass, mockFn }) => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decode\").mockReturnValue(mockStreamMetadata());\n mockFn(scalarType);\n const column = createColumn(scalarType, false);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeInstanceOf(vectorClass);\n expect((result as any)._name).toBe(\"age\");\n expect((result as any).dataBuffer).toHaveLength(TEST_DATA.NUM_VALUES);\n });\n });\n\n describe(\"Float Columns - Nullable\", () => {\n const numberTypes = [\n {\n scalarType: ScalarType.FLOAT,\n vectorClass: FloatFlatVector,\n mockFn: mockNullableFloatDecoder,\n testName: \"FLOAT\",\n },\n {\n scalarType: ScalarType.DOUBLE,\n vectorClass: DoubleFlatVector,\n mockFn: mockNullableFloatDecoder,\n testName: \"DOUBLE\",\n },\n ];\n\n it.each(numberTypes)(\n \"should decode nullable $testName column with null mask\",\n ({ scalarType, vectorClass, mockFn }) => {\n // Arrange\n setupNullableStreamMocks();\n mockFn(scalarType);\n const column = createColumn(scalarType, true);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 2, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeInstanceOf(vectorClass);\n expect((result as any)._name).toBe(\"age\");\n },\n );\n });\n\n describe(\"Boolean Columns\", () => {\n it(\"should decode non-nullable BOOLEAN column\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decode\").mockReturnValue(mockStreamMetadata());\n vi.spyOn(decodingUtils, \"decodeBooleanRle\").mockReturnValue(new Uint8Array([0b00000111]));\n const column = createColumn(ScalarType.BOOLEAN, false);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeInstanceOf(BooleanFlatVector);\n expect((result as any)._name).toBe(\"age\");\n });\n\n it(\"should decode nullable BOOLEAN column with null mask\", () => {\n // Arrange\n setupNullableStreamMocks();\n vi.spyOn(decodingUtils, \"decodeNullableBooleanRle\").mockReturnValue(new Uint8Array([0b00000111]));\n const column = createColumn(ScalarType.BOOLEAN, true);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 2, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeInstanceOf(BooleanFlatVector);\n expect((result as any)._name).toBe(\"age\");\n });\n });\n\n describe(\"String Columns - Nullable\", () => {\n const streamConfigs = [\n { totalStreams: 2, description: \"single data stream\" },\n { totalStreams: 4, description: \"multiple data streams\" },\n ];\n\n it.each(streamConfigs)(\"should decode nullable STRING with $description\", ({ totalStreams }) => {\n // Arrange\n setupNullableStreamMocks();\n const mockStringVector = { name: \"age\" };\n const stringDecodeSpy = vi.spyOn(StringDecoder, \"decode\").mockReturnValue(mockStringVector as any);\n const column = createColumn(ScalarType.STRING, true);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, totalStreams, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect((result as StringFlatVector).name).toBe(mockStringVector.name);\n });\n });\n\n describe(\"Column Filtering\", () => {\n it(\"should return null when column NOT in propertyColumnNames filter\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decode\").mockReturnValue(mockStreamMetadata());\n const skipColumnSpy = vi.spyOn(decodingUtils, \"skipColumn\");\n const column = createColumn(ScalarType.STRING);\n const filterList = new Set([\"name\", \"value\"]);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES, filterList);\n\n // Assert\n expect(result).toBeNull();\n expect(skipColumnSpy).toHaveBeenCalledWith(1, data, offset);\n });\n\n it(\"should decode column when it IS in propertyColumnNames filter\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decode\").mockReturnValue(mockStreamMetadata());\n vi.spyOn(decodingUtils, \"decodeBooleanRle\").mockReturnValue(new Uint8Array([0b00000111]));\n const column = createColumn(ScalarType.BOOLEAN);\n const filterList = new Set([\"age\", \"name\"]);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES, filterList);\n\n // Assert\n expect(result).toBeInstanceOf(BooleanFlatVector);\n });\n\n it(\"should ignore filter when propertyColumnNames is undefined\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decode\").mockReturnValue(mockStreamMetadata());\n vi.spyOn(decodingUtils, \"decodeBooleanRle\").mockReturnValue(new Uint8Array([0b00000111]));\n const column = createColumn(ScalarType.BOOLEAN);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES, undefined);\n\n // Assert\n expect(result).toBeInstanceOf(BooleanFlatVector);\n });\n\n it(\"should handle empty filter set\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decode\").mockReturnValue(mockStreamMetadata());\n const skipColumnSpy = vi.spyOn(decodingUtils, \"skipColumn\");\n const column = createColumn(ScalarType.BOOLEAN);\n const filterList = new Set<string>();\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES, filterList);\n\n // Assert\n expect(result).toBeNull();\n expect(skipColumnSpy).toHaveBeenCalled();\n });\n });\n\n describe(\"Edge Cases\", () => {\n it(\"should handle single value column\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decode\").mockReturnValue(mockStreamMetadata(12, 1));\n vi.spyOn(IntegerStreamDecoder, \"getVectorType\").mockReturnValue(VectorType.FLAT);\n vi.spyOn(IntegerStreamDecoder, \"decodeIntStream\").mockReturnValue(new Int32Array([42]));\n const column = createColumn(ScalarType.INT_32);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, 1);\n\n // Assert\n expect(result).toBeInstanceOf(IntFlatVector);\n expect((result as any).dataBuffer).toHaveLength(1);\n });\n\n it(\"should handle large column with many values\", () => {\n // Arrange\n const largeNumValues = 100000;\n vi.spyOn(StreamMetadataDecoder, \"decode\").mockReturnValue(mockStreamMetadata(400000, largeNumValues));\n vi.spyOn(IntegerStreamDecoder, \"getVectorType\").mockReturnValue(VectorType.FLAT);\n const largeArray = new Int32Array(largeNumValues);\n for (let i = 0; i < largeNumValues; i++) {\n largeArray[i] = i;\n }\n vi.spyOn(IntegerStreamDecoder, \"decodeIntStream\").mockReturnValue(largeArray);\n const column = createColumn(ScalarType.INT_32);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, largeNumValues);\n\n // Assert\n expect(result).toBeInstanceOf(IntFlatVector);\n expect((result as any).dataBuffer).toHaveLength(largeNumValues);\n });\n\n it(\"should handle zero numValues gracefully\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decode\").mockReturnValue({ ...mockStreamMetadata(), numValues: 0 });\n vi.spyOn(IntegerStreamDecoder, \"getVectorType\").mockReturnValue(VectorType.FLAT);\n vi.spyOn(IntegerStreamDecoder, \"decodeIntStream\").mockReturnValue(new Int32Array(0));\n const column = createColumn(ScalarType.INT_32);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, 0);\n\n // Assert\n expect(result).toBeInstanceOf(IntFlatVector);\n expect((result as any).dataBuffer).toHaveLength(0);\n });\n\n it(\"should handle multiple sequential columns with offset advancement\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decode\").mockReturnValue(mockStreamMetadata(12, 3));\n vi.spyOn(IntegerStreamDecoder, \"getVectorType\").mockReturnValue(VectorType.FLAT);\n vi.spyOn(IntegerStreamDecoder, \"decodeIntStream\").mockReturnValue(new Int32Array([100, 200, 300]));\n const column1 = createColumn(ScalarType.INT_32);\n const column2 = createColumn(ScalarType.INT_32);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result1 = decodePropertyColumn(data, offset, column1, 1, TEST_DATA.NUM_VALUES);\n const offsetAfterFirst = offset.get();\n const result2 = decodePropertyColumn(data, offset, column2, 1, TEST_DATA.NUM_VALUES);\n const offsetAfterSecond = offset.get();\n\n // Assert\n expect(result1).toBeInstanceOf(IntFlatVector);\n expect(result2).toBeInstanceOf(IntFlatVector);\n expect(offsetAfterSecond).toEqual(offsetAfterFirst);\n });\n\n it(\"should handle non-scalar column type returning null\", () => {\n // Arrange\n const column: Column = {\n name: \"complex\",\n nullable: false,\n columnScope: null,\n type: \"complexType\",\n complexType: { type: \"arrayType\" },\n scalarType: null,\n } as any;\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 2, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeNull();\n });\n });\n\n describe(\"Offset Management\", () => {\n it(\"should handle offset at non-zero starting position\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decode\").mockReturnValue(mockStreamMetadata());\n vi.spyOn(IntegerStreamDecoder, \"getVectorType\").mockReturnValue(VectorType.FLAT);\n vi.spyOn(IntegerStreamDecoder, \"decodeIntStream\").mockReturnValue(new Int32Array([100, 200, 300]));\n\n const column = createColumn(ScalarType.INT_32);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const startOffset = 50;\n const offset = new IntWrapper(startOffset);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeInstanceOf(IntFlatVector);\n expect(offset.get()).toEqual(startOffset);\n });\n\n it(\"should correctly skip columns with filterList and advance offset\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decode\").mockReturnValue(mockStreamMetadata());\n const skipColumnSpy = vi\n .spyOn(decodingUtils, \"skipColumn\")\n .mockImplementation((numStreams, data, offset) => {\n offset.add(12 * numStreams); // Simulate skipping\n });\n\n const column = createColumn(ScalarType.INT_32);\n const filterList = new Set([\"other_column\"]);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n const startOffset = offset.get();\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 3, TEST_DATA.NUM_VALUES, filterList);\n\n // Assert\n expect(result).toBeNull();\n expect(offset.get()).toBeGreaterThan(startOffset);\n expect(skipColumnSpy).toHaveBeenCalledWith(3, data, offset);\n });\n });\n\n describe(\"Type Consistency Checks\", () => {\n it(\"should preserve column metadata in returned vector\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decode\").mockReturnValue(mockStreamMetadata());\n vi.spyOn(IntegerStreamDecoder, \"getVectorType\").mockReturnValue(VectorType.FLAT);\n vi.spyOn(IntegerStreamDecoder, \"decodeIntStream\").mockReturnValue(new Int32Array([10, 20, 30]));\n\n const column = createColumn(ScalarType.INT_32);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect((result as any)._name).toBe(column.name);\n });\n\n it(\"should handle all signed and unsigned type combinations\", () => {\n // Arrange\n const types = [ScalarType.INT_32, ScalarType.UINT_32, ScalarType.INT_64, ScalarType.UINT_64];\n\n types.forEach((scalarType) => {\n vi.spyOn(StreamMetadataDecoder, \"decode\").mockReturnValue(mockStreamMetadata());\n mockIntegerDecoder(scalarType);\n\n const column = createColumn(scalarType, false);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeDefined();\n expect((result as any)._name).toBe(\"age\");\n\n vi.restoreAllMocks();\n });\n });\n });\n\n describe(\"Error Scenarios\", () => {\n it(\"should handle invalid scalar type gracefully\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decode\").mockReturnValue(mockStreamMetadata());\n const column = createColumn(999 as any); // Invalid type\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act & Assert\n expect(() => {\n decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES);\n }).toThrow();\n });\n\n it(\"should handle mismatched numStreams for string type\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decode\").mockReturnValue(mockStreamMetadata());\n const column: Column = {\n name: \"stringCol\",\n nullable: false,\n columnScope: null,\n type: \"stringType\",\n scalarType: null,\n complexType: null,\n } as any;\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 2, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeNull();\n });\n });\n});\n"]}
@@ -5,7 +5,7 @@ import BitVector from "../vector/flat/bitVector";
5
5
  import { PhysicalStreamType } from "../metadata/tile/physicalStreamType";
6
6
  import { DictionaryType } from "../metadata/tile/dictionaryType";
7
7
  import { LengthType } from "../metadata/tile/lengthType";
8
- import IntegerStreamDecoder from "./integerStreamDecoder";
8
+ import { decodeIntStream, decodeLengthStreamToOffsetBuffer, decodeNullableIntStream } from "./integerStreamDecoder";
9
9
  import { ScalarType } from "../metadata/tileset/tilesetMetadata";
10
10
  import { decodeVarintInt32 } from "./integerDecodingUtils";
11
11
  import { decodeBooleanRle, skipColumn } from "./decodingUtils";
@@ -14,8 +14,7 @@ import { StringFsstDictionaryVector } from "../vector/fsst-dictionary/stringFsst
14
14
  export class StringDecoder {
15
15
  static ROOT_COLUMN_NAME = "default";
16
16
  static NESTED_COLUMN_SEPARATOR = ":";
17
- constructor() {
18
- }
17
+ constructor() { }
19
18
  static decode(name, data, offset, numStreams, bitVector) {
20
19
  let dictionaryLengthStream = null;
21
20
  let offsetStream = null;
@@ -40,12 +39,12 @@ export class StringDecoder {
40
39
  const isNullable = bitVector != null || presentStream != null;
41
40
  const nullabilityBuffer = bitVector ?? presentStream;
42
41
  offsetStream = isNullable
43
- ? IntegerStreamDecoder.decodeNullableIntStream(data, offset, streamMetadata, false, nullabilityBuffer)
44
- : IntegerStreamDecoder.decodeIntStream(data, offset, streamMetadata, false);
42
+ ? decodeNullableIntStream(data, offset, streamMetadata, false, nullabilityBuffer)
43
+ : decodeIntStream(data, offset, streamMetadata, false);
45
44
  break;
46
45
  }
47
46
  case PhysicalStreamType.LENGTH: {
48
- const ls = IntegerStreamDecoder.decodeLengthStreamToOffsetBuffer(data, offset, streamMetadata);
47
+ const ls = decodeLengthStreamToOffsetBuffer(data, offset, streamMetadata);
49
48
  if (LengthType.DICTIONARY === streamMetadata.logicalStreamType.lengthType) {
50
49
  dictionaryLengthStream = ls;
51
50
  }
@@ -75,7 +74,9 @@ export class StringDecoder {
75
74
  }
76
75
  }
77
76
  }
78
- return this.decodeFsstDictionaryVector(name, symbolTableStream, offsetStream, dictionaryLengthStream, dictionaryStream, symbolLengthStream, bitVector ?? presentStream) ?? this.decodeDictionaryVector(name, dictionaryStream, offsetStream, dictionaryLengthStream, bitVector ?? presentStream) ?? this.decodePlainStringVector(name, plainLengthStream, plainDataStream, offsetStream, bitVector ?? presentStream);
77
+ return (this.decodeFsstDictionaryVector(name, symbolTableStream, offsetStream, dictionaryLengthStream, dictionaryStream, symbolLengthStream, bitVector ?? presentStream) ??
78
+ this.decodeDictionaryVector(name, dictionaryStream, offsetStream, dictionaryLengthStream, bitVector ?? presentStream) ??
79
+ this.decodePlainStringVector(name, plainLengthStream, plainDataStream, offsetStream, bitVector ?? presentStream));
79
80
  }
80
81
  static decodeFsstDictionaryVector(name, symbolTableStream, offsetStream, dictionaryLengthStream, dictionaryStream, symbolLengthStream, nullabilityBuffer) {
81
82
  if (!symbolTableStream) {
@@ -128,10 +129,10 @@ export class StringDecoder {
128
129
  switch (streamMetadata.physicalStreamType) {
129
130
  case PhysicalStreamType.LENGTH:
130
131
  if (LengthType.DICTIONARY === streamMetadata.logicalStreamType.lengthType) {
131
- dictionaryOffsetBuffer = IntegerStreamDecoder.decodeLengthStreamToOffsetBuffer(data, offset, streamMetadata);
132
+ dictionaryOffsetBuffer = decodeLengthStreamToOffsetBuffer(data, offset, streamMetadata);
132
133
  }
133
134
  else {
134
- symbolOffsetBuffer = IntegerStreamDecoder.decodeLengthStreamToOffsetBuffer(data, offset, streamMetadata);
135
+ symbolOffsetBuffer = decodeLengthStreamToOffsetBuffer(data, offset, streamMetadata);
135
136
  }
136
137
  break;
137
138
  case PhysicalStreamType.DATA:
@@ -174,13 +175,13 @@ export class StringDecoder {
174
175
  const presentStreamMetadata = StreamMetadataDecoder.decode(data, offset);
175
176
  const presentStream = decodeBooleanRle(data, presentStreamMetadata.numValues, offset);
176
177
  const offsetStreamMetadata = StreamMetadataDecoder.decode(data, offset);
177
- const offsetCount = (offsetStreamMetadata instanceof RleEncodedStreamMetadata
178
+ const offsetCount = offsetStreamMetadata instanceof RleEncodedStreamMetadata
178
179
  ? offsetStreamMetadata.numRleValues
179
- : offsetStreamMetadata.numValues);
180
+ : offsetStreamMetadata.numValues;
180
181
  const isNullable = offsetCount !== numFeatures;
181
182
  const offsetStream = isNullable
182
- ? IntegerStreamDecoder.decodeNullableIntStream(data, offset, offsetStreamMetadata, false, new BitVector(presentStream, presentStreamMetadata.numValues))
183
- : IntegerStreamDecoder.decodeIntStream(data, offset, offsetStreamMetadata, false);
183
+ ? decodeNullableIntStream(data, offset, offsetStreamMetadata, false, new BitVector(presentStream, presentStreamMetadata.numValues))
184
+ : decodeIntStream(data, offset, offsetStreamMetadata, false);
184
185
  stringDictionaryVectors[i++] = symbolTableBuffer
185
186
  ? new StringFsstDictionaryVector(columnName, offsetStream, dictionaryOffsetBuffer, dictionaryBuffer, symbolOffsetBuffer, symbolTableBuffer, new BitVector(presentStream, presentStreamMetadata.numValues))
186
187
  : new StringDictionaryVector(columnName, offsetStream, dictionaryOffsetBuffer, dictionaryBuffer, new BitVector(presentStream, presentStreamMetadata.numValues));
@@ -1 +1 @@
1
- {"version":3,"file":"stringDecoder.js","sourceRoot":"","sources":["../../src/decoding/stringDecoder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stringDecoder.js","sourceRoot":"","sources":["../../src/decoding/stringDecoder.ts"],"names":[],"mappings":"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","sourcesContent":["import { StreamMetadataDecoder } from \"../metadata/tile/streamMetadataDecoder\";\nimport { StringFlatVector } from \"../vector/flat/stringFlatVector\";\nimport { StringDictionaryVector } from \"../vector/dictionary/stringDictionaryVector\";\nimport type IntWrapper from \"./intWrapper\";\nimport BitVector from \"../vector/flat/bitVector\";\nimport type Vector from \"../vector/vector\";\nimport { PhysicalStreamType } from \"../metadata/tile/physicalStreamType\";\nimport { DictionaryType } from \"../metadata/tile/dictionaryType\";\nimport { LengthType } from \"../metadata/tile/lengthType\";\nimport { decodeIntStream, decodeLengthStreamToOffsetBuffer, decodeNullableIntStream } from \"./integerStreamDecoder\";\nimport { type Column, ScalarType } from \"../metadata/tileset/tilesetMetadata\";\nimport { decodeVarintInt32 } from \"./integerDecodingUtils\";\nimport { decodeBooleanRle, skipColumn } from \"./decodingUtils\";\nimport { RleEncodedStreamMetadata } from \"../metadata/tile/rleEncodedStreamMetadata\";\nimport { StringFsstDictionaryVector } from \"../vector/fsst-dictionary/stringFsstDictionaryVector\";\n\nexport class StringDecoder {\n private static readonly ROOT_COLUMN_NAME = \"default\";\n private static readonly NESTED_COLUMN_SEPARATOR = \":\";\n\n private constructor() {}\n\n static decode(\n name: string,\n data: Uint8Array,\n offset: IntWrapper,\n numStreams: number,\n bitVector?: BitVector,\n ): Vector {\n let dictionaryLengthStream: Int32Array = null;\n let offsetStream: Int32Array = null;\n let dictionaryStream: Uint8Array = null;\n let symbolLengthStream: Int32Array = null;\n let symbolTableStream: Uint8Array = null;\n let presentStream: BitVector = null;\n let plainLengthStream: Int32Array = null;\n let plainDataStream: Uint8Array = null;\n\n for (let i = 0; i < numStreams; i++) {\n const streamMetadata = StreamMetadataDecoder.decode(data, offset);\n if (streamMetadata.byteLength === 0) {\n continue;\n }\n\n switch (streamMetadata.physicalStreamType) {\n case PhysicalStreamType.PRESENT: {\n const presentData = decodeBooleanRle(data, streamMetadata.numValues, offset);\n presentStream = new BitVector(presentData, streamMetadata.numValues);\n break;\n }\n case PhysicalStreamType.OFFSET: {\n const isNullable = bitVector != null || presentStream != null;\n const nullabilityBuffer = bitVector ?? presentStream;\n offsetStream = isNullable\n ? decodeNullableIntStream(data, offset, streamMetadata, false, nullabilityBuffer)\n : decodeIntStream(data, offset, streamMetadata, false);\n break;\n }\n case PhysicalStreamType.LENGTH: {\n const ls = decodeLengthStreamToOffsetBuffer(data, offset, streamMetadata);\n if (LengthType.DICTIONARY === streamMetadata.logicalStreamType.lengthType) {\n dictionaryLengthStream = ls;\n } else if (LengthType.SYMBOL === streamMetadata.logicalStreamType.lengthType) {\n symbolLengthStream = ls;\n } else {\n // Plain string encoding uses VAR_BINARY length type\n plainLengthStream = ls;\n }\n break;\n }\n case PhysicalStreamType.DATA: {\n const ds = data.subarray(offset.get(), offset.get() + streamMetadata.byteLength);\n offset.add(streamMetadata.byteLength);\n const dictType = streamMetadata.logicalStreamType.dictionaryType;\n if (DictionaryType.FSST === dictType) {\n symbolTableStream = ds;\n } else if (DictionaryType.SINGLE === dictType || DictionaryType.SHARED === dictType) {\n dictionaryStream = ds;\n } else if (DictionaryType.NONE === dictType) {\n plainDataStream = ds;\n }\n break;\n }\n }\n }\n\n return (\n this.decodeFsstDictionaryVector(\n name,\n symbolTableStream,\n offsetStream,\n dictionaryLengthStream,\n dictionaryStream,\n symbolLengthStream,\n bitVector ?? presentStream,\n ) ??\n this.decodeDictionaryVector(\n name,\n dictionaryStream,\n offsetStream,\n dictionaryLengthStream,\n bitVector ?? presentStream,\n ) ??\n this.decodePlainStringVector(\n name,\n plainLengthStream,\n plainDataStream,\n offsetStream,\n bitVector ?? presentStream,\n )\n );\n }\n\n private static decodeFsstDictionaryVector(\n name: string,\n symbolTableStream: Uint8Array | null,\n offsetStream: Int32Array | null,\n dictionaryLengthStream: Int32Array | null,\n dictionaryStream: Uint8Array | null,\n symbolLengthStream: Int32Array | null,\n nullabilityBuffer: BitVector | null,\n ): Vector | null {\n if (!symbolTableStream) {\n return null;\n }\n return new StringFsstDictionaryVector(\n name,\n offsetStream,\n dictionaryLengthStream,\n dictionaryStream,\n symbolLengthStream,\n symbolTableStream,\n nullabilityBuffer,\n );\n }\n\n private static decodeDictionaryVector(\n name: string,\n dictionaryStream: Uint8Array | null,\n offsetStream: Int32Array | null,\n dictionaryLengthStream: Int32Array | null,\n nullabilityBuffer: BitVector | null,\n ): Vector | null {\n if (!dictionaryStream) {\n return null;\n }\n return nullabilityBuffer\n ? new StringDictionaryVector(\n name,\n offsetStream,\n dictionaryLengthStream,\n dictionaryStream,\n nullabilityBuffer,\n )\n : new StringDictionaryVector(name, offsetStream, dictionaryLengthStream, dictionaryStream);\n }\n\n private static decodePlainStringVector(\n name: string,\n plainLengthStream: Int32Array | null,\n plainDataStream: Uint8Array | null,\n offsetStream: Int32Array | null,\n nullabilityBuffer: BitVector | null,\n ): Vector | null {\n if (!plainLengthStream || !plainDataStream) {\n return null;\n }\n\n if (offsetStream) {\n return nullabilityBuffer\n ? new StringDictionaryVector(name, offsetStream, plainLengthStream, plainDataStream, nullabilityBuffer)\n : new StringDictionaryVector(name, offsetStream, plainLengthStream, plainDataStream);\n }\n\n if (nullabilityBuffer && nullabilityBuffer.size() !== plainLengthStream.length - 1) {\n const sparseOffsetStream = new Int32Array(nullabilityBuffer.size());\n let valueIndex = 0;\n for (let i = 0; i < nullabilityBuffer.size(); i++) {\n if (nullabilityBuffer.get(i)) {\n sparseOffsetStream[i] = valueIndex++;\n } else {\n sparseOffsetStream[i] = 0;\n }\n }\n return new StringDictionaryVector(\n name,\n sparseOffsetStream,\n plainLengthStream,\n plainDataStream,\n nullabilityBuffer,\n );\n }\n\n return nullabilityBuffer\n ? new StringFlatVector(name, plainLengthStream, plainDataStream, nullabilityBuffer)\n : new StringFlatVector(name, plainLengthStream, plainDataStream);\n }\n\n static decodeSharedDictionary(\n data: Uint8Array,\n offset: IntWrapper,\n column: Column,\n numFeatures: number,\n propertyColumnNames?: Set<string>,\n ): Vector[] {\n let dictionaryOffsetBuffer: Int32Array = null;\n let dictionaryBuffer: Uint8Array = null;\n let symbolOffsetBuffer: Int32Array = null;\n let symbolTableBuffer: Uint8Array = null;\n\n let dictionaryStreamDecoded = false;\n while (!dictionaryStreamDecoded) {\n const streamMetadata = StreamMetadataDecoder.decode(data, offset);\n switch (streamMetadata.physicalStreamType) {\n case PhysicalStreamType.LENGTH:\n if (LengthType.DICTIONARY === streamMetadata.logicalStreamType.lengthType) {\n dictionaryOffsetBuffer = decodeLengthStreamToOffsetBuffer(data, offset, streamMetadata);\n } else {\n symbolOffsetBuffer = decodeLengthStreamToOffsetBuffer(data, offset, streamMetadata);\n }\n break;\n case PhysicalStreamType.DATA:\n if (\n DictionaryType.SINGLE === streamMetadata.logicalStreamType.dictionaryType ||\n DictionaryType.SHARED === streamMetadata.logicalStreamType.dictionaryType\n ) {\n dictionaryBuffer = data.subarray(offset.get(), offset.get() + streamMetadata.byteLength);\n dictionaryStreamDecoded = true;\n } else {\n symbolTableBuffer = data.subarray(offset.get(), offset.get() + streamMetadata.byteLength);\n }\n offset.add(streamMetadata.byteLength);\n break;\n }\n }\n\n const childFields = column.complexType.children;\n const stringDictionaryVectors = [];\n let i = 0;\n for (const childField of childFields) {\n const numStreams = decodeVarintInt32(data, offset, 1)[0];\n if (numStreams == 0) {\n /* Column is not present in the tile */\n continue;\n }\n\n const columnName = `${column.name}${\n childField.name === StringDecoder.ROOT_COLUMN_NAME\n ? \"\"\n : StringDecoder.NESTED_COLUMN_SEPARATOR + childField.name\n }`;\n if (propertyColumnNames) {\n if (!propertyColumnNames.has(columnName)) {\n //TODO: add size of sub column to Mlt for faster skipping\n skipColumn(numStreams, data, offset);\n continue;\n }\n }\n\n if (\n numStreams !== 2 ||\n childField.type !== \"scalarField\" ||\n childField.scalarField.physicalType !== ScalarType.STRING\n ) {\n throw new Error(\"Currently only optional string fields are implemented for a struct.\");\n }\n\n const presentStreamMetadata = StreamMetadataDecoder.decode(data, offset);\n const presentStream = decodeBooleanRle(data, presentStreamMetadata.numValues, offset);\n const offsetStreamMetadata = StreamMetadataDecoder.decode(data, offset);\n const offsetCount =\n offsetStreamMetadata instanceof RleEncodedStreamMetadata\n ? offsetStreamMetadata.numRleValues\n : offsetStreamMetadata.numValues;\n const isNullable = offsetCount !== numFeatures;\n const offsetStream = isNullable\n ? decodeNullableIntStream(\n data,\n offset,\n offsetStreamMetadata,\n false,\n new BitVector(presentStream, presentStreamMetadata.numValues),\n )\n : decodeIntStream(data, offset, offsetStreamMetadata, false);\n\n stringDictionaryVectors[i++] = symbolTableBuffer\n ? new StringFsstDictionaryVector(\n columnName,\n offsetStream,\n dictionaryOffsetBuffer,\n dictionaryBuffer,\n symbolOffsetBuffer,\n symbolTableBuffer,\n new BitVector(presentStream, presentStreamMetadata.numValues),\n )\n : new StringDictionaryVector(\n columnName,\n offsetStream,\n dictionaryOffsetBuffer,\n dictionaryBuffer,\n new BitVector(presentStream, presentStreamMetadata.numValues),\n );\n }\n\n return stringDictionaryVectors;\n }\n}\n"]}