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,372 @@
1
+ import TinyPromiseQueue from '../../../utils/TinyPromiseQueue.mjs';
2
+ import TinyServiceWorkerEngine from '../TinyServiceWorkerEngine.mjs';
3
+ /** @type {ServiceWorkerGlobalScope} */
4
+ // @ts-ignore
5
+ export const sw = self;
6
+ /** @typedef {import('../../../tools/TinyDebugger.mjs').DebuggerConstructor} DebuggerConstructor - The constructor function for a debugger instance. */
7
+ /**
8
+ * Represents information about a single browser tab.
9
+ * @typedef {Object} TabInfo
10
+ * @property {string} id - The unique Client ID provided by the browser.
11
+ * @property {string} url - The current URL of the tab.
12
+ * @property {string} title - The document title of the tab.
13
+ * @property {boolean} isFocused - Whether the tab currently has window focus.
14
+ * @property {any} [data] - Custom data provided by the client.
15
+ */
16
+ /**
17
+ * A mapping of unique tab IDs to their corresponding TabInfo objects.
18
+ * @typedef {Map<string, TabInfo>} TabInstance
19
+ */
20
+ /**
21
+ * A layer within the TinyPlugin system specifically designed to manage and track tab instances.
22
+ */
23
+ class TinySwTabsLayer extends TinyServiceWorkerEngine.TinyPluginLayer {
24
+ /**
25
+ * A queue used to manage and sequence asynchronous operations to prevent race conditions.
26
+ * @type {TinyPromiseQueue}
27
+ */
28
+ #queue = new TinyPromiseQueue();
29
+ /**
30
+ * Gets the internal promise queue instance.
31
+ * @returns {TinyPromiseQueue} - The instance of the promise queue.
32
+ */
33
+ get queue() {
34
+ return this.#queue;
35
+ }
36
+ /**
37
+ * A static registry that stores all active tab instances indexed by a unique key.
38
+ * @type {Map<number, TabInstance>}
39
+ */
40
+ static #instances = new Map();
41
+ /**
42
+ * A static counter used to assign unique keys to new TinySwTabsLayer instances.
43
+ * @type {number}
44
+ */
45
+ static #lastIndex = -1;
46
+ /**
47
+ * The unique identifier assigned to the current instance of the layer.
48
+ * @type {number}
49
+ */
50
+ #key;
51
+ /**
52
+ * A private Map storing the current session's tab information.
53
+ * @type {TabInstance}
54
+ */
55
+ #tabs = new Map();
56
+ /**
57
+ * A promise that resolves to the IndexedDB database instance.
58
+ * @type {Promise<IDBDatabase> | undefined}
59
+ */
60
+ #dbPromise;
61
+ /**
62
+ * Initializes the database connection for persistence.
63
+ * @returns {Promise<IDBDatabase>}
64
+ */
65
+ async #getDB() {
66
+ if (this.#dbPromise)
67
+ return this.#dbPromise;
68
+ this.#dbPromise = new Promise((resolve, reject) => {
69
+ const request = indexedDB.open('TinySwTabsDB', 1);
70
+ request.onupgradeneeded = () => {
71
+ request.result.createObjectStore('tabs');
72
+ };
73
+ request.onsuccess = () => resolve(request.result);
74
+ request.onerror = () => reject(request.error);
75
+ });
76
+ return this.#dbPromise;
77
+ }
78
+ /**
79
+ * Loads the tab registry from IndexedDB into the in-memory Map.
80
+ * @returns {Promise<void>}
81
+ */
82
+ async #loadFromStorage() {
83
+ const db = await this.#getDB();
84
+ return new Promise((resolve, reject) => {
85
+ const transaction = db.transaction('tabs', 'readonly');
86
+ const store = transaction.objectStore('tabs');
87
+ const request = store.getAll();
88
+ request.onsuccess = () => {
89
+ const data = request.result;
90
+ this.#tabs.clear();
91
+ // Data is stored as an array of TabInfo objects
92
+ data.forEach((tab) => {
93
+ this.#tabs.set(tab.id, tab);
94
+ });
95
+ resolve();
96
+ };
97
+ request.onerror = () => reject(request.error);
98
+ });
99
+ }
100
+ /**
101
+ * Synchronizes the current in-memory Map with the IndexedDB storage.
102
+ * @returns {Promise<void>}
103
+ */
104
+ async persist() {
105
+ const db = await this.#getDB();
106
+ return this.#queue.enqueue(() => new Promise((resolve, reject) => {
107
+ const transaction = db.transaction('tabs', 'readwrite');
108
+ const store = transaction.objectStore('tabs');
109
+ // Clear existing registry to ensure deletions are reflected
110
+ store.clear();
111
+ for (const [id, tab] of this.#tabs.entries()) {
112
+ store.put(tab, id);
113
+ }
114
+ transaction.oncomplete = () => resolve();
115
+ transaction.onerror = () => reject(transaction.error);
116
+ }));
117
+ }
118
+ /**
119
+ * Retrieves a snapshot of all tabs currently managed by the instance corresponding to the provided key.
120
+ * @param {number} key - The unique key of the instance to retrieve tabs from.
121
+ * @returns {Record<string, TabInfo>|null} - An object mapping tab IDs to their information, or null if the instance is not found.
122
+ */
123
+ static getTabsInstance(key) {
124
+ const instance = TinySwTabsLayer.#instances.get(key);
125
+ if (!instance)
126
+ return null;
127
+ /** @type {Record<string, TabInfo>} */
128
+ const tabs = {};
129
+ instance.forEach((tab, key) => {
130
+ tabs[key] = { ...tab };
131
+ });
132
+ return tabs;
133
+ }
134
+ /**
135
+ * Retrieves the information for a specific tab by its unique ID.
136
+ * @param {string} id - The unique identifier of the tab.
137
+ * @returns {TabInfo|null} - The tab information if found, or null if the tab does not exist.
138
+ * @throws {TypeError} If the provided id is not a string.
139
+ * @throws {ReferenceError} If the internal layer instance cannot be found in the registry.
140
+ */
141
+ getTab(id) {
142
+ if (typeof id !== 'string') {
143
+ throw new TypeError('[TinySwTabsLayer] getTab: id must be a string.');
144
+ }
145
+ const instance = TinySwTabsLayer.#instances.get(this.#key);
146
+ if (!instance) {
147
+ throw new ReferenceError('[TinySwTabsLayer] Instance not found for the current key.');
148
+ }
149
+ const tab = instance.get(id);
150
+ if (!tab)
151
+ return null;
152
+ return { ...tab };
153
+ }
154
+ /**
155
+ * Initializes the layer, loads persisted data, and begins monitoring tab changes.
156
+ * @template {Parameters<TinySwTabsLayer['_startLayer']>[0]} Plugin - The TinyPlugin template.
157
+ * @param {Plugin} plugin - The TinyPlugin instance.
158
+ * @param {(tabs: TabInstance) => void} callback - The callback function to be executed with the current tabs upon initialization.
159
+ */
160
+ _start(plugin, callback) {
161
+ this.#queue.enqueue(() => this.#loadFromStorage());
162
+ return this._startLayer(plugin, callback, this.#tabs);
163
+ }
164
+ /**
165
+ * Initializes a new instance of the TinySwTabsLayer, assigning it a unique key and registering it in the static instances registry.
166
+ * @param {Partial<DebuggerConstructor>} [lgConfig] - Configuration options for the instance.
167
+ */
168
+ constructor(lgConfig = {}) {
169
+ super({
170
+ logCfg: {
171
+ id: '[_main_class_TinySW-Tabs_reset_]',
172
+ logger: lgConfig.logger ?? console,
173
+ debugMode: lgConfig.debugMode ?? false,
174
+ useLogColors: lgConfig.useLogColors ?? false,
175
+ },
176
+ });
177
+ TinySwTabsLayer.#lastIndex++;
178
+ TinySwTabsLayer.#instances.set(TinySwTabsLayer.#lastIndex, this.#tabs);
179
+ this.#key = TinySwTabsLayer.#lastIndex;
180
+ }
181
+ }
182
+ /**
183
+ * A plugin for TinyServiceWorkerEngine that manages a centralized registry of all open website tabs.
184
+ * @type {import('../TinyServiceWorkerEngine.mjs').SwPluginInstaller<TinySwTabsLayer, 'TabManager', '1.0.0', [Partial<DebuggerConstructor>]|[]>} - The plugin installer for the Tab Manager.
185
+ */
186
+ const TinyTabManagerPlugin = (instance, lgConfig = {}) => {
187
+ const engine = instance.engine;
188
+ /**
189
+ * Stores permission settings per client ID.
190
+ * @type {Map<string, {allowFocusTracking: boolean, allowTabClosing: boolean}>}
191
+ */
192
+ const clientPermissions = new Map();
193
+ instance.id = 'TabManager';
194
+ instance.version = '1.0.0';
195
+ instance.description = 'Advanced tab manager.';
196
+ instance.authors = ['JasminDreasond'];
197
+ instance.contributors = ['JasminDreasond'];
198
+ instance.categories = ['tab-manager'];
199
+ instance.tags = ['management', 'consistency'];
200
+ instance.allowedGets = ['getTab'];
201
+ if (!(engine instanceof TinyServiceWorkerEngine)) {
202
+ throw new TypeError('Plugin requires a TinyServiceWorkerEngine instance to function.');
203
+ }
204
+ const layer = new TinySwTabsLayer(lgConfig);
205
+ layer._start(instance, (tabs) => {
206
+ /**
207
+ * Broadcasts the current list of tabs to all connected clients.
208
+ * @returns {Promise<void>}
209
+ */
210
+ const broadcastUpdate = async () => {
211
+ const tabList = {
212
+ count: tabs.size,
213
+ tabs: Array.from(tabs.values()),
214
+ };
215
+ // We use replyToAll to notify all clients that the list has changed.
216
+ await TinyServiceWorkerEngine.replyToAll({
217
+ type: 'tab:list_updated',
218
+ data: tabList,
219
+ });
220
+ };
221
+ /**
222
+ * Compares the in-memory tab registry with the actual browser clients.
223
+ * Removes any tabs that are no longer active in the browser.
224
+ * @returns {Promise<void>}
225
+ */
226
+ const reconcileTabs = async () => {
227
+ const activeClients = await layer.queue.enqueue(() => sw.clients.matchAll());
228
+ const activeIds = new Set(activeClients.map((client) => client.id));
229
+ let ghostFound = false;
230
+ for (const id of tabs.keys()) {
231
+ if (!activeIds.has(id)) {
232
+ tabs.delete(id);
233
+ ghostFound = true;
234
+ }
235
+ }
236
+ if (ghostFound) {
237
+ await layer.persist();
238
+ await broadcastUpdate();
239
+ }
240
+ };
241
+ // 1. Handle Tab Registration (When a new tab opens)
242
+ engine.onApi('tab:register',
243
+ /**
244
+ * Processes registration messages to add new tabs to the registry.
245
+ */ async (msg) => {
246
+ const { data, clientId } = msg;
247
+ if (typeof clientId !== 'string') {
248
+ throw new TypeError('[TinyTabManagerPlugin] tab:register: clientId must be a string.');
249
+ }
250
+ if (typeof data?.url !== 'string' || typeof data?.title !== 'string') {
251
+ throw new TypeError('[TinyTabManagerPlugin] tab:register: data must contain url (string) and title (string).');
252
+ }
253
+ // Deep validation for permissions
254
+ if (data.permissions !== undefined) {
255
+ if (typeof data.permissions.allowFocusTracking !== 'boolean' ||
256
+ typeof data.permissions.allowTabClosing !== 'boolean') {
257
+ throw new TypeError('[TinyTabManagerPlugin] tab:register: data.permissions must contain allowFocusTracking (boolean) and allowTabClosing (boolean).');
258
+ }
259
+ }
260
+ // Store permissions sent by the client
261
+ clientPermissions.set(clientId, data.permissions ?? {
262
+ allowFocusTracking: true,
263
+ allowTabClosing: true,
264
+ });
265
+ // Perform reconciliation to clean up ghosts before adding new entries
266
+ await reconcileTabs();
267
+ tabs.set(clientId, {
268
+ id: clientId,
269
+ url: data.url,
270
+ title: data.title,
271
+ isFocused: data.isFocused,
272
+ data: data.data ?? null, // Capturing the custom cache data
273
+ });
274
+ await layer.persist(); // Persist to IndexedDB
275
+ await broadcastUpdate();
276
+ });
277
+ // 2. Single Tab Closing
278
+ engine.onApi('tab:close_single', async (msg) => {
279
+ if (!msg.data || typeof msg.data.id !== 'string') {
280
+ return { closed: false, reason: 'Invalid message data or missing string ID.' };
281
+ }
282
+ const { id } = msg.data;
283
+ // Check if the client has authorized tab closing
284
+ const permissions = clientPermissions.get(id);
285
+ if (permissions && !permissions.allowTabClosing) {
286
+ return { closed: false, reason: 'Permission denied by client.' };
287
+ }
288
+ const client = await sw.clients.get(id);
289
+ if (client) {
290
+ const response = await engine.emitApi(client, 'tab:close');
291
+ return { closed: !!response?.authorized };
292
+ }
293
+ return { closed: false };
294
+ });
295
+ // 3. Multiple Tab Closing
296
+ engine.onApi('tab:close_multiple', async (msg) => {
297
+ if (!msg.data || !Array.isArray(msg.data.ids)) {
298
+ throw new TypeError('[TinyTabManagerPlugin] tab:close_multiple: ids must be an array.');
299
+ }
300
+ const { ids } = msg.data;
301
+ const results = [];
302
+ for (const id of ids) {
303
+ if (typeof id !== 'string') {
304
+ throw new TypeError('[TinyTabManagerPlugin] tab:close_multiple: invalid ID type in array.');
305
+ }
306
+ const permissions = clientPermissions.get(id);
307
+ if (permissions && !permissions.allowTabClosing) {
308
+ results.push(-1);
309
+ continue;
310
+ }
311
+ const client = await sw.clients.get(id);
312
+ if (client) {
313
+ const response = await engine.emitApi(client, 'tab:close');
314
+ results.push(!!response?.authorized ? 1 : 0);
315
+ }
316
+ else {
317
+ results.push(0);
318
+ }
319
+ }
320
+ return { closed: results };
321
+ });
322
+ // 4. Close All Tabs
323
+ engine.onApi('tab:close_all', async () => {
324
+ const clients = await sw.clients.matchAll();
325
+ for (const client of clients) {
326
+ await engine.emitApi(client, 'tab:close');
327
+ }
328
+ });
329
+ // 5. Handle Tab Unregistration (When a tab is closed)
330
+ engine.onApi('tab:unregister',
331
+ /**
332
+ * Processes unregistration messages to remove tabs from the registry.
333
+ */ async (msg) => {
334
+ const { clientId } = msg;
335
+ if (tabs.has(clientId)) {
336
+ tabs.delete(clientId);
337
+ await layer.persist(); // Persist to IndexedDB
338
+ await broadcastUpdate();
339
+ }
340
+ // Reconcile to ensure state consistency
341
+ await reconcileTabs();
342
+ });
343
+ // 6. Handle Request for current list (Manual polling)
344
+ engine.onApi('tab:get_list',
345
+ /**
346
+ * Listens for requests to retrieve the current list of all registered tabs.
347
+ */ async () => {
348
+ // Ensure we are providing the most up-to-date list possible
349
+ await reconcileTabs();
350
+ // Reply directly to the source of the request
351
+ return { count: tabs.size, tabs: Array.from(tabs.values()) };
352
+ });
353
+ // 7. Handle Request for a specific tab
354
+ engine.onApi('tab:get_tab',
355
+ /**
356
+ * Processes requests to retrieve information for a specific tab by its ID.
357
+ * @returns {Promise<TabInfo|undefined>} - The tab information or null if not found.
358
+ */ async (msg) => {
359
+ if (!msg.data)
360
+ return;
361
+ const { id } = msg.data;
362
+ if (typeof id !== 'string') {
363
+ throw new TypeError('[TinyTabManagerPlugin] tab:get_tab: data must contain id (string).');
364
+ }
365
+ const tab = tabs.get(id);
366
+ // Return a copy to prevent direct mutation of the registry
367
+ return tab ? { ...tab } : undefined;
368
+ });
369
+ });
370
+ return layer;
371
+ };
372
+ export default TinyTabManagerPlugin;
@@ -0,0 +1,180 @@
1
+ 'use strict';
2
+
3
+ var TinySetMapDatabase = require('../../../storage/TinySetMapDatabase.cjs');
4
+ var TinyServiceWorkerEngine = require('../TinyServiceWorkerEngine.cjs');
5
+
6
+ const { TinyPluginLayer } = TinyServiceWorkerEngine;
7
+
8
+ const db = new TinySetMapDatabase.TinySetMapDatabase('tiny-sw-vite-file-detector', [
9
+ {
10
+ create: [
11
+ {
12
+ name: 'logged-urls',
13
+ validate: (value) => typeof value === 'string',
14
+ type: 'set',
15
+ },
16
+ ],
17
+ },
18
+ ]);
19
+
20
+ /**
21
+ * Persistent store of URL strings that already emitted a detection log.
22
+ * Survives service worker restarts by mirroring every write into IndexedDB.
23
+ * @type {TinySetDb<string>}
24
+ */
25
+ const loggedUrls = db.tableSet('logged-urls');
26
+
27
+ /**
28
+ * Configuration options for the ViteFileDetectorPlugin to define which paths should be bypassed.
29
+ * @typedef {Object} ViteFileDetectorOptions
30
+ * @property {(string|RegExp)[]} paths - An array of strings or regular expressions used to identify URLs that should be bypassed.
31
+ * @property {string} srcPath - The base path for the source directory to be included in the bypass list.
32
+ * @property {string} manifestPath - The path to the manifest file to be included in the bypass list.
33
+ * @property {number} maxCachedUrls - Maximum amount of detected URLs kept in the persistent cache. When the limit is reached, the oldest entries are evicted before the new one is written. Use `Infinity` to keep every URL forever.
34
+ */
35
+
36
+ /**
37
+ * Default configuration to maintain backward compatibility.
38
+ * @type {ViteFileDetectorOptions}
39
+ */
40
+ const DEFAULT_OPTIONS = {
41
+ paths: ['/@vite', '/@react', '/node_modules'],
42
+ srcPath: '/src',
43
+ manifestPath: '/manifest.json',
44
+ maxCachedUrls: 1000,
45
+ };
46
+
47
+ /**
48
+ * A plugin for TinyServiceWorkerEngine to detect and bypass Vite-specific files.
49
+ *
50
+ * @type {import('../TinyServiceWorkerEngine.mjs').SwPluginInstaller<InstanceType<typeof TinyPluginLayer>, 'ViteFileDetector', '1.0.0', [Partial<ViteFileDetectorOptions>]|[]>}
51
+ * @throws {TypeError} If the engine is invalid or if the provided options do not match the required schema.
52
+ */
53
+ const ViteFileDetectorPlugin = (instance, options = {}) => {
54
+ const engine = instance.engine;
55
+ instance.id = 'ViteFileDetector';
56
+ instance.version = '1.0.0';
57
+ instance.description = 'Vite File detector.';
58
+ instance.authors = ['JasminDreasond'];
59
+ instance.contributors = ['JasminDreasond'];
60
+ instance.categories = ['framework-validator'];
61
+ instance.tags = ['vite', 'framework', 'validator'];
62
+
63
+ if (!(engine instanceof TinyServiceWorkerEngine)) {
64
+ throw new TypeError('Plugin requires a TinyServiceWorkerEngine instance to function.');
65
+ }
66
+
67
+ // 1. Merge and Validate Options
68
+ /** @type {ViteFileDetectorOptions} */
69
+ const config = { ...DEFAULT_OPTIONS, ...options };
70
+
71
+ if (!Array.isArray(config.paths)) {
72
+ throw new TypeError('The "paths" property in options must be an array.');
73
+ }
74
+
75
+ const paths = [...config.paths, config.srcPath, config.manifestPath];
76
+
77
+ // Deep validation of the paths array elements
78
+ paths.forEach((pattern, index) => {
79
+ const isValidString = typeof pattern === 'string';
80
+ const isValidRegExp = pattern instanceof RegExp;
81
+
82
+ if (!isValidString && !isValidRegExp) {
83
+ throw new TypeError(
84
+ `Invalid type at paths[${index}]: Expected string or RegExp, but received ${typeof pattern}.`,
85
+ );
86
+ }
87
+ });
88
+
89
+ // 2. Validate the cache limit
90
+ if (typeof config.maxCachedUrls !== 'number') {
91
+ throw new TypeError(
92
+ `The "maxCachedUrls" option must be a number, but received ${typeof config.maxCachedUrls}.`,
93
+ );
94
+ }
95
+
96
+ if (
97
+ config.maxCachedUrls !== Infinity &&
98
+ (!Number.isInteger(config.maxCachedUrls) || config.maxCachedUrls < 1)
99
+ ) {
100
+ throw new RangeError(
101
+ `The "maxCachedUrls" option must be a positive integer or Infinity, but received ${config.maxCachedUrls}.`,
102
+ );
103
+ }
104
+
105
+ const { maxCachedUrls } = config;
106
+
107
+ // 3. Implementation
108
+ // @ts-ignore
109
+ if (undefined.DEV) {
110
+ /**
111
+ * Tail of the detection queue.
112
+ *
113
+ * Every cache mutation is chained here because `TinySetDb` only makes each
114
+ * individual call atomic. Without this queue, two detections that resolve in
115
+ * the same tick would both read the same `size` and both decide to insert,
116
+ * letting the cache grow past `maxCachedUrls`.
117
+ * @type {Promise<void>}
118
+ */
119
+ let detectionQueue = Promise.resolve();
120
+
121
+ /**
122
+ * Runs a detection task after every previously queued task has settled.
123
+ * @param {() => Promise<void>} task - The task that touches the cache.
124
+ * @returns {Promise<void>} Resolves when the task settles.
125
+ */
126
+ const enqueueDetection = (task) => {
127
+ const result = detectionQueue.then(task);
128
+ detectionQueue = result.catch(() => undefined);
129
+ return result;
130
+ };
131
+
132
+ /**
133
+ * Drops the oldest URLs until a single new entry fits inside the limit.
134
+ *
135
+ * The `+ 1` reserves the slot for the value that is about to be inserted,
136
+ * so the cache always ends up with exactly `maxCachedUrls` entries.
137
+ * @returns {Promise<void>} Resolves once the cache is below the limit.
138
+ */
139
+ const evictOldestUrls = async () => {
140
+ const overflow = loggedUrls.size - maxCachedUrls + 1;
141
+ if (overflow <= 0) return;
142
+
143
+ const snapshot = await loggedUrls.toArray();
144
+ /** @type {Promise<any>[]} */
145
+ const promises = [];
146
+ for (let index = 0; index < overflow; index += 1) {
147
+ promises.push(loggedUrls.delete(snapshot[index]));
148
+ }
149
+ await Promise.all(promises);
150
+ };
151
+
152
+ engine.addFetchGlobalListener('ViteFileDetectorPlugin', ({ url }, response) => {
153
+ const isBypassed = paths.some((pattern) => {
154
+ if (pattern instanceof RegExp) return pattern.test(url.pathname);
155
+ return url.pathname.startsWith(pattern);
156
+ });
157
+
158
+ if (!isBypassed) return;
159
+
160
+ response.continueCheck = false;
161
+ response.needValidation = false;
162
+ response.code = 200;
163
+
164
+ const cacheKey = url.toString();
165
+
166
+ enqueueDetection(async () => {
167
+ if (await loggedUrls.has(cacheKey)) return;
168
+ await evictOldestUrls();
169
+ await loggedUrls.add(cacheKey);
170
+ instance.log('warn', `File detected: ${cacheKey}`);
171
+ }).catch((error) => {
172
+ instance.log('error', `Failed to cache the detected URL "${cacheKey}": ${error.message}`);
173
+ });
174
+ });
175
+ }
176
+
177
+ return new TinyPluginLayer();
178
+ };
179
+
180
+ module.exports = ViteFileDetectorPlugin;
@@ -0,0 +1,28 @@
1
+ declare const TinyPluginLayer: typeof import("../../../plugin/TinyPlugin.mjs").TinyPluginLayer;
2
+ export type ViteFileDetectorOptions = {
3
+ /**
4
+ * - An array of strings or regular expressions used to identify URLs that should be bypassed.
5
+ */
6
+ paths: (string | RegExp)[];
7
+ /**
8
+ * - The base path for the source directory to be included in the bypass list.
9
+ */
10
+ srcPath: string;
11
+ /**
12
+ * - The path to the manifest file to be included in the bypass list.
13
+ */
14
+ manifestPath: string;
15
+ /**
16
+ * - Maximum amount of detected URLs kept in the persistent cache. When the limit is reached, the oldest entries are evicted before the new one is written. Use `Infinity` to keep every URL forever.
17
+ */
18
+ maxCachedUrls: number;
19
+ };
20
+ /**
21
+ * A plugin for TinyServiceWorkerEngine to detect and bypass Vite-specific files.
22
+ *
23
+ * @type {import('../TinyServiceWorkerEngine.mjs').SwPluginInstaller<InstanceType<typeof TinyPluginLayer>, 'ViteFileDetector', '1.0.0', [Partial<ViteFileDetectorOptions>]|[]>}
24
+ * @throws {TypeError} If the engine is invalid or if the provided options do not match the required schema.
25
+ */
26
+ declare const ViteFileDetectorPlugin: import('../TinyServiceWorkerEngine.mjs').SwPluginInstaller<InstanceType<typeof TinyPluginLayer>, 'ViteFileDetector', '1.0.0', [Partial<ViteFileDetectorOptions>] | []>;
27
+ export default ViteFileDetectorPlugin;
28
+ //# sourceMappingURL=ViteFileDetector.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViteFileDetector.d.mts","sourceRoot":"","sources":["../../../../../../../src/v1/libs/sw/service/plugins/ViteFileDetector.mjs"],"names":[],"mappings":"AAGA,QAAA,MAAQ,eAAe,iEAA4B,CAAC;AAuBjD,YAAkB,uBAAuB,GACzC;;;;IAA8B,KAAK,EAAxB,CAAC,MAAM,GAAC,MAAM,CAAC,EAAE,CAC5B;;;;IAAmB,OAAO,EAAf,MAAM,CACjB;;;;IAAmB,YAAY,EAApB,MAAM,CACjB;;;;IAAmB,aAAa,EAArB,MAAM,CACnB;CAAA,CAAA;AAaD;;;;;GAKG;AACH,QAAA,MAAM,sBAAsB,EAHlB,OAAO,gCAAgC,EAAE,iBAAiB,CAAC,YAAY,CAAC,OAAO,eAAe,CAAC,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,GAAC,EAAE,CAgI5K,CAAC;eAEa,sBAAsB"}