@rzl-zone/utils-js 3.12.0 โ†’ 3.12.1-beta.0

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 (286) hide show
  1. package/{LICENSE.md โ†’ LICENSE} +3 -3
  2. package/README.md +62 -89
  3. package/dist/.references/index.d.cts +25 -0
  4. package/dist/.references/index.d.ts +25 -0
  5. package/dist/assertIsArray-BChqwPiP.cjs +26 -0
  6. package/dist/assertIsArray-BChqwPiP.cjs.map +1 -0
  7. package/dist/assertIsArray-BfAbIUfa.js +20 -0
  8. package/dist/assertIsArray-BfAbIUfa.js.map +1 -0
  9. package/dist/assertIsBoolean-BlBct0Fc.js +1073 -0
  10. package/dist/assertIsBoolean-BlBct0Fc.js.map +1 -0
  11. package/dist/assertIsBoolean-DozdtbNi.cjs +1283 -0
  12. package/dist/assertIsBoolean-DozdtbNi.cjs.map +1 -0
  13. package/dist/assertIsString-Bvk7bUL7.cjs +26 -0
  14. package/dist/assertIsString-Bvk7bUL7.cjs.map +1 -0
  15. package/dist/assertIsString-DqV9NwbI.js +20 -0
  16. package/dist/assertIsString-DqV9NwbI.js.map +1 -0
  17. package/dist/assertions/index.cjs +37 -40
  18. package/dist/assertions/index.cjs.map +1 -0
  19. package/dist/assertions/index.d.cts +12 -0
  20. package/dist/assertions/index.d.ts +10 -824
  21. package/dist/assertions/index.js +30 -13
  22. package/dist/assertions/index.js.map +1 -0
  23. package/dist/conversions/index.cjs +34 -103
  24. package/dist/conversions/index.d.cts +12 -0
  25. package/dist/conversions/index.d.ts +10 -1791
  26. package/dist/conversions/index.js +14 -24
  27. package/dist/conversions-CBs8-REq.cjs +448 -0
  28. package/dist/conversions-CBs8-REq.cjs.map +1 -0
  29. package/dist/conversions-EMJa3g-D.js +382 -0
  30. package/dist/conversions-EMJa3g-D.js.map +1 -0
  31. package/dist/events/index.cjs +55 -31
  32. package/dist/events/index.cjs.map +1 -0
  33. package/dist/events/index.d.cts +174 -0
  34. package/dist/events/index.d.ts +31 -35
  35. package/dist/events/index.js +50 -12
  36. package/dist/events/index.js.map +1 -0
  37. package/dist/formatEnvPort-DpIXzPAZ.js +159 -0
  38. package/dist/formatEnvPort-DpIXzPAZ.js.map +1 -0
  39. package/dist/formatEnvPort-hHNvOim-.cjs +171 -0
  40. package/dist/formatEnvPort-hHNvOim-.cjs.map +1 -0
  41. package/dist/formatters/index.cjs +21 -61
  42. package/dist/formatters/index.d.cts +12 -0
  43. package/dist/formatters/index.d.ts +10 -2152
  44. package/dist/formatters/index.js +10 -18
  45. package/dist/formatters-QcZO_Cpx.js +367 -0
  46. package/dist/formatters-QcZO_Cpx.js.map +1 -0
  47. package/dist/formatters-lAYgA11L.cjs +427 -0
  48. package/dist/formatters-lAYgA11L.cjs.map +1 -0
  49. package/dist/generators/index.cjs +161 -41
  50. package/dist/generators/index.cjs.map +1 -0
  51. package/dist/generators/index.d.cts +12 -0
  52. package/dist/generators/index.d.ts +10 -338
  53. package/dist/generators/index.js +154 -14
  54. package/dist/generators/index.js.map +1 -0
  55. package/dist/index-26W7ItWx.d.ts +760 -0
  56. package/dist/index-BPPQjAfs.d.cts +2359 -0
  57. package/dist/index-BXjlgBLz.d.cts +2139 -0
  58. package/dist/index-B_Wwo91H.d.ts +2359 -0
  59. package/dist/index-CpufydcI.d.cts +704 -0
  60. package/dist/index-Czc4O526.d.ts +333 -0
  61. package/dist/index-DPs1_p5G.d.cts +760 -0
  62. package/dist/index-DRpOyBSC.d.ts +1703 -0
  63. package/dist/index-DWWvtHUn.d.cts +822 -0
  64. package/dist/index-DnM0LD0n.d.cts +333 -0
  65. package/dist/index-GUZ9fK6T.d.ts +2139 -0
  66. package/dist/index-I4fAzwXV.d.ts +704 -0
  67. package/dist/index-JDrOl_19.d.ts +822 -0
  68. package/dist/index-b66P49Qe.d.cts +1703 -0
  69. package/dist/isBigInt-B1cijjqm.cjs +20 -0
  70. package/dist/isBigInt-B1cijjqm.cjs.map +1 -0
  71. package/dist/isBigInt-C0bN0Rhu.js +14 -0
  72. package/dist/isBigInt-C0bN0Rhu.js.map +1 -0
  73. package/dist/isEmptyObject-DI42NEo0.cjs +37 -0
  74. package/dist/isEmptyObject-DI42NEo0.cjs.map +1 -0
  75. package/dist/isEmptyObject-DeLVIJpl.js +25 -0
  76. package/dist/isEmptyObject-DeLVIJpl.js.map +1 -0
  77. package/dist/isEmptyString-BTUWYTbw.js +15 -0
  78. package/dist/isEmptyString-BTUWYTbw.js.map +1 -0
  79. package/dist/isEmptyString-CCK3bP74.cjs +21 -0
  80. package/dist/isEmptyString-CCK3bP74.cjs.map +1 -0
  81. package/dist/isEmptyValue-DMSMFTU8.cjs +30 -0
  82. package/dist/isEmptyValue-DMSMFTU8.cjs.map +1 -0
  83. package/dist/isEmptyValue-fjnfQnt5.js +24 -0
  84. package/dist/isEmptyValue-fjnfQnt5.js.map +1 -0
  85. package/dist/isEqual-B1fRgEuU.cjs +111 -0
  86. package/dist/isEqual-B1fRgEuU.cjs.map +1 -0
  87. package/dist/isEqual-DhyP8fB_.js +87 -0
  88. package/dist/isEqual-DhyP8fB_.js.map +1 -0
  89. package/dist/isFinite-BYMOo0os.js +15 -0
  90. package/dist/isFinite-BYMOo0os.js.map +1 -0
  91. package/dist/isFinite-sFkps2TY.cjs +21 -0
  92. package/dist/isFinite-sFkps2TY.cjs.map +1 -0
  93. package/dist/isInteger-DS9V7l_f.js +14 -0
  94. package/dist/isInteger-DS9V7l_f.js.map +1 -0
  95. package/dist/isInteger-FTCthMre.cjs +20 -0
  96. package/dist/isInteger-FTCthMre.cjs.map +1 -0
  97. package/dist/isPlainObject-DcFGh3_5.d.ts +530 -0
  98. package/dist/isPlainObject-doTI11Ib.d.cts +530 -0
  99. package/dist/isServer-D1TXfOs3.js +14 -0
  100. package/dist/isServer-D1TXfOs3.js.map +1 -0
  101. package/dist/isServer-q-QLFCqE.cjs +20 -0
  102. package/dist/isServer-q-QLFCqE.cjs.map +1 -0
  103. package/dist/isTypedArray-47R0wdrc.js +31 -0
  104. package/dist/isTypedArray-47R0wdrc.js.map +1 -0
  105. package/dist/isTypedArray-DiCoqffZ.cjs +43 -0
  106. package/dist/isTypedArray-DiCoqffZ.cjs.map +1 -0
  107. package/dist/isURL-CQiowFq2.js +14 -0
  108. package/dist/isURL-CQiowFq2.js.map +1 -0
  109. package/dist/isURL-WZypXsax.cjs +20 -0
  110. package/dist/isURL-WZypXsax.cjs.map +1 -0
  111. package/dist/isValidDomain-BSXshgkC.cjs +1788 -0
  112. package/dist/isValidDomain-BSXshgkC.cjs.map +1 -0
  113. package/dist/isValidDomain-DwA2EN79.js +1782 -0
  114. package/dist/isValidDomain-DwA2EN79.js.map +1 -0
  115. package/dist/next/index.cjs +119 -214
  116. package/dist/next/index.cjs.map +1 -0
  117. package/dist/next/index.d.cts +226 -0
  118. package/dist/next/index.d.ts +26 -31
  119. package/dist/next/index.js +117 -212
  120. package/dist/next/index.js.map +1 -0
  121. package/dist/next/server/index.cjs +25 -40
  122. package/dist/next/server/index.cjs.map +1 -0
  123. package/dist/next/server/index.d.cts +39 -0
  124. package/dist/next/server/index.d.ts +9 -10
  125. package/dist/next/server/index.js +23 -38
  126. package/dist/next/server/index.js.map +1 -0
  127. package/dist/noop-B2mTBhW-.cjs +18 -0
  128. package/dist/noop-B2mTBhW-.cjs.map +1 -0
  129. package/dist/noop-BzktGBVz.js +12 -0
  130. package/dist/noop-BzktGBVz.js.map +1 -0
  131. package/dist/normalizeSpaces-DQHR3Tlr.cjs +29 -0
  132. package/dist/normalizeSpaces-DQHR3Tlr.cjs.map +1 -0
  133. package/dist/normalizeSpaces-WS_iERJk.js +23 -0
  134. package/dist/normalizeSpaces-WS_iERJk.js.map +1 -0
  135. package/dist/normalizeString-2WLth_Gj.js +15 -0
  136. package/dist/normalizeString-2WLth_Gj.js.map +1 -0
  137. package/dist/normalizeString-D8euBcRD.cjs +21 -0
  138. package/dist/normalizeString-D8euBcRD.cjs.map +1 -0
  139. package/dist/operations/index.cjs +65 -32
  140. package/dist/operations/index.cjs.map +1 -0
  141. package/dist/operations/index.d.cts +139 -0
  142. package/dist/operations/index.d.ts +10 -15
  143. package/dist/operations/index.js +61 -17
  144. package/dist/operations/index.js.map +1 -0
  145. package/dist/parsers/index.cjs +12 -19
  146. package/dist/parsers/index.d.cts +239 -0
  147. package/dist/parsers/index.d.ts +71 -72
  148. package/dist/parsers/index.js +10 -12
  149. package/dist/parsers-DXtpsDyj.cjs +649 -0
  150. package/dist/parsers-DXtpsDyj.cjs.map +1 -0
  151. package/dist/parsers-Dpuq-V4u.js +643 -0
  152. package/dist/parsers-Dpuq-V4u.js.map +1 -0
  153. package/dist/parsing-B43x1sxn.js +50 -0
  154. package/dist/parsing-B43x1sxn.js.map +1 -0
  155. package/dist/parsing-lRoxn1Nz.cjs +56 -0
  156. package/dist/parsing-lRoxn1Nz.cjs.map +1 -0
  157. package/dist/predicates/index.cjs +91 -296
  158. package/dist/predicates/index.d.cts +13 -0
  159. package/dist/predicates/index.d.ts +12 -2482
  160. package/dist/predicates/index.js +23 -25
  161. package/dist/predicates-DiaYA7Ps.cjs +413 -0
  162. package/dist/predicates-DiaYA7Ps.cjs.map +1 -0
  163. package/dist/predicates-gNepszvo.js +257 -0
  164. package/dist/predicates-gNepszvo.js.map +1 -0
  165. package/dist/promises/index.cjs +76 -24
  166. package/dist/promises/index.cjs.map +1 -0
  167. package/dist/promises/index.d.cts +123 -0
  168. package/dist/promises/index.d.ts +28 -31
  169. package/dist/promises/index.js +73 -13
  170. package/dist/promises/index.js.map +1 -0
  171. package/dist/punyCode-CTWXVVFo.cjs +185 -0
  172. package/dist/punyCode-CTWXVVFo.cjs.map +1 -0
  173. package/dist/punyCode-hmiFzLWT.js +179 -0
  174. package/dist/punyCode-hmiFzLWT.js.map +1 -0
  175. package/dist/removeSpaces-BE8lfh-4.js +19 -0
  176. package/dist/removeSpaces-BE8lfh-4.js.map +1 -0
  177. package/dist/removeSpaces-DRRxNWlb.cjs +25 -0
  178. package/dist/removeSpaces-DRRxNWlb.cjs.map +1 -0
  179. package/dist/safeJsonParse-BBnQElk8.cjs +208 -0
  180. package/dist/safeJsonParse-BBnQElk8.cjs.map +1 -0
  181. package/dist/safeJsonParse-CXruaP0p.js +184 -0
  182. package/dist/safeJsonParse-CXruaP0p.js.map +1 -0
  183. package/dist/safeStableStringify-BNh3D0K0.js +88 -0
  184. package/dist/safeStableStringify-BNh3D0K0.js.map +1 -0
  185. package/dist/safeStableStringify-Cc62pfRp.cjs +106 -0
  186. package/dist/safeStableStringify-Cc62pfRp.cjs.map +1 -0
  187. package/dist/strings/index.cjs +76 -81
  188. package/dist/strings/index.cjs.map +1 -0
  189. package/dist/strings/index.d.cts +12 -0
  190. package/dist/strings/index.d.ts +10 -775
  191. package/dist/strings/index.js +59 -14
  192. package/dist/strings/index.js.map +1 -0
  193. package/dist/tailwind/index.cjs +19 -47
  194. package/dist/tailwind/index.d.cts +12 -0
  195. package/dist/tailwind/index.d.ts +11 -712
  196. package/dist/tailwind/index.js +10 -12
  197. package/dist/tailwind-DJ4cmLUw.cjs +247 -0
  198. package/dist/tailwind-DJ4cmLUw.cjs.map +1 -0
  199. package/dist/tailwind-IJvOdkZp.js +199 -0
  200. package/dist/tailwind-IJvOdkZp.js.map +1 -0
  201. package/dist/toStringArrayUnRecursive-CFs0jTEg.js +39 -0
  202. package/dist/toStringArrayUnRecursive-CFs0jTEg.js.map +1 -0
  203. package/dist/toStringArrayUnRecursive-xUaU8Ot9.cjs +51 -0
  204. package/dist/toStringArrayUnRecursive-xUaU8Ot9.cjs.map +1 -0
  205. package/dist/urls/index.cjs +129 -57
  206. package/dist/urls/index.cjs.map +1 -0
  207. package/dist/urls/index.d.cts +740 -0
  208. package/dist/urls/index.d.ts +218 -224
  209. package/dist/urls/index.js +121 -26
  210. package/dist/urls/index.js.map +1 -0
  211. package/package.json +203 -194
  212. package/dist/chunk-2AFQ33D3.cjs +0 -64
  213. package/dist/chunk-2CYDJVGM.js +0 -246
  214. package/dist/chunk-2MW4JDQ2.cjs +0 -598
  215. package/dist/chunk-2VTDXC3N.cjs +0 -1825
  216. package/dist/chunk-44XX2P34.js +0 -209
  217. package/dist/chunk-4YLBKLGS.cjs +0 -18
  218. package/dist/chunk-566CXQW7.cjs +0 -560
  219. package/dist/chunk-57EPKYID.cjs +0 -397
  220. package/dist/chunk-5MGEC3YG.js +0 -63
  221. package/dist/chunk-6EF52423.cjs +0 -249
  222. package/dist/chunk-6SCOKU3S.js +0 -109
  223. package/dist/chunk-6VUXD3CF.js +0 -119
  224. package/dist/chunk-7B76BSNK.cjs +0 -118
  225. package/dist/chunk-7Y6I2DSU.cjs +0 -101
  226. package/dist/chunk-A7S7E2EE.cjs +0 -308
  227. package/dist/chunk-AJZ6PMMZ.js +0 -16
  228. package/dist/chunk-AXGBL2IO.cjs +0 -251
  229. package/dist/chunk-B4TC6FBV.cjs +0 -678
  230. package/dist/chunk-BAV5T2E3.cjs +0 -15
  231. package/dist/chunk-BKIJBNIE.js +0 -21
  232. package/dist/chunk-BNIMTFK5.js +0 -59
  233. package/dist/chunk-BXW7YXB7.js +0 -1823
  234. package/dist/chunk-CFYZC4S6.js +0 -53
  235. package/dist/chunk-CSG4SCL3.js +0 -1587
  236. package/dist/chunk-CWQW7AKK.js +0 -676
  237. package/dist/chunk-DVMHRLKP.cjs +0 -16
  238. package/dist/chunk-EN7LVZBZ.js +0 -548
  239. package/dist/chunk-EV4Y7HCY.cjs +0 -26
  240. package/dist/chunk-F66VDYIZ.cjs +0 -18
  241. package/dist/chunk-FLJX37EL.cjs +0 -30
  242. package/dist/chunk-GKC3UDMC.cjs +0 -1623
  243. package/dist/chunk-H65I3GRZ.cjs +0 -106
  244. package/dist/chunk-HHYWB7VZ.js +0 -24
  245. package/dist/chunk-HNGGISFL.cjs +0 -65
  246. package/dist/chunk-HNSQAVSZ.cjs +0 -35
  247. package/dist/chunk-HSP6IWZK.js +0 -17
  248. package/dist/chunk-IDZS7J6T.js +0 -242
  249. package/dist/chunk-JS6R55VL.js +0 -302
  250. package/dist/chunk-JZVT5FK7.js +0 -232
  251. package/dist/chunk-KHO2SBNA.cjs +0 -16
  252. package/dist/chunk-KIDJCMNJ.js +0 -33
  253. package/dist/chunk-KOLEURVT.cjs +0 -38
  254. package/dist/chunk-L4V53MQK.cjs +0 -269
  255. package/dist/chunk-L5RDAVVH.js +0 -14
  256. package/dist/chunk-NODTV4F3.js +0 -16
  257. package/dist/chunk-NYK5K3V2.cjs +0 -211
  258. package/dist/chunk-ODUO3RTL.cjs +0 -113
  259. package/dist/chunk-ONZFBJVW.js +0 -14
  260. package/dist/chunk-PFXCTE37.js +0 -28
  261. package/dist/chunk-PPST7QAQ.js +0 -587
  262. package/dist/chunk-Q5IMYDFL.cjs +0 -33
  263. package/dist/chunk-QFFBIOJ4.js +0 -31
  264. package/dist/chunk-QNKGP5DY.js +0 -14
  265. package/dist/chunk-RRQHMOPE.cjs +0 -19
  266. package/dist/chunk-RU5OSRBU.js +0 -95
  267. package/dist/chunk-SDMPEJ4F.js +0 -35
  268. package/dist/chunk-SYNL5IKP.js +0 -115
  269. package/dist/chunk-TCDOWZQE.js +0 -16
  270. package/dist/chunk-TQPGXGKB.cjs +0 -123
  271. package/dist/chunk-TULOI4GL.js +0 -370
  272. package/dist/chunk-UBHCP4N5.cjs +0 -36
  273. package/dist/chunk-UCHF3M34.cjs +0 -56
  274. package/dist/chunk-UDA26MCU.cjs +0 -16
  275. package/dist/chunk-V3C4FYZL.cjs +0 -18
  276. package/dist/chunk-VAAHZFBF.js +0 -32
  277. package/dist/chunk-VJDDGRIK.cjs +0 -16
  278. package/dist/chunk-WVSPXFTY.js +0 -14
  279. package/dist/chunk-WYP76WXB.js +0 -101
  280. package/dist/chunk-YDE4ZBB7.cjs +0 -237
  281. package/dist/chunk-YKQEOO7C.cjs +0 -23
  282. package/dist/chunk-YSZC56SZ.js +0 -264
  283. package/dist/chunk-YWHHVDT4.js +0 -13
  284. package/dist/index.d.ts +0 -24
  285. package/dist/isPlainObject-DTJVV2Kf.d.ts +0 -536
  286. package/dist/rzl-utils.global.js +0 -10
