@mojir/lits 2.1.22 → 2.1.23
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.
- package/dist/cli/cli.js +103 -96
- package/dist/cli/src/Lits/Lits.d.ts +2 -0
- package/dist/cli/src/utils/index.d.ts +0 -9
- package/dist/cli/src/utils/paramCount.d.ts +7 -0
- package/dist/index.esm.js +103 -108
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +102 -108
- package/dist/index.js.map +1 -1
- package/dist/lits.iife.js +102 -108
- package/dist/lits.iife.js.map +1 -1
- package/dist/src/Lits/Lits.d.ts +2 -0
- package/dist/src/index.d.ts +0 -1
- package/dist/src/utils/index.d.ts +0 -9
- package/dist/src/utils/paramCount.d.ts +7 -0
- package/dist/testFramework.esm.js +102 -95
- package/dist/testFramework.esm.js.map +1 -1
- package/dist/testFramework.js +102 -95
- package/dist/testFramework.js.map +1 -1
- package/package.json +1 -1
package/dist/testFramework.js
CHANGED
|
@@ -898,91 +898,6 @@ function approxEqual(a, b, epsilon) {
|
|
|
898
898
|
function approxZero(value) {
|
|
899
899
|
return Math.abs(value) < EPSILON;
|
|
900
900
|
}
|
|
901
|
-
function paramCountAccepts(paramsCount, nbrOfParams) {
|
|
902
|
-
if (typeof paramsCount === 'number') {
|
|
903
|
-
return paramsCount === nbrOfParams;
|
|
904
|
-
}
|
|
905
|
-
var min = paramsCount.min, max = paramsCount.max, even = paramsCount.even, odd = paramsCount.odd;
|
|
906
|
-
if (even && nbrOfParams % 2 !== 0) {
|
|
907
|
-
return false;
|
|
908
|
-
}
|
|
909
|
-
if (odd && nbrOfParams % 2 !== 1) {
|
|
910
|
-
return false;
|
|
911
|
-
}
|
|
912
|
-
if (typeof min === 'number' && nbrOfParams < min) {
|
|
913
|
-
return false;
|
|
914
|
-
}
|
|
915
|
-
if (typeof max === 'number' && nbrOfParams > max) {
|
|
916
|
-
return false;
|
|
917
|
-
}
|
|
918
|
-
return true;
|
|
919
|
-
}
|
|
920
|
-
function paramCountAcceptsMin(paramsCount, nbrOfParams) {
|
|
921
|
-
if (typeof paramsCount === 'number') {
|
|
922
|
-
return nbrOfParams >= paramsCount;
|
|
923
|
-
}
|
|
924
|
-
var min = paramsCount.min;
|
|
925
|
-
if (typeof min === 'number' && nbrOfParams < min) {
|
|
926
|
-
return false;
|
|
927
|
-
}
|
|
928
|
-
return true;
|
|
929
|
-
}
|
|
930
|
-
function getCommonParamCount(params) {
|
|
931
|
-
return params.reduce(function (acc, param) {
|
|
932
|
-
if (acc === null) {
|
|
933
|
-
return null;
|
|
934
|
-
}
|
|
935
|
-
var paramCount = (typeof param === 'number' || isColl(param)) ? 1 : param.paramCount;
|
|
936
|
-
if (typeof acc === 'number' && typeof paramCount === 'number') {
|
|
937
|
-
return acc === paramCount ? acc : null;
|
|
938
|
-
}
|
|
939
|
-
if (typeof paramCount === 'number') {
|
|
940
|
-
if (paramCountAccepts(acc, paramCount)) {
|
|
941
|
-
return paramCount;
|
|
942
|
-
}
|
|
943
|
-
return null;
|
|
944
|
-
}
|
|
945
|
-
if (typeof acc === 'number') {
|
|
946
|
-
if (paramCountAccepts(paramCount, acc)) {
|
|
947
|
-
return acc;
|
|
948
|
-
}
|
|
949
|
-
return null;
|
|
950
|
-
}
|
|
951
|
-
var aMin = paramCount.min, aMax = paramCount.max, aEven = paramCount.even, aOdd = paramCount.odd;
|
|
952
|
-
var bMin = acc.min, bMax = acc.max, bEven = acc.even, bOdd = acc.odd;
|
|
953
|
-
var min = typeof aMin === 'number' && typeof bMin === 'number'
|
|
954
|
-
? Math.max(aMin, bMin)
|
|
955
|
-
: typeof aMin === 'number' ? aMin : typeof bMin === 'number' ? bMin : undefined;
|
|
956
|
-
var max = typeof aMax === 'number' && typeof bMax === 'number'
|
|
957
|
-
? Math.min(aMax, bMax)
|
|
958
|
-
: typeof aMax === 'number' ? aMax : typeof bMax === 'number' ? bMax : undefined;
|
|
959
|
-
var even = aEven !== null && aEven !== void 0 ? aEven : bEven;
|
|
960
|
-
var odd = aOdd !== null && aOdd !== void 0 ? aOdd : bOdd;
|
|
961
|
-
if (min !== undefined && max !== undefined && min > max) {
|
|
962
|
-
return null;
|
|
963
|
-
}
|
|
964
|
-
if (even && odd) {
|
|
965
|
-
return null;
|
|
966
|
-
}
|
|
967
|
-
if (odd && min !== undefined && min < 1) {
|
|
968
|
-
return null;
|
|
969
|
-
}
|
|
970
|
-
return { min: min, max: max, even: even, odd: odd };
|
|
971
|
-
}, {});
|
|
972
|
-
}
|
|
973
|
-
function getParamCount(param) {
|
|
974
|
-
return (typeof param === 'number' || isColl(param)) ? 1 : param.paramCount;
|
|
975
|
-
}
|
|
976
|
-
function paramCountMinus(paramCount, count) {
|
|
977
|
-
if (typeof paramCount === 'number') {
|
|
978
|
-
return paramCount - count;
|
|
979
|
-
}
|
|
980
|
-
var min = paramCount.min === undefined ? undefined : paramCount.min - count;
|
|
981
|
-
var max = paramCount.max === undefined ? undefined : paramCount.max - count;
|
|
982
|
-
var even = paramCount.even === undefined ? undefined : count % 2 === 0 ? true : undefined;
|
|
983
|
-
var odd = paramCount.odd === undefined ? undefined : count % 2 === 0 ? true : undefined;
|
|
984
|
-
return { min: min, max: max, even: even, odd: odd };
|
|
985
|
-
}
|
|
986
901
|
|
|
987
902
|
// isArray not needed, use Array.isArary
|
|
988
903
|
function asArray(value, sourceCodeInfo) {
|
|
@@ -4613,6 +4528,98 @@ function applyPlaceholders(templateString, placeholders, sourceCodeInfo) {
|
|
|
4613
4528
|
return templateString;
|
|
4614
4529
|
}
|
|
4615
4530
|
|
|
4531
|
+
function paramCountAccepts(paramsCount, nbrOfParams) {
|
|
4532
|
+
if (typeof paramsCount === 'number') {
|
|
4533
|
+
return paramsCount === nbrOfParams;
|
|
4534
|
+
}
|
|
4535
|
+
var min = paramsCount.min, max = paramsCount.max, even = paramsCount.even, odd = paramsCount.odd;
|
|
4536
|
+
if (even && nbrOfParams % 2 !== 0) {
|
|
4537
|
+
return false;
|
|
4538
|
+
}
|
|
4539
|
+
if (odd && nbrOfParams % 2 !== 1) {
|
|
4540
|
+
return false;
|
|
4541
|
+
}
|
|
4542
|
+
if (typeof min === 'number' && nbrOfParams < min) {
|
|
4543
|
+
return false;
|
|
4544
|
+
}
|
|
4545
|
+
if (typeof max === 'number' && nbrOfParams > max) {
|
|
4546
|
+
return false;
|
|
4547
|
+
}
|
|
4548
|
+
return true;
|
|
4549
|
+
}
|
|
4550
|
+
function paramCountAcceptsMin(paramsCount, nbrOfParams) {
|
|
4551
|
+
if (typeof paramsCount === 'number') {
|
|
4552
|
+
return nbrOfParams >= paramsCount;
|
|
4553
|
+
}
|
|
4554
|
+
var min = paramsCount.min;
|
|
4555
|
+
if (typeof min === 'number' && nbrOfParams < min) {
|
|
4556
|
+
return false;
|
|
4557
|
+
}
|
|
4558
|
+
return true;
|
|
4559
|
+
}
|
|
4560
|
+
function getCommonParamCountFromFunctions(params) {
|
|
4561
|
+
return params.reduce(function (acc, param) {
|
|
4562
|
+
if (acc === null) {
|
|
4563
|
+
return null;
|
|
4564
|
+
}
|
|
4565
|
+
var paramCount = (typeof param === 'number' || isColl(param)) ? 1 : param.paramCount;
|
|
4566
|
+
if (typeof acc === 'number' && typeof paramCount === 'number') {
|
|
4567
|
+
return acc === paramCount ? acc : null;
|
|
4568
|
+
}
|
|
4569
|
+
if (typeof paramCount === 'number') {
|
|
4570
|
+
if (paramCountAccepts(acc, paramCount)) {
|
|
4571
|
+
return paramCount;
|
|
4572
|
+
}
|
|
4573
|
+
return null;
|
|
4574
|
+
}
|
|
4575
|
+
if (typeof acc === 'number') {
|
|
4576
|
+
if (paramCountAccepts(paramCount, acc)) {
|
|
4577
|
+
return acc;
|
|
4578
|
+
}
|
|
4579
|
+
return null;
|
|
4580
|
+
}
|
|
4581
|
+
var aMin = paramCount.min, aMax = paramCount.max, aEven = paramCount.even, aOdd = paramCount.odd;
|
|
4582
|
+
var bMin = acc.min, bMax = acc.max, bEven = acc.even, bOdd = acc.odd;
|
|
4583
|
+
var min = typeof aMin === 'number' && typeof bMin === 'number'
|
|
4584
|
+
? Math.max(aMin, bMin)
|
|
4585
|
+
: typeof aMin === 'number' ? aMin : typeof bMin === 'number' ? bMin : undefined;
|
|
4586
|
+
var max = typeof aMax === 'number' && typeof bMax === 'number'
|
|
4587
|
+
? Math.min(aMax, bMax)
|
|
4588
|
+
: typeof aMax === 'number' ? aMax : typeof bMax === 'number' ? bMax : undefined;
|
|
4589
|
+
var even = aEven !== null && aEven !== void 0 ? aEven : bEven;
|
|
4590
|
+
var odd = aOdd !== null && aOdd !== void 0 ? aOdd : bOdd;
|
|
4591
|
+
if (even && odd) {
|
|
4592
|
+
return null;
|
|
4593
|
+
}
|
|
4594
|
+
if (even) {
|
|
4595
|
+
if (typeof min === 'number' && min % 2 !== 0) {
|
|
4596
|
+
min += 1;
|
|
4597
|
+
}
|
|
4598
|
+
if (typeof max === 'number' && max % 2 !== 0) {
|
|
4599
|
+
max -= 1;
|
|
4600
|
+
}
|
|
4601
|
+
}
|
|
4602
|
+
if (odd) {
|
|
4603
|
+
if (typeof min === 'number' && min % 2 === 0) {
|
|
4604
|
+
min += 1;
|
|
4605
|
+
}
|
|
4606
|
+
if (typeof max === 'number' && max % 2 === 0) {
|
|
4607
|
+
max -= 1;
|
|
4608
|
+
}
|
|
4609
|
+
}
|
|
4610
|
+
if (typeof min === 'number' && typeof max === 'number' && min > max) {
|
|
4611
|
+
return null;
|
|
4612
|
+
}
|
|
4613
|
+
if (typeof min === 'number' && min === max) {
|
|
4614
|
+
return min;
|
|
4615
|
+
}
|
|
4616
|
+
return { min: min, max: max, even: even, odd: odd };
|
|
4617
|
+
}, {});
|
|
4618
|
+
}
|
|
4619
|
+
function getParamCountFromFunction(param) {
|
|
4620
|
+
return (typeof param === 'number' || isColl(param)) ? 1 : param.paramCount;
|
|
4621
|
+
}
|
|
4622
|
+
|
|
4616
4623
|
var functionalNormalExpression = {
|
|
4617
4624
|
'|>': {
|
|
4618
4625
|
evaluate: function (_a, sourceCodeInfo, contextStack, _b) {
|
|
@@ -4652,7 +4659,7 @@ var functionalNormalExpression = {
|
|
|
4652
4659
|
_a.sourceCodeInfo = sourceCodeInfo,
|
|
4653
4660
|
_a.functionType = 'Comp',
|
|
4654
4661
|
_a.params = params,
|
|
4655
|
-
_a.paramCount = params.length > 0 ?
|
|
4662
|
+
_a.paramCount = params.length > 0 ? getParamCountFromFunction(params.at(-1)) : 1,
|
|
4656
4663
|
_a;
|
|
4657
4664
|
},
|
|
4658
4665
|
paramCount: {},
|
|
@@ -4675,7 +4682,7 @@ var functionalNormalExpression = {
|
|
|
4675
4682
|
evaluate: function (params, sourceCodeInfo) {
|
|
4676
4683
|
var _a;
|
|
4677
4684
|
params.forEach(function (param) { return assertFunctionLike(param, sourceCodeInfo); });
|
|
4678
|
-
var paramCount =
|
|
4685
|
+
var paramCount = getCommonParamCountFromFunctions(params);
|
|
4679
4686
|
if (paramCount === null) {
|
|
4680
4687
|
throw new LitsError('All functions must accept the same number of arguments', sourceCodeInfo);
|
|
4681
4688
|
}
|
|
@@ -4699,7 +4706,7 @@ var functionalNormalExpression = {
|
|
|
4699
4706
|
_b.sourceCodeInfo = sourceCodeInfo,
|
|
4700
4707
|
_b.functionType = 'Complement',
|
|
4701
4708
|
_b.function = fun,
|
|
4702
|
-
_b.paramCount =
|
|
4709
|
+
_b.paramCount = getParamCountFromFunction(fun),
|
|
4703
4710
|
_b;
|
|
4704
4711
|
},
|
|
4705
4712
|
paramCount: 1,
|
|
@@ -4741,7 +4748,7 @@ var functionalNormalExpression = {
|
|
|
4741
4748
|
_b.functionType = 'Fnull',
|
|
4742
4749
|
_b.function = fun,
|
|
4743
4750
|
_b.params = params,
|
|
4744
|
-
_b.paramCount =
|
|
4751
|
+
_b.paramCount = getParamCountFromFunction(fun),
|
|
4745
4752
|
_b;
|
|
4746
4753
|
},
|
|
4747
4754
|
paramCount: { min: 2 },
|
|
@@ -11849,8 +11856,7 @@ var defnSpecialExpression = {
|
|
|
11849
11856
|
assertNameNotDefined(functionSymbol[1], contextStack, builtin, node[2]);
|
|
11850
11857
|
var evaluatedFunction = evaluateFunction(fn, contextStack, builtin, getUndefinedSymbols, evaluateNode);
|
|
11851
11858
|
var min = evaluatedFunction[0].filter(function (arg) { return arg[0] !== bindingTargetTypes.rest && arg[1][1] === undefined; }).length;
|
|
11852
|
-
var
|
|
11853
|
-
var paramCount = min === max ? min : { min: min, max: max };
|
|
11859
|
+
var paramCount = { min: min };
|
|
11854
11860
|
var litsFunction = (_b = {},
|
|
11855
11861
|
_b[FUNCTION_SYMBOL] = true,
|
|
11856
11862
|
_b.sourceCodeInfo = node[2],
|
|
@@ -12823,7 +12829,7 @@ function evaluateNormalExpression(node, contextStack) {
|
|
|
12823
12829
|
_a.params = params,
|
|
12824
12830
|
_a.placeholders = placeholders,
|
|
12825
12831
|
_a.sourceCodeInfo = sourceCodeInfo,
|
|
12826
|
-
_a.paramCount =
|
|
12832
|
+
_a.paramCount = placeholders.length,
|
|
12827
12833
|
_a);
|
|
12828
12834
|
return partialFunction;
|
|
12829
12835
|
}
|
|
@@ -12851,7 +12857,7 @@ function evaluateNormalExpression(node, contextStack) {
|
|
|
12851
12857
|
_b.params = params,
|
|
12852
12858
|
_b.placeholders = placeholders,
|
|
12853
12859
|
_b.sourceCodeInfo = sourceCodeInfo,
|
|
12854
|
-
_b.paramCount =
|
|
12860
|
+
_b.paramCount = placeholders.length,
|
|
12855
12861
|
_b);
|
|
12856
12862
|
return partialFunction;
|
|
12857
12863
|
}
|
|
@@ -13101,7 +13107,8 @@ function createContextStack(params) {
|
|
|
13101
13107
|
nativeJsFunctions: params.jsFunctions
|
|
13102
13108
|
&& Object.entries(params.jsFunctions).reduce(function (acc, _a) {
|
|
13103
13109
|
var _b;
|
|
13104
|
-
var _c
|
|
13110
|
+
var _c;
|
|
13111
|
+
var _d = __read(_a, 2), name = _d[0], jsFunction = _d[1];
|
|
13105
13112
|
if (specialExpressionKeys.includes(name)) {
|
|
13106
13113
|
console.warn("Cannot shadow special expression \"".concat(name, "\", ignoring."));
|
|
13107
13114
|
return acc;
|
|
@@ -13116,7 +13123,7 @@ function createContextStack(params) {
|
|
|
13116
13123
|
name: name
|
|
13117
13124
|
},
|
|
13118
13125
|
_b[FUNCTION_SYMBOL] = true,
|
|
13119
|
-
_b.paramCount = {},
|
|
13126
|
+
_b.paramCount = (_c = jsFunction.paramCount) !== null && _c !== void 0 ? _c : {},
|
|
13120
13127
|
_b);
|
|
13121
13128
|
return acc;
|
|
13122
13129
|
}, {}),
|