tool-shack 0.0.42 → 1.0.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 (618) hide show
  1. package/README.md +106 -56
  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 +15 -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 +29 -0
  21. package/dist/cjs/browser/getQueryParams.js.map +1 -0
  22. package/dist/cjs/browser/index.d.ts +8 -0
  23. package/dist/cjs/browser/index.d.ts.map +1 -1
  24. package/dist/cjs/browser/index.js +8 -0
  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 +7 -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/networkStatusListener.d.ts +9 -0
  41. package/dist/cjs/browser/networkStatusListener.d.ts.map +1 -0
  42. package/dist/cjs/browser/networkStatusListener.js +22 -0
  43. package/dist/cjs/browser/networkStatusListener.js.map +1 -0
  44. package/dist/cjs/browser/scrollToElement.d.ts.map +1 -1
  45. package/dist/cjs/browser/scrollToElement.js.map +1 -1
  46. package/dist/cjs/browser/scrollToPosition.d.ts.map +1 -1
  47. package/dist/cjs/browser/scrollToPosition.js.map +1 -1
  48. package/dist/cjs/browser/setCookie.d.ts +11 -0
  49. package/dist/cjs/browser/setCookie.d.ts.map +1 -0
  50. package/dist/cjs/browser/setCookie.js +31 -0
  51. package/dist/cjs/browser/setCookie.js.map +1 -0
  52. package/dist/cjs/dateTime/dateAsIso.d.ts.map +1 -1
  53. package/dist/cjs/dateTime/dateAsIso.js.map +1 -1
  54. package/dist/cjs/dateTime/index.d.ts +2 -0
  55. package/dist/cjs/dateTime/index.d.ts.map +1 -1
  56. package/dist/cjs/dateTime/index.js +2 -0
  57. package/dist/cjs/dateTime/index.js.map +1 -1
  58. package/dist/cjs/dateTime/isSameDay.d.ts +9 -0
  59. package/dist/cjs/dateTime/isSameDay.d.ts.map +1 -0
  60. package/dist/cjs/dateTime/isSameDay.js +19 -0
  61. package/dist/cjs/dateTime/isSameDay.js.map +1 -0
  62. package/dist/cjs/dateTime/parseDuration.d.ts +1 -1
  63. package/dist/cjs/dateTime/parseDuration.d.ts.map +1 -1
  64. package/dist/cjs/dateTime/timeAgo.d.ts +9 -0
  65. package/dist/cjs/dateTime/timeAgo.d.ts.map +1 -0
  66. package/dist/cjs/dateTime/timeAgo.js +39 -0
  67. package/dist/cjs/dateTime/timeAgo.js.map +1 -0
  68. package/dist/cjs/dom/addAsyncEventListener.js +4 -4
  69. package/dist/cjs/dom/addAsyncEventListener.js.map +1 -1
  70. package/dist/cjs/dom/addClickOutsideListener.d.ts +2 -2
  71. package/dist/cjs/dom/addClickOutsideListener.d.ts.map +1 -1
  72. package/dist/cjs/dom/addClickOutsideListener.js +3 -3
  73. package/dist/cjs/dom/addClickOutsideListener.js.map +1 -1
  74. package/dist/cjs/dom/addEventListener.js +3 -3
  75. package/dist/cjs/dom/addEventListener.js.map +1 -1
  76. package/dist/cjs/dom/copyToClipboard.d.ts +8 -0
  77. package/dist/cjs/dom/copyToClipboard.d.ts.map +1 -0
  78. package/dist/cjs/dom/copyToClipboard.js +38 -0
  79. package/dist/cjs/dom/copyToClipboard.js.map +1 -0
  80. package/dist/cjs/dom/createElement.d.ts +1 -1
  81. package/dist/cjs/dom/createElement.d.ts.map +1 -1
  82. package/dist/cjs/dom/createElement.js +5 -4
  83. package/dist/cjs/dom/createElement.js.map +1 -1
  84. package/dist/cjs/dom/index.d.ts +5 -0
  85. package/dist/cjs/dom/index.d.ts.map +1 -1
  86. package/dist/cjs/dom/index.js +5 -0
  87. package/dist/cjs/dom/index.js.map +1 -1
  88. package/dist/cjs/dom/interfaces/index.d.ts +1 -0
  89. package/dist/cjs/dom/interfaces/index.d.ts.map +1 -1
  90. package/dist/cjs/dom/interfaces/index.js +1 -0
  91. package/dist/cjs/dom/interfaces/index.js.map +1 -1
  92. package/dist/cjs/dom/interfaces/toggleFullscreenWithFallback.d.ts +5 -0
  93. package/dist/cjs/dom/interfaces/toggleFullscreenWithFallback.d.ts.map +1 -0
  94. package/dist/cjs/dom/interfaces/toggleFullscreenWithFallback.js +3 -0
  95. package/dist/cjs/dom/interfaces/toggleFullscreenWithFallback.js.map +1 -0
  96. package/dist/cjs/dom/isInViewport.d.ts +9 -0
  97. package/dist/cjs/dom/isInViewport.d.ts.map +1 -0
  98. package/dist/cjs/dom/isInViewport.js +21 -0
  99. package/dist/cjs/dom/isInViewport.js.map +1 -0
  100. package/dist/cjs/dom/toggleFullscreen.d.ts +8 -0
  101. package/dist/cjs/dom/toggleFullscreen.d.ts.map +1 -0
  102. package/dist/cjs/dom/toggleFullscreen.js +19 -0
  103. package/dist/cjs/dom/toggleFullscreen.js.map +1 -0
  104. package/dist/cjs/dom/toggleFullscreenWithFallback.d.ts +10 -0
  105. package/dist/cjs/dom/toggleFullscreenWithFallback.d.ts.map +1 -0
  106. package/dist/cjs/dom/toggleFullscreenWithFallback.js +72 -0
  107. package/dist/cjs/dom/toggleFullscreenWithFallback.js.map +1 -0
  108. package/dist/cjs/dom/waitForElement.d.ts +10 -0
  109. package/dist/cjs/dom/waitForElement.d.ts.map +1 -0
  110. package/dist/cjs/dom/waitForElement.js +35 -0
  111. package/dist/cjs/dom/waitForElement.js.map +1 -0
  112. package/dist/cjs/general/chunk.d.ts +9 -0
  113. package/dist/cjs/general/chunk.d.ts.map +1 -0
  114. package/dist/cjs/general/chunk.js +22 -0
  115. package/dist/cjs/general/chunk.js.map +1 -0
  116. package/dist/cjs/general/clamp.d.ts +10 -0
  117. package/dist/cjs/general/clamp.d.ts.map +1 -0
  118. package/dist/cjs/general/clamp.js +14 -0
  119. package/dist/cjs/general/clamp.js.map +1 -0
  120. package/dist/cjs/general/groupBy.d.ts +9 -0
  121. package/dist/cjs/general/groupBy.d.ts.map +1 -0
  122. package/dist/cjs/general/groupBy.js +23 -0
  123. package/dist/cjs/general/groupBy.js.map +1 -0
  124. package/dist/cjs/general/index.d.ts +6 -0
  125. package/dist/cjs/general/index.d.ts.map +1 -1
  126. package/dist/cjs/general/index.js +6 -0
  127. package/dist/cjs/general/index.js.map +1 -1
  128. package/dist/cjs/general/isEmpty.d.ts +1 -1
  129. package/dist/cjs/general/isEmpty.d.ts.map +1 -1
  130. package/dist/cjs/general/isEmpty.js +4 -1
  131. package/dist/cjs/general/isEmpty.js.map +1 -1
  132. package/dist/cjs/general/isEqual.d.ts +9 -0
  133. package/dist/cjs/general/isEqual.d.ts.map +1 -0
  134. package/dist/cjs/general/isEqual.js +63 -0
  135. package/dist/cjs/general/isEqual.js.map +1 -0
  136. package/dist/cjs/general/isNil.d.ts +1 -1
  137. package/dist/cjs/general/isNil.d.ts.map +1 -1
  138. package/dist/cjs/general/isNil.js.map +1 -1
  139. package/dist/cjs/general/isValidJson.js +1 -1
  140. package/dist/cjs/general/isValidJson.js.map +1 -1
  141. package/dist/cjs/general/pick.d.ts +9 -0
  142. package/dist/cjs/general/pick.d.ts.map +1 -0
  143. package/dist/cjs/general/pick.js +21 -0
  144. package/dist/cjs/general/pick.js.map +1 -0
  145. package/dist/cjs/general/unique.d.ts +9 -0
  146. package/dist/cjs/general/unique.d.ts.map +1 -0
  147. package/dist/cjs/general/unique.js +27 -0
  148. package/dist/cjs/general/unique.js.map +1 -0
  149. package/dist/cjs/index.d.ts +1 -0
  150. package/dist/cjs/index.d.ts.map +1 -1
  151. package/dist/cjs/index.js +1 -0
  152. package/dist/cjs/index.js.map +1 -1
  153. package/dist/cjs/schedule/debounce.d.ts +10 -0
  154. package/dist/cjs/schedule/debounce.d.ts.map +1 -0
  155. package/dist/cjs/schedule/debounce.js +31 -0
  156. package/dist/cjs/schedule/debounce.js.map +1 -0
  157. package/dist/cjs/schedule/index.d.ts +5 -0
  158. package/dist/cjs/schedule/index.d.ts.map +1 -1
  159. package/dist/cjs/schedule/index.js +5 -0
  160. package/dist/cjs/schedule/index.js.map +1 -1
  161. package/dist/cjs/schedule/interfaces/debounce.d.ts +5 -0
  162. package/dist/cjs/schedule/interfaces/debounce.d.ts.map +1 -0
  163. package/dist/cjs/schedule/interfaces/debounce.js +3 -0
  164. package/dist/cjs/schedule/interfaces/debounce.js.map +1 -0
  165. package/dist/cjs/schedule/interfaces/index.d.ts +5 -0
  166. package/dist/cjs/schedule/interfaces/index.d.ts.map +1 -0
  167. package/dist/cjs/schedule/interfaces/index.js +8 -0
  168. package/dist/cjs/schedule/interfaces/index.js.map +1 -0
  169. package/dist/cjs/schedule/interfaces/retry.d.ts +6 -0
  170. package/dist/cjs/schedule/interfaces/retry.d.ts.map +1 -0
  171. package/dist/cjs/schedule/interfaces/retry.js +3 -0
  172. package/dist/cjs/schedule/interfaces/retry.js.map +1 -0
  173. package/dist/cjs/schedule/interfaces/runAnimation.d.ts +5 -0
  174. package/dist/cjs/schedule/interfaces/runAnimation.d.ts.map +1 -0
  175. package/dist/cjs/schedule/interfaces/runAnimation.js +3 -0
  176. package/dist/cjs/schedule/interfaces/runAnimation.js.map +1 -0
  177. package/dist/cjs/schedule/interfaces/throttle.d.ts +5 -0
  178. package/dist/cjs/schedule/interfaces/throttle.d.ts.map +1 -0
  179. package/dist/cjs/schedule/interfaces/throttle.js +3 -0
  180. package/dist/cjs/schedule/interfaces/throttle.js.map +1 -0
  181. package/dist/cjs/schedule/retry.d.ts +10 -0
  182. package/dist/cjs/schedule/retry.d.ts.map +1 -0
  183. package/dist/cjs/schedule/retry.js +34 -0
  184. package/dist/cjs/schedule/retry.js.map +1 -0
  185. package/dist/cjs/schedule/runAnimation.d.ts +3 -5
  186. package/dist/cjs/schedule/runAnimation.d.ts.map +1 -1
  187. package/dist/cjs/schedule/runAnimation.js +4 -4
  188. package/dist/cjs/schedule/runAnimation.js.map +1 -1
  189. package/dist/cjs/schedule/runAsync.d.ts +2 -2
  190. package/dist/cjs/schedule/runAsync.d.ts.map +1 -1
  191. package/dist/cjs/schedule/runAsync.js +7 -7
  192. package/dist/cjs/schedule/runAsync.js.map +1 -1
  193. package/dist/cjs/schedule/sleep.d.ts +8 -0
  194. package/dist/cjs/schedule/sleep.d.ts.map +1 -0
  195. package/dist/cjs/schedule/sleep.js +12 -0
  196. package/dist/cjs/schedule/sleep.js.map +1 -0
  197. package/dist/cjs/schedule/throttle.d.ts +10 -0
  198. package/dist/cjs/schedule/throttle.d.ts.map +1 -0
  199. package/dist/cjs/schedule/throttle.js +40 -0
  200. package/dist/cjs/schedule/throttle.js.map +1 -0
  201. package/dist/cjs/storage/clearLocalStorage.d.ts +7 -0
  202. package/dist/cjs/storage/clearLocalStorage.d.ts.map +1 -0
  203. package/dist/cjs/storage/clearLocalStorage.js +20 -0
  204. package/dist/cjs/storage/clearLocalStorage.js.map +1 -0
  205. package/dist/cjs/storage/clearSessionStorage.d.ts +7 -0
  206. package/dist/cjs/storage/clearSessionStorage.d.ts.map +1 -0
  207. package/dist/cjs/storage/clearSessionStorage.js +20 -0
  208. package/dist/cjs/storage/clearSessionStorage.js.map +1 -0
  209. package/dist/cjs/storage/getLocalStorage.d.ts +11 -0
  210. package/dist/cjs/storage/getLocalStorage.d.ts.map +1 -0
  211. package/dist/cjs/storage/getLocalStorage.js +38 -0
  212. package/dist/cjs/storage/getLocalStorage.js.map +1 -0
  213. package/dist/cjs/storage/getSessionStorage.d.ts +11 -0
  214. package/dist/cjs/storage/getSessionStorage.d.ts.map +1 -0
  215. package/dist/cjs/storage/getSessionStorage.js +38 -0
  216. package/dist/cjs/storage/getSessionStorage.js.map +1 -0
  217. package/dist/cjs/storage/index.d.ts +10 -0
  218. package/dist/cjs/storage/index.d.ts.map +1 -0
  219. package/dist/cjs/storage/index.js +13 -0
  220. package/dist/cjs/storage/index.js.map +1 -0
  221. package/dist/cjs/storage/interfaces/index.d.ts +2 -0
  222. package/dist/cjs/storage/interfaces/index.d.ts.map +1 -0
  223. package/dist/cjs/storage/interfaces/index.js +5 -0
  224. package/dist/cjs/storage/interfaces/index.js.map +1 -0
  225. package/dist/cjs/storage/interfaces/storage.d.ts +4 -0
  226. package/dist/cjs/storage/interfaces/storage.d.ts.map +1 -0
  227. package/dist/cjs/storage/interfaces/storage.js +3 -0
  228. package/dist/cjs/storage/interfaces/storage.js.map +1 -0
  229. package/dist/cjs/storage/removeLocalStorage.d.ts +8 -0
  230. package/dist/cjs/storage/removeLocalStorage.d.ts.map +1 -0
  231. package/dist/cjs/storage/removeLocalStorage.js +21 -0
  232. package/dist/cjs/storage/removeLocalStorage.js.map +1 -0
  233. package/dist/cjs/storage/removeSessionStorage.d.ts +8 -0
  234. package/dist/cjs/storage/removeSessionStorage.d.ts.map +1 -0
  235. package/dist/cjs/storage/removeSessionStorage.js +21 -0
  236. package/dist/cjs/storage/removeSessionStorage.js.map +1 -0
  237. package/dist/cjs/storage/setLocalStorage.d.ts +11 -0
  238. package/dist/cjs/storage/setLocalStorage.d.ts.map +1 -0
  239. package/dist/cjs/storage/setLocalStorage.js +28 -0
  240. package/dist/cjs/storage/setLocalStorage.js.map +1 -0
  241. package/dist/cjs/storage/setSessionStorage.d.ts +11 -0
  242. package/dist/cjs/storage/setSessionStorage.d.ts.map +1 -0
  243. package/dist/cjs/storage/setSessionStorage.js +28 -0
  244. package/dist/cjs/storage/setSessionStorage.js.map +1 -0
  245. package/dist/cjs/string/camelCase.d.ts +8 -0
  246. package/dist/cjs/string/camelCase.d.ts.map +1 -0
  247. package/dist/cjs/string/camelCase.js +17 -0
  248. package/dist/cjs/string/camelCase.js.map +1 -0
  249. package/dist/cjs/string/capitalize.d.ts +8 -0
  250. package/dist/cjs/string/capitalize.d.ts.map +1 -0
  251. package/dist/cjs/string/capitalize.js +12 -0
  252. package/dist/cjs/string/capitalize.js.map +1 -0
  253. package/dist/cjs/string/decodeBase64.d.ts +8 -0
  254. package/dist/cjs/string/decodeBase64.d.ts.map +1 -0
  255. package/dist/cjs/string/decodeBase64.js +14 -0
  256. package/dist/cjs/string/decodeBase64.js.map +1 -0
  257. package/dist/cjs/string/encodeBase64.d.ts +8 -0
  258. package/dist/cjs/string/encodeBase64.d.ts.map +1 -0
  259. package/dist/cjs/string/encodeBase64.js +12 -0
  260. package/dist/cjs/string/encodeBase64.js.map +1 -0
  261. package/dist/cjs/string/formatBytes.d.ts +9 -0
  262. package/dist/cjs/string/formatBytes.d.ts.map +1 -0
  263. package/dist/cjs/string/formatBytes.js +23 -0
  264. package/dist/cjs/string/formatBytes.js.map +1 -0
  265. package/dist/cjs/string/index.d.ts +13 -0
  266. package/dist/cjs/string/index.d.ts.map +1 -1
  267. package/dist/cjs/string/index.js +13 -0
  268. package/dist/cjs/string/index.js.map +1 -1
  269. package/dist/cjs/string/interfaces/index.d.ts +2 -0
  270. package/dist/cjs/string/interfaces/index.d.ts.map +1 -0
  271. package/dist/cjs/string/interfaces/index.js +5 -0
  272. package/dist/cjs/string/interfaces/index.js.map +1 -0
  273. package/dist/cjs/string/interfaces/mask.d.ts +6 -0
  274. package/dist/cjs/string/interfaces/mask.d.ts.map +1 -0
  275. package/dist/cjs/string/interfaces/mask.js +3 -0
  276. package/dist/cjs/string/interfaces/mask.js.map +1 -0
  277. package/dist/cjs/string/kebabCase.d.ts +8 -0
  278. package/dist/cjs/string/kebabCase.d.ts.map +1 -0
  279. package/dist/cjs/string/kebabCase.js +18 -0
  280. package/dist/cjs/string/kebabCase.js.map +1 -0
  281. package/dist/cjs/string/mask.d.ts +10 -0
  282. package/dist/cjs/string/mask.d.ts.map +1 -0
  283. package/dist/cjs/string/mask.js +29 -0
  284. package/dist/cjs/string/mask.js.map +1 -0
  285. package/dist/cjs/string/pascalCase.d.ts +8 -0
  286. package/dist/cjs/string/pascalCase.d.ts.map +1 -0
  287. package/dist/cjs/string/pascalCase.js +14 -0
  288. package/dist/cjs/string/pascalCase.js.map +1 -0
  289. package/dist/cjs/string/randomCryptoString.d.ts +9 -0
  290. package/dist/cjs/string/randomCryptoString.d.ts.map +1 -0
  291. package/dist/cjs/string/randomCryptoString.js +23 -0
  292. package/dist/cjs/string/randomCryptoString.js.map +1 -0
  293. package/dist/cjs/string/randomString.d.ts +9 -0
  294. package/dist/cjs/string/randomString.d.ts.map +1 -0
  295. package/dist/cjs/string/randomString.js +21 -0
  296. package/dist/cjs/string/randomString.js.map +1 -0
  297. package/dist/cjs/string/slugify.d.ts.map +1 -1
  298. package/dist/cjs/string/slugify.js +7 -2
  299. package/dist/cjs/string/slugify.js.map +1 -1
  300. package/dist/cjs/string/snakeCase.d.ts +8 -0
  301. package/dist/cjs/string/snakeCase.d.ts.map +1 -0
  302. package/dist/cjs/string/snakeCase.js +18 -0
  303. package/dist/cjs/string/snakeCase.js.map +1 -0
  304. package/dist/cjs/string/truncate.d.ts.map +1 -1
  305. package/dist/cjs/string/truncate.js.map +1 -1
  306. package/dist/cjs/string/unescapeHTML.d.ts +8 -0
  307. package/dist/cjs/string/unescapeHTML.d.ts.map +1 -0
  308. package/dist/cjs/string/unescapeHTML.js +16 -0
  309. package/dist/cjs/string/unescapeHTML.js.map +1 -0
  310. package/dist/esm/browser/deleteCookie.d.ts +10 -0
  311. package/dist/esm/browser/deleteCookie.d.ts.map +1 -0
  312. package/dist/esm/browser/deleteCookie.js +12 -0
  313. package/dist/esm/browser/deleteCookie.js.map +1 -0
  314. package/dist/esm/browser/detectOS.d.ts +8 -0
  315. package/dist/esm/browser/detectOS.d.ts.map +1 -0
  316. package/dist/esm/browser/detectOS.js +28 -0
  317. package/dist/esm/browser/detectOS.js.map +1 -0
  318. package/dist/esm/browser/downloadFile.d.ts +10 -0
  319. package/dist/esm/browser/downloadFile.d.ts.map +1 -0
  320. package/dist/esm/browser/downloadFile.js +21 -0
  321. package/dist/esm/browser/downloadFile.js.map +1 -0
  322. package/dist/esm/browser/getCookie.d.ts +8 -0
  323. package/dist/esm/browser/getCookie.d.ts.map +1 -0
  324. package/dist/esm/browser/getCookie.js +11 -0
  325. package/dist/esm/browser/getCookie.js.map +1 -0
  326. package/dist/esm/browser/getQueryParams.d.ts +8 -0
  327. package/dist/esm/browser/getQueryParams.d.ts.map +1 -0
  328. package/dist/esm/browser/getQueryParams.js +25 -0
  329. package/dist/esm/browser/getQueryParams.js.map +1 -0
  330. package/dist/esm/browser/index.d.ts +8 -0
  331. package/dist/esm/browser/index.d.ts.map +1 -1
  332. package/dist/esm/browser/index.js +8 -0
  333. package/dist/esm/browser/index.js.map +1 -1
  334. package/dist/esm/browser/interfaces/detectOS.d.ts +2 -0
  335. package/dist/esm/browser/interfaces/detectOS.d.ts.map +1 -0
  336. package/dist/esm/browser/interfaces/detectOS.js +2 -0
  337. package/dist/esm/browser/interfaces/detectOS.js.map +1 -0
  338. package/dist/esm/browser/interfaces/index.d.ts +4 -0
  339. package/dist/esm/browser/interfaces/index.d.ts.map +1 -0
  340. package/dist/esm/browser/interfaces/index.js +4 -0
  341. package/dist/esm/browser/interfaces/index.js.map +1 -0
  342. package/dist/esm/browser/interfaces/isTouchSupported.d.ts +3 -1
  343. package/dist/esm/browser/interfaces/isTouchSupported.d.ts.map +1 -1
  344. package/dist/esm/browser/interfaces/setCookie.d.ts +8 -0
  345. package/dist/esm/browser/interfaces/setCookie.d.ts.map +1 -0
  346. package/dist/esm/browser/interfaces/setCookie.js +2 -0
  347. package/dist/esm/browser/interfaces/setCookie.js.map +1 -0
  348. package/dist/esm/browser/networkStatusListener.d.ts +9 -0
  349. package/dist/esm/browser/networkStatusListener.d.ts.map +1 -0
  350. package/dist/esm/browser/networkStatusListener.js +18 -0
  351. package/dist/esm/browser/networkStatusListener.js.map +1 -0
  352. package/dist/esm/browser/scrollToElement.d.ts.map +1 -1
  353. package/dist/esm/browser/scrollToElement.js.map +1 -1
  354. package/dist/esm/browser/scrollToPosition.d.ts.map +1 -1
  355. package/dist/esm/browser/scrollToPosition.js.map +1 -1
  356. package/dist/esm/browser/setCookie.d.ts +11 -0
  357. package/dist/esm/browser/setCookie.d.ts.map +1 -0
  358. package/dist/esm/browser/setCookie.js +27 -0
  359. package/dist/esm/browser/setCookie.js.map +1 -0
  360. package/dist/esm/dateTime/dateAsIso.d.ts.map +1 -1
  361. package/dist/esm/dateTime/dateAsIso.js.map +1 -1
  362. package/dist/esm/dateTime/index.d.ts +2 -0
  363. package/dist/esm/dateTime/index.d.ts.map +1 -1
  364. package/dist/esm/dateTime/index.js +2 -0
  365. package/dist/esm/dateTime/index.js.map +1 -1
  366. package/dist/esm/dateTime/isSameDay.d.ts +9 -0
  367. package/dist/esm/dateTime/isSameDay.d.ts.map +1 -0
  368. package/dist/esm/dateTime/isSameDay.js +15 -0
  369. package/dist/esm/dateTime/isSameDay.js.map +1 -0
  370. package/dist/esm/dateTime/parseDuration.d.ts +1 -1
  371. package/dist/esm/dateTime/parseDuration.d.ts.map +1 -1
  372. package/dist/esm/dateTime/timeAgo.d.ts +9 -0
  373. package/dist/esm/dateTime/timeAgo.d.ts.map +1 -0
  374. package/dist/esm/dateTime/timeAgo.js +35 -0
  375. package/dist/esm/dateTime/timeAgo.js.map +1 -0
  376. package/dist/esm/dom/addAsyncEventListener.js +4 -4
  377. package/dist/esm/dom/addAsyncEventListener.js.map +1 -1
  378. package/dist/esm/dom/addClickOutsideListener.d.ts +2 -2
  379. package/dist/esm/dom/addClickOutsideListener.d.ts.map +1 -1
  380. package/dist/esm/dom/addClickOutsideListener.js +3 -3
  381. package/dist/esm/dom/addClickOutsideListener.js.map +1 -1
  382. package/dist/esm/dom/addEventListener.js +3 -3
  383. package/dist/esm/dom/addEventListener.js.map +1 -1
  384. package/dist/esm/dom/copyToClipboard.d.ts +8 -0
  385. package/dist/esm/dom/copyToClipboard.d.ts.map +1 -0
  386. package/dist/esm/dom/copyToClipboard.js +34 -0
  387. package/dist/esm/dom/copyToClipboard.js.map +1 -0
  388. package/dist/esm/dom/createElement.d.ts +1 -1
  389. package/dist/esm/dom/createElement.d.ts.map +1 -1
  390. package/dist/esm/dom/createElement.js +5 -4
  391. package/dist/esm/dom/createElement.js.map +1 -1
  392. package/dist/esm/dom/index.d.ts +5 -0
  393. package/dist/esm/dom/index.d.ts.map +1 -1
  394. package/dist/esm/dom/index.js +5 -0
  395. package/dist/esm/dom/index.js.map +1 -1
  396. package/dist/esm/dom/interfaces/index.d.ts +1 -0
  397. package/dist/esm/dom/interfaces/index.d.ts.map +1 -1
  398. package/dist/esm/dom/interfaces/index.js +1 -0
  399. package/dist/esm/dom/interfaces/index.js.map +1 -1
  400. package/dist/esm/dom/interfaces/toggleFullscreenWithFallback.d.ts +5 -0
  401. package/dist/esm/dom/interfaces/toggleFullscreenWithFallback.d.ts.map +1 -0
  402. package/dist/esm/dom/interfaces/toggleFullscreenWithFallback.js +2 -0
  403. package/dist/esm/dom/interfaces/toggleFullscreenWithFallback.js.map +1 -0
  404. package/dist/esm/dom/isInViewport.d.ts +9 -0
  405. package/dist/esm/dom/isInViewport.d.ts.map +1 -0
  406. package/dist/esm/dom/isInViewport.js +17 -0
  407. package/dist/esm/dom/isInViewport.js.map +1 -0
  408. package/dist/esm/dom/toggleFullscreen.d.ts +8 -0
  409. package/dist/esm/dom/toggleFullscreen.d.ts.map +1 -0
  410. package/dist/esm/dom/toggleFullscreen.js +15 -0
  411. package/dist/esm/dom/toggleFullscreen.js.map +1 -0
  412. package/dist/esm/dom/toggleFullscreenWithFallback.d.ts +10 -0
  413. package/dist/esm/dom/toggleFullscreenWithFallback.d.ts.map +1 -0
  414. package/dist/esm/dom/toggleFullscreenWithFallback.js +68 -0
  415. package/dist/esm/dom/toggleFullscreenWithFallback.js.map +1 -0
  416. package/dist/esm/dom/waitForElement.d.ts +10 -0
  417. package/dist/esm/dom/waitForElement.d.ts.map +1 -0
  418. package/dist/esm/dom/waitForElement.js +31 -0
  419. package/dist/esm/dom/waitForElement.js.map +1 -0
  420. package/dist/esm/general/chunk.d.ts +9 -0
  421. package/dist/esm/general/chunk.d.ts.map +1 -0
  422. package/dist/esm/general/chunk.js +18 -0
  423. package/dist/esm/general/chunk.js.map +1 -0
  424. package/dist/esm/general/clamp.d.ts +10 -0
  425. package/dist/esm/general/clamp.d.ts.map +1 -0
  426. package/dist/esm/general/clamp.js +10 -0
  427. package/dist/esm/general/clamp.js.map +1 -0
  428. package/dist/esm/general/groupBy.d.ts +9 -0
  429. package/dist/esm/general/groupBy.d.ts.map +1 -0
  430. package/dist/esm/general/groupBy.js +19 -0
  431. package/dist/esm/general/groupBy.js.map +1 -0
  432. package/dist/esm/general/index.d.ts +6 -0
  433. package/dist/esm/general/index.d.ts.map +1 -1
  434. package/dist/esm/general/index.js +6 -0
  435. package/dist/esm/general/index.js.map +1 -1
  436. package/dist/esm/general/isEmpty.d.ts +1 -1
  437. package/dist/esm/general/isEmpty.d.ts.map +1 -1
  438. package/dist/esm/general/isEmpty.js +4 -1
  439. package/dist/esm/general/isEmpty.js.map +1 -1
  440. package/dist/esm/general/isEqual.d.ts +9 -0
  441. package/dist/esm/general/isEqual.d.ts.map +1 -0
  442. package/dist/esm/general/isEqual.js +59 -0
  443. package/dist/esm/general/isEqual.js.map +1 -0
  444. package/dist/esm/general/isNil.d.ts +1 -1
  445. package/dist/esm/general/isNil.d.ts.map +1 -1
  446. package/dist/esm/general/isNil.js.map +1 -1
  447. package/dist/esm/general/isValidJson.js +1 -1
  448. package/dist/esm/general/isValidJson.js.map +1 -1
  449. package/dist/esm/general/pick.d.ts +9 -0
  450. package/dist/esm/general/pick.d.ts.map +1 -0
  451. package/dist/esm/general/pick.js +17 -0
  452. package/dist/esm/general/pick.js.map +1 -0
  453. package/dist/esm/general/unique.d.ts +9 -0
  454. package/dist/esm/general/unique.d.ts.map +1 -0
  455. package/dist/esm/general/unique.js +23 -0
  456. package/dist/esm/general/unique.js.map +1 -0
  457. package/dist/esm/index.d.ts +1 -0
  458. package/dist/esm/index.d.ts.map +1 -1
  459. package/dist/esm/index.js +1 -0
  460. package/dist/esm/index.js.map +1 -1
  461. package/dist/esm/schedule/debounce.d.ts +10 -0
  462. package/dist/esm/schedule/debounce.d.ts.map +1 -0
  463. package/dist/esm/schedule/debounce.js +27 -0
  464. package/dist/esm/schedule/debounce.js.map +1 -0
  465. package/dist/esm/schedule/index.d.ts +5 -0
  466. package/dist/esm/schedule/index.d.ts.map +1 -1
  467. package/dist/esm/schedule/index.js +5 -0
  468. package/dist/esm/schedule/index.js.map +1 -1
  469. package/dist/esm/schedule/interfaces/debounce.d.ts +5 -0
  470. package/dist/esm/schedule/interfaces/debounce.d.ts.map +1 -0
  471. package/dist/esm/schedule/interfaces/debounce.js +2 -0
  472. package/dist/esm/schedule/interfaces/debounce.js.map +1 -0
  473. package/dist/esm/schedule/interfaces/index.d.ts +5 -0
  474. package/dist/esm/schedule/interfaces/index.d.ts.map +1 -0
  475. package/dist/esm/schedule/interfaces/index.js +5 -0
  476. package/dist/esm/schedule/interfaces/index.js.map +1 -0
  477. package/dist/esm/schedule/interfaces/retry.d.ts +6 -0
  478. package/dist/esm/schedule/interfaces/retry.d.ts.map +1 -0
  479. package/dist/esm/schedule/interfaces/retry.js +2 -0
  480. package/dist/esm/schedule/interfaces/retry.js.map +1 -0
  481. package/dist/esm/schedule/interfaces/runAnimation.d.ts +5 -0
  482. package/dist/esm/schedule/interfaces/runAnimation.d.ts.map +1 -0
  483. package/dist/esm/schedule/interfaces/runAnimation.js +2 -0
  484. package/dist/esm/schedule/interfaces/runAnimation.js.map +1 -0
  485. package/dist/esm/schedule/interfaces/throttle.d.ts +5 -0
  486. package/dist/esm/schedule/interfaces/throttle.d.ts.map +1 -0
  487. package/dist/esm/schedule/interfaces/throttle.js +2 -0
  488. package/dist/esm/schedule/interfaces/throttle.js.map +1 -0
  489. package/dist/esm/schedule/retry.d.ts +10 -0
  490. package/dist/esm/schedule/retry.d.ts.map +1 -0
  491. package/dist/esm/schedule/retry.js +30 -0
  492. package/dist/esm/schedule/retry.js.map +1 -0
  493. package/dist/esm/schedule/runAnimation.d.ts +3 -5
  494. package/dist/esm/schedule/runAnimation.d.ts.map +1 -1
  495. package/dist/esm/schedule/runAnimation.js +4 -4
  496. package/dist/esm/schedule/runAnimation.js.map +1 -1
  497. package/dist/esm/schedule/runAsync.d.ts +2 -2
  498. package/dist/esm/schedule/runAsync.d.ts.map +1 -1
  499. package/dist/esm/schedule/runAsync.js +7 -7
  500. package/dist/esm/schedule/runAsync.js.map +1 -1
  501. package/dist/esm/schedule/sleep.d.ts +8 -0
  502. package/dist/esm/schedule/sleep.d.ts.map +1 -0
  503. package/dist/esm/schedule/sleep.js +8 -0
  504. package/dist/esm/schedule/sleep.js.map +1 -0
  505. package/dist/esm/schedule/throttle.d.ts +10 -0
  506. package/dist/esm/schedule/throttle.d.ts.map +1 -0
  507. package/dist/esm/schedule/throttle.js +36 -0
  508. package/dist/esm/schedule/throttle.js.map +1 -0
  509. package/dist/esm/storage/clearLocalStorage.d.ts +7 -0
  510. package/dist/esm/storage/clearLocalStorage.d.ts.map +1 -0
  511. package/dist/esm/storage/clearLocalStorage.js +16 -0
  512. package/dist/esm/storage/clearLocalStorage.js.map +1 -0
  513. package/dist/esm/storage/clearSessionStorage.d.ts +7 -0
  514. package/dist/esm/storage/clearSessionStorage.d.ts.map +1 -0
  515. package/dist/esm/storage/clearSessionStorage.js +16 -0
  516. package/dist/esm/storage/clearSessionStorage.js.map +1 -0
  517. package/dist/esm/storage/getLocalStorage.d.ts +11 -0
  518. package/dist/esm/storage/getLocalStorage.d.ts.map +1 -0
  519. package/dist/esm/storage/getLocalStorage.js +34 -0
  520. package/dist/esm/storage/getLocalStorage.js.map +1 -0
  521. package/dist/esm/storage/getSessionStorage.d.ts +11 -0
  522. package/dist/esm/storage/getSessionStorage.d.ts.map +1 -0
  523. package/dist/esm/storage/getSessionStorage.js +34 -0
  524. package/dist/esm/storage/getSessionStorage.js.map +1 -0
  525. package/dist/esm/storage/index.d.ts +10 -0
  526. package/dist/esm/storage/index.d.ts.map +1 -0
  527. package/dist/esm/storage/index.js +10 -0
  528. package/dist/esm/storage/index.js.map +1 -0
  529. package/dist/esm/storage/interfaces/index.d.ts +2 -0
  530. package/dist/esm/storage/interfaces/index.d.ts.map +1 -0
  531. package/dist/esm/storage/interfaces/index.js +2 -0
  532. package/dist/esm/storage/interfaces/index.js.map +1 -0
  533. package/dist/esm/storage/interfaces/storage.d.ts +4 -0
  534. package/dist/esm/storage/interfaces/storage.d.ts.map +1 -0
  535. package/dist/esm/storage/interfaces/storage.js +2 -0
  536. package/dist/esm/storage/interfaces/storage.js.map +1 -0
  537. package/dist/esm/storage/removeLocalStorage.d.ts +8 -0
  538. package/dist/esm/storage/removeLocalStorage.d.ts.map +1 -0
  539. package/dist/esm/storage/removeLocalStorage.js +17 -0
  540. package/dist/esm/storage/removeLocalStorage.js.map +1 -0
  541. package/dist/esm/storage/removeSessionStorage.d.ts +8 -0
  542. package/dist/esm/storage/removeSessionStorage.d.ts.map +1 -0
  543. package/dist/esm/storage/removeSessionStorage.js +17 -0
  544. package/dist/esm/storage/removeSessionStorage.js.map +1 -0
  545. package/dist/esm/storage/setLocalStorage.d.ts +11 -0
  546. package/dist/esm/storage/setLocalStorage.d.ts.map +1 -0
  547. package/dist/esm/storage/setLocalStorage.js +24 -0
  548. package/dist/esm/storage/setLocalStorage.js.map +1 -0
  549. package/dist/esm/storage/setSessionStorage.d.ts +11 -0
  550. package/dist/esm/storage/setSessionStorage.d.ts.map +1 -0
  551. package/dist/esm/storage/setSessionStorage.js +24 -0
  552. package/dist/esm/storage/setSessionStorage.js.map +1 -0
  553. package/dist/esm/string/camelCase.d.ts +8 -0
  554. package/dist/esm/string/camelCase.d.ts.map +1 -0
  555. package/dist/esm/string/camelCase.js +13 -0
  556. package/dist/esm/string/camelCase.js.map +1 -0
  557. package/dist/esm/string/capitalize.d.ts +8 -0
  558. package/dist/esm/string/capitalize.d.ts.map +1 -0
  559. package/dist/esm/string/capitalize.js +8 -0
  560. package/dist/esm/string/capitalize.js.map +1 -0
  561. package/dist/esm/string/decodeBase64.d.ts +8 -0
  562. package/dist/esm/string/decodeBase64.d.ts.map +1 -0
  563. package/dist/esm/string/decodeBase64.js +10 -0
  564. package/dist/esm/string/decodeBase64.js.map +1 -0
  565. package/dist/esm/string/encodeBase64.d.ts +8 -0
  566. package/dist/esm/string/encodeBase64.d.ts.map +1 -0
  567. package/dist/esm/string/encodeBase64.js +8 -0
  568. package/dist/esm/string/encodeBase64.js.map +1 -0
  569. package/dist/esm/string/formatBytes.d.ts +9 -0
  570. package/dist/esm/string/formatBytes.d.ts.map +1 -0
  571. package/dist/esm/string/formatBytes.js +19 -0
  572. package/dist/esm/string/formatBytes.js.map +1 -0
  573. package/dist/esm/string/index.d.ts +13 -0
  574. package/dist/esm/string/index.d.ts.map +1 -1
  575. package/dist/esm/string/index.js +13 -0
  576. package/dist/esm/string/index.js.map +1 -1
  577. package/dist/esm/string/interfaces/index.d.ts +2 -0
  578. package/dist/esm/string/interfaces/index.d.ts.map +1 -0
  579. package/dist/esm/string/interfaces/index.js +2 -0
  580. package/dist/esm/string/interfaces/index.js.map +1 -0
  581. package/dist/esm/string/interfaces/mask.d.ts +6 -0
  582. package/dist/esm/string/interfaces/mask.d.ts.map +1 -0
  583. package/dist/esm/string/interfaces/mask.js +2 -0
  584. package/dist/esm/string/interfaces/mask.js.map +1 -0
  585. package/dist/esm/string/kebabCase.d.ts +8 -0
  586. package/dist/esm/string/kebabCase.d.ts.map +1 -0
  587. package/dist/esm/string/kebabCase.js +14 -0
  588. package/dist/esm/string/kebabCase.js.map +1 -0
  589. package/dist/esm/string/mask.d.ts +10 -0
  590. package/dist/esm/string/mask.d.ts.map +1 -0
  591. package/dist/esm/string/mask.js +25 -0
  592. package/dist/esm/string/mask.js.map +1 -0
  593. package/dist/esm/string/pascalCase.d.ts +8 -0
  594. package/dist/esm/string/pascalCase.d.ts.map +1 -0
  595. package/dist/esm/string/pascalCase.js +10 -0
  596. package/dist/esm/string/pascalCase.js.map +1 -0
  597. package/dist/esm/string/randomCryptoString.d.ts +9 -0
  598. package/dist/esm/string/randomCryptoString.d.ts.map +1 -0
  599. package/dist/esm/string/randomCryptoString.js +19 -0
  600. package/dist/esm/string/randomCryptoString.js.map +1 -0
  601. package/dist/esm/string/randomString.d.ts +9 -0
  602. package/dist/esm/string/randomString.d.ts.map +1 -0
  603. package/dist/esm/string/randomString.js +17 -0
  604. package/dist/esm/string/randomString.js.map +1 -0
  605. package/dist/esm/string/slugify.d.ts.map +1 -1
  606. package/dist/esm/string/slugify.js +7 -2
  607. package/dist/esm/string/slugify.js.map +1 -1
  608. package/dist/esm/string/snakeCase.d.ts +8 -0
  609. package/dist/esm/string/snakeCase.d.ts.map +1 -0
  610. package/dist/esm/string/snakeCase.js +14 -0
  611. package/dist/esm/string/snakeCase.js.map +1 -0
  612. package/dist/esm/string/truncate.d.ts.map +1 -1
  613. package/dist/esm/string/truncate.js.map +1 -1
  614. package/dist/esm/string/unescapeHTML.d.ts +8 -0
  615. package/dist/esm/string/unescapeHTML.d.ts.map +1 -0
  616. package/dist/esm/string/unescapeHTML.js +12 -0
  617. package/dist/esm/string/unescapeHTML.js.map +1 -0
  618. package/package.json +7 -1
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,137 @@ 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.
74
+ Utilities for feature detection, device capabilities, cookies, downloads, URL parameters, and tab focus.
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 if Push Notifications and Service Workers are supported |
81
+ | `isScrollBehaviorSupported()` | Checks if native smooth scroll behavior is supported |
82
+ | `isShareSupported()` | Checks if the Web Share API (`navigator.share`) is supported |
83
+ | `isTabFocused()` | Checks whether the browser tab currently has focus |
84
+ | `tabFocusListener(onFocus, onBlur)` | Subscribes callbacks for window/tab focus and blur events |
85
+ | `preferColorScheme()` | Detects user color scheme preference (`'dark'`, `'light'`, or `null`) |
86
+ | `scrollToElement(element, options)` | Smoothly scrolls the window or container to a target element |
87
+ | `scrollToPosition(options)` | Smoothly scrolls to specific x/y coordinates |
88
+ | `downloadFile(data, filename, mimeType?)` | Programmatically triggers file download in the browser |
89
+ | `getQueryParams(url?)` | Extracts URL search query parameters into a key-value object |
90
+ | `networkStatusListener(onOnline, onOffline)` | Subscribes to browser online/offline events with cleanup handle |
91
+ | `getCookie(name)` | Retrieves and decodes a cookie value by name |
92
+ | `setCookie(name, value, options?)` | Sets a browser cookie with days, path, domain, secure, and sameSite |
93
+ | `deleteCookie(name, options?)` | Deletes a browser cookie by name |
94
+
95
+ ---
96
+
97
+ ### 💾 Storage (`storage`)
98
+
99
+ Type-safe `localStorage` and `sessionStorage` helpers with automatic JSON serialization and exception safety.
59
100
 
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 |
101
+ | Function | Description |
102
+ | ----------------------------------- | --------------------------------------------------------------- |
103
+ | `getLocalStorage(key, fallback?)` | Retrieves item from localStorage with automatic JSON parsing |
104
+ | `setLocalStorage(key, value)` | Stores item in localStorage with automatic JSON serialization |
105
+ | `removeLocalStorage(key)` | Removes item from localStorage |
106
+ | `clearLocalStorage()` | Clears all items from localStorage |
107
+ | `getSessionStorage(key, fallback?)` | Retrieves item from sessionStorage with automatic JSON parsing |
108
+ | `setSessionStorage(key, value)` | Stores item in sessionStorage with automatic JSON serialization |
109
+ | `removeSessionStorage(key)` | Removes item from sessionStorage |
110
+ | `clearSessionStorage()` | Clears all items from sessionStorage |
71
111
 
