@bilig/formula 0.1.82 → 0.1.84

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 (167) hide show
  1. package/dist/addressing.d.ts +6 -6
  2. package/dist/addressing.js +16 -16
  3. package/dist/addressing.js.map +1 -1
  4. package/dist/ast.d.ts +18 -18
  5. package/dist/binder-wasm-rules.d.ts +2 -2
  6. package/dist/binder-wasm-rules.js +677 -724
  7. package/dist/binder-wasm-rules.js.map +1 -1
  8. package/dist/binder.d.ts +2 -2
  9. package/dist/binder.js +133 -137
  10. package/dist/binder.js.map +1 -1
  11. package/dist/builtin-capabilities.d.ts +4 -4
  12. package/dist/builtin-capabilities.js +777 -816
  13. package/dist/builtin-capabilities.js.map +1 -1
  14. package/dist/builtins/complex.d.ts +3 -3
  15. package/dist/builtins/complex.js +20 -48
  16. package/dist/builtins/complex.js.map +1 -1
  17. package/dist/builtins/convert.d.ts +1 -1
  18. package/dist/builtins/convert.js +180 -181
  19. package/dist/builtins/convert.js.map +1 -1
  20. package/dist/builtins/datetime.d.ts +1 -1
  21. package/dist/builtins/datetime.js +60 -72
  22. package/dist/builtins/datetime.js.map +1 -1
  23. package/dist/builtins/distribution-builtins.d.ts +2 -2
  24. package/dist/builtins/distribution-builtins.js +62 -112
  25. package/dist/builtins/distribution-builtins.js.map +1 -1
  26. package/dist/builtins/distributions.js +17 -54
  27. package/dist/builtins/distributions.js.map +1 -1
  28. package/dist/builtins/financial-builtins.d.ts +2 -2
  29. package/dist/builtins/financial-builtins.js +9 -42
  30. package/dist/builtins/financial-builtins.js.map +1 -1
  31. package/dist/builtins/financial.js +4 -18
  32. package/dist/builtins/financial.js.map +1 -1
  33. package/dist/builtins/fixed-income-builtins.d.ts +2 -2
  34. package/dist/builtins/fixed-income-builtins.js +18 -60
  35. package/dist/builtins/fixed-income-builtins.js.map +1 -1
  36. package/dist/builtins/fixed-income.js +25 -96
  37. package/dist/builtins/fixed-income.js.map +1 -1
  38. package/dist/builtins/formatting.js +9 -9
  39. package/dist/builtins/formatting.js.map +1 -1
  40. package/dist/builtins/logical.d.ts +1 -1
  41. package/dist/builtins/logical.js +5 -5
  42. package/dist/builtins/logical.js.map +1 -1
  43. package/dist/builtins/lookup-array-shape-builtins.d.ts +3 -3
  44. package/dist/builtins/lookup-array-shape-builtins.js +8 -15
  45. package/dist/builtins/lookup-array-shape-builtins.js.map +1 -1
  46. package/dist/builtins/lookup-criteria-builtins.d.ts +2 -2
  47. package/dist/builtins/lookup-criteria-builtins.js +1 -1
  48. package/dist/builtins/lookup-criteria-builtins.js.map +1 -1
  49. package/dist/builtins/lookup-database-builtins.d.ts +2 -2
  50. package/dist/builtins/lookup-database-builtins.js +20 -24
  51. package/dist/builtins/lookup-database-builtins.js.map +1 -1
  52. package/dist/builtins/lookup-financial-builtins.d.ts +3 -3
  53. package/dist/builtins/lookup-financial-builtins.js +14 -30
  54. package/dist/builtins/lookup-financial-builtins.js.map +1 -1
  55. package/dist/builtins/lookup-hypothesis-builtins.d.ts +2 -2
  56. package/dist/builtins/lookup-hypothesis-builtins.js +23 -58
  57. package/dist/builtins/lookup-hypothesis-builtins.js.map +1 -1
  58. package/dist/builtins/lookup-matrix-builtins.d.ts +3 -3
  59. package/dist/builtins/lookup-matrix-builtins.js +5 -3
  60. package/dist/builtins/lookup-matrix-builtins.js.map +1 -1
  61. package/dist/builtins/lookup-order-statistics-builtins.d.ts +3 -3
  62. package/dist/builtins/lookup-order-statistics-builtins.js +18 -30
  63. package/dist/builtins/lookup-order-statistics-builtins.js.map +1 -1
  64. package/dist/builtins/lookup-reference-builtins.d.ts +2 -2
  65. package/dist/builtins/lookup-reference-builtins.js +10 -26
  66. package/dist/builtins/lookup-reference-builtins.js.map +1 -1
  67. package/dist/builtins/lookup-regression-builtins.d.ts +2 -2
  68. package/dist/builtins/lookup-regression-builtins.js +52 -69
  69. package/dist/builtins/lookup-regression-builtins.js.map +1 -1
  70. package/dist/builtins/lookup-sort-filter-builtins.d.ts +3 -3
  71. package/dist/builtins/lookup-sort-filter-builtins.js +5 -13
  72. package/dist/builtins/lookup-sort-filter-builtins.js.map +1 -1
  73. package/dist/builtins/lookup.d.ts +5 -5
  74. package/dist/builtins/lookup.js +61 -73
  75. package/dist/builtins/lookup.js.map +1 -1
  76. package/dist/builtins/math-builtins.d.ts +2 -2
  77. package/dist/builtins/math-builtins.js +11 -17
  78. package/dist/builtins/math-builtins.js.map +1 -1
  79. package/dist/builtins/numeric.d.ts +2 -2
  80. package/dist/builtins/numeric.js +2 -2
  81. package/dist/builtins/numeric.js.map +1 -1
  82. package/dist/builtins/placeholder.d.ts +1 -1
  83. package/dist/builtins/placeholder.js +505 -505
  84. package/dist/builtins/placeholder.js.map +1 -1
  85. package/dist/builtins/radix.d.ts +2 -2
  86. package/dist/builtins/radix.js +33 -39
  87. package/dist/builtins/radix.js.map +1 -1
  88. package/dist/builtins/statistical-builtins.d.ts +2 -2
  89. package/dist/builtins/statistical-builtins.js +29 -56
  90. package/dist/builtins/statistical-builtins.js.map +1 -1
  91. package/dist/builtins/statistics.d.ts +1 -1
  92. package/dist/builtins/statistics.js +3 -7
  93. package/dist/builtins/statistics.js.map +1 -1
  94. package/dist/builtins/text-core-builtins.d.ts +2 -2
  95. package/dist/builtins/text-core-builtins.js +110 -110
  96. package/dist/builtins/text-core-builtins.js.map +1 -1
  97. package/dist/builtins/text-format-builtins.d.ts +2 -2
  98. package/dist/builtins/text-format-builtins.js +109 -141
  99. package/dist/builtins/text-format-builtins.js.map +1 -1
  100. package/dist/builtins/text-search-builtins.d.ts +2 -2
  101. package/dist/builtins/text-search-builtins.js +37 -44
  102. package/dist/builtins/text-search-builtins.js.map +1 -1
  103. package/dist/builtins/text.d.ts +2 -2
  104. package/dist/builtins/text.js +19 -29
  105. package/dist/builtins/text.js.map +1 -1
  106. package/dist/builtins.d.ts +3 -3
  107. package/dist/builtins.js +55 -75
  108. package/dist/builtins.js.map +1 -1
  109. package/dist/compatibility.js +425 -430
  110. package/dist/compatibility.js.map +1 -1
  111. package/dist/compiler.d.ts +7 -7
  112. package/dist/compiler.js +212 -228
  113. package/dist/compiler.js.map +1 -1
  114. package/dist/external-function-adapter.d.ts +6 -6
  115. package/dist/external-function-adapter.js +3 -3
  116. package/dist/external-function-adapter.js.map +1 -1
  117. package/dist/formula-template-key.js +25 -26
  118. package/dist/formula-template-key.js.map +1 -1
  119. package/dist/generated/formula-inventory.js +3567 -3567
  120. package/dist/generated/formula-inventory.js.map +1 -1
  121. package/dist/group-pivot-evaluator.d.ts +2 -2
  122. package/dist/group-pivot-evaluator.js +27 -32
  123. package/dist/group-pivot-evaluator.js.map +1 -1
  124. package/dist/index.d.ts +20 -20
  125. package/dist/index.js +20 -20
  126. package/dist/index.js.map +1 -1
  127. package/dist/js-evaluator-array-special-calls.d.ts +3 -3
  128. package/dist/js-evaluator-array-special-calls.js +25 -34
  129. package/dist/js-evaluator-array-special-calls.js.map +1 -1
  130. package/dist/js-evaluator-context-special-calls.d.ts +2 -2
  131. package/dist/js-evaluator-context-special-calls.js +23 -27
  132. package/dist/js-evaluator-context-special-calls.js.map +1 -1
  133. package/dist/js-evaluator-reference-context.d.ts +2 -2
  134. package/dist/js-evaluator-reference-context.js +22 -24
  135. package/dist/js-evaluator-reference-context.js.map +1 -1
  136. package/dist/js-evaluator-workbook-special-calls.d.ts +2 -2
  137. package/dist/js-evaluator-workbook-special-calls.js +18 -24
  138. package/dist/js-evaluator-workbook-special-calls.js.map +1 -1
  139. package/dist/js-evaluator.d.ts +40 -40
  140. package/dist/js-evaluator.js +135 -147
  141. package/dist/js-evaluator.js.map +1 -1
  142. package/dist/js-plan-lowering.d.ts +2 -2
  143. package/dist/js-plan-lowering.js +103 -108
  144. package/dist/js-plan-lowering.js.map +1 -1
  145. package/dist/lexer.d.ts +1 -1
  146. package/dist/lexer.js +34 -43
  147. package/dist/lexer.js.map +1 -1
  148. package/dist/optimizer.d.ts +1 -1
  149. package/dist/optimizer.js +99 -108
  150. package/dist/optimizer.js.map +1 -1
  151. package/dist/parser.d.ts +1 -1
  152. package/dist/parser.js +129 -136
  153. package/dist/parser.js.map +1 -1
  154. package/dist/program-arena.js.map +1 -1
  155. package/dist/runtime-inventory.d.ts +2 -2
  156. package/dist/runtime-inventory.js +14 -20
  157. package/dist/runtime-inventory.js.map +1 -1
  158. package/dist/runtime-values.d.ts +4 -4
  159. package/dist/runtime-values.js +2 -2
  160. package/dist/runtime-values.js.map +1 -1
  161. package/dist/special-call-rewrites.d.ts +1 -1
  162. package/dist/special-call-rewrites.js +14 -18
  163. package/dist/special-call-rewrites.js.map +1 -1
  164. package/dist/translation.d.ts +7 -7
  165. package/dist/translation.js +323 -366
  166. package/dist/translation.js.map +1 -1
  167. package/package.json +2 -2
