@bilig/headless 0.1.81 → 0.1.83

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -35,12 +35,26 @@ const value = workbook.getCellValue({ sheet: sheetId, row: 0, col: 1 });
35
35
  - Use `batch()`, `undo()`, `redo()`, `suspendEvaluation()`, and `resumeEvaluation()`.
36
36
  - Register custom functions and language translations before workbook construction.
37
37
  - Use copy, cut, paste, fill-range translation, and formula normalization helpers.
38
+ - Persist and restore WorkPaper documents with:
39
+ - `exportWorkPaperDocument()`
40
+ - `createWorkPaperFromDocument()`
41
+ - `serializeWorkPaperDocument()`
42
+ - `parseWorkPaperDocument()`
38
43
  - Subscribe with HyperFormula-style positional listeners through `on()`, `once()`, and `off()`.
39
44
  - Subscribe with richer payload objects through `onDetailed()`, `onceDetailed()`, and `offDetailed()`.
40
45
  - Use stable compatibility adapters through `graph`, `rangeMapping`, `arrayMapping`,
41
46
  `sheetMapping`, `addressMapping`, `dependencyGraph`, `evaluator`,
42
47
  `columnSearch`, and `lazilyTransformingAstService`.
43
48
 
49
+ ## Persistence
50
+
51
+ `@bilig/headless` follows the HyperFormula-style persistence model:
52
+
53
+ - sheets are serialized as ordered sheet-content arrays
54
+ - named expressions are serialized separately
55
+ - only the JSON-safe subset of `WorkPaperConfig` is persisted automatically
56
+ - custom function plugins and callback hooks should be registered in code before restore
57
+
44
58
  ## Compatibility Notes
45
59
 
46
60
  - `WorkPaper` is the canonical top-level interface.
package/dist/index.d.ts CHANGED
@@ -1 +1,2 @@
1
+ export * from "./persistence.js";
1
2
  export * from "./work-paper.js";
package/dist/index.js CHANGED
@@ -1,2 +1,3 @@
1
+ export * from "./persistence.js";
1
2
  export * from "./work-paper.js";
