@bilig/formula 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 (147) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +16 -0
  3. package/dist/addressing.d.ts +66 -0
  4. package/dist/addressing.js +179 -0
  5. package/dist/addressing.js.map +1 -0
  6. package/dist/ast.d.ts +74 -0
  7. package/dist/ast.js +2 -0
  8. package/dist/ast.js.map +1 -0
  9. package/dist/binder.d.ts +13 -0
  10. package/dist/binder.js +1700 -0
  11. package/dist/binder.js.map +1 -0
  12. package/dist/builtin-capabilities.d.ts +19 -0
  13. package/dist/builtin-capabilities.js +861 -0
  14. package/dist/builtin-capabilities.js.map +1 -0
  15. package/dist/builtins/complex.d.ts +10 -0
  16. package/dist/builtins/complex.js +407 -0
  17. package/dist/builtins/complex.js.map +1 -0
  18. package/dist/builtins/convert.d.ts +3 -0
  19. package/dist/builtins/convert.js +362 -0
  20. package/dist/builtins/convert.js.map +1 -0
  21. package/dist/builtins/datetime.d.ts +23 -0
  22. package/dist/builtins/datetime.js +1096 -0
  23. package/dist/builtins/datetime.js.map +1 -0
  24. package/dist/builtins/distribution-builtins.d.ts +16 -0
  25. package/dist/builtins/distribution-builtins.js +517 -0
  26. package/dist/builtins/distribution-builtins.js.map +1 -0
  27. package/dist/builtins/distributions.d.ts +34 -0
  28. package/dist/builtins/distributions.js +722 -0
  29. package/dist/builtins/distributions.js.map +1 -0
  30. package/dist/builtins/financial-builtins.d.ts +16 -0
  31. package/dist/builtins/financial-builtins.js +324 -0
  32. package/dist/builtins/financial-builtins.js.map +1 -0
  33. package/dist/builtins/financial.d.ts +11 -0
  34. package/dist/builtins/financial.js +241 -0
  35. package/dist/builtins/financial.js.map +1 -0
  36. package/dist/builtins/fixed-income-builtins.d.ts +14 -0
  37. package/dist/builtins/fixed-income-builtins.js +598 -0
  38. package/dist/builtins/fixed-income-builtins.js.map +1 -0
  39. package/dist/builtins/fixed-income.d.ts +42 -0
  40. package/dist/builtins/fixed-income.js +668 -0
  41. package/dist/builtins/fixed-income.js.map +1 -0
  42. package/dist/builtins/formatting.d.ts +8 -0
  43. package/dist/builtins/formatting.js +53 -0
  44. package/dist/builtins/formatting.js.map +1 -0
  45. package/dist/builtins/logical.d.ts +4 -0
  46. package/dist/builtins/logical.js +258 -0
  47. package/dist/builtins/logical.js.map +1 -0
  48. package/dist/builtins/lookup-array-shape-builtins.d.ts +21 -0
  49. package/dist/builtins/lookup-array-shape-builtins.js +517 -0
  50. package/dist/builtins/lookup-array-shape-builtins.js.map +1 -0
  51. package/dist/builtins/lookup-criteria-builtins.d.ts +16 -0
  52. package/dist/builtins/lookup-criteria-builtins.js +216 -0
  53. package/dist/builtins/lookup-criteria-builtins.js.map +1 -0
  54. package/dist/builtins/lookup-database-builtins.d.ts +17 -0
  55. package/dist/builtins/lookup-database-builtins.js +294 -0
  56. package/dist/builtins/lookup-database-builtins.js.map +1 -0
  57. package/dist/builtins/lookup-financial-builtins.d.ts +11 -0
  58. package/dist/builtins/lookup-financial-builtins.js +291 -0
  59. package/dist/builtins/lookup-financial-builtins.js.map +1 -0
  60. package/dist/builtins/lookup-hypothesis-builtins.d.ts +11 -0
  61. package/dist/builtins/lookup-hypothesis-builtins.js +57 -0
  62. package/dist/builtins/lookup-hypothesis-builtins.js.map +1 -0
  63. package/dist/builtins/lookup-matrix-builtins.d.ts +17 -0
  64. package/dist/builtins/lookup-matrix-builtins.js +218 -0
  65. package/dist/builtins/lookup-matrix-builtins.js.map +1 -0
  66. package/dist/builtins/lookup-order-statistics-builtins.d.ts +18 -0
  67. package/dist/builtins/lookup-order-statistics-builtins.js +575 -0
  68. package/dist/builtins/lookup-order-statistics-builtins.js.map +1 -0
  69. package/dist/builtins/lookup-reference-builtins.d.ts +18 -0
  70. package/dist/builtins/lookup-reference-builtins.js +300 -0
  71. package/dist/builtins/lookup-reference-builtins.js.map +1 -0
  72. package/dist/builtins/lookup-regression-builtins.d.ts +12 -0
  73. package/dist/builtins/lookup-regression-builtins.js +511 -0
  74. package/dist/builtins/lookup-regression-builtins.js.map +1 -0
  75. package/dist/builtins/lookup-sort-filter-builtins.d.ts +20 -0
  76. package/dist/builtins/lookup-sort-filter-builtins.js +382 -0
  77. package/dist/builtins/lookup-sort-filter-builtins.js.map +1 -0
  78. package/dist/builtins/lookup.d.ts +13 -0
  79. package/dist/builtins/lookup.js +867 -0
  80. package/dist/builtins/lookup.js.map +1 -0
  81. package/dist/builtins/math-builtins.d.ts +31 -0
  82. package/dist/builtins/math-builtins.js +420 -0
  83. package/dist/builtins/math-builtins.js.map +1 -0
  84. package/dist/builtins/numeric.d.ts +30 -0
  85. package/dist/builtins/numeric.js +150 -0
  86. package/dist/builtins/numeric.js.map +1 -0
  87. package/dist/builtins/placeholder.d.ts +9 -0
  88. package/dist/builtins/placeholder.js +540 -0
  89. package/dist/builtins/placeholder.js.map +1 -0
  90. package/dist/builtins/radix.d.ts +12 -0
  91. package/dist/builtins/radix.js +220 -0
  92. package/dist/builtins/radix.js.map +1 -0
  93. package/dist/builtins/statistical-builtins.d.ts +13 -0
  94. package/dist/builtins/statistical-builtins.js +240 -0
  95. package/dist/builtins/statistical-builtins.js.map +1 -0
  96. package/dist/builtins/statistics.d.ts +8 -0
  97. package/dist/builtins/statistics.js +74 -0
  98. package/dist/builtins/statistics.js.map +1 -0
  99. package/dist/builtins/text.d.ts +5 -0
  100. package/dist/builtins/text.js +1879 -0
  101. package/dist/builtins/text.js.map +1 -0
  102. package/dist/builtins.d.ts +8 -0
  103. package/dist/builtins.js +695 -0
  104. package/dist/builtins.js.map +1 -0
  105. package/dist/compatibility.d.ts +25 -0
  106. package/dist/compatibility.js +498 -0
  107. package/dist/compatibility.js.map +1 -0
  108. package/dist/compiler.d.ts +29 -0
  109. package/dist/compiler.js +474 -0
  110. package/dist/compiler.js.map +1 -0
  111. package/dist/external-function-adapter.d.ts +32 -0
  112. package/dist/external-function-adapter.js +42 -0
  113. package/dist/external-function-adapter.js.map +1 -0
  114. package/dist/generated/formula-inventory.d.ts +6839 -0
  115. package/dist/generated/formula-inventory.js +7368 -0
  116. package/dist/generated/formula-inventory.js.map +1 -0
  117. package/dist/group-pivot-evaluator.d.ts +28 -0
  118. package/dist/group-pivot-evaluator.js +435 -0
  119. package/dist/group-pivot-evaluator.js.map +1 -0
  120. package/dist/index.d.ts +16 -0
  121. package/dist/index.js +17 -0
  122. package/dist/index.js.map +1 -0
  123. package/dist/js-evaluator.d.ts +107 -0
  124. package/dist/js-evaluator.js +1651 -0
  125. package/dist/js-evaluator.js.map +1 -0
  126. package/dist/lexer.d.ts +6 -0
  127. package/dist/lexer.js +115 -0
  128. package/dist/lexer.js.map +1 -0
  129. package/dist/optimizer.d.ts +2 -0
  130. package/dist/optimizer.js +353 -0
  131. package/dist/optimizer.js.map +1 -0
  132. package/dist/parser.d.ts +2 -0
  133. package/dist/parser.js +352 -0
  134. package/dist/parser.js.map +1 -0
  135. package/dist/program-arena.d.ts +22 -0
  136. package/dist/program-arena.js +67 -0
  137. package/dist/program-arena.js.map +1 -0
  138. package/dist/runtime-values.d.ts +17 -0
  139. package/dist/runtime-values.js +11 -0
  140. package/dist/runtime-values.js.map +1 -0
  141. package/dist/special-call-rewrites.d.ts +2 -0
  142. package/dist/special-call-rewrites.js +74 -0
  143. package/dist/special-call-rewrites.js.map +1 -0
  144. package/dist/translation.d.ts +28 -0
  145. package/dist/translation.js +569 -0
  146. package/dist/translation.js.map +1 -0
  147. package/package.json +53 -0
