@rzl-zone/utils-js 3.12.0 → 3.12.1-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/{LICENSE.md → LICENSE} +3 -3
  2. package/README.md +69 -96
  3. package/dist/.references/index.d.cts +25 -0
  4. package/dist/.references/index.d.ts +25 -0
  5. package/dist/assertIsArray-DJXkjHZs.cjs +26 -0
  6. package/dist/assertIsArray-DJXkjHZs.cjs.map +1 -0
  7. package/dist/assertIsArray-bTA3XLjq.js +20 -0
  8. package/dist/assertIsArray-bTA3XLjq.js.map +1 -0
  9. package/dist/assertIsBoolean-C8WEXVr2.cjs +1283 -0
  10. package/dist/assertIsBoolean-C8WEXVr2.cjs.map +1 -0
  11. package/dist/assertIsBoolean-DR1SaXPD.js +1073 -0
  12. package/dist/assertIsBoolean-DR1SaXPD.js.map +1 -0
  13. package/dist/assertIsString-BiHQSrB2.cjs +26 -0
  14. package/dist/assertIsString-BiHQSrB2.cjs.map +1 -0
  15. package/dist/assertIsString-CEB07_83.js +20 -0
  16. package/dist/assertIsString-CEB07_83.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-BNIh_tCH.js +380 -0
  28. package/dist/conversions-BNIh_tCH.js.map +1 -0
  29. package/dist/conversions-D_Kh0a_C.cjs +446 -0
  30. package/dist/conversions-D_Kh0a_C.cjs.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 +176 -0
  34. package/dist/events/index.d.ts +164 -166
  35. package/dist/events/index.js +50 -12
  36. package/dist/events/index.js.map +1 -0
  37. package/dist/formatEnvPort-B3OLxQk9.cjs +171 -0
  38. package/dist/formatEnvPort-B3OLxQk9.cjs.map +1 -0
  39. package/dist/formatEnvPort-ByFVLjSV.js +159 -0
  40. package/dist/formatEnvPort-ByFVLjSV.js.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--1m_vpE8.js +369 -0
  46. package/dist/formatters--1m_vpE8.js.map +1 -0
  47. package/dist/formatters-Cbij0XLU.cjs +429 -0
  48. package/dist/formatters-Cbij0XLU.cjs.map +1 -0
  49. package/dist/generators/index.cjs +165 -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 +158 -14
  54. package/dist/generators/index.js.map +1 -0
  55. package/dist/index-59zbLcPr.d.ts +340 -0
  56. package/dist/index-B6tawc8L.d.cts +1716 -0
  57. package/dist/index-C267akkJ.d.ts +2158 -0
  58. package/dist/index-CeBC2Vvl.d.cts +2361 -0
  59. package/dist/index-CgRDTI6f.d.ts +822 -0
  60. package/dist/index-CoiUBVmr.d.ts +720 -0
  61. package/dist/index-D4fcasfZ.d.cts +720 -0
  62. package/dist/index-DDrSQKIc.d.ts +1716 -0
  63. package/dist/index-DsGxO31H.d.cts +765 -0
  64. package/dist/index-Hg1qJkjl.d.ts +765 -0
  65. package/dist/index-Qm3iFwd0.d.cts +2158 -0
  66. package/dist/index-UPp94Agr.d.ts +2361 -0
  67. package/dist/index-gBA_8SuF.d.cts +340 -0
  68. package/dist/index-jyDqzicx.d.cts +822 -0
  69. package/dist/isBigInt-C4krUeAw.cjs +20 -0
  70. package/dist/isBigInt-C4krUeAw.cjs.map +1 -0
  71. package/dist/isBigInt-DKe0M6hp.js +14 -0
  72. package/dist/isBigInt-DKe0M6hp.js.map +1 -0
  73. package/dist/isEmptyObject-DCipFwxJ.js +25 -0
  74. package/dist/isEmptyObject-DCipFwxJ.js.map +1 -0
  75. package/dist/isEmptyObject-ZkSwRC_D.cjs +37 -0
  76. package/dist/isEmptyObject-ZkSwRC_D.cjs.map +1 -0
  77. package/dist/isEmptyString-BXzKAC2j.js +15 -0
  78. package/dist/isEmptyString-BXzKAC2j.js.map +1 -0
  79. package/dist/isEmptyString-UiiUsSQj.cjs +21 -0
  80. package/dist/isEmptyString-UiiUsSQj.cjs.map +1 -0
  81. package/dist/isEmptyValue-BQzcjVaL.cjs +30 -0
  82. package/dist/isEmptyValue-BQzcjVaL.cjs.map +1 -0
  83. package/dist/isEmptyValue-jqOr7OHD.js +24 -0
  84. package/dist/isEmptyValue-jqOr7OHD.js.map +1 -0
  85. package/dist/isEqual-BX49cF9m.js +87 -0
  86. package/dist/isEqual-BX49cF9m.js.map +1 -0
  87. package/dist/isEqual-BvumA3RA.cjs +111 -0
  88. package/dist/isEqual-BvumA3RA.cjs.map +1 -0
  89. package/dist/isFinite-BCnaDpod.js +15 -0
  90. package/dist/isFinite-BCnaDpod.js.map +1 -0
  91. package/dist/isFinite-D24ZaE6c.cjs +21 -0
  92. package/dist/isFinite-D24ZaE6c.cjs.map +1 -0
  93. package/dist/isInteger-Caeuz0rB.cjs +20 -0
  94. package/dist/isInteger-Caeuz0rB.cjs.map +1 -0
  95. package/dist/isInteger-naMbJsxJ.js +14 -0
  96. package/dist/isInteger-naMbJsxJ.js.map +1 -0
  97. package/dist/isPlainObject-BF-2-phb.d.cts +339 -0
  98. package/dist/isPlainObject-DxNDL8XU.d.ts +339 -0
  99. package/dist/isServer-BJHVnixd.cjs +20 -0
  100. package/dist/isServer-BJHVnixd.cjs.map +1 -0
  101. package/dist/isServer-Da3o3XSs.js +14 -0
  102. package/dist/isServer-Da3o3XSs.js.map +1 -0
  103. package/dist/isTypedArray-DuNA8tK6.js +31 -0
  104. package/dist/isTypedArray-DuNA8tK6.js.map +1 -0
  105. package/dist/isTypedArray-TJptiw2b.cjs +43 -0
  106. package/dist/isTypedArray-TJptiw2b.cjs.map +1 -0
  107. package/dist/isURL-C-kSk6KJ.js +14 -0
  108. package/dist/isURL-C-kSk6KJ.js.map +1 -0
  109. package/dist/isURL-DeUPO_oR.cjs +20 -0
  110. package/dist/isURL-DeUPO_oR.cjs.map +1 -0
  111. package/dist/isValidDomain-BB9IGhJs.cjs +1845 -0
  112. package/dist/isValidDomain-BB9IGhJs.cjs.map +1 -0
  113. package/dist/isValidDomain-DoE98yhJ.js +1827 -0
  114. package/dist/isValidDomain-DoE98yhJ.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 +220 -0
  118. package/dist/next/index.d.ts +203 -214
  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 +34 -35
  125. package/dist/next/server/index.js +23 -38
  126. package/dist/next/server/index.js.map +1 -0
  127. package/dist/noop-B13_ii35.cjs +18 -0
  128. package/dist/noop-B13_ii35.cjs.map +1 -0
  129. package/dist/noop-ubqAIbHD.js +12 -0
  130. package/dist/noop-ubqAIbHD.js.map +1 -0
  131. package/dist/normalizeSpaces-Bg2IZW7W.js +23 -0
  132. package/dist/normalizeSpaces-Bg2IZW7W.js.map +1 -0
  133. package/dist/normalizeSpaces-ZXnR4Qzp.cjs +29 -0
  134. package/dist/normalizeSpaces-ZXnR4Qzp.cjs.map +1 -0
  135. package/dist/normalizeString-BDdkaXui.js +15 -0
  136. package/dist/normalizeString-BDdkaXui.js.map +1 -0
  137. package/dist/normalizeString-BE6ELqEb.cjs +21 -0
  138. package/dist/normalizeString-BE6ELqEb.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 +129 -134
  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 +234 -235
  148. package/dist/parsers/index.js +10 -12
  149. package/dist/parsers-BSBPgvsq.js +643 -0
  150. package/dist/parsers-BSBPgvsq.js.map +1 -0
  151. package/dist/parsers-OqDeffqc.cjs +649 -0
  152. package/dist/parsers-OqDeffqc.cjs.map +1 -0
  153. package/dist/parsing-Cao8b358.js +50 -0
  154. package/dist/parsing-Cao8b358.js.map +1 -0
  155. package/dist/parsing-DOGSCH6N.cjs +56 -0
  156. package/dist/parsing-DOGSCH6N.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-Bj6meyXV.js +256 -0
  162. package/dist/predicates-Bj6meyXV.js.map +1 -0
  163. package/dist/predicates-D0ubqgqy.cjs +412 -0
  164. package/dist/predicates-D0ubqgqy.cjs.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 +116 -119
  169. package/dist/promises/index.js +73 -13
  170. package/dist/promises/index.js.map +1 -0
  171. package/dist/punyCode-8SrbMWfM.js +179 -0
  172. package/dist/punyCode-8SrbMWfM.js.map +1 -0
  173. package/dist/punyCode-D-Qu6nj6.cjs +185 -0
  174. package/dist/punyCode-D-Qu6nj6.cjs.map +1 -0
  175. package/dist/removeSpaces-Bmc5DX4F.js +19 -0
  176. package/dist/removeSpaces-Bmc5DX4F.js.map +1 -0
  177. package/dist/removeSpaces-CWIvhZHg.cjs +25 -0
  178. package/dist/removeSpaces-CWIvhZHg.cjs.map +1 -0
  179. package/dist/rzl-utils.global.js +20 -9
  180. package/dist/safeJsonParse-BP38mwlj.js +184 -0
  181. package/dist/safeJsonParse-BP38mwlj.js.map +1 -0
  182. package/dist/safeJsonParse-Sms2CJf4.cjs +208 -0
  183. package/dist/safeJsonParse-Sms2CJf4.cjs.map +1 -0
  184. package/dist/safeStableStringify-CJtP89qn.cjs +106 -0
  185. package/dist/safeStableStringify-CJtP89qn.cjs.map +1 -0
  186. package/dist/safeStableStringify-CXOZ9Ub8.js +88 -0
  187. package/dist/safeStableStringify-CXOZ9Ub8.js.map +1 -0
  188. package/dist/strings/index.cjs +79 -81
  189. package/dist/strings/index.cjs.map +1 -0
  190. package/dist/strings/index.d.cts +12 -0
  191. package/dist/strings/index.d.ts +10 -775
  192. package/dist/strings/index.js +62 -14
  193. package/dist/strings/index.js.map +1 -0
  194. package/dist/tailwind/index.cjs +19 -47
  195. package/dist/tailwind/index.d.cts +12 -0
  196. package/dist/tailwind/index.d.ts +11 -712
  197. package/dist/tailwind/index.js +10 -12
  198. package/dist/tailwind-B2ssevxq.js +199 -0
  199. package/dist/tailwind-B2ssevxq.js.map +1 -0
  200. package/dist/tailwind-CHIx9uxu.cjs +247 -0
  201. package/dist/tailwind-CHIx9uxu.cjs.map +1 -0
  202. package/dist/toStringArrayUnRecursive-C4zYCja7.cjs +51 -0
  203. package/dist/toStringArrayUnRecursive-C4zYCja7.cjs.map +1 -0
  204. package/dist/toStringArrayUnRecursive-DJGtPsFb.js +39 -0
  205. package/dist/toStringArrayUnRecursive-DJGtPsFb.js.map +1 -0
  206. package/dist/urls/index.cjs +130 -57
  207. package/dist/urls/index.cjs.map +1 -0
  208. package/dist/urls/index.d.cts +737 -0
  209. package/dist/urls/index.d.ts +699 -708
  210. package/dist/urls/index.js +122 -26
  211. package/dist/urls/index.js.map +1 -0
  212. package/package.json +203 -194
  213. package/dist/chunk-2AFQ33D3.cjs +0 -64
  214. package/dist/chunk-2CYDJVGM.js +0 -246
  215. package/dist/chunk-2MW4JDQ2.cjs +0 -598
  216. package/dist/chunk-2VTDXC3N.cjs +0 -1825
  217. package/dist/chunk-44XX2P34.js +0 -209
  218. package/dist/chunk-4YLBKLGS.cjs +0 -18
  219. package/dist/chunk-566CXQW7.cjs +0 -560
  220. package/dist/chunk-57EPKYID.cjs +0 -397
  221. package/dist/chunk-5MGEC3YG.js +0 -63
  222. package/dist/chunk-6EF52423.cjs +0 -249
  223. package/dist/chunk-6SCOKU3S.js +0 -109
  224. package/dist/chunk-6VUXD3CF.js +0 -119
  225. package/dist/chunk-7B76BSNK.cjs +0 -118
  226. package/dist/chunk-7Y6I2DSU.cjs +0 -101
  227. package/dist/chunk-A7S7E2EE.cjs +0 -308
  228. package/dist/chunk-AJZ6PMMZ.js +0 -16
  229. package/dist/chunk-AXGBL2IO.cjs +0 -251
  230. package/dist/chunk-B4TC6FBV.cjs +0 -678
  231. package/dist/chunk-BAV5T2E3.cjs +0 -15
  232. package/dist/chunk-BKIJBNIE.js +0 -21
  233. package/dist/chunk-BNIMTFK5.js +0 -59
  234. package/dist/chunk-BXW7YXB7.js +0 -1823
  235. package/dist/chunk-CFYZC4S6.js +0 -53
  236. package/dist/chunk-CSG4SCL3.js +0 -1587
  237. package/dist/chunk-CWQW7AKK.js +0 -676
  238. package/dist/chunk-DVMHRLKP.cjs +0 -16
  239. package/dist/chunk-EN7LVZBZ.js +0 -548
  240. package/dist/chunk-EV4Y7HCY.cjs +0 -26
  241. package/dist/chunk-F66VDYIZ.cjs +0 -18
  242. package/dist/chunk-FLJX37EL.cjs +0 -30
  243. package/dist/chunk-GKC3UDMC.cjs +0 -1623
  244. package/dist/chunk-H65I3GRZ.cjs +0 -106
  245. package/dist/chunk-HHYWB7VZ.js +0 -24
  246. package/dist/chunk-HNGGISFL.cjs +0 -65
  247. package/dist/chunk-HNSQAVSZ.cjs +0 -35
  248. package/dist/chunk-HSP6IWZK.js +0 -17
  249. package/dist/chunk-IDZS7J6T.js +0 -242
  250. package/dist/chunk-JS6R55VL.js +0 -302
  251. package/dist/chunk-JZVT5FK7.js +0 -232
  252. package/dist/chunk-KHO2SBNA.cjs +0 -16
  253. package/dist/chunk-KIDJCMNJ.js +0 -33
  254. package/dist/chunk-KOLEURVT.cjs +0 -38
  255. package/dist/chunk-L4V53MQK.cjs +0 -269
  256. package/dist/chunk-L5RDAVVH.js +0 -14
  257. package/dist/chunk-NODTV4F3.js +0 -16
  258. package/dist/chunk-NYK5K3V2.cjs +0 -211
  259. package/dist/chunk-ODUO3RTL.cjs +0 -113
  260. package/dist/chunk-ONZFBJVW.js +0 -14
  261. package/dist/chunk-PFXCTE37.js +0 -28
  262. package/dist/chunk-PPST7QAQ.js +0 -587
  263. package/dist/chunk-Q5IMYDFL.cjs +0 -33
  264. package/dist/chunk-QFFBIOJ4.js +0 -31
  265. package/dist/chunk-QNKGP5DY.js +0 -14
  266. package/dist/chunk-RRQHMOPE.cjs +0 -19
  267. package/dist/chunk-RU5OSRBU.js +0 -95
  268. package/dist/chunk-SDMPEJ4F.js +0 -35
  269. package/dist/chunk-SYNL5IKP.js +0 -115
  270. package/dist/chunk-TCDOWZQE.js +0 -16
  271. package/dist/chunk-TQPGXGKB.cjs +0 -123
  272. package/dist/chunk-TULOI4GL.js +0 -370
  273. package/dist/chunk-UBHCP4N5.cjs +0 -36
  274. package/dist/chunk-UCHF3M34.cjs +0 -56
  275. package/dist/chunk-UDA26MCU.cjs +0 -16
  276. package/dist/chunk-V3C4FYZL.cjs +0 -18
  277. package/dist/chunk-VAAHZFBF.js +0 -32
  278. package/dist/chunk-VJDDGRIK.cjs +0 -16
  279. package/dist/chunk-WVSPXFTY.js +0 -14
  280. package/dist/chunk-WYP76WXB.js +0 -101
  281. package/dist/chunk-YDE4ZBB7.cjs +0 -237
  282. package/dist/chunk-YKQEOO7C.cjs +0 -23
  283. package/dist/chunk-YSZC56SZ.js +0 -264
  284. package/dist/chunk-YWHHVDT4.js +0 -13
  285. package/dist/index.d.ts +0 -24
  286. package/dist/isPlainObject-DTJVV2Kf.d.ts +0 -536
