@ubean/server 0.1.12 → 0.2.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 (56) hide show
  1. package/dist/analytics-entry.d.ts +2 -0
  2. package/dist/analytics-entry.js +2 -0
  3. package/dist/cache-C84ix1Vq.js +173 -0
  4. package/dist/cache-b-MZlyv0.d.ts +48 -0
  5. package/dist/cache-directive-C1Nekkza.js +304 -0
  6. package/dist/cache-directive-CAxJAQyE.d.ts +175 -0
  7. package/dist/cache-directive.d.ts +2 -0
  8. package/dist/cache-directive.js +2 -0
  9. package/dist/cache-entry.d.ts +3 -0
  10. package/dist/cache-entry.js +3 -0
  11. package/dist/cron-entry.d.ts +2 -0
  12. package/dist/cron-entry.js +2 -0
  13. package/dist/cron-scheduler-BF33PPn4.d.ts +77 -0
  14. package/dist/cron-scheduler-BVuXv7nn.js +258 -0
  15. package/dist/database-CfpFznl-.d.ts +67 -0
  16. package/dist/database-DNrY44SQ.js +352 -0
  17. package/dist/database.d.ts +2 -0
  18. package/dist/database.js +2 -0
  19. package/dist/email-BjfRiR9b.js +354 -0
  20. package/dist/email-BvpEuNn_.d.ts +226 -0
  21. package/dist/email.d.ts +2 -0
  22. package/dist/email.js +2 -0
  23. package/dist/feature-flags-CdLwsMD2.js +657 -0
  24. package/dist/feature-flags-DWkS6p0D.d.ts +386 -0
  25. package/dist/fetch-memo-rbkxxnW4.js +338 -0
  26. package/dist/index.d.ts +183 -488
  27. package/dist/index.js +352 -2023
  28. package/dist/middleware.d.ts +2 -0
  29. package/dist/middleware.js +3 -0
  30. package/dist/observability-Cio6Qq1H.js +339 -0
  31. package/dist/observability-DUNUEjj3.d.ts +70 -0
  32. package/dist/observability.d.ts +2 -0
  33. package/dist/observability.js +2 -0
  34. package/dist/queue-Bwzi3mhK.js +210 -0
  35. package/dist/queue-GOfTAWlz.d.ts +55 -0
  36. package/dist/queue.d.ts +2 -0
  37. package/dist/queue.js +2 -0
  38. package/dist/realtime.d.ts +2 -0
  39. package/dist/realtime.js +2 -0
  40. package/dist/security.d.ts +2 -0
  41. package/dist/security.js +2 -0
  42. package/dist/sessions-BLqFFQTL.d.ts +217 -0
  43. package/dist/sessions-BsBsyFAG.js +450 -0
  44. package/dist/single-flight-BJyhDLdU.d.ts +422 -0
  45. package/dist/single-flight-mJ4ZKbx1.js +715 -0
  46. package/dist/sse-Ct72zhic.d.ts +95 -0
  47. package/dist/sse-a6Ky9Vcl.js +310 -0
  48. package/dist/static-DPHaovQe.js +90 -0
  49. package/dist/static-K2dRvjpS.d.ts +11 -0
  50. package/dist/static.d.ts +2 -0
  51. package/dist/static.js +2 -0
  52. package/dist/storage-BZLMaqHr.js +162 -0
  53. package/dist/storage-QdlPtPtR.d.ts +48 -0
  54. package/dist/storage.d.ts +2 -0
  55. package/dist/storage.js +2 -0
  56. package/package.json +68 -6
