@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.
- package/{LICENSE.md โ LICENSE} +3 -3
- package/README.md +62 -89
- package/dist/.references/index.d.cts +25 -0
- package/dist/.references/index.d.ts +25 -0
- package/dist/assertIsArray-BChqwPiP.cjs +26 -0
- package/dist/assertIsArray-BChqwPiP.cjs.map +1 -0
- package/dist/assertIsArray-BfAbIUfa.js +20 -0
- package/dist/assertIsArray-BfAbIUfa.js.map +1 -0
- package/dist/assertIsBoolean-BlBct0Fc.js +1073 -0
- package/dist/assertIsBoolean-BlBct0Fc.js.map +1 -0
- package/dist/assertIsBoolean-DozdtbNi.cjs +1283 -0
- package/dist/assertIsBoolean-DozdtbNi.cjs.map +1 -0
- package/dist/assertIsString-Bvk7bUL7.cjs +26 -0
- package/dist/assertIsString-Bvk7bUL7.cjs.map +1 -0
- package/dist/assertIsString-DqV9NwbI.js +20 -0
- package/dist/assertIsString-DqV9NwbI.js.map +1 -0
- package/dist/assertions/index.cjs +37 -40
- package/dist/assertions/index.cjs.map +1 -0
- package/dist/assertions/index.d.cts +12 -0
- package/dist/assertions/index.d.ts +10 -824
- package/dist/assertions/index.js +30 -13
- package/dist/assertions/index.js.map +1 -0
- package/dist/conversions/index.cjs +34 -103
- package/dist/conversions/index.d.cts +12 -0
- package/dist/conversions/index.d.ts +10 -1791
- package/dist/conversions/index.js +14 -24
- package/dist/conversions-CBs8-REq.cjs +448 -0
- package/dist/conversions-CBs8-REq.cjs.map +1 -0
- package/dist/conversions-EMJa3g-D.js +382 -0
- package/dist/conversions-EMJa3g-D.js.map +1 -0
- package/dist/events/index.cjs +55 -31
- package/dist/events/index.cjs.map +1 -0
- package/dist/events/index.d.cts +174 -0
- package/dist/events/index.d.ts +31 -35
- package/dist/events/index.js +50 -12
- package/dist/events/index.js.map +1 -0
- package/dist/formatEnvPort-DpIXzPAZ.js +159 -0
- package/dist/formatEnvPort-DpIXzPAZ.js.map +1 -0
- package/dist/formatEnvPort-hHNvOim-.cjs +171 -0
- package/dist/formatEnvPort-hHNvOim-.cjs.map +1 -0
- package/dist/formatters/index.cjs +21 -61
- package/dist/formatters/index.d.cts +12 -0
- package/dist/formatters/index.d.ts +10 -2152
- package/dist/formatters/index.js +10 -18
- package/dist/formatters-QcZO_Cpx.js +367 -0
- package/dist/formatters-QcZO_Cpx.js.map +1 -0
- package/dist/formatters-lAYgA11L.cjs +427 -0
- package/dist/formatters-lAYgA11L.cjs.map +1 -0
- package/dist/generators/index.cjs +161 -41
- package/dist/generators/index.cjs.map +1 -0
- package/dist/generators/index.d.cts +12 -0
- package/dist/generators/index.d.ts +10 -338
- package/dist/generators/index.js +154 -14
- package/dist/generators/index.js.map +1 -0
- package/dist/index-26W7ItWx.d.ts +760 -0
- package/dist/index-BPPQjAfs.d.cts +2359 -0
- package/dist/index-BXjlgBLz.d.cts +2139 -0
- package/dist/index-B_Wwo91H.d.ts +2359 -0
- package/dist/index-CpufydcI.d.cts +704 -0
- package/dist/index-Czc4O526.d.ts +333 -0
- package/dist/index-DPs1_p5G.d.cts +760 -0
- package/dist/index-DRpOyBSC.d.ts +1703 -0
- package/dist/index-DWWvtHUn.d.cts +822 -0
- package/dist/index-DnM0LD0n.d.cts +333 -0
- package/dist/index-GUZ9fK6T.d.ts +2139 -0
- package/dist/index-I4fAzwXV.d.ts +704 -0
- package/dist/index-JDrOl_19.d.ts +822 -0
- package/dist/index-b66P49Qe.d.cts +1703 -0
- package/dist/isBigInt-B1cijjqm.cjs +20 -0
- package/dist/isBigInt-B1cijjqm.cjs.map +1 -0
- package/dist/isBigInt-C0bN0Rhu.js +14 -0
- package/dist/isBigInt-C0bN0Rhu.js.map +1 -0
- package/dist/isEmptyObject-DI42NEo0.cjs +37 -0
- package/dist/isEmptyObject-DI42NEo0.cjs.map +1 -0
- package/dist/isEmptyObject-DeLVIJpl.js +25 -0
- package/dist/isEmptyObject-DeLVIJpl.js.map +1 -0
- package/dist/isEmptyString-BTUWYTbw.js +15 -0
- package/dist/isEmptyString-BTUWYTbw.js.map +1 -0
- package/dist/isEmptyString-CCK3bP74.cjs +21 -0
- package/dist/isEmptyString-CCK3bP74.cjs.map +1 -0
- package/dist/isEmptyValue-DMSMFTU8.cjs +30 -0
- package/dist/isEmptyValue-DMSMFTU8.cjs.map +1 -0
- package/dist/isEmptyValue-fjnfQnt5.js +24 -0
- package/dist/isEmptyValue-fjnfQnt5.js.map +1 -0
- package/dist/isEqual-B1fRgEuU.cjs +111 -0
- package/dist/isEqual-B1fRgEuU.cjs.map +1 -0
- package/dist/isEqual-DhyP8fB_.js +87 -0
- package/dist/isEqual-DhyP8fB_.js.map +1 -0
- package/dist/isFinite-BYMOo0os.js +15 -0
- package/dist/isFinite-BYMOo0os.js.map +1 -0
- package/dist/isFinite-sFkps2TY.cjs +21 -0
- package/dist/isFinite-sFkps2TY.cjs.map +1 -0
- package/dist/isInteger-DS9V7l_f.js +14 -0
- package/dist/isInteger-DS9V7l_f.js.map +1 -0
- package/dist/isInteger-FTCthMre.cjs +20 -0
- package/dist/isInteger-FTCthMre.cjs.map +1 -0
- package/dist/isPlainObject-DcFGh3_5.d.ts +530 -0
- package/dist/isPlainObject-doTI11Ib.d.cts +530 -0
- package/dist/isServer-D1TXfOs3.js +14 -0
- package/dist/isServer-D1TXfOs3.js.map +1 -0
- package/dist/isServer-q-QLFCqE.cjs +20 -0
- package/dist/isServer-q-QLFCqE.cjs.map +1 -0
- package/dist/isTypedArray-47R0wdrc.js +31 -0
- package/dist/isTypedArray-47R0wdrc.js.map +1 -0
- package/dist/isTypedArray-DiCoqffZ.cjs +43 -0
- package/dist/isTypedArray-DiCoqffZ.cjs.map +1 -0
- package/dist/isURL-CQiowFq2.js +14 -0
- package/dist/isURL-CQiowFq2.js.map +1 -0
- package/dist/isURL-WZypXsax.cjs +20 -0
- package/dist/isURL-WZypXsax.cjs.map +1 -0
- package/dist/isValidDomain-BSXshgkC.cjs +1788 -0
- package/dist/isValidDomain-BSXshgkC.cjs.map +1 -0
- package/dist/isValidDomain-DwA2EN79.js +1782 -0
- package/dist/isValidDomain-DwA2EN79.js.map +1 -0
- package/dist/next/index.cjs +119 -214
- package/dist/next/index.cjs.map +1 -0
- package/dist/next/index.d.cts +226 -0
- package/dist/next/index.d.ts +26 -31
- package/dist/next/index.js +117 -212
- package/dist/next/index.js.map +1 -0
- package/dist/next/server/index.cjs +25 -40
- package/dist/next/server/index.cjs.map +1 -0
- package/dist/next/server/index.d.cts +39 -0
- package/dist/next/server/index.d.ts +9 -10
- package/dist/next/server/index.js +23 -38
- package/dist/next/server/index.js.map +1 -0
- package/dist/noop-B2mTBhW-.cjs +18 -0
- package/dist/noop-B2mTBhW-.cjs.map +1 -0
- package/dist/noop-BzktGBVz.js +12 -0
- package/dist/noop-BzktGBVz.js.map +1 -0
- package/dist/normalizeSpaces-DQHR3Tlr.cjs +29 -0
- package/dist/normalizeSpaces-DQHR3Tlr.cjs.map +1 -0
- package/dist/normalizeSpaces-WS_iERJk.js +23 -0
- package/dist/normalizeSpaces-WS_iERJk.js.map +1 -0
- package/dist/normalizeString-2WLth_Gj.js +15 -0
- package/dist/normalizeString-2WLth_Gj.js.map +1 -0
- package/dist/normalizeString-D8euBcRD.cjs +21 -0
- package/dist/normalizeString-D8euBcRD.cjs.map +1 -0
- package/dist/operations/index.cjs +65 -32
- package/dist/operations/index.cjs.map +1 -0
- package/dist/operations/index.d.cts +139 -0
- package/dist/operations/index.d.ts +10 -15
- package/dist/operations/index.js +61 -17
- package/dist/operations/index.js.map +1 -0
- package/dist/parsers/index.cjs +12 -19
- package/dist/parsers/index.d.cts +239 -0
- package/dist/parsers/index.d.ts +71 -72
- package/dist/parsers/index.js +10 -12
- package/dist/parsers-DXtpsDyj.cjs +649 -0
- package/dist/parsers-DXtpsDyj.cjs.map +1 -0
- package/dist/parsers-Dpuq-V4u.js +643 -0
- package/dist/parsers-Dpuq-V4u.js.map +1 -0
- package/dist/parsing-B43x1sxn.js +50 -0
- package/dist/parsing-B43x1sxn.js.map +1 -0
- package/dist/parsing-lRoxn1Nz.cjs +56 -0
- package/dist/parsing-lRoxn1Nz.cjs.map +1 -0
- package/dist/predicates/index.cjs +91 -296
- package/dist/predicates/index.d.cts +13 -0
- package/dist/predicates/index.d.ts +12 -2482
- package/dist/predicates/index.js +23 -25
- package/dist/predicates-DiaYA7Ps.cjs +413 -0
- package/dist/predicates-DiaYA7Ps.cjs.map +1 -0
- package/dist/predicates-gNepszvo.js +257 -0
- package/dist/predicates-gNepszvo.js.map +1 -0
- package/dist/promises/index.cjs +76 -24
- package/dist/promises/index.cjs.map +1 -0
- package/dist/promises/index.d.cts +123 -0
- package/dist/promises/index.d.ts +28 -31
- package/dist/promises/index.js +73 -13
- package/dist/promises/index.js.map +1 -0
- package/dist/punyCode-CTWXVVFo.cjs +185 -0
- package/dist/punyCode-CTWXVVFo.cjs.map +1 -0
- package/dist/punyCode-hmiFzLWT.js +179 -0
- package/dist/punyCode-hmiFzLWT.js.map +1 -0
- package/dist/removeSpaces-BE8lfh-4.js +19 -0
- package/dist/removeSpaces-BE8lfh-4.js.map +1 -0
- package/dist/removeSpaces-DRRxNWlb.cjs +25 -0
- package/dist/removeSpaces-DRRxNWlb.cjs.map +1 -0
- package/dist/safeJsonParse-BBnQElk8.cjs +208 -0
- package/dist/safeJsonParse-BBnQElk8.cjs.map +1 -0
- package/dist/safeJsonParse-CXruaP0p.js +184 -0
- package/dist/safeJsonParse-CXruaP0p.js.map +1 -0
- package/dist/safeStableStringify-BNh3D0K0.js +88 -0
- package/dist/safeStableStringify-BNh3D0K0.js.map +1 -0
- package/dist/safeStableStringify-Cc62pfRp.cjs +106 -0
- package/dist/safeStableStringify-Cc62pfRp.cjs.map +1 -0
- package/dist/strings/index.cjs +76 -81
- package/dist/strings/index.cjs.map +1 -0
- package/dist/strings/index.d.cts +12 -0
- package/dist/strings/index.d.ts +10 -775
- package/dist/strings/index.js +59 -14
- package/dist/strings/index.js.map +1 -0
- package/dist/tailwind/index.cjs +19 -47
- package/dist/tailwind/index.d.cts +12 -0
- package/dist/tailwind/index.d.ts +11 -712
- package/dist/tailwind/index.js +10 -12
- package/dist/tailwind-DJ4cmLUw.cjs +247 -0
- package/dist/tailwind-DJ4cmLUw.cjs.map +1 -0
- package/dist/tailwind-IJvOdkZp.js +199 -0
- package/dist/tailwind-IJvOdkZp.js.map +1 -0
- package/dist/toStringArrayUnRecursive-CFs0jTEg.js +39 -0
- package/dist/toStringArrayUnRecursive-CFs0jTEg.js.map +1 -0
- package/dist/toStringArrayUnRecursive-xUaU8Ot9.cjs +51 -0
- package/dist/toStringArrayUnRecursive-xUaU8Ot9.cjs.map +1 -0
- package/dist/urls/index.cjs +129 -57
- package/dist/urls/index.cjs.map +1 -0
- package/dist/urls/index.d.cts +740 -0
- package/dist/urls/index.d.ts +218 -224
- package/dist/urls/index.js +121 -26
- package/dist/urls/index.js.map +1 -0
- package/package.json +203 -194
- package/dist/chunk-2AFQ33D3.cjs +0 -64
- package/dist/chunk-2CYDJVGM.js +0 -246
- package/dist/chunk-2MW4JDQ2.cjs +0 -598
- package/dist/chunk-2VTDXC3N.cjs +0 -1825
- package/dist/chunk-44XX2P34.js +0 -209
- package/dist/chunk-4YLBKLGS.cjs +0 -18
- package/dist/chunk-566CXQW7.cjs +0 -560
- package/dist/chunk-57EPKYID.cjs +0 -397
- package/dist/chunk-5MGEC3YG.js +0 -63
- package/dist/chunk-6EF52423.cjs +0 -249
- package/dist/chunk-6SCOKU3S.js +0 -109
- package/dist/chunk-6VUXD3CF.js +0 -119
- package/dist/chunk-7B76BSNK.cjs +0 -118
- package/dist/chunk-7Y6I2DSU.cjs +0 -101
- package/dist/chunk-A7S7E2EE.cjs +0 -308
- package/dist/chunk-AJZ6PMMZ.js +0 -16
- package/dist/chunk-AXGBL2IO.cjs +0 -251
- package/dist/chunk-B4TC6FBV.cjs +0 -678
- package/dist/chunk-BAV5T2E3.cjs +0 -15
- package/dist/chunk-BKIJBNIE.js +0 -21
- package/dist/chunk-BNIMTFK5.js +0 -59
- package/dist/chunk-BXW7YXB7.js +0 -1823
- package/dist/chunk-CFYZC4S6.js +0 -53
- package/dist/chunk-CSG4SCL3.js +0 -1587
- package/dist/chunk-CWQW7AKK.js +0 -676
- package/dist/chunk-DVMHRLKP.cjs +0 -16
- package/dist/chunk-EN7LVZBZ.js +0 -548
- package/dist/chunk-EV4Y7HCY.cjs +0 -26
- package/dist/chunk-F66VDYIZ.cjs +0 -18
- package/dist/chunk-FLJX37EL.cjs +0 -30
- package/dist/chunk-GKC3UDMC.cjs +0 -1623
- package/dist/chunk-H65I3GRZ.cjs +0 -106
- package/dist/chunk-HHYWB7VZ.js +0 -24
- package/dist/chunk-HNGGISFL.cjs +0 -65
- package/dist/chunk-HNSQAVSZ.cjs +0 -35
- package/dist/chunk-HSP6IWZK.js +0 -17
- package/dist/chunk-IDZS7J6T.js +0 -242
- package/dist/chunk-JS6R55VL.js +0 -302
- package/dist/chunk-JZVT5FK7.js +0 -232
- package/dist/chunk-KHO2SBNA.cjs +0 -16
- package/dist/chunk-KIDJCMNJ.js +0 -33
- package/dist/chunk-KOLEURVT.cjs +0 -38
- package/dist/chunk-L4V53MQK.cjs +0 -269
- package/dist/chunk-L5RDAVVH.js +0 -14
- package/dist/chunk-NODTV4F3.js +0 -16
- package/dist/chunk-NYK5K3V2.cjs +0 -211
- package/dist/chunk-ODUO3RTL.cjs +0 -113
- package/dist/chunk-ONZFBJVW.js +0 -14
- package/dist/chunk-PFXCTE37.js +0 -28
- package/dist/chunk-PPST7QAQ.js +0 -587
- package/dist/chunk-Q5IMYDFL.cjs +0 -33
- package/dist/chunk-QFFBIOJ4.js +0 -31
- package/dist/chunk-QNKGP5DY.js +0 -14
- package/dist/chunk-RRQHMOPE.cjs +0 -19
- package/dist/chunk-RU5OSRBU.js +0 -95
- package/dist/chunk-SDMPEJ4F.js +0 -35
- package/dist/chunk-SYNL5IKP.js +0 -115
- package/dist/chunk-TCDOWZQE.js +0 -16
- package/dist/chunk-TQPGXGKB.cjs +0 -123
- package/dist/chunk-TULOI4GL.js +0 -370
- package/dist/chunk-UBHCP4N5.cjs +0 -36
- package/dist/chunk-UCHF3M34.cjs +0 -56
- package/dist/chunk-UDA26MCU.cjs +0 -16
- package/dist/chunk-V3C4FYZL.cjs +0 -18
- package/dist/chunk-VAAHZFBF.js +0 -32
- package/dist/chunk-VJDDGRIK.cjs +0 -16
- package/dist/chunk-WVSPXFTY.js +0 -14
- package/dist/chunk-WYP76WXB.js +0 -101
- package/dist/chunk-YDE4ZBB7.cjs +0 -237
- package/dist/chunk-YKQEOO7C.cjs +0 -23
- package/dist/chunk-YSZC56SZ.js +0 -264
- package/dist/chunk-YWHHVDT4.js +0 -13
- package/dist/index.d.ts +0 -24
- package/dist/isPlainObject-DTJVV2Kf.d.ts +0 -536
- package/dist/rzl-utils.global.js +0 -10
package/dist/urls/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
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
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
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
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
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
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
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
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
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
|
-
* * ***
|
|
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 -
|
|
718
|
-
* @returns
|
|
666
|
+
* @param input - The UCS-2 string to decode.
|
|
667
|
+
* @returns Array of Unicode code points.
|
|
719
668
|
* @example
|
|
720
|
-
* punycodeUtilsJS.
|
|
721
|
-
* // โ
|
|
669
|
+
* punycodeUtilsJS.ucs2.decode("๐");
|
|
670
|
+
* // โ [66376]
|
|
722
671
|
*/
|
|
723
|
-
|
|
672
|
+
decode: (input: string) => number[];
|
|
724
673
|
/** ---------------------------------------------------------
|
|
725
|
-
* * ***
|
|
674
|
+
* * ***Encodes an array of Unicode code points to a UCS-2 string.***
|
|
726
675
|
* ---------------------------------------------------------
|
|
727
676
|
*
|
|
728
|
-
* @param
|
|
729
|
-
* @returns
|
|
677
|
+
* @param points - Array of Unicode code points.
|
|
678
|
+
* @returns Encoded string.
|
|
730
679
|
* @example
|
|
731
|
-
* punycodeUtilsJS.
|
|
732
|
-
* // โ "
|
|
680
|
+
* punycodeUtilsJS.ucs2.encode([66376]);
|
|
681
|
+
* // โ "๐"
|
|
733
682
|
*/
|
|
734
|
-
|
|
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 {
|
|
739
|
+
/** Export individual functions */
|
|
740
|
+
export { QueryParamPairs, constructURL, extractURLs, formatEnvPort, getFirstPrefixPathname, getPrefixPathname, normalizePathname, punycodeUtilsJS };
|