@@ -1,12 +1,12 @@
1
1
  /*!
2
- * ====================================================
3
- * Rzl Utils-JS.
4
- * ----------------------------------------------------
5
- * Version: 3.12.0.
6
- * Author: Rizalvin Dwiky.
7
- * Repository: https://github.com/rzl-zone/utils-js.
8
- * ====================================================
9
- */
2
+ * ========================================================================
3
+ * @rzl-zone/utils-js
4
+ * ------------------------------------------------------------------------
5
+ * Version: `3.12.1-beta.0`
6
+ * Author: `Rizalvin Dwiky <rizalvindwiky@gmail.com>`
7
+ * Repository: `https://github.com/rzl-zone/rzl-zone/tree/main/packages/utils-js`
8
+ * ========================================================================
9
+ */
10
10
  /** ----------------------------------------------------------
11
11
  * * ***Type-Utility: `QueryParamPairs`.***
12
12
  * ----------------------------------------------------------
@@ -83,7 +83,6 @@ type QueryParamPairs = [[string, string | number], ...[string, string | number][
83
83
  * ```
84
84
  */
85
85
  declare const constructURL: (baseUrl: string | URL, queryParams?: URLSearchParamsIterator<[string, string | number]> | QueryParamPairs, removeParams?: string[]) => URL;
