@rowsncolumns/rnc-yrs-store 0.11.17 → 0.13.0-beta.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/dist/rnc_yrs_store.d.ts +56 -4
- package/dist/rnc_yrs_store.js +161 -4
- package/dist/rnc_yrs_store_bg.wasm +0 -0
- package/package.json +1 -1
package/dist/rnc_yrs_store.d.ts
CHANGED
|
@@ -2,13 +2,19 @@
|
|
|
2
2
|
/* eslint-disable */
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
* Thin wasm-bindgen shell over [`
|
|
6
|
-
*
|
|
5
|
+
* Thin wasm-bindgen shell over the engine router ([`DualEngine`]: the positional v3 store or the
|
|
6
|
+
* stable-ids v5 store, by document). Bytes cross as `Uint8Array` (`Vec<u8>`/`&[u8]`), results as
|
|
7
|
+
* JSON strings, so it builds for both wasm and native.
|
|
7
8
|
*/
|
|
8
9
|
export class SpreadsheetEngine {
|
|
9
10
|
free(): void;
|
|
10
11
|
[Symbol.dispose](): void;
|
|
11
12
|
addSheet(sheet_id: number, title: string): void;
|
|
13
|
+
/**
|
|
14
|
+
* Anchor a `GridRange` on `sheet_id`: an opaque string (base64 stable range) that
|
|
15
|
+
* `resolveAnchor` resolves later, on any replica, through any structural edit.
|
|
16
|
+
*/
|
|
17
|
+
anchorRange(sheet_id: number, range_json: string): string;
|
|
12
18
|
applyCommand(json: string): string;
|
|
13
19
|
/**
|
|
14
20
|
* `applyCommand` without write recording, undo history, or a `CommitResult` diff — and with
|
|
@@ -33,6 +39,10 @@ export class SpreadsheetEngine {
|
|
|
33
39
|
* Drop the entire undo/redo history (`SpreadsheetEngineLike.clearHistory`).
|
|
34
40
|
*/
|
|
35
41
|
clearHistory(): void;
|
|
42
|
+
/**
|
|
43
|
+
* JSON array of the sheet's column ids in grid order, as decimal strings.
|
|
44
|
+
*/
|
|
45
|
+
columnIds(sheet_id: number): string;
|
|
36
46
|
/**
|
|
37
47
|
* Fold the style log into a base, keeping the newest `keep_tail` buffers live (see
|
|
38
48
|
* `YrsStore::compact_style_log`). Meant for a host holding the workbook write lease (a server
|
|
@@ -45,7 +55,7 @@ export class SpreadsheetEngine {
|
|
|
45
55
|
* as JSON `Vec<Vec<String>>`. The host writes the grid into the sheet via a `change-batch` command
|
|
46
56
|
* so the values compute, persist, and collaborate through the normal engine path. Quoting,
|
|
47
57
|
* embedded newlines, and ragged rows are handled by the `csv` crate.
|
|
48
|
-
* RFC 4180 CSV of one sheet's merged view (blocks + hot plane,
|
|
58
|
+
* RFC 4180 CSV of one sheet's merged view (blocks + hot plane, at current positions). Formulas
|
|
49
59
|
* export their computed display value, like Excel/Sheets "Save as CSV". One streaming pass
|
|
50
60
|
* over the store — built to run in a Web Worker for million-row sheets.
|
|
51
61
|
* Excel-style Ctrl/Cmd+Arrow target. One of `d_row`/`d_col` is ±1, the other 0; returns
|
|
@@ -224,6 +234,11 @@ export class SpreadsheetEngine {
|
|
|
224
234
|
loadFromUpdateQuiet(bytes: Uint8Array): void;
|
|
225
235
|
constructor();
|
|
226
236
|
parseCsv(text: string): string;
|
|
237
|
+
/**
|
|
238
|
+
* JSON `{sheetId, row, col}` (1-based) of an `rncCells` / `rncNotes` key; `undefined` for a
|
|
239
|
+
* malformed key or an orphan (its row or column was deleted).
|
|
240
|
+
*/
|
|
241
|
+
parseStableCellKey(key: string): string | undefined;
|
|
227
242
|
/**
|
|
228
243
|
* PRECEDENTS of a cell as `{cells, ranges}` JSON (`SpreadsheetEngineLike.precedents`).
|
|
229
244
|
*/
|
|
@@ -261,11 +276,33 @@ export class SpreadsheetEngine {
|
|
|
261
276
|
* Register a host (JS) custom-function name (`SpreadsheetEngineLike.registerCustomFunction`).
|
|
262
277
|
*/
|
|
263
278
|
registerCustomFunction(name: string): void;
|
|
279
|
+
/**
|
|
280
|
+
* JSON `{range: GridRange | null, status: "ok" | "gone" | "unknown"}` for an `anchorRange`
|
|
281
|
+
* anchor: `gone` once every row or column of it was deleted, `unknown` while its lines have
|
|
282
|
+
* not arrived on this replica; a malformed anchor is an `Err`.
|
|
283
|
+
*/
|
|
284
|
+
resolveAnchor(anchor: string): string;
|
|
285
|
+
/**
|
|
286
|
+
* JSON array of the sheet's row ids in grid order, as decimal strings.
|
|
287
|
+
*/
|
|
288
|
+
rowIds(sheet_id: number): string;
|
|
289
|
+
/**
|
|
290
|
+
* Create stable-ids (v5) documents with this engine; off by default. On, a document it creates
|
|
291
|
+
* starts as v5 — its first edit or import on a fresh engine, or a loaded document that holds no
|
|
292
|
+
* data yet. A document that holds data is never converted (existing documents stay v3), and a
|
|
293
|
+
* v5 document always runs as v5, whatever the setting. Set it from the asset's chosen version,
|
|
294
|
+
* for everyone who opens the asset. `true` when the call made the open (blank) document v5.
|
|
295
|
+
*/
|
|
296
|
+
setStableIds(enabled: boolean): boolean;
|
|
264
297
|
/**
|
|
265
298
|
* Pin the evaluation timezone for `TODAY()` / `NOW()` as minutes east of UTC (`null` /
|
|
266
299
|
* `undefined` restores the default `Local` clock). Returns `false` for an offset outside ±24h.
|
|
267
300
|
*/
|
|
268
301
|
setTimezoneOffsetMinutes(minutes?: number | null): boolean;
|
|
302
|
+
/**
|
|
303
|
+
* `"v5"` while the document runs on the stable-ids store, else `"v3"`.
|
|
304
|
+
*/
|
|
305
|
+
sheetDataVersion(): string;
|
|
269
306
|
/**
|
|
270
307
|
* Per-sheet 1-based data extents as JSON `[{"sheetId", "maxRow", "maxCol"}]`.
|
|
271
308
|
*/
|
|
@@ -294,6 +331,11 @@ export class SpreadsheetEngine {
|
|
|
294
331
|
* [`YrsStore::shift_log_frontier`]).
|
|
295
332
|
*/
|
|
296
333
|
shiftLogFrontier(): string;
|
|
334
|
+
/**
|
|
335
|
+
* The `rncCells` key (`"{sheetId}:{rowId}:{colId}"`) of 1-based `(row, col)`; `undefined`
|
|
336
|
+
* while the row or column is unnamed (past the sheet's named extent). Never names lines.
|
|
337
|
+
*/
|
|
338
|
+
stableCellKey(sheet_id: number, row: number, col: number): string | undefined;
|
|
297
339
|
stateAsUpdate(): Uint8Array;
|
|
298
340
|
/**
|
|
299
341
|
* JSON `{buffers, baseBuffers, bytes, seedEntries, styledCells}` — the style history a load
|
|
@@ -336,7 +378,9 @@ export class SpreadsheetEngine {
|
|
|
336
378
|
}
|
|
337
379
|
|
|
338
380
|
/**
|
|
339
|
-
* Minimal
|
|
381
|
+
* Minimal positional (`sheetDataV3`) sheet doc + yjs v1 transport — the R0 interop spike, kept
|
|
382
|
+
* for the fixture tooling that reads a room the way the engine reads it. It knows the v3 plane
|
|
383
|
+
* only: a v5 document's cells are in `rncCells` (`libs/rnc-yrs-store/docs/v5-document-encoding.md`).
|
|
340
384
|
*/
|
|
341
385
|
export class YrsSheetDoc {
|
|
342
386
|
free(): void;
|
|
@@ -412,7 +456,9 @@ export interface InitOutput {
|
|
|
412
456
|
readonly spreadsheetengine_redo: (a: number) => [number, number];
|
|
413
457
|
readonly spreadsheetengine_redoDepth: (a: number) => number;
|
|
414
458
|
readonly spreadsheetengine_registerCustomFunction: (a: number, b: number, c: number) => void;
|
|
459
|
+
readonly spreadsheetengine_setStableIds: (a: number, b: number) => [number, number, number];
|
|
415
460
|
readonly spreadsheetengine_setTimezoneOffsetMinutes: (a: number, b: number) => number;
|
|
461
|
+
readonly spreadsheetengine_sheetDataVersion: (a: number) => [number, number];
|
|
416
462
|
readonly spreadsheetengine_sheetExtents: (a: number) => [number, number];
|
|
417
463
|
readonly spreadsheetengine_sheetIds: (a: number) => [number, number];
|
|
418
464
|
readonly spreadsheetengine_sheetStats: (a: number) => [number, number];
|
|
@@ -430,6 +476,12 @@ export interface InitOutput {
|
|
|
430
476
|
readonly yrssheetdoc_new: () => number;
|
|
431
477
|
readonly yrssheetdoc_setCell: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
432
478
|
readonly spreadsheetengine_stateAsUpdate: (a: number) => [number, number];
|
|
479
|
+
readonly spreadsheetengine_columnIds: (a: number, b: number) => [number, number];
|
|
480
|
+
readonly spreadsheetengine_parseStableCellKey: (a: number, b: number, c: number) => [number, number];
|
|
481
|
+
readonly spreadsheetengine_rowIds: (a: number, b: number) => [number, number];
|
|
482
|
+
readonly spreadsheetengine_stableCellKey: (a: number, b: number, c: number, d: number) => [number, number];
|
|
483
|
+
readonly spreadsheetengine_anchorRange: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
484
|
+
readonly spreadsheetengine_resolveAnchor: (a: number, b: number, c: number) => [number, number, number, number];
|
|
433
485
|
readonly spreadsheetengine_shiftLogFrontier: (a: number) => [number, number];
|
|
434
486
|
readonly spreadsheetengine_transformRange: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
|
|
435
487
|
readonly transformRangeThroughOps: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
package/dist/rnc_yrs_store.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/* @ts-self-types="./rnc_yrs_store.d.ts" */
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Thin wasm-bindgen shell over [`
|
|
5
|
-
*
|
|
4
|
+
* Thin wasm-bindgen shell over the engine router ([`DualEngine`]: the positional v3 store or the
|
|
5
|
+
* stable-ids v5 store, by document). Bytes cross as `Uint8Array` (`Vec<u8>`/`&[u8]`), results as
|
|
6
|
+
* JSON strings, so it builds for both wasm and native.
|
|
6
7
|
*/
|
|
7
8
|
export class SpreadsheetEngine {
|
|
8
9
|
__destroy_into_raw() {
|
|
@@ -24,6 +25,33 @@ export class SpreadsheetEngine {
|
|
|
24
25
|
const len0 = WASM_VECTOR_LEN;
|
|
25
26
|
wasm.spreadsheetengine_addSheet(this.__wbg_ptr, sheet_id, ptr0, len0);
|
|
26
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Anchor a `GridRange` on `sheet_id`: an opaque string (base64 stable range) that
|
|
30
|
+
* `resolveAnchor` resolves later, on any replica, through any structural edit.
|
|
31
|
+
* @param {number} sheet_id
|
|
32
|
+
* @param {string} range_json
|
|
33
|
+
* @returns {string}
|
|
34
|
+
*/
|
|
35
|
+
anchorRange(sheet_id, range_json) {
|
|
36
|
+
let deferred3_0;
|
|
37
|
+
let deferred3_1;
|
|
38
|
+
try {
|
|
39
|
+
const ptr0 = passStringToWasm0(range_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
40
|
+
const len0 = WASM_VECTOR_LEN;
|
|
41
|
+
const ret = wasm.spreadsheetengine_anchorRange(this.__wbg_ptr, sheet_id, ptr0, len0);
|
|
42
|
+
var ptr2 = ret[0];
|
|
43
|
+
var len2 = ret[1];
|
|
44
|
+
if (ret[3]) {
|
|
45
|
+
ptr2 = 0; len2 = 0;
|
|
46
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
47
|
+
}
|
|
48
|
+
deferred3_0 = ptr2;
|
|
49
|
+
deferred3_1 = len2;
|
|
50
|
+
return getStringFromWasm0(ptr2, len2);
|
|
51
|
+
} finally {
|
|
52
|
+
wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
27
55
|
/**
|
|
28
56
|
* @param {string} json
|
|
29
57
|
* @returns {string}
|
|
@@ -113,6 +141,23 @@ export class SpreadsheetEngine {
|
|
|
113
141
|
clearHistory() {
|
|
114
142
|
wasm.spreadsheetengine_clearHistory(this.__wbg_ptr);
|
|
115
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* JSON array of the sheet's column ids in grid order, as decimal strings.
|
|
146
|
+
* @param {number} sheet_id
|
|
147
|
+
* @returns {string}
|
|
148
|
+
*/
|
|
149
|
+
columnIds(sheet_id) {
|
|
150
|
+
let deferred1_0;
|
|
151
|
+
let deferred1_1;
|
|
152
|
+
try {
|
|
153
|
+
const ret = wasm.spreadsheetengine_columnIds(this.__wbg_ptr, sheet_id);
|
|
154
|
+
deferred1_0 = ret[0];
|
|
155
|
+
deferred1_1 = ret[1];
|
|
156
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
157
|
+
} finally {
|
|
158
|
+
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
116
161
|
/**
|
|
117
162
|
* Fold the style log into a base, keeping the newest `keep_tail` buffers live (see
|
|
118
163
|
* `YrsStore::compact_style_log`). Meant for a host holding the workbook write lease (a server
|
|
@@ -138,7 +183,7 @@ export class SpreadsheetEngine {
|
|
|
138
183
|
* as JSON `Vec<Vec<String>>`. The host writes the grid into the sheet via a `change-batch` command
|
|
139
184
|
* so the values compute, persist, and collaborate through the normal engine path. Quoting,
|
|
140
185
|
* embedded newlines, and ragged rows are handled by the `csv` crate.
|
|
141
|
-
* RFC 4180 CSV of one sheet's merged view (blocks + hot plane,
|
|
186
|
+
* RFC 4180 CSV of one sheet's merged view (blocks + hot plane, at current positions). Formulas
|
|
142
187
|
* export their computed display value, like Excel/Sheets "Save as CSV". One streaming pass
|
|
143
188
|
* over the store — built to run in a Web Worker for million-row sheets.
|
|
144
189
|
* Excel-style Ctrl/Cmd+Arrow target. One of `d_row`/`d_col` is ±1, the other 0; returns
|
|
@@ -761,6 +806,23 @@ export class SpreadsheetEngine {
|
|
|
761
806
|
wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
|
|
762
807
|
}
|
|
763
808
|
}
|
|
809
|
+
/**
|
|
810
|
+
* JSON `{sheetId, row, col}` (1-based) of an `rncCells` / `rncNotes` key; `undefined` for a
|
|
811
|
+
* malformed key or an orphan (its row or column was deleted).
|
|
812
|
+
* @param {string} key
|
|
813
|
+
* @returns {string | undefined}
|
|
814
|
+
*/
|
|
815
|
+
parseStableCellKey(key) {
|
|
816
|
+
const ptr0 = passStringToWasm0(key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
817
|
+
const len0 = WASM_VECTOR_LEN;
|
|
818
|
+
const ret = wasm.spreadsheetengine_parseStableCellKey(this.__wbg_ptr, ptr0, len0);
|
|
819
|
+
let v2;
|
|
820
|
+
if (ret[0] !== 0) {
|
|
821
|
+
v2 = getStringFromWasm0(ret[0], ret[1]).slice();
|
|
822
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
|
|
823
|
+
}
|
|
824
|
+
return v2;
|
|
825
|
+
}
|
|
764
826
|
/**
|
|
765
827
|
* PRECEDENTS of a cell as `{cells, ranges}` JSON (`SpreadsheetEngineLike.precedents`).
|
|
766
828
|
* @param {number} sheet_id
|
|
@@ -897,6 +959,66 @@ export class SpreadsheetEngine {
|
|
|
897
959
|
const len0 = WASM_VECTOR_LEN;
|
|
898
960
|
wasm.spreadsheetengine_registerCustomFunction(this.__wbg_ptr, ptr0, len0);
|
|
899
961
|
}
|
|
962
|
+
/**
|
|
963
|
+
* JSON `{range: GridRange | null, status: "ok" | "gone" | "unknown"}` for an `anchorRange`
|
|
964
|
+
* anchor: `gone` once every row or column of it was deleted, `unknown` while its lines have
|
|
965
|
+
* not arrived on this replica; a malformed anchor is an `Err`.
|
|
966
|
+
* @param {string} anchor
|
|
967
|
+
* @returns {string}
|
|
968
|
+
*/
|
|
969
|
+
resolveAnchor(anchor) {
|
|
970
|
+
let deferred3_0;
|
|
971
|
+
let deferred3_1;
|
|
972
|
+
try {
|
|
973
|
+
const ptr0 = passStringToWasm0(anchor, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
974
|
+
const len0 = WASM_VECTOR_LEN;
|
|
975
|
+
const ret = wasm.spreadsheetengine_resolveAnchor(this.__wbg_ptr, ptr0, len0);
|
|
976
|
+
var ptr2 = ret[0];
|
|
977
|
+
var len2 = ret[1];
|
|
978
|
+
if (ret[3]) {
|
|
979
|
+
ptr2 = 0; len2 = 0;
|
|
980
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
981
|
+
}
|
|
982
|
+
deferred3_0 = ptr2;
|
|
983
|
+
deferred3_1 = len2;
|
|
984
|
+
return getStringFromWasm0(ptr2, len2);
|
|
985
|
+
} finally {
|
|
986
|
+
wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
|
|
987
|
+
}
|
|
988
|
+
}
|
|
989
|
+
/**
|
|
990
|
+
* JSON array of the sheet's row ids in grid order, as decimal strings.
|
|
991
|
+
* @param {number} sheet_id
|
|
992
|
+
* @returns {string}
|
|
993
|
+
*/
|
|
994
|
+
rowIds(sheet_id) {
|
|
995
|
+
let deferred1_0;
|
|
996
|
+
let deferred1_1;
|
|
997
|
+
try {
|
|
998
|
+
const ret = wasm.spreadsheetengine_rowIds(this.__wbg_ptr, sheet_id);
|
|
999
|
+
deferred1_0 = ret[0];
|
|
1000
|
+
deferred1_1 = ret[1];
|
|
1001
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
1002
|
+
} finally {
|
|
1003
|
+
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
1004
|
+
}
|
|
1005
|
+
}
|
|
1006
|
+
/**
|
|
1007
|
+
* Create stable-ids (v5) documents with this engine; off by default. On, a document it creates
|
|
1008
|
+
* starts as v5 — its first edit or import on a fresh engine, or a loaded document that holds no
|
|
1009
|
+
* data yet. A document that holds data is never converted (existing documents stay v3), and a
|
|
1010
|
+
* v5 document always runs as v5, whatever the setting. Set it from the asset's chosen version,
|
|
1011
|
+
* for everyone who opens the asset. `true` when the call made the open (blank) document v5.
|
|
1012
|
+
* @param {boolean} enabled
|
|
1013
|
+
* @returns {boolean}
|
|
1014
|
+
*/
|
|
1015
|
+
setStableIds(enabled) {
|
|
1016
|
+
const ret = wasm.spreadsheetengine_setStableIds(this.__wbg_ptr, enabled);
|
|
1017
|
+
if (ret[2]) {
|
|
1018
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
1019
|
+
}
|
|
1020
|
+
return ret[0] !== 0;
|
|
1021
|
+
}
|
|
900
1022
|
/**
|
|
901
1023
|
* Pin the evaluation timezone for `TODAY()` / `NOW()` as minutes east of UTC (`null` /
|
|
902
1024
|
* `undefined` restores the default `Local` clock). Returns `false` for an offset outside ±24h.
|
|
@@ -907,6 +1029,22 @@ export class SpreadsheetEngine {
|
|
|
907
1029
|
const ret = wasm.spreadsheetengine_setTimezoneOffsetMinutes(this.__wbg_ptr, isLikeNone(minutes) ? Number.MAX_SAFE_INTEGER : (minutes) >> 0);
|
|
908
1030
|
return ret !== 0;
|
|
909
1031
|
}
|
|
1032
|
+
/**
|
|
1033
|
+
* `"v5"` while the document runs on the stable-ids store, else `"v3"`.
|
|
1034
|
+
* @returns {string}
|
|
1035
|
+
*/
|
|
1036
|
+
sheetDataVersion() {
|
|
1037
|
+
let deferred1_0;
|
|
1038
|
+
let deferred1_1;
|
|
1039
|
+
try {
|
|
1040
|
+
const ret = wasm.spreadsheetengine_sheetDataVersion(this.__wbg_ptr);
|
|
1041
|
+
deferred1_0 = ret[0];
|
|
1042
|
+
deferred1_1 = ret[1];
|
|
1043
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
1044
|
+
} finally {
|
|
1045
|
+
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
1046
|
+
}
|
|
1047
|
+
}
|
|
910
1048
|
/**
|
|
911
1049
|
* Per-sheet 1-based data extents as JSON `[{"sheetId", "maxRow", "maxCol"}]`.
|
|
912
1050
|
* @returns {string}
|
|
@@ -989,6 +1127,23 @@ export class SpreadsheetEngine {
|
|
|
989
1127
|
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
990
1128
|
}
|
|
991
1129
|
}
|
|
1130
|
+
/**
|
|
1131
|
+
* The `rncCells` key (`"{sheetId}:{rowId}:{colId}"`) of 1-based `(row, col)`; `undefined`
|
|
1132
|
+
* while the row or column is unnamed (past the sheet's named extent). Never names lines.
|
|
1133
|
+
* @param {number} sheet_id
|
|
1134
|
+
* @param {number} row
|
|
1135
|
+
* @param {number} col
|
|
1136
|
+
* @returns {string | undefined}
|
|
1137
|
+
*/
|
|
1138
|
+
stableCellKey(sheet_id, row, col) {
|
|
1139
|
+
const ret = wasm.spreadsheetengine_stableCellKey(this.__wbg_ptr, sheet_id, row, col);
|
|
1140
|
+
let v1;
|
|
1141
|
+
if (ret[0] !== 0) {
|
|
1142
|
+
v1 = getStringFromWasm0(ret[0], ret[1]).slice();
|
|
1143
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
|
|
1144
|
+
}
|
|
1145
|
+
return v1;
|
|
1146
|
+
}
|
|
992
1147
|
/**
|
|
993
1148
|
* @returns {Uint8Array}
|
|
994
1149
|
*/
|
|
@@ -1143,7 +1298,9 @@ export class SpreadsheetEngine {
|
|
|
1143
1298
|
if (Symbol.dispose) SpreadsheetEngine.prototype[Symbol.dispose] = SpreadsheetEngine.prototype.free;
|
|
1144
1299
|
|
|
1145
1300
|
/**
|
|
1146
|
-
* Minimal
|
|
1301
|
+
* Minimal positional (`sheetDataV3`) sheet doc + yjs v1 transport — the R0 interop spike, kept
|
|
1302
|
+
* for the fixture tooling that reads a room the way the engine reads it. It knows the v3 plane
|
|
1303
|
+
* only: a v5 document's cells are in `rncCells` (`libs/rnc-yrs-store/docs/v5-document-encoding.md`).
|
|
1147
1304
|
*/
|
|
1148
1305
|
export class YrsSheetDoc {
|
|
1149
1306
|
__destroy_into_raw() {
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rowsncolumns/rnc-yrs-store",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0-beta.0",
|
|
4
4
|
"author": "Vinay M",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"description": "Document-backed Rust→WASM spreadsheet calc engine (yrs/CRDT, canonical sheetDataV3). Ships the `SpreadsheetEngine` (a `Store<YrsStore>`): applyCommand / undo / redo / canUndo + the Yjs collaboration surface (applyUpdate / takePendingUpdates / loadFromUpdate / stateAsUpdate) the Keryx update-pump binds to. This is the 1,000,000-row engine the demo-app ships today — previously vendored, now a versioned package. The PREBUILT wasm is included (consumers need NO Rust/wasm toolchain); the glue's default init REQUIRES an explicit `module_or_path` — pass the URL of the served `rnc_yrs_store_bg.wasm` (webpack/Turbopack statically resolve a bundled `new URL`, which would 404 from this package, so the inline-default branch is intentionally a throw).",
|