xypriss 9.10.19 → 9.10.21
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/dist/cjs/src/server/core/XyServerCreator.js +0 -9
- package/dist/cjs/src/server/core/XyServerCreator.js.map +1 -1
- package/dist/cjs/src/xhsc.js +23 -1
- package/dist/cjs/src/xhsc.js.map +1 -1
- package/dist/esm/src/server/core/XyServerCreator.js +0 -9
- package/dist/esm/src/server/core/XyServerCreator.js.map +1 -1
- package/dist/esm/src/xhsc.js +23 -1
- package/dist/esm/src/xhsc.js.map +1 -1
- package/dist/index.d.ts +0 -54
- package/package.json +1 -1
- package/dist/cjs/src/server/components/fastapi/MonitoringManager.js +0 -191
- package/dist/cjs/src/server/components/fastapi/MonitoringManager.js.map +0 -1
- package/dist/diag_config.d.ts +0 -2
- package/dist/diag_config.d.ts.map +0 -1
- package/dist/diag_config.js +0 -13
- package/dist/diag_config.js.map +0 -1
- package/dist/esm/src/server/components/fastapi/MonitoringManager.js +0 -189
- package/dist/esm/src/server/components/fastapi/MonitoringManager.js.map +0 -1
- package/dist/fix_docs.d.ts +0 -2
- package/dist/fix_docs.d.ts.map +0 -1
- package/dist/fix_docs.js +0 -152
- package/dist/fix_docs.js.map +0 -1
- package/dist/lib.d.ts +0 -3
- package/dist/lib.d.ts.map +0 -1
- package/dist/lib.js +0 -10
- package/dist/lib.js.map +0 -1
- package/dist/main.d.ts +0 -2
- package/dist/main.d.ts.map +0 -1
- package/dist/main.js +0 -3
- package/dist/main.js.map +0 -1
- package/dist/plugin.d.ts +0 -2
- package/dist/plugin.d.ts.map +0 -1
- package/dist/plugin.js +0 -5
- package/dist/plugin.js.map +0 -1
- package/dist/refactor_docs.d.ts +0 -2
- package/dist/refactor_docs.d.ts.map +0 -1
- package/dist/refactor_docs.js +0 -48
- package/dist/refactor_docs.js.map +0 -1
- package/dist/src/ConfigurationManager.d.ts +0 -150
- package/dist/src/ConfigurationManager.d.ts.map +0 -1
- package/dist/src/ConfigurationManager.js +0 -366
- package/dist/src/ConfigurationManager.js.map +0 -1
- package/dist/src/FiUp.d.ts +0 -31
- package/dist/src/FiUp.d.ts.map +0 -1
- package/dist/src/FiUp.js +0 -79
- package/dist/src/FiUp.js.map +0 -1
- package/dist/src/cache/CacheFactory.d.ts +0 -163
- package/dist/src/cache/CacheFactory.d.ts.map +0 -1
- package/dist/src/cache/CacheFactory.js +0 -707
- package/dist/src/cache/CacheFactory.js.map +0 -1
- package/dist/src/cache/index.d.ts +0 -14
- package/dist/src/cache/index.d.ts.map +0 -1
- package/dist/src/cache/index.js +0 -13
- package/dist/src/cache/index.js.map +0 -1
- package/dist/src/cache/type.d.ts +0 -127
- package/dist/src/cache/type.d.ts.map +0 -1
- package/dist/src/cache/type.js +0 -2
- package/dist/src/cache/type.js.map +0 -1
- package/dist/src/const.d.ts +0 -138
- package/dist/src/const.d.ts.map +0 -1
- package/dist/src/const.js +0 -572
- package/dist/src/const.js.map +0 -1
- package/dist/src/index.d.ts +0 -66
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -84
- package/dist/src/index.js.map +0 -1
- package/dist/src/middleware/XJsonResponseHandler.d.ts +0 -69
- package/dist/src/middleware/XJsonResponseHandler.d.ts.map +0 -1
- package/dist/src/middleware/XJsonResponseHandler.js +0 -175
- package/dist/src/middleware/XJsonResponseHandler.js.map +0 -1
- package/dist/src/middleware/XemsSessionMiddleware.d.ts +0 -8
- package/dist/src/middleware/XemsSessionMiddleware.d.ts.map +0 -1
- package/dist/src/middleware/XemsSessionMiddleware.js +0 -110
- package/dist/src/middleware/XemsSessionMiddleware.js.map +0 -1
- package/dist/src/middleware/XyPrissMiddlewareAPI.d.ts +0 -75
- package/dist/src/middleware/XyPrissMiddlewareAPI.d.ts.map +0 -1
- package/dist/src/middleware/XyPrissMiddlewareAPI.js +0 -284
- package/dist/src/middleware/XyPrissMiddlewareAPI.js.map +0 -1
- package/dist/src/middleware/built-in/BuiltInMiddleware.d.ts +0 -99
- package/dist/src/middleware/built-in/BuiltInMiddleware.d.ts.map +0 -1
- package/dist/src/middleware/built-in/BuiltInMiddleware.js +0 -404
- package/dist/src/middleware/built-in/BuiltInMiddleware.js.map +0 -1
- package/dist/src/middleware/built-in/ResponseManipulationMiddleware.d.ts +0 -11
- package/dist/src/middleware/built-in/ResponseManipulationMiddleware.d.ts.map +0 -1
- package/dist/src/middleware/built-in/ResponseManipulationMiddleware.js +0 -164
- package/dist/src/middleware/built-in/ResponseManipulationMiddleware.js.map +0 -1
- package/dist/src/middleware/built-in/security/BrowserOnlyProtector.d.ts +0 -106
- package/dist/src/middleware/built-in/security/BrowserOnlyProtector.d.ts.map +0 -1
- package/dist/src/middleware/built-in/security/BrowserOnlyProtector.js +0 -547
- package/dist/src/middleware/built-in/security/BrowserOnlyProtector.js.map +0 -1
- package/dist/src/middleware/built-in/security/CommandInjectionDetector.d.ts +0 -40
- package/dist/src/middleware/built-in/security/CommandInjectionDetector.d.ts.map +0 -1
- package/dist/src/middleware/built-in/security/CommandInjectionDetector.js +0 -212
- package/dist/src/middleware/built-in/security/CommandInjectionDetector.js.map +0 -1
- package/dist/src/middleware/built-in/security/HoneypotTarpit.d.ts +0 -204
- package/dist/src/middleware/built-in/security/HoneypotTarpit.d.ts.map +0 -1
- package/dist/src/middleware/built-in/security/HoneypotTarpit.js +0 -505
- package/dist/src/middleware/built-in/security/HoneypotTarpit.js.map +0 -1
- package/dist/src/middleware/built-in/security/LDAPInjectionDetector.d.ts +0 -17
- package/dist/src/middleware/built-in/security/LDAPInjectionDetector.d.ts.map +0 -1
- package/dist/src/middleware/built-in/security/LDAPInjectionDetector.js +0 -93
- package/dist/src/middleware/built-in/security/LDAPInjectionDetector.js.map +0 -1
- package/dist/src/middleware/built-in/security/MobileOnlyProtector.d.ts +0 -122
- package/dist/src/middleware/built-in/security/MobileOnlyProtector.d.ts.map +0 -1
- package/dist/src/middleware/built-in/security/MobileOnlyProtector.js +0 -499
- package/dist/src/middleware/built-in/security/MobileOnlyProtector.js.map +0 -1
- package/dist/src/middleware/built-in/security/PathTraversalDetector.d.ts +0 -44
- package/dist/src/middleware/built-in/security/PathTraversalDetector.d.ts.map +0 -1
- package/dist/src/middleware/built-in/security/PathTraversalDetector.js +0 -209
- package/dist/src/middleware/built-in/security/PathTraversalDetector.js.map +0 -1
- package/dist/src/middleware/built-in/security/RequestSignatureProtector.d.ts +0 -128
- package/dist/src/middleware/built-in/security/RequestSignatureProtector.d.ts.map +0 -1
- package/dist/src/middleware/built-in/security/RequestSignatureProtector.js +0 -463
- package/dist/src/middleware/built-in/security/RequestSignatureProtector.js.map +0 -1
- package/dist/src/middleware/built-in/security/SQLInjectionDetector.d.ts +0 -66
- package/dist/src/middleware/built-in/security/SQLInjectionDetector.d.ts.map +0 -1
- package/dist/src/middleware/built-in/security/SQLInjectionDetector.js +0 -414
- package/dist/src/middleware/built-in/security/SQLInjectionDetector.js.map +0 -1
- package/dist/src/middleware/built-in/security/TerminalOnlyProtector.d.ts +0 -131
- package/dist/src/middleware/built-in/security/TerminalOnlyProtector.d.ts.map +0 -1
- package/dist/src/middleware/built-in/security/TerminalOnlyProtector.js +0 -473
- package/dist/src/middleware/built-in/security/TerminalOnlyProtector.js.map +0 -1
- package/dist/src/middleware/built-in/security/UriNormalizer.d.ts +0 -277
- package/dist/src/middleware/built-in/security/UriNormalizer.d.ts.map +0 -1
- package/dist/src/middleware/built-in/security/UriNormalizer.js +0 -388
- package/dist/src/middleware/built-in/security/UriNormalizer.js.map +0 -1
- package/dist/src/middleware/built-in/security/XXEProtector.d.ts +0 -36
- package/dist/src/middleware/built-in/security/XXEProtector.d.ts.map +0 -1
- package/dist/src/middleware/built-in/security/XXEProtector.js +0 -172
- package/dist/src/middleware/built-in/security/XXEProtector.js.map +0 -1
- package/dist/src/middleware/built-in/security/XyPrissCors.d.ts +0 -12
- package/dist/src/middleware/built-in/security/XyPrissCors.d.ts.map +0 -1
- package/dist/src/middleware/built-in/security/XyPrissCors.js +0 -94
- package/dist/src/middleware/built-in/security/XyPrissCors.js.map +0 -1
- package/dist/src/middleware/built-in/security/XyPrissHPP.d.ts +0 -7
- package/dist/src/middleware/built-in/security/XyPrissHPP.d.ts.map +0 -1
- package/dist/src/middleware/built-in/security/XyPrissHPP.js +0 -48
- package/dist/src/middleware/built-in/security/XyPrissHPP.js.map +0 -1
- package/dist/src/middleware/built-in/security/index.d.ts +0 -20
- package/dist/src/middleware/built-in/security/index.d.ts.map +0 -1
- package/dist/src/middleware/built-in/security/index.js +0 -20
- package/dist/src/middleware/built-in/security/index.js.map +0 -1
- package/dist/src/middleware/built-in/security/types.d.ts +0 -147
- package/dist/src/middleware/built-in/security/types.d.ts.map +0 -1
- package/dist/src/middleware/built-in/security/types.js +0 -5
- package/dist/src/middleware/built-in/security/types.js.map +0 -1
- package/dist/src/middleware/safe-json-middleware.d.ts +0 -57
- package/dist/src/middleware/safe-json-middleware.d.ts.map +0 -1
- package/dist/src/middleware/safe-json-middleware.js +0 -150
- package/dist/src/middleware/safe-json-middleware.js.map +0 -1
- package/dist/src/middleware/security-middleware.d.ts +0 -147
- package/dist/src/middleware/security-middleware.d.ts.map +0 -1
- package/dist/src/middleware/security-middleware.js +0 -1026
- package/dist/src/middleware/security-middleware.js.map +0 -1
- package/dist/src/plugins/ServerPluginManager.d.ts +0 -43
- package/dist/src/plugins/ServerPluginManager.d.ts.map +0 -1
- package/dist/src/plugins/ServerPluginManager.js +0 -148
- package/dist/src/plugins/ServerPluginManager.js.map +0 -1
- package/dist/src/plugins/api/PluginAPI.d.ts +0 -108
- package/dist/src/plugins/api/PluginAPI.d.ts.map +0 -1
- package/dist/src/plugins/api/PluginAPI.js +0 -253
- package/dist/src/plugins/api/PluginAPI.js.map +0 -1
- package/dist/src/plugins/builtin/RouteOptimizationPlugin.d.ts +0 -111
- package/dist/src/plugins/builtin/RouteOptimizationPlugin.d.ts.map +0 -1
- package/dist/src/plugins/builtin/RouteOptimizationPlugin.js +0 -416
- package/dist/src/plugins/builtin/RouteOptimizationPlugin.js.map +0 -1
- package/dist/src/plugins/builtin/server-maintenance/ServerMaintenancePlugin.d.ts +0 -136
- package/dist/src/plugins/builtin/server-maintenance/ServerMaintenancePlugin.d.ts.map +0 -1
- package/dist/src/plugins/builtin/server-maintenance/ServerMaintenancePlugin.js +0 -566
- package/dist/src/plugins/builtin/server-maintenance/ServerMaintenancePlugin.js.map +0 -1
- package/dist/src/plugins/builtin/xems/XemsBuiltinPlugin.d.ts +0 -33
- package/dist/src/plugins/builtin/xems/XemsBuiltinPlugin.d.ts.map +0 -1
- package/dist/src/plugins/builtin/xems/XemsBuiltinPlugin.js +0 -246
- package/dist/src/plugins/builtin/xems/XemsBuiltinPlugin.js.map +0 -1
- package/dist/src/plugins/builtin/xems/XemsPlugin.d.ts +0 -169
- package/dist/src/plugins/builtin/xems/XemsPlugin.d.ts.map +0 -1
- package/dist/src/plugins/builtin/xems/XemsPlugin.js +0 -402
- package/dist/src/plugins/builtin/xems/XemsPlugin.js.map +0 -1
- package/dist/src/plugins/builtin/xems/index.d.ts +0 -2
- package/dist/src/plugins/builtin/xems/index.d.ts.map +0 -1
- package/dist/src/plugins/builtin/xems/index.js +0 -2
- package/dist/src/plugins/builtin/xems/index.js.map +0 -1
- package/dist/src/plugins/const/OFFICIAL_PLUGINS.d.ts +0 -2
- package/dist/src/plugins/const/OFFICIAL_PLUGINS.d.ts.map +0 -1
- package/dist/src/plugins/const/OFFICIAL_PLUGINS.js +0 -6
- package/dist/src/plugins/const/OFFICIAL_PLUGINS.js.map +0 -1
- package/dist/src/plugins/const/PluginHookIds.d.ts +0 -44
- package/dist/src/plugins/const/PluginHookIds.d.ts.map +0 -1
- package/dist/src/plugins/const/PluginHookIds.js +0 -185
- package/dist/src/plugins/const/PluginHookIds.js.map +0 -1
- package/dist/src/plugins/const/PluginHookMetadataJson.d.ts +0 -2
- package/dist/src/plugins/const/PluginHookMetadataJson.d.ts.map +0 -1
- package/dist/src/plugins/const/PluginHookMetadataJson.js +0 -6
- package/dist/src/plugins/const/PluginHookMetadataJson.js.map +0 -1
- package/dist/src/plugins/const/XyprissTempDir.d.ts +0 -30
- package/dist/src/plugins/const/XyprissTempDir.d.ts.map +0 -1
- package/dist/src/plugins/const/XyprissTempDir.js +0 -73
- package/dist/src/plugins/const/XyprissTempDir.js.map +0 -1
- package/dist/src/plugins/core/PermissionManager.d.ts +0 -46
- package/dist/src/plugins/core/PermissionManager.d.ts.map +0 -1
- package/dist/src/plugins/core/PermissionManager.js +0 -232
- package/dist/src/plugins/core/PermissionManager.js.map +0 -1
- package/dist/src/plugins/core/XPluginManager.d.ts +0 -110
- package/dist/src/plugins/core/XPluginManager.d.ts.map +0 -1
- package/dist/src/plugins/core/XPluginManager.js +0 -212
- package/dist/src/plugins/core/XPluginManager.js.map +0 -1
- package/dist/src/plugins/core/manager/PluginHookRunner.d.ts +0 -50
- package/dist/src/plugins/core/manager/PluginHookRunner.d.ts.map +0 -1
- package/dist/src/plugins/core/manager/PluginHookRunner.js +0 -104
- package/dist/src/plugins/core/manager/PluginHookRunner.js.map +0 -1
- package/dist/src/plugins/core/manager/PluginInterceptor.d.ts +0 -48
- package/dist/src/plugins/core/manager/PluginInterceptor.d.ts.map +0 -1
- package/dist/src/plugins/core/manager/PluginInterceptor.js +0 -196
- package/dist/src/plugins/core/manager/PluginInterceptor.js.map +0 -1
- package/dist/src/plugins/core/manager/PluginLoader.d.ts +0 -59
- package/dist/src/plugins/core/manager/PluginLoader.d.ts.map +0 -1
- package/dist/src/plugins/core/manager/PluginLoader.js +0 -207
- package/dist/src/plugins/core/manager/PluginLoader.js.map +0 -1
- package/dist/src/plugins/core/manager/PluginManagement.d.ts +0 -36
- package/dist/src/plugins/core/manager/PluginManagement.d.ts.map +0 -1
- package/dist/src/plugins/core/manager/PluginManagement.js +0 -132
- package/dist/src/plugins/core/manager/PluginManagement.js.map +0 -1
- package/dist/src/plugins/core/manager/PluginRegistry.d.ts +0 -47
- package/dist/src/plugins/core/manager/PluginRegistry.d.ts.map +0 -1
- package/dist/src/plugins/core/manager/PluginRegistry.js +0 -96
- package/dist/src/plugins/core/manager/PluginRegistry.js.map +0 -1
- package/dist/src/plugins/core/manager/PluginSecurity.d.ts +0 -63
- package/dist/src/plugins/core/manager/PluginSecurity.d.ts.map +0 -1
- package/dist/src/plugins/core/manager/PluginSecurity.js +0 -417
- package/dist/src/plugins/core/manager/PluginSecurity.js.map +0 -1
- package/dist/src/plugins/route-optimization-plugin.d.ts +0 -111
- package/dist/src/plugins/route-optimization-plugin.d.ts.map +0 -1
- package/dist/src/plugins/route-optimization-plugin.js +0 -416
- package/dist/src/plugins/route-optimization-plugin.js.map +0 -1
- package/dist/src/plugins/types/PluginPermissions.d.ts +0 -26
- package/dist/src/plugins/types/PluginPermissions.d.ts.map +0 -1
- package/dist/src/plugins/types/PluginPermissions.js +0 -10
- package/dist/src/plugins/types/PluginPermissions.js.map +0 -1
- package/dist/src/plugins/types/PluginTypes.d.ts +0 -205
- package/dist/src/plugins/types/PluginTypes.d.ts.map +0 -1
- package/dist/src/plugins/types/PluginTypes.js +0 -30
- package/dist/src/plugins/types/PluginTypes.js.map +0 -1
- package/dist/src/plugins/types/index.d.ts +0 -79
- package/dist/src/plugins/types/index.d.ts.map +0 -1
- package/dist/src/plugins/types/index.js +0 -2
- package/dist/src/plugins/types/index.js.map +0 -1
- package/dist/src/quick-start.d.ts +0 -9
- package/dist/src/quick-start.d.ts.map +0 -1
- package/dist/src/quick-start.js +0 -26
- package/dist/src/quick-start.js.map +0 -1
- package/dist/src/schemas/plugingSchema.d.ts +0 -18
- package/dist/src/schemas/plugingSchema.d.ts.map +0 -1
- package/dist/src/schemas/plugingSchema.js +0 -40
- package/dist/src/schemas/plugingSchema.js.map +0 -1
- package/dist/src/server/FastServer/ComponentManager.d.ts +0 -32
- package/dist/src/server/FastServer/ComponentManager.d.ts.map +0 -1
- package/dist/src/server/FastServer/ComponentManager.js +0 -89
- package/dist/src/server/FastServer/ComponentManager.js.map +0 -1
- package/dist/src/server/FastServer/LogTracingMethods.d.ts +0 -9
- package/dist/src/server/FastServer/LogTracingMethods.d.ts.map +0 -1
- package/dist/src/server/FastServer/LogTracingMethods.js +0 -31
- package/dist/src/server/FastServer/LogTracingMethods.js.map +0 -1
- package/dist/src/server/FastServer/MiddlewareManager.d.ts +0 -17
- package/dist/src/server/FastServer/MiddlewareManager.d.ts.map +0 -1
- package/dist/src/server/FastServer/MiddlewareManager.js +0 -57
- package/dist/src/server/FastServer/MiddlewareManager.js.map +0 -1
- package/dist/src/server/FastServer/ShutdownManager.d.ts +0 -16
- package/dist/src/server/FastServer/ShutdownManager.d.ts.map +0 -1
- package/dist/src/server/FastServer/ShutdownManager.js +0 -70
- package/dist/src/server/FastServer/ShutdownManager.js.map +0 -1
- package/dist/src/server/FastServer/UploadManager.d.ts +0 -13
- package/dist/src/server/FastServer/UploadManager.d.ts.map +0 -1
- package/dist/src/server/FastServer/UploadManager.js +0 -67
- package/dist/src/server/FastServer/UploadManager.js.map +0 -1
- package/dist/src/server/FastServer/index.d.ts +0 -51
- package/dist/src/server/FastServer/index.d.ts.map +0 -1
- package/dist/src/server/FastServer/index.js +0 -222
- package/dist/src/server/FastServer/index.js.map +0 -1
- package/dist/src/server/ServerFactory.d.ts +0 -94
- package/dist/src/server/ServerFactory.d.ts.map +0 -1
- package/dist/src/server/ServerFactory.js +0 -129
- package/dist/src/server/ServerFactory.js.map +0 -1
- package/dist/src/server/components/fastapi/CacheManager.d.ts +0 -64
- package/dist/src/server/components/fastapi/CacheManager.d.ts.map +0 -1
- package/dist/src/server/components/fastapi/CacheManager.js +0 -212
- package/dist/src/server/components/fastapi/CacheManager.js.map +0 -1
- package/dist/src/server/components/fastapi/MonitoringManager.d.ts +0 -43
- package/dist/src/server/components/fastapi/MonitoringManager.d.ts.map +0 -1
- package/dist/src/server/components/fastapi/MonitoringManager.js +0 -186
- package/dist/src/server/components/fastapi/MonitoringManager.js.map +0 -1
- package/dist/src/server/components/fastapi/RedirectManager.d.ts +0 -112
- package/dist/src/server/components/fastapi/RedirectManager.d.ts.map +0 -1
- package/dist/src/server/components/fastapi/RedirectManager.js +0 -432
- package/dist/src/server/components/fastapi/RedirectManager.js.map +0 -1
- package/dist/src/server/components/fastapi/RequestProcessor.d.ts +0 -34
- package/dist/src/server/components/fastapi/RequestProcessor.d.ts.map +0 -1
- package/dist/src/server/components/fastapi/RequestProcessor.js +0 -177
- package/dist/src/server/components/fastapi/RequestProcessor.js.map +0 -1
- package/dist/src/server/components/fastapi/RouteManager.d.ts +0 -43
- package/dist/src/server/components/fastapi/RouteManager.d.ts.map +0 -1
- package/dist/src/server/components/fastapi/RouteManager.js +0 -118
- package/dist/src/server/components/fastapi/RouteManager.js.map +0 -1
- package/dist/src/server/components/fastapi/WorkerPoolComponent.d.ts +0 -29
- package/dist/src/server/components/fastapi/WorkerPoolComponent.d.ts.map +0 -1
- package/dist/src/server/components/fastapi/WorkerPoolComponent.js +0 -77
- package/dist/src/server/components/fastapi/WorkerPoolComponent.js.map +0 -1
- package/dist/src/server/components/fastapi/console/ConsoleInterceptor.d.ts +0 -54
- package/dist/src/server/components/fastapi/console/ConsoleInterceptor.d.ts.map +0 -1
- package/dist/src/server/components/fastapi/console/ConsoleInterceptor.js +0 -464
- package/dist/src/server/components/fastapi/console/ConsoleInterceptor.js.map +0 -1
- package/dist/src/server/components/fastapi/console/encryption/ConsoleEncryption.d.ts +0 -19
- package/dist/src/server/components/fastapi/console/encryption/ConsoleEncryption.d.ts.map +0 -1
- package/dist/src/server/components/fastapi/console/encryption/ConsoleEncryption.js +0 -22
- package/dist/src/server/components/fastapi/console/encryption/ConsoleEncryption.js.map +0 -1
- package/dist/src/server/components/fastapi/console/types.d.ts +0 -115
- package/dist/src/server/components/fastapi/console/types.d.ts.map +0 -1
- package/dist/src/server/components/fastapi/console/types.js +0 -31
- package/dist/src/server/components/fastapi/console/types.js.map +0 -1
- package/dist/src/server/components/fastapi/templates/redirectTemp.d.ts +0 -6
- package/dist/src/server/components/fastapi/templates/redirectTemp.d.ts.map +0 -1
- package/dist/src/server/components/fastapi/templates/redirectTemp.js +0 -98
- package/dist/src/server/components/fastapi/templates/redirectTemp.js.map +0 -1
- package/dist/src/server/components/fastapi/typescript/TypeScriptChecker.d.ts +0 -96
- package/dist/src/server/components/fastapi/typescript/TypeScriptChecker.d.ts.map +0 -1
- package/dist/src/server/components/fastapi/typescript/TypeScriptChecker.js +0 -348
- package/dist/src/server/components/fastapi/typescript/TypeScriptChecker.js.map +0 -1
- package/dist/src/server/components/fastapi/upload/FileUploadManager.d.ts +0 -45
- package/dist/src/server/components/fastapi/upload/FileUploadManager.d.ts.map +0 -1
- package/dist/src/server/components/fastapi/upload/FileUploadManager.js +0 -234
- package/dist/src/server/components/fastapi/upload/FileUploadManager.js.map +0 -1
- package/dist/src/server/components/fastapi/upload/file-upload.d.ts +0 -80
- package/dist/src/server/components/fastapi/upload/file-upload.d.ts.map +0 -1
- package/dist/src/server/components/fastapi/upload/file-upload.js +0 -246
- package/dist/src/server/components/fastapi/upload/file-upload.js.map +0 -1
- package/dist/src/server/components/lifecycle/slcm.type.d.ts +0 -38
- package/dist/src/server/components/lifecycle/slcm.type.d.ts.map +0 -1
- package/dist/src/server/components/lifecycle/slcm.type.js +0 -5
- package/dist/src/server/components/lifecycle/slcm.type.js.map +0 -1
- package/dist/src/server/components/multi-server/MultiServerApp.d.ts +0 -137
- package/dist/src/server/components/multi-server/MultiServerApp.d.ts.map +0 -1
- package/dist/src/server/components/multi-server/MultiServerApp.js +0 -573
- package/dist/src/server/components/multi-server/MultiServerApp.js.map +0 -1
- package/dist/src/server/components/multi-server/MultiServerManager.d.ts +0 -58
- package/dist/src/server/components/multi-server/MultiServerManager.d.ts.map +0 -1
- package/dist/src/server/components/multi-server/MultiServerManager.js +0 -365
- package/dist/src/server/components/multi-server/MultiServerManager.js.map +0 -1
- package/dist/src/server/components/static/XStatic.d.ts +0 -42
- package/dist/src/server/components/static/XStatic.d.ts.map +0 -1
- package/dist/src/server/components/static/XStatic.js +0 -125
- package/dist/src/server/components/static/XStatic.js.map +0 -1
- package/dist/src/server/conf/networkConnectionConf.d.ts +0 -20
- package/dist/src/server/conf/networkConnectionConf.d.ts.map +0 -1
- package/dist/src/server/conf/networkConnectionConf.js +0 -21
- package/dist/src/server/conf/networkConnectionConf.js.map +0 -1
- package/dist/src/server/conf/proxyConfig.d.ts +0 -24
- package/dist/src/server/conf/proxyConfig.d.ts.map +0 -1
- package/dist/src/server/conf/proxyConfig.js +0 -19
- package/dist/src/server/conf/proxyConfig.js.map +0 -1
- package/dist/src/server/conf/rateLimitConfig.d.ts +0 -29
- package/dist/src/server/conf/rateLimitConfig.d.ts.map +0 -1
- package/dist/src/server/conf/rateLimitConfig.js +0 -46
- package/dist/src/server/conf/rateLimitConfig.js.map +0 -1
- package/dist/src/server/const/ExecutionPredictor_EP.const.d.ts +0 -48
- package/dist/src/server/const/ExecutionPredictor_EP.const.d.ts.map +0 -1
- package/dist/src/server/const/ExecutionPredictor_EP.const.js +0 -68
- package/dist/src/server/const/ExecutionPredictor_EP.const.js.map +0 -1
- package/dist/src/server/const/MIME_MAP.d.ts +0 -2
- package/dist/src/server/const/MIME_MAP.d.ts.map +0 -1
- package/dist/src/server/const/MIME_MAP.js +0 -419
- package/dist/src/server/const/MIME_MAP.js.map +0 -1
- package/dist/src/server/const/XHSC_SIGNATURE.d.ts +0 -2
- package/dist/src/server/const/XHSC_SIGNATURE.d.ts.map +0 -1
- package/dist/src/server/const/XHSC_SIGNATURE.js +0 -3
- package/dist/src/server/const/XHSC_SIGNATURE.js.map +0 -1
- package/dist/src/server/const/XRUNTIME-HEADER.d.ts +0 -2
- package/dist/src/server/const/XRUNTIME-HEADER.d.ts.map +0 -1
- package/dist/src/server/const/XRUNTIME-HEADER.js +0 -2
- package/dist/src/server/const/XRUNTIME-HEADER.js.map +0 -1
- package/dist/src/server/const/default.d.ts +0 -10
- package/dist/src/server/const/default.d.ts.map +0 -1
- package/dist/src/server/const/default.js +0 -335
- package/dist/src/server/const/default.js.map +0 -1
- package/dist/src/server/const/http.d.ts +0 -13
- package/dist/src/server/const/http.d.ts.map +0 -1
- package/dist/src/server/const/http.js +0 -25
- package/dist/src/server/const/http.js.map +0 -1
- package/dist/src/server/const/internalFlags.d.ts +0 -7
- package/dist/src/server/const/internalFlags.d.ts.map +0 -1
- package/dist/src/server/const/internalFlags.js +0 -7
- package/dist/src/server/const/internalFlags.js.map +0 -1
- package/dist/src/server/core/HttpServer.d.ts +0 -62
- package/dist/src/server/core/HttpServer.d.ts.map +0 -1
- package/dist/src/server/core/HttpServer.js +0 -251
- package/dist/src/server/core/HttpServer.js.map +0 -1
- package/dist/src/server/core/RequestApp.d.ts +0 -42
- package/dist/src/server/core/RequestApp.d.ts.map +0 -1
- package/dist/src/server/core/RequestApp.js +0 -91
- package/dist/src/server/core/RequestApp.js.map +0 -1
- package/dist/src/server/core/RequestEnhancer.d.ts +0 -174
- package/dist/src/server/core/RequestEnhancer.d.ts.map +0 -1
- package/dist/src/server/core/RequestEnhancer.js +0 -330
- package/dist/src/server/core/RequestEnhancer.js.map +0 -1
- package/dist/src/server/core/ResponseEnhancer.d.ts +0 -323
- package/dist/src/server/core/ResponseEnhancer.d.ts.map +0 -1
- package/dist/src/server/core/ResponseEnhancer.js +0 -578
- package/dist/src/server/core/ResponseEnhancer.js.map +0 -1
- package/dist/src/server/core/SendFileHandler.d.ts +0 -12
- package/dist/src/server/core/SendFileHandler.d.ts.map +0 -1
- package/dist/src/server/core/SendFileHandler.js +0 -179
- package/dist/src/server/core/SendFileHandler.js.map +0 -1
- package/dist/src/server/core/StartupProcessor.d.ts +0 -35
- package/dist/src/server/core/StartupProcessor.d.ts.map +0 -1
- package/dist/src/server/core/StartupProcessor.js +0 -114
- package/dist/src/server/core/StartupProcessor.js.map +0 -1
- package/dist/src/server/core/VirtualServer.d.ts +0 -18
- package/dist/src/server/core/VirtualServer.d.ts.map +0 -1
- package/dist/src/server/core/VirtualServer.js +0 -28
- package/dist/src/server/core/VirtualServer.js.map +0 -1
- package/dist/src/server/core/XHSCBridge/EngineManager.d.ts +0 -17
- package/dist/src/server/core/XHSCBridge/EngineManager.d.ts.map +0 -1
- package/dist/src/server/core/XHSCBridge/EngineManager.js +0 -165
- package/dist/src/server/core/XHSCBridge/EngineManager.js.map +0 -1
- package/dist/src/server/core/XHSCBridge/LogProcessor.d.ts +0 -20
- package/dist/src/server/core/XHSCBridge/LogProcessor.d.ts.map +0 -1
- package/dist/src/server/core/XHSCBridge/LogProcessor.js +0 -116
- package/dist/src/server/core/XHSCBridge/LogProcessor.js.map +0 -1
- package/dist/src/server/core/XHSCBridge/SocketManager.d.ts +0 -20
- package/dist/src/server/core/XHSCBridge/SocketManager.d.ts.map +0 -1
- package/dist/src/server/core/XHSCBridge/SocketManager.js +0 -83
- package/dist/src/server/core/XHSCBridge/SocketManager.js.map +0 -1
- package/dist/src/server/core/XHSCBridge/cmd/buildClusterArgs.d.ts +0 -2
- package/dist/src/server/core/XHSCBridge/cmd/buildClusterArgs.d.ts.map +0 -1
- package/dist/src/server/core/XHSCBridge/cmd/buildClusterArgs.js +0 -66
- package/dist/src/server/core/XHSCBridge/cmd/buildClusterArgs.js.map +0 -1
- package/dist/src/server/core/XHSCBridge/cmd/buildCoreArgs.d.ts +0 -2
- package/dist/src/server/core/XHSCBridge/cmd/buildCoreArgs.d.ts.map +0 -1
- package/dist/src/server/core/XHSCBridge/cmd/buildCoreArgs.js +0 -33
- package/dist/src/server/core/XHSCBridge/cmd/buildCoreArgs.js.map +0 -1
- package/dist/src/server/core/XHSCBridge/cmd/buildNetworkArgs.d.ts +0 -2
- package/dist/src/server/core/XHSCBridge/cmd/buildNetworkArgs.d.ts.map +0 -1
- package/dist/src/server/core/XHSCBridge/cmd/buildNetworkArgs.js +0 -49
- package/dist/src/server/core/XHSCBridge/cmd/buildNetworkArgs.js.map +0 -1
- package/dist/src/server/core/XHSCBridge/cmd/buildPerformanceArgs.d.ts +0 -2
- package/dist/src/server/core/XHSCBridge/cmd/buildPerformanceArgs.d.ts.map +0 -1
- package/dist/src/server/core/XHSCBridge/cmd/buildPerformanceArgs.js +0 -41
- package/dist/src/server/core/XHSCBridge/cmd/buildPerformanceArgs.js.map +0 -1
- package/dist/src/server/core/XHSCBridge/cmd/buildRequestArgs.d.ts +0 -2
- package/dist/src/server/core/XHSCBridge/cmd/buildRequestArgs.d.ts.map +0 -1
- package/dist/src/server/core/XHSCBridge/cmd/buildRequestArgs.js +0 -31
- package/dist/src/server/core/XHSCBridge/cmd/buildRequestArgs.js.map +0 -1
- package/dist/src/server/core/XHSCBridge/cmd/buildSecurityArgs.d.ts +0 -2
- package/dist/src/server/core/XHSCBridge/cmd/buildSecurityArgs.d.ts.map +0 -1
- package/dist/src/server/core/XHSCBridge/cmd/buildSecurityArgs.js +0 -46
- package/dist/src/server/core/XHSCBridge/cmd/buildSecurityArgs.js.map +0 -1
- package/dist/src/server/core/XHSCBridge/cmd/buildStaticArgs.d.ts +0 -5
- package/dist/src/server/core/XHSCBridge/cmd/buildStaticArgs.d.ts.map +0 -1
- package/dist/src/server/core/XHSCBridge/cmd/buildStaticArgs.js +0 -37
- package/dist/src/server/core/XHSCBridge/cmd/buildStaticArgs.js.map +0 -1
- package/dist/src/server/core/XHSCBridge/cmd/buildUploadArgs.d.ts +0 -2
- package/dist/src/server/core/XHSCBridge/cmd/buildUploadArgs.d.ts.map +0 -1
- package/dist/src/server/core/XHSCBridge/cmd/buildUploadArgs.js +0 -24
- package/dist/src/server/core/XHSCBridge/cmd/buildUploadArgs.js.map +0 -1
- package/dist/src/server/core/XHSCBridge/cmd/buildWorkerPoolArgs.d.ts +0 -2
- package/dist/src/server/core/XHSCBridge/cmd/buildWorkerPoolArgs.d.ts.map +0 -1
- package/dist/src/server/core/XHSCBridge/cmd/buildWorkerPoolArgs.js +0 -18
- package/dist/src/server/core/XHSCBridge/cmd/buildWorkerPoolArgs.js.map +0 -1
- package/dist/src/server/core/XHSCBridge/index.d.ts +0 -28
- package/dist/src/server/core/XHSCBridge/index.d.ts.map +0 -1
- package/dist/src/server/core/XHSCBridge/index.js +0 -94
- package/dist/src/server/core/XHSCBridge/index.js.map +0 -1
- package/dist/src/server/core/XHSCProtocol.d.ts +0 -100
- package/dist/src/server/core/XHSCProtocol.d.ts.map +0 -1
- package/dist/src/server/core/XHSCProtocol.js +0 -423
- package/dist/src/server/core/XHSCProtocol.js.map +0 -1
- package/dist/src/server/core/XyDiagnosticsManager.d.ts +0 -28
- package/dist/src/server/core/XyDiagnosticsManager.d.ts.map +0 -1
- package/dist/src/server/core/XyDiagnosticsManager.js +0 -74
- package/dist/src/server/core/XyDiagnosticsManager.js.map +0 -1
- package/dist/src/server/core/XyLifecycleManager.d.ts +0 -51
- package/dist/src/server/core/XyLifecycleManager.d.ts.map +0 -1
- package/dist/src/server/core/XyLifecycleManager.js +0 -235
- package/dist/src/server/core/XyLifecycleManager.js.map +0 -1
- package/dist/src/server/core/XyModuleManager.d.ts +0 -40
- package/dist/src/server/core/XyModuleManager.d.ts.map +0 -1
- package/dist/src/server/core/XyModuleManager.js +0 -124
- package/dist/src/server/core/XyModuleManager.js.map +0 -1
- package/dist/src/server/core/XyRoutingManager.d.ts +0 -42
- package/dist/src/server/core/XyRoutingManager.d.ts.map +0 -1
- package/dist/src/server/core/XyRoutingManager.js +0 -198
- package/dist/src/server/core/XyRoutingManager.js.map +0 -1
- package/dist/src/server/core/XyServerCreator.d.ts +0 -22
- package/dist/src/server/core/XyServerCreator.d.ts.map +0 -1
- package/dist/src/server/core/XyServerCreator.js +0 -117
- package/dist/src/server/core/XyServerCreator.js.map +0 -1
- package/dist/src/server/core/XyprissApp.d.ts +0 -208
- package/dist/src/server/core/XyprissApp.d.ts.map +0 -1
- package/dist/src/server/core/XyprissApp.js +0 -575
- package/dist/src/server/core/XyprissApp.js.map +0 -1
- package/dist/src/server/core/http/BodyParser.d.ts +0 -8
- package/dist/src/server/core/http/BodyParser.d.ts.map +0 -1
- package/dist/src/server/core/http/BodyParser.js +0 -43
- package/dist/src/server/core/http/BodyParser.js.map +0 -1
- package/dist/src/server/core/http/HttpErrorHandler.d.ts +0 -17
- package/dist/src/server/core/http/HttpErrorHandler.d.ts.map +0 -1
- package/dist/src/server/core/http/HttpErrorHandler.js +0 -65
- package/dist/src/server/core/http/HttpErrorHandler.js.map +0 -1
- package/dist/src/server/core/http/RequestForwarder.d.ts +0 -11
- package/dist/src/server/core/http/RequestForwarder.d.ts.map +0 -1
- package/dist/src/server/core/http/RequestForwarder.js +0 -41
- package/dist/src/server/core/http/RequestForwarder.js.map +0 -1
- package/dist/src/server/core/http/RouteManager.d.ts +0 -17
- package/dist/src/server/core/http/RouteManager.d.ts.map +0 -1
- package/dist/src/server/core/http/RouteManager.js +0 -113
- package/dist/src/server/core/http/RouteManager.js.map +0 -1
- package/dist/src/server/core/request/XyRequestManager.d.ts +0 -57
- package/dist/src/server/core/request/XyRequestManager.d.ts.map +0 -1
- package/dist/src/server/core/request/XyRequestManager.js +0 -226
- package/dist/src/server/core/request/XyRequestManager.js.map +0 -1
- package/dist/src/server/handlers/NotFoundHandler.d.ts +0 -25
- package/dist/src/server/handlers/NotFoundHandler.d.ts.map +0 -1
- package/dist/src/server/handlers/NotFoundHandler.js +0 -81
- package/dist/src/server/handlers/NotFoundHandler.js.map +0 -1
- package/dist/src/server/handlers/templates/notFoundTemplate.d.ts +0 -3
- package/dist/src/server/handlers/templates/notFoundTemplate.d.ts.map +0 -1
- package/dist/src/server/handlers/templates/notFoundTemplate.js +0 -651
- package/dist/src/server/handlers/templates/notFoundTemplate.js.map +0 -1
- package/dist/src/server/middleware/MiddlewareManager.d.ts +0 -64
- package/dist/src/server/middleware/MiddlewareManager.d.ts.map +0 -1
- package/dist/src/server/middleware/MiddlewareManager.js +0 -200
- package/dist/src/server/middleware/MiddlewareManager.js.map +0 -1
- package/dist/src/server/routing/Router.d.ts +0 -57
- package/dist/src/server/routing/Router.d.ts.map +0 -1
- package/dist/src/server/routing/Router.js +0 -173
- package/dist/src/server/routing/Router.js.map +0 -1
- package/dist/src/server/routing/index.d.ts +0 -16
- package/dist/src/server/routing/index.d.ts.map +0 -1
- package/dist/src/server/routing/index.js +0 -7
- package/dist/src/server/routing/index.js.map +0 -1
- package/dist/src/server/routing/modules/XyGuard.d.ts +0 -34
- package/dist/src/server/routing/modules/XyGuard.d.ts.map +0 -1
- package/dist/src/server/routing/modules/XyGuard.js +0 -30
- package/dist/src/server/routing/modules/XyGuard.js.map +0 -1
- package/dist/src/server/routing/modules/constants.d.ts +0 -5
- package/dist/src/server/routing/modules/constants.d.ts.map +0 -1
- package/dist/src/server/routing/modules/constants.js +0 -13
- package/dist/src/server/routing/modules/constants.js.map +0 -1
- package/dist/src/server/routing/modules/groups.d.ts +0 -14
- package/dist/src/server/routing/modules/groups.d.ts.map +0 -1
- package/dist/src/server/routing/modules/groups.js +0 -55
- package/dist/src/server/routing/modules/groups.js.map +0 -1
- package/dist/src/server/routing/modules/helpers.d.ts +0 -19
- package/dist/src/server/routing/modules/helpers.d.ts.map +0 -1
- package/dist/src/server/routing/modules/helpers.js +0 -164
- package/dist/src/server/routing/modules/helpers.js.map +0 -1
- package/dist/src/server/routing/modules/middleware.d.ts +0 -20
- package/dist/src/server/routing/modules/middleware.d.ts.map +0 -1
- package/dist/src/server/routing/modules/middleware.js +0 -185
- package/dist/src/server/routing/modules/middleware.js.map +0 -1
- package/dist/src/server/routing/modules/path.d.ts +0 -33
- package/dist/src/server/routing/modules/path.d.ts.map +0 -1
- package/dist/src/server/routing/modules/path.js +0 -125
- package/dist/src/server/routing/modules/path.js.map +0 -1
- package/dist/src/server/routing/modules/registry.d.ts +0 -29
- package/dist/src/server/routing/modules/registry.d.ts.map +0 -1
- package/dist/src/server/routing/modules/registry.js +0 -159
- package/dist/src/server/routing/modules/registry.js.map +0 -1
- package/dist/src/server/routing/modules/types.d.ts +0 -143
- package/dist/src/server/routing/modules/types.d.ts.map +0 -1
- package/dist/src/server/routing/modules/types.js +0 -2
- package/dist/src/server/routing/modules/types.js.map +0 -1
- package/dist/src/server/service/Reload/exec/ExecutableBuilder.d.ts +0 -67
- package/dist/src/server/service/Reload/exec/ExecutableBuilder.d.ts.map +0 -1
- package/dist/src/server/service/Reload/exec/ExecutableBuilder.js +0 -337
- package/dist/src/server/service/Reload/exec/ExecutableBuilder.js.map +0 -1
- package/dist/src/server/service/Reload/exec/TypeScriptExecutor.d.ts +0 -69
- package/dist/src/server/service/Reload/exec/TypeScriptExecutor.d.ts.map +0 -1
- package/dist/src/server/service/Reload/exec/TypeScriptExecutor.js +0 -337
- package/dist/src/server/service/Reload/exec/TypeScriptExecutor.js.map +0 -1
- package/dist/src/server/service/Reload/exec/build-executable.d.ts +0 -9
- package/dist/src/server/service/Reload/exec/build-executable.d.ts.map +0 -1
- package/dist/src/server/service/Reload/exec/build-executable.js +0 -44
- package/dist/src/server/service/Reload/exec/build-executable.js.map +0 -1
- package/dist/src/server/service/Reload/types/TSExecutor.type.d.ts +0 -18
- package/dist/src/server/service/Reload/types/TSExecutor.type.d.ts.map +0 -1
- package/dist/src/server/service/Reload/types/TSExecutor.type.js +0 -2
- package/dist/src/server/service/Reload/types/TSExecutor.type.js.map +0 -1
- package/dist/src/server/service/Reload/types/hotreloader.d.ts +0 -21
- package/dist/src/server/service/Reload/types/hotreloader.d.ts.map +0 -1
- package/dist/src/server/service/Reload/types/hotreloader.js +0 -2
- package/dist/src/server/service/Reload/types/hotreloader.js.map +0 -1
- package/dist/src/server/service/Reload/types/quickdev.type.d.ts +0 -30
- package/dist/src/server/service/Reload/types/quickdev.type.d.ts.map +0 -1
- package/dist/src/server/service/Reload/types/quickdev.type.js +0 -2
- package/dist/src/server/service/Reload/types/quickdev.type.js.map +0 -1
- package/dist/src/server/static/XStatic.d.ts +0 -60
- package/dist/src/server/static/XStatic.d.ts.map +0 -1
- package/dist/src/server/static/XStatic.js +0 -126
- package/dist/src/server/static/XStatic.js.map +0 -1
- package/dist/src/server/utils/ConfigLoader.d.ts +0 -41
- package/dist/src/server/utils/ConfigLoader.d.ts.map +0 -1
- package/dist/src/server/utils/ConfigLoader.js +0 -244
- package/dist/src/server/utils/ConfigLoader.js.map +0 -1
- package/dist/src/server/utils/PortManager.d.ts +0 -61
- package/dist/src/server/utils/PortManager.d.ts.map +0 -1
- package/dist/src/server/utils/PortManager.js +0 -245
- package/dist/src/server/utils/PortManager.js.map +0 -1
- package/dist/src/server/utils/WorkerModeHandler.d.ts +0 -7
- package/dist/src/server/utils/WorkerModeHandler.d.ts.map +0 -1
- package/dist/src/server/utils/WorkerModeHandler.js +0 -60
- package/dist/src/server/utils/WorkerModeHandler.js.map +0 -1
- package/dist/src/server/utils/es_modules.d.ts +0 -3
- package/dist/src/server/utils/es_modules.d.ts.map +0 -1
- package/dist/src/server/utils/es_modules.js +0 -5
- package/dist/src/server/utils/es_modules.js.map +0 -1
- package/dist/src/server/utils/forceClosePort.d.ts +0 -100
- package/dist/src/server/utils/forceClosePort.d.ts.map +0 -1
- package/dist/src/server/utils/forceClosePort.js +0 -328
- package/dist/src/server/utils/forceClosePort.js.map +0 -1
- package/dist/src/server/utils/internalFlagsFunctions.d.ts +0 -71
- package/dist/src/server/utils/internalFlagsFunctions.d.ts.map +0 -1
- package/dist/src/server/utils/internalFlagsFunctions.js +0 -150
- package/dist/src/server/utils/internalFlagsFunctions.js.map +0 -1
- package/dist/src/server/utils/shouldRegisterRouteOnServer.d.ts +0 -6
- package/dist/src/server/utils/shouldRegisterRouteOnServer.d.ts.map +0 -1
- package/dist/src/server/utils/shouldRegisterRouteOnServer.js +0 -30
- package/dist/src/server/utils/shouldRegisterRouteOnServer.js.map +0 -1
- package/dist/src/server/utils/wildcardMatcher.d.ts +0 -30
- package/dist/src/server/utils/wildcardMatcher.d.ts.map +0 -1
- package/dist/src/server/utils/wildcardMatcher.js +0 -220
- package/dist/src/server/utils/wildcardMatcher.js.map +0 -1
- package/dist/src/shared/logger/DEFAULT_LOGGER_CONFIG.d.ts +0 -3
- package/dist/src/shared/logger/DEFAULT_LOGGER_CONFIG.d.ts.map +0 -1
- package/dist/src/shared/logger/DEFAULT_LOGGER_CONFIG.js +0 -64
- package/dist/src/shared/logger/DEFAULT_LOGGER_CONFIG.js.map +0 -1
- package/dist/src/shared/logger/DEFAULT_PALETTE.d.ts +0 -16
- package/dist/src/shared/logger/DEFAULT_PALETTE.d.ts.map +0 -1
- package/dist/src/shared/logger/DEFAULT_PALETTE.js +0 -16
- package/dist/src/shared/logger/DEFAULT_PALETTE.js.map +0 -1
- package/dist/src/shared/logger/Logger.d.ts +0 -95
- package/dist/src/shared/logger/Logger.d.ts.map +0 -1
- package/dist/src/shared/logger/Logger.js +0 -576
- package/dist/src/shared/logger/Logger.js.map +0 -1
- package/dist/src/shared/logger/index.d.ts +0 -2
- package/dist/src/shared/logger/index.d.ts.map +0 -1
- package/dist/src/shared/logger/index.js +0 -2
- package/dist/src/shared/logger/index.js.map +0 -1
- package/dist/src/shared/logger/quickLogger.d.ts +0 -19
- package/dist/src/shared/logger/quickLogger.d.ts.map +0 -1
- package/dist/src/shared/logger/quickLogger.js +0 -162
- package/dist/src/shared/logger/quickLogger.js.map +0 -1
- package/dist/src/shared/types/index.d.ts +0 -2
- package/dist/src/shared/types/index.d.ts.map +0 -1
- package/dist/src/shared/types/index.js +0 -2
- package/dist/src/shared/types/index.js.map +0 -1
- package/dist/src/shared/types/logger.type.d.ts +0 -46
- package/dist/src/shared/types/logger.type.d.ts.map +0 -1
- package/dist/src/shared/types/logger.type.js +0 -42
- package/dist/src/shared/types/logger.type.js.map +0 -1
- package/dist/src/types/CpuMon.t.d.ts +0 -43
- package/dist/src/types/CpuMon.t.d.ts.map +0 -1
- package/dist/src/types/CpuMon.t.js +0 -2
- package/dist/src/types/CpuMon.t.js.map +0 -1
- package/dist/src/types/ExecutionPredictor.type.d.ts +0 -25
- package/dist/src/types/ExecutionPredictor.type.d.ts.map +0 -1
- package/dist/src/types/ExecutionPredictor.type.js +0 -2
- package/dist/src/types/ExecutionPredictor.type.js.map +0 -1
- package/dist/src/types/FiUp.type.d.ts +0 -50
- package/dist/src/types/FiUp.type.d.ts.map +0 -1
- package/dist/src/types/FiUp.type.js +0 -2
- package/dist/src/types/FiUp.type.js.map +0 -1
- package/dist/src/types/NotFoundConfig.d.ts +0 -39
- package/dist/src/types/NotFoundConfig.d.ts.map +0 -1
- package/dist/src/types/NotFoundConfig.js +0 -81
- package/dist/src/types/NotFoundConfig.js.map +0 -1
- package/dist/src/types/ReqPreCompiler.type.d.ts +0 -49
- package/dist/src/types/ReqPreCompiler.type.d.ts.map +0 -1
- package/dist/src/types/ReqPreCompiler.type.js +0 -2
- package/dist/src/types/ReqPreCompiler.type.js.map +0 -1
- package/dist/src/types/ServerOptions.d.ts +0 -861
- package/dist/src/types/ServerOptions.d.ts.map +0 -1
- package/dist/src/types/ServerOptions.js +0 -4
- package/dist/src/types/ServerOptions.js.map +0 -1
- package/dist/src/types/XyApp.type.d.ts +0 -610
- package/dist/src/types/XyApp.type.d.ts.map +0 -1
- package/dist/src/types/XyApp.type.js +0 -2
- package/dist/src/types/XyApp.type.js.map +0 -1
- package/dist/src/types/XyPrissRouter.types.d.ts +0 -23
- package/dist/src/types/XyPrissRouter.types.d.ts.map +0 -1
- package/dist/src/types/XyPrissRouter.types.js +0 -2
- package/dist/src/types/XyPrissRouter.types.js.map +0 -1
- package/dist/src/types/bun_cluster.t.d.ts +0 -41
- package/dist/src/types/bun_cluster.t.d.ts.map +0 -1
- package/dist/src/types/bun_cluster.t.js +0 -2
- package/dist/src/types/bun_cluster.t.js.map +0 -1
- package/dist/src/types/cluster.ipc.t.d.ts +0 -141
- package/dist/src/types/cluster.ipc.t.d.ts.map +0 -1
- package/dist/src/types/cluster.ipc.t.js +0 -88
- package/dist/src/types/cluster.ipc.t.js.map +0 -1
- package/dist/src/types/components/CacheManager.type.d.ts +0 -8
- package/dist/src/types/components/CacheManager.type.d.ts.map +0 -1
- package/dist/src/types/components/CacheManager.type.js +0 -2
- package/dist/src/types/components/CacheManager.type.js.map +0 -1
- package/dist/src/types/components/MonitoringM.type.d.ts +0 -10
- package/dist/src/types/components/MonitoringM.type.d.ts.map +0 -1
- package/dist/src/types/components/MonitoringM.type.js +0 -2
- package/dist/src/types/components/MonitoringM.type.js.map +0 -1
- package/dist/src/types/components/PlugingM.type.d.ts +0 -8
- package/dist/src/types/components/PlugingM.type.d.ts.map +0 -1
- package/dist/src/types/components/PlugingM.type.js +0 -2
- package/dist/src/types/components/PlugingM.type.js.map +0 -1
- package/dist/src/types/components/ReqProcessor.type.d.ts +0 -7
- package/dist/src/types/components/ReqProcessor.type.d.ts.map +0 -1
- package/dist/src/types/components/ReqProcessor.type.js +0 -2
- package/dist/src/types/components/ReqProcessor.type.js.map +0 -1
- package/dist/src/types/components/RouteM.type.d.ts +0 -9
- package/dist/src/types/components/RouteM.type.d.ts.map +0 -1
- package/dist/src/types/components/RouteM.type.js +0 -2
- package/dist/src/types/components/RouteM.type.js.map +0 -1
- package/dist/src/types/httpServer.type.d.ts +0 -260
- package/dist/src/types/httpServer.type.d.ts.map +0 -1
- package/dist/src/types/httpServer.type.js +0 -25
- package/dist/src/types/httpServer.type.js.map +0 -1
- package/dist/src/types/index.d.ts +0 -228
- package/dist/src/types/index.d.ts.map +0 -1
- package/dist/src/types/index.js +0 -37
- package/dist/src/types/index.js.map +0 -1
- package/dist/src/types/middleware-api.types.d.ts +0 -180
- package/dist/src/types/middleware-api.types.d.ts.map +0 -1
- package/dist/src/types/middleware-api.types.js +0 -6
- package/dist/src/types/middleware-api.types.js.map +0 -1
- package/dist/src/types/middlewareManager.types.d.ts +0 -18
- package/dist/src/types/middlewareManager.types.d.ts.map +0 -1
- package/dist/src/types/middlewareManager.types.js +0 -2
- package/dist/src/types/middlewareManager.types.js.map +0 -1
- package/dist/src/types/mod/cache.d.ts +0 -417
- package/dist/src/types/mod/cache.d.ts.map +0 -1
- package/dist/src/types/mod/cache.js +0 -12
- package/dist/src/types/mod/cache.js.map +0 -1
- package/dist/src/types/mod/core.d.ts +0 -390
- package/dist/src/types/mod/core.d.ts.map +0 -1
- package/dist/src/types/mod/core.js +0 -2
- package/dist/src/types/mod/core.js.map +0 -1
- package/dist/src/types/mod/monitoring.d.ts +0 -473
- package/dist/src/types/mod/monitoring.d.ts.map +0 -1
- package/dist/src/types/mod/monitoring.js +0 -12
- package/dist/src/types/mod/monitoring.js.map +0 -1
- package/dist/src/types/mod/performance.d.ts +0 -370
- package/dist/src/types/mod/performance.d.ts.map +0 -1
- package/dist/src/types/mod/performance.js +0 -12
- package/dist/src/types/mod/performance.js.map +0 -1
- package/dist/src/types/mod/routing.d.ts +0 -385
- package/dist/src/types/mod/routing.d.ts.map +0 -1
- package/dist/src/types/mod/routing.js +0 -12
- package/dist/src/types/mod/routing.js.map +0 -1
- package/dist/src/types/mod/security.d.ts +0 -1478
- package/dist/src/types/mod/security.d.ts.map +0 -1
- package/dist/src/types/mod/security.js +0 -2
- package/dist/src/types/mod/security.js.map +0 -1
- package/dist/src/types/perfomance.d.ts +0 -37
- package/dist/src/types/perfomance.d.ts.map +0 -1
- package/dist/src/types/perfomance.js +0 -2
- package/dist/src/types/perfomance.js.map +0 -1
- package/dist/src/types/types.d.ts +0 -210
- package/dist/src/types/types.d.ts.map +0 -1
- package/dist/src/types/types.js +0 -21
- package/dist/src/types/types.js.map +0 -1
- package/dist/src/types/xems.type.d.ts +0 -84
- package/dist/src/types/xems.type.d.ts.map +0 -1
- package/dist/src/types/xems.type.js +0 -2
- package/dist/src/types/xems.type.js.map +0 -1
- package/dist/src/utils/ConfigSyntaxParser.d.ts +0 -28
- package/dist/src/utils/ConfigSyntaxParser.d.ts.map +0 -1
- package/dist/src/utils/ConfigSyntaxParser.js +0 -76
- package/dist/src/utils/ConfigSyntaxParser.js.map +0 -1
- package/dist/src/utils/DotEnvLoader.d.ts +0 -27
- package/dist/src/utils/DotEnvLoader.d.ts.map +0 -1
- package/dist/src/utils/DotEnvLoader.js +0 -69
- package/dist/src/utils/DotEnvLoader.js.map +0 -1
- package/dist/src/utils/ProjectDiscovery.d.ts +0 -61
- package/dist/src/utils/ProjectDiscovery.d.ts.map +0 -1
- package/dist/src/utils/ProjectDiscovery.js +0 -295
- package/dist/src/utils/ProjectDiscovery.js.map +0 -1
- package/dist/src/utils/getIp.d.ts +0 -53
- package/dist/src/utils/getIp.d.ts.map +0 -1
- package/dist/src/utils/getIp.js +0 -160
- package/dist/src/utils/getIp.js.map +0 -1
- package/dist/src/utils/getMime.d.ts +0 -52
- package/dist/src/utils/getMime.d.ts.map +0 -1
- package/dist/src/utils/getMime.js +0 -90
- package/dist/src/utils/getMime.js.map +0 -1
- package/dist/src/utils/mergeWithDefaults.d.ts +0 -92
- package/dist/src/utils/mergeWithDefaults.d.ts.map +0 -1
- package/dist/src/utils/mergeWithDefaults.js +0 -172
- package/dist/src/utils/mergeWithDefaults.js.map +0 -1
- package/dist/src/utils/mimeUtils.d.ts +0 -10
- package/dist/src/utils/mimeUtils.d.ts.map +0 -1
- package/dist/src/utils/mimeUtils.js +0 -14
- package/dist/src/utils/mimeUtils.js.map +0 -1
- package/dist/src/xhsc/EnvApi.d.ts +0 -296
- package/dist/src/xhsc/EnvApi.d.ts.map +0 -1
- package/dist/src/xhsc/EnvApi.js +0 -525
- package/dist/src/xhsc/EnvApi.js.map +0 -1
- package/dist/src/xhsc/FSApi.d.ts +0 -21
- package/dist/src/xhsc/FSApi.d.ts.map +0 -1
- package/dist/src/xhsc/FSApi.js +0 -49
- package/dist/src/xhsc/FSApi.js.map +0 -1
- package/dist/src/xhsc/OSApi.d.ts +0 -195
- package/dist/src/xhsc/OSApi.d.ts.map +0 -1
- package/dist/src/xhsc/OSApi.js +0 -220
- package/dist/src/xhsc/OSApi.js.map +0 -1
- package/dist/src/xhsc/PathApi.d.ts +0 -300
- package/dist/src/xhsc/PathApi.d.ts.map +0 -1
- package/dist/src/xhsc/PathApi.js +0 -383
- package/dist/src/xhsc/PathApi.js.map +0 -1
- package/dist/src/xhsc/System.d.ts +0 -126
- package/dist/src/xhsc/System.d.ts.map +0 -1
- package/dist/src/xhsc/System.js +0 -58
- package/dist/src/xhsc/System.js.map +0 -1
- package/dist/src/xhsc/UtilsApi.d.ts +0 -45
- package/dist/src/xhsc/UtilsApi.d.ts.map +0 -1
- package/dist/src/xhsc/UtilsApi.js +0 -47
- package/dist/src/xhsc/UtilsApi.js.map +0 -1
- package/dist/src/xhsc/VarsApi.d.ts +0 -81
- package/dist/src/xhsc/VarsApi.d.ts.map +0 -1
- package/dist/src/xhsc/VarsApi.js +0 -175
- package/dist/src/xhsc/VarsApi.js.map +0 -1
- package/dist/src/xhsc/XyPrissCache.d.ts +0 -36
- package/dist/src/xhsc/XyPrissCache.d.ts.map +0 -1
- package/dist/src/xhsc/XyPrissCache.js +0 -66
- package/dist/src/xhsc/XyPrissCache.js.map +0 -1
- package/dist/src/xhsc/XyPrissRunner.d.ts +0 -49
- package/dist/src/xhsc/XyPrissRunner.d.ts.map +0 -1
- package/dist/src/xhsc/XyPrissRunner.js +0 -440
- package/dist/src/xhsc/XyPrissRunner.js.map +0 -1
- package/dist/src/xhsc/api/env/env.d.ts +0 -218
- package/dist/src/xhsc/api/env/env.d.ts.map +0 -1
- package/dist/src/xhsc/api/env/env.js +0 -84
- package/dist/src/xhsc/api/env/env.js.map +0 -1
- package/dist/src/xhsc/cluster/XHSCWorker.d.ts +0 -28
- package/dist/src/xhsc/cluster/XHSCWorker.d.ts.map +0 -1
- package/dist/src/xhsc/cluster/XHSCWorker.js +0 -192
- package/dist/src/xhsc/cluster/XHSCWorker.js.map +0 -1
- package/dist/src/xhsc/cmdr.d.ts +0 -9
- package/dist/src/xhsc/cmdr.d.ts.map +0 -1
- package/dist/src/xhsc/cmdr.js +0 -2
- package/dist/src/xhsc/cmdr.js.map +0 -1
- package/dist/src/xhsc/fs/FSArchive.d.ts +0 -55
- package/dist/src/xhsc/fs/FSArchive.d.ts.map +0 -1
- package/dist/src/xhsc/fs/FSArchive.js +0 -66
- package/dist/src/xhsc/fs/FSArchive.js.map +0 -1
- package/dist/src/xhsc/fs/FSBase.d.ts +0 -14
- package/dist/src/xhsc/fs/FSBase.d.ts.map +0 -1
- package/dist/src/xhsc/fs/FSBase.js +0 -15
- package/dist/src/xhsc/fs/FSBase.js.map +0 -1
- package/dist/src/xhsc/fs/FSCore.d.ts +0 -417
- package/dist/src/xhsc/fs/FSCore.d.ts.map +0 -1
- package/dist/src/xhsc/fs/FSCore.js +0 -522
- package/dist/src/xhsc/fs/FSCore.js.map +0 -1
- package/dist/src/xhsc/fs/FSExtended.d.ts +0 -212
- package/dist/src/xhsc/fs/FSExtended.d.ts.map +0 -1
- package/dist/src/xhsc/fs/FSExtended.js +0 -303
- package/dist/src/xhsc/fs/FSExtended.js.map +0 -1
- package/dist/src/xhsc/fs/FSHelpers.d.ts +0 -383
- package/dist/src/xhsc/fs/FSHelpers.d.ts.map +0 -1
- package/dist/src/xhsc/fs/FSHelpers.js +0 -501
- package/dist/src/xhsc/fs/FSHelpers.js.map +0 -1
- package/dist/src/xhsc/fs/FSSearch.d.ts +0 -77
- package/dist/src/xhsc/fs/FSSearch.d.ts.map +0 -1
- package/dist/src/xhsc/fs/FSSearch.js +0 -95
- package/dist/src/xhsc/fs/FSSearch.js.map +0 -1
- package/dist/src/xhsc/fs/FSWatch.d.ts +0 -107
- package/dist/src/xhsc/fs/FSWatch.d.ts.map +0 -1
- package/dist/src/xhsc/fs/FSWatch.js +0 -136
- package/dist/src/xhsc/fs/FSWatch.js.map +0 -1
- package/dist/src/xhsc/fs/FileHandle.d.ts +0 -42
- package/dist/src/xhsc/fs/FileHandle.d.ts.map +0 -1
- package/dist/src/xhsc/fs/FileHandle.js +0 -107
- package/dist/src/xhsc/fs/FileHandle.js.map +0 -1
- package/dist/src/xhsc/ipc/XHSCDirectIPC.d.ts +0 -24
- package/dist/src/xhsc/ipc/XHSCDirectIPC.d.ts.map +0 -1
- package/dist/src/xhsc/ipc/XHSCDirectIPC.js +0 -110
- package/dist/src/xhsc/ipc/XHSCDirectIPC.js.map +0 -1
- package/dist/src/xhsc/types.d.ts +0 -268
- package/dist/src/xhsc/types.d.ts.map +0 -1
- package/dist/src/xhsc/types.js +0 -8
- package/dist/src/xhsc/types.js.map +0 -1
- package/dist/src/xhsc/utils/ArrayUtils.d.ts +0 -38
- package/dist/src/xhsc/utils/ArrayUtils.d.ts.map +0 -1
- package/dist/src/xhsc/utils/ArrayUtils.js +0 -63
- package/dist/src/xhsc/utils/ArrayUtils.js.map +0 -1
- package/dist/src/xhsc/utils/AsyncUtils.d.ts +0 -437
- package/dist/src/xhsc/utils/AsyncUtils.d.ts.map +0 -1
- package/dist/src/xhsc/utils/AsyncUtils.js +0 -578
- package/dist/src/xhsc/utils/AsyncUtils.js.map +0 -1
- package/dist/src/xhsc/utils/DateUtils.d.ts +0 -649
- package/dist/src/xhsc/utils/DateUtils.d.ts.map +0 -1
- package/dist/src/xhsc/utils/DateUtils.js +0 -956
- package/dist/src/xhsc/utils/DateUtils.js.map +0 -1
- package/dist/src/xhsc/utils/FunctionUtils.d.ts +0 -15
- package/dist/src/xhsc/utils/FunctionUtils.d.ts.map +0 -1
- package/dist/src/xhsc/utils/FunctionUtils.js +0 -25
- package/dist/src/xhsc/utils/FunctionUtils.js.map +0 -1
- package/dist/src/xhsc/utils/IdUtils.d.ts +0 -14
- package/dist/src/xhsc/utils/IdUtils.d.ts.map +0 -1
- package/dist/src/xhsc/utils/IdUtils.js +0 -17
- package/dist/src/xhsc/utils/IdUtils.js.map +0 -1
- package/dist/src/xhsc/utils/NumberUtils.d.ts +0 -59
- package/dist/src/xhsc/utils/NumberUtils.d.ts.map +0 -1
- package/dist/src/xhsc/utils/NumberUtils.js +0 -75
- package/dist/src/xhsc/utils/NumberUtils.js.map +0 -1
- package/dist/src/xhsc/utils/ObjectUtils.d.ts +0 -96
- package/dist/src/xhsc/utils/ObjectUtils.d.ts.map +0 -1
- package/dist/src/xhsc/utils/ObjectUtils.js +0 -136
- package/dist/src/xhsc/utils/ObjectUtils.js.map +0 -1
- package/dist/src/xhsc/utils/StringUtils.d.ts +0 -105
- package/dist/src/xhsc/utils/StringUtils.d.ts.map +0 -1
- package/dist/src/xhsc/utils/StringUtils.js +0 -141
- package/dist/src/xhsc/utils/StringUtils.js.map +0 -1
- package/dist/src/xhsc/utils/ValidationUtils.d.ts +0 -33
- package/dist/src/xhsc/utils/ValidationUtils.d.ts.map +0 -1
- package/dist/src/xhsc/utils/ValidationUtils.js +0 -45
- package/dist/src/xhsc/utils/ValidationUtils.js.map +0 -1
- package/dist/src/xhsc/utils/deepReadonlyProxy.d.ts +0 -48
- package/dist/src/xhsc/utils/deepReadonlyProxy.d.ts.map +0 -1
- package/dist/src/xhsc/utils/deepReadonlyProxy.js +0 -108
- package/dist/src/xhsc/utils/deepReadonlyProxy.js.map +0 -1
- package/dist/src/xhsc.d.ts +0 -41
- package/dist/src/xhsc.d.ts.map +0 -1
- package/dist/src/xhsc.js +0 -231
- package/dist/src/xhsc.js.map +0 -1
- package/dist/test-toolbox.d.ts +0 -2
- package/dist/test-toolbox.d.ts.map +0 -1
- package/dist/test-toolbox.js +0 -37
- package/dist/test-toolbox.js.map +0 -1
- package/dist/test_finish.d.ts +0 -2
- package/dist/test_finish.d.ts.map +0 -1
- package/dist/test_finish.js +0 -10
- package/dist/test_finish.js.map +0 -1
- package/dist/test_regex.d.ts +0 -2
- package/dist/test_regex.d.ts.map +0 -1
- package/dist/test_regex.js +0 -20
- package/dist/test_regex.js.map +0 -1
- package/dist/test_server.d.ts +0 -2
- package/dist/test_server.d.ts.map +0 -1
- package/dist/test_server.js +0 -23
- package/dist/test_server.js.map +0 -1
|
@@ -1,277 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module UriNormalizer
|
|
3
|
-
*
|
|
4
|
-
* Normalization and security utilities for URIs and paths.
|
|
5
|
-
*
|
|
6
|
-
* ### Supported Threats
|
|
7
|
-
* - Path traversal (including encoded variants: `%2F`, `%2E`, double-encoded `%2520`)
|
|
8
|
-
* - Injection of null bytes and control characters
|
|
9
|
-
* - ReDoS attacks via sandbox execution with an adaptive timeout
|
|
10
|
-
* - Backslash smuggling (`\..\..\`)
|
|
11
|
-
* - Unicode normalized segments (NFC) to prevent traversal homoglyphs
|
|
12
|
-
*
|
|
13
|
-
* ### Non-regression Guarantees (no false positives)
|
|
14
|
-
* - Legitimate paths with encoded special characters are preserved correctly.
|
|
15
|
-
* - The trailing slash is preserved if present in the original input.
|
|
16
|
-
* - Internal empty segments are cleanly removed (`//` collapse).
|
|
17
|
-
* - The root `/` is always returned for an empty or null input.
|
|
18
|
-
*
|
|
19
|
-
* @example
|
|
20
|
-
* ```ts
|
|
21
|
-
* UriNormalizer.normalizePath("/foo/%2E%2E/bar"); // => "/bar"
|
|
22
|
-
* UriNormalizer.normalizePath("/a//b/../c/"); // => "/a/c/"
|
|
23
|
-
* UriNormalizer.safeRegexCheck(/^[a-z]+$/, "hello"); // => true
|
|
24
|
-
* ```
|
|
25
|
-
*/
|
|
26
|
-
export declare class UriNormalizer {
|
|
27
|
-
/**
|
|
28
|
-
* Maximum number of URI decoding iterations to stop infinite loops
|
|
29
|
-
* on pathological inputs (e.g., synthetic infinite encodings).
|
|
30
|
-
*/
|
|
31
|
-
private static readonly MAX_DECODE_ITERATIONS;
|
|
32
|
-
/**
|
|
33
|
-
* Minimum length (inclusive) from which regex execution is deferred
|
|
34
|
-
* to an isolated VM context with a timeout, regardless of the apparent
|
|
35
|
-
* complexity of the pattern.
|
|
36
|
-
*
|
|
37
|
-
* Lowered to 20 chars to cover catastrophic patterns on short
|
|
38
|
-
* repetitive inputs (e.g., `(a+)+` tested on `"aaaaaaaaaaaaaaaab"`).
|
|
39
|
-
*/
|
|
40
|
-
private static readonly REGEX_VM_LENGTH_THRESHOLD;
|
|
41
|
-
/**
|
|
42
|
-
* Base VM timeout in milliseconds. It is proportionally increased
|
|
43
|
-
* according to the string length to avoid false positives on long
|
|
44
|
-
* legitimate inputs while keeping a hard limit on ReDoS.
|
|
45
|
-
*
|
|
46
|
-
* @see {@link UriNormalizer.computeRegexTimeout}
|
|
47
|
-
*/
|
|
48
|
-
private static readonly REGEX_BASE_TIMEOUT_MS;
|
|
49
|
-
/**
|
|
50
|
-
* Multiplicative factor (ms per 1,000 characters) added to the base
|
|
51
|
-
* timeout for long strings. This prevents false positives on large
|
|
52
|
-
* legitimate inputs.
|
|
53
|
-
*/
|
|
54
|
-
private static readonly REGEX_TIMEOUT_PER_1K_CHARS;
|
|
55
|
-
/**
|
|
56
|
-
* Absolute ceiling for the VM timeout in milliseconds to prevent
|
|
57
|
-
* a massive input from rendering the timeout useless.
|
|
58
|
-
*/
|
|
59
|
-
private static readonly REGEX_MAX_TIMEOUT_MS;
|
|
60
|
-
/**
|
|
61
|
-
* Normalizes a URI path by resolving `.` and `..` segments, multiple
|
|
62
|
-
* slashes, backslashes, null bytes, control characters, and all URI
|
|
63
|
-
* encodings (including double-encodings such as `%2520`).
|
|
64
|
-
*
|
|
65
|
-
* Normalization follows this strict order to eliminate bypass vectors:
|
|
66
|
-
* 1. Iterative decoding until stabilization (anti double-encoding).
|
|
67
|
-
* 2. Unicode NFC normalization (anti homoglyphs).
|
|
68
|
-
* 3. Replacement of backslashes with forward slashes.
|
|
69
|
-
* 4. Removal of null bytes and control characters.
|
|
70
|
-
* 5. Collapse of multiple slashes.
|
|
71
|
-
* 6. Resolution of `.` and `..` segments.
|
|
72
|
-
* 7. Restoration of the trailing slash if the original input had one.
|
|
73
|
-
*
|
|
74
|
-
* ### Guaranteed Behaviors
|
|
75
|
-
* - `""` or `null`/`undefined` → `"/"`
|
|
76
|
-
* - Paths where all segments resolve above the root are clipped
|
|
77
|
-
* to `"/"` (no underflow possible).
|
|
78
|
-
* - The trailing slash is faithfully preserved or removed based on the input.
|
|
79
|
-
* - Unicode control characters (U+0000–U+001F, U+007F–U+009F)
|
|
80
|
-
* are systematically removed.
|
|
81
|
-
*
|
|
82
|
-
* @param {string} pathStr - The raw path to normalize (can be encoded).
|
|
83
|
-
* @returns {string} The normalized path, always prefixed with `/`.
|
|
84
|
-
*
|
|
85
|
-
* @example
|
|
86
|
-
* ```ts
|
|
87
|
-
* UriNormalizer.normalizePath("/foo/bar"); // "/foo/bar"
|
|
88
|
-
* UriNormalizer.normalizePath("/foo/../bar"); // "/bar"
|
|
89
|
-
* UriNormalizer.normalizePath("/foo/%2E%2E/bar"); // "/bar"
|
|
90
|
-
* UriNormalizer.normalizePath("/foo/%252E%252E/bar"); // "/bar" (double-encoded)
|
|
91
|
-
* UriNormalizer.normalizePath("/a//b/./c/"); // "/a/b/c/"
|
|
92
|
-
* UriNormalizer.normalizePath("\\foo\\..\\bar"); // "/bar"
|
|
93
|
-
* UriNormalizer.normalizePath("/foo/\0bar"); // "/foo/bar"
|
|
94
|
-
* UriNormalizer.normalizePath(""); // "/"
|
|
95
|
-
* ```
|
|
96
|
-
*/
|
|
97
|
-
static normalizePath(pathStr: string): string;
|
|
98
|
-
/**
|
|
99
|
-
* Executes a regex test with a strict timeout to prevent ReDoS
|
|
100
|
-
* (Regular Expression Denial of Service) attacks.
|
|
101
|
-
*
|
|
102
|
-
* ### Protection Strategy
|
|
103
|
-
* - Short strings (< {@link REGEX_VM_LENGTH_THRESHOLD} characters) are
|
|
104
|
-
* tested directly for performance, but the threshold has been lowered to
|
|
105
|
-
* 20 to cover catastrophic patterns on short repetitions.
|
|
106
|
-
* - Beyond the threshold, the regex is executed in an isolated Node.js VM
|
|
107
|
-
* context with an adaptive timeout calculated by {@link computeRegexTimeout}.
|
|
108
|
-
* - In the event of a timeout or VM error, the method returns `false` **and**
|
|
109
|
-
* throws a typed error to distinguish a real ReDoS from a false positive.
|
|
110
|
-
*
|
|
111
|
-
* ### Error Differentiation
|
|
112
|
-
* - `UriNormalizerRegexTimeoutError`: timeout reached → probable ReDoS.
|
|
113
|
-
* - Any other internal exception is propagated as-is to avoid hiding
|
|
114
|
-
* caller layer bugs.
|
|
115
|
-
*
|
|
116
|
-
* @param {RegExp} pattern - The regular expression to evaluate.
|
|
117
|
-
* @param {string} str - The string to test against.
|
|
118
|
-
* @param {number} [timeoutMs] - Base timeout in ms (default: {@link REGEX_BASE_TIMEOUT_MS}).
|
|
119
|
-
* Automatically increased based on `str` length.
|
|
120
|
-
* @returns {boolean} `true` if the regex matches, `false` otherwise or on timeout.
|
|
121
|
-
* @throws {TypeError} If `pattern` is not a RegExp instance.
|
|
122
|
-
* @throws {UriNormalizerRegexTimeoutError} If the VM timeout is reached (probable ReDoS).
|
|
123
|
-
*
|
|
124
|
-
* @example
|
|
125
|
-
* ```ts
|
|
126
|
-
* // Basic usage
|
|
127
|
-
* UriNormalizer.safeRegexCheck(/^[a-z]+$/, "hello"); // true
|
|
128
|
-
* UriNormalizer.safeRegexCheck(/^[a-z]+$/, "Hello"); // false
|
|
129
|
-
*
|
|
130
|
-
* // Potentially catastrophic pattern on long input
|
|
131
|
-
* try {
|
|
132
|
-
* UriNormalizer.safeRegexCheck(/(a+)+$/, "a".repeat(5000) + "!");
|
|
133
|
-
* } catch (e) {
|
|
134
|
-
* if (e instanceof UriNormalizerRegexTimeoutError) {
|
|
135
|
-
* console.warn("ReDoS blocked: ", e.message);
|
|
136
|
-
* }
|
|
137
|
-
* }
|
|
138
|
-
* ```
|
|
139
|
-
*/
|
|
140
|
-
static safeRegexCheck(pattern: RegExp, str: string, timeoutMs?: number): boolean;
|
|
141
|
-
/**
|
|
142
|
-
* Iteratively decodes a URI path until it is stable (idempotent),
|
|
143
|
-
* neutralizing double-encodings and cascading encodings.
|
|
144
|
-
*
|
|
145
|
-
* **Example of bypass without this protection:**
|
|
146
|
-
* ```
|
|
147
|
-
* %2520 → (1st decode) %20 → (2nd decode) " "
|
|
148
|
-
* %252E%252E → %2E%2E → .. ← hidden traversal
|
|
149
|
-
* ```
|
|
150
|
-
*
|
|
151
|
-
* The loop is bounded to {@link MAX_DECODE_ITERATIONS} to prevent any
|
|
152
|
-
* infinite loop on pathological synthetic inputs. If the limit is reached,
|
|
153
|
-
* the last stable state is returned without throwing an exception.
|
|
154
|
-
*
|
|
155
|
-
* @param {string} raw - The raw string, potentially multi-encoded.
|
|
156
|
-
* @returns {string} The fully decoded string.
|
|
157
|
-
*
|
|
158
|
-
* @private
|
|
159
|
-
*/
|
|
160
|
-
private static iterativeDecode;
|
|
161
|
-
/**
|
|
162
|
-
* Strips all ASCII and Unicode control characters from a string.
|
|
163
|
-
*
|
|
164
|
-
* The removed ranges are:
|
|
165
|
-
* - U+0000–U+001F: C0 control characters (including null byte, tab, LF, CR...)
|
|
166
|
-
* - U+007F : DEL
|
|
167
|
-
* - U+0080–U+009F: C1 control characters
|
|
168
|
-
*
|
|
169
|
-
* These characters can be exploited to bypass filters relying on naive
|
|
170
|
-
* string comparisons or to cause unexpected behavior in downstream parsers
|
|
171
|
-
* (e.g., HTTP servers, file systems).
|
|
172
|
-
*
|
|
173
|
-
* @param {string} str - The string to sanitize.
|
|
174
|
-
* @returns {string} The string without control characters.
|
|
175
|
-
*
|
|
176
|
-
* @private
|
|
177
|
-
*/
|
|
178
|
-
private static stripControlCharacters;
|
|
179
|
-
/**
|
|
180
|
-
* Resolves `.` (current directory) and `..` (parent directory) segments
|
|
181
|
-
* from a normalized path (without double-slashes or residual encodings).
|
|
182
|
-
*
|
|
183
|
-
* The stack can never go below the root: a `..` at the head of the path
|
|
184
|
-
* is silently ignored, preventing any underflow to `../`.
|
|
185
|
-
*
|
|
186
|
-
* @param {string} path - The pre-normalized path (consolidated slashes, decoded).
|
|
187
|
-
* @returns {string} The path with all `.` and `..` segments resolved,
|
|
188
|
-
* always prefixed by `/`.
|
|
189
|
-
*
|
|
190
|
-
* @example
|
|
191
|
-
* ```ts
|
|
192
|
-
* // (private method — internal illustration)
|
|
193
|
-
* resolveSegments("/a/b/../../c") // "/c"
|
|
194
|
-
* resolveSegments("/../../../etc") // "/etc" ← no underflow
|
|
195
|
-
* resolveSegments("/a/./b") // "/a/b"
|
|
196
|
-
* ```
|
|
197
|
-
*
|
|
198
|
-
* @private
|
|
199
|
-
*/
|
|
200
|
-
private static resolveSegments;
|
|
201
|
-
/**
|
|
202
|
-
* Calculates an adaptive timeout for executing a regex in the VM sandbox,
|
|
203
|
-
* adding a delta proportional to the length of the string being tested.
|
|
204
|
-
*
|
|
205
|
-
* ### Formula
|
|
206
|
-
* ```
|
|
207
|
-
* timeout = min(baseMs + floor(length / 1000) * PER_1K, MAX_TIMEOUT)
|
|
208
|
-
* ```
|
|
209
|
-
*
|
|
210
|
-
* This avoids false positives on long legitimate inputs while maintaining
|
|
211
|
-
* a hard ceiling ({@link REGEX_MAX_TIMEOUT_MS}) to contain severe ReDoS.
|
|
212
|
-
*
|
|
213
|
-
* @param {number} length - Length of the tested string.
|
|
214
|
-
* @param {number} baseMs - Base timeout provided by the caller.
|
|
215
|
-
* @returns {number} The effective timeout in milliseconds.
|
|
216
|
-
*
|
|
217
|
-
* @private
|
|
218
|
-
*/
|
|
219
|
-
private static computeRegexTimeout;
|
|
220
|
-
/**
|
|
221
|
-
* Determines whether an error thrown by `vm.runInContext` is a timeout
|
|
222
|
-
* overrun (i.e. a Node.js script interruption).
|
|
223
|
-
*
|
|
224
|
-
* Node.js does not provide a dedicated error class for this type of error.
|
|
225
|
-
* Detection relies on the `ERR_SCRIPT_EXECUTION_TIMEOUT` error code and/or
|
|
226
|
-
* the error message (`"Script execution timed out"`), which are stable since Node 10.
|
|
227
|
-
*
|
|
228
|
-
* @param {unknown} error - The exception to inspect.
|
|
229
|
-
* @returns {boolean} `true` if the error is a VM timeout, `false` otherwise.
|
|
230
|
-
*
|
|
231
|
-
* @private
|
|
232
|
-
*/
|
|
233
|
-
private static isVmTimeoutError;
|
|
234
|
-
}
|
|
235
|
-
/**
|
|
236
|
-
* Error thrown by {@link UriNormalizer.safeRegexCheck} when regex execution
|
|
237
|
-
* in the VM context exceeds the allocated timeout.
|
|
238
|
-
*
|
|
239
|
-
* This error allows the calling layer to distinguish a true ReDoS block
|
|
240
|
-
* from a legitimate `false` return (normal non-match), and to apply an
|
|
241
|
-
* appropriate security policy (log, alert, block the request...).
|
|
242
|
-
*
|
|
243
|
-
* @extends {Error}
|
|
244
|
-
*
|
|
245
|
-
* @example
|
|
246
|
-
* ```ts
|
|
247
|
-
* try {
|
|
248
|
-
* UriNormalizer.safeRegexCheck(/(a+)+$/, "a".repeat(10_000) + "!");
|
|
249
|
-
* } catch (e) {
|
|
250
|
-
* if (e instanceof UriNormalizerRegexTimeoutError) {
|
|
251
|
-
* console.error(`ReDoS detected (timeout=${e.timeoutMs}ms, len=${e.inputLength})`);
|
|
252
|
-
* }
|
|
253
|
-
* }
|
|
254
|
-
* ```
|
|
255
|
-
*/
|
|
256
|
-
export declare class UriNormalizerRegexTimeoutError extends Error {
|
|
257
|
-
/** Class name for reliable instanceof and logging. */
|
|
258
|
-
readonly name = "UriNormalizerRegexTimeoutError";
|
|
259
|
-
/**
|
|
260
|
-
* Effective timeout (in ms) that was exceeded during VM execution.
|
|
261
|
-
* @readonly
|
|
262
|
-
*/
|
|
263
|
-
readonly timeoutMs: number;
|
|
264
|
-
/**
|
|
265
|
-
* Length of the input string that caused the timeout.
|
|
266
|
-
* Useful for diagnostics and threshold tuning.
|
|
267
|
-
* @readonly
|
|
268
|
-
*/
|
|
269
|
-
readonly inputLength: number;
|
|
270
|
-
/**
|
|
271
|
-
* @param {string} message - Descriptive error message.
|
|
272
|
-
* @param {number} timeoutMs - Exceeded effective timeout.
|
|
273
|
-
* @param {number} inputLength - Length of the tested input.
|
|
274
|
-
*/
|
|
275
|
-
constructor(message: string, timeoutMs: number, inputLength: number);
|
|
276
|
-
}
|
|
277
|
-
//# sourceMappingURL=UriNormalizer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UriNormalizer.d.ts","sourceRoot":"","sources":["../../../../../src/middleware/built-in/security/UriNormalizer.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,aAAa;IAKtB;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAM;IAEnD;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAM;IAEvD;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAM;IAEnD;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAK;IAEvD;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAO;IAMnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;WACW,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IA6BpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyCG;WACW,cAAc,CACxB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,SAAS,GAAE,MAA4C,GACxD,OAAO;IA4CV;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IA2B9B;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IASrC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAsB9B;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAOlC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;CASlC;AAMD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,8BAA+B,SAAQ,KAAK;IACrD,sDAAsD;IACtD,SAAyB,IAAI,oCAAoC;IAEjE;;;OAGG;IACH,SAAgB,SAAS,EAAE,MAAM,CAAC;IAElC;;;;OAIG;IACH,SAAgB,WAAW,EAAE,MAAM,CAAC;IAEpC;;;;OAIG;gBACS,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAQtE"}
|
|
@@ -1,388 +0,0 @@
|
|
|
1
|
-
import * as vm from "vm";
|
|
2
|
-
/**
|
|
3
|
-
* @module UriNormalizer
|
|
4
|
-
*
|
|
5
|
-
* Normalization and security utilities for URIs and paths.
|
|
6
|
-
*
|
|
7
|
-
* ### Supported Threats
|
|
8
|
-
* - Path traversal (including encoded variants: `%2F`, `%2E`, double-encoded `%2520`)
|
|
9
|
-
* - Injection of null bytes and control characters
|
|
10
|
-
* - ReDoS attacks via sandbox execution with an adaptive timeout
|
|
11
|
-
* - Backslash smuggling (`\..\..\`)
|
|
12
|
-
* - Unicode normalized segments (NFC) to prevent traversal homoglyphs
|
|
13
|
-
*
|
|
14
|
-
* ### Non-regression Guarantees (no false positives)
|
|
15
|
-
* - Legitimate paths with encoded special characters are preserved correctly.
|
|
16
|
-
* - The trailing slash is preserved if present in the original input.
|
|
17
|
-
* - Internal empty segments are cleanly removed (`//` collapse).
|
|
18
|
-
* - The root `/` is always returned for an empty or null input.
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* ```ts
|
|
22
|
-
* UriNormalizer.normalizePath("/foo/%2E%2E/bar"); // => "/bar"
|
|
23
|
-
* UriNormalizer.normalizePath("/a//b/../c/"); // => "/a/c/"
|
|
24
|
-
* UriNormalizer.safeRegexCheck(/^[a-z]+$/, "hello"); // => true
|
|
25
|
-
* ```
|
|
26
|
-
*/
|
|
27
|
-
export class UriNormalizer {
|
|
28
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
29
|
-
// Public API
|
|
30
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
31
|
-
/**
|
|
32
|
-
* Normalizes a URI path by resolving `.` and `..` segments, multiple
|
|
33
|
-
* slashes, backslashes, null bytes, control characters, and all URI
|
|
34
|
-
* encodings (including double-encodings such as `%2520`).
|
|
35
|
-
*
|
|
36
|
-
* Normalization follows this strict order to eliminate bypass vectors:
|
|
37
|
-
* 1. Iterative decoding until stabilization (anti double-encoding).
|
|
38
|
-
* 2. Unicode NFC normalization (anti homoglyphs).
|
|
39
|
-
* 3. Replacement of backslashes with forward slashes.
|
|
40
|
-
* 4. Removal of null bytes and control characters.
|
|
41
|
-
* 5. Collapse of multiple slashes.
|
|
42
|
-
* 6. Resolution of `.` and `..` segments.
|
|
43
|
-
* 7. Restoration of the trailing slash if the original input had one.
|
|
44
|
-
*
|
|
45
|
-
* ### Guaranteed Behaviors
|
|
46
|
-
* - `""` or `null`/`undefined` → `"/"`
|
|
47
|
-
* - Paths where all segments resolve above the root are clipped
|
|
48
|
-
* to `"/"` (no underflow possible).
|
|
49
|
-
* - The trailing slash is faithfully preserved or removed based on the input.
|
|
50
|
-
* - Unicode control characters (U+0000–U+001F, U+007F–U+009F)
|
|
51
|
-
* are systematically removed.
|
|
52
|
-
*
|
|
53
|
-
* @param {string} pathStr - The raw path to normalize (can be encoded).
|
|
54
|
-
* @returns {string} The normalized path, always prefixed with `/`.
|
|
55
|
-
*
|
|
56
|
-
* @example
|
|
57
|
-
* ```ts
|
|
58
|
-
* UriNormalizer.normalizePath("/foo/bar"); // "/foo/bar"
|
|
59
|
-
* UriNormalizer.normalizePath("/foo/../bar"); // "/bar"
|
|
60
|
-
* UriNormalizer.normalizePath("/foo/%2E%2E/bar"); // "/bar"
|
|
61
|
-
* UriNormalizer.normalizePath("/foo/%252E%252E/bar"); // "/bar" (double-encoded)
|
|
62
|
-
* UriNormalizer.normalizePath("/a//b/./c/"); // "/a/b/c/"
|
|
63
|
-
* UriNormalizer.normalizePath("\\foo\\..\\bar"); // "/bar"
|
|
64
|
-
* UriNormalizer.normalizePath("/foo/\0bar"); // "/foo/bar"
|
|
65
|
-
* UriNormalizer.normalizePath(""); // "/"
|
|
66
|
-
* ```
|
|
67
|
-
*/
|
|
68
|
-
static normalizePath(pathStr) {
|
|
69
|
-
if (!pathStr)
|
|
70
|
-
return "/";
|
|
71
|
-
// Step 1: Iterative decoding to neutralize double-encodings
|
|
72
|
-
const decoded = UriNormalizer.iterativeDecode(pathStr);
|
|
73
|
-
// Step 2: Unicode NFC normalization
|
|
74
|
-
const nfc = decoded.normalize("NFC");
|
|
75
|
-
// Step 3: Replace backslashes with forward slashes
|
|
76
|
-
const forwardSlashed = nfc.replace(/\\/g, "/");
|
|
77
|
-
// Step 4: Removal of null bytes and control characters
|
|
78
|
-
const sanitized = UriNormalizer.stripControlCharacters(forwardSlashed);
|
|
79
|
-
// Step 5: Collapse multiple slashes (e.g., `///` → `/`)
|
|
80
|
-
const collapsed = sanitized.replace(/\/+/g, "/");
|
|
81
|
-
// Memorize trailing slash before resolution (it will be lost during split)
|
|
82
|
-
const hasTrailingSlash = collapsed.endsWith("/") && collapsed.length > 1;
|
|
83
|
-
// Step 6: Resolve `.` and `..` segments
|
|
84
|
-
const resolved = UriNormalizer.resolveSegments(collapsed);
|
|
85
|
-
// Step 7: Restore trailing slash
|
|
86
|
-
return hasTrailingSlash ? resolved + "/" : resolved;
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Executes a regex test with a strict timeout to prevent ReDoS
|
|
90
|
-
* (Regular Expression Denial of Service) attacks.
|
|
91
|
-
*
|
|
92
|
-
* ### Protection Strategy
|
|
93
|
-
* - Short strings (< {@link REGEX_VM_LENGTH_THRESHOLD} characters) are
|
|
94
|
-
* tested directly for performance, but the threshold has been lowered to
|
|
95
|
-
* 20 to cover catastrophic patterns on short repetitions.
|
|
96
|
-
* - Beyond the threshold, the regex is executed in an isolated Node.js VM
|
|
97
|
-
* context with an adaptive timeout calculated by {@link computeRegexTimeout}.
|
|
98
|
-
* - In the event of a timeout or VM error, the method returns `false` **and**
|
|
99
|
-
* throws a typed error to distinguish a real ReDoS from a false positive.
|
|
100
|
-
*
|
|
101
|
-
* ### Error Differentiation
|
|
102
|
-
* - `UriNormalizerRegexTimeoutError`: timeout reached → probable ReDoS.
|
|
103
|
-
* - Any other internal exception is propagated as-is to avoid hiding
|
|
104
|
-
* caller layer bugs.
|
|
105
|
-
*
|
|
106
|
-
* @param {RegExp} pattern - The regular expression to evaluate.
|
|
107
|
-
* @param {string} str - The string to test against.
|
|
108
|
-
* @param {number} [timeoutMs] - Base timeout in ms (default: {@link REGEX_BASE_TIMEOUT_MS}).
|
|
109
|
-
* Automatically increased based on `str` length.
|
|
110
|
-
* @returns {boolean} `true` if the regex matches, `false` otherwise or on timeout.
|
|
111
|
-
* @throws {TypeError} If `pattern` is not a RegExp instance.
|
|
112
|
-
* @throws {UriNormalizerRegexTimeoutError} If the VM timeout is reached (probable ReDoS).
|
|
113
|
-
*
|
|
114
|
-
* @example
|
|
115
|
-
* ```ts
|
|
116
|
-
* // Basic usage
|
|
117
|
-
* UriNormalizer.safeRegexCheck(/^[a-z]+$/, "hello"); // true
|
|
118
|
-
* UriNormalizer.safeRegexCheck(/^[a-z]+$/, "Hello"); // false
|
|
119
|
-
*
|
|
120
|
-
* // Potentially catastrophic pattern on long input
|
|
121
|
-
* try {
|
|
122
|
-
* UriNormalizer.safeRegexCheck(/(a+)+$/, "a".repeat(5000) + "!");
|
|
123
|
-
* } catch (e) {
|
|
124
|
-
* if (e instanceof UriNormalizerRegexTimeoutError) {
|
|
125
|
-
* console.warn("ReDoS blocked: ", e.message);
|
|
126
|
-
* }
|
|
127
|
-
* }
|
|
128
|
-
* ```
|
|
129
|
-
*/
|
|
130
|
-
static safeRegexCheck(pattern, str, timeoutMs = UriNormalizer.REGEX_BASE_TIMEOUT_MS) {
|
|
131
|
-
// Strict pattern validation for a clear error message
|
|
132
|
-
if (!(pattern instanceof RegExp)) {
|
|
133
|
-
throw new TypeError(`UriNormalizer.safeRegexCheck: "pattern" must be an instance of RegExp, received: ${typeof pattern}`);
|
|
134
|
-
}
|
|
135
|
-
// Fast path for very short strings (negligible ReDoS risk)
|
|
136
|
-
if (str.length < UriNormalizer.REGEX_VM_LENGTH_THRESHOLD) {
|
|
137
|
-
return pattern.test(str);
|
|
138
|
-
}
|
|
139
|
-
// Calculate adaptive timeout
|
|
140
|
-
const effectiveTimeout = UriNormalizer.computeRegexTimeout(str.length, timeoutMs);
|
|
141
|
-
try {
|
|
142
|
-
const sandbox = { result: false, pattern, str };
|
|
143
|
-
const context = vm.createContext(sandbox);
|
|
144
|
-
vm.runInContext("result = pattern.test(str)", context, {
|
|
145
|
-
timeout: effectiveTimeout,
|
|
146
|
-
});
|
|
147
|
-
return sandbox.result;
|
|
148
|
-
}
|
|
149
|
-
catch (e) {
|
|
150
|
-
// Distinguish a VM timeout from an unexpected error
|
|
151
|
-
if (UriNormalizer.isVmTimeoutError(e)) {
|
|
152
|
-
throw new UriNormalizerRegexTimeoutError(`Regex exceeded timeout (${effectiveTimeout}ms) on an input of ${str.length} characters. Possible ReDoS.`, effectiveTimeout, str.length);
|
|
153
|
-
}
|
|
154
|
-
// Propagate any other VM error (e.g., internal syntax error)
|
|
155
|
-
throw e;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
159
|
-
// Private Methods — URI Decoding
|
|
160
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
161
|
-
/**
|
|
162
|
-
* Iteratively decodes a URI path until it is stable (idempotent),
|
|
163
|
-
* neutralizing double-encodings and cascading encodings.
|
|
164
|
-
*
|
|
165
|
-
* **Example of bypass without this protection:**
|
|
166
|
-
* ```
|
|
167
|
-
* %2520 → (1st decode) %20 → (2nd decode) " "
|
|
168
|
-
* %252E%252E → %2E%2E → .. ← hidden traversal
|
|
169
|
-
* ```
|
|
170
|
-
*
|
|
171
|
-
* The loop is bounded to {@link MAX_DECODE_ITERATIONS} to prevent any
|
|
172
|
-
* infinite loop on pathological synthetic inputs. If the limit is reached,
|
|
173
|
-
* the last stable state is returned without throwing an exception.
|
|
174
|
-
*
|
|
175
|
-
* @param {string} raw - The raw string, potentially multi-encoded.
|
|
176
|
-
* @returns {string} The fully decoded string.
|
|
177
|
-
*
|
|
178
|
-
* @private
|
|
179
|
-
*/
|
|
180
|
-
static iterativeDecode(raw) {
|
|
181
|
-
let current = raw;
|
|
182
|
-
for (let i = 0; i < UriNormalizer.MAX_DECODE_ITERATIONS; i++) {
|
|
183
|
-
let next;
|
|
184
|
-
try {
|
|
185
|
-
next = decodeURIComponent(current);
|
|
186
|
-
}
|
|
187
|
-
catch {
|
|
188
|
-
// Malformed URI (e.g., `%GG`): abort and keep previous state
|
|
189
|
-
break;
|
|
190
|
-
}
|
|
191
|
-
if (next === current) {
|
|
192
|
-
// Idempotence reached: decoding is stable
|
|
193
|
-
break;
|
|
194
|
-
}
|
|
195
|
-
current = next;
|
|
196
|
-
}
|
|
197
|
-
return current;
|
|
198
|
-
}
|
|
199
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
200
|
-
// Private Methods — String Sanitization
|
|
201
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
202
|
-
/**
|
|
203
|
-
* Strips all ASCII and Unicode control characters from a string.
|
|
204
|
-
*
|
|
205
|
-
* The removed ranges are:
|
|
206
|
-
* - U+0000–U+001F: C0 control characters (including null byte, tab, LF, CR...)
|
|
207
|
-
* - U+007F : DEL
|
|
208
|
-
* - U+0080–U+009F: C1 control characters
|
|
209
|
-
*
|
|
210
|
-
* These characters can be exploited to bypass filters relying on naive
|
|
211
|
-
* string comparisons or to cause unexpected behavior in downstream parsers
|
|
212
|
-
* (e.g., HTTP servers, file systems).
|
|
213
|
-
*
|
|
214
|
-
* @param {string} str - The string to sanitize.
|
|
215
|
-
* @returns {string} The string without control characters.
|
|
216
|
-
*
|
|
217
|
-
* @private
|
|
218
|
-
*/
|
|
219
|
-
static stripControlCharacters(str) {
|
|
220
|
-
// eslint-disable-next-line no-control-regex
|
|
221
|
-
return str.replace(/[\u0000-\u001F\u007F-\u009F]/g, "");
|
|
222
|
-
}
|
|
223
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
224
|
-
// Private Methods — Segment Resolution
|
|
225
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
226
|
-
/**
|
|
227
|
-
* Resolves `.` (current directory) and `..` (parent directory) segments
|
|
228
|
-
* from a normalized path (without double-slashes or residual encodings).
|
|
229
|
-
*
|
|
230
|
-
* The stack can never go below the root: a `..` at the head of the path
|
|
231
|
-
* is silently ignored, preventing any underflow to `../`.
|
|
232
|
-
*
|
|
233
|
-
* @param {string} path - The pre-normalized path (consolidated slashes, decoded).
|
|
234
|
-
* @returns {string} The path with all `.` and `..` segments resolved,
|
|
235
|
-
* always prefixed by `/`.
|
|
236
|
-
*
|
|
237
|
-
* @example
|
|
238
|
-
* ```ts
|
|
239
|
-
* // (private method — internal illustration)
|
|
240
|
-
* resolveSegments("/a/b/../../c") // "/c"
|
|
241
|
-
* resolveSegments("/../../../etc") // "/etc" ← no underflow
|
|
242
|
-
* resolveSegments("/a/./b") // "/a/b"
|
|
243
|
-
* ```
|
|
244
|
-
*
|
|
245
|
-
* @private
|
|
246
|
-
*/
|
|
247
|
-
static resolveSegments(path) {
|
|
248
|
-
const parts = path.split("/");
|
|
249
|
-
const stack = [];
|
|
250
|
-
for (const segment of parts) {
|
|
251
|
-
if (segment === "..") {
|
|
252
|
-
// Never exceed root (anti-underflow)
|
|
253
|
-
if (stack.length > 0) {
|
|
254
|
-
stack.pop();
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
else if (segment !== "." && segment !== "") {
|
|
258
|
-
stack.push(segment);
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
return "/" + stack.join("/");
|
|
262
|
-
}
|
|
263
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
264
|
-
// Private Methods — ReDoS / VM Utilities
|
|
265
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
266
|
-
/**
|
|
267
|
-
* Calculates an adaptive timeout for executing a regex in the VM sandbox,
|
|
268
|
-
* adding a delta proportional to the length of the string being tested.
|
|
269
|
-
*
|
|
270
|
-
* ### Formula
|
|
271
|
-
* ```
|
|
272
|
-
* timeout = min(baseMs + floor(length / 1000) * PER_1K, MAX_TIMEOUT)
|
|
273
|
-
* ```
|
|
274
|
-
*
|
|
275
|
-
* This avoids false positives on long legitimate inputs while maintaining
|
|
276
|
-
* a hard ceiling ({@link REGEX_MAX_TIMEOUT_MS}) to contain severe ReDoS.
|
|
277
|
-
*
|
|
278
|
-
* @param {number} length - Length of the tested string.
|
|
279
|
-
* @param {number} baseMs - Base timeout provided by the caller.
|
|
280
|
-
* @returns {number} The effective timeout in milliseconds.
|
|
281
|
-
*
|
|
282
|
-
* @private
|
|
283
|
-
*/
|
|
284
|
-
static computeRegexTimeout(length, baseMs) {
|
|
285
|
-
const delta = Math.floor(length / 1000) *
|
|
286
|
-
UriNormalizer.REGEX_TIMEOUT_PER_1K_CHARS;
|
|
287
|
-
return Math.min(baseMs + delta, UriNormalizer.REGEX_MAX_TIMEOUT_MS);
|
|
288
|
-
}
|
|
289
|
-
/**
|
|
290
|
-
* Determines whether an error thrown by `vm.runInContext` is a timeout
|
|
291
|
-
* overrun (i.e. a Node.js script interruption).
|
|
292
|
-
*
|
|
293
|
-
* Node.js does not provide a dedicated error class for this type of error.
|
|
294
|
-
* Detection relies on the `ERR_SCRIPT_EXECUTION_TIMEOUT` error code and/or
|
|
295
|
-
* the error message (`"Script execution timed out"`), which are stable since Node 10.
|
|
296
|
-
*
|
|
297
|
-
* @param {unknown} error - The exception to inspect.
|
|
298
|
-
* @returns {boolean} `true` if the error is a VM timeout, `false` otherwise.
|
|
299
|
-
*
|
|
300
|
-
* @private
|
|
301
|
-
*/
|
|
302
|
-
static isVmTimeoutError(error) {
|
|
303
|
-
if (!(error instanceof Error))
|
|
304
|
-
return false;
|
|
305
|
-
const nodeError = error;
|
|
306
|
-
if (nodeError.code === "ERR_SCRIPT_EXECUTION_TIMEOUT")
|
|
307
|
-
return true;
|
|
308
|
-
// Fallback to the message for older Node versions
|
|
309
|
-
return error.message.toLowerCase().includes("timed out");
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
313
|
-
// Private Constants
|
|
314
|
-
// ─────────────────────────────────────────────────────────────────────────
|
|
315
|
-
/**
|
|
316
|
-
* Maximum number of URI decoding iterations to stop infinite loops
|
|
317
|
-
* on pathological inputs (e.g., synthetic infinite encodings).
|
|
318
|
-
*/
|
|
319
|
-
UriNormalizer.MAX_DECODE_ITERATIONS = 10;
|
|
320
|
-
/**
|
|
321
|
-
* Minimum length (inclusive) from which regex execution is deferred
|
|
322
|
-
* to an isolated VM context with a timeout, regardless of the apparent
|
|
323
|
-
* complexity of the pattern.
|
|
324
|
-
*
|
|
325
|
-
* Lowered to 20 chars to cover catastrophic patterns on short
|
|
326
|
-
* repetitive inputs (e.g., `(a+)+` tested on `"aaaaaaaaaaaaaaaab"`).
|
|
327
|
-
*/
|
|
328
|
-
UriNormalizer.REGEX_VM_LENGTH_THRESHOLD = 20;
|
|
329
|
-
/**
|
|
330
|
-
* Base VM timeout in milliseconds. It is proportionally increased
|
|
331
|
-
* according to the string length to avoid false positives on long
|
|
332
|
-
* legitimate inputs while keeping a hard limit on ReDoS.
|
|
333
|
-
*
|
|
334
|
-
* @see {@link UriNormalizer.computeRegexTimeout}
|
|
335
|
-
*/
|
|
336
|
-
UriNormalizer.REGEX_BASE_TIMEOUT_MS = 50;
|
|
337
|
-
/**
|
|
338
|
-
* Multiplicative factor (ms per 1,000 characters) added to the base
|
|
339
|
-
* timeout for long strings. This prevents false positives on large
|
|
340
|
-
* legitimate inputs.
|
|
341
|
-
*/
|
|
342
|
-
UriNormalizer.REGEX_TIMEOUT_PER_1K_CHARS = 5;
|
|
343
|
-
/**
|
|
344
|
-
* Absolute ceiling for the VM timeout in milliseconds to prevent
|
|
345
|
-
* a massive input from rendering the timeout useless.
|
|
346
|
-
*/
|
|
347
|
-
UriNormalizer.REGEX_MAX_TIMEOUT_MS = 200;
|
|
348
|
-
// ─────────────────────────────────────────────────────────────────────────────
|
|
349
|
-
// Custom Errors
|
|
350
|
-
// ─────────────────────────────────────────────────────────────────────────────
|
|
351
|
-
/**
|
|
352
|
-
* Error thrown by {@link UriNormalizer.safeRegexCheck} when regex execution
|
|
353
|
-
* in the VM context exceeds the allocated timeout.
|
|
354
|
-
*
|
|
355
|
-
* This error allows the calling layer to distinguish a true ReDoS block
|
|
356
|
-
* from a legitimate `false` return (normal non-match), and to apply an
|
|
357
|
-
* appropriate security policy (log, alert, block the request...).
|
|
358
|
-
*
|
|
359
|
-
* @extends {Error}
|
|
360
|
-
*
|
|
361
|
-
* @example
|
|
362
|
-
* ```ts
|
|
363
|
-
* try {
|
|
364
|
-
* UriNormalizer.safeRegexCheck(/(a+)+$/, "a".repeat(10_000) + "!");
|
|
365
|
-
* } catch (e) {
|
|
366
|
-
* if (e instanceof UriNormalizerRegexTimeoutError) {
|
|
367
|
-
* console.error(`ReDoS detected (timeout=${e.timeoutMs}ms, len=${e.inputLength})`);
|
|
368
|
-
* }
|
|
369
|
-
* }
|
|
370
|
-
* ```
|
|
371
|
-
*/
|
|
372
|
-
export class UriNormalizerRegexTimeoutError extends Error {
|
|
373
|
-
/**
|
|
374
|
-
* @param {string} message - Descriptive error message.
|
|
375
|
-
* @param {number} timeoutMs - Exceeded effective timeout.
|
|
376
|
-
* @param {number} inputLength - Length of the tested input.
|
|
377
|
-
*/
|
|
378
|
-
constructor(message, timeoutMs, inputLength) {
|
|
379
|
-
super(message);
|
|
380
|
-
/** Class name for reliable instanceof and logging. */
|
|
381
|
-
this.name = "UriNormalizerRegexTimeoutError";
|
|
382
|
-
this.timeoutMs = timeoutMs;
|
|
383
|
-
this.inputLength = inputLength;
|
|
384
|
-
// Proper prototype chain restoration in TypeScript/Babel
|
|
385
|
-
Object.setPrototypeOf(this, new.target.prototype);
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
//# sourceMappingURL=UriNormalizer.js.map
|