@gravito/ripple 4.0.1 → 5.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.
Files changed (226) hide show
  1. package/README.md +26 -10
  2. package/dist/{ripple/src/OrbitRipple.d.ts → OrbitRipple.d.ts} +1 -0
  3. package/dist/{ripple/src/RippleServer.d.ts → RippleServer.d.ts} +32 -1
  4. package/dist/core/src/Application.d.ts +41 -0
  5. package/dist/core/src/HookManager.d.ts +33 -189
  6. package/dist/core/src/PlanetCore.d.ts +31 -1
  7. package/dist/core/src/Router.d.ts +32 -46
  8. package/dist/core/src/adapters/bun/BunContext.d.ts +6 -1
  9. package/dist/core/src/adapters/bun/BunNativeAdapter.d.ts +35 -0
  10. package/dist/core/src/adapters/bun/BunWebSocketHandler.d.ts +48 -0
  11. package/dist/core/src/adapters/bun/RadixRouter.d.ts +1 -0
  12. package/dist/core/src/adapters/bun/index.d.ts +7 -0
  13. package/dist/core/src/binary/BinaryUtils.d.ts +105 -0
  14. package/dist/core/src/binary/index.d.ts +5 -0
  15. package/dist/core/src/compat/async-local-storage.d.ts +7 -0
  16. package/dist/core/src/compat/crypto.d.ts +6 -0
  17. package/dist/core/src/engine/AOTRouter.d.ts +10 -0
  18. package/dist/core/src/engine/FastContext.d.ts +19 -1
  19. package/dist/core/src/engine/Gravito.d.ts +13 -18
  20. package/dist/core/src/engine/MinimalContext.d.ts +2 -0
  21. package/dist/core/src/engine/analyzer.d.ts +92 -6
  22. package/dist/core/src/engine/types.d.ts +3 -0
  23. package/dist/core/src/events/CircuitBreaker.d.ts +12 -0
  24. package/dist/core/src/events/EventPriorityQueue.d.ts +18 -256
  25. package/dist/core/src/events/index.d.ts +12 -11
  26. package/dist/core/src/events/queue-core.d.ts +77 -0
  27. package/dist/core/src/events/task-executor.d.ts +51 -0
  28. package/dist/core/src/exceptions/AuthException.d.ts +10 -0
  29. package/dist/core/src/exceptions/AuthenticationException.d.ts +2 -2
  30. package/dist/core/src/exceptions/AuthorizationException.d.ts +2 -2
  31. package/dist/core/src/exceptions/CacheException.d.ts +9 -0
  32. package/dist/core/src/exceptions/CircularDependencyException.d.ts +2 -1
  33. package/dist/core/src/exceptions/ConfigurationException.d.ts +9 -0
  34. package/dist/core/src/exceptions/DatabaseException.d.ts +9 -0
  35. package/dist/core/src/exceptions/DomainException.d.ts +9 -0
  36. package/dist/core/src/exceptions/InfrastructureException.d.ts +17 -0
  37. package/dist/core/src/exceptions/QueueException.d.ts +9 -0
  38. package/dist/core/src/exceptions/StorageException.d.ts +9 -0
  39. package/dist/core/src/exceptions/StreamException.d.ts +9 -0
  40. package/dist/core/src/exceptions/SystemException.d.ts +9 -0
  41. package/dist/core/src/exceptions/ValidationException.d.ts +2 -2
  42. package/dist/core/src/exceptions/index.d.ts +10 -0
  43. package/dist/core/src/ffi/NativeAccelerator.d.ts +62 -0
  44. package/dist/core/src/ffi/NativeHasher.d.ts +139 -0
  45. package/dist/core/src/ffi/cbor-fallback.d.ts +96 -0
  46. package/dist/core/src/ffi/hash-fallback.d.ts +33 -0
  47. package/dist/core/src/ffi/index.d.ts +10 -0
  48. package/dist/core/src/ffi/types.d.ts +135 -0
  49. package/dist/core/src/helpers/Str.d.ts +15 -0
  50. package/dist/core/src/hooks/ActionManager.d.ts +132 -0
  51. package/dist/core/src/hooks/AsyncDetector.d.ts +84 -0
  52. package/dist/core/src/hooks/FilterManager.d.ts +71 -0
  53. package/dist/core/src/hooks/MigrationWarner.d.ts +24 -0
  54. package/dist/core/src/hooks/dlq-operations.d.ts +60 -0
  55. package/dist/core/src/hooks/types.d.ts +107 -0
  56. package/dist/core/src/http/CookieJar.d.ts +2 -2
  57. package/dist/core/src/http/types.d.ts +24 -3
  58. package/dist/core/src/index.d.ts +491 -14
  59. package/dist/core/src/observability/contracts.d.ts +137 -0
  60. package/dist/core/src/reliability/DeadLetterQueueManager.d.ts +2 -3
  61. package/dist/core/src/runtime/adapter-bun.d.ts +12 -0
  62. package/dist/core/src/runtime/adapter-deno.d.ts +12 -0
  63. package/dist/core/src/runtime/adapter-node.d.ts +12 -0
  64. package/dist/core/src/runtime/adapter-unknown.d.ts +13 -0
  65. package/dist/core/src/runtime/archive.d.ts +17 -0
  66. package/dist/core/src/runtime/compression.d.ts +21 -0
  67. package/dist/core/src/runtime/deep-equals.d.ts +56 -0
  68. package/dist/core/src/runtime/detection.d.ts +22 -0
  69. package/dist/core/src/runtime/escape.d.ts +34 -0
  70. package/dist/core/src/runtime/index.d.ts +44 -0
  71. package/dist/core/src/runtime/markdown.d.ts +44 -0
  72. package/dist/core/src/runtime/types.d.ts +436 -0
  73. package/dist/core/src/runtime-helpers.d.ts +67 -0
  74. package/dist/core/src/runtime.d.ts +10 -118
  75. package/dist/core/src/testing/HttpTester.d.ts +1 -0
  76. package/dist/core/src/transpiler-utils.d.ts +170 -0
  77. package/dist/{ripple/src/engines → engines}/BunEngine.d.ts +11 -0
  78. package/dist/errors/RippleError.d.ts +66 -0
  79. package/dist/index.js +1 -7502
  80. package/dist/index.js.map +3 -71
  81. package/package.json +6 -2
  82. package/dist/atlas/src/DB.d.ts +0 -348
  83. package/dist/atlas/src/OrbitAtlas.d.ts +0 -9
  84. package/dist/atlas/src/config/defineConfig.d.ts +0 -14
  85. package/dist/atlas/src/config/index.d.ts +0 -7
  86. package/dist/atlas/src/config/loadConfig.d.ts +0 -41
  87. package/dist/atlas/src/connection/Connection.d.ts +0 -112
  88. package/dist/atlas/src/connection/ConnectionManager.d.ts +0 -180
  89. package/dist/atlas/src/connection/ReplicaConnectionPool.d.ts +0 -54
  90. package/dist/atlas/src/drivers/BunSQLDriver.d.ts +0 -32
  91. package/dist/atlas/src/drivers/BunSQLPreparedStatement.d.ts +0 -118
  92. package/dist/atlas/src/drivers/MongoDBDriver.d.ts +0 -36
  93. package/dist/atlas/src/drivers/MySQLDriver.d.ts +0 -79
  94. package/dist/atlas/src/drivers/PostgresDriver.d.ts +0 -96
  95. package/dist/atlas/src/drivers/RedisDriver.d.ts +0 -43
  96. package/dist/atlas/src/drivers/SQLiteDriver.d.ts +0 -45
  97. package/dist/atlas/src/drivers/types.d.ts +0 -260
  98. package/dist/atlas/src/errors/index.d.ts +0 -45
  99. package/dist/atlas/src/grammar/Grammar.d.ts +0 -342
  100. package/dist/atlas/src/grammar/MongoGrammar.d.ts +0 -47
  101. package/dist/atlas/src/grammar/MySQLGrammar.d.ts +0 -54
  102. package/dist/atlas/src/grammar/NullGrammar.d.ts +0 -35
  103. package/dist/atlas/src/grammar/PostgresGrammar.d.ts +0 -62
  104. package/dist/atlas/src/grammar/SQLiteGrammar.d.ts +0 -32
  105. package/dist/atlas/src/index.d.ts +0 -79
  106. package/dist/atlas/src/migration/Migration.d.ts +0 -64
  107. package/dist/atlas/src/migration/MigrationRepository.d.ts +0 -65
  108. package/dist/atlas/src/migration/Migrator.d.ts +0 -110
  109. package/dist/atlas/src/migration/index.d.ts +0 -6
  110. package/dist/atlas/src/observability/AtlasMetrics.d.ts +0 -33
  111. package/dist/atlas/src/observability/AtlasObservability.d.ts +0 -15
  112. package/dist/atlas/src/observability/AtlasTracer.d.ts +0 -12
  113. package/dist/atlas/src/observability/index.d.ts +0 -9
  114. package/dist/atlas/src/orm/Repository.d.ts +0 -247
  115. package/dist/atlas/src/orm/index.d.ts +0 -6
  116. package/dist/atlas/src/orm/model/DirtyTracker.d.ts +0 -121
  117. package/dist/atlas/src/orm/model/Model.d.ts +0 -458
  118. package/dist/atlas/src/orm/model/ModelRegistry.d.ts +0 -20
  119. package/dist/atlas/src/orm/model/concerns/HasAttributes.d.ts +0 -150
  120. package/dist/atlas/src/orm/model/concerns/HasEvents.d.ts +0 -36
  121. package/dist/atlas/src/orm/model/concerns/HasPersistence.d.ts +0 -92
  122. package/dist/atlas/src/orm/model/concerns/HasRelationships.d.ts +0 -117
  123. package/dist/atlas/src/orm/model/concerns/HasSerialization.d.ts +0 -64
  124. package/dist/atlas/src/orm/model/concerns/applyMixins.d.ts +0 -15
  125. package/dist/atlas/src/orm/model/concerns/index.d.ts +0 -12
  126. package/dist/atlas/src/orm/model/decorators.d.ts +0 -138
  127. package/dist/atlas/src/orm/model/errors.d.ts +0 -52
  128. package/dist/atlas/src/orm/model/index.d.ts +0 -10
  129. package/dist/atlas/src/orm/model/relationships.d.ts +0 -207
  130. package/dist/atlas/src/orm/model/types.d.ts +0 -12
  131. package/dist/atlas/src/orm/schema/SchemaRegistry.d.ts +0 -124
  132. package/dist/atlas/src/orm/schema/SchemaSniffer.d.ts +0 -54
  133. package/dist/atlas/src/orm/schema/index.d.ts +0 -6
  134. package/dist/atlas/src/orm/schema/types.d.ts +0 -85
  135. package/dist/atlas/src/pool/AdaptivePoolManager.d.ts +0 -98
  136. package/dist/atlas/src/pool/PoolHealthChecker.d.ts +0 -91
  137. package/dist/atlas/src/pool/PoolStrategy.d.ts +0 -129
  138. package/dist/atlas/src/pool/PoolWarmer.d.ts +0 -92
  139. package/dist/atlas/src/query/Expression.d.ts +0 -60
  140. package/dist/atlas/src/query/NPlusOneDetector.d.ts +0 -10
  141. package/dist/atlas/src/query/QueryBuilder.d.ts +0 -643
  142. package/dist/atlas/src/query/RelationshipResolver.d.ts +0 -23
  143. package/dist/atlas/src/query/clauses/GroupByClause.d.ts +0 -51
  144. package/dist/atlas/src/query/clauses/HavingClause.d.ts +0 -70
  145. package/dist/atlas/src/query/clauses/JoinClause.d.ts +0 -87
  146. package/dist/atlas/src/query/clauses/LimitClause.d.ts +0 -82
  147. package/dist/atlas/src/query/clauses/OrderByClause.d.ts +0 -69
  148. package/dist/atlas/src/query/clauses/SelectClause.d.ts +0 -71
  149. package/dist/atlas/src/query/clauses/WhereClause.d.ts +0 -167
  150. package/dist/atlas/src/query/clauses/index.d.ts +0 -11
  151. package/dist/atlas/src/schema/Blueprint.d.ts +0 -276
  152. package/dist/atlas/src/schema/ColumnDefinition.d.ts +0 -154
  153. package/dist/atlas/src/schema/ForeignKeyDefinition.d.ts +0 -37
  154. package/dist/atlas/src/schema/MigrationGenerator.d.ts +0 -45
  155. package/dist/atlas/src/schema/Schema.d.ts +0 -131
  156. package/dist/atlas/src/schema/SchemaDiff.d.ts +0 -73
  157. package/dist/atlas/src/schema/TypeGenerator.d.ts +0 -57
  158. package/dist/atlas/src/schema/TypeWriter.d.ts +0 -42
  159. package/dist/atlas/src/schema/grammars/MySQLSchemaGrammar.d.ts +0 -23
  160. package/dist/atlas/src/schema/grammars/PostgresSchemaGrammar.d.ts +0 -26
  161. package/dist/atlas/src/schema/grammars/SQLiteSchemaGrammar.d.ts +0 -28
  162. package/dist/atlas/src/schema/grammars/SchemaGrammar.d.ts +0 -97
  163. package/dist/atlas/src/schema/grammars/index.d.ts +0 -7
  164. package/dist/atlas/src/schema/index.d.ts +0 -8
  165. package/dist/atlas/src/seed/Factory.d.ts +0 -90
  166. package/dist/atlas/src/seed/Seeder.d.ts +0 -28
  167. package/dist/atlas/src/seed/SeederRunner.d.ts +0 -74
  168. package/dist/atlas/src/seed/index.d.ts +0 -6
  169. package/dist/atlas/src/sharding/ShardingManager.d.ts +0 -59
  170. package/dist/atlas/src/types/index.d.ts +0 -1182
  171. package/dist/atlas/src/utils/CursorEncoding.d.ts +0 -63
  172. package/dist/atlas/src/utils/levenshtein.d.ts +0 -9
  173. package/dist/core/src/adapters/PhotonAdapter.d.ts +0 -175
  174. package/dist/core/src/adapters/photon-types.d.ts +0 -73
  175. package/dist/core/src/http/middleware/BodySizeLimit.d.ts +0 -16
  176. package/dist/core/src/http/middleware/Cors.d.ts +0 -24
  177. package/dist/core/src/http/middleware/Csrf.d.ts +0 -23
  178. package/dist/core/src/http/middleware/HeaderTokenGate.d.ts +0 -28
  179. package/dist/core/src/http/middleware/SecurityHeaders.d.ts +0 -29
  180. package/dist/core/src/http/middleware/ThrottleRequests.d.ts +0 -18
  181. package/dist/core/src/instrumentation/index.d.ts +0 -35
  182. package/dist/core/src/instrumentation/opentelemetry.d.ts +0 -178
  183. package/dist/core/src/instrumentation/types.d.ts +0 -182
  184. package/dist/core/src/observability/Metrics.d.ts +0 -244
  185. package/dist/photon/src/index.d.ts +0 -89
  186. package/dist/photon/src/middleware/binary.d.ts +0 -31
  187. package/dist/photon/src/middleware/htmx.d.ts +0 -39
  188. package/dist/photon/src/middleware/ratelimit-redis.d.ts +0 -50
  189. package/dist/photon/src/middleware/ratelimit.d.ts +0 -161
  190. package/dist/photon/src/openapi.d.ts +0 -19
  191. package/dist/ripple/src/errors/RippleError.d.ts +0 -48
  192. /package/dist/{ripple/src/channels → channels}/Channel.d.ts +0 -0
  193. /package/dist/{ripple/src/channels → channels}/ChannelManager.d.ts +0 -0
  194. /package/dist/{ripple/src/channels → channels}/index.d.ts +0 -0
  195. /package/dist/{ripple/src/drivers → drivers}/LocalDriver.d.ts +0 -0
  196. /package/dist/{ripple/src/drivers → drivers}/NATSDriver.d.ts +0 -0
  197. /package/dist/{ripple/src/drivers → drivers}/RedisDriver.d.ts +0 -0
  198. /package/dist/{ripple/src/drivers → drivers}/index.d.ts +0 -0
  199. /package/dist/{ripple/src/engines → engines}/IRippleEngine.d.ts +0 -0
  200. /package/dist/{ripple/src/engines → engines}/UWebSocketsEngine.d.ts +0 -0
  201. /package/dist/{ripple/src/engines → engines}/WsEngine.d.ts +0 -0
  202. /package/dist/{ripple/src/engines → engines}/index.d.ts +0 -0
  203. /package/dist/{ripple/src/errors → errors}/index.d.ts +0 -0
  204. /package/dist/{ripple/src/events → events}/BroadcastEvent.d.ts +0 -0
  205. /package/dist/{ripple/src/events → events}/BroadcastManager.d.ts +0 -0
  206. /package/dist/{ripple/src/events → events}/Broadcaster.d.ts +0 -0
  207. /package/dist/{ripple/src/events → events}/index.d.ts +0 -0
  208. /package/dist/{ripple/src/health → health}/HealthChecker.d.ts +0 -0
  209. /package/dist/{ripple/src/health → health}/index.d.ts +0 -0
  210. /package/dist/{ripple/src/index.d.ts → index.d.ts} +0 -0
  211. /package/dist/{ripple/src/logging → logging}/Logger.d.ts +0 -0
  212. /package/dist/{ripple/src/logging → logging}/index.d.ts +0 -0
  213. /package/dist/{ripple/src/middleware → middleware}/InterceptorManager.d.ts +0 -0
  214. /package/dist/{ripple/src/observability → observability}/RippleMetrics.d.ts +0 -0
  215. /package/dist/{ripple/src/reliability → reliability}/AckManager.d.ts +0 -0
  216. /package/dist/{ripple/src/serializers → serializers}/ISerializer.d.ts +0 -0
  217. /package/dist/{ripple/src/serializers → serializers}/JsonSerializer.d.ts +0 -0
  218. /package/dist/{ripple/src/serializers → serializers}/ProtobufSerializer.d.ts +0 -0
  219. /package/dist/{ripple/src/serializers → serializers}/index.d.ts +0 -0
  220. /package/dist/{ripple/src/tracking → tracking}/ConnectionTracker.d.ts +0 -0
  221. /package/dist/{ripple/src/tracking → tracking}/SessionManager.d.ts +0 -0
  222. /package/dist/{ripple/src/tracking → tracking}/index.d.ts +0 -0
  223. /package/dist/{ripple/src/types.d.ts → types.d.ts} +0 -0
  224. /package/dist/{ripple/src/utils → utils}/MessageSerializer.d.ts +0 -0
  225. /package/dist/{ripple/src/utils → utils}/TokenBucket.d.ts +0 -0
  226. /package/dist/{ripple/src/utils → utils}/index.d.ts +0 -0
