@fluixi/utils 1.0.0-alpha.100

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 (364) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +68 -0
  3. package/dist/index.cjs +2858 -0
  4. package/dist/index.d.ts +2 -0
  5. package/dist/index.d.ts.map +1 -0
  6. package/dist/index.js +1 -0
  7. package/dist/index.mjs +2838 -0
  8. package/dist/lib/array/advanced.cjs +2227 -0
  9. package/dist/lib/array/advanced.d.ts +1116 -0
  10. package/dist/lib/array/advanced.d.ts.map +1 -0
  11. package/dist/lib/array/advanced.js +2429 -0
  12. package/dist/lib/array/advanced.mjs +2204 -0
  13. package/dist/lib/array/array.cjs +57 -0
  14. package/dist/lib/array/array.d.ts +6 -0
  15. package/dist/lib/array/array.d.ts.map +1 -0
  16. package/dist/lib/array/array.js +31 -0
  17. package/dist/lib/array/array.mjs +36 -0
  18. package/dist/lib/array/index.cjs +2344 -0
  19. package/dist/lib/array/index.d.ts +4 -0
  20. package/dist/lib/array/index.d.ts.map +1 -0
  21. package/dist/lib/array/index.js +3 -0
  22. package/dist/lib/array/index.mjs +2322 -0
  23. package/dist/lib/array/utils.cjs +103 -0
  24. package/dist/lib/array/utils.d.ts +100 -0
  25. package/dist/lib/array/utils.d.ts.map +1 -0
  26. package/dist/lib/array/utils.js +165 -0
  27. package/dist/lib/array/utils.mjs +82 -0
  28. package/dist/lib/color/color.cjs +2190 -0
  29. package/dist/lib/color/color.d.ts +366 -0
  30. package/dist/lib/color/color.d.ts.map +1 -0
  31. package/dist/lib/color/color.js +722 -0
  32. package/dist/lib/color/color.mjs +2167 -0
  33. package/dist/lib/color/constants.cjs +380 -0
  34. package/dist/lib/color/constants.d.ts +361 -0
  35. package/dist/lib/color/constants.d.ts.map +1 -0
  36. package/dist/lib/color/constants.js +358 -0
  37. package/dist/lib/color/constants.mjs +359 -0
  38. package/dist/lib/color/conversions.cjs +629 -0
  39. package/dist/lib/color/conversions.d.ts +166 -0
  40. package/dist/lib/color/conversions.d.ts.map +1 -0
  41. package/dist/lib/color/conversions.js +766 -0
  42. package/dist/lib/color/conversions.mjs +608 -0
  43. package/dist/lib/color/helpers.cjs +2534 -0
  44. package/dist/lib/color/helpers.d.ts +75 -0
  45. package/dist/lib/color/helpers.d.ts.map +1 -0
  46. package/dist/lib/color/helpers.js +419 -0
  47. package/dist/lib/color/helpers.mjs +2511 -0
  48. package/dist/lib/color/index.cjs +2641 -0
  49. package/dist/lib/color/index.d.ts +12 -0
  50. package/dist/lib/color/index.d.ts.map +1 -0
  51. package/dist/lib/color/index.js +15 -0
  52. package/dist/lib/color/index.mjs +2619 -0
  53. package/dist/lib/color/types.cjs +18 -0
  54. package/dist/lib/color/types.d.ts +179 -0
  55. package/dist/lib/color/types.d.ts.map +1 -0
  56. package/dist/lib/color/types.js +1 -0
  57. package/dist/lib/color/types.mjs +0 -0
  58. package/dist/lib/color/utils.cjs +962 -0
  59. package/dist/lib/color/utils.d.ts +199 -0
  60. package/dist/lib/color/utils.d.ts.map +1 -0
  61. package/dist/lib/color/utils.js +858 -0
  62. package/dist/lib/color/utils.mjs +939 -0
  63. package/dist/lib/compare/comparators.cjs +171 -0
  64. package/dist/lib/compare/comparators.d.ts +65 -0
  65. package/dist/lib/compare/comparators.d.ts.map +1 -0
  66. package/dist/lib/compare/comparators.js +210 -0
  67. package/dist/lib/compare/comparators.mjs +150 -0
  68. package/dist/lib/compare/index.cjs +172 -0
  69. package/dist/lib/compare/index.d.ts +2 -0
  70. package/dist/lib/compare/index.d.ts.map +1 -0
  71. package/dist/lib/compare/index.js +1 -0
  72. package/dist/lib/compare/index.mjs +152 -0
  73. package/dist/lib/cookie/codec.cjs +72 -0
  74. package/dist/lib/cookie/codec.d.ts +22 -0
  75. package/dist/lib/cookie/codec.d.ts.map +1 -0
  76. package/dist/lib/cookie/codec.js +67 -0
  77. package/dist/lib/cookie/codec.mjs +51 -0
  78. package/dist/lib/cookie/index.cjs +75 -0
  79. package/dist/lib/cookie/index.d.ts +2 -0
  80. package/dist/lib/cookie/index.d.ts.map +1 -0
  81. package/dist/lib/cookie/index.js +1 -0
  82. package/dist/lib/cookie/index.mjs +53 -0
  83. package/dist/lib/crypto/hash.cjs +83 -0
  84. package/dist/lib/crypto/hash.d.ts +6 -0
  85. package/dist/lib/crypto/hash.d.ts.map +1 -0
  86. package/dist/lib/crypto/hash.js +53 -0
  87. package/dist/lib/crypto/hash.mjs +62 -0
  88. package/dist/lib/crypto/index.cjs +85 -0
  89. package/dist/lib/crypto/index.d.ts +2 -0
  90. package/dist/lib/crypto/index.d.ts.map +1 -0
  91. package/dist/lib/crypto/index.js +1 -0
  92. package/dist/lib/crypto/index.mjs +62 -0
  93. package/dist/lib/dom/events.cjs +40 -0
  94. package/dist/lib/dom/events.d.ts +159 -0
  95. package/dist/lib/dom/events.d.ts.map +1 -0
  96. package/dist/lib/dom/events.js +50 -0
  97. package/dist/lib/dom/events.mjs +19 -0
  98. package/dist/lib/dom/index.cjs +78 -0
  99. package/dist/lib/dom/index.d.ts +3 -0
  100. package/dist/lib/dom/index.d.ts.map +1 -0
  101. package/dist/lib/dom/index.js +2 -0
  102. package/dist/lib/dom/index.mjs +56 -0
  103. package/dist/lib/dom/utils.cjs +57 -0
  104. package/dist/lib/dom/utils.d.ts +6 -0
  105. package/dist/lib/dom/utils.d.ts.map +1 -0
  106. package/dist/lib/dom/utils.js +37 -0
  107. package/dist/lib/dom/utils.mjs +36 -0
  108. package/dist/lib/functions/functions.cjs +366 -0
  109. package/dist/lib/functions/functions.d.ts +329 -0
  110. package/dist/lib/functions/functions.d.ts.map +1 -0
  111. package/dist/lib/functions/functions.js +585 -0
  112. package/dist/lib/functions/functions.mjs +345 -0
  113. package/dist/lib/functions/index.cjs +369 -0
  114. package/dist/lib/functions/index.d.ts +3 -0
  115. package/dist/lib/functions/index.d.ts.map +1 -0
  116. package/dist/lib/functions/index.js +1 -0
  117. package/dist/lib/functions/index.mjs +347 -0
  118. package/dist/lib/functions/types.cjs +18 -0
  119. package/dist/lib/functions/types.d.ts +2 -0
  120. package/dist/lib/functions/types.d.ts.map +1 -0
  121. package/dist/lib/functions/types.js +1 -0
  122. package/dist/lib/functions/types.mjs +0 -0
  123. package/dist/lib/helpers.cjs +78 -0
  124. package/dist/lib/helpers.d.ts +13 -0
  125. package/dist/lib/helpers.d.ts.map +1 -0
  126. package/dist/lib/helpers.js +66 -0
  127. package/dist/lib/helpers.mjs +59 -0
  128. package/dist/lib/index.cjs +2857 -0
  129. package/dist/lib/index.d.ts +6 -0
  130. package/dist/lib/index.d.ts.map +1 -0
  131. package/dist/lib/index.js +8 -0
  132. package/dist/lib/index.mjs +2836 -0
  133. package/dist/lib/maths/constants.cjs +70 -0
  134. package/dist/lib/maths/constants.d.ts +84 -0
  135. package/dist/lib/maths/constants.d.ts.map +1 -0
  136. package/dist/lib/maths/constants.js +79 -0
  137. package/dist/lib/maths/constants.mjs +50 -0
  138. package/dist/lib/maths/fn/advanced.cjs +231 -0
  139. package/dist/lib/maths/fn/advanced.d.ts +149 -0
  140. package/dist/lib/maths/fn/advanced.d.ts.map +1 -0
  141. package/dist/lib/maths/fn/advanced.js +264 -0
  142. package/dist/lib/maths/fn/advanced.mjs +208 -0
  143. package/dist/lib/maths/fn/basic.cjs +212 -0
  144. package/dist/lib/maths/fn/basic.d.ts +182 -0
  145. package/dist/lib/maths/fn/basic.d.ts.map +1 -0
  146. package/dist/lib/maths/fn/basic.js +343 -0
  147. package/dist/lib/maths/fn/basic.mjs +191 -0
  148. package/dist/lib/maths/fn/complex.cjs +268 -0
  149. package/dist/lib/maths/fn/complex.d.ts +153 -0
  150. package/dist/lib/maths/fn/complex.d.ts.map +1 -0
  151. package/dist/lib/maths/fn/complex.js +383 -0
  152. package/dist/lib/maths/fn/complex.mjs +247 -0
  153. package/dist/lib/maths/fn/index.cjs +877 -0
  154. package/dist/lib/maths/fn/index.d.ts +10 -0
  155. package/dist/lib/maths/fn/index.d.ts.map +1 -0
  156. package/dist/lib/maths/fn/index.js +9 -0
  157. package/dist/lib/maths/fn/index.mjs +855 -0
  158. package/dist/lib/maths/fn/trigo.cjs +179 -0
  159. package/dist/lib/maths/fn/trigo.d.ts +147 -0
  160. package/dist/lib/maths/fn/trigo.d.ts.map +1 -0
  161. package/dist/lib/maths/fn/trigo.js +227 -0
  162. package/dist/lib/maths/fn/trigo.mjs +156 -0
  163. package/dist/lib/maths/fn/vector.cjs +728 -0
  164. package/dist/lib/maths/fn/vector.d.ts +512 -0
  165. package/dist/lib/maths/fn/vector.d.ts.map +1 -0
  166. package/dist/lib/maths/fn/vector.js +1136 -0
  167. package/dist/lib/maths/fn/vector.mjs +707 -0
  168. package/dist/lib/maths/formatter.cjs +61 -0
  169. package/dist/lib/maths/formatter.d.ts +35 -0
  170. package/dist/lib/maths/formatter.d.ts.map +1 -0
  171. package/dist/lib/maths/formatter.js +56 -0
  172. package/dist/lib/maths/formatter.mjs +40 -0
  173. package/dist/lib/maths/guards.cjs +164 -0
  174. package/dist/lib/maths/guards.d.ts +166 -0
  175. package/dist/lib/maths/guards.d.ts.map +1 -0
  176. package/dist/lib/maths/guards.js +315 -0
  177. package/dist/lib/maths/guards.mjs +144 -0
  178. package/dist/lib/maths/index.cjs +1152 -0
  179. package/dist/lib/maths/index.d.ts +24 -0
  180. package/dist/lib/maths/index.d.ts.map +1 -0
  181. package/dist/lib/maths/index.js +29 -0
  182. package/dist/lib/maths/index.mjs +1130 -0
  183. package/dist/lib/maths/parser.cjs +75 -0
  184. package/dist/lib/maths/parser.d.ts +20 -0
  185. package/dist/lib/maths/parser.d.ts.map +1 -0
  186. package/dist/lib/maths/parser.js +78 -0
  187. package/dist/lib/maths/parser.mjs +54 -0
  188. package/dist/lib/maths/random.cjs +49 -0
  189. package/dist/lib/maths/random.d.ts +27 -0
  190. package/dist/lib/maths/random.d.ts.map +1 -0
  191. package/dist/lib/maths/random.js +49 -0
  192. package/dist/lib/maths/random.mjs +28 -0
  193. package/dist/lib/maths/types/advanced.cjs +18 -0
  194. package/dist/lib/maths/types/advanced.d.ts +357 -0
  195. package/dist/lib/maths/types/advanced.d.ts.map +1 -0
  196. package/dist/lib/maths/types/advanced.js +5 -0
  197. package/dist/lib/maths/types/advanced.mjs +0 -0
  198. package/dist/lib/maths/types/basic.cjs +18 -0
  199. package/dist/lib/maths/types/basic.d.ts +95 -0
  200. package/dist/lib/maths/types/basic.d.ts.map +1 -0
  201. package/dist/lib/maths/types/basic.js +5 -0
  202. package/dist/lib/maths/types/basic.mjs +0 -0
  203. package/dist/lib/maths/types/index.cjs +19 -0
  204. package/dist/lib/maths/types/index.d.ts +4 -0
  205. package/dist/lib/maths/types/index.d.ts.map +1 -0
  206. package/dist/lib/maths/types/index.js +3 -0
  207. package/dist/lib/maths/types/index.mjs +1 -0
  208. package/dist/lib/maths/types/negative.cjs +18 -0
  209. package/dist/lib/maths/types/negative.d.ts +51 -0
  210. package/dist/lib/maths/types/negative.d.ts.map +1 -0
  211. package/dist/lib/maths/types/negative.js +5 -0
  212. package/dist/lib/maths/types/negative.mjs +0 -0
  213. package/dist/lib/maths/types/operations.cjs +18 -0
  214. package/dist/lib/maths/types/operations.d.ts +188 -0
  215. package/dist/lib/maths/types/operations.d.ts.map +1 -0
  216. package/dist/lib/maths/types/operations.js +6 -0
  217. package/dist/lib/maths/types/operations.mjs +0 -0
  218. package/dist/lib/object/clone.cjs +88 -0
  219. package/dist/lib/object/clone.d.ts +46 -0
  220. package/dist/lib/object/clone.d.ts.map +1 -0
  221. package/dist/lib/object/clone.js +104 -0
  222. package/dist/lib/object/clone.mjs +65 -0
  223. package/dist/lib/object/diff.cjs +573 -0
  224. package/dist/lib/object/diff.d.ts +203 -0
  225. package/dist/lib/object/diff.d.ts.map +1 -0
  226. package/dist/lib/object/diff.js +805 -0
  227. package/dist/lib/object/diff.mjs +550 -0
  228. package/dist/lib/object/getter-setter.cjs +2351 -0
  229. package/dist/lib/object/getter-setter.d.ts +361 -0
  230. package/dist/lib/object/getter-setter.d.ts.map +1 -0
  231. package/dist/lib/object/getter-setter.js +1771 -0
  232. package/dist/lib/object/getter-setter.mjs +2330 -0
  233. package/dist/lib/object/index.cjs +3956 -0
  234. package/dist/lib/object/index.d.ts +13 -0
  235. package/dist/lib/object/index.d.ts.map +1 -0
  236. package/dist/lib/object/index.js +12 -0
  237. package/dist/lib/object/index.mjs +3936 -0
  238. package/dist/lib/object/merge.cjs +1029 -0
  239. package/dist/lib/object/merge.d.ts +93 -0
  240. package/dist/lib/object/merge.d.ts.map +1 -0
  241. package/dist/lib/object/merge.js +474 -0
  242. package/dist/lib/object/merge.mjs +1006 -0
  243. package/dist/lib/object/object.cjs +280 -0
  244. package/dist/lib/object/object.d.ts +128 -0
  245. package/dist/lib/object/object.d.ts.map +1 -0
  246. package/dist/lib/object/object.js +432 -0
  247. package/dist/lib/object/object.mjs +257 -0
  248. package/dist/lib/object/omit.cjs +2022 -0
  249. package/dist/lib/object/omit.d.ts +351 -0
  250. package/dist/lib/object/omit.d.ts.map +1 -0
  251. package/dist/lib/object/omit.js +656 -0
  252. package/dist/lib/object/omit.mjs +1999 -0
  253. package/dist/lib/object/reconcile.cjs +126 -0
  254. package/dist/lib/object/reconcile.d.ts +7 -0
  255. package/dist/lib/object/reconcile.d.ts.map +1 -0
  256. package/dist/lib/object/reconcile.js +122 -0
  257. package/dist/lib/object/reconcile.mjs +105 -0
  258. package/dist/lib/object/selector.cjs +303 -0
  259. package/dist/lib/object/selector.d.ts +50 -0
  260. package/dist/lib/object/selector.d.ts.map +1 -0
  261. package/dist/lib/object/selector.js +371 -0
  262. package/dist/lib/object/selector.mjs +282 -0
  263. package/dist/lib/object/sort.cjs +209 -0
  264. package/dist/lib/object/sort.d.ts +149 -0
  265. package/dist/lib/object/sort.d.ts.map +1 -0
  266. package/dist/lib/object/sort.js +298 -0
  267. package/dist/lib/object/sort.mjs +186 -0
  268. package/dist/lib/object/transform.cjs +2211 -0
  269. package/dist/lib/object/transform.d.ts +620 -0
  270. package/dist/lib/object/transform.d.ts.map +1 -0
  271. package/dist/lib/object/transform.js +1058 -0
  272. package/dist/lib/object/transform.mjs +2190 -0
  273. package/dist/lib/object/types.cjs +18 -0
  274. package/dist/lib/object/types.d.ts +250 -0
  275. package/dist/lib/object/types.d.ts.map +1 -0
  276. package/dist/lib/object/types.js +1 -0
  277. package/dist/lib/object/types.mjs +0 -0
  278. package/dist/lib/object/utils.cjs +326 -0
  279. package/dist/lib/object/utils.d.ts +165 -0
  280. package/dist/lib/object/utils.d.ts.map +1 -0
  281. package/dist/lib/object/utils.js +444 -0
  282. package/dist/lib/object/utils.mjs +305 -0
  283. package/dist/lib/primitive/boolean/boolean.cjs +407 -0
  284. package/dist/lib/primitive/boolean/boolean.d.ts +276 -0
  285. package/dist/lib/primitive/boolean/boolean.d.ts.map +1 -0
  286. package/dist/lib/primitive/boolean/boolean.js +615 -0
  287. package/dist/lib/primitive/boolean/boolean.mjs +386 -0
  288. package/dist/lib/primitive/boolean/index.cjs +382 -0
  289. package/dist/lib/primitive/boolean/index.d.ts +3 -0
  290. package/dist/lib/primitive/boolean/index.d.ts.map +1 -0
  291. package/dist/lib/primitive/boolean/index.js +2 -0
  292. package/dist/lib/primitive/boolean/index.mjs +359 -0
  293. package/dist/lib/primitive/boolean/types.cjs +18 -0
  294. package/dist/lib/primitive/boolean/types.d.ts +14 -0
  295. package/dist/lib/primitive/boolean/types.d.ts.map +1 -0
  296. package/dist/lib/primitive/boolean/types.js +1 -0
  297. package/dist/lib/primitive/boolean/types.mjs +0 -0
  298. package/dist/lib/primitive/date/date.cjs +1126 -0
  299. package/dist/lib/primitive/date/date.d.ts +641 -0
  300. package/dist/lib/primitive/date/date.d.ts.map +1 -0
  301. package/dist/lib/primitive/date/date.js +1998 -0
  302. package/dist/lib/primitive/date/date.mjs +1105 -0
  303. package/dist/lib/primitive/date/index.cjs +1128 -0
  304. package/dist/lib/primitive/date/index.d.ts +3 -0
  305. package/dist/lib/primitive/date/index.d.ts.map +1 -0
  306. package/dist/lib/primitive/date/index.js +2 -0
  307. package/dist/lib/primitive/date/index.mjs +1105 -0
  308. package/dist/lib/primitive/date/types.cjs +18 -0
  309. package/dist/lib/primitive/date/types.d.ts +205 -0
  310. package/dist/lib/primitive/date/types.d.ts.map +1 -0
  311. package/dist/lib/primitive/date/types.js +7 -0
  312. package/dist/lib/primitive/date/types.mjs +0 -0
  313. package/dist/lib/primitive/index.cjs +2338 -0
  314. package/dist/lib/primitive/index.d.ts +5 -0
  315. package/dist/lib/primitive/index.d.ts.map +1 -0
  316. package/dist/lib/primitive/index.js +4 -0
  317. package/dist/lib/primitive/index.mjs +2316 -0
  318. package/dist/lib/primitive/string/index.cjs +875 -0
  319. package/dist/lib/primitive/string/index.d.ts +3 -0
  320. package/dist/lib/primitive/string/index.d.ts.map +1 -0
  321. package/dist/lib/primitive/string/index.js +2 -0
  322. package/dist/lib/primitive/string/index.mjs +852 -0
  323. package/dist/lib/primitive/string/parser-2.cjs +543 -0
  324. package/dist/lib/primitive/string/parser-2.d.ts +17 -0
  325. package/dist/lib/primitive/string/parser-2.d.ts.map +1 -0
  326. package/dist/lib/primitive/string/parser-2.js +656 -0
  327. package/dist/lib/primitive/string/parser-2.mjs +522 -0
  328. package/dist/lib/primitive/string/parser.cjs +236 -0
  329. package/dist/lib/primitive/string/parser.d.ts +9 -0
  330. package/dist/lib/primitive/string/parser.d.ts.map +1 -0
  331. package/dist/lib/primitive/string/parser.js +775 -0
  332. package/dist/lib/primitive/string/parser.mjs +215 -0
  333. package/dist/lib/primitive/string/string.cjs +926 -0
  334. package/dist/lib/primitive/string/string.d.ts +535 -0
  335. package/dist/lib/primitive/string/string.d.ts.map +1 -0
  336. package/dist/lib/primitive/string/string.js +1301 -0
  337. package/dist/lib/primitive/string/string.mjs +903 -0
  338. package/dist/lib/primitive/string/types.cjs +18 -0
  339. package/dist/lib/primitive/string/types.d.ts +318 -0
  340. package/dist/lib/primitive/string/types.d.ts.map +1 -0
  341. package/dist/lib/primitive/string/types.js +5 -0
  342. package/dist/lib/primitive/string/types.mjs +0 -0
  343. package/dist/lib/primitive/types.cjs +18 -0
  344. package/dist/lib/primitive/types.d.ts +27 -0
  345. package/dist/lib/primitive/types.d.ts.map +1 -0
  346. package/dist/lib/primitive/types.js +1 -0
  347. package/dist/lib/primitive/types.mjs +0 -0
  348. package/dist/lib/url/index.cjs +327 -0
  349. package/dist/lib/url/index.d.ts +3 -0
  350. package/dist/lib/url/index.d.ts.map +1 -0
  351. package/dist/lib/url/index.js +2 -0
  352. package/dist/lib/url/index.mjs +304 -0
  353. package/dist/lib/url/parser.cjs +325 -0
  354. package/dist/lib/url/parser.d.ts +216 -0
  355. package/dist/lib/url/parser.d.ts.map +1 -0
  356. package/dist/lib/url/parser.js +488 -0
  357. package/dist/lib/url/parser.mjs +304 -0
  358. package/dist/lib/url/types.cjs +18 -0
  359. package/dist/lib/url/types.d.ts +18 -0
  360. package/dist/lib/url/types.d.ts.map +1 -0
  361. package/dist/lib/url/types.js +1 -0
  362. package/dist/lib/url/types.mjs +0 -0
  363. package/dist/tsconfig.lib.tsbuildinfo +1 -0
  364. package/package.json +127 -0
