@loaders.gl/parquet 3.0.13 → 3.0.14

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 (120) hide show
  1. package/dist/dist.es5.min.js +1 -1
  2. package/dist/dist.es5.min.js.map +1 -1
  3. package/dist/dist.min.js +1 -1
  4. package/dist/dist.min.js.map +1 -1
  5. package/dist/es5/bundle.js +2 -2
  6. package/dist/es5/bundle.js.map +1 -1
  7. package/dist/es5/index.js +9 -9
  8. package/dist/es5/parquet-loader.js +70 -19
  9. package/dist/es5/parquet-loader.js.map +1 -1
  10. package/dist/es5/parquet-writer.js +4 -4
  11. package/dist/es5/parquet-writer.js.map +1 -1
  12. package/dist/es5/parquetjs/codecs/index.js +6 -4
  13. package/dist/es5/parquetjs/codecs/index.js.map +1 -1
  14. package/dist/es5/parquetjs/codecs/plain.js +43 -41
  15. package/dist/es5/parquetjs/codecs/plain.js.map +1 -1
  16. package/dist/es5/parquetjs/codecs/rle.js +35 -25
  17. package/dist/es5/parquetjs/codecs/rle.js.map +1 -1
  18. package/dist/es5/parquetjs/compression.js +9 -7
  19. package/dist/es5/parquetjs/compression.js.map +1 -1
  20. package/dist/es5/parquetjs/file.js +15 -15
  21. package/dist/es5/parquetjs/file.js.map +1 -1
  22. package/dist/es5/parquetjs/parquet-thrift/BoundaryOrder.js +1 -1
  23. package/dist/es5/parquetjs/parquet-thrift/BsonType.js +45 -31
  24. package/dist/es5/parquetjs/parquet-thrift/BsonType.js.map +1 -1
  25. package/dist/es5/parquetjs/parquet-thrift/ColumnChunk.js +152 -141
  26. package/dist/es5/parquetjs/parquet-thrift/ColumnChunk.js.map +1 -1
  27. package/dist/es5/parquetjs/parquet-thrift/ColumnIndex.js +160 -147
  28. package/dist/es5/parquetjs/parquet-thrift/ColumnIndex.js.map +1 -1
  29. package/dist/es5/parquetjs/parquet-thrift/ColumnMetaData.js +259 -248
  30. package/dist/es5/parquetjs/parquet-thrift/ColumnMetaData.js.map +1 -1
  31. package/dist/es5/parquetjs/parquet-thrift/ColumnOrder.js +79 -67
  32. package/dist/es5/parquetjs/parquet-thrift/ColumnOrder.js.map +1 -1
  33. package/dist/es5/parquetjs/parquet-thrift/CompressionCodec.js +1 -1
  34. package/dist/es5/parquetjs/parquet-thrift/ConvertedType.js +1 -1
  35. package/dist/es5/parquetjs/parquet-thrift/DataPageHeader.js +124 -113
  36. package/dist/es5/parquetjs/parquet-thrift/DataPageHeader.js.map +1 -1
  37. package/dist/es5/parquetjs/parquet-thrift/DataPageHeaderV2.js +169 -158
  38. package/dist/es5/parquetjs/parquet-thrift/DataPageHeaderV2.js.map +1 -1
  39. package/dist/es5/parquetjs/parquet-thrift/DateType.js +45 -31
  40. package/dist/es5/parquetjs/parquet-thrift/DateType.js.map +1 -1
  41. package/dist/es5/parquetjs/parquet-thrift/DecimalType.js +79 -68
  42. package/dist/es5/parquetjs/parquet-thrift/DecimalType.js.map +1 -1
  43. package/dist/es5/parquetjs/parquet-thrift/DictionaryPageHeader.js +94 -83
  44. package/dist/es5/parquetjs/parquet-thrift/DictionaryPageHeader.js.map +1 -1
  45. package/dist/es5/parquetjs/parquet-thrift/Encoding.js +1 -1
  46. package/dist/es5/parquetjs/parquet-thrift/EnumType.js +45 -31
  47. package/dist/es5/parquetjs/parquet-thrift/EnumType.js.map +1 -1
  48. package/dist/es5/parquetjs/parquet-thrift/FieldRepetitionType.js +1 -1
  49. package/dist/es5/parquetjs/parquet-thrift/FileMetaData.js +182 -170
  50. package/dist/es5/parquetjs/parquet-thrift/FileMetaData.js.map +1 -1
  51. package/dist/es5/parquetjs/parquet-thrift/IndexPageHeader.js +45 -31
  52. package/dist/es5/parquetjs/parquet-thrift/IndexPageHeader.js.map +1 -1
  53. package/dist/es5/parquetjs/parquet-thrift/IntType.js +79 -68
  54. package/dist/es5/parquetjs/parquet-thrift/IntType.js.map +1 -1
  55. package/dist/es5/parquetjs/parquet-thrift/JsonType.js +45 -31
  56. package/dist/es5/parquetjs/parquet-thrift/JsonType.js.map +1 -1
  57. package/dist/es5/parquetjs/parquet-thrift/KeyValue.js +79 -68
  58. package/dist/es5/parquetjs/parquet-thrift/KeyValue.js.map +1 -1
  59. package/dist/es5/parquetjs/parquet-thrift/ListType.js +45 -31
  60. package/dist/es5/parquetjs/parquet-thrift/ListType.js.map +1 -1
  61. package/dist/es5/parquetjs/parquet-thrift/LogicalType.js +343 -319
  62. package/dist/es5/parquetjs/parquet-thrift/LogicalType.js.map +1 -1
  63. package/dist/es5/parquetjs/parquet-thrift/MapType.js +45 -31
  64. package/dist/es5/parquetjs/parquet-thrift/MapType.js.map +1 -1
  65. package/dist/es5/parquetjs/parquet-thrift/MicroSeconds.js +45 -31
  66. package/dist/es5/parquetjs/parquet-thrift/MicroSeconds.js.map +1 -1
  67. package/dist/es5/parquetjs/parquet-thrift/MilliSeconds.js +45 -31
  68. package/dist/es5/parquetjs/parquet-thrift/MilliSeconds.js.map +1 -1
  69. package/dist/es5/parquetjs/parquet-thrift/NullType.js +45 -31
  70. package/dist/es5/parquetjs/parquet-thrift/NullType.js.map +1 -1
  71. package/dist/es5/parquetjs/parquet-thrift/OffsetIndex.js +75 -64
  72. package/dist/es5/parquetjs/parquet-thrift/OffsetIndex.js.map +1 -1
  73. package/dist/es5/parquetjs/parquet-thrift/PageEncodingStats.js +94 -83
  74. package/dist/es5/parquetjs/parquet-thrift/PageEncodingStats.js.map +1 -1
  75. package/dist/es5/parquetjs/parquet-thrift/PageHeader.js +169 -158
  76. package/dist/es5/parquetjs/parquet-thrift/PageHeader.js.map +1 -1
  77. package/dist/es5/parquetjs/parquet-thrift/PageLocation.js +94 -83
  78. package/dist/es5/parquetjs/parquet-thrift/PageLocation.js.map +1 -1
  79. package/dist/es5/parquetjs/parquet-thrift/PageType.js +1 -1
  80. package/dist/es5/parquetjs/parquet-thrift/RowGroup.js +124 -113
  81. package/dist/es5/parquetjs/parquet-thrift/RowGroup.js.map +1 -1
  82. package/dist/es5/parquetjs/parquet-thrift/SchemaElement.js +199 -188
  83. package/dist/es5/parquetjs/parquet-thrift/SchemaElement.js.map +1 -1
  84. package/dist/es5/parquetjs/parquet-thrift/SortingColumn.js +94 -83
  85. package/dist/es5/parquetjs/parquet-thrift/SortingColumn.js.map +1 -1
  86. package/dist/es5/parquetjs/parquet-thrift/Statistics.js +135 -124
  87. package/dist/es5/parquetjs/parquet-thrift/Statistics.js.map +1 -1
  88. package/dist/es5/parquetjs/parquet-thrift/StringType.js +45 -31
  89. package/dist/es5/parquetjs/parquet-thrift/StringType.js.map +1 -1
  90. package/dist/es5/parquetjs/parquet-thrift/TimeType.js +79 -68
  91. package/dist/es5/parquetjs/parquet-thrift/TimeType.js.map +1 -1
  92. package/dist/es5/parquetjs/parquet-thrift/TimeUnit.js +101 -88
  93. package/dist/es5/parquetjs/parquet-thrift/TimeUnit.js.map +1 -1
  94. package/dist/es5/parquetjs/parquet-thrift/TimestampType.js +79 -68
  95. package/dist/es5/parquetjs/parquet-thrift/TimestampType.js.map +1 -1
  96. package/dist/es5/parquetjs/parquet-thrift/Type.js +1 -1
  97. package/dist/es5/parquetjs/parquet-thrift/TypeDefinedOrder.js +45 -31
  98. package/dist/es5/parquetjs/parquet-thrift/TypeDefinedOrder.js.map +1 -1
  99. package/dist/es5/parquetjs/parquet-thrift/UUIDType.js +45 -31
  100. package/dist/es5/parquetjs/parquet-thrift/UUIDType.js.map +1 -1
  101. package/dist/es5/parquetjs/parquet-thrift/index.js +43 -43
  102. package/dist/es5/parquetjs/reader.js +813 -276
  103. package/dist/es5/parquetjs/reader.js.map +1 -1
  104. package/dist/es5/parquetjs/schema/declare.js +11 -9
  105. package/dist/es5/parquetjs/schema/declare.js.map +1 -1
  106. package/dist/es5/parquetjs/schema/schema.js +87 -73
  107. package/dist/es5/parquetjs/schema/schema.js.map +1 -1
  108. package/dist/es5/parquetjs/schema/shred.js +95 -55
  109. package/dist/es5/parquetjs/schema/shred.js.map +1 -1
  110. package/dist/es5/parquetjs/schema/types.js +25 -25
  111. package/dist/es5/parquetjs/schema/types.js.map +1 -1
  112. package/dist/es5/parquetjs/util.js +71 -39
  113. package/dist/es5/parquetjs/util.js.map +1 -1
  114. package/dist/es5/parquetjs/writer.js +467 -200
  115. package/dist/es5/parquetjs/writer.js.map +1 -1
  116. package/dist/esm/parquet-loader.js +1 -1
  117. package/dist/esm/parquet-writer.js +1 -1
  118. package/dist/parquet-worker.js +1 -1
  119. package/dist/parquet-worker.js.map +1 -1
  120. package/package.json +4 -4
