@splendidlabz/utils 1.6.0 → 1.8.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 (474) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/cjs/dom/accessibility.cjs +53 -0
  3. package/dist/cjs/dom/actions/index.cjs +407 -0
  4. package/dist/cjs/dom/actions/masonry.cjs +149 -0
  5. package/dist/cjs/dom/actions/prefer-horizontal-scroll.cjs +157 -0
  6. package/dist/cjs/dom/actions/sticky.cjs +211 -0
  7. package/dist/cjs/dom/bounding-box.cjs +70 -0
  8. package/dist/cjs/dom/clipboard.cjs +37 -0
  9. package/dist/cjs/dom/cookie.cjs +57 -0
  10. package/dist/cjs/dom/css-vars.cjs +57 -0
  11. package/dist/cjs/dom/events.cjs +95 -0
  12. package/dist/cjs/dom/focusable.cjs +143 -0
  13. package/dist/cjs/dom/font-size.cjs +74 -0
  14. package/dist/cjs/dom/get-element.cjs +98 -0
  15. package/dist/cjs/dom/hash.cjs +35 -0
  16. package/dist/cjs/dom/index.cjs +1197 -0
  17. package/dist/cjs/dom/keyboard.cjs +51 -0
  18. package/dist/cjs/dom/local-store.cjs +79 -0
  19. package/dist/cjs/dom/media.cjs +59 -0
  20. package/dist/cjs/dom/observers/index.cjs +156 -0
  21. package/dist/cjs/dom/observers/intersection-observer.cjs +91 -0
  22. package/dist/cjs/dom/observers/mutation-observer.cjs +95 -0
  23. package/dist/cjs/dom/observers/observer.cjs +48 -0
  24. package/dist/cjs/dom/observers/resize-observer.cjs +82 -0
  25. package/dist/cjs/dom/pkce.cjs +53 -0
  26. package/dist/cjs/dom/query-params.cjs +38 -0
  27. package/dist/cjs/dom/random-string.cjs +38 -0
  28. package/dist/cjs/dom/sanitize.cjs +65 -0
  29. package/dist/cjs/dom/session-store.cjs +49 -0
  30. package/dist/cjs/dom/spam-prevention.cjs +50 -0
  31. package/dist/cjs/dom/trap-focus.cjs +197 -0
  32. package/dist/cjs/dom/ui/aria-current.cjs +43 -0
  33. package/dist/cjs/dom/ui/inconsistent-button-fix.cjs +35 -0
  34. package/dist/cjs/dom/ui/index.cjs +105 -0
  35. package/dist/cjs/dom/ui/scroll-container.cjs +47 -0
  36. package/dist/cjs/dom/ui/traverse-and-scramble.cjs +50 -0
  37. package/dist/cjs/lib/arrays/index.cjs +139 -0
  38. package/dist/cjs/lib/arrays/item-position.cjs +42 -0
  39. package/dist/cjs/lib/arrays/join.cjs +43 -0
  40. package/dist/cjs/lib/arrays/shuffle.cjs +42 -0
  41. package/dist/cjs/lib/arrays/sort.cjs +67 -0
  42. package/dist/cjs/lib/arrays/split-array.cjs +41 -0
  43. package/dist/cjs/lib/arrays/unique.cjs +31 -0
  44. package/dist/cjs/lib/auth/index.cjs +53 -0
  45. package/dist/cjs/lib/auth/route-manager.cjs +51 -0
  46. package/dist/cjs/lib/checks.cjs +58 -0
  47. package/dist/cjs/lib/date/days.cjs +37 -0
  48. package/dist/cjs/lib/date/index.cjs +208 -0
  49. package/dist/cjs/lib/date/months.cjs +102 -0
  50. package/dist/cjs/lib/date/time.cjs +117 -0
  51. package/dist/cjs/lib/form/form-data.cjs +83 -0
  52. package/dist/cjs/lib/form/index.cjs +122 -0
  53. package/dist/cjs/lib/form/sanitize.cjs +61 -0
  54. package/dist/cjs/lib/functions/debounce.cjs +43 -0
  55. package/dist/cjs/lib/functions/env.cjs +32 -0
  56. package/dist/cjs/lib/functions/functional.cjs +62 -0
  57. package/dist/cjs/lib/functions/index.cjs +122 -0
  58. package/dist/cjs/lib/functions/throttle.cjs +38 -0
  59. package/dist/cjs/lib/functions/timeout.cjs +41 -0
  60. package/dist/cjs/lib/hash.cjs +43 -0
  61. package/dist/cjs/lib/index.cjs +1146 -0
  62. package/dist/cjs/lib/numbers/index.cjs +49 -0
  63. package/dist/cjs/lib/numbers/math.cjs +36 -0
  64. package/dist/cjs/lib/objects/camelcase-keys.cjs +80 -0
  65. package/dist/cjs/lib/objects/empty.cjs +39 -0
  66. package/dist/cjs/lib/objects/equal.cjs +47 -0
  67. package/dist/cjs/lib/objects/extend.cjs +147 -0
  68. package/dist/cjs/lib/objects/flatten.cjs +48 -0
  69. package/dist/cjs/lib/objects/index.cjs +378 -0
  70. package/dist/cjs/lib/objects/json.cjs +35 -0
  71. package/dist/cjs/lib/objects/loop.cjs +40 -0
  72. package/dist/cjs/lib/objects/mix/mix.cjs +115 -0
  73. package/dist/cjs/lib/objects/nested-property.cjs +45 -0
  74. package/dist/cjs/lib/objects/normalize-object.cjs +106 -0
  75. package/dist/cjs/lib/objects/omit-empty.cjs +40 -0
  76. package/dist/cjs/lib/objects/size.cjs +63 -0
  77. package/dist/cjs/lib/objects/split.cjs +39 -0
  78. package/dist/cjs/lib/promises/index.cjs +69 -0
  79. package/dist/cjs/lib/promises/reject.cjs +67 -0
  80. package/dist/cjs/lib/sse.cjs +99 -0
  81. package/dist/cjs/lib/strings/convert-case/convert-case.cjs +96 -0
  82. package/dist/cjs/lib/strings/index.cjs +190 -0
  83. package/dist/cjs/lib/strings/markdown.cjs +59 -0
  84. package/dist/cjs/lib/strings/name.cjs +46 -0
  85. package/dist/cjs/lib/strings/pluralize.cjs +40 -0
  86. package/dist/cjs/lib/strings/query-string.cjs +43 -0
  87. package/dist/cjs/lib/style/index.cjs +64 -0
  88. package/dist/cjs/lib/symbols/index.cjs +40 -0
  89. package/dist/cjs/lib/symbols/symbols.cjs +38 -0
  90. package/dist/cjs/node/common.cjs +42 -0
  91. package/dist/cjs/node/dirname.cjs +49 -0
  92. package/dist/cjs/node/file-cache.cjs +196 -0
  93. package/dist/cjs/node/file.cjs +50 -0
  94. package/dist/cjs/node/hash.cjs +42 -0
  95. package/dist/cjs/node/index.cjs +290 -0
  96. package/dist/cjs/node/pkce.cjs +62 -0
  97. package/dist/cjs/node/random-string.cjs +43 -0
  98. package/dist/cjs/node/sanitize.cjs +65 -0
  99. package/dist/esm/dom/accessibility.js +27 -0
  100. package/dist/esm/dom/actions/index.js +379 -0
  101. package/dist/esm/dom/actions/masonry.js +123 -0
  102. package/dist/esm/dom/actions/prefer-horizontal-scroll.js +131 -0
  103. package/dist/esm/dom/actions/sticky.js +185 -0
  104. package/dist/esm/dom/bounding-box.js +45 -0
  105. package/dist/esm/dom/clipboard.js +13 -0
  106. package/dist/esm/dom/cookie.js +32 -0
  107. package/dist/esm/dom/css-vars.js +28 -0
  108. package/dist/esm/dom/events.js +67 -0
  109. package/dist/esm/dom/focusable.js +118 -0
  110. package/dist/esm/dom/font-size.js +44 -0
  111. package/dist/esm/dom/get-element.js +67 -0
  112. package/dist/esm/dom/hash.js +11 -0
  113. package/dist/esm/dom/index.js +1100 -0
  114. package/dist/esm/dom/keyboard.js +23 -0
  115. package/dist/esm/dom/local-store.js +55 -0
  116. package/dist/esm/dom/media.js +33 -0
  117. package/dist/esm/dom/observers/index.js +128 -0
  118. package/dist/esm/dom/observers/intersection-observer.js +65 -0
  119. package/dist/esm/dom/observers/mutation-observer.js +69 -0
  120. package/dist/esm/dom/observers/observer.js +22 -0
  121. package/dist/esm/dom/observers/resize-observer.js +56 -0
  122. package/dist/esm/dom/pkce.js +27 -0
  123. package/dist/esm/dom/query-params.js +14 -0
  124. package/dist/esm/dom/random-string.js +13 -0
  125. package/dist/esm/dom/sanitize.js +31 -0
  126. package/dist/esm/dom/session-store.js +25 -0
  127. package/dist/esm/dom/spam-prevention.js +26 -0
  128. package/dist/esm/dom/trap-focus.js +170 -0
  129. package/dist/esm/dom/ui/aria-current.js +18 -0
  130. package/dist/esm/dom/ui/inconsistent-button-fix.js +11 -0
  131. package/dist/esm/dom/ui/index.js +75 -0
  132. package/dist/esm/dom/ui/scroll-container.js +23 -0
  133. package/dist/esm/dom/ui/traverse-and-scramble.js +26 -0
  134. package/dist/esm/lib/arrays/index.js +106 -0
  135. package/dist/esm/lib/arrays/item-position.js +16 -0
  136. package/dist/esm/lib/arrays/join.js +17 -0
  137. package/dist/esm/lib/arrays/shuffle.js +18 -0
  138. package/dist/esm/lib/arrays/sort.js +41 -0
  139. package/dist/esm/lib/arrays/split-array.js +17 -0
  140. package/dist/esm/lib/arrays/unique.js +7 -0
  141. package/dist/esm/lib/auth/index.js +26 -0
  142. package/dist/esm/lib/auth/route-manager.js +26 -0
  143. package/dist/esm/lib/checks.js +31 -0
  144. package/dist/esm/lib/date/days.js +13 -0
  145. package/dist/esm/lib/date/index.js +173 -0
  146. package/dist/esm/lib/date/months.js +78 -0
  147. package/dist/esm/lib/date/time.js +84 -0
  148. package/dist/esm/lib/form/form-data.js +58 -0
  149. package/dist/esm/lib/form/index.js +92 -0
  150. package/dist/esm/lib/form/sanitize.js +35 -0
  151. package/dist/esm/lib/functions/debounce.js +19 -0
  152. package/dist/esm/lib/functions/env.js +8 -0
  153. package/dist/esm/lib/functions/functional.js +35 -0
  154. package/dist/esm/lib/functions/index.js +87 -0
  155. package/dist/esm/lib/functions/throttle.js +14 -0
  156. package/dist/esm/lib/functions/timeout.js +15 -0
  157. package/dist/esm/lib/hash.js +19 -0
  158. package/dist/esm/lib/index.js +1027 -0
  159. package/dist/esm/lib/numbers/index.js +21 -0
  160. package/dist/esm/lib/numbers/math.js +11 -0
  161. package/dist/esm/lib/objects/camelcase-keys.js +54 -0
  162. package/dist/esm/lib/objects/empty.js +14 -0
  163. package/dist/esm/lib/objects/equal.js +12 -0
  164. package/dist/esm/lib/objects/extend.js +121 -0
  165. package/dist/esm/lib/objects/flatten.js +22 -0
  166. package/dist/esm/lib/objects/index.js +323 -0
  167. package/dist/esm/lib/objects/json.js +11 -0
  168. package/dist/esm/lib/objects/loop.js +15 -0
  169. package/dist/esm/lib/objects/mix/mix.js +89 -0
  170. package/dist/esm/lib/objects/nested-property.js +19 -0
  171. package/dist/esm/lib/objects/normalize-object.js +80 -0
  172. package/dist/esm/lib/objects/omit-empty.js +16 -0
  173. package/dist/esm/lib/objects/size.js +39 -0
  174. package/dist/esm/lib/objects/split.js +15 -0
  175. package/dist/esm/lib/promises/index.js +33 -0
  176. package/dist/esm/lib/promises/reject.js +33 -0
  177. package/dist/esm/lib/sse.js +72 -0
  178. package/dist/esm/lib/strings/convert-case/convert-case.js +65 -0
  179. package/dist/esm/lib/strings/index.js +140 -0
  180. package/dist/esm/lib/strings/markdown.js +34 -0
  181. package/dist/esm/lib/strings/name.js +22 -0
  182. package/dist/esm/lib/strings/pluralize.js +6 -0
  183. package/dist/esm/lib/strings/query-string.js +17 -0
  184. package/dist/esm/lib/style/index.js +38 -0
  185. package/dist/esm/lib/symbols/index.js +13 -0
  186. package/dist/esm/lib/symbols/symbols.js +13 -0
  187. package/dist/esm/node/common.js +8 -0
  188. package/dist/esm/node/dirname.js +14 -0
  189. package/dist/esm/node/file-cache.js +158 -0
  190. package/dist/esm/node/file.js +15 -0
  191. package/dist/esm/node/hash.js +8 -0
  192. package/dist/esm/node/index.js +243 -0
  193. package/dist/esm/node/pkce.js +28 -0
  194. package/dist/esm/node/random-string.js +9 -0
  195. package/dist/esm/node/sanitize.js +31 -0
  196. package/dist/{dom/accessibility.d.ts → types/dom/accessibility.d.cts} +5 -3
  197. package/dist/types/dom/actions/index.d.cts +3 -0
  198. package/dist/types/dom/actions/masonry.d.cts +5 -0
  199. package/dist/types/dom/actions/prefer-horizontal-scroll.d.cts +5 -0
  200. package/dist/types/dom/actions/sticky.d.cts +5 -0
  201. package/dist/{dom/bounding-box.d.ts → types/dom/bounding-box.d.cts} +4 -2
  202. package/dist/{dom/clipboard.d.ts → types/dom/clipboard.d.cts} +3 -1
  203. package/dist/types/dom/cookie.d.cts +7 -0
  204. package/dist/types/dom/css-vars.d.cts +6 -0
  205. package/dist/types/dom/events.d.cts +20 -0
  206. package/dist/{dom/focusable.d.ts → types/dom/focusable.d.cts} +5 -3
  207. package/dist/types/dom/font-size.d.cts +7 -0
  208. package/dist/{dom/get-element.d.ts → types/dom/get-element.d.cts} +10 -8
  209. package/dist/types/dom/hash.d.cts +3 -0
  210. package/dist/types/dom/index.d.cts +30 -0
  211. package/dist/{dom/keyboard.d.ts → types/dom/keyboard.d.cts} +7 -5
  212. package/dist/{dom/local-store.d.ts → types/dom/local-store.d.cts} +3 -1
  213. package/dist/types/dom/media.d.cts +5 -0
  214. package/dist/types/dom/observers/index.d.cts +3 -0
  215. package/dist/{dom/observers/intersection-observer.d.ts → types/dom/observers/intersection-observer.d.cts} +3 -1
  216. package/dist/{dom/observers/mutation-observer.d.ts → types/dom/observers/mutation-observer.d.cts} +3 -1
  217. package/dist/types/dom/observers/observer.d.cts +3 -0
  218. package/dist/{dom/observers/resize-observer.d.ts → types/dom/observers/resize-observer.d.cts} +3 -1
  219. package/dist/{node/pkce.d.ts → types/dom/pkce.d.cts} +3 -1
  220. package/dist/{dom/query-params.d.ts → types/dom/query-params.d.cts} +3 -1
  221. package/dist/{dom/random-string.d.ts → types/dom/random-string.d.cts} +4 -2
  222. package/dist/{dom/sanitize.d.ts → types/dom/sanitize.d.cts} +3 -1
  223. package/dist/{dom/session-store.d.ts → types/dom/session-store.d.cts} +3 -1
  224. package/dist/types/dom/spam-prevention.d.cts +14 -0
  225. package/dist/{dom/trap-focus.d.ts → types/dom/trap-focus.d.cts} +8 -4
  226. package/dist/types/dom/ui/aria-current.d.cts +7 -0
  227. package/dist/{dom/ui/inconsistent-button-fix.d.ts → types/dom/ui/inconsistent-button-fix.d.cts} +3 -1
  228. package/dist/types/dom/ui/index.d.cts +4 -0
  229. package/dist/types/dom/ui/scroll-container.d.cts +3 -0
  230. package/dist/{dom/ui/traverse-and-scramble.d.ts → types/dom/ui/traverse-and-scramble.d.cts} +3 -1
  231. package/dist/types/lib/arrays/index.d.cts +6 -0
  232. package/dist/{lib/arrays/item-position.d.ts → types/lib/arrays/item-position.d.cts} +5 -3
  233. package/dist/{lib/arrays/join.d.ts → types/lib/arrays/join.d.cts} +3 -1
  234. package/dist/types/lib/arrays/shuffle.d.cts +3 -0
  235. package/dist/{lib/arrays/sort.d.ts → types/lib/arrays/sort.d.cts} +3 -1
  236. package/dist/types/lib/arrays/split-array.d.cts +6 -0
  237. package/dist/types/lib/arrays/unique.d.cts +3 -0
  238. package/dist/types/lib/auth/index.d.cts +1 -0
  239. package/dist/{lib/auth/route-manager.d.ts → types/lib/auth/route-manager.d.cts} +5 -2
  240. package/dist/{lib/checks.d.ts → types/lib/checks.d.cts} +6 -4
  241. package/dist/{lib/date/days.d.ts → types/lib/date/days.d.cts} +3 -1
  242. package/dist/types/lib/date/index.d.cts +3 -0
  243. package/dist/{lib/date/months.d.ts → types/lib/date/months.d.cts} +3 -1
  244. package/dist/types/lib/date/time.d.cts +21 -0
  245. package/dist/types/lib/form/form-data.d.cts +9 -0
  246. package/dist/types/lib/form/index.d.cts +2 -0
  247. package/dist/{lib/form/sanitize.d.ts → types/lib/form/sanitize.d.cts} +6 -4
  248. package/dist/types/lib/functions/debounce.d.cts +3 -0
  249. package/dist/types/lib/functions/env.d.cts +3 -0
  250. package/dist/types/lib/functions/functional.d.cts +6 -0
  251. package/dist/types/lib/functions/index.d.cts +5 -0
  252. package/dist/types/lib/functions/throttle.d.cts +3 -0
  253. package/dist/types/lib/functions/timeout.d.cts +5 -0
  254. package/dist/types/lib/hash.d.cts +3 -0
  255. package/dist/types/lib/index.d.cts +43 -0
  256. package/dist/types/lib/numbers/index.d.cts +5 -0
  257. package/dist/types/lib/numbers/math.d.cts +4 -0
  258. package/dist/types/lib/objects/camelcase-keys.d.cts +3 -0
  259. package/dist/types/lib/objects/empty.d.cts +4 -0
  260. package/dist/types/lib/objects/equal.d.cts +4 -0
  261. package/dist/types/lib/objects/extend.d.cts +6 -0
  262. package/dist/types/lib/objects/flatten.d.cts +6 -0
  263. package/dist/types/lib/objects/index.d.cts +13 -0
  264. package/dist/types/lib/objects/json.d.cts +3 -0
  265. package/dist/types/lib/objects/loop.d.cts +4 -0
  266. package/dist/types/lib/objects/mix/mix.d.cts +44 -0
  267. package/dist/{lib/objects/nested-property.d.ts → types/lib/objects/nested-property.d.cts} +5 -3
  268. package/dist/types/lib/objects/normalize-object.d.cts +3 -0
  269. package/dist/types/lib/objects/omit-empty.d.cts +3 -0
  270. package/dist/types/lib/objects/size.d.cts +3 -0
  271. package/dist/{lib/objects/split.d.ts → types/lib/objects/split.d.cts} +3 -1
  272. package/dist/types/lib/promises/index.d.cts +1 -0
  273. package/dist/types/lib/promises/reject.d.cts +5 -0
  274. package/dist/{lib/sse.d.ts → types/lib/sse.d.cts} +4 -2
  275. package/dist/types/lib/strings/convert-case/convert-case.d.cts +10 -0
  276. package/dist/types/lib/strings/index.d.cts +5 -0
  277. package/dist/{lib/strings/markdown.d.ts → types/lib/strings/markdown.d.cts} +4 -2
  278. package/dist/types/lib/strings/name.d.cts +7 -0
  279. package/dist/types/lib/strings/pluralize.d.cts +3 -0
  280. package/dist/types/lib/strings/query-string.d.cts +10 -0
  281. package/dist/types/lib/style/index.d.cts +3 -0
  282. package/dist/types/lib/symbols/index.d.cts +1 -0
  283. package/dist/types/lib/symbols/symbols.d.cts +4 -0
  284. package/dist/types/node/common.d.cts +3 -0
  285. package/dist/types/node/dirname.d.cts +9 -0
  286. package/dist/{node/file-cache.d.ts → types/node/file-cache.d.cts} +7 -5
  287. package/dist/types/node/file.d.cts +4 -0
  288. package/dist/types/node/hash.d.cts +3 -0
  289. package/dist/types/node/index.d.cts +7 -0
  290. package/dist/{dom/pkce.d.ts → types/node/pkce.d.cts} +3 -1
  291. package/dist/types/node/random-string.d.cts +3 -0
  292. package/dist/{node/sanitize.d.ts → types/node/sanitize.d.cts} +3 -1
  293. package/package.json +28 -16
  294. package/{dom → src/dom}/index.js +1 -0
  295. package/src/dom/spam-prevention.js +39 -0
  296. package/{dom → src/dom}/ui/aria-current.js +1 -1
  297. package/{lib → src/lib}/arrays/index.js +1 -0
  298. package/{lib → src/lib}/arrays/sort.js +6 -6
  299. package/src/lib/arrays/split-array.js +15 -0
  300. package/{lib → src/lib}/auth/route-manager.js +1 -0
  301. package/{lib → src/lib}/date/time.js +38 -5
  302. package/{lib → src/lib}/numbers/index.js +1 -1
  303. package/src/lib/numbers/split-unit.test.js +45 -0
  304. package/src/lib/objects/mix/mix.js +191 -0
  305. package/{lib → src/lib}/objects/mix/mix.test.js +99 -2
  306. package/src/lib/strings/pluralize.js +2 -0
  307. package/{lib → src/lib}/style/index.js +2 -0
  308. package/{node → src/node}/file-cache.js +1 -1
  309. package/tsconfig.json +6 -6
  310. package/tsup.config.js +38 -0
  311. package/tsup.config.mjs +43 -0
  312. package/dist/dom/actions/index.d.ts +0 -3
  313. package/dist/dom/actions/masonry.d.ts +0 -3
  314. package/dist/dom/actions/prefer-horizontal-scroll.d.ts +0 -3
  315. package/dist/dom/actions/sticky.d.ts +0 -3
  316. package/dist/dom/cookie.d.ts +0 -5
  317. package/dist/dom/css-vars.d.ts +0 -4
  318. package/dist/dom/events.d.ts +0 -18
  319. package/dist/dom/font-size.d.ts +0 -5
  320. package/dist/dom/hash.d.ts +0 -1
  321. package/dist/dom/index.d.ts +0 -22
  322. package/dist/dom/media.d.ts +0 -3
  323. package/dist/dom/observers/index.d.ts +0 -3
  324. package/dist/dom/observers/observer.d.ts +0 -1
  325. package/dist/dom/ui/aria-current.d.ts +0 -5
  326. package/dist/dom/ui/index.d.ts +0 -4
  327. package/dist/dom/ui/scroll-container.d.ts +0 -1
  328. package/dist/lib/arrays/index.d.ts +0 -5
  329. package/dist/lib/arrays/shuffle.d.ts +0 -1
  330. package/dist/lib/arrays/unique.d.ts +0 -1
  331. package/dist/lib/auth/index.d.ts +0 -1
  332. package/dist/lib/date/index.d.ts +0 -3
  333. package/dist/lib/date/time.d.ts +0 -8
  334. package/dist/lib/form/form-data.d.ts +0 -7
  335. package/dist/lib/form/index.d.ts +0 -2
  336. package/dist/lib/functions/debounce.d.ts +0 -1
  337. package/dist/lib/functions/env.d.ts +0 -1
  338. package/dist/lib/functions/functional.d.ts +0 -4
  339. package/dist/lib/functions/index.d.ts +0 -5
  340. package/dist/lib/functions/throttle.d.ts +0 -1
  341. package/dist/lib/functions/timeout.d.ts +0 -3
  342. package/dist/lib/hash.d.ts +0 -1
  343. package/dist/lib/index.d.ts +0 -14
  344. package/dist/lib/numbers/index.d.ts +0 -2
  345. package/dist/lib/numbers/math.d.ts +0 -2
  346. package/dist/lib/objects/camelcase-keys.d.ts +0 -1
  347. package/dist/lib/objects/empty.d.ts +0 -2
  348. package/dist/lib/objects/equal.d.ts +0 -2
  349. package/dist/lib/objects/extend.d.ts +0 -4
  350. package/dist/lib/objects/flatten.d.ts +0 -4
  351. package/dist/lib/objects/index.d.ts +0 -13
  352. package/dist/lib/objects/json.d.ts +0 -1
  353. package/dist/lib/objects/loop.d.ts +0 -2
  354. package/dist/lib/objects/mix/mix.d.ts +0 -1
  355. package/dist/lib/objects/normalize-object.d.ts +0 -1
  356. package/dist/lib/objects/omit-empty.d.ts +0 -1
  357. package/dist/lib/objects/size.d.ts +0 -1
  358. package/dist/lib/promises/index.d.ts +0 -1
  359. package/dist/lib/promises/reject.d.ts +0 -3
  360. package/dist/lib/strings/convert-case/convert-case.d.ts +0 -8
  361. package/dist/lib/strings/index.d.ts +0 -5
  362. package/dist/lib/strings/name.d.ts +0 -5
  363. package/dist/lib/strings/pluralize.d.ts +0 -1
  364. package/dist/lib/strings/query-string.d.ts +0 -8
  365. package/dist/lib/style/index.d.ts +0 -1
  366. package/dist/lib/symbols/index.d.ts +0 -1
  367. package/dist/lib/symbols/symbols.d.ts +0 -2
  368. package/dist/node/common.d.ts +0 -1
  369. package/dist/node/dirname.d.ts +0 -7
  370. package/dist/node/file.d.ts +0 -2
  371. package/dist/node/hash.d.ts +0 -1
  372. package/dist/node/index.d.ts +0 -7
  373. package/dist/node/random-string.d.ts +0 -1
  374. package/lib/objects/mix/mix.js +0 -102
  375. package/lib/strings/pluralize.js +0 -2
  376. /package/{dom → src/dom}/accessibility.js +0 -0
  377. /package/{dom → src/dom}/actions/index.js +0 -0
  378. /package/{dom → src/dom}/actions/masonry.js +0 -0
  379. /package/{dom → src/dom}/actions/prefer-horizontal-scroll.js +0 -0
  380. /package/{dom → src/dom}/actions/sticky.js +0 -0
  381. /package/{dom → src/dom}/bounding-box.js +0 -0
  382. /package/{dom → src/dom}/clipboard.js +0 -0
  383. /package/{dom → src/dom}/cookie.js +0 -0
  384. /package/{dom → src/dom}/css-vars.js +0 -0
  385. /package/{dom → src/dom}/events.js +0 -0
  386. /package/{dom → src/dom}/events.test.js +0 -0
  387. /package/{dom → src/dom}/focusable.js +0 -0
  388. /package/{dom → src/dom}/font-size.js +0 -0
  389. /package/{dom → src/dom}/get-element.js +0 -0
  390. /package/{dom → src/dom}/hash.js +0 -0
  391. /package/{dom → src/dom}/keyboard.js +0 -0
  392. /package/{dom → src/dom}/local-store.js +0 -0
  393. /package/{dom → src/dom}/media.js +0 -0
  394. /package/{dom → src/dom}/observers/index.js +0 -0
  395. /package/{dom → src/dom}/observers/intersection-observer.js +0 -0
  396. /package/{dom → src/dom}/observers/mutation-observer.js +0 -0
  397. /package/{dom → src/dom}/observers/observer.js +0 -0
  398. /package/{dom → src/dom}/observers/resize-observer.js +0 -0
  399. /package/{dom → src/dom}/pkce.js +0 -0
  400. /package/{dom → src/dom}/query-params.js +0 -0
  401. /package/{dom → src/dom}/random-string.js +0 -0
  402. /package/{dom → src/dom}/random-string.test.js +0 -0
  403. /package/{dom → src/dom}/sanitize.js +0 -0
  404. /package/{dom → src/dom}/session-store.js +0 -0
  405. /package/{dom → src/dom}/trap-focus.js +0 -0
  406. /package/{dom → src/dom}/ui/inconsistent-button-fix.js +0 -0
  407. /package/{dom → src/dom}/ui/index.js +0 -0
  408. /package/{dom → src/dom}/ui/scroll-container.js +0 -0
  409. /package/{dom → src/dom}/ui/traverse-and-scramble.js +0 -0
  410. /package/{lib → src/lib}/arrays/item-position.js +0 -0
  411. /package/{lib → src/lib}/arrays/join.js +0 -0
  412. /package/{lib → src/lib}/arrays/shuffle.js +0 -0
  413. /package/{lib → src/lib}/arrays/sort.spec.js +0 -0
  414. /package/{lib → src/lib}/arrays/unique.js +0 -0
  415. /package/{lib → src/lib}/auth/index.js +0 -0
  416. /package/{lib → src/lib}/checks.js +0 -0
  417. /package/{lib → src/lib}/date/days.js +0 -0
  418. /package/{lib → src/lib}/date/index.js +0 -0
  419. /package/{lib → src/lib}/date/months.js +0 -0
  420. /package/{lib → src/lib}/form/form-data.js +0 -0
  421. /package/{lib → src/lib}/form/index.js +0 -0
  422. /package/{lib → src/lib}/form/sanitize.js +0 -0
  423. /package/{lib → src/lib}/form/sanitize.spec.js +0 -0
  424. /package/{lib → src/lib}/functions/debounce.js +0 -0
  425. /package/{lib → src/lib}/functions/env.js +0 -0
  426. /package/{lib → src/lib}/functions/functional.js +0 -0
  427. /package/{lib → src/lib}/functions/index.js +0 -0
  428. /package/{lib → src/lib}/functions/throttle.js +0 -0
  429. /package/{lib → src/lib}/functions/timeout.js +0 -0
  430. /package/{lib → src/lib}/hash.js +0 -0
  431. /package/{lib → src/lib}/hash.spec.js +0 -0
  432. /package/{lib → src/lib}/index.js +0 -0
  433. /package/{lib → src/lib}/numbers/math.js +0 -0
  434. /package/{lib → src/lib}/objects/camelcase-keys.js +0 -0
  435. /package/{lib → src/lib}/objects/camelcase-keys.test.js +0 -0
  436. /package/{lib → src/lib}/objects/empty.js +0 -0
  437. /package/{lib → src/lib}/objects/equal.js +0 -0
  438. /package/{lib → src/lib}/objects/extend.js +0 -0
  439. /package/{lib → src/lib}/objects/extend.test.js +0 -0
  440. /package/{lib → src/lib}/objects/flatten.js +0 -0
  441. /package/{lib → src/lib}/objects/index.js +0 -0
  442. /package/{lib → src/lib}/objects/json.js +0 -0
  443. /package/{lib → src/lib}/objects/loop.js +0 -0
  444. /package/{lib → src/lib}/objects/loop.test.js +0 -0
  445. /package/{lib → src/lib}/objects/mix/mix.md +0 -0
  446. /package/{lib → src/lib}/objects/nested-property.js +0 -0
  447. /package/{lib → src/lib}/objects/normalize-object.js +0 -0
  448. /package/{lib → src/lib}/objects/omit-empty.js +0 -0
  449. /package/{lib → src/lib}/objects/omit-empty.test.js +0 -0
  450. /package/{lib → src/lib}/objects/size.js +0 -0
  451. /package/{lib → src/lib}/objects/split.js +0 -0
  452. /package/{lib → src/lib}/promises/index.js +0 -0
  453. /package/{lib → src/lib}/promises/reject.js +0 -0
  454. /package/{lib → src/lib}/sse.js +0 -0
  455. /package/{lib → src/lib}/strings/convert-case/convert-case.js +0 -0
  456. /package/{lib → src/lib}/strings/convert-case/convert-case.md +0 -0
  457. /package/{lib → src/lib}/strings/convert-case/convert-case.test.js +0 -0
  458. /package/{lib → src/lib}/strings/index.js +0 -0
  459. /package/{lib → src/lib}/strings/markdown.js +0 -0
  460. /package/{lib → src/lib}/strings/name.js +0 -0
  461. /package/{lib → src/lib}/strings/name.test.js +0 -0
  462. /package/{lib → src/lib}/strings/query-string.js +0 -0
  463. /package/{lib → src/lib}/symbols/index.js +0 -0
  464. /package/{lib → src/lib}/symbols/symbols.js +0 -0
  465. /package/{node → src/node}/common.js +0 -0
  466. /package/{node → src/node}/dirname.js +0 -0
  467. /package/{node → src/node}/file.js +0 -0
  468. /package/{node → src/node}/hash.js +0 -0
  469. /package/{node → src/node}/index.js +0 -0
  470. /package/{node → src/node}/pkce.js +0 -0
  471. /package/{node → src/node}/random-string.js +0 -0
  472. /package/{node → src/node}/random-string.test.js +0 -0
  473. /package/{node → src/node}/sanitize.js +0 -0
  474. /package/{node → src/node}/sanitize.spec.js +0 -0
