gitx.do 0.1.0 → 0.1.1

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 (139) hide show
  1. package/dist/cli/commands/add.d.ts +2 -0
  2. package/dist/cli/commands/add.d.ts.map +1 -1
  3. package/dist/cli/commands/add.js +855 -7
  4. package/dist/cli/commands/add.js.map +1 -1
  5. package/dist/cli/commands/blame.d.ts +1 -1
  6. package/dist/cli/commands/blame.d.ts.map +1 -1
  7. package/dist/cli/commands/blame.js +1 -1
  8. package/dist/cli/commands/blame.js.map +1 -1
  9. package/dist/cli/commands/branch.d.ts +1 -1
  10. package/dist/cli/commands/branch.d.ts.map +1 -1
  11. package/dist/cli/commands/branch.js +2 -2
  12. package/dist/cli/commands/branch.js.map +1 -1
  13. package/dist/cli/commands/checkout.d.ts +73 -0
  14. package/dist/cli/commands/checkout.d.ts.map +1 -0
  15. package/dist/cli/commands/checkout.js +725 -0
  16. package/dist/cli/commands/checkout.js.map +1 -0
  17. package/dist/cli/commands/commit.d.ts.map +1 -1
  18. package/dist/cli/commands/commit.js +22 -2
  19. package/dist/cli/commands/commit.js.map +1 -1
  20. package/dist/cli/commands/diff.d.ts +4 -4
  21. package/dist/cli/commands/diff.d.ts.map +1 -1
  22. package/dist/cli/commands/diff.js +9 -8
  23. package/dist/cli/commands/diff.js.map +1 -1
  24. package/dist/cli/commands/log.d.ts +1 -1
  25. package/dist/cli/commands/log.d.ts.map +1 -1
  26. package/dist/cli/commands/log.js +1 -1
  27. package/dist/cli/commands/log.js.map +1 -1
  28. package/dist/cli/commands/merge.d.ts +12 -12
  29. package/dist/cli/commands/merge.d.ts.map +1 -1
  30. package/dist/cli/commands/merge.js +812 -15
  31. package/dist/cli/commands/merge.js.map +1 -1
  32. package/dist/cli/commands/review.d.ts +1 -1
  33. package/dist/cli/commands/review.d.ts.map +1 -1
  34. package/dist/cli/commands/review.js +26 -1
  35. package/dist/cli/commands/review.js.map +1 -1
  36. package/dist/cli/commands/stash.d.ts +157 -0
  37. package/dist/cli/commands/stash.d.ts.map +1 -0
  38. package/dist/cli/commands/stash.js +655 -0
  39. package/dist/cli/commands/stash.js.map +1 -0
  40. package/dist/cli/commands/status.d.ts.map +1 -1
  41. package/dist/cli/commands/status.js +1 -2
  42. package/dist/cli/commands/status.js.map +1 -1
  43. package/dist/cli/commands/web.d.ts.map +1 -1
  44. package/dist/cli/commands/web.js +3 -2
  45. package/dist/cli/commands/web.js.map +1 -1
  46. package/dist/cli/fs-adapter.d.ts.map +1 -1
  47. package/dist/cli/fs-adapter.js +3 -5
  48. package/dist/cli/fs-adapter.js.map +1 -1
  49. package/dist/cli/fsx-cli-adapter.js.map +1 -1
  50. package/dist/cli/index.d.ts.map +1 -1
  51. package/dist/cli/index.js +68 -12
  52. package/dist/cli/index.js.map +1 -1
  53. package/dist/cli/ui/components/DiffView.d.ts +7 -2
  54. package/dist/cli/ui/components/DiffView.d.ts.map +1 -1
  55. package/dist/cli/ui/components/DiffView.js.map +1 -1
  56. package/dist/cli/ui/components/ErrorDisplay.d.ts +6 -2
  57. package/dist/cli/ui/components/ErrorDisplay.d.ts.map +1 -1
  58. package/dist/cli/ui/components/ErrorDisplay.js.map +1 -1
  59. package/dist/cli/ui/components/FuzzySearch.d.ts +8 -2
  60. package/dist/cli/ui/components/FuzzySearch.d.ts.map +1 -1
  61. package/dist/cli/ui/components/FuzzySearch.js.map +1 -1
  62. package/dist/cli/ui/components/LoadingSpinner.d.ts +6 -2
  63. package/dist/cli/ui/components/LoadingSpinner.d.ts.map +1 -1
  64. package/dist/cli/ui/components/LoadingSpinner.js.map +1 -1
  65. package/dist/cli/ui/components/NavigationList.d.ts +7 -2
  66. package/dist/cli/ui/components/NavigationList.d.ts.map +1 -1
  67. package/dist/cli/ui/components/NavigationList.js.map +1 -1
  68. package/dist/cli/ui/components/ScrollableContent.d.ts +7 -2
  69. package/dist/cli/ui/components/ScrollableContent.d.ts.map +1 -1
  70. package/dist/cli/ui/components/ScrollableContent.js.map +1 -1
  71. package/dist/cli/ui/terminal-ui.d.ts +42 -9
  72. package/dist/cli/ui/terminal-ui.d.ts.map +1 -1
  73. package/dist/cli/ui/terminal-ui.js.map +1 -1
  74. package/dist/do/FsModule.d.ts +12 -1
  75. package/dist/do/FsModule.d.ts.map +1 -1
  76. package/dist/do/FsModule.js.map +1 -1
  77. package/dist/do/GitModule.d.ts.map +1 -1
  78. package/dist/do/GitModule.js +4 -1
  79. package/dist/do/GitModule.js.map +1 -1
  80. package/dist/do/GitRepoDO.d.ts +1 -1
  81. package/dist/do/GitRepoDO.d.ts.map +1 -1
  82. package/dist/do/GitRepoDO.js.map +1 -1
  83. package/dist/do/container-executor.d.ts.map +1 -1
  84. package/dist/do/container-executor.js +2 -1
  85. package/dist/do/container-executor.js.map +1 -1
  86. package/dist/do/tiered-storage.js +1 -1
  87. package/dist/do/tiered-storage.js.map +1 -1
  88. package/dist/do/withFs.d.ts.map +1 -1
  89. package/dist/do/withFs.js +2 -2
  90. package/dist/do/withFs.js.map +1 -1
  91. package/dist/durable-object/object-store.d.ts.map +1 -1
  92. package/dist/durable-object/object-store.js +3 -0
  93. package/dist/durable-object/object-store.js.map +1 -1
  94. package/dist/index.d.ts +55 -0
  95. package/dist/index.d.ts.map +1 -1
  96. package/dist/index.js.map +1 -1
  97. package/dist/mcp/tools/do.d.ts.map +1 -1
  98. package/dist/mcp/tools/do.js +3 -1
  99. package/dist/mcp/tools/do.js.map +1 -1
  100. package/dist/mcp/tools.d.ts.map +1 -1
  101. package/dist/mcp/tools.js +1258 -22
  102. package/dist/mcp/tools.js.map +1 -1
  103. package/dist/pack/delta.js +5 -1
  104. package/dist/pack/delta.js.map +1 -1
  105. package/dist/refs/branch.d.ts +16 -1
  106. package/dist/refs/branch.d.ts.map +1 -1
  107. package/dist/refs/branch.js +15 -31
  108. package/dist/refs/branch.js.map +1 -1
  109. package/dist/storage/fsx-adapter.d.ts.map +1 -1
  110. package/dist/storage/fsx-adapter.js +51 -3
  111. package/dist/storage/fsx-adapter.js.map +1 -1
  112. package/dist/storage/r2-pack.d.ts.map +1 -1
  113. package/dist/storage/r2-pack.js +4 -1
  114. package/dist/storage/r2-pack.js.map +1 -1
  115. package/dist/tiered/cdc-pipeline.js +3 -3
  116. package/dist/tiered/cdc-pipeline.js.map +1 -1
  117. package/dist/tiered/migration.d.ts.map +1 -1
  118. package/dist/tiered/migration.js +4 -1
  119. package/dist/tiered/migration.js.map +1 -1
  120. package/dist/types/interfaces.d.ts +673 -0
  121. package/dist/types/interfaces.d.ts.map +1 -0
  122. package/dist/types/interfaces.js +26 -0
  123. package/dist/types/interfaces.js.map +1 -0
  124. package/dist/types/worker-loader.d.ts +1 -1
  125. package/dist/types/worker-loader.d.ts.map +1 -1
  126. package/dist/types/worker-loader.js +4 -4
  127. package/dist/types/worker-loader.js.map +1 -1
  128. package/dist/utils/hash.d.ts +4 -3
  129. package/dist/utils/hash.d.ts.map +1 -1
  130. package/dist/utils/hash.js +12 -8
  131. package/dist/utils/hash.js.map +1 -1
  132. package/dist/utils/sha1.d.ts +35 -0
  133. package/dist/utils/sha1.d.ts.map +1 -1
  134. package/dist/utils/sha1.js +53 -0
  135. package/dist/utils/sha1.js.map +1 -1
  136. package/dist/wire/upload-pack.d.ts.map +1 -1
  137. package/dist/wire/upload-pack.js +4 -1
  138. package/dist/wire/upload-pack.js.map +1 -1
  139. package/package.json +1 -1
