@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,178 @@
1
+ const CELL_REF_RE = /^(\$?)([A-Z]+)(\$?)([1-9][0-9]*)$/;
2
+ const COLUMN_REF_RE = /^(\$?)([A-Z]+)$/;
3
+ const ROW_REF_RE = /^(\$?)([1-9][0-9]*)$/;
4
+ function assertNever(value) {
5
+ throw new Error(`Unexpected value: ${String(value)}`);
6
+ }
7
+ export function formatSheetPrefix(sheetName) {
8
+ if (!sheetName) {
9
+ return '';
10
+ }
11
+ return `${quoteSheetNameIfNeeded(sheetName)}!`;
12
+ }
13
+ export function quoteSheetNameIfNeeded(sheetName) {
14
+ return /^[A-Za-z0-9_.$]+$/.test(sheetName) ? sheetName : `'${sheetName.replaceAll("'", "''")}'`;
15
+ }
16
+ export function columnToIndex(column) {
17
+ let value = 0;
18
+ for (const char of column) {
19
+ value = value * 26 + (char.charCodeAt(0) - 64);
20
+ }
21
+ return value - 1;
22
+ }
23
+ export function indexToColumn(index) {
24
+ let current = index + 1;
25
+ let output = '';
26
+ while (current > 0) {
27
+ const remainder = (current - 1) % 26;
28
+ output = String.fromCharCode(65 + remainder) + output;
29
+ current = Math.floor((current - 1) / 26);
30
+ }
31
+ return output;
32
+ }
33
+ export function targetsSheet(explicitSheetName, ownerSheetName, targetSheetName) {
34
+ return (explicitSheetName ?? ownerSheetName) === targetSheetName;
35
+ }
36
+ export function parseCellReferenceParts(ref) {
37
+ const match = CELL_REF_RE.exec(ref.toUpperCase());
38
+ if (!match) {
39
+ return undefined;
40
+ }
41
+ const [, colAbsolute, columnText, rowAbsolute, rowText] = match;
42
+ return {
43
+ colAbsolute: colAbsolute === '$',
44
+ rowAbsolute: rowAbsolute === '$',
45
+ col: columnToIndex(columnText),
46
+ row: Number.parseInt(rowText, 10) - 1,
47
+ };
48
+ }
49
+ export function formatCellReference(parts, row, col) {
50
+ return `${parts.colAbsolute ? '$' : ''}${indexToColumn(col)}${parts.rowAbsolute ? '$' : ''}${row + 1}`;
51
+ }
52
+ export function parseAxisReferenceParts(ref, kind) {
53
+ const match = (kind === 'row' ? ROW_REF_RE : COLUMN_REF_RE).exec(ref.toUpperCase());
54
+ if (!match) {
55
+ return undefined;
56
+ }
57
+ return kind === 'row'
58
+ ? {
59
+ absolute: match[1] === '$',
60
+ index: Number.parseInt(match[2], 10) - 1,
61
+ }
62
+ : {
63
+ absolute: match[1] === '$',
64
+ index: columnToIndex(match[2]),
65
+ };
66
+ }
67
+ export function formatAxisReference(absolute, index, kind) {
68
+ const prefix = absolute ? '$' : '';
69
+ return kind === 'row' ? `${prefix}${index + 1}` : `${prefix}${indexToColumn(index)}`;
70
+ }
71
+ export function mapPointIndex(index, transform) {
72
+ switch (transform.kind) {
73
+ case 'insert':
74
+ return index >= transform.start ? index + transform.count : index;
75
+ case 'delete':
76
+ if (index < transform.start) {
77
+ return index;
78
+ }
79
+ if (index >= transform.start + transform.count) {
80
+ return index - transform.count;
81
+ }
82
+ return undefined;
83
+ case 'move':
84
+ if (transform.target < transform.start) {
85
+ if (index >= transform.target && index < transform.start) {
86
+ return index + transform.count;
87
+ }
88
+ }
89
+ else if (transform.target > transform.start) {
90
+ if (index >= transform.start + transform.count && index < transform.target + transform.count) {
91
+ return index - transform.count;
92
+ }
93
+ }
94
+ if (index >= transform.start && index < transform.start + transform.count) {
95
+ return transform.target + (index - transform.start);
96
+ }
97
+ return index;
98
+ default:
99
+ return assertNever(transform);
100
+ }
101
+ }
102
+ export function mapInterval(start, end, transform) {
103
+ switch (transform.kind) {
104
+ case 'insert': {
105
+ if (transform.start <= start) {
106
+ return { start: start + transform.count, end: end + transform.count };
107
+ }
108
+ if (transform.start <= end) {
109
+ return { start, end: end + transform.count };
110
+ }
111
+ return { start, end };
112
+ }
113
+ case 'delete': {
114
+ const deleteEnd = transform.start + transform.count - 1;
115
+ if (deleteEnd < start) {
116
+ return { start: start - transform.count, end: end - transform.count };
117
+ }
118
+ if (transform.start > end) {
119
+ return { start, end };
120
+ }
121
+ const survivingStart = start < transform.start ? start : deleteEnd + 1;
122
+ const survivingEnd = end > deleteEnd ? end : transform.start - 1;
123
+ if (survivingStart > survivingEnd) {
124
+ return undefined;
125
+ }
126
+ const nextStart = mapPointIndex(survivingStart, transform);
127
+ const nextEnd = mapPointIndex(survivingEnd, transform);
128
+ return nextStart === undefined || nextEnd === undefined ? undefined : { start: nextStart, end: nextEnd };
129
+ }
130
+ case 'move': {
131
+ const segments = transform.target < transform.start
132
+ ? [
133
+ { start: 0, end: transform.target - 1, delta: 0 },
134
+ { start: transform.target, end: transform.start - 1, delta: transform.count },
135
+ {
136
+ start: transform.start,
137
+ end: transform.start + transform.count - 1,
138
+ delta: transform.target - transform.start,
139
+ },
140
+ { start: transform.start + transform.count, end: Number.MAX_SAFE_INTEGER, delta: 0 },
141
+ ]
142
+ : [
143
+ { start: 0, end: transform.start - 1, delta: 0 },
144
+ {
145
+ start: transform.start,
146
+ end: transform.start + transform.count - 1,
147
+ delta: transform.target - transform.start,
148
+ },
149
+ {
150
+ start: transform.start + transform.count,
151
+ end: transform.target + transform.count - 1,
152
+ delta: -transform.count,
153
+ },
154
+ { start: transform.target + transform.count, end: Number.MAX_SAFE_INTEGER, delta: 0 },
155
+ ];
156
+ let nextStart;
157
+ let nextEnd;
158
+ segments.forEach((segment) => {
159
+ const overlapStart = Math.max(start, segment.start);
160
+ const overlapEnd = Math.min(end, segment.end);
161
+ if (overlapStart > overlapEnd) {
162
+ return;
163
+ }
164
+ const mappedStart = overlapStart + segment.delta;
165
+ const mappedEnd = overlapEnd + segment.delta;
166
+ nextStart = nextStart === undefined ? mappedStart : Math.min(nextStart, mappedStart);
167
+ nextEnd = nextEnd === undefined ? mappedEnd : Math.max(nextEnd, mappedEnd);
168
+ });
169
+ if (nextStart === undefined || nextEnd === undefined) {
170
+ return undefined;
171
+ }
172
+ return { start: nextStart, end: nextEnd };
173
+ }
174
+ default:
175
+ return assertNever(transform);
176
+ }
177
+ }
178
+ //# sourceMappingURL=translation-reference-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translation-reference-utils.js","sourceRoot":"","sources":["../src/translation-reference-utils.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,10 @@
1
1
  import type { FormulaNode } from './ast.js';
