@bilig/formula 0.1.9 → 0.1.10

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binder-wasm-rules.js","sourceRoot":"","sources":["../src/binder-wasm-rules.ts"],"names":[],"mappings":"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"}
package/dist/binder.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { BuiltinId, FormulaMode, MAX_WASM_RANGE_CELLS } from "@bilig/protocol";
2
+ import { getNativeAxisAggregateCode, getNativeRunningFoldCode, isNativeMakearraySumLambda, isWasmSafeBuiltinArgs as checkWasmSafeBuiltinArgs, } from "./binder-wasm-rules.js";
2
3
  import { builtinWasmEnabledNames } from "./builtin-capabilities.js";
3
4
  import { formatRangeAddress, parseRangeAddress } from "./addressing.js";
4
5
  import { hasBuiltin } from "./builtins.js";
@@ -6,141 +7,6 @@ import { rewriteSpecialCall } from "./special-call-rewrites.js";
6
7
  function assertNever(value) {
7
8
  throw new Error(`Unexpected formula node: ${JSON.stringify(value)}`);
8
9
  }
9
- const RANGE_SAFE_BUILTINS = new Set([
10
- "SUM",
11
- "AVG",
12
- "AVERAGE",
13
- "MIN",
14
- "MAX",
15
- "COUNT",
16
- "COUNTA",
17
- "COUNTBLANK",
18
- "PRODUCT",
19
- "GEOMEAN",
20
- "HARMEAN",
21
- "SUMSQ",
22
- "GCD",
23
- "LCM",
24
- "MODE",
25
- "MODE.SNGL",
26
- "STDEV",
27
- "STDEV.P",
28
- "STDEV.S",
29
- "STDEVA",
30
- "STDEVP",
31
- "STDEVPA",
32
- "VAR",
33
- "VAR.P",
34
- "VAR.S",
35
- "VARA",
36
- "VARP",
37
- "VARPA",
38
- "SKEW",
39
- "SKEW.P",
40
- "KURT",
41
- ]);
42
- const AXIS_AGGREGATE_CODES = new Map([
43
- ["SUM", 1],
44
- ["AVERAGE", 2],
45
- ["AVG", 2],
46
- ["MIN", 3],
47
- ["MAX", 4],
48
- ["COUNT", 5],
49
- ["COUNTA", 6],
50
- ]);
51
- function isCellRangeNode(node) {
52
- if (node.kind !== "RangeRef") {
53
- return false;
54
- }
55
- try {
56
- const sheetPrefix = node.sheetName ? `${node.sheetName}!` : "";
57
- return parseRangeAddress(`${sheetPrefix}${node.start}:${node.end}`).kind === "cells";
58
- }
59
- catch {
60
- return false;
61
- }
62
- }
63
- function getNativeAxisAggregateCode(node) {
64
- if (node.kind !== "CallExpr" ||
65
- node.callee.toUpperCase() !== "LAMBDA" ||
66
- node.args.length !== 2) {
67
- return null;
68
- }
69
- const [param, body] = node.args;
70
- if (param?.kind !== "NameRef" || body?.kind !== "CallExpr" || body.args.length !== 1) {
71
- return null;
72
- }
73
- const aggregateCode = AXIS_AGGREGATE_CODES.get(body.callee.toUpperCase());
74
- if (aggregateCode === undefined) {
75
- return null;
76
- }
77
- return body.args[0]?.kind === "NameRef" &&
78
- body.args[0].name.trim().toUpperCase() === param.name.trim().toUpperCase()
79
- ? aggregateCode
80
- : null;
81
- }
82
- function getNativeRunningFoldCode(node) {
83
- if (node.kind !== "CallExpr" ||
84
- node.callee.toUpperCase() !== "LAMBDA" ||
85
- node.args.length !== 3) {
86
- return null;
87
- }
88
- const [acc, value, body] = node.args;
89
- if (acc?.kind !== "NameRef" || value?.kind !== "NameRef" || body?.kind !== "BinaryExpr") {
90
- return null;
91
- }
92
- const foldCode = body.operator === "+" ? 1 : body.operator === "*" ? 2 : null;
93
- if (foldCode === null) {
94
- return null;
95
- }
96
- const left = body.left;
97
- const right = body.right;
98
- const accName = acc.name.trim().toUpperCase();
99
- const valueName = value.name.trim().toUpperCase();
100
- return left.kind === "NameRef" &&
101
- right.kind === "NameRef" &&
102
- ((left.name.trim().toUpperCase() === accName &&
103
- right.name.trim().toUpperCase() === valueName) ||
104
- (left.name.trim().toUpperCase() === valueName && right.name.trim().toUpperCase() === accName))
105
- ? foldCode
106
- : null;
107
- }
108
- function isNativeMakearraySumLambda(node) {
109
- if (node.kind !== "CallExpr" ||
110
- node.callee.toUpperCase() !== "LAMBDA" ||
111
- node.args.length !== 3) {
112
- return false;
113
- }
114
- const [rowParam, colParam, body] = node.args;
115
- if (rowParam?.kind !== "NameRef" || colParam?.kind !== "NameRef" || body?.kind !== "BinaryExpr") {
116
- return false;
117
- }
118
- if (body.operator !== "+") {
119
- return false;
120
- }
121
- const left = body.left;
122
- const right = body.right;
123
- const rowName = rowParam.name.trim().toUpperCase();
124
- const colName = colParam.name.trim().toUpperCase();
125
- return (left.kind === "NameRef" &&
126
- right.kind === "NameRef" &&
127
- ((left.name.trim().toUpperCase() === rowName && right.name.trim().toUpperCase() === colName) ||
128
- (left.name.trim().toUpperCase() === colName && right.name.trim().toUpperCase() === rowName)));
129
- }
130
- function isCellVectorNode(node) {
131
- if (node.kind !== "RangeRef") {
132
- return false;
133
- }
134
- try {
135
- const sheetPrefix = node.sheetName ? `${node.sheetName}!` : "";
136
- const range = parseRangeAddress(`${sheetPrefix}${node.start}:${node.end}`);
137
- return (range.kind === "cells" &&
138
- (range.start.row === range.end.row || range.start.col === range.end.col));
139
- }
140
- catch {
141
- return false;
142
- }
143
- }
144
10
  function isWasmSafeBuiltinArity(callee, argc) {
145
11
  switch (callee) {
146
12
  case "NOT":
@@ -867,376 +733,7 @@ export function bindFormula(ast) {
867
733
  }
868
734
  }
869
735
  function isWasmSafeBuiltinArgs(callee, args) {
870
- const argc = args.length;
871
- const isScalarArg = (arg) => isWasmSafe(arg);
872
- const isCellRangeArg = (arg) => isWasmSafe(arg, true) && isCellRangeNode(arg);
873
- const isCellVectorArg = (arg) => isWasmSafe(arg, true) && isCellVectorNode(arg);
874
- const isCellOrScalarArg = (arg) => isCellVectorArg(arg) || isScalarArg(arg);
875
- const isNativeSequenceArg = (arg) => arg.kind === "CallExpr" &&
876
- arg.callee.toUpperCase() === "SEQUENCE" &&
877
- isWasmSafeBuiltinArity("SEQUENCE", arg.args.length) &&
878
- arg.args.every((child) => isWasmSafe(child));
879
- switch (callee) {
880
- case "SUM":
881
- case "AVG":
882
- case "MIN":
883
- case "MAX":
884
- case "COUNT":
885
- case "COUNTA":
886
- case "COUNTBLANK":
887
- return args.every((arg) => isWasmSafe(arg, true) || isNativeSequenceArg(arg));
888
- case "CHOOSE":
889
- return (argc >= 2 &&
890
- isScalarArg(args[0]) &&
891
- args.slice(1).every((arg) => isWasmSafe(arg, true) || isNativeSequenceArg(arg)));
892
- case "COUNTIF":
893
- case "USE.THE.COUNTIF":
894
- return args.length === 2 && isCellRangeArg(args[0]) && isScalarArg(args[1]);
895
- case "COUNTIFS":
896
- if (args.length === 0 || args.length % 2 !== 0) {
897
- return false;
898
- }
899
- return args.every((arg, index) => index % 2 === 0 ? isCellRangeArg(arg) : isScalarArg(arg));
900
- case "DAVERAGE":
901
- case "DCOUNT":
902
- case "DCOUNTA":
903
- case "DGET":
904
- case "DMAX":
905
- case "DMIN":
906
- case "DPRODUCT":
907
- case "DSTDEV":
908
- case "DSTDEVP":
909
- case "DSUM":
910
- case "DVAR":
911
- case "DVARP":
912
- return (argc === 3 &&
913
- isCellRangeArg(args[0]) &&
914
- isWasmSafe(args[1], true) &&
915
- isCellRangeArg(args[2]));
916
- case "CHISQ.TEST":
917
- case "CHITEST":
918
- case "LEGACY.CHITEST":
919
- case "F.TEST":
920
- case "FTEST":
921
- return argc === 2 && args.every((arg) => isWasmSafe(arg, true));
922
- case "T.TEST":
923
- case "TTEST":
924
- return (argc === 4 &&
925
- isCellRangeArg(args[0]) &&
926
- isCellRangeArg(args[1]) &&
927
- isScalarArg(args[2]) &&
928
- isScalarArg(args[3]));
929
- case "Z.TEST":
930
- case "ZTEST":
931
- return (argc === 2 || argc === 3) && args.every((arg) => isWasmSafe(arg, true));
932
- case "SUMIF":
933
- case "AVERAGEIF":
934
- if (args.length !== 2 && args.length !== 3) {
935
- return false;
936
- }
937
- return (isCellRangeArg(args[0]) &&
938
- isScalarArg(args[1]) &&
939
- (args.length === 2 || isCellRangeArg(args[2])));
940
- case "SUMIFS":
941
- case "AVERAGEIFS":
942
- if (args.length < 3 || args.length % 2 === 0) {
943
- return false;
944
- }
945
- if (!isCellRangeArg(args[0])) {
946
- return false;
947
- }
948
- return args
949
- .slice(1)
950
- .every((arg, index) => (index % 2 === 0 ? isCellRangeArg(arg) : isScalarArg(arg)));
951
- case "SUMPRODUCT":
952
- return args.length >= 1 && args.every((arg) => isCellRangeArg(arg));
953
- case "MATCH":
954
- return ((args.length === 2 || args.length === 3) &&
955
- isScalarArg(args[0]) &&
956
- isCellVectorArg(args[1]) &&
957
- (args.length === 2 || isScalarArg(args[2])));
958
- case "CORREL":
959
- case "COVAR":
960
- case "PEARSON":
961
- case "COVARIANCE.P":
962
- case "COVARIANCE.S":
963
- case "INTERCEPT":
964
- case "RSQ":
965
- case "SLOPE":
966
- case "STEYX":
967
- return args.length === 2 && args.every((arg) => isWasmSafe(arg, true));
968
- case "MEDIAN":
969
- return args.length >= 1 && args.every((arg) => isWasmSafe(arg, true));
970
- case "MODE.MULT":
971
- return args.length >= 1 && args.every((arg) => isWasmSafe(arg, true));
972
- case "FREQUENCY":
973
- return args.length === 2 && isWasmSafe(args[0], true) && isWasmSafe(args[1], true);
974
- case "BESSELI":
975
- case "BESSELJ":
976
- case "BESSELK":
977
- case "BESSELY":
978
- return args.length === 2 && isScalarArg(args[0]) && isScalarArg(args[1]);
979
- case "SMALL":
980
- case "LARGE":
981
- case "PERCENTILE":
982
- case "PERCENTILE.INC":
983
- case "PERCENTILE.EXC":
984
- case "QUARTILE":
985
- case "QUARTILE.INC":
986
- case "QUARTILE.EXC":
987
- return args.length === 2 && isWasmSafe(args[0], true) && isScalarArg(args[1]);
988
- case "PERCENTRANK":
989
- case "PERCENTRANK.INC":
990
- case "PERCENTRANK.EXC":
991
- return ((args.length === 2 || args.length === 3) &&
992
- isWasmSafe(args[0], true) &&
993
- isScalarArg(args[1]) &&
994
- (args.length === 2 || isScalarArg(args[2])));
995
- case "RANK":
996
- case "RANK.EQ":
997
- case "RANK.AVG":
998
- return ((args.length === 2 || args.length === 3) &&
999
- isScalarArg(args[0]) &&
1000
- isWasmSafe(args[1], true) &&
1001
- (args.length === 2 || isScalarArg(args[2])));
1002
- case "FORECAST":
1003
- case "FORECAST.LINEAR":
1004
- return (args.length === 3 &&
1005
- isScalarArg(args[0]) &&
1006
- isWasmSafe(args[1], true) &&
1007
- isWasmSafe(args[2], true));
1008
- case "TREND":
1009
- case "GROWTH":
1010
- case "LINEST":
1011
- case "LOGEST":
1012
- return (args.length >= 1 &&
1013
- args.length <= 4 &&
1014
- isWasmSafe(args[0], true) &&
1015
- (args.length < 2 || isWasmSafe(args[1], true)) &&
1016
- (args.length < 3 || isWasmSafe(args[2], true)) &&
1017
- (args.length < 4 || isScalarArg(args[3])));
1018
- case "XMATCH":
1019
- return (args.length >= 2 &&
1020
- args.length <= 4 &&
1021
- isScalarArg(args[0]) &&
1022
- isCellVectorArg(args[1]) &&
1023
- args.slice(2).every((arg) => isScalarArg(arg)));
1024
- case "XLOOKUP":
1025
- return (args.length >= 3 &&
1026
- args.length <= 6 &&
1027
- isScalarArg(args[0]) &&
1028
- isCellVectorArg(args[1]) &&
1029
- isCellVectorArg(args[2]) &&
1030
- args.slice(3).every((arg) => isScalarArg(arg)));
1031
- case "INDEX":
1032
- return ((args.length === 2 || args.length === 3) &&
1033
- isCellRangeArg(args[0]) &&
1034
- isScalarArg(args[1]) &&
1035
- (args.length === 2 || isScalarArg(args[2])));
1036
- case "VLOOKUP":
1037
- return ((args.length === 3 || args.length === 4) &&
1038
- isScalarArg(args[0]) &&
1039
- isCellRangeArg(args[1]) &&
1040
- isScalarArg(args[2]) &&
1041
- (args.length === 3 || isScalarArg(args[3])));
1042
- case "HLOOKUP":
1043
- return ((args.length === 3 || args.length === 4) &&
1044
- isScalarArg(args[0]) &&
1045
- isCellRangeArg(args[1]) &&
1046
- isScalarArg(args[2]) &&
1047
- (args.length === 3 || isScalarArg(args[3])));
1048
- case "DAYS":
1049
- case "DAYS360":
1050
- case "YEARFRAC":
1051
- case "DISC":
1052
- case "INTRATE":
1053
- case "RECEIVED":
1054
- case "PRICEDISC":
1055
- case "YIELDDISC":
1056
- case "COUPDAYBS":
1057
- case "COUPDAYS":
1058
- case "COUPDAYSNC":
1059
- case "COUPNCD":
1060
- case "COUPNUM":
1061
- case "COUPPCD":
1062
- case "PRICEMAT":
1063
- case "YIELDMAT":
1064
- case "ODDFPRICE":
1065
- case "ODDFYIELD":
1066
- case "ODDLPRICE":
1067
- case "ODDLYIELD":
1068
- case "PRICE":
1069
- case "YIELD":
1070
- case "DURATION":
1071
- case "MDURATION":
1072
- case "TBILLPRICE":
1073
- case "TBILLYIELD":
1074
- case "TBILLEQ":
1075
- case "ISOWEEKNUM":
1076
- case "TIMEVALUE":
1077
- case "WEEKNUM":
1078
- return args.every((arg) => isScalarArg(arg));
1079
- case "EXPAND":
1080
- return (argc >= 2 &&
1081
- argc <= 4 &&
1082
- isWasmSafe(args[0], true) &&
1083
- isScalarArg(args[1]) &&
1084
- (argc < 3 || isScalarArg(args[2])) &&
1085
- (argc < 4 || isScalarArg(args[3])));
1086
- case "WORKDAY":
1087
- return args.length === 2
1088
- ? args.every((arg) => isScalarArg(arg))
1089
- : args.every((arg) => isScalarArg(arg));
1090
- case "NETWORKDAYS":
1091
- return args.length === 2
1092
- ? args.every((arg) => isScalarArg(arg))
1093
- : args.every((arg) => isScalarArg(arg));
1094
- case "WORKDAY.INTL":
1095
- case "NETWORKDAYS.INTL":
1096
- return args.every((arg) => isScalarArg(arg));
1097
- case "NUMBERVALUE":
1098
- case "TEXT":
1099
- return args.every((arg) => isScalarArg(arg));
1100
- case "PHONETIC":
1101
- return argc === 1 && (isScalarArg(args[0]) || isCellRangeNode(args[0]));
1102
- case "VALUETOTEXT":
1103
- case "TEXTBEFORE":
1104
- case "TEXTAFTER":
1105
- case "CHAR":
1106
- case "CODE":
1107
- case "UNICODE":
1108
- case "UNICHAR":
1109
- case "CLEAN":
1110
- case "ASC":
1111
- case "JIS":
1112
- case "DBCS":
1113
- case "BAHTTEXT":
1114
- case "TEXTSPLIT":
1115
- case "CONVERT":
1116
- case "EUROCONVERT":
1117
- case "BASE":
1118
- case "DECIMAL":
1119
- case "BIN2DEC":
1120
- case "BIN2HEX":
1121
- case "BIN2OCT":
1122
- case "DEC2BIN":
1123
- case "DEC2HEX":
1124
- case "DEC2OCT":
1125
- case "HEX2BIN":
1126
- case "HEX2DEC":
1127
- case "HEX2OCT":
1128
- case "OCT2BIN":
1129
- case "OCT2DEC":
1130
- case "OCT2HEX":
1131
- case "BITAND":
1132
- case "BITOR":
1133
- case "BITXOR":
1134
- case "BITLSHIFT":
1135
- case "BITRSHIFT":
1136
- return args.every((arg) => isScalarArg(arg));
1137
- case "TEXTJOIN":
1138
- return (argc >= 3 &&
1139
- isScalarArg(args[0]) &&
1140
- isScalarArg(args[1]) &&
1141
- args.slice(2).every((arg) => isWasmSafe(arg, true) || isNativeSequenceArg(arg)));
1142
- case "REPLACE":
1143
- case "SUBSTITUTE":
1144
- case "REPT":
1145
- return args.every((arg) => isScalarArg(arg));
1146
- case "OFFSET":
1147
- case "TAKE":
1148
- case "DROP":
1149
- case "CHOOSECOLS":
1150
- case "CHOOSEROWS":
1151
- case "SORT":
1152
- case "TOCOL":
1153
- case "TOROW":
1154
- case "WRAPROWS":
1155
- case "WRAPCOLS":
1156
- if (args.length === 0) {
1157
- return false;
1158
- }
1159
- return isCellRangeArg(args[0]) && args.slice(1).every((arg) => isScalarArg(arg));
1160
- case "FILTER":
1161
- return ((argc === 2 || argc === 3) &&
1162
- isCellRangeArg(args[0]) &&
1163
- isWasmSafe(args[1], true) &&
1164
- (argc === 2 || isScalarArg(args[2])));
1165
- case "UNIQUE":
1166
- return (argc >= 1 &&
1167
- argc <= 3 &&
1168
- isCellRangeArg(args[0]) &&
1169
- args.slice(1).every((arg) => isScalarArg(arg)));
1170
- case "TRIMRANGE":
1171
- return (argc >= 1 &&
1172
- argc <= 3 &&
1173
- isWasmSafe(args[0], true) &&
1174
- args.slice(1).every((arg) => isScalarArg(arg)));
1175
- case "PROB":
1176
- return ((argc === 3 || argc === 4) &&
1177
- isWasmSafe(args[0], true) &&
1178
- isWasmSafe(args[1], true) &&
1179
- isScalarArg(args[2]) &&
1180
- (argc === 3 || isScalarArg(args[3])));
1181
- case "TRIMMEAN":
1182
- return argc === 2 && isWasmSafe(args[0], true) && isScalarArg(args[1]);
1183
- case "LOOKUP":
1184
- if (argc < 2 || argc > 3) {
1185
- return false;
1186
- }
1187
- return (isScalarArg(args[0]) &&
1188
- isCellOrScalarArg(args[1]) &&
1189
- (argc === 2 || isCellVectorArg(args[2]) || isScalarArg(args[2])));
1190
- case "TRANSPOSE":
1191
- return args.length === 1 && isWasmSafe(args[0], true);
1192
- case "HSTACK":
1193
- case "VSTACK":
1194
- return args.length >= 1 && args.every((arg) => isWasmSafe(arg, true));
1195
- case "AREAS":
1196
- case "COLUMNS":
1197
- case "ROWS":
1198
- return args.length === 1 && isCellRangeArg(args[0]);
1199
- case "ARRAYTOTEXT":
1200
- return ((argc === 1 || argc === 2) &&
1201
- (isCellRangeArg(args[0]) || isScalarArg(args[0])) &&
1202
- (argc === 1 || isScalarArg(args[1])));
1203
- case "MINIFS":
1204
- case "MAXIFS":
1205
- if (args.length < 3 || args.length % 2 === 0 || !isCellRangeArg(args[0])) {
1206
- return false;
1207
- }
1208
- return args
1209
- .slice(1)
1210
- .every((arg, index) => (index % 2 === 0 ? isCellRangeArg(arg) : isScalarArg(arg)));
1211
- case "IRR":
1212
- return ((argc === 1 || argc === 2) &&
1213
- isCellRangeArg(args[0]) &&
1214
- (argc === 1 || isScalarArg(args[1])));
1215
- case "MIRR":
1216
- return (argc === 3 && isCellRangeArg(args[0]) && isScalarArg(args[1]) && isScalarArg(args[2]));
1217
- case "XNPV":
1218
- return (argc === 3 &&
1219
- isScalarArg(args[0]) &&
1220
- isCellRangeArg(args[1]) &&
1221
- isCellRangeArg(args[2]));
1222
- case "XIRR":
1223
- return ((argc === 2 || argc === 3) &&
1224
- isCellRangeArg(args[0]) &&
1225
- isCellRangeArg(args[1]) &&
1226
- (argc === 2 || isScalarArg(args[2])));
1227
- case "SORTBY":
1228
- if (args.length < 2) {
1229
- return false;
1230
- }
1231
- return (isCellRangeArg(args[0]) &&
1232
- args
1233
- .slice(1)
1234
- .every((arg, index) => index % 2 === 0 ? isScalarArg(arg) || isWasmSafe(arg, true) : isScalarArg(arg)));
1235
- default: {
1236
- const allowRangeArgs = RANGE_SAFE_BUILTINS.has(callee);
1237
- return args.every((arg) => isWasmSafe(arg, allowRangeArgs));
1238
- }
1239
- }
736
+ return checkWasmSafeBuiltinArgs(callee, args, { isWasmSafe });
1240
737
  }
1241
738
  function isTopLevelWasmSafe(node) {
1242
739
  if (node.kind !== "CallExpr") {