UNPKG

koatty_serve

Version:

Provide http1/2/3, websocket, gRPC server for Koatty.

1 lines 808 kB
{"version":3,"sources":["../src/utils/helper.ts","../src/utils/logger.ts","../src/utils/timer-manager.ts","../src/utils/ring_buffer.ts","../src/pools/pool.ts","../src/server/base.ts","../src/utils/terminus-manager.ts","../src/utils/terminus.ts","../src/utils/cert-loader.ts","../src/config/pool.ts","../src/config/config.ts","../src/pools/http.ts","../src/pools/http2.ts","../src/pools/ws.ts","../src/pools/grpc.ts","../src/pools/factory.ts","../src/server/grpc.ts","../src/middleware/healthCheck.ts","../src/server/http.ts","../src/server/http2.ts","../src/pools/http3.ts","../src/utils/http3/qpack.ts","../src/utils/http3/frames.ts","../src/adapters/http3-matrixai.ts","../src/server/http3.ts","../src/pools/https.ts","../src/server/https.ts","../src/server/ws.ts","../src/utils/validator.ts","../src/server/serve.ts","../src/pools/pool-metrics-integration.ts","../src/ServeComponent.ts","../src/middleware/rateLimit.ts"],"names":["deepEqual","obj1","obj2","visited","WeakSet","has","add","isArray1","Array","isArray","isArray2","keys1","Object","keys","keys2","length","result","every","key","delete","generateShortId","randomUUID","replace","substring","bytes","randomBytes","toString","generateTraceId","generateServerId","protocol","StructuredLogger","instance","globalContext","getInstance","setGlobalContext","context","getGlobalContext","clearGlobalContext","formatMessage","message","data","mergedContext","parts","moduleUpper","module","toUpperCase","protocolUpper","push","connectionId","requestId","traceId","finalMessage","join","contextKeys","additionalData","entries","filter","includes","reduce","acc","value","JSON","stringify","debug","formattedMessage","Logger","Debug","info","Info","warn","Warn","error","errorData","Error","name","stack","child","childLogger","startPerformanceMeasurement","label","startTime","performance","now","memoryUsage","process","endPerformanceMeasurement","metrics","endTime","duration","endMemoryUsage","memoryDelta","rss","heapTotal","heapUsed","external","toFixed","measureAsync","operation","measureSync","createLogger","logger","TimerFrequency","TimerManager","timers","Map","timerIdCounter","optimizerConfig","taskQueues","consolidatedTimers","performanceMetrics","totalTasks","executedTasks","averageExecutionTime","lastOptimization","Date","config","enableConsolidation","enableAdaptiveFrequency","maxTimersPerFrequency","loadThreshold","values","forEach","frequency","set","supportedFrequencies","f","addTimer","callback","interval","addOptimizedTimer","priority","determinePriority","extractProtocol","task","taskId","Math","random","substr","optimizedTask","id","lastExecuted","executionCount","selectOptimalFrequency","taskQueue","get","optimizeTimers","createPhysicalTimer","timerId","wrappedCallback","String","timer","setInterval","unref","timerInfo","createdAt","clearTimer","timerIdOrName","_frequency","tasks","taskIndex","findIndex","clearInterval","clearAllTimers","logicalTimerCount","physicalTimerCount","size","logicalTimers","physicalTimers","clear","clearedLogicalTimers","clearedPhysicalTimers","getActiveTimerCount","getTimerNames","names","map","getTimerInfo","getTimerStats","uptime","totalTimers","hasTimer","some","protocolMatch","match","toLowerCase","undefined","frequencies","freq","clearConsolidatedTimers","createConsolidatedTimer","timerName","executeTaskBatch","executedCount","sortedTasks","sort","a","b","priorityOrder","high","medium","low","taskStartTime","shouldExecuteTask","taskExecutionTime","updateAverageExecutionTime","taskName","intervalRatio","timeSinceLastExecution","executionTime","alpha","getOptimizationStats","tasksByFrequency","tasksByPriority","consolidation","activeTimers","fromEntries","createOptimizedInstance","demonstrateOptimization","traditionalIntervals","optimizedFrequencies","reduction","before","timerCount","intervals","after","estimatedReduction","destroy","activeConsolidatedTimers","RingBuffer","buffer","head","tail","count","capacity","item","toArray","index","i","toSortedArray","compareFn","isEmpty","isFull","actualIndex","peek","peekLast","lastIndex","getPercentile","percentile","sorted","floor","min","getAverage","sum","Number","predicate","initialValue","accumulator","DynamicRingBuffer","currentCapacity","initialCapacity","maxCapacity","minCapacity","autoResize","resizeThreshold","shrinkThreshold","resizeFactor","lastResizeTime","resizeCooldown","resizeCount","options","max","shouldResizeUp","resizeUp","shouldResizeDown","resizeDown","timeSinceLastResize","newCapacity","oldCapacity","itemCount","newBuffer","initialSize","maxSize","minSize","utilization","resizeUpManual","factor","oldFactor","resizeDownManual","getStats","ConnectionPoolStatus","ConnectionPoolEvent","ConnectionPoolManager","eventListeners","eventListenerErrors","connections","connectionMetadata","waitingQueue","currentHealth","latencyBuffer","errorWindow","lastMetricsUpdate","healthCheckInterval","cleanupInterval","validateAndNormalizeConfig","initializeMetrics","initializeHealth","startPeriodicTasks","activeConnections","totalConnections","connectionsPerSecond","averageLatency","errorRate","poolConfig","health","throughput","latency","p50","p95","p99","cpuUsage","status","utilizationRatio","maxConnections","rejectedConnections","averageResponseTime","lastUpdated","normalized","connectionTimeout","keepAliveTimeout","requestTimeout","headersTimeout","requestConnection","timeout","canAcceptConnection","emitEvent","currentConnections","getActiveConnectionCount","connection","success","waitTime","availableConnection","getAvailableConnection","newConnection","createNewConnection","addConnection","metadata","Promise","resolve","reject","timeoutHandle","setTimeout","splice","queueItem","clearTimeout","timestamp","priorityWeight","normal","newPriority","insertIndex","existingPriority","recordConnectionEvent","releaseConnection","findConnectionId","removeConnection","markConnectionAvailable","processWaitingQueue","generateConnectionId","validateConnection","lastUsed","available","reason","cleanupConnection","closeAllConnections","closePromises","catch","race","all","_","createProtocolConnection","updateHealthStatus","Infinity","oldStatus","newStatus","getHealth","getMetrics","updatePerformanceMetrics","getConfig","updateConfig","newConfig","oldConfig","updatedConfig","assign","on","event","listener","Set","off","listeners","conn","waitingRequest","shift","timeDiff","calculateErrorRate","cleanupExpiredConnections","connectionsToRemove","listenersToRemove","errorCount","totalErrors","_metadata","recordLatency","warmup","warmupConfig","enabled","initialConnections","retryCount","created","failed","errors","targetCount","concurrencyLimit","batches","ceil","batch","batchSize","batchPromises","createWarmupConnection","finalConnectionCount","type","lastError","attempt","connectionResult","maxAttempts","pow","getConnection","registerConnection","setupProtocolSpecificHandlers","BaseServer","server","listenCallback","configVersion","serverId","shutdownTimeout","drainDelay","connectionPool","timerManager","isShuttingDown","app","ext","actualModule","_underlyingProtocol","hostname","port","initializeServer","initializeConnectionPool","createProtocolServer","configureServerOptions","setupConnectionPoolEventListeners","setupPeriodicCleanup","performProtocolSpecificInitialization","mergedConfig","changedKeys","detectConfigurationChanges","extractRelevantConfig","analysis","analyzeConfigChanges","requiresRestart","handleRestartRequiredChanges","canApplyRuntime","handleRuntimeChanges","gracefulShutdown","completedSteps","failedSteps","executeWithTimeout","stopAcceptingNewConnections","stepTimeout","step","waitTimeout","waitForConnectionCompletion","forceCloseRemainingConnections","stopMonitoringAndCleanup","totalTime","fn","stepName","then","POOL_LIMIT_REACHED","HEALTH_STATUS_CHANGED","CONNECTION_ERROR","CONNECTION_TIMEOUT","CONNECTION_REMOVED","shutdownResult","Start","onRuntimeConfigChange","finalStats","getConnectionStats","poolMetrics","getConnectionPoolHealth","getConnectionPoolMetrics","Stop","err","forceShutdown","forcedShutdown","asyncEvent","eventName","func","Helper","isFunction","removeAllListeners","triggerListeners","target","TerminusManager","signalsRegistered","exitOnShutdown","registeredServerCount","signalHandlers","setExitOnShutdown","registerServer","_server","setupSignalHandlers","signals","signal","handler","shutdownAll","Fatal","exit","timeoutPromise","resetInstance","removeListener","getServerCount","CreateTerminus","_options","sanitizeCertPath","certPath","segments","split","isCertificateContent","input","pemMarkers","marker","loadCertificate","keyOrPath","sanitizedPath","existsSync","content","readFileSync","path","PoolConfigHelper","createHttpConfig","createHttpsConfig","createWebSocketConfig","protocolSpecific","pingInterval","pongTimeout","heartbeatInterval","createHttp2Config","maxSessionMemory","maxHeaderListSize","keepAliveTime","createHttp3Config","maxIdleTimeout","maxUdpPayloadSize","initialMaxStreamsBidi","initialMaxStreamsUni","createGrpcConfig","callTimeout","maxReceiveMessageLength","maxSendMessageLength","createBaseConfig","validateConfig","valid","mergeConfigs","base","override","createDefaultConfig","getProtocolSpecificKeys","ConfigHelper","configureSSLForProtocol","protocolType","secureProtocols","ssl","keyFile","cert","crtFile","keyPath","crtPath","fs","migrateSSLFromExt","trace","defaultPoolConfig","sslConfig","http2","channelOptions","http3","quic","wsOptions","HttpConnectionPoolManager","keepAliveAgent","Socket","destroyed","readable","writable","isConnectionHealthy","isHealthy","idleTimeout","isIdle","addHttpConnection","remoteAddress","remotePort","localAddress","localPort","encrypted","TLSSocket","requestCount","bytesSent","bytesReceived","handleRequestComplete","maxRequests","stats","availableConnections","totalRequests","totalBytesSent","totalBytesReceived","httpsConnections","_connection","httpConnections","averageRequestsPerConnection","setKeepAliveTimeout","getConnectionDetails","details","httpMetadata","age","idle","Http2ConnectionPoolManager","activeStreams","startHttp2MonitoringTasks","session","closed","state","effectiveLocalWindowSize","sessionId","findHttp2SessionId","streams","stream","close","http2Constants","NGHTTP2_CANCEL","http2Metadata","isGoingAway","maxConcurrentStreams","isSessionHealthy","pingTimeout","lastPingTime","lastPingAck","addHttp2Session","socket","settings","localSettings","totalStreams","initialWindowSize","streamErrors","setupSessionEventHandlers","errorCode","lastStreamID","opaqueData","headers","handleNewStream","_payload","startSessionPing","_headers","streamId","totalStreamErrors","pingTimer","ping","_duration","pingAllSessions","performHealthCheck","unhealthySessions","_sessionId","activeSessions","availableSessions","totalActiveStreams","goingAwaySessions","_session","averageStreamsPerSession","getSessionDetails","gracefulCloseSession","goaway","Buffer","from","checkInterval","WebSocketConnectionPoolManager","startHeartbeat","readyState","WebSocket","OPEN","CONNECTING","terminate","url","protocols","once","isAlive","lastPongTime","isOpen","pong","addWebSocketConnection","request","userAgent","pingAllConnections","cleanupDeadConnections","cleanupStaleConnections","staleTimeout","wsMetadata","healthyConnections","findWebSocketConnectionId","GrpcConnectionPoolManager","callMetrics","totalUnarycalls","totalStreamingCalls","averageCallDuration","peer","cancelled","cleanupError","findGrpcConnectionId","maxIdleTime","addGrpcConnection","callMetadata","createConnectionId","deadline","callCount","streamCount","setupConnectionEventHandlers","getTime","handleCallComplete","lastErrorTime","updateCallMetrics","isUnaryCall","handleStreamResponse","dataSize","isBuffer","cleanupExpiredGrpcConnections","typedMetadata","baseStats","totalCalls","grpcSpecific","getGrpcMetrics","ConnectionPoolFactory","instances","registered","stableStringify","obj","sortedKeys","k","register","implementation","create","Implementation","getOrCreate","protocolPrefix","toDestroy","startsWith","destroyAll","getAllMetrics","getRegisteredProtocols","isProtocolRegistered","getInstanceCount","clearInstanceCache","GrpcServer","opts","Server","sslEnabled","criticalKeys","restartReason","hasSSLConfigChanged","hasChannelOptionsChanged","applyConfigChanges","grpcConfig","oldLimit","newLimit","tryShutdown","note","elapsed","remainingConnections","forcedConnections","performProtocolHealthChecks","checks","HealthStatus","HEALTHY","poolHealth","DEGRADED","OVERLOADED","certFile","caFile","ca","clientCertRequired","collectProtocolMetrics","configuration","oldSSL","newSSL","oldPool","newPool","createSSLCredentials","hasSSLConfig","ServerCredentials","createInsecure","rootCerts","keyCertPairs","caContent","hasKey","hasCert","keyContent","certContent","privateKey","certChain","private_key","cert_chain","checkClientCertificate","createSsl","finalCallback","credentials","bindAddress","bindAsync","errorTraceId","emit","runtimeErrorTraceId","urlProtocol","serverUrl","address","actualPort","connectionPoolEnabled","startConnectionMonitoring","RegisterService","impl","serviceName","service","methods","wrappedImplementation","methodName","_handler","call","methodTraceId","getPeer","callbackCalled","timeoutId","response","code","errorMessage","grpcError","hasResponse","responseInfo","responseType","responseKeys","timeoutMs","grpcMiddlewareHandler","addService","getStatus","getNativeServer","HealthCheckMiddleware","readiness","detailed","memoryThresholdMB","middleware","req","res","next","handleHealthCheck","handleReadinessCheck","getUptime","toISOString","memory","cpu","sendJsonResponse","checkMemoryHealth","allChecksPass","check","heapUsedMB","statusCode","writeHead","end","createHealthCheckMiddleware","HttpServer","healthMiddleware","createServer","getHeaders","headersSent","configureConnectionPoolSettings","setupConnectionTracking","hasConnectionPoolChanged","httpConfig","listening","errorHandler","listen","underlyingProtocol","startConnectionPoolMonitoring","getHttpConnectionStats","Http2Server","http2Options","createHTTP2Options","createSecureServer","setupSessionHandling","sslMode","mode","allowHTTP1","http2Config","sslOptions","createSSLOptions","extConfig","createManualSSLOptions","createMutualTLSOptions","createAutoSSLOptions","caPath","passphrase","ciphers","honorCipherOrder","secureProtocol","manualOptions","requestCert","rejectUnauthorized","hasHTTP2ConfigChanged","http2Settings","oldHttp2","newHttp2","remainingSessions","forcedSessions","getHttp2Stats","getConnectionsStatus","current","Http3ConnectionPoolManager","startHttp3MonitoringTasks","findHttp3SessionId","http3Metadata","isClosing","rtt","addHttp3Session","packetsLost","congestionWindow","streamMetadata","direction","bidirectional","updateSessionStats","closingSessions","totalPacketsLost","avgRtt","averageRtt","packetLossRate","STATIC_TABLE","HUFFMAN_CODES","huffmanTree","buildHuffmanTree","nodes","symbol","left","right","sym","len","idx","bitPos","bit","nextIdx","huffmanDecode","tree","nodeIdx","byteIdx","byte","childIdx","cur","maxSteps","QPACKEncoder","dynamicTable","maxTableCapacity","tableCapacity","encode","encodedHeaders","lowerName","staticIndex","findInStaticTable","encodeIndexed","staticNameIndex","findNameInStaticTable","encodeLiteralWithNameRef","encodeLiteralWithLiteralName","concat","_isDynamic","prefix","encodeInteger","nameIndex","indexBytes","valueBytes","encodeString","prefixByte","nameBytes","prefixBits","maxPrefix","str","useHuffman","strBuffer","lengthPrefix","lengthBytes","QPACKDecoder","decode","encoded","offset","firstByte","bytesRead","decodeInteger","entry","getTableEntry","headerValue","decodeString","nameEntry","m","totalBytesRead","stringBuffer","slice","decodedBuffer","dynamicIndex","Http3FrameParser","parse","frames","typeResult","decodeVarint","frameType","typeBytesRead","lengthResult","frameLength","lengthBytesRead","payload","frame","parseFrame","remaining","parseDataFrame","parseHeadersFrame","parseSettingsFrame","parseGoAwayFrame","idResult","idBytesRead","valueResult","valueBytesRead","streamIdResult","BigInt","Http3FrameSerializer","serializeDataFrame","encodeVarint","serializeHeadersFrame","serializeSettingsFrame","settingsBuffers","serializeGoAwayFrame","streamIdBuffer","Http3MessageHandler","extractRequest","qpackDecoder","headersFrame","dataFrames","decodedHeaders","method","body","createResponse","qpackEncoder","responseHeaders","v","matrixaiQuic","QUICServer","moduleLoadPromise","moduleLoaded","loadMatrixaiQuic","Http3ServerAdapter","EventEmitter","quicServer","qpackMaxTableCapacity","library","isAvailable","cryptoKeyBuffer","alloc","crypto","getRandomValues","cryptoKey","byteOffset","byteLength","serverCrypto","ops","sign","hmac","createHmac","update","digest","verify","sig","expected","equals","verifyPeer","maxConcurrentBidiStreams","maxConcurrentUniStreams","setupConnectionHandlers","start","host","addEventListener","detail","connId","streamEvent","handleStream","chunks","reader","getReader","done","read","releaseLock","requestData","extractedRequest","createHttpRequest","createHttp3Response","sendErrorResponse","httpVersion","httpVersionMajor","httpVersionMinor","rawBody","complete","_request","self","statusMessage","finished","_dataChunks","setHeader","getHeader","write","chunk","encoding","nextTick","sendHttp3Response","frameBuffers","writer","getWriter","frameBuffer","Uint8Array","bodyLength","framesCount","stop","family","isListening","getHttp3Version","version","VERSION","Http3Server","http3Config","resolveFilePath","initialMaxData","initialMaxStreamDataBidiLocal","initialMaxStreamDataBidiRemote","initialMaxStreamDataUni","qpackBlockedStreams","setupHttp3Handlers","setupStreamHandling","alpnProtocols","hasQUICConfigChanged","hasHTTP3ConfigChanged","quicSettings","http3Settings","oldQuic","newQuic","oldHttp3","newHttp3","http3Version","startCallback","transport","getHttp3Stats","HttpsConnectionPoolManager","securityMetrics","totalHandshakes","successfulHandshakes","failedHandshakes","averageHandshakeTime","startSecurityMonitoring","findHttpsConnectionId","authorized","addHttpsConnection","handshakeStart","handshakeDuration","updateSecurityMetrics","cipher","getCipher","serverName","servername","certificate","getPeerCertificate","securityScore","calculateSecurityScore","score","getProtocol","valid_to","expiry","daysToExpiry","total","active","unauthorized","averageSecurityScore","totalSecurityScore","_id","security","getSecurityMetrics","connectionSecurityScores","HttpsServer","responseTime","recordRequest","setupConnectionHandling","handshakeTimeout","sessionTimeout","SNICallback","sessionIdContext","ticketKeys","ALPNProtocols","tlsSocket","_success","_responseTime","httpsConfig","mutualTLS","WsServer","httpServer","upgradeHandler","clientErrorHandler","createHttpServer","ensureUpgradeHandlersAreBound","noServer","WebSocketServer","setupUpgradeHandling","isSecure","opt","httpsCreateServer","handleUpgrade","ws","onConnection","setupWebSocketEventHandlers","origin","dataType","pseudoReq","_socket","websocket","wsData","wsConnectionId","pseudoRes","responseData","sendData","send","wsMiddlewareHandler","sendError","_code","_reason","wsConfig","getWebSocketConnectionStats","connectionStatus","ConfigValidator","validate","validateHostname","validatePort","validateProtocol","validateSSLConfig","validateGrpcConfig","validateConnectionPoolConfig","field","ipRegex","domainRegex","isLocalhost","test","part","isInteger","getuid","commonPorts","_protocol","protoFile","formatErrors","messages","msg","validator","SingleProtocolServer","serverInstance","initializeServerInstance","hasServerInstance","routerExt","schemaFile","graphql","grpc","createServerInstance","hasRegisterService","getHealthStatus","utilizationRate","overallStatus","pool","healthCheckMiddleware","ctx","serverMap","wss","https","KoattyHttpsServer","http","KoattyHttpServer","ServerConstructor","actualProtocol","_actualProtocol","NewServe","parsePort","envPort","parsed","parseInt","env","IP","PORT","APP_PORT","registerConnectionPoolMetrics","setConnectionPoolMetricsCallback","unregisterConnectionPoolMetrics","ServeComponent","events","initServer","serveOpts","Log","servers","basePort","ports","portMap","assignedPort","toNumber","existingProtocol","newPort","proto","protoServerOpts","define","singleProto","singleServerOpts","stopServer","s","loadServe","appStop","scope","description","requires","defaultOptions","windowMs","keyGenerator","skipSuccessfulRequests","createRateLimitMiddleware","store","cleanupTimer","resetTime","resetTimeSeconds"],"mappings":"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