structured-outputs 0.1.0-beta.2 → 0.1.0-beta.20

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 (565) hide show
  1. package/README.md +77 -6
  2. package/esm/ResponseFormat.js +33 -5
  3. package/esm/ResponseFormat.js.map +1 -1
  4. package/esm/Tool.js +17 -0
  5. package/esm/Tool.js.map +1 -0
  6. package/esm/_dnt.polyfills.js +16 -0
  7. package/esm/_dnt.polyfills.js.map +1 -0
  8. package/esm/_dnt.shims.js +58 -0
  9. package/esm/_dnt.shims.js.map +1 -0
  10. package/esm/deps/jsr.io/@std/assert/1.0.8/almost_equals.js +47 -0
  11. package/esm/deps/jsr.io/@std/assert/1.0.8/almost_equals.js.map +1 -0
  12. package/esm/deps/jsr.io/@std/assert/1.0.8/array_includes.js +47 -0
  13. package/esm/deps/jsr.io/@std/assert/1.0.8/array_includes.js.map +1 -0
  14. package/esm/deps/jsr.io/@std/assert/1.0.8/assert.js +23 -0
  15. package/esm/deps/jsr.io/@std/assert/1.0.8/assert.js.map +1 -0
  16. package/esm/deps/jsr.io/@std/assert/1.0.8/assertion_error.js +31 -0
  17. package/esm/deps/jsr.io/@std/assert/1.0.8/assertion_error.js.map +1 -0
  18. package/esm/deps/jsr.io/@std/assert/1.0.8/equal.js +184 -0
  19. package/esm/deps/jsr.io/@std/assert/1.0.8/equal.js.map +1 -0
  20. package/esm/deps/jsr.io/@std/assert/1.0.8/equals.js +46 -0
  21. package/esm/deps/jsr.io/@std/assert/1.0.8/equals.js.map +1 -0
  22. package/esm/deps/jsr.io/@std/assert/1.0.8/exists.js +28 -0
  23. package/esm/deps/jsr.io/@std/assert/1.0.8/exists.js.map +1 -0
  24. package/esm/deps/jsr.io/@std/assert/1.0.8/fail.js +21 -0
  25. package/esm/deps/jsr.io/@std/assert/1.0.8/fail.js.map +1 -0
  26. package/esm/deps/jsr.io/@std/assert/1.0.8/false.js +23 -0
  27. package/esm/deps/jsr.io/@std/assert/1.0.8/false.js.map +1 -0
  28. package/esm/deps/jsr.io/@std/assert/1.0.8/greater.js +30 -0
  29. package/esm/deps/jsr.io/@std/assert/1.0.8/greater.js.map +1 -0
  30. package/esm/deps/jsr.io/@std/assert/1.0.8/greater_or_equal.js +30 -0
  31. package/esm/deps/jsr.io/@std/assert/1.0.8/greater_or_equal.js.map +1 -0
  32. package/esm/deps/jsr.io/@std/assert/1.0.8/instance_of.js +53 -0
  33. package/esm/deps/jsr.io/@std/assert/1.0.8/instance_of.js.map +1 -0
  34. package/esm/deps/jsr.io/@std/assert/1.0.8/is_error.js +54 -0
  35. package/esm/deps/jsr.io/@std/assert/1.0.8/is_error.js.map +1 -0
  36. package/esm/deps/jsr.io/@std/assert/1.0.8/less.js +29 -0
  37. package/esm/deps/jsr.io/@std/assert/1.0.8/less.js.map +1 -0
  38. package/esm/deps/jsr.io/@std/assert/1.0.8/less_or_equal.js +30 -0
  39. package/esm/deps/jsr.io/@std/assert/1.0.8/less_or_equal.js.map +1 -0
  40. package/esm/deps/jsr.io/@std/assert/1.0.8/match.js +27 -0
  41. package/esm/deps/jsr.io/@std/assert/1.0.8/match.js.map +1 -0
  42. package/esm/deps/jsr.io/@std/assert/1.0.8/mod.js +46 -0
  43. package/esm/deps/jsr.io/@std/assert/1.0.8/mod.js.map +1 -0
  44. package/esm/deps/jsr.io/@std/assert/1.0.8/not_equals.js +33 -0
  45. package/esm/deps/jsr.io/@std/assert/1.0.8/not_equals.js.map +1 -0
  46. package/esm/deps/jsr.io/@std/assert/1.0.8/not_instance_of.js +30 -0
  47. package/esm/deps/jsr.io/@std/assert/1.0.8/not_instance_of.js.map +1 -0
  48. package/esm/deps/jsr.io/@std/assert/1.0.8/not_match.js +27 -0
  49. package/esm/deps/jsr.io/@std/assert/1.0.8/not_match.js.map +1 -0
  50. package/esm/deps/jsr.io/@std/assert/1.0.8/not_strict_equals.js +33 -0
  51. package/esm/deps/jsr.io/@std/assert/1.0.8/not_strict_equals.js.map +1 -0
  52. package/esm/deps/jsr.io/@std/assert/1.0.8/object_match.js +160 -0
  53. package/esm/deps/jsr.io/@std/assert/1.0.8/object_match.js.map +1 -0
  54. package/esm/deps/jsr.io/@std/assert/1.0.8/rejects.js +54 -0
  55. package/esm/deps/jsr.io/@std/assert/1.0.8/rejects.js.map +1 -0
  56. package/esm/deps/jsr.io/@std/assert/1.0.8/strict_equals.js +58 -0
  57. package/esm/deps/jsr.io/@std/assert/1.0.8/strict_equals.js.map +1 -0
  58. package/esm/deps/jsr.io/@std/assert/1.0.8/string_includes.js +27 -0
  59. package/esm/deps/jsr.io/@std/assert/1.0.8/string_includes.js.map +1 -0
  60. package/esm/deps/jsr.io/@std/assert/1.0.8/throws.js +45 -0
  61. package/esm/deps/jsr.io/@std/assert/1.0.8/throws.js.map +1 -0
  62. package/esm/deps/jsr.io/@std/assert/1.0.8/unimplemented.js +21 -0
  63. package/esm/deps/jsr.io/@std/assert/1.0.8/unimplemented.js.map +1 -0
  64. package/esm/deps/jsr.io/@std/assert/1.0.8/unreachable.js +21 -0
  65. package/esm/deps/jsr.io/@std/assert/1.0.8/unreachable.js.map +1 -0
  66. package/esm/deps/jsr.io/@std/collections/1.0.9/_utils.js +19 -0
  67. package/esm/deps/jsr.io/@std/collections/1.0.9/_utils.js.map +1 -0
  68. package/esm/deps/jsr.io/@std/collections/1.0.9/aggregate_groups.js +51 -0
  69. package/esm/deps/jsr.io/@std/collections/1.0.9/aggregate_groups.js.map +1 -0
  70. package/esm/deps/jsr.io/@std/collections/1.0.9/associate_by.js +45 -0
  71. package/esm/deps/jsr.io/@std/collections/1.0.9/associate_by.js.map +1 -0
  72. package/esm/deps/jsr.io/@std/collections/1.0.9/associate_with.js +41 -0
  73. package/esm/deps/jsr.io/@std/collections/1.0.9/associate_with.js.map +1 -0
  74. package/esm/deps/jsr.io/@std/collections/1.0.9/chunk.js +51 -0
  75. package/esm/deps/jsr.io/@std/collections/1.0.9/chunk.js.map +1 -0
  76. package/esm/deps/jsr.io/@std/collections/1.0.9/deep_merge.js +96 -0
  77. package/esm/deps/jsr.io/@std/collections/1.0.9/deep_merge.js.map +1 -0
  78. package/esm/deps/jsr.io/@std/collections/1.0.9/distinct.js +28 -0
  79. package/esm/deps/jsr.io/@std/collections/1.0.9/distinct.js.map +1 -0
  80. package/esm/deps/jsr.io/@std/collections/1.0.9/distinct_by.js +39 -0
  81. package/esm/deps/jsr.io/@std/collections/1.0.9/distinct_by.js.map +1 -0
  82. package/esm/deps/jsr.io/@std/collections/1.0.9/drop_last_while.js +33 -0
  83. package/esm/deps/jsr.io/@std/collections/1.0.9/drop_last_while.js.map +1 -0
  84. package/esm/deps/jsr.io/@std/collections/1.0.9/drop_while.js +34 -0
  85. package/esm/deps/jsr.io/@std/collections/1.0.9/drop_while.js.map +1 -0
  86. package/esm/deps/jsr.io/@std/collections/1.0.9/filter_entries.js +43 -0
  87. package/esm/deps/jsr.io/@std/collections/1.0.9/filter_entries.js.map +1 -0
  88. package/esm/deps/jsr.io/@std/collections/1.0.9/filter_keys.js +46 -0
  89. package/esm/deps/jsr.io/@std/collections/1.0.9/filter_keys.js.map +1 -0
  90. package/esm/deps/jsr.io/@std/collections/1.0.9/filter_values.js +46 -0
  91. package/esm/deps/jsr.io/@std/collections/1.0.9/filter_values.js.map +1 -0
  92. package/esm/deps/jsr.io/@std/collections/1.0.9/find_single.js +45 -0
  93. package/esm/deps/jsr.io/@std/collections/1.0.9/find_single.js.map +1 -0
  94. package/esm/deps/jsr.io/@std/collections/1.0.9/first_not_nullish_of.js +42 -0
  95. package/esm/deps/jsr.io/@std/collections/1.0.9/first_not_nullish_of.js.map +1 -0
  96. package/esm/deps/jsr.io/@std/collections/1.0.9/includes_value.js +39 -0
  97. package/esm/deps/jsr.io/@std/collections/1.0.9/includes_value.js.map +1 -0
  98. package/esm/deps/jsr.io/@std/collections/1.0.9/intersect.js +36 -0
  99. package/esm/deps/jsr.io/@std/collections/1.0.9/intersect.js.map +1 -0
  100. package/esm/deps/jsr.io/@std/collections/1.0.9/invert.js +29 -0
  101. package/esm/deps/jsr.io/@std/collections/1.0.9/invert.js.map +1 -0
  102. package/esm/deps/jsr.io/@std/collections/1.0.9/invert_by.js +46 -0
  103. package/esm/deps/jsr.io/@std/collections/1.0.9/invert_by.js.map +1 -0
  104. package/esm/deps/jsr.io/@std/collections/1.0.9/join_to_string.js +59 -0
  105. package/esm/deps/jsr.io/@std/collections/1.0.9/join_to_string.js.map +1 -0
  106. package/esm/deps/jsr.io/@std/collections/1.0.9/map_entries.js +47 -0
  107. package/esm/deps/jsr.io/@std/collections/1.0.9/map_entries.js.map +1 -0
  108. package/esm/deps/jsr.io/@std/collections/1.0.9/map_keys.js +42 -0
  109. package/esm/deps/jsr.io/@std/collections/1.0.9/map_keys.js.map +1 -0
  110. package/esm/deps/jsr.io/@std/collections/1.0.9/map_not_nullish.js +43 -0
  111. package/esm/deps/jsr.io/@std/collections/1.0.9/map_not_nullish.js.map +1 -0
  112. package/esm/deps/jsr.io/@std/collections/1.0.9/map_values.js +13 -0
  113. package/esm/deps/jsr.io/@std/collections/1.0.9/map_values.js.map +1 -0
  114. package/esm/deps/jsr.io/@std/collections/1.0.9/max_by.js +15 -0
  115. package/esm/deps/jsr.io/@std/collections/1.0.9/max_by.js.map +1 -0
  116. package/esm/deps/jsr.io/@std/collections/1.0.9/max_of.js +17 -0
  117. package/esm/deps/jsr.io/@std/collections/1.0.9/max_of.js.map +1 -0
  118. package/esm/deps/jsr.io/@std/collections/1.0.9/max_with.js +41 -0
  119. package/esm/deps/jsr.io/@std/collections/1.0.9/max_with.js.map +1 -0
  120. package/esm/deps/jsr.io/@std/collections/1.0.9/min_by.js +15 -0
  121. package/esm/deps/jsr.io/@std/collections/1.0.9/min_by.js.map +1 -0
  122. package/esm/deps/jsr.io/@std/collections/1.0.9/min_of.js +17 -0
  123. package/esm/deps/jsr.io/@std/collections/1.0.9/min_of.js.map +1 -0
  124. package/esm/deps/jsr.io/@std/collections/1.0.9/min_with.js +37 -0
  125. package/esm/deps/jsr.io/@std/collections/1.0.9/min_with.js.map +1 -0
  126. package/esm/deps/jsr.io/@std/collections/1.0.9/mod.js +75 -0
  127. package/esm/deps/jsr.io/@std/collections/1.0.9/mod.js.map +1 -0
  128. package/esm/deps/jsr.io/@std/collections/1.0.9/omit.js +29 -0
  129. package/esm/deps/jsr.io/@std/collections/1.0.9/omit.js.map +1 -0
  130. package/esm/deps/jsr.io/@std/collections/1.0.9/partition.js +16 -0
  131. package/esm/deps/jsr.io/@std/collections/1.0.9/partition.js.map +1 -0
  132. package/esm/deps/jsr.io/@std/collections/1.0.9/partition_entries.js +54 -0
  133. package/esm/deps/jsr.io/@std/collections/1.0.9/partition_entries.js.map +1 -0
  134. package/esm/deps/jsr.io/@std/collections/1.0.9/permutations.js +58 -0
  135. package/esm/deps/jsr.io/@std/collections/1.0.9/permutations.js.map +1 -0
  136. package/esm/deps/jsr.io/@std/collections/1.0.9/pick.js +33 -0
  137. package/esm/deps/jsr.io/@std/collections/1.0.9/pick.js.map +1 -0
  138. package/esm/deps/jsr.io/@std/collections/1.0.9/reduce_groups.js +40 -0
  139. package/esm/deps/jsr.io/@std/collections/1.0.9/reduce_groups.js.map +1 -0
  140. package/esm/deps/jsr.io/@std/collections/1.0.9/running_reduce.js +32 -0
  141. package/esm/deps/jsr.io/@std/collections/1.0.9/running_reduce.js.map +1 -0
  142. package/esm/deps/jsr.io/@std/collections/1.0.9/sample.js +35 -0
  143. package/esm/deps/jsr.io/@std/collections/1.0.9/sample.js.map +1 -0
  144. package/esm/deps/jsr.io/@std/collections/1.0.9/sliding_windows.js +57 -0
  145. package/esm/deps/jsr.io/@std/collections/1.0.9/sliding_windows.js.map +1 -0
  146. package/esm/deps/jsr.io/@std/collections/1.0.9/sort_by.js +30 -0
  147. package/esm/deps/jsr.io/@std/collections/1.0.9/sort_by.js.map +1 -0
  148. package/esm/deps/jsr.io/@std/collections/1.0.9/sum_of.js +37 -0
  149. package/esm/deps/jsr.io/@std/collections/1.0.9/sum_of.js.map +1 -0
  150. package/esm/deps/jsr.io/@std/collections/1.0.9/take_last_while.js +34 -0
  151. package/esm/deps/jsr.io/@std/collections/1.0.9/take_last_while.js.map +1 -0
  152. package/esm/deps/jsr.io/@std/collections/1.0.9/take_while.js +39 -0
  153. package/esm/deps/jsr.io/@std/collections/1.0.9/take_while.js.map +1 -0
  154. package/esm/deps/jsr.io/@std/collections/1.0.9/union.js +34 -0
  155. package/esm/deps/jsr.io/@std/collections/1.0.9/union.js.map +1 -0
  156. package/esm/deps/jsr.io/@std/collections/1.0.9/unzip.js +46 -0
  157. package/esm/deps/jsr.io/@std/collections/1.0.9/unzip.js.map +1 -0
  158. package/esm/deps/jsr.io/@std/collections/1.0.9/without_all.js +28 -0
  159. package/esm/deps/jsr.io/@std/collections/1.0.9/without_all.js.map +1 -0
  160. package/esm/deps/jsr.io/@std/collections/1.0.9/zip.js +43 -0
  161. package/esm/deps/jsr.io/@std/collections/1.0.9/zip.js.map +1 -0
  162. package/esm/deps/jsr.io/@std/internal/1.0.5/build_message.js +111 -0
  163. package/esm/deps/jsr.io/@std/internal/1.0.5/build_message.js.map +1 -0
  164. package/esm/deps/jsr.io/@std/internal/1.0.5/diff.js +277 -0
  165. package/esm/deps/jsr.io/@std/internal/1.0.5/diff.js.map +1 -0
  166. package/esm/deps/jsr.io/@std/internal/1.0.5/diff_str.js +180 -0
  167. package/esm/deps/jsr.io/@std/internal/1.0.5/diff_str.js.map +1 -0
  168. package/esm/deps/jsr.io/@std/internal/1.0.5/format.js +38 -0
  169. package/esm/deps/jsr.io/@std/internal/1.0.5/format.js.map +1 -0
  170. package/esm/deps/jsr.io/@std/internal/1.0.5/styles.js +208 -0
  171. package/esm/deps/jsr.io/@std/internal/1.0.5/styles.js.map +1 -0
  172. package/esm/deps/jsr.io/@std/internal/1.0.5/types.js +3 -0
  173. package/esm/deps/jsr.io/@std/internal/1.0.5/types.js.map +1 -0
  174. package/esm/mod.js +3 -10
  175. package/esm/mod.js.map +1 -1
  176. package/esm/types/Ref.js +11 -0
  177. package/esm/types/Ref.js.map +1 -0
  178. package/esm/types/RootTy.js +19 -0
  179. package/esm/types/RootTy.js.map +1 -0
  180. package/esm/types/Ty.js +17 -0
  181. package/esm/types/Ty.js.map +1 -0
  182. package/esm/types/array.js +9 -0
  183. package/esm/types/array.js.map +1 -0
  184. package/esm/types/constant.js +8 -0
  185. package/esm/types/constant.js.map +1 -0
  186. package/esm/types/constantUnion.js +25 -0
  187. package/esm/types/constantUnion.js.map +1 -0
  188. package/esm/types/leaves.js +18 -0
  189. package/esm/types/leaves.js.map +1 -0
  190. package/esm/types/mod.js +11 -0
  191. package/esm/types/mod.js.map +1 -0
  192. package/esm/{object.js → types/object.js} +4 -4
  193. package/esm/types/object.js.map +1 -0
  194. package/esm/types/std/Option.js +9 -0
  195. package/esm/types/std/Option.js.map +1 -0
  196. package/esm/types/std/Wrapper.js +5 -0
  197. package/esm/types/std/Wrapper.js.map +1 -0
  198. package/esm/types/std/mod.js +3 -0
  199. package/esm/types/std/mod.js.map +1 -0
  200. package/esm/types/taggedUnion.js +20 -0
  201. package/esm/types/taggedUnion.js.map +1 -0
  202. package/esm/util/phantoms.js +4 -0
  203. package/esm/util/phantoms.js.map +1 -0
  204. package/esm/util/recombineTaggedTemplateArgs.js +4 -0
  205. package/esm/util/recombineTaggedTemplateArgs.js.map +1 -0
  206. package/package.json +10 -7
  207. package/src/ResponseFormat.ts +76 -25
  208. package/src/Tool.ts +38 -0
  209. package/src/_dnt.polyfills.ts +27 -0
  210. package/src/_dnt.shims.ts +60 -0
  211. package/src/deps/jsr.io/@std/assert/1.0.8/almost_equals.ts +55 -0
  212. package/src/deps/jsr.io/@std/assert/1.0.8/array_includes.ts +57 -0
  213. package/src/deps/jsr.io/@std/assert/1.0.8/assert.ts +23 -0
  214. package/src/deps/jsr.io/@std/assert/1.0.8/assertion_error.ts +31 -0
  215. package/src/deps/jsr.io/@std/assert/1.0.8/equal.ts +210 -0
  216. package/src/deps/jsr.io/@std/assert/1.0.8/equals.ts +52 -0
  217. package/src/deps/jsr.io/@std/assert/1.0.8/exists.ts +31 -0
  218. package/src/deps/jsr.io/@std/assert/1.0.8/fail.ts +21 -0
  219. package/src/deps/jsr.io/@std/assert/1.0.8/false.ts +26 -0
  220. package/src/deps/jsr.io/@std/assert/1.0.8/greater.ts +30 -0
  221. package/src/deps/jsr.io/@std/assert/1.0.8/greater_or_equal.ts +36 -0
  222. package/src/deps/jsr.io/@std/assert/1.0.8/instance_of.ts +64 -0
  223. package/src/deps/jsr.io/@std/assert/1.0.8/is_error.ts +65 -0
  224. package/src/deps/jsr.io/@std/assert/1.0.8/less.ts +29 -0
  225. package/src/deps/jsr.io/@std/assert/1.0.8/less_or_equal.ts +36 -0
  226. package/src/deps/jsr.io/@std/assert/1.0.8/match.ts +30 -0
  227. package/src/deps/jsr.io/@std/assert/1.0.8/mod.ts +47 -0
  228. package/src/deps/jsr.io/@std/assert/1.0.8/not_equals.ts +36 -0
  229. package/src/deps/jsr.io/@std/assert/1.0.8/not_instance_of.ts +33 -0
  230. package/src/deps/jsr.io/@std/assert/1.0.8/not_match.ts +30 -0
  231. package/src/deps/jsr.io/@std/assert/1.0.8/not_strict_equals.ts +42 -0
  232. package/src/deps/jsr.io/@std/assert/1.0.8/object_match.ts +202 -0
  233. package/src/deps/jsr.io/@std/assert/1.0.8/rejects.ts +123 -0
  234. package/src/deps/jsr.io/@std/assert/1.0.8/strict_equals.ts +67 -0
  235. package/src/deps/jsr.io/@std/assert/1.0.8/string_includes.ts +30 -0
  236. package/src/deps/jsr.io/@std/assert/1.0.8/throws.ts +111 -0
  237. package/src/deps/jsr.io/@std/assert/1.0.8/unimplemented.ts +21 -0
  238. package/src/deps/jsr.io/@std/assert/1.0.8/unreachable.ts +21 -0
  239. package/src/deps/jsr.io/@std/collections/1.0.9/_utils.ts +26 -0
  240. package/src/deps/jsr.io/@std/collections/1.0.9/aggregate_groups.ts +62 -0
  241. package/src/deps/jsr.io/@std/collections/1.0.9/associate_by.ts +50 -0
  242. package/src/deps/jsr.io/@std/collections/1.0.9/associate_with.ts +46 -0
  243. package/src/deps/jsr.io/@std/collections/1.0.9/chunk.ts +56 -0
  244. package/src/deps/jsr.io/@std/collections/1.0.9/deep_merge.ts +578 -0
  245. package/src/deps/jsr.io/@std/collections/1.0.9/distinct.ts +29 -0
  246. package/src/deps/jsr.io/@std/collections/1.0.9/distinct_by.ts +42 -0
  247. package/src/deps/jsr.io/@std/collections/1.0.9/drop_last_while.ts +36 -0
  248. package/src/deps/jsr.io/@std/collections/1.0.9/drop_while.ts +39 -0
  249. package/src/deps/jsr.io/@std/collections/1.0.9/filter_entries.ts +48 -0
  250. package/src/deps/jsr.io/@std/collections/1.0.9/filter_keys.ts +51 -0
  251. package/src/deps/jsr.io/@std/collections/1.0.9/filter_values.ts +51 -0
  252. package/src/deps/jsr.io/@std/collections/1.0.9/find_single.ts +48 -0
  253. package/src/deps/jsr.io/@std/collections/1.0.9/first_not_nullish_of.ts +47 -0
  254. package/src/deps/jsr.io/@std/collections/1.0.9/includes_value.ts +45 -0
  255. package/src/deps/jsr.io/@std/collections/1.0.9/intersect.ts +35 -0
  256. package/src/deps/jsr.io/@std/collections/1.0.9/invert.ts +38 -0
  257. package/src/deps/jsr.io/@std/collections/1.0.9/invert_by.ts +56 -0
  258. package/src/deps/jsr.io/@std/collections/1.0.9/join_to_string.ts +109 -0
  259. package/src/deps/jsr.io/@std/collections/1.0.9/map_entries.ts +53 -0
  260. package/src/deps/jsr.io/@std/collections/1.0.9/map_keys.ts +47 -0
  261. package/src/deps/jsr.io/@std/collections/1.0.9/map_not_nullish.ts +49 -0
  262. package/src/deps/jsr.io/@std/collections/1.0.9/map_values.ts +96 -0
  263. package/src/deps/jsr.io/@std/collections/1.0.9/max_by.ts +153 -0
  264. package/src/deps/jsr.io/@std/collections/1.0.9/max_of.ts +90 -0
  265. package/src/deps/jsr.io/@std/collections/1.0.9/max_with.ts +46 -0
  266. package/src/deps/jsr.io/@std/collections/1.0.9/min_by.ts +151 -0
  267. package/src/deps/jsr.io/@std/collections/1.0.9/min_of.ts +90 -0
  268. package/src/deps/jsr.io/@std/collections/1.0.9/min_with.ts +42 -0
  269. package/src/deps/jsr.io/@std/collections/1.0.9/mod.ts +76 -0
  270. package/src/deps/jsr.io/@std/collections/1.0.9/omit.ts +34 -0
  271. package/src/deps/jsr.io/@std/collections/1.0.9/partition.ts +85 -0
  272. package/src/deps/jsr.io/@std/collections/1.0.9/partition_entries.ts +58 -0
  273. package/src/deps/jsr.io/@std/collections/1.0.9/permutations.ts +66 -0
  274. package/src/deps/jsr.io/@std/collections/1.0.9/pick.ts +34 -0
  275. package/src/deps/jsr.io/@std/collections/1.0.9/reduce_groups.ts +45 -0
  276. package/src/deps/jsr.io/@std/collections/1.0.9/running_reduce.ts +38 -0
  277. package/src/deps/jsr.io/@std/collections/1.0.9/sample.ts +36 -0
  278. package/src/deps/jsr.io/@std/collections/1.0.9/sliding_windows.ts +86 -0
  279. package/src/deps/jsr.io/@std/collections/1.0.9/sort_by.ts +219 -0
  280. package/src/deps/jsr.io/@std/collections/1.0.9/sum_of.ts +42 -0
  281. package/src/deps/jsr.io/@std/collections/1.0.9/take_last_while.ts +37 -0
  282. package/src/deps/jsr.io/@std/collections/1.0.9/take_while.ts +44 -0
  283. package/src/deps/jsr.io/@std/collections/1.0.9/union.ts +36 -0
  284. package/src/deps/jsr.io/@std/collections/1.0.9/unzip.ts +50 -0
  285. package/src/deps/jsr.io/@std/collections/1.0.9/without_all.ts +28 -0
  286. package/src/deps/jsr.io/@std/collections/1.0.9/zip.ts +49 -0
  287. package/src/deps/jsr.io/@std/internal/1.0.5/build_message.ts +134 -0
  288. package/src/deps/jsr.io/@std/internal/1.0.5/diff.ts +317 -0
  289. package/src/deps/jsr.io/@std/internal/1.0.5/diff_str.ts +204 -0
  290. package/src/deps/jsr.io/@std/internal/1.0.5/format.ts +39 -0
  291. package/src/deps/jsr.io/@std/internal/1.0.5/styles.ts +233 -0
  292. package/src/deps/jsr.io/@std/internal/1.0.5/types.ts +18 -0
  293. package/src/mod.ts +3 -18
  294. package/src/types/Ref.ts +16 -0
  295. package/src/types/RootTy.ts +40 -0
  296. package/src/types/Ty.ts +57 -0
  297. package/src/types/array.ts +9 -0
  298. package/src/types/constant.ts +8 -0
  299. package/src/types/constantUnion.ts +27 -0
  300. package/src/types/leaves.ts +21 -0
  301. package/src/types/mod.ts +10 -0
  302. package/src/types/object.ts +15 -0
  303. package/src/types/std/Option.ts +15 -0
  304. package/src/types/std/Wrapper.ts +8 -0
  305. package/src/types/std/mod.ts +2 -0
  306. package/src/types/taggedUnion.ts +28 -0
  307. package/src/util/phantoms.ts +3 -0
  308. package/src/util/recombineTaggedTemplateArgs.ts +6 -0
  309. package/types/ResponseFormat.d.ts +26 -0
  310. package/types/ResponseFormat.d.ts.map +1 -0
  311. package/types/Tool.d.ts +13 -0
  312. package/types/Tool.d.ts.map +1 -0
  313. package/types/_dnt.polyfills.d.ts +12 -0
  314. package/types/_dnt.polyfills.d.ts.map +1 -0
  315. package/types/_dnt.shims.d.ts +2 -0
  316. package/types/_dnt.shims.d.ts.map +1 -0
  317. package/types/deps/jsr.io/@std/assert/1.0.8/almost_equals.d.ts +29 -0
  318. package/types/deps/jsr.io/@std/assert/1.0.8/almost_equals.d.ts.map +1 -0
  319. package/types/deps/jsr.io/@std/assert/1.0.8/array_includes.d.ts +24 -0
  320. package/types/deps/jsr.io/@std/assert/1.0.8/array_includes.d.ts.map +1 -0
  321. package/types/deps/jsr.io/@std/assert/1.0.8/assert.d.ts +16 -0
  322. package/types/deps/jsr.io/@std/assert/1.0.8/assert.d.ts.map +1 -0
  323. package/types/deps/jsr.io/@std/assert/1.0.8/assertion_error.d.ts +26 -0
  324. package/types/deps/jsr.io/@std/assert/1.0.8/assertion_error.d.ts.map +1 -0
  325. package/types/deps/jsr.io/@std/assert/1.0.8/equal.d.ts +17 -0
  326. package/types/deps/jsr.io/@std/assert/1.0.8/equal.d.ts.map +1 -0
  327. package/types/deps/jsr.io/@std/assert/1.0.8/equals.d.ts +22 -0
  328. package/types/deps/jsr.io/@std/assert/1.0.8/equals.d.ts.map +1 -0
  329. package/types/deps/jsr.io/@std/assert/1.0.8/exists.d.ts +18 -0
  330. package/types/deps/jsr.io/@std/assert/1.0.8/exists.d.ts.map +1 -0
  331. package/types/deps/jsr.io/@std/assert/1.0.8/fail.d.ts +15 -0
  332. package/types/deps/jsr.io/@std/assert/1.0.8/fail.d.ts.map +1 -0
  333. package/types/deps/jsr.io/@std/assert/1.0.8/false.d.ts +18 -0
  334. package/types/deps/jsr.io/@std/assert/1.0.8/false.d.ts.map +1 -0
  335. package/types/deps/jsr.io/@std/assert/1.0.8/greater.d.ts +20 -0
  336. package/types/deps/jsr.io/@std/assert/1.0.8/greater.d.ts.map +1 -0
  337. package/types/deps/jsr.io/@std/assert/1.0.8/greater_or_equal.d.ts +20 -0
  338. package/types/deps/jsr.io/@std/assert/1.0.8/greater_or_equal.d.ts.map +1 -0
  339. package/types/deps/jsr.io/@std/assert/1.0.8/instance_of.d.ts +23 -0
  340. package/types/deps/jsr.io/@std/assert/1.0.8/instance_of.d.ts.map +1 -0
  341. package/types/deps/jsr.io/@std/assert/1.0.8/is_error.d.ts +25 -0
  342. package/types/deps/jsr.io/@std/assert/1.0.8/is_error.d.ts.map +1 -0
  343. package/types/deps/jsr.io/@std/assert/1.0.8/less.d.ts +19 -0
  344. package/types/deps/jsr.io/@std/assert/1.0.8/less.d.ts.map +1 -0
  345. package/types/deps/jsr.io/@std/assert/1.0.8/less_or_equal.d.ts +20 -0
  346. package/types/deps/jsr.io/@std/assert/1.0.8/less_or_equal.d.ts.map +1 -0
  347. package/types/deps/jsr.io/@std/assert/1.0.8/match.d.ts +18 -0
  348. package/types/deps/jsr.io/@std/assert/1.0.8/match.d.ts.map +1 -0
  349. package/types/deps/jsr.io/@std/assert/1.0.8/mod.d.ts +44 -0
  350. package/types/deps/jsr.io/@std/assert/1.0.8/mod.d.ts.map +1 -0
  351. package/types/deps/jsr.io/@std/assert/1.0.8/not_equals.d.ts +21 -0
  352. package/types/deps/jsr.io/@std/assert/1.0.8/not_equals.d.ts.map +1 -0
  353. package/types/deps/jsr.io/@std/assert/1.0.8/not_instance_of.d.ts +20 -0
  354. package/types/deps/jsr.io/@std/assert/1.0.8/not_instance_of.d.ts.map +1 -0
  355. package/types/deps/jsr.io/@std/assert/1.0.8/not_match.d.ts +18 -0
  356. package/types/deps/jsr.io/@std/assert/1.0.8/not_match.d.ts.map +1 -0
  357. package/types/deps/jsr.io/@std/assert/1.0.8/not_strict_equals.d.ts +23 -0
  358. package/types/deps/jsr.io/@std/assert/1.0.8/not_strict_equals.d.ts.map +1 -0
  359. package/types/deps/jsr.io/@std/assert/1.0.8/object_match.d.ts +28 -0
  360. package/types/deps/jsr.io/@std/assert/1.0.8/object_match.d.ts.map +1 -0
  361. package/types/deps/jsr.io/@std/assert/1.0.8/rejects.d.ts +42 -0
  362. package/types/deps/jsr.io/@std/assert/1.0.8/rejects.d.ts.map +1 -0
  363. package/types/deps/jsr.io/@std/assert/1.0.8/strict_equals.d.ts +24 -0
  364. package/types/deps/jsr.io/@std/assert/1.0.8/strict_equals.d.ts.map +1 -0
  365. package/types/deps/jsr.io/@std/assert/1.0.8/string_includes.d.ts +18 -0
  366. package/types/deps/jsr.io/@std/assert/1.0.8/string_includes.d.ts.map +1 -0
  367. package/types/deps/jsr.io/@std/assert/1.0.8/throws.d.ts +45 -0
  368. package/types/deps/jsr.io/@std/assert/1.0.8/throws.d.ts.map +1 -0
  369. package/types/deps/jsr.io/@std/assert/1.0.8/unimplemented.d.ts +15 -0
  370. package/types/deps/jsr.io/@std/assert/1.0.8/unimplemented.d.ts.map +1 -0
  371. package/types/deps/jsr.io/@std/assert/1.0.8/unreachable.d.ts +15 -0
  372. package/types/deps/jsr.io/@std/assert/1.0.8/unreachable.d.ts.map +1 -0
  373. package/types/deps/jsr.io/@std/collections/1.0.9/_utils.d.ts +6 -0
  374. package/types/deps/jsr.io/@std/collections/1.0.9/_utils.d.ts.map +1 -0
  375. package/types/deps/jsr.io/@std/collections/1.0.9/aggregate_groups.d.ts +41 -0
  376. package/types/deps/jsr.io/@std/collections/1.0.9/aggregate_groups.d.ts.map +1 -0
  377. package/types/deps/jsr.io/@std/collections/1.0.9/associate_by.d.ts +37 -0
  378. package/types/deps/jsr.io/@std/collections/1.0.9/associate_by.d.ts.map +1 -0
  379. package/types/deps/jsr.io/@std/collections/1.0.9/associate_with.d.ts +33 -0
  380. package/types/deps/jsr.io/@std/collections/1.0.9/associate_with.d.ts.map +1 -0
  381. package/types/deps/jsr.io/@std/collections/1.0.9/chunk.d.ts +38 -0
  382. package/types/deps/jsr.io/@std/collections/1.0.9/chunk.d.ts.map +1 -0
  383. package/types/deps/jsr.io/@std/collections/1.0.9/deep_merge.d.ts +322 -0
  384. package/types/deps/jsr.io/@std/collections/1.0.9/deep_merge.d.ts.map +1 -0
  385. package/types/deps/jsr.io/@std/collections/1.0.9/distinct.d.ts +23 -0
  386. package/types/deps/jsr.io/@std/collections/1.0.9/distinct.d.ts.map +1 -0
  387. package/types/deps/jsr.io/@std/collections/1.0.9/distinct_by.d.ts +26 -0
  388. package/types/deps/jsr.io/@std/collections/1.0.9/distinct_by.d.ts.map +1 -0
  389. package/types/deps/jsr.io/@std/collections/1.0.9/drop_last_while.d.ts +26 -0
  390. package/types/deps/jsr.io/@std/collections/1.0.9/drop_last_while.d.ts.map +1 -0
  391. package/types/deps/jsr.io/@std/collections/1.0.9/drop_while.d.ts +25 -0
  392. package/types/deps/jsr.io/@std/collections/1.0.9/drop_while.d.ts.map +1 -0
  393. package/types/deps/jsr.io/@std/collections/1.0.9/filter_entries.d.ts +32 -0
  394. package/types/deps/jsr.io/@std/collections/1.0.9/filter_entries.d.ts.map +1 -0
  395. package/types/deps/jsr.io/@std/collections/1.0.9/filter_keys.d.ts +36 -0
  396. package/types/deps/jsr.io/@std/collections/1.0.9/filter_keys.d.ts.map +1 -0
  397. package/types/deps/jsr.io/@std/collections/1.0.9/filter_values.d.ts +35 -0
  398. package/types/deps/jsr.io/@std/collections/1.0.9/filter_values.d.ts.map +1 -0
  399. package/types/deps/jsr.io/@std/collections/1.0.9/find_single.d.ts +31 -0
  400. package/types/deps/jsr.io/@std/collections/1.0.9/find_single.d.ts.map +1 -0
  401. package/types/deps/jsr.io/@std/collections/1.0.9/first_not_nullish_of.d.ts +32 -0
  402. package/types/deps/jsr.io/@std/collections/1.0.9/first_not_nullish_of.d.ts.map +1 -0
  403. package/types/deps/jsr.io/@std/collections/1.0.9/includes_value.d.ts +29 -0
  404. package/types/deps/jsr.io/@std/collections/1.0.9/includes_value.d.ts.map +1 -0
  405. package/types/deps/jsr.io/@std/collections/1.0.9/intersect.d.ts +25 -0
  406. package/types/deps/jsr.io/@std/collections/1.0.9/intersect.d.ts.map +1 -0
  407. package/types/deps/jsr.io/@std/collections/1.0.9/invert.d.ts +29 -0
  408. package/types/deps/jsr.io/@std/collections/1.0.9/invert.d.ts.map +1 -0
  409. package/types/deps/jsr.io/@std/collections/1.0.9/invert_by.d.ts +34 -0
  410. package/types/deps/jsr.io/@std/collections/1.0.9/invert_by.d.ts.map +1 -0
  411. package/types/deps/jsr.io/@std/collections/1.0.9/join_to_string.d.ts +75 -0
  412. package/types/deps/jsr.io/@std/collections/1.0.9/join_to_string.d.ts.map +1 -0
  413. package/types/deps/jsr.io/@std/collections/1.0.9/map_entries.d.ts +37 -0
  414. package/types/deps/jsr.io/@std/collections/1.0.9/map_entries.d.ts.map +1 -0
  415. package/types/deps/jsr.io/@std/collections/1.0.9/map_keys.d.ts +33 -0
  416. package/types/deps/jsr.io/@std/collections/1.0.9/map_keys.d.ts.map +1 -0
  417. package/types/deps/jsr.io/@std/collections/1.0.9/map_not_nullish.d.ts +32 -0
  418. package/types/deps/jsr.io/@std/collections/1.0.9/map_not_nullish.d.ts.map +1 -0
  419. package/types/deps/jsr.io/@std/collections/1.0.9/map_values.d.ts +71 -0
  420. package/types/deps/jsr.io/@std/collections/1.0.9/map_values.d.ts.map +1 -0
  421. package/types/deps/jsr.io/@std/collections/1.0.9/max_by.d.ts +117 -0
  422. package/types/deps/jsr.io/@std/collections/1.0.9/max_by.d.ts.map +1 -0
  423. package/types/deps/jsr.io/@std/collections/1.0.9/max_of.d.ts +61 -0
  424. package/types/deps/jsr.io/@std/collections/1.0.9/max_of.d.ts.map +1 -0
  425. package/types/deps/jsr.io/@std/collections/1.0.9/max_with.d.ts +29 -0
  426. package/types/deps/jsr.io/@std/collections/1.0.9/max_with.d.ts.map +1 -0
  427. package/types/deps/jsr.io/@std/collections/1.0.9/min_by.d.ts +115 -0
  428. package/types/deps/jsr.io/@std/collections/1.0.9/min_by.d.ts.map +1 -0
  429. package/types/deps/jsr.io/@std/collections/1.0.9/min_of.d.ts +61 -0
  430. package/types/deps/jsr.io/@std/collections/1.0.9/min_of.d.ts.map +1 -0
  431. package/types/deps/jsr.io/@std/collections/1.0.9/min_with.d.ts +25 -0
  432. package/types/deps/jsr.io/@std/collections/1.0.9/min_with.d.ts.map +1 -0
  433. package/types/deps/jsr.io/@std/collections/1.0.9/mod.d.ts +73 -0
  434. package/types/deps/jsr.io/@std/collections/1.0.9/mod.d.ts.map +1 -0
  435. package/types/deps/jsr.io/@std/collections/1.0.9/omit.d.ts +24 -0
  436. package/types/deps/jsr.io/@std/collections/1.0.9/omit.d.ts.map +1 -0
  437. package/types/deps/jsr.io/@std/collections/1.0.9/partition.d.ts +60 -0
  438. package/types/deps/jsr.io/@std/collections/1.0.9/partition.d.ts.map +1 -0
  439. package/types/deps/jsr.io/@std/collections/1.0.9/partition_entries.d.ts +39 -0
  440. package/types/deps/jsr.io/@std/collections/1.0.9/partition_entries.d.ts.map +1 -0
  441. package/types/deps/jsr.io/@std/collections/1.0.9/permutations.d.ts +27 -0
  442. package/types/deps/jsr.io/@std/collections/1.0.9/permutations.d.ts.map +1 -0
  443. package/types/deps/jsr.io/@std/collections/1.0.9/pick.d.ts +25 -0
  444. package/types/deps/jsr.io/@std/collections/1.0.9/pick.d.ts.map +1 -0
  445. package/types/deps/jsr.io/@std/collections/1.0.9/reduce_groups.d.ts +35 -0
  446. package/types/deps/jsr.io/@std/collections/1.0.9/reduce_groups.d.ts.map +1 -0
  447. package/types/deps/jsr.io/@std/collections/1.0.9/running_reduce.d.ts +27 -0
  448. package/types/deps/jsr.io/@std/collections/1.0.9/running_reduce.d.ts.map +1 -0
  449. package/types/deps/jsr.io/@std/collections/1.0.9/sample.d.ts +24 -0
  450. package/types/deps/jsr.io/@std/collections/1.0.9/sample.d.ts.map +1 -0
  451. package/types/deps/jsr.io/@std/collections/1.0.9/sliding_windows.d.ts +66 -0
  452. package/types/deps/jsr.io/@std/collections/1.0.9/sliding_windows.d.ts.map +1 -0
  453. package/types/deps/jsr.io/@std/collections/1.0.9/sort_by.d.ts +161 -0
  454. package/types/deps/jsr.io/@std/collections/1.0.9/sort_by.d.ts.map +1 -0
  455. package/types/deps/jsr.io/@std/collections/1.0.9/sum_of.d.ts +29 -0
  456. package/types/deps/jsr.io/@std/collections/1.0.9/sum_of.d.ts.map +1 -0
  457. package/types/deps/jsr.io/@std/collections/1.0.9/take_last_while.d.ts +27 -0
  458. package/types/deps/jsr.io/@std/collections/1.0.9/take_last_while.d.ts.map +1 -0
  459. package/types/deps/jsr.io/@std/collections/1.0.9/take_while.d.ts +30 -0
  460. package/types/deps/jsr.io/@std/collections/1.0.9/take_while.d.ts.map +1 -0
  461. package/types/deps/jsr.io/@std/collections/1.0.9/union.d.ts +24 -0
  462. package/types/deps/jsr.io/@std/collections/1.0.9/union.d.ts.map +1 -0
  463. package/types/deps/jsr.io/@std/collections/1.0.9/unzip.d.ts +32 -0
  464. package/types/deps/jsr.io/@std/collections/1.0.9/unzip.d.ts.map +1 -0
  465. package/types/deps/jsr.io/@std/collections/1.0.9/without_all.d.ts +23 -0
  466. package/types/deps/jsr.io/@std/collections/1.0.9/without_all.d.ts.map +1 -0
  467. package/types/deps/jsr.io/@std/collections/1.0.9/zip.d.ts +34 -0
  468. package/types/deps/jsr.io/@std/collections/1.0.9/zip.d.ts.map +1 -0
  469. package/types/deps/jsr.io/@std/internal/1.0.5/build_message.d.ts +82 -0
  470. package/types/deps/jsr.io/@std/internal/1.0.5/build_message.d.ts.map +1 -0
  471. package/types/deps/jsr.io/@std/internal/1.0.5/diff.d.ts +140 -0
  472. package/types/deps/jsr.io/@std/internal/1.0.5/diff.d.ts.map +1 -0
  473. package/types/deps/jsr.io/@std/internal/1.0.5/diff_str.d.ts +99 -0
  474. package/types/deps/jsr.io/@std/internal/1.0.5/diff_str.d.ts.map +1 -0
  475. package/types/deps/jsr.io/@std/internal/1.0.5/format.d.ts +2 -0
  476. package/types/deps/jsr.io/@std/internal/1.0.5/format.d.ts.map +1 -0
  477. package/types/deps/jsr.io/@std/internal/1.0.5/styles.d.ts +159 -0
  478. package/types/deps/jsr.io/@std/internal/1.0.5/styles.d.ts.map +1 -0
  479. package/types/deps/jsr.io/@std/internal/1.0.5/types.d.ts +16 -0
  480. package/types/deps/jsr.io/@std/internal/1.0.5/types.d.ts.map +1 -0
  481. package/types/mod.d.ts +5 -0
  482. package/types/mod.d.ts.map +1 -0
  483. package/types/types/Ref.d.ts +4 -0
  484. package/types/types/Ref.d.ts.map +1 -0
  485. package/types/types/RootTy.d.ts +8 -0
  486. package/types/types/RootTy.d.ts.map +1 -0
  487. package/types/types/Ty.d.ts +27 -0
  488. package/types/types/Ty.d.ts.map +1 -0
  489. package/types/types/array.d.ts +3 -0
  490. package/types/types/array.d.ts.map +1 -0
  491. package/types/types/constant.d.ts +3 -0
  492. package/types/types/constant.d.ts.map +1 -0
  493. package/types/types/constantUnion.d.ts +3 -0
  494. package/types/types/constantUnion.d.ts.map +1 -0
  495. package/types/types/leaves.d.ts +6 -0
  496. package/types/types/leaves.d.ts.map +1 -0
  497. package/types/types/mod.d.ts +11 -0
  498. package/types/types/mod.d.ts.map +1 -0
  499. package/types/types/object.d.ts +6 -0
  500. package/types/types/object.d.ts.map +1 -0
  501. package/types/types/std/Option.d.ts +7 -0
  502. package/types/types/std/Option.d.ts.map +1 -0
  503. package/types/types/std/Wrapper.d.ts +7 -0
  504. package/types/types/std/Wrapper.d.ts.map +1 -0
  505. package/types/types/std/mod.d.ts +3 -0
  506. package/types/types/std/mod.d.ts.map +1 -0
  507. package/types/types/taggedUnion.d.ts +8 -0
  508. package/types/types/taggedUnion.d.ts.map +1 -0
  509. package/types/util/phantoms.d.ts +2 -0
  510. package/types/util/phantoms.d.ts.map +1 -0
  511. package/types/util/recombineTaggedTemplateArgs.d.ts +2 -0
  512. package/types/util/recombineTaggedTemplateArgs.d.ts.map +1 -0
  513. package/esm/F.d.ts +0 -13
  514. package/esm/F.d.ts.map +0 -1
  515. package/esm/F.js +0 -10
  516. package/esm/F.js.map +0 -1
  517. package/esm/ResponseFormat.d.ts +0 -14
  518. package/esm/ResponseFormat.d.ts.map +0 -1
  519. package/esm/_base.d.ts +0 -13
  520. package/esm/_base.d.ts.map +0 -1
  521. package/esm/_base.js +0 -40
  522. package/esm/_base.js.map +0 -1
  523. package/esm/array.d.ts +0 -4
  524. package/esm/array.d.ts.map +0 -1
  525. package/esm/array.js +0 -9
  526. package/esm/array.js.map +0 -1
  527. package/esm/common.d.ts +0 -6
  528. package/esm/common.d.ts.map +0 -1
  529. package/esm/common.js +0 -2
  530. package/esm/common.js.map +0 -1
  531. package/esm/literal.d.ts +0 -4
  532. package/esm/literal.d.ts.map +0 -1
  533. package/esm/literal.js +0 -8
  534. package/esm/literal.js.map +0 -1
  535. package/esm/mod.d.ts +0 -16
  536. package/esm/mod.d.ts.map +0 -1
  537. package/esm/number.d.ts +0 -4
  538. package/esm/number.d.ts.map +0 -1
  539. package/esm/number.js +0 -8
  540. package/esm/number.js.map +0 -1
  541. package/esm/object.d.ts +0 -7
  542. package/esm/object.d.ts.map +0 -1
  543. package/esm/object.js.map +0 -1
  544. package/esm/schema.d.ts +0 -4
  545. package/esm/schema.d.ts.map +0 -1
  546. package/esm/schema.js +0 -9
  547. package/esm/schema.js.map +0 -1
  548. package/esm/string.d.ts +0 -4
  549. package/esm/string.d.ts.map +0 -1
  550. package/esm/string.js +0 -8
  551. package/esm/string.js.map +0 -1
  552. package/esm/union.d.ts +0 -6
  553. package/esm/union.d.ts.map +0 -1
  554. package/esm/union.js +0 -8
  555. package/esm/union.js.map +0 -1
  556. package/src/F.ts +0 -27
  557. package/src/_base.ts +0 -25
  558. package/src/array.ts +0 -11
  559. package/src/common.ts +0 -6
  560. package/src/literal.ts +0 -10
  561. package/src/number.ts +0 -10
  562. package/src/object.ts +0 -17
  563. package/src/schema.ts +0 -10
  564. package/src/string.ts +0 -10
  565. package/src/union.ts +0 -12
