tiny-essentials 1.28.18 → 1.29.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 (567) hide show
  1. package/README.md +1 -1
  2. package/changelog/1/28/19.md +24 -0
  3. package/changelog/1/29/0.md +58 -0
  4. package/dist/v1/ColorSafeStringify.min.js +1 -1
  5. package/dist/v1/TinyAdvancedRaffle.min.js +1 -1
  6. package/dist/v1/TinyAfterScrollWatcher.min.js +1 -1
  7. package/dist/v1/TinyAnalogClock.min.js +1 -1
  8. package/dist/v1/TinyArrayComparator.min.js +1 -1
  9. package/dist/v1/TinyArrayPaginator.min.js +1 -1
  10. package/dist/v1/TinyBasicsEs.min.js +1 -1
  11. package/dist/v1/TinyBrowserMonitor.min.js +1 -0
  12. package/dist/v1/TinyClassManager.min.js +1 -1
  13. package/dist/v1/TinyClipboard.min.js +1 -1
  14. package/dist/v1/TinyCloner.min.js +1 -0
  15. package/dist/v1/TinyColorConverter.min.js +1 -1
  16. package/dist/v1/TinyColorValidator.min.js +1 -1
  17. package/dist/v1/TinyCookieConsent.min.js +1 -1
  18. package/dist/v1/TinyDayNightCycle.min.js +1 -1
  19. package/dist/v1/TinyDebugger.min.js +1 -1
  20. package/dist/v1/TinyDomReadyManager.min.js +1 -1
  21. package/dist/v1/TinyDragDropDetector.min.js +1 -1
  22. package/dist/v1/TinyDragger.min.js +1 -1
  23. package/dist/v1/TinyElementObserver.min.js +1 -1
  24. package/dist/v1/TinyEssentials.min.js +1 -1
  25. package/dist/v1/TinyGamepad.min.js +1 -1
  26. package/dist/v1/TinyHtml.min.js +1 -1
  27. package/dist/v1/TinyHtmlTagRegexBuilder.min.js +1 -0
  28. package/dist/v1/TinyHttpResponseRegistry.min.js +1 -0
  29. package/dist/v1/TinyI18.min.js +1 -1
  30. package/dist/v1/TinyIframeEvents.min.js +1 -1
  31. package/dist/v1/TinyInventory.min.js +1 -1
  32. package/dist/v1/TinyInventoryTrader.min.js +1 -1
  33. package/dist/v1/TinyLevelUp.min.js +1 -1
  34. package/dist/v1/TinyLoadingScreen.min.js +1 -1
  35. package/dist/v1/TinyLocalStorage.min.js +1 -1
  36. package/dist/v1/TinyMaInSys.min.js +1 -1
  37. package/dist/v1/TinyMapCache.min.js +1 -0
  38. package/dist/v1/TinyMediaPlayer.min.js +1 -1
  39. package/dist/v1/TinyNeedBar.min.js +1 -1
  40. package/dist/v1/TinyNewWinEvents.min.js +1 -1
  41. package/dist/v1/TinyNotificationAdapter.min.js +1 -0
  42. package/dist/v1/TinyNotifications.min.js +1 -1
  43. package/dist/v1/TinyNotifyCenter.min.js +1 -1
  44. package/dist/v1/TinyOPFSFileSystem.min.js +1 -0
  45. package/dist/v1/TinyPasswordValidator.min.js +1 -0
  46. package/dist/v1/TinyPluginPackage.min.js +1 -0
  47. package/dist/v1/TinyPromiseQueue.min.js +1 -1
  48. package/dist/v1/TinyPushManager.min.js +1 -0
  49. package/dist/v1/TinyPushPayload.min.js +1 -0
  50. package/dist/v1/TinyPushRouter.min.js +1 -0
  51. package/dist/v1/TinyRadioFm.min.js +1 -1
  52. package/dist/v1/TinyRateLimiter.min.js +1 -1
  53. package/dist/v1/TinyRegexEs.min.js +1 -0
  54. package/dist/v1/TinyRouter.min.js +1 -0
  55. package/dist/v1/TinyServiceWorker.min.js +1 -0
  56. package/dist/v1/TinyServiceWorkerEngine.min.js +1 -0
  57. package/dist/v1/TinySetMapPackage.min.js +1 -0
  58. package/dist/v1/TinySimpleDice.min.js +1 -1
  59. package/dist/v1/TinySmartScroller.min.js +1 -1
  60. package/dist/v1/TinyStorageBucketFileSystem.min.js +1 -0
  61. package/dist/v1/TinyTextDiffer.min.js +1 -1
  62. package/dist/v1/TinyTextRangeEditor.min.js +1 -1
  63. package/dist/v1/TinyTextarea.min.js +1 -1
  64. package/dist/v1/TinyThrottledApi.min.js +1 -0
  65. package/dist/v1/TinyTimeout.min.js +1 -1
  66. package/dist/v1/TinyToastNotify.min.js +1 -1
  67. package/dist/v1/TinyUploadClicker.min.js +1 -1
  68. package/dist/v1/TinyUriParser.min.js +1 -0
  69. package/dist/v1/TinyVersion.min.js +1 -0
  70. package/dist/v1/TinyWebWorker.min.js +1 -0
  71. package/dist/v1/TinyWebWorkerEngine.min.js +1 -0
  72. package/dist/v1/UltraRandomMsgGen.min.js +1 -1
  73. package/dist/v1/basics/array.cjs +2 -2
  74. package/dist/v1/basics/array.d.mts +2 -0
  75. package/dist/v1/basics/array.d.mts.map +1 -1
  76. package/dist/v1/basics/array.mjs +2 -1
  77. package/dist/v1/basics/browserDetector.cjs +37 -12
  78. package/dist/v1/basics/browserDetector.d.mts +8 -0
  79. package/dist/v1/basics/browserDetector.d.mts.map +1 -1
  80. package/dist/v1/basics/browserDetector.mjs +32 -13
  81. package/dist/v1/basics/crypto.cjs +23 -0
  82. package/dist/v1/basics/crypto.d.mts +10 -0
  83. package/dist/v1/basics/crypto.d.mts.map +1 -0
  84. package/dist/v1/basics/crypto.mjs +18 -0
  85. package/dist/v1/basics/html.cjs +0 -3
  86. package/dist/v1/basics/html.d.mts.map +1 -1
  87. package/dist/v1/basics/html.mjs +0 -2
  88. package/dist/v1/basics/index.cjs +8 -1
  89. package/dist/v1/basics/index.d.mts +6 -5
  90. package/dist/v1/basics/index.d.mts.map +1 -1
  91. package/dist/v1/basics/index.mjs +6 -5
  92. package/dist/v1/basics/objChecker.cjs +88 -0
  93. package/dist/v1/basics/objChecker.d.mts +26 -0
  94. package/dist/v1/basics/objChecker.d.mts.map +1 -1
  95. package/dist/v1/basics/objChecker.mjs +74 -0
  96. package/dist/v1/basics/objFilter.cjs +234 -93
  97. package/dist/v1/basics/objFilter.d.mts +96 -22
  98. package/dist/v1/basics/objFilter.d.mts.map +1 -1
  99. package/dist/v1/basics/objFilter.mjs +216 -92
  100. package/dist/v1/basics/promiseUtils.cjs +48 -12
  101. package/dist/v1/basics/promiseUtils.d.mts +45 -12
  102. package/dist/v1/basics/promiseUtils.d.mts.map +1 -1
  103. package/dist/v1/basics/promiseUtils.mjs +47 -12
  104. package/dist/v1/basics/text.cjs +0 -12
  105. package/dist/v1/basics/text.d.mts +0 -10
  106. package/dist/v1/basics/text.d.mts.map +1 -1
  107. package/dist/v1/basics/text.mjs +0 -10
  108. package/dist/v1/css/TinyCookieConsent.min.css +1 -0
  109. package/dist/v1/css/TinyCookieConsent.min.css.map +1 -0
  110. package/dist/v1/css/TinyDraggerExample.min.css +1 -0
  111. package/dist/v1/css/TinyDraggerExample.min.css.map +1 -0
  112. package/dist/v1/css/TinyLoadingScreen.min.css +1 -0
  113. package/dist/v1/css/TinyLoadingScreen.min.css.map +1 -0
  114. package/dist/v1/css/TinyNotify.min.css +1 -0
  115. package/dist/v1/css/TinyNotify.min.css.map +1 -0
  116. package/dist/v1/css/aiMarker.min.css +1 -0
  117. package/dist/v1/css/aiMarker.min.css.map +1 -0
  118. package/dist/v1/index.cjs +88 -3
  119. package/dist/v1/index.d.mts +31 -6
  120. package/dist/v1/index.d.mts.map +1 -1
  121. package/dist/v1/index.mjs +32 -7
  122. package/dist/v1/jsdoc/EventEmitter.cjs +4 -0
  123. package/dist/v1/jsdoc/EventEmitter.d.mts +33 -0
  124. package/dist/v1/jsdoc/EventEmitter.d.mts.map +1 -0
  125. package/dist/v1/jsdoc/EventEmitter.mjs +18 -0
  126. package/dist/v1/libs/array/TinyArrayComparator.cjs +240 -25
  127. package/dist/v1/libs/array/TinyArrayComparator.d.mts +130 -22
  128. package/dist/v1/libs/array/TinyArrayComparator.d.mts.map +1 -1
  129. package/dist/v1/libs/array/TinyArrayComparator.mjs +210 -24
  130. package/dist/v1/libs/fs/constants.cjs +74 -0
  131. package/dist/v1/libs/fs/constants.d.mts +22 -0
  132. package/dist/v1/libs/fs/constants.d.mts.map +1 -0
  133. package/dist/v1/libs/fs/constants.mjs +53 -0
  134. package/dist/v1/libs/fs/encoding.cjs +118 -0
  135. package/dist/v1/libs/fs/encoding.d.mts +50 -0
  136. package/dist/v1/libs/fs/encoding.d.mts.map +1 -0
  137. package/dist/v1/libs/fs/encoding.mjs +102 -0
  138. package/dist/v1/libs/fs/error.cjs +188 -0
  139. package/dist/v1/libs/fs/error.d.mts +105 -0
  140. package/dist/v1/libs/fs/error.d.mts.map +1 -0
  141. package/dist/v1/libs/fs/error.mjs +158 -0
  142. package/dist/v1/libs/fs/handle.cjs +121 -0
  143. package/dist/v1/libs/fs/handle.d.mts +56 -0
  144. package/dist/v1/libs/fs/handle.d.mts.map +1 -0
  145. package/dist/v1/libs/fs/handle.mjs +100 -0
  146. package/dist/v1/libs/fs/index.cjs +700 -0
  147. package/dist/v1/libs/fs/index.d.mts +377 -0
  148. package/dist/v1/libs/fs/index.d.mts.map +1 -0
  149. package/dist/v1/libs/fs/index.mjs +630 -0
  150. package/dist/v1/libs/fs/path.cjs +234 -0
  151. package/dist/v1/libs/fs/path.d.mts +176 -0
  152. package/dist/v1/libs/fs/path.d.mts.map +1 -0
  153. package/dist/v1/libs/fs/path.mjs +197 -0
  154. package/dist/v1/libs/fs/plugins/OPFS/StorageBucket.cjs +202 -0
  155. package/dist/v1/libs/fs/plugins/OPFS/StorageBucket.d.mts +121 -0
  156. package/dist/v1/libs/fs/plugins/OPFS/StorageBucket.d.mts.map +1 -0
  157. package/dist/v1/libs/fs/plugins/OPFS/StorageBucket.mjs +172 -0
  158. package/dist/v1/libs/fs/plugins/OPFS/index.cjs +334 -0
  159. package/dist/v1/libs/fs/plugins/OPFS/index.d.mts +98 -0
  160. package/dist/v1/libs/fs/plugins/OPFS/index.d.mts.map +1 -0
  161. package/dist/v1/libs/fs/plugins/OPFS/index.mjs +300 -0
  162. package/dist/v1/libs/fs/stats.cjs +245 -0
  163. package/dist/v1/libs/fs/stats.d.mts +226 -0
  164. package/dist/v1/libs/fs/stats.d.mts.map +1 -0
  165. package/dist/v1/libs/fs/stats.mjs +197 -0
  166. package/dist/v1/libs/html/events/TinyIframeEvents.cjs +10 -1
  167. package/dist/v1/libs/html/events/TinyIframeEvents.d.mts +9 -2
  168. package/dist/v1/libs/html/events/TinyIframeEvents.d.mts.map +1 -1
  169. package/dist/v1/libs/html/events/TinyIframeEvents.mjs +8 -1
  170. package/dist/v1/libs/html/events/TinyNewWinEvents.cjs +14 -3
  171. package/dist/v1/libs/html/events/TinyNewWinEvents.d.mts +21 -5
  172. package/dist/v1/libs/html/events/TinyNewWinEvents.d.mts.map +1 -1
  173. package/dist/v1/libs/html/events/TinyNewWinEvents.mjs +12 -3
  174. package/dist/v1/libs/html/scroll/TinySmartScroller.cjs +13 -1
  175. package/dist/v1/libs/html/scroll/TinySmartScroller.d.mts +29 -2
  176. package/dist/v1/libs/html/scroll/TinySmartScroller.d.mts.map +1 -1
  177. package/dist/v1/libs/html/scroll/TinySmartScroller.mjs +11 -1
  178. package/dist/v1/libs/math/TinyAdvancedRaffle.cjs +13 -1
  179. package/dist/v1/libs/math/TinyAdvancedRaffle.d.mts +32 -2
  180. package/dist/v1/libs/math/TinyAdvancedRaffle.d.mts.map +1 -1
  181. package/dist/v1/libs/math/TinyAdvancedRaffle.mjs +11 -1
  182. package/dist/v1/libs/math/TinyTimeout.cjs +0 -14
  183. package/dist/v1/libs/math/TinyTimeout.d.mts +0 -11
  184. package/dist/v1/libs/math/TinyTimeout.d.mts.map +1 -1
  185. package/dist/v1/libs/math/TinyTimeout.mjs +0 -13
  186. package/dist/v1/libs/media/TinyMediaPlayer/index.cjs +25 -1
  187. package/dist/v1/libs/media/TinyMediaPlayer/index.d.mts +35 -2
  188. package/dist/v1/libs/media/TinyMediaPlayer/index.d.mts.map +1 -1
  189. package/dist/v1/libs/media/TinyMediaPlayer/index.mjs +23 -1
  190. package/dist/v1/libs/media/TinyMediaPlayer.cjs +2 -2
  191. package/dist/v1/libs/media/TinyMediaPlayer.d.mts +2 -2
  192. package/dist/v1/libs/media/TinyMediaPlayer.d.mts.map +1 -1
  193. package/dist/v1/libs/media/TinyMediaPlayer.mjs +2 -2
  194. package/dist/v1/libs/media/TinyRadioFm.cjs +19 -1
  195. package/dist/v1/libs/media/TinyRadioFm.d.mts +78 -2
  196. package/dist/v1/libs/media/TinyRadioFm.d.mts.map +1 -1
  197. package/dist/v1/libs/media/TinyRadioFm.mjs +17 -1
  198. package/dist/v1/libs/plugin/TinyPlugin.cjs +1630 -0
  199. package/dist/v1/libs/plugin/TinyPlugin.d.mts +753 -0
  200. package/dist/v1/libs/plugin/TinyPlugin.d.mts.map +1 -0
  201. package/dist/v1/libs/plugin/TinyPlugin.mjs +1376 -0
  202. package/dist/v1/libs/plugin/TinyVersion.cjs +204 -0
  203. package/dist/v1/libs/plugin/TinyVersion.d.mts +70 -0
  204. package/dist/v1/libs/plugin/TinyVersion.d.mts.map +1 -0
  205. package/dist/v1/libs/plugin/TinyVersion.mjs +179 -0
  206. package/dist/v1/libs/router/TinyRouter.cjs +661 -0
  207. package/dist/v1/libs/router/TinyRouter.d.mts +320 -0
  208. package/dist/v1/libs/router/TinyRouter.d.mts.map +1 -0
  209. package/dist/v1/libs/router/TinyRouter.mjs +572 -0
  210. package/dist/v1/libs/storage/TinyLocalStorage.cjs +20 -1
  211. package/dist/v1/libs/storage/TinyLocalStorage.d.mts +64 -2
  212. package/dist/v1/libs/storage/TinyLocalStorage.d.mts.map +1 -1
  213. package/dist/v1/libs/storage/TinyLocalStorage.mjs +18 -1
  214. package/dist/v1/libs/storage/TinyMapCache.cjs +373 -0
  215. package/dist/v1/libs/storage/TinyMapCache.d.mts +274 -0
  216. package/dist/v1/libs/storage/TinyMapCache.d.mts.map +1 -0
  217. package/dist/v1/libs/storage/TinyMapCache.mjs +333 -0
  218. package/dist/v1/libs/storage/TinySetMapDatabase.cjs +1167 -0
  219. package/dist/v1/libs/storage/TinySetMapDatabase.d.mts +603 -0
  220. package/dist/v1/libs/storage/TinySetMapDatabase.d.mts.map +1 -0
  221. package/dist/v1/libs/storage/TinySetMapDatabase.mjs +1059 -0
  222. package/dist/v1/libs/sw/browser/TinyNotificationAdapter.cjs +126 -0
  223. package/dist/v1/libs/sw/browser/TinyNotificationAdapter.d.mts +132 -0
  224. package/dist/v1/libs/sw/browser/TinyNotificationAdapter.d.mts.map +1 -0
  225. package/dist/v1/libs/sw/browser/TinyNotificationAdapter.mjs +109 -0
  226. package/dist/v1/libs/sw/browser/TinyPushManager.cjs +310 -0
  227. package/dist/v1/libs/sw/browser/TinyPushManager.d.mts +168 -0
  228. package/dist/v1/libs/sw/browser/TinyPushManager.d.mts.map +1 -0
  229. package/dist/v1/libs/sw/browser/TinyPushManager.mjs +264 -0
  230. package/dist/v1/libs/sw/browser/TinyServiceWorker.cjs +1060 -0
  231. package/dist/v1/libs/sw/browser/TinyServiceWorker.d.mts +348 -0
  232. package/dist/v1/libs/sw/browser/TinyServiceWorker.d.mts.map +1 -0
  233. package/dist/v1/libs/sw/browser/TinyServiceWorker.mjs +933 -0
  234. package/dist/v1/libs/sw/browser/plugins/TabManager.cjs +315 -0
  235. package/dist/v1/libs/sw/browser/plugins/TabManager.d.mts +178 -0
  236. package/dist/v1/libs/sw/browser/plugins/TabManager.d.mts.map +1 -0
  237. package/dist/v1/libs/sw/browser/plugins/TabManager.mjs +274 -0
  238. package/dist/v1/libs/sw/browser/utils.cjs +28 -0
  239. package/dist/v1/libs/sw/browser/utils.d.mts +8 -0
  240. package/dist/v1/libs/sw/browser/utils.d.mts.map +1 -0
  241. package/dist/v1/libs/sw/browser/utils.mjs +21 -0
  242. package/dist/v1/libs/sw/service/TinyPushRouter.cjs +222 -0
  243. package/dist/v1/libs/sw/service/TinyPushRouter.d.mts +138 -0
  244. package/dist/v1/libs/sw/service/TinyPushRouter.d.mts.map +1 -0
  245. package/dist/v1/libs/sw/service/TinyPushRouter.mjs +201 -0
  246. package/dist/v1/libs/sw/service/TinyServiceWorkerEngine.cjs +3016 -0
  247. package/dist/v1/libs/sw/service/TinyServiceWorkerEngine.d.mts +993 -0
  248. package/dist/v1/libs/sw/service/TinyServiceWorkerEngine.d.mts.map +1 -0
  249. package/dist/v1/libs/sw/service/TinyServiceWorkerEngine.mjs +2558 -0
  250. package/dist/v1/libs/sw/service/plugins/GlobBypassPlugin.cjs +88 -0
  251. package/dist/v1/libs/sw/service/plugins/GlobBypassPlugin.d.mts +32 -0
  252. package/dist/v1/libs/sw/service/plugins/GlobBypassPlugin.d.mts.map +1 -0
  253. package/dist/v1/libs/sw/service/plugins/GlobBypassPlugin.mjs +69 -0
  254. package/dist/v1/libs/sw/service/plugins/GlobCachePlugin.cjs +112 -0
  255. package/dist/v1/libs/sw/service/plugins/GlobCachePlugin.d.mts +31 -0
  256. package/dist/v1/libs/sw/service/plugins/GlobCachePlugin.d.mts.map +1 -0
  257. package/dist/v1/libs/sw/service/plugins/GlobCachePlugin.mjs +91 -0
  258. package/dist/v1/libs/sw/service/plugins/Ping.cjs +32 -0
  259. package/dist/v1/libs/sw/service/plugins/Ping.d.mts +9 -0
  260. package/dist/v1/libs/sw/service/plugins/Ping.d.mts.map +1 -0
  261. package/dist/v1/libs/sw/service/plugins/Ping.mjs +25 -0
  262. package/dist/v1/libs/sw/service/plugins/TabManager.cjs +457 -0
  263. package/dist/v1/libs/sw/service/plugins/TabManager.d.mts +91 -0
  264. package/dist/v1/libs/sw/service/plugins/TabManager.d.mts.map +1 -0
  265. package/dist/v1/libs/sw/service/plugins/TabManager.mjs +372 -0
  266. package/dist/v1/libs/sw/service/plugins/ViteFileDetector.cjs +180 -0
  267. package/dist/v1/libs/sw/service/plugins/ViteFileDetector.d.mts +28 -0
  268. package/dist/v1/libs/sw/service/plugins/ViteFileDetector.d.mts.map +1 -0
  269. package/dist/v1/libs/sw/service/plugins/ViteFileDetector.mjs +148 -0
  270. package/dist/v1/libs/sw/service/shared/TinyPushPayload.cjs +199 -0
  271. package/dist/v1/libs/sw/service/shared/TinyPushPayload.d.mts +80 -0
  272. package/dist/v1/libs/sw/service/shared/TinyPushPayload.d.mts.map +1 -0
  273. package/dist/v1/libs/sw/service/shared/TinyPushPayload.mjs +174 -0
  274. package/dist/v1/libs/sw/utils.cjs +57 -0
  275. package/dist/v1/libs/sw/utils.d.mts +173 -0
  276. package/dist/v1/libs/sw/utils.d.mts.map +1 -0
  277. package/dist/v1/libs/sw/utils.mjs +50 -0
  278. package/dist/v1/libs/text/TinyI18/Browser-NON-DOM.cjs +57 -0
  279. package/dist/v1/libs/text/TinyI18/Browser-NON-DOM.d.mts +39 -0
  280. package/dist/v1/libs/text/TinyI18/Browser-NON-DOM.d.mts.map +1 -0
  281. package/dist/v1/libs/text/TinyI18/Browser-NON-DOM.mjs +48 -0
  282. package/dist/v1/libs/text/TinyI18/Browser.cjs +64 -0
  283. package/dist/v1/libs/text/TinyI18/Browser.d.mts +47 -0
  284. package/dist/v1/libs/text/TinyI18/Browser.d.mts.map +1 -0
  285. package/dist/v1/libs/text/TinyI18/Browser.mjs +57 -0
  286. package/dist/v1/libs/text/TinyI18/Node.cjs +49 -0
  287. package/dist/v1/libs/text/TinyI18/Node.d.mts +38 -0
  288. package/dist/v1/libs/text/TinyI18/Node.d.mts.map +1 -0
  289. package/dist/v1/libs/text/TinyI18/Node.mjs +43 -0
  290. package/dist/v1/libs/text/TinyI18/browser-utils.cjs +17 -0
  291. package/dist/v1/libs/text/TinyI18/browser-utils.d.mts +8 -0
  292. package/dist/v1/libs/text/TinyI18/browser-utils.d.mts.map +1 -0
  293. package/dist/v1/libs/text/TinyI18/browser-utils.mjs +13 -0
  294. package/dist/v1/libs/text/{TinyI18.cjs → TinyI18/index.cjs} +205 -104
  295. package/dist/v1/libs/text/{TinyI18.d.mts → TinyI18/index.d.mts} +141 -92
  296. package/dist/v1/libs/text/TinyI18/index.d.mts.map +1 -0
  297. package/dist/v1/libs/text/{TinyI18.mjs → TinyI18/index.mjs} +195 -101
  298. package/dist/v1/libs/tools/TinyBrowserMonitor.cjs +1088 -0
  299. package/dist/v1/libs/tools/TinyBrowserMonitor.d.mts +621 -0
  300. package/dist/v1/libs/tools/TinyBrowserMonitor.d.mts.map +1 -0
  301. package/dist/v1/libs/tools/TinyBrowserMonitor.mjs +940 -0
  302. package/dist/v1/libs/tools/TinyDebugger.cjs +180 -19
  303. package/dist/v1/libs/tools/TinyDebugger.d.mts +220 -24
  304. package/dist/v1/libs/tools/TinyDebugger.d.mts.map +1 -1
  305. package/dist/v1/libs/tools/TinyDebugger.mjs +161 -19
  306. package/dist/v1/libs/tools/TinyHtmlTagRegexBuilder.cjs +256 -0
  307. package/dist/v1/libs/tools/TinyHtmlTagRegexBuilder.d.mts +125 -0
  308. package/dist/v1/libs/tools/TinyHtmlTagRegexBuilder.d.mts.map +1 -0
  309. package/dist/v1/libs/tools/TinyHtmlTagRegexBuilder.mjs +223 -0
  310. package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser-NON-DOM.cjs +23 -0
  311. package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser-NON-DOM.d.mts +17 -0
  312. package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser-NON-DOM.d.mts.map +1 -0
  313. package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser-NON-DOM.mjs +19 -0
  314. package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser.cjs +23 -0
  315. package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser.d.mts +17 -0
  316. package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser.d.mts.map +1 -0
  317. package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser.mjs +19 -0
  318. package/dist/v1/libs/tools/TinyHttpResponseRegistry/EmptyRequestCodes.cjs +390 -0
  319. package/dist/v1/libs/tools/TinyHttpResponseRegistry/EmptyRequestCodes.d.mts +9 -0
  320. package/dist/v1/libs/tools/TinyHttpResponseRegistry/EmptyRequestCodes.d.mts.map +1 -0
  321. package/dist/v1/libs/tools/TinyHttpResponseRegistry/EmptyRequestCodes.mjs +387 -0
  322. package/dist/v1/libs/tools/TinyHttpResponseRegistry/JsDoc.cjs +2 -0
  323. package/dist/v1/libs/tools/TinyHttpResponseRegistry/JsDoc.d.mts +27 -0
  324. package/dist/v1/libs/tools/TinyHttpResponseRegistry/JsDoc.d.mts.map +1 -0
  325. package/dist/v1/libs/tools/TinyHttpResponseRegistry/JsDoc.mjs +12 -0
  326. package/dist/v1/libs/tools/TinyHttpResponseRegistry/MozillaRequestCodes/LICENSE +53 -0
  327. package/dist/v1/libs/tools/TinyHttpResponseRegistry/MozillaRequestCodes/index.cjs +405 -0
  328. package/dist/v1/libs/tools/TinyHttpResponseRegistry/MozillaRequestCodes/index.d.mts +34 -0
  329. package/dist/v1/libs/tools/TinyHttpResponseRegistry/MozillaRequestCodes/index.d.mts.map +1 -0
  330. package/dist/v1/libs/tools/TinyHttpResponseRegistry/MozillaRequestCodes/index.mjs +342 -0
  331. package/dist/v1/libs/tools/TinyHttpResponseRegistry/Node.cjs +23 -0
  332. package/dist/v1/libs/tools/TinyHttpResponseRegistry/Node.d.mts +17 -0
  333. package/dist/v1/libs/tools/TinyHttpResponseRegistry/Node.d.mts.map +1 -0
  334. package/dist/v1/libs/tools/TinyHttpResponseRegistry/Node.mjs +19 -0
  335. package/dist/v1/libs/tools/TinyHttpResponseRegistry/RequestCodes.cjs +327 -0
  336. package/dist/v1/libs/tools/TinyHttpResponseRegistry/RequestCodes.d.mts +9 -0
  337. package/dist/v1/libs/tools/TinyHttpResponseRegistry/RequestCodes.d.mts.map +1 -0
  338. package/dist/v1/libs/tools/TinyHttpResponseRegistry/RequestCodes.mjs +324 -0
  339. package/dist/v1/libs/tools/TinyHttpResponseRegistry/index.cjs +268 -0
  340. package/dist/v1/libs/tools/TinyHttpResponseRegistry/index.d.mts +107 -0
  341. package/dist/v1/libs/tools/TinyHttpResponseRegistry/index.d.mts.map +1 -0
  342. package/dist/v1/libs/tools/TinyHttpResponseRegistry/index.mjs +238 -0
  343. package/dist/v1/libs/tools/TinyPasswordValidator.cjs +491 -0
  344. package/dist/v1/libs/tools/TinyPasswordValidator.d.mts +246 -0
  345. package/dist/v1/libs/tools/TinyPasswordValidator.d.mts.map +1 -0
  346. package/dist/v1/libs/tools/TinyPasswordValidator.mjs +434 -0
  347. package/dist/v1/libs/tools/TinyPkgExportValidator.cjs +48 -0
  348. package/dist/v1/libs/tools/TinyPkgExportValidator.d.mts +14 -0
  349. package/dist/v1/libs/tools/TinyPkgExportValidator.d.mts.map +1 -1
  350. package/dist/v1/libs/tools/TinyPkgExportValidator.mjs +44 -0
  351. package/dist/v1/libs/tools/TinySiteMap.cjs +1029 -0
  352. package/dist/v1/libs/tools/TinySiteMap.d.mts +429 -0
  353. package/dist/v1/libs/tools/TinySiteMap.d.mts.map +1 -0
  354. package/dist/v1/libs/tools/TinySiteMap.mjs +910 -0
  355. package/dist/v1/libs/tools/TinySiteMapStream.cjs +121 -0
  356. package/dist/v1/libs/tools/TinySiteMapStream.d.mts +51 -0
  357. package/dist/v1/libs/tools/TinySiteMapStream.d.mts.map +1 -0
  358. package/dist/v1/libs/tools/TinySiteMapStream.mjs +85 -0
  359. package/dist/v1/libs/tools/TinyURLSecurityVerifier.cjs +444 -0
  360. package/dist/v1/libs/tools/TinyURLSecurityVerifier.d.mts +217 -0
  361. package/dist/v1/libs/tools/TinyURLSecurityVerifier.d.mts.map +1 -0
  362. package/dist/v1/libs/tools/TinyURLSecurityVerifier.mjs +394 -0
  363. package/dist/v1/libs/tools/TinyUriParser/BlueSky.cjs +613 -0
  364. package/dist/v1/libs/tools/TinyUriParser/BlueSky.d.mts +152 -0
  365. package/dist/v1/libs/tools/TinyUriParser/BlueSky.d.mts.map +1 -0
  366. package/dist/v1/libs/tools/TinyUriParser/BlueSky.mjs +527 -0
  367. package/dist/v1/libs/tools/TinyUriParser/Discord.cjs +1119 -0
  368. package/dist/v1/libs/tools/TinyUriParser/Discord.d.mts +306 -0
  369. package/dist/v1/libs/tools/TinyUriParser/Discord.d.mts.map +1 -0
  370. package/dist/v1/libs/tools/TinyUriParser/Discord.mjs +968 -0
  371. package/dist/v1/libs/tools/TinyUriParser/MatrixProtocol.cjs +469 -0
  372. package/dist/v1/libs/tools/TinyUriParser/MatrixProtocol.d.mts +80 -0
  373. package/dist/v1/libs/tools/TinyUriParser/MatrixProtocol.d.mts.map +1 -0
  374. package/dist/v1/libs/tools/TinyUriParser/MatrixProtocol.mjs +379 -0
  375. package/dist/v1/libs/tools/TinyUriParser.cjs +217 -0
  376. package/dist/v1/libs/tools/TinyUriParser.d.mts +109 -0
  377. package/dist/v1/libs/tools/TinyUriParser.d.mts.map +1 -0
  378. package/dist/v1/libs/tools/TinyUriParser.mjs +183 -0
  379. package/dist/v1/libs/utils/TinyCloner.cjs +466 -0
  380. package/dist/v1/libs/utils/TinyCloner.d.mts +221 -0
  381. package/dist/v1/libs/utils/TinyCloner.d.mts.map +1 -0
  382. package/dist/v1/libs/utils/TinyCloner.mjs +416 -0
  383. package/dist/v1/libs/utils/TinyPromiseQueue.cjs +1 -1
  384. package/dist/v1/libs/utils/TinyPromiseQueue.d.mts +2 -2
  385. package/dist/v1/libs/utils/TinyPromiseQueue.d.mts.map +1 -1
  386. package/dist/v1/libs/utils/TinyPromiseQueue.mjs +1 -1
  387. package/dist/v1/libs/utils/TinyThrottledApi.cjs +333 -0
  388. package/dist/v1/libs/utils/TinyThrottledApi.d.mts +163 -0
  389. package/dist/v1/libs/utils/TinyThrottledApi.d.mts.map +1 -0
  390. package/dist/v1/libs/utils/TinyThrottledApi.mjs +294 -0
  391. package/dist/v1/libs/worker/browser/TinyWebWorker.cjs +342 -0
  392. package/dist/v1/libs/worker/browser/TinyWebWorker.d.mts +97 -0
  393. package/dist/v1/libs/worker/browser/TinyWebWorker.d.mts.map +1 -0
  394. package/dist/v1/libs/worker/browser/TinyWebWorker.mjs +305 -0
  395. package/dist/v1/libs/worker/engine/TinyWebWorkerEngine.cjs +346 -0
  396. package/dist/v1/libs/worker/engine/TinyWebWorkerEngine.d.mts +127 -0
  397. package/dist/v1/libs/worker/engine/TinyWebWorkerEngine.d.mts.map +1 -0
  398. package/dist/v1/libs/worker/engine/TinyWebWorkerEngine.mjs +304 -0
  399. package/dist/v1/regexp/Email.cjs +185 -0
  400. package/dist/v1/regexp/Email.d.mts +73 -0
  401. package/dist/v1/regexp/Email.d.mts.map +1 -0
  402. package/dist/v1/regexp/Email.mjs +153 -0
  403. package/dist/v1/regexp/Glob.cjs +293 -0
  404. package/dist/v1/regexp/Glob.d.mts +45 -0
  405. package/dist/v1/regexp/Glob.d.mts.map +1 -0
  406. package/dist/v1/regexp/Glob.mjs +260 -0
  407. package/dist/v1/regexp/Ipv4.cjs +57 -0
  408. package/dist/v1/regexp/Ipv4.d.mts +29 -0
  409. package/dist/v1/regexp/Ipv4.d.mts.map +1 -0
  410. package/dist/v1/regexp/Ipv4.mjs +45 -0
  411. package/dist/v1/regexp/Ipv6.cjs +67 -0
  412. package/dist/v1/regexp/Ipv6.d.mts +29 -0
  413. package/dist/v1/regexp/Ipv6.d.mts.map +1 -0
  414. package/dist/v1/regexp/Ipv6.mjs +54 -0
  415. package/dist/v1/regexp/SegmentExtractor.cjs +145 -0
  416. package/dist/v1/regexp/SegmentExtractor.d.mts +91 -0
  417. package/dist/v1/regexp/SegmentExtractor.d.mts.map +1 -0
  418. package/dist/v1/regexp/SegmentExtractor.mjs +116 -0
  419. package/dist/v1/regexp/UrlDetector.cjs +125 -0
  420. package/dist/v1/regexp/UrlDetector.d.mts +67 -0
  421. package/dist/v1/regexp/UrlDetector.d.mts.map +1 -0
  422. package/dist/v1/regexp/UrlDetector.mjs +102 -0
  423. package/dist/v1/regexp/Username/index.cjs +233 -0
  424. package/dist/v1/regexp/Username/index.d.mts +77 -0
  425. package/dist/v1/regexp/Username/index.d.mts.map +1 -0
  426. package/dist/v1/regexp/Username/index.mjs +199 -0
  427. package/dist/v1/regexp/Username/jsDoc.cjs +2 -0
  428. package/dist/v1/regexp/Username/jsDoc.d.mts +57 -0
  429. package/dist/v1/regexp/Username/jsDoc.d.mts.map +1 -0
  430. package/dist/v1/regexp/Username/jsDoc.mjs +18 -0
  431. package/dist/v1/regexp/Username/templates/BlueSky.cjs +56 -0
  432. package/dist/v1/regexp/Username/templates/BlueSky.d.mts +35 -0
  433. package/dist/v1/regexp/Username/templates/BlueSky.d.mts.map +1 -0
  434. package/dist/v1/regexp/Username/templates/BlueSky.mjs +52 -0
  435. package/dist/v1/regexp/Username/templates/Discord.cjs +505 -0
  436. package/dist/v1/regexp/Username/templates/Discord.d.mts +209 -0
  437. package/dist/v1/regexp/Username/templates/Discord.d.mts.map +1 -0
  438. package/dist/v1/regexp/Username/templates/Discord.mjs +458 -0
  439. package/dist/v1/regexp/Username/templates/MatrixProtocol.cjs +143 -0
  440. package/dist/v1/regexp/Username/templates/MatrixProtocol.d.mts +70 -0
  441. package/dist/v1/regexp/Username/templates/MatrixProtocol.d.mts.map +1 -0
  442. package/dist/v1/regexp/Username/templates/MatrixProtocol.mjs +128 -0
  443. package/dist/v1/regexp/Username/templates/deprecated/Discord.cjs +24 -0
  444. package/dist/v1/regexp/Username/templates/deprecated/Discord.d.mts +17 -0
  445. package/dist/v1/regexp/Username/templates/deprecated/Discord.d.mts.map +1 -0
  446. package/dist/v1/regexp/Username/templates/deprecated/Discord.mjs +20 -0
  447. package/dist/v1/regexp/Username/templates/index.cjs +11 -0
  448. package/dist/v1/regexp/Username/templates/index.d.mts +5 -0
  449. package/dist/v1/regexp/Username/templates/index.d.mts.map +1 -0
  450. package/dist/v1/regexp/Username/templates/index.mjs +4 -0
  451. package/dist/v1/regexp/index.cjs +41 -0
  452. package/dist/v1/regexp/index.d.mts +9 -0
  453. package/dist/v1/regexp/index.d.mts.map +1 -0
  454. package/dist/v1/regexp/index.mjs +8 -0
  455. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Browser.cjs +64 -0
  456. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Browser.d.mts +11 -0
  457. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Browser.d.mts.map +1 -0
  458. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Browser.mjs +51 -0
  459. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/FileInput.cjs +66 -0
  460. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/FileInput.d.mts +11 -0
  461. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/FileInput.d.mts.map +1 -0
  462. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/FileInput.mjs +51 -0
  463. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Node.cjs +39 -0
  464. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Node.d.mts +11 -0
  465. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Node.d.mts.map +1 -0
  466. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Node.mjs +28 -0
  467. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Template.cjs +494 -0
  468. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Template.d.mts +142 -0
  469. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Template.d.mts.map +1 -0
  470. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Template.mjs +445 -0
  471. package/dist/v1/webTemplates/bootstrap/5.3/html/BootstrapDialogs.cjs +725 -0
  472. package/dist/v1/webTemplates/bootstrap/5.3/html/BootstrapDialogs.d.mts +293 -0
  473. package/dist/v1/webTemplates/bootstrap/5.3/html/BootstrapDialogs.d.mts.map +1 -0
  474. package/dist/v1/webTemplates/bootstrap/5.3/html/BootstrapDialogs.mjs +614 -0
  475. package/dist/v1/webTemplates/bootstrap/5.3/scss/input/Placeholder-Colors-Fix.scss +64 -0
  476. package/dist/v1/webTemplates/bootstrap/5.3/scss/spacing/Spacing-Plus.scss +31 -0
  477. package/dist/v1/webTemplates/media/MediaValidator/v1/Browser/index.cjs +135 -0
  478. package/dist/v1/webTemplates/media/MediaValidator/v1/Browser/index.d.mts +83 -0
  479. package/dist/v1/webTemplates/media/MediaValidator/v1/Browser/index.d.mts.map +1 -0
  480. package/dist/v1/webTemplates/media/MediaValidator/v1/Browser/index.mjs +120 -0
  481. package/dist/v1/webTemplates/media/MediaValidator/v1/Node/index.cjs +127 -0
  482. package/dist/v1/webTemplates/media/MediaValidator/v1/Node/index.d.mts +95 -0
  483. package/dist/v1/webTemplates/media/MediaValidator/v1/Node/index.d.mts.map +1 -0
  484. package/dist/v1/webTemplates/media/MediaValidator/v1/Node/index.mjs +109 -0
  485. package/dist/v1/webTemplates/multiformats/14.0/IPFSHasher/index.cjs +83 -0
  486. package/dist/v1/webTemplates/multiformats/14.0/IPFSHasher/index.d.mts +46 -0
  487. package/dist/v1/webTemplates/multiformats/14.0/IPFSHasher/index.d.mts.map +1 -0
  488. package/dist/v1/webTemplates/multiformats/14.0/IPFSHasher/index.mjs +71 -0
  489. package/dist/v1/webTemplates/vite/7.3/plugins/TinyVitePwaPlugin.cjs +493 -0
  490. package/dist/v1/webTemplates/vite/7.3/plugins/TinyVitePwaPlugin.d.mts +67 -0
  491. package/dist/v1/webTemplates/vite/7.3/plugins/TinyVitePwaPlugin.d.mts.map +1 -0
  492. package/dist/v1/webTemplates/vite/7.3/plugins/TinyVitePwaPlugin.mjs +399 -0
  493. package/dist/v1/webTemplates/vite/7.3/plugins/githubUtils.cjs +35 -0
  494. package/dist/v1/webTemplates/vite/7.3/plugins/githubUtils.d.mts +6 -0
  495. package/dist/v1/webTemplates/vite/7.3/plugins/githubUtils.d.mts.map +1 -0
  496. package/dist/v1/webTemplates/vite/7.3/plugins/githubUtils.mjs +29 -0
  497. package/docs/info/RegExp.md +74 -0
  498. package/docs/v1/Exports.md +111 -0
  499. package/docs/v1/README.md +117 -13
  500. package/docs/v1/basics/asyncReplace.md +2 -0
  501. package/docs/v1/basics/browserDetector.md +28 -11
  502. package/docs/v1/basics/crypto.md +85 -0
  503. package/docs/v1/basics/deprecated/html.md +2 -0
  504. package/docs/v1/basics/deprecated/objFilter.md +2 -0
  505. package/docs/v1/basics/html.md +2 -0
  506. package/docs/v1/basics/objChecker.md +55 -0
  507. package/docs/v1/basics/objFilter.md +57 -86
  508. package/docs/v1/basics/promiseUtils.md +12 -3
  509. package/docs/v1/basics/text.md +0 -1
  510. package/docs/v1/libs/array/TinyArrayComparator.md +50 -39
  511. package/docs/v1/libs/fs/TinyFS.md +752 -0
  512. package/docs/v1/libs/fs/TinyOPFSFileSystem.md +495 -0
  513. package/docs/v1/libs/fs/TinyStorageBucketFileSystem.md +407 -0
  514. package/docs/v1/libs/plugin/TinyPlugin.md +441 -0
  515. package/docs/v1/libs/plugin/TinyVersion.md +145 -0
  516. package/docs/v1/libs/router/TinyRouter.md +216 -0
  517. package/docs/v1/libs/storage/TinyMapCache.md +219 -0
  518. package/docs/v1/libs/storage/TinySetMapDatabase.md +478 -0
  519. package/docs/v1/libs/sw/browser/TinyNotificationAdapter.md +280 -0
  520. package/docs/v1/libs/sw/browser/TinyPushManager.md +782 -0
  521. package/docs/v1/libs/sw/browser/TinyServiceWorker.md +365 -0
  522. package/docs/v1/libs/sw/browser/plugins/TabManager.md +133 -0
  523. package/docs/v1/libs/sw/service/TinyPushRouter.md +314 -0
  524. package/docs/v1/libs/sw/service/TinyServiceWorkerEngine.md +748 -0
  525. package/docs/v1/libs/sw/service/plugins/GlobBypassPlugin.md +229 -0
  526. package/docs/v1/libs/sw/service/plugins/GlobCachePlugin.md +91 -0
  527. package/docs/v1/libs/sw/service/plugins/Ping.md +36 -0
  528. package/docs/v1/libs/sw/service/plugins/TabManager.md +64 -0
  529. package/docs/v1/libs/sw/service/plugins/ViteFileDetector.md +92 -0
  530. package/docs/v1/libs/sw/service/shared/TinyPushPayload.md +316 -0
  531. package/docs/v1/libs/text/TinyI18.md +80 -56
  532. package/docs/v1/libs/tools/TinyBrowserMonitor.md +170 -0
  533. package/docs/v1/libs/tools/TinyDebugger.md +117 -1
  534. package/docs/v1/libs/tools/TinyHtmlTagRegexBuilder.md +141 -0
  535. package/docs/v1/libs/tools/TinyHttpResponseRegistry.md +129 -0
  536. package/docs/v1/libs/tools/TinyPasswordValidator.md +153 -0
  537. package/docs/v1/libs/tools/TinyPkgExportValidator.md +45 -1
  538. package/docs/v1/libs/tools/TinySiteMap.md +134 -0
  539. package/docs/v1/libs/tools/TinySiteMapStream.md +97 -0
  540. package/docs/v1/libs/tools/TinyURLSecurityVerifier.md +146 -0
  541. package/docs/v1/libs/tools/TinyUriParser/Discord.md +374 -0
  542. package/docs/v1/libs/tools/TinyUriParser/MatrixProtocol.md +54 -0
  543. package/docs/v1/libs/tools/TinyUriParser.md +128 -0
  544. package/docs/v1/libs/utils/TinyCloner.md +126 -0
  545. package/docs/v1/libs/utils/TinyPromiseQueue.md +1 -1
  546. package/docs/v1/libs/utils/TinyThrottledApi.md +219 -0
  547. package/docs/v1/libs/worker/browser/TinyWebWorker.md +331 -0
  548. package/docs/v1/libs/worker/engine/TinyWebWorkerEngine.md +137 -0
  549. package/docs/v1/regexp/Email.md +127 -0
  550. package/docs/v1/regexp/Glob.md +155 -0
  551. package/docs/v1/regexp/IPv4.md +103 -0
  552. package/docs/v1/regexp/IPv6.md +122 -0
  553. package/docs/v1/regexp/SegmentExtractor.md +120 -0
  554. package/docs/v1/regexp/UrlDetector.md +117 -0
  555. package/docs/v1/regexp/Username/Base.md +131 -0
  556. package/docs/v1/regexp/Username/Discord.md +267 -0
  557. package/docs/v1/regexp/Username/MatrixProtocol.md +131 -0
  558. package/docs/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters.md +569 -0
  559. package/docs/v1/webTemplates/bootstrap/5.3/html/BootstrapDialogs.md +174 -0
  560. package/docs/v1/webTemplates/media/MediaValidator/v1/Browser.md +123 -0
  561. package/docs/v1/webTemplates/media/MediaValidator/v1/Node.md +136 -0
  562. package/docs/v1/webTemplates/multiformats/14.0/IPFSHasher.md +310 -0
  563. package/docs/v1/webTemplates/vite/7.3/plugins/TinyVitePwaPlugin.md +131 -0
  564. package/docs/v1/webTemplates/vite/7.3/plugins/githubUtils.md +50 -0
  565. package/package.json +313 -18
  566. package/types/EventEmitter.d.ts +48 -0
  567. package/dist/v1/libs/text/TinyI18.d.mts.map +0 -1
