@rzl-zone/utils-js 3.12.1-beta.0 → 3.13.0-beta.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 (243) hide show
  1. package/README.md +15 -35
  2. package/dist/.references/index.d.cts +1 -3
  3. package/dist/.references/index.d.ts +1 -3
  4. package/dist/{assertIsArray-BfAbIUfa.js → assertIsArray-6BcSdNa-.js} +3 -3
  5. package/dist/{assertIsArray-BfAbIUfa.js.map → assertIsArray-6BcSdNa-.js.map} +1 -1
  6. package/dist/{assertIsArray-BChqwPiP.cjs → assertIsArray-BqjMoan3.cjs} +3 -3
  7. package/dist/{assertIsArray-BChqwPiP.cjs.map → assertIsArray-BqjMoan3.cjs.map} +1 -1
  8. package/dist/{assertIsBoolean-BlBct0Fc.js → assertIsBoolean-Bv6gL-xe.js} +8 -8
  9. package/dist/assertIsBoolean-Bv6gL-xe.js.map +1 -0
  10. package/dist/{assertIsBoolean-DozdtbNi.cjs → assertIsBoolean-amRiJHnh.cjs} +8 -8
  11. package/dist/assertIsBoolean-amRiJHnh.cjs.map +1 -0
  12. package/dist/{assertIsString-DqV9NwbI.js → assertIsString-1WiUjgqf.js} +3 -3
  13. package/dist/{assertIsString-DqV9NwbI.js.map → assertIsString-1WiUjgqf.js.map} +1 -1
  14. package/dist/{assertIsString-Bvk7bUL7.cjs → assertIsString-C0b28AU1.cjs} +3 -3
  15. package/dist/{assertIsString-Bvk7bUL7.cjs.map → assertIsString-C0b28AU1.cjs.map} +1 -1
  16. package/dist/assertions/index.cjs +5 -5
  17. package/dist/assertions/index.d.cts +2 -2
  18. package/dist/assertions/index.d.ts +2 -2
  19. package/dist/assertions/index.js +5 -5
  20. package/dist/conversions/index.cjs +6 -6
  21. package/dist/conversions/index.d.cts +2 -2
  22. package/dist/conversions/index.d.ts +2 -2
  23. package/dist/conversions/index.js +6 -6
  24. package/dist/{conversions-EMJa3g-D.js → conversions-BrI0GIOr.js} +16 -18
  25. package/dist/conversions-BrI0GIOr.js.map +1 -0
  26. package/dist/{conversions-CBs8-REq.cjs → conversions-lvvAYiZs.cjs} +16 -18
  27. package/dist/conversions-lvvAYiZs.cjs.map +1 -0
  28. package/dist/events/index.cjs +4 -4
  29. package/dist/events/index.cjs.map +1 -1
  30. package/dist/events/index.d.cts +153 -151
  31. package/dist/events/index.d.ts +153 -151
  32. package/dist/events/index.js +4 -4
  33. package/dist/events/index.js.map +1 -1
  34. package/dist/formatters/index.cjs +2 -2
  35. package/dist/formatters/index.d.cts +2 -2
  36. package/dist/formatters/index.d.ts +2 -2
  37. package/dist/formatters/index.js +2 -2
  38. package/dist/{formatters-lAYgA11L.cjs → formatters-DQr05EUA.cjs} +17 -15
  39. package/dist/formatters-DQr05EUA.cjs.map +1 -0
  40. package/dist/{formatters-QcZO_Cpx.js → formatters-zDzQvtb4.js} +17 -15
  41. package/dist/formatters-zDzQvtb4.js.map +1 -0
  42. package/dist/generators/index.cjs +12 -8
  43. package/dist/generators/index.cjs.map +1 -1
  44. package/dist/generators/index.d.cts +2 -2
  45. package/dist/generators/index.d.ts +2 -2
  46. package/dist/generators/index.js +12 -8
  47. package/dist/generators/index.js.map +1 -1
  48. package/dist/index-3jBnthag.d.cts +340 -0
  49. package/dist/index-BXwimNPA.d.cts +2361 -0
  50. package/dist/index-BlTCrSyc.d.cts +2158 -0
  51. package/dist/index-CEm8ZOvj.d.ts +2158 -0
  52. package/dist/index-CLq5kZmQ.d.cts +822 -0
  53. package/dist/index-Ckao53JY.d.ts +2361 -0
  54. package/dist/index-DHHrLc0B.d.ts +947 -0
  55. package/dist/index-DIeR8qa-.d.ts +340 -0
  56. package/dist/index-DxZlGbAH.d.ts +1716 -0
  57. package/dist/index-DyVWeYP3.d.cts +765 -0
  58. package/dist/index-GSUN6rjA.d.ts +822 -0
  59. package/dist/index-_dJhBl1h.d.ts +765 -0
  60. package/dist/index-bMa-0Yr4.d.cts +1716 -0
  61. package/dist/index-z_uCh5KW.d.cts +947 -0
  62. package/dist/{isBigInt-B1cijjqm.cjs → isBigInt-CIFRnsdx.cjs} +2 -2
  63. package/dist/{isBigInt-B1cijjqm.cjs.map → isBigInt-CIFRnsdx.cjs.map} +1 -1
  64. package/dist/{isBigInt-C0bN0Rhu.js → isBigInt-D-Pu9sxp.js} +2 -2
  65. package/dist/{isBigInt-C0bN0Rhu.js.map → isBigInt-D-Pu9sxp.js.map} +1 -1
  66. package/dist/{isEmptyObject-DI42NEo0.cjs → isEmptyObject-CEySmyHK.cjs} +3 -3
  67. package/dist/{isEmptyObject-DI42NEo0.cjs.map → isEmptyObject-CEySmyHK.cjs.map} +1 -1
  68. package/dist/{isEmptyObject-DeLVIJpl.js → isEmptyObject-CZ9DLi7R.js} +3 -3
  69. package/dist/{isEmptyObject-DeLVIJpl.js.map → isEmptyObject-CZ9DLi7R.js.map} +1 -1
  70. package/dist/{isEmptyString-BTUWYTbw.js → isEmptyString-DFDtBbNr.js} +3 -3
  71. package/dist/{isEmptyString-BTUWYTbw.js.map → isEmptyString-DFDtBbNr.js.map} +1 -1
  72. package/dist/{isEmptyString-CCK3bP74.cjs → isEmptyString-DI64RQCy.cjs} +3 -3
  73. package/dist/{isEmptyString-CCK3bP74.cjs.map → isEmptyString-DI64RQCy.cjs.map} +1 -1
  74. package/dist/{isEmptyValue-DMSMFTU8.cjs → isEmptyValue-Cw6ovu7z.cjs} +5 -5
  75. package/dist/{isEmptyValue-DMSMFTU8.cjs.map → isEmptyValue-Cw6ovu7z.cjs.map} +1 -1
  76. package/dist/{isEmptyValue-fjnfQnt5.js → isEmptyValue-aGyeClwA.js} +5 -5
  77. package/dist/{isEmptyValue-fjnfQnt5.js.map → isEmptyValue-aGyeClwA.js.map} +1 -1
  78. package/dist/{isEqual-DhyP8fB_.js → isEqual-Dtb2sXUv.js} +4 -4
  79. package/dist/{isEqual-DhyP8fB_.js.map → isEqual-Dtb2sXUv.js.map} +1 -1
  80. package/dist/{isEqual-B1fRgEuU.cjs → isEqual-UsvOwrlY.cjs} +4 -4
  81. package/dist/{isEqual-B1fRgEuU.cjs.map → isEqual-UsvOwrlY.cjs.map} +1 -1
  82. package/dist/{isFinite-BYMOo0os.js → isFinite-Cz_IFXuV.js} +3 -3
  83. package/dist/{isFinite-BYMOo0os.js.map → isFinite-Cz_IFXuV.js.map} +1 -1
  84. package/dist/{isFinite-sFkps2TY.cjs → isFinite-uukWvxJh.cjs} +3 -3
  85. package/dist/{isFinite-sFkps2TY.cjs.map → isFinite-uukWvxJh.cjs.map} +1 -1
  86. package/dist/{isInteger-FTCthMre.cjs → isInteger-DPYjliLZ.cjs} +2 -2
  87. package/dist/{isInteger-FTCthMre.cjs.map → isInteger-DPYjliLZ.cjs.map} +1 -1
  88. package/dist/{isInteger-DS9V7l_f.js → isInteger-DZ163OQg.js} +2 -2
  89. package/dist/{isInteger-DS9V7l_f.js.map → isInteger-DZ163OQg.js.map} +1 -1
  90. package/dist/isPlainObject-CBABRyEX.d.cts +339 -0
  91. package/dist/isPlainObject-Dr8gi89U.d.ts +339 -0
  92. package/dist/{isServer-D1TXfOs3.js → isServer-BDShLyVJ.js} +2 -2
  93. package/dist/{isServer-D1TXfOs3.js.map → isServer-BDShLyVJ.js.map} +1 -1
  94. package/dist/{isServer-q-QLFCqE.cjs → isServer-BzDeYuGg.cjs} +2 -2
  95. package/dist/{isServer-q-QLFCqE.cjs.map → isServer-BzDeYuGg.cjs.map} +1 -1
  96. package/dist/{isTypedArray-DiCoqffZ.cjs → isTypedArray-DaYAkyrt.cjs} +3 -3
  97. package/dist/{isTypedArray-DiCoqffZ.cjs.map → isTypedArray-DaYAkyrt.cjs.map} +1 -1
  98. package/dist/{isTypedArray-47R0wdrc.js → isTypedArray-DuUUA4CL.js} +3 -3
  99. package/dist/{isTypedArray-47R0wdrc.js.map → isTypedArray-DuUUA4CL.js.map} +1 -1
  100. package/dist/{isValidDomain-BSXshgkC.cjs → isValidDomain-BxyToAlh.cjs} +74 -8
  101. package/dist/isValidDomain-BxyToAlh.cjs.map +1 -0
  102. package/dist/{isValidDomain-DwA2EN79.js → isValidDomain-CTw5vZFY.js} +57 -9
  103. package/dist/isValidDomain-CTw5vZFY.js.map +1 -0
  104. package/dist/{noop-B2mTBhW-.cjs → noop-7KrqC9DC.cjs} +2 -2
  105. package/dist/{noop-B2mTBhW-.cjs.map → noop-7KrqC9DC.cjs.map} +1 -1
  106. package/dist/{noop-BzktGBVz.js → noop-DGg9vMSD.js} +2 -2
  107. package/dist/{noop-BzktGBVz.js.map → noop-DGg9vMSD.js.map} +1 -1
  108. package/dist/{normalizeSpaces-DQHR3Tlr.cjs → normalizeSpaces-B6ZQOZRX.cjs} +3 -3
  109. package/dist/{normalizeSpaces-DQHR3Tlr.cjs.map → normalizeSpaces-B6ZQOZRX.cjs.map} +1 -1
  110. package/dist/{normalizeSpaces-WS_iERJk.js → normalizeSpaces-C1eLwykD.js} +3 -3
  111. package/dist/{normalizeSpaces-WS_iERJk.js.map → normalizeSpaces-C1eLwykD.js.map} +1 -1
  112. package/dist/operations/index.cjs +10 -10
  113. package/dist/operations/index.cjs.map +1 -1
  114. package/dist/operations/index.d.cts +120 -120
  115. package/dist/operations/index.d.ts +120 -120
  116. package/dist/operations/index.js +10 -10
  117. package/dist/operations/index.js.map +1 -1
  118. package/dist/parsers/index.cjs +2 -2
  119. package/dist/parsers/index.d.cts +222 -222
  120. package/dist/parsers/index.d.ts +222 -222
  121. package/dist/parsers/index.js +2 -2
  122. package/dist/{parsers-DXtpsDyj.cjs → parsers-DEFpCYhw.cjs} +4 -4
  123. package/dist/{parsers-DXtpsDyj.cjs.map → parsers-DEFpCYhw.cjs.map} +1 -1
  124. package/dist/{parsers-Dpuq-V4u.js → parsers-bQQ9mStV.js} +4 -4
  125. package/dist/{parsers-Dpuq-V4u.js.map → parsers-bQQ9mStV.js.map} +1 -1
  126. package/dist/{parsing-B43x1sxn.js → parsing-BngARhmu.js} +3 -3
  127. package/dist/{parsing-B43x1sxn.js.map → parsing-BngARhmu.js.map} +1 -1
  128. package/dist/{parsing-lRoxn1Nz.cjs → parsing-lI5EN4LY.cjs} +3 -3
  129. package/dist/{parsing-lRoxn1Nz.cjs.map → parsing-lI5EN4LY.cjs.map} +1 -1
  130. package/dist/predicates/index.cjs +15 -16
  131. package/dist/predicates/index.d.cts +3 -3
  132. package/dist/predicates/index.d.ts +3 -3
  133. package/dist/predicates/index.js +14 -15
  134. package/dist/{predicates-DiaYA7Ps.cjs → predicates-CMmP3fPJ.cjs} +15 -16
  135. package/dist/{predicates-DiaYA7Ps.cjs.map → predicates-CMmP3fPJ.cjs.map} +1 -1
  136. package/dist/{predicates-gNepszvo.js → predicates-V87QD8hs.js} +13 -14
  137. package/dist/{predicates-gNepszvo.js.map → predicates-V87QD8hs.js.map} +1 -1
  138. package/dist/promises/index.cjs +4 -4
  139. package/dist/promises/index.d.cts +101 -101
  140. package/dist/promises/index.d.ts +101 -101
  141. package/dist/promises/index.js +4 -4
  142. package/dist/{punyCode-hmiFzLWT.js → punyCode-BeFYDjj0.js} +6 -6
  143. package/dist/punyCode-BeFYDjj0.js.map +1 -0
  144. package/dist/{punyCode-CTWXVVFo.cjs → punyCode-DmTsB7q_.cjs} +6 -6
  145. package/dist/punyCode-DmTsB7q_.cjs.map +1 -0
  146. package/dist/{removeSpaces-BE8lfh-4.js → removeSpaces-B96axxP6.js} +7 -4
  147. package/dist/removeSpaces-B96axxP6.js.map +1 -0
  148. package/dist/{removeSpaces-DRRxNWlb.cjs → removeSpaces-C8mu_yp3.cjs} +12 -3
  149. package/dist/removeSpaces-C8mu_yp3.cjs.map +1 -0
  150. package/dist/rzl-utils.global.js +21 -0
  151. package/dist/{safeJsonParse-BBnQElk8.cjs → safeJsonParse-BXbtX_j7.cjs} +9 -9
  152. package/dist/safeJsonParse-BXbtX_j7.cjs.map +1 -0
  153. package/dist/{safeJsonParse-CXruaP0p.js → safeJsonParse-DyCsTXlU.js} +9 -9
  154. package/dist/safeJsonParse-DyCsTXlU.js.map +1 -0
  155. package/dist/{safeStableStringify-BNh3D0K0.js → safeStableStringify-BrOcdX9n.js} +4 -4
  156. package/dist/{safeStableStringify-BNh3D0K0.js.map → safeStableStringify-BrOcdX9n.js.map} +1 -1
  157. package/dist/{safeStableStringify-Cc62pfRp.cjs → safeStableStringify-DRYQ56Dg.cjs} +4 -4
  158. package/dist/{safeStableStringify-Cc62pfRp.cjs.map → safeStableStringify-DRYQ56Dg.cjs.map} +1 -1
  159. package/dist/strings/index.cjs +12 -10
  160. package/dist/strings/index.cjs.map +1 -1
  161. package/dist/strings/index.d.cts +2 -2
  162. package/dist/strings/index.d.ts +2 -2
  163. package/dist/strings/index.js +11 -9
  164. package/dist/strings/index.js.map +1 -1
  165. package/dist/tailwind/index.cjs +6 -2
  166. package/dist/tailwind/index.d.cts +3 -3
  167. package/dist/tailwind/index.d.ts +3 -3
  168. package/dist/tailwind/index.js +3 -3
  169. package/dist/{tailwind-IJvOdkZp.js → tailwind-BZ2_MeNX.js} +18 -8
  170. package/dist/tailwind-BZ2_MeNX.js.map +1 -0
  171. package/dist/{tailwind-DJ4cmLUw.cjs → tailwind-C1YtxJ-K.cjs} +39 -5
  172. package/dist/tailwind-C1YtxJ-K.cjs.map +1 -0
  173. package/dist/{toStringArrayUnRecursive-xUaU8Ot9.cjs → toStringArrayUnRecursive-D1mPM4wg.cjs} +6 -6
  174. package/dist/{toStringArrayUnRecursive-xUaU8Ot9.cjs.map → toStringArrayUnRecursive-D1mPM4wg.cjs.map} +1 -1
  175. package/dist/{toStringArrayUnRecursive-CFs0jTEg.js → toStringArrayUnRecursive-tHp2a7KR.js} +6 -6
  176. package/dist/{toStringArrayUnRecursive-CFs0jTEg.js.map → toStringArrayUnRecursive-tHp2a7KR.js.map} +1 -1
  177. package/dist/urls/index.cjs +9 -119
  178. package/dist/urls/index.d.cts +656 -659
  179. package/dist/urls/index.d.ts +656 -659
  180. package/dist/urls/index.js +3 -113
  181. package/dist/urls-CoxDAoki.js +263 -0
  182. package/dist/urls-CoxDAoki.js.map +1 -0
  183. package/dist/urls-DCyx8Wpk.cjs +299 -0
  184. package/dist/urls-DCyx8Wpk.cjs.map +1 -0
  185. package/package.json +4 -25
  186. package/dist/assertIsBoolean-BlBct0Fc.js.map +0 -1
  187. package/dist/assertIsBoolean-DozdtbNi.cjs.map +0 -1
  188. package/dist/conversions-CBs8-REq.cjs.map +0 -1
  189. package/dist/conversions-EMJa3g-D.js.map +0 -1
  190. package/dist/formatEnvPort-DpIXzPAZ.js +0 -159
  191. package/dist/formatEnvPort-DpIXzPAZ.js.map +0 -1
  192. package/dist/formatEnvPort-hHNvOim-.cjs +0 -171
  193. package/dist/formatEnvPort-hHNvOim-.cjs.map +0 -1
  194. package/dist/formatters-QcZO_Cpx.js.map +0 -1
  195. package/dist/formatters-lAYgA11L.cjs.map +0 -1
  196. package/dist/index-26W7ItWx.d.ts +0 -760
  197. package/dist/index-BPPQjAfs.d.cts +0 -2359
  198. package/dist/index-BXjlgBLz.d.cts +0 -2139
  199. package/dist/index-B_Wwo91H.d.ts +0 -2359
  200. package/dist/index-CpufydcI.d.cts +0 -704
  201. package/dist/index-Czc4O526.d.ts +0 -333
  202. package/dist/index-DPs1_p5G.d.cts +0 -760
  203. package/dist/index-DRpOyBSC.d.ts +0 -1703
  204. package/dist/index-DWWvtHUn.d.cts +0 -822
  205. package/dist/index-DnM0LD0n.d.cts +0 -333
  206. package/dist/index-GUZ9fK6T.d.ts +0 -2139
  207. package/dist/index-I4fAzwXV.d.ts +0 -704
  208. package/dist/index-JDrOl_19.d.ts +0 -822
  209. package/dist/index-b66P49Qe.d.cts +0 -1703
  210. package/dist/isPlainObject-DcFGh3_5.d.ts +0 -530
  211. package/dist/isPlainObject-doTI11Ib.d.cts +0 -530
  212. package/dist/isURL-CQiowFq2.js +0 -14
  213. package/dist/isURL-CQiowFq2.js.map +0 -1
  214. package/dist/isURL-WZypXsax.cjs +0 -20
  215. package/dist/isURL-WZypXsax.cjs.map +0 -1
  216. package/dist/isValidDomain-BSXshgkC.cjs.map +0 -1
  217. package/dist/isValidDomain-DwA2EN79.js.map +0 -1
  218. package/dist/next/index.cjs +0 -129
  219. package/dist/next/index.cjs.map +0 -1
  220. package/dist/next/index.d.cts +0 -226
  221. package/dist/next/index.d.ts +0 -226
  222. package/dist/next/index.js +0 -124
  223. package/dist/next/index.js.map +0 -1
  224. package/dist/next/server/index.cjs +0 -28
  225. package/dist/next/server/index.cjs.map +0 -1
  226. package/dist/next/server/index.d.cts +0 -39
  227. package/dist/next/server/index.d.ts +0 -39
  228. package/dist/next/server/index.js +0 -26
  229. package/dist/next/server/index.js.map +0 -1
  230. package/dist/normalizeString-2WLth_Gj.js +0 -15
  231. package/dist/normalizeString-2WLth_Gj.js.map +0 -1
  232. package/dist/normalizeString-D8euBcRD.cjs +0 -21
  233. package/dist/normalizeString-D8euBcRD.cjs.map +0 -1
  234. package/dist/punyCode-CTWXVVFo.cjs.map +0 -1
  235. package/dist/punyCode-hmiFzLWT.js.map +0 -1
  236. package/dist/removeSpaces-BE8lfh-4.js.map +0 -1
  237. package/dist/removeSpaces-DRRxNWlb.cjs.map +0 -1
  238. package/dist/safeJsonParse-BBnQElk8.cjs.map +0 -1
  239. package/dist/safeJsonParse-CXruaP0p.js.map +0 -1
  240. package/dist/tailwind-DJ4cmLUw.cjs.map +0 -1
  241. package/dist/tailwind-IJvOdkZp.js.map +0 -1
  242. package/dist/urls/index.cjs.map +0 -1
  243. package/dist/urls/index.js.map +0 -1
