@gravito/ripple 4.0.0 → 4.0.3

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 (225) 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 -2
  4. package/dist/core/src/Application.d.ts +41 -0
  5. package/dist/core/src/ConfigManager.d.ts +39 -0
  6. package/dist/core/src/Container/RequestScopeManager.d.ts +62 -0
  7. package/dist/core/src/Container/RequestScopeMetrics.d.ts +144 -0
  8. package/dist/core/src/Container.d.ts +45 -0
  9. package/dist/core/src/ErrorHandler.d.ts +3 -0
  10. package/dist/core/src/HookManager.d.ts +104 -165
  11. package/dist/core/src/PlanetCore.d.ts +114 -1
  12. package/dist/core/src/RequestContext.d.ts +97 -0
  13. package/dist/core/src/Router.d.ts +32 -46
  14. package/dist/core/src/ServiceProvider.d.ts +22 -0
  15. package/dist/core/src/adapters/bun/BunContext.d.ts +10 -1
  16. package/dist/core/src/adapters/bun/BunNativeAdapter.d.ts +35 -0
  17. package/dist/core/src/adapters/bun/BunWebSocketHandler.d.ts +48 -0
  18. package/dist/core/src/adapters/bun/RadixRouter.d.ts +1 -0
  19. package/dist/core/src/adapters/bun/index.d.ts +7 -0
  20. package/dist/core/src/binary/BinaryUtils.d.ts +105 -0
  21. package/dist/core/src/binary/index.d.ts +5 -0
  22. package/dist/core/src/cli/queue-commands.d.ts +6 -0
  23. package/dist/core/src/compat/async-local-storage.d.ts +7 -0
  24. package/dist/core/src/compat/crypto.d.ts +6 -0
  25. package/dist/core/src/engine/AOTRouter.d.ts +16 -1
  26. package/dist/core/src/engine/FastContext.d.ts +42 -1
  27. package/dist/core/src/engine/Gravito.d.ts +13 -19
  28. package/dist/core/src/engine/MinimalContext.d.ts +23 -0
  29. package/dist/core/src/engine/analyzer.d.ts +92 -6
  30. package/dist/core/src/engine/types.d.ts +6 -0
  31. package/dist/core/src/error-handling/RequestScopeErrorContext.d.ts +126 -0
  32. package/dist/core/src/events/BackpressureManager.d.ts +215 -0
  33. package/dist/core/src/events/DeadLetterQueue.d.ts +75 -1
  34. package/dist/core/src/events/EventBackend.d.ts +2 -1
  35. package/dist/core/src/events/EventOptions.d.ts +99 -4
  36. package/dist/core/src/events/EventPriorityQueue.d.ts +36 -175
  37. package/dist/core/src/events/FlowControlStrategy.d.ts +109 -0
  38. package/dist/core/src/events/MessageQueueBridge.d.ts +184 -0
  39. package/dist/core/src/events/PriorityEscalationManager.d.ts +82 -0
  40. package/dist/core/src/events/RetryScheduler.d.ts +104 -0
  41. package/dist/core/src/events/WorkerPool.d.ts +98 -0
  42. package/dist/core/src/events/WorkerPoolConfig.d.ts +153 -0
  43. package/dist/core/src/events/WorkerPoolMetrics.d.ts +65 -0
  44. package/dist/core/src/events/aggregation/AggregationWindow.d.ts +77 -0
  45. package/dist/core/src/events/aggregation/DeduplicationManager.d.ts +135 -0
  46. package/dist/core/src/events/aggregation/EventAggregationManager.d.ts +108 -0
  47. package/dist/core/src/events/aggregation/EventBatcher.d.ts +99 -0
  48. package/dist/core/src/events/aggregation/types.d.ts +117 -0
  49. package/dist/core/src/events/index.d.ts +18 -6
  50. package/dist/core/src/events/observability/OTelEventMetrics.d.ts +92 -0
  51. package/dist/core/src/events/observability/StreamWorkerMetrics.d.ts +76 -0
  52. package/dist/core/src/events/observability/index.d.ts +4 -0
  53. package/dist/core/src/events/queue-core.d.ts +77 -0
  54. package/dist/core/src/events/task-executor.d.ts +51 -0
  55. package/dist/core/src/events/types.d.ts +59 -0
  56. package/dist/core/src/ffi/NativeAccelerator.d.ts +62 -0
  57. package/dist/core/src/ffi/NativeHasher.d.ts +139 -0
  58. package/dist/core/src/ffi/cbor-fallback.d.ts +96 -0
  59. package/dist/core/src/ffi/hash-fallback.d.ts +33 -0
  60. package/dist/core/src/ffi/index.d.ts +10 -0
  61. package/dist/core/src/ffi/types.d.ts +135 -0
  62. package/dist/core/src/health/HealthProvider.d.ts +67 -0
  63. package/dist/core/src/helpers/Str.d.ts +15 -0
  64. package/dist/core/src/hooks/ActionManager.d.ts +132 -0
  65. package/dist/core/src/hooks/AsyncDetector.d.ts +84 -0
  66. package/dist/core/src/hooks/FilterManager.d.ts +71 -0
  67. package/dist/core/src/hooks/MigrationWarner.d.ts +24 -0
  68. package/dist/core/src/hooks/dlq-operations.d.ts +60 -0
  69. package/dist/core/src/hooks/types.d.ts +107 -0
  70. package/dist/core/src/http/CookieJar.d.ts +2 -2
  71. package/dist/core/src/http/types.d.ts +43 -3
  72. package/dist/core/src/index.d.ts +504 -15
  73. package/dist/core/src/observability/QueueDashboard.d.ts +136 -0
  74. package/dist/core/src/observability/contracts.d.ts +137 -0
  75. package/dist/core/src/reliability/DeadLetterQueueManager.d.ts +36 -3
  76. package/dist/core/src/runtime/adapter-bun.d.ts +12 -0
  77. package/dist/core/src/runtime/adapter-deno.d.ts +12 -0
  78. package/dist/core/src/runtime/adapter-node.d.ts +12 -0
  79. package/dist/core/src/runtime/adapter-unknown.d.ts +13 -0
  80. package/dist/core/src/runtime/archive.d.ts +17 -0
  81. package/dist/core/src/runtime/compression.d.ts +21 -0
  82. package/dist/core/src/runtime/deep-equals.d.ts +56 -0
  83. package/dist/core/src/runtime/detection.d.ts +22 -0
  84. package/dist/core/src/runtime/escape.d.ts +34 -0
  85. package/dist/core/src/runtime/index.d.ts +44 -0
  86. package/dist/core/src/runtime/markdown.d.ts +44 -0
  87. package/dist/core/src/runtime/types.d.ts +436 -0
  88. package/dist/core/src/runtime-helpers.d.ts +67 -0
  89. package/dist/core/src/runtime.d.ts +10 -118
  90. package/dist/core/src/testing/HttpTester.d.ts +1 -0
  91. package/dist/core/src/transpiler-utils.d.ts +170 -0
  92. package/dist/{ripple/src/engines → engines}/BunEngine.d.ts +11 -0
  93. package/dist/engines/UWebSocketsEngine.d.ts +97 -0
  94. package/dist/engines/WsEngine.d.ts +69 -0
  95. package/dist/{ripple/src/engines → engines}/index.d.ts +4 -0
  96. package/dist/index.js +1 -7139
  97. package/dist/index.js.map +3 -69
  98. package/dist/{ripple/src/serializers → serializers}/ISerializer.d.ts +1 -1
  99. package/dist/{ripple/src/serializers → serializers}/JsonSerializer.d.ts +1 -1
  100. package/dist/{ripple/src/serializers → serializers}/ProtobufSerializer.d.ts +6 -3
  101. package/dist/{ripple/src/types.d.ts → types.d.ts} +11 -0
  102. package/package.json +7 -2
  103. package/dist/atlas/src/DB.d.ts +0 -301
  104. package/dist/atlas/src/OrbitAtlas.d.ts +0 -9
  105. package/dist/atlas/src/config/defineConfig.d.ts +0 -14
  106. package/dist/atlas/src/config/index.d.ts +0 -7
  107. package/dist/atlas/src/config/loadConfig.d.ts +0 -48
  108. package/dist/atlas/src/connection/Connection.d.ts +0 -108
  109. package/dist/atlas/src/connection/ConnectionManager.d.ts +0 -111
  110. package/dist/atlas/src/drivers/BunSQLDriver.d.ts +0 -32
  111. package/dist/atlas/src/drivers/BunSQLPreparedStatement.d.ts +0 -118
  112. package/dist/atlas/src/drivers/MongoDBDriver.d.ts +0 -36
  113. package/dist/atlas/src/drivers/MySQLDriver.d.ts +0 -66
  114. package/dist/atlas/src/drivers/PostgresDriver.d.ts +0 -83
  115. package/dist/atlas/src/drivers/RedisDriver.d.ts +0 -43
  116. package/dist/atlas/src/drivers/SQLiteDriver.d.ts +0 -45
  117. package/dist/atlas/src/drivers/types.d.ts +0 -260
  118. package/dist/atlas/src/errors/index.d.ts +0 -45
  119. package/dist/atlas/src/grammar/Grammar.d.ts +0 -342
  120. package/dist/atlas/src/grammar/MongoGrammar.d.ts +0 -47
  121. package/dist/atlas/src/grammar/MySQLGrammar.d.ts +0 -54
  122. package/dist/atlas/src/grammar/NullGrammar.d.ts +0 -35
  123. package/dist/atlas/src/grammar/PostgresGrammar.d.ts +0 -62
  124. package/dist/atlas/src/grammar/SQLiteGrammar.d.ts +0 -32
  125. package/dist/atlas/src/index.d.ts +0 -67
  126. package/dist/atlas/src/migration/Migration.d.ts +0 -64
  127. package/dist/atlas/src/migration/MigrationRepository.d.ts +0 -65
  128. package/dist/atlas/src/migration/Migrator.d.ts +0 -110
  129. package/dist/atlas/src/migration/index.d.ts +0 -6
  130. package/dist/atlas/src/observability/AtlasMetrics.d.ts +0 -11
  131. package/dist/atlas/src/observability/AtlasObservability.d.ts +0 -15
  132. package/dist/atlas/src/observability/AtlasTracer.d.ts +0 -12
  133. package/dist/atlas/src/observability/index.d.ts +0 -9
  134. package/dist/atlas/src/orm/index.d.ts +0 -5
  135. package/dist/atlas/src/orm/model/DirtyTracker.d.ts +0 -121
  136. package/dist/atlas/src/orm/model/Model.d.ts +0 -449
  137. package/dist/atlas/src/orm/model/ModelRegistry.d.ts +0 -20
  138. package/dist/atlas/src/orm/model/concerns/HasAttributes.d.ts +0 -136
  139. package/dist/atlas/src/orm/model/concerns/HasEvents.d.ts +0 -36
  140. package/dist/atlas/src/orm/model/concerns/HasPersistence.d.ts +0 -87
  141. package/dist/atlas/src/orm/model/concerns/HasRelationships.d.ts +0 -117
  142. package/dist/atlas/src/orm/model/concerns/HasSerialization.d.ts +0 -64
  143. package/dist/atlas/src/orm/model/concerns/applyMixins.d.ts +0 -15
  144. package/dist/atlas/src/orm/model/concerns/index.d.ts +0 -12
  145. package/dist/atlas/src/orm/model/decorators.d.ts +0 -109
  146. package/dist/atlas/src/orm/model/errors.d.ts +0 -52
  147. package/dist/atlas/src/orm/model/index.d.ts +0 -10
  148. package/dist/atlas/src/orm/model/relationships.d.ts +0 -207
  149. package/dist/atlas/src/orm/model/types.d.ts +0 -12
  150. package/dist/atlas/src/orm/schema/SchemaRegistry.d.ts +0 -123
  151. package/dist/atlas/src/orm/schema/SchemaSniffer.d.ts +0 -54
  152. package/dist/atlas/src/orm/schema/index.d.ts +0 -6
  153. package/dist/atlas/src/orm/schema/types.d.ts +0 -85
  154. package/dist/atlas/src/query/Expression.d.ts +0 -60
  155. package/dist/atlas/src/query/NPlusOneDetector.d.ts +0 -10
  156. package/dist/atlas/src/query/QueryBuilder.d.ts +0 -573
  157. package/dist/atlas/src/query/clauses/GroupByClause.d.ts +0 -51
  158. package/dist/atlas/src/query/clauses/HavingClause.d.ts +0 -70
  159. package/dist/atlas/src/query/clauses/JoinClause.d.ts +0 -87
  160. package/dist/atlas/src/query/clauses/LimitClause.d.ts +0 -82
  161. package/dist/atlas/src/query/clauses/OrderByClause.d.ts +0 -69
  162. package/dist/atlas/src/query/clauses/SelectClause.d.ts +0 -71
  163. package/dist/atlas/src/query/clauses/WhereClause.d.ts +0 -167
  164. package/dist/atlas/src/query/clauses/index.d.ts +0 -11
  165. package/dist/atlas/src/schema/Blueprint.d.ts +0 -276
  166. package/dist/atlas/src/schema/ColumnDefinition.d.ts +0 -154
  167. package/dist/atlas/src/schema/ForeignKeyDefinition.d.ts +0 -37
  168. package/dist/atlas/src/schema/Schema.d.ts +0 -131
  169. package/dist/atlas/src/schema/grammars/MySQLSchemaGrammar.d.ts +0 -23
  170. package/dist/atlas/src/schema/grammars/PostgresSchemaGrammar.d.ts +0 -26
  171. package/dist/atlas/src/schema/grammars/SQLiteSchemaGrammar.d.ts +0 -28
  172. package/dist/atlas/src/schema/grammars/SchemaGrammar.d.ts +0 -97
  173. package/dist/atlas/src/schema/grammars/index.d.ts +0 -7
  174. package/dist/atlas/src/schema/index.d.ts +0 -8
  175. package/dist/atlas/src/seed/Factory.d.ts +0 -90
  176. package/dist/atlas/src/seed/Seeder.d.ts +0 -28
  177. package/dist/atlas/src/seed/SeederRunner.d.ts +0 -74
  178. package/dist/atlas/src/seed/index.d.ts +0 -6
  179. package/dist/atlas/src/types/index.d.ts +0 -1100
  180. package/dist/atlas/src/utils/levenshtein.d.ts +0 -9
  181. package/dist/core/src/adapters/PhotonAdapter.d.ts +0 -171
  182. package/dist/core/src/adapters/photon-types.d.ts +0 -73
  183. package/dist/core/src/http/middleware/BodySizeLimit.d.ts +0 -16
  184. package/dist/core/src/http/middleware/Cors.d.ts +0 -24
  185. package/dist/core/src/http/middleware/Csrf.d.ts +0 -23
  186. package/dist/core/src/http/middleware/HeaderTokenGate.d.ts +0 -28
  187. package/dist/core/src/http/middleware/SecurityHeaders.d.ts +0 -29
  188. package/dist/core/src/http/middleware/ThrottleRequests.d.ts +0 -18
  189. package/dist/core/src/instrumentation/index.d.ts +0 -35
  190. package/dist/core/src/instrumentation/opentelemetry.d.ts +0 -178
  191. package/dist/core/src/instrumentation/types.d.ts +0 -182
  192. package/dist/photon/src/index.d.ts +0 -84
  193. package/dist/photon/src/middleware/binary.d.ts +0 -31
  194. package/dist/photon/src/middleware/htmx.d.ts +0 -39
  195. package/dist/photon/src/middleware/ratelimit.d.ts +0 -157
  196. package/dist/photon/src/openapi.d.ts +0 -19
  197. /package/dist/{ripple/src/channels → channels}/Channel.d.ts +0 -0
  198. /package/dist/{ripple/src/channels → channels}/ChannelManager.d.ts +0 -0
  199. /package/dist/{ripple/src/channels → channels}/index.d.ts +0 -0
  200. /package/dist/{ripple/src/drivers → drivers}/LocalDriver.d.ts +0 -0
  201. /package/dist/{ripple/src/drivers → drivers}/NATSDriver.d.ts +0 -0
  202. /package/dist/{ripple/src/drivers → drivers}/RedisDriver.d.ts +0 -0
  203. /package/dist/{ripple/src/drivers → drivers}/index.d.ts +0 -0
  204. /package/dist/{ripple/src/engines → engines}/IRippleEngine.d.ts +0 -0
  205. /package/dist/{ripple/src/errors → errors}/RippleError.d.ts +0 -0
  206. /package/dist/{ripple/src/errors → errors}/index.d.ts +0 -0
  207. /package/dist/{ripple/src/events → events}/BroadcastEvent.d.ts +0 -0
  208. /package/dist/{ripple/src/events → events}/BroadcastManager.d.ts +0 -0
  209. /package/dist/{ripple/src/events → events}/Broadcaster.d.ts +0 -0
  210. /package/dist/{ripple/src/events → events}/index.d.ts +0 -0
  211. /package/dist/{ripple/src/health → health}/HealthChecker.d.ts +0 -0
  212. /package/dist/{ripple/src/health → health}/index.d.ts +0 -0
  213. /package/dist/{ripple/src/index.d.ts → index.d.ts} +0 -0
  214. /package/dist/{ripple/src/logging → logging}/Logger.d.ts +0 -0
  215. /package/dist/{ripple/src/logging → logging}/index.d.ts +0 -0
  216. /package/dist/{ripple/src/middleware → middleware}/InterceptorManager.d.ts +0 -0
  217. /package/dist/{ripple/src/observability → observability}/RippleMetrics.d.ts +0 -0
  218. /package/dist/{ripple/src/reliability → reliability}/AckManager.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/utils → utils}/MessageSerializer.d.ts +0 -0
  224. /package/dist/{ripple/src/utils → utils}/TokenBucket.d.ts +0 -0
  225. /package/dist/{ripple/src/utils → utils}/index.d.ts +0 -0