@@ -0,0 +1,316 @@
1
+ # 📬 TinyPushPayload
2
+
3
+ > A tiny, isomorphic contract for **Web Push** messages. 🚀
4
+ > One single source of truth shared between your **Service Worker** and your **page**.
5
+
6
+ [![Version](https://img.shields.io/badge/schema-v1-blue)](#-versioning)
7
+ [![Module](https://img.shields.io/badge/module-ESM-green)](#-installation)
8
+ [![License](https://img.shields.io/badge/license-MIT-lightgrey)](#)
9
+
10
+ ---
11
+
12
+ ## 📖 Table of Contents
13
+
14
+ 1. [What is this?](#-what-is-this)
15
+ 2. [Why it exists](#-why-it-exists)
16
+ 3. [Installation](#-installation)
17
+ 4. [Core concepts](#-core-concepts)
18
+ 5. [API Reference](#-api-reference)
19
+ - [`TinyPushPayload.VERSION`](#-tinypushpayloadversion)
20
+ - [`TinyPushPayload.MAX_TTL`](#-tinypushpayloadmax_ttl)
21
+ - [`TinyPushPayload.PUSH_TYPE`](#-tinypushpayloadpush_type)
22
+ - [`from(raw)`](#-fromraw)
23
+ - [`fromEvent(event)`](#-fromeventevent)
24
+ - [`isExpired(message, now)`](#-isExpiredmessage-now)
25
+ - [`toNotification(message, defaults)`](#-tonotificationmessage-defaults)
26
+ 6. [Type definitions](#-type-definitions)
27
+ 8. [Error handling](#-error-handling)
28
+ 9. [Best practices](#-best-practices)
29
+
30
+ ---
31
+
32
+ ## ✨ What is this?
33
+
34
+ `TinyPushPayload` is a **stateless utility class** that normalizes, validates and
35
+ converts Web Push payloads.
36
+
37
+ It is **isomorphic on purpose**:
38
+
39
+ | Environment | What it does |
40
+ | ----------------- | ------------------------------------------------------------------ |
41
+ | 🧑‍💻 **Page** | Builds and validates the payload *before* it reaches the backend. |
42
+ | ⚙️ **Service Worker** | Parses the incoming `push` event and turns it into a notification. |
43
+
44
+ Because both sides import the **same file**, the message contract can never
45
+ drift out of sync. 🎯
46
+
47
+ ---
48
+
49
+ ## 🧠 Why it exists
50
+
51
+ Web Push payloads arrive as **untrusted strings** over the network. Anything can
52
+ be inside them. This class gives you:
53
+
54
+ - 🛡️ **Strict validation** — every field is type-checked before use.
55
+ - 🧊 **Immutable output** — every returned message is frozen with `Object.freeze`.
56
+ - 🔁 **One-shot safe** — reads the `PushMessageData` stream exactly once.
57
+ - 🧩 **Zero dependencies** — pure ECMAScript, no runtime libraries.
58
+
59
+ ---
60
+
61
+ ## 📦 Installation
62
+
63
+ This module is part of the project. Import it with a **relative path** (ESM only):
64
+
65
+ ```javascript
66
+ import TinyPushPayload from 'tiny-essentials/libs/sw/service/shared/TinyPushPayload';
67
+ ```
68
+
69
+ ---
70
+
71
+ ## 🧩 Core concepts
72
+
73
+ ### The message shape
74
+
75
+ Every message is a plain object that follows the `TinyPushMessage` contract:
76
+
77
+ ```javascript
78
+ {
79
+ v: 1, // 🔢 schema version
80
+ type: 'order:shipped', // 🏷️ message type (from PUSH_TYPE)
81
+ id: 'evt_123', // 🆔 optional unique id
82
+ topic: 'orders', // 📁 optional topic
83
+ expiresAt: 1735689600000, // ⏰ optional expiration (ms)
84
+ ttl: 3600, // ⏳ optional TTL (seconds, clamped)
85
+ data: { orderId: 'A1' }, // 📦 optional custom data
86
+ notification: { /* ... */ } // 🔔 optional notification descriptor
87
+ }
88
+ ```
89
+
90
+ ### The `PUSH_TYPE.UNKNOWN` fallback
91
+
92
+ If the incoming payload has no valid `type`, the class falls back to
93
+ `PUSH_TYPE.UNKNOWN`. This guarantees the `type` field is **never** `undefined`.
94
+
95
+ ---
96
+
97
+ ## 📚 API Reference
98
+
99
+ ### 🔢 `TinyPushPayload.VERSION`
100
+
101
+ **Type:** `number` — default `1`
102
+
103
+ The current payload schema version. Used as the fallback for the `v` field.
104
+
105
+ ```javascript
106
+ console.log(TinyPushPayload.VERSION); // 1
107
+ ```
108
+
109
+ ---
110
+
111
+ ### ⏳ `TinyPushPayload.MAX_TTL`
112
+
113
+ **Type:** `number` — value `2419200` (28 days, in seconds)
114
+
115
+ The maximum allowed TTL. Any `ttl` above this value is clamped down to it.
116
+
117
+ ```javascript
118
+ console.log(TinyPushPayload.MAX_TTL); // 2419200
119
+ ```
120
+
121
+ ---
122
+
123
+ ### 🏷️ `TinyPushPayload.PUSH_TYPE`
124
+
125
+ **Type:** `Object` (read-only getter)
126
+
127
+ A passthrough to the shared `PUSH_TYPE` enum. Handy so consumers do not need a
128
+ second import.
129
+
130
+ ```javascript
131
+ TinyPushPayload.PUSH_TYPE.UNKNOWN; // 'unknown'
132
+ ```
133
+
134
+ ---
135
+
136
+ ### 🏗️ `from(raw)`
137
+
138
+ Normalizes an **untrusted** value into a frozen `TinyPushMessage`.
139
+
140
+ | Parameter | Type | Description |
141
+ | --------- | --------- | --------------------------------- |
142
+ | `raw` | `unknown` | The value received from the wire. |
143
+
144
+ **Returns:** `TinyPushMessage` — a frozen, normalized message.
145
+
146
+ **Throws:** `TypeError` if `raw` is not a non-null object or is an array.
147
+
148
+ ```javascript
149
+ const message = TinyPushPayload.from({
150
+ type: 'order:shipped',
151
+ ttl: 99999999, // 👈 will be clamped to MAX_TTL
152
+ });
153
+
154
+ console.log(message.ttl); // 2419200
155
+ Object.isFrozen(message); // true 🧊
156
+ ```
157
+
158
+ **Normalization rules:**
159
+
160
+ | Field | Rule |
161
+ | -------------- | ---------------------------------------------------------- |
162
+ | `v` | Kept if `number`, else `VERSION`. |
163
+ | `type` | Kept if non-empty string, else `PUSH_TYPE.UNKNOWN`. |
164
+ | `id` | Kept only if `string`. |
165
+ | `topic` | Kept only if `string`. |
166
+ | `expiresAt` | Kept only if `number`. |
167
+ | `ttl` | Clamped to `[0, MAX_TTL]` and truncated. |
168
+ | `data` | Kept only if a non-null, non-array object. |
169
+ | `notification` | Normalized via the private `#normalizeNotification`. |
170
+
171
+ ---
172
+
173
+ ### 📥 `fromEvent(event)`
174
+
175
+ Reads the payload of a `push` event **exactly once**.
176
+
177
+ > ⚠️ **Why a dedicated method?**
178
+ > `PushMessageData` is a **one-shot stream**. Calling `json()` and then `text()`
179
+ > throws a `TypeError`. This method reads the body once and parses it manually,
180
+ > so you never have to think about it.
181
+
182
+ | Parameter | Type | Description |
183
+ | --------- | ---------- | ----------------------- |
184
+ | `event` | `PushEvent`| The native push event. |
185
+
186
+ **Returns:** `Promise<TinyPushMessage>` — never `null`.
187
+
188
+ **Throws:** `TypeError` if `event` is not an object or has no `data` property.
189
+
190
+ ```javascript
191
+ self.addEventListener('push', async (event) => {
192
+ const message = await TinyPushPayload.fromEvent(event);
193
+ console.log(message.type);
194
+ });
195
+ ```
196
+
197
+ **Fallback behavior:**
198
+
199
+ | Situation | Result |
200
+ | -------------------------------- | -------------------------------------------------- |
201
+ | `event.data` is `null` | `{ v, type: UNKNOWN }` |
202
+ | `text()` throws | `{ v, type: UNKNOWN }` |
203
+ | Body is an empty string | `{ v, type: UNKNOWN }` |
204
+ | Body is not valid JSON | `{ v, type: UNKNOWN, notification: { title, body } }` |
205
+ | Body is valid JSON | Parsed via [`from()`](#-fromraw). |
206
+
207
+ ---
208
+
209
+ ### ⏰ `isExpired(message, now)`
210
+
211
+ Checks whether a message is past its expiration time.
212
+
213
+ | Parameter | Type | Default | Description |
214
+ | --------- | ---------------- | ------------ | ------------------------------ |
215
+ | `message` | `TinyPushMessage`| — | The message to inspect. |
216
+ | `now` | `number` | `Date.now()` | Reference time in milliseconds.|
217
+
218
+ **Returns:** `boolean` — `true` when the message must be discarded.
219
+
220
+ **Throws:** `TypeError` if `message` is not a non-null object or `now` is not a
221
+ finite number.
222
+
223
+ ```javascript
224
+ if (TinyPushPayload.isExpired(message)) {
225
+ return; // 🗑️ too late, drop it
226
+ }
227
+ ```
228
+
229
+ > 💡 A message **without** `expiresAt` is **never** considered expired.
230
+
231
+ ---
232
+
233
+ ### 🔔 `toNotification(message, defaults)`
234
+
235
+ Converts a message into the `{ title, options }` object expected by
236
+ `showNotification`.
237
+
238
+ | Parameter | Type | Default | Description |
239
+ | ---------- | ------------------------------- | ------- | ----------------------- |
240
+ | `message` | `TinyPushMessage` | — | The normalized message. |
241
+ | `defaults` | `TinyPushNotificationDefaults` | `{}` | Fallback values. |
242
+
243
+ **Returns:** `{ title: string, options: NotificationOptions & { data: object } }`
244
+
245
+ **Throws:** `TypeError` if `message` is not a non-null object.
246
+
247
+ ```javascript
248
+ const { title, options } = TinyPushPayload.toNotification(message, {
249
+ defaultIcon: '/icons/default.png',
250
+ defaultUrl: '/',
251
+ });
252
+
253
+ await self.registration.showNotification(title, options);
254
+ ```
255
+
256
+ **What lands inside `options.data`:**
257
+
258
+ | Key | Source |
259
+ | ---------- | -------------------------------------------------- |
260
+ | `url` | `notification.url` → `defaults.defaultUrl` → `'/'` |
261
+ | `actions` | Map of `action → url` built from `notification.actions`. |
262
+ | `pushId` | `message.id` |
263
+ | `pushType` | `message.type` |
264
+
265
+ ---
266
+
267
+ ## 🧬 Type definitions
268
+
269
+ ### `TinyPushMessage`
270
+
271
+ | Property | Type | Required | Description |
272
+ | -------------- | ------------------------ | -------- | ---------------------------------- |
273
+ | `v` | `number` | ✅ | Schema version. |
274
+ | `type` | `string` | ✅ | Message type. |
275
+ | `id` | `string` | ❌ | Unique id. |
276
+ | `topic` | `string` | ❌ | Grouping topic. |
277
+ | `expiresAt` | `number` | ❌ | Expiration timestamp (ms). |
278
+ | `ttl` | `number` | ❌ | Time-to-live in seconds. |
279
+ | `data` | `Record<string, unknown>`| ❌ | Custom data. |
280
+ | `notification` | `TinyPushNotification` | ❌ | Notification descriptor. |
281
+
282
+ ### `TinyPushNotificationDefaults`
283
+
284
+ | Property | Type | Description |
285
+ | --------------- | -------- | -------------------- |
286
+ | `defaultIcon` | `string` | Fallback icon. |
287
+ | `defaultBadge` | `string` | Fallback badge. |
288
+ | `defaultUrl` | `string` | Fallback click URL. |
289
+
290
+ ---
291
+
292
+ ## 🚨 Error handling
293
+
294
+ Every method validates its arguments and throws a **specific** error type:
295
+
296
+ | Method | Throws | When |
297
+ | ------------------ | ----------- | --------------------------------------------- |
298
+ | `from` | `TypeError` | `raw` is not a non-null object / is an array. |
299
+ | `fromEvent` | `TypeError` | `event` is not a valid `PushEvent`. |
300
+ | `isExpired` | `TypeError` | `message` invalid or `now` not finite. |
301
+ | `toNotification` | `TypeError` | `message` is not a non-null object. |
302
+ | `#normalizeNotification` | `TypeError` | `notification.title` is missing/empty. |
303
+
304
+ > 💡 `fromEvent` is the **only** method that never throws for bad payloads — it
305
+ > always resolves to a safe `UNKNOWN` message. This is intentional: a malformed
306
+ > push must never crash the Service Worker.
307
+
308
+ ---
309
+
310
+ ## ✅ Best practices
311
+
312
+ - 🧊 **Never mutate** a returned message. It is frozen — use `from()` again.
313
+ - 🛡️ **Always validate** on the page *and* on the Service Worker.
314
+ - ⏰ **Always check** `isExpired()` before showing a notification.
315
+ - 🏷️ **Always handle** `PUSH_TYPE.UNKNOWN` in your `switch` statements.
316
+ - 🔢 **Never hardcode** the TTL limit — use `TinyPushPayload.MAX_TTL`.
@@ -46,6 +46,14 @@ await TinyI18.mergeLocaleFiles({
46
46
 
47
47
  ### Properties 🛠️
48
48
 
49
+ #### `destroyed` 🔹
50
+
51
+ Indicates whether the instance has been destroyed.
52
+
53
+ * **Type:** `boolean`
54
+
55
+ ---
56
+
49
57
  #### `currentLocale` 🔹
50
58
 
51
59
  The currently selected locale, or `null` if only the default locale is active.
@@ -86,6 +94,14 @@ Whether strict mode is enabled.
86
94
 
87
95
  ---
88
96
 
97
+ #### `acceptNullResults` 🔹
98
+
99
+ Whether null results are accepted when a translation is missing.
100
+
101
+ * **Type:** `boolean`
102
+
103
+ ---
104
+
89
105
  #### `basePath` 🔹
90
106
 
91
107
  Base directory path used in `"file"` mode to locate locale JSON files.
@@ -191,8 +207,8 @@ Resolves a key exactly in the provided locale order.
191
207
 
192
208
  **Parameters:**
193
209
 
194
- | Name | Type | Description |
195
- | ------- | ---------- | ------------------------------ |
210
+ | Name | Type | Description |
211
+ | ------- | -------- | ----------------------------------------- |
196
212
  | `order` | `string[]` | Array of locale codes to check |
197
213
  | `key` | `string` | Exact key to look up |
198
214
 
@@ -206,10 +222,10 @@ Resolves a key by matching regex patterns in locale tables.
206
222
 
207
223
  **Parameters:**
208
224
 
209
- | Name | Type | Description |
210
- | ------- | ---------- | ----------------------------------------- |
211
- | `order` | `string[]` | Array of locale codes in resolution order |
212
- | `key` | `string` | Key to match against patterns |
225
+ | Name | Type | Description |
226
+ | ------------------ | -------- | ----------------------------------------- |
227
+ | `order` | `string[]` | Array of locale codes to check |
228
+ | `key` | `string` | Input string to test against regex patterns |
213
229
 
214
230
  **Returns:** `any` – Value associated with matched pattern, or `undefined`
215
231
 
@@ -227,10 +243,10 @@ Converts a raw translation entry into a final string for display.
227
243
 
228
244
  **Parameters:**
229
245
 
230
- | Name | Type | Description | | |
231
- | -------- | -------- | ------------------------------------- | ------------------------------ | --------------------- |
232
- | `value` | `string` | HelperCallback | { \$fn: string; args?: any }\` | Raw translation entry |
233
- | `params` | `Dict` | Optional parameters for interpolation | | |
246
+ | Name | Type | Description | |
247
+ | -------- | ---------------------------------------------------------------- | ------------------------------------------------------------------------ | --------------------- |
248
+ | `value` | `string` | `HelperCallback` | `{ $fn: string; args?: any }` | Raw translation entry |
249
+ | `params` | `Dict` | Optional parameters for interpolation | |
234
250
 
235
251
  **Returns:** `string` – Materialized result
236
252
 
@@ -242,10 +258,10 @@ Interpolates `{named}` placeholders in a string using given parameters.
242
258
 
243
259
  **Parameters:**
244
260
 
245
- | Name | Type | Description |
246
- | ---------- | -------- | --------------------------------- |
247
- | `template` | `string` | Template string with placeholders |
248
- | `params` | `Dict` | Values to interpolate |
261
+ | Name | Type | Description |
262
+ | ---------- | ------------ | ------------------------------------------ |
263
+ | `template` | `string` | Template string with placeholders |
264
+ | `params` | `Dict` | Values to interpolate |
249
265
 
250
266
  **Returns:** `string` – Interpolated string
251
267
 
@@ -257,9 +273,9 @@ Safely retrieves a nested property using dot notation.
257
273
 
258
274
  **Parameters:**
259
275
 
260
- | Name | Type | Description |
261
- | ------ | -------- | ------------------------------------ |
262
- | `obj` | `Dict` | Object to retrieve from |
276
+ | Name | Type | Description |
277
+ | ------ | ----- | ----------------------------------------- |
278
+ | `obj` | `Dict` | Object to retrieve from |
263
279
  | `path` | `string` | Dot-separated path (e.g., `"a.b.c"`) |
264
280
 
265
281
  **Returns:** `any` – Value at path or `undefined`
@@ -298,9 +314,9 @@ Removes a previously loaded locale from memory (except default).
298
314
 
299
315
  **Parameters:**
300
316
 
301
- | Name | Type | Description |
302
- | -------- | -------- | --------------------- |
303
- | `locale` | `string` | Locale code to unload |
317
+ | Name | Type | Description |
318
+ | -------- | -------- | --------------------------- |
319
+ | `locale` | `string` | Locale code |
304
320
 
305
321
  ---
306
322
 
@@ -314,11 +330,11 @@ Loads a locale JSON file and flattens it into internal maps (file mode only).
314
330
 
315
331
  * Dot-flattens nested keys
316
332
  * Compiles `$pattern` entries into RegExp
317
- * Preserves `$fn` placeholders for helper resolution
333
+ * Preserves `$fn` references for later resolution via helpers
318
334
 
319
335
  **Parameters:**
320
336
 
321
- | Name | Type | Description |
337
+ | Name | Type | Description |
322
338
  | -------- | ------------ | ------------------- |
323
339
  | `locale` | `LocaleCode` | Locale code to load |
324
340
 
@@ -333,7 +349,7 @@ Strict mode → throws on invalid regex; otherwise returns a never-matching rege
333
349
 
334
350
  **Parameters:**
335
351
 
336
- | Name | Type | Description |
352
+ | Name | Type | Description |
337
353
  | ----- | -------- | ------------------------------ |
338
354
  | `src` | `string` | Regex source string (no flags) |
339
355
 
@@ -350,11 +366,11 @@ Normalizes a JSON value from file mode into internal representation.
350
366
 
351
367
  **Parameters:**
352
368
 
353
- | Name | Type | Description | |
354
- | ---- | -------- | ----------- | -------------- |
355
- | `v` | \`string | FileValue\` | Raw JSON value |
369
+ | Name | Type | Description | |
370
+ | ---- | ---- | -------------- | -------------- |
371
+ | `v` | `string | FileValue` | Raw JSON value |
356
372
 
357
- **Returns:** `string | { $fn: string, args?: any }`
373
+ **Returns:** `string | { $fn: string; args?: any }`
358
374
 
359
375
  ---
360
376
 
@@ -376,7 +392,7 @@ Creates a new TinyI18 instance for managing localized strings and patterns.
376
392
 
377
393
  **Parameters:**
378
394
 
379
- | Name | Type | Description |
395
+ | Name | Type | Description |
380
396
  | --------- | ---------------- | -------------------- |
381
397
  | `options` | `TinyI18Options` | Configuration object |
382
398
 
@@ -399,10 +415,10 @@ Registers a helper function for function-based entries or `$fn` references.
399
415
 
400
416
  **Parameters:**
401
417
 
402
- | Name | Type | Description |
403
- | ------ | ---------------- | -------------------- |
404
- | `name` | `string` | Helper function name |
405
- | `fn` | `HelperCallback` | Callback function |
418
+ | Name | Type | Description |
419
+ | ------ | -------- | -------------------- |
420
+ | `name` | `string` | Helper function name |
421
+ | `fn` | `HelperCallback` | Callback function |
406
422
 
407
423
  ---
408
424
 
@@ -412,23 +428,23 @@ Removes a previously registered helper function.
412
428
 
413
429
  **Parameters:**
414
430
 
415
- | Name | Type | Description |
416
- | ------ | -------- | ------------------------ |
417
- | `name` | `string` | Name of helper to remove |
431
+ | Name | Type | Description |
432
+ | -------- | -------- | ------------------------ |
433
+ | `name` | `string` | Name of the helper to remove |
418
434
 
419
- **Returns:** `boolean` – `true` if removed, `false` if not found
435
+ **Returns:** `boolean` – `true` if the helper was removed, `false` if it was not found
420
436
 
421
437
  ---
422
438
 
423
439
  ### `loadLocaleLocal(locale, data)` 📦
424
440
 
425
- Loads or updates locale data in-memory (local mode only).
441
+ Loads or updates a locale data in-memory (local mode only).
426
442
 
427
443
  **Parameters:**
428
444
 
429
- | Name | Type | Description |
430
- | -------- | ------------ | ---------------- |
431
- | `locale` | `LocaleCode` | Locale code |
445
+ | Name | Type | Description |
446
+ | -------- | -------- | ---------------- |
447
+ | `locale` | `LocaleCode` | Locale code |
432
448
  | `data` | `Dict` | Translation data |
433
449
 
434
450
  ---
@@ -437,14 +453,14 @@ Loads or updates locale data in-memory (local mode only).
437
453
 
438
454
  Sets the currently selected locale. In file mode, loads from disk.
439
455
 
440
- * Keeps only default + selected locale in memory
456
+ * Keeps only the default + selected locale in memory
441
457
  * Unloads previous selected locale
442
458
 
443
459
  **Parameters:**
444
460
 
445
- | Name | Type | Description | |
446
- | -------- | ------------ | ----------- | ------------------------------------------- |
447
- | `locale` | \`LocaleCode | null\` | Locale code, or `null` to keep only default |
461
+ | Name | Type | Description | |
462
+ | -------- | ------------------------------------------- | ------------------------------------------------ |
463
+ | `locale` | `LocaleCode | null` | Locale code, or `null` to keep only default |
448
464
 
449
465
  **Returns:** `Promise<void>`
450
466
 
@@ -460,9 +476,9 @@ Resolves a translation by **exact key**.
460
476
 
461
477
  | Name | Type | Description |
462
478
  | --------- | ---------------- | ------------------------------------------------ |
463
- | `key` | `string` | Translation key (dot.notation) |
479
+ | `key` | `string` | Translation key (dot.notation) |
464
480
  | `params` | `Dict` | Optional parameters for interpolation or helpers |
465
- | `options` | `ResolveOptions` | Optional resolution overrides |
481
+ | `options` | `ResolveOptions` | Optional resolution overrides |
466
482
 
467
483
  **Returns:** `any` – Usually `string`, but may be HTMLElement, DocumentFragment, or helper return type
468
484
 
@@ -478,10 +494,10 @@ Resolves a translation by **regex pattern match**.
478
494
 
479
495
  **Parameters:**
480
496
 
481
- | Name | Type | Description |
482
- | --------- | ---------------- | -------------------------------------- |
483
- | `key` | `string` | Input string to match against patterns |
484
- | `options` | `ResolveOptions` | Optional resolution overrides |
497
+ | Name | Type | Description |
498
+ | -------- | -------- | ------------------------------------------------ |
499
+ | `key` | `string` | Input string to match against regex patterns |
500
+ | `options` | `ResolveOptions` | Optional resolution overrides |
485
501
 
486
502
  **Returns:** `any` – Translation value
487
503
 
@@ -496,8 +512,6 @@ Clears all loaded locales except the default.
496
512
  * Selected locale becomes `null`
497
513
  * In file mode, non-default locales are unloaded
498
514
 
499
- **Returns:** `void`
500
-
501
515
  ---
502
516
 
503
517
  ### `getStatsForLocale(locale)` 📊
@@ -506,10 +520,20 @@ Returns statistics for a specific locale.
506
520
 
507
521
  **Parameters:**
508
522
 
509
- | Name | Type | Description |
510
- | -------- | ------------ | ---------------------- |
511
- | `locale` | `LocaleCode` | Locale code to inspect |
523
+ | Name | Type | Description |
524
+ | -------- | -------- | ---------------------- |
525
+ | `locale` | `string` | Locale code to inspect |
512
526
 
513
527
  **Returns:** `StatLocale` – Locale stats including number of strings, patterns, and flags
514
528
 
515
- **Throws:** Error if locale is not registered
529
+ **Throws:** Error if the locale is not registered
530
+
531
+ ---
532
+
533
+ ### `destroy()` 🗑️
534
+
535
+ Destroys the TinyI18 instance, clearing all internal maps and references to free up memory. Once destroyed, the instance cannot be reused.
536
+
537
+ **Throws:** `Error` if the instance has already been destroyed.
538
+
539
+ **Returns:** `void`