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.
- package/dist/cli/commands/add.d.ts +2 -0
- package/dist/cli/commands/add.d.ts.map +1 -1
- package/dist/cli/commands/add.js +855 -7
- package/dist/cli/commands/add.js.map +1 -1
- package/dist/cli/commands/blame.d.ts +1 -1
- package/dist/cli/commands/blame.d.ts.map +1 -1
- package/dist/cli/commands/blame.js +1 -1
- package/dist/cli/commands/blame.js.map +1 -1
- package/dist/cli/commands/branch.d.ts +1 -1
- package/dist/cli/commands/branch.d.ts.map +1 -1
- package/dist/cli/commands/branch.js +2 -2
- package/dist/cli/commands/branch.js.map +1 -1
- package/dist/cli/commands/checkout.d.ts +73 -0
- package/dist/cli/commands/checkout.d.ts.map +1 -0
- package/dist/cli/commands/checkout.js +725 -0
- package/dist/cli/commands/checkout.js.map +1 -0
- package/dist/cli/commands/commit.d.ts.map +1 -1
- package/dist/cli/commands/commit.js +22 -2
- package/dist/cli/commands/commit.js.map +1 -1
- package/dist/cli/commands/diff.d.ts +4 -4
- package/dist/cli/commands/diff.d.ts.map +1 -1
- package/dist/cli/commands/diff.js +9 -8
- package/dist/cli/commands/diff.js.map +1 -1
- package/dist/cli/commands/log.d.ts +1 -1
- package/dist/cli/commands/log.d.ts.map +1 -1
- package/dist/cli/commands/log.js +1 -1
- package/dist/cli/commands/log.js.map +1 -1
- package/dist/cli/commands/merge.d.ts +12 -12
- package/dist/cli/commands/merge.d.ts.map +1 -1
- package/dist/cli/commands/merge.js +812 -15
- package/dist/cli/commands/merge.js.map +1 -1
- package/dist/cli/commands/review.d.ts +1 -1
- package/dist/cli/commands/review.d.ts.map +1 -1
- package/dist/cli/commands/review.js +26 -1
- package/dist/cli/commands/review.js.map +1 -1
- package/dist/cli/commands/stash.d.ts +157 -0
- package/dist/cli/commands/stash.d.ts.map +1 -0
- package/dist/cli/commands/stash.js +655 -0
- package/dist/cli/commands/stash.js.map +1 -0
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +1 -2
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/web.d.ts.map +1 -1
- package/dist/cli/commands/web.js +3 -2
- package/dist/cli/commands/web.js.map +1 -1
- package/dist/cli/fs-adapter.d.ts.map +1 -1
- package/dist/cli/fs-adapter.js +3 -5
- package/dist/cli/fs-adapter.js.map +1 -1
- package/dist/cli/fsx-cli-adapter.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +68 -12
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/ui/components/DiffView.d.ts +7 -2
- package/dist/cli/ui/components/DiffView.d.ts.map +1 -1
- package/dist/cli/ui/components/DiffView.js.map +1 -1
- package/dist/cli/ui/components/ErrorDisplay.d.ts +6 -2
- package/dist/cli/ui/components/ErrorDisplay.d.ts.map +1 -1
- package/dist/cli/ui/components/ErrorDisplay.js.map +1 -1
- package/dist/cli/ui/components/FuzzySearch.d.ts +8 -2
- package/dist/cli/ui/components/FuzzySearch.d.ts.map +1 -1
- package/dist/cli/ui/components/FuzzySearch.js.map +1 -1
- package/dist/cli/ui/components/LoadingSpinner.d.ts +6 -2
- package/dist/cli/ui/components/LoadingSpinner.d.ts.map +1 -1
- package/dist/cli/ui/components/LoadingSpinner.js.map +1 -1
- package/dist/cli/ui/components/NavigationList.d.ts +7 -2
- package/dist/cli/ui/components/NavigationList.d.ts.map +1 -1
- package/dist/cli/ui/components/NavigationList.js.map +1 -1
- package/dist/cli/ui/components/ScrollableContent.d.ts +7 -2
- package/dist/cli/ui/components/ScrollableContent.d.ts.map +1 -1
- package/dist/cli/ui/components/ScrollableContent.js.map +1 -1
- package/dist/cli/ui/terminal-ui.d.ts +42 -9
- package/dist/cli/ui/terminal-ui.d.ts.map +1 -1
- package/dist/cli/ui/terminal-ui.js.map +1 -1
- package/dist/do/FsModule.d.ts +12 -1
- package/dist/do/FsModule.d.ts.map +1 -1
- package/dist/do/FsModule.js.map +1 -1
- package/dist/do/GitModule.d.ts.map +1 -1
- package/dist/do/GitModule.js +4 -1
- package/dist/do/GitModule.js.map +1 -1
- package/dist/do/GitRepoDO.d.ts +1 -1
- package/dist/do/GitRepoDO.d.ts.map +1 -1
- package/dist/do/GitRepoDO.js.map +1 -1
- package/dist/do/container-executor.d.ts.map +1 -1
- package/dist/do/container-executor.js +2 -1
- package/dist/do/container-executor.js.map +1 -1
- package/dist/do/tiered-storage.js +1 -1
- package/dist/do/tiered-storage.js.map +1 -1
- package/dist/do/withFs.d.ts.map +1 -1
- package/dist/do/withFs.js +2 -2
- package/dist/do/withFs.js.map +1 -1
- package/dist/durable-object/object-store.d.ts.map +1 -1
- package/dist/durable-object/object-store.js +3 -0
- package/dist/durable-object/object-store.js.map +1 -1
- package/dist/index.d.ts +55 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp/tools/do.d.ts.map +1 -1
- package/dist/mcp/tools/do.js +3 -1
- package/dist/mcp/tools/do.js.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +1258 -22
- package/dist/mcp/tools.js.map +1 -1
- package/dist/pack/delta.js +5 -1
- package/dist/pack/delta.js.map +1 -1
- package/dist/refs/branch.d.ts +16 -1
- package/dist/refs/branch.d.ts.map +1 -1
- package/dist/refs/branch.js +15 -31
- package/dist/refs/branch.js.map +1 -1
- package/dist/storage/fsx-adapter.d.ts.map +1 -1
- package/dist/storage/fsx-adapter.js +51 -3
- package/dist/storage/fsx-adapter.js.map +1 -1
- package/dist/storage/r2-pack.d.ts.map +1 -1
- package/dist/storage/r2-pack.js +4 -1
- package/dist/storage/r2-pack.js.map +1 -1
- package/dist/tiered/cdc-pipeline.js +3 -3
- package/dist/tiered/cdc-pipeline.js.map +1 -1
- package/dist/tiered/migration.d.ts.map +1 -1
- package/dist/tiered/migration.js +4 -1
- package/dist/tiered/migration.js.map +1 -1
- package/dist/types/interfaces.d.ts +673 -0
- package/dist/types/interfaces.d.ts.map +1 -0
- package/dist/types/interfaces.js +26 -0
- package/dist/types/interfaces.js.map +1 -0
- package/dist/types/worker-loader.d.ts +1 -1
- package/dist/types/worker-loader.d.ts.map +1 -1
- package/dist/types/worker-loader.js +4 -4
- package/dist/types/worker-loader.js.map +1 -1
- package/dist/utils/hash.d.ts +4 -3
- package/dist/utils/hash.d.ts.map +1 -1
- package/dist/utils/hash.js +12 -8
- package/dist/utils/hash.js.map +1 -1
- package/dist/utils/sha1.d.ts +35 -0
- package/dist/utils/sha1.d.ts.map +1 -1
- package/dist/utils/sha1.js +53 -0
- package/dist/utils/sha1.js.map +1 -1
- package/dist/wire/upload-pack.d.ts.map +1 -1
- package/dist/wire/upload-pack.js +4 -1
- package/dist/wire/upload-pack.js.map +1 -1
- 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
|