@splendidlabz/utils 1.6.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (472) hide show
  1. package/CHANGELOG.md +7 -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 +206 -0
  49. package/dist/cjs/lib/date/months.cjs +102 -0
  50. package/dist/cjs/lib/date/time.cjs +115 -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 +1141 -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 +146 -0
  68. package/dist/cjs/lib/objects/flatten.cjs +48 -0
  69. package/dist/cjs/lib/objects/index.cjs +375 -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 +112 -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 +171 -0
  146. package/dist/esm/lib/date/months.js +78 -0
  147. package/dist/esm/lib/date/time.js +82 -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 +1023 -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 +120 -0
  165. package/dist/esm/lib/objects/flatten.js +22 -0
  166. package/dist/esm/lib/objects/index.js +321 -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 +87 -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 +4 -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 -15
  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 +36 -5
  302. package/{lib → src/lib}/objects/mix/mix.js +30 -11
  303. package/{lib → src/lib}/objects/mix/mix.test.js +49 -1
  304. package/src/lib/strings/pluralize.js +2 -0
  305. package/{lib → src/lib}/style/index.js +2 -0
  306. package/tsconfig.json +6 -6
  307. package/tsup.config.js +38 -0
  308. package/tsup.config.mjs +43 -0
  309. package/dist/dom/actions/index.d.ts +0 -3
  310. package/dist/dom/actions/masonry.d.ts +0 -3
  311. package/dist/dom/actions/prefer-horizontal-scroll.d.ts +0 -3
  312. package/dist/dom/actions/sticky.d.ts +0 -3
  313. package/dist/dom/cookie.d.ts +0 -5
  314. package/dist/dom/css-vars.d.ts +0 -4
  315. package/dist/dom/events.d.ts +0 -18
  316. package/dist/dom/font-size.d.ts +0 -5
  317. package/dist/dom/hash.d.ts +0 -1
  318. package/dist/dom/index.d.ts +0 -22
  319. package/dist/dom/media.d.ts +0 -3
  320. package/dist/dom/observers/index.d.ts +0 -3
  321. package/dist/dom/observers/observer.d.ts +0 -1
  322. package/dist/dom/ui/aria-current.d.ts +0 -5
  323. package/dist/dom/ui/index.d.ts +0 -4
  324. package/dist/dom/ui/scroll-container.d.ts +0 -1
  325. package/dist/lib/arrays/index.d.ts +0 -5
  326. package/dist/lib/arrays/shuffle.d.ts +0 -1
  327. package/dist/lib/arrays/unique.d.ts +0 -1
  328. package/dist/lib/auth/index.d.ts +0 -1
  329. package/dist/lib/date/index.d.ts +0 -3
  330. package/dist/lib/date/time.d.ts +0 -8
  331. package/dist/lib/form/form-data.d.ts +0 -7
  332. package/dist/lib/form/index.d.ts +0 -2
  333. package/dist/lib/functions/debounce.d.ts +0 -1
  334. package/dist/lib/functions/env.d.ts +0 -1
  335. package/dist/lib/functions/functional.d.ts +0 -4
  336. package/dist/lib/functions/index.d.ts +0 -5
  337. package/dist/lib/functions/throttle.d.ts +0 -1
  338. package/dist/lib/functions/timeout.d.ts +0 -3
  339. package/dist/lib/hash.d.ts +0 -1
  340. package/dist/lib/index.d.ts +0 -14
  341. package/dist/lib/numbers/index.d.ts +0 -2
  342. package/dist/lib/numbers/math.d.ts +0 -2
  343. package/dist/lib/objects/camelcase-keys.d.ts +0 -1
  344. package/dist/lib/objects/empty.d.ts +0 -2
  345. package/dist/lib/objects/equal.d.ts +0 -2
  346. package/dist/lib/objects/extend.d.ts +0 -4
  347. package/dist/lib/objects/flatten.d.ts +0 -4
  348. package/dist/lib/objects/index.d.ts +0 -13
  349. package/dist/lib/objects/json.d.ts +0 -1
  350. package/dist/lib/objects/loop.d.ts +0 -2
  351. package/dist/lib/objects/mix/mix.d.ts +0 -1
  352. package/dist/lib/objects/normalize-object.d.ts +0 -1
  353. package/dist/lib/objects/omit-empty.d.ts +0 -1
  354. package/dist/lib/objects/size.d.ts +0 -1
  355. package/dist/lib/promises/index.d.ts +0 -1
  356. package/dist/lib/promises/reject.d.ts +0 -3
  357. package/dist/lib/strings/convert-case/convert-case.d.ts +0 -8
  358. package/dist/lib/strings/index.d.ts +0 -5
  359. package/dist/lib/strings/name.d.ts +0 -5
  360. package/dist/lib/strings/pluralize.d.ts +0 -1
  361. package/dist/lib/strings/query-string.d.ts +0 -8
  362. package/dist/lib/style/index.d.ts +0 -1
  363. package/dist/lib/symbols/index.d.ts +0 -1
  364. package/dist/lib/symbols/symbols.d.ts +0 -2
  365. package/dist/node/common.d.ts +0 -1
  366. package/dist/node/dirname.d.ts +0 -7
  367. package/dist/node/file.d.ts +0 -2
  368. package/dist/node/hash.d.ts +0 -1
  369. package/dist/node/index.d.ts +0 -7
  370. package/dist/node/random-string.d.ts +0 -1
  371. package/lib/strings/pluralize.js +0 -2
  372. /package/{dom → src/dom}/accessibility.js +0 -0
  373. /package/{dom → src/dom}/actions/index.js +0 -0
  374. /package/{dom → src/dom}/actions/masonry.js +0 -0
  375. /package/{dom → src/dom}/actions/prefer-horizontal-scroll.js +0 -0
  376. /package/{dom → src/dom}/actions/sticky.js +0 -0
  377. /package/{dom → src/dom}/bounding-box.js +0 -0
  378. /package/{dom → src/dom}/clipboard.js +0 -0
  379. /package/{dom → src/dom}/cookie.js +0 -0
  380. /package/{dom → src/dom}/css-vars.js +0 -0
  381. /package/{dom → src/dom}/events.js +0 -0
  382. /package/{dom → src/dom}/events.test.js +0 -0
  383. /package/{dom → src/dom}/focusable.js +0 -0
  384. /package/{dom → src/dom}/font-size.js +0 -0
  385. /package/{dom → src/dom}/get-element.js +0 -0
  386. /package/{dom → src/dom}/hash.js +0 -0
  387. /package/{dom → src/dom}/keyboard.js +0 -0
  388. /package/{dom → src/dom}/local-store.js +0 -0
  389. /package/{dom → src/dom}/media.js +0 -0
  390. /package/{dom → src/dom}/observers/index.js +0 -0
  391. /package/{dom → src/dom}/observers/intersection-observer.js +0 -0
  392. /package/{dom → src/dom}/observers/mutation-observer.js +0 -0
  393. /package/{dom → src/dom}/observers/observer.js +0 -0
  394. /package/{dom → src/dom}/observers/resize-observer.js +0 -0
  395. /package/{dom → src/dom}/pkce.js +0 -0
  396. /package/{dom → src/dom}/query-params.js +0 -0
  397. /package/{dom → src/dom}/random-string.js +0 -0
  398. /package/{dom → src/dom}/random-string.test.js +0 -0
  399. /package/{dom → src/dom}/sanitize.js +0 -0
  400. /package/{dom → src/dom}/session-store.js +0 -0
  401. /package/{dom → src/dom}/trap-focus.js +0 -0
  402. /package/{dom → src/dom}/ui/inconsistent-button-fix.js +0 -0
  403. /package/{dom → src/dom}/ui/index.js +0 -0
  404. /package/{dom → src/dom}/ui/scroll-container.js +0 -0
  405. /package/{dom → src/dom}/ui/traverse-and-scramble.js +0 -0
  406. /package/{lib → src/lib}/arrays/item-position.js +0 -0
  407. /package/{lib → src/lib}/arrays/join.js +0 -0
  408. /package/{lib → src/lib}/arrays/shuffle.js +0 -0
  409. /package/{lib → src/lib}/arrays/sort.spec.js +0 -0
  410. /package/{lib → src/lib}/arrays/unique.js +0 -0
  411. /package/{lib → src/lib}/auth/index.js +0 -0
  412. /package/{lib → src/lib}/checks.js +0 -0
  413. /package/{lib → src/lib}/date/days.js +0 -0
  414. /package/{lib → src/lib}/date/index.js +0 -0
  415. /package/{lib → src/lib}/date/months.js +0 -0
  416. /package/{lib → src/lib}/form/form-data.js +0 -0
  417. /package/{lib → src/lib}/form/index.js +0 -0
  418. /package/{lib → src/lib}/form/sanitize.js +0 -0
  419. /package/{lib → src/lib}/form/sanitize.spec.js +0 -0
  420. /package/{lib → src/lib}/functions/debounce.js +0 -0
  421. /package/{lib → src/lib}/functions/env.js +0 -0
  422. /package/{lib → src/lib}/functions/functional.js +0 -0
  423. /package/{lib → src/lib}/functions/index.js +0 -0
  424. /package/{lib → src/lib}/functions/throttle.js +0 -0
  425. /package/{lib → src/lib}/functions/timeout.js +0 -0
  426. /package/{lib → src/lib}/hash.js +0 -0
  427. /package/{lib → src/lib}/hash.spec.js +0 -0
  428. /package/{lib → src/lib}/index.js +0 -0
  429. /package/{lib → src/lib}/numbers/index.js +0 -0
  430. /package/{lib → src/lib}/numbers/math.js +0 -0
  431. /package/{lib → src/lib}/objects/camelcase-keys.js +0 -0
  432. /package/{lib → src/lib}/objects/camelcase-keys.test.js +0 -0
  433. /package/{lib → src/lib}/objects/empty.js +0 -0
  434. /package/{lib → src/lib}/objects/equal.js +0 -0
  435. /package/{lib → src/lib}/objects/extend.js +0 -0
  436. /package/{lib → src/lib}/objects/extend.test.js +0 -0
  437. /package/{lib → src/lib}/objects/flatten.js +0 -0
  438. /package/{lib → src/lib}/objects/index.js +0 -0
  439. /package/{lib → src/lib}/objects/json.js +0 -0
  440. /package/{lib → src/lib}/objects/loop.js +0 -0
  441. /package/{lib → src/lib}/objects/loop.test.js +0 -0
  442. /package/{lib → src/lib}/objects/mix/mix.md +0 -0
  443. /package/{lib → src/lib}/objects/nested-property.js +0 -0
  444. /package/{lib → src/lib}/objects/normalize-object.js +0 -0
  445. /package/{lib → src/lib}/objects/omit-empty.js +0 -0
  446. /package/{lib → src/lib}/objects/omit-empty.test.js +0 -0
  447. /package/{lib → src/lib}/objects/size.js +0 -0
  448. /package/{lib → src/lib}/objects/split.js +0 -0
  449. /package/{lib → src/lib}/promises/index.js +0 -0
  450. /package/{lib → src/lib}/promises/reject.js +0 -0
  451. /package/{lib → src/lib}/sse.js +0 -0
  452. /package/{lib → src/lib}/strings/convert-case/convert-case.js +0 -0
  453. /package/{lib → src/lib}/strings/convert-case/convert-case.md +0 -0
  454. /package/{lib → src/lib}/strings/convert-case/convert-case.test.js +0 -0
  455. /package/{lib → src/lib}/strings/index.js +0 -0
  456. /package/{lib → src/lib}/strings/markdown.js +0 -0
  457. /package/{lib → src/lib}/strings/name.js +0 -0
  458. /package/{lib → src/lib}/strings/name.test.js +0 -0
  459. /package/{lib → src/lib}/strings/query-string.js +0 -0
  460. /package/{lib → src/lib}/symbols/index.js +0 -0
  461. /package/{lib → src/lib}/symbols/symbols.js +0 -0
  462. /package/{node → src/node}/common.js +0 -0
  463. /package/{node → src/node}/dirname.js +0 -0
  464. /package/{node → src/node}/file-cache.js +0 -0
  465. /package/{node → src/node}/file.js +0 -0
  466. /package/{node → src/node}/hash.js +0 -0
  467. /package/{node → src/node}/index.js +0 -0
  468. /package/{node → src/node}/pkce.js +0 -0
  469. /package/{node → src/node}/random-string.js +0 -0
  470. /package/{node → src/node}/random-string.test.js +0 -0
  471. /package/{node → src/node}/sanitize.js +0 -0
  472. /package/{node → src/node}/sanitize.spec.js +0 -0
