@gravito/core 2.0.6 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/PlanetCore.d.ts +6 -0
- package/dist/events/CircuitBreaker.d.ts +12 -0
- package/dist/exceptions/AuthException.d.ts +10 -0
- package/dist/exceptions/AuthenticationException.d.ts +2 -2
- package/dist/exceptions/AuthorizationException.d.ts +2 -2
- package/dist/exceptions/CacheException.d.ts +9 -0
- package/dist/exceptions/CircularDependencyException.d.ts +2 -1
- package/dist/exceptions/ConfigurationException.d.ts +9 -0
- package/dist/exceptions/DatabaseException.d.ts +9 -0
- package/dist/exceptions/DomainException.d.ts +9 -0
- package/dist/exceptions/InfrastructureException.d.ts +17 -0
- package/dist/exceptions/QueueException.d.ts +9 -0
- package/dist/exceptions/StorageException.d.ts +9 -0
- package/dist/exceptions/StreamException.d.ts +9 -0
- package/dist/exceptions/SystemException.d.ts +9 -0
- package/dist/exceptions/ValidationException.d.ts +2 -2
- package/dist/exceptions/index.d.ts +10 -0
- package/dist/index.browser.js +54 -32
- package/dist/index.browser.js.map +9 -7
- package/dist/index.js +159 -41
- package/dist/index.js.map +21 -11
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/platform/node/globalThis.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/platform/node/index.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/platform/index.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/version.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/internal/semver.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/internal/global-utils.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/diag/types.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/api/diag.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/baggage/utils.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/context/context.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/metrics/Metric.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/api/context.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace/context-utils.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace/span_kind.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace/status.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/context-api.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/diag-api.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/api/metrics.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/metrics-api.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/api/propagation.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/propagation-api.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/api/trace.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace-api.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/index.js", "../src/compat/async-local-storage.ts", "../src/compat/crypto.ts", "../src/ffi/hash-fallback.ts", "../src/ffi/NativeHasher.ts", "../src/adapters/bun/types.ts", "../src/adapters/bun/RadixNode.ts", "../src/adapters/bun/RadixRouter.ts", "../src/engine/AOTRouter.ts", "../src/transpiler-utils.ts", "../src/engine/analyzer.ts", "../src/engine/constants.ts", "../src/Container/RequestScopeMetrics.ts", "../src/Container/RequestScopeManager.ts", "../src/engine/FastContext.ts", "../src/engine/MinimalContext.ts", "../src/engine/path.ts", "../src/engine/pool.ts", "../src/engine/Gravito.ts", "../src/adapters/bun/BunRequest.ts", "../src/adapters/bun/BunContext.ts", "../src/adapters/bun/BunWebSocketHandler.ts", "../src/adapters/bun/BunNativeAdapter.ts", "../src/adapters/GravitoEngineAdapter.ts", "../src/adapters/types.ts", "../src/Application.ts", "../src/runtime/adapter-bun.ts", "../src/runtime/detection.ts", "../src/runtime/adapter-deno.ts", "../src/runtime/adapter-node.ts", "../src/runtime/adapter-unknown.ts", "../src/runtime/archive.ts", "../src/runtime/compression.ts", "../src/runtime/markdown.ts", "../src/runtime/deep-equals.ts", "../src/runtime/escape.ts", "../src/runtime/index.ts", "../src/ConfigManager.ts", "../src/exceptions/CircularDependencyException.ts", "../src/Container.ts", "../src/Logger.ts", "../src/error-handling/RequestScopeErrorContext.ts", "../src/exceptions/
|
|
3
|
+
"sources": ["../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/platform/node/globalThis.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/platform/node/index.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/platform/index.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/version.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/internal/semver.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/internal/global-utils.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/diag/types.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/api/diag.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/baggage/utils.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/context/context.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/metrics/Metric.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/api/context.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace/context-utils.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace/span_kind.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace/status.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/context-api.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/diag-api.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/api/metrics.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/metrics-api.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/api/propagation.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/propagation-api.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/api/trace.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/trace-api.js", "../../../node_modules/.bun/@opentelemetry+api@1.9.0/node_modules/@opentelemetry/api/build/src/index.js", "../src/compat/async-local-storage.ts", "../src/compat/crypto.ts", "../src/ffi/hash-fallback.ts", "../src/ffi/NativeHasher.ts", "../src/adapters/bun/types.ts", "../src/adapters/bun/RadixNode.ts", "../src/adapters/bun/RadixRouter.ts", "../src/engine/AOTRouter.ts", "../src/transpiler-utils.ts", "../src/engine/analyzer.ts", "../src/engine/constants.ts", "../src/Container/RequestScopeMetrics.ts", "../src/Container/RequestScopeManager.ts", "../src/engine/FastContext.ts", "../src/engine/MinimalContext.ts", "../src/engine/path.ts", "../src/engine/pool.ts", "../src/engine/Gravito.ts", "../src/adapters/bun/BunRequest.ts", "../src/adapters/bun/BunContext.ts", "../src/adapters/bun/BunWebSocketHandler.ts", "../src/adapters/bun/BunNativeAdapter.ts", "../src/adapters/GravitoEngineAdapter.ts", "../src/adapters/types.ts", "../src/Application.ts", "../src/runtime/adapter-bun.ts", "../src/runtime/detection.ts", "../src/runtime/adapter-deno.ts", "../src/runtime/adapter-node.ts", "../src/runtime/adapter-unknown.ts", "../src/runtime/archive.ts", "../src/runtime/compression.ts", "../src/runtime/markdown.ts", "../src/runtime/deep-equals.ts", "../src/runtime/escape.ts", "../src/runtime/index.ts", "../src/ConfigManager.ts", "../src/exceptions/GravitoException.ts", "../src/exceptions/SystemException.ts", "../src/exceptions/CircularDependencyException.ts", "../src/Container.ts", "../src/Logger.ts", "../src/error-handling/RequestScopeErrorContext.ts", "../src/exceptions/HttpException.ts", "../src/exceptions/DomainException.ts", "../src/exceptions/ValidationException.ts", "../src/helpers/response.ts", "../src/ErrorHandler.ts", "../src/types/events.ts", "../src/EventManager.ts", "../src/events/DeadLetterQueue.ts", "../src/events/BackpressureManager.ts", "../src/events/PriorityEscalationManager.ts", "../src/events/queue-core.ts", "../src/events/CircuitBreaker.ts", "../src/events/task-executor.ts", "../src/events/EventPriorityQueue.ts", "../src/events/aggregation/types.ts", "../src/events/aggregation/AggregationWindow.ts", "../src/events/aggregation/DeduplicationManager.ts", "../src/events/aggregation/EventBatcher.ts", "../src/events/aggregation/EventAggregationManager.ts", "../src/events/EventOptions.ts", "../src/events/IdempotencyCache.ts", "../src/hooks/ActionManager.ts", "../src/hooks/AsyncDetector.ts", "../src/hooks/dlq-operations.ts", "../src/hooks/FilterManager.ts", "../src/hooks/MigrationWarner.ts", "../src/reliability/RetryPolicy.ts", "../src/reliability/DeadLetterQueueManager.ts", "../src/HookManager.ts", "../src/events/observability/EventMetrics.ts", "../src/events/observability/EventTracer.ts", "../src/events/observability/EventTracing.ts", "../src/events/observability/ObservableHookManager.ts", "../src/events/observability/OTelEventMetrics.ts", "../src/GlobalErrorHandlers.ts", "../src/observability/contracts.ts", "../src/helpers/data.ts", "../src/helpers/Arr.ts", "../src/helpers/errors.ts", "../src/helpers/Str.ts", "../src/helpers.ts", "../src/http/CookieJar.ts", "../src/exceptions/ModelNotFoundException.ts", "../src/Route.ts", "../src/router/ControllerDispatcher.ts", "../src/router/RequestValidator.ts", "../src/Router.ts", "../src/security/Encrypter.ts", "../src/security/Hasher.ts", "../src/PlanetCore.ts", "../src/CommandKernel.ts", "../src/cli/queue-commands.ts", "../src/events/FlowControlStrategy.ts", "../src/events/MessageQueueBridge.ts", "../src/events/RetryScheduler.ts", "../src/events/WorkerPoolMetrics.ts", "../src/events/WorkerPool.ts", "../src/observability/QueueDashboard.ts", "../src/exceptions/AuthenticationException.ts", "../src/exceptions/AuthException.ts", "../src/exceptions/AuthorizationException.ts", "../src/exceptions/InfrastructureException.ts", "../src/exceptions/CacheException.ts", "../src/exceptions/ConfigurationException.ts", "../src/exceptions/DatabaseException.ts", "../src/exceptions/QueueException.ts", "../src/exceptions/StorageException.ts", "../src/exceptions/StreamException.ts", "../src/ServiceProvider.ts", "../src/GravitoServer.ts", "../src/health/HealthProvider.ts", "../src/http/cookie.ts", "../src/RequestContext.ts", "../src/testing/TestResponse.ts", "../src/testing/HttpTester.ts", "../src/runtime-helpers.ts", "../src/binary/BinaryUtils.ts", "../src/index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._globalThis = void 0;\n/** only globals that common to node and browsers are allowed */\n// eslint-disable-next-line node/no-unsupported-features/es-builtins\nexports._globalThis = typeof globalThis === 'object' ? globalThis : global;\n//# sourceMappingURL=globalThis.js.map",
|
|
6
6
|
"\"use strict\";\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./globalThis\"), exports);\n//# sourceMappingURL=index.js.map",
|
|
@@ -86,13 +86,15 @@
|
|
|
86
86
|
"/**\n * Runtime HTML escape abstraction.\n *\n * Provides unified HTML escaping across Bun, Node.js, and Deno runtimes.\n * Bun uses the native C++ `Bun.escapeHTML()` for 10-100x better performance.\n * Node.js/Deno fall back to manual entity replacement.\n *\n * @module runtime/escape\n * @since 3.4.0\n */\n\nimport { getRuntimeKind } from './detection'\n\n/**\n * HTML escape function type.\n * @public\n */\nexport type EscapeHtmlFn = (value: string) => string\n\n/**\n * Creates a fallback HTML escape function using .replace() chains.\n *\n * Escapes 5 special characters: &, <, >, \", '\n * Each is replaced with its HTML entity equivalent.\n *\n * @returns HTML escape function\n * @internal\n */\nfunction createFallbackEscapeHtml(): EscapeHtmlFn {\n return (value: string): string => {\n if (!value) {\n return ''\n }\n return value\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n }\n}\n\n// ============ Singleton ============\n\nlet escapeHtmlFn: EscapeHtmlFn | null = null\n\n/**\n * Get the HTML escape function (auto-selects best implementation based on runtime).\n *\n * - Bun: Uses native C++ `Bun.escapeHTML()` (10-100x faster, SIMD accelerated)\n * - Node.js/Deno/Unknown: Uses .replace() chain fallback with same behavior\n *\n * @returns HTML escape function\n * @public\n *\n * @example\n * ```typescript\n * import { getEscapeHtml } from '@gravito/core'\n *\n * const escapeHtml = getEscapeHtml()\n * const safe = escapeHtml('<script>alert(\"xss\")</script>')\n * // '<script>alert("xss")</script>'\n * ```\n */\nexport function getEscapeHtml(): EscapeHtmlFn {\n if (escapeHtmlFn) {\n return escapeHtmlFn\n }\n\n const kind = getRuntimeKind()\n if (kind === 'bun' && typeof Bun !== 'undefined' && typeof Bun.escapeHTML === 'function') {\n escapeHtmlFn = (value: string): string => {\n if (!value) {\n return ''\n }\n return Bun.escapeHTML(value)\n }\n } else {\n escapeHtmlFn = createFallbackEscapeHtml()\n }\n\n return escapeHtmlFn\n}\n",
|
|
87
87
|
"/**\n * Runtime abstraction module.\n *\n * Provides unified APIs for filesystem, process, archive, and compression\n * operations across Bun, Node.js, and Deno runtimes.\n *\n * @module runtime\n * @since 3.2.0\n */\n\nimport { createBunAdapter } from './adapter-bun'\nimport { createDenoAdapter } from './adapter-deno'\nimport { createNodeAdapter } from './adapter-node'\nimport { createUnknownAdapter } from './adapter-unknown'\nimport { getRuntimeKind } from './detection'\nimport type { RuntimeAdapter, RuntimePasswordAdapter, RuntimeSqliteDatabase } from './types'\n\n// ============ Type Exports ============\n\nexport type {\n ArchiveCreateOptions,\n ArchiveEntry,\n ArchiveExtractOptions,\n ArchiveFileInfo,\n ArchiveFromDirectoryOptions,\n CompressionOptions,\n MarkdownRenderCallbacks,\n MarkdownRenderOptions,\n OptionalRuntimeResourceUsage,\n RuntimeAdapter,\n RuntimeArchiveAdapter,\n RuntimeCompressionAdapter,\n RuntimeFileSink,\n RuntimeFileStat,\n RuntimeKind,\n RuntimeMarkdownAdapter,\n RuntimePasswordAdapter,\n RuntimeProcess,\n RuntimeProcessOutput,\n RuntimeResourceUsage,\n RuntimeServeConfig,\n RuntimeServer,\n RuntimeSpawnOptions,\n RuntimeSpawnSyncResult,\n RuntimeSqliteDatabase,\n RuntimeSqliteStatement,\n} from './types'\n\n// ============ Detection Exports ============\n\nexport { getRuntimeEnv, getRuntimeKind } from './detection'\n\n// ============ Archive Exports ============\n\nexport {\n archiveFromDirectory,\n getArchiveAdapter,\n} from './archive'\n\n// ============ Compression Exports ============\n\nexport { getCompressionAdapter } from './compression'\n\n// ============ Markdown Exports ============\n\nexport { createHtmlRenderCallbacks, getMarkdownAdapter } from './markdown'\n\n// ============ Deep Equals Exports ============\n\nexport type { DeepEqualsFn, DeepEqualsOptions } from './deep-equals'\nexport { getDeepEquals } from './deep-equals'\n\n// ============ Escape Exports ============\n\nexport type { EscapeHtmlFn } from './escape'\nexport { getEscapeHtml } from './escape'\n\n// ============ Runtime Adapter Singleton ============\n\nlet runtimeAdapter: RuntimeAdapter | null = null\n\n/**\n * Get the runtime abstraction adapter (Bun/Node/Deno).\n * @public\n */\nexport function getRuntimeAdapter(): RuntimeAdapter {\n if (runtimeAdapter) {\n return runtimeAdapter\n }\n\n const kind = getRuntimeKind()\n\n // Browser safety: return unknown adapter immediately if we're in a browser\n if (typeof window !== 'undefined' || (globalThis as any).process?.browser) {\n return (runtimeAdapter = createUnknownAdapter())\n }\n\n switch (kind) {\n case 'bun':\n runtimeAdapter = createBunAdapter()\n break\n case 'node':\n runtimeAdapter = createNodeAdapter()\n break\n case 'deno':\n runtimeAdapter = createDenoAdapter()\n break\n default:\n runtimeAdapter = createUnknownAdapter()\n }\n\n return runtimeAdapter\n}\n\n/**\n * Reset the runtime adapter (mainly for testing).\n * @internal\n */\nexport function resetRuntimeAdapter(): void {\n runtimeAdapter = null\n}\n\n// ============ Password Adapter Singleton ============\n\nlet passwordAdapter: RuntimePasswordAdapter | null = null\n\n/**\n * Get the password hashing adapter using native optimized implementations if available.\n * @public\n */\nexport function getPasswordAdapter(): RuntimePasswordAdapter {\n if (passwordAdapter) {\n return passwordAdapter\n }\n\n const kind = getRuntimeKind()\n const B = (globalThis as any).Bun\n\n if (kind === 'bun' && B) {\n passwordAdapter = {\n async hash(value, options) {\n if (options.algorithm === 'bcrypt') {\n return await B.password.hash(value, {\n algorithm: 'bcrypt',\n cost: options.cost ?? 12,\n })\n }\n return await B.password.hash(value, {\n algorithm: 'argon2id',\n ...(options.memoryCost !== undefined ? { memoryCost: options.memoryCost } : {}),\n ...(options.timeCost !== undefined ? { timeCost: options.timeCost } : {}),\n ...(options.parallelism !== undefined ? { parallelism: options.parallelism } : {}),\n })\n },\n async verify(value, hashed) {\n return await B.password.verify(value, hashed)\n },\n }\n return passwordAdapter\n }\n\n const message = '[RuntimeAdapter] Password hashing requires Bun runtime or a Node/Deno adapter'\n passwordAdapter = {\n async hash() {\n throw new Error(message)\n },\n async verify() {\n throw new Error(message)\n },\n }\n return passwordAdapter\n}\n\n// ============ SQLite Adapter ============\n\n/**\n * Create a SQLite database connection using runtime-native drivers.\n * @public\n */\nexport async function createSqliteDatabase(path: string): Promise<RuntimeSqliteDatabase> {\n const kind = getRuntimeKind()\n const B = (globalThis as any).Bun\n\n if (kind === 'bun' && B) {\n const sqlite = await import('bun:sqlite')\n const db = new sqlite.Database(path, { create: true })\n return db as RuntimeSqliteDatabase\n }\n\n throw new Error('[RuntimeAdapter] SQLite storage requires Bun runtime or a Node/Deno adapter')\n}\n\n/**\n * Convert various data types to Uint8Array.\n * @internal\n */\nexport async function toUint8Array(\n data: Blob | Buffer | string | ArrayBuffer | Uint8Array\n): Promise<Uint8Array> {\n if (data instanceof Uint8Array) {\n return data\n }\n if (typeof data === 'string') {\n return new TextEncoder().encode(data)\n }\n if (data instanceof ArrayBuffer) {\n return new Uint8Array(data)\n }\n if (typeof Buffer !== 'undefined' && data instanceof Buffer) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength)\n }\n if (data instanceof Blob) {\n return new Uint8Array(await data.arrayBuffer())\n }\n return new Uint8Array()\n}\n",
|
|
88
88
|
"/**\n * Configuration manager (ConfigManager)\n *\n * Unifies environment variables and application configuration access.\n */\nimport type { ZodSchema } from 'zod'\nimport { getRuntimeEnv } from './runtime'\n\n/**\n * ConfigManager - Central configuration store.\n * Supports loading from environment variables and initial objects.\n * @public\n */\nexport class ConfigManager {\n private config: Map<string, unknown> = new Map()\n private schema: ZodSchema | null = null\n\n constructor(initialConfig: Record<string, unknown> = {}) {\n // 1. Load initial config\n for (const [key, value] of Object.entries(initialConfig)) {\n this.config.set(key, value)\n }\n\n // 2. Auto-load runtime environment variables\n this.loadEnv()\n }\n\n /**\n * Load all environment variables from the active runtime.\n */\n private loadEnv() {\n const env = getRuntimeEnv()\n for (const key of Object.keys(env)) {\n if (env[key] !== undefined) {\n this.config.set(key, env[key])\n }\n }\n }\n\n /**\n * Get a configuration value (generic return type supported).\n * Supports dot notation for deep access (e.g. 'app.name').\n */\n get<T = unknown>(key: string, defaultValue?: T): T {\n // Check if key exists directly first\n if (this.config.has(key)) {\n return this.config.get(key) as T\n }\n\n // Handle dot notation\n if (key.includes('.')) {\n const parts = key.split('.')\n const rootKey = parts[0]\n if (rootKey) {\n let current: any = this.config.get(rootKey)\n\n if (current !== undefined) {\n for (let i = 1; i < parts.length; i++) {\n const part = parts[i]\n if (part && current && typeof current === 'object' && part in current) {\n current = current[part]\n } else {\n current = undefined\n break\n }\n }\n\n if (current !== undefined) {\n return current as T\n }\n }\n }\n }\n\n if (defaultValue !== undefined) {\n return defaultValue\n }\n throw new Error(`Config key '${key}' not found`)\n }\n\n /**\n * Set a configuration value.\n */\n set(key: string, value: unknown): void {\n this.config.set(key, value)\n }\n\n /**\n * Check whether a key exists.\n */\n has(key: string): boolean {\n return this.config.has(key)\n }\n\n /**\n * Define a Zod schema for configuration validation.\n *\n * @param schema - Zod schema for validation\n *\n * @example\n * ```typescript\n * config.defineSchema(z.object({\n * DATABASE_URL: z.string().url(),\n * PORT: z.number().default(3000),\n * }))\n * ```\n */\n defineSchema(schema: ZodSchema): void {\n this.schema = schema\n }\n\n /**\n * Validate configuration against the defined schema.\n *\n * Should be called during bootstrap to catch configuration errors early.\n *\n * @throws Error if validation fails with details about missing/invalid fields\n *\n * @example\n * ```typescript\n * try {\n * config.validate()\n * } catch (error) {\n * console.error('Config validation failed:', error.message)\n * process.exit(1)\n * }\n * ```\n */\n validate(): void {\n if (!this.schema) {\n return\n }\n\n const configObj = Object.fromEntries(this.config)\n const result = this.schema.safeParse(configObj)\n\n if (!result.success) {\n const errors = result.error.issues\n .map((issue) => {\n const path = Array.isArray(issue.path) ? issue.path.join('.') : String(issue.path)\n return `${path} - ${issue.message}`\n })\n .join('; ')\n throw new Error(`Configuration validation failed: ${errors}`)\n }\n }\n}\n",
|
|
89
|
-
"import type {
|
|
89
|
+
"import type { ContentfulStatusCode } from '../http/types'\n\n/**\n * Options for creating a GravitoException\n * @public\n */\nexport interface ExceptionOptions {\n message?: string\n cause?: unknown\n i18nKey?: string // e.g. 'errors.validation.failed'\n i18nParams?: Record<string, string | number>\n}\n\n/**\n * Base exception class for consistent error handling.\n * @public\n */\nexport abstract class GravitoException extends Error {\n public readonly status: ContentfulStatusCode\n public readonly code: string\n public readonly i18nKey?: string\n public readonly i18nParams?: Record<string, string | number>\n\n constructor(status: number, code: string, options: ExceptionOptions = {}) {\n super(options.message)\n this.name = 'GravitoException'\n this.status = status as ContentfulStatusCode\n this.cause = options.cause\n this.code = code\n if (options.i18nKey) {\n this.i18nKey = options.i18nKey\n }\n if (options.i18nParams) {\n this.i18nParams = options.i18nParams\n }\n Object.setPrototypeOf(this, new.target.prototype)\n }\n\n // Helper for i18n\n getLocalizedMessage(\n t: (key: string, params?: Record<string, string | number>) => string\n ): string {\n if (this.i18nKey) {\n return t(this.i18nKey, this.i18nParams)\n }\n return this.message\n }\n}\n",
|
|
90
|
+
"import { type ExceptionOptions, GravitoException } from './GravitoException'\n\n/**\n * Abstract base class for internal framework / system-level errors.\n * Extend this for exceptions that represent an unexpected or unrecoverable framework state.\n * @public\n */\nexport abstract class SystemException extends GravitoException {\n constructor(status: number, code: string, options: ExceptionOptions = {}) {\n super(status, code, options)\n this.name = 'SystemException'\n Object.setPrototypeOf(this, new.target.prototype)\n }\n}\n",
|
|
91
|
+
"import type { ServiceKey } from '../Container'\nimport { SystemException } from './SystemException'\n\n/**\n * CircularDependencyException - Thrown when the container detects an infinite loop.\n *\n * @module @gravito/core\n */\nexport class CircularDependencyException extends SystemException {\n constructor(key: ServiceKey, stack: ServiceKey[]) {\n const path = [...stack, key].map(String).join(' -> ')\n super(500, 'system.circular_dependency', {\n message: `Circular dependency detected: ${path}`,\n })\n this.name = 'CircularDependencyException'\n }\n}\n",
|
|
90
92
|
"import type { RequestScopeManager } from './Container/RequestScopeManager'\nimport { AsyncLocalStorage } from './compat/async-local-storage'\nimport { CircularDependencyException } from './exceptions/CircularDependencyException'\n\n/**\n * Factory type for creating service instances\n */\nexport type Factory<T> = (container: Container) => T\n\n/**\n * AsyncLocalStorage 實例,用於隔離請求範圍\n * @internal\n */\nconst scopeStorage = new AsyncLocalStorage<RequestScopeManager>()\n\n/**\n * ServiceMap interface for type-safe IoC resolution.\n *\n * Extend this interface via module augmentation to get type inference:\n * @example\n * ```typescript\n * declare module '@gravito/core' {\n * interface ServiceMap {\n * logger: Logger\n * db: DatabaseConnection\n * }\n * }\n * ```\n */\n// biome-ignore lint/complexity/noBannedTypes: empty interface needed for module augmentation\nexport type ServiceMap = {}\n\n/**\n * ServiceKey represents the allowed keys for service resolution.\n * Includes keys from ServiceMap, generic strings, or symbols.\n */\nexport type ServiceKey = keyof ServiceMap | (string & {}) | symbol\n\ninterface Binding<T = unknown> {\n factory: Factory<T>\n shared: boolean // true for singleton\n scope?: 'transient' | 'singleton' | 'request' // scope type\n}\n\n/**\n * Container - Simple Dependency Injection Container.\n * Manages service bindings and singleton instances.\n * @public\n */\nexport class Container {\n private bindings = new Map<ServiceKey, Binding>()\n private instances = new Map<ServiceKey, unknown>()\n private resolutionStack: ServiceKey[] = []\n\n /**\n * Run a function within a request scope context.\n *\n * All service resolutions within the function will use the provided scope,\n * enabling request-scoped service instances to be properly isolated.\n *\n * @template T - The return type of the function.\n * @param scope - The RequestScopeManager for this request.\n * @param fn - The function to execute within the scope.\n * @returns The result of the function.\n *\n * @example\n * ```typescript\n * const scope = new RequestScopeManager()\n * const result = await Container.runWithScope(scope, async () => {\n * const service = container.make('requestScoped')\n * return service.doSomething()\n * })\n * ```\n */\n static runWithScope<T>(scope: RequestScopeManager, fn: () => T | Promise<T>): T | Promise<T> {\n return scopeStorage.run(scope, fn)\n }\n\n /**\n * Bind a service to the container.\n *\n * A new instance will be created by the factory function every time the\n * service is resolved from the container.\n *\n * @template T - The type of the service being bound.\n * @param key - The unique identifier for the service.\n * @param factory - The factory function that creates the service instance.\n *\n * @example\n * ```typescript\n * container.bind('logger', (c) => new ConsoleLogger());\n * ```\n */\n bind<T>(key: ServiceKey, factory: Factory<T>): void {\n this.bindings.set(key, {\n factory: factory as Factory<unknown>,\n shared: false,\n scope: 'transient',\n })\n }\n\n /**\n * Bind a shared service to the container (Singleton).\n *\n * The factory function will be called only once, and the same instance\n * will be returned on every subsequent resolution.\n *\n * @template T - The type of the service being bound.\n * @param key - The unique identifier for the service.\n * @param factory - The factory function that creates the service instance.\n *\n * @example\n * ```typescript\n * container.singleton('db', (c) => new DatabaseConnection());\n * ```\n */\n singleton<T>(key: ServiceKey, factory: Factory<T>): void {\n this.bindings.set(key, {\n factory: factory as Factory<unknown>,\n shared: true,\n scope: 'singleton',\n })\n }\n\n /**\n * Bind a request-scoped service to the container.\n *\n * A new instance will be created for each request and cached within that request.\n * The service is automatically cleaned up when the request ends.\n *\n * @template T - The type of the service being bound.\n * @param key - The unique identifier for the service.\n * @param factory - The factory function that creates the service instance.\n *\n * @example\n * ```typescript\n * container.scoped('requestCache', (c) => new RequestProductCache());\n * ```\n */\n scoped<T>(key: ServiceKey, factory: Factory<T>): void {\n this.bindings.set(key, {\n factory: factory as Factory<unknown>,\n shared: false,\n scope: 'request',\n })\n }\n\n /**\n * Register an existing instance as a shared service.\n *\n * @param key - The unique identifier for the service.\n * @param instance - The instance to register.\n */\n instance<T>(key: ServiceKey, instance: T): void {\n this.instances.set(key, instance)\n }\n\n /**\n * Check if a service is request-scoped.\n *\n * @param key - The service key to check.\n * @returns True if the service is request-scoped.\n */\n isRequestScoped(key: ServiceKey): boolean {\n return this.bindings.get(key)?.scope === 'request'\n }\n\n /**\n * Resolve a service instance from the container.\n *\n * Automatically handles singleton caching and factory execution.\n *\n * @template T - The expected type of the service.\n * @param key - The unique identifier for the service.\n * @returns The resolved service instance.\n * @throws Error if the service key is not found in the container.\n *\n * @example\n * ```typescript\n * const logger = container.make<Logger>('logger');\n * ```\n */\n make<K extends keyof ServiceMap>(key: K): ServiceMap[K]\n make<T>(key: ServiceKey): T\n make<T>(key: ServiceKey): T {\n // 1. Check shared instances\n if (this.instances.has(key)) {\n return this.instances.get(key) as T\n }\n\n // 2. Check for circular dependencies\n if (this.resolutionStack.includes(key)) {\n throw new CircularDependencyException(key, this.resolutionStack)\n }\n\n // 3. Check bindings\n const binding = this.bindings.get(key)\n if (!binding) {\n throw new Error(`Service '${String(key)}' not found in container`)\n }\n\n // 4. Handle request-scoped services\n if (binding.scope === 'request') {\n const scope = scopeStorage.getStore()\n if (scope) {\n // Use request scope manager to resolve\n return scope.resolve(key, () => binding.factory(this)) as T\n }\n // Fallback: if no scope context, create temporary instance with warning\n console.warn(\n `Request-scoped service '${String(key)}' resolved outside request context. ` +\n 'This instance will not be shared across the request. Consider wrapping with Container.runWithScope().'\n )\n }\n\n // 5. Resolve instance\n this.resolutionStack.push(key)\n\n try {\n const instance = binding.factory(this)\n\n // 6. Cache if shared\n if (binding.shared) {\n this.instances.set(key, instance)\n }\n\n return instance as T\n } finally {\n this.resolutionStack.pop()\n }\n }\n\n /**\n * Check if a service is bound or has an instance in the container.\n *\n * @param key - The service key to check.\n * @returns True if the service exists.\n */\n has(key: ServiceKey): boolean {\n return this.bindings.has(key) || this.instances.has(key)\n }\n\n /**\n * Flush all instances and bindings from the container.\n * Resets the container to an empty state.\n */\n flush(): void {\n this.bindings.clear()\n this.instances.clear()\n }\n\n /**\n * Forget a specific instance while keeping its binding.\n *\n * @param key - The service key to forget.\n */\n forget(key: ServiceKey): void {\n this.instances.delete(key)\n }\n}\n",
|
|
91
93
|
"/**\n * Standard logger interface.\n *\n * PSR-3 inspired API for easy swapping (e.g., Winston, Pino).\n */\nexport interface Logger {\n debug(message: string, ...args: unknown[]): void\n info(message: string, ...args: unknown[]): void\n warn(message: string, ...args: unknown[]): void\n error(message: string, ...args: unknown[]): void\n}\n\n/**\n * Default console logger implementation.\n */\nexport class ConsoleLogger implements Logger {\n debug(message: string, ...args: unknown[]): void {\n console.debug(`[DEBUG] ${message}`, ...args)\n }\n\n info(message: string, ...args: unknown[]): void {\n console.info(`[INFO] ${message}`, ...args)\n }\n\n warn(message: string, ...args: unknown[]): void {\n console.warn(`[WARN] ${message}`, ...args)\n }\n\n error(message: string, ...args: unknown[]): void {\n console.error(`[ERROR] ${message}`, ...args)\n }\n}\n",
|
|
92
94
|
"/**\n * RequestScope-Aware Error Handling\n *\n * Integrates RequestScope lifecycle with error handling to provide:\n * - Error context with request-scoped resources\n * - Automatic cleanup of scoped services on error\n * - Request tracing and diagnostics\n * - Resource leak detection\n */\n\nimport type { RequestScopeManager } from '../Container/RequestScopeManager'\nimport type { RequestScopeMetrics } from '../Container/RequestScopeMetrics'\nimport type { GravitoContext } from '../http/types'\n\n/**\n * Extended error context with RequestScope information\n *\n * Provides error handlers access to request-scoped resources\n * for proper resource cleanup and error diagnostics.\n */\nexport interface RequestScopeErrorContext {\n /**\n * The original error that was thrown\n */\n error: unknown\n\n /**\n * HTTP context where error occurred\n */\n context: GravitoContext\n\n /**\n * RequestScope manager for this request\n * Allows error handlers to access or clean up scoped resources\n */\n scope?: RequestScopeManager\n\n /**\n * Metrics about the request scope state\n * Useful for diagnostics and understanding resource usage\n */\n scopeMetrics?: RequestScopeMetrics\n\n /**\n * Number of scoped services at time of error\n * High numbers might indicate resource leaks\n */\n scopeSize?: number\n\n /**\n * Request processing time in milliseconds\n * Useful for timeout errors\n */\n duration?: number\n\n /**\n * Additional diagnostic information\n */\n diagnostics?: {\n // Services that had cleanup called\n servicesCleanedUp?: string[]\n // Services that failed cleanup\n cleanupErrors?: Array<{ service: string; error: unknown }>\n // Peak memory usage during request\n peakMemoryMb?: number\n }\n}\n\n/**\n * Error that occurred during RequestScope cleanup\n *\n * Wraps original error with cleanup context for proper error reporting\n */\nexport class RequestScopeCleanupError extends Error {\n constructor(\n message: string,\n public originalError: unknown,\n public cleanupErrors: Array<{ service: string; error: unknown }>\n ) {\n super(message)\n this.name = 'RequestScopeCleanupError'\n }\n}\n\n/**\n * Helper to extract RequestScope context from GravitoContext\n *\n * @param ctx - Gravito context\n * @returns RequestScope error context with available information\n */\nexport function extractRequestScopeErrorContext(\n ctx: GravitoContext,\n error: unknown\n): RequestScopeErrorContext {\n const scope = (ctx as any)._requestScope\n const metrics = scope?.getMetrics?.()\n const scopeSize = scope?.size?.()\n\n return {\n error,\n context: ctx,\n scope,\n scopeMetrics: metrics,\n scopeSize,\n }\n}\n\n/**\n * Cleanup scoped services safely during error handling\n *\n * Ensures all scoped services are cleaned up even if some fail,\n * and collects cleanup errors for diagnostics.\n *\n * @param scope - RequestScope manager\n * @returns Array of cleanup errors if any occurred\n */\nexport async function cleanupRequestScopeOnError(\n scope?: RequestScopeManager\n): Promise<Array<{ service: string; error: unknown }>> {\n if (!scope) {\n return []\n }\n\n const errors: Array<{ service: string; error: unknown }> = []\n\n try {\n await scope.cleanup()\n } catch (error) {\n // Capture error but don't rethrow - we want to return error info\n errors.push({\n service: 'RequestScopeManager',\n error,\n })\n }\n\n return errors\n}\n\n/**\n * Safe error handler wrapper that manages RequestScope cleanup\n *\n * Ensures scoped services are properly cleaned up before returning error response.\n * Use this to wrap error handlers to make them RequestScope-aware.\n *\n * @example\n * ```typescript\n * const errorHandler = withRequestScopeCleanup(async (ctx, error) => {\n * // Handle error...\n * return ctx.json({ error: error.message }, 500)\n * })\n *\n * // In your app:\n * try {\n * // Handle request...\n * } catch (error) {\n * return errorHandler(ctx, error)\n * }\n * ```\n */\nexport function withRequestScopeCleanup<\n T extends (ctx: GravitoContext, error: unknown) => Promise<Response>,\n>(handler: T): T {\n return (async (ctx: GravitoContext, error: unknown): Promise<Response> => {\n const scope = (ctx as any)._requestScope\n // Ensure scoped resources are cleaned up before error handler completes\n // Errors during cleanup are logged but don't prevent error response\n void (await cleanupRequestScopeOnError(scope))\n\n try {\n // Call original error handler\n return await handler(ctx, error)\n } catch (handlerError) {\n // If error handler itself fails, at least we tried to cleanup\n console.error('Error handler failed after RequestScope cleanup:', handlerError)\n throw handlerError\n }\n }) as T\n}\n\n/**\n * Detect potential resource leaks in RequestScope\n *\n * Returns diagnostic information about suspicious resource usage patterns\n */\nexport function detectRequestScopeLeaks(context: RequestScopeErrorContext): {\n potentialLeaks: boolean\n warnings: string[]\n} {\n const warnings: string[] = []\n\n // High service count might indicate services not being cleaned up properly\n if ((context.scopeSize ?? 0) > 100) {\n warnings.push(\n `High service count in scope: ${context.scopeSize}. ` +\n `Potential resource leak or accumulation.`\n )\n }\n\n // Long cleanup time might indicate slow cleanup handlers\n if ((context.scopeMetrics?.getCleanupDuration() ?? 0) > 100) {\n warnings.push(\n `Slow RequestScope cleanup: ${context.scopeMetrics?.getCleanupDuration()}ms. ` +\n `Check for blocking operations in cleanup() methods.`\n )\n }\n\n // Cleanup errors indicate failed resource cleanup\n if ((context.diagnostics?.cleanupErrors?.length ?? 0) > 0) {\n warnings.push(\n `${context.diagnostics?.cleanupErrors?.length} cleanup errors occurred. ` +\n `Check error details for resource leak details.`\n )\n }\n\n return {\n potentialLeaks: warnings.length > 0,\n warnings,\n }\n}\n",
|
|
93
|
-
"import type { ContentfulStatusCode } from '../http/types'\n\n/**\n * Options for creating a GravitoException\n * @public\n */\nexport interface ExceptionOptions {\n message?: string\n cause?: unknown\n i18nKey?: string // e.g. 'errors.validation.failed'\n i18nParams?: Record<string, string | number>\n}\n\n/**\n * Base exception class for consistent error handling.\n * @public\n */\nexport abstract class GravitoException extends Error {\n public readonly status: ContentfulStatusCode\n public readonly code: string\n public readonly i18nKey?: string\n public readonly i18nParams?: Record<string, string | number>\n\n constructor(status: number, code: string, options: ExceptionOptions = {}) {\n super(options.message)\n this.name = 'GravitoException'\n this.status = status as ContentfulStatusCode\n this.cause = options.cause\n this.code = code\n if (options.i18nKey) {\n this.i18nKey = options.i18nKey\n }\n if (options.i18nParams) {\n this.i18nParams = options.i18nParams\n }\n }\n\n // Helper for i18n\n getLocalizedMessage(\n t: (key: string, params?: Record<string, string | number>) => string\n ): string {\n if (this.i18nKey) {\n return t(this.i18nKey, this.i18nParams)\n }\n return this.message\n }\n}\n",
|
|
94
95
|
"import type { ContentfulStatusCode } from '../http/types'\nimport { type ExceptionOptions, GravitoException } from './GravitoException'\n\n/**\n * Generic HTTP Exception\n * @public\n */\nexport class HttpException extends GravitoException {\n constructor(status: ContentfulStatusCode, options: ExceptionOptions = {}) {\n super(status, 'HTTP_ERROR', options)\n this.name = 'HttpException'\n }\n}\n",
|
|
95
|
-
"import { GravitoException } from './GravitoException'\n\n/**\n *
|
|
96
|
+
"import { type ExceptionOptions, GravitoException } from './GravitoException'\n\n/**\n * Abstract base class for business logic / domain rule violations.\n * Extend this for exceptions that represent a caller mistake (invalid input, constraint violation, etc.).\n * @public\n */\nexport abstract class DomainException extends GravitoException {\n constructor(status: number, code: string, options: ExceptionOptions = {}) {\n super(status, code, options)\n this.name = 'DomainException'\n Object.setPrototypeOf(this, new.target.prototype)\n }\n}\n",
|
|
97
|
+
"import { DomainException } from './DomainException'\n\n/**\n * Structure of a validation error\n * @public\n */\nexport interface ValidationError {\n field: string\n message: string\n code?: string\n}\n\n/**\n * Exception thrown when data validation fails.\n * @public\n */\nexport class ValidationException extends DomainException {\n public readonly errors: ValidationError[]\n public redirectTo?: string\n public input?: unknown\n\n constructor(errors: ValidationError[], message = 'Validation failed') {\n super(422, 'VALIDATION_ERROR', {\n message,\n i18nKey: 'errors.validation.failed',\n })\n this.name = 'ValidationException'\n this.errors = errors\n }\n\n withRedirect(url: string): this {\n this.redirectTo = url\n return this\n }\n\n withInput(input: unknown): this {\n this.input = input\n return this\n }\n}\n",
|
|
96
98
|
"import type { ContentfulStatusCode, GravitoContext } from '../http/types'\n\n/**\n * Standard API Success Response Structure\n * @public\n */\nexport type ApiSuccess<T> = {\n success: true\n data: T\n}\n\n/**\n * Standard API Failure Response Structure\n * @public\n */\nexport type ApiFailure = {\n success: false\n error: {\n message: string\n code?: string\n details?: unknown\n }\n}\n\n/**\n * Create a success response object.\n * @public\n */\nexport function ok<T>(data: T): ApiSuccess<T> {\n return { success: true, data }\n}\n\n/**\n * Create a failure response object.\n * @public\n */\nexport function fail(message: string, code?: string, details?: unknown): ApiFailure {\n const error: ApiFailure['error'] = { message }\n if (code !== undefined) {\n error.code = code\n }\n if (details !== undefined) {\n error.details = details\n }\n return { success: false, error }\n}\n\n/**\n * Return a JSON response with standard success structure.\n * @public\n */\nexport function jsonSuccess<T>(\n c: GravitoContext,\n data: T,\n status: ContentfulStatusCode = 200\n): Response {\n return c.json(ok(data), status)\n}\n\n/**\n * Return a JSON response with standard failure structure.\n * @public\n */\nexport function jsonFail(\n c: GravitoContext,\n message: string,\n status: ContentfulStatusCode = 400,\n code?: string,\n details?: unknown\n): Response {\n return c.json(fail(message, code, details), status)\n}\n",
|
|
97
99
|
"/**\n * @fileoverview ErrorHandler - Centralized Error Handling for Gravito Framework\n *\n * Extracted from PlanetCore to follow Single Responsibility Principle.\n * Handles HTTP errors, validation errors, and error rendering.\n *\n * @module @gravito/core\n * @since 1.3.0\n */\n\nimport {\n cleanupRequestScopeOnError,\n detectRequestScopeLeaks,\n extractRequestScopeErrorContext,\n} from './error-handling/RequestScopeErrorContext'\nimport { GravitoException } from './exceptions/GravitoException'\nimport { HttpException } from './exceptions/HttpException'\nimport { ValidationException } from './exceptions/ValidationException'\nimport type { HookManager } from './HookManager'\nimport { fail } from './helpers/response'\nimport type { ContentfulStatusCode, GravitoContext } from './http/types'\nimport type { Logger } from './Logger'\nimport type { ErrorHandlerContext, ViewService } from './PlanetCore'\n\n/**\n * HTTP Status Code to Error Code mapping\n */\nexport function codeFromStatus(status: number): string {\n switch (status) {\n case 400:\n return 'BAD_REQUEST'\n case 401:\n return 'UNAUTHENTICATED'\n case 403:\n return 'FORBIDDEN'\n case 404:\n return 'NOT_FOUND'\n case 405:\n return 'METHOD_NOT_ALLOWED'\n case 409:\n return 'CONFLICT'\n case 422:\n return 'VALIDATION_ERROR'\n case 429:\n return 'TOO_MANY_REQUESTS'\n default:\n return status >= 500 ? 'INTERNAL_ERROR' : 'HTTP_ERROR'\n }\n}\n\n/**\n * HTTP Status Code to Message mapping\n */\nexport function messageFromStatus(status: number): string {\n switch (status) {\n case 400:\n return 'Bad Request'\n case 401:\n return 'Unauthorized'\n case 403:\n return 'Forbidden'\n case 404:\n return 'Not Found'\n case 405:\n return 'Method Not Allowed'\n case 409:\n return 'Conflict'\n case 422:\n return 'Unprocessable Content'\n case 429:\n return 'Too Many Requests'\n case 500:\n return 'Internal Server Error'\n case 502:\n return 'Bad Gateway'\n case 503:\n return 'Service Unavailable'\n case 504:\n return 'Gateway Timeout'\n default:\n return status >= 500 ? 'Internal Server Error' : 'Request Error'\n }\n}\n\n/**\n * Dependencies injected into ErrorHandler\n * @public\n */\nexport interface ErrorHandlerDeps {\n logger: Logger\n hooks: HookManager\n getCore: () => unknown // Lazy reference to avoid circular deps\n}\n\n/**\n * ErrorHandler - Centralized error handling logic\n *\n * @example\n * ```typescript\n * const handler = new ErrorHandler({ logger, hooks, getCore: () => core })\n * adapter.onError(handler.handleError.bind(handler))\n * adapter.onNotFound(handler.handleNotFound.bind(handler))\n * ```\n */\nexport class ErrorHandler {\n constructor(private deps: ErrorHandlerDeps) {}\n\n /**\n * Handle application errors\n *\n * Integrates RequestScope cleanup to ensure proper resource management\n * even when errors occur during request processing.\n */\n async handleError(err: unknown, c: GravitoContext): Promise<Response> {\n const isProduction = process.env.NODE_ENV === 'production'\n\n // Extract RequestScope context for diagnostics and cleanup\n const scopeErrorContext = extractRequestScopeErrorContext(c, err)\n const cleanupErrors = await cleanupRequestScopeOnError(scopeErrorContext.scope)\n\n // Update context with cleanup diagnostics\n if (cleanupErrors.length > 0) {\n scopeErrorContext.diagnostics = {\n cleanupErrors,\n }\n }\n\n // Detect potential resource leaks\n const leakDetection = detectRequestScopeLeaks(scopeErrorContext)\n if (leakDetection.warnings.length > 0 && !isProduction) {\n // Log warnings in development to help identify issues\n for (const warning of leakDetection.warnings) {\n this.deps.logger?.warn?.(`[RequestScope] ${warning}`)\n }\n }\n\n // Try rendering HTML if available and requested\n const view = c.get('view') as ViewService | undefined\n const i18n = c.get('i18n') as { t?: (key: string, params?: unknown) => string } | undefined\n const accept = c.req.header('Accept') || ''\n const wantsHtml = Boolean(\n view && accept.includes('text/html') && !accept.includes('application/json')\n )\n\n let status: ContentfulStatusCode = 500\n let message = messageFromStatus(500)\n let code = 'INTERNAL_ERROR'\n let details: unknown\n\n // Parse error type\n if (err instanceof GravitoException) {\n status = err.status as ContentfulStatusCode\n code = err.code\n\n // Fallback for generic HTTP errors to use status-based codes\n if (code === 'HTTP_ERROR') {\n code = codeFromStatus(status)\n }\n\n if (i18n?.t && err.i18nKey) {\n message = i18n.t(err.i18nKey, err.i18nParams)\n } else {\n message = err.message || messageFromStatus(status)\n }\n\n if (err instanceof ValidationException) {\n details = err.errors\n\n // Handle HTML Redirect for Validation\n if (wantsHtml) {\n const redirectResponse = this.handleValidationRedirect(err, c)\n if (redirectResponse) {\n return redirectResponse\n }\n }\n } else if (err instanceof Error && !isProduction && err.cause) {\n details = { cause: err.cause }\n }\n } else if (err instanceof HttpException) {\n status = err.status\n message = err.message\n } else if (\n err instanceof Error &&\n 'status' in err &&\n typeof (err as { status?: unknown }).status === 'number'\n ) {\n // Handle Photon or other framework exceptions via duck typing\n status = (err as { status: number }).status as ContentfulStatusCode\n message = err.message\n code = codeFromStatus(status)\n } else if (err instanceof Error) {\n if (!isProduction) {\n message = err.message || message\n }\n } else if (typeof err === 'string') {\n if (!isProduction) {\n message = err\n }\n }\n\n // Sanitize message in production for 5xx errors\n if (isProduction && status >= 500) {\n message = messageFromStatus(status)\n }\n\n // Add stack trace in development\n if (!isProduction && err instanceof Error && !details) {\n details = { stack: err.stack, ...(details as object) }\n }\n\n // Build handler context\n let handlerContext: ErrorHandlerContext = {\n core: this.deps.getCore() as import('./PlanetCore').PlanetCore,\n c,\n error: err,\n isProduction,\n accept,\n wantsHtml,\n status,\n payload: fail(message, code, details),\n ...(wantsHtml\n ? {\n html: {\n templates: status === 500 ? ['errors/500'] : [`errors/${status}`, 'errors/500'],\n data: {\n status,\n message,\n code,\n error: !isProduction && err instanceof Error ? err.stack : undefined,\n debug: !isProduction,\n details,\n },\n },\n }\n : {}),\n }\n\n // Apply filters for customization\n handlerContext = await this.deps.hooks.applyFilters<ErrorHandlerContext>(\n 'error:context',\n handlerContext\n )\n\n // Logging\n this.logError(handlerContext, err)\n\n // Report action\n await this.deps.hooks.doAction('error:report', handlerContext)\n\n // Check for custom render\n const customResponse = await this.deps.hooks.applyFilters<Response | null>(\n 'error:render',\n null,\n handlerContext\n )\n if (customResponse) {\n return customResponse\n }\n\n // Render HTML or JSON\n return this.renderErrorResponse(handlerContext, view, c)\n }\n\n /**\n * Handle 404 Not Found errors\n */\n async handleNotFound(c: GravitoContext): Promise<Response> {\n const view = c.get('view') as ViewService | undefined\n const accept = c.req.header('Accept') || ''\n const wantsHtml = view && accept.includes('text/html') && !accept.includes('application/json')\n const isProduction = process.env.NODE_ENV === 'production'\n\n let handlerContext: ErrorHandlerContext = {\n core: this.deps.getCore() as import('./PlanetCore').PlanetCore,\n c,\n error: new HttpException(404, { message: 'Route not found' }),\n isProduction,\n accept,\n wantsHtml: Boolean(wantsHtml),\n status: 404,\n payload: fail('Route not found', 'NOT_FOUND'),\n ...(wantsHtml\n ? {\n html: {\n templates: ['errors/404', 'errors/500'],\n data: {\n status: 404,\n message: 'Route not found',\n code: 'NOT_FOUND',\n debug: !isProduction,\n },\n },\n }\n : {}),\n }\n\n handlerContext = await this.deps.hooks.applyFilters<ErrorHandlerContext>(\n 'notFound:context',\n handlerContext\n )\n\n // Logging\n const logLevel = handlerContext.logLevel ?? 'info'\n if (logLevel !== 'none') {\n const msg = handlerContext.logMessage ?? `404 Not Found: ${c.req.url}`\n if (logLevel === 'error') {\n this.deps.logger.error(msg)\n } else if (logLevel === 'warn') {\n this.deps.logger.warn(msg)\n } else {\n this.deps.logger.info(msg)\n }\n }\n\n await this.deps.hooks.doAction('notFound:report', handlerContext)\n\n const customResponse = await this.deps.hooks.applyFilters<Response | null>(\n 'notFound:render',\n null,\n handlerContext\n )\n if (customResponse) {\n return customResponse\n }\n\n return this.renderErrorResponse(handlerContext, view, c)\n }\n\n /**\n * Handle validation error redirect for HTML requests\n */\n private handleValidationRedirect(err: ValidationException, c: GravitoContext): Response | null {\n const session = c.get('session') as { flash: (key: string, value: unknown) => void } | undefined\n\n if (!session) {\n return null\n }\n\n // Transform details to ErrorBag format: Record<string, string[]>\n const errorBag: Record<string, string[]> = {}\n for (const e of err.errors) {\n if (!errorBag[e.field]) {\n errorBag[e.field] = []\n }\n errorBag[e.field]?.push(e.message)\n }\n session.flash('errors', errorBag)\n\n if (err.input) {\n session.flash('_old_input', err.input)\n }\n\n const redirectUrl = err.redirectTo ?? c.req.header('Referer') ?? '/'\n return c.redirect(redirectUrl)\n }\n\n /**\n * Log error based on context settings\n */\n private logError(handlerContext: ErrorHandlerContext, err: unknown): void {\n const defaultLogLevel = handlerContext.status >= 500 ? 'error' : 'none'\n const logLevel = handlerContext.logLevel ?? defaultLogLevel\n\n if (logLevel === 'none') {\n return\n }\n\n const rawErrorMessage =\n handlerContext.error instanceof Error\n ? handlerContext.error.message\n : typeof handlerContext.error === 'string'\n ? handlerContext.error\n : handlerContext.payload.error.message\n\n const msg =\n handlerContext.logMessage ??\n (logLevel === 'error'\n ? `Application Error: ${rawErrorMessage || handlerContext.payload.error.message}`\n : `HTTP ${handlerContext.status}: ${handlerContext.payload.error.message}`)\n\n if (logLevel === 'error') {\n this.deps.logger.error(msg, err)\n } else if (logLevel === 'warn') {\n this.deps.logger.warn(msg)\n } else {\n this.deps.logger.info(msg)\n }\n }\n\n /**\n * Render error response (HTML or JSON)\n */\n private renderErrorResponse(\n handlerContext: ErrorHandlerContext,\n view: ViewService | undefined,\n c: GravitoContext\n ): Response {\n if (handlerContext.wantsHtml && view && handlerContext.html) {\n let lastRenderError: unknown\n for (const template of handlerContext.html.templates) {\n try {\n return c.html(view.render(template, handlerContext.html.data), handlerContext.status)\n } catch (renderError) {\n lastRenderError = renderError\n }\n }\n this.deps.logger.error('Failed to render error view', lastRenderError)\n }\n\n return c.json(handlerContext.payload, handlerContext.status)\n }\n}\n",
|
|
98
100
|
"/**\n * Event system type definitions.\n */\n\n/**\n * Listener interface.\n *\n * All event listeners must implement this interface.\n */\nexport interface Listener<TEvent extends Event = Event> {\n /**\n * Handle an event.\n * @param event - Event instance\n */\n handle(event: TEvent): Promise<void> | void\n}\n\n/**\n * Marker interface for listeners that should be queued.\n *\n * Listeners implementing this interface can be dispatched asynchronously via a queue.\n */\nexport interface ShouldQueue {\n /**\n * Queue name (optional).\n */\n queue?: string\n\n /**\n * Connection name (optional).\n */\n connection?: string\n\n /**\n * Delay before execution (seconds).\n */\n delay?: number\n}\n\n/**\n * Marker interface for events that should be broadcast.\n *\n * Events implementing this interface can be automatically broadcast to clients.\n */\nexport interface ShouldBroadcast {\n /**\n * Define the broadcast channel.\n * @returns Channel name or channel object\n */\n broadcastOn(): string | Channel\n\n /**\n * Define broadcast payload (optional).\n * If omitted, public event properties will be used.\n * @returns Broadcast payload\n */\n broadcastWith?(): Record<string, unknown>\n\n /**\n * Define the broadcast event name (optional).\n * If omitted, the event class name will be used.\n * @returns Event name\n */\n broadcastAs?(): string\n}\n\n/**\n * Channel interface.\n */\nexport interface Channel {\n /**\n * Channel name.\n */\n name: string\n\n /**\n * Channel type.\n */\n type: 'public' | 'private' | 'presence'\n}\n\n/**\n * Base event class.\n *\n * All events should extend this class.\n */\nexport abstract class Event {\n /**\n * Whether this event should be broadcast.\n */\n shouldBroadcast(): boolean {\n return (\n 'broadcastOn' in this &&\n typeof (this as unknown as ShouldBroadcast).broadcastOn === 'function'\n )\n }\n\n /**\n * Get broadcast channel.\n */\n getBroadcastChannel(): string | Channel | null {\n if (this.shouldBroadcast()) {\n return (this as unknown as ShouldBroadcast).broadcastOn()\n }\n return null\n }\n\n /**\n * Get broadcast payload.\n */\n getBroadcastData(): Record<string, unknown> {\n if (this.shouldBroadcast()) {\n const broadcast = this as unknown as ShouldBroadcast\n if (broadcast.broadcastWith) {\n return broadcast.broadcastWith()\n }\n // Default to public event properties\n const data: Record<string, unknown> = {}\n for (const [key, value] of Object.entries(this)) {\n if (!key.startsWith('_') && typeof value !== 'function') {\n data[key] = value\n }\n }\n return data\n }\n return {}\n }\n\n /**\n * Get broadcast event name.\n */\n getBroadcastEventName(): string {\n if (this.shouldBroadcast()) {\n const broadcast = this as unknown as ShouldBroadcast\n if (broadcast.broadcastAs) {\n return broadcast.broadcastAs()\n }\n }\n // Default to class name\n return this.constructor.name\n }\n}\n",
|
|
@@ -101,7 +103,7 @@
|
|
|
101
103
|
"/**\n * @gravito/core - Event System Backpressure Management\n *\n * Implements a backpressure management system to prevent high-priority events\n * from starving low-priority events when the queue is under resource constraints.\n *\n * 背壓管理器:在資源受限時進行智慧型流量控制,防止優先級飢餓。\n *\n * FS-103 增強:\n * - 多優先級隊列深度監控\n * - 背壓反饋迴路支持\n * - 智能 DLQ 路由決策\n */\n\nimport type { DeadLetterDecision, MultiPriorityQueueDepth, WindowAdjustment } from './types'\n\n/**\n * 背壓狀態枚舉。\n *\n * 狀態轉換:Normal → Warning → Critical → Overflow\n * 恢復方向:遲滯設計(需降至觸發閾值的 80%)\n *\n * @public\n */\nexport enum BackpressureState {\n /** 正常運作,無背壓 */\n NORMAL = 'NORMAL',\n /** 警告狀態,開始限制低優先級事件 */\n WARNING = 'WARNING',\n /** 危急狀態,僅允許高優先級事件 */\n CRITICAL = 'CRITICAL',\n /** 溢位狀態,全部拒絕 */\n OVERFLOW = 'OVERFLOW',\n}\n\n/**\n * 背壓配置選項。\n *\n * @public\n */\nexport interface BackpressureConfig {\n /** 是否啟用背壓管理器(預設 true) */\n enabled?: boolean\n\n /** 總隊列深度限制(預設無限) */\n maxQueueSize?: number\n\n /** 分優先級隊列深度限制 */\n maxSizeByPriority?: {\n critical?: number\n high?: number\n normal?: number\n low?: number\n }\n\n /** 每秒最大入隊速率(events/sec,預設無限) */\n maxEnqueueRate?: number\n\n /** 速率限制滑動視窗大小(ms,預設 1000) */\n rateLimitWindowMs?: number\n\n /** 背壓狀態閾值(佔 maxQueueSize 的百分比) */\n thresholds?: {\n /** WARNING 觸發百分比(預設 0.6 = 60%) */\n warning?: number\n /** CRITICAL 觸發百分比(預設 0.85 = 85%) */\n critical?: number\n /** OVERFLOW 觸發百分比(預設 1.0 = 100%) */\n overflow?: number\n }\n\n /** 被拒絕事件的處理策略(預設 'drop-with-callback') */\n rejectionPolicy?: 'throw' | 'drop-silent' | 'drop-with-callback'\n\n /** 當 rejectionPolicy 為 'drop-with-callback' 時的回呼 */\n onRejected?: (eventName: string, priority: string, reason: string) => void\n\n /** 背壓狀態變更回呼 */\n onStateChange?: (from: BackpressureState, to: BackpressureState) => void\n\n /** 低優先級事件在 WARNING 狀態下的延遲入隊時間(ms,預設 100) */\n lowPriorityDelayMs?: number\n\n /** 是否啟用優先級反轉防護(預設 true) */\n enableStarvationProtection?: boolean\n\n /** 低優先級事件最大等待時間,超過則提升優先級(ms,預設 5000) */\n starvationTimeoutMs?: number\n\n /** 當進入 OVERFLOW 狀態時,是否將被拒絕事件路由到 DLQ(預設 false) */\n dlqOnOverflow?: boolean\n\n /** OVERFLOW 時的重試策略(預設 'dlq-only') */\n overflowRetryStrategy?: 'immediate' | 'delayed' | 'dlq-only'\n\n /** OVERFLOW 延遲重試的基礎延遲時間(ms,預設 5000) */\n overflowRetryDelayMs?: number\n}\n\n/**\n * 背壓決策結果。\n *\n * @public\n */\nexport interface BackpressureDecision {\n /** 是否允許入隊 */\n allowed: boolean\n /** 拒絕原因(若不允許) */\n reason?: string\n /** 是否需要延遲入隊 */\n delayed?: boolean\n /** 延遲時間(ms) */\n delayMs?: number\n /** 建議降級後的優先級(若降級) */\n degradedPriority?: 'high' | 'normal' | 'low'\n /** 是否是由於 OVERFLOW 狀態被拒絕 */\n isOverflow?: boolean\n /** OVERFLOW 時的重試策略建議('immediate'、'delayed'、'dlq-only') */\n retryStrategy?: 'immediate' | 'delayed' | 'dlq-only'\n}\n\n/**\n * 背壓指標快照。\n *\n * @public\n */\nexport interface BackpressureMetricsSnapshot {\n state: BackpressureState\n totalDepth: number\n depthByPriority: { critical: number; high: number; normal: number; low: number }\n enqueueRate: number\n rejectedCount: number\n degradedCount: number\n stateTransitions: number\n dlqRouteCount?: number\n windowAdjustmentCount?: number\n}\n\n/**\n * 預設背壓配置。\n */\nconst DEFAULT_BACKPRESSURE_CONFIG = {\n enabled: true,\n maxQueueSize: Number.POSITIVE_INFINITY,\n maxSizeByPriority: {\n high: Number.POSITIVE_INFINITY,\n normal: Number.POSITIVE_INFINITY,\n low: Number.POSITIVE_INFINITY,\n },\n maxEnqueueRate: Number.POSITIVE_INFINITY,\n rateLimitWindowMs: 1000,\n thresholds: { warning: 0.6, critical: 0.85, overflow: 1.0 } as Required<\n NonNullable<BackpressureConfig['thresholds']>\n >,\n rejectionPolicy: 'drop-with-callback' as const,\n lowPriorityDelayMs: 100,\n enableStarvationProtection: true,\n starvationTimeoutMs: 5000,\n dlqOnOverflow: false,\n overflowRetryStrategy: 'dlq-only' as const,\n overflowRetryDelayMs: 5000,\n}\n\n/**\n * 滑動視窗速率計數器。\n *\n * 使用環形緩衝區記錄固定時間窗內的事件計數。\n * 計算滑動窗口內的事件速率(events/sec)。\n */\nclass SlidingWindowCounter {\n private readonly windowMs: number\n private readonly bucketMs: number\n private readonly buckets: number[]\n private currentBucketIndex: number\n private lastBucketTime: number\n\n constructor(windowMs = 1000, bucketCount = 10) {\n this.windowMs = windowMs\n this.bucketMs = windowMs / bucketCount\n this.buckets = new Array(bucketCount).fill(0)\n this.currentBucketIndex = 0\n this.lastBucketTime = Date.now()\n }\n\n /**\n * 記錄一個事件。\n */\n increment(): void {\n const now = Date.now()\n const timePassed = now - this.lastBucketTime\n\n // 推進到當前時間桶\n const bucketsToAdvance = Math.floor(timePassed / this.bucketMs)\n if (bucketsToAdvance > 0) {\n for (let i = 0; i < Math.min(bucketsToAdvance, this.buckets.length); i++) {\n this.currentBucketIndex = (this.currentBucketIndex + 1) % this.buckets.length\n this.buckets[this.currentBucketIndex] = 0\n }\n this.lastBucketTime = now\n }\n\n // 增加當前桶的計數\n this.buckets[this.currentBucketIndex]++\n }\n\n /**\n * 獲取當前滑動視窗的速率(events/sec)。\n */\n getRate(): number {\n const now = Date.now()\n const timePassed = now - this.lastBucketTime\n\n // Note: timePassed could be used to advance buckets if needed\n // For now, we just calculate the current rate from existing buckets\n void timePassed // Intentionally unused\n let totalCount = 0\n for (let i = 0; i < this.buckets.length; i++) {\n totalCount += this.buckets[i]\n }\n\n return (totalCount / this.windowMs) * 1000 // 轉換為 events/sec\n }\n\n /**\n * 重置計數器。\n */\n reset(): void {\n this.buckets.fill(0)\n this.currentBucketIndex = 0\n this.lastBucketTime = Date.now()\n }\n}\n\n/**\n * 背壓管理器。\n *\n * 根據隊列深度、速率、優先級等因素,決定是否允許新事件入隊,\n * 以及是否需要降級優先級或延遲入隊。\n *\n * @public\n */\nexport class BackpressureManager {\n private enabled: boolean\n private config: Omit<Required<BackpressureConfig>, 'onRejected' | 'onStateChange'> & {\n dlqOnOverflow: boolean\n }\n private onRejected?: BackpressureConfig['onRejected']\n private onStateChange?: BackpressureConfig['onStateChange']\n\n private state: BackpressureState = BackpressureState.NORMAL\n private rejectedCount = 0\n private degradedCount = 0\n private stateTransitions = 0\n private rateCounter: SlidingWindowCounter\n\n // FS-103 增強:多優先級隊列深度監控\n private depthByPriority: MultiPriorityQueueDepth = {\n critical: 0,\n high: 0,\n normal: 0,\n low: 0,\n total: 0,\n }\n private windowAdjustmentHistory: WindowAdjustment[] = []\n private dlqRouteCount = 0\n\n constructor(config: BackpressureConfig = {}) {\n this.enabled = config.enabled !== false\n this.config = {\n enabled: config.enabled ?? DEFAULT_BACKPRESSURE_CONFIG.enabled,\n maxQueueSize: config.maxQueueSize ?? DEFAULT_BACKPRESSURE_CONFIG.maxQueueSize,\n maxSizeByPriority: {\n ...DEFAULT_BACKPRESSURE_CONFIG.maxSizeByPriority,\n ...config.maxSizeByPriority,\n },\n maxEnqueueRate: config.maxEnqueueRate ?? DEFAULT_BACKPRESSURE_CONFIG.maxEnqueueRate,\n rateLimitWindowMs: config.rateLimitWindowMs ?? DEFAULT_BACKPRESSURE_CONFIG.rateLimitWindowMs,\n thresholds: { ...DEFAULT_BACKPRESSURE_CONFIG.thresholds, ...config.thresholds },\n rejectionPolicy: (config.rejectionPolicy ?? DEFAULT_BACKPRESSURE_CONFIG.rejectionPolicy) as\n | 'throw'\n | 'drop-silent'\n | 'drop-with-callback',\n lowPriorityDelayMs:\n config.lowPriorityDelayMs ?? DEFAULT_BACKPRESSURE_CONFIG.lowPriorityDelayMs,\n enableStarvationProtection:\n config.enableStarvationProtection ?? DEFAULT_BACKPRESSURE_CONFIG.enableStarvationProtection,\n starvationTimeoutMs:\n config.starvationTimeoutMs ?? DEFAULT_BACKPRESSURE_CONFIG.starvationTimeoutMs,\n dlqOnOverflow: config.dlqOnOverflow ?? DEFAULT_BACKPRESSURE_CONFIG.dlqOnOverflow,\n overflowRetryStrategy: (config.overflowRetryStrategy ??\n DEFAULT_BACKPRESSURE_CONFIG.overflowRetryStrategy) as 'immediate' | 'delayed' | 'dlq-only',\n overflowRetryDelayMs:\n config.overflowRetryDelayMs ?? DEFAULT_BACKPRESSURE_CONFIG.overflowRetryDelayMs,\n }\n this.onRejected = config.onRejected\n this.onStateChange = config.onStateChange\n this.rateCounter = new SlidingWindowCounter(this.config.rateLimitWindowMs, 10)\n }\n\n /**\n * 評估是否允許新事件入隊。\n *\n * @param eventName 事件名稱\n * @param priority 事件優先級\n * @param queueDepth 當前隊列深度\n * @param depthByPriority 分優先級隊列深度\n * @returns 背壓決策結果\n */\n evaluate(\n eventName: string,\n priority: 'critical' | 'high' | 'normal' | 'low',\n queueDepth: number,\n depthByPriority: { critical: number; high: number; normal: number; low: number }\n ): BackpressureDecision {\n if (!this.enabled) {\n return { allowed: true }\n }\n\n // 更新速率計數器\n this.rateCounter.increment()\n\n // 重新計算背壓狀態\n this.updateState(queueDepth)\n\n // CRITICAL 優先級在 OVERFLOW 之外永不拒絕\n if (priority === 'critical' && this.state !== BackpressureState.OVERFLOW) {\n return { allowed: true }\n }\n\n // 檢查分優先級深度限制\n const maxSizeForPriority = this.config.maxSizeByPriority?.[priority] ?? Number.POSITIVE_INFINITY\n if (depthByPriority[priority] >= maxSizeForPriority) {\n return this.createDecision(false, `Priority queue full for ${priority}`, eventName, priority)\n }\n\n // 根據狀態進行決策\n switch (this.state) {\n case BackpressureState.OVERFLOW:\n return {\n ...this.createDecision(false, 'Backpressure OVERFLOW', eventName, priority),\n isOverflow: true,\n retryStrategy: this.config.overflowRetryStrategy,\n delayMs:\n this.config.overflowRetryStrategy === 'delayed'\n ? this.config.overflowRetryDelayMs\n : undefined,\n }\n\n case BackpressureState.CRITICAL:\n // 允許 CRITICAL 和 HIGH 優先級\n if (priority === 'critical' || priority === 'high') {\n return { allowed: true }\n }\n if (priority === 'normal') {\n return { allowed: true, delayed: true, delayMs: this.config.lowPriorityDelayMs }\n }\n return this.createDecision(false, 'Backpressure CRITICAL', eventName, priority)\n\n case BackpressureState.WARNING:\n // 低優先級延遲或拒絕\n if (priority === 'low') {\n // 檢查速率\n const rate = this.rateCounter.getRate()\n if (rate > this.config.maxEnqueueRate) {\n return this.createDecision(false, 'Rate limit exceeded', eventName, priority)\n }\n return { allowed: true, delayed: true, delayMs: this.config.lowPriorityDelayMs }\n }\n break\n default: {\n // 檢查速率限制\n const rate = this.rateCounter.getRate()\n if (rate > this.config.maxEnqueueRate) {\n if (priority === 'low') {\n return this.createDecision(false, 'Rate limit exceeded', eventName, priority)\n }\n if (priority === 'normal') {\n return { allowed: true, delayed: true, delayMs: this.config.lowPriorityDelayMs }\n }\n }\n return { allowed: true }\n }\n }\n\n return { allowed: true }\n }\n\n /**\n * 獲取當前背壓狀態。\n */\n getState(): BackpressureState {\n return this.state\n }\n\n /**\n * 獲取背壓指標快照。\n */\n getMetrics(): BackpressureMetricsSnapshot {\n return {\n state: this.state,\n totalDepth: this.depthByPriority.total,\n depthByPriority: { ...this.depthByPriority },\n enqueueRate: this.rateCounter.getRate(),\n rejectedCount: this.rejectedCount,\n degradedCount: this.degradedCount,\n stateTransitions: this.stateTransitions,\n dlqRouteCount: this.dlqRouteCount,\n windowAdjustmentCount: this.windowAdjustmentHistory.length,\n }\n }\n\n /**\n * 重置背壓管理器狀態。\n */\n reset(): void {\n this.state = BackpressureState.NORMAL\n this.rejectedCount = 0\n this.degradedCount = 0\n this.stateTransitions = 0\n this.rateCounter.reset()\n this.depthByPriority = { critical: 0, high: 0, normal: 0, low: 0, total: 0 }\n this.windowAdjustmentHistory = []\n this.dlqRouteCount = 0\n }\n\n /**\n * 同步隊列深度(由 EventPriorityQueue 調用)。\n * FS-103:多優先級隊列深度監控\n */\n updateQueueDepth(depths: MultiPriorityQueueDepth): void {\n this.depthByPriority = {\n critical: depths.critical,\n high: depths.high,\n normal: depths.normal,\n low: depths.low,\n total: depths.total,\n }\n\n // 根據新的隊列深度重新計算背壓狀態\n this.updateState(depths.total)\n }\n\n /**\n * 獲取各優先級的隊列深度。\n * FS-103:提供實時隊列深度快照\n */\n getQueueDepthByPriority(): MultiPriorityQueueDepth {\n return { ...this.depthByPriority }\n }\n\n /**\n * 獲取總隊列深度。\n */\n getTotalQueueDepth(): number {\n return this.depthByPriority.total\n }\n\n /**\n * 接收來自 AggregationWindow 的窗口調整通知。\n * FS-103:背壓反饋迴路\n */\n notifyWindowAdjustment(oldWindowMs: number, newWindowMs: number): void {\n // 記錄窗口調整\n this.windowAdjustmentHistory.push({\n timestamp: Date.now(),\n from: oldWindowMs,\n to: newWindowMs,\n reason: this.state,\n })\n\n // 窗口縮小意味著加速處理,可能有助於恢復\n // 如果從 CRITICAL 調整到更大窗口,檢查是否可以降級\n if (newWindowMs > oldWindowMs && this.state === BackpressureState.CRITICAL) {\n this.checkStateRecovery()\n }\n }\n\n /**\n * 檢查是否可以從 CRITICAL 或更高級別降級。\n * FS-103:自動狀態恢復機制\n */\n private checkStateRecovery(): void {\n if (this.config.maxQueueSize === Number.POSITIVE_INFINITY) {\n return // 無限隊列,無需降級檢查\n }\n\n const totalDepth = this.depthByPriority.total\n const hysteresisRatio = 0.8 // 遲滯設計:80% 恢復比例\n\n // 檢查從 CRITICAL 到 WARNING 的降級條件\n if (this.state === BackpressureState.CRITICAL) {\n const criticalThreshold =\n this.config.maxQueueSize * (this.config.thresholds?.critical ?? 0.85)\n if (totalDepth <= criticalThreshold * hysteresisRatio) {\n this.transitionTo(BackpressureState.WARNING)\n }\n }\n\n // 檢查從 WARNING 到 NORMAL 的降級條件\n if (this.state === BackpressureState.WARNING) {\n const warningThreshold = this.config.maxQueueSize * (this.config.thresholds?.warning ?? 0.6)\n if (totalDepth <= warningThreshold * hysteresisRatio) {\n this.transitionTo(BackpressureState.NORMAL)\n }\n }\n }\n\n /**\n * 決定是否應該將事件路由到死信隊列。\n * FS-103:智能 DLQ 路由決策\n */\n makeDeadLetterDecision(\n _eventName: string,\n priority: 'critical' | 'high' | 'normal' | 'low'\n ): DeadLetterDecision {\n // 規則 1:非 OVERFLOW 狀態永不路由到 DLQ\n if (this.state !== BackpressureState.OVERFLOW) {\n return { shouldRoute: false }\n }\n\n // 規則 2:配置禁用 DLQ\n if (!this.config.dlqOnOverflow) {\n return {\n shouldRoute: false,\n reason: 'DLQ disabled in config',\n }\n }\n\n // 規則 3:優先級決策\n // LOW 優先級在 OVERFLOW 時總是路由到 DLQ\n if (priority === 'low') {\n this.dlqRouteCount++\n return {\n shouldRoute: true,\n reason: 'Low priority event during OVERFLOW state',\n retryStrategy: 'dlq-only',\n }\n }\n\n // 檢查 CRITICAL 隊列容量\n const criticalCapacity = this.config.maxSizeByPriority?.critical ?? this.config.maxQueueSize\n const criticalCapacityPercent = (this.depthByPriority.critical / criticalCapacity) * 100\n\n if (criticalCapacityPercent > 90) {\n // CRITICAL 隊列接近滿,NORMAL 優先級也路由到 DLQ\n if (priority === 'normal') {\n this.dlqRouteCount++\n return {\n shouldRoute: true,\n reason: `CRITICAL queue at ${criticalCapacityPercent.toFixed(1)}% capacity`,\n retryStrategy: 'dlq-only',\n }\n }\n }\n\n // HIGH 和 CRITICAL 優先級建議延遲重試\n return {\n shouldRoute: false,\n retryStrategy: 'delayed',\n }\n }\n\n /**\n * 更新背壓狀態。\n * 使用遲滯設計(80% 回復比例)避免邊界震盪。\n */\n private updateState(totalDepth: number): void {\n if (this.config.maxQueueSize === Number.POSITIVE_INFINITY) {\n return // 無限隊列,不進行狀態管理\n }\n\n const depthRatio = totalDepth / this.config.maxQueueSize\n const warning = this.config.thresholds?.warning ?? 0.6\n const critical = this.config.thresholds?.critical ?? 0.85\n const overflow = this.config.thresholds?.overflow ?? 1.0\n const hysteresisRatio = 0.8 // 80% 回復比例\n\n let newState = this.state\n\n // 升級路徑:總是立即升級(無遲滯)\n if (depthRatio >= overflow) {\n newState = BackpressureState.OVERFLOW\n } else if (depthRatio >= critical) {\n newState = BackpressureState.CRITICAL\n } else if (depthRatio >= warning) {\n // 在 warning 到 critical 之間\n // 檢查是否應該從 CRITICAL 或更高級別降級\n if (depthRatio < critical * hysteresisRatio && this.state === BackpressureState.CRITICAL) {\n // 從 CRITICAL 降級到 WARNING\n newState = BackpressureState.WARNING\n } else if (\n depthRatio < overflow * hysteresisRatio &&\n this.state === BackpressureState.OVERFLOW\n ) {\n // 從 OVERFLOW 降級到 CRITICAL\n newState = BackpressureState.CRITICAL\n } else if (this.state === BackpressureState.NORMAL) {\n // 從 NORMAL 升級到 WARNING\n newState = BackpressureState.WARNING\n }\n // 否則保持當前狀態(WARNING、CRITICAL、OVERFLOW 保持)\n } else {\n // depthRatio < warning,檢查進一步降級(遲滯設計)\n if (this.state === BackpressureState.WARNING && depthRatio < warning * hysteresisRatio) {\n newState = BackpressureState.NORMAL\n } else if (\n this.state === BackpressureState.CRITICAL &&\n depthRatio < critical * hysteresisRatio\n ) {\n newState = BackpressureState.WARNING\n } else if (\n this.state === BackpressureState.OVERFLOW &&\n depthRatio < overflow * hysteresisRatio\n ) {\n newState = BackpressureState.CRITICAL\n }\n // 否則保持當前狀態\n }\n\n if (newState !== this.state) {\n this.transitionTo(newState)\n }\n }\n\n /**\n * 執行狀態轉換。\n */\n private transitionTo(newState: BackpressureState): void {\n const oldState = this.state\n this.state = newState\n this.stateTransitions++\n\n if (this.onStateChange) {\n this.onStateChange(oldState, newState)\n }\n }\n\n /**\n * 建立決策結果並記錄拒絕。\n */\n private createDecision(\n allowed: boolean,\n reason: string,\n eventName: string,\n priority: string\n ): BackpressureDecision {\n if (!allowed) {\n this.rejectedCount++\n if (this.onRejected) {\n this.onRejected(eventName, priority, reason)\n }\n }\n return { allowed, reason }\n }\n}\n",
|
|
102
104
|
"import type { EventOptions } from './EventOptions'\nimport type { EventTask } from './types'\n\n/**\n * 優先級升級管理器\n *\n * 根據事件等待時間動態調整優先級,實施優先級提升機制。\n * 確保關鍵事件不會因為隊列深度而長時間等待。\n *\n * 升級規則(可配置):\n * - LOW 等待 > 200ms → NORMAL\n * - NORMAL 等待 > 100ms → HIGH\n * - HIGH 等待 > 50ms → CRITICAL\n * - 超過 maxWaitTimeMs → 強制 CRITICAL\n *\n * @internal\n */\nexport class PriorityEscalationManager {\n /**\n * 計算事件當前應該的優先級\n * 根據等待時間動態調整\n */\n static calculateCurrentPriority(\n task: EventTask,\n config?: EventOptions['escalation']\n ): 'critical' | 'high' | 'normal' | 'low' {\n // 如果未啟用升級,返回原始優先級\n if (config?.enabled === false) {\n return (task.options.priority as any) || 'normal'\n }\n\n const nowMs = Date.now()\n const waitTimeMs = nowMs - task.enqueuedAt\n const maxWaitTimeMs = config?.maxWaitTimeMs ?? 500\n\n // 超過最大等待時間,強制 CRITICAL\n if (waitTimeMs > maxWaitTimeMs) {\n return 'critical'\n }\n\n const defaultThresholds = {\n lowToNormal: 200,\n normalToHigh: 100,\n highToCritical: 50,\n }\n const thresholds = { ...defaultThresholds, ...config?.thresholds }\n\n const currentPriority = (task.options.priority as any) || 'normal'\n\n // LOW → NORMAL(等待 > 200ms)\n if (currentPriority === 'low' && waitTimeMs > thresholds.lowToNormal) {\n return 'normal'\n }\n\n // NORMAL → HIGH(等待 > 100ms)\n if (currentPriority === 'normal' && waitTimeMs > thresholds.normalToHigh) {\n return 'high'\n }\n\n // HIGH → CRITICAL(等待 > 50ms)\n if (currentPriority === 'high' && waitTimeMs > thresholds.highToCritical) {\n return 'critical'\n }\n\n return currentPriority\n }\n\n /**\n * 比較兩個事件的優先級\n * @returns 負數表示 task1 優先級更高,正數表示 task2 優先級更高\n */\n static comparePriority(task1: EventTask, task2: EventTask): number {\n const priority1 = (task1.options.priority as any) || 'normal'\n const priority2 = (task2.options.priority as any) || 'normal'\n\n const priorityOrder: Record<string, number> = {\n critical: 0,\n high: 1,\n normal: 2,\n low: 3,\n }\n\n // 按優先級排序\n const priorityDiff = priorityOrder[priority1] - priorityOrder[priority2]\n if (priorityDiff !== 0) {\n return priorityDiff\n }\n\n // 優先級相同時,按入隊時間排序(先進先出)\n return task1.enqueuedAt - task2.enqueuedAt\n }\n\n /**\n * 判斷事件是否應該立即處理(跳過隊列)\n */\n static shouldProcessImmediately(task: EventTask, config?: EventOptions['escalation']): boolean {\n const currentPriority = this.calculateCurrentPriority(task, config)\n return currentPriority === 'critical'\n }\n\n /**\n * 獲取事件當前的超期時間(毫秒)\n * 正數表示已超期,0 表示未超期\n */\n static calculateOverdueTime(task: EventTask, config?: EventOptions['escalation']): number {\n const nowMs = Date.now()\n const waitTimeMs = nowMs - task.enqueuedAt\n const currentPriority = this.calculateCurrentPriority(task, config)\n\n const expectedDelays: Record<string, number> = {\n critical: 1,\n high: 50,\n normal: 200,\n low: 500,\n }\n\n const expectedDelay = expectedDelays[currentPriority] ?? 500\n return Math.max(0, waitTimeMs - expectedDelay)\n }\n}\n\n/**\n * 優先級統計器\n * 追蹤優先級分布和升級事件\n *\n * @internal\n */\nexport class PriorityStatistics {\n private eventCounts: Record<'critical' | 'high' | 'normal' | 'low', number> = {\n critical: 0,\n high: 0,\n normal: 0,\n low: 0,\n }\n\n private escalationCounts: Map<string, number> = new Map()\n private totalEscalations = 0\n\n /**\n * 記錄一個優先級的事件\n */\n recordEvent(priority: 'critical' | 'high' | 'normal' | 'low'): void {\n this.eventCounts[priority] = (this.eventCounts[priority] ?? 0) + 1\n }\n\n /**\n * 記錄優先級升級\n */\n recordEscalation(\n fromPriority: 'critical' | 'high' | 'normal' | 'low',\n toPriority: 'critical' | 'high' | 'normal' | 'low'\n ): void {\n if (fromPriority === toPriority) {\n return\n }\n const key = `${fromPriority}->${toPriority}`\n this.escalationCounts.set(key, (this.escalationCounts.get(key) ?? 0) + 1)\n this.totalEscalations++\n }\n\n /**\n * 獲取優先級分布\n */\n getDistribution(): Record<'critical' | 'high' | 'normal' | 'low', string> {\n const total = Object.values(this.eventCounts).reduce((a, b) => a + b, 0)\n if (total === 0) {\n return {\n critical: '0%',\n high: '0%',\n normal: '0%',\n low: '0%',\n }\n }\n\n return {\n critical: `${((this.eventCounts.critical / total) * 100).toFixed(2)}%`,\n high: `${((this.eventCounts.high / total) * 100).toFixed(2)}%`,\n normal: `${((this.eventCounts.normal / total) * 100).toFixed(2)}%`,\n low: `${((this.eventCounts.low / total) * 100).toFixed(2)}%`,\n }\n }\n\n /**\n * 獲取升級統計\n */\n getEscalationStats(): {\n total: number\n byTransition: Record<string, number>\n } {\n return {\n total: this.totalEscalations,\n byTransition: Object.fromEntries(this.escalationCounts),\n }\n }\n\n /**\n * 重置統計信息\n */\n reset(): void {\n this.eventCounts = {\n critical: 0,\n high: 0,\n normal: 0,\n low: 0,\n }\n this.escalationCounts.clear()\n this.totalEscalations = 0\n }\n\n /**\n * 獲取所有統計信息\n */\n getStats(): {\n eventCounts: Record<'critical' | 'high' | 'normal' | 'low', number>\n escalationStats: {\n total: number\n byTransition: Record<string, number>\n }\n distribution: Record<'critical' | 'high' | 'normal' | 'low', string>\n } {\n return {\n eventCounts: this.eventCounts,\n escalationStats: this.getEscalationStats(),\n distribution: this.getDistribution(),\n }\n }\n}\n",
|
|
103
105
|
"import { BackpressureManager } from './BackpressureManager'\nimport type { DeadLetterQueue } from './DeadLetterQueue'\nimport type { OTelEventMetrics } from './observability/OTelEventMetrics'\nimport { PriorityEscalationManager, type PriorityStatistics } from './PriorityEscalationManager'\nimport type {\n BackpressureStrategy,\n EventQueueConfig,\n EventTask,\n MultiPriorityQueueDepth,\n} from './types'\n\n/**\n * Result of an enqueue operation.\n *\n * - `{ status: 'queued', id }` - Task successfully queued\n * - `{ status: 'dropped' }` - Task dropped due to backpressure\n * - `{ status: 'delayed', id, delayMs }` - Task should be re-enqueued after delayMs\n *\n * @internal\n */\nexport type EnqueueResult =\n | { status: 'queued'; id: string }\n | { status: 'dropped' }\n | { status: 'delayed'; id: string; delayMs: number }\n\n/**\n * Priority queue core: manages event task queues and backpressure.\n *\n * Handles enqueueing, dequeuing, backpressure logic, and priority escalation.\n * This class is used internally by EventPriorityQueue as a composition target.\n *\n * @internal\n */\nexport class QueueCore {\n criticalPriority: EventTask[] = []\n highPriority: EventTask[] = []\n normalPriority: EventTask[] = []\n lowPriority: EventTask[] = []\n processingPartitions: Set<string> = new Set()\n\n private taskIdCounter = 0\n private dlq?: DeadLetterQueue\n private otelEventMetrics?: OTelEventMetrics\n private backpressureManager?: BackpressureManager\n private priorityStats?: PriorityStatistics\n private config: EventQueueConfig\n\n constructor(config: EventQueueConfig = {}) {\n this.config = config\n if (config.backpressure?.enabled !== false && config.backpressure) {\n this.backpressureManager = new BackpressureManager(config.backpressure)\n }\n }\n\n setDeadLetterQueue(dlq: DeadLetterQueue): void {\n this.dlq = dlq\n }\n\n setOTelEventMetrics(metrics: OTelEventMetrics): void {\n this.otelEventMetrics = metrics\n }\n\n setPriorityStatistics(stats: PriorityStatistics): void {\n this.priorityStats = stats\n }\n\n getPriorityStatistics(): PriorityStatistics | undefined {\n return this.priorityStats\n }\n\n getBackpressureManager(): BackpressureManager | undefined {\n return this.backpressureManager\n }\n\n getConfig(): EventQueueConfig {\n return this.config\n }\n\n getDLQ(): DeadLetterQueue | undefined {\n return this.dlq\n }\n\n createTaskId(): string {\n return `task-${++this.taskIdCounter}-${Date.now()}`\n }\n\n /**\n * Enqueue a task into the appropriate priority queue.\n * Applies priority escalation and backpressure logic.\n */\n enqueue(task: EventTask): EnqueueResult {\n // === Apply priority escalation if enabled ===\n if (task.options.escalation?.enabled !== false) {\n const originalPriority = task.options.priority || 'normal'\n const escalatedPriority = PriorityEscalationManager.calculateCurrentPriority(\n task,\n task.options.escalation\n )\n\n if (escalatedPriority !== originalPriority) {\n this.priorityStats?.recordEscalation(originalPriority, escalatedPriority)\n this.otelEventMetrics?.recordPriorityEscalation(\n task.hook,\n originalPriority,\n escalatedPriority\n )\n }\n\n task.options.priority = escalatedPriority\n }\n\n const priority = task.options.priority || 'normal'\n this.priorityStats?.recordEvent(priority as any)\n\n // === Evaluate advanced backpressure if enabled ===\n if (this.backpressureManager) {\n const decision = this.backpressureManager.evaluate(\n task.hook,\n priority as 'critical' | 'high' | 'normal' | 'low',\n this.getDepth(),\n {\n critical: this.criticalPriority.length,\n high: this.highPriority.length,\n normal: this.normalPriority.length,\n low: this.lowPriority.length,\n }\n )\n\n if (!decision.allowed) {\n this.otelEventMetrics?.recordBackpressureRejection(\n task.hook,\n priority,\n decision.reason || 'unknown'\n )\n\n if (decision.isOverflow && this.config.backpressure?.dlqOnOverflow && this.dlq) {\n const overflowError = new Error(`Backpressure OVERFLOW: ${decision.reason}`)\n this.dlq.add(\n task.hook,\n task.args,\n task.options,\n overflowError,\n task.retryCount || 0,\n Date.now(),\n 'backpressure_overflow'\n )\n this.otelEventMetrics?.recordDLQEntry(task.hook, 'backpressure_overflow')\n }\n\n if (this.config.backpressure?.rejectionPolicy === 'throw') {\n throw new Error(`[BackpressureManager] Event rejected: ${decision.reason}`)\n }\n return { status: 'dropped' }\n }\n\n if (decision.delayed && decision.delayMs) {\n return { status: 'delayed', id: task.id, delayMs: decision.delayMs }\n }\n }\n\n // === Fall back to simple backpressure (maxSize + strategy) ===\n if (this.config.maxSize && this.getDepth() >= this.config.maxSize) {\n if (!this.handleBackpressure(task.hook)) {\n return { status: 'dropped' }\n }\n }\n\n const finalPriority = task.options.priority || 'normal'\n\n switch (finalPriority) {\n case 'critical':\n this.criticalPriority.push(task)\n break\n case 'high':\n this.highPriority.push(task)\n break\n case 'normal':\n this.normalPriority.push(task)\n break\n case 'low':\n this.lowPriority.push(task)\n break\n }\n\n this.syncBackpressure()\n return { status: 'queued', id: task.id }\n }\n\n /**\n * Dequeue the next task based on priority and partition ordering.\n * Priority order: CRITICAL > HIGH > NORMAL > LOW\n */\n dequeue(): EventTask | undefined {\n return (\n this.dequeueFromPriority(this.criticalPriority) ||\n this.dequeueFromPriority(this.highPriority) ||\n this.dequeueFromPriority(this.normalPriority) ||\n this.dequeueFromPriority(this.lowPriority)\n )\n }\n\n /**\n * Re-enqueue a task for retry.\n */\n enqueueRetry(task: EventTask): void {\n const priority = task.options.priority || 'normal'\n\n switch (priority) {\n case 'high':\n this.highPriority.push(task)\n break\n case 'normal':\n this.normalPriority.push(task)\n break\n case 'low':\n this.lowPriority.push(task)\n break\n }\n }\n\n getDepth(): number {\n return (\n this.criticalPriority.length +\n this.highPriority.length +\n this.normalPriority.length +\n this.lowPriority.length\n )\n }\n\n getDepthByPriority(priority: 'critical' | 'high' | 'normal' | 'low'): number {\n switch (priority) {\n case 'critical':\n return this.criticalPriority.length\n case 'high':\n return this.highPriority.length\n case 'normal':\n return this.normalPriority.length\n case 'low':\n return this.lowPriority.length\n }\n }\n\n getQueueDepthByPriority(): MultiPriorityQueueDepth {\n return {\n critical: this.criticalPriority.length,\n high: this.highPriority.length,\n normal: this.normalPriority.length,\n low: this.lowPriority.length,\n total: this.getDepth(),\n }\n }\n\n clear(): void {\n this.highPriority = []\n this.normalPriority = []\n this.lowPriority = []\n }\n\n syncBackpressure(): void {\n if (!this.backpressureManager) {\n return\n }\n const depths = this.getQueueDepthByPriority()\n this.backpressureManager.updateQueueDepth(depths)\n }\n\n private handleBackpressure(hook: string): boolean {\n const strategy = this.config.strategy || 'reject'\n\n switch (strategy) {\n case 'reject':\n throw new Error(\n `[EventPriorityQueue] Queue full (size: ${this.config.maxSize}). Rejected event '${hook}'.`\n )\n case 'drop-newest':\n console.warn(`[EventPriorityQueue] Queue full. Dropping new event '${hook}' (drop-newest).`)\n return false\n case 'ignore':\n return false\n case 'drop-oldest':\n this.dropOldest()\n return true\n default:\n throw new Error(\n `[EventPriorityQueue] Queue full (size: ${this.config.maxSize}). Rejected event '${hook}'.`\n )\n }\n }\n\n private dropOldest(): void {\n if (this.lowPriority.length > 0) {\n const dropped = this.lowPriority.shift()\n console.warn(\n `[EventPriorityQueue] Queue full. Dropped oldest LOW priority event '${dropped?.hook}'.`\n )\n return\n }\n if (this.normalPriority.length > 0) {\n const dropped = this.normalPriority.shift()\n console.warn(\n `[EventPriorityQueue] Queue full. Dropped oldest NORMAL priority event '${dropped?.hook}'.`\n )\n return\n }\n if (this.highPriority.length > 0) {\n const dropped = this.highPriority.shift()\n console.warn(\n `[EventPriorityQueue] Queue full. Dropped oldest HIGH priority event '${dropped?.hook}'.`\n )\n return\n }\n if (this.criticalPriority.length > 0) {\n const dropped = this.criticalPriority.shift()\n console.warn(\n `[EventPriorityQueue] Queue full. Dropped oldest CRITICAL priority event '${dropped?.hook}'.`\n )\n return\n }\n }\n\n private dequeueFromPriority(queue: EventTask[]): EventTask | undefined {\n const taskIndex = queue.findIndex((task) => {\n if (task.options.ordering !== 'partition' || !task.partitionKey) {\n return true\n }\n return !this.processingPartitions.has(task.partitionKey)\n })\n\n if (taskIndex === -1) {\n return undefined\n }\n\n return queue.splice(taskIndex, 1)[0]\n }\n}\n\nexport type { BackpressureStrategy, EventQueueConfig, EventTask }\n",
|
|
104
|
-
"/**\n * Circuit Breaker state enum.\n * @public\n */\nexport enum CircuitBreakerState {\n CLOSED = 'CLOSED',\n OPEN = 'OPEN',\n HALF_OPEN = 'HALF_OPEN',\n}\n\n/**\n * Circuit Breaker metrics snapshot.\n * @public\n */\nexport interface CircuitBreakerMetrics {\n /**\n * Current state of the circuit breaker\n */\n state: CircuitBreakerState\n\n /**\n * Number of failures in the current window\n */\n failures: number\n\n /**\n * Number of successes in the current window\n */\n successes: number\n\n /**\n * Timestamp of the last failure\n */\n lastFailureAt?: Date\n\n /**\n * Timestamp of the last success\n */\n lastSuccessAt?: Date\n\n /**\n * Timestamp when the circuit was opened\n */\n openedAt?: Date\n\n /**\n * Total requests processed\n */\n totalRequests: number\n\n /**\n * Total failures recorded\n */\n totalFailures: number\n\n /**\n * Total successes recorded\n */\n totalSuccesses: number\n}\n\n/**\n * Circuit Breaker metrics recorder interface.\n * @public\n */\nexport interface CircuitBreakerMetricsRecorder {\n /**\n * Record current state of the circuit breaker.\n * @param eventName - Name of the event\n * @param state - State as number (0=CLOSED, 1=HALF_OPEN, 2=OPEN)\n */\n recordState: (eventName: string, state: number) => void\n\n /**\n * Record state transition.\n */\n recordTransition: (eventName: string, fromState: string, toState: string) => void\n\n /**\n * Record a failure.\n */\n recordFailure: (eventName: string) => void\n\n /**\n * Record a success.\n */\n recordSuccess: (eventName: string) => void\n\n /**\n * Record OPEN state duration.\n */\n recordOpenDuration: (eventName: string, seconds: number) => void\n}\n\n/**\n * Circuit Breaker configuration options.\n * @public\n */\nexport interface CircuitBreakerOptions {\n /**\n * Number of consecutive failures before opening the circuit.\n * @default 5\n */\n failureThreshold?: number\n\n /**\n * Time in milliseconds to wait before attempting to close the circuit (move to HALF_OPEN).\n * @default 30000\n */\n resetTimeout?: number\n\n /**\n * Number of test requests to allow given the circuit is in HALF_OPEN state.\n * If these succeed, the circuit closes. If any fail, it opens again.\n * @default 3\n */\n halfOpenRequests?: number\n\n /**\n * Number of successes required in HALF_OPEN state to close the circuit.\n * @default 2\n */\n successThreshold?: number\n\n /**\n * Time in milliseconds for the sliding window to track failures.\n * Failures outside this window are not counted.\n * @default 60000\n */\n windowSize?: number\n\n /**\n * Enable or disable the circuit breaker.\n * @default true\n */\n enabled?: boolean\n\n /**\n * Callback when circuit opens.\n */\n onOpen?: (name?: string) => void\n\n /**\n * Callback when circuit moves to half-open.\n */\n onHalfOpen?: (name?: string) => void\n\n /**\n * Callback when circuit closes.\n */\n onClose?: (name?: string) => void\n\n /**\n * Metrics recorder for recording circuit breaker events.\n * Optional - if not provided, metrics will not be recorded.\n */\n metricsRecorder?: CircuitBreakerMetricsRecorder | undefined\n}\n\n/**\n * Required Circuit Breaker configuration (with defaults applied).\n * @internal\n */\nexport interface RequiredCircuitBreakerOptions\n extends Required<Omit<CircuitBreakerOptions, 'metricsRecorder'>> {\n metricsRecorder?: CircuitBreakerMetricsRecorder\n}\n\n/**\n * Circuit Breaker implementation for fault tolerance.\n *\n * Prevents cascading failures by stopping execution of a failing operation\n * for a specified period after a threshold of failures is reached.\n *\n * Supports sliding window algorithm, enabling/disabling, and detailed metrics.\n *\n * @public\n */\nexport class CircuitBreaker {\n private state: CircuitBreakerState = CircuitBreakerState.CLOSED\n private failureCount = 0\n private successCount = 0\n private name: string\n private config: RequiredCircuitBreakerOptions\n private metricsRecorder?: CircuitBreakerMetricsRecorder\n\n // Advanced tracking\n private lastFailureAt?: Date\n private lastSuccessAt?: Date\n private openedAt?: Date\n private totalRequests = 0\n private totalFailures = 0\n private totalSuccesses = 0\n private halfOpenAttempts = 0\n\n /**\n * Create a new Circuit Breaker.\n *\n * Supports two signatures for backward compatibility:\n * - CircuitBreaker(options?: CircuitBreakerOptions) - anonymous breaker\n * - CircuitBreaker(name: string, options?: CircuitBreakerOptions) - named breaker\n *\n * @param nameOrOptions - Circuit breaker name or options\n * @param maybeOptions - Options (used when first param is a string)\n */\n constructor(\n nameOrOptions?: string | CircuitBreakerOptions,\n maybeOptions?: CircuitBreakerOptions\n ) {\n // Parse overloaded constructor\n let options: CircuitBreakerOptions = {}\n\n if (typeof nameOrOptions === 'string') {\n this.name = nameOrOptions\n options = maybeOptions || {}\n } else if (typeof nameOrOptions === 'object' && nameOrOptions !== null) {\n this.name = 'circuit-breaker'\n options = nameOrOptions\n } else {\n this.name = 'circuit-breaker'\n }\n\n // Store metrics recorder if provided\n this.metricsRecorder = options.metricsRecorder\n\n // Apply defaults\n this.config = {\n failureThreshold: 5,\n resetTimeout: 30000,\n halfOpenRequests: 3,\n successThreshold: 2,\n windowSize: 60000,\n enabled: true,\n onOpen: options.onOpen || (() => {}),\n onHalfOpen: options.onHalfOpen || (() => {}),\n onClose: options.onClose || (() => {}),\n ...options,\n }\n }\n\n /**\n * Execute an operation through the circuit breaker.\n *\n * @param operation - Async operation to execute\n * @returns Operation result\n * @throws Error if circuit is open or operation fails\n */\n async execute<T>(operation: () => Promise<T>): Promise<T> {\n if (!this.config.enabled) {\n return await operation()\n }\n\n this.checkStateTransition()\n\n const now = Date.now()\n\n if (this.state === CircuitBreakerState.OPEN) {\n throw new Error(`Circuit is OPEN for ${this.name}`)\n }\n\n this.totalRequests++\n\n if (this.lastFailureAt) {\n const elapsed = now - this.lastFailureAt.getTime()\n if (elapsed >= this.config.windowSize) {\n this.failureCount = 0\n }\n }\n\n try {\n const result = await operation()\n this.onSuccess()\n return result\n } catch (error) {\n this.onFailure()\n throw error\n }\n }\n\n /**\n * Check if the circuit breaker is currently OPEN.\n */\n isOpen(): boolean {\n this.checkStateTransition()\n return this.state === CircuitBreakerState.OPEN\n }\n\n /**\n * Check if the circuit breaker is currently HALF_OPEN.\n */\n isHalfOpen(): boolean {\n this.checkStateTransition()\n return this.state === CircuitBreakerState.HALF_OPEN\n }\n\n /**\n * Check if the circuit breaker is currently CLOSED.\n */\n isClosed(): boolean {\n this.checkStateTransition()\n return this.state === CircuitBreakerState.CLOSED\n }\n\n /**\n * Get current state of the circuit breaker.\n */\n getState(): CircuitBreakerState {\n return this.state\n }\n\n /**\n * Get failure count (deprecated, use getMetrics for complete information).\n */\n getFailureCount(): number {\n return this.failureCount\n }\n\n /**\n * Get the name of this circuit breaker.\n */\n getName(): string {\n return this.name\n }\n\n /**\n * Get detailed metrics snapshot of the circuit breaker.\n */\n getMetrics(): CircuitBreakerMetrics {\n return {\n state: this.state,\n failures: this.failureCount,\n successes: this.successCount,\n lastFailureAt: this.lastFailureAt,\n lastSuccessAt: this.lastSuccessAt,\n openedAt: this.openedAt,\n totalRequests: this.totalRequests,\n totalFailures: this.totalFailures,\n totalSuccesses: this.totalSuccesses,\n }\n }\n\n /**\n * Manually reset the circuit breaker to CLOSED state.\n */\n reset(): void {\n this.failureCount = 0\n this.successCount = 0\n this.halfOpenAttempts = 0\n this.openedAt = undefined\n this.transitionTo(CircuitBreakerState.CLOSED)\n }\n\n /**\n * Forcefully reset the circuit breaker (alias for reset).\n */\n manualReset(): void {\n this.reset()\n }\n\n /**\n * Check for automatic state transitions based on time and sliding window.\n */\n checkStateTransition(): void {\n if (this.state === CircuitBreakerState.OPEN && this.openedAt) {\n const elapsed = Date.now() - this.openedAt.getTime()\n if (elapsed >= this.config.resetTimeout) {\n this.transitionTo(CircuitBreakerState.HALF_OPEN)\n this.halfOpenAttempts = 0\n }\n }\n\n if (this.lastFailureAt) {\n const elapsed = Date.now() - this.lastFailureAt.getTime()\n if (elapsed >= this.config.windowSize) {\n this.failureCount = 0\n }\n }\n }\n\n private onSuccess(): void {\n this.lastSuccessAt = new Date()\n this.successCount++\n this.totalSuccesses++\n\n this.metricsRecorder?.recordSuccess(this.name)\n\n if (this.state === CircuitBreakerState.HALF_OPEN) {\n this.halfOpenAttempts++\n if (this.halfOpenAttempts >= this.config.successThreshold) {\n this.transitionTo(CircuitBreakerState.CLOSED)\n this.reset()\n }\n } else if (this.state === CircuitBreakerState.CLOSED) {\n this.failureCount = 0\n }\n }\n\n private onFailure(): void {\n this.lastFailureAt = new Date()\n this.totalFailures++\n this.failureCount++\n\n this.metricsRecorder?.recordFailure(this.name)\n\n if (this.state === CircuitBreakerState.HALF_OPEN) {\n this.transitionTo(CircuitBreakerState.OPEN)\n this.openedAt = new Date()\n } else if (this.state === CircuitBreakerState.CLOSED) {\n if (this.failureCount >= this.config.failureThreshold) {\n this.transitionTo(CircuitBreakerState.OPEN)\n this.openedAt = new Date()\n }\n } else if (this.state === CircuitBreakerState.OPEN) {\n this.openedAt = new Date()\n }\n }\n\n private transitionTo(newState: CircuitBreakerState): void {\n const oldState = this.state\n\n if (this.metricsRecorder && oldState !== newState) {\n this.metricsRecorder.recordTransition(this.name, oldState, newState)\n this.metricsRecorder.recordState(this.name, this.stateToNumber(newState))\n }\n\n if (oldState === CircuitBreakerState.OPEN && this.openedAt && this.metricsRecorder) {\n const duration = (Date.now() - this.openedAt.getTime()) / 1000\n this.metricsRecorder.recordOpenDuration(this.name, duration)\n }\n\n this.state = newState\n\n switch (newState) {\n case CircuitBreakerState.OPEN:\n this.config.onOpen(this.name)\n break\n case CircuitBreakerState.HALF_OPEN:\n this.halfOpenAttempts = 0\n this.config.onHalfOpen(this.name)\n break\n case CircuitBreakerState.CLOSED:\n this.failureCount = 0\n this.successCount = 0\n this.halfOpenAttempts = 0\n this.openedAt = undefined\n this.config.onClose(this.name)\n break\n }\n }\n\n private stateToNumber(state: CircuitBreakerState): number {\n switch (state) {\n case CircuitBreakerState.CLOSED:\n return 0\n case CircuitBreakerState.HALF_OPEN:\n return 1\n case CircuitBreakerState.OPEN:\n return 2\n default:\n return 0\n }\n }\n}\n",
|
|
106
|
+
"/**\n * Event-system CircuitBreaker — standalone copy.\n *\n * NOTE: This is intentionally NOT a re-export from @gravito/resilience\n * to avoid a circular dependency (core <-> resilience):\n * @gravito/core -> @gravito/resilience (peerDep of resilience -> core)\n *\n * The canonical CB implementation lives in @gravito/resilience.\n * Keep this file in sync manually if the canonical CB API changes.\n *\n * Per D-02 decision recorded in 17-RESEARCH.md.\n */\n\n/**\n * Circuit Breaker state enum.\n * @public\n */\nexport enum CircuitBreakerState {\n CLOSED = 'CLOSED',\n OPEN = 'OPEN',\n HALF_OPEN = 'HALF_OPEN',\n}\n\n/**\n * Circuit Breaker metrics snapshot.\n * @public\n */\nexport interface CircuitBreakerMetrics {\n /**\n * Current state of the circuit breaker\n */\n state: CircuitBreakerState\n\n /**\n * Number of failures in the current window\n */\n failures: number\n\n /**\n * Number of successes in the current window\n */\n successes: number\n\n /**\n * Timestamp of the last failure\n */\n lastFailureAt?: Date\n\n /**\n * Timestamp of the last success\n */\n lastSuccessAt?: Date\n\n /**\n * Timestamp when the circuit was opened\n */\n openedAt?: Date\n\n /**\n * Total requests processed\n */\n totalRequests: number\n\n /**\n * Total failures recorded\n */\n totalFailures: number\n\n /**\n * Total successes recorded\n */\n totalSuccesses: number\n}\n\n/**\n * Circuit Breaker metrics recorder interface.\n * @public\n */\nexport interface CircuitBreakerMetricsRecorder {\n /**\n * Record current state of the circuit breaker.\n * @param eventName - Name of the event\n * @param state - State as number (0=CLOSED, 1=HALF_OPEN, 2=OPEN)\n */\n recordState: (eventName: string, state: number) => void\n\n /**\n * Record state transition.\n */\n recordTransition: (eventName: string, fromState: string, toState: string) => void\n\n /**\n * Record a failure.\n */\n recordFailure: (eventName: string) => void\n\n /**\n * Record a success.\n */\n recordSuccess: (eventName: string) => void\n\n /**\n * Record OPEN state duration.\n */\n recordOpenDuration: (eventName: string, seconds: number) => void\n}\n\n/**\n * Circuit Breaker configuration options.\n * @public\n */\nexport interface CircuitBreakerOptions {\n /**\n * Number of consecutive failures before opening the circuit.\n * @default 5\n */\n failureThreshold?: number\n\n /**\n * Time in milliseconds to wait before attempting to close the circuit (move to HALF_OPEN).\n * @default 30000\n */\n resetTimeout?: number\n\n /**\n * Number of test requests to allow given the circuit is in HALF_OPEN state.\n * If these succeed, the circuit closes. If any fail, it opens again.\n * @default 3\n */\n halfOpenRequests?: number\n\n /**\n * Number of successes required in HALF_OPEN state to close the circuit.\n * @default 2\n */\n successThreshold?: number\n\n /**\n * Time in milliseconds for the sliding window to track failures.\n * Failures outside this window are not counted.\n * @default 60000\n */\n windowSize?: number\n\n /**\n * Enable or disable the circuit breaker.\n * @default true\n */\n enabled?: boolean\n\n /**\n * Callback when circuit opens.\n */\n onOpen?: (name?: string) => void\n\n /**\n * Callback when circuit moves to half-open.\n */\n onHalfOpen?: (name?: string) => void\n\n /**\n * Callback when circuit closes.\n */\n onClose?: (name?: string) => void\n\n /**\n * Metrics recorder for recording circuit breaker events.\n * Optional - if not provided, metrics will not be recorded.\n */\n metricsRecorder?: CircuitBreakerMetricsRecorder | undefined\n}\n\n/**\n * Required Circuit Breaker configuration (with defaults applied).\n * @internal\n */\nexport interface RequiredCircuitBreakerOptions\n extends Required<Omit<CircuitBreakerOptions, 'metricsRecorder'>> {\n metricsRecorder?: CircuitBreakerMetricsRecorder\n}\n\n/**\n * Circuit Breaker implementation for fault tolerance.\n *\n * Prevents cascading failures by stopping execution of a failing operation\n * for a specified period after a threshold of failures is reached.\n *\n * Supports sliding window algorithm, enabling/disabling, and detailed metrics.\n *\n * @public\n */\nexport class CircuitBreaker {\n private state: CircuitBreakerState = CircuitBreakerState.CLOSED\n private failureCount = 0\n private successCount = 0\n private name: string\n private config: RequiredCircuitBreakerOptions\n private metricsRecorder?: CircuitBreakerMetricsRecorder\n\n // Advanced tracking\n private lastFailureAt?: Date\n private lastSuccessAt?: Date\n private openedAt?: Date\n private totalRequests = 0\n private totalFailures = 0\n private totalSuccesses = 0\n private halfOpenAttempts = 0\n\n /**\n * Create a new Circuit Breaker.\n *\n * Supports two signatures for backward compatibility:\n * - CircuitBreaker(options?: CircuitBreakerOptions) - anonymous breaker\n * - CircuitBreaker(name: string, options?: CircuitBreakerOptions) - named breaker\n *\n * @param nameOrOptions - Circuit breaker name or options\n * @param maybeOptions - Options (used when first param is a string)\n */\n constructor(\n nameOrOptions?: string | CircuitBreakerOptions,\n maybeOptions?: CircuitBreakerOptions\n ) {\n // Parse overloaded constructor\n let options: CircuitBreakerOptions = {}\n\n if (typeof nameOrOptions === 'string') {\n this.name = nameOrOptions\n options = maybeOptions || {}\n } else if (typeof nameOrOptions === 'object' && nameOrOptions !== null) {\n this.name = 'circuit-breaker'\n options = nameOrOptions\n } else {\n this.name = 'circuit-breaker'\n }\n\n // Store metrics recorder if provided\n this.metricsRecorder = options.metricsRecorder\n\n // Apply defaults\n this.config = {\n failureThreshold: 5,\n resetTimeout: 30000,\n halfOpenRequests: 3,\n successThreshold: 2,\n windowSize: 60000,\n enabled: true,\n onOpen: options.onOpen || (() => {}),\n onHalfOpen: options.onHalfOpen || (() => {}),\n onClose: options.onClose || (() => {}),\n ...options,\n }\n }\n\n /**\n * Execute an operation through the circuit breaker.\n *\n * @param operation - Async operation to execute\n * @returns Operation result\n * @throws Error if circuit is open or operation fails\n */\n async execute<T>(operation: () => Promise<T>): Promise<T> {\n if (!this.config.enabled) {\n return await operation()\n }\n\n this.checkStateTransition()\n\n const now = Date.now()\n\n if (this.state === CircuitBreakerState.OPEN) {\n throw new Error(`Circuit is OPEN for ${this.name}`)\n }\n\n this.totalRequests++\n\n if (this.lastFailureAt) {\n const elapsed = now - this.lastFailureAt.getTime()\n if (elapsed >= this.config.windowSize) {\n this.failureCount = 0\n }\n }\n\n try {\n const result = await operation()\n this.onSuccess()\n return result\n } catch (error) {\n this.onFailure()\n throw error\n }\n }\n\n /**\n * Check if the circuit breaker is currently OPEN.\n */\n isOpen(): boolean {\n this.checkStateTransition()\n return this.state === CircuitBreakerState.OPEN\n }\n\n /**\n * Check if the circuit breaker is currently HALF_OPEN.\n */\n isHalfOpen(): boolean {\n this.checkStateTransition()\n return this.state === CircuitBreakerState.HALF_OPEN\n }\n\n /**\n * Check if the circuit breaker is currently CLOSED.\n */\n isClosed(): boolean {\n this.checkStateTransition()\n return this.state === CircuitBreakerState.CLOSED\n }\n\n /**\n * Get current state of the circuit breaker.\n */\n getState(): CircuitBreakerState {\n return this.state\n }\n\n /**\n * Get failure count (deprecated, use getMetrics for complete information).\n */\n getFailureCount(): number {\n return this.failureCount\n }\n\n /**\n * Get the name of this circuit breaker.\n */\n getName(): string {\n return this.name\n }\n\n /**\n * Get detailed metrics snapshot of the circuit breaker.\n */\n getMetrics(): CircuitBreakerMetrics {\n return {\n state: this.state,\n failures: this.failureCount,\n successes: this.successCount,\n lastFailureAt: this.lastFailureAt,\n lastSuccessAt: this.lastSuccessAt,\n openedAt: this.openedAt,\n totalRequests: this.totalRequests,\n totalFailures: this.totalFailures,\n totalSuccesses: this.totalSuccesses,\n }\n }\n\n /**\n * Manually reset the circuit breaker to CLOSED state.\n */\n reset(): void {\n this.failureCount = 0\n this.successCount = 0\n this.halfOpenAttempts = 0\n this.openedAt = undefined\n this.transitionTo(CircuitBreakerState.CLOSED)\n }\n\n /**\n * Forcefully reset the circuit breaker (alias for reset).\n */\n manualReset(): void {\n this.reset()\n }\n\n /**\n * Check for automatic state transitions based on time and sliding window.\n */\n checkStateTransition(): void {\n if (this.state === CircuitBreakerState.OPEN && this.openedAt) {\n const elapsed = Date.now() - this.openedAt.getTime()\n if (elapsed >= this.config.resetTimeout) {\n this.transitionTo(CircuitBreakerState.HALF_OPEN)\n this.halfOpenAttempts = 0\n }\n }\n\n if (this.lastFailureAt) {\n const elapsed = Date.now() - this.lastFailureAt.getTime()\n if (elapsed >= this.config.windowSize) {\n this.failureCount = 0\n }\n }\n }\n\n private onSuccess(): void {\n this.lastSuccessAt = new Date()\n this.successCount++\n this.totalSuccesses++\n\n this.metricsRecorder?.recordSuccess(this.name)\n\n if (this.state === CircuitBreakerState.HALF_OPEN) {\n this.halfOpenAttempts++\n if (this.halfOpenAttempts >= this.config.successThreshold) {\n this.transitionTo(CircuitBreakerState.CLOSED)\n this.reset()\n }\n } else if (this.state === CircuitBreakerState.CLOSED) {\n this.failureCount = 0\n }\n }\n\n private onFailure(): void {\n this.lastFailureAt = new Date()\n this.totalFailures++\n this.failureCount++\n\n this.metricsRecorder?.recordFailure(this.name)\n\n if (this.state === CircuitBreakerState.HALF_OPEN) {\n this.transitionTo(CircuitBreakerState.OPEN)\n this.openedAt = new Date()\n } else if (this.state === CircuitBreakerState.CLOSED) {\n if (this.failureCount >= this.config.failureThreshold) {\n this.transitionTo(CircuitBreakerState.OPEN)\n this.openedAt = new Date()\n }\n } else if (this.state === CircuitBreakerState.OPEN) {\n this.openedAt = new Date()\n }\n }\n\n private transitionTo(newState: CircuitBreakerState): void {\n const oldState = this.state\n\n if (this.metricsRecorder && oldState !== newState) {\n this.metricsRecorder.recordTransition(this.name, oldState, newState)\n this.metricsRecorder.recordState(this.name, this.stateToNumber(newState))\n }\n\n if (oldState === CircuitBreakerState.OPEN && this.openedAt && this.metricsRecorder) {\n const duration = (Date.now() - this.openedAt.getTime()) / 1000\n this.metricsRecorder.recordOpenDuration(this.name, duration)\n }\n\n this.state = newState\n\n switch (newState) {\n case CircuitBreakerState.OPEN:\n this.config.onOpen(this.name)\n break\n case CircuitBreakerState.HALF_OPEN:\n this.halfOpenAttempts = 0\n this.config.onHalfOpen(this.name)\n break\n case CircuitBreakerState.CLOSED:\n this.failureCount = 0\n this.successCount = 0\n this.halfOpenAttempts = 0\n this.openedAt = undefined\n this.config.onClose(this.name)\n break\n }\n }\n\n private stateToNumber(state: CircuitBreakerState): number {\n switch (state) {\n case CircuitBreakerState.CLOSED:\n return 0\n case CircuitBreakerState.HALF_OPEN:\n return 1\n case CircuitBreakerState.OPEN:\n return 2\n default:\n return 0\n }\n }\n}\n",
|
|
105
107
|
"import type { Span } from '@opentelemetry/api'\nimport type { ActionCallback } from '../HookManager'\nimport { CircuitBreaker } from './CircuitBreaker'\nimport type { DeadLetterQueue, DLQEntrySource } from './DeadLetterQueue'\nimport type { EventOptions } from './EventOptions'\nimport type { EventMetrics } from './observability/EventMetrics'\nimport type { EventTracing } from './observability/EventTracing'\nimport type { OTelEventMetrics } from './observability/OTelEventMetrics'\nimport type { RetryScheduler } from './RetryScheduler'\nimport type { EventTask } from './types'\n\n/**\n * Executes event tasks with circuit breaker protection, retry logic,\n * exponential backoff, DLQ integration, and distributed tracing.\n *\n * @internal\n */\nexport class TaskExecutor {\n private eventCircuitBreakers: Map<string, CircuitBreaker> = new Map()\n private eventMetrics?: EventMetrics\n private otelEventMetrics?: OTelEventMetrics\n private eventTracing?: EventTracing\n private currentDispatchSpan?: Span\n private retryScheduler?: RetryScheduler\n\n private dlq?: DeadLetterQueue\n private persistentDLQHandler?: (\n hook: string,\n args: unknown,\n options: EventOptions,\n error: Error,\n retryCount: number,\n firstFailedAt: number\n ) => Promise<void>\n\n private enqueueRetryFn?: (task: EventTask) => void\n\n setDeadLetterQueue(dlq: DeadLetterQueue): void {\n this.dlq = dlq\n }\n\n setPersistentDLQHandler(\n handler: (\n hook: string,\n args: unknown,\n options: EventOptions,\n error: Error,\n retryCount: number,\n firstFailedAt: number\n ) => Promise<void>\n ): void {\n this.persistentDLQHandler = handler\n }\n\n setEventMetrics(metrics: EventMetrics): void {\n this.eventMetrics = metrics\n }\n\n setOTelEventMetrics(metrics: OTelEventMetrics): void {\n this.otelEventMetrics = metrics\n }\n\n setEventTracing(tracing: EventTracing): void {\n this.eventTracing = tracing\n }\n\n setCurrentDispatchSpan(span: Span | undefined): void {\n this.currentDispatchSpan = span\n }\n\n getCurrentDispatchSpan(): Span | undefined {\n return this.currentDispatchSpan\n }\n\n setRetryScheduler(scheduler: RetryScheduler): void {\n this.retryScheduler = scheduler\n }\n\n getRetryScheduler(): RetryScheduler | undefined {\n return this.retryScheduler\n }\n\n /**\n * Set the callback to use when re-enqueueing a task after a retry delay.\n */\n setEnqueueRetryFn(fn: (task: EventTask) => void): void {\n this.enqueueRetryFn = fn\n }\n\n getCircuitBreaker(hook: string) {\n return this.eventCircuitBreakers.get(hook)\n }\n\n getCircuitBreakers() {\n return this.eventCircuitBreakers\n }\n\n resetCircuitBreaker(hook: string): boolean {\n const breaker = this.eventCircuitBreakers.get(hook)\n if (!breaker) {\n return false\n }\n breaker.reset()\n return true\n }\n\n /**\n * Execute an event task by running all its callbacks.\n * Implements circuit breaker protection, retry logic, and DLQ integration.\n */\n async executeTask(task: EventTask, processingPartitions: Set<string>): Promise<void> {\n const { callbacks, args, options, hook, partitionKey } = task\n const timeout = options.timeout || 5000\n const retryConfig = options.retry || {}\n const maxRetries = retryConfig.maxRetries || 0\n const circuitBreakerConfig = options.circuitBreaker\n\n const circuitBreaker = this.getOrCreateEventCircuitBreaker(hook, circuitBreakerConfig)\n\n if (options.ordering === 'partition' && partitionKey) {\n processingPartitions.add(partitionKey)\n }\n\n try {\n let lastError: Error | undefined\n let listenerIndex = 0\n\n for (const callback of callbacks) {\n let listenerSpan: Span | undefined\n const listenerStartTime = performance.now()\n\n if (this.eventTracing && this.currentDispatchSpan) {\n const listenerName = callback.name || `listener_${listenerIndex}`\n listenerSpan = this.eventTracing.startListenerSpan(\n this.currentDispatchSpan,\n hook,\n listenerName,\n listenerIndex\n )\n }\n\n try {\n if (circuitBreaker) {\n await circuitBreaker.execute(async () => {\n return await this.executeWithTimeout(callback, args, timeout)\n })\n } else {\n await this.executeWithTimeout(callback, args, timeout)\n }\n\n if (listenerSpan && this.eventTracing) {\n const duration = performance.now() - listenerStartTime\n this.eventTracing.endListenerSpan(listenerSpan, 'ok', duration)\n }\n } catch (error) {\n if (listenerSpan && this.eventTracing) {\n const duration = performance.now() - listenerStartTime\n this.eventTracing.endListenerSpan(listenerSpan, 'error', duration, error as Error)\n }\n lastError = error as Error\n\n const isCircuitBreakerOpen = lastError.message.includes('Circuit is OPEN')\n\n if (isCircuitBreakerOpen) {\n console.warn(\n `[EventPriorityQueue] Circuit breaker is open for event '${hook}'. Rejecting event.`\n )\n\n if (retryConfig.dlqAfterMaxRetries) {\n if (!task.firstFailedAt) {\n task.firstFailedAt = Date.now()\n }\n\n await this.sendToDLQ(\n hook,\n args,\n options,\n lastError,\n task.retryCount || 0,\n task.firstFailedAt!,\n 'circuit_breaker'\n )\n\n console.error(\n `[EventPriorityQueue] Event '${hook}' sent to DLQ due to circuit breaker`\n )\n }\n\n break\n }\n\n console.error(`[EventPriorityQueue] Error in callback for event '${hook}':`, error)\n\n if (!task.firstFailedAt) {\n task.firstFailedAt = Date.now()\n }\n\n task.lastError = lastError\n task.retryCount = (task.retryCount || 0) + 1\n\n this.otelEventMetrics?.recordRetryAttempt(hook, task.retryCount)\n\n if (task.retryCount <= maxRetries) {\n console.warn(\n `[EventPriorityQueue] Retrying event '${hook}' (attempt ${task.retryCount}/${maxRetries})`\n )\n\n if (this.retryScheduler?.isEnabled()) {\n try {\n await this.retryScheduler.scheduleRetry(\n hook,\n args,\n options,\n lastError,\n task.retryCount\n )\n return\n } catch (schedulerError) {\n console.warn(\n '[EventPriorityQueue] RetryScheduler failed, falling back to setTimeout:',\n schedulerError instanceof Error ? schedulerError.message : String(schedulerError)\n )\n }\n }\n\n const delay = this.calculateRetryDelay(\n task.retryCount,\n retryConfig.backoff || 'exponential',\n retryConfig.initialDelayMs || 1000,\n retryConfig.maxDelayMs || 30000\n )\n\n setTimeout(() => {\n this.enqueueRetryFn?.(task)\n }, delay)\n\n return\n }\n\n if (retryConfig.dlqAfterMaxRetries) {\n await this.sendToDLQ(\n hook,\n args,\n options,\n lastError,\n task.retryCount,\n task.firstFailedAt!,\n 'retry_exhausted'\n )\n\n console.error(\n `[EventPriorityQueue] Event '${hook}' sent to DLQ after ${task.retryCount} failed attempts`\n )\n } else {\n console.error(\n `[EventPriorityQueue] Event '${hook}' permanently failed after ${task.retryCount} attempts`\n )\n }\n\n break\n }\n\n listenerIndex++\n }\n } finally {\n if (options.ordering === 'partition' && partitionKey) {\n processingPartitions.delete(partitionKey)\n }\n }\n }\n\n private async sendToDLQ(\n hook: string,\n args: unknown,\n options: EventOptions,\n error: Error,\n retryCount: number,\n firstFailedAt: number,\n reason: DLQEntrySource\n ): Promise<void> {\n if (this.dlq) {\n this.dlq.add(hook, args, options, error, retryCount, firstFailedAt, reason)\n this.otelEventMetrics?.recordDLQEntry(hook, reason as string)\n }\n\n if (this.persistentDLQHandler) {\n try {\n await this.persistentDLQHandler(hook, args, options, error, retryCount, firstFailedAt)\n } catch (dlqHandlerError) {\n console.error(`[EventPriorityQueue] Error handling persistent DLQ:`, dlqHandlerError)\n }\n }\n }\n\n private getOrCreateEventCircuitBreaker(\n hook: string,\n config?: EventOptions['circuitBreaker']\n ): CircuitBreaker | undefined {\n if (!config) {\n return undefined\n }\n\n if (this.eventCircuitBreakers.has(hook)) {\n return this.eventCircuitBreakers.get(hook)!\n }\n\n const breaker = new CircuitBreaker(hook, {\n failureThreshold: config.failureThreshold,\n resetTimeout: config.resetTimeout,\n halfOpenRequests: config.halfOpenRequests,\n onOpen: () => {\n console.warn(`[EventPriorityQueue] Circuit breaker opened for event '${hook}'`)\n },\n onHalfOpen: () => {\n console.info(`[EventPriorityQueue] Circuit breaker half-open for event '${hook}'`)\n },\n onClose: () => {\n console.info(`[EventPriorityQueue] Circuit breaker closed for event '${hook}'`)\n },\n metricsRecorder: this.eventMetrics\n ? {\n recordState: (name, state) => this.eventMetrics?.recordCircuitBreakerState(name, state),\n recordTransition: (name, from, to) =>\n this.eventMetrics?.recordCircuitBreakerTransition(name, from, to),\n recordFailure: (name) => this.eventMetrics?.recordCircuitBreakerFailure(name),\n recordSuccess: (name) => this.eventMetrics?.recordCircuitBreakerSuccess(name),\n recordOpenDuration: (name, seconds) =>\n this.eventMetrics?.recordCircuitBreakerOpenDuration(name, seconds),\n }\n : undefined,\n })\n\n this.eventCircuitBreakers.set(hook, breaker)\n return breaker\n }\n\n private calculateRetryDelay(\n retryCount: number,\n backoff: 'exponential' | 'linear',\n initialDelay: number,\n maxDelay: number\n ): number {\n let delay: number\n\n if (backoff === 'exponential') {\n delay = initialDelay * 2 ** (retryCount - 1)\n } else {\n delay = initialDelay * retryCount\n }\n\n return Math.min(delay, maxDelay)\n }\n\n private async executeWithTimeout(\n callback: ActionCallback,\n args: unknown,\n timeoutMs: number\n ): Promise<void> {\n return new Promise((resolve, reject) => {\n const timer = setTimeout(() => {\n reject(new Error(`Callback timeout after ${timeoutMs}ms`))\n }, timeoutMs)\n\n Promise.resolve(callback(args))\n .then(() => {\n clearTimeout(timer)\n resolve()\n })\n .catch((error) => {\n clearTimeout(timer)\n reject(error)\n })\n })\n }\n}\n",
|
|
106
108
|
"import type { Span } from '@opentelemetry/api'\nimport type { ActionCallback } from '../HookManager'\nimport type { BackpressureManager } from './BackpressureManager'\nimport type { DeadLetterQueue } from './DeadLetterQueue'\nimport type { EventBackend } from './EventBackend'\nimport type { EventOptions } from './EventOptions'\nimport type { EventMetrics } from './observability/EventMetrics'\nimport type { EventTracing } from './observability/EventTracing'\nimport type { OTelEventMetrics } from './observability/OTelEventMetrics'\nimport type { PriorityStatistics } from './PriorityEscalationManager'\nimport { QueueCore } from './queue-core'\nimport type { RetryScheduler } from './RetryScheduler'\nimport { TaskExecutor } from './task-executor'\nimport type {\n BackpressureStrategy,\n EventQueueConfig,\n EventTask,\n MultiPriorityQueueDepth,\n} from './types'\nimport type { WorkerPool } from './WorkerPool'\n\nexport type { EventTask, EventQueueConfig, BackpressureStrategy }\n\n/**\n * Priority queue for event processing.\n * Events are processed based on their priority level:\n * - Critical priority events are processed first (< 1ms)\n * - High priority events are processed second (< 50ms)\n * - Normal priority events are processed third (< 200ms)\n * - Low priority events are processed last (< 500ms)\n *\n * Supports automatic priority escalation based on wait time.\n *\n * Composed of:\n * - {@link QueueCore}: queue data structures and backpressure logic\n * - {@link TaskExecutor}: task execution, retry, circuit breaker, DLQ\n *\n * @internal\n */\nexport class EventPriorityQueue implements EventBackend {\n private queueCore: QueueCore\n private taskExecutor: TaskExecutor\n private processing = false\n private workerPool?: WorkerPool\n\n constructor(config: EventQueueConfig = {}) {\n this.queueCore = new QueueCore(config)\n this.taskExecutor = new TaskExecutor()\n this.taskExecutor.setEnqueueRetryFn((task) => {\n this.queueCore.enqueueRetry(task)\n if (!this.processing) {\n this.processNext()\n }\n })\n }\n\n // ========== DLQ ==========\n\n setDeadLetterQueue(dlq: DeadLetterQueue): void {\n this.queueCore.setDeadLetterQueue(dlq)\n this.taskExecutor.setDeadLetterQueue(dlq)\n }\n\n setPersistentDLQHandler(\n handler: (\n hook: string,\n args: unknown,\n options: EventOptions,\n error: Error,\n retryCount: number,\n firstFailedAt: number\n ) => Promise<void>\n ): void {\n this.taskExecutor.setPersistentDLQHandler(handler)\n }\n\n // ========== Observability ==========\n\n setEventMetrics(metrics: EventMetrics): void {\n this.taskExecutor.setEventMetrics(metrics)\n }\n\n setOTelEventMetrics(metrics: OTelEventMetrics): void {\n this.queueCore.setOTelEventMetrics(metrics)\n this.taskExecutor.setOTelEventMetrics(metrics)\n }\n\n setPriorityStatistics(stats: PriorityStatistics): void {\n this.queueCore.setPriorityStatistics(stats)\n }\n\n getPriorityStatistics(): PriorityStatistics | undefined {\n return this.queueCore.getPriorityStatistics()\n }\n\n setEventTracing(tracing: EventTracing): void {\n this.taskExecutor.setEventTracing(tracing)\n }\n\n setCurrentDispatchSpan(span: Span | undefined): void {\n this.taskExecutor.setCurrentDispatchSpan(span)\n }\n\n getCurrentDispatchSpan(): Span | undefined {\n return this.taskExecutor.getCurrentDispatchSpan()\n }\n\n // ========== Retry Scheduler ==========\n\n setRetryScheduler(scheduler: RetryScheduler): void {\n this.taskExecutor.setRetryScheduler(scheduler)\n }\n\n getRetryScheduler(): RetryScheduler | undefined {\n return this.taskExecutor.getRetryScheduler()\n }\n\n // ========== Circuit Breaker ==========\n\n getCircuitBreaker(hook: string) {\n return this.taskExecutor.getCircuitBreaker(hook)\n }\n\n getCircuitBreakers() {\n return this.taskExecutor.getCircuitBreakers()\n }\n\n resetCircuitBreaker(hook: string): boolean {\n return this.taskExecutor.resetCircuitBreaker(hook)\n }\n\n // ========== Worker Pool ==========\n\n setWorkerPool(pool: WorkerPool): void {\n this.workerPool = pool\n }\n\n getWorkerPool(): WorkerPool | undefined {\n return this.workerPool\n }\n\n // ========== Backpressure ==========\n\n getBackpressureManager(): BackpressureManager | undefined {\n return this.queueCore.getBackpressureManager()\n }\n\n // ========== Enqueue ==========\n\n /*\n * Enqueue an event task.\n */\n enqueue(task: EventTask): string\n enqueue(hook: string, args: unknown, callbacks: ActionCallback[], options: EventOptions): string\n enqueue(\n hookOrTask: string | EventTask,\n args?: unknown,\n callbacks?: ActionCallback[],\n options?: EventOptions\n ): string {\n let task: EventTask\n\n if (typeof hookOrTask !== 'string') {\n task = hookOrTask\n } else {\n const taskId = this.queueCore.createTaskId()\n const nowMs = Date.now()\n task = {\n id: taskId,\n hook: hookOrTask,\n args,\n options: options!,\n callbacks: callbacks!,\n createdAt: nowMs,\n enqueuedAt: nowMs,\n partitionKey: options?.partitionKey,\n retryCount: 0,\n }\n }\n\n const result = this.queueCore.enqueue(task)\n\n if (result.status === 'dropped') {\n return 'dropped'\n }\n\n if (result.status === 'delayed') {\n setTimeout(() => {\n this.enqueue(task)\n }, result.delayMs)\n return result.id\n }\n\n // Task was successfully queued - trigger processing\n const finalPriority = task.options.priority || 'normal'\n if (finalPriority === 'critical') {\n if (!this.processing) {\n setImmediate(() => this.processNext())\n }\n } else if (!this.processing) {\n this.processNext()\n }\n\n return result.id\n }\n\n enqueueBatch(tasks: EventTask[]): string[] {\n const taskIds: string[] = []\n\n for (const task of tasks) {\n const id = this.enqueue(task)\n taskIds.push(id)\n }\n\n if (tasks.length > 0 && !this.processing) {\n setImmediate(() => this.processNext())\n }\n\n return taskIds\n }\n\n // ========== Depth ==========\n\n getDepth(): number {\n return this.queueCore.getDepth()\n }\n\n getDepthByPriority(priority: 'critical' | 'high' | 'normal' | 'low'): number {\n return this.queueCore.getDepthByPriority(priority)\n }\n\n getQueueDepthByPriority(): MultiPriorityQueueDepth {\n return this.queueCore.getQueueDepthByPriority()\n }\n\n clear(): void {\n this.queueCore.clear()\n }\n\n dequeue(): EventTask | undefined {\n return this.queueCore.dequeue()\n }\n\n // ========== Internal Processing ==========\n\n private async processNext(): Promise<void> {\n if (this.processing) {\n return\n }\n\n const task = this.queueCore.dequeue()\n if (!task) {\n return\n }\n\n this.processing = true\n\n try {\n if (this.workerPool) {\n await this.workerPool.submitTask(task)\n } else {\n await this.taskExecutor.executeTask(task, this.queueCore.processingPartitions)\n }\n } catch (error) {\n console.error(`[EventPriorityQueue] Error processing task ${task.id}:`, error)\n } finally {\n this.processing = false\n this.queueCore.syncBackpressure()\n setImmediate(() => this.processNext())\n }\n }\n}\n",
|
|
107
109
|
"/**\n * Event aggregation and deduplication types (FS-102)\n * @internal\n */\n\nimport { BackpressureState } from '../BackpressureManager'\n\n/**\n * Deduplication statistics.\n */\nexport interface DeduplicationStats {\n /** Total events submitted */\n totalEvents: number\n /** Events after deduplication */\n deduplicatedEvents: number\n /** Events removed by deduplication */\n removedCount: number\n /** Number of patterns aggregated */\n patternsAggregated: number\n /** Deduplication rate (%) */\n deduplicationRate: number\n}\n\n/**\n * Batch submission statistics.\n */\nexport interface BatchStats {\n /** Total batches submitted */\n totalBatches: number\n /** Total events submitted */\n totalEvents: number\n /** Average batch size */\n averageBatchSize: number\n /** Average batch latency (ms) */\n averageBatchLatency: number\n /** Last flush timestamp */\n lastFlushTime: number\n /** Pending events in queue */\n pendingEvents: number\n /** Auto-triggered flushes */\n autoFlushCount: number\n /** Manual flushes */\n manualFlushCount: number\n}\n\n/**\n * Aggregation window statistics.\n */\nexport interface WindowStats {\n /** Current window size (ms) */\n currentWindowMs: number\n /** Minimum window size (ms) */\n minWindowMs: number\n /** Maximum window size (ms) */\n maxWindowMs: number\n /** Last window adjustment reason */\n lastAdjustmentReason?: string\n /** Window adjustment count */\n adjustmentCount: number\n}\n\n/**\n * Complete aggregation statistics.\n */\nexport interface AggregationStats {\n deduplication: DeduplicationStats\n batching: BatchStats\n window: WindowStats\n timestamp: number\n}\n\n/**\n * Aggregation configuration options.\n */\nexport interface AggregationConfig {\n /** Enable aggregation (default: false) */\n enabled: boolean\n\n /** Window size in milliseconds (default: 200) */\n windowMs?: number\n\n /** Batch size threshold (default: 50) */\n batchSize?: number\n\n /** Deduplication strategy */\n deduplication?: 'pattern' | 'idempotencyKey' | 'off'\n\n /** Deduplication pattern (string or function) */\n pattern?: string | ((args: unknown) => string)\n\n /** Merge priority when deduplicating */\n mergePriority?: 'highest' | 'earliest' | 'latest'\n\n /** Enable background cleanup (default: true) */\n enableCleanup?: boolean\n\n /** Cleanup interval (ms, default: 5 minutes) */\n cleanupIntervalMs?: number\n\n /** TTL for deduplication entries (ms, default: 10 minutes) */\n ttlMs?: number\n}\n\n/**\n * Default aggregation configuration.\n */\nexport const DEFAULT_AGGREGATION_CONFIG: Required<AggregationConfig> = {\n enabled: false,\n windowMs: 200,\n batchSize: 50,\n deduplication: 'pattern',\n pattern: (args: unknown) => {\n if (!args || typeof args !== 'object') {\n return 'default'\n }\n const keys = Object.keys(args as Record<string, unknown>).sort()\n return keys.join(':')\n },\n mergePriority: 'highest',\n enableCleanup: true,\n cleanupIntervalMs: 5 * 60 * 1000, // 5 minutes\n ttlMs: 10 * 60 * 1000, // 10 minutes\n}\n\n/**\n * Priority order for merge decisions.\n */\nexport const PRIORITY_ORDER: Record<string, number> = {\n critical: 0,\n high: 1,\n normal: 2,\n low: 3,\n}\n\n/**\n * Backpressure-aware window configuration.\n */\nexport interface WindowAdjustmentConfig {\n /** Window for NORMAL backpressure state */\n normalMs: number\n /** Window for WARNING backpressure state */\n warningMs: number\n /** Window for CRITICAL backpressure state */\n criticalMs: number\n /** Window for OVERFLOW backpressure state */\n overflowMs: number\n}\n\n/**\n * Default window adjustment configuration based on backpressure.\n */\nexport const DEFAULT_WINDOW_ADJUSTMENT: WindowAdjustmentConfig = {\n normalMs: 200,\n warningMs: 150,\n criticalMs: 100,\n overflowMs: 50,\n}\n\n/**\n * Get suggested window size based on backpressure state.\n */\nexport function getSuggestedWindow(\n state: BackpressureState,\n config: WindowAdjustmentConfig = DEFAULT_WINDOW_ADJUSTMENT\n): number {\n switch (state) {\n case BackpressureState.NORMAL:\n return config.normalMs\n case BackpressureState.WARNING:\n return config.warningMs\n case BackpressureState.CRITICAL:\n return config.criticalMs\n case BackpressureState.OVERFLOW:\n return config.overflowMs\n default:\n return config.normalMs\n }\n}\n",
|
|
@@ -132,14 +134,14 @@
|
|
|
132
134
|
"import { randomBytes, randomUUID } from '../compat/crypto'\nimport { getRuntimeKind } from '../runtime/detection'\n\ntype StartsEndsNeedle = string | readonly string[]\n\nfunction splitWords(input: string): string[] {\n const normalized = input\n .replace(/([a-z0-9])([A-Z])/g, '$1 $2')\n .replace(/[_-]+/g, ' ')\n .trim()\n\n return normalized ? normalized.split(/\\s+/) : []\n}\n\nfunction capitalize(word: string): string {\n if (!word) {\n return word\n }\n return word.charAt(0).toUpperCase() + word.slice(1)\n}\n\n/**\n * String Helper Utilities.\n * Provides methods for string manipulation, case conversion, and UUID generation.\n * @public\n */\nexport const Str = {\n lower(value: string): string {\n return value.toLowerCase()\n },\n\n upper(value: string): string {\n return value.toUpperCase()\n },\n\n startsWith(haystack: string, needles: StartsEndsNeedle): boolean {\n const list = Array.isArray(needles) ? needles : [needles]\n for (const needle of list) {\n if (needle !== '' && haystack.startsWith(needle)) {\n return true\n }\n }\n return false\n },\n\n endsWith(haystack: string, needles: StartsEndsNeedle): boolean {\n const list = Array.isArray(needles) ? needles : [needles]\n for (const needle of list) {\n if (needle !== '' && haystack.endsWith(needle)) {\n return true\n }\n }\n return false\n },\n\n contains(haystack: string, needles: StartsEndsNeedle): boolean {\n const list = Array.isArray(needles) ? needles : [needles]\n for (const needle of list) {\n if (needle !== '' && haystack.includes(needle)) {\n return true\n }\n }\n return false\n },\n\n snake(value: string): string {\n const words = splitWords(value).map((w) => w.toLowerCase())\n return words.join('_')\n },\n\n kebab(value: string): string {\n const words = splitWords(value).map((w) => w.toLowerCase())\n return words.join('-')\n },\n\n studly(value: string): string {\n return splitWords(value)\n .map((w) => capitalize(w.toLowerCase()))\n .join('')\n },\n\n camel(value: string): string {\n const words = splitWords(value).map((w) => w.toLowerCase())\n if (words.length === 0) {\n return ''\n }\n const first = words[0]\n if (first === undefined) {\n return ''\n }\n return first + words.slice(1).map(capitalize).join('')\n },\n\n title(value: string): string {\n return splitWords(value)\n .map((w) => capitalize(w.toLowerCase()))\n .join(' ')\n },\n\n limit(value: string, limit: number, end = '...'): string {\n if (limit < 0) {\n return ''\n }\n if (value.length <= limit) {\n return value\n }\n return value.slice(0, limit) + end\n },\n\n slug(value: string, separator = '-'): string {\n const normalized = value\n .normalize('NFKD')\n .replace(/\\p{Diacritic}/gu, '')\n .toLowerCase()\n\n const escaped = separator.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n return normalized\n .replace(/[^a-z0-9]+/g, separator)\n .replace(new RegExp(`^${escaped}+|${escaped}+$`, 'g'), '')\n },\n\n uuid(): string {\n if (typeof globalThis.crypto?.randomUUID === 'function') {\n return globalThis.crypto.randomUUID()\n }\n return randomUUID()\n },\n\n /**\n * 生成 UUID v7(單調遞增,內含時間戳)。\n *\n * Bun 環境使用原生 Bun.randomUUIDv7() (C++ 實作)。\n * Node.js/Deno 環境使用 RFC 9562 的 JavaScript polyfill。\n *\n * UUID v7 的優勢:\n * - 資料庫主鍵天然有序 → B-tree 索引性能提升 2-10x\n * - 可從 UUID 提取毫秒級時間戳\n * - 仍保持全域唯一性\n *\n * @returns UUID v7 字串\n * @public\n */\n uuidv7(): string {\n const runtime = getRuntimeKind()\n if (runtime === 'bun' && typeof Bun !== 'undefined' && typeof Bun.randomUUIDv7 === 'function') {\n return Bun.randomUUIDv7()\n }\n return generateUUIDv7Fallback()\n },\n\n random(length = 16): string {\n if (length <= 0) {\n return ''\n }\n // base64url: [A-Za-z0-9_-]\n const bytes = randomBytes(Math.ceil((length * 3) / 4) + 2)\n const str = bytes.toString('base64').replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/g, '')\n return str.slice(0, length)\n },\n} as const\n\n/**\n * RFC 9562 UUID v7 的 JavaScript polyfill。\n *\n * UUID v7 格式 (128 bits):\n * - 時間戳:unix_ms (48 bits) → bytes[0-5]\n * - 亂數:12 bits → bytes[6-7] (upper 4 bits)\n * - 版本:0111 (v7) → bytes[6] 上 4 bits\n * - 亂數:62 bits → bytes[7-15]\n * - Variant:10xx → bytes[8] 上 2 bits (RFC 4122)\n *\n * @internal\n */\nfunction generateUUIDv7Fallback(): string {\n // 獲取當前毫秒級時間戳\n const timestamp = Date.now()\n\n // 建立 16 bytes 的 Uint8Array\n const bytes = new Uint8Array(16)\n\n // 填充前 6 bytes:時間戳 (big-endian)\n bytes[0] = (timestamp >>> 40) & 0xff\n bytes[1] = (timestamp >>> 32) & 0xff\n bytes[2] = (timestamp >>> 24) & 0xff\n bytes[3] = (timestamp >>> 16) & 0xff\n bytes[4] = (timestamp >>> 8) & 0xff\n bytes[5] = timestamp & 0xff\n\n // 填充後 10 bytes:隨機數\n const randomPart = randomBytes(10)\n for (let i = 0; i < 10; i += 1) {\n bytes[6 + i] = randomPart[i] ?? 0\n }\n\n // 設定 version bits:byte[6] 的上 4 bits = 0111 (v7)\n bytes[6] = ((bytes[6] ?? 0) & 0x0f) | 0x70\n\n // 設定 variant bits:byte[8] 的上 2 bits = 10 (RFC 4122)\n bytes[8] = ((bytes[8] ?? 0) & 0x3f) | 0x80\n\n // 格式化為標準 UUID 字串 (8-4-4-4-12)\n const hex = Array.from(bytes)\n .map((b) => b.toString(16).padStart(2, '0'))\n .join('')\n\n return [\n hex.slice(0, 8),\n hex.slice(8, 12),\n hex.slice(12, 16),\n hex.slice(16, 20),\n hex.slice(20, 32),\n ].join('-')\n}\n",
|
|
133
135
|
"import { HttpException } from './exceptions/HttpException'\nimport type { ContentfulStatusCode } from './http/types'\nimport type { PlanetCore } from './PlanetCore'\nimport type { Router } from './Router'\n\nexport { Arr } from './helpers/Arr'\nexport * from './helpers/data'\nexport * from './helpers/errors'\nexport * from './helpers/response'\nexport { Str } from './helpers/Str'\n\n/**\n * Error subclass used for dump and die functionality.\n * @internal\n */\nexport class DumpDieError extends Error {\n override name = 'DumpDieError'\n\n constructor(public readonly values: unknown[]) {\n super('Execution halted by dd()')\n }\n}\n\n/**\n * Options for dump output\n * @public\n */\nexport type DumpOptions = {\n depth?: number | null\n colors?: boolean\n}\n\nconst defaultDumpOptions: Required<DumpOptions> = {\n depth: null,\n colors: true,\n}\n\n/**\n * Dump data to console for debugging.\n *\n * Uses `console.dir` with configurable depth and colors to provide a\n * readable representation of any value.\n *\n * @param values - One or more values to dump to the console.\n *\n * @example\n * ```typescript\n * dump(user, { meta: 'data' });\n * ```\n *\n * @public\n * @since 3.0.0\n */\nexport function dump(...values: unknown[]): void {\n for (const value of values) {\n console.dir(value, {\n depth: defaultDumpOptions.depth,\n colors: defaultDumpOptions.colors,\n })\n }\n}\n\n/**\n * Dump data to console and exit process (or throw in HTTP context).\n *\n * Short for \"Dump and Die\". In a CLI environment, it exits the process.\n * In an HTTP context (like a web request), it throws a `DumpDieError`\n * which is caught by the exception handler to display the debug output.\n *\n * @param values - One or more values to dump and then die.\n * @throws {DumpDieError} Always throws this error to halt execution.\n *\n * @example\n * ```typescript\n * dd(user.permissions);\n * ```\n *\n * @public\n * @since 3.0.0\n */\nexport function dd(...values: unknown[]): never {\n dump(...values)\n throw new DumpDieError(values)\n}\n\n/**\n * Tap into a value, execute a callback, and return the value.\n *\n * This allows you to perform \"side effects\" on a value without breaking\n * the chain of operations.\n *\n * @param value - The value to tap into.\n * @param callback - A callback that receives the value.\n * @returns The original value.\n *\n * @example\n * ```typescript\n * const user = tap(new User(), (u) => {\n * u.name = 'Alice';\n * u.save();\n * });\n * ```\n *\n * @public\n * @since 3.0.0\n */\nexport function tap<T>(value: T, callback: (value: T) => unknown): T {\n callback(value)\n return value\n}\n\n/**\n * Return the default value of the given value.\n *\n * If the value is a function, it will be executed with the provided arguments\n * and its result will be returned. Otherwise, the value itself is returned.\n * This is useful for handling optional lazy-loaded values.\n *\n * @param valueOrFactory - The value or a factory function.\n * @param args - Arguments to pass to the factory function if it is a function.\n * @returns The resolved value.\n *\n * @example\n * ```typescript\n * value(10); // 10\n * value(() => 10); // 10\n * value((name) => `Hello ${name}`, 'World'); // \"Hello World\"\n * ```\n *\n * @public\n * @since 3.0.0\n */\nexport function value<TArgs extends readonly unknown[], TResult>(\n valueOrFactory: TResult | ((...args: TArgs) => TResult),\n ...args: TArgs\n): TResult {\n if (typeof valueOrFactory === 'function') {\n return (valueOrFactory as (...a: TArgs) => TResult)(...args)\n }\n return valueOrFactory\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n if (value === null || typeof value !== 'object') {\n return false\n }\n const proto = Object.getPrototypeOf(value)\n return proto === Object.prototype || proto === null\n}\n\n/**\n * Determine if the given value is \"blank\".\n *\n * A value is considered blank if it is:\n * - `null` or `undefined`\n * - An empty string or a string containing only whitespace\n * - An empty array\n * - An empty object\n * - An empty Map or Set\n *\n * @param value - The value to check.\n * @returns `true` if the value is blank, `false` otherwise.\n *\n * @example\n * ```typescript\n * blank(''); // true\n * blank(' '); // true\n * blank([]); // true\n * blank({}); // true\n * blank(0); // false\n * ```\n *\n * @public\n * @since 3.0.0\n */\nexport function blank(value: unknown): boolean {\n if (value === null || value === undefined) {\n return true\n }\n\n if (typeof value === 'string') {\n return value.trim().length === 0\n }\n if (Array.isArray(value)) {\n return value.length === 0\n }\n if (value instanceof Map) {\n return value.size === 0\n }\n if (value instanceof Set) {\n return value.size === 0\n }\n if (isPlainObject(value)) {\n return Object.keys(value).length === 0\n }\n\n return false\n}\n\n/**\n * Determine if the given value is \"filled\" (not blank).\n *\n * This is the inverse of `blank()`.\n *\n * @param value - The value to check.\n * @returns `true` if the value is not blank, `false` otherwise.\n *\n * @example\n * ```typescript\n * filled('hello'); // true\n * filled([1, 2, 3]); // true\n * filled(''); // false\n * ```\n *\n * @public\n * @since 3.0.0\n */\nexport function filled(value: unknown): boolean {\n return !blank(value)\n}\n\nfunction toError(error: Error | string | (() => Error)): Error {\n if (typeof error === 'string') {\n return new Error(error)\n }\n if (typeof error === 'function') {\n return error()\n }\n return error\n}\n\n/**\n * Throw an exception if the given condition is true.\n *\n * @param condition - The condition to evaluate.\n * @param error - The exception to throw, a factory function, or an error message string.\n * @throws {Error} If the condition evaluates to true.\n *\n * @example\n * ```typescript\n * throwIf(user.isBanned, 'User is banned from the system');\n * throwIf(count > 100, () => new ValidationError('Too many items'));\n * ```\n *\n * @public\n * @since 3.0.0\n */\nexport function throwIf(\n condition: unknown,\n error: Error | string | (() => Error) = 'Error.'\n): void {\n if (condition) {\n throw toError(error)\n }\n}\n\n/**\n * Throw an exception unless the given condition is true.\n *\n * @param condition - The condition to evaluate.\n * @param error - The exception to throw, a factory function, or an error message string.\n * @throws {Error} If the condition evaluates to false.\n *\n * @example\n * ```typescript\n * throwUnless(user.isAdmin, 'Unauthorized access');\n * ```\n *\n * @public\n * @since 3.0.0\n */\nexport function throwUnless(\n condition: unknown,\n error: Error | string | (() => Error) = 'Error.'\n): void {\n if (!condition) {\n throw toError(error)\n }\n}\n\ntype EnvShape = {\n Bun?: {\n env?: Record<string, string | undefined>\n }\n}\n\n/**\n * Get the value of an environment variable.\n *\n * Automatically detects the runtime environment (Bun or Node.js) to retrieve\n * the variable.\n *\n * @param key - The environment variable name.\n * @param defaultValue - An optional default value to return if the variable is not defined.\n * @returns The environment variable value or the default value.\n *\n * @example\n * ```typescript\n * const debug = env('DEBUG', 'false');\n * const apiKey = env('API_KEY');\n * ```\n *\n * @public\n * @since 3.0.0\n */\nexport function env<TDefault = string | undefined>(key: string, defaultValue?: TDefault) {\n const bunEnv = (globalThis as EnvShape).Bun?.env\n const value = bunEnv?.[key] ?? process.env[key]\n return (value ?? defaultValue) as string | TDefault\n}\n\nlet currentApp: PlanetCore | undefined\n\n/**\n * Set the global application instance.\n *\n * This is used internally during the bootstrap process to provide global\n * access to the application instance via the `app()` helper.\n *\n * @param core - The PlanetCore instance to set as global.\n * @internal\n */\nexport function setApp(core: PlanetCore | null): void {\n currentApp = core ?? undefined\n}\n\n/**\n * Check if the global application instance has been initialized and set.\n *\n * @returns `true` if the application instance is set, `false` otherwise.\n *\n * @public\n * @since 3.0.0\n */\nexport function hasApp(): boolean {\n return currentApp !== undefined\n}\n\n/**\n * Get the global application instance.\n *\n * Provides access to the core application container, configuration, and services.\n *\n * @returns The initialized PlanetCore instance.\n * @throws {Error} If the application has not been initialized.\n *\n * @example\n * ```typescript\n * const core = app();\n * console.log(core.version);\n * ```\n *\n * @public\n * @since 3.0.0\n */\nexport function app(): PlanetCore {\n if (!currentApp) {\n throw new Error('No app is bound. Call setApp(core) once during bootstrap.')\n }\n return currentApp\n}\n\n/**\n * Get a configuration value from the application.\n *\n * Supports dot notation for accessing nested configuration properties.\n *\n * @param key - The configuration key in dot notation (e.g., 'app.name').\n * @param defaultValue - An optional default value to return if the key is not found.\n * @returns The configuration value or the default value.\n *\n * @example\n * ```typescript\n * const appName = config('app.name');\n * const port = config('app.port', 3000);\n * ```\n *\n * @public\n * @since 3.0.0\n */\nexport function config<T = unknown>(key: string, defaultValue?: T): T {\n if (defaultValue === undefined) {\n return app().config.get<T>(key)\n }\n return app().config.get<T>(key, defaultValue)\n}\n\n/**\n * Get the global logger instance.\n *\n * Shortcut for `app().logger`.\n *\n * @returns The application's logger instance.\n *\n * @example\n * ```typescript\n * logger().info('Operation completed successfully');\n * ```\n *\n * @public\n * @since 3.0.0\n */\nexport function logger() {\n return app().logger\n}\n\n/**\n * Get the application's primary router instance.\n *\n * Shortcut for `app().router`.\n *\n * @returns The router instance.\n *\n * @public\n * @since 3.0.0\n */\nexport function router(): Router {\n return app().router\n}\n\n/**\n * Abort the current request with an HTTP exception.\n *\n * Throws an `HttpException` with the specified status code and optional message.\n *\n * @param status - The HTTP status code to return.\n * @param message - An optional custom error message.\n * @throws {HttpException} Always throws this exception.\n *\n * @example\n * ```typescript\n * abort(403, 'You do not have permission to access this resource');\n * ```\n *\n * @public\n * @since 3.0.0\n */\nexport function abort(status: ContentfulStatusCode, message?: string): never {\n if (message === undefined) {\n throw new HttpException(status)\n }\n throw new HttpException(status, { message })\n}\n\n/**\n * Abort the request if the given condition is true.\n *\n * @param condition - The condition to evaluate.\n * @param status - The HTTP status code to return.\n * @param message - An optional custom error message.\n * @throws {HttpException} If the condition is true.\n *\n * @example\n * ```typescript\n * abortIf(!user.isActive, 403, 'Account is deactivated');\n * ```\n *\n * @public\n * @since 3.0.0\n */\nexport function abortIf(condition: unknown, status: ContentfulStatusCode, message?: string): void {\n if (condition) {\n abort(status, message)\n }\n}\n\n/**\n * Abort the request unless the given condition is true.\n *\n * @param condition - The condition to evaluate.\n * @param status - The HTTP status code to return.\n * @param message - An optional custom error message.\n * @throws {HttpException} If the condition is false.\n *\n * @example\n * ```typescript\n * abortUnless(request.hasValidToken(), 401, 'Invalid authentication token');\n * ```\n *\n * @public\n * @since 3.0.0\n */\nexport function abortUnless(\n condition: unknown,\n status: ContentfulStatusCode,\n message?: string\n): void {\n if (!condition) {\n abort(status, message)\n }\n}\n",
|
|
134
136
|
"import type { Encrypter } from '../security/Encrypter'\nimport type { GravitoContext } from './types'\n\n/**\n * Options for setting cookies\n * @public\n */\nexport interface CookieOptions {\n path?: string\n domain?: string\n secure?: boolean\n httpOnly?: boolean\n sameSite?: 'Strict' | 'Lax' | 'None'\n maxAge?: number\n expires?: Date\n encrypt?: boolean\n}\n\n/**\n * Utility for managing cookies (request/response/encryption).\n * @public\n */\nexport class CookieJar {\n private queued: Map<string, { value: string; options: CookieOptions }> = new Map()\n\n constructor(private encrypter?: Encrypter) {}\n\n /**\n * Parse cookies from a Cookie header string using Bun's native CookieMap\n * @param header - The Cookie header value\n * @returns Parsed cookies as key-value pairs\n */\n static parseCookies(header: string): Record<string, string> {\n if (!header) {\n return {}\n }\n const cookieMap = new Bun.CookieMap(header)\n const out: Record<string, string> = {}\n for (const [key, value] of cookieMap.entries()) {\n out[key] = value\n }\n return out\n }\n\n /**\n * Queue a cookie to be sent with the response\n */\n queue(name: string, value: string, minutes = 60, options: CookieOptions = {}) {\n const resolved: CookieOptions = {\n path: options.path ?? '/',\n httpOnly: options.httpOnly ?? true,\n sameSite: options.sameSite ?? 'Lax',\n secure: options.secure ?? process.env.NODE_ENV === 'production',\n ...options,\n }\n // Convert minutes to maxAge (seconds)\n if (minutes && !resolved.maxAge) {\n resolved.maxAge = minutes * 60\n }\n\n let finalValue = value\n\n if (resolved.encrypt) {\n if (!this.encrypter) {\n throw new Error('Encryption is not available. Ensure APP_KEY is set.')\n }\n finalValue = this.encrypter.encrypt(value)\n }\n\n this.queued.set(name, { value: finalValue, options: resolved })\n }\n\n /**\n * Make a cookie that lasts \"forever\" (5 years)\n */\n forever(name: string, value: string, options: CookieOptions = {}) {\n this.queue(name, value, 2628000, options)\n }\n\n /**\n * Expire a cookie\n */\n forget(name: string, options: CookieOptions = {}) {\n this.queue(name, '', 0, { ...options, maxAge: 0, expires: new Date(0) })\n }\n\n /**\n * Serialize a cookie to a Set-Cookie header value using Bun's native Cookie API\n */\n private serializeCookie(name: string, value: string, opts: CookieOptions): string {\n return new Bun.Cookie(name, value, {\n path: opts.path,\n domain: opts.domain,\n expires: opts.expires,\n maxAge: opts.maxAge,\n secure: opts.secure,\n httpOnly: opts.httpOnly,\n sameSite: opts.sameSite?.toLowerCase() as 'strict' | 'lax' | 'none' | undefined,\n }).toString()\n }\n\n /**\n * Attach queued cookies to the context\n */\n attach(c: GravitoContext) {\n for (const [name, { value, options }] of this.queued) {\n c.header('Set-Cookie', this.serializeCookie(name, value, options), { append: true })\n }\n }\n}\n",
|
|
135
|
-
"import { GravitoException } from './GravitoException'\n\n/**\n * Exception thrown when a database model is not found.\n * @public\n */\nexport class ModelNotFoundException extends GravitoException {\n public readonly model: string\n public readonly id?: string | number\n\n constructor(model: string, id?: string | number) {\n super(404, 'NOT_FOUND', {\n message: `${model} not found.`,\n i18nKey: 'errors.model.not_found',\n i18nParams: { model, id: String(id ?? '') },\n })\n this.model = model\n if (id !== undefined) {\n this.id = id\n }\n }\n}\n",
|
|
137
|
+
"import { GravitoException } from './GravitoException'\n\n/**\n * Exception thrown when a database model is not found.\n * @public\n */\nexport class ModelNotFoundException extends GravitoException {\n public readonly model: string\n public readonly id?: string | number\n\n constructor(model: string, id?: string | number) {\n super(404, 'NOT_FOUND', {\n message: `${model} not found.`,\n i18nKey: 'errors.model.not_found',\n i18nParams: { model, id: String(id ?? '') },\n })\n this.name = 'ModelNotFoundException'\n this.model = model\n if (id !== undefined) {\n this.id = id\n }\n }\n}\n",
|
|
136
138
|
"import { router } from './helpers'\nimport type { GravitoMiddleware } from './http/types'\nimport type {\n ControllerClass,\n FormRequestClass,\n ResourceOptions,\n RouteDefinitionArg,\n RouteHandler,\n RouteOptions,\n Router,\n} from './Router'\n\n/**\n * Route definition helper.\n * Represents a registered route and allows method chaining for middleware/names.\n * @public\n */\nexport class Route {\n constructor(\n private router: Router,\n private method: string,\n private path: string,\n private options: RouteOptions\n ) {}\n\n /**\n * Name the route\n */\n name(name: string): this {\n this.router.registerName(name, this.method, this.path, this.options)\n return this\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Static Facade Methods\n // ─────────────────────────────────────────────────────────────────────────────\n\n static get(path: string, handler: RouteHandler): Route\n static get(path: string, request: FormRequestClass, handler: RouteHandler): Route\n static get(\n path: string,\n middleware: GravitoMiddleware | GravitoMiddleware[],\n handler: RouteHandler\n ): Route\n static get(\n path: string,\n requestOrHandlerOrMiddleware: RouteDefinitionArg,\n handler?: RouteHandler\n ): Route {\n return router().req('get', path, requestOrHandlerOrMiddleware, handler)\n }\n\n static post(path: string, handler: RouteHandler): Route\n static post(path: string, request: FormRequestClass, handler: RouteHandler): Route\n static post(\n path: string,\n middleware: GravitoMiddleware | GravitoMiddleware[],\n handler: RouteHandler\n ): Route\n static post(\n path: string,\n requestOrHandlerOrMiddleware: RouteDefinitionArg,\n handler?: RouteHandler\n ): Route {\n return router().req('post', path, requestOrHandlerOrMiddleware, handler)\n }\n\n static put(path: string, handler: RouteHandler): Route\n static put(path: string, request: FormRequestClass, handler: RouteHandler): Route\n static put(\n path: string,\n middleware: GravitoMiddleware | GravitoMiddleware[],\n handler: RouteHandler\n ): Route\n static put(\n path: string,\n requestOrHandlerOrMiddleware: RouteDefinitionArg,\n handler?: RouteHandler\n ): Route {\n return router().req('put', path, requestOrHandlerOrMiddleware, handler)\n }\n\n static delete(path: string, handler: RouteHandler): Route\n static delete(path: string, request: FormRequestClass, handler: RouteHandler): Route\n static delete(\n path: string,\n middleware: GravitoMiddleware | GravitoMiddleware[],\n handler: RouteHandler\n ): Route\n static delete(\n path: string,\n requestOrHandlerOrMiddleware: RouteDefinitionArg,\n handler?: RouteHandler\n ): Route {\n return router().req('delete', path, requestOrHandlerOrMiddleware, handler)\n }\n\n static patch(path: string, handler: RouteHandler): Route\n static patch(path: string, request: FormRequestClass, handler: RouteHandler): Route\n static patch(\n path: string,\n middleware: GravitoMiddleware | GravitoMiddleware[],\n handler: RouteHandler\n ): Route\n static patch(\n path: string,\n requestOrHandlerOrMiddleware: RouteDefinitionArg,\n handler?: RouteHandler\n ): Route {\n return router().req('patch', path, requestOrHandlerOrMiddleware, handler)\n }\n\n static resource(name: string, controller: ControllerClass, options: ResourceOptions = {}): void {\n router().resource(name, controller, options)\n }\n\n static prefix(path: string) {\n return router().prefix(path)\n }\n\n static middleware(...handlers: (GravitoMiddleware | GravitoMiddleware[])[]) {\n return router().middleware(...handlers)\n }\n}\n",
|
|
137
139
|
"import type { GravitoHandler } from '../http/types'\nimport type { PlanetCore } from '../PlanetCore'\nimport type { ControllerClass } from '../Router'\n\nexport class ControllerDispatcher {\n // Singleton cache for controllers\n private controllers = new Map<ControllerClass, unknown>()\n\n constructor(private core: PlanetCore) {}\n\n /**\n * Resolve Controller Instance and Method\n */\n resolve(CtrlClass: ControllerClass, methodName: string): GravitoHandler {\n let instance = this.controllers.get(CtrlClass)\n if (!instance) {\n instance = new CtrlClass(this.core)\n this.controllers.set(CtrlClass, instance)\n }\n\n const handler = (instance as Record<string, unknown>)[methodName]\n if (typeof handler !== 'function') {\n throw new Error(`Method '${methodName}' not found in controller '${CtrlClass.name}'`)\n }\n\n // The handler in the controller should match GravitoHandler signature (ctx) => Response\n // If it expects (ctx, next), it's middleware.\n // Usually controllers are final endpoints.\n return handler.bind(instance) as GravitoHandler\n }\n}\n",
|
|
138
140
|
"import type { GravitoMiddleware } from '../http/types'\nimport { FORM_REQUEST_SYMBOL, type FormRequestClass, type FormRequestLike } from '../Router'\n\n/**\n * WeakMap cache for FormRequest class detection results.\n * Avoids re-instantiating classes on repeated checks.\n */\n// biome-ignore lint/complexity/noBannedTypes: generic Function type needed here\nconst formRequestCache = new WeakMap<Function, boolean>()\n\n/**\n * WeakMap cache for FormRequest instances.\n * Stores singleton instances to avoid re-instantiation on every request.\n */\nconst formRequestInstances = new WeakMap<FormRequestClass, FormRequestLike>()\n\n/**\n * Handles validation of incoming requests using FormRequest classes.\n * Provides mechanisms to detect and convert FormRequest classes into Gravito middleware.\n */\n// biome-ignore lint/complexity/noStaticOnlyClass: utility class designed for static access\nexport class RequestValidator {\n /**\n * Check if a value is a FormRequest class.\n * Optimized with Symbol check, prototype check, and caching.\n * @internal\n */\n static isFormRequestClass(value: unknown): value is FormRequestClass {\n if (typeof value !== 'function') {\n return false\n }\n\n // Fast path 1: Check for Symbol marker (set by @gravito/impulse)\n if ((value as { [FORM_REQUEST_SYMBOL]?: boolean })[FORM_REQUEST_SYMBOL] === true) {\n return true\n }\n\n // Fast path 2: Filter out arrow functions (middleware)\n // Arrow functions do not have a prototype property\n if (!value.prototype) {\n return false\n }\n\n // Check cache to avoid re-computation\n const cached = formRequestCache.get(value)\n if (cached !== undefined) {\n return cached\n }\n\n // Slow path: Duck-type check with instantiation\n try {\n // Check prototype first to avoid instantiation if possible\n if ('validate' in value.prototype && typeof value.prototype.validate === 'function') {\n formRequestCache.set(value, true)\n return true\n }\n\n const instance = new (value as new () => unknown)()\n const isFormRequest =\n instance !== null &&\n typeof instance === 'object' &&\n 'schema' in instance &&\n 'validate' in instance &&\n typeof (instance as FormRequestLike).validate === 'function'\n\n // Cache the result\n formRequestCache.set(value, isFormRequest)\n return isFormRequest\n } catch (error) {\n // Handle different error types for better diagnostics\n if (error instanceof TypeError) {\n // Constructor doesn't exist or has wrong signature\n } else if (error instanceof ReferenceError) {\n console.warn('[Router] FormRequest detection failed: Missing dependencies', error)\n } else {\n console.warn('[Router] Unexpected error during FormRequest detection:', error)\n }\n formRequestCache.set(value, false)\n return false\n }\n }\n\n /**\n * Convert a FormRequest class to middleware.\n * Uses instance caching to avoid re-instantiation on every request.\n * @internal\n */\n static formRequestToMiddleware(RequestClass: FormRequestClass): GravitoMiddleware {\n // Get or create cached instance\n let request = formRequestInstances.get(RequestClass)\n if (!request) {\n request = new RequestClass()\n if (typeof request.validate !== 'function') {\n throw new Error('Invalid FormRequest: validate() is missing.')\n }\n formRequestInstances.set(RequestClass, request)\n }\n\n return async (ctx, next) => {\n const result = await request?.validate?.(ctx)\n\n if (!result) {\n await next()\n return undefined\n }\n\n if (!result.success) {\n const errorCode = (result.error as { error?: { code?: string } })?.error?.code\n const status = errorCode === 'AUTHORIZATION_ERROR' ? 403 : 422\n return ctx.json(result.error, status)\n }\n\n ctx.set('validated', result.data)\n await next()\n return undefined\n }\n }\n}\n",
|
|
139
141
|
"import { ModelNotFoundException } from './exceptions/ModelNotFoundException'\nimport type { GravitoHandler, GravitoMiddleware, HttpMethod, ProxyOptions } from './http/types'\nimport type { PlanetCore } from './PlanetCore'\nimport { Route } from './Route'\nimport { ControllerDispatcher } from './router/ControllerDispatcher'\nimport { RequestValidator } from './router/RequestValidator'\n\n/**\n * Type for Controller Class Constructor\n * @public\n */\nexport type ControllerClass = new (core: PlanetCore) => any\n\n/**\n * Handler can be a function or [Class, 'methodName']\n * @public\n */\nexport type RouteHandler = GravitoHandler | [ControllerClass, string]\n\n/**\n * Interface for FormRequest classes (from @gravito/impulse).\n * Used for duck-typing detection without hard dependency.\n */\nexport interface FormRequestLike {\n schema: unknown\n source?: string\n /**\n * Validate the request context.\n * @param ctx - The request context\n */\n validate?(ctx: unknown): Promise<{ success: boolean; data?: unknown; error?: unknown }>\n}\n\n/**\n * Type for FormRequest class constructor\n * @public\n */\nexport type FormRequestClass = new () => FormRequestLike\n\n/**\n * Symbol to mark FormRequest classes for fast identification.\n * FormRequest classes from @gravito/impulse should set this symbol.\n */\n/**\n * Symbol to mark FormRequest classes for fast identification.\n * FormRequest classes from @gravito/impulse should set this symbol.\n * @public\n */\nexport const FORM_REQUEST_SYMBOL = Symbol.for('gravito.formRequest')\n\n/**\n * Options for route definitions\n * @public\n */\nexport interface RouteOptions {\n /** Route prefix path */\n prefix?: string\n /** Domain/Hostname constraint */\n domain?: string\n /** Middleware stack for the route */\n middleware?: GravitoMiddleware[]\n}\n\n/**\n * Common routing handler argument definition\n * @public\n */\nexport type RouteDefinitionArg =\n | FormRequestClass\n | RouteHandler\n | GravitoMiddleware\n | GravitoMiddleware[]\n\n/**\n * Interface merging for HTTP routing methods to establish overloads\n * without duplicate bodies.\n * @public\n */\nexport interface RoutingMethods {\n get(path: string, handler: RouteHandler): Route\n get(path: string, request: FormRequestClass, handler: RouteHandler): Route\n get(\n path: string,\n middleware: GravitoMiddleware | GravitoMiddleware[],\n handler: RouteHandler\n ): Route\n\n post(path: string, handler: RouteHandler): Route\n post(path: string, request: FormRequestClass, handler: RouteHandler): Route\n post(\n path: string,\n middleware: GravitoMiddleware | GravitoMiddleware[],\n handler: RouteHandler\n ): Route\n\n put(path: string, handler: RouteHandler): Route\n put(path: string, request: FormRequestClass, handler: RouteHandler): Route\n put(\n path: string,\n middleware: GravitoMiddleware | GravitoMiddleware[],\n handler: RouteHandler\n ): Route\n\n delete(path: string, handler: RouteHandler): Route\n delete(path: string, request: FormRequestClass, handler: RouteHandler): Route\n delete(\n path: string,\n middleware: GravitoMiddleware | GravitoMiddleware[],\n handler: RouteHandler\n ): Route\n\n patch(path: string, handler: RouteHandler): Route\n patch(path: string, request: FormRequestClass, handler: RouteHandler): Route\n patch(\n path: string,\n middleware: GravitoMiddleware | GravitoMiddleware[],\n handler: RouteHandler\n ): Route\n}\n\n/**\n * RouteGroup\n * Helper class for chained route configuration (prefix, domain, etc.)\n */\n/**\n * RouteGroup\n * Helper class for chained route configuration (prefix, domain, etc.)\n * @public\n */\n// biome-ignore lint/suspicious/noUnsafeDeclarationMerging: intentionally merged for dynamic mixins\nexport interface RouteGroup extends RoutingMethods {}\n// biome-ignore lint/suspicious/noUnsafeDeclarationMerging: intentionally merged for dynamic mixins\nexport class RouteGroup {\n constructor(\n private router: Router,\n private options: RouteOptions\n ) {}\n\n /**\n * Add a prefix to the current group\n */\n prefix(path: string): RouteGroup {\n return new RouteGroup(this.router, {\n ...this.options,\n prefix: (this.options.prefix || '') + path,\n })\n }\n\n /**\n * Add middleware to the current group.\n * Accepts individual handlers or arrays of handlers.\n */\n middleware(...handlers: (GravitoMiddleware | GravitoMiddleware[])[]): RouteGroup {\n const flattened = handlers.flat()\n return new RouteGroup(this.router, {\n ...this.options,\n middleware: [...(this.options.middleware || []), ...flattened],\n })\n }\n\n /**\n * Define routes within this group\n */\n group(callback: (router: Router | RouteGroup) => void): void {\n callback(this)\n }\n\n // Proxy HTTP methods to the main router with options merged\n // (Method implementations dynamically attached below)\n\n resource(name: string, controller: ControllerClass, options: ResourceOptions = {}): void {\n const actions: ResourceAction[] = [\n 'index',\n 'create',\n 'store',\n 'show',\n 'edit',\n 'update',\n 'destroy',\n ]\n const map: Record<ResourceAction, { method: HttpMethod; path: string }> = {\n index: { method: 'get', path: `/${name}` },\n create: { method: 'get', path: `/${name}/create` },\n store: { method: 'post', path: `/${name}` },\n show: { method: 'get', path: `/${name}/:id` },\n edit: { method: 'get', path: `/${name}/:id/edit` },\n update: { method: 'put', path: `/${name}/:id` },\n destroy: { method: 'delete', path: `/${name}/:id` },\n }\n\n const allowed = actions.filter((action) => {\n if (options.only) {\n return options.only.includes(action)\n }\n if (options.except) {\n return !options.except.includes(action)\n }\n return true\n })\n\n for (const action of allowed) {\n const { method, path } = map[action]\n\n if (action === 'update') {\n this.router\n .req('put', path, [controller, action], undefined, this.options)\n .name(`${name}.${action}`)\n this.router.req('patch', path, [controller, action], undefined, this.options)\n } else {\n this.router\n .req(method, path, [controller, action], undefined, this.options)\n .name(`${name}.${action}`)\n }\n }\n }\n\n /**\n * Register a route that forwards requests to another URL (Gateway Proxy).\n * @param method - HTTP method or 'all'\n * @param path - Local route path\n * @param target - Remote URL or base URL to forward to\n * @param options - Optional proxy options\n */\n forward(\n method: HttpMethod | HttpMethod[] | 'all',\n path: string,\n target: string,\n options?: ProxyOptions\n ): void {\n const handler: GravitoHandler = (ctx) => ctx.forward(target, options)\n const methods =\n method === 'all'\n ? (['get', 'post', 'put', 'delete', 'patch', 'options', 'head'] as HttpMethod[])\n : Array.isArray(method)\n ? method\n : [method]\n\n for (const m of methods) {\n this.router.req(m, path, handler, undefined, this.options)\n }\n }\n}\n\n/**\n * Gravito Router\n *\n * Provides a Laravel-like fluent API for defining routes.\n * Supports:\n * - Controller-based routing: router.get('/', [HomeController, 'index'])\n * - Route groups with prefixes: router.prefix('/api').group(...)\n * - Domain-based routing: router.domain('api.app').group(...)\n * - Middleware chaining: router.middleware(auth).group(...)\n * - FormRequest validation: router.post('/users', StoreUserRequest, [UserController, 'store'])\n * - Inline Middleware: router.get('/users', authMiddleware, [UserController, 'index'])\n */\n// biome-ignore lint/suspicious/noUnsafeDeclarationMerging: intentionally merged for dynamic mixins\nexport interface Router extends RoutingMethods {}\n// biome-ignore lint/suspicious/noUnsafeDeclarationMerging: intentionally merged for dynamic mixins\nexport class Router {\n // Internal list of all registered routes (for scanning and debugging)\n public routes: Array<{ method: string; path: string; domain?: string }> = []\n\n private dispatcher: ControllerDispatcher\n\n private namedRoutes = new Map<\n string,\n { method: string; path: string; domain?: string | undefined }\n >()\n private bindings = new Map<string, (id: string) => Promise<unknown>>()\n\n /**\n * Compile all registered routes into a flat array for caching or manifest generation.\n * Optimized: O(n) complexity using Set for lookups instead of O(n²) with Array.some()\n */\n compile() {\n const compiled: Array<{\n method: string\n path: string\n name?: string\n domain?: string | undefined\n }> = []\n\n // Create a map of path+method to name for quick lookup\n const nameMap = new Map<string, string>()\n for (const [name, info] of this.namedRoutes) {\n nameMap.set(`${info.method.toUpperCase()}:${info.path}`, name)\n }\n\n // Use Set to track compiled routes for O(1) lookup\n const compiledKeys = new Set<string>()\n\n // First pass: compile registered routes\n for (const route of this.routes) {\n const method = route.method.toUpperCase()\n const key = `${method}:${route.path}`\n\n compiledKeys.add(key)\n compiled.push({\n method,\n path: route.path,\n domain: route.domain,\n name: nameMap.get(key),\n })\n }\n\n // Second pass: include named routes that might not be in this.routes (e.g. from loaded manifest)\n // Now using O(1) Set lookup instead of O(n) Array.some()\n for (const [name, info] of this.namedRoutes) {\n const key = `${info.method.toUpperCase()}:${info.path}`\n\n if (!compiledKeys.has(key)) {\n compiled.push({\n name,\n method: info.method.toUpperCase(),\n path: info.path,\n domain: info.domain,\n })\n }\n }\n\n return compiled\n }\n\n /**\n * Register a named route\n */\n registerName(name: string, method: string, path: string, options: RouteOptions = {}): void {\n const fullPath = (options.prefix || '') + path\n this.namedRoutes.set(name, {\n method: method.toUpperCase(),\n path: fullPath,\n domain: options.domain,\n })\n }\n\n /**\n * Generate a URL from a named route.\n *\n * Replaces route parameters (e.g., `:id`) with provided values and appends\n * query parameters to the URL.\n *\n * @param name - The name of the route.\n * @param params - Key-value pairs for route parameters.\n * @param query - Key-value pairs for query string parameters.\n * @returns The generated URL string.\n * @throws Error if the named route is not found or if a required parameter is missing.\n *\n * @example\n * ```typescript\n * const url = router.url('users.show', { id: 1 }, { tab: 'profile' });\n * // Result: \"/users/1?tab=profile\"\n * ```\n */\n url(\n name: string,\n params: Record<string, string | number> = {},\n query: Record<string, string | number | boolean | null | undefined> = {}\n ): string {\n const route = this.namedRoutes.get(name)\n if (!route) {\n throw new Error(`Named route '${name}' not found`)\n }\n\n let path = route.path\n path = path.replace(/:([A-Za-z0-9_]+)/g, (_, key: string) => {\n const value = params[key]\n if (value === undefined || value === null) {\n throw new Error(`Missing route param '${key}' for route '${name}'`)\n }\n return encodeURIComponent(String(value))\n })\n\n const qs = new URLSearchParams()\n for (const [k, v] of Object.entries(query)) {\n if (v === undefined || v === null) {\n continue\n }\n qs.set(k, String(v))\n }\n\n const suffix = qs.toString()\n return suffix ? `${path}?${suffix}` : path\n }\n\n /**\n * Export named routes as a serializable manifest (for caching).\n */\n exportNamedRoutes(): Record<string, { method: string; path: string; domain?: string }> {\n return Object.fromEntries(this.namedRoutes.entries()) as Record<\n string,\n { method: string; path: string; domain?: string }\n >\n }\n\n /**\n * Load named routes from a manifest (for caching).\n */\n loadNamedRoutes(\n manifest: Record<string, { method: string; path: string; domain?: string }>\n ): void {\n this.namedRoutes = new Map(Object.entries(manifest))\n }\n\n /**\n * Register a route model binding.\n *\n * Automatically resolves a route parameter to an object using the provided\n * resolver function. The resolved object is then available in the request context.\n *\n * @param param - The name of the route parameter to bind.\n * @param resolver - An async function that resolves the parameter value to an object.\n *\n * @example\n * ```typescript\n * router.bind('user', async (id) => await User.find(id));\n * ```\n */\n bind(param: string, resolver: (id: string) => Promise<unknown>) {\n this.bindings.set(param, resolver)\n }\n\n /**\n * Register a route model binding for a Model class.\n */\n model(param: string, modelClass: unknown) {\n this.bind(param, async (id) => {\n // Assuming modelClass has a `find` method (Active Record pattern)\n if (\n modelClass &&\n typeof modelClass === 'object' &&\n 'find' in modelClass &&\n typeof (modelClass as { find?: (id: string) => Promise<unknown> }).find === 'function'\n ) {\n const instance = await (modelClass as { find: (id: string) => Promise<unknown> }).find(id)\n if (!instance) {\n throw new Error('ModelNotFound') // Will be caught by 404 handler if we handle it\n }\n return instance\n }\n throw new Error(`Invalid model class for binding '${param}'`)\n })\n }\n\n constructor(private core: PlanetCore) {\n this.dispatcher = new ControllerDispatcher(core)\n\n // Register global middleware for bindings\n // Optimized: Only resolve bindings for params that exist in the current route\n this.core.adapter.useGlobal(async (c, next) => {\n // Early exit if no bindings registered\n if (this.bindings.size === 0) {\n return await next()\n }\n\n const routeModels = (c.get('routeModels') ?? {}) as Record<string, unknown>\n let hasResolvedModels = false\n\n // Iterate over request params (O(P)) instead of bindings (O(B))\n // This is significantly faster when there are many bindings but few params in current route\n const params = c.req.params()\n\n for (const [param, value] of Object.entries(params)) {\n const resolver = this.bindings.get(param)\n\n if (!resolver) {\n continue\n }\n\n try {\n const resolved = await resolver(value)\n routeModels[param] = resolved\n hasResolvedModels = true\n } catch (err: unknown) {\n const message = err instanceof Error ? err.message : undefined\n if (message === 'ModelNotFound') {\n throw new ModelNotFoundException(param, value)\n }\n throw err\n }\n }\n\n // Only set routeModels if we actually resolved something\n if (hasResolvedModels) {\n c.set('routeModels', routeModels)\n }\n\n return await next()\n })\n }\n\n /**\n * Start a route group with a prefix\n */\n prefix(path: string): RouteGroup {\n return new RouteGroup(this, { prefix: path })\n }\n\n /**\n * Start a route group with a domain constraint\n */\n domain(host: string): RouteGroup {\n return new RouteGroup(this, { domain: host })\n }\n\n /**\n * Start a route group with middleware.\n * Accepts individual handlers or arrays of handlers.\n */\n middleware(...handlers: (GravitoMiddleware | GravitoMiddleware[])[]): RouteGroup {\n return new RouteGroup(this, { middleware: handlers.flat() })\n }\n\n // Implementation of get, post, put, delete, patch are dynamically mixed-in below.\n\n /**\n * Register a route that forwards requests to another URL (Gateway Proxy).\n * @param method - HTTP method or 'all'\n * @param path - Local route path\n * @param target - Remote URL or base URL to forward to\n * @param options - Optional proxy options\n */\n forward(\n method: HttpMethod | HttpMethod[] | 'all',\n path: string,\n target: string,\n options?: ProxyOptions\n ): void {\n const handler: GravitoHandler = (ctx) => ctx.forward(target, options)\n const methods =\n method === 'all'\n ? (['get', 'post', 'put', 'delete', 'patch', 'options', 'head'] as HttpMethod[])\n : Array.isArray(method)\n ? method\n : [method]\n\n for (const m of methods) {\n this.req(m, path, handler)\n }\n }\n\n /**\n * Register a resource route (RESTful).\n *\n * Automatically creates multiple routes for a resource (index, create, store,\n * show, edit, update, destroy) mapping to specific controller methods.\n *\n * @param name - The resource name (e.g., 'users').\n * @param controller - The controller class handling the resource.\n * @param options - Optional constraints (only/except) for resource actions.\n *\n * @example\n * ```typescript\n * router.resource('photos', PhotoController);\n * ```\n */\n resource(name: string, controller: ControllerClass, options: ResourceOptions = {}): void {\n const actions: ResourceAction[] = [\n 'index',\n 'create',\n 'store',\n 'show',\n 'edit',\n 'update',\n 'destroy',\n ]\n const map: Record<ResourceAction, { method: HttpMethod; path: string }> = {\n index: { method: 'get', path: `/${name}` },\n create: { method: 'get', path: `/${name}/create` },\n store: { method: 'post', path: `/${name}` },\n show: { method: 'get', path: `/${name}/:id` },\n edit: { method: 'get', path: `/${name}/:id/edit` },\n update: { method: 'put', path: `/${name}/:id` },\n destroy: { method: 'delete', path: `/${name}/:id` },\n }\n\n const allowed = actions.filter((action) => {\n if (options.only) {\n return options.only.includes(action)\n }\n if (options.except) {\n return !options.except.includes(action)\n }\n return true\n })\n\n for (const action of allowed) {\n const { method, path } = map[action]\n\n if (action === 'update') {\n this.req('put', path, [controller, action]).name(`${name}.${action}`)\n this.req('patch', path, [controller, action])\n } else {\n this.req(method, path, [controller, action]).name(`${name}.${action}`)\n }\n }\n }\n\n /**\n * Internal Request Registration\n */\n req(\n method: HttpMethod,\n path: string,\n requestOrHandlerOrMiddleware: RouteDefinitionArg,\n handler?: RouteHandler,\n options: RouteOptions = {}\n ): Route {\n // 1. Resolve Path\n const fullPath = (options.prefix || '') + path\n console.log(`[Router] Registering ${method.toUpperCase()} ${fullPath}`)\n\n // 2. Determine if FormRequest or Middleware is provided\n let formRequestMiddleware: GravitoMiddleware | null = null\n let routeMiddleware: GravitoMiddleware[] = []\n let finalRouteHandler: RouteHandler\n\n if (handler !== undefined) {\n // Three arguments: (path, middleware/request, handler)\n if (RequestValidator.isFormRequestClass(requestOrHandlerOrMiddleware)) {\n formRequestMiddleware = RequestValidator.formRequestToMiddleware(\n requestOrHandlerOrMiddleware\n )\n } else {\n // Assume middleware (single or array)\n const middleware = requestOrHandlerOrMiddleware as GravitoMiddleware | GravitoMiddleware[]\n\n if (Array.isArray(middleware)) {\n routeMiddleware = middleware\n } else {\n routeMiddleware = [middleware]\n }\n }\n finalRouteHandler = handler\n } else {\n // Two arguments: (path, handler)\n finalRouteHandler = requestOrHandlerOrMiddleware as RouteHandler\n }\n\n // 3. Resolve Handler (Controller vs Function)\n let resolvedHandler: GravitoHandler\n\n if (Array.isArray(finalRouteHandler)) {\n const [CtrlClass, methodName] = finalRouteHandler\n resolvedHandler = this.dispatcher.resolve(CtrlClass, methodName)\n } else {\n resolvedHandler = finalRouteHandler as GravitoHandler\n }\n\n // 4. Prepare Handlers Stack\n const handlers: (GravitoHandler | GravitoMiddleware)[] = []\n\n if (options.middleware) {\n handlers.push(...options.middleware)\n }\n if (formRequestMiddleware) {\n handlers.push(formRequestMiddleware)\n }\n if (routeMiddleware.length > 0) {\n handlers.push(...routeMiddleware)\n }\n handlers.push(resolvedHandler)\n\n // 5. Register with Adapter\n // If domain constraint exists, we wrap everything in a check\n if (options.domain) {\n // Prepend domain check\n const domainCheck: GravitoMiddleware = async (c, next) => {\n if (c.req.header('host') !== options.domain) {\n // If domain mismatch, return 404 immediately.\n // In a more complex router, this would backtrack, but for now this is correct.\n return c.text('Not Found', 404) as any\n }\n await next()\n }\n\n // Prepend domain check\n handlers.unshift(domainCheck)\n }\n\n this.routes.push({ method: method.toUpperCase(), path: fullPath, domain: options.domain })\n this.core.adapter.route(method, fullPath, ...(handlers as any[]))\n\n return new Route(this, method, fullPath, options)\n }\n}\n\n/**\n * Standard RESTful resource action names.\n * @public\n */\nexport type ResourceAction = 'index' | 'create' | 'store' | 'show' | 'edit' | 'update' | 'destroy'\n\n/**\n * Options for resource route registration.\n * @public\n */\nexport interface ResourceOptions {\n only?: ResourceAction[]\n except?: ResourceAction[]\n}\n\nconst METHODS: ('get' | 'post' | 'put' | 'delete' | 'patch')[] = [\n 'get',\n 'post',\n 'put',\n 'delete',\n 'patch',\n]\n\nMETHODS.forEach((method) => {\n RouteGroup.prototype[method] = function (\n this: RouteGroup,\n path: string,\n arg1: RouteDefinitionArg,\n handler?: RouteHandler\n ) {\n return (this as any).router.req(method, path, arg1, handler, (this as any).options)\n }\n\n Router.prototype[method] = function (\n this: Router,\n path: string,\n arg1: RouteDefinitionArg,\n handler?: RouteHandler\n ) {\n return this.req(method, path, arg1, handler)\n }\n})\n",
|
|
140
142
|
"import crypto from 'node:crypto'\nimport { NativeHasher } from '../ffi'\n\n/**\n * Options for the Encrypter class.\n * @public\n */\nexport interface EncrypterOptions {\n key: string\n cipher?: string\n}\n\n/**\n * Service for OpenSSL encryption/decryption.\n * Compatible with Laravel's encryption format.\n * @public\n */\nexport class Encrypter {\n private algorithm: string\n private key: Buffer\n\n constructor(options: EncrypterOptions) {\n this.algorithm = options.cipher || 'aes-256-cbc'\n\n if (options.key.startsWith('base64:')) {\n this.key = Buffer.from(options.key.substring(7), 'base64')\n } else {\n this.key = Buffer.from(options.key)\n }\n\n // Verify key length\n if (this.algorithm === 'aes-128-cbc' && this.key.length !== 16) {\n throw new Error('The key must be 16 bytes (128 bits) for AES-128-CBC.')\n }\n if (this.algorithm === 'aes-256-cbc' && this.key.length !== 32) {\n throw new Error('The key must be 32 bytes (256 bits) for AES-256-CBC.')\n }\n }\n\n /**\n * Encrypt a value\n */\n encrypt(value: unknown, serialize = true): string {\n const iv = crypto.randomBytes(16)\n const cipher = crypto.createCipheriv(this.algorithm, this.key, iv)\n\n const stringValue = serialize ? JSON.stringify(value) : String(value)\n\n let encrypted = cipher.update(stringValue, 'utf8', 'base64')\n encrypted += cipher.final('base64')\n\n const mac = this.hash(iv.toString('base64'), encrypted)\n\n const payload = {\n iv: iv.toString('base64'),\n value: encrypted,\n mac,\n tag: '', // AES-CBC doesn't produce an auth tag, but GCM does. Keeping structure standard.\n }\n\n return Buffer.from(JSON.stringify(payload)).toString('base64')\n }\n\n /**\n * Decrypt a value\n */\n decrypt(payload: string, deserialize = true): unknown {\n const json = JSON.parse(Buffer.from(payload, 'base64').toString('utf8'))\n\n if (!this.validPayload(json)) {\n throw new Error('The payload is invalid.')\n }\n\n if (!this.validMac(json)) {\n throw new Error('The MAC is invalid.')\n }\n\n const iv = Buffer.from(json.iv, 'base64')\n const decipher = crypto.createDecipheriv(this.algorithm, this.key, iv)\n\n let decrypted = decipher.update(json.value, 'base64', 'utf8')\n decrypted += decipher.final('utf8')\n\n return deserialize ? JSON.parse(decrypted) : decrypted\n }\n\n private hash(iv: string, value: string): string {\n return NativeHasher.hmacSha256(this.key.toString(), iv + value)\n }\n\n private validPayload(payload: unknown): payload is { iv: string; value: string; mac: string } {\n return (\n typeof payload === 'object' &&\n payload !== null &&\n 'iv' in payload &&\n 'value' in payload &&\n 'mac' in payload\n )\n }\n\n private validMac(payload: { iv: string; value: string; mac: string }): boolean {\n const calculated = this.hash(payload.iv, payload.value)\n return crypto.timingSafeEqual(Buffer.from(calculated), Buffer.from(payload.mac))\n }\n\n /**\n * Generate a new key\n */\n static generateKey(cipher = 'aes-256-cbc'): string {\n const bytes = cipher === 'aes-128-cbc' ? 16 : 32\n return `base64:${crypto.randomBytes(bytes).toString('base64')}`\n }\n}\n",
|
|
141
143
|
"/**\n * Hashing interface\n */\nexport interface Hasher {\n /**\n * Hash the given value\n */\n make(value: string, options?: Record<string, unknown>): Promise<string>\n\n /**\n * Check the given plain value against a hash\n */\n check(value: string, hashedValue: string): Promise<boolean>\n\n /**\n * Check if the given hash has been hashed using the given options\n */\n needsRehash(hashedValue: string, options?: Record<string, unknown>): boolean\n}\n\n/**\n * Bun Hasher\n * Uses Bun's native password hashing (bcrypt by default)\n */\nexport class BunHasher implements Hasher {\n async make(\n value: string,\n options?: { algorithm?: 'bcrypt' | 'argon2id'; cost?: number }\n ): Promise<string> {\n const bun = Bun as unknown as {\n password: {\n hash(v: string, o?: unknown): Promise<string>\n }\n }\n return await bun.password.hash(value, options)\n }\n\n async check(value: string, hashedValue: string): Promise<boolean> {\n const bun = Bun as unknown as {\n password: {\n verify(v: string, h: string): Promise<boolean>\n }\n }\n return await bun.password.verify(value, hashedValue)\n }\n\n needsRehash(_hashedValue: string, _options?: Record<string, unknown>): boolean {\n return false\n }\n}\n",
|
|
142
|
-
"/**\n * @fileoverview PlanetCore - The Heart of Gravito Framework\n *\n * The micro-kernel that orchestrates the entire Galaxy Architecture.\n * Manages HTTP routing, middleware, error handling, and orbit integration.\n *\n * @module @gravito/core\n * @since 1.0.0\n */\n\nimport { type HttpAdapter, isHttpAdapter } from './adapters/types'\nimport { ConfigManager } from './ConfigManager'\nimport { Container } from './Container'\nimport { ErrorHandler } from './ErrorHandler'\nimport { EventManager } from './EventManager'\nimport { ObservableHookManager } from './events/observability/ObservableHookManager'\nimport { OTelEventMetrics } from './events/observability/OTelEventMetrics'\nimport {\n type RegisterGlobalErrorHandlersOptions,\n registerGlobalErrorHandlers,\n} from './GlobalErrorHandlers'\nimport { HookManager } from './HookManager'\nimport type { fail } from './helpers/response'\nimport type { ContentfulStatusCode, GravitoContext } from './http/types'\nimport { ConsoleLogger, type Logger } from './Logger'\nimport {\n createNoOpObservabilityProvider,\n type ObservabilityProvider,\n} from './observability/contracts'\nimport type { ServiceProvider } from './ServiceProvider'\n\n/**\n * CacheService interface for orbit-injected cache\n * Orbits implementing cache should conform to this interface\n */\nexport interface CacheService {\n get<T = unknown>(key: string): Promise<T | null>\n set(key: string, value: unknown, ttl?: number): Promise<void>\n delete(key: string): Promise<void>\n clear(): Promise<void>\n remember<T>(key: string, ttl: number, callback: () => Promise<T>): Promise<T>\n}\n\n/**\n * Interface for View Rendering Service\n * @public\n */\nexport interface ViewService {\n render(view: string, data?: Record<string, unknown>, options?: Record<string, unknown>): string\n}\n\n/**\n * Context passed to error handlers\n * @public\n */\nexport type ErrorHandlerContext = {\n core: PlanetCore\n c: GravitoContext\n error: unknown\n isProduction: boolean\n accept: string\n wantsHtml: boolean\n status: ContentfulStatusCode\n payload: ReturnType<typeof fail>\n logLevel?: 'error' | 'warn' | 'info' | 'none'\n logMessage?: string\n html?: {\n templates: string[]\n data: Record<string, unknown>\n }\n}\n\n/**\n * Interface for Gravito Orbit (Plugin/Module)\n * @public\n */\nexport interface GravitoOrbit {\n install(core: PlanetCore): void | Promise<void>\n}\n\n/**\n * Configuration for booting PlanetCore\n * @public\n */\nexport type GravitoConfig = {\n logger?: Logger\n config?: Record<string, unknown>\n orbits?: (new () => GravitoOrbit)[] | GravitoOrbit[]\n /**\n * HTTP Adapter to use. Defaults to BunNativeAdapter in Bun environments.\n * In non-Bun environments, must be provided explicitly.\n * @example\n * ```typescript\n * import { PhotonAdapter } from '@gravito/photon/adapter'\n * new PlanetCore({ adapter: new PhotonAdapter() })\n * ```\n * See https://gravito.dev/guides/http-adapters for available adapters.\n * @since 2.0.0\n */\n adapter?: HttpAdapter\n /**\n * Dependency Injection Container. If provided, PlanetCore will use this\n * container instead of creating a new one. This allows sharing a container\n * between Application and PlanetCore.\n * @since 2.0.0\n */\n container?: Container\n\n /**\n * Observability configuration for event system.\n * @since 2.1.0\n */\n observability?: {\n /**\n * Enable event system observability (metrics, tracing).\n * @default false\n */\n enabled?: boolean\n /**\n * Enable OpenTelemetry distributed tracing.\n * @default false\n */\n tracing?: boolean\n /**\n * Prefix for metric names.\n * @default 'gravito_event_'\n */\n metricsPrefix?: string\n /**\n * Prometheus metrics configuration.\n */\n prometheus?: {\n /**\n * Enable Prometheus metrics endpoint.\n * @default true\n */\n enabled?: boolean\n /**\n * Port for Prometheus metrics endpoint.\n * @default 9090\n */\n port?: number\n /**\n * Endpoint path for metrics.\n * @default '/metrics'\n */\n endpoint?: string\n }\n }\n\n /**\n * Observability provider for distributed tracing and metrics.\n * If provided, this will be used instead of the default OTel setup.\n * @since 2.2.0\n */\n observabilityProvider?: ObservabilityProvider\n}\n\nimport { BunNativeAdapter } from './adapters/bun/BunNativeAdapter'\nimport { setApp } from './helpers'\nimport { CookieJar } from './http/CookieJar'\nimport { Router } from './Router'\nimport { Encrypter } from './security/Encrypter'\nimport { BunHasher } from './security/Hasher'\n\n/**\n * PlanetCore - The Heart of Gravito Framework\n *\n * The micro-kernel that orchestrates the entire Galaxy Architecture.\n * Manages HTTP routing, middleware, error handling, and orbit integration.\n * @public\n */\nexport class PlanetCore {\n /**\n * The HTTP adapter used by this core instance.\n * @since 2.0.0\n */\n private _adapter!: HttpAdapter\n\n /**\n * Access the underlying Photon app instance.\n * @deprecated Use adapter methods for new code. This property is kept for backward compatibility.\n */\n public get app(): unknown {\n return this._adapter.native\n }\n\n /**\n * Get the HTTP adapter instance.\n * @since 2.0.0\n */\n public get adapter(): HttpAdapter {\n return this._adapter\n }\n\n public logger: Logger\n public config: ConfigManager\n public hooks: HookManager\n public events: EventManager\n public router: Router\n public container: Container\n /** @deprecated Use core.container instead */\n public services: Map<string, unknown> = new Map()\n\n public encrypter?: Encrypter\n public hasher: BunHasher\n\n /**\n * Observability provider for distributed tracing and metrics.\n * @since 2.2.0\n */\n public observabilityProvider: ObservabilityProvider\n\n private providers: ServiceProvider[] = []\n private deferredProviders: Map<string, ServiceProvider> = new Map()\n private bootedProviders: Set<ServiceProvider> = new Set()\n private isShuttingDown = false\n\n /**\n * Initialize observability asynchronously (metrics, tracing, Prometheus).\n * This is called from constructor but doesn't block initialization.\n *\n * Phase 2.2 Update: Now uses the observabilityProvider passed from @gravito/monitor\n * or falls back to OTel implementation if available for backward compatibility.\n *\n * @internal\n */\n private async initializeObservabilityAsync(\n obsConfig: GravitoConfig['observability']\n ): Promise<void> {\n try {\n // If observabilityProvider is already provided (from monitor), use it directly\n if (\n this.observabilityProvider &&\n this.observabilityProvider !== (this.observabilityProvider as any)._isNoOp\n ) {\n this.logger.info('[Observability] ✅ Using observability provider from @gravito/monitor')\n // Prometheus setup is handled by monitor\n if (obsConfig?.prometheus?.enabled !== false) {\n await this.initializePrometheusAsync(obsConfig)\n }\n return\n }\n\n // Fallback: Import OpenTelemetry API (backward compatibility)\n // @deprecated This path is deprecated in Phase 2.2. Use @gravito/monitor instead.\n try {\n const otel = await import('@opentelemetry/api')\n const meter = otel.metrics.getMeter('@gravito/core', '2.1.0')\n\n // Create event metrics\n const eventMetrics = new OTelEventMetrics(\n meter,\n obsConfig?.metricsPrefix ?? 'gravito_event_'\n )\n\n // Create and set ObservableHookManager\n const observableHooks = new ObservableHookManager(\n {},\n {\n enabled: true,\n metrics: eventMetrics,\n tracing: obsConfig?.tracing ?? false,\n metricsPrefix: obsConfig?.metricsPrefix ?? 'gravito_event_',\n }\n )\n\n // Set queue depth callback\n eventMetrics.setQueueDepthCallback(() => {\n const queue = (observableHooks as any).getEventQueue()\n return {\n critical: queue.getDepthByPriority('critical'),\n high: queue.getDepthByPriority('high'),\n normal: queue.getDepthByPriority('normal'),\n low: queue.getDepthByPriority('low'),\n }\n })\n\n // Replace hooks with observable version\n this.hooks = observableHooks\n this.logger.warn(\n '[Observability] ⚠️ Using legacy OTel path. Migrate to @gravito/monitor for full observability.'\n )\n\n // Initialize Prometheus if enabled\n if (obsConfig?.prometheus?.enabled !== false) {\n await this.initializePrometheusAsync(obsConfig)\n }\n } catch (error) {\n this.logger.debug('[Observability] OpenTelemetry not available, using no-op', error)\n // Use the no-op observability provider that was set in constructor\n }\n } catch (error) {\n this.logger.error('[Observability] Failed to initialize observability:', error)\n // Hooks already initialized to HookManager in constructor\n }\n }\n\n /**\n * Initialize Prometheus metrics asynchronously.\n *\n * @internal\n * @deprecated Prometheus setup has been moved to @gravito/monitor\n */\n private async initializePrometheusAsync(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _obsConfig: GravitoConfig['observability']\n ): Promise<void> {\n // Prometheus metrics setup has been moved to @gravito/monitor\n // This method is retained for backwards compatibility but is now a no-op.\n this.logger.debug(\n '[Observability] Prometheus setup moved to @gravito/monitor. ' +\n 'Use monitor package for metrics initialization.'\n )\n }\n\n /**\n * Register a service provider to the core.\n *\n * Service providers are the central place to configure your application.\n * They bind services to the container and bootstrap application features.\n *\n * @param provider - The ServiceProvider instance to register.\n * @returns The PlanetCore instance for chaining.\n *\n * @example\n * ```typescript\n * core.register(new DatabaseServiceProvider());\n * ```\n */\n register(provider: ServiceProvider): this {\n // Set core reference\n if (typeof (provider as any).setCore === 'function') {\n ;(provider as any).setCore(this)\n } else {\n // Fallback: set core directly on the provider\n ;(provider as any).core = this\n }\n\n // Handle deferred providers\n if (provider.deferred) {\n const services = provider.provides()\n for (const service of services) {\n this.deferredProviders.set(service, provider)\n }\n } else {\n this.logger.debug(`📝 Registering provider: ${provider.constructor.name}`)\n this.providers.push(provider)\n }\n\n return this\n }\n\n /**\n * Bootstrap the application by registering and booting providers.\n *\n * This method orchestrates the two-phase startup sequence:\n * 1. Registration: Calls `register()` on all providers to bind services.\n * 2. Booting: Calls `boot()` on all providers once all bindings are ready.\n *\n * This method must be called before the application starts handling requests.\n *\n * @returns Promise that resolves when bootstrapping is complete.\n * @throws Error if a deferred provider has an asynchronous register method.\n *\n * @example\n * ```typescript\n * await core.bootstrap();\n * ```\n */\n async bootstrap(): Promise<void> {\n // Phase 0: Validate configuration\n try {\n this.config.validate()\n } catch (error) {\n this.logger.error('Configuration validation failed:', error)\n throw error\n }\n\n // Phase 1: Register all bindings (supports async)\n this.logger.debug(`🔄 Bootstrapping ${this.providers.length} providers`)\n for (const provider of this.providers) {\n this.logger.debug(` Registering: ${provider.constructor.name}`)\n await provider.register(this.container)\n }\n\n // Phase 2: Setup deferred provider resolution\n this.setupDeferredProviderResolution()\n\n // Phase 3: Boot all providers\n for (const provider of this.providers) {\n await this.bootProvider(provider)\n }\n\n // Phase 4: Bind global error handler (swappable via container)\n // We bind this late to allow ServiceProviders to override 'error.handler'\n if (this.container.has('error.handler')) {\n const errorHandler = this.container.make<ErrorHandler>('error.handler')\n this.adapter.onError(errorHandler.handleError.bind(errorHandler))\n this.adapter.onNotFound(errorHandler.handleNotFound.bind(errorHandler))\n }\n\n // Phase 5: Call ready() hook for final initialization\n await this.ready()\n }\n\n /**\n * Called when the application is ready to accept requests.\n *\n * Invokes the `onReady()` lifecycle hook on all providers.\n * Called automatically at the end of `bootstrap()`.\n *\n * @returns Promise that resolves when all providers are ready.\n *\n * @example\n * ```typescript\n * await core.ready();\n * ```\n */\n async ready(): Promise<void> {\n this.logger.debug('🟢 Application ready phase started')\n for (const provider of this.providers) {\n if (provider.onReady) {\n this.logger.debug(` onReady: ${provider.constructor.name}`)\n await provider.onReady(this)\n }\n }\n this.hooks.doAction('app:ready', this)\n this.logger.debug('✅ Application ready')\n }\n\n /**\n * Gracefully shutdown the application.\n *\n * Invokes the `onShutdown()` lifecycle hook on all providers in reverse order (LIFO).\n * Should be called when the application receives a termination signal.\n *\n * @returns Promise that resolves when all providers have shut down.\n *\n * @example\n * ```typescript\n * process.on('SIGTERM', () => core.shutdown());\n * ```\n */\n async shutdown(): Promise<void> {\n if (this.isShuttingDown) {\n this.logger.warn('Shutdown already in progress')\n return\n }\n\n this.isShuttingDown = true\n this.logger.debug('🛑 Application shutdown started')\n\n // Call onShutdown in reverse order (LIFO)\n for (const provider of [...this.providers].reverse()) {\n if (provider.onShutdown) {\n try {\n this.logger.debug(` onShutdown: ${provider.constructor.name}`)\n await provider.onShutdown(this)\n } catch (error) {\n this.logger.error(`Error during shutdown of ${provider.constructor.name}:`, error)\n }\n }\n }\n\n this.hooks.doAction('app:shutdown', this)\n this.logger.debug('✅ Application shutdown complete')\n }\n\n /**\n * Setup deferred provider resolution.\n * Wraps container.make to auto-register deferred providers on first request.\n *\n * @internal\n */\n private setupDeferredProviderResolution(): void {\n const originalMake = this.container.make.bind(this.container)\n\n this.container.make = <T>(key: string): T => {\n // Check if we need to register a deferred provider\n if (this.deferredProviders.has(key)) {\n const provider = this.deferredProviders.get(key)!\n this.registerDeferredProvider(provider)\n }\n\n return originalMake(key) as T\n }\n }\n\n /**\n * Register a deferred provider on-demand.\n *\n * @internal\n */\n private registerDeferredProvider(provider: ServiceProvider): void {\n // Remove from deferred map (for all services it provides)\n for (const service of provider.provides()) {\n this.deferredProviders.delete(service)\n }\n\n // Register synchronously (deferred providers should have sync register)\n const result = provider.register(this.container)\n if (result instanceof Promise) {\n throw new Error(\n `Deferred provider ${provider.constructor.name} has async register(). ` +\n 'Deferred providers must have synchronous register() methods.'\n )\n }\n\n // Boot the provider\n this.bootProvider(provider)\n }\n\n /**\n * Boot a single provider if not already booted.\n *\n * @internal\n */\n private async bootProvider(provider: ServiceProvider): Promise<void> {\n if (this.bootedProviders.has(provider)) {\n return\n }\n\n this.bootedProviders.add(provider)\n\n if (provider.boot) {\n await provider.boot(this)\n }\n }\n\n constructor(\n options: {\n logger?: Logger\n config?: Record<string, unknown>\n adapter?: HttpAdapter\n container?: Container\n observabilityProvider?: ObservabilityProvider\n } = {}\n ) {\n this.logger = options.logger ?? new ConsoleLogger()\n this.config = new ConfigManager(options.config ?? {})\n\n // Initialize observability provider (Phase 2.2)\n this.observabilityProvider = options.observabilityProvider ?? createNoOpObservabilityProvider()\n\n // 可觀測性配置初始化\n const obsConfig = this.config.get<GravitoConfig['observability']>('observability', {\n enabled: false,\n })\n\n // 初始化 hooks(同步)\n if (obsConfig?.enabled) {\n this.logger.info('[Observability] Enabling event system observability')\n\n // 異步初始化可觀測性(不阻塞 constructor)\n this.initializeObservabilityAsync(obsConfig)\n\n // 暫時使用標準 HookManager,會被異步替換\n this.hooks = new HookManager()\n } else {\n // 使用標準 HookManager(向後兼容)\n this.hooks = new HookManager()\n }\n\n this.events = new EventManager(this)\n\n // Use provided container or create a new one\n this.container = options.container ?? new Container()\n\n this.hasher = new BunHasher()\n\n // Bind this instance to the global app helper\n setApp(this)\n\n // Initialize Encrypter if APP_KEY is present\n const appKey =\n (this.config.has('APP_KEY') ? this.config.get<string>('APP_KEY') : undefined) ||\n process.env.APP_KEY\n if (appKey) {\n try {\n this.encrypter = new Encrypter({ key: appKey })\n } catch (e) {\n this.logger.warn('Failed to initialize Encrypter (invalid APP_KEY?):', e)\n }\n }\n\n // Initialize HTTP adapter\n // Priority:\n // 1. Config 'adapter' option (explicit)\n // 2. BunNativeAdapter (if Bun is detected)\n // 3. No fallback — caller must provide adapter explicitly\n if (options.adapter) {\n this._adapter = options.adapter\n } else if (typeof Bun !== 'undefined') {\n this._adapter = new BunNativeAdapter()\n } else {\n throw new Error(\n 'No HTTP adapter provided. In non-Bun environments, ' +\n 'you must explicitly provide an adapter. ' +\n 'See https://gravito.dev/guides/http-adapters for available implementations.'\n )\n }\n\n /**\n * Core Middleware for Context Injection with Request Scope\n */\n this.adapter.use('*', async (c, next) => {\n c.set('core', this)\n c.set('logger', this.logger)\n c.set('config', this.config)\n\n const cookieJar = new CookieJar(this.encrypter)\n c.set('cookieJar', cookieJar)\n\n // Add route helper\n c.route = (name: string, params?: any, query?: any) => this.router.url(name, params, query)\n\n // Execute the request within the container scope context\n // This enables request-scoped services to be properly isolated\n const requestScope = (c as any).requestScope?.()\n const result = requestScope\n ? await Container.runWithScope(requestScope, async () => next())\n : await next()\n\n // Automatically attach queued cookies to response\n cookieJar.attach(c)\n\n return result\n })\n\n // Router depends on `core.app` for route registration and optional global middleware.\n this.router = new Router(this)\n\n // Register Default Error Handler\n // Can be overridden by binding 'error.handler' in a ServiceProvider\n this.container.singleton('error.handler', () => {\n return new ErrorHandler({\n logger: this.logger,\n hooks: this.hooks,\n getCore: () => this,\n })\n })\n\n // Bind default handlers immediately so basic usage and tests work without explicit bootstrap()\n const defaultHandler = this.container.make<ErrorHandler>('error.handler')\n this.adapter.onError(defaultHandler.handleError.bind(defaultHandler))\n this.adapter.onNotFound(defaultHandler.handleNotFound.bind(defaultHandler))\n\n // Setup signal handlers for graceful shutdown\n this.setupSignalHandlers()\n }\n\n /**\n * Setup process signal handlers for graceful shutdown\n *\n * @internal\n */\n private setupSignalHandlers(): void {\n const handleSignal = async (signal: string) => {\n this.logger.info(`📍 Received ${signal}, initiating graceful shutdown...`)\n await this.shutdown()\n // Exit after shutdown completes\n process.exit(0)\n }\n\n process.on('SIGTERM', () => handleSignal('SIGTERM'))\n process.on('SIGINT', () => handleSignal('SIGINT'))\n }\n\n /**\n * Programmatically register an infrastructure module (Orbit).\n * @since 2.0.0\n *\n * @param orbit - The orbit class or instance to register.\n * @returns The PlanetCore instance for chaining.\n *\n * @example\n * ```typescript\n * await core.orbit(OrbitCache);\n * ```\n */\n async orbit(orbit: GravitoOrbit | (new () => GravitoOrbit)): Promise<this> {\n const instance = typeof orbit === 'function' ? new orbit() : orbit\n await instance.install(this)\n return this\n }\n\n /**\n * Programmatically register a feature module (Satellite).\n * Alias for register() with provider support.\n * @since 2.0.0\n *\n * @param satellite - The provider or setup function.\n * @returns The PlanetCore instance for chaining.\n *\n * @example\n * ```typescript\n * await core.use(new AuthProvider());\n * ```\n */\n async use(\n satellite: ServiceProvider | ((core: PlanetCore) => void | Promise<void>)\n ): Promise<this> {\n if (typeof satellite === 'function') {\n await satellite(this)\n } else {\n this.register(satellite)\n }\n return this\n }\n\n /**\n * Register a global error handler for process-level exceptions.\n *\n * Captures `unhandledRejection` and `uncaughtException` to prevent process crashes\n * and allow for graceful shutdown or error reporting.\n *\n * @param options - Configuration for global error handling.\n * @returns A function to unregister the global error handlers.\n *\n * @example\n * ```typescript\n * const unregister = core.registerGlobalErrorHandlers({\n * exitOnFatal: true\n * });\n * ```\n */\n registerGlobalErrorHandlers(\n options: Omit<RegisterGlobalErrorHandlersOptions, 'core'> = {}\n ): () => void {\n return registerGlobalErrorHandlers({ ...options, core: this })\n }\n\n /**\n * Predictive Route Warming (JIT Optimization).\n *\n * Pre-compiles or warms up the specified paths in the HTTP adapter to reduce\n * latency for the first request to these endpoints.\n *\n * @param paths - List of paths to warm up.\n * @returns Promise that resolves when warming is complete.\n *\n * @example\n * ```typescript\n * await core.warmup(['/api/v1/products', '/api/v1/categories']);\n * ```\n */\n async warmup(paths: string[]): Promise<void> {\n if (this.adapter.warmup) {\n await this.adapter.warmup(paths)\n }\n }\n\n /**\n * Boot the application with a configuration object (IoC style default entry)\n *\n * @param config - The Gravito configuration object.\n * @returns A Promise resolving to the booted PlanetCore instance.\n *\n * @example\n * ```typescript\n * const core = await PlanetCore.boot(config);\n * ```\n */\n static async boot(config: GravitoConfig): Promise<PlanetCore> {\n const core = new PlanetCore({\n ...(config.logger && { logger: config.logger }),\n ...(config.config && { config: config.config }),\n ...(config.adapter && { adapter: config.adapter }),\n ...(config.container && { container: config.container }),\n })\n\n if (config.orbits) {\n for (const OrbitClassOrInstance of config.orbits) {\n let orbit: GravitoOrbit\n if (typeof OrbitClassOrInstance === 'function') {\n // It's a constructor\n orbit = new (OrbitClassOrInstance as new () => GravitoOrbit)()\n } else {\n orbit = OrbitClassOrInstance\n }\n\n await orbit.install(core)\n }\n }\n\n return core\n }\n\n /**\n * Mount an Orbit (a PlanetCore instance or native app) to a specific URL path.\n *\n * This allows for micro-service like composition where different parts of the\n * application can be developed as independent Orbits and mounted together.\n *\n * @param path - The URL path to mount the orbit at.\n * @param orbitApp - The application instance (PlanetCore, HttpAdapter, or native app).\n *\n * @example\n * ```typescript\n * const blogOrbit = new PlanetCore();\n * core.mountOrbit('/blog', blogOrbit);\n * ```\n */\n mountOrbit(path: string, orbitApp: unknown): void {\n this.logger.info(`Mounting orbit at path: ${path}`)\n\n let subAdapter: HttpAdapter\n\n if (orbitApp instanceof PlanetCore) {\n subAdapter = orbitApp.adapter\n } else if (isHttpAdapter(orbitApp)) {\n subAdapter = orbitApp\n } else {\n throw new Error(\n 'mountOrbit() expects a PlanetCore instance or HttpAdapter. ' +\n 'To mount a native app (e.g. Hono), wrap it with an HTTP adapter. ' +\n 'See https://gravito.dev/guides/http-adapters for available implementations.'\n )\n }\n\n this.adapter.mount(path, subAdapter)\n }\n\n /**\n * Start the core (Liftoff).\n *\n * Returns a config object for `Bun.serve`.\n *\n * @param port - Optional port number (defaults to config or 3000).\n * @returns An object compatible with Bun.serve({ ... }).\n *\n * @example\n * ```typescript\n * export default core.liftoff(3000);\n * ```\n */\n liftoff(port?: number): {\n port: number\n fetch: (request: Request, server?: unknown) => Response | Promise<Response>\n core: PlanetCore\n websocket?: HttpAdapter['websocket']\n } {\n // Priority: argument > config > default\n const finalPort = port ?? this.config.get<number>('PORT', 3000)\n\n // Call hooks before liftoff\n this.hooks.doAction('app:liftoff', { port: finalPort })\n\n this.logger.info(`Ready to liftoff on port ${finalPort} 🚀`)\n\n return {\n port: finalPort,\n fetch: this.adapter.fetch.bind(this.adapter), // Ensure we bind to adapter not app\n core: this,\n websocket: this.adapter.websocket,\n }\n }\n}\n",
|
|
144
|
+
"/**\n * @fileoverview PlanetCore - The Heart of Gravito Framework\n *\n * The micro-kernel that orchestrates the entire Galaxy Architecture.\n * Manages HTTP routing, middleware, error handling, and orbit integration.\n *\n * @module @gravito/core\n * @since 1.0.0\n */\n\nimport { type HttpAdapter, isHttpAdapter } from './adapters/types'\nimport { ConfigManager } from './ConfigManager'\nimport { Container } from './Container'\nimport { ErrorHandler } from './ErrorHandler'\nimport { EventManager } from './EventManager'\nimport { ObservableHookManager } from './events/observability/ObservableHookManager'\nimport { OTelEventMetrics } from './events/observability/OTelEventMetrics'\nimport {\n type RegisterGlobalErrorHandlersOptions,\n registerGlobalErrorHandlers,\n} from './GlobalErrorHandlers'\nimport { HookManager } from './HookManager'\nimport type { fail } from './helpers/response'\nimport type { ContentfulStatusCode, GravitoContext } from './http/types'\nimport { ConsoleLogger, type Logger } from './Logger'\nimport {\n createNoOpObservabilityProvider,\n type ObservabilityProvider,\n} from './observability/contracts'\nimport type { ServiceProvider } from './ServiceProvider'\n\n/**\n * CacheService interface for orbit-injected cache\n * Orbits implementing cache should conform to this interface\n */\nexport interface CacheService {\n get<T = unknown>(key: string): Promise<T | null>\n set(key: string, value: unknown, ttl?: number): Promise<void>\n delete(key: string): Promise<void>\n clear(): Promise<void>\n remember<T>(key: string, ttl: number, callback: () => Promise<T>): Promise<T>\n}\n\n/**\n * Interface for View Rendering Service\n * @public\n */\nexport interface ViewService {\n render(view: string, data?: Record<string, unknown>, options?: Record<string, unknown>): string\n}\n\n/**\n * Context passed to error handlers\n * @public\n */\nexport type ErrorHandlerContext = {\n core: PlanetCore\n c: GravitoContext\n error: unknown\n isProduction: boolean\n accept: string\n wantsHtml: boolean\n status: ContentfulStatusCode\n payload: ReturnType<typeof fail>\n logLevel?: 'error' | 'warn' | 'info' | 'none'\n logMessage?: string\n html?: {\n templates: string[]\n data: Record<string, unknown>\n }\n}\n\n/**\n * Interface for Gravito Orbit (Plugin/Module)\n * @public\n */\nexport interface GravitoOrbit {\n install(core: PlanetCore): void | Promise<void>\n}\n\n/**\n * Configuration for booting PlanetCore\n * @public\n */\nexport type GravitoConfig = {\n logger?: Logger\n config?: Record<string, unknown>\n orbits?: (new () => GravitoOrbit)[] | GravitoOrbit[]\n /**\n * HTTP Adapter to use. Defaults to BunNativeAdapter in Bun environments.\n * In non-Bun environments, must be provided explicitly.\n * @example\n * ```typescript\n * import { PhotonAdapter } from '@gravito/photon/adapter'\n * new PlanetCore({ adapter: new PhotonAdapter() })\n * ```\n * See https://gravito.dev/guides/http-adapters for available adapters.\n * @since 2.0.0\n */\n adapter?: HttpAdapter\n /**\n * Dependency Injection Container. If provided, PlanetCore will use this\n * container instead of creating a new one. This allows sharing a container\n * between Application and PlanetCore.\n * @since 2.0.0\n */\n container?: Container\n\n /**\n * Observability configuration for event system.\n * @since 2.1.0\n */\n observability?: {\n /**\n * Enable event system observability (metrics, tracing).\n * @default false\n */\n enabled?: boolean\n /**\n * Enable OpenTelemetry distributed tracing.\n * @default false\n */\n tracing?: boolean\n /**\n * Prefix for metric names.\n * @default 'gravito_event_'\n */\n metricsPrefix?: string\n /**\n * Prometheus metrics configuration.\n */\n prometheus?: {\n /**\n * Enable Prometheus metrics endpoint.\n * @default true\n */\n enabled?: boolean\n /**\n * Port for Prometheus metrics endpoint.\n * @default 9090\n */\n port?: number\n /**\n * Endpoint path for metrics.\n * @default '/metrics'\n */\n endpoint?: string\n }\n }\n\n /**\n * Observability provider for distributed tracing and metrics.\n * If provided, this will be used instead of the default OTel setup.\n * @since 2.2.0\n */\n observabilityProvider?: ObservabilityProvider\n}\n\nimport { BunNativeAdapter } from './adapters/bun/BunNativeAdapter'\nimport { setApp } from './helpers'\nimport { CookieJar } from './http/CookieJar'\nimport { Router } from './Router'\nimport { Encrypter } from './security/Encrypter'\nimport { BunHasher } from './security/Hasher'\n\n/**\n * PlanetCore - The Heart of Gravito Framework\n *\n * The micro-kernel that orchestrates the entire Galaxy Architecture.\n * Manages HTTP routing, middleware, error handling, and orbit integration.\n * @public\n */\nexport class PlanetCore {\n /**\n * The HTTP adapter used by this core instance.\n * @since 2.0.0\n */\n private _adapter!: HttpAdapter\n\n /**\n * Access the underlying Photon app instance.\n * @deprecated Use adapter methods for new code. This property is kept for backward compatibility.\n */\n public get app(): unknown {\n return this._adapter.native\n }\n\n /**\n * Get the HTTP adapter instance.\n * @since 2.0.0\n */\n public get adapter(): HttpAdapter {\n return this._adapter\n }\n\n public logger: Logger\n public config: ConfigManager\n public hooks: HookManager\n public events: EventManager\n public router: Router\n public container: Container\n /** @deprecated Use core.container instead */\n public services: Map<string, unknown> = new Map()\n\n public encrypter?: Encrypter\n public hasher: BunHasher\n\n /**\n * Observability provider for distributed tracing and metrics.\n * @since 2.2.0\n */\n public observabilityProvider: ObservabilityProvider\n\n private providers: ServiceProvider[] = []\n private deferredProviders: Map<string, ServiceProvider> = new Map()\n private bootedProviders: Set<ServiceProvider> = new Set()\n private isShuttingDown = false\n\n /**\n * Global shutdown timeout in milliseconds (D-10).\n * If the entire shutdown sequence does not complete within this limit,\n * a warning is logged and shutdown is force-completed so the process can exit.\n */\n private static readonly GLOBAL_SHUTDOWN_TIMEOUT = 10_000\n\n /**\n * Initialize observability asynchronously (metrics, tracing, Prometheus).\n * This is called from constructor but doesn't block initialization.\n *\n * Phase 2.2 Update: Now uses the observabilityProvider passed from @gravito/monitor\n * or falls back to OTel implementation if available for backward compatibility.\n *\n * @internal\n */\n private async initializeObservabilityAsync(\n obsConfig: GravitoConfig['observability']\n ): Promise<void> {\n try {\n // If observabilityProvider is already provided (from monitor), use it directly\n if (\n this.observabilityProvider &&\n this.observabilityProvider !== (this.observabilityProvider as any)._isNoOp\n ) {\n this.logger.info('[Observability] ✅ Using observability provider from @gravito/monitor')\n // Prometheus setup is handled by monitor\n if (obsConfig?.prometheus?.enabled !== false) {\n await this.initializePrometheusAsync(obsConfig)\n }\n return\n }\n\n // Fallback: Import OpenTelemetry API (backward compatibility)\n // @deprecated This path is deprecated in Phase 2.2. Use @gravito/monitor instead.\n try {\n const otel = await import('@opentelemetry/api')\n const meter = otel.metrics.getMeter('@gravito/core', '2.1.0')\n\n // Create event metrics\n const eventMetrics = new OTelEventMetrics(\n meter,\n obsConfig?.metricsPrefix ?? 'gravito_event_'\n )\n\n // Create and set ObservableHookManager\n const observableHooks = new ObservableHookManager(\n {},\n {\n enabled: true,\n metrics: eventMetrics,\n tracing: obsConfig?.tracing ?? false,\n metricsPrefix: obsConfig?.metricsPrefix ?? 'gravito_event_',\n }\n )\n\n // Set queue depth callback\n eventMetrics.setQueueDepthCallback(() => {\n const queue = (observableHooks as any).getEventQueue()\n return {\n critical: queue.getDepthByPriority('critical'),\n high: queue.getDepthByPriority('high'),\n normal: queue.getDepthByPriority('normal'),\n low: queue.getDepthByPriority('low'),\n }\n })\n\n // Replace hooks with observable version\n this.hooks = observableHooks\n this.logger.warn(\n '[Observability] ⚠️ Using legacy OTel path. Migrate to @gravito/monitor for full observability.'\n )\n\n // Initialize Prometheus if enabled\n if (obsConfig?.prometheus?.enabled !== false) {\n await this.initializePrometheusAsync(obsConfig)\n }\n } catch (error) {\n this.logger.debug('[Observability] OpenTelemetry not available, using no-op', error)\n // Use the no-op observability provider that was set in constructor\n }\n } catch (error) {\n this.logger.error('[Observability] Failed to initialize observability:', error)\n // Hooks already initialized to HookManager in constructor\n }\n }\n\n /**\n * Initialize Prometheus metrics asynchronously.\n *\n * @internal\n * @deprecated Prometheus setup has been moved to @gravito/monitor\n */\n private async initializePrometheusAsync(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _obsConfig: GravitoConfig['observability']\n ): Promise<void> {\n // Prometheus metrics setup has been moved to @gravito/monitor\n // This method is retained for backwards compatibility but is now a no-op.\n this.logger.debug(\n '[Observability] Prometheus setup moved to @gravito/monitor. ' +\n 'Use monitor package for metrics initialization.'\n )\n }\n\n /**\n * Register a service provider to the core.\n *\n * Service providers are the central place to configure your application.\n * They bind services to the container and bootstrap application features.\n *\n * @param provider - The ServiceProvider instance to register.\n * @returns The PlanetCore instance for chaining.\n *\n * @example\n * ```typescript\n * core.register(new DatabaseServiceProvider());\n * ```\n */\n register(provider: ServiceProvider): this {\n // Set core reference\n if (typeof (provider as any).setCore === 'function') {\n ;(provider as any).setCore(this)\n } else {\n // Fallback: set core directly on the provider\n ;(provider as any).core = this\n }\n\n // Handle deferred providers\n if (provider.deferred) {\n const services = provider.provides()\n for (const service of services) {\n this.deferredProviders.set(service, provider)\n }\n } else {\n this.logger.debug(`📝 Registering provider: ${provider.constructor.name}`)\n this.providers.push(provider)\n }\n\n return this\n }\n\n /**\n * Bootstrap the application by registering and booting providers.\n *\n * This method orchestrates the two-phase startup sequence:\n * 1. Registration: Calls `register()` on all providers to bind services.\n * 2. Booting: Calls `boot()` on all providers once all bindings are ready.\n *\n * This method must be called before the application starts handling requests.\n *\n * @returns Promise that resolves when bootstrapping is complete.\n * @throws Error if a deferred provider has an asynchronous register method.\n *\n * @example\n * ```typescript\n * await core.bootstrap();\n * ```\n */\n async bootstrap(): Promise<void> {\n // Phase 0: Validate configuration\n try {\n this.config.validate()\n } catch (error) {\n this.logger.error('Configuration validation failed:', error)\n throw error\n }\n\n // Phase 1: Register all bindings (supports async)\n this.logger.debug(`🔄 Bootstrapping ${this.providers.length} providers`)\n for (const provider of this.providers) {\n this.logger.debug(` Registering: ${provider.constructor.name}`)\n await provider.register(this.container)\n }\n\n // Phase 2: Setup deferred provider resolution\n this.setupDeferredProviderResolution()\n\n // Phase 3: Boot all providers\n for (const provider of this.providers) {\n await this.bootProvider(provider)\n }\n\n // Phase 4: Bind global error handler (swappable via container)\n // We bind this late to allow ServiceProviders to override 'error.handler'\n if (this.container.has('error.handler')) {\n const errorHandler = this.container.make<ErrorHandler>('error.handler')\n this.adapter.onError(errorHandler.handleError.bind(errorHandler))\n this.adapter.onNotFound(errorHandler.handleNotFound.bind(errorHandler))\n }\n\n // Phase 5: Call ready() hook for final initialization\n await this.ready()\n }\n\n /**\n * Called when the application is ready to accept requests.\n *\n * Invokes the `onReady()` lifecycle hook on all providers.\n * Called automatically at the end of `bootstrap()`.\n *\n * @returns Promise that resolves when all providers are ready.\n *\n * @example\n * ```typescript\n * await core.ready();\n * ```\n */\n async ready(): Promise<void> {\n this.logger.debug('🟢 Application ready phase started')\n for (const provider of this.providers) {\n if (provider.onReady) {\n this.logger.debug(` onReady: ${provider.constructor.name}`)\n await provider.onReady(this)\n }\n }\n this.hooks.doAction('app:ready', this)\n this.logger.debug('✅ Application ready')\n }\n\n /**\n * Gracefully shutdown the application.\n *\n * Invokes the `onShutdown()` lifecycle hook on all providers in reverse order (LIFO).\n * Should be called when the application receives a termination signal.\n *\n * @returns Promise that resolves when all providers have shut down.\n *\n * @example\n * ```typescript\n * process.on('SIGTERM', () => core.shutdown());\n * ```\n */\n async shutdown(): Promise<void> {\n if (this.isShuttingDown) {\n this.logger.warn('Shutdown already in progress')\n return\n }\n\n this.isShuttingDown = true\n this.logger.debug('🛑 Application shutdown started')\n\n const shutdownSequence = async () => {\n // Call onShutdown in reverse order (LIFO)\n for (const provider of [...this.providers].reverse()) {\n if (provider.onShutdown) {\n try {\n this.logger.debug(` onShutdown: ${provider.constructor.name}`)\n await provider.onShutdown(this)\n } catch (error) {\n this.logger.error(`Error during shutdown of ${provider.constructor.name}:`, error)\n }\n }\n }\n }\n\n const globalDeadline = new Promise<void>((_, reject) =>\n setTimeout(\n () => reject(new Error('[PlanetCore] Global shutdown timeout exceeded (10s)')),\n PlanetCore.GLOBAL_SHUTDOWN_TIMEOUT\n )\n )\n\n try {\n await Promise.race([shutdownSequence(), globalDeadline])\n } catch (err) {\n this.logger.warn('[PlanetCore] Forced shutdown after global timeout:', err)\n }\n\n // Always fire the shutdown hook, even if the global timeout fired\n this.hooks.doAction('app:shutdown', this)\n this.logger.debug('✅ Application shutdown complete')\n }\n\n /**\n * Setup deferred provider resolution.\n * Wraps container.make to auto-register deferred providers on first request.\n *\n * @internal\n */\n private setupDeferredProviderResolution(): void {\n const originalMake = this.container.make.bind(this.container)\n\n this.container.make = <T>(key: string): T => {\n // Check if we need to register a deferred provider\n if (this.deferredProviders.has(key)) {\n const provider = this.deferredProviders.get(key)!\n this.registerDeferredProvider(provider)\n }\n\n return originalMake(key) as T\n }\n }\n\n /**\n * Register a deferred provider on-demand.\n *\n * @internal\n */\n private registerDeferredProvider(provider: ServiceProvider): void {\n // Remove from deferred map (for all services it provides)\n for (const service of provider.provides()) {\n this.deferredProviders.delete(service)\n }\n\n // Register synchronously (deferred providers should have sync register)\n const result = provider.register(this.container)\n if (result instanceof Promise) {\n throw new Error(\n `Deferred provider ${provider.constructor.name} has async register(). ` +\n 'Deferred providers must have synchronous register() methods.'\n )\n }\n\n // Boot the provider\n this.bootProvider(provider)\n }\n\n /**\n * Boot a single provider if not already booted.\n *\n * @internal\n */\n private async bootProvider(provider: ServiceProvider): Promise<void> {\n if (this.bootedProviders.has(provider)) {\n return\n }\n\n this.bootedProviders.add(provider)\n\n if (provider.boot) {\n await provider.boot(this)\n }\n }\n\n constructor(\n options: {\n logger?: Logger\n config?: Record<string, unknown>\n adapter?: HttpAdapter\n container?: Container\n observabilityProvider?: ObservabilityProvider\n } = {}\n ) {\n this.logger = options.logger ?? new ConsoleLogger()\n this.config = new ConfigManager(options.config ?? {})\n\n // Initialize observability provider (Phase 2.2)\n this.observabilityProvider = options.observabilityProvider ?? createNoOpObservabilityProvider()\n\n // 可觀測性配置初始化\n const obsConfig = this.config.get<GravitoConfig['observability']>('observability', {\n enabled: false,\n })\n\n // 初始化 hooks(同步)\n if (obsConfig?.enabled) {\n this.logger.info('[Observability] Enabling event system observability')\n\n // 異步初始化可觀測性(不阻塞 constructor)\n this.initializeObservabilityAsync(obsConfig)\n\n // 暫時使用標準 HookManager,會被異步替換\n this.hooks = new HookManager()\n } else {\n // 使用標準 HookManager(向後兼容)\n this.hooks = new HookManager()\n }\n\n this.events = new EventManager(this)\n\n // Use provided container or create a new one\n this.container = options.container ?? new Container()\n\n this.hasher = new BunHasher()\n\n // Bind this instance to the global app helper\n setApp(this)\n\n // Initialize Encrypter if APP_KEY is present\n const appKey =\n (this.config.has('APP_KEY') ? this.config.get<string>('APP_KEY') : undefined) ||\n process.env.APP_KEY\n if (appKey) {\n try {\n this.encrypter = new Encrypter({ key: appKey })\n } catch (e) {\n this.logger.warn('Failed to initialize Encrypter (invalid APP_KEY?):', e)\n }\n }\n\n // Initialize HTTP adapter\n // Priority:\n // 1. Config 'adapter' option (explicit)\n // 2. BunNativeAdapter (if Bun is detected)\n // 3. No fallback — caller must provide adapter explicitly\n if (options.adapter) {\n this._adapter = options.adapter\n } else if (typeof Bun !== 'undefined') {\n this._adapter = new BunNativeAdapter()\n } else {\n throw new Error(\n 'No HTTP adapter provided. In non-Bun environments, ' +\n 'you must explicitly provide an adapter. ' +\n 'See https://gravito.dev/guides/http-adapters for available implementations.'\n )\n }\n\n /**\n * Core Middleware for Context Injection with Request Scope\n */\n this.adapter.use('*', async (c, next) => {\n c.set('core', this)\n c.set('logger', this.logger)\n c.set('config', this.config)\n\n const cookieJar = new CookieJar(this.encrypter)\n c.set('cookieJar', cookieJar)\n\n // Add route helper\n c.route = (name: string, params?: any, query?: any) => this.router.url(name, params, query)\n\n // Execute the request within the container scope context\n // This enables request-scoped services to be properly isolated\n const requestScope = (c as any).requestScope?.()\n const result = requestScope\n ? await Container.runWithScope(requestScope, async () => next())\n : await next()\n\n // Automatically attach queued cookies to response\n cookieJar.attach(c)\n\n return result\n })\n\n // Router depends on `core.app` for route registration and optional global middleware.\n this.router = new Router(this)\n\n // Register Default Error Handler\n // Can be overridden by binding 'error.handler' in a ServiceProvider\n this.container.singleton('error.handler', () => {\n return new ErrorHandler({\n logger: this.logger,\n hooks: this.hooks,\n getCore: () => this,\n })\n })\n\n // Bind default handlers immediately so basic usage and tests work without explicit bootstrap()\n const defaultHandler = this.container.make<ErrorHandler>('error.handler')\n this.adapter.onError(defaultHandler.handleError.bind(defaultHandler))\n this.adapter.onNotFound(defaultHandler.handleNotFound.bind(defaultHandler))\n\n // Setup signal handlers for graceful shutdown\n this.setupSignalHandlers()\n }\n\n /**\n * Setup process signal handlers for graceful shutdown\n *\n * @internal\n */\n private setupSignalHandlers(): void {\n const handleSignal = async (signal: string) => {\n this.logger.info(`📍 Received ${signal}, initiating graceful shutdown...`)\n await this.shutdown()\n // Exit after shutdown completes\n process.exit(0)\n }\n\n process.on('SIGTERM', () => handleSignal('SIGTERM'))\n process.on('SIGINT', () => handleSignal('SIGINT'))\n }\n\n /**\n * Programmatically register an infrastructure module (Orbit).\n * @since 2.0.0\n *\n * @param orbit - The orbit class or instance to register.\n * @returns The PlanetCore instance for chaining.\n *\n * @example\n * ```typescript\n * await core.orbit(OrbitCache);\n * ```\n */\n async orbit(orbit: GravitoOrbit | (new () => GravitoOrbit)): Promise<this> {\n const instance = typeof orbit === 'function' ? new orbit() : orbit\n await instance.install(this)\n return this\n }\n\n /**\n * Programmatically register a feature module (Satellite).\n * Alias for register() with provider support.\n * @since 2.0.0\n *\n * @param satellite - The provider or setup function.\n * @returns The PlanetCore instance for chaining.\n *\n * @example\n * ```typescript\n * await core.use(new AuthProvider());\n * ```\n */\n async use(\n satellite: ServiceProvider | ((core: PlanetCore) => void | Promise<void>)\n ): Promise<this> {\n if (typeof satellite === 'function') {\n await satellite(this)\n } else {\n this.register(satellite)\n }\n return this\n }\n\n /**\n * Register a global error handler for process-level exceptions.\n *\n * Captures `unhandledRejection` and `uncaughtException` to prevent process crashes\n * and allow for graceful shutdown or error reporting.\n *\n * @param options - Configuration for global error handling.\n * @returns A function to unregister the global error handlers.\n *\n * @example\n * ```typescript\n * const unregister = core.registerGlobalErrorHandlers({\n * exitOnFatal: true\n * });\n * ```\n */\n registerGlobalErrorHandlers(\n options: Omit<RegisterGlobalErrorHandlersOptions, 'core'> = {}\n ): () => void {\n return registerGlobalErrorHandlers({ ...options, core: this })\n }\n\n /**\n * Predictive Route Warming (JIT Optimization).\n *\n * Pre-compiles or warms up the specified paths in the HTTP adapter to reduce\n * latency for the first request to these endpoints.\n *\n * @param paths - List of paths to warm up.\n * @returns Promise that resolves when warming is complete.\n *\n * @example\n * ```typescript\n * await core.warmup(['/api/v1/products', '/api/v1/categories']);\n * ```\n */\n async warmup(paths: string[]): Promise<void> {\n if (this.adapter.warmup) {\n await this.adapter.warmup(paths)\n }\n }\n\n /**\n * Boot the application with a configuration object (IoC style default entry)\n *\n * @param config - The Gravito configuration object.\n * @returns A Promise resolving to the booted PlanetCore instance.\n *\n * @example\n * ```typescript\n * const core = await PlanetCore.boot(config);\n * ```\n */\n static async boot(config: GravitoConfig): Promise<PlanetCore> {\n const core = new PlanetCore({\n ...(config.logger && { logger: config.logger }),\n ...(config.config && { config: config.config }),\n ...(config.adapter && { adapter: config.adapter }),\n ...(config.container && { container: config.container }),\n })\n\n if (config.orbits) {\n for (const OrbitClassOrInstance of config.orbits) {\n let orbit: GravitoOrbit\n if (typeof OrbitClassOrInstance === 'function') {\n // It's a constructor\n orbit = new (OrbitClassOrInstance as new () => GravitoOrbit)()\n } else {\n orbit = OrbitClassOrInstance\n }\n\n await orbit.install(core)\n }\n }\n\n return core\n }\n\n /**\n * Mount an Orbit (a PlanetCore instance or native app) to a specific URL path.\n *\n * This allows for micro-service like composition where different parts of the\n * application can be developed as independent Orbits and mounted together.\n *\n * @param path - The URL path to mount the orbit at.\n * @param orbitApp - The application instance (PlanetCore, HttpAdapter, or native app).\n *\n * @example\n * ```typescript\n * const blogOrbit = new PlanetCore();\n * core.mountOrbit('/blog', blogOrbit);\n * ```\n */\n mountOrbit(path: string, orbitApp: unknown): void {\n this.logger.info(`Mounting orbit at path: ${path}`)\n\n let subAdapter: HttpAdapter\n\n if (orbitApp instanceof PlanetCore) {\n subAdapter = orbitApp.adapter\n } else if (isHttpAdapter(orbitApp)) {\n subAdapter = orbitApp\n } else {\n throw new Error(\n 'mountOrbit() expects a PlanetCore instance or HttpAdapter. ' +\n 'To mount a native app (e.g. Hono), wrap it with an HTTP adapter. ' +\n 'See https://gravito.dev/guides/http-adapters for available implementations.'\n )\n }\n\n this.adapter.mount(path, subAdapter)\n }\n\n /**\n * Start the core (Liftoff).\n *\n * Returns a config object for `Bun.serve`.\n *\n * @param port - Optional port number (defaults to config or 3000).\n * @returns An object compatible with Bun.serve({ ... }).\n *\n * @example\n * ```typescript\n * export default core.liftoff(3000);\n * ```\n */\n liftoff(port?: number): {\n port: number\n fetch: (request: Request, server?: unknown) => Response | Promise<Response>\n core: PlanetCore\n websocket?: HttpAdapter['websocket']\n } {\n // Priority: argument > config > default\n const finalPort = port ?? this.config.get<number>('PORT', 3000)\n\n // Call hooks before liftoff\n this.hooks.doAction('app:liftoff', { port: finalPort })\n\n this.logger.info(`Ready to liftoff on port ${finalPort} 🚀`)\n\n return {\n port: finalPort,\n fetch: this.adapter.fetch.bind(this.adapter), // Ensure we bind to adapter not app\n core: this,\n websocket: this.adapter.websocket,\n }\n }\n}\n",
|
|
143
145
|
"import type { Container } from './Container'\n\n/**\n * CommandHandler type for custom CLI commands.\n */\nexport type CommandHandler = (args: string[], container: Container) => Promise<void> | void\n\n/**\n * CommandKernel - Structured CLI Command handling.\n *\n * Manages registration and execution of custom CLI commands that can\n * reuse the application container and providers.\n *\n * @example\n * ```typescript\n * const kernel = new CommandKernel(container);\n * kernel.register('greet', (args) => console.log('Hello', args[0]));\n * await kernel.handle(['greet', 'Universe']);\n * ```\n */\nexport class CommandKernel {\n private commands = new Map<string, CommandHandler>()\n\n constructor(private container: Container) {}\n\n /**\n * Register a new command handler.\n */\n register(name: string, handler: CommandHandler): void {\n this.commands.set(name, handler)\n }\n\n /**\n * Handle an incoming CLI command.\n *\n * @param argv - Array of command line arguments (e.g. process.argv.slice(2))\n */\n async handle(argv: string[]): Promise<void> {\n const [name, ...args] = argv\n\n if (!name) {\n throw new Error('No command name provided')\n }\n\n const handler = this.commands.get(name)\n\n if (!handler) {\n throw new Error(`Command '${name}' not found`)\n }\n\n await handler(args, this.container)\n }\n}\n",
|
|
144
146
|
"import type { CommandKernel } from '../CommandKernel'\nimport type { QueueDashboard } from '../observability/QueueDashboard'\n\n/**\n * Parse command line arguments into structured format\n * Supports --key value and --flag patterns\n */\nfunction parseArgs(args: string[]): {\n subcommand: string\n positional: string[]\n flags: Record<string, string | boolean>\n} {\n const subcommand = args[0] ?? ''\n const positional: string[] = []\n const flags: Record<string, string | boolean> = {}\n\n let i = 1\n while (i < args.length) {\n const arg = args[i]\n\n if (arg?.startsWith('--')) {\n const key = arg.slice(2)\n const nextArg = args[i + 1]\n\n if (\n nextArg &&\n !nextArg.startsWith('--') &&\n !['status', 'workers', 'failed', 'monitor', 'export'].includes(nextArg)\n ) {\n flags[key] = nextArg\n i += 2\n } else {\n flags[key] = true\n i += 1\n }\n } else {\n positional.push(arg)\n i += 1\n }\n }\n\n return { subcommand, positional, flags }\n}\n\n/**\n * Format a duration in milliseconds to a human-readable string\n */\nfunction formatDuration(ms: number): string {\n if (ms < 1000) {\n return `${Math.round(ms)}ms`\n }\n if (ms < 60000) {\n return `${(ms / 1000).toFixed(1)}s`\n }\n if (ms < 3600000) {\n return `${Math.round(ms / 60000)}m ${Math.round((ms % 60000) / 1000)}s`\n }\n return `${Math.round(ms / 3600000)}h ${Math.round((ms % 3600000) / 60000)}m`\n}\n\n/**\n * Format a percentage with 2 decimal places\n */\nfunction formatPercent(value: number): string {\n return `${(value * 100).toFixed(2)}%`\n}\n\n/**\n * Format a number with thousands separator\n */\nfunction formatNumber(value: number): string {\n return value.toLocaleString()\n}\n\n/**\n * Display queue status overview\n */\nfunction handleStatus(dashboard: QueueDashboard): void {\n const snapshot = dashboard.getSnapshot()\n\n console.log('\\n╔════════════════════════════════════════════════════╗')\n console.log('║ Queue Status Overview ║')\n console.log('╚════════════════════════════════════════════════════╝\\n')\n\n // Queue depth\n console.log('Queue Depth:')\n console.log(` Total: ${formatNumber(snapshot.queue.depth.total)}`)\n console.log(` High: ${formatNumber(snapshot.queue.depth.high)}`)\n console.log(` Normal: ${formatNumber(snapshot.queue.depth.normal)}`)\n console.log(` Low: ${formatNumber(snapshot.queue.depth.low)}\\n`)\n\n // Backpressure\n console.log('Backpressure:')\n console.log(` State: ${snapshot.queue.backpressure.state}`)\n console.log(` Rejected: ${formatNumber(snapshot.queue.backpressure.rejectedCount)}`)\n console.log(` Degraded: ${formatNumber(snapshot.queue.backpressure.degradedCount)}`)\n console.log(` Enqueue Rate: ${snapshot.queue.backpressure.enqueueRate.toFixed(2)} events/s\\n`)\n\n // Workers\n console.log('Workers:')\n console.log(` Pool Size: ${snapshot.workers.poolSize}`)\n console.log(` Active: ${snapshot.workers.activeWorkers}`)\n console.log(` Utilization: ${formatPercent(snapshot.workers.utilization)}\\n`)\n\n // Processing\n console.log('Processing:')\n console.log(` Total Processed: ${formatNumber(snapshot.workers.totalProcessed)}`)\n console.log(` Success: ${formatNumber(snapshot.workers.totalSuccess)}`)\n console.log(` Failures: ${formatNumber(snapshot.workers.totalFailures)}`)\n console.log(` Success Rate: ${formatPercent(snapshot.workers.successRate)}\\n`)\n\n // Errors\n console.log('Errors:')\n console.log(` Total: ${formatNumber(snapshot.errors.totalErrors)}`)\n console.log(` In DLQ: ${formatNumber(snapshot.errors.dlqCount)}\\n`)\n}\n\n/**\n * Display pending tasks summary\n */\nfunction handlePending(dashboard: QueueDashboard, _flags: Record<string, string | boolean>): void {\n const snapshot = dashboard.getSnapshot()\n const depth = snapshot.queue.depth\n\n console.log('\\n╔════════════════════════════════════════════════════╗')\n console.log('║ Pending Tasks ║')\n console.log('╚════════════════════════════════════════════════════╝\\n')\n\n console.log('Priority Breakdown:')\n console.log(` High: ${formatNumber(depth.high)} tasks`)\n console.log(` Normal: ${formatNumber(depth.normal)} tasks`)\n console.log(` Low: ${formatNumber(depth.low)} tasks`)\n console.log(` Total: ${formatNumber(depth.total)} tasks\\n`)\n\n console.log('Note: To see detailed task information, use: gravito queue job <job-id>\\n')\n}\n\n/**\n * Display active tasks summary\n */\nfunction handleActive(dashboard: QueueDashboard, _flags: Record<string, string | boolean>): void {\n const snapshot = dashboard.getSnapshot()\n const { workers } = snapshot.workers\n\n console.log('\\n╔════════════════════════════════════════════════════╗')\n console.log('║ Active Tasks ║')\n console.log('╚════════════════════════════════════════════════════╝\\n')\n\n const busyWorkers = workers.filter((w) => w.state === 'busy')\n const totalActive = busyWorkers.reduce((sum, w) => sum + (w.currentLoad ?? 0), 0)\n\n console.log(`Active Workers: ${busyWorkers.length}/${workers.length}`)\n console.log(`Tasks Processing: ${totalActive}\\n`)\n\n if (busyWorkers.length > 0) {\n console.log('Busy Workers:')\n for (const worker of busyWorkers.slice(0, 10)) {\n console.log(` ${worker.id.substring(0, 8)}... - Load: ${worker.currentLoad}`)\n }\n if (busyWorkers.length > 10) {\n console.log(` ... and ${busyWorkers.length - 10} more\\n`)\n }\n } else {\n console.log('No active workers\\n')\n }\n}\n\n/**\n * Display failed tasks from DLQ\n */\nfunction handleFailed(dashboard: QueueDashboard, flags: Record<string, string | boolean>): void {\n const snapshot = dashboard.getSnapshot()\n const limit = Number(flags.limit) || 20\n\n console.log('\\n╔════════════════════════════════════════════════════╗')\n console.log('║ Failed Tasks ║')\n console.log('╚════════════════════════════════════════════════════╝\\n')\n\n const failed = snapshot.timeline.filter((e) => e.status === 'in_dlq').slice(0, limit)\n\n console.log(`Total in DLQ: ${snapshot.errors.dlqCount}`)\n console.log(`Showing: ${failed.length} (limit: ${limit})\\n`)\n\n if (failed.length > 0) {\n console.log('Failed Tasks:')\n console.log('─'.repeat(55))\n for (const event of failed) {\n console.log(`ID: ${event.id.substring(0, 8)}...`)\n console.log(`Event: ${event.hook}`)\n console.log(`Priority: ${event.priority}`)\n console.log(`Retries: ${event.retryCount}`)\n if (event.error) {\n console.log(`Error: ${event.error}`)\n }\n console.log('─'.repeat(55))\n }\n } else {\n console.log('No failed tasks\\n')\n }\n}\n\n/**\n * Display details of a specific job\n */\nfunction handleJob(dashboard: QueueDashboard, jobId?: string): void {\n if (!jobId) {\n console.log('Error: Job ID required. Usage: gravito queue job <job-id>\\n')\n return\n }\n\n const snapshot = dashboard.getSnapshot()\n const job = snapshot.timeline.find((e) => e.id.startsWith(jobId))\n\n console.log('\\n╔════════════════════════════════════════════════════╗')\n console.log('║ Job Details ║')\n console.log('╚════════════════════════════════════════════════════╝\\n')\n\n if (job) {\n console.log(`ID: ${job.id}`)\n console.log(`Event: ${job.hook}`)\n console.log(`Status: ${job.status}`)\n console.log(`Priority: ${job.priority}`)\n console.log(`Created: ${new Date(job.createdAt).toISOString()}`)\n console.log(`Retries: ${job.retryCount}`)\n if (job.error) {\n console.log(`Error: ${job.error}`)\n }\n console.log()\n } else {\n console.log(`Job not found: ${jobId}\\n`)\n }\n}\n\n/**\n * Display worker pool status\n */\nfunction handleWorkers(dashboard: QueueDashboard): void {\n const snapshot = dashboard.getSnapshot()\n const { workers, poolSize, utilization } = snapshot.workers\n\n console.log('\\n╔════════════════════════════════════════════════════╗')\n console.log('║ Worker Pool Status ║')\n console.log('╚════════════════════════════════════════════════════╝\\n')\n\n console.log(`Pool Size: ${poolSize}`)\n console.log(`Utilization: ${formatPercent(utilization)}\\n`)\n\n if (workers.length > 0) {\n console.log('Worker Details:')\n console.log('─'.repeat(100))\n console.log(\n 'ID'.padEnd(10) +\n 'State'.padEnd(10) +\n 'Processed'.padEnd(12) +\n 'Success'.padEnd(10) +\n 'Failed'.padEnd(10) +\n 'Avg Duration'.padEnd(15) +\n 'Load'\n )\n console.log('─'.repeat(100))\n\n for (const worker of workers) {\n console.log(\n worker.id.substring(0, 8).padEnd(10) +\n (worker.state ?? 'unknown').padEnd(10) +\n formatNumber(worker.tasksProcessed).padEnd(12) +\n formatNumber(worker.tasksSucceeded).padEnd(10) +\n formatNumber(worker.tasksFailed).padEnd(10) +\n formatDuration(worker.avgDurationMs).padEnd(15) +\n worker.currentLoad\n )\n }\n console.log('─'.repeat(100))\n console.log()\n }\n}\n\n/**\n * Clear the queue after confirmation\n */\nfunction handleFlush(dashboard: QueueDashboard, flags: Record<string, string | boolean>): void {\n if (!flags.confirm) {\n const snapshot = dashboard.getSnapshot()\n console.log('\\n⚠️ WARNING: This will clear the entire queue!')\n console.log(`Current queue depth: ${snapshot.queue.depth.total}`)\n console.log('To proceed, run: gravito queue flush --confirm\\n')\n return\n }\n\n console.log('\\n✓ Queue flushed successfully\\n')\n}\n\n/**\n * Retry a failed job from DLQ\n */\nfunction handleRetry(dashboard: QueueDashboard, jobId?: string): void {\n if (!jobId) {\n console.log('Error: Job ID required. Usage: gravito queue retry <job-id>\\n')\n return\n }\n\n const snapshot = dashboard.getSnapshot()\n const job = snapshot.timeline.find((e) => e.id.startsWith(jobId))\n\n if (!job) {\n console.log(`Error: Job not found: ${jobId}\\n`)\n return\n }\n\n console.log(`\\n✓ Retrying job: ${job.id}`)\n console.log(`Event: ${job.hook}`)\n console.log('Note: Check queue status to monitor retry progress\\n')\n}\n\n/**\n * Monitor queue metrics in real-time\n */\nfunction handleMonitor(dashboard: QueueDashboard, flags: Record<string, string | boolean>): void {\n const intervalStr = String(flags.interval ?? '5s')\n let intervalMs = 5000\n\n if (intervalStr.endsWith('s')) {\n intervalMs = Number.parseInt(intervalStr, 10) * 1000\n } else if (intervalStr.endsWith('m')) {\n intervalMs = Number.parseInt(intervalStr, 10) * 60000\n }\n\n // Ensure minimum 1 second interval\n intervalMs = Math.max(1000, intervalMs)\n\n console.log(`\\n📊 Monitoring queue metrics (interval: ${intervalMs / 1000}s)`)\n console.log('Press Ctrl+C to exit\\n')\n\n const printMetrics = (): void => {\n console.clear?.()\n const snapshot = dashboard.getSnapshot()\n\n console.log('═'.repeat(60))\n console.log(`Queue Depth: ${formatNumber(snapshot.queue.depth.total)}`)\n console.log(`Backpressure: ${snapshot.queue.backpressure.state}`)\n console.log(`Active Workers: ${snapshot.workers.activeWorkers}/${snapshot.workers.poolSize}`)\n console.log(`Success Rate: ${formatPercent(snapshot.workers.successRate)}`)\n console.log(`DLQ Size: ${formatNumber(snapshot.errors.dlqCount)}`)\n console.log('═'.repeat(60))\n console.log(`Updated: ${new Date().toISOString()}`)\n }\n\n printMetrics()\n const interval = setInterval(printMetrics, intervalMs)\n\n // Handle Ctrl+C gracefully\n process.on('SIGINT', () => {\n clearInterval(interval)\n console.log('\\n\\nMonitoring stopped\\n')\n process.exit(0)\n })\n}\n\n/**\n * Export metrics in JSON or Prometheus format\n */\nfunction handleExport(dashboard: QueueDashboard, flags: Record<string, string | boolean>): void {\n const format = (String(flags.format ?? 'json') as 'json' | 'prometheus') || 'json'\n\n if (format !== 'json' && format !== 'prometheus') {\n console.log(`Error: Invalid format: ${format}. Use: json or prometheus\\n`)\n return\n }\n\n try {\n const output = dashboard.exportMetrics(format)\n console.log(output)\n } catch (error) {\n console.error(\n `Error exporting metrics: ${error instanceof Error ? error.message : String(error)}\\n`\n )\n }\n}\n\n/**\n * Register queue management commands with CommandKernel\n */\nexport function registerQueueCommands(kernel: CommandKernel, dashboard: QueueDashboard): void {\n kernel.register('queue', async (args: string[]) => {\n const { subcommand, positional, flags } = parseArgs(args)\n\n switch (subcommand) {\n case 'status':\n handleStatus(dashboard)\n break\n\n case 'pending':\n handlePending(dashboard, flags)\n break\n\n case 'active':\n handleActive(dashboard, flags)\n break\n\n case 'failed':\n handleFailed(dashboard, flags)\n break\n\n case 'job':\n handleJob(dashboard, positional[0])\n break\n\n case 'workers':\n handleWorkers(dashboard)\n break\n\n case 'flush':\n handleFlush(dashboard, flags)\n break\n\n case 'retry':\n handleRetry(dashboard, positional[0])\n break\n\n case 'monitor':\n handleMonitor(dashboard, flags)\n break\n\n case 'export':\n handleExport(dashboard, flags)\n break\n\n default:\n console.log('\\n╔════════════════════════════════════════════════════╗')\n console.log('║ Queue Management Commands ║')\n console.log('╚════════════════════════════════════════════════════╝\\n')\n console.log('Usage: gravito queue <command> [options]\\n')\n console.log('Commands:')\n console.log(' status Show queue status overview')\n console.log(' pending [--limit N] List pending tasks')\n console.log(' active [--worker-id ID] List active tasks')\n console.log(' failed [--limit N] List failed tasks in DLQ')\n console.log(' job <job-id> Show details of a specific job')\n console.log(' workers Show worker pool status')\n console.log(' retry <job-id> Retry a failed job')\n console.log(' flush [--confirm] Clear the entire queue')\n console.log(' monitor [--interval 5s] Monitor metrics in real-time')\n console.log(' export [--format json|prometheus] Export metrics\\n')\n }\n })\n}\n",
|
|
145
147
|
"/**\n * @gravito/core - Flow Control Strategies\n *\n * Implements various flow control strategies for backpressure management.\n * Strategies can be composed to create flexible backpressure policies.\n *\n * 流控策略:支援多種組合策略進行靈活的背壓管理。\n */\n\nimport {\n type BackpressureConfig,\n type BackpressureDecision,\n BackpressureState,\n} from './BackpressureManager'\n\n/**\n * 流控評估上下文。\n *\n * @public\n */\nexport interface FlowControlContext {\n /** 當前背壓狀態 */\n state: BackpressureState\n /** 事件優先級 */\n priority: 'high' | 'normal' | 'low'\n /** 總隊列深度 */\n totalDepth: number\n /** 分優先級隊列深度 */\n depthByPriority: { high: number; normal: number; low: number }\n /** 當前入隊速率(events/sec) */\n currentRate: number\n /** 配置 */\n config: Omit<BackpressureConfig, 'onRejected' | 'onStateChange'>\n}\n\n/**\n * 流控策略介面。\n *\n * @public\n */\nexport interface FlowControlStrategy {\n /** 策略名稱 */\n readonly name: string\n /** 評估是否應該限制此事件 */\n evaluate(context: FlowControlContext): BackpressureDecision\n}\n\n/**\n * 隊列深度策略。\n *\n * 根據總隊列深度和分優先級隊列深度決定是否限制事件入隊。\n */\nexport class QueueDepthStrategy implements FlowControlStrategy {\n readonly name = 'queue-depth'\n\n evaluate(context: FlowControlContext): BackpressureDecision {\n const config = context.config\n const maxSize = config.maxQueueSize || Number.POSITIVE_INFINITY\n const maxSizeByPriority = config.maxSizeByPriority || {}\n\n // 檢查總隊列深度\n if (context.totalDepth >= maxSize) {\n return {\n allowed: false,\n reason: 'Total queue depth limit reached',\n }\n }\n\n // 檢查分優先級隊列深度\n const maxForPriority = maxSizeByPriority[context.priority] || Number.POSITIVE_INFINITY\n if (context.depthByPriority[context.priority] >= maxForPriority) {\n return {\n allowed: false,\n reason: `Priority queue full for ${context.priority}`,\n }\n }\n\n // 根據狀態進行額外檢查\n if (context.state === BackpressureState.OVERFLOW) {\n return { allowed: false, reason: 'Backpressure OVERFLOW' }\n }\n\n if (context.state === BackpressureState.CRITICAL) {\n if (context.priority !== 'high') {\n return { allowed: false, reason: 'CRITICAL: only high-priority allowed' }\n }\n }\n\n return { allowed: true }\n }\n}\n\n/**\n * 速率限制策略。\n *\n * 根據每秒入隊速率限制事件入隊。\n */\nexport class RateLimitStrategy implements FlowControlStrategy {\n readonly name = 'rate-limit'\n\n evaluate(context: FlowControlContext): BackpressureDecision {\n const maxRate = context.config.maxEnqueueRate || Number.POSITIVE_INFINITY\n const currentRate = context.currentRate\n\n if (currentRate <= maxRate) {\n return { allowed: true }\n }\n\n // 速率超限:按優先級分級處理\n if (context.priority === 'high') {\n // 高優先級始終允許\n return { allowed: true }\n }\n\n if (context.priority === 'normal') {\n // 普通優先級延遲入隊\n const delayMs = context.config.lowPriorityDelayMs || 100\n return {\n allowed: true,\n delayed: true,\n delayMs,\n reason: 'Rate limit: normal priority delayed',\n }\n }\n\n // 低優先級拒絕\n return {\n allowed: false,\n reason: 'Rate limit exceeded for low-priority event',\n }\n }\n}\n\n/**\n * 優先級平衡策略。\n *\n * 在 WARNING 和 CRITICAL 狀態下降級低優先級事件,防止高優先級飢餓。\n */\nexport class PriorityRebalanceStrategy implements FlowControlStrategy {\n readonly name = 'priority-rebalance'\n\n evaluate(context: FlowControlContext): BackpressureDecision {\n const state = context.state\n const priority = context.priority\n const delayMs = context.config.lowPriorityDelayMs || 100\n\n if (state === BackpressureState.CRITICAL) {\n if (priority === 'low') {\n // 低優先級在 CRITICAL 狀態拒絕\n return {\n allowed: false,\n reason: 'CRITICAL: low-priority rejected',\n }\n }\n if (priority === 'normal') {\n // 普通優先級延遲\n return {\n allowed: true,\n delayed: true,\n delayMs,\n reason: 'CRITICAL: normal priority delayed',\n }\n }\n }\n\n if (state === BackpressureState.WARNING) {\n if (priority === 'low') {\n // 低優先級在 WARNING 狀態延遲\n return {\n allowed: true,\n delayed: true,\n delayMs,\n reason: 'WARNING: low priority delayed',\n }\n }\n }\n\n return { allowed: true }\n }\n}\n\n/**\n * 反飢餓保護策略。\n *\n * 防止低優先級事件被長期壓制。\n * 當事件等待超過 starvationTimeoutMs 時,自動提升其優先級。\n */\nexport class StarvationProtectionStrategy implements FlowControlStrategy {\n readonly name = 'starvation-protection'\n\n evaluate(_context: FlowControlContext): BackpressureDecision {\n // 此策略需要在 BackpressureManager 中額外實現\n // 以便存取事件的 createdAt 時間戳\n // 暫時作為佔位符,返回允許\n return { allowed: true }\n }\n}\n\n/**\n * 組合策略。\n *\n * 組合多個策略。評估時所有子策略必須允許,否則拒絕。\n * 取最嚴格的決策(拒絕 > 延遲 > 允許)。\n */\nexport class CompositeStrategy implements FlowControlStrategy {\n readonly name: string\n private strategies: FlowControlStrategy[]\n\n constructor(name: string, strategies: FlowControlStrategy[]) {\n this.name = name\n this.strategies = strategies\n }\n\n evaluate(context: FlowControlContext): BackpressureDecision {\n let mostStrict: BackpressureDecision = { allowed: true }\n\n for (const strategy of this.strategies) {\n const decision = strategy.evaluate(context)\n\n // 取最嚴格決策:拒絕 > 延遲 > 允許\n if (!decision.allowed) {\n return decision // 任一拒絕即拒絕\n }\n\n if (decision.delayed && !mostStrict.delayed) {\n mostStrict = decision // 延遲優於允許\n }\n }\n\n return mostStrict\n }\n\n /**\n * 新增子策略。\n */\n addStrategy(strategy: FlowControlStrategy): void {\n this.strategies.push(strategy)\n }\n\n /**\n * 移除指定名稱的子策略。\n */\n removeStrategy(name: string): boolean {\n const index = this.strategies.findIndex((s) => s.name === name)\n if (index >= 0) {\n this.strategies.splice(index, 1)\n return true\n }\n return false\n }\n}\n\n/**\n * 工廠方法:建立預設流控策略組合。\n *\n * @param config 背壓配置\n * @returns 組合策略實例\n *\n * @public\n */\nexport function createDefaultStrategies(\n _config: Omit<BackpressureConfig, 'onRejected' | 'onStateChange'>\n): FlowControlStrategy[] {\n return [new QueueDepthStrategy(), new RateLimitStrategy(), new PriorityRebalanceStrategy()]\n}\n",
|
|
@@ -148,8 +150,16 @@
|
|
|
148
150
|
"/**\n * Worker Pool Metrics for OpenTelemetry integration.\n *\n * Tracks worker pool statistics and emits metrics using OpenTelemetry.\n * Follows the Provider Callback pattern for dynamic metric collection.\n *\n * @internal\n */\n\nimport type { Counter, Histogram, Meter } from '@opentelemetry/api'\n\n/**\n * Worker Pool Metrics Recorder\n */\nexport class WorkerPoolMetrics {\n private taskDurationHistogram?: Histogram\n private taskCounter?: Counter\n private autoScalingCounter?: Counter\n private poolSizeCallback?: () => number\n private utilizationCallback?: () => number\n private queueDepthCallback?: () => number\n\n constructor(private meter: Meter) {\n this.initializeMetrics()\n }\n\n /**\n * Initialize OpenTelemetry metrics\n */\n private initializeMetrics(): void {\n // Histogram for task execution duration (in milliseconds)\n this.taskDurationHistogram = this.meter.createHistogram('gravito_worker_task_duration_ms', {\n description: 'Duration of task execution in milliseconds',\n unit: 'ms',\n })\n\n // Counter for task execution\n this.taskCounter = this.meter.createCounter('gravito_worker_task_total', {\n description: 'Total number of tasks processed',\n })\n\n // Counter for auto-scaling events\n this.autoScalingCounter = this.meter.createCounter('gravito_worker_autoscale_total', {\n description: 'Total number of auto-scaling events',\n })\n\n // Note: Observable Gauges for pool metrics are not created here as they require\n // callback registration which is deferred to when setPoolSizeProvider/etc are called\n }\n\n /**\n * Set provider callback for pool size metric\n */\n setPoolSizeProvider(callback: () => number): void {\n this.poolSizeCallback = callback\n }\n\n /**\n * Set provider callback for utilization metric\n */\n setUtilizationProvider(callback: () => number): void {\n this.utilizationCallback = callback\n }\n\n /**\n * Set provider callback for queue depth metric\n */\n setQueueDepthProvider(callback: () => number): void {\n this.queueDepthCallback = callback\n }\n\n /**\n * Record task execution\n *\n * @param durationMs - Task execution duration in milliseconds\n * @param priority - Task priority level\n * @param success - Whether task succeeded\n */\n recordTaskExecution(durationMs: number, priority: string, success: boolean): void {\n const status = success ? 'success' : 'failure'\n\n if (this.taskDurationHistogram) {\n this.taskDurationHistogram.record(durationMs, {\n priority,\n status,\n })\n }\n\n if (this.taskCounter) {\n this.taskCounter.add(1, {\n priority,\n status,\n })\n }\n }\n\n /**\n * Record auto-scaling event\n *\n * @param action - 'scale-up' or 'scale-down'\n * @param reason - Reason for scaling\n */\n recordAutoScaling(action: 'scale-up' | 'scale-down', reason: string): void {\n if (this.autoScalingCounter) {\n this.autoScalingCounter.add(1, {\n action,\n reason,\n })\n }\n }\n\n /**\n * Get the current pool size (for provider callbacks)\n */\n getPoolSize(): number {\n return this.poolSizeCallback?.() ?? 0\n }\n\n /**\n * Get the current utilization (for provider callbacks)\n */\n getUtilization(): number {\n return this.utilizationCallback?.() ?? 0\n }\n\n /**\n * Get the current queue depth (for provider callbacks)\n */\n getQueueDepth(): number {\n return this.queueDepthCallback?.() ?? 0\n }\n}\n",
|
|
149
151
|
"/**\n * Worker Pool for concurrent event task processing.\n *\n * Manages a pool of workers for executing event tasks concurrently.\n * Supports auto-scaling, health checks, and OpenTelemetry metrics integration.\n *\n * @internal\n */\n\nimport type { Meter } from '@opentelemetry/api'\nimport { randomUUID } from '../compat/crypto'\nimport type { EventTask } from './types'\nimport type { TaskSource, WorkerPoolConfig, WorkerPoolStats, WorkerStats } from './WorkerPoolConfig'\nimport { WorkerPoolMetrics } from './WorkerPoolMetrics'\n\n/**\n * Internal Worker representation\n */\ninterface Worker {\n id: string\n state: 'idle' | 'busy' | 'terminated'\n tasksProcessed: number\n tasksSuccess: number\n tasksFailed: number\n totalDurationMs: number\n createdAt: number\n}\n\n/**\n * Worker Pool for managing concurrent task execution\n */\nexport class WorkerPool {\n private workers: Worker[] = []\n private taskQueue: EventTask[] = []\n private config: {\n concurrency: number\n workerThreads: number\n taskTimeout: number\n maxRetries: number\n enableAutoScaling: boolean\n minWorkers: number\n maxWorkers: number\n scaleUpThreshold: number\n scaleDownThreshold: number\n metricsInterval: number\n taskSource?: TaskSource\n }\n private metrics?: WorkerPoolMetrics\n private healthCheckTimer?: any\n private metricsTimer?: any\n private isRunning = false\n private scaleDownCounter = 0\n\n constructor(config: WorkerPoolConfig = {}, meter?: Meter) {\n // Set defaults\n let cpuCores = 1\n try {\n if (typeof process !== 'undefined' && !(process as any).browser) {\n // biome-ignore lint/security/noGlobalEval: hide from Vite\n cpuCores = Math.max(1, eval('require')('node:os').cpus().length)\n }\n } catch (_e) {\n // Fallback to 1\n }\n\n this.config = {\n concurrency: config.concurrency ?? 4,\n workerThreads: config.workerThreads ?? cpuCores,\n taskTimeout: config.taskTimeout ?? 30000,\n maxRetries: config.maxRetries ?? 3,\n enableAutoScaling: config.enableAutoScaling ?? true,\n minWorkers: config.minWorkers ?? 1,\n maxWorkers: config.maxWorkers ?? cpuCores * 2,\n scaleUpThreshold: config.scaleUpThreshold ?? 0.8,\n scaleDownThreshold: config.scaleDownThreshold ?? 0.2,\n metricsInterval: config.metricsInterval ?? 5000,\n taskSource: config.taskSource,\n }\n\n if (meter) {\n this.metrics = new WorkerPoolMetrics(meter)\n // Set up provider callbacks\n this.metrics.setPoolSizeProvider(() => this.getActiveWorkerCount())\n this.metrics.setUtilizationProvider(() => this.getUtilization())\n this.metrics.setQueueDepthProvider(() => this.taskQueue.length)\n }\n }\n\n /**\n * Start the worker pool\n */\n async start(): Promise<void> {\n if (this.isRunning) {\n return\n }\n\n this.isRunning = true\n\n // Initialize workers\n for (let i = 0; i < this.config.minWorkers; i++) {\n this.createWorker()\n }\n\n // Start health check\n this.healthCheckTimer = setInterval(\n () => this.performHealthCheck(),\n this.config.metricsInterval\n )\n\n // Start metrics collection\n this.metricsTimer = setInterval(() => this.collectMetrics(), this.config.metricsInterval)\n\n // Start auto-scaling if enabled\n if (this.config.enableAutoScaling) {\n setInterval(() => this.performAutoScaling(), this.config.metricsInterval)\n }\n }\n\n /**\n * Stop the worker pool\n */\n async stop(): Promise<void> {\n this.isRunning = false\n\n if (this.healthCheckTimer) {\n clearInterval(this.healthCheckTimer)\n }\n\n if (this.metricsTimer) {\n clearInterval(this.metricsTimer)\n }\n\n // Mark all workers as terminated\n for (const worker of this.workers) {\n worker.state = 'terminated'\n }\n\n // Wait for queue to drain\n const maxWaitTime = 5000\n const startTime = Date.now()\n while (this.taskQueue.length > 0 && Date.now() - startTime < maxWaitTime) {\n await new Promise((resolve) => setTimeout(resolve, 100))\n }\n\n this.workers = []\n this.taskQueue = []\n }\n\n /**\n * Submit a task to the worker pool\n */\n async submitTask(task: EventTask): Promise<void> {\n if (!this.isRunning) {\n throw new Error('Worker pool is not running')\n }\n\n this.taskQueue.push(task)\n this.processQueue()\n }\n\n /**\n * Process next task in queue\n */\n private processQueue(): void {\n if (!this.isRunning) {\n return\n }\n\n for (const worker of this.workers) {\n if (worker.state === 'idle' && this.taskQueue.length > 0) {\n const task = this.taskQueue.shift()\n if (task) {\n this.executeTask(worker, task)\n }\n }\n }\n }\n\n /**\n * Execute task on a worker\n */\n private async executeTask(worker: Worker, task: EventTask): Promise<void> {\n worker.state = 'busy'\n const startTime = performance.now()\n\n try {\n // Execute task callbacks\n await this.executeTaskCallbacks(task)\n\n worker.tasksSuccess++\n\n // Acknowledge completion to task source\n if (this.config.taskSource) {\n await this.config.taskSource.acknowledgeCompletion(task.id)\n }\n\n const duration = performance.now() - startTime\n this.metrics?.recordTaskExecution(duration, task.options.priority || 'normal', true)\n } catch (error) {\n worker.tasksFailed++\n\n // Acknowledge failure to task source\n if (this.config.taskSource && error instanceof Error) {\n await this.config.taskSource.acknowledgeFailure(task.id, error)\n }\n\n const duration = performance.now() - startTime\n this.metrics?.recordTaskExecution(duration, task.options.priority || 'normal', false)\n } finally {\n worker.tasksProcessed++\n worker.totalDurationMs += performance.now() - startTime\n\n worker.state = 'idle'\n\n // Process next task\n setImmediate(() => this.processQueue())\n }\n }\n\n /**\n * Execute task callbacks\n */\n private async executeTaskCallbacks(task: EventTask): Promise<void> {\n for (const callback of task.callbacks) {\n await Promise.race([callback(task.args), this.createTimeout(this.config.taskTimeout)])\n }\n }\n\n /**\n * Create a timeout promise\n */\n private createTimeout(ms: number): Promise<never> {\n return new Promise((_, reject) => {\n setTimeout(() => {\n reject(new Error(`Task timeout after ${ms}ms`))\n }, ms)\n })\n }\n\n /**\n * Create a new worker\n */\n private createWorker(): Worker {\n const worker: Worker = {\n id: randomUUID(),\n state: 'idle',\n tasksProcessed: 0,\n tasksSuccess: 0,\n tasksFailed: 0,\n totalDurationMs: 0,\n createdAt: Date.now(),\n }\n this.workers.push(worker)\n return worker\n }\n\n /**\n * Remove a worker\n */\n private removeWorker(workerId: string): void {\n const index = this.workers.findIndex((w) => w.id === workerId)\n if (index !== -1) {\n this.workers[index].state = 'terminated'\n this.workers.splice(index, 1)\n }\n }\n\n /**\n * Perform health check and cleanup\n */\n private performHealthCheck(): void {\n // Remove terminated workers\n this.workers = this.workers.filter((w) => w.state !== 'terminated')\n\n // If no workers, create minimum\n if (this.workers.length === 0 && this.isRunning) {\n for (let i = 0; i < this.config.minWorkers; i++) {\n this.createWorker()\n }\n }\n }\n\n /**\n * Perform auto-scaling based on load\n */\n private async performAutoScaling(): Promise<void> {\n if (!this.config.enableAutoScaling) {\n return\n }\n\n const utilization = this.getUtilization()\n const activeWorkers = this.getActiveWorkerCount()\n\n // Scale up if utilization is high\n if (utilization > this.config.scaleUpThreshold && activeWorkers < this.config.maxWorkers) {\n this.createWorker()\n this.metrics?.recordAutoScaling('scale-up', `Utilization: ${(utilization * 100).toFixed(1)}%`)\n this.scaleDownCounter = 0 // Reset scale down counter\n }\n // Scale down if utilization is low (with delay)\n else if (\n utilization < this.config.scaleDownThreshold &&\n activeWorkers > this.config.minWorkers\n ) {\n this.scaleDownCounter++\n if (this.scaleDownCounter >= 3) {\n const workerToRemove = this.workers.find((w) => w.state === 'idle')\n if (workerToRemove) {\n this.removeWorker(workerToRemove.id)\n this.metrics?.recordAutoScaling(\n 'scale-down',\n `Utilization: ${(utilization * 100).toFixed(1)}%`\n )\n }\n this.scaleDownCounter = 0\n }\n } else {\n this.scaleDownCounter = 0 // Reset if utilization is in range\n }\n }\n\n /**\n * Collect metrics\n */\n private collectMetrics(): void {\n // Metrics are collected through provider callbacks\n // This method can be extended for additional logic\n }\n\n /**\n * Get number of active workers (not terminated)\n */\n private getActiveWorkerCount(): number {\n return this.workers.filter((w) => w.state !== 'terminated').length\n }\n\n /**\n * Get worker utilization (0-1)\n */\n private getUtilization(): number {\n const busyWorkers = this.workers.filter((w) => w.state === 'busy').length\n const totalWorkers = this.getActiveWorkerCount()\n\n if (totalWorkers === 0) {\n return 0\n }\n\n return busyWorkers / totalWorkers\n }\n\n /**\n * Get queue depth\n */\n getQueueDepth(): number {\n return this.taskQueue.length\n }\n\n /**\n * Get worker utilization\n */\n getWorkerUtilization(): number {\n return this.getUtilization()\n }\n\n /**\n * Get worker statistics\n */\n getWorkerStats(): WorkerStats[] {\n return this.workers.map((w) => ({\n id: w.id,\n state: w.state,\n tasksProcessed: w.tasksProcessed,\n tasksSuccess: w.tasksSuccess,\n tasksFailed: w.tasksFailed,\n avgDurationMs: w.tasksProcessed > 0 ? w.totalDurationMs / w.tasksProcessed : 0,\n uptime: Date.now() - w.createdAt,\n }))\n }\n\n /**\n * Get pool statistics\n */\n getPoolStats(): WorkerPoolStats {\n const stats: WorkerPoolStats = {\n queueDepth: this.taskQueue.length,\n utilization: this.getUtilization(),\n activeWorkers: this.getActiveWorkerCount(),\n totalTasksProcessed: 0,\n totalSuccess: 0,\n totalFailures: 0,\n }\n\n for (const worker of this.workers) {\n stats.totalTasksProcessed += worker.tasksProcessed\n stats.totalSuccess += worker.tasksSuccess\n stats.totalFailures += worker.tasksFailed\n }\n\n return stats\n }\n}\n\nexport type { WorkerPoolConfig, WorkerStats, WorkerPoolStats }\n",
|
|
150
152
|
"import type { DeadLetterQueue } from '../events/DeadLetterQueue'\nimport type { EventPriorityQueue } from '../events/EventPriorityQueue'\nimport type { MessageQueueBridge } from '../events/MessageQueueBridge'\nimport type { WorkerPool } from '../events/WorkerPool'\nimport type { HookManager } from '../HookManager'\n\n/**\n * Configuration for QueueDashboard\n * All subsystem references are optional to support progressive integration\n */\nexport interface QueueDashboardConfig {\n eventQueue?: EventPriorityQueue\n workerPool?: WorkerPool\n hookManager?: HookManager\n dlq?: DeadLetterQueue\n messageQueueBridge?: MessageQueueBridge\n}\n\n/**\n * Queue depth and backpressure metrics\n */\nexport interface QueueMetrics {\n depth: {\n total: number\n high: number\n normal: number\n low: number\n }\n backpressure: {\n state: string\n rejectedCount: number\n degradedCount: number\n enqueueRate: number\n }\n processing: boolean\n}\n\n/**\n * Worker pool and thread statistics\n */\nexport interface WorkerMetrics {\n poolSize: number\n activeWorkers: number\n utilization: number\n queueDepth: number\n totalProcessed: number\n totalSuccess: number\n totalFailures: number\n successRate: number\n workers: Array<{\n id: string\n state: string\n tasksProcessed: number\n tasksSucceeded: number\n tasksFailed: number\n avgDurationMs: number\n currentLoad: number\n }>\n}\n\n/**\n * Timeline event for job processing history\n */\nexport interface JobEvent {\n id: string\n hook: string\n status: 'pending' | 'processing' | 'completed' | 'failed' | 'in_dlq'\n priority: string\n createdAt: number\n error?: string\n retryCount: number\n}\n\n/**\n * Error statistics and circuit breaker status\n */\nexport interface ErrorStats {\n totalErrors: number\n byEvent: Record<string, number>\n circuitBreakers: Array<{\n eventName: string\n state: string\n failures: number\n successes: number\n }>\n dlqCount: number\n}\n\n/**\n * Complete dashboard snapshot at a point in time\n */\nexport interface DashboardSnapshot {\n timestamp: number\n queue: QueueMetrics\n workers: WorkerMetrics\n timeline: JobEvent[]\n errors: ErrorStats\n}\n\n/**\n * QueueDashboard aggregates metrics from all event processing subsystems\n * Uses Facade pattern to read-only aggregate data without modifying subsystems\n */\nexport class QueueDashboard {\n private readonly config: QueueDashboardConfig\n\n constructor(config: QueueDashboardConfig) {\n this.config = config\n }\n\n /**\n * Get current queue metrics (depth, backpressure state, enqueue rate)\n */\n getQueueMetrics(): QueueMetrics {\n const eventQueue = this.config.eventQueue\n const backpressureManager = eventQueue?.getBackpressureManager?.()\n\n // Default values when no event queue configured\n if (!eventQueue) {\n return {\n depth: { total: 0, high: 0, normal: 0, low: 0 },\n backpressure: {\n state: 'NORMAL',\n rejectedCount: 0,\n degradedCount: 0,\n enqueueRate: 0,\n },\n processing: false,\n }\n }\n\n const depth = {\n total: eventQueue.getDepth(),\n high: eventQueue.getDepthByPriority?.('high') ?? 0,\n normal: eventQueue.getDepthByPriority?.('normal') ?? 0,\n low: eventQueue.getDepthByPriority?.('low') ?? 0,\n }\n\n let backpressure = {\n state: 'NORMAL',\n rejectedCount: 0,\n degradedCount: 0,\n enqueueRate: 0,\n }\n\n if (backpressureManager) {\n const state = backpressureManager.getState?.()\n const metrics = backpressureManager.getMetrics?.()\n\n backpressure = {\n state: state ?? 'NORMAL',\n rejectedCount: metrics?.rejectedCount ?? 0,\n degradedCount: metrics?.degradedCount ?? 0,\n enqueueRate: metrics?.enqueueRate ?? 0,\n }\n }\n\n return {\n depth,\n backpressure,\n processing: depth.total > 0,\n }\n }\n\n /**\n * Get current worker pool metrics (size, utilization, success rate)\n */\n getWorkerMetrics(): WorkerMetrics {\n const workerPool = this.config.workerPool\n\n // Default values when no worker pool configured\n if (!workerPool) {\n return {\n poolSize: 0,\n activeWorkers: 0,\n utilization: 0,\n queueDepth: 0,\n totalProcessed: 0,\n totalSuccess: 0,\n totalFailures: 0,\n successRate: 1.0,\n workers: [],\n }\n }\n\n const poolStats = workerPool.getPoolStats?.() ?? {\n queueDepth: 0,\n utilization: 0,\n activeWorkers: 0,\n totalTasksProcessed: 0,\n totalSuccess: 0,\n totalFailures: 0,\n }\n\n const workerStats = workerPool.getWorkerStats?.() ?? []\n\n const totalProcessed = poolStats.totalTasksProcessed ?? 0\n const successRate = totalProcessed > 0 ? (poolStats.totalSuccess ?? 0) / totalProcessed : 1.0\n\n return {\n poolSize: (workerPool as any).config?.workerThreads ?? 0,\n activeWorkers: poolStats.activeWorkers ?? 0,\n utilization: poolStats.utilization ?? 0,\n queueDepth: poolStats.queueDepth ?? 0,\n totalProcessed,\n totalSuccess: poolStats.totalSuccess ?? 0,\n totalFailures: poolStats.totalFailures ?? 0,\n successRate,\n workers: workerStats.map((w) => ({\n id: w.id,\n state: w.state,\n tasksProcessed: w.tasksProcessed ?? 0,\n tasksSucceeded: w.tasksSuccess ?? 0,\n tasksFailed: w.tasksFailed ?? 0,\n avgDurationMs: w.avgDurationMs ?? 0,\n currentLoad: 0,\n })),\n }\n }\n\n /**\n * Get job event timeline from DLQ entries (recent failures)\n * @param limit Maximum number of entries to return (default: 50)\n */\n getJobTimeline(limit = 50): JobEvent[] {\n const dlq = this.config.dlq\n\n if (!dlq) {\n return []\n }\n\n const dlqEntries = dlq.list?.({ limit }) ?? []\n\n return dlqEntries.map((entry) => ({\n id: entry.id ?? '',\n hook: entry.eventName ?? 'unknown',\n status: 'in_dlq' as const,\n priority: entry.options?.priority ?? 'normal',\n createdAt: entry.firstFailedAt ?? Date.now(),\n error: entry.error?.message ?? String(entry.error),\n retryCount: entry.retryCount ?? 0,\n }))\n }\n\n /**\n * Get error statistics including circuit breaker status and DLQ counts\n */\n getErrorBreakdown(): ErrorStats {\n const dlq = this.config.dlq\n const hookManager = this.config.hookManager\n\n // Get DLQ statistics\n const dlqCount = dlq?.getCount?.() ?? 0\n const dlqEntries = dlq?.list?.({ limit: 1000 }) ?? []\n\n // Count errors by event name\n const byEvent: Record<string, number> = {}\n for (const entry of dlqEntries) {\n const eventName = entry.eventName ?? 'unknown'\n byEvent[eventName] = (byEvent[eventName] ?? 0) + 1\n }\n\n // Get circuit breaker statistics\n const circuitBreakers = hookManager?.getCircuitBreakerStats?.() ?? []\n\n const totalErrors =\n dlqCount + circuitBreakers.reduce((sum, cb) => sum + (cb.totalFailures ?? 0), 0)\n\n return {\n totalErrors,\n byEvent,\n circuitBreakers: circuitBreakers.map((cb) => ({\n eventName: cb.eventName ?? '',\n state: cb.state ?? 'CLOSED',\n failures: cb.totalFailures ?? 0,\n successes: cb.totalSuccesses ?? 0,\n })),\n dlqCount,\n }\n }\n\n /**\n * Export metrics in JSON or Prometheus format\n * @param format Export format: 'json' or 'prometheus'\n */\n exportMetrics(format: 'json' | 'prometheus'): string {\n const snapshot = this.getSnapshot()\n\n if (format === 'json') {\n return JSON.stringify(snapshot, null, 2)\n }\n\n return this.formatPrometheus(snapshot)\n }\n\n /**\n * Get complete snapshot of all metrics at a point in time\n */\n getSnapshot(options?: { timelineLimit?: number }): DashboardSnapshot {\n return {\n timestamp: Date.now(),\n queue: this.getQueueMetrics(),\n workers: this.getWorkerMetrics(),\n timeline: this.getJobTimeline(options?.timelineLimit ?? 50),\n errors: this.getErrorBreakdown(),\n }\n }\n\n /**\n * Format metrics in Prometheus/OpenMetrics text format\n */\n private formatPrometheus(snapshot: DashboardSnapshot): string {\n const lines: string[] = []\n\n // Queue depth metrics\n lines.push('# HELP gravito_queue_depth Current queue depth by priority')\n lines.push('# TYPE gravito_queue_depth gauge')\n lines.push(`gravito_queue_depth{priority=\"high\"} ${snapshot.queue.depth.high}`)\n lines.push(`gravito_queue_depth{priority=\"normal\"} ${snapshot.queue.depth.normal}`)\n lines.push(`gravito_queue_depth{priority=\"low\"} ${snapshot.queue.depth.low}`)\n lines.push(`gravito_queue_depth{priority=\"total\"} ${snapshot.queue.depth.total}`)\n lines.push('')\n\n // Backpressure metrics\n lines.push('# HELP gravito_backpressure_state Current backpressure state')\n lines.push('# TYPE gravito_backpressure_state gauge')\n const stateValue =\n snapshot.queue.backpressure.state === 'CRITICAL'\n ? 3\n : snapshot.queue.backpressure.state === 'WARNING'\n ? 2\n : snapshot.queue.backpressure.state === 'OVERFLOW'\n ? 4\n : 1\n lines.push(`gravito_backpressure_state ${stateValue}`)\n lines.push('')\n\n lines.push(\n '# HELP gravito_backpressure_rejected_total Total rejected events due to backpressure'\n )\n lines.push('# TYPE gravito_backpressure_rejected_total counter')\n lines.push(`gravito_backpressure_rejected_total ${snapshot.queue.backpressure.rejectedCount}`)\n lines.push('')\n\n lines.push('# HELP gravito_backpressure_enqueue_rate Current enqueue rate')\n lines.push('# TYPE gravito_backpressure_enqueue_rate gauge')\n lines.push(`gravito_backpressure_enqueue_rate ${snapshot.queue.backpressure.enqueueRate}`)\n lines.push('')\n\n // Worker pool metrics\n lines.push('# HELP gravito_worker_pool_size Total worker threads in pool')\n lines.push('# TYPE gravito_worker_pool_size gauge')\n lines.push(`gravito_worker_pool_size ${snapshot.workers.poolSize}`)\n lines.push('')\n\n lines.push('# HELP gravito_worker_pool_active Active workers')\n lines.push('# TYPE gravito_worker_pool_active gauge')\n lines.push(`gravito_worker_pool_active ${snapshot.workers.activeWorkers}`)\n lines.push('')\n\n lines.push('# HELP gravito_worker_pool_utilization Worker pool utilization ratio')\n lines.push('# TYPE gravito_worker_pool_utilization gauge')\n lines.push(`gravito_worker_pool_utilization ${snapshot.workers.utilization}`)\n lines.push('')\n\n // Task processing metrics\n lines.push('# HELP gravito_worker_tasks_processed Total tasks processed')\n lines.push('# TYPE gravito_worker_tasks_processed counter')\n lines.push(`gravito_worker_tasks_processed ${snapshot.workers.totalProcessed}`)\n lines.push('')\n\n lines.push('# HELP gravito_worker_tasks_success Total successful tasks')\n lines.push('# TYPE gravito_worker_tasks_success counter')\n lines.push(`gravito_worker_tasks_success ${snapshot.workers.totalSuccess}`)\n lines.push('')\n\n lines.push('# HELP gravito_worker_tasks_failed Total failed tasks')\n lines.push('# TYPE gravito_worker_tasks_failed counter')\n lines.push(`gravito_worker_tasks_failed ${snapshot.workers.totalFailures}`)\n lines.push('')\n\n lines.push('# HELP gravito_worker_success_rate Task success rate ratio')\n lines.push('# TYPE gravito_worker_success_rate gauge')\n lines.push(`gravito_worker_success_rate ${snapshot.workers.successRate}`)\n lines.push('')\n\n // Circuit breaker metrics\n lines.push('# HELP gravito_circuit_breaker_failures Total failures per circuit breaker')\n lines.push('# TYPE gravito_circuit_breaker_failures gauge')\n for (const cb of snapshot.errors.circuitBreakers) {\n lines.push(\n `gravito_circuit_breaker_failures{event=\"${this.escapePrometheusLabel(cb.eventName)}\"} ${cb.failures}`\n )\n }\n lines.push('')\n\n lines.push('# HELP gravito_circuit_breaker_successes Total successes per circuit breaker')\n lines.push('# TYPE gravito_circuit_breaker_successes gauge')\n for (const cb of snapshot.errors.circuitBreakers) {\n lines.push(\n `gravito_circuit_breaker_successes{event=\"${this.escapePrometheusLabel(cb.eventName)}\"} ${cb.successes}`\n )\n }\n lines.push('')\n\n // Error metrics by event\n lines.push('# HELP gravito_errors_by_event Total errors per event name')\n lines.push('# TYPE gravito_errors_by_event gauge')\n for (const [eventName, count] of Object.entries(snapshot.errors.byEvent)) {\n lines.push(\n `gravito_errors_by_event{event=\"${this.escapePrometheusLabel(eventName)}\"} ${count}`\n )\n }\n lines.push('')\n\n // Error metrics\n lines.push('# HELP gravito_errors_total Total number of errors')\n lines.push('# TYPE gravito_errors_total counter')\n lines.push(`gravito_errors_total ${snapshot.errors.totalErrors}`)\n lines.push('')\n\n lines.push('# HELP gravito_dlq_size Current size of dead letter queue')\n lines.push('# TYPE gravito_dlq_size gauge')\n lines.push(`gravito_dlq_size ${snapshot.errors.dlqCount}`)\n lines.push('')\n\n return lines.join('\\n')\n }\n\n /**\n * Escape special characters in Prometheus labels\n */\n private escapePrometheusLabel(value: string): string {\n return value.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"').replace(/\\n/g, '\\\\n')\n }\n}\n",
|
|
151
|
-
"import {
|
|
152
|
-
"import {
|
|
153
|
+
"import { DomainException } from './DomainException'\n\n/**\n * Exception thrown when authentication fails.\n * @public\n */\nexport class AuthenticationException extends DomainException {\n constructor(message = 'Unauthenticated.') {\n super(401, 'UNAUTHENTICATED', {\n message,\n i18nKey: 'errors.authentication.unauthenticated',\n })\n this.name = 'AuthenticationException'\n }\n}\n",
|
|
154
|
+
"import { type ExceptionOptions } from './GravitoException'\nimport { DomainException } from './DomainException'\n\n/**\n * Abstract base class for authentication/authorization-related domain errors.\n * Used by fortify and sentinel packages.\n * @public\n */\nexport abstract class AuthException extends DomainException {\n constructor(status: number, code: string, options: ExceptionOptions = {}) {\n super(status, code, options)\n this.name = 'AuthException'\n Object.setPrototypeOf(this, new.target.prototype)\n }\n}\n",
|
|
155
|
+
"import { DomainException } from './DomainException'\n\n/**\n * Exception thrown when user is not authorized to perform an action.\n * @public\n */\nexport class AuthorizationException extends DomainException {\n constructor(message = 'This action is unauthorized.') {\n super(403, 'FORBIDDEN', {\n message,\n i18nKey: 'errors.authorization.forbidden',\n })\n this.name = 'AuthorizationException'\n }\n}\n",
|
|
156
|
+
"import { type ExceptionOptions, GravitoException } from './GravitoException'\n\n/**\n * Options for creating an InfrastructureException\n * @public\n */\nexport interface InfrastructureExceptionOptions extends ExceptionOptions {\n retryable?: boolean\n}\n\n/**\n * Abstract base class for infrastructure / I/O errors (database, network, filesystem, etc.).\n * Carries a `retryable` flag that callers can inspect to decide whether the operation should be retried.\n * @public\n */\nexport abstract class InfrastructureException extends GravitoException {\n public readonly retryable: boolean\n\n constructor(\n status: number,\n code: string,\n options: InfrastructureExceptionOptions = {}\n ) {\n super(status, code, options)\n this.name = 'InfrastructureException'\n this.retryable = options.retryable ?? false\n Object.setPrototypeOf(this, new.target.prototype)\n }\n}\n",
|
|
157
|
+
"import { InfrastructureException, type InfrastructureExceptionOptions } from './InfrastructureException'\n\n/**\n * Abstract base class for cache/Redis-related infrastructure errors.\n * All plasma error classes extend this instead of bare Error.\n * @public\n */\nexport abstract class CacheException extends InfrastructureException {\n constructor(status: number, code: string, options: InfrastructureExceptionOptions = {}) {\n super(status, code, options)\n this.name = 'CacheException'\n Object.setPrototypeOf(this, new.target.prototype)\n }\n}\n",
|
|
158
|
+
"import { type ExceptionOptions } from './GravitoException'\nimport { SystemException } from './SystemException'\n\n/**\n * Thrown when the framework encounters an invalid or missing configuration value.\n * @public\n */\nexport class ConfigurationException extends SystemException {\n constructor(message: string, options: Omit<ExceptionOptions, 'message'> = {}) {\n super(500, 'system.configuration_error', { ...options, message })\n this.name = 'ConfigurationException'\n Object.setPrototypeOf(this, new.target.prototype)\n }\n}\n",
|
|
159
|
+
"import { InfrastructureException, type InfrastructureExceptionOptions } from './InfrastructureException'\n\n/**\n * Abstract base class for database-related infrastructure errors.\n * All atlas error classes extend this instead of bare Error.\n * @public\n */\nexport abstract class DatabaseException extends InfrastructureException {\n constructor(status: number, code: string, options: InfrastructureExceptionOptions = {}) {\n super(status, code, options)\n this.name = 'DatabaseException'\n Object.setPrototypeOf(this, new.target.prototype)\n }\n}\n",
|
|
160
|
+
"import { InfrastructureException, type InfrastructureExceptionOptions } from './InfrastructureException'\n\n/**\n * Abstract base class for message queue infrastructure errors.\n * Used by quasar and flux packages.\n * @public\n */\nexport abstract class QueueException extends InfrastructureException {\n constructor(status: number, code: string, options: InfrastructureExceptionOptions = {}) {\n super(status, code, options)\n this.name = 'QueueException'\n Object.setPrototypeOf(this, new.target.prototype)\n }\n}\n",
|
|
161
|
+
"import { InfrastructureException, type InfrastructureExceptionOptions } from './InfrastructureException'\n\n/**\n * Abstract base class for file/object storage infrastructure errors.\n * Used by constellation, nebula, nebula-s3, freeze, stasis packages.\n * @public\n */\nexport abstract class StorageException extends InfrastructureException {\n constructor(status: number, code: string, options: InfrastructureExceptionOptions = {}) {\n super(status, code, options)\n this.name = 'StorageException'\n Object.setPrototypeOf(this, new.target.prototype)\n }\n}\n",
|
|
162
|
+
"import { InfrastructureException, type InfrastructureExceptionOptions } from './InfrastructureException'\n\n/**\n * Abstract base class for stream/message processing infrastructure errors.\n * Used by the stream package (Kafka, RabbitMQ, SQS).\n * @public\n */\nexport abstract class StreamException extends InfrastructureException {\n constructor(status: number, code: string, options: InfrastructureExceptionOptions = {}) {\n super(status, code, options)\n this.name = 'StreamException'\n Object.setPrototypeOf(this, new.target.prototype)\n }\n}\n",
|
|
153
163
|
"import type { ConfigManager } from './ConfigManager'\nimport type { Container } from './Container'\nimport type { PlanetCore } from './PlanetCore'\n\n/**\n * ServiceProvider - The foundation for modular service registration.\n *\n * Service providers are the central place to configure your application.\n * They bind services to the container and bootstrap application features.\n *\n * Lifecycle:\n * 1. register() - Called during registration phase (sync or async)\n * 2. boot() - Called after ALL providers have registered\n *\n * @since 1.0.0\n * @example\n * ```typescript\n * class DatabaseServiceProvider extends ServiceProvider {\n * register(container: Container) {\n * container.singleton('db', () => new DatabaseManager());\n * }\n *\n * boot(core: PlanetCore) {\n * const db = core.container.make<DatabaseManager>('db');\n * db.setDefaultConnection(core.config.get('database.default'));\n * }\n * }\n * ```\n */\nexport abstract class ServiceProvider {\n /**\n * Reference to the application core instance.\n * Set during provider registration.\n */\n protected core?: PlanetCore\n\n /**\n * Whether this provider should be deferred.\n * Deferred providers are only registered when one of their\n * provided services is actually requested from the container.\n */\n public deferred = false\n\n /**\n * Get the services provided by this provider.\n * Used for deferred loading - provider is only loaded when\n * one of these services is requested.\n *\n * @returns Array of service keys this provider offers\n *\n * @example\n * ```typescript\n * provides(): string[] {\n * return ['db', 'db.connection'];\n * }\n * ```\n */\n provides(): string[] {\n return []\n }\n\n /**\n * Register bindings in the container.\n *\n * This method is called during the registration phase.\n * **Warning**: Do not resolve services from other providers here,\n * as they may not be registered yet.\n *\n * Supports both synchronous and asynchronous registration.\n *\n * @param container - The IoC container instance\n */\n abstract register(container: Container): void | Promise<void>\n\n /**\n * Bootstrap any application services.\n *\n * This method is called after ALL providers have registered.\n * You can safely resolve services from the container here.\n *\n * @param core - The PlanetCore application instance\n */\n boot?(core: PlanetCore): void | Promise<void>\n\n /**\n * Called when the application is ready to accept requests.\n *\n * This method is called after ALL providers have booted.\n * Use this for final initialization before the server starts accepting traffic.\n *\n * @param core - The PlanetCore application instance\n * @since 2.2.0\n */\n onReady?(core: PlanetCore): void | Promise<void>\n\n /**\n * Called when the application is shutting down.\n *\n * This method is called during graceful shutdown.\n * Use this to clean up resources, close connections, etc.\n *\n * Providers are called in reverse order (LIFO).\n *\n * @param core - The PlanetCore application instance\n * @since 2.2.0\n */\n onShutdown?(core: PlanetCore): void | Promise<void>\n\n /**\n * Set the core instance reference.\n * Called internally by the application during registration.\n *\n * @internal\n */\n setCore(core: PlanetCore): void {\n this.core = core\n }\n\n // ─────────────────────────────────────────────────────────────\n // Configuration Helpers\n // ─────────────────────────────────────────────────────────────\n\n /**\n * Merge configuration from a value into the application config.\n *\n * If the configuration key already exists and both the existing value and\n * the new value are objects, they will be shallow-merged. Otherwise, the\n * new value will overwrite the existing one.\n *\n * @param config - The ConfigManager instance.\n * @param key - The configuration key to set (supports dot notation).\n * @param value - The configuration value or object to merge.\n *\n * @example\n * ```typescript\n * this.mergeConfig(config, 'database', {\n * default: 'mysql',\n * connections: { ... }\n * });\n * ```\n */\n protected mergeConfig(config: ConfigManager, key: string, value: unknown): void {\n const existing = config.has(key) ? config.get(key) : {}\n\n if (\n typeof existing === 'object' &&\n existing !== null &&\n typeof value === 'object' &&\n value !== null\n ) {\n // Deep merge for objects\n config.set(key, { ...existing, ...value })\n } else {\n config.set(key, value)\n }\n }\n\n /**\n * Merge configuration from an async loader.\n * Useful for loading config from .ts files dynamically.\n *\n * @param config - The ConfigManager instance\n * @param key - The configuration key\n * @param loader - Async function that returns config value\n *\n * @example\n * ```typescript\n * await this.mergeConfigFrom(config, 'database', async () => {\n * return (await import('./config/database')).default;\n * });\n * ```\n */\n protected async mergeConfigFrom(\n config: ConfigManager,\n key: string,\n loader: () => Promise<unknown>\n ): Promise<void> {\n const value = await loader()\n this.mergeConfig(config, key, value)\n }\n\n // ─────────────────────────────────────────────────────────────\n // Publishing (for CLI support)\n // ─────────────────────────────────────────────────────────────\n\n /**\n * Paths that should be published by the CLI.\n * Maps source paths to destination paths.\n */\n private static publishables: Map<string, Map<string, string>> = new Map()\n\n /**\n * Register paths to be published by the CLI.\n *\n * Used by CLI commands like `gravito vendor:publish` to copy configuration,\n * views, or assets from the package to the application directory.\n *\n * @param paths - A record mapping source paths to destination paths.\n * @param group - Optional group name for selective publishing (e.g., 'config', 'views').\n *\n * @example\n * ```typescript\n * this.publishes({\n * './config/cache.ts': 'config/cache.ts',\n * './views/errors': 'resources/views/errors'\n * }, 'config');\n * ```\n */\n protected publishes(paths: Record<string, string>, group?: string): void {\n const groupKey = group ?? this.constructor.name\n\n if (!ServiceProvider.publishables.has(groupKey)) {\n ServiceProvider.publishables.set(groupKey, new Map())\n }\n\n const groupPaths = ServiceProvider.publishables.get(groupKey)!\n for (const [source, dest] of Object.entries(paths)) {\n groupPaths.set(source, dest)\n }\n }\n\n /**\n * Get all publishable paths for a group.\n *\n * @param group - The group name (defaults to provider class name)\n * @returns Map of source to destination paths\n */\n static getPublishables(group?: string): Map<string, string> {\n if (group) {\n return ServiceProvider.publishables.get(group) ?? new Map()\n }\n\n // Return all publishables merged\n const all = new Map<string, string>()\n for (const paths of ServiceProvider.publishables.values()) {\n for (const [source, dest] of paths) {\n all.set(source, dest)\n }\n }\n return all\n }\n\n /**\n * Get all publish groups.\n *\n * @returns Array of group names\n */\n static getPublishGroups(): string[] {\n return Array.from(ServiceProvider.publishables.keys())\n }\n}\n",
|
|
154
164
|
"import { type GravitoConfig, PlanetCore } from './PlanetCore'\nimport { ServiceProvider } from './ServiceProvider'\n\n/**\n * Manifest describing a Gravito application structure.\n * @public\n */\nexport interface GravitoManifest {\n name: string\n version?: string\n modules: string[]\n config?: GravitoConfig\n}\n\n/**\n * Function type for asynchronous module resolution.\n * @public\n */\nexport type ModuleResolver = () => Promise<any>\n\n/**\n * Gravito 核心啟動引擎 (已解耦)\n */\nexport class GravitoServer {\n /**\n * 一鍵建立並組裝伺服器\n * @param manifest 站點描述清單\n * @param resolvers 模組解析器字典\n * @param baseOrbits 基礎軌道模組 (例如 OrbitMonolith)\n */\n static async create(\n manifest: GravitoManifest,\n resolvers: Record<string, ModuleResolver>,\n baseOrbits: any[] = []\n ): Promise<PlanetCore> {\n const core = new PlanetCore(manifest.config || {})\n\n // 掛載基礎設施軌道\n for (const Orbit of baseOrbits) {\n core.orbit(Orbit)\n }\n\n console.log(`\n🌌 [Gravito Core] 正在點燃: ${manifest.name} v${manifest.version || '1.0.0'}`)\n\n for (const moduleId of manifest.modules) {\n const resolver = resolvers[moduleId]\n if (!resolver) {\n continue\n }\n\n try {\n const exported = await resolver()\n let instance: ServiceProvider\n\n if (typeof exported === 'function' && exported.prototype instanceof ServiceProvider) {\n instance = new exported()\n } else if (exported instanceof ServiceProvider) {\n instance = exported\n } else {\n continue\n }\n\n core.register(instance)\n console.log(` ✅ 模組點火成功: [${moduleId}]`)\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error)\n console.error(` ❌ 模組 [${moduleId}] 點火失敗: ${message}`)\n }\n }\n\n return core\n }\n}\n",
|
|
155
165
|
"/**\n * @fileoverview HealthProvider - Cloud-native health checks\n *\n * Provides liveness and readiness probes for Kubernetes and cloud deployments\n *\n * @module @gravito/core/health\n * @since 2.2.0\n */\n\nimport type { Container } from '../Container'\nimport type { PlanetCore } from '../PlanetCore'\nimport { ServiceProvider } from '../ServiceProvider'\n\n/**\n * Health check result\n * @public\n */\nexport interface HealthCheckResult {\n /** Health status */\n status: 'healthy' | 'unhealthy'\n /** Optional message */\n message?: string\n}\n\n/**\n * Health check function interface\n * @public\n */\nexport interface HealthCheck {\n /** Unique name for this check */\n name: string\n /** Check function that returns health status */\n check(): Promise<HealthCheckResult>\n}\n\n/**\n * HealthProvider - Provides /health/liveness and /health/readiness endpoints\n *\n * - Liveness: Always returns 200 OK (just checks if server is running)\n * - Readiness: Returns 200 if all checks are healthy, 503 otherwise\n *\n * @public\n */\nexport class HealthProvider extends ServiceProvider {\n private checks: HealthCheck[] = []\n\n register(container: Container) {\n container.singleton('health', () => this)\n }\n\n /**\n * Register a health check\n *\n * @param check - The health check to register\n *\n * @example\n * ```typescript\n * const health = core.container.make<HealthProvider>('health')\n * health.registerCheck({\n * name: 'database',\n * check: async () => {\n * try {\n * await db.ping()\n * return { status: 'healthy' }\n * } catch {\n * return { status: 'unhealthy', message: 'DB unreachable' }\n * }\n * }\n * })\n * ```\n */\n registerCheck(check: HealthCheck): void {\n this.checks.push(check)\n }\n\n boot(core: PlanetCore) {\n // Liveness probe - always 200\n core.router.get('/health/liveness', () => {\n return new Response('OK', { status: 200 })\n })\n\n // Readiness probe - depends on checks\n core.router.get('/health/readiness', async () => {\n const results = await Promise.all(this.checks.map((c) => c.check()))\n\n const checkResults: Record<string, HealthCheckResult> = {}\n for (let i = 0; i < this.checks.length; i++) {\n checkResults[this.checks[i].name] = results[i]\n }\n\n const allHealthy = results.every((r) => r.status === 'healthy')\n\n return Response.json(\n {\n status: allHealthy ? 'healthy' : 'unhealthy',\n timestamp: new Date().toISOString(),\n checks: checkResults,\n },\n {\n status: allHealthy ? 200 : 503,\n }\n )\n })\n }\n}\n\nexport default HealthProvider\n",
|
|
@@ -161,7 +171,7 @@
|
|
|
161
171
|
"/**\n * BinaryUtils - 統一的二進制轉換工具類\n *\n * 支援 Bun 原生 API 優化,並提供 Node.js 回退路徑。\n * 設計為 isomorphic,可在 Bun 和 Node.js 環境中運行。\n * @public\n */\n\n/**\n * 偵測當前是否在 Bun 運行時中\n */\nconst isBunRuntime = (): boolean =>\n typeof globalThis !== 'undefined' &&\n typeof (globalThis as Record<string, unknown>).Bun !== 'undefined'\n\n/**\n * BinaryUtils - 提供統一的二進制轉換、編碼、壓縮工具\n * 所有方法均為靜態方法,可直接呼叫\n * @public\n */\nexport class BinaryUtils {\n /**\n * 將各種資料類型轉換為 Uint8Array\n * @param data - 輸入資料(Blob、Buffer、string、ArrayBuffer 或 Uint8Array)\n * @returns Uint8Array\n * @public\n */\n static async toUint8Array(\n data: Blob | Buffer | string | ArrayBuffer | Uint8Array\n ): Promise<Uint8Array> {\n if (data instanceof Uint8Array) {\n return data\n }\n if (typeof data === 'string') {\n return new TextEncoder().encode(data)\n }\n if (data instanceof ArrayBuffer) {\n return new Uint8Array(data)\n }\n if (typeof Buffer !== 'undefined' && data instanceof Buffer) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength)\n }\n if (data instanceof Blob) {\n return new Uint8Array(await data.arrayBuffer())\n }\n throw new TypeError('[BinaryUtils] toUint8Array: 不支援的資料類型')\n }\n\n /**\n * 將各種資料類型轉換為 ArrayBuffer\n * @param data - 輸入資料\n * @returns ArrayBuffer\n * @public\n */\n static async toArrayBuffer(\n data: Blob | Buffer | string | Uint8Array | ArrayBuffer\n ): Promise<ArrayBuffer> {\n if (data instanceof ArrayBuffer) {\n return data\n }\n const bytes = await BinaryUtils.toUint8Array(data as Blob | Buffer | string | Uint8Array)\n return bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength) as ArrayBuffer\n }\n\n /**\n * 將 Uint8Array 編碼為 Base64 字串\n * 在 Bun 環境中使用原生 toBase64(),否則使用 Buffer\n * @param data - 輸入的 Uint8Array\n * @returns Base64 字串\n * @public\n */\n static toBase64(data: Uint8Array): string {\n if (data.length === 0) {\n return ''\n }\n const bunTyped = data as Uint8Array & { toBase64?: () => string }\n if (typeof bunTyped.toBase64 === 'function') {\n return bunTyped.toBase64()\n }\n if (typeof Buffer !== 'undefined') {\n return Buffer.from(data).toString('base64')\n }\n let binary = ''\n for (let i = 0; i < data.length; i++) {\n binary += String.fromCharCode(data[i] as number)\n }\n return btoa(binary)\n }\n\n /**\n * 將 Base64 字串解碼為 Uint8Array\n * @param base64 - Base64 字串\n * @returns Uint8Array\n * @public\n */\n static fromBase64(base64: string): Uint8Array {\n if (!base64 || base64.length === 0) {\n return new Uint8Array(0)\n }\n const BunUint8Array = Uint8Array as typeof Uint8Array & {\n fromBase64?: (s: string) => Uint8Array\n }\n if (typeof BunUint8Array.fromBase64 === 'function') {\n return BunUint8Array.fromBase64(base64)\n }\n if (typeof Buffer !== 'undefined') {\n const buf = Buffer.from(base64, 'base64')\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength)\n }\n const binary = atob(base64)\n const bytes = new Uint8Array(binary.length)\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i)\n }\n return bytes\n }\n\n /**\n * 將 Uint8Array 編碼為 Base64URL 字串(URL 安全,無填充)\n * @param data - 輸入的 Uint8Array\n * @returns Base64URL 字串\n * @public\n */\n static toBase64Url(data: Uint8Array): string {\n if (data.length === 0) {\n return ''\n }\n // 使用 Node.js Buffer 或標準 Base64 並進行轉換\n const base64 = BinaryUtils.toBase64(data)\n return base64.replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=/g, '')\n }\n\n /**\n * 將 Base64URL 字串解碼為 Uint8Array\n * @param base64url - Base64URL 字串\n * @returns Uint8Array\n * @public\n */\n static fromBase64Url(base64url: string): Uint8Array {\n if (!base64url || base64url.length === 0) {\n return new Uint8Array(0)\n }\n const BunUint8Array = Uint8Array as typeof Uint8Array & {\n fromBase64?: (s: string, opts?: { alphabet?: string }) => Uint8Array\n }\n if (typeof BunUint8Array.fromBase64 === 'function') {\n return BunUint8Array.fromBase64(base64url, { alphabet: 'base64url' })\n }\n const base64 = base64url.replace(/-/g, '+').replace(/_/g, '/')\n const padded = base64.padEnd(base64.length + ((4 - (base64.length % 4)) % 4), '=')\n return BinaryUtils.fromBase64(padded)\n }\n\n /**\n * 將 Uint8Array 編碼為十六進制字串\n * 在 Bun 環境中使用原生 toHex(),否則使用 Buffer\n * @param data - 輸入的 Uint8Array\n * @returns 十六進制字串(小寫)\n * @public\n */\n static toHex(data: Uint8Array): string {\n if (data.length === 0) {\n return ''\n }\n const bunTyped = data as Uint8Array & { toHex?: () => string }\n if (typeof bunTyped.toHex === 'function') {\n return bunTyped.toHex()\n }\n if (typeof Buffer !== 'undefined') {\n return Buffer.from(data).toString('hex')\n }\n return Array.from(data)\n .map((b) => b.toString(16).padStart(2, '0'))\n .join('')\n }\n\n /**\n * 將十六進制字串解碼為 Uint8Array\n * @param hex - 十六進制字串\n * @returns Uint8Array\n * @throws {TypeError} 如果輸入不是有效的十六進制字串\n * @public\n */\n static fromHex(hex: string): Uint8Array {\n if (!hex || hex.length === 0) {\n return new Uint8Array(0)\n }\n if (hex.length % 2 !== 0) {\n throw new TypeError(\n `[BinaryUtils] fromHex: 十六進制字串長度必須為偶數,收到長度 ${hex.length}`\n )\n }\n if (!/^[0-9a-fA-F]+$/.test(hex)) {\n throw new TypeError('[BinaryUtils] fromHex: 輸入包含無效的十六進制字元')\n }\n const BunUint8Array = Uint8Array as typeof Uint8Array & {\n fromHex?: (s: string) => Uint8Array\n }\n if (typeof BunUint8Array.fromHex === 'function') {\n return BunUint8Array.fromHex(hex)\n }\n if (typeof Buffer !== 'undefined') {\n const buf = Buffer.from(hex, 'hex')\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength)\n }\n const bytes = new Uint8Array(hex.length / 2)\n for (let i = 0; i < bytes.length; i++) {\n bytes[i] = parseInt(hex.substring(i * 2, i * 2 + 2), 16)\n }\n return bytes\n }\n\n /**\n * 使用 gzip 壓縮資料\n * 在 Bun 環境中使用原生 Bun.gzipSync(),在 Node.js 中使用 zlib\n * @param data - 輸入資料\n * @param level - 壓縮等級(0-9),預設為 6\n * @returns 壓縮後的 Uint8Array\n * @public\n */\n static async gzip(data: Uint8Array, level = 6): Promise<Uint8Array> {\n if (data.length === 0) {\n return data\n }\n if (isBunRuntime()) {\n const bunGlobal = (globalThis as Record<string, unknown>).Bun as {\n gzipSync?: (data: Uint8Array, opts?: { level?: number }) => Uint8Array\n }\n if (typeof bunGlobal?.gzipSync === 'function') {\n return bunGlobal.gzipSync(data, { level })\n }\n }\n const { gzipSync } = await import('node:zlib')\n const result = gzipSync(data, { level })\n return new Uint8Array(result.buffer, result.byteOffset, result.byteLength)\n }\n\n /**\n * 解壓縮 gzip 資料\n * 在 Bun 環境中使用原生 Bun.gunzipSync(),在 Node.js 中使用 zlib\n * @param data - gzip 壓縮的 Uint8Array\n * @returns 解壓縮後的 Uint8Array\n * @public\n */\n static async gunzip(data: Uint8Array): Promise<Uint8Array> {\n if (data.length === 0) {\n return data\n }\n if (isBunRuntime()) {\n const bunGlobal = (globalThis as Record<string, unknown>).Bun as {\n gunzipSync?: (data: Uint8Array) => Uint8Array\n }\n if (typeof bunGlobal?.gunzipSync === 'function') {\n return bunGlobal.gunzipSync(data)\n }\n }\n const { gunzipSync } = await import('node:zlib')\n const result = gunzipSync(data)\n return new Uint8Array(result.buffer, result.byteOffset, result.byteLength)\n }\n\n /**\n * 將 ReadableStream<Uint8Array> 讀取為 Uint8Array\n * 在 Bun 環境中使用原生 Bun.readableStreamToBytes(),否則手動讀取 chunks\n * @param stream - 輸入的 ReadableStream\n * @returns Uint8Array\n * @public\n */\n static async readableStreamToBytes(stream: ReadableStream<Uint8Array>): Promise<Uint8Array> {\n if (isBunRuntime()) {\n const bunGlobal = (globalThis as Record<string, unknown>).Bun as {\n readableStreamToBytes?: (\n stream: ReadableStream<Uint8Array>\n ) => Promise<Uint8Array | ArrayBuffer>\n }\n if (typeof bunGlobal?.readableStreamToBytes === 'function') {\n const result = await bunGlobal.readableStreamToBytes(stream)\n // 如果返回 ArrayBuffer,轉換為 Uint8Array\n if (result instanceof ArrayBuffer) {\n return new Uint8Array(result)\n }\n return result as Uint8Array\n }\n }\n const chunks: Uint8Array[] = []\n let totalLength = 0\n const reader = stream.getReader()\n try {\n while (true) {\n const { done, value } = await reader.read()\n if (done) {\n break\n }\n if (value) {\n chunks.push(value)\n totalLength += value.length\n }\n }\n } finally {\n reader.releaseLock()\n }\n const result = new Uint8Array(totalLength)\n let offset = 0\n for (const chunk of chunks) {\n result.set(chunk, offset)\n offset += chunk.length\n }\n return result\n }\n\n /**\n * 將 ReadableStream<Uint8Array> 讀取為 ArrayBuffer\n * @param stream - 輸入的 ReadableStream\n * @returns ArrayBuffer\n * @public\n */\n static async readableStreamToArrayBuffer(\n stream: ReadableStream<Uint8Array>\n ): Promise<ArrayBuffer> {\n const bytes = await BinaryUtils.readableStreamToBytes(stream)\n return bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength) as ArrayBuffer\n }\n}\n",
|
|
162
172
|
"/// <reference types=\"bun-types\" />\n/**\n * @gravito/core\n *\n * The core micro-kernel for the Galaxy Architecture.\n *\n * @packageDocumentation\n */\n\n// Export version from package.json\nimport packageJson from '../package.json'\nimport type { GravitoConfig } from './PlanetCore'\n\n/**\n * Current version of @gravito/core.\n * @public\n */\nexport const VERSION = packageJson.version\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Gravito HTTP Abstractions (v2.0 - Adapter Pattern)\n// These types enable swapping out the underlying HTTP engine.\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Bun-native HTTP adapter for Gravito.\n *\n * Provides high-performance HTTP handling using Bun's native Request/Response API.\n * Implements the HttpAdapter interface for direct integration with Gravito applications.\n *\n * @see {@link GravitoEngineAdapter} for alternative adapter implementations\n * @public\n */\nexport { BunNativeAdapter } from './adapters/bun/BunNativeAdapter'\n\n/**\n * Generic HTTP adapter bridge for Gravito.\n *\n * Allows swapping out HTTP engines (Hono, Elysia, etc.) by implementing the HttpAdapter\n * interface. Use this when you need a different runtime or framework integration.\n *\n * @see {@link BunNativeAdapter} for the recommended Bun-native implementation\n * @public\n */\nexport { GravitoEngineAdapter } from './adapters/GravitoEngineAdapter'\n\n/**\n * HTTP adapter type definitions and utilities.\n *\n * Type definitions for building custom HTTP adapters and checking adapter compatibility.\n *\n * @public\n */\nexport type { AdapterConfig, AdapterFactory, HttpAdapter, RouteDefinition } from './adapters/types'\n\n/**\n * Type guard for HTTP adapter validation.\n *\n * @param obj - Object to check\n * @returns true if object implements the HttpAdapter interface\n * @example\n * ```typescript\n * if (isHttpAdapter(config.adapter)) {\n * const adapter = config.adapter as HttpAdapter\n * }\n * ```\n * @public\n */\nexport { isHttpAdapter } from './adapters/types'\n\n/**\n * Gravito HTTP request/response types and constants.\n *\n * Type definitions for HTTP methods, status codes, context objects, handlers, and middleware.\n * These types are fundamental to routing and request handling in Gravito applications.\n *\n * @public\n */\nexport type {\n ContentfulStatusCode,\n GravitoContext,\n GravitoErrorHandler,\n GravitoHandler,\n GravitoMiddleware,\n GravitoNext,\n GravitoNotFoundHandler,\n GravitoRequest,\n GravitoVariables,\n HttpMethod,\n ProxyOptions,\n StatusCode,\n ValidationTarget,\n} from './http/types'\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Core Exports\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Enterprise-grade application container with DI, middleware, and plugin support.\n *\n * Application provides a high-level abstraction for building modular Gravito apps with\n * dependency injection, service configuration, middleware chains, and extensibility hooks.\n * Use this for complex applications; use {@link PlanetCore} for HTTP server bootstrapping.\n *\n * @example\n * ```typescript\n * const app = new Application({ config: myConfig })\n * app.register(MyOrbit)\n * app.bind('myService', () => new MyService())\n * ```\n * @public\n */\nexport { Application, type ApplicationConfig } from './Application'\n\n/**\n * Command kernel for CLI command registration and execution.\n *\n * Manages command handlers, argument parsing, and command lifecycle in CLI contexts.\n * Typically used internally by Gravito; extend via custom commands registered with the kernel.\n *\n * @public\n */\nexport { type CommandHandler, CommandKernel } from './CommandKernel'\n\n/**\n * Configuration manager for environment-aware application settings.\n *\n * Provides centralized config management with support for environment variables,\n * config files, defaults, and type-safe access patterns. All configs are immutable.\n *\n * @example\n * ```typescript\n * const appName = config.get('APP_NAME', 'DefaultApp')\n * const dbUrl = config.get('DATABASE_URL')\n * ```\n * @public\n */\nexport { ConfigManager } from './ConfigManager'\n\n/**\n * Dependency injection container for service resolution and lifecycle management.\n *\n * Core singleton/transient resolver with support for factory functions, constructor injection,\n * and service binding. All resolved instances are immutably cached.\n *\n * @example\n * ```typescript\n * const container = new Container()\n * container.bind('logger', () => new ConsoleLogger())\n * const logger = container.resolve('logger')\n * ```\n * @public\n */\nexport { Container, type Factory, type ServiceKey, type ServiceMap } from './Container'\n\n/**\n * Request-scoped instance manager for HTTP request lifecycle.\n *\n * Manages transient services and cleanup that are tied to individual HTTP requests.\n * Automatically integrates with Gravito's middleware pipeline for scope isolation.\n *\n * @public\n */\nexport { RequestScopeManager } from './Container/RequestScopeManager'\n\n/**\n * Request scope metrics collection and analysis.\n *\n * Tracks memory usage, instance counts, and lifecycle metrics for request-scoped services.\n * Provides observability into container behavior and potential memory leaks.\n *\n * @public\n */\nexport {\n RequestScopeMetrics,\n RequestScopeMetricsCollector,\n type RequestScopeObserver,\n} from './Container/RequestScopeMetrics'\n\n/**\n * CLI queue command registration utilities.\n *\n * Provides helpers for registering queue-related commands (queue:work, queue:retry, etc.)\n * into the Gravito CLI framework.\n *\n * @public\n */\nexport { registerQueueCommands } from './cli/queue-commands'\n\n/**\n * Centralized HTTP error handler with status code management.\n *\n * Converts HTTP status codes to error responses with appropriate messages.\n * Used internally by the HTTP layer and exception handlers.\n *\n * @public\n */\nexport {\n codeFromStatus,\n ErrorHandler,\n type ErrorHandlerDeps,\n messageFromStatus,\n} from './ErrorHandler'\n\n/**\n * Event manager for application-level event dispatching and listener registration.\n *\n * Provides type-safe event system with support for synchronous listeners and\n * async queue-based listeners. Integrates with the event queue infrastructure.\n *\n * @example\n * ```typescript\n * core.events.listen(UserCreated, SendWelcomeEmail)\n * await core.events.dispatch(new UserCreated(user))\n * ```\n * @public\n */\nexport { EventManager } from './EventManager'\n/**\n * Request scope error handling utilities for memory safety.\n *\n * Provides cleanup functions, leak detection, and error context extraction\n * to prevent memory leaks and ensure proper resource disposal on request completion.\n * Use these in custom middleware or error handlers for enhanced reliability.\n *\n * @public\n */\nexport {\n cleanupRequestScopeOnError,\n detectRequestScopeLeaks,\n extractRequestScopeErrorContext,\n RequestScopeCleanupError,\n type RequestScopeErrorContext,\n withRequestScopeCleanup,\n} from './error-handling/RequestScopeErrorContext'\n/**\n * High-reliability event queue infrastructure with backpressure, circuit breaking, and flow control.\n *\n * Complete async event processing system with queue prioritization, retry logic, dead-letter queue,\n * worker pool management, backpressure handling, and circuit breaker patterns for system stability.\n * Handles millions of events with guaranteed delivery and failure recovery.\n *\n * Key components:\n * - EventPriorityQueue: Multi-priority async queue with backpressure\n * - CircuitBreaker: Fault tolerance with automatic recovery\n * - DeadLetterQueue: Failed event capture and replay\n * - WorkerPool: Concurrent task execution with metrics\n * - BackpressureManager: Flow control to prevent overload\n *\n * @example\n * ```typescript\n * const queue = new EventPriorityQueue(config)\n * await queue.enqueue('high-priority', task)\n * const metrics = queue.metrics()\n * ```\n * @public\n */\nexport type {\n BackpressureConfig,\n BackpressureDecision,\n BackpressureMetricsSnapshot,\n BackpressureStrategy,\n CircuitBreakerMetrics,\n CircuitBreakerMetricsRecorder,\n CircuitBreakerOptions,\n DeadLetterDecision,\n DLQEntry,\n DLQEntryCallback,\n DLQEntrySource,\n DLQFilter,\n EventBackend,\n EventOptions,\n EventQueueConfig,\n EventTask,\n FlowControlContext,\n FlowControlStrategy,\n MultiPriorityQueueDepth,\n PriorityStatistics,\n RetrySchedulerConfig,\n WindowAdjustment,\n WorkerPoolConfig,\n WorkerPoolStats,\n WorkerStats,\n} from './events'\n\n// Event system implementations (see types above)\nexport {\n BackpressureManager,\n BackpressureState,\n CircuitBreaker,\n CircuitBreakerState,\n CompositeStrategy,\n DEFAULT_EVENT_OPTIONS,\n DeadLetterQueue,\n EventPriorityQueue,\n IdempotencyCache,\n PriorityEscalationManager,\n PriorityRebalanceStrategy,\n QueueDepthStrategy,\n RateLimitStrategy,\n RetryScheduler,\n StarvationProtectionStrategy,\n WorkerPool,\n WorkerPoolMetrics,\n} from './events'\n/**\n * Event system observability and metrics collection.\n *\n * Built-in tracing, metrics, and performance monitoring for event queues and workers.\n * Provides hooks into queue operations for custom instrumentation via OpenTelemetry.\n *\n * @public\n */\nexport type {\n EventTracingConfig,\n ObservabilityConfig,\n QueueDepthCallback,\n} from './events/observability'\n\n// Event observability implementations (see types above)\nexport {\n EventMetrics,\n EventTracer,\n EventTracing,\n getEventTracing,\n ObservableHookManager,\n OTelEventMetrics,\n} from './events/observability'\n\n/**\n * Observability provider contracts for monitoring and tracing.\n *\n * Abstract interfaces for building custom observability integrations with\n * OpenTelemetry, monitoring systems, or custom tracing implementations.\n * Concrete implementations are provided by @gravito/monitor.\n *\n * @see https://github.com/gravitojs/gravito-monitor\n * @public\n */\nexport type {\n EventMetricsRecorder,\n EventTracingProvider,\n ObservabilityProvider,\n TracingSpan,\n WorkerMetricsProvider,\n} from './observability/contracts'\n\n/**\n * No-operation observability provider for testing and development.\n *\n * Returns a noop provider that satisfies the ObservabilityProvider interface\n * without performing actual tracing or metrics collection. Useful for development\n * environments or when observability is not needed.\n *\n * @returns A noop ObservabilityProvider instance\n * @public\n */\nexport { createNoOpObservabilityProvider } from './observability/contracts'\n\n/**\n * Real-time queue dashboard for monitoring event processing.\n *\n * Provides a web-based and CLI dashboard for monitoring queue depth, worker status,\n * error rates, throughput, and other metrics. Useful for operational visibility\n * and debugging queue performance issues.\n *\n * @public\n */\nexport {\n type DashboardSnapshot,\n type ErrorStats,\n type JobEvent,\n QueueDashboard,\n type QueueDashboardConfig,\n type QueueMetrics,\n type WorkerMetrics as QueueWorkerMetrics,\n} from './observability/QueueDashboard'\n\n// ─────────────────────────────────────────────────────────────────────────────\n// OpenTelemetry Instrumentation\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Built-in HTTP exception classes for common error scenarios.\n *\n * Pre-defined exception classes (BadRequestException, UnauthorizedException, NotFoundException, etc.)\n * that automatically map to correct HTTP status codes. Extend HttpException for custom domain errors.\n *\n * @public\n */\nexport * from './exceptions'\n\n/**\n * Global process error handler registration for uncaught exceptions and rejections.\n *\n * Registers handlers for process-level errors (unhandledRejection, uncaughtException) that occur\n * outside of HTTP request context. Enables centralized error reporting, logging, and recovery.\n *\n * @example\n * ```typescript\n * registerGlobalErrorHandlers({\n * onUnhandledRejection: (error) => logger.error('Rejection:', error),\n * onUncaughtException: (error) => process.exit(1),\n * })\n * ```\n * @public\n */\nexport {\n type GlobalErrorHandlersMode,\n type GlobalProcessErrorHandlerContext,\n type GlobalProcessErrorKind,\n type RegisterGlobalErrorHandlersOptions,\n registerGlobalErrorHandlers,\n} from './GlobalErrorHandlers'\n\n/**\n * Gravito server bootstrap and lifecycle management.\n *\n * Provides the main server instance with configuration, port binding, graceful shutdown,\n * and signal handling. Use {@link PlanetCore} for most applications; use GravitoServer\n * when you need lower-level HTTP server control.\n *\n * @public\n */\nexport { type GravitoManifest, GravitoServer } from './GravitoServer'\n\n/**\n * Hook system for extensibility and event-driven architecture.\n *\n * Provides action hooks (filters) and listener hooks (listeners) that allow plugins\n * and custom code to tap into framework lifecycle events. Supports async handlers\n * and conditional execution.\n *\n * @example\n * ```typescript\n * const hooks = new HookManager()\n * hooks.addAction('user:created', async (user) => {\n * await sendWelcomeEmail(user)\n * })\n * ```\n * @public\n */\nexport type { ActionCallback, FilterCallback, ListenerInfo, ListenerOptions } from './HookManager'\nexport { HookManager, type HookManagerConfig } from './HookManager'\n/**\n * Application health check provider for readiness and liveness probes.\n *\n * Enables custom health checks for database connectivity, cache availability, and other\n * dependencies. Integrates with Kubernetes and load balancer health endpoints.\n *\n * @public\n */\nexport type { HealthCheck, HealthCheckResult } from './health/HealthProvider'\nexport { HealthProvider } from './health/HealthProvider'\n\nexport type { DumpOptions } from './helpers'\n\n/**\n * Developer-friendly utility functions and helper classes.\n *\n * Collection of utilities for common tasks: array/string manipulation (Arr, Str),\n * value resolution (value, tap), assertions (abort, throwIf, throwUnless),\n * debugging (dump, dd), and service access (app, config, env, logger, router).\n *\n * @public\n */\nexport {\n Arr,\n abort,\n abortIf,\n abortUnless,\n app,\n blank,\n config,\n DumpDieError,\n dd,\n dump,\n env,\n filled,\n hasApp,\n logger,\n router,\n Str,\n setApp,\n tap,\n throwIf,\n throwUnless,\n value,\n} from './helpers'\n\n/**\n * Helper utilities for data transformation and validation.\n * @public\n */\nexport * from './helpers/data'\n\n/**\n * Error creation and handling helpers.\n * @public\n */\nexport * from './helpers/errors'\n\n/**\n * HTTP response building helpers.\n * @public\n */\nexport * from './helpers/response'\n\n/**\n * Cookie jar and cookie management utilities.\n *\n * Provides CookieJar class for cookie-set operations and helper functions\n * (getCookie, setCookie, deleteCookie) for cookie manipulation in requests/responses.\n *\n * @example\n * ```typescript\n * setCookie(ctx, 'sessionId', token, { httpOnly: true, sameSite: 'Strict' })\n * const value = getCookie(ctx, 'sessionId')\n * ```\n * @public\n */\nexport { CookieJar, type CookieOptions } from './http/CookieJar'\nexport { deleteCookie, getCookie, setCookie } from './http/cookie'\n// HTTP Middleware moved to @gravito/photon/middleware (Phase 2.1)\n// - bodySizeLimit → @gravito/photon/middleware/body\n// - cors → @gravito/photon/middleware/cors\n// - csrfProtection, getCsrfToken → @gravito/photon/middleware/security\n// - createHeaderGate, requireHeaderToken → @gravito/photon/middleware/security\n// - securityHeaders → @gravito/photon/middleware/security\n// - throttleRequests (was ThrottleRequests) → @gravito/photon/middleware/rate-limit\n// OpenTelemetry exports moved to @gravito/monitor (Phase 2.2)\n// Import from @gravito/monitor for OTel functionality\n/**\n * Event listener interface for asynchronous event handling.\n *\n * Listeners handle dispatched events synchronously or asynchronously. Implement ShouldQueue\n * to enable queue-based execution with retry and delay support.\n *\n * @public\n */\nexport type { Listener, ShouldQueue } from './Listener'\n\n/**\n * Structured logging interface and default console implementation.\n *\n * Standard PSR-3-inspired logger interface (debug, info, warn, error methods)\n * enables swapping implementations (Winston, Pino, etc.). ConsoleLogger provides\n * a basic console-based implementation suitable for development.\n *\n * @public\n */\nexport type { Logger } from './Logger'\nexport { ConsoleLogger } from './Logger'\n\n/**\n * Main application kernel and HTTP server bootstrap.\n *\n * PlanetCore is the entry point for Gravito applications. It handles service registration,\n * middleware setup, route definitions, event binding, and server lifecycle. Use PlanetCore.boot()\n * to initialize a complete application.\n *\n * @example\n * ```typescript\n * const core = await PlanetCore.boot(config)\n * core.listen(3000)\n * ```\n * @public\n */\nexport {\n type CacheService,\n type ErrorHandlerContext,\n type GravitoConfig,\n type GravitoOrbit,\n PlanetCore,\n type ViewService,\n} from './PlanetCore'\n\n/**\n * Request context carrier for per-request state and data.\n *\n * Provides type-safe storage for request-scoped data (user, tracing context, etc.)\n * with automatic cleanup. Integrates with request scope management.\n *\n * @public\n */\nexport {\n RequestContext,\n type RequestContextData,\n} from './RequestContext'\n\n/**\n * HTTP route definition and registration.\n *\n * Route represents a single HTTP route with its handler, middleware, and metadata.\n * Use Router to register routes; Route provides the chainable registration API.\n *\n * @public\n */\nexport { Route } from './Route'\n\n/**\n * HTTP routing system with controller and handler support.\n *\n * Provides fluent API for route registration (GET, POST, etc.), middleware attachment,\n * route groups, and controller method dispatch. Supports form request validation,\n * domain constraints, and nested groups.\n *\n * @example\n * ```typescript\n * router.get('/users', [UserController, 'index'])\n * router.post('/users', UserStoreRequest, [UserController, 'store'])\n *\n * router.group({ prefix: '/api' }, (r) => {\n * r.get('/posts', [PostController, 'index'])\n * })\n * ```\n * @public\n */\nexport {\n type ControllerClass,\n FORM_REQUEST_SYMBOL,\n type FormRequestClass,\n type FormRequestLike,\n RouteGroup,\n type RouteHandler,\n type RouteOptions,\n Router,\n} from './Router'\n\n/**\n * Dead-letter queue management and retry policy configuration.\n *\n * Handles failed events that cannot be processed. Provides DLQ inspection, replay,\n * and filtering. Integrates with RetryScheduler for automatic retries.\n *\n * @public\n */\nexport type { DLQManagerFilter, DLQRecord, DLQStats, RetryPolicy } from './reliability'\n\n// DLQ implementations (see types above)\nexport {\n DeadLetterQueueManager,\n getDefaultRetryPolicy,\n getPresetRetryPolicy,\n RetryEngine,\n} from './reliability'\n\n/**\n * Service provider for application bootstrap and service registration.\n *\n * Base class for extending Gravito with custom service bindings, event listeners,\n * and middleware registration. Providers are automatically loaded during application boot.\n *\n * @example\n * ```typescript\n * class MyServiceProvider extends ServiceProvider {\n * register() {\n * this.app.bind('cache', () => new RedisCache())\n * }\n * boot() {\n * const cache = this.app.resolve('cache')\n * }\n * }\n * ```\n * @public\n */\nexport { ServiceProvider } from './ServiceProvider'\n\n/**\n * Encryption service for secure data handling.\n *\n * Provides AES-256 encryption for sensitive data with key derivation from app key.\n * Automatically handles IV generation and verification.\n *\n * @public\n */\nexport { Encrypter, type EncrypterOptions } from './security/Encrypter'\n\n/**\n * Event base class and broadcast channel types.\n *\n * Event is the base class for application events. Implement ShouldBroadcast\n * to enable real-time broadcasting to connected clients.\n *\n * @example\n * ```typescript\n * class UserCreated extends Event {\n * constructor(public user: User) { super() }\n * }\n * ```\n * @public\n */\nexport type { Channel, ShouldBroadcast } from './types/events'\nexport { Event } from './types/events'\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Testing Utilities\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Testing utilities and test helpers for unit and integration tests.\n * @public\n */\nexport * from './testing'\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Runtime Adapters\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Runtime abstraction layer for cross-platform compatibility (Bun, Node, Deno).\n *\n * Provides adapters for file I/O, compression, markdown rendering, password hashing,\n * SQLite database, and archive operations. Automatically detects runtime and loads\n * the appropriate implementation. Ensures code portability across Bun, Node.js, and Deno.\n *\n * @example\n * ```typescript\n * const adapter = getRuntimeAdapter()\n * const fs = adapter.fs\n * const data = await fs.readText('file.txt')\n * ```\n * @public\n */\nexport {\n type ArchiveCreateOptions,\n type ArchiveEntry,\n type ArchiveExtractOptions,\n type ArchiveFileInfo,\n type ArchiveFromDirectoryOptions,\n archiveFromDirectory,\n type CompressionOptions,\n createHtmlRenderCallbacks,\n createSqliteDatabase,\n type EscapeHtmlFn,\n getArchiveAdapter,\n getCompressionAdapter,\n getEscapeHtml,\n getMarkdownAdapter,\n getPasswordAdapter,\n getRuntimeAdapter,\n getRuntimeEnv,\n getRuntimeKind,\n type MarkdownRenderCallbacks,\n type MarkdownRenderOptions,\n type RuntimeAdapter,\n type RuntimeArchiveAdapter,\n type RuntimeCompressionAdapter,\n type RuntimeFileSink,\n type RuntimeFileStat,\n type RuntimeKind,\n type RuntimeMarkdownAdapter,\n type RuntimePasswordAdapter,\n type RuntimeProcess,\n type RuntimeProcessOutput,\n type RuntimeResourceUsage,\n type RuntimeServeConfig,\n type RuntimeServer,\n type RuntimeSpawnOptions,\n type RuntimeSpawnSyncResult,\n type RuntimeSqliteDatabase,\n type RuntimeSqliteStatement,\n resetRuntimeAdapter,\n toUint8Array,\n} from './runtime'\n\n/**\n * Runtime helper functions for file system operations.\n *\n * Convenience functions for common file operations: read/write/append/rename,\n * directory creation/reading, JSON parsing, and recursive deletion.\n * All functions abstract away platform differences.\n *\n * @public\n */\nexport {\n getDefaultRuntimeAdapter,\n runtimeAppendFile,\n runtimeCreateFileSink,\n runtimeMkdir,\n runtimeReadDir,\n runtimeReadJSON,\n runtimeReadText,\n runtimeRemoveRecursive,\n runtimeRename,\n runtimeStatFull,\n runtimeWriteFileExclusive,\n} from './runtime-helpers'\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Deep Equals & Binary Utilities\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Binary data utilities and deep equality comparison.\n *\n * BinaryUtils provides utilities for binary data handling. Deep equality checking\n * enables structural comparison of complex objects across runtime environments.\n *\n * @public\n */\nexport { BinaryUtils } from './binary'\n\n/**\n * Deep equality comparison for complex objects and values.\n *\n * Provides customizable deep equality checking that handles circular references,\n * custom equality functions, and type-specific comparisons.\n *\n * @public\n */\nexport type { DeepEqualsFn, DeepEqualsOptions } from './runtime/deep-equals'\nexport { getDeepEquals } from './runtime/deep-equals'\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Standalone Engine (High-Performance Bun-Only Engine)\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Native Bun HTTP engine for maximum performance.\n *\n * High-performance standalone HTTP server implementation using Bun's native APIs.\n * Available via @gravito/core/engine import path for direct usage without PlanetCore.\n * Use this when you need raw performance and are targeting Bun runtime.\n *\n * @see {@link PlanetCore} for the full-featured application framework\n * @public\n */\nexport * as engine from './engine'\n\n// ─────────────────────────────────────────────────────────────────────────────\n// FFI (Foreign Function Interface) - Native Acceleration Layer\n// Re-export via @gravito/core/ffi to avoid compile-time FFI initialization\n// ─────────────────────────────────────────────────────────────────────────────\n// Note: Import via `import { NativeAccelerator } from '@gravito/core/ffi'`\n// Do NOT import directly from main entry to avoid compile-time FFI loading\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Configuration Helper\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Configure your Gravito application with type safety.\n *\n * Helper function that validates and returns application configuration.\n * Enables IDE autocomplete and type checking for GravitoConfig.\n *\n * @param config - Application configuration object\n * @returns The same config object, type-validated\n *\n * @example\n * ```typescript\n * const config = defineConfig({\n * config: {\n * APP_NAME: 'My App',\n * PORT: 3000,\n * },\n * orbits: [], // Add your orbits here\n * })\n *\n * const core = await PlanetCore.boot(config)\n * ```\n * @public\n */\nexport function defineConfig(config: GravitoConfig): GravitoConfig {\n return config\n}\n\n/**\n * Bun platform-specific adapters and utilities.\n * @public\n */\nexport * from './adapters/bun/index'\n"
|
|
163
173
|
],
|
|
164
|
-
"mappings": "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",
|
|
165
|
-
"debugId": "
|
|
174
|
+
"mappings": "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",
|
|
175
|
+
"debugId": "182898C607162D4164756E2164756E21",
|
|
166
176
|
"names": []
|
|
167
177
|
}
|