2
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { WorkPaper } from "./work-paper.js";
2
+ import type { RawCellContent, WorkPaperConfig, WorkPaperSheet } from "./work-paper-types.js";
3
+ export declare const WORK_PAPER_DOCUMENT_FORMAT: "bilig.headless.work-paper.document.v1";
4
+ export declare const PERSISTABLE_WORK_PAPER_CONFIG_KEYS: readonly ["accentSensitive", "caseSensitive", "caseFirst", "chooseAddressMappingPolicy", "context", "currencySymbol", "dateFormats", "functionArgSeparator", "decimalSeparator", "evaluateNullToZero", "ignorePunctuation", "language", "ignoreWhiteSpace", "leapYear1900", "licenseKey", "localeLang", "matchWholeCell", "arrayColumnSeparator", "arrayRowSeparator", "maxRows", "maxColumns", "nullDate", "nullYear", "precisionEpsilon", "precisionRounding", "smartRounding", "thousandSeparator", "timeFormats", "useArrayArithmetic", "useColumnIndex", "useStats", "undoLimit", "useRegularExpressions", "useWildcards"];
5
+ type PersistableWorkPaperConfigKey = (typeof PERSISTABLE_WORK_PAPER_CONFIG_KEYS)[number];
6
+ export type PersistableWorkPaperConfig = Pick<WorkPaperConfig, PersistableWorkPaperConfigKey>;
7
+ export interface PersistedWorkPaperNamedExpression {
8
+ name: string;
9
+ expression: RawCellContent;
10
+ scopeSheetName?: string;
11
+ options?: Record<string, string | number | boolean>;
12
+ }
13
+ export interface PersistedWorkPaperSheet {
14
+ name: string;
15
+ content: WorkPaperSheet;
16
+ }
17
+ export interface PersistedWorkPaperDocument {
18
+ format: typeof WORK_PAPER_DOCUMENT_FORMAT;
19
+ sheets: PersistedWorkPaperSheet[];
20
+ namedExpressions: PersistedWorkPaperNamedExpression[];
21
+ config?: PersistableWorkPaperConfig;
22
+ }
23
+ /**
24
+ * Checks whether a value matches the persisted WorkPaper document format.
25
+ */
26
+ export declare function isPersistedWorkPaperDocument(value: unknown): value is PersistedWorkPaperDocument;
27
+ /**
28
+ * Clones the documented JSON-safe subset of WorkPaper configuration values.
29
+ */
30
+ export declare function pickPersistableWorkPaperConfig(config: WorkPaperConfig): PersistableWorkPaperConfig;
31
+ /**
32
+ * Exports sheets, named expressions, and optional config from a WorkPaper.
33
+ */
34
+ export declare function exportWorkPaperDocument(workbook: WorkPaper, options?: {
35
+ includeConfig?: boolean;
36
+ }): PersistedWorkPaperDocument;
37
+ /**
38
+ * Creates a WorkPaper instance from a validated persisted document.
39
+ */
40
+ export declare function createWorkPaperFromDocument(document: PersistedWorkPaperDocument): WorkPaper;
41
+ /**
42
+ * Serializes a validated WorkPaper document to JSON.
43
+ */
44
+ export declare function serializeWorkPaperDocument(document: PersistedWorkPaperDocument): string;
45
+ /**
46
+ * Parses and validates a WorkPaper document from JSON.
47
+ */
48
+ export declare function parseWorkPaperDocument(json: string): PersistedWorkPaperDocument;
49
+ export {};
@@ -0,0 +1,230 @@
1
+ import { WorkPaper } from "./work-paper.js";
2
+ export const WORK_PAPER_DOCUMENT_FORMAT = "bilig.headless.work-paper.document.v1";
3
+ export const PERSISTABLE_WORK_PAPER_CONFIG_KEYS = [
4
+ "accentSensitive",
5
+ "caseSensitive",
6
+ "caseFirst",
7
+ "chooseAddressMappingPolicy",
8
+ "context",
9
+ "currencySymbol",
10
+ "dateFormats",
11
+ "functionArgSeparator",
12
+ "decimalSeparator",
13
+ "evaluateNullToZero",
14
+ "ignorePunctuation",
15
+ "language",
16
+ "ignoreWhiteSpace",
17
+ "leapYear1900",
18
+ "licenseKey",
19
+ "localeLang",
20
+ "matchWholeCell",
21
+ "arrayColumnSeparator",
22
+ "arrayRowSeparator",
23
+ "maxRows",
24
+ "maxColumns",
25
+ "nullDate",
26
+ "nullYear",
27
+ "precisionEpsilon",
28
+ "precisionRounding",
29
+ "smartRounding",
30
+ "thousandSeparator",
31
+ "timeFormats",
32
+ "useArrayArithmetic",
33
+ "useColumnIndex",
34
+ "useStats",
35
+ "undoLimit",
36
+ "useRegularExpressions",
37
+ "useWildcards",
38
+ ];
39
+ function isRecord(value) {
40
+ return typeof value === "object" && value !== null;
41
+ }
42
+ function isLiteralInput(value) {
43
+ return (value === null ||
44
+ typeof value === "boolean" ||
45
+ typeof value === "number" ||
46
+ typeof value === "string");
47
+ }
48
+ function isRawCellContent(value) {
49
+ return isLiteralInput(value) || typeof value === "string";
50
+ }
51
+ function isWorkPaperSheet(value) {
52
+ return (Array.isArray(value) &&
53
+ value.every((row) => Array.isArray(row) && row.every((cell) => isRawCellContent(cell))));
54
+ }
55
+ function isNamedExpressionOptions(value) {
56
+ return (isRecord(value) &&
57
+ Object.values(value).every((entry) => typeof entry === "string" || typeof entry === "number" || typeof entry === "boolean"));
58
+ }
59
+ function isWorkPaperContextValue(value) {
60
+ return (value === null ||
61
+ typeof value === "string" ||
62
+ typeof value === "number" ||
63
+ typeof value === "boolean" ||
64
+ (Array.isArray(value) && value.every((entry) => isWorkPaperContextValue(entry))) ||
65
+ (isRecord(value) && Object.values(value).every((entry) => isWorkPaperContextValue(entry))));
66
+ }
67
+ function isChooseAddressMappingPolicy(value) {
68
+ return isRecord(value) && (value["mode"] === "dense" || value["mode"] === "sparse");
69
+ }
70
+ function isPersistableWorkPaperConfig(value) {
71
+ if (!isRecord(value)) {
72
+ return false;
73
+ }
74
+ return Object.entries(value).every(([key, entry]) => {
75
+ if (!PERSISTABLE_WORK_PAPER_CONFIG_KEYS.includes(key)) {
76
+ return false;
77
+ }
78
+ if (key === "chooseAddressMappingPolicy") {
79
+ return isChooseAddressMappingPolicy(entry);
80
+ }
81
+ if (key === "currencySymbol" || key === "dateFormats" || key === "timeFormats") {
82
+ return Array.isArray(entry) && entry.every((item) => typeof item === "string");
83
+ }
84
+ if (key === "nullDate") {
85
+ return (isRecord(entry) &&
86
+ typeof entry["year"] === "number" &&
87
+ typeof entry["month"] === "number" &&
88
+ typeof entry["day"] === "number");
89
+ }
90
+ if (key === "context") {
91
+ return isWorkPaperContextValue(entry);
92
+ }
93
+ return typeof entry === "string" || typeof entry === "number" || typeof entry === "boolean";
94
+ });
95
+ }
96
+ function isPersistedWorkPaperNamedExpression(value) {
97
+ return (isRecord(value) &&
98
+ typeof value["name"] === "string" &&
99
+ isRawCellContent(value["expression"]) &&
100
+ (value["scopeSheetName"] === undefined || typeof value["scopeSheetName"] === "string") &&
101
+ (value["options"] === undefined || isNamedExpressionOptions(value["options"])));
102
+ }
103
+ function isPersistedWorkPaperSheet(value) {
104
+ return isRecord(value) && typeof value["name"] === "string" && isWorkPaperSheet(value["content"]);
105
+ }
106
+ /**
107
+ * Checks whether a value matches the persisted WorkPaper document format.
108
+ */
109
+ export function isPersistedWorkPaperDocument(value) {
110
+ return (isRecord(value) &&
111
+ value["format"] === WORK_PAPER_DOCUMENT_FORMAT &&
112
+ Array.isArray(value["sheets"]) &&
113
+ value["sheets"].every((sheet) => isPersistedWorkPaperSheet(sheet)) &&
114
+ Array.isArray(value["namedExpressions"]) &&
115
+ value["namedExpressions"].every((expression) => isPersistedWorkPaperNamedExpression(expression)) &&
116
+ (value["config"] === undefined || isPersistableWorkPaperConfig(value["config"])));
117
+ }
118
+ function assertPersistedWorkPaperDocument(value) {
119
+ if (!isPersistedWorkPaperDocument(value)) {
120
+ throw new Error("Invalid persisted WorkPaper document");
121
+ }
122
+ }
123
+ function setPersistableWorkPaperConfigValue(target, key, value) {
124
+ target[key] = structuredClone(value);
125
+ }
126
+ /**
127
+ * Clones the documented JSON-safe subset of WorkPaper configuration values.
128
+ */
129
+ export function pickPersistableWorkPaperConfig(config) {
130
+ const picked = {};
131
+ for (const key of PERSISTABLE_WORK_PAPER_CONFIG_KEYS) {
132
+ const value = config[key];
133
+ if (value !== undefined) {
134
+ setPersistableWorkPaperConfigValue(picked, key, value);
135
+ }
136
+ }
137
+ return picked;
138
+ }
139
+ /**
140
+ * Exports sheets, named expressions, and optional config from a WorkPaper.
141
+ */
142
+ export function exportWorkPaperDocument(workbook, options = {}) {
143
+ const { includeConfig = true } = options;
144
+ const sheets = workbook.getSheetNames().map((name) => {
145
+ const sheetId = workbook.getSheetId(name);
146
+ if (sheetId === undefined) {
147
+ throw new Error(`Missing sheet id for ${name}`);
148
+ }
149
+ return {
150
+ name,
151
+ content: workbook.getSheetSerialized(sheetId),
152
+ };
153
+ });
154
+ const namedExpressions = workbook
155
+ .getAllNamedExpressionsSerialized()
156
+ .map((expression) => serializeNamedExpression(workbook, expression));
157
+ const document = {
158
+ format: WORK_PAPER_DOCUMENT_FORMAT,
159
+ sheets,
160
+ namedExpressions,
161
+ };
162
+ if (includeConfig) {
163
+ document.config = pickPersistableWorkPaperConfig(workbook.getConfig());
164
+ }
165
+ return document;
166
+ }
167
+ /**
168
+ * Creates a WorkPaper instance from a validated persisted document.
169
+ */
170
+ export function createWorkPaperFromDocument(document) {
171
+ assertPersistedWorkPaperDocument(document);
172
+ const workbook = WorkPaper.buildEmpty(document.config ?? {});
173
+ document.sheets.forEach((sheet) => {
174
+ workbook.addSheet(sheet.name);
175
+ });
176
+ document.namedExpressions.forEach((expression) => {
177
+ const scope = expression.scopeSheetName
178
+ ? workbook.getSheetId(expression.scopeSheetName)
179
+ : undefined;
180
+ if (expression.scopeSheetName && scope === undefined) {
181
+ throw new Error(`Missing scoped sheet ${expression.scopeSheetName}`);
182
+ }
183
+ workbook.addNamedExpression(expression.name, expression.expression, scope, expression.options);
184
+ });
185
+ document.sheets.forEach((sheet) => {
186
+ const sheetId = workbook.getSheetId(sheet.name);
187
+ if (sheetId === undefined) {
188
+ throw new Error(`Missing restored sheet ${sheet.name}`);
189
+ }
190
+ workbook.setSheetContent(sheetId, sheet.content);
191
+ });
192
+ workbook.clearUndoStack();
193
+ workbook.clearRedoStack();
194
+ return workbook;
195
+ }
196
+ /**
197
+ * Serializes a validated WorkPaper document to JSON.
198
+ */
199
+ export function serializeWorkPaperDocument(document) {
200
+ assertPersistedWorkPaperDocument(document);
201
+ return JSON.stringify(document);
202
+ }
203
+ /**
204
+ * Parses and validates a WorkPaper document from JSON.
205
+ */
206
+ export function parseWorkPaperDocument(json) {
207
+ const parsed = JSON.parse(json);
208
+ assertPersistedWorkPaperDocument(parsed);
209
+ return parsed;
210
+ }
211
+ function serializeNamedExpression(workbook, expression) {
212
+ if (expression.scope === undefined) {
213
+ return {
214
+ name: expression.name,
215
+ expression: expression.expression,
216
+ options: expression.options ? structuredClone(expression.options) : undefined,
217
+ };
218
+ }
219
+ const scopeSheetName = workbook.getSheetName(expression.scope);
220
+ if (!scopeSheetName) {
221
+ throw new Error(`Missing scope sheet for named expression ${expression.name}`);
222
+ }
223
+ return {
224
+ name: expression.name,
225
+ expression: expression.expression,
226
+ scopeSheetName,
227
+ options: expression.options ? structuredClone(expression.options) : undefined,
228
+ };
229
+ }
230
+ //# sourceMappingURL=persistence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../src/persistence.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bilig/headless",
3
- "version": "0.1.81",
3
+ "version": "0.1.83",
4
4
  "description": "WorkPaper spreadsheet workbook facade for bilig with HyperFormula-style workflows.",
5
5
  "keywords": [
6
6
  "bilig",
@@ -41,9 +41,9 @@
41
41
  "build": "rm -rf dist tsconfig.tsbuildinfo && tsc -p tsconfig.json"
42
42
  },
43
43
  "dependencies": {
44
- "@bilig/core": "0.1.81",
45
- "@bilig/formula": "0.1.81",
46
- "@bilig/protocol": "0.1.81"
44
+ "@bilig/core": "0.1.83",
45
+ "@bilig/formula": "0.1.83",
46
+ "@bilig/protocol": "0.1.83"
47
47
  },
48
48
  "engines": {
49
49
  "node": ">=24.0.0"