@bilig/formula 0.8.0 → 0.8.1

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 (55) hide show
  1. package/dist/binder-wasm-arity.d.ts +1 -0
  2. package/dist/binder-wasm-arity.js +541 -0
  3. package/dist/binder-wasm-arity.js.map +1 -0
  4. package/dist/binder-wasm-rules.d.ts +1 -2
  5. package/dist/binder-wasm-rules.js +2 -540
  6. package/dist/binder-wasm-rules.js.map +1 -1
  7. package/dist/builtins/cell-value-utils.d.ts +9 -0
  8. package/dist/builtins/cell-value-utils.js +63 -0
  9. package/dist/builtins/cell-value-utils.js.map +1 -0
  10. package/dist/builtins/datetime.d.ts +2 -10
  11. package/dist/builtins/datetime.js +5 -261
  12. package/dist/builtins/datetime.js.map +1 -1
  13. package/dist/builtins/excel-date.d.ts +16 -0
  14. package/dist/builtins/excel-date.js +199 -0
  15. package/dist/builtins/excel-date.js.map +1 -0
  16. package/dist/builtins/lookup-core-helpers.d.ts +50 -0
  17. package/dist/builtins/lookup-core-helpers.js +342 -0
  18. package/dist/builtins/lookup-core-helpers.js.map +1 -0
  19. package/dist/builtins/lookup.d.ts +3 -25
  20. package/dist/builtins/lookup.js +3 -341
  21. package/dist/builtins/lookup.js.map +1 -1
  22. package/dist/formula-reference-translation.d.ts +20 -0
  23. package/dist/formula-reference-translation.js +273 -0
  24. package/dist/formula-reference-translation.js.map +1 -0
  25. package/dist/formula-serializer.d.ts +2 -0
  26. package/dist/formula-serializer.js +74 -0
  27. package/dist/formula-serializer.js.map +1 -0
  28. package/dist/formula-sheet-rename.d.ts +14 -0
  29. package/dist/formula-sheet-rename.js +243 -0
  30. package/dist/formula-sheet-rename.js.map +1 -0
  31. package/dist/formula-structural-rewrite.d.ts +14 -0
  32. package/dist/formula-structural-rewrite.js +511 -0
  33. package/dist/formula-structural-rewrite.js.map +1 -0
  34. package/dist/formula-template-key.d.ts +2 -0
  35. package/dist/formula-template-key.js +58 -0
  36. package/dist/formula-template-key.js.map +1 -1
  37. package/dist/js-evaluator-cell-values.d.ts +5 -0
  38. package/dist/js-evaluator-cell-values.js +14 -0
  39. package/dist/js-evaluator-cell-values.js.map +1 -0
  40. package/dist/js-evaluator-runtime-helpers.d.ts +39 -0
  41. package/dist/js-evaluator-runtime-helpers.js +453 -0
  42. package/dist/js-evaluator-runtime-helpers.js.map +1 -0
  43. package/dist/js-evaluator-types.d.ts +178 -0
  44. package/dist/js-evaluator-types.js +2 -0
  45. package/dist/js-evaluator-types.js.map +1 -0
  46. package/dist/js-evaluator.d.ts +4 -178
  47. package/dist/js-evaluator.js +3 -463
  48. package/dist/js-evaluator.js.map +1 -1
  49. package/dist/translation-reference-utils.d.ts +42 -0
  50. package/dist/translation-reference-utils.js +178 -0
  51. package/dist/translation-reference-utils.js.map +1 -0
  52. package/dist/translation.d.ts +6 -32
  53. package/dist/translation.js +14 -1300
  54. package/dist/translation.js.map +1 -1
  55. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formula-sheet-rename.js","sourceRoot":"","sources":["../src/formula-sheet-rename.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { type CompiledFormula } from './compiler.js';
