tiny-essentials 1.28.19 → 1.29.1

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 (556) 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/changelog/1/29/1.md +11 -0
  5. package/dist/v1/ColorSafeStringify.min.js +1 -1
  6. package/dist/v1/TinyAdvancedRaffle.min.js +1 -1
  7. package/dist/v1/TinyAfterScrollWatcher.min.js +1 -1
  8. package/dist/v1/TinyAnalogClock.min.js +1 -1
  9. package/dist/v1/TinyArrayComparator.min.js +1 -1
  10. package/dist/v1/TinyArrayPaginator.min.js +1 -1
  11. package/dist/v1/TinyBasicsEs.min.js +1 -1
  12. package/dist/v1/TinyBrowserMonitor.min.js +1 -0
  13. package/dist/v1/TinyClassManager.min.js +1 -1
  14. package/dist/v1/TinyClipboard.min.js +1 -1
  15. package/dist/v1/TinyCloner.min.js +1 -0
  16. package/dist/v1/TinyColorConverter.min.js +1 -1
  17. package/dist/v1/TinyColorValidator.min.js +1 -1
  18. package/dist/v1/TinyCookieConsent.min.js +1 -1
  19. package/dist/v1/TinyDayNightCycle.min.js +1 -1
  20. package/dist/v1/TinyDebugger.min.js +1 -1
  21. package/dist/v1/TinyDomReadyManager.min.js +1 -1
  22. package/dist/v1/TinyDragDropDetector.min.js +1 -1
  23. package/dist/v1/TinyDragger.min.js +1 -1
  24. package/dist/v1/TinyElementObserver.min.js +1 -1
  25. package/dist/v1/TinyEssentials.min.js +1 -1
  26. package/dist/v1/TinyGamepad.min.js +1 -1
  27. package/dist/v1/TinyHtml.min.js +1 -1
  28. package/dist/v1/TinyHtmlTagRegexBuilder.min.js +1 -0
  29. package/dist/v1/TinyHttpResponseRegistry.min.js +1 -0
  30. package/dist/v1/TinyI18.min.js +1 -1
  31. package/dist/v1/TinyIframeEvents.min.js +1 -1
  32. package/dist/v1/TinyInventory.min.js +1 -1
  33. package/dist/v1/TinyInventoryTrader.min.js +1 -1
  34. package/dist/v1/TinyLevelUp.min.js +1 -1
  35. package/dist/v1/TinyLoadingScreen.min.js +1 -1
  36. package/dist/v1/TinyLocalStorage.min.js +1 -1
  37. package/dist/v1/TinyMaInSys.min.js +1 -1
  38. package/dist/v1/TinyMapCache.min.js +1 -0
  39. package/dist/v1/TinyMediaPlayer.min.js +1 -1
  40. package/dist/v1/TinyNeedBar.min.js +1 -1
  41. package/dist/v1/TinyNewWinEvents.min.js +1 -1
  42. package/dist/v1/TinyNotificationAdapter.min.js +1 -0
  43. package/dist/v1/TinyNotifications.min.js +1 -1
  44. package/dist/v1/TinyNotifyCenter.min.js +1 -1
  45. package/dist/v1/TinyOPFSFileSystem.min.js +1 -0
  46. package/dist/v1/TinyPasswordValidator.min.js +1 -0
  47. package/dist/v1/TinyPluginPackage.min.js +1 -0
  48. package/dist/v1/TinyPromiseQueue.min.js +1 -1
  49. package/dist/v1/TinyPushManager.min.js +1 -0
  50. package/dist/v1/TinyPushPayload.min.js +1 -0
  51. package/dist/v1/TinyPushRouter.min.js +1 -0
  52. package/dist/v1/TinyRadioFm.min.js +1 -1
  53. package/dist/v1/TinyRateLimiter.min.js +1 -1
  54. package/dist/v1/TinyRegexEs.min.js +1 -0
  55. package/dist/v1/TinyRouter.min.js +1 -0
  56. package/dist/v1/TinyServiceWorker.min.js +1 -0
  57. package/dist/v1/TinyServiceWorkerEngine.min.js +1 -0
  58. package/dist/v1/TinySetMapPackage.min.js +1 -0
  59. package/dist/v1/TinySimpleDice.min.js +1 -1
  60. package/dist/v1/TinySmartScroller.min.js +1 -1
  61. package/dist/v1/TinyStorageBucketFileSystem.min.js +1 -0
  62. package/dist/v1/TinyTextDiffer.min.js +1 -1
  63. package/dist/v1/TinyTextRangeEditor.min.js +1 -1
  64. package/dist/v1/TinyTextarea.min.js +1 -1
  65. package/dist/v1/TinyThrottledApi.min.js +1 -0
  66. package/dist/v1/TinyTimeout.min.js +1 -1
  67. package/dist/v1/TinyToastNotify.min.js +1 -1
  68. package/dist/v1/TinyUploadClicker.min.js +1 -1
  69. package/dist/v1/TinyUriParser.min.js +1 -0
  70. package/dist/v1/TinyVersion.min.js +1 -0
  71. package/dist/v1/TinyWebWorker.min.js +1 -0
  72. package/dist/v1/TinyWebWorkerEngine.min.js +1 -0
  73. package/dist/v1/UltraRandomMsgGen.min.js +1 -1
  74. package/dist/v1/basics/array.cjs +2 -2
  75. package/dist/v1/basics/array.d.mts +2 -0
  76. package/dist/v1/basics/array.d.mts.map +1 -1
  77. package/dist/v1/basics/array.mjs +2 -1
  78. package/dist/v1/basics/browserDetector.cjs +37 -12
  79. package/dist/v1/basics/browserDetector.d.mts +8 -0
  80. package/dist/v1/basics/browserDetector.d.mts.map +1 -1
  81. package/dist/v1/basics/browserDetector.mjs +32 -13
  82. package/dist/v1/basics/crypto.cjs +23 -0
  83. package/dist/v1/basics/crypto.d.mts +10 -0
  84. package/dist/v1/basics/crypto.d.mts.map +1 -0
  85. package/dist/v1/basics/crypto.mjs +18 -0
  86. package/dist/v1/basics/html.cjs +0 -3
  87. package/dist/v1/basics/html.d.mts.map +1 -1
  88. package/dist/v1/basics/html.mjs +0 -2
  89. package/dist/v1/basics/index.cjs +8 -1
  90. package/dist/v1/basics/index.d.mts +6 -5
  91. package/dist/v1/basics/index.d.mts.map +1 -1
  92. package/dist/v1/basics/index.mjs +6 -5
  93. package/dist/v1/basics/objChecker.cjs +88 -0
  94. package/dist/v1/basics/objChecker.d.mts +26 -0
  95. package/dist/v1/basics/objChecker.d.mts.map +1 -1
  96. package/dist/v1/basics/objChecker.mjs +74 -0
  97. package/dist/v1/basics/objFilter.cjs +234 -93
  98. package/dist/v1/basics/objFilter.d.mts +96 -22
  99. package/dist/v1/basics/objFilter.d.mts.map +1 -1
  100. package/dist/v1/basics/objFilter.mjs +216 -92
  101. package/dist/v1/basics/promiseUtils.cjs +48 -12
  102. package/dist/v1/basics/promiseUtils.d.mts +45 -12
  103. package/dist/v1/basics/promiseUtils.d.mts.map +1 -1
  104. package/dist/v1/basics/promiseUtils.mjs +47 -12
  105. package/dist/v1/basics/text.cjs +0 -12
  106. package/dist/v1/basics/text.d.mts +0 -10
  107. package/dist/v1/basics/text.d.mts.map +1 -1
  108. package/dist/v1/basics/text.mjs +0 -10
  109. package/dist/v1/index.cjs +88 -3
  110. package/dist/v1/index.d.mts +31 -6
  111. package/dist/v1/index.d.mts.map +1 -1
  112. package/dist/v1/index.mjs +32 -7
  113. package/dist/v1/jsdoc/EventEmitter.cjs +4 -0
  114. package/dist/v1/jsdoc/EventEmitter.d.mts +33 -0
  115. package/dist/v1/jsdoc/EventEmitter.d.mts.map +1 -0
  116. package/dist/v1/jsdoc/EventEmitter.mjs +18 -0
  117. package/dist/v1/libs/array/TinyArrayComparator.cjs +240 -25
  118. package/dist/v1/libs/array/TinyArrayComparator.d.mts +130 -22
  119. package/dist/v1/libs/array/TinyArrayComparator.d.mts.map +1 -1
  120. package/dist/v1/libs/array/TinyArrayComparator.mjs +210 -24
  121. package/dist/v1/libs/fs/constants.cjs +74 -0
  122. package/dist/v1/libs/fs/constants.d.mts +22 -0
  123. package/dist/v1/libs/fs/constants.d.mts.map +1 -0
  124. package/dist/v1/libs/fs/constants.mjs +53 -0
  125. package/dist/v1/libs/fs/encoding.cjs +118 -0
  126. package/dist/v1/libs/fs/encoding.d.mts +50 -0
  127. package/dist/v1/libs/fs/encoding.d.mts.map +1 -0
  128. package/dist/v1/libs/fs/encoding.mjs +102 -0
  129. package/dist/v1/libs/fs/error.cjs +188 -0
  130. package/dist/v1/libs/fs/error.d.mts +105 -0
  131. package/dist/v1/libs/fs/error.d.mts.map +1 -0
  132. package/dist/v1/libs/fs/error.mjs +158 -0
  133. package/dist/v1/libs/fs/handle.cjs +121 -0
  134. package/dist/v1/libs/fs/handle.d.mts +56 -0
  135. package/dist/v1/libs/fs/handle.d.mts.map +1 -0
  136. package/dist/v1/libs/fs/handle.mjs +100 -0
  137. package/dist/v1/libs/fs/index.cjs +700 -0
  138. package/dist/v1/libs/fs/index.d.mts +377 -0
  139. package/dist/v1/libs/fs/index.d.mts.map +1 -0
  140. package/dist/v1/libs/fs/index.mjs +630 -0
  141. package/dist/v1/libs/fs/path.cjs +234 -0
  142. package/dist/v1/libs/fs/path.d.mts +176 -0
  143. package/dist/v1/libs/fs/path.d.mts.map +1 -0
  144. package/dist/v1/libs/fs/path.mjs +197 -0
  145. package/dist/v1/libs/fs/plugins/OPFS/StorageBucket.cjs +202 -0
  146. package/dist/v1/libs/fs/plugins/OPFS/StorageBucket.d.mts +121 -0
  147. package/dist/v1/libs/fs/plugins/OPFS/StorageBucket.d.mts.map +1 -0
  148. package/dist/v1/libs/fs/plugins/OPFS/StorageBucket.mjs +172 -0
  149. package/dist/v1/libs/fs/plugins/OPFS/index.cjs +334 -0
  150. package/dist/v1/libs/fs/plugins/OPFS/index.d.mts +98 -0
  151. package/dist/v1/libs/fs/plugins/OPFS/index.d.mts.map +1 -0
  152. package/dist/v1/libs/fs/plugins/OPFS/index.mjs +300 -0
  153. package/dist/v1/libs/fs/stats.cjs +245 -0
  154. package/dist/v1/libs/fs/stats.d.mts +226 -0
  155. package/dist/v1/libs/fs/stats.d.mts.map +1 -0
  156. package/dist/v1/libs/fs/stats.mjs +197 -0
  157. package/dist/v1/libs/html/events/TinyIframeEvents.cjs +10 -1
  158. package/dist/v1/libs/html/events/TinyIframeEvents.d.mts +9 -2
  159. package/dist/v1/libs/html/events/TinyIframeEvents.d.mts.map +1 -1
  160. package/dist/v1/libs/html/events/TinyIframeEvents.mjs +8 -1
  161. package/dist/v1/libs/html/events/TinyNewWinEvents.cjs +14 -3
  162. package/dist/v1/libs/html/events/TinyNewWinEvents.d.mts +21 -5
  163. package/dist/v1/libs/html/events/TinyNewWinEvents.d.mts.map +1 -1
  164. package/dist/v1/libs/html/events/TinyNewWinEvents.mjs +12 -3
  165. package/dist/v1/libs/html/scroll/TinySmartScroller.cjs +13 -1
  166. package/dist/v1/libs/html/scroll/TinySmartScroller.d.mts +29 -2
  167. package/dist/v1/libs/html/scroll/TinySmartScroller.d.mts.map +1 -1
  168. package/dist/v1/libs/html/scroll/TinySmartScroller.mjs +11 -1
  169. package/dist/v1/libs/math/TinyAdvancedRaffle.cjs +13 -1
  170. package/dist/v1/libs/math/TinyAdvancedRaffle.d.mts +32 -2
  171. package/dist/v1/libs/math/TinyAdvancedRaffle.d.mts.map +1 -1
  172. package/dist/v1/libs/math/TinyAdvancedRaffle.mjs +11 -1
  173. package/dist/v1/libs/math/TinyTimeout.cjs +0 -14
  174. package/dist/v1/libs/math/TinyTimeout.d.mts +0 -11
  175. package/dist/v1/libs/math/TinyTimeout.d.mts.map +1 -1
  176. package/dist/v1/libs/math/TinyTimeout.mjs +0 -13
  177. package/dist/v1/libs/media/TinyMediaPlayer/index.cjs +25 -1
  178. package/dist/v1/libs/media/TinyMediaPlayer/index.d.mts +35 -2
  179. package/dist/v1/libs/media/TinyMediaPlayer/index.d.mts.map +1 -1
  180. package/dist/v1/libs/media/TinyMediaPlayer/index.mjs +23 -1
  181. package/dist/v1/libs/media/TinyMediaPlayer.cjs +2 -2
  182. package/dist/v1/libs/media/TinyMediaPlayer.d.mts +2 -2
  183. package/dist/v1/libs/media/TinyMediaPlayer.d.mts.map +1 -1
  184. package/dist/v1/libs/media/TinyMediaPlayer.mjs +2 -2
  185. package/dist/v1/libs/media/TinyRadioFm.cjs +19 -1
  186. package/dist/v1/libs/media/TinyRadioFm.d.mts +78 -2
  187. package/dist/v1/libs/media/TinyRadioFm.d.mts.map +1 -1
  188. package/dist/v1/libs/media/TinyRadioFm.mjs +17 -1
  189. package/dist/v1/libs/plugin/TinyPlugin.cjs +1630 -0
  190. package/dist/v1/libs/plugin/TinyPlugin.d.mts +753 -0
  191. package/dist/v1/libs/plugin/TinyPlugin.d.mts.map +1 -0
  192. package/dist/v1/libs/plugin/TinyPlugin.mjs +1376 -0
  193. package/dist/v1/libs/plugin/TinyVersion.cjs +204 -0
  194. package/dist/v1/libs/plugin/TinyVersion.d.mts +70 -0
  195. package/dist/v1/libs/plugin/TinyVersion.d.mts.map +1 -0
  196. package/dist/v1/libs/plugin/TinyVersion.mjs +179 -0
  197. package/dist/v1/libs/router/TinyRouter.cjs +661 -0
  198. package/dist/v1/libs/router/TinyRouter.d.mts +320 -0
  199. package/dist/v1/libs/router/TinyRouter.d.mts.map +1 -0
  200. package/dist/v1/libs/router/TinyRouter.mjs +572 -0
  201. package/dist/v1/libs/storage/TinyLocalStorage.cjs +20 -1
  202. package/dist/v1/libs/storage/TinyLocalStorage.d.mts +64 -2
  203. package/dist/v1/libs/storage/TinyLocalStorage.d.mts.map +1 -1
  204. package/dist/v1/libs/storage/TinyLocalStorage.mjs +18 -1
  205. package/dist/v1/libs/storage/TinyMapCache.cjs +373 -0
  206. package/dist/v1/libs/storage/TinyMapCache.d.mts +274 -0
  207. package/dist/v1/libs/storage/TinyMapCache.d.mts.map +1 -0
  208. package/dist/v1/libs/storage/TinyMapCache.mjs +333 -0
  209. package/dist/v1/libs/storage/TinySetMapDatabase.cjs +1167 -0
  210. package/dist/v1/libs/storage/TinySetMapDatabase.d.mts +603 -0
  211. package/dist/v1/libs/storage/TinySetMapDatabase.d.mts.map +1 -0
  212. package/dist/v1/libs/storage/TinySetMapDatabase.mjs +1059 -0
  213. package/dist/v1/libs/sw/browser/TinyNotificationAdapter.cjs +126 -0
  214. package/dist/v1/libs/sw/browser/TinyNotificationAdapter.d.mts +132 -0
  215. package/dist/v1/libs/sw/browser/TinyNotificationAdapter.d.mts.map +1 -0
  216. package/dist/v1/libs/sw/browser/TinyNotificationAdapter.mjs +109 -0
  217. package/dist/v1/libs/sw/browser/TinyPushManager.cjs +310 -0
  218. package/dist/v1/libs/sw/browser/TinyPushManager.d.mts +168 -0
  219. package/dist/v1/libs/sw/browser/TinyPushManager.d.mts.map +1 -0
  220. package/dist/v1/libs/sw/browser/TinyPushManager.mjs +264 -0
  221. package/dist/v1/libs/sw/browser/TinyServiceWorker.cjs +1060 -0
  222. package/dist/v1/libs/sw/browser/TinyServiceWorker.d.mts +348 -0
  223. package/dist/v1/libs/sw/browser/TinyServiceWorker.d.mts.map +1 -0
  224. package/dist/v1/libs/sw/browser/TinyServiceWorker.mjs +933 -0
  225. package/dist/v1/libs/sw/browser/plugins/TabManager.cjs +315 -0
  226. package/dist/v1/libs/sw/browser/plugins/TabManager.d.mts +178 -0
  227. package/dist/v1/libs/sw/browser/plugins/TabManager.d.mts.map +1 -0
  228. package/dist/v1/libs/sw/browser/plugins/TabManager.mjs +274 -0
  229. package/dist/v1/libs/sw/browser/utils.cjs +28 -0
  230. package/dist/v1/libs/sw/browser/utils.d.mts +8 -0
  231. package/dist/v1/libs/sw/browser/utils.d.mts.map +1 -0
  232. package/dist/v1/libs/sw/browser/utils.mjs +21 -0
  233. package/dist/v1/libs/sw/service/TinyPushRouter.cjs +222 -0
  234. package/dist/v1/libs/sw/service/TinyPushRouter.d.mts +138 -0
  235. package/dist/v1/libs/sw/service/TinyPushRouter.d.mts.map +1 -0
  236. package/dist/v1/libs/sw/service/TinyPushRouter.mjs +201 -0
  237. package/dist/v1/libs/sw/service/TinyServiceWorkerEngine.cjs +3016 -0
  238. package/dist/v1/libs/sw/service/TinyServiceWorkerEngine.d.mts +993 -0
  239. package/dist/v1/libs/sw/service/TinyServiceWorkerEngine.d.mts.map +1 -0
  240. package/dist/v1/libs/sw/service/TinyServiceWorkerEngine.mjs +2558 -0
  241. package/dist/v1/libs/sw/service/plugins/GlobBypassPlugin.cjs +88 -0
  242. package/dist/v1/libs/sw/service/plugins/GlobBypassPlugin.d.mts +32 -0
  243. package/dist/v1/libs/sw/service/plugins/GlobBypassPlugin.d.mts.map +1 -0
  244. package/dist/v1/libs/sw/service/plugins/GlobBypassPlugin.mjs +69 -0
  245. package/dist/v1/libs/sw/service/plugins/GlobCachePlugin.cjs +112 -0
  246. package/dist/v1/libs/sw/service/plugins/GlobCachePlugin.d.mts +31 -0
  247. package/dist/v1/libs/sw/service/plugins/GlobCachePlugin.d.mts.map +1 -0
  248. package/dist/v1/libs/sw/service/plugins/GlobCachePlugin.mjs +91 -0
  249. package/dist/v1/libs/sw/service/plugins/Ping.cjs +32 -0
  250. package/dist/v1/libs/sw/service/plugins/Ping.d.mts +9 -0
  251. package/dist/v1/libs/sw/service/plugins/Ping.d.mts.map +1 -0
  252. package/dist/v1/libs/sw/service/plugins/Ping.mjs +25 -0
  253. package/dist/v1/libs/sw/service/plugins/TabManager.cjs +457 -0
  254. package/dist/v1/libs/sw/service/plugins/TabManager.d.mts +91 -0
  255. package/dist/v1/libs/sw/service/plugins/TabManager.d.mts.map +1 -0
  256. package/dist/v1/libs/sw/service/plugins/TabManager.mjs +372 -0
  257. package/dist/v1/libs/sw/service/plugins/ViteFileDetector.cjs +180 -0
  258. package/dist/v1/libs/sw/service/plugins/ViteFileDetector.d.mts +28 -0
  259. package/dist/v1/libs/sw/service/plugins/ViteFileDetector.d.mts.map +1 -0
  260. package/dist/v1/libs/sw/service/plugins/ViteFileDetector.mjs +148 -0
  261. package/dist/v1/libs/sw/service/shared/TinyPushPayload.cjs +199 -0
  262. package/dist/v1/libs/sw/service/shared/TinyPushPayload.d.mts +80 -0
  263. package/dist/v1/libs/sw/service/shared/TinyPushPayload.d.mts.map +1 -0
  264. package/dist/v1/libs/sw/service/shared/TinyPushPayload.mjs +174 -0
  265. package/dist/v1/libs/sw/utils.cjs +57 -0
  266. package/dist/v1/libs/sw/utils.d.mts +173 -0
  267. package/dist/v1/libs/sw/utils.d.mts.map +1 -0
  268. package/dist/v1/libs/sw/utils.mjs +50 -0
  269. package/dist/v1/libs/text/TinyI18/Browser-NON-DOM.cjs +57 -0
  270. package/dist/v1/libs/text/TinyI18/Browser-NON-DOM.d.mts +39 -0
  271. package/dist/v1/libs/text/TinyI18/Browser-NON-DOM.d.mts.map +1 -0
  272. package/dist/v1/libs/text/TinyI18/Browser-NON-DOM.mjs +48 -0
  273. package/dist/v1/libs/text/TinyI18/Browser.cjs +64 -0
  274. package/dist/v1/libs/text/TinyI18/Browser.d.mts +47 -0
  275. package/dist/v1/libs/text/TinyI18/Browser.d.mts.map +1 -0
  276. package/dist/v1/libs/text/TinyI18/Browser.mjs +57 -0
  277. package/dist/v1/libs/text/TinyI18/Node.cjs +49 -0
  278. package/dist/v1/libs/text/TinyI18/Node.d.mts +38 -0
  279. package/dist/v1/libs/text/TinyI18/Node.d.mts.map +1 -0
  280. package/dist/v1/libs/text/TinyI18/Node.mjs +43 -0
  281. package/dist/v1/libs/text/TinyI18/browser-utils.cjs +17 -0
  282. package/dist/v1/libs/text/TinyI18/browser-utils.d.mts +8 -0
  283. package/dist/v1/libs/text/TinyI18/browser-utils.d.mts.map +1 -0
  284. package/dist/v1/libs/text/TinyI18/browser-utils.mjs +13 -0
  285. package/dist/v1/libs/text/{TinyI18.cjs → TinyI18/index.cjs} +205 -104
  286. package/dist/v1/libs/text/{TinyI18.d.mts → TinyI18/index.d.mts} +141 -92
  287. package/dist/v1/libs/text/TinyI18/index.d.mts.map +1 -0
  288. package/dist/v1/libs/text/{TinyI18.mjs → TinyI18/index.mjs} +195 -101
  289. package/dist/v1/libs/tools/TinyBrowserMonitor.cjs +1088 -0
  290. package/dist/v1/libs/tools/TinyBrowserMonitor.d.mts +621 -0
  291. package/dist/v1/libs/tools/TinyBrowserMonitor.d.mts.map +1 -0
  292. package/dist/v1/libs/tools/TinyBrowserMonitor.mjs +940 -0
  293. package/dist/v1/libs/tools/TinyDebugger.cjs +180 -19
  294. package/dist/v1/libs/tools/TinyDebugger.d.mts +220 -24
  295. package/dist/v1/libs/tools/TinyDebugger.d.mts.map +1 -1
  296. package/dist/v1/libs/tools/TinyDebugger.mjs +161 -19
  297. package/dist/v1/libs/tools/TinyHtmlTagRegexBuilder.cjs +256 -0
  298. package/dist/v1/libs/tools/TinyHtmlTagRegexBuilder.d.mts +125 -0
  299. package/dist/v1/libs/tools/TinyHtmlTagRegexBuilder.d.mts.map +1 -0
  300. package/dist/v1/libs/tools/TinyHtmlTagRegexBuilder.mjs +223 -0
  301. package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser-NON-DOM.cjs +23 -0
  302. package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser-NON-DOM.d.mts +17 -0
  303. package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser-NON-DOM.d.mts.map +1 -0
  304. package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser-NON-DOM.mjs +19 -0
  305. package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser.cjs +23 -0
  306. package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser.d.mts +17 -0
  307. package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser.d.mts.map +1 -0
  308. package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser.mjs +19 -0
  309. package/dist/v1/libs/tools/TinyHttpResponseRegistry/EmptyRequestCodes.cjs +390 -0
  310. package/dist/v1/libs/tools/TinyHttpResponseRegistry/EmptyRequestCodes.d.mts +9 -0
  311. package/dist/v1/libs/tools/TinyHttpResponseRegistry/EmptyRequestCodes.d.mts.map +1 -0
  312. package/dist/v1/libs/tools/TinyHttpResponseRegistry/EmptyRequestCodes.mjs +387 -0
  313. package/dist/v1/libs/tools/TinyHttpResponseRegistry/JsDoc.cjs +2 -0
  314. package/dist/v1/libs/tools/TinyHttpResponseRegistry/JsDoc.d.mts +27 -0
  315. package/dist/v1/libs/tools/TinyHttpResponseRegistry/JsDoc.d.mts.map +1 -0
  316. package/dist/v1/libs/tools/TinyHttpResponseRegistry/JsDoc.mjs +12 -0
  317. package/dist/v1/libs/tools/TinyHttpResponseRegistry/MozillaRequestCodes/LICENSE +53 -0
  318. package/dist/v1/libs/tools/TinyHttpResponseRegistry/MozillaRequestCodes/index.cjs +405 -0
  319. package/dist/v1/libs/tools/TinyHttpResponseRegistry/MozillaRequestCodes/index.d.mts +34 -0
  320. package/dist/v1/libs/tools/TinyHttpResponseRegistry/MozillaRequestCodes/index.d.mts.map +1 -0
  321. package/dist/v1/libs/tools/TinyHttpResponseRegistry/MozillaRequestCodes/index.mjs +342 -0
  322. package/dist/v1/libs/tools/TinyHttpResponseRegistry/Node.cjs +23 -0
  323. package/dist/v1/libs/tools/TinyHttpResponseRegistry/Node.d.mts +17 -0
  324. package/dist/v1/libs/tools/TinyHttpResponseRegistry/Node.d.mts.map +1 -0
  325. package/dist/v1/libs/tools/TinyHttpResponseRegistry/Node.mjs +19 -0
  326. package/dist/v1/libs/tools/TinyHttpResponseRegistry/RequestCodes.cjs +327 -0
  327. package/dist/v1/libs/tools/TinyHttpResponseRegistry/RequestCodes.d.mts +9 -0
  328. package/dist/v1/libs/tools/TinyHttpResponseRegistry/RequestCodes.d.mts.map +1 -0
  329. package/dist/v1/libs/tools/TinyHttpResponseRegistry/RequestCodes.mjs +324 -0
  330. package/dist/v1/libs/tools/TinyHttpResponseRegistry/index.cjs +268 -0
  331. package/dist/v1/libs/tools/TinyHttpResponseRegistry/index.d.mts +107 -0
  332. package/dist/v1/libs/tools/TinyHttpResponseRegistry/index.d.mts.map +1 -0
  333. package/dist/v1/libs/tools/TinyHttpResponseRegistry/index.mjs +238 -0
  334. package/dist/v1/libs/tools/TinyPasswordValidator.cjs +491 -0
  335. package/dist/v1/libs/tools/TinyPasswordValidator.d.mts +246 -0
  336. package/dist/v1/libs/tools/TinyPasswordValidator.d.mts.map +1 -0
  337. package/dist/v1/libs/tools/TinyPasswordValidator.mjs +434 -0
  338. package/dist/v1/libs/tools/TinyPkgExportValidator.cjs +48 -0
  339. package/dist/v1/libs/tools/TinyPkgExportValidator.d.mts +14 -0
  340. package/dist/v1/libs/tools/TinyPkgExportValidator.d.mts.map +1 -1
  341. package/dist/v1/libs/tools/TinyPkgExportValidator.mjs +44 -0
  342. package/dist/v1/libs/tools/TinySiteMap.cjs +1029 -0
  343. package/dist/v1/libs/tools/TinySiteMap.d.mts +429 -0
  344. package/dist/v1/libs/tools/TinySiteMap.d.mts.map +1 -0
  345. package/dist/v1/libs/tools/TinySiteMap.mjs +910 -0
  346. package/dist/v1/libs/tools/TinySiteMapStream.cjs +121 -0
  347. package/dist/v1/libs/tools/TinySiteMapStream.d.mts +51 -0
  348. package/dist/v1/libs/tools/TinySiteMapStream.d.mts.map +1 -0
  349. package/dist/v1/libs/tools/TinySiteMapStream.mjs +85 -0
  350. package/dist/v1/libs/tools/TinyURLSecurityVerifier.cjs +444 -0
  351. package/dist/v1/libs/tools/TinyURLSecurityVerifier.d.mts +217 -0
  352. package/dist/v1/libs/tools/TinyURLSecurityVerifier.d.mts.map +1 -0
  353. package/dist/v1/libs/tools/TinyURLSecurityVerifier.mjs +394 -0
  354. package/dist/v1/libs/tools/TinyUriParser/BlueSky.cjs +613 -0
  355. package/dist/v1/libs/tools/TinyUriParser/BlueSky.d.mts +152 -0
  356. package/dist/v1/libs/tools/TinyUriParser/BlueSky.d.mts.map +1 -0
  357. package/dist/v1/libs/tools/TinyUriParser/BlueSky.mjs +527 -0
  358. package/dist/v1/libs/tools/TinyUriParser/Discord.cjs +1119 -0
  359. package/dist/v1/libs/tools/TinyUriParser/Discord.d.mts +306 -0
  360. package/dist/v1/libs/tools/TinyUriParser/Discord.d.mts.map +1 -0
  361. package/dist/v1/libs/tools/TinyUriParser/Discord.mjs +968 -0
  362. package/dist/v1/libs/tools/TinyUriParser/MatrixProtocol.cjs +469 -0
  363. package/dist/v1/libs/tools/TinyUriParser/MatrixProtocol.d.mts +80 -0
  364. package/dist/v1/libs/tools/TinyUriParser/MatrixProtocol.d.mts.map +1 -0
  365. package/dist/v1/libs/tools/TinyUriParser/MatrixProtocol.mjs +379 -0
  366. package/dist/v1/libs/tools/TinyUriParser.cjs +217 -0
  367. package/dist/v1/libs/tools/TinyUriParser.d.mts +109 -0
  368. package/dist/v1/libs/tools/TinyUriParser.d.mts.map +1 -0
  369. package/dist/v1/libs/tools/TinyUriParser.mjs +183 -0
  370. package/dist/v1/libs/utils/TinyCloner.cjs +466 -0
  371. package/dist/v1/libs/utils/TinyCloner.d.mts +221 -0
  372. package/dist/v1/libs/utils/TinyCloner.d.mts.map +1 -0
  373. package/dist/v1/libs/utils/TinyCloner.mjs +416 -0
  374. package/dist/v1/libs/utils/TinyPromiseQueue.cjs +1 -1
  375. package/dist/v1/libs/utils/TinyPromiseQueue.d.mts +2 -2
  376. package/dist/v1/libs/utils/TinyPromiseQueue.d.mts.map +1 -1
  377. package/dist/v1/libs/utils/TinyPromiseQueue.mjs +1 -1
  378. package/dist/v1/libs/utils/TinyThrottledApi.cjs +333 -0
  379. package/dist/v1/libs/utils/TinyThrottledApi.d.mts +163 -0
  380. package/dist/v1/libs/utils/TinyThrottledApi.d.mts.map +1 -0
  381. package/dist/v1/libs/utils/TinyThrottledApi.mjs +294 -0
  382. package/dist/v1/libs/worker/browser/TinyWebWorker.cjs +342 -0
  383. package/dist/v1/libs/worker/browser/TinyWebWorker.d.mts +97 -0
  384. package/dist/v1/libs/worker/browser/TinyWebWorker.d.mts.map +1 -0
  385. package/dist/v1/libs/worker/browser/TinyWebWorker.mjs +305 -0
  386. package/dist/v1/libs/worker/engine/TinyWebWorkerEngine.cjs +346 -0
  387. package/dist/v1/libs/worker/engine/TinyWebWorkerEngine.d.mts +127 -0
  388. package/dist/v1/libs/worker/engine/TinyWebWorkerEngine.d.mts.map +1 -0
  389. package/dist/v1/libs/worker/engine/TinyWebWorkerEngine.mjs +304 -0
  390. package/dist/v1/regexp/Email.cjs +185 -0
  391. package/dist/v1/regexp/Email.d.mts +73 -0
  392. package/dist/v1/regexp/Email.d.mts.map +1 -0
  393. package/dist/v1/regexp/Email.mjs +153 -0
  394. package/dist/v1/regexp/Glob.cjs +293 -0
  395. package/dist/v1/regexp/Glob.d.mts +45 -0
  396. package/dist/v1/regexp/Glob.d.mts.map +1 -0
  397. package/dist/v1/regexp/Glob.mjs +260 -0
  398. package/dist/v1/regexp/Ipv4.cjs +57 -0
  399. package/dist/v1/regexp/Ipv4.d.mts +29 -0
  400. package/dist/v1/regexp/Ipv4.d.mts.map +1 -0
  401. package/dist/v1/regexp/Ipv4.mjs +45 -0
  402. package/dist/v1/regexp/Ipv6.cjs +67 -0
  403. package/dist/v1/regexp/Ipv6.d.mts +29 -0
  404. package/dist/v1/regexp/Ipv6.d.mts.map +1 -0
  405. package/dist/v1/regexp/Ipv6.mjs +54 -0
  406. package/dist/v1/regexp/SegmentExtractor.cjs +145 -0
  407. package/dist/v1/regexp/SegmentExtractor.d.mts +91 -0
  408. package/dist/v1/regexp/SegmentExtractor.d.mts.map +1 -0
  409. package/dist/v1/regexp/SegmentExtractor.mjs +116 -0
  410. package/dist/v1/regexp/UrlDetector.cjs +125 -0
  411. package/dist/v1/regexp/UrlDetector.d.mts +67 -0
  412. package/dist/v1/regexp/UrlDetector.d.mts.map +1 -0
  413. package/dist/v1/regexp/UrlDetector.mjs +102 -0
  414. package/dist/v1/regexp/Username/index.cjs +233 -0
  415. package/dist/v1/regexp/Username/index.d.mts +77 -0
  416. package/dist/v1/regexp/Username/index.d.mts.map +1 -0
  417. package/dist/v1/regexp/Username/index.mjs +199 -0
  418. package/dist/v1/regexp/Username/jsDoc.cjs +2 -0
  419. package/dist/v1/regexp/Username/jsDoc.d.mts +57 -0
  420. package/dist/v1/regexp/Username/jsDoc.d.mts.map +1 -0
  421. package/dist/v1/regexp/Username/jsDoc.mjs +18 -0
  422. package/dist/v1/regexp/Username/templates/BlueSky.cjs +56 -0
  423. package/dist/v1/regexp/Username/templates/BlueSky.d.mts +35 -0
  424. package/dist/v1/regexp/Username/templates/BlueSky.d.mts.map +1 -0
  425. package/dist/v1/regexp/Username/templates/BlueSky.mjs +52 -0
  426. package/dist/v1/regexp/Username/templates/Discord.cjs +505 -0
  427. package/dist/v1/regexp/Username/templates/Discord.d.mts +209 -0
  428. package/dist/v1/regexp/Username/templates/Discord.d.mts.map +1 -0
  429. package/dist/v1/regexp/Username/templates/Discord.mjs +458 -0
  430. package/dist/v1/regexp/Username/templates/MatrixProtocol.cjs +143 -0
  431. package/dist/v1/regexp/Username/templates/MatrixProtocol.d.mts +70 -0
  432. package/dist/v1/regexp/Username/templates/MatrixProtocol.d.mts.map +1 -0
  433. package/dist/v1/regexp/Username/templates/MatrixProtocol.mjs +128 -0
  434. package/dist/v1/regexp/Username/templates/deprecated/Discord.cjs +24 -0
  435. package/dist/v1/regexp/Username/templates/deprecated/Discord.d.mts +17 -0
  436. package/dist/v1/regexp/Username/templates/deprecated/Discord.d.mts.map +1 -0
  437. package/dist/v1/regexp/Username/templates/deprecated/Discord.mjs +20 -0
  438. package/dist/v1/regexp/Username/templates/index.cjs +11 -0
  439. package/dist/v1/regexp/Username/templates/index.d.mts +5 -0
  440. package/dist/v1/regexp/Username/templates/index.d.mts.map +1 -0
  441. package/dist/v1/regexp/Username/templates/index.mjs +4 -0
  442. package/dist/v1/regexp/index.cjs +41 -0
  443. package/dist/v1/regexp/index.d.mts +9 -0
  444. package/dist/v1/regexp/index.d.mts.map +1 -0
  445. package/dist/v1/regexp/index.mjs +8 -0
  446. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Browser.cjs +64 -0
  447. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Browser.d.mts +11 -0
  448. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Browser.d.mts.map +1 -0
  449. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Browser.mjs +51 -0
  450. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/FileInput.cjs +66 -0
  451. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/FileInput.d.mts +11 -0
  452. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/FileInput.d.mts.map +1 -0
  453. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/FileInput.mjs +51 -0
  454. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Node.cjs +39 -0
  455. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Node.d.mts +11 -0
  456. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Node.d.mts.map +1 -0
  457. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Node.mjs +28 -0
  458. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Template.cjs +494 -0
  459. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Template.d.mts +142 -0
  460. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Template.d.mts.map +1 -0
  461. package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Template.mjs +445 -0
  462. package/dist/v1/webTemplates/bootstrap/5.3/html/BootstrapDialogs.cjs +30 -4
  463. package/dist/v1/webTemplates/bootstrap/5.3/html/BootstrapDialogs.d.mts +5 -2
  464. package/dist/v1/webTemplates/bootstrap/5.3/html/BootstrapDialogs.d.mts.map +1 -1
  465. package/dist/v1/webTemplates/bootstrap/5.3/html/BootstrapDialogs.mjs +29 -5
  466. package/dist/v1/webTemplates/media/MediaValidator/v1/Browser/index.cjs +135 -0
  467. package/dist/v1/webTemplates/media/MediaValidator/v1/Browser/index.d.mts +83 -0
  468. package/dist/v1/webTemplates/media/MediaValidator/v1/Browser/index.d.mts.map +1 -0
  469. package/dist/v1/webTemplates/media/MediaValidator/v1/Browser/index.mjs +120 -0
  470. package/dist/v1/webTemplates/media/MediaValidator/v1/Node/index.cjs +127 -0
  471. package/dist/v1/webTemplates/media/MediaValidator/v1/Node/index.d.mts +95 -0
  472. package/dist/v1/webTemplates/media/MediaValidator/v1/Node/index.d.mts.map +1 -0
  473. package/dist/v1/webTemplates/media/MediaValidator/v1/Node/index.mjs +109 -0
  474. package/dist/v1/webTemplates/multiformats/14.0/IPFSHasher/index.cjs +83 -0
  475. package/dist/v1/webTemplates/multiformats/14.0/IPFSHasher/index.d.mts +46 -0
  476. package/dist/v1/webTemplates/multiformats/14.0/IPFSHasher/index.d.mts.map +1 -0
  477. package/dist/v1/webTemplates/multiformats/14.0/IPFSHasher/index.mjs +71 -0
  478. package/dist/v1/webTemplates/vite/7.3/plugins/TinyVitePwaPlugin.cjs +493 -0
  479. package/dist/v1/webTemplates/vite/7.3/plugins/TinyVitePwaPlugin.d.mts +67 -0
  480. package/dist/v1/webTemplates/vite/7.3/plugins/TinyVitePwaPlugin.d.mts.map +1 -0
  481. package/dist/v1/webTemplates/vite/7.3/plugins/TinyVitePwaPlugin.mjs +399 -0
  482. package/dist/v1/webTemplates/vite/7.3/plugins/githubUtils.cjs +35 -0
  483. package/dist/v1/webTemplates/vite/7.3/plugins/githubUtils.d.mts +6 -0
  484. package/dist/v1/webTemplates/vite/7.3/plugins/githubUtils.d.mts.map +1 -0
  485. package/dist/v1/webTemplates/vite/7.3/plugins/githubUtils.mjs +29 -0
  486. package/docs/info/RegExp.md +74 -0
  487. package/docs/v1/Exports.md +101 -0
  488. package/docs/v1/README.md +113 -15
  489. package/docs/v1/basics/asyncReplace.md +2 -0
  490. package/docs/v1/basics/browserDetector.md +28 -11
  491. package/docs/v1/basics/crypto.md +85 -0
  492. package/docs/v1/basics/deprecated/html.md +2 -0
  493. package/docs/v1/basics/deprecated/objFilter.md +2 -0
  494. package/docs/v1/basics/html.md +2 -0
  495. package/docs/v1/basics/objChecker.md +55 -0
  496. package/docs/v1/basics/objFilter.md +57 -86
  497. package/docs/v1/basics/promiseUtils.md +12 -3
  498. package/docs/v1/basics/text.md +0 -1
  499. package/docs/v1/libs/array/TinyArrayComparator.md +50 -39
  500. package/docs/v1/libs/fs/TinyFS.md +752 -0
  501. package/docs/v1/libs/fs/TinyOPFSFileSystem.md +495 -0
  502. package/docs/v1/libs/fs/TinyStorageBucketFileSystem.md +407 -0
  503. package/docs/v1/libs/plugin/TinyPlugin.md +441 -0
  504. package/docs/v1/libs/plugin/TinyVersion.md +145 -0
  505. package/docs/v1/libs/router/TinyRouter.md +216 -0
  506. package/docs/v1/libs/storage/TinyMapCache.md +219 -0
  507. package/docs/v1/libs/storage/TinySetMapDatabase.md +478 -0
  508. package/docs/v1/libs/sw/browser/TinyNotificationAdapter.md +280 -0
  509. package/docs/v1/libs/sw/browser/TinyPushManager.md +782 -0
  510. package/docs/v1/libs/sw/browser/TinyServiceWorker.md +365 -0
  511. package/docs/v1/libs/sw/browser/plugins/TabManager.md +133 -0
  512. package/docs/v1/libs/sw/service/TinyPushRouter.md +314 -0
  513. package/docs/v1/libs/sw/service/TinyServiceWorkerEngine.md +748 -0
  514. package/docs/v1/libs/sw/service/plugins/GlobBypassPlugin.md +229 -0
  515. package/docs/v1/libs/sw/service/plugins/GlobCachePlugin.md +91 -0
  516. package/docs/v1/libs/sw/service/plugins/Ping.md +36 -0
  517. package/docs/v1/libs/sw/service/plugins/TabManager.md +64 -0
  518. package/docs/v1/libs/sw/service/plugins/ViteFileDetector.md +92 -0
  519. package/docs/v1/libs/sw/service/shared/TinyPushPayload.md +316 -0
  520. package/docs/v1/libs/text/TinyI18.md +80 -56
  521. package/docs/v1/libs/tools/TinyBrowserMonitor.md +170 -0
  522. package/docs/v1/libs/tools/TinyDebugger.md +117 -1
  523. package/docs/v1/libs/tools/TinyHtmlTagRegexBuilder.md +141 -0
  524. package/docs/v1/libs/tools/TinyHttpResponseRegistry.md +129 -0
  525. package/docs/v1/libs/tools/TinyPasswordValidator.md +153 -0
  526. package/docs/v1/libs/tools/TinyPkgExportValidator.md +45 -1
  527. package/docs/v1/libs/tools/TinySiteMap.md +134 -0
  528. package/docs/v1/libs/tools/TinySiteMapStream.md +97 -0
  529. package/docs/v1/libs/tools/TinyURLSecurityVerifier.md +146 -0
  530. package/docs/v1/libs/tools/TinyUriParser/Discord.md +374 -0
  531. package/docs/v1/libs/tools/TinyUriParser/MatrixProtocol.md +54 -0
  532. package/docs/v1/libs/tools/TinyUriParser.md +128 -0
  533. package/docs/v1/libs/utils/TinyCloner.md +126 -0
  534. package/docs/v1/libs/utils/TinyPromiseQueue.md +1 -1
  535. package/docs/v1/libs/utils/TinyThrottledApi.md +219 -0
  536. package/docs/v1/libs/worker/browser/TinyWebWorker.md +331 -0
  537. package/docs/v1/libs/worker/engine/TinyWebWorkerEngine.md +137 -0
  538. package/docs/v1/regexp/Email.md +127 -0
  539. package/docs/v1/regexp/Glob.md +155 -0
  540. package/docs/v1/regexp/IPv4.md +103 -0
  541. package/docs/v1/regexp/IPv6.md +122 -0
  542. package/docs/v1/regexp/SegmentExtractor.md +120 -0
  543. package/docs/v1/regexp/UrlDetector.md +117 -0
  544. package/docs/v1/regexp/Username/Base.md +131 -0
  545. package/docs/v1/regexp/Username/Discord.md +267 -0
  546. package/docs/v1/regexp/Username/MatrixProtocol.md +131 -0
  547. package/docs/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters.md +565 -0
  548. package/docs/v1/webTemplates/bootstrap/5.3/html/BootstrapDialogs.md +19 -7
  549. package/docs/v1/webTemplates/media/MediaValidator/v1/Browser.md +123 -0
  550. package/docs/v1/webTemplates/media/MediaValidator/v1/Node.md +136 -0
  551. package/docs/v1/webTemplates/multiformats/14.0/IPFSHasher.md +310 -0
  552. package/docs/v1/webTemplates/vite/7.3/plugins/TinyVitePwaPlugin.md +131 -0
  553. package/docs/v1/webTemplates/vite/7.3/plugins/githubUtils.md +50 -0
  554. package/package.json +340 -22
  555. package/types/EventEmitter.d.ts +48 -0
  556. package/dist/v1/libs/text/TinyI18.d.mts.map +0 -1
