tool-shack 0.0.41 → 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 (624) hide show
  1. package/README.md +216 -0
  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/isTouchSupported.d.ts.map +1 -1
  41. package/dist/cjs/browser/isTouchSupported.js +2 -2
  42. package/dist/cjs/browser/isTouchSupported.js.map +1 -1
  43. package/dist/cjs/browser/networkStatusListener.d.ts +9 -0
  44. package/dist/cjs/browser/networkStatusListener.d.ts.map +1 -0
  45. package/dist/cjs/browser/networkStatusListener.js +22 -0
  46. package/dist/cjs/browser/networkStatusListener.js.map +1 -0
  47. package/dist/cjs/browser/scrollToElement.d.ts.map +1 -1
  48. package/dist/cjs/browser/scrollToElement.js.map +1 -1
  49. package/dist/cjs/browser/scrollToPosition.d.ts.map +1 -1
  50. package/dist/cjs/browser/scrollToPosition.js.map +1 -1
  51. package/dist/cjs/browser/setCookie.d.ts +11 -0
  52. package/dist/cjs/browser/setCookie.d.ts.map +1 -0
  53. package/dist/cjs/browser/setCookie.js +31 -0
  54. package/dist/cjs/browser/setCookie.js.map +1 -0
  55. package/dist/cjs/dateTime/dateAsIso.d.ts.map +1 -1
  56. package/dist/cjs/dateTime/dateAsIso.js.map +1 -1
  57. package/dist/cjs/dateTime/index.d.ts +2 -0
  58. package/dist/cjs/dateTime/index.d.ts.map +1 -1
  59. package/dist/cjs/dateTime/index.js +2 -0
  60. package/dist/cjs/dateTime/index.js.map +1 -1
  61. package/dist/cjs/dateTime/isSameDay.d.ts +9 -0
  62. package/dist/cjs/dateTime/isSameDay.d.ts.map +1 -0
  63. package/dist/cjs/dateTime/isSameDay.js +19 -0
  64. package/dist/cjs/dateTime/isSameDay.js.map +1 -0
  65. package/dist/cjs/dateTime/parseDuration.d.ts +1 -1
  66. package/dist/cjs/dateTime/parseDuration.d.ts.map +1 -1
  67. package/dist/cjs/dateTime/timeAgo.d.ts +9 -0
  68. package/dist/cjs/dateTime/timeAgo.d.ts.map +1 -0
  69. package/dist/cjs/dateTime/timeAgo.js +39 -0
  70. package/dist/cjs/dateTime/timeAgo.js.map +1 -0
  71. package/dist/cjs/dom/addAsyncEventListener.js +4 -4
  72. package/dist/cjs/dom/addAsyncEventListener.js.map +1 -1
  73. package/dist/cjs/dom/addClickOutsideListener.d.ts +2 -2
  74. package/dist/cjs/dom/addClickOutsideListener.d.ts.map +1 -1
  75. package/dist/cjs/dom/addClickOutsideListener.js +3 -3
  76. package/dist/cjs/dom/addClickOutsideListener.js.map +1 -1
  77. package/dist/cjs/dom/addEventListener.js +3 -3
  78. package/dist/cjs/dom/addEventListener.js.map +1 -1
  79. package/dist/cjs/dom/copyToClipboard.d.ts +8 -0
  80. package/dist/cjs/dom/copyToClipboard.d.ts.map +1 -0
  81. package/dist/cjs/dom/copyToClipboard.js +38 -0
  82. package/dist/cjs/dom/copyToClipboard.js.map +1 -0
  83. package/dist/cjs/dom/createElement.d.ts +1 -1
  84. package/dist/cjs/dom/createElement.d.ts.map +1 -1
  85. package/dist/cjs/dom/createElement.js +5 -4
  86. package/dist/cjs/dom/createElement.js.map +1 -1
  87. package/dist/cjs/dom/index.d.ts +5 -0
  88. package/dist/cjs/dom/index.d.ts.map +1 -1
  89. package/dist/cjs/dom/index.js +5 -0
  90. package/dist/cjs/dom/index.js.map +1 -1
  91. package/dist/cjs/dom/interfaces/index.d.ts +1 -0
  92. package/dist/cjs/dom/interfaces/index.d.ts.map +1 -1
  93. package/dist/cjs/dom/interfaces/index.js +1 -0
  94. package/dist/cjs/dom/interfaces/index.js.map +1 -1
  95. package/dist/cjs/dom/interfaces/toggleFullscreenWithFallback.d.ts +5 -0
  96. package/dist/cjs/dom/interfaces/toggleFullscreenWithFallback.d.ts.map +1 -0
  97. package/dist/cjs/dom/interfaces/toggleFullscreenWithFallback.js +3 -0
  98. package/dist/cjs/dom/interfaces/toggleFullscreenWithFallback.js.map +1 -0
  99. package/dist/cjs/dom/isInViewport.d.ts +9 -0
  100. package/dist/cjs/dom/isInViewport.d.ts.map +1 -0
  101. package/dist/cjs/dom/isInViewport.js +21 -0
  102. package/dist/cjs/dom/isInViewport.js.map +1 -0
  103. package/dist/cjs/dom/toggleFullscreen.d.ts +8 -0
  104. package/dist/cjs/dom/toggleFullscreen.d.ts.map +1 -0
  105. package/dist/cjs/dom/toggleFullscreen.js +19 -0
  106. package/dist/cjs/dom/toggleFullscreen.js.map +1 -0
  107. package/dist/cjs/dom/toggleFullscreenWithFallback.d.ts +10 -0
  108. package/dist/cjs/dom/toggleFullscreenWithFallback.d.ts.map +1 -0
  109. package/dist/cjs/dom/toggleFullscreenWithFallback.js +72 -0
  110. package/dist/cjs/dom/toggleFullscreenWithFallback.js.map +1 -0
  111. package/dist/cjs/dom/waitForElement.d.ts +10 -0
  112. package/dist/cjs/dom/waitForElement.d.ts.map +1 -0
  113. package/dist/cjs/dom/waitForElement.js +35 -0
  114. package/dist/cjs/dom/waitForElement.js.map +1 -0
  115. package/dist/cjs/general/chunk.d.ts +9 -0
  116. package/dist/cjs/general/chunk.d.ts.map +1 -0
  117. package/dist/cjs/general/chunk.js +22 -0
  118. package/dist/cjs/general/chunk.js.map +1 -0
  119. package/dist/cjs/general/clamp.d.ts +10 -0
  120. package/dist/cjs/general/clamp.d.ts.map +1 -0
  121. package/dist/cjs/general/clamp.js +14 -0
  122. package/dist/cjs/general/clamp.js.map +1 -0
  123. package/dist/cjs/general/groupBy.d.ts +9 -0
  124. package/dist/cjs/general/groupBy.d.ts.map +1 -0
  125. package/dist/cjs/general/groupBy.js +23 -0
  126. package/dist/cjs/general/groupBy.js.map +1 -0
  127. package/dist/cjs/general/index.d.ts +6 -0
  128. package/dist/cjs/general/index.d.ts.map +1 -1
  129. package/dist/cjs/general/index.js +6 -0
  130. package/dist/cjs/general/index.js.map +1 -1
  131. package/dist/cjs/general/isEmpty.d.ts +1 -1
  132. package/dist/cjs/general/isEmpty.d.ts.map +1 -1
  133. package/dist/cjs/general/isEmpty.js +4 -1
  134. package/dist/cjs/general/isEmpty.js.map +1 -1
  135. package/dist/cjs/general/isEqual.d.ts +9 -0
  136. package/dist/cjs/general/isEqual.d.ts.map +1 -0
  137. package/dist/cjs/general/isEqual.js +63 -0
  138. package/dist/cjs/general/isEqual.js.map +1 -0
  139. package/dist/cjs/general/isNil.d.ts +1 -1
  140. package/dist/cjs/general/isNil.d.ts.map +1 -1
  141. package/dist/cjs/general/isNil.js.map +1 -1
  142. package/dist/cjs/general/isValidJson.js +1 -1
  143. package/dist/cjs/general/isValidJson.js.map +1 -1
  144. package/dist/cjs/general/pick.d.ts +9 -0
  145. package/dist/cjs/general/pick.d.ts.map +1 -0
  146. package/dist/cjs/general/pick.js +21 -0
  147. package/dist/cjs/general/pick.js.map +1 -0
  148. package/dist/cjs/general/unique.d.ts +9 -0
  149. package/dist/cjs/general/unique.d.ts.map +1 -0
  150. package/dist/cjs/general/unique.js +27 -0
  151. package/dist/cjs/general/unique.js.map +1 -0
  152. package/dist/cjs/index.d.ts +1 -0
  153. package/dist/cjs/index.d.ts.map +1 -1
  154. package/dist/cjs/index.js +1 -0
  155. package/dist/cjs/index.js.map +1 -1
  156. package/dist/cjs/schedule/debounce.d.ts +10 -0
  157. package/dist/cjs/schedule/debounce.d.ts.map +1 -0
  158. package/dist/cjs/schedule/debounce.js +31 -0
  159. package/dist/cjs/schedule/debounce.js.map +1 -0
  160. package/dist/cjs/schedule/index.d.ts +5 -0
  161. package/dist/cjs/schedule/index.d.ts.map +1 -1
  162. package/dist/cjs/schedule/index.js +5 -0
  163. package/dist/cjs/schedule/index.js.map +1 -1
  164. package/dist/cjs/schedule/interfaces/debounce.d.ts +5 -0
  165. package/dist/cjs/schedule/interfaces/debounce.d.ts.map +1 -0
  166. package/dist/cjs/schedule/interfaces/debounce.js +3 -0
  167. package/dist/cjs/schedule/interfaces/debounce.js.map +1 -0
  168. package/dist/cjs/schedule/interfaces/index.d.ts +5 -0
  169. package/dist/cjs/schedule/interfaces/index.d.ts.map +1 -0
  170. package/dist/cjs/schedule/interfaces/index.js +8 -0
  171. package/dist/cjs/schedule/interfaces/index.js.map +1 -0
  172. package/dist/cjs/schedule/interfaces/retry.d.ts +6 -0
  173. package/dist/cjs/schedule/interfaces/retry.d.ts.map +1 -0
  174. package/dist/cjs/schedule/interfaces/retry.js +3 -0
  175. package/dist/cjs/schedule/interfaces/retry.js.map +1 -0
  176. package/dist/cjs/schedule/interfaces/runAnimation.d.ts +5 -0
  177. package/dist/cjs/schedule/interfaces/runAnimation.d.ts.map +1 -0
  178. package/dist/cjs/schedule/interfaces/runAnimation.js +3 -0
  179. package/dist/cjs/schedule/interfaces/runAnimation.js.map +1 -0
  180. package/dist/cjs/schedule/interfaces/throttle.d.ts +5 -0
  181. package/dist/cjs/schedule/interfaces/throttle.d.ts.map +1 -0
  182. package/dist/cjs/schedule/interfaces/throttle.js +3 -0
  183. package/dist/cjs/schedule/interfaces/throttle.js.map +1 -0
  184. package/dist/cjs/schedule/retry.d.ts +10 -0
  185. package/dist/cjs/schedule/retry.d.ts.map +1 -0
  186. package/dist/cjs/schedule/retry.js +34 -0
  187. package/dist/cjs/schedule/retry.js.map +1 -0
  188. package/dist/cjs/schedule/runAnimation.d.ts +3 -5
  189. package/dist/cjs/schedule/runAnimation.d.ts.map +1 -1
  190. package/dist/cjs/schedule/runAnimation.js +4 -4
  191. package/dist/cjs/schedule/runAnimation.js.map +1 -1
  192. package/dist/cjs/schedule/runAsync.d.ts +2 -2
  193. package/dist/cjs/schedule/runAsync.d.ts.map +1 -1
  194. package/dist/cjs/schedule/runAsync.js +7 -7
  195. package/dist/cjs/schedule/runAsync.js.map +1 -1
  196. package/dist/cjs/schedule/sleep.d.ts +8 -0
  197. package/dist/cjs/schedule/sleep.d.ts.map +1 -0
  198. package/dist/cjs/schedule/sleep.js +12 -0
  199. package/dist/cjs/schedule/sleep.js.map +1 -0
  200. package/dist/cjs/schedule/throttle.d.ts +10 -0
  201. package/dist/cjs/schedule/throttle.d.ts.map +1 -0
  202. package/dist/cjs/schedule/throttle.js +40 -0
  203. package/dist/cjs/schedule/throttle.js.map +1 -0
  204. package/dist/cjs/storage/clearLocalStorage.d.ts +7 -0
  205. package/dist/cjs/storage/clearLocalStorage.d.ts.map +1 -0
  206. package/dist/cjs/storage/clearLocalStorage.js +20 -0
  207. package/dist/cjs/storage/clearLocalStorage.js.map +1 -0
  208. package/dist/cjs/storage/clearSessionStorage.d.ts +7 -0
  209. package/dist/cjs/storage/clearSessionStorage.d.ts.map +1 -0
  210. package/dist/cjs/storage/clearSessionStorage.js +20 -0
  211. package/dist/cjs/storage/clearSessionStorage.js.map +1 -0
  212. package/dist/cjs/storage/getLocalStorage.d.ts +11 -0
  213. package/dist/cjs/storage/getLocalStorage.d.ts.map +1 -0
  214. package/dist/cjs/storage/getLocalStorage.js +38 -0
  215. package/dist/cjs/storage/getLocalStorage.js.map +1 -0
  216. package/dist/cjs/storage/getSessionStorage.d.ts +11 -0
  217. package/dist/cjs/storage/getSessionStorage.d.ts.map +1 -0
  218. package/dist/cjs/storage/getSessionStorage.js +38 -0
  219. package/dist/cjs/storage/getSessionStorage.js.map +1 -0
  220. package/dist/cjs/storage/index.d.ts +10 -0
  221. package/dist/cjs/storage/index.d.ts.map +1 -0
  222. package/dist/cjs/storage/index.js +13 -0
  223. package/dist/cjs/storage/index.js.map +1 -0
  224. package/dist/cjs/storage/interfaces/index.d.ts +2 -0
  225. package/dist/cjs/storage/interfaces/index.d.ts.map +1 -0
  226. package/dist/cjs/storage/interfaces/index.js +5 -0
  227. package/dist/cjs/storage/interfaces/index.js.map +1 -0
  228. package/dist/cjs/storage/interfaces/storage.d.ts +4 -0
  229. package/dist/cjs/storage/interfaces/storage.d.ts.map +1 -0
  230. package/dist/cjs/storage/interfaces/storage.js +3 -0
  231. package/dist/cjs/storage/interfaces/storage.js.map +1 -0
  232. package/dist/cjs/storage/removeLocalStorage.d.ts +8 -0
  233. package/dist/cjs/storage/removeLocalStorage.d.ts.map +1 -0
  234. package/dist/cjs/storage/removeLocalStorage.js +21 -0
  235. package/dist/cjs/storage/removeLocalStorage.js.map +1 -0
  236. package/dist/cjs/storage/removeSessionStorage.d.ts +8 -0
  237. package/dist/cjs/storage/removeSessionStorage.d.ts.map +1 -0
  238. package/dist/cjs/storage/removeSessionStorage.js +21 -0
  239. package/dist/cjs/storage/removeSessionStorage.js.map +1 -0
  240. package/dist/cjs/storage/setLocalStorage.d.ts +11 -0
  241. package/dist/cjs/storage/setLocalStorage.d.ts.map +1 -0
  242. package/dist/cjs/storage/setLocalStorage.js +28 -0
  243. package/dist/cjs/storage/setLocalStorage.js.map +1 -0
  244. package/dist/cjs/storage/setSessionStorage.d.ts +11 -0
  245. package/dist/cjs/storage/setSessionStorage.d.ts.map +1 -0
  246. package/dist/cjs/storage/setSessionStorage.js +28 -0
  247. package/dist/cjs/storage/setSessionStorage.js.map +1 -0
  248. package/dist/cjs/string/camelCase.d.ts +8 -0
  249. package/dist/cjs/string/camelCase.d.ts.map +1 -0
  250. package/dist/cjs/string/camelCase.js +17 -0
  251. package/dist/cjs/string/camelCase.js.map +1 -0
  252. package/dist/cjs/string/capitalize.d.ts +8 -0
  253. package/dist/cjs/string/capitalize.d.ts.map +1 -0
  254. package/dist/cjs/string/capitalize.js +12 -0
  255. package/dist/cjs/string/capitalize.js.map +1 -0
  256. package/dist/cjs/string/decodeBase64.d.ts +8 -0
  257. package/dist/cjs/string/decodeBase64.d.ts.map +1 -0
  258. package/dist/cjs/string/decodeBase64.js +14 -0
  259. package/dist/cjs/string/decodeBase64.js.map +1 -0
  260. package/dist/cjs/string/encodeBase64.d.ts +8 -0
  261. package/dist/cjs/string/encodeBase64.d.ts.map +1 -0
  262. package/dist/cjs/string/encodeBase64.js +12 -0
  263. package/dist/cjs/string/encodeBase64.js.map +1 -0
  264. package/dist/cjs/string/formatBytes.d.ts +9 -0
  265. package/dist/cjs/string/formatBytes.d.ts.map +1 -0
  266. package/dist/cjs/string/formatBytes.js +23 -0
  267. package/dist/cjs/string/formatBytes.js.map +1 -0
  268. package/dist/cjs/string/index.d.ts +13 -0
  269. package/dist/cjs/string/index.d.ts.map +1 -1
  270. package/dist/cjs/string/index.js +13 -0
  271. package/dist/cjs/string/index.js.map +1 -1
  272. package/dist/cjs/string/interfaces/index.d.ts +2 -0
  273. package/dist/cjs/string/interfaces/index.d.ts.map +1 -0
  274. package/dist/cjs/string/interfaces/index.js +5 -0
  275. package/dist/cjs/string/interfaces/index.js.map +1 -0
  276. package/dist/cjs/string/interfaces/mask.d.ts +6 -0
  277. package/dist/cjs/string/interfaces/mask.d.ts.map +1 -0
  278. package/dist/cjs/string/interfaces/mask.js +3 -0
  279. package/dist/cjs/string/interfaces/mask.js.map +1 -0
  280. package/dist/cjs/string/kebabCase.d.ts +8 -0
  281. package/dist/cjs/string/kebabCase.d.ts.map +1 -0
  282. package/dist/cjs/string/kebabCase.js +18 -0
  283. package/dist/cjs/string/kebabCase.js.map +1 -0
  284. package/dist/cjs/string/mask.d.ts +10 -0
  285. package/dist/cjs/string/mask.d.ts.map +1 -0
  286. package/dist/cjs/string/mask.js +29 -0
  287. package/dist/cjs/string/mask.js.map +1 -0
  288. package/dist/cjs/string/pascalCase.d.ts +8 -0
  289. package/dist/cjs/string/pascalCase.d.ts.map +1 -0
  290. package/dist/cjs/string/pascalCase.js +14 -0
  291. package/dist/cjs/string/pascalCase.js.map +1 -0
  292. package/dist/cjs/string/randomCryptoString.d.ts +9 -0
  293. package/dist/cjs/string/randomCryptoString.d.ts.map +1 -0
  294. package/dist/cjs/string/randomCryptoString.js +23 -0
  295. package/dist/cjs/string/randomCryptoString.js.map +1 -0
  296. package/dist/cjs/string/randomString.d.ts +9 -0
  297. package/dist/cjs/string/randomString.d.ts.map +1 -0
  298. package/dist/cjs/string/randomString.js +21 -0
  299. package/dist/cjs/string/randomString.js.map +1 -0
  300. package/dist/cjs/string/slugify.d.ts.map +1 -1
  301. package/dist/cjs/string/slugify.js +7 -2
  302. package/dist/cjs/string/slugify.js.map +1 -1
  303. package/dist/cjs/string/snakeCase.d.ts +8 -0
  304. package/dist/cjs/string/snakeCase.d.ts.map +1 -0
  305. package/dist/cjs/string/snakeCase.js +18 -0
  306. package/dist/cjs/string/snakeCase.js.map +1 -0
  307. package/dist/cjs/string/truncate.d.ts.map +1 -1
  308. package/dist/cjs/string/truncate.js.map +1 -1
  309. package/dist/cjs/string/unescapeHTML.d.ts +8 -0
  310. package/dist/cjs/string/unescapeHTML.d.ts.map +1 -0
  311. package/dist/cjs/string/unescapeHTML.js +16 -0
  312. package/dist/cjs/string/unescapeHTML.js.map +1 -0
  313. package/dist/esm/browser/deleteCookie.d.ts +10 -0
  314. package/dist/esm/browser/deleteCookie.d.ts.map +1 -0
  315. package/dist/esm/browser/deleteCookie.js +12 -0
  316. package/dist/esm/browser/deleteCookie.js.map +1 -0
  317. package/dist/esm/browser/detectOS.d.ts +8 -0
  318. package/dist/esm/browser/detectOS.d.ts.map +1 -0
  319. package/dist/esm/browser/detectOS.js +28 -0
  320. package/dist/esm/browser/detectOS.js.map +1 -0
  321. package/dist/esm/browser/downloadFile.d.ts +10 -0
  322. package/dist/esm/browser/downloadFile.d.ts.map +1 -0
  323. package/dist/esm/browser/downloadFile.js +21 -0
  324. package/dist/esm/browser/downloadFile.js.map +1 -0
  325. package/dist/esm/browser/getCookie.d.ts +8 -0
  326. package/dist/esm/browser/getCookie.d.ts.map +1 -0
  327. package/dist/esm/browser/getCookie.js +11 -0
  328. package/dist/esm/browser/getCookie.js.map +1 -0
  329. package/dist/esm/browser/getQueryParams.d.ts +8 -0
  330. package/dist/esm/browser/getQueryParams.d.ts.map +1 -0
  331. package/dist/esm/browser/getQueryParams.js +25 -0
  332. package/dist/esm/browser/getQueryParams.js.map +1 -0
  333. package/dist/esm/browser/index.d.ts +8 -0
  334. package/dist/esm/browser/index.d.ts.map +1 -1
  335. package/dist/esm/browser/index.js +8 -0
  336. package/dist/esm/browser/index.js.map +1 -1
  337. package/dist/esm/browser/interfaces/detectOS.d.ts +2 -0
  338. package/dist/esm/browser/interfaces/detectOS.d.ts.map +1 -0
  339. package/dist/esm/browser/interfaces/detectOS.js +2 -0
  340. package/dist/esm/browser/interfaces/detectOS.js.map +1 -0
  341. package/dist/esm/browser/interfaces/index.d.ts +4 -0
  342. package/dist/esm/browser/interfaces/index.d.ts.map +1 -0
  343. package/dist/esm/browser/interfaces/index.js +4 -0
  344. package/dist/esm/browser/interfaces/index.js.map +1 -0
  345. package/dist/esm/browser/interfaces/isTouchSupported.d.ts +3 -1
  346. package/dist/esm/browser/interfaces/isTouchSupported.d.ts.map +1 -1
  347. package/dist/esm/browser/interfaces/setCookie.d.ts +8 -0
  348. package/dist/esm/browser/interfaces/setCookie.d.ts.map +1 -0
  349. package/dist/esm/browser/interfaces/setCookie.js +2 -0
  350. package/dist/esm/browser/interfaces/setCookie.js.map +1 -0
  351. package/dist/esm/browser/isTouchSupported.d.ts.map +1 -1
  352. package/dist/esm/browser/isTouchSupported.js +2 -2
  353. package/dist/esm/browser/isTouchSupported.js.map +1 -1
  354. package/dist/esm/browser/networkStatusListener.d.ts +9 -0
  355. package/dist/esm/browser/networkStatusListener.d.ts.map +1 -0
  356. package/dist/esm/browser/networkStatusListener.js +18 -0
  357. package/dist/esm/browser/networkStatusListener.js.map +1 -0
  358. package/dist/esm/browser/scrollToElement.d.ts.map +1 -1
  359. package/dist/esm/browser/scrollToElement.js.map +1 -1
  360. package/dist/esm/browser/scrollToPosition.d.ts.map +1 -1
  361. package/dist/esm/browser/scrollToPosition.js.map +1 -1
  362. package/dist/esm/browser/setCookie.d.ts +11 -0
  363. package/dist/esm/browser/setCookie.d.ts.map +1 -0
  364. package/dist/esm/browser/setCookie.js +27 -0
  365. package/dist/esm/browser/setCookie.js.map +1 -0
  366. package/dist/esm/dateTime/dateAsIso.d.ts.map +1 -1
  367. package/dist/esm/dateTime/dateAsIso.js.map +1 -1
  368. package/dist/esm/dateTime/index.d.ts +2 -0
  369. package/dist/esm/dateTime/index.d.ts.map +1 -1
  370. package/dist/esm/dateTime/index.js +2 -0
  371. package/dist/esm/dateTime/index.js.map +1 -1
  372. package/dist/esm/dateTime/isSameDay.d.ts +9 -0
  373. package/dist/esm/dateTime/isSameDay.d.ts.map +1 -0
  374. package/dist/esm/dateTime/isSameDay.js +15 -0
  375. package/dist/esm/dateTime/isSameDay.js.map +1 -0
  376. package/dist/esm/dateTime/parseDuration.d.ts +1 -1
  377. package/dist/esm/dateTime/parseDuration.d.ts.map +1 -1
  378. package/dist/esm/dateTime/timeAgo.d.ts +9 -0
  379. package/dist/esm/dateTime/timeAgo.d.ts.map +1 -0
  380. package/dist/esm/dateTime/timeAgo.js +35 -0
  381. package/dist/esm/dateTime/timeAgo.js.map +1 -0
  382. package/dist/esm/dom/addAsyncEventListener.js +4 -4
  383. package/dist/esm/dom/addAsyncEventListener.js.map +1 -1
  384. package/dist/esm/dom/addClickOutsideListener.d.ts +2 -2
  385. package/dist/esm/dom/addClickOutsideListener.d.ts.map +1 -1
  386. package/dist/esm/dom/addClickOutsideListener.js +3 -3
  387. package/dist/esm/dom/addClickOutsideListener.js.map +1 -1
  388. package/dist/esm/dom/addEventListener.js +3 -3
  389. package/dist/esm/dom/addEventListener.js.map +1 -1
  390. package/dist/esm/dom/copyToClipboard.d.ts +8 -0
  391. package/dist/esm/dom/copyToClipboard.d.ts.map +1 -0
  392. package/dist/esm/dom/copyToClipboard.js +34 -0
  393. package/dist/esm/dom/copyToClipboard.js.map +1 -0
  394. package/dist/esm/dom/createElement.d.ts +1 -1
  395. package/dist/esm/dom/createElement.d.ts.map +1 -1
  396. package/dist/esm/dom/createElement.js +5 -4
  397. package/dist/esm/dom/createElement.js.map +1 -1
  398. package/dist/esm/dom/index.d.ts +5 -0
  399. package/dist/esm/dom/index.d.ts.map +1 -1
  400. package/dist/esm/dom/index.js +5 -0
  401. package/dist/esm/dom/index.js.map +1 -1
  402. package/dist/esm/dom/interfaces/index.d.ts +1 -0
  403. package/dist/esm/dom/interfaces/index.d.ts.map +1 -1
  404. package/dist/esm/dom/interfaces/index.js +1 -0
  405. package/dist/esm/dom/interfaces/index.js.map +1 -1
  406. package/dist/esm/dom/interfaces/toggleFullscreenWithFallback.d.ts +5 -0
  407. package/dist/esm/dom/interfaces/toggleFullscreenWithFallback.d.ts.map +1 -0
  408. package/dist/esm/dom/interfaces/toggleFullscreenWithFallback.js +2 -0
  409. package/dist/esm/dom/interfaces/toggleFullscreenWithFallback.js.map +1 -0
  410. package/dist/esm/dom/isInViewport.d.ts +9 -0
  411. package/dist/esm/dom/isInViewport.d.ts.map +1 -0
  412. package/dist/esm/dom/isInViewport.js +17 -0
  413. package/dist/esm/dom/isInViewport.js.map +1 -0
  414. package/dist/esm/dom/toggleFullscreen.d.ts +8 -0
  415. package/dist/esm/dom/toggleFullscreen.d.ts.map +1 -0
  416. package/dist/esm/dom/toggleFullscreen.js +15 -0
  417. package/dist/esm/dom/toggleFullscreen.js.map +1 -0
  418. package/dist/esm/dom/toggleFullscreenWithFallback.d.ts +10 -0
  419. package/dist/esm/dom/toggleFullscreenWithFallback.d.ts.map +1 -0
  420. package/dist/esm/dom/toggleFullscreenWithFallback.js +68 -0
  421. package/dist/esm/dom/toggleFullscreenWithFallback.js.map +1 -0
  422. package/dist/esm/dom/waitForElement.d.ts +10 -0
  423. package/dist/esm/dom/waitForElement.d.ts.map +1 -0
  424. package/dist/esm/dom/waitForElement.js +31 -0
  425. package/dist/esm/dom/waitForElement.js.map +1 -0
  426. package/dist/esm/general/chunk.d.ts +9 -0
  427. package/dist/esm/general/chunk.d.ts.map +1 -0
  428. package/dist/esm/general/chunk.js +18 -0
  429. package/dist/esm/general/chunk.js.map +1 -0
  430. package/dist/esm/general/clamp.d.ts +10 -0
  431. package/dist/esm/general/clamp.d.ts.map +1 -0
  432. package/dist/esm/general/clamp.js +10 -0
  433. package/dist/esm/general/clamp.js.map +1 -0
  434. package/dist/esm/general/groupBy.d.ts +9 -0
  435. package/dist/esm/general/groupBy.d.ts.map +1 -0
  436. package/dist/esm/general/groupBy.js +19 -0
  437. package/dist/esm/general/groupBy.js.map +1 -0
  438. package/dist/esm/general/index.d.ts +6 -0
  439. package/dist/esm/general/index.d.ts.map +1 -1
  440. package/dist/esm/general/index.js +6 -0
  441. package/dist/esm/general/index.js.map +1 -1
  442. package/dist/esm/general/isEmpty.d.ts +1 -1
  443. package/dist/esm/general/isEmpty.d.ts.map +1 -1
  444. package/dist/esm/general/isEmpty.js +4 -1
  445. package/dist/esm/general/isEmpty.js.map +1 -1
  446. package/dist/esm/general/isEqual.d.ts +9 -0
  447. package/dist/esm/general/isEqual.d.ts.map +1 -0
  448. package/dist/esm/general/isEqual.js +59 -0
  449. package/dist/esm/general/isEqual.js.map +1 -0
  450. package/dist/esm/general/isNil.d.ts +1 -1
  451. package/dist/esm/general/isNil.d.ts.map +1 -1
  452. package/dist/esm/general/isNil.js.map +1 -1
  453. package/dist/esm/general/isValidJson.js +1 -1
  454. package/dist/esm/general/isValidJson.js.map +1 -1
  455. package/dist/esm/general/pick.d.ts +9 -0
  456. package/dist/esm/general/pick.d.ts.map +1 -0
  457. package/dist/esm/general/pick.js +17 -0
  458. package/dist/esm/general/pick.js.map +1 -0
  459. package/dist/esm/general/unique.d.ts +9 -0
  460. package/dist/esm/general/unique.d.ts.map +1 -0
  461. package/dist/esm/general/unique.js +23 -0
  462. package/dist/esm/general/unique.js.map +1 -0
  463. package/dist/esm/index.d.ts +1 -0
  464. package/dist/esm/index.d.ts.map +1 -1
  465. package/dist/esm/index.js +1 -0
  466. package/dist/esm/index.js.map +1 -1
  467. package/dist/esm/schedule/debounce.d.ts +10 -0
  468. package/dist/esm/schedule/debounce.d.ts.map +1 -0
  469. package/dist/esm/schedule/debounce.js +27 -0
  470. package/dist/esm/schedule/debounce.js.map +1 -0
  471. package/dist/esm/schedule/index.d.ts +5 -0
  472. package/dist/esm/schedule/index.d.ts.map +1 -1
  473. package/dist/esm/schedule/index.js +5 -0
  474. package/dist/esm/schedule/index.js.map +1 -1
  475. package/dist/esm/schedule/interfaces/debounce.d.ts +5 -0
  476. package/dist/esm/schedule/interfaces/debounce.d.ts.map +1 -0
  477. package/dist/esm/schedule/interfaces/debounce.js +2 -0
  478. package/dist/esm/schedule/interfaces/debounce.js.map +1 -0
  479. package/dist/esm/schedule/interfaces/index.d.ts +5 -0
  480. package/dist/esm/schedule/interfaces/index.d.ts.map +1 -0
  481. package/dist/esm/schedule/interfaces/index.js +5 -0
  482. package/dist/esm/schedule/interfaces/index.js.map +1 -0
  483. package/dist/esm/schedule/interfaces/retry.d.ts +6 -0
  484. package/dist/esm/schedule/interfaces/retry.d.ts.map +1 -0
  485. package/dist/esm/schedule/interfaces/retry.js +2 -0
  486. package/dist/esm/schedule/interfaces/retry.js.map +1 -0
  487. package/dist/esm/schedule/interfaces/runAnimation.d.ts +5 -0
  488. package/dist/esm/schedule/interfaces/runAnimation.d.ts.map +1 -0
  489. package/dist/esm/schedule/interfaces/runAnimation.js +2 -0
  490. package/dist/esm/schedule/interfaces/runAnimation.js.map +1 -0
  491. package/dist/esm/schedule/interfaces/throttle.d.ts +5 -0
  492. package/dist/esm/schedule/interfaces/throttle.d.ts.map +1 -0
  493. package/dist/esm/schedule/interfaces/throttle.js +2 -0
  494. package/dist/esm/schedule/interfaces/throttle.js.map +1 -0
  495. package/dist/esm/schedule/retry.d.ts +10 -0
  496. package/dist/esm/schedule/retry.d.ts.map +1 -0
  497. package/dist/esm/schedule/retry.js +30 -0
  498. package/dist/esm/schedule/retry.js.map +1 -0
  499. package/dist/esm/schedule/runAnimation.d.ts +3 -5
  500. package/dist/esm/schedule/runAnimation.d.ts.map +1 -1
  501. package/dist/esm/schedule/runAnimation.js +4 -4
  502. package/dist/esm/schedule/runAnimation.js.map +1 -1
  503. package/dist/esm/schedule/runAsync.d.ts +2 -2
  504. package/dist/esm/schedule/runAsync.d.ts.map +1 -1
  505. package/dist/esm/schedule/runAsync.js +7 -7
  506. package/dist/esm/schedule/runAsync.js.map +1 -1
  507. package/dist/esm/schedule/sleep.d.ts +8 -0
  508. package/dist/esm/schedule/sleep.d.ts.map +1 -0
  509. package/dist/esm/schedule/sleep.js +8 -0
  510. package/dist/esm/schedule/sleep.js.map +1 -0
  511. package/dist/esm/schedule/throttle.d.ts +10 -0
  512. package/dist/esm/schedule/throttle.d.ts.map +1 -0
  513. package/dist/esm/schedule/throttle.js +36 -0
  514. package/dist/esm/schedule/throttle.js.map +1 -0
  515. package/dist/esm/storage/clearLocalStorage.d.ts +7 -0
  516. package/dist/esm/storage/clearLocalStorage.d.ts.map +1 -0
  517. package/dist/esm/storage/clearLocalStorage.js +16 -0
  518. package/dist/esm/storage/clearLocalStorage.js.map +1 -0
  519. package/dist/esm/storage/clearSessionStorage.d.ts +7 -0
  520. package/dist/esm/storage/clearSessionStorage.d.ts.map +1 -0
  521. package/dist/esm/storage/clearSessionStorage.js +16 -0
  522. package/dist/esm/storage/clearSessionStorage.js.map +1 -0
  523. package/dist/esm/storage/getLocalStorage.d.ts +11 -0
  524. package/dist/esm/storage/getLocalStorage.d.ts.map +1 -0
  525. package/dist/esm/storage/getLocalStorage.js +34 -0
  526. package/dist/esm/storage/getLocalStorage.js.map +1 -0
  527. package/dist/esm/storage/getSessionStorage.d.ts +11 -0
  528. package/dist/esm/storage/getSessionStorage.d.ts.map +1 -0
  529. package/dist/esm/storage/getSessionStorage.js +34 -0
  530. package/dist/esm/storage/getSessionStorage.js.map +1 -0
  531. package/dist/esm/storage/index.d.ts +10 -0
  532. package/dist/esm/storage/index.d.ts.map +1 -0
  533. package/dist/esm/storage/index.js +10 -0
  534. package/dist/esm/storage/index.js.map +1 -0
  535. package/dist/esm/storage/interfaces/index.d.ts +2 -0
  536. package/dist/esm/storage/interfaces/index.d.ts.map +1 -0
  537. package/dist/esm/storage/interfaces/index.js +2 -0
  538. package/dist/esm/storage/interfaces/index.js.map +1 -0
  539. package/dist/esm/storage/interfaces/storage.d.ts +4 -0
  540. package/dist/esm/storage/interfaces/storage.d.ts.map +1 -0
  541. package/dist/esm/storage/interfaces/storage.js +2 -0
  542. package/dist/esm/storage/interfaces/storage.js.map +1 -0
  543. package/dist/esm/storage/removeLocalStorage.d.ts +8 -0
  544. package/dist/esm/storage/removeLocalStorage.d.ts.map +1 -0
  545. package/dist/esm/storage/removeLocalStorage.js +17 -0
  546. package/dist/esm/storage/removeLocalStorage.js.map +1 -0
  547. package/dist/esm/storage/removeSessionStorage.d.ts +8 -0
  548. package/dist/esm/storage/removeSessionStorage.d.ts.map +1 -0
  549. package/dist/esm/storage/removeSessionStorage.js +17 -0
  550. package/dist/esm/storage/removeSessionStorage.js.map +1 -0
  551. package/dist/esm/storage/setLocalStorage.d.ts +11 -0
  552. package/dist/esm/storage/setLocalStorage.d.ts.map +1 -0
  553. package/dist/esm/storage/setLocalStorage.js +24 -0
  554. package/dist/esm/storage/setLocalStorage.js.map +1 -0
  555. package/dist/esm/storage/setSessionStorage.d.ts +11 -0
  556. package/dist/esm/storage/setSessionStorage.d.ts.map +1 -0
  557. package/dist/esm/storage/setSessionStorage.js +24 -0
  558. package/dist/esm/storage/setSessionStorage.js.map +1 -0
  559. package/dist/esm/string/camelCase.d.ts +8 -0
  560. package/dist/esm/string/camelCase.d.ts.map +1 -0
  561. package/dist/esm/string/camelCase.js +13 -0
  562. package/dist/esm/string/camelCase.js.map +1 -0
  563. package/dist/esm/string/capitalize.d.ts +8 -0
  564. package/dist/esm/string/capitalize.d.ts.map +1 -0
  565. package/dist/esm/string/capitalize.js +8 -0
  566. package/dist/esm/string/capitalize.js.map +1 -0
  567. package/dist/esm/string/decodeBase64.d.ts +8 -0
  568. package/dist/esm/string/decodeBase64.d.ts.map +1 -0
  569. package/dist/esm/string/decodeBase64.js +10 -0
  570. package/dist/esm/string/decodeBase64.js.map +1 -0
  571. package/dist/esm/string/encodeBase64.d.ts +8 -0
  572. package/dist/esm/string/encodeBase64.d.ts.map +1 -0
  573. package/dist/esm/string/encodeBase64.js +8 -0
  574. package/dist/esm/string/encodeBase64.js.map +1 -0
  575. package/dist/esm/string/formatBytes.d.ts +9 -0
  576. package/dist/esm/string/formatBytes.d.ts.map +1 -0
  577. package/dist/esm/string/formatBytes.js +19 -0
  578. package/dist/esm/string/formatBytes.js.map +1 -0
  579. package/dist/esm/string/index.d.ts +13 -0
  580. package/dist/esm/string/index.d.ts.map +1 -1
  581. package/dist/esm/string/index.js +13 -0
  582. package/dist/esm/string/index.js.map +1 -1
  583. package/dist/esm/string/interfaces/index.d.ts +2 -0
  584. package/dist/esm/string/interfaces/index.d.ts.map +1 -0
  585. package/dist/esm/string/interfaces/index.js +2 -0
  586. package/dist/esm/string/interfaces/index.js.map +1 -0
  587. package/dist/esm/string/interfaces/mask.d.ts +6 -0
  588. package/dist/esm/string/interfaces/mask.d.ts.map +1 -0
  589. package/dist/esm/string/interfaces/mask.js +2 -0
  590. package/dist/esm/string/interfaces/mask.js.map +1 -0
  591. package/dist/esm/string/kebabCase.d.ts +8 -0
  592. package/dist/esm/string/kebabCase.d.ts.map +1 -0
  593. package/dist/esm/string/kebabCase.js +14 -0
  594. package/dist/esm/string/kebabCase.js.map +1 -0
  595. package/dist/esm/string/mask.d.ts +10 -0
  596. package/dist/esm/string/mask.d.ts.map +1 -0
  597. package/dist/esm/string/mask.js +25 -0
  598. package/dist/esm/string/mask.js.map +1 -0
  599. package/dist/esm/string/pascalCase.d.ts +8 -0
  600. package/dist/esm/string/pascalCase.d.ts.map +1 -0
  601. package/dist/esm/string/pascalCase.js +10 -0
  602. package/dist/esm/string/pascalCase.js.map +1 -0
  603. package/dist/esm/string/randomCryptoString.d.ts +9 -0
  604. package/dist/esm/string/randomCryptoString.d.ts.map +1 -0
  605. package/dist/esm/string/randomCryptoString.js +19 -0
  606. package/dist/esm/string/randomCryptoString.js.map +1 -0
  607. package/dist/esm/string/randomString.d.ts +9 -0
  608. package/dist/esm/string/randomString.d.ts.map +1 -0
  609. package/dist/esm/string/randomString.js +17 -0
  610. package/dist/esm/string/randomString.js.map +1 -0
  611. package/dist/esm/string/slugify.d.ts.map +1 -1
  612. package/dist/esm/string/slugify.js +7 -2
  613. package/dist/esm/string/slugify.js.map +1 -1
  614. package/dist/esm/string/snakeCase.d.ts +8 -0
  615. package/dist/esm/string/snakeCase.d.ts.map +1 -0
  616. package/dist/esm/string/snakeCase.js +14 -0
  617. package/dist/esm/string/snakeCase.js.map +1 -0
  618. package/dist/esm/string/truncate.d.ts.map +1 -1
  619. package/dist/esm/string/truncate.js.map +1 -1
  620. package/dist/esm/string/unescapeHTML.d.ts +8 -0
  621. package/dist/esm/string/unescapeHTML.d.ts.map +1 -0
  622. package/dist/esm/string/unescapeHTML.js +12 -0
  623. package/dist/esm/string/unescapeHTML.js.map +1 -0
  624. package/package.json +15 -5