@@ -0,0 +1,49 @@
1
+ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
2
+ // This module is browser compatible.
3
+
4
+ /**
5
+ * Returns a new array, containing all elements in the given array transformed
6
+ * using the given transformer, except the ones that were transformed to `null`
7
+ * or `undefined`.
8
+ *
9
+ * @typeParam T The type of the elements in the input array.
10
+ * @typeParam O The type of the elements in the output array.
11
+ *
12
+ * @param array The array to map elements from.
13
+ * @param transformer The function to transform each element.
14
+ *
15
+ * @returns A new array with all elements transformed by the given transformer,
16
+ * except the ones that were transformed to `null` or `undefined`.
17
+ *
18
+ * @example Basic usage
19
+ * ```ts
20
+ * import { mapNotNullish } from "@std/collections/map-not-nullish";
21
+ * import { assertEquals } from "@std/assert";
22
+ *
23
+ * const people = [
24
+ * { middleName: null },
25
+ * { middleName: "William" },
26
+ * { middleName: undefined },
27
+ * { middleName: "Martha" },
28
+ * ];
29
+ * const foundMiddleNames = mapNotNullish(people, (people) => people.middleName);
30
+ *
31
+ * assertEquals(foundMiddleNames, ["William", "Martha"]);
32
+ * ```
33
+ */
34
+ export function mapNotNullish<T, O>(
35
+ array: Iterable<T>,
36
+ transformer: (el: T) => O,
37
+ ): NonNullable<O>[] {
38
+ const result: NonNullable<O>[] = [];
39
+
40
+ for (const element of array) {
41
+ const transformedElement = transformer(element);
42
+
43
+ if (transformedElement !== undefined && transformedElement !== null) {
44
+ result.push(transformedElement as NonNullable<O>);
45
+ }
46
+ }
47
+
48
+ return result;
49
+ }
@@ -0,0 +1,96 @@
1
+ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
2
+ // This module is browser compatible.
3
+
4
+ /**
5
+ * Applies the given transformer to all values in the given record and returns a
6
+ * new record containing the resulting keys associated to the last value that
7
+ * produced them.
8
+ *
9
+ * @typeParam T The type of the values in the input record.
10
+ * @typeParam O The type of the values in the output record.
11
+ * @typeParam K The type of the keys in the input and output records.
12
+ *
13
+ * @param record The record to map values from.
14
+ * @param transformer The function to transform each value.
15
+ *
16
+ * @returns A new record with all values transformed by the given transformer.
17
+ *
18
+ * @example Basic usage
19
+ * ```ts
20
+ * import { mapValues } from "@std/collections/map-values";
21
+ * import { assertEquals } from "@std/assert";
22
+ *
23
+ * const usersById = {
24
+ * a5ec: { name: "Mischa" },
25
+ * de4f: { name: "Kim" },
26
+ * };
27
+ * const namesById = mapValues(usersById, (user) => user.name);
28
+ *
29
+ * assertEquals(
30
+ * namesById,
31
+ * {
32
+ * a5ec: "Mischa",
33
+ * de4f: "Kim",
34
+ * },
35
+ * );
36
+ * ```
37
+ */
38
+ export function mapValues<T, O, K extends string>(
39
+ record: Readonly<Record<K, T>>,
40
+ transformer: (value: T, key: K) => O,
41
+ ): Record<K, O>;
42
+ /**
43
+ * Applies the given transformer to all values in the given record and returns a
44
+ * new record containing the resulting keys associated to the last value that
45
+ * produced them.
46
+ *
47
+ * @typeParam T The type of the values in the input record.
48
+ * @typeParam O The type of the values in the output record.
49
+ * @typeParam K The type of the keys in the input and output records.
50
+ *
51
+ * @param record The record to map values from.
52
+ * @param transformer The function to transform each value.
53
+ *
54
+ * @returns A new record with all values transformed by the given transformer.
55
+ *
56
+ * @example Basic usage
57
+ * ```ts
58
+ * import { mapValues } from "@std/collections/map-values";
59
+ * import { assertEquals } from "@std/assert";
60
+ *
61
+ * const usersById = {
62
+ * "a5ec": { name: "Mischa" },
63
+ * "de4f": { name: "Kim" },
64
+ * };
65
+ * const namesById = mapValues(usersById, (user) => user.name);
66
+ *
67
+ * assertEquals(
68
+ * namesById,
69
+ * {
70
+ * "a5ec": "Mischa",
71
+ * "de4f": "Kim",
72
+ * },
73
+ * );
74
+ * ```
75
+ */
76
+ export function mapValues<T, O, K extends string>(
77
+ record: Readonly<Partial<Record<K, T>>>,
78
+ transformer: (value: T, key: K) => O,
79
+ ): Partial<Record<K, O>>;
80
+ export function mapValues<T, O, K extends string>(
81
+ record: Record<K, T>,
82
+ transformer: (value: T, key: K) => O,
83
+ // deno-lint-ignore no-explicit-any
84
+ ): any {
85
+ // deno-lint-ignore no-explicit-any
86
+ const result: any = {};
87
+ const entries = Object.entries<T>(record);
88
+
89
+ for (const [key, value] of entries) {
90
+ const mappedValue = transformer(value, key as K);
91
+
92
+ result[key] = mappedValue;
93
+ }
94
+
95
+ return result;
96
+ }
@@ -0,0 +1,153 @@
1
+ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
2
+ // This module is browser compatible.
3
+
4
+ /**
5
+ * Returns the first element that is the largest value of the given function or
6
+ * undefined if there are no elements.
7
+ *
8
+ * @typeParam T The type of the elements in the array.
9
+ *
10
+ * @param array The array to find the maximum element in.
11
+ * @param selector The function to get the value to compare from each element.
12
+ *
13
+ * @returns The first element that is the largest value of the given function or
14
+ * undefined if there are no elements.
15
+ *
16
+ * @example Basic usage
17
+ * ```ts
18
+ * import { maxBy } from "@std/collections/max-by";
19
+ * import { assertEquals } from "@std/assert";
20
+ *
21
+ * const people = [
22
+ * { name: "Anna", age: 34 },
23
+ * { name: "Kim", age: 42 },
24
+ * { name: "John", age: 23 },
25
+ * ];
26
+ *
27
+ * const personWithMaxAge = maxBy(people, (person) => person.age);
28
+ *
29
+ * assertEquals(personWithMaxAge, { name: "Kim", age: 42 });
30
+ * ```
31
+ */
32
+ export function maxBy<T>(
33
+ array: Iterable<T>,
34
+ selector: (el: T) => number,
35
+ ): T | undefined;
36
+ /**
37
+ * Returns the first element that is the largest value of the given function or
38
+ * undefined if there are no elements.
39
+ *
40
+ * @typeParam T The type of the elements in the array.
41
+ *
42
+ * @param array The array to find the maximum element in.
43
+ * @param selector The function to get the value to compare from each element.
44
+ *
45
+ * @returns The first element that is the largest value of the given function or
46
+ * undefined if there are no elements.
47
+ *
48
+ * @example Basic usage
49
+ * ```ts
50
+ * import { maxBy } from "@std/collections/max-by";
51
+ * import { assertEquals } from "@std/assert";
52
+ *
53
+ * const people = [
54
+ * { name: "Anna" },
55
+ * { name: "Kim" },
56
+ * { name: "John" },
57
+ * ];
58
+ *
59
+ * const personWithMaxName = maxBy(people, (person) => person.name);
60
+ *
61
+ * assertEquals(personWithMaxName, { name: "Kim" });
62
+ * ```
63
+ */
64
+ export function maxBy<T>(
65
+ array: Iterable<T>,
66
+ selector: (el: T) => string,
67
+ ): T | undefined;
68
+ /**
69
+ * Returns the first element that is the largest value of the given function or
70
+ * undefined if there are no elements.
71
+ *
72
+ * @typeParam T The type of the elements in the array.
73
+ *
74
+ * @param array The array to find the maximum element in.
75
+ * @param selector The function to get the value to compare from each element.
76
+ *
77
+ * @returns The first element that is the largest value of the given function or
78
+ * undefined if there are no elements.
79
+ *
80
+ * @example Basic usage
81
+ * ```ts
82
+ * import { maxBy } from "@std/collections/max-by";
83
+ * import { assertEquals } from "@std/assert";
84
+ *
85
+ * const people = [
86
+ * { name: "Anna", age: 34n },
87
+ * { name: "Kim", age: 42n },
88
+ * { name: "John", age: 23n },
89
+ * ];
90
+ *
91
+ * const personWithMaxAge = maxBy(people, (person) => person.age);
92
+ *
93
+ * assertEquals(personWithMaxAge, { name: "Kim", age: 42n });
94
+ * ```
95
+ */
96
+ export function maxBy<T>(
97
+ array: Iterable<T>,
98
+ selector: (el: T) => bigint,
99
+ ): T | undefined;
100
+ /**
101
+ * Returns the first element that is the largest value of the given function or
102
+ * undefined if there are no elements.
103
+ *
104
+ * @typeParam T The type of the elements in the array.
105
+ *
106
+ * @param array The array to find the maximum element in.
107
+ * @param selector The function to get the value to compare from each element.
108
+ *
109
+ * @returns The first element that is the largest value of the given function or
110
+ * undefined if there are no elements.
111
+ *
112
+ * @example Basic usage
113
+ * ```ts
114
+ * import { maxBy } from "@std/collections/max-by";
115
+ * import { assertEquals } from "@std/assert";
116
+ *
117
+ * const people = [
118
+ * { name: "Anna", startedAt: new Date("2020-01-01") },
119
+ * { name: "Kim", startedAt: new Date("2021-03-01") },
120
+ * { name: "John", startedAt: new Date("2020-03-01") },
121
+ * ];
122
+ *
123
+ * const personWithLastStartedAt = maxBy(people, (person) => person.startedAt);
124
+ *
125
+ * assertEquals(personWithLastStartedAt, { name: "Kim", startedAt: new Date("2021-03-01") });
126
+ * ```
127
+ */
128
+ export function maxBy<T>(
129
+ array: Iterable<T>,
130
+ selector: (el: T) => Date,
131
+ ): T | undefined;
132
+ export function maxBy<T>(
133
+ array: Iterable<T>,
134
+ selector:
135
+ | ((el: T) => number)
136
+ | ((el: T) => string)
137
+ | ((el: T) => bigint)
138
+ | ((el: T) => Date),
139
+ ): T | undefined {
140
+ let max: T | undefined;
141
+ let maxValue: ReturnType<typeof selector> | undefined;
142
+
143
+ for (const current of array) {
144
+ const currentValue = selector(current);
145
+
146
+ if (maxValue === undefined || currentValue > maxValue) {
147
+ max = current;
148
+ maxValue = currentValue;
149
+ }
150
+ }
151
+
152
+ return max;
153
+ }
@@ -0,0 +1,90 @@
1
+ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
2
+ // This module is browser compatible.
3
+
4
+ /**
5
+ * Applies the given selector to all elements of the provided collection and
6
+ * returns the max value of all elements. If an empty array is provided the
7
+ * function will return undefined.
8
+ *
9
+ * @typeParam T The type of the elements in the array.
10
+ *
11
+ * @param array The array to find the maximum element in.
12
+ * @param selector The function to get the value to compare from each element.
13
+ *
14
+ * @returns The largest value of the given function or undefined if there are no
15
+ * elements.
16
+ *
17
+ * @example Basic usage
18
+ * ```ts
19
+ * import { maxOf } from "@std/collections/max-of";
20
+ * import { assertEquals } from "@std/assert";
21
+ *
22
+ * const inventory = [
23
+ * { name: "mustard", count: 2 },
24
+ * { name: "soy", count: 4 },
25
+ * { name: "tomato", count: 32 },
26
+ * ];
27
+ *
28
+ * const maxCount = maxOf(inventory, (item) => item.count);
29
+ *
30
+ * assertEquals(maxCount, 32);
31
+ * ```
32
+ */
33
+ export function maxOf<T>(
34
+ array: Iterable<T>,
35
+ selector: (el: T) => number,
36
+ ): number | undefined;
37
+ /**
38
+ * Applies the given selector to all elements of the provided collection and
39
+ * returns the max value of all elements. If an empty array is provided the
40
+ * function will return undefined.
41
+ *
42
+ * @typeParam T The type of the elements in the array.
43
+ *
44
+ * @param array The array to find the maximum element in.
45
+ * @param selector The function to get the value to compare from each element.
46
+ *
47
+ * @returns The first element that is the largest value of the given function or
48
+ * undefined if there are no elements.
49
+ *
50
+ * @example Basic usage
51
+ * ```ts
52
+ * import { maxOf } from "@std/collections/max-of";
53
+ * import { assertEquals } from "@std/assert";
54
+ *
55
+ * const inventory = [
56
+ * { name: "mustard", count: 2n },
57
+ * { name: "soy", count: 4n },
58
+ * { name: "tomato", count: 32n },
59
+ * ];
60
+ *
61
+ * const maxCount = maxOf(inventory, (i) => i.count);
62
+ *
63
+ * assertEquals(maxCount, 32n);
64
+ * ```
65
+ */
66
+ export function maxOf<T>(
67
+ array: Iterable<T>,
68
+ selector: (el: T) => bigint,
69
+ ): bigint | undefined;
70
+ export function maxOf<T, S extends ((el: T) => number) | ((el: T) => bigint)>(
71
+ array: Iterable<T>,
72
+ selector: S,
73
+ ): ReturnType<S> | undefined {
74
+ let maximumValue: ReturnType<S> | undefined;
75
+
76
+ for (const element of array) {
77
+ const currentValue = selector(element) as ReturnType<S>;
78
+
79
+ if (maximumValue === undefined || currentValue > maximumValue) {
80
+ maximumValue = currentValue;
81
+ continue;
82
+ }
83
+
84
+ if (Number.isNaN(currentValue)) {
85
+ return currentValue;
86
+ }
87
+ }
88
+
89
+ return maximumValue;
90
+ }
@@ -0,0 +1,46 @@
1
+ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
2
+ // This module is browser compatible.
3
+
4
+ /**
5
+ * Returns the first element having the largest value according to the provided
6
+ * comparator or undefined if there are no elements.
7
+ *
8
+ * The comparator is expected to work exactly like one passed to `Array.sort`,
9
+ * which means that `comparator(a, b)` should return a negative number if
10
+ * `a < b`, a positive number if `a > b` and `0` if `a === b`.
11
+ *
12
+ * @typeParam T The type of the elements in the array.
13
+ *
14
+ * @param array The array to find the maximum element in.
15
+ * @param comparator The function to compare elements.
16
+ *
17
+ * @returns The first element that is the largest value of the given function or
18
+ * undefined if there are no elements.
19
+ *
20
+ * @example Basic usage
21
+ * ```ts
22
+ * import { maxWith } from "@std/collections/max-with";
23
+ * import { assertEquals } from "@std/assert";
24
+ *
25
+ * const people = ["Kim", "Anna", "John", "Arthur"];
26
+ * const largestName = maxWith(people, (a, b) => a.length - b.length);
27
+ *
28
+ * assertEquals(largestName, "Arthur");
29
+ * ```
30
+ */
31
+ export function maxWith<T>(
32
+ array: Iterable<T>,
33
+ comparator: (a: T, b: T) => number,
34
+ ): T | undefined {
35
+ let max: T | undefined;
36
+ let isFirst = true;
37
+
38
+ for (const current of array) {
39
+ if (isFirst || comparator(current, <T> max) > 0) {
40
+ max = current;
41
+ isFirst = false;
42
+ }
43
+ }
44
+
45
+ return max;
46
+ }
@@ -0,0 +1,151 @@
1
+ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
2
+ // This module is browser compatible.
3
+
4
+ /**
5
+ * Returns the first element that is the smallest value of the given function or
6
+ * undefined if there are no elements.
7
+ *
8
+ * @typeParam T The type of the elements in the array.
9
+ *
10
+ * @param array The array to find the minimum element in.
11
+ * @param selector The function to get the value to compare from each element.
12
+ *
13
+ * @returns The first element that is the smallest value of the given function
14
+ * or undefined if there are no elements.
15
+ *
16
+ * @example Basic usage
17
+ * ```ts
18
+ * import { minBy } from "@std/collections/min-by";
19
+ * import { assertEquals } from "@std/assert";
20
+ *
21
+ * const people = [
22
+ * { name: "Anna", age: 34 },
23
+ * { name: "Kim", age: 42 },
24
+ * { name: "John", age: 23 },
25
+ * ];
26
+ *
27
+ * const personWithMinAge = minBy(people, (i) => i.age);
28
+ *
29
+ * assertEquals(personWithMinAge, { name: "John", age: 23 });
30
+ * ```
31
+ */
32
+ export function minBy<T>(
33
+ array: Iterable<T>,
34
+ selector: (el: T) => number,
35
+ ): T | undefined;
36
+ /**
37
+ * Returns the first element that is the smallest value of the given function or
38
+ * undefined if there are no elements.
39
+ *
40
+ * @typeParam T The type of the elements in the array.
41
+ *
42
+ * @param array The array to find the minimum element in.
43
+ * @param selector The function to get the value to compare from each element.
44
+ *
45
+ * @returns The first element that is the smallest value of the given function
46
+ * or undefined if there are no elements.
47
+ *
48
+ * @example Basic usage
49
+ * ```ts
50
+ * import { minBy } from "@std/collections/min-by";
51
+ * import { assertEquals } from "@std/assert";
52
+ *
53
+ * const people = [
54
+ * { name: "Anna" },
55
+ * { name: "Kim" },
56
+ * { name: "John" },
57
+ * ];
58
+ *
59
+ * const personWithMinName = minBy(people, (person) => person.name);
60
+ *
61
+ * assertEquals(personWithMinName, { name: "Anna" });
62
+ * ```
63
+ */
64
+ export function minBy<T>(
65
+ array: Iterable<T>,
66
+ selector: (el: T) => string,
67
+ ): T | undefined;
68
+ /**
69
+ * Returns the first element that is the smallest value of the given function or
70
+ * undefined if there are no elements.
71
+ *
72
+ * @typeParam T The type of the elements in the array.
73
+ *
74
+ * @param array The array to find the minimum element in.
75
+ * @param selector The function to get the value to compare from each element.
76
+ *
77
+ * @returns The first element that is the smallest value of the given function
78
+ * or undefined if there are no elements.
79
+ *
80
+ * @example Basic usage
81
+ * ```ts
82
+ * import { minBy } from "@std/collections/min-by";
83
+ * import { assertEquals } from "@std/assert";
84
+ *
85
+ * const people = [
86
+ * { name: "Anna", age: 34n },
87
+ * { name: "Kim", age: 42n },
88
+ * { name: "John", age: 23n },
89
+ * ];
90
+ *
91
+ * const personWithMinAge = minBy(people, (i) => i.age);
92
+ *
93
+ * assertEquals(personWithMinAge, { name: "John", age: 23n });
94
+ * ```
95
+ */
96
+ export function minBy<T>(
97
+ array: Iterable<T>,
98
+ selector: (el: T) => bigint,
99
+ ): T | undefined;
100
+ /**
101
+ * Returns the first element that is the smallest value of the given function or
102
+ * undefined if there are no elements.
103
+ *
104
+ * @typeParam T The type of the elements in the array.
105
+ *
106
+ * @param array The array to find the minimum element in.
107
+ * @param selector The function to get the value to compare from each element.
108
+ *
109
+ * @returns The first element that is the smallest value of the given function
110
+ * or undefined if there are no elements.
111
+ *
112
+ * @example Basic usage
113
+ * ```ts
114
+ * import { minBy } from "@std/collections/min-by";
115
+ * import { assertEquals } from "@std/assert";
116
+ *
117
+ * const people = [
118
+ * { name: "Anna", startedAt: new Date("2020-01-01") },
119
+ * { name: "Kim", startedAt: new Date("2020-03-01") },
120
+ * { name: "John", startedAt: new Date("2019-01-01") },
121
+ * ];
122
+ *
123
+ * const personWithMinStartedAt = minBy(people, (person) => person.startedAt);
124
+ * ```
125
+ */
126
+ export function minBy<T>(
127
+ array: Iterable<T>,
128
+ selector: (el: T) => Date,
129
+ ): T | undefined;
130
+ export function minBy<T>(
131
+ array: Iterable<T>,
132
+ selector:
133
+ | ((el: T) => number)
134
+ | ((el: T) => string)
135
+ | ((el: T) => bigint)
136
+ | ((el: T) => Date),
137
+ ): T | undefined {
138
+ let min: T | undefined;
139
+ let minValue: ReturnType<typeof selector> | undefined;
140
+
141
+ for (const current of array) {
142
+ const currentValue = selector(current);
143
+
144
+ if (minValue === undefined || currentValue < minValue) {
145
+ min = current;
146
+ minValue = currentValue;
147
+ }
148
+ }
149
+
150
+ return min;
151
+ }
@@ -0,0 +1,90 @@
1
+ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
2
+ // This module is browser compatible.
3
+
4
+ /**
5
+ * Applies the given selector to all elements of the given collection and
6
+ * returns the min value of all elements. If an empty array is provided the
7
+ * function will return undefined.
8
+ *
9
+ * @typeParam T The type of the elements in the array.
10
+ *
11
+ * @param array The array to find the minimum element in.
12
+ * @param selector The function to get the value to compare from each element.
13
+ *
14
+ * @returns The smallest value of the given function or undefined if there are
15
+ * no elements.
16
+ *
17
+ * @example Basic usage
18
+ * ```ts
19
+ * import { minOf } from "@std/collections/min-of";
20
+ * import { assertEquals } from "@std/assert";
21
+ *
22
+ * const inventory = [
23
+ * { name: "mustard", count: 2 },
24
+ * { name: "soy", count: 4 },
25
+ * { name: "tomato", count: 32 },
26
+ * ];
27
+ *
28
+ * const minCount = minOf(inventory, (item) => item.count);
29
+ *
30
+ * assertEquals(minCount, 2);
31
+ * ```
32
+ */
33
+ export function minOf<T>(
34
+ array: Iterable<T>,
35
+ selector: (el: T) => number,
36
+ ): number | undefined;
37
+ /**
38
+ * Applies the given selector to all elements of the given collection and
39
+ * returns the min value of all elements. If an empty array is provided the
40
+ * function will return undefined.
41
+ *
42
+ * @typeParam T The type of the elements in the array.
43
+ *
44
+ * @param array The array to find the minimum element in.
45
+ * @param selector The function to get the value to compare from each element.
46
+ *
47
+ * @returns The first element that is the smallest value of the given function
48
+ * or undefined if there are no elements.
49
+ *
50
+ * @example Basic usage
51
+ * ```ts
52
+ * import { minOf } from "@std/collections/min-of";
53
+ * import { assertEquals } from "@std/assert";
54
+ *
55
+ * const inventory = [
56
+ * { name: "mustard", count: 2n },
57
+ * { name: "soy", count: 4n },
58
+ * { name: "tomato", count: 32n },
59
+ * ];
60
+ *
61
+ * const minCount = minOf(inventory, (item) => item.count);
62
+ *
63
+ * assertEquals(minCount, 2n);
64
+ * ```
65
+ */
66
+ export function minOf<T>(
67
+ array: Iterable<T>,
68
+ selector: (el: T) => bigint,
69
+ ): bigint | undefined;
70
+ export function minOf<T, S extends ((el: T) => number) | ((el: T) => bigint)>(
71
+ array: Iterable<T>,
72
+ selector: S,
73
+ ): ReturnType<S> | undefined {
74
+ let minimumValue: ReturnType<S> | undefined;
75
+
76
+ for (const element of array) {
77
+ const currentValue = selector(element) as ReturnType<S>;
78
+
79
+ if (minimumValue === undefined || currentValue < minimumValue) {
80
+ minimumValue = currentValue;
81
+ continue;
82
+ }
83
+
84
+ if (Number.isNaN(currentValue)) {
85
+ return currentValue;
86
+ }
87
+ }
88
+
89
+ return minimumValue;
90
+ }