@@ -0,0 +1,822 @@
1
+ /*!
2
+ * ========================================================================
3
+ * @rzl-zone/utils-js
4
+ * ------------------------------------------------------------------------
5
+ * Version: `3.13.0-beta.2`
6
+ * Author: `Rizalvin Dwiky <rizalvindwiky@gmail.com>`
7
+ * Repository: `https://github.com/rzl-zone/rzl-zone/tree/main/packages/utils-js`
8
+ * ========================================================================
9
+ */
10
+
11
+ import { a as IsNumberOptions, c as GetPreciseTypeOptions, i as ArrayFallback, t as IsPlainObjectResult } from "./isPlainObject-Dr8gi89U.js";
12
+ import { PickStrict, Prettify } from "@rzl-zone/ts-types-plus";
13
+ /** -------------------------------------------------------
14
+ * * ***Shape of the object passed to custom error message functions.***
15
+ * -------------------------------------------------------
16
+ * **This type describes the parameters received when `options.message`
17
+ * is defined as a function in {@link OptionsAssertIs | `OptionsAssertIs`}.**
18
+ * - **Parameter:**
19
+ * - `currentType` ➔ the actual detected runtime type of the value.
20
+ * - `validType` ➔ the required/expected type name that the value must match.
21
+ * @example
22
+ * ```ts
23
+ * const options: OptionsAssertIs = {
24
+ * message: ({ currentType, validType }) => {
25
+ * return `Expected ${validType} but got ${currentType}`;
26
+ * };
27
+ * };
28
+ * ```
29
+ */
30
+ type OptionsMessageFunctionAssertIs = {
31
+ /** ---------------------------------------------------------------------------
32
+ * * ***The actual runtime type of the value being checked.***
33
+ * ---------------------------------------------------------------------------
34
+ * - ***Example:***
35
+ * - `"number"`, `"big-int"`, `"plain-object"`, (depends `formatCase` options).
36
+ */
37
+ currentType: string;
38
+ /** ---------------------------------------------------------------------------
39
+ * * ***The required/expected type that the value must conform to.***
40
+ * ---------------------------------------------------------------------------
41
+ * - ***Example:***
42
+ * - `"boolean"`, `"string"`, `"big-int"`, `"plain-object"`, (will force format to `kebab-case`).
43
+ */
44
+ validType: string;
45
+ };
46
+ /** -------------------------------------------------------
47
+ * * ***Custom error-message type for assertions option {@link OptionsAssertIs | `OptionsAssertIs`}.***
48
+ * -------------------------------------------------------
49
+ * - ***Accepts:***
50
+ * - A static string message.
51
+ * - A function receiving `{ currentType, validType }` and returning a string.
52
+ */
53
+ type OptionsMessageAssertIs = (({
54
+ currentType,
55
+ validType
56
+ }: OptionsMessageFunctionAssertIs) => string) | string;
57
+ /** ---------------------------------------------------------------------------
58
+ * * ***Base options for `assertIs*` functions.***
59
+ * ---------------------------------------------------------------------------
60
+ */
61
+ type OptionsAssertIs = Prettify<{
62
+ /** -------------------------------------------------------
63
+ * * ***Custom error message for assertion failures.***
64
+ * -------------------------------------------------------
65
+ * **This option allows overriding the **default error message** when a value
66
+ * does not match the required type.**
67
+ * - If a **string** is provided:
68
+ * - Must be non-empty after trimming.
69
+ * - Will be used directly as the error message.
70
+ * - If a **function** is provided:
71
+ * - Receives an object containing:
72
+ * - `currentType` ➔ the detected runtime type of the value (depends `formatCase` options, e.g., `"number"`).
73
+ * - `validType` ➔ the expected type name (with format `kebab-case`, e.g., `"boolean"`, `"big-int"`, `"plain-object"`).
74
+ * - **Must** return a **string**:
75
+ * - **If** the **returned string is** `empty` or `whitespace`,
76
+ * the **default message** will be used instead.
77
+ * @example
78
+ * ```ts
79
+ * // Static message
80
+ * { message: "Must be a boolean!" }
81
+ *
82
+ * // Dynamic message
83
+ * {
84
+ * message: ({ currentType, validType }) => {
85
+ * return `Expected ${validType} but got ${currentType}`;
86
+ * };
87
+ * }
88
+ * ```
89
+ */
90
+ message?: OptionsMessageAssertIs;
91
+ /** -------------------------------------------------------
92
+ * * ***Custom error type for assertion failures.***
93
+ * -------------------------------------------------------
94
+ * **This option allows overriding the default error type** that will be thrown
95
+ * when a value does not match the required type.
96
+ *
97
+ * - **Behavior:**
98
+ * - Must be one of the standard JavaScript built-in error types:
99
+ * `"Error" | "EvalError" | "RangeError" | "ReferenceError" | "SyntaxError" | "TypeError" | "URIError"`
100
+ * - **Default:** `"TypeError"` if not provided or if an invalid value is passed.
101
+ * - The assertion function will **always throw a valid built-in error**, ensuring
102
+ * fallback to `TypeError` in case of an unknown or incorrect type.
103
+ * @example
104
+ * ```ts
105
+ * // Valid: Throw a RangeError instead of TypeError
106
+ * { errorType: "RangeError" }
107
+ *
108
+ * // Valid: Throw a ReferenceError
109
+ * { errorType: "ReferenceError" }
110
+ *
111
+ * // Invalid value ➔ fallback to TypeError
112
+ * { errorType: "SomeUnknownError" as ErrorType }
113
+ * ```
114
+ */
115
+ errorType?: ErrorType;
116
+ } & PickStrict<GetPreciseTypeOptions, "formatCase" | "useAcronyms">, {
117
+ recursive: true;
118
+ }>;
119
+ type ErrorType = "Error" | "EvalError" | "RangeError" | "ReferenceError" | "SyntaxError" | "TypeError" | "URIError";
120
+ /** -------------------------------------------------------
121
+ * * ***Type guard assertion: `assertIsBoolean`.***
122
+ * -------------------------------------------------------
123
+ * **This function is an **assertion function**.**
124
+ * - **Behavior:**
125
+ * - Validates that the given `value` is a **boolean**.
126
+ * - After it returns successfully, TypeScript narrows the type of `value` to `boolean`.
127
+ * - ✅ If `value` is a `boolean` ➔ execution continues normally.
128
+ * - ❌ If `value` is not a `boolean` ➔ throws a built-in error with either:
129
+ * - A custom error message (`options.message`), or
130
+ * - A default message including the actual type.
131
+ * - **⚠️ Error type selection (`options.errorType`):**
132
+ * - You can override the type of error thrown when validation fails.
133
+ * - Must be one of the standard JavaScript built-in errors:
134
+ * - [`TypeError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypeError) |
135
+ * [`Error`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) |
136
+ * [`EvalError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/EvalError) |
137
+ * [`RangeError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RangeError) |
138
+ * [`ReferenceError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError) |
139
+ * [`SyntaxError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError) |
140
+ * [`URIError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/URIError)
141
+ * - **Default:** `"TypeError"` if not provided or invalid.
142
+ * @param {*} value - ***The value to validate.***
143
+ * @param {OptionsAssertIs} [options]
144
+ * ***Optional configuration:***
145
+ * - `message`: A custom error message (`string` or `function`).
146
+ * - `errorType`: A custom built-in JavaScript error type to throw.
147
+ * - `formatCase`: Controls how detected type names are formatted case in error messages.
148
+ * - `useAcronyms`: Control uppercase preservation of recognized acronyms during formatting.
149
+ * @returns {boolean} Narrows `value` to `boolean` if no error is thrown.
150
+ * @throws [`TypeError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypeError) | [`Error`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) | [`EvalError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/EvalError) | [`RangeError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RangeError) | [`ReferenceError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError) | [`SyntaxError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError) | [`URIError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/URIError) if the value is not a boolean.
151
+ * @example
152
+ * ```ts
153
+ * // ✅ Simple usage
154
+ * assertIsBoolean(true);
155
+ * // No error, value is boolean
156
+ *
157
+ * // ❌ Throws TypeError (default behavior)
158
+ * // Case 1: Invalid input type — received a string instead of a boolean
159
+ * assertIsBoolean("hello");
160
+ * // ➔ TypeError: "Parameter input (`value`) must be of type `boolean`, but received: `number`."
161
+ *
162
+ * // Case 2: The new Boolean() is a Boolean object (constructor), not a primitive boolean
163
+ * assertIsBoolean(new Boolean(true));
164
+ * // ➔ TypeError: "Parameter input (`value`) must be of type `boolean`, but received: `boolean-constructor`."
165
+ *
166
+ * // ❌ Throws a TypeError with a custom string static message
167
+ * assertIsBoolean(42, { message: "Must be boolean!" });
168
+ * // ➔ TypeError: "Must be boolean!"
169
+ *
170
+ * // ❌ Throws RangeError (custom error type)
171
+ * assertIsBoolean(42, { errorType: "RangeError" });
172
+ * // ➔ RangeError: "Parameter input (`value`) must be of type `boolean`, but received: `number`."
173
+ *
174
+ * // ❌ Throws a TypeError with a custom message function and formatCase
175
+ * assertIsBoolean(/regex/, {
176
+ * message: ({ currentType, validType }) => {
177
+ * return `Expected ${validType} but got (${currentType}).`
178
+ * },
179
+ * formatCase: "toPascalCaseSpace"
180
+ * });
181
+ * // ➔ TypeError: "Expected boolean but got (Reg Exp)."
182
+ *
183
+ * // ❌ Throws a TypeError with a custom useAcronyms option
184
+ * // Case 1:
185
+ * assertIsBoolean(new URL("https://example.com"),{
186
+ * message: ({ currentType, validType }) => {
187
+ * return `Expected ${validType} but got (${currentType}).`
188
+ * },
189
+ * });
190
+ * // ➔ TypeError: "Expected boolean but got (url)."
191
+ * assertIsBoolean(new URL("https://example.com"), {
192
+ * useAcronyms: true,
193
+ * message: ({ currentType, validType }) => {
194
+ * return `Expected ${validType} but got (${currentType}).`
195
+ * },
196
+ * });
197
+ * // ➔ TypeError: "Expected boolean but got (URL)."
198
+ *
199
+ * // Case 2:
200
+ * assertIsBoolean(new URLSearchParams, {
201
+ * formatCase: "toPascalCase",
202
+ * message: ({ currentType, validType }) => {
203
+ * return `Expected ${validType} but got (${currentType}).`
204
+ * },
205
+ * });
206
+ * // ➔ TypeError: "Expected boolean but got (UrlSearchParams)."
207
+ * assertIsBoolean(new URLSearchParams, {
208
+ * useAcronyms: true,
209
+ * formatCase: "toPascalCase",
210
+ * message: ({ currentType, validType }) => {
211
+ * return `Expected ${validType} but got (${currentType}).`
212
+ * },
213
+ * });
214
+ * // ➔ TypeError: "Expected boolean but got (URLSearchParams)."
215
+ * ```
216
+ * -------------------------------------------------------
217
+ * ✅ ***Real-world usage example***:
218
+ * ```ts
219
+ * const mixedValue: string | boolean | number | undefined = getUserInput();
220
+ *
221
+ * // Runtime assertion: throws if `mixedValue` is not a `boolean`
222
+ * assertIsBoolean(mixedValue, {
223
+ * errorType: "RangeError",
224
+ * message: "Must be boolean!"
225
+ * });
226
+ *
227
+ * // ✅ If no error thrown, TypeScript narrows `mixedValue` to `boolean` here
228
+ * const result: boolean = mixedValue; // ➔ Safe type assignment
229
+ * ```
230
+ */
231
+ declare const assertIsBoolean: (value: unknown, options?: OptionsAssertIs) => asserts value is boolean;
232
+ /** -------------------------------------------------------
233
+ * * ***Type guard assertion: `assertIsBigInt`.***
234
+ * -------------------------------------------------------
235
+ * **This function is an **assertion function**.**
236
+ * - **Behavior:**
237
+ * - Validates that the given `value` is a **bigint**.
238
+ * - After it returns successfully, TypeScript narrows the type of `value` to `bigint`.
239
+ * - ✅ If `value` is a `bigint` ➔ execution continues normally.
240
+ * - ❌ If `value` is not a `bigint` ➔ throws a built-in error with either:
241
+ * - A custom error message (`options.message`), or
242
+ * - A default message including the actual type.
243
+ * - **ℹ️ Note:**
244
+ * - A `bigint` refers strictly to the JavaScript `bigint` primitive type (e.g., `123n`, `0n`, `-999999999999999999999n`).
245
+ * - This excludes `BigInt` objects created with `Object(BigInt(123))`.
246
+ * - **⚠️ Error type selection (`options.errorType`):**
247
+ * - You can override the type of error thrown when validation fails.
248
+ * - Must be one of the standard JavaScript built-in errors:
249
+ * - [`TypeError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypeError) |
250
+ * [`Error`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) |
251
+ * [`EvalError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/EvalError) |
252
+ * [`RangeError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RangeError) |
253
+ * [`ReferenceError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError) |
254
+ * [`SyntaxError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError) |
255
+ * [`URIError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/URIError)
256
+ * - **Default:** `"TypeError"` if not provided or invalid.
257
+ * @param {*} value - ***The value to validate.***
258
+ * @param {OptionsAssertIs} [options]
259
+ * ***Optional configuration:***
260
+ * - `message`: A custom error message (`string` or `function`).
261
+ * - `errorType`: Built-in JavaScript error type to throw on failure (default `"TypeError"`).
262
+ * - `formatCase`: Controls how detected type names are formatted case in error messages.
263
+ * - `useAcronyms`: Control uppercase preservation of recognized acronyms during formatting.
264
+ * @returns {boolean} Narrows `value` to `bigint` if no error is thrown.
265
+ * @throws [`TypeError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypeError) | [`Error`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) | [`EvalError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/EvalError) | [`RangeError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RangeError) | [`ReferenceError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError) | [`SyntaxError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError) | [`URIError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/URIError) if the value is not a bigint.
266
+ * @example
267
+ * ```ts
268
+ * // ✅ Simple usage
269
+ * assertIsBigInt(123n);
270
+ * // No error, value is bigint
271
+ *
272
+ * // ❌ Throws TypeError (default behavior)
273
+ * assertIsBigInt(42);
274
+ * // ➔ TypeError: "Parameter input (`value`) must be of type `bigint`, but received: `number`."
275
+ *
276
+ * // ❌ Throws a TypeError with a custom string static message
277
+ * assertIsBigInt("123", { message: "Must be a bigint!" });
278
+ * // ➔ TypeError: "Must be a bigint!"
279
+ *
280
+ * // ❌ Throws custom error type (e.g., RangeError)
281
+ * assertIsBigInt(async function () {}, { errorType: "RangeError" });
282
+ * // ➔ RangeError: "Parameter input (`value`) must be of type `bigint`, but received: `async-function`."
283
+ *
284
+ * // ❌ Throws a TypeError with a custom message function and formatCase
285
+ * assertIsBigInt(/regex/, {
286
+ * message: ({ currentType, validType }) => {
287
+ * return `Expected ${validType} but got (${currentType}).`
288
+ * },
289
+ * formatCase: "toPascalCaseSpace"
290
+ * });
291
+ * // ➔ TypeError: "Expected bigint but got (Reg Exp)."
292
+ *
293
+ * // ❌ Throws a TypeError with a custom useAcronyms option
294
+ * // Case 1:
295
+ * assertIsBigInt(new URL("https://example.com"),{
296
+ * message: ({ currentType, validType }) => {
297
+ * return `Expected ${validType} but got (${currentType}).`
298
+ * },
299
+ * });
300
+ * // ➔ TypeError: "Expected bigint but got (url)."
301
+ * assertIsBigInt(new URL("https://example.com"), {
302
+ * useAcronyms: true,
303
+ * message: ({ currentType, validType }) => {
304
+ * return `Expected ${validType} but got (${currentType}).`
305
+ * },
306
+ * });
307
+ * // ➔ TypeError: "Expected bigint but got (URL)."
308
+ *
309
+ * // Case 2:
310
+ * assertIsBigInt(new URLSearchParams, {
311
+ * formatCase: "toPascalCase",
312
+ * message: ({ currentType, validType }) => {
313
+ * return `Expected ${validType} but got (${currentType}).`
314
+ * },
315
+ * });
316
+ * // ➔ TypeError: "Expected bigint but got (UrlSearchParams)."
317
+ * assertIsBigInt(new URLSearchParams, {
318
+ * useAcronyms: true,
319
+ * formatCase: "toPascalCase",
320
+ * message: ({ currentType, validType }) => {
321
+ * return `Expected ${validType} but got (${currentType}).`
322
+ * },
323
+ * });
324
+ * // ➔ TypeError: "Expected bigint but got (URLSearchParams)."
325
+ * ```
326
+ * -------------------------------------------------------
327
+ * ✅ ***Real-world usage example***:
328
+ * ```ts
329
+ * const mixedValue: string | bigint | undefined = getUserInput();
330
+ *
331
+ * // Runtime assertion: throws if `mixedValue` is not a `bigint`
332
+ * assertIsBigInt(mixedValue, {
333
+ * errorType: "RangeError",
334
+ * message: "Must be bigint!"
335
+ * });
336
+ *
337
+ * // ✅ If no error thrown, TypeScript narrows `mixedValue` to `bigint` here
338
+ * const result: bigint = mixedValue; // ➔ Safe type assignment
339
+ * console.log(result + 100n); // ➔ Safe to operation
340
+ * ```
341
+ */
342
+ declare const assertIsBigInt: (value: unknown, options?: OptionsAssertIs) => asserts value is bigint;
343
+ type OptionsAssertIsNumber = OptionsAssertIs & IsNumberOptions;
344
+ /** -------------------------------------------------------
345
+ * * ***Type guard assertion: `assertIsNumber`.***
346
+ * -------------------------------------------------------
347
+ * **This function is an **assertion function**.**
348
+ * - **Behavior:**
349
+ * - Validates that the given `value` is a **number**.
350
+ * - After it returns successfully, TypeScript narrows the type of `value` to `number`.
351
+ * - ✅ If `value` is a `number` ➔ execution continues normally.
352
+ * - ❌ If `value` is not a `number` ➔ throws a built-in error with either:
353
+ * - A custom error message (`options.message`), or
354
+ * - A default message including the actual type.
355
+ * - **ℹ️ Note:**
356
+ * - A `number` refers strictly to the JavaScript `number` primitive type (e.g., `42`, `3.14`, `-1`, `0`).
357
+ * - This excludes `Number` objects created with `new Number(123)`.
358
+ * - By default, `NaN` is **not considered** valid, you can allow it with `{ includeNaN: true }`.
359
+ * - **⚠️ Error type selection (`options.errorType`):**
360
+ * - You can override the type of error thrown when validation fails.
361
+ * - Must be one of the standard JavaScript built-in errors:
362
+ * - [`TypeError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypeError) |
363
+ * [`Error`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) |
364
+ * [`EvalError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/EvalError) |
365
+ * [`RangeError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RangeError) |
366
+ * [`ReferenceError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError) |
367
+ * [`SyntaxError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError) |
368
+ * [`URIError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/URIError)
369
+ * - **Default:** `"TypeError"` if not provided or invalid.
370
+ * @param {*} value - ***The value to validate.***
371
+ * @param {OptionsAssertIsNumber} [options]
372
+ * ***Optional configuration:***
373
+ * - `message`: A custom error message (`string` or `function`).
374
+ * - `errorType`: Built-in JavaScript error type to throw on failure (default `"TypeError"`).
375
+ * - `formatCase`: Controls how detected type names are formatted case in error messages.
376
+ * - `useAcronyms`: Control uppercase preservation of recognized acronyms during formatting.
377
+ * - `includeNaN`: Whether to treat `NaN` as valid.
378
+ * @returns {boolean} Narrows `value` to `number` if no error is thrown.
379
+ * @throws [`TypeError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypeError) | [`Error`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) | [`EvalError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/EvalError) | [`RangeError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RangeError) | [`ReferenceError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError) | [`SyntaxError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError) | [`URIError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/URIError) if the value is not a number (or is `NaN` when `includeNaN` is `false`).
380
+ * @example
381
+ * ```ts
382
+ * // ✅ Simple usage
383
+ * assertIsNumber(123);
384
+ * assertIsNumber(NaN, { includeNaN: true });
385
+ * // No error, value is number
386
+ *
387
+ * // ❌ Throws TypeError (default behavior)
388
+ * // Case 1: Invalid input type — received a string instead of a number
389
+ * assertIsNumber("42");
390
+ * // ➔ TypeError: "Parameter input (`value`) must be of type `number`, but received: `string`."
391
+ *
392
+ * // Case 2: Default option includeNaN is false
393
+ * assertIsNumber(NaN);
394
+ * // ➔ TypeError: "Parameter input (`value`) must be of type `number`, but received: `NaN`."
395
+ *
396
+ * // Case 3: The new Number() is a Number object (constructor), not a primitive number
397
+ * assertIsNumber(new Number("123"));
398
+ * // ➔ TypeError: "Parameter input (`value`) must be of type `number`, but received: `number-constructor`."
399
+ *
400
+ * // ❌ Throws custom error type (e.g., RangeError)
401
+ * assertIsNumber(async function () {}, { errorType: "RangeError" });
402
+ * // ➔ RangeError: "Parameter input (`value`) must be of type `number`, but received: `async-function`."
403
+ *
404
+ * // ❌ Throws a TypeError with a custom string static message
405
+ * assertIsNumber("123", { message: "Must be a number!" });
406
+ * // ➔ TypeError: "Must be a number!"
407
+ *
408
+ * // ❌ Throws a TypeError with a custom message function and formatCase
409
+ * assertIsNumber(/regex/, {
410
+ * message: ({ currentType, validType }) => {
411
+ * return `Expected ${validType} but got (${currentType}).`
412
+ * },
413
+ * formatCase: "toPascalCaseSpace"
414
+ * });
415
+ * // ➔ TypeError: "Expected number but got (Reg Exp)."
416
+ *
417
+ * // ❌ Throws a TypeError with a custom useAcronyms option
418
+ * // Case 1:
419
+ * assertIsNumber(new URL("https://example.com"),{
420
+ * message: ({ currentType, validType }) => {
421
+ * return `Expected ${validType} but got (${currentType}).`
422
+ * },
423
+ * });
424
+ * // ➔ TypeError: "Expected number but got (url)."
425
+ * assertIsNumber(new URL("https://example.com"), {
426
+ * useAcronyms: true,
427
+ * message: ({ currentType, validType }) => {
428
+ * return `Expected ${validType} but got (${currentType}).`
429
+ * },
430
+ * });
431
+ * // ➔ TypeError: "Expected number but got (URL)."
432
+ *
433
+ * // Case 2:
434
+ * assertIsNumber(new URLSearchParams, {
435
+ * formatCase: "toPascalCase",
436
+ * message: ({ currentType, validType }) => {
437
+ * return `Expected ${validType} but got (${currentType}).`
438
+ * },
439
+ * });
440
+ * // ➔ TypeError: "Expected number but got (UrlSearchParams)."
441
+ * assertIsNumber(new URLSearchParams, {
442
+ * useAcronyms: true,
443
+ * formatCase: "toPascalCase",
444
+ * message: ({ currentType, validType }) => {
445
+ * return `Expected ${validType} but got (${currentType}).`
446
+ * },
447
+ * });
448
+ * // ➔ TypeError: "Expected number but got (URLSearchParams)."
449
+ * ```
450
+ * -------------------------------------------------------
451
+ * ✅ ***Real-world usage example***:
452
+ * ```ts
453
+ * const mixedValue: string | number | undefined = getUserInput();
454
+ *
455
+ * // Runtime assertion: throws if `mixedValue` is not a `number`
456
+ * assertIsNumber(mixedValue, {
457
+ * errorType: "RangeError",
458
+ * message: "Must be number!"
459
+ * });
460
+ *
461
+ * // ✅ If no error thrown, TypeScript narrows `mixedValue` to `number` here
462
+ * const result: number = mixedValue; // ➔ Safe type assignment
463
+ * console.log(result + 100); // ➔ Safe to operation
464
+ * ```
465
+ */
466
+ declare const assertIsNumber: (value: unknown, options?: OptionsAssertIsNumber) => asserts value is number;
467
+ /** -------------------------------------------------------
468
+ * * ***Type guard assertion: `assertIsArray`.***
469
+ * -------------------------------------------------------
470
+ * **This function is an **assertion function**.**
471
+ * - **Behavior:**
472
+ * - Validates that the given `value` is an **array**.
473
+ * - After it returns successfully, TypeScript narrows the type of `value` to `array` **(generic support)**.
474
+ * - ✅ If `value` is an `array` ➔ execution continues normally.
475
+ * - ❌ If `value` is not an `array` ➔ throws a built-in error with either:
476
+ * - A custom error message (`options.message`), or
477
+ * - A default message including the actual type.
478
+ * - **⚠️ Error type selection (`options.errorType`):**
479
+ * - You can override the type of error thrown when validation fails.
480
+ * - Must be one of the standard JavaScript built-in errors:
481
+ * - [`TypeError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypeError) |
482
+ * [`Error`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) |
483
+ * [`EvalError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/EvalError) |
484
+ * [`RangeError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RangeError) |
485
+ * [`ReferenceError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError) |
486
+ * [`SyntaxError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError) |
487
+ * [`URIError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/URIError)
488
+ * - **Default:** `"TypeError"` if not provided or invalid.
489
+ * @template T - The input type being asserted.
490
+ * @param {*} value - ***The value to validate.***
491
+ * @param {OptionsAssertIs} [options]
492
+ * ***Optional configuration:***
493
+ * - `message`: A custom error message (`string` or `function`).
494
+ * - `errorType`: Built-in JavaScript error type to throw on failure (default `"TypeError"`).
495
+ * - `formatCase`: Controls how detected type names are formatted case in error messages.
496
+ * - `useAcronyms`: Control uppercase preservation of recognized acronyms during formatting.
497
+ * @returns {boolean} Narrows `value` to an `array` **(generic support)** if no error is thrown.
498
+ * @throws [`TypeError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypeError) | [`Error`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) | [`EvalError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/EvalError) | [`RangeError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RangeError) | [`ReferenceError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError) | [`SyntaxError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError) | [`URIError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/URIError) if the value is not an array.
499
+ * @example
500
+ * ```ts
501
+ * // ✅ Simple usage
502
+ * assertIsArray([]);
503
+ * assertIsArray(["123", 456]);
504
+ * assertIsArray(Array.from(["abc"]));
505
+ * // No error, value is array
506
+ *
507
+ * // ❌ Throws TypeError (default behavior)
508
+ * // Case 1: Invalid input type — received a string instead of a array
509
+ * assertIsArray("42");
510
+ * // ➔ TypeError: "Parameter input (`value`) must be of type `array`, but received: `string`."
511
+ *
512
+ * // ❌ Throws custom error type (e.g., RangeError)
513
+ * assertIsArray(async function () {}, { errorType: "RangeError" });
514
+ * // ➔ RangeError: "Parameter input (`value`) must be of type `array`, but received: `async-function`."
515
+ *
516
+ * // ❌ Throws a TypeError with a custom string static message
517
+ * assertIsArray("123", { message: "Must be a array!" });
518
+ * // ➔ TypeError: "Must be a array!"
519
+ *
520
+ * // ❌ Throws a TypeError with a custom message function and formatCase
521
+ * assertIsArray(/regex/, {
522
+ * message: ({ currentType, validType }) => {
523
+ * return `Expected ${validType} but got (${currentType}).`
524
+ * },
525
+ * formatCase: "toPascalCaseSpace"
526
+ * });
527
+ * // ➔ TypeError: "Expected array but got (Reg Exp)."
528
+ *
529
+ * // ❌ Throws a TypeError with a custom useAcronyms option
530
+ * // Case 1:
531
+ * assertIsArray(new URL("https://example.com"),{
532
+ * message: ({ currentType, validType }) => {
533
+ * return `Expected ${validType} but got (${currentType}).`
534
+ * },
535
+ * });
536
+ * // ➔ TypeError: "Expected array but got (url)."
537
+ * assertIsArray(new URL("https://example.com"), {
538
+ * useAcronyms: true,
539
+ * message: ({ currentType, validType }) => {
540
+ * return `Expected ${validType} but got (${currentType}).`
541
+ * },
542
+ * });
543
+ * // ➔ TypeError: "Expected array but got (URL)."
544
+ *
545
+ * // Case 2:
546
+ * assertIsArray(new URLSearchParams, {
547
+ * formatCase: "toPascalCase",
548
+ * message: ({ currentType, validType }) => {
549
+ * return `Expected ${validType} but got (${currentType}).`
550
+ * },
551
+ * });
552
+ * // ➔ TypeError: "Expected array but got (UrlSearchParams)."
553
+ * assertIsArray(new URLSearchParams, {
554
+ * useAcronyms: true,
555
+ * formatCase: "toPascalCase",
556
+ * message: ({ currentType, validType }) => {
557
+ * return `Expected ${validType} but got (${currentType}).`
558
+ * },
559
+ * });
560
+ * // ➔ TypeError: "Expected array but got (URLSearchParams)."
561
+ * ```
562
+ * -------------------------------------------------------
563
+ * ✅ ***Real-world usage example***:
564
+ * ```ts
565
+ * const mixedValue: string | number[] | undefined = getUserInput();
566
+ *
567
+ * // Runtime assertion: throws if `mixedValue` is not a `number[]`
568
+ * assertIsArray(mixedValue, {
569
+ * errorType: "RangeError",
570
+ * message: "Must be array!"
571
+ * });
572
+ *
573
+ * // ✅ If no error thrown, TypeScript narrows `mixedValue` to `number[]` here
574
+ * const result: number[] = mixedValue; // ➔ Safe type assignment
575
+ * console.log(result.push(1, 2, 3)); // ➔ Safe to use array methods
576
+ * ```
577
+ */
578
+ declare function assertIsArray(value: [], options?: OptionsAssertIs): asserts value is [];
579
+ declare function assertIsArray<T>(value: T, options?: OptionsAssertIs): asserts value is ArrayFallback<T>;
580
+ declare function assertIsArray(value: unknown, options?: OptionsAssertIs): asserts value is unknown[];
581
+ /** -------------------------------------------------------
582
+ * * ***Type guard assertion: `assertIsPlainObject`.***
583
+ * -------------------------------------------------------
584
+ * **This function is an **assertion function**.**
585
+ * - **Behavior:**
586
+ * - Validates that the given `value` is a **plain-object**.
587
+ * - After it returns successfully, TypeScript narrows the type of `value` to `plain-object` **(generic support)**.
588
+ * - ✅ If `value` is a `plain-object` ➔ execution continues normally.
589
+ * - ❌ If `value` is not a `plain-object` ➔ throws a built-in error with either:
590
+ * - A custom error message (`options.message`), or
591
+ * - A default message including the actual type.
592
+ * - **A valid `plain object` is:**
593
+ * - Created by the `Object` constructor, or
594
+ * - Has a `[[Prototype]]` of `null` (e.g. `Object.create(null)`).
595
+ * - **✅ Returns `undefined` (valid) for:**
596
+ * - Empty object literals: `{}`
597
+ * - Objects with null prototype: `Object.create(null)`
598
+ * - **❌ Returns `throws` for:**
599
+ * - Arrays (`[]`, `new Array()`)
600
+ * - Functions (regular, arrow, or class constructors)
601
+ * - Built-in objects: `Date`, `RegExp`, `Error`, `Map`, `Set`, `WeakMap`, `WeakSet`
602
+ * - Boxed primitives: `new String()`, `new Number()`, `new Boolean()`
603
+ * - `null` or `undefined`
604
+ * - Symbols
605
+ * - Class instances
606
+ * - **⚠️ Error type selection (`options.errorType`):**
607
+ * - You can override the type of error thrown when validation fails.
608
+ * - Must be one of the standard JavaScript built-in errors:
609
+ * - [`TypeError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypeError) |
610
+ * [`Error`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) |
611
+ * [`EvalError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/EvalError) |
612
+ * [`RangeError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RangeError) |
613
+ * [`ReferenceError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError) |
614
+ * [`SyntaxError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError) |
615
+ * [`URIError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/URIError)
616
+ * - **Default:** `"TypeError"` if not provided or invalid.
617
+ * @template T - The input type being asserted.
618
+ * @param {*} value - ***The value to validate.***
619
+ * @param {OptionsAssertIs} [options]
620
+ * ***Optional configuration:***
621
+ * - `message`: A custom error message (`string` or `function`).
622
+ * - `errorType`: Built-in JavaScript error type to throw on failure (default `"TypeError"`).
623
+ * - `formatCase`: Controls how detected type names are formatted case in error messages.
624
+ * - `useAcronyms`: Control uppercase preservation of recognized acronyms during formatting.
625
+ * @returns {boolean} Narrows `value` to a `plain-object` **(generic support)** if no error is thrown.
626
+ * @throws [`TypeError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypeError) | [`Error`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) | [`EvalError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/EvalError) | [`RangeError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RangeError) | [`ReferenceError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError) | [`SyntaxError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError) | [`URIError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/URIError) if `value` is not a plain-object.
627
+ * @example
628
+ * ```ts
629
+ * // ✅ Simple usage
630
+ * assertIsPlainObject({ a: 1, b: 2 });
631
+ * // No error, value is plain-object
632
+ *
633
+ * // ❌ Throws TypeError (default behavior)
634
+ * // Case 1: Invalid input type — received a string instead of a plain-object
635
+ * assertIsPlainObject("42");
636
+ * // ➔ TypeError: "Parameter input (`value`) must be of type `plain-object`, but received: `string`."
637
+ *
638
+ * // ❌ Throws custom error type (e.g., RangeError)
639
+ * assertIsPlainObject(async function () {}, { errorType: "RangeError" });
640
+ * // ➔ RangeError: "Parameter input (`value`) must be of type `plain-object`, but received: `async-function`."
641
+ *
642
+ * // ❌ Throws a TypeError with a custom string static message
643
+ * assertIsPlainObject("123", { message: "Must be a plain-object!" });
644
+ * // ➔ TypeError: "Must be a plain-object!"
645
+ *
646
+ * // ❌ Throws a TypeError with a custom message function and formatCase
647
+ * assertIsPlainObject(/regex/, {
648
+ * message: ({ currentType, validType }) => {
649
+ * return `Expected ${validType} but got (${currentType}).`
650
+ * },
651
+ * formatCase: "toPascalCaseSpace"
652
+ * });
653
+ * // ➔ TypeError: "Expected plain-object but got (Reg Exp)."
654
+ *
655
+ * // ❌ Throws a TypeError with a custom useAcronyms option
656
+ * // Case 1:
657
+ * assertIsPlainObject(new URL("https://example.com"),{
658
+ * message: ({ currentType, validType }) => {
659
+ * return `Expected ${validType} but got (${currentType}).`
660
+ * },
661
+ * });
662
+ * // ➔ TypeError: "Expected plain-object but got (url)."
663
+ * assertIsPlainObject(new URL("https://example.com"), {
664
+ * useAcronyms: true,
665
+ * message: ({ currentType, validType }) => {
666
+ * return `Expected ${validType} but got (${currentType}).`
667
+ * },
668
+ * });
669
+ * // ➔ TypeError: "Expected plain-object but got (URL)."
670
+ *
671
+ * // Case 2:
672
+ * assertIsPlainObject(new URLSearchParams, {
673
+ * formatCase: "toPascalCase",
674
+ * message: ({ currentType, validType }) => {
675
+ * return `Expected ${validType} but got (${currentType}).`
676
+ * },
677
+ * });
678
+ * // ➔ TypeError: "Expected plain-object but got (UrlSearchParams)."
679
+ * assertIsPlainObject(new URLSearchParams, {
680
+ * useAcronyms: true,
681
+ * formatCase: "toPascalCase",
682
+ * message: ({ currentType, validType }) => {
683
+ * return `Expected ${validType} but got (${currentType}).`
684
+ * },
685
+ * });
686
+ * // ➔ TypeError: "Expected plain-object but got (URLSearchParams)."
687
+ * ```
688
+ * -------------------------------------------------------
689
+ * ✅ ***Real-world usage with generic narrowing***:
690
+ * ```ts
691
+ * type User = { name: string; email: string };
692
+ * const mixedValue: string | User | boolean | number | undefined = getUserInput();
693
+ *
694
+ * // Runtime assertion: throws if `mixedValue` is not a `plain-object`
695
+ * assertIsPlainObject(mixedValue, {
696
+ * errorType: "RangeError",
697
+ * message: "Must be plain object!"
698
+ * });
699
+ *
700
+ * // ✅ If no error thrown, TypeScript narrows `mixedValue` to `User` here
701
+ * const user: User = mixedValue; // ➔ Safe type assignment
702
+ * console.log(user.email); // ➔ Safe to access object properties
703
+ * ```
704
+ */
705
+ declare function assertIsPlainObject<T>(value: T, options?: OptionsAssertIs): asserts value is IsPlainObjectResult<T>;
706
+ /** -------------------------------------------------------
707
+ * * ***Type guard assertion: `assertIsString`.***
708
+ * -------------------------------------------------------
709
+ * **This function is an **assertion function**.**
710
+ * - **Behavior:**
711
+ * - Validates that the given `value` is a **primitive-string**.
712
+ * - After it returns successfully, TypeScript narrows the type of `value` to `primitive-string`.
713
+ * - ✅ If `value` is a `primitive-string` ➔ execution continues normally.
714
+ * - ❌ If `value` is not a `primitive-string` ➔ throws a built-in error with either:
715
+ * - A custom error message (`options.message`), or
716
+ * - A default message including the actual type.
717
+ * - **ℹ️ Note:**
718
+ * - A "string" refers strictly to a JavaScript `primitive-string` type (e.g., `"hello"`, `""`, `"123"`).
719
+ * - This function excludes `String` objects created with `new String()`.
720
+ * - **⚠️ Error type selection (`options.errorType`):**
721
+ * - You can override the type of error thrown when validation fails.
722
+ * - Must be one of the standard JavaScript built-in errors:
723
+ * - [`TypeError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypeError) |
724
+ * [`Error`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) |
725
+ * [`EvalError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/EvalError) |
726
+ * [`RangeError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RangeError) |
727
+ * [`ReferenceError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError) |
728
+ * [`SyntaxError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError) |
729
+ * [`URIError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/URIError)
730
+ * - **Default:** `"TypeError"` if not provided or invalid.
731
+ * @param {*} value - ***The value to validate.***
732
+ * @param {OptionsAssertIs} [options]
733
+ * ***Optional configuration:***
734
+ * - `message`: A custom error message (`string` or `function`).
735
+ * - `errorType`: Built-in JavaScript error type to throw on failure (default `"TypeError"`).
736
+ * - `formatCase`: Controls how detected type names are formatted case in error messages.
737
+ * - `useAcronyms`: Control uppercase preservation of recognized acronyms during formatting.
738
+ * @returns {boolean} Narrows `value` to `string` if no error is thrown.
739
+ * @throws [`TypeError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypeError) | [`Error`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) | [`EvalError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/EvalError) | [`RangeError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RangeError) | [`ReferenceError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError) | [`SyntaxError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError) | [`URIError`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/URIError) if the value is not a primitive string.
740
+ * @example
741
+ * ```ts
742
+ * // ✅ Simple usage
743
+ * assertIsString("hello");
744
+ * // No error, value is string
745
+ *
746
+ * // ❌ Throws TypeError (default behavior)
747
+ * // Case 1: Invalid input type — received a string instead of a string
748
+ * assertIsString(42);
749
+ * // ➔ TypeError: "Parameter input (`value`) must be of type `string`, but received: `number`."
750
+ *
751
+ * // Case 3: The new String() is a String object (constructor), not a primitive string
752
+ * assertIsString(new String("abc"));
753
+ * // ➔ TypeError: "Parameter input (`value`) must be of type `string`, but received: `string-constructor`."
754
+ *
755
+ * // ❌ Throws custom error type (e.g., RangeError)
756
+ * assertIsString(async function () {}, { errorType: "RangeError" });
757
+ * // ➔ RangeError: "Parameter input (`value`) must be of type `string`, but received: `async-function`."
758
+ *
759
+ * // ❌ Throws a TypeError with a custom string static message
760
+ * assertIsString(123, { message: "Must be a string!" });
761
+ * // ➔ TypeError: "Must be a string!"
762
+ *
763
+ * // ❌ Throws a TypeError with a custom message function and formatCase
764
+ * assertIsString(/regex/, {
765
+ * message: ({ currentType, validType }) => {
766
+ * return `Expected ${validType} but got (${currentType}).`
767
+ * },
768
+ * formatCase: "toPascalCaseSpace"
769
+ * });
770
+ * // ➔ TypeError: "Expected string but got (Reg Exp)."
771
+ *
772
+ * // ❌ Throws a TypeError with a custom useAcronyms option
773
+ * // Case 1:
774
+ * assertIsString(new URL("https://example.com"),{
775
+ * message: ({ currentType, validType }) => {
776
+ * return `Expected ${validType} but got (${currentType}).`
777
+ * },
778
+ * });
779
+ * // ➔ TypeError: "Expected string but got (url)."
780
+ * assertIsString(new URL("https://example.com"), {
781
+ * useAcronyms: true,
782
+ * message: ({ currentType, validType }) => {
783
+ * return `Expected ${validType} but got (${currentType}).`
784
+ * },
785
+ * });
786
+ * // ➔ TypeError: "Expected string but got (URL)."
787
+ *
788
+ * // Case 2:
789
+ * assertIsString(new URLSearchParams, {
790
+ * formatCase: "toPascalCase",
791
+ * message: ({ currentType, validType }) => {
792
+ * return `Expected ${validType} but got (${currentType}).`
793
+ * },
794
+ * });
795
+ * // ➔ TypeError: "Expected string but got (UrlSearchParams)."
796
+ * assertIsString(new URLSearchParams, {
797
+ * useAcronyms: true,
798
+ * formatCase: "toPascalCase",
799
+ * message: ({ currentType, validType }) => {
800
+ * return `Expected ${validType} but got (${currentType}).`
801
+ * },
802
+ * });
803
+ * // ➔ TypeError: "Expected string but got (URLSearchParams)."
804
+ * ```
805
+ * -------------------------------------------------------
806
+ * ✅ ***Real-world usage with generic narrowing***:
807
+ * ```ts
808
+ * const mixedValue: string | boolean | undefined = getUserInput();
809
+ *
810
+ * // Runtime assertion: throws if `mixedValue` is not a `string`
811
+ * assertIsString(mixedValue, {
812
+ * errorType: "RangeError",
813
+ * message: "Must be a string!"
814
+ * });
815
+ *
816
+ * // ✅ If no error thrown, TypeScript narrows `mixedValue` to `string` here
817
+ * const result: string = mixedValue; // ➔ Safe type assignment
818
+ * console.log(result.toUpperCase()); // ➔ Safe to call String.prototype methods
819
+ * ```
820
+ */
821
+ declare const assertIsString: (value: unknown, options?: OptionsAssertIs) => asserts value is string;
822
+ export { assertIsBigInt as a, assertIsNumber as i, assertIsPlainObject as n, assertIsBoolean as o, assertIsArray as r, assertIsString as t };