@vielzeug/arsenal 1.1.2 → 2.0.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/README.md +31 -75
- package/dist/_dev.cjs +1 -1
- package/dist/_dev.cjs.map +1 -1
- package/dist/_dev.js +2 -5
- package/dist/_dev.js.map +1 -1
- package/dist/array/chunk.cjs +1 -1
- package/dist/array/chunk.cjs.map +1 -1
- package/dist/array/chunk.d.ts +2 -1
- package/dist/array/chunk.d.ts.map +1 -1
- package/dist/array/chunk.js +5 -7
- package/dist/array/chunk.js.map +1 -1
- package/dist/array/compare.cjs +1 -1
- package/dist/array/compare.cjs.map +1 -1
- package/dist/array/compare.d.ts.map +1 -1
- package/dist/array/compare.js +13 -14
- package/dist/array/compare.js.map +1 -1
- package/dist/array/index.cjs +1 -0
- package/dist/array/index.js +29 -0
- package/dist/array/search.cjs +1 -1
- package/dist/array/search.cjs.map +1 -1
- package/dist/array/search.d.ts +8 -77
- package/dist/array/search.d.ts.map +1 -1
- package/dist/array/search.js +21 -38
- package/dist/array/search.js.map +1 -1
- package/dist/array/sort.cjs +1 -1
- package/dist/array/sort.cjs.map +1 -1
- package/dist/array/sort.d.ts +1 -1
- package/dist/array/sort.d.ts.map +1 -1
- package/dist/array/sort.js +9 -10
- package/dist/array/sort.js.map +1 -1
- package/dist/arsenal.cjs +1 -1
- package/dist/arsenal.cjs.map +1 -1
- package/dist/arsenal.iife.js +1 -1
- package/dist/arsenal.iife.js.map +1 -1
- package/dist/arsenal.js +1 -1
- package/dist/arsenal.js.map +1 -1
- package/dist/async/attempt.cjs +1 -1
- package/dist/async/attempt.cjs.map +1 -1
- package/dist/async/attempt.d.ts +3 -8
- package/dist/async/attempt.d.ts.map +1 -1
- package/dist/async/attempt.js +3 -10
- package/dist/async/attempt.js.map +1 -1
- package/dist/async/index.cjs +1 -0
- package/dist/async/index.d.ts +1 -1
- package/dist/async/index.d.ts.map +1 -1
- package/dist/async/index.js +9 -0
- package/dist/async/parallel.cjs +1 -1
- package/dist/async/parallel.cjs.map +1 -1
- package/dist/async/parallel.d.ts +1 -1
- package/dist/async/parallel.d.ts.map +1 -1
- package/dist/async/parallel.js +15 -16
- package/dist/async/parallel.js.map +1 -1
- package/dist/async/retry.cjs +1 -1
- package/dist/async/retry.cjs.map +1 -1
- package/dist/async/retry.d.ts +1 -1
- package/dist/async/retry.d.ts.map +1 -1
- package/dist/async/retry.js +14 -15
- package/dist/async/retry.js.map +1 -1
- package/dist/async/taskPool.cjs +2 -0
- package/dist/async/taskPool.cjs.map +1 -0
- package/dist/async/taskPool.d.ts +14 -0
- package/dist/async/taskPool.d.ts.map +1 -0
- package/dist/async/taskPool.js +51 -0
- package/dist/async/taskPool.js.map +1 -0
- package/dist/cache/cache.cjs +2 -0
- package/dist/cache/cache.cjs.map +1 -0
- package/dist/cache/cache.d.ts +17 -0
- package/dist/cache/cache.d.ts.map +1 -0
- package/dist/cache/cache.js +59 -0
- package/dist/cache/cache.js.map +1 -0
- package/dist/cache/index.cjs +1 -0
- package/dist/cache/index.d.ts +1 -1
- package/dist/cache/index.d.ts.map +1 -1
- package/dist/cache/index.js +3 -0
- package/dist/cache/memo.cjs +1 -1
- package/dist/cache/memo.cjs.map +1 -1
- package/dist/cache/memo.d.ts +2 -2
- package/dist/cache/memo.js +24 -23
- package/dist/cache/memo.js.map +1 -1
- package/dist/errors.cjs +1 -1
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.d.ts +0 -7
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +2 -2
- package/dist/errors.js.map +1 -1
- package/dist/function/debounce.cjs +1 -1
- package/dist/function/debounce.cjs.map +1 -1
- package/dist/function/debounce.js +15 -17
- package/dist/function/debounce.js.map +1 -1
- package/dist/function/index.cjs +1 -0
- package/dist/function/index.d.ts +0 -2
- package/dist/function/index.d.ts.map +1 -1
- package/dist/function/index.js +8 -0
- package/dist/function/pipe.cjs +1 -1
- package/dist/function/pipe.cjs.map +1 -1
- package/dist/function/pipe.js +1 -1
- package/dist/function/pipe.js.map +1 -1
- package/dist/guards/index.cjs +1 -0
- package/dist/guards/index.d.ts +0 -3
- package/dist/guards/index.d.ts.map +1 -1
- package/dist/guards/index.js +17 -0
- package/dist/guards/isEqual.cjs.map +1 -1
- package/dist/guards/isEqual.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +2 -91
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -118
- package/dist/math/allocate.cjs +1 -1
- package/dist/math/allocate.cjs.map +1 -1
- package/dist/math/allocate.d.ts +1 -1
- package/dist/math/allocate.d.ts.map +1 -1
- package/dist/math/allocate.js +13 -14
- package/dist/math/allocate.js.map +1 -1
- package/dist/math/index.cjs +1 -0
- package/dist/math/index.d.ts +0 -3
- package/dist/math/index.d.ts.map +1 -1
- package/dist/math/index.js +17 -0
- package/dist/math/mod.cjs +1 -1
- package/dist/math/mod.cjs.map +1 -1
- package/dist/math/mod.d.ts +1 -1
- package/dist/math/mod.d.ts.map +1 -1
- package/dist/math/mod.js +4 -5
- package/dist/math/mod.js.map +1 -1
- package/dist/math/range.cjs +1 -1
- package/dist/math/range.cjs.map +1 -1
- package/dist/math/range.d.ts +1 -1
- package/dist/math/range.d.ts.map +1 -1
- package/dist/math/range.js +14 -15
- package/dist/math/range.js.map +1 -1
- package/dist/math/sum.cjs +1 -1
- package/dist/math/sum.cjs.map +1 -1
- package/dist/math/sum.d.ts +2 -2
- package/dist/math/sum.d.ts.map +1 -1
- package/dist/math/sum.js +6 -7
- package/dist/math/sum.js.map +1 -1
- package/dist/object/getPath.cjs +1 -1
- package/dist/object/getPath.cjs.map +1 -1
- package/dist/object/getPath.d.ts +12 -42
- package/dist/object/getPath.d.ts.map +1 -1
- package/dist/object/getPath.js +21 -22
- package/dist/object/getPath.js.map +1 -1
- package/dist/object/index.cjs +1 -0
- package/dist/object/index.d.ts +1 -1
- package/dist/object/index.d.ts.map +1 -1
- package/dist/object/index.js +15 -0
- package/dist/object/merge.cjs +1 -1
- package/dist/object/merge.cjs.map +1 -1
- package/dist/object/merge.d.ts +1 -1
- package/dist/object/merge.d.ts.map +1 -1
- package/dist/object/merge.js +2 -3
- package/dist/object/merge.js.map +1 -1
- package/dist/object/prune.cjs +1 -1
- package/dist/object/prune.cjs.map +1 -1
- package/dist/object/prune.d.ts.map +1 -1
- package/dist/object/prune.js +22 -23
- package/dist/object/prune.js.map +1 -1
- package/dist/object/tryParseJson.cjs +2 -0
- package/dist/object/tryParseJson.cjs.map +1 -0
- package/dist/object/tryParseJson.d.ts +9 -0
- package/dist/object/tryParseJson.d.ts.map +1 -0
- package/dist/object/tryParseJson.js +18 -0
- package/dist/object/tryParseJson.js.map +1 -0
- package/dist/random/_index.cjs +2 -0
- package/dist/random/_index.cjs.map +1 -0
- package/dist/random/_index.d.ts +3 -0
- package/dist/random/_index.d.ts.map +1 -0
- package/dist/random/_index.js +10 -0
- package/dist/random/_index.js.map +1 -0
- package/dist/random/draw.cjs +1 -1
- package/dist/random/draw.cjs.map +1 -1
- package/dist/random/draw.d.ts +3 -2
- package/dist/random/draw.d.ts.map +1 -1
- package/dist/random/draw.js +12 -12
- package/dist/random/draw.js.map +1 -1
- package/dist/random/index.cjs +1 -0
- package/dist/random/index.d.ts +1 -0
- package/dist/random/index.d.ts.map +1 -1
- package/dist/random/index.js +5 -0
- package/dist/random/random.cjs +1 -1
- package/dist/random/random.cjs.map +1 -1
- package/dist/random/random.d.ts +2 -1
- package/dist/random/random.d.ts.map +1 -1
- package/dist/random/random.js +5 -6
- package/dist/random/random.js.map +1 -1
- package/dist/random/shuffle.cjs +1 -1
- package/dist/random/shuffle.cjs.map +1 -1
- package/dist/random/shuffle.d.ts +2 -1
- package/dist/random/shuffle.d.ts.map +1 -1
- package/dist/random/shuffle.js +7 -7
- package/dist/random/shuffle.js.map +1 -1
- package/dist/random/source.d.ts +4 -0
- package/dist/random/source.d.ts.map +1 -0
- package/dist/string/index.cjs +1 -0
- package/dist/string/index.d.ts +0 -2
- package/dist/string/index.d.ts.map +1 -1
- package/dist/string/index.js +12 -0
- package/dist/string/similarity.cjs +1 -1
- package/dist/string/similarity.cjs.map +1 -1
- package/dist/string/similarity.d.ts.map +1 -1
- package/dist/string/similarity.js +16 -17
- package/dist/string/similarity.js.map +1 -1
- package/dist/string/truncate.cjs +1 -1
- package/dist/string/truncate.cjs.map +1 -1
- package/dist/string/truncate.d.ts +2 -1
- package/dist/string/truncate.d.ts.map +1 -1
- package/dist/string/truncate.js +10 -11
- package/dist/string/truncate.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +11 -16
- package/dist/_common/_secureRandomIndex.cjs +0 -2
- package/dist/_common/_secureRandomIndex.cjs.map +0 -1
- package/dist/_common/_secureRandomIndex.d.ts +0 -2
- package/dist/_common/_secureRandomIndex.d.ts.map +0 -1
- package/dist/_common/_secureRandomIndex.js +0 -9
- package/dist/_common/_secureRandomIndex.js.map +0 -1
- package/dist/async/queue.cjs +0 -2
- package/dist/async/queue.cjs.map +0 -1
- package/dist/async/queue.d.ts +0 -42
- package/dist/async/queue.d.ts.map +0 -1
- package/dist/async/queue.js +0 -72
- package/dist/async/queue.js.map +0 -1
- package/dist/cache/stash.cjs +0 -2
- package/dist/cache/stash.cjs.map +0 -1
- package/dist/cache/stash.d.ts +0 -111
- package/dist/cache/stash.d.ts.map +0 -1
- package/dist/cache/stash.js +0 -92
- package/dist/cache/stash.js.map +0 -1
- package/dist/function/constant.cjs +0 -2
- package/dist/function/constant.cjs.map +0 -1
- package/dist/function/constant.d.ts +0 -5
- package/dist/function/constant.d.ts.map +0 -1
- package/dist/function/constant.js +0 -8
- package/dist/function/constant.js.map +0 -1
- package/dist/function/identity.cjs +0 -2
- package/dist/function/identity.cjs.map +0 -1
- package/dist/function/identity.d.ts +0 -5
- package/dist/function/identity.d.ts.map +0 -1
- package/dist/function/identity.js +0 -8
- package/dist/function/identity.js.map +0 -1
- package/dist/guards/isArray.cjs +0 -2
- package/dist/guards/isArray.cjs.map +0 -1
- package/dist/guards/isArray.d.ts +0 -16
- package/dist/guards/isArray.d.ts.map +0 -1
- package/dist/guards/isArray.js +0 -8
- package/dist/guards/isArray.js.map +0 -1
- package/dist/guards/isBoolean.cjs +0 -2
- package/dist/guards/isBoolean.cjs.map +0 -1
- package/dist/guards/isBoolean.d.ts +0 -23
- package/dist/guards/isBoolean.d.ts.map +0 -1
- package/dist/guards/isBoolean.js +0 -8
- package/dist/guards/isBoolean.js.map +0 -1
- package/dist/guards/isString.cjs +0 -2
- package/dist/guards/isString.cjs.map +0 -1
- package/dist/guards/isString.d.ts +0 -15
- package/dist/guards/isString.d.ts.map +0 -1
- package/dist/guards/isString.js +0 -8
- package/dist/guards/isString.js.map +0 -1
- package/dist/math/abs.cjs +0 -2
- package/dist/math/abs.cjs.map +0 -1
- package/dist/math/abs.d.ts +0 -17
- package/dist/math/abs.d.ts.map +0 -1
- package/dist/math/abs.js +0 -8
- package/dist/math/abs.js.map +0 -1
- package/dist/math/max.cjs +0 -2
- package/dist/math/max.cjs.map +0 -1
- package/dist/math/max.d.ts +0 -21
- package/dist/math/max.d.ts.map +0 -1
- package/dist/math/max.js +0 -12
- package/dist/math/max.js.map +0 -1
- package/dist/math/min.cjs +0 -2
- package/dist/math/min.cjs.map +0 -1
- package/dist/math/min.d.ts +0 -21
- package/dist/math/min.d.ts.map +0 -1
- package/dist/math/min.js +0 -12
- package/dist/math/min.js.map +0 -1
- package/dist/object/parseJSON.cjs +0 -2
- package/dist/object/parseJSON.cjs.map +0 -1
- package/dist/object/parseJSON.d.ts +0 -32
- package/dist/object/parseJSON.d.ts.map +0 -1
- package/dist/object/parseJSON.js +0 -16
- package/dist/object/parseJSON.js.map +0 -1
- package/dist/string/endsWith.cjs +0 -2
- package/dist/string/endsWith.cjs.map +0 -1
- package/dist/string/endsWith.d.ts +0 -5
- package/dist/string/endsWith.d.ts.map +0 -1
- package/dist/string/endsWith.js +0 -8
- package/dist/string/endsWith.js.map +0 -1
- package/dist/string/startsWith.cjs +0 -2
- package/dist/string/startsWith.cjs.map +0 -1
- package/dist/string/startsWith.d.ts +0 -5
- package/dist/string/startsWith.d.ts.map +0 -1
- package/dist/string/startsWith.js +0 -8
- package/dist/string/startsWith.js.map +0 -1
package/dist/array/search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","names":[],"sources":["../../src/array/search.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"search.js","names":[],"sources":["../../src/array/search.ts"],"sourcesContent":["import { similarity } from '../string/similarity';\n\nexport type ScoredResult<T> = { item: T; score: number };\n\nexport type FuzzyOptions = {\n normalize?: boolean;\n threshold?: number;\n};\n\nexport type FuzzySelection<T> = FuzzyOptions & {\n select: (item: T) => string | readonly string[];\n};\n\nconst normalizeText = (value: string): string => value.normalize('NFKD').replace(/\\p{M}/gu, '');\n\nconst termsFor = <T>(item: T, select: (item: T) => string | readonly string[]): readonly string[] => {\n const selected = select(item);\n\n return typeof selected === 'string' ? [selected] : selected;\n};\n\nconst prepareQuery = (query: string, normalize: boolean): string => {\n const trimmed = query.trim().toLowerCase();\n\n return normalize ? normalizeText(trimmed) : trimmed;\n};\n\nconst score = <T>(\n item: T,\n query: string,\n normalize: boolean,\n select: (item: T) => string | readonly string[],\n): number => {\n return termsFor(item, select).reduce((best, term) => {\n const value = normalize ? normalizeText(term.toLowerCase()) : term.toLowerCase();\n\n return Math.max(best, similarity(value, query));\n }, 0);\n};\n\nconst stringSelection = (value: string): string => value;\n\nexport function fuzzyFilter(array: readonly string[], query: string, options?: FuzzyOptions): string[];\nexport function fuzzyFilter<T>(array: readonly T[], query: string, options: FuzzySelection<T>): T[];\nexport function fuzzyFilter<T>(\n array: readonly T[],\n query: string,\n options: FuzzyOptions | FuzzySelection<T> = {},\n): T[] {\n const { normalize = false, threshold = 0.25 } = options;\n const select = 'select' in options ? options.select : (stringSelection as (item: T) => string);\n const searchTerm = prepareQuery(query, normalize);\n\n if (!searchTerm) return [...array];\n\n return array.filter((item) => score(item, searchTerm, normalize, select) >= threshold);\n}\n\nexport function fuzzyScore(array: readonly string[], query: string, options?: FuzzyOptions): ScoredResult<string>[];\nexport function fuzzyScore<T>(array: readonly T[], query: string, options: FuzzySelection<T>): ScoredResult<T>[];\nexport function fuzzyScore<T>(\n array: readonly T[],\n query: string,\n options: FuzzyOptions | FuzzySelection<T> = {},\n): ScoredResult<T>[] {\n const { normalize = false, threshold = 0.25 } = options;\n const select = 'select' in options ? options.select : (stringSelection as (item: T) => string);\n const searchTerm = prepareQuery(query, normalize);\n\n if (!searchTerm) return array.map((item) => ({ item, score: 1 }));\n\n return array\n .map((item) => ({ item, score: score(item, searchTerm, normalize, select) }))\n .filter((result) => result.score >= threshold)\n .sort((a, b) => b.score - a.score);\n}\n"],"mappings":";;AAaA,IAAM,KAAiB,MAA0B,EAAM,UAAU,MAAM,CAAC,CAAC,QAAQ,WAAW,EAAE,GAExF,KAAe,GAAS,MAAuE;CACnG,IAAM,IAAW,EAAO,CAAI;CAE5B,OAAO,OAAO,KAAa,WAAW,CAAC,CAAQ,IAAI;AACrD,GAEM,KAAgB,GAAe,MAA+B;CAClE,IAAM,IAAU,EAAM,KAAK,CAAC,CAAC,YAAY;CAEzC,OAAO,IAAY,EAAc,CAAO,IAAI;AAC9C,GAEM,KACJ,GACA,GACA,GACA,MAEO,EAAS,GAAM,CAAM,CAAC,CAAC,QAAQ,GAAM,MAAS;CACnD,IAAM,IAAQ,IAAY,EAAc,EAAK,YAAY,CAAC,IAAI,EAAK,YAAY;CAE/E,OAAO,KAAK,IAAI,GAAM,EAAW,GAAO,CAAK,CAAC;AAChD,GAAG,CAAC,GAGA,KAAmB,MAA0B;AAInD,SAAgB,EACd,GACA,GACA,IAA4C,CAAC,GACxC;CACL,IAAM,EAAE,eAAY,IAAO,eAAY,QAAS,GAC1C,IAAS,YAAY,IAAU,EAAQ,SAAU,GACjD,IAAa,EAAa,GAAO,CAAS;CAIhD,OAFK,IAEE,EAAM,QAAQ,MAAS,EAAM,GAAM,GAAY,GAAW,CAAM,KAAK,CAAS,IAF7D,CAAC,GAAG,CAAK;AAGnC;AAIA,SAAgB,EACd,GACA,GACA,IAA4C,CAAC,GAC1B;CACnB,IAAM,EAAE,eAAY,IAAO,eAAY,QAAS,GAC1C,IAAS,YAAY,IAAU,EAAQ,SAAU,GACjD,IAAa,EAAa,GAAO,CAAS;CAIhD,OAFK,IAEE,EACJ,KAAK,OAAU;EAAE;EAAM,OAAO,EAAM,GAAM,GAAY,GAAW,CAAM;CAAE,EAAE,CAAC,CAC5E,QAAQ,MAAW,EAAO,SAAS,CAAS,CAAC,CAC7C,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,KAAK,IALX,EAAM,KAAK,OAAU;EAAE;EAAM,OAAO;CAAE,EAAE;AAMlE"}
|
package/dist/array/sort.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require("
|
|
1
|
+
const e=require("./compare.cjs"),t=require("./compareBy.cjs");function n(n,r,i=`asc`){if(!Array.isArray(n))throw TypeError(`sort: first argument must be an array`);if(typeof r==`function`){let t=i===`desc`?-1:1;return[...n].sort((n,i)=>e.compare(r(n),r(i))*t)}return[...n].sort(t.compareBy(r))}exports.sort=n;
|
|
2
2
|
//# sourceMappingURL=sort.cjs.map
|
package/dist/array/sort.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sort.cjs","names":[],"sources":["../../src/array/sort.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"sort.cjs","names":[],"sources":["../../src/array/sort.ts"],"sourcesContent":["import { compare } from './compare';\nimport { compareBy } from './compareBy';\n\nexport type SortDirection = 'asc' | 'desc';\nexport type SortSelectors<T> = Partial<Record<keyof T, SortDirection>>;\n\n/**\n * Sorts an array by a selector function (single-field) or by a multi-field\n * object of `{ key: 'asc' | 'desc' }` entries.\n *\n * @example\n * ```ts\n * // Single field\n * sort([{ a: 2 }, { a: 1 }], item => item.a); // [{ a:1 }, { a:2 }]\n * sort([{ a: 2 }, { a: 1 }], item => item.a, 'desc'); // [{ a:2 }, { a:1 }]\n *\n * // Multi-field\n * sort(users, { name: 'asc', age: 'desc' });\n * ```\n *\n * @param array - The array to sort.\n * @param selector - A function extracting the sort key, or a multi-field object.\n * @param direction - `'asc'` (default) or `'desc'` — only applies to single-field mode.\n * @returns A new sorted array.\n *\n * @throws {TypeError} If the first argument is not an array.\n */\nexport function sort<T>(array: T[], selector: (item: T) => unknown, direction?: SortDirection): T[];\nexport function sort<T>(array: T[], selectors: SortSelectors<T>): T[];\nexport function sort<T>(\n array: T[],\n selectorOrSelectors: ((item: T) => unknown) | SortSelectors<T>,\n direction: SortDirection = 'asc',\n): T[] {\n if (!Array.isArray(array)) throw new TypeError('sort: first argument must be an array');\n\n if (typeof selectorOrSelectors === 'function') {\n const multiplier = direction === 'desc' ? -1 : 1;\n\n return [...array].sort((a, b) => compare(selectorOrSelectors(a), selectorOrSelectors(b)) * multiplier);\n }\n\n return [...array].sort(compareBy(selectorOrSelectors));\n}\n"],"mappings":"8DA6BA,SAAgB,EACd,EACA,EACA,EAA2B,MACtB,CACL,GAAI,CAAC,MAAM,QAAQ,CAAK,EAAG,MAAU,UAAU,uCAAuC,EAEtF,GAAI,OAAO,GAAwB,WAAY,CAC7C,IAAM,EAAa,IAAc,OAAS,GAAK,EAE/C,MAAO,CAAC,GAAG,CAAK,CAAC,CAAC,MAAM,EAAG,IAAM,EAAA,QAAQ,EAAoB,CAAC,EAAG,EAAoB,CAAC,CAAC,EAAI,CAAU,CACvG,CAEA,MAAO,CAAC,GAAG,CAAK,CAAC,CAAC,KAAK,EAAA,UAAU,CAAmB,CAAC,CACvD"}
|
package/dist/array/sort.d.ts
CHANGED
|
@@ -19,7 +19,7 @@ export type SortSelectors<T> = Partial<Record<keyof T, SortDirection>>;
|
|
|
19
19
|
* @param direction - `'asc'` (default) or `'desc'` — only applies to single-field mode.
|
|
20
20
|
* @returns A new sorted array.
|
|
21
21
|
*
|
|
22
|
-
* @throws {
|
|
22
|
+
* @throws {TypeError} If the first argument is not an array.
|
|
23
23
|
*/
|
|
24
24
|
export declare function sort<T>(array: T[], selector: (item: T) => unknown, direction?: SortDirection): T[];
|
|
25
25
|
export declare function sort<T>(array: T[], selectors: SortSelectors<T>): T[];
|
package/dist/array/sort.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sort.d.ts","sourceRoot":"","sources":["../../src/array/sort.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sort.d.ts","sourceRoot":"","sources":["../../src/array/sort.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,CAAC;AAC3C,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,EAAE,SAAS,CAAC,EAAE,aAAa,GAAG,CAAC,EAAE,CAAC;AACpG,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC"}
|
package/dist/array/sort.js
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { compareBy as n } from "./compareBy.js";
|
|
1
|
+
import { compare as e } from "./compare.js";
|
|
2
|
+
import { compareBy as t } from "./compareBy.js";
|
|
4
3
|
//#region src/array/sort.ts
|
|
5
|
-
function
|
|
6
|
-
if (!Array.isArray(
|
|
7
|
-
if (typeof
|
|
8
|
-
let
|
|
9
|
-
return [...
|
|
4
|
+
function n(n, r, i = "asc") {
|
|
5
|
+
if (!Array.isArray(n)) throw TypeError("sort: first argument must be an array");
|
|
6
|
+
if (typeof r == "function") {
|
|
7
|
+
let t = i === "desc" ? -1 : 1;
|
|
8
|
+
return [...n].sort((n, i) => e(r(n), r(i)) * t);
|
|
10
9
|
}
|
|
11
|
-
return [...
|
|
10
|
+
return [...n].sort(t(r));
|
|
12
11
|
}
|
|
13
12
|
//#endregion
|
|
14
|
-
export {
|
|
13
|
+
export { n as sort };
|
|
15
14
|
|
|
16
15
|
//# sourceMappingURL=sort.js.map
|
package/dist/array/sort.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sort.js","names":[],"sources":["../../src/array/sort.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"sort.js","names":[],"sources":["../../src/array/sort.ts"],"sourcesContent":["import { compare } from './compare';\nimport { compareBy } from './compareBy';\n\nexport type SortDirection = 'asc' | 'desc';\nexport type SortSelectors<T> = Partial<Record<keyof T, SortDirection>>;\n\n/**\n * Sorts an array by a selector function (single-field) or by a multi-field\n * object of `{ key: 'asc' | 'desc' }` entries.\n *\n * @example\n * ```ts\n * // Single field\n * sort([{ a: 2 }, { a: 1 }], item => item.a); // [{ a:1 }, { a:2 }]\n * sort([{ a: 2 }, { a: 1 }], item => item.a, 'desc'); // [{ a:2 }, { a:1 }]\n *\n * // Multi-field\n * sort(users, { name: 'asc', age: 'desc' });\n * ```\n *\n * @param array - The array to sort.\n * @param selector - A function extracting the sort key, or a multi-field object.\n * @param direction - `'asc'` (default) or `'desc'` — only applies to single-field mode.\n * @returns A new sorted array.\n *\n * @throws {TypeError} If the first argument is not an array.\n */\nexport function sort<T>(array: T[], selector: (item: T) => unknown, direction?: SortDirection): T[];\nexport function sort<T>(array: T[], selectors: SortSelectors<T>): T[];\nexport function sort<T>(\n array: T[],\n selectorOrSelectors: ((item: T) => unknown) | SortSelectors<T>,\n direction: SortDirection = 'asc',\n): T[] {\n if (!Array.isArray(array)) throw new TypeError('sort: first argument must be an array');\n\n if (typeof selectorOrSelectors === 'function') {\n const multiplier = direction === 'desc' ? -1 : 1;\n\n return [...array].sort((a, b) => compare(selectorOrSelectors(a), selectorOrSelectors(b)) * multiplier);\n }\n\n return [...array].sort(compareBy(selectorOrSelectors));\n}\n"],"mappings":";;;AA6BA,SAAgB,EACd,GACA,GACA,IAA2B,OACtB;CACL,IAAI,CAAC,MAAM,QAAQ,CAAK,GAAG,MAAU,UAAU,uCAAuC;CAEtF,IAAI,OAAO,KAAwB,YAAY;EAC7C,IAAM,IAAa,MAAc,SAAS,KAAK;EAE/C,OAAO,CAAC,GAAG,CAAK,CAAC,CAAC,MAAM,GAAG,MAAM,EAAQ,EAAoB,CAAC,GAAG,EAAoB,CAAC,CAAC,IAAI,CAAU;CACvG;CAEA,OAAO,CAAC,GAAG,CAAK,CAAC,CAAC,KAAK,EAAU,CAAmB,CAAC;AACvD"}
|
package/dist/arsenal.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=class e extends Error{constructor(e,t){super(e,t),this.name=new.target.name,Object.setPrototypeOf(this,new.target.prototype)}static is(t){return t instanceof e}},t=class extends e{},n=class extends e{};function r(e){return typeof e==`string`}function i(e,n=2){if(!Array.isArray(e)&&!r(e))throw new t(`chunk: argument must be an array or string`);if(n<1)throw new t(`chunk: size must be at least 1`);return Array.from({length:Math.ceil(e.length/n)},(t,r)=>e.slice(r*n,r*n+n))}function a(e){return e.filter(Boolean)}var o=(e,n)=>{if(e===n)return 0;if(e===void 0)return 1;if(n===void 0)return-1;if(e===null)return n===null?0:-1;if(n===null)return 1;if(typeof e==`string`&&typeof n==`string`)return e.localeCompare(n);if(typeof e==`number`&&typeof n==`number`)return e===n?0:e>n?1:-1;if(e instanceof Date&&n instanceof Date){let t=e.getTime(),r=n.getTime();return t===r?0:t>r?1:-1}throw new t(`compare: unsupported types "${typeof e}" and "${typeof n}". Supported: number, string, Date, null, undefined.`)},s=e=>{let t=Object.entries(e);return(e,n)=>{for(let[r,i]of t){let t=e[r],a=n[r],s=i===`desc`?-1:1,c=o(t,a);if(c!==0)return c*s}return 0}};function c(e,t){return l(e,t,new WeakMap)}function l(e,t,n){if(e===t)return!0;if(e==null||t==null||typeof e!=typeof t||typeof e!=`object`||typeof t!=`object`)return!1;if(n.has(e))return n.get(e)===t;if(n.set(e,t),Array.isArray(e)||Array.isArray(t))return!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length?!1:e.every((e,r)=>l(e,t[r],n));if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[r,i]of e)if(!t.has(r)||!l(i,t.get(r),n))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;let r=[...t];for(let i of e)if(typeof i==`string`||typeof i==`number`||typeof i==`boolean`||i==null){if(!t.has(i))return!1}else if(!r.some(e=>l(i,e,n)))return!1;return!0}if(e instanceof RegExp||t instanceof RegExp)return e instanceof RegExp&&t instanceof RegExp&&e.source===t.source&&e.flags===t.flags;if(e instanceof Map||t instanceof Map||e instanceof Set||t instanceof Set)return!1;let r=Object.keys(e),i=Object.keys(t);if(r.length!==i.length)return!1;for(let i of r)if(!Object.hasOwn(t,i)||!l(e[i],t[i],n))return!1;return!0}function u(e,t){return typeof t!=`object`||!t?e.includes(t):e.some(e=>c(e,t))}var d=new Set([`__proto__`,`constructor`,`prototype`]);function f(e){return typeof e==`string`&&d.has(e)}function p(e,t){let n={};for(let r=0;r<e.length;r++){let i=t(e[r]),a=i==null?`_`:String(i);f(a)||(n[a]=(n[a]??0)+1)}return n}function m(e,t){return new Set(e.map(e=>t(e)))}function h(e,t){let n=new Set,r=[];for(let i of e){let e=t(i);n.has(e)||(n.add(e),r.push(i))}return r}function g(e,t,n){if(!n){let n=new Set(t);return e.filter(e=>!n.has(e))}let r=m(t,n);return e.filter(e=>!r.has(n(e)))}function _(e,t=1){let n=Math.max(0,Math.floor(t));return e.slice(n)}function v(e,t=1){let n=Math.max(0,Math.floor(t));return n===0?[...e]:e.slice(0,Math.max(0,e.length-n))}function y(e,t){let n=[];for(let r=0;r<e.length;r++){let i=t(e[r],r,e);i!==void 0&&n.push(i)}return n}function b(e,t){return e.length>0?e[0]:t}function x(e,t=1){if(t<1)return[...e];let n=[];for(let r of e)Array.isArray(r)?n.push(...x(r,t-1)):n.push(r);return n}function S(e,t){let n={};for(let r of e){let e=t(r),i=e==null?`_`:String(e);f(i)||(n[i]||(n[i]=[]),n[i].push(r))}return n}function ee(e,t){let n={};for(let r of e){let e=String(t(r));f(e)||(n[e]=r)}return n}function te(e,t,n){if(!n){let n=new Set(t);return e.filter(e=>n.has(e))}let r=m(t,n);return e.filter(e=>r.has(n(e)))}function ne(e,t){return e.length>0?e[e.length-1]:t}function re(e,t){let n=[],r=[];for(let i=0;i<e.length;i++)t(e[i],i,e)?n.push(e[i]):r.push(e[i]);return[n,r]}function ie(e,t,n){let r=e.findIndex(t);return r===-1?e:[...e.slice(0,r),n,...e.slice(r+1)]}function ae(e,t,{wrap:n=!1}={}){if(e.length===0)return e;let r=(t%e.length+e.length)%e.length,i=e.slice(r);return n?[...i,...e.slice(0,r)]:i}function C(e){return e==null}function w(e){return typeof e==`number`&&!Number.isNaN(e)}var T=1e4;function E(e,n){if(e.length>T||n.length>T)throw new t(`similarity: input strings must not exceed ${T} characters to prevent excessive memory usage`);let r=e.toLowerCase(),i=n.toLowerCase();if(r===i)return 1;if(r.length===0)return+(i.length===0);if(i.length===0)return 0;let[a,o]=r.length<i.length?[r,i]:[i,r],s=a.length,c=o.length,l=Array.from({length:s+1},(e,t)=>t),u=Array(s+1);for(let e=1;e<=c;e++){u[0]=e;for(let t=1;t<=s;t++){let n=o[e-1]===a[t-1]?0:1;u[t]=Math.min(u[t-1]+1,l[t]+1,l[t-1]+n)}[l,u]=[u,l]}return 1-l[s]/Math.max(r.length,i.length)}var oe=10,se=1e3;function D(e){if(e===void 0)return oe;if(!Number.isInteger(e)||e<0)throw new t(`fuzzy: maxDepth must be a non-negative integer, got ${e}`);return Math.min(e,se)}var O=e=>e.normalize(`NFKD`).replace(/\p{M}/gu,``);function k(e,t,n,i,a=0){return a>i||C(e)?0:r(e)||w(e)?E(n?O(String(e)):String(e),t):Array.isArray(e)?e.reduce((e,r)=>Math.max(e,k(r,t,n,i,a+1)),0):typeof e==`object`?Object.values(e).reduce((e,r)=>Math.max(e,k(r,t,n,i,a+1)),0):0}function A(e,t,n,r,i){return k(e,t,r,i)>=n}function j(e,t,n={}){let{fields:r,normalize:i=!1,threshold:a=.25}=n,o=D(n.maxDepth);if(!t)return[...e];let s=t.trim().toLowerCase();if(!s)return[...e];let c=i?O(s):s;return e.filter(e=>r&&r.length>0&&typeof e==`object`&&e?r.some(t=>A(e[t],c,a,i,o)):A(e,c,a,i,o))}function M(e,t,n={}){let{fields:r,normalize:i=!1,threshold:a=.25}=n,o=D(n.maxDepth);if(!t||!t.trim())return e.map(e=>({item:e,score:1}));let s=t.trim().toLowerCase(),c=i?O(s):s;return e.map(e=>({item:e,score:r&&r.length>0&&typeof e==`object`&&e?r.reduce((t,n)=>Math.max(t,k(e[n],c,i,o)),0):k(e,c,i,o)})).filter(({score:e})=>e>=a).sort((e,t)=>t.score-e.score)}function ce(e,t,n={}){let{scored:r,...i}=n;return r?M(e,t,i):j(e,t,i)}function le(e,n,r=`asc`){if(!Array.isArray(e))throw new t(`sort: first argument must be an array`);if(typeof n==`function`){let t=r===`desc`?-1:1;return[...e].sort((e,r)=>o(n(e),n(r))*t)}return[...e].sort(s(n))}function ue(e,t=1){let n=Math.max(0,Math.floor(t));return e.slice(0,n)}function de(e,t=1){let n=Math.max(0,Math.floor(t));return n===0?[]:e.slice(Math.max(0,e.length-n))}function fe(e,t,n,r={}){let{strategy:i=`append`}=r,a=n?e=>n(e)===n(t):e=>e===t,o=e.findIndex(a);return o===-1?i===`prepend`?[t,...e]:[...e,t]:[...e.slice(0,o),...e.slice(o+1)]}function pe(e,t,n){return n?h([...e,...t],n):[...new Set([...e,...t])]}function me(e,t){return e.length<=1?[...e]:t?h(e,t):[...new Set(e)]}function he(e){if(e.length===0)return[];let t=e[0].length,n=Array.from({length:t},()=>[]);for(let r of e)for(let e=0;e<t;e++)n[e].push(r[e]);return n}function ge(...e){if(e.length===0)return[];let t=Math.max(...e.map(e=>e.length)),n=Array(t);for(let r=0;r<t;r++)n[r]=e.map(e=>e[r]);return n}function N(e){return e?.reason??new DOMException(`Aborted`,`AbortError`)}function _e(e){return e.ok===!0}function ve(e){return e.ok===!1}function ye(e){try{let t=e();return typeof t?.then==`function`?t.then(e=>({ok:!0,value:e}),e=>({error:e,ok:!1})):{ok:!0,value:t}}catch(e){return{error:e,ok:!1}}}function be(e,t=3e4){let n=Math.max(0,Number.isNaN(e)?0:Math.floor(e));return Math.min(1e3*(n<=30?1<<n:2**n),t)}async function xe(e,n,r={}){let{abortOnError:i=!1,limit:a=1/0,signal:o}=r;if(a<1)throw new t(`parallel: limit must be at least 1, got ${a}`);if(o?.aborted)throw N(o);if(e.length===0)return[];let s=Array(e.length),c=0,l=i?new AbortController:void 0,u=async()=>{for(;;){if(o?.aborted)throw N(o);if(l?.signal.aborted||c>=e.length)return;let t=c++;try{s[t]=await n(e[t],t,e)}catch(e){throw l?.abort(),e}}},d=Math.min(a,e.length),f=Array.from({length:d},()=>u());return await Promise.all(f),s}function Se(e={}){let{concurrency:n=1}=e;if(n<1)throw new t(`Concurrency must be at least 1`);let r=0,i=!1,a=null,o=null,s=[],c=new Set,l=()=>{r===0&&s.length===0&&o&&(o(),a=null,o=null)},u=e=>{for(let t of c)t(e)},d=()=>{if(!i){for(i=!0;r<n&&s.length>0;){let e=s.shift();r++,Promise.resolve().then(()=>e.fn()).then(t=>{u({ok:!0,value:t}),e.resolve(t)}).catch(t=>{u({error:t,ok:!1}),e.reject(t)}).finally(()=>{r--,d(),l()})}i=!1,l()}};return{get active(){return r},add:(e,t)=>{let{promise:n,reject:r,resolve:i}=Promise.withResolvers(),a=t?.priority??0,o={fn:e,priority:a,reject:r,resolve:i},c=s.length;for(;c>0&&s[c-1].priority<a;)c--;return s.splice(c,0,o),d(),n},clear:e=>{let t=e??Error(`Queue cleared`);for(let e of s.splice(0))e.reject(t);l()},onIdle:()=>{if(r===0&&s.length===0)return Promise.resolve();if(!a){let e=Promise.withResolvers();a=e.promise,o=e.resolve}return a},onSettled:e=>(c.add(e),()=>{c.delete(e)}),get pending(){return s.length},get size(){return r+s.length}}}async function P(e,t){return t?t.aborted?Promise.reject(N(t)):new Promise((n,r)=>{let i=setTimeout(()=>{t.removeEventListener(`abort`,a),n()},e),a=()=>{clearTimeout(i),t.removeEventListener(`abort`,a),r(N(t))};t.addEventListener(`abort`,a)}):new Promise(t=>setTimeout(t,e))}function Ce(e,t){let n=[e===void 0?void 0:AbortSignal.timeout(e),t].filter(e=>e!=null);if(n.length!==0)return n.length===1?n[0]:AbortSignal.any(n)}async function we(e,{delay:n=250,onError:r,shouldRetry:i,signal:a,timeout:o,times:s=3}={}){if(!Number.isInteger(s)||s<1)throw new t(`retry: times must be a positive integer, got ${s}`);for(let t=1;t<=s;t++){if(a?.aborted)throw N(a);let c=Ce(o,a);try{return await e(c)}catch(e){if(t===s||i&&!i(e,t-1))throw r?.(e),e;let o=typeof n==`function`?n(t-1):n;o>0&&await P(o,a)}}}async function Te(e,{interval:t=100,signal:n,timeout:r=5e3}={}){let i=AbortSignal.timeout(r),a=n?AbortSignal.any([n,i]):i;for(a.throwIfAborted();;){if(a.throwIfAborted(),await e(a))return;await P(t,a)}}var Ee=class extends Map{maxSize;constructor(e){super(),this.maxSize=e}set(e,t){return this.has(e)&&this.delete(e),super.set(e,t),this.size>this.maxSize&&this.evictOldest(),this}evictOldest(e=()=>!0){for(let[t,n]of this)if(e(t,n))return this.delete(t),!0;return!1}},De=`\0undefined\0`,Oe=`\0NaN\0`,ke=`\0+Infinity\0`,Ae=`\0-Infinity\0`,je=`\0function\0`,Me=0,F=new WeakMap;function Ne(e){let t=F.get(e);return t===void 0&&(t=Me++,F.set(e,t)),t}var Pe=e=>{try{return JSON.stringify(e,(e,t)=>t===void 0?De:typeof t==`number`&&Number.isNaN(t)?Oe:t===1/0?ke:t===-1/0?Ae:typeof t==`function`?`${je}${Ne(t)}`:t)}catch(e){throw new n(`[arsenal/memo] Failed to serialize memo arguments. Provide options.key for non-serializable arguments.${e instanceof Error&&e.message?` Reason: ${e.message}`:``}`,{cause:e})}};function Fe(e,{key:n,maxSize:r=1/0}={}){if(r!==1/0&&(!Number.isInteger(r)||r<1))throw new t(`memo: maxSize must be a positive integer or Infinity, got ${r}`);let i=new Ee(r),a=(...e)=>n?n(...e):Pe(e),o=Object.assign((...t)=>{let n=a(...t);if(i.has(n)){let e=i.get(n);return i.set(n,e),e}let r=e(...t);return i.set(n,r),r},{clear:()=>i.clear(),invalidate:(...e)=>{i.delete(a(...e))}});return Object.defineProperty(o,"size",{get:()=>i.size}),o}function I(e){return typeof e==`object`&&!!e&&typeof e.then==`function`}function Ie(e={}){let n=e.maxSize??1/0;if(n!==1/0&&(!Number.isInteger(n)||n<1))throw new t(`stash: maxSize must be a positive integer or Infinity, got ${n}`);let r=new Map,i=new Map,a=new Map,o=e.hash??(e=>String(e)),s=e.onEvict,c=e.ttlMs,l=e.persistence,u=0,d=new Set;function f(){if(r.size>n){let[e]=r.keys();e!==void 0&&m(e)}}function p(e){let t=i.get(e);t!==void 0&&(clearTimeout(t),i.delete(e))}function m(e){let t=r.get(e);return p(e),t&&(s?.(t.key,t.value),r.delete(e)),a.has(e)&&d.add(e),t!==void 0}function h(e,n){if(p(e),n===1/0)return;if(!Number.isFinite(n))throw new t(`stash: ttlMs must be a finite number or Infinity`);if(n<=0){m(e);return}if(!r.has(e))return;let a=setTimeout(()=>{i.delete(e),m(e)},n);i.set(e,a)}function g(e){return l&&typeof e==`string`?l.deserialize(e):e}function _(e){let t=r.get(o(e));return t?g(t.value):void 0}function v(e,t,n){let i=o(e),a=l?l.serialize(t):t;p(i),r.set(i,{key:e,value:a}),f();let s=n?.ttlMs??c;s!==void 0&&h(i,s)}function y(e,t,n){let i=o(e);if(r.has(i)&&!n?.forceRefresh)return _(e);let s=a.get(i);if(s&&!n?.forceRefresh)return s;let c=t();if(I(c)){let t=u,r=c.then(o=>(a.get(i)===r&&a.delete(i),u===t&&!d.has(i)&&v(e,o,n),d.delete(i),o)).catch(e=>{throw a.get(i)===r&&a.delete(i),d.delete(i),e});return a.set(i,r),r}return v(e,c,n),c}function b(e){return m(o(e))}function x(){u++;for(let e of i.values())clearTimeout(e);if(s)for(let e of r.values())s(e.key,e.value);r.clear(),i.clear(),a.clear(),d.clear()}function*S(){for(let e of r.values())yield[e.key,g(e.value)]}return{clear:x,delete:b,entries:S,get:_,getOrSet:y,set:v,get size(){return r.size}}}function Le(e,t,n){if(!e)throw new((n?.type)??Error)(t??`Assertion failed`)}function Re(e){return()=>e}var ze=!globalThis.__ARSENAL_PROD__;function Be(e){ze&&console.warn(`[@vielzeug/arsenal] ${e}`)}function Ve(e,t=300,n={leading:!1,trailing:!0}){let r=n.leading??!1,i=n.trailing??!0;!r&&!i&&Be("debounce: both `leading` and `trailing` are false — the wrapped function will never be invoked.");let a,o,s,c=!1,l=()=>{a!==void 0&&(clearTimeout(a),a=void 0)},u=()=>{if(l(),c=!1,!o)return;let t=o;return o=void 0,s=e(...t),s};return Object.assign((...n)=>(o=n,r&&!c&&(c=!0,s=e(...n),o=void 0,!i)?(a=setTimeout(()=>{a=void 0,c=!1},t),s):r&&!i&&c?s:(l(),a=setTimeout(u,t),s)),{cancel:()=>{l(),o=void 0,c=!1},flush:()=>u(),pending:()=>a!==void 0})}function He(e){return e}var Ue=e=>{let t,n=!1,r=((...r)=>(n||=(t=e(...r),!0),t));return r.reset=()=>{t=void 0,n=!1},r};function We(...e){if(e.length===0)return e=>e;let[t,...n]=e;return(...e)=>n.reduce((e,t)=>t(e),t(...e))}function Ge(e,t){let n=[],r=e.length;if(t?.reverse)for(let t=r-1;t>=0;t--)try{e[t]()}catch(e){n.push(e)}else for(let t of e)try{t()}catch(e){n.push(e)}if(n.length>0)throw AggregateError(n,`One or more callbacks failed`)}function Ke(e,t){return t(e),e}function qe(e,t=700,n={leading:!0,trailing:!1}){let r=n.leading??!0,i=n.trailing??!1,a,o=-1/0,s,c,l=()=>{a!==void 0&&(clearTimeout(a),a=void 0)},u=e=>{a=setTimeout(p,e)},d=t=>{if(o=t,l(),!s)return;let n=s;return s=void 0,c=e(...n),c},f=e=>t-(e-o),p=()=>{let e=Date.now();s&&f(e)<=0?d(e):s?u(f(e)):l()};return Object.assign((...e)=>{let t=Date.now();o===-1/0&&!r&&(o=t),s=e;let n=f(t);return n<=0?d(t):(i&&!a&&u(n),c)},{cancel:()=>{l(),s=void 0,o=-1/0},flush:()=>{if(s)return d(Date.now())},pending:()=>s!==void 0||a!==void 0})}function Je(...e){return t=>e.every(e=>e(t))}function Ye(...e){return t=>e.some(e=>e(t))}function Xe(...e){return t=>e.every(e=>!e(t))}function Ze(e){return t=>!e(t)}function Qe(e){return e instanceof Error&&e.name===`AbortError`}function $e(e,t){return Array.isArray(e)?t?e.every(t):!0:!1}function et(e){return typeof e==`boolean`}function tt(e){return e instanceof Date&&!Number.isNaN(e.getTime())}function nt(e){return e!==void 0}function L(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function R(e){return C(e)||e===``?!0:Array.isArray(e)?e.length===0:e instanceof Map||e instanceof Set?e.size===0:L(e)?Object.keys(e).length===0:!1}function rt(e){return e instanceof Error}function it(e){return typeof e==`function`}function z(e,t){if(e===t)return!0;if(e==null||t==null)return!1;let n=Array.isArray(e),r=Array.isArray(t);if(n!==r)return!1;if(n&&r){let n=e,r=t;return r.length>n.length?!1:r.every((e,t)=>z(n[t],e))}if(typeof t==`object`&&typeof e==`object`){if(t instanceof Date||e instanceof Date)return t instanceof Date&&e instanceof Date&&t.getTime()===e.getTime();if(t instanceof RegExp||e instanceof RegExp)return t instanceof RegExp&&e instanceof RegExp&&t.source===e.source&&t.flags===e.flags;if(t instanceof Map||t instanceof Set||e instanceof Map||e instanceof Set)return!1;for(let n of Object.keys(t))if(!z(e?.[n],t[n]))return!1;return!0}return e===t}function at(e){let t=typeof e;return t===`string`||t===`boolean`||t===`number`&&!Number.isNaN(e)}function ot(e){return e instanceof RegExp}function st(e,t){if(Object.is(e,t))return!0;if(e===null||t===null||typeof e!=`object`||typeof t!=`object`)return!1;let n=Array.isArray(e),r=Array.isArray(t);if(n!==r)return!1;if(n&&r){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!Object.is(e[n],t[n]))return!1;return!0}let i=Object.keys(e),a=t,o=e;if(i.length!==Object.keys(a).length)return!1;for(let e of i)if(!Object.hasOwn(a,e)||!Object.is(o[e],a[e]))return!1;return!0}function ct(e){return typeof e==`bigint`?e<0n?-e:e:Math.abs(e)}function lt(e,n){if(typeof n==`number`&&(!Number.isInteger(n)||n<1))throw new t(`Parts must be a positive integer, got ${n}`);let r=Array.isArray(n)?n:Array(n).fill(1);if(r.length===0)throw new t(`Ratios array cannot be empty`);if(r.some(e=>e<0))throw new t(`Ratios must be non-negative`);let i=r.reduce((e,t)=>e+t,0);if(i===0)throw new t(`Total ratio cannot be zero`);if(typeof e==`bigint`){let t=BigInt(i),n=Array.from({length:r.length-1},(n,i)=>e*BigInt(r[i])/t);return n.push(e-n.reduce((e,t)=>e+t,0n)),n}let a=Array.from({length:r.length-1},(t,n)=>Math.floor(e*r[n]/i));return a.push(e-a.reduce((e,t)=>e+t,0)),a}function B(e,n){return e.length===0?0:e.reduce((e,r)=>{let i=n?n(r):r;if(typeof i!=`number`||Number.isNaN(i))throw new t(`sum: encountered a non-numeric value; provide a callback to map non-number items`);return e+i},0)}function V(e,t){if(e.length!==0)try{let n=B(e,t)/e.length;return Number.isNaN(n)?void 0:n}catch{return}}function H(e,t,n){return t!=null&&e<t?t:n!=null&&e>n?n:e}function U(e,t){let n=Math.abs(e),r=Math.abs(t);for(;r!==0;){let e=r;r=n%r,n=e}return n}function ut(e,t){return e===0||t===0?0:Math.abs(e*t)/U(e,t)}function dt(e,t,n){return e+(t-e)*n}function ft(e,t,n=5){if(n<=0)return[];if(n===1)return[e];let r=(t-e)/(n-1);return Array.from({length:n},(t,n)=>e+n*r)}function pt(e,t){if(e.length===0)return;let n=t??(e=>e),r=e[0];for(let t=1;t<e.length;t++)o(n(e[t]),n(r))>0&&(r=e[t]);return r}function mt(e,t){if(e.length===0)return;let n=t?e.map(t):[...e];n.sort((e,t)=>e-t);let r=Math.floor(n.length/2);return n.length%2==0?(n[r-1]+n[r])/2:n[r]}function ht(e,t){if(e.length===0)return;let n=t??(e=>e),r=e[0];for(let t=1;t<e.length;t++)o(n(e[t]),n(r))<0&&(r=e[t]);return r}function gt(e,n){if(n===0)throw new t(`mod: divisor cannot be 0`);return(e%n+n)%n}function _t(e,t,n){return t===n?0:H((e-t)/(n-t),0,1)}function vt(e,t){return t===0?0:e/t*100}function yt(e,n,r){let[i,a,o]=n===void 0?[0,e,1]:r===void 0?[e,n,1]:[e,n,r];if(!Number.isFinite(i)||!Number.isFinite(a)||!Number.isFinite(o))throw new t(`range: start, stop, and step must be finite numbers`);if(o===0)throw new t(`range: step cannot be 0`);if(i===a)return[];let s=(a-i)/o,c=Math.max(0,Number.isInteger(s)?s:Math.ceil(s+2**-52));if(c>1e7)throw new t(`range: exceeds maximum allowed size of 10,000,000`);return Array.from({length:c},(e,t)=>i+t*o)}function bt(e,t=0,n=Math.round){if(t===0)return n(e);let r=10**Math.max(-323,Math.min(t,292));return n(e*r)/r}function W(e,t){if(e.length===0)return 0;let n=t?e.map(t):e,r=V(n)??0;return V(n.map(e=>(e-r)**2))??0}function xt(e,t){return Math.sqrt(W(e,t))}function St(e,...t){let n={...e};for(let e of t)if(L(e))for(let t of Object.keys(e))f(t)||n[t]===void 0&&(n[t]=e[t]);return n}function Ct(e={},t={},n=c){let r=[],i=[],a={},o=new Set(Object.keys(e)),s=new Set(Object.keys(t));for(let i of s)o.has(i)?!f(i)&&!n(e[i],t[i])&&(a[i]={after:t[i],before:e[i]}):r.push(i);for(let e of o)s.has(e)||i.push(e);return{added:r,changed:a,removed:i}}function wt(e,t,n){let r=n?.compareFn??((e,t)=>c(e,t));return{added:t.filter(t=>!e.some(e=>r(e,t))),removed:e.filter(e=>!t.some(t=>r(e,t)))}}function Tt(e,t){let n={};for(let r of Object.keys(e))f(r)||t(e[r],r,e)&&(n[r]=e[r]);return n}var Et=10;function G(e,t,n){let r={};for(let[i,a]of Object.entries(e)){if(d.has(i))continue;let e=t?`${t}.${i}`:i;L(a)&&n<Et?Object.assign(r,G(a,e,n+1)):r[e]=a}return r}function Dt(e){return G(e,``,0)}function Ot(e){let t={};for(let[n,r]of Object.entries(e)){let e=n.split(`.`);if(e.some(e=>d.has(e)))continue;let i=t;for(let t=0;t<e.length-1;t++)L(i[e[t]])||(i[e[t]]={}),i=i[e[t]];i[e[e.length-1]]=r}return t}function kt(e,n,r={}){let{bracketNotation:i=!0,fallback:a,strict:o=!1}=r;if(/[[\]]/.test(n)){if(!i)throw new t(`getPath: bracket notation is not supported. Use dot notation: '${n.replace(/\[(\d+)\]/g,`.$1`).replace(/^\.|\.$/g,``)}' or pass { bracketNotation: true }.`);n=n.replace(/\[(\d+)\]/g,`.$1`).replace(/^\.|\.$/g,``)}let s=n.split(`.`).filter(Boolean),c=e;for(let e of s){if(d.has(e))return a;if(typeof c!=`object`||!c){if(o)throw new t(`Cannot read property '${e}' of ${c}`);return a}if(c=c[e],c===void 0){if(o)throw new t(`Property '${e}' does not exist`);return a}}return c}function At(e){let t={};for(let[n,r]of Object.entries(e))f(r)||(t[r]=n);return t}function jt(e,t){let n={};for(let r of Object.keys(e)){if(f(r))continue;let i=t(r,e[r],e);f(i)||(n[i]=e[r])}return n}function Mt(e,t){let n={};for(let r of Object.keys(e))f(r)||(n[r]=t(e[r],r,e));return n}function K(e,t,n){if(!L(t))return t;let r={...e};for(let e of Object.keys(t)){if(f(e))continue;let i=t[e],a=r[e];r[e]=Array.isArray(i)&&Array.isArray(a)?n.arrayStrategy===`concat`?[...a,...i]:i:L(i)&&L(a)?K(a,i,n):i}return r}function Nt(...e){let t=e[e.length-1],n=e.length>0&&typeof t==`object`&&!!t&&!Array.isArray(t)&&`arrayStrategy`in t&&Object.keys(t).length===1&&(t.arrayStrategy===`concat`||t.arrayStrategy===`replace`),r=n?t:{},i=n?e.slice(0,-1):e;return i.length===0?{}:i.reduce((e,t)=>K(e,t,r),{})}function Pt(...e){if(e.length===0)return{};let t={};for(let n of e)for(let e of Object.keys(n))f(e)||(t[e]=n[e]);return t}function Ft(e,t){let n=new Set(t),r={};for(let t of Object.keys(e))f(t)||n.has(t)||(r[t]=e[t]);return r}function It(e,t={}){let{fallback:n,reviver:r,validator:i}=t;if(C(e))return n;try{let t=JSON.parse(e,r);return t===void 0||i&&!i(t)?n:t}catch{return n}}function Lt(e,t){let n={};for(let r of t)f(r)||Object.hasOwn(e,r)&&(n[r]=e[r]);return n}function q(e){if(!C(e)){if(r(e)){let t=e.trim();return t===``?void 0:t}if(Array.isArray(e)){let t=y(e,e=>{let t=q(e);return R(t)?void 0:t});return t.length===0?void 0:t}if(L(e)){let t={};for(let[n,r]of Object.entries(e)){if(f(n))continue;let e=q(r);R(e)||(t[n]=e)}return Object.keys(t).length===0?void 0:t}return e}}function J(e,t,r){if(e===void 0)return`undefined`;if(e===null)return`null`;if(typeof e==`bigint`)return`${e}n`;if(typeof e!=`object`)return JSON.stringify(e);if(r.has(e))return`[Circular]`;if(r.add(e),e instanceof Date)return`[Date:${Number.isNaN(e.getTime())?`Invalid`:e.toISOString()}]`;if(e instanceof RegExp)return`[RegExp:${e.source}/${e.flags}]`;if(e instanceof Set)return`[Set:${[...e].map(e=>J(e,t,r)).sort().join(`,`)}]`;if(e instanceof Map)return`[Map:${[...e.entries()].map(([e,n])=>[J(e,t,r),J(n,t,r)]).sort(([e,t],[n,r])=>e===n?t.localeCompare(r):e.localeCompare(n)).map(([e,t])=>`${e}=>${t}`).join(`,`)}]`;if(Array.isArray(e))return`[${e.map(e=>J(e,t,r)).join(`,`)}]`;let i=Object.getPrototypeOf(e);if(i!==Object.prototype&&i!==null){if(t?.onClassInstance===`throw`)throw new n(`hash: unsupported type ${e.constructor?.name??`unknown`}`);return String(e)}let a=e;return`{${Object.keys(a).filter(e=>a[e]!==void 0).sort().map(e=>`${JSON.stringify(e)}:${J(a[e],t,r)}`).join(`,`)}}`}function Rt(e,t){return J(e,t,new Set)}function Y(e){let t=crypto.getRandomValues(new Uint32Array(1))[0]/4294967296;return Math.floor(t*e)}function X(e,n){if(e>n)throw new t(`random: minimum value must not be greater than maximum value`);return Y(n-e+1)+e}function zt(e){if(e.length!==0)return e[X(0,e.length-1)]}function Bt(e,t){let n=Math.max(0,Math.min(e.length,Math.floor(t)));if(n===0)return[];if(n===e.length)return[...e];let r=[...e];for(let e=r.length-1;e>0;e--){let t=Y(e+1),n=r[e];r[e]=r[t],r[t]=n}return r.slice(0,n)}function Vt(e){let t=[...e];for(let e=t.length-1;e>0;e--){let n=Y(e+1);[t[e],t[n]]=[t[n],t[e]]}return t}function Ht(){return crypto.randomUUID()}var Ut=/(\p{Ll})(\p{Lu}|\p{N})|(\p{Lu}|\p{N})(\p{Lu}\p{Ll})|(\p{N})(\p{L})/gu;function Wt(e){return e.replace(/[.*+?^${}()|[\]\\/-]/g,`\\$&`)}function Z(e,t=` `){let n=Wt(t);return e.trim().replace(Ut,`$1$3$5${t}$2$4$6`).replace(/[^\p{L}\p{N}]+/gu,t).replace(RegExp(`^(?:${n})+|(?:${n})+$`,`g`),``)}function Gt(e){return Z(e,` `).replace(/[^\p{L}\p{N}]+(.)/gu,(e,t)=>t.toUpperCase()).replace(/^./,e=>e.toLowerCase())}function Kt(e,t){return e.endsWith(t)}var qt={"'":`'`,'"':`"`,"&":`&`,"<":`<`,">":`>`};function Q(e){return e.replace(/[&<>"']/g,e=>qt[e])}function Jt(e){return Z(e,`-`).toLowerCase()}function Yt(e,t,n=` `){if(t<=e.length)return e;let r=t-e.length,i=Math.floor(r/2);return e.padStart(e.length+i,n).padEnd(t,n)}function Xt(e){return Z(e,` `).replace(/(?:^|\s)(\p{L}|\p{N})/gu,(e,t)=>t.toUpperCase()).replace(/\s+/g,``)}function Zt(e){return Z(e,`_`).toLowerCase()}function Qt(e,t){return e.startsWith(t)}function $(e){let t=Z(e,` `);return t?t.split(` `).filter(Boolean):[]}function $t(e){return $(e).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(` `)}function en(e,n=25,{completeWords:r=!1,ellipsis:i=`…`}={}){if(typeof e!=`string`)throw new t(`truncate: str must be a string`);if(typeof n!=`number`||!Number.isFinite(n)||n<0)throw new t(`truncate: limit must be a non-negative finite number`);if(e.length<=n)return e;let a=n;if(r){let t=e.substring(0,n).lastIndexOf(` `);t>0&&(a=t)}return`${e.substring(0,a).trim()}${i}`}var tn={"'":`'`,"&":`&`,">":`>`,"<":`<`,""":`"`};function nn(e){return e.replace(/&(amp|lt|gt|quot|#39);/g,e=>tn[e]??e)}exports.ArsenalError=e,exports.ArsenalSerializationError=n,exports.ArsenalValidationError=t,exports.abortError=N,exports.abs=ct,exports.allOf=Je,exports.allocate=lt,exports.anyOf=Ye,exports.assert=Le,exports.attempt=ye,exports.average=V,exports.backoff=be,exports.camelCase=Gt,exports.chunk=i,exports.clamp=H,exports.compact=a,exports.compare=o,exports.compareBy=s,exports.constant=Re,exports.contains=u,exports.countBy=p,exports.debounce=Ve,exports.deepMerge=Nt,exports.defaults=St,exports.diff=Ct,exports.diffArrays=wt,exports.difference=g,exports.draw=zt,exports.drawMany=Bt,exports.drop=_,exports.dropLast=v,exports.endsWith=Kt,exports.escape=Q,exports.filterMap=y,exports.filterValues=Tt,exports.first=b,exports.flatten=x,exports.flattenPaths=Dt,exports.fuzzy=ce,exports.fuzzyFilter=j,exports.fuzzyScore=M,exports.gcd=U,exports.getPath=kt,exports.groupBy=S,exports.hash=Rt,exports.identity=He,exports.indexBy=ee,exports.intersection=te,exports.invert=At,exports.isAbortError=Qe,exports.isArray=$e,exports.isBoolean=et,exports.isDate=tt,exports.isDefined=nt,exports.isEmpty=R,exports.isEqual=c,exports.isError=rt,exports.isFail=ve,exports.isFunction=it,exports.isMatch=z,exports.isNil=C,exports.isNumber=w,exports.isOk=_e,exports.isPlainObject=L,exports.isPrimitive=at,exports.isPromise=I,exports.isRegex=ot,exports.isString=r,exports.kebabCase=Jt,exports.last=ne,exports.lcm=ut,exports.lerp=dt,exports.linspace=ft,exports.mapKeys=jt,exports.mapValues=Mt,exports.max=pt,exports.median=mt,exports.memo=Fe,exports.min=ht,exports.mod=gt,exports.noneOf=Xe,exports.normalize=_t,exports.not=Ze,exports.omit=Ft,exports.once=Ue,exports.pad=Yt,exports.parallel=xe,exports.parseJSON=It,exports.partition=re,exports.pascalCase=Xt,exports.percent=vt,exports.pick=Lt,exports.pipe=We,exports.prune=q,exports.queue=Se,exports.random=X,exports.range=yt,exports.replace=ie,exports.retry=we,exports.rotate=ae,exports.round=bt,exports.runAll=Ge,exports.shallowEqual=st,exports.shallowMerge=Pt,exports.shuffle=Vt,exports.similarity=E,exports.sleep=P,exports.snakeCase=Zt,exports.sort=le,exports.standardDeviation=xt,exports.startsWith=Qt,exports.stash=Ie,exports.sum=B,exports.take=ue,exports.takeLast=de,exports.tap=Ke,exports.throttle=qe,exports.titleCase=$t,exports.toggle=fe,exports.truncate=en,exports.unescape=nn,exports.unflattenPaths=Ot,exports.union=pe,exports.uniq=me,exports.unzip=he,exports.uuid=Ht,exports.variance=W,exports.waitFor=Te,exports.words=$,exports.zip=ge;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=class e extends Error{constructor(e,t){super(e,t),this.name=new.target.name,Object.setPrototypeOf(this,new.target.prototype)}static is(t){return t instanceof e}},t=class extends e{};function n(e,t=2){if(!Array.isArray(e)&&typeof e!=`string`)throw TypeError(`chunk: argument must be an array or string`);if(!Number.isInteger(t)||t<1)throw RangeError(`chunk: size must be a positive integer`);return Array.from({length:Math.ceil(e.length/t)},(n,r)=>e.slice(r*t,r*t+t))}function r(e,t){let n=[];for(let r=0;r<e.length;r++){let i=t(e[r],r,e);i!==void 0&&n.push(i)}return n}var i=new Set([`__proto__`,`constructor`,`prototype`]);function a(e){return typeof e==`string`&&i.has(e)}function o(e,t){let n={};for(let r of e){let e=t(r),i=e==null?`_`:String(e);a(i)||(n[i]||(n[i]=[]),n[i].push(r))}return n}function s(e,t){let n={};for(let r of e){let e=String(t(r));a(e)||(n[e]=r)}return n}function c(e,t){let n=[],r=[];for(let i=0;i<e.length;i++)t(e[i],i,e)?n.push(e[i]):r.push(e[i]);return[n,r]}var l=(e,t)=>{if(e===t)return 0;if(e===void 0)return 1;if(t===void 0)return-1;if(e===null)return t===null?0:-1;if(t===null)return 1;if(typeof e==`string`&&typeof t==`string`)return e.localeCompare(t);if(typeof e==`number`&&typeof t==`number`)return e===t?0:e>t?1:-1;if(e instanceof Date&&t instanceof Date){let n=e.getTime(),r=t.getTime();return n===r?0:n>r?1:-1}throw TypeError(`compare: unsupported types "${typeof e}" and "${typeof t}". Supported: number, string, Date, null, undefined.`)},u=e=>{let t=Object.entries(e);return(e,n)=>{for(let[r,i]of t){let t=e[r],a=n[r],o=i===`desc`?-1:1,s=l(t,a);if(s!==0)return s*o}return 0}};function d(e,t,n=`asc`){if(!Array.isArray(e))throw TypeError(`sort: first argument must be an array`);if(typeof t==`function`){let r=n===`desc`?-1:1;return[...e].sort((e,n)=>l(t(e),t(n))*r)}return[...e].sort(u(t))}function f(e,t){let n=new Set,r=[];for(let i of e){let e=t(i);n.has(e)||(n.add(e),r.push(i))}return r}function p(e,t){return e.length<=1?[...e]:t?f(e,t):[...new Set(e)]}function m(e){return e.ok===!0}function h(e){return e.ok===!1}async function g(e){try{return{ok:!0,value:await e()}}catch(e){return{error:e,ok:!1}}}function _(e){return e?.reason??new DOMException(`Aborted`,`AbortError`)}async function v(e,t,n={}){let{abortOnError:r=!1,limit:i=1/0,signal:a}=n;if(i<1)throw RangeError(`parallel: limit must be at least 1, got ${i}`);if(a?.aborted)throw _(a);if(e.length===0)return[];let o=Array(e.length),s=0,c=r?new AbortController:void 0,l=async()=>{for(;;){if(a?.aborted)throw _(a);if(c?.signal.aborted||s>=e.length)return;let n=s++;try{o[n]=await t(e[n],n,e)}catch(e){throw c?.abort(),e}}},u=Math.min(i,e.length),d=Array.from({length:u},()=>l());return await Promise.all(d),o}async function y(e,t){return t?t.aborted?Promise.reject(_(t)):new Promise((n,r)=>{let i=setTimeout(()=>{t.removeEventListener(`abort`,a),n()},e),a=()=>{clearTimeout(i),t.removeEventListener(`abort`,a),r(_(t))};t.addEventListener(`abort`,a)}):new Promise(t=>setTimeout(t,e))}function b(e,t){let n=[e===void 0?void 0:AbortSignal.timeout(e),t].filter(e=>e!=null);if(n.length!==0)return n.length===1?n[0]:AbortSignal.any(n)}async function x(e,{delay:t=250,onError:n,shouldRetry:r,signal:i,timeout:a,times:o=3}={}){if(!Number.isInteger(o)||o<1)throw RangeError(`retry: times must be a positive integer, got ${o}`);for(let s=1;s<=o;s++){if(i?.aborted)throw _(i);let c=b(a,i);try{return await e(c)}catch(e){if(s===o||r&&!r(e,s-1))throw n?.(e),e;let a=typeof t==`function`?t(s-1):t;a>0&&await y(a,i)}}}function S(e,t=300,n={leading:!1,trailing:!0}){let r=n.leading??!1,i=n.trailing??!0,a,o,s,c=!1,l=()=>{a!==void 0&&(clearTimeout(a),a=void 0)},u=()=>{if(l(),c=!1,!o)return;let t=o;return o=void 0,s=e(...t),s};return Object.assign((...n)=>(o=n,r&&!c&&(c=!0,s=e(...n),o=void 0,!i)?(a=setTimeout(()=>{a=void 0,c=!1},t),s):r&&!i&&c?s:(l(),a=setTimeout(u,t),s)),{cancel:()=>{l(),o=void 0,c=!1},flush:()=>u(),pending:()=>a!==void 0})}var C=e=>{let t,n=!1,r=((...r)=>(n||=(t=e(...r),!0),t));return r.reset=()=>{t=void 0,n=!1},r};function w(...e){if(e.length===0)return e=>e;let[t,...n]=e;return(...e)=>n.reduce((e,t)=>Reflect.apply(t,void 0,[e]),Reflect.apply(t,void 0,e))}function T(e,t=700,n={leading:!0,trailing:!1}){let r=n.leading??!0,i=n.trailing??!1,a,o=-1/0,s,c,l=()=>{a!==void 0&&(clearTimeout(a),a=void 0)},u=e=>{a=setTimeout(p,e)},d=t=>{if(o=t,l(),!s)return;let n=s;return s=void 0,c=e(...n),c},f=e=>t-(e-o),p=()=>{let e=Date.now();s&&f(e)<=0?d(e):s?u(f(e)):l()};return Object.assign((...e)=>{let t=Date.now();o===-1/0&&!r&&(o=t),s=e;let n=f(t);return n<=0?d(t):(i&&!a&&u(n),c)},{cancel:()=>{l(),s=void 0,o=-1/0},flush:()=>{if(s)return d(Date.now())},pending:()=>s!==void 0||a!==void 0})}function E(...e){return t=>e.every(e=>e(t))}function D(...e){return t=>e.some(e=>e(t))}function O(...e){return t=>e.every(e=>!e(t))}function k(e){return t=>!e(t)}function A(e){return e!==void 0}function j(e,t){return M(e,t,new WeakMap)}function M(e,t,n){if(e===t)return!0;if(e==null||t==null||typeof e!=typeof t||typeof e!=`object`||typeof t!=`object`)return!1;if(n.has(e))return n.get(e)===t;if(n.set(e,t),Array.isArray(e)||Array.isArray(t))return!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length?!1:e.every((e,r)=>M(e,t[r],n));if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[r,i]of e)if(!t.has(r)||!M(i,t.get(r),n))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;let r=[...t];for(let i of e)if(typeof i==`string`||typeof i==`number`||typeof i==`boolean`||i==null){if(!t.has(i))return!1}else if(!r.some(e=>M(i,e,n)))return!1;return!0}if(e instanceof RegExp||t instanceof RegExp)return e instanceof RegExp&&t instanceof RegExp&&e.source===t.source&&e.flags===t.flags;if(e instanceof Map||t instanceof Map||e instanceof Set||t instanceof Set)return!1;let r=Object.keys(e),i=Object.keys(t);if(r.length!==i.length)return!1;for(let i of r)if(!Object.hasOwn(t,i)||!M(e[i],t[i],n))return!1;return!0}function N(e){return e==null}function P(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function F(e,t,n){return t!=null&&e<t?t:n!=null&&e>n?n:e}function I(e,t,n){let[r,i,a]=t===void 0?[0,e,1]:n===void 0?[e,t,1]:[e,t,n];if(!Number.isFinite(r)||!Number.isFinite(i)||!Number.isFinite(a))throw RangeError(`range: start, stop, and step must be finite numbers`);if(a===0)throw RangeError(`range: step cannot be 0`);if(r===i)return[];let o=(i-r)/a,s=Math.max(0,Number.isInteger(o)?o:Math.ceil(o+2**-52));if(s>1e7)throw RangeError(`range: exceeds maximum allowed size of 10,000,000`);return Array.from({length:s},(e,t)=>r+t*a)}function L(e){return e.replace(/\[(\d+)\]/g,`.$1`).replace(/^\.|\.$/g,``).split(`.`).filter(Boolean)}function R(e,t){let n=e;for(let e of L(t))if(i.has(e)||typeof n!=`object`||!n||(n=n[e],n===void 0))return;return n}function z(e,t){return R(e,t)}function B(e,t,n){let r=R(e,t);return r===void 0?n:r}function V(e,t){let n=R(e,t);if(n===void 0)throw TypeError(`Path does not exist: '${t}'`);return n}function H(e,n,r){if(e===void 0)return`undefined`;if(e===null)return`null`;if(typeof e==`bigint`)return`${e}n`;if(typeof e!=`object`)return JSON.stringify(e);if(r.has(e))return`[Circular]`;if(r.add(e),e instanceof Date)return`[Date:${Number.isNaN(e.getTime())?`Invalid`:e.toISOString()}]`;if(e instanceof RegExp)return`[RegExp:${e.source}/${e.flags}]`;if(e instanceof Set)return`[Set:${[...e].map(e=>H(e,n,r)).sort().join(`,`)}]`;if(e instanceof Map)return`[Map:${[...e.entries()].map(([e,t])=>[H(e,n,r),H(t,n,r)]).sort(([e,t],[n,r])=>e===n?t.localeCompare(r):e.localeCompare(n)).map(([e,t])=>`${e}=>${t}`).join(`,`)}]`;if(Array.isArray(e))return`[${e.map(e=>H(e,n,r)).join(`,`)}]`;let i=Object.getPrototypeOf(e);if(i!==Object.prototype&&i!==null){if(n?.onClassInstance===`throw`)throw new t(`hash: unsupported type ${e.constructor?.name??`unknown`}`);return String(e)}let a=e;return`{${Object.keys(a).filter(e=>a[e]!==void 0).sort().map(e=>`${JSON.stringify(e)}:${H(a[e],n,r)}`).join(`,`)}}`}function U(e,t){return H(e,t,new Set)}function W(e,t){let n=new Set(t),r={};for(let t of Object.keys(e))a(t)||n.has(t)||(r[t]=e[t]);return r}function G(e,t){let n={};for(let r of t)a(r)||Object.hasOwn(e,r)&&(n[r]=e[r]);return n}function K(){return crypto.randomUUID()}var q=/(\p{Ll})(\p{Lu}|\p{N})|(\p{Lu}|\p{N})(\p{Lu}\p{Ll})|(\p{N})(\p{L})/gu;function J(e){return e.replace(/[.*+?^${}()|[\]\\/-]/g,`\\$&`)}function Y(e,t=` `){let n=J(t);return e.trim().replace(q,`$1$3$5${t}$2$4$6`).replace(/[^\p{L}\p{N}]+/gu,t).replace(RegExp(`^(?:${n})+|(?:${n})+$`,`g`),``)}function X(e){return Y(e,` `).replace(/[^\p{L}\p{N}]+(.)/gu,(e,t)=>t.toUpperCase()).replace(/^./,e=>e.toLowerCase())}exports.ArsenalError=e,exports.ArsenalSerializationError=t,exports.allOf=E,exports.anyOf=D,exports.attempt=g,exports.camelCase=X,exports.chunk=n,exports.clamp=F,exports.debounce=S,exports.filterMap=r,exports.getPath=z,exports.getPathOr=B,exports.groupBy=o,exports.hash=U,exports.indexBy=s,exports.isDefined=A,exports.isEqual=j,exports.isFail=h,exports.isNil=N,exports.isOk=m,exports.isPlainObject=P,exports.noneOf=O,exports.not=k,exports.omit=W,exports.once=C,exports.parallel=v,exports.partition=c,exports.pick=G,exports.pipe=w,exports.range=I,exports.requirePath=V,exports.retry=x,exports.sleep=y,exports.sort=d,exports.throttle=T,exports.uniq=p,exports.uuid=K;
|
|
2
2
|
//# sourceMappingURL=arsenal.cjs.map
|