tool-shack 0.0.42 → 1.1.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 (719) hide show
  1. package/README.md +123 -69
  2. package/dist/cjs/browser/deleteCookie.d.ts +10 -0
  3. package/dist/cjs/browser/deleteCookie.d.ts.map +1 -0
  4. package/dist/cjs/browser/deleteCookie.js +16 -0
  5. package/dist/cjs/browser/deleteCookie.js.map +1 -0
  6. package/dist/cjs/browser/detectOS.d.ts +8 -0
  7. package/dist/cjs/browser/detectOS.d.ts.map +1 -0
  8. package/dist/cjs/browser/detectOS.js +32 -0
  9. package/dist/cjs/browser/detectOS.js.map +1 -0
  10. package/dist/cjs/browser/downloadFile.d.ts +10 -0
  11. package/dist/cjs/browser/downloadFile.d.ts.map +1 -0
  12. package/dist/cjs/browser/downloadFile.js +25 -0
  13. package/dist/cjs/browser/downloadFile.js.map +1 -0
  14. package/dist/cjs/browser/getCookie.d.ts +8 -0
  15. package/dist/cjs/browser/getCookie.d.ts.map +1 -0
  16. package/dist/cjs/browser/getCookie.js +25 -0
  17. package/dist/cjs/browser/getCookie.js.map +1 -0
  18. package/dist/cjs/browser/getQueryParams.d.ts +8 -0
  19. package/dist/cjs/browser/getQueryParams.d.ts.map +1 -0
  20. package/dist/cjs/browser/getQueryParams.js +24 -0
  21. package/dist/cjs/browser/getQueryParams.js.map +1 -0
  22. package/dist/cjs/browser/index.d.ts +10 -0
  23. package/dist/cjs/browser/index.d.ts.map +1 -1
  24. package/dist/cjs/browser/index.js +33 -10
  25. package/dist/cjs/browser/index.js.map +1 -1
  26. package/dist/cjs/browser/interfaces/detectOS.d.ts +2 -0
  27. package/dist/cjs/browser/interfaces/detectOS.d.ts.map +1 -0
  28. package/dist/cjs/browser/interfaces/detectOS.js +3 -0
  29. package/dist/cjs/browser/interfaces/detectOS.js.map +1 -0
  30. package/dist/cjs/browser/interfaces/index.d.ts +4 -0
  31. package/dist/cjs/browser/interfaces/index.d.ts.map +1 -0
  32. package/dist/cjs/browser/interfaces/index.js +20 -0
  33. package/dist/cjs/browser/interfaces/index.js.map +1 -0
  34. package/dist/cjs/browser/interfaces/isTouchSupported.d.ts +3 -1
  35. package/dist/cjs/browser/interfaces/isTouchSupported.d.ts.map +1 -1
  36. package/dist/cjs/browser/interfaces/setCookie.d.ts +8 -0
  37. package/dist/cjs/browser/interfaces/setCookie.d.ts.map +1 -0
  38. package/dist/cjs/browser/interfaces/setCookie.js +3 -0
  39. package/dist/cjs/browser/interfaces/setCookie.js.map +1 -0
  40. package/dist/cjs/browser/isPageVisible.d.ts +10 -0
  41. package/dist/cjs/browser/isPageVisible.d.ts.map +1 -0
  42. package/dist/cjs/browser/isPageVisible.js +14 -0
  43. package/dist/cjs/browser/isPageVisible.js.map +1 -0
  44. package/dist/cjs/browser/isPushNotificationSupported.d.ts +5 -2
  45. package/dist/cjs/browser/isPushNotificationSupported.d.ts.map +1 -1
  46. package/dist/cjs/browser/isPushNotificationSupported.js +6 -3
  47. package/dist/cjs/browser/isPushNotificationSupported.js.map +1 -1
  48. package/dist/cjs/browser/isTabFocused.d.ts +2 -3
  49. package/dist/cjs/browser/isTabFocused.d.ts.map +1 -1
  50. package/dist/cjs/browser/isTabFocused.js +4 -5
  51. package/dist/cjs/browser/isTabFocused.js.map +1 -1
  52. package/dist/cjs/browser/networkStatusListener.d.ts +9 -0
  53. package/dist/cjs/browser/networkStatusListener.d.ts.map +1 -0
  54. package/dist/cjs/browser/networkStatusListener.js +22 -0
  55. package/dist/cjs/browser/networkStatusListener.js.map +1 -0
  56. package/dist/cjs/browser/pageVisibilityListener.d.ts +12 -0
  57. package/dist/cjs/browser/pageVisibilityListener.d.ts.map +1 -0
  58. package/dist/cjs/browser/pageVisibilityListener.js +30 -0
  59. package/dist/cjs/browser/pageVisibilityListener.js.map +1 -0
  60. package/dist/cjs/browser/preferColorScheme.d.ts +4 -2
  61. package/dist/cjs/browser/preferColorScheme.d.ts.map +1 -1
  62. package/dist/cjs/browser/preferColorScheme.js +4 -2
  63. package/dist/cjs/browser/preferColorScheme.js.map +1 -1
  64. package/dist/cjs/browser/scrollToElement.d.ts.map +1 -1
  65. package/dist/cjs/browser/scrollToElement.js.map +1 -1
  66. package/dist/cjs/browser/scrollToPosition.d.ts.map +1 -1
  67. package/dist/cjs/browser/scrollToPosition.js.map +1 -1
  68. package/dist/cjs/browser/setCookie.d.ts +11 -0
  69. package/dist/cjs/browser/setCookie.d.ts.map +1 -0
  70. package/dist/cjs/browser/setCookie.js +31 -0
  71. package/dist/cjs/browser/setCookie.js.map +1 -0
  72. package/dist/cjs/browser/tabFocusListener.d.ts +3 -6
  73. package/dist/cjs/browser/tabFocusListener.d.ts.map +1 -1
  74. package/dist/cjs/browser/tabFocusListener.js +4 -17
  75. package/dist/cjs/browser/tabFocusListener.js.map +1 -1
  76. package/dist/cjs/dateTime/dateAsIso.d.ts +5 -3
  77. package/dist/cjs/dateTime/dateAsIso.d.ts.map +1 -1
  78. package/dist/cjs/dateTime/dateAsIso.js +5 -3
  79. package/dist/cjs/dateTime/dateAsIso.js.map +1 -1
  80. package/dist/cjs/dateTime/index.d.ts +2 -0
  81. package/dist/cjs/dateTime/index.d.ts.map +1 -1
  82. package/dist/cjs/dateTime/index.js +19 -4
  83. package/dist/cjs/dateTime/index.js.map +1 -1
  84. package/dist/cjs/dateTime/interfaces/index.js +15 -2
  85. package/dist/cjs/dateTime/interfaces/index.js.map +1 -1
  86. package/dist/cjs/dateTime/isSameDay.d.ts +9 -0
  87. package/dist/cjs/dateTime/isSameDay.d.ts.map +1 -0
  88. package/dist/cjs/dateTime/isSameDay.js +19 -0
  89. package/dist/cjs/dateTime/isSameDay.js.map +1 -0
  90. package/dist/cjs/dateTime/parseDuration.d.ts +1 -1
  91. package/dist/cjs/dateTime/parseDuration.d.ts.map +1 -1
  92. package/dist/cjs/dateTime/timeAgo.d.ts +9 -0
  93. package/dist/cjs/dateTime/timeAgo.d.ts.map +1 -0
  94. package/dist/cjs/dateTime/timeAgo.js +39 -0
  95. package/dist/cjs/dateTime/timeAgo.js.map +1 -0
  96. package/dist/cjs/dom/addAsyncEventListener.d.ts +2 -2
  97. package/dist/cjs/dom/addAsyncEventListener.d.ts.map +1 -1
  98. package/dist/cjs/dom/addAsyncEventListener.js +26 -14
  99. package/dist/cjs/dom/addAsyncEventListener.js.map +1 -1
  100. package/dist/cjs/dom/addClickOutsideListener.d.ts +3 -3
  101. package/dist/cjs/dom/addClickOutsideListener.d.ts.map +1 -1
  102. package/dist/cjs/dom/addClickOutsideListener.js +10 -6
  103. package/dist/cjs/dom/addClickOutsideListener.js.map +1 -1
  104. package/dist/cjs/dom/addEventListener.d.ts +5 -3
  105. package/dist/cjs/dom/addEventListener.d.ts.map +1 -1
  106. package/dist/cjs/dom/addEventListener.js +8 -6
  107. package/dist/cjs/dom/addEventListener.js.map +1 -1
  108. package/dist/cjs/dom/copyToClipboard.d.ts +8 -0
  109. package/dist/cjs/dom/copyToClipboard.d.ts.map +1 -0
  110. package/dist/cjs/dom/copyToClipboard.js +41 -0
  111. package/dist/cjs/dom/copyToClipboard.js.map +1 -0
  112. package/dist/cjs/dom/createElement.d.ts +6 -3
  113. package/dist/cjs/dom/createElement.d.ts.map +1 -1
  114. package/dist/cjs/dom/createElement.js +6 -5
  115. package/dist/cjs/dom/createElement.js.map +1 -1
  116. package/dist/cjs/dom/fireEvent.d.ts +4 -4
  117. package/dist/cjs/dom/fireEvent.js +4 -4
  118. package/dist/cjs/dom/index.d.ts +6 -0
  119. package/dist/cjs/dom/index.d.ts.map +1 -1
  120. package/dist/cjs/dom/index.js +29 -10
  121. package/dist/cjs/dom/index.js.map +1 -1
  122. package/dist/cjs/dom/interfaces/createElement.d.ts +1 -1
  123. package/dist/cjs/dom/interfaces/index.d.ts +1 -0
  124. package/dist/cjs/dom/interfaces/index.d.ts.map +1 -1
  125. package/dist/cjs/dom/interfaces/index.js +16 -2
  126. package/dist/cjs/dom/interfaces/index.js.map +1 -1
  127. package/dist/cjs/dom/interfaces/toggleFullscreenWithFallback.d.ts +5 -0
  128. package/dist/cjs/dom/interfaces/toggleFullscreenWithFallback.d.ts.map +1 -0
  129. package/dist/cjs/dom/interfaces/toggleFullscreenWithFallback.js +3 -0
  130. package/dist/cjs/dom/interfaces/toggleFullscreenWithFallback.js.map +1 -0
  131. package/dist/cjs/dom/isInViewport.d.ts +9 -0
  132. package/dist/cjs/dom/isInViewport.d.ts.map +1 -0
  133. package/dist/cjs/dom/isInViewport.js +21 -0
  134. package/dist/cjs/dom/isInViewport.js.map +1 -0
  135. package/dist/cjs/dom/toggleFullscreen.d.ts +8 -0
  136. package/dist/cjs/dom/toggleFullscreen.d.ts.map +1 -0
  137. package/dist/cjs/dom/toggleFullscreen.js +19 -0
  138. package/dist/cjs/dom/toggleFullscreen.js.map +1 -0
  139. package/dist/cjs/dom/toggleFullscreenWithFallback.d.ts +10 -0
  140. package/dist/cjs/dom/toggleFullscreenWithFallback.d.ts.map +1 -0
  141. package/dist/cjs/dom/toggleFullscreenWithFallback.js +83 -0
  142. package/dist/cjs/dom/toggleFullscreenWithFallback.js.map +1 -0
  143. package/dist/cjs/dom/types/createElement.d.ts +3 -0
  144. package/dist/cjs/dom/types/createElement.d.ts.map +1 -0
  145. package/dist/cjs/dom/types/createElement.js +3 -0
  146. package/dist/cjs/dom/types/createElement.js.map +1 -0
  147. package/dist/cjs/dom/types/index.d.ts +3 -0
  148. package/dist/cjs/dom/types/index.d.ts.map +1 -0
  149. package/dist/cjs/dom/types/index.js +19 -0
  150. package/dist/cjs/dom/types/index.js.map +1 -0
  151. package/dist/cjs/dom/types/toggleFullscreenWithFallback.d.ts +15 -0
  152. package/dist/cjs/dom/types/toggleFullscreenWithFallback.d.ts.map +1 -0
  153. package/dist/cjs/dom/types/toggleFullscreenWithFallback.js +3 -0
  154. package/dist/cjs/dom/types/toggleFullscreenWithFallback.js.map +1 -0
  155. package/dist/cjs/dom/waitForElement.d.ts +10 -0
  156. package/dist/cjs/dom/waitForElement.d.ts.map +1 -0
  157. package/dist/cjs/dom/waitForElement.js +35 -0
  158. package/dist/cjs/dom/waitForElement.js.map +1 -0
  159. package/dist/cjs/general/chunk.d.ts +9 -0
  160. package/dist/cjs/general/chunk.d.ts.map +1 -0
  161. package/dist/cjs/general/chunk.js +22 -0
  162. package/dist/cjs/general/chunk.js.map +1 -0
  163. package/dist/cjs/general/clamp.d.ts +10 -0
  164. package/dist/cjs/general/clamp.d.ts.map +1 -0
  165. package/dist/cjs/general/clamp.js +14 -0
  166. package/dist/cjs/general/clamp.js.map +1 -0
  167. package/dist/cjs/general/groupBy.d.ts +9 -0
  168. package/dist/cjs/general/groupBy.d.ts.map +1 -0
  169. package/dist/cjs/general/groupBy.js +23 -0
  170. package/dist/cjs/general/groupBy.js.map +1 -0
  171. package/dist/cjs/general/index.d.ts +6 -0
  172. package/dist/cjs/general/index.d.ts.map +1 -1
  173. package/dist/cjs/general/index.js +23 -4
  174. package/dist/cjs/general/index.js.map +1 -1
  175. package/dist/cjs/general/isEmpty.d.ts +1 -1
  176. package/dist/cjs/general/isEmpty.d.ts.map +1 -1
  177. package/dist/cjs/general/isEmpty.js +7 -1
  178. package/dist/cjs/general/isEmpty.js.map +1 -1
  179. package/dist/cjs/general/isEqual.d.ts +11 -0
  180. package/dist/cjs/general/isEqual.d.ts.map +1 -0
  181. package/dist/cjs/general/isEqual.js +65 -0
  182. package/dist/cjs/general/isEqual.js.map +1 -0
  183. package/dist/cjs/general/isNil.d.ts +1 -1
  184. package/dist/cjs/general/isNil.d.ts.map +1 -1
  185. package/dist/cjs/general/isNil.js.map +1 -1
  186. package/dist/cjs/general/isValidJson.js +1 -1
  187. package/dist/cjs/general/isValidJson.js.map +1 -1
  188. package/dist/cjs/general/pick.d.ts +9 -0
  189. package/dist/cjs/general/pick.d.ts.map +1 -0
  190. package/dist/cjs/general/pick.js +21 -0
  191. package/dist/cjs/general/pick.js.map +1 -0
  192. package/dist/cjs/general/unique.d.ts +9 -0
  193. package/dist/cjs/general/unique.d.ts.map +1 -0
  194. package/dist/cjs/general/unique.js +27 -0
  195. package/dist/cjs/general/unique.js.map +1 -0
  196. package/dist/cjs/index.d.ts +1 -0
  197. package/dist/cjs/index.d.ts.map +1 -1
  198. package/dist/cjs/index.js +21 -7
  199. package/dist/cjs/index.js.map +1 -1
  200. package/dist/cjs/package.json +3 -0
  201. package/dist/cjs/schedule/debounce.d.ts +10 -0
  202. package/dist/cjs/schedule/debounce.d.ts.map +1 -0
  203. package/dist/cjs/schedule/debounce.js +31 -0
  204. package/dist/cjs/schedule/debounce.js.map +1 -0
  205. package/dist/cjs/schedule/index.d.ts +5 -0
  206. package/dist/cjs/schedule/index.d.ts.map +1 -1
  207. package/dist/cjs/schedule/index.js +21 -3
  208. package/dist/cjs/schedule/index.js.map +1 -1
  209. package/dist/cjs/schedule/interfaces/debounce.d.ts +5 -0
  210. package/dist/cjs/schedule/interfaces/debounce.d.ts.map +1 -0
  211. package/dist/cjs/schedule/interfaces/debounce.js +3 -0
  212. package/dist/cjs/schedule/interfaces/debounce.js.map +1 -0
  213. package/dist/cjs/schedule/interfaces/index.d.ts +5 -0
  214. package/dist/cjs/schedule/interfaces/index.d.ts.map +1 -0
  215. package/dist/cjs/schedule/interfaces/index.js +21 -0
  216. package/dist/cjs/schedule/interfaces/index.js.map +1 -0
  217. package/dist/cjs/schedule/interfaces/retry.d.ts +6 -0
  218. package/dist/cjs/schedule/interfaces/retry.d.ts.map +1 -0
  219. package/dist/cjs/schedule/interfaces/retry.js +3 -0
  220. package/dist/cjs/schedule/interfaces/retry.js.map +1 -0
  221. package/dist/cjs/schedule/interfaces/runAnimation.d.ts +5 -0
  222. package/dist/cjs/schedule/interfaces/runAnimation.d.ts.map +1 -0
  223. package/dist/cjs/schedule/interfaces/runAnimation.js +3 -0
  224. package/dist/cjs/schedule/interfaces/runAnimation.js.map +1 -0
  225. package/dist/cjs/schedule/interfaces/throttle.d.ts +5 -0
  226. package/dist/cjs/schedule/interfaces/throttle.d.ts.map +1 -0
  227. package/dist/cjs/schedule/interfaces/throttle.js +3 -0
  228. package/dist/cjs/schedule/interfaces/throttle.js.map +1 -0
  229. package/dist/cjs/schedule/retry.d.ts +10 -0
  230. package/dist/cjs/schedule/retry.d.ts.map +1 -0
  231. package/dist/cjs/schedule/retry.js +34 -0
  232. package/dist/cjs/schedule/retry.js.map +1 -0
  233. package/dist/cjs/schedule/runAnimation.d.ts +3 -5
  234. package/dist/cjs/schedule/runAnimation.d.ts.map +1 -1
  235. package/dist/cjs/schedule/runAnimation.js +4 -4
  236. package/dist/cjs/schedule/runAnimation.js.map +1 -1
  237. package/dist/cjs/schedule/runAsync.d.ts +6 -4
  238. package/dist/cjs/schedule/runAsync.d.ts.map +1 -1
  239. package/dist/cjs/schedule/runAsync.js +11 -9
  240. package/dist/cjs/schedule/runAsync.js.map +1 -1
  241. package/dist/cjs/schedule/sleep.d.ts +8 -0
  242. package/dist/cjs/schedule/sleep.d.ts.map +1 -0
  243. package/dist/cjs/schedule/sleep.js +12 -0
  244. package/dist/cjs/schedule/sleep.js.map +1 -0
  245. package/dist/cjs/schedule/throttle.d.ts +10 -0
  246. package/dist/cjs/schedule/throttle.d.ts.map +1 -0
  247. package/dist/cjs/schedule/throttle.js +40 -0
  248. package/dist/cjs/schedule/throttle.js.map +1 -0
  249. package/dist/cjs/storage/clearLocalStorage.d.ts +7 -0
  250. package/dist/cjs/storage/clearLocalStorage.d.ts.map +1 -0
  251. package/dist/cjs/storage/clearLocalStorage.js +20 -0
  252. package/dist/cjs/storage/clearLocalStorage.js.map +1 -0
  253. package/dist/cjs/storage/clearSessionStorage.d.ts +7 -0
  254. package/dist/cjs/storage/clearSessionStorage.d.ts.map +1 -0
  255. package/dist/cjs/storage/clearSessionStorage.js +20 -0
  256. package/dist/cjs/storage/clearSessionStorage.js.map +1 -0
  257. package/dist/cjs/storage/getLocalStorage.d.ts +11 -0
  258. package/dist/cjs/storage/getLocalStorage.d.ts.map +1 -0
  259. package/dist/cjs/storage/getLocalStorage.js +38 -0
  260. package/dist/cjs/storage/getLocalStorage.js.map +1 -0
  261. package/dist/cjs/storage/getSessionStorage.d.ts +11 -0
  262. package/dist/cjs/storage/getSessionStorage.d.ts.map +1 -0
  263. package/dist/cjs/storage/getSessionStorage.js +38 -0
  264. package/dist/cjs/storage/getSessionStorage.js.map +1 -0
  265. package/dist/cjs/storage/index.d.ts +10 -0
  266. package/dist/cjs/storage/index.d.ts.map +1 -0
  267. package/dist/cjs/storage/index.js +26 -0
  268. package/dist/cjs/storage/index.js.map +1 -0
  269. package/dist/cjs/storage/interfaces/index.d.ts +2 -0
  270. package/dist/cjs/storage/interfaces/index.d.ts.map +1 -0
  271. package/dist/cjs/storage/interfaces/index.js +18 -0
  272. package/dist/cjs/storage/interfaces/index.js.map +1 -0
  273. package/dist/cjs/storage/interfaces/storage.d.ts +4 -0
  274. package/dist/cjs/storage/interfaces/storage.d.ts.map +1 -0
  275. package/dist/cjs/storage/interfaces/storage.js +3 -0
  276. package/dist/cjs/storage/interfaces/storage.js.map +1 -0
  277. package/dist/cjs/storage/removeLocalStorage.d.ts +8 -0
  278. package/dist/cjs/storage/removeLocalStorage.d.ts.map +1 -0
  279. package/dist/cjs/storage/removeLocalStorage.js +21 -0
  280. package/dist/cjs/storage/removeLocalStorage.js.map +1 -0
  281. package/dist/cjs/storage/removeSessionStorage.d.ts +8 -0
  282. package/dist/cjs/storage/removeSessionStorage.d.ts.map +1 -0
  283. package/dist/cjs/storage/removeSessionStorage.js +21 -0
  284. package/dist/cjs/storage/removeSessionStorage.js.map +1 -0
  285. package/dist/cjs/storage/setLocalStorage.d.ts +11 -0
  286. package/dist/cjs/storage/setLocalStorage.d.ts.map +1 -0
  287. package/dist/cjs/storage/setLocalStorage.js +31 -0
  288. package/dist/cjs/storage/setLocalStorage.js.map +1 -0
  289. package/dist/cjs/storage/setSessionStorage.d.ts +11 -0
  290. package/dist/cjs/storage/setSessionStorage.d.ts.map +1 -0
  291. package/dist/cjs/storage/setSessionStorage.js +31 -0
  292. package/dist/cjs/storage/setSessionStorage.js.map +1 -0
  293. package/dist/cjs/string/camelCase.d.ts +8 -0
  294. package/dist/cjs/string/camelCase.d.ts.map +1 -0
  295. package/dist/cjs/string/camelCase.js +17 -0
  296. package/dist/cjs/string/camelCase.js.map +1 -0
  297. package/dist/cjs/string/capitalize.d.ts +8 -0
  298. package/dist/cjs/string/capitalize.d.ts.map +1 -0
  299. package/dist/cjs/string/capitalize.js +12 -0
  300. package/dist/cjs/string/capitalize.js.map +1 -0
  301. package/dist/cjs/string/decodeBase64.d.ts +8 -0
  302. package/dist/cjs/string/decodeBase64.d.ts.map +1 -0
  303. package/dist/cjs/string/decodeBase64.js +14 -0
  304. package/dist/cjs/string/decodeBase64.js.map +1 -0
  305. package/dist/cjs/string/encodeBase64.d.ts +8 -0
  306. package/dist/cjs/string/encodeBase64.d.ts.map +1 -0
  307. package/dist/cjs/string/encodeBase64.js +12 -0
  308. package/dist/cjs/string/encodeBase64.js.map +1 -0
  309. package/dist/cjs/string/escapeHTML.d.ts +5 -3
  310. package/dist/cjs/string/escapeHTML.d.ts.map +1 -1
  311. package/dist/cjs/string/escapeHTML.js +11 -8
  312. package/dist/cjs/string/escapeHTML.js.map +1 -1
  313. package/dist/cjs/string/formatBytes.d.ts +9 -0
  314. package/dist/cjs/string/formatBytes.d.ts.map +1 -0
  315. package/dist/cjs/string/formatBytes.js +23 -0
  316. package/dist/cjs/string/formatBytes.js.map +1 -0
  317. package/dist/cjs/string/index.d.ts +13 -0
  318. package/dist/cjs/string/index.d.ts.map +1 -1
  319. package/dist/cjs/string/index.js +32 -6
  320. package/dist/cjs/string/index.js.map +1 -1
  321. package/dist/cjs/string/interfaces/index.d.ts +2 -0
  322. package/dist/cjs/string/interfaces/index.d.ts.map +1 -0
  323. package/dist/cjs/string/interfaces/index.js +18 -0
  324. package/dist/cjs/string/interfaces/index.js.map +1 -0
  325. package/dist/cjs/string/interfaces/mask.d.ts +6 -0
  326. package/dist/cjs/string/interfaces/mask.d.ts.map +1 -0
  327. package/dist/cjs/string/interfaces/mask.js +3 -0
  328. package/dist/cjs/string/interfaces/mask.js.map +1 -0
  329. package/dist/cjs/string/kebabCase.d.ts +8 -0
  330. package/dist/cjs/string/kebabCase.d.ts.map +1 -0
  331. package/dist/cjs/string/kebabCase.js +18 -0
  332. package/dist/cjs/string/kebabCase.js.map +1 -0
  333. package/dist/cjs/string/mask.d.ts +10 -0
  334. package/dist/cjs/string/mask.d.ts.map +1 -0
  335. package/dist/cjs/string/mask.js +29 -0
  336. package/dist/cjs/string/mask.js.map +1 -0
  337. package/dist/cjs/string/pascalCase.d.ts +8 -0
  338. package/dist/cjs/string/pascalCase.d.ts.map +1 -0
  339. package/dist/cjs/string/pascalCase.js +14 -0
  340. package/dist/cjs/string/pascalCase.js.map +1 -0
  341. package/dist/cjs/string/randomCryptoString.d.ts +9 -0
  342. package/dist/cjs/string/randomCryptoString.d.ts.map +1 -0
  343. package/dist/cjs/string/randomCryptoString.js +23 -0
  344. package/dist/cjs/string/randomCryptoString.js.map +1 -0
  345. package/dist/cjs/string/randomString.d.ts +9 -0
  346. package/dist/cjs/string/randomString.d.ts.map +1 -0
  347. package/dist/cjs/string/randomString.js +21 -0
  348. package/dist/cjs/string/randomString.js.map +1 -0
  349. package/dist/cjs/string/slugify.d.ts.map +1 -1
  350. package/dist/cjs/string/slugify.js +7 -2
  351. package/dist/cjs/string/slugify.js.map +1 -1
  352. package/dist/cjs/string/snakeCase.d.ts +8 -0
  353. package/dist/cjs/string/snakeCase.d.ts.map +1 -0
  354. package/dist/cjs/string/snakeCase.js +18 -0
  355. package/dist/cjs/string/snakeCase.js.map +1 -0
  356. package/dist/cjs/string/truncate.d.ts.map +1 -1
  357. package/dist/cjs/string/truncate.js.map +1 -1
  358. package/dist/cjs/string/unescapeHTML.d.ts +8 -0
  359. package/dist/cjs/string/unescapeHTML.d.ts.map +1 -0
  360. package/dist/cjs/string/unescapeHTML.js +16 -0
  361. package/dist/cjs/string/unescapeHTML.js.map +1 -0
  362. package/dist/esm/browser/deleteCookie.d.ts +10 -0
  363. package/dist/esm/browser/deleteCookie.d.ts.map +1 -0
  364. package/dist/esm/browser/deleteCookie.js +12 -0
  365. package/dist/esm/browser/deleteCookie.js.map +1 -0
  366. package/dist/esm/browser/detectOS.d.ts +8 -0
  367. package/dist/esm/browser/detectOS.d.ts.map +1 -0
  368. package/dist/esm/browser/detectOS.js +28 -0
  369. package/dist/esm/browser/detectOS.js.map +1 -0
  370. package/dist/esm/browser/downloadFile.d.ts +10 -0
  371. package/dist/esm/browser/downloadFile.d.ts.map +1 -0
  372. package/dist/esm/browser/downloadFile.js +21 -0
  373. package/dist/esm/browser/downloadFile.js.map +1 -0
  374. package/dist/esm/browser/getCookie.d.ts +8 -0
  375. package/dist/esm/browser/getCookie.d.ts.map +1 -0
  376. package/dist/esm/browser/getCookie.js +21 -0
  377. package/dist/esm/browser/getCookie.js.map +1 -0
  378. package/dist/esm/browser/getQueryParams.d.ts +8 -0
  379. package/dist/esm/browser/getQueryParams.d.ts.map +1 -0
  380. package/dist/esm/browser/getQueryParams.js +20 -0
  381. package/dist/esm/browser/getQueryParams.js.map +1 -0
  382. package/dist/esm/browser/index.d.ts +10 -0
  383. package/dist/esm/browser/index.d.ts.map +1 -1
  384. package/dist/esm/browser/index.js +10 -0
  385. package/dist/esm/browser/index.js.map +1 -1
  386. package/dist/esm/browser/interfaces/detectOS.d.ts +2 -0
  387. package/dist/esm/browser/interfaces/detectOS.d.ts.map +1 -0
  388. package/dist/esm/browser/interfaces/detectOS.js +2 -0
  389. package/dist/esm/browser/interfaces/detectOS.js.map +1 -0
  390. package/dist/esm/browser/interfaces/index.d.ts +4 -0
  391. package/dist/esm/browser/interfaces/index.d.ts.map +1 -0
  392. package/dist/esm/browser/interfaces/index.js +4 -0
  393. package/dist/esm/browser/interfaces/index.js.map +1 -0
  394. package/dist/esm/browser/interfaces/isTouchSupported.d.ts +3 -1
  395. package/dist/esm/browser/interfaces/isTouchSupported.d.ts.map +1 -1
  396. package/dist/esm/browser/interfaces/setCookie.d.ts +8 -0
  397. package/dist/esm/browser/interfaces/setCookie.d.ts.map +1 -0
  398. package/dist/esm/browser/interfaces/setCookie.js +2 -0
  399. package/dist/esm/browser/interfaces/setCookie.js.map +1 -0
  400. package/dist/esm/browser/isPageVisible.d.ts +10 -0
  401. package/dist/esm/browser/isPageVisible.d.ts.map +1 -0
  402. package/dist/esm/browser/isPageVisible.js +10 -0
  403. package/dist/esm/browser/isPageVisible.js.map +1 -0
  404. package/dist/esm/browser/isPushNotificationSupported.d.ts +5 -2
  405. package/dist/esm/browser/isPushNotificationSupported.d.ts.map +1 -1
  406. package/dist/esm/browser/isPushNotificationSupported.js +6 -3
  407. package/dist/esm/browser/isPushNotificationSupported.js.map +1 -1
  408. package/dist/esm/browser/isTabFocused.d.ts +2 -3
  409. package/dist/esm/browser/isTabFocused.d.ts.map +1 -1
  410. package/dist/esm/browser/isTabFocused.js +4 -4
  411. package/dist/esm/browser/isTabFocused.js.map +1 -1
  412. package/dist/esm/browser/networkStatusListener.d.ts +9 -0
  413. package/dist/esm/browser/networkStatusListener.d.ts.map +1 -0
  414. package/dist/esm/browser/networkStatusListener.js +18 -0
  415. package/dist/esm/browser/networkStatusListener.js.map +1 -0
  416. package/dist/esm/browser/pageVisibilityListener.d.ts +12 -0
  417. package/dist/esm/browser/pageVisibilityListener.d.ts.map +1 -0
  418. package/dist/esm/browser/pageVisibilityListener.js +26 -0
  419. package/dist/esm/browser/pageVisibilityListener.js.map +1 -0
  420. package/dist/esm/browser/preferColorScheme.d.ts +4 -2
  421. package/dist/esm/browser/preferColorScheme.d.ts.map +1 -1
  422. package/dist/esm/browser/preferColorScheme.js +4 -2
  423. package/dist/esm/browser/preferColorScheme.js.map +1 -1
  424. package/dist/esm/browser/scrollToElement.d.ts.map +1 -1
  425. package/dist/esm/browser/scrollToElement.js.map +1 -1
  426. package/dist/esm/browser/scrollToPosition.d.ts.map +1 -1
  427. package/dist/esm/browser/scrollToPosition.js.map +1 -1
  428. package/dist/esm/browser/setCookie.d.ts +11 -0
  429. package/dist/esm/browser/setCookie.d.ts.map +1 -0
  430. package/dist/esm/browser/setCookie.js +27 -0
  431. package/dist/esm/browser/setCookie.js.map +1 -0
  432. package/dist/esm/browser/tabFocusListener.d.ts +3 -6
  433. package/dist/esm/browser/tabFocusListener.d.ts.map +1 -1
  434. package/dist/esm/browser/tabFocusListener.js +4 -16
  435. package/dist/esm/browser/tabFocusListener.js.map +1 -1
  436. package/dist/esm/dateTime/dateAsIso.d.ts +5 -3
  437. package/dist/esm/dateTime/dateAsIso.d.ts.map +1 -1
  438. package/dist/esm/dateTime/dateAsIso.js +5 -3
  439. package/dist/esm/dateTime/dateAsIso.js.map +1 -1
  440. package/dist/esm/dateTime/index.d.ts +2 -0
  441. package/dist/esm/dateTime/index.d.ts.map +1 -1
  442. package/dist/esm/dateTime/index.js +2 -0
  443. package/dist/esm/dateTime/index.js.map +1 -1
  444. package/dist/esm/dateTime/isSameDay.d.ts +9 -0
  445. package/dist/esm/dateTime/isSameDay.d.ts.map +1 -0
  446. package/dist/esm/dateTime/isSameDay.js +15 -0
  447. package/dist/esm/dateTime/isSameDay.js.map +1 -0
  448. package/dist/esm/dateTime/parseDuration.d.ts +1 -1
  449. package/dist/esm/dateTime/parseDuration.d.ts.map +1 -1
  450. package/dist/esm/dateTime/timeAgo.d.ts +9 -0
  451. package/dist/esm/dateTime/timeAgo.d.ts.map +1 -0
  452. package/dist/esm/dateTime/timeAgo.js +35 -0
  453. package/dist/esm/dateTime/timeAgo.js.map +1 -0
  454. package/dist/esm/dom/addAsyncEventListener.d.ts +2 -2
  455. package/dist/esm/dom/addAsyncEventListener.d.ts.map +1 -1
  456. package/dist/esm/dom/addAsyncEventListener.js +26 -14
  457. package/dist/esm/dom/addAsyncEventListener.js.map +1 -1
  458. package/dist/esm/dom/addClickOutsideListener.d.ts +3 -3
  459. package/dist/esm/dom/addClickOutsideListener.d.ts.map +1 -1
  460. package/dist/esm/dom/addClickOutsideListener.js +10 -6
  461. package/dist/esm/dom/addClickOutsideListener.js.map +1 -1
  462. package/dist/esm/dom/addEventListener.d.ts +5 -3
  463. package/dist/esm/dom/addEventListener.d.ts.map +1 -1
  464. package/dist/esm/dom/addEventListener.js +8 -6
  465. package/dist/esm/dom/addEventListener.js.map +1 -1
  466. package/dist/esm/dom/copyToClipboard.d.ts +8 -0
  467. package/dist/esm/dom/copyToClipboard.d.ts.map +1 -0
  468. package/dist/esm/dom/copyToClipboard.js +37 -0
  469. package/dist/esm/dom/copyToClipboard.js.map +1 -0
  470. package/dist/esm/dom/createElement.d.ts +6 -3
  471. package/dist/esm/dom/createElement.d.ts.map +1 -1
  472. package/dist/esm/dom/createElement.js +6 -5
  473. package/dist/esm/dom/createElement.js.map +1 -1
  474. package/dist/esm/dom/fireEvent.d.ts +4 -4
  475. package/dist/esm/dom/fireEvent.js +4 -4
  476. package/dist/esm/dom/index.d.ts +6 -0
  477. package/dist/esm/dom/index.d.ts.map +1 -1
  478. package/dist/esm/dom/index.js +6 -0
  479. package/dist/esm/dom/index.js.map +1 -1
  480. package/dist/esm/dom/interfaces/createElement.d.ts +1 -1
  481. package/dist/esm/dom/interfaces/index.d.ts +1 -0
  482. package/dist/esm/dom/interfaces/index.d.ts.map +1 -1
  483. package/dist/esm/dom/interfaces/index.js +1 -0
  484. package/dist/esm/dom/interfaces/index.js.map +1 -1
  485. package/dist/esm/dom/interfaces/toggleFullscreenWithFallback.d.ts +5 -0
  486. package/dist/esm/dom/interfaces/toggleFullscreenWithFallback.d.ts.map +1 -0
  487. package/dist/esm/dom/interfaces/toggleFullscreenWithFallback.js +2 -0
  488. package/dist/esm/dom/interfaces/toggleFullscreenWithFallback.js.map +1 -0
  489. package/dist/esm/dom/isInViewport.d.ts +9 -0
  490. package/dist/esm/dom/isInViewport.d.ts.map +1 -0
  491. package/dist/esm/dom/isInViewport.js +17 -0
  492. package/dist/esm/dom/isInViewport.js.map +1 -0
  493. package/dist/esm/dom/toggleFullscreen.d.ts +8 -0
  494. package/dist/esm/dom/toggleFullscreen.d.ts.map +1 -0
  495. package/dist/esm/dom/toggleFullscreen.js +15 -0
  496. package/dist/esm/dom/toggleFullscreen.js.map +1 -0
  497. package/dist/esm/dom/toggleFullscreenWithFallback.d.ts +10 -0
  498. package/dist/esm/dom/toggleFullscreenWithFallback.d.ts.map +1 -0
  499. package/dist/esm/dom/toggleFullscreenWithFallback.js +79 -0
  500. package/dist/esm/dom/toggleFullscreenWithFallback.js.map +1 -0
  501. package/dist/esm/dom/types/createElement.d.ts +3 -0
  502. package/dist/esm/dom/types/createElement.d.ts.map +1 -0
  503. package/dist/esm/dom/types/createElement.js +2 -0
  504. package/dist/esm/dom/types/createElement.js.map +1 -0
  505. package/dist/esm/dom/types/index.d.ts +3 -0
  506. package/dist/esm/dom/types/index.d.ts.map +1 -0
  507. package/dist/esm/dom/types/index.js +3 -0
  508. package/dist/esm/dom/types/index.js.map +1 -0
  509. package/dist/esm/dom/types/toggleFullscreenWithFallback.d.ts +15 -0
  510. package/dist/esm/dom/types/toggleFullscreenWithFallback.d.ts.map +1 -0
  511. package/dist/esm/dom/types/toggleFullscreenWithFallback.js +2 -0
  512. package/dist/esm/dom/types/toggleFullscreenWithFallback.js.map +1 -0
  513. package/dist/esm/dom/waitForElement.d.ts +10 -0
  514. package/dist/esm/dom/waitForElement.d.ts.map +1 -0
  515. package/dist/esm/dom/waitForElement.js +31 -0
  516. package/dist/esm/dom/waitForElement.js.map +1 -0
  517. package/dist/esm/general/chunk.d.ts +9 -0
  518. package/dist/esm/general/chunk.d.ts.map +1 -0
  519. package/dist/esm/general/chunk.js +18 -0
  520. package/dist/esm/general/chunk.js.map +1 -0
  521. package/dist/esm/general/clamp.d.ts +10 -0
  522. package/dist/esm/general/clamp.d.ts.map +1 -0
  523. package/dist/esm/general/clamp.js +10 -0
  524. package/dist/esm/general/clamp.js.map +1 -0
  525. package/dist/esm/general/groupBy.d.ts +9 -0
  526. package/dist/esm/general/groupBy.d.ts.map +1 -0
  527. package/dist/esm/general/groupBy.js +19 -0
  528. package/dist/esm/general/groupBy.js.map +1 -0
  529. package/dist/esm/general/index.d.ts +6 -0
  530. package/dist/esm/general/index.d.ts.map +1 -1
  531. package/dist/esm/general/index.js +6 -0
  532. package/dist/esm/general/index.js.map +1 -1
  533. package/dist/esm/general/isEmpty.d.ts +1 -1
  534. package/dist/esm/general/isEmpty.d.ts.map +1 -1
  535. package/dist/esm/general/isEmpty.js +7 -1
  536. package/dist/esm/general/isEmpty.js.map +1 -1
  537. package/dist/esm/general/isEqual.d.ts +11 -0
  538. package/dist/esm/general/isEqual.d.ts.map +1 -0
  539. package/dist/esm/general/isEqual.js +61 -0
  540. package/dist/esm/general/isEqual.js.map +1 -0
  541. package/dist/esm/general/isNil.d.ts +1 -1
  542. package/dist/esm/general/isNil.d.ts.map +1 -1
  543. package/dist/esm/general/isNil.js.map +1 -1
  544. package/dist/esm/general/isValidJson.js +1 -1
  545. package/dist/esm/general/isValidJson.js.map +1 -1
  546. package/dist/esm/general/pick.d.ts +9 -0
  547. package/dist/esm/general/pick.d.ts.map +1 -0
  548. package/dist/esm/general/pick.js +17 -0
  549. package/dist/esm/general/pick.js.map +1 -0
  550. package/dist/esm/general/unique.d.ts +9 -0
  551. package/dist/esm/general/unique.d.ts.map +1 -0
  552. package/dist/esm/general/unique.js +23 -0
  553. package/dist/esm/general/unique.js.map +1 -0
  554. package/dist/esm/index.d.ts +1 -0
  555. package/dist/esm/index.d.ts.map +1 -1
  556. package/dist/esm/index.js +1 -0
  557. package/dist/esm/index.js.map +1 -1
  558. package/dist/esm/schedule/debounce.d.ts +10 -0
  559. package/dist/esm/schedule/debounce.d.ts.map +1 -0
  560. package/dist/esm/schedule/debounce.js +27 -0
  561. package/dist/esm/schedule/debounce.js.map +1 -0
  562. package/dist/esm/schedule/index.d.ts +5 -0
  563. package/dist/esm/schedule/index.d.ts.map +1 -1
  564. package/dist/esm/schedule/index.js +5 -0
  565. package/dist/esm/schedule/index.js.map +1 -1
  566. package/dist/esm/schedule/interfaces/debounce.d.ts +5 -0
  567. package/dist/esm/schedule/interfaces/debounce.d.ts.map +1 -0
  568. package/dist/esm/schedule/interfaces/debounce.js +2 -0
  569. package/dist/esm/schedule/interfaces/debounce.js.map +1 -0
  570. package/dist/esm/schedule/interfaces/index.d.ts +5 -0
  571. package/dist/esm/schedule/interfaces/index.d.ts.map +1 -0
  572. package/dist/esm/schedule/interfaces/index.js +5 -0
  573. package/dist/esm/schedule/interfaces/index.js.map +1 -0
  574. package/dist/esm/schedule/interfaces/retry.d.ts +6 -0
  575. package/dist/esm/schedule/interfaces/retry.d.ts.map +1 -0
  576. package/dist/esm/schedule/interfaces/retry.js +2 -0
  577. package/dist/esm/schedule/interfaces/retry.js.map +1 -0
  578. package/dist/esm/schedule/interfaces/runAnimation.d.ts +5 -0
  579. package/dist/esm/schedule/interfaces/runAnimation.d.ts.map +1 -0
  580. package/dist/esm/schedule/interfaces/runAnimation.js +2 -0
  581. package/dist/esm/schedule/interfaces/runAnimation.js.map +1 -0
  582. package/dist/esm/schedule/interfaces/throttle.d.ts +5 -0
  583. package/dist/esm/schedule/interfaces/throttle.d.ts.map +1 -0
  584. package/dist/esm/schedule/interfaces/throttle.js +2 -0
  585. package/dist/esm/schedule/interfaces/throttle.js.map +1 -0
  586. package/dist/esm/schedule/retry.d.ts +10 -0
  587. package/dist/esm/schedule/retry.d.ts.map +1 -0
  588. package/dist/esm/schedule/retry.js +30 -0
  589. package/dist/esm/schedule/retry.js.map +1 -0
  590. package/dist/esm/schedule/runAnimation.d.ts +3 -5
  591. package/dist/esm/schedule/runAnimation.d.ts.map +1 -1
  592. package/dist/esm/schedule/runAnimation.js +4 -4
  593. package/dist/esm/schedule/runAnimation.js.map +1 -1
  594. package/dist/esm/schedule/runAsync.d.ts +6 -4
  595. package/dist/esm/schedule/runAsync.d.ts.map +1 -1
  596. package/dist/esm/schedule/runAsync.js +11 -9
  597. package/dist/esm/schedule/runAsync.js.map +1 -1
  598. package/dist/esm/schedule/sleep.d.ts +8 -0
  599. package/dist/esm/schedule/sleep.d.ts.map +1 -0
  600. package/dist/esm/schedule/sleep.js +8 -0
  601. package/dist/esm/schedule/sleep.js.map +1 -0
  602. package/dist/esm/schedule/throttle.d.ts +10 -0
  603. package/dist/esm/schedule/throttle.d.ts.map +1 -0
  604. package/dist/esm/schedule/throttle.js +36 -0
  605. package/dist/esm/schedule/throttle.js.map +1 -0
  606. package/dist/esm/storage/clearLocalStorage.d.ts +7 -0
  607. package/dist/esm/storage/clearLocalStorage.d.ts.map +1 -0
  608. package/dist/esm/storage/clearLocalStorage.js +16 -0
  609. package/dist/esm/storage/clearLocalStorage.js.map +1 -0
  610. package/dist/esm/storage/clearSessionStorage.d.ts +7 -0
  611. package/dist/esm/storage/clearSessionStorage.d.ts.map +1 -0
  612. package/dist/esm/storage/clearSessionStorage.js +16 -0
  613. package/dist/esm/storage/clearSessionStorage.js.map +1 -0
  614. package/dist/esm/storage/getLocalStorage.d.ts +11 -0
  615. package/dist/esm/storage/getLocalStorage.d.ts.map +1 -0
  616. package/dist/esm/storage/getLocalStorage.js +34 -0
  617. package/dist/esm/storage/getLocalStorage.js.map +1 -0
  618. package/dist/esm/storage/getSessionStorage.d.ts +11 -0
  619. package/dist/esm/storage/getSessionStorage.d.ts.map +1 -0
  620. package/dist/esm/storage/getSessionStorage.js +34 -0
  621. package/dist/esm/storage/getSessionStorage.js.map +1 -0
  622. package/dist/esm/storage/index.d.ts +10 -0
  623. package/dist/esm/storage/index.d.ts.map +1 -0
  624. package/dist/esm/storage/index.js +10 -0
  625. package/dist/esm/storage/index.js.map +1 -0
  626. package/dist/esm/storage/interfaces/index.d.ts +2 -0
  627. package/dist/esm/storage/interfaces/index.d.ts.map +1 -0
  628. package/dist/esm/storage/interfaces/index.js +2 -0
  629. package/dist/esm/storage/interfaces/index.js.map +1 -0
  630. package/dist/esm/storage/interfaces/storage.d.ts +4 -0
  631. package/dist/esm/storage/interfaces/storage.d.ts.map +1 -0
  632. package/dist/esm/storage/interfaces/storage.js +2 -0
  633. package/dist/esm/storage/interfaces/storage.js.map +1 -0
  634. package/dist/esm/storage/removeLocalStorage.d.ts +8 -0
  635. package/dist/esm/storage/removeLocalStorage.d.ts.map +1 -0
  636. package/dist/esm/storage/removeLocalStorage.js +17 -0
  637. package/dist/esm/storage/removeLocalStorage.js.map +1 -0
  638. package/dist/esm/storage/removeSessionStorage.d.ts +8 -0
  639. package/dist/esm/storage/removeSessionStorage.d.ts.map +1 -0
  640. package/dist/esm/storage/removeSessionStorage.js +17 -0
  641. package/dist/esm/storage/removeSessionStorage.js.map +1 -0
  642. package/dist/esm/storage/setLocalStorage.d.ts +11 -0
  643. package/dist/esm/storage/setLocalStorage.d.ts.map +1 -0
  644. package/dist/esm/storage/setLocalStorage.js +27 -0
  645. package/dist/esm/storage/setLocalStorage.js.map +1 -0
  646. package/dist/esm/storage/setSessionStorage.d.ts +11 -0
  647. package/dist/esm/storage/setSessionStorage.d.ts.map +1 -0
  648. package/dist/esm/storage/setSessionStorage.js +27 -0
  649. package/dist/esm/storage/setSessionStorage.js.map +1 -0
  650. package/dist/esm/string/camelCase.d.ts +8 -0
  651. package/dist/esm/string/camelCase.d.ts.map +1 -0
  652. package/dist/esm/string/camelCase.js +13 -0
  653. package/dist/esm/string/camelCase.js.map +1 -0
  654. package/dist/esm/string/capitalize.d.ts +8 -0
  655. package/dist/esm/string/capitalize.d.ts.map +1 -0
  656. package/dist/esm/string/capitalize.js +8 -0
  657. package/dist/esm/string/capitalize.js.map +1 -0
  658. package/dist/esm/string/decodeBase64.d.ts +8 -0
  659. package/dist/esm/string/decodeBase64.d.ts.map +1 -0
  660. package/dist/esm/string/decodeBase64.js +10 -0
  661. package/dist/esm/string/decodeBase64.js.map +1 -0
  662. package/dist/esm/string/encodeBase64.d.ts +8 -0
  663. package/dist/esm/string/encodeBase64.d.ts.map +1 -0
  664. package/dist/esm/string/encodeBase64.js +8 -0
  665. package/dist/esm/string/encodeBase64.js.map +1 -0
  666. package/dist/esm/string/escapeHTML.d.ts +5 -3
  667. package/dist/esm/string/escapeHTML.d.ts.map +1 -1
  668. package/dist/esm/string/escapeHTML.js +11 -8
  669. package/dist/esm/string/escapeHTML.js.map +1 -1
  670. package/dist/esm/string/formatBytes.d.ts +9 -0
  671. package/dist/esm/string/formatBytes.d.ts.map +1 -0
  672. package/dist/esm/string/formatBytes.js +19 -0
  673. package/dist/esm/string/formatBytes.js.map +1 -0
  674. package/dist/esm/string/index.d.ts +13 -0
  675. package/dist/esm/string/index.d.ts.map +1 -1
  676. package/dist/esm/string/index.js +13 -0
  677. package/dist/esm/string/index.js.map +1 -1
  678. package/dist/esm/string/interfaces/index.d.ts +2 -0
  679. package/dist/esm/string/interfaces/index.d.ts.map +1 -0
  680. package/dist/esm/string/interfaces/index.js +2 -0
  681. package/dist/esm/string/interfaces/index.js.map +1 -0
  682. package/dist/esm/string/interfaces/mask.d.ts +6 -0
  683. package/dist/esm/string/interfaces/mask.d.ts.map +1 -0
  684. package/dist/esm/string/interfaces/mask.js +2 -0
  685. package/dist/esm/string/interfaces/mask.js.map +1 -0
  686. package/dist/esm/string/kebabCase.d.ts +8 -0
  687. package/dist/esm/string/kebabCase.d.ts.map +1 -0
  688. package/dist/esm/string/kebabCase.js +14 -0
  689. package/dist/esm/string/kebabCase.js.map +1 -0
  690. package/dist/esm/string/mask.d.ts +10 -0
  691. package/dist/esm/string/mask.d.ts.map +1 -0
  692. package/dist/esm/string/mask.js +25 -0
  693. package/dist/esm/string/mask.js.map +1 -0
  694. package/dist/esm/string/pascalCase.d.ts +8 -0
  695. package/dist/esm/string/pascalCase.d.ts.map +1 -0
  696. package/dist/esm/string/pascalCase.js +10 -0
  697. package/dist/esm/string/pascalCase.js.map +1 -0
  698. package/dist/esm/string/randomCryptoString.d.ts +9 -0
  699. package/dist/esm/string/randomCryptoString.d.ts.map +1 -0
  700. package/dist/esm/string/randomCryptoString.js +19 -0
  701. package/dist/esm/string/randomCryptoString.js.map +1 -0
  702. package/dist/esm/string/randomString.d.ts +9 -0
  703. package/dist/esm/string/randomString.d.ts.map +1 -0
  704. package/dist/esm/string/randomString.js +17 -0
  705. package/dist/esm/string/randomString.js.map +1 -0
  706. package/dist/esm/string/slugify.d.ts.map +1 -1
  707. package/dist/esm/string/slugify.js +7 -2
  708. package/dist/esm/string/slugify.js.map +1 -1
  709. package/dist/esm/string/snakeCase.d.ts +8 -0
  710. package/dist/esm/string/snakeCase.d.ts.map +1 -0
  711. package/dist/esm/string/snakeCase.js +14 -0
  712. package/dist/esm/string/snakeCase.js.map +1 -0
  713. package/dist/esm/string/truncate.d.ts.map +1 -1
  714. package/dist/esm/string/truncate.js.map +1 -1
  715. package/dist/esm/string/unescapeHTML.d.ts +8 -0
  716. package/dist/esm/string/unescapeHTML.d.ts.map +1 -0
  717. package/dist/esm/string/unescapeHTML.js +12 -0
  718. package/dist/esm/string/unescapeHTML.js.map +1 -0
  719. package/package.json +13 -6
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
5
  [![TypeScript](https://img.shields.io/badge/TypeScript-Ready-blue.svg)](https://www.typescriptlang.org/)
6
6
 
7
- A lightweight, zero-dependency TypeScript utility library providing essential helper functions for the browser, DOM manipulation, strings, date/time formatting, scheduling, and general data validation.
7
+ A lightweight, zero-dependency TypeScript utility library providing essential helper functions for the browser, DOM manipulation, storage, strings, date/time formatting, scheduling, and general data validation.
8
8
 
9
9
  ---
10
10
 
@@ -36,14 +36,30 @@ yarn add tool-shack
36
36
  ## Quick Start
37
37
 
38
38
  ```typescript
39
- import { slugify, parseDuration, createElement, isTouchSupported, isValidJson } from 'tool-shack';
39
+ import {
40
+ slugify,
41
+ parseDuration,
42
+ createElement,
43
+ isTouchSupported,
44
+ isValidJson,
45
+ timeAgo,
46
+ formatBytes,
47
+ setLocalStorage,
48
+ getLocalStorage,
49
+ } from 'tool-shack';
40
50
 
41
51
  // String manipulation
42
52
  console.log(slugify('Hello World!')); // 'hello-world'
53
+ console.log(formatBytes(1572864)); // '1.5 MB'
54
+
55
+ // Storage
56
+ setLocalStorage('user', { name: 'Alice' });
57
+ console.log(getLocalStorage('user')); // { name: 'Alice' }
43
58
 
44
59
  // Date & Time
45
60
  console.log(parseDuration(3661000));
46
61
  // { days: 0, hours: 1, minutes: 1, seconds: 1, milliseconds: 0 }
62
+ console.log(timeAgo(new Date(Date.now() - 5 * 60000))); // '5 minutes ago'
47
63
 
48
64
  // General Validation
49
65
  console.log(isValidJson('{"valid": true}')); // true
@@ -55,103 +71,141 @@ console.log(isValidJson('{"valid": true}')); // true
55
71
 
56
72
  ### 🌐 Browser (`browser`)
57
73
 
58
- Utilities for feature detection, device capabilities, viewport scrolling, and tab focus.
59
-
60
- | Function | Description |
61
- | ----------------------------------- | --------------------------------------------------------------------- |
62
- | `isTouchSupported()` | Checks if the current device/browser supports touch events |
63
- | `isPushNotificationSupported()` | Checks if Push Notifications and Service Workers are supported |
64
- | `isScrollBehaviorSupported()` | Checks if native smooth scroll behavior is supported |
65
- | `isShareSupported()` | Checks if the Web Share API (`navigator.share`) is supported |
66
- | `isTabFocused()` | Checks whether the browser tab currently has focus |
67
- | `tabFocusListener(onFocus, onBlur)` | Subscribes callbacks for window/tab focus and blur events |
68
- | `preferColorScheme()` | Detects user color scheme preference (`'dark'`, `'light'`, or `null`) |
69
- | `scrollToElement(element, options)` | Smoothly scrolls the window or container to a target element |
70
- | `scrollToPosition(options)` | Smoothly scrolls to specific x/y coordinates |
74
+ Utilities for feature detection, device capabilities, cookies, downloads, URL parameters, and page visibility.
75
+
76
+ | Function | Description |
77
+ | -------------------------------------------------- | ----------------------------------------------------------------------------------- |
78
+ | `detectOS()` | Detects user operating system (`'ios'`, `'android'`, `'macos'`, etc.) |
79
+ | `isTouchSupported()` | Checks if the current device/browser supports touch events |
80
+ | `isPushNotificationSupported()` | Checks Web Push support (Notification, Service Worker, and PushManager) |
81
+ | `isScrollBehaviorSupported()` | Checks if native smooth scroll behavior is supported |
82
+ | `isShareSupported()` | Checks if the Web Share API (`navigator.share`) is supported |
83
+ | `isPageVisible()` | Checks whether the page is currently visible (`!document.hidden`) |
84
+ | `pageVisibilityListener(onVisible, onHidden)` | Subscribes to Page Visibility changes with a cleanup handle |
85
+ | `isTabFocused()` | Deprecated alias of `isPageVisible` |
86
+ | `tabFocusListener(onVisible, onHidden)` | Deprecated alias of `pageVisibilityListener` |
87
+ | `preferColorScheme()` | Returns `'light'` if that media query matches, otherwise `'dark'` |
88
+ | `preferLightColorScheme()` | Whether `(prefers-color-scheme: light)` matches |
89
+ | `preferDarkColorScheme()` | Whether `(prefers-color-scheme: dark)` matches |
90
+ | `scrollToElement(element, offset?, smoothScroll?)` | Scrolls the window to the element (offset default `0`, smoothScroll default `true`) |
91
+ | `scrollToPosition(x, y, smoothScroll?, target?)` | Scrolls window or a given element to `x`/`y` (smoothScroll default `true`) |
92
+ | `downloadFile(data, filename, mimeType?)` | Programmatically triggers file download in the browser |
93
+ | `getQueryParams(url?)` | Extracts URL search query parameters into a key-value object |
94
+ | `networkStatusListener(onOnline, onOffline)` | Subscribes to browser online/offline events with cleanup handle |
95
+ | `getCookie(name)` | Retrieves and decodes a cookie value by name |
96
+ | `setCookie(name, value, options?)` | Sets a browser cookie with days, path, domain, secure, and sameSite |
97
+ | `deleteCookie(name, options?)` | Deletes a browser cookie by name |
71
98
 
72
99
  ---
73
100
 
74
- ### 🧱 DOM (`dom`)
101
+ ### 💾 Storage (`storage`)
75
102
 
76
- Simplified element creation, event handling, and DOM placement.
103
+ Type-safe `localStorage` and `sessionStorage` helpers with JSON serialization, optional Base64 encoding, and exception safety.
77
104
 
78
- | Function | Description |
79
- | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
80
- | `createElement(tagName, props)` | Creates a DOM element with attributes, styles, dataset, ARIA, listeners, and children in a single call |
81
- | `addEventListener(target, type, listener, options)` | Attaches event listener(s) with support for multiple event types and array of targets |
82
- | `addAsyncEventListener(target, type, listener, options)` | Attaches an asynchronous event listener |
83
- | `addClickOutsideListener(element, callback)` | Triggers a callback when clicking outside a specified element |
84
- | `appendBefore(target, element)` | Inserts an element immediately before the target node |
85
- | `appendAfter(target, element)` | Inserts an element immediately after the target node |
86
- | `fireEvent(element, eventName, detail)` | Dispatches a custom or native DOM event |
87
- | `getElementOffset(element)` | Computes top, left, width, and height offsets relative to viewport/document |
105
+ | Function | Description |
106
+ | --------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
107
+ | `getLocalStorage(key, fallback?, options?)` | JSON-parses localStorage; optional `{ encode: true }` Base64 decode; fallback default `null` |
108
+ | `setLocalStorage(key, value, options?)` | JSON-serializes to localStorage; optional Base64; returns `false` if the value is not serializable |
109
+ | `removeLocalStorage(key)` | Removes item from localStorage |
110
+ | `clearLocalStorage()` | Clears all items from localStorage |
111
+ | `getSessionStorage(key, fallback?, options?)` | JSON-parses sessionStorage; optional `{ encode: true }` Base64 decode; fallback default `null` |
112
+ | `setSessionStorage(key, value, options?)` | JSON-serializes to sessionStorage; optional Base64; returns `false` if the value is not serializable |
113
+ | `removeSessionStorage(key)` | Removes item from sessionStorage |
114
+ | `clearSessionStorage()` | Clears all items from sessionStorage |
88
115
 
89
- #### `createElement` Example
116
+ ---
90
117
 
91
- ```typescript
92
- import { createElement } from 'tool-shack';
93
-
94
- const button = createElement<HTMLButtonElement>('button', {
95
- className: 'btn primary',
96
- style: { backgroundColor: '#0070f3', color: '#fff' },
97
- aria: { label: 'Submit form' },
98
- dataset: { action: 'submit' },
99
- listeners: {
100
- click: () => console.log('Clicked!'),
101
- },
102
- children: ['Click Me'],
103
- });
104
-
105
- document.body.appendChild(button);
106
- ```
118
+ ### 🧱 DOM (`dom`)
119
+
120
+ Simplified element creation, async/outside event handling, clipboard operations, viewport detection, and fullscreen.
121
+
122
+ | Function | Description |
123
+ | ------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
124
+ | `createElement(tagName, props?)` | Creates a DOM element with attributes, styles, dataset, ARIA, listeners, and children; known tags infer their element type |
125
+ | `addEventListener(element, listeners)` | Attaches a map of event-name handlers to one element or a list of elements (no cleanup) |
126
+ | `addAsyncEventListener(selector, listeners, acceptBubbling?)` | Attaches delegated document listeners for matching elements, with cleanup |
127
+ | `addClickOutsideListener(element, callback)` | Triggers a callback when clicking outside a specified element, with cleanup |
128
+ | `appendBefore(newNode, referenceNode)` | Inserts `newNode` immediately before `referenceNode` |
129
+ | `appendAfter(newNode, referenceNode)` | Inserts `newNode` immediately after `referenceNode` |
130
+ | `copyToClipboard(text)` | Copies text via Clipboard API with textarea fallback; returns `Promise<boolean>` |
131
+ | `fireEvent(element, eventType)` | Dispatches a native `Event` (no `detail` payload) |
132
+ | `getElementOffset(element)` | Returns document-relative `{ top, left }` |
133
+ | `isInViewport(element, offset?)` | Checks if an element is currently within the visible viewport |
134
+ | `toggleFullscreen(element?)` | Toggles native fullscreen mode for an element or document root |
135
+ | `toggleFullscreenWithFallback(element?, options?)` | Toggles fullscreen with CSS pseudo-fullscreen fallback for iOS Safari and unsupported browsers |
136
+ | `waitForElement(selector, timeout?, parent?)` | Waits for an element to appear in the DOM using `MutationObserver` |
107
137
 
108
138
  ---
109
139
 
110
140
  ### 🔤 String (`string`)
111
141
 
112
- String transformations, formatting, and sanitation.
113
-
114
- | Function | Description |
115
- | ---------------------------------- | ------------------------------------------------------------------------- |
116
- | `slugify(value, separator?)` | Converts text into URL-safe slug with diacritics removal (default `-`) |
117
- | `removeDiacritics(value)` | Strips accent marks and diacritics from text |
118
- | `truncate(value, length, suffix?)` | Truncates a string to a given length and appends a suffix (default `...`) |
119
- | `escapeHTML(value)` | Escapes HTML entities (`&`, `<`, `>`, `"`, `'`) |
120
- | `byteSize(value)` | Calculates the byte length of a string in UTF-8 |
142
+ Case conversions, string transformations, formatting, escaping, masking, and random string generators.
143
+
144
+ | Function | Description |
145
+ | --------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
146
+ | `camelCase(value)` | Converts string to `camelCase` |
147
+ | `capitalize(value)` | Capitalizes the first character of a string |
148
+ | `decodeBase64(value)` | Safely decodes a Base64 string to a Unicode string |
149
+ | `encodeBase64(value)` | Safely encodes a Unicode string to a Base64 string |
150
+ | `kebabCase(value)` | Converts string to `kebab-case` |
151
+ | `pascalCase(value)` | Converts string to `PascalCase` |
152
+ | `snakeCase(value)` | Converts string to `snake_case` |
153
+ | `slugify(value, separator?)` | Converts text into URL-safe slug with diacritics removal (default `-`) |
154
+ | `removeDiacritics(value)` | Strips accent marks and diacritics from text |
155
+ | `truncate(value, maxLength, suffix?)` | Truncates a string to a given length and appends a suffix (default `...`) |
156
+ | `mask(value, options?)` | Masks sensitive string characters (e.g. for card numbers or tokens) |
157
+ | `formatBytes(bytes, decimals?)` | Formats byte number into readable string (`'1.5 MB'`, `'2 KB'`) |
158
+ | `escapeHTML(value)` | Encodes `&`, `<`, `>`, `"`, and `'` as HTML entities for ordinary text or quoted attributes; not a sanitizer |
159
+ | `unescapeHTML(value)` | Unescapes HTML entities back to plain text |
160
+ | `byteSize(value)` | Calculates the byte length of a string in UTF-8 |
161
+ | `randomString(length?, charset?)` | Generates random string using `Math.random` |
162
+ | `randomCryptoString(length?, charset?)` | Generates cryptographically secure random string using Web Crypto API |
121
163
 
122
164
  ---
123
165
 
124
166
  ### ⏱️ Date & Time (`dateTime`)
125
167
 
126
- Date formatting and duration parsing.
168
+ Date formatting, duration parsing, relative time, and calendar day comparison.
127
169
 
128
- | Function | Description |
129
- | ----------------------------- | ------------------------------------------------------------------------------- |
130
- | `parseDuration(durationInMs)` | Breaks down milliseconds into `{ days, hours, minutes, seconds, milliseconds }` |
131
- | `dateAsIso(date?)` | Formats a Date object as an ISO string (`YYYY-MM-DDTHH:mm:ss.sssZ`) |
170
+ | Function | Description |
171
+ | ----------------------------- | ------------------------------------------------------------------------------------ |
172
+ | `parseDuration(durationInMs)` | Breaks down milliseconds into `{ days, hours, minutes, seconds, milliseconds }` |
173
+ | `dateAsIso(date)` | Formats a Date as local `YYYY-MM-DDTHH:mm:ss±HH:mm` (required Date; no milliseconds) |
174
+ | `timeAgo(date, locale?)` | Formats a date into a human-readable relative string (`'5 minutes ago'`) |
175
+ | `isSameDay(date1, date2)` | Checks if two Date, timestamp, or date-string values fall on the same calendar day |
132
176
 
133
177
  ---
134
178
 
135
179
  ### ⚙️ General (`general`)
136
180
 
137
- Value safety checks and JSON validation.
181
+ Array deduplication, picking, grouping & chunking, value comparison, number clamping, value safety checks, and JSON validation.
138
182
 
139
- | Function | Description |
140
- | -------------------- | ------------------------------------------------------- |
141
- | `isEmpty(value)` | Checks if a string, array, map, set, or object is empty |
142
- | `isNil(value)` | Checks if a value is `null` or `undefined` |
143
- | `isValidJson(value)` | Validates whether a given string is valid JSON |
183
+ | Function | Description |
184
+ | ------------------------ | --------------------------------------------------------------------------- |
185
+ | `pick(object, keys)` | Creates object composed of picked object properties |
186
+ | `unique(array, keyFn?)` | Deduplicates array items by reference or key callback |
187
+ | `isEqual(a, b)` | Compares primitives, arrays, Dates, RegExps, and own enumerable string keys |
188
+ | `clamp(value, min, max)` | Constrains a number between min and max boundaries |
189
+ | `groupBy(array, keyFn)` | Groups array elements into an object by key |
190
+ | `chunk(array, size?)` | Splits array into chunks of specified size (default `1`) |
191
+ | `isEmpty(value)` | Checks if a string, array, map, set, or object is empty |
192
+ | `isNil(value)` | Checks if a value is `null` or `undefined` |
193
+ | `isValidJson(value)` | Validates whether a given string is valid JSON |
144
194
 
145
195
  ---
146
196
 
147
197
  ### ⏳ Schedule (`schedule`)
148
198
 
149
- Animation frames and async execution helpers.
199
+ Debouncing, throttling, async retry, sleep, and animation frames.
150
200
 
151
- | Function | Description |
152
- | ---------------------------- | ------------------------------------------------------------------------------ |
153
- | `runAnimation(callback)` | Executes a callback with `requestAnimationFrame` and returns a cancel function |
154
- | `runAsync(callback, delay?)` | Runs a callback asynchronously (via microtask or `setTimeout`) |
201
+ | Function | Description |
202
+ | ------------------------------------ | -------------------------------------------------------------------------- |
203
+ | `debounce(fn, delay?)` | Creates debounced function with `.cancel()` (delay default `300`) |
204
+ | `throttle(fn, limit?)` | Creates throttled function with `.cancel()` (limit default `300`) |
205
+ | `sleep(ms)` | Promise-based delay helper (`await sleep(500)`) |
206
+ | `retry(fn, options?)` | Retries async function with exponential backoff before failing |
207
+ | `runAnimation(callback, autoStart?)` | `requestAnimationFrame` loop; returns `{ startAnimation, stopAnimation }` |
208
+ | `runAsync(callback)` | Runs function source in a Blob Web Worker (no closures; async not awaited) |
155
209
 
156
210
  ---
157
211
 
@@ -0,0 +1,10 @@
1
+ import type { ICookieOptions } from './interfaces/setCookie.js';
2
+ /**
3
+ * Delete a browser cookie by name
4
+ *
5
+ * @param name Cookie name to delete
6
+ * @param options Optional path and domain to match cookie scope
7
+ * @returns void
8
+ */
9
+ export declare const deleteCookie: (name: string, options?: Pick<ICookieOptions, "path" | "domain">) => void;
10
+ //# sourceMappingURL=deleteCookie.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deleteCookie.d.ts","sourceRoot":"","sources":["../../../src/browser/deleteCookie.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGhE;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GACvB,MAAM,MAAM,EACZ,UAAU,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,QAAQ,CAAC,KAChD,IAEF,CAAC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteCookie = void 0;
4
+ const setCookie_js_1 = require("./setCookie.js");
5
+ /**
6
+ * Delete a browser cookie by name
7
+ *
8
+ * @param name Cookie name to delete
9
+ * @param options Optional path and domain to match cookie scope
10
+ * @returns void
11
+ */
12
+ const deleteCookie = (name, options) => {
13
+ (0, setCookie_js_1.setCookie)(name, '', { ...options, days: -1 });
14
+ };
15
+ exports.deleteCookie = deleteCookie;
16
+ //# sourceMappingURL=deleteCookie.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deleteCookie.js","sourceRoot":"","sources":["../../../src/browser/deleteCookie.ts"],"names":[],"mappings":";;;AACA,iDAA2C;AAE3C;;;;;;GAMG;AACI,MAAM,YAAY,GAAG,CAC1B,IAAY,EACZ,OAAiD,EAC3C,EAAE;IACR,IAAA,wBAAS,EAAC,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAChD,CAAC,CAAC;AALW,QAAA,YAAY,gBAKvB"}
@@ -0,0 +1,8 @@
1
+ import type { TOSName } from './interfaces/detectOS.js';
2
+ /**
3
+ * Detect user operating system from browser environment
4
+ *
5
+ * @returns Detected OS name ('ios' | 'android' | 'macos' | 'windows' | 'linux' | 'unknown')
6
+ */
7
+ export declare const detectOS: () => TOSName;
8
+ //# sourceMappingURL=detectOS.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detectOS.d.ts","sourceRoot":"","sources":["../../../src/browser/detectOS.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAExD;;;;GAIG;AACH,eAAO,MAAM,QAAQ,QAAO,OAwB3B,CAAC"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.detectOS = void 0;
4
+ /**
5
+ * Detect user operating system from browser environment
6
+ *
7
+ * @returns Detected OS name ('ios' | 'android' | 'macos' | 'windows' | 'linux' | 'unknown')
8
+ */
9
+ const detectOS = () => {
10
+ if (typeof navigator === 'undefined') {
11
+ return 'unknown';
12
+ }
13
+ const userAgent = navigator.userAgent.toLowerCase();
14
+ if (/iphone|ipad|ipod/.test(userAgent)) {
15
+ return 'ios';
16
+ }
17
+ if (/android/.test(userAgent)) {
18
+ return 'android';
19
+ }
20
+ if (/macintosh|mac os x/.test(userAgent)) {
21
+ return 'macos';
22
+ }
23
+ if (/windows|win32|win64/.test(userAgent)) {
24
+ return 'windows';
25
+ }
26
+ if (/linux/.test(userAgent)) {
27
+ return 'linux';
28
+ }
29
+ return 'unknown';
30
+ };
31
+ exports.detectOS = detectOS;
32
+ //# sourceMappingURL=detectOS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detectOS.js","sourceRoot":"","sources":["../../../src/browser/detectOS.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACI,MAAM,QAAQ,GAAG,GAAY,EAAE;IACpC,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE,CAAC;QACrC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;IAEpD,IAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACzC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1C,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAxBW,QAAA,QAAQ,YAwBnB"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Programmatically download a file in browser
3
+ *
4
+ * @param data File content as string or Blob
5
+ * @param filename Desired filename
6
+ * @param mimeType Optional MIME type when data is string (default 'text/plain')
7
+ * @returns void
8
+ */
9
+ export declare const downloadFile: (data: string | Blob, filename: string, mimeType?: string) => void;
10
+ //# sourceMappingURL=downloadFile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"downloadFile.d.ts","sourceRoot":"","sources":["../../../src/browser/downloadFile.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,GACvB,MAAM,MAAM,GAAG,IAAI,EACnB,UAAU,MAAM,EAChB,iBAAuB,KACtB,IAcF,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.downloadFile = void 0;
4
+ /**
5
+ * Programmatically download a file in browser
6
+ *
7
+ * @param data File content as string or Blob
8
+ * @param filename Desired filename
9
+ * @param mimeType Optional MIME type when data is string (default 'text/plain')
10
+ * @returns void
11
+ */
12
+ const downloadFile = (data, filename, mimeType = 'text/plain') => {
13
+ const blob = typeof data === 'string' ? new Blob([data], { type: mimeType }) : data;
14
+ const url = URL.createObjectURL(blob);
15
+ const tempLink = document.createElement('a');
16
+ tempLink.href = url;
17
+ tempLink.download = filename;
18
+ tempLink.style.display = 'none';
19
+ document.body.appendChild(tempLink);
20
+ tempLink.click();
21
+ document.body.removeChild(tempLink);
22
+ URL.revokeObjectURL(url);
23
+ };
24
+ exports.downloadFile = downloadFile;
25
+ //# sourceMappingURL=downloadFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"downloadFile.js","sourceRoot":"","sources":["../../../src/browser/downloadFile.ts"],"names":[],"mappings":";;;AAAA;;;;;;;GAOG;AACI,MAAM,YAAY,GAAG,CAC1B,IAAmB,EACnB,QAAgB,EAChB,QAAQ,GAAG,YAAY,EACjB,EAAE;IACR,MAAM,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACpF,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAE7C,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC;IACpB,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IAEhC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEpC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC,CAAC;AAlBW,QAAA,YAAY,gBAkBvB"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Get browser cookie value by name
3
+ *
4
+ * @param name Cookie name
5
+ * @returns Decoded cookie value or null if not found
6
+ */
7
+ export declare const getCookie: (name: string) => string | null;
8
+ //# sourceMappingURL=getCookie.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCookie.d.ts","sourceRoot":"","sources":["../../../src/browser/getCookie.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,KAAG,MAAM,GAAG,IAiBjD,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCookie = void 0;
4
+ /**
5
+ * Get browser cookie value by name
6
+ *
7
+ * @param name Cookie name
8
+ * @returns Decoded cookie value or null if not found
9
+ */
10
+ const getCookie = (name) => {
11
+ const encodedName = encodeURIComponent(name);
12
+ for (const part of document.cookie.split(';')) {
13
+ const entry = part.trim();
14
+ const separatorIndex = entry.indexOf('=');
15
+ if (separatorIndex === -1) {
16
+ continue;
17
+ }
18
+ if (entry.slice(0, separatorIndex) === encodedName) {
19
+ return decodeURIComponent(entry.slice(separatorIndex + 1));
20
+ }
21
+ }
22
+ return null;
23
+ };
24
+ exports.getCookie = getCookie;
25
+ //# sourceMappingURL=getCookie.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCookie.js","sourceRoot":"","sources":["../../../src/browser/getCookie.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACI,MAAM,SAAS,GAAG,CAAC,IAAY,EAAiB,EAAE;IACvD,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAE7C,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1B,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAE1C,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;YAC1B,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,KAAK,WAAW,EAAE,CAAC;YACnD,OAAO,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAjBW,QAAA,SAAS,aAiBpB"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Extract query parameters from URL into a key-value record
3
+ *
4
+ * @param url Optional URL string (defaults to window.location.href)
5
+ * @returns Record of query parameters; empty if the URL is invalid or has no search
6
+ */
7
+ export declare const getQueryParams: (url?: string) => Record<string, string>;
8
+ //# sourceMappingURL=getQueryParams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getQueryParams.d.ts","sourceRoot":"","sources":["../../../src/browser/getQueryParams.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAalE,CAAC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getQueryParams = void 0;
4
+ /**
5
+ * Extract query parameters from URL into a key-value record
6
+ *
7
+ * @param url Optional URL string (defaults to window.location.href)
8
+ * @returns Record of query parameters; empty if the URL is invalid or has no search
9
+ */
10
+ const getQueryParams = (url) => {
11
+ const result = {};
12
+ const base = typeof window !== 'undefined' ? window.location.href : 'http://localhost/';
13
+ try {
14
+ new URL(url ?? base, base).searchParams.forEach((value, key) => {
15
+ result[key] = value;
16
+ });
17
+ }
18
+ catch {
19
+ return result;
20
+ }
21
+ return result;
22
+ };
23
+ exports.getQueryParams = getQueryParams;
24
+ //# sourceMappingURL=getQueryParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getQueryParams.js","sourceRoot":"","sources":["../../../src/browser/getQueryParams.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACI,MAAM,cAAc,GAAG,CAAC,GAAY,EAA0B,EAAE;IACrE,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,MAAM,IAAI,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC;IAExF,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC7D,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAbW,QAAA,cAAc,kBAazB"}
@@ -1,10 +1,20 @@
1
+ export * from './interfaces/index.js';
2
+ export * from './deleteCookie.js';
3
+ export * from './detectOS.js';
4
+ export * from './downloadFile.js';
5
+ export * from './getCookie.js';
6
+ export * from './getQueryParams.js';
7
+ export * from './isPageVisible.js';
1
8
  export * from './isPushNotificationSupported.js';
2
9
  export * from './isScrollBehaviorSupported.js';
3
10
  export * from './isShareSupported.js';
4
11
  export * from './isTabFocused.js';
5
12
  export * from './isTouchSupported.js';
13
+ export * from './networkStatusListener.js';
14
+ export * from './pageVisibilityListener.js';
6
15
  export * from './preferColorScheme.js';
7
16
  export * from './scrollToElement.js';
8
17
  export * from './scrollToPosition.js';
18
+ export * from './setCookie.js';
9
19
  export * from './tabFocusListener.js';
10
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/browser/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/browser/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AAEtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
@@ -1,13 +1,36 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./isPushNotificationSupported.js"), exports);
5
- tslib_1.__exportStar(require("./isScrollBehaviorSupported.js"), exports);
6
- tslib_1.__exportStar(require("./isShareSupported.js"), exports);
7
- tslib_1.__exportStar(require("./isTabFocused.js"), exports);
8
- tslib_1.__exportStar(require("./isTouchSupported.js"), exports);
9
- tslib_1.__exportStar(require("./preferColorScheme.js"), exports);
10
- tslib_1.__exportStar(require("./scrollToElement.js"), exports);
11
- tslib_1.__exportStar(require("./scrollToPosition.js"), exports);
12
- tslib_1.__exportStar(require("./tabFocusListener.js"), exports);
17
+ __exportStar(require("./interfaces/index.js"), exports);
18
+ __exportStar(require("./deleteCookie.js"), exports);
19
+ __exportStar(require("./detectOS.js"), exports);
20
+ __exportStar(require("./downloadFile.js"), exports);
21
+ __exportStar(require("./getCookie.js"), exports);
22
+ __exportStar(require("./getQueryParams.js"), exports);
23
+ __exportStar(require("./isPageVisible.js"), exports);
24
+ __exportStar(require("./isPushNotificationSupported.js"), exports);
25
+ __exportStar(require("./isScrollBehaviorSupported.js"), exports);
26
+ __exportStar(require("./isShareSupported.js"), exports);
27
+ __exportStar(require("./isTabFocused.js"), exports);
28
+ __exportStar(require("./isTouchSupported.js"), exports);
29
+ __exportStar(require("./networkStatusListener.js"), exports);
30
+ __exportStar(require("./pageVisibilityListener.js"), exports);
31
+ __exportStar(require("./preferColorScheme.js"), exports);
32
+ __exportStar(require("./scrollToElement.js"), exports);
33
+ __exportStar(require("./scrollToPosition.js"), exports);
34
+ __exportStar(require("./setCookie.js"), exports);
35
+ __exportStar(require("./tabFocusListener.js"), exports);
13
36
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/browser/index.ts"],"names":[],"mappings":";;;AAAA,2EAAiD;AACjD,yEAA+C;AAC/C,gEAAsC;AACtC,4DAAkC;AAClC,gEAAsC;AACtC,iEAAuC;AACvC,+DAAqC;AACrC,gEAAsC;AACtC,gEAAsC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/browser/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AAEtC,oDAAkC;AAClC,gDAA8B;AAC9B,oDAAkC;AAClC,iDAA+B;AAC/B,sDAAoC;AACpC,qDAAmC;AACnC,mEAAiD;AACjD,iEAA+C;AAC/C,wDAAsC;AACtC,oDAAkC;AAClC,wDAAsC;AACtC,6DAA2C;AAC3C,8DAA4C;AAC5C,yDAAuC;AACvC,uDAAqC;AACrC,wDAAsC;AACtC,iDAA+B;AAC/B,wDAAsC"}
@@ -0,0 +1,2 @@
1
+ export type TOSName = 'ios' | 'android' | 'macos' | 'windows' | 'linux' | 'unknown';
2
+ //# sourceMappingURL=detectOS.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detectOS.d.ts","sourceRoot":"","sources":["../../../../src/browser/interfaces/detectOS.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=detectOS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detectOS.js","sourceRoot":"","sources":["../../../../src/browser/interfaces/detectOS.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export * from './detectOS.js';
2
+ export * from './isTouchSupported.js';
3
+ export * from './setCookie.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/browser/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC"}