pull-request-split-advisor 3.1.2

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 (375) hide show
  1. package/LICENSE +52 -0
  2. package/README.md +168 -0
  3. package/dist/ai/config-wizard.js +282 -0
  4. package/dist/ai/enricher.js +290 -0
  5. package/dist/ai/prompts.js +231 -0
  6. package/dist/ai/provider.js +265 -0
  7. package/dist/cli.js +442 -0
  8. package/dist/config/config.js +315 -0
  9. package/dist/config/default-config.js +223 -0
  10. package/dist/core/blocks.js +145 -0
  11. package/dist/core/commit-planner.js +273 -0
  12. package/dist/core/dependency.js +284 -0
  13. package/dist/core/file-stats.js +341 -0
  14. package/dist/core/history.js +72 -0
  15. package/dist/core/planner.js +25 -0
  16. package/dist/core/scoring.js +166 -0
  17. package/dist/core/strategy.js +486 -0
  18. package/dist/git/branch-naming.js +120 -0
  19. package/dist/git/executor.js +378 -0
  20. package/dist/git/git.js +239 -0
  21. package/dist/output/report-styles.generated.js +10 -0
  22. package/dist/output/report.js +726 -0
  23. package/dist/output/ui.js +417 -0
  24. package/dist/shared/constants.js +59 -0
  25. package/dist/shared/types.js +7 -0
  26. package/dist/shared/utils.js +73 -0
  27. package/node_modules/@colors/colors/LICENSE +26 -0
  28. package/node_modules/@colors/colors/README.md +219 -0
  29. package/node_modules/@colors/colors/examples/normal-usage.js +83 -0
  30. package/node_modules/@colors/colors/examples/safe-string.js +80 -0
  31. package/node_modules/@colors/colors/index.d.ts +136 -0
  32. package/node_modules/@colors/colors/lib/colors.js +211 -0
  33. package/node_modules/@colors/colors/lib/custom/trap.js +46 -0
  34. package/node_modules/@colors/colors/lib/custom/zalgo.js +110 -0
  35. package/node_modules/@colors/colors/lib/extendStringPrototype.js +110 -0
  36. package/node_modules/@colors/colors/lib/index.js +13 -0
  37. package/node_modules/@colors/colors/lib/maps/america.js +10 -0
  38. package/node_modules/@colors/colors/lib/maps/rainbow.js +12 -0
  39. package/node_modules/@colors/colors/lib/maps/random.js +11 -0
  40. package/node_modules/@colors/colors/lib/maps/zebra.js +5 -0
  41. package/node_modules/@colors/colors/lib/styles.js +95 -0
  42. package/node_modules/@colors/colors/lib/system/has-flag.js +35 -0
  43. package/node_modules/@colors/colors/lib/system/supports-colors.js +151 -0
  44. package/node_modules/@colors/colors/package.json +45 -0
  45. package/node_modules/@colors/colors/safe.d.ts +48 -0
  46. package/node_modules/@colors/colors/safe.js +10 -0
  47. package/node_modules/@colors/colors/themes/generic-logging.js +12 -0
  48. package/node_modules/ansi-align/LICENSE +13 -0
  49. package/node_modules/ansi-align/README.md +80 -0
  50. package/node_modules/ansi-align/index.js +61 -0
  51. package/node_modules/ansi-align/node_modules/ansi-regex/index.d.ts +37 -0
  52. package/node_modules/ansi-align/node_modules/ansi-regex/index.js +10 -0
  53. package/node_modules/ansi-align/node_modules/ansi-regex/license +9 -0
  54. package/node_modules/ansi-align/node_modules/ansi-regex/package.json +55 -0
  55. package/node_modules/ansi-align/node_modules/ansi-regex/readme.md +78 -0
  56. package/node_modules/ansi-align/node_modules/emoji-regex/LICENSE-MIT.txt +20 -0
  57. package/node_modules/ansi-align/node_modules/emoji-regex/README.md +73 -0
  58. package/node_modules/ansi-align/node_modules/emoji-regex/es2015/index.js +6 -0
  59. package/node_modules/ansi-align/node_modules/emoji-regex/es2015/text.js +6 -0
  60. package/node_modules/ansi-align/node_modules/emoji-regex/index.d.ts +23 -0
  61. package/node_modules/ansi-align/node_modules/emoji-regex/index.js +6 -0
  62. package/node_modules/ansi-align/node_modules/emoji-regex/package.json +50 -0
  63. package/node_modules/ansi-align/node_modules/emoji-regex/text.js +6 -0
  64. package/node_modules/ansi-align/node_modules/string-width/index.d.ts +29 -0
  65. package/node_modules/ansi-align/node_modules/string-width/index.js +47 -0
  66. package/node_modules/ansi-align/node_modules/string-width/license +9 -0
  67. package/node_modules/ansi-align/node_modules/string-width/package.json +56 -0
  68. package/node_modules/ansi-align/node_modules/string-width/readme.md +50 -0
  69. package/node_modules/ansi-align/node_modules/strip-ansi/index.d.ts +17 -0
  70. package/node_modules/ansi-align/node_modules/strip-ansi/index.js +4 -0
  71. package/node_modules/ansi-align/node_modules/strip-ansi/license +9 -0
  72. package/node_modules/ansi-align/node_modules/strip-ansi/package.json +54 -0
  73. package/node_modules/ansi-align/node_modules/strip-ansi/readme.md +46 -0
  74. package/node_modules/ansi-align/package.json +43 -0
  75. package/node_modules/ansi-regex/index.d.ts +33 -0
  76. package/node_modules/ansi-regex/index.js +14 -0
  77. package/node_modules/ansi-regex/license +9 -0
  78. package/node_modules/ansi-regex/package.json +61 -0
  79. package/node_modules/ansi-regex/readme.md +66 -0
  80. package/node_modules/ansi-styles/index.d.ts +236 -0
  81. package/node_modules/ansi-styles/index.js +223 -0
  82. package/node_modules/ansi-styles/license +9 -0
  83. package/node_modules/ansi-styles/package.json +54 -0
  84. package/node_modules/ansi-styles/readme.md +173 -0
  85. package/node_modules/boxen/index.d.ts +267 -0
  86. package/node_modules/boxen/index.js +376 -0
  87. package/node_modules/boxen/license +9 -0
  88. package/node_modules/boxen/package.json +69 -0
  89. package/node_modules/boxen/readme.md +300 -0
  90. package/node_modules/camelcase/index.d.ts +102 -0
  91. package/node_modules/camelcase/index.js +110 -0
  92. package/node_modules/camelcase/license +9 -0
  93. package/node_modules/camelcase/package.json +47 -0
  94. package/node_modules/camelcase/readme.md +135 -0
  95. package/node_modules/chalk/license +9 -0
  96. package/node_modules/chalk/package.json +83 -0
  97. package/node_modules/chalk/readme.md +297 -0
  98. package/node_modules/chalk/source/index.d.ts +325 -0
  99. package/node_modules/chalk/source/index.js +225 -0
  100. package/node_modules/chalk/source/utilities.js +33 -0
  101. package/node_modules/chalk/source/vendor/ansi-styles/index.d.ts +236 -0
  102. package/node_modules/chalk/source/vendor/ansi-styles/index.js +223 -0
  103. package/node_modules/chalk/source/vendor/supports-color/browser.d.ts +1 -0
  104. package/node_modules/chalk/source/vendor/supports-color/browser.js +34 -0
  105. package/node_modules/chalk/source/vendor/supports-color/index.d.ts +55 -0
  106. package/node_modules/chalk/source/vendor/supports-color/index.js +190 -0
  107. package/node_modules/cli-boxes/boxes.json +82 -0
  108. package/node_modules/cli-boxes/index.d.ts +127 -0
  109. package/node_modules/cli-boxes/index.js +6 -0
  110. package/node_modules/cli-boxes/license +9 -0
  111. package/node_modules/cli-boxes/package.json +42 -0
  112. package/node_modules/cli-boxes/readme.md +115 -0
  113. package/node_modules/cli-table3/LICENSE +21 -0
  114. package/node_modules/cli-table3/README.md +236 -0
  115. package/node_modules/cli-table3/index.d.ts +96 -0
  116. package/node_modules/cli-table3/index.js +1 -0
  117. package/node_modules/cli-table3/node_modules/ansi-regex/index.d.ts +37 -0
  118. package/node_modules/cli-table3/node_modules/ansi-regex/index.js +10 -0
  119. package/node_modules/cli-table3/node_modules/ansi-regex/license +9 -0
  120. package/node_modules/cli-table3/node_modules/ansi-regex/package.json +55 -0
  121. package/node_modules/cli-table3/node_modules/ansi-regex/readme.md +78 -0
  122. package/node_modules/cli-table3/node_modules/emoji-regex/LICENSE-MIT.txt +20 -0
  123. package/node_modules/cli-table3/node_modules/emoji-regex/README.md +73 -0
  124. package/node_modules/cli-table3/node_modules/emoji-regex/es2015/index.js +6 -0
  125. package/node_modules/cli-table3/node_modules/emoji-regex/es2015/text.js +6 -0
  126. package/node_modules/cli-table3/node_modules/emoji-regex/index.d.ts +23 -0
  127. package/node_modules/cli-table3/node_modules/emoji-regex/index.js +6 -0
  128. package/node_modules/cli-table3/node_modules/emoji-regex/package.json +50 -0
  129. package/node_modules/cli-table3/node_modules/emoji-regex/text.js +6 -0
  130. package/node_modules/cli-table3/node_modules/string-width/index.d.ts +29 -0
  131. package/node_modules/cli-table3/node_modules/string-width/index.js +47 -0
  132. package/node_modules/cli-table3/node_modules/string-width/license +9 -0
  133. package/node_modules/cli-table3/node_modules/string-width/package.json +56 -0
  134. package/node_modules/cli-table3/node_modules/string-width/readme.md +50 -0
  135. package/node_modules/cli-table3/node_modules/strip-ansi/index.d.ts +17 -0
  136. package/node_modules/cli-table3/node_modules/strip-ansi/index.js +4 -0
  137. package/node_modules/cli-table3/node_modules/strip-ansi/license +9 -0
  138. package/node_modules/cli-table3/node_modules/strip-ansi/package.json +54 -0
  139. package/node_modules/cli-table3/node_modules/strip-ansi/readme.md +46 -0
  140. package/node_modules/cli-table3/package.json +100 -0
  141. package/node_modules/cli-table3/src/cell.js +409 -0
  142. package/node_modules/cli-table3/src/debug.js +28 -0
  143. package/node_modules/cli-table3/src/layout-manager.js +254 -0
  144. package/node_modules/cli-table3/src/table.js +106 -0
  145. package/node_modules/cli-table3/src/utils.js +344 -0
  146. package/node_modules/commander/LICENSE +22 -0
  147. package/node_modules/commander/Readme.md +1157 -0
  148. package/node_modules/commander/esm.mjs +16 -0
  149. package/node_modules/commander/index.js +24 -0
  150. package/node_modules/commander/lib/argument.js +149 -0
  151. package/node_modules/commander/lib/command.js +2509 -0
  152. package/node_modules/commander/lib/error.js +39 -0
  153. package/node_modules/commander/lib/help.js +520 -0
  154. package/node_modules/commander/lib/option.js +330 -0
  155. package/node_modules/commander/lib/suggestSimilar.js +101 -0
  156. package/node_modules/commander/package-support.json +16 -0
  157. package/node_modules/commander/package.json +84 -0
  158. package/node_modules/commander/typings/esm.d.mts +3 -0
  159. package/node_modules/commander/typings/index.d.ts +969 -0
  160. package/node_modules/emoji-regex/LICENSE-MIT.txt +20 -0
  161. package/node_modules/emoji-regex/README.md +107 -0
  162. package/node_modules/emoji-regex/index.d.ts +3 -0
  163. package/node_modules/emoji-regex/index.js +4 -0
  164. package/node_modules/emoji-regex/index.mjs +4 -0
  165. package/node_modules/emoji-regex/package.json +45 -0
  166. package/node_modules/get-east-asian-width/index.d.ts +60 -0
  167. package/node_modules/get-east-asian-width/index.js +30 -0
  168. package/node_modules/get-east-asian-width/license +9 -0
  169. package/node_modules/get-east-asian-width/lookup-data.js +18 -0
  170. package/node_modules/get-east-asian-width/lookup.js +135 -0
  171. package/node_modules/get-east-asian-width/package.json +71 -0
  172. package/node_modules/get-east-asian-width/readme.md +65 -0
  173. package/node_modules/get-east-asian-width/utilities.js +24 -0
  174. package/node_modules/is-fullwidth-code-point/index.d.ts +17 -0
  175. package/node_modules/is-fullwidth-code-point/index.js +50 -0
  176. package/node_modules/is-fullwidth-code-point/license +9 -0
  177. package/node_modules/is-fullwidth-code-point/package.json +42 -0
  178. package/node_modules/is-fullwidth-code-point/readme.md +39 -0
  179. package/node_modules/isbinaryfile/LICENSE.txt +22 -0
  180. package/node_modules/isbinaryfile/README.md +70 -0
  181. package/node_modules/isbinaryfile/lib/index.d.ts +3 -0
  182. package/node_modules/isbinaryfile/lib/index.js +256 -0
  183. package/node_modules/isbinaryfile/package.json +64 -0
  184. package/node_modules/string-width/index.d.ts +39 -0
  185. package/node_modules/string-width/index.js +82 -0
  186. package/node_modules/string-width/license +9 -0
  187. package/node_modules/string-width/package.json +64 -0
  188. package/node_modules/string-width/readme.md +66 -0
  189. package/node_modules/strip-ansi/index.d.ts +15 -0
  190. package/node_modules/strip-ansi/index.js +19 -0
  191. package/node_modules/strip-ansi/license +9 -0
  192. package/node_modules/strip-ansi/package.json +59 -0
  193. package/node_modules/strip-ansi/readme.md +37 -0
  194. package/node_modules/type-fest/index.d.ts +178 -0
  195. package/node_modules/type-fest/license-cc0 +121 -0
  196. package/node_modules/type-fest/license-mit +9 -0
  197. package/node_modules/type-fest/package.json +91 -0
  198. package/node_modules/type-fest/readme.md +1060 -0
  199. package/node_modules/type-fest/source/all-union-fields.d.ts +88 -0
  200. package/node_modules/type-fest/source/and.d.ts +25 -0
  201. package/node_modules/type-fest/source/array-indices.d.ts +23 -0
  202. package/node_modules/type-fest/source/array-slice.d.ts +109 -0
  203. package/node_modules/type-fest/source/array-splice.d.ts +99 -0
  204. package/node_modules/type-fest/source/array-tail.d.ts +76 -0
  205. package/node_modules/type-fest/source/array-values.d.ts +22 -0
  206. package/node_modules/type-fest/source/arrayable.d.ts +29 -0
  207. package/node_modules/type-fest/source/async-return-type.d.ts +23 -0
  208. package/node_modules/type-fest/source/asyncify.d.ts +32 -0
  209. package/node_modules/type-fest/source/basic.d.ts +68 -0
  210. package/node_modules/type-fest/source/camel-case.d.ts +89 -0
  211. package/node_modules/type-fest/source/camel-cased-properties-deep.d.ts +97 -0
  212. package/node_modules/type-fest/source/camel-cased-properties.d.ts +43 -0
  213. package/node_modules/type-fest/source/conditional-except.d.ts +45 -0
  214. package/node_modules/type-fest/source/conditional-keys.d.ts +47 -0
  215. package/node_modules/type-fest/source/conditional-pick-deep.d.ts +118 -0
  216. package/node_modules/type-fest/source/conditional-pick.d.ts +44 -0
  217. package/node_modules/type-fest/source/conditional-simplify.d.ts +32 -0
  218. package/node_modules/type-fest/source/delimiter-case.d.ts +78 -0
  219. package/node_modules/type-fest/source/delimiter-cased-properties-deep.d.ts +106 -0
  220. package/node_modules/type-fest/source/delimiter-cased-properties.d.ts +46 -0
  221. package/node_modules/type-fest/source/distributed-omit.d.ts +89 -0
  222. package/node_modules/type-fest/source/distributed-pick.d.ts +85 -0
  223. package/node_modules/type-fest/source/empty-object.d.ts +46 -0
  224. package/node_modules/type-fest/source/enforce-optional.d.ts +47 -0
  225. package/node_modules/type-fest/source/entries.d.ts +62 -0
  226. package/node_modules/type-fest/source/entry.d.ts +65 -0
  227. package/node_modules/type-fest/source/exact.d.ts +68 -0
  228. package/node_modules/type-fest/source/except.d.ts +108 -0
  229. package/node_modules/type-fest/source/find-global-type.d.ts +64 -0
  230. package/node_modules/type-fest/source/fixed-length-array.d.ts +43 -0
  231. package/node_modules/type-fest/source/get.d.ts +219 -0
  232. package/node_modules/type-fest/source/global-this.d.ts +21 -0
  233. package/node_modules/type-fest/source/greater-than-or-equal.d.ts +22 -0
  234. package/node_modules/type-fest/source/greater-than.d.ts +56 -0
  235. package/node_modules/type-fest/source/has-optional-keys.d.ts +21 -0
  236. package/node_modules/type-fest/source/has-readonly-keys.d.ts +21 -0
  237. package/node_modules/type-fest/source/has-required-keys.d.ts +59 -0
  238. package/node_modules/type-fest/source/has-writable-keys.d.ts +21 -0
  239. package/node_modules/type-fest/source/if-any.d.ts +24 -0
  240. package/node_modules/type-fest/source/if-empty-object.d.ts +26 -0
  241. package/node_modules/type-fest/source/if-never.d.ts +24 -0
  242. package/node_modules/type-fest/source/if-null.d.ts +24 -0
  243. package/node_modules/type-fest/source/if-unknown.d.ts +24 -0
  244. package/node_modules/type-fest/source/includes.d.ts +22 -0
  245. package/node_modules/type-fest/source/int-closed-range.d.ts +35 -0
  246. package/node_modules/type-fest/source/int-range.d.ts +55 -0
  247. package/node_modules/type-fest/source/internal/array.d.ts +126 -0
  248. package/node_modules/type-fest/source/internal/characters.d.ts +67 -0
  249. package/node_modules/type-fest/source/internal/index.d.ts +8 -0
  250. package/node_modules/type-fest/source/internal/keys.d.ts +97 -0
  251. package/node_modules/type-fest/source/internal/numeric.d.ts +118 -0
  252. package/node_modules/type-fest/source/internal/object.d.ts +236 -0
  253. package/node_modules/type-fest/source/internal/string.d.ts +210 -0
  254. package/node_modules/type-fest/source/internal/tuple.d.ts +90 -0
  255. package/node_modules/type-fest/source/internal/type.d.ts +139 -0
  256. package/node_modules/type-fest/source/invariant-of.d.ts +76 -0
  257. package/node_modules/type-fest/source/is-any.d.ts +33 -0
  258. package/node_modules/type-fest/source/is-equal.d.ts +31 -0
  259. package/node_modules/type-fest/source/is-float.d.ts +41 -0
  260. package/node_modules/type-fest/source/is-integer.d.ts +58 -0
  261. package/node_modules/type-fest/source/is-literal.d.ts +296 -0
  262. package/node_modules/type-fest/source/is-never.d.ts +42 -0
  263. package/node_modules/type-fest/source/is-null.d.ts +20 -0
  264. package/node_modules/type-fest/source/is-tuple.d.ts +89 -0
  265. package/node_modules/type-fest/source/is-unknown.d.ts +52 -0
  266. package/node_modules/type-fest/source/iterable-element.d.ts +64 -0
  267. package/node_modules/type-fest/source/join.d.ts +68 -0
  268. package/node_modules/type-fest/source/jsonifiable.d.ts +37 -0
  269. package/node_modules/type-fest/source/jsonify.d.ts +122 -0
  270. package/node_modules/type-fest/source/kebab-case.d.ts +44 -0
  271. package/node_modules/type-fest/source/kebab-cased-properties-deep.d.ts +63 -0
  272. package/node_modules/type-fest/source/kebab-cased-properties.d.ts +40 -0
  273. package/node_modules/type-fest/source/keys-of-union.d.ts +42 -0
  274. package/node_modules/type-fest/source/last-array-element.d.ts +38 -0
  275. package/node_modules/type-fest/source/less-than-or-equal.d.ts +22 -0
  276. package/node_modules/type-fest/source/less-than.d.ts +26 -0
  277. package/node_modules/type-fest/source/literal-to-primitive-deep.d.ts +36 -0
  278. package/node_modules/type-fest/source/literal-to-primitive.d.ts +36 -0
  279. package/node_modules/type-fest/source/literal-union.d.ts +37 -0
  280. package/node_modules/type-fest/source/merge-deep.d.ts +486 -0
  281. package/node_modules/type-fest/source/merge-exclusive.d.ts +41 -0
  282. package/node_modules/type-fest/source/merge.d.ts +48 -0
  283. package/node_modules/type-fest/source/multidimensional-array.d.ts +44 -0
  284. package/node_modules/type-fest/source/multidimensional-readonly-array.d.ts +48 -0
  285. package/node_modules/type-fest/source/non-empty-object.d.ts +35 -0
  286. package/node_modules/type-fest/source/non-empty-string.d.ts +28 -0
  287. package/node_modules/type-fest/source/non-empty-tuple.d.ts +21 -0
  288. package/node_modules/type-fest/source/numeric.d.ts +222 -0
  289. package/node_modules/type-fest/source/observable-like.d.ts +63 -0
  290. package/node_modules/type-fest/source/omit-deep.d.ts +167 -0
  291. package/node_modules/type-fest/source/omit-index-signature.d.ts +95 -0
  292. package/node_modules/type-fest/source/opaque.d.ts +1 -0
  293. package/node_modules/type-fest/source/optional-keys-of.d.ts +39 -0
  294. package/node_modules/type-fest/source/or.d.ts +25 -0
  295. package/node_modules/type-fest/source/override-properties.d.ts +36 -0
  296. package/node_modules/type-fest/source/package-json.d.ts +676 -0
  297. package/node_modules/type-fest/source/partial-deep.d.ts +151 -0
  298. package/node_modules/type-fest/source/partial-on-undefined-deep.d.ts +78 -0
  299. package/node_modules/type-fest/source/pascal-case.d.ts +42 -0
  300. package/node_modules/type-fest/source/pascal-cased-properties-deep.d.ts +62 -0
  301. package/node_modules/type-fest/source/pascal-cased-properties.d.ts +36 -0
  302. package/node_modules/type-fest/source/paths.d.ts +262 -0
  303. package/node_modules/type-fest/source/pick-deep.d.ts +149 -0
  304. package/node_modules/type-fest/source/pick-index-signature.d.ts +50 -0
  305. package/node_modules/type-fest/source/primitive.d.ts +13 -0
  306. package/node_modules/type-fest/source/promisable.d.ts +25 -0
  307. package/node_modules/type-fest/source/readonly-deep.d.ts +81 -0
  308. package/node_modules/type-fest/source/readonly-keys-of.d.ts +30 -0
  309. package/node_modules/type-fest/source/readonly-tuple.d.ts +41 -0
  310. package/node_modules/type-fest/source/replace.d.ts +85 -0
  311. package/node_modules/type-fest/source/require-all-or-none.d.ts +51 -0
  312. package/node_modules/type-fest/source/require-at-least-one.d.ts +47 -0
  313. package/node_modules/type-fest/source/require-exactly-one.d.ts +45 -0
  314. package/node_modules/type-fest/source/require-one-or-none.d.ts +46 -0
  315. package/node_modules/type-fest/source/required-deep.d.ts +78 -0
  316. package/node_modules/type-fest/source/required-keys-of.d.ts +30 -0
  317. package/node_modules/type-fest/source/schema.d.ts +114 -0
  318. package/node_modules/type-fest/source/screaming-snake-case.d.ts +28 -0
  319. package/node_modules/type-fest/source/set-field-type.d.ts +65 -0
  320. package/node_modules/type-fest/source/set-non-nullable-deep.d.ts +83 -0
  321. package/node_modules/type-fest/source/set-non-nullable.d.ts +39 -0
  322. package/node_modules/type-fest/source/set-optional.d.ts +38 -0
  323. package/node_modules/type-fest/source/set-parameter-type.d.ts +117 -0
  324. package/node_modules/type-fest/source/set-readonly.d.ts +39 -0
  325. package/node_modules/type-fest/source/set-required-deep.d.ts +68 -0
  326. package/node_modules/type-fest/source/set-required.d.ts +70 -0
  327. package/node_modules/type-fest/source/set-return-type.d.ts +29 -0
  328. package/node_modules/type-fest/source/shared-union-fields-deep.d.ts +178 -0
  329. package/node_modules/type-fest/source/shared-union-fields.d.ts +76 -0
  330. package/node_modules/type-fest/source/simplify-deep.d.ts +115 -0
  331. package/node_modules/type-fest/source/simplify.d.ts +58 -0
  332. package/node_modules/type-fest/source/single-key-object.d.ts +29 -0
  333. package/node_modules/type-fest/source/snake-case.d.ts +45 -0
  334. package/node_modules/type-fest/source/snake-cased-properties-deep.d.ts +63 -0
  335. package/node_modules/type-fest/source/snake-cased-properties.d.ts +40 -0
  336. package/node_modules/type-fest/source/split.d.ts +88 -0
  337. package/node_modules/type-fest/source/spread.d.ts +84 -0
  338. package/node_modules/type-fest/source/string-key-of.d.ts +25 -0
  339. package/node_modules/type-fest/source/string-repeat.d.ts +47 -0
  340. package/node_modules/type-fest/source/string-slice.d.ts +37 -0
  341. package/node_modules/type-fest/source/stringified.d.ts +23 -0
  342. package/node_modules/type-fest/source/structured-cloneable.d.ts +92 -0
  343. package/node_modules/type-fest/source/subtract.d.ts +83 -0
  344. package/node_modules/type-fest/source/sum.d.ts +78 -0
  345. package/node_modules/type-fest/source/tagged-union.d.ts +51 -0
  346. package/node_modules/type-fest/source/tagged.d.ts +256 -0
  347. package/node_modules/type-fest/source/trim.d.ts +27 -0
  348. package/node_modules/type-fest/source/tsconfig-json.d.ts +1294 -0
  349. package/node_modules/type-fest/source/tuple-to-object.d.ts +42 -0
  350. package/node_modules/type-fest/source/tuple-to-union.d.ts +51 -0
  351. package/node_modules/type-fest/source/typed-array.d.ts +17 -0
  352. package/node_modules/type-fest/source/undefined-on-partial-deep.d.ts +80 -0
  353. package/node_modules/type-fest/source/union-to-intersection.d.ts +61 -0
  354. package/node_modules/type-fest/source/union-to-tuple.d.ts +56 -0
  355. package/node_modules/type-fest/source/unknown-array.d.ts +25 -0
  356. package/node_modules/type-fest/source/unknown-map.d.ts +24 -0
  357. package/node_modules/type-fest/source/unknown-record.d.ts +31 -0
  358. package/node_modules/type-fest/source/unknown-set.d.ts +24 -0
  359. package/node_modules/type-fest/source/value-of.d.ts +42 -0
  360. package/node_modules/type-fest/source/words.d.ts +118 -0
  361. package/node_modules/type-fest/source/writable-deep.d.ts +83 -0
  362. package/node_modules/type-fest/source/writable-keys-of.d.ts +33 -0
  363. package/node_modules/type-fest/source/writable.d.ts +68 -0
  364. package/node_modules/widest-line/index.d.ts +12 -0
  365. package/node_modules/widest-line/index.js +11 -0
  366. package/node_modules/widest-line/license +9 -0
  367. package/node_modules/widest-line/package.json +60 -0
  368. package/node_modules/widest-line/readme.md +26 -0
  369. package/node_modules/wrap-ansi/index.d.ts +41 -0
  370. package/node_modules/wrap-ansi/index.js +222 -0
  371. package/node_modules/wrap-ansi/license +9 -0
  372. package/node_modules/wrap-ansi/package.json +69 -0
  373. package/node_modules/wrap-ansi/readme.md +75 -0
  374. package/package.json +78 -0
  375. package/scripts/postinstall.cjs +122 -0
