@zaowu-labs/data 1.0.5 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +79 -24
- package/dist/index.js.map +1 -1
- package/dist/input-limits.d.ts +9 -0
- package/dist/input-limits.d.ts.map +1 -0
- package/dist/input-limits.js +50 -0
- package/dist/input-limits.js.map +1 -0
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -20,3 +20,26 @@ Safety:
|
|
|
20
20
|
- Confirmed writes refuse to overwrite the input file or an existing output.
|
|
21
21
|
- XLSX support requires explicit sheet selection when the first sheet is not the
|
|
22
22
|
intended input.
|
|
23
|
+
|
|
24
|
+
## Real-input limits and analysis
|
|
25
|
+
|
|
26
|
+
All inputs are bounded to 20 MiB. Tables allow 250,000 data rows, 1,024 columns,
|
|
27
|
+
and two million rectangular cells including the header. XLSX is checked against
|
|
28
|
+
an actual 64 MiB inflated-byte budget and 2,000 archive entries before SheetJS
|
|
29
|
+
parsing. Oversized worksheet ranges fail before sparse cells are enumerated.
|
|
30
|
+
No data is silently truncated to fit a limit.
|
|
31
|
+
|
|
32
|
+
Numeric `count`, `min`, `max`, and `average` use finite numeric cells only;
|
|
33
|
+
`missingCount` and `nonNumericCount` explain excluded cells. Leading-zero IDs,
|
|
34
|
+
units such as `20kg`, and numeric overflow remain non-numeric source values.
|
|
35
|
+
A scaled compensated mean avoids overflow on finite extreme values.
|
|
36
|
+
|
|
37
|
+
Extra unnamed columns receive stable `column_N` headers instead of losing data.
|
|
38
|
+
JSON accepts an object or arrays of objects, preserves nested values as JSON
|
|
39
|
+
cell text, and rejects primitive/mixed arrays. Unclosed CSV quotes fail with a
|
|
40
|
+
repair hint. XLSX formulas are not executed: results use stored cell values,
|
|
41
|
+
which may need recalculation in a spreadsheet editor before export.
|
|
42
|
+
|
|
43
|
+
Confirmation execution also checks the freshly prepared content against the
|
|
44
|
+
already verified plan immediately before the write/request. Changes between
|
|
45
|
+
reads fail with `OPERATION_PLAN_MISMATCH` and produce no write or network call.
|
package/dist/index.d.ts
CHANGED
|
@@ -25,6 +25,8 @@ export interface NumericColumnAnalysis {
|
|
|
25
25
|
min: number;
|
|
26
26
|
max: number;
|
|
27
27
|
average: number;
|
|
28
|
+
missingCount: number;
|
|
29
|
+
nonNumericCount: number;
|
|
28
30
|
}
|
|
29
31
|
export interface DataAnalyzeResult {
|
|
30
32
|
schemaVersion: 1;
|
|
@@ -78,6 +80,7 @@ export declare const cleanData: (inputPath: string, options?: {
|
|
|
78
80
|
outputPath?: string;
|
|
79
81
|
yes?: boolean;
|
|
80
82
|
sheet?: string;
|
|
83
|
+
expectedContent?: string;
|
|
81
84
|
}) => Promise<DataCleanResult>;
|
|
82
85
|
export declare const inferDataSchema: (filePath: string, options?: DataReadOptions) => Promise<DataSchemaResult>;
|
|
83
86
|
export declare const sampleData: (filePath: string, options?: {
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { readFile } from 'node:fs/promises';
|
|
2
1
|
import path from 'node:path';
|
|
3
|
-
import {
|
|
2
|
+
import { assertTableSize, assertWorkbookSize, dataTooLarge, MAX_DATA_COLUMNS, MAX_DATA_ROWS, readDataFile, } from './input-limits.js';
|
|
3
|
+
import { assertSafeOutputPath, createCapabilityLedger, stripUtf8Bom, writeTextFileExclusive, ZaoWuError, } from '@zaowu-labs/core';
|
|
4
4
|
export const DATA_DOMAIN = {
|
|
5
5
|
name: 'data',
|
|
6
6
|
summary: 'Data workflows for inspection, analysis, and cleanup',
|
|
@@ -79,6 +79,8 @@ const createCellCollector = () => ({
|
|
|
79
79
|
values: [],
|
|
80
80
|
trimmedCells: 0,
|
|
81
81
|
push(value) {
|
|
82
|
+
if (this.values.length >= MAX_DATA_COLUMNS)
|
|
83
|
+
throw dataTooLarge();
|
|
82
84
|
const trimmed = value.trim();
|
|
83
85
|
if (value !== trimmed) {
|
|
84
86
|
this.trimmedCells += 1;
|
|
@@ -88,7 +90,7 @@ const createCellCollector = () => ({
|
|
|
88
90
|
});
|
|
89
91
|
const parseTsvLine = (line) => {
|
|
90
92
|
const cells = createCellCollector();
|
|
91
|
-
for (const value of line.split('\t')) {
|
|
93
|
+
for (const value of line.split('\t', MAX_DATA_COLUMNS + 1)) {
|
|
92
94
|
cells.push(value);
|
|
93
95
|
}
|
|
94
96
|
return { values: cells.values, trimmedCells: cells.trimmedCells };
|
|
@@ -103,6 +105,7 @@ const parseTsvLine = (line) => {
|
|
|
103
105
|
const parseCsvRecords = (content) => {
|
|
104
106
|
const records = [];
|
|
105
107
|
let emptyLineCount = 0;
|
|
108
|
+
let widestRecord = 0;
|
|
106
109
|
let cells = createCellCollector();
|
|
107
110
|
let current = '';
|
|
108
111
|
let raw = '';
|
|
@@ -117,6 +120,8 @@ const parseCsvRecords = (content) => {
|
|
|
117
120
|
emptyLineCount += 1;
|
|
118
121
|
}
|
|
119
122
|
else {
|
|
123
|
+
widestRecord = Math.max(widestRecord, cells.values.length);
|
|
124
|
+
assertTableSize(records.length, widestRecord);
|
|
120
125
|
records.push({ values: cells.values, trimmedCells: cells.trimmedCells });
|
|
121
126
|
}
|
|
122
127
|
cells = createCellCollector();
|
|
@@ -153,6 +158,13 @@ const parseCsvRecords = (content) => {
|
|
|
153
158
|
}
|
|
154
159
|
current += char;
|
|
155
160
|
}
|
|
161
|
+
if (quoted)
|
|
162
|
+
throw new ZaoWuError({
|
|
163
|
+
code: 'DATA_READ_FAILED',
|
|
164
|
+
message: 'CSV contains an unclosed quoted field.',
|
|
165
|
+
why: 'The file ended before a quoted field was closed; continuing would merge records and lose row boundaries.',
|
|
166
|
+
fix: 'Close the quoted field or re-export the file as valid CSV.',
|
|
167
|
+
});
|
|
156
168
|
if (started || current !== '' || cells.values.length > 0) {
|
|
157
169
|
finishRecord();
|
|
158
170
|
}
|
|
@@ -163,12 +175,16 @@ const parseTsvRecords = (content) => {
|
|
|
163
175
|
const contentLines = rawLines.at(-1) === '' ? rawLines.slice(0, -1) : rawLines;
|
|
164
176
|
const records = [];
|
|
165
177
|
let emptyLineCount = 0;
|
|
178
|
+
let widestRecord = 0;
|
|
166
179
|
for (const line of contentLines) {
|
|
167
180
|
if (line.trim() === '') {
|
|
168
181
|
emptyLineCount += 1;
|
|
169
182
|
continue;
|
|
170
183
|
}
|
|
171
|
-
|
|
184
|
+
const record = parseTsvLine(line);
|
|
185
|
+
widestRecord = Math.max(widestRecord, record.values.length);
|
|
186
|
+
assertTableSize(records.length, widestRecord);
|
|
187
|
+
records.push(record);
|
|
172
188
|
}
|
|
173
189
|
return { records, emptyLineCount };
|
|
174
190
|
};
|
|
@@ -202,7 +218,8 @@ const normalizeHeaders = (headers) => {
|
|
|
202
218
|
*/
|
|
203
219
|
const openXlsxWorkbook = async (filePath) => {
|
|
204
220
|
try {
|
|
205
|
-
const workbookBuffer = await
|
|
221
|
+
const workbookBuffer = await readDataFile(filePath);
|
|
222
|
+
await assertWorkbookSize(workbookBuffer);
|
|
206
223
|
if (workbookBuffer[0] !== 0x50 || workbookBuffer[1] !== 0x4b) {
|
|
207
224
|
throw new ZaoWuError({
|
|
208
225
|
code: 'DATA_READ_FAILED',
|
|
@@ -216,6 +233,9 @@ const openXlsxWorkbook = async (filePath) => {
|
|
|
216
233
|
XLSX,
|
|
217
234
|
workbook: XLSX.read(workbookBuffer, {
|
|
218
235
|
type: 'buffer',
|
|
236
|
+
sheetRows: MAX_DATA_ROWS + 2,
|
|
237
|
+
cellHTML: false,
|
|
238
|
+
cellStyles: false,
|
|
219
239
|
}),
|
|
220
240
|
};
|
|
221
241
|
}
|
|
@@ -223,11 +243,10 @@ const openXlsxWorkbook = async (filePath) => {
|
|
|
223
243
|
if (error instanceof ZaoWuError) {
|
|
224
244
|
throw error;
|
|
225
245
|
}
|
|
226
|
-
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
227
246
|
throw new ZaoWuError({
|
|
228
247
|
code: 'DATA_READ_FAILED',
|
|
229
248
|
message: 'Could not read data file.',
|
|
230
|
-
why: `ZaoWu tried to read \`${filePath}\` as an XLSX file, but the file was not readable.
|
|
249
|
+
why: `ZaoWu tried to read \`${filePath}\` as an XLSX file, but the file was not readable. The workbook may be corrupt, encrypted, or unsupported.`,
|
|
231
250
|
fix: 'Check the path, file permissions, and workbook format, then run the command again.',
|
|
232
251
|
});
|
|
233
252
|
}
|
|
@@ -237,16 +256,29 @@ export const loadDataTable = async (filePath, options = {}) => {
|
|
|
237
256
|
let content;
|
|
238
257
|
if (source.format === 'json') {
|
|
239
258
|
try {
|
|
240
|
-
const jsonContent = await
|
|
259
|
+
const jsonContent = (await readDataFile(filePath)).toString('utf8');
|
|
241
260
|
const parsed = JSON.parse(stripUtf8Bom(jsonContent));
|
|
261
|
+
if (!parsed ||
|
|
262
|
+
typeof parsed !== 'object' ||
|
|
263
|
+
(Array.isArray(parsed) &&
|
|
264
|
+
parsed.some((item) => !item || typeof item !== 'object' || Array.isArray(item)))) {
|
|
265
|
+
throw new ZaoWuError({
|
|
266
|
+
code: 'DATA_READ_FAILED',
|
|
267
|
+
message: 'JSON data must contain records.',
|
|
268
|
+
why: 'Table commands require an object or an array of objects; primitive and mixed arrays have no stable columns.',
|
|
269
|
+
fix: 'Use records such as [{"name":"A","amount":10}] or export a CSV table.',
|
|
270
|
+
});
|
|
271
|
+
}
|
|
242
272
|
let rows = [];
|
|
243
273
|
let headers = [];
|
|
244
274
|
if (Array.isArray(parsed)) {
|
|
275
|
+
assertTableSize(parsed.length, 0);
|
|
245
276
|
const uniqueKeys = new Set();
|
|
246
277
|
for (const item of parsed) {
|
|
247
278
|
if (item && typeof item === 'object') {
|
|
248
279
|
for (const key of Object.keys(item)) {
|
|
249
280
|
uniqueKeys.add(key);
|
|
281
|
+
assertTableSize(parsed.length, uniqueKeys.size);
|
|
250
282
|
}
|
|
251
283
|
}
|
|
252
284
|
}
|
|
@@ -258,7 +290,9 @@ export const loadDataTable = async (filePath, options = {}) => {
|
|
|
258
290
|
const obj = item;
|
|
259
291
|
for (const key of sourceKeys) {
|
|
260
292
|
const val = Object.hasOwn(obj, key) ? obj[key] : undefined;
|
|
261
|
-
row.push(val === undefined || val === null
|
|
293
|
+
row.push(val === undefined || val === null
|
|
294
|
+
? ''
|
|
295
|
+
: (typeof val === 'object' ? JSON.stringify(val) : String(val)).trim());
|
|
262
296
|
}
|
|
263
297
|
}
|
|
264
298
|
else {
|
|
@@ -271,12 +305,15 @@ export const loadDataTable = async (filePath, options = {}) => {
|
|
|
271
305
|
}
|
|
272
306
|
else if (parsed && typeof parsed === 'object') {
|
|
273
307
|
const sourceKeys = Object.keys(parsed);
|
|
308
|
+
assertTableSize(1, sourceKeys.length);
|
|
274
309
|
headers = normalizeHeaders(sourceKeys);
|
|
275
310
|
const row = [];
|
|
276
311
|
const obj = parsed;
|
|
277
312
|
for (const key of sourceKeys) {
|
|
278
313
|
const val = obj[key];
|
|
279
|
-
row.push(val === undefined || val === null
|
|
314
|
+
row.push(val === undefined || val === null
|
|
315
|
+
? ''
|
|
316
|
+
: (typeof val === 'object' ? JSON.stringify(val) : String(val)).trim());
|
|
280
317
|
}
|
|
281
318
|
rows.push(row);
|
|
282
319
|
}
|
|
@@ -324,6 +361,11 @@ export const loadDataTable = async (filePath, options = {}) => {
|
|
|
324
361
|
});
|
|
325
362
|
}
|
|
326
363
|
const sheet = sheetName ? workbook.Sheets[sheetName] : undefined;
|
|
364
|
+
const range = sheet?.['!fullref'] || sheet?.['!ref'];
|
|
365
|
+
if (range) {
|
|
366
|
+
const bounds = XLSX.utils.decode_range(range);
|
|
367
|
+
assertTableSize(bounds.e.r, bounds.e.c + 1);
|
|
368
|
+
}
|
|
327
369
|
const rows = sheet
|
|
328
370
|
? XLSX.utils.sheet_to_json(sheet, {
|
|
329
371
|
header: 1,
|
|
@@ -331,7 +373,9 @@ export const loadDataTable = async (filePath, options = {}) => {
|
|
|
331
373
|
})
|
|
332
374
|
: [];
|
|
333
375
|
const normalizedRows = rows.map((row) => row.map((value) => String(value).trim()));
|
|
334
|
-
const
|
|
376
|
+
const width = normalizedRows.reduce((max, row) => Math.max(max, row.length), 0);
|
|
377
|
+
assertTableSize(Math.max(0, normalizedRows.length - 1), width);
|
|
378
|
+
const headers = normalizeHeaders(Array.from({ length: width }, (_, i) => normalizedRows[0]?.[i] ?? ''));
|
|
335
379
|
const dataRows = normalizedRows.slice(1).filter((row) => row.some((value) => value.trim()));
|
|
336
380
|
return {
|
|
337
381
|
filePath,
|
|
@@ -350,31 +394,27 @@ export const loadDataTable = async (filePath, options = {}) => {
|
|
|
350
394
|
if (error instanceof ZaoWuError) {
|
|
351
395
|
throw error;
|
|
352
396
|
}
|
|
353
|
-
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
354
397
|
throw new ZaoWuError({
|
|
355
398
|
code: 'DATA_READ_FAILED',
|
|
356
399
|
message: 'Could not read data file.',
|
|
357
|
-
why: `ZaoWu tried to read \`${filePath}\` as an XLSX file, but the file was not readable.
|
|
400
|
+
why: `ZaoWu tried to read \`${filePath}\` as an XLSX file, but the file was not readable. The workbook may be corrupt, encrypted, or unsupported.`,
|
|
358
401
|
fix: 'Check the path, file permissions, and workbook format, then run the command again.',
|
|
359
402
|
});
|
|
360
403
|
}
|
|
361
404
|
}
|
|
362
|
-
content = await
|
|
363
|
-
code: 'DATA_READ_FAILED',
|
|
364
|
-
message: 'Could not read data file.',
|
|
365
|
-
why: `ZaoWu tried to read \`${filePath}\`, but the file was not readable.`,
|
|
366
|
-
fix: 'Check the path and file permissions, then run the command again.',
|
|
367
|
-
}, { stripBom: true });
|
|
405
|
+
content = stripUtf8Bom((await readDataFile(filePath)).toString('utf8'));
|
|
368
406
|
const { records, emptyLineCount } = source.delimiter === ',' ? parseCsvRecords(content) : parseTsvRecords(content);
|
|
369
407
|
const parsedHeaders = records[0] ?? { values: [], trimmedCells: 0 };
|
|
370
408
|
const parsedRows = records.slice(1);
|
|
409
|
+
const width = records.reduce((max, record) => Math.max(max, record.values.length), 0);
|
|
410
|
+
assertTableSize(Math.max(0, records.length - 1), width);
|
|
371
411
|
const trimmedCellCount = parsedHeaders.trimmedCells +
|
|
372
412
|
parsedRows.reduce((count, parsedLine) => count + parsedLine.trimmedCells, 0);
|
|
373
413
|
return {
|
|
374
414
|
filePath,
|
|
375
415
|
format: source.format,
|
|
376
416
|
delimiter: source.delimiter,
|
|
377
|
-
headers: normalizeHeaders(parsedHeaders.values),
|
|
417
|
+
headers: normalizeHeaders(Array.from({ length: width }, (_, i) => parsedHeaders.values[i] ?? '')),
|
|
378
418
|
rows: parsedRows.map((row) => row.values),
|
|
379
419
|
emptyLineCount,
|
|
380
420
|
trimmedCellCount,
|
|
@@ -427,11 +467,15 @@ export const analyzeData = async (filePath, options = {}) => {
|
|
|
427
467
|
// Reduce instead of Math.min(...numbers)/Math.max(...numbers): spreading a
|
|
428
468
|
// large numeric column into an argument list throws RangeError (call stack)
|
|
429
469
|
// once the column has ~100k+ values.
|
|
430
|
-
let
|
|
470
|
+
let average = 0;
|
|
471
|
+
let correction = 0;
|
|
431
472
|
let min = numbers[0];
|
|
432
473
|
let max = numbers[0];
|
|
433
474
|
for (const value of numbers) {
|
|
434
|
-
|
|
475
|
+
const adjusted = value / numbers.length - correction;
|
|
476
|
+
const nextAverage = average + adjusted;
|
|
477
|
+
correction = nextAverage - average - adjusted;
|
|
478
|
+
average = nextAverage;
|
|
435
479
|
if (value < min) {
|
|
436
480
|
min = value;
|
|
437
481
|
}
|
|
@@ -444,7 +488,9 @@ export const analyzeData = async (filePath, options = {}) => {
|
|
|
444
488
|
count: numbers.length,
|
|
445
489
|
min,
|
|
446
490
|
max,
|
|
447
|
-
average
|
|
491
|
+
average,
|
|
492
|
+
missingCount: table.rows.filter((row) => !row[index]?.trim()).length,
|
|
493
|
+
nonNumericCount: table.rows.filter((row) => row[index]?.trim() && !isNumericText(row[index].trim())).length,
|
|
448
494
|
});
|
|
449
495
|
}
|
|
450
496
|
return {
|
|
@@ -473,6 +519,13 @@ export const cleanData = async (inputPath, options = {}) => {
|
|
|
473
519
|
];
|
|
474
520
|
const content = `${lines.join('\n')}\n`;
|
|
475
521
|
if (options.outputPath && options.yes) {
|
|
522
|
+
if (options.expectedContent !== undefined && content !== options.expectedContent)
|
|
523
|
+
throw new ZaoWuError({
|
|
524
|
+
code: 'OPERATION_PLAN_MISMATCH',
|
|
525
|
+
message: 'Data content changed after plan verification.',
|
|
526
|
+
why: 'The cleaned output no longer matches the content authorized by the operation plan. No file was written.',
|
|
527
|
+
fix: 'Run the preview again and confirm its new fingerprint.',
|
|
528
|
+
});
|
|
476
529
|
await assertSafeDataOutputPath(inputPath, options.outputPath);
|
|
477
530
|
await writeTextFileExclusive(options.outputPath, content, {
|
|
478
531
|
exists: {
|
|
@@ -535,7 +588,9 @@ const isCurrencyLike = (value) => {
|
|
|
535
588
|
* leading-zero values (`01234` ZIP codes, phone fragments, SKUs) and hex
|
|
536
589
|
* (`0x1A`). Decimal and scientific notation stay supported.
|
|
537
590
|
*/
|
|
538
|
-
const isNumericText = (value) => /^[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?$/.test(value) &&
|
|
591
|
+
const isNumericText = (value) => /^[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?$/.test(value) &&
|
|
592
|
+
!/^[+-]?0\d/.test(value) &&
|
|
593
|
+
Number.isFinite(Number(value));
|
|
539
594
|
const getValueType = (value) => {
|
|
540
595
|
if (isNumericText(value)) {
|
|
541
596
|
return 'number';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ZaoWuError } from '@zaowu-labs/core';
|
|
2
|
+
export declare const MAX_DATA_ROWS = 250000;
|
|
3
|
+
export declare const MAX_DATA_COLUMNS = 1024;
|
|
4
|
+
export declare const dataTooLarge: () => ZaoWuError;
|
|
5
|
+
export declare const assertTableSize: (rows: number, columns: number) => void;
|
|
6
|
+
export declare const readDataFile: (filePath: string) => Promise<Buffer>;
|
|
7
|
+
/** Inflate sequentially under an actual-byte budget before handing ZIP to SheetJS. */
|
|
8
|
+
export declare const assertWorkbookSize: (buffer: Buffer) => Promise<void>;
|
|
9
|
+
//# sourceMappingURL=input-limits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-limits.d.ts","sourceRoot":"","sources":["../src/input-limits.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE/D,eAAO,MAAM,aAAa,SAAU,CAAC;AACrC,eAAO,MAAM,gBAAgB,OAAQ,CAAC;AAGtC,eAAO,MAAM,YAAY,QAAO,UAM5B,CAAC;AAEL,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,EAAE,SAAS,MAAM,KAAG,IAG/D,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,UAAU,MAAM,KAAG,OAAO,CAAC,MAAM,CAS1D,CAAC;AAEL,sFAAsF;AACtF,eAAO,MAAM,kBAAkB,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,IAAI,CAqBrE,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import JSZip from 'jszip';
|
|
2
|
+
import { readBoundedFile, ZaoWuError } from '@zaowu-labs/core';
|
|
3
|
+
export const MAX_DATA_ROWS = 250_000;
|
|
4
|
+
export const MAX_DATA_COLUMNS = 1_024;
|
|
5
|
+
const MAX_DATA_CELLS = 2_000_000;
|
|
6
|
+
export const dataTooLarge = () => new ZaoWuError({
|
|
7
|
+
code: 'DATA_INPUT_TOO_LARGE',
|
|
8
|
+
message: 'Dataset is too large to process safely.',
|
|
9
|
+
why: 'Limits: 20 MiB input, 250,000 data rows, 1,024 columns, two million cells; XLSX also allows 2,000 ZIP entries and 64 MiB inflated content.',
|
|
10
|
+
fix: 'Split the dataset, remove unused rows/columns, or export a smaller CSV file.',
|
|
11
|
+
});
|
|
12
|
+
export const assertTableSize = (rows, columns) => {
|
|
13
|
+
if (rows > MAX_DATA_ROWS || columns > MAX_DATA_COLUMNS || (rows + 1) * columns > MAX_DATA_CELLS)
|
|
14
|
+
throw dataTooLarge();
|
|
15
|
+
};
|
|
16
|
+
export const readDataFile = (filePath) => readBoundedFile(filePath, 20 * 1024 * 1024, {
|
|
17
|
+
failed: {
|
|
18
|
+
code: 'DATA_READ_FAILED',
|
|
19
|
+
message: 'Could not read data file.',
|
|
20
|
+
why: `ZaoWu could not read \`${filePath}\` as a regular file.`,
|
|
21
|
+
fix: 'Check the path and file permissions, then try again.',
|
|
22
|
+
},
|
|
23
|
+
tooLarge: dataTooLarge(),
|
|
24
|
+
});
|
|
25
|
+
/** Inflate sequentially under an actual-byte budget before handing ZIP to SheetJS. */
|
|
26
|
+
export const assertWorkbookSize = async (buffer) => {
|
|
27
|
+
const zip = await JSZip.loadAsync(buffer);
|
|
28
|
+
const entries = Object.values(zip.files);
|
|
29
|
+
if (entries.length > 2_000)
|
|
30
|
+
throw dataTooLarge();
|
|
31
|
+
let total = 0;
|
|
32
|
+
for (const entry of entries) {
|
|
33
|
+
if (entry.dir)
|
|
34
|
+
continue;
|
|
35
|
+
await new Promise((resolve, reject) => {
|
|
36
|
+
const stream = entry.nodeStream('nodebuffer');
|
|
37
|
+
stream.on('data', (chunk) => {
|
|
38
|
+
total += chunk.length;
|
|
39
|
+
if (total > 64 * 1024 * 1024) {
|
|
40
|
+
stream.pause();
|
|
41
|
+
reject(dataTooLarge());
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
stream.on('error', reject);
|
|
45
|
+
stream.on('end', resolve);
|
|
46
|
+
stream.resume();
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=input-limits.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-limits.js","sourceRoot":"","sources":["../src/input-limits.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE/D,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC;AACrC,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC;AACtC,MAAM,cAAc,GAAG,SAAS,CAAC;AAEjC,MAAM,CAAC,MAAM,YAAY,GAAG,GAAe,EAAE,CAC3C,IAAI,UAAU,CAAC;IACb,IAAI,EAAE,sBAAsB;IAC5B,OAAO,EAAE,yCAAyC;IAClD,GAAG,EAAE,4IAA4I;IACjJ,GAAG,EAAE,8EAA8E;CACpF,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,OAAe,EAAQ,EAAE;IACrE,IAAI,IAAI,GAAG,aAAa,IAAI,OAAO,GAAG,gBAAgB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,GAAG,cAAc;QAC7F,MAAM,YAAY,EAAE,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAmB,EAAE,CAChE,eAAe,CAAC,QAAQ,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE;IAC1C,MAAM,EAAE;QACN,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,2BAA2B;QACpC,GAAG,EAAE,0BAA0B,QAAQ,uBAAuB;QAC9D,GAAG,EAAE,sDAAsD;KAC5D;IACD,QAAQ,EAAE,YAAY,EAAE;CACzB,CAAC,CAAC;AAEL,sFAAsF;AACtF,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAAE,MAAc,EAAiB,EAAE;IACxE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,OAAO,CAAC,MAAM,GAAG,KAAK;QAAE,MAAM,YAAY,EAAE,CAAC;IACjD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,GAAG;YAAE,SAAS;QACxB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAC9C,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBAClC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC;gBACtB,IAAI,KAAK,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;oBAC7B,MAAM,CAAC,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC3B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC1B,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zaowu-labs/data",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "ZaoWu data workflows",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -20,8 +20,9 @@
|
|
|
20
20
|
}
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
+
"jszip": "^3.10.1",
|
|
23
24
|
"xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz",
|
|
24
|
-
"@zaowu-labs/core": "1.0
|
|
25
|
+
"@zaowu-labs/core": "1.1.0"
|
|
25
26
|
},
|
|
26
27
|
"keywords": [
|
|
27
28
|
"zaowu",
|