cafe-utility 32.0.0 → 32.1.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.
Files changed (3) hide show
  1. package/index.d.ts +2 -0
  2. package/index.js +8 -1
  3. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -66,6 +66,7 @@ declare function roundToNearest(value: number, nearest: number): number
66
66
  declare function formatDistance(meters: number): string
67
67
  declare function triangularNumber(n: number): number
68
68
  declare function searchFloat(string: string): number
69
+ declare function binomialSample(n: number, p: number, generator?: () => number): number
69
70
  declare function isObject(value: any, checkForPlainObject?: boolean): value is object
70
71
  declare function isStrictlyObject(value: any): value is object
71
72
  declare function isEmptyArray(value: any): boolean
@@ -889,6 +890,7 @@ export declare const Numbers: {
889
890
  formatDistance: typeof formatDistance
890
891
  triangularNumber: typeof triangularNumber
891
892
  searchFloat: typeof searchFloat
893
+ binomialSample: typeof binomialSample
892
894
  }
893
895
  export declare const Promises: {
894
896
  raceFulfilled: typeof raceFulfilled
package/index.js CHANGED
@@ -267,6 +267,13 @@ function searchFloat(n) {
267
267
  if (!e) throw Error('No float found in ' + n)
268
268
  return parseFloat(e[0])
269
269
  }
270
+ function binomialSample(n, e, t = Math.random) {
271
+ const r = n * e,
272
+ o = Math.sqrt(n * e * (1 - e)),
273
+ u = (t() + t() + t() + t() + t() + t() - 3) * Math.SQRT2,
274
+ s = Math.round(r + o * u)
275
+ return Math.max(0, Math.min(n, s))
276
+ }
270
277
  function isObject(n, e = !0) {
271
278
  return !n || (e && !isUndefined(n._readableState)) || (e && n.constructor && (n.constructor.isBuffer || n.constructor.name == 'Uint8Array' || n.constructor.name === 'ArrayBuffer' || n.constructor.name === 'ReadableStream')) ? !1 : typeof n == 'object'
272
279
  }
@@ -2716,7 +2723,7 @@ class TrieRouter {
2716
2723
  (exports.Random = { intBetween, floatBetween, chance, signed: signedRandom, makeSeededRng, point: randomPoint, procs }),
2717
2724
  (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 }),
2718
2725
  (exports.System = { sleepMillis, forever, scheduleMany, waitFor, expandError, runAndSetInterval, whereAmI }),
2719
- (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 }),
2726
+ (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 }),
2720
2727
  (exports.Promises = { raceFulfilled, invert: invertPromise, runInParallelBatches }),
2721
2728
  (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 }),
2722
2729
  (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 }),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cafe-utility",
3
- "version": "32.0.0",
3
+ "version": "32.1.0",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "exports": {