@@ -21,6 +21,16 @@ exports.osopen = osopen;
21
21
  exports.fieldIndexOf = fieldIndexOf;
22
22
  exports.load = load;
23
23
 
24
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
25
+
26
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
27
+
28
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
29
+
30
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
31
+
32
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
33
+
24
34
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
35
 
26
36
  var _fs = _interopRequireDefault(require("fs"));
@@ -29,20 +39,38 @@ var _thrift = require("thrift");
29
39
 
30
40
  var _parquetThrift = require("./parquet-thrift");
31
41
 
32
- class UFramedTransport extends _thrift.TFramedTransport {
33
- constructor(...args) {
34
- super(...args);
35
- (0, _defineProperty2.default)(this, "readPos", 0);
42
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
43
+
44
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
45
+
46
+ var UFramedTransport = function (_TFramedTransport) {
47
+ (0, _inherits2.default)(UFramedTransport, _TFramedTransport);
48
+
49
+ var _super = _createSuper(UFramedTransport);
50
+
51
+ function UFramedTransport() {
52
+ var _this;
53
+
54
+ (0, _classCallCheck2.default)(this, UFramedTransport);
55
+
56
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
57
+ args[_key] = arguments[_key];
58
+ }
59
+
60
+ _this = _super.call.apply(_super, [this].concat(args));
61
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "readPos", 0);
62
+ return _this;
36
63
  }
37
64
 
38
- }
65
+ return UFramedTransport;
66
+ }(_thrift.TFramedTransport);
39
67
 
40
68
  function serializeThrift(obj) {
41
- const output = [];
42
- const transport = new _thrift.TBufferedTransport(undefined, buf => {
69
+ var output = [];
70
+ var transport = new _thrift.TBufferedTransport(undefined, function (buf) {
43
71
  output.push(buf);
44
72
  });
45
- const protocol = new _thrift.TCompactProtocol(transport);
73
+ var protocol = new _thrift.TCompactProtocol(transport);
46
74
  obj.write(protocol);
47
75
  transport.flush();
48
76
  return Buffer.concat(output);
@@ -53,9 +81,9 @@ function decodeThrift(obj, buf, offset) {
53
81
  offset = 0;
54
82
  }
55
83
 
56
- const transport = new UFramedTransport(buf);
84
+ var transport = new UFramedTransport(buf);
57
85
  transport.readPos = offset;
58
- const protocol = new _thrift.TCompactProtocol(transport);
86
+ var protocol = new _thrift.TCompactProtocol(transport);
59
87
  obj.read(protocol);
60
88
  return transport.readPos - offset;
61
89
  }
@@ -65,15 +93,15 @@ function decodeFileMetadata(buf, offset) {
65
93
  offset = 0;
66
94
  }
67
95
 
68
- const transport = new UFramedTransport(buf);
96
+ var transport = new UFramedTransport(buf);
69
97
  transport.readPos = offset;
70
- const protocol = new _thrift.TCompactProtocol(transport);
98
+ var protocol = new _thrift.TCompactProtocol(transport);
71
99
 
72
- const metadata = _parquetThrift.FileMetaData.read(protocol);
100
+ var metadata = _parquetThrift.FileMetaData.read(protocol);
73
101
 
74
102
  return {
75
103
  length: transport.readPos - offset,
76
- metadata
104
+ metadata: metadata
77
105
  };
78
106
  }
79
107
 
@@ -82,15 +110,15 @@ function decodePageHeader(buf, offset) {
82
110
  offset = 0;
83
111
  }
84
112
 
85
- const transport = new UFramedTransport(buf);
113
+ var transport = new UFramedTransport(buf);
86
114
  transport.readPos = offset;
87
- const protocol = new _thrift.TCompactProtocol(transport);
115
+ var protocol = new _thrift.TCompactProtocol(transport);
88
116
 
89
- const pageHeader = _parquetThrift.PageHeader.read(protocol);
117
+ var pageHeader = _parquetThrift.PageHeader.read(protocol);
90
118
 
91
119
  return {
92
120
  length: transport.readPos - offset,
93
- pageHeader
121
+ pageHeader: pageHeader
94
122
  };
95
123
  }