2
- import { type CompiledFormula } from './compiler.js';
3
- export type StructuralAxisKind = 'row' | 'column';
4
- export type StructuralAxisTransform = {
5
- kind: 'insert';
6
- axis: StructuralAxisKind;
7
- start: number;
8
- count: number;
9
- } | {
10
- kind: 'delete';
11
- axis: StructuralAxisKind;
12
- start: number;
13
- count: number;
14
- } | {
15
- kind: 'move';
16
- axis: StructuralAxisKind;
17
- start: number;
18
- count: number;
19
- target: number;
20
- };
2
+ import type { CompiledFormula } from './compiler.js';
3
+ import type { StructuralCompiledFormulaRewriteResult } from './formula-structural-rewrite.js';
4
+ export { rewriteAddressForStructuralTransform, rewriteCompiledFormulaForStructuralTransform, rewriteFormulaForStructuralTransform, rewriteRangeForStructuralTransform, } from './formula-structural-rewrite.js';
5
+ export type { StructuralCompiledFormulaRewriteResult } from './formula-structural-rewrite.js';
6
+ export { serializeFormula } from './formula-serializer.js';
7
+ export type { StructuralAxisKind, StructuralAxisTransform } from './translation-reference-utils.js';
21
8
  export declare function translateFormulaReferences(source: string, rowDelta: number, colDelta: number): string;