@@ -1,860 +1,821 @@
1
- import { BUILTINS, BuiltinId } from "@bilig/protocol";
1
+ import { BUILTINS, BuiltinId } from '@bilig/protocol';
2
2
  const jsSpecialBuiltinNames = new Set([
3
- "LET",
4
- "LAMBDA",
5
- "MAKEARRAY",
6
- "MAP",
7
- "REDUCE",
8
- "SCAN",
9
- "BYROW",
10
- "BYCOL",
11
- "CELL",
12
- "COLUMN",
13
- "FORMULA",
14
- "FORMULATEXT",
15
- "GROUPBY",
16
- "INDIRECT",
17
- "GETPIVOTDATA",
18
- "MULTIPLE.OPERATIONS",
19
- "PIVOTBY",
20
- "ROW",
21
- "SHEET",
22
- "SHEETS",
3
+ 'LET',
4
+ 'LAMBDA',
5
+ 'MAKEARRAY',
6
+ 'MAP',
7
+ 'REDUCE',
8
+ 'SCAN',
9
+ 'BYROW',
10
+ 'BYCOL',
11
+ 'CELL',
12
+ 'COLUMN',
13
+ 'FORMULA',
14
+ 'FORMULATEXT',
15
+ 'GROUPBY',
16
+ 'INDIRECT',
17
+ 'GETPIVOTDATA',
18
+ 'MULTIPLE.OPERATIONS',
19
+ 'PIVOTBY',
20
+ 'ROW',
21
+ 'SHEET',
22
+ 'SHEETS',
23
23
  ]);
