@magda/arbitraries 3.0.1-alpha.0 → 3.0.2-alpha.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.
- package/dist/index.js +416 -3326
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -11,6 +11,9 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
|
|
|
11
11
|
return require.apply(this, arguments);
|
|
12
12
|
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
13
13
|
});
|
|
14
|
+
var __esm = (fn, res) => function __init() {
|
|
15
|
+
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
16
|
+
};
|
|
14
17
|
var __commonJS = (cb, mod) => function __require2() {
|
|
15
18
|
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
16
19
|
};
|
|
@@ -31,9 +34,22 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
31
34
|
mod
|
|
32
35
|
));
|
|
33
36
|
|
|
37
|
+
// ../cjs-shim.js
|
|
38
|
+
import { createRequire } from "module";
|
|
39
|
+
import path from "path";
|
|
40
|
+
import url from "url";
|
|
41
|
+
var init_cjs_shim = __esm({
|
|
42
|
+
"../cjs-shim.js"() {
|
|
43
|
+
globalThis.require = createRequire(import.meta.url);
|
|
44
|
+
globalThis.__filename = url.fileURLToPath(import.meta.url);
|
|
45
|
+
globalThis.__dirname = path.dirname(__filename);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
|
|
34
49
|
// ../../node_modules/lodash/lodash.js
|
|
35
50
|
var require_lodash = __commonJS({
|
|
36
51
|
"../../node_modules/lodash/lodash.js"(exports, module) {
|
|
52
|
+
init_cjs_shim();
|
|
37
53
|
(function() {
|
|
38
54
|
var undefined2;
|
|
39
55
|
var VERSION = "4.17.21";
|
|
@@ -1361,11 +1377,11 @@ var require_lodash = __commonJS({
|
|
|
1361
1377
|
return isFunction(object[key]);
|
|
1362
1378
|
});
|
|
1363
1379
|
}
|
|
1364
|
-
function baseGet(object,
|
|
1365
|
-
|
|
1366
|
-
var index = 0, length =
|
|
1380
|
+
function baseGet(object, path2) {
|
|
1381
|
+
path2 = castPath(path2, object);
|
|
1382
|
+
var index = 0, length = path2.length;
|
|
1367
1383
|
while (object != null && index < length) {
|
|
1368
|
-
object = object[toKey(
|
|
1384
|
+
object = object[toKey(path2[index++])];
|
|
1369
1385
|
}
|
|
1370
1386
|
return index && index == length ? object : undefined2;
|
|
1371
1387
|
}
|
|
@@ -1429,10 +1445,10 @@ var require_lodash = __commonJS({
|
|
|
1429
1445
|
});
|
|
1430
1446
|
return accumulator;
|
|
1431
1447
|
}
|
|
1432
|
-
function baseInvoke(object,
|
|
1433
|
-
|
|
1434
|
-
object = parent(object,
|
|
1435
|
-
var func = object == null ? object : object[toKey(last(
|
|
1448
|
+
function baseInvoke(object, path2, args) {
|
|
1449
|
+
path2 = castPath(path2, object);
|
|
1450
|
+
object = parent(object, path2);
|
|
1451
|
+
var func = object == null ? object : object[toKey(last(path2))];
|
|
1436
1452
|
return func == null ? undefined2 : apply(func, object, args);
|
|
1437
1453
|
}
|
|
1438
1454
|
function baseIsArguments(value) {
|
|
@@ -1588,13 +1604,13 @@ var require_lodash = __commonJS({
|
|
|
1588
1604
|
return object === source || baseIsMatch(object, source, matchData);
|
|
1589
1605
|
};
|
|
1590
1606
|
}
|
|
1591
|
-
function baseMatchesProperty(
|
|
1592
|
-
if (isKey(
|
|
1593
|
-
return matchesStrictComparable(toKey(
|
|
1607
|
+
function baseMatchesProperty(path2, srcValue) {
|
|
1608
|
+
if (isKey(path2) && isStrictComparable(srcValue)) {
|
|
1609
|
+
return matchesStrictComparable(toKey(path2), srcValue);
|
|
1594
1610
|
}
|
|
1595
1611
|
return function(object) {
|
|
1596
|
-
var objValue = get(object,
|
|
1597
|
-
return objValue === undefined2 && objValue === srcValue ? hasIn(object,
|
|
1612
|
+
var objValue = get(object, path2);
|
|
1613
|
+
return objValue === undefined2 && objValue === srcValue ? hasIn(object, path2) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);
|
|
1598
1614
|
};
|
|
1599
1615
|
}
|
|
1600
1616
|
function baseMerge(object, source, srcIndex, customizer, stack) {
|
|
@@ -1691,23 +1707,23 @@ var require_lodash = __commonJS({
|
|
|
1691
1707
|
});
|
|
1692
1708
|
}
|
|
1693
1709
|
function basePick(object, paths) {
|
|
1694
|
-
return basePickBy(object, paths, function(value,
|
|
1695
|
-
return hasIn(object,
|
|
1710
|
+
return basePickBy(object, paths, function(value, path2) {
|
|
1711
|
+
return hasIn(object, path2);
|
|
1696
1712
|
});
|
|
1697
1713
|
}
|
|
1698
1714
|
function basePickBy(object, paths, predicate) {
|
|
1699
1715
|
var index = -1, length = paths.length, result2 = {};
|
|
1700
1716
|
while (++index < length) {
|
|
1701
|
-
var
|
|
1702
|
-
if (predicate(value,
|
|
1703
|
-
baseSet(result2, castPath(
|
|
1717
|
+
var path2 = paths[index], value = baseGet(object, path2);
|
|
1718
|
+
if (predicate(value, path2)) {
|
|
1719
|
+
baseSet(result2, castPath(path2, object), value);
|
|
1704
1720
|
}
|
|
1705
1721
|
}
|
|
1706
1722
|
return result2;
|
|
1707
1723
|
}
|
|
1708
|
-
function basePropertyDeep(
|
|
1724
|
+
function basePropertyDeep(path2) {
|
|
1709
1725
|
return function(object) {
|
|
1710
|
-
return baseGet(object,
|
|
1726
|
+
return baseGet(object, path2);
|
|
1711
1727
|
};
|
|
1712
1728
|
}
|
|
1713
1729
|
function basePullAll(array, values2, iteratee2, comparator) {
|
|
@@ -1781,14 +1797,14 @@ var require_lodash = __commonJS({
|
|
|
1781
1797
|
var array = values(collection);
|
|
1782
1798
|
return shuffleSelf(array, baseClamp(n, 0, array.length));
|
|
1783
1799
|
}
|
|
1784
|
-
function baseSet(object,
|
|
1800
|
+
function baseSet(object, path2, value, customizer) {
|
|
1785
1801
|
if (!isObject(object)) {
|
|
1786
1802
|
return object;
|
|
1787
1803
|
}
|
|
1788
|
-
|
|
1789
|
-
var index = -1, length =
|
|
1804
|
+
path2 = castPath(path2, object);
|
|
1805
|
+
var index = -1, length = path2.length, lastIndex = length - 1, nested = object;
|
|
1790
1806
|
while (nested != null && ++index < length) {
|
|
1791
|
-
var key = toKey(
|
|
1807
|
+
var key = toKey(path2[index]), newValue = value;
|
|
1792
1808
|
if (key === "__proto__" || key === "constructor" || key === "prototype") {
|
|
1793
1809
|
return object;
|
|
1794
1810
|
}
|
|
@@ -1796,7 +1812,7 @@ var require_lodash = __commonJS({
|
|
|
1796
1812
|
var objValue = nested[key];
|
|
1797
1813
|
newValue = customizer ? customizer(objValue, key, nested) : undefined2;
|
|
1798
1814
|
if (newValue === undefined2) {
|
|
1799
|
-
newValue = isObject(objValue) ? objValue : isIndex(
|
|
1815
|
+
newValue = isObject(objValue) ? objValue : isIndex(path2[index + 1]) ? [] : {};
|
|
1800
1816
|
}
|
|
1801
1817
|
}
|
|
1802
1818
|
assignValue(nested, key, newValue);
|
|
@@ -1962,13 +1978,13 @@ var require_lodash = __commonJS({
|
|
|
1962
1978
|
}
|
|
1963
1979
|
return result2;
|
|
1964
1980
|
}
|
|
1965
|
-
function baseUnset(object,
|
|
1966
|
-
|
|
1967
|
-
object = parent(object,
|
|
1968
|
-
return object == null || delete object[toKey(last(
|
|
1981
|
+
function baseUnset(object, path2) {
|
|
1982
|
+
path2 = castPath(path2, object);
|
|
1983
|
+
object = parent(object, path2);
|
|
1984
|
+
return object == null || delete object[toKey(last(path2))];
|
|
1969
1985
|
}
|
|
1970
|
-
function baseUpdate(object,
|
|
1971
|
-
return baseSet(object,
|
|
1986
|
+
function baseUpdate(object, path2, updater, customizer) {
|
|
1987
|
+
return baseSet(object, path2, updater(baseGet(object, path2)), customizer);
|
|
1972
1988
|
}
|
|
1973
1989
|
function baseWhile(array, predicate, isDrop, fromRight) {
|
|
1974
1990
|
var length = array.length, index = fromRight ? length : -1;
|
|
@@ -2851,11 +2867,11 @@ var require_lodash = __commonJS({
|
|
|
2851
2867
|
var match = source.match(reWrapDetails);
|
|
2852
2868
|
return match ? match[1].split(reSplitDetails) : [];
|
|
2853
2869
|
}
|
|
2854
|
-
function hasPath(object,
|
|
2855
|
-
|
|
2856
|
-
var index = -1, length =
|
|
2870
|
+
function hasPath(object, path2, hasFunc) {
|
|
2871
|
+
path2 = castPath(path2, object);
|
|
2872
|
+
var index = -1, length = path2.length, result2 = false;
|
|
2857
2873
|
while (++index < length) {
|
|
2858
|
-
var key = toKey(
|
|
2874
|
+
var key = toKey(path2[index]);
|
|
2859
2875
|
if (!(result2 = object != null && hasFunc(object, key))) {
|
|
2860
2876
|
break;
|
|
2861
2877
|
}
|
|
@@ -3057,8 +3073,8 @@ var require_lodash = __commonJS({
|
|
|
3057
3073
|
return apply(func, this, otherArgs);
|
|
3058
3074
|
};
|
|
3059
3075
|
}
|
|
3060
|
-
function parent(object,
|
|
3061
|
-
return
|
|
3076
|
+
function parent(object, path2) {
|
|
3077
|
+
return path2.length < 2 ? object : baseGet(object, baseSlice(path2, 0, -1));
|
|
3062
3078
|
}
|
|
3063
3079
|
function reorder(array, indexes) {
|
|
3064
3080
|
var arrLength = array.length, length = nativeMin(indexes.length, arrLength), oldArray = copyArray(array);
|
|
@@ -3693,10 +3709,10 @@ var require_lodash = __commonJS({
|
|
|
3693
3709
|
}
|
|
3694
3710
|
return isString(collection) ? fromIndex <= length && collection.indexOf(value, fromIndex) > -1 : !!length && baseIndexOf(collection, value, fromIndex) > -1;
|
|
3695
3711
|
}
|
|
3696
|
-
var invokeMap = baseRest(function(collection,
|
|
3697
|
-
var index = -1, isFunc = typeof
|
|
3712
|
+
var invokeMap = baseRest(function(collection, path2, args) {
|
|
3713
|
+
var index = -1, isFunc = typeof path2 == "function", result2 = isArrayLike(collection) ? Array2(collection.length) : [];
|
|
3698
3714
|
baseEach(collection, function(value) {
|
|
3699
|
-
result2[++index] = isFunc ? apply(
|
|
3715
|
+
result2[++index] = isFunc ? apply(path2, value, args) : baseInvoke(value, path2, args);
|
|
3700
3716
|
});
|
|
3701
3717
|
return result2;
|
|
3702
3718
|
});
|
|
@@ -4348,15 +4364,15 @@ var require_lodash = __commonJS({
|
|
|
4348
4364
|
function functionsIn(object) {
|
|
4349
4365
|
return object == null ? [] : baseFunctions(object, keysIn(object));
|
|
4350
4366
|
}
|
|
4351
|
-
function get(object,
|
|
4352
|
-
var result2 = object == null ? undefined2 : baseGet(object,
|
|
4367
|
+
function get(object, path2, defaultValue) {
|
|
4368
|
+
var result2 = object == null ? undefined2 : baseGet(object, path2);
|
|
4353
4369
|
return result2 === undefined2 ? defaultValue : result2;
|
|
4354
4370
|
}
|
|
4355
|
-
function has(object,
|
|
4356
|
-
return object != null && hasPath(object,
|
|
4371
|
+
function has(object, path2) {
|
|
4372
|
+
return object != null && hasPath(object, path2, baseHas);
|
|
4357
4373
|
}
|
|
4358
|
-
function hasIn(object,
|
|
4359
|
-
return object != null && hasPath(object,
|
|
4374
|
+
function hasIn(object, path2) {
|
|
4375
|
+
return object != null && hasPath(object, path2, baseHasIn);
|
|
4360
4376
|
}
|
|
4361
4377
|
var invert = createInverter(function(result2, value, key) {
|
|
4362
4378
|
if (value != null && typeof value.toString != "function") {
|
|
@@ -4409,10 +4425,10 @@ var require_lodash = __commonJS({
|
|
|
4409
4425
|
return result2;
|
|
4410
4426
|
}
|
|
4411
4427
|
var isDeep = false;
|
|
4412
|
-
paths = arrayMap(paths, function(
|
|
4413
|
-
|
|
4414
|
-
isDeep || (isDeep =
|
|
4415
|
-
return
|
|
4428
|
+
paths = arrayMap(paths, function(path2) {
|
|
4429
|
+
path2 = castPath(path2, object);
|
|
4430
|
+
isDeep || (isDeep = path2.length > 1);
|
|
4431
|
+
return path2;
|
|
4416
4432
|
});
|
|
4417
4433
|
copyObject(object, getAllKeysIn(object), result2);
|
|
4418
4434
|
if (isDeep) {
|
|
@@ -4438,19 +4454,19 @@ var require_lodash = __commonJS({
|
|
|
4438
4454
|
return [prop];
|
|
4439
4455
|
});
|
|
4440
4456
|
predicate = getIteratee(predicate);
|
|
4441
|
-
return basePickBy(object, props, function(value,
|
|
4442
|
-
return predicate(value,
|
|
4457
|
+
return basePickBy(object, props, function(value, path2) {
|
|
4458
|
+
return predicate(value, path2[0]);
|
|
4443
4459
|
});
|
|
4444
4460
|
}
|
|
4445
|
-
function result(object,
|
|
4446
|
-
|
|
4447
|
-
var index = -1, length =
|
|
4461
|
+
function result(object, path2, defaultValue) {
|
|
4462
|
+
path2 = castPath(path2, object);
|
|
4463
|
+
var index = -1, length = path2.length;
|
|
4448
4464
|
if (!length) {
|
|
4449
4465
|
length = 1;
|
|
4450
4466
|
object = undefined2;
|
|
4451
4467
|
}
|
|
4452
4468
|
while (++index < length) {
|
|
4453
|
-
var value = object == null ? undefined2 : object[toKey(
|
|
4469
|
+
var value = object == null ? undefined2 : object[toKey(path2[index])];
|
|
4454
4470
|
if (value === undefined2) {
|
|
4455
4471
|
index = length;
|
|
4456
4472
|
value = defaultValue;
|
|
@@ -4459,12 +4475,12 @@ var require_lodash = __commonJS({
|
|
|
4459
4475
|
}
|
|
4460
4476
|
return object;
|
|
4461
4477
|
}
|
|
4462
|
-
function set(object,
|
|
4463
|
-
return object == null ? object : baseSet(object,
|
|
4478
|
+
function set(object, path2, value) {
|
|
4479
|
+
return object == null ? object : baseSet(object, path2, value);
|
|
4464
4480
|
}
|
|
4465
|
-
function setWith(object,
|
|
4481
|
+
function setWith(object, path2, value, customizer) {
|
|
4466
4482
|
customizer = typeof customizer == "function" ? customizer : undefined2;
|
|
4467
|
-
return object == null ? object : baseSet(object,
|
|
4483
|
+
return object == null ? object : baseSet(object, path2, value, customizer);
|
|
4468
4484
|
}
|
|
4469
4485
|
var toPairs = createToPairs(keys);
|
|
4470
4486
|
var toPairsIn = createToPairs(keysIn);
|
|
@@ -4486,15 +4502,15 @@ var require_lodash = __commonJS({
|
|
|
4486
4502
|
});
|
|
4487
4503
|
return accumulator;
|
|
4488
4504
|
}
|
|
4489
|
-
function unset(object,
|
|
4490
|
-
return object == null ? true : baseUnset(object,
|
|
4505
|
+
function unset(object, path2) {
|
|
4506
|
+
return object == null ? true : baseUnset(object, path2);
|
|
4491
4507
|
}
|
|
4492
|
-
function update(object,
|
|
4493
|
-
return object == null ? object : baseUpdate(object,
|
|
4508
|
+
function update(object, path2, updater) {
|
|
4509
|
+
return object == null ? object : baseUpdate(object, path2, castFunction(updater));
|
|
4494
4510
|
}
|
|
4495
|
-
function updateWith(object,
|
|
4511
|
+
function updateWith(object, path2, updater, customizer) {
|
|
4496
4512
|
customizer = typeof customizer == "function" ? customizer : undefined2;
|
|
4497
|
-
return object == null ? object : baseUpdate(object,
|
|
4513
|
+
return object == null ? object : baseUpdate(object, path2, castFunction(updater), customizer);
|
|
4498
4514
|
}
|
|
4499
4515
|
function values(object) {
|
|
4500
4516
|
return object == null ? [] : baseValues(object, keys(object));
|
|
@@ -4875,17 +4891,17 @@ var require_lodash = __commonJS({
|
|
|
4875
4891
|
function matches(source) {
|
|
4876
4892
|
return baseMatches(baseClone(source, CLONE_DEEP_FLAG));
|
|
4877
4893
|
}
|
|
4878
|
-
function matchesProperty(
|
|
4879
|
-
return baseMatchesProperty(
|
|
4894
|
+
function matchesProperty(path2, srcValue) {
|
|
4895
|
+
return baseMatchesProperty(path2, baseClone(srcValue, CLONE_DEEP_FLAG));
|
|
4880
4896
|
}
|
|
4881
|
-
var method = baseRest(function(
|
|
4897
|
+
var method = baseRest(function(path2, args) {
|
|
4882
4898
|
return function(object) {
|
|
4883
|
-
return baseInvoke(object,
|
|
4899
|
+
return baseInvoke(object, path2, args);
|
|
4884
4900
|
};
|
|
4885
4901
|
});
|
|
4886
4902
|
var methodOf = baseRest(function(object, args) {
|
|
4887
|
-
return function(
|
|
4888
|
-
return baseInvoke(object,
|
|
4903
|
+
return function(path2) {
|
|
4904
|
+
return baseInvoke(object, path2, args);
|
|
4889
4905
|
};
|
|
4890
4906
|
});
|
|
4891
4907
|
function mixin(object, source, options) {
|
|
@@ -4932,12 +4948,12 @@ var require_lodash = __commonJS({
|
|
|
4932
4948
|
var over = createOver(arrayMap);
|
|
4933
4949
|
var overEvery = createOver(arrayEvery);
|
|
4934
4950
|
var overSome = createOver(arraySome);
|
|
4935
|
-
function property(
|
|
4936
|
-
return isKey(
|
|
4951
|
+
function property(path2) {
|
|
4952
|
+
return isKey(path2) ? baseProperty(toKey(path2)) : basePropertyDeep(path2);
|
|
4937
4953
|
}
|
|
4938
4954
|
function propertyOf(object) {
|
|
4939
|
-
return function(
|
|
4940
|
-
return object == null ? undefined2 : baseGet(object,
|
|
4955
|
+
return function(path2) {
|
|
4956
|
+
return object == null ? undefined2 : baseGet(object, path2);
|
|
4941
4957
|
};
|
|
4942
4958
|
}
|
|
4943
4959
|
var range = createRange();
|
|
@@ -5333,3146 +5349,181 @@ var require_lodash = __commonJS({
|
|
|
5333
5349
|
source[methodName] = func;
|
|
5334
5350
|
}
|
|
5335
5351
|
});
|
|
5336
|
-
return source;
|
|
5337
|
-
}(), { "chain": false });
|
|
5338
|
-
lodash.VERSION = VERSION;
|
|
5339
|
-
arrayEach(["bind", "bindKey", "curry", "curryRight", "partial", "partialRight"], function(methodName) {
|
|
5340
|
-
lodash[methodName].placeholder = lodash;
|
|
5341
|
-
});
|
|
5342
|
-
arrayEach(["drop", "take"], function(methodName, index) {
|
|
5343
|
-
LazyWrapper.prototype[methodName] = function(n) {
|
|
5344
|
-
n = n === undefined2 ? 1 : nativeMax(toInteger(n), 0);
|
|
5345
|
-
var result2 = this.__filtered__ && !index ? new LazyWrapper(this) : this.clone();
|
|
5346
|
-
if (result2.__filtered__) {
|
|
5347
|
-
result2.__takeCount__ = nativeMin(n, result2.__takeCount__);
|
|
5348
|
-
} else {
|
|
5349
|
-
result2.__views__.push({
|
|
5350
|
-
"size": nativeMin(n, MAX_ARRAY_LENGTH),
|
|
5351
|
-
"type": methodName + (result2.__dir__ < 0 ? "Right" : "")
|
|
5352
|
-
});
|
|
5353
|
-
}
|
|
5354
|
-
return result2;
|
|
5355
|
-
};
|
|
5356
|
-
LazyWrapper.prototype[methodName + "Right"] = function(n) {
|
|
5357
|
-
return this.reverse()[methodName](n).reverse();
|
|
5358
|
-
};
|
|
5359
|
-
});
|
|
5360
|
-
arrayEach(["filter", "map", "takeWhile"], function(methodName, index) {
|
|
5361
|
-
var type = index + 1, isFilter = type == LAZY_FILTER_FLAG || type == LAZY_WHILE_FLAG;
|
|
5362
|
-
LazyWrapper.prototype[methodName] = function(iteratee2) {
|
|
5363
|
-
var result2 = this.clone();
|
|
5364
|
-
result2.__iteratees__.push({
|
|
5365
|
-
"iteratee": getIteratee(iteratee2, 3),
|
|
5366
|
-
"type": type
|
|
5367
|
-
});
|
|
5368
|
-
result2.__filtered__ = result2.__filtered__ || isFilter;
|
|
5369
|
-
return result2;
|
|
5370
|
-
};
|
|
5371
|
-
});
|
|
5372
|
-
arrayEach(["head", "last"], function(methodName, index) {
|
|
5373
|
-
var takeName = "take" + (index ? "Right" : "");
|
|
5374
|
-
LazyWrapper.prototype[methodName] = function() {
|
|
5375
|
-
return this[takeName](1).value()[0];
|
|
5376
|
-
};
|
|
5377
|
-
});
|
|
5378
|
-
arrayEach(["initial", "tail"], function(methodName, index) {
|
|
5379
|
-
var dropName = "drop" + (index ? "" : "Right");
|
|
5380
|
-
LazyWrapper.prototype[methodName] = function() {
|
|
5381
|
-
return this.__filtered__ ? new LazyWrapper(this) : this[dropName](1);
|
|
5382
|
-
};
|
|
5383
|
-
});
|
|
5384
|
-
LazyWrapper.prototype.compact = function() {
|
|
5385
|
-
return this.filter(identity);
|
|
5386
|
-
};
|
|
5387
|
-
LazyWrapper.prototype.find = function(predicate) {
|
|
5388
|
-
return this.filter(predicate).head();
|
|
5389
|
-
};
|
|
5390
|
-
LazyWrapper.prototype.findLast = function(predicate) {
|
|
5391
|
-
return this.reverse().find(predicate);
|
|
5392
|
-
};
|
|
5393
|
-
LazyWrapper.prototype.invokeMap = baseRest(function(path, args) {
|
|
5394
|
-
if (typeof path == "function") {
|
|
5395
|
-
return new LazyWrapper(this);
|
|
5396
|
-
}
|
|
5397
|
-
return this.map(function(value) {
|
|
5398
|
-
return baseInvoke(value, path, args);
|
|
5399
|
-
});
|
|
5400
|
-
});
|
|
5401
|
-
LazyWrapper.prototype.reject = function(predicate) {
|
|
5402
|
-
return this.filter(negate(getIteratee(predicate)));
|
|
5403
|
-
};
|
|
5404
|
-
LazyWrapper.prototype.slice = function(start, end) {
|
|
5405
|
-
start = toInteger(start);
|
|
5406
|
-
var result2 = this;
|
|
5407
|
-
if (result2.__filtered__ && (start > 0 || end < 0)) {
|
|
5408
|
-
return new LazyWrapper(result2);
|
|
5409
|
-
}
|
|
5410
|
-
if (start < 0) {
|
|
5411
|
-
result2 = result2.takeRight(-start);
|
|
5412
|
-
} else if (start) {
|
|
5413
|
-
result2 = result2.drop(start);
|
|
5414
|
-
}
|
|
5415
|
-
if (end !== undefined2) {
|
|
5416
|
-
end = toInteger(end);
|
|
5417
|
-
result2 = end < 0 ? result2.dropRight(-end) : result2.take(end - start);
|
|
5418
|
-
}
|
|
5419
|
-
return result2;
|
|
5420
|
-
};
|
|
5421
|
-
LazyWrapper.prototype.takeRightWhile = function(predicate) {
|
|
5422
|
-
return this.reverse().takeWhile(predicate).reverse();
|
|
5423
|
-
};
|
|
5424
|
-
LazyWrapper.prototype.toArray = function() {
|
|
5425
|
-
return this.take(MAX_ARRAY_LENGTH);
|
|
5426
|
-
};
|
|
5427
|
-
baseForOwn(LazyWrapper.prototype, function(func, methodName) {
|
|
5428
|
-
var checkIteratee = /^(?:filter|find|map|reject)|While$/.test(methodName), isTaker = /^(?:head|last)$/.test(methodName), lodashFunc = lodash[isTaker ? "take" + (methodName == "last" ? "Right" : "") : methodName], retUnwrapped = isTaker || /^find/.test(methodName);
|
|
5429
|
-
if (!lodashFunc) {
|
|
5430
|
-
return;
|
|
5431
|
-
}
|
|
5432
|
-
lodash.prototype[methodName] = function() {
|
|
5433
|
-
var value = this.__wrapped__, args = isTaker ? [1] : arguments, isLazy = value instanceof LazyWrapper, iteratee2 = args[0], useLazy = isLazy || isArray(value);
|
|
5434
|
-
var interceptor = function(value2) {
|
|
5435
|
-
var result3 = lodashFunc.apply(lodash, arrayPush([value2], args));
|
|
5436
|
-
return isTaker && chainAll ? result3[0] : result3;
|
|
5437
|
-
};
|
|
5438
|
-
if (useLazy && checkIteratee && typeof iteratee2 == "function" && iteratee2.length != 1) {
|
|
5439
|
-
isLazy = useLazy = false;
|
|
5440
|
-
}
|
|
5441
|
-
var chainAll = this.__chain__, isHybrid = !!this.__actions__.length, isUnwrapped = retUnwrapped && !chainAll, onlyLazy = isLazy && !isHybrid;
|
|
5442
|
-
if (!retUnwrapped && useLazy) {
|
|
5443
|
-
value = onlyLazy ? value : new LazyWrapper(this);
|
|
5444
|
-
var result2 = func.apply(value, args);
|
|
5445
|
-
result2.__actions__.push({ "func": thru, "args": [interceptor], "thisArg": undefined2 });
|
|
5446
|
-
return new LodashWrapper(result2, chainAll);
|
|
5447
|
-
}
|
|
5448
|
-
if (isUnwrapped && onlyLazy) {
|
|
5449
|
-
return func.apply(this, args);
|
|
5450
|
-
}
|
|
5451
|
-
result2 = this.thru(interceptor);
|
|
5452
|
-
return isUnwrapped ? isTaker ? result2.value()[0] : result2.value() : result2;
|
|
5453
|
-
};
|
|
5454
|
-
});
|
|
5455
|
-
arrayEach(["pop", "push", "shift", "sort", "splice", "unshift"], function(methodName) {
|
|
5456
|
-
var func = arrayProto[methodName], chainName = /^(?:push|sort|unshift)$/.test(methodName) ? "tap" : "thru", retUnwrapped = /^(?:pop|shift)$/.test(methodName);
|
|
5457
|
-
lodash.prototype[methodName] = function() {
|
|
5458
|
-
var args = arguments;
|
|
5459
|
-
if (retUnwrapped && !this.__chain__) {
|
|
5460
|
-
var value = this.value();
|
|
5461
|
-
return func.apply(isArray(value) ? value : [], args);
|
|
5462
|
-
}
|
|
5463
|
-
return this[chainName](function(value2) {
|
|
5464
|
-
return func.apply(isArray(value2) ? value2 : [], args);
|
|
5465
|
-
});
|
|
5466
|
-
};
|
|
5467
|
-
});
|
|
5468
|
-
baseForOwn(LazyWrapper.prototype, function(func, methodName) {
|
|
5469
|
-
var lodashFunc = lodash[methodName];
|
|
5470
|
-
if (lodashFunc) {
|
|
5471
|
-
var key = lodashFunc.name + "";
|
|
5472
|
-
if (!hasOwnProperty.call(realNames, key)) {
|
|
5473
|
-
realNames[key] = [];
|
|
5474
|
-
}
|
|
5475
|
-
realNames[key].push({ "name": methodName, "func": lodashFunc });
|
|
5476
|
-
}
|
|
5477
|
-
});
|
|
5478
|
-
realNames[createHybrid(undefined2, WRAP_BIND_KEY_FLAG).name] = [{
|
|
5479
|
-
"name": "wrapper",
|
|
5480
|
-
"func": undefined2
|
|
5481
|
-
}];
|
|
5482
|
-
LazyWrapper.prototype.clone = lazyClone;
|
|
5483
|
-
LazyWrapper.prototype.reverse = lazyReverse;
|
|
5484
|
-
LazyWrapper.prototype.value = lazyValue;
|
|
5485
|
-
lodash.prototype.at = wrapperAt;
|
|
5486
|
-
lodash.prototype.chain = wrapperChain;
|
|
5487
|
-
lodash.prototype.commit = wrapperCommit;
|
|
5488
|
-
lodash.prototype.next = wrapperNext;
|
|
5489
|
-
lodash.prototype.plant = wrapperPlant;
|
|
5490
|
-
lodash.prototype.reverse = wrapperReverse;
|
|
5491
|
-
lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue;
|
|
5492
|
-
lodash.prototype.first = lodash.prototype.head;
|
|
5493
|
-
if (symIterator) {
|
|
5494
|
-
lodash.prototype[symIterator] = wrapperToIterator;
|
|
5495
|
-
}
|
|
5496
|
-
return lodash;
|
|
5497
|
-
};
|
|
5498
|
-
var _2 = runInContext();
|
|
5499
|
-
if (typeof define == "function" && typeof define.amd == "object" && define.amd) {
|
|
5500
|
-
root._ = _2;
|
|
5501
|
-
define(function() {
|
|
5502
|
-
return _2;
|
|
5503
|
-
});
|
|
5504
|
-
} else if (freeModule) {
|
|
5505
|
-
(freeModule.exports = _2)._ = _2;
|
|
5506
|
-
freeExports._ = _2;
|
|
5507
|
-
} else {
|
|
5508
|
-
root._ = _2;
|
|
5509
|
-
}
|
|
5510
|
-
}).call(exports);
|
|
5511
|
-
}
|
|
5512
|
-
});
|
|
5513
|
-
|
|
5514
|
-
// ../../node_modules/lazy-seq/index.js
|
|
5515
|
-
var require_lazy_seq = __commonJS({
|
|
5516
|
-
"../../node_modules/lazy-seq/index.js"(exports, module) {
|
|
5517
|
-
"use strict";
|
|
5518
|
-
var assert = __require("assert");
|
|
5519
|
-
var nil = {};
|
|
5520
|
-
nil.isNil = true;
|
|
5521
|
-
nil.toString = function() {
|
|
5522
|
-
return "nil";
|
|
5523
|
-
};
|
|
5524
|
-
nil.length = function() {
|
|
5525
|
-
return 0;
|
|
5526
|
-
};
|
|
5527
|
-
nil.toArray = function nilToArray() {
|
|
5528
|
-
return [];
|
|
5529
|
-
};
|
|
5530
|
-
nil.fold = function nilFold(x) {
|
|
5531
|
-
return x;
|
|
5532
|
-
};
|
|
5533
|
-
nil.head = function nilHead() {
|
|
5534
|
-
throw new Error("nil.head");
|
|
5535
|
-
};
|
|
5536
|
-
nil.tail = function nilTail() {
|
|
5537
|
-
return nil;
|
|
5538
|
-
};
|
|
5539
|
-
nil.nth = function nilNth(n) {
|
|
5540
|
-
assert(typeof n === "number");
|
|
5541
|
-
throw new Error("Can't get " + n + "th value of the nil");
|
|
5542
|
-
};
|
|
5543
|
-
nil.take = function(n) {
|
|
5544
|
-
assert(typeof n === "number");
|
|
5545
|
-
return nil;
|
|
5546
|
-
};
|
|
5547
|
-
nil.drop = function(n) {
|
|
5548
|
-
assert(typeof n === "number");
|
|
5549
|
-
return nil;
|
|
5550
|
-
};
|
|
5551
|
-
nil.map = function(f) {
|
|
5552
|
-
assert(typeof f === "function");
|
|
5553
|
-
return nil;
|
|
5554
|
-
};
|
|
5555
|
-
nil.append = function(seq) {
|
|
5556
|
-
if (typeof seq === "function") {
|
|
5557
|
-
seq = seq();
|
|
5558
|
-
}
|
|
5559
|
-
if (Array.isArray(seq)) {
|
|
5560
|
-
return fromArray(seq);
|
|
5561
|
-
} else {
|
|
5562
|
-
return seq;
|
|
5563
|
-
}
|
|
5564
|
-
};
|
|
5565
|
-
nil.filter = function() {
|
|
5566
|
-
return nil;
|
|
5567
|
-
};
|
|
5568
|
-
nil.every = function() {
|
|
5569
|
-
return true;
|
|
5570
|
-
};
|
|
5571
|
-
nil.some = function() {
|
|
5572
|
-
return false;
|
|
5573
|
-
};
|
|
5574
|
-
nil.contains = function() {
|
|
5575
|
-
return false;
|
|
5576
|
-
};
|
|
5577
|
-
nil.containsNot = function() {
|
|
5578
|
-
return true;
|
|
5579
|
-
};
|
|
5580
|
-
function Cons(head, tail) {
|
|
5581
|
-
this.headValue = head;
|
|
5582
|
-
this.tailValue = tail;
|
|
5583
|
-
}
|
|
5584
|
-
Cons.prototype.isNil = false;
|
|
5585
|
-
Cons.prototype.toString = function() {
|
|
5586
|
-
return "Cons(" + this.headValue + ", " + this.tailValue + ")";
|
|
5587
|
-
};
|
|
5588
|
-
Cons.prototype.length = function() {
|
|
5589
|
-
return 1 + this.tail().length();
|
|
5590
|
-
};
|
|
5591
|
-
Cons.prototype.toArray = function() {
|
|
5592
|
-
var ptr = this;
|
|
5593
|
-
var acc = [];
|
|
5594
|
-
while (ptr !== nil) {
|
|
5595
|
-
acc.push(ptr.headValue);
|
|
5596
|
-
ptr = ptr.tail();
|
|
5597
|
-
}
|
|
5598
|
-
return acc;
|
|
5599
|
-
};
|
|
5600
|
-
Cons.prototype.fold = function consFold(x, f) {
|
|
5601
|
-
var self2 = this;
|
|
5602
|
-
return f(this.headValue, function() {
|
|
5603
|
-
return self2.tail().fold(x, f);
|
|
5604
|
-
});
|
|
5605
|
-
};
|
|
5606
|
-
Cons.prototype.head = function consHead() {
|
|
5607
|
-
return this.headValue;
|
|
5608
|
-
};
|
|
5609
|
-
Cons.prototype.tail = function consTail() {
|
|
5610
|
-
return this.tailValue;
|
|
5611
|
-
};
|
|
5612
|
-
function lazyConsForce() {
|
|
5613
|
-
var val = this.tailFn();
|
|
5614
|
-
this.tailValue = Array.isArray(val) ? fromArray(val) : val;
|
|
5615
|
-
delete this.tail;
|
|
5616
|
-
delete this.force;
|
|
5617
|
-
return this;
|
|
5618
|
-
}
|
|
5619
|
-
function lazyConsTail() {
|
|
5620
|
-
this.force();
|
|
5621
|
-
return this.tailValue;
|
|
5622
|
-
}
|
|
5623
|
-
function delay(head, tail) {
|
|
5624
|
-
assert(typeof tail === "function");
|
|
5625
|
-
head.tailFn = tail;
|
|
5626
|
-
head.tail = lazyConsTail;
|
|
5627
|
-
head.force = lazyConsForce;
|
|
5628
|
-
return head;
|
|
5629
|
-
}
|
|
5630
|
-
function cons(head, tail) {
|
|
5631
|
-
if (typeof tail === "function") {
|
|
5632
|
-
return delay(new Cons(head), tail);
|
|
5633
|
-
} else if (Array.isArray(tail)) {
|
|
5634
|
-
return delay(cons(head), function() {
|
|
5635
|
-
return fromArray(tail);
|
|
5636
|
-
});
|
|
5637
|
-
} else {
|
|
5638
|
-
return new Cons(head, tail);
|
|
5639
|
-
}
|
|
5640
|
-
}
|
|
5641
|
-
Cons.prototype.nth = function consNth(n) {
|
|
5642
|
-
assert(typeof n === "number");
|
|
5643
|
-
return n === 0 ? this.headValue : this.tail().nth(n - 1);
|
|
5644
|
-
};
|
|
5645
|
-
Cons.prototype.take = function consTake(n) {
|
|
5646
|
-
assert(typeof n === "number");
|
|
5647
|
-
var that = this;
|
|
5648
|
-
return n === 0 ? nil : cons(this.headValue, function() {
|
|
5649
|
-
return that.tail().take(n - 1);
|
|
5650
|
-
});
|
|
5651
|
-
};
|
|
5652
|
-
Cons.prototype.drop = function consDrop(n) {
|
|
5653
|
-
assert(typeof n === "number");
|
|
5654
|
-
return n === 0 ? this : this.tail().drop(n - 1);
|
|
5655
|
-
};
|
|
5656
|
-
Cons.prototype.map = function consMap(f) {
|
|
5657
|
-
assert(typeof f === "function");
|
|
5658
|
-
var that = this;
|
|
5659
|
-
return cons(f(that.headValue), function() {
|
|
5660
|
-
return that.tail().map(f);
|
|
5661
|
-
});
|
|
5662
|
-
};
|
|
5663
|
-
Cons.prototype.append = function consAppend(seq) {
|
|
5664
|
-
if (seq === nil || Array.isArray(seq) && seq.length === 0) {
|
|
5665
|
-
return this;
|
|
5666
|
-
}
|
|
5667
|
-
var that = this;
|
|
5668
|
-
return cons(that.headValue, function() {
|
|
5669
|
-
return that.tail().append(seq);
|
|
5670
|
-
});
|
|
5671
|
-
};
|
|
5672
|
-
Cons.prototype.filter = function consFilter(p) {
|
|
5673
|
-
assert(typeof p === "function");
|
|
5674
|
-
var that = this;
|
|
5675
|
-
if (p(that.headValue)) {
|
|
5676
|
-
return cons(that.headValue, function() {
|
|
5677
|
-
return that.tail().filter(p);
|
|
5678
|
-
});
|
|
5679
|
-
} else {
|
|
5680
|
-
return that.tail().filter(p);
|
|
5681
|
-
}
|
|
5682
|
-
};
|
|
5683
|
-
Cons.prototype.every = function consEvery(p) {
|
|
5684
|
-
p = p || function(x) {
|
|
5685
|
-
return x;
|
|
5686
|
-
};
|
|
5687
|
-
assert(typeof p === "function");
|
|
5688
|
-
var that = this;
|
|
5689
|
-
var pHead = p(that.headValue);
|
|
5690
|
-
if (!pHead) {
|
|
5691
|
-
return pHead;
|
|
5692
|
-
} else {
|
|
5693
|
-
return that.tail().every(p);
|
|
5694
|
-
}
|
|
5695
|
-
};
|
|
5696
|
-
Cons.prototype.some = function consSome(p) {
|
|
5697
|
-
p = p || function(x) {
|
|
5698
|
-
return x;
|
|
5699
|
-
};
|
|
5700
|
-
assert(typeof p === "function");
|
|
5701
|
-
var that = this;
|
|
5702
|
-
var pHead = p(that.headValue);
|
|
5703
|
-
if (pHead) {
|
|
5704
|
-
return pHead;
|
|
5705
|
-
} else {
|
|
5706
|
-
return that.tail().some(p);
|
|
5707
|
-
}
|
|
5708
|
-
};
|
|
5709
|
-
Cons.prototype.contains = function consContains(x) {
|
|
5710
|
-
var that = this;
|
|
5711
|
-
if (x === that.headValue) {
|
|
5712
|
-
return true;
|
|
5713
|
-
} else {
|
|
5714
|
-
return that.tail().contains(x);
|
|
5715
|
-
}
|
|
5716
|
-
};
|
|
5717
|
-
Cons.prototype.containsNot = function consContainsNot(x) {
|
|
5718
|
-
var that = this;
|
|
5719
|
-
if (x === that.headValue) {
|
|
5720
|
-
return false;
|
|
5721
|
-
} else {
|
|
5722
|
-
return that.tail().containsNot(x);
|
|
5723
|
-
}
|
|
5724
|
-
};
|
|
5725
|
-
function fromArrayIter(arr, n) {
|
|
5726
|
-
if (n < arr.length) {
|
|
5727
|
-
return cons(arr[n], function() {
|
|
5728
|
-
return fromArrayIter(arr, n + 1);
|
|
5729
|
-
});
|
|
5730
|
-
} else {
|
|
5731
|
-
return nil;
|
|
5732
|
-
}
|
|
5733
|
-
}
|
|
5734
|
-
function fromArray(arr) {
|
|
5735
|
-
assert(Array.isArray(arr));
|
|
5736
|
-
return fromArrayIter(arr, 0);
|
|
5737
|
-
}
|
|
5738
|
-
function singleton(x) {
|
|
5739
|
-
return fromArray([x]);
|
|
5740
|
-
}
|
|
5741
|
-
function append() {
|
|
5742
|
-
var acc = nil;
|
|
5743
|
-
for (var i = 0; i < arguments.length; i++) {
|
|
5744
|
-
acc = acc.append(arguments[i]);
|
|
5745
|
-
}
|
|
5746
|
-
return acc;
|
|
5747
|
-
}
|
|
5748
|
-
function iterate(x, f) {
|
|
5749
|
-
return cons(x, function() {
|
|
5750
|
-
return iterate(f(x), f);
|
|
5751
|
-
});
|
|
5752
|
-
}
|
|
5753
|
-
function listFold(list, z, f, n) {
|
|
5754
|
-
if (n < list.length) {
|
|
5755
|
-
return f(list[n], function() {
|
|
5756
|
-
return listFold(list, z, f, n + 1);
|
|
5757
|
-
});
|
|
5758
|
-
} else {
|
|
5759
|
-
return z;
|
|
5760
|
-
}
|
|
5761
|
-
}
|
|
5762
|
-
function fold(list, z, f) {
|
|
5763
|
-
if (Array.isArray(list)) {
|
|
5764
|
-
return listFold(list, z, f, 0);
|
|
5765
|
-
} else {
|
|
5766
|
-
return list.fold(z, f);
|
|
5767
|
-
}
|
|
5768
|
-
}
|
|
5769
|
-
module.exports = {
|
|
5770
|
-
nil,
|
|
5771
|
-
cons,
|
|
5772
|
-
append,
|
|
5773
|
-
fromArray,
|
|
5774
|
-
singleton,
|
|
5775
|
-
iterate,
|
|
5776
|
-
fold
|
|
5777
|
-
};
|
|
5778
|
-
}
|
|
5779
|
-
});
|
|
5780
|
-
|
|
5781
|
-
// ../../node_modules/jsverify/lib/arbitraryAssert.js
|
|
5782
|
-
var require_arbitraryAssert = __commonJS({
|
|
5783
|
-
"../../node_modules/jsverify/lib/arbitraryAssert.js"(exports, module) {
|
|
5784
|
-
"use strict";
|
|
5785
|
-
var assert = __require("assert");
|
|
5786
|
-
function arbitraryAssert(arb) {
|
|
5787
|
-
assert(arb !== void 0 && arb !== null && typeof arb === "object", "arb should be an object");
|
|
5788
|
-
assert(
|
|
5789
|
-
typeof arb.generator === "function" && typeof arb.generator.map === "function",
|
|
5790
|
-
"arb.generator should be a function"
|
|
5791
|
-
);
|
|
5792
|
-
assert(
|
|
5793
|
-
typeof arb.shrink === "function" && typeof arb.shrink.smap === "function",
|
|
5794
|
-
"arb.shrink should be a function"
|
|
5795
|
-
);
|
|
5796
|
-
assert(typeof arb.show === "function", "arb.show should be a function");
|
|
5797
|
-
assert(typeof arb.smap === "function", "arb.smap should be a function");
|
|
5798
|
-
}
|
|
5799
|
-
module.exports = arbitraryAssert;
|
|
5800
|
-
}
|
|
5801
|
-
});
|
|
5802
|
-
|
|
5803
|
-
// ../../node_modules/jsverify/lib/utils.js
|
|
5804
|
-
var require_utils = __commonJS({
|
|
5805
|
-
"../../node_modules/jsverify/lib/utils.js"(exports, module) {
|
|
5806
|
-
"use strict";
|
|
5807
|
-
var isArray = Array.isArray;
|
|
5808
|
-
function isObject(o) {
|
|
5809
|
-
return new Object(o) === o;
|
|
5810
|
-
}
|
|
5811
|
-
function isNaN2(n) {
|
|
5812
|
-
return typeof n === "number" && n !== n;
|
|
5813
|
-
}
|
|
5814
|
-
function sort(arr) {
|
|
5815
|
-
var res = arr.slice();
|
|
5816
|
-
res.sort();
|
|
5817
|
-
return res;
|
|
5818
|
-
}
|
|
5819
|
-
function isEqual(a, b) {
|
|
5820
|
-
var i;
|
|
5821
|
-
if (isNaN2(a) && isNaN2(b)) {
|
|
5822
|
-
return true;
|
|
5823
|
-
}
|
|
5824
|
-
if (a === b) {
|
|
5825
|
-
return true;
|
|
5826
|
-
} else if (isArray(a) && isArray(b) && a.length === b.length) {
|
|
5827
|
-
for (i = 0; i < a.length; i++) {
|
|
5828
|
-
if (!isEqual(a[i], b[i])) {
|
|
5829
|
-
return false;
|
|
5830
|
-
}
|
|
5831
|
-
}
|
|
5832
|
-
return true;
|
|
5833
|
-
} else if (isObject(a) && isObject(b) && !isArray(a) && !isArray(b)) {
|
|
5834
|
-
var akeys = Object.keys(a);
|
|
5835
|
-
var bkeys = Object.keys(b);
|
|
5836
|
-
if (!isEqual(sort(akeys), sort(bkeys))) {
|
|
5837
|
-
return false;
|
|
5838
|
-
}
|
|
5839
|
-
for (i = 0; i < akeys.length; i++) {
|
|
5840
|
-
if (!isEqual(a[akeys[i]], b[akeys[i]])) {
|
|
5841
|
-
return false;
|
|
5842
|
-
}
|
|
5843
|
-
}
|
|
5844
|
-
return true;
|
|
5845
|
-
}
|
|
5846
|
-
return false;
|
|
5847
|
-
}
|
|
5848
|
-
function isApproxEqual(x, y, opts) {
|
|
5849
|
-
opts = opts || {};
|
|
5850
|
-
var fnEqual = opts.fnEqual !== false;
|
|
5851
|
-
var depth = opts.depth || 5;
|
|
5852
|
-
var state = [];
|
|
5853
|
-
function loop(a, b, n) {
|
|
5854
|
-
if (isNaN2(a) && isNaN2(b)) {
|
|
5855
|
-
return true;
|
|
5856
|
-
}
|
|
5857
|
-
if (a === b) {
|
|
5858
|
-
return true;
|
|
5859
|
-
}
|
|
5860
|
-
if (n >= depth) {
|
|
5861
|
-
return true;
|
|
5862
|
-
}
|
|
5863
|
-
var i;
|
|
5864
|
-
for (i = 0; i < state.length; i++) {
|
|
5865
|
-
if (state[i][0] === a && state[i][1] === b) {
|
|
5866
|
-
return true;
|
|
5867
|
-
}
|
|
5868
|
-
}
|
|
5869
|
-
state.push([a, b]);
|
|
5870
|
-
if (typeof a === "function" && typeof b === "function") {
|
|
5871
|
-
return fnEqual;
|
|
5872
|
-
}
|
|
5873
|
-
if (isArray(a) && isArray(b) && a.length === b.length) {
|
|
5874
|
-
for (i = 0; i < a.length; i++) {
|
|
5875
|
-
if (!loop(a[i], b[i], n + 1)) {
|
|
5876
|
-
return false;
|
|
5877
|
-
}
|
|
5878
|
-
}
|
|
5879
|
-
return true;
|
|
5880
|
-
} else if (isObject(a) && isObject(b) && !isArray(a) && !isArray(b)) {
|
|
5881
|
-
var akeys = Object.keys(a);
|
|
5882
|
-
var bkeys = Object.keys(b);
|
|
5883
|
-
if (!loop(sort(akeys), sort(bkeys), n + 1)) {
|
|
5884
|
-
return false;
|
|
5885
|
-
}
|
|
5886
|
-
for (i = 0; i < akeys.length; i++) {
|
|
5887
|
-
if (!loop(a[akeys[i]], b[akeys[i]], n + 1)) {
|
|
5888
|
-
return false;
|
|
5889
|
-
}
|
|
5890
|
-
}
|
|
5891
|
-
return true;
|
|
5892
|
-
}
|
|
5893
|
-
return false;
|
|
5894
|
-
}
|
|
5895
|
-
return loop(x, y, 0);
|
|
5896
|
-
}
|
|
5897
|
-
function identity(x) {
|
|
5898
|
-
return x;
|
|
5899
|
-
}
|
|
5900
|
-
function pluck(arr, key) {
|
|
5901
|
-
return arr.map(function(e) {
|
|
5902
|
-
return e[key];
|
|
5903
|
-
});
|
|
5904
|
-
}
|
|
5905
|
-
function force(arb) {
|
|
5906
|
-
return typeof arb === "function" ? arb() : arb;
|
|
5907
|
-
}
|
|
5908
|
-
function merge() {
|
|
5909
|
-
var res = {};
|
|
5910
|
-
for (var i = 0; i < arguments.length; i++) {
|
|
5911
|
-
var arg = arguments[i];
|
|
5912
|
-
var keys = Object.keys(arg);
|
|
5913
|
-
for (var j = 0; j < keys.length; j++) {
|
|
5914
|
-
var key = keys[j];
|
|
5915
|
-
res[key] = arg[key];
|
|
5916
|
-
}
|
|
5917
|
-
}
|
|
5918
|
-
return res;
|
|
5919
|
-
}
|
|
5920
|
-
function div2(x) {
|
|
5921
|
-
return Math.floor(x / 2);
|
|
5922
|
-
}
|
|
5923
|
-
function log2(x) {
|
|
5924
|
-
return Math.log(x) / Math.log(2);
|
|
5925
|
-
}
|
|
5926
|
-
function ilog2(x) {
|
|
5927
|
-
return x <= 0 ? 0 : Math.floor(log2(x));
|
|
5928
|
-
}
|
|
5929
|
-
function curriedN(n) {
|
|
5930
|
-
var n1 = n - 1;
|
|
5931
|
-
return function curriedNInstance(result, args) {
|
|
5932
|
-
if (args.length === n) {
|
|
5933
|
-
return result(args[n1]);
|
|
5934
|
-
} else {
|
|
5935
|
-
return result;
|
|
5936
|
-
}
|
|
5937
|
-
};
|
|
5938
|
-
}
|
|
5939
|
-
var curried22 = curriedN(2);
|
|
5940
|
-
var curried3 = curriedN(3);
|
|
5941
|
-
function charArrayToString(arr) {
|
|
5942
|
-
return arr.join("");
|
|
5943
|
-
}
|
|
5944
|
-
function stringToCharArray(str) {
|
|
5945
|
-
return str.split("");
|
|
5946
|
-
}
|
|
5947
|
-
function pairArrayToDict(arrayOfPairs) {
|
|
5948
|
-
var res = {};
|
|
5949
|
-
arrayOfPairs.forEach(function(p) {
|
|
5950
|
-
res[p[0]] = p[1];
|
|
5951
|
-
});
|
|
5952
|
-
return res;
|
|
5953
|
-
}
|
|
5954
|
-
function dictToPairArray(m) {
|
|
5955
|
-
var res = [];
|
|
5956
|
-
Object.keys(m).forEach(function(k) {
|
|
5957
|
-
res.push([k, m[k]]);
|
|
5958
|
-
});
|
|
5959
|
-
return res;
|
|
5960
|
-
}
|
|
5961
|
-
function partition(arr, pred) {
|
|
5962
|
-
var truthy = [];
|
|
5963
|
-
var falsy = [];
|
|
5964
|
-
for (var i = 0; i < arr.length; i++) {
|
|
5965
|
-
var x = arr[i];
|
|
5966
|
-
if (pred(x)) {
|
|
5967
|
-
truthy.push(x);
|
|
5968
|
-
} else {
|
|
5969
|
-
falsy.push(x);
|
|
5970
|
-
}
|
|
5971
|
-
}
|
|
5972
|
-
return [truthy, falsy];
|
|
5973
|
-
}
|
|
5974
|
-
module.exports = {
|
|
5975
|
-
isArray,
|
|
5976
|
-
isObject,
|
|
5977
|
-
isEqual,
|
|
5978
|
-
isApproxEqual,
|
|
5979
|
-
identity,
|
|
5980
|
-
pluck,
|
|
5981
|
-
force,
|
|
5982
|
-
merge,
|
|
5983
|
-
div2,
|
|
5984
|
-
ilog2,
|
|
5985
|
-
curried2: curried22,
|
|
5986
|
-
curried3,
|
|
5987
|
-
charArrayToString,
|
|
5988
|
-
stringToCharArray,
|
|
5989
|
-
pairArrayToDict,
|
|
5990
|
-
dictToPairArray,
|
|
5991
|
-
partition
|
|
5992
|
-
};
|
|
5993
|
-
}
|
|
5994
|
-
});
|
|
5995
|
-
|
|
5996
|
-
// ../../node_modules/jsverify/lib/show.js
|
|
5997
|
-
var require_show = __commonJS({
|
|
5998
|
-
"../../node_modules/jsverify/lib/show.js"(exports, module) {
|
|
5999
|
-
"use strict";
|
|
6000
|
-
var utils = require_utils();
|
|
6001
|
-
function showDef(obj) {
|
|
6002
|
-
return JSON.stringify(obj);
|
|
6003
|
-
}
|
|
6004
|
-
function showPair(showA, showB) {
|
|
6005
|
-
var result = function(p) {
|
|
6006
|
-
return "(" + showA(p[0]) + ", " + showB(p[1]) + ")";
|
|
6007
|
-
};
|
|
6008
|
-
return utils.curried3(result, arguments);
|
|
6009
|
-
}
|
|
6010
|
-
function showEither(showA, showB) {
|
|
6011
|
-
function showLeft(value) {
|
|
6012
|
-
return "Left(" + showA(value) + ")";
|
|
6013
|
-
}
|
|
6014
|
-
function showRight(value) {
|
|
6015
|
-
return "Right(" + showB(value) + ")";
|
|
6016
|
-
}
|
|
6017
|
-
var result = function(e) {
|
|
6018
|
-
return e.either(showLeft, showRight);
|
|
6019
|
-
};
|
|
6020
|
-
return utils.curried3(result, arguments);
|
|
6021
|
-
}
|
|
6022
|
-
function showTuple(shows) {
|
|
6023
|
-
var result = function(objs) {
|
|
6024
|
-
var strs = [];
|
|
6025
|
-
for (var i = 0; i < shows.length; i++) {
|
|
6026
|
-
strs.push(shows[i](objs[i]));
|
|
6027
|
-
}
|
|
6028
|
-
return strs.join("; ");
|
|
6029
|
-
};
|
|
6030
|
-
return utils.curried2(result, arguments);
|
|
6031
|
-
}
|
|
6032
|
-
function showSum(shows) {
|
|
6033
|
-
var result = function(sum) {
|
|
6034
|
-
return sum.fold(function(idx, n, value) {
|
|
6035
|
-
return "Sum(" + idx + "/" + n + ": " + shows[idx](value) + ")";
|
|
6036
|
-
});
|
|
6037
|
-
};
|
|
6038
|
-
return utils.curried2(result, arguments);
|
|
6039
|
-
}
|
|
6040
|
-
function showArray(show) {
|
|
6041
|
-
var result = function(arr) {
|
|
6042
|
-
return "[" + arr.map(show).join(", ") + "]";
|
|
6043
|
-
};
|
|
6044
|
-
return utils.curried2(result, arguments);
|
|
6045
|
-
}
|
|
6046
|
-
module.exports = {
|
|
6047
|
-
def: showDef,
|
|
6048
|
-
pair: showPair,
|
|
6049
|
-
either: showEither,
|
|
6050
|
-
tuple: showTuple,
|
|
6051
|
-
sum: showSum,
|
|
6052
|
-
array: showArray
|
|
6053
|
-
};
|
|
6054
|
-
}
|
|
6055
|
-
});
|
|
6056
|
-
|
|
6057
|
-
// ../../node_modules/jsverify/lib/arbitraryBless.js
|
|
6058
|
-
var require_arbitraryBless = __commonJS({
|
|
6059
|
-
"../../node_modules/jsverify/lib/arbitraryBless.js"(exports, module) {
|
|
6060
|
-
"use strict";
|
|
6061
|
-
var show = require_show();
|
|
6062
|
-
function arbitraryProtoSMap(f, g, newShow) {
|
|
6063
|
-
var arb = this;
|
|
6064
|
-
return arbitraryBless({
|
|
6065
|
-
generator: arb.generator.map(f),
|
|
6066
|
-
shrink: arb.shrink.smap(f, g),
|
|
6067
|
-
show: newShow || show.def
|
|
6068
|
-
});
|
|
6069
|
-
}
|
|
6070
|
-
function arbitraryBless(arb) {
|
|
6071
|
-
arb.smap = arbitraryProtoSMap;
|
|
6072
|
-
return arb;
|
|
6073
|
-
}
|
|
6074
|
-
module.exports = arbitraryBless;
|
|
6075
|
-
}
|
|
6076
|
-
});
|
|
6077
|
-
|
|
6078
|
-
// ../../node_modules/jsverify/lib/either.js
|
|
6079
|
-
var require_either = __commonJS({
|
|
6080
|
-
"../../node_modules/jsverify/lib/either.js"(exports, module) {
|
|
6081
|
-
"use strict";
|
|
6082
|
-
var assert = __require("assert");
|
|
6083
|
-
function Left(value) {
|
|
6084
|
-
this.value = value;
|
|
6085
|
-
}
|
|
6086
|
-
function Right(value) {
|
|
6087
|
-
this.value = value;
|
|
6088
|
-
}
|
|
6089
|
-
function left(value) {
|
|
6090
|
-
return new Left(value);
|
|
6091
|
-
}
|
|
6092
|
-
function right(value) {
|
|
6093
|
-
return new Right(value);
|
|
6094
|
-
}
|
|
6095
|
-
Left.prototype.either = function lefteither(l) {
|
|
6096
|
-
return l(this.value);
|
|
6097
|
-
};
|
|
6098
|
-
Right.prototype.either = function righteither(l, r) {
|
|
6099
|
-
return r(this.value);
|
|
6100
|
-
};
|
|
6101
|
-
Left.prototype.isEqual = function leftIsEqual(other) {
|
|
6102
|
-
assert(other instanceof Left || other instanceof Right, "isEqual: `other` parameter should be either");
|
|
6103
|
-
return other instanceof Left && this.value === other.value;
|
|
6104
|
-
};
|
|
6105
|
-
Right.prototype.isEqual = function rightIsEqual(other) {
|
|
6106
|
-
assert(other instanceof Left || other instanceof Right, "isEqual: `other` parameter should be either");
|
|
6107
|
-
return other instanceof Right && this.value === other.value;
|
|
6108
|
-
};
|
|
6109
|
-
Left.prototype.bimap = function leftBimap(f) {
|
|
6110
|
-
return new Left(f(this.value));
|
|
6111
|
-
};
|
|
6112
|
-
Right.prototype.bimap = function rightBimap(f, g) {
|
|
6113
|
-
return new Right(g(this.value));
|
|
6114
|
-
};
|
|
6115
|
-
Left.prototype.first = function leftFirst(f) {
|
|
6116
|
-
return new Left(f(this.value));
|
|
6117
|
-
};
|
|
6118
|
-
Right.prototype.first = function rightFirst() {
|
|
6119
|
-
return this;
|
|
6120
|
-
};
|
|
6121
|
-
Left.prototype.second = function leftSecond() {
|
|
6122
|
-
return this;
|
|
6123
|
-
};
|
|
6124
|
-
Right.prototype.second = function rightSecond(g) {
|
|
6125
|
-
return new Right(g(this.value));
|
|
6126
|
-
};
|
|
6127
|
-
module.exports = {
|
|
6128
|
-
left,
|
|
6129
|
-
right
|
|
6130
|
-
};
|
|
6131
|
-
}
|
|
6132
|
-
});
|
|
6133
|
-
|
|
6134
|
-
// ../../node_modules/rc4/rc4.js
|
|
6135
|
-
var require_rc4 = __commonJS({
|
|
6136
|
-
"../../node_modules/rc4/rc4.js"(exports, module) {
|
|
6137
|
-
"use strict";
|
|
6138
|
-
function isInteger(n) {
|
|
6139
|
-
return parseInt(n, 10) === n;
|
|
6140
|
-
}
|
|
6141
|
-
function createRC4(N) {
|
|
6142
|
-
function identityPermutation() {
|
|
6143
|
-
var s = new Array(N);
|
|
6144
|
-
for (var i = 0; i < N; i++) {
|
|
6145
|
-
s[i] = i;
|
|
6146
|
-
}
|
|
6147
|
-
return s;
|
|
6148
|
-
}
|
|
6149
|
-
function seed(key) {
|
|
6150
|
-
if (key === void 0) {
|
|
6151
|
-
key = new Array(N);
|
|
6152
|
-
for (var k = 0; k < N; k++) {
|
|
6153
|
-
key[k] = Math.floor(Math.random() * N);
|
|
6154
|
-
}
|
|
6155
|
-
} else if (typeof key === "string") {
|
|
6156
|
-
key = "" + key;
|
|
6157
|
-
key = key.split("").map(function(c) {
|
|
6158
|
-
return c.charCodeAt(0) % N;
|
|
6159
|
-
});
|
|
6160
|
-
} else if (Array.isArray(key)) {
|
|
6161
|
-
if (!key.every(function(v) {
|
|
6162
|
-
return typeof v === "number" && v === (v | 0);
|
|
6163
|
-
})) {
|
|
6164
|
-
throw new TypeError("invalid seed key specified: not array of integers");
|
|
6165
|
-
}
|
|
6166
|
-
} else {
|
|
6167
|
-
throw new TypeError("invalid seed key specified");
|
|
6168
|
-
}
|
|
6169
|
-
var keylen = key.length;
|
|
6170
|
-
var s = identityPermutation();
|
|
6171
|
-
var j = 0;
|
|
6172
|
-
for (var i = 0; i < N; i++) {
|
|
6173
|
-
j = (j + s[i] + key[i % keylen]) % N;
|
|
6174
|
-
var tmp = s[i];
|
|
6175
|
-
s[i] = s[j];
|
|
6176
|
-
s[j] = tmp;
|
|
6177
|
-
}
|
|
6178
|
-
return s;
|
|
6179
|
-
}
|
|
6180
|
-
function RC42(key) {
|
|
6181
|
-
this.s = seed(key);
|
|
6182
|
-
this.i = 0;
|
|
6183
|
-
this.j = 0;
|
|
6184
|
-
}
|
|
6185
|
-
RC42.prototype.randomNative = function() {
|
|
6186
|
-
this.i = (this.i + 1) % N;
|
|
6187
|
-
this.j = (this.j + this.s[this.i]) % N;
|
|
6188
|
-
var tmp = this.s[this.i];
|
|
6189
|
-
this.s[this.i] = this.s[this.j];
|
|
6190
|
-
this.s[this.j] = tmp;
|
|
6191
|
-
var k = this.s[(this.s[this.i] + this.s[this.j]) % N];
|
|
6192
|
-
return k;
|
|
6193
|
-
};
|
|
6194
|
-
RC42.prototype.randomUInt32 = function() {
|
|
6195
|
-
var a = this.randomByte();
|
|
6196
|
-
var b = this.randomByte();
|
|
6197
|
-
var c = this.randomByte();
|
|
6198
|
-
var d = this.randomByte();
|
|
6199
|
-
return ((a * 256 + b) * 256 + c) * 256 + d;
|
|
6200
|
-
};
|
|
6201
|
-
RC42.prototype.randomFloat = function() {
|
|
6202
|
-
return this.randomUInt32() / 4294967296;
|
|
6203
|
-
};
|
|
6204
|
-
RC42.prototype.random = function() {
|
|
6205
|
-
var a;
|
|
6206
|
-
var b;
|
|
6207
|
-
if (arguments.length === 1) {
|
|
6208
|
-
a = 0;
|
|
6209
|
-
b = arguments[0];
|
|
6210
|
-
} else if (arguments.length === 2) {
|
|
6211
|
-
a = arguments[0];
|
|
6212
|
-
b = arguments[1];
|
|
6213
|
-
} else {
|
|
6214
|
-
throw new TypeError("random takes one or two integer arguments");
|
|
6215
|
-
}
|
|
6216
|
-
if (!isInteger(a) || !isInteger(b)) {
|
|
6217
|
-
throw new TypeError("random takes one or two integer arguments");
|
|
6218
|
-
}
|
|
6219
|
-
return a + this.randomUInt32() % (b - a + 1);
|
|
6220
|
-
};
|
|
6221
|
-
RC42.prototype.currentState = function() {
|
|
6222
|
-
return {
|
|
6223
|
-
i: this.i,
|
|
6224
|
-
j: this.j,
|
|
6225
|
-
s: this.s.slice()
|
|
6226
|
-
// copy
|
|
6227
|
-
};
|
|
6228
|
-
};
|
|
6229
|
-
RC42.prototype.setState = function(state) {
|
|
6230
|
-
var s = state.s;
|
|
6231
|
-
var i = state.i;
|
|
6232
|
-
var j = state.j;
|
|
6233
|
-
if (!(i === (i | 0) && 0 <= i && i < N)) {
|
|
6234
|
-
throw new Error("state.i should be integer [0, " + (N - 1) + "]");
|
|
6235
|
-
}
|
|
6236
|
-
if (!(j === (j | 0) && 0 <= j && j < N)) {
|
|
6237
|
-
throw new Error("state.j should be integer [0, " + (N - 1) + "]");
|
|
6238
|
-
}
|
|
6239
|
-
if (!Array.isArray(s) || s.length !== N) {
|
|
6240
|
-
throw new Error("state should be array of length " + N);
|
|
6241
|
-
}
|
|
6242
|
-
for (var k = 0; k < N; k++) {
|
|
6243
|
-
if (s.indexOf(k) === -1) {
|
|
6244
|
-
throw new Error("state should be permutation of 0.." + (N - 1) + ": " + k + " is missing");
|
|
6245
|
-
}
|
|
6246
|
-
}
|
|
6247
|
-
this.i = i;
|
|
6248
|
-
this.j = j;
|
|
6249
|
-
this.s = s.slice();
|
|
6250
|
-
};
|
|
6251
|
-
return RC42;
|
|
6252
|
-
}
|
|
6253
|
-
var RC4 = createRC4(256);
|
|
6254
|
-
RC4.prototype.randomByte = RC4.prototype.randomNative;
|
|
6255
|
-
var RC4small = createRC4(16);
|
|
6256
|
-
RC4small.prototype.randomByte = function() {
|
|
6257
|
-
var a = this.randomNative();
|
|
6258
|
-
var b = this.randomNative();
|
|
6259
|
-
return a * 16 + b;
|
|
6260
|
-
};
|
|
6261
|
-
var ordA = "a".charCodeAt(0);
|
|
6262
|
-
var ord0 = "0".charCodeAt(0);
|
|
6263
|
-
function toHex(n) {
|
|
6264
|
-
return n < 10 ? String.fromCharCode(ord0 + n) : String.fromCharCode(ordA + n - 10);
|
|
6265
|
-
}
|
|
6266
|
-
function fromHex(c) {
|
|
6267
|
-
return parseInt(c, 16);
|
|
6268
|
-
}
|
|
6269
|
-
RC4small.prototype.currentStateString = function() {
|
|
6270
|
-
var state = this.currentState();
|
|
6271
|
-
var i = toHex(state.i);
|
|
6272
|
-
var j = toHex(state.j);
|
|
6273
|
-
var res = i + j + state.s.map(toHex).join("");
|
|
6274
|
-
return res;
|
|
6275
|
-
};
|
|
6276
|
-
RC4small.prototype.setStateString = function(stateString) {
|
|
6277
|
-
if (!stateString.match(/^[0-9a-f]{18}$/)) {
|
|
6278
|
-
throw new TypeError("RC4small stateString should be 18 hex character string");
|
|
6279
|
-
}
|
|
6280
|
-
var i = fromHex(stateString[0]);
|
|
6281
|
-
var j = fromHex(stateString[1]);
|
|
6282
|
-
var s = stateString.split("").slice(2).map(fromHex);
|
|
6283
|
-
this.setState({
|
|
6284
|
-
i,
|
|
6285
|
-
j,
|
|
6286
|
-
s
|
|
6287
|
-
});
|
|
6288
|
-
};
|
|
6289
|
-
RC4.RC4small = RC4small;
|
|
6290
|
-
module.exports = RC4;
|
|
6291
|
-
}
|
|
6292
|
-
});
|
|
6293
|
-
|
|
6294
|
-
// ../../node_modules/jsverify/lib/random.js
|
|
6295
|
-
var require_random = __commonJS({
|
|
6296
|
-
"../../node_modules/jsverify/lib/random.js"(exports, module) {
|
|
6297
|
-
"use strict";
|
|
6298
|
-
var rc4 = new (require_rc4()).RC4small();
|
|
6299
|
-
function randomInteger(min, max) {
|
|
6300
|
-
return rc4.random(min, max);
|
|
6301
|
-
}
|
|
6302
|
-
function randomNumber(min, max) {
|
|
6303
|
-
return rc4.randomFloat() * (max - min) + min;
|
|
6304
|
-
}
|
|
6305
|
-
randomInteger.integer = randomInteger;
|
|
6306
|
-
randomInteger.number = randomNumber;
|
|
6307
|
-
randomInteger.currentStateString = rc4.currentStateString.bind(rc4);
|
|
6308
|
-
randomInteger.setStateString = rc4.setStateString.bind(rc4);
|
|
6309
|
-
module.exports = randomInteger;
|
|
6310
|
-
}
|
|
6311
|
-
});
|
|
6312
|
-
|
|
6313
|
-
// ../../node_modules/jsverify/lib/sum.js
|
|
6314
|
-
var require_sum = __commonJS({
|
|
6315
|
-
"../../node_modules/jsverify/lib/sum.js"(exports, module) {
|
|
6316
|
-
"use strict";
|
|
6317
|
-
var assert = __require("assert");
|
|
6318
|
-
function Addend(idx, len, value) {
|
|
6319
|
-
assert(len > 0, "Addend: 0 < len");
|
|
6320
|
-
assert(idx >= 0 && idx < len, "Addend: 0 <= idx < len");
|
|
6321
|
-
this.idx = idx;
|
|
6322
|
-
this.len = len;
|
|
6323
|
-
this.value = value;
|
|
6324
|
-
}
|
|
6325
|
-
function addend(idx, len, value) {
|
|
6326
|
-
return new Addend(idx, len, value);
|
|
6327
|
-
}
|
|
6328
|
-
Addend.prototype.fold = function(f) {
|
|
6329
|
-
return f(this.idx, this.len, this.value);
|
|
6330
|
-
};
|
|
6331
|
-
module.exports = {
|
|
6332
|
-
addend
|
|
6333
|
-
};
|
|
6334
|
-
}
|
|
6335
|
-
});
|
|
6336
|
-
|
|
6337
|
-
// ../../node_modules/jsverify/lib/generator.js
|
|
6338
|
-
var require_generator = __commonJS({
|
|
6339
|
-
"../../node_modules/jsverify/lib/generator.js"(exports, module) {
|
|
6340
|
-
"use strict";
|
|
6341
|
-
var assert = __require("assert");
|
|
6342
|
-
var either = require_either();
|
|
6343
|
-
var random = require_random();
|
|
6344
|
-
var sum = require_sum();
|
|
6345
|
-
var utils = require_utils();
|
|
6346
|
-
function generatorProtoMap(f) {
|
|
6347
|
-
var generator = this;
|
|
6348
|
-
generatorAssert(generator);
|
|
6349
|
-
return generatorBless(function(size) {
|
|
6350
|
-
return f(generator(size));
|
|
6351
|
-
});
|
|
6352
|
-
}
|
|
6353
|
-
function generatorProtoFlatMap(f) {
|
|
6354
|
-
var generator = this;
|
|
6355
|
-
generatorAssert(generator);
|
|
6356
|
-
return generatorBless(function(size) {
|
|
6357
|
-
return f(generator(size))(size);
|
|
6358
|
-
});
|
|
6359
|
-
}
|
|
6360
|
-
function generatorAssert(generator) {
|
|
6361
|
-
assert(typeof generator === "function", "generator should be a function");
|
|
6362
|
-
assert(generator.map === generatorProtoMap, "generator.map should be a function");
|
|
6363
|
-
assert(generator.flatmap === generatorProtoFlatMap, "generator.flatmap should be a function");
|
|
6364
|
-
assert(generator.flatMap === generatorProtoFlatMap, "generator.flatMap should be a function");
|
|
6365
|
-
}
|
|
6366
|
-
function generatorBless(generator) {
|
|
6367
|
-
generator.map = generatorProtoMap;
|
|
6368
|
-
generator.flatmap = generatorProtoFlatMap;
|
|
6369
|
-
generator.flatMap = generatorProtoFlatMap;
|
|
6370
|
-
return generator;
|
|
6371
|
-
}
|
|
6372
|
-
function generateConstant(x) {
|
|
6373
|
-
return generatorBless(function() {
|
|
6374
|
-
return x;
|
|
6375
|
-
});
|
|
6376
|
-
}
|
|
6377
|
-
function generatorCombine() {
|
|
6378
|
-
var generators = Array.prototype.slice.call(arguments, 0, -1);
|
|
6379
|
-
var f = arguments[arguments.length - 1];
|
|
6380
|
-
return generatorBless(function(size) {
|
|
6381
|
-
var values = generators.map(function(gen) {
|
|
6382
|
-
return gen(size);
|
|
6383
|
-
});
|
|
6384
|
-
return f.apply(void 0, values);
|
|
6385
|
-
});
|
|
6386
|
-
}
|
|
6387
|
-
function generateOneof(generators) {
|
|
6388
|
-
generators.forEach(function(gen) {
|
|
6389
|
-
assert(typeof gen === "function");
|
|
6390
|
-
});
|
|
6391
|
-
var result = generatorBless(function(size) {
|
|
6392
|
-
var idx = random(0, generators.length - 1);
|
|
6393
|
-
var gen = generators[idx];
|
|
6394
|
-
return gen(size);
|
|
6395
|
-
});
|
|
6396
|
-
return utils.curried2(result, arguments);
|
|
6397
|
-
}
|
|
6398
|
-
function logsize(size) {
|
|
6399
|
-
return Math.max(Math.round(Math.log(size + 1) / Math.log(2), 0));
|
|
6400
|
-
}
|
|
6401
|
-
function generatorRecursive(genZ, genS) {
|
|
6402
|
-
return generatorBless(function(size) {
|
|
6403
|
-
function rec(n, sizep) {
|
|
6404
|
-
if (n <= 0 || random(0, 3) === 0) {
|
|
6405
|
-
return genZ(sizep);
|
|
6406
|
-
} else {
|
|
6407
|
-
return genS(generatorBless(function(sizeq) {
|
|
6408
|
-
return rec(n - 1, sizeq);
|
|
6409
|
-
}))(sizep);
|
|
6410
|
-
}
|
|
6411
|
-
}
|
|
6412
|
-
return rec(logsize(size), size);
|
|
6413
|
-
});
|
|
6414
|
-
}
|
|
6415
|
-
function generatePair(genA, genB) {
|
|
6416
|
-
var result = generatorBless(function(size) {
|
|
6417
|
-
return [genA(size), genB(size)];
|
|
6418
|
-
});
|
|
6419
|
-
return utils.curried3(result, arguments);
|
|
6420
|
-
}
|
|
6421
|
-
function generateEither(genA, genB) {
|
|
6422
|
-
var result = generatorBless(function(size) {
|
|
6423
|
-
var n = random(0, 1);
|
|
6424
|
-
switch (n) {
|
|
6425
|
-
case 0:
|
|
6426
|
-
return either.left(genA(size));
|
|
6427
|
-
case 1:
|
|
6428
|
-
return either.right(genB(size));
|
|
6429
|
-
}
|
|
6430
|
-
});
|
|
6431
|
-
return utils.curried3(result, arguments);
|
|
6432
|
-
}
|
|
6433
|
-
var generateUnit = generatorBless(function() {
|
|
6434
|
-
return [];
|
|
6435
|
-
});
|
|
6436
|
-
function generateTuple(gens) {
|
|
6437
|
-
var len = gens.length;
|
|
6438
|
-
var result = generatorBless(function(size) {
|
|
6439
|
-
var r = [];
|
|
6440
|
-
for (var i = 0; i < len; i++) {
|
|
6441
|
-
r[i] = gens[i](size);
|
|
6442
|
-
}
|
|
6443
|
-
return r;
|
|
6444
|
-
});
|
|
6445
|
-
return utils.curried2(result, arguments);
|
|
6446
|
-
}
|
|
6447
|
-
function generateSum(gens) {
|
|
6448
|
-
var len = gens.length;
|
|
6449
|
-
var result = generatorBless(function(size) {
|
|
6450
|
-
var idx = random(0, len - 1);
|
|
6451
|
-
return sum.addend(idx, len, gens[idx](size));
|
|
6452
|
-
});
|
|
6453
|
-
return utils.curried2(result, arguments);
|
|
6454
|
-
}
|
|
6455
|
-
function generateArray(gen) {
|
|
6456
|
-
var result = generatorBless(function(size) {
|
|
6457
|
-
var arrsize = random(0, logsize(size));
|
|
6458
|
-
var arr = new Array(arrsize);
|
|
6459
|
-
for (var i = 0; i < arrsize; i++) {
|
|
6460
|
-
arr[i] = gen(size);
|
|
6461
|
-
}
|
|
6462
|
-
return arr;
|
|
6463
|
-
});
|
|
6464
|
-
return utils.curried2(result, arguments);
|
|
6465
|
-
}
|
|
6466
|
-
function generateNEArray(gen) {
|
|
6467
|
-
var result = generatorBless(function(size) {
|
|
6468
|
-
var arrsize = random(1, Math.max(logsize(size), 1));
|
|
6469
|
-
var arr = new Array(arrsize);
|
|
6470
|
-
for (var i = 0; i < arrsize; i++) {
|
|
6471
|
-
arr[i] = gen(size);
|
|
6472
|
-
}
|
|
6473
|
-
return arr;
|
|
6474
|
-
});
|
|
6475
|
-
return utils.curried2(result, arguments);
|
|
6476
|
-
}
|
|
6477
|
-
module.exports = {
|
|
6478
|
-
pair: generatePair,
|
|
6479
|
-
either: generateEither,
|
|
6480
|
-
unit: generateUnit,
|
|
6481
|
-
tuple: generateTuple,
|
|
6482
|
-
sum: generateSum,
|
|
6483
|
-
array: generateArray,
|
|
6484
|
-
nearray: generateNEArray,
|
|
6485
|
-
oneof: generateOneof,
|
|
6486
|
-
constant: generateConstant,
|
|
6487
|
-
bless: generatorBless,
|
|
6488
|
-
combine: generatorCombine,
|
|
6489
|
-
recursive: generatorRecursive
|
|
6490
|
-
};
|
|
6491
|
-
}
|
|
6492
|
-
});
|
|
6493
|
-
|
|
6494
|
-
// ../../node_modules/jsverify/lib/shrink.js
|
|
6495
|
-
var require_shrink = __commonJS({
|
|
6496
|
-
"../../node_modules/jsverify/lib/shrink.js"(exports, module) {
|
|
6497
|
-
"use strict";
|
|
6498
|
-
var assert = __require("assert");
|
|
6499
|
-
var either = require_either();
|
|
6500
|
-
var lazyseq2 = require_lazy_seq();
|
|
6501
|
-
var sum = require_sum();
|
|
6502
|
-
var utils = require_utils();
|
|
6503
|
-
function shrinkProtoIsoMap(f, g) {
|
|
6504
|
-
var shrink = this;
|
|
6505
|
-
return shrinkBless(function(value) {
|
|
6506
|
-
return shrink(g(value)).map(f);
|
|
6507
|
-
});
|
|
6508
|
-
}
|
|
6509
|
-
function shrinkBless(shrink) {
|
|
6510
|
-
shrink.smap = shrinkProtoIsoMap;
|
|
6511
|
-
return shrink;
|
|
6512
|
-
}
|
|
6513
|
-
var shrinkNoop = shrinkBless(function shrinkNoop2() {
|
|
6514
|
-
return [];
|
|
6515
|
-
});
|
|
6516
|
-
function shrinkPair(shrinkA, shrinkB) {
|
|
6517
|
-
var result = shrinkBless(function(pair) {
|
|
6518
|
-
assert(pair.length === 2, "shrinkPair: pair should be an Array of length 2");
|
|
6519
|
-
var a = pair[0];
|
|
6520
|
-
var b = pair[1];
|
|
6521
|
-
var shrinkedA = shrinkA(a);
|
|
6522
|
-
var shrinkedB = shrinkB(b);
|
|
6523
|
-
var pairA = shrinkedA.map(function(ap) {
|
|
6524
|
-
return [ap, b];
|
|
6525
|
-
});
|
|
6526
|
-
if (Array.isArray(pairA)) {
|
|
6527
|
-
pairA = lazyseq2.fromArray(pairA);
|
|
6528
|
-
}
|
|
6529
|
-
return pairA.append(function() {
|
|
6530
|
-
var pairB = shrinkedB.map(function(bp) {
|
|
6531
|
-
return [a, bp];
|
|
6532
|
-
});
|
|
6533
|
-
return pairB;
|
|
6534
|
-
});
|
|
6535
|
-
});
|
|
6536
|
-
return utils.curried3(result, arguments);
|
|
6537
|
-
}
|
|
6538
|
-
function shrinkEither(shrinkA, shrinkB) {
|
|
6539
|
-
function shrinkLeft(value) {
|
|
6540
|
-
return shrinkA(value).map(either.left);
|
|
6541
|
-
}
|
|
6542
|
-
function shrinkRight(value) {
|
|
6543
|
-
return shrinkB(value).map(either.right);
|
|
6544
|
-
}
|
|
6545
|
-
var result = shrinkBless(function(e) {
|
|
6546
|
-
return e.either(shrinkLeft, shrinkRight);
|
|
6547
|
-
});
|
|
6548
|
-
return utils.curried3(result, arguments);
|
|
6549
|
-
}
|
|
6550
|
-
function fromLinkedList(ll) {
|
|
6551
|
-
assert(ll.length === 1 || ll.length === 2, "linked list must be either [] or [x, linkedlist]");
|
|
6552
|
-
if (ll.length === 1) {
|
|
6553
|
-
return [ll[0]];
|
|
6554
|
-
} else {
|
|
6555
|
-
return [ll[0]].concat(fromLinkedList(ll[1]));
|
|
6556
|
-
}
|
|
6557
|
-
}
|
|
6558
|
-
function toLinkedList(arr) {
|
|
6559
|
-
assert(Array.isArray(arr) && arr.length > 0, "toLinkedList expects non-empty array");
|
|
6560
|
-
if (arr.length === 1) {
|
|
6561
|
-
return [arr[0]];
|
|
6562
|
-
} else {
|
|
6563
|
-
return [arr[0], toLinkedList(arr.slice(1))];
|
|
6564
|
-
}
|
|
6565
|
-
}
|
|
6566
|
-
function toSingleton(x) {
|
|
6567
|
-
return [x];
|
|
6568
|
-
}
|
|
6569
|
-
function fromSingleton(a) {
|
|
6570
|
-
return a[0];
|
|
6571
|
-
}
|
|
6572
|
-
function flattenShrink(shrinksLL) {
|
|
6573
|
-
if (shrinksLL.length === 1) {
|
|
6574
|
-
return shrinksLL[0].smap(toSingleton, fromSingleton);
|
|
6575
|
-
} else {
|
|
6576
|
-
var head = shrinksLL[0];
|
|
6577
|
-
var tail = shrinksLL[1];
|
|
6578
|
-
return shrinkPair(head, flattenShrink(tail));
|
|
6579
|
-
}
|
|
6580
|
-
}
|
|
6581
|
-
function shrinkTuple(shrinks) {
|
|
6582
|
-
assert(shrinks.length > 0, "shrinkTuple needs > 0 values");
|
|
6583
|
-
var shrinksLL = toLinkedList(shrinks);
|
|
6584
|
-
var shrink = flattenShrink(shrinksLL);
|
|
6585
|
-
var result = shrinkBless(function(tuple) {
|
|
6586
|
-
assert(tuple.length === shrinks.length, "shrinkTuple: not-matching params");
|
|
6587
|
-
var ll = toLinkedList(tuple);
|
|
6588
|
-
return shrink(ll).map(fromLinkedList);
|
|
6589
|
-
});
|
|
6590
|
-
return utils.curried2(result, arguments);
|
|
6591
|
-
}
|
|
6592
|
-
function shrinkSum(shrinks) {
|
|
6593
|
-
assert(shrinks.length > 0, "shrinkTuple needs > 0 values");
|
|
6594
|
-
var result = shrinkBless(function(s) {
|
|
6595
|
-
return s.fold(function(idx, len, value) {
|
|
6596
|
-
assert(len === shrinks.length, "shrinkSum: not-matching params");
|
|
6597
|
-
return shrinks[idx](value).map(function(shrinked) {
|
|
6598
|
-
return sum.addend(idx, len, shrinked);
|
|
6599
|
-
});
|
|
6600
|
-
});
|
|
6601
|
-
});
|
|
6602
|
-
return utils.curried2(result, arguments);
|
|
6603
|
-
}
|
|
6604
|
-
function shrinkArrayWithMinimumSize2(size) {
|
|
6605
|
-
function shrinkArrayImpl(shrink) {
|
|
6606
|
-
var result = shrinkBless(function(arr) {
|
|
6607
|
-
assert(Array.isArray(arr), "shrinkArrayImpl() expects array, got: " + arr);
|
|
6608
|
-
if (arr.length <= size) {
|
|
6609
|
-
return lazyseq2.nil;
|
|
6610
|
-
} else {
|
|
6611
|
-
var x = arr[0];
|
|
6612
|
-
var xs = arr.slice(1);
|
|
6613
|
-
return lazyseq2.cons(xs, lazyseq2.nil).append(shrink(x).map(function(xp) {
|
|
6614
|
-
return [xp].concat(xs);
|
|
6615
|
-
})).append(shrinkArrayImpl(shrink, xs).map(function(xsp) {
|
|
6616
|
-
return [x].concat(xsp);
|
|
6617
|
-
}));
|
|
6618
|
-
}
|
|
6619
|
-
});
|
|
6620
|
-
return utils.curried2(result, arguments);
|
|
6621
|
-
}
|
|
6622
|
-
return shrinkArrayImpl;
|
|
6623
|
-
}
|
|
6624
|
-
var shrinkArray = shrinkArrayWithMinimumSize2(0);
|
|
6625
|
-
var shrinkNEArray = shrinkArrayWithMinimumSize2(1);
|
|
6626
|
-
module.exports = {
|
|
6627
|
-
noop: shrinkNoop,
|
|
6628
|
-
pair: shrinkPair,
|
|
6629
|
-
either: shrinkEither,
|
|
6630
|
-
tuple: shrinkTuple,
|
|
6631
|
-
sum: shrinkSum,
|
|
6632
|
-
array: shrinkArray,
|
|
6633
|
-
nearray: shrinkNEArray,
|
|
6634
|
-
bless: shrinkBless
|
|
6635
|
-
};
|
|
6636
|
-
}
|
|
6637
|
-
});
|
|
6638
|
-
|
|
6639
|
-
// ../../node_modules/jsverify/lib/array.js
|
|
6640
|
-
var require_array = __commonJS({
|
|
6641
|
-
"../../node_modules/jsverify/lib/array.js"(exports, module) {
|
|
6642
|
-
"use strict";
|
|
6643
|
-
var arbitraryAssert = require_arbitraryAssert();
|
|
6644
|
-
var arbitraryBless = require_arbitraryBless();
|
|
6645
|
-
var generator = require_generator();
|
|
6646
|
-
var show = require_show();
|
|
6647
|
-
var shrink = require_shrink();
|
|
6648
|
-
var utils = require_utils();
|
|
6649
|
-
function makeArray(flavour) {
|
|
6650
|
-
return function arrayImpl(arb) {
|
|
6651
|
-
arb = utils.force(arb);
|
|
6652
|
-
arbitraryAssert(arb);
|
|
6653
|
-
return arbitraryBless({
|
|
6654
|
-
generator: generator[flavour](arb.generator),
|
|
6655
|
-
shrink: shrink[flavour](arb.shrink),
|
|
6656
|
-
show: show.array(arb.show)
|
|
6657
|
-
});
|
|
6658
|
-
};
|
|
6659
|
-
}
|
|
6660
|
-
var array = makeArray("array");
|
|
6661
|
-
var nearray = makeArray("nearray");
|
|
6662
|
-
module.exports = {
|
|
6663
|
-
array,
|
|
6664
|
-
nearray
|
|
6665
|
-
};
|
|
6666
|
-
}
|
|
6667
|
-
});
|
|
6668
|
-
|
|
6669
|
-
// ../../node_modules/jsverify/lib/pair.js
|
|
6670
|
-
var require_pair = __commonJS({
|
|
6671
|
-
"../../node_modules/jsverify/lib/pair.js"(exports, module) {
|
|
6672
|
-
"use strict";
|
|
6673
|
-
var arbitraryAssert = require_arbitraryAssert();
|
|
6674
|
-
var arbitraryBless = require_arbitraryBless();
|
|
6675
|
-
var generator = require_generator();
|
|
6676
|
-
var show = require_show();
|
|
6677
|
-
var shrink = require_shrink();
|
|
6678
|
-
var utils = require_utils();
|
|
6679
|
-
function pair(a, b) {
|
|
6680
|
-
a = utils.force(a);
|
|
6681
|
-
b = utils.force(b);
|
|
6682
|
-
arbitraryAssert(a);
|
|
6683
|
-
arbitraryAssert(b);
|
|
6684
|
-
return arbitraryBless({
|
|
6685
|
-
generator: generator.pair(a.generator, b.generator),
|
|
6686
|
-
shrink: shrink.pair(a.shrink, b.shrink),
|
|
6687
|
-
show: show.pair(a.show, b.show)
|
|
6688
|
-
});
|
|
6689
|
-
}
|
|
6690
|
-
module.exports = {
|
|
6691
|
-
pair
|
|
6692
|
-
};
|
|
6693
|
-
}
|
|
6694
|
-
});
|
|
6695
|
-
|
|
6696
|
-
// ../../node_modules/jsverify/lib/primitive.js
|
|
6697
|
-
var require_primitive = __commonJS({
|
|
6698
|
-
"../../node_modules/jsverify/lib/primitive.js"(exports, module) {
|
|
6699
|
-
"use strict";
|
|
6700
|
-
var arbitraryBless = require_arbitraryBless();
|
|
6701
|
-
var assert = __require("assert");
|
|
6702
|
-
var generator = require_generator();
|
|
6703
|
-
var random = require_random();
|
|
6704
|
-
var show = require_show();
|
|
6705
|
-
var shrink = require_shrink();
|
|
6706
|
-
var utils = require_utils();
|
|
6707
|
-
function extendWithDefault(arb) {
|
|
6708
|
-
var def = arb();
|
|
6709
|
-
arb.generator = def.generator;
|
|
6710
|
-
arb.shrink = def.shrink;
|
|
6711
|
-
arb.show = def.show;
|
|
6712
|
-
arb.smap = def.smap;
|
|
6713
|
-
}
|
|
6714
|
-
function numeric(impl) {
|
|
6715
|
-
return function(minsize, maxsize) {
|
|
6716
|
-
if (arguments.length === 2) {
|
|
6717
|
-
var arb = arbitraryBless(impl(maxsize - minsize));
|
|
6718
|
-
var to = function to2(x) {
|
|
6719
|
-
return Math.abs(x) + minsize;
|
|
6720
|
-
};
|
|
6721
|
-
var from = function from2(x) {
|
|
6722
|
-
return x - minsize;
|
|
6723
|
-
};
|
|
6724
|
-
return arb.smap(to, from);
|
|
6725
|
-
} else if (arguments.length === 1) {
|
|
6726
|
-
return arbitraryBless(impl(
|
|
6727
|
-
minsize
|
|
6728
|
-
/* as maxsize */
|
|
6729
|
-
));
|
|
6730
|
-
} else {
|
|
6731
|
-
return arbitraryBless(impl());
|
|
6732
|
-
}
|
|
6733
|
-
};
|
|
6734
|
-
}
|
|
6735
|
-
var integer = numeric(function integer2(maxsize) {
|
|
6736
|
-
return {
|
|
6737
|
-
generator: generator.bless(function(size) {
|
|
6738
|
-
size = maxsize === void 0 ? size : maxsize;
|
|
6739
|
-
return random(-size, size);
|
|
6740
|
-
}),
|
|
6741
|
-
shrink: shrink.bless(function(i) {
|
|
6742
|
-
assert(typeof i === "number", "integer.shrink have to be a number");
|
|
6743
|
-
i = Math.abs(i);
|
|
6744
|
-
if (i === 0) {
|
|
6745
|
-
return [];
|
|
6746
|
-
} else {
|
|
6747
|
-
var arr = [0];
|
|
6748
|
-
var j = utils.div2(i);
|
|
6749
|
-
var k = Math.max(j, 1);
|
|
6750
|
-
while (j < i) {
|
|
6751
|
-
arr.push(j);
|
|
6752
|
-
arr.push(-j);
|
|
6753
|
-
k = Math.max(utils.div2(k), 1);
|
|
6754
|
-
j += k;
|
|
6755
|
-
}
|
|
6756
|
-
return arr;
|
|
6757
|
-
}
|
|
6758
|
-
}),
|
|
6759
|
-
show: show.def
|
|
6760
|
-
};
|
|
6761
|
-
});
|
|
6762
|
-
extendWithDefault(integer);
|
|
6763
|
-
function nat(maxsize) {
|
|
6764
|
-
return arbitraryBless({
|
|
6765
|
-
generator: generator.bless(function(size) {
|
|
6766
|
-
size = maxsize === void 0 ? size : maxsize;
|
|
6767
|
-
return random(0, size);
|
|
6768
|
-
}),
|
|
6769
|
-
shrink: shrink.bless(function(i) {
|
|
6770
|
-
assert(typeof i === "number", "nat.shrink have to be a number");
|
|
6771
|
-
var arr = [];
|
|
6772
|
-
var j = utils.div2(i);
|
|
6773
|
-
var k = Math.max(j, 1);
|
|
6774
|
-
while (j < i) {
|
|
6775
|
-
arr.push(j);
|
|
6776
|
-
k = Math.max(utils.div2(k), 1);
|
|
6777
|
-
j += k;
|
|
6778
|
-
}
|
|
6779
|
-
return arr;
|
|
6780
|
-
}),
|
|
6781
|
-
show: show.def
|
|
6782
|
-
});
|
|
6783
|
-
}
|
|
6784
|
-
extendWithDefault(nat);
|
|
6785
|
-
var number = numeric(function number2(maxsize) {
|
|
6786
|
-
return {
|
|
6787
|
-
generator: generator.bless(function(size) {
|
|
6788
|
-
size = maxsize === void 0 ? size : maxsize;
|
|
6789
|
-
return random.number(-size, size);
|
|
6790
|
-
}),
|
|
6791
|
-
shrink: shrink.bless(function(x) {
|
|
6792
|
-
assert(typeof x === "number", "number.shrink have to be a number");
|
|
6793
|
-
if (Math.abs(x) > 1e-6) {
|
|
6794
|
-
return [0, x / 2, -x / 2];
|
|
6795
|
-
} else {
|
|
6796
|
-
return [];
|
|
6797
|
-
}
|
|
6798
|
-
}),
|
|
6799
|
-
show: show.def
|
|
6800
|
-
};
|
|
6801
|
-
});
|
|
6802
|
-
extendWithDefault(number);
|
|
6803
|
-
var uint8 = nat(255);
|
|
6804
|
-
var uint16 = nat(65535);
|
|
6805
|
-
var uint32 = nat(4294967295);
|
|
6806
|
-
var int8 = integer(-128, 127);
|
|
6807
|
-
var int16 = integer(-32768, 32767);
|
|
6808
|
-
var int32 = integer(-2147483648, 2147483647);
|
|
6809
|
-
var bool = arbitraryBless({
|
|
6810
|
-
generator: generator.bless(function() {
|
|
6811
|
-
var i = random(0, 1);
|
|
6812
|
-
return i === 1;
|
|
6813
|
-
}),
|
|
6814
|
-
shrink: shrink.bless(function(b) {
|
|
6815
|
-
assert(b === true || b === false, "bool.shrink excepts true or false");
|
|
6816
|
-
return b === true ? [false] : [];
|
|
6817
|
-
}),
|
|
6818
|
-
show: show.def
|
|
6819
|
-
});
|
|
6820
|
-
var datetimeConst = 1416499879495;
|
|
6821
|
-
function datetime(from, to) {
|
|
6822
|
-
var toDate;
|
|
6823
|
-
var fromDate;
|
|
6824
|
-
var arb;
|
|
6825
|
-
if (arguments.length === 2) {
|
|
6826
|
-
toDate = function toDateFn(x) {
|
|
6827
|
-
return new Date(x);
|
|
6828
|
-
};
|
|
6829
|
-
fromDate = function fromDateFn(x) {
|
|
6830
|
-
return x.getTime();
|
|
6831
|
-
};
|
|
6832
|
-
from = fromDate(from);
|
|
6833
|
-
to = fromDate(to);
|
|
6834
|
-
arb = number(from, to);
|
|
6835
|
-
return arb.smap(toDate, fromDate);
|
|
6836
|
-
} else {
|
|
6837
|
-
toDate = function toDateFn(x) {
|
|
6838
|
-
return new Date(x * 768e6 + datetimeConst);
|
|
6839
|
-
};
|
|
6840
|
-
arb = number;
|
|
6841
|
-
return arbitraryBless({
|
|
6842
|
-
generator: arb.generator.map(toDate),
|
|
6843
|
-
shrink: shrink.noop,
|
|
6844
|
-
show: show.def
|
|
6845
|
-
});
|
|
6846
|
-
}
|
|
6847
|
-
}
|
|
6848
|
-
extendWithDefault(datetime);
|
|
6849
|
-
function elements(args) {
|
|
6850
|
-
assert(args.length !== 0, "elements: at least one parameter expected");
|
|
6851
|
-
return arbitraryBless({
|
|
6852
|
-
generator: generator.bless(function() {
|
|
6853
|
-
var i = random(0, args.length - 1);
|
|
6854
|
-
return args[i];
|
|
6855
|
-
}),
|
|
6856
|
-
shrink: shrink.bless(function(x) {
|
|
6857
|
-
var idx = args.indexOf(x);
|
|
6858
|
-
if (idx <= 0) {
|
|
6859
|
-
return [];
|
|
6860
|
-
} else {
|
|
6861
|
-
return args.slice(0, idx);
|
|
6862
|
-
}
|
|
6863
|
-
}),
|
|
6864
|
-
show: show.def
|
|
6865
|
-
});
|
|
6866
|
-
}
|
|
6867
|
-
var falsy = elements([false, null, void 0, "", 0, NaN]);
|
|
6868
|
-
falsy.show = function(v) {
|
|
6869
|
-
if (v !== v) {
|
|
6870
|
-
return "falsy: NaN";
|
|
6871
|
-
} else if (v === "") {
|
|
6872
|
-
return "falsy: empty string";
|
|
6873
|
-
} else if (v === void 0) {
|
|
6874
|
-
return "falsy: undefined";
|
|
6875
|
-
} else {
|
|
6876
|
-
return "falsy: " + v;
|
|
6877
|
-
}
|
|
6878
|
-
};
|
|
6879
|
-
function constant(x) {
|
|
6880
|
-
return arbitraryBless({
|
|
6881
|
-
generator: generator.constant(x),
|
|
6882
|
-
shrink: shrink.noop,
|
|
6883
|
-
show: show.def
|
|
6884
|
-
});
|
|
6885
|
-
}
|
|
6886
|
-
module.exports = {
|
|
6887
|
-
integer,
|
|
6888
|
-
nat,
|
|
6889
|
-
int8,
|
|
6890
|
-
int16,
|
|
6891
|
-
int32,
|
|
6892
|
-
uint8,
|
|
6893
|
-
uint16,
|
|
6894
|
-
uint32,
|
|
6895
|
-
number,
|
|
6896
|
-
elements,
|
|
6897
|
-
bool,
|
|
6898
|
-
falsy,
|
|
6899
|
-
constant,
|
|
6900
|
-
datetime
|
|
6901
|
-
};
|
|
6902
|
-
}
|
|
6903
|
-
});
|
|
6904
|
-
|
|
6905
|
-
// ../../node_modules/jsverify/lib/string.js
|
|
6906
|
-
var require_string = __commonJS({
|
|
6907
|
-
"../../node_modules/jsverify/lib/string.js"(exports, module) {
|
|
6908
|
-
"use strict";
|
|
6909
|
-
var array = require_array();
|
|
6910
|
-
var primitive = require_primitive();
|
|
6911
|
-
var utils = require_utils();
|
|
6912
|
-
function fromCode2(code) {
|
|
6913
|
-
return String.fromCharCode(code);
|
|
6914
|
-
}
|
|
6915
|
-
function toCode2(c) {
|
|
6916
|
-
return c.charCodeAt(0);
|
|
6917
|
-
}
|
|
6918
|
-
var char = primitive.nat(255).smap(fromCode2, toCode2);
|
|
6919
|
-
var asciichar = primitive.integer(32, 126).smap(fromCode2, toCode2);
|
|
6920
|
-
var string = array.array(char).smap(utils.charArrayToString, utils.stringToCharArray);
|
|
6921
|
-
var nestring = array.nearray(char).smap(utils.charArrayToString, utils.stringToCharArray);
|
|
6922
|
-
var asciistring = array.array(asciichar).smap(utils.charArrayToString, utils.stringToCharArray);
|
|
6923
|
-
var asciinestring = array.nearray(asciichar).smap(utils.charArrayToString, utils.stringToCharArray);
|
|
6924
|
-
module.exports = {
|
|
6925
|
-
char,
|
|
6926
|
-
asciichar,
|
|
6927
|
-
string,
|
|
6928
|
-
nestring,
|
|
6929
|
-
asciistring,
|
|
6930
|
-
asciinestring
|
|
6931
|
-
};
|
|
6932
|
-
}
|
|
6933
|
-
});
|
|
6934
|
-
|
|
6935
|
-
// ../../node_modules/jsverify/lib/dict.js
|
|
6936
|
-
var require_dict = __commonJS({
|
|
6937
|
-
"../../node_modules/jsverify/lib/dict.js"(exports, module) {
|
|
6938
|
-
"use strict";
|
|
6939
|
-
var arbitraryAssert = require_arbitraryAssert();
|
|
6940
|
-
var array = require_array();
|
|
6941
|
-
var generator = require_generator();
|
|
6942
|
-
var pair = require_pair();
|
|
6943
|
-
var string = require_string();
|
|
6944
|
-
var utils = require_utils();
|
|
6945
|
-
function makeMapShow(elShow) {
|
|
6946
|
-
return function(m) {
|
|
6947
|
-
return "{" + Object.keys(m).map(function(k) {
|
|
6948
|
-
return k + ": " + elShow(m[k]);
|
|
6949
|
-
}).join(", ") + "}";
|
|
6950
|
-
};
|
|
6951
|
-
}
|
|
6952
|
-
function generateDict(gen) {
|
|
6953
|
-
var pairGen = generator.pair(string.string.generator, gen);
|
|
6954
|
-
var arrayGen = generator.array(pairGen);
|
|
6955
|
-
var result = arrayGen.map(utils.pairArrayToDict);
|
|
6956
|
-
return utils.curried2(result, arguments);
|
|
6957
|
-
}
|
|
6958
|
-
function dict(arb) {
|
|
6959
|
-
arb = utils.force(arb);
|
|
6960
|
-
arbitraryAssert(arb);
|
|
6961
|
-
var pairArbitrary = pair.pair(string.string, arb);
|
|
6962
|
-
var arrayArbitrary = array.array(pairArbitrary);
|
|
6963
|
-
return arrayArbitrary.smap(utils.pairArrayToDict, utils.dictToPairArray, makeMapShow(arb.show));
|
|
6964
|
-
}
|
|
6965
|
-
module.exports = {
|
|
6966
|
-
arbitrary: dict,
|
|
6967
|
-
generator: generateDict
|
|
6968
|
-
};
|
|
6969
|
-
}
|
|
6970
|
-
});
|
|
6971
|
-
|
|
6972
|
-
// ../../node_modules/jsverify/lib/json.js
|
|
6973
|
-
var require_json = __commonJS({
|
|
6974
|
-
"../../node_modules/jsverify/lib/json.js"(exports, module) {
|
|
6975
|
-
"use strict";
|
|
6976
|
-
var assert = __require("assert");
|
|
6977
|
-
var arbitraryBless = require_arbitraryBless();
|
|
6978
|
-
var dict = require_dict();
|
|
6979
|
-
var generator = require_generator();
|
|
6980
|
-
var primitive = require_primitive();
|
|
6981
|
-
var show = require_show();
|
|
6982
|
-
var shrink = require_shrink();
|
|
6983
|
-
var string = require_string();
|
|
6984
|
-
var utils = require_utils();
|
|
6985
|
-
var nullArb = primitive.constant(null);
|
|
6986
|
-
var generateInteger = primitive.integer.generator;
|
|
6987
|
-
var generateNumber = primitive.number.generator;
|
|
6988
|
-
var generateBool = primitive.bool.generator;
|
|
6989
|
-
var generateString = string.string.generator;
|
|
6990
|
-
var generateNull = nullArb.generator;
|
|
6991
|
-
var generateJson = generator.recursive(
|
|
6992
|
-
generator.oneof([
|
|
6993
|
-
generateInteger,
|
|
6994
|
-
generateNumber,
|
|
6995
|
-
generateBool,
|
|
6996
|
-
generateString,
|
|
6997
|
-
generateNull
|
|
6998
|
-
]),
|
|
6999
|
-
function(gen) {
|
|
7000
|
-
return generator.oneof([generator.array(gen), dict.generator(gen)]);
|
|
7001
|
-
}
|
|
7002
|
-
);
|
|
7003
|
-
var shrinkDictJson;
|
|
7004
|
-
var shrinkJson;
|
|
7005
|
-
function shrinkRecJson(json2) {
|
|
7006
|
-
if (Array.isArray(json2)) {
|
|
7007
|
-
return shrink.array(shrinkJson, json2);
|
|
7008
|
-
} else {
|
|
7009
|
-
return shrinkDictJson(json2);
|
|
7010
|
-
}
|
|
7011
|
-
}
|
|
7012
|
-
shrinkJson = shrink.bless(function(json2) {
|
|
7013
|
-
assert(typeof json2 !== "function");
|
|
7014
|
-
if (json2 === null) {
|
|
7015
|
-
return nullArb.shrink(json2);
|
|
7016
|
-
}
|
|
7017
|
-
switch (typeof json2) {
|
|
7018
|
-
case "boolean":
|
|
7019
|
-
return primitive.bool.shrink(json2);
|
|
7020
|
-
case "number":
|
|
7021
|
-
return primitive.number.shrink(json2);
|
|
7022
|
-
case "string":
|
|
7023
|
-
return string.string.shrink(json2);
|
|
7024
|
-
default:
|
|
7025
|
-
return shrinkRecJson(json2);
|
|
7026
|
-
}
|
|
7027
|
-
});
|
|
7028
|
-
shrinkDictJson = function() {
|
|
7029
|
-
var pairShrink = shrink.pair(string.string.shrink, shrinkJson);
|
|
7030
|
-
var arrayShrink = shrink.array(pairShrink);
|
|
7031
|
-
return arrayShrink.smap(utils.pairArrayToDict, utils.dictToPairArray);
|
|
7032
|
-
}();
|
|
7033
|
-
var json = arbitraryBless({
|
|
7034
|
-
generator: generateJson,
|
|
7035
|
-
shrink: shrinkJson,
|
|
7036
|
-
show: show.def
|
|
7037
|
-
});
|
|
7038
|
-
module.exports = {
|
|
7039
|
-
json
|
|
7040
|
-
};
|
|
7041
|
-
}
|
|
7042
|
-
});
|
|
7043
|
-
|
|
7044
|
-
// ../../node_modules/jsverify/lib/arbitrary.js
|
|
7045
|
-
var require_arbitrary = __commonJS({
|
|
7046
|
-
"../../node_modules/jsverify/lib/arbitrary.js"(exports, module) {
|
|
7047
|
-
"use strict";
|
|
7048
|
-
var arbitraryAssert = require_arbitraryAssert();
|
|
7049
|
-
var arbitraryBless = require_arbitraryBless();
|
|
7050
|
-
var array = require_array();
|
|
7051
|
-
var assert = __require("assert");
|
|
7052
|
-
var dict = require_dict();
|
|
7053
|
-
var generator = require_generator();
|
|
7054
|
-
var json = require_json();
|
|
7055
|
-
var pair = require_pair();
|
|
7056
|
-
var show = require_show();
|
|
7057
|
-
var shrink = require_shrink();
|
|
7058
|
-
var utils = require_utils();
|
|
7059
|
-
function nonshrink(arb) {
|
|
7060
|
-
arb = utils.force(arb);
|
|
7061
|
-
return arbitraryBless({
|
|
7062
|
-
generator: arb.generator,
|
|
7063
|
-
shrink: shrink.noop,
|
|
7064
|
-
show: arb.show
|
|
7065
|
-
});
|
|
7066
|
-
}
|
|
7067
|
-
var unit = arbitraryBless({
|
|
7068
|
-
generator: generator.unit,
|
|
7069
|
-
shrink: shrink.noop,
|
|
7070
|
-
show: show.def
|
|
7071
|
-
});
|
|
7072
|
-
function either(a, b) {
|
|
7073
|
-
a = utils.force(a || json.json);
|
|
7074
|
-
b = utils.force(b || json.json);
|
|
7075
|
-
arbitraryAssert(a);
|
|
7076
|
-
arbitraryAssert(b);
|
|
7077
|
-
return arbitraryBless({
|
|
7078
|
-
generator: generator.either(a.generator, b.generator),
|
|
7079
|
-
shrink: shrink.either(a.shrink, b.shrink),
|
|
7080
|
-
show: show.either(a.show, b.show)
|
|
7081
|
-
});
|
|
7082
|
-
}
|
|
7083
|
-
function pairArb(a, b) {
|
|
7084
|
-
return pair.pair(a || json.json, b || json.json);
|
|
7085
|
-
}
|
|
7086
|
-
function tuple(arbs) {
|
|
7087
|
-
arbs = arbs.map(utils.force);
|
|
7088
|
-
return arbitraryBless({
|
|
7089
|
-
generator: generator.tuple(utils.pluck(arbs, "generator")),
|
|
7090
|
-
shrink: shrink.tuple(utils.pluck(arbs, "shrink")),
|
|
7091
|
-
show: show.tuple(utils.pluck(arbs, "show"))
|
|
7092
|
-
});
|
|
7093
|
-
}
|
|
7094
|
-
function sum(arbs) {
|
|
7095
|
-
arbs = arbs.map(utils.force);
|
|
7096
|
-
return arbitraryBless({
|
|
7097
|
-
generator: generator.sum(utils.pluck(arbs, "generator")),
|
|
7098
|
-
shrink: shrink.sum(utils.pluck(arbs, "shrink")),
|
|
7099
|
-
show: show.sum(utils.pluck(arbs, "show"))
|
|
7100
|
-
});
|
|
7101
|
-
}
|
|
7102
|
-
function dictArb(arb) {
|
|
7103
|
-
return dict.arbitrary(arb || json.json);
|
|
7104
|
-
}
|
|
7105
|
-
function arrayArb(arb) {
|
|
7106
|
-
return array.array(arb || json.json);
|
|
7107
|
-
}
|
|
7108
|
-
function nearrayArb(arb) {
|
|
7109
|
-
return array.nearray(arb || json.json);
|
|
7110
|
-
}
|
|
7111
|
-
var jsonArb = json.json;
|
|
7112
|
-
function oneof() {
|
|
7113
|
-
assert(arguments.length !== 0, "oneof: at least one parameter expected");
|
|
7114
|
-
var generators = [];
|
|
7115
|
-
var append = function(a) {
|
|
7116
|
-
generators.push(utils.force(a).generator);
|
|
7117
|
-
};
|
|
7118
|
-
for (var i = 0; i < arguments.length; i++) {
|
|
7119
|
-
var arg = arguments[i];
|
|
7120
|
-
if (utils.isArray(arg)) {
|
|
7121
|
-
arg.forEach(append);
|
|
7122
|
-
} else {
|
|
7123
|
-
append(arg);
|
|
7124
|
-
}
|
|
7125
|
-
}
|
|
7126
|
-
return arbitraryBless({
|
|
7127
|
-
generator: generator.oneof(generators),
|
|
7128
|
-
// TODO: make shrink
|
|
7129
|
-
shrink: shrink.noop,
|
|
7130
|
-
show: show.def
|
|
7131
|
-
});
|
|
7132
|
-
}
|
|
7133
|
-
function lazyArbitrary() {
|
|
7134
|
-
var arb = {};
|
|
7135
|
-
arb.generator = generator.bless(function(size) {
|
|
7136
|
-
return arb.strict.generator(size);
|
|
7137
|
-
});
|
|
7138
|
-
arb.shrink = shrink.noop;
|
|
7139
|
-
arb.show = show.def;
|
|
7140
|
-
arb = arbitraryBless(arb);
|
|
7141
|
-
return arb;
|
|
7142
|
-
}
|
|
7143
|
-
function letrec(definition) {
|
|
7144
|
-
var lazyArbs = {};
|
|
7145
|
-
function tie(name) {
|
|
7146
|
-
if (!lazyArbs.hasOwnProperty(name)) {
|
|
7147
|
-
lazyArbs[name] = lazyArbitrary();
|
|
7148
|
-
}
|
|
7149
|
-
return lazyArbs[name];
|
|
7150
|
-
}
|
|
7151
|
-
var strictArbs = definition(tie);
|
|
7152
|
-
Object.keys(lazyArbs).forEach(function(key) {
|
|
7153
|
-
var strictArb = strictArbs[key];
|
|
7154
|
-
if (!strictArb) {
|
|
7155
|
-
throw new Error("undefined lazy arbitrary: " + key);
|
|
7156
|
-
}
|
|
7157
|
-
lazyArbs[key].strict = strictArb;
|
|
7158
|
-
});
|
|
7159
|
-
return strictArbs;
|
|
7160
|
-
}
|
|
7161
|
-
function recursive(arbZ, arbS) {
|
|
7162
|
-
var genZ = arbZ.generator;
|
|
7163
|
-
var genS = function(recGen) {
|
|
7164
|
-
var recArb = arbitraryBless({
|
|
7165
|
-
generator: recGen,
|
|
7166
|
-
shrink: shrink.noop,
|
|
7167
|
-
show: show.def
|
|
7168
|
-
});
|
|
7169
|
-
return arbS(recArb).generator;
|
|
7170
|
-
};
|
|
7171
|
-
var gen = generator.recursive(genZ, genS);
|
|
7172
|
-
return arbitraryBless({
|
|
7173
|
-
generator: gen,
|
|
7174
|
-
shrink: shrink.noop,
|
|
7175
|
-
show: show.def
|
|
7176
|
-
});
|
|
7177
|
-
}
|
|
7178
|
-
module.exports = {
|
|
7179
|
-
nonshrink,
|
|
7180
|
-
pair: pairArb,
|
|
7181
|
-
either,
|
|
7182
|
-
unit,
|
|
7183
|
-
dict: dictArb,
|
|
7184
|
-
json: jsonArb,
|
|
7185
|
-
nearray: nearrayArb,
|
|
7186
|
-
array: arrayArb,
|
|
7187
|
-
tuple,
|
|
7188
|
-
sum,
|
|
7189
|
-
oneof,
|
|
7190
|
-
recursive,
|
|
7191
|
-
letrec
|
|
7192
|
-
};
|
|
7193
|
-
}
|
|
7194
|
-
});
|
|
7195
|
-
|
|
7196
|
-
// ../../node_modules/jsverify/lib/bless.js
|
|
7197
|
-
var require_bless = __commonJS({
|
|
7198
|
-
"../../node_modules/jsverify/lib/bless.js"(exports, module) {
|
|
7199
|
-
"use strict";
|
|
7200
|
-
var assert = __require("assert");
|
|
7201
|
-
var arbitraryBless = require_arbitraryBless();
|
|
7202
|
-
var generator = require_generator();
|
|
7203
|
-
var show = require_show();
|
|
7204
|
-
var shrink = require_shrink();
|
|
7205
|
-
function bless(arb) {
|
|
7206
|
-
assert(arb !== null && typeof arb === "object", "bless: arb should be an object");
|
|
7207
|
-
assert(typeof arb.generator === "function", "bless: arb.generator should be a function");
|
|
7208
|
-
if (typeof arb.shrink !== "function") {
|
|
7209
|
-
arb.shrink = shrink.noop;
|
|
7210
|
-
}
|
|
7211
|
-
if (typeof arb.show !== "function") {
|
|
7212
|
-
arb.show = show.def;
|
|
7213
|
-
}
|
|
7214
|
-
generator.bless(arb.generator);
|
|
7215
|
-
shrink.bless(arb.shrink);
|
|
7216
|
-
arbitraryBless(arb);
|
|
7217
|
-
return arb;
|
|
7218
|
-
}
|
|
7219
|
-
module.exports = bless;
|
|
7220
|
-
}
|
|
7221
|
-
});
|
|
7222
|
-
|
|
7223
|
-
// ../../node_modules/jsverify/lib/record.js
|
|
7224
|
-
var require_record = __commonJS({
|
|
7225
|
-
"../../node_modules/jsverify/lib/record.js"(exports, module) {
|
|
7226
|
-
"use strict";
|
|
7227
|
-
var arbitraryBless = require_arbitraryBless();
|
|
7228
|
-
var generator = require_generator();
|
|
7229
|
-
var utils = require_utils();
|
|
7230
|
-
var shrink = require_shrink();
|
|
7231
|
-
function generatorRecord(spec) {
|
|
7232
|
-
var keys = Object.keys(spec);
|
|
7233
|
-
var result = generator.bless(function(size) {
|
|
7234
|
-
var res = {};
|
|
7235
|
-
keys.forEach(function(k) {
|
|
7236
|
-
res[k] = spec[k](size);
|
|
7237
|
-
});
|
|
7238
|
-
return res;
|
|
7239
|
-
});
|
|
7240
|
-
return utils.curried2(result, arguments);
|
|
7241
|
-
}
|
|
7242
|
-
function shrinkRecord(shrinksRecord) {
|
|
7243
|
-
var keys = Object.keys(shrinksRecord);
|
|
7244
|
-
var shrinks = keys.map(function(k) {
|
|
7245
|
-
return shrinksRecord[k];
|
|
7246
|
-
});
|
|
7247
|
-
var result = shrink.bless(function(rec) {
|
|
7248
|
-
var values = keys.map(function(k) {
|
|
7249
|
-
return rec[k];
|
|
7250
|
-
});
|
|
7251
|
-
var shrinked = shrink.tuple(shrinks, values);
|
|
7252
|
-
return shrinked.map(function(s) {
|
|
7253
|
-
var res = {};
|
|
7254
|
-
keys.forEach(function(k, i) {
|
|
7255
|
-
res[k] = s[i];
|
|
7256
|
-
});
|
|
7257
|
-
return res;
|
|
7258
|
-
});
|
|
7259
|
-
});
|
|
7260
|
-
return utils.curried2(result, arguments);
|
|
7261
|
-
}
|
|
7262
|
-
function arbitraryRecord(spec) {
|
|
7263
|
-
var generatorSpec = {};
|
|
7264
|
-
var shrinkSpec = {};
|
|
7265
|
-
var showSpec = {};
|
|
7266
|
-
Object.keys(spec).forEach(function(k) {
|
|
7267
|
-
var arb = utils.force(spec[k]);
|
|
7268
|
-
generatorSpec[k] = arb.generator;
|
|
7269
|
-
shrinkSpec[k] = arb.shrink;
|
|
7270
|
-
showSpec[k] = arb.show;
|
|
7271
|
-
});
|
|
7272
|
-
return arbitraryBless({
|
|
7273
|
-
generator: generatorRecord(generatorSpec),
|
|
7274
|
-
shrink: shrinkRecord(shrinkSpec),
|
|
7275
|
-
show: function(m) {
|
|
7276
|
-
return "{" + Object.keys(m).map(function(k) {
|
|
7277
|
-
return k + ": " + showSpec[k](m[k]);
|
|
7278
|
-
}).join(", ") + "}";
|
|
7279
|
-
}
|
|
7280
|
-
});
|
|
7281
|
-
}
|
|
7282
|
-
module.exports = {
|
|
7283
|
-
generator: generatorRecord,
|
|
7284
|
-
arbitrary: arbitraryRecord,
|
|
7285
|
-
shrink: shrinkRecord
|
|
7286
|
-
};
|
|
7287
|
-
}
|
|
7288
|
-
});
|
|
7289
|
-
|
|
7290
|
-
// ../../node_modules/jsverify/lib/finitemap.js
|
|
7291
|
-
var require_finitemap = __commonJS({
|
|
7292
|
-
"../../node_modules/jsverify/lib/finitemap.js"(exports, module) {
|
|
7293
|
-
"use strict";
|
|
7294
|
-
var utils = require_utils();
|
|
7295
|
-
function FMap(eq) {
|
|
7296
|
-
this.eq = eq || utils.isEqual;
|
|
7297
|
-
this.data = [];
|
|
7298
|
-
}
|
|
7299
|
-
FMap.prototype.contains = function FMapContains(key) {
|
|
7300
|
-
for (var i = 0; i < this.data.length; i++) {
|
|
7301
|
-
if (this.eq(this.data[i][0], key)) {
|
|
7302
|
-
return true;
|
|
7303
|
-
}
|
|
7304
|
-
}
|
|
7305
|
-
return false;
|
|
7306
|
-
};
|
|
7307
|
-
FMap.prototype.insert = function FMapInsert(key, value) {
|
|
7308
|
-
for (var i = 0; i < this.data.length; i++) {
|
|
7309
|
-
if (this.eq(this.data[i][0], key)) {
|
|
7310
|
-
this.data[i] = [key, value];
|
|
7311
|
-
return;
|
|
7312
|
-
}
|
|
7313
|
-
}
|
|
7314
|
-
this.data.push([key, value]);
|
|
7315
|
-
};
|
|
7316
|
-
FMap.prototype.get = function FMapGet(key) {
|
|
7317
|
-
for (var i = 0; i < this.data.length; i++) {
|
|
7318
|
-
if (this.eq(this.data[i][0], key)) {
|
|
7319
|
-
return this.data[i][1];
|
|
7320
|
-
}
|
|
7321
|
-
}
|
|
7322
|
-
};
|
|
7323
|
-
module.exports = FMap;
|
|
7324
|
-
}
|
|
7325
|
-
});
|
|
7326
|
-
|
|
7327
|
-
// ../../node_modules/jsverify/lib/fn.js
|
|
7328
|
-
var require_fn = __commonJS({
|
|
7329
|
-
"../../node_modules/jsverify/lib/fn.js"(exports, module) {
|
|
7330
|
-
"use strict";
|
|
7331
|
-
var arbitraryBless = require_arbitraryBless();
|
|
7332
|
-
var generator = require_generator();
|
|
7333
|
-
var FMap = require_finitemap();
|
|
7334
|
-
var json = require_json();
|
|
7335
|
-
var shrink = require_shrink();
|
|
7336
|
-
var utils = require_utils();
|
|
7337
|
-
function fn(arb) {
|
|
7338
|
-
arb = utils.force(arb || json.json);
|
|
7339
|
-
return arbitraryBless({
|
|
7340
|
-
generator: generator.bless(function(size) {
|
|
7341
|
-
var m = new FMap();
|
|
7342
|
-
var f = function(arg) {
|
|
7343
|
-
if (!m.contains(arg)) {
|
|
7344
|
-
var value = arb.generator(size);
|
|
7345
|
-
m.insert(arg, value);
|
|
7346
|
-
}
|
|
7347
|
-
return m.get(arg);
|
|
7348
|
-
};
|
|
7349
|
-
f.internalMap = m;
|
|
7350
|
-
return f;
|
|
7351
|
-
}),
|
|
7352
|
-
shrink: shrink.noop,
|
|
7353
|
-
show: function(f) {
|
|
7354
|
-
return "[" + f.internalMap.data.map(function(item) {
|
|
7355
|
-
return "" + item[0] + ": " + arb.show(item[1]);
|
|
7356
|
-
}).join(", ") + "]";
|
|
7357
|
-
}
|
|
7358
|
-
});
|
|
7359
|
-
}
|
|
7360
|
-
module.exports = {
|
|
7361
|
-
fn,
|
|
7362
|
-
fun: fn
|
|
7363
|
-
};
|
|
7364
|
-
}
|
|
7365
|
-
});
|
|
7366
|
-
|
|
7367
|
-
// ../../node_modules/jsverify/lib/small.js
|
|
7368
|
-
var require_small = __commonJS({
|
|
7369
|
-
"../../node_modules/jsverify/lib/small.js"(exports, module) {
|
|
7370
|
-
"use strict";
|
|
7371
|
-
var generator = require_generator();
|
|
7372
|
-
var arbitraryBless = require_arbitraryBless();
|
|
7373
|
-
var arbitraryAssert = require_arbitraryAssert();
|
|
7374
|
-
var utils = require_utils();
|
|
7375
|
-
function smallGenerator(gen) {
|
|
7376
|
-
return generator.bless(function(size) {
|
|
7377
|
-
return gen(utils.ilog2(size));
|
|
7378
|
-
});
|
|
7379
|
-
}
|
|
7380
|
-
function smallArbitraryImpl(arb) {
|
|
7381
|
-
arbitraryAssert(arb);
|
|
7382
|
-
return arbitraryBless({
|
|
7383
|
-
generator: smallGenerator(arb.generator),
|
|
7384
|
-
shrink: arb.shrink,
|
|
7385
|
-
show: arb.show
|
|
7386
|
-
});
|
|
7387
|
-
}
|
|
7388
|
-
function smallArbitrary(arb) {
|
|
7389
|
-
if (typeof arb === "function") {
|
|
7390
|
-
return function() {
|
|
7391
|
-
var resArb = arb.apply(arb, arguments);
|
|
7392
|
-
return smallArbitraryImpl(resArb);
|
|
7393
|
-
};
|
|
7394
|
-
} else {
|
|
7395
|
-
return smallArbitraryImpl(arb);
|
|
7396
|
-
}
|
|
7397
|
-
}
|
|
7398
|
-
module.exports = {
|
|
7399
|
-
generator: smallGenerator,
|
|
7400
|
-
arbitrary: smallArbitrary
|
|
7401
|
-
};
|
|
7402
|
-
}
|
|
7403
|
-
});
|
|
7404
|
-
|
|
7405
|
-
// ../../node_modules/jsverify/lib/environment.js
|
|
7406
|
-
var require_environment = __commonJS({
|
|
7407
|
-
"../../node_modules/jsverify/lib/environment.js"(exports, module) {
|
|
7408
|
-
"use strict";
|
|
7409
|
-
var arbitrary = require_arbitrary();
|
|
7410
|
-
var fn = require_fn();
|
|
7411
|
-
var primitive = require_primitive();
|
|
7412
|
-
var small = require_small();
|
|
7413
|
-
var string = require_string();
|
|
7414
|
-
var utils = require_utils();
|
|
7415
|
-
var environment = utils.merge(primitive, string, {
|
|
7416
|
-
pair: arbitrary.pair,
|
|
7417
|
-
unit: arbitrary.unit,
|
|
7418
|
-
either: arbitrary.either,
|
|
7419
|
-
dict: arbitrary.dict,
|
|
7420
|
-
array: arbitrary.array,
|
|
7421
|
-
nearray: arbitrary.nearray,
|
|
7422
|
-
json: arbitrary.json,
|
|
7423
|
-
fn: fn.fn,
|
|
7424
|
-
fun: fn.fn,
|
|
7425
|
-
nonshrink: arbitrary.nonshrink,
|
|
7426
|
-
small: small.arbitrary
|
|
7427
|
-
});
|
|
7428
|
-
module.exports = environment;
|
|
7429
|
-
}
|
|
7430
|
-
});
|
|
7431
|
-
|
|
7432
|
-
// ../../node_modules/typify-parser/lib/parser.js
|
|
7433
|
-
var require_parser = __commonJS({
|
|
7434
|
-
"../../node_modules/typify-parser/lib/parser.js"(exports, module) {
|
|
7435
|
-
"use strict";
|
|
7436
|
-
function unescapeString(str) {
|
|
7437
|
-
return str.replace(/\\(?:'|"|\\|n|x[0-9a-fA-F]{2})/g, function(match) {
|
|
7438
|
-
switch (match[1]) {
|
|
7439
|
-
case "'":
|
|
7440
|
-
return "'";
|
|
7441
|
-
case '"':
|
|
7442
|
-
return '"';
|
|
7443
|
-
case "\\":
|
|
7444
|
-
return "\\";
|
|
7445
|
-
case "n":
|
|
7446
|
-
return "\n";
|
|
7447
|
-
case "x":
|
|
7448
|
-
return String.fromCharCode(parseInt(match.substr(2), 16));
|
|
7449
|
-
}
|
|
7450
|
-
});
|
|
7451
|
-
}
|
|
7452
|
-
function lex(input) {
|
|
7453
|
-
var m = input.match(/^([ \t\r\n]+|[\u22a4\u22a5\u2227\u2228\u00d7\u2192\u2026]|\ud835\udfd9|_\|_|\*|\(\)|"(?:[^"\\]|\\[\\'"n]|\\x[0-9a-fA-F]{2})*"|'(?:[^'\\]|\\[\\'"n]|\\x[0-9a-fA-F]{2})*'|[0-9a-zA-Z_\$@]+|,|->|:|;|&|\||\.\.\.|\(|\)|\[|\]|\{|\}|\?)*$/);
|
|
7454
|
-
if (m === null) {
|
|
7455
|
-
throw new SyntaxError("Cannot lex type signature");
|
|
7456
|
-
}
|
|
7457
|
-
m = input.match(/([ \t\r\n]+|[\u22a4\u22a5\u2227\u2228\u00d7\u2192\u2026]|\ud835\udfd9|_\|_|\*|\(\)|"(?:[^"\\]|\\[\\'"n]|\\x[0-9a-fA-F]{2})*"|'(?:[^'\\]|\\[\\'"n]|\\x[0-9a-fA-F]{2})*'|[0-9a-zA-Z_\$@]+|,|->|:|;|&|\||\.\.\.|\(|\)|\[|\]|\{|\}|\?)/g);
|
|
7458
|
-
return m.map(function(token) {
|
|
7459
|
-
switch (token) {
|
|
7460
|
-
case "_|_":
|
|
7461
|
-
return { type: "false" };
|
|
7462
|
-
case "\u22A5":
|
|
7463
|
-
return { type: "false" };
|
|
7464
|
-
case "*":
|
|
7465
|
-
return { type: "true" };
|
|
7466
|
-
case "\u22A4":
|
|
7467
|
-
return { type: "true" };
|
|
7468
|
-
case "()":
|
|
7469
|
-
return { type: "unit" };
|
|
7470
|
-
case "\u{1D7D9}":
|
|
7471
|
-
return { type: "unit" };
|
|
7472
|
-
case "true":
|
|
7473
|
-
return { type: "bool", value: true };
|
|
7474
|
-
case "false":
|
|
7475
|
-
return { type: "bool", value: false };
|
|
7476
|
-
case "rec":
|
|
7477
|
-
return { type: "rec" };
|
|
7478
|
-
case "&":
|
|
7479
|
-
return { type: "&" };
|
|
7480
|
-
case "\u2227":
|
|
7481
|
-
return { type: "&" };
|
|
7482
|
-
case "|":
|
|
7483
|
-
return { type: "|" };
|
|
7484
|
-
case "\u2228":
|
|
7485
|
-
return { type: "|" };
|
|
7486
|
-
case ",":
|
|
7487
|
-
return { type: "," };
|
|
7488
|
-
case "\xD7":
|
|
7489
|
-
return { type: "," };
|
|
7490
|
-
case ";":
|
|
7491
|
-
return { type: ";" };
|
|
7492
|
-
case ":":
|
|
7493
|
-
return { type: ":" };
|
|
7494
|
-
case "(":
|
|
7495
|
-
return { type: "(" };
|
|
7496
|
-
case ")":
|
|
7497
|
-
return { type: ")" };
|
|
7498
|
-
case "[":
|
|
7499
|
-
return { type: "[" };
|
|
7500
|
-
case "]":
|
|
7501
|
-
return { type: "]" };
|
|
7502
|
-
case "{":
|
|
7503
|
-
return { type: "{" };
|
|
7504
|
-
case "}":
|
|
7505
|
-
return { type: "}" };
|
|
7506
|
-
case "?":
|
|
7507
|
-
return { type: "?" };
|
|
7508
|
-
case "->":
|
|
7509
|
-
return { type: "->" };
|
|
7510
|
-
case "\u2192":
|
|
7511
|
-
return { type: "->" };
|
|
7512
|
-
case "...":
|
|
7513
|
-
return { type: "..." };
|
|
7514
|
-
case "\u2026":
|
|
7515
|
-
return { type: "..." };
|
|
7516
|
-
}
|
|
7517
|
-
if (token.match(/^[ \r\r\n]+$/)) {
|
|
7518
|
-
return null;
|
|
7519
|
-
}
|
|
7520
|
-
if (token.match(/^[0-9]+/)) {
|
|
7521
|
-
return { type: "number", value: parseInt(token, 10) };
|
|
7522
|
-
}
|
|
7523
|
-
if (token[0] === "'" || token[0] === '"') {
|
|
7524
|
-
token = token.slice(1, -1);
|
|
7525
|
-
return { type: "string", value: unescapeString(token) };
|
|
7526
|
-
}
|
|
7527
|
-
return { type: "ident", value: token };
|
|
7528
|
-
}).filter(function(token) {
|
|
7529
|
-
return token !== null;
|
|
7530
|
-
});
|
|
7531
|
-
}
|
|
7532
|
-
function makePunctParser(type) {
|
|
7533
|
-
return function(state) {
|
|
7534
|
-
if (state.pos >= state.len) {
|
|
7535
|
-
throw new SyntaxError("Expecting identifier, end-of-input found");
|
|
7536
|
-
}
|
|
7537
|
-
var token = state.tokens[state.pos];
|
|
7538
|
-
if (token.type !== type) {
|
|
7539
|
-
throw new SyntaxError("Expecting '" + type + "', found: " + token.type);
|
|
7540
|
-
}
|
|
7541
|
-
state.pos += 1;
|
|
7542
|
-
return type;
|
|
7543
|
-
};
|
|
7544
|
-
}
|
|
7545
|
-
var colonParser = makePunctParser(":");
|
|
7546
|
-
var openCurlyParser = makePunctParser("{");
|
|
7547
|
-
var closeCurlyParser = makePunctParser("}");
|
|
7548
|
-
var semicolonParser = makePunctParser(";");
|
|
7549
|
-
var openParenParser = makePunctParser("(");
|
|
7550
|
-
var closeParenParser = makePunctParser(")");
|
|
7551
|
-
var openBracketParser = makePunctParser("[");
|
|
7552
|
-
var closeBracketParser = makePunctParser("]");
|
|
7553
|
-
var recKeywordParser = makePunctParser("rec");
|
|
7554
|
-
var arrowParser = makePunctParser("->");
|
|
7555
|
-
function nameParser(state) {
|
|
7556
|
-
if (state.pos >= state.len) {
|
|
7557
|
-
throw new SyntaxError("Expecting identifier, end-of-input found");
|
|
7558
|
-
}
|
|
7559
|
-
var token = state.tokens[state.pos];
|
|
7560
|
-
if (token.type !== "ident") {
|
|
7561
|
-
throw new SyntaxError("Expecting 'ident', found: " + token.type);
|
|
7562
|
-
}
|
|
7563
|
-
state.pos += 1;
|
|
7564
|
-
return token.value;
|
|
7565
|
-
}
|
|
7566
|
-
function recursiveParser(state) {
|
|
7567
|
-
recKeywordParser(state);
|
|
7568
|
-
var name = nameParser(state);
|
|
7569
|
-
arrowParser(state);
|
|
7570
|
-
var value = typeParser(state);
|
|
7571
|
-
return {
|
|
7572
|
-
type: "recursive",
|
|
7573
|
-
name,
|
|
7574
|
-
arg: value
|
|
7575
|
-
};
|
|
7576
|
-
}
|
|
7577
|
-
function recordParser(state) {
|
|
7578
|
-
openCurlyParser(state);
|
|
7579
|
-
var token = state.tokens[state.pos];
|
|
7580
|
-
if (token && token.type === "}") {
|
|
7581
|
-
closeCurlyParser(state);
|
|
7582
|
-
return { type: "record", fields: {} };
|
|
7583
|
-
}
|
|
7584
|
-
var fields = {};
|
|
7585
|
-
while (true) {
|
|
7586
|
-
var name = nameParser(state);
|
|
7587
|
-
colonParser(state);
|
|
7588
|
-
var value = typeParser(state);
|
|
7589
|
-
fields[name] = value;
|
|
7590
|
-
token = state.tokens[state.pos];
|
|
7591
|
-
if (token && token.type === "}") {
|
|
7592
|
-
closeCurlyParser(state);
|
|
7593
|
-
break;
|
|
7594
|
-
} else if (token && token.type === ";") {
|
|
7595
|
-
semicolonParser(state);
|
|
7596
|
-
} else {
|
|
7597
|
-
throw new SyntaxError("Expecting '}' or ';', found: " + token.type);
|
|
7598
|
-
}
|
|
7599
|
-
}
|
|
7600
|
-
return { type: "record", fields };
|
|
7601
|
-
}
|
|
7602
|
-
function postfix(parser, postfixToken, constructor) {
|
|
7603
|
-
return function(state) {
|
|
7604
|
-
var arg = parser(state);
|
|
7605
|
-
var token = state.tokens[state.pos];
|
|
7606
|
-
if (token && token.type === postfixToken) {
|
|
7607
|
-
state.pos += 1;
|
|
7608
|
-
return {
|
|
7609
|
-
type: constructor,
|
|
7610
|
-
arg
|
|
7611
|
-
};
|
|
7612
|
-
} else {
|
|
7613
|
-
return arg;
|
|
7614
|
-
}
|
|
7615
|
-
};
|
|
7616
|
-
}
|
|
7617
|
-
var optionalParser = postfix(terminalParser, "?", "optional");
|
|
7618
|
-
function applicationParser(state) {
|
|
7619
|
-
var rator = optionalParser(state);
|
|
7620
|
-
var rands = [];
|
|
7621
|
-
while (true) {
|
|
7622
|
-
var pos = state.pos;
|
|
7623
|
-
try {
|
|
7624
|
-
var arg = optionalParser(state);
|
|
7625
|
-
rands.push(arg);
|
|
7626
|
-
} catch (err) {
|
|
7627
|
-
state.pos = pos;
|
|
7628
|
-
break;
|
|
7629
|
-
}
|
|
7630
|
-
}
|
|
7631
|
-
if (rands.length === 0) {
|
|
7632
|
-
return rator;
|
|
7633
|
-
} else {
|
|
7634
|
-
return {
|
|
7635
|
-
type: "application",
|
|
7636
|
-
callee: rator,
|
|
7637
|
-
args: rands
|
|
7638
|
-
};
|
|
7639
|
-
}
|
|
7640
|
-
}
|
|
7641
|
-
function separatedBy(parser, separator, constructor) {
|
|
7642
|
-
return function(state) {
|
|
7643
|
-
var list = [parser(state)];
|
|
7644
|
-
while (true) {
|
|
7645
|
-
var token = state.tokens[state.pos];
|
|
7646
|
-
if (token && token.type === separator) {
|
|
7647
|
-
state.pos += 1;
|
|
7648
|
-
} else {
|
|
7649
|
-
break;
|
|
7650
|
-
}
|
|
7651
|
-
list.push(parser(state));
|
|
7652
|
-
}
|
|
7653
|
-
if (list.length === 1) {
|
|
7654
|
-
return list[0];
|
|
7655
|
-
} else {
|
|
7656
|
-
return {
|
|
7657
|
-
type: constructor,
|
|
7658
|
-
args: list
|
|
7659
|
-
};
|
|
7660
|
-
}
|
|
7661
|
-
};
|
|
7662
|
-
}
|
|
7663
|
-
var conjunctionParser = separatedBy(applicationParser, "&", "conjunction");
|
|
7664
|
-
var disjunctionParser = separatedBy(conjunctionParser, "|", "disjunction");
|
|
7665
|
-
var variadicParser = postfix(disjunctionParser, "...", "variadic");
|
|
7666
|
-
function namedParser(state) {
|
|
7667
|
-
var token1 = state.tokens[state.pos];
|
|
7668
|
-
var token2 = state.tokens[state.pos + 1];
|
|
7669
|
-
if (token1 && token2 && token1.type === "ident" && token2.type === ":") {
|
|
7670
|
-
state.pos += 2;
|
|
7671
|
-
var arg = namedParser(state);
|
|
7672
|
-
return {
|
|
7673
|
-
type: "named",
|
|
7674
|
-
name: token1.value,
|
|
7675
|
-
arg
|
|
7676
|
-
};
|
|
7677
|
-
} else {
|
|
7678
|
-
return variadicParser(state);
|
|
7679
|
-
}
|
|
7680
|
-
}
|
|
7681
|
-
var productParser = separatedBy(namedParser, ",", "product");
|
|
7682
|
-
function functionParser(state) {
|
|
7683
|
-
var v = productParser(state);
|
|
7684
|
-
var token = state.tokens[state.pos];
|
|
7685
|
-
if (token && token.type === "->") {
|
|
7686
|
-
state.pos += 1;
|
|
7687
|
-
var result = functionParser(state);
|
|
7688
|
-
return {
|
|
7689
|
-
type: "function",
|
|
7690
|
-
arg: v,
|
|
7691
|
-
result
|
|
7692
|
-
};
|
|
7693
|
-
} else {
|
|
7694
|
-
return v;
|
|
7695
|
-
}
|
|
7696
|
-
}
|
|
7697
|
-
function typeParser(state) {
|
|
7698
|
-
return functionParser(state);
|
|
7699
|
-
}
|
|
7700
|
-
function parenthesesParser(state) {
|
|
7701
|
-
openParenParser(state);
|
|
7702
|
-
var type = typeParser(state);
|
|
7703
|
-
closeParenParser(state);
|
|
7704
|
-
return type;
|
|
7705
|
-
}
|
|
7706
|
-
function bracketParser(state) {
|
|
7707
|
-
openBracketParser(state);
|
|
7708
|
-
var type = typeParser(state);
|
|
7709
|
-
closeBracketParser(state);
|
|
7710
|
-
return {
|
|
7711
|
-
type: "brackets",
|
|
7712
|
-
arg: type
|
|
7713
|
-
};
|
|
7714
|
-
}
|
|
7715
|
-
function terminalParser(state) {
|
|
7716
|
-
if (state.pos >= state.len) {
|
|
7717
|
-
throw new SyntaxError("Expecting terminal, end-of-input found");
|
|
7718
|
-
}
|
|
7719
|
-
var token = state.tokens[state.pos];
|
|
7720
|
-
switch (token.type) {
|
|
7721
|
-
case "false":
|
|
7722
|
-
case "true":
|
|
7723
|
-
case "unit":
|
|
7724
|
-
case "string":
|
|
7725
|
-
case "number":
|
|
7726
|
-
case "bool":
|
|
7727
|
-
case "ident":
|
|
7728
|
-
state.pos += 1;
|
|
7729
|
-
return token;
|
|
7730
|
-
case "{":
|
|
7731
|
-
return recordParser(state);
|
|
7732
|
-
case "(":
|
|
7733
|
-
return parenthesesParser(state);
|
|
7734
|
-
case "[":
|
|
7735
|
-
return bracketParser(state);
|
|
7736
|
-
case "rec":
|
|
7737
|
-
return recursiveParser(state);
|
|
7738
|
-
default:
|
|
7739
|
-
throw new SyntaxError("Expecting terminal, " + token.type + " found");
|
|
7740
|
-
}
|
|
7741
|
-
}
|
|
7742
|
-
function parse(input) {
|
|
7743
|
-
var tokens = lex(input);
|
|
7744
|
-
var state = {
|
|
7745
|
-
pos: 0,
|
|
7746
|
-
len: tokens.length,
|
|
7747
|
-
tokens
|
|
7748
|
-
};
|
|
7749
|
-
var res = typeParser(state);
|
|
7750
|
-
if (state.pos !== state.len) {
|
|
7751
|
-
throw new SyntaxError("expecting end-of-input, " + tokens[state.pos].type + " found");
|
|
7752
|
-
}
|
|
7753
|
-
return res;
|
|
7754
|
-
}
|
|
7755
|
-
function recordFreeVars(fields) {
|
|
7756
|
-
var res = [];
|
|
7757
|
-
for (var k in fields) {
|
|
7758
|
-
var t = fields[k];
|
|
7759
|
-
res = res.concat(freeVarsImpl(t));
|
|
7760
|
-
}
|
|
7761
|
-
return res;
|
|
7762
|
-
}
|
|
7763
|
-
function concatFreeVars(ts) {
|
|
7764
|
-
var res = [];
|
|
7765
|
-
for (var i = 0; i < ts.length; i++) {
|
|
7766
|
-
var t = ts[i];
|
|
7767
|
-
res = res.concat(freeVarsImpl(t));
|
|
7768
|
-
}
|
|
7769
|
-
return res;
|
|
7770
|
-
}
|
|
7771
|
-
function freeVarsImpl(t) {
|
|
7772
|
-
switch (t.type) {
|
|
7773
|
-
case "false":
|
|
7774
|
-
case "true":
|
|
7775
|
-
case "unit":
|
|
7776
|
-
case "string":
|
|
7777
|
-
case "number":
|
|
7778
|
-
case "bool":
|
|
7779
|
-
return [];
|
|
7780
|
-
case "ident":
|
|
7781
|
-
return [t.value];
|
|
7782
|
-
case "record":
|
|
7783
|
-
return recordFreeVars(t.fields);
|
|
7784
|
-
case "named":
|
|
7785
|
-
return freeVarsImpl(t.arg);
|
|
7786
|
-
case "conjunction":
|
|
7787
|
-
return concatFreeVars(t.args);
|
|
7788
|
-
case "disjunction":
|
|
7789
|
-
return concatFreeVars(t.args);
|
|
7790
|
-
case "product":
|
|
7791
|
-
return concatFreeVars(t.args);
|
|
7792
|
-
case "recursive":
|
|
7793
|
-
return freeVarsImpl(t.arg).filter(function(n) {
|
|
7794
|
-
return n !== t.name;
|
|
7795
|
-
});
|
|
7796
|
-
case "optional":
|
|
7797
|
-
return freeVarsImpl(t.arg);
|
|
7798
|
-
case "brackets":
|
|
7799
|
-
return freeVarsImpl(t.arg);
|
|
7800
|
-
case "variadic":
|
|
7801
|
-
return freeVarsImpl(t.arg);
|
|
7802
|
-
case "application":
|
|
7803
|
-
return freeVarsImpl(t.callee).concat(concatFreeVars(t.args));
|
|
7804
|
-
case "function":
|
|
7805
|
-
return freeVarsImpl(t.arg).concat(freeVarsImpl(t.result));
|
|
7806
|
-
}
|
|
7807
|
-
}
|
|
7808
|
-
function uniq(arr) {
|
|
7809
|
-
var res = [];
|
|
7810
|
-
for (var i = 0; i < arr.length; i++) {
|
|
7811
|
-
var x = arr[i];
|
|
7812
|
-
if (res.indexOf(x) === -1) {
|
|
7813
|
-
res.push(x);
|
|
7814
|
-
}
|
|
7815
|
-
}
|
|
7816
|
-
return res;
|
|
7817
|
-
}
|
|
7818
|
-
function freeVars(t) {
|
|
7819
|
-
var fvs = freeVarsImpl(t);
|
|
7820
|
-
fvs.sort();
|
|
7821
|
-
return uniq(fvs);
|
|
7822
|
-
}
|
|
7823
|
-
parse.freeVars = freeVars;
|
|
7824
|
-
module.exports = parse;
|
|
7825
|
-
}
|
|
7826
|
-
});
|
|
7827
|
-
|
|
7828
|
-
// ../../node_modules/jsverify/lib/typify.js
|
|
7829
|
-
var require_typify = __commonJS({
|
|
7830
|
-
"../../node_modules/jsverify/lib/typify.js"(exports, module) {
|
|
7831
|
-
"use strict";
|
|
7832
|
-
var arbitrary = require_arbitrary();
|
|
7833
|
-
var assert = __require("assert");
|
|
7834
|
-
var record = require_record();
|
|
7835
|
-
var array = require_array();
|
|
7836
|
-
var fn = require_fn();
|
|
7837
|
-
var typifyParser = require_parser();
|
|
7838
|
-
var utils = require_utils();
|
|
7839
|
-
var compileType;
|
|
7840
|
-
var compileTypeArray;
|
|
7841
|
-
function compileIdent(env, type) {
|
|
7842
|
-
var g = env[type.value];
|
|
7843
|
-
if (!g) {
|
|
7844
|
-
throw new Error("Unknown arbitrary: " + type.value);
|
|
7845
|
-
}
|
|
7846
|
-
return g;
|
|
7847
|
-
}
|
|
7848
|
-
function compileApplication(env, type) {
|
|
7849
|
-
var callee = compileType(env, type.callee);
|
|
7850
|
-
var args = compileTypeArray(env, type.args);
|
|
7851
|
-
return callee.apply(void 0, args);
|
|
7852
|
-
}
|
|
7853
|
-
function compileFunction(env, type) {
|
|
7854
|
-
var result = compileType(env, type.result);
|
|
7855
|
-
return fn.fn(result);
|
|
7856
|
-
}
|
|
7857
|
-
function compileBrackets(env, type) {
|
|
7858
|
-
var arg = compileType(env, type.arg);
|
|
7859
|
-
return array.array(arg);
|
|
7860
|
-
}
|
|
7861
|
-
function compileDisjunction(env, type) {
|
|
7862
|
-
var args = compileTypeArray(env, type.args);
|
|
7863
|
-
return arbitrary.sum(args);
|
|
7864
|
-
}
|
|
7865
|
-
function compileConjunction(env, type) {
|
|
7866
|
-
var args = compileTypeArray(env, type.args);
|
|
7867
|
-
return arbitrary.tuple(args);
|
|
7868
|
-
}
|
|
7869
|
-
function compileRecord(env, type) {
|
|
7870
|
-
var spec = {};
|
|
7871
|
-
Object.keys(type.fields).forEach(function(key) {
|
|
7872
|
-
spec[key] = compileType(env, type.fields[key]);
|
|
7873
|
-
});
|
|
7874
|
-
return record.arbitrary(spec);
|
|
7875
|
-
}
|
|
7876
|
-
function compileRecursive(env, type) {
|
|
7877
|
-
assert(type.arg.type === "disjunction", "recursive type's argument should be disjunction");
|
|
7878
|
-
var name = type.name;
|
|
7879
|
-
var par = utils.partition(type.arg.args, function(t) {
|
|
7880
|
-
return typifyParser.freeVars(t).indexOf(name) === -1;
|
|
7881
|
-
});
|
|
7882
|
-
var terminal = par[0];
|
|
7883
|
-
if (terminal.length === 0) {
|
|
7884
|
-
throw new Error("Recursive type without non-recursive branch");
|
|
7885
|
-
}
|
|
7886
|
-
var terminalArb = compileType(env, {
|
|
7887
|
-
type: "disjunction",
|
|
7888
|
-
args: terminal
|
|
7889
|
-
});
|
|
7890
|
-
return arbitrary.recursive(terminalArb, function(arb) {
|
|
7891
|
-
var arbEnv = {};
|
|
7892
|
-
arbEnv[name] = arb;
|
|
7893
|
-
var newEnv = utils.merge(env, arbEnv);
|
|
7894
|
-
return compileType(newEnv, type.arg);
|
|
7895
|
-
});
|
|
7896
|
-
}
|
|
7897
|
-
compileType = function compileTypeFn(env, type) {
|
|
7898
|
-
switch (type.type) {
|
|
7899
|
-
case "ident":
|
|
7900
|
-
return compileIdent(env, type);
|
|
7901
|
-
case "application":
|
|
7902
|
-
return compileApplication(env, type);
|
|
7903
|
-
case "function":
|
|
7904
|
-
return compileFunction(env, type);
|
|
7905
|
-
case "brackets":
|
|
7906
|
-
return compileBrackets(env, type);
|
|
7907
|
-
case "disjunction":
|
|
7908
|
-
return compileDisjunction(env, type);
|
|
7909
|
-
case "conjunction":
|
|
7910
|
-
return compileConjunction(env, type);
|
|
7911
|
-
case "record":
|
|
7912
|
-
return compileRecord(env, type);
|
|
7913
|
-
case "number":
|
|
7914
|
-
return type.value;
|
|
7915
|
-
case "recursive":
|
|
7916
|
-
return compileRecursive(env, type);
|
|
7917
|
-
default:
|
|
7918
|
-
throw new Error("Unsupported typify ast type: " + type.type);
|
|
7919
|
-
}
|
|
7920
|
-
};
|
|
7921
|
-
compileTypeArray = function compileTypeArrayFn(env, types) {
|
|
7922
|
-
return types.map(function(type) {
|
|
7923
|
-
return compileType(env, type);
|
|
7924
|
-
});
|
|
7925
|
-
};
|
|
7926
|
-
function parseTypify(env, str) {
|
|
7927
|
-
var type = typifyParser(str);
|
|
7928
|
-
return compileType(env, type);
|
|
7929
|
-
}
|
|
7930
|
-
module.exports = {
|
|
7931
|
-
parseTypify
|
|
7932
|
-
};
|
|
7933
|
-
}
|
|
7934
|
-
});
|
|
7935
|
-
|
|
7936
|
-
// ../../node_modules/jsverify/lib/recordWithEnv.js
|
|
7937
|
-
var require_recordWithEnv = __commonJS({
|
|
7938
|
-
"../../node_modules/jsverify/lib/recordWithEnv.js"(exports, module) {
|
|
7939
|
-
"use strict";
|
|
7940
|
-
var environment = require_environment();
|
|
7941
|
-
var record = require_record();
|
|
7942
|
-
var typify = require_typify();
|
|
7943
|
-
var utils = require_utils();
|
|
7944
|
-
function recordWithEnv(spec, userenv) {
|
|
7945
|
-
var env = userenv ? utils.merge(environment, userenv) : environment;
|
|
7946
|
-
var parsedSpec = {};
|
|
7947
|
-
Object.keys(spec).forEach(function(k) {
|
|
7948
|
-
var arb = spec[k];
|
|
7949
|
-
parsedSpec[k] = typeof arb === "string" ? typify.parseTypify(env, arb) : arb;
|
|
7950
|
-
});
|
|
7951
|
-
return record.arbitrary(parsedSpec);
|
|
7952
|
-
}
|
|
7953
|
-
module.exports = recordWithEnv;
|
|
7954
|
-
}
|
|
7955
|
-
});
|
|
7956
|
-
|
|
7957
|
-
// ../../node_modules/jsverify/lib/api.js
|
|
7958
|
-
var require_api = __commonJS({
|
|
7959
|
-
"../../node_modules/jsverify/lib/api.js"(exports, module) {
|
|
7960
|
-
"use strict";
|
|
7961
|
-
var arbitrary = require_arbitrary();
|
|
7962
|
-
var bless = require_bless();
|
|
7963
|
-
var dict = require_dict();
|
|
7964
|
-
var generator = require_generator();
|
|
7965
|
-
var json = require_json();
|
|
7966
|
-
var primitive = require_primitive();
|
|
7967
|
-
var record = require_record();
|
|
7968
|
-
var recordWithEnv = require_recordWithEnv();
|
|
7969
|
-
var shrink = require_shrink();
|
|
7970
|
-
var small = require_small();
|
|
7971
|
-
var string = require_string();
|
|
7972
|
-
var api = {
|
|
7973
|
-
arbitrary: {
|
|
7974
|
-
small: small.arbitrary,
|
|
7975
|
-
bless,
|
|
7976
|
-
record: recordWithEnv,
|
|
7977
|
-
nonshrink: arbitrary.nonshrink,
|
|
7978
|
-
pair: arbitrary.pair,
|
|
7979
|
-
either: arbitrary.either,
|
|
7980
|
-
unit: arbitrary.unit,
|
|
7981
|
-
dict: arbitrary.dict,
|
|
7982
|
-
json: arbitrary.json,
|
|
7983
|
-
nearray: arbitrary.nearray,
|
|
7984
|
-
array: arbitrary.array,
|
|
7985
|
-
tuple: arbitrary.tuple,
|
|
7986
|
-
sum: arbitrary.sum,
|
|
7987
|
-
oneof: arbitrary.oneof,
|
|
7988
|
-
recursive: arbitrary.recursive,
|
|
7989
|
-
letrec: arbitrary.letrec
|
|
7990
|
-
},
|
|
7991
|
-
generator: {
|
|
7992
|
-
dict: dict.generator,
|
|
7993
|
-
json: json.json.generator,
|
|
7994
|
-
small: small.generator,
|
|
7995
|
-
record: record.generator
|
|
7996
|
-
},
|
|
7997
|
-
shrink: {
|
|
7998
|
-
record: record.shrink
|
|
7999
|
-
}
|
|
8000
|
-
};
|
|
8001
|
-
var k;
|
|
8002
|
-
for (k in primitive) {
|
|
8003
|
-
api.arbitrary[k] = primitive[k];
|
|
8004
|
-
}
|
|
8005
|
-
for (k in string) {
|
|
8006
|
-
api.arbitrary[k] = string[k];
|
|
8007
|
-
}
|
|
8008
|
-
for (k in shrink) {
|
|
8009
|
-
api.shrink[k] = shrink[k];
|
|
8010
|
-
}
|
|
8011
|
-
for (k in generator) {
|
|
8012
|
-
api.generator[k] = generator[k];
|
|
8013
|
-
}
|
|
8014
|
-
module.exports = api;
|
|
8015
|
-
}
|
|
8016
|
-
});
|
|
8017
|
-
|
|
8018
|
-
// ../../node_modules/trampa/index.js
|
|
8019
|
-
var require_trampa = __commonJS({
|
|
8020
|
-
"../../node_modules/trampa/index.js"(exports, module) {
|
|
8021
|
-
"use strict";
|
|
8022
|
-
var assert = __require("assert");
|
|
8023
|
-
function Done(x) {
|
|
8024
|
-
this.x = x;
|
|
8025
|
-
}
|
|
8026
|
-
function Cont(tramp, cont) {
|
|
8027
|
-
assert(typeof cont === "function");
|
|
8028
|
-
this.tramp = tramp;
|
|
8029
|
-
this.cont = cont;
|
|
8030
|
-
}
|
|
8031
|
-
function isTrampoline(t) {
|
|
8032
|
-
return t instanceof Done || t instanceof Cont;
|
|
8033
|
-
}
|
|
8034
|
-
function wrap(t) {
|
|
8035
|
-
return isTrampoline(t) ? t : new Done(t);
|
|
8036
|
-
}
|
|
8037
|
-
function lazy(computation) {
|
|
8038
|
-
assert(typeof computation === "function", "lazy: computation should be function");
|
|
8039
|
-
return wrap().jump(computation);
|
|
8040
|
-
}
|
|
8041
|
-
Done.prototype.jump = function(f) {
|
|
8042
|
-
return new Cont(this, function(x) {
|
|
8043
|
-
return wrap(f(x));
|
|
8044
|
-
});
|
|
8045
|
-
};
|
|
8046
|
-
Cont.prototype.jump = Done.prototype.jump;
|
|
8047
|
-
function execute(curr, params) {
|
|
8048
|
-
params = params || {};
|
|
8049
|
-
var debug = params.debug || false;
|
|
8050
|
-
var log = params.log || console.log;
|
|
8051
|
-
var stack = [];
|
|
8052
|
-
while (true) {
|
|
8053
|
-
if (debug) {
|
|
8054
|
-
log("trampoline execute: stack size " + stack.length);
|
|
8055
|
-
}
|
|
8056
|
-
if (curr instanceof Done) {
|
|
8057
|
-
if (stack.length === 0) {
|
|
8058
|
-
return curr.x;
|
|
8059
|
-
} else {
|
|
8060
|
-
curr = stack[stack.length - 1](curr.x);
|
|
8061
|
-
stack.pop();
|
|
8062
|
-
}
|
|
8063
|
-
} else {
|
|
8064
|
-
assert(curr instanceof Cont);
|
|
8065
|
-
stack.push(curr.cont);
|
|
8066
|
-
curr = curr.tramp;
|
|
8067
|
-
}
|
|
8068
|
-
}
|
|
8069
|
-
}
|
|
8070
|
-
Done.prototype.run = Cont.prototype.run = function(params) {
|
|
8071
|
-
return execute(this, params);
|
|
8072
|
-
};
|
|
8073
|
-
module.exports = {
|
|
8074
|
-
isTrampoline,
|
|
8075
|
-
wrap,
|
|
8076
|
-
lazy
|
|
8077
|
-
};
|
|
8078
|
-
}
|
|
8079
|
-
});
|
|
8080
|
-
|
|
8081
|
-
// ../../node_modules/jsverify/lib/functor.js
|
|
8082
|
-
var require_functor = __commonJS({
|
|
8083
|
-
"../../node_modules/jsverify/lib/functor.js"(exports, module) {
|
|
8084
|
-
"use strict";
|
|
8085
|
-
var trampa = require_trampa();
|
|
8086
|
-
function isPromise(p) {
|
|
8087
|
-
return new Object(p) === p && typeof p.then === "function";
|
|
8088
|
-
}
|
|
8089
|
-
function map(p, g) {
|
|
8090
|
-
if (isPromise(p)) {
|
|
8091
|
-
return p.then(function(x) {
|
|
8092
|
-
return map(x, g);
|
|
5352
|
+
return source;
|
|
5353
|
+
}(), { "chain": false });
|
|
5354
|
+
lodash.VERSION = VERSION;
|
|
5355
|
+
arrayEach(["bind", "bindKey", "curry", "curryRight", "partial", "partialRight"], function(methodName) {
|
|
5356
|
+
lodash[methodName].placeholder = lodash;
|
|
8093
5357
|
});
|
|
8094
|
-
|
|
8095
|
-
|
|
8096
|
-
|
|
5358
|
+
arrayEach(["drop", "take"], function(methodName, index) {
|
|
5359
|
+
LazyWrapper.prototype[methodName] = function(n) {
|
|
5360
|
+
n = n === undefined2 ? 1 : nativeMax(toInteger(n), 0);
|
|
5361
|
+
var result2 = this.__filtered__ && !index ? new LazyWrapper(this) : this.clone();
|
|
5362
|
+
if (result2.__filtered__) {
|
|
5363
|
+
result2.__takeCount__ = nativeMin(n, result2.__takeCount__);
|
|
5364
|
+
} else {
|
|
5365
|
+
result2.__views__.push({
|
|
5366
|
+
"size": nativeMin(n, MAX_ARRAY_LENGTH),
|
|
5367
|
+
"type": methodName + (result2.__dir__ < 0 ? "Right" : "")
|
|
5368
|
+
});
|
|
5369
|
+
}
|
|
5370
|
+
return result2;
|
|
5371
|
+
};
|
|
5372
|
+
LazyWrapper.prototype[methodName + "Right"] = function(n) {
|
|
5373
|
+
return this.reverse()[methodName](n).reverse();
|
|
5374
|
+
};
|
|
8097
5375
|
});
|
|
8098
|
-
|
|
8099
|
-
|
|
8100
|
-
|
|
8101
|
-
|
|
8102
|
-
|
|
8103
|
-
|
|
8104
|
-
|
|
8105
|
-
|
|
8106
|
-
|
|
8107
|
-
|
|
8108
|
-
|
|
8109
|
-
exc = e;
|
|
8110
|
-
}
|
|
8111
|
-
if (isPromise(r)) {
|
|
8112
|
-
return r.then(
|
|
8113
|
-
h,
|
|
8114
|
-
function(e) {
|
|
8115
|
-
return h(false, e);
|
|
8116
|
-
}
|
|
8117
|
-
);
|
|
8118
|
-
} else {
|
|
8119
|
-
return h(r, exc);
|
|
8120
|
-
}
|
|
8121
|
-
}
|
|
8122
|
-
function run(x) {
|
|
8123
|
-
if (isPromise(x)) {
|
|
8124
|
-
return x.then(run);
|
|
8125
|
-
} else if (trampa.isTrampoline(x)) {
|
|
8126
|
-
return run(x.run());
|
|
8127
|
-
} else {
|
|
8128
|
-
return x;
|
|
8129
|
-
}
|
|
8130
|
-
}
|
|
8131
|
-
function pure(x) {
|
|
8132
|
-
if (isPromise(x)) {
|
|
8133
|
-
return x;
|
|
8134
|
-
} else {
|
|
8135
|
-
return trampa.wrap(x);
|
|
8136
|
-
}
|
|
8137
|
-
}
|
|
8138
|
-
module.exports = {
|
|
8139
|
-
isPromise,
|
|
8140
|
-
map,
|
|
8141
|
-
pure,
|
|
8142
|
-
bind,
|
|
8143
|
-
run
|
|
8144
|
-
};
|
|
8145
|
-
}
|
|
8146
|
-
});
|
|
8147
|
-
|
|
8148
|
-
// ../../node_modules/jsverify/lib/suchthat.js
|
|
8149
|
-
var require_suchthat = __commonJS({
|
|
8150
|
-
"../../node_modules/jsverify/lib/suchthat.js"(exports, module) {
|
|
8151
|
-
"use strict";
|
|
8152
|
-
var environment = require_environment();
|
|
8153
|
-
var typify = require_typify();
|
|
8154
|
-
var utils = require_utils();
|
|
8155
|
-
var generator = require_generator();
|
|
8156
|
-
var shrink = require_shrink();
|
|
8157
|
-
var arbitraryBless = require_arbitraryBless();
|
|
8158
|
-
function suchthat(arb, userenv, predicate) {
|
|
8159
|
-
var env;
|
|
8160
|
-
if (arguments.length === 2) {
|
|
8161
|
-
predicate = userenv;
|
|
8162
|
-
env = environment;
|
|
8163
|
-
} else {
|
|
8164
|
-
env = utils.merge(environment, userenv);
|
|
8165
|
-
}
|
|
8166
|
-
arb = typeof arb === "string" ? typify.parseTypify(env, arb) : arb;
|
|
8167
|
-
arb = utils.force(arb);
|
|
8168
|
-
return arbitraryBless({
|
|
8169
|
-
generator: generator.bless(function(size) {
|
|
8170
|
-
for (var i = 0; ; i++) {
|
|
8171
|
-
if (i > 5) {
|
|
8172
|
-
i = 0;
|
|
8173
|
-
size += 1;
|
|
8174
|
-
}
|
|
8175
|
-
var x = arb.generator(size);
|
|
8176
|
-
if (predicate(x)) {
|
|
8177
|
-
return x;
|
|
8178
|
-
}
|
|
8179
|
-
}
|
|
8180
|
-
}),
|
|
8181
|
-
shrink: shrink.bless(function(x) {
|
|
8182
|
-
return arb.shrink(x).filter(predicate);
|
|
8183
|
-
}),
|
|
8184
|
-
show: arb.show
|
|
8185
|
-
});
|
|
8186
|
-
}
|
|
8187
|
-
module.exports = {
|
|
8188
|
-
suchthat
|
|
8189
|
-
};
|
|
8190
|
-
}
|
|
8191
|
-
});
|
|
8192
|
-
|
|
8193
|
-
// ../../node_modules/jsverify/lib/jsverify.js
|
|
8194
|
-
var require_jsverify = __commonJS({
|
|
8195
|
-
"../../node_modules/jsverify/lib/jsverify.js"(exports, module) {
|
|
8196
|
-
"use strict";
|
|
8197
|
-
var assert = __require("assert");
|
|
8198
|
-
var lazyseq2 = require_lazy_seq();
|
|
8199
|
-
var api = require_api();
|
|
8200
|
-
var either = require_either();
|
|
8201
|
-
var environment = require_environment();
|
|
8202
|
-
var FMap = require_finitemap();
|
|
8203
|
-
var fn = require_fn();
|
|
8204
|
-
var functor = require_functor();
|
|
8205
|
-
var random = require_random();
|
|
8206
|
-
var show = require_show();
|
|
8207
|
-
var shrink = require_shrink();
|
|
8208
|
-
var suchthat = require_suchthat();
|
|
8209
|
-
var sum = require_sum();
|
|
8210
|
-
var typify = require_typify();
|
|
8211
|
-
var utils = require_utils();
|
|
8212
|
-
function shrinkResult(arbs, x, test, size, shrinksN, exc, transform) {
|
|
8213
|
-
assert(arbs.length === x.length, "shrinkResult: arbs and x has to be of same size");
|
|
8214
|
-
assert(typeof size === "number", "shrinkResult: size should be number");
|
|
8215
|
-
assert(typeof shrinksN === "number", "shrinkResult: shrinkN should be number");
|
|
8216
|
-
var shrinks = utils.pluck(arbs, "shrink");
|
|
8217
|
-
var shows = utils.pluck(arbs, "show");
|
|
8218
|
-
var shrinked = shrink.tuple(shrinks, x);
|
|
8219
|
-
var shrinkP = lazyseq2.fold(shrinked, true, function(y, rest) {
|
|
8220
|
-
var t = test(size, y, shrinksN + 1);
|
|
8221
|
-
return functor.map(t, function(tprime) {
|
|
8222
|
-
return tprime !== true ? tprime : rest();
|
|
5376
|
+
arrayEach(["filter", "map", "takeWhile"], function(methodName, index) {
|
|
5377
|
+
var type = index + 1, isFilter = type == LAZY_FILTER_FLAG || type == LAZY_WHILE_FLAG;
|
|
5378
|
+
LazyWrapper.prototype[methodName] = function(iteratee2) {
|
|
5379
|
+
var result2 = this.clone();
|
|
5380
|
+
result2.__iteratees__.push({
|
|
5381
|
+
"iteratee": getIteratee(iteratee2, 3),
|
|
5382
|
+
"type": type
|
|
5383
|
+
});
|
|
5384
|
+
result2.__filtered__ = result2.__filtered__ || isFilter;
|
|
5385
|
+
return result2;
|
|
5386
|
+
};
|
|
8223
5387
|
});
|
|
8224
|
-
|
|
8225
|
-
|
|
8226
|
-
|
|
8227
|
-
|
|
8228
|
-
counterexample: x,
|
|
8229
|
-
counterexamplestr: show.tuple(shows, x),
|
|
8230
|
-
shrinks: shrinksN,
|
|
8231
|
-
exc
|
|
5388
|
+
arrayEach(["head", "last"], function(methodName, index) {
|
|
5389
|
+
var takeName = "take" + (index ? "Right" : "");
|
|
5390
|
+
LazyWrapper.prototype[methodName] = function() {
|
|
5391
|
+
return this[takeName](1).value()[0];
|
|
8232
5392
|
};
|
|
8233
|
-
return transform(res);
|
|
8234
|
-
} else {
|
|
8235
|
-
return shrinkPPrime;
|
|
8236
|
-
}
|
|
8237
|
-
});
|
|
8238
|
-
}
|
|
8239
|
-
function isArbitrary(arb) {
|
|
8240
|
-
return (typeof arb === "object" || typeof arb === "function") && typeof arb.generator === "function" && typeof arb.shrink === "function" && typeof arb.show === "function";
|
|
8241
|
-
}
|
|
8242
|
-
function forall() {
|
|
8243
|
-
var args = Array.prototype.slice.call(arguments);
|
|
8244
|
-
var gens = args.slice(0, -1);
|
|
8245
|
-
var property = args[args.length - 1];
|
|
8246
|
-
var env;
|
|
8247
|
-
var lastgen = gens[gens.length - 1];
|
|
8248
|
-
if (!isArbitrary(lastgen) && typeof lastgen !== "string") {
|
|
8249
|
-
env = utils.merge(environment, lastgen);
|
|
8250
|
-
gens = gens.slice(0, -1);
|
|
8251
|
-
} else {
|
|
8252
|
-
env = environment;
|
|
8253
|
-
}
|
|
8254
|
-
assert(gens.length > 0, "forall requires at least single generator");
|
|
8255
|
-
gens = gens.map(function(g) {
|
|
8256
|
-
g = typeof g === "string" ? typify.parseTypify(env, g) : g;
|
|
8257
|
-
return utils.force(g);
|
|
8258
|
-
});
|
|
8259
|
-
assert(typeof property === "function", "property should be a function");
|
|
8260
|
-
function test(size, x, shrinks) {
|
|
8261
|
-
assert(Array.isArray(x), "generators results should be always tuple");
|
|
8262
|
-
return functor.bind(property, x, function(r, exc) {
|
|
8263
|
-
if (r === true) {
|
|
8264
|
-
return true;
|
|
8265
|
-
} else if (typeof r === "function") {
|
|
8266
|
-
var rRec = r(size);
|
|
8267
|
-
return functor.map(rRec, function(rRecPrime) {
|
|
8268
|
-
if (rRecPrime === true) {
|
|
8269
|
-
return true;
|
|
8270
|
-
} else {
|
|
8271
|
-
return shrinkResult(gens, x, test, size, shrinks, exc, function(rr) {
|
|
8272
|
-
return {
|
|
8273
|
-
counterexample: rr.counterexample.concat(rRecPrime.counterexample),
|
|
8274
|
-
counterexamplestr: rr.counterexamplestr,
|
|
8275
|
-
// + "; " + rRec.counterexamplestr,
|
|
8276
|
-
shrinks: rr.shrinks,
|
|
8277
|
-
exc: rr.exc || rRecPrime.exc
|
|
8278
|
-
};
|
|
8279
|
-
});
|
|
8280
|
-
}
|
|
8281
|
-
});
|
|
8282
|
-
} else {
|
|
8283
|
-
return shrinkResult(gens, x, test, size, shrinks, exc || r, utils.identity);
|
|
8284
|
-
}
|
|
8285
5393
|
});
|
|
8286
|
-
|
|
8287
|
-
|
|
8288
|
-
|
|
8289
|
-
|
|
5394
|
+
arrayEach(["initial", "tail"], function(methodName, index) {
|
|
5395
|
+
var dropName = "drop" + (index ? "" : "Right");
|
|
5396
|
+
LazyWrapper.prototype[methodName] = function() {
|
|
5397
|
+
return this.__filtered__ ? new LazyWrapper(this) : this[dropName](1);
|
|
5398
|
+
};
|
|
8290
5399
|
});
|
|
8291
|
-
|
|
8292
|
-
|
|
8293
|
-
|
|
8294
|
-
|
|
8295
|
-
|
|
8296
|
-
|
|
8297
|
-
|
|
8298
|
-
|
|
8299
|
-
|
|
8300
|
-
|
|
8301
|
-
|
|
8302
|
-
|
|
8303
|
-
msg += "\nStack trace: " + r.exc.stack;
|
|
8304
|
-
}
|
|
8305
|
-
} else {
|
|
8306
|
-
msg += "Error: " + r.exc;
|
|
8307
|
-
}
|
|
8308
|
-
}
|
|
8309
|
-
return msg;
|
|
8310
|
-
}
|
|
8311
|
-
function findRngState(argv) {
|
|
8312
|
-
for (var i = 0; i < argv.length - 1; i++) {
|
|
8313
|
-
if (argv[i] === "--jsverifyRngState") {
|
|
8314
|
-
return argv[i + 1];
|
|
8315
|
-
}
|
|
8316
|
-
}
|
|
8317
|
-
}
|
|
8318
|
-
function check(property, opts) {
|
|
8319
|
-
opts = opts || {};
|
|
8320
|
-
opts.size = opts.size || 50;
|
|
8321
|
-
opts.tests = opts.tests || 100;
|
|
8322
|
-
opts.quiet = opts.quiet || false;
|
|
8323
|
-
assert(typeof property === "function", "property should be a function");
|
|
8324
|
-
var state;
|
|
8325
|
-
if (opts.rngState) {
|
|
8326
|
-
random.setStateString(opts.rngState);
|
|
8327
|
-
} else if (typeof process !== "undefined") {
|
|
8328
|
-
var argvState = findRngState(process.argv);
|
|
8329
|
-
if (argvState) {
|
|
8330
|
-
random.setStateString(argvState);
|
|
8331
|
-
}
|
|
8332
|
-
}
|
|
8333
|
-
function loop(i) {
|
|
8334
|
-
state = random.currentStateString();
|
|
8335
|
-
if (i > opts.tests) {
|
|
8336
|
-
return true;
|
|
8337
|
-
}
|
|
8338
|
-
var size = random(0, opts.size);
|
|
8339
|
-
var r = functor.pure(property(size));
|
|
8340
|
-
return functor.map(r, function(rPrime) {
|
|
8341
|
-
if (rPrime === true) {
|
|
8342
|
-
return loop(i + 1);
|
|
8343
|
-
} else {
|
|
8344
|
-
rPrime.tests = i;
|
|
8345
|
-
if (!opts.quiet) {
|
|
8346
|
-
console.error(formatFailedCase(rPrime, state, true), rPrime.counterexample);
|
|
8347
|
-
}
|
|
8348
|
-
return rPrime;
|
|
5400
|
+
LazyWrapper.prototype.compact = function() {
|
|
5401
|
+
return this.filter(identity);
|
|
5402
|
+
};
|
|
5403
|
+
LazyWrapper.prototype.find = function(predicate) {
|
|
5404
|
+
return this.filter(predicate).head();
|
|
5405
|
+
};
|
|
5406
|
+
LazyWrapper.prototype.findLast = function(predicate) {
|
|
5407
|
+
return this.reverse().find(predicate);
|
|
5408
|
+
};
|
|
5409
|
+
LazyWrapper.prototype.invokeMap = baseRest(function(path2, args) {
|
|
5410
|
+
if (typeof path2 == "function") {
|
|
5411
|
+
return new LazyWrapper(this);
|
|
8349
5412
|
}
|
|
5413
|
+
return this.map(function(value) {
|
|
5414
|
+
return baseInvoke(value, path2, args);
|
|
5415
|
+
});
|
|
8350
5416
|
});
|
|
8351
|
-
|
|
8352
|
-
|
|
8353
|
-
|
|
8354
|
-
|
|
8355
|
-
|
|
5417
|
+
LazyWrapper.prototype.reject = function(predicate) {
|
|
5418
|
+
return this.filter(negate(getIteratee(predicate)));
|
|
5419
|
+
};
|
|
5420
|
+
LazyWrapper.prototype.slice = function(start, end) {
|
|
5421
|
+
start = toInteger(start);
|
|
5422
|
+
var result2 = this;
|
|
5423
|
+
if (result2.__filtered__ && (start > 0 || end < 0)) {
|
|
5424
|
+
return new LazyWrapper(result2);
|
|
8356
5425
|
}
|
|
8357
|
-
|
|
8358
|
-
|
|
8359
|
-
|
|
8360
|
-
|
|
8361
|
-
}));
|
|
8362
|
-
}
|
|
8363
|
-
function checkThrow(property, opts) {
|
|
8364
|
-
opts = opts || {};
|
|
8365
|
-
if (opts.quiet === void 0) {
|
|
8366
|
-
opts.quiet = true;
|
|
8367
|
-
}
|
|
8368
|
-
return functor.run(functor.map(check(property, opts), function(r) {
|
|
8369
|
-
if (r !== true) {
|
|
8370
|
-
if (r.exc instanceof Error) {
|
|
8371
|
-
r.exc.message = formatFailedCase(r);
|
|
8372
|
-
throw r.exc;
|
|
8373
|
-
} else {
|
|
8374
|
-
throw new Error(formatFailedCase(r));
|
|
5426
|
+
if (start < 0) {
|
|
5427
|
+
result2 = result2.takeRight(-start);
|
|
5428
|
+
} else if (start) {
|
|
5429
|
+
result2 = result2.drop(start);
|
|
8375
5430
|
}
|
|
8376
|
-
|
|
8377
|
-
|
|
8378
|
-
|
|
8379
|
-
|
|
8380
|
-
|
|
8381
|
-
|
|
8382
|
-
|
|
8383
|
-
return
|
|
8384
|
-
|
|
8385
|
-
|
|
8386
|
-
|
|
8387
|
-
|
|
5431
|
+
if (end !== undefined2) {
|
|
5432
|
+
end = toInteger(end);
|
|
5433
|
+
result2 = end < 0 ? result2.dropRight(-end) : result2.take(end - start);
|
|
5434
|
+
}
|
|
5435
|
+
return result2;
|
|
5436
|
+
};
|
|
5437
|
+
LazyWrapper.prototype.takeRightWhile = function(predicate) {
|
|
5438
|
+
return this.reverse().takeWhile(predicate).reverse();
|
|
5439
|
+
};
|
|
5440
|
+
LazyWrapper.prototype.toArray = function() {
|
|
5441
|
+
return this.take(MAX_ARRAY_LENGTH);
|
|
5442
|
+
};
|
|
5443
|
+
baseForOwn(LazyWrapper.prototype, function(func, methodName) {
|
|
5444
|
+
var checkIteratee = /^(?:filter|find|map|reject)|While$/.test(methodName), isTaker = /^(?:head|last)$/.test(methodName), lodashFunc = lodash[isTaker ? "take" + (methodName == "last" ? "Right" : "") : methodName], retUnwrapped = isTaker || /^find/.test(methodName);
|
|
5445
|
+
if (!lodashFunc) {
|
|
5446
|
+
return;
|
|
5447
|
+
}
|
|
5448
|
+
lodash.prototype[methodName] = function() {
|
|
5449
|
+
var value = this.__wrapped__, args = isTaker ? [1] : arguments, isLazy = value instanceof LazyWrapper, iteratee2 = args[0], useLazy = isLazy || isArray(value);
|
|
5450
|
+
var interceptor = function(value2) {
|
|
5451
|
+
var result3 = lodashFunc.apply(lodash, arrayPush([value2], args));
|
|
5452
|
+
return isTaker && chainAll ? result3[0] : result3;
|
|
5453
|
+
};
|
|
5454
|
+
if (useLazy && checkIteratee && typeof iteratee2 == "function" && iteratee2.length != 1) {
|
|
5455
|
+
isLazy = useLazy = false;
|
|
5456
|
+
}
|
|
5457
|
+
var chainAll = this.__chain__, isHybrid = !!this.__actions__.length, isUnwrapped = retUnwrapped && !chainAll, onlyLazy = isLazy && !isHybrid;
|
|
5458
|
+
if (!retUnwrapped && useLazy) {
|
|
5459
|
+
value = onlyLazy ? value : new LazyWrapper(this);
|
|
5460
|
+
var result2 = func.apply(value, args);
|
|
5461
|
+
result2.__actions__.push({ "func": thru, "args": [interceptor], "thisArg": undefined2 });
|
|
5462
|
+
return new LodashWrapper(result2, chainAll);
|
|
5463
|
+
}
|
|
5464
|
+
if (isUnwrapped && onlyLazy) {
|
|
5465
|
+
return func.apply(this, args);
|
|
8388
5466
|
}
|
|
8389
|
-
|
|
5467
|
+
result2 = this.thru(interceptor);
|
|
5468
|
+
return isUnwrapped ? isTaker ? result2.value()[0] : result2.value() : result2;
|
|
5469
|
+
};
|
|
8390
5470
|
});
|
|
8391
|
-
|
|
8392
|
-
|
|
8393
|
-
|
|
8394
|
-
|
|
5471
|
+
arrayEach(["pop", "push", "shift", "sort", "splice", "unshift"], function(methodName) {
|
|
5472
|
+
var func = arrayProto[methodName], chainName = /^(?:push|sort|unshift)$/.test(methodName) ? "tap" : "thru", retUnwrapped = /^(?:pop|shift)$/.test(methodName);
|
|
5473
|
+
lodash.prototype[methodName] = function() {
|
|
5474
|
+
var args = arguments;
|
|
5475
|
+
if (retUnwrapped && !this.__chain__) {
|
|
5476
|
+
var value = this.value();
|
|
5477
|
+
return func.apply(isArray(value) ? value : [], args);
|
|
5478
|
+
}
|
|
5479
|
+
return this[chainName](function(value2) {
|
|
5480
|
+
return func.apply(isArray(value2) ? value2 : [], args);
|
|
5481
|
+
});
|
|
5482
|
+
};
|
|
8395
5483
|
});
|
|
8396
|
-
|
|
8397
|
-
|
|
8398
|
-
|
|
8399
|
-
|
|
8400
|
-
|
|
8401
|
-
|
|
8402
|
-
|
|
8403
|
-
|
|
8404
|
-
return function(count) {
|
|
8405
|
-
if (typeof count === "number") {
|
|
8406
|
-
var acc = [];
|
|
8407
|
-
count = Math.abs(count);
|
|
8408
|
-
for (var i = 0; i < count; i++) {
|
|
8409
|
-
acc.push(arb.generator(size));
|
|
5484
|
+
baseForOwn(LazyWrapper.prototype, function(func, methodName) {
|
|
5485
|
+
var lodashFunc = lodash[methodName];
|
|
5486
|
+
if (lodashFunc) {
|
|
5487
|
+
var key = lodashFunc.name + "";
|
|
5488
|
+
if (!hasOwnProperty.call(realNames, key)) {
|
|
5489
|
+
realNames[key] = [];
|
|
5490
|
+
}
|
|
5491
|
+
realNames[key].push({ "name": methodName, "func": lodashFunc });
|
|
8410
5492
|
}
|
|
8411
|
-
|
|
8412
|
-
|
|
8413
|
-
|
|
5493
|
+
});
|
|
5494
|
+
realNames[createHybrid(undefined2, WRAP_BIND_KEY_FLAG).name] = [{
|
|
5495
|
+
"name": "wrapper",
|
|
5496
|
+
"func": undefined2
|
|
5497
|
+
}];
|
|
5498
|
+
LazyWrapper.prototype.clone = lazyClone;
|
|
5499
|
+
LazyWrapper.prototype.reverse = lazyReverse;
|
|
5500
|
+
LazyWrapper.prototype.value = lazyValue;
|
|
5501
|
+
lodash.prototype.at = wrapperAt;
|
|
5502
|
+
lodash.prototype.chain = wrapperChain;
|
|
5503
|
+
lodash.prototype.commit = wrapperCommit;
|
|
5504
|
+
lodash.prototype.next = wrapperNext;
|
|
5505
|
+
lodash.prototype.plant = wrapperPlant;
|
|
5506
|
+
lodash.prototype.reverse = wrapperReverse;
|
|
5507
|
+
lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue;
|
|
5508
|
+
lodash.prototype.first = lodash.prototype.head;
|
|
5509
|
+
if (symIterator) {
|
|
5510
|
+
lodash.prototype[symIterator] = wrapperToIterator;
|
|
8414
5511
|
}
|
|
5512
|
+
return lodash;
|
|
8415
5513
|
};
|
|
8416
|
-
|
|
8417
|
-
|
|
8418
|
-
|
|
8419
|
-
|
|
8420
|
-
|
|
8421
|
-
|
|
8422
|
-
|
|
8423
|
-
|
|
8424
|
-
|
|
8425
|
-
|
|
8426
|
-
|
|
8427
|
-
} else {
|
|
8428
|
-
return false;
|
|
8429
|
-
}
|
|
8430
|
-
} else {
|
|
8431
|
-
return true;
|
|
8432
|
-
}
|
|
8433
|
-
}
|
|
8434
|
-
}
|
|
8435
|
-
function assertForall() {
|
|
8436
|
-
return checkThrow(forall.apply(null, arguments));
|
|
8437
|
-
}
|
|
8438
|
-
function checkForall() {
|
|
8439
|
-
return check(forall.apply(null, arguments));
|
|
8440
|
-
}
|
|
8441
|
-
var jsc2 = {
|
|
8442
|
-
forall,
|
|
8443
|
-
check,
|
|
8444
|
-
assert: checkThrow,
|
|
8445
|
-
assertForall,
|
|
8446
|
-
checkForall,
|
|
8447
|
-
property: bddProperty,
|
|
8448
|
-
sampler,
|
|
8449
|
-
throws,
|
|
8450
|
-
// generators
|
|
8451
|
-
fn: fn.fn,
|
|
8452
|
-
fun: fn.fn,
|
|
8453
|
-
suchthat: suchthat.suchthat,
|
|
8454
|
-
// either
|
|
8455
|
-
left: either.left,
|
|
8456
|
-
right: either.right,
|
|
8457
|
-
// sum
|
|
8458
|
-
addend: sum.addend,
|
|
8459
|
-
// compile
|
|
8460
|
-
compile,
|
|
8461
|
-
generator: api.generator,
|
|
8462
|
-
shrink: api.shrink,
|
|
8463
|
-
// internal utility lib
|
|
8464
|
-
random,
|
|
8465
|
-
show,
|
|
8466
|
-
utils,
|
|
8467
|
-
_: {
|
|
8468
|
-
FMap
|
|
5514
|
+
var _2 = runInContext();
|
|
5515
|
+
if (typeof define == "function" && typeof define.amd == "object" && define.amd) {
|
|
5516
|
+
root._ = _2;
|
|
5517
|
+
define(function() {
|
|
5518
|
+
return _2;
|
|
5519
|
+
});
|
|
5520
|
+
} else if (freeModule) {
|
|
5521
|
+
(freeModule.exports = _2)._ = _2;
|
|
5522
|
+
freeExports._ = _2;
|
|
5523
|
+
} else {
|
|
5524
|
+
root._ = _2;
|
|
8469
5525
|
}
|
|
8470
|
-
};
|
|
8471
|
-
for (k in api.arbitrary) {
|
|
8472
|
-
jsc2[k] = api.arbitrary[k];
|
|
8473
|
-
}
|
|
8474
|
-
var k;
|
|
8475
|
-
module.exports = jsc2;
|
|
5526
|
+
}).call(exports);
|
|
8476
5527
|
}
|
|
8477
5528
|
});
|
|
8478
5529
|
|
|
@@ -8480,6 +5531,7 @@ var require_jsverify = __commonJS({
|
|
|
8480
5531
|
var require_lib = __commonJS({
|
|
8481
5532
|
"../../node_modules/cross-fetch/node_modules/webidl-conversions/lib/index.js"(exports, module) {
|
|
8482
5533
|
"use strict";
|
|
5534
|
+
init_cjs_shim();
|
|
8483
5535
|
var conversions = {};
|
|
8484
5536
|
module.exports = conversions;
|
|
8485
5537
|
function sign(x) {
|
|
@@ -8634,9 +5686,10 @@ var require_lib = __commonJS({
|
|
|
8634
5686
|
});
|
|
8635
5687
|
|
|
8636
5688
|
// ../../node_modules/cross-fetch/node_modules/whatwg-url/lib/utils.js
|
|
8637
|
-
var
|
|
5689
|
+
var require_utils = __commonJS({
|
|
8638
5690
|
"../../node_modules/cross-fetch/node_modules/whatwg-url/lib/utils.js"(exports, module) {
|
|
8639
5691
|
"use strict";
|
|
5692
|
+
init_cjs_shim();
|
|
8640
5693
|
module.exports.mixin = function mixin(target, source) {
|
|
8641
5694
|
const keys = Object.getOwnPropertyNames(source);
|
|
8642
5695
|
for (let i = 0; i < keys.length; ++i) {
|
|
@@ -8665,6 +5718,7 @@ var require_mappingTable = __commonJS({
|
|
|
8665
5718
|
var require_tr46 = __commonJS({
|
|
8666
5719
|
"../../node_modules/cross-fetch/node_modules/tr46/index.js"(exports, module) {
|
|
8667
5720
|
"use strict";
|
|
5721
|
+
init_cjs_shim();
|
|
8668
5722
|
var punycode = __require("punycode");
|
|
8669
5723
|
var mappingTable = require_mappingTable();
|
|
8670
5724
|
var PROCESSING_OPTIONS = {
|
|
@@ -8827,6 +5881,7 @@ var require_tr46 = __commonJS({
|
|
|
8827
5881
|
var require_url_state_machine = __commonJS({
|
|
8828
5882
|
"../../node_modules/cross-fetch/node_modules/whatwg-url/lib/url-state-machine.js"(exports, module) {
|
|
8829
5883
|
"use strict";
|
|
5884
|
+
init_cjs_shim();
|
|
8830
5885
|
var punycode = __require("punycode");
|
|
8831
5886
|
var tr46 = require_tr46();
|
|
8832
5887
|
var specialSchemes = {
|
|
@@ -8883,8 +5938,8 @@ var require_url_state_machine = __commonJS({
|
|
|
8883
5938
|
function isSpecialScheme(scheme) {
|
|
8884
5939
|
return specialSchemes[scheme] !== void 0;
|
|
8885
5940
|
}
|
|
8886
|
-
function isSpecial(
|
|
8887
|
-
return isSpecialScheme(
|
|
5941
|
+
function isSpecial(url2) {
|
|
5942
|
+
return isSpecialScheme(url2.scheme);
|
|
8888
5943
|
}
|
|
8889
5944
|
function defaultPort(scheme) {
|
|
8890
5945
|
return specialSchemes[scheme];
|
|
@@ -9206,38 +6261,38 @@ var require_url_state_machine = __commonJS({
|
|
|
9206
6261
|
}
|
|
9207
6262
|
return host;
|
|
9208
6263
|
}
|
|
9209
|
-
function trimControlChars(
|
|
9210
|
-
return
|
|
6264
|
+
function trimControlChars(url2) {
|
|
6265
|
+
return url2.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g, "");
|
|
9211
6266
|
}
|
|
9212
|
-
function trimTabAndNewline(
|
|
9213
|
-
return
|
|
6267
|
+
function trimTabAndNewline(url2) {
|
|
6268
|
+
return url2.replace(/\u0009|\u000A|\u000D/g, "");
|
|
9214
6269
|
}
|
|
9215
|
-
function shortenPath(
|
|
9216
|
-
const
|
|
9217
|
-
if (
|
|
6270
|
+
function shortenPath(url2) {
|
|
6271
|
+
const path2 = url2.path;
|
|
6272
|
+
if (path2.length === 0) {
|
|
9218
6273
|
return;
|
|
9219
6274
|
}
|
|
9220
|
-
if (
|
|
6275
|
+
if (url2.scheme === "file" && path2.length === 1 && isNormalizedWindowsDriveLetter(path2[0])) {
|
|
9221
6276
|
return;
|
|
9222
6277
|
}
|
|
9223
|
-
|
|
6278
|
+
path2.pop();
|
|
9224
6279
|
}
|
|
9225
|
-
function includesCredentials(
|
|
9226
|
-
return
|
|
6280
|
+
function includesCredentials(url2) {
|
|
6281
|
+
return url2.username !== "" || url2.password !== "";
|
|
9227
6282
|
}
|
|
9228
|
-
function cannotHaveAUsernamePasswordPort(
|
|
9229
|
-
return
|
|
6283
|
+
function cannotHaveAUsernamePasswordPort(url2) {
|
|
6284
|
+
return url2.host === null || url2.host === "" || url2.cannotBeABaseURL || url2.scheme === "file";
|
|
9230
6285
|
}
|
|
9231
6286
|
function isNormalizedWindowsDriveLetter(string) {
|
|
9232
6287
|
return /^[A-Za-z]:$/.test(string);
|
|
9233
6288
|
}
|
|
9234
|
-
function URLStateMachine(input, base, encodingOverride,
|
|
6289
|
+
function URLStateMachine(input, base, encodingOverride, url2, stateOverride) {
|
|
9235
6290
|
this.pointer = 0;
|
|
9236
6291
|
this.input = input;
|
|
9237
6292
|
this.base = base || null;
|
|
9238
6293
|
this.encodingOverride = encodingOverride || "utf-8";
|
|
9239
6294
|
this.stateOverride = stateOverride;
|
|
9240
|
-
this.url =
|
|
6295
|
+
this.url = url2;
|
|
9241
6296
|
this.failure = false;
|
|
9242
6297
|
this.parseError = false;
|
|
9243
6298
|
if (!this.url) {
|
|
@@ -9790,36 +6845,36 @@ var require_url_state_machine = __commonJS({
|
|
|
9790
6845
|
}
|
|
9791
6846
|
return true;
|
|
9792
6847
|
};
|
|
9793
|
-
function serializeURL(
|
|
9794
|
-
let output =
|
|
9795
|
-
if (
|
|
6848
|
+
function serializeURL(url2, excludeFragment) {
|
|
6849
|
+
let output = url2.scheme + ":";
|
|
6850
|
+
if (url2.host !== null) {
|
|
9796
6851
|
output += "//";
|
|
9797
|
-
if (
|
|
9798
|
-
output +=
|
|
9799
|
-
if (
|
|
9800
|
-
output += ":" +
|
|
6852
|
+
if (url2.username !== "" || url2.password !== "") {
|
|
6853
|
+
output += url2.username;
|
|
6854
|
+
if (url2.password !== "") {
|
|
6855
|
+
output += ":" + url2.password;
|
|
9801
6856
|
}
|
|
9802
6857
|
output += "@";
|
|
9803
6858
|
}
|
|
9804
|
-
output += serializeHost(
|
|
9805
|
-
if (
|
|
9806
|
-
output += ":" +
|
|
6859
|
+
output += serializeHost(url2.host);
|
|
6860
|
+
if (url2.port !== null) {
|
|
6861
|
+
output += ":" + url2.port;
|
|
9807
6862
|
}
|
|
9808
|
-
} else if (
|
|
6863
|
+
} else if (url2.host === null && url2.scheme === "file") {
|
|
9809
6864
|
output += "//";
|
|
9810
6865
|
}
|
|
9811
|
-
if (
|
|
9812
|
-
output +=
|
|
6866
|
+
if (url2.cannotBeABaseURL) {
|
|
6867
|
+
output += url2.path[0];
|
|
9813
6868
|
} else {
|
|
9814
|
-
for (const string of
|
|
6869
|
+
for (const string of url2.path) {
|
|
9815
6870
|
output += "/" + string;
|
|
9816
6871
|
}
|
|
9817
6872
|
}
|
|
9818
|
-
if (
|
|
9819
|
-
output += "?" +
|
|
6873
|
+
if (url2.query !== null) {
|
|
6874
|
+
output += "?" + url2.query;
|
|
9820
6875
|
}
|
|
9821
|
-
if (!excludeFragment &&
|
|
9822
|
-
output += "#" +
|
|
6876
|
+
if (!excludeFragment && url2.fragment !== null) {
|
|
6877
|
+
output += "#" + url2.fragment;
|
|
9823
6878
|
}
|
|
9824
6879
|
return output;
|
|
9825
6880
|
}
|
|
@@ -9832,11 +6887,11 @@ var require_url_state_machine = __commonJS({
|
|
|
9832
6887
|
return result;
|
|
9833
6888
|
}
|
|
9834
6889
|
module.exports.serializeURL = serializeURL;
|
|
9835
|
-
module.exports.serializeURLOrigin = function(
|
|
9836
|
-
switch (
|
|
6890
|
+
module.exports.serializeURLOrigin = function(url2) {
|
|
6891
|
+
switch (url2.scheme) {
|
|
9837
6892
|
case "blob":
|
|
9838
6893
|
try {
|
|
9839
|
-
return module.exports.serializeURLOrigin(module.exports.parseURL(
|
|
6894
|
+
return module.exports.serializeURLOrigin(module.exports.parseURL(url2.path[0]));
|
|
9840
6895
|
} catch (e) {
|
|
9841
6896
|
return "null";
|
|
9842
6897
|
}
|
|
@@ -9847,9 +6902,9 @@ var require_url_state_machine = __commonJS({
|
|
|
9847
6902
|
case "ws":
|
|
9848
6903
|
case "wss":
|
|
9849
6904
|
return serializeOrigin({
|
|
9850
|
-
scheme:
|
|
9851
|
-
host:
|
|
9852
|
-
port:
|
|
6905
|
+
scheme: url2.scheme,
|
|
6906
|
+
host: url2.host,
|
|
6907
|
+
port: url2.port
|
|
9853
6908
|
});
|
|
9854
6909
|
case "file":
|
|
9855
6910
|
return "file://";
|
|
@@ -9867,18 +6922,18 @@ var require_url_state_machine = __commonJS({
|
|
|
9867
6922
|
}
|
|
9868
6923
|
return usm.url;
|
|
9869
6924
|
};
|
|
9870
|
-
module.exports.setTheUsername = function(
|
|
9871
|
-
|
|
6925
|
+
module.exports.setTheUsername = function(url2, username) {
|
|
6926
|
+
url2.username = "";
|
|
9872
6927
|
const decoded = punycode.ucs2.decode(username);
|
|
9873
6928
|
for (let i = 0; i < decoded.length; ++i) {
|
|
9874
|
-
|
|
6929
|
+
url2.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);
|
|
9875
6930
|
}
|
|
9876
6931
|
};
|
|
9877
|
-
module.exports.setThePassword = function(
|
|
9878
|
-
|
|
6932
|
+
module.exports.setThePassword = function(url2, password) {
|
|
6933
|
+
url2.password = "";
|
|
9879
6934
|
const decoded = punycode.ucs2.decode(password);
|
|
9880
6935
|
for (let i = 0; i < decoded.length; ++i) {
|
|
9881
|
-
|
|
6936
|
+
url2.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);
|
|
9882
6937
|
}
|
|
9883
6938
|
};
|
|
9884
6939
|
module.exports.serializeHost = serializeHost;
|
|
@@ -9899,10 +6954,11 @@ var require_url_state_machine = __commonJS({
|
|
|
9899
6954
|
var require_URL_impl = __commonJS({
|
|
9900
6955
|
"../../node_modules/cross-fetch/node_modules/whatwg-url/lib/URL-impl.js"(exports) {
|
|
9901
6956
|
"use strict";
|
|
6957
|
+
init_cjs_shim();
|
|
9902
6958
|
var usm = require_url_state_machine();
|
|
9903
6959
|
exports.implementation = class URLImpl {
|
|
9904
6960
|
constructor(constructorArgs) {
|
|
9905
|
-
const
|
|
6961
|
+
const url2 = constructorArgs[0];
|
|
9906
6962
|
const base = constructorArgs[1];
|
|
9907
6963
|
let parsedBase = null;
|
|
9908
6964
|
if (base !== void 0) {
|
|
@@ -9911,7 +6967,7 @@ var require_URL_impl = __commonJS({
|
|
|
9911
6967
|
throw new TypeError("Invalid base URL");
|
|
9912
6968
|
}
|
|
9913
6969
|
}
|
|
9914
|
-
const parsedURL = usm.basicURLParse(
|
|
6970
|
+
const parsedURL = usm.basicURLParse(url2, { baseURL: parsedBase });
|
|
9915
6971
|
if (parsedURL === "failure") {
|
|
9916
6972
|
throw new TypeError("Invalid URL");
|
|
9917
6973
|
}
|
|
@@ -9955,14 +7011,14 @@ var require_URL_impl = __commonJS({
|
|
|
9955
7011
|
usm.setThePassword(this._url, v);
|
|
9956
7012
|
}
|
|
9957
7013
|
get host() {
|
|
9958
|
-
const
|
|
9959
|
-
if (
|
|
7014
|
+
const url2 = this._url;
|
|
7015
|
+
if (url2.host === null) {
|
|
9960
7016
|
return "";
|
|
9961
7017
|
}
|
|
9962
|
-
if (
|
|
9963
|
-
return usm.serializeHost(
|
|
7018
|
+
if (url2.port === null) {
|
|
7019
|
+
return usm.serializeHost(url2.host);
|
|
9964
7020
|
}
|
|
9965
|
-
return usm.serializeHost(
|
|
7021
|
+
return usm.serializeHost(url2.host) + ":" + usm.serializeInteger(url2.port);
|
|
9966
7022
|
}
|
|
9967
7023
|
set host(v) {
|
|
9968
7024
|
if (this._url.cannotBeABaseURL) {
|
|
@@ -10021,14 +7077,14 @@ var require_URL_impl = __commonJS({
|
|
|
10021
7077
|
return "?" + this._url.query;
|
|
10022
7078
|
}
|
|
10023
7079
|
set search(v) {
|
|
10024
|
-
const
|
|
7080
|
+
const url2 = this._url;
|
|
10025
7081
|
if (v === "") {
|
|
10026
|
-
|
|
7082
|
+
url2.query = null;
|
|
10027
7083
|
return;
|
|
10028
7084
|
}
|
|
10029
7085
|
const input = v[0] === "?" ? v.substring(1) : v;
|
|
10030
|
-
|
|
10031
|
-
usm.basicURLParse(input, { url, stateOverride: "query" });
|
|
7086
|
+
url2.query = "";
|
|
7087
|
+
usm.basicURLParse(input, { url: url2, stateOverride: "query" });
|
|
10032
7088
|
}
|
|
10033
7089
|
get hash() {
|
|
10034
7090
|
if (this._url.fragment === null || this._url.fragment === "") {
|
|
@@ -10056,11 +7112,12 @@ var require_URL_impl = __commonJS({
|
|
|
10056
7112
|
var require_URL = __commonJS({
|
|
10057
7113
|
"../../node_modules/cross-fetch/node_modules/whatwg-url/lib/URL.js"(exports, module) {
|
|
10058
7114
|
"use strict";
|
|
7115
|
+
init_cjs_shim();
|
|
10059
7116
|
var conversions = require_lib();
|
|
10060
|
-
var utils =
|
|
7117
|
+
var utils = require_utils();
|
|
10061
7118
|
var Impl = require_URL_impl();
|
|
10062
7119
|
var impl = utils.implSymbol;
|
|
10063
|
-
function URL2(
|
|
7120
|
+
function URL2(url2) {
|
|
10064
7121
|
if (!this || this[impl] || !(this instanceof URL2)) {
|
|
10065
7122
|
throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.");
|
|
10066
7123
|
}
|
|
@@ -10239,6 +7296,7 @@ var require_URL = __commonJS({
|
|
|
10239
7296
|
var require_public_api = __commonJS({
|
|
10240
7297
|
"../../node_modules/cross-fetch/node_modules/whatwg-url/lib/public-api.js"(exports) {
|
|
10241
7298
|
"use strict";
|
|
7299
|
+
init_cjs_shim();
|
|
10242
7300
|
exports.URL = require_URL().interface;
|
|
10243
7301
|
exports.serializeURL = require_url_state_machine().serializeURL;
|
|
10244
7302
|
exports.serializeURLOrigin = require_url_state_machine().serializeURLOrigin;
|
|
@@ -10255,6 +7313,7 @@ var require_public_api = __commonJS({
|
|
|
10255
7313
|
var require_safer = __commonJS({
|
|
10256
7314
|
"../../node_modules/safer-buffer/safer.js"(exports, module) {
|
|
10257
7315
|
"use strict";
|
|
7316
|
+
init_cjs_shim();
|
|
10258
7317
|
var buffer = __require("buffer");
|
|
10259
7318
|
var Buffer2 = buffer.Buffer;
|
|
10260
7319
|
var safer = {};
|
|
@@ -10327,6 +7386,7 @@ var require_safer = __commonJS({
|
|
|
10327
7386
|
var require_bom_handling = __commonJS({
|
|
10328
7387
|
"../../node_modules/iconv-lite/lib/bom-handling.js"(exports) {
|
|
10329
7388
|
"use strict";
|
|
7389
|
+
init_cjs_shim();
|
|
10330
7390
|
var BOMChar = "\uFEFF";
|
|
10331
7391
|
exports.PrependBOM = PrependBOMWrapper;
|
|
10332
7392
|
function PrependBOMWrapper(encoder, options) {
|
|
@@ -10371,6 +7431,7 @@ var require_bom_handling = __commonJS({
|
|
|
10371
7431
|
var require_internal = __commonJS({
|
|
10372
7432
|
"../../node_modules/iconv-lite/encodings/internal.js"(exports, module) {
|
|
10373
7433
|
"use strict";
|
|
7434
|
+
init_cjs_shim();
|
|
10374
7435
|
var Buffer2 = require_safer().Buffer;
|
|
10375
7436
|
module.exports = {
|
|
10376
7437
|
// Encodings
|
|
@@ -10515,6 +7576,7 @@ var require_internal = __commonJS({
|
|
|
10515
7576
|
var require_utf16 = __commonJS({
|
|
10516
7577
|
"../../node_modules/iconv-lite/encodings/utf16.js"(exports) {
|
|
10517
7578
|
"use strict";
|
|
7579
|
+
init_cjs_shim();
|
|
10518
7580
|
var Buffer2 = require_safer().Buffer;
|
|
10519
7581
|
exports.utf16be = Utf16BECodec;
|
|
10520
7582
|
function Utf16BECodec() {
|
|
@@ -10633,6 +7695,7 @@ var require_utf16 = __commonJS({
|
|
|
10633
7695
|
var require_utf7 = __commonJS({
|
|
10634
7696
|
"../../node_modules/iconv-lite/encodings/utf7.js"(exports) {
|
|
10635
7697
|
"use strict";
|
|
7698
|
+
init_cjs_shim();
|
|
10636
7699
|
var Buffer2 = require_safer().Buffer;
|
|
10637
7700
|
exports.utf7 = Utf7Codec;
|
|
10638
7701
|
exports.unicode11utf7 = "utf7";
|
|
@@ -10834,6 +7897,7 @@ var require_utf7 = __commonJS({
|
|
|
10834
7897
|
var require_sbcs_codec = __commonJS({
|
|
10835
7898
|
"../../node_modules/iconv-lite/encodings/sbcs-codec.js"(exports) {
|
|
10836
7899
|
"use strict";
|
|
7900
|
+
init_cjs_shim();
|
|
10837
7901
|
var Buffer2 = require_safer().Buffer;
|
|
10838
7902
|
exports._sbcs = SBCSCodec;
|
|
10839
7903
|
function SBCSCodec(codecOptions, iconv) {
|
|
@@ -10890,6 +7954,7 @@ var require_sbcs_codec = __commonJS({
|
|
|
10890
7954
|
var require_sbcs_data = __commonJS({
|
|
10891
7955
|
"../../node_modules/iconv-lite/encodings/sbcs-data.js"(exports, module) {
|
|
10892
7956
|
"use strict";
|
|
7957
|
+
init_cjs_shim();
|
|
10893
7958
|
module.exports = {
|
|
10894
7959
|
// Not supported by iconv, not sure why.
|
|
10895
7960
|
"10029": "maccenteuro",
|
|
@@ -11039,6 +8104,7 @@ var require_sbcs_data = __commonJS({
|
|
|
11039
8104
|
var require_sbcs_data_generated = __commonJS({
|
|
11040
8105
|
"../../node_modules/iconv-lite/encodings/sbcs-data-generated.js"(exports, module) {
|
|
11041
8106
|
"use strict";
|
|
8107
|
+
init_cjs_shim();
|
|
11042
8108
|
module.exports = {
|
|
11043
8109
|
"437": "cp437",
|
|
11044
8110
|
"737": "cp737",
|
|
@@ -11494,6 +8560,7 @@ var require_sbcs_data_generated = __commonJS({
|
|
|
11494
8560
|
var require_dbcs_codec = __commonJS({
|
|
11495
8561
|
"../../node_modules/iconv-lite/encodings/dbcs-codec.js"(exports) {
|
|
11496
8562
|
"use strict";
|
|
8563
|
+
init_cjs_shim();
|
|
11497
8564
|
var Buffer2 = require_safer().Buffer;
|
|
11498
8565
|
exports._dbcs = DBCSCodec;
|
|
11499
8566
|
var UNASSIGNED = -1;
|
|
@@ -13126,6 +10193,7 @@ var require_big5_added = __commonJS({
|
|
|
13126
10193
|
var require_dbcs_data = __commonJS({
|
|
13127
10194
|
"../../node_modules/iconv-lite/encodings/dbcs-data.js"(exports, module) {
|
|
13128
10195
|
"use strict";
|
|
10196
|
+
init_cjs_shim();
|
|
13129
10197
|
module.exports = {
|
|
13130
10198
|
// == Japanese/ShiftJIS ====================================================
|
|
13131
10199
|
// All japanese encodings are based on JIS X set of standards:
|
|
@@ -13301,6 +10369,7 @@ var require_dbcs_data = __commonJS({
|
|
|
13301
10369
|
var require_encodings = __commonJS({
|
|
13302
10370
|
"../../node_modules/iconv-lite/encodings/index.js"(exports, module) {
|
|
13303
10371
|
"use strict";
|
|
10372
|
+
init_cjs_shim();
|
|
13304
10373
|
var modules = [
|
|
13305
10374
|
require_internal(),
|
|
13306
10375
|
require_utf16(),
|
|
@@ -13327,6 +10396,7 @@ var require_encodings = __commonJS({
|
|
|
13327
10396
|
var require_streams = __commonJS({
|
|
13328
10397
|
"../../node_modules/iconv-lite/lib/streams.js"(exports, module) {
|
|
13329
10398
|
"use strict";
|
|
10399
|
+
init_cjs_shim();
|
|
13330
10400
|
var Buffer2 = __require("buffer").Buffer;
|
|
13331
10401
|
var Transform = __require("stream").Transform;
|
|
13332
10402
|
module.exports = function(iconv) {
|
|
@@ -13432,6 +10502,7 @@ var require_streams = __commonJS({
|
|
|
13432
10502
|
var require_extend_node = __commonJS({
|
|
13433
10503
|
"../../node_modules/iconv-lite/lib/extend-node.js"(exports, module) {
|
|
13434
10504
|
"use strict";
|
|
10505
|
+
init_cjs_shim();
|
|
13435
10506
|
var Buffer2 = __require("buffer").Buffer;
|
|
13436
10507
|
module.exports = function(iconv) {
|
|
13437
10508
|
var original = void 0;
|
|
@@ -13601,6 +10672,7 @@ var require_extend_node = __commonJS({
|
|
|
13601
10672
|
var require_lib2 = __commonJS({
|
|
13602
10673
|
"../../node_modules/iconv-lite/lib/index.js"(exports, module) {
|
|
13603
10674
|
"use strict";
|
|
10675
|
+
init_cjs_shim();
|
|
13604
10676
|
var Buffer2 = require_safer().Buffer;
|
|
13605
10677
|
var bomHandling = require_bom_handling();
|
|
13606
10678
|
var iconv = module.exports;
|
|
@@ -13704,6 +10776,7 @@ var require_lib2 = __commonJS({
|
|
|
13704
10776
|
var require_iconv_loader = __commonJS({
|
|
13705
10777
|
"../../node_modules/encoding/lib/iconv-loader.js"(exports, module) {
|
|
13706
10778
|
"use strict";
|
|
10779
|
+
init_cjs_shim();
|
|
13707
10780
|
var iconv_package;
|
|
13708
10781
|
var Iconv;
|
|
13709
10782
|
try {
|
|
@@ -13719,6 +10792,7 @@ var require_iconv_loader = __commonJS({
|
|
|
13719
10792
|
var require_encoding = __commonJS({
|
|
13720
10793
|
"../../node_modules/encoding/lib/encoding.js"(exports, module) {
|
|
13721
10794
|
"use strict";
|
|
10795
|
+
init_cjs_shim();
|
|
13722
10796
|
var iconvLite = require_lib2();
|
|
13723
10797
|
var Iconv = require_iconv_loader();
|
|
13724
10798
|
module.exports.convert = convert;
|
|
@@ -13786,6 +10860,7 @@ var require_encoding = __commonJS({
|
|
|
13786
10860
|
var require_lib3 = __commonJS({
|
|
13787
10861
|
"../../node_modules/cross-fetch/node_modules/node-fetch/lib/index.js"(exports, module) {
|
|
13788
10862
|
"use strict";
|
|
10863
|
+
init_cjs_shim();
|
|
13789
10864
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13790
10865
|
function _interopDefault(ex) {
|
|
13791
10866
|
return ex && typeof ex === "object" && "default" in ex ? ex["default"] : ex;
|
|
@@ -14781,13 +11856,13 @@ var require_lib3 = __commonJS({
|
|
|
14781
11856
|
const dest = new URL$1(destination).protocol;
|
|
14782
11857
|
return orig === dest;
|
|
14783
11858
|
};
|
|
14784
|
-
function fetch2(
|
|
11859
|
+
function fetch2(url2, opts) {
|
|
14785
11860
|
if (!fetch2.Promise) {
|
|
14786
11861
|
throw new Error("native promise missing, set fetch.Promise to your favorite alternative");
|
|
14787
11862
|
}
|
|
14788
11863
|
Body.Promise = fetch2.Promise;
|
|
14789
11864
|
return new fetch2.Promise(function(resolve, reject) {
|
|
14790
|
-
const request = new Request(
|
|
11865
|
+
const request = new Request(url2, opts);
|
|
14791
11866
|
const options = getNodeRequestOptions(request);
|
|
14792
11867
|
const send = (options.protocol === "https:" ? https : http).request;
|
|
14793
11868
|
const signal = request.signal;
|
|
@@ -15032,13 +12107,14 @@ var require_lib3 = __commonJS({
|
|
|
15032
12107
|
// ../../node_modules/cross-fetch/dist/node-ponyfill.js
|
|
15033
12108
|
var require_node_ponyfill = __commonJS({
|
|
15034
12109
|
"../../node_modules/cross-fetch/dist/node-ponyfill.js"(exports, module) {
|
|
12110
|
+
init_cjs_shim();
|
|
15035
12111
|
var nodeFetch = require_lib3();
|
|
15036
12112
|
var realFetch = nodeFetch.default || nodeFetch;
|
|
15037
|
-
var fetch2 = function(
|
|
15038
|
-
if (/^\/\//.test(
|
|
15039
|
-
|
|
12113
|
+
var fetch2 = function(url2, options) {
|
|
12114
|
+
if (/^\/\//.test(url2)) {
|
|
12115
|
+
url2 = "https:" + url2;
|
|
15040
12116
|
}
|
|
15041
|
-
return realFetch.call(this,
|
|
12117
|
+
return realFetch.call(this, url2, options);
|
|
15042
12118
|
};
|
|
15043
12119
|
fetch2.ponyfill = true;
|
|
15044
12120
|
module.exports = exports = fetch2;
|
|
@@ -15050,8 +12126,15 @@ var require_node_ponyfill = __commonJS({
|
|
|
15050
12126
|
}
|
|
15051
12127
|
});
|
|
15052
12128
|
|
|
12129
|
+
// src/index.ts
|
|
12130
|
+
init_cjs_shim();
|
|
12131
|
+
|
|
12132
|
+
// ../../magda-typescript-common/dist/test/arbitraries.js
|
|
12133
|
+
init_cjs_shim();
|
|
12134
|
+
|
|
15053
12135
|
// ../../node_modules/@magda/esm-utils/dist/esmUtils.js
|
|
15054
|
-
|
|
12136
|
+
init_cjs_shim();
|
|
12137
|
+
import { createRequire as createRequire2 } from "module";
|
|
15055
12138
|
function callsites() {
|
|
15056
12139
|
const _prepareStackTrace = Error.prepareStackTrace;
|
|
15057
12140
|
try {
|
|
@@ -15087,11 +12170,15 @@ function callerpath({ depth = 0 } = {}) {
|
|
|
15087
12170
|
return callsite && callsite.getFileName();
|
|
15088
12171
|
}
|
|
15089
12172
|
function require2(id) {
|
|
15090
|
-
const requireFrom =
|
|
12173
|
+
const requireFrom = createRequire2(callerpath({ depth: 1 }));
|
|
15091
12174
|
return requireFrom(id);
|
|
15092
12175
|
}
|
|
15093
12176
|
|
|
12177
|
+
// ../../node_modules/uuid/dist/esm-node/index.js
|
|
12178
|
+
init_cjs_shim();
|
|
12179
|
+
|
|
15094
12180
|
// ../../node_modules/uuid/dist/esm-node/rng.js
|
|
12181
|
+
init_cjs_shim();
|
|
15095
12182
|
import crypto from "crypto";
|
|
15096
12183
|
var rnds8 = new Uint8Array(16);
|
|
15097
12184
|
function rng() {
|
|
@@ -15099,6 +12186,7 @@ function rng() {
|
|
|
15099
12186
|
}
|
|
15100
12187
|
|
|
15101
12188
|
// ../../node_modules/uuid/dist/esm-node/bytesToUuid.js
|
|
12189
|
+
init_cjs_shim();
|
|
15102
12190
|
var byteToHex = [];
|
|
15103
12191
|
for (let i = 0; i < 256; ++i) {
|
|
15104
12192
|
byteToHex.push((i + 256).toString(16).substr(1));
|
|
@@ -15110,6 +12198,7 @@ function bytesToUuid(buf, offset_) {
|
|
|
15110
12198
|
var bytesToUuid_default = bytesToUuid;
|
|
15111
12199
|
|
|
15112
12200
|
// ../../node_modules/uuid/dist/esm-node/v4.js
|
|
12201
|
+
init_cjs_shim();
|
|
15113
12202
|
function v4(options, buf, offset) {
|
|
15114
12203
|
options = options || {};
|
|
15115
12204
|
const rnds = options.random || (options.rng || rng)();
|
|
@@ -15128,7 +12217,7 @@ var v4_default = v4;
|
|
|
15128
12217
|
|
|
15129
12218
|
// ../../magda-typescript-common/dist/test/arbitraries.js
|
|
15130
12219
|
var import_lodash = __toESM(require_lodash(), 1);
|
|
15131
|
-
|
|
12220
|
+
import jsc from "jsverify";
|
|
15132
12221
|
var { curried2 } = require2("jsverify/lib/utils");
|
|
15133
12222
|
var lazyseq = require2("lazy-seq");
|
|
15134
12223
|
function fromCode(code) {
|
|
@@ -15137,46 +12226,46 @@ function fromCode(code) {
|
|
|
15137
12226
|
function toCode(c) {
|
|
15138
12227
|
return c.charCodeAt(0);
|
|
15139
12228
|
}
|
|
15140
|
-
var charArb =
|
|
15141
|
-
var stringArb =
|
|
15142
|
-
var lowerCaseAlphaCharArb =
|
|
15143
|
-
var numArb =
|
|
15144
|
-
var lcAlphaNumCharArb =
|
|
15145
|
-
var lcAlphaNumStringArb =
|
|
15146
|
-
var lcAlphaNumStringArbNe =
|
|
15147
|
-
var lcAlphaStringArb =
|
|
15148
|
-
var lcAlphaStringArbNe =
|
|
15149
|
-
var peopleNameArb =
|
|
15150
|
-
var uuidArb =
|
|
15151
|
-
generator:
|
|
15152
|
-
shrink:
|
|
12229
|
+
var charArb = jsc.integer(32, 255).smap(fromCode, toCode);
|
|
12230
|
+
var stringArb = jsc.array(charArb).smap((chars) => chars.join(""), (string) => string.split(""));
|
|
12231
|
+
var lowerCaseAlphaCharArb = jsc.integer(97, 122).smap(fromCode, toCode);
|
|
12232
|
+
var numArb = jsc.integer(48, 57).smap(fromCode, toCode);
|
|
12233
|
+
var lcAlphaNumCharArb = jsc.oneof([numArb, lowerCaseAlphaCharArb]);
|
|
12234
|
+
var lcAlphaNumStringArb = jsc.array(lcAlphaNumCharArb).smap((arr) => arr.join(""), (string) => string.split(""));
|
|
12235
|
+
var lcAlphaNumStringArbNe = jsc.nearray(lcAlphaNumCharArb).smap((arr) => arr.join(""), (string) => string.split(""));
|
|
12236
|
+
var lcAlphaStringArb = jsc.array(lowerCaseAlphaCharArb).smap((chars) => chars.join(""), (string) => string.split(""));
|
|
12237
|
+
var lcAlphaStringArbNe = jsc.nearray(lowerCaseAlphaCharArb).smap((chars) => chars.join(""), (string) => string.split(""));
|
|
12238
|
+
var peopleNameArb = jsc.tuple([lcAlphaStringArbNe, lcAlphaStringArbNe]).smap((strArr) => strArr.join(" "), (string) => string.split(" "));
|
|
12239
|
+
var uuidArb = jsc.bless({
|
|
12240
|
+
generator: jsc.generator.bless((x) => v4_default()),
|
|
12241
|
+
shrink: jsc.shrink.bless((x) => []),
|
|
15153
12242
|
show: (x) => x
|
|
15154
12243
|
});
|
|
15155
|
-
var intArb =
|
|
15156
|
-
var recordArb =
|
|
12244
|
+
var intArb = jsc.integer(48, 57);
|
|
12245
|
+
var recordArb = jsc.record({
|
|
15157
12246
|
id: uuidArb,
|
|
15158
12247
|
name: stringArb,
|
|
15159
|
-
aspects:
|
|
15160
|
-
sourceTag:
|
|
12248
|
+
aspects: jsc.suchthat(jsc.array(jsc.json), (arr) => arr.length <= 10),
|
|
12249
|
+
sourceTag: jsc.constant(void 0),
|
|
15161
12250
|
tenantId: intArb
|
|
15162
12251
|
});
|
|
15163
|
-
var specificRecordArb = (aspectArbs) =>
|
|
12252
|
+
var specificRecordArb = (aspectArbs) => jsc.record({
|
|
15164
12253
|
id: uuidArb,
|
|
15165
12254
|
name: stringArb,
|
|
15166
|
-
aspects:
|
|
15167
|
-
sourceTag:
|
|
12255
|
+
aspects: jsc.record(aspectArbs),
|
|
12256
|
+
sourceTag: jsc.constant(void 0),
|
|
15168
12257
|
tenantId: intArb
|
|
15169
12258
|
});
|
|
15170
|
-
var defaultSchemeArb =
|
|
15171
|
-
|
|
15172
|
-
|
|
15173
|
-
|
|
12259
|
+
var defaultSchemeArb = jsc.oneof([
|
|
12260
|
+
jsc.constant("http"),
|
|
12261
|
+
jsc.constant("https"),
|
|
12262
|
+
jsc.constant("ftp"),
|
|
15174
12263
|
lcAlphaNumStringArbNe
|
|
15175
12264
|
]);
|
|
15176
12265
|
function shrinkArrayWithMinimumSize(size) {
|
|
15177
12266
|
function shrinkArrayImpl(...args) {
|
|
15178
12267
|
const shrink = args[0];
|
|
15179
|
-
const result =
|
|
12268
|
+
const result = jsc.shrink.bless(function(arr) {
|
|
15180
12269
|
if (arr.length <= size) {
|
|
15181
12270
|
return lazyseq.nil;
|
|
15182
12271
|
} else {
|
|
@@ -15197,12 +12286,12 @@ function unSeq(maybeArray) {
|
|
|
15197
12286
|
return maybeArray.toArray ? maybeArray.toArray() : maybeArray;
|
|
15198
12287
|
}
|
|
15199
12288
|
function arbFlatMap(arb, arbForward, backwards, show = (u) => JSON.stringify(u)) {
|
|
15200
|
-
const x =
|
|
12289
|
+
const x = jsc.bless({
|
|
15201
12290
|
generator: arb.generator.flatmap((t) => {
|
|
15202
12291
|
return arbForward(t).generator;
|
|
15203
12292
|
}),
|
|
15204
12293
|
show,
|
|
15205
|
-
shrink:
|
|
12294
|
+
shrink: jsc.shrink.bless((u) => {
|
|
15206
12295
|
const t = backwards(u);
|
|
15207
12296
|
if (import_lodash.default.isUndefined(t)) {
|
|
15208
12297
|
return [];
|
|
@@ -15210,7 +12299,7 @@ function arbFlatMap(arb, arbForward, backwards, show = (u) => JSON.stringify(u))
|
|
|
15210
12299
|
const ts = unSeq(arb.shrink(t));
|
|
15211
12300
|
const us = (0, import_lodash.default)(ts).flatMap((thisT) => {
|
|
15212
12301
|
const newArb = arbForward(thisT);
|
|
15213
|
-
const newU =
|
|
12302
|
+
const newU = jsc.sampler(newArb, ts.length)(1)[0];
|
|
15214
12303
|
return import_lodash.default.take(unSeq(newArb.shrink(newU)), 3);
|
|
15215
12304
|
}).value();
|
|
15216
12305
|
return us;
|
|
@@ -15224,7 +12313,7 @@ function arbFlatMap(arb, arbForward, backwards, show = (u) => JSON.stringify(u))
|
|
|
15224
12313
|
};
|
|
15225
12314
|
}
|
|
15226
12315
|
function generateArrayOfSize(arrSize, gen) {
|
|
15227
|
-
var result =
|
|
12316
|
+
var result = jsc.generator.bless(function(size) {
|
|
15228
12317
|
var arr = new Array(arrSize);
|
|
15229
12318
|
for (var i = 0; i < arrSize; i++) {
|
|
15230
12319
|
arr[i] = gen(size);
|
|
@@ -15234,50 +12323,50 @@ function generateArrayOfSize(arrSize, gen) {
|
|
|
15234
12323
|
return result;
|
|
15235
12324
|
}
|
|
15236
12325
|
function arrayOfSizeArb(size, arb) {
|
|
15237
|
-
return
|
|
12326
|
+
return jsc.bless({
|
|
15238
12327
|
generator: generateArrayOfSize(size, arb.generator),
|
|
15239
12328
|
shrink: shrinkArrayWithMinimumSize(size)(arb.shrink),
|
|
15240
12329
|
show: (x) => x.toString()
|
|
15241
12330
|
});
|
|
15242
12331
|
}
|
|
15243
|
-
var urlPartsArb = (options) =>
|
|
12332
|
+
var urlPartsArb = (options) => jsc.record({
|
|
15244
12333
|
scheme: options.schemeArb,
|
|
15245
|
-
host:
|
|
15246
|
-
port:
|
|
15247
|
-
|
|
15248
|
-
|
|
15249
|
-
|
|
12334
|
+
host: jsc.suchthat(options.hostArb, (string) => !string.startsWith("ftp")),
|
|
12335
|
+
port: jsc.oneof([
|
|
12336
|
+
jsc.integer(1, 65e3),
|
|
12337
|
+
jsc.constant(80),
|
|
12338
|
+
jsc.constant(21)
|
|
15250
12339
|
]),
|
|
15251
|
-
path:
|
|
12340
|
+
path: jsc.array(lcAlphaNumStringArbNe)
|
|
15252
12341
|
});
|
|
15253
12342
|
var distUrlArb = ({ schemeArb = defaultSchemeArb, hostArb = lcAlphaNumStringArbNe } = {}) => urlPartsArb({ schemeArb, hostArb }).smap((urlParts) => {
|
|
15254
12343
|
const port = urlParts.scheme === "http" && urlParts.port === 80 || urlParts.scheme === "ftp" && urlParts.port === 21 ? "" : ":" + urlParts.port;
|
|
15255
12344
|
return `${urlParts.scheme}://${urlParts.host}.com${port}/${(urlParts.path || []).join("/")}`;
|
|
15256
|
-
}, (
|
|
15257
|
-
const splitAfterScheme =
|
|
12345
|
+
}, (url2) => {
|
|
12346
|
+
const splitAfterScheme = url2.split("://");
|
|
15258
12347
|
const scheme = splitAfterScheme[0];
|
|
15259
12348
|
const splitOnDotCom = splitAfterScheme[1].split(/\.com:?/);
|
|
15260
12349
|
const host = splitOnDotCom[0];
|
|
15261
12350
|
const pathSegments = splitOnDotCom[1].split("/");
|
|
15262
12351
|
const port = parseInt(pathSegments[0]);
|
|
15263
|
-
const
|
|
15264
|
-
return { scheme, host, port, path };
|
|
12352
|
+
const path2 = pathSegments.slice(1);
|
|
12353
|
+
return { scheme, host, port, path: path2 };
|
|
15265
12354
|
});
|
|
15266
|
-
var distStringsArb = ({ url =
|
|
15267
|
-
downloadURL:
|
|
15268
|
-
accessURL:
|
|
12355
|
+
var distStringsArb = ({ url: url2 = jsc.oneof([distUrlArb(), jsc.constant(void 0)]), license = stringArb, format = stringArb }) => jsc.record({
|
|
12356
|
+
downloadURL: url2,
|
|
12357
|
+
accessURL: url2,
|
|
15269
12358
|
license,
|
|
15270
12359
|
format
|
|
15271
12360
|
});
|
|
15272
|
-
var sourceLinkArb = ({ status =
|
|
12361
|
+
var sourceLinkArb = ({ status = jsc.constant("active") }) => jsc.record({
|
|
15273
12362
|
status
|
|
15274
12363
|
});
|
|
15275
|
-
var datasetFormatArb = ({ format = stringArb }) =>
|
|
12364
|
+
var datasetFormatArb = ({ format = stringArb }) => jsc.record({
|
|
15276
12365
|
format
|
|
15277
12366
|
});
|
|
15278
12367
|
var recordArbWithDistArbs = (distStringsOverrides = {}, sourceLinkOverrides = {}, datasetFormatOverrides = {}) => specificRecordArb({
|
|
15279
|
-
"dataset-distributions":
|
|
15280
|
-
distributions:
|
|
12368
|
+
"dataset-distributions": jsc.record({
|
|
12369
|
+
distributions: jsc.array(specificRecordArb({
|
|
15281
12370
|
"dcat-distribution-strings": distStringsArb(distStringsOverrides),
|
|
15282
12371
|
"dataset-format": datasetFormatArb(datasetFormatOverrides),
|
|
15283
12372
|
"source-link-status": sourceLinkArb(sourceLinkOverrides)
|
|
@@ -15285,16 +12374,16 @@ var recordArbWithDistArbs = (distStringsOverrides = {}, sourceLinkOverrides = {}
|
|
|
15285
12374
|
})
|
|
15286
12375
|
});
|
|
15287
12376
|
var recordArbWithDists = (dists) => specificRecordArb({
|
|
15288
|
-
"dataset-distributions":
|
|
15289
|
-
distributions:
|
|
15290
|
-
"dcat-distribution-strings":
|
|
12377
|
+
"dataset-distributions": jsc.record({
|
|
12378
|
+
distributions: jsc.tuple(dists.map((dist) => specificRecordArb({
|
|
12379
|
+
"dcat-distribution-strings": jsc.constant(dist)
|
|
15291
12380
|
})))
|
|
15292
12381
|
})
|
|
15293
12382
|
});
|
|
15294
12383
|
function someOf(array) {
|
|
15295
|
-
return
|
|
15296
|
-
length:
|
|
15297
|
-
start:
|
|
12384
|
+
return jsc.record({
|
|
12385
|
+
length: jsc.integer(0, array.length),
|
|
12386
|
+
start: jsc.integer(0, array.length - 1)
|
|
15298
12387
|
}).smap(({ length, start }) => (0, import_lodash.default)(array).drop(start).take(length).value(), (newArray) => {
|
|
15299
12388
|
const start = import_lodash.default.indexOf(array, newArray[0]);
|
|
15300
12389
|
const length = newArray.length - start;
|
|
@@ -15306,8 +12395,8 @@ function fuzzStringArb(string, fuzzArb = stringArb) {
|
|
|
15306
12395
|
const aroundArbs = arrayOfSizeArb(words.length + 1, fuzzArb);
|
|
15307
12396
|
return arbFlatMap(aroundArbs, (around) => {
|
|
15308
12397
|
const string2 = (0, import_lodash.default)(around).zip(words).flatten().join("");
|
|
15309
|
-
const caseArb = arrayOfSizeArb(string2.length,
|
|
15310
|
-
return
|
|
12398
|
+
const caseArb = arrayOfSizeArb(string2.length, jsc.bool);
|
|
12399
|
+
return jsc.record({ string: jsc.constant(string2), cases: caseArb });
|
|
15311
12400
|
}, ({ string: string2, cases }) => {
|
|
15312
12401
|
const wordsRegex = new RegExp(words.join("|"));
|
|
15313
12402
|
return string2.split(wordsRegex);
|
|
@@ -15325,9 +12414,10 @@ function fuzzStringArb(string, fuzzArb = stringArb) {
|
|
|
15325
12414
|
function fuzzStringArbResult(stringArb2, fuzzArb) {
|
|
15326
12415
|
return arbFlatMap(stringArb2, (string) => fuzzStringArb(string, fuzzArb), (fuzzedString) => void 0);
|
|
15327
12416
|
}
|
|
15328
|
-
var dateStringArb =
|
|
12417
|
+
var dateStringArb = jsc.datetime.smap((date) => date.toString(), (string) => new Date(Date.parse(string)));
|
|
15329
12418
|
|
|
15330
12419
|
// ../../magda-typescript-common/dist/generated/registry/api.js
|
|
12420
|
+
init_cjs_shim();
|
|
15331
12421
|
var import_cross_fetch = __toESM(require_node_ponyfill(), 1);
|
|
15332
12422
|
var Record = class {
|
|
15333
12423
|
/**
|