@loaders.gl/parquet 3.0.12 → 3.1.0-alpha.4
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.min.js +7 -18
- package/dist/dist.min.js.map +1 -1
- package/dist/es5/bundle.js +2 -4
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/constants.js +17 -0
- package/dist/es5/constants.js.map +1 -0
- package/dist/es5/index.js +53 -21
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/convert-schema.js +82 -0
- package/dist/es5/lib/convert-schema.js.map +1 -0
- package/dist/es5/lib/parse-parquet.js +173 -0
- package/dist/es5/lib/parse-parquet.js.map +1 -0
- package/dist/es5/lib/read-array-buffer.js +53 -0
- package/dist/es5/lib/read-array-buffer.js.map +1 -0
- package/dist/es5/parquet-loader.js +6 -79
- package/dist/es5/parquet-loader.js.map +1 -1
- package/dist/es5/parquet-writer.js +1 -1
- package/dist/es5/parquet-writer.js.map +1 -1
- package/dist/es5/parquetjs/codecs/dictionary.js +30 -0
- package/dist/es5/parquetjs/codecs/dictionary.js.map +1 -0
- package/dist/es5/parquetjs/codecs/index.js +10 -0
- package/dist/es5/parquetjs/codecs/index.js.map +1 -1
- package/dist/es5/parquetjs/codecs/rle.js +2 -2
- package/dist/es5/parquetjs/codecs/rle.js.map +1 -1
- package/dist/es5/parquetjs/compression.js +138 -104
- package/dist/es5/parquetjs/compression.js.map +1 -1
- package/dist/es5/parquetjs/{writer.js → encoder/writer.js} +397 -228
- package/dist/es5/parquetjs/encoder/writer.js.map +1 -0
- package/dist/es5/parquetjs/parquet-thrift/CompressionCodec.js +1 -0
- package/dist/es5/parquetjs/parquet-thrift/CompressionCodec.js.map +1 -1
- package/dist/es5/parquetjs/parser/decoders.js +495 -0
- package/dist/es5/parquetjs/parser/decoders.js.map +1 -0
- package/dist/es5/parquetjs/parser/parquet-cursor.js +215 -0
- package/dist/es5/parquetjs/parser/parquet-cursor.js.map +1 -0
- package/dist/es5/parquetjs/parser/parquet-envelope-reader.js +452 -0
- package/dist/es5/parquetjs/parser/parquet-envelope-reader.js.map +1 -0
- package/dist/es5/parquetjs/parser/parquet-reader.js +413 -0
- package/dist/es5/parquetjs/parser/parquet-reader.js.map +1 -0
- package/dist/es5/parquetjs/schema/declare.js.map +1 -1
- package/dist/es5/parquetjs/schema/schema.js +2 -0
- package/dist/es5/parquetjs/schema/schema.js.map +1 -1
- package/dist/es5/parquetjs/schema/shred.js +2 -1
- package/dist/es5/parquetjs/schema/shred.js.map +1 -1
- package/dist/es5/parquetjs/schema/types.js +79 -4
- package/dist/es5/parquetjs/schema/types.js.map +1 -1
- package/dist/es5/parquetjs/utils/buffer-utils.js +21 -0
- package/dist/es5/parquetjs/utils/buffer-utils.js.map +1 -0
- package/dist/es5/parquetjs/utils/file-utils.js +108 -0
- package/dist/es5/parquetjs/utils/file-utils.js.map +1 -0
- package/dist/es5/parquetjs/{util.js → utils/read-utils.js} +13 -113
- package/dist/es5/parquetjs/utils/read-utils.js.map +1 -0
- package/dist/esm/bundle.js +2 -4
- package/dist/esm/bundle.js.map +1 -1
- package/dist/esm/constants.js +6 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/index.js +14 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/convert-schema.js +71 -0
- package/dist/esm/lib/convert-schema.js.map +1 -0
- package/dist/esm/lib/parse-parquet.js +28 -0
- package/dist/esm/lib/parse-parquet.js.map +1 -0
- package/dist/esm/lib/read-array-buffer.js +9 -0
- package/dist/esm/lib/read-array-buffer.js.map +1 -0
- package/dist/esm/parquet-loader.js +4 -24
- package/dist/esm/parquet-loader.js.map +1 -1
- package/dist/esm/parquet-writer.js +1 -1
- package/dist/esm/parquet-writer.js.map +1 -1
- package/dist/esm/parquetjs/codecs/dictionary.js +12 -0
- package/dist/esm/parquetjs/codecs/dictionary.js.map +1 -0
- package/dist/esm/parquetjs/codecs/index.js +9 -0
- package/dist/esm/parquetjs/codecs/index.js.map +1 -1
- package/dist/esm/parquetjs/codecs/rle.js +2 -2
- package/dist/esm/parquetjs/codecs/rle.js.map +1 -1
- package/dist/esm/parquetjs/compression.js +54 -105
- package/dist/esm/parquetjs/compression.js.map +1 -1
- package/dist/esm/parquetjs/{writer.js → encoder/writer.js} +32 -35
- package/dist/esm/parquetjs/encoder/writer.js.map +1 -0
- package/dist/esm/parquetjs/parquet-thrift/CompressionCodec.js +1 -0
- package/dist/esm/parquetjs/parquet-thrift/CompressionCodec.js.map +1 -1
- package/dist/esm/parquetjs/parser/decoders.js +300 -0
- package/dist/esm/parquetjs/parser/decoders.js.map +1 -0
- package/dist/esm/parquetjs/parser/parquet-cursor.js +90 -0
- package/dist/esm/parquetjs/parser/parquet-cursor.js.map +1 -0
- package/dist/esm/parquetjs/parser/parquet-envelope-reader.js +164 -0
- package/dist/esm/parquetjs/parser/parquet-envelope-reader.js.map +1 -0
- package/dist/esm/parquetjs/parser/parquet-reader.js +133 -0
- package/dist/esm/parquetjs/parser/parquet-reader.js.map +1 -0
- package/dist/esm/parquetjs/schema/declare.js.map +1 -1
- package/dist/esm/parquetjs/schema/schema.js +2 -0
- package/dist/esm/parquetjs/schema/schema.js.map +1 -1
- package/dist/esm/parquetjs/schema/shred.js +2 -1
- package/dist/esm/parquetjs/schema/shred.js.map +1 -1
- package/dist/esm/parquetjs/schema/types.js +78 -4
- package/dist/esm/parquetjs/schema/types.js.map +1 -1
- package/dist/esm/parquetjs/utils/buffer-utils.js +12 -0
- package/dist/esm/parquetjs/utils/buffer-utils.js.map +1 -0
- package/dist/esm/parquetjs/utils/file-utils.js +79 -0
- package/dist/esm/parquetjs/utils/file-utils.js.map +1 -0
- package/dist/esm/parquetjs/{util.js → utils/read-utils.js} +11 -89
- package/dist/esm/parquetjs/utils/read-utils.js.map +1 -0
- package/dist/parquet-worker.js +7 -18
- package/dist/parquet-worker.js.map +1 -1
- package/package.json +10 -10
- package/src/bundle.ts +2 -3
- package/src/constants.ts +17 -0
- package/src/index.ts +30 -4
- package/src/lib/convert-schema.ts +95 -0
- package/src/lib/parse-parquet.ts +27 -0
- package/{dist/es5/libs → src/lib}/read-array-buffer.ts +0 -0
- package/src/parquet-loader.ts +4 -24
- package/src/parquetjs/codecs/dictionary.ts +11 -0
- package/src/parquetjs/codecs/index.ts +13 -0
- package/src/parquetjs/codecs/rle.ts +4 -2
- package/src/parquetjs/compression.ts +89 -50
- package/src/parquetjs/{writer.ts → encoder/writer.ts} +46 -45
- package/src/parquetjs/parquet-thrift/CompressionCodec.ts +2 -1
- package/src/parquetjs/parser/decoders.ts +448 -0
- package/src/parquetjs/parser/parquet-cursor.ts +94 -0
- package/src/parquetjs/parser/parquet-envelope-reader.ts +210 -0
- package/src/parquetjs/parser/parquet-reader.ts +179 -0
- package/src/parquetjs/schema/declare.ts +48 -2
- package/src/parquetjs/schema/schema.ts +2 -0
- package/src/parquetjs/schema/shred.ts +3 -1
- package/src/parquetjs/schema/types.ts +82 -5
- package/src/parquetjs/utils/buffer-utils.ts +18 -0
- package/src/parquetjs/utils/file-utils.ts +96 -0
- package/src/parquetjs/{util.ts → utils/read-utils.ts} +13 -110
- package/dist/dist.es5.min.js +0 -51
- package/dist/dist.es5.min.js.map +0 -1
- package/dist/es5/parquetjs/compression.ts.disabled +0 -105
- package/dist/es5/parquetjs/reader.js +0 -1078
- package/dist/es5/parquetjs/reader.js.map +0 -1
- package/dist/es5/parquetjs/util.js.map +0 -1
- package/dist/es5/parquetjs/writer.js.map +0 -1
- package/dist/esm/libs/read-array-buffer.ts +0 -31
- package/dist/esm/parquetjs/compression.ts.disabled +0 -105
- package/dist/esm/parquetjs/reader.js +0 -524
- package/dist/esm/parquetjs/reader.js.map +0 -1
- package/dist/esm/parquetjs/util.js.map +0 -1
- package/dist/esm/parquetjs/writer.js.map +0 -1
- package/src/libs/read-array-buffer.ts +0 -31
- package/src/parquetjs/compression.ts.disabled +0 -105
- package/src/parquetjs/reader.ts +0 -707
|
@@ -1 +1 @@
|
|
|
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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/parquetjs/schema/shred.ts"],"names":["shredBuffer","schema","columnData","fieldList","field","key","dlevels","rlevels","values","pageHeaders","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 pageHeaders: [],\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 field\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"}
|
|
@@ -137,19 +137,43 @@ var PARQUET_LOGICAL_TYPES = {
|
|
|
137
137
|
typeLength: 12,
|
|
138
138
|
toPrimitive: toPrimitive_INTERVAL,
|
|
139
139
|
fromPrimitive: fromPrimitive_INTERVAL
|
|
140
|
+
},
|
|
141
|
+
DECIMAL_INT32: {
|
|
142
|
+
primitiveType: 'INT32',
|
|
143
|
+
originalType: 'DECIMAL_INT32',
|
|
144
|
+
toPrimitive: decimalToPrimitive_INT32,
|
|
145
|
+
fromPrimitive: decimalFromPrimitive_INT
|
|
146
|
+
},
|
|
147
|
+
DECIMAL_INT64: {
|
|
148
|
+
primitiveType: 'INT64',
|
|
149
|
+
originalType: 'DECIMAL_INT64',
|
|
150
|
+
toPrimitive: decimalToPrimitive_INT64,
|
|
151
|
+
fromPrimitive: decimalFromPrimitive_INT
|
|
152
|
+
},
|
|
153
|
+
DECIMAL_BYTE_ARRAY: {
|
|
154
|
+
primitiveType: 'BYTE_ARRAY',
|
|
155
|
+
originalType: 'DECIMAL_BYTE_ARRAY',
|
|
156
|
+
toPrimitive: decimalToPrimitive_BYTE_ARRAY,
|
|
157
|
+
fromPrimitive: decimalFromPrimitive_BYTE_ARRAY
|
|
158
|
+
},
|
|
159
|
+
DECIMAL_FIXED_LEN_BYTE_ARRAY: {
|
|
160
|
+
primitiveType: 'FIXED_LEN_BYTE_ARRAY',
|
|
161
|
+
originalType: 'DECIMAL_FIXED_LEN_BYTE_ARRAY',
|
|
162
|
+
toPrimitive: decimalToPrimitive_BYTE_ARRAY,
|
|
163
|
+
fromPrimitive: decimalFromPrimitive_BYTE_ARRAY
|
|
140
164
|
}
|
|
141
165
|
};
|
|
142
166
|
exports.PARQUET_LOGICAL_TYPES = PARQUET_LOGICAL_TYPES;
|
|
143
167
|
|
|
144
|
-
function toPrimitive(type, value) {
|
|
168
|
+
function toPrimitive(type, value, field) {
|
|
145
169
|
if (!(type in PARQUET_LOGICAL_TYPES)) {
|
|
146
170
|
throw new Error("invalid type: ".concat(type));
|
|
147
171
|
}
|
|
148
172
|
|
|
149
|
-
return PARQUET_LOGICAL_TYPES[type].toPrimitive(value);
|
|
173
|
+
return PARQUET_LOGICAL_TYPES[type].toPrimitive(value, field);
|
|
150
174
|
}
|
|
151
175
|
|
|
152
|
-
function fromPrimitive(type, value) {
|
|
176
|
+
function fromPrimitive(type, value, field) {
|
|
153
177
|
if (!(type in PARQUET_LOGICAL_TYPES)) {
|
|
154
178
|
throw new Error("invalid type: ".concat(type));
|
|
155
179
|
}
|
|
@@ -157,7 +181,7 @@ function fromPrimitive(type, value) {
|
|
|
157
181
|
if ('fromPrimitive' in PARQUET_LOGICAL_TYPES[type]) {
|
|
158
182
|
var _PARQUET_LOGICAL_TYPE, _PARQUET_LOGICAL_TYPE2;
|
|
159
183
|
|
|
160
|
-
return (_PARQUET_LOGICAL_TYPE = (_PARQUET_LOGICAL_TYPE2 = PARQUET_LOGICAL_TYPES[type]).fromPrimitive) === null || _PARQUET_LOGICAL_TYPE === void 0 ? void 0 : _PARQUET_LOGICAL_TYPE.call(_PARQUET_LOGICAL_TYPE2, value);
|
|
184
|
+
return (_PARQUET_LOGICAL_TYPE = (_PARQUET_LOGICAL_TYPE2 = PARQUET_LOGICAL_TYPES[type]).fromPrimitive) === null || _PARQUET_LOGICAL_TYPE === void 0 ? void 0 : _PARQUET_LOGICAL_TYPE.call(_PARQUET_LOGICAL_TYPE2, value, field);
|
|
161
185
|
}
|
|
162
186
|
|
|
163
187
|
return value;
|
|
@@ -241,6 +265,17 @@ function toPrimitive_INT32(value) {
|
|
|
241
265
|
return v;
|
|
242
266
|
}
|
|
243
267
|
|
|
268
|
+
function decimalToPrimitive_INT32(value, field) {
|
|
269
|
+
var primitiveValue = value * Math.pow(10, field.scale || 0);
|
|
270
|
+
var v = Math.round(primitiveValue * Math.pow(10, -field.presision) % 1 * Math.pow(10, field.presision));
|
|
271
|
+
|
|
272
|
+
if (v < -0x80000000 || v > 0x7fffffff || isNaN(v)) {
|
|
273
|
+
throw new Error("invalid value for INT32: ".concat(value));
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
return v;
|
|
277
|
+
}
|
|
278
|
+
|
|
244
279
|
function toPrimitive_UINT32(value) {
|
|
245
280
|
var v = parseInt(value, 10);
|
|
246
281
|
|
|
@@ -261,6 +296,17 @@ function toPrimitive_INT64(value) {
|
|
|
261
296
|
return v;
|
|
262
297
|
}
|
|
263
298
|
|
|
299
|
+
function decimalToPrimitive_INT64(value, field) {
|
|
300
|
+
var primitiveValue = value * Math.pow(10, field.scale || 0);
|
|
301
|
+
var v = Math.round(primitiveValue * Math.pow(10, -field.presision) % 1 * Math.pow(10, field.presision));
|
|
302
|
+
|
|
303
|
+
if (isNaN(v)) {
|
|
304
|
+
throw new Error("invalid value for INT64: ".concat(value));
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
return v;
|
|
308
|
+
}
|
|
309
|
+
|
|
264
310
|
function toPrimitive_UINT64(value) {
|
|
265
311
|
var v = parseInt(value, 10);
|
|
266
312
|
|
|
@@ -285,6 +331,10 @@ function toPrimitive_BYTE_ARRAY(value) {
|
|
|
285
331
|
return Buffer.from(value);
|
|
286
332
|
}
|
|
287
333
|
|
|
334
|
+
function decimalToPrimitive_BYTE_ARRAY(value) {
|
|
335
|
+
return Buffer.from(value);
|
|
336
|
+
}
|
|
337
|
+
|
|
288
338
|
function toPrimitive_UTF8(value) {
|
|
289
339
|
return Buffer.from(value, 'utf8');
|
|
290
340
|
}
|
|
@@ -414,4 +464,29 @@ function fromPrimitive_INTERVAL(value) {
|
|
|
414
464
|
milliseconds: millis
|
|
415
465
|
};
|
|
416
466
|
}
|
|
467
|
+
|
|
468
|
+
function decimalFromPrimitive_INT(value, field) {
|
|
469
|
+
var presisionInt = Math.round(value * Math.pow(10, -field.presision) % 1 * Math.pow(10, field.presision));
|
|
470
|
+
return presisionInt * Math.pow(10, -(field.scale || 0));
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
function decimalFromPrimitive_BYTE_ARRAY(value, field) {
|
|
474
|
+
var number = 0;
|
|
475
|
+
|
|
476
|
+
if (value.length <= 4) {
|
|
477
|
+
for (var i = 0; i < value.length; i++) {
|
|
478
|
+
var component = value[i] << 8 * (value.length - i - 1);
|
|
479
|
+
number += component;
|
|
480
|
+
}
|
|
481
|
+
} else {
|
|
482
|
+
for (var _i = 0; _i < value.length; _i++) {
|
|
483
|
+
var _component = value[_i] * Math.pow(2, 8 * (value.length - 1 - _i));
|
|
484
|
+
|
|
485
|
+
number += _component;
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
var presisionInt = Math.round(number * Math.pow(10, -field.presision) % 1 * Math.pow(10, field.presision));
|
|
490
|
+
return presisionInt * Math.pow(10, -(field.scale || 0));
|
|
491
|
+
}
|
|
417
492
|
//# sourceMappingURL=types.js.map
|
|
@@ -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","DECIMAL_INT32","decimalToPrimitive_INT32","decimalFromPrimitive_INT","DECIMAL_INT64","decimalToPrimitive_INT64","DECIMAL_BYTE_ARRAY","decimalToPrimitive_BYTE_ARRAY","decimalFromPrimitive_BYTE_ARRAY","DECIMAL_FIXED_LEN_BYTE_ARRAY","type","value","field","Error","Boolean","v","parseFloat","isNaN","parseInt","primitiveValue","scale","Math","round","presision","Buffer","from","toString","stringify","parse","serialize","deserialize","kMillisPerDay","Date","getTime","months","days","milliseconds","buf","alloc","writeUInt32LE","readUInt32LE","millis","presisionInt","number","length","i","component"],"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, ParquetField, 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 DECIMAL_INT32: {\n primitiveType: 'INT32',\n originalType: 'DECIMAL_INT32',\n toPrimitive: decimalToPrimitive_INT32,\n fromPrimitive: decimalFromPrimitive_INT\n },\n DECIMAL_INT64: {\n primitiveType: 'INT64',\n originalType: 'DECIMAL_INT64',\n toPrimitive: decimalToPrimitive_INT64,\n fromPrimitive: decimalFromPrimitive_INT\n },\n DECIMAL_BYTE_ARRAY: {\n primitiveType: 'BYTE_ARRAY',\n originalType: 'DECIMAL_BYTE_ARRAY',\n toPrimitive: decimalToPrimitive_BYTE_ARRAY,\n fromPrimitive: decimalFromPrimitive_BYTE_ARRAY\n },\n DECIMAL_FIXED_LEN_BYTE_ARRAY: {\n primitiveType: 'FIXED_LEN_BYTE_ARRAY',\n originalType: 'DECIMAL_FIXED_LEN_BYTE_ARRAY',\n toPrimitive: decimalToPrimitive_BYTE_ARRAY,\n fromPrimitive: decimalFromPrimitive_BYTE_ARRAY\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, field?: ParquetField) {\n if (!(type in PARQUET_LOGICAL_TYPES)) {\n throw new Error(`invalid type: ${type}`);\n }\n\n return PARQUET_LOGICAL_TYPES[type].toPrimitive(value, field);\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, field?: ParquetField) {\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, field);\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 decimalToPrimitive_INT32(value: number, field: ParquetField) {\n const primitiveValue = value * 10 ** (field.scale || 0);\n const v = Math.round(((primitiveValue * 10 ** -field.presision!) % 1) * 10 ** field.presision!);\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 decimalToPrimitive_INT64(value: number, field: ParquetField) {\n const primitiveValue = value * 10 ** (field.scale || 0);\n const v = Math.round(((primitiveValue * 10 ** -field.presision!) % 1) * 10 ** field.presision!);\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 decimalToPrimitive_BYTE_ARRAY(value: any) {\n // TBD\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\nfunction decimalFromPrimitive_INT(value: any, field: ParquetField) {\n const presisionInt = Math.round(((value * 10 ** -field.presision!) % 1) * 10 ** field.presision!);\n return presisionInt * 10 ** -(field.scale || 0);\n}\n\nfunction decimalFromPrimitive_BYTE_ARRAY(value: any, field: ParquetField) {\n let number = 0;\n if (value.length <= 4) {\n // Bytewise operators faster. Use them if it is possible\n for (let i = 0; i < value.length; i++) {\n // `value.length - i - 1` bytes have reverse order (big-endian)\n const component = value[i] << (8 * (value.length - i - 1));\n number += component;\n }\n } else {\n for (let i = 0; i < value.length; i++) {\n // `value.length - i - 1` bytes have reverse order (big-endian)\n const component = value[i] * 2 ** (8 * (value.length - 1 - i));\n number += component;\n }\n }\n\n const presisionInt = Math.round(\n ((number * 10 ** -field.presision!) % 1) * 10 ** field.presision!\n );\n return presisionInt * 10 ** -(field.scale || 0);\n}\n"],"file":"types.js"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.toArrayBuffer = toArrayBuffer;
|
|
7
|
+
exports.toBuffer = toBuffer;
|
|
8
|
+
|
|
9
|
+
function toArrayBuffer(buffer) {
|
|
10
|
+
if (Buffer.isBuffer(buffer)) {
|
|
11
|
+
var typedArray = new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.length);
|
|
12
|
+
return typedArray.slice().buffer;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return buffer;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function toBuffer(arrayBuffer) {
|
|
19
|
+
return Buffer.from(arrayBuffer);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=buffer-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/parquetjs/utils/buffer-utils.ts"],"names":["toArrayBuffer","buffer","Buffer","isBuffer","typedArray","Uint8Array","byteOffset","length","slice","toBuffer","arrayBuffer","from"],"mappings":";;;;;;;;AAGO,SAASA,aAAT,CAAuBC,MAAvB,EAAoD;AAEzD,MAAIC,MAAM,CAACC,QAAP,CAAgBF,MAAhB,CAAJ,EAA6B;AAC3B,QAAMG,UAAU,GAAG,IAAIC,UAAJ,CAAeJ,MAAM,CAACA,MAAtB,EAA8BA,MAAM,CAACK,UAArC,EAAiDL,MAAM,CAACM,MAAxD,CAAnB;AACA,WAAOH,UAAU,CAACI,KAAX,GAAmBP,MAA1B;AACD;;AACD,SAAOA,MAAP;AACD;;AAKM,SAASQ,QAAT,CAAkBC,WAAlB,EAAoD;AACzD,SAAOR,MAAM,CAACS,IAAP,CAAYD,WAAZ,CAAP;AACD","sourcesContent":["/**\n * Convert Buffer to ArrayBuffer\n */\nexport function toArrayBuffer(buffer: Buffer): ArrayBuffer {\n // TODO - per docs we should just be able to call buffer.buffer, but there are issues\n if (Buffer.isBuffer(buffer)) {\n const typedArray = new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.length);\n return typedArray.slice().buffer;\n }\n return buffer;\n}\n\n/**\n * Convert (copy) ArrayBuffer to Buffer\n */\nexport function toBuffer(arrayBuffer: ArrayBuffer): Buffer {\n return Buffer.from(arrayBuffer);\n}\n"],"file":"buffer-utils.js"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.load = load;
|
|
9
|
+
exports.fopen = fopen;
|
|
10
|
+
exports.fstat = fstat;
|
|
11
|
+
exports.fread = fread;
|
|
12
|
+
exports.fclose = fclose;
|
|
13
|
+
exports.oswrite = oswrite;
|
|
14
|
+
exports.osclose = osclose;
|
|
15
|
+
exports.osopen = osopen;
|
|
16
|
+
|
|
17
|
+
var _fs = _interopRequireDefault(require("fs"));
|
|
18
|
+
|
|
19
|
+
function load(name) {
|
|
20
|
+
return (module || global).require(name);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function fopen(filePath) {
|
|
24
|
+
return new Promise(function (resolve, reject) {
|
|
25
|
+
_fs.default.open(filePath, 'r', function (err, fd) {
|
|
26
|
+
if (err) {
|
|
27
|
+
reject(err);
|
|
28
|
+
} else {
|
|
29
|
+
resolve(fd);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function fstat(filePath) {
|
|
36
|
+
return new Promise(function (resolve, reject) {
|
|
37
|
+
_fs.default.stat(filePath, function (err, stat) {
|
|
38
|
+
if (err) {
|
|
39
|
+
reject(err);
|
|
40
|
+
} else {
|
|
41
|
+
resolve(stat);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function fread(fd, position, length) {
|
|
48
|
+
var buffer = Buffer.alloc(length);
|
|
49
|
+
return new Promise(function (resolve, reject) {
|
|
50
|
+
_fs.default.read(fd, buffer, 0, length, position, function (err, bytesRead, buf) {
|
|
51
|
+
if (err || bytesRead !== length) {
|
|
52
|
+
reject(err || Error('read failed'));
|
|
53
|
+
} else {
|
|
54
|
+
resolve(buf);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function fclose(fd) {
|
|
61
|
+
return new Promise(function (resolve, reject) {
|
|
62
|
+
_fs.default.close(fd, function (err) {
|
|
63
|
+
if (err) {
|
|
64
|
+
reject(err);
|
|
65
|
+
} else {
|
|
66
|
+
resolve();
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
function oswrite(os, buf) {
|
|
73
|
+
return new Promise(function (resolve, reject) {
|
|
74
|
+
os.write(buf, function (err) {
|
|
75
|
+
if (err) {
|
|
76
|
+
reject(err);
|
|
77
|
+
} else {
|
|
78
|
+
resolve();
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
function osclose(os) {
|
|
85
|
+
return new Promise(function (resolve, reject) {
|
|
86
|
+
os.close(function (err) {
|
|
87
|
+
if (err) {
|
|
88
|
+
reject(err);
|
|
89
|
+
} else {
|
|
90
|
+
resolve();
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
function osopen(path, opts) {
|
|
97
|
+
return new Promise(function (resolve, reject) {
|
|
98
|
+
var outputStream = _fs.default.createWriteStream(path, opts);
|
|
99
|
+
|
|
100
|
+
outputStream.once('open', function (fd) {
|
|
101
|
+
return resolve(outputStream);
|
|
102
|
+
});
|
|
103
|
+
outputStream.once('error', function (err) {
|
|
104
|
+
return reject(err);
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=file-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/parquetjs/utils/file-utils.ts"],"names":["load","name","module","global","require","fopen","filePath","Promise","resolve","reject","fs","open","err","fd","fstat","stat","fread","position","length","buffer","Buffer","alloc","read","bytesRead","buf","Error","fclose","close","oswrite","os","write","osclose","osopen","path","opts","outputStream","createWriteStream","once"],"mappings":"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","sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\nimport fs from 'fs';\nimport {Writable} from 'stream';\n\nexport function load(name: string): any {\n return (module || (global as any)).require(name);\n}\nexport interface WriteStreamOptions {\n flags?: string;\n encoding?: string;\n fd?: number;\n mode?: number;\n autoClose?: boolean;\n start?: number;\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"],"file":"file-utils.js"}
|
|
@@ -7,19 +7,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.serializeThrift = serializeThrift;
|
|
9
9
|
exports.decodeThrift = decodeThrift;
|
|
10
|
+
exports.getThriftEnum = getThriftEnum;
|
|
10
11
|
exports.decodeFileMetadata = decodeFileMetadata;
|
|
11
12
|
exports.decodePageHeader = decodePageHeader;
|
|
12
13
|
exports.getBitWidth = getBitWidth;
|
|
13
|
-
exports.getThriftEnum = getThriftEnum;
|
|
14
|
-
exports.fopen = fopen;
|
|
15
|
-
exports.fstat = fstat;
|
|
16
|
-
exports.fread = fread;
|
|
17
|
-
exports.fclose = fclose;
|
|
18
|
-
exports.oswrite = oswrite;
|
|
19
|
-
exports.osclose = osclose;
|
|
20
|
-
exports.osopen = osopen;
|
|
21
14
|
exports.fieldIndexOf = fieldIndexOf;
|
|
22
|
-
exports.load = load;
|
|
23
15
|
|
|
24
16
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
25
17
|
|
|
@@ -33,11 +25,9 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
|
|
|
33
25
|
|
|
34
26
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
35
27
|
|
|
36
|
-
var _fs = _interopRequireDefault(require("fs"));
|
|
37
|
-
|
|
38
28
|
var _thrift = require("thrift");
|
|
39
29
|
|
|
40
|
-
var _parquetThrift = require("
|
|
30
|
+
var _parquetThrift = require("../parquet-thrift");
|
|
41
31
|
|
|
42
32
|
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
33
|
|
|
@@ -88,6 +78,16 @@ function decodeThrift(obj, buf, offset) {
|
|
|
88
78
|
return transport.readPos - offset;
|
|
89
79
|
}
|
|
90
80
|
|
|
81
|
+
function getThriftEnum(klass, value) {
|
|
82
|
+
for (var k in klass) {
|
|
83
|
+
if (klass[k] === value) {
|
|
84
|
+
return k;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
throw new Error('Invalid ENUM value');
|
|
89
|
+
}
|
|
90
|
+
|
|
91
91
|
function decodeFileMetadata(buf, offset) {
|
|
92
92
|
if (!offset) {
|
|
93
93
|
offset = 0;
|
|
@@ -130,102 +130,6 @@ function getBitWidth(val) {
|
|
|
130
130
|
return Math.ceil(Math.log2(val + 1));
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
-
function getThriftEnum(klass, value) {
|
|
134
|
-
for (var k in klass) {
|
|
135
|
-
if (klass[k] === value) {
|
|
136
|
-
return k;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
throw new Error('Invalid ENUM value');
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
function fopen(filePath) {
|
|
144
|
-
return new Promise(function (resolve, reject) {
|
|
145
|
-
_fs.default.open(filePath, 'r', function (err, fd) {
|
|
146
|
-
if (err) {
|
|
147
|
-
reject(err);
|
|
148
|
-
} else {
|
|
149
|
-
resolve(fd);
|
|
150
|
-
}
|
|
151
|
-
});
|
|
152
|
-
});
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
function fstat(filePath) {
|
|
156
|
-
return new Promise(function (resolve, reject) {
|
|
157
|
-
_fs.default.stat(filePath, function (err, stat) {
|
|
158
|
-
if (err) {
|
|
159
|
-
reject(err);
|
|
160
|
-
} else {
|
|
161
|
-
resolve(stat);
|
|
162
|
-
}
|
|
163
|
-
});
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
function fread(fd, position, length) {
|
|
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) {
|
|
171
|
-
if (err || bytesRead !== length) {
|
|
172
|
-
reject(err || Error('read failed'));
|
|
173
|
-
} else {
|
|
174
|
-
resolve(buf);
|
|
175
|
-
}
|
|
176
|
-
});
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
function fclose(fd) {
|
|
181
|
-
return new Promise(function (resolve, reject) {
|
|
182
|
-
_fs.default.close(fd, function (err) {
|
|
183
|
-
if (err) {
|
|
184
|
-
reject(err);
|
|
185
|
-
} else {
|
|
186
|
-
resolve();
|
|
187
|
-
}
|
|
188
|
-
});
|
|
189
|
-
});
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
function oswrite(os, buf) {
|
|
193
|
-
return new Promise(function (resolve, reject) {
|
|
194
|
-
os.write(buf, function (err) {
|
|
195
|
-
if (err) {
|
|
196
|
-
reject(err);
|
|
197
|
-
} else {
|
|
198
|
-
resolve();
|
|
199
|
-
}
|
|
200
|
-
});
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
function osclose(os) {
|
|
205
|
-
return new Promise(function (resolve, reject) {
|
|
206
|
-
os.close(function (err) {
|
|
207
|
-
if (err) {
|
|
208
|
-
reject(err);
|
|
209
|
-
} else {
|
|
210
|
-
resolve();
|
|
211
|
-
}
|
|
212
|
-
});
|
|
213
|
-
});
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
function osopen(path, opts) {
|
|
217
|
-
return new Promise(function (resolve, reject) {
|
|
218
|
-
var outputStream = _fs.default.createWriteStream(path, opts);
|
|
219
|
-
|
|
220
|
-
outputStream.once('open', function (fd) {
|
|
221
|
-
return resolve(outputStream);
|
|
222
|
-
});
|
|
223
|
-
outputStream.once('error', function (err) {
|
|
224
|
-
return reject(err);
|
|
225
|
-
});
|
|
226
|
-
});
|
|
227
|
-
}
|
|
228
|
-
|
|
229
133
|
function fieldIndexOf(arr, elem) {
|
|
230
134
|
for (var j = 0; j < arr.length; j++) {
|
|
231
135
|
if (arr[j].length > elem.length) {
|
|
@@ -252,8 +156,4 @@ function fieldIndexOf(arr, elem) {
|
|
|
252
156
|
|
|
253
157
|
return -1;
|
|
254
158
|
}
|
|
255
|
-
|
|
256
|
-
function load(name) {
|
|
257
|
-
return (module || global).require(name);
|
|
258
|
-
}
|
|
259
|
-
//# sourceMappingURL=util.js.map
|
|
159
|
+
//# sourceMappingURL=read-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/parquetjs/utils/read-utils.ts"],"names":["UFramedTransport","TFramedTransport","serializeThrift","obj","output","transport","TBufferedTransport","undefined","buf","push","protocol","TCompactProtocol","write","flush","Buffer","concat","decodeThrift","offset","readPos","read","getThriftEnum","klass","value","k","Error","decodeFileMetadata","metadata","FileMetaData","length","decodePageHeader","pageHeader","PageHeader","getBitWidth","val","Math","ceil","log2","fieldIndexOf","arr","elem","j","m","i"],"mappings":"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","sourcesContent":["import {TBufferedTransport, TCompactProtocol, TFramedTransport} from 'thrift';\nimport {FileMetaData, PageHeader} from '../parquet-thrift';\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\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 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// 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"],"file":"read-utils.js"}
|
package/dist/esm/bundle.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
const moduleExports = require('./index');
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
_global.loaders = _global.loaders || {};
|
|
6
|
-
module.exports = Object.assign(_global.loaders, moduleExports);
|
|
3
|
+
globalThis.loaders = globalThis.loaders || {};
|
|
4
|
+
module.exports = Object.assign(globalThis.loaders, moduleExports);
|
|
7
5
|
//# sourceMappingURL=bundle.js.map
|