package/README.md CHANGED
@@ -1 +1,217 @@
1
1
  # tool-shack
2
+
3
+ [![npm version](https://img.shields.io/npm/v/tool-shack.svg)](https://www.npmjs.com/package/tool-shack)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+ [![TypeScript](https://img.shields.io/badge/TypeScript-Ready-blue.svg)](https://www.typescriptlang.org/)
6
+
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
+
9
+ ---
10
+
11
+ ## Features
12
+
13
+ - 🪶 **Zero dependencies** & lightweight
14
+ - 📦 **Dual module support**: ESM (`import`) and CommonJS (`require`)
15
+ - 🏷️ **Full TypeScript support** with built-in type definitions
16
+ - 🌐 **Browser & DOM utilities** to streamline frontend development
17
+ - ⚡ **Tree-shakeable** exports
18
+
19
+ ---
20
+
21
+ ## Installation
22
+
23
+ ```bash
24
+ # npm
25
+ npm install tool-shack
26
+
27
+ # pnpm
28
+ pnpm add tool-shack
29
+
30
+ # yarn
31
+ yarn add tool-shack
32
+ ```
33
+
34
+ ---
35
+
36
+ ## Quick Start
37
+
38
+ ```typescript
39
+ import {
40
+ slugify,
41
+ parseDuration,
42
+ createElement,
43
+ isTouchSupported,
44
+ isValidJson,
45
+ timeAgo,
46
+ formatBytes,
47
+ setLocalStorage,
48
+ getLocalStorage,
49
+ } from 'tool-shack';
50
+
51
+ // String manipulation
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' }
58
+
59
+ // Date & Time
60
+ console.log(parseDuration(3661000));
61
+ // { days: 0, hours: 1, minutes: 1, seconds: 1, milliseconds: 0 }
62
+ console.log(timeAgo(new Date(Date.now() - 5 * 60000))); // '5 minutes ago'
63
+
64
+ // General Validation
65
+ console.log(isValidJson('{"valid": true}')); // true
66
+ ```
67
+
68
+ ---
69
+
70
+ ## Modules & APIs
71
+
72
+ ### 🌐 Browser (`browser`)
73
+
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.
100
+
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 |
111
+
112
+ ---
113
+
114
+ ### 🧱 DOM (`dom`)
115
+
116
+ Simplified element creation, async/outside event handling, clipboard operations, viewport detection, layout-shift-free scroll lock, and fullscreen.
117
+
118
+ | Function | Description |
119
+ | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
120
+ | `createElement(tagName, props)` | Creates a DOM element with attributes, styles, dataset, ARIA, listeners, and children in a single call |
121
+ | `addEventListener(target, type, listener, options)` | Attaches event listener(s) with support for multiple event types and array of targets |
122
+ | `addAsyncEventListener(target, type, listener, options)` | Attaches an asynchronous delegated event listener |
123
+ | `addClickOutsideListener(element, callback)` | Triggers a callback when clicking outside a specified element |
124
+ | `appendBefore(target, element)` | Inserts an element immediately before the target node |
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 |
127
+ | `fireEvent(element, eventName, detail)` | Dispatches a custom or native DOM event |
128
+ | `getElementOffset(element)` | Computes top, left, width, and height offsets relative to viewport/document |
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` |
133
+
134
+ ---
135
+
136
+ ### 🔤 String (`string`)
137
+
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 |
159
+
160
+ ---
161
+
162
+ ### ⏱️ Date & Time (`dateTime`)
163
+
164
+ Date formatting, duration parsing, relative time, and calendar day comparison.
165
+
166
+ | Function | Description |
167
+ | ----------------------------- | ------------------------------------------------------------------------------- |
168
+ | `parseDuration(durationInMs)` | Breaks down milliseconds into `{ days, hours, minutes, seconds, milliseconds }` |
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 |
172
+
173
+ ---
174
+
175
+ ### ⚙️ General (`general`)
176
+
177
+ Array deduplication, picking, grouping & chunking, deep equality, number clamping, value safety checks, and JSON validation.
178
+
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 |
190
+
191
+ ---
192
+
193
+ ### ⏳ Schedule (`schedule`)
194
+
195
+ Debouncing, throttling, async retry, sleep, and animation frames.
196
+
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 |
205
+
206
+ ---
207
+
208
+ ## Documentation
209
+
210
+ Full API documentation and type definitions are available at:
211
+ 👉 **[https://storage.davidmyska.com/tool-shack/](https://storage.davidmyska.com/tool-shack/)**
212
+
213
+ ---
214
+
215
+ ## License
216
+
217
+ [MIT](https://opensource.org/licenses/MIT) © [David Myška](https://www.davidmyska.com/)
@@ -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":""}
@@ -1 +1 @@
1
- {"version":3,"file":"isTouchSupported.d.ts","sourceRoot":"","sources":["../../../src/browser/isTouchSupported.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAAO,OAGyC,CAAC"}
1
+ {"version":3,"file":"isTouchSupported.d.ts","sourceRoot":"","sources":["../../../src/browser/isTouchSupported.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAAO,OAKjC,CAAC"}
@@ -6,8 +6,8 @@ exports.isTouchSupported = void 0;
6
6
  *
7
7
  * @returns Boolean indicating if user's browser supports touch events
8
8
  */
9
- const isTouchSupported = () => 'ontouchstart' in window ||
9
+ const isTouchSupported = () => !!('ontouchstart' in window ||
10
10
  (window.DocumentTouch &&
11
- document instanceof window.DocumentTouch);
11
+ document instanceof window.DocumentTouch));
12
12
  exports.isTouchSupported = isTouchSupported;
13
13
  //# sourceMappingURL=isTouchSupported.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isTouchSupported.js","sourceRoot":"","sources":["../../../src/browser/isTouchSupported.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACI,MAAM,gBAAgB,GAAG,GAAY,EAAE,CAC5C,cAAc,IAAI,MAAM;IACxB,CAAE,MAAqC,CAAC,aAAa;QACnD,QAAQ,YAAa,MAAqC,CAAC,aAAa,CAAC,CAAC;AAHjE,QAAA,gBAAgB,oBAGiD"}
1
+ {"version":3,"file":"isTouchSupported.js","sourceRoot":"","sources":["../../../src/browser/isTouchSupported.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACI,MAAM,gBAAgB,GAAG,GAAY,EAAE,CAC5C,CAAC,CAAC,CACA,cAAc,IAAI,MAAM;IACxB,CAAE,MAAqC,CAAC,aAAa;QACnD,QAAQ,YAAa,MAAqC,CAAC,aAAa,CAAC,CAC5E,CAAC;AALS,QAAA,gBAAgB,oBAKzB"}
@@ -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"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.networkStatusListener = void 0;
4
+ /**
5
+ * Set callbacks for when browser goes online or offline
6
+ *
7
+ * @param onOnline Callback when connection is restored
8
+ * @param onOffline Callback when connection is lost
9
+ * @returns Cleanup function to remove event listeners
10
+ */
11
+ const networkStatusListener = (onOnline, onOffline) => {
12
+ const handleOnline = () => onOnline?.();
13
+ const handleOffline = () => onOffline?.();
14
+ window.addEventListener('online', handleOnline);
15
+ window.addEventListener('offline', handleOffline);
16
+ return () => {
17
+ window.removeEventListener('online', handleOnline);
18
+ window.removeEventListener('offline', handleOffline);
19
+ };
20
+ };
21
+ exports.networkStatusListener = networkStatusListener;
22
+ //# sourceMappingURL=networkStatusListener.js.map