24
24
  const wasmProductionBuiltinNames = new Set([
25
- "SUM",
26
- "AVG",
27
- "MIN",
28
- "MAX",
29
- "COUNT",
30
- "COUNTA",
31
- "COUNTBLANK",
32
- "COUNTIF",
33
- "USE.THE.COUNTIF",
34
- "COUNTIFS",
35
- "GAUSS",
36
- "PHI",
37
- "DAVERAGE",
38
- "DCOUNT",
39
- "DCOUNTA",
40
- "DGET",
41
- "DMAX",
42
- "DMIN",
43
- "DPRODUCT",
44
- "DSTDEV",
45
- "DSTDEVP",
46
- "DSUM",
47
- "DVAR",
48
- "DVARP",
49
- "SUMIF",
50
- "SUMIFS",
51
- "AVERAGEIF",
52
- "AVERAGEIFS",
53
- "SUMPRODUCT",
54
- "MATCH",
55
- "XMATCH",
56
- "XLOOKUP",
57
- "INDEX",
58
- "VLOOKUP",
59
- "HLOOKUP",
60
- "ABS",
61
- "SIN",
62
- "COS",
63
- "TAN",
64
- "ASIN",
65
- "ACOS",
66
- "ATAN",
67
- "ATAN2",
68
- "SINH",
69
- "COSH",
70
- "TANH",
71
- "ASINH",
72
- "ACOSH",
73
- "ATANH",
74
- "ACOT",
75
- "ACOTH",
76
- "COT",
77
- "COTH",
78
- "CSC",
79
- "CSCH",
80
- "SEC",
81
- "SECH",
82
- "DEGREES",
83
- "RADIANS",
84
- "EXP",
85
- "LN",
86
- "LOG",
87
- "LOG10",
88
- "POWER",
89
- "SQRT",
90
- "PI",
91
- "SIGN",
92
- "EVEN",
93
- "ODD",
94
- "FACT",
95
- "FACTDOUBLE",
96
- "DELTA",
97
- "GESTEP",
98
- "GAUSS",
99
- "PHI",
100
- "COMBIN",
101
- "COMBINA",
102
- "GCD",
103
- "LCM",
104
- "PRODUCT",
105
- "QUOTIENT",
106
- "MROUND",
107
- "GEOMEAN",
108
- "HARMEAN",
109
- "SQRTPI",
110
- "PERMUT",
111
- "PERMUTATIONA",
112
- "SERIESSUM",
113
- "SUMSQ",
114
- "MOD",
115
- "IF",
116
- "IFS",
117
- "IFERROR",
118
- "IFNA",
119
- "NA",
120
- "AND",
121
- "OR",
122
- "NOT",
123
- "SWITCH",
124
- "XOR",
125
- "ROUND",
126
- "FLOOR",
127
- "CEILING",
128
- "FLOOR.MATH",
129
- "FLOOR.PRECISE",
130
- "CEILING.MATH",
131
- "CEILING.PRECISE",
132
- "ISO.CEILING",
133
- "TRUNC",
134
- "LEN",
135
- "CONCAT",
136
- "ISBLANK",
137
- "ISNUMBER",
138
- "ISTEXT",
139
- "T",
140
- "N",
141
- "TYPE",
142
- "DATE",
143
- "YEAR",
144
- "MONTH",
145
- "DAY",
146
- "TIME",
147
- "HOUR",
148
- "MINUTE",
149
- "SECOND",
150
- "WEEKDAY",
151
- "ISOWEEKNUM",
152
- "TODAY",
153
- "NOW",
154
- "RAND",
155
- "EDATE",
156
- "EOMONTH",
157
- "DATEDIF",
158
- "DAYS",
159
- "DAYS360",
160
- "YEARFRAC",
161
- "TIMEVALUE",
162
- "WEEKNUM",
163
- "WORKDAY",
164
- "NETWORKDAYS",
165
- "WORKDAY.INTL",
166
- "NETWORKDAYS.INTL",
167
- "REPLACE",
168
- "SUBSTITUTE",
169
- "REPT",
170
- "EXACT",
171
- "INT",
172
- "ROUNDUP",
173
- "ROUNDDOWN",
174
- "LEFT",
175
- "RIGHT",
176
- "MID",
177
- "LEFTB",
178
- "RIGHTB",
179
- "MIDB",
180
- "TRIM",
181
- "UPPER",
182
- "LOWER",
183
- "FIND",
184
- "SEARCH",
185
- "FINDB",
186
- "LENB",
187
- "SEARCHB",
188
- "REPLACEB",
189
- "ADDRESS",
190
- "DOLLAR",
191
- "DOLLARDE",
192
- "DOLLARFR",
193
- "BASE",
194
- "DECIMAL",
195
- "BIN2DEC",
196
- "BIN2HEX",
197
- "BIN2OCT",
198
- "DEC2BIN",
199
- "DEC2HEX",
200
- "DEC2OCT",
201
- "HEX2BIN",
202
- "HEX2DEC",
203
- "HEX2OCT",
204
- "OCT2BIN",
205
- "OCT2DEC",
206
- "OCT2HEX",
207
- "BITAND",
208
- "BITOR",
209
- "BITXOR",
210
- "BITLSHIFT",
211
- "BITRSHIFT",
212
- "CONVERT",
213
- "EUROCONVERT",
214
- "BESSELI",
215
- "BESSELJ",
216
- "BESSELK",
217
- "BESSELY",
218
- "VALUE",
219
- "CHAR",
220
- "CODE",
221
- "UNICODE",
222
- "UNICHAR",
223
- "CLEAN",
224
- "ASC",
225
- "JIS",
226
- "DBCS",
227
- "BAHTTEXT",
228
- "PHONETIC",
229
- "CHOOSE",
230
- "TEXTBEFORE",
231
- "TEXTAFTER",
232
- "TEXTJOIN",
233
- "TEXTSPLIT",
234
- "CORREL",
235
- "COVAR",
236
- "PEARSON",
237
- "COVARIANCE.P",
238
- "COVARIANCE.S",
239
- "CONVERT",
240
- "EUROCONVERT",
241
- "FORECAST",
242
- "FORECAST.LINEAR",
243
- "GROWTH",
244
- "INTERCEPT",
245
- "LINEST",
246
- "LOGEST",
247
- "MEDIAN",
248
- "MODE",
249
- "MODE.SNGL",
250
- "MODE.MULT",
251
- "FREQUENCY",
252
- "STANDARDIZE",
253
- "STDEV",
254
- "STDEV.P",
255
- "STDEV.S",
256
- "STDEVA",
257
- "STDEVP",
258
- "STDEVPA",
259
- "VAR",
260
- "VAR.P",
261
- "VAR.S",
262
- "VARA",
263
- "VARP",
264
- "VARPA",
265
- "SKEW",
266
- "SKEW.P",
267
- "KURT",
268
- "NORMDIST",
269
- "NORM.DIST",
270
- "NORMINV",
271
- "NORM.INV",
272
- "NORMSDIST",
273
- "NORM.S.DIST",
274
- "NORMSINV",
275
- "NORM.S.INV",
276
- "LOGINV",
277
- "LOGNORMDIST",
278
- "LOGNORM.DIST",
279
- "LOGNORM.INV",
280
- "SMALL",
281
- "LARGE",
282
- "PERCENTILE",
283
- "PERCENTILE.INC",
284
- "PERCENTILE.EXC",
285
- "PERCENTRANK",
286
- "PERCENTRANK.INC",
287
- "PERCENTRANK.EXC",
288
- "PROB",
289
- "QUARTILE",
290
- "QUARTILE.INC",
291
- "QUARTILE.EXC",
292
- "RANK",
293
- "RANK.EQ",
294
- "RANK.AVG",
295
- "RSQ",
296
- "SLOPE",
297
- "STEYX",
298
- "TREND",
299
- "TRIMMEAN",
300
- "NUMBERVALUE",
301
- "TEXT",
302
- "VALUETOTEXT",
303
- "SEQUENCE",
304
- "FILTER",
305
- "UNIQUE",
306
- "EXPAND",
307
- "OFFSET",
308
- "TAKE",
309
- "DROP",
310
- "CHOOSECOLS",
311
- "CHOOSEROWS",
312
- "SORT",
313
- "SORTBY",
314
- "TOCOL",
315
- "TOROW",
316
- "WRAPROWS",
317
- "WRAPCOLS",
318
- "TRIMRANGE",
319
- "LOOKUP",
320
- "AREAS",
321
- "ARRAYTOTEXT",
322
- "COLUMNS",
323
- "ROWS",
324
- "TRANSPOSE",
325
- "HSTACK",
326
- "VSTACK",
327
- "MINIFS",
328
- "MAXIFS",
329
- "ERF",
330
- "ERF.PRECISE",
331
- "ERFC",
332
- "ERFC.PRECISE",
333
- "FISHER",
334
- "FISHERINV",
335
- "GAMMALN",
336
- "GAMMALN.PRECISE",
337
- "GAMMA",
338
- "GAMMA.INV",
339
- "GAMMAINV",
340
- "CONFIDENCE.NORM",
341
- "CONFIDENCE",
342
- "CONFIDENCE.T",
343
- "EXPONDIST",
344
- "EXPON.DIST",
345
- "POISSON",
346
- "POISSON.DIST",
347
- "WEIBULL",
348
- "WEIBULL.DIST",
349
- "GAMMADIST",
350
- "GAMMA.DIST",
351
- "CHIDIST",
352
- "LEGACY.CHIDIST",
353
- "CHIINV",
354
- "CHISQ.DIST.RT",
355
- "CHISQ.DIST",
356
- "CHISQ.INV.RT",
357
- "CHISQ.INV",
358
- "CHISQDIST",
359
- "CHISQINV",
360
- "LEGACY.CHIINV",
361
- "CHISQ.TEST",
362
- "CHITEST",
363
- "LEGACY.CHITEST",
364
- "F.TEST",
365
- "FTEST",
366
- "Z.TEST",
367
- "ZTEST",
368
- "BETA.DIST",
369
- "BETA.INV",
370
- "BETADIST",
371
- "BETAINV",
372
- "F.DIST",
373
- "F.DIST.RT",
374
- "F.INV",
375
- "F.INV.RT",
376
- "FDIST",
377
- "FINV",
378
- "LEGACY.FDIST",
379
- "LEGACY.FINV",
380
- "T.DIST",
381
- "T.DIST.RT",
382
- "T.DIST.2T",
383
- "T.INV",
384
- "T.INV.2T",
385
- "TDIST",
386
- "TINV",
387
- "T.TEST",
388
- "TTEST",
389
- "BINOMDIST",
390
- "BINOM.DIST",
391
- "BINOM.DIST.RANGE",
392
- "CRITBINOM",
393
- "BINOM.INV",
394
- "HYPGEOMDIST",
395
- "HYPGEOM.DIST",
396
- "NEGBINOMDIST",
397
- "NEGBINOM.DIST",
398
- "FVSCHEDULE",
399
- "EFFECT",
400
- "NOMINAL",
401
- "PDURATION",
402
- "RRI",
403
- "FV",
404
- "PV",
405
- "PMT",
406
- "NPER",
407
- "NPV",
408
- "RATE",
409
- "IPMT",
410
- "PPMT",
411
- "ISPMT",
412
- "CUMIPMT",
413
- "CUMPRINC",
414
- "IRR",
415
- "MIRR",
416
- "XNPV",
417
- "XIRR",
418
- "DB",
419
- "DDB",
420
- "VDB",
421
- "SLN",
422
- "SYD",
423
- "DISC",
424
- "INTRATE",
425
- "RECEIVED",
426
- "COUPDAYBS",
427
- "COUPDAYS",
428
- "COUPDAYSNC",
429
- "COUPNCD",
430
- "COUPNUM",
431
- "COUPPCD",
432
- "PRICEDISC",
433
- "YIELDDISC",
434
- "PRICEMAT",
435
- "YIELDMAT",
436
- "ODDFPRICE",
437
- "ODDFYIELD",
438
- "ODDLPRICE",
439
- "ODDLYIELD",
440
- "PRICE",
441
- "YIELD",
442
- "DURATION",
443
- "MDURATION",
444
- "TBILLPRICE",
445
- "TBILLYIELD",
446
- "TBILLEQ",
447
- ]);
448
- const aggregationBuiltinNames = new Set([
449
- "SUM",
450
- "AVG",
451
- "MIN",
452
- "MAX",
453
- "COUNT",
454
- "COUNTA",
455
- "COUNTBLANK",
456
- ]);
457
- const logicalBuiltinNames = new Set([
458
- "IF",
459
- "IFS",
460
- "AND",
461
- "OR",
462
- "NOT",
463
- "SWITCH",
464
- "XOR",
465
- "IFERROR",
466
- "IFNA",
467
- "NA",
25
+ 'SUM',
26
+ 'AVG',
27
+ 'MIN',
28
+ 'MAX',
29
+ 'COUNT',
30
+ 'COUNTA',
31
+ 'COUNTBLANK',
32
+ 'COUNTIF',
33
+ 'USE.THE.COUNTIF',
34
+ 'COUNTIFS',
35
+ 'GAUSS',
36
+ 'PHI',
37
+ 'DAVERAGE',
38
+ 'DCOUNT',
39
+ 'DCOUNTA',
40
+ 'DGET',
41
+ 'DMAX',
42
+ 'DMIN',
43
+ 'DPRODUCT',
44
+ 'DSTDEV',
45
+ 'DSTDEVP',
46
+ 'DSUM',
47
+ 'DVAR',
48
+ 'DVARP',
49
+ 'SUMIF',
50
+ 'SUMIFS',
51
+ 'AVERAGEIF',
52
+ 'AVERAGEIFS',
53
+ 'SUMPRODUCT',
54
+ 'MATCH',
55
+ 'XMATCH',
56
+ 'XLOOKUP',
57
+ 'INDEX',
58
+ 'VLOOKUP',
59
+ 'HLOOKUP',
60
+ 'ABS',
61
+ 'SIN',
62
+ 'COS',
63
+ 'TAN',
64
+ 'ASIN',
65
+ 'ACOS',
66
+ 'ATAN',
67
+ 'ATAN2',
68
+ 'SINH',
69
+ 'COSH',
70
+ 'TANH',
71
+ 'ASINH',
72
+ 'ACOSH',
73
+ 'ATANH',
74
+ 'ACOT',
75
+ 'ACOTH',
76
+ 'COT',
77
+ 'COTH',
78
+ 'CSC',
79
+ 'CSCH',
80
+ 'SEC',
81
+ 'SECH',
82
+ 'DEGREES',
83
+ 'RADIANS',
84
+ 'EXP',
85
+ 'LN',
86
+ 'LOG',
87
+ 'LOG10',
88
+ 'POWER',
89
+ 'SQRT',
90
+ 'PI',
91
+ 'SIGN',
92
+ 'EVEN',
93
+ 'ODD',
94
+ 'FACT',
95
+ 'FACTDOUBLE',
96
+ 'DELTA',
97
+ 'GESTEP',
98
+ 'GAUSS',
99
+ 'PHI',
100
+ 'COMBIN',
101
+ 'COMBINA',
102
+ 'GCD',
103
+ 'LCM',
104
+ 'PRODUCT',
105
+ 'QUOTIENT',
106
+ 'MROUND',
107
+ 'GEOMEAN',
108
+ 'HARMEAN',
109
+ 'SQRTPI',
110
+ 'PERMUT',
111
+ 'PERMUTATIONA',
112
+ 'SERIESSUM',
113
+ 'SUMSQ',
114
+ 'MOD',
115
+ 'IF',
116
+ 'IFS',
117
+ 'IFERROR',
118
+ 'IFNA',
119
+ 'NA',
120
+ 'AND',
121
+ 'OR',
122
+ 'NOT',
123
+ 'SWITCH',
124
+ 'XOR',
125
+ 'ROUND',
126
+ 'FLOOR',
127
+ 'CEILING',
128
+ 'FLOOR.MATH',
129
+ 'FLOOR.PRECISE',
130
+ 'CEILING.MATH',
131
+ 'CEILING.PRECISE',
132
+ 'ISO.CEILING',
133
+ 'TRUNC',
134
+ 'LEN',
135
+ 'CONCAT',
136
+ 'ISBLANK',
137
+ 'ISNUMBER',
138
+ 'ISTEXT',
139
+ 'T',
140
+ 'N',
141
+ 'TYPE',
142
+ 'DATE',
143
+ 'YEAR',
144
+ 'MONTH',
145
+ 'DAY',
146
+ 'TIME',
147
+ 'HOUR',
148
+ 'MINUTE',
149
+ 'SECOND',
150
+ 'WEEKDAY',
151
+ 'ISOWEEKNUM',
152
+ 'TODAY',
153
+ 'NOW',
154
+ 'RAND',
155
+ 'EDATE',
156
+ 'EOMONTH',
157
+ 'DATEDIF',
158
+ 'DAYS',
159
+ 'DAYS360',
160
+ 'YEARFRAC',
161
+ 'TIMEVALUE',
162
+ 'WEEKNUM',
163
+ 'WORKDAY',
164
+ 'NETWORKDAYS',
165
+ 'WORKDAY.INTL',
166
+ 'NETWORKDAYS.INTL',
167
+ 'REPLACE',
168
+ 'SUBSTITUTE',
169
+ 'REPT',
170
+ 'EXACT',
171
+ 'INT',
172
+ 'ROUNDUP',
173
+ 'ROUNDDOWN',
174
+ 'LEFT',
175
+ 'RIGHT',
176
+ 'MID',
177
+ 'LEFTB',
178
+ 'RIGHTB',
179
+ 'MIDB',
180
+ 'TRIM',
181
+ 'UPPER',
182
+ 'LOWER',
183
+ 'FIND',
184
+ 'SEARCH',
185
+ 'FINDB',
186
+ 'LENB',
187
+ 'SEARCHB',
188
+ 'REPLACEB',
189
+ 'ADDRESS',
190
+ 'DOLLAR',
191
+ 'DOLLARDE',
192
+ 'DOLLARFR',
193
+ 'BASE',
194
+ 'DECIMAL',
195
+ 'BIN2DEC',
196
+ 'BIN2HEX',
197
+ 'BIN2OCT',
198
+ 'DEC2BIN',
199
+ 'DEC2HEX',
200
+ 'DEC2OCT',
201
+ 'HEX2BIN',
202
+ 'HEX2DEC',
203
+ 'HEX2OCT',
204
+ 'OCT2BIN',
205
+ 'OCT2DEC',
206
+ 'OCT2HEX',
207
+ 'BITAND',
208
+ 'BITOR',
209
+ 'BITXOR',
210
+ 'BITLSHIFT',
211
+ 'BITRSHIFT',
212
+ 'CONVERT',
213
+ 'EUROCONVERT',
214
+ 'BESSELI',
215
+ 'BESSELJ',
216
+ 'BESSELK',
217
+ 'BESSELY',
218
+ 'VALUE',
219
+ 'CHAR',
220
+ 'CODE',
221
+ 'UNICODE',
222
+ 'UNICHAR',
223
+ 'CLEAN',
224
+ 'ASC',
225
+ 'JIS',
226
+ 'DBCS',
227
+ 'BAHTTEXT',
228
+ 'PHONETIC',
229
+ 'CHOOSE',
230
+ 'TEXTBEFORE',
231
+ 'TEXTAFTER',
232
+ 'TEXTJOIN',
233
+ 'TEXTSPLIT',
234
+ 'CORREL',
235
+ 'COVAR',
236
+ 'PEARSON',
237
+ 'COVARIANCE.P',
238
+ 'COVARIANCE.S',
239
+ 'CONVERT',
240
+ 'EUROCONVERT',
241
+ 'FORECAST',
242
+ 'FORECAST.LINEAR',
243
+ 'GROWTH',
244
+ 'INTERCEPT',
245
+ 'LINEST',
246
+ 'LOGEST',
247
+ 'MEDIAN',
248
+ 'MODE',
249
+ 'MODE.SNGL',
250
+ 'MODE.MULT',
251
+ 'FREQUENCY',
252
+ 'STANDARDIZE',
253
+ 'STDEV',
254
+ 'STDEV.P',
255
+ 'STDEV.S',
256
+ 'STDEVA',
257
+ 'STDEVP',
258
+ 'STDEVPA',
259
+ 'VAR',
260
+ 'VAR.P',
261
+ 'VAR.S',
262
+ 'VARA',
263
+ 'VARP',
264
+ 'VARPA',
265
+ 'SKEW',
266
+ 'SKEW.P',
267
+ 'KURT',
268
+ 'NORMDIST',
269
+ 'NORM.DIST',
270
+ 'NORMINV',
271
+ 'NORM.INV',
272
+ 'NORMSDIST',
273
+ 'NORM.S.DIST',
274
+ 'NORMSINV',
275
+ 'NORM.S.INV',
276
+ 'LOGINV',
277
+ 'LOGNORMDIST',
278
+ 'LOGNORM.DIST',
279
+ 'LOGNORM.INV',
280
+ 'SMALL',
281
+ 'LARGE',
282
+ 'PERCENTILE',
283
+ 'PERCENTILE.INC',
284
+ 'PERCENTILE.EXC',
285
+ 'PERCENTRANK',
286
+ 'PERCENTRANK.INC',
287
+ 'PERCENTRANK.EXC',
288
+ 'PROB',
289
+ 'QUARTILE',
290
+ 'QUARTILE.INC',
291
+ 'QUARTILE.EXC',
292
+ 'RANK',
293
+ 'RANK.EQ',
294
+ 'RANK.AVG',
295
+ 'RSQ',
296
+ 'SLOPE',
297
+ 'STEYX',
298
+ 'TREND',
299
+ 'TRIMMEAN',
300
+ 'NUMBERVALUE',
301
+ 'TEXT',
302
+ 'VALUETOTEXT',
303
+ 'SEQUENCE',
304
+ 'FILTER',
305
+ 'UNIQUE',
306
+ 'EXPAND',
307
+ 'OFFSET',
308
+ 'TAKE',
309
+ 'DROP',
310
+ 'CHOOSECOLS',
311
+ 'CHOOSEROWS',
312
+ 'SORT',
313
+ 'SORTBY',
314
+ 'TOCOL',
315
+ 'TOROW',
316
+ 'WRAPROWS',
317
+ 'WRAPCOLS',
318
+ 'TRIMRANGE',
319
+ 'LOOKUP',
320
+ 'AREAS',
321
+ 'ARRAYTOTEXT',
322
+ 'COLUMNS',
323
+ 'ROWS',
324
+ 'TRANSPOSE',
325
+ 'HSTACK',
326
+ 'VSTACK',
327
+ 'MINIFS',
328
+ 'MAXIFS',
329
+ 'ERF',
330
+ 'ERF.PRECISE',
331
+ 'ERFC',
332
+ 'ERFC.PRECISE',
333
+ 'FISHER',
334
+ 'FISHERINV',
335
+ 'GAMMALN',
336
+ 'GAMMALN.PRECISE',
337
+ 'GAMMA',
338
+ 'GAMMA.INV',
339
+ 'GAMMAINV',
340
+ 'CONFIDENCE.NORM',
341
+ 'CONFIDENCE',
342
+ 'CONFIDENCE.T',
343
+ 'EXPONDIST',
344
+ 'EXPON.DIST',
345
+ 'POISSON',
346
+ 'POISSON.DIST',
347
+ 'WEIBULL',
348
+ 'WEIBULL.DIST',
349
+ 'GAMMADIST',
350
+ 'GAMMA.DIST',
351
+ 'CHIDIST',
352
+ 'LEGACY.CHIDIST',
353
+ 'CHIINV',
354
+ 'CHISQ.DIST.RT',
355
+ 'CHISQ.DIST',
356
+ 'CHISQ.INV.RT',
357
+ 'CHISQ.INV',
358
+ 'CHISQDIST',
359
+ 'CHISQINV',
360
+ 'LEGACY.CHIINV',
361
+ 'CHISQ.TEST',
362
+ 'CHITEST',
363
+ 'LEGACY.CHITEST',
364
+ 'F.TEST',
365
+ 'FTEST',
366
+ 'Z.TEST',
367
+ 'ZTEST',
368
+ 'BETA.DIST',
369
+ 'BETA.INV',
370
+ 'BETADIST',
371
+ 'BETAINV',
372
+ 'F.DIST',
373
+ 'F.DIST.RT',
374
+ 'F.INV',
375
+ 'F.INV.RT',
376
+ 'FDIST',
377
+ 'FINV',
378
+ 'LEGACY.FDIST',
379
+ 'LEGACY.FINV',
380
+ 'T.DIST',
381
+ 'T.DIST.RT',
382
+ 'T.DIST.2T',
383
+ 'T.INV',
384
+ 'T.INV.2T',
385
+ 'TDIST',
386
+ 'TINV',
387
+ 'T.TEST',
388
+ 'TTEST',
389
+ 'BINOMDIST',
390
+ 'BINOM.DIST',
391
+ 'BINOM.DIST.RANGE',
392
+ 'CRITBINOM',
393
+ 'BINOM.INV',
394
+ 'HYPGEOMDIST',
395
+ 'HYPGEOM.DIST',
396
+ 'NEGBINOMDIST',
397
+ 'NEGBINOM.DIST',
398
+ 'FVSCHEDULE',
399
+ 'EFFECT',
400
+ 'NOMINAL',
401
+ 'PDURATION',
402
+ 'RRI',
403
+ 'FV',
404
+ 'PV',
405
+ 'PMT',
406
+ 'NPER',
407
+ 'NPV',
408
+ 'RATE',
409
+ 'IPMT',
410
+ 'PPMT',
411
+ 'ISPMT',
412
+ 'CUMIPMT',
413
+ 'CUMPRINC',
414
+ 'IRR',
415
+ 'MIRR',
416
+ 'XNPV',
417
+ 'XIRR',
418
+ 'DB',
419
+ 'DDB',
420
+ 'VDB',
421
+ 'SLN',
422
+ 'SYD',
423
+ 'DISC',
424
+ 'INTRATE',
425
+ 'RECEIVED',
426
+ 'COUPDAYBS',
427
+ 'COUPDAYS',
428
+ 'COUPDAYSNC',
429
+ 'COUPNCD',
430
+ 'COUPNUM',
431
+ 'COUPPCD',
432
+ 'PRICEDISC',
433
+ 'YIELDDISC',
434
+ 'PRICEMAT',
435
+ 'YIELDMAT',
436
+ 'ODDFPRICE',
437
+ 'ODDFYIELD',
438
+ 'ODDLPRICE',
439
+ 'ODDLYIELD',
440
+ 'PRICE',
441
+ 'YIELD',
442
+ 'DURATION',
443
+ 'MDURATION',
444
+ 'TBILLPRICE',
445
+ 'TBILLYIELD',
446
+ 'TBILLEQ',
468
447
  ]);