@@ -0,0 +1,498 @@
1
+ export const compatibilityStatuses = [
2
+ "unsupported",
3
+ "seeded",
4
+ "implemented-js",
5
+ "implemented-js-and-wasm-shadow",
6
+ "implemented-wasm-production",
7
+ "blocked",
8
+ ];
9
+ export const compatibilityScopes = ["canonical", "extended"];
10
+ export const wasmCompatibilityStatuses = [
11
+ "not-started",
12
+ "shadow",
13
+ "production",
14
+ "blocked",
15
+ ];
16
+ export const compatibilityFamilies = [
17
+ "arithmetic",
18
+ "comparison",
19
+ "logical",
20
+ "aggregation",
21
+ "math",
22
+ "text",
23
+ "date-time",
24
+ "lookup-reference",
25
+ "statistical",
26
+ "information",
27
+ "dynamic-array",
28
+ "names",
29
+ "tables",
30
+ "structured-reference",
31
+ "volatile",
32
+ "lambda",
33
+ ];
34
+ const familyOwners = {
35
+ arithmetic: "lane-a-arithmetic-aggregation",
36
+ comparison: "backbone-value-model",
37
+ logical: "lane-b-logical-information",
38
+ aggregation: "lane-a-arithmetic-aggregation",
39
+ math: "lane-a-arithmetic-aggregation",
40
+ text: "lane-c-text",
41
+ "date-time": "lane-d-date-time",
42
+ "lookup-reference": "lane-e-lookup-reference",
43
+ statistical: "lane-f-statistical-financial",
44
+ information: "lane-b-logical-information",
45
+ "dynamic-array": "lane-g-dynamic-array-metadata",
46
+ names: "lane-g-dynamic-array-metadata",
47
+ tables: "lane-g-dynamic-array-metadata",
48
+ "structured-reference": "lane-g-dynamic-array-metadata",
49
+ volatile: "lane-d-date-time",
50
+ lambda: "lane-h-lambda",
51
+ };
52
+ const familyPrerequisites = {
53
+ arithmetic: ["core:value-model"],
54
+ comparison: ["core:value-model", "core:comparison-model"],
55
+ logical: ["core:value-model", "core:error-model"],
56
+ aggregation: ["core:value-model", "core:range-iterators"],
57
+ math: ["core:value-model"],
58
+ text: ["core:value-model", "core:string-coercion"],
59
+ "date-time": ["core:value-model", "core:date-serial-model"],
60
+ "lookup-reference": ["core:reference-model", "core:comparison-model"],
61
+ statistical: ["core:value-model", "core:criteria-model"],
62
+ information: ["core:value-model", "core:error-model"],
63
+ "dynamic-array": ["core:shape-model", "core:spill-model"],
64
+ names: ["core:names-model"],
65
+ tables: ["core:tables-model"],
66
+ "structured-reference": ["core:tables-model", "core:structured-reference-model"],
67
+ volatile: ["core:volatile-context"],
68
+ lambda: ["core:lambda-runtime", "core:shape-model"],
69
+ };
70
+ export function deriveWasmStatus(status) {
71
+ switch (status) {
72
+ case "unsupported":
73
+ case "seeded":
74
+ case "implemented-js":
75
+ return "not-started";
76
+ case "implemented-js-and-wasm-shadow":
77
+ return "shadow";
78
+ case "implemented-wasm-production":
79
+ return "production";
80
+ case "blocked":
81
+ return "blocked";
82
+ }
83
+ }
84
+ function entry(id, family, formula, status, options = {}) {
85
+ const base = {
86
+ id,
87
+ family,
88
+ formula,
89
+ status,
90
+ scope: options.scope ?? "canonical",
91
+ fixtureIds: options.fixtureIds ?? [id],
92
+ owner: options.owner ?? familyOwners[family],
93
+ prerequisites: options.prerequisites ?? familyPrerequisites[family],
94
+ wasmStatus: options.wasmStatus ?? deriveWasmStatus(status),
95
+ };
96
+ return options.notes === undefined ? base : { ...base, notes: options.notes };
97
+ }
98
+ export const formulaCompatibilityRegistry = [
99
+ entry("arithmetic:add-basic", "arithmetic", "=A1+A2", "implemented-wasm-production"),
100
+ entry("arithmetic:precedence-basic", "arithmetic", "=A1+A2*A3", "implemented-wasm-production"),
101
+ entry("arithmetic:unary-negation", "arithmetic", "=-A1", "implemented-wasm-production"),
102
+ entry("arithmetic:division-basic", "arithmetic", "=A1/A2", "implemented-wasm-production"),
103
+ entry("arithmetic:power-basic", "arithmetic", "=A1^A2", "implemented-wasm-production"),
104
+ entry("arithmetic:percent-operator", "arithmetic", "=A1*10%", "implemented-wasm-production", {
105
+ notes: "Postfix percent is in the canonical formula corpus and tracked as part of the arithmetic lane.",
106
+ }),
107
+ entry("comparison:equality-number", "comparison", "=A1=A2", "implemented-wasm-production"),
108
+ entry("comparison:equality-text", "comparison", '="hello"="HELLO"', "implemented-wasm-production"),
109
+ entry("comparison:greater-than", "comparison", "=A1>A2", "implemented-wasm-production"),
110
+ entry("comparison:less-than-or-equal", "comparison", "=A1<=A2", "implemented-wasm-production"),
111
+ entry("logical:if-basic", "logical", '=IF(A1>0,"yes","no")', "implemented-wasm-production"),
112
+ entry("logical:ifs-basic", "logical", '=IFS(A1>1,"big",TRUE(),"small")', "implemented-wasm-production"),
113
+ entry("logical:and-basic", "logical", "=AND(A1,A2)", "implemented-wasm-production"),
114
+ entry("logical:or-basic", "logical", "=OR(A1,A2)", "implemented-wasm-production"),
115
+ entry("logical:not-basic", "logical", "=NOT(A1)", "implemented-wasm-production"),
116
+ entry("logical:switch-basic", "logical", '=SWITCH(A1,1,"one","other")', "implemented-wasm-production"),
117
+ entry("logical:xor-basic", "logical", "=XOR(TRUE(),FALSE(),TRUE())", "implemented-wasm-production"),
118
+ entry("aggregation:sum-range", "aggregation", "=SUM(A1:A3)", "implemented-wasm-production"),
119
+ entry("aggregation:avg-range", "aggregation", "=AVG(A1:A3)", "implemented-wasm-production"),
120
+ entry("aggregation:min-range", "aggregation", "=MIN(A1:A3)", "implemented-wasm-production"),
121
+ entry("aggregation:max-range", "aggregation", "=MAX(A1:A3)", "implemented-wasm-production"),
122
+ entry("aggregation:count-range", "aggregation", "=COUNT(A1:A4)", "implemented-wasm-production"),
123
+ entry("aggregation:counta-range", "aggregation", "=COUNTA(A1:A4)", "implemented-wasm-production"),
124
+ entry("aggregation:countblank-range", "aggregation", "=COUNTBLANK(A1:A4)", "implemented-wasm-production"),
125
+ entry("math:abs-basic", "math", "=ABS(A1)", "implemented-wasm-production"),
126
+ entry("math:round-basic", "math", "=ROUND(A1,1)", "implemented-wasm-production"),
127
+ entry("math:trunc-basic", "math", "=TRUNC(A1,1)", "implemented-wasm-production"),
128
+ entry("math:floor-basic", "math", "=FLOOR(A1,2)", "implemented-wasm-production"),
129
+ entry("math:floor-math-basic", "math", "=FLOOR.MATH(A1,2)", "implemented-wasm-production"),
130
+ entry("math:floor-precise-basic", "math", "=FLOOR.PRECISE(A1,2)", "implemented-wasm-production"),
131
+ entry("math:ceiling-basic", "math", "=CEILING(A1,2)", "implemented-wasm-production"),
132
+ entry("math:ceiling-math-basic", "math", "=CEILING.MATH(A1,2)", "implemented-wasm-production"),
133
+ entry("math:ceiling-precise-basic", "math", "=CEILING.PRECISE(A1,2)", "implemented-wasm-production"),
134
+ entry("math:iso-ceiling-basic", "math", "=ISO.CEILING(A1,2)", "implemented-wasm-production"),
135
+ entry("math:mod-basic", "math", "=MOD(A1,A2)", "implemented-wasm-production"),
136
+ entry("math:bitand-basic", "math", "=BITAND(6,3)", "implemented-wasm-production"),
137
+ entry("math:base-basic", "math", "=BASE(255,16,4)", "implemented-wasm-production"),
138
+ entry("math:decimal-basic", "math", '=DECIMAL("00FF",16)', "implemented-wasm-production"),
139
+ entry("math:bin2dec-basic", "math", '=BIN2DEC("1111111111")', "implemented-wasm-production"),
140
+ entry("math:dec2bin-basic", "math", "=DEC2BIN(10,8)", "implemented-wasm-production"),
141
+ entry("math:oct2hex-basic", "math", '=OCT2HEX("17",4)', "implemented-wasm-production"),
142
+ entry("math:besseli-basic", "math", "=BESSELI(1.5,1)", "implemented-wasm-production"),
143
+ entry("math:besselj-basic", "math", "=BESSELJ(1.9,2)", "implemented-wasm-production"),
144
+ entry("math:besselk-basic", "math", "=BESSELK(1.5,1)", "implemented-wasm-production"),
145
+ entry("math:bessely-basic", "math", "=BESSELY(2.5,1)", "implemented-wasm-production"),
146
+ entry("math:convert-basic", "math", '=CONVERT(6,"mi","km")', "implemented-wasm-production"),
147
+ entry("math:euroconvert-basic", "math", '=EUROCONVERT(1,"FRF","DEM",TRUE,3)', "implemented-wasm-production"),
148
+ entry("math:acosh-basic", "math", "=ACOSH(1)", "implemented-wasm-production"),
149
+ entry("math:fact-basic", "math", "=FACT(5)", "implemented-wasm-production"),
150
+ entry("math:combin-basic", "math", "=COMBIN(8,3)", "implemented-wasm-production"),
151
+ entry("math:permut-basic", "math", "=PERMUT(5,3)", "implemented-wasm-production"),
152
+ entry("math:permutationa-basic", "math", "=PERMUTATIONA(2,3)", "implemented-wasm-production"),
153
+ entry("math:mround-basic", "math", "=MROUND(A1,4)", "implemented-wasm-production"),
154
+ entry("math:seriessum-basic", "math", "=SERIESSUM(2,1,2,1,2)", "implemented-wasm-production"),
155
+ entry("math:gcd-basic", "math", "=GCD(A1:A3)", "implemented-wasm-production"),
156
+ entry("math:product-basic", "math", "=PRODUCT(A1:A3)", "implemented-wasm-production"),
157
+ entry("math:geomean-basic", "math", "=GEOMEAN(A1:A3)", "implemented-wasm-production"),
158
+ entry("math:harmean-basic", "math", "=HARMEAN(A1:A3)", "implemented-wasm-production"),
159
+ entry("math:sqrtpi-basic", "math", "=SQRTPI(A1)", "implemented-wasm-production"),
160
+ entry("math:sumsq-basic", "math", "=SUMSQ(A1:A3)", "implemented-wasm-production"),
161
+ entry("text:concat-operator", "text", '="bi"&"lig"', "implemented-wasm-production"),
162
+ entry("text:concat-function", "text", '=CONCAT("bi","lig")', "implemented-wasm-production"),
163
+ entry("text:len-basic", "text", '=LEN("bilig")', "implemented-wasm-production", {
164
+ notes: "LEN now executes through the string-aware native runtime for scalar inputs.",
165
+ }),
166
+ entry("text:char-basic", "text", "=CHAR(65)", "implemented-wasm-production"),
167
+ entry("text:code-basic", "text", '=CODE("A")', "implemented-wasm-production"),
168
+ entry("text:clean-basic", "text", "=CLEAN(CHAR(97)&CHAR(1)&CHAR(98))", "implemented-wasm-production"),
169
+ entry("text:asc-basic", "text", '=ASC("ABC 123")', "implemented-wasm-production"),
170
+ entry("text:jis-basic", "text", '=JIS("ABC 123")', "implemented-wasm-production"),
171
+ entry("text:dbcs-basic", "text", '=DBCS("ABC 123")', "implemented-wasm-production"),
172
+ entry("text:unichar-basic", "text", "=UNICHAR(66)", "implemented-wasm-production"),
173
+ entry("text:dollar-basic", "text", "=DOLLAR(-1234.5,1)", "implemented-wasm-production"),
174
+ entry("text:text-basic", "text", '=TEXT(1234.567,"#,##0.00")', "implemented-wasm-production"),
175
+ entry("text:text-date-basic", "text", '=TEXT(DATE(2024,3,5),"yyyy-mm-dd")', "implemented-wasm-production"),
176
+ entry("text:phonetic-basic", "text", '=PHONETIC("カタカナ")', "implemented-wasm-production"),
177
+ entry("text:bahttext-basic", "text", "=BAHTTEXT(1234)", "implemented-wasm-production"),
178
+ entry("information:t-basic", "information", '=T("alpha")', "implemented-wasm-production"),
179
+ entry("information:n-basic", "information", "=N(TRUE())", "implemented-wasm-production"),
180
+ entry("information:type-basic", "information", '=TYPE("alpha")', "implemented-wasm-production"),
181
+ entry("math:delta-basic", "math", "=DELTA(4,4)", "implemented-wasm-production"),
182
+ entry("math:gestep-basic", "math", "=GESTEP(-1)", "implemented-wasm-production"),
183
+ entry("statistical:gauss-basic", "statistical", "=GAUSS(0)", "implemented-wasm-production"),
184
+ entry("statistical:phi-basic", "statistical", "=PHI(0)", "implemented-wasm-production"),
185
+ entry("statistical:standardize-basic", "statistical", "=STANDARDIZE(1,0,1)", "implemented-wasm-production"),
186
+ entry("statistical:confidence-norm-basic", "statistical", "=CONFIDENCE.NORM(0.05,1,100)", "implemented-wasm-production"),
187
+ entry("statistical:mode-basic", "statistical", "=MODE(A1:A6)", "implemented-wasm-production"),
188
+ entry("statistical:mode-sngl-basic", "statistical", "=MODE.SNGL(A1:A6)", "implemented-wasm-production"),
189
+ entry("statistical:stdev-basic", "statistical", "=STDEV(A1:A4)", "implemented-wasm-production"),
190
+ entry("statistical:stdeva-basic", "statistical", '=STDEVA(2,TRUE(),"skip")', "implemented-wasm-production"),
191
+ entry("statistical:var-basic", "statistical", "=VAR(A1:A4)", "implemented-wasm-production"),
192
+ entry("statistical:vara-basic", "statistical", '=VARA(2,TRUE(),"skip")', "implemented-wasm-production"),
193
+ entry("statistical:skew-basic", "statistical", "=SKEW(A1:A5)", "implemented-wasm-production"),
194
+ entry("statistical:kurt-basic", "statistical", "=KURT(A1:A5)", "implemented-wasm-production"),
195
+ entry("statistical:normdist-basic", "statistical", "=NORMDIST(1,0,1,TRUE)", "implemented-wasm-production"),
196
+ entry("statistical:norminv-basic", "statistical", "=NORMINV(0.8413447460685429,0,1)", "implemented-wasm-production"),
197
+ entry("statistical:normsdist-basic", "statistical", "=NORMSDIST(1)", "implemented-wasm-production"),
198
+ entry("statistical:normsinv-basic", "statistical", "=NORMSINV(0.001)", "implemented-wasm-production"),
199
+ entry("statistical:loginv-basic", "statistical", "=LOGINV(0.5,0,1)", "implemented-wasm-production"),
200
+ entry("statistical:lognormdist-basic", "statistical", "=LOGNORMDIST(1,0,1)", "implemented-wasm-production"),
201
+ entry("date-time:serial-addition", "date-time", "=A1+7", "implemented-wasm-production"),
202
+ entry("date-time:date-constructor", "date-time", "=DATE(2026,3,15)", "implemented-wasm-production"),
203
+ entry("date-time:today-volatile", "date-time", "=TODAY()", "implemented-wasm-production", {
204
+ prerequisites: ["core:value-model", "core:date-serial-model", "core:volatile-context"],
205
+ }),
206
+ entry("lookup-reference:address-basic", "lookup-reference", "=ADDRESS(12,3)", "implemented-wasm-production"),
207
+ entry("lookup-reference:index-basic", "lookup-reference", "=INDEX(A1:B2,2,1)", "implemented-wasm-production"),
208
+ entry("lookup-reference:match-exact", "lookup-reference", '=MATCH("pear",A1:A3,0)', "implemented-wasm-production"),
209
+ entry("lookup-reference:vlookup-exact", "lookup-reference", '=VLOOKUP("pear",A1:B3,2,FALSE)', "implemented-wasm-production"),
210
+ entry("lookup-reference:xlookup-exact", "lookup-reference", '=XLOOKUP("pear",A1:A3,B1:B3)', "implemented-wasm-production"),
211
+ entry("statistical:averageif-basic", "statistical", '=AVERAGEIF(A1:A4,">0")', "implemented-wasm-production"),
212
+ entry("statistical:countif-basic", "statistical", '=COUNTIF(A1:A4,">0")', "implemented-wasm-production"),
213
+ entry("statistical:chisqdist-basic", "statistical", "=CHISQDIST(18.307,10)", "implemented-wasm-production"),
214
+ entry("statistical:chiinv-basic", "statistical", "=CHIINV(0.050001,10)", "implemented-wasm-production"),
215
+ entry("statistical:chisq-inv-rt-basic", "statistical", "=CHISQ.INV.RT(0.050001,10)", "implemented-wasm-production"),
216
+ entry("statistical:chisqinv-basic", "statistical", "=CHISQINV(0.050001,10)", "implemented-wasm-production"),
217
+ entry("statistical:chisq-inv-basic", "statistical", "=CHISQ.INV(0.93,1)", "implemented-wasm-production"),
218
+ entry("statistical:chisq-test-basic", "statistical", "=CHISQ.TEST(A1:B3,D1:E3)", "implemented-wasm-production"),
219
+ entry("statistical:beta-dist-basic", "statistical", "=BETA.DIST(2,8,10,TRUE,1,3)", "implemented-wasm-production"),
220
+ entry("statistical:beta-inv-basic", "statistical", "=BETA.INV(0.6854705810117458,8,10,1,3)", "implemented-wasm-production"),
221
+ entry("statistical:f-dist-rt-basic", "statistical", "=F.DIST.RT(15.2068649,6,4)", "implemented-wasm-production"),
222
+ entry("statistical:fdist-basic", "statistical", "=FDIST(15.2068649,6,4)", "implemented-wasm-production"),
223
+ entry("statistical:f-inv-basic", "statistical", "=F.INV(0.01,6,4)", "implemented-wasm-production"),
224
+ entry("statistical:f-inv-rt-basic", "statistical", "=F.INV.RT(0.01,6,4)", "implemented-wasm-production"),
225
+ entry("statistical:f-test-basic", "statistical", "=F.TEST(A1:A5,B1:B5)", "implemented-wasm-production"),
226
+ entry("statistical:z-test-basic", "statistical", "=Z.TEST(D1:D5,2,1)", "implemented-wasm-production"),
227
+ entry("statistical:correl-basic", "statistical", "=CORREL(A1:A3,B1:B3)", "implemented-wasm-production"),
228
+ entry("statistical:covar-basic", "statistical", "=COVAR(A1:A3,B1:B3)", "implemented-wasm-production"),
229
+ entry("statistical:covariance-p-basic", "statistical", "=COVARIANCE.P(A1:A3,B1:B3)", "implemented-wasm-production"),
230
+ entry("statistical:covariance-s-basic", "statistical", "=COVARIANCE.S(A1:A3,B1:B3)", "implemented-wasm-production"),
231
+ entry("statistical:pearson-basic", "statistical", "=PEARSON(A1:A3,B1:B3)", "implemented-wasm-production"),
232
+ entry("statistical:intercept-basic", "statistical", "=INTERCEPT(A1:A3,B1:B3)", "implemented-wasm-production"),
233
+ entry("statistical:slope-basic", "statistical", "=SLOPE(A1:A3,B1:B3)", "implemented-wasm-production"),
234
+ entry("statistical:rsq-basic", "statistical", "=RSQ(A1:A3,B1:B3)", "implemented-wasm-production"),
235
+ entry("statistical:steyx-basic", "statistical", "=STEYX(A1:A3,B1:B3)", "implemented-wasm-production"),
236
+ entry("statistical:rank-basic", "statistical", "=RANK(20,A1:A4)", "implemented-wasm-production"),
237
+ entry("statistical:rank-eq-basic", "statistical", "=RANK.EQ(20,A1:A4)", "implemented-wasm-production"),
238
+ entry("statistical:rank-avg-basic", "statistical", "=RANK.AVG(20,A1:A4)", "implemented-wasm-production"),
239
+ entry("statistical:median-basic", "statistical", "=MEDIAN(A1:A8)", "implemented-wasm-production"),
240
+ entry("statistical:small-basic", "statistical", "=SMALL(A1:A8,3)", "implemented-wasm-production"),
241
+ entry("statistical:large-basic", "statistical", "=LARGE(A1:A8,2)", "implemented-wasm-production"),
242
+ entry("statistical:percentile-basic", "statistical", "=PERCENTILE(A1:A8,0.25)", "implemented-wasm-production"),
243
+ entry("statistical:percentile-inc-basic", "statistical", "=PERCENTILE.INC(A1:A8,0.25)", "implemented-wasm-production"),
244
+ entry("statistical:percentile-exc-basic", "statistical", "=PERCENTILE.EXC(A1:A8,0.25)", "implemented-wasm-production"),
245
+ entry("statistical:percentrank-basic", "statistical", "=PERCENTRANK(A1:A8,8)", "implemented-wasm-production"),
246
+ entry("statistical:percentrank-inc-basic", "statistical", "=PERCENTRANK.INC(A1:A8,8)", "implemented-wasm-production"),
247
+ entry("statistical:percentrank-exc-basic", "statistical", "=PERCENTRANK.EXC(A1:A8,8)", "implemented-wasm-production"),
248
+ entry("statistical:quartile-basic", "statistical", "=QUARTILE(A1:A8,1)", "implemented-wasm-production"),
249
+ entry("statistical:quartile-inc-basic", "statistical", "=QUARTILE.INC(A1:A8,1)", "implemented-wasm-production"),
250
+ entry("statistical:quartile-exc-basic", "statistical", "=QUARTILE.EXC(A1:A8,1)", "implemented-wasm-production"),
251
+ entry("statistical:mode-mult-basic", "statistical", "=MODE.MULT(A1:A6)", "implemented-wasm-production"),
252
+ entry("statistical:frequency-basic", "statistical", "=FREQUENCY(A1:A6,B1:B3)", "implemented-wasm-production"),
253
+ entry("statistical:t-dist-basic", "statistical", "=T.DIST(1,1,TRUE)", "implemented-wasm-production"),
254
+ entry("statistical:t-inv-2t-basic", "statistical", "=T.INV.2T(0.5,1)", "implemented-wasm-production"),
255
+ entry("statistical:confidence-t-basic", "statistical", "=CONFIDENCE.T(0.5,2,4)", "implemented-wasm-production"),
256
+ entry("statistical:gamma-inv-basic", "statistical", "=GAMMA.INV(0.08030139707139418,3,2)", "implemented-wasm-production"),
257
+ entry("statistical:t-test-basic", "statistical", "=T.TEST(A1:A3,B1:B3,2,1)", "implemented-wasm-production"),
258
+ entry("statistical:forecast-basic", "statistical", "=FORECAST(4,A1:A3,B1:B3)", "implemented-wasm-production"),
259
+ entry("statistical:forecast-linear-basic", "statistical", "=FORECAST.LINEAR(4,A1:A3,B1:B3)", "implemented-wasm-production"),
260
+ entry("statistical:trend-basic", "statistical", "=TREND(A1:A3,B1:B3,D1:D2)", "implemented-wasm-production"),
261
+ entry("statistical:growth-basic", "statistical", "=GROWTH(A1:A3,B1:B3,D1:D2)", "implemented-wasm-production"),
262
+ entry("statistical:linest-basic", "statistical", "=LINEST(A1:A3,B1:B3)", "implemented-wasm-production"),
263
+ entry("statistical:logest-basic", "statistical", "=LOGEST(A1:A3,B1:B3)", "implemented-wasm-production"),
264
+ entry("statistical:prob-basic", "statistical", "=PROB(A1:A4,B1:B4,2,3)", "implemented-wasm-production"),
265
+ entry("statistical:trimmean-basic", "statistical", "=TRIMMEAN(A1:A8,0.25)", "implemented-wasm-production"),
266
+ entry("statistical:daverage-basic", "statistical", '=DAVERAGE(A1:C5,"Yield",E1:E2)', "implemented-wasm-production"),
267
+ entry("statistical:dcount-basic", "statistical", '=DCOUNT(A1:C5,"Yield",E1:E2)', "implemented-wasm-production"),
268
+ entry("statistical:dcounta-basic", "statistical", '=DCOUNTA(A1:C5,"Height",E1:E2)', "implemented-wasm-production"),
269
+ entry("statistical:dget-basic", "statistical", '=DGET(A1:C5,"Height",F1:F2)', "implemented-wasm-production"),
270
+ entry("statistical:dmax-basic", "statistical", '=DMAX(A1:C5,"Yield",E1:E2)', "implemented-wasm-production"),
271
+ entry("statistical:dmin-basic", "statistical", '=DMIN(A1:C5,"Yield",E1:E2)', "implemented-wasm-production"),
272
+ entry("statistical:dproduct-basic", "statistical", '=DPRODUCT(A1:C5,"Yield",E1:E2)', "implemented-wasm-production"),
273
+ entry("statistical:dstdev-basic", "statistical", '=DSTDEV(A1:C5,"Yield",E1:E2)', "implemented-wasm-production"),
274
+ entry("statistical:dstdevp-basic", "statistical", '=DSTDEVP(A1:C5,"Yield",E1:E2)', "implemented-wasm-production"),
275
+ entry("statistical:dsum-basic", "statistical", '=DSUM(A1:C5,"Yield",E1:E2)', "implemented-wasm-production"),
276
+ entry("statistical:dvar-basic", "statistical", '=DVAR(A1:C5,"Yield",E1:E2)', "implemented-wasm-production"),
277
+ entry("statistical:dvarp-basic", "statistical", '=DVARP(A1:C5,"Yield",E1:E2)', "implemented-wasm-production"),
278
+ entry("information:isblank-basic", "information", "=ISBLANK(A1)", "implemented-wasm-production"),
279
+ entry("information:isnumber-basic", "information", "=ISNUMBER(A1)", "implemented-wasm-production"),
280
+ entry("information:istext-basic", "information", "=ISTEXT(A1)", "implemented-wasm-production"),
281
+ entry("dynamic-array:sequence-spill", "dynamic-array", "=SEQUENCE(3,1,1,1)", "implemented-wasm-production", {
282
+ notes: "Top-level SEQUENCE spills now execute on the AssemblyScript path and reuse the existing workbook spill metadata contract; broader array families remain blocked.",
283
+ }),
284
+ entry("dynamic-array:sequence-aggregate", "dynamic-array", "=SUM(SEQUENCE(A1,1,1,1))", "implemented-wasm-production", {
285
+ notes: "Numeric aggregate consumers can now read transient native SEQUENCE arrays directly on the AssemblyScript path without reviving the removed JS runtime fallback.",
286
+ }),
287
+ entry("dynamic-array:filter-basic", "dynamic-array", "=FILTER(A1:A4,A1:A4>2)", "implemented-wasm-production"),
288
+ entry("dynamic-array:unique-basic", "dynamic-array", "=UNIQUE(A1:A4)", "implemented-wasm-production"),
289
+ entry("dynamic-array:groupby-basic", "dynamic-array", "=GROUPBY(A1:A5,C1:C5,SUM,3,1)", "implemented-js", {
290
+ notes: "GROUPBY now has production JS-special spill semantics and canonical fixture coverage; native grouped-array lowering is still pending.",
291
+ }),
292
+ entry("dynamic-array:pivotby-basic", "dynamic-array", "=PIVOTBY(A1:A5,B1:B5,C1:C5,SUM,3,1,0,1)", "implemented-js", {
293
+ notes: "PIVOTBY now has production JS-special pivot spill semantics and canonical fixture coverage; native grouped-array lowering is still pending.",
294
+ }),
295
+ entry("names:defined-name-scalar", "names", "=TaxRate*A1", "implemented-wasm-production", {
296
+ notes: "Scalar workbook names rebind onto the AssemblyScript path once the engine has concrete scalar metadata; reference-valued names remain blocked.",
297
+ }),
298
+ entry("names:defined-name-case-insensitive", "names", "=taxrate*A1", "implemented-wasm-production", {
299
+ scope: "extended",
300
+ notes: "Case-insensitive scalar workbook names rebind onto the AssemblyScript path after metadata normalization.",
301
+ }),
302
+ entry("names:defined-name-multi-scalar-pack", "names", "=TaxRate+FeeRate", "implemented-wasm-production", {
303
+ scope: "extended",
304
+ notes: "Multiple scalar workbook names can participate in one AssemblyScript-routed scalar expression without widening onto reference-valued metadata.",
305
+ }),
306
+ entry("names:defined-name-missing", "names", "=MissingRate*A1", "implemented-wasm-production", {
307
+ scope: "extended",
308
+ notes: "Missing workbook-level names now stay on the AssemblyScript path, surface #NAME?, and rebind natively once the name appears.",
309
+ }),
310
+ entry("lookup-reference:multiple-operations-basic", "lookup-reference", "=MULTIPLE.OPERATIONS(B5,B3,C4,B2,D2)", "implemented-js", {
311
+ scope: "extended",
312
+ notes: "MULTIPLE.OPERATIONS now routes through the workbook-aware JS what-if contract and is covered by both fixture-harness and engine integration tests.",
313
+ }),
314
+ entry("tables:table-total-row-sum", "tables", "=SUM(Sales[Amount])", "implemented-wasm-production", {
315
+ notes: "Table-backed aggregate formulas now compile through metadata substitution and route onto the native aggregate path once the table exists.",
316
+ }),
317
+ entry("structured-reference:table-column-ref", "structured-reference", "=SUM(Sales[Amount])", "implemented-wasm-production", {
318
+ notes: "Structured column references now compile through metadata substitution and route onto the native aggregate path once the table exists.",
319
+ }),
320
+ entry("volatile:rand-basic", "volatile", "=RAND()", "implemented-wasm-production", {
321
+ prerequisites: ["core:volatile-context", "core:value-model"],
322
+ }),
323
+ entry("lambda:let-basic", "lambda", "=LET(x,2,x+3)", "implemented-wasm-production", {
324
+ notes: "LET formulas with rewrite-safe bindings now lower to ordinary scalar AST before binding, which lets deterministic cases route through the native fast path without a general closure VM.",
325
+ }),
326
+ entry("lambda:lambda-invoke", "lambda", "=LAMBDA(x,x+1)(4)", "implemented-wasm-production", {
327
+ notes: "Immediate LAMBDA invocation now rewrites to the invoked body with argument substitution before binding, so scalar deterministic cases compile onto the native path.",
328
+ }),
329
+ entry("lambda:map-basic", "lambda", "=MAP(A1:A3,LAMBDA(x,x*2))", "implemented-wasm-production", {
330
+ notes: "MAP calls whose lambda body rewrites to an ordinary broadcasted array expression now lower before binding and execute on the native spill path.",
331
+ }),
332
+ entry("logical:if-true-branch", "logical", "=IF(A1,A2,A3)", "implemented-wasm-production"),
333
+ entry("logical:if-condition-error", "logical", "=IF(1/0,1,2)", "implemented-wasm-production", {
334
+ notes: "The native branch VM now propagates IF condition errors before either branch executes.",
335
+ }),
336
+ entry("logical:iferror-catches-any-error", "logical", '=IFERROR(1/0,"fallback")', "implemented-wasm-production"),
337
+ entry("logical:ifna-catches-na-only", "logical", '=IFNA(NA(),"missing")', "implemented-wasm-production"),
338
+ entry("logical:and-false-on-empty", "logical", "=AND(TRUE,A1)", "implemented-wasm-production"),
339
+ entry("logical:or-true-branch", "logical", "=OR(A1,TRUE)", "implemented-wasm-production"),
340
+ entry("logical:not-number", "logical", "=NOT(2)", "implemented-wasm-production"),
341
+ entry("information:isblank-empty", "information", "=ISBLANK(A1)", "implemented-wasm-production"),
342
+ entry("information:isnumber-number", "information", "=ISNUMBER(42)", "implemented-wasm-production"),
343
+ entry("information:istext-string", "information", '=ISTEXT("hello")', "implemented-wasm-production"),
344
+ entry("text:len-counts-plain-string-length", "text", '=LEN("hello")', "implemented-wasm-production"),
345
+ entry("text:exact-basic", "text", '=EXACT("Alpha","alpha")', "implemented-wasm-production", {
346
+ notes: "EXACT now routes through the string-aware WASM runtime.",
347
+ }),
348
+ entry("text:left-basic", "text", '=LEFT("alpha",3)', "implemented-wasm-production"),
349
+ entry("text:right-basic", "text", '=RIGHT("alpha",2)', "implemented-wasm-production"),
350
+ entry("text:mid-basic", "text", '=MID("alphabet",2,3)', "implemented-wasm-production"),
351
+ entry("text:trim-basic", "text", '=TRIM(" alpha beta ")', "implemented-wasm-production"),
352
+ entry("text:upper-basic", "text", '=UPPER("Alpha beta")', "implemented-wasm-production"),
353
+ entry("text:lower-basic", "text", '=LOWER("Alpha BETA")', "implemented-wasm-production"),
354
+ entry("text:find-basic", "text", '=FIND("ph","alphabet")', "implemented-wasm-production"),
355
+ entry("text:search-basic", "text", '=SEARCH("PH","alphabet")', "implemented-wasm-production"),
356
+ entry("text:textbefore-basic", "text", '=TEXTBEFORE("alpha-beta","-")', "implemented-wasm-production"),
357
+ entry("text:textafter-basic", "text", '=TEXTAFTER("alpha-beta","-")', "implemented-wasm-production"),
358
+ entry("text:textjoin-basic", "text", '=TEXTJOIN("-",TRUE,A1:A3)', "implemented-wasm-production"),
359
+ entry("text:textsplit-basic", "text", '=TEXTSPLIT(A1,",","|")', "implemented-wasm-production"),
360
+ entry("text:value-basic", "text", '=VALUE("42")', "implemented-wasm-production", {
361
+ notes: "VALUE now coerces scalar text inputs on the AssemblyScript path, including trimmed decimals and exponent forms.",
362
+ }),
363
+ entry("lookup-reference:choose-basic", "lookup-reference", '=CHOOSE(2,"red","blue","green")', "implemented-wasm-production"),
364
+ entry("lookup-reference:xmatch-basic", "lookup-reference", '=XMATCH("pear",A1:A3,0)', "implemented-wasm-production"),
365
+ entry("lookup-reference:hlookup-basic", "lookup-reference", '=HLOOKUP("pear",A1:C2,2,FALSE)', "implemented-wasm-production"),
366
+ entry("lookup-reference:offset-basic", "lookup-reference", "=OFFSET(A1,1,1)", "implemented-wasm-production", {
367
+ notes: "OFFSET now executes on the AssemblyScript path for numeric inputs, including simple in-bounds offset ranges.",
368
+ }),
369
+ entry("dynamic-array:take-basic", "dynamic-array", "=TAKE(A1:A4,2)", "implemented-wasm-production"),
370
+ entry("dynamic-array:drop-basic", "dynamic-array", "=DROP(A1:A4,2)", "implemented-wasm-production"),
371
+ entry("dynamic-array:choosecols-basic", "dynamic-array", "=CHOOSECOLS(A1:C2,1,3)", "implemented-wasm-production"),
372
+ entry("dynamic-array:chooserows-basic", "dynamic-array", "=CHOOSEROWS(A1:B3,1,3)", "implemented-wasm-production"),
373
+ entry("statistical:sumif-basic", "statistical", '=SUMIF(A1:A4,">0",B1:B4)', "implemented-wasm-production"),
374
+ entry("statistical:sumifs-basic", "statistical", '=SUMIFS(C1:C4,A1:A4,">0",B1:B4,"x")', "implemented-wasm-production"),
375
+ entry("statistical:averageifs-basic", "statistical", '=AVERAGEIFS(C1:C4,A1:A4,">0",B1:B4,"x")', "implemented-wasm-production"),
376
+ entry("statistical:countifs-basic", "statistical", '=COUNTIFS(A1:A4,">0",B1:B4,"x")', "implemented-wasm-production"),
377
+ entry("math:sumproduct-basic", "math", "=SUMPRODUCT(A1:A3,B1:B3)", "implemented-wasm-production"),
378
+ entry("math:int-basic", "math", "=INT(-3.1)", "implemented-wasm-production"),
379
+ entry("math:roundup-basic", "math", "=ROUNDUP(12.341,2)", "implemented-wasm-production"),
380
+ entry("math:rounddown-basic", "math", "=ROUNDDOWN(12.349,2)", "implemented-wasm-production"),
381
+ entry("arithmetic:cross-sheet-multiply", "arithmetic", "=Sheet2!B1*3", "implemented-wasm-production", {
382
+ scope: "extended",
383
+ prerequisites: ["core:value-model", "core:reference-model"],
384
+ notes: "Qualified scalar references stay on the native arithmetic path once the target sheet is present.",
385
+ }),
386
+ entry("arithmetic:cross-sheet-empty-cell-zero", "arithmetic", "=Sheet2!B1*3", "implemented-wasm-production", {
387
+ scope: "extended",
388
+ prerequisites: ["core:value-model", "core:reference-model"],
389
+ notes: "Existing blank cells on another sheet coerce through the usual arithmetic empty-cell semantics.",
390
+ }),
391
+ entry("arithmetic:missing-sheet-ref-error", "arithmetic", "=Sheet2!B1*3", "implemented-wasm-production", {
392
+ scope: "extended",
393
+ prerequisites: ["core:value-model", "core:reference-model"],
394
+ notes: "Unresolved qualified cells now stay on the native path via explicit unresolved-ref operands that emit #REF! until rebinding can occur.",
395
+ }),
396
+ entry("date-time:now-volatile", "date-time", "=NOW()", "implemented-wasm-production", {
397
+ prerequisites: ["core:value-model", "core:date-serial-model", "core:volatile-context"],
398
+ notes: "NOW now captures a single recalc-epoch serial on the host and executes on the AssemblyScript path.",
399
+ }),
400
+ entry("date-time:time-basic", "date-time", "=TIME(12,30,0)", "implemented-wasm-production"),
401
+ entry("date-time:hour-basic", "date-time", "=HOUR(A1)", "implemented-wasm-production"),
402
+ entry("date-time:minute-basic", "date-time", "=MINUTE(A1)", "implemented-wasm-production"),
403
+ entry("date-time:second-basic", "date-time", "=SECOND(A1)", "implemented-wasm-production"),
404
+ entry("date-time:datedif-ym", "date-time", '=DATEDIF(DATE(2020,1,15),DATE(2021,3,20),"YM")', "implemented-wasm-production"),
405
+ entry("date-time:days360-basic", "date-time", "=DAYS360(DATE(2024,1,29),DATE(2024,3,31))", "implemented-wasm-production"),
406
+ entry("date-time:isoweeknum-basic", "date-time", "=ISOWEEKNUM(DATE(2024,1,1))", "implemented-wasm-production"),
407
+ entry("date-time:workday-intl-basic", "date-time", "=WORKDAY.INTL(A1,2,7,B1)", "implemented-wasm-production"),
408
+ entry("date-time:timevalue-basic", "date-time", '=TIMEVALUE("1:30 PM")', "implemented-wasm-production"),
409
+ entry("date-time:yearfrac-basic", "date-time", "=YEARFRAC(DATE(2024,1,1),DATE(2024,7,1),3)", "implemented-wasm-production"),
410
+ entry("date-time:fvschedule-basic", "date-time", "=FVSCHEDULE(1000,0.09,0.11,0.1)", "implemented-wasm-production"),
411
+ entry("date-time:effect-basic", "date-time", "=EFFECT(12%,12)", "implemented-wasm-production"),
412
+ entry("date-time:nominal-basic", "date-time", "=NOMINAL(0.12682503013196977,12)", "implemented-wasm-production"),
413
+ entry("date-time:pduration-basic", "date-time", "=PDURATION(10%,100,121)", "implemented-wasm-production"),
414
+ entry("date-time:rri-basic", "date-time", "=RRI(2,100,121)", "implemented-wasm-production"),
415
+ entry("date-time:fv-basic", "date-time", "=FV(10%,2,-100,-1000)", "implemented-wasm-production"),
416
+ entry("date-time:pv-basic", "date-time", "=PV(10%,2,-576.1904761904761)", "implemented-wasm-production"),
417
+ entry("date-time:pmt-basic", "date-time", "=PMT(10%,2,1000)", "implemented-wasm-production"),
418
+ entry("date-time:nper-basic", "date-time", "=NPER(10%,-576.1904761904761,1000)", "implemented-wasm-production"),
419
+ entry("date-time:npv-basic", "date-time", "=NPV(10%,100,200,300)", "implemented-wasm-production"),
420
+ entry("date-time:rate-basic", "date-time", "=RATE(48,-200,8000)", "implemented-wasm-production"),
421
+ entry("date-time:irr-basic", "date-time", "=IRR(A1:A6)", "implemented-wasm-production"),
422
+ entry("date-time:mirr-basic", "date-time", "=MIRR(A1:A6,10%,12%)", "implemented-wasm-production"),
423
+ entry("date-time:xnpv-basic", "date-time", "=XNPV(0.09,A1:A5,B1:B5)", "implemented-wasm-production"),
424
+ entry("date-time:xirr-basic", "date-time", "=XIRR(A1:A5,B1:B5)", "implemented-wasm-production"),
425
+ entry("date-time:ipmt-basic", "date-time", "=IPMT(10%,1,2,1000)", "implemented-wasm-production"),
426
+ entry("date-time:ppmt-basic", "date-time", "=PPMT(10%,1,2,1000)", "implemented-wasm-production"),
427
+ entry("date-time:ispmt-basic", "date-time", "=ISPMT(10%,1,2,1000)", "implemented-wasm-production"),
428
+ entry("date-time:cumipmt-basic", "date-time", "=CUMIPMT(9%/12,30*12,125000,13,24,0)", "implemented-wasm-production"),
429
+ entry("date-time:cumprinc-basic", "date-time", "=CUMPRINC(9%/12,30*12,125000,13,24,0)", "implemented-wasm-production"),
430
+ entry("date-time:db-basic", "date-time", "=DB(10000,1000,5,1)", "implemented-wasm-production"),
431
+ entry("date-time:ddb-basic", "date-time", "=DDB(2400,300,10,2)", "implemented-wasm-production"),
432
+ entry("date-time:vdb-basic", "date-time", "=VDB(2400,300,10,1,3)", "implemented-wasm-production"),
433
+ entry("date-time:sln-basic", "date-time", "=SLN(10000,1000,9)", "implemented-wasm-production"),
434
+ entry("date-time:syd-basic", "date-time", "=SYD(10000,1000,9,1)", "implemented-wasm-production"),
435
+ entry("date-time:disc-basic", "date-time", "=DISC(DATE(2023,1,1),DATE(2023,4,1),97,100,2)", "implemented-wasm-production"),
436
+ entry("date-time:intrate-basic", "date-time", "=INTRATE(DATE(2023,1,1),DATE(2023,4,1),1000,1030,2)", "implemented-wasm-production"),
437
+ entry("date-time:received-basic", "date-time", "=RECEIVED(DATE(2023,1,1),DATE(2023,4,1),1000,0.12,2)", "implemented-wasm-production"),
438
+ entry("date-time:pricedisc-basic", "date-time", "=PRICEDISC(DATE(2008,2,16),DATE(2008,3,1),0.0525,100,2)", "implemented-wasm-production"),
439
+ entry("date-time:yielddisc-basic", "date-time", "=YIELDDISC(DATE(2008,2,16),DATE(2008,3,1),99.795,100,2)", "implemented-wasm-production"),
440
+ entry("date-time:pricemat-basic", "date-time", "=PRICEMAT(DATE(2008,2,15),DATE(2008,4,13),DATE(2007,11,11),0.061,0.061,0)", "implemented-wasm-production"),
441
+ entry("date-time:yieldmat-basic", "date-time", "=YIELDMAT(DATE(2008,3,15),DATE(2008,11,3),DATE(2007,11,8),0.0625,100.0123,0)", "implemented-wasm-production"),
442
+ entry("date-time:oddfprice-basic", "date-time", "=ODDFPRICE(DATE(2008,11,11),DATE(2021,3,1),DATE(2008,10,15),DATE(2009,3,1),0.0785,0.0625,100,2,1)", "implemented-wasm-production"),
443
+ entry("date-time:oddfyield-basic", "date-time", "=ODDFYIELD(DATE(2008,11,11),DATE(2021,3,1),DATE(2008,10,15),DATE(2009,3,1),0.0575,84.5,100,2,0)", "implemented-wasm-production"),
444
+ entry("date-time:oddlprice-basic", "date-time", "=ODDLPRICE(DATE(2008,2,7),DATE(2008,6,15),DATE(2007,10,15),0.0375,0.0405,100,2,0)", "implemented-wasm-production"),
445
+ entry("date-time:oddlyield-basic", "date-time", "=ODDLYIELD(DATE(2008,4,20),DATE(2008,6,15),DATE(2007,12,24),0.0375,99.875,100,2,0)", "implemented-wasm-production"),
446
+ entry("date-time:coupdaybs-basic", "date-time", "=COUPDAYBS(DATE(2007,1,25),DATE(2009,11,15),2,4)", "implemented-wasm-production"),
447
+ entry("date-time:coupdays-basic", "date-time", "=COUPDAYS(DATE(2007,1,25),DATE(2009,11,15),2,4)", "implemented-wasm-production"),
448
+ entry("date-time:coupdaysnc-basic", "date-time", "=COUPDAYSNC(DATE(2007,1,25),DATE(2009,11,15),2,4)", "implemented-wasm-production"),
449
+ entry("date-time:coupncd-basic", "date-time", "=COUPNCD(DATE(2007,1,25),DATE(2009,11,15),2,4)", "implemented-wasm-production"),
450
+ entry("date-time:coupnum-basic", "date-time", "=COUPNUM(DATE(2007,1,25),DATE(2009,11,15),2,4)", "implemented-wasm-production"),
451
+ entry("date-time:couppcd-basic", "date-time", "=COUPPCD(DATE(2007,1,25),DATE(2009,11,15),2,4)", "implemented-wasm-production"),
452
+ entry("date-time:price-basic", "date-time", "=PRICE(DATE(2008,2,15),DATE(2017,11,15),0.0575,0.065,100,2,0)", "implemented-wasm-production"),
453
+ entry("date-time:yield-basic", "date-time", "=YIELD(DATE(2008,2,15),DATE(2016,11,15),0.0575,95.04287,100,2,0)", "implemented-wasm-production"),
454
+ entry("date-time:duration-basic", "date-time", "=DURATION(DATE(2018,7,1),DATE(2048,1,1),0.08,0.09,2,1)", "implemented-wasm-production"),
455
+ entry("date-time:mduration-basic", "date-time", "=MDURATION(DATE(2008,1,1),DATE(2016,1,1),0.08,0.09,2,1)", "implemented-wasm-production"),
456
+ entry("date-time:tbillprice-basic", "date-time", "=TBILLPRICE(DATE(2008,3,31),DATE(2008,6,1),0.09)", "implemented-wasm-production"),
457
+ entry("date-time:tbillyield-basic", "date-time", "=TBILLYIELD(DATE(2008,3,31),DATE(2008,6,1),98.45)", "implemented-wasm-production"),
458
+ entry("date-time:tbilleq-basic", "date-time", "=TBILLEQ(DATE(2008,3,31),DATE(2008,6,1),0.0914)", "implemented-wasm-production"),
459
+ entry("date-time:networkdays-intl-basic", "date-time", "=NETWORKDAYS.INTL(A1,A2,7,B1)", "implemented-wasm-production"),
460
+ entry("date-time:weekday-basic", "date-time", "=WEEKDAY(DATE(2026,3,15))", "implemented-wasm-production"),
461
+ entry("aggregation:cross-sheet-range-sum", "aggregation", "=SUM(Sheet2!A1:A2)", "implemented-wasm-production", {
462
+ scope: "extended",
463
+ prerequisites: ["core:value-model", "core:range-iterators", "core:reference-model"],
464
+ notes: "Resolved qualified ranges now stay on the native aggregation path.",
465
+ }),
466
+ entry("aggregation:cross-sheet-empty-range-zero", "aggregation", "=SUM(Sheet2!A1:A2)", "implemented-wasm-production", {
467
+ scope: "extended",
468
+ prerequisites: ["core:value-model", "core:range-iterators", "core:reference-model"],
469
+ notes: "Existing blank ranges on another sheet aggregate as zero once the referenced sheet exists.",
470
+ }),
471
+ entry("aggregation:missing-sheet-range-ref-error", "aggregation", "=SUM(Sheet2!A1:A2)", "implemented-wasm-production", {
472
+ scope: "extended",
473
+ prerequisites: ["core:value-model", "core:range-iterators", "core:reference-model"],
474
+ notes: "Missing qualified ranges now stay on the native path via explicit unresolved-range operands that emit #REF! until later rebinding.",
475
+ }),
476
+ entry("dynamic-array:sort-basic", "dynamic-array", "=SORT(A1:A4)", "implemented-wasm-production"),
477
+ entry("dynamic-array:sortby-basic", "dynamic-array", "=SORTBY(A1:A3,B1:B3)", "implemented-wasm-production"),
478
+ entry("dynamic-array:tocol-basic", "dynamic-array", "=TOCOL(A1:B2)", "implemented-wasm-production"),
479
+ entry("dynamic-array:torow-basic", "dynamic-array", "=TOROW(A1:B2)", "implemented-wasm-production"),
480
+ entry("dynamic-array:wraprows-basic", "dynamic-array", "=WRAPROWS(A1:A4,2)", "implemented-wasm-production"),
481
+ entry("dynamic-array:wrapcols-basic", "dynamic-array", "=WRAPCOLS(A1:A4,2)", "implemented-wasm-production"),
482
+ entry("names:defined-name-range", "names", "=SUM(MyRange)", "implemented-wasm-production", {
483
+ notes: "Range-valued workbook names now compile through metadata substitution and route onto the native aggregate path once the name resolves.",
484
+ }),
485
+ entry("lambda:byrow-basic", "lambda", "=BYROW(A1:B2,LAMBDA(r,SUM(r)))", "implemented-wasm-production", {
486
+ notes: "BYROW aggregate lambdas in the canonical SUM form now lower onto an internal native row-sum builtin, so the canonical spill case executes on the wasm path.",
487
+ }),
488
+ ];
489
+ export function getCompatibilityEntry(id) {
490
+ return formulaCompatibilityRegistry.find((compatibilityEntry) => compatibilityEntry.id === id);
491
+ }
492
+ export function isCompatibilityStatus(value) {
493
+ return compatibilityStatuses.includes(value);
494
+ }
495
+ export function isWasmCompatibilityStatus(value) {
496
+ return wasmCompatibilityStatuses.includes(value);
497
+ }
498
+ //# sourceMappingURL=compatibility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compatibility.js","sourceRoot":"","sources":["../src/compatibility.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { type FormulaRecord } from "@bilig/protocol";
2
+ import type { FormulaNode } from "./ast.js";
3
+ import { type JsPlanInstruction } from "./js-evaluator.js";
4
+ export interface CompiledFormula extends FormulaRecord {
5
+ ast: FormulaNode;
6
+ optimizedAst: FormulaNode;
7
+ deps: string[];
8
+ symbolicNames: string[];
9
+ symbolicTables: string[];
10
+ symbolicSpills: string[];
11
+ volatile: boolean;
12
+ randCallCount: number;
13
+ producesSpill: boolean;
14
+ jsPlan: JsPlanInstruction[];
15
+ program: Uint32Array;
16
+ constants: Float64Array;
17
+ symbolicRefs: string[];
18
+ symbolicRanges: string[];
19
+ symbolicStrings: string[];
20
+ }
21
+ interface CompileFormulaAstOptions {
22
+ originalAst?: FormulaNode;
23
+ symbolicNames?: string[];
24
+ symbolicTables?: string[];
25
+ symbolicSpills?: string[];
26
+ }
27
+ export declare function compileFormulaAst(source: string, ast: FormulaNode, options?: CompileFormulaAstOptions): CompiledFormula;
28
+ export declare function compileFormula(source: string): CompiledFormula;
29
+ export {};