@@ -1,240 +1,239 @@
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.1`
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
  type ExtractFileNameOptions = {
11
- /** ----------------------------------------------------------
12
- * * ***Indicates whether the input should be treated as a potential domain string.***
13
- * ----------------------------------------------------------
14
- *
15
- * - Behavior when `true`:
16
- * - The `domainName` option is required and must be a string and non-empty string.
17
- * If `domainName` is `undefined`, `null`, or an empty string, a `TypeError` will be thrown.
18
- * - The `domainName` is used to determine if the input is a domain-only string.
19
- * - Returns `null` if the input exactly matches `domainName` or any of its subdomains **and** has no additional path or filename.
20
- * - If the input does not match `domainName` or its subdomains, it will be processed as a regular file-like name.
21
- * - Supports **Unicode/IDN domains** (e.g., `tést-ドメイン.com`) and **ASCII filenames**, mixed safely.
22
- *
23
- * @default false
24
- */
25
- domainAware?: boolean;
26
- /** ----------------------------------------------------------
27
- * * ***The base domain name used for comparison (e.g., `"example.com"`).***
28
- * ----------------------------------------------------------
29
- *
30
- * - Required when `domainAware` is `true`.
31
- * - Helps differentiate between a domain-only input (ignored) and a standalone file-like string (processed normally).
32
- * - Must be a string and non-empty string. Invalid values (`undefined`, `null`, or empty string) will trigger a `TypeError`.
33
- * - Works with both **ASCII domains** and **Unicode/IDN domains**.
34
- * - Example:
35
- * ```ts *
36
- * // ASCII domain + ASCII filename
37
- * extractFileName("resume.com", {
38
- * domainAware: true,
39
- * domainName: "example.com"
40
- * });
41
- * // ➔ "resume"
42
- * extractFileName("example.com", {
43
- * domainAware: true,
44
- * domainName: "example.com"
45
- * });
46
- * // ➔ null (because input is treated as domain-name)
47
- *
48
- * // Unicode domain + ASCII filename
49
- * extractFileName("tést-ドメイン.com/file.txt", {
50
- * domainAware: true,
51
- * domainName: "ドメイン.com"
52
- * });
53
- * // ➔ "file"
54
- *
55
- * // Unicode domain + Unicode filename
56
- * extractFileName("tést-ドメイン.com/ファイル名.pdf", {
57
- * domainAware: true,
58
- * domainName: "ドメイン.com"
59
- * });
60
- * // ➔ "ファイル名"
61
- *
62
- * // Invalid domainName, will throw TypeError
63
- * extractFileName("resume.com", {
64
- * domainAware: true,
65
- * domainName: ""
66
- * });
67
- * // ➔ TypeError
68
- * ```
69
- *
70
- * @default undefined
71
- */
72
- domainName?: string;
11
+ /** ----------------------------------------------------------
12
+ * * ***Indicates whether the input should be treated as a potential domain string.***
13
+ * ----------------------------------------------------------
14
+ *
15
+ * - Behavior when `true`:
16
+ * - The `domainName` option is required and must be a string and non-empty string.
17
+ * If `domainName` is `undefined`, `null`, or an empty string, a `TypeError` will be thrown.
18
+ * - The `domainName` is used to determine if the input is a domain-only string.
19
+ * - Returns `null` if the input exactly matches `domainName` or any of its subdomains **and** has no additional path or filename.
20
+ * - If the input does not match `domainName` or its subdomains, it will be processed as a regular file-like name.
21
+ * - Supports **Unicode/IDN domains** (e.g., `tést-ドメイン.com`) and **ASCII filenames**, mixed safely.
22
+ *
23
+ * @default false
24
+ */
25
+ domainAware?: boolean;
26
+ /** ----------------------------------------------------------
27
+ * * ***The base domain name used for comparison (e.g., `"example.com"`).***
28
+ * ----------------------------------------------------------
29
+ *
30
+ * - Required when `domainAware` is `true`.
31
+ * - Helps differentiate between a domain-only input (ignored) and a standalone file-like string (processed normally).
32
+ * - Must be a string and non-empty string. Invalid values (`undefined`, `null`, or empty string) will trigger a `TypeError`.
33
+ * - Works with both **ASCII domains** and **Unicode/IDN domains**.
34
+ * - Example:
35
+ * ```ts *
36
+ * // ASCII domain + ASCII filename
37
+ * extractFileName("resume.com", {
38
+ * domainAware: true,
39
+ * domainName: "example.com"
40
+ * });
41
+ * // ➔ "resume"
42
+ * extractFileName("example.com", {
43
+ * domainAware: true,
44
+ * domainName: "example.com"
45
+ * });
46
+ * // ➔ null (because input is treated as domain-name)
47
+ *
48
+ * // Unicode domain + ASCII filename
49
+ * extractFileName("tést-ドメイン.com/file.txt", {
50
+ * domainAware: true,
51
+ * domainName: "ドメイン.com"
52
+ * });
53
+ * // ➔ "file"
54
+ *
55
+ * // Unicode domain + Unicode filename
56
+ * extractFileName("tést-ドメイン.com/ファイル名.pdf", {
57
+ * domainAware: true,
58
+ * domainName: "ドメイン.com"
59
+ * });
60
+ * // ➔ "ファイル名"
61
+ *
62
+ * // Invalid domainName, will throw TypeError
63
+ * extractFileName("resume.com", {
64
+ * domainAware: true,
65
+ * domainName: ""
66
+ * });
67
+ * // ➔ TypeError
68
+ * ```
69
+ *
70
+ * @default undefined
71
+ */
72
+ domainName?: string;
73
73
  };
74
74
  /** ----------------------------------------------------------
75
- * * ***Utility: `extractFileName`.***
76
- * ----------------------------------------------------------
77
- *
78
- * **Extracts the **clean base filename** from nearly any input string, including URLs, local file paths,
79
- * UNC paths, and plain filenames.**
80
- *
81
- * - It automatically safely handles extracts the **base file name** (without extension) from:
82
- * - File system paths (Windows, Unix, UNC)
83
- * - Protocols like http, https, ftp, file, mailto, or custom schemes
84
- * - Percent-encoded, Unicode, and emoji characters
85
- * - Dotfiles, reserved OS names, multi-part extensions
86
- * - Data URIs
87
- * - Optional domain-aware mode to ignore domain-only inputs
88
- * - Plain filenames
89
- *
90
- * - Full support for:
91
- * - Unicode, emoji, percent-encoding
92
- * - Dotfiles (e.g., `.env`, `.gitignore`)
93
- * - Reserved/OS-protected filenames:
94
- * `CON`, `PRN`, `AUX`, `NUL`, `COM1`–`COM9`, `LPT1`–`LPT9`
95
- * - Known multi-part extensions:
96
- * `.tar.gz`, `.tar.bz2`, `.tar.xz`, `.tar.lz`, `.tar.zst`, `.min.js`, `.js.map`, `.log.gz`, `.sql.gz`,
97
- * `.backup.tar`, etc.
98
- * - Data URIs (`data:[mime];base64,...` ➔ payload string)
99
- * - Domain-aware mode (optional)
100
- *
101
- * ----------------------------------------------------------
102
- * - **Behavior / Features**
103
- * - Strips **known extensions**, including multi-part and common double/triple extensions.
104
- * - Leaves unknown/custom extensions intact.
105
- * - Preserves **dotfiles** as-is (leading dot preserved).
106
- * - Returns `null` if:
107
- * - input is `null`, `undefined`, or not a string
108
- * - input is empty, whitespace-only, or only slashes
109
- * - input represents a folder path (trailing slash/backslash, drive/folder only)
110
- * - input is a **domain-only string** in domain-aware mode
111
- * - Normalizes Windows-style backslashes (`\`) internally as `/`.
112
- * - Supports UNC paths, mixed slashes, and Windows drive letters safely.
113
- * - Handles URLs:
114
- * - Ignores query strings (`?v=1.2.3`) and hash fragments (`#section`)
115
- * - Decodes percent-encoded filenames (`my%20file.txt` ➔ `my file.txt`)
116
- * - Supports protocol-relative URLs (`//cdn.example.com/file.jpg`)
117
- * - Supports uncommon/custom protocols (`ftp://`, `file://`, `mailto:`, etc.)
118
- * - Handles **multiple dots**, **trailing dots**, **triple or more extensions**
119
- * - Supports filenames on mixed Unicode/ASCII domains:
120
- * - Domain names can include Unicode characters (IDN / punycode)
121
- * - Filenames may contain ASCII, Unicode, and emoji characters
122
- * - Works correctly when domain is Unicode and filename is ASCII, or vice versa
123
- * - Supports extremely long filenames safely (up to OS limits)
124
- * - Domain-aware mode (`domainAware: true` + `domainName`):
125
- * - Parameter `domainName` must be a string and non-empty string; otherwise a TypeError is thrown.
126
- * - Returns `null` if input equals `domainName` or any subdomain with no file path
127
- * - Extracts filename normally if path/file exists on domain or other domain
128
- * - Safe in Node.js and browsers
129
- *
130
- * ----------------------------------------------------------
131
- * @param {string | null | undefined} input
132
- * URL, file path, or plain filename to extract from.
133
- *
134
- * @param {ExtractFileNameOptions} [options]
135
- * Optional configuration:
136
- * - `domainAware?: boolean` – treat input as a domain string. Requires `domainName` to be a string and non-empty string; otherwise, a TypeError is thrown.
137
- * - `domainName?: string` – base domain for comparison eg (`example.com`), required when `domainAware` is true.
138
- *
139
- * @returns {string | null}
140
- * - Base filename without known extensions
141
- * - Original filename if extension unknown
142
- * - `null` for invalid inputs, folder paths, or domain-only strings
143
- *
144
- * ----------------------------------------------------------
145
- * @example
146
- * ```ts
147
- * // Basic files
148
- * extractFileName("document.pdf"); // ➔ "document"
149
- * extractFileName("/files/archive.tar.gz"); // ➔ "archive"
150
- * extractFileName("C:\\path\\file.txt"); // ➔ "file"
151
- * extractFileName(".env"); // ➔ ".env"
152
- * extractFileName("folder/"); // ➔ null
153
- *
154
- * // Not a file
155
- * extractFileName("not-file"); // ➔ null
156
- * extractFileName("not-file/"); // ➔ null
157
- * extractFileName("/not-file/"); // ➔ null
158
- * extractFileName("/not-file"); // ➔ null
159
- *
160
- * // URLs with queries, hashes, protocols
161
- * extractFileName("https://example.com/file.txt?ver=1"); // ➔ "file"
162
- * extractFileName("https://example.com/archive.tar.gz#part"); // ➔ "archive"
163
- * extractFileName("//cdn.example.com/image.png"); // ➔ "image"
164
- *
165
- *
166
- * // Special protocol handling
167
- * extractFileName("tel:+6212345678"); // ➔ "+6212345678"
168
- * extractFileName("sms:+6212345678"); // ➔ "+6212345678"
169
- * extractFileName("mailto:user@domain.com"); // ➔ "user@domain"
170
- * extractFileName("data:text/plain;base64,SGVsbG8="); // ➔ "SGVsbG8="
171
- * extractFileName("mailto:resume.com"); // ➔ "resume"
172
- * extractFileName("ftp://example.com/image.jpeg"); // ➔ "image"
173
- * extractFileName("ftp://files.example.com/app.min.js"); // ➔ "app.min"
174
- * extractFileName("file:///C:/path/to/document.pdf"); // ➔ "document"
175
- * extractFileName("custom-scheme://example.com/video.mp4"); // ➔ "video"
176
- *
177
- * // Unicode & emoji
178
- * extractFileName("emoji-😊.png"); // ➔ "emoji-😊"
179
- * extractFileName("🔥project.tar.gz"); // ➔ "🔥project"
180
- *
181
- * // Dotfiles
182
- * extractFileName(".gitignore"); // ➔ ".gitignore"
183
- * extractFileName("/path/.bashrc"); // ➔ ".bashrc"
184
- *
185
- * // Mixed Unicode domain and ASCII filename
186
- * extractFileName("https://tést-ドメイン.com/file.txt"); // ➔ "file"
187
- * extractFileName("https://example.com/ファイル名.pdf"); // ➔ "ファイル名"
188
- * extractFileName("https://ドメイン例.com/emoji-🔥.png"); // ➔ "emoji-🔥"
189
- *
190
- * // Reserved filenames
191
- * extractFileName("CON"); // ➔ "CON"
192
- * extractFileName("NUL.txt"); // ➔ "NUL"
193
- *
194
- * // Domain-aware mode
195
- * extractFileName("example.com", {
196
- * domainAware: true,
197
- * domainName: "example.com"
198
- * });
199
- * // ➔ null
200
- * extractFileName("cdn.example.com", {
201
- * domainAware: true,
202
- * domainName: "example.com"
203
- * });
204
- * // ➔ null
205
- * extractFileName("resume.com", {
206
- * domainAware: true,
207
- * domainName: "example.com"
208
- * });
209
- * // ➔ "resume"
210
- * extractFileName("https://example.com/file.txt", {
211
- * domainAware: true,
212
- * domainName: "example.com"
213
- * });
214
- * // ➔ "file"
215
- *
216
- * // Windows & UNC paths
217
- * extractFileName("C:\\Users\\rzl\\Documents\\file.txt"); // ➔ "file"
218
- * extractFileName("\\\\SERVER\\share\\logs\\output.log"); // ➔ "output"
219
- * extractFileName("C:/Users\\rzl/mix\\test.pdf"); // ➔ "test"
220
- *
221
- * // Edge / extreme cases
222
- * extractFileName("https://example.com/my%20file%20name.txt"); // ➔ "my file name"
223
- * extractFileName("app.min.js.map"); // ➔ "app.min"
224
- * extractFileName("backup.tar.bak"); // ➔ "backup.tar.bak" (unknown double extension)
225
- * extractFileName("filename."); // ➔ "filename."
226
- * extractFileName("a".repeat(255) + ".txt"); // ➔ "a".repeat(255)
227
- * ```
228
- *
229
- * ----------------------------------------------------------
230
- * @note
231
- * - Robust: never throws, handles unusual inputs safely.
232
- * - Suitable for display, logging, or safe storage.
233
- * - Normalizes slashes consistently.
234
- * - Covers nearly all real-world filename, URL, path, data URI, and domain scenarios.
235
- * - Handles Windows UNC paths, mixed slashes, percent-encoded, Unicode/emoji filenames.
236
- * - Known multi-part extensions list can be extended without breaking functionality.
237
- */
75
+ * * ***Utility: `extractFileName`.***
76
+ * ----------------------------------------------------------
77
+ *
78
+ * **Extracts the **clean base filename** from nearly any input string, including URLs, local file paths,
79
+ * UNC paths, and plain filenames.**
80
+ *
81
+ * - It automatically safely handles extracts the **base file name** (without extension) from:
82
+ * - File system paths (Windows, Unix, UNC)
83
+ * - Protocols like http, https, ftp, file, mailto, or custom schemes
84
+ * - Percent-encoded, Unicode, and emoji characters
85
+ * - Dotfiles, reserved OS names, multi-part extensions
86
+ * - Data URIs
87
+ * - Optional domain-aware mode to ignore domain-only inputs
88
+ * - Plain filenames
89
+ *
90
+ * - Full support for:
91
+ * - Unicode, emoji, percent-encoding
92
+ * - Dotfiles (e.g., `.env`, `.gitignore`)
93
+ * - Reserved/OS-protected filenames:
94
+ * `CON`, `PRN`, `AUX`, `NUL`, `COM1`–`COM9`, `LPT1`–`LPT9`
95
+ * - Known multi-part extensions:
96
+ * `.tar.gz`, `.tar.bz2`, `.tar.xz`, `.tar.lz`, `.tar.zst`, `.min.js`, `.js.map`, `.log.gz`, `.sql.gz`,
97
+ * `.backup.tar`, etc.
98
+ * - Data URIs (`data:[mime];base64,...` ➔ payload string)
99
+ * - Domain-aware mode (optional)
100
+ *
101
+ * ----------------------------------------------------------
102
+ * - **Behavior / Features**
103
+ * - Strips **known extensions**, including multi-part and common double/triple extensions.
104
+ * - Leaves unknown/custom extensions intact.
105
+ * - Preserves **dotfiles** as-is (leading dot preserved).
106
+ * - Returns `null` if:
107
+ * - input is `null`, `undefined`, or not a string
108
+ * - input is empty, whitespace-only, or only slashes
109
+ * - input represents a folder path (trailing slash/backslash, drive/folder only)
110
+ * - input is a **domain-only string** in domain-aware mode
111
+ * - Normalizes Windows-style backslashes (`\`) internally as `/`.
112
+ * - Supports UNC paths, mixed slashes, and Windows drive letters safely.
113
+ * - Handles URLs:
114
+ * - Ignores query strings (`?v=1.2.3`) and hash fragments (`#section`)
115
+ * - Decodes percent-encoded filenames (`my%20file.txt` ➔ `my file.txt`)
116
+ * - Supports protocol-relative URLs (`//cdn.example.com/file.jpg`)
117
+ * - Supports uncommon/custom protocols (`ftp://`, `file://`, `mailto:`, etc.)
118
+ * - Handles **multiple dots**, **trailing dots**, **triple or more extensions**
119
+ * - Supports filenames on mixed Unicode/ASCII domains:
120
+ * - Domain names can include Unicode characters (IDN / punycode)
121
+ * - Filenames may contain ASCII, Unicode, and emoji characters
122
+ * - Works correctly when domain is Unicode and filename is ASCII, or vice versa
123
+ * - Supports extremely long filenames safely (up to OS limits)
124
+ * - Domain-aware mode (`domainAware: true` + `domainName`):
125
+ * - Parameter `domainName` must be a string and non-empty string; otherwise a TypeError is thrown.
126
+ * - Returns `null` if input equals `domainName` or any subdomain with no file path
127
+ * - Extracts filename normally if path/file exists on domain or other domain
128
+ * - Safe in Node.js and browsers
129
+ *
130
+ * ----------------------------------------------------------
131
+ * @param {string | null | undefined} input
132
+ * URL, file path, or plain filename to extract from.
133
+ *
134
+ * @param {ExtractFileNameOptions} [options]
135
+ * Optional configuration:
136
+ * - `domainAware?: boolean` – treat input as a domain string. Requires `domainName` to be a string and non-empty string; otherwise, a TypeError is thrown.
137
+ * - `domainName?: string` – base domain for comparison eg (`example.com`), required when `domainAware` is true.
138
+ *
139
+ * @returns {string | null}
140
+ * - Base filename without known extensions
141
+ * - Original filename if extension unknown
142
+ * - `null` for invalid inputs, folder paths, or domain-only strings
143
+ *
144
+ * ----------------------------------------------------------
145
+ * @example
146
+ * ```ts
147
+ * // Basic files
148
+ * extractFileName("document.pdf"); // ➔ "document"
149
+ * extractFileName("/files/archive.tar.gz"); // ➔ "archive"
150
+ * extractFileName("C:\\path\\file.txt"); // ➔ "file"
151
+ * extractFileName(".env"); // ➔ ".env"
152
+ * extractFileName("folder/"); // ➔ null
153
+ *
154
+ * // Not a file
155
+ * extractFileName("not-file"); // ➔ null
156
+ * extractFileName("not-file/"); // ➔ null
157
+ * extractFileName("/not-file/"); // ➔ null
158
+ * extractFileName("/not-file"); // ➔ null
159
+ *
160
+ * // URLs with queries, hashes, protocols
161
+ * extractFileName("https://example.com/file.txt?ver=1"); // ➔ "file"
162
+ * extractFileName("https://example.com/archive.tar.gz#part"); // ➔ "archive"
163
+ * extractFileName("//cdn.example.com/image.png"); // ➔ "image"
164
+ *
165
+ *
166
+ * // Special protocol handling
167
+ * extractFileName("tel:+6212345678"); // ➔ "+6212345678"
168
+ * extractFileName("sms:+6212345678"); // ➔ "+6212345678"
169
+ * extractFileName("mailto:user@domain.com"); // ➔ "user@domain"
170
+ * extractFileName("data:text/plain;base64,SGVsbG8="); // ➔ "SGVsbG8="
171
+ * extractFileName("mailto:resume.com"); // ➔ "resume"
172
+ * extractFileName("ftp://example.com/image.jpeg"); // ➔ "image"
173
+ * extractFileName("ftp://files.example.com/app.min.js"); // ➔ "app.min"
174
+ * extractFileName("file:///C:/path/to/document.pdf"); // ➔ "document"
175
+ * extractFileName("custom-scheme://example.com/video.mp4"); // ➔ "video"
176
+ *
177
+ * // Unicode & emoji
178
+ * extractFileName("emoji-😊.png"); // ➔ "emoji-😊"
179
+ * extractFileName("🔥project.tar.gz"); // ➔ "🔥project"
180
+ *
181
+ * // Dotfiles
182
+ * extractFileName(".gitignore"); // ➔ ".gitignore"
183
+ * extractFileName("/path/.bashrc"); // ➔ ".bashrc"
184
+ *
185
+ * // Mixed Unicode domain and ASCII filename
186
+ * extractFileName("https://tést-ドメイン.com/file.txt"); // ➔ "file"
187
+ * extractFileName("https://example.com/ファイル名.pdf"); // ➔ "ファイル名"
188
+ * extractFileName("https://ドメイン例.com/emoji-🔥.png"); // ➔ "emoji-🔥"
189
+ *
190
+ * // Reserved filenames
191
+ * extractFileName("CON"); // ➔ "CON"
192
+ * extractFileName("NUL.txt"); // ➔ "NUL"
193
+ *
194
+ * // Domain-aware mode
195
+ * extractFileName("example.com", {
196
+ * domainAware: true,
197
+ * domainName: "example.com"
198
+ * });
199
+ * // ➔ null
200
+ * extractFileName("cdn.example.com", {
201
+ * domainAware: true,
202
+ * domainName: "example.com"
203
+ * });
204
+ * // ➔ null
205
+ * extractFileName("resume.com", {
206
+ * domainAware: true,
207
+ * domainName: "example.com"
208
+ * });
209
+ * // ➔ "resume"
210
+ * extractFileName("https://example.com/file.txt", {
211
+ * domainAware: true,
212
+ * domainName: "example.com"
213
+ * });
214
+ * // ➔ "file"
215
+ *
216
+ * // Windows & UNC paths
217
+ * extractFileName("C:\\Users\\rzl\\Documents\\file.txt"); // ➔ "file"
218
+ * extractFileName("\\\\SERVER\\share\\logs\\output.log"); // ➔ "output"
219
+ * extractFileName("C:/Users\\rzl/mix\\test.pdf"); // ➔ "test"
220
+ *
221
+ * // Edge / extreme cases
222
+ * extractFileName("https://example.com/my%20file%20name.txt"); // ➔ "my file name"
223
+ * extractFileName("app.min.js.map"); // ➔ "app.min"
224
+ * extractFileName("backup.tar.bak"); // ➔ "backup.tar.bak" (unknown double extension)
225
+ * extractFileName("filename."); // ➔ "filename."
226
+ * extractFileName("a".repeat(255) + ".txt"); // ➔ "a".repeat(255)
227
+ * ```
228
+ *
229
+ * ----------------------------------------------------------
230
+ * @note
231
+ * - Robust: never throws, handles unusual inputs safely.
232
+ * - Suitable for display, logging, or safe storage.
233
+ * - Normalizes slashes consistently.
234
+ * - Covers nearly all real-world filename, URL, path, data URI, and domain scenarios.
235
+ * - Handles Windows UNC paths, mixed slashes, percent-encoded, Unicode/emoji filenames.
236
+ * - Known multi-part extensions list can be extended without breaking functionality.
237
+ */
238
238
  declare const extractFileName: (input?: string | null, options?: ExtractFileNameOptions) => string | null;
239
-
240
- export { type ExtractFileNameOptions, extractFileName };
239
+ export { ExtractFileNameOptions, extractFileName };
@@ -1,13 +1,11 @@
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
- */
10
- export { extractFileName } from '../chunk-CWQW7AKK.js';
11
- import '../chunk-44XX2P34.js';
12
- import '../chunk-BKIJBNIE.js';
13
- import '../chunk-CSG4SCL3.js';
2
+ * ========================================================================
3
+ * @rzl-zone/utils-js
4
+ * ------------------------------------------------------------------------
5
+ * Version: `3.12.1-beta.1`
6
+ * Author: `Rizalvin Dwiky <rizalvindwiky@gmail.com>`
7
+ * Repository: `https://github.com/rzl-zone/rzl-zone/tree/main/packages/utils-js`
8
+ * ========================================================================
9
+ */
10
+ import { t as extractFileName } from "../parsers-BSBPgvsq.js";
11
+ export { extractFileName };