22
9
  export declare function buildRelativeFormulaTemplateKey(source: string, ownerRow: number, ownerCol: number): string;
23
10
  export declare function buildRelativeFormulaTemplateKeyFromAst(node: FormulaNode, ownerRow: number, ownerCol: number): string;
@@ -28,13 +15,6 @@ export interface CompiledFormulaTranslationResult {
28
15
  export declare function canTranslateCompiledFormulaWithoutAst(compiled: CompiledFormula): boolean;
29
16
  export declare function translateCompiledFormulaWithoutAst(compiled: CompiledFormula, rowDelta: number, colDelta: number, sourceOverride?: string): CompiledFormulaTranslationResult;
30
17
  export declare function translateCompiledFormula(compiled: CompiledFormula, rowDelta: number, colDelta: number, sourceOverride?: string): CompiledFormulaTranslationResult;
31
- export declare function rewriteFormulaForStructuralTransform(source: string, ownerSheetName: string, targetSheetName: string, transform: StructuralAxisTransform): string;
32
- export interface StructuralCompiledFormulaRewriteResult {
33
- source: string;
34
- compiled: CompiledFormula;
35
- reusedProgram: boolean;
36
- }
37
- export declare function rewriteCompiledFormulaForStructuralTransform(compiled: CompiledFormula, ownerSheetName: string, targetSheetName: string, transform: StructuralAxisTransform): StructuralCompiledFormulaRewriteResult;
38
18
  export declare function renameFormulaSheetReferences(source: string, oldSheetName: string, newSheetName: string): string;
39
19
  export declare function renameCompiledFormulaSheetReferences(compiled: CompiledFormula, oldSheetName: string, newSheetName: string): StructuralCompiledFormulaRewriteResult;
40
20
  export interface CompiledFormulaSheetRenameMetadataResult {
@@ -43,9 +23,3 @@ export interface CompiledFormulaSheetRenameMetadataResult {
43
23
  }
44
24
  export declare function renameCompiledFormulaSheetReferenceMetadata(compiled: CompiledFormula, oldSheetName: string, newSheetName: string): CompiledFormulaSheetRenameMetadataResult;
45
25
  export declare function renameCompiledFormulaSheetReferenceMetadataInPlace(compiled: CompiledFormula, oldSheetName: string, newSheetName: string): boolean;
46
- export declare function rewriteAddressForStructuralTransform(address: string, transform: StructuralAxisTransform): string | undefined;
47
- export declare function rewriteRangeForStructuralTransform(startAddress: string, endAddress: string, transform: StructuralAxisTransform): {
48
- startAddress: string;
49
- endAddress: string;
50
- } | undefined;
51
- export declare function serializeFormula(node: FormulaNode, parentPrecedence?: number, parentAssociativity?: 'left' | 'right' | null): string;