tiny-essentials 1.28.19 → 1.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/changelog/1/28/19.md +24 -0
- package/changelog/1/29/0.md +58 -0
- package/dist/v1/ColorSafeStringify.min.js +1 -1
- package/dist/v1/TinyAdvancedRaffle.min.js +1 -1
- package/dist/v1/TinyAfterScrollWatcher.min.js +1 -1
- package/dist/v1/TinyAnalogClock.min.js +1 -1
- package/dist/v1/TinyArrayComparator.min.js +1 -1
- package/dist/v1/TinyArrayPaginator.min.js +1 -1
- package/dist/v1/TinyBasicsEs.min.js +1 -1
- package/dist/v1/TinyBrowserMonitor.min.js +1 -0
- package/dist/v1/TinyClassManager.min.js +1 -1
- package/dist/v1/TinyClipboard.min.js +1 -1
- package/dist/v1/TinyCloner.min.js +1 -0
- package/dist/v1/TinyColorConverter.min.js +1 -1
- package/dist/v1/TinyColorValidator.min.js +1 -1
- package/dist/v1/TinyCookieConsent.min.js +1 -1
- package/dist/v1/TinyDayNightCycle.min.js +1 -1
- package/dist/v1/TinyDebugger.min.js +1 -1
- package/dist/v1/TinyDomReadyManager.min.js +1 -1
- package/dist/v1/TinyDragDropDetector.min.js +1 -1
- package/dist/v1/TinyDragger.min.js +1 -1
- package/dist/v1/TinyElementObserver.min.js +1 -1
- package/dist/v1/TinyEssentials.min.js +1 -1
- package/dist/v1/TinyGamepad.min.js +1 -1
- package/dist/v1/TinyHtml.min.js +1 -1
- package/dist/v1/TinyHtmlTagRegexBuilder.min.js +1 -0
- package/dist/v1/TinyHttpResponseRegistry.min.js +1 -0
- package/dist/v1/TinyI18.min.js +1 -1
- package/dist/v1/TinyIframeEvents.min.js +1 -1
- package/dist/v1/TinyInventory.min.js +1 -1
- package/dist/v1/TinyInventoryTrader.min.js +1 -1
- package/dist/v1/TinyLevelUp.min.js +1 -1
- package/dist/v1/TinyLoadingScreen.min.js +1 -1
- package/dist/v1/TinyLocalStorage.min.js +1 -1
- package/dist/v1/TinyMaInSys.min.js +1 -1
- package/dist/v1/TinyMapCache.min.js +1 -0
- package/dist/v1/TinyMediaPlayer.min.js +1 -1
- package/dist/v1/TinyNeedBar.min.js +1 -1
- package/dist/v1/TinyNewWinEvents.min.js +1 -1
- package/dist/v1/TinyNotificationAdapter.min.js +1 -0
- package/dist/v1/TinyNotifications.min.js +1 -1
- package/dist/v1/TinyNotifyCenter.min.js +1 -1
- package/dist/v1/TinyOPFSFileSystem.min.js +1 -0
- package/dist/v1/TinyPasswordValidator.min.js +1 -0
- package/dist/v1/TinyPluginPackage.min.js +1 -0
- package/dist/v1/TinyPromiseQueue.min.js +1 -1
- package/dist/v1/TinyPushManager.min.js +1 -0
- package/dist/v1/TinyPushPayload.min.js +1 -0
- package/dist/v1/TinyPushRouter.min.js +1 -0
- package/dist/v1/TinyRadioFm.min.js +1 -1
- package/dist/v1/TinyRateLimiter.min.js +1 -1
- package/dist/v1/TinyRegexEs.min.js +1 -0
- package/dist/v1/TinyRouter.min.js +1 -0
- package/dist/v1/TinyServiceWorker.min.js +1 -0
- package/dist/v1/TinyServiceWorkerEngine.min.js +1 -0
- package/dist/v1/TinySetMapPackage.min.js +1 -0
- package/dist/v1/TinySimpleDice.min.js +1 -1
- package/dist/v1/TinySmartScroller.min.js +1 -1
- package/dist/v1/TinyStorageBucketFileSystem.min.js +1 -0
- package/dist/v1/TinyTextDiffer.min.js +1 -1
- package/dist/v1/TinyTextRangeEditor.min.js +1 -1
- package/dist/v1/TinyTextarea.min.js +1 -1
- package/dist/v1/TinyThrottledApi.min.js +1 -0
- package/dist/v1/TinyTimeout.min.js +1 -1
- package/dist/v1/TinyToastNotify.min.js +1 -1
- package/dist/v1/TinyUploadClicker.min.js +1 -1
- package/dist/v1/TinyUriParser.min.js +1 -0
- package/dist/v1/TinyVersion.min.js +1 -0
- package/dist/v1/TinyWebWorker.min.js +1 -0
- package/dist/v1/TinyWebWorkerEngine.min.js +1 -0
- package/dist/v1/UltraRandomMsgGen.min.js +1 -1
- package/dist/v1/basics/array.cjs +2 -2
- package/dist/v1/basics/array.d.mts +2 -0
- package/dist/v1/basics/array.d.mts.map +1 -1
- package/dist/v1/basics/array.mjs +2 -1
- package/dist/v1/basics/browserDetector.cjs +37 -12
- package/dist/v1/basics/browserDetector.d.mts +8 -0
- package/dist/v1/basics/browserDetector.d.mts.map +1 -1
- package/dist/v1/basics/browserDetector.mjs +32 -13
- package/dist/v1/basics/crypto.cjs +23 -0
- package/dist/v1/basics/crypto.d.mts +10 -0
- package/dist/v1/basics/crypto.d.mts.map +1 -0
- package/dist/v1/basics/crypto.mjs +18 -0
- package/dist/v1/basics/html.cjs +0 -3
- package/dist/v1/basics/html.d.mts.map +1 -1
- package/dist/v1/basics/html.mjs +0 -2
- package/dist/v1/basics/index.cjs +8 -1
- package/dist/v1/basics/index.d.mts +6 -5
- package/dist/v1/basics/index.d.mts.map +1 -1
- package/dist/v1/basics/index.mjs +6 -5
- package/dist/v1/basics/objChecker.cjs +88 -0
- package/dist/v1/basics/objChecker.d.mts +26 -0
- package/dist/v1/basics/objChecker.d.mts.map +1 -1
- package/dist/v1/basics/objChecker.mjs +74 -0
- package/dist/v1/basics/objFilter.cjs +234 -93
- package/dist/v1/basics/objFilter.d.mts +96 -22
- package/dist/v1/basics/objFilter.d.mts.map +1 -1
- package/dist/v1/basics/objFilter.mjs +216 -92
- package/dist/v1/basics/promiseUtils.cjs +48 -12
- package/dist/v1/basics/promiseUtils.d.mts +45 -12
- package/dist/v1/basics/promiseUtils.d.mts.map +1 -1
- package/dist/v1/basics/promiseUtils.mjs +47 -12
- package/dist/v1/basics/text.cjs +0 -12
- package/dist/v1/basics/text.d.mts +0 -10
- package/dist/v1/basics/text.d.mts.map +1 -1
- package/dist/v1/basics/text.mjs +0 -10
- package/dist/v1/index.cjs +88 -3
- package/dist/v1/index.d.mts +31 -6
- package/dist/v1/index.d.mts.map +1 -1
- package/dist/v1/index.mjs +32 -7
- package/dist/v1/jsdoc/EventEmitter.cjs +4 -0
- package/dist/v1/jsdoc/EventEmitter.d.mts +33 -0
- package/dist/v1/jsdoc/EventEmitter.d.mts.map +1 -0
- package/dist/v1/jsdoc/EventEmitter.mjs +18 -0
- package/dist/v1/libs/array/TinyArrayComparator.cjs +240 -25
- package/dist/v1/libs/array/TinyArrayComparator.d.mts +130 -22
- package/dist/v1/libs/array/TinyArrayComparator.d.mts.map +1 -1
- package/dist/v1/libs/array/TinyArrayComparator.mjs +210 -24
- package/dist/v1/libs/fs/constants.cjs +74 -0
- package/dist/v1/libs/fs/constants.d.mts +22 -0
- package/dist/v1/libs/fs/constants.d.mts.map +1 -0
- package/dist/v1/libs/fs/constants.mjs +53 -0
- package/dist/v1/libs/fs/encoding.cjs +118 -0
- package/dist/v1/libs/fs/encoding.d.mts +50 -0
- package/dist/v1/libs/fs/encoding.d.mts.map +1 -0
- package/dist/v1/libs/fs/encoding.mjs +102 -0
- package/dist/v1/libs/fs/error.cjs +188 -0
- package/dist/v1/libs/fs/error.d.mts +105 -0
- package/dist/v1/libs/fs/error.d.mts.map +1 -0
- package/dist/v1/libs/fs/error.mjs +158 -0
- package/dist/v1/libs/fs/handle.cjs +121 -0
- package/dist/v1/libs/fs/handle.d.mts +56 -0
- package/dist/v1/libs/fs/handle.d.mts.map +1 -0
- package/dist/v1/libs/fs/handle.mjs +100 -0
- package/dist/v1/libs/fs/index.cjs +700 -0
- package/dist/v1/libs/fs/index.d.mts +377 -0
- package/dist/v1/libs/fs/index.d.mts.map +1 -0
- package/dist/v1/libs/fs/index.mjs +630 -0
- package/dist/v1/libs/fs/path.cjs +234 -0
- package/dist/v1/libs/fs/path.d.mts +176 -0
- package/dist/v1/libs/fs/path.d.mts.map +1 -0
- package/dist/v1/libs/fs/path.mjs +197 -0
- package/dist/v1/libs/fs/plugins/OPFS/StorageBucket.cjs +202 -0
- package/dist/v1/libs/fs/plugins/OPFS/StorageBucket.d.mts +121 -0
- package/dist/v1/libs/fs/plugins/OPFS/StorageBucket.d.mts.map +1 -0
- package/dist/v1/libs/fs/plugins/OPFS/StorageBucket.mjs +172 -0
- package/dist/v1/libs/fs/plugins/OPFS/index.cjs +334 -0
- package/dist/v1/libs/fs/plugins/OPFS/index.d.mts +98 -0
- package/dist/v1/libs/fs/plugins/OPFS/index.d.mts.map +1 -0
- package/dist/v1/libs/fs/plugins/OPFS/index.mjs +300 -0
- package/dist/v1/libs/fs/stats.cjs +245 -0
- package/dist/v1/libs/fs/stats.d.mts +226 -0
- package/dist/v1/libs/fs/stats.d.mts.map +1 -0
- package/dist/v1/libs/fs/stats.mjs +197 -0
- package/dist/v1/libs/html/events/TinyIframeEvents.cjs +10 -1
- package/dist/v1/libs/html/events/TinyIframeEvents.d.mts +9 -2
- package/dist/v1/libs/html/events/TinyIframeEvents.d.mts.map +1 -1
- package/dist/v1/libs/html/events/TinyIframeEvents.mjs +8 -1
- package/dist/v1/libs/html/events/TinyNewWinEvents.cjs +14 -3
- package/dist/v1/libs/html/events/TinyNewWinEvents.d.mts +21 -5
- package/dist/v1/libs/html/events/TinyNewWinEvents.d.mts.map +1 -1
- package/dist/v1/libs/html/events/TinyNewWinEvents.mjs +12 -3
- package/dist/v1/libs/html/scroll/TinySmartScroller.cjs +13 -1
- package/dist/v1/libs/html/scroll/TinySmartScroller.d.mts +29 -2
- package/dist/v1/libs/html/scroll/TinySmartScroller.d.mts.map +1 -1
- package/dist/v1/libs/html/scroll/TinySmartScroller.mjs +11 -1
- package/dist/v1/libs/math/TinyAdvancedRaffle.cjs +13 -1
- package/dist/v1/libs/math/TinyAdvancedRaffle.d.mts +32 -2
- package/dist/v1/libs/math/TinyAdvancedRaffle.d.mts.map +1 -1
- package/dist/v1/libs/math/TinyAdvancedRaffle.mjs +11 -1
- package/dist/v1/libs/math/TinyTimeout.cjs +0 -14
- package/dist/v1/libs/math/TinyTimeout.d.mts +0 -11
- package/dist/v1/libs/math/TinyTimeout.d.mts.map +1 -1
- package/dist/v1/libs/math/TinyTimeout.mjs +0 -13
- package/dist/v1/libs/media/TinyMediaPlayer/index.cjs +25 -1
- package/dist/v1/libs/media/TinyMediaPlayer/index.d.mts +35 -2
- package/dist/v1/libs/media/TinyMediaPlayer/index.d.mts.map +1 -1
- package/dist/v1/libs/media/TinyMediaPlayer/index.mjs +23 -1
- package/dist/v1/libs/media/TinyMediaPlayer.cjs +2 -2
- package/dist/v1/libs/media/TinyMediaPlayer.d.mts +2 -2
- package/dist/v1/libs/media/TinyMediaPlayer.d.mts.map +1 -1
- package/dist/v1/libs/media/TinyMediaPlayer.mjs +2 -2
- package/dist/v1/libs/media/TinyRadioFm.cjs +19 -1
- package/dist/v1/libs/media/TinyRadioFm.d.mts +78 -2
- package/dist/v1/libs/media/TinyRadioFm.d.mts.map +1 -1
- package/dist/v1/libs/media/TinyRadioFm.mjs +17 -1
- package/dist/v1/libs/plugin/TinyPlugin.cjs +1630 -0
- package/dist/v1/libs/plugin/TinyPlugin.d.mts +753 -0
- package/dist/v1/libs/plugin/TinyPlugin.d.mts.map +1 -0
- package/dist/v1/libs/plugin/TinyPlugin.mjs +1376 -0
- package/dist/v1/libs/plugin/TinyVersion.cjs +204 -0
- package/dist/v1/libs/plugin/TinyVersion.d.mts +70 -0
- package/dist/v1/libs/plugin/TinyVersion.d.mts.map +1 -0
- package/dist/v1/libs/plugin/TinyVersion.mjs +179 -0
- package/dist/v1/libs/router/TinyRouter.cjs +661 -0
- package/dist/v1/libs/router/TinyRouter.d.mts +320 -0
- package/dist/v1/libs/router/TinyRouter.d.mts.map +1 -0
- package/dist/v1/libs/router/TinyRouter.mjs +572 -0
- package/dist/v1/libs/storage/TinyLocalStorage.cjs +20 -1
- package/dist/v1/libs/storage/TinyLocalStorage.d.mts +64 -2
- package/dist/v1/libs/storage/TinyLocalStorage.d.mts.map +1 -1
- package/dist/v1/libs/storage/TinyLocalStorage.mjs +18 -1
- package/dist/v1/libs/storage/TinyMapCache.cjs +373 -0
- package/dist/v1/libs/storage/TinyMapCache.d.mts +274 -0
- package/dist/v1/libs/storage/TinyMapCache.d.mts.map +1 -0
- package/dist/v1/libs/storage/TinyMapCache.mjs +333 -0
- package/dist/v1/libs/storage/TinySetMapDatabase.cjs +1167 -0
- package/dist/v1/libs/storage/TinySetMapDatabase.d.mts +603 -0
- package/dist/v1/libs/storage/TinySetMapDatabase.d.mts.map +1 -0
- package/dist/v1/libs/storage/TinySetMapDatabase.mjs +1059 -0
- package/dist/v1/libs/sw/browser/TinyNotificationAdapter.cjs +126 -0
- package/dist/v1/libs/sw/browser/TinyNotificationAdapter.d.mts +132 -0
- package/dist/v1/libs/sw/browser/TinyNotificationAdapter.d.mts.map +1 -0
- package/dist/v1/libs/sw/browser/TinyNotificationAdapter.mjs +109 -0
- package/dist/v1/libs/sw/browser/TinyPushManager.cjs +310 -0
- package/dist/v1/libs/sw/browser/TinyPushManager.d.mts +168 -0
- package/dist/v1/libs/sw/browser/TinyPushManager.d.mts.map +1 -0
- package/dist/v1/libs/sw/browser/TinyPushManager.mjs +264 -0
- package/dist/v1/libs/sw/browser/TinyServiceWorker.cjs +1060 -0
- package/dist/v1/libs/sw/browser/TinyServiceWorker.d.mts +348 -0
- package/dist/v1/libs/sw/browser/TinyServiceWorker.d.mts.map +1 -0
- package/dist/v1/libs/sw/browser/TinyServiceWorker.mjs +933 -0
- package/dist/v1/libs/sw/browser/plugins/TabManager.cjs +315 -0
- package/dist/v1/libs/sw/browser/plugins/TabManager.d.mts +178 -0
- package/dist/v1/libs/sw/browser/plugins/TabManager.d.mts.map +1 -0
- package/dist/v1/libs/sw/browser/plugins/TabManager.mjs +274 -0
- package/dist/v1/libs/sw/browser/utils.cjs +28 -0
- package/dist/v1/libs/sw/browser/utils.d.mts +8 -0
- package/dist/v1/libs/sw/browser/utils.d.mts.map +1 -0
- package/dist/v1/libs/sw/browser/utils.mjs +21 -0
- package/dist/v1/libs/sw/service/TinyPushRouter.cjs +222 -0
- package/dist/v1/libs/sw/service/TinyPushRouter.d.mts +138 -0
- package/dist/v1/libs/sw/service/TinyPushRouter.d.mts.map +1 -0
- package/dist/v1/libs/sw/service/TinyPushRouter.mjs +201 -0
- package/dist/v1/libs/sw/service/TinyServiceWorkerEngine.cjs +3016 -0
- package/dist/v1/libs/sw/service/TinyServiceWorkerEngine.d.mts +993 -0
- package/dist/v1/libs/sw/service/TinyServiceWorkerEngine.d.mts.map +1 -0
- package/dist/v1/libs/sw/service/TinyServiceWorkerEngine.mjs +2558 -0
- package/dist/v1/libs/sw/service/plugins/GlobBypassPlugin.cjs +88 -0
- package/dist/v1/libs/sw/service/plugins/GlobBypassPlugin.d.mts +32 -0
- package/dist/v1/libs/sw/service/plugins/GlobBypassPlugin.d.mts.map +1 -0
- package/dist/v1/libs/sw/service/plugins/GlobBypassPlugin.mjs +69 -0
- package/dist/v1/libs/sw/service/plugins/GlobCachePlugin.cjs +112 -0
- package/dist/v1/libs/sw/service/plugins/GlobCachePlugin.d.mts +31 -0
- package/dist/v1/libs/sw/service/plugins/GlobCachePlugin.d.mts.map +1 -0
- package/dist/v1/libs/sw/service/plugins/GlobCachePlugin.mjs +91 -0
- package/dist/v1/libs/sw/service/plugins/Ping.cjs +32 -0
- package/dist/v1/libs/sw/service/plugins/Ping.d.mts +9 -0
- package/dist/v1/libs/sw/service/plugins/Ping.d.mts.map +1 -0
- package/dist/v1/libs/sw/service/plugins/Ping.mjs +25 -0
- package/dist/v1/libs/sw/service/plugins/TabManager.cjs +457 -0
- package/dist/v1/libs/sw/service/plugins/TabManager.d.mts +91 -0
- package/dist/v1/libs/sw/service/plugins/TabManager.d.mts.map +1 -0
- package/dist/v1/libs/sw/service/plugins/TabManager.mjs +372 -0
- package/dist/v1/libs/sw/service/plugins/ViteFileDetector.cjs +180 -0
- package/dist/v1/libs/sw/service/plugins/ViteFileDetector.d.mts +28 -0
- package/dist/v1/libs/sw/service/plugins/ViteFileDetector.d.mts.map +1 -0
- package/dist/v1/libs/sw/service/plugins/ViteFileDetector.mjs +148 -0
- package/dist/v1/libs/sw/service/shared/TinyPushPayload.cjs +199 -0
- package/dist/v1/libs/sw/service/shared/TinyPushPayload.d.mts +80 -0
- package/dist/v1/libs/sw/service/shared/TinyPushPayload.d.mts.map +1 -0
- package/dist/v1/libs/sw/service/shared/TinyPushPayload.mjs +174 -0
- package/dist/v1/libs/sw/utils.cjs +57 -0
- package/dist/v1/libs/sw/utils.d.mts +173 -0
- package/dist/v1/libs/sw/utils.d.mts.map +1 -0
- package/dist/v1/libs/sw/utils.mjs +50 -0
- package/dist/v1/libs/text/TinyI18/Browser-NON-DOM.cjs +57 -0
- package/dist/v1/libs/text/TinyI18/Browser-NON-DOM.d.mts +39 -0
- package/dist/v1/libs/text/TinyI18/Browser-NON-DOM.d.mts.map +1 -0
- package/dist/v1/libs/text/TinyI18/Browser-NON-DOM.mjs +48 -0
- package/dist/v1/libs/text/TinyI18/Browser.cjs +64 -0
- package/dist/v1/libs/text/TinyI18/Browser.d.mts +47 -0
- package/dist/v1/libs/text/TinyI18/Browser.d.mts.map +1 -0
- package/dist/v1/libs/text/TinyI18/Browser.mjs +57 -0
- package/dist/v1/libs/text/TinyI18/Node.cjs +49 -0
- package/dist/v1/libs/text/TinyI18/Node.d.mts +38 -0
- package/dist/v1/libs/text/TinyI18/Node.d.mts.map +1 -0
- package/dist/v1/libs/text/TinyI18/Node.mjs +43 -0
- package/dist/v1/libs/text/TinyI18/browser-utils.cjs +17 -0
- package/dist/v1/libs/text/TinyI18/browser-utils.d.mts +8 -0
- package/dist/v1/libs/text/TinyI18/browser-utils.d.mts.map +1 -0
- package/dist/v1/libs/text/TinyI18/browser-utils.mjs +13 -0
- package/dist/v1/libs/text/{TinyI18.cjs → TinyI18/index.cjs} +205 -104
- package/dist/v1/libs/text/{TinyI18.d.mts → TinyI18/index.d.mts} +141 -92
- package/dist/v1/libs/text/TinyI18/index.d.mts.map +1 -0
- package/dist/v1/libs/text/{TinyI18.mjs → TinyI18/index.mjs} +195 -101
- package/dist/v1/libs/tools/TinyBrowserMonitor.cjs +1088 -0
- package/dist/v1/libs/tools/TinyBrowserMonitor.d.mts +621 -0
- package/dist/v1/libs/tools/TinyBrowserMonitor.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyBrowserMonitor.mjs +940 -0
- package/dist/v1/libs/tools/TinyDebugger.cjs +180 -19
- package/dist/v1/libs/tools/TinyDebugger.d.mts +220 -24
- package/dist/v1/libs/tools/TinyDebugger.d.mts.map +1 -1
- package/dist/v1/libs/tools/TinyDebugger.mjs +161 -19
- package/dist/v1/libs/tools/TinyHtmlTagRegexBuilder.cjs +256 -0
- package/dist/v1/libs/tools/TinyHtmlTagRegexBuilder.d.mts +125 -0
- package/dist/v1/libs/tools/TinyHtmlTagRegexBuilder.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyHtmlTagRegexBuilder.mjs +223 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser-NON-DOM.cjs +23 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser-NON-DOM.d.mts +17 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser-NON-DOM.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser-NON-DOM.mjs +19 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser.cjs +23 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser.d.mts +17 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/Browser.mjs +19 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/EmptyRequestCodes.cjs +390 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/EmptyRequestCodes.d.mts +9 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/EmptyRequestCodes.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/EmptyRequestCodes.mjs +387 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/JsDoc.cjs +2 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/JsDoc.d.mts +27 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/JsDoc.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/JsDoc.mjs +12 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/MozillaRequestCodes/LICENSE +53 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/MozillaRequestCodes/index.cjs +405 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/MozillaRequestCodes/index.d.mts +34 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/MozillaRequestCodes/index.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/MozillaRequestCodes/index.mjs +342 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/Node.cjs +23 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/Node.d.mts +17 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/Node.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/Node.mjs +19 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/RequestCodes.cjs +327 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/RequestCodes.d.mts +9 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/RequestCodes.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/RequestCodes.mjs +324 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/index.cjs +268 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/index.d.mts +107 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/index.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyHttpResponseRegistry/index.mjs +238 -0
- package/dist/v1/libs/tools/TinyPasswordValidator.cjs +491 -0
- package/dist/v1/libs/tools/TinyPasswordValidator.d.mts +246 -0
- package/dist/v1/libs/tools/TinyPasswordValidator.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyPasswordValidator.mjs +434 -0
- package/dist/v1/libs/tools/TinyPkgExportValidator.cjs +48 -0
- package/dist/v1/libs/tools/TinyPkgExportValidator.d.mts +14 -0
- package/dist/v1/libs/tools/TinyPkgExportValidator.d.mts.map +1 -1
- package/dist/v1/libs/tools/TinyPkgExportValidator.mjs +44 -0
- package/dist/v1/libs/tools/TinySiteMap.cjs +1029 -0
- package/dist/v1/libs/tools/TinySiteMap.d.mts +429 -0
- package/dist/v1/libs/tools/TinySiteMap.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinySiteMap.mjs +910 -0
- package/dist/v1/libs/tools/TinySiteMapStream.cjs +121 -0
- package/dist/v1/libs/tools/TinySiteMapStream.d.mts +51 -0
- package/dist/v1/libs/tools/TinySiteMapStream.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinySiteMapStream.mjs +85 -0
- package/dist/v1/libs/tools/TinyURLSecurityVerifier.cjs +444 -0
- package/dist/v1/libs/tools/TinyURLSecurityVerifier.d.mts +217 -0
- package/dist/v1/libs/tools/TinyURLSecurityVerifier.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyURLSecurityVerifier.mjs +394 -0
- package/dist/v1/libs/tools/TinyUriParser/BlueSky.cjs +613 -0
- package/dist/v1/libs/tools/TinyUriParser/BlueSky.d.mts +152 -0
- package/dist/v1/libs/tools/TinyUriParser/BlueSky.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyUriParser/BlueSky.mjs +527 -0
- package/dist/v1/libs/tools/TinyUriParser/Discord.cjs +1119 -0
- package/dist/v1/libs/tools/TinyUriParser/Discord.d.mts +306 -0
- package/dist/v1/libs/tools/TinyUriParser/Discord.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyUriParser/Discord.mjs +968 -0
- package/dist/v1/libs/tools/TinyUriParser/MatrixProtocol.cjs +469 -0
- package/dist/v1/libs/tools/TinyUriParser/MatrixProtocol.d.mts +80 -0
- package/dist/v1/libs/tools/TinyUriParser/MatrixProtocol.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyUriParser/MatrixProtocol.mjs +379 -0
- package/dist/v1/libs/tools/TinyUriParser.cjs +217 -0
- package/dist/v1/libs/tools/TinyUriParser.d.mts +109 -0
- package/dist/v1/libs/tools/TinyUriParser.d.mts.map +1 -0
- package/dist/v1/libs/tools/TinyUriParser.mjs +183 -0
- package/dist/v1/libs/utils/TinyCloner.cjs +466 -0
- package/dist/v1/libs/utils/TinyCloner.d.mts +221 -0
- package/dist/v1/libs/utils/TinyCloner.d.mts.map +1 -0
- package/dist/v1/libs/utils/TinyCloner.mjs +416 -0
- package/dist/v1/libs/utils/TinyPromiseQueue.cjs +1 -1
- package/dist/v1/libs/utils/TinyPromiseQueue.d.mts +2 -2
- package/dist/v1/libs/utils/TinyPromiseQueue.d.mts.map +1 -1
- package/dist/v1/libs/utils/TinyPromiseQueue.mjs +1 -1
- package/dist/v1/libs/utils/TinyThrottledApi.cjs +333 -0
- package/dist/v1/libs/utils/TinyThrottledApi.d.mts +163 -0
- package/dist/v1/libs/utils/TinyThrottledApi.d.mts.map +1 -0
- package/dist/v1/libs/utils/TinyThrottledApi.mjs +294 -0
- package/dist/v1/libs/worker/browser/TinyWebWorker.cjs +342 -0
- package/dist/v1/libs/worker/browser/TinyWebWorker.d.mts +97 -0
- package/dist/v1/libs/worker/browser/TinyWebWorker.d.mts.map +1 -0
- package/dist/v1/libs/worker/browser/TinyWebWorker.mjs +305 -0
- package/dist/v1/libs/worker/engine/TinyWebWorkerEngine.cjs +346 -0
- package/dist/v1/libs/worker/engine/TinyWebWorkerEngine.d.mts +127 -0
- package/dist/v1/libs/worker/engine/TinyWebWorkerEngine.d.mts.map +1 -0
- package/dist/v1/libs/worker/engine/TinyWebWorkerEngine.mjs +304 -0
- package/dist/v1/regexp/Email.cjs +185 -0
- package/dist/v1/regexp/Email.d.mts +73 -0
- package/dist/v1/regexp/Email.d.mts.map +1 -0
- package/dist/v1/regexp/Email.mjs +153 -0
- package/dist/v1/regexp/Glob.cjs +293 -0
- package/dist/v1/regexp/Glob.d.mts +45 -0
- package/dist/v1/regexp/Glob.d.mts.map +1 -0
- package/dist/v1/regexp/Glob.mjs +260 -0
- package/dist/v1/regexp/Ipv4.cjs +57 -0
- package/dist/v1/regexp/Ipv4.d.mts +29 -0
- package/dist/v1/regexp/Ipv4.d.mts.map +1 -0
- package/dist/v1/regexp/Ipv4.mjs +45 -0
- package/dist/v1/regexp/Ipv6.cjs +67 -0
- package/dist/v1/regexp/Ipv6.d.mts +29 -0
- package/dist/v1/regexp/Ipv6.d.mts.map +1 -0
- package/dist/v1/regexp/Ipv6.mjs +54 -0
- package/dist/v1/regexp/SegmentExtractor.cjs +145 -0
- package/dist/v1/regexp/SegmentExtractor.d.mts +91 -0
- package/dist/v1/regexp/SegmentExtractor.d.mts.map +1 -0
- package/dist/v1/regexp/SegmentExtractor.mjs +116 -0
- package/dist/v1/regexp/UrlDetector.cjs +125 -0
- package/dist/v1/regexp/UrlDetector.d.mts +67 -0
- package/dist/v1/regexp/UrlDetector.d.mts.map +1 -0
- package/dist/v1/regexp/UrlDetector.mjs +102 -0
- package/dist/v1/regexp/Username/index.cjs +233 -0
- package/dist/v1/regexp/Username/index.d.mts +77 -0
- package/dist/v1/regexp/Username/index.d.mts.map +1 -0
- package/dist/v1/regexp/Username/index.mjs +199 -0
- package/dist/v1/regexp/Username/jsDoc.cjs +2 -0
- package/dist/v1/regexp/Username/jsDoc.d.mts +57 -0
- package/dist/v1/regexp/Username/jsDoc.d.mts.map +1 -0
- package/dist/v1/regexp/Username/jsDoc.mjs +18 -0
- package/dist/v1/regexp/Username/templates/BlueSky.cjs +56 -0
- package/dist/v1/regexp/Username/templates/BlueSky.d.mts +35 -0
- package/dist/v1/regexp/Username/templates/BlueSky.d.mts.map +1 -0
- package/dist/v1/regexp/Username/templates/BlueSky.mjs +52 -0
- package/dist/v1/regexp/Username/templates/Discord.cjs +505 -0
- package/dist/v1/regexp/Username/templates/Discord.d.mts +209 -0
- package/dist/v1/regexp/Username/templates/Discord.d.mts.map +1 -0
- package/dist/v1/regexp/Username/templates/Discord.mjs +458 -0
- package/dist/v1/regexp/Username/templates/MatrixProtocol.cjs +143 -0
- package/dist/v1/regexp/Username/templates/MatrixProtocol.d.mts +70 -0
- package/dist/v1/regexp/Username/templates/MatrixProtocol.d.mts.map +1 -0
- package/dist/v1/regexp/Username/templates/MatrixProtocol.mjs +128 -0
- package/dist/v1/regexp/Username/templates/deprecated/Discord.cjs +24 -0
- package/dist/v1/regexp/Username/templates/deprecated/Discord.d.mts +17 -0
- package/dist/v1/regexp/Username/templates/deprecated/Discord.d.mts.map +1 -0
- package/dist/v1/regexp/Username/templates/deprecated/Discord.mjs +20 -0
- package/dist/v1/regexp/Username/templates/index.cjs +11 -0
- package/dist/v1/regexp/Username/templates/index.d.mts +5 -0
- package/dist/v1/regexp/Username/templates/index.d.mts.map +1 -0
- package/dist/v1/regexp/Username/templates/index.mjs +4 -0
- package/dist/v1/regexp/index.cjs +41 -0
- package/dist/v1/regexp/index.d.mts +9 -0
- package/dist/v1/regexp/index.d.mts.map +1 -0
- package/dist/v1/regexp/index.mjs +8 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Browser.cjs +64 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Browser.d.mts +11 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Browser.d.mts.map +1 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Browser.mjs +51 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/FileInput.cjs +66 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/FileInput.d.mts +11 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/FileInput.d.mts.map +1 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/FileInput.mjs +51 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Node.cjs +39 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Node.d.mts +11 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Node.d.mts.map +1 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Node.mjs +28 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Template.cjs +494 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Template.d.mts +142 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Template.d.mts.map +1 -0
- package/dist/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters/Template.mjs +445 -0
- package/dist/v1/webTemplates/bootstrap/5.3/html/BootstrapDialogs.cjs +30 -4
- package/dist/v1/webTemplates/bootstrap/5.3/html/BootstrapDialogs.d.mts +5 -2
- package/dist/v1/webTemplates/bootstrap/5.3/html/BootstrapDialogs.d.mts.map +1 -1
- package/dist/v1/webTemplates/bootstrap/5.3/html/BootstrapDialogs.mjs +29 -5
- package/dist/v1/webTemplates/media/MediaValidator/v1/Browser/index.cjs +135 -0
- package/dist/v1/webTemplates/media/MediaValidator/v1/Browser/index.d.mts +83 -0
- package/dist/v1/webTemplates/media/MediaValidator/v1/Browser/index.d.mts.map +1 -0
- package/dist/v1/webTemplates/media/MediaValidator/v1/Browser/index.mjs +120 -0
- package/dist/v1/webTemplates/media/MediaValidator/v1/Node/index.cjs +127 -0
- package/dist/v1/webTemplates/media/MediaValidator/v1/Node/index.d.mts +95 -0
- package/dist/v1/webTemplates/media/MediaValidator/v1/Node/index.d.mts.map +1 -0
- package/dist/v1/webTemplates/media/MediaValidator/v1/Node/index.mjs +109 -0
- package/dist/v1/webTemplates/multiformats/14.0/IPFSHasher/index.cjs +83 -0
- package/dist/v1/webTemplates/multiformats/14.0/IPFSHasher/index.d.mts +46 -0
- package/dist/v1/webTemplates/multiformats/14.0/IPFSHasher/index.d.mts.map +1 -0
- package/dist/v1/webTemplates/multiformats/14.0/IPFSHasher/index.mjs +71 -0
- package/dist/v1/webTemplates/vite/7.3/plugins/TinyVitePwaPlugin.cjs +493 -0
- package/dist/v1/webTemplates/vite/7.3/plugins/TinyVitePwaPlugin.d.mts +67 -0
- package/dist/v1/webTemplates/vite/7.3/plugins/TinyVitePwaPlugin.d.mts.map +1 -0
- package/dist/v1/webTemplates/vite/7.3/plugins/TinyVitePwaPlugin.mjs +399 -0
- package/dist/v1/webTemplates/vite/7.3/plugins/githubUtils.cjs +35 -0
- package/dist/v1/webTemplates/vite/7.3/plugins/githubUtils.d.mts +6 -0
- package/dist/v1/webTemplates/vite/7.3/plugins/githubUtils.d.mts.map +1 -0
- package/dist/v1/webTemplates/vite/7.3/plugins/githubUtils.mjs +29 -0
- package/docs/info/RegExp.md +74 -0
- package/docs/v1/Exports.md +101 -0
- package/docs/v1/README.md +113 -15
- package/docs/v1/basics/asyncReplace.md +2 -0
- package/docs/v1/basics/browserDetector.md +28 -11
- package/docs/v1/basics/crypto.md +85 -0
- package/docs/v1/basics/deprecated/html.md +2 -0
- package/docs/v1/basics/deprecated/objFilter.md +2 -0
- package/docs/v1/basics/html.md +2 -0
- package/docs/v1/basics/objChecker.md +55 -0
- package/docs/v1/basics/objFilter.md +57 -86
- package/docs/v1/basics/promiseUtils.md +12 -3
- package/docs/v1/basics/text.md +0 -1
- package/docs/v1/libs/array/TinyArrayComparator.md +50 -39
- package/docs/v1/libs/fs/TinyFS.md +752 -0
- package/docs/v1/libs/fs/TinyOPFSFileSystem.md +495 -0
- package/docs/v1/libs/fs/TinyStorageBucketFileSystem.md +407 -0
- package/docs/v1/libs/plugin/TinyPlugin.md +441 -0
- package/docs/v1/libs/plugin/TinyVersion.md +145 -0
- package/docs/v1/libs/router/TinyRouter.md +216 -0
- package/docs/v1/libs/storage/TinyMapCache.md +219 -0
- package/docs/v1/libs/storage/TinySetMapDatabase.md +478 -0
- package/docs/v1/libs/sw/browser/TinyNotificationAdapter.md +280 -0
- package/docs/v1/libs/sw/browser/TinyPushManager.md +782 -0
- package/docs/v1/libs/sw/browser/TinyServiceWorker.md +365 -0
- package/docs/v1/libs/sw/browser/plugins/TabManager.md +133 -0
- package/docs/v1/libs/sw/service/TinyPushRouter.md +314 -0
- package/docs/v1/libs/sw/service/TinyServiceWorkerEngine.md +748 -0
- package/docs/v1/libs/sw/service/plugins/GlobBypassPlugin.md +229 -0
- package/docs/v1/libs/sw/service/plugins/GlobCachePlugin.md +91 -0
- package/docs/v1/libs/sw/service/plugins/Ping.md +36 -0
- package/docs/v1/libs/sw/service/plugins/TabManager.md +64 -0
- package/docs/v1/libs/sw/service/plugins/ViteFileDetector.md +92 -0
- package/docs/v1/libs/sw/service/shared/TinyPushPayload.md +316 -0
- package/docs/v1/libs/text/TinyI18.md +80 -56
- package/docs/v1/libs/tools/TinyBrowserMonitor.md +170 -0
- package/docs/v1/libs/tools/TinyDebugger.md +117 -1
- package/docs/v1/libs/tools/TinyHtmlTagRegexBuilder.md +141 -0
- package/docs/v1/libs/tools/TinyHttpResponseRegistry.md +129 -0
- package/docs/v1/libs/tools/TinyPasswordValidator.md +153 -0
- package/docs/v1/libs/tools/TinyPkgExportValidator.md +45 -1
- package/docs/v1/libs/tools/TinySiteMap.md +134 -0
- package/docs/v1/libs/tools/TinySiteMapStream.md +97 -0
- package/docs/v1/libs/tools/TinyURLSecurityVerifier.md +146 -0
- package/docs/v1/libs/tools/TinyUriParser/Discord.md +374 -0
- package/docs/v1/libs/tools/TinyUriParser/MatrixProtocol.md +54 -0
- package/docs/v1/libs/tools/TinyUriParser.md +128 -0
- package/docs/v1/libs/utils/TinyCloner.md +126 -0
- package/docs/v1/libs/utils/TinyPromiseQueue.md +1 -1
- package/docs/v1/libs/utils/TinyThrottledApi.md +219 -0
- package/docs/v1/libs/worker/browser/TinyWebWorker.md +331 -0
- package/docs/v1/libs/worker/engine/TinyWebWorkerEngine.md +137 -0
- package/docs/v1/regexp/Email.md +127 -0
- package/docs/v1/regexp/Glob.md +155 -0
- package/docs/v1/regexp/IPv4.md +103 -0
- package/docs/v1/regexp/IPv6.md +122 -0
- package/docs/v1/regexp/SegmentExtractor.md +120 -0
- package/docs/v1/regexp/UrlDetector.md +117 -0
- package/docs/v1/regexp/Username/Base.md +131 -0
- package/docs/v1/regexp/Username/Discord.md +267 -0
- package/docs/v1/regexp/Username/MatrixProtocol.md +131 -0
- package/docs/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters.md +569 -0
- package/docs/v1/webTemplates/bootstrap/5.3/html/BootstrapDialogs.md +19 -7
- package/docs/v1/webTemplates/media/MediaValidator/v1/Browser.md +123 -0
- package/docs/v1/webTemplates/media/MediaValidator/v1/Node.md +136 -0
- package/docs/v1/webTemplates/multiformats/14.0/IPFSHasher.md +310 -0
- package/docs/v1/webTemplates/vite/7.3/plugins/TinyVitePwaPlugin.md +131 -0
- package/docs/v1/webTemplates/vite/7.3/plugins/githubUtils.md +50 -0
- package/package.json +303 -13
- package/types/EventEmitter.d.ts +48 -0
- package/dist/v1/libs/text/TinyI18.d.mts.map +0 -1
|
@@ -4,6 +4,10 @@ var objChecker = require('./objChecker.cjs');
|
|
|
4
4
|
|
|
5
5
|
// @ts-nocheck
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* A flag indicating if the current environment is a web browser.
|
|
9
|
+
* @type {boolean}
|
|
10
|
+
*/
|
|
7
11
|
const isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined';
|
|
8
12
|
|
|
9
13
|
/**
|
|
@@ -14,34 +18,83 @@ const isBrowser = typeof window !== 'undefined' && typeof window.document !== 'u
|
|
|
14
18
|
*
|
|
15
19
|
* The `order` array defines the priority in which types should be checked,
|
|
16
20
|
* which can be useful for functions that infer types in a consistent manner.
|
|
17
|
-
*
|
|
18
21
|
*/
|
|
19
22
|
const typeValidator = {
|
|
23
|
+
/**
|
|
24
|
+
* A registry where keys are type names and values are their validation and cloning logic.
|
|
25
|
+
* @type {Record<string, ObjTypeRegistry<any, any>>}
|
|
26
|
+
*/
|
|
20
27
|
items: {},
|
|
21
28
|
/**
|
|
22
|
-
*
|
|
29
|
+
* The sequence in which type validators are checked.
|
|
30
|
+
* The first validator to return true for a value determines the type name.
|
|
23
31
|
* @type {string[]}
|
|
24
|
-
|
|
32
|
+
*/
|
|
25
33
|
order: [],
|
|
26
34
|
};
|
|
27
35
|
|
|
28
|
-
/**
|
|
29
|
-
|
|
36
|
+
/**
|
|
37
|
+
* @typedef {import('../libs/utils/TinyCloner.mjs').default} TinyCloner
|
|
38
|
+
*/
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* A function type used to validate a value and return a specific result.
|
|
42
|
+
*
|
|
43
|
+
* @template {any} Value - The type of the value being validated.
|
|
44
|
+
* @template {any} Result - The type of the result returned by the function.
|
|
45
|
+
* @typedef {(val: Value) => Result} ExtendObjTypeFunc
|
|
46
|
+
*/
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* A function type used to clone a value, supporting deep cloning operations.
|
|
50
|
+
*
|
|
51
|
+
* @template {any} Value - The type of the value to be cloned.
|
|
52
|
+
* @typedef {(val: Value, isDeep: boolean, cloner: TinyCloner) => Value} ExtendObjTypeCloner
|
|
53
|
+
*/
|
|
30
54
|
|
|
31
55
|
/**
|
|
32
|
-
*
|
|
56
|
+
* A mapping of type names to their corresponding validation functions.
|
|
33
57
|
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
58
|
+
* @template {any} Value - The type of the value being mapped.
|
|
59
|
+
* @typedef {Object.<string, ExtendObjTypeFunc<Value, any>>} ExtendObjType
|
|
60
|
+
*/
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* A tuple representing a type definition, containing a key, a validator, and an optional cloner.
|
|
36
64
|
*
|
|
37
|
-
* @
|
|
65
|
+
* @template {any} Value - The type of the value.
|
|
66
|
+
* @template {any} Result - The type of the result returned by the validator.
|
|
67
|
+
* @typedef {[string, ExtendObjTypeFunc<Value, Result>, ExtendObjTypeCloner<Value>]|[string, ExtendObjTypeFunc<Value, Result>]} ExtendObjTypeValue
|
|
68
|
+
*/
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* A registry object containing the validator and cloner for a specific type.
|
|
72
|
+
*
|
|
73
|
+
* @template {any} Value - The type of the value being registered.
|
|
74
|
+
* @template {any} Result - The type of the result returned by the validator.
|
|
75
|
+
* @typedef {Object} ObjTypeRegistry
|
|
76
|
+
* @property {ExtendObjTypeFunc<Value, Result>} validator - The function used to validate the type.
|
|
77
|
+
* @property {ExtendObjTypeCloner<Value>} cloner - The function used to create a clone of the value.
|
|
78
|
+
*/
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Adds new type checkers to the `typeValidator` registry.
|
|
82
|
+
*
|
|
83
|
+
* Accepts an object of functions, an array of [key, validator] tuples, or an array of [key, validator, cloner] tuples.
|
|
84
|
+
* If an `index` is provided, the new type is inserted at that position.
|
|
85
|
+
* If no index is provided, it is inserted before the 'object' type or at the end of the registry.
|
|
86
|
+
*
|
|
87
|
+
* @template {any} Value
|
|
88
|
+
* @template {any} Result
|
|
89
|
+
* @param {ExtendObjType<Value> | ExtendObjTypeValue<Value, Result>[] | ExtendObjTypeValue<Value, Result>} ni
|
|
38
90
|
* - New type validators to be added.
|
|
39
91
|
* @param {number} [index] - Optional. Position at which to insert each new type. Ignored if the type already exists.
|
|
40
92
|
* @returns {string[]} - A list of successfully added type names.
|
|
93
|
+
* @throws {TypeError} If `ni` is not an object/array, if `index` is not a number, if a key is not a string, or if a validator is not a function.
|
|
41
94
|
*
|
|
42
95
|
* @example
|
|
43
96
|
* extendObjType({
|
|
44
|
-
*
|
|
97
|
+
* htmlElement2: val => typeof HTMLElement !== 'undefined' && val instanceof HTMLElement
|
|
45
98
|
* });
|
|
46
99
|
*
|
|
47
100
|
* @example
|
|
@@ -49,10 +102,13 @@ const typeValidator = {
|
|
|
49
102
|
* ['alpha', val => typeof val === 'string'],
|
|
50
103
|
* ['beta', val => Array.isArray(val)]
|
|
51
104
|
* ]);
|
|
105
|
+
*
|
|
106
|
+
* @example
|
|
107
|
+
* extendObjType(['gamma', val => typeof val === 'number']);
|
|
52
108
|
*/
|
|
53
|
-
function extendObjType(
|
|
54
|
-
if (typeof
|
|
55
|
-
throw new TypeError("Argument '
|
|
109
|
+
function extendObjType(ni, index) {
|
|
110
|
+
if (typeof ni !== 'object' || ni === null) {
|
|
111
|
+
throw new TypeError("Argument 'ni' must be an object or an array.");
|
|
56
112
|
}
|
|
57
113
|
|
|
58
114
|
if (typeof index !== 'undefined' && typeof index !== 'number') {
|
|
@@ -61,25 +117,57 @@ function extendObjType(newItems, index) {
|
|
|
61
117
|
|
|
62
118
|
const added = [];
|
|
63
119
|
|
|
64
|
-
|
|
120
|
+
// Normalization logic:
|
|
121
|
+
// 1. If ni is an array:
|
|
122
|
+
// - If the first element is also an array, it is an array of tuples (ExtendObjTypeValue[]).
|
|
123
|
+
// - If the first element is not an array, it is a single tuple (ExtendObjTypeValue).
|
|
124
|
+
// - If the array is empty, we use an empty array.
|
|
125
|
+
// 2. If ni is an object:
|
|
126
|
+
// - We use Object.entries to convert it to an array of [key, value] pairs.
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* @type {[string, ExtendObjTypeFunc<Value, Result>, ExtendObjTypeCloner<Value> | undefined][]}
|
|
130
|
+
*/
|
|
131
|
+
let entries;
|
|
132
|
+
if (Array.isArray(ni)) {
|
|
133
|
+
if (ni.length > 0 && Array.isArray(ni[0])) {
|
|
134
|
+
// @ts-ignore
|
|
135
|
+
entries = ni;
|
|
136
|
+
} else if (ni.length > 0) {
|
|
137
|
+
// @ts-ignore
|
|
138
|
+
entries = [ni];
|
|
139
|
+
} else {
|
|
140
|
+
entries = [];
|
|
141
|
+
}
|
|
142
|
+
} else {
|
|
143
|
+
// @ts-ignore
|
|
144
|
+
entries = Object.entries(ni);
|
|
145
|
+
}
|
|
65
146
|
|
|
66
147
|
for (const entry of entries) {
|
|
67
148
|
if (!Array.isArray(entry) || entry.length < 2) {
|
|
68
|
-
throw new TypeError(
|
|
149
|
+
throw new TypeError('Each item in the input must be a [key, function] pair.');
|
|
69
150
|
}
|
|
70
151
|
|
|
71
|
-
const [key,
|
|
152
|
+
const [key, validator, cloner] = entry;
|
|
153
|
+
if (typeof cloner !== 'undefined' && typeof cloner !== 'function') {
|
|
154
|
+
throw new TypeError(`Cloner for key '${key}' must be a function.`);
|
|
155
|
+
}
|
|
156
|
+
/** @type {ExtendObjTypeCloner<Value>} */
|
|
157
|
+
const effectiveCloner = typeof cloner === 'function' ? cloner : (val) => val;
|
|
72
158
|
|
|
73
159
|
if (typeof key !== 'string') {
|
|
74
160
|
throw new TypeError('Validator key must be a string.');
|
|
75
161
|
}
|
|
76
|
-
if (typeof
|
|
162
|
+
if (typeof validator !== 'function') {
|
|
77
163
|
throw new TypeError(`Validator for key '${key}' must be a function.`);
|
|
78
164
|
}
|
|
79
165
|
|
|
80
166
|
if (!typeValidator.items.hasOwnProperty(key)) {
|
|
81
|
-
|
|
82
|
-
|
|
167
|
+
typeValidator.items[key] = {
|
|
168
|
+
validator: validator,
|
|
169
|
+
cloner: effectiveCloner,
|
|
170
|
+
};
|
|
83
171
|
|
|
84
172
|
let insertAt = typeof index === 'number' ? index : -1; // Default to -1 if index isn't provided
|
|
85
173
|
|
|
@@ -159,10 +247,11 @@ function cloneObjTypeOrder() {
|
|
|
159
247
|
*/
|
|
160
248
|
const objTypeName = (val) => {
|
|
161
249
|
if (val === null) return 'null';
|
|
162
|
-
// @ts-ignore
|
|
163
250
|
for (const name of typeValidator.order) {
|
|
164
|
-
|
|
165
|
-
|
|
251
|
+
if (
|
|
252
|
+
typeof typeValidator.items[name].validator !== 'function' ||
|
|
253
|
+
typeValidator.items[name].validator(val)
|
|
254
|
+
)
|
|
166
255
|
return name;
|
|
167
256
|
}
|
|
168
257
|
return 'unknown';
|
|
@@ -174,6 +263,7 @@ const objTypeName = (val) => {
|
|
|
174
263
|
* @param {*} obj - The object to check.
|
|
175
264
|
* @param {string} [type] - Checks whether the object matches this type (e.g., "object", "array", "string").
|
|
176
265
|
* @returns {boolean} - Returns `true` if the type matches.
|
|
266
|
+
* @throws {TypeError} If `type` is not a string.
|
|
177
267
|
*/
|
|
178
268
|
function isObjType(obj, type) {
|
|
179
269
|
if (typeof type !== 'string') throw new TypeError("Argument 'type' must be a string.");
|
|
@@ -188,6 +278,7 @@ function isObjType(obj, type) {
|
|
|
188
278
|
* @param {string} [type] - Optional. If provided, checks whether the object matches this type (e.g., "object", "array", "string").
|
|
189
279
|
* @returns {boolean|string|null} - Returns `true` if the type matches, `false` if not,
|
|
190
280
|
* the type string if no type is provided, or `null` if the object is `undefined`.
|
|
281
|
+
* @throws {TypeError} If `type` is provided but is not a string.
|
|
191
282
|
*
|
|
192
283
|
* @example
|
|
193
284
|
* objType([], 'array'); // true
|
|
@@ -207,19 +298,23 @@ function objType(obj, type) {
|
|
|
207
298
|
}
|
|
208
299
|
|
|
209
300
|
/**
|
|
210
|
-
*
|
|
301
|
+
* @typedef {Object} CheckResult
|
|
302
|
+
* @property {*} valid - The result of the validator function (often the value itself if truthy).
|
|
303
|
+
* @property {string | null} type - The name of the detected type.
|
|
304
|
+
*/
|
|
305
|
+
|
|
306
|
+
/**
|
|
307
|
+
* Evaluates an object against the registered validators and returns the first match.
|
|
211
308
|
*
|
|
212
|
-
* @param {
|
|
213
|
-
* @returns {
|
|
309
|
+
* @param {unknown} obj - The object to check.
|
|
310
|
+
* @returns {CheckResult} An object containing the validation result and the type name.
|
|
214
311
|
*/
|
|
215
312
|
function checkObj(obj) {
|
|
216
|
-
/** @type {
|
|
313
|
+
/** @type {CheckResult} */
|
|
217
314
|
const data = { valid: null, type: null };
|
|
218
315
|
for (const name of typeValidator.order) {
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
// @ts-ignore
|
|
222
|
-
const result = typeValidator.items[name](obj);
|
|
316
|
+
if (typeof typeValidator.items[name].validator === 'function') {
|
|
317
|
+
const result = typeValidator.items[name].validator(obj);
|
|
223
318
|
if (result) {
|
|
224
319
|
data.valid = result;
|
|
225
320
|
data.type = name;
|
|
@@ -231,14 +326,23 @@ function checkObj(obj) {
|
|
|
231
326
|
}
|
|
232
327
|
|
|
233
328
|
/**
|
|
234
|
-
*
|
|
235
|
-
*
|
|
329
|
+
* Returns a shallow clone of the `typeValidator.items` registry.
|
|
330
|
+
*
|
|
331
|
+
* @returns {Record<string, ObjTypeRegistry<any, any>>} A new object containing the registry data.
|
|
236
332
|
*/
|
|
237
|
-
function
|
|
238
|
-
return Object.fromEntries(
|
|
333
|
+
function getObjTypeRegistry() {
|
|
334
|
+
return Object.fromEntries(
|
|
335
|
+
Object.entries(typeValidator.items).map(([key, data]) => [key, { ...data }]),
|
|
336
|
+
);
|
|
239
337
|
}
|
|
240
338
|
|
|
241
|
-
|
|
339
|
+
/**
|
|
340
|
+
* Returns a copy of the current order of type validators.
|
|
341
|
+
* @returns {string[]} A new array containing the type order.
|
|
342
|
+
*/
|
|
343
|
+
const getObjTypeOrder = () => [...typeValidator.order];
|
|
344
|
+
|
|
345
|
+
// --- Type Registration ---
|
|
242
346
|
|
|
243
347
|
extendObjType([
|
|
244
348
|
[
|
|
@@ -261,6 +365,11 @@ extendObjType([
|
|
|
261
365
|
/** @param {unknown} val @returns {val is number} */
|
|
262
366
|
(val) => typeof val === 'number' && !Number.isNaN(val),
|
|
263
367
|
],
|
|
368
|
+
[
|
|
369
|
+
'nannumber',
|
|
370
|
+
/** @param {unknown} val @returns {val is number} */
|
|
371
|
+
(val) => typeof val === 'number' && Number.isNaN(val),
|
|
372
|
+
],
|
|
264
373
|
[
|
|
265
374
|
'bigint',
|
|
266
375
|
/** @param {unknown} val @returns {val is bigint} */
|
|
@@ -281,97 +390,129 @@ extendObjType([
|
|
|
281
390
|
/** @param {unknown} val @returns {val is Function} */
|
|
282
391
|
(val) => typeof val === 'function',
|
|
283
392
|
],
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
]
|
|
393
|
+
]);
|
|
394
|
+
|
|
395
|
+
extendObjType([
|
|
396
|
+
'array',
|
|
397
|
+
/** @param {unknown} val @returns {val is unknown[]} */
|
|
398
|
+
(val) => Array.isArray(val),
|
|
399
|
+
/** @type {ExtendObjTypeCloner<unknown[]>} */
|
|
400
|
+
(item, isDeep, cloner) =>
|
|
401
|
+
item.map((element) => (isDeep ? cloner.clone(element, isDeep) : element)),
|
|
291
402
|
]);
|
|
292
403
|
|
|
293
404
|
if (isBrowser) {
|
|
294
405
|
extendObjType([
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
],
|
|
406
|
+
'file',
|
|
407
|
+
/** @param {unknown} val @returns {val is File} */
|
|
408
|
+
(val) => typeof File !== 'undefined' && val instanceof File,
|
|
409
|
+
/** @type {ExtendObjTypeCloner<File>} */
|
|
410
|
+
(item) => new File([item], item.name, { type: item.type, lastModified: item.lastModified }),
|
|
300
411
|
]);
|
|
301
412
|
}
|
|
302
413
|
|
|
303
414
|
extendObjType([
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
(
|
|
327
|
-
|
|
415
|
+
'date',
|
|
416
|
+
/** @param {unknown} val @returns {val is Date} */
|
|
417
|
+
(val) => val instanceof Date,
|
|
418
|
+
/** @type {ExtendObjTypeCloner<Date>} */
|
|
419
|
+
(item) => new Date(item.getTime()),
|
|
420
|
+
]);
|
|
421
|
+
|
|
422
|
+
extendObjType([
|
|
423
|
+
'regexp',
|
|
424
|
+
/** @param {unknown} val @returns {val is RegExp} */
|
|
425
|
+
(val) => val instanceof RegExp,
|
|
426
|
+
/** @type {ExtendObjTypeCloner<RegExp>} */
|
|
427
|
+
(item) => new RegExp(item.source, item.flags),
|
|
428
|
+
]);
|
|
429
|
+
|
|
430
|
+
extendObjType([
|
|
431
|
+
'map',
|
|
432
|
+
/** @param {unknown} val @returns {val is Map<unknown, unknown>} */
|
|
433
|
+
(val) => val instanceof Map,
|
|
434
|
+
/** @type {ExtendObjTypeCloner<Map<unknown, unknown>>} */
|
|
435
|
+
(item, isDeep, cloner) => {
|
|
436
|
+
const result = new Map();
|
|
437
|
+
for (const [key, value] of item.entries()) {
|
|
438
|
+
result.set(key, isDeep ? cloner.clone(value, isDeep) : value);
|
|
439
|
+
}
|
|
440
|
+
return result;
|
|
441
|
+
},
|
|
442
|
+
]);
|
|
443
|
+
|
|
444
|
+
extendObjType([
|
|
445
|
+
'set',
|
|
446
|
+
/** @param {unknown} val @returns {val is Set<unknown>} */
|
|
447
|
+
(val) => val instanceof Set,
|
|
448
|
+
/** @type {ExtendObjTypeCloner<Set<any>>} */
|
|
449
|
+
(item, isDeep, cloner) => {
|
|
450
|
+
const result = new Set();
|
|
451
|
+
for (const value of item) {
|
|
452
|
+
result.add(isDeep ? cloner.clone(value, isDeep) : value);
|
|
453
|
+
}
|
|
454
|
+
return result;
|
|
455
|
+
},
|
|
456
|
+
]);
|
|
457
|
+
|
|
458
|
+
extendObjType([
|
|
328
459
|
[
|
|
329
460
|
'weakmap',
|
|
330
|
-
/**
|
|
331
|
-
* @param {unknown} val @returns {val is WeakMap<unknown, unknown>}
|
|
332
|
-
*/
|
|
461
|
+
/** @param {unknown} val @returns {val is WeakMap<unknown, unknown>} */
|
|
333
462
|
(val) => val instanceof WeakMap,
|
|
334
463
|
],
|
|
335
464
|
[
|
|
336
465
|
'weakset',
|
|
337
|
-
/**
|
|
338
|
-
* @param {unknown} val @returns {val is WeakSet<unknown>}
|
|
339
|
-
*/
|
|
466
|
+
/** @param {unknown} val @returns {val is WeakSet<unknown>} */
|
|
340
467
|
(val) => val instanceof WeakSet,
|
|
341
468
|
],
|
|
342
469
|
[
|
|
343
470
|
'promise',
|
|
344
|
-
/**
|
|
345
|
-
* @param {unknown} val @returns {val is Promise<unknown>}
|
|
346
|
-
*/
|
|
471
|
+
/** @param {unknown} val @returns {val is Promise<unknown>} */
|
|
347
472
|
(val) => val instanceof Promise,
|
|
348
473
|
],
|
|
349
474
|
]);
|
|
350
475
|
|
|
476
|
+
extendObjType([
|
|
477
|
+
'url',
|
|
478
|
+
/** @param {unknown} val @returns {val is URL} */
|
|
479
|
+
(val) => val instanceof URL,
|
|
480
|
+
/** @type {ExtendObjTypeCloner<URL>} */
|
|
481
|
+
(item) => new URL(item.href),
|
|
482
|
+
]);
|
|
483
|
+
|
|
351
484
|
if (isBrowser) {
|
|
352
485
|
extendObjType([
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
486
|
+
'htmlelement',
|
|
487
|
+
/** @param {unknown} val @returns {val is HTMLElement} */
|
|
488
|
+
(val) => typeof HTMLElement !== 'undefined' && val instanceof HTMLElement,
|
|
489
|
+
/** @type {ExtendObjTypeCloner<Node>} */
|
|
490
|
+
(item) => item.cloneNode(true),
|
|
358
491
|
]);
|
|
359
492
|
}
|
|
360
493
|
|
|
361
494
|
extendObjType([
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
495
|
+
'object',
|
|
496
|
+
/** @param {unknown} val @returns {val is Record<string | number | symbol, unknown>} */
|
|
497
|
+
(val) => objChecker.isJsonObject(val),
|
|
498
|
+
/** @type {ExtendObjTypeCloner<Record<string | number | symbol, unknown>>} */
|
|
499
|
+
(item, isDeep, cloner) => {
|
|
500
|
+
/** @type {Record<string | number | symbol, unknown>} */
|
|
501
|
+
const result = {};
|
|
502
|
+
for (const key in item) {
|
|
503
|
+
if (Object.prototype.hasOwnProperty.call(item, key)) {
|
|
504
|
+
result[key] = isDeep ? cloner.clone(item[key], isDeep) : item[key];
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
return result;
|
|
508
|
+
},
|
|
369
509
|
]);
|
|
370
510
|
|
|
371
511
|
exports.checkObj = checkObj;
|
|
372
512
|
exports.cloneObjTypeOrder = cloneObjTypeOrder;
|
|
373
513
|
exports.extendObjType = extendObjType;
|
|
374
|
-
exports.
|
|
514
|
+
exports.getObjTypeOrder = getObjTypeOrder;
|
|
515
|
+
exports.getObjTypeRegistry = getObjTypeRegistry;
|
|
375
516
|
exports.isObjType = isObjType;
|
|
376
517
|
exports.objType = objType;
|
|
377
518
|
exports.objTypeName = objTypeName;
|
|
@@ -1,21 +1,74 @@
|
|
|
1
|
-
export type
|
|
2
|
-
export type
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
export type TinyCloner = import('../libs/utils/TinyCloner.mjs').default;
|
|
2
|
+
export type ExtendObjTypeFunc<Value extends any, Result extends any> = (val: Value) => Result;
|
|
3
|
+
export type ExtendObjTypeCloner<Value extends any> = (val: Value, isDeep: boolean, cloner: TinyCloner) => Value;
|
|
4
|
+
export type ExtendObjType<Value extends any> = Object<string, ExtendObjTypeFunc<Value, any>>;
|
|
5
|
+
export type ExtendObjTypeValue<Value extends any, Result extends any> = [string, ExtendObjTypeFunc<Value, Result>, ExtendObjTypeCloner<Value>] | [string, ExtendObjTypeFunc<Value, Result>];
|
|
6
|
+
export type ObjTypeRegistry<Value extends any, Result extends any> = {
|
|
7
|
+
/**
|
|
8
|
+
* - The function used to validate the type.
|
|
9
|
+
*/
|
|
10
|
+
validator: ExtendObjTypeFunc<Value, Result>;
|
|
11
|
+
/**
|
|
12
|
+
* - The function used to create a clone of the value.
|
|
13
|
+
*/
|
|
14
|
+
cloner: ExtendObjTypeCloner<Value>;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* @typedef {import('../libs/utils/TinyCloner.mjs').default} TinyCloner
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* A function type used to validate a value and return a specific result.
|
|
21
|
+
*
|
|
22
|
+
* @template {any} Value - The type of the value being validated.
|
|
23
|
+
* @template {any} Result - The type of the result returned by the function.
|
|
24
|
+
* @typedef {(val: Value) => Result} ExtendObjTypeFunc
|
|
25
|
+
*/
|
|
26
|
+
/**
|
|
27
|
+
* A function type used to clone a value, supporting deep cloning operations.
|
|
28
|
+
*
|
|
29
|
+
* @template {any} Value - The type of the value to be cloned.
|
|
30
|
+
* @typedef {(val: Value, isDeep: boolean, cloner: TinyCloner) => Value} ExtendObjTypeCloner
|
|
31
|
+
*/
|
|
5
32
|
/**
|
|
6
|
-
*
|
|
33
|
+
* A mapping of type names to their corresponding validation functions.
|
|
7
34
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
35
|
+
* @template {any} Value - The type of the value being mapped.
|
|
36
|
+
* @typedef {Object.<string, ExtendObjTypeFunc<Value, any>>} ExtendObjType
|
|
37
|
+
*/
|
|
38
|
+
/**
|
|
39
|
+
* A tuple representing a type definition, containing a key, a validator, and an optional cloner.
|
|
40
|
+
*
|
|
41
|
+
* @template {any} Value - The type of the value.
|
|
42
|
+
* @template {any} Result - The type of the result returned by the validator.
|
|
43
|
+
* @typedef {[string, ExtendObjTypeFunc<Value, Result>, ExtendObjTypeCloner<Value>]|[string, ExtendObjTypeFunc<Value, Result>]} ExtendObjTypeValue
|
|
44
|
+
*/
|
|
45
|
+
/**
|
|
46
|
+
* A registry object containing the validator and cloner for a specific type.
|
|
47
|
+
*
|
|
48
|
+
* @template {any} Value - The type of the value being registered.
|
|
49
|
+
* @template {any} Result - The type of the result returned by the validator.
|
|
50
|
+
* @typedef {Object} ObjTypeRegistry
|
|
51
|
+
* @property {ExtendObjTypeFunc<Value, Result>} validator - The function used to validate the type.
|
|
52
|
+
* @property {ExtendObjTypeCloner<Value>} cloner - The function used to create a clone of the value.
|
|
53
|
+
*/
|
|
54
|
+
/**
|
|
55
|
+
* Adds new type checkers to the `typeValidator` registry.
|
|
10
56
|
*
|
|
11
|
-
*
|
|
57
|
+
* Accepts an object of functions, an array of [key, validator] tuples, or an array of [key, validator, cloner] tuples.
|
|
58
|
+
* If an `index` is provided, the new type is inserted at that position.
|
|
59
|
+
* If no index is provided, it is inserted before the 'object' type or at the end of the registry.
|
|
60
|
+
*
|
|
61
|
+
* @template {any} Value
|
|
62
|
+
* @template {any} Result
|
|
63
|
+
* @param {ExtendObjType<Value> | ExtendObjTypeValue<Value, Result>[] | ExtendObjTypeValue<Value, Result>} ni
|
|
12
64
|
* - New type validators to be added.
|
|
13
65
|
* @param {number} [index] - Optional. Position at which to insert each new type. Ignored if the type already exists.
|
|
14
66
|
* @returns {string[]} - A list of successfully added type names.
|
|
67
|
+
* @throws {TypeError} If `ni` is not an object/array, if `index` is not a number, if a key is not a string, or if a validator is not a function.
|
|
15
68
|
*
|
|
16
69
|
* @example
|
|
17
70
|
* extendObjType({
|
|
18
|
-
*
|
|
71
|
+
* htmlElement2: val => typeof HTMLElement !== 'undefined' && val instanceof HTMLElement
|
|
19
72
|
* });
|
|
20
73
|
*
|
|
21
74
|
* @example
|
|
@@ -23,8 +76,11 @@ export type ExtendObjTypeArray = Array<[string, (val: any) => any]>;
|
|
|
23
76
|
* ['alpha', val => typeof val === 'string'],
|
|
24
77
|
* ['beta', val => Array.isArray(val)]
|
|
25
78
|
* ]);
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* extendObjType(['gamma', val => typeof val === 'number']);
|
|
26
82
|
*/
|
|
27
|
-
export declare function extendObjType(
|
|
83
|
+
export declare function extendObjType<Value extends any, Result extends any>(ni: ExtendObjType<Value> | ExtendObjTypeValue<Value, Result>[] | ExtendObjTypeValue<Value, Result>, index?: number): string[];
|
|
28
84
|
/**
|
|
29
85
|
* Reorders the typeValidator.order array according to a custom new order.
|
|
30
86
|
* All values in the new order must already exist in the current order.
|
|
@@ -67,6 +123,7 @@ export declare const objTypeName: (val: any) => string;
|
|
|
67
123
|
* @param {*} obj - The object to check.
|
|
68
124
|
* @param {string} [type] - Checks whether the object matches this type (e.g., "object", "array", "string").
|
|
69
125
|
* @returns {boolean} - Returns `true` if the type matches.
|
|
126
|
+
* @throws {TypeError} If `type` is not a string.
|
|
70
127
|
*/
|
|
71
128
|
export declare function isObjType(obj: any, type?: string): boolean;
|
|
72
129
|
/**
|
|
@@ -77,6 +134,7 @@ export declare function isObjType(obj: any, type?: string): boolean;
|
|
|
77
134
|
* @param {string} [type] - Optional. If provided, checks whether the object matches this type (e.g., "object", "array", "string").
|
|
78
135
|
* @returns {boolean|string|null} - Returns `true` if the type matches, `false` if not,
|
|
79
136
|
* the type string if no type is provided, or `null` if the object is `undefined`.
|
|
137
|
+
* @throws {TypeError} If `type` is provided but is not a string.
|
|
80
138
|
*
|
|
81
139
|
* @example
|
|
82
140
|
* objType([], 'array'); // true
|
|
@@ -85,21 +143,37 @@ export declare function isObjType(obj: any, type?: string): boolean;
|
|
|
85
143
|
* objType(undefined); // null
|
|
86
144
|
*/
|
|
87
145
|
export declare function objType(obj: any, type?: string): boolean | string | null;
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
* @returns {{ valid:*; type: string | null }} - Returns the type result.
|
|
93
|
-
*/
|
|
94
|
-
export declare function checkObj(obj: any): {
|
|
146
|
+
export type CheckResult = {
|
|
147
|
+
/**
|
|
148
|
+
* - The result of the validator function (often the value itself if truthy).
|
|
149
|
+
*/
|
|
95
150
|
valid: any;
|
|
151
|
+
/**
|
|
152
|
+
* - The name of the detected type.
|
|
153
|
+
*/
|
|
96
154
|
type: string | null;
|
|
97
155
|
};
|
|
98
156
|
/**
|
|
99
|
-
*
|
|
100
|
-
*
|
|
157
|
+
* @typedef {Object} CheckResult
|
|
158
|
+
* @property {*} valid - The result of the validator function (often the value itself if truthy).
|
|
159
|
+
* @property {string | null} type - The name of the detected type.
|
|
101
160
|
*/
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
161
|
+
/**
|
|
162
|
+
* Evaluates an object against the registered validators and returns the first match.
|
|
163
|
+
*
|
|
164
|
+
* @param {unknown} obj - The object to check.
|
|
165
|
+
* @returns {CheckResult} An object containing the validation result and the type name.
|
|
166
|
+
*/
|
|
167
|
+
export declare function checkObj(obj: unknown): CheckResult;
|
|
168
|
+
/**
|
|
169
|
+
* Returns a shallow clone of the `typeValidator.items` registry.
|
|
170
|
+
*
|
|
171
|
+
* @returns {Record<string, ObjTypeRegistry<any, any>>} A new object containing the registry data.
|
|
172
|
+
*/
|
|
173
|
+
export declare function getObjTypeRegistry(): Record<string, ObjTypeRegistry<any, any>>;
|
|
174
|
+
/**
|
|
175
|
+
* Returns a copy of the current order of type validators.
|
|
176
|
+
* @returns {string[]} A new array containing the type order.
|
|
177
|
+
*/
|
|
178
|
+
export declare const getObjTypeOrder: () => string[];
|
|
105
179
|
//# sourceMappingURL=objFilter.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"objFilter.d.mts","sourceRoot":"","sources":["../../../src/v1/basics/objFilter.mjs"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"objFilter.d.mts","sourceRoot":"","sources":["../../../src/v1/basics/objFilter.mjs"],"names":[],"mappings":"AAiCG,YAA0D,UAAU,GAA1D,OAAO,8BAA8B,EAAE,OAAO,CAAY;AAQpE,YAAkC,iBAAiB,CAFnC,KAAK,SAAV,GAAU,EACL,MAAM,SAAX,GAAW,IACZ,CAAC,GAAG,EAAE,KAAK,KAAK,MAAM,CAAmB;AAOnD,YAAsE,mBAAmB,CADzE,KAAK,SAAV,GAAU,IACX,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,KAAK,KAAK,CAAqB;AAOzF,YAA0D,aAAa,CADvD,KAAK,SAAV,GAAU,IACX,MAAM,CAAE,MAAM,EAAE,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAe;AAQvE,YAA6H,kBAAkB,CAF/H,KAAK,SAAV,GAAU,EACL,MAAM,SAAX,GAAW,IACZ,CAAC,MAAM,EAAE,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,GAAC,CAAC,MAAM,EAAE,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAoB;AAQ/I,YAAkB,eAAe,CAFjB,KAAK,SAAV,GAAU,EACL,MAAM,SAAX,GAAW,IAEtB;;;;IAA6C,SAAS,EAA3C,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAC3C;;;;IAAuC,MAAM,EAAlC,mBAAmB,CAAC,KAAK,CAAC,CACvC;CAAA,CAAA;AA1CD;;GAEG;AAEH;;;;;;GAMG;AAEH;;;;;GAKG;AAEH;;;;;GAKG;AAEH;;;;;;GAMG;AAEH;;;;;;;;GAQG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,aAAa,CAtBV,KAAK,SAAV,GAAU,EACL,MAAM,SAAX,GAAW,EAqBK,EAAE,EApBrB,aAAa,CAAC,KAAK,CAAC,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAoBxE,EAAE,KAAK,AAlBpC,CACA,EADQ,MAkB4B,GAjB1B,MAAM,EAAE,CAiGpB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EARjC,MAAM,EAQ2B,GAP/B,OAAO,CAyBnB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAFpB,MAAM,EAAE,CAIpB;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,WAAW,QARb,GAAG,KACD,MAiBZ,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,GAAG,EALlB,GAKkB,EAAE,IAAI,AAJhC,CACA,EADQ,MAIwB,GAHtB,OAAO,CAMnB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAZhB,GAYgB,EAAE,IAAI,AAX9B,CACA,EADQ,MAWsB,GAVpB,OAAO,GAAC,MAAM,GAAC,IAAI,CAmB/B;AAGE,YAAkB,WAAW,GAC7B;;;;IAAc,KAAK,EAAR,GAAC,CACZ;;;;IAA0B,IAAI,EAAnB,MAAM,GAAG,IAAI,CAC1B;CAAA,CAAA;AAJD;;;;GAIG;AAEH;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAHjB,OAGiB,GAFf,WAAW,CAgBvB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,IAFrB,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAMrD;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,QAFf,MAAM,EAE0C,CAAC"}
|