86
-
87
86
  /** ---------------------------------
88
87
  * * ***Utility: `extractURLs`.***
89
88
  * ---------------------------------
@@ -110,7 +109,6 @@ declare const constructURL: (baseUrl: string | URL, queryParams?: URLSearchParam
110
109
  * // โž” ["http://example.com"]
111
110
  */
112
111
  declare const extractURLs: (url: string | null | undefined) => string[] | null;
113
-
114
112
  /** --------------------------------------------------------
115
113
  * * ***Utility: `getFirstPrefixPathname`.***
116
114
  * --------------------------------------------------------
@@ -207,20 +205,19 @@ declare const extractURLs: (url: string | null | undefined) => string[] | null;
207
205
  * @throws **{@link TypeError | `TypeError`}** ***if `result` is not a valid type, or `defaultValue` is not a string or empty-string.***
208
206
  */
209
207
  declare const getFirstPrefixPathname: (result: string | string[] | null | undefined, defaultValue?: string) => string;
210
-
211
208
  type GetPrefixPathnameOptions = {
212
- /** The number of levels to include in the prefix (default is `1`).
213
- *
214
- * - For example, with `levels = 2`, the function will return the first two parts of the URL.
215
- *
216
- * @default 1
217
- */
218
- levels?: number;
219
- /** Whether to remove duplicates from the result if multiple URLs are passed (default is `true`).
220
- *
221
- * @default true
222
- */
223
- removeDuplicates?: boolean;
209
+ /** The number of levels to include in the prefix (default is `1`).
210
+ *
211
+ * - For example, with `levels = 2`, the function will return the first two parts of the URL.
212
+ *
213
+ * @default 1
214
+ */
215
+ levels?: number;
216
+ /** Whether to remove duplicates from the result if multiple URLs are passed (default is `true`).
217
+ *
218
+ * @default true
219
+ */
220
+ removeDuplicates?: boolean;
224
221
  };
