@cequrebackends/cequre-ts 0.11.4

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 (60) hide show
  1. package/dist/adapters/bun/bun-cron.d.ts +20 -0
  2. package/dist/adapters/bun/bun-media.d.ts +9 -0
  3. package/dist/adapters/bun/bun-redis-cache.d.ts +33 -0
  4. package/dist/adapters/bun/bun-response.d.ts +13 -0
  5. package/dist/adapters/bun/bun-server.d.ts +6 -0
  6. package/dist/adapters/bun/bun-storage.d.ts +10 -0
  7. package/dist/adapters/bun/bun-websocket.d.ts +104 -0
  8. package/dist/adapters/bun/index.d.ts +9 -0
  9. package/dist/adapters/bun/index.js +547 -0
  10. package/dist/adapters/node/index.d.ts +9 -0
  11. package/dist/adapters/node/index.js +902 -0
  12. package/dist/adapters/node/node-cron.d.ts +20 -0
  13. package/dist/adapters/node/node-media.d.ts +9 -0
  14. package/dist/adapters/node/node-redis-cache.d.ts +32 -0
  15. package/dist/adapters/node/node-response.d.ts +13 -0
  16. package/dist/adapters/node/node-server.d.ts +6 -0
  17. package/dist/adapters/node/node-storage.d.ts +10 -0
  18. package/dist/adapters/node/node-websocket.d.ts +102 -0
  19. package/dist/index-17yswtmg.js +175 -0
  20. package/dist/index-kyvy0s1x.js +2662 -0
  21. package/dist/index-mfqj7cwr.js +165 -0
  22. package/dist/index-rf1kdn5b.js +732 -0
  23. package/dist/index.d.ts +18 -0
  24. package/dist/index.js +3152 -0
  25. package/dist/interface-map.d.ts +175 -0
  26. package/dist/shared/core/adapter.d.ts +84 -0
  27. package/dist/shared/core/base-sql-adapter.d.ts +34 -0
  28. package/dist/shared/core/cache.d.ts +8 -0
  29. package/dist/shared/core/email.d.ts +53 -0
  30. package/dist/shared/core/index.d.ts +12 -0
  31. package/dist/shared/core/index.js +47 -0
  32. package/dist/shared/core/openapi.d.ts +24 -0
  33. package/dist/shared/core/plugins.d.ts +2 -0
  34. package/dist/shared/core/request.d.ts +32 -0
  35. package/dist/shared/core/sdk.d.ts +3 -0
  36. package/dist/shared/core/stream.d.ts +24 -0
  37. package/dist/shared/core/types-generator.d.ts +0 -0
  38. package/dist/shared/core/types.d.ts +304 -0
  39. package/dist/shared/core/ulid.d.ts +5 -0
  40. package/dist/shared/core/validator.d.ts +32 -0
  41. package/dist/shared/main/access-evaluator.d.ts +13 -0
  42. package/dist/shared/main/access.d.ts +34 -0
  43. package/dist/shared/main/aot.d.ts +3 -0
  44. package/dist/shared/main/hooks.d.ts +76 -0
  45. package/dist/shared/main/population.d.ts +13 -0
  46. package/dist/shared/main/router.d.ts +112 -0
  47. package/dist/shared/main/runtime.d.ts +195 -0
  48. package/dist/shared/main/sse.d.ts +87 -0
  49. package/dist/shared/utils/crypto.d.ts +23 -0
  50. package/dist/shared/utils/durable-queue.d.ts +20 -0
  51. package/dist/shared/utils/duration.d.ts +15 -0
  52. package/dist/shared/utils/error.d.ts +52 -0
  53. package/dist/shared/utils/kv/adapters/memory.d.ts +20 -0
  54. package/dist/shared/utils/kv/adapters/sqlite.d.ts +32 -0
  55. package/dist/shared/utils/kv/index.d.ts +37 -0
  56. package/dist/shared/utils/kv/types.d.ts +38 -0
  57. package/dist/shared/utils/logger.d.ts +42 -0
  58. package/dist/shared/utils/queue-manager.d.ts +64 -0
  59. package/dist/shared/utils/url.d.ts +13 -0
  60. package/package.json +63 -0