72
112
  ---
73
113
 
74
114
  ### 🧱 DOM (`dom`)
75
115
 
76
- Simplified element creation, event handling, and DOM placement.
116
+ Simplified element creation, async/outside event handling, clipboard operations, viewport detection, layout-shift-free scroll lock, and fullscreen.
77
117
 
78
118
  | Function | Description |
79
119
  | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
80
120
  | `createElement(tagName, props)` | Creates a DOM element with attributes, styles, dataset, ARIA, listeners, and children in a single call |
81
121
  | `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 |
122
+ | `addAsyncEventListener(target, type, listener, options)` | Attaches an asynchronous delegated event listener |
83
123
  | `addClickOutsideListener(element, callback)` | Triggers a callback when clicking outside a specified element |
84
124
  | `appendBefore(target, element)` | Inserts an element immediately before the target node |
85
125
  | `appendAfter(target, element)` | Inserts an element immediately after the target node |
126
+ | `copyToClipboard(text)` | Copies text to clipboard via Clipboard API with legacy fallback |
86
127
  | `fireEvent(element, eventName, detail)` | Dispatches a custom or native DOM event |
87
128
  | `getElementOffset(element)` | Computes top, left, width, and height offsets relative to viewport/document |
88
-
89
- #### `createElement` Example
90
-
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
- ```
129
+ | `isInViewport(element, offset?)` | Checks if an element is currently within the visible viewport |
130
+ | `toggleFullscreen(element?)` | Toggles native fullscreen mode for an element or document root |
131
+ | `toggleFullscreenWithFallback(element?, options?)` | Toggles fullscreen with CSS pseudo-fullscreen fallback for iOS Safari and unsupported browsers |
132
+ | `waitForElement(selector, timeout?, parent?)` | Waits for an element to appear in the DOM using `MutationObserver` |
107
133
 