225
222
  /** --------------------------------------------------------
226
223
  * * ***Utility: `getPrefixPathname`.***
@@ -351,141 +348,140 @@ type GetPrefixPathnameOptions = {
351
348
  * ```
352
349
  */
353
350
  declare const getPrefixPathname: (url: string | string[], base?: string | string[] | null, options?: GetPrefixPathnameOptions) => string | string[] | null;
354
-
355
351
  /** Options when `keepNullable` is false (default).
356
352
  *
357
353
  * Returns `defaultPath` if `pathname` is empty or invalid.
358
354
  */
359
355
  type UnKeepNullableOptions = {
360
- /** * ***Fallback value returned if `pathname` is empty-string or invalid.***
361
- *
362
- * Must be a **`non-empty string`**, defaultValue: `"/"`.
363
- *
364
- * @defaultValue `"/"`.
365
- */
366
- defaultPath?: string;
367
- /** * ***Whether to preserve `null` or `undefined`, defaultValue: `false`.***
368
- *
369
- * @defaultValue `false`.
370
- */
371
- keepNullable?: false;
356
+ /** * ***Fallback value returned if `pathname` is empty-string or invalid.***
357
+ *
358
+ * Must be a **`non-empty string`**, defaultValue: `"/"`.
359
+ *
360
+ * @defaultValue `"/"`.
361
+ */
362
+ defaultPath?: string;
363
+ /** * ***Whether to preserve `null` or `undefined`, defaultValue: `false`.***
364
+ *
365
+ * @defaultValue `false`.
366
+ */
367
+ keepNullable?: false;
372
368
  };