@@ -0,0 +1,19 @@
1
+ // src/lib/objects/nested-property.js
2
+ function getNestedProperty(object, pathArr) {
3
+ return pathArr.reduce(
4
+ (nestedObject, key) => nestedObject && nestedObject[key] !== "undefined" ? nestedObject[key] : void 0,
5
+ object
6
+ );
7
+ }
8
+ function getNestedProperty2(object, path) {
9
+ const pathArray = path.split(".");
10
+ return getNestedProperty(object, pathArray);
11
+ }
12
+ function getNestedValue(object, path) {
13
+ return path.split(".").reduce((acc, part) => acc?.[part], object);
14
+ }
15
+ export {
16
+ getNestedProperty,
17
+ getNestedProperty2,
18
+ getNestedValue
19
+ };
@@ -0,0 +1,80 @@
1
+ // src/lib/functions/functional.js
2
+ function pipe(...fns) {
3
+ return function(value) {
4
+ return fns.reduce((acc, fn) => fn(acc), value);
5
+ };
6
+ }
7
+
8
+ // src/lib/objects/loop.js
9
+ function objectForEach(object, callback) {
10
+ Object.entries(object).forEach(([key, value]) => {
11
+ callback({ key, value });
12
+ });
13
+ }
14
+
15
+ // src/lib/strings/convert-case/convert-case.js
16
+ function toKebab(string) {
17
+ if (!string) return "";
18
+ return string.split("").map((letter, index) => {
19
+ const previousLetter = string[index - 1] || "";
20
+ const currentLetter = letter;
21
+ if (isDigit(currentLetter) && !isDigit(previousLetter)) {
22
+ return `-${currentLetter}`;
23
+ }
24
+ if (!isCaps(currentLetter)) return currentLetter;
25
+ if (previousLetter === "") {
26
+ return `${currentLetter.toLowerCase()}`;
27
+ }
28
+ if (isCaps(previousLetter)) {
29
+ return `${currentLetter.toLowerCase()}`;
30
+ }
31
+ return `-${currentLetter.toLowerCase()}`;
32
+ }).join("").trim().replace(/[-_\s]+/g, "-");
33
+ }
34
+ function toCamel(string) {
35
+ return toKebab(string).split("-").map((word, index) => {
36
+ if (index === 0) return word;
37
+ return word.slice(0, 1).toUpperCase() + word.slice(1).toLowerCase();
38
+ }).join("");
39
+ }
40
+ function isCaps(char) {
41
+ return /\p{Lu}/u.test(char);
42
+ }
43
+ function isDigit(char) {
44
+ return /[0-9]/.test(char);
45
+ }
46
+
47
+ // src/lib/objects/camelcase-keys.js
48
+ function camelCaseKeys(obj) {
49
+ if (typeof obj !== "object" || obj === null) {
50
+ return obj;
51
+ }
52
+ const result = {};
53
+ objectForEach(obj, ({ key, value }) => {
54
+ const camelCaseKey = toCamel(key);
55
+ result[camelCaseKey] = camelCaseKeys(value);
56
+ });
57
+ return result;
58
+ }
59
+
60
+ // src/lib/objects/omit-empty.js
61
+ function omitEmpty(obj, shallow = false) {
62
+ if (typeof obj !== "object" || obj === null) return obj;
63
+ if (obj instanceof Date) return obj;
64
+ const result = Array.isArray(obj) ? [] : {};
65
+ for (const [key, value] of Object.entries(obj)) {
66
+ if (value === null || value === void 0 || value === "" || typeof value === "object" && !(value instanceof Date) && Object.keys(value).length === 0) {
67
+ continue;
68
+ }
69
+ result[key] = shallow ? value : omitEmpty(value);
70
+ }
71
+ return result;
72
+ }
73
+
74
+ // src/lib/objects/normalize-object.js
75
+ function normalizeObject(object) {
76
+ return pipe(omitEmpty, camelCaseKeys)(object);
77
+ }
78
+ export {
79
+ normalizeObject
80
+ };
@@ -0,0 +1,16 @@
1
+ // src/lib/objects/omit-empty.js
2
+ function omitEmpty(obj, shallow = false) {
3
+ if (typeof obj !== "object" || obj === null) return obj;
4
+ if (obj instanceof Date) return obj;
5
+ const result = Array.isArray(obj) ? [] : {};
6
+ for (const [key, value] of Object.entries(obj)) {
7
+ if (value === null || value === void 0 || value === "" || typeof value === "object" && !(value instanceof Date) && Object.keys(value).length === 0) {
8
+ continue;
9
+ }
10
+ result[key] = shallow ? value : omitEmpty(value);
11
+ }
12
+ return result;
13
+ }
14
+ export {
15
+ omitEmpty
16
+ };
@@ -0,0 +1,39 @@
1
+ // src/lib/objects/size.js
2
+ function sizeOf(obj) {
3
+ let bytes = 0;
4
+ function size(obj2) {
5
+ if (obj2 !== null && obj2 !== void 0) {
6
+ switch (typeof obj2) {
7
+ case "number":
8
+ bytes += 8;
9
+ break;
10
+ case "string":
11
+ bytes += obj2.length * 2;
12
+ break;
13
+ case "boolean":
14
+ bytes += 4;
15
+ break;
16
+ case "object":
17
+ const objClass = Object.prototype.toString.call(obj2).slice(8, -1);
18
+ if (objClass === "Object" || objClass === "Array") {
19
+ for (const key in obj2) {
20
+ if (!obj2.hasOwnProperty(key)) continue;
21
+ size(obj2[key]);
22
+ }
23
+ } else bytes += obj2.toString().length * 2;
24
+ break;
25
+ }
26
+ }
27
+ return bytes;
28
+ }
29
+ function formatByteSize(bytes2) {
30
+ if (bytes2 < 1024) return bytes2 + " bytes";
31
+ else if (bytes2 < 1048576) return (bytes2 / 1024).toFixed(3) + " KiB";
32
+ else if (bytes2 < 1073741824) return (bytes2 / 1048576).toFixed(3) + " MiB";
33
+ else return (bytes2 / 1073741824).toFixed(3) + " GiB";
34
+ }
35
+ return formatByteSize(size(obj));
36
+ }
37
+ export {
38
+ sizeOf
39
+ };
@@ -0,0 +1,15 @@
1
+ // src/lib/objects/split.js
2
+ function splitObject(obj, keys) {
3
+ const picked = {};
4
+ const omitted = { ...obj };
5
+ keys.forEach((key) => {
6
+ if (key in obj) {
7
+ picked[key] = obj[key];
8
+ delete omitted[key];
9
+ }
10
+ });
11
+ return { picked, omitted, p: picked, o: omitted };
12
+ }
13
+ export {
14
+ splitObject
15
+ };
@@ -0,0 +1,33 @@
1
+ // src/lib/promises/reject.js
2
+ import statuses from "statuses";
3
+
4
+ // src/lib/objects/omit-empty.js
5
+ function omitEmpty(obj, shallow = false) {
6
+ if (typeof obj !== "object" || obj === null) return obj;
7
+ if (obj instanceof Date) return obj;
8
+ const result = Array.isArray(obj) ? [] : {};
9
+ for (const [key, value] of Object.entries(obj)) {
10
+ if (value === null || value === void 0 || value === "" || typeof value === "object" && !(value instanceof Date) && Object.keys(value).length === 0) {
11
+ continue;
12
+ }
13
+ result[key] = shallow ? value : omitEmpty(value);
14
+ }
15
+ return result;
16
+ }
17
+
18
+ // src/lib/promises/reject.js
19
+ function reject(props, { includeStack = true } = {}) {
20
+ const { status, statusText, body, message } = props;
21
+ const e = new Error();
22
+ const err = {
23
+ status,
24
+ statusText: statusText || status && statuses(status),
25
+ body,
26
+ message,
27
+ stack: includeStack && e.stack
28
+ };
29
+ return Promise.reject(omitEmpty(err));
30
+ }
31
+ export {
32
+ reject
33
+ };
@@ -0,0 +1,33 @@
1
+ // src/lib/promises/reject.js
2
+ import statuses from "statuses";
3
+
4
+ // src/lib/objects/omit-empty.js
5
+ function omitEmpty(obj, shallow = false) {
6
+ if (typeof obj !== "object" || obj === null) return obj;
7
+ if (obj instanceof Date) return obj;
8
+ const result = Array.isArray(obj) ? [] : {};
9
+ for (const [key, value] of Object.entries(obj)) {
10
+ if (value === null || value === void 0 || value === "" || typeof value === "object" && !(value instanceof Date) && Object.keys(value).length === 0) {
11
+ continue;
12
+ }
13
+ result[key] = shallow ? value : omitEmpty(value);
14
+ }
15
+ return result;
16
+ }
17
+
18
+ // src/lib/promises/reject.js
19
+ function reject(props, { includeStack = true } = {}) {
20
+ const { status, statusText, body, message } = props;
21
+ const e = new Error();
22
+ const err = {
23
+ status,
24
+ statusText: statusText || status && statuses(status),
25
+ body,
26
+ message,
27
+ stack: includeStack && e.stack
28
+ };
29
+ return Promise.reject(omitEmpty(err));
30
+ }
31
+ export {
32
+ reject
33
+ };
@@ -0,0 +1,72 @@
1
+ // src/lib/objects/json.js
2
+ function parseJSON(value, defaultValue = {}) {
3
+ try {
4
+ return JSON.parse(value);
5
+ } catch (e) {
6
+ return defaultValue;
7
+ }
8
+ }
9
+
10
+ // src/lib/objects/omit-empty.js
11
+ function omitEmpty(obj, shallow = false) {
12
+ if (typeof obj !== "object" || obj === null) return obj;
13
+ if (obj instanceof Date) return obj;
14
+ const result = Array.isArray(obj) ? [] : {};
15
+ for (const [key, value] of Object.entries(obj)) {
16
+ if (value === null || value === void 0 || value === "" || typeof value === "object" && !(value instanceof Date) && Object.keys(value).length === 0) {
17
+ continue;
18
+ }
19
+ result[key] = shallow ? value : omitEmpty(value);
20
+ }
21
+ return result;
22
+ }
23
+
24
+ // src/lib/sse.js
25
+ function createSSE({ event, data, id, retry }) {
26
+ const eventString = event ? `event: ${event}
27
+ ` : "";
28
+ const idString = id ? `id: ${id}
29
+ ` : "";
30
+ const retryString = retry ? `retry: ${retry}
31
+ ` : "";
32
+ if (typeof data === "object") data = JSON.stringify(data);
33
+ const dataString = data ? `data: ${data}
34
+ ` : "";
35
+ return `${eventString}${dataString}${idString}${retryString}
36
+ `;
37
+ }
38
+ function parseSSE(message) {
39
+ const lines = message.split("\n");
40
+ const result = {
41
+ event: "message",
42
+ // Default event type
43
+ data: "",
44
+ id: null,
45
+ retry: null
46
+ };
47
+ for (const line of lines) {
48
+ if (line.startsWith("data:")) {
49
+ const data = line.slice(5).trim();
50
+ result.data = parseJSON(data);
51
+ continue;
52
+ }
53
+ if (line.startsWith("event:")) {
54
+ result.event = line.slice(6).trim();
55
+ continue;
56
+ }
57
+ if (line.startsWith("id:")) {
58
+ result.id = line.slice(3).trim();
59
+ continue;
60
+ }
61
+ if (line.startsWith("retry:")) {
62
+ result.retry = parseInt(line.slice(6).trim(), 10);
63
+ continue;
64
+ }
65
+ }
66
+ const ret = omitEmpty(result);
67
+ return ret.data ? ret : null;
68
+ }
69
+ export {
70
+ createSSE,
71
+ parseSSE
72
+ };
@@ -0,0 +1,65 @@
1
+ // src/lib/strings/convert-case/convert-case.js
2
+ function toKebab(string) {
3
+ if (!string) return "";
4
+ return string.split("").map((letter, index) => {
5
+ const previousLetter = string[index - 1] || "";
6
+ const currentLetter = letter;
7
+ if (isDigit(currentLetter) && !isDigit(previousLetter)) {
8
+ return `-${currentLetter}`;
9
+ }
10
+ if (!isCaps(currentLetter)) return currentLetter;
11
+ if (previousLetter === "") {
12
+ return `${currentLetter.toLowerCase()}`;
13
+ }
14
+ if (isCaps(previousLetter)) {
15
+ return `${currentLetter.toLowerCase()}`;
16
+ }
17
+ return `-${currentLetter.toLowerCase()}`;
18
+ }).join("").trim().replace(/[-_\s]+/g, "-");
19
+ }
20
+ function toCamel(string) {
21
+ return toKebab(string).split("-").map((word, index) => {
22
+ if (index === 0) return word;
23
+ return word.slice(0, 1).toUpperCase() + word.slice(1).toLowerCase();
24
+ }).join("");
25
+ }
26
+ function toPascal(string) {
27
+ const camel = toCamel(string);
28
+ return camel.slice(0, 1).toUpperCase() + camel.slice(1);
29
+ }
30
+ function toTitle(string) {
31
+ return toKebab(string).split("-").map((word) => {
32
+ return word.slice(0, 1).toUpperCase() + word.slice(1);
33
+ }).join(" ");
34
+ }
35
+ function toSlug(string) {
36
+ return toKebab(string);
37
+ }
38
+ function toSentence(string) {
39
+ const interim = toKebab(string).replace(/-/g, " ");
40
+ return interim.slice(0, 1).toUpperCase() + interim.slice(1);
41
+ }
42
+ function toUpper(string) {
43
+ const interim = toKebab(string).replace(/-/g, " ");
44
+ return interim.toUpperCase();
45
+ }
46
+ function toLower(string) {
47
+ const interim = toKebab(string).replace(/-/g, " ");
48
+ return interim.toLowerCase();
49
+ }
50
+ function isCaps(char) {
51
+ return /\p{Lu}/u.test(char);
52
+ }
53
+ function isDigit(char) {
54
+ return /[0-9]/.test(char);
55
+ }
56
+ export {
57
+ toCamel,
58
+ toKebab,
59
+ toLower,
60
+ toPascal,
61
+ toSentence,
62
+ toSlug,
63
+ toTitle,
64
+ toUpper
65
+ };
@@ -0,0 +1,140 @@
1
+ // src/lib/strings/convert-case/convert-case.js
2
+ function toKebab(string) {
3
+ if (!string) return "";
4
+ return string.split("").map((letter, index) => {
5
+ const previousLetter = string[index - 1] || "";
6
+ const currentLetter = letter;
7
+ if (isDigit(currentLetter) && !isDigit(previousLetter)) {
8
+ return `-${currentLetter}`;
9
+ }
10
+ if (!isCaps(currentLetter)) return currentLetter;
11
+ if (previousLetter === "") {
12
+ return `${currentLetter.toLowerCase()}`;
13
+ }
14
+ if (isCaps(previousLetter)) {
15
+ return `${currentLetter.toLowerCase()}`;
16
+ }
17
+ return `-${currentLetter.toLowerCase()}`;
18
+ }).join("").trim().replace(/[-_\s]+/g, "-");
19
+ }
20
+ function toCamel(string) {
21
+ return toKebab(string).split("-").map((word, index) => {
22
+ if (index === 0) return word;
23
+ return word.slice(0, 1).toUpperCase() + word.slice(1).toLowerCase();
24
+ }).join("");
25
+ }
26
+ function toPascal(string) {
27
+ const camel = toCamel(string);
28
+ return camel.slice(0, 1).toUpperCase() + camel.slice(1);
29
+ }
30
+ function toTitle(string) {
31
+ return toKebab(string).split("-").map((word) => {
32
+ return word.slice(0, 1).toUpperCase() + word.slice(1);
33
+ }).join(" ");
34
+ }
35
+ function toSlug(string) {
36
+ return toKebab(string);
37
+ }
38
+ function toSentence(string) {
39
+ const interim = toKebab(string).replace(/-/g, " ");
40
+ return interim.slice(0, 1).toUpperCase() + interim.slice(1);
41
+ }
42
+ function toUpper(string) {
43
+ const interim = toKebab(string).replace(/-/g, " ");
44
+ return interim.toUpperCase();
45
+ }
46
+ function toLower(string) {
47
+ const interim = toKebab(string).replace(/-/g, " ");
48
+ return interim.toLowerCase();
49
+ }
50
+ function isCaps(char) {
51
+ return /\p{Lu}/u.test(char);
52
+ }
53
+ function isDigit(char) {
54
+ return /[0-9]/.test(char);
55
+ }
56
+
57
+ // src/lib/strings/markdown.js
58
+ import { marked } from "marked";
59
+ import { gfmHeadingId } from "marked-gfm-heading-id";
60
+ import { mangle } from "marked-mangle";
61
+ function markdown(content, options = {}) {
62
+ const defaultOptions = { inline: false };
63
+ const opts = { ...defaultOptions, ...options };
64
+ marked.use(mangle());
65
+ marked.use(gfmHeadingId());
66
+ const { content: treated } = treatMarkdownWhitespace(content, opts);
67
+ return marked.parse(treated);
68
+ }
69
+ function treatMarkdownWhitespace(content, { inline } = {}) {
70
+ if (!content) return { content: "", inline };
71
+ const lines = content.split("\n");
72
+ if (lines[0] !== "" && inline) return { content, inline: true };
73
+ const firstLineWithLeadingSpacesIndex = lines.findIndex(
74
+ (line) => line.match(/^\s+/)
75
+ );
76
+ const firstLineWithLeadingSpaces = lines[firstLineWithLeadingSpacesIndex];
77
+ const indentation = firstLineWithLeadingSpaces?.match(/^\s+/)?.[0]?.length ?? 0;
78
+ const retContent = lines.map((line, index) => {
79
+ if (index < firstLineWithLeadingSpacesIndex) return line + "\n";
80
+ return line.slice(indentation) + "\n";
81
+ }).join("");
82
+ return {
83
+ content: retContent,
84
+ inline
85
+ };
86
+ }
87
+
88
+ // src/lib/strings/name.js
89
+ function parseFullName(name) {
90
+ const parts = name.trim().split(/\s+/);
91
+ if (parts.length === 1) {
92
+ return { firstName: parts[0], middleName: "", lastName: "" };
93
+ }
94
+ if (parts.length === 2) {
95
+ return { firstName: parts[0], middleName: "", lastName: parts[1] };
96
+ }
97
+ if (parts.length === 3) {
98
+ const firstName2 = parts.slice(0, 2).join(" ");
99
+ const lastName2 = parts[2];
100
+ return { firstName: firstName2, middleName: "", lastName: lastName2 };
101
+ }
102
+ const firstName = parts.slice(0, 2).join(" ");
103
+ const lastName = parts[parts.length - 1];
104
+ const middleName = parts.slice(2, -1).join(" ");
105
+ return { firstName, middleName, lastName };
106
+ }
107
+
108
+ // src/lib/strings/pluralize.js
109
+ import pluralizeLib from "pluralize";
110
+ var pluralize = pluralizeLib;
111
+
112
+ // src/lib/strings/query-string.js
113
+ function toQueryString(object) {
114
+ const searchParams = new URLSearchParams(object);
115
+ return searchParams.toString();
116
+ }
117
+ function plural(count, noun, suffix = "s") {
118
+ console.warn("plural is deprecated. Use pluralize instead");
119
+ return `${count} ${noun}${count !== 1 ? suffix : ""}`;
120
+ }
121
+ function stripNumbers(string) {
122
+ return string.replace(/\d*/, "");
123
+ }
124
+ export {
125
+ markdown,
126
+ parseFullName,
127
+ plural,
128
+ pluralize,
129
+ stripNumbers,
130
+ toCamel,
131
+ toKebab,
132
+ toLower,
133
+ toPascal,
134
+ toQueryString,
135
+ toSentence,
136
+ toSlug,
137
+ toTitle,
138
+ toUpper,
139
+ treatMarkdownWhitespace
140
+ };
@@ -0,0 +1,34 @@
1
+ // src/lib/strings/markdown.js
2
+ import { marked } from "marked";
3
+ import { gfmHeadingId } from "marked-gfm-heading-id";
4
+ import { mangle } from "marked-mangle";
5
+ function markdown(content, options = {}) {
6
+ const defaultOptions = { inline: false };
7
+ const opts = { ...defaultOptions, ...options };
8
+ marked.use(mangle());
9
+ marked.use(gfmHeadingId());
10
+ const { content: treated } = treatMarkdownWhitespace(content, opts);
11
+ return marked.parse(treated);
12
+ }
13
+ function treatMarkdownWhitespace(content, { inline } = {}) {
14
+ if (!content) return { content: "", inline };
15
+ const lines = content.split("\n");
16
+ if (lines[0] !== "" && inline) return { content, inline: true };
17
+ const firstLineWithLeadingSpacesIndex = lines.findIndex(
18
+ (line) => line.match(/^\s+/)
19
+ );
20
+ const firstLineWithLeadingSpaces = lines[firstLineWithLeadingSpacesIndex];
21
+ const indentation = firstLineWithLeadingSpaces?.match(/^\s+/)?.[0]?.length ?? 0;
22
+ const retContent = lines.map((line, index) => {
23
+ if (index < firstLineWithLeadingSpacesIndex) return line + "\n";
24
+ return line.slice(indentation) + "\n";
25
+ }).join("");
26
+ return {
27
+ content: retContent,
28
+ inline
29
+ };
30
+ }
31
+ export {
32
+ markdown,
33
+ treatMarkdownWhitespace
34
+ };
@@ -0,0 +1,22 @@
1
+ // src/lib/strings/name.js
2
+ function parseFullName(name) {
3
+ const parts = name.trim().split(/\s+/);
4
+ if (parts.length === 1) {
5
+ return { firstName: parts[0], middleName: "", lastName: "" };
6
+ }
7
+ if (parts.length === 2) {
8
+ return { firstName: parts[0], middleName: "", lastName: parts[1] };
9
+ }
10
+ if (parts.length === 3) {
11
+ const firstName2 = parts.slice(0, 2).join(" ");
12
+ const lastName2 = parts[2];
13
+ return { firstName: firstName2, middleName: "", lastName: lastName2 };
14
+ }
15
+ const firstName = parts.slice(0, 2).join(" ");
16
+ const lastName = parts[parts.length - 1];
17
+ const middleName = parts.slice(2, -1).join(" ");
18
+ return { firstName, middleName, lastName };
19
+ }
20
+ export {
21
+ parseFullName
22
+ };
@@ -0,0 +1,6 @@
1
+ // src/lib/strings/pluralize.js
2
+ import pluralizeLib from "pluralize";
3
+ var pluralize = pluralizeLib;
4
+ export {
5
+ pluralize
6
+ };
@@ -0,0 +1,17 @@
1
+ // src/lib/strings/query-string.js
2
+ function toQueryString(object) {
3
+ const searchParams = new URLSearchParams(object);
4
+ return searchParams.toString();
5
+ }
6
+ function plural(count, noun, suffix = "s") {
7
+ console.warn("plural is deprecated. Use pluralize instead");
8
+ return `${count} ${noun}${count !== 1 ? suffix : ""}`;
9
+ }
10
+ function stripNumbers(string) {
11
+ return string.replace(/\d*/, "");
12
+ }
13
+ export {
14
+ plural,
15
+ stripNumbers,
16
+ toQueryString
17
+ };
@@ -0,0 +1,38 @@
1
+ // src/lib/strings/convert-case/convert-case.js
2
+ function toKebab(string) {
3
+ if (!string) return "";
4
+ return string.split("").map((letter, index) => {
5
+ const previousLetter = string[index - 1] || "";
6
+ const currentLetter = letter;
7
+ if (isDigit(currentLetter) && !isDigit(previousLetter)) {
8
+ return `-${currentLetter}`;
9
+ }
10
+ if (!isCaps(currentLetter)) return currentLetter;
11
+ if (previousLetter === "") {
12
+ return `${currentLetter.toLowerCase()}`;
13
+ }
14
+ if (isCaps(previousLetter)) {
15
+ return `${currentLetter.toLowerCase()}`;
16
+ }
17
+ return `-${currentLetter.toLowerCase()}`;
18
+ }).join("").trim().replace(/[-_\s]+/g, "-");
19
+ }
20
+ function isCaps(char) {
21
+ return /\p{Lu}/u.test(char);
22
+ }
23
+ function isDigit(char) {
24
+ return /[0-9]/.test(char);
25
+ }
26
+
27
+ // src/lib/style/index.js
28
+ function toStyleString(style) {
29
+ if (!style) return null;
30
+ if (typeof style === "string") return style;
31
+ return Object.entries(style).map(([k, v]) => {
32
+ if (k.startsWith("--")) return `${k}:${v}`;
33
+ else return `${toKebab(k)}:${v}`;
34
+ }).join("; ").concat(";");
35
+ }
36
+ export {
37
+ toStyleString
38
+ };
@@ -0,0 +1,13 @@
1
+ // src/lib/symbols/symbols.js
2
+ function getSymbol(object, description) {
3
+ return Object.getOwnPropertySymbols(object).find(
4
+ (s) => s.description === description
5
+ );
6
+ }
7
+ function getSymbolValue(object, description) {
8
+ return object[getSymbol(object, description)];
9
+ }
10
+ export {
11
+ getSymbol,
12
+ getSymbolValue
13
+ };
@@ -0,0 +1,13 @@
1
+ // src/lib/symbols/symbols.js
2
+ function getSymbol(object, description) {
3
+ return Object.getOwnPropertySymbols(object).find(
4
+ (s) => s.description === description
5
+ );
6
+ }
7
+ function getSymbolValue(object, description) {
8
+ return object[getSymbol(object, description)];
9
+ }
10
+ export {
11
+ getSymbol,
12
+ getSymbolValue
13
+ };
@@ -0,0 +1,8 @@
1
+ // src/node/common.js
2
+ import crypto from "crypto";
3
+ function uuid() {
4
+ return crypto.randomUUID();
5
+ }
6
+ export {
7
+ uuid
8
+ };