448
+ const aggregationBuiltinNames = new Set(['SUM', 'AVG', 'MIN', 'MAX', 'COUNT', 'COUNTA', 'COUNTBLANK']);
449
+ const logicalBuiltinNames = new Set(['IF', 'IFS', 'AND', 'OR', 'NOT', 'SWITCH', 'XOR', 'IFERROR', 'IFNA', 'NA']);
469
450
  const informationBuiltinNames = new Set([
470
- "CELL",
471
- "FORMULA",
472
- "FORMULATEXT",
473
- "ISBLANK",
474
- "ISNUMBER",
475
- "ISTEXT",
476
- "N",
477
- "SHEET",
478
- "SHEETS",
479
- "T",
480
- "TYPE",
451
+ 'CELL',
452
+ 'FORMULA',
453
+ 'FORMULATEXT',
454
+ 'ISBLANK',
455
+ 'ISNUMBER',
456
+ 'ISTEXT',
457
+ 'N',
458
+ 'SHEET',
459
+ 'SHEETS',
460
+ 'T',
461
+ 'TYPE',
481
462
  ]);
482
463
  const textBuiltinNames = new Set([
483
- "LEN",
484
- "CONCAT",
485
- "REPLACE",
486
- "SUBSTITUTE",
487
- "REPT",
488
- "EXACT",
489
- "TEXTBEFORE",
490
- "TEXTAFTER",
491
- "TEXTJOIN",
492
- "LEFT",
493
- "RIGHT",
494
- "MID",
495
- "LEFTB",
496
- "RIGHTB",
497
- "MIDB",
498
- "TRIM",
499
- "UPPER",
500
- "LOWER",
501
- "FIND",
502
- "SEARCH",
503
- "FINDB",
504
- "LENB",
505
- "SEARCHB",
506
- "REPLACEB",
507
- "VALUE",
508
- "CHAR",
509
- "CODE",
510
- "UNICODE",
511
- "UNICHAR",
512
- "CLEAN",
513
- "ASC",
514
- "JIS",
515
- "DBCS",
516
- "BAHTTEXT",
517
- "PHONETIC",
518
- "NUMBERVALUE",
519
- "TEXT",
520
- "VALUETOTEXT",
521
- "DOLLAR",
522
- "ARRAYTOTEXT",
464
+ 'LEN',
465
+ 'CONCAT',
466
+ 'REPLACE',
467
+ 'SUBSTITUTE',
468
+ 'REPT',
469
+ 'EXACT',
470
+ 'TEXTBEFORE',
471
+ 'TEXTAFTER',
472
+ 'TEXTJOIN',
473
+ 'LEFT',
474
+ 'RIGHT',
475
+ 'MID',
476
+ 'LEFTB',
477
+ 'RIGHTB',
478
+ 'MIDB',
479
+ 'TRIM',
480
+ 'UPPER',
481
+ 'LOWER',
482
+ 'FIND',
483
+ 'SEARCH',
484
+ 'FINDB',
485
+ 'LENB',
486
+ 'SEARCHB',
487
+ 'REPLACEB',
488
+ 'VALUE',
489
+ 'CHAR',
490
+ 'CODE',
491
+ 'UNICODE',
492
+ 'UNICHAR',
493
+ 'CLEAN',
494
+ 'ASC',
495
+ 'JIS',
496
+ 'DBCS',
497
+ 'BAHTTEXT',
498
+ 'PHONETIC',
499
+ 'NUMBERVALUE',
500
+ 'TEXT',
501
+ 'VALUETOTEXT',
502
+ 'DOLLAR',
503
+ 'ARRAYTOTEXT',
523
504
  ]);
