@bilig/xlsx 0.164.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/README.md +25 -0
  2. package/dist/address.d.ts +15 -0
  3. package/dist/address.js +82 -0
  4. package/dist/address.js.map +1 -0
  5. package/dist/external-workbook-types.d.ts +44 -0
  6. package/dist/external-workbook-types.js +12 -0
  7. package/dist/external-workbook-types.js.map +1 -0
  8. package/dist/file-source.d.ts +10 -0
  9. package/dist/file-source.js +76 -0
  10. package/dist/file-source.js.map +1 -0
  11. package/dist/formula-cache-reader.d.ts +30 -0
  12. package/dist/formula-cache-reader.js +350 -0
  13. package/dist/formula-cache-reader.js.map +1 -0
  14. package/dist/index.d.ts +17 -0
  15. package/dist/index.js +18 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/simple-workbook-writer.d.ts +114 -0
  18. package/dist/simple-workbook-writer.js +621 -0
  19. package/dist/simple-workbook-writer.js.map +1 -0
  20. package/dist/source-preserving-literal-patches.d.ts +43 -0
  21. package/dist/source-preserving-literal-patches.js +615 -0
  22. package/dist/source-preserving-literal-patches.js.map +1 -0
  23. package/dist/source-preserving-zip.d.ts +25 -0
  24. package/dist/source-preserving-zip.js +341 -0
  25. package/dist/source-preserving-zip.js.map +1 -0
  26. package/dist/streaming-native-cell-arena.d.ts +57 -0
  27. package/dist/streaming-native-cell-arena.js +233 -0
  28. package/dist/streaming-native-cell-arena.js.map +1 -0
  29. package/dist/streaming-native-external-cache.d.ts +13 -0
  30. package/dist/streaming-native-external-cache.js +753 -0
  31. package/dist/streaming-native-external-cache.js.map +1 -0
  32. package/dist/streaming-native-inspect.d.ts +42 -0
  33. package/dist/streaming-native-inspect.js +297 -0
  34. package/dist/streaming-native-inspect.js.map +1 -0
  35. package/dist/streaming-native-lookup-wasm.d.ts +13 -0
  36. package/dist/streaming-native-lookup-wasm.js +250 -0
  37. package/dist/streaming-native-lookup-wasm.js.map +1 -0
  38. package/dist/streaming-native-recalc-evaluator.d.ts +17 -0
  39. package/dist/streaming-native-recalc-evaluator.js +743 -0
  40. package/dist/streaming-native-recalc-evaluator.js.map +1 -0
  41. package/dist/streaming-native-recalc.d.ts +97 -0
  42. package/dist/streaming-native-recalc.js +652 -0
  43. package/dist/streaming-native-recalc.js.map +1 -0
  44. package/dist/streaming-native-row-chain-conditionals.d.ts +8 -0
  45. package/dist/streaming-native-row-chain-conditionals.js +385 -0
  46. package/dist/streaming-native-row-chain-conditionals.js.map +1 -0
  47. package/dist/streaming-native-row-chain-dependencies.d.ts +17 -0
  48. package/dist/streaming-native-row-chain-dependencies.js +365 -0
  49. package/dist/streaming-native-row-chain-dependencies.js.map +1 -0
  50. package/dist/streaming-native-row-chain-references.d.ts +3 -0
  51. package/dist/streaming-native-row-chain-references.js +36 -0
  52. package/dist/streaming-native-row-chain-references.js.map +1 -0
  53. package/dist/streaming-native-row-chain-wasm.d.ts +56 -0
  54. package/dist/streaming-native-row-chain-wasm.js +546 -0
  55. package/dist/streaming-native-row-chain-wasm.js.map +1 -0
  56. package/dist/streaming-native-text.d.ts +2 -0
  57. package/dist/streaming-native-text.js +14 -0
  58. package/dist/streaming-native-text.js.map +1 -0
  59. package/dist/streaming-native-workbook-core.d.ts +47 -0
  60. package/dist/streaming-native-workbook-core.js +110 -0
  61. package/dist/streaming-native-workbook-core.js.map +1 -0
  62. package/dist/targeted-cell-reader.d.ts +11 -0
  63. package/dist/targeted-cell-reader.js +92 -0
  64. package/dist/targeted-cell-reader.js.map +1 -0
  65. package/dist/workbook-cell-reader.d.ts +29 -0
  66. package/dist/workbook-cell-reader.js +200 -0
  67. package/dist/workbook-cell-reader.js.map +1 -0
  68. package/dist/workbook-compatibility-report.d.ts +101 -0
  69. package/dist/workbook-compatibility-report.js +654 -0
  70. package/dist/workbook-compatibility-report.js.map +1 -0
  71. package/dist/workbook-sheet-paths.d.ts +8 -0
  72. package/dist/workbook-sheet-paths.js +79 -0
  73. package/dist/workbook-sheet-paths.js.map +1 -0
  74. package/dist/xml-part-patch.d.ts +12 -0
  75. package/dist/xml-part-patch.js +45 -0
  76. package/dist/xml-part-patch.js.map +1 -0
  77. package/dist/xml.d.ts +9 -0
  78. package/dist/xml.js +42 -0
  79. package/dist/xml.js.map +1 -0
  80. package/dist/zip-reader.d.ts +51 -0
  81. package/dist/zip-reader.js +448 -0
  82. package/dist/zip-reader.js.map +1 -0
  83. package/package.json +113 -0