@@ -0,0 +1,325 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/lib/url/parser.ts
21
+ var parser_exports = {};
22
+ __export(parser_exports, {
23
+ addQueryParams: () => addQueryParams,
24
+ buildUrl: () => buildUrl,
25
+ extractUrls: () => extractUrls,
26
+ getDomain: () => getDomain,
27
+ getQueryParam: () => getQueryParam,
28
+ getQueryParams: () => getQueryParams,
29
+ getUrlExtension: () => getUrlExtension,
30
+ isAbsoluteUrl: () => isAbsoluteUrl,
31
+ isRelativeUrl: () => isRelativeUrl,
32
+ isSameOrigin: () => isSameOrigin,
33
+ isValidUrl: () => isValidUrl,
34
+ joinUrl: () => joinUrl,
35
+ matchesUrlPattern: () => matchesUrlPattern,
36
+ normalizeUrl: () => normalizeUrl,
37
+ parseQueryString: () => parseQueryString,
38
+ parseQueryStringAdvanced: () => parseQueryStringAdvanced,
39
+ parseUrl: () => parseUrl,
40
+ removeQueryParams: () => removeQueryParams,
41
+ sanitizeUrl: () => sanitizeUrl,
42
+ toAbsoluteUrl: () => toAbsoluteUrl,
43
+ toQueryString: () => toQueryString,
44
+ url_parser: () => url_parser
45
+ });
46
+ module.exports = __toCommonJS(parser_exports);
47
+ var url_parser = (url) => {
48
+ try {
49
+ const p = new URL(url);
50
+ return {
51
+ hash: p.hash,
52
+ host: p.host,
53
+ hostname: p.hostname,
54
+ href: p.href,
55
+ origin: p.origin,
56
+ pathname: p.pathname,
57
+ port: p.port,
58
+ search: p.search,
59
+ searchParams: p.searchParams.toString(),
60
+ protocol: p.protocol
61
+ };
62
+ } catch (e) {
63
+ return null;
64
+ }
65
+ };
66
+ function parseUrl(url) {
67
+ return url_parser(url);
68
+ }
69
+ function isValidUrl(url) {
70
+ try {
71
+ new URL(url);
72
+ return true;
73
+ } catch {
74
+ return false;
75
+ }
76
+ }
77
+ function isAbsoluteUrl(url) {
78
+ try {
79
+ new URL(url);
80
+ return true;
81
+ } catch {
82
+ return false;
83
+ }
84
+ }
85
+ function isRelativeUrl(url) {
86
+ return !isAbsoluteUrl(url);
87
+ }
88
+ function parseQueryString(queryString) {
89
+ const params = {};
90
+ const searchParams = new URLSearchParams(queryString);
91
+ searchParams.forEach((value, key) => {
92
+ params[key] = value;
93
+ });
94
+ return params;
95
+ }
96
+ function parseQueryStringAdvanced(queryString) {
97
+ const params = {};
98
+ const searchParams = new URLSearchParams(queryString);
99
+ searchParams.forEach((value, key) => {
100
+ if (params[key]) {
101
+ if (Array.isArray(params[key])) {
102
+ params[key].push(value);
103
+ } else {
104
+ params[key] = [params[key], value];
105
+ }
106
+ } else {
107
+ params[key] = value;
108
+ }
109
+ });
110
+ return params;
111
+ }
112
+ function toQueryString(params, options = {}) {
113
+ const { encode = true, arrayFormat = "repeat" } = options;
114
+ const searchParams = new URLSearchParams();
115
+ Object.entries(params).forEach(([key, value]) => {
116
+ if (value === null || value === void 0) return;
117
+ if (Array.isArray(value)) {
118
+ value.forEach((v) => {
119
+ if (arrayFormat === "brackets") {
120
+ searchParams.append(`${key}[]`, String(v));
121
+ } else {
122
+ searchParams.append(key, String(v));
123
+ }
124
+ });
125
+ } else {
126
+ searchParams.append(key, String(value));
127
+ }
128
+ });
129
+ let result = searchParams.toString();
130
+ if (!encode) {
131
+ result = decodeURIComponent(result);
132
+ }
133
+ return result;
134
+ }
135
+ function addQueryParams(url, params) {
136
+ try {
137
+ const urlObj = new URL(url);
138
+ Object.entries(params).forEach(([key, value]) => {
139
+ if (value === null || value === void 0) {
140
+ urlObj.searchParams.delete(key);
141
+ } else if (Array.isArray(value)) {
142
+ urlObj.searchParams.delete(key);
143
+ value.forEach((v) => urlObj.searchParams.append(key, String(v)));
144
+ } else {
145
+ urlObj.searchParams.set(key, String(value));
146
+ }
147
+ });
148
+ return urlObj.toString();
149
+ } catch {
150
+ return url;
151
+ }
152
+ }
153
+ function removeQueryParams(url, ...keys) {
154
+ try {
155
+ const urlObj = new URL(url);
156
+ keys.forEach((key) => urlObj.searchParams.delete(key));
157
+ return urlObj.toString();
158
+ } catch {
159
+ return url;
160
+ }
161
+ }
162
+ function getQueryParam(url, key) {
163
+ try {
164
+ const urlObj = new URL(url);
165
+ return urlObj.searchParams.get(key);
166
+ } catch {
167
+ return null;
168
+ }
169
+ }
170
+ function getQueryParams(url, key) {
171
+ try {
172
+ const urlObj = new URL(url);
173
+ return urlObj.searchParams.getAll(key);
174
+ } catch {
175
+ return [];
176
+ }
177
+ }
178
+ function buildUrl(components) {
179
+ const {
180
+ protocol = "https",
181
+ hostname,
182
+ port,
183
+ pathname = "",
184
+ query,
185
+ hash
186
+ } = components;
187
+ let url = `${protocol}://${hostname}`;
188
+ if (port) {
189
+ url += `:${port}`;
190
+ }
191
+ if (pathname) {
192
+ url += pathname.startsWith("/") ? pathname : `/${pathname}`;
193
+ }
194
+ if (query && Object.keys(query).length > 0) {
195
+ url += `?${toQueryString(query)}`;
196
+ }
197
+ if (hash) {
198
+ url += hash.startsWith("#") ? hash : `#${hash}`;
199
+ }
200
+ return url;
201
+ }
202
+ function joinUrl(base, ...paths) {
203
+ try {
204
+ const url = new URL(base);
205
+ const basePath = url.pathname === "/" ? "" : url.pathname;
206
+ const pathParts = [basePath, ...paths].filter(Boolean).map((part) => part.replace(/^\/+|\/+$/g, ""));
207
+ url.pathname = "/" + pathParts.filter(Boolean).join("/");
208
+ return url.toString();
209
+ } catch {
210
+ const parts = [base, ...paths].filter(Boolean).map((part) => part.replace(/^\/+|\/+$/g, ""));
211
+ return "/" + parts.join("/");
212
+ }
213
+ }
214
+ function normalizeUrl(url, options = {}) {
215
+ const {
216
+ removeTrailingSlash = true,
217
+ removeDefaultPort = true,
218
+ sortQuery = false
219
+ } = options;
220
+ try {
221
+ const urlObj = new URL(url);
222
+ if (removeDefaultPort) {
223
+ if (urlObj.protocol === "http:" && urlObj.port === "80" || urlObj.protocol === "https:" && urlObj.port === "443") {
224
+ urlObj.port = "";
225
+ }
226
+ }
227
+ if (removeTrailingSlash && urlObj.pathname.endsWith("/") && urlObj.pathname !== "/") {
228
+ urlObj.pathname = urlObj.pathname.slice(0, -1);
229
+ }
230
+ if (sortQuery) {
231
+ const params = Array.from(urlObj.searchParams.entries());
232
+ params.sort((a, b) => a[0].localeCompare(b[0]));
233
+ urlObj.search = new URLSearchParams(params).toString();
234
+ }
235
+ return urlObj.toString();
236
+ } catch {
237
+ return url;
238
+ }
239
+ }
240
+ function getDomain(url, options = {}) {
241
+ const { includeSubdomain = false } = options;
242
+ try {
243
+ const urlObj = new URL(url);
244
+ const hostname = urlObj.hostname;
245
+ if (includeSubdomain) {
246
+ return hostname;
247
+ }
248
+ const parts = hostname.split(".");
249
+ if (parts.length >= 2) {
250
+ return parts.slice(-2).join(".");
251
+ }
252
+ return hostname;
253
+ } catch {
254
+ return null;
255
+ }
256
+ }
257
+ function getUrlExtension(url) {
258
+ try {
259
+ const urlObj = new URL(url);
260
+ const pathname = urlObj.pathname;
261
+ const lastDot = pathname.lastIndexOf(".");
262
+ const lastSlash = pathname.lastIndexOf("/");
263
+ if (lastDot > lastSlash && lastDot < pathname.length - 1) {
264
+ return pathname.slice(lastDot + 1);
265
+ }
266
+ return null;
267
+ } catch {
268
+ return null;
269
+ }
270
+ }
271
+ function isSameOrigin(url1, url2) {
272
+ try {
273
+ const urlObj1 = new URL(url1);
274
+ const urlObj2 = new URL(url2);
275
+ return urlObj1.origin === urlObj2.origin;
276
+ } catch {
277
+ return false;
278
+ }
279
+ }
280
+ function toAbsoluteUrl(relativeUrl, baseUrl) {
281
+ try {
282
+ return new URL(relativeUrl, baseUrl).toString();
283
+ } catch {
284
+ return relativeUrl;
285
+ }
286
+ }
287
+ function sanitizeUrl(url) {
288
+ const dangerousProtocols = ["javascript:", "data:", "vbscript:"];
289
+ try {
290
+ const urlObj = new URL(url);
291
+ if (dangerousProtocols.some((proto) => urlObj.protocol === proto)) {
292
+ return null;
293
+ }
294
+ return url;
295
+ } catch {
296
+ const lower = url.toLowerCase().trim();
297
+ if (dangerousProtocols.some((proto) => lower.startsWith(proto))) {
298
+ return null;
299
+ }
300
+ return url;
301
+ }
302
+ }
303
+ function extractUrls(text, options = {}) {
304
+ const { unique = true } = options;
305
+ const urlRegex = /https?:\/\/[^\s<>"{}|\\^`\]]+/gi;
306
+ const matches = text.match(urlRegex) || [];
307
+ return unique ? Array.from(new Set(matches)) : matches;
308
+ }
309
+ function matchesUrlPattern(url, pattern) {
310
+ try {
311
+ const urlObj = new URL(url);
312
+ const patternObj = new URL(pattern);
313
+ if (patternObj.protocol !== "*:" && urlObj.protocol !== patternObj.protocol) {
314
+ return false;
315
+ }
316
+ if (patternObj.hostname !== "*" && urlObj.hostname !== patternObj.hostname) {
317
+ return false;
318
+ }
319
+ const pathPattern = patternObj.pathname.replace(/\*\*/g, ".*").replace(/\*/g, "[^/]*").replace(/[.+?^${}()|[\]\\]/g, "\\$&");
320
+ const pathRegex = new RegExp(`^${pathPattern}$`);
321
+ return pathRegex.test(urlObj.pathname);
322
+ } catch {
323
+ return false;
324
+ }
325
+ }
@@ -0,0 +1,216 @@
1
+ import type { URL_PARSER } from './types.js';
2
+ export declare const url_parser: (url: string) => URL_PARSER | null;
3
+ /**
4
+ * Parses a URL and returns its components
5
+ * @param url - URL string to parse
6
+ * @returns Parsed URL components or null if invalid
7
+ * @example
8
+ * parseUrl('https://example.com:8080/path?q=search#hash');
9
+ * // { protocol: 'https:', hostname: 'example.com', port: '8080', ... }
10
+ */
11
+ export declare function parseUrl(url: string): URL_PARSER | null;
12
+ /**
13
+ * Checks if a string is a valid URL
14
+ * @param url - String to validate
15
+ * @returns True if valid URL
16
+ * @example
17
+ * isValidUrl('https://example.com'); // true
18
+ * isValidUrl('not a url'); // false
19
+ */
20
+ export declare function isValidUrl(url: string): boolean;
21
+ /**
22
+ * Checks if a URL is absolute
23
+ * @param url - URL string to check
24
+ * @returns True if absolute URL
25
+ * @example
26
+ * isAbsoluteUrl('https://example.com/path'); // true
27
+ * isAbsoluteUrl('/path'); // false
28
+ */
29
+ export declare function isAbsoluteUrl(url: string): boolean;
30
+ /**
31
+ * Checks if a URL is relative
32
+ * @param url - URL string to check
33
+ * @returns True if relative URL
34
+ * @example
35
+ * isRelativeUrl('/path'); // true
36
+ * isRelativeUrl('https://example.com'); // false
37
+ */
38
+ export declare function isRelativeUrl(url: string): boolean;
39
+ /**
40
+ * Parses query string into an object
41
+ * @param queryString - Query string (with or without leading ?)
42
+ * @returns Object with parsed parameters
43
+ * @example
44
+ * parseQueryString('?name=John&age=30'); // { name: 'John', age: '30' }
45
+ */
46
+ export declare function parseQueryString(queryString: string): Record<string, string>;
47
+ /**
48
+ * Parses query string into an object with array support
49
+ * @param queryString - Query string
50
+ * @returns Object with parsed parameters (arrays for repeated keys)
51
+ * @example
52
+ * parseQueryStringAdvanced('?tags=js&tags=ts'); // { tags: ['js', 'ts'] }
53
+ */
54
+ export declare function parseQueryStringAdvanced(queryString: string): Record<string, string | string[]>;
55
+ /**
56
+ * Converts an object to a query string
57
+ * @param params - Object with parameters
58
+ * @param options - Serialization options
59
+ * @returns Query string
60
+ * @example
61
+ * toQueryString({ name: 'John', age: 30 }); // 'name=John&age=30'
62
+ */
63
+ export declare function toQueryString(params: Record<string, any>, options?: {
64
+ encode?: boolean;
65
+ arrayFormat?: 'brackets' | 'repeat';
66
+ }): string;
67
+ /**
68
+ * Adds or updates query parameters in a URL
69
+ * @param url - Base URL
70
+ * @param params - Parameters to add/update
71
+ * @returns URL with updated parameters
72
+ * @example
73
+ * addQueryParams('https://example.com', { q: 'search' });
74
+ * // 'https://example.com?q=search'
75
+ */
76
+ export declare function addQueryParams(url: string, params: Record<string, any>): string;
77
+ /**
78
+ * Removes query parameters from a URL
79
+ * @param url - URL to modify
80
+ * @param keys - Parameter keys to remove
81
+ * @returns URL without specified parameters
82
+ * @example
83
+ * removeQueryParams('https://example.com?a=1&b=2', 'a');
84
+ * // 'https://example.com?b=2'
85
+ */
86
+ export declare function removeQueryParams(url: string, ...keys: string[]): string;
87
+ /**
88
+ * Gets a specific query parameter from a URL
89
+ * @param url - URL to parse
90
+ * @param key - Parameter key
91
+ * @returns Parameter value or null
92
+ * @example
93
+ * getQueryParam('https://example.com?name=John', 'name'); // 'John'
94
+ */
95
+ export declare function getQueryParam(url: string, key: string): string | null;
96
+ /**
97
+ * Gets all values for a query parameter (for repeated parameters)
98
+ * @param url - URL to parse
99
+ * @param key - Parameter key
100
+ * @returns Array of parameter values
101
+ * @example
102
+ * getQueryParams('https://example.com?tags=js&tags=ts', 'tags');
103
+ * // ['js', 'ts']
104
+ */
105
+ export declare function getQueryParams(url: string, key: string): string[];
106
+ /**
107
+ * Builds a URL from components
108
+ * @param components - URL components
109
+ * @returns Built URL
110
+ * @example
111
+ * buildUrl({
112
+ * protocol: 'https',
113
+ * hostname: 'example.com',
114
+ * pathname: '/path',
115
+ * query: { q: 'search' }
116
+ * }); // 'https://example.com/path?q=search'
117
+ */
118
+ export declare function buildUrl(components: {
119
+ protocol?: string;
120
+ hostname: string;
121
+ port?: string | number;
122
+ pathname?: string;
123
+ query?: Record<string, any>;
124
+ hash?: string;
125
+ }): string;
126
+ /**
127
+ * Joins URL paths, handling slashes correctly
128
+ * @param base - Base URL or path
129
+ * @param paths - Path segments to join
130
+ * @returns Joined URL
131
+ * @example
132
+ * joinUrl('https://example.com', 'api', 'users', '123');
133
+ * // 'https://example.com/api/users/123'
134
+ */
135
+ export declare function joinUrl(base: string, ...paths: string[]): string;
136
+ /**
137
+ * Normalizes a URL (removes default ports, trailing slashes, etc.)
138
+ * @param url - URL to normalize
139
+ * @param options - Normalization options
140
+ * @returns Normalized URL
141
+ * @example
142
+ * normalizeUrl('https://example.com:443/path/'); // 'https://example.com/path'
143
+ */
144
+ export declare function normalizeUrl(url: string, options?: {
145
+ removeTrailingSlash?: boolean;
146
+ removeDefaultPort?: boolean;
147
+ sortQuery?: boolean;
148
+ }): string;
149
+ /**
150
+ * Extracts the domain from a URL
151
+ * @param url - URL to parse
152
+ * @param options - Extraction options
153
+ * @returns Domain name
154
+ * @example
155
+ * getDomain('https://subdomain.example.com/path'); // 'example.com'
156
+ */
157
+ export declare function getDomain(url: string, options?: {
158
+ includeSubdomain?: boolean;
159
+ }): string | null;
160
+ /**
161
+ * Gets the file extension from a URL
162
+ * @param url - URL to parse
163
+ * @returns File extension (without dot) or null
164
+ * @example
165
+ * getUrlExtension('https://example.com/image.jpg'); // 'jpg'
166
+ */
167
+ export declare function getUrlExtension(url: string): string | null;
168
+ /**
169
+ * Checks if URLs are from the same origin
170
+ * @param url1 - First URL
171
+ * @param url2 - Second URL
172
+ * @returns True if same origin
173
+ * @example
174
+ * isSameOrigin('https://example.com/a', 'https://example.com/b'); // true
175
+ */
176
+ export declare function isSameOrigin(url1: string, url2: string): boolean;
177
+ /**
178
+ * Converts a relative URL to absolute using a base URL
179
+ * @param relativeUrl - Relative URL
180
+ * @param baseUrl - Base URL
181
+ * @returns Absolute URL
182
+ * @example
183
+ * toAbsoluteUrl('/path', 'https://example.com'); // 'https://example.com/path'
184
+ */
185
+ export declare function toAbsoluteUrl(relativeUrl: string, baseUrl: string): string;
186
+ /**
187
+ * Sanitizes a URL by removing dangerous protocols and characters
188
+ * @param url - URL to sanitize
189
+ * @returns Sanitized URL or null if dangerous
190
+ * @example
191
+ * sanitizeUrl('javascript:alert(1)'); // null
192
+ * sanitizeUrl('https://example.com'); // 'https://example.com'
193
+ */
194
+ export declare function sanitizeUrl(url: string): string | null;
195
+ /**
196
+ * Extracts all URLs from a text string
197
+ * @param text - Text to search
198
+ * @param options - Extraction options
199
+ * @returns Array of found URLs
200
+ * @example
201
+ * extractUrls('Check out https://example.com and http://test.com');
202
+ * // ['https://example.com', 'http://test.com']
203
+ */
204
+ export declare function extractUrls(text: string, options?: {
205
+ unique?: boolean;
206
+ }): string[];
207
+ /**
208
+ * Checks if a URL matches a pattern (with wildcard support)
209
+ * @param url - URL to test
210
+ * @param pattern - Pattern with wildcards (* and **)
211
+ * @returns True if matches
212
+ * @example
213
+ * matchesUrlPattern('https://example.com/api/users/123', 'https://example.com/api/*'); // true
214
+ */
215
+ export declare function matchesUrlPattern(url: string, pattern: string): boolean;
216
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/lib/url/parser.ts"],"names":[],"mappings":"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"}