@components-kit/open-workbook-excel-core 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.
Files changed (63) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +22 -0
  3. package/dist/backup-manager.d.ts +31 -0
  4. package/dist/backup-manager.d.ts.map +1 -0
  5. package/dist/backup-manager.js +61 -0
  6. package/dist/backup-manager.js.map +1 -0
  7. package/dist/batch-compiler.d.ts +11 -0
  8. package/dist/batch-compiler.d.ts.map +1 -0
  9. package/dist/batch-compiler.js +103 -0
  10. package/dist/batch-compiler.js.map +1 -0
  11. package/dist/chunking.d.ts +6 -0
  12. package/dist/chunking.d.ts.map +1 -0
  13. package/dist/chunking.js +19 -0
  14. package/dist/chunking.js.map +1 -0
  15. package/dist/conflicts.d.ts +26 -0
  16. package/dist/conflicts.d.ts.map +1 -0
  17. package/dist/conflicts.js +269 -0
  18. package/dist/conflicts.js.map +1 -0
  19. package/dist/fingerprint.d.ts +6 -0
  20. package/dist/fingerprint.d.ts.map +1 -0
  21. package/dist/fingerprint.js +41 -0
  22. package/dist/fingerprint.js.map +1 -0
  23. package/dist/formula-dependencies.d.ts +16 -0
  24. package/dist/formula-dependencies.d.ts.map +1 -0
  25. package/dist/formula-dependencies.js +453 -0
  26. package/dist/formula-dependencies.js.map +1 -0
  27. package/dist/index.d.ts +15 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +15 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/lock-manager.d.ts +39 -0
  32. package/dist/lock-manager.d.ts.map +1 -0
  33. package/dist/lock-manager.js +246 -0
  34. package/dist/lock-manager.js.map +1 -0
  35. package/dist/permissions.d.ts +11 -0
  36. package/dist/permissions.d.ts.map +1 -0
  37. package/dist/permissions.js +21 -0
  38. package/dist/permissions.js.map +1 -0
  39. package/dist/plan-manager.d.ts +37 -0
  40. package/dist/plan-manager.d.ts.map +1 -0
  41. package/dist/plan-manager.js +167 -0
  42. package/dist/plan-manager.js.map +1 -0
  43. package/dist/range-address.d.ts +16 -0
  44. package/dist/range-address.d.ts.map +1 -0
  45. package/dist/range-address.js +90 -0
  46. package/dist/range-address.js.map +1 -0
  47. package/dist/snapshot-manager.d.ts +20 -0
  48. package/dist/snapshot-manager.d.ts.map +1 -0
  49. package/dist/snapshot-manager.js +64 -0
  50. package/dist/snapshot-manager.js.map +1 -0
  51. package/dist/task-registry.d.ts +34 -0
  52. package/dist/task-registry.d.ts.map +1 -0
  53. package/dist/task-registry.js +141 -0
  54. package/dist/task-registry.js.map +1 -0
  55. package/dist/template-registry.d.ts +46 -0
  56. package/dist/template-registry.d.ts.map +1 -0
  57. package/dist/template-registry.js +60 -0
  58. package/dist/template-registry.js.map +1 -0
  59. package/dist/transaction-manager.d.ts +33 -0
  60. package/dist/transaction-manager.d.ts.map +1 -0
  61. package/dist/transaction-manager.js +118 -0
  62. package/dist/transaction-manager.js.map +1 -0
  63. package/package.json +51 -0
