cafe-utility 33.0.0 → 33.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 +11 -0
- package/index.js +36 -7
- package/module.mjs +1 -0
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -57,6 +57,7 @@ declare function getFirstDeep(object: CafeObject, paths: string[], fallbackToAny
|
|
|
57
57
|
declare function forever(callable: (() => Promise<void>) | (() => void), millis: number, log?: (message: string, metadata: object) => void): Promise<never>
|
|
58
58
|
declare function runAndSetInterval(callable: () => void, millis: number): () => void
|
|
59
59
|
declare function whereAmI(): 'browser' | 'node'
|
|
60
|
+
declare function withRetries<T>(callable: () => Promise<T>, allowedFailures: number, delayMillisFirst: number, delayMillisLast: number, log?: (message: string, metadata: object) => void, onFailure?: () => void): Promise<T>
|
|
60
61
|
declare function asMegabytes(number: number): number
|
|
61
62
|
declare function convertBytes(bytes: number, divisor?: number): string
|
|
62
63
|
declare function hexToRgb(hex: string): [number, number, number]
|
|
@@ -358,6 +359,7 @@ declare function selectMax<T>(object: Record<string, T>, mapper: (item: T) => nu
|
|
|
358
359
|
declare function reposition(array: Record<string, unknown>[], key: string, current: number, delta: number): void
|
|
359
360
|
declare function unwrapSingleKey(object: Record<string, unknown>): unknown
|
|
360
361
|
declare function parseKeyValues(lines: string[], separator?: string): Record<string, string>
|
|
362
|
+
declare function errorMatches(error: unknown, expected: string): boolean
|
|
361
363
|
declare function buildUrl(baseUrl?: string | null, path?: string | null, query?: Record<string, any> | null): string
|
|
362
364
|
declare function parseCsv(string: string, delimiter?: string, quote?: string): string[]
|
|
363
365
|
declare function humanizeProgress(state: Progress): string
|
|
@@ -746,6 +748,13 @@ export declare class TrieRouter<Q, S> {
|
|
|
746
748
|
insert(pathSegments: string[], handler: RouterFn<Q, S>): void
|
|
747
749
|
handle(pathSegments: string[], request: Q, response: S, context: Map<string, string>): Promise<boolean>
|
|
748
750
|
}
|
|
751
|
+
export declare class RollingValueProvider<T> {
|
|
752
|
+
private values
|
|
753
|
+
private index
|
|
754
|
+
constructor(values: T[])
|
|
755
|
+
current(): T
|
|
756
|
+
next(): T
|
|
757
|
+
}
|
|
749
758
|
export declare const Binary: {
|
|
750
759
|
hexToUint8Array: typeof hexToUint8Array
|
|
751
760
|
uint8ArrayToHex: typeof uint8ArrayToHex
|
|
@@ -867,6 +876,7 @@ export declare const System: {
|
|
|
867
876
|
expandError: typeof expandError
|
|
868
877
|
runAndSetInterval: typeof runAndSetInterval
|
|
869
878
|
whereAmI: typeof whereAmI
|
|
879
|
+
withRetries: typeof withRetries
|
|
870
880
|
}
|
|
871
881
|
export declare const Numbers: {
|
|
872
882
|
make: typeof makeNumber
|
|
@@ -986,6 +996,7 @@ export declare const Objects: {
|
|
|
986
996
|
reposition: typeof reposition
|
|
987
997
|
unwrapSingleKey: typeof unwrapSingleKey
|
|
988
998
|
parseKeyValues: typeof parseKeyValues
|
|
999
|
+
errorMatches: typeof errorMatches
|
|
989
1000
|
}
|
|
990
1001
|
export declare const Types: {
|
|
991
1002
|
isFunction: typeof isFunction
|
package/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
var _a
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: !0 }), (exports.Vector = exports.Cache = exports.Assertions = exports.Strings = exports.Types = exports.Objects = exports.Dates = exports.Promises = exports.Numbers = exports.System = exports.Arrays = exports.Random = exports.Elliptic = exports.Binary = exports.TrieRouter = exports.AsyncQueue = exports.PubSubChannel = exports.FixedPointNumber = exports.MerkleTree = exports.Chunk = exports.Uint8ArrayWriter = exports.Uint8ArrayReader = exports.AsyncLazy = exports.Lazy = exports.Optional = void 0)
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: !0 }), (exports.Vector = exports.Cache = exports.Assertions = exports.Strings = exports.Types = exports.Objects = exports.Dates = exports.Promises = exports.Numbers = exports.System = exports.Arrays = exports.Random = exports.Elliptic = exports.Binary = exports.RollingValueProvider = exports.TrieRouter = exports.AsyncQueue = exports.PubSubChannel = exports.FixedPointNumber = exports.MerkleTree = exports.Chunk = exports.Uint8ArrayWriter = exports.Uint8ArrayReader = exports.AsyncLazy = exports.Lazy = exports.Optional = void 0)
|
|
4
4
|
async function invertPromise(n) {
|
|
5
5
|
return new Promise((e, t) => n.then(t, e))
|
|
6
6
|
}
|
|
@@ -231,6 +231,18 @@ function whereAmI() {
|
|
|
231
231
|
const n = globalThis.process
|
|
232
232
|
return n ? (n.browser === !0 ? 'browser' : 'node') : 'browser'
|
|
233
233
|
}
|
|
234
|
+
async function withRetries(n, e, t, r, o, i) {
|
|
235
|
+
let u = null
|
|
236
|
+
for (let s = 0; s <= e; s++)
|
|
237
|
+
try {
|
|
238
|
+
return await n()
|
|
239
|
+
} catch (c) {
|
|
240
|
+
if (((u = c), s === e)) break
|
|
241
|
+
const f = t + (r - t) * (s / (e - 1))
|
|
242
|
+
o && o('Error in withRetries, retrying', { attempt: s + 1, allowedFailures: e, delayMillis: f, error: c }), i && i(), await sleepMillis(f)
|
|
243
|
+
}
|
|
244
|
+
throw u
|
|
245
|
+
}
|
|
234
246
|
function asMegabytes(n) {
|
|
235
247
|
return n / 1024 / 1024
|
|
236
248
|
}
|
|
@@ -1269,6 +1281,11 @@ function parseKeyValues(n, e = ':') {
|
|
|
1269
1281
|
.filter(t => t)
|
|
1270
1282
|
)
|
|
1271
1283
|
}
|
|
1284
|
+
function errorMatches(n, e) {
|
|
1285
|
+
if (!n) return !1
|
|
1286
|
+
const t = n.message
|
|
1287
|
+
return typeof t == 'string' && t.includes(e)
|
|
1288
|
+
}
|
|
1272
1289
|
function buildUrl(n, e, t) {
|
|
1273
1290
|
return joinUrl([n, e]) + toQueryString(t || {})
|
|
1274
1291
|
}
|
|
@@ -2084,8 +2101,8 @@ function keccakPermutate(n) {
|
|
|
2084
2101
|
I = (n[7] << 28) | (n[6] >>> 4),
|
|
2085
2102
|
C = (n[8] << 27) | (n[9] >>> 5),
|
|
2086
2103
|
D = (n[9] << 27) | (n[8] >>> 5),
|
|
2087
|
-
|
|
2088
|
-
|
|
2104
|
+
P = (n[11] << 4) | (n[10] >>> 28),
|
|
2105
|
+
B = (n[10] << 4) | (n[11] >>> 28),
|
|
2089
2106
|
v = (n[13] << 12) | (n[12] >>> 20),
|
|
2090
2107
|
U = (n[12] << 12) | (n[13] >>> 20),
|
|
2091
2108
|
L = (n[14] << 6) | (n[15] >>> 26),
|
|
@@ -2124,7 +2141,7 @@ function keccakPermutate(n) {
|
|
|
2124
2141
|
wn = (n[46] << 24) | (n[47] >>> 8),
|
|
2125
2142
|
xn = (n[48] << 14) | (n[49] >>> 18),
|
|
2126
2143
|
yn = (n[49] << 14) | (n[48] >>> 18)
|
|
2127
|
-
;(n[0] = E ^ (~v & K)), (n[1] = M ^ (~U & Z)), (n[2] = v ^ (~K & un)), (n[3] = U ^ (~Z & cn)), (n[4] = K ^ (~un & xn)), (n[5] = Z ^ (~cn & yn)), (n[6] = un ^ (~xn & E)), (n[7] = cn ^ (~yn & M)), (n[8] = xn ^ (~E & v)), (n[9] = yn ^ (~M & U)), (n[10] = R ^ (~F & q)), (n[11] = I ^ (~W & H)), (n[12] = F ^ (~q & en)), (n[13] = W ^ (~H & tn)), (n[14] = q ^ (~en & pn)), (n[15] = H ^ (~tn & mn)), (n[16] = en ^ (~pn & R)), (n[17] = tn ^ (~mn & I)), (n[18] = pn ^ (~R & F)), (n[19] = mn ^ (~I & W)), (n[20] = O ^ (~L & Q)), (n[21] = k ^ (~N & G)), (n[22] = L ^ (~Q & sn)), (n[23] = N ^ (~G & fn)), (n[24] = Q ^ (~sn & ln)), (n[25] = G ^ (~fn & an)), (n[26] = sn ^ (~ln & O)), (n[27] = fn ^ (~an & k)), (n[28] = ln ^ (~O & L)), (n[29] = an ^ (~k & N)), (n[30] = C ^ (~
|
|
2144
|
+
;(n[0] = E ^ (~v & K)), (n[1] = M ^ (~U & Z)), (n[2] = v ^ (~K & un)), (n[3] = U ^ (~Z & cn)), (n[4] = K ^ (~un & xn)), (n[5] = Z ^ (~cn & yn)), (n[6] = un ^ (~xn & E)), (n[7] = cn ^ (~yn & M)), (n[8] = xn ^ (~E & v)), (n[9] = yn ^ (~M & U)), (n[10] = R ^ (~F & q)), (n[11] = I ^ (~W & H)), (n[12] = F ^ (~q & en)), (n[13] = W ^ (~H & tn)), (n[14] = q ^ (~en & pn)), (n[15] = H ^ (~tn & mn)), (n[16] = en ^ (~pn & R)), (n[17] = tn ^ (~mn & I)), (n[18] = pn ^ (~R & F)), (n[19] = mn ^ (~I & W)), (n[20] = O ^ (~L & Q)), (n[21] = k ^ (~N & G)), (n[22] = L ^ (~Q & sn)), (n[23] = N ^ (~G & fn)), (n[24] = Q ^ (~sn & ln)), (n[25] = G ^ (~fn & an)), (n[26] = sn ^ (~ln & O)), (n[27] = fn ^ (~an & k)), (n[28] = ln ^ (~O & L)), (n[29] = an ^ (~k & N)), (n[30] = C ^ (~P & V)), (n[31] = D ^ (~B & J)), (n[32] = P ^ (~V & rn)), (n[33] = B ^ (~J & on)), (n[34] = V ^ (~rn & gn)), (n[35] = J ^ (~on & wn)), (n[36] = rn ^ (~gn & C)), (n[37] = on ^ (~wn & D)), (n[38] = gn ^ (~C & P)), (n[39] = wn ^ (~D & B)), (n[40] = T ^ (~j & Y)), (n[41] = S ^ (~z & _)), (n[42] = j ^ (~Y & X)), (n[43] = z ^ (~_ & nn)), (n[44] = Y ^ (~X & hn)), (n[45] = _ ^ (~nn & dn)), (n[46] = X ^ (~hn & T)), (n[47] = nn ^ (~dn & S)), (n[48] = hn ^ (~T & j)), (n[49] = dn ^ (~S & z)), (n[0] ^= IOTA_CONSTANTS[e * 2]), (n[1] ^= IOTA_CONSTANTS[e * 2 + 1])
|
|
2128
2145
|
}
|
|
2129
2146
|
}
|
|
2130
2147
|
function bytesToNumbers(n) {
|
|
@@ -2718,16 +2735,28 @@ class TrieRouter {
|
|
|
2718
2735
|
return c ? (o.set('wildcard', e.join('/')), c.handler ? (await c.handler(t, r, o), !0) : !1) : !1
|
|
2719
2736
|
}
|
|
2720
2737
|
}
|
|
2721
|
-
|
|
2738
|
+
exports.TrieRouter = TrieRouter
|
|
2739
|
+
class RollingValueProvider {
|
|
2740
|
+
constructor(e) {
|
|
2741
|
+
;(this.index = 0), (this.values = e)
|
|
2742
|
+
}
|
|
2743
|
+
current() {
|
|
2744
|
+
return this.values[this.index]
|
|
2745
|
+
}
|
|
2746
|
+
next() {
|
|
2747
|
+
return (this.index = (this.index + 1) % this.values.length), this.values[this.index]
|
|
2748
|
+
}
|
|
2749
|
+
}
|
|
2750
|
+
;(exports.RollingValueProvider = RollingValueProvider),
|
|
2722
2751
|
(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 }),
|
|
2723
2752
|
(exports.Elliptic = { privateKeyToPublicKey, compressPublicKey, publicKeyFromCompressed, publicKeyToAddress, signMessage, signHash, verifySignature, recoverPublicKey, checksumEncode }),
|
|
2724
2753
|
(exports.Random = { intBetween, floatBetween, chance, signed: signedRandom, makeSeededRng, point: randomPoint, procs }),
|
|
2725
2754
|
(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 }),
|
|
2726
|
-
(exports.System = { sleepMillis, forever, scheduleMany, waitFor, expandError, runAndSetInterval, whereAmI }),
|
|
2755
|
+
(exports.System = { sleepMillis, forever, scheduleMany, waitFor, expandError, runAndSetInterval, whereAmI, withRetries }),
|
|
2727
2756
|
(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 }),
|
|
2728
2757
|
(exports.Promises = { raceFulfilled, invert: invertPromise, runInParallelBatches }),
|
|
2729
2758
|
(exports.Dates = { getTimestamp, getTimeDelta, secondsToHumanTime, countCycles, isoDate, throttle, timeSince, dateTimeSlug, unixTimestamp, fromUtcString, fromMillis, getProgress, humanizeTime, humanizeProgress, createTimeDigits, mapDayNumber, getDayInfoFromDate, getDayInfoFromDateTimeString, seconds, minutes, hours, days, make: makeDate, normalizeTime, absoluteDays }),
|
|
2730
|
-
(exports.Objects = { safeParse, deleteDeep, getDeep, setDeep, incrementDeep, ensureDeep, replaceDeep, getFirstDeep, deepMergeInPlace, deepMerge2, deepMerge3, mapAllAsync, cloneWithJson, sortObject, sortArray, sortAny, deepEquals, deepEqualsEvery, runOn, ifPresent, zip, zipSum, removeEmptyArrays, removeEmptyValues, flatten, unflatten, match, sort: sortObjectValues, map: mapObject, mapIterable, filterKeys: filterObjectKeys, filterValues: filterObjectValues, rethrow, setSomeOnObject, setSomeDeep, flip, getAllPermutations, countTruthyValues, transformToArray, setMulti, incrementMulti, createBidirectionalMap, createTemporalBidirectionalMap, pushToBidirectionalMap, unshiftToBidirectionalMap, addToTemporalBidirectionalMap, getFromTemporalBidirectionalMap, createStatefulToggle, diffKeys, pickRandomKey, mapRandomKey, fromObjectString, toQueryString, parseQueryString, hasKey, selectMax, reposition, unwrapSingleKey, parseKeyValues }),
|
|
2759
|
+
(exports.Objects = { safeParse, deleteDeep, getDeep, setDeep, incrementDeep, ensureDeep, replaceDeep, getFirstDeep, deepMergeInPlace, deepMerge2, deepMerge3, mapAllAsync, cloneWithJson, sortObject, sortArray, sortAny, deepEquals, deepEqualsEvery, runOn, ifPresent, zip, zipSum, removeEmptyArrays, removeEmptyValues, flatten, unflatten, match, sort: sortObjectValues, map: mapObject, mapIterable, filterKeys: filterObjectKeys, filterValues: filterObjectValues, rethrow, setSomeOnObject, setSomeDeep, flip, getAllPermutations, countTruthyValues, transformToArray, setMulti, incrementMulti, createBidirectionalMap, createTemporalBidirectionalMap, pushToBidirectionalMap, unshiftToBidirectionalMap, addToTemporalBidirectionalMap, getFromTemporalBidirectionalMap, createStatefulToggle, diffKeys, pickRandomKey, mapRandomKey, fromObjectString, toQueryString, parseQueryString, hasKey, selectMax, reposition, unwrapSingleKey, parseKeyValues, errorMatches }),
|
|
2731
2760
|
(exports.Types = { isFunction, isObject, isStrictlyObject, isEmptyArray, isEmptyObject, isUndefined, isString, isNumber, isBoolean, isDate, isBlank, isId, isIntegerString, isHexString, isUrl, isNullable, asString, asHexString, asSafeString, asIntegerString, asNumber, asFunction, asInteger, asBoolean, asDate, asNullableString, asEmptiableString, asId, asTime, asArray, asObject, asNullableObject, asStringMap, asNumericDictionary, asUrl, asEmptiable, asNullable, asOptional, enforceObjectShape, enforceArrayShape, isPng, isJpg, isWebp, isImage }),
|
|
2732
2761
|
(exports.Strings = { tokenizeByCount, tokenizeByLength, searchHex, searchSubstring, randomHex: randomHexString, randomLetter: randomLetterString, randomAlphanumeric: randomAlphanumericString, randomRichAscii: randomRichAsciiString, randomUnicode: randomUnicodeString, includesAny, slugify, normalForm, enumify, escapeHtml, decodeHtmlEntities, after, afterLast, before, beforeLast, betweenWide, betweenNarrow, getPreLine, containsWord, containsWords, joinUrl, getFuzzyMatchScore, sortByFuzzyScore, splitOnce, splitAll, randomize, expand, shrinkTrim, capitalize, decapitalize, csvEscape, parseCsv, surroundInOut, getExtension, getBasename, normalizeEmail, normalizeFilename, parseFilename, camelToTitle, slugToTitle, slugToCamel, joinHumanly, findWeightedPair, extractBlock, extractAllBlocks, replaceBlocks, indexOfEarliest, lastIndexOfBefore, parseHtmlAttributes, readNextWord, readWordsAfterAll, resolveVariables, resolveVariableWithDefaultSyntax, resolveRemainingVariablesWithDefaults, isLetter, isDigit, isLetterOrDigit, isValidObjectPathCharacter, insert: insertString, indexOfRegex, allIndexOf, lineMatches, linesMatchInOrder, represent, resolveMarkdownLinks, buildUrl, isChinese, replaceBetweenStrings, describeMarkdown, isBalanced, textToFormat, splitFormatting, splitHashtags, splitUrls, route, explodeReplace, generateVariants, replaceWord, replacePascalCaseWords, stripHtml, breakLine, measureTextWidth, toLines, levenshteinDistance, findCommonPrefix, findCommonDirectory }),
|
|
2733
2762
|
(exports.Assertions = { asEqual, asTrue, asTruthy, asFalse, asFalsy, asEither }),
|
package/module.mjs
CHANGED
|
@@ -26,3 +26,4 @@ export const AsyncQueue = utility.AsyncQueue
|
|
|
26
26
|
export const Uint8ArrayReader = utility.Uint8ArrayReader
|
|
27
27
|
export const Uint8ArrayWriter = utility.Uint8ArrayWriter
|
|
28
28
|
export const TrieRouter = utility.TrieRouter
|
|
29
|
+
export const RollingValueProvider = utility.RollingValueProvider
|