373
369
  /** Options when `keepNullable` is true.
374
370
  *
375
371
  * Preserves `null` or `undefined` instead of returning `defaultPath`.
376
372
  */
377
373
  type KeepNullableOptions = {
378
- /** * ***Fallback path is ignored when `keepNullable` is true **(except if
379
- * `pathname` is empty-string or invalid, even this `true`)**,
380
- * defaultValue: `"/"`.***
381
- *
382
- * @defaultValue `"/"`.
383
- */
384
- defaultPath?: string;
385
- /** * ***Preserve `null` or `undefined` as-is if `true` (defaultValue: `false`).***
386
- *
387
- * - ***โš ๏ธ Notes:***
388
- * - Keep returning `defaultPath` if `pathname` is empty-string, even this `true`.
389
- *
390
- * **Must be `true` in this type.**
391
- */
392
- keepNullable?: true;
374
+ /** * ***Fallback path is ignored when `keepNullable` is true **(except if
375
+ * `pathname` is empty-string or invalid, even this `true`)**,
376
+ * defaultValue: `"/"`.***
377
+ *
378
+ * @defaultValue `"/"`.
379
+ */
380
+ defaultPath?: string;
381
+ /** * ***Preserve `null` or `undefined` as-is if `true` (defaultValue: `false`).***
382
+ *
383
+ * - ***โš ๏ธ Notes:***
384
+ * - Keep returning `defaultPath` if `pathname` is empty-string, even this `true`.
385
+ *
386
+ * **Must be `true` in this type.**
387
+ */
388
+ keepNullable?: true;
393
389
  };
