@loaders.gl/parquet 3.1.0-beta.7 → 3.1.0

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 (137) hide show
  1. package/dist/es5/bundle.js +1 -1
  2. package/dist/es5/bundle.js.map +1 -1
  3. package/dist/es5/constants.js +5 -5
  4. package/dist/es5/constants.js.map +1 -1
  5. package/dist/es5/index.js +19 -10
  6. package/dist/es5/index.js.map +1 -1
  7. package/dist/es5/lib/convert-schema.js +13 -13
  8. package/dist/es5/lib/convert-schema.js.map +1 -1
  9. package/dist/es5/lib/parse-parquet.js +154 -19
  10. package/dist/es5/lib/parse-parquet.js.map +1 -1
  11. package/dist/es5/lib/read-array-buffer.js +43 -6
  12. package/dist/es5/lib/read-array-buffer.js.map +1 -1
  13. package/dist/es5/parquet-loader.js +4 -4
  14. package/dist/es5/parquet-loader.js.map +1 -1
  15. package/dist/es5/parquet-writer.js +4 -4
  16. package/dist/es5/parquet-writer.js.map +1 -1
  17. package/dist/es5/parquetjs/codecs/dictionary.js +10 -2
  18. package/dist/es5/parquetjs/codecs/dictionary.js.map +1 -1
  19. package/dist/es5/parquetjs/codecs/index.js +6 -4
  20. package/dist/es5/parquetjs/codecs/index.js.map +1 -1
  21. package/dist/es5/parquetjs/codecs/plain.js +43 -41
  22. package/dist/es5/parquetjs/codecs/plain.js.map +1 -1
  23. package/dist/es5/parquetjs/codecs/rle.js +35 -25
  24. package/dist/es5/parquetjs/codecs/rle.js.map +1 -1
  25. package/dist/es5/parquetjs/compression.js +110 -27
  26. package/dist/es5/parquetjs/compression.js.map +1 -1
  27. package/dist/es5/parquetjs/encoder/writer.js +737 -301
  28. package/dist/es5/parquetjs/encoder/writer.js.map +1 -1
  29. package/dist/es5/parquetjs/file.js +15 -15
  30. package/dist/es5/parquetjs/file.js.map +1 -1
  31. package/dist/es5/parquetjs/parquet-thrift/BoundaryOrder.js +1 -1
  32. package/dist/es5/parquetjs/parquet-thrift/BsonType.js +45 -31
  33. package/dist/es5/parquetjs/parquet-thrift/BsonType.js.map +1 -1
  34. package/dist/es5/parquetjs/parquet-thrift/ColumnChunk.js +152 -141
  35. package/dist/es5/parquetjs/parquet-thrift/ColumnChunk.js.map +1 -1
  36. package/dist/es5/parquetjs/parquet-thrift/ColumnIndex.js +160 -147
  37. package/dist/es5/parquetjs/parquet-thrift/ColumnIndex.js.map +1 -1
  38. package/dist/es5/parquetjs/parquet-thrift/ColumnMetaData.js +259 -248
  39. package/dist/es5/parquetjs/parquet-thrift/ColumnMetaData.js.map +1 -1
  40. package/dist/es5/parquetjs/parquet-thrift/ColumnOrder.js +79 -67
  41. package/dist/es5/parquetjs/parquet-thrift/ColumnOrder.js.map +1 -1
  42. package/dist/es5/parquetjs/parquet-thrift/CompressionCodec.js +1 -1
  43. package/dist/es5/parquetjs/parquet-thrift/ConvertedType.js +1 -1
  44. package/dist/es5/parquetjs/parquet-thrift/DataPageHeader.js +124 -113
  45. package/dist/es5/parquetjs/parquet-thrift/DataPageHeader.js.map +1 -1
  46. package/dist/es5/parquetjs/parquet-thrift/DataPageHeaderV2.js +169 -158
  47. package/dist/es5/parquetjs/parquet-thrift/DataPageHeaderV2.js.map +1 -1
  48. package/dist/es5/parquetjs/parquet-thrift/DateType.js +45 -31
  49. package/dist/es5/parquetjs/parquet-thrift/DateType.js.map +1 -1
  50. package/dist/es5/parquetjs/parquet-thrift/DecimalType.js +79 -68
  51. package/dist/es5/parquetjs/parquet-thrift/DecimalType.js.map +1 -1
  52. package/dist/es5/parquetjs/parquet-thrift/DictionaryPageHeader.js +94 -83
  53. package/dist/es5/parquetjs/parquet-thrift/DictionaryPageHeader.js.map +1 -1
  54. package/dist/es5/parquetjs/parquet-thrift/Encoding.js +1 -1
  55. package/dist/es5/parquetjs/parquet-thrift/EnumType.js +45 -31
  56. package/dist/es5/parquetjs/parquet-thrift/EnumType.js.map +1 -1
  57. package/dist/es5/parquetjs/parquet-thrift/FieldRepetitionType.js +1 -1
  58. package/dist/es5/parquetjs/parquet-thrift/FileMetaData.js +182 -170
  59. package/dist/es5/parquetjs/parquet-thrift/FileMetaData.js.map +1 -1
  60. package/dist/es5/parquetjs/parquet-thrift/IndexPageHeader.js +45 -31
  61. package/dist/es5/parquetjs/parquet-thrift/IndexPageHeader.js.map +1 -1
  62. package/dist/es5/parquetjs/parquet-thrift/IntType.js +79 -68
  63. package/dist/es5/parquetjs/parquet-thrift/IntType.js.map +1 -1
  64. package/dist/es5/parquetjs/parquet-thrift/JsonType.js +45 -31
  65. package/dist/es5/parquetjs/parquet-thrift/JsonType.js.map +1 -1
  66. package/dist/es5/parquetjs/parquet-thrift/KeyValue.js +79 -68
  67. package/dist/es5/parquetjs/parquet-thrift/KeyValue.js.map +1 -1
  68. package/dist/es5/parquetjs/parquet-thrift/ListType.js +45 -31
  69. package/dist/es5/parquetjs/parquet-thrift/ListType.js.map +1 -1
  70. package/dist/es5/parquetjs/parquet-thrift/LogicalType.js +343 -319
  71. package/dist/es5/parquetjs/parquet-thrift/LogicalType.js.map +1 -1
  72. package/dist/es5/parquetjs/parquet-thrift/MapType.js +45 -31
  73. package/dist/es5/parquetjs/parquet-thrift/MapType.js.map +1 -1
  74. package/dist/es5/parquetjs/parquet-thrift/MicroSeconds.js +45 -31
  75. package/dist/es5/parquetjs/parquet-thrift/MicroSeconds.js.map +1 -1
  76. package/dist/es5/parquetjs/parquet-thrift/MilliSeconds.js +45 -31
  77. package/dist/es5/parquetjs/parquet-thrift/MilliSeconds.js.map +1 -1
  78. package/dist/es5/parquetjs/parquet-thrift/NullType.js +45 -31
  79. package/dist/es5/parquetjs/parquet-thrift/NullType.js.map +1 -1
  80. package/dist/es5/parquetjs/parquet-thrift/OffsetIndex.js +75 -64
  81. package/dist/es5/parquetjs/parquet-thrift/OffsetIndex.js.map +1 -1
  82. package/dist/es5/parquetjs/parquet-thrift/PageEncodingStats.js +94 -83
  83. package/dist/es5/parquetjs/parquet-thrift/PageEncodingStats.js.map +1 -1
  84. package/dist/es5/parquetjs/parquet-thrift/PageHeader.js +169 -158
  85. package/dist/es5/parquetjs/parquet-thrift/PageHeader.js.map +1 -1
  86. package/dist/es5/parquetjs/parquet-thrift/PageLocation.js +94 -83
  87. package/dist/es5/parquetjs/parquet-thrift/PageLocation.js.map +1 -1
  88. package/dist/es5/parquetjs/parquet-thrift/PageType.js +1 -1
  89. package/dist/es5/parquetjs/parquet-thrift/RowGroup.js +124 -113
  90. package/dist/es5/parquetjs/parquet-thrift/RowGroup.js.map +1 -1
  91. package/dist/es5/parquetjs/parquet-thrift/SchemaElement.js +199 -188
  92. package/dist/es5/parquetjs/parquet-thrift/SchemaElement.js.map +1 -1
  93. package/dist/es5/parquetjs/parquet-thrift/SortingColumn.js +94 -83
  94. package/dist/es5/parquetjs/parquet-thrift/SortingColumn.js.map +1 -1
  95. package/dist/es5/parquetjs/parquet-thrift/Statistics.js +135 -124
  96. package/dist/es5/parquetjs/parquet-thrift/Statistics.js.map +1 -1
  97. package/dist/es5/parquetjs/parquet-thrift/StringType.js +45 -31
  98. package/dist/es5/parquetjs/parquet-thrift/StringType.js.map +1 -1
  99. package/dist/es5/parquetjs/parquet-thrift/TimeType.js +79 -68
  100. package/dist/es5/parquetjs/parquet-thrift/TimeType.js.map +1 -1
  101. package/dist/es5/parquetjs/parquet-thrift/TimeUnit.js +101 -88
  102. package/dist/es5/parquetjs/parquet-thrift/TimeUnit.js.map +1 -1
  103. package/dist/es5/parquetjs/parquet-thrift/TimestampType.js +79 -68
  104. package/dist/es5/parquetjs/parquet-thrift/TimestampType.js.map +1 -1
  105. package/dist/es5/parquetjs/parquet-thrift/Type.js +1 -1
  106. package/dist/es5/parquetjs/parquet-thrift/TypeDefinedOrder.js +45 -31
  107. package/dist/es5/parquetjs/parquet-thrift/TypeDefinedOrder.js.map +1 -1
  108. package/dist/es5/parquetjs/parquet-thrift/UUIDType.js +45 -31
  109. package/dist/es5/parquetjs/parquet-thrift/UUIDType.js.map +1 -1
  110. package/dist/es5/parquetjs/parquet-thrift/index.js +43 -43
  111. package/dist/es5/parquetjs/parser/decoders.js +391 -218
  112. package/dist/es5/parquetjs/parser/decoders.js.map +1 -1
  113. package/dist/es5/parquetjs/parser/parquet-cursor.js +180 -62
  114. package/dist/es5/parquetjs/parser/parquet-cursor.js.map +1 -1
  115. package/dist/es5/parquetjs/parser/parquet-envelope-reader.js +370 -125
  116. package/dist/es5/parquetjs/parser/parquet-envelope-reader.js.map +1 -1
  117. package/dist/es5/parquetjs/parser/parquet-reader.js +320 -91
  118. package/dist/es5/parquetjs/parser/parquet-reader.js.map +1 -1
  119. package/dist/es5/parquetjs/schema/declare.js +11 -9
  120. package/dist/es5/parquetjs/schema/declare.js.map +1 -1
  121. package/dist/es5/parquetjs/schema/schema.js +87 -73
  122. package/dist/es5/parquetjs/schema/schema.js.map +1 -1
  123. package/dist/es5/parquetjs/schema/shred.js +96 -56
  124. package/dist/es5/parquetjs/schema/shred.js.map +1 -1
  125. package/dist/es5/parquetjs/schema/types.js +40 -39
  126. package/dist/es5/parquetjs/schema/types.js.map +1 -1
  127. package/dist/es5/parquetjs/utils/buffer-utils.js +1 -1
  128. package/dist/es5/parquetjs/utils/buffer-utils.js.map +1 -1
  129. package/dist/es5/parquetjs/utils/file-utils.js +12 -8
  130. package/dist/es5/parquetjs/utils/file-utils.js.map +1 -1
  131. package/dist/es5/parquetjs/utils/read-utils.js +50 -22
  132. package/dist/es5/parquetjs/utils/read-utils.js.map +1 -1
  133. package/dist/esm/parquet-loader.js +1 -1
  134. package/dist/esm/parquet-loader.js.map +1 -1
  135. package/dist/esm/parquet-writer.js +1 -1
  136. package/dist/esm/parquet-writer.js.map +1 -1
  137. package/package.json +5 -5
