@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,861 @@
1
+ import { BUILTINS, BuiltinId } from "@bilig/protocol";
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",
23
+ ]);
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",
468
+ ]);
469
+ 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",
481
+ ]);
482
+ 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",
523
+ ]);
524
+ 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",
592
+ ]);
593
+ 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",
610
+ ]);
611
+ 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",
764
+ ]);
765
+ 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",
810
+ ]);
811
+ function inferCategory(name) {
812
+ if (aggregationBuiltinNames.has(name))
813
+ return "aggregation";
814
+ if (logicalBuiltinNames.has(name))
815
+ return "logical";
816
+ if (informationBuiltinNames.has(name))
817
+ return "information";
818
+ if (textBuiltinNames.has(name))
819
+ return "text";
820
+ if (dateTimeBuiltinNames.has(name))
821
+ return "date-time";
822
+ if (lookupBuiltinNames.has(name))
823
+ return "lookup-reference";
824
+ if (statisticalBuiltinNames.has(name))
825
+ return "statistical";
826
+ if (dynamicArrayBuiltinNames.has(name))
827
+ return "dynamic-array";
828
+ if (lambdaBuiltinNames.has(name))
829
+ return "lambda";
830
+ return "math";
831
+ }
832
+ function buildCapability(name, id, jsStatus = "implemented") {
833
+ const category = inferCategory(name);
834
+ return {
835
+ ...(id === undefined ? {} : { id }),
836
+ name,
837
+ category,
838
+ jsStatus,
839
+ wasmStatus: wasmProductionBuiltinNames.has(name) ? "production" : "not-started",
840
+ needsMetadata: false,
841
+ needsArrayRuntime: category === "dynamic-array" || category === "lambda" || arrayRuntimeBuiltinNames.has(name),
842
+ needsExternalAdapter: false,
843
+ };
844
+ }
845
+ export const builtinCapabilityManifest = [
846
+ ...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"),
850
+ ];
851
+ 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));
858
+ export function getBuiltinCapability(name) {
859
+ return builtinCapabilitiesByName.get(name.trim().toUpperCase());
860
+ }
861
+ //# sourceMappingURL=builtin-capabilities.js.map