394
390
  type MainNormalizePathnameOptions = {
395
- /** --------------------------------------------------------
396
- * * ***Preserve trailing slash at the end of the normalized pathname, defaultValue: `false`.***
397
- * --------------------------------------------------------
398
- *
399
- * @defaultValue `false`
400
- */
401
- keepTrailingSlash?: boolean;
402
- /** --------------------------------------------------------
403
- * * ***Allow special localhost domain at the beginning of the pathname.***
404
- * --------------------------------------------------------
405
- * @description
406
- * If `true`, the first segment of the pathname that is `/localhost` or `localhost`
407
- * (with or without a port, e.g., `localhost:3000`) will be treated as a special domain
408
- * and **removed** from the normalized pathname.
409
- *
410
- * - **Examples (`localhostDomain: true`)**:
411
- * - `"/localhost/path"` โž” `"/path"`
412
- * - `"localhost:3000/path"` โž” `"/path"`
413
- * - `"localhost"` โž” `"/"` (entire path removed)
414
- *
415
- * - Only the **first path segment** is affected. Any subsequent occurrences of `"localhost"`
416
- * will remain intact.
417
- *
418
- * @defaultValue `false`
419
- */
420
- localhostDomain?: boolean;
421
- /**
422
- * --------------------------------------------------------
423
- * * ***Custom list of file extensions that prevent the first path segment from being treated as a domain.***
424
- * --------------------------------------------------------
425
- *
426
- * **Description:**
427
- * - The first segment of a pathname is often interpreted as a domain (e.g., `example.com`).
428
- * - If this first segment ends with any of the extensions listed here, it will **not** be considered a domain,
429
- * and will instead be preserved as part of the relative path.
430
- * - This is useful for cases where filenames appear at the start of a path and you want them treated as relative paths,
431
- * such as `"image.png?version=2"` or `"archive.tar.gz#download"`.
432
- * - Only the **first path segment** is affected; all other segments are processed normally.
433
- * - **Ignored** if:
434
- * 1. The pathname starts with a full URL protocol (`http://` or `https://`), e.g., `"https://example.com/file.png"`.
435
- * 2. The first path segment is already a valid domain, e.g., `"example.com/image.png"`.
436
- *
437
- * **Type & Validation:**
438
- * - Must be a `Set<string>` or `string[]`.
439
- * - Each string **must include the leading dot**, e.g., `.png`, `.tar.gz`.
440
- * - Multi-part extensions (like `.tar.gz`, `.tar.bz`) are supported.
441
- * - Throws a **TypeError** if:
442
- * 1. The type is not a `Set<string>` or `string[]`.
443
- * 2. Any string in the array/set is empty.
444
- * 3. Any string does not start with a dot (`.`).
445
- *
446
- * **Usage Notes:**
447
- * - Only applied when the first segment is otherwise domain-like **and** pathname is relative or domain-like without protocol.
448
- * - Query strings (`?x=1`) and hash fragments (`#section`) are preserved.
449
- *
450
- * **Examples (relative paths, option active):**
451
- * ```ts
452
- * normalizePathname("image.png?version=2", {
453
- * ignoreDomainExtensions: [".png", ".jpg"]
454
- * });
455
- * // โž” "/image.png?version=2"
456
- *
457
- * normalizePathname("archive.tar.gz#download", {
458
- * ignoreDomainExtensions: new Set([".tar.gz"])
459
- * });
460
- * // โž” "/archive.tar.gz#download"
461
- *
462
- * normalizePathname("script.js?module=true#top", {
463
- * ignoreDomainExtensions: [".js"]
464
- * });
465
- * // โž” "/script.js?module=true#top"
466
- * ```
467
- *
468
- * **Examples (full URL or explicit domain - option ignored):**
469
- * ```ts
470
- * normalizePathname("https://example.com/image.png?version=2", {
471
- * ignoreDomainExtensions: [".png"]
472
- * });
473
- * // โž” "/image.png?version=2" // URL is parsed normally; ignoreDomainExtensions has no effect
474
- *
475
- * normalizePathname("example.com/script.js?module=true#top", {
476
- * ignoreDomainExtensions: [".js"]
477
- * });
478
- * // โž” "/script.js?module=true#top" // domain recognized; option ignored
479
- * ```
480
- *
481
- * **Notes:**
482
- * - Only the **first path segment** is checked.
483
- * - Prevents false-positive domain stripping for filenames that look like domains.
484
- * - Throws **TypeError** if invalid type or invalid string is provided.
485
- *
486
- * @defaultValue `undefined` (feature inactive if not provided)
487
- */
488
- ignoreDomainExtensions?: Set<string> | string[];
391
+ /** --------------------------------------------------------
392
+ * * ***Preserve trailing slash at the end of the normalized pathname, defaultValue: `false`.***
393
+ * --------------------------------------------------------
394
+ *
395
+ * @defaultValue `false`
396
+ */
397
+ keepTrailingSlash?: boolean;
398
+ /** --------------------------------------------------------
399
+ * * ***Allow special localhost domain at the beginning of the pathname.***
400
+ * --------------------------------------------------------
401
+ * @description
402
+ * If `true`, the first segment of the pathname that is `/localhost` or `localhost`
403
+ * (with or without a port, e.g., `localhost:3000`) will be treated as a special domain
404
+ * and **removed** from the normalized pathname.
405
+ *
406
+ * - **Examples (`localhostDomain: true`)**:
407
+ * - `"/localhost/path"` โž” `"/path"`
408
+ * - `"localhost:3000/path"` โž” `"/path"`
409
+ * - `"localhost"` โž” `"/"` (entire path removed)
410
+ *
411
+ * - Only the **first path segment** is affected. Any subsequent occurrences of `"localhost"`
412
+ * will remain intact.
413
+ *
414
+ * @defaultValue `false`
415
+ */
416
+ localhostDomain?: boolean;
417
+ /**
418
+ * --------------------------------------------------------
419
+ * * ***Custom list of file extensions that prevent the first path segment from being treated as a domain.***
420
+ * --------------------------------------------------------
421
+ *
422
+ * **Description:**
423
+ * - The first segment of a pathname is often interpreted as a domain (e.g., `example.com`).
424
+ * - If this first segment ends with any of the extensions listed here, it will **not** be considered a domain,
425
+ * and will instead be preserved as part of the relative path.
426
+ * - This is useful for cases where filenames appear at the start of a path and you want them treated as relative paths,
427
+ * such as `"image.png?version=2"` or `"archive.tar.gz#download"`.
428
+ * - Only the **first path segment** is affected; all other segments are processed normally.
429
+ * - **Ignored** if:
430
+ * 1. The pathname starts with a full URL protocol (`http://` or `https://`), e.g., `"https://example.com/file.png"`.
431
+ * 2. The first path segment is already a valid domain, e.g., `"example.com/image.png"`.
432
+ *
433
+ * **Type & Validation:**
434
+ * - Must be a `Set<string>` or `string[]`.
435
+ * - Each string **must include the leading dot**, e.g., `.png`, `.tar.gz`.
436
+ * - Multi-part extensions (like `.tar.gz`, `.tar.bz`) are supported.
437
+ * - Throws a **TypeError** if:
438
+ * 1. The type is not a `Set<string>` or `string[]`.
439
+ * 2. Any string in the array/set is empty.
440
+ * 3. Any string does not start with a dot (`.`).
441
+ *
442
+ * **Usage Notes:**
443
+ * - Only applied when the first segment is otherwise domain-like **and** pathname is relative or domain-like without protocol.
444
+ * - Query strings (`?x=1`) and hash fragments (`#section`) are preserved.
445
+ *
446
+ * **Examples (relative paths, option active):**
447
+ * ```ts
448
+ * normalizePathname("image.png?version=2", {
449
+ * ignoreDomainExtensions: [".png", ".jpg"]
450
+ * });
451
+ * // โž” "/image.png?version=2"
452
+ *
453
+ * normalizePathname("archive.tar.gz#download", {
454
+ * ignoreDomainExtensions: new Set([".tar.gz"])
455
+ * });
456
+ * // โž” "/archive.tar.gz#download"
457
+ *
458
+ * normalizePathname("script.js?module=true#top", {
459
+ * ignoreDomainExtensions: [".js"]
460
+ * });
461
+ * // โž” "/script.js?module=true#top"
462
+ * ```
463
+ *
464
+ * **Examples (full URL or explicit domain - option ignored):**
465
+ * ```ts
466
+ * normalizePathname("https://example.com/image.png?version=2", {
467
+ * ignoreDomainExtensions: [".png"]
468
+ * });
469
+ * // โž” "/image.png?version=2" // URL is parsed normally; ignoreDomainExtensions has no effect
470
+ *
471
+ * normalizePathname("example.com/script.js?module=true#top", {
472
+ * ignoreDomainExtensions: [".js"]
473
+ * });
474
+ * // โž” "/script.js?module=true#top" // domain recognized; option ignored
475
+ * ```
476
+ *
477
+ * **Notes:**
478
+ * - Only the **first path segment** is checked.
479
+ * - Prevents false-positive domain stripping for filenames that look like domains.
480
+ * - Throws **TypeError** if invalid type or invalid string is provided.
481
+ *
482
+ * @defaultValue `undefined` (feature inactive if not provided)
483
+ */
484
+ ignoreDomainExtensions?: Set<string> | string[];
489
485
  };
