@ts-fns/stdlib 0.1.0 → 0.2.1

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 (135) hide show
  1. package/dist/array/index.cjs +239 -37
  2. package/dist/array/index.cjs.map +1 -1
  3. package/dist/array/index.d.cts +437 -36
  4. package/dist/array/index.d.cts.map +1 -1
  5. package/dist/array/index.d.mts +437 -36
  6. package/dist/array/index.d.mts.map +1 -1
  7. package/dist/array/index.mjs +225 -22
  8. package/dist/array/index.mjs.map +1 -1
  9. package/dist/function/index.cjs +4 -2
  10. package/dist/function/index.d.cts +128 -13
  11. package/dist/function/index.d.cts.map +1 -1
  12. package/dist/function/index.d.mts +128 -13
  13. package/dist/function/index.d.mts.map +1 -1
  14. package/dist/function/index.mjs +3 -3
  15. package/dist/{function-DnI2v0p3.mjs → function-CYHPhQCQ.mjs} +84 -6
  16. package/dist/function-CYHPhQCQ.mjs.map +1 -0
  17. package/dist/{function-CB82a2GS.cjs → function-DYPifnmg.cjs} +95 -5
  18. package/dist/function-DYPifnmg.cjs.map +1 -0
  19. package/dist/{get-yrs1Kqho.cjs → get-1kqkxPFX.cjs} +20 -8
  20. package/dist/get-1kqkxPFX.cjs.map +1 -0
  21. package/dist/{get-CWL_cu6G.mjs → get-Dv6ejLZg.mjs} +21 -3
  22. package/dist/get-Dv6ejLZg.mjs.map +1 -0
  23. package/dist/guard/index.cjs +5 -12
  24. package/dist/guard/index.cjs.map +1 -1
  25. package/dist/guard/index.d.cts +18 -17
  26. package/dist/guard/index.d.cts.map +1 -1
  27. package/dist/guard/index.d.mts +18 -17
  28. package/dist/guard/index.d.mts.map +1 -1
  29. package/dist/guard/index.mjs +4 -12
  30. package/dist/guard/index.mjs.map +1 -1
  31. package/dist/index-MbdqaUt1.d.cts +54 -0
  32. package/dist/index-MbdqaUt1.d.cts.map +1 -0
  33. package/dist/index-k-paNOu4.d.mts +54 -0
  34. package/dist/index-k-paNOu4.d.mts.map +1 -0
  35. package/dist/iterator/index.cjs +72 -26
  36. package/dist/iterator/index.cjs.map +1 -1
  37. package/dist/iterator/index.d.cts +157 -5
  38. package/dist/iterator/index.d.cts.map +1 -1
  39. package/dist/iterator/index.d.mts +157 -5
  40. package/dist/iterator/index.d.mts.map +1 -1
  41. package/dist/iterator/index.mjs +66 -24
  42. package/dist/iterator/index.mjs.map +1 -1
  43. package/dist/lens/index.cjs +3 -3
  44. package/dist/lens/index.cjs.map +1 -1
  45. package/dist/lens/index.mjs +3 -3
  46. package/dist/lens/index.mjs.map +1 -1
  47. package/dist/map/index.cjs +88 -1
  48. package/dist/map/index.cjs.map +1 -1
  49. package/dist/map/index.d.cts +130 -2
  50. package/dist/map/index.d.cts.map +1 -1
  51. package/dist/map/index.d.mts +130 -2
  52. package/dist/map/index.d.mts.map +1 -1
  53. package/dist/map/index.mjs +86 -2
  54. package/dist/map/index.mjs.map +1 -1
  55. package/dist/number/index.cjs +91 -18
  56. package/dist/number/index.cjs.map +1 -1
  57. package/dist/number/index.d.cts +134 -19
  58. package/dist/number/index.d.cts.map +1 -1
  59. package/dist/number/index.d.mts +134 -19
  60. package/dist/number/index.d.mts.map +1 -1
  61. package/dist/number/index.mjs +91 -18
  62. package/dist/number/index.mjs.map +1 -1
  63. package/dist/object/index.cjs +111 -7
  64. package/dist/object/index.cjs.map +1 -1
  65. package/dist/object/index.d.cts +186 -26
  66. package/dist/object/index.d.cts.map +1 -1
  67. package/dist/object/index.d.mts +186 -26
  68. package/dist/object/index.d.mts.map +1 -1
  69. package/dist/object/index.mjs +111 -7
  70. package/dist/object/index.mjs.map +1 -1
  71. package/dist/orNull-CJNrTjhQ.cjs +45 -0
  72. package/dist/orNull-CJNrTjhQ.cjs.map +1 -0
  73. package/dist/orNull-EeXiCxD4.mjs +34 -0
  74. package/dist/orNull-EeXiCxD4.mjs.map +1 -0
  75. package/dist/order/index.cjs +22 -1
  76. package/dist/order/index.cjs.map +1 -1
  77. package/dist/order/index.d.cts +2 -2
  78. package/dist/order/index.d.mts +2 -2
  79. package/dist/order/index.mjs +22 -1
  80. package/dist/order/index.mjs.map +1 -1
  81. package/dist/{order.constants-BWSCg3C7.d.cts → order.constants-DpGY-EDp.d.cts} +4 -1
  82. package/dist/order.constants-DpGY-EDp.d.cts.map +1 -0
  83. package/dist/{order.constants-BWSCg3C7.d.mts → order.constants-DpGY-EDp.d.mts} +4 -1
  84. package/dist/order.constants-DpGY-EDp.d.mts.map +1 -0
  85. package/dist/purry-DXnhXie9.mjs +22 -0
  86. package/dist/purry-DXnhXie9.mjs.map +1 -0
  87. package/dist/purry-Dqp_F64t.cjs +27 -0
  88. package/dist/purry-Dqp_F64t.cjs.map +1 -0
  89. package/dist/set/index.cjs +59 -1
  90. package/dist/set/index.cjs.map +1 -1
  91. package/dist/set/index.d.cts +151 -2
  92. package/dist/set/index.d.cts.map +1 -1
  93. package/dist/set/index.d.mts +151 -2
  94. package/dist/set/index.d.mts.map +1 -1
  95. package/dist/set/index.mjs +59 -2
  96. package/dist/set/index.mjs.map +1 -1
  97. package/dist/string/index.cjs +289 -15
  98. package/dist/string/index.cjs.map +1 -1
  99. package/dist/string/index.d.cts +406 -1
  100. package/dist/string/index.d.cts.map +1 -1
  101. package/dist/string/index.d.mts +406 -1
  102. package/dist/string/index.d.mts.map +1 -1
  103. package/dist/string/index.mjs +271 -4
  104. package/dist/string/index.mjs.map +1 -1
  105. package/dist/tuple/index.cjs +20 -21
  106. package/dist/tuple/index.cjs.map +1 -1
  107. package/dist/tuple/index.d.cts +27 -58
  108. package/dist/tuple/index.d.cts.map +1 -1
  109. package/dist/tuple/index.d.mts +27 -58
  110. package/dist/tuple/index.d.mts.map +1 -1
  111. package/dist/tuple/index.mjs +20 -22
  112. package/dist/tuple/index.mjs.map +1 -1
  113. package/package.json +55 -127
  114. package/dist/function-CB82a2GS.cjs.map +0 -1
  115. package/dist/function-DnI2v0p3.mjs.map +0 -1
  116. package/dist/get-CWL_cu6G.mjs.map +0 -1
  117. package/dist/get-yrs1Kqho.cjs.map +0 -1
  118. package/dist/index-BJlKyBJH.d.cts +0 -18
  119. package/dist/index-BJlKyBJH.d.cts.map +0 -1
  120. package/dist/index-DGrnGMDt.d.mts +0 -18
  121. package/dist/index-DGrnGMDt.d.mts.map +0 -1
  122. package/dist/isNotNil-DrF-ohem.cjs +0 -28
  123. package/dist/isNotNil-DrF-ohem.cjs.map +0 -1
  124. package/dist/isNotNil-R5f1hC53.mjs +0 -23
  125. package/dist/isNotNil-R5f1hC53.mjs.map +0 -1
  126. package/dist/orThrow-V91Jw2lF.mjs +0 -15
  127. package/dist/orThrow-V91Jw2lF.mjs.map +0 -1
  128. package/dist/orThrow-ejzcQYAI.cjs +0 -20
  129. package/dist/orThrow-ejzcQYAI.cjs.map +0 -1
  130. package/dist/order.constants-BWSCg3C7.d.cts.map +0 -1
  131. package/dist/order.constants-BWSCg3C7.d.mts.map +0 -1
  132. package/dist/purry-B2_0DGLV.cjs +0 -28
  133. package/dist/purry-B2_0DGLV.cjs.map +0 -1
  134. package/dist/purry-BOWmqwDB.mjs +0 -23
  135. package/dist/purry-BOWmqwDB.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../src/array/_globalAliases.ts","../../src/array/at.ts","../../src/array/chunk.ts","../../src/array/concat.ts","../../src/array/drop.ts","../../src/array/every.ts","../../src/array/find.ts","../../src/array/findIndex.ts","../../src/array/findLast.ts","../../src/array/findLastIndex.ts","../../src/array/first.ts","../../src/array/flatMap.ts","../../src/array/forEach.ts","../../src/array/init.ts","../../src/array/insert.ts","../../src/array/isEmpty.ts","../../src/array/join.ts","../../src/array/last.ts","../../src/array/length.ts","../../src/array/map.ts","../../src/array/ofLength.ts","../../src/array/partition.ts","../../src/array/pop.ts","../../src/array/prepend.ts","../../src/array/push.ts","../../src/array/reduce.ts","../../src/array/reduce1.ts","../../src/array/reduceRight.ts","../../src/array/reduceRight1.ts","../../src/array/rest.ts","../../src/array/reverse.ts","../../src/array/scan.ts","../../src/array/shift.ts","../../src/array/shuffle.ts","../../src/array/some.ts","../../src/array/sort.ts","../../src/array/sortBy.ts","../../src/array/take.ts","../../src/array/transpose.ts","../../src/array/unique.ts","../../src/array/uniqueBy.ts","../../src/array/uniqueWith.ts","../../src/array/unshift.ts","../../src/array/update.ts","../../src/array/window.ts","../../src/array/zip.ts","../../src/array/zipWith.ts"],"sourcesContent":["export const { from, fromAsync, isArray, of } = Array;\n\nconst arrayConstructor = Array;\n\nexport { arrayConstructor as Array };\n","import { orThrow } from '../function/orThrow';\nimport { purry } from '../function/purry';\n\n/**\n * Internal method that wraps `arr.at()` but throws the same `RangeError` that `arr.with()` does\n * @throws {RangeError}\n */\nfunction atImplementation<T>(arr: readonly T[], index: number): RangeError | T {\n if (arr.length === 0 || index >= arr.length || index < -arr.length) {\n return new RangeError(`Arr.at() :: Invalid index : ${index}`);\n }\n\n return arr.at(index) as T;\n}\n\n/**\n * Get an element from an array by index.\n *\n * @category Array\n * @param arr - The array to get the element from.\n * @param index - The index of the element to get.\n *\n * @example\n * ```ts\n * at([1, 2, 3], 1); // 2\n * ```\n */\nexport function at<T>(index: number): (arr: readonly T[]) => RangeError | T;\nexport function at<T>(arr: readonly T[], index: number): RangeError | T;\nexport function at(...args: readonly unknown[]): unknown {\n return purry(atImplementation, args);\n}\n\nexport function atAssert<T>(index: number): (arr: readonly T[]) => T;\nexport function atAssert<T>(arr: readonly T[], index: number): T;\nexport function atAssert(...args: readonly unknown[]): unknown {\n return purry(orThrow(atImplementation), args);\n}\n\nat.assert = atAssert;\n","import { orThrow } from '../function/orThrow';\nimport { purry } from '../function/purry';\n\nfunction chunkImplementation<T>(arr: readonly T[], size: number): T[][] {\n if (size < 1) {\n throw new RangeError(`Arr.chunk() :: ${size} must be a positive integer`);\n }\n\n if (arr.length === 0) {\n return [];\n }\n\n if (size >= arr.length) {\n // Optimized for when there is only one chunk.\n return [[...arr]];\n }\n\n const chunks = Math.ceil(arr.length / size);\n\n if (size === 1) {\n return arr.map(v => [v]);\n }\n\n const result = Array(chunks)\n .fill(undefined)\n .map((_, index) => {\n const start = index * size;\n return arr.slice(start, start + size);\n });\n\n return result;\n}\n\n/**\n *\n * @throws {RangeError}\n */\nexport function chunk(size: number): <T>(arr: readonly T[]) => T[][];\nexport function chunk<T>(arr: readonly T[], size: number): T[][];\nexport function chunk(...args: unknown[]): unknown {\n return purry(chunkImplementation, args);\n}\n\nfunction chunkAssert<T>(size: number): (arr: readonly T[]) => T[][];\nfunction chunkAssert<T>(arr: readonly T[], size: number): T[][];\nfunction chunkAssert(...args: unknown[]): unknown {\n return purry(orThrow(chunkImplementation), args);\n}\n\nchunk.assert = chunkAssert;\n","import { purry } from '../function/purry';\n\nfunction concatImplementation<T>(arr: readonly T[], other: readonly T[]): T[] {\n return [...arr, ...other];\n}\n\nexport function concat<T>(other: readonly T[]): (arr: readonly T[]) => T;\nexport function concat<T>(arr: readonly T[], other: readonly T[]): T;\nexport function concat(...args: readonly unknown[]): unknown {\n return purry(concatImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction dropImplementation<T>(arr: readonly T[], n: number): T[] {\n return arr.slice(n);\n}\n\nexport function drop<T>(n: number): (arr: readonly T[]) => T[];\nexport function drop<T>(arr: readonly T[], n: number): T[];\nexport function drop(...args: readonly unknown[]): unknown {\n return purry(dropImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction everyImplementation<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): boolean {\n return arr.every(predicate);\n}\n\nexport function every<T, S extends T>(\n predicate: (value: T, index: number, array: readonly T[]) => value is S,\n): (arr: readonly T[]) => arr is S[];\nexport function every<T>(\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): (arr: readonly T[]) => T[];\nexport function every<T, S extends T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => value is S,\n): arr is S[];\nexport function every<T>(arr: readonly T[], predicate: (value: T, index: number, array: readonly T[]) => boolean): T[];\nexport function every(...args: readonly unknown[]): unknown {\n return purry(everyImplementation, args);\n}\n","import { NotFoundError } from '../errors';\nimport { orThrow } from '../function/orThrow';\nimport { purry } from '../function/purry';\n\nfunction findImplementation<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): NotFoundError | T {\n // -1 unequivocally tells us \"not found\", where vale check on `null | undefined` doesn't because that could be a valid value\n const foundIndex = arr.findIndex(predicate);\n\n if (foundIndex === -1) {\n return new NotFoundError('Arr.find :: predicate found no match.');\n }\n\n return arr[foundIndex]!;\n}\n\nexport function find<T, S extends T>(\n predicate: (value: T, index: number, array: readonly T[]) => value is S,\n): (arr: readonly T[]) => NotFoundError | S;\nexport function find<T>(\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): (arr: readonly T[]) => NotFoundError | T;\nexport function find<T, S extends T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => value is S,\n): NotFoundError | S;\nexport function find<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): NotFoundError | T;\nexport function find(...args: readonly unknown[]): unknown {\n return purry(findImplementation, args);\n}\n\nfunction findAssert<T, S extends T>(\n predicate: (value: T, index: number, array: readonly T[]) => value is S,\n): (arr: readonly T[]) => S;\nfunction findAssert<T>(predicate: (value: T, index: number, array: readonly T[]) => boolean): (arr: readonly T[]) => T;\nfunction findAssert<T, S extends T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => value is S,\n): S;\nfunction findAssert<T>(arr: readonly T[], predicate: (value: T, index: number, array: readonly T[]) => boolean): T;\nfunction findAssert(...args: readonly unknown[]): unknown {\n return purry(orThrow(findImplementation), args);\n}\n\nfind.assert = findAssert;\n","import { NotFoundError } from '../errors';\nimport { orThrow } from '../function/orThrow';\nimport { purry } from '../function/purry';\n\nfunction findIndexImplementation<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): NotFoundError | number {\n const result = arr.findIndex(predicate);\n if (result === -1) {\n return new NotFoundError('Arr.findIndex.orError() :: predicate found no match.');\n }\n return result;\n}\n\nexport function findIndex<T>(\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): (arr: readonly T[]) => NotFoundError | number;\nexport function findIndex<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): NotFoundError | number;\nexport function findIndex(...args: readonly unknown[]): unknown {\n return purry(findIndexImplementation, args);\n}\n\nfunction findIndexAssert<T>(\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): (arr: readonly T[]) => number;\nfunction findIndexAssert<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): number;\nfunction findIndexAssert(...args: readonly unknown[]): unknown {\n return purry(orThrow(findIndexImplementation), args);\n}\n\nfindIndex.assert = findIndexAssert;\n","import { NotFoundError } from '../errors';\nimport { orThrow } from '../function/orThrow';\nimport { purry } from '../function/purry';\n\nfunction findLastImplementation<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): NotFoundError | T {\n // -1 unequivocally tells us \"not found\", where vale check on `null | undefined` doesn't because that could be a valid value\n const foundIndex = arr.findLastIndex(predicate);\n\n if (foundIndex === -1) {\n return new NotFoundError('Arr.findLast() :: predicate found no match.');\n }\n\n return arr[foundIndex]!;\n}\n\nexport function findLast<T, S extends T>(\n predicate: (value: T, index: number, array: readonly T[]) => value is S,\n): (arr: readonly T[]) => NotFoundError | S;\nexport function findLast<T>(\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): (arr: readonly T[]) => NotFoundError | T;\nexport function findLast<T, S extends T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => value is S,\n): NotFoundError | S;\nexport function findLast<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): NotFoundError | T;\nexport function findLast(...args: readonly unknown[]): unknown {\n return purry(findLastImplementation, args);\n}\n\nfunction findLastAssert<T>(\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): (arr: readonly T[]) => T;\nfunction findLastAssert<T>(arr: readonly T[], predicate: (value: T, index: number, array: readonly T[]) => boolean): T;\nfunction findLastAssert(...args: readonly unknown[]): unknown {\n return purry(orThrow(findLastImplementation), args);\n}\n\nfindLast.assert = findLastAssert;\n","import { NotFoundError } from '../errors';\nimport { orThrow } from '../function/orThrow';\nimport { purry } from '../function/purry';\n\nfunction findLastIndexImplementation<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): NotFoundError | number {\n const result = arr.findLastIndex(predicate);\n if (result === -1) {\n return new NotFoundError('Arr.findLastIndex() :: predicate found no match.');\n }\n return result;\n}\n\nexport function findLastIndex<T>(\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): (arr: readonly T[]) => NotFoundError | number;\nexport function findLastIndex<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): NotFoundError | number;\nexport function findLastIndex(...args: readonly unknown[]): unknown {\n return purry(findLastIndexImplementation, args);\n}\n\nfunction findLastIndexAssert<T>(\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): (arr: readonly T[]) => number;\nfunction findLastIndexAssert<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): number;\nfunction findLastIndexAssert(...args: readonly unknown[]): unknown {\n return purry(orThrow(findLastIndexImplementation), args);\n}\n\nfindLastIndex.assert = findLastIndexAssert;\n","import { EmptyArrayError } from '../errors';\nimport { orThrow } from '../function/orThrow';\nimport type { ReadonlyNonEmptyArray } from '../types';\n\n/**\n *\n */\nexport function first<T>(arr: ReadonlyNonEmptyArray<T>): T[];\nexport function first<T>(arr: readonly T[]): EmptyArrayError | T;\nexport function first<T>(arr: readonly T[]): EmptyArrayError | T {\n if (arr.length === 0) {\n return new EmptyArrayError('Arr.first() :: array is empty');\n }\n return arr[0]!;\n}\n\nfunction firstAssert<T>(arr: readonly T[]): T {\n // @ts-expect-error\n return orThrow(first)(arr);\n}\n\nfirst.assert = firstAssert;\n","import { purry } from '../function/purry';\n\nfunction flatMapImplementation<T, U>(\n arr: readonly T[],\n callbackfn: (value: T, index: number, array: readonly T[]) => U | readonly U[],\n): U[] {\n return arr.flatMap(callbackfn);\n}\n\nexport function flatMap<T, U>(\n callbackfn: (value: T, index: number, array: readonly T[]) => U | readonly U[],\n): (arr: T[]) => U[];\nexport function flatMap<T, U>(arr: T[], callbackfn: (value: T, index: number, array: readonly U[]) => U[]): U[];\nexport function flatMap(...args: readonly unknown[]): unknown {\n return purry(flatMapImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction forEachImplementation<T>(arr: T[], callbackfn: (value: T, index: number, array: T[]) => void): T[] {\n arr.forEach(callbackfn);\n return arr;\n}\n\nexport function forEach<T>(callbackfn: (value: T, index: number, array: readonly T[]) => void): (arr: T[]) => T[];\nexport function forEach<T>(arr: T[], callbackfn: (value: T, index: number, array: readonly T[]) => void): T[];\nexport function forEach(...args: readonly unknown[]): unknown {\n return purry(forEachImplementation, args);\n}\n","import { orThrow } from '../function/orThrow';\n\n/**\n *\n */\nexport function init<T>(arr: readonly T[]): T[] {\n return arr.slice(0, arr.length - 1);\n}\n\nfunction initAssert<T>(arr: readonly T[]): T[] {\n // @ts-expect-error\n return orThrow(init)(arr);\n}\n\ninit.assert = initAssert;\n","import { orThrow } from '../function/orThrow';\nimport { purry } from '../function/purry';\n\nfunction insertImplementation<T>(arr: readonly T[], index: number, value: T): RangeError | T[] {\n try {\n return arr.with(index, value);\n } catch (_e) {\n return new RangeError(`Arr.insert() - Invalid index : ${index}`);\n }\n}\n\n/**\n * `with` is reserved word. So this function is uses `insert`\n * @throws RangeError\n */\nexport function insert<T>(index: number, value: T): (arr: readonly T[]) => T[];\nexport function insert<T>(arr: readonly T[], index: number, value: T): T[];\nexport function insert(...args: readonly unknown[]): unknown {\n return purry(insertImplementation, args);\n}\n\nfunction insertAssert<T>(index: number, value: T): (arr: readonly T[]) => T[];\nfunction insertAssert<T>(arr: readonly T[], index: number, value: T): T[];\nfunction insertAssert(...args: readonly unknown[]): unknown {\n return purry(orThrow(insertImplementation), args);\n}\n\ninsert.assert = insertAssert;\n","import type { NonEmptyArray, ReadonlyNonEmptyArray } from '../types';\n\nexport function isNotEmpty<T>(value: T[]): value is NonEmptyArray<T>;\nexport function isNotEmpty<T>(value: readonly T[]): value is ReadonlyNonEmptyArray<T>;\nexport function isNotEmpty(arr: readonly unknown[]): boolean {\n return arr.length > 0;\n}\n\n// TODO: is narrowing to [] really want I want here?\nexport function isEmpty<T>(value: T[]): value is [];\nexport function isEmpty<T>(value: readonly T[]): value is readonly [];\nexport function isEmpty(arr: readonly unknown[]): boolean {\n return arr.length === 0;\n}\n","import { purry } from '../function/purry';\n\nfunction joinImplementation(arr: string[], separator: string): string {\n return arr.join(separator);\n}\n\nexport function join(separator: string): (arr: string[]) => string;\nexport function join(arr: string[], separator: string): string;\nexport function join(...args: readonly unknown[]): unknown {\n return purry(joinImplementation, args);\n}\n","import { EmptyArrayError } from '../errors';\nimport { orThrow } from '../function/orThrow';\nimport type { ReadonlyNonEmptyArray } from '../types';\n\n/**\n *\n */\nexport function last<T>(arr: ReadonlyNonEmptyArray<T>): T;\nexport function last<T>(arr: readonly T[]): EmptyArrayError | T;\nexport function last<T>(arr: readonly T[]): EmptyArrayError | T {\n if (arr.length === 0) {\n return new EmptyArrayError('Arr.last() :: array is empty');\n }\n return arr[arr.length - 1]!;\n}\n\nfunction lastAssert<T>(arr: readonly T[]): T {\n // @ts-expect-error\n return orThrow(last)(arr);\n}\n\nlast.assert = lastAssert;\n","/**\n * Returns length of array\n * @param arr\n * @returns\n */\nexport function length(arr: readonly unknown[]): number {\n return arr.length;\n}\n","import { purry } from '../function/purry';\n\nfunction mapImplementation<T, U>(\n arr: readonly T[],\n callbackfn: (value: T, index: number, array: readonly T[]) => U,\n): U[] {\n return arr.map(callbackfn);\n}\n\nexport function map<T, U>(callbackfn: (value: T, index: number, array: readonly T[]) => U): (arr: T[]) => U[];\nexport function map<T, U>(data: T[], callbackfn: (value: T, index: number, array: readonly T[]) => U): U[];\nexport function map(...args: readonly unknown[]): unknown {\n return purry(mapImplementation, args);\n}\n","/**\n * Arr.ofLength\n *\n * @throws {RangeError}\n */\nexport function ofLength<T = unknown>(arrayLength: number): T[] {\n return Array(arrayLength) as T[];\n}\n","import { purry } from '../function/purry';\n\nfunction partitionImplementation<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): [T[], T[]] {\n const len = arr.length;\n const left: T[] = [];\n const right: T[] = [];\n for (let i = 0; i < len; i += 1) {\n const value = arr[i]!;\n if (predicate(value, i, arr)) {\n left.push(value);\n } else {\n right.push(value);\n }\n }\n return [left, right];\n}\n\nexport function partition<T, S extends T>(\n predicate: (value: T, index: number, arr: readonly T[]) => value is S,\n): (data: readonly T[]) => [S[], T[]];\nexport function partition<T>(\n predicate: (value: T, index: number, arr: readonly T[]) => boolean,\n): (data: readonly T[]) => [T[], T[]];\nexport function partition<T, S extends T>(\n data: readonly T[],\n predicate: (value: T, index: number, arr: readonly T[]) => value is S,\n): [S[], T[]];\nexport function partition<T>(\n data: readonly T[],\n predicate: (value: T, index: number, arr: readonly T[]) => boolean,\n): [T[], T[]];\nexport function partition(...args: readonly unknown[]): unknown {\n return purry(partitionImplementation, args);\n}\n","import { EmptyArrayError } from '../errors';\nimport { orThrow } from '../function/orThrow';\nimport type { ReadonlyNonEmptyArray } from '../types';\n\n/**\n * Array.pop\n */\nexport function pop<T>(arr: ReadonlyNonEmptyArray<T>): [T, T[]];\nexport function pop<T>(arr: readonly T[]): EmptyArrayError | [T, T[]];\nexport function pop<T>(arr: readonly T[]): EmptyArrayError | [T, T[]] {\n if (arr.length === 0) {\n return new EmptyArrayError('Arr.pop() :: array is empty');\n }\n const lastIndex = arr.length - 1;\n const last = arr[lastIndex]!;\n const tail = arr.slice(0, lastIndex);\n return [last, tail];\n}\n\nfunction popAssert<T>(arr: readonly T[]): [T, T[]] {\n // @ts-expect-error\n return orThrow(pop)(arr);\n}\n\npop.assert = popAssert;\n","import { purry } from '../function/purry';\n\nfunction prependImplementation<T>(arr: readonly T[], other: readonly T[]): T[] {\n return [...other, ...arr];\n}\n\nexport function prepend<T>(other: readonly T[]): (arr: readonly T[]) => T[];\nexport function prepend<T>(arr: readonly T[], other: readonly T[]): T[];\nexport function prepend(...args: readonly unknown[]): unknown {\n return purry(prependImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction pushImplementation<T>(arr: readonly T[], value: T): T[] {\n return [...arr, value];\n}\n\nexport function push<T>(value: T): (arr: readonly T[]) => T[];\nexport function push<T>(arr: readonly T[], value: T): T[];\nexport function push(...args: readonly unknown[]): unknown {\n return purry(pushImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction reduceImplementation<T, U>(\n arr: readonly T[],\n callbackFn: (acc: U, value: T, index: number, array: readonly T[]) => U,\n initialValue: U,\n): U {\n return arr.reduce(callbackFn, initialValue);\n}\n\nexport function reduce<T, U>(\n arr: readonly T[],\n callbackFn: (acc: U, value: T, index: number, array: readonly T[]) => U,\n initialValue: U,\n): U;\nexport function reduce<T, U>(\n callbackFn: (acc: U, value: T, index: number, array: readonly T[]) => U,\n initialValue: U,\n): (arr: readonly T[]) => U;\nexport function reduce(...args: readonly unknown[]): unknown {\n return purry(reduceImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction reduce1Implementation<T>(\n arr: readonly T[],\n callbackFn: (acc: T, value: T, index: number, array: readonly T[]) => T,\n): T {\n return arr.reduce(callbackFn);\n}\n\nexport function reduce1<T>(\n arr: readonly T[],\n callbackFn: (acc: T, value: T, index: number, array: readonly T[]) => T,\n): T;\nexport function reduce1<T>(\n callbackFn: (acc: T, value: T, index: number, array: readonly T[]) => T,\n): (arr: readonly T[]) => T;\nexport function reduce1(...args: readonly unknown[]): unknown {\n return purry(reduce1Implementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction reduceRightImplementation<T, U>(\n arr: readonly T[],\n callbackFn: (acc: U, value: T, index: number, array: readonly T[]) => U,\n initialValue: U,\n): U {\n return arr.reduceRight(callbackFn, initialValue);\n}\n\nexport function reduceRight<T, U>(\n arr: readonly T[],\n callbackFn: (acc: U, value: T, index: number, array: readonly T[]) => U,\n initialValue: U,\n): U;\nexport function reduceRight<T, U>(\n callbackFn: (acc: U, value: T, index: number, array: readonly T[]) => U,\n initialValue: U,\n): (arr: readonly T[]) => U;\nexport function reduceRight(...args: readonly unknown[]): unknown {\n return purry(reduceRightImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction reduceRight1Implementation<T>(\n arr: readonly T[],\n callbackFn: (acc: T, value: T, index: number, array: readonly T[]) => T,\n): T {\n return arr.reduceRight(callbackFn);\n}\n\nexport function reduceRight1<T>(\n arr: readonly T[],\n callbackFn: (acc: T, value: T, index: number, array: readonly T[]) => T,\n): T;\nexport function reduceRight1<T>(\n callbackFn: (acc: T, value: T, index: number, array: readonly T[]) => T,\n): (arr: readonly T[]) => T;\nexport function reduceRight1(...args: readonly unknown[]): unknown {\n return purry(reduceRight1Implementation, args);\n}\n","/**\n * Returns an array excluding the first entry\n * @param arr\n * @returns\n */\nexport function rest<T>(arr: readonly T[]): T[] {\n const [, ...tail] = arr;\n return tail;\n}\n","import { purry } from '../function/purry';\n\nfunction reverseImplementation<T>(arr: readonly T[]): T[] {\n return arr.toReversed();\n}\n\nexport function reverse(index: number): <T>(arr: readonly T[]) => T[];\nexport function reverse<T>(arr: readonly T[], index: number): T[];\nexport function reverse(...args: readonly unknown[]): unknown {\n return purry(reverseImplementation, args);\n}\n","import { purry } from '../function';\n\nfunction scanImplementation<T, U>(\n arr: T[],\n callbackFn: (acc: U, value: T, index: number, array: readonly T[]) => U,\n initialValue: U,\n): U[] {\n const len = arr.length;\n const result = Array(len + 1) as U[];\n let acc = initialValue;\n result[0] = acc;\n for (let index = 0; index < len; index += 1) {\n acc = callbackFn(acc, arr[index]!, index, arr);\n result[index + 1] = acc;\n }\n return result;\n}\n\nexport function scan<T, U>(\n callbackFn: (acc: U, value: T, index: number, array: readonly T[]) => U,\n initialValue: U,\n): (arr: T[]) => U[];\nexport function scan<T, U>(\n arr: T[],\n callbackFn: (acc: U, value: T, index: number, array: readonly T[]) => U,\n initialValue: U,\n): U[];\nexport function scan(...args: unknown[]): unknown {\n return purry(scanImplementation, args);\n}\n","import { EmptyArrayError } from '../errors';\nimport { orThrow } from '../function/orThrow';\nimport type { ReadonlyNonEmptyArray } from '../types';\n\n/**\n *\n */\nexport function shift<T>(arr: ReadonlyNonEmptyArray<T>): [T, T[]];\nexport function shift<T>(arr: readonly T[]): EmptyArrayError | [T, T[]] {\n if (arr.length === 0) {\n return new EmptyArrayError('Arr.shift() :: array is empty');\n }\n const [head, ...tail] = arr;\n return [head!, tail];\n}\n\nfunction shiftAssert<T>(arr: readonly T[]): [T, T[]] {\n // @ts-expect-error\n return orThrow(shift)(arr);\n}\n\nshift.assert = shiftAssert;\n","export function shuffle<T>(arr: T[]): T[] {\n const result = [...arr];\n const len = result.length;\n for (let i = 0; i < len; i += 1) {\n const rand = i + Math.floor(Math.random() * (len - i));\n const value = result[rand]!;\n result[rand] = result[i]!;\n result[i] = value;\n }\n return result;\n}\n","import { purry } from '../function/purry';\n\nfunction someImplementation<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): boolean {\n return arr.some(predicate);\n}\n\nexport function some<T>(\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): (arr: readonly T[]) => T[];\nexport function some<T>(arr: readonly T[], predicate: (value: T, index: number, array: readonly T[]) => boolean): T[];\nexport function some(...args: readonly unknown[]): unknown {\n return purry(someImplementation, args);\n}\n","import { purry } from '../function/purry';\nimport type { Order } from '../order/order.constants';\n\nfunction sortImplementation<T>(arr: T[], compareFn: (left: T, right: T) => Order): T[] {\n return arr.toSorted(compareFn);\n}\n\nexport function sort<T>(compareFn: (left: T, right: T) => Order): (arr: T[]) => T[];\nexport function sort<T>(arr: T[], compareFn: (left: T, right: T) => Order): T[];\nexport function sort(...args: readonly unknown[]): unknown {\n return purry(sortImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction sortByImplementation<T>(arr: T[], mapFn: (value: T) => Date | boolean | number | string): T[] {\n return arr.toSorted((left, right) => {\n const l = mapFn(left);\n const r = mapFn(right);\n if (l < r) return -1;\n if (l > r) return 0;\n return 0;\n });\n}\n\nexport function sortBy<T>(mapFn: (value: T) => Date | boolean | number | string): (arr: T[]) => T[];\nexport function sortBy<T>(arr: T[], mapFn: (value: T) => Date | boolean | number | string): T[];\nexport function sortBy(...args: readonly unknown[]): unknown {\n return purry(sortByImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction takeImplementation<T>(arr: readonly T[], limit: number): T[] {\n if (limit < 1) {\n throw new RangeError(`Arr.take() :: ${limit} must be a positive integer`);\n }\n\n return arr.slice(0, limit);\n}\n\n/**\n *\n * @throws {RangeError}\n */\nexport function take<T>(limit: number): (arr: readonly T[]) => T[];\nexport function take<T>(arr: readonly T[], limit: number): T[];\nexport function take(...args: readonly unknown[]): unknown {\n return purry(takeImplementation, args);\n}\n","export function transpose<T>(arr: T[][]): T[][] {\n // pre-populate result with empty arrays of max length of inners\n const maxLen = arr.reduce((acc, inner) => Math.max(acc, inner.length), 0);\n return Array(maxLen)\n .fill(undefined)\n .map((_, index) => arr.map(inner => inner[index]!));\n}\n","export function unique<T>(arr: readonly T[]): T[] {\n if (arr.length === 0) {\n return [];\n }\n return Array.from(new Set(arr));\n}\n","import { purry } from '../function/purry';\n\nfunction uniqueByImplementation<T>(arr: readonly T[], mapFn: (value: T) => unknown): T[] {\n if (arr.length === 0) {\n return [];\n }\n const map = new Map<unknown, T>();\n arr.forEach((_, index) => {\n const value = arr[index]!;\n const key = mapFn(value);\n if (!map.has(key)) {\n map.set(key, value);\n }\n });\n return Array.from(map.values());\n}\n\nexport function uniqueBy<T>(mapFn: (value: T) => unknown): (arr: T[]) => T[];\nexport function uniqueBy<T>(arr: T[], mapFn: (value: T) => unknown): T[];\nexport function uniqueBy(...args: unknown[]): unknown {\n return purry(uniqueByImplementation, args);\n}\n","export function uniqueWith<T>(arr: readonly T[], isEqual: (left: T, right: T) => boolean): T[] {\n if (arr.length === 0) {\n return [];\n }\n return arr.filter((value, index) => {\n const foundIndex = arr.find((otherValue, otherIndex) => index === otherIndex || isEqual(value, otherValue)) ?? -1; // logically this should never happen, but handle it to prevent runtime errors\n // only keep if foundIndex is same as current index.\n // Else it means that another entry was found to be isEqual further along in the iteration\n return index === foundIndex;\n });\n}\n","import { purry } from '../function/purry';\n\nfunction unshiftImplementation<T>(arr: readonly T[], value: T): T[] {\n return [value, ...arr];\n}\n\n/**\n * Immutably inserts new elements at the start of an array. Returns the new array.\n */\nexport function unshift<T>(value: T): (arr: readonly T[]) => T[];\nexport function unshift<T>(arr: readonly T[], value: T): T[];\nexport function unshift(...args: readonly unknown[]): unknown {\n return purry(unshiftImplementation, args);\n}\n","import { orThrow } from '../function/orThrow';\nimport { purry } from '../function/purry';\n\nfunction updateImplementation<T>(arr: readonly T[], index: number, fn: (valueR: T) => T): RangeError | T[] {\n if (index >= arr.length || index < -arr.length) {\n return new RangeError(`Arr.update() :: Invalid index : ${index}`);\n }\n const value = arr.at(index) as T;\n\n const updatedValue = fn(value);\n\n return arr.with(index, updatedValue);\n}\n\n/**\n *\n */\nexport function update<T>(index: number, fn: (value: T) => T): (arr: readonly T[]) => RangeError | T[];\nexport function update<T>(arr: readonly T[], index: number, fn: (value: T) => T): RangeError | T[];\nexport function update(...args: readonly unknown[]): unknown {\n return purry(updateImplementation, args);\n}\n\nfunction updateAssert<T>(index: number, fn: (value: T) => T): (arr: readonly T[]) => T[];\nfunction updateAssert<T>(arr: readonly T[], index: number, fn: (value: T) => T): T[];\nfunction updateAssert(...args: readonly unknown[]): unknown {\n return purry(orThrow(updateImplementation), args);\n}\n\nupdate.assert = updateAssert;\n","import { orThrow } from '../function/orThrow';\nimport { purry } from '../function/purry';\n\nfunction windowImplementation<T>(arr: readonly T[], size: number): T[][] {\n if (size < 1) {\n throw new RangeError(`Arr.window() :: ${size} must be a positive integer`);\n }\n\n const limit = arr.length - (size - 1);\n\n if (limit < 0) return [];\n\n return Array(limit)\n .fill(undefined)\n .map((_, index) => arr.slice(index, index + size));\n}\n\n/**\n *\n * @throws {RangeError}\n */\nexport function window(size: number): <T>(arr: readonly T[]) => T[][];\nexport function window<T>(arr: readonly T[], size: number): T[][];\nexport function window(...args: unknown[]): unknown {\n return purry(windowImplementation, args);\n}\n\nfunction windowAssert<T>(size: number): (arr: readonly T[]) => T[][];\nfunction windowAssert<T>(arr: readonly T[], size: number): T[][];\nfunction windowAssert(...args: readonly unknown[]): unknown {\n return purry(orThrow(windowImplementation), args);\n}\n\nwindow.assert = windowAssert;\n","import { purry } from '../function/purry';\n\nfunction zipImplementation<L, R>(arr: readonly L[], other: readonly R[]): [L, R][] {\n return Array(Math.min(arr.length, other.length))\n .fill(undefined)\n .map<[L, R]>((_, index) => [arr[index]!, other[index]!] as const);\n}\n\nexport function zip<L, R>(other: readonly R[]): (arr: readonly L[]) => [L, R][];\nexport function zip<L, R>(arr: readonly L[], other: readonly R[]): [L, R][];\nexport function zip(...args: unknown[]): unknown {\n return purry(zipImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction zipWithImplementation<L, R, U>(arr: readonly L[], other: readonly R[], fn: (l: L, R: R) => U): U[] {\n return Array(Math.min(arr.length, other.length))\n .fill(undefined)\n .map<U>((_, index) => fn(arr[index]!, other[index]!));\n}\n\nexport function zipWith<L, R, U>(other: readonly R[], fn: (l: L, R: R) => U): (arr: readonly L[]) => U[];\nexport function zipWith<L, R, U>(arr: readonly L[], other: readonly R[], fn: (l: L, R: R) => U): U[];\nexport function zipWith(...args: unknown[]): unknown {\n return purry(zipWithImplementation, args);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/array/_globalAliases.ts","../../src/array/at.ts","../../src/array/chunk.ts","../../src/array/concat.ts","../../src/array/drop.ts","../../src/array/every.ts","../../src/array/find.ts","../../src/array/findIndex.ts","../../src/array/findLast.ts","../../src/array/findLastIndex.ts","../../src/array/first.ts","../../src/array/flatMap.ts","../../src/array/forEach.ts","../../src/array/init.ts","../../src/array/insert.ts","../../src/array/isEmpty.ts","../../src/array/join.ts","../../src/array/last.ts","../../src/array/length.ts","../../src/array/map.ts","../../src/array/ofLength.ts","../../src/array/partition.ts","../../src/array/pop.ts","../../src/array/prepend.ts","../../src/array/push.ts","../../src/array/reduce.ts","../../src/array/reduce1.ts","../../src/array/reduceRight.ts","../../src/array/reduceRight1.ts","../../src/array/rest.ts","../../src/array/reverse.ts","../../src/array/scan.ts","../../src/array/shift.ts","../../src/array/shuffle.ts","../../src/array/some.ts","../../src/array/sort.ts","../../src/array/sortBy.ts","../../src/array/take.ts","../../src/array/transpose.ts","../../src/array/unique.ts","../../src/array/uniqueBy.ts","../../src/array/uniqueWith.ts","../../src/array/unshift.ts","../../src/array/update.ts","../../src/array/window.ts","../../src/array/zip.ts","../../src/array/zipWith.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/prefer-destructuring */\n\n/**\n * Creates an array from an iterable or array-like object.\n * @function\n */\nexport const from = Array.from;\n\n/**\n * Creates an array from an async iterable.\n * @function\n */\nexport const fromAsync = Array.fromAsync;\n\n/**\n * Checks whether a value is an array.\n * @function\n */\nexport const isArray = Array.isArray;\n\n/**\n * Creates an array containing the given values.\n * @function\n */\nexport const of = Array.of;\n\n/**\n * Alias of the built-in array constructor. `new Array() === new Arr.Ctor()\n * @function\n */\nexport const Ctor = Array;\n","import { orThrow } from '../function/orThrow';\nimport { purry } from '../function/purry';\n\nfunction atImplementation<T>(arr: readonly T[], index: number): RangeError | T {\n if (arr.length === 0 || index >= arr.length || index < -arr.length) {\n return new RangeError(`Arr.at() :: Invalid index : ${index}`);\n }\n\n return arr.at(index) as T;\n}\n\n/**\n * Gets an element from an array by index, including negative indices from the end.\n * Returns a range error when the array is empty or the index is out of bounds.\n *\n * @example\n * ```ts\n * at([1, 2, 3], 1); // 2\n * at(-1)([1, 2, 3]); // 3\n * at([1, 2, 3], 3); // RangeError\n * ```\n */\nexport function at<T>(index: number): (arr: readonly T[]) => RangeError | T;\nexport function at<T>(arr: readonly T[], index: number): RangeError | T;\nexport function at(...args: readonly unknown[]): unknown {\n return purry(atImplementation, args);\n}\n\nfunction atAssert<T>(index: number): (arr: readonly T[]) => T;\nfunction atAssert<T>(arr: readonly T[], index: number): T;\nfunction atAssert(...args: readonly unknown[]): unknown {\n return purry(orThrow(atImplementation), args);\n}\n\n/**\n * Like `at`, but throws when the index is out of bounds.\n *\n * @example\n * ```ts\n * at.assert([1, 2, 3], 1); // 2\n * at.assert(-1)([1, 2, 3]); // 3\n * at.assert([1, 2, 3], 3); // throws RangeError\n * ```\n */\nat.assert = atAssert;\n","import { orThrow } from '../function/orThrow';\nimport { purry } from '../function/purry';\n\nfunction chunkImplementation<T>(arr: readonly T[], size: number): T[][] {\n if (size < 1) {\n throw new RangeError(`Arr.chunk() :: ${size} must be a positive integer`);\n }\n\n if (arr.length === 0) {\n return [];\n }\n\n if (size >= arr.length) {\n // Optimized for when there is only one chunk.\n return [[...arr]];\n }\n\n const chunks = Math.ceil(arr.length / size);\n\n if (size === 1) {\n return arr.map(v => [v]);\n }\n\n const result = Array(chunks)\n .fill(undefined)\n .map((_, index) => {\n const start = index * size;\n return arr.slice(start, start + size);\n });\n\n return result;\n}\n\n/**\n * Splits an array into consecutive groups of the given size.\n * The last chunk may contain fewer elements when the length is not evenly divisible.\n *\n * @example\n * ```ts\n * chunk([1, 2, 3, 4, 5], 2); // [[1, 2], [3, 4], [5]]\n * chunk(2)([1, 2, 3, 4, 5]); // [[1, 2], [3, 4], [5]]\n * ```\n */\nexport function chunk(size: number): <T>(arr: readonly T[]) => T[][];\nexport function chunk<T>(arr: readonly T[], size: number): T[][];\nexport function chunk(...args: unknown[]): unknown {\n return purry(chunkImplementation, args);\n}\n\nfunction chunkAssert<T>(size: number): (arr: readonly T[]) => T[][];\nfunction chunkAssert<T>(arr: readonly T[], size: number): T[][];\nfunction chunkAssert(...args: unknown[]): unknown {\n return purry(orThrow(chunkImplementation), args);\n}\n\n/**\n * Like `chunk`, but throws when the size is not a positive integer.\n *\n * @example\n * ```ts\n * chunk.assert([1, 2, 3, 4, 5], 2); // [[1, 2], [3, 4], [5]]\n * chunk.assert(0)([1, 2, 3]); // throws RangeError\n * ```\n */\nchunk.assert = chunkAssert;\n","import { purry } from '../function/purry';\n\nfunction concatImplementation<T>(arr: readonly T[], other: readonly T[]): T[] {\n return [...arr, ...other];\n}\n\n/**\n * Concatenates two arrays without mutating either input.\n *\n * @example\n * ```ts\n * concat([1, 2], [3, 4]); // [1, 2, 3, 4]\n * concat([3, 4])([1, 2]); // [1, 2, 3, 4]\n * ```\n */\nexport function concat<T>(other: readonly T[]): (arr: readonly T[]) => T;\nexport function concat<T>(arr: readonly T[], other: readonly T[]): T;\nexport function concat(...args: readonly unknown[]): unknown {\n return purry(concatImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction dropImplementation<T>(arr: readonly T[], n: number): T[] {\n return arr.slice(n);\n}\n\n/**\n * Drops the first `n` elements from an array.\n *\n * @example\n * ```ts\n * drop([1, 2, 3, 4], 2); // [3, 4]\n * drop(2)([1, 2, 3, 4]); // [3, 4]\n * ```\n */\nexport function drop<T>(n: number): (arr: readonly T[]) => T[];\nexport function drop<T>(arr: readonly T[], n: number): T[];\nexport function drop(...args: readonly unknown[]): unknown {\n return purry(dropImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction everyImplementation<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): boolean {\n return arr.every(predicate);\n}\n\n/**\n * Tests whether every element satisfies a predicate.\n *\n * @example\n * ```ts\n * every([2, 4, 6], n => n % 2 === 0); // true\n * every(n => n > 0)([1, 2, 3]); // true\n * ```\n */\nexport function every<T, S extends T>(\n predicate: (value: T, index: number, array: readonly T[]) => value is S,\n): (arr: readonly T[]) => arr is S[];\nexport function every<T>(\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): (arr: readonly T[]) => T[];\nexport function every<T, S extends T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => value is S,\n): arr is S[];\nexport function every<T>(arr: readonly T[], predicate: (value: T, index: number, array: readonly T[]) => boolean): T[];\nexport function every(...args: readonly unknown[]): unknown {\n return purry(everyImplementation, args);\n}\n","import { NotFoundError } from '../errors';\nimport { orThrow } from '../function/orThrow';\nimport { purry } from '../function/purry';\n\nfunction findImplementation<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): NotFoundError | T {\n // -1 unequivocally tells us \"not found\", where vale check on `null | undefined` doesn't because that could be a valid value\n const foundIndex = arr.findIndex(predicate);\n\n if (foundIndex === -1) {\n return new NotFoundError('Arr.find :: predicate found no match.');\n }\n\n return arr[foundIndex]!;\n}\n\n/**\n * Returns the first element that satisfies a predicate.\n * Returns a not-found error when no element matches.\n *\n * @example\n * ```ts\n * find([1, 2, 3], n => n > 1); // 2\n * find(n => n > 1)([1, 2, 3]); // 2\n * find([1, 2, 3], n => n > 10); // NotFoundError\n * ```\n */\nexport function find<T, S extends T>(\n predicate: (value: T, index: number, array: readonly T[]) => value is S,\n): (arr: readonly T[]) => NotFoundError | S;\nexport function find<T>(\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): (arr: readonly T[]) => NotFoundError | T;\nexport function find<T, S extends T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => value is S,\n): NotFoundError | S;\nexport function find<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): NotFoundError | T;\nexport function find(...args: readonly unknown[]): unknown {\n return purry(findImplementation, args);\n}\n\nfunction findAssert<T, S extends T>(\n predicate: (value: T, index: number, array: readonly T[]) => value is S,\n): (arr: readonly T[]) => S;\nfunction findAssert<T>(predicate: (value: T, index: number, array: readonly T[]) => boolean): (arr: readonly T[]) => T;\nfunction findAssert<T, S extends T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => value is S,\n): S;\nfunction findAssert<T>(arr: readonly T[], predicate: (value: T, index: number, array: readonly T[]) => boolean): T;\nfunction findAssert(...args: readonly unknown[]): unknown {\n return purry(orThrow(findImplementation), args);\n}\n\n/**\n * Like `find`, but throws when no element matches the predicate.\n *\n * @example\n * ```ts\n * find.assert([1, 2, 3], n => n > 1); // 2\n * find.assert(n => n > 10)([1, 2, 3]); // throws NotFoundError\n * ```\n */\nfind.assert = findAssert;\n","import { NotFoundError } from '../errors';\nimport { orThrow } from '../function/orThrow';\nimport { purry } from '../function/purry';\n\nfunction findIndexImplementation<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): NotFoundError | number {\n const result = arr.findIndex(predicate);\n if (result === -1) {\n return new NotFoundError('Arr.findIndex.orError() :: predicate found no match.');\n }\n return result;\n}\n\n/**\n * Returns the index of the first element that satisfies a predicate.\n * Returns a not-found error when no element matches.\n *\n * @example\n * ```ts\n * findIndex([1, 2, 3], n => n > 1); // 1\n * findIndex(n => n > 1)([1, 2, 3]); // 1\n * findIndex([1, 2, 3], n => n > 10); // NotFoundError\n * ```\n */\nexport function findIndex<T>(\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): (arr: readonly T[]) => NotFoundError | number;\nexport function findIndex<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): NotFoundError | number;\nexport function findIndex(...args: readonly unknown[]): unknown {\n return purry(findIndexImplementation, args);\n}\n\nfunction findIndexAssert<T>(\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): (arr: readonly T[]) => number;\nfunction findIndexAssert<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): number;\nfunction findIndexAssert(...args: readonly unknown[]): unknown {\n return purry(orThrow(findIndexImplementation), args);\n}\n\n/**\n * Like `findIndex`, but throws when no element matches the predicate.\n *\n * @example\n * ```ts\n * findIndex.assert([1, 2, 3], n => n > 1); // 1\n * findIndex.assert(n => n > 10)([1, 2, 3]); // throws NotFoundError\n * ```\n */\nfindIndex.assert = findIndexAssert;\n","import { NotFoundError } from '../errors';\nimport { orThrow } from '../function/orThrow';\nimport { purry } from '../function/purry';\n\nfunction findLastImplementation<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): NotFoundError | T {\n // -1 unequivocally tells us \"not found\", where vale check on `null | undefined` doesn't because that could be a valid value\n const foundIndex = arr.findLastIndex(predicate);\n\n if (foundIndex === -1) {\n return new NotFoundError('Arr.findLast() :: predicate found no match.');\n }\n\n return arr[foundIndex]!;\n}\n\n/**\n * Returns the last element that satisfies a predicate.\n * Returns a not-found error when no element matches.\n *\n * @example\n * ```ts\n * findLast([1, 2, 3, 2], n => n === 2); // 2\n * findLast(n => n === 2)([1, 2, 3, 2]); // 2\n * findLast([1, 2, 3], n => n > 10); // NotFoundError\n * ```\n */\nexport function findLast<T, S extends T>(\n predicate: (value: T, index: number, array: readonly T[]) => value is S,\n): (arr: readonly T[]) => NotFoundError | S;\nexport function findLast<T>(\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): (arr: readonly T[]) => NotFoundError | T;\nexport function findLast<T, S extends T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => value is S,\n): NotFoundError | S;\nexport function findLast<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): NotFoundError | T;\nexport function findLast(...args: readonly unknown[]): unknown {\n return purry(findLastImplementation, args);\n}\n\nfunction findLastAssert<T>(\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): (arr: readonly T[]) => T;\nfunction findLastAssert<T>(arr: readonly T[], predicate: (value: T, index: number, array: readonly T[]) => boolean): T;\nfunction findLastAssert(...args: readonly unknown[]): unknown {\n return purry(orThrow(findLastImplementation), args);\n}\n\n/**\n * Like `findLast`, but throws when no element matches the predicate.\n *\n * @example\n * ```ts\n * findLast.assert([1, 2, 3, 2], n => n === 2); // 2\n * findLast.assert(n => n > 10)([1, 2, 3]); // throws NotFoundError\n * ```\n */\nfindLast.assert = findLastAssert;\n","import { NotFoundError } from '../errors';\nimport { orThrow } from '../function/orThrow';\nimport { purry } from '../function/purry';\n\nfunction findLastIndexImplementation<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): NotFoundError | number {\n const result = arr.findLastIndex(predicate);\n if (result === -1) {\n return new NotFoundError('Arr.findLastIndex() :: predicate found no match.');\n }\n return result;\n}\n\n/**\n * Returns the index of the last element that satisfies a predicate.\n * Returns a not-found error when no element matches.\n *\n * @example\n * ```ts\n * findLastIndex([1, 2, 3, 2], n => n === 2); // 3\n * findLastIndex(n => n === 2)([1, 2, 3, 2]); // 3\n * findLastIndex([1, 2, 3], n => n > 10); // NotFoundError\n * ```\n */\nexport function findLastIndex<T>(\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): (arr: readonly T[]) => NotFoundError | number;\nexport function findLastIndex<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): NotFoundError | number;\nexport function findLastIndex(...args: readonly unknown[]): unknown {\n return purry(findLastIndexImplementation, args);\n}\n\nfunction findLastIndexAssert<T>(\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): (arr: readonly T[]) => number;\nfunction findLastIndexAssert<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): number;\nfunction findLastIndexAssert(...args: readonly unknown[]): unknown {\n return purry(orThrow(findLastIndexImplementation), args);\n}\n\n/**\n * Like `findLastIndex`, but throws when no element matches the predicate.\n *\n * @example\n * ```ts\n * findLastIndex.assert([1, 2, 3, 2], n => n === 2); // 3\n * findLastIndex.assert(n => n > 10)([1, 2, 3]); // throws NotFoundError\n * ```\n */\nfindLastIndex.assert = findLastIndexAssert;\n","import { EmptyArrayError } from '../errors';\nimport { orThrow } from '../function/orThrow';\nimport type { ReadonlyNonEmptyArray } from '../types';\n\n/**\n * Returns the first element of an array.\n * Returns an empty-array error when the array has no elements.\n *\n * @example\n * ```ts\n * first([1, 2, 3]); // 1\n * first([]); // EmptyArrayError\n * ```\n */\nexport function first<T>(arr: ReadonlyNonEmptyArray<T>): T[];\nexport function first<T>(arr: readonly T[]): EmptyArrayError | T;\nexport function first<T>(arr: readonly T[]): EmptyArrayError | T {\n if (arr.length === 0) {\n return new EmptyArrayError('Arr.first() :: array is empty');\n }\n return arr[0]!;\n}\n\nfunction firstAssert<T>(arr: readonly T[]): T {\n // @ts-expect-error\n return orThrow(first)(arr);\n}\n\n/**\n * Like `first`, but throws when the array is empty.\n *\n * @example\n * ```ts\n * first.assert([1, 2, 3]); // 1\n * first.assert([]); // throws EmptyArrayError\n * ```\n */\nfirst.assert = firstAssert;\n","import { purry } from '../function/purry';\n\nfunction flatMapImplementation<T, U>(\n arr: readonly T[],\n callbackfn: (value: T, index: number, array: readonly T[]) => U | readonly U[],\n): U[] {\n return arr.flatMap(callbackfn);\n}\n\n/**\n * Maps each element to an array and flattens the result by one level.\n *\n * @example\n * ```ts\n * flatMap([1, 2, 3], n => [n, n * 10]); // [1, 10, 2, 20, 3, 30]\n * flatMap(n => [n, n * 10])([1, 2, 3]); // [1, 10, 2, 20, 3, 30]\n * ```\n */\nexport function flatMap<T, U>(\n callbackfn: (value: T, index: number, array: readonly T[]) => U | readonly U[],\n): (arr: T[]) => U[];\nexport function flatMap<T, U>(arr: T[], callbackfn: (value: T, index: number, array: readonly U[]) => U[]): U[];\nexport function flatMap(...args: readonly unknown[]): unknown {\n return purry(flatMapImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction forEachImplementation<T>(arr: T[], callbackfn: (value: T, index: number, array: T[]) => void): T[] {\n arr.forEach(callbackfn);\n return arr;\n}\n\n/**\n * Runs a callback for each element and returns the original array.\n *\n * @example\n * ```ts\n * forEach([1, 2, 3], n => console.log(n)); // [1, 2, 3]\n * forEach(n => console.log(n))([1, 2, 3]); // [1, 2, 3]\n * ```\n */\nexport function forEach<T>(callbackfn: (value: T, index: number, array: readonly T[]) => void): (arr: T[]) => T[];\nexport function forEach<T>(arr: T[], callbackfn: (value: T, index: number, array: readonly T[]) => void): T[];\nexport function forEach(...args: readonly unknown[]): unknown {\n return purry(forEachImplementation, args);\n}\n","import { orThrow } from '../function/orThrow';\n\n/**\n * Returns all elements except the last.\n *\n * @example\n * ```ts\n * init([1, 2, 3]); // [1, 2]\n * init([1]); // []\n * ```\n */\nexport function init<T>(arr: readonly T[]): T[] {\n return arr.slice(0, arr.length - 1);\n}\n\nfunction initAssert<T>(arr: readonly T[]): T[] {\n // @ts-expect-error\n return orThrow(init)(arr);\n}\n\n/**\n * Like `init`, but throws when the array is empty.\n *\n * @example\n * ```ts\n * init.assert([1, 2, 3]); // [1, 2]\n * init.assert([]); // throws EmptyArrayError\n * ```\n */\ninit.assert = initAssert;\n","import { orThrow } from '../function/orThrow';\nimport { purry } from '../function/purry';\n\nfunction insertImplementation<T>(arr: readonly T[], index: number, value: T): RangeError | T[] {\n try {\n return arr.with(index, value);\n } catch (_e) {\n return new RangeError(`Arr.insert() - Invalid index : ${index}`);\n }\n}\n\n/**\n * Inserts or replaces the element at the given index without mutating the original array.\n * Named `insert` because `with` is a reserved word.\n * Returns a range error when the index is invalid.\n *\n * @example\n * ```ts\n * insert([1, 2, 3], 1, 9); // [1, 9, 3]\n * insert(1, 9)([1, 2, 3]); // [1, 9, 3]\n * ```\n */\nexport function insert<T>(index: number, value: T): (arr: readonly T[]) => T[];\nexport function insert<T>(arr: readonly T[], index: number, value: T): T[];\nexport function insert(...args: readonly unknown[]): unknown {\n return purry(insertImplementation, args);\n}\n\nfunction insertAssert<T>(index: number, value: T): (arr: readonly T[]) => T[];\nfunction insertAssert<T>(arr: readonly T[], index: number, value: T): T[];\nfunction insertAssert(...args: readonly unknown[]): unknown {\n return purry(orThrow(insertImplementation), args);\n}\n\n/**\n * Like `insert`, but throws when the index is invalid.\n *\n * @example\n * ```ts\n * insert.assert([1, 2, 3], 1, 9); // [1, 9, 3]\n * insert.assert(10, 9)([1, 2, 3]); // throws RangeError\n * ```\n */\ninsert.assert = insertAssert;\n","import type { NonEmptyArray, ReadonlyNonEmptyArray } from '../types';\n\n/**\n * Checks whether an array contains at least one element.\n *\n * @example\n * ```ts\n * isNotEmpty([1, 2]); // true\n * isNotEmpty([]); // false\n * ```\n */\nexport function isNotEmpty<T>(value: T[]): value is NonEmptyArray<T>;\nexport function isNotEmpty<T>(value: readonly T[]): value is ReadonlyNonEmptyArray<T>;\nexport function isNotEmpty(arr: readonly unknown[]): boolean {\n return arr.length > 0;\n}\n\n/**\n * Checks whether an array has no elements.\n *\n * @example\n * ```ts\n * isEmpty([]); // true\n * isEmpty([1]); // false\n * ```\n */\n// TODO: is narrowing to [] really want I want here?\nexport function isEmpty<T>(value: T[]): value is [];\nexport function isEmpty<T>(value: readonly T[]): value is readonly [];\nexport function isEmpty(arr: readonly unknown[]): boolean {\n return arr.length === 0;\n}\n","import { purry } from '../function/purry';\n\nfunction joinImplementation(arr: string[], separator: string): string {\n return arr.join(separator);\n}\n\n/**\n * Joins string array elements with a separator.\n *\n * @example\n * ```ts\n * join(['a', 'b', 'c'], '-'); // 'a-b-c'\n * join('-')(['a', 'b', 'c']); // 'a-b-c'\n * ```\n */\nexport function join(separator: string): (arr: string[]) => string;\nexport function join(arr: string[], separator: string): string;\nexport function join(...args: readonly unknown[]): unknown {\n return purry(joinImplementation, args);\n}\n","import { EmptyArrayError } from '../errors';\nimport { orThrow } from '../function/orThrow';\nimport type { ReadonlyNonEmptyArray } from '../types';\n\n/**\n * Returns the last element of an array.\n * Returns an empty-array error when the array has no elements.\n *\n * @example\n * ```ts\n * last([1, 2, 3]); // 3\n * last([]); // EmptyArrayError\n * ```\n */\nexport function last<T>(arr: ReadonlyNonEmptyArray<T>): T;\nexport function last<T>(arr: readonly T[]): EmptyArrayError | T;\nexport function last<T>(arr: readonly T[]): EmptyArrayError | T {\n if (arr.length === 0) {\n return new EmptyArrayError('Arr.last() :: array is empty');\n }\n return arr[arr.length - 1]!;\n}\n\nfunction lastAssert<T>(arr: readonly T[]): T {\n // @ts-expect-error\n return orThrow(last)(arr);\n}\n\n/**\n * Like `last`, but throws when the array is empty.\n *\n * @example\n * ```ts\n * last.assert([1, 2, 3]); // 3\n * last.assert([]); // throws EmptyArrayError\n * ```\n */\nlast.assert = lastAssert;\n","/**\n * Returns the number of elements in an array.\n *\n * @example\n * ```ts\n * length([1, 2, 3]); // 3\n * length([]); // 0\n * ```\n */\nexport function length(arr: readonly unknown[]): number {\n return arr.length;\n}\n","import { purry } from '../function/purry';\n\nfunction mapImplementation<T, U>(\n arr: readonly T[],\n callbackfn: (value: T, index: number, array: readonly T[]) => U,\n): U[] {\n return arr.map(callbackfn);\n}\n\n/**\n * Transforms each element with a callback.\n *\n * @example\n * ```ts\n * map([1, 2, 3], n => n * 2); // [2, 4, 6]\n * map(n => n * 2)([1, 2, 3]); // [2, 4, 6]\n * ```\n */\nexport function map<T, U>(callbackfn: (value: T, index: number, array: readonly T[]) => U): (arr: readonly T[]) => U[];\nexport function map<T, U>(data: readonly T[], callbackfn: (value: T, index: number, array: readonly T[]) => U): U[];\nexport function map(...args: readonly unknown[]): unknown {\n return purry(mapImplementation, args);\n}\n","/**\n * Creates a sparse array with the given length.\n *\n * @example\n * ```ts\n * ofLength(3); // [empty × 3]\n * ofLength<string>(2); // [empty × 2]\n * ```\n */\nexport function ofLength<T = unknown>(arrayLength: number): T[] {\n return Array(arrayLength) as T[];\n}\n","import { purry } from '../function/purry';\n\nfunction partitionImplementation<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): [T[], T[]] {\n const len = arr.length;\n const left: T[] = [];\n const right: T[] = [];\n for (let i = 0; i < len; i += 1) {\n const value = arr[i]!;\n if (predicate(value, i, arr)) {\n left.push(value);\n } else {\n right.push(value);\n }\n }\n return [left, right];\n}\n\n/**\n * Splits an array into two groups based on a predicate.\n * The first group contains matching elements; the second contains the rest.\n *\n * @example\n * ```ts\n * partition([1, 2, 3, 4], n => n % 2 === 0); // [[2, 4], [1, 3]]\n * partition(n => n % 2 === 0)([1, 2, 3, 4]); // [[2, 4], [1, 3]]\n * ```\n */\nexport function partition<T, S extends T>(\n predicate: (value: T, index: number, arr: readonly T[]) => value is S,\n): (data: readonly T[]) => [S[], T[]];\nexport function partition<T>(\n predicate: (value: T, index: number, arr: readonly T[]) => boolean,\n): (data: readonly T[]) => [T[], T[]];\nexport function partition<T, S extends T>(\n data: readonly T[],\n predicate: (value: T, index: number, arr: readonly T[]) => value is S,\n): [S[], T[]];\nexport function partition<T>(\n data: readonly T[],\n predicate: (value: T, index: number, arr: readonly T[]) => boolean,\n): [T[], T[]];\nexport function partition(...args: readonly unknown[]): unknown {\n return purry(partitionImplementation, args);\n}\n","import { EmptyArrayError } from '../errors';\nimport { orThrow } from '../function/orThrow';\nimport type { ReadonlyNonEmptyArray } from '../types';\n\n/**\n * Removes and returns the last element along with the remaining array.\n * Returns an empty-array error when the array has no elements.\n *\n * @example\n * ```ts\n * pop([1, 2, 3]); // [3, [1, 2]]\n * pop([]); // EmptyArrayError\n * ```\n */\nexport function pop<T>(arr: ReadonlyNonEmptyArray<T>): [T, T[]];\nexport function pop<T>(arr: readonly T[]): EmptyArrayError | [T, T[]];\nexport function pop<T>(arr: readonly T[]): EmptyArrayError | [T, T[]] {\n if (arr.length === 0) {\n return new EmptyArrayError('Arr.pop() :: array is empty');\n }\n const lastIndex = arr.length - 1;\n const last = arr[lastIndex]!;\n const tail = arr.slice(0, lastIndex);\n return [last, tail];\n}\n\nfunction popAssert<T>(arr: readonly T[]): [T, T[]] {\n // @ts-expect-error\n return orThrow(pop)(arr);\n}\n\n/**\n * Like `pop`, but throws when the array is empty.\n *\n * @example\n * ```ts\n * pop.assert([1, 2, 3]); // [3, [1, 2]]\n * pop.assert([]); // throws EmptyArrayError\n * ```\n */\npop.assert = popAssert;\n","import { purry } from '../function/purry';\n\nfunction prependImplementation<T>(arr: readonly T[], other: readonly T[]): T[] {\n return [...other, ...arr];\n}\n\n/**\n * Prepends the elements of one array to another without mutating either input.\n *\n * @example\n * ```ts\n * prepend([3, 4], [1, 2]); // [1, 2, 3, 4]\n * prepend([1, 2])([3, 4]); // [1, 2, 3, 4]\n * ```\n */\nexport function prepend<T>(other: readonly T[]): (arr: readonly T[]) => T[];\nexport function prepend<T>(arr: readonly T[], other: readonly T[]): T[];\nexport function prepend(...args: readonly unknown[]): unknown {\n return purry(prependImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction pushImplementation<T>(arr: readonly T[], value: T): T[] {\n return [...arr, value];\n}\n\n/**\n * Appends a value to an array without mutating the original.\n *\n * @example\n * ```ts\n * push([1, 2], 3); // [1, 2, 3]\n * push(3)([1, 2]); // [1, 2, 3]\n * ```\n */\nexport function push<T>(value: T): (arr: readonly T[]) => T[];\nexport function push<T>(arr: readonly T[], value: T): T[];\nexport function push(...args: readonly unknown[]): unknown {\n return purry(pushImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction reduceImplementation<T, U>(\n arr: readonly T[],\n callbackFn: (acc: U, value: T, index: number, array: readonly T[]) => U,\n initialValue: U,\n): U {\n return arr.reduce(callbackFn, initialValue);\n}\n\n/**\n * Reduces an array to a single value using an initial accumulator.\n *\n * @example\n * ```ts\n * reduce([1, 2, 3], (acc, n) => acc + n, 0); // 6\n * reduce((acc, n) => acc + n, 0)([1, 2, 3]); // 6\n * ```\n */\nexport function reduce<T, U>(\n arr: readonly T[],\n callbackFn: (acc: U, value: T, index: number, array: readonly T[]) => U,\n initialValue: U,\n): U;\nexport function reduce<T, U>(\n callbackFn: (acc: U, value: T, index: number, array: readonly T[]) => U,\n initialValue: U,\n): (arr: readonly T[]) => U;\nexport function reduce(...args: readonly unknown[]): unknown {\n return purry(reduceImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction reduce1Implementation<T>(\n arr: readonly T[],\n callbackFn: (acc: T, value: T, index: number, array: readonly T[]) => T,\n): T {\n return arr.reduce(callbackFn);\n}\n\n/**\n * Reduces a non-empty array to a single value using the first element as the initial accumulator.\n *\n * @example\n * ```ts\n * reduce1([1, 2, 3], (acc, n) => acc + n); // 6\n * reduce1((acc, n) => acc + n)([1, 2, 3]); // 6\n * ```\n */\nexport function reduce1<T>(\n arr: readonly T[],\n callbackFn: (acc: T, value: T, index: number, array: readonly T[]) => T,\n): T;\nexport function reduce1<T>(\n callbackFn: (acc: T, value: T, index: number, array: readonly T[]) => T,\n): (arr: readonly T[]) => T;\nexport function reduce1(...args: readonly unknown[]): unknown {\n return purry(reduce1Implementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction reduceRightImplementation<T, U>(\n arr: readonly T[],\n callbackFn: (acc: U, value: T, index: number, array: readonly T[]) => U,\n initialValue: U,\n): U {\n return arr.reduceRight(callbackFn, initialValue);\n}\n\n/**\n * Reduces an array from the right using an initial accumulator.\n *\n * @example\n * ```ts\n * reduceRight([1, 2, 3], (acc, n) => acc - n, 0); // -6\n * reduceRight((acc, n) => acc - n, 0)([1, 2, 3]); // -6\n * ```\n */\nexport function reduceRight<T, U>(\n arr: readonly T[],\n callbackFn: (acc: U, value: T, index: number, array: readonly T[]) => U,\n initialValue: U,\n): U;\nexport function reduceRight<T, U>(\n callbackFn: (acc: U, value: T, index: number, array: readonly T[]) => U,\n initialValue: U,\n): (arr: readonly T[]) => U;\nexport function reduceRight(...args: readonly unknown[]): unknown {\n return purry(reduceRightImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction reduceRight1Implementation<T>(\n arr: readonly T[],\n callbackFn: (acc: T, value: T, index: number, array: readonly T[]) => T,\n): T {\n return arr.reduceRight(callbackFn);\n}\n\n/**\n * Reduces a non-empty array from the right using the last element as the initial accumulator.\n *\n * @example\n * ```ts\n * reduceRight1([1, 2, 3], (acc, n) => acc - n); // 0\n * reduceRight1((acc, n) => acc - n)([1, 2, 3]); // 0\n * ```\n */\nexport function reduceRight1<T>(\n arr: readonly T[],\n callbackFn: (acc: T, value: T, index: number, array: readonly T[]) => T,\n): T;\nexport function reduceRight1<T>(\n callbackFn: (acc: T, value: T, index: number, array: readonly T[]) => T,\n): (arr: readonly T[]) => T;\nexport function reduceRight1(...args: readonly unknown[]): unknown {\n return purry(reduceRight1Implementation, args);\n}\n","/**\n * Returns all elements except the first.\n *\n * @example\n * ```ts\n * rest([1, 2, 3]); // [2, 3]\n * rest([1]); // []\n * ```\n */\nexport function rest<T>(arr: readonly T[]): T[] {\n const [, ...tail] = arr;\n return tail;\n}\n","/**\n * Returns a reversed copy of an array without mutating the original.\n *\n * @example\n * ```ts\n * reverse([1, 2, 3]); // [3, 2, 1]\n * ```\n */\nexport function reverse<T>(arr: readonly T[]): T[] {\n return arr.toReversed();\n}\n","import { purry } from '../function';\n\nfunction scanImplementation<T, U>(\n arr: T[],\n callbackFn: (acc: U, value: T, index: number, array: readonly T[]) => U,\n initialValue: U,\n): U[] {\n const len = arr.length;\n const result = Array(len + 1) as U[];\n let acc = initialValue;\n result[0] = acc;\n for (let index = 0; index < len; index += 1) {\n acc = callbackFn(acc, arr[index]!, index, arr);\n result[index + 1] = acc;\n }\n return result;\n}\n\n/**\n * Returns the intermediate accumulator values produced while reducing an array.\n * The first element is the initial value; each subsequent element is the accumulator after processing one more item.\n *\n * @example\n * ```ts\n * scan([1, 2, 3], (acc, n) => acc + n, 0); // [0, 1, 3, 6]\n * scan((acc, n) => acc + n, 0)([1, 2, 3]); // [0, 1, 3, 6]\n * ```\n */\nexport function scan<T, U>(\n callbackFn: (acc: U, value: T, index: number, array: readonly T[]) => U,\n initialValue: U,\n): (arr: T[]) => U[];\nexport function scan<T, U>(\n arr: T[],\n callbackFn: (acc: U, value: T, index: number, array: readonly T[]) => U,\n initialValue: U,\n): U[];\nexport function scan(...args: unknown[]): unknown {\n return purry(scanImplementation, args);\n}\n","import { EmptyArrayError } from '../errors';\nimport { orThrow } from '../function/orThrow';\nimport type { ReadonlyNonEmptyArray } from '../types';\n\n/**\n * Removes and returns the first element along with the remaining array.\n * Returns an empty-array error when the array has no elements.\n *\n * @example\n * ```ts\n * shift([1, 2, 3]); // [1, [2, 3]]\n * shift([]); // EmptyArrayError\n * ```\n */\nexport function shift<T>(arr: ReadonlyNonEmptyArray<T>): [T, T[]];\nexport function shift<T>(arr: readonly T[]): EmptyArrayError | [T, T[]] {\n if (arr.length === 0) {\n return new EmptyArrayError('Arr.shift() :: array is empty');\n }\n const [head, ...tail] = arr;\n return [head!, tail];\n}\n\nfunction shiftAssert<T>(arr: readonly T[]): [T, T[]] {\n // @ts-expect-error\n return orThrow(shift)(arr);\n}\n\n/**\n * Like `shift`, but throws when the array is empty.\n *\n * @example\n * ```ts\n * shift.assert([1, 2, 3]); // [1, [2, 3]]\n * shift.assert([]); // throws EmptyArrayError\n * ```\n */\nshift.assert = shiftAssert;\n","/**\n * Returns a shuffled copy of an array using the Fisher-Yates algorithm.\n *\n * @example\n * ```ts\n * shuffle([1, 2, 3, 4]); // e.g. [3, 1, 4, 2]\n * ```\n */\nexport function shuffle<T>(arr: readonly T[]): T[] {\n const result = [...arr];\n const len = result.length;\n for (let i = 0; i < len; i += 1) {\n const rand = i + Math.floor(Math.random() * (len - i));\n const value = result[rand]!;\n result[rand] = result[i]!;\n result[i] = value;\n }\n return result;\n}\n","import { purry } from '../function/purry';\n\nfunction someImplementation<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): boolean {\n return arr.some(predicate);\n}\n\n/**\n * Tests whether at least one element satisfies a predicate.\n *\n * @example\n * ```ts\n * some([1, 2, 3], n => n > 2); // true\n * some(n => n > 2)([1, 2, 3]); // true\n * ```\n */\nexport function some<T>(\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): (arr: readonly T[]) => T[];\nexport function some<T>(arr: readonly T[], predicate: (value: T, index: number, array: readonly T[]) => boolean): T[];\nexport function some(...args: readonly unknown[]): unknown {\n return purry(someImplementation, args);\n}\n","import { purry } from '../function/purry';\nimport type { Order } from '../order/order.constants';\n\nfunction sortImplementation<T>(arr: T[], compareFn: (left: T, right: T) => Order): T[] {\n return arr.toSorted(compareFn);\n}\n\n/**\n * Returns a sorted copy of an array using a comparison function.\n *\n * @example\n * ```ts\n * sort([3, 1, 2], (a, b) => a - b); // [1, 2, 3]\n * sort((a, b) => a - b)([3, 1, 2]); // [1, 2, 3]\n * ```\n */\nexport function sort<T>(compareFn: (left: T, right: T) => Order): (arr: T[]) => T[];\nexport function sort<T>(arr: T[], compareFn: (left: T, right: T) => Order): T[];\nexport function sort(...args: readonly unknown[]): unknown {\n return purry(sortImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction sortByImplementation<T>(arr: T[], mapFn: (value: T) => Date | boolean | number | string): T[] {\n return arr.toSorted((left, right) => {\n const l = mapFn(left);\n const r = mapFn(right);\n if (l < r) return -1;\n if (l > r) return 0;\n return 0;\n });\n}\n\n/**\n * Returns a sorted copy of an array by mapping each element to a comparable value first.\n *\n * @example\n * ```ts\n * sortBy([{ n: 3 }, { n: 1 }], x => x.n); // [{ n: 1 }, { n: 3 }]\n * sortBy(x => x.n)([{ n: 3 }, { n: 1 }]); // [{ n: 1 }, { n: 3 }]\n * ```\n */\nexport function sortBy<T>(mapFn: (value: T) => Date | boolean | number | string): (arr: T[]) => T[];\nexport function sortBy<T>(arr: T[], mapFn: (value: T) => Date | boolean | number | string): T[];\nexport function sortBy(...args: readonly unknown[]): unknown {\n return purry(sortByImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction takeImplementation<T>(arr: readonly T[], limit: number): T[] {\n if (limit < 1) {\n throw new RangeError(`Arr.take() :: ${limit} must be a positive integer`);\n }\n\n return arr.slice(0, limit);\n}\n\n/**\n * Returns the first `limit` elements from an array.\n *\n * @example\n * ```ts\n * take([1, 2, 3, 4], 2); // [1, 2]\n * take(3)([1, 2, 3, 4]); // [1, 2, 3]\n * ```\n */\nexport function take<T>(limit: number): (arr: readonly T[]) => T[];\nexport function take<T>(arr: readonly T[], limit: number): T[];\nexport function take(...args: readonly unknown[]): unknown {\n return purry(takeImplementation, args);\n}\n","/**\n * Transposes a matrix so rows become columns and columns become rows.\n *\n * @example\n * ```ts\n * transpose([[1, 2], [3, 4], [5, 6]]); // [[1, 3, 5], [2, 4, 6]]\n * ```\n */\nexport function transpose<T>(arr: T[][]): T[][] {\n // pre-populate result with empty arrays of max length of inners\n const maxLen = arr.reduce((acc, inner) => Math.max(acc, inner.length), 0);\n return Array(maxLen)\n .fill(undefined)\n .map((_, index) => arr.map(inner => inner[index]!));\n}\n","/**\n * Returns a copy of an array with duplicate values removed.\n *\n * @example\n * ```ts\n * unique([1, 2, 2, 3]); // [1, 2, 3]\n * unique([]); // []\n * ```\n */\nexport function unique<T>(arr: readonly T[]): T[] {\n if (arr.length === 0) {\n return [];\n }\n return Array.from(new Set(arr));\n}\n","import { purry } from '../function/purry';\n\nfunction uniqueByImplementation<T>(arr: readonly T[], mapFn: (value: T) => unknown): T[] {\n if (arr.length === 0) {\n return [];\n }\n const map = new Map<unknown, T>();\n arr.forEach((_, index) => {\n const value = arr[index]!;\n const key = mapFn(value);\n if (!map.has(key)) {\n map.set(key, value);\n }\n });\n return Array.from(map.values());\n}\n\n/**\n * Returns a copy of an array with duplicates removed by a derived key.\n * Keeps the first occurrence for each key.\n *\n * @example\n * ```ts\n * uniqueBy([{ id: 1 }, { id: 2 }, { id: 1 }], x => x.id); // [{ id: 1 }, { id: 2 }]\n * uniqueBy(x => x.id)([{ id: 1 }, { id: 2 }, { id: 1 }]); // [{ id: 1 }, { id: 2 }]\n * ```\n */\nexport function uniqueBy<T>(mapFn: (value: T) => unknown): (arr: T[]) => T[];\nexport function uniqueBy<T>(arr: T[], mapFn: (value: T) => unknown): T[];\nexport function uniqueBy(...args: unknown[]): unknown {\n return purry(uniqueByImplementation, args);\n}\n","/**\n * Returns a copy of an array with duplicates removed using a custom equality function.\n * Keeps the first occurrence of each equivalent value.\n *\n * @example\n * ```ts\n * uniqueWith([1, 1.0, 2], (a, b) => a === b); // [1, 2]\n * uniqueWith([], (a, b) => a === b); // []\n * ```\n */\nexport function uniqueWith<T>(arr: readonly T[], isEqual: (left: T, right: T) => boolean): T[] {\n if (arr.length === 0) {\n return [];\n }\n return arr.filter((value, index) => {\n const foundIndex = arr.find((otherValue, otherIndex) => index === otherIndex || isEqual(value, otherValue)) ?? -1; // logically this should never happen, but handle it to prevent runtime errors\n // only keep if foundIndex is same as current index.\n // Else it means that another entry was found to be isEqual further along in the iteration\n return index === foundIndex;\n });\n}\n","import { purry } from '../function/purry';\n\nfunction unshiftImplementation<T>(arr: readonly T[], value: T): T[] {\n return [value, ...arr];\n}\n\n/**\n * Prepends a value to an array without mutating the original.\n *\n * @example\n * ```ts\n * unshift([1, 2], 0); // [0, 1, 2]\n * unshift(0)([1, 2]); // [0, 1, 2]\n * ```\n */\nexport function unshift<T>(value: T): (arr: readonly T[]) => T[];\nexport function unshift<T>(arr: readonly T[], value: T): T[];\nexport function unshift(...args: readonly unknown[]): unknown {\n return purry(unshiftImplementation, args);\n}\n","import { orThrow } from '../function/orThrow';\nimport { purry } from '../function/purry';\n\nfunction updateImplementation<T>(arr: readonly T[], index: number, fn: (valueR: T) => T): RangeError | T[] {\n if (index >= arr.length || index < -arr.length) {\n return new RangeError(`Arr.update() :: Invalid index : ${index}`);\n }\n const value = arr.at(index) as T;\n\n const updatedValue = fn(value);\n\n return arr.with(index, updatedValue);\n}\n\n/**\n * Replaces the element at the given index using a callback without mutating the original array.\n * Returns a range error when the index is out of bounds.\n *\n * @example\n * ```ts\n * update([1, 2, 3], 1, n => n * 10); // [1, 20, 3]\n * update(1, n => n * 10)([1, 2, 3]); // [1, 20, 3]\n * ```\n */\nexport function update<T>(index: number, fn: (value: T) => T): (arr: readonly T[]) => RangeError | T[];\nexport function update<T>(arr: readonly T[], index: number, fn: (value: T) => T): RangeError | T[];\nexport function update(...args: readonly unknown[]): unknown {\n return purry(updateImplementation, args);\n}\n\nfunction updateAssert<T>(index: number, fn: (value: T) => T): (arr: readonly T[]) => T[];\nfunction updateAssert<T>(arr: readonly T[], index: number, fn: (value: T) => T): T[];\nfunction updateAssert(...args: readonly unknown[]): unknown {\n return purry(orThrow(updateImplementation), args);\n}\n\n/**\n * Like `update`, but throws when the index is out of bounds.\n *\n * @example\n * ```ts\n * update.assert([1, 2, 3], 1, n => n * 10); // [1, 20, 3]\n * update.assert(10, n => n)([1, 2, 3]); // throws RangeError\n * ```\n */\nupdate.assert = updateAssert;\n","import { orThrow } from '../function/orThrow';\nimport { purry } from '../function/purry';\n\nfunction windowImplementation<T>(arr: readonly T[], size: number): T[][] {\n if (size < 1) {\n throw new RangeError(`Arr.window() :: ${size} must be a positive integer`);\n }\n\n const limit = arr.length - (size - 1);\n\n if (limit < 0) return [];\n\n return Array(limit)\n .fill(undefined)\n .map((_, index) => arr.slice(index, index + size));\n}\n\n/**\n * Creates a sliding window of consecutive elements with the given size.\n * Returns an empty array when the window size is larger than the input.\n *\n * @example\n * ```ts\n * window([1, 2, 3, 4], 2); // [[1, 2], [2, 3], [3, 4]]\n * window(3)([1, 2, 3, 4]); // [[1, 2, 3], [2, 3, 4]]\n * ```\n */\nexport function window(size: number): <T>(arr: readonly T[]) => T[][];\nexport function window<T>(arr: readonly T[], size: number): T[][];\nexport function window(...args: unknown[]): unknown {\n return purry(windowImplementation, args);\n}\n\nfunction windowAssert<T>(size: number): (arr: readonly T[]) => T[][];\nfunction windowAssert<T>(arr: readonly T[], size: number): T[][];\nfunction windowAssert(...args: readonly unknown[]): unknown {\n return purry(orThrow(windowImplementation), args);\n}\n\n/**\n * Like `window`, but throws when the size is not a positive integer.\n *\n * @example\n * ```ts\n * window.assert([1, 2, 3, 4], 2); // [[1, 2], [2, 3], [3, 4]]\n * window.assert(0)([1, 2, 3]); // throws RangeError\n * ```\n */\nwindow.assert = windowAssert;\n","import { purry } from '../function/purry';\n\nfunction zipImplementation<L, R>(arr: readonly L[], other: readonly R[]): [L, R][] {\n return Array(Math.min(arr.length, other.length))\n .fill(undefined)\n .map<[L, R]>((_, index) => [arr[index]!, other[index]!] as const);\n}\n\n/**\n * Pairs elements from two arrays up to the length of the shorter one.\n *\n * @example\n * ```ts\n * zip([1, 2, 3], ['a', 'b']); // [[1, 'a'], [2, 'b']]\n * zip(['a', 'b'])([1, 2, 3]); // [[1, 'a'], [2, 'b']]\n * ```\n */\nexport function zip<L, R>(other: readonly R[]): (arr: readonly L[]) => [L, R][];\nexport function zip<L, R>(arr: readonly L[], other: readonly R[]): [L, R][];\nexport function zip(...args: unknown[]): unknown {\n return purry(zipImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction zipWithImplementation<L, R, U>(arr: readonly L[], other: readonly R[], fn: (l: L, R: R) => U): U[] {\n return Array(Math.min(arr.length, other.length))\n .fill(undefined)\n .map<U>((_, index) => fn(arr[index]!, other[index]!));\n}\n\n/**\n * Combines two arrays element-wise using a callback, up to the length of the shorter one.\n *\n * @example\n * ```ts\n * zipWith([1, 2, 3], [10, 20], (a, b) => a + b); // [11, 22]\n * zipWith([10, 20], (a, b) => a + b)([1, 2, 3]); // [11, 22]\n * ```\n */\nexport function zipWith<L, R, U>(other: readonly R[], fn: (l: L, R: R) => U): (arr: readonly L[]) => U[];\nexport function zipWith<L, R, U>(arr: readonly L[], other: readonly R[], fn: (l: L, R: R) => U): U[];\nexport function zipWith(...args: unknown[]): unknown {\n return purry(zipWithImplementation, args);\n}\n"],"mappings":"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"}
@@ -1,12 +1,14 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_purry = require("../purry-B2_0DGLV.cjs");
3
- const require_function = require("../function-CB82a2GS.cjs");
2
+ const require_function = require("../function-DYPifnmg.cjs");
3
+ const require_purry = require("../purry-Dqp_F64t.cjs");
4
4
  exports.always = require_function.always;
5
5
  exports.compose = require_function.compose;
6
6
  exports.composed = require_function.composed;
7
+ exports.identity = require_function.identity;
7
8
  exports.memoizeOne = require_function.memoizeOne;
8
9
  exports.memoizeOneImplementation = require_function.memoizeOneImplementation;
9
10
  exports.noop = require_function.noop;
11
+ exports.orThrow = require_function.orThrow;
10
12
  exports.pipe = require_function.pipe;
11
13
  exports.piped = require_function.piped;
12
14
  exports.purry = require_purry.purry;
@@ -1,9 +1,29 @@
1
1
  import { n as Err, o as Ok, r as Fn } from "../types-D8f67ZCe.cjs";
2
2
 
3
3
  //#region src/function/always.d.ts
4
+ /**
5
+ * Returns a function that always yields the same value, ignoring its arguments.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * always(42)(); // 42
10
+ * always('hi')(1, 2, 3); // 'hi'
11
+ * ```
12
+ */
4
13
  declare function always<T>(value: T): (...args: unknown[]) => T;
5
14
  //#endregion
6
15
  //#region src/function/compose.d.ts
16
+ /**
17
+ * Composes a value through a sequence of functions from right to left.
18
+ * Functions are listed last-to-first; the rightmost function is applied first.
19
+ * Stops and returns the first error encountered in the pipeline.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * compose(1, n => n * 2, n => n + 1); // 4
24
+ * compose('a', s => s + '!', s => s.toUpperCase()); // 'A!'
25
+ * ```
26
+ */
7
27
  declare function compose<A, B>(input: A, fn1: Fn<Ok<A>, B>): B | Err<A>;
8
28
  declare function compose<A, B, C>(input: A, fn2: Fn<Ok<B>, C>, fn1: Fn<Ok<A>, B>): C | Err<A> | Err<B>;
9
29
  declare function compose<A, B, C, D>(input: A, fn3: Fn<Ok<C>, D>, fn2: Fn<Ok<B>, C>, fn1: Fn<Ok<A>, B>): D | Err<A> | Err<B> | Err<C>;
@@ -15,6 +35,17 @@ declare function compose<A, B, C, D, E, F, G, H, I>(input: A, fn8: Fn<Ok<H>, I>,
15
35
  declare function compose<A, B, C, D, E, F, G, H, I, J>(input: A, fn9: Fn<Ok<I>, J>, fn8: Fn<Ok<H>, I>, fn7: Fn<Ok<G>, H>, fn6: Fn<Ok<F>, G>, fn5: Fn<Ok<E>, F>, fn4: Fn<Ok<D>, E>, fn3: Fn<Ok<C>, D>, fn2: Fn<Ok<B>, C>, fn1: Fn<Ok<A>, B>): Err<A> | Err<B> | Err<C> | Err<D> | Err<E> | Err<F> | Err<G> | Err<H> | Err<I> | J;
16
36
  //#endregion
17
37
  //#region src/function/composed.d.ts
38
+ /**
39
+ * Returns a function that composes a value through a sequence of functions from right to left.
40
+ * Functions are listed last-to-first; the rightmost function is applied first.
41
+ * Stops and returns the first error encountered in the pipeline.
42
+ *
43
+ * @example
44
+ * ```ts
45
+ * composed(n => n * 2, n => n + 1)(1); // 4
46
+ * composed(s => s + '!', s => s.toUpperCase())('a'); // 'A!'
47
+ * ```
48
+ */
18
49
  declare function composed<A, B>(fn1: Fn<Ok<A>, B>): (input: A) => B | Err<A>;
19
50
  declare function composed<A, B, C>(fn2: Fn<Ok<B>, C>, fn1: Fn<Ok<A>, B>): (input: A) => C | Err<A> | Err<B>;
20
51
  declare function composed<A, B, C, D>(fn3: Fn<Ok<C>, D>, fn2: Fn<Ok<B>, C>, fn1: Fn<Ok<A>, B>): (input: A) => D | Err<A> | Err<B> | Err<C>;
@@ -25,6 +56,18 @@ declare function composed<A, B, C, D, E, F, G, H>(fn7: Fn<Ok<G>, H>, fn6: Fn<Ok<
25
56
  declare function composed<A, B, C, D, E, F, G, H, I>(fn8: Fn<Ok<H>, I>, fn7: Fn<Ok<G>, H>, fn6: Fn<Ok<F>, G>, fn5: Fn<Ok<E>, F>, fn4: Fn<Ok<D>, E>, fn3: Fn<Ok<C>, D>, fn2: Fn<Ok<B>, C>, fn1: Fn<Ok<A>, B>): (input: A) => Err<A> | Err<B> | Err<C> | Err<D> | Err<E> | Err<F> | Err<G> | Err<H> | I;
26
57
  declare function composed<A, B, C, D, E, F, G, H, I, J>(fn9: Fn<Ok<I>, J>, fn8: Fn<Ok<H>, I>, fn7: Fn<Ok<G>, H>, fn6: Fn<Ok<F>, G>, fn5: Fn<Ok<E>, F>, fn4: Fn<Ok<D>, E>, fn3: Fn<Ok<C>, D>, fn2: Fn<Ok<B>, C>, fn1: Fn<Ok<A>, B>): (input: A) => Err<A> | Err<B> | Err<C> | Err<D> | Err<E> | Err<F> | Err<G> | Err<H> | Err<I> | J;
27
58
  //#endregion
59
+ //#region src/function/identity.d.ts
60
+ /**
61
+ * Returns its argument unchanged.
62
+ *
63
+ * @example
64
+ * ```ts
65
+ * identity(42); // 42
66
+ * identity('hello'); // 'hello'
67
+ * ```
68
+ */
69
+ declare function identity<T>(value: T): T;
70
+ //#endregion
28
71
  //#region src/function/memoizeOne.d.ts
29
72
  type ArgumentCompareFn<TFunc extends (...args: unknown[]) => unknown> = (newArgs: Parameters<TFunc>, lastArgs: Parameters<TFunc>) => boolean;
30
73
  type MemoizedFn<TFunc extends (this: unknown, ...args: unknown[]) => unknown> = {
@@ -32,6 +75,18 @@ type MemoizedFn<TFunc extends (this: unknown, ...args: unknown[]) => unknown> =
32
75
  (this: ThisParameterType<TFunc>, ...args: Parameters<TFunc>): ReturnType<TFunc>;
33
76
  };
34
77
  declare function memoizeOneImplementation<TFunc extends (this: unknown, ...args: unknown[]) => unknown>(fn: TFunc, argumentCompareFn: ArgumentCompareFn<TFunc>): MemoizedFn<TFunc>;
78
+ /**
79
+ * Memoizes a function so that it reuses the last result when called with the same arguments.
80
+ * Uses reference equality to compare arguments.
81
+ *
82
+ * @example
83
+ * ```ts
84
+ * const add = memoizeOne((a: number, b: number) => a + b);
85
+ * add(1, 2); // 3 (computed)
86
+ * add(1, 2); // 3 (cached)
87
+ * add.clear();
88
+ * ```
89
+ */
35
90
  declare function memoizeOne<TFunc extends (this: unknown, ...args: unknown[]) => unknown>(fn: TFunc): MemoizedFn<TFunc>;
36
91
  declare namespace memoizeOne {
37
92
  var _a: typeof memoizeOneImplementation;
@@ -40,18 +95,40 @@ declare namespace memoizeOne {
40
95
  //#endregion
41
96
  //#region src/function/noop.d.ts
42
97
  /**
43
- * No operation function.
44
- *
45
- * @param args - The arguments to pass to the function.
98
+ * A function that does nothing.
46
99
  *
47
100
  * @example
48
101
  * ```ts
49
102
  * noop(); // void
103
+ * noop(1, 2, 3); // void
50
104
  * ```
51
105
  */
52
106
  declare function noop(...args: unknown[]): void;
53
107
  //#endregion
108
+ //#region src/function/orThrow.d.ts
109
+ /**
110
+ * Wraps a function so that an error result is thrown instead of returned.
111
+ *
112
+ * @example
113
+ * ```ts
114
+ * const parse = orThrow((s: string) => (s ? s : new Error('empty')));
115
+ * parse('ok'); // 'ok'
116
+ * parse(''); // throws Error
117
+ * ```
118
+ */
119
+ declare function orThrow(fn: (...args: readonly any[]) => unknown): (...args: readonly unknown[]) => unknown;
120
+ //#endregion
54
121
  //#region src/function/pipe.d.ts
122
+ /**
123
+ * Pipes a value through a sequence of functions from left to right.
124
+ * Stops and returns the first error encountered in the pipeline.
125
+ *
126
+ * @example
127
+ * ```ts
128
+ * pipe(1, n => n + 1, n => n * 2); // 4
129
+ * pipe('a', s => s.toUpperCase(), s => s + '!'); // 'A!'
130
+ * ```
131
+ */
55
132
  declare function pipe<A, B>(value: A, fn1: Fn<Ok<A>, B>): B | Err<A>;
56
133
  declare function pipe<A, B, C>(value: A, fn1: Fn<Ok<A>, B>, fn2: Fn<Ok<B>, C>): C | Err<A> | Err<B>;
57
134
  declare function pipe<A, B, C, D>(value: A, fn1: Fn<Ok<A>, B>, fn2: Fn<Ok<B>, C>, fn3: Fn<Ok<C>, D>): D | Err<A> | Err<B> | Err<C>;
@@ -63,6 +140,16 @@ declare function pipe<A, B, C, D, E, F, G, H, I>(value: A, fn1: Fn<Ok<A>, B>, fn
63
140
  declare function pipe<A, B, C, D, E, F, G, H, I, J>(value: A, fn1: Fn<Ok<A>, B>, fn2: Fn<Ok<B>, C>, fn3: Fn<Ok<C>, D>, fn4: Fn<Ok<D>, E>, fn5: Fn<Ok<E>, F>, fn6: Fn<Ok<F>, G>, fn7: Fn<Ok<G>, H>, fn8: Fn<Ok<H>, I>, fn9: Fn<Ok<I>, J>): Err<A> | Err<B> | Err<C> | Err<D> | Err<E> | Err<F> | Err<G> | Err<H> | Err<I> | J;
64
141
  //#endregion
65
142
  //#region src/function/piped.d.ts
143
+ /**
144
+ * Returns a function that pipes a value through a sequence of functions from left to right.
145
+ * Stops and returns the first error encountered in the pipeline.
146
+ *
147
+ * @example
148
+ * ```ts
149
+ * piped(n => n + 1, n => n * 2)(1); // 4
150
+ * piped(s => s.toUpperCase(), s => s + '!')('a'); // 'A!'
151
+ * ```
152
+ */
66
153
  declare function piped<A, B>(fn1: Fn<Ok<A>, B>): (input: A) => B | Err<A>;
67
154
  declare function piped<A, B, C>(fn1: Fn<Ok<A>, B>, fn2: Fn<Ok<B>, C>): (input: A) => C | Err<A> | Err<B>;
68
155
  declare function piped<A, B, C, D>(fn1: Fn<Ok<A>, B>, fn2: Fn<Ok<B>, C>, fn3: Fn<Ok<C>, D>): (input: A) => D | Err<A> | Err<B> | Err<C>;
@@ -75,33 +162,61 @@ declare function piped<A, B, C, D, E, F, G, H, I, J>(fn1: Fn<Ok<A>, B>, fn2: Fn<
75
162
  //#endregion
76
163
  //#region src/function/purry.d.ts
77
164
  /**
78
- * Purry = **P**ipe + C**urry*
165
+ * Enables pipe-style partial application for multi-argument functions.
166
+ * With all arguments, calls the function immediately; with one fewer, returns a function that accepts the remaining argument.
167
+ * Throws when called with any other number of arguments.
79
168
  *
80
- * Named as such to simulate how Elixir's pipe operator expects you to omit the first argument, the "data argument".
81
- * This function essentially takes any function of at lest 2 arguments and returns a function that:
82
- * * If it receives `n` args, it calls the function immediately
83
- * * If it receives `n - 1` args, it returns a function accepting the single data argument
84
- * * Any calls with incorrect number of arguments will throw
85
- *
86
- * Credit to Remeda for the name
87
- * @throws {Error}
169
+ * @example
170
+ * ```ts
171
+ * purry((data, n) => data.slice(0, n), [2])([1, 2, 3]); // [1, 2]
172
+ * purry((data, n) => data.slice(0, n), [[1, 2, 3], 2]); // [1, 2]
173
+ * ```
88
174
  */
89
175
  declare function purry(fn: (...args: any) => unknown, args: readonly unknown[]): unknown;
90
176
  //#endregion
91
177
  //#region src/function/tap.d.ts
178
+ /**
179
+ * Runs a side-effect callback on a value and returns the original value unchanged.
180
+ *
181
+ * @example
182
+ * ```ts
183
+ * tap(console.log)(42); // logs 42, returns 42
184
+ * tap(n => console.log(n * 2))([1, 2, 3]); // logs [2, 4, 6], returns [1, 2, 3]
185
+ * ```
186
+ */
92
187
  declare function tap<T>(callbackFn: (data: T) => void): (data: T) => T;
93
188
  //#endregion
94
189
  //#region src/function/unless.d.ts
190
+ /**
191
+ * Applies a transformation when a predicate is false; otherwise returns the value unchanged.
192
+ *
193
+ * @example
194
+ * ```ts
195
+ * unless(1, n => n > 1, n => n * 10); // 10
196
+ * unless(n => n > 1, n => n * 10)(1); // 10
197
+ * unless(2, n => n > 1, n => n * 10); // 2
198
+ * ```
199
+ */
95
200
  declare function unless<T, S extends T>(predicate: (data: T) => data is S, fn: (data: S) => T): (data: T) => T;
96
201
  declare function unless<T>(predicate: (data: T) => boolean, fn: (data: T) => T): (data: T) => T;
97
202
  declare function unless<T, S extends T>(data: T, predicate: (data: T) => data is S, fn: (data: S) => T): T;
98
203
  declare function unless<T>(data: T, predicate: (data: T) => boolean, fn: (data: T) => T): T;
99
204
  //#endregion
100
205
  //#region src/function/when.d.ts
206
+ /**
207
+ * Applies a transformation when a predicate is true; otherwise returns the value unchanged.
208
+ *
209
+ * @example
210
+ * ```ts
211
+ * when(2, n => n > 1, n => n * 10); // 20
212
+ * when(n => n > 1, n => n * 10)(2); // 20
213
+ * when(1, n => n > 1, n => n * 10); // 1
214
+ * ```
215
+ */
101
216
  declare function when<T, S extends T>(predicate: (data: T) => data is S, fn: (data: S) => T): (data: T) => T;
102
217
  declare function when<T>(predicate: (data: T) => boolean, fn: (data: T) => T): (data: T) => T;
103
218
  declare function when<T, S extends T>(data: T, predicate: (data: T) => data is S, fn: (data: S) => T): T;
104
219
  declare function when<T>(data: T, predicate: (data: T) => boolean, fn: (data: T) => T): T;
105
220
  //#endregion
106
- export { ArgumentCompareFn, MemoizedFn, always, compose, composed, memoizeOne, memoizeOneImplementation, noop, pipe, piped, purry, tap, unless, when };
221
+ export { ArgumentCompareFn, MemoizedFn, always, compose, composed, identity, memoizeOne, memoizeOneImplementation, noop, orThrow, pipe, piped, purry, tap, unless, when };
107
222
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/function/always.ts","../../src/function/compose.ts","../../src/function/composed.ts","../../src/function/memoizeOne.ts","../../src/function/noop.ts","../../src/function/pipe.ts","../../src/function/piped.ts","../../src/function/purry.ts","../../src/function/tap.ts","../../src/function/unless.ts","../../src/function/when.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/function/always.ts","../../src/function/compose.ts","../../src/function/composed.ts","../../src/function/identity.ts","../../src/function/memoizeOne.ts","../../src/function/noop.ts","../../src/function/orThrow.ts","../../src/function/pipe.ts","../../src/function/piped.ts","../../src/function/purry.ts","../../src/function/tap.ts","../../src/function/unless.ts","../../src/function/when.ts"],"mappings":"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"}