108
134
  ---
109
135
 
110
136
  ### 🔤 String (`string`)
111
137
 
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 |
138
+ Case conversions, string transformations, formatting, escaping, masking, and random string generators.
139
+
140
+ | Function | Description |
141
+ | --------------------------------------- | ------------------------------------------------------------------------- |
142
+ | `camelCase(value)` | Converts string to `camelCase` |
143
+ | `capitalize(value)` | Capitalizes the first character of a string |
144
+ | `decodeBase64(value)` | Safely decodes a Base64 string to a Unicode string |
145
+ | `encodeBase64(value)` | Safely encodes a Unicode string to a Base64 string |
146
+ | `kebabCase(value)` | Converts string to `kebab-case` |
147
+ | `pascalCase(value)` | Converts string to `PascalCase` |
148
+ | `snakeCase(value)` | Converts string to `snake_case` |
149
+ | `slugify(value, separator?)` | Converts text into URL-safe slug with diacritics removal (default `-`) |
150
+ | `removeDiacritics(value)` | Strips accent marks and diacritics from text |
151
+ | `truncate(value, length, suffix?)` | Truncates a string to a given length and appends a suffix (default `...`) |
152
+ | `mask(value, options?)` | Masks sensitive string characters (e.g. for card numbers or tokens) |
153
+ | `formatBytes(bytes, decimals?)` | Formats byte number into readable string (`'1.5 MB'`, `'2 KB'`) |
154
+ | `escapeHTML(value)` | Escapes HTML entities (`&`, `<`, `>`, `"`, `'`) |
155
+ | `unescapeHTML(value)` | Unescapes HTML entities back to plain text |
156
+ | `byteSize(value)` | Calculates the byte length of a string in UTF-8 |
157
+ | `randomString(length?, charset?)` | Generates random string using `Math.random` |
158
+ | `randomCryptoString(length?, charset?)` | Generates cryptographically secure random string using Web Crypto API |
121
159
 
