tiny-essentials 1.28.18 โ 1.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/css/TinyCookieConsent.min.css +1 -0
- package/dist/v1/css/TinyCookieConsent.min.css.map +1 -0
- package/dist/v1/css/TinyDraggerExample.min.css +1 -0
- package/dist/v1/css/TinyDraggerExample.min.css.map +1 -0
- package/dist/v1/css/TinyLoadingScreen.min.css +1 -0
- package/dist/v1/css/TinyLoadingScreen.min.css.map +1 -0
- package/dist/v1/css/TinyNotify.min.css +1 -0
- package/dist/v1/css/TinyNotify.min.css.map +1 -0
- package/dist/v1/css/aiMarker.min.css +1 -0
- package/dist/v1/css/aiMarker.min.css.map +1 -0
- 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 +725 -0
- package/dist/v1/webTemplates/bootstrap/5.3/html/BootstrapDialogs.d.mts +293 -0
- package/dist/v1/webTemplates/bootstrap/5.3/html/BootstrapDialogs.d.mts.map +1 -0
- package/dist/v1/webTemplates/bootstrap/5.3/html/BootstrapDialogs.mjs +614 -0
- package/dist/v1/webTemplates/bootstrap/5.3/scss/input/Placeholder-Colors-Fix.scss +64 -0
- package/dist/v1/webTemplates/bootstrap/5.3/scss/spacing/Spacing-Plus.scss +31 -0
- 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 +111 -0
- package/docs/v1/README.md +117 -13
- 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 +174 -0
- 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 +313 -18
- package/types/EventEmitter.d.ts +48 -0
- package/dist/v1/libs/text/TinyI18.d.mts.map +0 -1
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
# ๐ TinyRouter Documentation
|
|
2
|
+
|
|
3
|
+
`TinyRouter` is a lightweight, framework-agnostic JavaScript router designed for managing client-side navigation. It allows developers to map URL paths to specific functions, handle dynamic parameters, and manage browser history seamlessly.
|
|
4
|
+
|
|
5
|
+
## ๐ Table of Contents
|
|
6
|
+
1. [Overview](#overview)
|
|
7
|
+
2. [Key Features](#key-features)
|
|
8
|
+
3. [Getting Started](#getting-started)
|
|
9
|
+
4. [API Reference](#api-reference)
|
|
10
|
+
- [Properties (Getters & Setters)](#properties-getters--setters)
|
|
11
|
+
- [Constructor](#constructor)
|
|
12
|
+
- [Route Management](#route-management)
|
|
13
|
+
- [Navigation](#navigation)
|
|
14
|
+
- [History Management](#history-management)
|
|
15
|
+
- [Lifecycle Management](#lifecycle-management)
|
|
16
|
+
5. [Advanced Configuration](#advanced-configuration)
|
|
17
|
+
6. [Error Handling](#error-handling)
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## ๐ Overview
|
|
22
|
+
|
|
23
|
+
When building Single Page Applications (SPAs), the URL needs to change when the user "moves" between views, even though the page doesn't actually reload. `TinyRouter` listens to the browser's `popstate` event and matches the current URL against a list of registered routes to execute the correct logic.
|
|
24
|
+
|
|
25
|
+
## โจ Key Features
|
|
26
|
+
|
|
27
|
+
* **๐งฉ Flexible Route Definition:** Define routes using simple strings (e.g., `'/user/:id'`) or complex regular expressions.
|
|
28
|
+
* **๐๏ธ Lightweight:** No external dependencies.
|
|
29
|
+
* **๐ ๏ธ Debugging Support:** Integrated with `TinyDebugger` for easy troubleshooting.
|
|
30
|
+
* **๐ History Management:** Full control over navigation history, including limits and manual entry removal.
|
|
31
|
+
* **๐ก Lifecycle Hooks:** Hooks for route changes (`onRouteChanged`) and missing routes (`onRouteNotFound`).
|
|
32
|
+
* **โณ Sequential Operations:** Uses an internal promise queue to handle asynchronous routing operations sequentially.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## ๐ Getting Started
|
|
37
|
+
|
|
38
|
+
To use the router, you need to instantiate it, define your routes, and then call the `.start()` method.
|
|
39
|
+
|
|
40
|
+
### Basic Example
|
|
41
|
+
|
|
42
|
+
```javascript
|
|
43
|
+
import TinyRouter from 'tiny-essentials/libs/router/TinyRouter';
|
|
44
|
+
|
|
45
|
+
// 1. Initialize the router
|
|
46
|
+
const router = new TinyRouter({
|
|
47
|
+
debugMode: true,
|
|
48
|
+
onRouteChanged: (match) => console.log('Navigated to:', match.path)
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
// 2. Register routes
|
|
52
|
+
router.add('/home', () => {
|
|
53
|
+
console.log('Welcome to the Home Page!');
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
router.add('/user/:id', (match) => {
|
|
57
|
+
console.log(`Viewing user with ID: ${match.params.id}`);
|
|
58
|
+
console.log(`Query params:`, match.query);
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
// 3. Start the router (Crucial for deep-linking support)
|
|
62
|
+
router.start();
|
|
63
|
+
|
|
64
|
+
// 4. Navigate programmatically
|
|
65
|
+
await router.navigate('/user/42?theme=dark');
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## ๐ API Reference
|
|
71
|
+
|
|
72
|
+
### ๐๏ธ Constructor
|
|
73
|
+
|
|
74
|
+
`new TinyRouter(options)`
|
|
75
|
+
|
|
76
|
+
Initializes the router instance.
|
|
77
|
+
|
|
78
|
+
| Property | Type | Default | Description |
|
|
79
|
+
| :--- | :--- | :--- | :--- |
|
|
80
|
+
| `debugMode` | `boolean` | `false` | Enables internal debug logging. |
|
|
81
|
+
| `useLogColors` | `boolean` | `false` | Enables colored console output. |
|
|
82
|
+
| `detectHistoryChange` | `boolean` | `true` | If `true`, ensures the URL actually changed before resolving navigation. |
|
|
83
|
+
| `logger` | `Console` | `console` | A custom logger object (must implement standard console methods). |
|
|
84
|
+
| `onRouteChanged` | `RouteCallback` | `() => {}` | Callback executed when a route matches successfully. |
|
|
85
|
+
| `onRouteNotFound` | `RouteNotFoundCallback` | `() => {}` | Callback executed when the current URL matches no registered routes. |
|
|
86
|
+
| `historyLimit` | `number` | `0` | Max history entries. Use `-1` for unlimited, or `0` to disable history tracking. |
|
|
87
|
+
|
|
88
|
+
### โ๏ธ Properties (Getters & Setters)
|
|
89
|
+
|
|
90
|
+
| Property | Type | Description |
|
|
91
|
+
| :--- | :--- | :--- |
|
|
92
|
+
| `size` | `number` | Returns the number of registered routes. |
|
|
93
|
+
| `routes` | `string[]` | Returns an array of all registered path patterns. |
|
|
94
|
+
| `history` | `RouterHistoryEntry[]` | **Getter:** Returns a copy of the current history. <br> **Setter:** Imports a validated history array. |
|
|
95
|
+
| `historyLimit` | `number` | Gets the maximum number of history entries allowed. |
|
|
96
|
+
| `detectHistoryChange` | `boolean` | Gets/Sets whether to detect if navigation actually changed the URL. |
|
|
97
|
+
| `onRouteChanged` | `RouteCallback` | Gets/Sets the global route change callback. |
|
|
98
|
+
| `onRouteNotFound` | `RouteNotFoundCallback` | Gets/Sets the global "not found" callback. |
|
|
99
|
+
| `started` | `boolean` | Returns `true` if the router is currently running. |
|
|
100
|
+
| `isDestroyed` | `boolean` | Returns `true` if the router instance has been destroyed. |
|
|
101
|
+
|
|
102
|
+
### ๐ค๏ธ Route Management
|
|
103
|
+
|
|
104
|
+
#### `.add(patternOrOptions, callback)`
|
|
105
|
+
Registers a new route.
|
|
106
|
+
|
|
107
|
+
* **Mode 1: Simple String**
|
|
108
|
+
`router.add('/profile/:username', callback);`
|
|
109
|
+
Uses default segment extraction.
|
|
110
|
+
* **Mode 2: Advanced Object (Regex)**
|
|
111
|
+
`router.add({ pattern: '/post/:id', searchValue: /:id/, replaceValue: ... }, callback);`
|
|
112
|
+
Allows custom regex logic via `SegmentExtractor`.
|
|
113
|
+
* **Mode 3: Callback-in-Object**
|
|
114
|
+
`router.add({ pattern: '/path', callback: (p) => console.log(p) });`
|
|
115
|
+
The callback is executed with the pattern string as its argument.
|
|
116
|
+
|
|
117
|
+
**Throws:**
|
|
118
|
+
* `TypeError`: If arguments are invalid.
|
|
119
|
+
* `Error`: If the pattern is already registered.
|
|
120
|
+
|
|
121
|
+
#### `.remove(pathPattern)`
|
|
122
|
+
Removes a route by its string pattern.
|
|
123
|
+
|
|
124
|
+
#### `.has(pathPattern)`
|
|
125
|
+
Returns `true` if the pattern is already registered.
|
|
126
|
+
|
|
127
|
+
#### `.clear()`
|
|
128
|
+
Removes all registered routes from the router.
|
|
129
|
+
|
|
130
|
+
#### `.clearAll()`
|
|
131
|
+
Clears all routes AND the entire navigation history.
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
### ๐งญ Navigation
|
|
136
|
+
|
|
137
|
+
#### `.navigate(path, state = {})`
|
|
138
|
+
Moves the browser to a new URL.
|
|
139
|
+
* **`path`**: The target string (e.g., `'/settings'`).
|
|
140
|
+
* **`state`**: An object to store in the browser history.
|
|
141
|
+
* **Returns**: `Promise<void>`
|
|
142
|
+
|
|
143
|
+
#### `.go(delta)`
|
|
144
|
+
Moves through the history stack.
|
|
145
|
+
* **`delta`**: Integer (e.g., `-1` for back, `1` for forward).
|
|
146
|
+
* **Returns**: `Promise<boolean>` (resolves to `true` if the URL actually changed, `false` otherwise).
|
|
147
|
+
|
|
148
|
+
#### `.back()` / `.forward()`
|
|
149
|
+
Convenience methods for `go(-1)` and `go(1)`.
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
### ๐ History Management
|
|
154
|
+
|
|
155
|
+
#### `.removeHistoryEntry(index)`
|
|
156
|
+
Removes a specific entry from the history stack by its index.
|
|
157
|
+
* **Throws:** `TypeError` (if index is not an integer) or `RangeError` (if index is out of bounds).
|
|
158
|
+
|
|
159
|
+
#### `.clearHistory()`
|
|
160
|
+
Wipes the current navigation history.
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
### ๐ ๏ธ Lifecycle Management
|
|
165
|
+
|
|
166
|
+
#### `.start()`
|
|
167
|
+
**Important:** You must call this to activate the router. It resolves the current URL immediately so that if a user refreshes a page on a specific URL, the router can match the correct route.
|
|
168
|
+
|
|
169
|
+
#### `.stop()`
|
|
170
|
+
Stops the router, removes event listeners, and clears all data.
|
|
171
|
+
|
|
172
|
+
#### `.destroy()`
|
|
173
|
+
Permanently destroys the router instance, stopping it and preventing further use.
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## ๐ ๏ธ Advanced Configuration
|
|
178
|
+
|
|
179
|
+
### Custom Regex Matching
|
|
180
|
+
If the standard `:param` syntax is not enough, you can use the object configuration in `.add()`:
|
|
181
|
+
|
|
182
|
+
```javascript
|
|
183
|
+
router.add({
|
|
184
|
+
pattern: '/files/([0-9]+).pdf', // The path template
|
|
185
|
+
searchValue: /([0-9]+)/, // The regex to find the dynamic part
|
|
186
|
+
replaceValue: (match) => match[1] // How to extract the value
|
|
187
|
+
}, (match) => {
|
|
188
|
+
console.log('File ID:', match.params.id);
|
|
189
|
+
});
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### Global Callbacks
|
|
193
|
+
You can define global logic that runs every time the URL changes:
|
|
194
|
+
|
|
195
|
+
```javascript
|
|
196
|
+
const router = new TinyRouter({
|
|
197
|
+
onRouteChanged: (match) => {
|
|
198
|
+
// Update the page title dynamically
|
|
199
|
+
document.title = `App - ${match.path}`;
|
|
200
|
+
},
|
|
201
|
+
onRouteNotFound: ({ path }) => {
|
|
202
|
+
// Redirect to 404 or show a custom error UI
|
|
203
|
+
console.error(`404: ${path} not found`);
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## โ ๏ธ Error Handling
|
|
211
|
+
|
|
212
|
+
`TinyRouter` uses strict validation to ensure stability.
|
|
213
|
+
|
|
214
|
+
* **`TypeError`**: Thrown when passing incorrect data types (e.g., non-integer `historyLimit` or invalid `pathPattern`).
|
|
215
|
+
* **`RangeError`**: Thrown when attempting to access a history index that is out of bounds.
|
|
216
|
+
* **`Error`**: Thrown when attempting to register a duplicate route or starting a router that is already running.
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
# ๐ฆ TinyMapCache Documentation
|
|
2
|
+
|
|
3
|
+
`TinyMapCache` is a lightweight, event-driven, in-memory cache manager designed for JavaScript environments. It is optimized for preventing duplicate requests and managing temporary data with automatic expiration.
|
|
4
|
+
|
|
5
|
+
## ๐ Key Features
|
|
6
|
+
|
|
7
|
+
* ๐ **High Performance:** Uses an in-memory `Map` for near-instantaneous data retrieval.
|
|
8
|
+
* โฑ๏ธ **TTL (Time-To-Live):** Automatically handles data expiration based on a configurable millisecond timer.
|
|
9
|
+
* ๐ **Event-Driven Architecture:** Extends `EventEmitter` to provide hooks for lifecycle changes (`set`, `delete`, `expire`, `purge`, `clear`).
|
|
10
|
+
* ๐ก๏ธ **Data Integrity:** Uses `structuredClone` to return deep copies of data, preventing accidental mutations of the cached items.
|
|
11
|
+
* ๐งน **Cascaded Purging:** Features a unique "Global Purge" capability that can trigger expiration checks across all active cache instances simultaneously.
|
|
12
|
+
* ๐ **Familiar Iteration API:** Implements `keys()`, `values()`, `entries()`, `forEach()` and `Symbol.iterator`, so it can be used in `for...of` loops and spread syntax just like a native `Map`.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## ๐ ๏ธ Getting Started
|
|
17
|
+
|
|
18
|
+
### Installation
|
|
19
|
+
Since this is an ES6 module, ensure your environment supports `import` syntax.
|
|
20
|
+
|
|
21
|
+
```javascript
|
|
22
|
+
import TinyMapCache from 'tiny-essentials/libs/storage/TinyMapCache';
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### Basic Initialization
|
|
26
|
+
```javascript
|
|
27
|
+
const cache = new TinyMapCache();
|
|
28
|
+
|
|
29
|
+
// Set a custom TTL (e.g., 10 seconds)
|
|
30
|
+
cache.ttl = 10000;
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## ๐ API Reference
|
|
36
|
+
|
|
37
|
+
### โ๏ธ Configuration & Properties
|
|
38
|
+
|
|
39
|
+
| Property | Type | Description |
|
|
40
|
+
| :--- | :--- | :--- |
|
|
41
|
+
| `ttl` | `number` | The Time-To-Live in milliseconds. Default is `300000` (5 minutes). |
|
|
42
|
+
| `size` | `number` | Returns the current number of items stored in the cache. |
|
|
43
|
+
| `[Symbol.toStringTag]` | `string` | Read-only. Always returns `'TinyMapCache'`. Used by `Object.prototype.toString`. |
|
|
44
|
+
|
|
45
|
+
### ๐ Methods
|
|
46
|
+
|
|
47
|
+
#### `.set(key, data)`
|
|
48
|
+
Stores a value in the cache associated with a specific key.
|
|
49
|
+
* **Key:** `string` (Required)
|
|
50
|
+
* **Data:** `any` (Required)
|
|
51
|
+
* **Note:** Triggers `purgeExpired(true)` before saving.
|
|
52
|
+
|
|
53
|
+
#### `.get(key)`
|
|
54
|
+
Retrieves the data associated with the key.
|
|
55
|
+
* **Key:** `string` (Required)
|
|
56
|
+
* **Returns:** The stored data if valid; `null` if expired or not found.
|
|
57
|
+
* **Note:** Triggers `purgeExpired(true)` before retrieving.
|
|
58
|
+
|
|
59
|
+
#### `.has(key)`
|
|
60
|
+
Checks if a key exists and is valid (not expired).
|
|
61
|
+
* **Key:** `string` (Required)
|
|
62
|
+
* **Returns:** `boolean`
|
|
63
|
+
* **Note:** Triggers `purgeExpired(true)` before checking.
|
|
64
|
+
|
|
65
|
+
#### `.delete(key)`
|
|
66
|
+
Removes a specific item from the cache.
|
|
67
|
+
* **Key:** `string` (Required)
|
|
68
|
+
* **Returns:** `boolean` (True if an element existed and was removed).
|
|
69
|
+
|
|
70
|
+
#### `.clear()`
|
|
71
|
+
Wipes all items from the current cache instance.
|
|
72
|
+
|
|
73
|
+
#### `.purgeExpired(clearAll = false)`
|
|
74
|
+
Manually triggers the expiration logic.
|
|
75
|
+
* **`clearAll = true`**: Triggers a purge across **all** active `TinyMapCache` instances in the application.
|
|
76
|
+
* **`clearAll = false`**: Only purges expired items in the current instance.
|
|
77
|
+
|
|
78
|
+
#### `.keys()`
|
|
79
|
+
Returns an iterator over the keys of all valid (non-expired) entries.
|
|
80
|
+
* **Returns:** `IterableIterator<string>`
|
|
81
|
+
* **Note:** Triggers `purgeExpired(true)` before building the result.
|
|
82
|
+
|
|
83
|
+
#### `.values()`
|
|
84
|
+
Returns an iterator over the values of all valid (non-expired) entries.
|
|
85
|
+
* **Returns:** `IterableIterator<T>`
|
|
86
|
+
* **Note:** Triggers `purgeExpired(true)` before building the result.
|
|
87
|
+
|
|
88
|
+
#### `.entries()`
|
|
89
|
+
Returns an iterator over the `[key, value]` pairs of all valid (non-expired) entries.
|
|
90
|
+
* **Returns:** `IterableIterator<[string, T]>`
|
|
91
|
+
* **Note:** Triggers `purgeExpired(true)` before building the result.
|
|
92
|
+
|
|
93
|
+
#### `[Symbol.iterator]()`
|
|
94
|
+
Alias for `.entries()`. Enables `for...of`, spread (`[...cache]`) and destructuring directly on the instance.
|
|
95
|
+
* **Returns:** `IterableIterator<[string, T]>`
|
|
96
|
+
|
|
97
|
+
#### `.forEach(callbackFn, thisArg)`
|
|
98
|
+
Executes a provided function once for each valid (non-expired) entry.
|
|
99
|
+
* **`callbackFn`:** `(data: T, key: string, cache: TinyMapCache<T>) => void` (Required)
|
|
100
|
+
* **`thisArg`:** `any` (Optional) โ Value to use as `this` inside `callbackFn`.
|
|
101
|
+
* **Returns:** `void`
|
|
102
|
+
* **Throws:** `TypeError` if `callbackFn` is not a function.
|
|
103
|
+
* **Note:** Triggers `purgeExpired(true)` before iterating.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## ๐ Event Listeners
|
|
108
|
+
|
|
109
|
+
The `TinyMapCache` emits several events that you can listen to for advanced logic (like logging or synchronizing databases).
|
|
110
|
+
|
|
111
|
+
| Event | Payload Type | Description |
|
|
112
|
+
| :--- | :--- | :--- |
|
|
113
|
+
| `'set'` | `{ key: string, data: T }` | Emitted when a new item is successfully stored. |
|
|
114
|
+
| `'delete'` | `{ key: string }` | Emitted when an item is manually removed. |
|
|
115
|
+
| `'expire'` | `{ key: string, data: T }` | Emitted when an item is removed due to TTL expiration. |
|
|
116
|
+
| `'purge'` | `{ count: number }` | Emitted when multiple items are removed during a purge. |
|
|
117
|
+
| `'clear'` | `void` | Emitted when the entire cache is wiped. |
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## ๐ก Practical Implementation Examples
|
|
122
|
+
|
|
123
|
+
### 1. Basic Usage with TTL
|
|
124
|
+
This is the most common way to use the cache to avoid redundant API calls.
|
|
125
|
+
|
|
126
|
+
```javascript
|
|
127
|
+
const userCache = new TinyMapCache();
|
|
128
|
+
userCache.ttl = 60000; // 1 minute
|
|
129
|
+
|
|
130
|
+
async function getUserData(userId) {
|
|
131
|
+
const cachedUser = userCache.get(userId);
|
|
132
|
+
|
|
133
|
+
if (cachedUser) {
|
|
134
|
+
console.log("๐ฆ Serving from cache");
|
|
135
|
+
return cachedUser;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
console.log("๐ Fetching from API...");
|
|
139
|
+
const data = await fetchFromDatabase(userId); // Simulated API call
|
|
140
|
+
userCache.set(userId, data);
|
|
141
|
+
return data;
|
|
142
|
+
}
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### 2. Using Events for Monitoring
|
|
146
|
+
You can use events to track how much data is expiring in your system.
|
|
147
|
+
|
|
148
|
+
```javascript
|
|
149
|
+
const monitorCache = new TinyMapCache();
|
|
150
|
+
|
|
151
|
+
monitorCache.on('expire', (payload) => {
|
|
152
|
+
console.warn(`โ ๏ธ Item expired: ${payload.key}`);
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
monitorCache.on('purge', (payload) => {
|
|
156
|
+
console.log(`๐งน Cleanup complete. Removed ${payload.count} items.`);
|
|
157
|
+
});
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### 3. Advanced: Cascaded Purging
|
|
161
|
+
If your application creates many cache instances (e.g., one per user session), you can clear them all at once to free up memory.
|
|
162
|
+
|
|
163
|
+
```javascript
|
|
164
|
+
const sessionCache1 = new TinyMapCache();
|
|
165
|
+
const sessionCache2 = new TinyMapCache();
|
|
166
|
+
|
|
167
|
+
sessionCache1.set('session_id', 123);
|
|
168
|
+
sessionCache2.set('session_id', 456);
|
|
169
|
+
|
|
170
|
+
// This will trigger purgeExpired(false) on sessionCache2
|
|
171
|
+
sessionCache1.purgeExpired(true);
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### 4. Iterating Over the Cache
|
|
175
|
+
All iteration helpers return a **snapshot** of the valid entries at the moment of the call. Expired items are never yielded.
|
|
176
|
+
|
|
177
|
+
```javascript
|
|
178
|
+
const cache = new TinyMapCache();
|
|
179
|
+
cache.set('user:1', { name: 'Yasmin' });
|
|
180
|
+
cache.set('user:2', { name: 'Isabela' });
|
|
181
|
+
|
|
182
|
+
// for...of (uses Symbol.iterator)
|
|
183
|
+
for (const [key, user] of cache) {
|
|
184
|
+
console.log(key, user.name);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
// Spread into an array
|
|
188
|
+
const allKeys = [...cache.keys()];
|
|
189
|
+
const allUsers = [...cache.values()];
|
|
190
|
+
|
|
191
|
+
// forEach with a bound context
|
|
192
|
+
cache.forEach(function (user, key) {
|
|
193
|
+
console.log(`${key} -> ${user.name}`, this.label);
|
|
194
|
+
}, { label: '(cached)' });
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### 5. Map Compatibility Cheat Sheet
|
|
198
|
+
| Native `Map` | `TinyMapCache` | Notes |
|
|
199
|
+
| :--- | :--- | :--- |
|
|
200
|
+
| `map.get(k)` | `cache.get(k)` | Returns `null` instead of `undefined` when missing. |
|
|
201
|
+
| `map.set(k, v)` | `cache.set(k, v)` | Requires a `string` key. |
|
|
202
|
+
| `map.has(k)` | `cache.has(k)` | Expired keys return `false`. |
|
|
203
|
+
| `map.delete(k)` | `cache.delete(k)` | Emits `'delete'`. |
|
|
204
|
+
| `map.clear()` | `cache.clear()` | Emits `'clear'`. |
|
|
205
|
+
| `map.size` | `cache.size` | โ |
|
|
206
|
+
| `map.keys()` | `cache.keys()` | Skips expired entries. |
|
|
207
|
+
| `map.values()` | `cache.values()` | Skips expired entries. |
|
|
208
|
+
| `map.entries()` | `cache.entries()` | Skips expired entries. |
|
|
209
|
+
| `map.forEach(fn)` | `cache.forEach(fn)` | Same argument order. |
|
|
210
|
+
| `[...map]` | `[...cache]` | Same `[key, value]` shape. |
|
|
211
|
+
| `new Map(iterable)` | โ Not supported | See "Important Technical Notes". |
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## โ ๏ธ Important Technical Notes
|
|
216
|
+
|
|
217
|
+
1. **Automatic Cleanup:** Most methods (`get`, `set`, `has`, `delete`) automatically call `purgeExpired(true)`. This ensures you are always working with fresh data, but be aware that in very large caches, this adds a small overhead to every call.
|
|
218
|
+
2. **Memory Management:** When a `TinyMapCache` instance becomes empty (size 0), it automatically removes itself from the internal `#instances` set to prevent memory leaks.
|
|
219
|
+
4. **Snapshot Semantics:** The iteration methods (`keys`, `values`, `entries`, `forEach`) build a snapshot array before returning. Mutating the cache while iterating is therefore safe, but the loop will **not** see changes made after it started.
|