524
505
  const dateTimeBuiltinNames = new Set([
525
- "DATE",
526
- "YEAR",
527
- "MONTH",
528
- "DAY",
529
- "TIME",
530
- "HOUR",
531
- "MINUTE",
532
- "SECOND",
533
- "WEEKDAY",
534
- "ISOWEEKNUM",
535
- "TODAY",
536
- "NOW",
537
- "RAND",
538
- "EDATE",
539
- "EOMONTH",
540
- "DATEDIF",
541
- "DAYS",
542
- "DAYS360",
543
- "TIMEVALUE",
544
- "WEEKNUM",
545
- "WORKDAY",
546
- "NETWORKDAYS",
547
- "WORKDAY.INTL",
548
- "NETWORKDAYS.INTL",
549
- "YEARFRAC",
550
- "EFFECT",
551
- "NOMINAL",
552
- "PDURATION",
553
- "RRI",
554
- "PV",
555
- "PMT",
556
- "NPER",
557
- "NPV",
558
- "RATE",
559
- "IPMT",
560
- "PPMT",
561
- "ISPMT",
562
- "CUMIPMT",
563
- "CUMPRINC",
564
- "IRR",
565
- "MIRR",
566
- "XNPV",
567
- "XIRR",
568
- "DISC",
569
- "INTRATE",
570
- "RECEIVED",
571
- "COUPDAYBS",
572
- "COUPDAYS",
573
- "COUPDAYSNC",
574
- "COUPNCD",
575
- "COUPNUM",
576
- "COUPPCD",
577
- "PRICEDISC",
578
- "YIELDDISC",
579
- "PRICEMAT",
580
- "YIELDMAT",
581
- "ODDFPRICE",
582
- "ODDFYIELD",
583
- "ODDLPRICE",
584
- "ODDLYIELD",
585
- "PRICE",
586
- "YIELD",
587
- "DURATION",
588
- "MDURATION",
589
- "TBILLPRICE",
590
- "TBILLYIELD",
591
- "TBILLEQ",
506
+ 'DATE',
507
+ 'YEAR',
508
+ 'MONTH',
509
+ 'DAY',
510
+ 'TIME',
511
+ 'HOUR',
512
+ 'MINUTE',
513
+ 'SECOND',
514
+ 'WEEKDAY',
515
+ 'ISOWEEKNUM',
516
+ 'TODAY',
517
+ 'NOW',
518
+ 'RAND',
519
+ 'EDATE',
520
+ 'EOMONTH',
521
+ 'DATEDIF',
522
+ 'DAYS',
523
+ 'DAYS360',
524
+ 'TIMEVALUE',
525
+ 'WEEKNUM',
526
+ 'WORKDAY',
527
+ 'NETWORKDAYS',
528
+ 'WORKDAY.INTL',
529
+ 'NETWORKDAYS.INTL',
530
+ 'YEARFRAC',
531
+ 'EFFECT',
532
+ 'NOMINAL',
533
+ 'PDURATION',
534
+ 'RRI',
535
+ 'PV',
536
+ 'PMT',
537
+ 'NPER',
538
+ 'NPV',
539
+ 'RATE',
540
+ 'IPMT',
541
+ 'PPMT',
542
+ 'ISPMT',
543
+ 'CUMIPMT',
544
+ 'CUMPRINC',
545
+ 'IRR',
546
+ 'MIRR',
547
+ 'XNPV',
548
+ 'XIRR',
549
+ 'DISC',
550
+ 'INTRATE',
551
+ 'RECEIVED',
552
+ 'COUPDAYBS',
553
+ 'COUPDAYS',
554
+ 'COUPDAYSNC',
555
+ 'COUPNCD',
556
+ 'COUPNUM',
557
+ 'COUPPCD',
558
+ 'PRICEDISC',
559
+ 'YIELDDISC',
560
+ 'PRICEMAT',
561
+ 'YIELDMAT',
562
+ 'ODDFPRICE',
563
+ 'ODDFYIELD',
564
+ 'ODDLPRICE',
565
+ 'ODDLYIELD',
566
+ 'PRICE',
567
+ 'YIELD',
568
+ 'DURATION',
569
+ 'MDURATION',
570
+ 'TBILLPRICE',
571
+ 'TBILLYIELD',
572
+ 'TBILLEQ',
592
573
  ]);