package/dist/index.d.ts CHANGED
@@ -1,492 +1,187 @@
1
- import { Hookable } from "hookable";
2
- import { Context, MiddlewareHandler, Next } from "hono";
3
- import { RouteRule, RouteRule as RouteRule$1, Span, Span as Span$1, SpanAttributes, SpanAttributes as SpanAttributes$1, SpanContext, SpanEndOptions, SpanEvent, SpanOptions, SpanOptions as SpanOptions$1, SpanStatus, UbeanBindings, UbeanContext, UbeanEnv, UbeanEnv as UbeanEnv$1, UbeanVariables } from "@ubean/types";
4
- //#region src/cache.d.ts
5
- interface CacheEntry {
6
- body: ArrayBuffer;
7
- headers: Record<string, string>;
8
- status: number;
9
- statusText: string;
10
- createdAt: number;
11
- expiresAt: number;
12
- }
13
- interface CacheStore {
14
- get(key: string): Promise<CacheEntry | undefined>;
15
- set(key: string, entry: Omit<CacheEntry, 'createdAt' | 'expiresAt'>, ttl: number): Promise<void>;
16
- delete(key: string): Promise<boolean>;
17
- clear(): Promise<void>;
18
- }
19
- declare function createMemoryStore(maxEntries?: number): CacheStore;
20
- declare function useCacheStore(store?: CacheStore): CacheStore;
21
- declare function clearCacheStore(): void;
22
- interface CacheRule {
23
- ttl: number;
24
- swr?: boolean | number;
25
- name?: string;
26
- }
27
- declare function createCacheMiddleware(options?: {
28
- store?: CacheStore;
29
- rules?: Record<string, CacheRule>;
30
- defaultTtl?: number;
31
- }): (c: Context, next: Next) => Promise<Response | undefined>;
32
- declare function cachedEventHandler<T extends (c: Context) => Response | Promise<Response>>(handler: T, options?: CacheRule): T;
33
- declare function invalidateRouteCache(keyPattern?: string | RegExp): Promise<void>;
34
- declare function resolveRouteCacheRules(routeRules: Record<string, RouteRule$1>): Record<string, CacheRule>;
35
- //#endregion
36
- //#region src/database.d.ts
37
- interface DatabaseHooks {
38
- 'db:connect': (db: Database) => void | Promise<void>;
39
- 'db:disconnect': (db: Database) => void | Promise<void>;
40
- 'db:query': (query: string, params?: unknown[]) => void | Promise<void>;
41
- 'db:error': (error: Error, query?: string) => void | Promise<void>;
42
- }
43
- interface Database {
44
- sql: <T = Record<string, unknown>>(strings: TemplateStringsArray, ...values: unknown[]) => Promise<{
45
- rows: T[];
46
- }>;
47
- exec: (query: string) => Promise<void>;
48
- close: () => Promise<void>;
49
- }
50
- interface DatabaseConnector {
51
- (options?: Record<string, unknown>): DatabaseConnectorInstance;
52
- }
53
- interface DatabaseConnectorInstance {
54
- dialect?: string;
55
- [key: string]: unknown;
56
- }
57
- interface DrizzleConfig {
58
- schema?: Record<string, unknown>;
59
- logger?: boolean | {
60
- logQuery?: (query: string, params: unknown[]) => void;
61
- };
62
- casing?: 'camelCase' | 'snake_case';
63
- }
64
- interface DatabaseOptions {
65
- connector?: DatabaseConnectorInstance;
66
- connectors?: Record<string, DatabaseConnectorInstance>;
67
- default?: string;
68
- }
69
- interface Migration {
1
+ import { $ as getGlobalAnalyticsProvider, A as removeExperiment, B as AnalyticsProvider, C as extractFlagContext, D as getVariantFromContext, E as getVariantAssignment, F as useFlags, G as createAnalyticsMiddleware, H as AnalyticsRecord, I as AnalyticsContext, J as createMockAnalyticsProvider, K as createLogAnalyticsProvider, L as AnalyticsEvent, M as setGlobalFeatureFlagStore, N as useExperiments, O as listExperimentNames, P as useFlagContext, Q as getAnalyticsProvider, R as AnalyticsMiddlewareOptions, S as evaluateFlagWithReason, T as getVariant, U as AnalyticsTrackOptions, V as AnalyticsProviderOptions, W as clearAnalyticsProviders, X as defineAnalyticsProvider, Y as defineAnalytics, Z as extractAnalyticsContext, _ as createMemoryFeatureFlagStore, a as FeatureFlagOptions, at as trackRaw, b as evaluateFlag, c as FlagContext, d as FlagValue, et as listAnalyticsProviders, f as Segment, g as createFeatureFlagsMiddleware, h as clearFeatureFlags, i as FeatureFlagDefinition, it as trackPageView, j as removeFeatureFlag, k as listFlagNames, l as FlagEvaluation, m as Variant, n as ExperimentDefinition, nt as setGlobalAnalyticsProvider, o as FeatureFlagStore, ot as unregisterAnalyticsProvider, p as SegmentRule, q as createMemoryAnalyticsProvider, r as ExperimentOptions, rt as trackEvent, s as FeatureFlagsMiddlewareOptions, st as useAnalytics, t as ExperimentAssignment, tt as registerAnalyticsProvider, u as FlagKind, v as defineExperiment, w as getGlobalFeatureFlagStore, x as evaluateFlagFromContext, y as defineFeatureFlag, z as AnalyticsProperties } from "./feature-flags-DWkS6p0D.js";
2
+ import { a as cacheLife, c as clearComponentCacheStore, d as revalidatePath, f as revalidateTag, h as wrapWithCache, i as ComponentCacheStore, l as createComponentMemoryStore, m as useComponentCacheStore, n as CachedFunctionOptions, o as cacheTag, p as revalidateTags, r as ComponentCacheEntry, s as clearComponentCache, t as CacheWrapOptions, u as defineCachedFunction } from "./cache-directive-CAxJAQyE.js";
3
+ import { a as clearCacheStore, c as invalidateRouteCache, i as cachedEventHandler, l as resolveRouteCacheRules, n as CacheRule, o as createCacheMiddleware, r as CacheStore, s as createMemoryStore, t as CacheEntry, u as useCacheStore } from "./cache-b-MZlyv0.js";
4
+ import { _ as runScheduledTask, a as resetCronRunCounts, c as CronContext, d as CronTaskMeta, f as ScheduledTask, g as getScheduledTasks, h as defineScheduled, i as parseCron, l as CronSchedule, m as createCronContext, n as SchedulerOptions, o as startCronScheduler, p as clearScheduledTasks, r as createMemoryCronScheduler, s as validateCron, t as CronScheduler, u as CronTaskDefinition } from "./cron-scheduler-BF33PPn4.js";
5
+ import { a as DatabaseOptions, c as closeDatabases, d as migrateDatabase, f as rawSql, h as useDatabase, i as DatabaseHooks, l as defineDatabase, m as runMigrations, n as DatabaseConnector, o as DrizzleConfig, p as registerDb0Create, r as DatabaseConnectorInstance, s as Migration, t as Database, u as getDatabaseHooks } from "./database-CfpFznl-.js";
6
+ import { C as sendEmail, S as renderEmailTemplate, T as useEmailProvider, _ as defineEmailProvider, a as EmailProviderConfig, b as getEmailTransport, c as EmailTransport, d as MockEmailTransport, f as SendmailEmailProviderConfig, g as createEmailTransport, h as clearSentEmails, i as EmailProvider, l as LogEmailProviderConfig, m as clearEmailProviders, n as EmailAttachment, o as EmailProviderType, p as SmtpEmailProviderConfig, r as EmailOptions, s as EmailResult, t as DefineEmailProviderOptions, u as MockEmailProviderConfig, v as getEmailProvider, w as setDefaultEmailProvider, x as getSentEmails, y as getEmailProviderNames } from "./email-BvpEuNn_.js";
7
+ import { _ as startQueueWorkers, a as QueueOptions, c as clearQueueDefinitions, d as getAllQueueStats, f as getQueueDefinitions, g as setQueueDriver, h as sendMessages, i as QueueMessage, l as createMemoryQueueDriver, m as sendMessage, n as QueueDriver, o as QueueStats, p as getQueueStats, r as QueueHandler, s as SendOptions, t as QueueDefinition, u as defineQueue, v as stopQueueWorkers, y as useQueueDriver } from "./queue-GOfTAWlz.js";
8
+ import { A as handleUpgrade, C as defineWebSocket, D as handleClose, E as getWebSocketDefinitions, O as handleError, S as defineRoom, T as getRooms, _ as WebSocketRoom, a as broadcastSSE, b as createRoom, c as createSSEStream, d as getSSEConnections, f as sseHeaders, g as WebSocketHooks, h as WebSocketDefinition, i as SSEOptions, j as registerWebSocket, k as handleMessage, l as defineSSE, m as UpgradeResult, n as SSEHandler, o as clearSSEState, p as Peer, r as SSEMessage, s as closeAllSSE, t as SSEConnection, u as formatSSEMessage, v as broadcast, w as getRoom, x as createWebSocketMiddleware, y as clearWebSocketState } from "./sse-Ct72zhic.js";
9
+ import { a as clearGlobalStorage, c as createStorage, i as UbeanStorage, l as useKV, n as KVOptions, o as createKV, r as StorageDriver, s as createMemoryDriver, t as KVNamespace, u as useStorage } from "./storage-QdlPtPtR.js";
10
+ import { C as getSpan, E as withSpan, S as getRequestId, T as startSpan, _ as createOpenTelemetryExporter, a as REQUEST_ID_HEADER, b as generateRequestId, g as createObservabilityTracer, h as createConsoleExporter, i as ObservabilityTracer, m as TracingMiddlewareOptions, n as ObservabilityExporter, o as RequestIdOptions, r as ObservabilityHooks, t as ObservabilityConfig, v as createSpan, w as setGlobalTracer, x as getGlobalTracer, y as createTracingMiddleware } from "./observability-DUNUEjj3.js";
11
+ import { n as serveStatic, t as ServeStaticOptions } from "./static-K2dRvjpS.js";
12
+ import { A as createFetchMemoizationMiddleware, B as RateLimitOptions, C as isDraftMode, D as FetchInitWithNext, E as FetchCacheOptions, F as after, G as defineRateLimit, H as RateLimitStoreEntry, I as createAfterMiddleware, J as defineCors, K as CorsOptions, L as flushAfterCallbacks, M as getDataCacheSize, N as revalidateDataCachePath, O as clearFetchDataCache, P as revalidateDataCacheTag, R as getAfterCallbackCount, S as enableDraftMode, T as DataCacheMiddlewareOptions, U as createMemoryRateLimitStore, V as RateLimitStore, W as createRateLimitMiddleware, _ as DraftMode, a as RevalidationResult, b as defineDraftMode, c as createSingleFlightMiddleware, d as getInvalidatedKeys, f as getRevalidationEntries, g as unregisterRevalidation, h as runRevalidation, i as RevalidationKey, j as createMemoizedFetch, k as createDataCacheMiddleware, l as defineRevalidation, m as invalidateKey, n as RevalidationEntry, o as SingleFlightOptions, p as invalidate, q as createCorsMiddleware, r as RevalidationFetcher, s as clearRevalidationRegistry, t as RevalidationContext, u as defineSingleFlight, v as DraftModeOptions, w as useDraftMode, x as disableDraftMode, y as createDraftModeMiddleware, z as RateLimitInfo } from "./single-flight-BJyhDLdU.js";
13
+ import { _ as generateCsrfToken, a as createSessionMiddleware, c as useSession, d as createSecurityHeadersMiddleware, f as defineSecurityHeaders, g as defineCsrf, h as createCsrfMiddleware, i as SessionStore, l as ContentSecurityPolicyDirectives, m as CsrfOptions, n as SessionData, o as createStorageSessionStore, p as serializeCsp, r as SessionOptions, s as defineSessionStore, t as Session, u as SecurityHeadersOptions } from "./sessions-BLqFFQTL.js";
14
+ import { Context, MiddlewareHandler } from "hono";
15
+ import { RouteRule, Span, SpanAttributes, SpanContext, SpanEndOptions, SpanEvent, SpanOptions, SpanStatus, UbeanBindings, UbeanContext, UbeanEnv, UbeanEnv as UbeanEnv$1, UbeanVariables } from "@ubean/shared";
16
+ //#region src/cdn-cache.d.ts
17
+ /**
18
+ * Surrogate key 头部名称(各平台不同)。
19
+ * Cloudflare `Cache-Tag`,Fastly 用 `Surrogate-Key`,
20
+ * Vercel `x-vercel-cache-tags`。
21
+ */
22
+ type SurrogateKeyHeader = 'Cache-Tag' | 'Surrogate-Key' | 'x-vercel-cache-tags' | string;
23
+ /**
24
+ * CDN 缓存清除适配器接口
25
+ */
26
+ interface CdnPurgeAdapter {
27
+ /** 适配器名称(用于日志/调试) */
70
28
  name: string;
71
- up: string;
72
- down?: string;
73
- }
74
- declare const RAW_SQL: unique symbol;
75
- interface RawSqlValue {
76
- [RAW_SQL]: true;
77
- value: string;
78
- }
79
- declare function rawSql(str: string): RawSqlValue;
80
- type RawSqlFn = <T = Record<string, unknown>>(strings: TemplateStringsArray, ...values: unknown[]) => Promise<{
81
- rows: T[];
82
- }>;
83
- type RawExecFn = (query: string) => Promise<void>;
84
- type RawCloseFn = () => Promise<void>;
85
- declare function defineDatabase(options?: DatabaseOptions): Database;
86
- declare function useDatabase(name?: string): Database;
87
- declare function closeDatabases(): Promise<void>;
88
- declare function getDatabaseHooks(): import("hookable").Hookable<DatabaseHooks, import("hookable").HookKeys<DatabaseHooks>>;
89
- declare function registerDb0Create(fn: (connector: DatabaseConnectorInstance) => {
90
- sql: RawSqlFn;
91
- exec: RawExecFn;
92
- close: RawCloseFn;
93
- }): void;
94
- declare function migrateDatabase(db: Database, migrations: string[]): Promise<void>;
95
- declare function runMigrations(db: Database, migrations: Migration[], options?: {
96
- table?: string;
97
- log?: boolean;
98
- }): Promise<{
99
- applied: string[];
100
- }>;
101
- //#endregion
102
- //#region src/queue.d.ts
103
- interface QueueMessage<T = unknown> {
104
- id: string;
105
- body: T;
106
- timestamp: number;
107
- attempts: number;
108
- headers?: Record<string, string>;
109
- }
110
- interface QueueHandler<T = unknown> {
111
- (message: QueueMessage<T>): void | Promise<void>;
112
- }
113
- interface QueueOptions<T = unknown> {
114
- name: string;
115
- handler?: QueueHandler<T>;
116
- concurrency?: number;
117
- retries?: number;
118
- retryDelay?: number;
119
- deadLetterQueue?: string;
120
- }
121
- interface QueueDefinition<T = unknown> extends QueueOptions<T> {
122
- handler: QueueHandler<T>;
123
- }
124
- interface QueueDriver {
125
- send<T>(queueName: string, message: T, options?: SendOptions): Promise<string>;
126
- sendBatch<T>(queueName: string, messages: T[], options?: SendOptions): Promise<string[]>;
127
- registerHandler?(queueName: string, handler: QueueHandler, options?: QueueOptions): void;
128
- start?(): Promise<void>;
129
- stop?(): Promise<void>;
130
- getQueueDepth?(queueName: string): Promise<number>;
131
- deleteMessage?(queueName: string, messageId: string): Promise<boolean>;
132
- }
133
- interface SendOptions {
134
- delay?: number;
135
- headers?: Record<string, string>;
136
- }
137
- interface QueueStats {
138
- pending: number;
139
- processing: number;
140
- completed: number;
141
- failed: number;
142
- }
143
- declare function defineQueue<T = unknown>(options: QueueOptions<T>, handler?: QueueHandler<T>): QueueDefinition<T>;
144
- declare function createMemoryQueueDriver(): QueueDriver;
145
- declare function useQueueDriver(): QueueDriver;
146
- declare function setQueueDriver(driver: QueueDriver): void;
147
- declare function sendMessage<T = unknown>(queueName: string, body: T, options?: SendOptions): Promise<string>;
148
- declare function sendMessages<T = unknown>(queueName: string, bodies: T[], options?: SendOptions): Promise<string[]>;
149
- declare function getQueueDefinitions(): QueueDefinition[];
150
- declare function clearQueueDefinitions(): void;
151
- declare function startQueueWorkers(): Promise<void>;
152
- declare function stopQueueWorkers(): Promise<void>;
153
- declare function getQueueStats(queueName: string): QueueStats | undefined;
154
- declare function getAllQueueStats(): Record<string, QueueStats>;
155
- //#endregion
156
- //#region src/cron.d.ts
157
- type CronSchedule = string;
158
- interface CronTaskMeta {
159
- name: string;
160
- schedule: CronSchedule;
161
- description?: string;
162
- timezone?: string;
163
- timeout?: number;
164
- runOnStart?: boolean;
165
- }
166
- interface CronTaskDefinition extends CronTaskMeta {
167
- handler: (ctx: CronContext) => void | Promise<void>;
168
- }
169
- interface CronContext {
170
- name: string;
171
- schedule: CronSchedule;
172
- timestamp: Date;
173
- runCount: number;
174
- }
175
- interface ScheduledTask {
176
- name: string;
177
- schedule: CronSchedule;
178
- handler: (ctx: CronContext) => void | Promise<void>;
179
- meta: Omit<CronTaskMeta, 'name' | 'schedule'>;
180
- }
181
- declare function defineScheduled(metaOrName: CronTaskMeta | string, handler?: (ctx: CronContext) => void | Promise<void>): ScheduledTask;
182
- declare function getScheduledTasks(): ScheduledTask[];
183
- declare function clearScheduledTasks(): void;
184
- declare function runScheduledTask(name: string): Promise<{
185
- ok: boolean;
186
- duration: number;
187
- error?: Error;
188
- }>;
189
- declare function createCronContext(name: string, schedule: string): CronContext;
190
- //#endregion
191
- //#region src/cron-scheduler.d.ts
192
- interface CronScheduler {
193
- start(): Promise<void>;
194
- stop(): Promise<void>;
195
- runTask(name: string): Promise<{
196
- ok: boolean;
197
- duration: number;
198
- error?: Error;
199
- }>;
200
- isRunning(): boolean;
201
- getTasks(): ScheduledTask[];
202
- getNextRuns(): Array<{
203
- name: string;
204
- nextRun: Date | null;
205
- }>;
206
- }
207
- interface SchedulerOptions {
208
- timezone?: string;
209
- defaultTimeout?: number;
210
- onTaskStart?: (task: ScheduledTask) => void;
211
- onTaskComplete?: (task: ScheduledTask, result: {
212
- ok: boolean;
213
- duration: number;
214
- error?: Error;
215
- }) => void;
216
- onTaskError?: (task: ScheduledTask, error: Error) => void;
217
- }
218
- type CronField = number[];
219
- interface ParsedCron {
220
- minute: CronField;
221
- hour: CronField;
222
- dom: CronField;
223
- month: CronField;
224
- dow: CronField;
225
- }
226
- declare function parseCron(schedule: string): ParsedCron | null;
227
- declare function createMemoryCronScheduler(options?: SchedulerOptions): CronScheduler;
228
- declare function startCronScheduler(options?: SchedulerOptions): CronScheduler;
229
- declare function resetCronRunCounts(): void;
230
- declare function validateCron(schedule: string): boolean;
231
- //#endregion
232
- //#region src/websocket.d.ts
233
- interface Peer {
234
- readonly id: string;
235
- readonly url: string;
236
- readonly headers: Headers;
237
- readonly readyState: number;
238
- send(data: string | ArrayBuffer | Uint8Array): void;
239
- publish(topic: string, data: string | ArrayBuffer | Uint8Array): void;
240
- subscribe(topic: string): void;
241
- unsubscribe(topic: string): void;
242
- close(code?: number, reason?: string): void;
243
- getData<T = unknown>(): T | undefined;
244
- setData<T>(data: T): void;
245
- }
246
- interface WebSocketRoom {
247
- readonly name: string;
248
- readonly peers: Set<Peer>;
249
- broadcast(data: string | ArrayBuffer | Uint8Array, options?: {
250
- except?: Peer;
251
- }): void;
252
- add(peer: Peer): void;
253
- remove(peer: Peer): void;
254
- }
255
- interface WebSocketHooks {
256
- open?: (peer: Peer) => void | Promise<void>;
257
- message?: (peer: Peer, message: string | ArrayBuffer) => void | Promise<void>;
258
- close?: (peer: Peer, code: number, reason: string) => void | Promise<void>;
259
- error?: (peer: Peer, error: Error) => void | Promise<void>;
260
- }
261
- interface WebSocketDefinition {
262
- path?: string;
263
- hooks?: WebSocketHooks;
264
- topics?: string[];
265
- rooms?: string[];
266
- }
267
- declare function createRoom(name: string): WebSocketRoom;
268
- declare function defineWebSocket(def: WebSocketDefinition): WebSocketDefinition;
269
- declare function defineRoom(name: string): WebSocketRoom;
270
- declare function getRoom(name: string): WebSocketRoom | undefined;
271
- declare function getRooms(): Map<string, WebSocketRoom>;
272
- declare function broadcast(topic: string, data: string | ArrayBuffer | Uint8Array): void;
273
- declare function registerWebSocket(path: string, def: WebSocketDefinition): void;
274
- declare function getWebSocketDefinitions(): Map<string, WebSocketDefinition>;
275
- interface UpgradeResult {
276
- response: Response;
277
- peer: Peer;
278
- }
279
- declare function handleUpgrade(c: Context<UbeanEnv$1>, options: {
280
- send: (data: string | ArrayBuffer | Uint8Array) => void;
281
- close: (code?: number, reason?: string) => void;
29
+ /** 按 surrogate key 清除缓存 */
30
+ purgeKeys(keys: string[]): Promise<PurgeResult>;
31
+ /** 按 URL 清除缓存(可选) */
32
+ purgeUrls?(urls: string[]): Promise<PurgeResult>;
33
+ /** 清除全部缓存(谨慎使用) */
34
+ purgeAll?(): Promise<PurgeResult>;
35
+ }
36
+ /**
37
+ * 清除操作结果
38
+ */
39
+ interface PurgeResult {
40
+ /** 是否成功 */
41
+ success: boolean;
42
+ /** 被清除的 key/url 数量 */
43
+ purged: number;
44
+ /** 平台返回的原始响应(调试用) */
282
45
  raw?: unknown;
283
- }): UpgradeResult;
284
- declare function handleMessage(peer: Peer, message: string | ArrayBuffer): void;
285
- declare function handleClose(peer: Peer, code?: number, reason?: string): void;
286
- declare function handleError(peer: Peer, error: Error): void;
287
- declare function createWebSocketMiddleware(): MiddlewareHandler<UbeanEnv$1>;
288
- declare function clearWebSocketState(): void;
289
- //#endregion
290
- //#region src/sse.d.ts
291
- interface SSEMessage {
292
- data?: string | object;
293
- event?: string;
294
- id?: string;
295
- retry?: number;
296
- comment?: string;
297
- }
298
- interface SSEConnection {
299
- readonly id: string;
300
- send(message: SSEMessage): void;
301
- sendData(data: string | object, event?: string): void;
302
- comment(text: string): void;
303
- close(): void;
304
- readonly closed: boolean;
305
- }
306
- interface SSEHandler {
307
- onConnect?: (connection: SSEConnection) => void | Promise<void>;
308
- onClose?: (connection: SSEConnection) => void | Promise<void>;
309
- }
310
- interface SSEOptions {
311
- headers?: Record<string, string>;
312
- retry?: number;
313
- keepAlive?: boolean | number;
314
- }
315
- declare function formatSSEMessage(msg: SSEMessage): string;
316
- declare function createSSEStream(c: Context<UbeanEnv$1>, handler: SSEHandler, options?: SSEOptions): Response;
317
- declare function defineSSE(handler: SSEHandler, options?: SSEOptions): MiddlewareHandler<UbeanEnv$1>;
318
- declare function getSSEConnections(): Map<string, SSEConnection>;
319
- declare function broadcastSSE(event: string, data: string | object, filter?: (conn: SSEConnection) => boolean): void;
320
- declare function closeAllSSE(): void;
321
- declare function sseHeaders(): Record<string, string>;
322
- declare function clearSSEState(): void;
323
- //#endregion
324
- //#region src/storage.d.ts
325
- interface StorageDriver {
326
- getItemRaw(key: string): Promise<unknown>;
327
- setItemRaw(key: string, value: unknown): Promise<void>;
328
- removeItem(key: string): Promise<void>;
329
- getKeys(base?: string): Promise<string[]>;
330
- clear(base?: string): Promise<void>;
331
- hasItem(key: string): Promise<boolean>;
332
- }
333
- interface UbeanStorage {
334
- get<T = unknown>(key: string): Promise<T | null>;
335
- set<T = unknown>(key: string, value: T, ttl?: number): Promise<void>;
336
- remove(key: string): Promise<void>;
337
- keys(base?: string): Promise<string[]>;
338
- clear(base?: string): Promise<void>;
339
- has(key: string): Promise<boolean>;
340
- getMeta(key: string): Promise<{
341
- ttl?: number;
342
- createdAt?: number;
343
- expiresAt?: number;
344
- } | null>;
345
- mount(base: string, driver: StorageDriver): void;
346
- }
347
- declare function createMemoryDriver(): StorageDriver;
348
- declare function createStorage(options?: {
349
- driver?: StorageDriver;
350
- base?: string;
351
- }): UbeanStorage;
352
- declare function useStorage(storage?: UbeanStorage): UbeanStorage;
353
- declare function clearGlobalStorage(): void;
354
- interface KVOptions<T = unknown> {
355
- ttl?: number;
356
- prefix?: string;
357
- serialize?: (value: T) => string;
358
- deserialize?: (raw: string) => T;
359
- }
360
- interface KVNamespace<T = unknown> {
361
- get(key: string): Promise<T | null>;
362
- set(key: string, value: T, ttl?: number): Promise<void>;
363
- remove(key: string): Promise<void>;
364
- keys(): Promise<string[]>;
365
- has(key: string): Promise<boolean>;
366
- clear(): Promise<void>;
367
- }
368
- declare function createKV<T = unknown>(options?: KVOptions<T>): KVNamespace<T>;
369
- declare function useKV<T = unknown>(name?: string, options?: KVOptions<T>): KVNamespace<T>;
370
- //#endregion
371
- //#region src/observability.d.ts
372
- declare const REQUEST_ID_HEADER = "x-request-id";
373
- interface RequestIdOptions {
374
- headerName?: string;
375
- limitLength?: number;
376
- generator?: (c: any) => string;
377
- }
378
- declare function generateRequestId(): string;
379
- declare function getRequestId(c: {
380
- get: (key: 'requestId') => string;
381
- }): string;
382
- interface ObservabilityHooks {
383
- 'span:start': (span: Span$1) => void | Promise<void>;
384
- 'span:end': (span: Span$1) => void | Promise<void>;
385
- 'span:error': (span: Span$1, error: Error) => void | Promise<void>;
386
- }
387
- interface ObservabilityExporter {
388
- name: string;
389
- exportSpan(span: Readonly<Span$1>): void | Promise<void>;
390
- flush?(): Promise<void>;
391
- shutdown?(): Promise<void>;
392
- }
393
- interface ObservabilityConfig {
394
- defaultAttributes?: SpanAttributes$1;
395
- sensitiveKeys?: string[];
396
- exporters?: ObservabilityExporter[];
397
- enabled?: boolean;
398
- }
399
- declare function createSpan(options: SpanOptions$1): Span$1;
400
- declare function createObservabilityTracer(config?: ObservabilityConfig): {
401
- hooks: Hookable<ObservabilityHooks, import("hookable").HookKeys<ObservabilityHooks>>;
402
- startSpan: (options: SpanOptions$1) => Span$1;
403
- withSpan: <T>(options: SpanOptions$1 | string, fn: (span: Span$1) => T | Promise<T>) => Promise<T>;
404
- getActiveSpan: () => Span$1 | undefined;
405
- addExporter: (exporter: ObservabilityExporter) => void;
406
- removeExporter: (name: string) => void;
407
- redactAttributes: (attrs: SpanAttributes$1) => SpanAttributes$1;
408
- flush: () => Promise<void>;
409
- shutdown: () => Promise<void>;
410
- createSpan: typeof createSpan;
411
- };
412
- type ObservabilityTracer = ReturnType<typeof createObservabilityTracer>;
413
- declare function setGlobalTracer(tracer: ObservabilityTracer | null): void;
414
- declare function getGlobalTracer(): ObservabilityTracer;
415
- declare function startSpan(options: SpanOptions$1 | string): Span$1;
416
- declare function withSpan<T>(options: SpanOptions$1 | string, fn: (span: Span$1) => T | Promise<T>): Promise<T>;
417
- declare function createOpenTelemetryExporter(options?: {
418
- url?: string;
419
- headers?: Record<string, string>;
420
- serviceName?: string;
421
- serviceVersion?: string;
422
- fetchImpl?: typeof fetch;
423
- }): ObservabilityExporter;
424
- declare function createConsoleExporter(options?: {
425
- colors?: boolean;
426
- slowThreshold?: number;
427
- }): ObservabilityExporter;
428
- interface TracingMiddlewareOptions {
429
- tracer?: ObservabilityTracer;
430
- includeHeaders?: boolean;
431
- headerFilter?: (name: string) => boolean;
432
- }
433
- declare function createTracingMiddleware(options?: TracingMiddlewareOptions): (c: any, next: any) => Promise<void>;
434
- declare function getSpan(c: {
435
- get: (key: string) => unknown;
436
- }): Span$1 | undefined;
437
- //#endregion
438
- //#region src/static.d.ts
439
- interface ServeStaticOptions {
440
- publicDir: string;
441
- indexFiles?: string[];
442
- maxAge?: number;
443
- }
444
- declare function serveStatic(options: ServeStaticOptions): MiddlewareHandler<UbeanEnv$1>;
445
- //#endregion
446
- //#region src/cors.d.ts
447
- interface CorsOptions {
448
- origin?: string | string[] | boolean | ((origin: string, c: Context<UbeanEnv$1>) => boolean | string | undefined | Promise<boolean | string | undefined>);
449
- allowMethods?: string[];
450
- allowHeaders?: string[];
451
- exposeHeaders?: string[];
452
- credentials?: boolean;
453
- maxAge?: number;
454
- preflightContinue?: boolean;
455
- }
456
- declare function createCorsMiddleware(options?: CorsOptions): MiddlewareHandler<UbeanEnv$1>;
457
- declare function defineCors(options: CorsOptions): MiddlewareHandler<UbeanEnv$1>;
458
- //#endregion
459
- //#region src/rate-limit.d.ts
460
- interface RateLimitOptions {
461
- maxRequests?: number;
462
- windowMs?: number;
463
- keyGenerator?: (c: Context<UbeanEnv$1>) => string;
464
- handler?: (c: Context<UbeanEnv$1>, info: RateLimitInfo) => Response | Promise<Response>;
465
- skip?: (c: Context<UbeanEnv$1>) => boolean | Promise<boolean>;
466
- standardHeaders?: boolean;
467
- legacyHeaders?: boolean;
468
- store?: RateLimitStore;
469
- }
470
- interface RateLimitInfo {
471
- limit: number;
472
- remaining: number;
473
- reset: number;
474
- retryAfter: number;
475
- }
476
- interface RateLimitStoreEntry {
477
- count: number;
478
- resetAt: number;
479
- }
480
- interface RateLimitStore {
481
- get(key: string): Promise<RateLimitStoreEntry | undefined>;
482
- set(key: string, entry: RateLimitStoreEntry, ttlMs: number): Promise<void>;
483
- increment(key: string, windowMs: number): Promise<RateLimitStoreEntry>;
484
- reset(key: string): Promise<void>;
485
- }
486
- declare function createRateLimitMiddleware(options?: RateLimitOptions): MiddlewareHandler<UbeanEnv$1>;
487
- declare function defineRateLimit(options: RateLimitOptions): MiddlewareHandler<UbeanEnv$1>;
488
- declare function createMemoryRateLimitStore(): RateLimitStore & {
489
- destroy(): void;
46
+ /** 错误信息(失败时) */
47
+ error?: string;
48
+ }
49
+ /**
50
+ * Cache-Control 中间件选项
51
+ */
52
+ interface CacheControlOptions {
53
+ /** 默认 max-age(秒),浏览器缓存 */
54
+ defaultMaxAge?: number;
55
+ /** s-maxage(秒),CDN/共享缓存 */
56
+ sMaxAge?: number;
57
+ /** stale-while-revalidate(秒) */
58
+ staleWhileRevalidate?: number;
59
+ /** stale-if-error(秒) */
60
+ staleIfError?: number;
61
+ /** 是否公开缓存(默认 true) */
62
+ public?: boolean;
63
+ /** 是否不可变(用于带 hash 的静态资源) */
64
+ immutable?: boolean;
65
+ /** 按路径模式自定义 max-age */
66
+ rules?: Array<{
67
+ pattern: string | RegExp;
68
+ maxAge?: number;
69
+ sMaxAge?: number;
70
+ immutable?: boolean;
71
+ }>;
72
+ /** 跳过路径(前缀匹配) */
73
+ exclude?: string[];
74
+ /** 是否对 404/5xx 设置 no-cache(默认 true) */
75
+ noCacheOnError?: boolean;
76
+ }
77
+ /**
78
+ * 为当前响应设置 surrogate key 头部。
79
+ *
80
+ * 在路由处理器中调用,为响应打上缓存标签,
81
+ * 后续可通过 `purgeKeys(adapter, keys)` 批量失效。
82
+ *
83
+ * @example
84
+ * ```typescript
85
+ * app.get('/products/:id', async (c) => {
86
+ * const product = await getProduct(c.req.param('id'));
87
+ * defineSurrogateKeys(c, [`product:${product.id}`, 'product-list']);
88
+ * return c.json(product);
89
+ * });
90
+ * ```
91
+ */
92
+ declare function defineSurrogateKeys(c: Context<UbeanEnv$1>, keys: string[], header?: SurrogateKeyHeader): void;
93
+ /**
94
+ * 从请求上下文读取 surrogate keys(通常用于测试/调试)
95
+ */
96
+ declare function getSurrogateKeys(c: Context<UbeanEnv$1>, header?: SurrogateKeyHeader): string[];
97
+ /**
98
+ * 设置全局默认 CDN 清除适配器。
99
+ */
100
+ declare function setGlobalPurgeAdapter(adapter: CdnPurgeAdapter | null): void;
101
+ /**
102
+ * 获取全局默认清除适配器。
103
+ */
104
+ declare function getGlobalPurgeAdapter(): CdnPurgeAdapter | null;
105
+ /**
106
+ * 使用指定适配器(或全局适配器)按 key 清除 CDN 缓存。
107
+ *
108
+ * @example
109
+ * ```typescript
110
+ * // 数据变更后失效相关页面缓存
111
+ * await purgeKeys(['product:42', 'product-list']);
112
+ * ```
113
+ */
114
+ declare function purgeKeys(adapterOrKeys: CdnPurgeAdapter | string[], keys?: string[]): Promise<PurgeResult>;
115
+ /**
116
+ * URL 清除 CDN 缓存。
117
+ */
118
+ declare function purgeUrls(adapterOrUrls: CdnPurgeAdapter | string[], urls?: string[]): Promise<PurgeResult>;
119
+ /**
120
+ * 创建 Cache-Control 头部生成中间件。
121
+ *
122
+ * 根据路由规则自动设置 `Cache-Control` 响应头,
123
+ * 支持按路径模式自定义 max-age / s-maxage / immutable 等。
124
+ *
125
+ * @example
126
+ * ```typescript
127
+ * app.use('*', createCacheControlMiddleware({
128
+ * defaultMaxAge: 60,
129
+ * sMaxAge: 300,
130
+ * rules: [
131
+ * { pattern: '/_assets/**', maxAge: 31536000, immutable: true },
132
+ * { pattern: '/api/**', maxAge: 0 }
133
+ * ],
134
+ * exclude: ['/api/health', '/api/webhook']
135
+ * }));
136
+ * ```
137
+ */
138
+ declare function createCacheControlMiddleware(options?: CacheControlOptions): MiddlewareHandler<UbeanEnv$1>;
139
+ /**
140
+ * Cloudflare 缓存清除适配器
141
+ *
142
+ * 使用 Cloudflare API 按 Cache-Tag 清除缓存。
143
+ * 需要 zone ID 和 API Token( Cache Purge 权限)。
144
+ *
145
+ * @example
146
+ * ```typescript
147
+ * const adapter = createCloudflarePurgeAdapter({
148
+ * zoneId: process.env.CF_ZONE_ID!,
149
+ * apiToken: process.env.CF_API_TOKEN!
150
+ * });
151
+ * setGlobalPurgeAdapter(adapter);
152
+ * await purgeKeys(['product:42']);
153
+ * ```
154
+ */
155
+ declare function createCloudflarePurgeAdapter(options: {
156
+ zoneId: string;
157
+ apiToken: string;
158
+ endpoint?: string;
159
+ }): CdnPurgeAdapter;
160
+ /**
161
+ * Fastly 缓存清除适配器
162
+ *
163
+ * 使用 Fastly API 按 Surrogate-Key 清除缓存。
164
+ * 需要 service ID 和 API key。
165
+ */
166
+ declare function createFastlyPurgeAdapter(options: {
167
+ serviceId: string;
168
+ apiKey: string;
169
+ endpoint?: string;
170
+ }): CdnPurgeAdapter;
171
+ /**
172
+ * Mock purge 适配器(用于测试)
173
+ *
174
+ * 记录所有清除操作,便于断言。
175
+ */
176
+ declare function createMockPurgeAdapter(): CdnPurgeAdapter & {
177
+ purgedKeys: string[][];
178
+ purgedUrls: string[][];
179
+ purgedAllCount: number;
180
+ reset(): void;
490
181
  };
182
+ /**
183
+ * 清除全局状态(主要用于测试隔离)
184
+ */
185
+ declare function _resetCdnCache(): void;
491
186
  //#endregion
492
- export { type CacheEntry, type CacheRule, type CacheStore, type CorsOptions, type CronContext, type CronSchedule, type CronScheduler, type CronTaskDefinition, type CronTaskMeta, type Database, type DatabaseConnector, type DatabaseConnectorInstance, type DatabaseHooks, type DatabaseOptions, type DrizzleConfig, type KVNamespace, type KVOptions, type Migration, type ObservabilityConfig, type ObservabilityExporter, type ObservabilityHooks, type ObservabilityTracer, type Peer, type QueueDefinition, type QueueDriver, type QueueHandler, type QueueMessage, type QueueOptions, type QueueStats, REQUEST_ID_HEADER, type RateLimitInfo, type RateLimitOptions, type RateLimitStore, type RateLimitStoreEntry, type RequestIdOptions, type RouteRule, type SSEConnection, type SSEHandler, type SSEMessage, type SSEOptions, type ScheduledTask, type SchedulerOptions, type SendOptions, type ServeStaticOptions, type Span, type SpanAttributes, type SpanContext, type SpanEndOptions, type SpanEvent, type SpanOptions, type SpanStatus, type StorageDriver, type TracingMiddlewareOptions, type UbeanBindings, type UbeanContext, type UbeanEnv, type UbeanStorage, type UbeanVariables, type UpgradeResult, type WebSocketDefinition, type WebSocketHooks, type WebSocketRoom, broadcast, broadcastSSE, cachedEventHandler, clearCacheStore, clearGlobalStorage, clearQueueDefinitions, clearSSEState, clearScheduledTasks, clearWebSocketState, closeAllSSE, closeDatabases, createCacheMiddleware, createConsoleExporter, createCorsMiddleware, createCronContext, createKV, createMemoryCronScheduler, createMemoryDriver, createMemoryQueueDriver, createMemoryRateLimitStore, createMemoryStore, createObservabilityTracer, createOpenTelemetryExporter, createRateLimitMiddleware, createRoom, createSSEStream, createSpan, createStorage, createTracingMiddleware, createWebSocketMiddleware, defineCors, defineDatabase, defineQueue, defineRateLimit, defineRoom, defineSSE, defineScheduled, defineWebSocket, formatSSEMessage, generateRequestId, getAllQueueStats, getDatabaseHooks, getGlobalTracer, getQueueDefinitions, getQueueStats, getRequestId, getRoom, getRooms, getSSEConnections, getScheduledTasks, getSpan, getWebSocketDefinitions, handleClose, handleError, handleMessage, handleUpgrade, invalidateRouteCache, migrateDatabase, parseCron, rawSql as raw, rawSql, rawSql as sqlRaw, registerDb0Create, registerWebSocket, resetCronRunCounts, resolveRouteCacheRules, runMigrations, runScheduledTask, sendMessage, sendMessages, serveStatic, setGlobalTracer, setQueueDriver, sseHeaders, startCronScheduler, startQueueWorkers, startSpan, stopQueueWorkers, useCacheStore, useDatabase, useKV, useQueueDriver, useStorage, validateCron, withSpan };
187
+ export { type AnalyticsContext, type AnalyticsEvent, type AnalyticsMiddlewareOptions, type AnalyticsProperties, type AnalyticsProvider, type AnalyticsProviderOptions, type AnalyticsRecord, type AnalyticsTrackOptions, type CacheControlOptions, type CacheEntry, type CacheRule, type CacheStore, type CacheWrapOptions, type CachedFunctionOptions, type CdnPurgeAdapter, type ComponentCacheEntry, type ComponentCacheStore, type ContentSecurityPolicyDirectives, type CorsOptions, type CronContext, type CronSchedule, type CronScheduler, type CronTaskDefinition, type CronTaskMeta, type CsrfOptions, type DataCacheMiddlewareOptions, type Database, type DatabaseConnector, type DatabaseConnectorInstance, type DatabaseHooks, type DatabaseOptions, type DefineEmailProviderOptions, type DraftMode, type DraftModeOptions, type DrizzleConfig, type EmailAttachment, type EmailOptions, type EmailProvider, type EmailProviderConfig, type EmailProviderType, type EmailResult, type EmailTransport, type ExperimentAssignment, type ExperimentDefinition, type ExperimentOptions, type FeatureFlagDefinition, type FeatureFlagOptions, type FeatureFlagStore, type FeatureFlagsMiddlewareOptions, type FetchCacheOptions, type FetchInitWithNext, type FlagContext, type FlagEvaluation, type FlagKind, type FlagValue, type KVNamespace, type KVOptions, type LogEmailProviderConfig, type Migration, type MockEmailProviderConfig, type MockEmailTransport, type ObservabilityConfig, type ObservabilityExporter, type ObservabilityHooks, type ObservabilityTracer, type Peer, type PurgeResult, type QueueDefinition, type QueueDriver, type QueueHandler, type QueueMessage, type QueueOptions, type QueueStats, REQUEST_ID_HEADER, type RateLimitInfo, type RateLimitOptions, type RateLimitStore, type RateLimitStoreEntry, type RequestIdOptions, type RevalidationContext, type RevalidationEntry, type RevalidationFetcher, type RevalidationKey, type RevalidationResult, type RouteRule, type SSEConnection, type SSEHandler, type SSEMessage, type SSEOptions, type ScheduledTask, type SchedulerOptions, type SecurityHeadersOptions, type Segment, type SegmentRule, type SendOptions, type SendmailEmailProviderConfig, type ServeStaticOptions, type Session, type SessionData, type SessionOptions, type SessionStore, type SingleFlightOptions, type SmtpEmailProviderConfig, type Span, type SpanAttributes, type SpanContext, type SpanEndOptions, type SpanEvent, type SpanOptions, type SpanStatus, type StorageDriver, type SurrogateKeyHeader, type TracingMiddlewareOptions, type UbeanBindings, type UbeanContext, type UbeanEnv, type UbeanStorage, type UbeanVariables, type UpgradeResult, type Variant, type WebSocketDefinition, type WebSocketHooks, type WebSocketRoom, _resetCdnCache, after, broadcast, broadcastSSE, cacheLife, cacheTag, cachedEventHandler, clearAnalyticsProviders, clearCacheStore, clearComponentCache, clearComponentCacheStore, clearEmailProviders, clearFeatureFlags, clearFetchDataCache, clearGlobalStorage, clearQueueDefinitions, clearRevalidationRegistry, clearSSEState, clearScheduledTasks, clearSentEmails, clearWebSocketState, closeAllSSE, closeDatabases, createAfterMiddleware, createAnalyticsMiddleware, createCacheControlMiddleware, createCacheMiddleware, createCloudflarePurgeAdapter, createComponentMemoryStore, createConsoleExporter, createCorsMiddleware, createCronContext, createCsrfMiddleware, createDataCacheMiddleware, createDraftModeMiddleware, createEmailTransport, createFastlyPurgeAdapter, createFeatureFlagsMiddleware, createFetchMemoizationMiddleware, createKV, createLogAnalyticsProvider, createMemoizedFetch, createMemoryAnalyticsProvider, createMemoryCronScheduler, createMemoryDriver, createMemoryFeatureFlagStore, createMemoryQueueDriver, createMemoryRateLimitStore, createMemoryStore, createMockAnalyticsProvider, createMockPurgeAdapter, createObservabilityTracer, createOpenTelemetryExporter, createRateLimitMiddleware, createRoom, createSSEStream, createSecurityHeadersMiddleware, createSessionMiddleware, createSingleFlightMiddleware, createSpan, createStorage, createStorageSessionStore, createTracingMiddleware, createWebSocketMiddleware, defineAnalytics, defineAnalyticsProvider, defineCachedFunction, defineCors, defineCsrf, defineDatabase, defineDraftMode, defineEmailProvider, defineExperiment, defineFeatureFlag, defineQueue, defineRateLimit, defineRevalidation, defineRoom, defineSSE, defineScheduled, defineSecurityHeaders, defineSessionStore, defineSingleFlight, defineSurrogateKeys, defineWebSocket, disableDraftMode, enableDraftMode, evaluateFlag, evaluateFlagFromContext, evaluateFlagWithReason, extractAnalyticsContext, extractFlagContext, flushAfterCallbacks, formatSSEMessage, generateCsrfToken, generateRequestId, getAfterCallbackCount, getAllQueueStats, getAnalyticsProvider, getDataCacheSize, getDatabaseHooks, getEmailProvider, getEmailProviderNames, getEmailTransport, getGlobalAnalyticsProvider, getGlobalFeatureFlagStore, getGlobalPurgeAdapter, getGlobalTracer, getInvalidatedKeys, getQueueDefinitions, getQueueStats, getRequestId, getRevalidationEntries, getRoom, getRooms, getSSEConnections, getScheduledTasks, getSentEmails, getSpan, getSurrogateKeys, getVariant, getVariantAssignment, getVariantFromContext, getWebSocketDefinitions, handleClose, handleError, handleMessage, handleUpgrade, invalidate, invalidateKey, invalidateRouteCache, isDraftMode, listAnalyticsProviders, listExperimentNames, listFlagNames, migrateDatabase, parseCron, purgeKeys, purgeUrls, rawSql as raw, rawSql, rawSql as sqlRaw, registerAnalyticsProvider, registerDb0Create, registerWebSocket, removeExperiment, removeFeatureFlag, renderEmailTemplate, resetCronRunCounts, resolveRouteCacheRules, revalidateDataCachePath, revalidateDataCacheTag, revalidatePath, revalidateTag, revalidateTags, runMigrations, runRevalidation, runScheduledTask, sendEmail, sendMessage, sendMessages, serializeCsp, serveStatic, setDefaultEmailProvider, setGlobalAnalyticsProvider, setGlobalFeatureFlagStore, setGlobalPurgeAdapter, setGlobalTracer, setQueueDriver, sseHeaders, startCronScheduler, startQueueWorkers, startSpan, stopQueueWorkers, trackEvent, trackPageView, trackRaw, unregisterAnalyticsProvider, unregisterRevalidation, useAnalytics, useCacheStore, useComponentCacheStore, useDatabase, useDraftMode, useEmailProvider, useExperiments, useFlagContext, useFlags, useKV, useQueueDriver, useSession, useStorage, validateCron, withSpan, wrapWithCache };