@@ -11,6 +11,10 @@ exports.decompress = decompress;
11
11
  exports.inflate = inflate;
12
12
  exports.PARQUET_COMPRESSION_METHODS = void 0;
13
13
 
14
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
15
+
16
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
+
14
18
  var _compression = require("@loaders.gl/compression");
15
19
 
16
20
  var _bufferUtils = require("./utils/buffer-utils");
@@ -19,59 +23,138 @@ var _lz4js = _interopRequireDefault(require("lz4js"));
19
23
 
20
24
  var _lzo = _interopRequireDefault(require("lzo"));
21
25
 
22
- const modules = {
26
+ var modules = {
23
27
  lz4js: _lz4js.default,
24
28
  lzo: _lzo.default
25
29
  };
26
- const PARQUET_COMPRESSION_METHODS = {
30
+ var PARQUET_COMPRESSION_METHODS = {
27
31
  UNCOMPRESSED: new _compression.NoCompression(),
28
32
  GZIP: new _compression.GZipCompression(),
29
33
  SNAPPY: new _compression.SnappyCompression(),
30
34
  BROTLI: new _compression.BrotliCompression({
31
- modules
35
+ modules: modules
32
36
  }),
33
37
  LZ4: new _compression.LZ4Compression({
34
- modules
38
+ modules: modules
35
39
  }),
36
40
  LZ4_RAW: new _compression.LZ4Compression({
37
- modules
41
+ modules: modules
38
42
  }),
39
43
  LZO: new _compression.LZOCompression({
40
- modules
44
+ modules: modules
41
45
  }),
42
46
  ZSTD: new _compression.ZstdCompression({
43
- modules
47
+ modules: modules
44
48
  })
45
49
  };
46
50
  exports.PARQUET_COMPRESSION_METHODS = PARQUET_COMPRESSION_METHODS;
47
51
 
48
- async function preloadCompressions(options) {
49
- const compressions = Object.values(PARQUET_COMPRESSION_METHODS);
50
- return await Promise.all(compressions.map(compression => compression.preload()));
52
+ function preloadCompressions(_x) {
53
+ return _preloadCompressions.apply(this, arguments);
51
54
  }
52
55
 
53
- async function deflate(method, value) {
54
- const compression = PARQUET_COMPRESSION_METHODS[method];
55
-
56
- if (!compression) {
57
- throw new Error("parquet: invalid compression method: ".concat(method));
58
- }
56
+ function _preloadCompressions() {
57
+ _preloadCompressions = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(options) {
58
+ var compressions;
59
+ return _regenerator.default.wrap(function _callee$(_context) {
60
+ while (1) {
61
+ switch (_context.prev = _context.next) {
62
+ case 0:
63
+ compressions = Object.values(PARQUET_COMPRESSION_METHODS);
64
+ _context.next = 3;
65
+ return Promise.all(compressions.map(function (compression) {
66
+ return compression.preload();
67
+ }));
68
+
69
+ case 3:
70
+ return _context.abrupt("return", _context.sent);
71
+
72
+ case 4:
73
+ case "end":
74
+ return _context.stop();
75
+ }
76
+ }
77
+ }, _callee);
78
+ }));
79
+ return _preloadCompressions.apply(this, arguments);
80
+ }
59
81
 
60
- const inputArrayBuffer = (0, _bufferUtils.toArrayBuffer)(value);
61
- const compressedArrayBuffer = await compression.compress(inputArrayBuffer);
62
- return (0, _bufferUtils.toBuffer)(compressedArrayBuffer);
82
+ function deflate(_x2, _x3) {
83
+ return _deflate.apply(this, arguments);
63
84
  }
64
85
 
65
- async function decompress(method, value, size) {
66
- const compression = PARQUET_COMPRESSION_METHODS[method];
86
+ function _deflate() {
87
+ _deflate = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(method, value) {
88
+ var compression, inputArrayBuffer, compressedArrayBuffer;
89
+ return _regenerator.default.wrap(function _callee2$(_context2) {
90
+ while (1) {
91
+ switch (_context2.prev = _context2.next) {
92
+ case 0:
93
+ compression = PARQUET_COMPRESSION_METHODS[method];
94
+
95
+ if (compression) {
96
+ _context2.next = 3;
97
+ break;
98
+ }
99
+
100
+ throw new Error("parquet: invalid compression method: ".concat(method));
101
+
102
+ case 3:
103
+ inputArrayBuffer = (0, _bufferUtils.toArrayBuffer)(value);
104
+ _context2.next = 6;
105
+ return compression.compress(inputArrayBuffer);
106
+
107
+ case 6:
108
+ compressedArrayBuffer = _context2.sent;
109
+ return _context2.abrupt("return", (0, _bufferUtils.toBuffer)(compressedArrayBuffer));
110
+
111
+ case 8:
112
+ case "end":
113
+ return _context2.stop();
114
+ }
115
+ }
116
+ }, _callee2);
117
+ }));
118
+ return _deflate.apply(this, arguments);
119
+ }
67
120
 
68
- if (!compression) {
69
- throw new Error("parquet: invalid compression method: ".concat(method));
70
- }
121
+ function decompress(_x4, _x5, _x6) {
122
+ return _decompress.apply(this, arguments);
123
+ }
71
124
 
72
- const inputArrayBuffer = (0, _bufferUtils.toArrayBuffer)(value);
73
- const compressedArrayBuffer = await compression.decompress(inputArrayBuffer, size);
74
- return (0, _bufferUtils.toBuffer)(compressedArrayBuffer);
125
+ function _decompress() {
126
+ _decompress = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(method, value, size) {
127
+ var compression, inputArrayBuffer, compressedArrayBuffer;
128
+ return _regenerator.default.wrap(function _callee3$(_context3) {
129
+ while (1) {
130
+ switch (_context3.prev = _context3.next) {
131
+ case 0:
132
+ compression = PARQUET_COMPRESSION_METHODS[method];
133
+
134
+ if (compression) {
135
+ _context3.next = 3;
136
+ break;
137
+ }
138
+
139
+ throw new Error("parquet: invalid compression method: ".concat(method));
140
+
141
+ case 3:
142
+ inputArrayBuffer = (0, _bufferUtils.toArrayBuffer)(value);
143
+ _context3.next = 6;
144
+ return compression.decompress(inputArrayBuffer, size);
145
+
146
+ case 6:
147
+ compressedArrayBuffer = _context3.sent;
148
+ return _context3.abrupt("return", (0, _bufferUtils.toBuffer)(compressedArrayBuffer));
149
+
150
+ case 8:
151
+ case "end":
152
+ return _context3.stop();
153
+ }
154
+ }
155
+ }, _callee3);
156
+ }));
157
+ return _decompress.apply(this, arguments);
75
158
  }