@@ -0,0 +1,202 @@
1
+ 'use strict';
2
+
3
+ var index = require('./index.cjs');
4
+ var error = require('../../error.cjs');
5
+ var constants = require('../../constants.cjs');
6
+
7
+ /**
8
+ * @file Storage Bucket backend for {@link TinyFSCore}.
9
+ *
10
+ * A storage bucket is an isolated origin private file system. This backend
11
+ * reuses every primitive implemented by {@link TinyOPFSFileSystem} and only
12
+ * overrides how the root directory handle is resolved, so a bucket behaves
13
+ * exactly like the default origin private file system.
14
+ */
15
+
16
+
17
+ /** @type {string} */
18
+ const DEFAULT_BUCKET_NAME = 'tiny-fs';
19
+
20
+ /**
21
+ * @typedef {Object} StorageBucketOpenOptions
22
+ * @property {'strict' | 'relaxed'} [durability] Persistence guarantee requested from the browser.
23
+ * @property {boolean} [persisted] Whether the bucket should survive eviction.
24
+ * @property {number} [quota] Maximum number of bytes the bucket may use.
25
+ * @property {number} [expires] Unix timestamp, in milliseconds, after which the bucket may be cleared.
26
+ */
27
+
28
+ /**
29
+ * @typedef {Object} StorageBucketDescriptor
30
+ * @property {string} [name] Name of the storage bucket. Defaults to `'tiny-fs'`.
31
+ * @property {'strict' | 'relaxed'} [durability] Persistence guarantee requested from the browser.
32
+ * @property {boolean} [persisted] Whether the bucket should survive eviction.
33
+ * @property {number} [quota] Maximum number of bytes the bucket may use.
34
+ * @property {number} [expires] Unix timestamp, in milliseconds, after which the bucket may be cleared.
35
+ */
36
+
37
+ /**
38
+ * @typedef {Object} StorageBucketFileSystemOptions
39
+ * @property {string} [cwd] Working directory used to resolve relative paths.
40
+ * @property {number} [umask] Permission mask applied on creation.
41
+ * @property {import('../../index.mjs').FSIdentity} [identity] Effective identity used by `access`.
42
+ * @property {StorageBucketDescriptor} [bucket] Storage bucket configuration.
43
+ */
44
+
45
+ /**
46
+ * @typedef {Object} ResolvedBucketDescriptor
47
+ * @property {string} name Validated bucket name.
48
+ * @property {StorageBucketOpenOptions} options Validated bucket options.
49
+ */
50
+
51
+ /**
52
+ * Validates the `bucket` option.
53
+ *
54
+ * @param {unknown} value Candidate value.
55
+ * @returns {ResolvedBucketDescriptor} The validated descriptor.
56
+ * @throws {TypeError} When the descriptor or one of its members has the wrong type.
57
+ * @throws {RangeError} When a numeric member is negative.
58
+ */
59
+ const assertBucketDescriptor = (value) => {
60
+ if (value === undefined) {
61
+ return { name: DEFAULT_BUCKET_NAME, options: {} };
62
+ }
63
+ if (value === null || typeof value !== 'object' || Array.isArray(value)) {
64
+ throw new TypeError('The "bucket" option must be of type object');
65
+ }
66
+ const { name, durability, persisted, quota, expires } = /** @type {StorageBucketDescriptor} */ (
67
+ value
68
+ );
69
+ if (name !== undefined && (typeof name !== 'string' || name.length === 0)) {
70
+ throw new TypeError('The "bucket.name" option must be a non-empty string');
71
+ }
72
+ if (durability !== undefined && durability !== 'strict' && durability !== 'relaxed') {
73
+ throw new TypeError('The "bucket.durability" option must be "strict" or "relaxed"');
74
+ }
75
+ if (persisted !== undefined && typeof persisted !== 'boolean') {
76
+ throw new TypeError('The "bucket.persisted" option must be of type boolean');
77
+ }
78
+ if (quota !== undefined) {
79
+ if (!Number.isInteger(quota)) {
80
+ throw new TypeError('The "bucket.quota" option must be an integer');
81
+ }
82
+ if (quota < 0) {
83
+ throw new RangeError('The "bucket.quota" option must not be negative');
84
+ }
85
+ }
86
+ if (expires !== undefined) {
87
+ if (!Number.isInteger(expires)) {
88
+ throw new TypeError('The "bucket.expires" option must be an integer');
89
+ }
90
+ if (expires < 0) {
91
+ throw new RangeError('The "bucket.expires" option must not be negative');
92
+ }
93
+ }
94
+ return {
95
+ name: name ?? DEFAULT_BUCKET_NAME,
96
+ options: { durability, persisted, quota, expires },
97
+ };
98
+ };
99
+
100
+ /**
101
+ * Origin Private File System backend scoped to a single storage bucket.
102
+ *
103
+ * @beta
104
+ */
105
+ class TinyStorageBucketFileSystem extends index {
106
+ /** @type {string} */
107
+ #bucketName;
108
+
109
+ /** @type {StorageBucketOpenOptions} */
110
+ #bucketOptions;
111
+
112
+ /** @type {FileSystemDirectoryHandle | null} */
113
+ #bucketRoot = null;
114
+
115
+ /**
116
+ * @param {StorageBucketFileSystemOptions} [options] Construction options.
117
+ * @throws {TypeError} When the `bucket` option is malformed.
118
+ * @throws {RangeError} When a numeric bucket option is negative.
119
+ */
120
+ constructor(options = {}) {
121
+ super(options);
122
+ const descriptor = assertBucketDescriptor(options.bucket);
123
+ this.#bucketName = descriptor.name;
124
+ this.#bucketOptions = descriptor.options;
125
+ }
126
+
127
+ /**
128
+ * @returns {boolean} `true` when the Storage Buckets API is available.
129
+ */
130
+ static get isSupported() {
131
+ return (
132
+ typeof navigator !== 'undefined' &&
133
+ typeof navigator.storageBuckets === 'object' &&
134
+ navigator.storageBuckets !== null
135
+ );
136
+ }
137
+
138
+ /**
139
+ * Lists the names of every storage bucket owned by the origin.
140
+ *
141
+ * @returns {Promise<string[]>} The bucket names.
142
+ * @throws {Error} When the Storage Buckets API is not available.
143
+ */
144
+ static async listBuckets() {
145
+ TinyStorageBucketFileSystem.#assertSupported('keys');
146
+ return navigator.storageBuckets.keys();
147
+ }
148
+
149
+ /**
150
+ * Deletes a storage bucket owned by the origin.
151
+ *
152
+ * @param {string} name Name of the bucket to delete.
153
+ * @returns {Promise<boolean>} `true` when the bucket existed.
154
+ * @throws {TypeError} When `name` is not a non-empty string.
155
+ * @throws {Error} When the Storage Buckets API is not available.
156
+ */
157
+ static async deleteBucket(name) {
158
+ if (typeof name !== 'string' || name.length === 0) {
159
+ throw new TypeError('The "name" argument must be a non-empty string');
160
+ }
161
+ TinyStorageBucketFileSystem.#assertSupported('delete');
162
+ return navigator.storageBuckets.delete(name);
163
+ }
164
+
165
+ /** @returns {string} Name of the storage bucket backing this instance. */
166
+ get bucketName() {
167
+ return this.#bucketName;
168
+ }
169
+
170
+ /**
171
+ * @override
172
+ * @returns {Promise<FileSystemDirectoryHandle>} The bucket root directory.
173
+ * @throws {Error} When the Storage Buckets API is not available.
174
+ */
175
+ async _resolveRoot() {
176
+ if (this.#bucketRoot !== null) {
177
+ return this.#bucketRoot;
178
+ }
179
+ TinyStorageBucketFileSystem.#assertSupported('open');
180
+ const bucket = await navigator.storageBuckets.open(this.#bucketName, this.#bucketOptions);
181
+ this.#bucketRoot = await bucket.getDirectory();
182
+ return this.#bucketRoot;
183
+ }
184
+
185
+ /**
186
+ * @param {string} syscall Name of the originating operation.
187
+ * @returns {void}
188
+ * @throws {Error} When the Storage Buckets API is not available.
189
+ */
190
+ static #assertSupported(syscall) {
191
+ if (!TinyStorageBucketFileSystem.isSupported) {
192
+ throw error.createFileSystemError(
193
+ 'ENOSYS',
194
+ syscall,
195
+ constants.ROOT_PATH,
196
+ 'the Storage Buckets API is not available in this environment',
197
+ );
198
+ }
199
+ }
200
+ }
201
+
202
+ module.exports = TinyStorageBucketFileSystem;
@@ -0,0 +1,121 @@
1
+ /**
2
+ * @file Storage Bucket backend for {@link TinyFSCore}.
3
+ *
4
+ * A storage bucket is an isolated origin private file system. This backend
5
+ * reuses every primitive implemented by {@link TinyOPFSFileSystem} and only
6
+ * overrides how the root directory handle is resolved, so a bucket behaves
7
+ * exactly like the default origin private file system.
8
+ */
9
+ import TinyOPFSFileSystem from './index.mjs';
10
+ export type StorageBucketOpenOptions = {
11
+ /**
12
+ * Persistence guarantee requested from the browser.
13
+ */
14
+ durability?: 'strict' | 'relaxed';
15
+ /**
16
+ * Whether the bucket should survive eviction.
17
+ */
18
+ persisted?: boolean;
19
+ /**
20
+ * Maximum number of bytes the bucket may use.
21
+ */
22
+ quota?: number;
23
+ /**
24
+ * Unix timestamp, in milliseconds, after which the bucket may be cleared.
25
+ */
26
+ expires?: number;
27
+ };
28
+ export type StorageBucketDescriptor = {
29
+ /**
30
+ * Name of the storage bucket. Defaults to `'tiny-fs'`.
31
+ */
32
+ name?: string;
33
+ /**
34
+ * Persistence guarantee requested from the browser.
35
+ */
36
+ durability?: 'strict' | 'relaxed';
37
+ /**
38
+ * Whether the bucket should survive eviction.
39
+ */
40
+ persisted?: boolean;
41
+ /**
42
+ * Maximum number of bytes the bucket may use.
43
+ */
44
+ quota?: number;
45
+ /**
46
+ * Unix timestamp, in milliseconds, after which the bucket may be cleared.
47
+ */
48
+ expires?: number;
49
+ };
50
+ export type StorageBucketFileSystemOptions = {
51
+ /**
52
+ * Working directory used to resolve relative paths.
53
+ */
54
+ cwd?: string;
55
+ /**
56
+ * Permission mask applied on creation.
57
+ */
58
+ umask?: number;
59
+ /**
60
+ * Effective identity used by `access`.
61
+ */
62
+ identity?: import('../../index.mjs').FSIdentity;
63
+ /**
64
+ * Storage bucket configuration.
65
+ */
66
+ bucket?: StorageBucketDescriptor;
67
+ };
68
+ export type ResolvedBucketDescriptor = {
69
+ /**
70
+ * Validated bucket name.
71
+ */
72
+ name: string;
73
+ /**
74
+ * Validated bucket options.
75
+ */
76
+ options: StorageBucketOpenOptions;
77
+ };
78
+ /**
79
+ * Origin Private File System backend scoped to a single storage bucket.
80
+ *
81
+ * @beta
82
+ */
83
+ declare class TinyStorageBucketFileSystem extends TinyOPFSFileSystem {
84
+ #private;
85
+ /**
86
+ * @param {StorageBucketFileSystemOptions} [options] Construction options.
87
+ * @throws {TypeError} When the `bucket` option is malformed.
88
+ * @throws {RangeError} When a numeric bucket option is negative.
89
+ */
90
+ constructor(options?: StorageBucketFileSystemOptions);
91
+ /**
92
+ * @returns {boolean} `true` when the Storage Buckets API is available.
93
+ */
94
+ static get isSupported(): boolean;
95
+ /**
96
+ * Lists the names of every storage bucket owned by the origin.
97
+ *
98
+ * @returns {Promise<string[]>} The bucket names.
99
+ * @throws {Error} When the Storage Buckets API is not available.
100
+ */
101
+ static listBuckets(): Promise<string[]>;
102
+ /**
103
+ * Deletes a storage bucket owned by the origin.
104
+ *
105
+ * @param {string} name Name of the bucket to delete.
106
+ * @returns {Promise<boolean>} `true` when the bucket existed.
107
+ * @throws {TypeError} When `name` is not a non-empty string.
108
+ * @throws {Error} When the Storage Buckets API is not available.
109
+ */
110
+ static deleteBucket(name: string): Promise<boolean>;
111
+ /** @returns {string} Name of the storage bucket backing this instance. */
112
+ get bucketName(): string;
113
+ /**
114
+ * @override
115
+ * @returns {Promise<FileSystemDirectoryHandle>} The bucket root directory.
116
+ * @throws {Error} When the Storage Buckets API is not available.
117
+ */
118
+ _resolveRoot(): Promise<FileSystemDirectoryHandle>;
119
+ }
120
+ export default TinyStorageBucketFileSystem;
121
+ //# sourceMappingURL=StorageBucket.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StorageBucket.d.mts","sourceRoot":"","sources":["../../../../../../src/v1/libs/fs/plugins/OPFS/StorageBucket.mjs"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,kBAAkB,MAAM,aAAa,CAAC;AAQ1C,YAAkB,wBAAwB,GAC1C;;;;IAAkC,UAAU,AAA5C,CACA,EADW,QAAQ,GAAG,SAAS,CAC/B;;;;IAAqB,SAAS,AAA9B,CACA,EADW,OAAO,CAClB;;;;IAAoB,KAAK,AAAzB,CACA,EADW,MAAM,CACjB;;;;IAAoB,OAAO,AAA3B,CACF,EADa,MAAM,CACnB;CAAA,CAAA;AAGE,YAAkB,uBAAuB,GACzC;;;;IAAoB,IAAI,AAAxB,CACA,EADW,MAAM,CACjB;;;;IAAkC,UAAU,AAA5C,CACA,EADW,QAAQ,GAAG,SAAS,CAC/B;;;;IAAqB,SAAS,AAA9B,CACA,EADW,OAAO,CAClB;;;;IAAoB,KAAK,AAAzB,CACA,EADW,MAAM,CACjB;;;;IAAoB,OAAO,AAA3B,CACF,EADa,MAAM,CACnB;CAAA,CAAA;AAGE,YAAkB,8BAA8B,GAChD;;;;IAAoB,GAAG,AAAvB,CACA,EADW,MAAM,CACjB;;;;IAAoB,KAAK,AAAzB,CACA,EADW,MAAM,CACjB;;;;IAAkD,QAAQ,AAA1D,CACA,EADW,OAAO,iBAAiB,EAAE,UAAU,CAC/C;;;;IAAqC,MAAM,AAA3C,CACF,EADa,uBAAuB,CACpC;CAAA,CAAA;AAGE,YAAkB,wBAAwB,GAC1C;;;;IAAmB,IAAI,EAAZ,MAAM,CACjB;;;;IAAqC,OAAO,EAAjC,wBAAwB,CACrC;CAAA,CAAA;AAmDD;;;;GAIG;AACH,cAAM,2BAA4B,SAAQ,kBAAkB;;IAU1D;;;;OAIG;IACH,YAAY,OAAO,AAJhB,CACA,EADQ,8BAIa,EAKvB;IAED;;OAEG;IACH,MAAM,KAAK,WAAW,IAFT,OAAO,CAQnB;IAED;;;;;OAKG;IACH,OAAa,WAAW,IAHX,OAAO,CAAC,MAAM,EAAE,CAAC,CAM7B;IAED;;;;;;;OAOG;IACH,OAAa,YAAY,CAAC,IAAI,EALnB,MAKmB,GAJjB,OAAO,CAAC,OAAO,CAAC,CAU5B;IAED,0EAA0E;IAC1E,IAAI,UAAU,IADA,MAAM,CAGnB;IAED;;;;OAIG;IACG,YAAY,IAHL,OAAO,CAAC,yBAAyB,CAAC,CAW9C;CAiBF;eAEc,2BAA2B"}
@@ -0,0 +1,172 @@
1
+ /**
2
+ * @file Storage Bucket backend for {@link TinyFSCore}.
3
+ *
4
+ * A storage bucket is an isolated origin private file system. This backend
5
+ * reuses every primitive implemented by {@link TinyOPFSFileSystem} and only
6
+ * overrides how the root directory handle is resolved, so a bucket behaves
7
+ * exactly like the default origin private file system.
8
+ */
9
+ import TinyOPFSFileSystem from './index.mjs';
10
+ import { createFileSystemError } from '../../error.mjs';
11
+ import { ROOT_PATH } from '../../constants.mjs';
12
+ /** @type {string} */
13
+ const DEFAULT_BUCKET_NAME = 'tiny-fs';
14
+ /**
15
+ * @typedef {Object} StorageBucketOpenOptions
16
+ * @property {'strict' | 'relaxed'} [durability] Persistence guarantee requested from the browser.
17
+ * @property {boolean} [persisted] Whether the bucket should survive eviction.
18
+ * @property {number} [quota] Maximum number of bytes the bucket may use.
19
+ * @property {number} [expires] Unix timestamp, in milliseconds, after which the bucket may be cleared.
20
+ */
21
+ /**
22
+ * @typedef {Object} StorageBucketDescriptor
23
+ * @property {string} [name] Name of the storage bucket. Defaults to `'tiny-fs'`.
24
+ * @property {'strict' | 'relaxed'} [durability] Persistence guarantee requested from the browser.
25
+ * @property {boolean} [persisted] Whether the bucket should survive eviction.
26
+ * @property {number} [quota] Maximum number of bytes the bucket may use.
27
+ * @property {number} [expires] Unix timestamp, in milliseconds, after which the bucket may be cleared.
28
+ */
29
+ /**
30
+ * @typedef {Object} StorageBucketFileSystemOptions
31
+ * @property {string} [cwd] Working directory used to resolve relative paths.
32
+ * @property {number} [umask] Permission mask applied on creation.
33
+ * @property {import('../../index.mjs').FSIdentity} [identity] Effective identity used by `access`.
34
+ * @property {StorageBucketDescriptor} [bucket] Storage bucket configuration.
35
+ */
36
+ /**
37
+ * @typedef {Object} ResolvedBucketDescriptor
38
+ * @property {string} name Validated bucket name.
39
+ * @property {StorageBucketOpenOptions} options Validated bucket options.
40
+ */
41
+ /**
42
+ * Validates the `bucket` option.
43
+ *
44
+ * @param {unknown} value Candidate value.
45
+ * @returns {ResolvedBucketDescriptor} The validated descriptor.
46
+ * @throws {TypeError} When the descriptor or one of its members has the wrong type.
47
+ * @throws {RangeError} When a numeric member is negative.
48
+ */
49
+ const assertBucketDescriptor = (value) => {
50
+ if (value === undefined) {
51
+ return { name: DEFAULT_BUCKET_NAME, options: {} };
52
+ }
53
+ if (value === null || typeof value !== 'object' || Array.isArray(value)) {
54
+ throw new TypeError('The "bucket" option must be of type object');
55
+ }
56
+ const { name, durability, persisted, quota, expires } = /** @type {StorageBucketDescriptor} */ (value);
57
+ if (name !== undefined && (typeof name !== 'string' || name.length === 0)) {
58
+ throw new TypeError('The "bucket.name" option must be a non-empty string');
59
+ }
60
+ if (durability !== undefined && durability !== 'strict' && durability !== 'relaxed') {
61
+ throw new TypeError('The "bucket.durability" option must be "strict" or "relaxed"');
62
+ }
63
+ if (persisted !== undefined && typeof persisted !== 'boolean') {
64
+ throw new TypeError('The "bucket.persisted" option must be of type boolean');
65
+ }
66
+ if (quota !== undefined) {
67
+ if (!Number.isInteger(quota)) {
68
+ throw new TypeError('The "bucket.quota" option must be an integer');
69
+ }
70
+ if (quota < 0) {
71
+ throw new RangeError('The "bucket.quota" option must not be negative');
72
+ }
73
+ }
74
+ if (expires !== undefined) {
75
+ if (!Number.isInteger(expires)) {
76
+ throw new TypeError('The "bucket.expires" option must be an integer');
77
+ }
78
+ if (expires < 0) {
79
+ throw new RangeError('The "bucket.expires" option must not be negative');
80
+ }
81
+ }
82
+ return {
83
+ name: name ?? DEFAULT_BUCKET_NAME,
84
+ options: { durability, persisted, quota, expires },
85
+ };
86
+ };
87
+ /**
88
+ * Origin Private File System backend scoped to a single storage bucket.
89
+ *
90
+ * @beta
91
+ */
92
+ class TinyStorageBucketFileSystem extends TinyOPFSFileSystem {
93
+ /** @type {string} */
94
+ #bucketName;
95
+ /** @type {StorageBucketOpenOptions} */
96
+ #bucketOptions;
97
+ /** @type {FileSystemDirectoryHandle | null} */
98
+ #bucketRoot = null;
99
+ /**
100
+ * @param {StorageBucketFileSystemOptions} [options] Construction options.
101
+ * @throws {TypeError} When the `bucket` option is malformed.
102
+ * @throws {RangeError} When a numeric bucket option is negative.
103
+ */
104
+ constructor(options = {}) {
105
+ super(options);
106
+ const descriptor = assertBucketDescriptor(options.bucket);
107
+ this.#bucketName = descriptor.name;
108
+ this.#bucketOptions = descriptor.options;
109
+ }
110
+ /**
111
+ * @returns {boolean} `true` when the Storage Buckets API is available.
112
+ */
113
+ static get isSupported() {
114
+ return (typeof navigator !== 'undefined' &&
115
+ typeof navigator.storageBuckets === 'object' &&
116
+ navigator.storageBuckets !== null);
117
+ }
118
+ /**
119
+ * Lists the names of every storage bucket owned by the origin.
120
+ *
121
+ * @returns {Promise<string[]>} The bucket names.
122
+ * @throws {Error} When the Storage Buckets API is not available.
123
+ */
124
+ static async listBuckets() {
125
+ TinyStorageBucketFileSystem.#assertSupported('keys');
126
+ return navigator.storageBuckets.keys();
127
+ }
128
+ /**
129
+ * Deletes a storage bucket owned by the origin.
130
+ *
131
+ * @param {string} name Name of the bucket to delete.
132
+ * @returns {Promise<boolean>} `true` when the bucket existed.
133
+ * @throws {TypeError} When `name` is not a non-empty string.
134
+ * @throws {Error} When the Storage Buckets API is not available.
135
+ */
136
+ static async deleteBucket(name) {
137
+ if (typeof name !== 'string' || name.length === 0) {
138
+ throw new TypeError('The "name" argument must be a non-empty string');
139
+ }
140
+ TinyStorageBucketFileSystem.#assertSupported('delete');
141
+ return navigator.storageBuckets.delete(name);
142
+ }
143
+ /** @returns {string} Name of the storage bucket backing this instance. */
144
+ get bucketName() {
145
+ return this.#bucketName;
146
+ }
147
+ /**
148
+ * @override
149
+ * @returns {Promise<FileSystemDirectoryHandle>} The bucket root directory.
150
+ * @throws {Error} When the Storage Buckets API is not available.
151
+ */
152
+ async _resolveRoot() {
153
+ if (this.#bucketRoot !== null) {
154
+ return this.#bucketRoot;
155
+ }
156
+ TinyStorageBucketFileSystem.#assertSupported('open');
157
+ const bucket = await navigator.storageBuckets.open(this.#bucketName, this.#bucketOptions);
158
+ this.#bucketRoot = await bucket.getDirectory();
159
+ return this.#bucketRoot;
160
+ }
161
+ /**
162
+ * @param {string} syscall Name of the originating operation.
163
+ * @returns {void}
164
+ * @throws {Error} When the Storage Buckets API is not available.
165
+ */
166
+ static #assertSupported(syscall) {
167
+ if (!TinyStorageBucketFileSystem.isSupported) {
168
+ throw createFileSystemError('ENOSYS', syscall, ROOT_PATH, 'the Storage Buckets API is not available in this environment');
169
+ }
170
+ }
171
+ }
172
+ export default TinyStorageBucketFileSystem;