122
160
  ---
123
161
 
124
162
  ### ⏱️ Date & Time (`dateTime`)
125
163
 
126
- Date formatting and duration parsing.
164
+ Date formatting, duration parsing, relative time, and calendar day comparison.
127
165
 
128
166
  | Function | Description |
129
167
  | ----------------------------- | ------------------------------------------------------------------------------- |
130
168
  | `parseDuration(durationInMs)` | Breaks down milliseconds into `{ days, hours, minutes, seconds, milliseconds }` |
131
169
  | `dateAsIso(date?)` | Formats a Date object as an ISO string (`YYYY-MM-DDTHH:mm:ss.sssZ`) |
170
+ | `timeAgo(date, locale?)` | Formats a date into a human-readable relative string (`'5 minutes ago'`) |
171
+ | `isSameDay(date1, date2)` | Checks if two dates fall on the same calendar day |
132
172
 
133
173
  ---
134
174
 
135
175
  ### ⚙️ General (`general`)
136
176
 
137
- Value safety checks and JSON validation.
177
+ Array deduplication, picking, grouping & chunking, deep equality, number clamping, value safety checks, and JSON validation.
138
178
 
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 |
179
+ | Function | Description |
180
+ | ------------------------ | ------------------------------------------------------- |
181
+ | `pick(object, keys)` | Creates object composed of picked object properties |
182
+ | `unique(array, keyFn?)` | Deduplicates array items by reference or key callback |
183
+ | `isEqual(a, b)` | Performs deep structural comparison between two values |
184
+ | `clamp(value, min, max)` | Constrains a number between min and max boundaries |
185
+ | `groupBy(array, keyFn)` | Groups array elements into an object by key |
186
+ | `chunk(array, size?)` | Splits array into chunks of specified size |
187
+ | `isEmpty(value)` | Checks if a string, array, map, set, or object is empty |
188
+ | `isNil(value)` | Checks if a value is `null` or `undefined` |
189
+ | `isValidJson(value)` | Validates whether a given string is valid JSON |
144
190
 