76
159
 
77
160
  function inflate(method, value, size) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/parquetjs/compression.ts"],"names":["modules","lz4js","lzo","PARQUET_COMPRESSION_METHODS","UNCOMPRESSED","NoCompression","GZIP","GZipCompression","SNAPPY","SnappyCompression","BROTLI","BrotliCompression","LZ4","LZ4Compression","LZ4_RAW","LZO","LZOCompression","ZSTD","ZstdCompression","preloadCompressions","options","compressions","Object","values","Promise","all","map","compression","preload","deflate","method","value","Error","inputArrayBuffer","compressedArrayBuffer","compress","decompress","size","inflate"],"mappings":";;;;;;;;;;;;;AAIA;;AAYA;;AAMA;;AACA;;AAIA,MAAMA,OAAO,GAAG;AAQdC,EAAAA,KAAK,EAALA,cARc;AASdC,EAAAA,GAAG,EAAHA;AATc,CAAhB;AAcO,MAAMC,2BAAoE,GAAG;AAClFC,EAAAA,YAAY,EAAE,IAAIC,0BAAJ,EADoE;AAElFC,EAAAA,IAAI,EAAE,IAAIC,4BAAJ,EAF4E;AAGlFC,EAAAA,MAAM,EAAE,IAAIC,8BAAJ,EAH0E;AAIlFC,EAAAA,MAAM,EAAE,IAAIC,8BAAJ,CAAsB;AAACX,IAAAA;AAAD,GAAtB,CAJ0E;AAMlFY,EAAAA,GAAG,EAAE,IAAIC,2BAAJ,CAAmB;AAACb,IAAAA;AAAD,GAAnB,CAN6E;AAOlFc,EAAAA,OAAO,EAAE,IAAID,2BAAJ,CAAmB;AAACb,IAAAA;AAAD,GAAnB,CAPyE;AAQlFe,EAAAA,GAAG,EAAE,IAAIC,2BAAJ,CAAmB;AAAChB,IAAAA;AAAD,GAAnB,CAR6E;AASlFiB,EAAAA,IAAI,EAAE,IAAIC,4BAAJ,CAAoB;AAAClB,IAAAA;AAAD,GAApB;AAT4E,CAA7E;;;AAgBA,eAAemB,mBAAf,CAAmCC,OAAnC,EAA8E;AACnF,QAAMC,YAAY,GAAGC,MAAM,CAACC,MAAP,CAAcpB,2BAAd,CAArB;AACA,SAAO,MAAMqB,OAAO,CAACC,GAAR,CAAYJ,YAAY,CAACK,GAAb,CAAkBC,WAAD,IAAiBA,WAAW,CAACC,OAAZ,EAAlC,CAAZ,CAAb;AACD;;AAKM,eAAeC,OAAf,CAAuBC,MAAvB,EAAmDC,KAAnD,EAAmF;AACxF,QAAMJ,WAAW,GAAGxB,2BAA2B,CAAC2B,MAAD,CAA/C;;AACA,MAAI,CAACH,WAAL,EAAkB;AAChB,UAAM,IAAIK,KAAJ,gDAAkDF,MAAlD,EAAN;AACD;;AACD,QAAMG,gBAAgB,GAAG,gCAAcF,KAAd,CAAzB;AACA,QAAMG,qBAAqB,GAAG,MAAMP,WAAW,CAACQ,QAAZ,CAAqBF,gBAArB,CAApC;AACA,SAAO,2BAASC,qBAAT,CAAP;AACD;;AAKM,eAAeE,UAAf,CACLN,MADK,EAELC,KAFK,EAGLM,IAHK,EAIY;AACjB,QAAMV,WAAW,GAAGxB,2BAA2B,CAAC2B,MAAD,CAA/C;;AACA,MAAI,CAACH,WAAL,EAAkB;AAChB,UAAM,IAAIK,KAAJ,gDAAkDF,MAAlD,EAAN;AACD;;AACD,QAAMG,gBAAgB,GAAG,gCAAcF,KAAd,CAAzB;AACA,QAAMG,qBAAqB,GAAG,MAAMP,WAAW,CAACS,UAAZ,CAAuBH,gBAAvB,EAAyCI,IAAzC,CAApC;AACA,SAAO,2BAASH,qBAAT,CAAP;AACD;;AAKM,SAASI,OAAT,CAAiBR,MAAjB,EAA6CC,KAA7C,EAA4DM,IAA5D,EAAkF;AACvF,MAAI,EAAEP,MAAM,IAAI3B,2BAAZ,CAAJ,EAA8C;AAC5C,UAAM,IAAI6B,KAAJ,uCAAyCF,MAAzC,EAAN;AACD;;AAED,SAAO3B,2BAA2B,CAAC2B,MAAD,CAA3B,CAAoCQ,OAApC,CAA4CP,KAA5C,EAAmDM,IAAnD,CAAP;AACD","sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\n/* eslint-disable camelcase */\n// Forked from https://github.com/ironSource/parquetjs under MIT license\n\nimport {\n Compression,\n NoCompression,\n GZipCompression,\n SnappyCompression,\n BrotliCompression,\n LZOCompression,\n LZ4Compression,\n ZstdCompression\n} from '@loaders.gl/compression';\n\nimport {ParquetCompression} from './schema/declare';\nimport {toArrayBuffer, toBuffer} from './utils/buffer-utils';\n\n// TODO switch to worker compression to avoid bundling...\n\n// import brotli from 'brotli'; - brotli has problems with decompress in browsers\n// import brotliDecompress from 'brotli/decompress';\nimport lz4js from 'lz4js';\nimport lzo from 'lzo';\n// import {ZstdCodec} from 'zstd-codec';\n\n// Inject large dependencies through Compression constructor options\nconst modules = {\n // brotli has problems with decompress in browsers\n // brotli: {\n // decompress: brotliDecompress,\n // compress: () => {\n // throw new Error('brotli compress');\n // }\n // },\n lz4js,\n lzo\n // 'zstd-codec': ZstdCodec\n};\n\n// See https://github.com/apache/parquet-format/blob/master/Compression.md\nexport const PARQUET_COMPRESSION_METHODS: Record<ParquetCompression, Compression> = {\n UNCOMPRESSED: new NoCompression(),\n GZIP: new GZipCompression(),\n SNAPPY: new SnappyCompression(),\n BROTLI: new BrotliCompression({modules}),\n // TODO: Understand difference between LZ4 and LZ4_RAW\n LZ4: new LZ4Compression({modules}),\n LZ4_RAW: new LZ4Compression({modules}),\n LZO: new LZOCompression({modules}),\n ZSTD: new ZstdCompression({modules})\n};\n\n/**\n * Register compressions that have big external libraries\n * @param options.modules External library dependencies\n */\nexport async function preloadCompressions(options?: {modules: {[key: string]: any}}) {\n const compressions = Object.values(PARQUET_COMPRESSION_METHODS);\n return await Promise.all(compressions.map((compression) => compression.preload()));\n}\n\n/**\n * Deflate a value using compression method `method`\n */\nexport async function deflate(method: ParquetCompression, value: Buffer): Promise<Buffer> {\n const compression = PARQUET_COMPRESSION_METHODS[method];\n if (!compression) {\n throw new Error(`parquet: invalid compression method: ${method}`);\n }\n const inputArrayBuffer = toArrayBuffer(value);\n const compressedArrayBuffer = await compression.compress(inputArrayBuffer);\n return toBuffer(compressedArrayBuffer);\n}\n\n/**\n * Inflate a value using compression method `method`\n */\nexport async function decompress(\n method: ParquetCompression,\n value: Buffer,\n size: number\n): Promise<Buffer> {\n const compression = PARQUET_COMPRESSION_METHODS[method];\n if (!compression) {\n throw new Error(`parquet: invalid compression method: ${method}`);\n }\n const inputArrayBuffer = toArrayBuffer(value);\n const compressedArrayBuffer = await compression.decompress(inputArrayBuffer, size);\n return toBuffer(compressedArrayBuffer);\n}\n\n/*\n * Inflate a value using compression method `method`\n */\nexport function inflate(method: ParquetCompression, value: Buffer, size: number): Buffer {\n if (!(method in PARQUET_COMPRESSION_METHODS)) {\n throw new Error(`invalid compression method: ${method}`);\n }\n // @ts-ignore\n return PARQUET_COMPRESSION_METHODS[method].inflate(value, size);\n}\n\n/*\nfunction deflate_identity(value: Buffer): Buffer {\n return value;\n}\n\nfunction deflate_gzip(value: Buffer): Buffer {\n return zlib.gzipSync(value);\n}\n\nfunction deflate_snappy(value: Buffer): Buffer {\n return snappyjs.compress(value);\n}\n\nfunction deflate_lzo(value: Buffer): Buffer {\n lzo = lzo || Util.load('lzo');\n return lzo.compress(value);\n}\n\nfunction deflate_brotli(value: Buffer): Buffer {\n brotli = brotli || Util.load('brotli');\n const result = brotli.compress(value, {\n mode: 0,\n quality: 8,\n lgwin: 22\n });\n return result ? Buffer.from(result) : Buffer.alloc(0);\n}\n\nfunction deflate_lz4(value: Buffer): Buffer {\n lz4js = lz4js || Util.load('lz4js');\n try {\n // let result = Buffer.alloc(lz4js.encodeBound(value.length));\n // const compressedSize = lz4.encodeBlock(value, result);\n // // remove unnecessary bytes\n // result = result.slice(0, compressedSize);\n // return result;\n return Buffer.from(lz4js.compress(value));\n } catch (err) {\n throw err;\n }\n}\nfunction inflate_identity(value: Buffer): Buffer {\n return value;\n}\n\nfunction inflate_gzip(value: Buffer): Buffer {\n return zlib.gunzipSync(value);\n}\n\nfunction inflate_snappy(value: Buffer): Buffer {\n return snappyjs.uncompress(value);\n}\n\nfunction inflate_lzo(value: Buffer, size: number): Buffer {\n lzo = lzo || Util.load('lzo');\n return lzo.decompress(value, size);\n}\n\nfunction inflate_lz4(value: Buffer, size: number): Buffer {\n lz4js = lz4js || Util.load('lz4js');\n try {\n // let result = Buffer.alloc(size);\n // const uncompressedSize = lz4js.decodeBlock(value, result);\n // // remove unnecessary bytes\n // result = result.slice(0, uncompressedSize);\n // return result;\n return Buffer.from(lz4js.decompress(value, size));\n } catch (err) {\n throw err;\n }\n}\n\nfunction inflate_brotli(value: Buffer): Buffer {\n brotli = brotli || Util.load('brotli');\n if (!value.length) {\n return Buffer.alloc(0);\n }\n return Buffer.from(brotli.decompress(value));\n}\n*/\n"],"file":"compression.js"}