@@ -0,0 +1,173 @@
1
+ // src/lib/date/days.js
2
+ var DAYS = [
3
+ { short: "Sun", long: "Sunday", numeric: 1 },
4
+ { short: "Mon", long: "Monday", numeric: 2 },
5
+ { short: "Tue", long: "Tuesday", numeric: 3 },
6
+ { short: "Wed", long: "Wednesday", numeric: 4 },
7
+ { short: "Thu", long: "Thursday", numeric: 5 },
8
+ { short: "Fri", long: "Friday", numeric: 6 },
9
+ { short: "Sat", long: "Saturday", numeric: 7 }
10
+ ];
11
+
12
+ // src/lib/date/months.js
13
+ var MONTHS = [
14
+ {
15
+ long: "January",
16
+ short: "jan",
17
+ numeric: 1,
18
+ lastDay: { default: 31, leapYear: 31 }
19
+ },
20
+ {
21
+ long: "February",
22
+ short: "feb",
23
+ numeric: 2,
24
+ lastDay: { default: 28, leapYear: 29 }
25
+ },
26
+ {
27
+ long: "March",
28
+ short: "mar",
29
+ numeric: 3,
30
+ lastDay: { default: 31, leapYear: 31 }
31
+ },
32
+ {
33
+ long: "April",
34
+ short: "apr",
35
+ numeric: 4,
36
+ lastDay: { default: 30, leapYear: 30 }
37
+ },
38
+ {
39
+ long: "May",
40
+ short: "may",
41
+ numeric: 5,
42
+ lastDay: { default: 31, leapYear: 31 }
43
+ },
44
+ {
45
+ long: "June",
46
+ short: "jun",
47
+ numeric: 6,
48
+ lastDay: { default: 30, leapYear: 30 }
49
+ },
50
+ {
51
+ long: "July",
52
+ short: "jul",
53
+ numeric: 7,
54
+ lastDay: { default: 31, leapYear: 31 }
55
+ },
56
+ {
57
+ long: "August",
58
+ short: "aug",
59
+ numeric: 8,
60
+ lastDay: { default: 31, leapYear: 31 }
61
+ },
62
+ {
63
+ long: "September",
64
+ short: "sep",
65
+ numeric: 9,
66
+ lastDay: { default: 30, leapYear: 30 }
67
+ },
68
+ {
69
+ long: "October",
70
+ short: "oct",
71
+ numeric: 10,
72
+ lastDay: { default: 31, leapYear: 31 }
73
+ },
74
+ {
75
+ long: "November",
76
+ short: "nov",
77
+ numeric: 11,
78
+ lastDay: { default: 30, leapYear: 30 }
79
+ },
80
+ {
81
+ long: "December",
82
+ short: "dec",
83
+ numeric: 12,
84
+ lastDay: { default: 31, leapYear: 31 }
85
+ }
86
+ ];
87
+
88
+ // src/lib/numbers/index.js
89
+ function splitUnit(string) {
90
+ if (typeof string === "number") return [string, null];
91
+ const regex = /(-?\d*\.?\d+)\s*([a-z]+)/i;
92
+ const match = string.match(regex);
93
+ if (match) return [parseFloat(match[1]), match[2]];
94
+ return [parseFloat(string), null];
95
+ }
96
+
97
+ // src/lib/date/time.js
98
+ function ms(arg) {
99
+ const [value, unit] = splitUnit(arg);
100
+ if (unit === "d") return getTimeInMs(value, "days");
101
+ if (unit === "day") return getTimeInMs(value, "days");
102
+ if (unit === "days") return getTimeInMs(value, "days");
103
+ if (unit === "h") return getTimeInMs(value, "hours");
104
+ if (unit === "hr") return getTimeInMs(value, "hours");
105
+ if (unit === "hour") return getTimeInMs(value, "hours");
106
+ if (unit === "hours") return getTimeInMs(value, "hours");
107
+ if (unit === "m") return getTimeInMs(value, "minutes");
108
+ if (unit === "min") return getTimeInMs(value, "minutes");
109
+ if (unit === "mins") return getTimeInMs(value, "minutes");
110
+ if (unit === "minute") return getTimeInMs(value, "minutes");
111
+ if (unit === "minutes") return getTimeInMs(value, "minutes");
112
+ if (unit === "s") return getTimeInMs(value, "seconds");
113
+ if (unit === "sec") return getTimeInMs(value, "seconds");
114
+ if (unit === "secs") return getTimeInMs(value, "seconds");
115
+ if (unit === "second") return getTimeInMs(value, "seconds");
116
+ if (unit === "seconds") return getTimeInMs(value, "seconds");
117
+ return value;
118
+ }
119
+ function getTimeInMs(value, unit = "ms") {
120
+ switch (unit) {
121
+ case "ms":
122
+ return value;
123
+ case "seconds":
124
+ return value * 1e3;
125
+ case "minutes":
126
+ return value * 1e3 * 60;
127
+ case "hours":
128
+ return value * 1e3 * 60 * 60;
129
+ case "days":
130
+ return value * 1e3 * 60 * 60 * 24;
131
+ case "weeks":
132
+ return value * 1e3 * 60 * 60 * 24 * 7;
133
+ }
134
+ }
135
+ function toWeeks(ms2) {
136
+ return ms2 / 1e3 / 60 / 60 / 24 / 7;
137
+ }
138
+ function toDays(ms2) {
139
+ return ms2 / 1e3 / 60 / 60 / 24;
140
+ }
141
+ function toHours(ms2) {
142
+ return ms2 / 1e3 / 60 / 60;
143
+ }
144
+ function toMinutes(ms2) {
145
+ return ms2 / 1e3 / 60;
146
+ }
147
+ function toSeconds(ms2) {
148
+ return ms2 / 1e3;
149
+ }
150
+ function toReadableTime(ms2) {
151
+ const weekMs = 1e3 * 60 * 60 * 24 * 7;
152
+ const dayMs = 1e3 * 60 * 60 * 24;
153
+ const hourMs = 1e3 * 60 * 60;
154
+ const minuteMs = 1e3 * 60;
155
+ const weeks = Math.floor(ms2 / weekMs);
156
+ const days = Math.floor(ms2 % weekMs / dayMs);
157
+ const hours = Math.floor(ms2 % dayMs / hourMs);
158
+ const minutes = Math.floor(ms2 % hourMs / minuteMs);
159
+ const seconds = Math.floor(ms2 % minuteMs / 1e3);
160
+ return { weeks, days, hours, minutes, seconds };
161
+ }
162
+ export {
163
+ DAYS,
164
+ MONTHS,
165
+ getTimeInMs,
166
+ ms,
167
+ toDays,
168
+ toHours,
169
+ toMinutes,
170
+ toReadableTime,
171
+ toSeconds,
172
+ toWeeks
173
+ };
@@ -0,0 +1,78 @@
1
+ // src/lib/date/months.js
2
+ var MONTHS = [
3
+ {
4
+ long: "January",
5
+ short: "jan",
6
+ numeric: 1,
7
+ lastDay: { default: 31, leapYear: 31 }
8
+ },
9
+ {
10
+ long: "February",
11
+ short: "feb",
12
+ numeric: 2,
13
+ lastDay: { default: 28, leapYear: 29 }
14
+ },
15
+ {
16
+ long: "March",
17
+ short: "mar",
18
+ numeric: 3,
19
+ lastDay: { default: 31, leapYear: 31 }
20
+ },
21
+ {
22
+ long: "April",
23
+ short: "apr",
24
+ numeric: 4,
25
+ lastDay: { default: 30, leapYear: 30 }
26
+ },
27
+ {
28
+ long: "May",
29
+ short: "may",
30
+ numeric: 5,
31
+ lastDay: { default: 31, leapYear: 31 }
32
+ },
33
+ {
34
+ long: "June",
35
+ short: "jun",
36
+ numeric: 6,
37
+ lastDay: { default: 30, leapYear: 30 }
38
+ },
39
+ {
40
+ long: "July",
41
+ short: "jul",
42
+ numeric: 7,
43
+ lastDay: { default: 31, leapYear: 31 }
44
+ },
45
+ {
46
+ long: "August",
47
+ short: "aug",
48
+ numeric: 8,
49
+ lastDay: { default: 31, leapYear: 31 }
50
+ },
51
+ {
52
+ long: "September",
53
+ short: "sep",
54
+ numeric: 9,
55
+ lastDay: { default: 30, leapYear: 30 }
56
+ },
57
+ {
58
+ long: "October",
59
+ short: "oct",
60
+ numeric: 10,
61
+ lastDay: { default: 31, leapYear: 31 }
62
+ },
63
+ {
64
+ long: "November",
65
+ short: "nov",
66
+ numeric: 11,
67
+ lastDay: { default: 30, leapYear: 30 }
68
+ },
69
+ {
70
+ long: "December",
71
+ short: "dec",
72
+ numeric: 12,
73
+ lastDay: { default: 31, leapYear: 31 }
74
+ }
75
+ ];
76
+ export {
77
+ MONTHS
78
+ };
@@ -0,0 +1,84 @@
1
+ // src/lib/numbers/index.js
2
+ function splitUnit(string) {
3
+ if (typeof string === "number") return [string, null];
4
+ const regex = /(-?\d*\.?\d+)\s*([a-z]+)/i;
5
+ const match = string.match(regex);
6
+ if (match) return [parseFloat(match[1]), match[2]];
7
+ return [parseFloat(string), null];
8
+ }
9
+
10
+ // src/lib/date/time.js
11
+ function ms(arg) {
12
+ const [value, unit] = splitUnit(arg);
13
+ if (unit === "d") return getTimeInMs(value, "days");
14
+ if (unit === "day") return getTimeInMs(value, "days");
15
+ if (unit === "days") return getTimeInMs(value, "days");
16
+ if (unit === "h") return getTimeInMs(value, "hours");
17
+ if (unit === "hr") return getTimeInMs(value, "hours");
18
+ if (unit === "hour") return getTimeInMs(value, "hours");
19
+ if (unit === "hours") return getTimeInMs(value, "hours");
20
+ if (unit === "m") return getTimeInMs(value, "minutes");
21
+ if (unit === "min") return getTimeInMs(value, "minutes");
22
+ if (unit === "mins") return getTimeInMs(value, "minutes");
23
+ if (unit === "minute") return getTimeInMs(value, "minutes");
24
+ if (unit === "minutes") return getTimeInMs(value, "minutes");
25
+ if (unit === "s") return getTimeInMs(value, "seconds");
26
+ if (unit === "sec") return getTimeInMs(value, "seconds");
27
+ if (unit === "secs") return getTimeInMs(value, "seconds");
28
+ if (unit === "second") return getTimeInMs(value, "seconds");
29
+ if (unit === "seconds") return getTimeInMs(value, "seconds");
30
+ return value;
31
+ }
32
+ function getTimeInMs(value, unit = "ms") {
33
+ switch (unit) {
34
+ case "ms":
35
+ return value;
36
+ case "seconds":
37
+ return value * 1e3;
38
+ case "minutes":
39
+ return value * 1e3 * 60;
40
+ case "hours":
41
+ return value * 1e3 * 60 * 60;
42
+ case "days":
43
+ return value * 1e3 * 60 * 60 * 24;
44
+ case "weeks":
45
+ return value * 1e3 * 60 * 60 * 24 * 7;
46
+ }
47
+ }
48
+ function toWeeks(ms2) {
49
+ return ms2 / 1e3 / 60 / 60 / 24 / 7;
50
+ }
51
+ function toDays(ms2) {
52
+ return ms2 / 1e3 / 60 / 60 / 24;
53
+ }
54
+ function toHours(ms2) {
55
+ return ms2 / 1e3 / 60 / 60;
56
+ }
57
+ function toMinutes(ms2) {
58
+ return ms2 / 1e3 / 60;
59
+ }
60
+ function toSeconds(ms2) {
61
+ return ms2 / 1e3;
62
+ }
63
+ function toReadableTime(ms2) {
64
+ const weekMs = 1e3 * 60 * 60 * 24 * 7;
65
+ const dayMs = 1e3 * 60 * 60 * 24;
66
+ const hourMs = 1e3 * 60 * 60;
67
+ const minuteMs = 1e3 * 60;
68
+ const weeks = Math.floor(ms2 / weekMs);
69
+ const days = Math.floor(ms2 % weekMs / dayMs);
70
+ const hours = Math.floor(ms2 % dayMs / hourMs);
71
+ const minutes = Math.floor(ms2 % hourMs / minuteMs);
72
+ const seconds = Math.floor(ms2 % minuteMs / 1e3);
73
+ return { weeks, days, hours, minutes, seconds };
74
+ }
75
+ export {
76
+ getTimeInMs,
77
+ ms,
78
+ toDays,
79
+ toHours,
80
+ toMinutes,
81
+ toReadableTime,
82
+ toSeconds,
83
+ toWeeks
84
+ };
@@ -0,0 +1,58 @@
1
+ // src/lib/form/form-data.js
2
+ function formDataToObject(formData) {
3
+ const obj = {};
4
+ for (let [key, value] of formData) {
5
+ if (typeof value === "string") value = value.trim();
6
+ if (key.includes("[]")) {
7
+ const arrayKey = key.replace("[]", "");
8
+ if (!obj[arrayKey]) obj[arrayKey] = [];
9
+ obj[arrayKey].push(value);
10
+ } else {
11
+ obj[key] = value;
12
+ }
13
+ }
14
+ return obj;
15
+ }
16
+ function flattenArrayFields(inputObject) {
17
+ const result = {};
18
+ for (const [key, value] of Object.entries(inputObject)) {
19
+ const match = key.match(/^(\w+)(?:\[(\d+)\])?(?:\[(\w+)\])?$/);
20
+ if (match) {
21
+ const [, baseKey, index, property] = match;
22
+ if (index !== void 0) {
23
+ if (!result[baseKey]) result[baseKey] = [];
24
+ const arrayIndex = parseInt(index);
25
+ if (!result[baseKey][arrayIndex]) result[baseKey][arrayIndex] = {};
26
+ if (property) {
27
+ result[baseKey][arrayIndex][property] = value;
28
+ } else {
29
+ result[baseKey][arrayIndex] = value;
30
+ }
31
+ } else if (property) {
32
+ if (!result[baseKey]) result[baseKey] = {};
33
+ result[baseKey][property] = value;
34
+ } else {
35
+ result[key] = value;
36
+ }
37
+ } else {
38
+ result[key] = value;
39
+ }
40
+ }
41
+ for (const key in result) {
42
+ if (typeof result[key] === "object" && result[key] !== null) {
43
+ if (Object.keys(result[key]).every((k) => !isNaN(parseInt(k)))) {
44
+ result[key] = Object.values(result[key]).filter((item) => {
45
+ if (typeof item === "object") {
46
+ return Object.values(item).some((v) => v !== "");
47
+ }
48
+ return item !== "";
49
+ });
50
+ }
51
+ }
52
+ }
53
+ return result;
54
+ }
55
+ export {
56
+ flattenArrayFields,
57
+ formDataToObject
58
+ };
@@ -0,0 +1,92 @@
1
+ // src/lib/form/form-data.js
2
+ function formDataToObject(formData) {
3
+ const obj = {};
4
+ for (let [key, value] of formData) {
5
+ if (typeof value === "string") value = value.trim();
6
+ if (key.includes("[]")) {
7
+ const arrayKey = key.replace("[]", "");
8
+ if (!obj[arrayKey]) obj[arrayKey] = [];
9
+ obj[arrayKey].push(value);
10
+ } else {
11
+ obj[key] = value;
12
+ }
13
+ }
14
+ return obj;
15
+ }
16
+ function flattenArrayFields(inputObject) {
17
+ const result = {};
18
+ for (const [key, value] of Object.entries(inputObject)) {
19
+ const match = key.match(/^(\w+)(?:\[(\d+)\])?(?:\[(\w+)\])?$/);
20
+ if (match) {
21
+ const [, baseKey, index, property] = match;
22
+ if (index !== void 0) {
23
+ if (!result[baseKey]) result[baseKey] = [];
24
+ const arrayIndex = parseInt(index);
25
+ if (!result[baseKey][arrayIndex]) result[baseKey][arrayIndex] = {};
26
+ if (property) {
27
+ result[baseKey][arrayIndex][property] = value;
28
+ } else {
29
+ result[baseKey][arrayIndex] = value;
30
+ }
31
+ } else if (property) {
32
+ if (!result[baseKey]) result[baseKey] = {};
33
+ result[baseKey][property] = value;
34
+ } else {
35
+ result[key] = value;
36
+ }
37
+ } else {
38
+ result[key] = value;
39
+ }
40
+ }
41
+ for (const key in result) {
42
+ if (typeof result[key] === "object" && result[key] !== null) {
43
+ if (Object.keys(result[key]).every((k) => !isNaN(parseInt(k)))) {
44
+ result[key] = Object.values(result[key]).filter((item) => {
45
+ if (typeof item === "object") {
46
+ return Object.values(item).some((v) => v !== "");
47
+ }
48
+ return item !== "";
49
+ });
50
+ }
51
+ }
52
+ }
53
+ return result;
54
+ }
55
+
56
+ // src/lib/form/sanitize.js
57
+ function sanitize(value, options = {}) {
58
+ const { sanitizer, ...rest } = options;
59
+ if (!sanitizer) throw new Error("sanitizer function is required");
60
+ if (typeof value === "string") return sanitizer(value, rest);
61
+ if (Array.isArray(value)) return sanitizeArray(value, { sanitizer, ...rest });
62
+ if (value && typeof value === "object") {
63
+ return Object.fromEntries(
64
+ Object.entries(value).map(([key, val]) => [
65
+ key,
66
+ sanitize(val, { sanitizer, ...rest })
67
+ ])
68
+ );
69
+ }
70
+ return value;
71
+ }
72
+ function sanitizeArray(arr, { sanitizer, ...rest }) {
73
+ if (!sanitizer) throw new Error("sanitizer function is required");
74
+ return arr.map((item) => sanitize(item, { sanitizer, ...rest }));
75
+ }
76
+ function sanitizeObject(obj, { sanitizer, ...options } = {}) {
77
+ if (!sanitizer) throw new Error("sanitizer function is required");
78
+ if (Array.isArray(obj)) return sanitizeArray(obj, { sanitizer, ...options });
79
+ return Object.fromEntries(
80
+ Object.entries(obj).map(([key, value]) => [
81
+ key,
82
+ sanitize(value, { sanitizer, ...options })
83
+ ])
84
+ );
85
+ }
86
+ export {
87
+ flattenArrayFields,
88
+ formDataToObject,
89
+ sanitize,
90
+ sanitizeArray,
91
+ sanitizeObject
92
+ };
@@ -0,0 +1,35 @@
1
+ // src/lib/form/sanitize.js
2
+ function sanitize(value, options = {}) {
3
+ const { sanitizer, ...rest } = options;
4
+ if (!sanitizer) throw new Error("sanitizer function is required");
5
+ if (typeof value === "string") return sanitizer(value, rest);
6
+ if (Array.isArray(value)) return sanitizeArray(value, { sanitizer, ...rest });
7
+ if (value && typeof value === "object") {
8
+ return Object.fromEntries(
9
+ Object.entries(value).map(([key, val]) => [
10
+ key,
11
+ sanitize(val, { sanitizer, ...rest })
12
+ ])
13
+ );
14
+ }
15
+ return value;
16
+ }
17
+ function sanitizeArray(arr, { sanitizer, ...rest }) {
18
+ if (!sanitizer) throw new Error("sanitizer function is required");
19
+ return arr.map((item) => sanitize(item, { sanitizer, ...rest }));
20
+ }
21
+ function sanitizeObject(obj, { sanitizer, ...options } = {}) {
22
+ if (!sanitizer) throw new Error("sanitizer function is required");
23
+ if (Array.isArray(obj)) return sanitizeArray(obj, { sanitizer, ...options });
24
+ return Object.fromEntries(
25
+ Object.entries(obj).map(([key, value]) => [
26
+ key,
27
+ sanitize(value, { sanitizer, ...options })
28
+ ])
29
+ );
30
+ }
31
+ export {
32
+ sanitize,
33
+ sanitizeArray,
34
+ sanitizeObject
35
+ };
@@ -0,0 +1,19 @@
1
+ // src/lib/functions/debounce.js
2
+ function debounce(callback, wait, immediate = false) {
3
+ let timeout;
4
+ return function() {
5
+ const context = this;
6
+ const args = arguments;
7
+ const callNow = immediate && !timeout;
8
+ clearTimeout(timeout);
9
+ timeout = setTimeout(later, wait);
10
+ if (callNow) callback.apply(context, args);
11
+ function later() {
12
+ timeout = null;
13
+ if (!immediate) callback.apply(context, args);
14
+ }
15
+ };
16
+ }
17
+ export {
18
+ debounce
19
+ };
@@ -0,0 +1,8 @@
1
+ // src/lib/functions/env.js
2
+ function getEnv() {
3
+ if (typeof window === "object") return "browser";
4
+ if (typeof global === "object") return "node";
5
+ }
6
+ export {
7
+ getEnv
8
+ };
@@ -0,0 +1,35 @@
1
+ // src/lib/functions/functional.js
2
+ function curry(fn) {
3
+ return function curried(...args) {
4
+ if (args.length >= fn.length) {
5
+ return fn.apply(this, args);
6
+ } else {
7
+ return function(...moreArgs) {
8
+ return curried.apply(this, args.concat(moreArgs));
9
+ };
10
+ }
11
+ };
12
+ }
13
+ function compose(...fns) {
14
+ return function(value) {
15
+ return fns.reduceRight((acc, fn) => fn(acc), value);
16
+ };
17
+ }
18
+ function pipe(...fns) {
19
+ return function(value) {
20
+ return fns.reduce((acc, fn) => fn(acc), value);
21
+ };
22
+ }
23
+ function times(fn, n) {
24
+ const result = [];
25
+ for (let i = 0; i < n; i++) {
26
+ result.push(fn(i));
27
+ }
28
+ return result;
29
+ }
30
+ export {
31
+ compose,
32
+ curry,
33
+ pipe,
34
+ times
35
+ };
@@ -0,0 +1,87 @@
1
+ // src/lib/functions/debounce.js
2
+ function debounce(callback, wait2, immediate = false) {
3
+ let timeout2;
4
+ return function() {
5
+ const context = this;
6
+ const args = arguments;
7
+ const callNow = immediate && !timeout2;
8
+ clearTimeout(timeout2);
9
+ timeout2 = setTimeout(later, wait2);
10
+ if (callNow) callback.apply(context, args);
11
+ function later() {
12
+ timeout2 = null;
13
+ if (!immediate) callback.apply(context, args);
14
+ }
15
+ };
16
+ }
17
+
18
+ // src/lib/functions/env.js
19
+ function getEnv() {
20
+ if (typeof window === "object") return "browser";
21
+ if (typeof global === "object") return "node";
22
+ }
23
+
24
+ // src/lib/functions/functional.js
25
+ function curry(fn) {
26
+ return function curried(...args) {
27
+ if (args.length >= fn.length) {
28
+ return fn.apply(this, args);
29
+ } else {
30
+ return function(...moreArgs) {
31
+ return curried.apply(this, args.concat(moreArgs));
32
+ };
33
+ }
34
+ };
35
+ }
36
+ function compose(...fns) {
37
+ return function(value) {
38
+ return fns.reduceRight((acc, fn) => fn(acc), value);
39
+ };
40
+ }
41
+ function pipe(...fns) {
42
+ return function(value) {
43
+ return fns.reduce((acc, fn) => fn(acc), value);
44
+ };
45
+ }
46
+ function times(fn, n) {
47
+ const result = [];
48
+ for (let i = 0; i < n; i++) {
49
+ result.push(fn(i));
50
+ }
51
+ return result;
52
+ }
53
+
54
+ // src/lib/functions/throttle.js
55
+ function throttle(callback, wait2) {
56
+ let lastCall = 0;
57
+ return function(...args) {
58
+ const now = (/* @__PURE__ */ new Date()).getTime();
59
+ if (now - lastCall >= wait2) {
60
+ callback(...args);
61
+ lastCall = now;
62
+ }
63
+ };
64
+ }
65
+
66
+ // src/lib/functions/timeout.js
67
+ function timeout(wait2, callback) {
68
+ setTimeout(callback, wait2);
69
+ }
70
+ function delay(ms) {
71
+ return new Promise((resolve) => setTimeout(resolve, ms));
72
+ }
73
+ function wait(ms) {
74
+ return delay(ms);
75
+ }
76
+ export {
77
+ compose,
78
+ curry,
79
+ debounce,
80
+ delay,
81
+ getEnv,
82
+ pipe,
83
+ throttle,
84
+ timeout,
85
+ times,
86
+ wait
87
+ };
@@ -0,0 +1,14 @@
1
+ // src/lib/functions/throttle.js
2
+ function throttle(callback, wait) {
3
+ let lastCall = 0;
4
+ return function(...args) {
5
+ const now = (/* @__PURE__ */ new Date()).getTime();
6
+ if (now - lastCall >= wait) {
7
+ callback(...args);
8
+ lastCall = now;
9
+ }
10
+ };
11
+ }
12
+ export {
13
+ throttle
14
+ };
@@ -0,0 +1,15 @@
1
+ // src/lib/functions/timeout.js
2
+ function timeout(wait2, callback) {
3
+ setTimeout(callback, wait2);
4
+ }
5
+ function delay(ms) {
6
+ return new Promise((resolve) => setTimeout(resolve, ms));
7
+ }
8
+ function wait(ms) {
9
+ return delay(ms);
10
+ }
11
+ export {
12
+ delay,
13
+ timeout,
14
+ wait
15
+ };