593
574
  const lookupBuiltinNames = new Set([
594
- "CHOOSE",
595
- "ADDRESS",
596
- "COLUMN",
597
- "FORECAST",
598
- "MATCH",
599
- "XMATCH",
600
- "XLOOKUP",
601
- "INDEX",
602
- "VLOOKUP",
603
- "HLOOKUP",
604
- "LOOKUP",
605
- "GETPIVOTDATA",
606
- "MULTIPLE.OPERATIONS",
607
- "OFFSET",
608
- "INDIRECT",
609
- "ROW",
575
+ 'CHOOSE',
576
+ 'ADDRESS',
577
+ 'COLUMN',
578
+ 'FORECAST',
579
+ 'MATCH',
580
+ 'XMATCH',
581
+ 'XLOOKUP',
582
+ 'INDEX',
583
+ 'VLOOKUP',
584
+ 'HLOOKUP',
585
+ 'LOOKUP',
586
+ 'GETPIVOTDATA',
587
+ 'MULTIPLE.OPERATIONS',
588
+ 'OFFSET',
589
+ 'INDIRECT',
590
+ 'ROW',
610
591
  ]);
611
592
  const statisticalBuiltinNames = new Set([
612
- "COUNTIF",
613
- "COUNTIFS",
614
- "DAVERAGE",
615
- "DCOUNT",
616
- "DCOUNTA",
617
- "DGET",
618
- "DMAX",
619
- "DMIN",
620
- "DPRODUCT",
621
- "DSTDEV",
622
- "DSTDEVP",
623
- "DSUM",
624
- "DVAR",
625
- "DVARP",
626
- "SUMIF",
627
- "SUMIFS",
628
- "AVERAGEIF",
629
- "AVERAGEIFS",
630
- "SUMPRODUCT",
631
- "MEDIAN",
632
- "MODE.MULT",
633
- "FREQUENCY",
634
- "SMALL",
635
- "LARGE",
636
- "PERCENTILE",
637
- "PERCENTILE.INC",
638
- "PERCENTILE.EXC",
639
- "PERCENTRANK",
640
- "PERCENTRANK.INC",
641
- "PERCENTRANK.EXC",
642
- "PROB",
643
- "QUARTILE",
644
- "QUARTILE.INC",
645
- "QUARTILE.EXC",
646
- "MINIFS",
647
- "MAXIFS",
648
- "MODE",
649
- "MODE.SNGL",
650
- "STDEV",
651
- "STDEV.P",
652
- "STDEV.S",
653
- "STDEVA",
654
- "STDEVP",
655
- "STDEVPA",
656
- "VAR",
657
- "VAR.P",
658
- "VAR.S",
659
- "VARA",
660
- "VARP",
661
- "VARPA",
662
- "SKEW",
663
- "SKEW.P",
664
- "KURT",
665
- "NORMDIST",
666
- "NORM.DIST",
667
- "NORMINV",
668
- "NORM.INV",
669
- "NORMSDIST",
670
- "NORM.S.DIST",
671
- "NORMSINV",
672
- "NORM.S.INV",
673
- "LOGINV",
674
- "LOGNORM.INV",
675
- "LOGNORMDIST",
676
- "LOGNORM.DIST",
677
- "CONFIDENCE.NORM",
678
- "CONFIDENCE",
679
- "CONFIDENCE.T",
680
- "ERF",
681
- "ERF.PRECISE",
682
- "ERFC",
683
- "ERFC.PRECISE",
684
- "FISHER",
685
- "FISHERINV",
686
- "GAMMALN",
687
- "GAMMALN.PRECISE",
688
- "GAMMA",
689
- "GAMMA.INV",
690
- "GAMMAINV",
691
- "EXPONDIST",
692
- "EXPON.DIST",
693
- "POISSON",
694
- "POISSON.DIST",
695
- "WEIBULL",
696
- "WEIBULL.DIST",
697
- "GAMMADIST",
698
- "GAMMA.DIST",
699
- "CHIDIST",
700
- "LEGACY.CHIDIST",
701
- "CHIINV",
702
- "CHISQ.DIST.RT",
703
- "CHISQ.DIST",
704
- "CHISQ.INV.RT",
705
- "CHISQ.INV",
706
- "CHISQDIST",
707
- "CHISQINV",
708
- "LEGACY.CHIINV",
709
- "CHISQ.TEST",
710
- "CHITEST",
711
- "LEGACY.CHITEST",
712
- "F.TEST",
713
- "FTEST",
714
- "Z.TEST",
715
- "ZTEST",
716
- "BETA.DIST",
717
- "BETA.INV",
718
- "BETADIST",
719
- "BETAINV",
720
- "F.DIST",
721
- "F.DIST.RT",
722
- "F.INV",
723
- "F.INV.RT",
724
- "FDIST",
725
- "FINV",
726
- "LEGACY.FDIST",
727
- "LEGACY.FINV",
728
- "T.DIST",
729
- "T.DIST.RT",
730
- "T.DIST.2T",
731
- "T.INV",
732
- "T.INV.2T",
733
- "TDIST",
734
- "TINV",
735
- "T.TEST",
736
- "TTEST",
737
- "BINOMDIST",
738
- "BINOM.DIST",
739
- "BINOM.DIST.RANGE",
740
- "CRITBINOM",
741
- "BINOM.INV",
742
- "HYPGEOMDIST",
743
- "HYPGEOM.DIST",
744
- "NEGBINOMDIST",
745
- "NEGBINOM.DIST",
746
- "CORREL",
747
- "COVAR",
748
- "PEARSON",
749
- "COVARIANCE.P",
750
- "COVARIANCE.S",
751
- "FORECAST.LINEAR",
752
- "RANK",
753
- "RANK.EQ",
754
- "RANK.AVG",
755
- "GROWTH",
756
- "INTERCEPT",
757
- "LINEST",
758
- "LOGEST",
759
- "RSQ",
760
- "SLOPE",
761
- "STEYX",
762
- "TREND",
763
- "TRIMMEAN",
593
+ 'COUNTIF',
594
+ 'COUNTIFS',
595
+ 'DAVERAGE',
596
+ 'DCOUNT',
597
+ 'DCOUNTA',
598
+ 'DGET',
599
+ 'DMAX',
600
+ 'DMIN',
601
+ 'DPRODUCT',
602
+ 'DSTDEV',
603
+ 'DSTDEVP',
604
+ 'DSUM',
605
+ 'DVAR',
606
+ 'DVARP',
607
+ 'SUMIF',
608
+ 'SUMIFS',
609
+ 'AVERAGEIF',
610
+ 'AVERAGEIFS',
611
+ 'SUMPRODUCT',
612
+ 'MEDIAN',
613
+ 'MODE.MULT',
614
+ 'FREQUENCY',
615
+ 'SMALL',
616
+ 'LARGE',
617
+ 'PERCENTILE',
618
+ 'PERCENTILE.INC',
619
+ 'PERCENTILE.EXC',
620
+ 'PERCENTRANK',
621
+ 'PERCENTRANK.INC',
622
+ 'PERCENTRANK.EXC',
623
+ 'PROB',
624
+ 'QUARTILE',
625
+ 'QUARTILE.INC',
626
+ 'QUARTILE.EXC',
627
+ 'MINIFS',
628
+ 'MAXIFS',
629
+ 'MODE',
630
+ 'MODE.SNGL',
631
+ 'STDEV',
632
+ 'STDEV.P',
633
+ 'STDEV.S',
634
+ 'STDEVA',
635
+ 'STDEVP',
636
+ 'STDEVPA',
637
+ 'VAR',
638
+ 'VAR.P',
639
+ 'VAR.S',
640
+ 'VARA',
641
+ 'VARP',
642
+ 'VARPA',
643
+ 'SKEW',
644
+ 'SKEW.P',
645
+ 'KURT',
646
+ 'NORMDIST',
647
+ 'NORM.DIST',
648
+ 'NORMINV',
649
+ 'NORM.INV',
650
+ 'NORMSDIST',
651
+ 'NORM.S.DIST',
652
+ 'NORMSINV',
653
+ 'NORM.S.INV',
654
+ 'LOGINV',
655
+ 'LOGNORM.INV',
656
+ 'LOGNORMDIST',
657
+ 'LOGNORM.DIST',
658
+ 'CONFIDENCE.NORM',
659
+ 'CONFIDENCE',
660
+ 'CONFIDENCE.T',
661
+ 'ERF',
662
+ 'ERF.PRECISE',
663
+ 'ERFC',
664
+ 'ERFC.PRECISE',
665
+ 'FISHER',
666
+ 'FISHERINV',
667
+ 'GAMMALN',
668
+ 'GAMMALN.PRECISE',
669
+ 'GAMMA',
670
+ 'GAMMA.INV',
671
+ 'GAMMAINV',
672
+ 'EXPONDIST',
673
+ 'EXPON.DIST',
674
+ 'POISSON',
675
+ 'POISSON.DIST',
676
+ 'WEIBULL',
677
+ 'WEIBULL.DIST',
678
+ 'GAMMADIST',
679
+ 'GAMMA.DIST',
680
+ 'CHIDIST',
681
+ 'LEGACY.CHIDIST',
682
+ 'CHIINV',
683
+ 'CHISQ.DIST.RT',
684
+ 'CHISQ.DIST',
685
+ 'CHISQ.INV.RT',
686
+ 'CHISQ.INV',
687
+ 'CHISQDIST',
688
+ 'CHISQINV',
689
+ 'LEGACY.CHIINV',
690
+ 'CHISQ.TEST',
691
+ 'CHITEST',
692
+ 'LEGACY.CHITEST',
693
+ 'F.TEST',
694
+ 'FTEST',
695
+ 'Z.TEST',
696
+ 'ZTEST',
697
+ 'BETA.DIST',
698
+ 'BETA.INV',
699
+ 'BETADIST',
700
+ 'BETAINV',
701
+ 'F.DIST',
702
+ 'F.DIST.RT',
703
+ 'F.INV',
704
+ 'F.INV.RT',
705
+ 'FDIST',
706
+ 'FINV',
707
+ 'LEGACY.FDIST',
708
+ 'LEGACY.FINV',
709
+ 'T.DIST',
710
+ 'T.DIST.RT',
711
+ 'T.DIST.2T',
712
+ 'T.INV',
713
+ 'T.INV.2T',
714
+ 'TDIST',
715
+ 'TINV',
716
+ 'T.TEST',
717
+ 'TTEST',
718
+ 'BINOMDIST',
719
+ 'BINOM.DIST',
720
+ 'BINOM.DIST.RANGE',
721
+ 'CRITBINOM',
722
+ 'BINOM.INV',
723
+ 'HYPGEOMDIST',
724
+ 'HYPGEOM.DIST',
725
+ 'NEGBINOMDIST',
726
+ 'NEGBINOM.DIST',
727
+ 'CORREL',
728
+ 'COVAR',
729
+ 'PEARSON',
730
+ 'COVARIANCE.P',
731
+ 'COVARIANCE.S',
732
+ 'FORECAST.LINEAR',
733
+ 'RANK',
734
+ 'RANK.EQ',
735
+ 'RANK.AVG',
736
+ 'GROWTH',
737
+ 'INTERCEPT',
738
+ 'LINEST',
739
+ 'LOGEST',
740
+ 'RSQ',
741
+ 'SLOPE',
742
+ 'STEYX',
743
+ 'TREND',
744
+ 'TRIMMEAN',
764
745
  ]);
