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
|
@@ -6,6 +6,20 @@
|
|
|
6
6
|
* @typedef {'chrome'|'firefox'|'ie'|'edge'|'safari'|'opera'|'yandex'|'other'} BrowserDetected
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
+
/**
|
|
10
|
+
* This is determined by checking if the `window` and `document` objects are defined.
|
|
11
|
+
* @returns {boolean} Indicates if the current execution environment is a web browser.
|
|
12
|
+
*/
|
|
13
|
+
const isBrowser = () =>
|
|
14
|
+
// @ts-ignore
|
|
15
|
+
typeof window !== 'undefined' && typeof window.document !== 'undefined';
|
|
16
|
+
|
|
17
|
+
const win =
|
|
18
|
+
// @ts-ignore
|
|
19
|
+
typeof window !== 'undefined' ? window : typeof globalThis !== 'undefined' ? globalThis : null;
|
|
20
|
+
// @ts-ignore
|
|
21
|
+
const doc = typeof document !== 'undefined' ? document : null;
|
|
22
|
+
|
|
9
23
|
/**
|
|
10
24
|
* @typedef {Object} DuckTypingResult
|
|
11
25
|
* @property {boolean} isOpera - True if Opera is detected.
|
|
@@ -25,6 +39,10 @@ const VALID_BROWSERS = ['chrome', 'firefox', 'ie', 'edge', 'safari', 'opera', 'y
|
|
|
25
39
|
* @returns {BrowserDetected} The detected browser name.
|
|
26
40
|
*/
|
|
27
41
|
function isBrowserAgent() {
|
|
42
|
+
if (typeof navigator === 'undefined') {
|
|
43
|
+
return 'other';
|
|
44
|
+
}
|
|
45
|
+
|
|
28
46
|
const ua = navigator.userAgent;
|
|
29
47
|
|
|
30
48
|
// CHROME
|
|
@@ -65,10 +83,15 @@ function isBrowserAgent() {
|
|
|
65
83
|
* @returns {'gecko'|'webkit'|'trident'|'other'} The detected CSS engine prefix.
|
|
66
84
|
*/
|
|
67
85
|
function getBrowserCssPrefix() {
|
|
68
|
-
const prefix =
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
86
|
+
const prefix = !!win?.getComputedStyle
|
|
87
|
+
? (Array.prototype.slice
|
|
88
|
+
.call(
|
|
89
|
+
// @ts-ignore
|
|
90
|
+
win.getComputedStyle(document.documentElement, ''),
|
|
91
|
+
)
|
|
92
|
+
.join('')
|
|
93
|
+
.match(/-(moz|webkit|ms)-/) ?? ['', ''])[1]
|
|
94
|
+
: '';
|
|
72
95
|
|
|
73
96
|
// Firefox (Gecko engine)
|
|
74
97
|
if (prefix === 'moz') {
|
|
@@ -97,7 +120,7 @@ function getDuckTyping() {
|
|
|
97
120
|
// OPERA 8.0+
|
|
98
121
|
const isOpera =
|
|
99
122
|
// @ts-ignore
|
|
100
|
-
(!!
|
|
123
|
+
(!!win?.opr && !!opr.addons) || !!win?.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
|
|
101
124
|
|
|
102
125
|
// FIREFOX 1.0+
|
|
103
126
|
// @ts-ignore
|
|
@@ -105,27 +128,28 @@ function getDuckTyping() {
|
|
|
105
128
|
|
|
106
129
|
// SAFARI 3.0+
|
|
107
130
|
const isSafari =
|
|
108
|
-
|
|
109
|
-
|
|
131
|
+
(!!win?.HTMLElement &&
|
|
132
|
+
// @ts-ignore
|
|
133
|
+
/constructor/i.test(win.HTMLElement)) ||
|
|
110
134
|
(function (p) {
|
|
111
135
|
return p.toString() === '[object SafariRemoteNotification]';
|
|
112
136
|
// @ts-ignore
|
|
113
|
-
})(!
|
|
137
|
+
})(!win['safari'] || (typeof safari !== 'undefined' && safari.pushNotification));
|
|
114
138
|
|
|
115
139
|
// INTERNET EXPLORER 6-11
|
|
116
140
|
// @ts-ignore
|
|
117
|
-
const isIE = /*@cc_on!@*/ !!
|
|
141
|
+
const isIE = /*@cc_on!@*/ !!doc?.documentMode;
|
|
118
142
|
|
|
119
143
|
// EDGE 20+
|
|
120
144
|
// @ts-ignore
|
|
121
|
-
const isEdge = !isIE && !!
|
|
145
|
+
const isEdge = !isIE && !!win?.StyleMedia;
|
|
122
146
|
|
|
123
147
|
// CHROME 1+
|
|
124
148
|
// @ts-ignore
|
|
125
|
-
const isChrome = !!
|
|
149
|
+
const isChrome = !!win?.chrome;
|
|
126
150
|
|
|
127
151
|
// BLINK ENGINE DETECTION
|
|
128
|
-
const isBlink = (isChrome || isOpera) && !!
|
|
152
|
+
const isBlink = (isChrome || isOpera) && !!win?.CSS;
|
|
129
153
|
|
|
130
154
|
return { isOpera, isFirefox, isSafari, isIE, isEdge, isChrome, isBlink };
|
|
131
155
|
}
|
|
@@ -225,4 +249,5 @@ exports.browserIs = browserIs;
|
|
|
225
249
|
exports.getBrowserCssPrefix = getBrowserCssPrefix;
|
|
226
250
|
exports.getBrowserPings = getBrowserPings;
|
|
227
251
|
exports.getDuckTyping = getDuckTyping;
|
|
252
|
+
exports.isBrowser = isBrowser;
|
|
228
253
|
exports.isBrowserAgent = isBrowserAgent;
|
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
export type BrowserDetected = 'chrome' | 'firefox' | 'ie' | 'edge' | 'safari' | 'opera' | 'yandex' | 'other';
|
|
2
|
+
/**
|
|
3
|
+
* @typedef {'chrome'|'firefox'|'ie'|'edge'|'safari'|'opera'|'yandex'|'other'} BrowserDetected
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* This is determined by checking if the `window` and `document` objects are defined.
|
|
7
|
+
* @returns {boolean} Indicates if the current execution environment is a web browser.
|
|
8
|
+
*/
|
|
9
|
+
export declare const isBrowser: () => boolean;
|
|
2
10
|
export type DuckTypingResult = {
|
|
3
11
|
/**
|
|
4
12
|
* - True if Opera is detected.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browserDetector.d.mts","sourceRoot":"","sources":["../../../src/v1/basics/browserDetector.mjs"],"names":[],"mappings":"AAGG,YAA4E,eAAe,GAAjF,QAAQ,GAAC,SAAS,GAAC,IAAI,GAAC,MAAM,GAAC,QAAQ,GAAC,OAAO,GAAC,QAAQ,GAAC,OAAO,CAAiB;
|
|
1
|
+
{"version":3,"file":"browserDetector.d.mts","sourceRoot":"","sources":["../../../src/v1/basics/browserDetector.mjs"],"names":[],"mappings":"AAGG,YAA4E,eAAe,GAAjF,QAAQ,GAAC,SAAS,GAAC,IAAI,GAAC,MAAM,GAAC,QAAQ,GAAC,OAAO,GAAC,QAAQ,GAAC,OAAO,CAAiB;AAD9F;;GAEG;AAEH;;;GAGG;AACH,eAAO,MAAM,SAAS,QAFT,OAI4D,CAAC;AASvE,YAAkB,gBAAgB,GAClC;;;;IAAoB,OAAO,EAAhB,OAAO,CAClB;;;;IAAoB,SAAS,EAAlB,OAAO,CAClB;;;;IAAoB,QAAQ,EAAjB,OAAO,CAClB;;;;IAAoB,IAAI,EAAb,OAAO,CAClB;;;;IAAoB,MAAM,EAAf,OAAO,CAClB;;;;IAAoB,QAAQ,EAAjB,OAAO,CAClB;;;;IAAoB,OAAO,EAAhB,OAAO,CACpB;CAAA,CAAA;AAID;;;;GAIG;AACH,wBAAgB,cAAc,IAFjB,eAAe,CAuC3B;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAFtB,OAAO,GAAC,QAAQ,GAAC,SAAS,GAAC,OAAO,CA6B9C;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAFhB,gBAAgB,CAsC5B;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,AAJpC,CACA,EADQ,eAAe,EAIkB,OAgE3C;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,OAAO,AAJ9B,CACA,EADQ,eAAe,EAIY,GAHzB,eAAe,CAY3B"}
|
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* @typedef {'chrome'|'firefox'|'ie'|'edge'|'safari'|'opera'|'yandex'|'other'} BrowserDetected
|
|
4
4
|
*/
|
|
5
|
+
/**
|
|
6
|
+
* This is determined by checking if the `window` and `document` objects are defined.
|
|
7
|
+
* @returns {boolean} Indicates if the current execution environment is a web browser.
|
|
8
|
+
*/
|
|
9
|
+
export const isBrowser = () =>
|
|
10
|
+
// @ts-ignore
|
|
11
|
+
typeof window !== 'undefined' && typeof window.document !== 'undefined';
|
|
12
|
+
const win =
|
|
13
|
+
// @ts-ignore
|
|
14
|
+
typeof window !== 'undefined' ? window : typeof globalThis !== 'undefined' ? globalThis : null;
|
|
15
|
+
// @ts-ignore
|
|
16
|
+
const doc = typeof document !== 'undefined' ? document : null;
|
|
5
17
|
/**
|
|
6
18
|
* @typedef {Object} DuckTypingResult
|
|
7
19
|
* @property {boolean} isOpera - True if Opera is detected.
|
|
@@ -19,6 +31,9 @@ const VALID_BROWSERS = ['chrome', 'firefox', 'ie', 'edge', 'safari', 'opera', 'y
|
|
|
19
31
|
* @returns {BrowserDetected} The detected browser name.
|
|
20
32
|
*/
|
|
21
33
|
export function isBrowserAgent() {
|
|
34
|
+
if (typeof navigator === 'undefined') {
|
|
35
|
+
return 'other';
|
|
36
|
+
}
|
|
22
37
|
const ua = navigator.userAgent;
|
|
23
38
|
// CHROME
|
|
24
39
|
if (ua.indexOf('Chrome') !== -1) {
|
|
@@ -57,10 +72,14 @@ export function isBrowserAgent() {
|
|
|
57
72
|
* @returns {'gecko'|'webkit'|'trident'|'other'} The detected CSS engine prefix.
|
|
58
73
|
*/
|
|
59
74
|
export function getBrowserCssPrefix() {
|
|
60
|
-
const prefix =
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
75
|
+
const prefix = !!win?.getComputedStyle
|
|
76
|
+
? (Array.prototype.slice
|
|
77
|
+
.call(
|
|
78
|
+
// @ts-ignore
|
|
79
|
+
win.getComputedStyle(document.documentElement, ''))
|
|
80
|
+
.join('')
|
|
81
|
+
.match(/-(moz|webkit|ms)-/) ?? ['', ''])[1]
|
|
82
|
+
: '';
|
|
64
83
|
// Firefox (Gecko engine)
|
|
65
84
|
if (prefix === 'moz') {
|
|
66
85
|
return 'gecko';
|
|
@@ -84,29 +103,29 @@ export function getDuckTyping() {
|
|
|
84
103
|
// OPERA 8.0+
|
|
85
104
|
const isOpera =
|
|
86
105
|
// @ts-ignore
|
|
87
|
-
(!!
|
|
106
|
+
(!!win?.opr && !!opr.addons) || !!win?.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
|
|
88
107
|
// FIREFOX 1.0+
|
|
89
108
|
// @ts-ignore
|
|
90
109
|
const isFirefox = typeof InstallTrigger !== 'undefined';
|
|
91
110
|
// SAFARI 3.0+
|
|
92
|
-
const isSafari =
|
|
93
|
-
|
|
94
|
-
|
|
111
|
+
const isSafari = (!!win?.HTMLElement &&
|
|
112
|
+
// @ts-ignore
|
|
113
|
+
/constructor/i.test(win.HTMLElement)) ||
|
|
95
114
|
(function (p) {
|
|
96
115
|
return p.toString() === '[object SafariRemoteNotification]';
|
|
97
116
|
// @ts-ignore
|
|
98
|
-
})(!
|
|
117
|
+
})(!win['safari'] || (typeof safari !== 'undefined' && safari.pushNotification));
|
|
99
118
|
// INTERNET EXPLORER 6-11
|
|
100
119
|
// @ts-ignore
|
|
101
|
-
const isIE = /*@cc_on!@*/ false || !!
|
|
120
|
+
const isIE = /*@cc_on!@*/ false || !!doc?.documentMode;
|
|
102
121
|
// EDGE 20+
|
|
103
122
|
// @ts-ignore
|
|
104
|
-
const isEdge = !isIE && !!
|
|
123
|
+
const isEdge = !isIE && !!win?.StyleMedia;
|
|
105
124
|
// CHROME 1+
|
|
106
125
|
// @ts-ignore
|
|
107
|
-
const isChrome = !!
|
|
126
|
+
const isChrome = !!win?.chrome;
|
|
108
127
|
// BLINK ENGINE DETECTION
|
|
109
|
-
const isBlink = (isChrome || isOpera) && !!
|
|
128
|
+
const isBlink = (isChrome || isOpera) && !!win?.CSS;
|
|
110
129
|
return { isOpera, isFirefox, isSafari, isIE, isEdge, isChrome, isBlink };
|
|
111
130
|
}
|
|
112
131
|
/**
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Asynchronously generates a cryptographic hash of the provided text using
|
|
5
|
+
* the specified algorithm and returns the result as a hexadecimal string.
|
|
6
|
+
*
|
|
7
|
+
* @param {string} text - The input string to be hashed.
|
|
8
|
+
* @param {AlgorithmIdentifier} algorithm - The cryptographic algorithm to be used for hashing.
|
|
9
|
+
* @returns {Promise<string>} A promise that resolves to the hexadecimal hash string.
|
|
10
|
+
*/
|
|
11
|
+
async function hashText(text, algorithm) {
|
|
12
|
+
if (typeof text !== 'string') {
|
|
13
|
+
throw new TypeError('The "text" parameter must be a string.');
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const encoder = new TextEncoder();
|
|
17
|
+
const data = encoder.encode(text);
|
|
18
|
+
const hashBuffer = await crypto.subtle.digest(algorithm, data);
|
|
19
|
+
const hashArray = Array.from(new Uint8Array(hashBuffer));
|
|
20
|
+
return hashArray.map((b) => b.toString(16).padStart(2, '0')).join('');
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
exports.hashText = hashText;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Asynchronously generates a cryptographic hash of the provided text using
|
|
3
|
+
* the specified algorithm and returns the result as a hexadecimal string.
|
|
4
|
+
*
|
|
5
|
+
* @param {string} text - The input string to be hashed.
|
|
6
|
+
* @param {AlgorithmIdentifier} algorithm - The cryptographic algorithm to be used for hashing.
|
|
7
|
+
* @returns {Promise<string>} A promise that resolves to the hexadecimal hash string.
|
|
8
|
+
*/
|
|
9
|
+
export declare function hashText(text: string, algorithm: AlgorithmIdentifier): Promise<string>;
|
|
10
|
+
//# sourceMappingURL=crypto.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto.d.mts","sourceRoot":"","sources":["../../../src/v1/basics/crypto.mjs"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAJxB,MAIwB,EAAE,SAAS,EAHnC,mBAGmC,GAFjC,OAAO,CAAC,MAAM,CAAC,CAY3B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Asynchronously generates a cryptographic hash of the provided text using
|
|
3
|
+
* the specified algorithm and returns the result as a hexadecimal string.
|
|
4
|
+
*
|
|
5
|
+
* @param {string} text - The input string to be hashed.
|
|
6
|
+
* @param {AlgorithmIdentifier} algorithm - The cryptographic algorithm to be used for hashing.
|
|
7
|
+
* @returns {Promise<string>} A promise that resolves to the hexadecimal hash string.
|
|
8
|
+
*/
|
|
9
|
+
export async function hashText(text, algorithm) {
|
|
10
|
+
if (typeof text !== 'string') {
|
|
11
|
+
throw new TypeError('The "text" parameter must be a string.');
|
|
12
|
+
}
|
|
13
|
+
const encoder = new TextEncoder();
|
|
14
|
+
const data = encoder.encode(text);
|
|
15
|
+
const hashBuffer = await crypto.subtle.digest(algorithm, data);
|
|
16
|
+
const hashArray = Array.from(new Uint8Array(hashBuffer));
|
|
17
|
+
return hashArray.map((b) => b.toString(16).padStart(2, '0')).join('');
|
|
18
|
+
}
|
package/dist/v1/basics/html.cjs
CHANGED
|
@@ -155,10 +155,7 @@ function saveJsonFile(filename, data, spaces = 2) {
|
|
|
155
155
|
const link = document.createElement('a');
|
|
156
156
|
link.href = url;
|
|
157
157
|
link.download = filename;
|
|
158
|
-
|
|
159
|
-
document.body.appendChild(link);
|
|
160
158
|
link.click();
|
|
161
|
-
document.body.removeChild(link);
|
|
162
159
|
|
|
163
160
|
URL.revokeObjectURL(url);
|
|
164
161
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.d.mts","sourceRoot":"","sources":["../../../src/v1/basics/html.mjs"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,IAAI,EARtB,IAAI,GAAC,IAQiB,EAAE,MAAM,EAP9B,mBAAmB,GAAC,eAAe,GAAC,YAAY,GAAC,oBAOnB,GAL5B,OAAO,CAAC,GAAG,CAAC,CAiCxB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,IAAI,EATxB,IAAI,GAAC,IASmB,EAAE,SAAS,AAR3C,CAEA,EAFQ,OAAO,GAAC,MAQmC,GANzC,OAAO,CAAC,MAAM,CAAC,CA2C3B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,IAAI,EARtB,IAAI,GAAC,IAQiB,GAPpB,OAAO,CAAC,MAAM,CAAC,MAAM,GAAC,MAAM,GAAC,MAAM,EAAE,GAAG,CAAC,GAAC,GAAG,EAAE,CAAC,CA2B5D;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAL1B,MAK0B,EAAE,IAAI,EAJhC,GAIgC,EAAE,MAAM,AAHhD,CACA,EADQ,MAG4C,
|
|
1
|
+
{"version":3,"file":"html.d.mts","sourceRoot":"","sources":["../../../src/v1/basics/html.mjs"],"names":[],"mappings":"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"}
|
package/dist/v1/basics/html.mjs
CHANGED
|
@@ -132,9 +132,7 @@ export function saveJsonFile(filename, data, spaces = 2) {
|
|
|
132
132
|
const link = document.createElement('a');
|
|
133
133
|
link.href = url;
|
|
134
134
|
link.download = filename;
|
|
135
|
-
document.body.appendChild(link);
|
|
136
135
|
link.click();
|
|
137
|
-
document.body.removeChild(link);
|
|
138
136
|
URL.revokeObjectURL(url);
|
|
139
137
|
}
|
|
140
138
|
/**
|
package/dist/v1/basics/index.cjs
CHANGED
|
@@ -8,6 +8,7 @@ var objChecker = require('./objChecker.cjs');
|
|
|
8
8
|
var fullScreen = require('./fullScreen.cjs');
|
|
9
9
|
var simpleMath = require('./simpleMath.cjs');
|
|
10
10
|
var text = require('./text.cjs');
|
|
11
|
+
var crypto = require('./crypto.cjs');
|
|
11
12
|
var collision = require('./collision.cjs');
|
|
12
13
|
var mediaContent = require('./mediaContent.cjs');
|
|
13
14
|
var promiseUtils = require('./promiseUtils.cjs');
|
|
@@ -35,11 +36,16 @@ exports.readJsonBlob = html.readJsonBlob;
|
|
|
35
36
|
exports.saveJsonFile = html.saveJsonFile;
|
|
36
37
|
exports.cloneObjTypeOrder = objFilter.cloneObjTypeOrder;
|
|
37
38
|
exports.extendObjType = objFilter.extendObjType;
|
|
39
|
+
exports.getObjTypeOrder = objFilter.getObjTypeOrder;
|
|
40
|
+
exports.getObjTypeRegistry = objFilter.getObjTypeRegistry;
|
|
38
41
|
exports.isObjType = objFilter.isObjType;
|
|
39
42
|
exports.objType = objFilter.objType;
|
|
40
43
|
exports.objTypeName = objFilter.objTypeName;
|
|
41
44
|
exports.reorderObjTypeOrder = objFilter.reorderObjTypeOrder;
|
|
42
45
|
exports.countObj = objChecker.countObj;
|
|
46
|
+
exports.isAnyClassInstance = objChecker.isAnyClassInstance;
|
|
47
|
+
exports.isClass = objChecker.isClass;
|
|
48
|
+
exports.isClassInstance = objChecker.isClassInstance;
|
|
43
49
|
exports.isJsonObject = objChecker.isJsonObject;
|
|
44
50
|
exports.isValidObj = objChecker.isValidObj;
|
|
45
51
|
exports.documentIsFullScreen = fullScreen.documentIsFullScreen;
|
|
@@ -60,10 +66,10 @@ exports.ruleOfThree = simpleMath.ruleOfThree;
|
|
|
60
66
|
exports.addAiMarkerShortcut = text.addAiMarkerShortcut;
|
|
61
67
|
exports.asyncReplace = text.asyncReplace;
|
|
62
68
|
exports.diffObjList = text.diffObjList;
|
|
63
|
-
exports.diffStrings = text.diffStrings;
|
|
64
69
|
exports.safeTextTrim = text.safeTextTrim;
|
|
65
70
|
exports.toTitleCase = text.toTitleCase;
|
|
66
71
|
exports.toTitleCaseLowerFirst = text.toTitleCaseLowerFirst;
|
|
72
|
+
exports.hashText = crypto.hashText;
|
|
67
73
|
exports.areElsCollBottom = collision.areElsCollBottom;
|
|
68
74
|
exports.areElsCollLeft = collision.areElsCollLeft;
|
|
69
75
|
exports.areElsCollPerfBottom = collision.areElsCollPerfBottom;
|
|
@@ -92,6 +98,7 @@ exports.browserIs = browserDetector.browserIs;
|
|
|
92
98
|
exports.getBrowserCssPrefix = browserDetector.getBrowserCssPrefix;
|
|
93
99
|
exports.getBrowserPings = browserDetector.getBrowserPings;
|
|
94
100
|
exports.getDuckTyping = browserDetector.getDuckTyping;
|
|
101
|
+
exports.isBrowser = browserDetector.isBrowser;
|
|
95
102
|
exports.isBrowserAgent = browserDetector.isBrowserAgent;
|
|
96
103
|
exports.jsonFilter = jsonFilter.jsonFilter;
|
|
97
104
|
exports.jsonFilterByKeys = jsonFilter.jsonFilterByKeys;
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { diffArrayList, shuffleArray, arraySortPositions, multiplyArrayBlocks } from './array.mjs';
|
|
2
2
|
import { breakdownDuration, formatCustomTimer, formatDayTimer, formatTimer, getTimeDuration, getUserTimeFormat } from './clock.mjs';
|
|
3
3
|
import { readJsonBlob, saveJsonFile, fetchJson, installWindowHiddenScript, readFileBlob, readBase64Blob, fetchText } from './html.mjs';
|
|
4
|
-
import { extendObjType, reorderObjTypeOrder, cloneObjTypeOrder, objType, isObjType, objTypeName } from './objFilter.mjs';
|
|
5
|
-
import { countObj, isJsonObject, isValidObj } from './objChecker.mjs';
|
|
4
|
+
import { extendObjType, reorderObjTypeOrder, cloneObjTypeOrder, objType, isObjType, objTypeName, getObjTypeOrder, getObjTypeRegistry } from './objFilter.mjs';
|
|
5
|
+
import { countObj, isClassInstance, isAnyClassInstance, isClass, isJsonObject, isValidObj } from './objChecker.mjs';
|
|
6
6
|
import { documentIsFullScreen, isScreenFilled, requestFullScreen, exitFullScreen, isFullScreenMode, onFullScreenChange, offFullScreenChange } from './fullScreen.mjs';
|
|
7
7
|
import { calculateMarketcap, compareMarketcap, formatBytes, genFibonacciSeq, getAge, getPercentage, getSimplePerc, ruleOfThree } from './simpleMath.mjs';
|
|
8
|
-
import { addAiMarkerShortcut,
|
|
8
|
+
import { addAiMarkerShortcut, diffObjList, safeTextTrim, toTitleCase, toTitleCaseLowerFirst, asyncReplace } from './text.mjs';
|
|
9
|
+
import { hashText } from './crypto.mjs';
|
|
9
10
|
import { areElsCollTop, areElsCollBottom, areElsCollLeft, areElsCollRight, areElsCollPerfTop, areElsCollPerfBottom, areElsCollPerfLeft, areElsCollPerfRight, areElsColliding, areElsPerfColliding, getElsColliding, getElsPerfColliding, getElsCollOverlap, getElsCollOverlapPos, getRectCenter, getElsRelativeCenterOffset, getElsCollDirDepth, getElsCollDetails } from './collision.mjs';
|
|
10
11
|
import { extractMediaId3Tags, parseMediaMetadata, valMediaContentMetadata, valFetchMediaContent } from './mediaContent.mjs';
|
|
11
12
|
import { createSingletonTask, waitForTrue } from './promiseUtils.mjs';
|
|
12
|
-
import { browserIs, getBrowserCssPrefix, getBrowserPings, getDuckTyping, isBrowserAgent } from './browserDetector.mjs';
|
|
13
|
+
import { browserIs, getBrowserCssPrefix, getBrowserPings, getDuckTyping, isBrowser, isBrowserAgent } from './browserDetector.mjs';
|
|
13
14
|
import { jsonFilter, jsonFilterRecursive, jsonFilterByKeys } from './jsonFilter.mjs';
|
|
14
|
-
export { jsonFilter, jsonFilterRecursive, jsonFilterByKeys, getUserTimeFormat, getBrowserPings, isBrowserAgent, getBrowserCssPrefix, getDuckTyping, browserIs, isValidObj, createSingletonTask, waitForTrue, multiplyArrayBlocks, valMediaContentMetadata, valFetchMediaContent, parseMediaMetadata, extractMediaId3Tags,
|
|
15
|
+
export { isAnyClassInstance, isClass, isClassInstance, isBrowser, getObjTypeRegistry, getObjTypeOrder, jsonFilter, jsonFilterRecursive, jsonFilterByKeys, getUserTimeFormat, getBrowserPings, isBrowserAgent, getBrowserCssPrefix, getDuckTyping, browserIs, isValidObj, createSingletonTask, waitForTrue, multiplyArrayBlocks, valMediaContentMetadata, valFetchMediaContent, parseMediaMetadata, extractMediaId3Tags, hashText, diffObjList, diffArrayList, breakdownDuration, calculateMarketcap, compareMarketcap, getPercentage, areElsCollTop, areElsCollBottom, areElsCollLeft, areElsCollRight, areElsCollPerfTop, areElsCollPerfBottom, areElsCollPerfLeft, areElsCollPerfRight, areElsColliding, areElsPerfColliding, getElsColliding, getElsPerfColliding, getElsCollOverlap, getElsCollOverlapPos, getRectCenter, getElsRelativeCenterOffset, getElsCollDirDepth, getElsCollDetails, safeTextTrim, installWindowHiddenScript, genFibonacciSeq, fetchJson, fetchText, readJsonBlob, readFileBlob, readBase64Blob, saveJsonFile, documentIsFullScreen, isScreenFilled, requestFullScreen, exitFullScreen, isFullScreenMode, onFullScreenChange, offFullScreenChange, isJsonObject, arraySortPositions, formatBytes, addAiMarkerShortcut, extendObjType, reorderObjTypeOrder, cloneObjTypeOrder, countObj, isObjType, objTypeName, objType, ruleOfThree, getSimplePerc, asyncReplace, getAge, formatCustomTimer, formatDayTimer, formatTimer, getTimeDuration, shuffleArray, toTitleCase, toTitleCaseLowerFirst, };
|
|
15
16
|
//# sourceMappingURL=index.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../src/v1/basics/index.mjs"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACnG,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,eAAe,EACf,iBAAiB,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,yBAAyB,EACzB,YAAY,EACZ,cAAc,EACd,SAAS,EACV,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,OAAO,EACP,SAAS,EACT,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../src/v1/basics/index.mjs"],"names":[],"mappings":"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"}
|
package/dist/v1/basics/index.mjs
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { diffArrayList, shuffleArray, arraySortPositions, multiplyArrayBlocks } from './array.mjs';
|
|
2
2
|
import { breakdownDuration, formatCustomTimer, formatDayTimer, formatTimer, getTimeDuration, getUserTimeFormat, } from './clock.mjs';
|
|
3
3
|
import { readJsonBlob, saveJsonFile, fetchJson, installWindowHiddenScript, readFileBlob, readBase64Blob, fetchText, } from './html.mjs';
|
|
4
|
-
import { extendObjType, reorderObjTypeOrder, cloneObjTypeOrder, objType, isObjType, objTypeName, } from './objFilter.mjs';
|
|
5
|
-
import { countObj, isJsonObject, isValidObj } from './objChecker.mjs';
|
|
4
|
+
import { extendObjType, reorderObjTypeOrder, cloneObjTypeOrder, objType, isObjType, objTypeName, getObjTypeOrder, getObjTypeRegistry, } from './objFilter.mjs';
|
|
5
|
+
import { countObj, isClassInstance, isAnyClassInstance, isClass, isJsonObject, isValidObj, } from './objChecker.mjs';
|
|
6
6
|
import { documentIsFullScreen, isScreenFilled, requestFullScreen, exitFullScreen, isFullScreenMode, onFullScreenChange, offFullScreenChange, } from './fullScreen.mjs';
|
|
7
7
|
import { calculateMarketcap, compareMarketcap, formatBytes, genFibonacciSeq, getAge, getPercentage, getSimplePerc, ruleOfThree, } from './simpleMath.mjs';
|
|
8
|
-
import { addAiMarkerShortcut,
|
|
8
|
+
import { addAiMarkerShortcut, diffObjList, safeTextTrim, toTitleCase, toTitleCaseLowerFirst, asyncReplace, } from './text.mjs';
|
|
9
|
+
import { hashText } from './crypto.mjs';
|
|
9
10
|
import { areElsCollTop, areElsCollBottom, areElsCollLeft, areElsCollRight, areElsCollPerfTop, areElsCollPerfBottom, areElsCollPerfLeft, areElsCollPerfRight, areElsColliding, areElsPerfColliding, getElsColliding, getElsPerfColliding, getElsCollOverlap, getElsCollOverlapPos, getRectCenter, getElsRelativeCenterOffset, getElsCollDirDepth, getElsCollDetails, } from './collision.mjs';
|
|
10
11
|
import { extractMediaId3Tags, parseMediaMetadata, valMediaContentMetadata, valFetchMediaContent, } from './mediaContent.mjs';
|
|
11
12
|
import { createSingletonTask, waitForTrue } from './promiseUtils.mjs';
|
|
12
|
-
import { browserIs, getBrowserCssPrefix, getBrowserPings, getDuckTyping, isBrowserAgent, } from './browserDetector.mjs';
|
|
13
|
+
import { browserIs, getBrowserCssPrefix, getBrowserPings, getDuckTyping, isBrowser, isBrowserAgent, } from './browserDetector.mjs';
|
|
13
14
|
import { jsonFilter, jsonFilterRecursive, jsonFilterByKeys } from './jsonFilter.mjs';
|
|
14
|
-
export { jsonFilter, jsonFilterRecursive, jsonFilterByKeys, getUserTimeFormat, getBrowserPings, isBrowserAgent, getBrowserCssPrefix, getDuckTyping, browserIs, isValidObj, createSingletonTask, waitForTrue, multiplyArrayBlocks, valMediaContentMetadata, valFetchMediaContent, parseMediaMetadata, extractMediaId3Tags,
|
|
15
|
+
export { isAnyClassInstance, isClass, isClassInstance, isBrowser, getObjTypeRegistry, getObjTypeOrder, jsonFilter, jsonFilterRecursive, jsonFilterByKeys, getUserTimeFormat, getBrowserPings, isBrowserAgent, getBrowserCssPrefix, getDuckTyping, browserIs, isValidObj, createSingletonTask, waitForTrue, multiplyArrayBlocks, valMediaContentMetadata, valFetchMediaContent, parseMediaMetadata, extractMediaId3Tags, hashText, diffObjList, diffArrayList, breakdownDuration, calculateMarketcap, compareMarketcap, getPercentage, areElsCollTop, areElsCollBottom, areElsCollLeft, areElsCollRight, areElsCollPerfTop, areElsCollPerfBottom, areElsCollPerfLeft, areElsCollPerfRight, areElsColliding, areElsPerfColliding, getElsColliding, getElsPerfColliding, getElsCollOverlap, getElsCollOverlapPos, getRectCenter, getElsRelativeCenterOffset, getElsCollDirDepth, getElsCollDetails, safeTextTrim, installWindowHiddenScript, genFibonacciSeq, fetchJson, fetchText, readJsonBlob, readFileBlob, readBase64Blob, saveJsonFile, documentIsFullScreen, isScreenFilled, requestFullScreen, exitFullScreen, isFullScreenMode, onFullScreenChange, offFullScreenChange, isJsonObject, arraySortPositions, formatBytes, addAiMarkerShortcut, extendObjType, reorderObjTypeOrder, cloneObjTypeOrder, countObj, isObjType, objTypeName, objType, ruleOfThree, getSimplePerc, asyncReplace, getAge, formatCustomTimer, formatDayTimer, formatTimer, getTimeDuration, shuffleArray, toTitleCase, toTitleCaseLowerFirst, };
|
|
@@ -59,6 +59,94 @@ function isValidObj(value) {
|
|
|
59
59
|
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
+
/**
|
|
63
|
+
* Determines whether the provided value is a class constructor.
|
|
64
|
+
*
|
|
65
|
+
* @reference https://stackoverflow.com/a/30760236
|
|
66
|
+
*
|
|
67
|
+
* @param {unknown} target - The value to be inspected.
|
|
68
|
+
* @returns {boolean} True if the value is a class constructor, false otherwise.
|
|
69
|
+
* @throws {TypeError} If the provided target is not a function.
|
|
70
|
+
*/
|
|
71
|
+
const isClass = (target) => {
|
|
72
|
+
// 1. Strict runtime validation to prevent silent failures
|
|
73
|
+
if (typeof target !== 'function')
|
|
74
|
+
throw new TypeError(`The 'target' argument must be a function. Received: ${typeof target}`);
|
|
75
|
+
|
|
76
|
+
try {
|
|
77
|
+
// 2. Attempt to invoke the target as a regular function.
|
|
78
|
+
// If 'target' is a class, it will throw a TypeError:
|
|
79
|
+
// "Class constructor cannot be invoked without 'new'".
|
|
80
|
+
target();
|
|
81
|
+
return false;
|
|
82
|
+
} catch (error) {
|
|
83
|
+
// 3. Verify if the error is a TypeError and matches the class invocation error pattern.
|
|
84
|
+
return error instanceof TypeError && error.message.includes('Class constructor');
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Determines whether a given value is an instance of a custom ES6 class.
|
|
90
|
+
*
|
|
91
|
+
* @param {unknown} value - The value to inspect.
|
|
92
|
+
* @returns {boolean} True if the value is an instance of an ES6 class, false otherwise.
|
|
93
|
+
*/
|
|
94
|
+
function isClassInstance(value) {
|
|
95
|
+
// 1. Primitives and null are never class instances.
|
|
96
|
+
if (value === null || typeof value !== 'object') {
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
const proto = Object.getPrototypeOf(value);
|
|
101
|
+
|
|
102
|
+
// 2. Objects without prototypes (e.g., Object.create(null))
|
|
103
|
+
// or plain objects ({}) are not custom class instances.
|
|
104
|
+
if (proto === null || proto === Object.prototype) {
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// 3. Ensure the constructor property exists and is a callable function.
|
|
109
|
+
if (typeof value.constructor !== 'function') {
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
const constructorString = value.constructor.toString();
|
|
114
|
+
|
|
115
|
+
// 4. Check if the constructor string starts with the 'class' keyword.
|
|
116
|
+
// The regex /^\s*class\b/ is used to safely handle potential whitespace
|
|
117
|
+
// alterations caused by bundlers or minifiers.
|
|
118
|
+
return /^\s*class\b/.test(constructorString);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Determines whether a given value is an instance of any class (custom or native).
|
|
123
|
+
* Returns true for instances like Map, Set, URL, Date, Array, and custom ES6 classes.
|
|
124
|
+
* Returns false for primitives, plain objects ({}), and null-prototype objects.
|
|
125
|
+
*
|
|
126
|
+
* @param {unknown} value - The value to inspect.
|
|
127
|
+
* @returns {boolean} True if the value is a class instance, false otherwise.
|
|
128
|
+
*/
|
|
129
|
+
function isAnyClassInstance(value) {
|
|
130
|
+
// 1. Primitives and null are never class instances.
|
|
131
|
+
if (value === null || typeof value !== 'object') {
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
const proto = Object.getPrototypeOf(value);
|
|
136
|
+
|
|
137
|
+
// 2. Objects without prototypes (e.g., Object.create(null))
|
|
138
|
+
// or plain objects ({}) are not considered class instances.
|
|
139
|
+
if (proto === null || proto === Object.prototype) {
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// 3. Ensure the object retains a valid callable constructor.
|
|
144
|
+
return typeof value.constructor === 'function';
|
|
145
|
+
}
|
|
146
|
+
|
|
62
147
|
exports.countObj = countObj;
|
|
148
|
+
exports.isAnyClassInstance = isAnyClassInstance;
|
|
149
|
+
exports.isClass = isClass;
|
|
150
|
+
exports.isClassInstance = isClassInstance;
|
|
63
151
|
exports.isJsonObject = isJsonObject;
|
|
64
152
|
exports.isValidObj = isValidObj;
|
|
@@ -39,4 +39,30 @@ export declare function isJsonObject(value: unknown): value is Record<string | n
|
|
|
39
39
|
* @returns {value is Object<string | number | symbol, unknown>} Returns true if the value is a object.
|
|
40
40
|
*/
|
|
41
41
|
export declare function isValidObj(value: unknown): value is any;
|
|
42
|
+
/**
|
|
43
|
+
* Determines whether the provided value is a class constructor.
|
|
44
|
+
*
|
|
45
|
+
* @reference https://stackoverflow.com/a/30760236
|
|
46
|
+
*
|
|
47
|
+
* @param {unknown} target - The value to be inspected.
|
|
48
|
+
* @returns {boolean} True if the value is a class constructor, false otherwise.
|
|
49
|
+
* @throws {TypeError} If the provided target is not a function.
|
|
50
|
+
*/
|
|
51
|
+
export declare const isClass: (target: unknown) => boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Determines whether a given value is an instance of a custom ES6 class.
|
|
54
|
+
*
|
|
55
|
+
* @param {unknown} value - The value to inspect.
|
|
56
|
+
* @returns {boolean} True if the value is an instance of an ES6 class, false otherwise.
|
|
57
|
+
*/
|
|
58
|
+
export declare function isClassInstance(value: unknown): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Determines whether a given value is an instance of any class (custom or native).
|
|
61
|
+
* Returns true for instances like Map, Set, URL, Date, Array, and custom ES6 classes.
|
|
62
|
+
* Returns false for primitives, plain objects ({}), and null-prototype objects.
|
|
63
|
+
*
|
|
64
|
+
* @param {unknown} value - The value to inspect.
|
|
65
|
+
* @returns {boolean} True if the value is a class instance, false otherwise.
|
|
66
|
+
*/
|
|
67
|
+
export declare function isAnyClassInstance(value: unknown): boolean;
|
|
42
68
|
//# sourceMappingURL=objChecker.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"objChecker.d.mts","sourceRoot":"","sources":["../../../src/v1/basics/objChecker.mjs"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EATjB,KAAK,CAAC,GAAC,CAAC,GAAC,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,CAS5B,GARf,MAAM,CAgBlB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAHvB,OAGuB,GAFrB,KAAK,IAAI,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,CAO9D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAHrB,OAGqB,GAFnB,KAAK,OAA6C,CAI9D"}
|
|
1
|
+
{"version":3,"file":"objChecker.d.mts","sourceRoot":"","sources":["../../../src/v1/basics/objChecker.mjs"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EATjB,KAAK,CAAC,GAAC,CAAC,GAAC,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,CAS5B,GARf,MAAM,CAgBlB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAHvB,OAGuB,GAFrB,KAAK,IAAI,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,CAO9D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAHrB,OAGqB,GAFnB,KAAK,OAA6C,CAI9D;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,OAAO,WAJT,OAAO,KACL,OAkBZ,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAH1B,OAG0B,GAFxB,OAAO,CA2BnB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAH7B,OAG6B,GAF3B,OAAO,CAkBnB"}
|
|
@@ -57,3 +57,77 @@ export function isJsonObject(value) {
|
|
|
57
57
|
export function isValidObj(value) {
|
|
58
58
|
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
59
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* Determines whether the provided value is a class constructor.
|
|
62
|
+
*
|
|
63
|
+
* @reference https://stackoverflow.com/a/30760236
|
|
64
|
+
*
|
|
65
|
+
* @param {unknown} target - The value to be inspected.
|
|
66
|
+
* @returns {boolean} True if the value is a class constructor, false otherwise.
|
|
67
|
+
* @throws {TypeError} If the provided target is not a function.
|
|
68
|
+
*/
|
|
69
|
+
export const isClass = (target) => {
|
|
70
|
+
// 1. Strict runtime validation to prevent silent failures
|
|
71
|
+
if (typeof target !== 'function')
|
|
72
|
+
throw new TypeError(`The 'target' argument must be a function. Received: ${typeof target}`);
|
|
73
|
+
try {
|
|
74
|
+
// 2. Attempt to invoke the target as a regular function.
|
|
75
|
+
// If 'target' is a class, it will throw a TypeError:
|
|
76
|
+
// "Class constructor cannot be invoked without 'new'".
|
|
77
|
+
target();
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
// 3. Verify if the error is a TypeError and matches the class invocation error pattern.
|
|
82
|
+
return error instanceof TypeError && error.message.includes('Class constructor');
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* Determines whether a given value is an instance of a custom ES6 class.
|
|
87
|
+
*
|
|
88
|
+
* @param {unknown} value - The value to inspect.
|
|
89
|
+
* @returns {boolean} True if the value is an instance of an ES6 class, false otherwise.
|
|
90
|
+
*/
|
|
91
|
+
export function isClassInstance(value) {
|
|
92
|
+
// 1. Primitives and null are never class instances.
|
|
93
|
+
if (value === null || typeof value !== 'object') {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
const proto = Object.getPrototypeOf(value);
|
|
97
|
+
// 2. Objects without prototypes (e.g., Object.create(null))
|
|
98
|
+
// or plain objects ({}) are not custom class instances.
|
|
99
|
+
if (proto === null || proto === Object.prototype) {
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
// 3. Ensure the constructor property exists and is a callable function.
|
|
103
|
+
if (typeof value.constructor !== 'function') {
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
const constructorString = value.constructor.toString();
|
|
107
|
+
// 4. Check if the constructor string starts with the 'class' keyword.
|
|
108
|
+
// The regex /^\s*class\b/ is used to safely handle potential whitespace
|
|
109
|
+
// alterations caused by bundlers or minifiers.
|
|
110
|
+
return /^\s*class\b/.test(constructorString);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Determines whether a given value is an instance of any class (custom or native).
|
|
114
|
+
* Returns true for instances like Map, Set, URL, Date, Array, and custom ES6 classes.
|
|
115
|
+
* Returns false for primitives, plain objects ({}), and null-prototype objects.
|
|
116
|
+
*
|
|
117
|
+
* @param {unknown} value - The value to inspect.
|
|
118
|
+
* @returns {boolean} True if the value is a class instance, false otherwise.
|
|
119
|
+
*/
|
|
120
|
+
export function isAnyClassInstance(value) {
|
|
121
|
+
// 1. Primitives and null are never class instances.
|
|
122
|
+
if (value === null || typeof value !== 'object') {
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
const proto = Object.getPrototypeOf(value);
|
|
126
|
+
// 2. Objects without prototypes (e.g., Object.create(null))
|
|
127
|
+
// or plain objects ({}) are not considered class instances.
|
|
128
|
+
if (proto === null || proto === Object.prototype) {
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
// 3. Ensure the object retains a valid callable constructor.
|
|
132
|
+
return typeof value.constructor === 'function';
|
|
133
|
+
}
|