@@ -1,182 +0,0 @@
1
- /**
2
- * @gravito/core - OpenTelemetry 類型定義
3
- *
4
- * 定義 OpenTelemetry SDK 集成所需的類型與介面。
5
- */
6
- /**
7
- * Tracing(追蹤)導出器類型
8
- */
9
- export type TracingExporter = 'jaeger' | 'otlp' | 'console' | 'none';
10
- /**
11
- * Metrics(指標)導出器類型
12
- */
13
- export type MetricsExporter = 'prometheus' | 'otlp' | 'console' | 'none';
14
- /**
15
- * Tracing 配置選項
16
- */
17
- export interface TracingConfig {
18
- /** 是否啟用追蹤(預設:true) */
19
- enabled?: boolean;
20
- /** 導出器類型(預設:otlp) */
21
- exporter?: TracingExporter;
22
- /** Jaeger HTTP 端點(使用 jaeger 導出器時) */
23
- jaegerEndpoint?: string;
24
- /** OTLP 端點(使用 otlp 導出器時) */
25
- otlpEndpoint?: string;
26
- /** 採樣率(0-1,預設:1.0 = 100%) */
27
- samplingRate?: number;
28
- /** 是否啟用自動儀器化(預設:false) */
29
- autoInstrumentation?: boolean;
30
- /** Batch Span Processor 配置 */
31
- batchConfig?: {
32
- /** 最大批次大小(預設:512) */
33
- maxExportBatchSize?: number;
34
- /** 導出間隔(毫秒,預設:5000) */
35
- scheduledDelayMillis?: number;
36
- /** 導出超時(毫秒,預設:30000) */
37
- exportTimeoutMillis?: number;
38
- /** 最大隊列大小(預設:2048) */
39
- maxQueueSize?: number;
40
- };
41
- }
42
- /**
43
- * Metrics 配置選項
44
- */
45
- export interface MetricsConfig {
46
- /** 是否啟用指標(預設:true) */
47
- enabled?: boolean;
48
- /** 導出器類型(預設:otlp) */
49
- exporter?: MetricsExporter;
50
- /** Prometheus 端口(使用 prometheus 導出器時,預設:9090) */
51
- prometheusPort?: number;
52
- /** Prometheus 端點路徑(預設:/metrics) */
53
- prometheusEndpoint?: string;
54
- /** OTLP 端點(使用 otlp 導出器時) */
55
- otlpEndpoint?: string;
56
- /** 導出間隔(毫秒,預設:60000) */
57
- exportIntervalMillis?: number;
58
- }
59
- /**
60
- * OpenTelemetry SDK 完整配置
61
- */
62
- export interface OpenTelemetryConfig {
63
- /** 是否啟用 OpenTelemetry(預設:true) */
64
- enabled?: boolean;
65
- /** 服務名稱(預設:gravito-app) */
66
- serviceName?: string;
67
- /** 服務版本(預設:1.0.0) */
68
- serviceVersion?: string;
69
- /** 環境名稱(預設:development) */
70
- environment?: 'development' | 'staging' | 'production' | string;
71
- /** 自定義 Resource Attributes */
72
- resourceAttributes?: Record<string, string | number | boolean>;
73
- /** Tracing 配置 */
74
- tracing?: TracingConfig;
75
- /** Metrics 配置 */
76
- metrics?: MetricsConfig;
77
- /** 是否在控制台輸出初始化日誌(預設:true) */
78
- logInitialization?: boolean;
79
- }
80
- /**
81
- * OpenTelemetry SDK 實例包裝
82
- *
83
- * 封裝初始化後的 SDK 實例與相關資源。
84
- */
85
- export interface OpenTelemetrySDK {
86
- /** SDK 是否已啟動 */
87
- isStarted: boolean;
88
- /** SDK 是否已關閉 */
89
- isShutdown: boolean;
90
- /** 服務名稱 */
91
- serviceName: string;
92
- /** 服務版本 */
93
- serviceVersion: string;
94
- /** Tracer Provider(如果啟用追蹤) */
95
- tracerProvider: unknown | null;
96
- /** Meter Provider(如果啟用指標) */
97
- meterProvider: unknown | null;
98
- /** 原始配置 */
99
- config: OpenTelemetryConfig;
100
- /** 關閉 SDK */
101
- shutdown: () => Promise<void>;
102
- }
103
- /**
104
- * 支援的 OpenTelemetry 環境變數
105
- *
106
- * 參考:https://opentelemetry.io/docs/specs/otel/configuration/sdk-environment-variables/
107
- */
108
- export declare const OTEL_ENV_VARS: {
109
- /** 服務名稱 */
110
- readonly SERVICE_NAME: "OTEL_SERVICE_NAME";
111
- /** 服務版本 */
112
- readonly SERVICE_VERSION: "OTEL_SERVICE_VERSION";
113
- /** 環境名稱 */
114
- readonly DEPLOYMENT_ENVIRONMENT: "OTEL_DEPLOYMENT_ENVIRONMENT";
115
- /** Resource Attributes */
116
- readonly RESOURCE_ATTRIBUTES: "OTEL_RESOURCE_ATTRIBUTES";
117
- /** OTLP 端點(通用) */
118
- readonly OTLP_ENDPOINT: "OTEL_EXPORTER_OTLP_ENDPOINT";
119
- /** OTLP Traces 端點 */
120
- readonly OTLP_TRACES_ENDPOINT: "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT";
121
- /** OTLP Metrics 端點 */
122
- readonly OTLP_METRICS_ENDPOINT: "OTEL_EXPORTER_OTLP_METRICS_ENDPOINT";
123
- /** 採樣器類型 */
124
- readonly TRACES_SAMPLER: "OTEL_TRACES_SAMPLER";
125
- /** 採樣率參數 */
126
- readonly TRACES_SAMPLER_ARG: "OTEL_TRACES_SAMPLER_ARG";
127
- /** 是否啟用 OpenTelemetry */
128
- readonly GRAVITO_ENABLED: "GRAVITO_OTEL_ENABLED";
129
- /** Jaeger 端點 */
130
- readonly JAEGER_ENDPOINT: "JAEGER_ENDPOINT";
131
- /** Prometheus 端口 */
132
- readonly PROMETHEUS_PORT: "PROMETHEUS_PORT";
133
- };
134
- /**
135
- * 完整的 BatchConfig 類型(所有屬性必填)
136
- */
137
- export interface BatchConfigRequired {
138
- maxExportBatchSize: number;
139
- scheduledDelayMillis: number;
140
- exportTimeoutMillis: number;
141
- maxQueueSize: number;
142
- }
143
- /**
144
- * 完整的 TracingConfig 類型(所有屬性必填)
145
- */
146
- export interface TracingConfigRequired {
147
- enabled: boolean;
148
- exporter: TracingExporter;
149
- jaegerEndpoint: string;
150
- otlpEndpoint: string;
151
- samplingRate: number;
152
- autoInstrumentation: boolean;
153
- batchConfig: BatchConfigRequired;
154
- }
155
- /**
156
- * 完整的 MetricsConfig 類型(所有屬性必填)
157
- */
158
- export interface MetricsConfigRequired {
159
- enabled: boolean;
160
- exporter: MetricsExporter;
161
- prometheusPort: number;
162
- prometheusEndpoint: string;
163
- otlpEndpoint: string;
164
- exportIntervalMillis: number;
165
- }
166
- /**
167
- * 完整的 OpenTelemetryConfig 類型(所有屬性必填)
168
- */
169
- export interface OpenTelemetryConfigRequired {
170
- enabled: boolean;
171
- serviceName: string;
172
- serviceVersion: string;
173
- environment: 'development' | 'staging' | 'production';
174
- resourceAttributes: Record<string, string | number | boolean>;
175
- tracing: TracingConfigRequired;
176
- metrics: MetricsConfigRequired;
177
- logInitialization: boolean;
178
- }
179
- /**
180
- * 預設配置值
181
- */
182
- export declare const DEFAULT_CONFIG: OpenTelemetryConfigRequired;
@@ -1,244 +0,0 @@
1
- /**
2
- * @gravito/core - Prometheus Metrics Setup
3
- *
4
- * 設置和導出 Prometheus 指標,用於性能監控。
5
- */
6
- /**
7
- * Prometheus 指標配置
8
- */
9
- export interface PrometheusMetricsConfig {
10
- /** Prometheus 抓取端口 */
11
- port?: number;
12
- /** 指標前綴 */
13
- prefix?: string;
14
- /** 上報間隔(毫秒) */
15
- interval?: number;
16
- /** 是否啟用默認指標(如內存、CPU) */
17
- defaultMetrics?: boolean;
18
- }
19
- /**
20
- * Prometheus 指標導出器
21
- *
22
- * 將 Gravito 事件系統的指標導出到 Prometheus
23
- *
24
- * @example
25
- * ```typescript
26
- * import { setupPrometheusMetrics } from '@gravito/core/observability'
27
- *
28
- * const exporter = await setupPrometheusMetrics({
29
- * port: 9090,
30
- * prefix: 'gravito_event_'
31
- * })
32
- * ```
33
- *
34
- * @public
35
- */
36
- export declare function setupPrometheusMetrics(config?: PrometheusMetricsConfig): Promise<{
37
- port: number;
38
- endpoint: string;
39
- } | null>;
40
- /**
41
- * 事件系統指標定義
42
- *
43
- * 這些指標用於監控事件派發系統的性能和可靠性。
44
- *
45
- * @public
46
- */
47
- export interface EventMetricsDefinition {
48
- /** 事件派發延遲(直方圖) */
49
- dispatchLatency: {
50
- name: string;
51
- help: string;
52
- labels: string[];
53
- buckets: number[];
54
- };
55
- /** 監聽器執行時間(直方圖) */
56
- listenerExecutionTime: {
57
- name: string;
58
- help: string;
59
- labels: string[];
60
- buckets: number[];
61
- };
62
- /** 隊列深度(量表) */
63
- queueDepth: {
64
- name: string;
65
- help: string;
66
- labels: string[];
67
- };
68
- /** 失敗計數(計數器) */
69
- failureRate: {
70
- name: string;
71
- help: string;
72
- labels: string[];
73
- };
74
- /** 超時計數(計數器) */
75
- timeoutCount: {
76
- name: string;
77
- help: string;
78
- labels: string[];
79
- };
80
- /** 吞吐量(計數器) */
81
- throughput: {
82
- name: string;
83
- help: string;
84
- labels: string[];
85
- };
86
- /** 熔斷器狀態(量表) */
87
- circuitBreakerState: {
88
- name: string;
89
- help: string;
90
- labels: string[];
91
- };
92
- /** 熔斷器狀態轉換(計數器) */
93
- circuitBreakerTransitions: {
94
- name: string;
95
- help: string;
96
- labels: string[];
97
- };
98
- /** 熔斷器失敗計數(計數器) */
99
- circuitBreakerFailures: {
100
- name: string;
101
- help: string;
102
- labels: string[];
103
- };
104
- /** 熔斷器成功計數(計數器) */
105
- circuitBreakerSuccesses: {
106
- name: string;
107
- help: string;
108
- labels: string[];
109
- };
110
- /** 熔斷器 OPEN 持續時間(直方圖) */
111
- circuitBreakerOpenDuration: {
112
- name: string;
113
- help: string;
114
- labels: string[];
115
- buckets: number[];
116
- };
117
- }
118
- /**
119
- * 獲取事件系統的標準指標定義
120
- *
121
- * @param prefix - 指標名稱前綴(默認:gravito_event_)
122
- * @returns 指標定義對象
123
- *
124
- * @example
125
- * ```typescript
126
- * import { getEventMetricsDefinition } from '@gravito/core/observability'
127
- *
128
- * const metrics = getEventMetricsDefinition('gravito_event_')
129
- * console.log(metrics.dispatchLatency.name) // gravito_event_dispatch_latency_seconds
130
- * ```
131
- *
132
- * @public
133
- */
134
- export declare function getEventMetricsDefinition(prefix?: string): EventMetricsDefinition;
135
- /**
136
- * Prometheus 查詢範例
137
- *
138
- * 提供常用的 Prometheus 查詢語句,用於監控事件系統
139
- *
140
- * @public
141
- */
142
- export declare const PROMETHEUS_QUERIES: {
143
- /** 事件派發延遲 P95 */
144
- dispatchLatencyP95: string;
145
- /** 事件派發延遲 P99 */
146
- dispatchLatencyP99: string;
147
- /** 隊列深度(按優先級) */
148
- queueDepthByPriority: string;
149
- /** 吞吐量(事件/秒) */
150
- throughput: string;
151
- /** 失敗率 */
152
- failureRate: string;
153
- /** 監聽器執行時間 P99 */
154
- listenerLatencyP99: string;
155
- /** 超時次數 */
156
- timeoutCount: string;
157
- /** 吞吐量異常檢測 */
158
- throughputAnomaly: string;
159
- /** 熔斷器狀態(0=CLOSED, 1=HALF_OPEN, 2=OPEN) */
160
- circuitBreakerState: string;
161
- /** 熔斷器開啟率 */
162
- circuitBreakerOpenRate: string;
163
- /** 熔斷器恢復率 */
164
- circuitBreakerRecoveryRate: string;
165
- /** 熔斷器失敗率 */
166
- circuitBreakerFailureRate: string;
167
- /** 熔斷器 OPEN 持續時間 P95 */
168
- circuitBreakerOpenDurationP95: string;
169
- /** 熔斷器 OPEN 持續時間 P99 */
170
- circuitBreakerOpenDurationP99: string;
171
- };
172
- /**
173
- * Prometheus 告警規則
174
- *
175
- * 提供預定義的告警規則,用於監控事件系統的健康狀況
176
- *
177
- * @public
178
- */
179
- export declare const PROMETHEUS_ALERT_RULES: {
180
- /** P99 延遲過高 */
181
- HighDispatchLatency: {
182
- expr: string;
183
- for: string;
184
- severity: string;
185
- summary: string;
186
- description: string;
187
- };
188
- /** 隊列深度過高 */
189
- HighQueueDepth: {
190
- expr: string;
191
- for: string;
192
- severity: string;
193
- summary: string;
194
- description: string;
195
- };
196
- /** 失敗率過高 */
197
- HighFailureRate: {
198
- expr: string;
199
- for: string;
200
- severity: string;
201
- summary: string;
202
- description: string;
203
- };
204
- /** 監聽器執行時間過長 */
205
- SlowListener: {
206
- expr: string;
207
- for: string;
208
- severity: string;
209
- summary: string;
210
- description: string;
211
- };
212
- /** 吞吐量異常下降 */
213
- ThroughputDrop: {
214
- expr: string;
215
- for: string;
216
- severity: string;
217
- summary: string;
218
- description: string;
219
- };
220
- /** 熔斷器持續開啟 */
221
- CircuitBreakerOpen: {
222
- expr: string;
223
- for: string;
224
- severity: string;
225
- summary: string;
226
- description: string;
227
- };
228
- /** 熔斷器頻繁切換 */
229
- CircuitBreakerFlapping: {
230
- expr: string;
231
- for: string;
232
- severity: string;
233
- summary: string;
234
- description: string;
235
- };
236
- /** 熔斷器故障率過高 */
237
- CircuitBreakerHighFailureRate: {
238
- expr: string;
239
- for: string;
240
- severity: string;
241
- summary: string;
242
- description: string;
243
- };
244
- };
@@ -1,89 +0,0 @@
1
- /**
2
- * @gravito/photon - High-performance web engine for the Gravito Galaxy Architecture.
3
- *
4
- * Photon serves as the foundational HTTP layer for Gravito, providing an ultra-fast,
5
- * type-safe routing system based on Hono. It is designed to be the "light" that
6
- * connects Satellites (domain plugins) and Orbits (infrastructure) within the ecosystem.
7
- *
8
- * Key features:
9
- * - Zero-overhead routing and middleware.
10
- * - Full TypeScript inference for request parameters and body.
11
- * - Built-in support for HTMX and binary (CBOR) protocols.
12
- *
13
- * @example
14
- * ```typescript
15
- * import { Photon } from '@gravito/photon'
16
- *
17
- * const app = new Photon()
18
- *
19
- * app.get('/welcome', (c) => c.text('Welcome to the Galaxy!'))
20
- *
21
- * export default app
22
- * ```
23
- * @packageDocumentation
24
- */
25
- export * from 'hono';
26
- /**
27
- * The primary application class for Photon.
28
- *
29
- * An alias for `Hono`, providing the core routing and middleware capabilities.
30
- * Use this to define your API structure and mount domain-specific Satellites.
31
- *
32
- * @remarks
33
- * Photon extends Hono's capabilities with Gravito-specific optimizations.
34
- * It serves as the entry point for defining routes, applying middleware,
35
- * and handling the request-response lifecycle.
36
- *
37
- * @example
38
- * ```typescript
39
- * const app = new Photon()
40
- *
41
- * // Basic routing
42
- * app.get('/api/health', (c) => c.json({ status: 'ok' }))
43
- *
44
- * // Middleware integration
45
- * app.use('/api/*', myMiddleware)
46
- *
47
- * // Mounting sub-routers
48
- * app.route('/v1', v1Router)
49
- * ```
50
- * @public
51
- */
52
- export { Hono as Photon } from 'hono';
53
- /**
54
- * Binary-related middleware for Photon.
55
- *
56
- * Provides utilities for handling binary data formats like CBOR,
57
- * optimizing payload size and serialization speed for high-performance APIs.
58
- *
59
- * @public
60
- */
61
- export * from './middleware/binary';
62
- /**
63
- * HTMX-related middleware for Photon.
64
- *
65
- * Enhances Photon with first-class support for HTMX, including
66
- * automatic request detection and simplified header access for hypermedia-driven UIs.
67
- *
68
- * @public
69
- */
70
- export * from './middleware/htmx';
71
- /**
72
- * Rate limiting middleware for Photon.
73
- *
74
- * Provides built-in rate limiting with token bucket and sliding window strategies.
75
- * Supports both memory-based and custom storage backends.
76
- *
77
- * @public
78
- */
79
- export * from './middleware/ratelimit';
80
- /**
81
- * Redis-based rate limiting storage.
82
- * @public
83
- */
84
- export * from './middleware/ratelimit-redis';
85
- /**
86
- * OpenAPI utilities
87
- * @public
88
- */
89
- export * from './openapi';
@@ -1,31 +0,0 @@
1
- import type { MiddlewareHandler } from 'hono';
2
- /**
3
- * Binary Middleware for Photon.
4
- *
5
- * Automatically detects 'Accept: application/cbor' and encodes
6
- * JSON responses using the CBOR binary format for high-performance communication.
7
- *
8
- * @remarks
9
- * This middleware is essential for high-frequency API calls where payload size
10
- * and serialization speed are critical. It leverages the `cborg` library for
11
- * efficient binary encoding.
12
- *
13
- * @returns A Hono middleware handler that intercepts JSON responses.
14
- *
15
- * @example
16
- * ```typescript
17
- * import { Photon } from '@gravito/photon'
18
- * import { binaryMiddleware } from '@gravito/photon/middleware/binary'
19
- *
20
- * const app = new Photon()
21
- * app.use(binaryMiddleware())
22
- *
23
- * app.get('/api/data', (c) => c.json({ items: [1, 2, 3] }))
24
- * ```
25
- *
26
- * @performance
27
- * - CBOR encoding is ~2-3x faster than JSON.stringify for large objects.
28
- * - Binary format reduces payload size by 20-40% on average.
29
- * - Optimized to read body directly without clone(), saving ~30% overhead.
30
- */
31
- export declare const binaryMiddleware: () => MiddlewareHandler;
@@ -1,39 +0,0 @@
1
- import type { MiddlewareHandler } from 'hono';
2
- /**
3
- * HTMX Middleware for Photon.
4
- *
5
- * Automatically detects HTMX requests and populates the context with
6
- * HTMX-specific headers and state.
7
- *
8
- * @remarks
9
- * This middleware enables hypermedia-driven UIs by providing first-class
10
- * support for HTMX. It allows handlers to easily distinguish between
11
- * full-page loads and partial updates.
12
- *
13
- * @returns A Hono middleware handler that populates HTMX context variables.
14
- *
15
- * @example
16
- * ```typescript
17
- * import { Photon } from '@gravito/photon'
18
- * import { htmxMiddleware } from '@gravito/photon/middleware/htmx'
19
- *
20
- * const app = new Photon()
21
- * app.use(htmxMiddleware())
22
- *
23
- * app.get('/search', async (c) => {
24
- * // Check if request is from HTMX
25
- * if (c.get('htmx')) {
26
- * return c.html('<div>Search results...</div>')
27
- * }
28
- *
29
- * return c.html('<html>...</html>')
30
- * })
31
- * ```
32
- *
33
- * @context_variables
34
- * - `htmx`: Boolean indicating if the request is an HTMX request.
35
- * - `htmx.boosted`: Boolean indicating if the request was boosted.
36
- * - `htmx.target`: The ID of the target element.
37
- * - `htmx.trigger`: The ID of the trigger element.
38
- */
39
- export declare const htmxMiddleware: () => MiddlewareHandler;
@@ -1,50 +0,0 @@
1
- import type { RateLimitState, RateLimitStore } from './ratelimit';
2
- /**
3
- * Redis-based storage for Rate Limiting.
4
- *
5
- * Implements atomic rate limiting using Lua scripts to prevent race conditions
6
- * in distributed environments.
7
- *
8
- * @remarks
9
- * This store is recommended for production environments with multiple application
10
- * instances. It requires a Redis client (like ioredis or node-redis).
11
- *
12
- * @example
13
- * ```typescript
14
- * import Redis from 'ioredis'
15
- * import { rateLimit } from '@gravito/photon/middleware'
16
- * import { RedisStore } from '@gravito/photon/middleware/ratelimit-redis'
17
- *
18
- * const redis = new Redis()
19
- * const app = new Photon()
20
- *
21
- * app.use(rateLimit({
22
- * maxRequests: 100,
23
- * windowMs: 60000,
24
- * store: new RedisStore(redis, { maxRequests: 100, windowMs: 60000 })
25
- * }))
26
- * ```
27
- * @public
28
- */
29
- export declare class RedisStore implements RateLimitStore {
30
- private client;
31
- private config;
32
- /**
33
- * Create a new RedisStore.
34
- *
35
- * @param client - Redis client instance (must support .eval())
36
- * @param config - Rate limit configuration
37
- */
38
- constructor(client: any, config: {
39
- maxRequests: number;
40
- windowMs: number;
41
- prefix?: string;
42
- });
43
- private get prefix();
44
- /**
45
- * Atomic increment and TTL management using Lua.
46
- */
47
- increment(key: string): Promise<RateLimitState>;
48
- reset(key: string): Promise<void>;
49
- get(key: string): Promise<RateLimitState | null>;
50
- }