ts-data-forge 1.0.0 → 1.0.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 (292) hide show
  1. package/README.md +1 -1
  2. package/dist/array/array-utils.d.mts +2617 -0
  3. package/dist/array/array-utils.d.mts.map +1 -0
  4. package/dist/array/array-utils.mjs +2915 -0
  5. package/dist/array/array-utils.mjs.map +1 -0
  6. package/dist/array/index.d.mts +3 -0
  7. package/dist/array/index.d.mts.map +1 -0
  8. package/dist/array/index.mjs +3 -0
  9. package/dist/array/index.mjs.map +1 -0
  10. package/dist/array/tuple-utils.d.mts +421 -0
  11. package/dist/array/tuple-utils.d.mts.map +1 -0
  12. package/dist/array/tuple-utils.mjs +391 -0
  13. package/dist/array/tuple-utils.mjs.map +1 -0
  14. package/dist/collections/imap-mapped.d.mts +445 -0
  15. package/dist/collections/imap-mapped.d.mts.map +1 -0
  16. package/dist/collections/imap-mapped.mjs +424 -0
  17. package/dist/collections/imap-mapped.mjs.map +1 -0
  18. package/dist/collections/imap.d.mts +359 -0
  19. package/dist/collections/imap.d.mts.map +1 -0
  20. package/dist/collections/imap.mjs +338 -0
  21. package/dist/collections/imap.mjs.map +1 -0
  22. package/dist/collections/index.d.mts +7 -0
  23. package/dist/collections/index.d.mts.map +1 -0
  24. package/dist/collections/index.mjs +7 -0
  25. package/dist/collections/index.mjs.map +1 -0
  26. package/dist/collections/iset-mapped.d.mts +576 -0
  27. package/dist/collections/iset-mapped.d.mts.map +1 -0
  28. package/dist/collections/iset-mapped.mjs +522 -0
  29. package/dist/collections/iset-mapped.mjs.map +1 -0
  30. package/dist/collections/iset.d.mts +426 -0
  31. package/dist/collections/iset.d.mts.map +1 -0
  32. package/dist/collections/iset.mjs +437 -0
  33. package/dist/collections/iset.mjs.map +1 -0
  34. package/dist/collections/queue.d.mts +190 -0
  35. package/dist/collections/queue.d.mts.map +1 -0
  36. package/dist/collections/queue.mjs +317 -0
  37. package/dist/collections/queue.mjs.map +1 -0
  38. package/dist/collections/stack.d.mts +210 -0
  39. package/dist/collections/stack.d.mts.map +1 -0
  40. package/dist/collections/stack.mjs +353 -0
  41. package/dist/collections/stack.mjs.map +1 -0
  42. package/dist/expect-type.d.mts +199 -0
  43. package/dist/expect-type.d.mts.map +1 -0
  44. package/dist/expect-type.mjs +201 -0
  45. package/dist/expect-type.mjs.map +1 -0
  46. package/dist/functional/index.d.mts +5 -0
  47. package/dist/functional/index.d.mts.map +1 -0
  48. package/dist/functional/index.mjs +5 -0
  49. package/dist/functional/index.mjs.map +1 -0
  50. package/dist/functional/match.d.mts +215 -0
  51. package/dist/functional/match.d.mts.map +1 -0
  52. package/dist/functional/match.mjs +139 -0
  53. package/dist/functional/match.mjs.map +1 -0
  54. package/dist/functional/optional.d.mts +517 -0
  55. package/dist/functional/optional.d.mts.map +1 -0
  56. package/dist/functional/optional.mjs +532 -0
  57. package/dist/functional/optional.mjs.map +1 -0
  58. package/dist/functional/pipe.d.mts +185 -0
  59. package/dist/functional/pipe.d.mts.map +1 -0
  60. package/dist/functional/pipe.mjs +129 -0
  61. package/dist/functional/pipe.mjs.map +1 -0
  62. package/dist/functional/result.d.mts +796 -0
  63. package/dist/functional/result.d.mts.map +1 -0
  64. package/dist/functional/result.mjs +844 -0
  65. package/dist/functional/result.mjs.map +1 -0
  66. package/dist/globals.d.mts +38 -0
  67. package/dist/guard/has-key.d.mts +100 -0
  68. package/dist/guard/has-key.d.mts.map +1 -0
  69. package/dist/guard/has-key.mjs +94 -0
  70. package/dist/guard/has-key.mjs.map +1 -0
  71. package/dist/guard/index.d.mts +8 -0
  72. package/dist/guard/index.d.mts.map +1 -0
  73. package/dist/guard/index.mjs +8 -0
  74. package/dist/guard/index.mjs.map +1 -0
  75. package/dist/guard/is-non-empty-string.d.mts +106 -0
  76. package/dist/guard/is-non-empty-string.d.mts.map +1 -0
  77. package/dist/guard/is-non-empty-string.mjs +108 -0
  78. package/dist/guard/is-non-empty-string.mjs.map +1 -0
  79. package/dist/guard/is-non-null-object.d.mts +105 -0
  80. package/dist/guard/is-non-null-object.d.mts.map +1 -0
  81. package/dist/guard/is-non-null-object.mjs +108 -0
  82. package/dist/guard/is-non-null-object.mjs.map +1 -0
  83. package/dist/guard/is-primitive.d.mts +146 -0
  84. package/dist/guard/is-primitive.d.mts.map +1 -0
  85. package/dist/guard/is-primitive.mjs +161 -0
  86. package/dist/guard/is-primitive.mjs.map +1 -0
  87. package/dist/guard/is-record.d.mts +151 -0
  88. package/dist/guard/is-record.d.mts.map +1 -0
  89. package/dist/guard/is-record.mjs +155 -0
  90. package/dist/guard/is-record.mjs.map +1 -0
  91. package/dist/guard/is-type.d.mts +430 -0
  92. package/dist/guard/is-type.d.mts.map +1 -0
  93. package/dist/guard/is-type.mjs +432 -0
  94. package/dist/guard/is-type.mjs.map +1 -0
  95. package/dist/guard/key-is-in.d.mts +158 -0
  96. package/dist/guard/key-is-in.d.mts.map +1 -0
  97. package/dist/guard/key-is-in.mjs +160 -0
  98. package/dist/guard/key-is-in.mjs.map +1 -0
  99. package/dist/index.d.mts +11 -0
  100. package/dist/index.d.mts.map +1 -0
  101. package/dist/index.mjs +61 -0
  102. package/dist/index.mjs.map +1 -0
  103. package/dist/iterator/index.d.mts +2 -0
  104. package/dist/iterator/index.d.mts.map +1 -0
  105. package/dist/iterator/index.mjs +2 -0
  106. package/dist/iterator/index.mjs.map +1 -0
  107. package/dist/iterator/range.d.mts +97 -0
  108. package/dist/iterator/range.d.mts.map +1 -0
  109. package/dist/iterator/range.mjs +130 -0
  110. package/dist/iterator/range.mjs.map +1 -0
  111. package/dist/json/index.d.mts +2 -0
  112. package/dist/json/index.d.mts.map +1 -0
  113. package/dist/json/index.mjs +2 -0
  114. package/dist/json/index.mjs.map +1 -0
  115. package/dist/json/json.d.mts +597 -0
  116. package/dist/json/json.d.mts.map +1 -0
  117. package/dist/json/json.mjs +687 -0
  118. package/dist/json/json.mjs.map +1 -0
  119. package/dist/number/branded-types/finite-number.d.mts +291 -0
  120. package/dist/number/branded-types/finite-number.d.mts.map +1 -0
  121. package/dist/number/branded-types/finite-number.mjs +296 -0
  122. package/dist/number/branded-types/finite-number.mjs.map +1 -0
  123. package/dist/number/branded-types/index.d.mts +27 -0
  124. package/dist/number/branded-types/index.d.mts.map +1 -0
  125. package/dist/number/branded-types/index.mjs +27 -0
  126. package/dist/number/branded-types/index.mjs.map +1 -0
  127. package/dist/number/branded-types/int.d.mts +242 -0
  128. package/dist/number/branded-types/int.d.mts.map +1 -0
  129. package/dist/number/branded-types/int.mjs +239 -0
  130. package/dist/number/branded-types/int.mjs.map +1 -0
  131. package/dist/number/branded-types/int16.d.mts +162 -0
  132. package/dist/number/branded-types/int16.d.mts.map +1 -0
  133. package/dist/number/branded-types/int16.mjs +141 -0
  134. package/dist/number/branded-types/int16.mjs.map +1 -0
  135. package/dist/number/branded-types/int32.d.mts +155 -0
  136. package/dist/number/branded-types/int32.d.mts.map +1 -0
  137. package/dist/number/branded-types/int32.mjs +142 -0
  138. package/dist/number/branded-types/int32.mjs.map +1 -0
  139. package/dist/number/branded-types/non-negative-finite-number.d.mts +165 -0
  140. package/dist/number/branded-types/non-negative-finite-number.d.mts.map +1 -0
  141. package/dist/number/branded-types/non-negative-finite-number.mjs +160 -0
  142. package/dist/number/branded-types/non-negative-finite-number.mjs.map +1 -0
  143. package/dist/number/branded-types/non-negative-int16.d.mts +160 -0
  144. package/dist/number/branded-types/non-negative-int16.d.mts.map +1 -0
  145. package/dist/number/branded-types/non-negative-int16.mjs +138 -0
  146. package/dist/number/branded-types/non-negative-int16.mjs.map +1 -0
  147. package/dist/number/branded-types/non-negative-int32.d.mts +156 -0
  148. package/dist/number/branded-types/non-negative-int32.d.mts.map +1 -0
  149. package/dist/number/branded-types/non-negative-int32.mjs +138 -0
  150. package/dist/number/branded-types/non-negative-int32.mjs.map +1 -0
  151. package/dist/number/branded-types/non-zero-finite-number.d.mts +154 -0
  152. package/dist/number/branded-types/non-zero-finite-number.d.mts.map +1 -0
  153. package/dist/number/branded-types/non-zero-finite-number.mjs +160 -0
  154. package/dist/number/branded-types/non-zero-finite-number.mjs.map +1 -0
  155. package/dist/number/branded-types/non-zero-int.d.mts +131 -0
  156. package/dist/number/branded-types/non-zero-int.d.mts.map +1 -0
  157. package/dist/number/branded-types/non-zero-int.mjs +128 -0
  158. package/dist/number/branded-types/non-zero-int.mjs.map +1 -0
  159. package/dist/number/branded-types/non-zero-int16.d.mts +166 -0
  160. package/dist/number/branded-types/non-zero-int16.d.mts.map +1 -0
  161. package/dist/number/branded-types/non-zero-int16.mjs +145 -0
  162. package/dist/number/branded-types/non-zero-int16.mjs.map +1 -0
  163. package/dist/number/branded-types/non-zero-int32.d.mts +158 -0
  164. package/dist/number/branded-types/non-zero-int32.d.mts.map +1 -0
  165. package/dist/number/branded-types/non-zero-int32.mjs +145 -0
  166. package/dist/number/branded-types/non-zero-int32.mjs.map +1 -0
  167. package/dist/number/branded-types/non-zero-safe-int.d.mts +148 -0
  168. package/dist/number/branded-types/non-zero-safe-int.d.mts.map +1 -0
  169. package/dist/number/branded-types/non-zero-safe-int.mjs +145 -0
  170. package/dist/number/branded-types/non-zero-safe-int.mjs.map +1 -0
  171. package/dist/number/branded-types/non-zero-uint16.d.mts +160 -0
  172. package/dist/number/branded-types/non-zero-uint16.d.mts.map +1 -0
  173. package/dist/number/branded-types/non-zero-uint16.mjs +140 -0
  174. package/dist/number/branded-types/non-zero-uint16.mjs.map +1 -0
  175. package/dist/number/branded-types/non-zero-uint32.d.mts +156 -0
  176. package/dist/number/branded-types/non-zero-uint32.d.mts.map +1 -0
  177. package/dist/number/branded-types/non-zero-uint32.mjs +140 -0
  178. package/dist/number/branded-types/non-zero-uint32.mjs.map +1 -0
  179. package/dist/number/branded-types/positive-finite-number.d.mts +171 -0
  180. package/dist/number/branded-types/positive-finite-number.d.mts.map +1 -0
  181. package/dist/number/branded-types/positive-finite-number.mjs +165 -0
  182. package/dist/number/branded-types/positive-finite-number.mjs.map +1 -0
  183. package/dist/number/branded-types/positive-int.d.mts +270 -0
  184. package/dist/number/branded-types/positive-int.d.mts.map +1 -0
  185. package/dist/number/branded-types/positive-int.mjs +257 -0
  186. package/dist/number/branded-types/positive-int.mjs.map +1 -0
  187. package/dist/number/branded-types/positive-int16.d.mts +162 -0
  188. package/dist/number/branded-types/positive-int16.d.mts.map +1 -0
  189. package/dist/number/branded-types/positive-int16.mjs +139 -0
  190. package/dist/number/branded-types/positive-int16.mjs.map +1 -0
  191. package/dist/number/branded-types/positive-int32.d.mts +158 -0
  192. package/dist/number/branded-types/positive-int32.d.mts.map +1 -0
  193. package/dist/number/branded-types/positive-int32.mjs +139 -0
  194. package/dist/number/branded-types/positive-int32.mjs.map +1 -0
  195. package/dist/number/branded-types/positive-safe-int.d.mts +152 -0
  196. package/dist/number/branded-types/positive-safe-int.d.mts.map +1 -0
  197. package/dist/number/branded-types/positive-safe-int.mjs +138 -0
  198. package/dist/number/branded-types/positive-safe-int.mjs.map +1 -0
  199. package/dist/number/branded-types/positive-uint16.d.mts +160 -0
  200. package/dist/number/branded-types/positive-uint16.d.mts.map +1 -0
  201. package/dist/number/branded-types/positive-uint16.mjs +139 -0
  202. package/dist/number/branded-types/positive-uint16.mjs.map +1 -0
  203. package/dist/number/branded-types/positive-uint32.d.mts +156 -0
  204. package/dist/number/branded-types/positive-uint32.d.mts.map +1 -0
  205. package/dist/number/branded-types/positive-uint32.mjs +139 -0
  206. package/dist/number/branded-types/positive-uint32.mjs.map +1 -0
  207. package/dist/number/branded-types/safe-int.d.mts +243 -0
  208. package/dist/number/branded-types/safe-int.d.mts.map +1 -0
  209. package/dist/number/branded-types/safe-int.mjs +240 -0
  210. package/dist/number/branded-types/safe-int.mjs.map +1 -0
  211. package/dist/number/branded-types/safe-uint.d.mts +151 -0
  212. package/dist/number/branded-types/safe-uint.d.mts.map +1 -0
  213. package/dist/number/branded-types/safe-uint.mjs +138 -0
  214. package/dist/number/branded-types/safe-uint.mjs.map +1 -0
  215. package/dist/number/branded-types/uint.d.mts +144 -0
  216. package/dist/number/branded-types/uint.d.mts.map +1 -0
  217. package/dist/number/branded-types/uint.mjs +132 -0
  218. package/dist/number/branded-types/uint.mjs.map +1 -0
  219. package/dist/number/branded-types/uint16.d.mts +157 -0
  220. package/dist/number/branded-types/uint16.d.mts.map +1 -0
  221. package/dist/number/branded-types/uint16.mjs +137 -0
  222. package/dist/number/branded-types/uint16.mjs.map +1 -0
  223. package/dist/number/branded-types/uint32.d.mts +185 -0
  224. package/dist/number/branded-types/uint32.d.mts.map +1 -0
  225. package/dist/number/branded-types/uint32.mjs +169 -0
  226. package/dist/number/branded-types/uint32.mjs.map +1 -0
  227. package/dist/number/enum/index.d.mts +3 -0
  228. package/dist/number/enum/index.d.mts.map +1 -0
  229. package/dist/number/enum/index.mjs +3 -0
  230. package/dist/number/enum/index.mjs.map +1 -0
  231. package/dist/number/enum/int8.d.mts +202 -0
  232. package/dist/number/enum/int8.d.mts.map +1 -0
  233. package/dist/number/enum/int8.mjs +296 -0
  234. package/dist/number/enum/int8.mjs.map +1 -0
  235. package/dist/number/enum/uint8.d.mts +128 -0
  236. package/dist/number/enum/uint8.d.mts.map +1 -0
  237. package/dist/number/enum/uint8.mjs +251 -0
  238. package/dist/number/enum/uint8.mjs.map +1 -0
  239. package/dist/number/index.d.mts +5 -0
  240. package/dist/number/index.d.mts.map +1 -0
  241. package/dist/number/index.mjs +31 -0
  242. package/dist/number/index.mjs.map +1 -0
  243. package/dist/number/num.d.mts +515 -0
  244. package/dist/number/num.d.mts.map +1 -0
  245. package/dist/number/num.mjs +513 -0
  246. package/dist/number/num.mjs.map +1 -0
  247. package/dist/number/refined-number-utils.d.mts +191 -0
  248. package/dist/number/refined-number-utils.d.mts.map +1 -0
  249. package/dist/number/refined-number-utils.mjs +179 -0
  250. package/dist/number/refined-number-utils.mjs.map +1 -0
  251. package/dist/object/index.d.mts +2 -0
  252. package/dist/object/index.d.mts.map +1 -0
  253. package/dist/object/index.mjs +2 -0
  254. package/dist/object/index.mjs.map +1 -0
  255. package/dist/object/object.d.mts +296 -0
  256. package/dist/object/object.d.mts.map +1 -0
  257. package/dist/object/object.mjs +295 -0
  258. package/dist/object/object.mjs.map +1 -0
  259. package/dist/others/cast-mutable.d.mts +110 -0
  260. package/dist/others/cast-mutable.d.mts.map +1 -0
  261. package/dist/others/cast-mutable.mjs +114 -0
  262. package/dist/others/cast-mutable.mjs.map +1 -0
  263. package/dist/others/cast-readonly.d.mts +189 -0
  264. package/dist/others/cast-readonly.d.mts.map +1 -0
  265. package/dist/others/cast-readonly.mjs +193 -0
  266. package/dist/others/cast-readonly.mjs.map +1 -0
  267. package/dist/others/if-then.d.mts +98 -0
  268. package/dist/others/if-then.d.mts.map +1 -0
  269. package/dist/others/if-then.mjs +100 -0
  270. package/dist/others/if-then.mjs.map +1 -0
  271. package/dist/others/index.d.mts +8 -0
  272. package/dist/others/index.d.mts.map +1 -0
  273. package/dist/others/index.mjs +8 -0
  274. package/dist/others/index.mjs.map +1 -0
  275. package/dist/others/map-nullable.d.mts +151 -0
  276. package/dist/others/map-nullable.d.mts.map +1 -0
  277. package/dist/others/map-nullable.mjs +159 -0
  278. package/dist/others/map-nullable.mjs.map +1 -0
  279. package/dist/others/memoize-function.d.mts +173 -0
  280. package/dist/others/memoize-function.d.mts.map +1 -0
  281. package/dist/others/memoize-function.mjs +189 -0
  282. package/dist/others/memoize-function.mjs.map +1 -0
  283. package/dist/others/tuple.d.mts +159 -0
  284. package/dist/others/tuple.d.mts.map +1 -0
  285. package/dist/others/tuple.mjs +161 -0
  286. package/dist/others/tuple.mjs.map +1 -0
  287. package/dist/others/unknown-to-string.d.mts +180 -0
  288. package/dist/others/unknown-to-string.d.mts.map +1 -0
  289. package/dist/others/unknown-to-string.mjs +211 -0
  290. package/dist/others/unknown-to-string.mjs.map +1 -0
  291. package/dist/tsconfig.json +1 -0
  292. package/package.json +16 -14
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-utils.mjs","sources":["../../src/array/array-utils.mts"],"sourcesContent":[null],"names":["rangeIterator"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './array-utils.mjs';
2
+ export * from './tuple-utils.mjs';
3
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/array/index.mts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { Arr } from './array-utils.mjs';
2
+ export { Tpl } from './tuple-utils.mjs';
3
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,421 @@
1
+ /**
2
+ * A collection of tuple utility functions.
3
+ *
4
+ * Provides type-safe operations for working with tuples (fixed-length arrays).
5
+ * Unlike regular arrays, tuples preserve their exact length and element types
6
+ * at compile time, enabling precise type inference and validation.
7
+ *
8
+ * Key features:
9
+ * - All operations preserve tuple length and element types
10
+ * - Type-safe indexing with compile-time bounds checking
11
+ * - Immutable operations that return new tuples
12
+ * - Precise type inference for transformed elements
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * // Tuples preserve exact types and length
17
+ * const tuple = [1, 'hello', true] as const;
18
+ * type TupleType = typeof tuple; // readonly [1, 'hello', true]
19
+ *
20
+ * // Operations preserve tuple structure
21
+ * const mapped = Tpl.map(tuple, (x) => String(x)); // readonly ['1', 'hello', 'true']
22
+ * const reversed = Tpl.toReversed(tuple); // readonly [true, 'hello', 1]
23
+ * ```
24
+ */
25
+ export declare namespace Tpl {
26
+ /**
27
+ * Returns the length of a tuple as a literal type.
28
+ *
29
+ * Unlike `array.length` which returns `number`, this preserves
30
+ * the exact length as a literal type (e.g., `3` not `number`).
31
+ *
32
+ * @template T - The tuple type whose length will be extracted
33
+ * @param list - The input tuple
34
+ * @returns The length of the tuple as a literal number type
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * const tpl = [1, 2, 3] as const;
39
+ * const len = Tpl.size(tpl); // 3 (literal type, not just number)
40
+ *
41
+ * // Type-level length extraction
42
+ * type Len = Length<typeof tpl>; // 3
43
+ *
44
+ * // Useful for compile-time validation
45
+ * function requiresTriple<T extends readonly [unknown, unknown, unknown]>(t: T) {}
46
+ * const pair = [1, 2] as const;
47
+ * // requiresTriple(pair); // Error: length mismatch
48
+ * ```
49
+ */
50
+ export const size: <const T extends readonly unknown[]>(list: T) => Length<T>;
51
+ export const length: <const T extends readonly unknown[]>(list: T) => Length<T>;
52
+ /**
53
+ * Helper type to refine the result of array search methods.
54
+ *
55
+ * Prevents overly specific number literal types when the search might not find an element.
56
+ * - If T is exactly `number`, it remains `number`
57
+ * - Otherwise, T is returned as-is (preserving literal types)
58
+ *
59
+ * This ensures that index types are practical while maintaining type safety.
60
+ *
61
+ * @template T - The type to map
62
+ * @internal
63
+ */
64
+ type MapNumberToArraySearchResult<T> = T extends number ? TypeEq<T, number> extends true ? number : T : T;
65
+ /**
66
+ * Refines the `IndexOfTuple` type using `MapNumberToArraySearchResult`.
67
+ *
68
+ * Provides accurate types for indices found in a tuple, balancing between
69
+ * type precision and practicality in handling search results.
70
+ *
71
+ * @template T - The tuple type whose indices are being refined
72
+ * @internal
73
+ */
74
+ type IndexOfTupleRefined<T extends readonly unknown[]> = MapNumberToArraySearchResult<IndexOfTuple<T>>;
75
+ /**
76
+ * Finds the index of the first element in a tuple that satisfies the predicate.
77
+ *
78
+ * Returns a type-safe index that can be one of the valid tuple indices or -1.
79
+ * The return type is precisely inferred based on the tuple's length.
80
+ *
81
+ * @template T - The tuple type to search within
82
+ * @param tpl - The input tuple
83
+ * @param predicate - A function to test each element for a condition
84
+ * @returns The index of the first matching element, or -1 if not found
85
+ *
86
+ * @example
87
+ * ```typescript
88
+ * const tpl = [1, 2, 3, 4] as const;
89
+ * const idx1 = Tpl.findIndex(tpl, (x) => x > 2); // 2 | 3 | -1
90
+ * const idx2 = Tpl.findIndex(tpl, (x) => x > 10); // -1
91
+ *
92
+ * // Type-safe indexing
93
+ * if (idx1 !== -1) {
94
+ * const value = tpl[idx1]; // Safe access, TypeScript knows idx1 is valid
95
+ * }
96
+ *
97
+ * // With mixed types
98
+ * const mixed = [1, 'hello', true, null] as const;
99
+ * const strIndex = Tpl.findIndex(mixed, (x) => typeof x === 'string'); // 1 | -1
100
+ * ```
101
+ */
102
+ export const findIndex: <const T extends readonly unknown[]>(tpl: T, predicate: (value: T[number], index: SizeType.Arr) => boolean) => IndexOfTupleRefined<T> | -1;
103
+ /**
104
+ * Returns the first index at which a given element can be found in the tuple.
105
+ *
106
+ * Performs strict equality checking (===) and returns a type-safe index.
107
+ * The return type precisely reflects the possible indices of the tuple.
108
+ *
109
+ * @template T - The tuple type to search within
110
+ * @param tpl - The input tuple
111
+ * @param searchElement - Element to locate in the tuple (must be assignable to tuple's element types)
112
+ * @param fromIndex - Optional index to start the search at (defaults to 0)
113
+ * @returns The first index of the element, or -1 if not found
114
+ *
115
+ * @example
116
+ * ```typescript
117
+ * const tpl = ['a', 'b', 'c', 'b'] as const;
118
+ * const idx1 = Tpl.indexOf(tpl, 'b'); // 1 | 3 | -1 (type shows possible indices)
119
+ * const idx2 = Tpl.indexOf(tpl, 'b', 2); // 3 | -1 (search from index 2)
120
+ * const idx3 = Tpl.indexOf(tpl, 'd'); // -1
121
+ *
122
+ * // Type safety with literal types
123
+ * const nums = [1, 2, 3, 2] as const;
124
+ * const twoIndex = Tpl.indexOf(nums, 2); // 1 | 3 | -1
125
+ * // Tpl.indexOf(nums, '2'); // Error: string not assignable to 1 | 2 | 3
126
+ *
127
+ * // Works with mixed types
128
+ * const mixed = [1, 'hello', true, 1] as const;
129
+ * const oneIndex = Tpl.indexOf(mixed, 1); // 0 | 3 | -1
130
+ * ```
131
+ */
132
+ export const indexOf: <const T extends readonly unknown[]>(tpl: T, searchElement: T[number], fromIndex?: IndexOfTupleRefined<T>) => IndexOfTupleRefined<T> | -1;
133
+ /**
134
+ * Returns the last index at which a given element can be found in the tuple.
135
+ *
136
+ * Searches backwards from the end (or from `fromIndex` if provided) and
137
+ * returns a type-safe index reflecting the tuple's structure.
138
+ *
139
+ * @template T - The tuple type to search within
140
+ * @param tpl - The input tuple
141
+ * @param searchElement - Element to locate in the tuple
142
+ * @param fromIndex - Optional index to start searching backwards from (defaults to last index)
143
+ * @returns The last index of the element, or -1 if not found
144
+ *
145
+ * @example
146
+ * ```typescript
147
+ * const tpl = ['a', 'b', 'c', 'b'] as const;
148
+ * const idx1 = Tpl.lastIndexOf(tpl, 'b'); // 3 | 1 | -1
149
+ * const idx2 = Tpl.lastIndexOf(tpl, 'b', 2); // 1 | -1 (search up to index 2)
150
+ * const idx3 = Tpl.lastIndexOf(tpl, 'd'); // -1
151
+ *
152
+ * // With duplicate values
153
+ * const nums = [1, 2, 3, 2, 1] as const;
154
+ * const lastOne = Tpl.lastIndexOf(nums, 1); // 4 | 0 | -1
155
+ * const lastTwo = Tpl.lastIndexOf(nums, 2); // 3 | 1 | -1
156
+ *
157
+ * // Type safety preserved
158
+ * const mixed = [true, 42, 'str', 42] as const;
159
+ * const last42 = Tpl.lastIndexOf(mixed, 42); // 3 | 1 | -1
160
+ * // Tpl.lastIndexOf(mixed, false); // Error: false not in tuple type
161
+ * ```
162
+ */
163
+ export const lastIndexOf: <const T extends readonly unknown[]>(tpl: T, searchElement: T[number], fromIndex?: IndexOfTupleRefined<T>) => IndexOfTupleRefined<T> | -1;
164
+ /**
165
+ * Creates a new tuple by transforming each element with a mapping function.
166
+ *
167
+ * Preserves the tuple's length while allowing element type transformation.
168
+ * The resulting tuple has the same structure but with transformed element types.
169
+ *
170
+ * @template T - The type of the input tuple
171
+ * @template B - The type that elements will be transformed to
172
+ * @param tpl - The input tuple
173
+ * @param mapFn - Function that transforms each element (receives element and index)
174
+ * @returns A new tuple with transformed elements, preserving the original length
175
+ *
176
+ * @example
177
+ * ```typescript
178
+ * // Basic transformation
179
+ * const nums = [1, 2, 3] as const;
180
+ * const doubled = Tpl.map(nums, (x) => x * 2); // readonly [2, 4, 6]
181
+ * const strings = Tpl.map(nums, (x) => String(x)); // readonly ['1', '2', '3']
182
+ *
183
+ * // With index
184
+ * const indexed = Tpl.map(nums, (x, i) => `${i}:${x}`);
185
+ * // readonly ['0:1', '1:2', '2:3']
186
+ *
187
+ * // Mixed type tuples
188
+ * const mixed = [1, 'hello', true] as const;
189
+ * const descriptions = Tpl.map(mixed, (x) => `Value: ${x}`);
190
+ * // readonly ['Value: 1', 'Value: hello', 'Value: true']
191
+ *
192
+ * // Type transformation preserves tuple structure
193
+ * type Original = readonly [number, string, boolean];
194
+ * type Mapped = { readonly [K in keyof Original]: string };
195
+ * // Mapped = readonly [string, string, string]
196
+ * ```
197
+ */
198
+ export const map: <const T extends readonly unknown[], const B>(tpl: T, mapFn: (a: T[number], index: SizeType.Arr) => B) => { readonly [K in keyof T]: B; };
199
+ /**
200
+ * Returns a new tuple with the element at the specified index replaced.
201
+ *
202
+ * This operation is type-safe with compile-time index validation.
203
+ * The resulting tuple type reflects that the element at the given index
204
+ * may be either the new type or the original type.
205
+ *
206
+ * @template T - The type of the input tuple
207
+ * @template N - The type of the new value to set
208
+ * @param tpl - The input tuple
209
+ * @param index - The index to update (must be valid for the tuple length)
210
+ * @param newValue - The new value to place at the index
211
+ * @returns A new tuple with the updated element
212
+ *
213
+ * @example
214
+ * ```typescript
215
+ * // Basic usage
216
+ * const tpl = ['a', 'b', 'c'] as const;
217
+ * const updated = Tpl.set(tpl, 1, 'B'); // readonly ['a', 'B', 'c']
218
+ *
219
+ * // Type changes are reflected
220
+ * const mixed = [1, 'hello', true] as const;
221
+ * const withNumber = Tpl.set(mixed, 1, 42);
222
+ * // readonly [1, 42 | 'hello', true]
223
+ *
224
+ * // Compile-time index validation
225
+ * const short = [1, 2] as const;
226
+ * // Tpl.set(short, 2, 3); // Error: index 2 is out of bounds
227
+ *
228
+ * // Different value types
229
+ * const nums = [1, 2, 3] as const;
230
+ * const withString = Tpl.set(nums, 0, 'first');
231
+ * // readonly ['first' | 1, 2, 3]
232
+ * ```
233
+ */
234
+ export const set: <const T extends readonly unknown[], const N>(tpl: T, index: Index<Length<T>>, newValue: N) => { readonly [K in keyof T]: N | T[K]; };
235
+ /**
236
+ * Returns a new tuple with an element updated by applying a function.
237
+ *
238
+ * Similar to `set`, but instead of providing a new value directly,
239
+ * you provide a function that transforms the existing value.
240
+ * Useful for computed updates based on the current value.
241
+ *
242
+ * @template T - The type of the input tuple
243
+ * @template N - The type returned by the updater function
244
+ * @param tpl - The input tuple
245
+ * @param index - The index of the element to update
246
+ * @param updater - Function that transforms the current value to a new value
247
+ * @returns A new tuple with the updated element
248
+ *
249
+ * @example
250
+ * ```typescript
251
+ * // Numeric updates
252
+ * const nums = [1, 2, 3] as const;
253
+ * const doubled = Tpl.toUpdated(nums, 1, (x) => x * 10);
254
+ * // readonly [1, 20, 3]
255
+ *
256
+ * // String transformations
257
+ * const strs = ['hello', 'world', '!'] as const;
258
+ * const uppercased = Tpl.toUpdated(strs, 0, (s) => s.toUpperCase());
259
+ * // readonly ['HELLO', 'world', '!']
260
+ *
261
+ * // Complex transformations
262
+ * const data = [{count: 1}, {count: 2}, {count: 3}] as const;
263
+ * const incremented = Tpl.toUpdated(data, 1, (obj) => ({count: obj.count + 1}));
264
+ * // Updates the second object's count to 3
265
+ *
266
+ * // Type changes through updater
267
+ * const mixed = [1, 'hello', true] as const;
268
+ * const stringified = Tpl.toUpdated(mixed, 0, (n) => `Number: ${n}`);
269
+ * // readonly ['Number: 1' | 1, 'hello', true]
270
+ * ```
271
+ */
272
+ export const toUpdated: <const T extends readonly unknown[], const N>(tpl: T, index: SizeType.ArgArrNonNegative | (Index<Length<T>> & SmallUint), updater: (prev: T[number]) => N) => { readonly [K in keyof T]: N | T[K]; };
273
+ /**
274
+ * Reverses a tuple, preserving element types in their new positions.
275
+ *
276
+ * The type system precisely tracks the reversal, so the returned tuple
277
+ * has its element types in the exact reverse order. This is more precise
278
+ * than array reversal which loses positional type information.
279
+ *
280
+ * @template T - The tuple type to reverse
281
+ * @param tpl - The input tuple
282
+ * @returns A new tuple with elements in reverse order and precise typing
283
+ *
284
+ * @example
285
+ * ```typescript
286
+ * // Basic reversal
287
+ * const nums = [1, 2, 3] as const;
288
+ * const reversed = Tpl.toReversed(nums); // readonly [3, 2, 1]
289
+ *
290
+ * // Mixed types preserved in reverse positions
291
+ * const mixed = [1, 'hello', true, null] as const;
292
+ * const revMixed = Tpl.toReversed(mixed);
293
+ * // readonly [null, true, 'hello', 1]
294
+ *
295
+ * // Type-level reversal
296
+ * type Original = readonly [number, string, boolean];
297
+ * type Reversed = Tuple.Reverse<Original>;
298
+ * // Reversed = readonly [boolean, string, number]
299
+ *
300
+ * // Empty and single-element tuples
301
+ * const empty = [] as const;
302
+ * const revEmpty = Tpl.toReversed(empty); // readonly []
303
+ * const single = [42] as const;
304
+ * const revSingle = Tpl.toReversed(single); // readonly [42]
305
+ * ```
306
+ */
307
+ export const toReversed: <const T extends readonly unknown[]>(tpl: T) => Tuple.Reverse<T>;
308
+ /**
309
+ * Sorts a tuple's elements, returning a new tuple with the same length.
310
+ *
311
+ * Unlike array sorting, this preserves the tuple's length but loses
312
+ * positional type information (all positions can contain any element
313
+ * from the original tuple). Default comparison is numeric ascending.
314
+ *
315
+ * @template T - The tuple type to sort
316
+ * @param tpl - The input tuple
317
+ * @param comparator - Optional comparison function (defaults to numeric comparison)
318
+ * @returns A new tuple with sorted elements
319
+ *
320
+ * @example
321
+ * ```typescript
322
+ * // Default numeric sorting
323
+ * const nums = [3, 1, 4, 1, 5] as const;
324
+ * const sorted = Tpl.toSorted(nums); // readonly [1, 1, 3, 4, 5]
325
+ *
326
+ * // Custom comparator
327
+ * const descending = Tpl.toSorted(nums, (a, b) => b - a);
328
+ * // readonly [5, 4, 3, 1, 1]
329
+ *
330
+ * // String sorting with comparator
331
+ * const strs = ['banana', 'apple', 'cherry'] as const;
332
+ * const alphaSorted = Tpl.toSorted(strs, (a, b) => a.localeCompare(b));
333
+ * // readonly ['apple', 'banana', 'cherry']
334
+ *
335
+ * // Mixed types require explicit comparator
336
+ * const mixed = [3, '2', 1, '4'] as const;
337
+ * const mixedSorted = Tpl.toSorted(mixed, (a, b) => Number(a) - Number(b));
338
+ * // readonly ['1', '2', '3', '4'] but typed as (3 | '2' | 1 | '4')[]
339
+ *
340
+ * // Note: Element types become union of all elements
341
+ * type Original = readonly [1, 2, 3];
342
+ * type Sorted = { readonly [K in keyof Original]: Original[number] };
343
+ * // Sorted = readonly [1 | 2 | 3, 1 | 2 | 3, 1 | 2 | 3]
344
+ * ```
345
+ */
346
+ export const toSorted: ToSortedFnOverload;
347
+ type ToSortedFnOverload =
348
+ /**
349
+ * Sort tuple with optional comparator function.
350
+ */
351
+ <const T extends readonly unknown[]>(tpl: T, comparator?: (x: T[number], y: T[number]) => number) => {
352
+ readonly [K in keyof T]: T[number];
353
+ };
354
+ /**
355
+ * Sorts a tuple by derived values from its elements.
356
+ *
357
+ * Allows sorting complex objects by extracting a sortable value from each.
358
+ * Like `toSorted`, this preserves tuple length but element types become
359
+ * a union of all possible elements.
360
+ *
361
+ * @template T - The tuple type to sort
362
+ * @template B - The type of values used for comparison
363
+ * @param tpl - The input tuple
364
+ * @param comparatorValueMapper - Function to extract comparison value from each element
365
+ * @param comparator - Optional comparator for the extracted values
366
+ * @returns A new sorted tuple
367
+ *
368
+ * @example
369
+ * ```typescript
370
+ * // Sort objects by numeric property
371
+ * const users = [
372
+ * {name: 'Alice', age: 30},
373
+ * {name: 'Bob', age: 20},
374
+ * {name: 'Charlie', age: 25}
375
+ * ] as const;
376
+ * const byAge = Tpl.toSortedBy(users, (user) => user.age);
377
+ * // [{name: 'Bob', age: 20}, {name: 'Charlie', age: 25}, {name: 'Alice', age: 30}]
378
+ *
379
+ * // Sort by string property with custom comparator
380
+ * const byNameDesc = Tpl.toSortedBy(
381
+ * users,
382
+ * (user) => user.name,
383
+ * (a, b) => b.localeCompare(a)
384
+ * );
385
+ * // Sorted by name in descending order
386
+ *
387
+ * // Sort by computed values
388
+ * const points = [{x: 3, y: 4}, {x: 1, y: 1}, {x: 2, y: 2}] as const;
389
+ * const byDistance = Tpl.toSortedBy(
390
+ * points,
391
+ * (p) => Math.sqrt(p.x ** 2 + p.y ** 2)
392
+ * );
393
+ * // Sorted by distance from origin
394
+ *
395
+ * // Custom comparator for complex sorting
396
+ * const items = [{priority: 1, name: 'A'}, {priority: 1, name: 'B'}] as const;
397
+ * const sorted = Tpl.toSortedBy(
398
+ * items,
399
+ * (item) => item.priority,
400
+ * (a, b) => b - a // High priority first
401
+ * );
402
+ * ```
403
+ */
404
+ export const toSortedBy: ToSortedByFnOverload;
405
+ type ToSortedByFnOverload = {
406
+ /**
407
+ * Sort by numeric values (default numeric comparison).
408
+ */
409
+ <const T extends readonly unknown[]>(tpl: T, comparatorValueMapper: (value: T[number]) => number, comparator?: (x: number, y: number) => number): Readonly<{
410
+ [K in keyof T]: T[number];
411
+ }>;
412
+ /**
413
+ * Sort by any comparable values with required comparator.
414
+ */
415
+ <const T extends readonly unknown[], const B>(tpl: T, comparatorValueMapper: (value: T[number]) => B, comparator: (x: B, y: B) => number): Readonly<{
416
+ [K in keyof T]: T[number];
417
+ }>;
418
+ };
419
+ export {};
420
+ }
421
+ //# sourceMappingURL=tuple-utils.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tuple-utils.d.mts","sourceRoot":"","sources":["../../src/array/tuple-utils.mts"],"names":[],"mappings":"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"}