@@ -0,0 +1,546 @@
1
+ import { parseFormula } from '@bilig/formula';
2
+ import { ErrorCode, ValueTag } from '@bilig/protocol';
3
+ import { createKernelSync } from '@bilig/wasm-kernel';
4
+ import { expandStreamingNativeFormulaDependencyRows, tryCompileNativeRangeAggregate, } from './streaming-native-row-chain-dependencies.js';
5
+ import { evaluateStreamingNativeWasmConditionals } from './streaming-native-row-chain-conditionals.js';
6
+ import { compileReferenceColumn } from './streaming-native-row-chain-references.js';
7
+ import { evaluateStreamingNativeWasmLookups } from './streaming-native-lookup-wasm.js';
8
+ export { expandStreamingNativeFormulaDependencyRows, evaluateStreamingNativeWasmConditionals };
9
+ export function evaluateStreamingNativeWasmRowChains(args) {
10
+ const candidates = collectRowChainCandidates(args);
11
+ if (candidates.length === 0) {
12
+ return emptyResult();
13
+ }
14
+ const kernel = createKernelSync();
15
+ const patches = [];
16
+ const processedCells = new Set();
17
+ let batchCount = 0;
18
+ for (const group of groupCandidates(candidates).values()) {
19
+ if (group.length === 0) {
20
+ continue;
21
+ }
22
+ batchCount += 1;
23
+ kernel.init(group.length * 2, 1, 1, 1, 1);
24
+ const firstCandidate = group[0];
25
+ if (firstCandidate.secondKind === 'affine') {
26
+ const affineGroup = group.filter(isAffineRowChainCandidate);
27
+ kernel.evalDenseDirectScalarRowChainStoreTargetBatch(Float64Array.from(affineGroup.map((candidate) => candidate.leftValue)), Float64Array.from(affineGroup.map((candidate) => candidate.rightValue)), Uint32Array.from(affineGroup.map((_candidate, index) => index * 2)), Uint32Array.from(affineGroup.map((_candidate, index) => index * 2 + 1)), affineGroup.length, firstCandidate.firstOperatorCode, firstCandidate.secondScale, firstCandidate.secondOffset);
28
+ }
29
+ else {
30
+ const divideGroup = group.filter(isDivideRowChainCandidate);
31
+ kernel.evalDenseDirectScalarRowChainDivideStoreTargetBatch(Float64Array.from(divideGroup.map((candidate) => candidate.leftValue)), Float64Array.from(divideGroup.map((candidate) => candidate.rightValue)), Float64Array.from(divideGroup.map((candidate) => candidate.denominatorValue)), Uint32Array.from(divideGroup.map((_candidate, index) => index * 2)), Uint32Array.from(divideGroup.map((_candidate, index) => index * 2 + 1)), divideGroup.length, firstCandidate.firstOperatorCode);
32
+ }
33
+ const numbers = kernel.readNumbers();
34
+ for (let index = 0; index < group.length; index += 1) {
35
+ const candidate = group[index];
36
+ const firstValue = numbers[index * 2];
37
+ const secondValue = numbers[index * 2 + 1];
38
+ if (!Number.isFinite(firstValue) || !Number.isFinite(secondValue)) {
39
+ continue;
40
+ }
41
+ candidate.rowValues.set(candidate.firstCell.col, { tag: ValueTag.Number, value: firstValue });
42
+ candidate.rowValues.set(candidate.secondCell.col, { tag: ValueTag.Number, value: secondValue });
43
+ patches.push(formulaPatch(candidate.firstCell, firstValue), formulaPatch(candidate.secondCell, secondValue));
44
+ processedCells.add(cellKey(candidate.firstCell));
45
+ processedCells.add(cellKey(candidate.secondCell));
46
+ }
47
+ }
48
+ return {
49
+ batchCount,
50
+ evaluatedFormulaCellCount: processedCells.size,
51
+ patches,
52
+ processedCells,
53
+ };
54
+ }
55
+ export function evaluateStreamingNativeWasmFormulas(args) {
56
+ const rowChains = evaluateStreamingNativeWasmRowChains(args);
57
+ const directScalars = evaluateStreamingNativeWasmDirectScalars({
58
+ ...args,
59
+ skippedCells: rowChains.processedCells,
60
+ });
61
+ const rangeAggregates = evaluateStreamingNativeWasmRangeAggregates({
62
+ sheetScans: args.sheetScans,
63
+ resolveFormulaSource: args.resolveFormulaSource,
64
+ skippedCells: new Set([...rowChains.processedCells, ...directScalars.processedCells]),
65
+ });
66
+ const conditionals = evaluateStreamingNativeWasmConditionals({
67
+ ...args,
68
+ skippedCells: new Set([...rowChains.processedCells, ...directScalars.processedCells, ...rangeAggregates.processedCells]),
69
+ });
70
+ const lookups = evaluateStreamingNativeWasmLookups({
71
+ sheetScans: args.sheetScans,
72
+ resolveFormulaSource: args.resolveFormulaSource,
73
+ skippedCells: new Set([
74
+ ...rowChains.processedCells,
75
+ ...directScalars.processedCells,
76
+ ...rangeAggregates.processedCells,
77
+ ...conditionals.processedCells,
78
+ ]),
79
+ });
80
+ return {
81
+ batchCount: rowChains.batchCount + directScalars.batchCount + rangeAggregates.batchCount + conditionals.batchCount + lookups.batchCount,
82
+ evaluatedFormulaCellCount: rowChains.evaluatedFormulaCellCount +
83
+ directScalars.evaluatedFormulaCellCount +
84
+ rangeAggregates.evaluatedFormulaCellCount +
85
+ conditionals.evaluatedFormulaCellCount +
86
+ lookups.evaluatedFormulaCellCount,
87
+ patches: [...rowChains.patches, ...directScalars.patches, ...rangeAggregates.patches, ...conditionals.patches, ...lookups.patches],
88
+ processedCells: new Set([
89
+ ...rowChains.processedCells,
90
+ ...directScalars.processedCells,
91
+ ...rangeAggregates.processedCells,
92
+ ...conditionals.processedCells,
93
+ ...lookups.processedCells,
94
+ ]),
95
+ };
96
+ }
97
+ export function evaluateStreamingNativeWasmDirectScalars(args) {
98
+ const candidates = collectDirectScalarCandidates(args);
99
+ if (candidates.length === 0) {
100
+ return emptyResult();
101
+ }
102
+ const kernel = createKernelSync();
103
+ kernel.init(candidates.length, 1, 1, 1, 1);
104
+ kernel.evalDirectScalarStoreTargetBatch(Uint32Array.from(candidates.map((_candidate, index) => index)), Uint8Array.from(candidates.map((candidate) => candidate.operatorCode)), Uint32Array.from(candidates.map(() => 0xffffffff)), Uint8Array.from(candidates.map(() => ValueTag.Number)), Float64Array.from(candidates.map((candidate) => candidate.leftValue)), Uint16Array.from(candidates.map(() => ErrorCode.None)), Uint32Array.from(candidates.map(() => 0xffffffff)), Uint8Array.from(candidates.map(() => ValueTag.Number)), Float64Array.from(candidates.map((candidate) => candidate.rightValue)), Uint16Array.from(candidates.map(() => ErrorCode.None)), Float64Array.from(candidates.map(() => 0)));
105
+ const tags = kernel.readTags();
106
+ const numbers = kernel.readNumbers();
107
+ const patches = [];
108
+ const processedCells = new Set();
109
+ for (let index = 0; index < candidates.length; index += 1) {
110
+ const candidate = candidates[index];
111
+ const value = numbers[index];
112
+ if (tags[index] !== ValueTag.Number || !Number.isFinite(value)) {
113
+ continue;
114
+ }
115
+ candidate.rowValues.set(candidate.cell.col, { tag: ValueTag.Number, value });
116
+ patches.push(formulaPatch(candidate.cell, value));
117
+ processedCells.add(cellKey(candidate.cell));
118
+ }
119
+ return {
120
+ batchCount: patches.length > 0 ? 1 : 0,
121
+ evaluatedFormulaCellCount: processedCells.size,
122
+ patches,
123
+ processedCells,
124
+ };
125
+ }
126
+ export function evaluateStreamingNativeWasmRangeAggregates(args) {
127
+ const candidates = collectRangeAggregateCandidates(args);
128
+ if (candidates.length === 0) {
129
+ return emptyResult();
130
+ }
131
+ const kernel = createKernelSync();
132
+ const patches = [];
133
+ const processedCells = new Set();
134
+ let batchCount = 0;
135
+ for (const group of groupRangeAggregateCandidates(candidates).values()) {
136
+ if (group.length === 0) {
137
+ continue;
138
+ }
139
+ batchCount += 1;
140
+ const valueCount = group[0].values.cellCount;
141
+ const outTags = new Uint8Array(group.length);
142
+ const outNumbers = new Float64Array(group.length);
143
+ const outErrors = new Uint16Array(group.length);
144
+ kernel.evalDenseCellRangeAggregateBatch(group[0].aggregateKind, Uint8Array.from(group.flatMap((candidate) => candidate.values.tags)), Float64Array.from(group.flatMap((candidate) => candidate.values.numbers)), Uint16Array.from(group.flatMap((candidate) => candidate.values.errors)), group.length, valueCount, outTags, outNumbers, outErrors);
145
+ for (let index = 0; index < group.length; index += 1) {
146
+ const candidate = group[index];
147
+ const tag = outTags[index];
148
+ const number = outNumbers[index];
149
+ if (tag !== ValueTag.Number || !Number.isFinite(number)) {
150
+ continue;
151
+ }
152
+ const value = { tag: ValueTag.Number, value: number };
153
+ candidate.rowValues.set(candidate.cell.col, value);
154
+ patches.push(formulaPatch(candidate.cell, number));
155
+ processedCells.add(cellKey(candidate.cell));
156
+ }
157
+ }
158
+ return {
159
+ batchCount,
160
+ evaluatedFormulaCellCount: processedCells.size,
161
+ patches,
162
+ processedCells,
163
+ };
164
+ }
165
+ function collectRowChainCandidates(args) {
166
+ const candidates = [];
167
+ for (const scan of args.sheetScans.values()) {
168
+ const formulaCellsByRow = formulaCellsByRowNumber(scan.formulaCells);
169
+ for (const [row, rowFormulaCells] of formulaCellsByRow.entries()) {
170
+ const rowValues = scan.rows.get(row);
171
+ if (!rowValues) {
172
+ continue;
173
+ }
174
+ const formulaCellsByColumn = new Map(rowFormulaCells.map((cell) => [cell.col, cell]));
175
+ for (const secondCell of rowFormulaCells) {
176
+ const secondPlan = tryCompileSecondFormula(scan, secondCell, args);
177
+ if (!secondPlan) {
178
+ continue;
179
+ }
180
+ const firstCandidate = resolveFirstFormulaCandidate(scan, secondCell, secondPlan, rowFormulaCells, formulaCellsByColumn, args);
181
+ if (!firstCandidate) {
182
+ continue;
183
+ }
184
+ const { firstCell, firstPlan } = firstCandidate;
185
+ const leftValue = readNumericSource(rowValues, firstPlan.left);
186
+ const rightValue = readNumericSource(rowValues, firstPlan.right);
187
+ if (leftValue === null || rightValue === null || (firstPlan.operatorCode === 5 && rightValue === 0)) {
188
+ continue;
189
+ }
190
+ if (secondPlan.kind === 'affine') {
191
+ candidates.push({
192
+ firstCell,
193
+ secondCell,
194
+ firstOperatorCode: firstPlan.operatorCode,
195
+ secondKind: 'affine',
196
+ secondScale: secondPlan.scale,
197
+ secondOffset: secondPlan.offset,
198
+ leftValue,
199
+ rightValue,
200
+ rowValues,
201
+ });
202
+ continue;
203
+ }
204
+ const denominatorValue = readNumericSource(rowValues, secondPlan.denominator);
205
+ if (denominatorValue === null || denominatorValue === 0) {
206
+ continue;
207
+ }
208
+ candidates.push({
209
+ firstCell,
210
+ secondCell,
211
+ firstOperatorCode: firstPlan.operatorCode,
212
+ secondKind: 'divide',
213
+ denominatorValue,
214
+ leftValue,
215
+ rightValue,
216
+ rowValues,
217
+ });
218
+ }
219
+ }
220
+ }
221
+ return candidates;
222
+ }
223
+ function collectDirectScalarCandidates(args) {
224
+ const candidates = [];
225
+ for (const scan of args.sheetScans.values()) {
226
+ for (const cell of scan.formulaCells) {
227
+ if (args.skippedCells.has(cellKey(cell))) {
228
+ continue;
229
+ }
230
+ const rowValues = scan.rows.get(cell.row);
231
+ if (!rowValues) {
232
+ continue;
233
+ }
234
+ const firstPlan = tryCompileFirstFormula(scan, cell, args);
235
+ const operatorCode = firstPlan ? directScalarOperatorCode(firstPlan.operatorCode) : undefined;
236
+ if (!firstPlan || operatorCode === undefined) {
237
+ continue;
238
+ }
239
+ const leftValue = readNumericSource(rowValues, firstPlan.left);
240
+ const rightValue = readNumericSource(rowValues, firstPlan.right);
241
+ if (leftValue === null || rightValue === null || (firstPlan.operatorCode === 5 && rightValue === 0)) {
242
+ continue;
243
+ }
244
+ candidates.push({
245
+ cell,
246
+ operatorCode,
247
+ leftValue,
248
+ rightValue,
249
+ rowValues,
250
+ });
251
+ }
252
+ }
253
+ return candidates;
254
+ }
255
+ function collectRangeAggregateCandidates(args) {
256
+ const candidates = [];
257
+ for (const scan of args.sheetScans.values()) {
258
+ for (const cell of scan.formulaCells) {
259
+ if (args.skippedCells.has(cellKey(cell))) {
260
+ continue;
261
+ }
262
+ const rowValues = scan.rows.get(cell.row);
263
+ if (!rowValues) {
264
+ continue;
265
+ }
266
+ const plan = tryCompileNativeRangeAggregate(scan, cell, args.resolveFormulaSource);
267
+ if (!plan) {
268
+ continue;
269
+ }
270
+ const values = readTypedRangeAggregateValues(scan, plan.range);
271
+ if (!values) {
272
+ continue;
273
+ }
274
+ candidates.push({
275
+ cell,
276
+ aggregateKind: plan.aggregateKind,
277
+ values,
278
+ rowValues,
279
+ });
280
+ }
281
+ }
282
+ return candidates;
283
+ }
284
+ function tryCompileFirstFormula(scan, cell, args) {
285
+ try {
286
+ return compileFirstFormula(parseFormula(args.resolveFormulaSource(scan, cell)), scan.sheetName, cell.row, cell.col, args.tablesBySheet);
287
+ }
288
+ catch {
289
+ return null;
290
+ }
291
+ }
292
+ function tryCompileSecondFormula(scan, cell, args) {
293
+ try {
294
+ return compileSecondFormula(parseFormula(args.resolveFormulaSource(scan, cell)), scan.sheetName, cell.row, cell.col, args.tablesBySheet);
295
+ }
296
+ catch {
297
+ return null;
298
+ }
299
+ }
300
+ function resolveFirstFormulaCandidate(scan, secondCell, secondPlan, rowFormulaCells, formulaCellsByColumn, args) {
301
+ if (secondPlan.kind !== 'inline-divide') {
302
+ const firstCell = formulaCellsByColumn.get(secondPlan.firstFormulaColumn);
303
+ if (!firstCell) {
304
+ return null;
305
+ }
306
+ const firstPlan = tryCompileFirstFormula(scan, firstCell, args);
307
+ return firstPlan ? { firstCell, firstPlan } : null;
308
+ }
309
+ for (const firstCell of rowFormulaCells) {
310
+ if (firstCell.col === secondCell.col) {
311
+ continue;
312
+ }
313
+ const firstPlan = tryCompileFirstFormula(scan, firstCell, args);
314
+ if (firstPlan && firstFormulaPlansMatch(firstPlan, secondPlan.firstFormula)) {
315
+ return { firstCell, firstPlan };
316
+ }
317
+ }
318
+ return null;
319
+ }
320
+ function firstFormulaPlansMatch(left, right) {
321
+ if (left.operatorCode !== right.operatorCode) {
322
+ return false;
323
+ }
324
+ if (numericSourcesEqual(left.left, right.left) && numericSourcesEqual(left.right, right.right)) {
325
+ return true;
326
+ }
327
+ return (isCommutativeRowPairOperator(left.operatorCode) &&
328
+ numericSourcesEqual(left.left, right.right) &&
329
+ numericSourcesEqual(left.right, right.left));
330
+ }
331
+ function isCommutativeRowPairOperator(operatorCode) {
332
+ return operatorCode === 1 || operatorCode === 4;
333
+ }
334
+ function numericSourcesEqual(left, right) {
335
+ return left.constant === right.constant && left.column === right.column;
336
+ }
337
+ function formulaCellsByRowNumber(formulaCells) {
338
+ const output = new Map();
339
+ for (const cell of formulaCells) {
340
+ const rowCells = output.get(cell.row) ?? [];
341
+ rowCells.push(cell);
342
+ output.set(cell.row, rowCells);
343
+ }
344
+ return output;
345
+ }
346
+ function compileFirstFormula(node, sheetName, row, formulaColumn, tablesBySheet) {
347
+ if (node.kind !== 'BinaryExpr') {
348
+ return null;
349
+ }
350
+ const operatorCode = rowPairOperatorCode(node.operator);
351
+ if (operatorCode === undefined) {
352
+ return null;
353
+ }
354
+ const left = compileNumericSource(node.left, sheetName, row, formulaColumn, tablesBySheet);
355
+ const right = compileNumericSource(node.right, sheetName, row, formulaColumn, tablesBySheet);
356
+ return left && right ? { operatorCode, left, right } : null;
357
+ }
358
+ function rowPairOperatorCode(operator) {
359
+ switch (operator) {
360
+ case '+':
361
+ return 1;
362
+ case '-':
363
+ return 2;
364
+ case '*':
365
+ return 4;
366
+ case '/':
367
+ return 5;
368
+ default:
369
+ return undefined;
370
+ }
371
+ }
372
+ function directScalarOperatorCode(rowPairCode) {
373
+ switch (rowPairCode) {
374
+ case 1:
375
+ return 1;
376
+ case 2:
377
+ return 2;
378
+ case 4:
379
+ return 3;
380
+ case 5:
381
+ return 4;
382
+ default:
383
+ return undefined;
384
+ }
385
+ }
386
+ function compileSecondFormula(node, sheetName, row, formulaColumn, tablesBySheet) {
387
+ if (node.kind !== 'BinaryExpr') {
388
+ return null;
389
+ }
390
+ const leftReference = compileReferenceColumn(node.left, sheetName, row, formulaColumn, tablesBySheet);
391
+ const rightReference = compileReferenceColumn(node.right, sheetName, row, formulaColumn, tablesBySheet);
392
+ if (node.operator === '*') {
393
+ const leftNumber = numberLiteralValue(node.left);
394
+ const rightNumber = numberLiteralValue(node.right);
395
+ if (leftReference !== null && rightNumber !== null) {
396
+ return { kind: 'affine', firstFormulaColumn: leftReference, scale: rightNumber, offset: 0 };
397
+ }
398
+ if (rightReference !== null && leftNumber !== null) {
399
+ return { kind: 'affine', firstFormulaColumn: rightReference, scale: leftNumber, offset: 0 };
400
+ }
401
+ }
402
+ if (node.operator === '+') {
403
+ const leftNumber = numberLiteralValue(node.left);
404
+ const rightNumber = numberLiteralValue(node.right);
405
+ if (leftReference !== null && rightNumber !== null) {
406
+ return { kind: 'affine', firstFormulaColumn: leftReference, scale: 1, offset: rightNumber };
407
+ }
408
+ if (rightReference !== null && leftNumber !== null) {
409
+ return { kind: 'affine', firstFormulaColumn: rightReference, scale: 1, offset: leftNumber };
410
+ }
411
+ }
412
+ if (node.operator === '-') {
413
+ const rightNumber = numberLiteralValue(node.right);
414
+ if (leftReference !== null && rightNumber !== null) {
415
+ return { kind: 'affine', firstFormulaColumn: leftReference, scale: 1, offset: -rightNumber };
416
+ }
417
+ }
418
+ if (node.operator === '/' && leftReference !== null) {
419
+ const denominator = compileNumericSource(node.right, sheetName, row, formulaColumn, tablesBySheet);
420
+ if (denominator) {
421
+ return { kind: 'divide', firstFormulaColumn: leftReference, denominator };
422
+ }
423
+ }
424
+ if (node.operator === '/' && leftReference === null) {
425
+ const firstFormula = compileFirstFormula(node.left, sheetName, row, formulaColumn, tablesBySheet);
426
+ const denominator = compileNumericSource(node.right, sheetName, row, formulaColumn, tablesBySheet);
427
+ if (firstFormula && denominator) {
428
+ return { kind: 'inline-divide', firstFormula, denominator };
429
+ }
430
+ }
431
+ return null;
432
+ }
433
+ function compileNumericSource(node, sheetName, row, formulaColumn, tablesBySheet) {
434
+ const constant = numberLiteralValue(node);
435
+ if (constant !== null) {
436
+ return { constant };
437
+ }
438
+ const column = compileReferenceColumn(node, sheetName, row, formulaColumn, tablesBySheet);
439
+ return column === null ? null : { column };
440
+ }
441
+ function numberLiteralValue(node) {
442
+ return node.kind === 'NumberLiteral' && Number.isFinite(node.value) ? node.value : null;
443
+ }
444
+ function readNumericSource(rowValues, source) {
445
+ if (source.constant !== undefined) {
446
+ return source.constant;
447
+ }
448
+ if (source.column === undefined) {
449
+ return null;
450
+ }
451
+ const value = resolvedCellValue(rowValues.get(source.column));
452
+ return value.tag === ValueTag.Number && Number.isFinite(value.value) ? value.value : null;
453
+ }
454
+ function readTypedRangeAggregateValues(scan, range) {
455
+ const tags = [];
456
+ const numbers = [];
457
+ const errors = [];
458
+ for (let row = range.startRow; row <= range.endRow; row += 1) {
459
+ const rowValues = scan.rows.get(row);
460
+ for (let col = range.startCol; col <= range.endCol; col += 1) {
461
+ appendAggregateValueFields(resolvedCellValue(rowValues?.get(col)), tags, numbers, errors);
462
+ }
463
+ }
464
+ return tags.length === range.cellCount && numbers.length === range.cellCount && errors.length === range.cellCount
465
+ ? { tags, numbers, errors, cellCount: range.cellCount }
466
+ : null;
467
+ }
468
+ function appendAggregateValueFields(value, tags, numbers, errors) {
469
+ tags.push(value.tag);
470
+ switch (value.tag) {
471
+ case ValueTag.Number:
472
+ numbers.push(Number.isFinite(value.value) ? value.value : 0);
473
+ errors.push(ErrorCode.None);
474
+ return;
475
+ case ValueTag.Boolean:
476
+ numbers.push(value.value ? 1 : 0);
477
+ errors.push(ErrorCode.None);
478
+ return;
479
+ case ValueTag.Error:
480
+ numbers.push(0);
481
+ errors.push(value.code);
482
+ return;
483
+ case ValueTag.Empty:
484
+ case ValueTag.String:
485
+ numbers.push(0);
486
+ errors.push(ErrorCode.None);
487
+ return;
488
+ }
489
+ }
490
+ function resolvedCellValue(value) {
491
+ if (value === undefined || isSharedStringReference(value)) {
492
+ return { tag: ValueTag.Empty };
493
+ }
494
+ return value;
495
+ }
496
+ function isSharedStringReference(value) {
497
+ return typeof value === 'object' && value !== null && 'kind' in value && value.kind === 'shared-string';
498
+ }
499
+ function groupCandidates(candidates) {
500
+ const output = new Map();
501
+ for (const candidate of candidates) {
502
+ const key = candidate.secondKind === 'affine'
503
+ ? `affine:${String(candidate.firstOperatorCode)}:${String(candidate.secondScale)}:${String(candidate.secondOffset)}`
504
+ : `divide:${String(candidate.firstOperatorCode)}`;
505
+ const group = output.get(key) ?? [];
506
+ group.push(candidate);
507
+ output.set(key, group);
508
+ }
509
+ return output;
510
+ }
511
+ function groupRangeAggregateCandidates(candidates) {
512
+ const output = new Map();
513
+ for (const candidate of candidates) {
514
+ const key = `${String(candidate.aggregateKind)}:${String(candidate.values.cellCount)}`;
515
+ const group = output.get(key) ?? [];
516
+ group.push(candidate);
517
+ output.set(key, group);
518
+ }
519
+ return output;
520
+ }
521
+ function isAffineRowChainCandidate(candidate) {
522
+ return candidate.secondKind === 'affine';
523
+ }
524
+ function isDivideRowChainCandidate(candidate) {
525
+ return candidate.secondKind === 'divide';
526
+ }
527
+ function formulaPatch(cell, value) {
528
+ return {
529
+ sheetName: cell.sheetName,
530
+ address: cell.address,
531
+ value,
532
+ preserveFormula: true,
533
+ };
534
+ }
535
+ function cellKey(cell) {
536
+ return `${cell.sheetName}!${cell.address}`;
537
+ }
538
+ function emptyResult() {
539
+ return {
540
+ batchCount: 0,
541
+ evaluatedFormulaCellCount: 0,
542
+ patches: [],
543
+ processedCells: new Set(),
544
+ };
545
+ }
546
+ //# sourceMappingURL=streaming-native-row-chain-wasm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming-native-row-chain-wasm.js","sourceRoot":"","sources":["../src/streaming-native-row-chain-wasm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function normalizeStructuredReferenceColumnName(value: string): string;
2
+ export declare function decodeExcelEscapedText(value: string): string;
@@ -0,0 +1,14 @@
1
+ export function normalizeStructuredReferenceColumnName(value) {
2
+ return decodeExcelEscapedText(value).replace(/\r\n?/gu, '\n').trim();
3
+ }
4
+ export function decodeExcelEscapedText(value) {
5
+ const escapedUnderscore = '\uE000';
6
+ return value
7
+ .replace(/_x005F_/giu, escapedUnderscore)
8
+ .replace(/_x([0-9a-fA-F]{4})_/gu, (_match, code) => {
9
+ const codePoint = Number.parseInt(code, 16);
10
+ return Number.isInteger(codePoint) && codePoint >= 0 && codePoint <= 0x10ffff ? String.fromCodePoint(codePoint) : '';
11
+ })
12
+ .replaceAll(escapedUnderscore, '_');
13
+ }
14
+ //# sourceMappingURL=streaming-native-text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming-native-text.js","sourceRoot":"","sources":["../src/streaming-native-text.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,sCAAsC,CAAC,KAAa;IAClE,OAAO,sBAAsB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;AACtE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,MAAM,iBAAiB,GAAG,QAAQ,CAAA;IAClC,OAAO,KAAK;SACT,OAAO,CAAC,YAAY,EAAE,iBAAiB,CAAC;SACxC,OAAO,CAAC,uBAAuB,EAAE,CAAC,MAAM,EAAE,IAAY,EAAE,EAAE;QACzD,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QAC3C,OAAO,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,IAAI,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACtH,CAAC,CAAC;SACD,UAAU,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAA;AACvC,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { type FileXlsxSourceReader } from './file-source.js';
2
+ import { type WorkbookSheetPathEntry } from './workbook-sheet-paths.js';
3
+ import { type XlsxZipEntries, type XlsxZipEntryMetadata } from './zip-reader.js';
4
+ export type StreamingNativeWorkbookOpenPhase = 'open-source' | 'zip-central-directory' | 'workbook-metadata';
5
+ export type StreamingNativeWorkbookOpenErrorReason = 'invalid-or-zip64-xlsx';
6
+ export interface StreamingNativeWorkbookOpenPhaseInfo {
7
+ readonly inputBytes: number;
8
+ }
9
+ export interface StreamingNativeWorkbookCore {
10
+ readonly inputPath: string;
11
+ readonly inputBytes: number;
12
+ readonly source: FileXlsxSourceReader;
13
+ readonly zip: XlsxZipEntries;
14
+ readonly sheetEntries: readonly WorkbookSheetPathEntry[];
15
+ readonly sheetNames: readonly string[];
16
+ readonly entryMetadata: readonly XlsxZipEntryMetadata[];
17
+ }
18
+ export interface StreamingNativeWorkbookCellStats {
19
+ readonly sheetNames: readonly string[];
20
+ readonly nonEmptyCellCount: number;
21
+ }
22
+ export interface StreamingNativeWorkbookPackagePartStats {
23
+ readonly definedNameCount: number;
24
+ readonly tableCount: number;
25
+ readonly pivotTableCount: number;
26
+ readonly chartCount: number;
27
+ readonly macroModuleCount: number;
28
+ readonly macroByteLength: number;
29
+ readonly externalLinkCount: number;
30
+ }
31
+ export declare class StreamingNativeWorkbookOpenError extends Error {
32
+ readonly reason: StreamingNativeWorkbookOpenErrorReason;
33
+ readonly inputBytes: number;
34
+ constructor(message: string, reason: StreamingNativeWorkbookOpenErrorReason, inputBytes: number);
35
+ }
36
+ export declare function openStreamingNativeWorkbookCore(inputPath: string, options?: {
37
+ readonly onPhase?: (phase: StreamingNativeWorkbookOpenPhase, info: StreamingNativeWorkbookOpenPhaseInfo) => void;
38
+ }): StreamingNativeWorkbookCore;
39
+ export declare function closeStreamingNativeWorkbookCore(core: StreamingNativeWorkbookCore): void;
40
+ export declare function withStreamingNativeWorkbookCore<T>(inputPath: string, options: {
41
+ readonly onPhase?: (phase: StreamingNativeWorkbookOpenPhase, info: StreamingNativeWorkbookOpenPhaseInfo) => void;
42
+ }, callback: (core: StreamingNativeWorkbookCore) => T): T;
43
+ export declare function scanStreamingNativeWorkbookCellStats(core: Pick<StreamingNativeWorkbookCore, 'zip' | 'sheetEntries'>): StreamingNativeWorkbookCellStats;
44
+ export declare function scanStreamingNativeWorkbookPackageParts(input: {
45
+ readonly zip: XlsxZipEntries;
46
+ readonly entryMetadata?: readonly XlsxZipEntryMetadata[];
47
+ }): StreamingNativeWorkbookPackagePartStats;