@@ -0,0 +1,55 @@
1
+ import type {BuildTuple} from './internal';
2
+ import type {Subtract} from './subtract';
3
+
4
+ /**
5
+ Generate a union of numbers.
6
+
7
+ The numbers are created from the given `Start` (inclusive) parameter to the given `End` (exclusive) parameter.
8
+
9
+ You skip over numbers using the `Step` parameter (defaults to `1`). For example, `IntRange<0, 10, 2>` will create a union of `0 | 2 | 4 | 6 | 8`.
10
+
11
+ Note: `Start` or `End` must be non-negative and smaller than `1000`.
12
+
13
+ Use-cases:
14
+ 1. This can be used to define a set of valid input/output values. for example:
15
+ ```
16
+ type Age = IntRange<0, 120>;
17
+ type FontSize = IntRange<10, 20>;
18
+ type EvenNumber = IntRange<0, 11, 2>; //=> 0 | 2 | 4 | 6 | 8 | 10
19
+ ```
20
+ 2. This can be used to define random numbers in a range. For example, `type RandomNumber = IntRange<0, 100>;`
21
+
22
+ @example
23
+ ```
24
+ import type {IntRange} from 'type-fest';
25
+
26
+ // Create union type `0 | 1 | ... | 9`
27
+ type ZeroToNine = IntRange<0, 10>;
28
+
29
+ // Create union type `100 | 200 | 300 | ... | 900`
30
+ type Hundreds = IntRange<100, 901, 100>;
31
+ ```
32
+
33
+ @see IntClosedRange
34
+ */
35
+ export type IntRange<Start extends number, End extends number, Step extends number = 1> = PrivateIntRange<Start, End, Step>;
36
+
37
+ /**
38
+ The actual implementation of `IntRange`. It's private because it has some arguments that don't need to be exposed.
39
+ */
40
+ type PrivateIntRange<
41
+ Start extends number,
42
+ End extends number,
43
+ Step extends number,
44
+ Gap extends number = Subtract<Step, 1>, // The gap between each number, gap = step - 1
45
+ List extends unknown[] = BuildTuple<Start, never>, // The final `List` is `[...StartLengthTuple, ...[number, ...GapLengthTuple], ...[number, ...GapLengthTuple], ... ...]`, so can initialize the `List` with `[...StartLengthTuple]`
46
+ EndLengthTuple extends unknown[] = BuildTuple<End>,
47
+ > = Gap extends 0 ?
48
+ // Handle the case that without `Step`
49
+ List['length'] extends End // The result of "List[length] === End"
50
+ ? Exclude<List[number], never> // All unused elements are `never`, so exclude them
51
+ : PrivateIntRange<Start, End, Step, Gap, [...List, List['length'] ]>
52
+ // Handle the case that with `Step`
53
+ : List extends [...(infer U), ...EndLengthTuple] // The result of "List[length] >= End", because the `...BuildTuple<Gap, never>` maybe make `List` too long.
54
+ ? Exclude<List[number], never>
55
+ : PrivateIntRange<Start, End, Step, Gap, [...List, List['length'], ...BuildTuple<Gap, never>]>;
@@ -0,0 +1,126 @@
1
+ import type {IfNever} from '../if-never';
2
+ import type {UnknownArray} from '../unknown-array';
3
+
4
+ /**
5
+ Infer the length of the given array `<T>`.
6
+
7
+ @link https://itnext.io/implementing-arithmetic-within-typescripts-type-system-a1ef140a6f6f
8
+ */
9
+ type ArrayLength<T extends readonly unknown[]> = T extends {readonly length: infer L} ? L : never;
10
+
11
+ /**
12
+ Matches any unknown array or tuple.
13
+ */
14
+ export type UnknownArrayOrTuple = readonly [...unknown[]];
15
+ // TODO: should unknown-array be updated?
16
+
17
+ /**
18
+ Extracts the type of the first element of an array or tuple.
19
+ */
20
+ export type FirstArrayElement<TArray extends UnknownArrayOrTuple> = TArray extends readonly [infer THead, ...unknown[]]
21
+ ? THead
22
+ : never;
23
+
24
+ /**
25
+ Extract the element of an array that also works for array union.
26
+
27
+ Returns `never` if T is not an array.
28
+
29
+ It creates a type-safe way to access the element type of `unknown` type.
30
+ */
31
+ export type ArrayElement<T> = T extends readonly unknown[] ? T[0] : never;
32
+
33
+ /**
34
+ Returns the static, fixed-length portion of the given array, excluding variable-length parts.
35
+
36
+ @example
37
+ ```
38
+ type A = [string, number, boolean, ...string[]];
39
+ type B = StaticPartOfArray<A>;
40
+ //=> [string, number, boolean]
41
+ ```
42
+ */
43
+ export type StaticPartOfArray<T extends UnknownArray, Result extends UnknownArray = []> =
44
+ T extends unknown
45
+ ? number extends T['length'] ?
46
+ T extends readonly [infer U, ...infer V]
47
+ ? StaticPartOfArray<V, [...Result, U]>
48
+ : Result
49
+ : T
50
+ : never; // Should never happen
51
+
52
+ /**
53
+ Returns the variable, non-fixed-length portion of the given array, excluding static-length parts.
54
+
55
+ @example
56
+ ```
57
+ type A = [string, number, boolean, ...string[]];
58
+ type B = VariablePartOfArray<A>;
59
+ //=> string[]
60
+ ```
61
+ */
62
+ export type VariablePartOfArray<T extends UnknownArray> =
63
+ T extends unknown
64
+ ? T extends readonly [...StaticPartOfArray<T>, ...infer U]
65
+ ? U
66
+ : []
67
+ : never; // Should never happen
68
+
69
+ /**
70
+ Set the given array to readonly if `IsReadonly` is `true`, otherwise set the given array to normal, then return the result.
71
+
72
+ @example
73
+ ```
74
+ type ReadonlyArray = readonly string[];
75
+ type NormalArray = string[];
76
+
77
+ type ReadonlyResult = SetArrayAccess<NormalArray, true>;
78
+ //=> readonly string[]
79
+
80
+ type NormalResult = SetArrayAccess<ReadonlyArray, false>;
81
+ //=> string[]
82
+ ```
83
+ */
84
+ export type SetArrayAccess<T extends UnknownArray, IsReadonly extends boolean> =
85
+ T extends readonly [...infer U] ?
86
+ IsReadonly extends true
87
+ ? readonly [...U]
88
+ : [...U]
89
+ : T;
90
+
91
+ /**
92
+ Returns whether the given array `T` is readonly.
93
+ */
94
+ export type IsArrayReadonly<T extends UnknownArray> = IfNever<T, false, T extends unknown[] ? false : true>;
95
+
96
+ /**
97
+ An if-else-like type that resolves depending on whether the given array is readonly.
98
+
99
+ @see {@link IsArrayReadonly}
100
+
101
+ @example
102
+ ```
103
+ import type {ArrayTail} from 'type-fest';
104
+
105
+ type ReadonlyPreservingArrayTail<TArray extends readonly unknown[]> =
106
+ ArrayTail<TArray> extends infer Tail
107
+ ? IfArrayReadonly<TArray, Readonly<Tail>, Tail>
108
+ : never;
109
+
110
+ type ReadonlyTail = ReadonlyPreservingArrayTail<readonly [string, number, boolean]>;
111
+ //=> readonly [number, boolean]
112
+
113
+ type NonReadonlyTail = ReadonlyPreservingArrayTail<[string, number, boolean]>;
114
+ //=> [number, boolean]
115
+
116
+ type ShouldBeTrue = IfArrayReadonly<readonly unknown[]>;
117
+ //=> true
118
+
119
+ type ShouldBeBar = IfArrayReadonly<unknown[], 'foo', 'bar'>;
120
+ //=> 'bar'
121
+ ```
122
+ */
123
+ export type IfArrayReadonly<T extends UnknownArray, TypeIfArrayReadonly = true, TypeIfNotArrayReadonly = false> =
124
+ IsArrayReadonly<T> extends infer Result
125
+ ? Result extends true ? TypeIfArrayReadonly : TypeIfNotArrayReadonly
126
+ : never; // Should never happen
@@ -0,0 +1,67 @@
1
+ export type UpperCaseCharacters = 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z';
2
+
3
+ export type StringDigit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9';
4
+
5
+ export type Whitespace =
6
+ | '\u{9}' // '\t'
7
+ | '\u{A}' // '\n'
8
+ | '\u{B}' // '\v'
9
+ | '\u{C}' // '\f'
10
+ | '\u{D}' // '\r'
11
+ | '\u{20}' // ' '
12
+ | '\u{85}'
13
+ | '\u{A0}'
14
+ | '\u{1680}'
15
+ | '\u{2000}'
16
+ | '\u{2001}'
17
+ | '\u{2002}'
18
+ | '\u{2003}'
19
+ | '\u{2004}'
20
+ | '\u{2005}'
21
+ | '\u{2006}'
22
+ | '\u{2007}'
23
+ | '\u{2008}'
24
+ | '\u{2009}'
25
+ | '\u{200A}'
26
+ | '\u{2028}'
27
+ | '\u{2029}'
28
+ | '\u{202F}'
29
+ | '\u{205F}'
30
+ | '\u{3000}'
31
+ | '\u{FEFF}';
32
+
33
+ export type WordSeparators = '-' | '_' | Whitespace;
34
+
35
+ export type AsciiPunctuation =
36
+ | '!'
37
+ | '"'
38
+ | '#'
39
+ | '$'
40
+ | '%'
41
+ | '&'
42
+ | '\''
43
+ | '('
44
+ | ')'
45
+ | '*'
46
+ | '+'
47
+ | ','
48
+ | '-'
49
+ | '.'
50
+ | '/'
51
+ | ':'
52
+ | ';'
53
+ | '<'
54
+ | '='
55
+ | '>'
56
+ | '?'
57
+ | '@'
58
+ | '['
59
+ | '\\'
60
+ | ']'
61
+ | '^'
62
+ | '_'
63
+ | '`'
64
+ | '{'
65
+ | '|'
66
+ | '}'
67
+ | '~';
@@ -0,0 +1,8 @@
1
+ export type * from './array';
2
+ export type * from './characters';
3
+ export type * from './keys';
4
+ export type * from './numeric';
5
+ export type * from './object';
6
+ export type * from './string';
7
+ export type * from './tuple';
8
+ export type * from './type';
@@ -0,0 +1,97 @@
1
+ import type {IsAny} from '../is-any';
2
+ import type {IsLiteral} from '../is-literal';
3
+ import type {ToString} from './string';
4
+
5
+ // Returns `never` if the key or property is not jsonable without testing whether the property is required or optional otherwise return the key.
6
+ type BaseKeyFilter<Type, Key extends keyof Type> = Key extends symbol
7
+ ? never
8
+ : Type[Key] extends symbol
9
+ ? never
10
+ /*
11
+ To prevent a problem where an object with only a `name` property is incorrectly treated as assignable to a function, we first check if the property is a record.
12
+ This check is necessary, because without it, if we don't verify whether the property is a record, an object with a type of `{name: any}` would return `never` due to its potential assignability to a function.
13
+ See: https://github.com/sindresorhus/type-fest/issues/657
14
+ */
15
+ : Type[Key] extends Record<string, unknown>
16
+ ? Key
17
+ : [(...arguments_: any[]) => any] extends [Type[Key]]
18
+ ? never
19
+ : Key;
20
+
21
+ /**
22
+ Returns the required keys.
23
+ */
24
+ export type FilterDefinedKeys<T extends object> = Exclude<
25
+ {
26
+ [Key in keyof T]: IsAny<T[Key]> extends true
27
+ ? Key
28
+ : undefined extends T[Key]
29
+ ? never
30
+ : T[Key] extends undefined
31
+ ? never
32
+ : BaseKeyFilter<T, Key>;
33
+ }[keyof T],
34
+ undefined
35
+ >;
36
+
37
+ /**
38
+ Returns the optional keys.
39
+ */
40
+ export type FilterOptionalKeys<T extends object> = Exclude<
41
+ {
42
+ [Key in keyof T]: IsAny<T[Key]> extends true
43
+ ? never
44
+ : undefined extends T[Key]
45
+ ? T[Key] extends undefined
46
+ ? never
47
+ : BaseKeyFilter<T, Key>
48
+ : never;
49
+ }[keyof T],
50
+ undefined
51
+ >;
52
+
53
+ /**
54
+ Disallows any of the given keys.
55
+ */
56
+ export type RequireNone<KeysType extends PropertyKey> = Partial<Record<KeysType, never>>;
57
+
58
+ /**
59
+ Utility type to retrieve only literal keys from type.
60
+ */
61
+ export type LiteralKeyOf<T> = keyof {[K in keyof T as IsLiteral<K> extends true ? K : never]-?: never};
62
+
63
+ /**
64
+ Get the exact version of the given `Key` in the given object `T`.
65
+
66
+ Use-case: You known that a number key (e.g. 10) is in an object, but you don't know how it is defined in the object, as a string or as a number (e.g. 10 or '10'). You can use this type to get the exact version of the key. See the example.
67
+
68
+ @example
69
+ ```
70
+ type Object = {
71
+ 0: number;
72
+ '1': string;
73
+ };
74
+
75
+ type Key1 = ExactKey<Object, '0'>;
76
+ //=> 0
77
+ type Key2 = ExactKey<Object, 0>;
78
+ //=> 0
79
+
80
+ type Key3 = ExactKey<Object, '1'>;
81
+ //=> '1'
82
+ type Key4 = ExactKey<Object, 1>;
83
+ //=> '1'
84
+ ```
85
+
86
+ @category Object
87
+ */
88
+ export type ExactKey<T extends object, Key extends PropertyKey> =
89
+ Key extends keyof T
90
+ ? Key
91
+ : ToString<Key> extends keyof T
92
+ ? ToString<Key>
93
+ : Key extends `${infer NumberKey extends number}`
94
+ ? NumberKey extends keyof T
95
+ ? NumberKey
96
+ : never
97
+ : never;
@@ -0,0 +1,118 @@
1
+ import type {IsNever} from '../is-never';
2
+ import type {NegativeInfinity, PositiveInfinity} from '../numeric';
3
+ import type {UnknownArray} from '../unknown-array';
4
+ import type {StringToNumber} from './string';
5
+
6
+ /**
7
+ Returns the absolute value of a given value.
8
+
9
+ @example
10
+ ```
11
+ NumberAbsolute<-1>;
12
+ //=> 1
13
+
14
+ NumberAbsolute<1>;
15
+ //=> 1
16
+
17
+ NumberAbsolute<NegativeInfinity>
18
+ //=> PositiveInfinity
19
+ ```
20
+ */
21
+ export type NumberAbsolute<N extends number> = `${N}` extends `-${infer StringPositiveN}` ? StringToNumber<StringPositiveN> : N;
22
+
23
+ /**
24
+ Check whether the given type is a number or a number string.
25
+
26
+ Supports floating-point as a string.
27
+
28
+ @example
29
+ ```
30
+ type A = IsNumberLike<'1'>;
31
+ //=> true
32
+
33
+ type B = IsNumberLike<'-1.1'>;
34
+ //=> true
35
+
36
+ type C = IsNumberLike<1>;
37
+ //=> true
38
+
39
+ type D = IsNumberLike<'a'>;
40
+ //=> false
41
+ */
42
+ export type IsNumberLike<N> =
43
+ N extends number ? true
44
+ : N extends `${number}`
45
+ ? true
46
+ : N extends `${number}.${number}`
47
+ ? true
48
+ : false;
49
+
50
+ /**
51
+ Returns the minimum number in the given union of numbers.
52
+
53
+ Note: Just supports numbers from 0 to 999.
54
+
55
+ @example
56
+ ```
57
+ type A = UnionMin<3 | 1 | 2>;
58
+ //=> 1
59
+ ```
60
+ */
61
+ export type UnionMin<N extends number> = InternalUnionMin<N>;
62
+
63
+ /**
64
+ The actual implementation of `UnionMin`. It's private because it has some arguments that don't need to be exposed.
65
+ */
66
+ type InternalUnionMin<N extends number, T extends UnknownArray = []> =
67
+ T['length'] extends N
68
+ ? T['length']
69
+ : InternalUnionMin<N, [...T, unknown]>;
70
+
71
+ /**
72
+ Returns the maximum number in the given union of numbers.
73
+
74
+ Note: Just supports numbers from 0 to 999.
75
+
76
+ @example
77
+ ```
78
+ type A = UnionMax<1 | 3 | 2>;
79
+ //=> 3
80
+ ```
81
+ */
82
+ export type UnionMax<N extends number> = InternalUnionMax<N>;
83
+
84
+ /**
85
+ The actual implementation of `UnionMax`. It's private because it has some arguments that don't need to be exposed.
86
+ */
87
+ type InternalUnionMax<N extends number, T extends UnknownArray = []> =
88
+ IsNever<N> extends true
89
+ ? T['length']
90
+ : T['length'] extends N
91
+ ? InternalUnionMax<Exclude<N, T['length']>, T>
92
+ : InternalUnionMax<N, [...T, unknown]>;
93
+
94
+ /**
95
+ Returns the number with reversed sign.
96
+
97
+ @example
98
+ ```
99
+ ReverseSign<-1>;
100
+ //=> 1
101
+
102
+ ReverseSign<1>;
103
+ //=> -1
104
+
105
+ ReverseSign<NegativeInfinity>
106
+ //=> PositiveInfinity
107
+
108
+ ReverseSign<PositiveInfinity>
109
+ //=> NegativeInfinity
110
+ ```
111
+ */
112
+ export type ReverseSign<N extends number> =
113
+ // Handle edge cases
114
+ N extends 0 ? 0 : N extends PositiveInfinity ? NegativeInfinity : N extends NegativeInfinity ? PositiveInfinity :
115
+ // Handle negative numbers
116
+ `${N}` extends `-${infer P extends number}` ? P
117
+ // Handle positive numbers
118
+ : `-${N}` extends `${infer R extends number}` ? R : never;