765
746
  const dynamicArrayBuiltinNames = new Set([
766
- "SEQUENCE",
767
- "EXPAND",
768
- "FILTER",
769
- "UNIQUE",
770
- "TAKE",
771
- "DROP",
772
- "CHOOSECOLS",
773
- "CHOOSEROWS",
774
- "SORT",
775
- "SORTBY",
776
- "TOCOL",
777
- "TOROW",
778
- "WRAPROWS",
779
- "WRAPCOLS",
780
- "AREAS",
781
- "COLUMNS",
782
- "ROWS",
783
- "TRANSPOSE",
784
- "HSTACK",
785
- "VSTACK",
786
- "TEXTSPLIT",
787
- "GROWTH",
788
- "TREND",
789
- "TRIMRANGE",
790
- "GROUPBY",
791
- "PIVOTBY",
792
- ]);
793
- const arrayRuntimeBuiltinNames = new Set([
794
- "FREQUENCY",
795
- "MODE.MULT",
796
- "GROWTH",
797
- "LINEST",
798
- "LOGEST",
799
- "TREND",
800
- ]);
801
- const lambdaBuiltinNames = new Set([
802
- "LET",
803
- "LAMBDA",
804
- "MAKEARRAY",
805
- "MAP",
806
- "REDUCE",
807
- "SCAN",
808
- "BYROW",
809
- "BYCOL",
747
+ 'SEQUENCE',
748
+ 'EXPAND',
749
+ 'FILTER',
750
+ 'UNIQUE',
751
+ 'TAKE',
752
+ 'DROP',
753
+ 'CHOOSECOLS',
754
+ 'CHOOSEROWS',
755
+ 'SORT',
756
+ 'SORTBY',
757
+ 'TOCOL',
758
+ 'TOROW',
759
+ 'WRAPROWS',
760
+ 'WRAPCOLS',
761
+ 'AREAS',
762
+ 'COLUMNS',
763
+ 'ROWS',
764
+ 'TRANSPOSE',
765
+ 'HSTACK',
766
+ 'VSTACK',
767
+ 'TEXTSPLIT',
768
+ 'GROWTH',
769
+ 'TREND',
770
+ 'TRIMRANGE',
771
+ 'GROUPBY',
772
+ 'PIVOTBY',
810
773
  ]);
