@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.
- package/dist/dist.es5.min.js +1 -1
- package/dist/dist.es5.min.js.map +1 -1
- package/dist/dist.min.js +1 -1
- package/dist/dist.min.js.map +1 -1
- package/dist/es5/bundle.js +2 -2
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/index.js +9 -9
- package/dist/es5/parquet-loader.js +70 -19
- package/dist/es5/parquet-loader.js.map +1 -1
- package/dist/es5/parquet-writer.js +4 -4
- package/dist/es5/parquet-writer.js.map +1 -1
- package/dist/es5/parquetjs/codecs/index.js +6 -4
- package/dist/es5/parquetjs/codecs/index.js.map +1 -1
- package/dist/es5/parquetjs/codecs/plain.js +43 -41
- package/dist/es5/parquetjs/codecs/plain.js.map +1 -1
- package/dist/es5/parquetjs/codecs/rle.js +35 -25
- package/dist/es5/parquetjs/codecs/rle.js.map +1 -1
- package/dist/es5/parquetjs/compression.js +9 -7
- package/dist/es5/parquetjs/compression.js.map +1 -1
- package/dist/es5/parquetjs/file.js +15 -15
- package/dist/es5/parquetjs/file.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/BoundaryOrder.js +1 -1
- package/dist/es5/parquetjs/parquet-thrift/BsonType.js +45 -31
- package/dist/es5/parquetjs/parquet-thrift/BsonType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/ColumnChunk.js +152 -141
- package/dist/es5/parquetjs/parquet-thrift/ColumnChunk.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/ColumnIndex.js +160 -147
- package/dist/es5/parquetjs/parquet-thrift/ColumnIndex.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/ColumnMetaData.js +259 -248
- package/dist/es5/parquetjs/parquet-thrift/ColumnMetaData.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/ColumnOrder.js +79 -67
- package/dist/es5/parquetjs/parquet-thrift/ColumnOrder.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/CompressionCodec.js +1 -1
- package/dist/es5/parquetjs/parquet-thrift/ConvertedType.js +1 -1
- package/dist/es5/parquetjs/parquet-thrift/DataPageHeader.js +124 -113
- package/dist/es5/parquetjs/parquet-thrift/DataPageHeader.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/DataPageHeaderV2.js +169 -158
- package/dist/es5/parquetjs/parquet-thrift/DataPageHeaderV2.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/DateType.js +45 -31
- package/dist/es5/parquetjs/parquet-thrift/DateType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/DecimalType.js +79 -68
- package/dist/es5/parquetjs/parquet-thrift/DecimalType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/DictionaryPageHeader.js +94 -83
- package/dist/es5/parquetjs/parquet-thrift/DictionaryPageHeader.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/Encoding.js +1 -1
- package/dist/es5/parquetjs/parquet-thrift/EnumType.js +45 -31
- package/dist/es5/parquetjs/parquet-thrift/EnumType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/FieldRepetitionType.js +1 -1
- package/dist/es5/parquetjs/parquet-thrift/FileMetaData.js +182 -170
- package/dist/es5/parquetjs/parquet-thrift/FileMetaData.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/IndexPageHeader.js +45 -31
- package/dist/es5/parquetjs/parquet-thrift/IndexPageHeader.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/IntType.js +79 -68
- package/dist/es5/parquetjs/parquet-thrift/IntType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/JsonType.js +45 -31
- package/dist/es5/parquetjs/parquet-thrift/JsonType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/KeyValue.js +79 -68
- package/dist/es5/parquetjs/parquet-thrift/KeyValue.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/ListType.js +45 -31
- package/dist/es5/parquetjs/parquet-thrift/ListType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/LogicalType.js +343 -319
- package/dist/es5/parquetjs/parquet-thrift/LogicalType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/MapType.js +45 -31
- package/dist/es5/parquetjs/parquet-thrift/MapType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/MicroSeconds.js +45 -31
- package/dist/es5/parquetjs/parquet-thrift/MicroSeconds.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/MilliSeconds.js +45 -31
- package/dist/es5/parquetjs/parquet-thrift/MilliSeconds.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/NullType.js +45 -31
- package/dist/es5/parquetjs/parquet-thrift/NullType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/OffsetIndex.js +75 -64
- package/dist/es5/parquetjs/parquet-thrift/OffsetIndex.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/PageEncodingStats.js +94 -83
- package/dist/es5/parquetjs/parquet-thrift/PageEncodingStats.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/PageHeader.js +169 -158
- package/dist/es5/parquetjs/parquet-thrift/PageHeader.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/PageLocation.js +94 -83
- package/dist/es5/parquetjs/parquet-thrift/PageLocation.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/PageType.js +1 -1
- package/dist/es5/parquetjs/parquet-thrift/RowGroup.js +124 -113
- package/dist/es5/parquetjs/parquet-thrift/RowGroup.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/SchemaElement.js +199 -188
- package/dist/es5/parquetjs/parquet-thrift/SchemaElement.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/SortingColumn.js +94 -83
- package/dist/es5/parquetjs/parquet-thrift/SortingColumn.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/Statistics.js +135 -124
- package/dist/es5/parquetjs/parquet-thrift/Statistics.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/StringType.js +45 -31
- package/dist/es5/parquetjs/parquet-thrift/StringType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/TimeType.js +79 -68
- package/dist/es5/parquetjs/parquet-thrift/TimeType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/TimeUnit.js +101 -88
- package/dist/es5/parquetjs/parquet-thrift/TimeUnit.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/TimestampType.js +79 -68
- package/dist/es5/parquetjs/parquet-thrift/TimestampType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/Type.js +1 -1
- package/dist/es5/parquetjs/parquet-thrift/TypeDefinedOrder.js +45 -31
- package/dist/es5/parquetjs/parquet-thrift/TypeDefinedOrder.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/UUIDType.js +45 -31
- package/dist/es5/parquetjs/parquet-thrift/UUIDType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/index.js +43 -43
- package/dist/es5/parquetjs/reader.js +813 -276
- package/dist/es5/parquetjs/reader.js.map +1 -1
- package/dist/es5/parquetjs/schema/declare.js +11 -9
- package/dist/es5/parquetjs/schema/declare.js.map +1 -1
- package/dist/es5/parquetjs/schema/schema.js +87 -73
- package/dist/es5/parquetjs/schema/schema.js.map +1 -1
- package/dist/es5/parquetjs/schema/shred.js +95 -55
- package/dist/es5/parquetjs/schema/shred.js.map +1 -1
- package/dist/es5/parquetjs/schema/types.js +25 -25
- package/dist/es5/parquetjs/schema/types.js.map +1 -1
- package/dist/es5/parquetjs/util.js +71 -39
- package/dist/es5/parquetjs/util.js.map +1 -1
- package/dist/es5/parquetjs/writer.js +467 -200
- package/dist/es5/parquetjs/writer.js.map +1 -1
- package/dist/esm/parquet-loader.js +1 -1
- package/dist/esm/parquet-writer.js +1 -1
- package/dist/parquet-worker.js +1 -1
- package/dist/parquet-worker.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
@@ -8,7 +10,7 @@ exports.shredRecord = shredRecord;
|
|
|
8
10
|
exports.materializeRecords = materializeRecords;
|
|
9
11
|
Object.defineProperty(exports, "ParquetBuffer", {
|
|
10
12
|
enumerable: true,
|
|
11
|
-
get: function () {
|
|
13
|
+
get: function get() {
|
|
12
14
|
return _declare.ParquetBuffer;
|
|
13
15
|
}
|
|
14
16
|
});
|
|
@@ -17,30 +19,46 @@ var _declare = require("./declare");
|
|
|
17
19
|
|
|
18
20
|
var Types = _interopRequireWildcard(require("./types"));
|
|
19
21
|
|
|
20
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
22
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
23
|
+
|
|
24
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
25
|
+
|
|
26
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
27
|
+
|
|
28
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
21
29
|
|
|
22
|
-
function
|
|
30
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
23
31
|
|
|
24
32
|
function shredBuffer(schema) {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
33
|
+
var columnData = {};
|
|
34
|
+
|
|
35
|
+
var _iterator = _createForOfIteratorHelper(schema.fieldList),
|
|
36
|
+
_step;
|
|
37
|
+
|
|
38
|
+
try {
|
|
39
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
40
|
+
var field = _step.value;
|
|
41
|
+
columnData[field.key] = {
|
|
42
|
+
dlevels: [],
|
|
43
|
+
rlevels: [],
|
|
44
|
+
values: [],
|
|
45
|
+
count: 0
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
} catch (err) {
|
|
49
|
+
_iterator.e(err);
|
|
50
|
+
} finally {
|
|
51
|
+
_iterator.f();
|
|
34
52
|
}
|
|
35
53
|
|
|
36
54
|
return {
|
|
37
55
|
rowCount: 0,
|
|
38
|
-
columnData
|
|
56
|
+
columnData: columnData
|
|
39
57
|
};
|
|
40
58
|
}
|
|
41
59
|
|
|
42
60
|
function shredRecord(schema, record, buffer) {
|
|
43
|
-
|
|
61
|
+
var data = shredBuffer(schema).columnData;
|
|
44
62
|
shredRecordFields(schema.fields, record, data, 0, 0);
|
|
45
63
|
|
|
46
64
|
if (buffer.rowCount === 0) {
|
|
@@ -51,18 +69,28 @@ function shredRecord(schema, record, buffer) {
|
|
|
51
69
|
|
|
52
70
|
buffer.rowCount += 1;
|
|
53
71
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
72
|
+
var _iterator2 = _createForOfIteratorHelper(schema.fieldList),
|
|
73
|
+
_step2;
|
|
74
|
+
|
|
75
|
+
try {
|
|
76
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
77
|
+
var field = _step2.value;
|
|
78
|
+
Array.prototype.push.apply(buffer.columnData[field.key].rlevels, data[field.key].rlevels);
|
|
79
|
+
Array.prototype.push.apply(buffer.columnData[field.key].dlevels, data[field.key].dlevels);
|
|
80
|
+
Array.prototype.push.apply(buffer.columnData[field.key].values, data[field.key].values);
|
|
81
|
+
buffer.columnData[field.key].count += data[field.key].count;
|
|
82
|
+
}
|
|
83
|
+
} catch (err) {
|
|
84
|
+
_iterator2.e(err);
|
|
85
|
+
} finally {
|
|
86
|
+
_iterator2.f();
|
|
59
87
|
}
|
|
60
88
|
}
|
|
61
89
|
|
|
62
90
|
function shredRecordFields(fields, record, data, rLevel, dLevel) {
|
|
63
|
-
for (
|
|
64
|
-
|
|
65
|
-
|
|
91
|
+
for (var name in fields) {
|
|
92
|
+
var field = fields[name];
|
|
93
|
+
var values = [];
|
|
66
94
|
|
|
67
95
|
if (record && field.name in record && record[field.name] !== undefined && record[field.name] !== null) {
|
|
68
96
|
if (record[field.name].constructor === Array) {
|
|
@@ -92,8 +120,8 @@ function shredRecordFields(fields, record, data, rLevel, dLevel) {
|
|
|
92
120
|
continue;
|
|
93
121
|
}
|
|
94
122
|
|
|
95
|
-
for (
|
|
96
|
-
|
|
123
|
+
for (var i = 0; i < values.length; i++) {
|
|
124
|
+
var rlvl = i === 0 ? rLevel : field.rLevelMax;
|
|
97
125
|
|
|
98
126
|
if (field.isNested) {
|
|
99
127
|
shredRecordFields(field.fields, values[i], data, rlvl, field.dLevelMax);
|
|
@@ -108,11 +136,13 @@ function shredRecordFields(fields, record, data, rLevel, dLevel) {
|
|
|
108
136
|
}
|
|
109
137
|
|
|
110
138
|
function materializeRecords(schema, buffer) {
|
|
111
|
-
|
|
139
|
+
var records = [];
|
|
112
140
|
|
|
113
|
-
for (
|
|
141
|
+
for (var i = 0; i < buffer.rowCount; i++) {
|
|
142
|
+
records.push({});
|
|
143
|
+
}
|
|
114
144
|
|
|
115
|
-
for (
|
|
145
|
+
for (var key in buffer.columnData) {
|
|
116
146
|
materializeColumn(schema, buffer, key, records);
|
|
117
147
|
}
|
|
118
148
|
|
|
@@ -120,45 +150,55 @@ function materializeRecords(schema, buffer) {
|
|
|
120
150
|
}
|
|
121
151
|
|
|
122
152
|
function materializeColumn(schema, buffer, key, records) {
|
|
123
|
-
|
|
153
|
+
var data = buffer.columnData[key];
|
|
124
154
|
if (!data.count) return;
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
for (
|
|
131
|
-
|
|
132
|
-
|
|
155
|
+
var field = schema.findField(key);
|
|
156
|
+
var branch = schema.findFieldBranch(key);
|
|
157
|
+
var rLevels = new Array(field.rLevelMax + 1).fill(0);
|
|
158
|
+
var vIndex = 0;
|
|
159
|
+
|
|
160
|
+
for (var i = 0; i < data.count; i++) {
|
|
161
|
+
var dLevel = data.dlevels[i];
|
|
162
|
+
var rLevel = data.rlevels[i];
|
|
133
163
|
rLevels[rLevel]++;
|
|
134
164
|
rLevels.fill(0, rLevel + 1);
|
|
135
|
-
|
|
136
|
-
|
|
165
|
+
var rIndex = 0;
|
|
166
|
+
var record = records[rLevels[rIndex++] - 1];
|
|
137
167
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
if (dLevel < step.dLevelMax) break;
|
|
168
|
+
var _iterator3 = _createForOfIteratorHelper(branch),
|
|
169
|
+
_step3;
|
|
141
170
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
171
|
+
try {
|
|
172
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
173
|
+
var step = _step3.value;
|
|
174
|
+
if (step === field) break;
|
|
175
|
+
if (dLevel < step.dLevelMax) break;
|
|
146
176
|
|
|
147
|
-
|
|
177
|
+
if (step.repetitionType === 'REPEATED') {
|
|
178
|
+
if (!(step.name in record)) {
|
|
179
|
+
record[step.name] = [];
|
|
180
|
+
}
|
|
148
181
|
|
|
149
|
-
|
|
150
|
-
record[step.name].push({});
|
|
151
|
-
}
|
|
182
|
+
var _ix = rLevels[rIndex++];
|
|
152
183
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
184
|
+
while (record[step.name].length <= _ix) {
|
|
185
|
+
record[step.name].push({});
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
record = record[step.name][_ix];
|
|
189
|
+
} else {
|
|
190
|
+
record[step.name] = record[step.name] || {};
|
|
191
|
+
record = record[step.name];
|
|
192
|
+
}
|
|
157
193
|
}
|
|
194
|
+
} catch (err) {
|
|
195
|
+
_iterator3.e(err);
|
|
196
|
+
} finally {
|
|
197
|
+
_iterator3.f();
|
|
158
198
|
}
|
|
159
199
|
|
|
160
200
|
if (dLevel === field.dLevelMax) {
|
|
161
|
-
|
|
201
|
+
var value = Types.fromPrimitive(field.originalType || field.primitiveType, data.values[vIndex]);
|
|
162
202
|
vIndex++;
|
|
163
203
|
|
|
164
204
|
if (field.repetitionType === 'REPEATED') {
|
|
@@ -166,7 +206,7 @@ function materializeColumn(schema, buffer, key, records) {
|
|
|
166
206
|
record[field.name] = [];
|
|
167
207
|
}
|
|
168
208
|
|
|
169
|
-
|
|
209
|
+
var ix = rLevels[rIndex];
|
|
170
210
|
|
|
171
211
|
while (record[field.name].length <= ix) {
|
|
172
212
|
record[field.name].push(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/parquetjs/schema/shred.ts"],"names":["shredBuffer","schema","columnData","field","fieldList","key","dlevels","rlevels","values","count","rowCount","shredRecord","record","buffer","data","shredRecordFields","fields","Array","prototype","push","apply","rLevel","dLevel","name","undefined","constructor","length","Boolean","repetitionType","Error","isNested","i","rlvl","rLevelMax","dLevelMax","Types","toPrimitive","originalType","primitiveType","materializeRecords","records","materializeColumn","findField","branch","findFieldBranch","rLevels","fill","vIndex","rIndex","step","ix","value","fromPrimitive"],"mappings":"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","sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\n\nimport {ParquetBuffer, ParquetData, ParquetField, ParquetRecord} from './declare';\nimport {ParquetSchema} from './schema';\nimport * as Types from './types';\n\nexport {ParquetBuffer};\n\nexport function shredBuffer(schema: ParquetSchema): ParquetBuffer {\n const columnData: Record<string, ParquetData> = {};\n for (const field of schema.fieldList) {\n columnData[field.key] = {\n dlevels: [],\n rlevels: [],\n values: [],\n count: 0\n };\n }\n return {rowCount: 0, columnData};\n}\n\n/**\n * 'Shred' a record into a list of <value, repetition_level, definition_level>\n * tuples per column using the Google Dremel Algorithm..\n *\n * The buffer argument must point to an object into which the shredded record\n * will be returned. You may re-use the buffer for repeated calls to this function\n * to append to an existing buffer, as long as the schema is unchanged.\n *\n * The format in which the shredded records will be stored in the buffer is as\n * follows:\n *\n * buffer = {\n * columnData: [\n * 'my_col': {\n * dlevels: [d1, d2, .. dN],\n * rlevels: [r1, r2, .. rN],\n * values: [v1, v2, .. vN],\n * }, ...\n * ],\n * rowCount: X,\n * }\n */\nexport function shredRecord(schema: ParquetSchema, record: any, buffer: ParquetBuffer): void {\n /* shred the record, this may raise an exception */\n const data = shredBuffer(schema).columnData;\n\n shredRecordFields(schema.fields, record, data, 0, 0);\n\n /* if no error during shredding, add the shredded record to the buffer */\n if (buffer.rowCount === 0) {\n buffer.rowCount = 1;\n buffer.columnData = data;\n return;\n }\n buffer.rowCount += 1;\n for (const field of schema.fieldList) {\n Array.prototype.push.apply(buffer.columnData[field.key].rlevels, data[field.key].rlevels);\n Array.prototype.push.apply(buffer.columnData[field.key].dlevels, data[field.key].dlevels);\n Array.prototype.push.apply(buffer.columnData[field.key].values, data[field.key].values);\n buffer.columnData[field.key].count += data[field.key].count;\n }\n}\n\n// eslint-disable-next-line max-statements, complexity\nfunction shredRecordFields(\n fields: Record<string, ParquetField>,\n record: any,\n data: Record<string, ParquetData>,\n rLevel: number,\n dLevel: number\n) {\n for (const name in fields) {\n const field = fields[name];\n\n // fetch values\n let values: any[] = [];\n if (\n record &&\n field.name in record &&\n record[field.name] !== undefined &&\n record[field.name] !== null\n ) {\n if (record[field.name].constructor === Array) {\n values = record[field.name];\n } else {\n values.push(record[field.name]);\n }\n }\n // check values\n if (values.length === 0 && Boolean(record) && field.repetitionType === 'REQUIRED') {\n throw new Error(`missing required field: ${field.name}`);\n }\n if (values.length > 1 && field.repetitionType !== 'REPEATED') {\n throw new Error(`too many values for field: ${field.name}`);\n }\n\n // push null\n if (values.length === 0) {\n if (field.isNested) {\n shredRecordFields(field.fields!, null, data, rLevel, dLevel);\n } else {\n data[field.key].count += 1;\n data[field.key].rlevels.push(rLevel);\n data[field.key].dlevels.push(dLevel);\n }\n continue; // eslint-disable-line no-continue\n }\n\n // push values\n for (let i = 0; i < values.length; i++) {\n const rlvl = i === 0 ? rLevel : field.rLevelMax;\n if (field.isNested) {\n shredRecordFields(field.fields!, values[i], data, rlvl, field.dLevelMax);\n } else {\n data[field.key].count += 1;\n data[field.key].rlevels.push(rlvl);\n data[field.key].dlevels.push(field.dLevelMax);\n data[field.key].values.push(\n Types.toPrimitive((field.originalType || field.primitiveType)!, values[i])\n );\n }\n }\n }\n}\n\n/**\n * 'Materialize' a list of <value, repetition_level, definition_level>\n * tuples back to nested records (objects/arrays) using the Google Dremel\n * Algorithm..\n *\n * The buffer argument must point to an object with the following structure (i.e.\n * the same structure that is returned by shredRecords):\n *\n * buffer = {\n * columnData: [\n * 'my_col': {\n * dlevels: [d1, d2, .. dN],\n * rlevels: [r1, r2, .. rN],\n * values: [v1, v2, .. vN],\n * }, ...\n * ],\n * rowCount: X,\n * }\n */\nexport function materializeRecords(schema: ParquetSchema, buffer: ParquetBuffer): ParquetRecord[] {\n const records: ParquetRecord[] = [];\n for (let i = 0; i < buffer.rowCount; i++) records.push({});\n for (const key in buffer.columnData) {\n materializeColumn(schema, buffer, key, records);\n }\n return records;\n}\n\n// eslint-disable-next-line max-statements, complexity\nfunction materializeColumn(\n schema: ParquetSchema,\n buffer: ParquetBuffer,\n key: string,\n records: ParquetRecord[]\n) {\n const data = buffer.columnData[key];\n if (!data.count) return;\n\n const field = schema.findField(key);\n const branch = schema.findFieldBranch(key);\n\n // tslint:disable-next-line:prefer-array-literal\n const rLevels: number[] = new Array(field.rLevelMax + 1).fill(0);\n let vIndex = 0;\n for (let i = 0; i < data.count; i++) {\n const dLevel = data.dlevels[i];\n const rLevel = data.rlevels[i];\n rLevels[rLevel]++;\n rLevels.fill(0, rLevel + 1);\n\n let rIndex = 0;\n let record = records[rLevels[rIndex++] - 1];\n\n // Internal nodes\n for (const step of branch) {\n if (step === field) break;\n if (dLevel < step.dLevelMax) break;\n if (step.repetitionType === 'REPEATED') {\n if (!(step.name in record)) {\n // eslint-disable max-depth\n record[step.name] = [];\n }\n const ix = rLevels[rIndex++];\n while (record[step.name].length <= ix) {\n // eslint-disable max-depth\n record[step.name].push({});\n }\n record = record[step.name][ix];\n } else {\n record[step.name] = record[step.name] || {};\n record = record[step.name];\n }\n }\n\n // Leaf node\n if (dLevel === field.dLevelMax) {\n const value = Types.fromPrimitive(\n // @ts-ignore\n field.originalType || field.primitiveType,\n data.values[vIndex]\n );\n vIndex++;\n if (field.repetitionType === 'REPEATED') {\n if (!(field.name in record)) {\n // eslint-disable max-depth\n record[field.name] = [];\n }\n const ix = rLevels[rIndex];\n while (record[field.name].length <= ix) {\n // eslint-disable max-depth\n record[field.name].push(null);\n }\n record[field.name][ix] = value;\n } else {\n record[field.name] = value;\n }\n }\n }\n}\n"],"file":"shred.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/parquetjs/schema/shred.ts"],"names":["shredBuffer","schema","columnData","fieldList","field","key","dlevels","rlevels","values","count","rowCount","shredRecord","record","buffer","data","shredRecordFields","fields","Array","prototype","push","apply","rLevel","dLevel","name","undefined","constructor","length","Boolean","repetitionType","Error","isNested","i","rlvl","rLevelMax","dLevelMax","Types","toPrimitive","originalType","primitiveType","materializeRecords","records","materializeColumn","findField","branch","findFieldBranch","rLevels","fill","vIndex","rIndex","step","ix","value","fromPrimitive"],"mappings":"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","sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\n\nimport {ParquetBuffer, ParquetData, ParquetField, ParquetRecord} from './declare';\nimport {ParquetSchema} from './schema';\nimport * as Types from './types';\n\nexport {ParquetBuffer};\n\nexport function shredBuffer(schema: ParquetSchema): ParquetBuffer {\n const columnData: Record<string, ParquetData> = {};\n for (const field of schema.fieldList) {\n columnData[field.key] = {\n dlevels: [],\n rlevels: [],\n values: [],\n count: 0\n };\n }\n return {rowCount: 0, columnData};\n}\n\n/**\n * 'Shred' a record into a list of <value, repetition_level, definition_level>\n * tuples per column using the Google Dremel Algorithm..\n *\n * The buffer argument must point to an object into which the shredded record\n * will be returned. You may re-use the buffer for repeated calls to this function\n * to append to an existing buffer, as long as the schema is unchanged.\n *\n * The format in which the shredded records will be stored in the buffer is as\n * follows:\n *\n * buffer = {\n * columnData: [\n * 'my_col': {\n * dlevels: [d1, d2, .. dN],\n * rlevels: [r1, r2, .. rN],\n * values: [v1, v2, .. vN],\n * }, ...\n * ],\n * rowCount: X,\n * }\n */\nexport function shredRecord(schema: ParquetSchema, record: any, buffer: ParquetBuffer): void {\n /* shred the record, this may raise an exception */\n const data = shredBuffer(schema).columnData;\n\n shredRecordFields(schema.fields, record, data, 0, 0);\n\n /* if no error during shredding, add the shredded record to the buffer */\n if (buffer.rowCount === 0) {\n buffer.rowCount = 1;\n buffer.columnData = data;\n return;\n }\n buffer.rowCount += 1;\n for (const field of schema.fieldList) {\n Array.prototype.push.apply(buffer.columnData[field.key].rlevels, data[field.key].rlevels);\n Array.prototype.push.apply(buffer.columnData[field.key].dlevels, data[field.key].dlevels);\n Array.prototype.push.apply(buffer.columnData[field.key].values, data[field.key].values);\n buffer.columnData[field.key].count += data[field.key].count;\n }\n}\n\n// eslint-disable-next-line max-statements, complexity\nfunction shredRecordFields(\n fields: Record<string, ParquetField>,\n record: any,\n data: Record<string, ParquetData>,\n rLevel: number,\n dLevel: number\n) {\n for (const name in fields) {\n const field = fields[name];\n\n // fetch values\n let values: any[] = [];\n if (\n record &&\n field.name in record &&\n record[field.name] !== undefined &&\n record[field.name] !== null\n ) {\n if (record[field.name].constructor === Array) {\n values = record[field.name];\n } else {\n values.push(record[field.name]);\n }\n }\n // check values\n if (values.length === 0 && Boolean(record) && field.repetitionType === 'REQUIRED') {\n throw new Error(`missing required field: ${field.name}`);\n }\n if (values.length > 1 && field.repetitionType !== 'REPEATED') {\n throw new Error(`too many values for field: ${field.name}`);\n }\n\n // push null\n if (values.length === 0) {\n if (field.isNested) {\n shredRecordFields(field.fields!, null, data, rLevel, dLevel);\n } else {\n data[field.key].count += 1;\n data[field.key].rlevels.push(rLevel);\n data[field.key].dlevels.push(dLevel);\n }\n continue; // eslint-disable-line no-continue\n }\n\n // push values\n for (let i = 0; i < values.length; i++) {\n const rlvl = i === 0 ? rLevel : field.rLevelMax;\n if (field.isNested) {\n shredRecordFields(field.fields!, values[i], data, rlvl, field.dLevelMax);\n } else {\n data[field.key].count += 1;\n data[field.key].rlevels.push(rlvl);\n data[field.key].dlevels.push(field.dLevelMax);\n data[field.key].values.push(\n Types.toPrimitive((field.originalType || field.primitiveType)!, values[i])\n );\n }\n }\n }\n}\n\n/**\n * 'Materialize' a list of <value, repetition_level, definition_level>\n * tuples back to nested records (objects/arrays) using the Google Dremel\n * Algorithm..\n *\n * The buffer argument must point to an object with the following structure (i.e.\n * the same structure that is returned by shredRecords):\n *\n * buffer = {\n * columnData: [\n * 'my_col': {\n * dlevels: [d1, d2, .. dN],\n * rlevels: [r1, r2, .. rN],\n * values: [v1, v2, .. vN],\n * }, ...\n * ],\n * rowCount: X,\n * }\n */\nexport function materializeRecords(schema: ParquetSchema, buffer: ParquetBuffer): ParquetRecord[] {\n const records: ParquetRecord[] = [];\n for (let i = 0; i < buffer.rowCount; i++) records.push({});\n for (const key in buffer.columnData) {\n materializeColumn(schema, buffer, key, records);\n }\n return records;\n}\n\n// eslint-disable-next-line max-statements, complexity\nfunction materializeColumn(\n schema: ParquetSchema,\n buffer: ParquetBuffer,\n key: string,\n records: ParquetRecord[]\n) {\n const data = buffer.columnData[key];\n if (!data.count) return;\n\n const field = schema.findField(key);\n const branch = schema.findFieldBranch(key);\n\n // tslint:disable-next-line:prefer-array-literal\n const rLevels: number[] = new Array(field.rLevelMax + 1).fill(0);\n let vIndex = 0;\n for (let i = 0; i < data.count; i++) {\n const dLevel = data.dlevels[i];\n const rLevel = data.rlevels[i];\n rLevels[rLevel]++;\n rLevels.fill(0, rLevel + 1);\n\n let rIndex = 0;\n let record = records[rLevels[rIndex++] - 1];\n\n // Internal nodes\n for (const step of branch) {\n if (step === field) break;\n if (dLevel < step.dLevelMax) break;\n if (step.repetitionType === 'REPEATED') {\n if (!(step.name in record)) {\n // eslint-disable max-depth\n record[step.name] = [];\n }\n const ix = rLevels[rIndex++];\n while (record[step.name].length <= ix) {\n // eslint-disable max-depth\n record[step.name].push({});\n }\n record = record[step.name][ix];\n } else {\n record[step.name] = record[step.name] || {};\n record = record[step.name];\n }\n }\n\n // Leaf node\n if (dLevel === field.dLevelMax) {\n const value = Types.fromPrimitive(\n // @ts-ignore\n field.originalType || field.primitiveType,\n data.values[vIndex]\n );\n vIndex++;\n if (field.repetitionType === 'REPEATED') {\n if (!(field.name in record)) {\n // eslint-disable max-depth\n record[field.name] = [];\n }\n const ix = rLevels[rIndex];\n while (record[field.name].length <= ix) {\n // eslint-disable max-depth\n record[field.name].push(null);\n }\n record[field.name][ix] = value;\n } else {\n record[field.name] = value;\n }\n }\n }\n}\n"],"file":"shred.js"}
|
|
@@ -11,7 +11,7 @@ exports.PARQUET_LOGICAL_TYPES = void 0;
|
|
|
11
11
|
|
|
12
12
|
var _bson = _interopRequireDefault(require("bson"));
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
var PARQUET_LOGICAL_TYPES = {
|
|
15
15
|
BOOLEAN: {
|
|
16
16
|
primitiveType: 'BOOLEAN',
|
|
17
17
|
toPrimitive: toPrimitive_BOOLEAN,
|
|
@@ -172,7 +172,7 @@ function fromPrimitive_BOOLEAN(value) {
|
|
|
172
172
|
}
|
|
173
173
|
|
|
174
174
|
function toPrimitive_FLOAT(value) {
|
|
175
|
-
|
|
175
|
+
var v = parseFloat(value);
|
|
176
176
|
|
|
177
177
|
if (isNaN(v)) {
|
|
178
178
|
throw new Error("invalid value for FLOAT: ".concat(value));
|
|
@@ -182,7 +182,7 @@ function toPrimitive_FLOAT(value) {
|
|
|
182
182
|
}
|
|
183
183
|
|
|
184
184
|
function toPrimitive_DOUBLE(value) {
|
|
185
|
-
|
|
185
|
+
var v = parseFloat(value);
|
|
186
186
|
|
|
187
187
|
if (isNaN(v)) {
|
|
188
188
|
throw new Error("invalid value for DOUBLE: ".concat(value));
|
|
@@ -192,7 +192,7 @@ function toPrimitive_DOUBLE(value) {
|
|
|
192
192
|
}
|
|
193
193
|
|
|
194
194
|
function toPrimitive_INT8(value) {
|
|
195
|
-
|
|
195
|
+
var v = parseInt(value, 10);
|
|
196
196
|
|
|
197
197
|
if (v < -0x80 || v > 0x7f || isNaN(v)) {
|
|
198
198
|
throw new Error("invalid value for INT8: ".concat(value));
|
|
@@ -202,7 +202,7 @@ function toPrimitive_INT8(value) {
|
|
|
202
202
|
}
|
|
203
203
|
|
|
204
204
|
function toPrimitive_UINT8(value) {
|
|
205
|
-
|
|
205
|
+
var v = parseInt(value, 10);
|
|
206
206
|
|
|
207
207
|
if (v < 0 || v > 0xff || isNaN(v)) {
|
|
208
208
|
throw new Error("invalid value for UINT8: ".concat(value));
|
|
@@ -212,7 +212,7 @@ function toPrimitive_UINT8(value) {
|
|
|
212
212
|
}
|
|
213
213
|
|
|
214
214
|
function toPrimitive_INT16(value) {
|
|
215
|
-
|
|
215
|
+
var v = parseInt(value, 10);
|
|
216
216
|
|
|
217
217
|
if (v < -0x8000 || v > 0x7fff || isNaN(v)) {
|
|
218
218
|
throw new Error("invalid value for INT16: ".concat(value));
|
|
@@ -222,7 +222,7 @@ function toPrimitive_INT16(value) {
|
|
|
222
222
|
}
|
|
223
223
|
|
|
224
224
|
function toPrimitive_UINT16(value) {
|
|
225
|
-
|
|
225
|
+
var v = parseInt(value, 10);
|
|
226
226
|
|
|
227
227
|
if (v < 0 || v > 0xffff || isNaN(v)) {
|
|
228
228
|
throw new Error("invalid value for UINT16: ".concat(value));
|
|
@@ -232,7 +232,7 @@ function toPrimitive_UINT16(value) {
|
|
|
232
232
|
}
|
|
233
233
|
|
|
234
234
|
function toPrimitive_INT32(value) {
|
|
235
|
-
|
|
235
|
+
var v = parseInt(value, 10);
|
|
236
236
|
|
|
237
237
|
if (v < -0x80000000 || v > 0x7fffffff || isNaN(v)) {
|
|
238
238
|
throw new Error("invalid value for INT32: ".concat(value));
|
|
@@ -242,7 +242,7 @@ function toPrimitive_INT32(value) {
|
|
|
242
242
|
}
|
|
243
243
|
|
|
244
244
|
function toPrimitive_UINT32(value) {
|
|
245
|
-
|
|
245
|
+
var v = parseInt(value, 10);
|
|
246
246
|
|
|
247
247
|
if (v < 0 || v > 0xffffffffffff || isNaN(v)) {
|
|
248
248
|
throw new Error("invalid value for UINT32: ".concat(value));
|
|
@@ -252,7 +252,7 @@ function toPrimitive_UINT32(value) {
|
|
|
252
252
|
}
|
|
253
253
|
|
|
254
254
|
function toPrimitive_INT64(value) {
|
|
255
|
-
|
|
255
|
+
var v = parseInt(value, 10);
|
|
256
256
|
|
|
257
257
|
if (isNaN(v)) {
|
|
258
258
|
throw new Error("invalid value for INT64: ".concat(value));
|
|
@@ -262,7 +262,7 @@ function toPrimitive_INT64(value) {
|
|
|
262
262
|
}
|
|
263
263
|
|
|
264
264
|
function toPrimitive_UINT64(value) {
|
|
265
|
-
|
|
265
|
+
var v = parseInt(value, 10);
|
|
266
266
|
|
|
267
267
|
if (v < 0 || isNaN(v)) {
|
|
268
268
|
throw new Error("invalid value for UINT64: ".concat(value));
|
|
@@ -272,7 +272,7 @@ function toPrimitive_UINT64(value) {
|
|
|
272
272
|
}
|
|
273
273
|
|
|
274
274
|
function toPrimitive_INT96(value) {
|
|
275
|
-
|
|
275
|
+
var v = parseInt(value, 10);
|
|
276
276
|
|
|
277
277
|
if (isNaN(v)) {
|
|
278
278
|
throw new Error("invalid value for INT96: ".concat(value));
|
|
@@ -310,7 +310,7 @@ function fromPrimitive_BSON(value) {
|
|
|
310
310
|
}
|
|
311
311
|
|
|
312
312
|
function toPrimitive_TIME_MILLIS(value) {
|
|
313
|
-
|
|
313
|
+
var v = parseInt(value, 10);
|
|
314
314
|
|
|
315
315
|
if (v < 0 || v > 0xffffffffffffffff || isNaN(v)) {
|
|
316
316
|
throw new Error("invalid value for TIME_MILLIS: ".concat(value));
|
|
@@ -320,7 +320,7 @@ function toPrimitive_TIME_MILLIS(value) {
|
|
|
320
320
|
}
|
|
321
321
|
|
|
322
322
|
function toPrimitive_TIME_MICROS(value) {
|
|
323
|
-
|
|
323
|
+
var v = parseInt(value, 10);
|
|
324
324
|
|
|
325
325
|
if (v < 0 || isNaN(v)) {
|
|
326
326
|
throw new Error("invalid value for TIME_MICROS: ".concat(value));
|
|
@@ -329,7 +329,7 @@ function toPrimitive_TIME_MICROS(value) {
|
|
|
329
329
|
return v;
|
|
330
330
|
}
|
|
331
331
|
|
|
332
|
-
|
|
332
|
+
var kMillisPerDay = 86400000;
|
|
333
333
|
|
|
334
334
|
function toPrimitive_DATE(value) {
|
|
335
335
|
if (value instanceof Date) {
|
|
@@ -337,7 +337,7 @@ function toPrimitive_DATE(value) {
|
|
|
337
337
|
}
|
|
338
338
|
|
|
339
339
|
{
|
|
340
|
-
|
|
340
|
+
var v = parseInt(value, 10);
|
|
341
341
|
|
|
342
342
|
if (v < 0 || isNaN(v)) {
|
|
343
343
|
throw new Error("invalid value for DATE: ".concat(value));
|
|
@@ -357,7 +357,7 @@ function toPrimitive_TIMESTAMP_MILLIS(value) {
|
|
|
357
357
|
}
|
|
358
358
|
|
|
359
359
|
{
|
|
360
|
-
|
|
360
|
+
var v = parseInt(value, 10);
|
|
361
361
|
|
|
362
362
|
if (v < 0 || isNaN(v)) {
|
|
363
363
|
throw new Error("invalid value for TIMESTAMP_MILLIS: ".concat(value));
|
|
@@ -377,7 +377,7 @@ function toPrimitive_TIMESTAMP_MICROS(value) {
|
|
|
377
377
|
}
|
|
378
378
|
|
|
379
379
|
{
|
|
380
|
-
|
|
380
|
+
var v = parseInt(value, 10);
|
|
381
381
|
|
|
382
382
|
if (v < 0 || isNaN(v)) {
|
|
383
383
|
throw new Error("invalid value for TIMESTAMP_MICROS: ".concat(value));
|
|
@@ -396,7 +396,7 @@ function toPrimitive_INTERVAL(value) {
|
|
|
396
396
|
throw new Error('value for INTERVAL must be object { months: ..., days: ..., milliseconds: ... }');
|
|
397
397
|
}
|
|
398
398
|
|
|
399
|
-
|
|
399
|
+
var buf = Buffer.alloc(12);
|
|
400
400
|
buf.writeUInt32LE(value.months, 0);
|
|
401
401
|
buf.writeUInt32LE(value.days, 4);
|
|
402
402
|
buf.writeUInt32LE(value.milliseconds, 8);
|
|
@@ -404,13 +404,13 @@ function toPrimitive_INTERVAL(value) {
|
|
|
404
404
|
}
|
|
405
405
|
|
|
406
406
|
function fromPrimitive_INTERVAL(value) {
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
407
|
+
var buf = Buffer.from(value);
|
|
408
|
+
var months = buf.readUInt32LE(0);
|
|
409
|
+
var days = buf.readUInt32LE(4);
|
|
410
|
+
var millis = buf.readUInt32LE(8);
|
|
411
411
|
return {
|
|
412
|
-
months,
|
|
413
|
-
days,
|
|
412
|
+
months: months,
|
|
413
|
+
days: days,
|
|
414
414
|
milliseconds: millis
|
|
415
415
|
};
|
|
416
416
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/parquetjs/schema/types.ts"],"names":["PARQUET_LOGICAL_TYPES","BOOLEAN","primitiveType","toPrimitive","toPrimitive_BOOLEAN","fromPrimitive","fromPrimitive_BOOLEAN","INT32","toPrimitive_INT32","INT64","toPrimitive_INT64","INT96","toPrimitive_INT96","FLOAT","toPrimitive_FLOAT","DOUBLE","toPrimitive_DOUBLE","BYTE_ARRAY","toPrimitive_BYTE_ARRAY","FIXED_LEN_BYTE_ARRAY","UTF8","originalType","toPrimitive_UTF8","fromPrimitive_UTF8","TIME_MILLIS","toPrimitive_TIME_MILLIS","TIME_MICROS","toPrimitive_TIME_MICROS","DATE","toPrimitive_DATE","fromPrimitive_DATE","TIMESTAMP_MILLIS","toPrimitive_TIMESTAMP_MILLIS","fromPrimitive_TIMESTAMP_MILLIS","TIMESTAMP_MICROS","toPrimitive_TIMESTAMP_MICROS","fromPrimitive_TIMESTAMP_MICROS","UINT_8","toPrimitive_UINT8","UINT_16","toPrimitive_UINT16","UINT_32","toPrimitive_UINT32","UINT_64","toPrimitive_UINT64","INT_8","toPrimitive_INT8","INT_16","toPrimitive_INT16","INT_32","INT_64","JSON","toPrimitive_JSON","fromPrimitive_JSON","BSON","toPrimitive_BSON","fromPrimitive_BSON","INTERVAL","typeLength","toPrimitive_INTERVAL","fromPrimitive_INTERVAL","type","value","Error","Boolean","v","parseFloat","isNaN","parseInt","Buffer","from","toString","stringify","parse","serialize","deserialize","kMillisPerDay","Date","getTime","months","days","milliseconds","buf","alloc","writeUInt32LE","readUInt32LE","millis"],"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 */\nimport BSON from 'bson';\nimport {OriginalType, ParquetType, PrimitiveType} from './declare';\n\nexport interface ParquetTypeKit {\n primitiveType: PrimitiveType;\n originalType?: OriginalType;\n typeLength?: number;\n toPrimitive: Function;\n fromPrimitive?: Function;\n}\n\nexport const PARQUET_LOGICAL_TYPES: Record<ParquetType, ParquetTypeKit> = {\n BOOLEAN: {\n primitiveType: 'BOOLEAN',\n toPrimitive: toPrimitive_BOOLEAN,\n fromPrimitive: fromPrimitive_BOOLEAN\n },\n INT32: {\n primitiveType: 'INT32',\n toPrimitive: toPrimitive_INT32\n },\n INT64: {\n primitiveType: 'INT64',\n toPrimitive: toPrimitive_INT64\n },\n INT96: {\n primitiveType: 'INT96',\n toPrimitive: toPrimitive_INT96\n },\n FLOAT: {\n primitiveType: 'FLOAT',\n toPrimitive: toPrimitive_FLOAT\n },\n DOUBLE: {\n primitiveType: 'DOUBLE',\n toPrimitive: toPrimitive_DOUBLE\n },\n BYTE_ARRAY: {\n primitiveType: 'BYTE_ARRAY',\n toPrimitive: toPrimitive_BYTE_ARRAY\n },\n FIXED_LEN_BYTE_ARRAY: {\n primitiveType: 'FIXED_LEN_BYTE_ARRAY',\n toPrimitive: toPrimitive_BYTE_ARRAY\n },\n UTF8: {\n primitiveType: 'BYTE_ARRAY',\n originalType: 'UTF8',\n toPrimitive: toPrimitive_UTF8,\n fromPrimitive: fromPrimitive_UTF8\n },\n TIME_MILLIS: {\n primitiveType: 'INT32',\n originalType: 'TIME_MILLIS',\n toPrimitive: toPrimitive_TIME_MILLIS\n },\n TIME_MICROS: {\n primitiveType: 'INT64',\n originalType: 'TIME_MICROS',\n toPrimitive: toPrimitive_TIME_MICROS\n },\n DATE: {\n primitiveType: 'INT32',\n originalType: 'DATE',\n toPrimitive: toPrimitive_DATE,\n fromPrimitive: fromPrimitive_DATE\n },\n TIMESTAMP_MILLIS: {\n primitiveType: 'INT64',\n originalType: 'TIMESTAMP_MILLIS',\n toPrimitive: toPrimitive_TIMESTAMP_MILLIS,\n fromPrimitive: fromPrimitive_TIMESTAMP_MILLIS\n },\n TIMESTAMP_MICROS: {\n primitiveType: 'INT64',\n originalType: 'TIMESTAMP_MICROS',\n toPrimitive: toPrimitive_TIMESTAMP_MICROS,\n fromPrimitive: fromPrimitive_TIMESTAMP_MICROS\n },\n UINT_8: {\n primitiveType: 'INT32',\n originalType: 'UINT_8',\n toPrimitive: toPrimitive_UINT8\n },\n UINT_16: {\n primitiveType: 'INT32',\n originalType: 'UINT_16',\n toPrimitive: toPrimitive_UINT16\n },\n UINT_32: {\n primitiveType: 'INT32',\n originalType: 'UINT_32',\n toPrimitive: toPrimitive_UINT32\n },\n UINT_64: {\n primitiveType: 'INT64',\n originalType: 'UINT_64',\n toPrimitive: toPrimitive_UINT64\n },\n INT_8: {\n primitiveType: 'INT32',\n originalType: 'INT_8',\n toPrimitive: toPrimitive_INT8\n },\n INT_16: {\n primitiveType: 'INT32',\n originalType: 'INT_16',\n toPrimitive: toPrimitive_INT16\n },\n INT_32: {\n primitiveType: 'INT32',\n originalType: 'INT_32',\n toPrimitive: toPrimitive_INT32\n },\n INT_64: {\n primitiveType: 'INT64',\n originalType: 'INT_64',\n toPrimitive: toPrimitive_INT64\n },\n JSON: {\n primitiveType: 'BYTE_ARRAY',\n originalType: 'JSON',\n toPrimitive: toPrimitive_JSON,\n fromPrimitive: fromPrimitive_JSON\n },\n BSON: {\n primitiveType: 'BYTE_ARRAY',\n originalType: 'BSON',\n toPrimitive: toPrimitive_BSON,\n fromPrimitive: fromPrimitive_BSON\n },\n INTERVAL: {\n primitiveType: 'FIXED_LEN_BYTE_ARRAY',\n originalType: 'INTERVAL',\n typeLength: 12,\n toPrimitive: toPrimitive_INTERVAL,\n fromPrimitive: fromPrimitive_INTERVAL\n }\n};\n\n/**\n * Convert a value from it's native representation to the internal/underlying\n * primitive type\n */\nexport function toPrimitive(type: ParquetType, value: any) {\n if (!(type in PARQUET_LOGICAL_TYPES)) {\n throw new Error(`invalid type: ${type}`);\n }\n\n return PARQUET_LOGICAL_TYPES[type].toPrimitive(value);\n}\n\n/**\n * Convert a value from it's internal/underlying primitive representation to\n * the native representation\n */\nexport function fromPrimitive(type: ParquetType, value: any) {\n if (!(type in PARQUET_LOGICAL_TYPES)) {\n throw new Error(`invalid type: ${type}`);\n }\n\n if ('fromPrimitive' in PARQUET_LOGICAL_TYPES[type]) {\n return PARQUET_LOGICAL_TYPES[type].fromPrimitive?.(value);\n // tslint:disable-next-line:no-else-after-return\n }\n return value;\n}\n\nfunction toPrimitive_BOOLEAN(value: any) {\n return Boolean(value);\n}\n\nfunction fromPrimitive_BOOLEAN(value: any) {\n return Boolean(value);\n}\n\nfunction toPrimitive_FLOAT(value: any) {\n const v = parseFloat(value);\n if (isNaN(v)) {\n throw new Error(`invalid value for FLOAT: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_DOUBLE(value: any) {\n const v = parseFloat(value);\n if (isNaN(v)) {\n throw new Error(`invalid value for DOUBLE: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_INT8(value: any) {\n const v = parseInt(value, 10);\n if (v < -0x80 || v > 0x7f || isNaN(v)) {\n throw new Error(`invalid value for INT8: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_UINT8(value: any) {\n const v = parseInt(value, 10);\n if (v < 0 || v > 0xff || isNaN(v)) {\n throw new Error(`invalid value for UINT8: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_INT16(value: any) {\n const v = parseInt(value, 10);\n if (v < -0x8000 || v > 0x7fff || isNaN(v)) {\n throw new Error(`invalid value for INT16: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_UINT16(value: any) {\n const v = parseInt(value, 10);\n if (v < 0 || v > 0xffff || isNaN(v)) {\n throw new Error(`invalid value for UINT16: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_INT32(value: any) {\n const v = parseInt(value, 10);\n if (v < -0x80000000 || v > 0x7fffffff || isNaN(v)) {\n throw new Error(`invalid value for INT32: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_UINT32(value: any) {\n const v = parseInt(value, 10);\n if (v < 0 || v > 0xffffffffffff || isNaN(v)) {\n throw new Error(`invalid value for UINT32: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_INT64(value: any) {\n const v = parseInt(value, 10);\n if (isNaN(v)) {\n throw new Error(`invalid value for INT64: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_UINT64(value: any) {\n const v = parseInt(value, 10);\n if (v < 0 || isNaN(v)) {\n throw new Error(`invalid value for UINT64: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_INT96(value: any) {\n const v = parseInt(value, 10);\n if (isNaN(v)) {\n throw new Error(`invalid value for INT96: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_BYTE_ARRAY(value: any) {\n return Buffer.from(value);\n}\n\nfunction toPrimitive_UTF8(value: any) {\n return Buffer.from(value, 'utf8');\n}\n\nfunction fromPrimitive_UTF8(value: any) {\n return value.toString();\n}\n\nfunction toPrimitive_JSON(value: any) {\n return Buffer.from(JSON.stringify(value));\n}\n\nfunction fromPrimitive_JSON(value: any) {\n return JSON.parse(value);\n}\n\nfunction toPrimitive_BSON(value: any) {\n return Buffer.from(BSON.serialize(value));\n}\n\nfunction fromPrimitive_BSON(value: any) {\n return BSON.deserialize(value);\n}\n\nfunction toPrimitive_TIME_MILLIS(value: any) {\n const v = parseInt(value, 10);\n if (v < 0 || v > 0xffffffffffffffff || isNaN(v)) {\n throw new Error(`invalid value for TIME_MILLIS: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_TIME_MICROS(value: any) {\n const v = parseInt(value, 10);\n if (v < 0 || isNaN(v)) {\n throw new Error(`invalid value for TIME_MICROS: ${value}`);\n }\n\n return v;\n}\n\nconst kMillisPerDay = 86400000;\n\nfunction toPrimitive_DATE(value: any) {\n /* convert from date */\n if (value instanceof Date) {\n return value.getTime() / kMillisPerDay;\n }\n\n /* convert from integer */\n {\n const v = parseInt(value, 10);\n if (v < 0 || isNaN(v)) {\n throw new Error(`invalid value for DATE: ${value}`);\n }\n\n return v;\n }\n}\n\nfunction fromPrimitive_DATE(value: any) {\n return new Date(value * kMillisPerDay);\n}\n\nfunction toPrimitive_TIMESTAMP_MILLIS(value: any) {\n /* convert from date */\n if (value instanceof Date) {\n return value.getTime();\n }\n\n /* convert from integer */\n {\n const v = parseInt(value, 10);\n if (v < 0 || isNaN(v)) {\n throw new Error(`invalid value for TIMESTAMP_MILLIS: ${value}`);\n }\n\n return v;\n }\n}\n\nfunction fromPrimitive_TIMESTAMP_MILLIS(value: any) {\n return new Date(value);\n}\n\nfunction toPrimitive_TIMESTAMP_MICROS(value: any) {\n /* convert from date */\n if (value instanceof Date) {\n return value.getTime() * 1000;\n }\n\n /* convert from integer */\n {\n const v = parseInt(value, 10);\n if (v < 0 || isNaN(v)) {\n throw new Error(`invalid value for TIMESTAMP_MICROS: ${value}`);\n }\n\n return v;\n }\n}\n\nfunction fromPrimitive_TIMESTAMP_MICROS(value: any) {\n return new Date(value / 1000);\n}\n\nfunction toPrimitive_INTERVAL(value: any) {\n if (!value.months || !value.days || !value.milliseconds) {\n throw new Error(\n 'value for INTERVAL must be object { months: ..., days: ..., milliseconds: ... }'\n );\n }\n\n const buf = Buffer.alloc(12);\n\n buf.writeUInt32LE(value.months, 0);\n buf.writeUInt32LE(value.days, 4);\n buf.writeUInt32LE(value.milliseconds, 8);\n return buf;\n}\n\nfunction fromPrimitive_INTERVAL(value: any) {\n const buf = Buffer.from(value);\n const months = buf.readUInt32LE(0);\n const days = buf.readUInt32LE(4);\n const millis = buf.readUInt32LE(8);\n\n return {months, days, milliseconds: millis};\n}\n"],"file":"types.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/parquetjs/schema/types.ts"],"names":["PARQUET_LOGICAL_TYPES","BOOLEAN","primitiveType","toPrimitive","toPrimitive_BOOLEAN","fromPrimitive","fromPrimitive_BOOLEAN","INT32","toPrimitive_INT32","INT64","toPrimitive_INT64","INT96","toPrimitive_INT96","FLOAT","toPrimitive_FLOAT","DOUBLE","toPrimitive_DOUBLE","BYTE_ARRAY","toPrimitive_BYTE_ARRAY","FIXED_LEN_BYTE_ARRAY","UTF8","originalType","toPrimitive_UTF8","fromPrimitive_UTF8","TIME_MILLIS","toPrimitive_TIME_MILLIS","TIME_MICROS","toPrimitive_TIME_MICROS","DATE","toPrimitive_DATE","fromPrimitive_DATE","TIMESTAMP_MILLIS","toPrimitive_TIMESTAMP_MILLIS","fromPrimitive_TIMESTAMP_MILLIS","TIMESTAMP_MICROS","toPrimitive_TIMESTAMP_MICROS","fromPrimitive_TIMESTAMP_MICROS","UINT_8","toPrimitive_UINT8","UINT_16","toPrimitive_UINT16","UINT_32","toPrimitive_UINT32","UINT_64","toPrimitive_UINT64","INT_8","toPrimitive_INT8","INT_16","toPrimitive_INT16","INT_32","INT_64","JSON","toPrimitive_JSON","fromPrimitive_JSON","BSON","toPrimitive_BSON","fromPrimitive_BSON","INTERVAL","typeLength","toPrimitive_INTERVAL","fromPrimitive_INTERVAL","type","value","Error","Boolean","v","parseFloat","isNaN","parseInt","Buffer","from","toString","stringify","parse","serialize","deserialize","kMillisPerDay","Date","getTime","months","days","milliseconds","buf","alloc","writeUInt32LE","readUInt32LE","millis"],"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 */\nimport BSON from 'bson';\nimport {OriginalType, ParquetType, PrimitiveType} from './declare';\n\nexport interface ParquetTypeKit {\n primitiveType: PrimitiveType;\n originalType?: OriginalType;\n typeLength?: number;\n toPrimitive: Function;\n fromPrimitive?: Function;\n}\n\nexport const PARQUET_LOGICAL_TYPES: Record<ParquetType, ParquetTypeKit> = {\n BOOLEAN: {\n primitiveType: 'BOOLEAN',\n toPrimitive: toPrimitive_BOOLEAN,\n fromPrimitive: fromPrimitive_BOOLEAN\n },\n INT32: {\n primitiveType: 'INT32',\n toPrimitive: toPrimitive_INT32\n },\n INT64: {\n primitiveType: 'INT64',\n toPrimitive: toPrimitive_INT64\n },\n INT96: {\n primitiveType: 'INT96',\n toPrimitive: toPrimitive_INT96\n },\n FLOAT: {\n primitiveType: 'FLOAT',\n toPrimitive: toPrimitive_FLOAT\n },\n DOUBLE: {\n primitiveType: 'DOUBLE',\n toPrimitive: toPrimitive_DOUBLE\n },\n BYTE_ARRAY: {\n primitiveType: 'BYTE_ARRAY',\n toPrimitive: toPrimitive_BYTE_ARRAY\n },\n FIXED_LEN_BYTE_ARRAY: {\n primitiveType: 'FIXED_LEN_BYTE_ARRAY',\n toPrimitive: toPrimitive_BYTE_ARRAY\n },\n UTF8: {\n primitiveType: 'BYTE_ARRAY',\n originalType: 'UTF8',\n toPrimitive: toPrimitive_UTF8,\n fromPrimitive: fromPrimitive_UTF8\n },\n TIME_MILLIS: {\n primitiveType: 'INT32',\n originalType: 'TIME_MILLIS',\n toPrimitive: toPrimitive_TIME_MILLIS\n },\n TIME_MICROS: {\n primitiveType: 'INT64',\n originalType: 'TIME_MICROS',\n toPrimitive: toPrimitive_TIME_MICROS\n },\n DATE: {\n primitiveType: 'INT32',\n originalType: 'DATE',\n toPrimitive: toPrimitive_DATE,\n fromPrimitive: fromPrimitive_DATE\n },\n TIMESTAMP_MILLIS: {\n primitiveType: 'INT64',\n originalType: 'TIMESTAMP_MILLIS',\n toPrimitive: toPrimitive_TIMESTAMP_MILLIS,\n fromPrimitive: fromPrimitive_TIMESTAMP_MILLIS\n },\n TIMESTAMP_MICROS: {\n primitiveType: 'INT64',\n originalType: 'TIMESTAMP_MICROS',\n toPrimitive: toPrimitive_TIMESTAMP_MICROS,\n fromPrimitive: fromPrimitive_TIMESTAMP_MICROS\n },\n UINT_8: {\n primitiveType: 'INT32',\n originalType: 'UINT_8',\n toPrimitive: toPrimitive_UINT8\n },\n UINT_16: {\n primitiveType: 'INT32',\n originalType: 'UINT_16',\n toPrimitive: toPrimitive_UINT16\n },\n UINT_32: {\n primitiveType: 'INT32',\n originalType: 'UINT_32',\n toPrimitive: toPrimitive_UINT32\n },\n UINT_64: {\n primitiveType: 'INT64',\n originalType: 'UINT_64',\n toPrimitive: toPrimitive_UINT64\n },\n INT_8: {\n primitiveType: 'INT32',\n originalType: 'INT_8',\n toPrimitive: toPrimitive_INT8\n },\n INT_16: {\n primitiveType: 'INT32',\n originalType: 'INT_16',\n toPrimitive: toPrimitive_INT16\n },\n INT_32: {\n primitiveType: 'INT32',\n originalType: 'INT_32',\n toPrimitive: toPrimitive_INT32\n },\n INT_64: {\n primitiveType: 'INT64',\n originalType: 'INT_64',\n toPrimitive: toPrimitive_INT64\n },\n JSON: {\n primitiveType: 'BYTE_ARRAY',\n originalType: 'JSON',\n toPrimitive: toPrimitive_JSON,\n fromPrimitive: fromPrimitive_JSON\n },\n BSON: {\n primitiveType: 'BYTE_ARRAY',\n originalType: 'BSON',\n toPrimitive: toPrimitive_BSON,\n fromPrimitive: fromPrimitive_BSON\n },\n INTERVAL: {\n primitiveType: 'FIXED_LEN_BYTE_ARRAY',\n originalType: 'INTERVAL',\n typeLength: 12,\n toPrimitive: toPrimitive_INTERVAL,\n fromPrimitive: fromPrimitive_INTERVAL\n }\n};\n\n/**\n * Convert a value from it's native representation to the internal/underlying\n * primitive type\n */\nexport function toPrimitive(type: ParquetType, value: any) {\n if (!(type in PARQUET_LOGICAL_TYPES)) {\n throw new Error(`invalid type: ${type}`);\n }\n\n return PARQUET_LOGICAL_TYPES[type].toPrimitive(value);\n}\n\n/**\n * Convert a value from it's internal/underlying primitive representation to\n * the native representation\n */\nexport function fromPrimitive(type: ParquetType, value: any) {\n if (!(type in PARQUET_LOGICAL_TYPES)) {\n throw new Error(`invalid type: ${type}`);\n }\n\n if ('fromPrimitive' in PARQUET_LOGICAL_TYPES[type]) {\n return PARQUET_LOGICAL_TYPES[type].fromPrimitive?.(value);\n // tslint:disable-next-line:no-else-after-return\n }\n return value;\n}\n\nfunction toPrimitive_BOOLEAN(value: any) {\n return Boolean(value);\n}\n\nfunction fromPrimitive_BOOLEAN(value: any) {\n return Boolean(value);\n}\n\nfunction toPrimitive_FLOAT(value: any) {\n const v = parseFloat(value);\n if (isNaN(v)) {\n throw new Error(`invalid value for FLOAT: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_DOUBLE(value: any) {\n const v = parseFloat(value);\n if (isNaN(v)) {\n throw new Error(`invalid value for DOUBLE: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_INT8(value: any) {\n const v = parseInt(value, 10);\n if (v < -0x80 || v > 0x7f || isNaN(v)) {\n throw new Error(`invalid value for INT8: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_UINT8(value: any) {\n const v = parseInt(value, 10);\n if (v < 0 || v > 0xff || isNaN(v)) {\n throw new Error(`invalid value for UINT8: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_INT16(value: any) {\n const v = parseInt(value, 10);\n if (v < -0x8000 || v > 0x7fff || isNaN(v)) {\n throw new Error(`invalid value for INT16: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_UINT16(value: any) {\n const v = parseInt(value, 10);\n if (v < 0 || v > 0xffff || isNaN(v)) {\n throw new Error(`invalid value for UINT16: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_INT32(value: any) {\n const v = parseInt(value, 10);\n if (v < -0x80000000 || v > 0x7fffffff || isNaN(v)) {\n throw new Error(`invalid value for INT32: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_UINT32(value: any) {\n const v = parseInt(value, 10);\n if (v < 0 || v > 0xffffffffffff || isNaN(v)) {\n throw new Error(`invalid value for UINT32: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_INT64(value: any) {\n const v = parseInt(value, 10);\n if (isNaN(v)) {\n throw new Error(`invalid value for INT64: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_UINT64(value: any) {\n const v = parseInt(value, 10);\n if (v < 0 || isNaN(v)) {\n throw new Error(`invalid value for UINT64: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_INT96(value: any) {\n const v = parseInt(value, 10);\n if (isNaN(v)) {\n throw new Error(`invalid value for INT96: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_BYTE_ARRAY(value: any) {\n return Buffer.from(value);\n}\n\nfunction toPrimitive_UTF8(value: any) {\n return Buffer.from(value, 'utf8');\n}\n\nfunction fromPrimitive_UTF8(value: any) {\n return value.toString();\n}\n\nfunction toPrimitive_JSON(value: any) {\n return Buffer.from(JSON.stringify(value));\n}\n\nfunction fromPrimitive_JSON(value: any) {\n return JSON.parse(value);\n}\n\nfunction toPrimitive_BSON(value: any) {\n return Buffer.from(BSON.serialize(value));\n}\n\nfunction fromPrimitive_BSON(value: any) {\n return BSON.deserialize(value);\n}\n\nfunction toPrimitive_TIME_MILLIS(value: any) {\n const v = parseInt(value, 10);\n if (v < 0 || v > 0xffffffffffffffff || isNaN(v)) {\n throw new Error(`invalid value for TIME_MILLIS: ${value}`);\n }\n\n return v;\n}\n\nfunction toPrimitive_TIME_MICROS(value: any) {\n const v = parseInt(value, 10);\n if (v < 0 || isNaN(v)) {\n throw new Error(`invalid value for TIME_MICROS: ${value}`);\n }\n\n return v;\n}\n\nconst kMillisPerDay = 86400000;\n\nfunction toPrimitive_DATE(value: any) {\n /* convert from date */\n if (value instanceof Date) {\n return value.getTime() / kMillisPerDay;\n }\n\n /* convert from integer */\n {\n const v = parseInt(value, 10);\n if (v < 0 || isNaN(v)) {\n throw new Error(`invalid value for DATE: ${value}`);\n }\n\n return v;\n }\n}\n\nfunction fromPrimitive_DATE(value: any) {\n return new Date(value * kMillisPerDay);\n}\n\nfunction toPrimitive_TIMESTAMP_MILLIS(value: any) {\n /* convert from date */\n if (value instanceof Date) {\n return value.getTime();\n }\n\n /* convert from integer */\n {\n const v = parseInt(value, 10);\n if (v < 0 || isNaN(v)) {\n throw new Error(`invalid value for TIMESTAMP_MILLIS: ${value}`);\n }\n\n return v;\n }\n}\n\nfunction fromPrimitive_TIMESTAMP_MILLIS(value: any) {\n return new Date(value);\n}\n\nfunction toPrimitive_TIMESTAMP_MICROS(value: any) {\n /* convert from date */\n if (value instanceof Date) {\n return value.getTime() * 1000;\n }\n\n /* convert from integer */\n {\n const v = parseInt(value, 10);\n if (v < 0 || isNaN(v)) {\n throw new Error(`invalid value for TIMESTAMP_MICROS: ${value}`);\n }\n\n return v;\n }\n}\n\nfunction fromPrimitive_TIMESTAMP_MICROS(value: any) {\n return new Date(value / 1000);\n}\n\nfunction toPrimitive_INTERVAL(value: any) {\n if (!value.months || !value.days || !value.milliseconds) {\n throw new Error(\n 'value for INTERVAL must be object { months: ..., days: ..., milliseconds: ... }'\n );\n }\n\n const buf = Buffer.alloc(12);\n\n buf.writeUInt32LE(value.months, 0);\n buf.writeUInt32LE(value.days, 4);\n buf.writeUInt32LE(value.milliseconds, 8);\n return buf;\n}\n\nfunction fromPrimitive_INTERVAL(value: any) {\n const buf = Buffer.from(value);\n const months = buf.readUInt32LE(0);\n const days = buf.readUInt32LE(4);\n const millis = buf.readUInt32LE(8);\n\n return {months, days, milliseconds: millis};\n}\n"],"file":"types.js"}
|