96
124
 
@@ -103,7 +131,7 @@ function getBitWidth(val) {
103
131
  }
104
132
 
105
133
  function getThriftEnum(klass, value) {
106
- for (const k in klass) {
134
+ for (var k in klass) {
107
135
  if (klass[k] === value) {
108
136
  return k;
109
137
  }
@@ -113,8 +141,8 @@ function getThriftEnum(klass, value) {
113
141
  }
114
142
 
115
143
  function fopen(filePath) {
116
- return new Promise((resolve, reject) => {
117
- _fs.default.open(filePath, 'r', (err, fd) => {
144
+ return new Promise(function (resolve, reject) {
145
+ _fs.default.open(filePath, 'r', function (err, fd) {
118
146
  if (err) {
119
147
  reject(err);
120
148
  } else {
@@ -125,8 +153,8 @@ function fopen(filePath) {
125
153
  }
126
154
 
127
155
  function fstat(filePath) {
128
- return new Promise((resolve, reject) => {
129
- _fs.default.stat(filePath, (err, stat) => {
156
+ return new Promise(function (resolve, reject) {
157
+ _fs.default.stat(filePath, function (err, stat) {
130
158
  if (err) {
131
159
  reject(err);
132
160
  } else {
@@ -137,9 +165,9 @@ function fstat(filePath) {
137
165
  }
138
166
 
139
167
  function fread(fd, position, length) {
140
- const buffer = Buffer.alloc(length);
141
- return new Promise((resolve, reject) => {
142
- _fs.default.read(fd, buffer, 0, length, position, (err, bytesRead, buf) => {
168
+ var buffer = Buffer.alloc(length);
169
+ return new Promise(function (resolve, reject) {
170
+ _fs.default.read(fd, buffer, 0, length, position, function (err, bytesRead, buf) {
143
171
  if (err || bytesRead !== length) {
144
172
  reject(err || Error('read failed'));
145
173
  } else {
@@ -150,8 +178,8 @@ function fread(fd, position, length) {
150
178
  }
151
179
 
152
180
  function fclose(fd) {
153
- return new Promise((resolve, reject) => {
154
- _fs.default.close(fd, err => {
181
+ return new Promise(function (resolve, reject) {
182
+ _fs.default.close(fd, function (err) {
155
183
  if (err) {
156
184
  reject(err);
157
185
  } else {
@@ -162,8 +190,8 @@ function fclose(fd) {
162
190
  }
163
191
 
164
192
  function oswrite(os, buf) {
165
- return new Promise((resolve, reject) => {
166
- os.write(buf, err => {
193
+ return new Promise(function (resolve, reject) {
194
+ os.write(buf, function (err) {
167
195
  if (err) {
168
196
  reject(err);
169
197
  } else {
@@ -174,8 +202,8 @@ function oswrite(os, buf) {
174
202
  }
175
203
 
176
204
  function osclose(os) {
177
- return new Promise((resolve, reject) => {
178
- os.close(err => {
205
+ return new Promise(function (resolve, reject) {
206
+ os.close(function (err) {
179
207
  if (err) {
180
208
  reject(err);
181
209
  } else {
@@ -186,23 +214,27 @@ function osclose(os) {
186
214
  }
187
215
 
188
216
  function osopen(path, opts) {
189
- return new Promise((resolve, reject) => {
190
- const outputStream = _fs.default.createWriteStream(path, opts);
217
+ return new Promise(function (resolve, reject) {
218
+ var outputStream = _fs.default.createWriteStream(path, opts);
191
219
 
192
- outputStream.once('open', fd => resolve(outputStream));
193
- outputStream.once('error', err => reject(err));
220
+ outputStream.once('open', function (fd) {
221
+ return resolve(outputStream);
222
+ });
223
+ outputStream.once('error', function (err) {
224
+ return reject(err);
225
+ });
194
226
  });
195
227
  }
196
228
 
197
229
  function fieldIndexOf(arr, elem) {
198
- for (let j = 0; j < arr.length; j++) {
230
+ for (var j = 0; j < arr.length; j++) {
199
231
  if (arr[j].length > elem.length) {
200
232
  continue;
201
233
  }
202
234
 
203
- let m = true;
235
+ var m = true;
204
236
 
205
- for (let i = 0; i < elem.length; i++) {
237
+ for (var i = 0; i < elem.length; i++) {
206
238
  if (arr[j][i] === elem[i] || arr[j][i] === '+' || arr[j][i] === '#') {
207
239
  continue;
208
240
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/parquetjs/util.ts"],"names":["UFramedTransport","TFramedTransport","serializeThrift","obj","output","transport","TBufferedTransport","undefined","buf","push","protocol","TCompactProtocol","write","flush","Buffer","concat","decodeThrift","offset","readPos","read","decodeFileMetadata","metadata","FileMetaData","length","decodePageHeader","pageHeader","PageHeader","getBitWidth","val","Math","ceil","log2","getThriftEnum","klass","value","k","Error","fopen","filePath","Promise","resolve","reject","fs","open","err","fd","fstat","stat","fread","position","buffer","alloc","bytesRead","fclose","close","oswrite","os","osclose","osopen","path","opts","outputStream","createWriteStream","once","fieldIndexOf","arr","elem","j","m","i","load","name","module","global","require"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AAYA,MAAMA,gBAAN,SAA+BC,wBAA/B,CAAgD;AAAA;AAAA;AAAA,mDACrB,CADqB;AAAA;;AAAA;;AAOzC,SAASC,eAAT,CAAyBC,GAAzB,EAA2C;AAChD,QAAMC,MAAgB,GAAG,EAAzB;AAEA,QAAMC,SAAS,GAAG,IAAIC,0BAAJ,CAAuBC,SAAvB,EAAmCC,GAAD,IAAS;AAC3DJ,IAAAA,MAAM,CAACK,IAAP,CAAYD,GAAZ;AACD,GAFiB,CAAlB;AAIA,QAAME,QAAQ,GAAG,IAAIC,wBAAJ,CAAqBN,SAArB,CAAjB;AACAF,EAAAA,GAAG,CAACS,KAAJ,CAAUF,QAAV;AACAL,EAAAA,SAAS,CAACQ,KAAV;AAEA,SAAOC,MAAM,CAACC,MAAP,CAAcX,MAAd,CAAP;AACD;;AAEM,SAASY,YAAT,CAAsBb,GAAtB,EAAgCK,GAAhC,EAA6CS,MAA7C,EAA8D;AACnE,MAAI,CAACA,MAAL,EAAa;AAEXA,IAAAA,MAAM,GAAG,CAAT;AACD;;AAED,QAAMZ,SAAS,GAAG,IAAIL,gBAAJ,CAAqBQ,GAArB,CAAlB;AACAH,EAAAA,SAAS,CAACa,OAAV,GAAoBD,MAApB;AACA,QAAMP,QAAQ,GAAG,IAAIC,wBAAJ,CAAqBN,SAArB,CAAjB;AACAF,EAAAA,GAAG,CAACgB,IAAJ,CAAST,QAAT;AACA,SAAOL,SAAS,CAACa,OAAV,GAAoBD,MAA3B;AACD;;AAEM,SAASG,kBAAT,CAA4BZ,GAA5B,EAAyCS,MAAzC,EAA0D;AAC/D,MAAI,CAACA,MAAL,EAAa;AAEXA,IAAAA,MAAM,GAAG,CAAT;AACD;;AAED,QAAMZ,SAAS,GAAG,IAAIL,gBAAJ,CAAqBQ,GAArB,CAAlB;AACAH,EAAAA,SAAS,CAACa,OAAV,GAAoBD,MAApB;AACA,QAAMP,QAAQ,GAAG,IAAIC,wBAAJ,CAAqBN,SAArB,CAAjB;;AACA,QAAMgB,QAAQ,GAAGC,4BAAaH,IAAb,CAAkBT,QAAlB,CAAjB;;AACA,SAAO;AAACa,IAAAA,MAAM,EAAElB,SAAS,CAACa,OAAV,GAAoBD,MAA7B;AAAqCI,IAAAA;AAArC,GAAP;AACD;;AAEM,SAASG,gBAAT,CAA0BhB,GAA1B,EAAuCS,MAAvC,EAAwD;AAC7D,MAAI,CAACA,MAAL,EAAa;AAEXA,IAAAA,MAAM,GAAG,CAAT;AACD;;AAED,QAAMZ,SAAS,GAAG,IAAIL,gBAAJ,CAAqBQ,GAArB,CAAlB;AACAH,EAAAA,SAAS,CAACa,OAAV,GAAoBD,MAApB;AACA,QAAMP,QAAQ,GAAG,IAAIC,wBAAJ,CAAqBN,SAArB,CAAjB;;AACA,QAAMoB,UAAU,GAAGC,0BAAWP,IAAX,CAAgBT,QAAhB,CAAnB;;AACA,SAAO;AAACa,IAAAA,MAAM,EAAElB,SAAS,CAACa,OAAV,GAAoBD,MAA7B;AAAqCQ,IAAAA;AAArC,GAAP;AACD;;AAKM,SAASE,WAAT,CAAqBC,GAArB,EAA0C;AAC/C,MAAIA,GAAG,KAAK,CAAZ,EAAe;AACb,WAAO,CAAP;AAED;;AACD,SAAOC,IAAI,CAACC,IAAL,CAAUD,IAAI,CAACE,IAAL,CAAUH,GAAG,GAAG,CAAhB,CAAV,CAAP;AACD;;AAKM,SAASI,aAAT,CAAuBC,KAAvB,EAAmCC,KAAnC,EAAmE;AACxE,OAAK,MAAMC,CAAX,IAAgBF,KAAhB,EAAuB;AACrB,QAAIA,KAAK,CAACE,CAAD,CAAL,KAAaD,KAAjB,EAAwB;AACtB,aAAOC,CAAP;AACD;AACF;;AACD,QAAM,IAAIC,KAAJ,CAAU,oBAAV,CAAN;AACD;;AAEM,SAASC,KAAT,CAAeC,QAAf,EAAkD;AACvD,SAAO,IAAIC,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;AACtCC,gBAAGC,IAAH,CAAQL,QAAR,EAAkB,GAAlB,EAAuB,CAACM,GAAD,EAAMC,EAAN,KAAa;AAClC,UAAID,GAAJ,EAAS;AACPH,QAAAA,MAAM,CAACG,GAAD,CAAN;AACD,OAFD,MAEO;AACLJ,QAAAA,OAAO,CAACK,EAAD,CAAP;AACD;AACF,KAND;AAOD,GARM,CAAP;AASD;;AAEM,SAASC,KAAT,CAAeR,QAAf,EAAoD;AACzD,SAAO,IAAIC,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;AACtCC,gBAAGK,IAAH,CAAQT,QAAR,EAAkB,CAACM,GAAD,EAAMG,IAAN,KAAe;AAC/B,UAAIH,GAAJ,EAAS;AACPH,QAAAA,MAAM,CAACG,GAAD,CAAN;AACD,OAFD,MAEO;AACLJ,QAAAA,OAAO,CAACO,IAAD,CAAP;AACD;AACF,KAND;AAOD,GARM,CAAP;AASD;;AAEM,SAASC,KAAT,CAAeH,EAAf,EAA2BI,QAA3B,EAA6C1B,MAA7C,EAA8E;AACnF,QAAM2B,MAAM,GAAGpC,MAAM,CAACqC,KAAP,CAAa5B,MAAb,CAAf;AACA,SAAO,IAAIgB,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;AACtCC,gBAAGvB,IAAH,CAAQ0B,EAAR,EAAYK,MAAZ,EAAoB,CAApB,EAAuB3B,MAAvB,EAA+B0B,QAA/B,EAAyC,CAACL,GAAD,EAAMQ,SAAN,EAAiB5C,GAAjB,KAAyB;AAChE,UAAIoC,GAAG,IAAIQ,SAAS,KAAK7B,MAAzB,EAAiC;AAC/BkB,QAAAA,MAAM,CAACG,GAAG,IAAIR,KAAK,CAAC,aAAD,CAAb,CAAN;AACD,OAFD,MAEO;AACLI,QAAAA,OAAO,CAAChC,GAAD,CAAP;AACD;AACF,KAND;AAOD,GARM,CAAP;AASD;;AAEM,SAAS6C,MAAT,CAAgBR,EAAhB,EAA2C;AAChD,SAAO,IAAIN,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;AACtCC,gBAAGY,KAAH,CAAST,EAAT,EAAcD,GAAD,IAAS;AACpB,UAAIA,GAAJ,EAAS;AACPH,QAAAA,MAAM,CAACG,GAAD,CAAN;AACD,OAFD,MAEO;AACLJ,QAAAA,OAAO;AACR;AACF,KAND;AAOD,GARM,CAAP;AASD;;AAEM,SAASe,OAAT,CAAiBC,EAAjB,EAA+BhD,GAA/B,EAA2D;AAChE,SAAO,IAAI+B,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;AACtCe,IAAAA,EAAE,CAAC5C,KAAH,CAASJ,GAAT,EAAeoC,GAAD,IAAS;AACrB,UAAIA,GAAJ,EAAS;AACPH,QAAAA,MAAM,CAACG,GAAD,CAAN;AACD,OAFD,MAEO;AACLJ,QAAAA,OAAO;AACR;AACF,KAND;AAOD,GARM,CAAP;AASD;;AAEM,SAASiB,OAAT,CAAiBD,EAAjB,EAA8C;AACnD,SAAO,IAAIjB,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;AACrCe,IAAAA,EAAD,CAAYF,KAAZ,CAAmBV,GAAD,IAAc;AAC9B,UAAIA,GAAJ,EAAS;AACPH,QAAAA,MAAM,CAACG,GAAD,CAAN;AACD,OAFD,MAEO;AACLJ,QAAAA,OAAO;AACR;AACF,KAND;AAOD,GARM,CAAP;AASD;;AAEM,SAASkB,MAAT,CAAgBC,IAAhB,EAA8BC,IAA9B,EAAkF;AACvF,SAAO,IAAIrB,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;AACtC,UAAMoB,YAAY,GAAGnB,YAAGoB,iBAAH,CAAqBH,IAArB,EAA2BC,IAA3B,CAArB;;AACAC,IAAAA,YAAY,CAACE,IAAb,CAAkB,MAAlB,EAA2BlB,EAAD,IAAQL,OAAO,CAACqB,YAAD,CAAzC;AACAA,IAAAA,YAAY,CAACE,IAAb,CAAkB,OAAlB,EAA4BnB,GAAD,IAASH,MAAM,CAACG,GAAD,CAA1C;AACD,GAJM,CAAP;AAKD;;AAKM,SAASoB,YAAT,CAAsBC,GAAtB,EAAuCC,IAAvC,EAA+D;AACpE,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,GAAG,CAAC1C,MAAxB,EAAgC4C,CAAC,EAAjC,EAAqC;AACnC,QAAIF,GAAG,CAACE,CAAD,CAAH,CAAO5C,MAAP,GAAgB2C,IAAI,CAAC3C,MAAzB,EAAiC;AAC/B;AACD;;AACD,QAAI6C,CAAC,GAAG,IAAR;;AACA,SAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,IAAI,CAAC3C,MAAzB,EAAiC8C,CAAC,EAAlC,EAAsC;AACpC,UAAIJ,GAAG,CAACE,CAAD,CAAH,CAAOE,CAAP,MAAcH,IAAI,CAACG,CAAD,CAAlB,IAAyBJ,GAAG,CAACE,CAAD,CAAH,CAAOE,CAAP,MAAc,GAAvC,IAA8CJ,GAAG,CAACE,CAAD,CAAH,CAAOE,CAAP,MAAc,GAAhE,EAAqE;AACnE;AACD;;AACD,UAAIA,CAAC,IAAIJ,GAAG,CAACE,CAAD,CAAH,CAAO5C,MAAZ,IAAsB0C,GAAG,CAACE,CAAD,CAAH,CAAOF,GAAG,CAACE,CAAD,CAAH,CAAO5C,MAAP,GAAgB,CAAvB,MAA8B,GAAxD,EAA6D;AAC3D;AACD;;AACD6C,MAAAA,CAAC,GAAG,KAAJ;AACA;AACD;;AACD,QAAIA,CAAJ,EAAO,OAAOD,CAAP;AACR;;AACD,SAAO,CAAC,CAAR;AACD;;AAEM,SAASG,IAAT,CAAcC,IAAd,EAAiC;AACtC,SAAO,CAACC,MAAM,IAAKC,MAAZ,EAA4BC,OAA5B,CAAoCH,IAApC,CAAP;AACD","sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\nimport fs from 'fs';\nimport {TBufferedTransport, TCompactProtocol, TFramedTransport} from 'thrift';\nimport {FileMetaData, PageHeader} from './parquet-thrift';\nimport {Writable} from 'stream';\n\nexport interface WriteStreamOptions {\n flags?: string;\n encoding?: string;\n fd?: number;\n mode?: number;\n autoClose?: boolean;\n start?: number;\n}\n\nclass UFramedTransport extends TFramedTransport {\n public readPos: number = 0;\n}\n\n/**\n * Helper function that serializes a thrift object into a buffer\n */\nexport function serializeThrift(obj: any): Buffer {\n const output: Buffer[] = [];\n\n const transport = new TBufferedTransport(undefined, (buf) => {\n output.push(buf as Buffer);\n });\n\n const protocol = new TCompactProtocol(transport);\n obj.write(protocol);\n transport.flush();\n\n return Buffer.concat(output);\n}\n\nexport function decodeThrift(obj: any, buf: Buffer, offset?: number) {\n if (!offset) {\n // tslint:disable-next-line:no-parameter-reassignment\n offset = 0;\n }\n\n const transport = new UFramedTransport(buf);\n transport.readPos = offset;\n const protocol = new TCompactProtocol(transport);\n obj.read(protocol);\n return transport.readPos - offset;\n}\n\nexport function decodeFileMetadata(buf: Buffer, offset?: number) {\n if (!offset) {\n // tslint:disable-next-line:no-parameter-reassignment\n offset = 0;\n }\n\n const transport = new UFramedTransport(buf);\n transport.readPos = offset;\n const protocol = new TCompactProtocol(transport);\n const metadata = FileMetaData.read(protocol);\n return {length: transport.readPos - offset, metadata};\n}\n\nexport function decodePageHeader(buf: Buffer, offset?: number) {\n if (!offset) {\n // tslint:disable-next-line:no-parameter-reassignment\n offset = 0;\n }\n\n const transport = new UFramedTransport(buf);\n transport.readPos = offset;\n const protocol = new TCompactProtocol(transport);\n const pageHeader = PageHeader.read(protocol);\n return {length: transport.readPos - offset, pageHeader};\n}\n\n/**\n * Get the number of bits required to store a given value\n */\nexport function getBitWidth(val: number): number {\n if (val === 0) {\n return 0;\n // tslint:disable-next-line:no-else-after-return\n }\n return Math.ceil(Math.log2(val + 1));\n}\n\n/**\n * FIXME not ideal that this is linear\n */\nexport function getThriftEnum(klass: any, value: number | string): string {\n for (const k in klass) {\n if (klass[k] === value) {\n return k;\n }\n }\n throw new Error('Invalid ENUM value');\n}\n\nexport function fopen(filePath: string): Promise<number> {\n return new Promise((resolve, reject) => {\n fs.open(filePath, 'r', (err, fd) => {\n if (err) {\n reject(err);\n } else {\n resolve(fd);\n }\n });\n });\n}\n\nexport function fstat(filePath: string): Promise<fs.Stats> {\n return new Promise((resolve, reject) => {\n fs.stat(filePath, (err, stat) => {\n if (err) {\n reject(err);\n } else {\n resolve(stat);\n }\n });\n });\n}\n\nexport function fread(fd: number, position: number, length: number): Promise<Buffer> {\n const buffer = Buffer.alloc(length);\n return new Promise((resolve, reject) => {\n fs.read(fd, buffer, 0, length, position, (err, bytesRead, buf) => {\n if (err || bytesRead !== length) {\n reject(err || Error('read failed'));\n } else {\n resolve(buf);\n }\n });\n });\n}\n\nexport function fclose(fd: number): Promise<void> {\n return new Promise((resolve, reject) => {\n fs.close(fd, (err) => {\n if (err) {\n reject(err);\n } else {\n resolve();\n }\n });\n });\n}\n\nexport function oswrite(os: Writable, buf: Buffer): Promise<void> {\n return new Promise((resolve, reject) => {\n os.write(buf, (err) => {\n if (err) {\n reject(err);\n } else {\n resolve();\n }\n });\n });\n}\n\nexport function osclose(os: Writable): Promise<void> {\n return new Promise((resolve, reject) => {\n (os as any).close((err: any) => {\n if (err) {\n reject(err);\n } else {\n resolve();\n }\n });\n });\n}\n\nexport function osopen(path: string, opts?: WriteStreamOptions): Promise<fs.WriteStream> {\n return new Promise((resolve, reject) => {\n const outputStream = fs.createWriteStream(path, opts as any);\n outputStream.once('open', (fd) => resolve(outputStream));\n outputStream.once('error', (err) => reject(err));\n });\n}\n\n// Supports MQTT path wildcards\n// + all immediate children\n// # all descendents\nexport function fieldIndexOf(arr: string[][], elem: string[]): number {\n for (let j = 0; j < arr.length; j++) {\n if (arr[j].length > elem.length) {\n continue; // eslint-disable-line no-continue\n }\n let m = true;\n for (let i = 0; i < elem.length; i++) {\n if (arr[j][i] === elem[i] || arr[j][i] === '+' || arr[j][i] === '#') {\n continue; // eslint-disable-line no-continue\n }\n if (i >= arr[j].length && arr[j][arr[j].length - 1] === '#') {\n continue; // eslint-disable-line no-continue\n }\n m = false;\n break;\n }\n if (m) return j;\n }\n return -1;\n}\n\nexport function load(name: string): any {\n return (module || (global as any)).require(name);\n}\n"],"file":"util.js"}
1
+ {"version":3,"sources":["../../../src/parquetjs/util.ts"],"names":["UFramedTransport","TFramedTransport","serializeThrift","obj","output","transport","TBufferedTransport","undefined","buf","push","protocol","TCompactProtocol","write","flush","Buffer","concat","decodeThrift","offset","readPos","read","decodeFileMetadata","metadata","FileMetaData","length","decodePageHeader","pageHeader","PageHeader","getBitWidth","val","Math","ceil","log2","getThriftEnum","klass","value","k","Error","fopen","filePath","Promise","resolve","reject","fs","open","err","fd","fstat","stat","fread","position","buffer","alloc","bytesRead","fclose","close","oswrite","os","osclose","osopen","path","opts","outputStream","createWriteStream","once","fieldIndexOf","arr","elem","j","m","i","load","name","module","global","require"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AACA;;;;;;IAYMA,gB;;;;;;;;;;;;;;;0FACqB,C;;;;;EADIC,wB;;AAOxB,SAASC,eAAT,CAAyBC,GAAzB,EAA2C;AAChD,MAAMC,MAAgB,GAAG,EAAzB;AAEA,MAAMC,SAAS,GAAG,IAAIC,0BAAJ,CAAuBC,SAAvB,EAAkC,UAACC,GAAD,EAAS;AAC3DJ,IAAAA,MAAM,CAACK,IAAP,CAAYD,GAAZ;AACD,GAFiB,CAAlB;AAIA,MAAME,QAAQ,GAAG,IAAIC,wBAAJ,CAAqBN,SAArB,CAAjB;AACAF,EAAAA,GAAG,CAACS,KAAJ,CAAUF,QAAV;AACAL,EAAAA,SAAS,CAACQ,KAAV;AAEA,SAAOC,MAAM,CAACC,MAAP,CAAcX,MAAd,CAAP;AACD;;AAEM,SAASY,YAAT,CAAsBb,GAAtB,EAAgCK,GAAhC,EAA6CS,MAA7C,EAA8D;AACnE,MAAI,CAACA,MAAL,EAAa;AAEXA,IAAAA,MAAM,GAAG,CAAT;AACD;;AAED,MAAMZ,SAAS,GAAG,IAAIL,gBAAJ,CAAqBQ,GAArB,CAAlB;AACAH,EAAAA,SAAS,CAACa,OAAV,GAAoBD,MAApB;AACA,MAAMP,QAAQ,GAAG,IAAIC,wBAAJ,CAAqBN,SAArB,CAAjB;AACAF,EAAAA,GAAG,CAACgB,IAAJ,CAAST,QAAT;AACA,SAAOL,SAAS,CAACa,OAAV,GAAoBD,MAA3B;AACD;;AAEM,SAASG,kBAAT,CAA4BZ,GAA5B,EAAyCS,MAAzC,EAA0D;AAC/D,MAAI,CAACA,MAAL,EAAa;AAEXA,IAAAA,MAAM,GAAG,CAAT;AACD;;AAED,MAAMZ,SAAS,GAAG,IAAIL,gBAAJ,CAAqBQ,GAArB,CAAlB;AACAH,EAAAA,SAAS,CAACa,OAAV,GAAoBD,MAApB;AACA,MAAMP,QAAQ,GAAG,IAAIC,wBAAJ,CAAqBN,SAArB,CAAjB;;AACA,MAAMgB,QAAQ,GAAGC,4BAAaH,IAAb,CAAkBT,QAAlB,CAAjB;;AACA,SAAO;AAACa,IAAAA,MAAM,EAAElB,SAAS,CAACa,OAAV,GAAoBD,MAA7B;AAAqCI,IAAAA,QAAQ,EAARA;AAArC,GAAP;AACD;;AAEM,SAASG,gBAAT,CAA0BhB,GAA1B,EAAuCS,MAAvC,EAAwD;AAC7D,MAAI,CAACA,MAAL,EAAa;AAEXA,IAAAA,MAAM,GAAG,CAAT;AACD;;AAED,MAAMZ,SAAS,GAAG,IAAIL,gBAAJ,CAAqBQ,GAArB,CAAlB;AACAH,EAAAA,SAAS,CAACa,OAAV,GAAoBD,MAApB;AACA,MAAMP,QAAQ,GAAG,IAAIC,wBAAJ,CAAqBN,SAArB,CAAjB;;AACA,MAAMoB,UAAU,GAAGC,0BAAWP,IAAX,CAAgBT,QAAhB,CAAnB;;AACA,SAAO;AAACa,IAAAA,MAAM,EAAElB,SAAS,CAACa,OAAV,GAAoBD,MAA7B;AAAqCQ,IAAAA,UAAU,EAAVA;AAArC,GAAP;AACD;;AAKM,SAASE,WAAT,CAAqBC,GAArB,EAA0C;AAC/C,MAAIA,GAAG,KAAK,CAAZ,EAAe;AACb,WAAO,CAAP;AAED;;AACD,SAAOC,IAAI,CAACC,IAAL,CAAUD,IAAI,CAACE,IAAL,CAAUH,GAAG,GAAG,CAAhB,CAAV,CAAP;AACD;;AAKM,SAASI,aAAT,CAAuBC,KAAvB,EAAmCC,KAAnC,EAAmE;AACxE,OAAK,IAAMC,CAAX,IAAgBF,KAAhB,EAAuB;AACrB,QAAIA,KAAK,CAACE,CAAD,CAAL,KAAaD,KAAjB,EAAwB;AACtB,aAAOC,CAAP;AACD;AACF;;AACD,QAAM,IAAIC,KAAJ,CAAU,oBAAV,CAAN;AACD;;AAEM,SAASC,KAAT,CAAeC,QAAf,EAAkD;AACvD,SAAO,IAAIC,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACtCC,gBAAGC,IAAH,CAAQL,QAAR,EAAkB,GAAlB,EAAuB,UAACM,GAAD,EAAMC,EAAN,EAAa;AAClC,UAAID,GAAJ,EAAS;AACPH,QAAAA,MAAM,CAACG,GAAD,CAAN;AACD,OAFD,MAEO;AACLJ,QAAAA,OAAO,CAACK,EAAD,CAAP;AACD;AACF,KAND;AAOD,GARM,CAAP;AASD;;AAEM,SAASC,KAAT,CAAeR,QAAf,EAAoD;AACzD,SAAO,IAAIC,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACtCC,gBAAGK,IAAH,CAAQT,QAAR,EAAkB,UAACM,GAAD,EAAMG,IAAN,EAAe;AAC/B,UAAIH,GAAJ,EAAS;AACPH,QAAAA,MAAM,CAACG,GAAD,CAAN;AACD,OAFD,MAEO;AACLJ,QAAAA,OAAO,CAACO,IAAD,CAAP;AACD;AACF,KAND;AAOD,GARM,CAAP;AASD;;AAEM,SAASC,KAAT,CAAeH,EAAf,EAA2BI,QAA3B,EAA6C1B,MAA7C,EAA8E;AACnF,MAAM2B,MAAM,GAAGpC,MAAM,CAACqC,KAAP,CAAa5B,MAAb,CAAf;AACA,SAAO,IAAIgB,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACtCC,gBAAGvB,IAAH,CAAQ0B,EAAR,EAAYK,MAAZ,EAAoB,CAApB,EAAuB3B,MAAvB,EAA+B0B,QAA/B,EAAyC,UAACL,GAAD,EAAMQ,SAAN,EAAiB5C,GAAjB,EAAyB;AAChE,UAAIoC,GAAG,IAAIQ,SAAS,KAAK7B,MAAzB,EAAiC;AAC/BkB,QAAAA,MAAM,CAACG,GAAG,IAAIR,KAAK,CAAC,aAAD,CAAb,CAAN;AACD,OAFD,MAEO;AACLI,QAAAA,OAAO,CAAChC,GAAD,CAAP;AACD;AACF,KAND;AAOD,GARM,CAAP;AASD;;AAEM,SAAS6C,MAAT,CAAgBR,EAAhB,EAA2C;AAChD,SAAO,IAAIN,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACtCC,gBAAGY,KAAH,CAAST,EAAT,EAAa,UAACD,GAAD,EAAS;AACpB,UAAIA,GAAJ,EAAS;AACPH,QAAAA,MAAM,CAACG,GAAD,CAAN;AACD,OAFD,MAEO;AACLJ,QAAAA,OAAO;AACR;AACF,KAND;AAOD,GARM,CAAP;AASD;;AAEM,SAASe,OAAT,CAAiBC,EAAjB,EAA+BhD,GAA/B,EAA2D;AAChE,SAAO,IAAI+B,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACtCe,IAAAA,EAAE,CAAC5C,KAAH,CAASJ,GAAT,EAAc,UAACoC,GAAD,EAAS;AACrB,UAAIA,GAAJ,EAAS;AACPH,QAAAA,MAAM,CAACG,GAAD,CAAN;AACD,OAFD,MAEO;AACLJ,QAAAA,OAAO;AACR;AACF,KAND;AAOD,GARM,CAAP;AASD;;AAEM,SAASiB,OAAT,CAAiBD,EAAjB,EAA8C;AACnD,SAAO,IAAIjB,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACrCe,IAAAA,EAAD,CAAYF,KAAZ,CAAkB,UAACV,GAAD,EAAc;AAC9B,UAAIA,GAAJ,EAAS;AACPH,QAAAA,MAAM,CAACG,GAAD,CAAN;AACD,OAFD,MAEO;AACLJ,QAAAA,OAAO;AACR;AACF,KAND;AAOD,GARM,CAAP;AASD;;AAEM,SAASkB,MAAT,CAAgBC,IAAhB,EAA8BC,IAA9B,EAAkF;AACvF,SAAO,IAAIrB,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACtC,QAAMoB,YAAY,GAAGnB,YAAGoB,iBAAH,CAAqBH,IAArB,EAA2BC,IAA3B,CAArB;;AACAC,IAAAA,YAAY,CAACE,IAAb,CAAkB,MAAlB,EAA0B,UAAClB,EAAD;AAAA,aAAQL,OAAO,CAACqB,YAAD,CAAf;AAAA,KAA1B;AACAA,IAAAA,YAAY,CAACE,IAAb,CAAkB,OAAlB,EAA2B,UAACnB,GAAD;AAAA,aAASH,MAAM,CAACG,GAAD,CAAf;AAAA,KAA3B;AACD,GAJM,CAAP;AAKD;;AAKM,SAASoB,YAAT,CAAsBC,GAAtB,EAAuCC,IAAvC,EAA+D;AACpE,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,GAAG,CAAC1C,MAAxB,EAAgC4C,CAAC,EAAjC,EAAqC;AACnC,QAAIF,GAAG,CAACE,CAAD,CAAH,CAAO5C,MAAP,GAAgB2C,IAAI,CAAC3C,MAAzB,EAAiC;AAC/B;AACD;;AACD,QAAI6C,CAAC,GAAG,IAAR;;AACA,SAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,IAAI,CAAC3C,MAAzB,EAAiC8C,CAAC,EAAlC,EAAsC;AACpC,UAAIJ,GAAG,CAACE,CAAD,CAAH,CAAOE,CAAP,MAAcH,IAAI,CAACG,CAAD,CAAlB,IAAyBJ,GAAG,CAACE,CAAD,CAAH,CAAOE,CAAP,MAAc,GAAvC,IAA8CJ,GAAG,CAACE,CAAD,CAAH,CAAOE,CAAP,MAAc,GAAhE,EAAqE;AACnE;AACD;;AACD,UAAIA,CAAC,IAAIJ,GAAG,CAACE,CAAD,CAAH,CAAO5C,MAAZ,IAAsB0C,GAAG,CAACE,CAAD,CAAH,CAAOF,GAAG,CAACE,CAAD,CAAH,CAAO5C,MAAP,GAAgB,CAAvB,MAA8B,GAAxD,EAA6D;AAC3D;AACD;;AACD6C,MAAAA,CAAC,GAAG,KAAJ;AACA;AACD;;AACD,QAAIA,CAAJ,EAAO,OAAOD,CAAP;AACR;;AACD,SAAO,CAAC,CAAR;AACD;;AAEM,SAASG,IAAT,CAAcC,IAAd,EAAiC;AACtC,SAAO,CAACC,MAAM,IAAKC,MAAZ,EAA4BC,OAA5B,CAAoCH,IAApC,CAAP;AACD","sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\nimport fs from 'fs';\nimport {TBufferedTransport, TCompactProtocol, TFramedTransport} from 'thrift';\nimport {FileMetaData, PageHeader} from './parquet-thrift';\nimport {Writable} from 'stream';\n\nexport interface WriteStreamOptions {\n flags?: string;\n encoding?: string;\n fd?: number;\n mode?: number;\n autoClose?: boolean;\n start?: number;\n}\n\nclass UFramedTransport extends TFramedTransport {\n public readPos: number = 0;\n}\n\n/**\n * Helper function that serializes a thrift object into a buffer\n */\nexport function serializeThrift(obj: any): Buffer {\n const output: Buffer[] = [];\n\n const transport = new TBufferedTransport(undefined, (buf) => {\n output.push(buf as Buffer);\n });\n\n const protocol = new TCompactProtocol(transport);\n obj.write(protocol);\n transport.flush();\n\n return Buffer.concat(output);\n}\n\nexport function decodeThrift(obj: any, buf: Buffer, offset?: number) {\n if (!offset) {\n // tslint:disable-next-line:no-parameter-reassignment\n offset = 0;\n }\n\n const transport = new UFramedTransport(buf);\n transport.readPos = offset;\n const protocol = new TCompactProtocol(transport);\n obj.read(protocol);\n return transport.readPos - offset;\n}\n\nexport function decodeFileMetadata(buf: Buffer, offset?: number) {\n if (!offset) {\n // tslint:disable-next-line:no-parameter-reassignment\n offset = 0;\n }\n\n const transport = new UFramedTransport(buf);\n transport.readPos = offset;\n const protocol = new TCompactProtocol(transport);\n const metadata = FileMetaData.read(protocol);\n return {length: transport.readPos - offset, metadata};\n}\n\nexport function decodePageHeader(buf: Buffer, offset?: number) {\n if (!offset) {\n // tslint:disable-next-line:no-parameter-reassignment\n offset = 0;\n }\n\n const transport = new UFramedTransport(buf);\n transport.readPos = offset;\n const protocol = new TCompactProtocol(transport);\n const pageHeader = PageHeader.read(protocol);\n return {length: transport.readPos - offset, pageHeader};\n}\n\n/**\n * Get the number of bits required to store a given value\n */\nexport function getBitWidth(val: number): number {\n if (val === 0) {\n return 0;\n // tslint:disable-next-line:no-else-after-return\n }\n return Math.ceil(Math.log2(val + 1));\n}\n\n/**\n * FIXME not ideal that this is linear\n */\nexport function getThriftEnum(klass: any, value: number | string): string {\n for (const k in klass) {\n if (klass[k] === value) {\n return k;\n }\n }\n throw new Error('Invalid ENUM value');\n}\n\nexport function fopen(filePath: string): Promise<number> {\n return new Promise((resolve, reject) => {\n fs.open(filePath, 'r', (err, fd) => {\n if (err) {\n reject(err);\n } else {\n resolve(fd);\n }\n });\n });\n}\n\nexport function fstat(filePath: string): Promise<fs.Stats> {\n return new Promise((resolve, reject) => {\n fs.stat(filePath, (err, stat) => {\n if (err) {\n reject(err);\n } else {\n resolve(stat);\n }\n });\n });\n}\n\nexport function fread(fd: number, position: number, length: number): Promise<Buffer> {\n const buffer = Buffer.alloc(length);\n return new Promise((resolve, reject) => {\n fs.read(fd, buffer, 0, length, position, (err, bytesRead, buf) => {\n if (err || bytesRead !== length) {\n reject(err || Error('read failed'));\n } else {\n resolve(buf);\n }\n });\n });\n}\n\nexport function fclose(fd: number): Promise<void> {\n return new Promise((resolve, reject) => {\n fs.close(fd, (err) => {\n if (err) {\n reject(err);\n } else {\n resolve();\n }\n });\n });\n}\n\nexport function oswrite(os: Writable, buf: Buffer): Promise<void> {\n return new Promise((resolve, reject) => {\n os.write(buf, (err) => {\n if (err) {\n reject(err);\n } else {\n resolve();\n }\n });\n });\n}\n\nexport function osclose(os: Writable): Promise<void> {\n return new Promise((resolve, reject) => {\n (os as any).close((err: any) => {\n if (err) {\n reject(err);\n } else {\n resolve();\n }\n });\n });\n}\n\nexport function osopen(path: string, opts?: WriteStreamOptions): Promise<fs.WriteStream> {\n return new Promise((resolve, reject) => {\n const outputStream = fs.createWriteStream(path, opts as any);\n outputStream.once('open', (fd) => resolve(outputStream));\n outputStream.once('error', (err) => reject(err));\n });\n}\n\n// Supports MQTT path wildcards\n// + all immediate children\n// # all descendents\nexport function fieldIndexOf(arr: string[][], elem: string[]): number {\n for (let j = 0; j < arr.length; j++) {\n if (arr[j].length > elem.length) {\n continue; // eslint-disable-line no-continue\n }\n let m = true;\n for (let i = 0; i < elem.length; i++) {\n if (arr[j][i] === elem[i] || arr[j][i] === '+' || arr[j][i] === '#') {\n continue; // eslint-disable-line no-continue\n }\n if (i >= arr[j].length && arr[j][arr[j].length - 1] === '#') {\n continue; // eslint-disable-line no-continue\n }\n m = false;\n break;\n }\n if (m) return j;\n }\n return -1;\n}\n\nexport function load(name: string): any {\n return (module || (global as any)).require(name);\n}\n"],"file":"util.js"}