@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.cjs","names":["purry","purry","purry","purry","purry","purry","purry"],"sources":["../../src/tuple/at.ts","../../src/tuple/fanOut.ts","../../src/tuple/first.ts","../../src/tuple/insert.ts","../../src/tuple/mapBoth.ts","../../src/tuple/mapEach.ts","../../src/tuple/mapFirst.ts","../../src/tuple/mapSecond.ts","../../src/tuple/second.ts","../../src/tuple/swap.ts"],"sourcesContent":["import { purry } from '../function/purry';\n\nfunction at2Implementation<T>(tuple: T[], index: number): T {\n if (index < 0) {\n throw new RangeError(`Tuple.at() :: ${index} must be a positive integer`);\n }\n if (index >= tuple.length) {\n throw new RangeError(`Tuple.at() :: ${index} is out of bounds`);\n }\n\n return tuple[index]!;\n}\n\n/**\n * Get an element from a tuple by index.\n *\n * @param tuple - The tuple to get the element from.\n * @param index - The index of the element to get.\n *\n * @example\n * ```ts\n * at(0, [1, 2, 3]) // 1\n * at(1, [1, 2, 3]) // 2\n * at([1, 2, 3], 0) // 1\n * at([1, 2, 3], 1) // 2\n * ```\n *\n * @throws {RangeError}\n */\nexport function at<T>(index: 0): (tuple: [T, ...unknown[]]) => T;\nexport function at<T>(index: 1): (tuple: [unknown, T, ...unknown[]]) => T;\nexport function at<T>(index: 2): (tuple: [unknown, unknown, T, ...unknown[]]) => T;\nexport function at<T>(index: 3): (tuple: [unknown, unknown, unknown, T, ...unknown[]]) => T;\nexport function at<T>(index: 4): (tuple: [unknown, unknown, unknown, unknown, T, ...unknown[]]) => T;\nexport function at<T>(index: 5): (tuple: [unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]) => T;\nexport function at<T>(index: 6): (tuple: [unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]) => T;\nexport function at<T>(tuple: [T, ...unknown[]], index: 0): T;\nexport function at<T>(tuple: [unknown, T, ...unknown[]], index: 1): T;\nexport function at<T>(tuple: [unknown, unknown, T, ...unknown[]], index: 2): T;\nexport function at<T>(tuple: [unknown, unknown, unknown, T, ...unknown[]], index: 3): T;\nexport function at<T>(tuple: [unknown, unknown, unknown, unknown, T, ...unknown[]], index: 4): T;\nexport function at<T>(tuple: [unknown, unknown, unknown, unknown, unknown, T, ...unknown[]], index: 5): T;\nexport function at<T>(tuple: [unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]], index: 6): T;\nexport function at(...args: readonly unknown[]): unknown {\n return purry(at2Implementation, args);\n}\n","import { purry } from '../function/purry';\n\nexport function fanOutImplementation<A, C, D>(value: A, fn1: (value: A) => C, fn2: (value: A) => D): [C, D] {\n return [fn1(value), fn2(value)];\n}\n\n/**\n * Takes a value and two functions and returns a tuple of the results of the functions.\n *\n * @public\n * @category Tuple\n * @param value - The value to apply the functions to.\n * @param fn1 - The first function to apply to the value.\n * @param fn2 - The second function to apply to the value.\n *\n * @example\n * ```ts\n * fanOut((x) => x * 2, (x) => x + 1, 2); // [4, 3]\n * ```\n */\nexport function fanOut<A, C, D>(fn1: (value: A) => C, fn2: (value: A) => D): (value: A) => [C, D];\nexport function fanOut<A, C, D>(value: A, fn1: (value: A) => C, fn2: (value: A) => D): [C, D];\nexport function fanOut(...args: readonly unknown[]): unknown {\n return purry(fanOutImplementation, args);\n}\n","/**\n * Returns the first element of a tuple with at least one element.\n *\n * @param tuple - A non-empty tuple.\n * @returns The element at index `0`.\n *\n * @example\n * ```ts\n * first([1, 2]); // 1\n * ```\n *\n * @throws {RangeError} When the tuple has fewer than one element.\n */\nexport function first<T>(tuple: [T, ...unknown[]]): T {\n if (tuple.length < 1) {\n throw new RangeError('Tuple.first() :: received a tuple with less than 1 element');\n }\n return tuple[0];\n}\n","/* eslint-disable @typescript-eslint/unified-signatures */\nimport { purry } from '../function/purry';\n\nfunction updateImplementation<T>(tuple: T[], index: number, value: T): T[] {\n return tuple.with(index, value);\n}\n\n/**\n * Returns a new tuple with the element at `index` replaced by `value`.\n *\n * @param index - Zero-based index of the element to replace.\n * @param value - Replacement value.\n * @param tuple - The source tuple.\n *\n * @example\n * ```ts\n * insert([1, 2, 3], 1, 99); // [1, 99, 3]\n * insert(1, 99)([1, 2, 3]); // [1, 99, 3]\n * ```\n *\n * @throws {RangeError} When `index` is negative or out of bounds (from the underlying `with` call).\n */\nexport function insert<T>(index: 0, value: T): <U extends readonly [T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(index: 1, value: T): <U extends readonly [unknown, T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(index: 2, value: T): <U extends readonly [unknown, unknown, T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(\n index: 3,\n value: T,\n): <U extends readonly [unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(\n index: 4,\n value: T,\n): <U extends readonly [unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(\n index: 5,\n value: T,\n): <U extends readonly [unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(\n index: 6,\n value: T,\n): <U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(\n index: 7,\n value: T,\n): <U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(\n index: 8,\n value: T,\n): <U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(\n tuple: U,\n) => U;\nexport function insert<T, U extends readonly [T, ...unknown[]]>(tuple: U, index: 0, value: T): U;\nexport function insert<T, U extends readonly [unknown, T, ...unknown[]]>(tuple: U, index: 1, value: T): U;\nexport function insert<T, U extends readonly [unknown, unknown, T, ...unknown[]]>(tuple: U, index: 2, value: T): U;\nexport function insert<T, U extends readonly [unknown, unknown, unknown, T, ...unknown[]]>(\n tuple: U,\n index: 3,\n value: T,\n): U;\nexport function insert<T, U extends readonly [unknown, unknown, unknown, unknown, T, ...unknown[]]>(\n tuple: U,\n index: 4,\n value: T,\n): U;\nexport function insert<T, U extends readonly [unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(\n tuple: U,\n index: 5,\n value: T,\n): U;\nexport function insert<T, U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(\n tuple: U,\n index: 6,\n value: T,\n): U;\nexport function insert<\n T,\n U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]],\n>(tuple: U, index: 7, value: T): U;\nexport function insert<\n T,\n U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]],\n>(tuple: U, index: 8, value: T): U;\nexport function insert(...args: readonly unknown[]): unknown {\n return purry(updateImplementation, args);\n}\n","import { purry } from '../function/purry';\n\n/**\n * Maps both elements of a homogeneous pair with the same function.\n */\nexport function mapBothImplementation<T, U>(tuple: [T, T], fn: (value: T) => U): [U, U] {\n return [fn(tuple[0]), fn(tuple[1])];\n}\n\n/**\n * Maps both elements of a homogeneous pair with the same function.\n *\n * @param fn - Function applied to each element\n * @param tuple - A two-element tuple of the same type\n *\n * @example\n * ```ts\n * mapBoth([1, 2], (n) => n * 2); // [2, 4]\n * mapBoth((n) => n * 2)([1, 2]); // [2, 4]\n * ```\n */\nexport function mapBoth<T, U>(fn: (value: T) => U): (tuple: [T, T]) => [U, U];\nexport function mapBoth<T, U>(tuple: [T, T], fn: (value: T) => U): [U, U];\nexport function mapBoth(...args: readonly unknown[]): unknown {\n return purry(mapBothImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction mapEachImplementation<A, B, X, Y>(tuple: [A, B], fnA: (value: A) => X, fnB: (value: B) => Y): [X, Y] {\n return [fnA(tuple[0]), fnB(tuple[1])];\n}\n\n/**\n * Maps the first and second elements of a pair with two functions.\n *\n * @param fnA - Function applied to the first element\n * @param fnB - Function applied to the second element\n * @param tuple - A two-element tuple\n *\n * @example\n * ```ts\n * mapEach([1, 'a'], String, (s) => s.toUpperCase()); // ['1', 'A']\n * mapEach(String, (s) => s.toUpperCase())([1, 'a']); // ['1', 'A']\n * ```\n */\nexport function mapEach<A, B, X, Y>(fnA: (value: A) => X, fnB: (value: B) => Y): (tuple: [A, B]) => [X, Y];\nexport function mapEach<A, B, X, Y>(tuple: [A, B], fnA: (value: A) => X, fnB: (value: B) => Y): [X, Y];\nexport function mapEach(...args: readonly unknown[]): unknown {\n return purry(mapEachImplementation, args);\n}\n","import { purry } from '../function/purry';\n\n/**\n * Maps the first element of a pair; leaves the second unchanged.\n */\nexport function mapFirstImplementation<A, B, X>(tuple: [A, B], fn: (value: A) => X): [X, B] {\n return [fn(tuple[0]), tuple[1]];\n}\n\n/**\n * Maps the first element of a pair; leaves the second unchanged.\n *\n * @param fn - Function applied to the first element\n * @param tuple - A two-element tuple\n *\n * @example\n * ```ts\n * mapFirst([1, 'a'], (n) => n + 1); // [2, 'a']\n * mapFirst((n) => n + 1)([1, 'a']); // [2, 'a']\n * ```\n */\nexport function mapFirst<A, B, X>(fn: (value: A) => X): (tuple: [A, B]) => [X, B];\nexport function mapFirst<A, B, X>(tuple: [A, B], fn: (value: A) => X): [X, B];\nexport function mapFirst(...args: readonly unknown[]): unknown {\n return purry(mapFirstImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction mapSecondImplementation<A, B, Y>(tuple: [A, B], fn: (value: B) => Y): [A, Y] {\n return [tuple[0], fn(tuple[1])];\n}\n\n/**\n * Maps the second element of a pair; leaves the first unchanged.\n *\n * @param fn - Function applied to the second element\n * @param tuple - A two-element tuple (data-first overload).\n *\n * @example\n * ```ts\n * mapSecond([1, 'a'], (s) => s.toUpperCase()); // [1, 'A']\n * mapSecond((s) => s.toUpperCase())([1, 'a']); // [1, 'A']\n * ```\n */\nexport function mapSecond<A, B, Y>(fn: (value: B) => Y): (tuple: [A, B]) => [A, Y];\nexport function mapSecond<A, B, Y>(tuple: [A, B], fn: (value: B) => Y): [A, Y];\nexport function mapSecond(...args: readonly unknown[]): unknown {\n return purry(mapSecondImplementation, args);\n}\n","/**\n * Returns the second element of a tuple with at least two elements.\n *\n * @param tuple - A tuple with at least two elements.\n * @returns The element at index `1`.\n *\n * @example\n * ```ts\n * second([1, 2]); // 2\n * ```\n *\n * @throws {RangeError} When the tuple has fewer than two elements.\n */\nexport function second<T>(tuple: [unknown, T, ...unknown[]]): T {\n if (tuple.length < 2) {\n throw new RangeError('Tuple.second() :: received a tuple with less than 2 elements');\n }\n return tuple[1];\n}\n","/**\n * Swaps the two elements of a pair.\n *\n * @param data - A two-element tuple.\n * @returns The tuple with elements reversed.\n *\n * @example\n * ```ts\n * swap([1, 'a']); // ['a', 1]\n * ```\n */\nexport function swap<A, B>(data: [A, B]): [B, A] {\n return [data[1], data[0]];\n}\n"],"mappings":";;;AAEA,SAAS,kBAAqB,OAAY,OAAkB;CAC1D,IAAI,QAAQ,GACV,MAAM,IAAI,WAAW,iBAAiB,MAAM,4BAA4B;CAE1E,IAAI,SAAS,MAAM,QACjB,MAAM,IAAI,WAAW,iBAAiB,MAAM,kBAAkB;CAGhE,OAAO,MAAM;AACf;AAgCA,SAAgB,GAAG,GAAG,MAAmC;CACvD,OAAOA,cAAAA,MAAM,mBAAmB,IAAI;AACtC;;;AC3CA,SAAgB,qBAA8B,OAAU,KAAsB,KAA8B;CAC1G,OAAO,CAAC,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC;AAChC;AAkBA,SAAgB,OAAO,GAAG,MAAmC;CAC3D,OAAOC,cAAAA,MAAM,sBAAsB,IAAI;AACzC;;;;;;;;;;;;;;;;ACXA,SAAgB,MAAS,OAA6B;CACpD,IAAI,MAAM,SAAS,GACjB,MAAM,IAAI,WAAW,4DAA4D;CAEnF,OAAO,MAAM;AACf;;;ACfA,SAAS,qBAAwB,OAAY,OAAe,OAAe;CACzE,OAAO,MAAM,KAAK,OAAO,KAAK;AAChC;AA6EA,SAAgB,OAAO,GAAG,MAAmC;CAC3D,OAAOC,cAAAA,MAAM,sBAAsB,IAAI;AACzC;;;;;;AC/EA,SAAgB,sBAA4B,OAAe,IAA6B;CACtF,OAAO,CAAC,GAAG,MAAM,EAAE,GAAG,GAAG,MAAM,EAAE,CAAC;AACpC;AAgBA,SAAgB,QAAQ,GAAG,MAAmC;CAC5D,OAAOC,cAAAA,MAAM,uBAAuB,IAAI;AAC1C;;;ACvBA,SAAS,sBAAkC,OAAe,KAAsB,KAA8B;CAC5G,OAAO,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,MAAM,EAAE,CAAC;AACtC;AAiBA,SAAgB,QAAQ,GAAG,MAAmC;CAC5D,OAAOC,cAAAA,MAAM,uBAAuB,IAAI;AAC1C;;;;;;AClBA,SAAgB,uBAAgC,OAAe,IAA6B;CAC1F,OAAO,CAAC,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE;AAChC;AAgBA,SAAgB,SAAS,GAAG,MAAmC;CAC7D,OAAOC,cAAAA,MAAM,wBAAwB,IAAI;AAC3C;;;ACvBA,SAAS,wBAAiC,OAAe,IAA6B;CACpF,OAAO,CAAC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;AAChC;AAgBA,SAAgB,UAAU,GAAG,MAAmC;CAC9D,OAAOC,cAAAA,MAAM,yBAAyB,IAAI;AAC5C;;;;;;;;;;;;;;;;ACTA,SAAgB,OAAU,OAAsC;CAC9D,IAAI,MAAM,SAAS,GACjB,MAAM,IAAI,WAAW,8DAA8D;CAErF,OAAO,MAAM;AACf;;;;;;;;;;;;;;ACPA,SAAgB,KAAW,MAAsB;CAC/C,OAAO,CAAC,KAAK,IAAI,KAAK,EAAE;AAC1B"}
1
+ {"version":3,"file":"index.cjs","names":["purry","purry","purry","purry","purry","purry","purry"],"sources":["../../src/tuple/at.ts","../../src/tuple/fanOut.ts","../../src/tuple/from.ts","../../src/tuple/first.ts","../../src/tuple/insert.ts","../../src/tuple/mapBoth.ts","../../src/tuple/mapEach.ts","../../src/tuple/mapFirst.ts","../../src/tuple/mapSecond.ts","../../src/tuple/second.ts","../../src/tuple/swap.ts"],"sourcesContent":["import { purry } from '../function/purry';\n\nfunction at2Implementation<T>(tuple: T[], index: number): T {\n if (index < 0) {\n throw new RangeError(`Tuple.at() :: ${index} must be a positive integer`);\n }\n if (index >= tuple.length) {\n throw new RangeError(`Tuple.at() :: ${index} is out of bounds`);\n }\n\n return tuple[index]!;\n}\n\n/**\n * Gets an element from a tuple by zero-based index.\n * Throws a range error when the index is negative or out of bounds.\n *\n * @example\n * ```ts\n * at(0, [1, 2, 3]); // 1\n * at(1)([1, 2, 3]); // 2\n * at([1, 2, 3], 10); // throws RangeError\n * ```\n */\nexport function at<T>(index: 0): (tuple: [T, ...unknown[]]) => T;\nexport function at<T>(index: 1): (tuple: [unknown, T, ...unknown[]]) => T;\nexport function at<T>(index: 2): (tuple: [unknown, unknown, T, ...unknown[]]) => T;\nexport function at<T>(index: 3): (tuple: [unknown, unknown, unknown, T, ...unknown[]]) => T;\nexport function at<T>(index: 4): (tuple: [unknown, unknown, unknown, unknown, T, ...unknown[]]) => T;\nexport function at<T>(index: 5): (tuple: [unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]) => T;\nexport function at<T>(index: 6): (tuple: [unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]) => T;\nexport function at<T>(tuple: [T, ...unknown[]], index: 0): T;\nexport function at<T>(tuple: [unknown, T, ...unknown[]], index: 1): T;\nexport function at<T>(tuple: [unknown, unknown, T, ...unknown[]], index: 2): T;\nexport function at<T>(tuple: [unknown, unknown, unknown, T, ...unknown[]], index: 3): T;\nexport function at<T>(tuple: [unknown, unknown, unknown, unknown, T, ...unknown[]], index: 4): T;\nexport function at<T>(tuple: [unknown, unknown, unknown, unknown, unknown, T, ...unknown[]], index: 5): T;\nexport function at<T>(tuple: [unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]], index: 6): T;\nexport function at(...args: readonly unknown[]): unknown {\n return purry(at2Implementation, args);\n}\n","import { purry } from '../function/purry';\n\nexport function fanOutImplementation<A, C, D>(value: A, fn1: (value: A) => C, fn2: (value: A) => D): [C, D] {\n return [fn1(value), fn2(value)];\n}\n\n/**\n * Applies two functions to the same value and returns the results as a pair.\n *\n * @example\n * ```ts\n * fanOut((x) => x * 2, (x) => x + 1, 2); // [4, 3]\n * fanOut((x) => x * 2, (x) => x + 1)(2); // [4, 3]\n * ```\n */\nexport function fanOut<A, C, D>(fn1: (value: A) => C, fn2: (value: A) => D): (value: A) => [C, D];\nexport function fanOut<A, C, D>(value: A, fn1: (value: A) => C, fn2: (value: A) => D): [C, D];\nexport function fanOut(...args: readonly unknown[]): unknown {\n return purry(fanOutImplementation, args);\n}\n","/**\n * Builds a two-element tuple from two values.\n *\n * @example\n * ```ts\n * from(1, 'a'); // [1, 'a']\n * ```\n */\nexport function from<A, B>(arg1: A, arg2: B): [A, B] {\n return [arg1, arg2] as const;\n}\n","/**\n * Returns the first element of a non-empty tuple.\n * Throws a range error when the tuple has fewer than one element.\n *\n * @example\n * ```ts\n * first([1, 2]); // 1\n * first([]); // throws RangeError\n * ```\n */\nexport function first<T>(tuple: [T, ...unknown[]]): T {\n if (tuple.length < 1) {\n throw new RangeError('Tuple.first() :: received a tuple with less than 1 element');\n }\n return tuple[0];\n}\n","/* eslint-disable @typescript-eslint/unified-signatures */\nimport { purry } from '../function/purry';\n\nfunction updateImplementation<T>(tuple: T[], index: number, value: T): T[] {\n return tuple.with(index, value);\n}\n\n/**\n * Returns a new tuple with the element at `index` replaced by `value`.\n * Throws a range error when `index` is negative or out of bounds.\n *\n * @example\n * ```ts\n * insert([1, 2, 3], 1, 99); // [1, 99, 3]\n * insert(1, 99)([1, 2, 3]); // [1, 99, 3]\n * insert([1, 2, 3], 10, 99); // throws RangeError\n * ```\n */\nexport function insert<T>(index: 0, value: T): <U extends readonly [T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(index: 1, value: T): <U extends readonly [unknown, T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(index: 2, value: T): <U extends readonly [unknown, unknown, T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(\n index: 3,\n value: T,\n): <U extends readonly [unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(\n index: 4,\n value: T,\n): <U extends readonly [unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(\n index: 5,\n value: T,\n): <U extends readonly [unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(\n index: 6,\n value: T,\n): <U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(\n index: 7,\n value: T,\n): <U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(\n index: 8,\n value: T,\n): <U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(\n tuple: U,\n) => U;\nexport function insert<T, U extends readonly [T, ...unknown[]]>(tuple: U, index: 0, value: T): U;\nexport function insert<T, U extends readonly [unknown, T, ...unknown[]]>(tuple: U, index: 1, value: T): U;\nexport function insert<T, U extends readonly [unknown, unknown, T, ...unknown[]]>(tuple: U, index: 2, value: T): U;\nexport function insert<T, U extends readonly [unknown, unknown, unknown, T, ...unknown[]]>(\n tuple: U,\n index: 3,\n value: T,\n): U;\nexport function insert<T, U extends readonly [unknown, unknown, unknown, unknown, T, ...unknown[]]>(\n tuple: U,\n index: 4,\n value: T,\n): U;\nexport function insert<T, U extends readonly [unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(\n tuple: U,\n index: 5,\n value: T,\n): U;\nexport function insert<T, U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(\n tuple: U,\n index: 6,\n value: T,\n): U;\nexport function insert<\n T,\n U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]],\n>(tuple: U, index: 7, value: T): U;\nexport function insert<\n T,\n U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]],\n>(tuple: U, index: 8, value: T): U;\nexport function insert(...args: readonly unknown[]): unknown {\n return purry(updateImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nexport function mapBothImplementation<T, U>(tuple: [T, T], fn: (value: T) => U): [U, U] {\n return [fn(tuple[0]), fn(tuple[1])];\n}\n\n/**\n * Maps both elements of a homogeneous pair with the same function.\n *\n * @example\n * ```ts\n * mapBoth([1, 2], (n) => n * 2); // [2, 4]\n * mapBoth((n) => n * 2)([1, 2]); // [2, 4]\n * ```\n */\nexport function mapBoth<T, U>(fn: (value: T) => U): (tuple: [T, T]) => [U, U];\nexport function mapBoth<T, U>(tuple: [T, T], fn: (value: T) => U): [U, U];\nexport function mapBoth(...args: readonly unknown[]): unknown {\n return purry(mapBothImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction mapEachImplementation<A, B, X, Y>(tuple: [A, B], fnA: (value: A) => X, fnB: (value: B) => Y): [X, Y] {\n return [fnA(tuple[0]), fnB(tuple[1])];\n}\n\n/**\n * Maps the first and second elements of a pair with separate functions.\n *\n * @example\n * ```ts\n * mapEach([1, 'a'], String, (s) => s.toUpperCase()); // ['1', 'A']\n * mapEach(String, (s) => s.toUpperCase())([1, 'a']); // ['1', 'A']\n * ```\n */\nexport function mapEach<A, B, X, Y>(fnA: (value: A) => X, fnB: (value: B) => Y): (tuple: [A, B]) => [X, Y];\nexport function mapEach<A, B, X, Y>(tuple: [A, B], fnA: (value: A) => X, fnB: (value: B) => Y): [X, Y];\nexport function mapEach(...args: readonly unknown[]): unknown {\n return purry(mapEachImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nexport function mapFirstImplementation<A, B, X>(tuple: [A, B], fn: (value: A) => X): [X, B] {\n return [fn(tuple[0]), tuple[1]];\n}\n\n/**\n * Maps the first element of a pair; leaves the second unchanged.\n *\n * @example\n * ```ts\n * mapFirst([1, 'a'], (n) => n + 1); // [2, 'a']\n * mapFirst((n) => n + 1)([1, 'a']); // [2, 'a']\n * ```\n */\nexport function mapFirst<A, B, X>(fn: (value: A) => X): (tuple: [A, B]) => [X, B];\nexport function mapFirst<A, B, X>(tuple: [A, B], fn: (value: A) => X): [X, B];\nexport function mapFirst(...args: readonly unknown[]): unknown {\n return purry(mapFirstImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction mapSecondImplementation<A, B, Y>(tuple: [A, B], fn: (value: B) => Y): [A, Y] {\n return [tuple[0], fn(tuple[1])];\n}\n\n/**\n * Maps the second element of a pair; leaves the first unchanged.\n *\n * @example\n * ```ts\n * mapSecond([1, 'a'], (s) => s.toUpperCase()); // [1, 'A']\n * mapSecond((s) => s.toUpperCase())([1, 'a']); // [1, 'A']\n * ```\n */\nexport function mapSecond<A, B, Y>(fn: (value: B) => Y): (tuple: [A, B]) => [A, Y];\nexport function mapSecond<A, B, Y>(tuple: [A, B], fn: (value: B) => Y): [A, Y];\nexport function mapSecond(...args: readonly unknown[]): unknown {\n return purry(mapSecondImplementation, args);\n}\n","/**\n * Returns the second element of a tuple with at least two elements.\n * Throws a range error when the tuple has fewer than two elements.\n *\n * @example\n * ```ts\n * second([1, 2]); // 2\n * second([1]); // throws RangeError\n * ```\n */\nexport function second<T>(tuple: [unknown, T, ...unknown[]]): T {\n if (tuple.length < 2) {\n throw new RangeError('Tuple.second() :: received a tuple with less than 2 elements');\n }\n return tuple[1];\n}\n","/**\n * Swaps the two elements of a pair.\n *\n * @example\n * ```ts\n * swap([1, 'a']); // ['a', 1]\n * ```\n */\nexport function swap<A, B>(data: [A, B]): [B, A] {\n return [data[1], data[0]];\n}\n"],"mappings":";;;AAEA,SAAS,kBAAqB,OAAY,OAAkB;CAC1D,IAAI,QAAQ,GACV,MAAM,IAAI,WAAW,iBAAiB,MAAM,4BAA4B;CAE1E,IAAI,SAAS,MAAM,QACjB,MAAM,IAAI,WAAW,iBAAiB,MAAM,kBAAkB;CAGhE,OAAO,MAAM;AACf;AA2BA,SAAgB,GAAG,GAAG,MAAmC;CACvD,OAAOA,cAAAA,MAAM,mBAAmB,IAAI;AACtC;;;ACtCA,SAAgB,qBAA8B,OAAU,KAAsB,KAA8B;CAC1G,OAAO,CAAC,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC;AAChC;AAaA,SAAgB,OAAO,GAAG,MAAmC;CAC3D,OAAOC,cAAAA,MAAM,sBAAsB,IAAI;AACzC;;;;;;;;;;;ACXA,SAAgB,KAAW,MAAS,MAAiB;CACnD,OAAO,CAAC,MAAM,IAAI;AACpB;;;;;;;;;;;;;ACAA,SAAgB,MAAS,OAA6B;CACpD,IAAI,MAAM,SAAS,GACjB,MAAM,IAAI,WAAW,4DAA4D;CAEnF,OAAO,MAAM;AACf;;;ACZA,SAAS,qBAAwB,OAAY,OAAe,OAAe;CACzE,OAAO,MAAM,KAAK,OAAO,KAAK;AAChC;AAyEA,SAAgB,OAAO,GAAG,MAAmC;CAC3D,OAAOC,cAAAA,MAAM,sBAAsB,IAAI;AACzC;;;AC9EA,SAAgB,sBAA4B,OAAe,IAA6B;CACtF,OAAO,CAAC,GAAG,MAAM,EAAE,GAAG,GAAG,MAAM,EAAE,CAAC;AACpC;AAaA,SAAgB,QAAQ,GAAG,MAAmC;CAC5D,OAAOC,cAAAA,MAAM,uBAAuB,IAAI;AAC1C;;;ACjBA,SAAS,sBAAkC,OAAe,KAAsB,KAA8B;CAC5G,OAAO,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,MAAM,EAAE,CAAC;AACtC;AAaA,SAAgB,QAAQ,GAAG,MAAmC;CAC5D,OAAOC,cAAAA,MAAM,uBAAuB,IAAI;AAC1C;;;ACjBA,SAAgB,uBAAgC,OAAe,IAA6B;CAC1F,OAAO,CAAC,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE;AAChC;AAaA,SAAgB,SAAS,GAAG,MAAmC;CAC7D,OAAOC,cAAAA,MAAM,wBAAwB,IAAI;AAC3C;;;ACjBA,SAAS,wBAAiC,OAAe,IAA6B;CACpF,OAAO,CAAC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;AAChC;AAaA,SAAgB,UAAU,GAAG,MAAmC;CAC9D,OAAOC,cAAAA,MAAM,yBAAyB,IAAI;AAC5C;;;;;;;;;;;;;ACTA,SAAgB,OAAU,OAAsC;CAC9D,IAAI,MAAM,SAAS,GACjB,MAAM,IAAI,WAAW,8DAA8D;CAErF,OAAO,MAAM;AACf;;;;;;;;;;;ACPA,SAAgB,KAAW,MAAsB;CAC/C,OAAO,CAAC,KAAK,IAAI,KAAK,EAAE;AAC1B"}
@@ -1,19 +1,14 @@
1
1
  //#region src/tuple/at.d.ts
2
2
  /**
3
- * Get an element from a tuple by index.
4
- *
5
- * @param tuple - The tuple to get the element from.
6
- * @param index - The index of the element to get.
3
+ * Gets an element from a tuple by zero-based index.
4
+ * Throws a range error when the index is negative or out of bounds.
7
5
  *
8
6
  * @example
9
7
  * ```ts
10
- * at(0, [1, 2, 3]) // 1
11
- * at(1, [1, 2, 3]) // 2
12
- * at([1, 2, 3], 0) // 1
13
- * at([1, 2, 3], 1) // 2
8
+ * at(0, [1, 2, 3]); // 1
9
+ * at(1)([1, 2, 3]); // 2
10
+ * at([1, 2, 3], 10); // throws RangeError
14
11
  * ```
15
- *
16
- * @throws {RangeError}
17
12
  */
18
13
  declare function at<T>(index: 0): (tuple: [T, ...unknown[]]) => T;
19
14
  declare function at<T>(index: 1): (tuple: [unknown, T, ...unknown[]]) => T;
@@ -33,53 +28,52 @@ declare function at<T>(tuple: [unknown, unknown, unknown, unknown, unknown, unkn
33
28
  //#region src/tuple/fanOut.d.ts
34
29
  declare function fanOutImplementation<A, C, D>(value: A, fn1: (value: A) => C, fn2: (value: A) => D): [C, D];
35
30
  /**
36
- * Takes a value and two functions and returns a tuple of the results of the functions.
37
- *
38
- * @public
39
- * @category Tuple
40
- * @param value - The value to apply the functions to.
41
- * @param fn1 - The first function to apply to the value.
42
- * @param fn2 - The second function to apply to the value.
31
+ * Applies two functions to the same value and returns the results as a pair.
43
32
  *
44
33
  * @example
45
34
  * ```ts
46
35
  * fanOut((x) => x * 2, (x) => x + 1, 2); // [4, 3]
36
+ * fanOut((x) => x * 2, (x) => x + 1)(2); // [4, 3]
47
37
  * ```
48
38
  */
49
39
  declare function fanOut<A, C, D>(fn1: (value: A) => C, fn2: (value: A) => D): (value: A) => [C, D];
50
40
  declare function fanOut<A, C, D>(value: A, fn1: (value: A) => C, fn2: (value: A) => D): [C, D];
51
41
  //#endregion
52
- //#region src/tuple/first.d.ts
42
+ //#region src/tuple/from.d.ts
53
43
  /**
54
- * Returns the first element of a tuple with at least one element.
44
+ * Builds a two-element tuple from two values.
55
45
  *
56
- * @param tuple - A non-empty tuple.
57
- * @returns The element at index `0`.
46
+ * @example
47
+ * ```ts
48
+ * from(1, 'a'); // [1, 'a']
49
+ * ```
50
+ */
51
+ declare function from<A, B>(arg1: A, arg2: B): [A, B];
52
+ //#endregion
53
+ //#region src/tuple/first.d.ts
54
+ /**
55
+ * Returns the first element of a non-empty tuple.
56
+ * Throws a range error when the tuple has fewer than one element.
58
57
  *
59
58
  * @example
60
59
  * ```ts
61
60
  * first([1, 2]); // 1
61
+ * first([]); // throws RangeError
62
62
  * ```
63
- *
64
- * @throws {RangeError} When the tuple has fewer than one element.
65
63
  */
66
64
  declare function first<T>(tuple: [T, ...unknown[]]): T;
67
65
  //#endregion
68
66
  //#region src/tuple/insert.d.ts
69
67
  /**
70
68
  * Returns a new tuple with the element at `index` replaced by `value`.
71
- *
72
- * @param index - Zero-based index of the element to replace.
73
- * @param value - Replacement value.
74
- * @param tuple - The source tuple.
69
+ * Throws a range error when `index` is negative or out of bounds.
75
70
  *
76
71
  * @example
77
72
  * ```ts
78
73
  * insert([1, 2, 3], 1, 99); // [1, 99, 3]
79
74
  * insert(1, 99)([1, 2, 3]); // [1, 99, 3]
75
+ * insert([1, 2, 3], 10, 99); // throws RangeError
80
76
  * ```
81
- *
82
- * @throws {RangeError} When `index` is negative or out of bounds (from the underlying `with` call).
83
77
  */
84
78
  declare function insert<T>(index: 0, value: T): <U extends readonly [T, ...unknown[]]>(tuple: U) => U;
85
79
  declare function insert<T>(index: 1, value: T): <U extends readonly [unknown, T, ...unknown[]]>(tuple: U) => U;
@@ -101,16 +95,10 @@ declare function insert<T, U extends readonly [unknown, unknown, unknown, unknow
101
95
  declare function insert<T, U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U, index: 8, value: T): U;
102
96
  //#endregion
103
97
  //#region src/tuple/mapBoth.d.ts
104
- /**
105
- * Maps both elements of a homogeneous pair with the same function.
106
- */
107
98
  declare function mapBothImplementation<T, U>(tuple: [T, T], fn: (value: T) => U): [U, U];
108
99
  /**
109
100
  * Maps both elements of a homogeneous pair with the same function.
110
101
  *
111
- * @param fn - Function applied to each element
112
- * @param tuple - A two-element tuple of the same type
113
- *
114
102
  * @example
115
103
  * ```ts
116
104
  * mapBoth([1, 2], (n) => n * 2); // [2, 4]
@@ -122,11 +110,7 @@ declare function mapBoth<T, U>(tuple: [T, T], fn: (value: T) => U): [U, U];
122
110
  //#endregion
123
111
  //#region src/tuple/mapEach.d.ts
124
112
  /**
125
- * Maps the first and second elements of a pair with two functions.
126
- *
127
- * @param fnA - Function applied to the first element
128
- * @param fnB - Function applied to the second element
129
- * @param tuple - A two-element tuple
113
+ * Maps the first and second elements of a pair with separate functions.
130
114
  *
131
115
  * @example
132
116
  * ```ts
@@ -138,16 +122,10 @@ declare function mapEach<A, B, X, Y>(fnA: (value: A) => X, fnB: (value: B) => Y)
138
122
  declare function mapEach<A, B, X, Y>(tuple: [A, B], fnA: (value: A) => X, fnB: (value: B) => Y): [X, Y];
139
123
  //#endregion
140
124
  //#region src/tuple/mapFirst.d.ts
141
- /**
142
- * Maps the first element of a pair; leaves the second unchanged.
143
- */
144
125
  declare function mapFirstImplementation<A, B, X>(tuple: [A, B], fn: (value: A) => X): [X, B];
145
126
  /**
146
127
  * Maps the first element of a pair; leaves the second unchanged.
147
128
  *
148
- * @param fn - Function applied to the first element
149
- * @param tuple - A two-element tuple
150
- *
151
129
  * @example
152
130
  * ```ts
153
131
  * mapFirst([1, 'a'], (n) => n + 1); // [2, 'a']
@@ -161,9 +139,6 @@ declare function mapFirst<A, B, X>(tuple: [A, B], fn: (value: A) => X): [X, B];
161
139
  /**
162
140
  * Maps the second element of a pair; leaves the first unchanged.
163
141
  *
164
- * @param fn - Function applied to the second element
165
- * @param tuple - A two-element tuple (data-first overload).
166
- *
167
142
  * @example
168
143
  * ```ts
169
144
  * mapSecond([1, 'a'], (s) => s.toUpperCase()); // [1, 'A']
@@ -176,16 +151,13 @@ declare function mapSecond<A, B, Y>(tuple: [A, B], fn: (value: B) => Y): [A, Y];
176
151
  //#region src/tuple/second.d.ts
177
152
  /**
178
153
  * Returns the second element of a tuple with at least two elements.
179
- *
180
- * @param tuple - A tuple with at least two elements.
181
- * @returns The element at index `1`.
154
+ * Throws a range error when the tuple has fewer than two elements.
182
155
  *
183
156
  * @example
184
157
  * ```ts
185
158
  * second([1, 2]); // 2
159
+ * second([1]); // throws RangeError
186
160
  * ```
187
- *
188
- * @throws {RangeError} When the tuple has fewer than two elements.
189
161
  */
190
162
  declare function second<T>(tuple: [unknown, T, ...unknown[]]): T;
191
163
  //#endregion
@@ -193,9 +165,6 @@ declare function second<T>(tuple: [unknown, T, ...unknown[]]): T;
193
165
  /**
194
166
  * Swaps the two elements of a pair.
195
167
  *
196
- * @param data - A two-element tuple.
197
- * @returns The tuple with elements reversed.
198
- *
199
168
  * @example
200
169
  * ```ts
201
170
  * swap([1, 'a']); // ['a', 1]
@@ -203,5 +172,5 @@ declare function second<T>(tuple: [unknown, T, ...unknown[]]): T;
203
172
  */
204
173
  declare function swap<A, B>(data: [A, B]): [B, A];
205
174
  //#endregion
206
- export { at, fanOut, fanOutImplementation, first, insert, mapBoth, mapBothImplementation, mapEach, mapFirst, mapFirstImplementation, mapSecond, second, swap };
175
+ export { at, fanOut, fanOutImplementation, first, from, insert, mapBoth, mapBothImplementation, mapEach, mapFirst, mapFirstImplementation, mapSecond, second, swap };
207
176
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/tuple/at.ts","../../src/tuple/fanOut.ts","../../src/tuple/first.ts","../../src/tuple/insert.ts","../../src/tuple/mapBoth.ts","../../src/tuple/mapEach.ts","../../src/tuple/mapFirst.ts","../../src/tuple/mapSecond.ts","../../src/tuple/second.ts","../../src/tuple/swap.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/tuple/at.ts","../../src/tuple/fanOut.ts","../../src/tuple/from.ts","../../src/tuple/first.ts","../../src/tuple/insert.ts","../../src/tuple/mapBoth.ts","../../src/tuple/mapEach.ts","../../src/tuple/mapFirst.ts","../../src/tuple/mapSecond.ts","../../src/tuple/second.ts","../../src/tuple/swap.ts"],"mappings":"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"}
@@ -1,19 +1,14 @@
1
1
  //#region src/tuple/at.d.ts
2
2
  /**
3
- * Get an element from a tuple by index.
4
- *
5
- * @param tuple - The tuple to get the element from.
6
- * @param index - The index of the element to get.
3
+ * Gets an element from a tuple by zero-based index.
4
+ * Throws a range error when the index is negative or out of bounds.
7
5
  *
8
6
  * @example
9
7
  * ```ts
10
- * at(0, [1, 2, 3]) // 1
11
- * at(1, [1, 2, 3]) // 2
12
- * at([1, 2, 3], 0) // 1
13
- * at([1, 2, 3], 1) // 2
8
+ * at(0, [1, 2, 3]); // 1
9
+ * at(1)([1, 2, 3]); // 2
10
+ * at([1, 2, 3], 10); // throws RangeError
14
11
  * ```
15
- *
16
- * @throws {RangeError}
17
12
  */
18
13
  declare function at<T>(index: 0): (tuple: [T, ...unknown[]]) => T;
19
14
  declare function at<T>(index: 1): (tuple: [unknown, T, ...unknown[]]) => T;
@@ -33,53 +28,52 @@ declare function at<T>(tuple: [unknown, unknown, unknown, unknown, unknown, unkn
33
28
  //#region src/tuple/fanOut.d.ts
34
29
  declare function fanOutImplementation<A, C, D>(value: A, fn1: (value: A) => C, fn2: (value: A) => D): [C, D];
35
30
  /**
36
- * Takes a value and two functions and returns a tuple of the results of the functions.
37
- *
38
- * @public
39
- * @category Tuple
40
- * @param value - The value to apply the functions to.
41
- * @param fn1 - The first function to apply to the value.
42
- * @param fn2 - The second function to apply to the value.
31
+ * Applies two functions to the same value and returns the results as a pair.
43
32
  *
44
33
  * @example
45
34
  * ```ts
46
35
  * fanOut((x) => x * 2, (x) => x + 1, 2); // [4, 3]
36
+ * fanOut((x) => x * 2, (x) => x + 1)(2); // [4, 3]
47
37
  * ```
48
38
  */
49
39
  declare function fanOut<A, C, D>(fn1: (value: A) => C, fn2: (value: A) => D): (value: A) => [C, D];
50
40
  declare function fanOut<A, C, D>(value: A, fn1: (value: A) => C, fn2: (value: A) => D): [C, D];
51
41
  //#endregion
52
- //#region src/tuple/first.d.ts
42
+ //#region src/tuple/from.d.ts
53
43
  /**
54
- * Returns the first element of a tuple with at least one element.
44
+ * Builds a two-element tuple from two values.
55
45
  *
56
- * @param tuple - A non-empty tuple.
57
- * @returns The element at index `0`.
46
+ * @example
47
+ * ```ts
48
+ * from(1, 'a'); // [1, 'a']
49
+ * ```
50
+ */
51
+ declare function from<A, B>(arg1: A, arg2: B): [A, B];
52
+ //#endregion
53
+ //#region src/tuple/first.d.ts
54
+ /**
55
+ * Returns the first element of a non-empty tuple.
56
+ * Throws a range error when the tuple has fewer than one element.
58
57
  *
59
58
  * @example
60
59
  * ```ts
61
60
  * first([1, 2]); // 1
61
+ * first([]); // throws RangeError
62
62
  * ```
63
- *
64
- * @throws {RangeError} When the tuple has fewer than one element.
65
63
  */
66
64
  declare function first<T>(tuple: [T, ...unknown[]]): T;
67
65
  //#endregion
68
66
  //#region src/tuple/insert.d.ts
69
67
  /**
70
68
  * Returns a new tuple with the element at `index` replaced by `value`.
71
- *
72
- * @param index - Zero-based index of the element to replace.
73
- * @param value - Replacement value.
74
- * @param tuple - The source tuple.
69
+ * Throws a range error when `index` is negative or out of bounds.
75
70
  *
76
71
  * @example
77
72
  * ```ts
78
73
  * insert([1, 2, 3], 1, 99); // [1, 99, 3]
79
74
  * insert(1, 99)([1, 2, 3]); // [1, 99, 3]
75
+ * insert([1, 2, 3], 10, 99); // throws RangeError
80
76
  * ```
81
- *
82
- * @throws {RangeError} When `index` is negative or out of bounds (from the underlying `with` call).
83
77
  */
84
78
  declare function insert<T>(index: 0, value: T): <U extends readonly [T, ...unknown[]]>(tuple: U) => U;
85
79
  declare function insert<T>(index: 1, value: T): <U extends readonly [unknown, T, ...unknown[]]>(tuple: U) => U;
@@ -101,16 +95,10 @@ declare function insert<T, U extends readonly [unknown, unknown, unknown, unknow
101
95
  declare function insert<T, U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U, index: 8, value: T): U;
102
96
  //#endregion
103
97
  //#region src/tuple/mapBoth.d.ts
104
- /**
105
- * Maps both elements of a homogeneous pair with the same function.
106
- */
107
98
  declare function mapBothImplementation<T, U>(tuple: [T, T], fn: (value: T) => U): [U, U];
108
99
  /**
109
100
  * Maps both elements of a homogeneous pair with the same function.
110
101
  *
111
- * @param fn - Function applied to each element
112
- * @param tuple - A two-element tuple of the same type
113
- *
114
102
  * @example
115
103
  * ```ts
116
104
  * mapBoth([1, 2], (n) => n * 2); // [2, 4]
@@ -122,11 +110,7 @@ declare function mapBoth<T, U>(tuple: [T, T], fn: (value: T) => U): [U, U];
122
110
  //#endregion
123
111
  //#region src/tuple/mapEach.d.ts
124
112
  /**
125
- * Maps the first and second elements of a pair with two functions.
126
- *
127
- * @param fnA - Function applied to the first element
128
- * @param fnB - Function applied to the second element
129
- * @param tuple - A two-element tuple
113
+ * Maps the first and second elements of a pair with separate functions.
130
114
  *
131
115
  * @example
132
116
  * ```ts
@@ -138,16 +122,10 @@ declare function mapEach<A, B, X, Y>(fnA: (value: A) => X, fnB: (value: B) => Y)
138
122
  declare function mapEach<A, B, X, Y>(tuple: [A, B], fnA: (value: A) => X, fnB: (value: B) => Y): [X, Y];
139
123
  //#endregion
140
124
  //#region src/tuple/mapFirst.d.ts
141
- /**
142
- * Maps the first element of a pair; leaves the second unchanged.
143
- */
144
125
  declare function mapFirstImplementation<A, B, X>(tuple: [A, B], fn: (value: A) => X): [X, B];
145
126
  /**
146
127
  * Maps the first element of a pair; leaves the second unchanged.
147
128
  *
148
- * @param fn - Function applied to the first element
149
- * @param tuple - A two-element tuple
150
- *
151
129
  * @example
152
130
  * ```ts
153
131
  * mapFirst([1, 'a'], (n) => n + 1); // [2, 'a']
@@ -161,9 +139,6 @@ declare function mapFirst<A, B, X>(tuple: [A, B], fn: (value: A) => X): [X, B];
161
139
  /**
162
140
  * Maps the second element of a pair; leaves the first unchanged.
163
141
  *
164
- * @param fn - Function applied to the second element
165
- * @param tuple - A two-element tuple (data-first overload).
166
- *
167
142
  * @example
168
143
  * ```ts
169
144
  * mapSecond([1, 'a'], (s) => s.toUpperCase()); // [1, 'A']
@@ -176,16 +151,13 @@ declare function mapSecond<A, B, Y>(tuple: [A, B], fn: (value: B) => Y): [A, Y];
176
151
  //#region src/tuple/second.d.ts
177
152
  /**
178
153
  * Returns the second element of a tuple with at least two elements.
179
- *
180
- * @param tuple - A tuple with at least two elements.
181
- * @returns The element at index `1`.
154
+ * Throws a range error when the tuple has fewer than two elements.
182
155
  *
183
156
  * @example
184
157
  * ```ts
185
158
  * second([1, 2]); // 2
159
+ * second([1]); // throws RangeError
186
160
  * ```
187
- *
188
- * @throws {RangeError} When the tuple has fewer than two elements.
189
161
  */
190
162
  declare function second<T>(tuple: [unknown, T, ...unknown[]]): T;
191
163
  //#endregion
@@ -193,9 +165,6 @@ declare function second<T>(tuple: [unknown, T, ...unknown[]]): T;
193
165
  /**
194
166
  * Swaps the two elements of a pair.
195
167
  *
196
- * @param data - A two-element tuple.
197
- * @returns The tuple with elements reversed.
198
- *
199
168
  * @example
200
169
  * ```ts
201
170
  * swap([1, 'a']); // ['a', 1]
@@ -203,5 +172,5 @@ declare function second<T>(tuple: [unknown, T, ...unknown[]]): T;
203
172
  */
204
173
  declare function swap<A, B>(data: [A, B]): [B, A];
205
174
  //#endregion
206
- export { at, fanOut, fanOutImplementation, first, insert, mapBoth, mapBothImplementation, mapEach, mapFirst, mapFirstImplementation, mapSecond, second, swap };
175
+ export { at, fanOut, fanOutImplementation, first, from, insert, mapBoth, mapBothImplementation, mapEach, mapFirst, mapFirstImplementation, mapSecond, second, swap };
207
176
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/tuple/at.ts","../../src/tuple/fanOut.ts","../../src/tuple/first.ts","../../src/tuple/insert.ts","../../src/tuple/mapBoth.ts","../../src/tuple/mapEach.ts","../../src/tuple/mapFirst.ts","../../src/tuple/mapSecond.ts","../../src/tuple/second.ts","../../src/tuple/swap.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/tuple/at.ts","../../src/tuple/fanOut.ts","../../src/tuple/from.ts","../../src/tuple/first.ts","../../src/tuple/insert.ts","../../src/tuple/mapBoth.ts","../../src/tuple/mapEach.ts","../../src/tuple/mapFirst.ts","../../src/tuple/mapSecond.ts","../../src/tuple/second.ts","../../src/tuple/swap.ts"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { t as purry } from "../purry-BOWmqwDB.mjs";
1
+ import { t as purry } from "../purry-DXnhXie9.mjs";
2
2
  //#region src/tuple/at.ts
3
3
  function at2Implementation(tuple, index) {
4
4
  if (index < 0) throw new RangeError(`Tuple.at() :: ${index} must be a positive integer`);
@@ -17,19 +17,29 @@ function fanOut(...args) {
17
17
  return purry(fanOutImplementation, args);
18
18
  }
19
19
  //#endregion
20
- //#region src/tuple/first.ts
20
+ //#region src/tuple/from.ts
21
21
  /**
22
- * Returns the first element of a tuple with at least one element.
22
+ * Builds a two-element tuple from two values.
23
23
  *
24
- * @param tuple - A non-empty tuple.
25
- * @returns The element at index `0`.
24
+ * @example
25
+ * ```ts
26
+ * from(1, 'a'); // [1, 'a']
27
+ * ```
28
+ */
29
+ function from(arg1, arg2) {
30
+ return [arg1, arg2];
31
+ }
32
+ //#endregion
33
+ //#region src/tuple/first.ts
34
+ /**
35
+ * Returns the first element of a non-empty tuple.
36
+ * Throws a range error when the tuple has fewer than one element.
26
37
  *
27
38
  * @example
28
39
  * ```ts
29
40
  * first([1, 2]); // 1
41
+ * first([]); // throws RangeError
30
42
  * ```
31
- *
32
- * @throws {RangeError} When the tuple has fewer than one element.
33
43
  */
34
44
  function first(tuple) {
35
45
  if (tuple.length < 1) throw new RangeError("Tuple.first() :: received a tuple with less than 1 element");
@@ -45,9 +55,6 @@ function insert(...args) {
45
55
  }
46
56
  //#endregion
47
57
  //#region src/tuple/mapBoth.ts
48
- /**
49
- * Maps both elements of a homogeneous pair with the same function.
50
- */
51
58
  function mapBothImplementation(tuple, fn) {
52
59
  return [fn(tuple[0]), fn(tuple[1])];
53
60
  }
@@ -64,9 +71,6 @@ function mapEach(...args) {
64
71
  }
65
72
  //#endregion
66
73
  //#region src/tuple/mapFirst.ts
67
- /**
68
- * Maps the first element of a pair; leaves the second unchanged.
69
- */
70
74
  function mapFirstImplementation(tuple, fn) {
71
75
  return [fn(tuple[0]), tuple[1]];
72
76
  }
@@ -85,16 +89,13 @@ function mapSecond(...args) {
85
89
  //#region src/tuple/second.ts
86
90
  /**
87
91
  * Returns the second element of a tuple with at least two elements.
88
- *
89
- * @param tuple - A tuple with at least two elements.
90
- * @returns The element at index `1`.
92
+ * Throws a range error when the tuple has fewer than two elements.
91
93
  *
92
94
  * @example
93
95
  * ```ts
94
96
  * second([1, 2]); // 2
97
+ * second([1]); // throws RangeError
95
98
  * ```
96
- *
97
- * @throws {RangeError} When the tuple has fewer than two elements.
98
99
  */
99
100
  function second(tuple) {
100
101
  if (tuple.length < 2) throw new RangeError("Tuple.second() :: received a tuple with less than 2 elements");
@@ -105,9 +106,6 @@ function second(tuple) {
105
106
  /**
106
107
  * Swaps the two elements of a pair.
107
108
  *
108
- * @param data - A two-element tuple.
109
- * @returns The tuple with elements reversed.
110
- *
111
109
  * @example
112
110
  * ```ts
113
111
  * swap([1, 'a']); // ['a', 1]
@@ -117,6 +115,6 @@ function swap(data) {
117
115
  return [data[1], data[0]];
118
116
  }
119
117
  //#endregion
120
- export { at, fanOut, fanOutImplementation, first, insert, mapBoth, mapBothImplementation, mapEach, mapFirst, mapFirstImplementation, mapSecond, second, swap };
118
+ export { at, fanOut, fanOutImplementation, first, from, insert, mapBoth, mapBothImplementation, mapEach, mapFirst, mapFirstImplementation, mapSecond, second, swap };
121
119
 
122
120
  //# sourceMappingURL=index.mjs.map