490
486
  type NormalizePathnameOptionsKeepNullableTrue = MainNormalizePathnameOptions & KeepNullableOptions;
491
487
  type NormalizePathnameOptionsKeepNullableFalse = MainNormalizePathnameOptions & UnKeepNullableOptions;
@@ -615,13 +611,12 @@ type ResKeepNullable<T> = T extends string ? string : T extends undefined ? unde
615
611
  */
616
612
  declare function normalizePathname<T>(pathname: T, options?: NormalizePathnameOptionsKeepNullableFalse): ResUnKeepNullable<T>;
617
613
  declare function normalizePathname<T>(pathname: T, options?: NormalizePathnameOptionsKeepNullableTrue): ResKeepNullable<T>;
618
-
619
614
  type FormatEnvPortOptions = {
620
- /** Add prefix with a colon, defaultValue: `false`.
621
- *
622
- * @default false
623
- */
624
- prefixColon?: boolean;
615
+ /** Add prefix with a colon, defaultValue: `false`.
616
+ *
617
+ * @default false
618
+ */
619
+ prefixColon?: boolean;
625
620
  };
626
621
  /** -----------------------------------------------
627
622
  * * ***Utility: `formatEnvPort`.***
@@ -643,7 +638,6 @@ type FormatEnvPortOptions = {
643
638
  * // โž” ":8080"
644
639
  */
645
640
  declare const formatEnvPort: (envVar: string | null | undefined, options?: FormatEnvPortOptions) => string;
646
-
647
641
  /** ---------------------------------------------------------
648
642
  * * ***Constants for `Punycode-UtilsJS` algorithm.***
649
643
  * ---------------------------------------------------------
@@ -652,86 +646,86 @@ declare const formatEnvPort: (envVar: string | null | undefined, options?: Forma
652
646
  * Unicode domain names to ASCII (`Punycode-UtilsJS`) and vice versa.
653
647
  */