@@ -0,0 +1,436 @@
1
+ /**
2
+ * Runtime abstraction type definitions.
3
+ *
4
+ * @module runtime/types
5
+ * @since 3.2.0
6
+ */
7
+ /**
8
+ * Detected Javascript Runtime Environment
9
+ * @public
10
+ */
11
+ export type RuntimeKind = 'bun' | 'node' | 'deno' | 'unknown';
12
+ /**
13
+ * Options for spawning subprocesses
14
+ * @public
15
+ */
16
+ export interface RuntimeSpawnOptions {
17
+ cwd?: string;
18
+ env?: Record<string, string | undefined>;
19
+ stdin?: 'pipe' | 'inherit' | 'ignore';
20
+ stdout?: 'pipe' | 'inherit' | 'ignore';
21
+ stderr?: 'pipe' | 'inherit' | 'ignore';
22
+ timeout?: number;
23
+ signal?: AbortSignal;
24
+ }
25
+ /**
26
+ * Resource usage statistics from subprocess
27
+ * @public
28
+ */
29
+ export interface RuntimeResourceUsage {
30
+ cpuTime?: {
31
+ user: number;
32
+ system: number;
33
+ };
34
+ maxRSS?: number;
35
+ }
36
+ /**
37
+ * Optional resource usage statistics
38
+ * @internal
39
+ */
40
+ export type OptionalRuntimeResourceUsage = RuntimeResourceUsage | undefined;
41
+ /**
42
+ * Output from spawned subprocess
43
+ * @public
44
+ */
45
+ export interface RuntimeProcessOutput {
46
+ exitCode: number;
47
+ stdout: string;
48
+ stderr: string;
49
+ success: boolean;
50
+ timedOut: boolean;
51
+ }
52
+ /**
53
+ * Synchronous subprocess result
54
+ * @public
55
+ */
56
+ export interface RuntimeSpawnSyncResult {
57
+ exitCode: number;
58
+ stdout: string;
59
+ stderr: string;
60
+ success: boolean;
61
+ timedOut: boolean;
62
+ }
63
+ /**
64
+ * Abstract subprocess interface
65
+ * @public
66
+ */
67
+ export interface RuntimeProcess {
68
+ exited: Promise<number>;
69
+ stdout?: ReadableStream<Uint8Array> | null;
70
+ stderr?: ReadableStream<Uint8Array> | null;
71
+ kill?: (signal?: string | number) => void;
72
+ unref?: () => void;
73
+ resourceUsage?: () => Promise<OptionalRuntimeResourceUsage>;
74
+ }
75
+ /**
76
+ * File statistics abstraction
77
+ * @public
78
+ */
79
+ export interface RuntimeFileStat {
80
+ size: number;
81
+ }
82
+ /**
83
+ * HTTP Server configuration
84
+ * @public
85
+ */
86
+ export interface RuntimeServeConfig {
87
+ port?: number;
88
+ fetch: (req: Request, server?: unknown) => Response | Promise<Response>;
89
+ websocket?: unknown;
90
+ }
91
+ /**
92
+ * HTTP Server interface
93
+ * @public
94
+ */
95
+ export interface RuntimeServer {
96
+ stop?: () => void;
97
+ }
98
+ /**
99
+ * Incremental file writing interface (FileSink abstraction)
100
+ * @public
101
+ */
102
+ export interface RuntimeFileSink {
103
+ /** Write data to the file sink */
104
+ write(data: string | Uint8Array | ArrayBuffer): void;
105
+ /** Flush buffered data to disk */
106
+ flush(): Promise<void>;
107
+ /** Close the sink and flush remaining data */
108
+ end(): Promise<void>;
109
+ }
110
+ /**
111
+ * Abstraction layer for filesystem and process operations across runtimes.
112
+ * @public
113
+ */
114
+ export interface RuntimeAdapter {
115
+ kind: RuntimeKind;
116
+ spawn(command: string[], options?: RuntimeSpawnOptions): RuntimeProcess;
117
+ spawnAndCollect(command: string[], options?: RuntimeSpawnOptions): Promise<RuntimeProcessOutput>;
118
+ spawnSync(command: string[], options?: Omit<RuntimeSpawnOptions, 'signal'>): RuntimeSpawnSyncResult;
119
+ writeFile(path: string, data: Blob | Buffer | string | ArrayBuffer | Uint8Array): Promise<void>;
120
+ readFile(path: string): Promise<Uint8Array>;
121
+ readFileAsBlob(path: string): Promise<Blob>;
122
+ exists(path: string): Promise<boolean>;
123
+ stat(path: string): Promise<RuntimeFileStat>;
124
+ deleteFile(path: string): Promise<void>;
125
+ serve(config: RuntimeServeConfig): RuntimeServer;
126
+ /** Append data to a file (optional) */
127
+ appendFile?(path: string, data: string | Uint8Array): Promise<void>;
128
+ /** Read file as UTF-8 text (optional) */
129
+ readFileAsText?(path: string): Promise<string>;
130
+ /** Read and parse JSON file (optional) */
131
+ readFileAsJSON?<T = unknown>(path: string): Promise<T>;
132
+ /** Create directory (optional) */
133
+ mkdir?(path: string, options?: {
134
+ recursive?: boolean;
135
+ }): Promise<void>;
136
+ /** Read directory contents (optional) */
137
+ readDir?(path: string): Promise<Array<{
138
+ name: string;
139
+ isFile: boolean;
140
+ isDirectory: boolean;
141
+ }>>;
142
+ /** Get full file statistics including modification time (optional) */
143
+ statFull?(path: string): Promise<{
144
+ size: number;
145
+ mtimeMs: number;
146
+ isFile: boolean;
147
+ isDirectory: boolean;
148
+ }>;
149
+ /** Rename/move a file (optional) */
150
+ rename?(oldPath: string, newPath: string): Promise<void>;
151
+ /** Create an incremental file writer (FileSink) (optional) */
152
+ createFileSink?(path: string): RuntimeFileSink;
153
+ /** Recursively remove a directory (optional) */
154
+ removeRecursive?(path: string): Promise<void>;
155
+ /** Create/write a file exclusively (atomic) (optional) */
156
+ writeFileExclusive?(path: string, data: string | Uint8Array): Promise<void>;
157
+ }
158
+ /**
159
+ * Abstraction layer for password hashing
160
+ * @public
161
+ */
162
+ export interface RuntimePasswordAdapter {
163
+ hash(value: string, options: {
164
+ algorithm: 'bcrypt';
165
+ cost?: number;
166
+ } | {
167
+ algorithm: 'argon2id';
168
+ memoryCost?: number;
169
+ timeCost?: number;
170
+ parallelism?: number;
171
+ }): Promise<string>;
172
+ verify(value: string, hashed: string): Promise<boolean>;
173
+ }
174
+ /**
175
+ * SQLite Statement abstraction
176
+ * @public
177
+ */
178
+ export interface RuntimeSqliteStatement {
179
+ run(params?: Record<string, unknown>): void;
180
+ get(params?: Record<string, unknown>): unknown;
181
+ all(params?: Record<string, unknown>): unknown[];
182
+ }
183
+ /**
184
+ * SQLite Database abstraction
185
+ * @public
186
+ */
187
+ export interface RuntimeSqliteDatabase {
188
+ run(sql: string): void;
189
+ prepare(sql: string): RuntimeSqliteStatement;
190
+ query(sql: string): RuntimeSqliteStatement;
191
+ close(): void;
192
+ }
193
+ /**
194
+ * 歸檔項目 -- 支援多種資料來源
195
+ * @public
196
+ */
197
+ export interface ArchiveEntry {
198
+ /** 歸檔中的路徑(自動正規化為正斜線) */
199
+ readonly path: string;
200
+ /** 資料內容 */
201
+ readonly data: string | Blob | ArrayBuffer | Uint8Array;
202
+ }
203
+ /**
204
+ * 歸檔建立選項
205
+ * @public
206
+ */
207
+ export interface ArchiveCreateOptions {
208
+ /** 壓縮演算法(目前僅支援 gzip) */
209
+ compress?: 'gzip';
210
+ /** 壓縮等級(1-12,預設 6) */
211
+ level?: number;
212
+ }
213
+ /**
214
+ * 歸檔提取選項
215
+ * @public
216
+ */
217
+ export interface ArchiveExtractOptions {
218
+ /** Glob 模式過濾(僅提取匹配的檔案) */
219
+ glob?: string | readonly string[];
220
+ }
221
+ /**
222
+ * 歸檔中的檔案資訊
223
+ * @public
224
+ */
225
+ export interface ArchiveFileInfo {
226
+ /** 檔案路徑 */
227
+ readonly path: string;
228
+ /** 檔案大小(bytes) */
229
+ readonly size: number;
230
+ /** 最後修改時間 */
231
+ readonly lastModified: number;
232
+ /** 讀取文字內容 */
233
+ text(): Promise<string>;
234
+ /** 讀取為 ArrayBuffer */
235
+ arrayBuffer(): Promise<ArrayBuffer>;
236
+ }
237
+ /**
238
+ * 歸檔操作的運行時抽象
239
+ * @public
240
+ */
241
+ export interface RuntimeArchiveAdapter {
242
+ /**
243
+ * 從檔案/目錄映射建立歸檔
244
+ * @param entries - 路徑到內容的映射
245
+ * @param options - 壓縮選項
246
+ * @returns 歸檔的二進位資料
247
+ */
248
+ create(entries: Record<string, string | Blob | ArrayBuffer | Uint8Array>, options?: ArchiveCreateOptions): Promise<Uint8Array>;
249
+ /**
250
+ * 提取歸檔到指定目錄
251
+ * @param data - 歸檔二進位資料
252
+ * @param targetDir - 目標目錄(自動建立)
253
+ * @param options - 提取選項(glob 過濾)
254
+ * @returns 提取的檔案數量
255
+ */
256
+ extract(data: Blob | ArrayBuffer | Uint8Array, targetDir: string, options?: ArchiveExtractOptions): Promise<number>;
257
+ /**
258
+ * 讀取歸檔中的檔案列表(不提取)
259
+ * @param data - 歸檔二進位資料
260
+ * @param glob - 可選的 glob 過濾
261
+ * @returns 路徑到檔案資訊的映射
262
+ */
263
+ list(data: Blob | ArrayBuffer | Uint8Array, glob?: string | readonly string[]): Promise<Map<string, ArchiveFileInfo>>;
264
+ /**
265
+ * 從歸檔中讀取單一檔案
266
+ * @param data - 歸檔二進位資料
267
+ * @param filePath - 檔案路徑
268
+ * @returns 檔案內容,若不存在則回傳 null
269
+ */
270
+ readFile(data: Blob | ArrayBuffer | Uint8Array, filePath: string): Promise<Uint8Array | null>;
271
+ }
272
+ /**
273
+ * 壓縮選項
274
+ * @public
275
+ */
276
+ export interface CompressionOptions {
277
+ /** 壓縮等級(1-9,預設 6) */
278
+ level?: number;
279
+ }
280
+ /**
281
+ * 壓縮操作的運行時抽象
282
+ * @public
283
+ */
284
+ export interface RuntimeCompressionAdapter {
285
+ /**
286
+ * Gzip 壓縮(同步)
287
+ * @param data - 原始資料
288
+ * @param options - 壓縮選項
289
+ * @returns 壓縮後的資料
290
+ */
291
+ gzipSync(data: Uint8Array, options?: CompressionOptions): Uint8Array;
292
+ /**
293
+ * Gzip 解壓縮(同步)
294
+ * @param data - 壓縮資料
295
+ * @returns 原始資料
296
+ */
297
+ gunzipSync(data: Uint8Array): Uint8Array;
298
+ /**
299
+ * Deflate 壓縮(同步)
300
+ * @param data - 原始資料
301
+ * @param options - 壓縮選項
302
+ * @returns 壓縮後的資料
303
+ */
304
+ deflateSync(data: Uint8Array, options?: CompressionOptions): Uint8Array;
305
+ /**
306
+ * Inflate 解壓縮(同步)
307
+ * @param data - 壓縮資料
308
+ * @returns 原始資料
309
+ */
310
+ inflateSync(data: Uint8Array): Uint8Array;
311
+ /**
312
+ * Gzip 壓縮(非同步)
313
+ * @param data - 原始資料
314
+ * @param options - 壓縮選項
315
+ * @returns 壓縮後的資料
316
+ */
317
+ gzip(data: Uint8Array, options?: CompressionOptions): Promise<Uint8Array>;
318
+ /**
319
+ * Gzip 解壓縮(非同步)
320
+ * @param data - 壓縮資料
321
+ * @returns 原始資料
322
+ */
323
+ gunzip(data: Uint8Array): Promise<Uint8Array>;
324
+ }
325
+ /**
326
+ * archiveFromDirectory 的選項
327
+ * @public
328
+ */
329
+ export interface ArchiveFromDirectoryOptions {
330
+ /** 歸檔格式 */
331
+ format?: 'tar' | 'zip';
332
+ /** 壓縮選項 */
333
+ compress?: 'gzip';
334
+ /** 壓縮等級(1-12) */
335
+ level?: number;
336
+ /** Glob 模式過濾 */
337
+ glob?: string;
338
+ }
339
+ /**
340
+ * Markdown 渲染選項
341
+ * @public
342
+ */
343
+ export interface MarkdownRenderOptions {
344
+ /** 是否啟用 GFM 擴展(表格、刪除線、任務列表)。預設 true */
345
+ gfm?: boolean;
346
+ }
347
+ /**
348
+ * Markdown render() 自訂渲染回調集合。
349
+ *
350
+ * 每個回調攔截對應的 Markdown 元素,回傳自訂 HTML 字串。
351
+ * 僅在 Bun 原生環境(Bun.markdown.render)下完全支援;
352
+ * Fallback 環境下透過 marked Renderer 模擬。
353
+ *
354
+ * @public
355
+ */
356
+ export interface MarkdownRenderCallbacks {
357
+ /** 標題回調:(content, { level }) => html */
358
+ heading?: (content: string, opts: {
359
+ level: number;
360
+ }) => string;
361
+ /** 連結回調:(content, { href, title? }) => html */
362
+ link?: (content: string, opts: {
363
+ href: string;
364
+ title?: string;
365
+ }) => string;
366
+ /** 程式碼區塊回調:(code, { language? }) => html */
367
+ code?: (code: string, opts: {
368
+ language?: string;
369
+ }) => string;
370
+ /** 行內程式碼回調:(code) => html */
371
+ codespan?: (code: string) => string;
372
+ /** 圖片回調:(alt, { src, title? }) => html */
373
+ image?: (alt: string, opts: {
374
+ src: string;
375
+ title?: string;
376
+ }) => string;
377
+ /** 原始 HTML 回調:(rawHtml) => html(用於 XSS 過濾) */
378
+ html?: (rawHtml: string) => string;
379
+ /** 段落回調:(content) => html */
380
+ paragraph?: (content: string) => string;
381
+ /** 粗體回調:(content) => html */
382
+ strong?: (content: string) => string;
383
+ /** 斜體回調:(content) => html */
384
+ em?: (content: string) => string;
385
+ /** 刪除線回調:(content) => html */
386
+ del?: (content: string) => string;
387
+ /** 列表回調:(content, { ordered, start? }) => html */
388
+ list?: (content: string, opts: {
389
+ ordered: boolean;
390
+ start?: number;
391
+ }) => string;
392
+ /** 列表項回調:(content) => html */
393
+ listItem?: (content: string) => string;
394
+ /** 引用區塊回調:(content) => html */
395
+ blockquote?: (content: string) => string;
396
+ /** 表格回調:(content) => html */
397
+ table?: (content: string) => string;
398
+ /** 水平線回調:() => html */
399
+ hr?: () => string;
400
+ }
401
+ /**
402
+ * Markdown 操作的運行時抽象
403
+ * @public
404
+ */
405
+ export interface RuntimeMarkdownAdapter {
406
+ /**
407
+ * 將 Markdown 轉換為 HTML 字串。
408
+ * 在 Bun 環境下使用原生 C++ 解析器(10-100x 更快)。
409
+ *
410
+ * @param markdown - Markdown 原始文字
411
+ * @param options - 渲染選項
412
+ * @returns HTML 字串
413
+ */
414
+ html(markdown: string, options?: MarkdownRenderOptions): string;
415
+ /**
416
+ * 使用自訂回調渲染 Markdown。
417
+ * 允許攔截個別元素的渲染過程。
418
+ *
419
+ * @param markdown - Markdown 原始文字
420
+ * @param callbacks - 自訂渲染回調
421
+ * @returns 渲染後的字串
422
+ */
423
+ render(markdown: string, callbacks?: MarkdownRenderCallbacks): string;
424
+ /**
425
+ * 將 Markdown 轉換為 React 元素結構。
426
+ * 僅在 Bun 原生環境下可用,其餘回傳 null。
427
+ *
428
+ * @param markdown - Markdown 原始文字
429
+ * @returns React 元素物件或 null
430
+ */
431
+ react(markdown: string): unknown | null;
432
+ /**
433
+ * 是否使用原生實作(Bun.markdown)
434
+ */
435
+ readonly isNative: boolean;
436
+ }
@@ -0,0 +1,67 @@
1
+ import { type RuntimeAdapter, type RuntimeFileSink } from './runtime';
2
+ /**
3
+ * Safe append file operation with automatic fallback to node:fs/promises if not supported
4
+ * @public
5
+ */
6
+ export declare function runtimeAppendFile(adapter: RuntimeAdapter, path: string, data: string): Promise<void>;
7
+ /**
8
+ * Safe text file reading with automatic fallback to node:fs/promises if not supported
9
+ * @public
10
+ */
11
+ export declare function runtimeReadText(adapter: RuntimeAdapter, path: string): Promise<string>;
12
+ /**
13
+ * Safe JSON file reading with automatic fallback
14
+ * @public
15
+ */
16
+ export declare function runtimeReadJSON<T = unknown>(adapter: RuntimeAdapter, path: string): Promise<T>;
17
+ /**
18
+ * Safe directory creation with automatic fallback
19
+ * @public
20
+ */
21
+ export declare function runtimeMkdir(adapter: RuntimeAdapter, path: string, options?: {
22
+ recursive?: boolean;
23
+ }): Promise<void>;
24
+ /**
25
+ * Safe directory reading with automatic fallback
26
+ * @public
27
+ */
28
+ export declare function runtimeReadDir(adapter: RuntimeAdapter, path: string): Promise<Array<{
29
+ name: string;
30
+ isFile: boolean;
31
+ isDirectory: boolean;
32
+ }>>;
33
+ /**
34
+ * Safe full file statistics reading with automatic fallback
35
+ * @public
36
+ */
37
+ export declare function runtimeStatFull(adapter: RuntimeAdapter, path: string): Promise<{
38
+ size: number;
39
+ mtimeMs: number;
40
+ isFile: boolean;
41
+ isDirectory: boolean;
42
+ }>;
43
+ /**
44
+ * Safe file rename/move with automatic fallback
45
+ * @public
46
+ */
47
+ export declare function runtimeRename(adapter: RuntimeAdapter, oldPath: string, newPath: string): Promise<void>;
48
+ /**
49
+ * Safe file sink creation with automatic fallback
50
+ * @public
51
+ */
52
+ export declare function runtimeCreateFileSink(adapter: RuntimeAdapter, path: string): RuntimeFileSink;
53
+ /**
54
+ * Safe recursive directory removal with automatic fallback
55
+ * @public
56
+ */
57
+ export declare function runtimeRemoveRecursive(adapter: RuntimeAdapter, path: string): Promise<void>;
58
+ /**
59
+ * Safe exclusive file write with automatic fallback
60
+ * @public
61
+ */
62
+ export declare function runtimeWriteFileExclusive(adapter: RuntimeAdapter, path: string, data: string | Uint8Array): Promise<void>;
63
+ /**
64
+ * Get default runtime adapter instance
65
+ * @public
66
+ */
67
+ export declare function getDefaultRuntimeAdapter(): RuntimeAdapter;
@@ -1,119 +1,11 @@
1
1
  /**
2
- * Detected Javascript Runtime Environment
3
- * @public
4
- */
5
- export type RuntimeKind = 'bun' | 'node' | 'deno' | 'unknown';
6
- /**
7
- * Options for spawning subprocesses
8
- * @public
9
- */
10
- export interface RuntimeSpawnOptions {
11
- cwd?: string;
12
- env?: Record<string, string | undefined>;
13
- stdin?: 'pipe' | 'inherit' | 'ignore';
14
- stdout?: 'pipe' | 'inherit' | 'ignore';
15
- stderr?: 'pipe' | 'inherit' | 'ignore';
16
- }
17
- /**
18
- * Abstract subprocess interface
19
- * @public
20
- */
21
- export interface RuntimeProcess {
22
- exited: Promise<number>;
23
- stdout?: ReadableStream<Uint8Array> | null;
24
- stderr?: ReadableStream<Uint8Array> | null;
25
- kill?: (signal?: string | number) => void;
26
- }
27
- /**
28
- * File statistics abstraction
29
- * @public
30
- */
31
- export interface RuntimeFileStat {
32
- size: number;
33
- }
34
- /**
35
- * HTTP Server configuration
36
- * @public
37
- */
38
- export interface RuntimeServeConfig {
39
- port?: number;
40
- fetch: (req: Request, server?: unknown) => Response | Promise<Response>;
41
- websocket?: unknown;
42
- }
43
- /**
44
- * HTTP Server interface
45
- * @public
46
- */
47
- export interface RuntimeServer {
48
- stop?: () => void;
49
- }
50
- /**
51
- * Abstraction layer for filesystem and process operations across runtimes.
52
- * @public
53
- */
54
- export interface RuntimeAdapter {
55
- kind: RuntimeKind;
56
- spawn(command: string[], options?: RuntimeSpawnOptions): RuntimeProcess;
57
- writeFile(path: string, data: Blob | Buffer | string | ArrayBuffer | Uint8Array): Promise<void>;
58
- readFile(path: string): Promise<Uint8Array>;
59
- readFileAsBlob(path: string): Promise<Blob>;
60
- exists(path: string): Promise<boolean>;
61
- stat(path: string): Promise<RuntimeFileStat>;
62
- deleteFile(path: string): Promise<void>;
63
- serve(config: RuntimeServeConfig): RuntimeServer;
64
- }
65
- /**
66
- * Abstraction layer for password hashing
67
- * @public
68
- */
69
- export interface RuntimePasswordAdapter {
70
- hash(value: string, options: {
71
- algorithm: 'bcrypt';
72
- cost?: number;
73
- } | {
74
- algorithm: 'argon2id';
75
- memoryCost?: number;
76
- timeCost?: number;
77
- parallelism?: number;
78
- }): Promise<string>;
79
- verify(value: string, hashed: string): Promise<boolean>;
80
- }
81
- /**
82
- * SQLite Statement abstraction
83
- * @public
84
- */
85
- export interface RuntimeSqliteStatement {
86
- run(params?: Record<string, unknown>): void;
87
- get(params?: Record<string, unknown>): unknown;
88
- all(params?: Record<string, unknown>): unknown[];
89
- }
90
- /**
91
- * SQLite Database abstraction
92
- * @public
93
- */
94
- export interface RuntimeSqliteDatabase {
95
- run(sql: string): void;
96
- prepare(sql: string): RuntimeSqliteStatement;
97
- query(sql: string): RuntimeSqliteStatement;
98
- close(): void;
99
- }
100
- /**
101
- * Get environment variables from the current runtime.
102
- * @public
103
- */
104
- export declare const getRuntimeEnv: () => Record<string, string | undefined>;
105
- /**
106
- * Get the runtime abstraction adapter (Bun/Node/Deno).
107
- * @public
108
- */
109
- export declare const getRuntimeAdapter: () => RuntimeAdapter;
110
- /**
111
- * Get the password hashing adapter using native optimized implementations if available.
112
- * @public
113
- */
114
- export declare const getPasswordAdapter: () => RuntimePasswordAdapter;
115
- /**
116
- * Create a SQLite database connection using runtime-native drivers.
117
- * @public
118
- */
119
- export declare const createSqliteDatabase: (path: string) => Promise<RuntimeSqliteDatabase>;
2
+ * Runtime abstraction module (barrel re-export).
3
+ *
4
+ * This file re-exports all runtime types and functions from the
5
+ * modular runtime/ directory for backward compatibility.
6
+ *
7
+ * @module runtime
8
+ * @since 3.2.0
9
+ */
10
+ export type { ArchiveCreateOptions, ArchiveEntry, ArchiveExtractOptions, ArchiveFileInfo, ArchiveFromDirectoryOptions, CompressionOptions, EscapeHtmlFn, MarkdownRenderCallbacks, MarkdownRenderOptions, OptionalRuntimeResourceUsage, RuntimeAdapter, RuntimeArchiveAdapter, RuntimeCompressionAdapter, RuntimeFileSink, RuntimeFileStat, RuntimeKind, RuntimeMarkdownAdapter, RuntimePasswordAdapter, RuntimeProcess, RuntimeProcessOutput, RuntimeResourceUsage, RuntimeServeConfig, RuntimeServer, RuntimeSpawnOptions, RuntimeSpawnSyncResult, RuntimeSqliteDatabase, RuntimeSqliteStatement, } from './runtime/index';
11
+ export { archiveFromDirectory, createHtmlRenderCallbacks, createSqliteDatabase, getArchiveAdapter, getCompressionAdapter, getEscapeHtml, getMarkdownAdapter, getPasswordAdapter, getRuntimeAdapter, getRuntimeEnv, getRuntimeKind, resetRuntimeAdapter, toUint8Array, } from './runtime/index';
@@ -32,6 +32,7 @@ export declare class HttpTester {
32
32
  * Core call method
33
33
  */
34
34
  private call;
35
+ private getSetCookieHeaders;
35
36
  }
36
37
  /**
37
38
  * Helper to create an HttpTester for a PlanetCore instance