@sheetwrite/wasm 0.1.0 → 0.3.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/package.json +4 -4
- package/pkg/sheetwrite_wasm.d.ts +165 -12
- package/pkg/sheetwrite_wasm.js +511 -14
- package/pkg/sheetwrite_wasm_bg.wasm +0 -0
- package/pkg/sheetwrite_wasm_bg.wasm.d.ts +41 -2
package/package.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sheetwrite/wasm",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Sheetwrite columnar store and data engine (Rust/WASM).",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
|
-
"url": "git+https://github.com/chh-ay/
|
|
9
|
+
"url": "git+https://github.com/chh-ay/sheetwrite.git",
|
|
10
10
|
"directory": "packages/wasm"
|
|
11
11
|
},
|
|
12
|
-
"homepage": "https://
|
|
12
|
+
"homepage": "https://sheetwrite.vercel.app/",
|
|
13
13
|
"bugs": {
|
|
14
|
-
"url": "https://github.com/chh-ay/
|
|
14
|
+
"url": "https://github.com/chh-ay/sheetwrite/issues"
|
|
15
15
|
},
|
|
16
16
|
"keywords": [
|
|
17
17
|
"spreadsheet",
|
package/pkg/sheetwrite_wasm.d.ts
CHANGED
|
@@ -20,10 +20,11 @@ export class CellOut {
|
|
|
20
20
|
export class CellStore {
|
|
21
21
|
free(): void;
|
|
22
22
|
[Symbol.dispose](): void;
|
|
23
|
+
acknowledgeRevision(revision: bigint): void;
|
|
23
24
|
/**
|
|
24
25
|
* Allocate a logical sheet whose cell chunks materialize on page load or edit.
|
|
25
26
|
*/
|
|
26
|
-
addPagedSheet(n_cols: number, row_count: number, chunk_rows: number, byte_budget: number): number;
|
|
27
|
+
addPagedSheet(n_cols: number, row_count: number, chunk_rows: number, byte_budget: number, max_dirty_cells: number): number;
|
|
27
28
|
addRows(sheet: number, at: number, count: number): void;
|
|
28
29
|
/**
|
|
29
30
|
* Allocate a sheet grid and return its numeric handle.
|
|
@@ -33,11 +34,29 @@ export class CellStore {
|
|
|
33
34
|
* Column aggregate over numeric cells. op: 0 sum, 1 avg, 2 min, 3 max, 4 count.
|
|
34
35
|
*/
|
|
35
36
|
aggregate(sheet: number, col: number, op: number): number;
|
|
37
|
+
beginMutation(): bigint;
|
|
36
38
|
beginPageLoad(): void;
|
|
39
|
+
canDirtyCell(sheet: number, row: number, col: number): boolean;
|
|
37
40
|
/**
|
|
38
41
|
* Capture a dense rectangle into an opaque store-local history resource.
|
|
39
42
|
*/
|
|
40
43
|
captureRange(sheet: number, r0: number, c0: number, rows: number, cols: number): RangeSnapshot | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* Capture only persisted references for one sheet. The explicit entry cap
|
|
46
|
+
* bounds allocation for host-side structural admission simulation.
|
|
47
|
+
*/
|
|
48
|
+
captureReferences(sheet: number, max_entries: number): SourceSnapshot | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* Capture only persisted formula/reference sources in a rectangle. The
|
|
51
|
+
* returned opaque object is compact in source cardinality, not cell count.
|
|
52
|
+
*/
|
|
53
|
+
captureSources(sheet: number, r0: number, c0: number, rows: number, cols: number): SourceSnapshot | undefined;
|
|
54
|
+
/**
|
|
55
|
+
* Capture persisted formula/reference sources and derived-spill identity
|
|
56
|
+
* for arbitrary row/column coordinates in one boundary crossing. Offsets
|
|
57
|
+
* follow the caller's row-major coordinate order.
|
|
58
|
+
*/
|
|
59
|
+
captureSourcesForRows(sheet: number, rows: Uint32Array, cols: Uint32Array): SourceSnapshot | undefined;
|
|
41
60
|
/**
|
|
42
61
|
* 0 unloaded, 1 loaded-empty, 2 loaded-value, 3 dirty local edit.
|
|
43
62
|
*/
|
|
@@ -48,6 +67,11 @@ export class CellStore {
|
|
|
48
67
|
*/
|
|
49
68
|
clearRange(sheet: number, r0: number, c0: number, r1: number, c1: number, contents: boolean, style: boolean): boolean;
|
|
50
69
|
colCount(sheet: number): number;
|
|
70
|
+
columnsFullyLoaded(sheet: number, start_row: number, end_row: number, cols: Uint32Array): boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Release geometric growth slack after a bounded bulk ingest.
|
|
73
|
+
*/
|
|
74
|
+
compactStringStorage(): void;
|
|
51
75
|
/**
|
|
52
76
|
* Ctrl+Arrow destination: from `(row, col)` stepping by `(d_row, d_col)`
|
|
53
77
|
* (exactly one of them ±1), return the destination row (vertical moves) or
|
|
@@ -60,13 +84,19 @@ export class CellStore {
|
|
|
60
84
|
*/
|
|
61
85
|
dataEdge(sheet: number, row: number, col: number, d_row: number, d_col: number): number;
|
|
62
86
|
dataEdgeOrdered(sheet: number, order: Uint32Array, row: number, col: number, d_row: number, d_col: number): number;
|
|
87
|
+
dirtyRevision(sheet: number, row: number, col: number): bigint;
|
|
63
88
|
distinctValues(sheet: number, col: number, limit: number): DistinctColumn;
|
|
89
|
+
endMutation(): void;
|
|
64
90
|
endPageLoad(): void;
|
|
65
91
|
/**
|
|
66
92
|
* Data-row indices whose column text contains `needle` (case-insensitive).
|
|
67
93
|
*/
|
|
68
94
|
filterRows(sheet: number, col: number, needle: string): Uint32Array;
|
|
69
95
|
filterRowsMulti(sheet: number, cols: Uint32Array, kinds: Uint8Array, flags: Uint8Array, nums: Float64Array, num_counts: Uint32Array, text_counts: Uint32Array, value_nums: Float64Array, value_texts: string[]): Uint32Array;
|
|
96
|
+
/**
|
|
97
|
+
* Benchmark diagnostic: `[current matrix bytes, peak matrix bytes, allocations]`.
|
|
98
|
+
*/
|
|
99
|
+
formulaMatrixResourceStats(): Float64Array;
|
|
70
100
|
formulaSource(sheet: number, row: number, col: number): string | undefined;
|
|
71
101
|
/**
|
|
72
102
|
* Single-cell read for interactions/tests — never the render hot path.
|
|
@@ -84,16 +114,37 @@ export class CellStore {
|
|
|
84
114
|
* shape as `get_window`, rows taken from `rows` rather than a range.
|
|
85
115
|
*/
|
|
86
116
|
getWindowRows(sheet: number, rows: Uint32Array, cols: Uint32Array): WindowView;
|
|
117
|
+
/**
|
|
118
|
+
* Hydrate one datasource page column while retaining local dirty cells and
|
|
119
|
+
* request-revision exceptions. `protected_offsets` is sorted and relative
|
|
120
|
+
* to `start_row`.
|
|
121
|
+
*/
|
|
122
|
+
hydratePageNumbers(sheet: number, col: number, start_row: number, values: Float64Array, style: number, protected_offsets: Uint32Array): void;
|
|
123
|
+
/**
|
|
124
|
+
* Packed-string counterpart to [`CellStore::hydrate_page_numbers`].
|
|
125
|
+
*/
|
|
126
|
+
hydratePageStringsPacked(sheet: number, col: number, start_row: number, buf: string, utf16_lens: Uint32Array, style: number, protected_offsets: Uint32Array): void;
|
|
87
127
|
insertCols(sheet: number, at: number, count: number): void;
|
|
88
128
|
isFullyLoaded(sheet: number): boolean;
|
|
89
129
|
isPaged(sheet: number): boolean;
|
|
90
130
|
isSheetAlive(sheet: number): boolean;
|
|
131
|
+
markCellCleanRevision(sheet: number, row: number, col: number, revision: bigint): boolean;
|
|
91
132
|
markRangeClean(sheet: number, start_row: number, end_row: number, start_col: number, end_col: number): void;
|
|
133
|
+
memoryStats(): Float64Array;
|
|
92
134
|
constructor();
|
|
135
|
+
pagedDirtyCoordinates(sheet: number): Float64Array;
|
|
93
136
|
/**
|
|
94
|
-
* `[chunks, loaded cells, dirty cells,
|
|
137
|
+
* `[chunks, loaded cells, dirty cells, clean chunk bytes, fully loaded, dirty bytes]`.
|
|
95
138
|
*/
|
|
96
139
|
pagedStats(sheet: number): Float64Array;
|
|
140
|
+
/**
|
|
141
|
+
* Sparse persisted-cell records. Each record starts with
|
|
142
|
+
* `[row, col, kind, number, style, string_id, source_kind, source_length]`.
|
|
143
|
+
* Formula UTF-8 is packed into little-endian u32 words; references append
|
|
144
|
+
* one `[sheet, row, col]` triple. The allocation scales with serialized
|
|
145
|
+
* cells and source bytes, never the logical sheet rectangle.
|
|
146
|
+
*/
|
|
147
|
+
persistedCellData(sheet: number): Float64Array;
|
|
97
148
|
pinRange(sheet: number, start_row: number, end_row: number, cols: Uint32Array): void;
|
|
98
149
|
poolStrings(ids: Uint32Array): string[];
|
|
99
150
|
/**
|
|
@@ -114,11 +165,22 @@ export class CellStore {
|
|
|
114
165
|
* when many downstream formulas reference it.
|
|
115
166
|
*/
|
|
116
167
|
recompute(sheet: number): void;
|
|
168
|
+
/**
|
|
169
|
+
* Recompute the union of every dirty sheet once at the host transaction
|
|
170
|
+
* barrier, including cross-sheet formula and plain-reference dependents.
|
|
171
|
+
*/
|
|
172
|
+
recomputeChanged(): void;
|
|
117
173
|
/**
|
|
118
174
|
* Explicit volatile barrier. `serial` is a UTC spreadsheet serial using
|
|
119
175
|
* the 1899-12-30 epoch; only TODAY/NOW formulas and their dependents dirty.
|
|
120
176
|
*/
|
|
121
177
|
recomputeVolatile(serial: number): boolean;
|
|
178
|
+
referenceTarget(sheet: number, row: number, col: number): Uint32Array | undefined;
|
|
179
|
+
/**
|
|
180
|
+
* Return packed `[source_sheet, source_row, source_col, ...]` references
|
|
181
|
+
* targeting one sheet, bounded before crossing into the host.
|
|
182
|
+
*/
|
|
183
|
+
referencesTargeting(target_sheet: number, max_entries: number): Uint32Array | undefined;
|
|
122
184
|
/**
|
|
123
185
|
* Remap styles over a rectangle using parallel old/new id tables.
|
|
124
186
|
*/
|
|
@@ -130,10 +192,12 @@ export class CellStore {
|
|
|
130
192
|
* Tombstone a stable sheet handle and invalidate every formula reference to it.
|
|
131
193
|
*/
|
|
132
194
|
removeSheet(sheet: number): boolean;
|
|
195
|
+
removeTable(id: string): boolean;
|
|
133
196
|
/**
|
|
134
197
|
* Rename a live stable sheet handle and rewrite every resolved formula AST reference.
|
|
135
198
|
*/
|
|
136
199
|
renameSheet(sheet: number, id: string, name: string): boolean;
|
|
200
|
+
resetFormulaMatrixResourceStats(): void;
|
|
137
201
|
resetQueryResourceStats(): void;
|
|
138
202
|
/**
|
|
139
203
|
* Restore a captured block at a destination of the same dimensions.
|
|
@@ -147,11 +211,13 @@ export class CellStore {
|
|
|
147
211
|
*/
|
|
148
212
|
search(sheet: number, cols: Uint32Array, query: string, case_insensitive: boolean, whole_cell: boolean): Uint32Array;
|
|
149
213
|
/**
|
|
150
|
-
*
|
|
151
|
-
*
|
|
152
|
-
*
|
|
214
|
+
* Atomically write one row-major mixed literal/formula/reference block.
|
|
215
|
+
* Formula/reference offsets are sparse row-major exceptions. Reference
|
|
216
|
+
* targets are packed `[sheet_handle, row, col]` triples. The compact
|
|
217
|
+
* status is `0` success, `1` invalid shape/bounds, `2` invalid or duplicate
|
|
218
|
+
* source metadata, and `3` paged dirty-capacity rejection.
|
|
153
219
|
*/
|
|
154
|
-
setBlock(sheet: number, start_row: number, start_col: number, rows: number, cols: number, kinds: Uint8Array, numbers: Float64Array, texts: string[], styles: Uint32Array):
|
|
220
|
+
setBlock(sheet: number, start_row: number, start_col: number, rows: number, cols: number, kinds: Uint8Array, numbers: Float64Array, texts: string[], styles: Uint32Array, formula_offsets: Uint32Array, formula_sources: string[], reference_offsets: Uint32Array, reference_targets: Uint32Array): number;
|
|
155
221
|
setBool(sheet: number, row: number, col: number, value: boolean, style: number): void;
|
|
156
222
|
/**
|
|
157
223
|
* Bulk-load one column with numbers starting at `start_row`.
|
|
@@ -171,10 +237,10 @@ export class CellStore {
|
|
|
171
237
|
/**
|
|
172
238
|
* Replace a sheet's conditional-format rules. Packed columnar encoding,
|
|
173
239
|
* one entry per rule: `kinds` 0 gt / 1 lt / 2 eqNum / 3 eqStr / 4 eqEmpty /
|
|
174
|
-
* 5 contains; `bounds` = normalized `[r0, c0, r1, c1]`
|
|
175
|
-
* carries the numeric operand; `strs` the text
|
|
176
|
-
* match-case for `contains
|
|
177
|
-
* once
|
|
240
|
+
* 5 contains / 6 boolean formula; `bounds` = normalized `[r0, c0, r1, c1]`
|
|
241
|
+
* per rule; `nums` carries the numeric operand; `strs` the text/formula
|
|
242
|
+
* operand; `flags` bit 0 = match-case for `contains`, bit 1 = stop-if-true.
|
|
243
|
+
* Formula strings are parsed once here, never once per visible cell.
|
|
178
244
|
*/
|
|
179
245
|
setConditionalRules(sheet: number, kinds: Uint8Array, bounds: Uint32Array, nums: Float64Array, strs: string[], flags: Uint8Array): void;
|
|
180
246
|
/**
|
|
@@ -190,7 +256,20 @@ export class CellStore {
|
|
|
190
256
|
setNamedRange(name: string, scope: number, sheet: number, row_start: number, col_start: number, row_end: number, col_end: number): boolean;
|
|
191
257
|
setNumber(sheet: number, row: number, col: number, value: number, style: number): void;
|
|
192
258
|
setSheetName(sheet: number, id: string, name: string): void;
|
|
259
|
+
/**
|
|
260
|
+
* Write one sparse mixed transaction/page/snapshot block without
|
|
261
|
+
* allocating by logical rectangle size. Inside `beginPageLoad`, dirty
|
|
262
|
+
* paged cells are skipped; otherwise the whole sparse write is preflighted.
|
|
263
|
+
*/
|
|
264
|
+
setSparseBlock(sheet: number, start_row: number, start_col: number, rows: number, cols: number, offsets: Uint32Array, kinds: Uint8Array, numbers: Float64Array, texts: string[], styles: Uint32Array, formula_offsets: Uint32Array, formula_sources: string[], reference_offsets: Uint32Array, reference_targets: Uint32Array): number;
|
|
265
|
+
/**
|
|
266
|
+
* Replace the host-owned merge/protection collision ranges. Packed as
|
|
267
|
+
* `[row_start, col_start, row_end, col_end, ...]`; invalid input fails
|
|
268
|
+
* without weakening the old gate.
|
|
269
|
+
*/
|
|
270
|
+
setSpillBlockers(sheet: number, bounds: Uint32Array): boolean;
|
|
193
271
|
setString(sheet: number, row: number, col: number, value: string, style: number): void;
|
|
272
|
+
setTable(id: string, name: string, sheet: number, row_start: number, col_start: number, row_end: number, col_end: number, header_row: boolean, totals_row: boolean, column_ids: string[], column_names: string[]): boolean;
|
|
194
273
|
snapshotNumbers(snapshot: RangeSnapshot): Float64Array;
|
|
195
274
|
snapshotTexts(snapshot: RangeSnapshot): string[];
|
|
196
275
|
/**
|
|
@@ -198,12 +277,28 @@ export class CellStore {
|
|
|
198
277
|
*/
|
|
199
278
|
sortRows(sheet: number, col: number, ascending: boolean): Uint32Array;
|
|
200
279
|
sortRowsMulti(sheet: number, cols: Uint32Array, ascending: Uint8Array, candidates: Uint32Array): Uint32Array;
|
|
280
|
+
spillAnchorCol(sheet: number, row: number, col: number): number;
|
|
281
|
+
/**
|
|
282
|
+
* Stable spill owner coordinate, or `u32::MAX` when `cell` is not part of
|
|
283
|
+
* a materialized spill.
|
|
284
|
+
*/
|
|
285
|
+
spillAnchorRow(sheet: number, row: number, col: number): number;
|
|
286
|
+
/**
|
|
287
|
+
* Row-major mask aligned with render-window layout; `1` marks a derived
|
|
288
|
+
* spill cell and deliberately excludes the anchor.
|
|
289
|
+
*/
|
|
290
|
+
spillDerivedMask(sheet: number, row_start: number, row_end: number, cols: Uint32Array): Uint8Array;
|
|
291
|
+
/**
|
|
292
|
+
* Packed row-major `[anchor_row, anchor_col, ...]` owner coordinates.
|
|
293
|
+
*/
|
|
294
|
+
spillOwnerCoordinates(sheet: number, row_start: number, row_end: number, cols: Uint32Array): Uint32Array;
|
|
201
295
|
/**
|
|
202
296
|
* Current style-dictionary id at a cell; `0` when out of bounds. Used by
|
|
203
297
|
* the host to write derived (reference-shadow) values without disturbing
|
|
204
298
|
* the cell's style.
|
|
205
299
|
*/
|
|
206
300
|
styleIdAt(sheet: number, row: number, col: number): number;
|
|
301
|
+
wasmCommittedBytes(): number;
|
|
207
302
|
}
|
|
208
303
|
|
|
209
304
|
/**
|
|
@@ -244,9 +339,28 @@ export class RangeSnapshot {
|
|
|
244
339
|
formulaOffsets(): Uint32Array;
|
|
245
340
|
formulaSources(): string[];
|
|
246
341
|
kinds(): Uint8Array;
|
|
342
|
+
referenceOffsets(): Uint32Array;
|
|
343
|
+
referenceTargets(): Uint32Array;
|
|
247
344
|
styleIds(): Uint32Array;
|
|
248
345
|
}
|
|
249
346
|
|
|
347
|
+
/**
|
|
348
|
+
* Compact serializable projection of persisted derived-cell sources and spill
|
|
349
|
+
* identity in one range. Offsets are row-major and sorted; reference targets
|
|
350
|
+
* are packed `[sheet_handle, row, col]` triples.
|
|
351
|
+
*/
|
|
352
|
+
export class SourceSnapshot {
|
|
353
|
+
private constructor();
|
|
354
|
+
free(): void;
|
|
355
|
+
[Symbol.dispose](): void;
|
|
356
|
+
byteLength(): number;
|
|
357
|
+
formulaOffsets(): Uint32Array;
|
|
358
|
+
formulaSources(): string[];
|
|
359
|
+
referenceOffsets(): Uint32Array;
|
|
360
|
+
referenceTargets(): Uint32Array;
|
|
361
|
+
spillDerived(): Uint8Array;
|
|
362
|
+
}
|
|
363
|
+
|
|
250
364
|
/**
|
|
251
365
|
* A bulk window of resolved cells, row-major over `n_rows x n_cols`.
|
|
252
366
|
*/
|
|
@@ -300,56 +414,79 @@ export interface InitOutput {
|
|
|
300
414
|
readonly __wbg_cellstore_free: (a: number, b: number) => void;
|
|
301
415
|
readonly __wbg_distinctcolumn_free: (a: number, b: number) => void;
|
|
302
416
|
readonly __wbg_rangesnapshot_free: (a: number, b: number) => void;
|
|
417
|
+
readonly __wbg_sourcesnapshot_free: (a: number, b: number) => void;
|
|
303
418
|
readonly __wbg_windowview_free: (a: number, b: number) => void;
|
|
304
419
|
readonly cellout_kind: (a: number) => number;
|
|
305
420
|
readonly cellout_num: (a: number) => number;
|
|
306
421
|
readonly cellout_string: (a: number) => [number, number];
|
|
307
422
|
readonly cellout_style: (a: number) => number;
|
|
308
|
-
readonly
|
|
423
|
+
readonly cellstore_acknowledgeRevision: (a: number, b: bigint) => void;
|
|
424
|
+
readonly cellstore_addPagedSheet: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
|
309
425
|
readonly cellstore_addRows: (a: number, b: number, c: number, d: number) => void;
|
|
310
426
|
readonly cellstore_addSheet: (a: number, b: number, c: number) => number;
|
|
311
427
|
readonly cellstore_aggregate: (a: number, b: number, c: number, d: number) => number;
|
|
428
|
+
readonly cellstore_beginMutation: (a: number) => bigint;
|
|
312
429
|
readonly cellstore_beginPageLoad: (a: number) => void;
|
|
430
|
+
readonly cellstore_canDirtyCell: (a: number, b: number, c: number, d: number) => number;
|
|
313
431
|
readonly cellstore_captureRange: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
|
432
|
+
readonly cellstore_captureReferences: (a: number, b: number, c: number) => number;
|
|
433
|
+
readonly cellstore_captureSources: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
|
434
|
+
readonly cellstore_captureSourcesForRows: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
|
314
435
|
readonly cellstore_cellState: (a: number, b: number, c: number, d: number) => number;
|
|
315
436
|
readonly cellstore_clearCell: (a: number, b: number, c: number, d: number, e: number) => void;
|
|
316
437
|
readonly cellstore_clearRange: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => number;
|
|
317
438
|
readonly cellstore_colCount: (a: number, b: number) => number;
|
|
439
|
+
readonly cellstore_columnsFullyLoaded: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
|
440
|
+
readonly cellstore_compactStringStorage: (a: number) => void;
|
|
318
441
|
readonly cellstore_dataEdge: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
|
319
442
|
readonly cellstore_dataEdgeOrdered: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => number;
|
|
443
|
+
readonly cellstore_dirtyRevision: (a: number, b: number, c: number, d: number) => bigint;
|
|
320
444
|
readonly cellstore_distinctValues: (a: number, b: number, c: number, d: number) => number;
|
|
445
|
+
readonly cellstore_endMutation: (a: number) => void;
|
|
321
446
|
readonly cellstore_endPageLoad: (a: number) => void;
|
|
322
447
|
readonly cellstore_filterRows: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
323
448
|
readonly cellstore_filterRowsMulti: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number) => [number, number];
|
|
449
|
+
readonly cellstore_formulaMatrixResourceStats: (a: number) => [number, number];
|
|
324
450
|
readonly cellstore_formulaSource: (a: number, b: number, c: number, d: number) => [number, number];
|
|
325
451
|
readonly cellstore_getCell: (a: number, b: number, c: number, d: number) => number;
|
|
326
452
|
readonly cellstore_getWindow: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
|
327
453
|
readonly cellstore_getWindowRows: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
|
454
|
+
readonly cellstore_hydratePageNumbers: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => void;
|
|
455
|
+
readonly cellstore_hydratePageStringsPacked: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => void;
|
|
328
456
|
readonly cellstore_insertCols: (a: number, b: number, c: number, d: number) => void;
|
|
329
457
|
readonly cellstore_isFullyLoaded: (a: number, b: number) => number;
|
|
330
458
|
readonly cellstore_isPaged: (a: number, b: number) => number;
|
|
331
459
|
readonly cellstore_isSheetAlive: (a: number, b: number) => number;
|
|
460
|
+
readonly cellstore_markCellCleanRevision: (a: number, b: number, c: number, d: number, e: bigint) => number;
|
|
332
461
|
readonly cellstore_markRangeClean: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
|
|
462
|
+
readonly cellstore_memoryStats: (a: number) => [number, number];
|
|
333
463
|
readonly cellstore_new: () => number;
|
|
464
|
+
readonly cellstore_pagedDirtyCoordinates: (a: number, b: number) => [number, number];
|
|
334
465
|
readonly cellstore_pagedStats: (a: number, b: number) => [number, number];
|
|
466
|
+
readonly cellstore_persistedCellData: (a: number, b: number) => [number, number];
|
|
335
467
|
readonly cellstore_pinRange: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
|
|
336
468
|
readonly cellstore_poolStrings: (a: number, b: number, c: number) => [number, number];
|
|
337
469
|
readonly cellstore_queryResourceStats: (a: number) => [number, number];
|
|
338
470
|
readonly cellstore_rangeFullyLoaded: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
|
339
471
|
readonly cellstore_rangeStyleIds: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
340
472
|
readonly cellstore_recompute: (a: number, b: number) => void;
|
|
473
|
+
readonly cellstore_recomputeChanged: (a: number) => void;
|
|
341
474
|
readonly cellstore_recomputeVolatile: (a: number, b: number) => number;
|
|
475
|
+
readonly cellstore_referenceTarget: (a: number, b: number, c: number, d: number) => [number, number];
|
|
476
|
+
readonly cellstore_referencesTargeting: (a: number, b: number, c: number) => [number, number];
|
|
342
477
|
readonly cellstore_remapRangeStyles: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => number;
|
|
343
478
|
readonly cellstore_removeCols: (a: number, b: number, c: number, d: number) => void;
|
|
344
479
|
readonly cellstore_removeNamedRange: (a: number, b: number, c: number, d: number) => number;
|
|
345
480
|
readonly cellstore_removeRows: (a: number, b: number, c: number, d: number) => void;
|
|
346
481
|
readonly cellstore_removeSheet: (a: number, b: number) => number;
|
|
482
|
+
readonly cellstore_removeTable: (a: number, b: number, c: number) => number;
|
|
347
483
|
readonly cellstore_renameSheet: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
|
484
|
+
readonly cellstore_resetFormulaMatrixResourceStats: (a: number) => void;
|
|
348
485
|
readonly cellstore_resetQueryResourceStats: (a: number) => void;
|
|
349
486
|
readonly cellstore_restoreRange: (a: number, b: number, c: number, d: number, e: number) => number;
|
|
350
487
|
readonly cellstore_rowCount: (a: number, b: number) => number;
|
|
351
488
|
readonly cellstore_search: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
|
|
352
|
-
readonly cellstore_setBlock: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number) => number;
|
|
489
|
+
readonly cellstore_setBlock: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number) => number;
|
|
353
490
|
readonly cellstore_setBool: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
|
|
354
491
|
readonly cellstore_setColumnNumbers: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
|
|
355
492
|
readonly cellstore_setColumnStrings: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
|
|
@@ -359,12 +496,20 @@ export interface InitOutput {
|
|
|
359
496
|
readonly cellstore_setNamedRange: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => number;
|
|
360
497
|
readonly cellstore_setNumber: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
|
|
361
498
|
readonly cellstore_setSheetName: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
|
|
499
|
+
readonly cellstore_setSparseBlock: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number) => number;
|
|
500
|
+
readonly cellstore_setSpillBlockers: (a: number, b: number, c: number, d: number) => number;
|
|
362
501
|
readonly cellstore_setString: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
|
|
502
|
+
readonly cellstore_setTable: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number) => number;
|
|
363
503
|
readonly cellstore_snapshotNumbers: (a: number, b: number) => [number, number];
|
|
364
504
|
readonly cellstore_snapshotTexts: (a: number, b: number) => [number, number];
|
|
365
505
|
readonly cellstore_sortRows: (a: number, b: number, c: number, d: number) => [number, number];
|
|
366
506
|
readonly cellstore_sortRowsMulti: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
|
|
507
|
+
readonly cellstore_spillAnchorCol: (a: number, b: number, c: number, d: number) => number;
|
|
508
|
+
readonly cellstore_spillAnchorRow: (a: number, b: number, c: number, d: number) => number;
|
|
509
|
+
readonly cellstore_spillDerivedMask: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
510
|
+
readonly cellstore_spillOwnerCoordinates: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
367
511
|
readonly cellstore_styleIdAt: (a: number, b: number, c: number, d: number) => number;
|
|
512
|
+
readonly cellstore_wasmCommittedBytes: (a: number) => number;
|
|
368
513
|
readonly distinctcolumn_takeKinds: (a: number) => [number, number];
|
|
369
514
|
readonly distinctcolumn_takeNumbers: (a: number) => [number, number];
|
|
370
515
|
readonly distinctcolumn_takeTexts: (a: number) => [number, number];
|
|
@@ -372,7 +517,15 @@ export interface InitOutput {
|
|
|
372
517
|
readonly rangesnapshot_formulaOffsets: (a: number) => [number, number];
|
|
373
518
|
readonly rangesnapshot_formulaSources: (a: number) => [number, number];
|
|
374
519
|
readonly rangesnapshot_kinds: (a: number) => [number, number];
|
|
520
|
+
readonly rangesnapshot_referenceOffsets: (a: number) => [number, number];
|
|
521
|
+
readonly rangesnapshot_referenceTargets: (a: number) => [number, number];
|
|
375
522
|
readonly rangesnapshot_styleIds: (a: number) => [number, number];
|
|
523
|
+
readonly sourcesnapshot_byteLength: (a: number) => number;
|
|
524
|
+
readonly sourcesnapshot_formulaOffsets: (a: number) => [number, number];
|
|
525
|
+
readonly sourcesnapshot_formulaSources: (a: number) => [number, number];
|
|
526
|
+
readonly sourcesnapshot_referenceOffsets: (a: number) => [number, number];
|
|
527
|
+
readonly sourcesnapshot_referenceTargets: (a: number) => [number, number];
|
|
528
|
+
readonly sourcesnapshot_spillDerived: (a: number) => [number, number];
|
|
376
529
|
readonly windowview_nCols: (a: number) => number;
|
|
377
530
|
readonly windowview_nRows: (a: number) => number;
|
|
378
531
|
readonly windowview_takeCondMatches: (a: number) => [number, number];
|
package/pkg/sheetwrite_wasm.js
CHANGED
|
@@ -70,16 +70,23 @@ export class CellStore {
|
|
|
70
70
|
const ptr = this.__destroy_into_raw();
|
|
71
71
|
wasm.__wbg_cellstore_free(ptr, 0);
|
|
72
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* @param {bigint} revision
|
|
75
|
+
*/
|
|
76
|
+
acknowledgeRevision(revision) {
|
|
77
|
+
wasm.cellstore_acknowledgeRevision(this.__wbg_ptr, revision);
|
|
78
|
+
}
|
|
73
79
|
/**
|
|
74
80
|
* Allocate a logical sheet whose cell chunks materialize on page load or edit.
|
|
75
81
|
* @param {number} n_cols
|
|
76
82
|
* @param {number} row_count
|
|
77
83
|
* @param {number} chunk_rows
|
|
78
84
|
* @param {number} byte_budget
|
|
85
|
+
* @param {number} max_dirty_cells
|
|
79
86
|
* @returns {number}
|
|
80
87
|
*/
|
|
81
|
-
addPagedSheet(n_cols, row_count, chunk_rows, byte_budget) {
|
|
82
|
-
const ret = wasm.cellstore_addPagedSheet(this.__wbg_ptr, n_cols, row_count, chunk_rows, byte_budget);
|
|
88
|
+
addPagedSheet(n_cols, row_count, chunk_rows, byte_budget, max_dirty_cells) {
|
|
89
|
+
const ret = wasm.cellstore_addPagedSheet(this.__wbg_ptr, n_cols, row_count, chunk_rows, byte_budget, max_dirty_cells);
|
|
83
90
|
return ret >>> 0;
|
|
84
91
|
}
|
|
85
92
|
/**
|
|
@@ -111,9 +118,26 @@ export class CellStore {
|
|
|
111
118
|
const ret = wasm.cellstore_aggregate(this.__wbg_ptr, sheet, col, op);
|
|
112
119
|
return ret;
|
|
113
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
* @returns {bigint}
|
|
123
|
+
*/
|
|
124
|
+
beginMutation() {
|
|
125
|
+
const ret = wasm.cellstore_beginMutation(this.__wbg_ptr);
|
|
126
|
+
return BigInt.asUintN(64, ret);
|
|
127
|
+
}
|
|
114
128
|
beginPageLoad() {
|
|
115
129
|
wasm.cellstore_beginPageLoad(this.__wbg_ptr);
|
|
116
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* @param {number} sheet
|
|
133
|
+
* @param {number} row
|
|
134
|
+
* @param {number} col
|
|
135
|
+
* @returns {boolean}
|
|
136
|
+
*/
|
|
137
|
+
canDirtyCell(sheet, row, col) {
|
|
138
|
+
const ret = wasm.cellstore_canDirtyCell(this.__wbg_ptr, sheet, row, col);
|
|
139
|
+
return ret !== 0;
|
|
140
|
+
}
|
|
117
141
|
/**
|
|
118
142
|
* Capture a dense rectangle into an opaque store-local history resource.
|
|
119
143
|
* @param {number} sheet
|
|
@@ -127,6 +151,48 @@ export class CellStore {
|
|
|
127
151
|
const ret = wasm.cellstore_captureRange(this.__wbg_ptr, sheet, r0, c0, rows, cols);
|
|
128
152
|
return ret === 0 ? undefined : RangeSnapshot.__wrap(ret);
|
|
129
153
|
}
|
|
154
|
+
/**
|
|
155
|
+
* Capture only persisted references for one sheet. The explicit entry cap
|
|
156
|
+
* bounds allocation for host-side structural admission simulation.
|
|
157
|
+
* @param {number} sheet
|
|
158
|
+
* @param {number} max_entries
|
|
159
|
+
* @returns {SourceSnapshot | undefined}
|
|
160
|
+
*/
|
|
161
|
+
captureReferences(sheet, max_entries) {
|
|
162
|
+
const ret = wasm.cellstore_captureReferences(this.__wbg_ptr, sheet, max_entries);
|
|
163
|
+
return ret === 0 ? undefined : SourceSnapshot.__wrap(ret);
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Capture only persisted formula/reference sources in a rectangle. The
|
|
167
|
+
* returned opaque object is compact in source cardinality, not cell count.
|
|
168
|
+
* @param {number} sheet
|
|
169
|
+
* @param {number} r0
|
|
170
|
+
* @param {number} c0
|
|
171
|
+
* @param {number} rows
|
|
172
|
+
* @param {number} cols
|
|
173
|
+
* @returns {SourceSnapshot | undefined}
|
|
174
|
+
*/
|
|
175
|
+
captureSources(sheet, r0, c0, rows, cols) {
|
|
176
|
+
const ret = wasm.cellstore_captureSources(this.__wbg_ptr, sheet, r0, c0, rows, cols);
|
|
177
|
+
return ret === 0 ? undefined : SourceSnapshot.__wrap(ret);
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Capture persisted formula/reference sources and derived-spill identity
|
|
181
|
+
* for arbitrary row/column coordinates in one boundary crossing. Offsets
|
|
182
|
+
* follow the caller's row-major coordinate order.
|
|
183
|
+
* @param {number} sheet
|
|
184
|
+
* @param {Uint32Array} rows
|
|
185
|
+
* @param {Uint32Array} cols
|
|
186
|
+
* @returns {SourceSnapshot | undefined}
|
|
187
|
+
*/
|
|
188
|
+
captureSourcesForRows(sheet, rows, cols) {
|
|
189
|
+
const ptr0 = passArray32ToWasm0(rows, wasm.__wbindgen_malloc);
|
|
190
|
+
const len0 = WASM_VECTOR_LEN;
|
|
191
|
+
const ptr1 = passArray32ToWasm0(cols, wasm.__wbindgen_malloc);
|
|
192
|
+
const len1 = WASM_VECTOR_LEN;
|
|
193
|
+
const ret = wasm.cellstore_captureSourcesForRows(this.__wbg_ptr, sheet, ptr0, len0, ptr1, len1);
|
|
194
|
+
return ret === 0 ? undefined : SourceSnapshot.__wrap(ret);
|
|
195
|
+
}
|
|
130
196
|
/**
|
|
131
197
|
* 0 unloaded, 1 loaded-empty, 2 loaded-value, 3 dirty local edit.
|
|
132
198
|
* @param {number} sheet
|
|
@@ -170,6 +236,25 @@ export class CellStore {
|
|
|
170
236
|
const ret = wasm.cellstore_colCount(this.__wbg_ptr, sheet);
|
|
171
237
|
return ret >>> 0;
|
|
172
238
|
}
|
|
239
|
+
/**
|
|
240
|
+
* @param {number} sheet
|
|
241
|
+
* @param {number} start_row
|
|
242
|
+
* @param {number} end_row
|
|
243
|
+
* @param {Uint32Array} cols
|
|
244
|
+
* @returns {boolean}
|
|
245
|
+
*/
|
|
246
|
+
columnsFullyLoaded(sheet, start_row, end_row, cols) {
|
|
247
|
+
const ptr0 = passArray32ToWasm0(cols, wasm.__wbindgen_malloc);
|
|
248
|
+
const len0 = WASM_VECTOR_LEN;
|
|
249
|
+
const ret = wasm.cellstore_columnsFullyLoaded(this.__wbg_ptr, sheet, start_row, end_row, ptr0, len0);
|
|
250
|
+
return ret !== 0;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Release geometric growth slack after a bounded bulk ingest.
|
|
254
|
+
*/
|
|
255
|
+
compactStringStorage() {
|
|
256
|
+
wasm.cellstore_compactStringStorage(this.__wbg_ptr);
|
|
257
|
+
}
|
|
173
258
|
/**
|
|
174
259
|
* Ctrl+Arrow destination: from `(row, col)` stepping by `(d_row, d_col)`
|
|
175
260
|
* (exactly one of them ±1), return the destination row (vertical moves) or
|
|
@@ -205,6 +290,16 @@ export class CellStore {
|
|
|
205
290
|
const ret = wasm.cellstore_dataEdgeOrdered(this.__wbg_ptr, sheet, ptr0, len0, row, col, d_row, d_col);
|
|
206
291
|
return ret >>> 0;
|
|
207
292
|
}
|
|
293
|
+
/**
|
|
294
|
+
* @param {number} sheet
|
|
295
|
+
* @param {number} row
|
|
296
|
+
* @param {number} col
|
|
297
|
+
* @returns {bigint}
|
|
298
|
+
*/
|
|
299
|
+
dirtyRevision(sheet, row, col) {
|
|
300
|
+
const ret = wasm.cellstore_dirtyRevision(this.__wbg_ptr, sheet, row, col);
|
|
301
|
+
return BigInt.asUintN(64, ret);
|
|
302
|
+
}
|
|
208
303
|
/**
|
|
209
304
|
* @param {number} sheet
|
|
210
305
|
* @param {number} col
|
|
@@ -215,6 +310,9 @@ export class CellStore {
|
|
|
215
310
|
const ret = wasm.cellstore_distinctValues(this.__wbg_ptr, sheet, col, limit);
|
|
216
311
|
return DistinctColumn.__wrap(ret);
|
|
217
312
|
}
|
|
313
|
+
endMutation() {
|
|
314
|
+
wasm.cellstore_endMutation(this.__wbg_ptr);
|
|
315
|
+
}
|
|
218
316
|
endPageLoad() {
|
|
219
317
|
wasm.cellstore_endPageLoad(this.__wbg_ptr);
|
|
220
318
|
}
|
|
@@ -267,6 +365,16 @@ export class CellStore {
|
|
|
267
365
|
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
268
366
|
return v9;
|
|
269
367
|
}
|
|
368
|
+
/**
|
|
369
|
+
* Benchmark diagnostic: `[current matrix bytes, peak matrix bytes, allocations]`.
|
|
370
|
+
* @returns {Float64Array}
|
|
371
|
+
*/
|
|
372
|
+
formulaMatrixResourceStats() {
|
|
373
|
+
const ret = wasm.cellstore_formulaMatrixResourceStats(this.__wbg_ptr);
|
|
374
|
+
var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
|
|
375
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
|
|
376
|
+
return v1;
|
|
377
|
+
}
|
|
270
378
|
/**
|
|
271
379
|
* @param {number} sheet
|
|
272
380
|
* @param {number} row
|
|
@@ -326,6 +434,43 @@ export class CellStore {
|
|
|
326
434
|
const ret = wasm.cellstore_getWindowRows(this.__wbg_ptr, sheet, ptr0, len0, ptr1, len1);
|
|
327
435
|
return WindowView.__wrap(ret);
|
|
328
436
|
}
|
|
437
|
+
/**
|
|
438
|
+
* Hydrate one datasource page column while retaining local dirty cells and
|
|
439
|
+
* request-revision exceptions. `protected_offsets` is sorted and relative
|
|
440
|
+
* to `start_row`.
|
|
441
|
+
* @param {number} sheet
|
|
442
|
+
* @param {number} col
|
|
443
|
+
* @param {number} start_row
|
|
444
|
+
* @param {Float64Array} values
|
|
445
|
+
* @param {number} style
|
|
446
|
+
* @param {Uint32Array} protected_offsets
|
|
447
|
+
*/
|
|
448
|
+
hydratePageNumbers(sheet, col, start_row, values, style, protected_offsets) {
|
|
449
|
+
const ptr0 = passArrayF64ToWasm0(values, wasm.__wbindgen_malloc);
|
|
450
|
+
const len0 = WASM_VECTOR_LEN;
|
|
451
|
+
const ptr1 = passArray32ToWasm0(protected_offsets, wasm.__wbindgen_malloc);
|
|
452
|
+
const len1 = WASM_VECTOR_LEN;
|
|
453
|
+
wasm.cellstore_hydratePageNumbers(this.__wbg_ptr, sheet, col, start_row, ptr0, len0, style, ptr1, len1);
|
|
454
|
+
}
|
|
455
|
+
/**
|
|
456
|
+
* Packed-string counterpart to [`CellStore::hydrate_page_numbers`].
|
|
457
|
+
* @param {number} sheet
|
|
458
|
+
* @param {number} col
|
|
459
|
+
* @param {number} start_row
|
|
460
|
+
* @param {string} buf
|
|
461
|
+
* @param {Uint32Array} utf16_lens
|
|
462
|
+
* @param {number} style
|
|
463
|
+
* @param {Uint32Array} protected_offsets
|
|
464
|
+
*/
|
|
465
|
+
hydratePageStringsPacked(sheet, col, start_row, buf, utf16_lens, style, protected_offsets) {
|
|
466
|
+
const ptr0 = passStringToWasm0(buf, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
467
|
+
const len0 = WASM_VECTOR_LEN;
|
|
468
|
+
const ptr1 = passArray32ToWasm0(utf16_lens, wasm.__wbindgen_malloc);
|
|
469
|
+
const len1 = WASM_VECTOR_LEN;
|
|
470
|
+
const ptr2 = passArray32ToWasm0(protected_offsets, wasm.__wbindgen_malloc);
|
|
471
|
+
const len2 = WASM_VECTOR_LEN;
|
|
472
|
+
wasm.cellstore_hydratePageStringsPacked(this.__wbg_ptr, sheet, col, start_row, ptr0, len0, ptr1, len1, style, ptr2, len2);
|
|
473
|
+
}
|
|
329
474
|
/**
|
|
330
475
|
* @param {number} sheet
|
|
331
476
|
* @param {number} at
|
|
@@ -358,6 +503,17 @@ export class CellStore {
|
|
|
358
503
|
const ret = wasm.cellstore_isSheetAlive(this.__wbg_ptr, sheet);
|
|
359
504
|
return ret !== 0;
|
|
360
505
|
}
|
|
506
|
+
/**
|
|
507
|
+
* @param {number} sheet
|
|
508
|
+
* @param {number} row
|
|
509
|
+
* @param {number} col
|
|
510
|
+
* @param {bigint} revision
|
|
511
|
+
* @returns {boolean}
|
|
512
|
+
*/
|
|
513
|
+
markCellCleanRevision(sheet, row, col, revision) {
|
|
514
|
+
const ret = wasm.cellstore_markCellCleanRevision(this.__wbg_ptr, sheet, row, col, revision);
|
|
515
|
+
return ret !== 0;
|
|
516
|
+
}
|
|
361
517
|
/**
|
|
362
518
|
* @param {number} sheet
|
|
363
519
|
* @param {number} start_row
|
|
@@ -368,6 +524,15 @@ export class CellStore {
|
|
|
368
524
|
markRangeClean(sheet, start_row, end_row, start_col, end_col) {
|
|
369
525
|
wasm.cellstore_markRangeClean(this.__wbg_ptr, sheet, start_row, end_row, start_col, end_col);
|
|
370
526
|
}
|
|
527
|
+
/**
|
|
528
|
+
* @returns {Float64Array}
|
|
529
|
+
*/
|
|
530
|
+
memoryStats() {
|
|
531
|
+
const ret = wasm.cellstore_memoryStats(this.__wbg_ptr);
|
|
532
|
+
var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
|
|
533
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
|
|
534
|
+
return v1;
|
|
535
|
+
}
|
|
371
536
|
constructor() {
|
|
372
537
|
const ret = wasm.cellstore_new();
|
|
373
538
|
this.__wbg_ptr = ret;
|
|
@@ -375,7 +540,17 @@ export class CellStore {
|
|
|
375
540
|
return this;
|
|
376
541
|
}
|
|
377
542
|
/**
|
|
378
|
-
*
|
|
543
|
+
* @param {number} sheet
|
|
544
|
+
* @returns {Float64Array}
|
|
545
|
+
*/
|
|
546
|
+
pagedDirtyCoordinates(sheet) {
|
|
547
|
+
const ret = wasm.cellstore_pagedDirtyCoordinates(this.__wbg_ptr, sheet);
|
|
548
|
+
var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
|
|
549
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
|
|
550
|
+
return v1;
|
|
551
|
+
}
|
|
552
|
+
/**
|
|
553
|
+
* `[chunks, loaded cells, dirty cells, clean chunk bytes, fully loaded, dirty bytes]`.
|
|
379
554
|
* @param {number} sheet
|
|
380
555
|
* @returns {Float64Array}
|
|
381
556
|
*/
|
|
@@ -385,6 +560,21 @@ export class CellStore {
|
|
|
385
560
|
wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
|
|
386
561
|
return v1;
|
|
387
562
|
}
|
|
563
|
+
/**
|
|
564
|
+
* Sparse persisted-cell records. Each record starts with
|
|
565
|
+
* `[row, col, kind, number, style, string_id, source_kind, source_length]`.
|
|
566
|
+
* Formula UTF-8 is packed into little-endian u32 words; references append
|
|
567
|
+
* one `[sheet, row, col]` triple. The allocation scales with serialized
|
|
568
|
+
* cells and source bytes, never the logical sheet rectangle.
|
|
569
|
+
* @param {number} sheet
|
|
570
|
+
* @returns {Float64Array}
|
|
571
|
+
*/
|
|
572
|
+
persistedCellData(sheet) {
|
|
573
|
+
const ret = wasm.cellstore_persistedCellData(this.__wbg_ptr, sheet);
|
|
574
|
+
var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
|
|
575
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
|
|
576
|
+
return v1;
|
|
577
|
+
}
|
|
388
578
|
/**
|
|
389
579
|
* @param {number} sheet
|
|
390
580
|
* @param {number} start_row
|
|
@@ -457,6 +647,13 @@ export class CellStore {
|
|
|
457
647
|
recompute(sheet) {
|
|
458
648
|
wasm.cellstore_recompute(this.__wbg_ptr, sheet);
|
|
459
649
|
}
|
|
650
|
+
/**
|
|
651
|
+
* Recompute the union of every dirty sheet once at the host transaction
|
|
652
|
+
* barrier, including cross-sheet formula and plain-reference dependents.
|
|
653
|
+
*/
|
|
654
|
+
recomputeChanged() {
|
|
655
|
+
wasm.cellstore_recomputeChanged(this.__wbg_ptr);
|
|
656
|
+
}
|
|
460
657
|
/**
|
|
461
658
|
* Explicit volatile barrier. `serial` is a UTC spreadsheet serial using
|
|
462
659
|
* the 1899-12-30 epoch; only TODAY/NOW formulas and their dependents dirty.
|
|
@@ -467,6 +664,37 @@ export class CellStore {
|
|
|
467
664
|
const ret = wasm.cellstore_recomputeVolatile(this.__wbg_ptr, serial);
|
|
468
665
|
return ret !== 0;
|
|
469
666
|
}
|
|
667
|
+
/**
|
|
668
|
+
* @param {number} sheet
|
|
669
|
+
* @param {number} row
|
|
670
|
+
* @param {number} col
|
|
671
|
+
* @returns {Uint32Array | undefined}
|
|
672
|
+
*/
|
|
673
|
+
referenceTarget(sheet, row, col) {
|
|
674
|
+
const ret = wasm.cellstore_referenceTarget(this.__wbg_ptr, sheet, row, col);
|
|
675
|
+
let v1;
|
|
676
|
+
if (ret[0] !== 0) {
|
|
677
|
+
v1 = getArrayU32FromWasm0(ret[0], ret[1]).slice();
|
|
678
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
679
|
+
}
|
|
680
|
+
return v1;
|
|
681
|
+
}
|
|
682
|
+
/**
|
|
683
|
+
* Return packed `[source_sheet, source_row, source_col, ...]` references
|
|
684
|
+
* targeting one sheet, bounded before crossing into the host.
|
|
685
|
+
* @param {number} target_sheet
|
|
686
|
+
* @param {number} max_entries
|
|
687
|
+
* @returns {Uint32Array | undefined}
|
|
688
|
+
*/
|
|
689
|
+
referencesTargeting(target_sheet, max_entries) {
|
|
690
|
+
const ret = wasm.cellstore_referencesTargeting(this.__wbg_ptr, target_sheet, max_entries);
|
|
691
|
+
let v1;
|
|
692
|
+
if (ret[0] !== 0) {
|
|
693
|
+
v1 = getArrayU32FromWasm0(ret[0], ret[1]).slice();
|
|
694
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
695
|
+
}
|
|
696
|
+
return v1;
|
|
697
|
+
}
|
|
470
698
|
/**
|
|
471
699
|
* Remap styles over a rectangle using parallel old/new id tables.
|
|
472
700
|
* @param {number} sheet
|
|
@@ -522,6 +750,16 @@ export class CellStore {
|
|
|
522
750
|
const ret = wasm.cellstore_removeSheet(this.__wbg_ptr, sheet);
|
|
523
751
|
return ret !== 0;
|
|
524
752
|
}
|
|
753
|
+
/**
|
|
754
|
+
* @param {string} id
|
|
755
|
+
* @returns {boolean}
|
|
756
|
+
*/
|
|
757
|
+
removeTable(id) {
|
|
758
|
+
const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
759
|
+
const len0 = WASM_VECTOR_LEN;
|
|
760
|
+
const ret = wasm.cellstore_removeTable(this.__wbg_ptr, ptr0, len0);
|
|
761
|
+
return ret !== 0;
|
|
762
|
+
}
|
|
525
763
|
/**
|
|
526
764
|
* Rename a live stable sheet handle and rewrite every resolved formula AST reference.
|
|
527
765
|
* @param {number} sheet
|
|
@@ -537,6 +775,9 @@ export class CellStore {
|
|
|
537
775
|
const ret = wasm.cellstore_renameSheet(this.__wbg_ptr, sheet, ptr0, len0, ptr1, len1);
|
|
538
776
|
return ret !== 0;
|
|
539
777
|
}
|
|
778
|
+
resetFormulaMatrixResourceStats() {
|
|
779
|
+
wasm.cellstore_resetFormulaMatrixResourceStats(this.__wbg_ptr);
|
|
780
|
+
}
|
|
540
781
|
resetQueryResourceStats() {
|
|
541
782
|
wasm.cellstore_resetQueryResourceStats(this.__wbg_ptr);
|
|
542
783
|
}
|
|
@@ -583,9 +824,11 @@ export class CellStore {
|
|
|
583
824
|
return v3;
|
|
584
825
|
}
|
|
585
826
|
/**
|
|
586
|
-
*
|
|
587
|
-
*
|
|
588
|
-
*
|
|
827
|
+
* Atomically write one row-major mixed literal/formula/reference block.
|
|
828
|
+
* Formula/reference offsets are sparse row-major exceptions. Reference
|
|
829
|
+
* targets are packed `[sheet_handle, row, col]` triples. The compact
|
|
830
|
+
* status is `0` success, `1` invalid shape/bounds, `2` invalid or duplicate
|
|
831
|
+
* source metadata, and `3` paged dirty-capacity rejection.
|
|
589
832
|
* @param {number} sheet
|
|
590
833
|
* @param {number} start_row
|
|
591
834
|
* @param {number} start_col
|
|
@@ -595,9 +838,13 @@ export class CellStore {
|
|
|
595
838
|
* @param {Float64Array} numbers
|
|
596
839
|
* @param {string[]} texts
|
|
597
840
|
* @param {Uint32Array} styles
|
|
598
|
-
* @
|
|
841
|
+
* @param {Uint32Array} formula_offsets
|
|
842
|
+
* @param {string[]} formula_sources
|
|
843
|
+
* @param {Uint32Array} reference_offsets
|
|
844
|
+
* @param {Uint32Array} reference_targets
|
|
845
|
+
* @returns {number}
|
|
599
846
|
*/
|
|
600
|
-
setBlock(sheet, start_row, start_col, rows, cols, kinds, numbers, texts, styles) {
|
|
847
|
+
setBlock(sheet, start_row, start_col, rows, cols, kinds, numbers, texts, styles, formula_offsets, formula_sources, reference_offsets, reference_targets) {
|
|
601
848
|
const ptr0 = passArray8ToWasm0(kinds, wasm.__wbindgen_malloc);
|
|
602
849
|
const len0 = WASM_VECTOR_LEN;
|
|
603
850
|
const ptr1 = passArrayF64ToWasm0(numbers, wasm.__wbindgen_malloc);
|
|
@@ -606,8 +853,16 @@ export class CellStore {
|
|
|
606
853
|
const len2 = WASM_VECTOR_LEN;
|
|
607
854
|
const ptr3 = passArray32ToWasm0(styles, wasm.__wbindgen_malloc);
|
|
608
855
|
const len3 = WASM_VECTOR_LEN;
|
|
609
|
-
const
|
|
610
|
-
|
|
856
|
+
const ptr4 = passArray32ToWasm0(formula_offsets, wasm.__wbindgen_malloc);
|
|
857
|
+
const len4 = WASM_VECTOR_LEN;
|
|
858
|
+
const ptr5 = passArrayJsValueToWasm0(formula_sources, wasm.__wbindgen_malloc);
|
|
859
|
+
const len5 = WASM_VECTOR_LEN;
|
|
860
|
+
const ptr6 = passArray32ToWasm0(reference_offsets, wasm.__wbindgen_malloc);
|
|
861
|
+
const len6 = WASM_VECTOR_LEN;
|
|
862
|
+
const ptr7 = passArray32ToWasm0(reference_targets, wasm.__wbindgen_malloc);
|
|
863
|
+
const len7 = WASM_VECTOR_LEN;
|
|
864
|
+
const ret = wasm.cellstore_setBlock(this.__wbg_ptr, sheet, start_row, start_col, rows, cols, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7);
|
|
865
|
+
return ret >>> 0;
|
|
611
866
|
}
|
|
612
867
|
/**
|
|
613
868
|
* @param {number} sheet
|
|
@@ -667,10 +922,10 @@ export class CellStore {
|
|
|
667
922
|
/**
|
|
668
923
|
* Replace a sheet's conditional-format rules. Packed columnar encoding,
|
|
669
924
|
* one entry per rule: `kinds` 0 gt / 1 lt / 2 eqNum / 3 eqStr / 4 eqEmpty /
|
|
670
|
-
* 5 contains; `bounds` = normalized `[r0, c0, r1, c1]`
|
|
671
|
-
* carries the numeric operand; `strs` the text
|
|
672
|
-
* match-case for `contains
|
|
673
|
-
* once
|
|
925
|
+
* 5 contains / 6 boolean formula; `bounds` = normalized `[r0, c0, r1, c1]`
|
|
926
|
+
* per rule; `nums` carries the numeric operand; `strs` the text/formula
|
|
927
|
+
* operand; `flags` bit 0 = match-case for `contains`, bit 1 = stop-if-true.
|
|
928
|
+
* Formula strings are parsed once here, never once per visible cell.
|
|
674
929
|
* @param {number} sheet
|
|
675
930
|
* @param {Uint8Array} kinds
|
|
676
931
|
* @param {Uint32Array} bounds
|
|
@@ -750,6 +1005,62 @@ export class CellStore {
|
|
|
750
1005
|
const len1 = WASM_VECTOR_LEN;
|
|
751
1006
|
wasm.cellstore_setSheetName(this.__wbg_ptr, sheet, ptr0, len0, ptr1, len1);
|
|
752
1007
|
}
|
|
1008
|
+
/**
|
|
1009
|
+
* Write one sparse mixed transaction/page/snapshot block without
|
|
1010
|
+
* allocating by logical rectangle size. Inside `beginPageLoad`, dirty
|
|
1011
|
+
* paged cells are skipped; otherwise the whole sparse write is preflighted.
|
|
1012
|
+
* @param {number} sheet
|
|
1013
|
+
* @param {number} start_row
|
|
1014
|
+
* @param {number} start_col
|
|
1015
|
+
* @param {number} rows
|
|
1016
|
+
* @param {number} cols
|
|
1017
|
+
* @param {Uint32Array} offsets
|
|
1018
|
+
* @param {Uint8Array} kinds
|
|
1019
|
+
* @param {Float64Array} numbers
|
|
1020
|
+
* @param {string[]} texts
|
|
1021
|
+
* @param {Uint32Array} styles
|
|
1022
|
+
* @param {Uint32Array} formula_offsets
|
|
1023
|
+
* @param {string[]} formula_sources
|
|
1024
|
+
* @param {Uint32Array} reference_offsets
|
|
1025
|
+
* @param {Uint32Array} reference_targets
|
|
1026
|
+
* @returns {number}
|
|
1027
|
+
*/
|
|
1028
|
+
setSparseBlock(sheet, start_row, start_col, rows, cols, offsets, kinds, numbers, texts, styles, formula_offsets, formula_sources, reference_offsets, reference_targets) {
|
|
1029
|
+
const ptr0 = passArray32ToWasm0(offsets, wasm.__wbindgen_malloc);
|
|
1030
|
+
const len0 = WASM_VECTOR_LEN;
|
|
1031
|
+
const ptr1 = passArray8ToWasm0(kinds, wasm.__wbindgen_malloc);
|
|
1032
|
+
const len1 = WASM_VECTOR_LEN;
|
|
1033
|
+
const ptr2 = passArrayF64ToWasm0(numbers, wasm.__wbindgen_malloc);
|
|
1034
|
+
const len2 = WASM_VECTOR_LEN;
|
|
1035
|
+
const ptr3 = passArrayJsValueToWasm0(texts, wasm.__wbindgen_malloc);
|
|
1036
|
+
const len3 = WASM_VECTOR_LEN;
|
|
1037
|
+
const ptr4 = passArray32ToWasm0(styles, wasm.__wbindgen_malloc);
|
|
1038
|
+
const len4 = WASM_VECTOR_LEN;
|
|
1039
|
+
const ptr5 = passArray32ToWasm0(formula_offsets, wasm.__wbindgen_malloc);
|
|
1040
|
+
const len5 = WASM_VECTOR_LEN;
|
|
1041
|
+
const ptr6 = passArrayJsValueToWasm0(formula_sources, wasm.__wbindgen_malloc);
|
|
1042
|
+
const len6 = WASM_VECTOR_LEN;
|
|
1043
|
+
const ptr7 = passArray32ToWasm0(reference_offsets, wasm.__wbindgen_malloc);
|
|
1044
|
+
const len7 = WASM_VECTOR_LEN;
|
|
1045
|
+
const ptr8 = passArray32ToWasm0(reference_targets, wasm.__wbindgen_malloc);
|
|
1046
|
+
const len8 = WASM_VECTOR_LEN;
|
|
1047
|
+
const ret = wasm.cellstore_setSparseBlock(this.__wbg_ptr, sheet, start_row, start_col, rows, cols, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7, ptr8, len8);
|
|
1048
|
+
return ret >>> 0;
|
|
1049
|
+
}
|
|
1050
|
+
/**
|
|
1051
|
+
* Replace the host-owned merge/protection collision ranges. Packed as
|
|
1052
|
+
* `[row_start, col_start, row_end, col_end, ...]`; invalid input fails
|
|
1053
|
+
* without weakening the old gate.
|
|
1054
|
+
* @param {number} sheet
|
|
1055
|
+
* @param {Uint32Array} bounds
|
|
1056
|
+
* @returns {boolean}
|
|
1057
|
+
*/
|
|
1058
|
+
setSpillBlockers(sheet, bounds) {
|
|
1059
|
+
const ptr0 = passArray32ToWasm0(bounds, wasm.__wbindgen_malloc);
|
|
1060
|
+
const len0 = WASM_VECTOR_LEN;
|
|
1061
|
+
const ret = wasm.cellstore_setSpillBlockers(this.__wbg_ptr, sheet, ptr0, len0);
|
|
1062
|
+
return ret !== 0;
|
|
1063
|
+
}
|
|
753
1064
|
/**
|
|
754
1065
|
* @param {number} sheet
|
|
755
1066
|
* @param {number} row
|
|
@@ -762,6 +1073,32 @@ export class CellStore {
|
|
|
762
1073
|
const len0 = WASM_VECTOR_LEN;
|
|
763
1074
|
wasm.cellstore_setString(this.__wbg_ptr, sheet, row, col, ptr0, len0, style);
|
|
764
1075
|
}
|
|
1076
|
+
/**
|
|
1077
|
+
* @param {string} id
|
|
1078
|
+
* @param {string} name
|
|
1079
|
+
* @param {number} sheet
|
|
1080
|
+
* @param {number} row_start
|
|
1081
|
+
* @param {number} col_start
|
|
1082
|
+
* @param {number} row_end
|
|
1083
|
+
* @param {number} col_end
|
|
1084
|
+
* @param {boolean} header_row
|
|
1085
|
+
* @param {boolean} totals_row
|
|
1086
|
+
* @param {string[]} column_ids
|
|
1087
|
+
* @param {string[]} column_names
|
|
1088
|
+
* @returns {boolean}
|
|
1089
|
+
*/
|
|
1090
|
+
setTable(id, name, sheet, row_start, col_start, row_end, col_end, header_row, totals_row, column_ids, column_names) {
|
|
1091
|
+
const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
1092
|
+
const len0 = WASM_VECTOR_LEN;
|
|
1093
|
+
const ptr1 = passStringToWasm0(name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
1094
|
+
const len1 = WASM_VECTOR_LEN;
|
|
1095
|
+
const ptr2 = passArrayJsValueToWasm0(column_ids, wasm.__wbindgen_malloc);
|
|
1096
|
+
const len2 = WASM_VECTOR_LEN;
|
|
1097
|
+
const ptr3 = passArrayJsValueToWasm0(column_names, wasm.__wbindgen_malloc);
|
|
1098
|
+
const len3 = WASM_VECTOR_LEN;
|
|
1099
|
+
const ret = wasm.cellstore_setTable(this.__wbg_ptr, ptr0, len0, ptr1, len1, sheet, row_start, col_start, row_end, col_end, header_row, totals_row, ptr2, len2, ptr3, len3);
|
|
1100
|
+
return ret !== 0;
|
|
1101
|
+
}
|
|
765
1102
|
/**
|
|
766
1103
|
* @param {RangeSnapshot} snapshot
|
|
767
1104
|
* @returns {Float64Array}
|
|
@@ -816,6 +1153,61 @@ export class CellStore {
|
|
|
816
1153
|
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
817
1154
|
return v4;
|
|
818
1155
|
}
|
|
1156
|
+
/**
|
|
1157
|
+
* @param {number} sheet
|
|
1158
|
+
* @param {number} row
|
|
1159
|
+
* @param {number} col
|
|
1160
|
+
* @returns {number}
|
|
1161
|
+
*/
|
|
1162
|
+
spillAnchorCol(sheet, row, col) {
|
|
1163
|
+
const ret = wasm.cellstore_spillAnchorCol(this.__wbg_ptr, sheet, row, col);
|
|
1164
|
+
return ret >>> 0;
|
|
1165
|
+
}
|
|
1166
|
+
/**
|
|
1167
|
+
* Stable spill owner coordinate, or `u32::MAX` when `cell` is not part of
|
|
1168
|
+
* a materialized spill.
|
|
1169
|
+
* @param {number} sheet
|
|
1170
|
+
* @param {number} row
|
|
1171
|
+
* @param {number} col
|
|
1172
|
+
* @returns {number}
|
|
1173
|
+
*/
|
|
1174
|
+
spillAnchorRow(sheet, row, col) {
|
|
1175
|
+
const ret = wasm.cellstore_spillAnchorRow(this.__wbg_ptr, sheet, row, col);
|
|
1176
|
+
return ret >>> 0;
|
|
1177
|
+
}
|
|
1178
|
+
/**
|
|
1179
|
+
* Row-major mask aligned with render-window layout; `1` marks a derived
|
|
1180
|
+
* spill cell and deliberately excludes the anchor.
|
|
1181
|
+
* @param {number} sheet
|
|
1182
|
+
* @param {number} row_start
|
|
1183
|
+
* @param {number} row_end
|
|
1184
|
+
* @param {Uint32Array} cols
|
|
1185
|
+
* @returns {Uint8Array}
|
|
1186
|
+
*/
|
|
1187
|
+
spillDerivedMask(sheet, row_start, row_end, cols) {
|
|
1188
|
+
const ptr0 = passArray32ToWasm0(cols, wasm.__wbindgen_malloc);
|
|
1189
|
+
const len0 = WASM_VECTOR_LEN;
|
|
1190
|
+
const ret = wasm.cellstore_spillDerivedMask(this.__wbg_ptr, sheet, row_start, row_end, ptr0, len0);
|
|
1191
|
+
var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
|
|
1192
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
|
|
1193
|
+
return v2;
|
|
1194
|
+
}
|
|
1195
|
+
/**
|
|
1196
|
+
* Packed row-major `[anchor_row, anchor_col, ...]` owner coordinates.
|
|
1197
|
+
* @param {number} sheet
|
|
1198
|
+
* @param {number} row_start
|
|
1199
|
+
* @param {number} row_end
|
|
1200
|
+
* @param {Uint32Array} cols
|
|
1201
|
+
* @returns {Uint32Array}
|
|
1202
|
+
*/
|
|
1203
|
+
spillOwnerCoordinates(sheet, row_start, row_end, cols) {
|
|
1204
|
+
const ptr0 = passArray32ToWasm0(cols, wasm.__wbindgen_malloc);
|
|
1205
|
+
const len0 = WASM_VECTOR_LEN;
|
|
1206
|
+
const ret = wasm.cellstore_spillOwnerCoordinates(this.__wbg_ptr, sheet, row_start, row_end, ptr0, len0);
|
|
1207
|
+
var v2 = getArrayU32FromWasm0(ret[0], ret[1]).slice();
|
|
1208
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
1209
|
+
return v2;
|
|
1210
|
+
}
|
|
819
1211
|
/**
|
|
820
1212
|
* Current style-dictionary id at a cell; `0` when out of bounds. Used by
|
|
821
1213
|
* the host to write derived (reference-shadow) values without disturbing
|
|
@@ -829,6 +1221,13 @@ export class CellStore {
|
|
|
829
1221
|
const ret = wasm.cellstore_styleIdAt(this.__wbg_ptr, sheet, row, col);
|
|
830
1222
|
return ret >>> 0;
|
|
831
1223
|
}
|
|
1224
|
+
/**
|
|
1225
|
+
* @returns {number}
|
|
1226
|
+
*/
|
|
1227
|
+
wasmCommittedBytes() {
|
|
1228
|
+
const ret = wasm.cellstore_wasmCommittedBytes(this.__wbg_ptr);
|
|
1229
|
+
return ret >>> 0;
|
|
1230
|
+
}
|
|
832
1231
|
}
|
|
833
1232
|
if (Symbol.dispose) CellStore.prototype[Symbol.dispose] = CellStore.prototype.free;
|
|
834
1233
|
|
|
@@ -945,6 +1344,24 @@ export class RangeSnapshot {
|
|
|
945
1344
|
wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
|
|
946
1345
|
return v1;
|
|
947
1346
|
}
|
|
1347
|
+
/**
|
|
1348
|
+
* @returns {Uint32Array}
|
|
1349
|
+
*/
|
|
1350
|
+
referenceOffsets() {
|
|
1351
|
+
const ret = wasm.rangesnapshot_referenceOffsets(this.__wbg_ptr);
|
|
1352
|
+
var v1 = getArrayU32FromWasm0(ret[0], ret[1]).slice();
|
|
1353
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
1354
|
+
return v1;
|
|
1355
|
+
}
|
|
1356
|
+
/**
|
|
1357
|
+
* @returns {Uint32Array}
|
|
1358
|
+
*/
|
|
1359
|
+
referenceTargets() {
|
|
1360
|
+
const ret = wasm.rangesnapshot_referenceTargets(this.__wbg_ptr);
|
|
1361
|
+
var v1 = getArrayU32FromWasm0(ret[0], ret[1]).slice();
|
|
1362
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
1363
|
+
return v1;
|
|
1364
|
+
}
|
|
948
1365
|
/**
|
|
949
1366
|
* @returns {Uint32Array}
|
|
950
1367
|
*/
|
|
@@ -957,6 +1374,83 @@ export class RangeSnapshot {
|
|
|
957
1374
|
}
|
|
958
1375
|
if (Symbol.dispose) RangeSnapshot.prototype[Symbol.dispose] = RangeSnapshot.prototype.free;
|
|
959
1376
|
|
|
1377
|
+
/**
|
|
1378
|
+
* Compact serializable projection of persisted derived-cell sources and spill
|
|
1379
|
+
* identity in one range. Offsets are row-major and sorted; reference targets
|
|
1380
|
+
* are packed `[sheet_handle, row, col]` triples.
|
|
1381
|
+
*/
|
|
1382
|
+
export class SourceSnapshot {
|
|
1383
|
+
static __wrap(ptr) {
|
|
1384
|
+
const obj = Object.create(SourceSnapshot.prototype);
|
|
1385
|
+
obj.__wbg_ptr = ptr;
|
|
1386
|
+
SourceSnapshotFinalization.register(obj, obj.__wbg_ptr, obj);
|
|
1387
|
+
return obj;
|
|
1388
|
+
}
|
|
1389
|
+
__destroy_into_raw() {
|
|
1390
|
+
const ptr = this.__wbg_ptr;
|
|
1391
|
+
this.__wbg_ptr = 0;
|
|
1392
|
+
SourceSnapshotFinalization.unregister(this);
|
|
1393
|
+
return ptr;
|
|
1394
|
+
}
|
|
1395
|
+
free() {
|
|
1396
|
+
const ptr = this.__destroy_into_raw();
|
|
1397
|
+
wasm.__wbg_sourcesnapshot_free(ptr, 0);
|
|
1398
|
+
}
|
|
1399
|
+
/**
|
|
1400
|
+
* @returns {number}
|
|
1401
|
+
*/
|
|
1402
|
+
byteLength() {
|
|
1403
|
+
const ret = wasm.sourcesnapshot_byteLength(this.__wbg_ptr);
|
|
1404
|
+
return ret >>> 0;
|
|
1405
|
+
}
|
|
1406
|
+
/**
|
|
1407
|
+
* @returns {Uint32Array}
|
|
1408
|
+
*/
|
|
1409
|
+
formulaOffsets() {
|
|
1410
|
+
const ret = wasm.sourcesnapshot_formulaOffsets(this.__wbg_ptr);
|
|
1411
|
+
var v1 = getArrayU32FromWasm0(ret[0], ret[1]).slice();
|
|
1412
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
1413
|
+
return v1;
|
|
1414
|
+
}
|
|
1415
|
+
/**
|
|
1416
|
+
* @returns {string[]}
|
|
1417
|
+
*/
|
|
1418
|
+
formulaSources() {
|
|
1419
|
+
const ret = wasm.sourcesnapshot_formulaSources(this.__wbg_ptr);
|
|
1420
|
+
var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
|
|
1421
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
1422
|
+
return v1;
|
|
1423
|
+
}
|
|
1424
|
+
/**
|
|
1425
|
+
* @returns {Uint32Array}
|
|
1426
|
+
*/
|
|
1427
|
+
referenceOffsets() {
|
|
1428
|
+
const ret = wasm.sourcesnapshot_referenceOffsets(this.__wbg_ptr);
|
|
1429
|
+
var v1 = getArrayU32FromWasm0(ret[0], ret[1]).slice();
|
|
1430
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
1431
|
+
return v1;
|
|
1432
|
+
}
|
|
1433
|
+
/**
|
|
1434
|
+
* @returns {Uint32Array}
|
|
1435
|
+
*/
|
|
1436
|
+
referenceTargets() {
|
|
1437
|
+
const ret = wasm.sourcesnapshot_referenceTargets(this.__wbg_ptr);
|
|
1438
|
+
var v1 = getArrayU32FromWasm0(ret[0], ret[1]).slice();
|
|
1439
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
1440
|
+
return v1;
|
|
1441
|
+
}
|
|
1442
|
+
/**
|
|
1443
|
+
* @returns {Uint8Array}
|
|
1444
|
+
*/
|
|
1445
|
+
spillDerived() {
|
|
1446
|
+
const ret = wasm.sourcesnapshot_spillDerived(this.__wbg_ptr);
|
|
1447
|
+
var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
|
|
1448
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
|
|
1449
|
+
return v1;
|
|
1450
|
+
}
|
|
1451
|
+
}
|
|
1452
|
+
if (Symbol.dispose) SourceSnapshot.prototype[Symbol.dispose] = SourceSnapshot.prototype.free;
|
|
1453
|
+
|
|
960
1454
|
/**
|
|
961
1455
|
* A bulk window of resolved cells, row-major over `n_rows x n_cols`.
|
|
962
1456
|
*/
|
|
@@ -1122,6 +1616,9 @@ const DistinctColumnFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
|
1122
1616
|
const RangeSnapshotFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
1123
1617
|
? { register: () => {}, unregister: () => {} }
|
|
1124
1618
|
: new FinalizationRegistry(ptr => wasm.__wbg_rangesnapshot_free(ptr, 1));
|
|
1619
|
+
const SourceSnapshotFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
1620
|
+
? { register: () => {}, unregister: () => {} }
|
|
1621
|
+
: new FinalizationRegistry(ptr => wasm.__wbg_sourcesnapshot_free(ptr, 1));
|
|
1125
1622
|
const WindowViewFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
1126
1623
|
? { register: () => {}, unregister: () => {} }
|
|
1127
1624
|
: new FinalizationRegistry(ptr => wasm.__wbg_windowview_free(ptr, 1));
|
|
Binary file
|
|
@@ -5,56 +5,79 @@ export const __wbg_cellout_free: (a: number, b: number) => void;
|
|
|
5
5
|
export const __wbg_cellstore_free: (a: number, b: number) => void;
|
|
6
6
|
export const __wbg_distinctcolumn_free: (a: number, b: number) => void;
|
|
7
7
|
export const __wbg_rangesnapshot_free: (a: number, b: number) => void;
|
|
8
|
+
export const __wbg_sourcesnapshot_free: (a: number, b: number) => void;
|
|
8
9
|
export const __wbg_windowview_free: (a: number, b: number) => void;
|
|
9
10
|
export const cellout_kind: (a: number) => number;
|
|
10
11
|
export const cellout_num: (a: number) => number;
|
|
11
12
|
export const cellout_string: (a: number) => [number, number];
|
|
12
13
|
export const cellout_style: (a: number) => number;
|
|
13
|
-
export const
|
|
14
|
+
export const cellstore_acknowledgeRevision: (a: number, b: bigint) => void;
|
|
15
|
+
export const cellstore_addPagedSheet: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
|
14
16
|
export const cellstore_addRows: (a: number, b: number, c: number, d: number) => void;
|
|
15
17
|
export const cellstore_addSheet: (a: number, b: number, c: number) => number;
|
|
16
18
|
export const cellstore_aggregate: (a: number, b: number, c: number, d: number) => number;
|
|
19
|
+
export const cellstore_beginMutation: (a: number) => bigint;
|
|
17
20
|
export const cellstore_beginPageLoad: (a: number) => void;
|
|
21
|
+
export const cellstore_canDirtyCell: (a: number, b: number, c: number, d: number) => number;
|
|
18
22
|
export const cellstore_captureRange: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
|
23
|
+
export const cellstore_captureReferences: (a: number, b: number, c: number) => number;
|
|
24
|
+
export const cellstore_captureSources: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
|
25
|
+
export const cellstore_captureSourcesForRows: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
|
19
26
|
export const cellstore_cellState: (a: number, b: number, c: number, d: number) => number;
|
|
20
27
|
export const cellstore_clearCell: (a: number, b: number, c: number, d: number, e: number) => void;
|
|
21
28
|
export const cellstore_clearRange: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => number;
|
|
22
29
|
export const cellstore_colCount: (a: number, b: number) => number;
|
|
30
|
+
export const cellstore_columnsFullyLoaded: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
|
31
|
+
export const cellstore_compactStringStorage: (a: number) => void;
|
|
23
32
|
export const cellstore_dataEdge: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
|
24
33
|
export const cellstore_dataEdgeOrdered: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => number;
|
|
34
|
+
export const cellstore_dirtyRevision: (a: number, b: number, c: number, d: number) => bigint;
|
|
25
35
|
export const cellstore_distinctValues: (a: number, b: number, c: number, d: number) => number;
|
|
36
|
+
export const cellstore_endMutation: (a: number) => void;
|
|
26
37
|
export const cellstore_endPageLoad: (a: number) => void;
|
|
27
38
|
export const cellstore_filterRows: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
28
39
|
export const cellstore_filterRowsMulti: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number) => [number, number];
|
|
40
|
+
export const cellstore_formulaMatrixResourceStats: (a: number) => [number, number];
|
|
29
41
|
export const cellstore_formulaSource: (a: number, b: number, c: number, d: number) => [number, number];
|
|
30
42
|
export const cellstore_getCell: (a: number, b: number, c: number, d: number) => number;
|
|
31
43
|
export const cellstore_getWindow: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
|
32
44
|
export const cellstore_getWindowRows: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
|
45
|
+
export const cellstore_hydratePageNumbers: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => void;
|
|
46
|
+
export const cellstore_hydratePageStringsPacked: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => void;
|
|
33
47
|
export const cellstore_insertCols: (a: number, b: number, c: number, d: number) => void;
|
|
34
48
|
export const cellstore_isFullyLoaded: (a: number, b: number) => number;
|
|
35
49
|
export const cellstore_isPaged: (a: number, b: number) => number;
|
|
36
50
|
export const cellstore_isSheetAlive: (a: number, b: number) => number;
|
|
51
|
+
export const cellstore_markCellCleanRevision: (a: number, b: number, c: number, d: number, e: bigint) => number;
|
|
37
52
|
export const cellstore_markRangeClean: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
|
|
53
|
+
export const cellstore_memoryStats: (a: number) => [number, number];
|
|
38
54
|
export const cellstore_new: () => number;
|
|
55
|
+
export const cellstore_pagedDirtyCoordinates: (a: number, b: number) => [number, number];
|
|
39
56
|
export const cellstore_pagedStats: (a: number, b: number) => [number, number];
|
|
57
|
+
export const cellstore_persistedCellData: (a: number, b: number) => [number, number];
|
|
40
58
|
export const cellstore_pinRange: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
|
|
41
59
|
export const cellstore_poolStrings: (a: number, b: number, c: number) => [number, number];
|
|
42
60
|
export const cellstore_queryResourceStats: (a: number) => [number, number];
|
|
43
61
|
export const cellstore_rangeFullyLoaded: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
|
44
62
|
export const cellstore_rangeStyleIds: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
45
63
|
export const cellstore_recompute: (a: number, b: number) => void;
|
|
64
|
+
export const cellstore_recomputeChanged: (a: number) => void;
|
|
46
65
|
export const cellstore_recomputeVolatile: (a: number, b: number) => number;
|
|
66
|
+
export const cellstore_referenceTarget: (a: number, b: number, c: number, d: number) => [number, number];
|
|
67
|
+
export const cellstore_referencesTargeting: (a: number, b: number, c: number) => [number, number];
|
|
47
68
|
export const cellstore_remapRangeStyles: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => number;
|
|
48
69
|
export const cellstore_removeCols: (a: number, b: number, c: number, d: number) => void;
|
|
49
70
|
export const cellstore_removeNamedRange: (a: number, b: number, c: number, d: number) => number;
|
|
50
71
|
export const cellstore_removeRows: (a: number, b: number, c: number, d: number) => void;
|
|
51
72
|
export const cellstore_removeSheet: (a: number, b: number) => number;
|
|
73
|
+
export const cellstore_removeTable: (a: number, b: number, c: number) => number;
|
|
52
74
|
export const cellstore_renameSheet: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
|
75
|
+
export const cellstore_resetFormulaMatrixResourceStats: (a: number) => void;
|
|
53
76
|
export const cellstore_resetQueryResourceStats: (a: number) => void;
|
|
54
77
|
export const cellstore_restoreRange: (a: number, b: number, c: number, d: number, e: number) => number;
|
|
55
78
|
export const cellstore_rowCount: (a: number, b: number) => number;
|
|
56
79
|
export const cellstore_search: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
|
|
57
|
-
export const cellstore_setBlock: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number) => number;
|
|
80
|
+
export const cellstore_setBlock: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number) => number;
|
|
58
81
|
export const cellstore_setBool: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
|
|
59
82
|
export const cellstore_setColumnNumbers: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
|
|
60
83
|
export const cellstore_setColumnStrings: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
|
|
@@ -64,12 +87,20 @@ export const cellstore_setFormula: (a: number, b: number, c: number, d: number,
|
|
|
64
87
|
export const cellstore_setNamedRange: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => number;
|
|
65
88
|
export const cellstore_setNumber: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
|
|
66
89
|
export const cellstore_setSheetName: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
|
|
90
|
+
export const cellstore_setSparseBlock: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number) => number;
|
|
91
|
+
export const cellstore_setSpillBlockers: (a: number, b: number, c: number, d: number) => number;
|
|
67
92
|
export const cellstore_setString: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
|
|
93
|
+
export const cellstore_setTable: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number) => number;
|
|
68
94
|
export const cellstore_snapshotNumbers: (a: number, b: number) => [number, number];
|
|
69
95
|
export const cellstore_snapshotTexts: (a: number, b: number) => [number, number];
|
|
70
96
|
export const cellstore_sortRows: (a: number, b: number, c: number, d: number) => [number, number];
|
|
71
97
|
export const cellstore_sortRowsMulti: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
|
|
98
|
+
export const cellstore_spillAnchorCol: (a: number, b: number, c: number, d: number) => number;
|
|
99
|
+
export const cellstore_spillAnchorRow: (a: number, b: number, c: number, d: number) => number;
|
|
100
|
+
export const cellstore_spillDerivedMask: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
101
|
+
export const cellstore_spillOwnerCoordinates: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
72
102
|
export const cellstore_styleIdAt: (a: number, b: number, c: number, d: number) => number;
|
|
103
|
+
export const cellstore_wasmCommittedBytes: (a: number) => number;
|
|
73
104
|
export const distinctcolumn_takeKinds: (a: number) => [number, number];
|
|
74
105
|
export const distinctcolumn_takeNumbers: (a: number) => [number, number];
|
|
75
106
|
export const distinctcolumn_takeTexts: (a: number) => [number, number];
|
|
@@ -77,7 +108,15 @@ export const rangesnapshot_byteLength: (a: number) => number;
|
|
|
77
108
|
export const rangesnapshot_formulaOffsets: (a: number) => [number, number];
|
|
78
109
|
export const rangesnapshot_formulaSources: (a: number) => [number, number];
|
|
79
110
|
export const rangesnapshot_kinds: (a: number) => [number, number];
|
|
111
|
+
export const rangesnapshot_referenceOffsets: (a: number) => [number, number];
|
|
112
|
+
export const rangesnapshot_referenceTargets: (a: number) => [number, number];
|
|
80
113
|
export const rangesnapshot_styleIds: (a: number) => [number, number];
|
|
114
|
+
export const sourcesnapshot_byteLength: (a: number) => number;
|
|
115
|
+
export const sourcesnapshot_formulaOffsets: (a: number) => [number, number];
|
|
116
|
+
export const sourcesnapshot_formulaSources: (a: number) => [number, number];
|
|
117
|
+
export const sourcesnapshot_referenceOffsets: (a: number) => [number, number];
|
|
118
|
+
export const sourcesnapshot_referenceTargets: (a: number) => [number, number];
|
|
119
|
+
export const sourcesnapshot_spillDerived: (a: number) => [number, number];
|
|
81
120
|
export const windowview_nCols: (a: number) => number;
|
|
82
121
|
export const windowview_nRows: (a: number) => number;
|
|
83
122
|
export const windowview_takeCondMatches: (a: number) => [number, number];
|