654
648
  type PunycodeUtilsJS = {
649
+ /** ---------------------------------------------------------
650
+ * * ***Version of the `Punycode-UtilsJS` implementation.***
651
+ * ---------------------------------------------------------
652
+ *
653
+ * @example
654
+ * console.log(punycodeUtilsJS.version); // "1.0.0"
655
+ */
656
+ version: string;
657
+ /** ---------------------------------------------------------
658
+ * * ***UCS-2 utility functions.***
659
+ * ---------------------------------------------------------
660
+ */
661
+ ucs2: {
655
662
  /** ---------------------------------------------------------
656
- * * ***Version of the `Punycode-UtilsJS` implementation.***
657
- * ---------------------------------------------------------
658
- *
659
- * @example
660
- * console.log(punycodeUtilsJS.version); // "1.0.0"
661
- */
662
- version: string;
663
- /** ---------------------------------------------------------
664
- * * ***UCS-2 utility functions.***
665
- * ---------------------------------------------------------
666
- */
667
- ucs2: {
668
- /** ---------------------------------------------------------
669
- * * ***Decodes a UCS-2 encoded string to an array of Unicode code points.***
670
- * ---------------------------------------------------------
671
- *
672
- * @param input - The UCS-2 string to decode.
673
- * @returns Array of Unicode code points.
674
- * @example
675
- * punycodeUtilsJS.ucs2.decode("๐ˆ");
676
- * // โž” [66376]
677
- */
678
- decode: (input: string) => number[];
679
- /** ---------------------------------------------------------
680
- * * ***Encodes an array of Unicode code points to a UCS-2 string.***
681
- * ---------------------------------------------------------
682
- *
683
- * @param points - Array of Unicode code points.
684
- * @returns Encoded string.
685
- * @example
686
- * punycodeUtilsJS.ucs2.encode([66376]);
687
- * // โž” "๐ˆ"
688
- */
689
- encode: (points: number[]) => string;
690
- };
691
- /** ---------------------------------------------------------
692
- * * ***Decodes a `Punycode-UtilsJS` string to a Unicode string.***
693
- * ---------------------------------------------------------
694
- *
695
- * @param input - The `Punycode-UtilsJS` string to decode.
696
- * @returns Decoded Unicode string.
697
- * @example
698
- * punycodeUtilsJS.decode("xn--fsq");
699
- * // โž” "รผ"
700
- */
701
- decode: (input: string) => string;
702
- /** ---------------------------------------------------------
703
- * * ***Encodes a Unicode string to `Punycode-UtilsJS`.***
704
- * ---------------------------------------------------------
705
- *
706
- * @param input - Unicode string to encode.
707
- * @returns `Punycode-UtilsJS` string.
708
- * @example
709
- * punycodeUtilsJS.encode("รผ");
710
- * // โž” "xn--fsq"
711
- */
712
- encode: (input: string) => string;
713
- /** ---------------------------------------------------------
714
- * * ***Converts a Unicode domain or label to ASCII (`Punycode-UtilsJS`).***
663
+ * * ***Decodes a UCS-2 encoded string to an array of Unicode code points.***
715
664
  * ---------------------------------------------------------
716
665
  *
717
- * @param input - Domain or label string.
718
- * @returns ASCII string suitable for DNS.
666
+ * @param input - The UCS-2 string to decode.
667
+ * @returns Array of Unicode code points.
719
668
  * @example
720
- * punycodeUtilsJS.toASCII("ะฟั€ะธะผะตั€.ั€ั„");
721
- * // โž” "xn--e1afmkfd.xn--p1ai"
669
+ * punycodeUtilsJS.ucs2.decode("๐ˆ");
670
+ * // โž” [66376]
722
671
  */
723
- toASCII: (input: string) => string;
672
+ decode: (input: string) => number[];
724
673
  /** ---------------------------------------------------------
725
- * * ***Converts an ASCII (`Punycode-UtilsJS`) domain or label to Unicode.***
674
+ * * ***Encodes an array of Unicode code points to a UCS-2 string.***
726
675
  * ---------------------------------------------------------
727
676
  *
728
- * @param input - ASCII string (with xn-- prefix if needed).
729
- * @returns Unicode string.
677
+ * @param points - Array of Unicode code points.
678
+ * @returns Encoded string.
730
679
  * @example
731
- * punycodeUtilsJS.toUnicode("xn--e1afmkfd.xn--p1ai");
732
- * // โž” "ะฟั€ะธะผะตั€.ั€ั„"
680
+ * punycodeUtilsJS.ucs2.encode([66376]);
681
+ * // โž” "๐ˆ"
733
682
  */
734
- toUnicode: (input: string) => string;
683
+ encode: (points: number[]) => string;
684
+ };
685
+ /** ---------------------------------------------------------
686
+ * * ***Decodes a `Punycode-UtilsJS` string to a Unicode string.***
687
+ * ---------------------------------------------------------
688
+ *
689
+ * @param input - The `Punycode-UtilsJS` string to decode.
690
+ * @returns Decoded Unicode string.
691
+ * @example
692
+ * punycodeUtilsJS.decode("xn--fsq");
693
+ * // โž” "รผ"
694
+ */
695
+ decode: (input: string) => string;
696
+ /** ---------------------------------------------------------
697
+ * * ***Encodes a Unicode string to `Punycode-UtilsJS`.***
698
+ * ---------------------------------------------------------
699
+ *
700
+ * @param input - Unicode string to encode.
701
+ * @returns `Punycode-UtilsJS` string.
702
+ * @example
703
+ * punycodeUtilsJS.encode("รผ");
704
+ * // โž” "xn--fsq"
705
+ */
706
+ encode: (input: string) => string;
707
+ /** ---------------------------------------------------------
708
+ * * ***Converts a Unicode domain or label to ASCII (`Punycode-UtilsJS`).***
709
+ * ---------------------------------------------------------
710
+ *
711
+ * @param input - Domain or label string.
712
+ * @returns ASCII string suitable for DNS.
713
+ * @example
714
+ * punycodeUtilsJS.toASCII("ะฟั€ะธะผะตั€.ั€ั„");
715
+ * // โž” "xn--e1afmkfd.xn--p1ai"
716
+ */
717
+ toASCII: (input: string) => string;
718
+ /** ---------------------------------------------------------
719
+ * * ***Converts an ASCII (`Punycode-UtilsJS`) domain or label to Unicode.***
720
+ * ---------------------------------------------------------
721
+ *
722
+ * @param input - ASCII string (with xn-- prefix if needed).
723
+ * @returns Unicode string.
724
+ * @example
725
+ * punycodeUtilsJS.toUnicode("xn--e1afmkfd.xn--p1ai");
726
+ * // โž” "ะฟั€ะธะผะตั€.ั€ั„"
727
+ */
728
+ toUnicode: (input: string) => string;
735
729
  };
736
730
  /** ---------------------------------------------------------
737
731
  * * ***`Punycode-UtilsJS` object exposing all API functions and version.***
@@ -742,5 +736,5 @@ type PunycodeUtilsJS = {
742
736
  * - Useful for IDN (Internationalized Domain Names) support.
743
737
  */
744
738
  declare const punycodeUtilsJS: PunycodeUtilsJS;
745
-
746
- export { type QueryParamPairs, constructURL, extractURLs, formatEnvPort, getFirstPrefixPathname, getPrefixPathname, normalizePathname, punycodeUtilsJS };
739
+ /** Export individual functions */
740
+ export { QueryParamPairs, constructURL, extractURLs, formatEnvPort, getFirstPrefixPathname, getPrefixPathname, normalizePathname, punycodeUtilsJS };