145
191
  ---
146
192
 
147
193
  ### ⏳ Schedule (`schedule`)
148
194
 
149
- Animation frames and async execution helpers.
195
+ Debouncing, throttling, async retry, sleep, and animation frames.
150
196
 
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`) |
197
+ | Function | Description |
198
+ | ------------------------------------ | ------------------------------------------------------------------------------ |
199
+ | `debounce(fn, delay?)` | Creates debounced function with `.cancel()` handle |
200
+ | `throttle(fn, limit?)` | Creates throttled function with `.cancel()` handle |
201
+ | `sleep(ms)` | Promise-based delay helper (`await sleep(500)`) |
202
+ | `retry(fn, options?)` | Retries async function with exponential backoff before failing |
203
+ | `runAnimation(callback, autoStart?)` | Executes a callback with `requestAnimationFrame` and returns a cancel function |
204
+ | `runAsync(callback)` | Runs a callback asynchronously in a Web Worker |
155
205
 
156
206
  ---
157
207
 
@@ -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,IAIjD,CAAC"}
@@ -0,0 +1,15 @@
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 match = document.cookie.match(new RegExp(`(?:^|;\\s*)${encodeURIComponent(name)}=([^;]*)`));
12
+ return match ? decodeURIComponent(match[1]) : null;
13
+ };
14
+ exports.getCookie = getCookie;
15
+ //# 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,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,cAAc,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAElG,OAAO,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACrD,CAAC,CAAC;AAJW,QAAA,SAAS,aAIpB"}
@@ -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
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,CAqBlE,CAAC"}
@@ -0,0 +1,29 @@
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
9
+ */
10
+ const getQueryParams = (url) => {
11
+ let search = url
12
+ ? url.includes('?')
13
+ ? url.substring(url.indexOf('?'))
14
+ : ''
15
+ : typeof window !== 'undefined'
16
+ ? window.location.search
17
+ : '';
18
+ if (search.includes('#')) {
19
+ search = search.substring(0, search.indexOf('#'));
20
+ }
21
+ const params = new URLSearchParams(search);
22
+ const result = {};
23
+ params.forEach((value, key) => {
24
+ result[key] = value;
25
+ });
26
+ return result;
27
+ };
28
+ exports.getQueryParams = getQueryParams;
29
+ //# 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,IAAI,MAAM,GAAG,GAAG;QACd,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;YACjB,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC,CAAC,EAAE;QACN,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW;YAC7B,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM;YACxB,CAAC,CAAC,EAAE,CAAC;IAET,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,MAAM,GAA2B,EAAE,CAAC;IAE1C,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC5B,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AArBW,QAAA,cAAc,kBAqBzB"}
@@ -1,10 +1,18 @@
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';
1
7
  export * from './isPushNotificationSupported.js';
2
8
  export * from './isScrollBehaviorSupported.js';
3
9
  export * from './isShareSupported.js';
4
10
  export * from './isTabFocused.js';
5
11
  export * from './isTouchSupported.js';
12
+ export * from './networkStatusListener.js';
6
13
  export * from './preferColorScheme.js';
7
14
  export * from './scrollToElement.js';
8
15
  export * from './scrollToPosition.js';
16
+ export * from './setCookie.js';
9
17
  export * from './tabFocusListener.js';
10
18
  //# 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,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,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
@@ -1,13 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./interfaces/index.js"), exports);
5
+ tslib_1.__exportStar(require("./deleteCookie.js"), exports);
6
+ tslib_1.__exportStar(require("./detectOS.js"), exports);
7
+ tslib_1.__exportStar(require("./downloadFile.js"), exports);
8
+ tslib_1.__exportStar(require("./getCookie.js"), exports);
9
+ tslib_1.__exportStar(require("./getQueryParams.js"), exports);
4
10
  tslib_1.__exportStar(require("./isPushNotificationSupported.js"), exports);
5
11
  tslib_1.__exportStar(require("./isScrollBehaviorSupported.js"), exports);
6
12
  tslib_1.__exportStar(require("./isShareSupported.js"), exports);
7
13
  tslib_1.__exportStar(require("./isTabFocused.js"), exports);
8
14
  tslib_1.__exportStar(require("./isTouchSupported.js"), exports);
15
+ tslib_1.__exportStar(require("./networkStatusListener.js"), exports);
9
16
  tslib_1.__exportStar(require("./preferColorScheme.js"), exports);
10
17
  tslib_1.__exportStar(require("./scrollToElement.js"), exports);
11
18
  tslib_1.__exportStar(require("./scrollToPosition.js"), exports);
19
+ tslib_1.__exportStar(require("./setCookie.js"), exports);
12
20
  tslib_1.__exportStar(require("./tabFocusListener.js"), exports);
13
21
  //# 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,gEAAsC;AAEtC,4DAAkC;AAClC,wDAA8B;AAC9B,4DAAkC;AAClC,yDAA+B;AAC/B,8DAAoC;AACpC,2EAAiD;AACjD,yEAA+C;AAC/C,gEAAsC;AACtC,4DAAkC;AAClC,gEAAsC;AACtC,qEAA2C;AAC3C,iEAAuC;AACvC,+DAAqC;AACrC,gEAAsC;AACtC,yDAA+B;AAC/B,gEAAsC"}
@@ -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"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./detectOS.js"), exports);
5
+ tslib_1.__exportStar(require("./isTouchSupported.js"), exports);
6
+ tslib_1.__exportStar(require("./setCookie.js"), exports);
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/browser/interfaces/index.ts"],"names":[],"mappings":";;;AAAA,wDAA8B;AAC9B,gEAAsC;AACtC,yDAA+B"}
@@ -1,4 +1,6 @@
1
1
  export interface IExtendedWindow extends Window {
2
- DocumentTouch: any;
2
+ DocumentTouch: {
3
+ new (...args: unknown[]): unknown;
4
+ };
3
5
  }
4
6
  //# sourceMappingURL=isTouchSupported.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"isTouchSupported.d.ts","sourceRoot":"","sources":["../../../../src/browser/interfaces/isTouchSupported.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAgB,SAAQ,MAAM;IAC7C,aAAa,EAAE,GAAG,CAAC;CACpB"}
1
+ {"version":3,"file":"isTouchSupported.d.ts","sourceRoot":"","sources":["../../../../src/browser/interfaces/isTouchSupported.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAgB,SAAQ,MAAM;IAC7C,aAAa,EAAE;QAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;KAAE,CAAC;CACtD"}
@@ -0,0 +1,8 @@
1
+ export interface ICookieOptions {
2
+ days?: number;
3
+ path?: string;
4
+ domain?: string;
5
+ secure?: boolean;
6
+ sameSite?: 'Strict' | 'Lax' | 'None';
7
+ }
8
+ //# sourceMappingURL=setCookie.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setCookie.d.ts","sourceRoot":"","sources":["../../../../src/browser/interfaces/setCookie.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;CACtC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=setCookie.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setCookie.js","sourceRoot":"","sources":["../../../../src/browser/interfaces/setCookie.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Set callbacks for when browser goes online or offline
3
+ *
4
+ * @param onOnline Callback when connection is restored
5
+ * @param onOffline Callback when connection is lost
6
+ * @returns Cleanup function to remove event listeners
7
+ */
8
+ export declare const networkStatusListener: (onOnline?: () => void, onOffline?: () => void) => (() => void);
9
+ //# sourceMappingURL=networkStatusListener.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networkStatusListener.d.ts","sourceRoot":"","sources":["../../../src/browser/networkStatusListener.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAChC,WAAW,MAAM,IAAI,EACrB,YAAY,MAAM,IAAI,KACrB,CAAC,MAAM,IAAI,CAWb,CAAC"}