1
+ {"version":3,"sources":["../../../src/parquetjs/compression.ts"],"names":["modules","lz4js","lzo","PARQUET_COMPRESSION_METHODS","UNCOMPRESSED","NoCompression","GZIP","GZipCompression","SNAPPY","SnappyCompression","BROTLI","BrotliCompression","LZ4","LZ4Compression","LZ4_RAW","LZO","LZOCompression","ZSTD","ZstdCompression","preloadCompressions","options","compressions","Object","values","Promise","all","map","compression","preload","deflate","method","value","Error","inputArrayBuffer","compress","compressedArrayBuffer","decompress","size","inflate"],"mappings":"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","sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\n/* eslint-disable camelcase */\n// Forked from https://github.com/ironSource/parquetjs under MIT license\n\nimport {\n Compression,\n NoCompression,\n GZipCompression,\n SnappyCompression,\n BrotliCompression,\n LZOCompression,\n LZ4Compression,\n ZstdCompression\n} from '@loaders.gl/compression';\n\nimport {ParquetCompression} from './schema/declare';\nimport {toArrayBuffer, toBuffer} from './utils/buffer-utils';\n\n// TODO switch to worker compression to avoid bundling...\n\n// import brotli from 'brotli'; - brotli has problems with decompress in browsers\n// import brotliDecompress from 'brotli/decompress';\nimport lz4js from 'lz4js';\nimport lzo from 'lzo';\n// import {ZstdCodec} from 'zstd-codec';\n\n// Inject large dependencies through Compression constructor options\nconst modules = {\n // brotli has problems with decompress in browsers\n // brotli: {\n // decompress: brotliDecompress,\n // compress: () => {\n // throw new Error('brotli compress');\n // }\n // },\n lz4js,\n lzo\n // 'zstd-codec': ZstdCodec\n};\n\n// See https://github.com/apache/parquet-format/blob/master/Compression.md\nexport const PARQUET_COMPRESSION_METHODS: Record<ParquetCompression, Compression> = {\n UNCOMPRESSED: new NoCompression(),\n GZIP: new GZipCompression(),\n SNAPPY: new SnappyCompression(),\n BROTLI: new BrotliCompression({modules}),\n // TODO: Understand difference between LZ4 and LZ4_RAW\n LZ4: new LZ4Compression({modules}),\n LZ4_RAW: new LZ4Compression({modules}),\n LZO: new LZOCompression({modules}),\n ZSTD: new ZstdCompression({modules})\n};\n\n/**\n * Register compressions that have big external libraries\n * @param options.modules External library dependencies\n */\nexport async function preloadCompressions(options?: {modules: {[key: string]: any}}) {\n const compressions = Object.values(PARQUET_COMPRESSION_METHODS);\n return await Promise.all(compressions.map((compression) => compression.preload()));\n}\n\n/**\n * Deflate a value using compression method `method`\n */\nexport async function deflate(method: ParquetCompression, value: Buffer): Promise<Buffer> {\n const compression = PARQUET_COMPRESSION_METHODS[method];\n if (!compression) {\n throw new Error(`parquet: invalid compression method: ${method}`);\n }\n const inputArrayBuffer = toArrayBuffer(value);\n const compressedArrayBuffer = await compression.compress(inputArrayBuffer);\n return toBuffer(compressedArrayBuffer);\n}\n\n/**\n * Inflate a value using compression method `method`\n */\nexport async function decompress(\n method: ParquetCompression,\n value: Buffer,\n size: number\n): Promise<Buffer> {\n const compression = PARQUET_COMPRESSION_METHODS[method];\n if (!compression) {\n throw new Error(`parquet: invalid compression method: ${method}`);\n }\n const inputArrayBuffer = toArrayBuffer(value);\n const compressedArrayBuffer = await compression.decompress(inputArrayBuffer, size);\n return toBuffer(compressedArrayBuffer);\n}\n\n/*\n * Inflate a value using compression method `method`\n */\nexport function inflate(method: ParquetCompression, value: Buffer, size: number): Buffer {\n if (!(method in PARQUET_COMPRESSION_METHODS)) {\n throw new Error(`invalid compression method: ${method}`);\n }\n // @ts-ignore\n return PARQUET_COMPRESSION_METHODS[method].inflate(value, size);\n}\n\n/*\nfunction deflate_identity(value: Buffer): Buffer {\n return value;\n}\n\nfunction deflate_gzip(value: Buffer): Buffer {\n return zlib.gzipSync(value);\n}\n\nfunction deflate_snappy(value: Buffer): Buffer {\n return snappyjs.compress(value);\n}\n\nfunction deflate_lzo(value: Buffer): Buffer {\n lzo = lzo || Util.load('lzo');\n return lzo.compress(value);\n}\n\nfunction deflate_brotli(value: Buffer): Buffer {\n brotli = brotli || Util.load('brotli');\n const result = brotli.compress(value, {\n mode: 0,\n quality: 8,\n lgwin: 22\n });\n return result ? Buffer.from(result) : Buffer.alloc(0);\n}\n\nfunction deflate_lz4(value: Buffer): Buffer {\n lz4js = lz4js || Util.load('lz4js');\n try {\n // let result = Buffer.alloc(lz4js.encodeBound(value.length));\n // const compressedSize = lz4.encodeBlock(value, result);\n // // remove unnecessary bytes\n // result = result.slice(0, compressedSize);\n // return result;\n return Buffer.from(lz4js.compress(value));\n } catch (err) {\n throw err;\n }\n}\nfunction inflate_identity(value: Buffer): Buffer {\n return value;\n}\n\nfunction inflate_gzip(value: Buffer): Buffer {\n return zlib.gunzipSync(value);\n}\n\nfunction inflate_snappy(value: Buffer): Buffer {\n return snappyjs.uncompress(value);\n}\n\nfunction inflate_lzo(value: Buffer, size: number): Buffer {\n lzo = lzo || Util.load('lzo');\n return lzo.decompress(value, size);\n}\n\nfunction inflate_lz4(value: Buffer, size: number): Buffer {\n lz4js = lz4js || Util.load('lz4js');\n try {\n // let result = Buffer.alloc(size);\n // const uncompressedSize = lz4js.decodeBlock(value, result);\n // // remove unnecessary bytes\n // result = result.slice(0, uncompressedSize);\n // return result;\n return Buffer.from(lz4js.decompress(value, size));\n } catch (err) {\n throw err;\n }\n}\n\nfunction inflate_brotli(value: Buffer): Buffer {\n brotli = brotli || Util.load('brotli');\n if (!value.length) {\n return Buffer.alloc(0);\n }\n return Buffer.from(brotli.decompress(value));\n}\n*/\n"],"file":"compression.js"}