cafe-utility 36.1.8 → 36.2.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/index.d.ts +2 -0
- package/index.js +123 -83
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -614,6 +614,7 @@ declare function multicall(functions: (() => void)[]): () => void
|
|
|
614
614
|
declare function maxBy<T>(array: T[], fn: (item: T) => number): T
|
|
615
615
|
declare function minBy<T>(array: T[], fn: (item: T) => number): T
|
|
616
616
|
declare function allArrayIndexOf<T>(array: T[], predicate: (item: T) => boolean): number[]
|
|
617
|
+
declare function pathfind(array: boolean[][], fromX: number, fromY: number, toX: number, toY: number, maxSteps: number): [number, number][] | null
|
|
617
618
|
declare function findInstance<T, K extends T>(array: T[], type: Newable<K>): Optional<K>
|
|
618
619
|
declare function filterInstances<T, K extends T>(array: T[], type: Newable<K>): K[]
|
|
619
620
|
declare function interleave<T, K>(arrayA: T[], arrayB: K[]): (T | K)[]
|
|
@@ -990,6 +991,7 @@ export declare const Arrays: {
|
|
|
990
991
|
maxBy: typeof maxBy
|
|
991
992
|
minBy: typeof minBy
|
|
992
993
|
allIndexOf: typeof allArrayIndexOf
|
|
994
|
+
pathfind: typeof pathfind
|
|
993
995
|
}
|
|
994
996
|
export declare const System: {
|
|
995
997
|
sleepMillis: typeof sleepMillis
|
package/index.js
CHANGED
|
@@ -1974,6 +1974,46 @@ function allArrayIndexOf(n, t) {
|
|
|
1974
1974
|
e
|
|
1975
1975
|
)
|
|
1976
1976
|
}
|
|
1977
|
+
const DIRECTIONS = [
|
|
1978
|
+
[1, 0],
|
|
1979
|
+
[-1, 0],
|
|
1980
|
+
[0, 1],
|
|
1981
|
+
[0, -1]
|
|
1982
|
+
]
|
|
1983
|
+
function pathfind(n, t, e, r, i, o) {
|
|
1984
|
+
const s = n.length
|
|
1985
|
+
if (s === 0) return null
|
|
1986
|
+
const c = n[0].length
|
|
1987
|
+
if (t < 0 || t >= c || e < 0 || e >= s || r < 0 || r >= c || i < 0 || i >= s || n[e][t] || n[i][r]) return null
|
|
1988
|
+
if (t === r && e === i) return [[t, e]]
|
|
1989
|
+
const u = c * s,
|
|
1990
|
+
f = new Uint8Array(u),
|
|
1991
|
+
l = new Int32Array(u)
|
|
1992
|
+
l.fill(-1)
|
|
1993
|
+
const a = [[t, e, 0]]
|
|
1994
|
+
let h = 0
|
|
1995
|
+
const m = e * c + t
|
|
1996
|
+
for (f[m] = 1; h < a.length; ) {
|
|
1997
|
+
const [d, p, y] = a[h++],
|
|
1998
|
+
$ = p * c + d
|
|
1999
|
+
if (d === r && p === i) {
|
|
2000
|
+
const w = []
|
|
2001
|
+
for (let b = $; b !== -1; b = l[b]) w.push([b % c, Math.floor(b / c)])
|
|
2002
|
+
return w.reverse(), w
|
|
2003
|
+
}
|
|
2004
|
+
if (y >= o) continue
|
|
2005
|
+
const g = y + 1
|
|
2006
|
+
for (const [w, b] of DIRECTIONS) {
|
|
2007
|
+
const E = d + w,
|
|
2008
|
+
x = p + b
|
|
2009
|
+
if (E >= 0 && E < c && x >= 0 && x < s && !n[x][E]) {
|
|
2010
|
+
const A = x * c + E
|
|
2011
|
+
f[A] || ((f[A] = 1), (l[A] = $), a.push([E, x, g]))
|
|
2012
|
+
}
|
|
2013
|
+
}
|
|
2014
|
+
}
|
|
2015
|
+
return null
|
|
2016
|
+
}
|
|
1977
2017
|
function findInstance(n, t) {
|
|
1978
2018
|
const e = n.find(r => r instanceof t)
|
|
1979
2019
|
return Optional.of(e)
|
|
@@ -2128,77 +2168,77 @@ function keccakPermutate(n) {
|
|
|
2128
2168
|
l = n[8] ^ n[18] ^ n[28] ^ n[38] ^ n[48],
|
|
2129
2169
|
a = n[9] ^ n[19] ^ n[29] ^ n[39] ^ n[49],
|
|
2130
2170
|
h = (i << 1) | (o >>> 31),
|
|
2131
|
-
|
|
2171
|
+
m = (o << 1) | (i >>> 31),
|
|
2132
2172
|
d = l ^ h,
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
|
|
2136
|
-
g = e ^
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
A = o ^
|
|
2173
|
+
p = a ^ m,
|
|
2174
|
+
y = (s << 1) | (c >>> 31),
|
|
2175
|
+
$ = (c << 1) | (s >>> 31),
|
|
2176
|
+
g = e ^ y,
|
|
2177
|
+
w = r ^ $,
|
|
2178
|
+
b = (u << 1) | (f >>> 31),
|
|
2179
|
+
E = (f << 1) | (u >>> 31),
|
|
2180
|
+
x = i ^ b,
|
|
2181
|
+
A = o ^ E,
|
|
2142
2182
|
Mn = (l << 1) | (a >>> 31),
|
|
2143
2183
|
kn = (a << 1) | (l >>> 31),
|
|
2144
|
-
|
|
2145
|
-
|
|
2184
|
+
S = s ^ Mn,
|
|
2185
|
+
M = c ^ kn,
|
|
2146
2186
|
On = (e << 1) | (r >>> 31),
|
|
2147
2187
|
Tn = (r << 1) | (e >>> 31),
|
|
2148
|
-
|
|
2149
|
-
|
|
2150
|
-
;(n[0] ^= d), (n[1] ^=
|
|
2151
|
-
const
|
|
2152
|
-
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2159
|
-
|
|
2160
|
-
|
|
2161
|
-
|
|
2162
|
-
|
|
2163
|
-
|
|
2164
|
-
|
|
2165
|
-
|
|
2166
|
-
|
|
2167
|
-
|
|
2168
|
-
|
|
2169
|
-
|
|
2170
|
-
|
|
2171
|
-
|
|
2172
|
-
|
|
2173
|
-
|
|
2174
|
-
|
|
2175
|
-
|
|
2176
|
-
|
|
2177
|
-
|
|
2178
|
-
|
|
2179
|
-
|
|
2180
|
-
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
|
-
|
|
2184
|
-
|
|
2185
|
-
|
|
2186
|
-
|
|
2187
|
-
|
|
2188
|
-
|
|
2189
|
-
|
|
2190
|
-
|
|
2191
|
-
|
|
2192
|
-
|
|
2193
|
-
|
|
2194
|
-
|
|
2195
|
-
|
|
2196
|
-
|
|
2197
|
-
|
|
2198
|
-
|
|
2199
|
-
|
|
2200
|
-
|
|
2201
|
-
;(n[0] =
|
|
2188
|
+
k = u ^ On,
|
|
2189
|
+
O = f ^ Tn
|
|
2190
|
+
;(n[0] ^= d), (n[1] ^= p), (n[2] ^= g), (n[3] ^= w), (n[4] ^= x), (n[5] ^= A), (n[6] ^= S), (n[7] ^= M), (n[8] ^= k), (n[9] ^= O), (n[10] ^= d), (n[11] ^= p), (n[12] ^= g), (n[13] ^= w), (n[14] ^= x), (n[15] ^= A), (n[16] ^= S), (n[17] ^= M), (n[18] ^= k), (n[19] ^= O), (n[20] ^= d), (n[21] ^= p), (n[22] ^= g), (n[23] ^= w), (n[24] ^= x), (n[25] ^= A), (n[26] ^= S), (n[27] ^= M), (n[28] ^= k), (n[29] ^= O), (n[30] ^= d), (n[31] ^= p), (n[32] ^= g), (n[33] ^= w), (n[34] ^= x), (n[35] ^= A), (n[36] ^= S), (n[37] ^= M), (n[38] ^= k), (n[39] ^= O), (n[40] ^= d), (n[41] ^= p), (n[42] ^= g), (n[43] ^= w), (n[44] ^= x), (n[45] ^= A), (n[46] ^= S), (n[47] ^= M), (n[48] ^= k), (n[49] ^= O)
|
|
2191
|
+
const T = n[0],
|
|
2192
|
+
C = n[1],
|
|
2193
|
+
I = (n[2] << 1) | (n[3] >>> 31),
|
|
2194
|
+
R = (n[3] << 1) | (n[2] >>> 31),
|
|
2195
|
+
D = (n[5] << 30) | (n[4] >>> 2),
|
|
2196
|
+
P = (n[4] << 30) | (n[5] >>> 2),
|
|
2197
|
+
B = (n[6] << 28) | (n[7] >>> 4),
|
|
2198
|
+
U = (n[7] << 28) | (n[6] >>> 4),
|
|
2199
|
+
N = (n[8] << 27) | (n[9] >>> 5),
|
|
2200
|
+
j = (n[9] << 27) | (n[8] >>> 5),
|
|
2201
|
+
L = (n[11] << 4) | (n[10] >>> 28),
|
|
2202
|
+
v = (n[10] << 4) | (n[11] >>> 28),
|
|
2203
|
+
F = (n[13] << 12) | (n[12] >>> 20),
|
|
2204
|
+
z = (n[12] << 12) | (n[13] >>> 20),
|
|
2205
|
+
W = (n[14] << 6) | (n[15] >>> 26),
|
|
2206
|
+
q = (n[15] << 6) | (n[14] >>> 26),
|
|
2207
|
+
H = (n[17] << 23) | (n[16] >>> 9),
|
|
2208
|
+
V = (n[16] << 23) | (n[17] >>> 9),
|
|
2209
|
+
J = (n[18] << 20) | (n[19] >>> 12),
|
|
2210
|
+
K = (n[19] << 20) | (n[18] >>> 12),
|
|
2211
|
+
Z = (n[20] << 3) | (n[21] >>> 29),
|
|
2212
|
+
Q = (n[21] << 3) | (n[20] >>> 29),
|
|
2213
|
+
G = (n[22] << 10) | (n[23] >>> 22),
|
|
2214
|
+
_ = (n[23] << 10) | (n[22] >>> 22),
|
|
2215
|
+
Y = (n[25] << 11) | (n[24] >>> 21),
|
|
2216
|
+
X = (n[24] << 11) | (n[25] >>> 21),
|
|
2217
|
+
nn = (n[26] << 25) | (n[27] >>> 7),
|
|
2218
|
+
tn = (n[27] << 25) | (n[26] >>> 7),
|
|
2219
|
+
en = (n[29] << 7) | (n[28] >>> 25),
|
|
2220
|
+
rn = (n[28] << 7) | (n[29] >>> 25),
|
|
2221
|
+
on = (n[31] << 9) | (n[30] >>> 23),
|
|
2222
|
+
sn = (n[30] << 9) | (n[31] >>> 23),
|
|
2223
|
+
cn = (n[33] << 13) | (n[32] >>> 19),
|
|
2224
|
+
un = (n[32] << 13) | (n[33] >>> 19),
|
|
2225
|
+
fn = (n[34] << 15) | (n[35] >>> 17),
|
|
2226
|
+
ln = (n[35] << 15) | (n[34] >>> 17),
|
|
2227
|
+
an = (n[36] << 21) | (n[37] >>> 11),
|
|
2228
|
+
hn = (n[37] << 21) | (n[36] >>> 11),
|
|
2229
|
+
dn = (n[38] << 8) | (n[39] >>> 24),
|
|
2230
|
+
pn = (n[39] << 8) | (n[38] >>> 24),
|
|
2231
|
+
mn = (n[40] << 18) | (n[41] >>> 14),
|
|
2232
|
+
gn = (n[41] << 18) | (n[40] >>> 14),
|
|
2233
|
+
wn = (n[42] << 2) | (n[43] >>> 30),
|
|
2234
|
+
xn = (n[43] << 2) | (n[42] >>> 30),
|
|
2235
|
+
yn = (n[45] << 29) | (n[44] >>> 3),
|
|
2236
|
+
bn = (n[44] << 29) | (n[45] >>> 3),
|
|
2237
|
+
An = (n[47] << 24) | (n[46] >>> 8),
|
|
2238
|
+
$n = (n[46] << 24) | (n[47] >>> 8),
|
|
2239
|
+
En = (n[48] << 14) | (n[49] >>> 18),
|
|
2240
|
+
Sn = (n[49] << 14) | (n[48] >>> 18)
|
|
2241
|
+
;(n[0] = T ^ (~F & Y)), (n[1] = C ^ (~z & X)), (n[2] = F ^ (~Y & an)), (n[3] = z ^ (~X & hn)), (n[4] = Y ^ (~an & En)), (n[5] = X ^ (~hn & Sn)), (n[6] = an ^ (~En & T)), (n[7] = hn ^ (~Sn & C)), (n[8] = En ^ (~T & F)), (n[9] = Sn ^ (~C & z)), (n[10] = B ^ (~J & Z)), (n[11] = U ^ (~K & Q)), (n[12] = J ^ (~Z & cn)), (n[13] = K ^ (~Q & un)), (n[14] = Z ^ (~cn & yn)), (n[15] = Q ^ (~un & bn)), (n[16] = cn ^ (~yn & B)), (n[17] = un ^ (~bn & U)), (n[18] = yn ^ (~B & J)), (n[19] = bn ^ (~U & K)), (n[20] = I ^ (~W & nn)), (n[21] = R ^ (~q & tn)), (n[22] = W ^ (~nn & dn)), (n[23] = q ^ (~tn & pn)), (n[24] = nn ^ (~dn & mn)), (n[25] = tn ^ (~pn & gn)), (n[26] = dn ^ (~mn & I)), (n[27] = pn ^ (~gn & R)), (n[28] = mn ^ (~I & W)), (n[29] = gn ^ (~R & q)), (n[30] = N ^ (~L & G)), (n[31] = j ^ (~v & _)), (n[32] = L ^ (~G & fn)), (n[33] = v ^ (~_ & ln)), (n[34] = G ^ (~fn & An)), (n[35] = _ ^ (~ln & $n)), (n[36] = fn ^ (~An & N)), (n[37] = ln ^ (~$n & j)), (n[38] = An ^ (~N & L)), (n[39] = $n ^ (~j & v)), (n[40] = D ^ (~H & en)), (n[41] = P ^ (~V & rn)), (n[42] = H ^ (~en & on)), (n[43] = V ^ (~rn & sn)), (n[44] = en ^ (~on & wn)), (n[45] = rn ^ (~sn & xn)), (n[46] = on ^ (~wn & D)), (n[47] = sn ^ (~xn & P)), (n[48] = wn ^ (~D & H)), (n[49] = xn ^ (~P & V)), (n[0] ^= IOTA_CONSTANTS[t * 2]), (n[1] ^= IOTA_CONSTANTS[t * 2 + 1])
|
|
2202
2242
|
}
|
|
2203
2243
|
}
|
|
2204
2244
|
function bytesToNumbers(n) {
|
|
@@ -2449,11 +2489,11 @@ function jacobianAddMixed(n, t, e, r, i) {
|
|
|
2449
2489
|
if (f === 0n) return l === 0n ? jacobianDouble(n, t, e) : [0n, 0n, 0n]
|
|
2450
2490
|
const a = (f * f) % o,
|
|
2451
2491
|
h = (f * a) % o,
|
|
2452
|
-
|
|
2453
|
-
d = mod(l * l - h - 2n *
|
|
2454
|
-
|
|
2455
|
-
|
|
2456
|
-
return [d,
|
|
2492
|
+
m = (n * a) % o,
|
|
2493
|
+
d = mod(l * l - h - 2n * m, o),
|
|
2494
|
+
p = mod(l * (m - d) - t * h, o),
|
|
2495
|
+
y = (f * e) % o
|
|
2496
|
+
return [d, p, y]
|
|
2457
2497
|
}
|
|
2458
2498
|
function jacobianToAffine(n, t, e) {
|
|
2459
2499
|
if (e === 0n) return [0n, 0n]
|
|
@@ -2526,21 +2566,21 @@ function shamirWNAF(n, t, e, r, i, o) {
|
|
|
2526
2566
|
l = Math.max(s.length, c.length)
|
|
2527
2567
|
let a = 0n,
|
|
2528
2568
|
h = 0n,
|
|
2529
|
-
|
|
2569
|
+
m = 0n
|
|
2530
2570
|
for (let d = l - 1; d >= 0; d--) {
|
|
2531
|
-
;[a, h,
|
|
2532
|
-
const
|
|
2533
|
-
if (
|
|
2534
|
-
const [
|
|
2535
|
-
;[a, h,
|
|
2571
|
+
;[a, h, m] = jacobianDouble(a, h, m)
|
|
2572
|
+
const p = d < s.length ? s[d] : 0
|
|
2573
|
+
if (p !== 0) {
|
|
2574
|
+
const [$, g] = u[(Math.abs(p) - 1) >> 1]
|
|
2575
|
+
;[a, h, m] = jacobianAddMixed(a, h, m, $, p > 0 ? g : SECP256K1_P - g)
|
|
2536
2576
|
}
|
|
2537
|
-
const
|
|
2538
|
-
if (
|
|
2539
|
-
const [
|
|
2540
|
-
;[a, h,
|
|
2577
|
+
const y = d < c.length ? c[d] : 0
|
|
2578
|
+
if (y !== 0) {
|
|
2579
|
+
const [$, g] = f[(Math.abs(y) - 1) >> 1]
|
|
2580
|
+
;[a, h, m] = jacobianAddMixed(a, h, m, $, y > 0 ? g : SECP256K1_P - g)
|
|
2541
2581
|
}
|
|
2542
2582
|
}
|
|
2543
|
-
return jacobianToAffine(a, h,
|
|
2583
|
+
return jacobianToAffine(a, h, m)
|
|
2544
2584
|
}
|
|
2545
2585
|
function doubleAndAdd(n, t, e) {
|
|
2546
2586
|
const [r, i, o, s] = glvDecompose(e),
|
|
@@ -3129,7 +3169,7 @@ class Lock {
|
|
|
3129
3169
|
(exports.Binary = { hexToUint8Array, uint8ArrayToHex, binaryToUint8Array, uint8ArrayToBinary, base64ToUint8Array, uint8ArrayToBase64, base32ToUint8Array, uint8ArrayToBase32, log2Reduce, partition, concatBytes, numberToUint8, uint8ToNumber, numberToUint16, uint16ToNumber, numberToUint32, uint32ToNumber, numberToUint64, uint64ToNumber, numberToUint256, uint256ToNumber, sliceBytes, keccak256, sha3_256, proximity, commonPrefix, setBit, getBit, indexOf: binaryIndexOf, equals: binaryEquals, padStart: binaryPadStart, padStartToMultiple: binaryPadStartToMultiple, padEnd: binaryPadEnd, padEndToMultiple: binaryPadEndToMultiple, xorCypher, isUtf8 }),
|
|
3130
3170
|
(exports.Elliptic = { privateKeyToPublicKey, compressPublicKey, publicKeyFromCompressed, publicKeyToAddress, signMessage, signHash, verifySignature, recoverPublicKey, checksumEncode }),
|
|
3131
3171
|
(exports.Random = { intBetween, floatBetween, chance, signed: signedRandom, makeSeededRng, point: randomPoint, procs }),
|
|
3132
|
-
(exports.Arrays = { countUnique, makeUnique, splitBySize, splitByCount, index: indexArray, indexCollection: indexArrayToCollection, onlyOrThrow, onlyOrNull, firstOrThrow, firstOrNull, shuffle, initialize: initializeArray, initialize2D: initialize2DArray, rotate2D: rotate2DArray, containsShape, glue, pluck, pick, pickMany, pickManyUnique, pickWeighted, pickRandomIndices, pickGuaranteed, last, pipe, makePipe, sortWeighted, pushAll, unshiftAll, filterAndRemove, merge: mergeArrays, empty, pushToBucket, unshiftAndLimit, atRolling, group, createOscillator, organiseWithLimits, tickPlaybook, getArgument, getBooleanArgument, getNumberArgument, requireStringArgument, requireNumberArgument, bringToFront, bringToFrontInPlace, findInstance, filterInstances, interleave, toggle, createHierarchy, multicall, maxBy, minBy, allIndexOf: allArrayIndexOf }),
|
|
3172
|
+
(exports.Arrays = { countUnique, makeUnique, splitBySize, splitByCount, index: indexArray, indexCollection: indexArrayToCollection, onlyOrThrow, onlyOrNull, firstOrThrow, firstOrNull, shuffle, initialize: initializeArray, initialize2D: initialize2DArray, rotate2D: rotate2DArray, containsShape, glue, pluck, pick, pickMany, pickManyUnique, pickWeighted, pickRandomIndices, pickGuaranteed, last, pipe, makePipe, sortWeighted, pushAll, unshiftAll, filterAndRemove, merge: mergeArrays, empty, pushToBucket, unshiftAndLimit, atRolling, group, createOscillator, organiseWithLimits, tickPlaybook, getArgument, getBooleanArgument, getNumberArgument, requireStringArgument, requireNumberArgument, bringToFront, bringToFrontInPlace, findInstance, filterInstances, interleave, toggle, createHierarchy, multicall, maxBy, minBy, allIndexOf: allArrayIndexOf, pathfind }),
|
|
3133
3173
|
(exports.System = { sleepMillis, forever, scheduleMany, waitFor, expandError, runAndSetInterval, whereAmI, withRetries }),
|
|
3134
3174
|
(exports.Numbers = { make: makeNumber, sum, average, median, getDistanceFromMidpoint, clamp, range, interpolate, createSequence, increment, decrement, format: formatNumber, fromDecimals, makeStorage, asMegabytes, convertBytes, hexToRgb, rgbToHex, haversineDistanceToMeters, roundToNearest, formatDistance, triangularNumber, searchFloat, binomialSample, toSignificantDigits }),
|
|
3135
3175
|
(exports.Promises = { raceFulfilled, invert: invertPromise, runInParallelBatches }),
|