@@ -0,0 +1,41 @@
1
+ import { cellCount } from "./range-address.js";
2
+ export function createRangeFingerprint(range, payload, capturedAt = new Date().toISOString()) {
3
+ return {
4
+ range,
5
+ hash: hashStable(payload),
6
+ cellCount: cellCount(range.address),
7
+ capturedAt
8
+ };
9
+ }
10
+ export function createWorkbookFingerprint(workbookId, workbookPayload, structurePayload, capturedAt = new Date().toISOString()) {
11
+ return {
12
+ workbookId,
13
+ workbookHash: hashStable(workbookPayload),
14
+ structureHash: hashStable(structurePayload),
15
+ capturedAt
16
+ };
17
+ }
18
+ export function hashStable(value) {
19
+ const input = stableStringify(value);
20
+ let hash = 0xcbf29ce484222325n;
21
+ const prime = 0x100000001b3n;
22
+ for (let i = 0; i < input.length; i += 1) {
23
+ hash ^= BigInt(input.charCodeAt(i));
24
+ hash = BigInt.asUintN(64, hash * prime);
25
+ }
26
+ return hash.toString(16).padStart(16, "0");
27
+ }
28
+ export function stableStringify(value) {
29
+ if (value === null || typeof value !== "object") {
30
+ return JSON.stringify(value);
31
+ }
32
+ if (Array.isArray(value)) {
33
+ return `[${value.map((item) => stableStringify(item)).join(",")}]`;
34
+ }
35
+ const record = value;
36
+ return `{${Object.keys(record)
37
+ .sort()
38
+ .map((key) => `${JSON.stringify(key)}:${stableStringify(record[key])}`)
39
+ .join(",")}}`;
40
+ }
41
+ //# sourceMappingURL=fingerprint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fingerprint.js","sourceRoot":"","sources":["../src/fingerprint.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,UAAU,sBAAsB,CAAC,KAAc,EAAE,OAAgB,EAAE,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;IAC5G,OAAO;QACL,KAAK;QACL,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC;QACzB,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;QACnC,UAAU;KACX,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,UAAsB,EACtB,eAAwB,EACxB,gBAAyB,EACzB,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;IAErC,OAAO;QACL,UAAU;QACV,YAAY,EAAE,UAAU,CAAC,eAAe,CAAC;QACzC,aAAa,EAAE,UAAU,CAAC,gBAAgB,CAAC;QAC3C,UAAU;KACX,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,IAAI,GAAG,mBAAmB,CAAC;IAC/B,MAAM,KAAK,GAAG,cAAc,CAAC;IAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,GAAG,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACrE,CAAC;IAED,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;SAC3B,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;SACtE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAClB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { FormulaDependencyEdge, FormulaDependencyGraph, FormulaDependencyNode, FormulaPatternResponse, FormulaSpillRange, TableInfo, WorkbookId } from "@components-kit/open-workbook-protocol";
2
+ export interface FormulaDependencyOptions {
3
+ tables?: TableInfo[];
4
+ spillRanges?: FormulaSpillRange[];
5
+ }
6
+ export declare function buildFormulaDependencyGraph(patterns: FormulaPatternResponse, options?: FormulaDependencyOptions): FormulaDependencyGraph;
7
+ export declare function extractFormulaReferences(workbookId: WorkbookId, defaultSheetName: string, formula: string, options?: FormulaDependencyOptions): FormulaDependencyNode[];
8
+ export declare function tracePrecedents(graph: FormulaDependencyGraph, sheetName: string, address: string): {
9
+ nodes: FormulaDependencyNode[];
10
+ edges: FormulaDependencyEdge[];
11
+ };
12
+ export declare function traceDependents(graph: FormulaDependencyGraph, sheetName: string, address: string): {
13
+ nodes: FormulaDependencyNode[];
14
+ edges: FormulaDependencyEdge[];
15
+ };
16
+ //# sourceMappingURL=formula-dependencies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formula-dependencies.d.ts","sourceRoot":"","sources":["../src/formula-dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EAEjB,SAAS,EACT,UAAU,EACX,MAAM,wCAAwC,CAAC;AAMhD,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACnC;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,sBAAsB,EAAE,OAAO,GAAE,wBAA6B,GAAG,sBAAsB,CAsD5I;AAED,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,wBAA6B,GAAG,qBAAqB,EAAE,CAsD3K;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAAC,KAAK,EAAE,qBAAqB,EAAE,CAAA;CAAE,CAOrK;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAAC,KAAK,EAAE,qBAAqB,EAAE,CAAA;CAAE,CAOrK"}
@@ -0,0 +1,453 @@
1
+ import { columnNameToNumber, formatA1Address, parseA1Address } from "./range-address.js";
2
+ const REFERENCE_RE = /(?:(?<sheet>'(?:[^']|'')+'|[A-Za-z_][A-Za-z0-9_ ]*)!)?(?<address>\$?[A-Z]{1,3}\$?\d+#|\$?[A-Z]{1,3}\$?\d+(?::\$?[A-Z]{1,3}\$?\d+)?|\$?[A-Z]{1,3}:\$?[A-Z]{1,3})/g;
3
+ const EXTERNAL_RE = /'?\[(?<workbook>[^\]]+)](?<sheet>[^'!]+)'?!?(?<address>\$?[A-Z]{1,3}\$?\d+#|\$?[A-Z]{1,3}\$?\d+(?::\$?[A-Z]{1,3}\$?\d+)?|\$?[A-Z]{1,3}:\$?[A-Z]{1,3})/g;
4
+ export function buildFormulaDependencyGraph(patterns, options = {}) {
5
+ const nodes = new Map();
6
+ const edgeKeys = new Set();
7
+ const edges = [];
8
+ const warnings = [...patterns.warnings];
9
+ const base = parseA1Address(patterns.address);
10
+ const dependencyOptions = {
11
+ ...options,
12
+ spillRanges: [...(patterns.spillRanges ?? []), ...(options.spillRanges ?? [])]
13
+ };
14
+ for (const cell of patterns.cells) {
15
+ const formulaAddress = formatA1Address({
16
+ startRow: base.startRow + cell.rowIndex,
17
+ endRow: base.startRow + cell.rowIndex,
18
+ startColumn: base.startColumn + cell.columnIndex,
19
+ endColumn: base.startColumn + cell.columnIndex
20
+ });
21
+ const formulaNode = addNode(nodes, {
22
+ workbookId: patterns.workbookId,
23
+ kind: "range",
24
+ sheetName: patterns.sheetName,
25
+ address: formulaAddress,
26
+ formula: cell.formula
27
+ });
28
+ for (const reference of extractFormulaReferences(patterns.workbookId, patterns.sheetName, cell.formula, dependencyOptions)) {
29
+ const referencedNode = addNode(nodes, reference);
30
+ const edgeKey = `${referencedNode.id}->${formulaNode.id}`;
31
+ if (edgeKeys.has(edgeKey)) {
32
+ continue;
33
+ }
34
+ edgeKeys.add(edgeKey);
35
+ edges.push({
36
+ from: referencedNode,
37
+ to: formulaNode,
38
+ kind: "precedent",
39
+ confidence: "parsed"
40
+ });
41
+ }
42
+ }
43
+ return {
44
+ workbookId: patterns.workbookId,
45
+ sheetName: patterns.sheetName,
46
+ address: patterns.address,
47
+ capturedAt: new Date().toISOString(),
48
+ nodes: [...nodes.values()],
49
+ edges,
50
+ warnings: [
51
+ ...warnings,
52
+ ...graphWarnings([...nodes.values()]),
53
+ ...spillWarnings(patterns, dependencyOptions)
54
+ ]
55
+ };
56
+ }
57
+ export function extractFormulaReferences(workbookId, defaultSheetName, formula, options = {}) {
58
+ const sanitized = stripStringLiterals(formula);
59
+ const references = [];
60
+ const seen = new Set();
61
+ const structuredReferences = extractStructuredReferences(sanitized);
62
+ for (const structured of structuredReferences) {
63
+ pushUnique(references, seen, {
64
+ id: tableNodeId(workbookId, structured.tableName, structured.reference),
65
+ workbookId,
66
+ kind: "table",
67
+ tableName: structured.tableName,
68
+ structuredReference: structured.reference
69
+ });
70
+ const resolved = resolveStructuredReference(workbookId, structured.tableName, structured.reference, options.tables ?? []);
71
+ if (resolved) {
72
+ pushUnique(references, seen, resolved);
73
+ }
74
+ }
75
+ for (const match of sanitized.matchAll(EXTERNAL_RE)) {
76
+ const groups = match.groups;
77
+ if (!groups?.workbook || !groups.address) {
78
+ continue;
79
+ }
80
+ const sheetName = unquoteSheetName(groups.sheet) ?? "";
81
+ const address = normalizeReferenceAddress(groups.address);
82
+ pushUnique(references, seen, {
83
+ id: externalNodeId(workbookId, groups.workbook, sheetName, address),
84
+ workbookId,
85
+ kind: "external",
86
+ externalWorkbook: groups.workbook,
87
+ externalReference: sheetName ? `${sheetName}!${address}` : address
88
+ });
89
+ }
90
+ const withoutStructuredOrExternal = blankSpans(sanitized.replace(EXTERNAL_RE, " "), structuredReferences);
91
+ for (const match of withoutStructuredOrExternal.matchAll(REFERENCE_RE)) {
92
+ const groups = match.groups;
93
+ if (!groups?.address) {
94
+ continue;
95
+ }
96
+ const sheetName = unquoteSheetName(groups.sheet) ?? defaultSheetName;
97
+ const address = normalizeReferenceAddress(groups.address, {
98
+ workbookId,
99
+ sheetName,
100
+ spillRanges: options.spillRanges ?? []
101
+ });
102
+ pushUnique(references, seen, {
103
+ id: rangeNodeId(workbookId, sheetName, address),
104
+ workbookId,
105
+ kind: "range",
106
+ sheetName,
107
+ address
108
+ });
109
+ }
110
+ return references;
111
+ }
112
+ export function tracePrecedents(graph, sheetName, address) {
113
+ const target = rangeNodeId(graph.workbookId, sheetName, normalizeReferenceAddress(address));
114
+ const edges = graph.edges.filter((edge) => edge.to.id === target);
115
+ return {
116
+ edges,
117
+ nodes: uniqueNodes(edges.map((edge) => edge.from))
118
+ };
119
+ }
120
+ export function traceDependents(graph, sheetName, address) {
121
+ const targetAddress = normalizeReferenceAddress(address);
122
+ const edges = graph.edges.filter((edge) => edge.from.kind === "range" && edge.from.sheetName === sheetName && edge.from.address !== undefined && rangesIntersect(edge.from.address, targetAddress));
123
+ return {
124
+ edges,
125
+ nodes: uniqueNodes(edges.map((edge) => edge.to))
126
+ };
127
+ }
128
+ function addNode(nodes, input) {
129
+ const id = input.id ?? nodeId(input);
130
+ const existing = nodes.get(id);
131
+ if (existing) {
132
+ if (existing.formula === undefined && input.formula !== undefined) {
133
+ existing.formula = input.formula;
134
+ }
135
+ return existing;
136
+ }
137
+ const node = {
138
+ id,
139
+ workbookId: input.workbookId,
140
+ kind: input.kind
141
+ };
142
+ if (input.sheetName !== undefined) {
143
+ node.sheetName = input.sheetName;
144
+ }
145
+ if (input.address !== undefined) {
146
+ node.address = input.address;
147
+ }
148
+ if (input.tableName !== undefined) {
149
+ node.tableName = input.tableName;
150
+ }
151
+ if (input.structuredReference !== undefined) {
152
+ node.structuredReference = input.structuredReference;
153
+ }
154
+ if (input.externalWorkbook !== undefined) {
155
+ node.externalWorkbook = input.externalWorkbook;
156
+ }
157
+ if (input.externalReference !== undefined) {
158
+ node.externalReference = input.externalReference;
159
+ }
160
+ if (input.formula !== undefined) {
161
+ node.formula = input.formula;
162
+ }
163
+ nodes.set(id, node);
164
+ return node;
165
+ }
166
+ function nodeId(node) {
167
+ if (node.kind === "table") {
168
+ return tableNodeId(node.workbookId, node.tableName ?? "", node.structuredReference ?? "");
169
+ }
170
+ if (node.kind === "external") {
171
+ return externalNodeId(node.workbookId, node.externalWorkbook ?? "", "", node.externalReference ?? "");
172
+ }
173
+ return rangeNodeId(node.workbookId, node.sheetName ?? "", node.address ?? "");
174
+ }
175
+ function rangeNodeId(workbookId, sheetName, address) {
176
+ return `${workbookId}:range:${sheetName}!${normalizeReferenceAddress(address)}`;
177
+ }
178
+ function tableNodeId(workbookId, tableName, reference) {
179
+ return `${workbookId}:table:${tableName}[${reference}]`;
180
+ }
181
+ function externalNodeId(workbookId, externalWorkbook, sheetName, reference) {
182
+ return `${workbookId}:external:[${externalWorkbook}]${sheetName ? `${sheetName}!` : ""}${reference}`;
183
+ }
184
+ function normalizeReferenceAddress(address, spillLookup) {
185
+ const withoutDollar = address.replace(/\$/g, "");
186
+ if (withoutDollar.endsWith("#")) {
187
+ const anchorAddress = formatA1Address(parseA1Address(withoutDollar.slice(0, -1)));
188
+ const spill = findSpillRange(spillLookup, anchorAddress);
189
+ if (spill) {
190
+ return normalizeReferenceAddress(spill.spillAddress);
191
+ }
192
+ return anchorAddress;
193
+ }
194
+ const normalized = withoutDollar;
195
+ if (/^[A-Z]{1,3}:[A-Z]{1,3}$/i.test(normalized)) {
196
+ const [startColumn, endColumn] = normalized.split(":");
197
+ return `${startColumn.toUpperCase()}:${endColumn.toUpperCase()}`;
198
+ }
199
+ return formatA1Address(parseA1Address(normalized));
200
+ }
201
+ function findSpillRange(lookup, anchorAddress) {
202
+ if (!lookup) {
203
+ return undefined;
204
+ }
205
+ return lookup.spillRanges.find((spill) => {
206
+ const spillSheetName = spill.sheetName ?? lookup.sheetName;
207
+ return spillSheetName === lookup.sheetName && normalizeReferenceAddress(spill.anchorAddress) === anchorAddress;
208
+ });
209
+ }
210
+ function stripStringLiterals(formula) {
211
+ return formula.replace(/"(?:""|[^"])*"/g, "\"\"");
212
+ }
213
+ function unquoteSheetName(sheetName) {
214
+ if (sheetName === undefined) {
215
+ return undefined;
216
+ }
217
+ return sheetName.startsWith("'") && sheetName.endsWith("'") ? sheetName.slice(1, -1).replace(/''/g, "'") : sheetName;
218
+ }
219
+ function rangesIntersect(left, right) {
220
+ try {
221
+ if (isColumnRange(left) || isColumnRange(right)) {
222
+ return columnRangesIntersect(left, right);
223
+ }
224
+ const parsedLeft = parseA1Address(left);
225
+ const parsedRight = parseA1Address(right);
226
+ return (parsedLeft.startRow <= parsedRight.endRow &&
227
+ parsedLeft.endRow >= parsedRight.startRow &&
228
+ parsedLeft.startColumn <= parsedRight.endColumn &&
229
+ parsedLeft.endColumn >= parsedRight.startColumn);
230
+ }
231
+ catch {
232
+ return left === right;
233
+ }
234
+ }
235
+ function extractStructuredReferences(formula) {
236
+ const matches = [];
237
+ const candidateRe = /(?<![A-Za-z0-9_])(?<table>[A-Za-z_][A-Za-z0-9_]*)\[/g;
238
+ for (const match of formula.matchAll(candidateRe)) {
239
+ const tableName = match.groups?.table;
240
+ if (!tableName || match.index === undefined) {
241
+ continue;
242
+ }
243
+ const bracketStart = match.index + tableName.length;
244
+ const end = findBalancedBracketEnd(formula, bracketStart);
245
+ if (end === undefined) {
246
+ continue;
247
+ }
248
+ matches.push({
249
+ tableName,
250
+ reference: formula.slice(bracketStart + 1, end),
251
+ start: match.index,
252
+ end: end + 1
253
+ });
254
+ }
255
+ return matches;
256
+ }
257
+ function findBalancedBracketEnd(input, start) {
258
+ let depth = 0;
259
+ for (let index = start; index < input.length; index += 1) {
260
+ const char = input[index];
261
+ if (char === "[") {
262
+ depth += 1;
263
+ }
264
+ else if (char === "]") {
265
+ depth -= 1;
266
+ if (depth === 0) {
267
+ return index;
268
+ }
269
+ }
270
+ }
271
+ return undefined;
272
+ }
273
+ function blankSpans(input, spans) {
274
+ if (spans.length === 0) {
275
+ return input;
276
+ }
277
+ const chars = [...input];
278
+ for (const span of spans) {
279
+ for (let index = span.start; index < span.end; index += 1) {
280
+ chars[index] = " ";
281
+ }
282
+ }
283
+ return chars.join("");
284
+ }
285
+ function resolveStructuredReference(workbookId, tableName, reference, tables) {
286
+ const table = tables.find((candidate) => candidate.tableName.toLowerCase() === tableName.toLowerCase());
287
+ if (!table?.sheetName || !table.address) {
288
+ return undefined;
289
+ }
290
+ const parsed = parseA1Address(table.address);
291
+ const parsedReference = parseStructuredReference(reference);
292
+ const rowBounds = structuredRowBounds(parsed.startRow, parsed.endRow, table.showHeaders !== false, table.showTotals === true, parsedReference.qualifiers);
293
+ if (!rowBounds) {
294
+ return undefined;
295
+ }
296
+ const columnBounds = structuredColumnBounds(parsed.startColumn, parsed.endColumn, table.columns, parsedReference.columns);
297
+ const address = formatA1Address({
298
+ startRow: rowBounds.startRow,
299
+ endRow: rowBounds.endRow,
300
+ startColumn: columnBounds.startColumn,
301
+ endColumn: columnBounds.endColumn
302
+ });
303
+ return {
304
+ id: rangeNodeId(workbookId, table.sheetName, address),
305
+ workbookId,
306
+ kind: "range",
307
+ sheetName: table.sheetName,
308
+ address
309
+ };
310
+ }
311
+ function parseStructuredReference(reference) {
312
+ const tokens = structuredReferenceTokens(reference);
313
+ const qualifiers = new Set();
314
+ const columns = [];
315
+ for (const token of tokens) {
316
+ const normalized = normalizeStructuredToken(token);
317
+ if (!normalized) {
318
+ continue;
319
+ }
320
+ if (normalized.startsWith("#")) {
321
+ qualifiers.add(normalized.toLowerCase());
322
+ }
323
+ else {
324
+ columns.push(normalized);
325
+ }
326
+ }
327
+ return { qualifiers, columns };
328
+ }
329
+ function structuredReferenceTokens(reference) {
330
+ const tokens = [];
331
+ const trimmed = reference.trim();
332
+ const bracketed = [...trimmed.matchAll(/\[([^\]]+)]/g)].map((match) => match[1]).filter((token) => token !== undefined);
333
+ if (bracketed.length > 0) {
334
+ for (const token of bracketed) {
335
+ for (const part of token.split(/[:,]/g)) {
336
+ tokens.push(part);
337
+ }
338
+ }
339
+ return tokens;
340
+ }
341
+ return trimmed.split(/[:,]/g);
342
+ }
343
+ function normalizeStructuredToken(token) {
344
+ const normalized = token.trim().replace(/^@+/, "").replace(/^'+/, "").replace(/''/g, "'");
345
+ return normalized.length > 0 ? normalized : undefined;
346
+ }
347
+ function structuredRowBounds(tableStartRow, tableEndRow, showHeaders, showTotals, qualifiers) {
348
+ const dataStartRow = showHeaders ? tableStartRow + 1 : tableStartRow;
349
+ const dataEndRow = showTotals ? tableEndRow - 1 : tableEndRow;
350
+ if (qualifiers.has("#all")) {
351
+ return { startRow: tableStartRow, endRow: tableEndRow };
352
+ }
353
+ if (qualifiers.has("#headers")) {
354
+ return showHeaders ? { startRow: tableStartRow, endRow: tableStartRow } : undefined;
355
+ }
356
+ if (qualifiers.has("#totals")) {
357
+ return showTotals ? { startRow: tableEndRow, endRow: tableEndRow } : undefined;
358
+ }
359
+ if (dataEndRow < dataStartRow) {
360
+ return undefined;
361
+ }
362
+ return { startRow: dataStartRow, endRow: dataEndRow };
363
+ }
364
+ function structuredColumnBounds(tableStartColumn, tableEndColumn, columns, referencedColumns) {
365
+ const indexes = referencedColumns
366
+ .map((columnName) => columns.find((candidate) => candidate.name.toLowerCase() === columnName.toLowerCase())?.index)
367
+ .filter((index) => index !== undefined);
368
+ if (indexes.length === 0) {
369
+ return { startColumn: tableStartColumn, endColumn: tableEndColumn };
370
+ }
371
+ const startColumn = tableStartColumn + Math.min(...indexes);
372
+ const endColumn = tableStartColumn + Math.max(...indexes);
373
+ return { startColumn, endColumn };
374
+ }
375
+ function isColumnRange(address) {
376
+ return /^[A-Z]{1,3}:[A-Z]{1,3}$/i.test(address);
377
+ }
378
+ function columnRangesIntersect(left, right) {
379
+ const leftParsed = columnRangeBounds(left);
380
+ const rightParsed = columnRangeBounds(right);
381
+ return leftParsed.startColumn <= rightParsed.endColumn && leftParsed.endColumn >= rightParsed.startColumn;
382
+ }
383
+ function columnRangeBounds(address) {
384
+ if (isColumnRange(address)) {
385
+ const [start, end] = address.split(":");
386
+ return {
387
+ startColumn: columnNameToNumber(start),
388
+ endColumn: columnNameToNumber(end)
389
+ };
390
+ }
391
+ const parsed = parseA1Address(address);
392
+ return {
393
+ startColumn: parsed.startColumn,
394
+ endColumn: parsed.endColumn
395
+ };
396
+ }
397
+ function uniqueNodes(nodes) {
398
+ const seen = new Set();
399
+ const unique = [];
400
+ for (const node of nodes) {
401
+ if (!seen.has(node.id)) {
402
+ seen.add(node.id);
403
+ unique.push(node);
404
+ }
405
+ }
406
+ return unique;
407
+ }
408
+ function pushUnique(nodes, seen, node) {
409
+ if (seen.has(node.id)) {
410
+ return;
411
+ }
412
+ seen.add(node.id);
413
+ nodes.push(node);
414
+ }
415
+ function graphWarnings(nodes) {
416
+ const warnings = [];
417
+ if (nodes.some((node) => node.kind === "table")) {
418
+ warnings.push({
419
+ code: "FORMULA_STRUCTURED_REFERENCES_PARSED",
420
+ message: "Structured table references were parsed as table dependency nodes and resolved to table ranges when metadata was available."
421
+ });
422
+ }
423
+ if (nodes.some((node) => node.kind === "external")) {
424
+ warnings.push({
425
+ code: "FORMULA_EXTERNAL_REFERENCES_PARSED",
426
+ message: "External workbook references were parsed as external dependency nodes and cannot be resolved to local workbook ranges."
427
+ });
428
+ }
429
+ return warnings;
430
+ }
431
+ function spillWarnings(patterns, options) {
432
+ const warnings = [];
433
+ for (const cell of patterns.cells) {
434
+ for (const match of stripStringLiterals(cell.formula).matchAll(REFERENCE_RE)) {
435
+ const groups = match.groups;
436
+ if (!groups?.address?.endsWith("#")) {
437
+ continue;
438
+ }
439
+ const sheetName = unquoteSheetName(groups.sheet) ?? patterns.sheetName;
440
+ const anchorAddress = normalizeReferenceAddress(groups.address.slice(0, -1));
441
+ const spill = findSpillRange({ workbookId: patterns.workbookId, sheetName, spillRanges: options.spillRanges ?? [] }, anchorAddress);
442
+ if (!spill) {
443
+ warnings.push({
444
+ code: "FORMULA_SPILL_RANGE_UNRESOLVED",
445
+ message: `Dynamic array spill ${sheetName}!${anchorAddress}# was treated as the anchor cell because spill metadata was not available.`,
446
+ details: { sheetName, anchorAddress }
447
+ });
448
+ }
449
+ }
450
+ }
451
+ return warnings;
452
+ }
453
+ //# sourceMappingURL=formula-dependencies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formula-dependencies.js","sourceRoot":"","sources":["../src/formula-dependencies.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export * from "./backup-manager.js";
2
+ export * from "./batch-compiler.js";
3
+ export * from "./chunking.js";
4
+ export * from "./conflicts.js";
5
+ export * from "./fingerprint.js";
6
+ export * from "./formula-dependencies.js";
7
+ export * from "./lock-manager.js";
8
+ export * from "./permissions.js";
9
+ export * from "./plan-manager.js";
10
+ export * from "./range-address.js";
11
+ export * from "./snapshot-manager.js";
12
+ export * from "./task-registry.js";
13
+ export * from "./template-registry.js";
14
+ export * from "./transaction-manager.js";
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,15 @@
1
+ export * from "./backup-manager.js";
2
+ export * from "./batch-compiler.js";
3
+ export * from "./chunking.js";
4
+ export * from "./conflicts.js";
5
+ export * from "./fingerprint.js";
6
+ export * from "./formula-dependencies.js";
7
+ export * from "./lock-manager.js";
8
+ export * from "./permissions.js";
9
+ export * from "./plan-manager.js";
10
+ export * from "./range-address.js";
11
+ export * from "./snapshot-manager.js";
12
+ export * from "./task-registry.js";
13
+ export * from "./template-registry.js";
14
+ export * from "./transaction-manager.js";
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { type AgentId, type ConflictRecord, type LockId, type LockMode, type LockRecord, type TaskId, type TransactionId, type WorkbookId, type WorkbookScope } from "@components-kit/open-workbook-protocol";
2
+ export interface AcquireLocksInput {
3
+ workbookId: WorkbookId;
4
+ ownerAgentId?: AgentId | undefined;
5
+ taskId?: TaskId | undefined;
6
+ transactionId?: TransactionId | undefined;
7
+ scopes: WorkbookScope[];
8
+ mode: LockMode;
9
+ ttlMs?: number;
10
+ reason: string;
11
+ }
12
+ export declare class LockManager {
13
+ private readonly locks;
14
+ acquire(input: AcquireLocksInput): {
15
+ ok: true;
16
+ locks: LockRecord[];
17
+ } | {
18
+ ok: false;
19
+ conflicts: ConflictRecord[];
20
+ };
21
+ renew(lockIds: LockId[], ttlMs?: number): LockRecord[];
22
+ renewWithMissing(lockIds: LockId[], ttlMs?: number): {
23
+ renewed: LockRecord[];
24
+ missingLockIds: LockId[];
25
+ };
26
+ release(lockIds: LockId[]): LockRecord[];
27
+ releaseWithMissing(lockIds: LockId[]): {
28
+ released: LockRecord[];
29
+ missingLockIds: LockId[];
30
+ };
31
+ list(workbookId?: WorkbookId): LockRecord[];
32
+ load(records: LockRecord[]): void;
33
+ dump(): LockRecord[];
34
+ expireActive(reason?: string): LockRecord[];
35
+ findConflicts(workbookId: WorkbookId, scopes: WorkbookScope[], mode: LockMode, transactionId?: TransactionId): ConflictRecord[];
36
+ private expireLocks;
37
+ }
38
+ export declare function scopesConflict(left: WorkbookScope, right: WorkbookScope): boolean;
39
+ //# sourceMappingURL=lock-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lock-manager.d.ts","sourceRoot":"","sources":["../src/lock-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,MAAM,EACX,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,aAAa,EACnB,MAAM,wCAAwC,CAAC;AAIhD,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC1C,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiC;IAEvD,OAAO,CAAC,KAAK,EAAE,iBAAiB,GAAG;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,UAAU,EAAE,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,SAAS,EAAE,cAAc,EAAE,CAAA;KAAE;IAmCjH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,SAAU,GAAG,UAAU,EAAE;IAcvD,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,SAAU,GAAG;QAAE,OAAO,EAAE,UAAU,EAAE,CAAC;QAAC,cAAc,EAAE,MAAM,EAAE,CAAA;KAAE;IASzG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE;IAcxC,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG;QAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;QAAC,cAAc,EAAE,MAAM,EAAE,CAAA;KAAE;IAS3F,IAAI,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE;IAO3C,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI;IAQjC,IAAI,IAAI,UAAU,EAAE;IAKpB,YAAY,CAAC,MAAM,SAAqC,GAAG,UAAU,EAAE;IAcvE,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,cAAc,EAAE;IA6C/H,OAAO,CAAC,WAAW;CAQpB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CA4BjF"}