774
+ const arrayRuntimeBuiltinNames = new Set(['FREQUENCY', 'MODE.MULT', 'GROWTH', 'LINEST', 'LOGEST', 'TREND']);
775
+ const lambdaBuiltinNames = new Set(['LET', 'LAMBDA', 'MAKEARRAY', 'MAP', 'REDUCE', 'SCAN', 'BYROW', 'BYCOL']);
811
776
  function inferCategory(name) {
812
777
  if (aggregationBuiltinNames.has(name))
813
- return "aggregation";
778
+ return 'aggregation';
814
779
  if (logicalBuiltinNames.has(name))
815
- return "logical";
780
+ return 'logical';
816
781
  if (informationBuiltinNames.has(name))
817
- return "information";
782
+ return 'information';
818
783
  if (textBuiltinNames.has(name))
819
- return "text";
784
+ return 'text';
820
785
  if (dateTimeBuiltinNames.has(name))
821
- return "date-time";
786
+ return 'date-time';
822
787
  if (lookupBuiltinNames.has(name))
823
- return "lookup-reference";
788
+ return 'lookup-reference';
824
789
  if (statisticalBuiltinNames.has(name))
825
- return "statistical";
790
+ return 'statistical';
826
791
  if (dynamicArrayBuiltinNames.has(name))
827
- return "dynamic-array";
792
+ return 'dynamic-array';
828
793
  if (lambdaBuiltinNames.has(name))
829
- return "lambda";
830
- return "math";
794
+ return 'lambda';
795
+ return 'math';
831
796
  }
832
- function buildCapability(name, id, jsStatus = "implemented") {
797
+ function buildCapability(name, id, jsStatus = 'implemented') {
833
798
  const category = inferCategory(name);
834
799
  return {
835
800
  ...(id === undefined ? {} : { id }),
836
801
  name,
837
802
  category,
838
803
  jsStatus,
839
- wasmStatus: wasmProductionBuiltinNames.has(name) ? "production" : "not-started",
804
+ wasmStatus: wasmProductionBuiltinNames.has(name) ? 'production' : 'not-started',
840
805
  needsMetadata: false,
841
- needsArrayRuntime: category === "dynamic-array" || category === "lambda" || arrayRuntimeBuiltinNames.has(name),
806
+ needsArrayRuntime: category === 'dynamic-array' || category === 'lambda' || arrayRuntimeBuiltinNames.has(name),
842
807
  needsExternalAdapter: false,
843
808
  };
844
809
  }
845
810
  export const builtinCapabilityManifest = [
846
811
  ...BUILTINS.map((builtin) => buildCapability(builtin.name.toUpperCase(), builtin.id)),
847
- ...Array.from(jsSpecialBuiltinNames, (name) => buildCapability(name, undefined, "special-js-only")),
848
- buildCapability("FORECAST.LINEAR", BuiltinId.Forecast),
849
- buildCapability("USE.THE.COUNTIF"),
812
+ ...Array.from(jsSpecialBuiltinNames, (name) => buildCapability(name, undefined, 'special-js-only')),
813
+ buildCapability('FORECAST.LINEAR', BuiltinId.Forecast),
814
+ buildCapability('USE.THE.COUNTIF'),
850
815
  ];
851
816
  export const builtinCapabilitiesByName = new Map(builtinCapabilityManifest.map((capability) => [capability.name, capability]));
852
- export const builtinWasmEnabledNames = new Set(builtinCapabilityManifest
853
- .filter((capability) => capability.wasmStatus === "production")
854
- .map((capability) => capability.name));
855
- export const builtinJsSpecialNames = new Set(builtinCapabilityManifest
856
- .filter((capability) => capability.jsStatus === "special-js-only")
857
- .map((capability) => capability.name));
817
+ export const builtinWasmEnabledNames = new Set(builtinCapabilityManifest.filter((capability) => capability.wasmStatus === 'production').map((capability) => capability.name));
818
+ export const builtinJsSpecialNames = new Set(builtinCapabilityManifest.filter((capability) => capability.jsStatus === 'special-js-only').map((capability) => capability.name));
858
819
  export function getBuiltinCapability(name) {
859
820
  return builtinCapabilitiesByName.get(name.trim().toUpperCase());
860
821
  }