tiny-essentials 1.28.19 → 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.
- package/README.md +1 -1
- package/changelog/1/28/19.md +24 -0
- package/changelog/1/29/0.md +58 -0
- package/dist/v1/ColorSafeStringify.min.js +1 -1
- package/dist/v1/TinyAdvancedRaffle.min.js +1 -1
- package/dist/v1/TinyAfterScrollWatcher.min.js +1 -1
- package/dist/v1/TinyAnalogClock.min.js +1 -1
- package/dist/v1/TinyArrayComparator.min.js +1 -1
- package/dist/v1/TinyArrayPaginator.min.js +1 -1
- package/dist/v1/TinyBasicsEs.min.js +1 -1
- package/dist/v1/TinyBrowserMonitor.min.js +1 -0
- package/dist/v1/TinyClassManager.min.js +1 -1
- package/dist/v1/TinyClipboard.min.js +1 -1
- package/dist/v1/TinyCloner.min.js +1 -0
- package/dist/v1/TinyColorConverter.min.js +1 -1
- package/dist/v1/TinyColorValidator.min.js +1 -1
- package/dist/v1/TinyCookieConsent.min.js +1 -1
- package/dist/v1/TinyDayNightCycle.min.js +1 -1
- package/dist/v1/TinyDebugger.min.js +1 -1
- package/dist/v1/TinyDomReadyManager.min.js +1 -1
- package/dist/v1/TinyDragDropDetector.min.js +1 -1
- package/dist/v1/TinyDragger.min.js +1 -1
- package/dist/v1/TinyElementObserver.min.js +1 -1
- package/dist/v1/TinyEssentials.min.js +1 -1
- package/dist/v1/TinyGamepad.min.js +1 -1
- package/dist/v1/TinyHtml.min.js +1 -1
- package/dist/v1/TinyHtmlTagRegexBuilder.min.js +1 -0
- package/dist/v1/TinyHttpResponseRegistry.min.js +1 -0
- package/dist/v1/TinyI18.min.js +1 -1
- package/dist/v1/TinyIframeEvents.min.js +1 -1
- package/dist/v1/TinyInventory.min.js +1 -1
- package/dist/v1/TinyInventoryTrader.min.js +1 -1
- package/dist/v1/TinyLevelUp.min.js +1 -1
- package/dist/v1/TinyLoadingScreen.min.js +1 -1
- package/dist/v1/TinyLocalStorage.min.js +1 -1
- package/dist/v1/TinyMaInSys.min.js +1 -1
- package/dist/v1/TinyMapCache.min.js +1 -0
- package/dist/v1/TinyMediaPlayer.min.js +1 -1
- package/dist/v1/TinyNeedBar.min.js +1 -1
- package/dist/v1/TinyNewWinEvents.min.js +1 -1
- package/dist/v1/TinyNotificationAdapter.min.js +1 -0
- package/dist/v1/TinyNotifications.min.js +1 -1
- package/dist/v1/TinyNotifyCenter.min.js +1 -1
- package/dist/v1/TinyOPFSFileSystem.min.js +1 -0
- package/dist/v1/TinyPasswordValidator.min.js +1 -0
- package/dist/v1/TinyPluginPackage.min.js +1 -0
- package/dist/v1/TinyPromiseQueue.min.js +1 -1
- package/dist/v1/TinyPushManager.min.js +1 -0
- package/dist/v1/TinyPushPayload.min.js +1 -0
- package/dist/v1/TinyPushRouter.min.js +1 -0
- package/dist/v1/TinyRadioFm.min.js +1 -1
- package/dist/v1/TinyRateLimiter.min.js +1 -1
- package/dist/v1/TinyRegexEs.min.js +1 -0
- package/dist/v1/TinyRouter.min.js +1 -0
- package/dist/v1/TinyServiceWorker.min.js +1 -0
- package/dist/v1/TinyServiceWorkerEngine.min.js +1 -0
- package/dist/v1/TinySetMapPackage.min.js +1 -0
- package/dist/v1/TinySimpleDice.min.js +1 -1
- package/dist/v1/TinySmartScroller.min.js +1 -1
- package/dist/v1/TinyStorageBucketFileSystem.min.js +1 -0
- package/dist/v1/TinyTextDiffer.min.js +1 -1
- package/dist/v1/TinyTextRangeEditor.min.js +1 -1
- package/dist/v1/TinyTextarea.min.js +1 -1
- package/dist/v1/TinyThrottledApi.min.js +1 -0
- package/dist/v1/TinyTimeout.min.js +1 -1
- package/dist/v1/TinyToastNotify.min.js +1 -1
- package/dist/v1/TinyUploadClicker.min.js +1 -1
- package/dist/v1/TinyUriParser.min.js +1 -0
- package/dist/v1/TinyVersion.min.js +1 -0
- package/dist/v1/TinyWebWorker.min.js +1 -0
- package/dist/v1/TinyWebWorkerEngine.min.js +1 -0
- package/dist/v1/UltraRandomMsgGen.min.js +1 -1
- package/dist/v1/basics/array.cjs +2 -2
- package/dist/v1/basics/array.d.mts +2 -0
- package/dist/v1/basics/array.d.mts.map +1 -1
- package/dist/v1/basics/array.mjs +2 -1
- package/dist/v1/basics/browserDetector.cjs +37 -12
- package/dist/v1/basics/browserDetector.d.mts +8 -0
- package/dist/v1/basics/browserDetector.d.mts.map +1 -1
- package/dist/v1/basics/browserDetector.mjs +32 -13
- package/dist/v1/basics/crypto.cjs +23 -0
- package/dist/v1/basics/crypto.d.mts +10 -0
- package/dist/v1/basics/crypto.d.mts.map +1 -0
- package/dist/v1/basics/crypto.mjs +18 -0
- package/dist/v1/basics/html.cjs +0 -3
- package/dist/v1/basics/html.d.mts.map +1 -1
- package/dist/v1/basics/html.mjs +0 -2
- package/dist/v1/basics/index.cjs +8 -1
- package/dist/v1/basics/index.d.mts +6 -5
- package/dist/v1/basics/index.d.mts.map +1 -1
- package/dist/v1/basics/index.mjs +6 -5
- package/dist/v1/basics/objChecker.cjs +88 -0
- package/dist/v1/basics/objChecker.d.mts +26 -0
- package/dist/v1/basics/objChecker.d.mts.map +1 -1
- package/dist/v1/basics/objChecker.mjs +74 -0
- package/dist/v1/basics/objFilter.cjs +234 -93
- package/dist/v1/basics/objFilter.d.mts +96 -22
- package/dist/v1/basics/objFilter.d.mts.map +1 -1
- package/dist/v1/basics/objFilter.mjs +216 -92
- package/dist/v1/basics/promiseUtils.cjs +48 -12
- package/dist/v1/basics/promiseUtils.d.mts +45 -12
- package/dist/v1/basics/promiseUtils.d.mts.map +1 -1
- package/dist/v1/basics/promiseUtils.mjs +47 -12
- package/dist/v1/basics/text.cjs +0 -12
- package/dist/v1/basics/text.d.mts +0 -10
- package/dist/v1/basics/text.d.mts.map +1 -1
- package/dist/v1/basics/text.mjs +0 -10
- package/dist/v1/index.cjs +88 -3
- package/dist/v1/index.d.mts +31 -6
- package/dist/v1/index.d.mts.map +1 -1
- package/dist/v1/index.mjs +32 -7
- package/dist/v1/jsdoc/EventEmitter.cjs +4 -0
- package/dist/v1/jsdoc/EventEmitter.d.mts +33 -0
- package/dist/v1/jsdoc/EventEmitter.d.mts.map +1 -0
- package/dist/v1/jsdoc/EventEmitter.mjs +18 -0
- package/dist/v1/libs/array/TinyArrayComparator.cjs +240 -25
- package/dist/v1/libs/array/TinyArrayComparator.d.mts +130 -22
- package/dist/v1/libs/array/TinyArrayComparator.d.mts.map +1 -1
- package/dist/v1/libs/array/TinyArrayComparator.mjs +210 -24
- package/dist/v1/libs/fs/constants.cjs +74 -0
- package/dist/v1/libs/fs/constants.d.mts +22 -0
- package/dist/v1/libs/fs/constants.d.mts.map +1 -0
- package/dist/v1/libs/fs/constants.mjs +53 -0
- package/dist/v1/libs/fs/encoding.cjs +118 -0
- package/dist/v1/libs/fs/encoding.d.mts +50 -0
- package/dist/v1/libs/fs/encoding.d.mts.map +1 -0
- package/dist/v1/libs/fs/encoding.mjs +102 -0
- package/dist/v1/libs/fs/error.cjs +188 -0
- package/dist/v1/libs/fs/error.d.mts +105 -0
- package/dist/v1/libs/fs/error.d.mts.map +1 -0
- package/dist/v1/libs/fs/error.mjs +158 -0
- package/dist/v1/libs/fs/handle.cjs +121 -0
- package/dist/v1/libs/fs/handle.d.mts +56 -0
- package/dist/v1/libs/fs/handle.d.mts.map +1 -0
- package/dist/v1/libs/fs/handle.mjs +100 -0
- package/dist/v1/libs/fs/index.cjs +700 -0
- package/dist/v1/libs/fs/index.d.mts +377 -0
- package/dist/v1/libs/fs/index.d.mts.map +1 -0
- package/dist/v1/libs/fs/index.mjs +630 -0
- package/dist/v1/libs/fs/path.cjs +234 -0
- package/dist/v1/libs/fs/path.d.mts +176 -0
- package/dist/v1/libs/fs/path.d.mts.map +1 -0
- package/dist/v1/libs/fs/path.mjs +197 -0
- package/dist/v1/libs/fs/plugins/OPFS/StorageBucket.cjs +202 -0
- package/dist/v1/libs/fs/plugins/OPFS/StorageBucket.d.mts +121 -0
- package/dist/v1/libs/fs/plugins/OPFS/StorageBucket.d.mts.map +1 -0
- package/dist/v1/libs/fs/plugins/OPFS/StorageBucket.mjs +172 -0
- package/dist/v1/libs/fs/plugins/OPFS/index.cjs +334 -0
- package/dist/v1/libs/fs/plugins/OPFS/index.d.mts +98 -0
- package/dist/v1/libs/fs/plugins/OPFS/index.d.mts.map +1 -0
- package/dist/v1/libs/fs/plugins/OPFS/index.mjs +300 -0
- package/dist/v1/libs/fs/stats.cjs +245 -0
- package/dist/v1/libs/fs/stats.d.mts +226 -0
- package/dist/v1/libs/fs/stats.d.mts.map +1 -0
- package/dist/v1/libs/fs/stats.mjs +197 -0
- package/dist/v1/libs/html/events/TinyIframeEvents.cjs +10 -1
- package/dist/v1/libs/html/events/TinyIframeEvents.d.mts +9 -2
- package/dist/v1/libs/html/events/TinyIframeEvents.d.mts.map +1 -1
- package/dist/v1/libs/html/events/TinyIframeEvents.mjs +8 -1
- package/dist/v1/libs/html/events/TinyNewWinEvents.cjs +14 -3
- package/dist/v1/libs/html/events/TinyNewWinEvents.d.mts +21 -5
- package/dist/v1/libs/html/events/TinyNewWinEvents.d.mts.map +1 -1
- package/dist/v1/libs/html/events/TinyNewWinEvents.mjs +12 -3
- package/dist/v1/libs/html/scroll/TinySmartScroller.cjs +13 -1
- package/dist/v1/libs/html/scroll/TinySmartScroller.d.mts +29 -2
- package/dist/v1/libs/html/scroll/TinySmartScroller.d.mts.map +1 -1
- package/dist/v1/libs/html/scroll/TinySmartScroller.mjs +11 -1
- package/dist/v1/libs/math/TinyAdvancedRaffle.cjs +13 -1
- package/dist/v1/libs/math/TinyAdvancedRaffle.d.mts +32 -2
- package/dist/v1/libs/math/TinyAdvancedRaffle.d.mts.map +1 -1
- package/dist/v1/libs/math/TinyAdvancedRaffle.mjs +11 -1
- package/dist/v1/libs/math/TinyTimeout.cjs +0 -14
- package/dist/v1/libs/math/TinyTimeout.d.mts +0 -11
- package/dist/v1/libs/math/TinyTimeout.d.mts.map +1 -1
- package/dist/v1/libs/math/TinyTimeout.mjs +0 -13
- package/dist/v1/libs/media/TinyMediaPlayer/index.cjs +25 -1
- package/dist/v1/libs/media/TinyMediaPlayer/index.d.mts +35 -2
- package/dist/v1/libs/media/TinyMediaPlayer/index.d.mts.map +1 -1
- package/dist/v1/libs/media/TinyMediaPlayer/index.mjs +23 -1
- package/dist/v1/libs/media/TinyMediaPlayer.cjs +2 -2
- package/dist/v1/libs/media/TinyMediaPlayer.d.mts +2 -2
- package/dist/v1/libs/media/TinyMediaPlayer.d.mts.map +1 -1
- package/dist/v1/libs/media/TinyMediaPlayer.mjs +2 -2
- package/dist/v1/libs/media/TinyRadioFm.cjs +19 -1
- package/dist/v1/libs/media/TinyRadioFm.d.mts +78 -2
- package/dist/v1/libs/media/TinyRadioFm.d.mts.map +1 -1
- package/dist/v1/libs/media/TinyRadioFm.mjs +17 -1
- package/dist/v1/libs/plugin/TinyPlugin.cjs +1630 -0
- package/dist/v1/libs/plugin/TinyPlugin.d.mts +753 -0
- package/dist/v1/libs/plugin/TinyPlugin.d.mts.map +1 -0
- package/dist/v1/libs/plugin/TinyPlugin.mjs +1376 -0
- package/dist/v1/libs/plugin/TinyVersion.cjs +204 -0
- package/dist/v1/libs/plugin/TinyVersion.d.mts +70 -0
- package/dist/v1/libs/plugin/TinyVersion.d.mts.map +1 -0
- package/dist/v1/libs/plugin/TinyVersion.mjs +179 -0
- package/dist/v1/libs/router/TinyRouter.cjs +661 -0
- package/dist/v1/libs/router/TinyRouter.d.mts +320 -0
- package/dist/v1/libs/router/TinyRouter.d.mts.map +1 -0
- package/dist/v1/libs/router/TinyRouter.mjs +572 -0
- package/dist/v1/libs/storage/TinyLocalStorage.cjs +20 -1
- package/dist/v1/libs/storage/TinyLocalStorage.d.mts +64 -2
- package/dist/v1/libs/storage/TinyLocalStorage.d.mts.map +1 -1
- package/dist/v1/libs/storage/TinyLocalStorage.mjs +18 -1
- package/dist/v1/libs/storage/TinyMapCache.cjs +373 -0
- package/dist/v1/libs/storage/TinyMapCache.d.mts +274 -0
- package/dist/v1/libs/storage/TinyMapCache.d.mts.map +1 -0
- package/dist/v1/libs/storage/TinyMapCache.mjs +333 -0
- package/dist/v1/libs/storage/TinySetMapDatabase.cjs +1167 -0
- package/dist/v1/libs/storage/TinySetMapDatabase.d.mts +603 -0
- package/dist/v1/libs/storage/TinySetMapDatabase.d.mts.map +1 -0
- package/dist/v1/libs/storage/TinySetMapDatabase.mjs +1059 -0
- package/dist/v1/libs/sw/browser/TinyNotificationAdapter.cjs +126 -0
- package/dist/v1/libs/sw/browser/TinyNotificationAdapter.d.mts +132 -0
- package/dist/v1/libs/sw/browser/TinyNotificationAdapter.d.mts.map +1 -0
- package/dist/v1/libs/sw/browser/TinyNotificationAdapter.mjs +109 -0
- package/dist/v1/libs/sw/browser/TinyPushManager.cjs +310 -0
- package/dist/v1/libs/sw/browser/TinyPushManager.d.mts +168 -0
- package/dist/v1/libs/sw/browser/TinyPushManager.d.mts.map +1 -0
- package/dist/v1/libs/sw/browser/TinyPushManager.mjs +264 -0
- package/dist/v1/libs/sw/browser/TinyServiceWorker.cjs +1060 -0
- package/dist/v1/libs/sw/browser/TinyServiceWorker.d.mts +348 -0
- package/dist/v1/libs/sw/browser/TinyServiceWorker.d.mts.map +1 -0
- package/dist/v1/libs/sw/browser/TinyServiceWorker.mjs +933 -0
- package/dist/v1/libs/sw/browser/plugins/TabManager.cjs +315 -0
- package/dist/v1/libs/sw/browser/plugins/TabManager.d.mts +178 -0
- package/dist/v1/libs/sw/browser/plugins/TabManager.d.mts.map +1 -0
- package/dist/v1/libs/sw/browser/plugins/TabManager.mjs +274 -0
- package/dist/v1/libs/sw/browser/utils.cjs +28 -0
- package/dist/v1/libs/sw/browser/utils.d.mts +8 -0
- package/dist/v1/libs/sw/browser/utils.d.mts.map +1 -0
- package/dist/v1/libs/sw/browser/utils.mjs +21 -0
- package/dist/v1/libs/sw/service/TinyPushRouter.cjs +222 -0
- package/dist/v1/libs/sw/service/TinyPushRouter.d.mts +138 -0
- package/dist/v1/libs/sw/service/TinyPushRouter.d.mts.map +1 -0
- package/dist/v1/libs/sw/service/TinyPushRouter.mjs +201 -0
- package/dist/v1/libs/sw/service/TinyServiceWorkerEngine.cjs +3016 -0
- package/dist/v1/libs/sw/service/TinyServiceWorkerEngine.d.mts +993 -0
- package/dist/v1/libs/sw/service/TinyServiceWorkerEngine.d.mts.map +1 -0
- package/dist/v1/libs/sw/service/TinyServiceWorkerEngine.mjs +2558 -0
- package/dist/v1/libs/sw/service/plugins/GlobBypassPlugin.cjs +88 -0
- package/dist/v1/libs/sw/service/plugins/GlobBypassPlugin.d.mts +32 -0
- package/dist/v1/libs/sw/service/plugins/GlobBypassPlugin.d.mts.map +1 -0
- package/dist/v1/libs/sw/service/plugins/GlobBypassPlugin.mjs +69 -0
- package/dist/v1/libs/sw/service/plugins/GlobCachePlugin.cjs +112 -0
- package/dist/v1/libs/sw/service/plugins/GlobCachePlugin.d.mts +31 -0
- package/dist/v1/libs/sw/service/plugins/GlobCachePlugin.d.mts.map +1 -0
- package/dist/v1/libs/sw/service/plugins/GlobCachePlugin.mjs +91 -0
- package/dist/v1/libs/sw/service/plugins/Ping.cjs +32 -0
- package/dist/v1/libs/sw/service/plugins/Ping.d.mts +9 -0
- package/dist/v1/libs/sw/service/plugins/Ping.d.mts.map +1 -0
- package/dist/v1/libs/sw/service/plugins/Ping.mjs +25 -0
- package/dist/v1/libs/sw/service/plugins/TabManager.cjs +457 -0
- package/dist/v1/libs/sw/service/plugins/TabManager.d.mts +91 -0
- package/dist/v1/libs/sw/service/plugins/TabManager.d.mts.map +1 -0
- package/dist/v1/libs/sw/service/plugins/TabManager.mjs +372 -0
- package/dist/v1/libs/sw/service/plugins/ViteFileDetector.cjs +180 -0
- package/dist/v1/libs/sw/service/plugins/ViteFileDetector.d.mts +28 -0
- package/dist/v1/libs/sw/service/plugins/ViteFileDetector.d.mts.map +1 -0
- package/dist/v1/libs/sw/service/plugins/ViteFileDetector.mjs +148 -0
- package/dist/v1/libs/sw/service/shared/TinyPushPayload.cjs +199 -0
- package/dist/v1/libs/sw/service/shared/TinyPushPayload.d.mts +80 -0
- package/dist/v1/libs/sw/service/shared/TinyPushPayload.d.mts.map +1 -0
- package/dist/v1/libs/sw/service/shared/TinyPushPayload.mjs +174 -0
- package/dist/v1/libs/sw/utils.cjs +57 -0
- package/dist/v1/libs/sw/utils.d.mts +173 -0
- package/dist/v1/libs/sw/utils.d.mts.map +1 -0
- package/dist/v1/libs/sw/utils.mjs +50 -0
- package/dist/v1/libs/text/TinyI18/Browser-NON-DOM.cjs +57 -0
- package/dist/v1/libs/text/TinyI18/Browser-NON-DOM.d.mts +39 -0
- package/dist/v1/libs/text/TinyI18/Browser-NON-DOM.d.mts.map +1 -0
- package/dist/v1/libs/text/TinyI18/Browser-NON-DOM.mjs +48 -0
- package/dist/v1/libs/text/TinyI18/Browser.cjs +64 -0
- package/dist/v1/libs/text/TinyI18/Browser.d.mts +47 -0
- package/dist/v1/libs/text/TinyI18/Browser.d.mts.map +1 -0
- package/dist/v1/libs/text/TinyI18/Browser.mjs +57 -0
- package/dist/v1/libs/text/TinyI18/Node.cjs +49 -0
- package/dist/v1/libs/text/TinyI18/Node.d.mts +38 -0
- package/dist/v1/libs/text/TinyI18/Node.d.mts.map +1 -0
- package/dist/v1/libs/text/TinyI18/Node.mjs +43 -0
- package/dist/v1/libs/text/TinyI18/browser-utils.cjs +17 -0
- package/dist/v1/libs/text/TinyI18/browser-utils.d.mts +8 -0
- package/dist/v1/libs/text/TinyI18/browser-utils.d.mts.map +1 -0
- package/dist/v1/libs/text/TinyI18/browser-utils.mjs +13 -0
- package/dist/v1/libs/text/{TinyI18.cjs → TinyI18/index.cjs} +205 -104
- package/dist/v1/libs/text/{TinyI18.d.mts → TinyI18/index.d.mts} +141 -92
- package/dist/v1/libs/text/TinyI18/index.d.mts.map +1 -0
- package/dist/v1/libs/text/{TinyI18.mjs → TinyI18/index.mjs} +195 -101
- package/dist/v1/libs/tools/TinyBrowserMonitor.cjs +1088 -0
- package/dist/v1/libs/tools/TinyBrowserMonitor.d.mts +621 -0
- package/dist/v1/libs/tools/TinyBrowserMonitor.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyBrowserMonitor.mjs +940 -0
- package/dist/v1/libs/tools/TinyDebugger.cjs +180 -19
- package/dist/v1/libs/tools/TinyDebugger.d.mts +220 -24
- package/dist/v1/libs/tools/TinyDebugger.d.mts.map +1 -1
- package/dist/v1/libs/tools/TinyDebugger.mjs +161 -19
- package/dist/v1/libs/tools/TinyHtmlTagRegexBuilder.cjs +256 -0
- package/dist/v1/libs/tools/TinyHtmlTagRegexBuilder.d.mts +125 -0
- package/dist/v1/libs/tools/TinyHtmlTagRegexBuilder.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyHtmlTagRegexBuilder.mjs +223 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser-NON-DOM.cjs +23 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser-NON-DOM.d.mts +17 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser-NON-DOM.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser-NON-DOM.mjs +19 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser.cjs +23 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser.d.mts +17 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser.mjs +19 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/EmptyRequestCodes.cjs +390 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/EmptyRequestCodes.d.mts +9 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/EmptyRequestCodes.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/EmptyRequestCodes.mjs +387 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/JsDoc.cjs +2 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/JsDoc.d.mts +27 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/JsDoc.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/JsDoc.mjs +12 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/MozillaRequestCodes/LICENSE +53 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/MozillaRequestCodes/index.cjs +405 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/MozillaRequestCodes/index.d.mts +34 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/MozillaRequestCodes/index.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/MozillaRequestCodes/index.mjs +342 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/Node.cjs +23 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/Node.d.mts +17 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/Node.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/Node.mjs +19 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/RequestCodes.cjs +327 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/RequestCodes.d.mts +9 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/RequestCodes.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/RequestCodes.mjs +324 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/index.cjs +268 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/index.d.mts +107 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/index.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/index.mjs +238 -0
- package/dist/v1/libs/tools/TinyPasswordValidator.cjs +491 -0
- package/dist/v1/libs/tools/TinyPasswordValidator.d.mts +246 -0
- package/dist/v1/libs/tools/TinyPasswordValidator.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyPasswordValidator.mjs +434 -0
- package/dist/v1/libs/tools/TinyPkgExportValidator.cjs +48 -0
- package/dist/v1/libs/tools/TinyPkgExportValidator.d.mts +14 -0
- package/dist/v1/libs/tools/TinyPkgExportValidator.d.mts.map +1 -1
- package/dist/v1/libs/tools/TinyPkgExportValidator.mjs +44 -0
- package/dist/v1/libs/tools/TinySiteMap.cjs +1029 -0
- package/dist/v1/libs/tools/TinySiteMap.d.mts +429 -0
- package/dist/v1/libs/tools/TinySiteMap.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinySiteMap.mjs +910 -0
- package/dist/v1/libs/tools/TinySiteMapStream.cjs +121 -0
- package/dist/v1/libs/tools/TinySiteMapStream.d.mts +51 -0
- package/dist/v1/libs/tools/TinySiteMapStream.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinySiteMapStream.mjs +85 -0
- package/dist/v1/libs/tools/TinyURLSecurityVerifier.cjs +444 -0
- package/dist/v1/libs/tools/TinyURLSecurityVerifier.d.mts +217 -0
- package/dist/v1/libs/tools/TinyURLSecurityVerifier.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyURLSecurityVerifier.mjs +394 -0
- package/dist/v1/libs/tools/TinyUriParser/BlueSky.cjs +613 -0
- package/dist/v1/libs/tools/TinyUriParser/BlueSky.d.mts +152 -0
- package/dist/v1/libs/tools/TinyUriParser/BlueSky.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyUriParser/BlueSky.mjs +527 -0
- package/dist/v1/libs/tools/TinyUriParser/Discord.cjs +1119 -0
- package/dist/v1/libs/tools/TinyUriParser/Discord.d.mts +306 -0
- package/dist/v1/libs/tools/TinyUriParser/Discord.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyUriParser/Discord.mjs +968 -0
- package/dist/v1/libs/tools/TinyUriParser/MatrixProtocol.cjs +469 -0
- package/dist/v1/libs/tools/TinyUriParser/MatrixProtocol.d.mts +80 -0
- package/dist/v1/libs/tools/TinyUriParser/MatrixProtocol.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyUriParser/MatrixProtocol.mjs +379 -0
- package/dist/v1/libs/tools/TinyUriParser.cjs +217 -0
- package/dist/v1/libs/tools/TinyUriParser.d.mts +109 -0
- package/dist/v1/libs/tools/TinyUriParser.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyUriParser.mjs +183 -0
- package/dist/v1/libs/utils/TinyCloner.cjs +466 -0
- package/dist/v1/libs/utils/TinyCloner.d.mts +221 -0
- package/dist/v1/libs/utils/TinyCloner.d.mts.map +1 -0
- package/dist/v1/libs/utils/TinyCloner.mjs +416 -0
- package/dist/v1/libs/utils/TinyPromiseQueue.cjs +1 -1
- package/dist/v1/libs/utils/TinyPromiseQueue.d.mts +2 -2
- package/dist/v1/libs/utils/TinyPromiseQueue.d.mts.map +1 -1
- package/dist/v1/libs/utils/TinyPromiseQueue.mjs +1 -1
- package/dist/v1/libs/utils/TinyThrottledApi.cjs +333 -0
- package/dist/v1/libs/utils/TinyThrottledApi.d.mts +163 -0
- package/dist/v1/libs/utils/TinyThrottledApi.d.mts.map +1 -0
- package/dist/v1/libs/utils/TinyThrottledApi.mjs +294 -0
- package/dist/v1/libs/worker/browser/TinyWebWorker.cjs +342 -0
- package/dist/v1/libs/worker/browser/TinyWebWorker.d.mts +97 -0
- package/dist/v1/libs/worker/browser/TinyWebWorker.d.mts.map +1 -0
- package/dist/v1/libs/worker/browser/TinyWebWorker.mjs +305 -0
- package/dist/v1/libs/worker/engine/TinyWebWorkerEngine.cjs +346 -0
- package/dist/v1/libs/worker/engine/TinyWebWorkerEngine.d.mts +127 -0
- package/dist/v1/libs/worker/engine/TinyWebWorkerEngine.d.mts.map +1 -0
- package/dist/v1/libs/worker/engine/TinyWebWorkerEngine.mjs +304 -0
- package/dist/v1/regexp/Email.cjs +185 -0
- package/dist/v1/regexp/Email.d.mts +73 -0
- package/dist/v1/regexp/Email.d.mts.map +1 -0
- package/dist/v1/regexp/Email.mjs +153 -0
- package/dist/v1/regexp/Glob.cjs +293 -0
- package/dist/v1/regexp/Glob.d.mts +45 -0
- package/dist/v1/regexp/Glob.d.mts.map +1 -0
- package/dist/v1/regexp/Glob.mjs +260 -0
- package/dist/v1/regexp/Ipv4.cjs +57 -0
- package/dist/v1/regexp/Ipv4.d.mts +29 -0
- package/dist/v1/regexp/Ipv4.d.mts.map +1 -0
- package/dist/v1/regexp/Ipv4.mjs +45 -0
- package/dist/v1/regexp/Ipv6.cjs +67 -0
- package/dist/v1/regexp/Ipv6.d.mts +29 -0
- package/dist/v1/regexp/Ipv6.d.mts.map +1 -0
- package/dist/v1/regexp/Ipv6.mjs +54 -0
- package/dist/v1/regexp/SegmentExtractor.cjs +145 -0
- package/dist/v1/regexp/SegmentExtractor.d.mts +91 -0
- package/dist/v1/regexp/SegmentExtractor.d.mts.map +1 -0
- package/dist/v1/regexp/SegmentExtractor.mjs +116 -0
- package/dist/v1/regexp/UrlDetector.cjs +125 -0
- package/dist/v1/regexp/UrlDetector.d.mts +67 -0
- package/dist/v1/regexp/UrlDetector.d.mts.map +1 -0
- package/dist/v1/regexp/UrlDetector.mjs +102 -0
- package/dist/v1/regexp/Username/index.cjs +233 -0
- package/dist/v1/regexp/Username/index.d.mts +77 -0
- package/dist/v1/regexp/Username/index.d.mts.map +1 -0
- package/dist/v1/regexp/Username/index.mjs +199 -0
- package/dist/v1/regexp/Username/jsDoc.cjs +2 -0
- package/dist/v1/regexp/Username/jsDoc.d.mts +57 -0
- package/dist/v1/regexp/Username/jsDoc.d.mts.map +1 -0
- package/dist/v1/regexp/Username/jsDoc.mjs +18 -0
- package/dist/v1/regexp/Username/templates/BlueSky.cjs +56 -0
- package/dist/v1/regexp/Username/templates/BlueSky.d.mts +35 -0
- package/dist/v1/regexp/Username/templates/BlueSky.d.mts.map +1 -0
- package/dist/v1/regexp/Username/templates/BlueSky.mjs +52 -0
- package/dist/v1/regexp/Username/templates/Discord.cjs +505 -0
- package/dist/v1/regexp/Username/templates/Discord.d.mts +209 -0
- package/dist/v1/regexp/Username/templates/Discord.d.mts.map +1 -0
- package/dist/v1/regexp/Username/templates/Discord.mjs +458 -0
- package/dist/v1/regexp/Username/templates/MatrixProtocol.cjs +143 -0
- package/dist/v1/regexp/Username/templates/MatrixProtocol.d.mts +70 -0
- package/dist/v1/regexp/Username/templates/MatrixProtocol.d.mts.map +1 -0
- package/dist/v1/regexp/Username/templates/MatrixProtocol.mjs +128 -0
- package/dist/v1/regexp/Username/templates/deprecated/Discord.cjs +24 -0
- package/dist/v1/regexp/Username/templates/deprecated/Discord.d.mts +17 -0
- package/dist/v1/regexp/Username/templates/deprecated/Discord.d.mts.map +1 -0
- package/dist/v1/regexp/Username/templates/deprecated/Discord.mjs +20 -0
- package/dist/v1/regexp/Username/templates/index.cjs +11 -0
- package/dist/v1/regexp/Username/templates/index.d.mts +5 -0
- package/dist/v1/regexp/Username/templates/index.d.mts.map +1 -0
- package/dist/v1/regexp/Username/templates/index.mjs +4 -0
- package/dist/v1/regexp/index.cjs +41 -0
- package/dist/v1/regexp/index.d.mts +9 -0
- package/dist/v1/regexp/index.d.mts.map +1 -0
- package/dist/v1/regexp/index.mjs +8 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Browser.cjs +64 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Browser.d.mts +11 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Browser.d.mts.map +1 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Browser.mjs +51 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/FileInput.cjs +66 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/FileInput.d.mts +11 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/FileInput.d.mts.map +1 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/FileInput.mjs +51 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Node.cjs +39 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Node.d.mts +11 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Node.d.mts.map +1 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Node.mjs +28 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Template.cjs +494 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Template.d.mts +142 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Template.d.mts.map +1 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Template.mjs +445 -0
- package/dist/v1/webTemplates/bootstrap/5.3/html/BootstrapDialogs.cjs +30 -4
- package/dist/v1/webTemplates/bootstrap/5.3/html/BootstrapDialogs.d.mts +5 -2
- package/dist/v1/webTemplates/bootstrap/5.3/html/BootstrapDialogs.d.mts.map +1 -1
- package/dist/v1/webTemplates/bootstrap/5.3/html/BootstrapDialogs.mjs +29 -5
- package/dist/v1/webTemplates/media/MediaValidator/v1/Browser/index.cjs +135 -0
- package/dist/v1/webTemplates/media/MediaValidator/v1/Browser/index.d.mts +83 -0
- package/dist/v1/webTemplates/media/MediaValidator/v1/Browser/index.d.mts.map +1 -0
- package/dist/v1/webTemplates/media/MediaValidator/v1/Browser/index.mjs +120 -0
- package/dist/v1/webTemplates/media/MediaValidator/v1/Node/index.cjs +127 -0
- package/dist/v1/webTemplates/media/MediaValidator/v1/Node/index.d.mts +95 -0
- package/dist/v1/webTemplates/media/MediaValidator/v1/Node/index.d.mts.map +1 -0
- package/dist/v1/webTemplates/media/MediaValidator/v1/Node/index.mjs +109 -0
- package/dist/v1/webTemplates/multiformats/14.0/IPFSHasher/index.cjs +83 -0
- package/dist/v1/webTemplates/multiformats/14.0/IPFSHasher/index.d.mts +46 -0
- package/dist/v1/webTemplates/multiformats/14.0/IPFSHasher/index.d.mts.map +1 -0
- package/dist/v1/webTemplates/multiformats/14.0/IPFSHasher/index.mjs +71 -0
- package/dist/v1/webTemplates/vite/7.3/plugins/TinyVitePwaPlugin.cjs +493 -0
- package/dist/v1/webTemplates/vite/7.3/plugins/TinyVitePwaPlugin.d.mts +67 -0
- package/dist/v1/webTemplates/vite/7.3/plugins/TinyVitePwaPlugin.d.mts.map +1 -0
- package/dist/v1/webTemplates/vite/7.3/plugins/TinyVitePwaPlugin.mjs +399 -0
- package/dist/v1/webTemplates/vite/7.3/plugins/githubUtils.cjs +35 -0
- package/dist/v1/webTemplates/vite/7.3/plugins/githubUtils.d.mts +6 -0
- package/dist/v1/webTemplates/vite/7.3/plugins/githubUtils.d.mts.map +1 -0
- package/dist/v1/webTemplates/vite/7.3/plugins/githubUtils.mjs +29 -0
- package/docs/info/RegExp.md +74 -0
- package/docs/v1/Exports.md +101 -0
- package/docs/v1/README.md +113 -15
- package/docs/v1/basics/asyncReplace.md +2 -0
- package/docs/v1/basics/browserDetector.md +28 -11
- package/docs/v1/basics/crypto.md +85 -0
- package/docs/v1/basics/deprecated/html.md +2 -0
- package/docs/v1/basics/deprecated/objFilter.md +2 -0
- package/docs/v1/basics/html.md +2 -0
- package/docs/v1/basics/objChecker.md +55 -0
- package/docs/v1/basics/objFilter.md +57 -86
- package/docs/v1/basics/promiseUtils.md +12 -3
- package/docs/v1/basics/text.md +0 -1
- package/docs/v1/libs/array/TinyArrayComparator.md +50 -39
- package/docs/v1/libs/fs/TinyFS.md +752 -0
- package/docs/v1/libs/fs/TinyOPFSFileSystem.md +495 -0
- package/docs/v1/libs/fs/TinyStorageBucketFileSystem.md +407 -0
- package/docs/v1/libs/plugin/TinyPlugin.md +441 -0
- package/docs/v1/libs/plugin/TinyVersion.md +145 -0
- package/docs/v1/libs/router/TinyRouter.md +216 -0
- package/docs/v1/libs/storage/TinyMapCache.md +219 -0
- package/docs/v1/libs/storage/TinySetMapDatabase.md +478 -0
- package/docs/v1/libs/sw/browser/TinyNotificationAdapter.md +280 -0
- package/docs/v1/libs/sw/browser/TinyPushManager.md +782 -0
- package/docs/v1/libs/sw/browser/TinyServiceWorker.md +365 -0
- package/docs/v1/libs/sw/browser/plugins/TabManager.md +133 -0
- package/docs/v1/libs/sw/service/TinyPushRouter.md +314 -0
- package/docs/v1/libs/sw/service/TinyServiceWorkerEngine.md +748 -0
- package/docs/v1/libs/sw/service/plugins/GlobBypassPlugin.md +229 -0
- package/docs/v1/libs/sw/service/plugins/GlobCachePlugin.md +91 -0
- package/docs/v1/libs/sw/service/plugins/Ping.md +36 -0
- package/docs/v1/libs/sw/service/plugins/TabManager.md +64 -0
- package/docs/v1/libs/sw/service/plugins/ViteFileDetector.md +92 -0
- package/docs/v1/libs/sw/service/shared/TinyPushPayload.md +316 -0
- package/docs/v1/libs/text/TinyI18.md +80 -56
- package/docs/v1/libs/tools/TinyBrowserMonitor.md +170 -0
- package/docs/v1/libs/tools/TinyDebugger.md +117 -1
- package/docs/v1/libs/tools/TinyHtmlTagRegexBuilder.md +141 -0
- package/docs/v1/libs/tools/TinyHttpResponseRegistry.md +129 -0
- package/docs/v1/libs/tools/TinyPasswordValidator.md +153 -0
- package/docs/v1/libs/tools/TinyPkgExportValidator.md +45 -1
- package/docs/v1/libs/tools/TinySiteMap.md +134 -0
- package/docs/v1/libs/tools/TinySiteMapStream.md +97 -0
- package/docs/v1/libs/tools/TinyURLSecurityVerifier.md +146 -0
- package/docs/v1/libs/tools/TinyUriParser/Discord.md +374 -0
- package/docs/v1/libs/tools/TinyUriParser/MatrixProtocol.md +54 -0
- package/docs/v1/libs/tools/TinyUriParser.md +128 -0
- package/docs/v1/libs/utils/TinyCloner.md +126 -0
- package/docs/v1/libs/utils/TinyPromiseQueue.md +1 -1
- package/docs/v1/libs/utils/TinyThrottledApi.md +219 -0
- package/docs/v1/libs/worker/browser/TinyWebWorker.md +331 -0
- package/docs/v1/libs/worker/engine/TinyWebWorkerEngine.md +137 -0
- package/docs/v1/regexp/Email.md +127 -0
- package/docs/v1/regexp/Glob.md +155 -0
- package/docs/v1/regexp/IPv4.md +103 -0
- package/docs/v1/regexp/IPv6.md +122 -0
- package/docs/v1/regexp/SegmentExtractor.md +120 -0
- package/docs/v1/regexp/UrlDetector.md +117 -0
- package/docs/v1/regexp/Username/Base.md +131 -0
- package/docs/v1/regexp/Username/Discord.md +267 -0
- package/docs/v1/regexp/Username/MatrixProtocol.md +131 -0
- package/docs/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters.md +569 -0
- package/docs/v1/webTemplates/bootstrap/5.3/html/BootstrapDialogs.md +19 -7
- package/docs/v1/webTemplates/media/MediaValidator/v1/Browser.md +123 -0
- package/docs/v1/webTemplates/media/MediaValidator/v1/Node.md +136 -0
- package/docs/v1/webTemplates/multiformats/14.0/IPFSHasher.md +310 -0
- package/docs/v1/webTemplates/vite/7.3/plugins/TinyVitePwaPlugin.md +131 -0
- package/docs/v1/webTemplates/vite/7.3/plugins/githubUtils.md +50 -0
- package/package.json +303 -13
- package/types/EventEmitter.d.ts +48 -0
- package/dist/v1/libs/text/TinyI18.d.mts.map +0 -1
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('../../index.cjs');
|
|
4
|
+
var error = require('../../error.cjs');
|
|
5
|
+
var path = require('../../path.cjs');
|
|
6
|
+
var constants = require('../../constants.cjs');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @file OPFS backend for {@link TinyFSCore}.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @typedef {Object} OPFSFileSystemOptions
|
|
15
|
+
* @property {FileSystemDirectoryHandle} [root] Custom OPFS root. Defaults to `navigator.storage.getDirectory()`.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Origin Private File System backend.
|
|
20
|
+
*
|
|
21
|
+
* OPFS has no symbolic links, no permission bits and no way to set
|
|
22
|
+
* timestamps. Those operations are emulated by the base class and stored in
|
|
23
|
+
* memory, so they are lost when the tab is closed.
|
|
24
|
+
* @beta
|
|
25
|
+
*/
|
|
26
|
+
class TinyOPFSFileSystem extends index {
|
|
27
|
+
/** @type {FileSystemDirectoryHandle | null} */
|
|
28
|
+
#root;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* @param {import('../../index.mjs').FSOptions & OPFSFileSystemOptions} [options] Construction options.
|
|
32
|
+
*/
|
|
33
|
+
constructor(options = {}) {
|
|
34
|
+
super(options);
|
|
35
|
+
this.#root = options.root ?? null;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/** @returns {import('../../index.mjs').FSCapabilities} The capabilities advertised by OPFS. */
|
|
39
|
+
static get capabilities() {
|
|
40
|
+
return Object.freeze({
|
|
41
|
+
permissions: false,
|
|
42
|
+
ownership: false,
|
|
43
|
+
symlinks: false,
|
|
44
|
+
timestamps: false,
|
|
45
|
+
atomicRename: false,
|
|
46
|
+
seekableHandles: false,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Resolves the root directory handle used by every operation.
|
|
52
|
+
*
|
|
53
|
+
* Backends that store their tree inside a nested location — such as a
|
|
54
|
+
* storage bucket — override this hook and return the nested directory.
|
|
55
|
+
*
|
|
56
|
+
* @protected
|
|
57
|
+
* @returns {Promise<FileSystemDirectoryHandle>} The OPFS root directory.
|
|
58
|
+
* @throws {Error} When OPFS is not reachable in the current context.
|
|
59
|
+
*/
|
|
60
|
+
async _resolveRoot() {
|
|
61
|
+
if (this.#root !== null) {
|
|
62
|
+
return this.#root;
|
|
63
|
+
}
|
|
64
|
+
if (typeof navigator === 'undefined' || typeof navigator.storage?.getDirectory !== 'function') {
|
|
65
|
+
throw error.createFileSystemError(
|
|
66
|
+
'ENOSYS',
|
|
67
|
+
'getDirectory',
|
|
68
|
+
constants.ROOT_PATH,
|
|
69
|
+
'OPFS is not available in this environment',
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
this.#root = await navigator.storage.getDirectory();
|
|
73
|
+
return this.#root;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* @param {string[]} segments Normalised segments.
|
|
78
|
+
* @param {boolean} create When `true`, missing directories are created.
|
|
79
|
+
* @param {string} syscall Name of the originating operation.
|
|
80
|
+
* @param {string} displayPath Path used in error messages.
|
|
81
|
+
* @returns {Promise<FileSystemDirectoryHandle>} The resolved directory handle.
|
|
82
|
+
*/
|
|
83
|
+
async #resolveDirectory(segments, create, syscall, displayPath) {
|
|
84
|
+
let handle = await this._resolveRoot();
|
|
85
|
+
for (const segment of segments) {
|
|
86
|
+
try {
|
|
87
|
+
handle = await handle.getDirectoryHandle(segment, { create });
|
|
88
|
+
} catch (error$1) {
|
|
89
|
+
throw error.toFileSystemError(error$1, syscall, displayPath);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return handle;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* @param {string} targetPath Absolute path of the entry.
|
|
97
|
+
* @param {string} syscall Name of the originating operation.
|
|
98
|
+
* @returns {Promise<{ parent: FileSystemDirectoryHandle, name: string }>} The parent handle and leaf name.
|
|
99
|
+
*/
|
|
100
|
+
async #resolveParent(targetPath, syscall) {
|
|
101
|
+
const segments = path.toSegments(targetPath);
|
|
102
|
+
const name = segments.pop();
|
|
103
|
+
if (name === undefined) {
|
|
104
|
+
throw error.createFileSystemError('EINVAL', syscall, targetPath, 'the root has no parent');
|
|
105
|
+
}
|
|
106
|
+
const parent = await this.#resolveDirectory(segments, false, syscall, targetPath);
|
|
107
|
+
return { parent, name };
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* @param {FileSystemDirectoryHandle} directory Source directory.
|
|
112
|
+
* @param {string} displayPath Path used in error messages.
|
|
113
|
+
* @returns {Promise<Array<{ name: string, kind: 'file' | 'directory' }>>} The entries, sorted by name.
|
|
114
|
+
*/
|
|
115
|
+
async #readEntries(directory, displayPath) {
|
|
116
|
+
/** @type {Array<{ name: string, kind: 'file' | 'directory' }>} */
|
|
117
|
+
const entries = [];
|
|
118
|
+
try {
|
|
119
|
+
for await (const [name, handle] of directory.entries()) {
|
|
120
|
+
entries.push({ name, kind: handle.kind });
|
|
121
|
+
}
|
|
122
|
+
} catch (error$1) {
|
|
123
|
+
throw error.toFileSystemError(error$1, 'readdir', displayPath);
|
|
124
|
+
}
|
|
125
|
+
return entries.sort((left, right) => left.name.localeCompare(right.name));
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* @param {FileSystemDirectoryHandle} source Source directory.
|
|
130
|
+
* @param {FileSystemDirectoryHandle} destination Destination directory.
|
|
131
|
+
* @returns {Promise<void>} Resolves once the tree is copied.
|
|
132
|
+
*/
|
|
133
|
+
async #copyTree(source, destination) {
|
|
134
|
+
for await (const [name, entry] of source.entries()) {
|
|
135
|
+
if (entry.kind === 'directory') {
|
|
136
|
+
const childTarget = await destination.getDirectoryHandle(name, { create: true });
|
|
137
|
+
await this.#copyTree(/** @type {FileSystemDirectoryHandle} */ (entry), childTarget);
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
const fileHandle = /** @type {FileSystemFileHandle} */ (entry);
|
|
141
|
+
const file = await fileHandle.getFile();
|
|
142
|
+
const target = await destination.getFileHandle(name, { create: true });
|
|
143
|
+
const writable = await target.createWritable();
|
|
144
|
+
await writable.write(await file.arrayBuffer());
|
|
145
|
+
await writable.close();
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* @override
|
|
151
|
+
* @param {string} targetPath Absolute path of the file.
|
|
152
|
+
* @returns {Promise<Uint8Array>} The raw file contents.
|
|
153
|
+
*/
|
|
154
|
+
async _readFile(targetPath) {
|
|
155
|
+
const { parent, name } = await this.#resolveParent(targetPath, 'readFile');
|
|
156
|
+
try {
|
|
157
|
+
const handle = await parent.getFileHandle(name);
|
|
158
|
+
const file = await handle.getFile();
|
|
159
|
+
return new Uint8Array(await file.arrayBuffer());
|
|
160
|
+
} catch (error$1) {
|
|
161
|
+
throw error.toFileSystemError(error$1, 'readFile', targetPath, 'EISDIR');
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* @override
|
|
167
|
+
* @param {string} targetPath Absolute path of the file.
|
|
168
|
+
* @param {Uint8Array} bytes Payload to persist.
|
|
169
|
+
* @param {import('../../index.mjs').TWriteFileOptions} options Write options.
|
|
170
|
+
* @returns {Promise<void>} Resolves once the payload is committed.
|
|
171
|
+
*/
|
|
172
|
+
async _writeFile(targetPath, bytes, options) {
|
|
173
|
+
const { parent, name } = await this.#resolveParent(targetPath, 'writeFile');
|
|
174
|
+
const payload = /** @type {Uint8Array<ArrayBuffer>} */ (bytes);
|
|
175
|
+
try {
|
|
176
|
+
const handle = await parent.getFileHandle(name, { create: true });
|
|
177
|
+
const writable = await handle.createWritable({ keepExistingData: options.append === true });
|
|
178
|
+
if (options.append === true) {
|
|
179
|
+
const existing = await handle.getFile();
|
|
180
|
+
await writable.write({ type: 'write', position: existing.size, data: payload });
|
|
181
|
+
} else {
|
|
182
|
+
await writable.write(payload);
|
|
183
|
+
}
|
|
184
|
+
await writable.close();
|
|
185
|
+
} catch (error$1) {
|
|
186
|
+
throw error.toFileSystemError(error$1, 'writeFile', targetPath);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* @override
|
|
192
|
+
* @param {string} targetPath Absolute path of the directory.
|
|
193
|
+
* @returns {Promise<import('../../stats.mjs').FSDirectoryEntry[]>} The directory entries.
|
|
194
|
+
*/
|
|
195
|
+
async _readdir(targetPath) {
|
|
196
|
+
const directory = await this.#resolveDirectory(
|
|
197
|
+
path.toSegments(targetPath),
|
|
198
|
+
false,
|
|
199
|
+
'readdir',
|
|
200
|
+
targetPath,
|
|
201
|
+
);
|
|
202
|
+
return this.#readEntries(directory, targetPath);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* @override
|
|
207
|
+
* @param {string} targetPath Absolute path of the directory.
|
|
208
|
+
* @param {import('../../index.mjs').TMkdirOptions} options Creation options.
|
|
209
|
+
* @returns {Promise<void>} Resolves once the directory exists.
|
|
210
|
+
*/
|
|
211
|
+
async _mkdir(targetPath, options) {
|
|
212
|
+
const segments = path.toSegments(targetPath);
|
|
213
|
+
if (segments.length === 0) {
|
|
214
|
+
if (options.recursive === true) {
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
throw error.createFileSystemError('EEXIST', 'mkdir', targetPath);
|
|
218
|
+
}
|
|
219
|
+
if (options.recursive === true) {
|
|
220
|
+
await this.#resolveDirectory(segments, true, 'mkdir', targetPath);
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
const { parent, name } = await this.#resolveParent(targetPath, 'mkdir');
|
|
224
|
+
const entries = await this.#readEntries(parent, targetPath);
|
|
225
|
+
if (entries.some((entry) => entry.name === name)) {
|
|
226
|
+
throw error.createFileSystemError('EEXIST', 'mkdir', targetPath);
|
|
227
|
+
}
|
|
228
|
+
try {
|
|
229
|
+
await parent.getDirectoryHandle(name, { create: true });
|
|
230
|
+
} catch (error$1) {
|
|
231
|
+
throw error.toFileSystemError(error$1, 'mkdir', targetPath);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* @override
|
|
237
|
+
* @param {string} targetPath Absolute path of the entry.
|
|
238
|
+
* @param {import('../../index.mjs').TRmOptions} options Removal options.
|
|
239
|
+
* @returns {Promise<void>} Resolves once the entry is gone.
|
|
240
|
+
*/
|
|
241
|
+
async _rm(targetPath, options) {
|
|
242
|
+
const { parent, name } = await this.#resolveParent(targetPath, 'rm');
|
|
243
|
+
const entries = await this.#readEntries(parent, targetPath);
|
|
244
|
+
const target = entries.find((entry) => entry.name === name);
|
|
245
|
+
if (target === undefined) {
|
|
246
|
+
if (options.force === true) {
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
throw error.createFileSystemError('ENOENT', 'rm', targetPath);
|
|
250
|
+
}
|
|
251
|
+
if (target.kind === 'directory' && options.recursive !== true) {
|
|
252
|
+
const handle = await parent.getDirectoryHandle(name);
|
|
253
|
+
const children = await this.#readEntries(handle, targetPath);
|
|
254
|
+
if (children.length > 0) {
|
|
255
|
+
throw error.createFileSystemError('ENOTEMPTY', 'rm', targetPath);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
try {
|
|
259
|
+
await parent.removeEntry(name, { recursive: options.recursive === true });
|
|
260
|
+
} catch (error$1) {
|
|
261
|
+
throw error.toFileSystemError(error$1, 'rm', targetPath);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
/**
|
|
266
|
+
* @override
|
|
267
|
+
* @param {string} targetPath Absolute path of the entry.
|
|
268
|
+
* @returns {Promise<import('../../stats.mjs').FSStatDescriptor | undefined>}
|
|
269
|
+
*/
|
|
270
|
+
async _stat(targetPath) {
|
|
271
|
+
const segments = path.toSegments(targetPath);
|
|
272
|
+
if (segments.length === 0) {
|
|
273
|
+
return { name: constants.ROOT_PATH, kind: 'directory', size: 0, mtimeMs: Date.now() };
|
|
274
|
+
}
|
|
275
|
+
const name = /** @type {string} */ (segments.pop());
|
|
276
|
+
const parent = await this.#resolveDirectory(segments, false, 'stat', targetPath);
|
|
277
|
+
const entries = await this.#readEntries(parent, targetPath);
|
|
278
|
+
const target = entries.find((entry) => entry.name === name);
|
|
279
|
+
if (target === undefined) {
|
|
280
|
+
return undefined;
|
|
281
|
+
}
|
|
282
|
+
if (target.kind === 'directory') {
|
|
283
|
+
return { name, kind: 'directory', size: 0, mtimeMs: Date.now() };
|
|
284
|
+
}
|
|
285
|
+
const handle = await parent.getFileHandle(name);
|
|
286
|
+
const file = await handle.getFile();
|
|
287
|
+
return { name, kind: 'file', size: file.size, mtimeMs: file.lastModified };
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
/**
|
|
291
|
+
* @override
|
|
292
|
+
* @param {string} oldPath Current absolute path.
|
|
293
|
+
* @param {string} newPath Target absolute path.
|
|
294
|
+
* @returns {Promise<void>} Resolves once the move is complete.
|
|
295
|
+
*/
|
|
296
|
+
async _rename(oldPath, newPath) {
|
|
297
|
+
const source = await this._stat(oldPath);
|
|
298
|
+
if (source === undefined) {
|
|
299
|
+
throw error.createFileSystemError('ENOENT', 'rename', oldPath);
|
|
300
|
+
}
|
|
301
|
+
if (source.kind === 'directory') {
|
|
302
|
+
const sourceHandle = await this.#resolveDirectory(
|
|
303
|
+
path.toSegments(oldPath),
|
|
304
|
+
false,
|
|
305
|
+
'rename',
|
|
306
|
+
oldPath,
|
|
307
|
+
);
|
|
308
|
+
const destinationHandle = await this.#resolveDirectory(
|
|
309
|
+
path.toSegments(newPath),
|
|
310
|
+
true,
|
|
311
|
+
'rename',
|
|
312
|
+
newPath,
|
|
313
|
+
);
|
|
314
|
+
await this.#copyTree(sourceHandle, destinationHandle);
|
|
315
|
+
} else {
|
|
316
|
+
const bytes = await this._readFile(oldPath);
|
|
317
|
+
await this._writeFile(newPath, bytes, { append: false });
|
|
318
|
+
}
|
|
319
|
+
await this._rm(oldPath, { recursive: true, force: true });
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
/**
|
|
323
|
+
* @override
|
|
324
|
+
* @param {string} sourcePath Absolute path of the source file.
|
|
325
|
+
* @param {string} destinationPath Absolute path of the destination file.
|
|
326
|
+
* @returns {Promise<void>} Resolves once the copy is complete.
|
|
327
|
+
*/
|
|
328
|
+
async _copyFile(sourcePath, destinationPath) {
|
|
329
|
+
const bytes = await this._readFile(sourcePath);
|
|
330
|
+
await this._writeFile(destinationPath, bytes, { append: false });
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
module.exports = TinyOPFSFileSystem;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file OPFS backend for {@link TinyFSCore}.
|
|
3
|
+
*/
|
|
4
|
+
import TinyFSCore from '../../index.mjs';
|
|
5
|
+
export type OPFSFileSystemOptions = {
|
|
6
|
+
/**
|
|
7
|
+
* Custom OPFS root. Defaults to `navigator.storage.getDirectory()`.
|
|
8
|
+
*/
|
|
9
|
+
root?: FileSystemDirectoryHandle;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* @typedef {Object} OPFSFileSystemOptions
|
|
13
|
+
* @property {FileSystemDirectoryHandle} [root] Custom OPFS root. Defaults to `navigator.storage.getDirectory()`.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Origin Private File System backend.
|
|
17
|
+
*
|
|
18
|
+
* OPFS has no symbolic links, no permission bits and no way to set
|
|
19
|
+
* timestamps. Those operations are emulated by the base class and stored in
|
|
20
|
+
* memory, so they are lost when the tab is closed.
|
|
21
|
+
* @beta
|
|
22
|
+
*/
|
|
23
|
+
declare class TinyOPFSFileSystem extends TinyFSCore {
|
|
24
|
+
#private;
|
|
25
|
+
/**
|
|
26
|
+
* @param {import('../../index.mjs').FSOptions & OPFSFileSystemOptions} [options] Construction options.
|
|
27
|
+
*/
|
|
28
|
+
constructor(options?: import('../../index.mjs').FSOptions & OPFSFileSystemOptions);
|
|
29
|
+
/** @returns {import('../../index.mjs').FSCapabilities} The capabilities advertised by OPFS. */
|
|
30
|
+
static get capabilities(): import('../../index.mjs').FSCapabilities;
|
|
31
|
+
/**
|
|
32
|
+
* Resolves the root directory handle used by every operation.
|
|
33
|
+
*
|
|
34
|
+
* Backends that store their tree inside a nested location — such as a
|
|
35
|
+
* storage bucket — override this hook and return the nested directory.
|
|
36
|
+
*
|
|
37
|
+
* @protected
|
|
38
|
+
* @returns {Promise<FileSystemDirectoryHandle>} The OPFS root directory.
|
|
39
|
+
* @throws {Error} When OPFS is not reachable in the current context.
|
|
40
|
+
*/
|
|
41
|
+
protected _resolveRoot(): Promise<FileSystemDirectoryHandle>;
|
|
42
|
+
/**
|
|
43
|
+
* @override
|
|
44
|
+
* @param {string} targetPath Absolute path of the file.
|
|
45
|
+
* @returns {Promise<Uint8Array>} The raw file contents.
|
|
46
|
+
*/
|
|
47
|
+
_readFile(targetPath: string): Promise<Uint8Array>;
|
|
48
|
+
/**
|
|
49
|
+
* @override
|
|
50
|
+
* @param {string} targetPath Absolute path of the file.
|
|
51
|
+
* @param {Uint8Array} bytes Payload to persist.
|
|
52
|
+
* @param {import('../../index.mjs').TWriteFileOptions} options Write options.
|
|
53
|
+
* @returns {Promise<void>} Resolves once the payload is committed.
|
|
54
|
+
*/
|
|
55
|
+
_writeFile(targetPath: string, bytes: Uint8Array, options: import('../../index.mjs').TWriteFileOptions): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* @override
|
|
58
|
+
* @param {string} targetPath Absolute path of the directory.
|
|
59
|
+
* @returns {Promise<import('../../stats.mjs').FSDirectoryEntry[]>} The directory entries.
|
|
60
|
+
*/
|
|
61
|
+
_readdir(targetPath: string): Promise<import('../../stats.mjs').FSDirectoryEntry[]>;
|
|
62
|
+
/**
|
|
63
|
+
* @override
|
|
64
|
+
* @param {string} targetPath Absolute path of the directory.
|
|
65
|
+
* @param {import('../../index.mjs').TMkdirOptions} options Creation options.
|
|
66
|
+
* @returns {Promise<void>} Resolves once the directory exists.
|
|
67
|
+
*/
|
|
68
|
+
_mkdir(targetPath: string, options: import('../../index.mjs').TMkdirOptions): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* @override
|
|
71
|
+
* @param {string} targetPath Absolute path of the entry.
|
|
72
|
+
* @param {import('../../index.mjs').TRmOptions} options Removal options.
|
|
73
|
+
* @returns {Promise<void>} Resolves once the entry is gone.
|
|
74
|
+
*/
|
|
75
|
+
_rm(targetPath: string, options: import('../../index.mjs').TRmOptions): Promise<void>;
|
|
76
|
+
/**
|
|
77
|
+
* @override
|
|
78
|
+
* @param {string} targetPath Absolute path of the entry.
|
|
79
|
+
* @returns {Promise<import('../../stats.mjs').FSStatDescriptor | undefined>}
|
|
80
|
+
*/
|
|
81
|
+
_stat(targetPath: string): Promise<import('../../stats.mjs').FSStatDescriptor | undefined>;
|
|
82
|
+
/**
|
|
83
|
+
* @override
|
|
84
|
+
* @param {string} oldPath Current absolute path.
|
|
85
|
+
* @param {string} newPath Target absolute path.
|
|
86
|
+
* @returns {Promise<void>} Resolves once the move is complete.
|
|
87
|
+
*/
|
|
88
|
+
_rename(oldPath: string, newPath: string): Promise<void>;
|
|
89
|
+
/**
|
|
90
|
+
* @override
|
|
91
|
+
* @param {string} sourcePath Absolute path of the source file.
|
|
92
|
+
* @param {string} destinationPath Absolute path of the destination file.
|
|
93
|
+
* @returns {Promise<void>} Resolves once the copy is complete.
|
|
94
|
+
*/
|
|
95
|
+
_copyFile(sourcePath: string, destinationPath: string): Promise<void>;
|
|
96
|
+
}
|
|
97
|
+
export default TinyOPFSFileSystem;
|
|
98
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../../../../src/v1/libs/fs/plugins/OPFS/index.mjs"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAMtC,YAAkB,qBAAqB,GACvC;;;;IAAuC,IAAI,AAA3C,CACF,EADa,yBAAyB,CACtC;CAAA,CAAA;AAHD;;;GAGG;AAEH;;;;;;;GAOG;AACH,cAAM,kBAAmB,SAAQ,UAAU;;IAIzC;;OAEG;IACH,YAAY,OAAO,AAFhB,CACF,EADU,OAAO,iBAAiB,EAAE,SAAS,GAAG,qBAEzB,EAGvB;IAED,+FAA+F;IAC/F,MAAM,KAAK,YAAY,IADT,OAAO,iBAAiB,EAAE,cAAc,CAUrD;IAED;;;;;;;;;OASG;IACH,UAAM,YAAY,IAHL,OAAO,CAAC,yBAAyB,CAAC,CAiB9C;IA2ED;;;;OAIG;IACG,SAAS,CAAC,UAAU,EAHf,MAGe,GAFb,OAAO,CAAC,UAAU,CAAC,CAW/B;IAED;;;;;;OAMG;IACG,UAAU,CAAC,UAAU,EALhB,MAKgB,EAAE,KAAK,EAJvB,UAIuB,EAAE,OAAO,EAHhC,OAAO,iBAAiB,EAAE,iBAGM,GAF9B,OAAO,CAAC,IAAI,CAAC,CAkBzB;IAED;;;;OAIG;IACG,QAAQ,CAAC,UAAU,EAHd,MAGc,GAFZ,OAAO,CAAC,OAAO,iBAAiB,EAAE,gBAAgB,EAAE,CAAC,CAUjE;IAED;;;;;OAKG;IACG,MAAM,CAAC,UAAU,EAJZ,MAIY,EAAE,OAAO,EAHrB,OAAO,iBAAiB,EAAE,aAGL,GAFnB,OAAO,CAAC,IAAI,CAAC,CAwBzB;IAED;;;;;OAKG;IACG,GAAG,CAAC,UAAU,EAJT,MAIS,EAAE,OAAO,EAHlB,OAAO,iBAAiB,EAAE,UAGR,GAFhB,OAAO,CAAC,IAAI,CAAC,CAwBzB;IAED;;;;OAIG;IACG,KAAK,CAAC,UAAU,EAHX,MAGW,GAFT,OAAO,CAAC,OAAO,iBAAiB,EAAE,gBAAgB,GAAG,SAAS,CAAC,CAoB3E;IAED;;;;;OAKG;IACG,OAAO,CAAC,OAAO,EAJV,MAIU,EAAE,OAAO,EAHnB,MAGmB,GAFjB,OAAO,CAAC,IAAI,CAAC,CA0BzB;IAED;;;;;OAKG;IACG,SAAS,CAAC,UAAU,EAJf,MAIe,EAAE,eAAe,EAHhC,MAGgC,GAF9B,OAAO,CAAC,IAAI,CAAC,CAKzB;CACF;eAEc,kBAAkB"}
|