@bilig/workbook-domain 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -0
- package/README.md +13 -0
- package/dist/guards.d.ts +4 -0
- package/dist/guards.js +293 -0
- package/dist/guards.js.map +1 -0
- package/dist/index.d.ts +209 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/package.json +48 -0
package/LICENSE
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
MIT
|
package/README.md
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# @bilig/workbook-domain
|
|
2
|
+
|
|
3
|
+
Transport-neutral workbook mutation language and batch types for bilig.
|
|
4
|
+
|
|
5
|
+
Use this package for workbook semantic types that should not depend on a transport,
|
|
6
|
+
runtime, or replica-state implementation, including:
|
|
7
|
+
|
|
8
|
+
- `WorkbookOp`
|
|
9
|
+
- `WorkbookTxn`
|
|
10
|
+
- `EngineOp`
|
|
11
|
+
- `EngineOpBatch`
|
|
12
|
+
|
|
13
|
+
Replica-state bookkeeping lives inside `@bilig/core`.
|
package/dist/guards.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function isWorkbookOp(value: unknown): value is import("./index.js").WorkbookOp;
|
|
2
|
+
export declare function isEngineOp(value: unknown): value is import("./index.js").EngineOp;
|
|
3
|
+
export declare function isEngineOps(value: unknown): value is import("./index.js").EngineOp[];
|
|
4
|
+
export declare function isEngineOpBatch(value: unknown): value is import("./index.js").EngineOpBatch;
|
package/dist/guards.js
ADDED
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
import { isCellRangeRef, isLiteralInput } from "@bilig/protocol";
|
|
2
|
+
const HORIZONTAL_ALIGNMENT_VALUES = new Set(["general", "left", "center", "right"]);
|
|
3
|
+
const VERTICAL_ALIGNMENT_VALUES = new Set(["top", "middle", "bottom"]);
|
|
4
|
+
const BORDER_STYLE_VALUES = new Set(["solid", "dashed", "dotted", "double"]);
|
|
5
|
+
const BORDER_WEIGHT_VALUES = new Set(["thin", "medium", "thick"]);
|
|
6
|
+
const NUMBER_FORMAT_KIND_VALUES = new Set([
|
|
7
|
+
"general",
|
|
8
|
+
"number",
|
|
9
|
+
"currency",
|
|
10
|
+
"accounting",
|
|
11
|
+
"percent",
|
|
12
|
+
"date",
|
|
13
|
+
"time",
|
|
14
|
+
"datetime",
|
|
15
|
+
"text",
|
|
16
|
+
]);
|
|
17
|
+
const COMPATIBILITY_MODE_VALUES = new Set(["excel-modern", "odf-1.4"]);
|
|
18
|
+
const SORT_DIRECTION_VALUES = new Set(["asc", "desc"]);
|
|
19
|
+
const PIVOT_AGGREGATION_VALUES = new Set(["sum", "count"]);
|
|
20
|
+
function isRecord(value) {
|
|
21
|
+
return typeof value === "object" && value !== null;
|
|
22
|
+
}
|
|
23
|
+
function isFiniteNumber(value) {
|
|
24
|
+
return typeof value === "number" && Number.isFinite(value);
|
|
25
|
+
}
|
|
26
|
+
function isStringArray(value) {
|
|
27
|
+
return Array.isArray(value) && value.every((entry) => typeof entry === "string");
|
|
28
|
+
}
|
|
29
|
+
function isOptionalString(value) {
|
|
30
|
+
return value === undefined || typeof value === "string";
|
|
31
|
+
}
|
|
32
|
+
function isOptionalNumber(value) {
|
|
33
|
+
return value === undefined || isFiniteNumber(value);
|
|
34
|
+
}
|
|
35
|
+
function isOptionalNullableNumber(value) {
|
|
36
|
+
return value === undefined || value === null || isFiniteNumber(value);
|
|
37
|
+
}
|
|
38
|
+
function isOptionalBoolean(value) {
|
|
39
|
+
return value === undefined || typeof value === "boolean";
|
|
40
|
+
}
|
|
41
|
+
function isOptionalNullableBoolean(value) {
|
|
42
|
+
return value === undefined || value === null || typeof value === "boolean";
|
|
43
|
+
}
|
|
44
|
+
function hasString(value, key) {
|
|
45
|
+
return typeof value[key] === "string";
|
|
46
|
+
}
|
|
47
|
+
function hasFiniteNumber(value, key) {
|
|
48
|
+
return isFiniteNumber(value[key]);
|
|
49
|
+
}
|
|
50
|
+
function isWorkbookAxisEntry(value) {
|
|
51
|
+
return (isRecord(value) &&
|
|
52
|
+
hasString(value, "id") &&
|
|
53
|
+
hasFiniteNumber(value, "index") &&
|
|
54
|
+
isOptionalNullableNumber(value["size"]) &&
|
|
55
|
+
isOptionalNullableBoolean(value["hidden"]));
|
|
56
|
+
}
|
|
57
|
+
function isCellBorderSide(value) {
|
|
58
|
+
return (isRecord(value) &&
|
|
59
|
+
hasString(value, "color") &&
|
|
60
|
+
typeof value["style"] === "string" &&
|
|
61
|
+
BORDER_STYLE_VALUES.has(value["style"]) &&
|
|
62
|
+
typeof value["weight"] === "string" &&
|
|
63
|
+
BORDER_WEIGHT_VALUES.has(value["weight"]));
|
|
64
|
+
}
|
|
65
|
+
function isCellStyleRecord(value) {
|
|
66
|
+
if (!isRecord(value) || !hasString(value, "id")) {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
const fill = value["fill"];
|
|
70
|
+
if (fill !== undefined && (!isRecord(fill) || typeof fill["backgroundColor"] !== "string")) {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
const font = value["font"];
|
|
74
|
+
if (font !== undefined &&
|
|
75
|
+
(!isRecord(font) ||
|
|
76
|
+
!isOptionalString(font["family"]) ||
|
|
77
|
+
!isOptionalNumber(font["size"]) ||
|
|
78
|
+
!isOptionalBoolean(font["bold"]) ||
|
|
79
|
+
!isOptionalBoolean(font["italic"]) ||
|
|
80
|
+
!isOptionalBoolean(font["underline"]) ||
|
|
81
|
+
!isOptionalString(font["color"]))) {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
const alignment = value["alignment"];
|
|
85
|
+
if (alignment !== undefined &&
|
|
86
|
+
(!isRecord(alignment) ||
|
|
87
|
+
!(alignment["horizontal"] === undefined ||
|
|
88
|
+
(typeof alignment["horizontal"] === "string" &&
|
|
89
|
+
HORIZONTAL_ALIGNMENT_VALUES.has(alignment["horizontal"]))) ||
|
|
90
|
+
!(alignment["vertical"] === undefined ||
|
|
91
|
+
(typeof alignment["vertical"] === "string" &&
|
|
92
|
+
VERTICAL_ALIGNMENT_VALUES.has(alignment["vertical"]))) ||
|
|
93
|
+
!isOptionalBoolean(alignment["wrap"]) ||
|
|
94
|
+
!isOptionalNumber(alignment["indent"]))) {
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
const borders = value["borders"];
|
|
98
|
+
if (borders !== undefined &&
|
|
99
|
+
(!isRecord(borders) ||
|
|
100
|
+
!(borders["top"] === undefined || isCellBorderSide(borders["top"])) ||
|
|
101
|
+
!(borders["right"] === undefined || isCellBorderSide(borders["right"])) ||
|
|
102
|
+
!(borders["bottom"] === undefined || isCellBorderSide(borders["bottom"])) ||
|
|
103
|
+
!(borders["left"] === undefined || isCellBorderSide(borders["left"])))) {
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
return true;
|
|
107
|
+
}
|
|
108
|
+
function isCellNumberFormatRecord(value) {
|
|
109
|
+
return (isRecord(value) &&
|
|
110
|
+
hasString(value, "id") &&
|
|
111
|
+
hasString(value, "code") &&
|
|
112
|
+
typeof value["kind"] === "string" &&
|
|
113
|
+
NUMBER_FORMAT_KIND_VALUES.has(value["kind"]));
|
|
114
|
+
}
|
|
115
|
+
function isWorkbookCalculationSettings(value) {
|
|
116
|
+
return (isRecord(value) &&
|
|
117
|
+
(value["mode"] === "automatic" || value["mode"] === "manual") &&
|
|
118
|
+
(value["compatibilityMode"] === undefined ||
|
|
119
|
+
(typeof value["compatibilityMode"] === "string" &&
|
|
120
|
+
COMPATIBILITY_MODE_VALUES.has(value["compatibilityMode"]))));
|
|
121
|
+
}
|
|
122
|
+
function isWorkbookVolatileContext(value) {
|
|
123
|
+
return isRecord(value) && hasFiniteNumber(value, "recalcEpoch");
|
|
124
|
+
}
|
|
125
|
+
function isWorkbookSortKey(value) {
|
|
126
|
+
return (isRecord(value) &&
|
|
127
|
+
hasString(value, "keyAddress") &&
|
|
128
|
+
typeof value["direction"] === "string" &&
|
|
129
|
+
SORT_DIRECTION_VALUES.has(value["direction"]));
|
|
130
|
+
}
|
|
131
|
+
function isWorkbookDefinedNameValue(value) {
|
|
132
|
+
if (isLiteralInput(value)) {
|
|
133
|
+
return true;
|
|
134
|
+
}
|
|
135
|
+
if (!isRecord(value) || typeof value["kind"] !== "string") {
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
switch (value["kind"]) {
|
|
139
|
+
case "scalar":
|
|
140
|
+
return isLiteralInput(value["value"]);
|
|
141
|
+
case "cell-ref":
|
|
142
|
+
return hasString(value, "sheetName") && hasString(value, "address");
|
|
143
|
+
case "range-ref":
|
|
144
|
+
return isCellRangeRef(value);
|
|
145
|
+
case "structured-ref":
|
|
146
|
+
return hasString(value, "tableName") && hasString(value, "columnName");
|
|
147
|
+
case "formula":
|
|
148
|
+
return hasString(value, "formula");
|
|
149
|
+
default:
|
|
150
|
+
return false;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
function isWorkbookTableOp(value) {
|
|
154
|
+
return (isRecord(value) &&
|
|
155
|
+
hasString(value, "name") &&
|
|
156
|
+
hasString(value, "sheetName") &&
|
|
157
|
+
hasString(value, "startAddress") &&
|
|
158
|
+
hasString(value, "endAddress") &&
|
|
159
|
+
isStringArray(value["columnNames"]) &&
|
|
160
|
+
typeof value["headerRow"] === "boolean" &&
|
|
161
|
+
typeof value["totalsRow"] === "boolean");
|
|
162
|
+
}
|
|
163
|
+
function isWorkbookPivotValue(value) {
|
|
164
|
+
return (isRecord(value) &&
|
|
165
|
+
hasString(value, "sourceColumn") &&
|
|
166
|
+
typeof value["summarizeBy"] === "string" &&
|
|
167
|
+
PIVOT_AGGREGATION_VALUES.has(value["summarizeBy"]) &&
|
|
168
|
+
isOptionalString(value["outputLabel"]));
|
|
169
|
+
}
|
|
170
|
+
export function isWorkbookOp(value) {
|
|
171
|
+
if (!isRecord(value) || typeof value["kind"] !== "string") {
|
|
172
|
+
return false;
|
|
173
|
+
}
|
|
174
|
+
switch (value["kind"]) {
|
|
175
|
+
case "upsertWorkbook":
|
|
176
|
+
return hasString(value, "name");
|
|
177
|
+
case "setWorkbookMetadata":
|
|
178
|
+
return hasString(value, "key") && isLiteralInput(value["value"]);
|
|
179
|
+
case "setCalculationSettings":
|
|
180
|
+
return isWorkbookCalculationSettings(value["settings"]);
|
|
181
|
+
case "setVolatileContext":
|
|
182
|
+
return isWorkbookVolatileContext(value["context"]);
|
|
183
|
+
case "upsertSheet":
|
|
184
|
+
return (hasString(value, "name") && hasFiniteNumber(value, "order") && isOptionalNumber(value["id"]));
|
|
185
|
+
case "renameSheet":
|
|
186
|
+
return hasString(value, "oldName") && hasString(value, "newName");
|
|
187
|
+
case "deleteSheet":
|
|
188
|
+
return hasString(value, "name");
|
|
189
|
+
case "insertRows":
|
|
190
|
+
case "insertColumns":
|
|
191
|
+
return (hasString(value, "sheetName") &&
|
|
192
|
+
hasFiniteNumber(value, "start") &&
|
|
193
|
+
hasFiniteNumber(value, "count") &&
|
|
194
|
+
(value["entries"] === undefined ||
|
|
195
|
+
(Array.isArray(value["entries"]) &&
|
|
196
|
+
value["entries"].every((entry) => isWorkbookAxisEntry(entry)))));
|
|
197
|
+
case "deleteRows":
|
|
198
|
+
case "deleteColumns":
|
|
199
|
+
return (hasString(value, "sheetName") &&
|
|
200
|
+
hasFiniteNumber(value, "start") &&
|
|
201
|
+
hasFiniteNumber(value, "count"));
|
|
202
|
+
case "moveRows":
|
|
203
|
+
case "moveColumns":
|
|
204
|
+
return (hasString(value, "sheetName") &&
|
|
205
|
+
hasFiniteNumber(value, "start") &&
|
|
206
|
+
hasFiniteNumber(value, "count") &&
|
|
207
|
+
hasFiniteNumber(value, "target"));
|
|
208
|
+
case "updateRowMetadata":
|
|
209
|
+
case "updateColumnMetadata":
|
|
210
|
+
return (hasString(value, "sheetName") &&
|
|
211
|
+
hasFiniteNumber(value, "start") &&
|
|
212
|
+
hasFiniteNumber(value, "count") &&
|
|
213
|
+
isOptionalNullableNumber(value["size"]) &&
|
|
214
|
+
isOptionalNullableBoolean(value["hidden"]));
|
|
215
|
+
case "setFreezePane":
|
|
216
|
+
return (hasString(value, "sheetName") &&
|
|
217
|
+
hasFiniteNumber(value, "rows") &&
|
|
218
|
+
hasFiniteNumber(value, "cols"));
|
|
219
|
+
case "clearFreezePane":
|
|
220
|
+
return hasString(value, "sheetName");
|
|
221
|
+
case "setFilter":
|
|
222
|
+
case "clearFilter":
|
|
223
|
+
case "clearSort":
|
|
224
|
+
return hasString(value, "sheetName") && isCellRangeRef(value["range"]);
|
|
225
|
+
case "setSort":
|
|
226
|
+
return (hasString(value, "sheetName") &&
|
|
227
|
+
isCellRangeRef(value["range"]) &&
|
|
228
|
+
Array.isArray(value["keys"]) &&
|
|
229
|
+
value["keys"].every((entry) => isWorkbookSortKey(entry)));
|
|
230
|
+
case "setCellValue":
|
|
231
|
+
return (hasString(value, "sheetName") &&
|
|
232
|
+
hasString(value, "address") &&
|
|
233
|
+
isLiteralInput(value["value"]));
|
|
234
|
+
case "setCellFormula":
|
|
235
|
+
return (hasString(value, "sheetName") && hasString(value, "address") && hasString(value, "formula"));
|
|
236
|
+
case "setCellFormat":
|
|
237
|
+
return (hasString(value, "sheetName") &&
|
|
238
|
+
hasString(value, "address") &&
|
|
239
|
+
(value["format"] === null || typeof value["format"] === "string"));
|
|
240
|
+
case "upsertCellStyle":
|
|
241
|
+
return isCellStyleRecord(value["style"]);
|
|
242
|
+
case "upsertCellNumberFormat":
|
|
243
|
+
return isCellNumberFormatRecord(value["format"]);
|
|
244
|
+
case "setStyleRange":
|
|
245
|
+
return isCellRangeRef(value["range"]) && hasString(value, "styleId");
|
|
246
|
+
case "setFormatRange":
|
|
247
|
+
return isCellRangeRef(value["range"]) && hasString(value, "formatId");
|
|
248
|
+
case "clearCell":
|
|
249
|
+
return hasString(value, "sheetName") && hasString(value, "address");
|
|
250
|
+
case "upsertDefinedName":
|
|
251
|
+
return hasString(value, "name") && isWorkbookDefinedNameValue(value["value"]);
|
|
252
|
+
case "deleteDefinedName":
|
|
253
|
+
case "deleteTable":
|
|
254
|
+
return hasString(value, "name");
|
|
255
|
+
case "upsertTable":
|
|
256
|
+
return isWorkbookTableOp(value["table"]);
|
|
257
|
+
case "upsertSpillRange":
|
|
258
|
+
return (hasString(value, "sheetName") &&
|
|
259
|
+
hasString(value, "address") &&
|
|
260
|
+
hasFiniteNumber(value, "rows") &&
|
|
261
|
+
hasFiniteNumber(value, "cols"));
|
|
262
|
+
case "deleteSpillRange":
|
|
263
|
+
case "deletePivotTable":
|
|
264
|
+
return hasString(value, "sheetName") && hasString(value, "address");
|
|
265
|
+
case "upsertPivotTable":
|
|
266
|
+
return (hasString(value, "name") &&
|
|
267
|
+
hasString(value, "sheetName") &&
|
|
268
|
+
hasString(value, "address") &&
|
|
269
|
+
isCellRangeRef(value["source"]) &&
|
|
270
|
+
isStringArray(value["groupBy"]) &&
|
|
271
|
+
Array.isArray(value["values"]) &&
|
|
272
|
+
value["values"].every((entry) => isWorkbookPivotValue(entry)) &&
|
|
273
|
+
hasFiniteNumber(value, "rows") &&
|
|
274
|
+
hasFiniteNumber(value, "cols"));
|
|
275
|
+
default:
|
|
276
|
+
return false;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
export function isEngineOp(value) {
|
|
280
|
+
return isWorkbookOp(value);
|
|
281
|
+
}
|
|
282
|
+
export function isEngineOps(value) {
|
|
283
|
+
return Array.isArray(value) && value.every((entry) => isEngineOp(entry));
|
|
284
|
+
}
|
|
285
|
+
export function isEngineOpBatch(value) {
|
|
286
|
+
return (isRecord(value) &&
|
|
287
|
+
hasString(value, "id") &&
|
|
288
|
+
hasString(value, "replicaId") &&
|
|
289
|
+
isRecord(value["clock"]) &&
|
|
290
|
+
hasFiniteNumber(value["clock"], "counter") &&
|
|
291
|
+
isEngineOps(value["ops"]));
|
|
292
|
+
}
|
|
293
|
+
//# sourceMappingURL=guards.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guards.js","sourceRoot":"","sources":["../src/guards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjE,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AACpF,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AACvE,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC7E,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAClE,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC;IACxC,SAAS;IACT,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,SAAS;IACT,MAAM;IACN,MAAM;IACN,UAAU;IACV,MAAM;CACP,CAAC,CAAC;AACH,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC;AACvE,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AACvD,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AAE3D,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;AAC1D,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,KAAK,KAAK,SAAS,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc;IAC9C,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,SAAS,CAAC;AAC3D,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAc;IAC/C,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,SAAS,CAAC;AAC7E,CAAC;AAED,SAAS,SAAS,CAAC,KAA8B,EAAE,GAAW;IAC5D,OAAO,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC;AACxC,CAAC;AAED,SAAS,eAAe,CAAC,KAA8B,EAAE,GAAW;IAClE,OAAO,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,OAAO,CACL,QAAQ,CAAC,KAAK,CAAC;QACf,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC;QACtB,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC;QAC/B,wBAAwB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACvC,yBAAyB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAC3C,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,CACL,QAAQ,CAAC,KAAK,CAAC;QACf,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC;QACzB,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,QAAQ;QAClC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,QAAQ;QACnC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAC1C,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;QAC3F,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B,IACE,IAAI,KAAK,SAAS;QAClB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YACd,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjC,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/B,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClC,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACrC,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EACnC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;IACrC,IACE,SAAS,KAAK,SAAS;QACvB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;YACnB,CAAC,CACC,SAAS,CAAC,YAAY,CAAC,KAAK,SAAS;gBACrC,CAAC,OAAO,SAAS,CAAC,YAAY,CAAC,KAAK,QAAQ;oBAC1C,2BAA2B,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAC5D;YACD,CAAC,CACC,SAAS,CAAC,UAAU,CAAC,KAAK,SAAS;gBACnC,CAAC,OAAO,SAAS,CAAC,UAAU,CAAC,KAAK,QAAQ;oBACxC,yBAAyB,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CACxD;YACD,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC,gBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EACzC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;IACjC,IACE,OAAO,KAAK,SAAS;QACrB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;YACjB,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YACnE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,SAAS,IAAI,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACvE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,SAAS,IAAI,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YACzE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,SAAS,IAAI,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EACxE,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc;IAC9C,OAAO,CACL,QAAQ,CAAC,KAAK,CAAC;QACf,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC;QACtB,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC;QACxB,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,QAAQ;QACjC,yBAAyB,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAC7C,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CAAC,KAAc;IACnD,OAAO,CACL,QAAQ,CAAC,KAAK,CAAC;QACf,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC;QAC7D,CAAC,KAAK,CAAC,mBAAmB,CAAC,KAAK,SAAS;YACvC,CAAC,OAAO,KAAK,CAAC,mBAAmB,CAAC,KAAK,QAAQ;gBAC7C,yBAAyB,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAChE,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAc;IAC/C,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,CACL,QAAQ,CAAC,KAAK,CAAC;QACf,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC;QAC9B,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,QAAQ;QACtC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAC9C,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAc;IAChD,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,QAAQ,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,KAAK,QAAQ;YACX,OAAO,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACxC,KAAK,UAAU;YACb,OAAO,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACtE,KAAK,WAAW;YACd,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;QAC/B,KAAK,gBAAgB;YACnB,OAAO,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QACzE,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACrC;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,CACL,QAAQ,CAAC,KAAK,CAAC;QACf,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC;QACxB,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC;QAC7B,SAAS,CAAC,KAAK,EAAE,cAAc,CAAC;QAChC,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC;QAC9B,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACnC,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,SAAS;QACvC,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,SAAS,CACxC,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,OAAO,CACL,QAAQ,CAAC,KAAK,CAAC;QACf,SAAS,CAAC,KAAK,EAAE,cAAc,CAAC;QAChC,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,QAAQ;QACxC,wBAAwB,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAClD,gBAAgB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CACvC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,QAAQ,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,KAAK,gBAAgB;YACnB,OAAO,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAClC,KAAK,qBAAqB;YACxB,OAAO,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACnE,KAAK,wBAAwB;YAC3B,OAAO,6BAA6B,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1D,KAAK,oBAAoB;YACvB,OAAO,yBAAyB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QACrD,KAAK,aAAa;YAChB,OAAO,CACL,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAC7F,CAAC;QACJ,KAAK,aAAa;YAChB,OAAO,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACpE,KAAK,aAAa;YAChB,OAAO,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAClC,KAAK,YAAY,CAAC;QAClB,KAAK,eAAe;YAClB,OAAO,CACL,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC;gBAC7B,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC;gBAC/B,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC;gBAC/B,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,SAAS;oBAC7B,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;wBAC9B,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACpE,CAAC;QACJ,KAAK,YAAY,CAAC;QAClB,KAAK,eAAe;YAClB,OAAO,CACL,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC;gBAC7B,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC;gBAC/B,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAChC,CAAC;QACJ,KAAK,UAAU,CAAC;QAChB,KAAK,aAAa;YAChB,OAAO,CACL,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC;gBAC7B,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC;gBAC/B,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC;gBAC/B,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CACjC,CAAC;QACJ,KAAK,mBAAmB,CAAC;QACzB,KAAK,sBAAsB;YACzB,OAAO,CACL,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC;gBAC7B,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC;gBAC/B,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC;gBAC/B,wBAAwB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACvC,yBAAyB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAC3C,CAAC;QACJ,KAAK,eAAe;YAClB,OAAO,CACL,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC;gBAC7B,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC;gBAC9B,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAC/B,CAAC;QACJ,KAAK,iBAAiB;YACpB,OAAO,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACvC,KAAK,WAAW,CAAC;QACjB,KAAK,aAAa,CAAC;QACnB,KAAK,WAAW;YACd,OAAO,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACzE,KAAK,SAAS;YACZ,OAAO,CACL,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC;gBAC7B,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC9B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC5B,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CACzD,CAAC;QACJ,KAAK,cAAc;YACjB,OAAO,CACL,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC;gBAC7B,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC;gBAC3B,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAC/B,CAAC;QACJ,KAAK,gBAAgB;YACnB,OAAO,CACL,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAC5F,CAAC;QACJ,KAAK,eAAe;YAClB,OAAO,CACL,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC;gBAC7B,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC;gBAC3B,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAClE,CAAC;QACJ,KAAK,iBAAiB;YACpB,OAAO,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3C,KAAK,wBAAwB;YAC3B,OAAO,wBAAwB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnD,KAAK,eAAe;YAClB,OAAO,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACvE,KAAK,gBAAgB;YACnB,OAAO,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACxE,KAAK,WAAW;YACd,OAAO,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACtE,KAAK,mBAAmB;YACtB,OAAO,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,0BAA0B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAChF,KAAK,mBAAmB,CAAC;QACzB,KAAK,aAAa;YAChB,OAAO,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAClC,KAAK,aAAa;YAChB,OAAO,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3C,KAAK,kBAAkB;YACrB,OAAO,CACL,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC;gBAC7B,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC;gBAC3B,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC;gBAC9B,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAC/B,CAAC;QACJ,KAAK,kBAAkB,CAAC;QACxB,KAAK,kBAAkB;YACrB,OAAO,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACtE,KAAK,kBAAkB;YACrB,OAAO,CACL,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC;gBACxB,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC;gBAC7B,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC;gBAC3B,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC/B,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC/B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC9B,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;gBAC7D,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC;gBAC9B,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAC/B,CAAC;QACJ;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,CACL,QAAQ,CAAC,KAAK,CAAC;QACf,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC;QACtB,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC;QAC7B,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxB,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC;QAC1C,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAC1B,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
export * from "./guards.js";
|
|
2
|
+
import type { CellRangeRef, CellNumberFormatRecord, CellStyleRecord, LiteralInput, WorkbookAxisEntrySnapshot, WorkbookCalculationSettingsSnapshot, WorkbookDefinedNameValueSnapshot, WorkbookPivotValueSnapshot, WorkbookVolatileContextSnapshot } from "@bilig/protocol";
|
|
3
|
+
export type ReplicaId = string;
|
|
4
|
+
export type OpId = string;
|
|
5
|
+
export interface Clock {
|
|
6
|
+
counter: number;
|
|
7
|
+
}
|
|
8
|
+
export type WorkbookStructuralAxis = "row" | "column";
|
|
9
|
+
export type WorkbookSortDirection = "asc" | "desc";
|
|
10
|
+
export interface WorkbookTableOp {
|
|
11
|
+
name: string;
|
|
12
|
+
sheetName: string;
|
|
13
|
+
startAddress: string;
|
|
14
|
+
endAddress: string;
|
|
15
|
+
columnNames: string[];
|
|
16
|
+
headerRow: boolean;
|
|
17
|
+
totalsRow: boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface WorkbookSortKey {
|
|
20
|
+
keyAddress: string;
|
|
21
|
+
direction: WorkbookSortDirection;
|
|
22
|
+
}
|
|
23
|
+
export interface WorkbookAxisEntryOp extends WorkbookAxisEntrySnapshot {
|
|
24
|
+
}
|
|
25
|
+
export interface WorkbookCellStyleOp extends CellStyleRecord {
|
|
26
|
+
}
|
|
27
|
+
export interface WorkbookCellNumberFormatOp extends CellNumberFormatRecord {
|
|
28
|
+
}
|
|
29
|
+
export type WorkbookOp = {
|
|
30
|
+
kind: "upsertWorkbook";
|
|
31
|
+
name: string;
|
|
32
|
+
} | {
|
|
33
|
+
kind: "setWorkbookMetadata";
|
|
34
|
+
key: string;
|
|
35
|
+
value: LiteralInput;
|
|
36
|
+
} | {
|
|
37
|
+
kind: "setCalculationSettings";
|
|
38
|
+
settings: WorkbookCalculationSettingsSnapshot;
|
|
39
|
+
} | {
|
|
40
|
+
kind: "setVolatileContext";
|
|
41
|
+
context: WorkbookVolatileContextSnapshot;
|
|
42
|
+
} | {
|
|
43
|
+
kind: "upsertSheet";
|
|
44
|
+
name: string;
|
|
45
|
+
order: number;
|
|
46
|
+
id?: number;
|
|
47
|
+
} | {
|
|
48
|
+
kind: "renameSheet";
|
|
49
|
+
oldName: string;
|
|
50
|
+
newName: string;
|
|
51
|
+
} | {
|
|
52
|
+
kind: "deleteSheet";
|
|
53
|
+
name: string;
|
|
54
|
+
} | {
|
|
55
|
+
kind: "insertRows";
|
|
56
|
+
sheetName: string;
|
|
57
|
+
start: number;
|
|
58
|
+
count: number;
|
|
59
|
+
entries?: WorkbookAxisEntryOp[];
|
|
60
|
+
} | {
|
|
61
|
+
kind: "deleteRows";
|
|
62
|
+
sheetName: string;
|
|
63
|
+
start: number;
|
|
64
|
+
count: number;
|
|
65
|
+
} | {
|
|
66
|
+
kind: "moveRows";
|
|
67
|
+
sheetName: string;
|
|
68
|
+
start: number;
|
|
69
|
+
count: number;
|
|
70
|
+
target: number;
|
|
71
|
+
} | {
|
|
72
|
+
kind: "insertColumns";
|
|
73
|
+
sheetName: string;
|
|
74
|
+
start: number;
|
|
75
|
+
count: number;
|
|
76
|
+
entries?: WorkbookAxisEntryOp[];
|
|
77
|
+
} | {
|
|
78
|
+
kind: "deleteColumns";
|
|
79
|
+
sheetName: string;
|
|
80
|
+
start: number;
|
|
81
|
+
count: number;
|
|
82
|
+
} | {
|
|
83
|
+
kind: "moveColumns";
|
|
84
|
+
sheetName: string;
|
|
85
|
+
start: number;
|
|
86
|
+
count: number;
|
|
87
|
+
target: number;
|
|
88
|
+
} | {
|
|
89
|
+
kind: "updateRowMetadata";
|
|
90
|
+
sheetName: string;
|
|
91
|
+
start: number;
|
|
92
|
+
count: number;
|
|
93
|
+
size: number | null;
|
|
94
|
+
hidden: boolean | null;
|
|
95
|
+
} | {
|
|
96
|
+
kind: "updateColumnMetadata";
|
|
97
|
+
sheetName: string;
|
|
98
|
+
start: number;
|
|
99
|
+
count: number;
|
|
100
|
+
size: number | null;
|
|
101
|
+
hidden: boolean | null;
|
|
102
|
+
} | {
|
|
103
|
+
kind: "setFreezePane";
|
|
104
|
+
sheetName: string;
|
|
105
|
+
rows: number;
|
|
106
|
+
cols: number;
|
|
107
|
+
} | {
|
|
108
|
+
kind: "clearFreezePane";
|
|
109
|
+
sheetName: string;
|
|
110
|
+
} | {
|
|
111
|
+
kind: "setFilter";
|
|
112
|
+
sheetName: string;
|
|
113
|
+
range: CellRangeRef;
|
|
114
|
+
} | {
|
|
115
|
+
kind: "clearFilter";
|
|
116
|
+
sheetName: string;
|
|
117
|
+
range: CellRangeRef;
|
|
118
|
+
} | {
|
|
119
|
+
kind: "setSort";
|
|
120
|
+
sheetName: string;
|
|
121
|
+
range: CellRangeRef;
|
|
122
|
+
keys: WorkbookSortKey[];
|
|
123
|
+
} | {
|
|
124
|
+
kind: "clearSort";
|
|
125
|
+
sheetName: string;
|
|
126
|
+
range: CellRangeRef;
|
|
127
|
+
} | {
|
|
128
|
+
kind: "setCellValue";
|
|
129
|
+
sheetName: string;
|
|
130
|
+
address: string;
|
|
131
|
+
value: LiteralInput;
|
|
132
|
+
} | {
|
|
133
|
+
kind: "setCellFormula";
|
|
134
|
+
sheetName: string;
|
|
135
|
+
address: string;
|
|
136
|
+
formula: string;
|
|
137
|
+
} | {
|
|
138
|
+
kind: "setCellFormat";
|
|
139
|
+
sheetName: string;
|
|
140
|
+
address: string;
|
|
141
|
+
format: string | null;
|
|
142
|
+
} | {
|
|
143
|
+
kind: "upsertCellStyle";
|
|
144
|
+
style: WorkbookCellStyleOp;
|
|
145
|
+
} | {
|
|
146
|
+
kind: "upsertCellNumberFormat";
|
|
147
|
+
format: WorkbookCellNumberFormatOp;
|
|
148
|
+
} | {
|
|
149
|
+
kind: "setStyleRange";
|
|
150
|
+
range: CellRangeRef;
|
|
151
|
+
styleId: string;
|
|
152
|
+
} | {
|
|
153
|
+
kind: "setFormatRange";
|
|
154
|
+
range: CellRangeRef;
|
|
155
|
+
formatId: string;
|
|
156
|
+
} | {
|
|
157
|
+
kind: "clearCell";
|
|
158
|
+
sheetName: string;
|
|
159
|
+
address: string;
|
|
160
|
+
} | {
|
|
161
|
+
kind: "upsertDefinedName";
|
|
162
|
+
name: string;
|
|
163
|
+
value: WorkbookDefinedNameValueSnapshot;
|
|
164
|
+
} | {
|
|
165
|
+
kind: "deleteDefinedName";
|
|
166
|
+
name: string;
|
|
167
|
+
} | {
|
|
168
|
+
kind: "upsertTable";
|
|
169
|
+
table: WorkbookTableOp;
|
|
170
|
+
} | {
|
|
171
|
+
kind: "deleteTable";
|
|
172
|
+
name: string;
|
|
173
|
+
} | {
|
|
174
|
+
kind: "upsertSpillRange";
|
|
175
|
+
sheetName: string;
|
|
176
|
+
address: string;
|
|
177
|
+
rows: number;
|
|
178
|
+
cols: number;
|
|
179
|
+
} | {
|
|
180
|
+
kind: "deleteSpillRange";
|
|
181
|
+
sheetName: string;
|
|
182
|
+
address: string;
|
|
183
|
+
} | {
|
|
184
|
+
kind: "upsertPivotTable";
|
|
185
|
+
name: string;
|
|
186
|
+
sheetName: string;
|
|
187
|
+
address: string;
|
|
188
|
+
source: CellRangeRef;
|
|
189
|
+
groupBy: string[];
|
|
190
|
+
values: WorkbookPivotValueSnapshot[];
|
|
191
|
+
rows: number;
|
|
192
|
+
cols: number;
|
|
193
|
+
} | {
|
|
194
|
+
kind: "deletePivotTable";
|
|
195
|
+
sheetName: string;
|
|
196
|
+
address: string;
|
|
197
|
+
};
|
|
198
|
+
export type EngineOp = WorkbookOp;
|
|
199
|
+
export interface WorkbookOpBatch {
|
|
200
|
+
id: OpId;
|
|
201
|
+
replicaId: ReplicaId;
|
|
202
|
+
clock: Clock;
|
|
203
|
+
ops: WorkbookOp[];
|
|
204
|
+
}
|
|
205
|
+
export type EngineOpBatch = WorkbookOpBatch;
|
|
206
|
+
export interface WorkbookTxn {
|
|
207
|
+
ops: WorkbookOp[];
|
|
208
|
+
potentialNewCells?: number;
|
|
209
|
+
}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@bilig/workbook-domain",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Transport-neutral workbook domain ops and batch types for bilig.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"bilig",
|
|
7
|
+
"domain",
|
|
8
|
+
"spreadsheet",
|
|
9
|
+
"workbook"
|
|
10
|
+
],
|
|
11
|
+
"homepage": "https://github.com/proompteng/bilig/tree/main/packages/workbook-domain#readme",
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/proompteng/bilig/issues"
|
|
14
|
+
},
|
|
15
|
+
"license": "MIT",
|
|
16
|
+
"repository": {
|
|
17
|
+
"type": "git",
|
|
18
|
+
"url": "git+https://github.com/proompteng/bilig.git",
|
|
19
|
+
"directory": "packages/workbook-domain"
|
|
20
|
+
},
|
|
21
|
+
"files": [
|
|
22
|
+
"dist",
|
|
23
|
+
"README.md",
|
|
24
|
+
"LICENSE"
|
|
25
|
+
],
|
|
26
|
+
"type": "module",
|
|
27
|
+
"sideEffects": false,
|
|
28
|
+
"main": "./dist/index.js",
|
|
29
|
+
"types": "./dist/index.d.ts",
|
|
30
|
+
"exports": {
|
|
31
|
+
".": {
|
|
32
|
+
"types": "./dist/index.d.ts",
|
|
33
|
+
"import": "./dist/index.js"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"publishConfig": {
|
|
37
|
+
"access": "public"
|
|
38
|
+
},
|
|
39
|
+
"dependencies": {
|
|
40
|
+
"@bilig/protocol": "0.1.0"
|
|
41
|
+
},
|
|
42
|
+
"engines": {
|
|
43
|
+
"node": ">=24.0.0"
|
|
44
|
+
},
|
|
45
|
+
"scripts": {
|
|
46
|
+
"build": "tsc -p tsconfig.json"
|
|
47
|
+
}
|
|
48
|
+
}
|