@@ -0,0 +1,673 @@
1
+ /**
2
+ * @fileoverview Consolidated Interface Types
3
+ *
4
+ * This module provides common interface types used across the gitx.do codebase,
5
+ * including storage interfaces, R2 bucket types, and workflow context interfaces.
6
+ * These interfaces serve as the foundation for DO integration modules.
7
+ *
8
+ * @module types/interfaces
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import type { SqlStorage, R2BucketLike, WorkflowContext } from 'gitx.do/types'
13
+ *
14
+ * // Use in a Durable Object context
15
+ * class MyDO {
16
+ * private storage: SqlStorage
17
+ * private r2: R2BucketLike
18
+ *
19
+ * constructor(state: DurableObjectState) {
20
+ * this.storage = state.storage
21
+ * }
22
+ * }
23
+ * ```
24
+ */
25
+ /**
26
+ * SQL execution result interface.
27
+ *
28
+ * @description
29
+ * Represents the result of executing a SQL query. The result can be
30
+ * converted to an array of row objects using the toArray() method.
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * const result = storage.sql.exec('SELECT * FROM objects WHERE sha = ?', sha)
35
+ * const rows = result.toArray()
36
+ * ```
37
+ */
38
+ export interface SqlResult {
39
+ /**
40
+ * Convert the result to an array of row objects.
41
+ * @returns Array of row objects matching the query
42
+ */
43
+ toArray(): unknown[];
44
+ }
45
+ /**
46
+ * SQL execution interface.
47
+ *
48
+ * @description
49
+ * Provides access to SQLite query execution within a Durable Object.
50
+ * Supports parameterized queries using ? placeholders.
51
+ *
52
+ * @example
53
+ * ```typescript
54
+ * const result = storage.sql.exec(
55
+ * 'INSERT INTO objects (sha, type, data) VALUES (?, ?, ?)',
56
+ * sha, 'blob', data
57
+ * )
58
+ * ```
59
+ */
60
+ export interface SqlExec {
61
+ /**
62
+ * Execute a SQL query with optional parameters.
63
+ *
64
+ * @param query - SQL query string (can use ? placeholders)
65
+ * @param params - Parameter values for placeholders
66
+ * @returns Result object with toArray() method for reading rows
67
+ */
68
+ exec(query: string, ...params: unknown[]): SqlResult;
69
+ }
70
+ /**
71
+ * SQL storage interface for Durable Object storage.
72
+ *
73
+ * @description
74
+ * Abstraction over Cloudflare's Durable Object storage that provides
75
+ * SQLite access. This interface is used by modules that need database
76
+ * persistence within a DO.
77
+ *
78
+ * @example
79
+ * ```typescript
80
+ * class GitModule {
81
+ * constructor(private storage: SqlStorage) {}
82
+ *
83
+ * async getCommit(sha: string) {
84
+ * const result = this.storage.sql.exec(
85
+ * 'SELECT * FROM objects WHERE sha = ? AND type = ?',
86
+ * sha, 'commit'
87
+ * )
88
+ * return result.toArray()[0]
89
+ * }
90
+ * }
91
+ * ```
92
+ */
93
+ export interface SqlStorage {
94
+ /**
95
+ * SQL execution interface.
96
+ */
97
+ sql: SqlExec;
98
+ }
99
+ /**
100
+ * R2 object interface.
101
+ *
102
+ * @description
103
+ * Represents a single object stored in R2 (Cloudflare's object storage).
104
+ * Provides methods to access the object's content as binary data or text.
105
+ *
106
+ * @example
107
+ * ```typescript
108
+ * const obj = await r2.get('git/objects/ab/cdef...')
109
+ * if (obj) {
110
+ * const data = await obj.arrayBuffer()
111
+ * console.log(`Object size: ${obj.size} bytes`)
112
+ * }
113
+ * ```
114
+ */
115
+ export interface R2ObjectLike {
116
+ /** Object key (path in the bucket) */
117
+ key: string;
118
+ /** Object size in bytes */
119
+ size: number;
120
+ /**
121
+ * Get the object content as an ArrayBuffer.
122
+ * @returns Promise resolving to the binary content
123
+ */
124
+ arrayBuffer(): Promise<ArrayBuffer>;
125
+ /**
126
+ * Get the object content as a UTF-8 string.
127
+ * @returns Promise resolving to the text content
128
+ */
129
+ text(): Promise<string>;
130
+ }
131
+ /**
132
+ * R2 objects list result interface.
133
+ *
134
+ * @description
135
+ * Represents the result of listing objects in an R2 bucket.
136
+ * Supports pagination through the truncated flag and cursor.
137
+ *
138
+ * @example
139
+ * ```typescript
140
+ * let cursor: string | undefined
141
+ * do {
142
+ * const result = await r2.list({ prefix: 'git/objects/', cursor })
143
+ * for (const obj of result.objects) {
144
+ * console.log(obj.key)
145
+ * }
146
+ * cursor = result.truncated ? result.cursor : undefined
147
+ * } while (cursor)
148
+ * ```
149
+ */
150
+ export interface R2ObjectsLike {
151
+ /** Array of object references */
152
+ objects: R2ObjectLike[];
153
+ /** Whether there are more objects to fetch */
154
+ truncated: boolean;
155
+ /** Cursor for fetching the next page of results */
156
+ cursor?: string;
157
+ /** Delimited prefixes (for directory-like listing) */
158
+ delimitedPrefixes?: string[];
159
+ }
160
+ /**
161
+ * R2 put options interface.
162
+ *
163
+ * @description
164
+ * Options for putting objects into R2 storage.
165
+ */
166
+ export interface R2PutOptions {
167
+ /** Content-Type header for the object */
168
+ httpMetadata?: {
169
+ contentType?: string;
170
+ contentLanguage?: string;
171
+ contentDisposition?: string;
172
+ contentEncoding?: string;
173
+ cacheControl?: string;
174
+ cacheExpiry?: Date;
175
+ };
176
+ /** Custom metadata for the object */
177
+ customMetadata?: Record<string, string>;
178
+ /** MD5 hash for integrity verification */
179
+ md5?: ArrayBuffer | string;
180
+ /** SHA-1 hash for integrity verification */
181
+ sha1?: ArrayBuffer | string;
182
+ /** SHA-256 hash for integrity verification */
183
+ sha256?: ArrayBuffer | string;
184
+ /** SHA-384 hash for integrity verification */
185
+ sha384?: ArrayBuffer | string;
186
+ /** SHA-512 hash for integrity verification */
187
+ sha512?: ArrayBuffer | string;
188
+ /** Storage class for the object */
189
+ storageClass?: 'Standard' | 'InfrequentAccess';
190
+ }
191
+ /**
192
+ * R2 bucket interface for object storage operations.
193
+ *
194
+ * @description
195
+ * Represents an R2 bucket with methods for CRUD operations on objects.
196
+ * Used as the global git object store across DOs.
197
+ *
198
+ * @example
199
+ * ```typescript
200
+ * // Store a git object
201
+ * const sha = 'abc123...'
202
+ * const key = `git/objects/${sha.slice(0, 2)}/${sha.slice(2)}`
203
+ * await r2.put(key, objectData)
204
+ *
205
+ * // Retrieve a git object
206
+ * const obj = await r2.get(key)
207
+ * if (obj) {
208
+ * const data = await obj.arrayBuffer()
209
+ * }
210
+ * ```
211
+ */
212
+ export interface R2BucketLike {
213
+ /**
214
+ * Get an object from the bucket.
215
+ * @param key - Object key
216
+ * @returns Promise resolving to the object, or null if not found
217
+ */
218
+ get(key: string): Promise<R2ObjectLike | null>;
219
+ /**
220
+ * Put an object into the bucket.
221
+ * @param key - Object key
222
+ * @param value - Object content (binary data or string)
223
+ * @param options - Optional put options
224
+ * @returns Promise resolving to the stored object reference
225
+ */
226
+ put(key: string, value: ArrayBuffer | Uint8Array | string | ReadableStream | Blob, options?: R2PutOptions): Promise<R2ObjectLike>;
227
+ /**
228
+ * Delete one or more objects from the bucket.
229
+ * @param key - Object key or array of keys to delete
230
+ */
231
+ delete(key: string | string[]): Promise<void>;
232
+ /**
233
+ * List objects in the bucket.
234
+ * @param options - List options (prefix, limit, cursor, delimiter)
235
+ * @returns Promise resolving to the list result
236
+ */
237
+ list(options?: {
238
+ prefix?: string;
239
+ limit?: number;
240
+ cursor?: string;
241
+ delimiter?: string;
242
+ include?: string[];
243
+ }): Promise<R2ObjectsLike>;
244
+ /**
245
+ * Check if an object exists in the bucket.
246
+ * @param key - Object key
247
+ * @returns Promise resolving to object metadata, or null if not found
248
+ */
249
+ head?(key: string): Promise<R2ObjectLike | null>;
250
+ }
251
+ /**
252
+ * KV namespace interface for key-value storage.
253
+ *
254
+ * @description
255
+ * Represents a Cloudflare KV namespace for simple key-value operations.
256
+ * Used for caching and lightweight data storage.
257
+ *
258
+ * @example
259
+ * ```typescript
260
+ * // Store a value
261
+ * await kv.put('user:123', JSON.stringify({ name: 'Alice' }))
262
+ *
263
+ * // Retrieve a value
264
+ * const data = await kv.get('user:123')
265
+ * if (data) {
266
+ * const user = JSON.parse(data)
267
+ * }
268
+ * ```
269
+ */
270
+ export interface KVNamespaceLike {
271
+ /**
272
+ * Get a value from KV.
273
+ * @param key - Key to look up
274
+ * @param options - Optional read options
275
+ * @returns Promise resolving to the value, or null if not found
276
+ */
277
+ get(key: string, options?: {
278
+ type?: 'text' | 'json' | 'arrayBuffer' | 'stream';
279
+ }): Promise<string | null>;
280
+ /**
281
+ * Put a value into KV.
282
+ * @param key - Key to store under
283
+ * @param value - Value to store
284
+ * @param options - Optional write options (expiration, metadata)
285
+ */
286
+ put(key: string, value: string | ArrayBuffer | ReadableStream, options?: {
287
+ expiration?: number;
288
+ expirationTtl?: number;
289
+ metadata?: unknown;
290
+ }): Promise<void>;
291
+ /**
292
+ * Delete a value from KV.
293
+ * @param key - Key to delete
294
+ */
295
+ delete(key: string): Promise<void>;
296
+ /**
297
+ * List keys in KV.
298
+ * @param options - List options (prefix, limit, cursor)
299
+ * @returns Promise resolving to the list result
300
+ */
301
+ list(options?: {
302
+ prefix?: string;
303
+ limit?: number;
304
+ cursor?: string;
305
+ }): Promise<{
306
+ keys: Array<{
307
+ name: string;
308
+ expiration?: number;
309
+ metadata?: unknown;
310
+ }>;
311
+ list_complete: boolean;
312
+ cursor?: string;
313
+ }>;
314
+ }
315
+ /**
316
+ * Durable Object ID interface.
317
+ *
318
+ * @description
319
+ * Represents a unique identifier for a Durable Object instance.
320
+ */
321
+ export interface DurableObjectId {
322
+ /** String representation of the ID */
323
+ toString(): string;
324
+ /** Check if two IDs are equal */
325
+ equals(other: DurableObjectId): boolean;
326
+ }
327
+ /**
328
+ * Durable Object stub interface.
329
+ *
330
+ * @description
331
+ * A stub for communicating with a Durable Object instance.
332
+ * Used to send HTTP requests to a DO.
333
+ *
334
+ * @example
335
+ * ```typescript
336
+ * const id = env.DO_NAMESPACE.idFromName('my-repo')
337
+ * const stub = env.DO_NAMESPACE.get(id)
338
+ * const response = await stub.fetch(request)
339
+ * ```
340
+ */
341
+ export interface DurableObjectStub {
342
+ /**
343
+ * Send an HTTP request to the Durable Object.
344
+ * @param request - Request object or URL string
345
+ * @param init - Optional request init
346
+ * @returns Promise resolving to the response
347
+ */
348
+ fetch(request: Request | string, init?: RequestInit): Promise<Response>;
349
+ /** The ID of this Durable Object */
350
+ id: DurableObjectId;
351
+ /** Name of the Durable Object (if created with idFromName) */
352
+ name?: string;
353
+ }
354
+ /**
355
+ * Durable Object namespace interface.
356
+ *
357
+ * @description
358
+ * Provides methods for creating IDs and getting stubs to Durable Objects.
359
+ *
360
+ * @example
361
+ * ```typescript
362
+ * // Get a DO by name
363
+ * const id = env.DO_NAMESPACE.idFromName('repo/my-repo')
364
+ * const stub = env.DO_NAMESPACE.get(id)
365
+ *
366
+ * // Create a new unique DO
367
+ * const newId = env.DO_NAMESPACE.newUniqueId()
368
+ * const newStub = env.DO_NAMESPACE.get(newId)
369
+ * ```
370
+ */
371
+ export interface DurableObjectNamespace {
372
+ /**
373
+ * Create an ID from a name (deterministic).
374
+ * @param name - String name to derive ID from
375
+ * @returns The Durable Object ID
376
+ */
377
+ idFromName(name: string): DurableObjectId;
378
+ /**
379
+ * Parse an ID from its string representation.
380
+ * @param id - String representation of the ID
381
+ * @returns The Durable Object ID
382
+ */
383
+ idFromString(id: string): DurableObjectId;
384
+ /**
385
+ * Create a new unique ID.
386
+ * @param options - Optional creation options (locationHint)
387
+ * @returns A new unique Durable Object ID
388
+ */
389
+ newUniqueId(options?: {
390
+ locationHint?: string;
391
+ }): DurableObjectId;
392
+ /**
393
+ * Get a stub for communicating with a Durable Object.
394
+ * @param id - The Durable Object ID
395
+ * @returns A stub for making requests to the DO
396
+ */
397
+ get(id: DurableObjectId): DurableObjectStub;
398
+ /**
399
+ * Get jurisdiction-restricted ID from name.
400
+ * @param name - String name to derive ID from
401
+ * @param options - Jurisdiction options
402
+ * @returns The Durable Object ID
403
+ */
404
+ jurisdiction?(name: string, options: {
405
+ jurisdiction: string;
406
+ }): DurableObjectId;
407
+ }
408
+ /**
409
+ * Durable Object state interface.
410
+ *
411
+ * @description
412
+ * The state object passed to a Durable Object constructor.
413
+ * Provides access to storage, ID, and lifecycle methods.
414
+ *
415
+ * @example
416
+ * ```typescript
417
+ * class MyDO implements DurableObject {
418
+ * constructor(private state: DurableObjectState, private env: Env) {
419
+ * // Access storage
420
+ * const data = this.state.storage.sql.exec('SELECT * FROM table')
421
+ * }
422
+ * }
423
+ * ```
424
+ */
425
+ export interface DurableObjectState {
426
+ /** The unique ID of this Durable Object */
427
+ id: DurableObjectId;
428
+ /** Storage interface with SQL and key-value access */
429
+ storage: SqlStorage & {
430
+ get(key: string): Promise<unknown>;
431
+ put(key: string, value: unknown): Promise<void>;
432
+ delete(key: string): Promise<boolean>;
433
+ list(options?: {
434
+ prefix?: string;
435
+ }): Promise<Map<string, unknown>>;
436
+ setAlarm(scheduledTime: number | Date): Promise<void>;
437
+ getAlarm(): Promise<number | null>;
438
+ deleteAlarm(): Promise<void>;
439
+ };
440
+ /**
441
+ * Block concurrent requests until callback completes.
442
+ * Used for initialization that must complete before handling requests.
443
+ * @param callback - Async function to execute
444
+ */
445
+ blockConcurrencyWhile<T>(callback: () => Promise<T>): Promise<T>;
446
+ /**
447
+ * Extend the lifetime of the DO to complete async work.
448
+ * @param promise - Promise to wait for
449
+ */
450
+ waitUntil(promise: Promise<unknown>): void;
451
+ /**
452
+ * Accept websocket connections.
453
+ * @param ws - WebSocket to accept
454
+ * @param tags - Optional tags for the connection
455
+ */
456
+ acceptWebSocket?(ws: WebSocket, tags?: string[]): void;
457
+ /**
458
+ * Get all accepted websockets.
459
+ * @param tag - Optional tag filter
460
+ * @returns Array of accepted WebSockets
461
+ */
462
+ getWebSockets?(tag?: string): WebSocket[];
463
+ }
464
+ /**
465
+ * Event handler registration interface.
466
+ *
467
+ * @description
468
+ * Provides a proxy interface for registering event handlers using
469
+ * the pattern $.on.Noun.verb(handler).
470
+ *
471
+ * @example
472
+ * ```typescript
473
+ * // Register event handlers
474
+ * $.on.User.created((user) => console.log('User created:', user))
475
+ * $.on.Order.completed((order) => processOrder(order))
476
+ * ```
477
+ */
478
+ export type EventHandlerProxy = {
479
+ [noun: string]: {
480
+ [verb: string]: (handler: (data: unknown) => void | Promise<void>) => void;
481
+ };
482
+ };
483
+ /**
484
+ * Schedule builder interface.
485
+ *
486
+ * @description
487
+ * Provides a proxy interface for scheduling recurring tasks using
488
+ * natural language patterns like $.every.monday.at('9am').
489
+ *
490
+ * @example
491
+ * ```typescript
492
+ * // Schedule recurring tasks
493
+ * $.every.monday.at('9am')(() => sendWeeklyReport())
494
+ * $.every.hour.at('30')(() => cleanupTempFiles())
495
+ * ```
496
+ */
497
+ export type ScheduleProxy = {
498
+ [schedule: string]: {
499
+ at: (time: string) => (handler: () => void | Promise<void>) => void;
500
+ };
501
+ };
502
+ /**
503
+ * Workflow context interface (the $ API).
504
+ *
505
+ * @description
506
+ * The main workflow context interface providing the $ API pattern
507
+ * used throughout dotdo. Includes messaging (send/try/do), event
508
+ * handling (on), and scheduling (every).
509
+ *
510
+ * @example
511
+ * ```typescript
512
+ * class MyDO extends DO {
513
+ * async handleRequest() {
514
+ * // Fire-and-forget
515
+ * this.$.send('user.created', { id: '123' })
516
+ *
517
+ * // Quick attempt
518
+ * const result = await this.$.try('validate', data)
519
+ *
520
+ * // Durable execution
521
+ * await this.$.do('process', data)
522
+ * }
523
+ * }
524
+ * ```
525
+ */
526
+ export interface WorkflowContext {
527
+ /**
528
+ * Fire-and-forget event dispatch.
529
+ * Queues an event for async processing without waiting.
530
+ * @param event - Event name
531
+ * @param data - Optional event data
532
+ */
533
+ send(event: string, data?: unknown): void;
534
+ /**
535
+ * Quick attempt (blocking, non-durable).
536
+ * Executes an action directly without persistence.
537
+ * @param action - Action name
538
+ * @param data - Optional action data
539
+ * @returns Promise resolving to the action result
540
+ */
541
+ try<T>(action: string, data?: unknown): Promise<T>;
542
+ /**
543
+ * Durable execution with retries.
544
+ * Stores the action for durability and executes with retry logic.
545
+ * @param action - Action name
546
+ * @param data - Optional action data
547
+ * @returns Promise resolving to the action result
548
+ */
549
+ do<T>(action: string, data?: unknown): Promise<T>;
550
+ /**
551
+ * Event handler registration proxy.
552
+ * Use as $.on.Noun.verb(handler).
553
+ */
554
+ on: EventHandlerProxy;
555
+ /**
556
+ * Schedule builder proxy.
557
+ * Use as $.every.schedule.at('time')(handler).
558
+ */
559
+ every: ScheduleProxy;
560
+ /**
561
+ * Allow additional dynamic properties for domain proxies.
562
+ * Supports patterns like $.User('id').method().
563
+ */
564
+ [key: string]: unknown;
565
+ }
566
+ /**
567
+ * Base module interface.
568
+ *
569
+ * @description
570
+ * Common interface for all DO modules (GitModule, FsModule, BashModule).
571
+ * Provides lifecycle methods and a module name identifier.
572
+ *
573
+ * @example
574
+ * ```typescript
575
+ * class MyModule implements Module {
576
+ * readonly name = 'my-module'
577
+ *
578
+ * async initialize() {
579
+ * // Setup module
580
+ * }
581
+ *
582
+ * async dispose() {
583
+ * // Cleanup resources
584
+ * }
585
+ * }
586
+ * ```
587
+ */
588
+ export interface Module {
589
+ /** Module name identifier */
590
+ readonly name: string;
591
+ /**
592
+ * Initialize the module.
593
+ * Called when the DO is first activated.
594
+ */
595
+ initialize?(): Promise<void>;
596
+ /**
597
+ * Dispose the module.
598
+ * Called when the DO is about to be deactivated.
599
+ */
600
+ dispose?(): Promise<void>;
601
+ }
602
+ /**
603
+ * Storage-backed module interface.
604
+ *
605
+ * @description
606
+ * Interface for modules that persist state using SQL storage.
607
+ * Extends the base Module interface with storage capabilities.
608
+ */
609
+ export interface StorageBackedModule extends Module {
610
+ /**
611
+ * Attach storage to the module.
612
+ * @param storage - SQL storage interface
613
+ */
614
+ attachStorage?(storage: SqlStorage): void;
615
+ }
616
+ /**
617
+ * Capability mixin result type.
618
+ *
619
+ * @description
620
+ * Generic type for the result of applying a capability mixin.
621
+ * Combines the base class with the capability interface.
622
+ *
623
+ * @template Base - The base class type
624
+ * @template Cap - The capability interface
625
+ *
626
+ * @example
627
+ * ```typescript
628
+ * type GitCapableDO = WithCapability<typeof DO, GitCapability>
629
+ * ```
630
+ */
631
+ export type WithCapability<Base, Cap> = Base & Cap;
632
+ /**
633
+ * Base error class for gitx operations.
634
+ *
635
+ * @description
636
+ * Extends the standard Error with additional context fields
637
+ * for better error handling and debugging.
638
+ */
639
+ export interface GitxError extends Error {
640
+ /** Error code for programmatic handling */
641
+ code: string;
642
+ /** HTTP status code if applicable */
643
+ status?: number;
644
+ /** Additional context data */
645
+ context?: Record<string, unknown>;
646
+ }
647
+ /**
648
+ * Storage error for database operations.
649
+ */
650
+ export interface StorageError extends GitxError {
651
+ code: 'STORAGE_ERROR';
652
+ /** The SQL query that failed */
653
+ query?: string;
654
+ }
655
+ /**
656
+ * R2 error for object storage operations.
657
+ */
658
+ export interface R2Error extends GitxError {
659
+ code: 'R2_ERROR';
660
+ /** The object key involved */
661
+ key?: string;
662
+ }
663
+ /**
664
+ * Git error for git operations.
665
+ */
666
+ export interface GitError extends GitxError {
667
+ code: 'GIT_ERROR';
668
+ /** The git operation that failed */
669
+ operation?: string;
670
+ /** The repository involved */
671
+ repo?: string;
672
+ }
673
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/types/interfaces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @fileoverview Consolidated Interface Types
3
+ *
4
+ * This module provides common interface types used across the gitx.do codebase,
5
+ * including storage interfaces, R2 bucket types, and workflow context interfaces.
6
+ * These interfaces serve as the foundation for DO integration modules.
7
+ *
8
+ * @module types/interfaces
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import type { SqlStorage, R2BucketLike, WorkflowContext } from 'gitx.do/types'
13
+ *
14
+ * // Use in a Durable Object context
15
+ * class MyDO {
16
+ * private storage: SqlStorage
17
+ * private r2: R2BucketLike
18
+ *
19
+ * constructor(state: DurableObjectState) {
20
+ * this.storage = state.storage
21
+ * }
22
+ * }
23
+ * ```
24
+ */
25
+ export {};
26
+ //# sourceMappingURL=interfaces.js.map