tiny-essentials 1.28.19 → 1.29.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/changelog/1/28/19.md +24 -0
- package/changelog/1/29/0.md +58 -0
- package/changelog/1/29/1.md +11 -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 +565 -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 +340 -22
- package/types/EventEmitter.d.ts +48 -0
- package/dist/v1/libs/text/TinyI18.d.mts.map +0 -1
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
# 📬 TinyPushPayload
|
|
2
|
+
|
|
3
|
+
> A tiny, isomorphic contract for **Web Push** messages. 🚀
|
|
4
|
+
> One single source of truth shared between your **Service Worker** and your **page**.
|
|
5
|
+
|
|
6
|
+
[](#-versioning)
|
|
7
|
+
[](#-installation)
|
|
8
|
+
[](#)
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 📖 Table of Contents
|
|
13
|
+
|
|
14
|
+
1. [What is this?](#-what-is-this)
|
|
15
|
+
2. [Why it exists](#-why-it-exists)
|
|
16
|
+
3. [Installation](#-installation)
|
|
17
|
+
4. [Core concepts](#-core-concepts)
|
|
18
|
+
5. [API Reference](#-api-reference)
|
|
19
|
+
- [`TinyPushPayload.VERSION`](#-tinypushpayloadversion)
|
|
20
|
+
- [`TinyPushPayload.MAX_TTL`](#-tinypushpayloadmax_ttl)
|
|
21
|
+
- [`TinyPushPayload.PUSH_TYPE`](#-tinypushpayloadpush_type)
|
|
22
|
+
- [`from(raw)`](#-fromraw)
|
|
23
|
+
- [`fromEvent(event)`](#-fromeventevent)
|
|
24
|
+
- [`isExpired(message, now)`](#-isExpiredmessage-now)
|
|
25
|
+
- [`toNotification(message, defaults)`](#-tonotificationmessage-defaults)
|
|
26
|
+
6. [Type definitions](#-type-definitions)
|
|
27
|
+
8. [Error handling](#-error-handling)
|
|
28
|
+
9. [Best practices](#-best-practices)
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## ✨ What is this?
|
|
33
|
+
|
|
34
|
+
`TinyPushPayload` is a **stateless utility class** that normalizes, validates and
|
|
35
|
+
converts Web Push payloads.
|
|
36
|
+
|
|
37
|
+
It is **isomorphic on purpose**:
|
|
38
|
+
|
|
39
|
+
| Environment | What it does |
|
|
40
|
+
| ----------------- | ------------------------------------------------------------------ |
|
|
41
|
+
| 🧑💻 **Page** | Builds and validates the payload *before* it reaches the backend. |
|
|
42
|
+
| ⚙️ **Service Worker** | Parses the incoming `push` event and turns it into a notification. |
|
|
43
|
+
|
|
44
|
+
Because both sides import the **same file**, the message contract can never
|
|
45
|
+
drift out of sync. 🎯
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 🧠 Why it exists
|
|
50
|
+
|
|
51
|
+
Web Push payloads arrive as **untrusted strings** over the network. Anything can
|
|
52
|
+
be inside them. This class gives you:
|
|
53
|
+
|
|
54
|
+
- 🛡️ **Strict validation** — every field is type-checked before use.
|
|
55
|
+
- 🧊 **Immutable output** — every returned message is frozen with `Object.freeze`.
|
|
56
|
+
- 🔁 **One-shot safe** — reads the `PushMessageData` stream exactly once.
|
|
57
|
+
- 🧩 **Zero dependencies** — pure ECMAScript, no runtime libraries.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## 📦 Installation
|
|
62
|
+
|
|
63
|
+
This module is part of the project. Import it with a **relative path** (ESM only):
|
|
64
|
+
|
|
65
|
+
```javascript
|
|
66
|
+
import TinyPushPayload from 'tiny-essentials/libs/sw/service/shared/TinyPushPayload';
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## 🧩 Core concepts
|
|
72
|
+
|
|
73
|
+
### The message shape
|
|
74
|
+
|
|
75
|
+
Every message is a plain object that follows the `TinyPushMessage` contract:
|
|
76
|
+
|
|
77
|
+
```javascript
|
|
78
|
+
{
|
|
79
|
+
v: 1, // 🔢 schema version
|
|
80
|
+
type: 'order:shipped', // 🏷️ message type (from PUSH_TYPE)
|
|
81
|
+
id: 'evt_123', // 🆔 optional unique id
|
|
82
|
+
topic: 'orders', // 📁 optional topic
|
|
83
|
+
expiresAt: 1735689600000, // ⏰ optional expiration (ms)
|
|
84
|
+
ttl: 3600, // ⏳ optional TTL (seconds, clamped)
|
|
85
|
+
data: { orderId: 'A1' }, // 📦 optional custom data
|
|
86
|
+
notification: { /* ... */ } // 🔔 optional notification descriptor
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### The `PUSH_TYPE.UNKNOWN` fallback
|
|
91
|
+
|
|
92
|
+
If the incoming payload has no valid `type`, the class falls back to
|
|
93
|
+
`PUSH_TYPE.UNKNOWN`. This guarantees the `type` field is **never** `undefined`.
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## 📚 API Reference
|
|
98
|
+
|
|
99
|
+
### 🔢 `TinyPushPayload.VERSION`
|
|
100
|
+
|
|
101
|
+
**Type:** `number` — default `1`
|
|
102
|
+
|
|
103
|
+
The current payload schema version. Used as the fallback for the `v` field.
|
|
104
|
+
|
|
105
|
+
```javascript
|
|
106
|
+
console.log(TinyPushPayload.VERSION); // 1
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
### ⏳ `TinyPushPayload.MAX_TTL`
|
|
112
|
+
|
|
113
|
+
**Type:** `number` — value `2419200` (28 days, in seconds)
|
|
114
|
+
|
|
115
|
+
The maximum allowed TTL. Any `ttl` above this value is clamped down to it.
|
|
116
|
+
|
|
117
|
+
```javascript
|
|
118
|
+
console.log(TinyPushPayload.MAX_TTL); // 2419200
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
### 🏷️ `TinyPushPayload.PUSH_TYPE`
|
|
124
|
+
|
|
125
|
+
**Type:** `Object` (read-only getter)
|
|
126
|
+
|
|
127
|
+
A passthrough to the shared `PUSH_TYPE` enum. Handy so consumers do not need a
|
|
128
|
+
second import.
|
|
129
|
+
|
|
130
|
+
```javascript
|
|
131
|
+
TinyPushPayload.PUSH_TYPE.UNKNOWN; // 'unknown'
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
### 🏗️ `from(raw)`
|
|
137
|
+
|
|
138
|
+
Normalizes an **untrusted** value into a frozen `TinyPushMessage`.
|
|
139
|
+
|
|
140
|
+
| Parameter | Type | Description |
|
|
141
|
+
| --------- | --------- | --------------------------------- |
|
|
142
|
+
| `raw` | `unknown` | The value received from the wire. |
|
|
143
|
+
|
|
144
|
+
**Returns:** `TinyPushMessage` — a frozen, normalized message.
|
|
145
|
+
|
|
146
|
+
**Throws:** `TypeError` if `raw` is not a non-null object or is an array.
|
|
147
|
+
|
|
148
|
+
```javascript
|
|
149
|
+
const message = TinyPushPayload.from({
|
|
150
|
+
type: 'order:shipped',
|
|
151
|
+
ttl: 99999999, // 👈 will be clamped to MAX_TTL
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
console.log(message.ttl); // 2419200
|
|
155
|
+
Object.isFrozen(message); // true 🧊
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
**Normalization rules:**
|
|
159
|
+
|
|
160
|
+
| Field | Rule |
|
|
161
|
+
| -------------- | ---------------------------------------------------------- |
|
|
162
|
+
| `v` | Kept if `number`, else `VERSION`. |
|
|
163
|
+
| `type` | Kept if non-empty string, else `PUSH_TYPE.UNKNOWN`. |
|
|
164
|
+
| `id` | Kept only if `string`. |
|
|
165
|
+
| `topic` | Kept only if `string`. |
|
|
166
|
+
| `expiresAt` | Kept only if `number`. |
|
|
167
|
+
| `ttl` | Clamped to `[0, MAX_TTL]` and truncated. |
|
|
168
|
+
| `data` | Kept only if a non-null, non-array object. |
|
|
169
|
+
| `notification` | Normalized via the private `#normalizeNotification`. |
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
### 📥 `fromEvent(event)`
|
|
174
|
+
|
|
175
|
+
Reads the payload of a `push` event **exactly once**.
|
|
176
|
+
|
|
177
|
+
> ⚠️ **Why a dedicated method?**
|
|
178
|
+
> `PushMessageData` is a **one-shot stream**. Calling `json()` and then `text()`
|
|
179
|
+
> throws a `TypeError`. This method reads the body once and parses it manually,
|
|
180
|
+
> so you never have to think about it.
|
|
181
|
+
|
|
182
|
+
| Parameter | Type | Description |
|
|
183
|
+
| --------- | ---------- | ----------------------- |
|
|
184
|
+
| `event` | `PushEvent`| The native push event. |
|
|
185
|
+
|
|
186
|
+
**Returns:** `Promise<TinyPushMessage>` — never `null`.
|
|
187
|
+
|
|
188
|
+
**Throws:** `TypeError` if `event` is not an object or has no `data` property.
|
|
189
|
+
|
|
190
|
+
```javascript
|
|
191
|
+
self.addEventListener('push', async (event) => {
|
|
192
|
+
const message = await TinyPushPayload.fromEvent(event);
|
|
193
|
+
console.log(message.type);
|
|
194
|
+
});
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
**Fallback behavior:**
|
|
198
|
+
|
|
199
|
+
| Situation | Result |
|
|
200
|
+
| -------------------------------- | -------------------------------------------------- |
|
|
201
|
+
| `event.data` is `null` | `{ v, type: UNKNOWN }` |
|
|
202
|
+
| `text()` throws | `{ v, type: UNKNOWN }` |
|
|
203
|
+
| Body is an empty string | `{ v, type: UNKNOWN }` |
|
|
204
|
+
| Body is not valid JSON | `{ v, type: UNKNOWN, notification: { title, body } }` |
|
|
205
|
+
| Body is valid JSON | Parsed via [`from()`](#-fromraw). |
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
### ⏰ `isExpired(message, now)`
|
|
210
|
+
|
|
211
|
+
Checks whether a message is past its expiration time.
|
|
212
|
+
|
|
213
|
+
| Parameter | Type | Default | Description |
|
|
214
|
+
| --------- | ---------------- | ------------ | ------------------------------ |
|
|
215
|
+
| `message` | `TinyPushMessage`| — | The message to inspect. |
|
|
216
|
+
| `now` | `number` | `Date.now()` | Reference time in milliseconds.|
|
|
217
|
+
|
|
218
|
+
**Returns:** `boolean` — `true` when the message must be discarded.
|
|
219
|
+
|
|
220
|
+
**Throws:** `TypeError` if `message` is not a non-null object or `now` is not a
|
|
221
|
+
finite number.
|
|
222
|
+
|
|
223
|
+
```javascript
|
|
224
|
+
if (TinyPushPayload.isExpired(message)) {
|
|
225
|
+
return; // 🗑️ too late, drop it
|
|
226
|
+
}
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
> 💡 A message **without** `expiresAt` is **never** considered expired.
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
### 🔔 `toNotification(message, defaults)`
|
|
234
|
+
|
|
235
|
+
Converts a message into the `{ title, options }` object expected by
|
|
236
|
+
`showNotification`.
|
|
237
|
+
|
|
238
|
+
| Parameter | Type | Default | Description |
|
|
239
|
+
| ---------- | ------------------------------- | ------- | ----------------------- |
|
|
240
|
+
| `message` | `TinyPushMessage` | — | The normalized message. |
|
|
241
|
+
| `defaults` | `TinyPushNotificationDefaults` | `{}` | Fallback values. |
|
|
242
|
+
|
|
243
|
+
**Returns:** `{ title: string, options: NotificationOptions & { data: object } }`
|
|
244
|
+
|
|
245
|
+
**Throws:** `TypeError` if `message` is not a non-null object.
|
|
246
|
+
|
|
247
|
+
```javascript
|
|
248
|
+
const { title, options } = TinyPushPayload.toNotification(message, {
|
|
249
|
+
defaultIcon: '/icons/default.png',
|
|
250
|
+
defaultUrl: '/',
|
|
251
|
+
});
|
|
252
|
+
|
|
253
|
+
await self.registration.showNotification(title, options);
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
**What lands inside `options.data`:**
|
|
257
|
+
|
|
258
|
+
| Key | Source |
|
|
259
|
+
| ---------- | -------------------------------------------------- |
|
|
260
|
+
| `url` | `notification.url` → `defaults.defaultUrl` → `'/'` |
|
|
261
|
+
| `actions` | Map of `action → url` built from `notification.actions`. |
|
|
262
|
+
| `pushId` | `message.id` |
|
|
263
|
+
| `pushType` | `message.type` |
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
## 🧬 Type definitions
|
|
268
|
+
|
|
269
|
+
### `TinyPushMessage`
|
|
270
|
+
|
|
271
|
+
| Property | Type | Required | Description |
|
|
272
|
+
| -------------- | ------------------------ | -------- | ---------------------------------- |
|
|
273
|
+
| `v` | `number` | ✅ | Schema version. |
|
|
274
|
+
| `type` | `string` | ✅ | Message type. |
|
|
275
|
+
| `id` | `string` | ❌ | Unique id. |
|
|
276
|
+
| `topic` | `string` | ❌ | Grouping topic. |
|
|
277
|
+
| `expiresAt` | `number` | ❌ | Expiration timestamp (ms). |
|
|
278
|
+
| `ttl` | `number` | ❌ | Time-to-live in seconds. |
|
|
279
|
+
| `data` | `Record<string, unknown>`| ❌ | Custom data. |
|
|
280
|
+
| `notification` | `TinyPushNotification` | ❌ | Notification descriptor. |
|
|
281
|
+
|
|
282
|
+
### `TinyPushNotificationDefaults`
|
|
283
|
+
|
|
284
|
+
| Property | Type | Description |
|
|
285
|
+
| --------------- | -------- | -------------------- |
|
|
286
|
+
| `defaultIcon` | `string` | Fallback icon. |
|
|
287
|
+
| `defaultBadge` | `string` | Fallback badge. |
|
|
288
|
+
| `defaultUrl` | `string` | Fallback click URL. |
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## 🚨 Error handling
|
|
293
|
+
|
|
294
|
+
Every method validates its arguments and throws a **specific** error type:
|
|
295
|
+
|
|
296
|
+
| Method | Throws | When |
|
|
297
|
+
| ------------------ | ----------- | --------------------------------------------- |
|
|
298
|
+
| `from` | `TypeError` | `raw` is not a non-null object / is an array. |
|
|
299
|
+
| `fromEvent` | `TypeError` | `event` is not a valid `PushEvent`. |
|
|
300
|
+
| `isExpired` | `TypeError` | `message` invalid or `now` not finite. |
|
|
301
|
+
| `toNotification` | `TypeError` | `message` is not a non-null object. |
|
|
302
|
+
| `#normalizeNotification` | `TypeError` | `notification.title` is missing/empty. |
|
|
303
|
+
|
|
304
|
+
> 💡 `fromEvent` is the **only** method that never throws for bad payloads — it
|
|
305
|
+
> always resolves to a safe `UNKNOWN` message. This is intentional: a malformed
|
|
306
|
+
> push must never crash the Service Worker.
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
## ✅ Best practices
|
|
311
|
+
|
|
312
|
+
- 🧊 **Never mutate** a returned message. It is frozen — use `from()` again.
|
|
313
|
+
- 🛡️ **Always validate** on the page *and* on the Service Worker.
|
|
314
|
+
- ⏰ **Always check** `isExpired()` before showing a notification.
|
|
315
|
+
- 🏷️ **Always handle** `PUSH_TYPE.UNKNOWN` in your `switch` statements.
|
|
316
|
+
- 🔢 **Never hardcode** the TTL limit — use `TinyPushPayload.MAX_TTL`.
|
|
@@ -46,6 +46,14 @@ await TinyI18.mergeLocaleFiles({
|
|
|
46
46
|
|
|
47
47
|
### Properties 🛠️
|
|
48
48
|
|
|
49
|
+
#### `destroyed` 🔹
|
|
50
|
+
|
|
51
|
+
Indicates whether the instance has been destroyed.
|
|
52
|
+
|
|
53
|
+
* **Type:** `boolean`
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
49
57
|
#### `currentLocale` 🔹
|
|
50
58
|
|
|
51
59
|
The currently selected locale, or `null` if only the default locale is active.
|
|
@@ -86,6 +94,14 @@ Whether strict mode is enabled.
|
|
|
86
94
|
|
|
87
95
|
---
|
|
88
96
|
|
|
97
|
+
#### `acceptNullResults` 🔹
|
|
98
|
+
|
|
99
|
+
Whether null results are accepted when a translation is missing.
|
|
100
|
+
|
|
101
|
+
* **Type:** `boolean`
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
89
105
|
#### `basePath` 🔹
|
|
90
106
|
|
|
91
107
|
Base directory path used in `"file"` mode to locate locale JSON files.
|
|
@@ -191,8 +207,8 @@ Resolves a key exactly in the provided locale order.
|
|
|
191
207
|
|
|
192
208
|
**Parameters:**
|
|
193
209
|
|
|
194
|
-
| Name
|
|
195
|
-
| ------- |
|
|
210
|
+
| Name | Type | Description |
|
|
211
|
+
| ------- | -------- | ----------------------------------------- |
|
|
196
212
|
| `order` | `string[]` | Array of locale codes to check |
|
|
197
213
|
| `key` | `string` | Exact key to look up |
|
|
198
214
|
|
|
@@ -206,10 +222,10 @@ Resolves a key by matching regex patterns in locale tables.
|
|
|
206
222
|
|
|
207
223
|
**Parameters:**
|
|
208
224
|
|
|
209
|
-
| Name
|
|
210
|
-
|
|
|
211
|
-
| `order`
|
|
212
|
-
| `key`
|
|
225
|
+
| Name | Type | Description |
|
|
226
|
+
| ------------------ | -------- | ----------------------------------------- |
|
|
227
|
+
| `order` | `string[]` | Array of locale codes to check |
|
|
228
|
+
| `key` | `string` | Input string to test against regex patterns |
|
|
213
229
|
|
|
214
230
|
**Returns:** `any` – Value associated with matched pattern, or `undefined`
|
|
215
231
|
|
|
@@ -227,10 +243,10 @@ Converts a raw translation entry into a final string for display.
|
|
|
227
243
|
|
|
228
244
|
**Parameters:**
|
|
229
245
|
|
|
230
|
-
| Name | Type
|
|
231
|
-
| -------- |
|
|
232
|
-
| `value` | `string` | HelperCallback | {
|
|
233
|
-
| `params` | `Dict` | Optional parameters for interpolation |
|
|
246
|
+
| Name | Type | Description | |
|
|
247
|
+
| -------- | ---------------------------------------------------------------- | ------------------------------------------------------------------------ | --------------------- |
|
|
248
|
+
| `value` | `string` | `HelperCallback` | `{ $fn: string; args?: any }` | Raw translation entry |
|
|
249
|
+
| `params` | `Dict` | Optional parameters for interpolation | |
|
|
234
250
|
|
|
235
251
|
**Returns:** `string` – Materialized result
|
|
236
252
|
|
|
@@ -242,10 +258,10 @@ Interpolates `{named}` placeholders in a string using given parameters.
|
|
|
242
258
|
|
|
243
259
|
**Parameters:**
|
|
244
260
|
|
|
245
|
-
| Name | Type
|
|
246
|
-
| ---------- |
|
|
247
|
-
| `template` | `string`
|
|
248
|
-
| `params` | `Dict`
|
|
261
|
+
| Name | Type | Description |
|
|
262
|
+
| ---------- | ------------ | ------------------------------------------ |
|
|
263
|
+
| `template` | `string` | Template string with placeholders |
|
|
264
|
+
| `params` | `Dict` | Values to interpolate |
|
|
249
265
|
|
|
250
266
|
**Returns:** `string` – Interpolated string
|
|
251
267
|
|
|
@@ -257,9 +273,9 @@ Safely retrieves a nested property using dot notation.
|
|
|
257
273
|
|
|
258
274
|
**Parameters:**
|
|
259
275
|
|
|
260
|
-
| Name | Type
|
|
261
|
-
| ------ |
|
|
262
|
-
| `obj` | `Dict`
|
|
276
|
+
| Name | Type | Description |
|
|
277
|
+
| ------ | ----- | ----------------------------------------- |
|
|
278
|
+
| `obj` | `Dict` | Object to retrieve from |
|
|
263
279
|
| `path` | `string` | Dot-separated path (e.g., `"a.b.c"`) |
|
|
264
280
|
|
|
265
281
|
**Returns:** `any` – Value at path or `undefined`
|
|
@@ -298,9 +314,9 @@ Removes a previously loaded locale from memory (except default).
|
|
|
298
314
|
|
|
299
315
|
**Parameters:**
|
|
300
316
|
|
|
301
|
-
| Name | Type | Description
|
|
302
|
-
| -------- | -------- |
|
|
303
|
-
| `locale` | `string` | Locale code
|
|
317
|
+
| Name | Type | Description |
|
|
318
|
+
| -------- | -------- | --------------------------- |
|
|
319
|
+
| `locale` | `string` | Locale code |
|
|
304
320
|
|
|
305
321
|
---
|
|
306
322
|
|
|
@@ -314,11 +330,11 @@ Loads a locale JSON file and flattens it into internal maps (file mode only).
|
|
|
314
330
|
|
|
315
331
|
* Dot-flattens nested keys
|
|
316
332
|
* Compiles `$pattern` entries into RegExp
|
|
317
|
-
* Preserves `$fn`
|
|
333
|
+
* Preserves `$fn` references for later resolution via helpers
|
|
318
334
|
|
|
319
335
|
**Parameters:**
|
|
320
336
|
|
|
321
|
-
| Name | Type | Description
|
|
337
|
+
| Name | Type | Description |
|
|
322
338
|
| -------- | ------------ | ------------------- |
|
|
323
339
|
| `locale` | `LocaleCode` | Locale code to load |
|
|
324
340
|
|
|
@@ -333,7 +349,7 @@ Strict mode → throws on invalid regex; otherwise returns a never-matching rege
|
|
|
333
349
|
|
|
334
350
|
**Parameters:**
|
|
335
351
|
|
|
336
|
-
| Name | Type | Description
|
|
352
|
+
| Name | Type | Description |
|
|
337
353
|
| ----- | -------- | ------------------------------ |
|
|
338
354
|
| `src` | `string` | Regex source string (no flags) |
|
|
339
355
|
|
|
@@ -350,11 +366,11 @@ Normalizes a JSON value from file mode into internal representation.
|
|
|
350
366
|
|
|
351
367
|
**Parameters:**
|
|
352
368
|
|
|
353
|
-
| Name | Type
|
|
354
|
-
| ---- |
|
|
355
|
-
| `v` |
|
|
369
|
+
| Name | Type | Description | |
|
|
370
|
+
| ---- | ---- | -------------- | -------------- |
|
|
371
|
+
| `v` | `string | FileValue` | Raw JSON value |
|
|
356
372
|
|
|
357
|
-
**Returns:** `string | { $fn: string
|
|
373
|
+
**Returns:** `string | { $fn: string; args?: any }`
|
|
358
374
|
|
|
359
375
|
---
|
|
360
376
|
|
|
@@ -376,7 +392,7 @@ Creates a new TinyI18 instance for managing localized strings and patterns.
|
|
|
376
392
|
|
|
377
393
|
**Parameters:**
|
|
378
394
|
|
|
379
|
-
| Name | Type | Description
|
|
395
|
+
| Name | Type | Description |
|
|
380
396
|
| --------- | ---------------- | -------------------- |
|
|
381
397
|
| `options` | `TinyI18Options` | Configuration object |
|
|
382
398
|
|
|
@@ -399,10 +415,10 @@ Registers a helper function for function-based entries or `$fn` references.
|
|
|
399
415
|
|
|
400
416
|
**Parameters:**
|
|
401
417
|
|
|
402
|
-
| Name | Type
|
|
403
|
-
| ------ |
|
|
404
|
-
| `name` | `string`
|
|
405
|
-
| `fn`
|
|
418
|
+
| Name | Type | Description |
|
|
419
|
+
| ------ | -------- | -------------------- |
|
|
420
|
+
| `name` | `string` | Helper function name |
|
|
421
|
+
| `fn` | `HelperCallback` | Callback function |
|
|
406
422
|
|
|
407
423
|
---
|
|
408
424
|
|
|
@@ -412,23 +428,23 @@ Removes a previously registered helper function.
|
|
|
412
428
|
|
|
413
429
|
**Parameters:**
|
|
414
430
|
|
|
415
|
-
| Name
|
|
416
|
-
|
|
|
417
|
-
| `name` | `string` | Name of helper to remove |
|
|
431
|
+
| Name | Type | Description |
|
|
432
|
+
| -------- | -------- | ------------------------ |
|
|
433
|
+
| `name` | `string` | Name of the helper to remove |
|
|
418
434
|
|
|
419
|
-
**Returns:** `boolean` – `true` if removed, `false` if not found
|
|
435
|
+
**Returns:** `boolean` – `true` if the helper was removed, `false` if it was not found
|
|
420
436
|
|
|
421
437
|
---
|
|
422
438
|
|
|
423
439
|
### `loadLocaleLocal(locale, data)` 📦
|
|
424
440
|
|
|
425
|
-
Loads or updates locale data in-memory (local mode only).
|
|
441
|
+
Loads or updates a locale data in-memory (local mode only).
|
|
426
442
|
|
|
427
443
|
**Parameters:**
|
|
428
444
|
|
|
429
|
-
| Name | Type
|
|
430
|
-
| -------- |
|
|
431
|
-
| `locale` | `LocaleCode` | Locale code
|
|
445
|
+
| Name | Type | Description |
|
|
446
|
+
| -------- | -------- | ---------------- |
|
|
447
|
+
| `locale` | `LocaleCode` | Locale code |
|
|
432
448
|
| `data` | `Dict` | Translation data |
|
|
433
449
|
|
|
434
450
|
---
|
|
@@ -437,14 +453,14 @@ Loads or updates locale data in-memory (local mode only).
|
|
|
437
453
|
|
|
438
454
|
Sets the currently selected locale. In file mode, loads from disk.
|
|
439
455
|
|
|
440
|
-
* Keeps only default + selected locale in memory
|
|
456
|
+
* Keeps only the default + selected locale in memory
|
|
441
457
|
* Unloads previous selected locale
|
|
442
458
|
|
|
443
459
|
**Parameters:**
|
|
444
460
|
|
|
445
|
-
| Name | Type
|
|
446
|
-
| -------- |
|
|
447
|
-
| `locale` |
|
|
461
|
+
| Name | Type | Description | |
|
|
462
|
+
| -------- | ------------------------------------------- | ------------------------------------------------ |
|
|
463
|
+
| `locale` | `LocaleCode | null` | Locale code, or `null` to keep only default |
|
|
448
464
|
|
|
449
465
|
**Returns:** `Promise<void>`
|
|
450
466
|
|
|
@@ -460,9 +476,9 @@ Resolves a translation by **exact key**.
|
|
|
460
476
|
|
|
461
477
|
| Name | Type | Description |
|
|
462
478
|
| --------- | ---------------- | ------------------------------------------------ |
|
|
463
|
-
| `key` | `string` | Translation key (dot.notation)
|
|
479
|
+
| `key` | `string` | Translation key (dot.notation) |
|
|
464
480
|
| `params` | `Dict` | Optional parameters for interpolation or helpers |
|
|
465
|
-
| `options` | `ResolveOptions` | Optional resolution overrides
|
|
481
|
+
| `options` | `ResolveOptions` | Optional resolution overrides |
|
|
466
482
|
|
|
467
483
|
**Returns:** `any` – Usually `string`, but may be HTMLElement, DocumentFragment, or helper return type
|
|
468
484
|
|
|
@@ -478,10 +494,10 @@ Resolves a translation by **regex pattern match**.
|
|
|
478
494
|
|
|
479
495
|
**Parameters:**
|
|
480
496
|
|
|
481
|
-
| Name
|
|
482
|
-
|
|
|
483
|
-
| `key` | `string`
|
|
484
|
-
| `options` | `ResolveOptions` | Optional resolution overrides
|
|
497
|
+
| Name | Type | Description |
|
|
498
|
+
| -------- | -------- | ------------------------------------------------ |
|
|
499
|
+
| `key` | `string` | Input string to match against regex patterns |
|
|
500
|
+
| `options` | `ResolveOptions` | Optional resolution overrides |
|
|
485
501
|
|
|
486
502
|
**Returns:** `any` – Translation value
|
|
487
503
|
|
|
@@ -496,8 +512,6 @@ Clears all loaded locales except the default.
|
|
|
496
512
|
* Selected locale becomes `null`
|
|
497
513
|
* In file mode, non-default locales are unloaded
|
|
498
514
|
|
|
499
|
-
**Returns:** `void`
|
|
500
|
-
|
|
501
515
|
---
|
|
502
516
|
|
|
503
517
|
### `getStatsForLocale(locale)` 📊
|
|
@@ -506,10 +520,20 @@ Returns statistics for a specific locale.
|
|
|
506
520
|
|
|
507
521
|
**Parameters:**
|
|
508
522
|
|
|
509
|
-
| Name | Type
|
|
510
|
-
| -------- |
|
|
511
|
-
| `locale` | `
|
|
523
|
+
| Name | Type | Description |
|
|
524
|
+
| -------- | -------- | ---------------------- |
|
|
525
|
+
| `locale` | `string` | Locale code to inspect |
|
|
512
526
|
|
|
513
527
|
**Returns:** `StatLocale` – Locale stats including number of strings, patterns, and flags
|
|
514
528
|
|
|
515
|
-
**Throws:** Error if locale is not registered
|
|
529
|
+
**Throws:** Error if the locale is not registered
|
|
530
|
+
|
|
531
|
+
---
|
|
532
|
+
|
|
533
|
+
### `destroy()` 🗑️
|
|
534
|
+
|
|
535
|
+
Destroys the TinyI18 instance, clearing all internal maps and references to free up memory. Once destroyed, the instance cannot be reused.
|
|
536
|
+
|
|
537
|
+
**Throws:** `Error` if the instance has already been destroyed.
|
|
538
|
+
|
|
539
|
+
**Returns:** `void`
|