2
+ import { type StructuralAxisTransform } from './translation-reference-utils.js';
3
+ export interface StructuralCompiledFormulaRewriteResult {
4
+ source: string;
5
+ compiled: CompiledFormula;
6
+ reusedProgram: boolean;
7
+ }
8
+ export declare function rewriteFormulaForStructuralTransform(source: string, ownerSheetName: string, targetSheetName: string, transform: StructuralAxisTransform): string;
9
+ export declare function rewriteCompiledFormulaForStructuralTransform(compiled: CompiledFormula, ownerSheetName: string, targetSheetName: string, transform: StructuralAxisTransform): StructuralCompiledFormulaRewriteResult;
10
+ export declare function rewriteAddressForStructuralTransform(address: string, transform: StructuralAxisTransform): string | undefined;
11
+ export declare function rewriteRangeForStructuralTransform(startAddress: string, endAddress: string, transform: StructuralAxisTransform): {
12
+ startAddress: string;
13
+ endAddress: string;
14
+ } | undefined;
@@ -0,0 +1,511 @@
1
+ import { ErrorCode } from '@bilig/protocol';
2
+ import { formatRangeAddress, parseCellAddress, parseRangeAddress } from './addressing.js';
3
+ import { compileFormulaAst, } from './compiler.js';
4
+ import { parseFormula } from './parser.js';
5
+ import { serializeFormula } from './formula-serializer.js';
6
+ import { formatAxisReference, formatCellReference, mapInterval, mapPointIndex, parseAxisReferenceParts, parseCellReferenceParts, quoteSheetNameIfNeeded, targetsSheet, } from './translation-reference-utils.js';
7
+ export function rewriteFormulaForStructuralTransform(source, ownerSheetName, targetSheetName, transform) {
8
+ const ast = parseFormula(source);
9
+ return serializeFormula(rewriteNodeForStructuralTransform(ast, ownerSheetName, targetSheetName, transform));
10
+ }
11
+ export function rewriteCompiledFormulaForStructuralTransform(compiled, ownerSheetName, targetSheetName, transform) {
12
+ const currentAst = compiled.astMatchesSource === false ? parseFormula(compiled.source) : compiled.ast;
13
+ const currentOptimizedAst = compiled.astMatchesSource === false ? currentAst : compiled.optimizedAst === compiled.ast ? currentAst : compiled.optimizedAst;
14
+ const rewrittenAst = rewriteNodeForStructuralTransform(currentAst, ownerSheetName, targetSheetName, transform);
15
+ const rewrittenOptimizedAst = currentOptimizedAst === currentAst
16
+ ? rewrittenAst
17
+ : rewriteNodeForStructuralTransform(currentOptimizedAst, ownerSheetName, targetSheetName, transform);
18
+ const source = serializeFormula(rewrittenAst);
19
+ if (!nodeStructuralShapeEqual(currentOptimizedAst, rewrittenOptimizedAst)) {
20
+ return {
21
+ source,
22
+ compiled: compileFormulaAst(source, rewrittenOptimizedAst, {
23
+ originalAst: rewrittenAst,
24
+ symbolicNames: compiled.symbolicNames,
25
+ symbolicTables: compiled.symbolicTables,
26
+ symbolicSpills: compiled.symbolicSpills,
27
+ }),
28
+ reusedProgram: false,
29
+ };
30
+ }
31
+ return {
32
+ source,
33
+ compiled: {
34
+ ...compiled,
35
+ source,
36
+ ast: rewrittenAst,
37
+ optimizedAst: rewrittenOptimizedAst,
38
+ astMatchesSource: true,
39
+ deps: compiled.deps.map((dependency) => rewriteQualifiedDependencyReference(dependency, ownerSheetName, targetSheetName, transform)),
40
+ symbolicRefs: compiled.symbolicRefs.map((ref) => rewriteQualifiedCellReference(ref, ownerSheetName, targetSheetName, transform)),
41
+ symbolicRanges: compiled.symbolicRanges.map((range) => rewriteQualifiedRangeReference(range, ownerSheetName, targetSheetName, transform)),
42
+ jsPlan: compiled.jsPlan.map((instruction) => rewriteJsPlanInstruction(instruction, ownerSheetName, targetSheetName, transform)),
43
+ ...(compiled.parsedDeps
44
+ ? {
45
+ parsedDeps: compiled.parsedDeps.map((dependency) => rewriteParsedDependencyReference(dependency, ownerSheetName, targetSheetName, transform)),
46
+ }
47
+ : {}),
48
+ ...(compiled.parsedSymbolicRefs
49
+ ? {
50
+ parsedSymbolicRefs: compiled.parsedSymbolicRefs.map((ref) => rewriteParsedCellReference(ref, ownerSheetName, targetSheetName, transform)),
51
+ }
52
+ : {}),
53
+ ...(compiled.parsedSymbolicRanges
54
+ ? {
55
+ parsedSymbolicRanges: compiled.parsedSymbolicRanges.map((range) => rewriteParsedRangeReference(range, ownerSheetName, targetSheetName, transform)),
56
+ }
57
+ : {}),
58
+ },
59
+ reusedProgram: true,
60
+ };
61
+ }
62
+ export function rewriteAddressForStructuralTransform(address, transform) {
63
+ const parsed = parseCellReferenceParts(address);
64
+ if (!parsed) {
65
+ throw new Error(`Invalid cell reference '${address}'`);
66
+ }
67
+ const nextRow = transform.axis === 'row' ? mapPointIndex(parsed.row, transform) : parsed.row;
68
+ const nextCol = transform.axis === 'column' ? mapPointIndex(parsed.col, transform) : parsed.col;
69
+ if (nextRow === undefined || nextCol === undefined) {
70
+ return undefined;
71
+ }
72
+ return formatCellReference(parsed, nextRow, nextCol);
73
+ }
74
+ export function rewriteRangeForStructuralTransform(startAddress, endAddress, transform) {
75
+ const start = parseCellReferenceParts(startAddress);
76
+ const end = parseCellReferenceParts(endAddress);
77
+ if (!start || !end) {
78
+ throw new Error(`Invalid range reference '${startAddress}:${endAddress}'`);
79
+ }
80
+ const nextRows = transform.axis === 'row'
81
+ ? mapInterval(Math.min(start.row, end.row), Math.max(start.row, end.row), transform)
82
+ : { start: Math.min(start.row, end.row), end: Math.max(start.row, end.row) };
83
+ const nextCols = transform.axis === 'column'
84
+ ? mapInterval(Math.min(start.col, end.col), Math.max(start.col, end.col), transform)
85
+ : { start: Math.min(start.col, end.col), end: Math.max(start.col, end.col) };
86
+ if (!nextRows || !nextCols) {
87
+ return undefined;
88
+ }
89
+ return {
90
+ startAddress: formatCellReference(start, nextRows.start, nextCols.start),
91
+ endAddress: formatCellReference(end, nextRows.end, nextCols.end),
92
+ };
93
+ }
94
+ function rewriteNodeForStructuralTransform(node, ownerSheetName, targetSheetName, transform) {
95
+ switch (node.kind) {
96
+ case 'NumberLiteral':
97
+ case 'BooleanLiteral':
98
+ case 'StringLiteral':
99
+ case 'ErrorLiteral':
100
+ case 'NameRef':
101
+ case 'StructuredRef':
102
+ return node;
103
+ case 'CellRef':
104
+ return rewriteCellLikeNode(node, ownerSheetName, targetSheetName, transform);
105
+ case 'SpillRef':
106
+ return rewriteCellLikeNode(node, ownerSheetName, targetSheetName, transform);
107
+ case 'ColumnRef':
108
+ if (!targetsSheet(node.sheetName, ownerSheetName, targetSheetName) || transform.axis !== 'column') {
109
+ return node;
110
+ }
111
+ return rewriteAxisNode(node, transform);
112
+ case 'RowRef':
113
+ if (!targetsSheet(node.sheetName, ownerSheetName, targetSheetName) || transform.axis !== 'row') {
114
+ return node;
115
+ }
116
+ return rewriteAxisNode(node, transform);
117
+ case 'RangeRef':
118
+ return rewriteRangeNode(node, ownerSheetName, targetSheetName, transform);
119
+ case 'UnaryExpr':
120
+ return {
121
+ ...node,
122
+ argument: rewriteNodeForStructuralTransform(node.argument, ownerSheetName, targetSheetName, transform),
123
+ };
124
+ case 'BinaryExpr':
125
+ return {
126
+ ...node,
127
+ left: rewriteNodeForStructuralTransform(node.left, ownerSheetName, targetSheetName, transform),
128
+ right: rewriteNodeForStructuralTransform(node.right, ownerSheetName, targetSheetName, transform),
129
+ };
130
+ case 'CallExpr':
131
+ return {
132
+ ...node,
133
+ args: node.args.map((arg) => rewriteNodeForStructuralTransform(arg, ownerSheetName, targetSheetName, transform)),
134
+ };
135
+ case 'InvokeExpr':
136
+ return {
137
+ ...node,
138
+ callee: rewriteNodeForStructuralTransform(node.callee, ownerSheetName, targetSheetName, transform),
139
+ args: node.args.map((arg) => rewriteNodeForStructuralTransform(arg, ownerSheetName, targetSheetName, transform)),
140
+ };
141
+ }
142
+ }
143
+ function nodeStructuralShapeEqual(left, right) {
144
+ if (left.kind !== right.kind) {
145
+ return false;
146
+ }
147
+ switch (left.kind) {
148
+ case 'NumberLiteral':
149
+ return right.kind === 'NumberLiteral' && left.value === right.value;
150
+ case 'BooleanLiteral':
151
+ return right.kind === 'BooleanLiteral' && left.value === right.value;
152
+ case 'StringLiteral':
153
+ return right.kind === 'StringLiteral' && left.value === right.value;
154
+ case 'ErrorLiteral':
155
+ return right.kind === 'ErrorLiteral' && left.code === right.code;
156
+ case 'NameRef':
157
+ return right.kind === 'NameRef' && left.name === right.name;
158
+ case 'StructuredRef':
159
+ return right.kind === 'StructuredRef' && left.tableName === right.tableName && left.columnName === right.columnName;
160
+ case 'CellRef':
161
+ case 'SpillRef':
162
+ case 'ColumnRef':
163
+ case 'RowRef':
164
+ return true;
165
+ case 'RangeRef':
166
+ return right.kind === 'RangeRef' && left.refKind === right.refKind;
167
+ case 'UnaryExpr':
168
+ return right.kind === 'UnaryExpr' && left.operator === right.operator && nodeStructuralShapeEqual(left.argument, right.argument);
169
+ case 'BinaryExpr':
170
+ return (right.kind === 'BinaryExpr' &&
171
+ left.operator === right.operator &&
172
+ nodeStructuralShapeEqual(left.left, right.left) &&
173
+ nodeStructuralShapeEqual(left.right, right.right));
174
+ case 'CallExpr':
175
+ return (right.kind === 'CallExpr' &&
176
+ left.callee === right.callee &&
177
+ left.args.length === right.args.length &&
178
+ left.args.every((arg, index) => nodeStructuralShapeEqual(arg, right.args[index])));
179
+ case 'InvokeExpr':
180
+ return (right.kind === 'InvokeExpr' &&
181
+ left.args.length === right.args.length &&
182
+ nodeStructuralShapeEqual(left.callee, right.callee) &&
183
+ left.args.every((arg, index) => nodeStructuralShapeEqual(arg, right.args[index])));
184
+ }
185
+ }
186
+ function rewriteCellLikeNode(node, ownerSheetName, targetSheetName, transform) {
187
+ if (!targetsSheet(node.sheetName, ownerSheetName, targetSheetName)) {
188
+ return node;
189
+ }
190
+ const parsed = parseCellReferenceParts(node.ref);
191
+ if (!parsed) {
192
+ return { kind: 'ErrorLiteral', code: ErrorCode.Ref };
193
+ }
194
+ const nextRow = transform.axis === 'row' ? mapPointIndex(parsed.row, transform) : parsed.row;
195
+ const nextCol = transform.axis === 'column' ? mapPointIndex(parsed.col, transform) : parsed.col;
196
+ if (nextRow === undefined || nextCol === undefined) {
197
+ return { kind: 'ErrorLiteral', code: ErrorCode.Ref };
198
+ }
199
+ return {
200
+ ...node,
201
+ ref: formatCellReference(parsed, nextRow, nextCol),
202
+ };
203
+ }
204
+ function rewriteAxisNode(node, transform) {
205
+ const parsed = parseAxisReferenceParts(node.ref, node.kind === 'RowRef' ? 'row' : 'column');
206
+ if (!parsed) {
207
+ return { kind: 'ErrorLiteral', code: ErrorCode.Ref };
208
+ }
209
+ const nextIndex = mapPointIndex(parsed.index, transform);
210
+ if (nextIndex === undefined) {
211
+ return { kind: 'ErrorLiteral', code: ErrorCode.Ref };
212
+ }
213
+ return {
214
+ ...node,
215
+ ref: formatAxisReference(parsed.absolute, nextIndex, node.kind === 'RowRef' ? 'row' : 'column'),
216
+ };
217
+ }
218
+ function rewriteRangeNode(node, ownerSheetName, targetSheetName, transform) {
219
+ if (!targetsSheet(node.sheetName, ownerSheetName, targetSheetName)) {
220
+ return node;
221
+ }
222
+ if ((node.refKind === 'rows' && transform.axis === 'column') || (node.refKind === 'cols' && transform.axis === 'row')) {
223
+ return node;
224
+ }
225
+ if (node.refKind === 'cells') {
226
+ const start = parseCellReferenceParts(node.start);
227
+ const end = parseCellReferenceParts(node.end);
228
+ if (!start || !end) {
229
+ return { kind: 'ErrorLiteral', code: ErrorCode.Ref };
230
+ }
231
+ const nextRows = transform.axis === 'row'
232
+ ? mapInterval(Math.min(start.row, end.row), Math.max(start.row, end.row), transform)
233
+ : { start: Math.min(start.row, end.row), end: Math.max(start.row, end.row) };
234
+ const nextCols = transform.axis === 'column'
235
+ ? mapInterval(Math.min(start.col, end.col), Math.max(start.col, end.col), transform)
236
+ : { start: Math.min(start.col, end.col), end: Math.max(start.col, end.col) };
237
+ if (!nextRows || !nextCols) {
238
+ return { kind: 'ErrorLiteral', code: ErrorCode.Ref };
239
+ }
240
+ return {
241
+ ...node,
242
+ start: formatCellReference(start, nextRows.start, nextCols.start),
243
+ end: formatCellReference(end, nextRows.end, nextCols.end),
244
+ };
245
+ }
246
+ const start = parseAxisReferenceParts(node.start, node.refKind === 'rows' ? 'row' : 'column');
247
+ const end = parseAxisReferenceParts(node.end, node.refKind === 'rows' ? 'row' : 'column');
248
+ if (!start || !end) {
249
+ return { kind: 'ErrorLiteral', code: ErrorCode.Ref };
250
+ }
251
+ const nextInterval = mapInterval(Math.min(start.index, end.index), Math.max(start.index, end.index), transform);
252
+ if (!nextInterval) {
253
+ return { kind: 'ErrorLiteral', code: ErrorCode.Ref };
254
+ }
255
+ return {
256
+ ...node,
257
+ start: formatAxisReference(start.absolute, nextInterval.start, node.refKind === 'rows' ? 'row' : 'column'),
258
+ end: formatAxisReference(end.absolute, nextInterval.end, node.refKind === 'rows' ? 'row' : 'column'),
259
+ };
260
+ }
261
+ function rewriteParsedCellReference(reference, ownerSheetName, targetSheetName, transform) {
262
+ const sheetName = reference.sheetName ?? ownerSheetName;
263
+ if (sheetName !== targetSheetName) {
264
+ return reference;
265
+ }
266
+ const nextAddress = rewriteAddressForStructuralTransform(reference.address, transform);
267
+ if (!nextAddress) {
268
+ return reference;
269
+ }
270
+ const parsed = parseCellAddress(nextAddress, sheetName);
271
+ return {
272
+ ...reference,
273
+ address: parsed.text,
274
+ ...(reference.sheetName !== undefined ? { sheetName: parsed.sheetName } : {}),
275
+ ...(reference.row !== undefined ? { row: parsed.row } : {}),
276
+ ...(reference.col !== undefined ? { col: parsed.col } : {}),
277
+ };
278
+ }
279
+ function rewriteParsedRangeReference(reference, ownerSheetName, targetSheetName, transform) {
280
+ const explicitSheetName = reference.sheetName;
281
+ if (!targetsSheet(explicitSheetName, ownerSheetName, targetSheetName)) {
282
+ return reference;
283
+ }
284
+ const nextRange = rewriteRangeAddressForStructuralTransform(parseRangeAddress(formatQualifiedRangeReference(explicitSheetName, reference.startAddress, reference.endAddress)), transform);
285
+ if (!nextRange) {
286
+ return reference;
287
+ }
288
+ const bounds = nextRange.kind === 'cells'
289
+ ? {
290
+ startRow: nextRange.start.row,
291
+ endRow: nextRange.end.row,
292
+ startCol: nextRange.start.col,
293
+ endCol: nextRange.end.col,
294
+ }
295
+ : nextRange.kind === 'rows'
296
+ ? {
297
+ startRow: nextRange.start.row,
298
+ endRow: nextRange.end.row,
299
+ startCol: 0,
300
+ endCol: 0,
301
+ }
302
+ : {
303
+ startRow: 0,
304
+ endRow: 0,
305
+ startCol: nextRange.start.col,
306
+ endCol: nextRange.end.col,
307
+ };
308
+ return {
309
+ ...reference,
310
+ address: formatQualifiedRangeReference(explicitSheetName, nextRange.start.text, nextRange.end.text),
311
+ refKind: nextRange.kind,
312
+ startAddress: nextRange.start.text,
313
+ endAddress: nextRange.end.text,
314
+ ...bounds,
315
+ };
316
+ }
317
+ function rewriteParsedDependencyReference(reference, ownerSheetName, targetSheetName, transform) {
318
+ return reference.kind === 'cell'
319
+ ? rewriteParsedCellReference(reference, ownerSheetName, targetSheetName, transform)
320
+ : rewriteParsedRangeReference(reference, ownerSheetName, targetSheetName, transform);
321
+ }
322
+ function rewriteQualifiedCellReference(raw, ownerSheetName, targetSheetName, transform) {
323
+ const explicitlyQualified = raw.includes('!');
324
+ const parsed = parseCellAddress(raw, ownerSheetName);
325
+ if (parsed.sheetName !== targetSheetName) {
326
+ return raw;
327
+ }
328
+ const nextAddress = rewriteAddressForStructuralTransform(parsed.text, transform);
329
+ if (!nextAddress) {
330
+ return raw;
331
+ }
332
+ return explicitlyQualified ? formatQualifiedCellReference(parsed.sheetName, nextAddress) : nextAddress;
333
+ }
334
+ function rewriteQualifiedDependencyReference(raw, ownerSheetName, targetSheetName, transform) {
335
+ if (!raw.includes(':')) {
336
+ return rewriteQualifiedCellReference(raw, ownerSheetName, targetSheetName, transform);
337
+ }
338
+ return rewriteQualifiedRangeReference(raw, ownerSheetName, targetSheetName, transform);
339
+ }
340
+ function rewriteQualifiedRangeReference(raw, ownerSheetName, targetSheetName, transform) {
341
+ const explicitlyQualified = raw.includes('!');
342
+ const parsed = parseRangeAddress(raw, ownerSheetName);
343
+ const sheetName = parsed.sheetName ?? ownerSheetName;
344
+ if (sheetName !== targetSheetName) {
345
+ return raw;
346
+ }
347
+ const nextRange = rewriteRangeAddressForStructuralTransform(parsed, transform);
348
+ if (!nextRange) {
349
+ return raw;
350
+ }
351
+ if (explicitlyQualified) {
352
+ return formatRangeAddress(nextRange);
353
+ }
354
+ return `${nextRange.start.text}:${nextRange.end.text}`;
355
+ }
356
+ function rewriteRangeAddressForStructuralTransform(range, transform) {
357
+ switch (range.kind) {
358
+ case 'cells': {
359
+ const nextRange = rewriteRangeForStructuralTransform(range.start.text, range.end.text, transform);
360
+ if (!nextRange) {
361
+ return undefined;
362
+ }
363
+ return parseRangeAddress(formatQualifiedRangeReference(range.sheetName, nextRange.startAddress, nextRange.endAddress));
364
+ }
365
+ case 'rows':
366
+ if (transform.axis !== 'row') {
367
+ return range;
368
+ }
369
+ return rewriteAxisRangeAddress(range, transform);
370
+ case 'cols':
371
+ if (transform.axis !== 'column') {
372
+ return range;
373
+ }
374
+ return rewriteAxisRangeAddress(range, transform);
375
+ }
376
+ }
377
+ function rewriteAxisRangeAddress(range, transform) {
378
+ const startIndex = range.kind === 'rows' ? range.start.row : range.start.col;
379
+ const endIndex = range.kind === 'rows' ? range.end.row : range.end.col;
380
+ const nextInterval = mapInterval(startIndex, endIndex, transform);
381
+ if (!nextInterval) {
382
+ return undefined;
383
+ }
384
+ const prefix = range.sheetName ? `${quoteSheetNameIfNeeded(range.sheetName)}!` : '';
385
+ const startText = range.kind === 'rows' ? formatAxisReference(false, nextInterval.start, 'row') : formatAxisReference(false, nextInterval.start, 'column');
386
+ const endText = range.kind === 'rows' ? formatAxisReference(false, nextInterval.end, 'row') : formatAxisReference(false, nextInterval.end, 'column');
387
+ return parseRangeAddress(`${prefix}${startText}:${endText}`);
388
+ }
389
+ function rewriteJsPlanInstruction(instruction, ownerSheetName, targetSheetName, transform) {
390
+ switch (instruction.opcode) {
391
+ case 'push-cell':
392
+ return {
393
+ ...instruction,
394
+ address: rewriteReferenceOperandAddress(instruction.sheetName, instruction.address, ownerSheetName, targetSheetName, transform),
395
+ };
396
+ case 'push-range': {
397
+ const nextRange = rewritePlanRangeInstruction(instruction.sheetName, instruction.start, instruction.end, instruction.refKind, ownerSheetName, targetSheetName, transform);
398
+ return nextRange ? { ...instruction, ...nextRange } : instruction;
399
+ }
400
+ case 'lookup-exact-match':
401
+ case 'lookup-approximate-match': {
402
+ const nextRange = rewritePlanRangeInstruction(instruction.sheetName, instruction.start, instruction.end, instruction.refKind, ownerSheetName, targetSheetName, transform);
403
+ if (!nextRange) {
404
+ return instruction;
405
+ }
406
+ const parsed = parseRangeAddress(formatQualifiedRangeReference(instruction.sheetName, nextRange.start, nextRange.end));
407
+ if (parsed.kind !== 'cells') {
408
+ return instruction;
409
+ }
410
+ return {
411
+ ...instruction,
412
+ ...nextRange,
413
+ startRow: parsed.start.row,
414
+ endRow: parsed.end.row,
415
+ startCol: parsed.start.col,
416
+ endCol: parsed.end.col,
417
+ };
418
+ }
419
+ case 'call':
420
+ return instruction.argRefs
421
+ ? {
422
+ ...instruction,
423
+ argRefs: instruction.argRefs.map((argRef) => argRef ? rewriteReferenceOperand(argRef, ownerSheetName, targetSheetName, transform) : argRef),
424
+ }
425
+ : instruction;
426
+ case 'push-lambda':
427
+ return {
428
+ ...instruction,
429
+ body: instruction.body.map((step) => rewriteJsPlanInstruction(step, ownerSheetName, targetSheetName, transform)),
430
+ };
431
+ case 'push-number':
432
+ case 'push-boolean':
433
+ case 'push-string':
434
+ case 'push-error':
435
+ case 'push-name':
436
+ case 'unary':
437
+ case 'binary':
438
+ case 'invoke':
439
+ case 'begin-scope':
440
+ case 'bind-name':
441
+ case 'end-scope':
442
+ case 'jump-if-false':
443
+ case 'jump':
444
+ case 'return':
445
+ return instruction;
446
+ }
447
+ }
448
+ function rewriteReferenceOperand(operand, ownerSheetName, targetSheetName, transform) {
449
+ switch (operand.kind) {
450
+ case 'cell':
451
+ return operand.address
452
+ ? {
453
+ ...operand,
454
+ address: rewriteReferenceOperandAddress(operand.sheetName, operand.address, ownerSheetName, targetSheetName, transform),
455
+ }
456
+ : operand;
457
+ case 'range': {
458
+ if (!operand.start || !operand.end || !operand.refKind) {
459
+ return operand;
460
+ }
461
+ const nextRange = rewritePlanRangeInstruction(operand.sheetName, operand.start, operand.end, operand.refKind, ownerSheetName, targetSheetName, transform);
462
+ return nextRange ? { ...operand, ...nextRange } : operand;
463
+ }
464
+ case 'row':
465
+ case 'col':
466
+ return operand;
467
+ }
468
+ }
469
+ function rewriteReferenceOperandAddress(explicitSheetName, address, ownerSheetName, targetSheetName, transform) {
470
+ if ((explicitSheetName ?? ownerSheetName) !== targetSheetName) {
471
+ return address;
472
+ }
473
+ return rewriteAddressForStructuralTransform(address, transform) ?? address;
474
+ }
475
+ function rewritePlanRangeInstruction(explicitSheetName, start, end, refKind, ownerSheetName, targetSheetName, transform) {
476
+ if ((explicitSheetName ?? ownerSheetName) !== targetSheetName) {
477
+ return undefined;
478
+ }
479
+ if (refKind === 'cells') {
480
+ const nextRange = rewriteRangeForStructuralTransform(start, end, transform);
481
+ return nextRange
482
+ ? {
483
+ start: nextRange.startAddress,
484
+ end: nextRange.endAddress,
485
+ }
486
+ : undefined;
487
+ }
488
+ if ((refKind === 'rows' && transform.axis !== 'row') || (refKind === 'cols' && transform.axis !== 'column')) {
489
+ return undefined;
490
+ }
491
+ const parsed = parseRangeAddress(formatQualifiedRangeReference(explicitSheetName, start, end));
492
+ const nextRange = rewriteRangeAddressForStructuralTransform(parsed, transform);
493
+ return nextRange
494
+ ? {
495
+ start: nextRange.start.text,
496
+ end: nextRange.end.text,
497
+ }
498
+ : undefined;
499
+ }
500
+ function formatQualifiedCellReference(sheetName, address) {
501
+ if (!sheetName) {
502
+ return address;
503
+ }
504
+ const parsed = parseCellAddress(address, sheetName);
505
+ return `${quoteSheetNameIfNeeded(sheetName)}!${parsed.text}`;
506
+ }
507
+ function formatQualifiedRangeReference(sheetName, start, end) {
508
+ const prefix = sheetName ? `${quoteSheetNameIfNeeded(sheetName)}!` : '';
509
+ return `${prefix}${start}:${end}`;
510
+ }
511
+ //# sourceMappingURL=formula-structural-rewrite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formula-structural-rewrite.js","sourceRoot":"","sources":["../src/formula-structural-rewrite.ts"],"names":[],"mappings":"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"}
@@ -1 +1,3 @@
1
+ import type { FormulaNode } from './ast.js';
1
2
  export declare function buildRelativeFormulaTemplateTokenKey(source: string, ownerRow: number, ownerCol: number): string;
3
+ export declare function buildRelativeFormulaTemplateAstKey(node: FormulaNode, ownerRow: number, ownerCol: number): string;