@@ -0,0 +1,20 @@
1
+ import type { CronProvider } from "../../shared/core/types";
2
+ export declare class BunCronProvider implements CronProvider {
3
+ private localJobs;
4
+ private useBullMQ;
5
+ constructor();
6
+ registerJob(name: string, schedule: string, handler: () => void | Promise<void>): void;
7
+ /**
8
+ * Stops a specific cron job by name
9
+ */
10
+ stop(name: string): Promise<boolean>;
11
+ /**
12
+ * Safely stops all running cron jobs
13
+ */
14
+ stopAll(): Promise<void>;
15
+ /**
16
+ * Returns a list of all currently running cron job names
17
+ */
18
+ list(): Promise<string[]>;
19
+ startAll(): void;
20
+ }
@@ -0,0 +1,9 @@
1
+ export interface CequreStreamMediaOptions {
2
+ provider?: "local" | "s3";
3
+ maxChunkSize?: number;
4
+ s3Config?: {
5
+ bucket?: string;
6
+ expiresIn?: number;
7
+ };
8
+ }
9
+ export declare function CequreStreamMedia(request: Request, absolutePathOrUrl: string, options?: CequreStreamMediaOptions): Response;
@@ -0,0 +1,33 @@
1
+ import type { KVAdapter } from "../../shared/utils/kv/types";
2
+ /**
3
+ * Redis KV adapter using Bun's built-in `Bun.redis` client.
4
+ * No external dependencies required — Bun ships with native Redis support.
5
+ *
6
+ * @example
7
+ * ```ts
8
+ * import { CequreKV } from "@cequrebackends/cequre-ts";
9
+ * const kv = new CequreKV({ driver: "redis", redis: { url: "redis://localhost:6379" } });
10
+ * ```
11
+ */
12
+ export declare class RedisAdapter implements KVAdapter {
13
+ private redis;
14
+ constructor(options?: {
15
+ url?: string;
16
+ });
17
+ get<T = unknown>(key: string): Promise<T | null>;
18
+ getMany<T = unknown>(keys: string[]): Promise<Map<string, T>>;
19
+ set(key: string, value: unknown, ttl?: number): Promise<void>;
20
+ setMany(entries: Array<{
21
+ key: string;
22
+ value: unknown;
23
+ ttl?: number;
24
+ }>): Promise<void>;
25
+ delete(key: string): Promise<boolean>;
26
+ deleteMany(keys: string[]): Promise<number>;
27
+ has(key: string): Promise<boolean>;
28
+ keys(prefix?: string): Promise<string[]>;
29
+ count(): Promise<number>;
30
+ clear(): Promise<void>;
31
+ cleanup(): number;
32
+ close(): void;
33
+ }
@@ -0,0 +1,13 @@
1
+ export type SerializableResponseBody = string | number | boolean | null | undefined | Record<string, unknown> | unknown[];
2
+ export declare const UPGRADED: unique symbol;
3
+ export type BunRouteResult<T = SerializableResponseBody> = Response | T | typeof UPGRADED;
4
+ export declare function json(data: unknown, init?: ResponseInit): Response;
5
+ export declare function empty(status?: number, init?: ResponseInit): Response;
6
+ export declare function redirect(location: string, status?: number, init?: ResponseInit): Response;
7
+ export declare function error(message: string, status?: number, code?: string, init?: ResponseInit): Response;
8
+ export declare function notFound(message?: string): Response;
9
+ export declare function methodNotAllowed(allowedMethods: string[]): Response;
10
+ export declare function file(file: Blob | ArrayBuffer | Uint8Array | string, init?: ResponseInit): Response;
11
+ export declare function stream(data: ReadableStream | AsyncIterable<unknown> | Iterable<unknown>, init?: ResponseInit): Response;
12
+ export declare function toResponse(result: BunRouteResult): Response | undefined;
13
+ export declare function routeErrorToResponse(errorValue: unknown, request?: Request): Response;
@@ -0,0 +1,6 @@
1
+ import type { ServerProvider, CequreServerConfig } from "../../shared/core/types";
2
+ export declare class BunServerProvider implements ServerProvider {
3
+ private server;
4
+ start(config: CequreServerConfig): any;
5
+ stop(): Promise<void>;
6
+ }
@@ -0,0 +1,10 @@
1
+ import type { StorageProvider, UploadedFile } from '../../shared/core/types';
2
+ export declare class LocalStorageProvider implements StorageProvider {
3
+ private readonly uploadDir;
4
+ private readonly apiPrefix;
5
+ constructor(uploadDir?: string, apiPrefix?: string);
6
+ saveFile(file: File, options?: {
7
+ filename?: string;
8
+ }): Promise<UploadedFile>;
9
+ deleteFile(filename: string): Promise<void>;
10
+ }
@@ -0,0 +1,104 @@
1
+ export interface CequreServerWebSocket {
2
+ id: string;
3
+ data: Record<string, unknown>;
4
+ send(message: string | ArrayBuffer | Uint8Array, compress?: boolean): number;
5
+ }
6
+ export interface CequreWebSocketData {
7
+ id: string;
8
+ path: string;
9
+ handler: CequreWebSocketHandler;
10
+ }
11
+ type BroadcastOptions = {
12
+ exclude?: string[];
13
+ };
14
+ type MaybePromise<T> = T | Promise<T>;
15
+ export interface CequreWebSocketHandler {
16
+ open?(ws: Bun.ServerWebSocket<CequreWebSocketData>): void | Promise<void>;
17
+ message?(ws: Bun.ServerWebSocket<CequreWebSocketData>, message: string | Buffer): void | Promise<void>;
18
+ close?(ws: Bun.ServerWebSocket<CequreWebSocketData>, code: number, reason: string): void | Promise<void>;
19
+ drain?(ws: Bun.ServerWebSocket<CequreWebSocketData>): void | Promise<void>;
20
+ }
21
+ export declare class WebSocketManager {
22
+ private connections;
23
+ private rooms;
24
+ private connectionRooms;
25
+ private metadata;
26
+ private lastPong;
27
+ private heartbeatTimer;
28
+ register(ws: CequreServerWebSocket): void;
29
+ remove(wsOrId: CequreServerWebSocket | string): void;
30
+ pong(id: string): void;
31
+ startHeartbeat(intervalMs?: number, timeoutMs?: number): void;
32
+ stopHeartbeat(): void;
33
+ joinRoom(id: string, room: string): void;
34
+ leaveRoom(id: string, room: string): void;
35
+ getRoomMembers(room: string): string[];
36
+ getConnectionRooms(id: string): string[];
37
+ listRooms(): string[];
38
+ sendTo(id: string, payload: unknown): boolean;
39
+ broadcastToRoom(room: string, payload: unknown, { exclude }?: BroadcastOptions): number;
40
+ broadcastAll(payload: unknown, { exclude }?: BroadcastOptions): number;
41
+ setMeta(id: string, key: string, value: unknown): void;
42
+ getMeta(id: string, key: string): unknown;
43
+ get connectionCount(): number;
44
+ get roomCount(): number;
45
+ getStats(): {
46
+ connections: number;
47
+ rooms: {
48
+ [k: string]: number;
49
+ };
50
+ heartbeatActive: boolean;
51
+ };
52
+ }
53
+ export declare const wsManager: WebSocketManager;
54
+ export declare function createWebSocketHandler({ heartbeat, onJoinRoom, }?: {
55
+ heartbeat?: {
56
+ interval?: number;
57
+ timeout?: number;
58
+ } | false;
59
+ onJoinRoom?: (room: string, ws: CequreServerWebSocket) => MaybePromise<boolean>;
60
+ }): CequreWebSocketHandler;
61
+ export declare function createBunWebSocketRoute({ path, heartbeat, onJoinRoom, }?: {
62
+ path?: string;
63
+ heartbeat?: {
64
+ interval?: number;
65
+ timeout?: number;
66
+ } | false;
67
+ onJoinRoom?: (room: string, ws: CequreServerWebSocket) => MaybePromise<boolean>;
68
+ }): (request: Request, server: any) => Promise<Response>;
69
+ export declare function createBunWebSocketHandlers(): Bun.WebSocketHandler<CequreWebSocketData>;
70
+ export declare class CequreWebsocket {
71
+ static get manager(): WebSocketManager;
72
+ static route(options?: Parameters<typeof createBunWebSocketRoute>[0]): (request: Request, server: any) => Promise<Response>;
73
+ static handler(options?: Parameters<typeof createWebSocketHandler>[0]): CequreWebSocketHandler;
74
+ static handlers(): Bun.WebSocketHandler<CequreWebSocketData>;
75
+ static register(ws: CequreServerWebSocket): void;
76
+ static remove(wsOrId: CequreServerWebSocket | string): void;
77
+ static pong(id: string): void;
78
+ static startHeartbeat(intervalMs?: number, timeoutMs?: number): void;
79
+ static stopHeartbeat(): void;
80
+ static joinRoom(id: string, room: string): void;
81
+ static leaveRoom(id: string, room: string): void;
82
+ static getRoomMembers(room: string): string[];
83
+ static getConnectionRooms(id: string): string[];
84
+ static listRooms(): string[];
85
+ static sendTo(id: string, payload: unknown): boolean;
86
+ static broadcastToRoom(room: string, payload: unknown, opts?: {
87
+ exclude?: string[];
88
+ }): number;
89
+ static broadcastAll(payload: unknown, opts?: {
90
+ exclude?: string[];
91
+ }): number;
92
+ static setMeta(id: string, key: string, value: unknown): void;
93
+ static getMeta(id: string, key: string): unknown;
94
+ static get connectionCount(): number;
95
+ static get roomCount(): number;
96
+ static getStats(): {
97
+ connections: number;
98
+ rooms: {
99
+ [k: string]: number;
100
+ };
101
+ heartbeatActive: boolean;
102
+ };
103
+ }
104
+ export {};
@@ -0,0 +1,9 @@
1
+ export * from "./bun-server";
2
+ export * from "./bun-cron";
3
+ export * from "./bun-websocket";
4
+ export * from "./bun-storage";
5
+ export * from "./bun-redis-cache";
6
+ export * from "./bun-response";
7
+ export * from "./bun-media";
8
+ import type { CequreConfig } from "../../shared/main/runtime";
9
+ export declare function withBun(config: CequreConfig): CequreConfig;