gitx.do 0.0.1 → 0.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.
- package/dist/cli/commands/blame.d.ts +259 -0
- package/dist/cli/commands/blame.d.ts.map +1 -0
- package/dist/cli/commands/blame.js +609 -0
- package/dist/cli/commands/blame.js.map +1 -0
- package/dist/cli/commands/branch.d.ts +249 -0
- package/dist/cli/commands/branch.d.ts.map +1 -0
- package/dist/cli/commands/branch.js +693 -0
- package/dist/cli/commands/branch.js.map +1 -0
- package/dist/cli/commands/commit.d.ts +182 -0
- package/dist/cli/commands/commit.d.ts.map +1 -0
- package/dist/cli/commands/commit.js +437 -0
- package/dist/cli/commands/commit.js.map +1 -0
- package/dist/cli/commands/diff.d.ts +464 -0
- package/dist/cli/commands/diff.d.ts.map +1 -0
- package/dist/cli/commands/diff.js +958 -0
- package/dist/cli/commands/diff.js.map +1 -0
- package/dist/cli/commands/log.d.ts +239 -0
- package/dist/cli/commands/log.d.ts.map +1 -0
- package/dist/cli/commands/log.js +535 -0
- package/dist/cli/commands/log.js.map +1 -0
- package/dist/cli/commands/review.d.ts +457 -0
- package/dist/cli/commands/review.d.ts.map +1 -0
- package/dist/cli/commands/review.js +533 -0
- package/dist/cli/commands/review.js.map +1 -0
- package/dist/cli/commands/status.d.ts +269 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +493 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/web.d.ts +199 -0
- package/dist/cli/commands/web.d.ts.map +1 -0
- package/dist/cli/commands/web.js +696 -0
- package/dist/cli/commands/web.js.map +1 -0
- package/dist/cli/fs-adapter.d.ts +656 -0
- package/dist/cli/fs-adapter.d.ts.map +1 -0
- package/dist/cli/fs-adapter.js +1179 -0
- package/dist/cli/fs-adapter.js.map +1 -0
- package/dist/cli/index.d.ts +387 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +523 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/ui/components/DiffView.d.ts +7 -0
- package/dist/cli/ui/components/DiffView.d.ts.map +1 -0
- package/dist/cli/ui/components/DiffView.js +11 -0
- package/dist/cli/ui/components/DiffView.js.map +1 -0
- package/dist/cli/ui/components/ErrorDisplay.d.ts +6 -0
- package/dist/cli/ui/components/ErrorDisplay.d.ts.map +1 -0
- package/dist/cli/ui/components/ErrorDisplay.js +11 -0
- package/dist/cli/ui/components/ErrorDisplay.js.map +1 -0
- package/dist/cli/ui/components/FuzzySearch.d.ts +9 -0
- package/dist/cli/ui/components/FuzzySearch.d.ts.map +1 -0
- package/dist/cli/ui/components/FuzzySearch.js +12 -0
- package/dist/cli/ui/components/FuzzySearch.js.map +1 -0
- package/dist/cli/ui/components/LoadingSpinner.d.ts +6 -0
- package/dist/cli/ui/components/LoadingSpinner.d.ts.map +1 -0
- package/dist/cli/ui/components/LoadingSpinner.js +10 -0
- package/dist/cli/ui/components/LoadingSpinner.js.map +1 -0
- package/dist/cli/ui/components/NavigationList.d.ts +9 -0
- package/dist/cli/ui/components/NavigationList.d.ts.map +1 -0
- package/dist/cli/ui/components/NavigationList.js +11 -0
- package/dist/cli/ui/components/NavigationList.js.map +1 -0
- package/dist/cli/ui/components/ScrollableContent.d.ts +8 -0
- package/dist/cli/ui/components/ScrollableContent.d.ts.map +1 -0
- package/dist/cli/ui/components/ScrollableContent.js +11 -0
- package/dist/cli/ui/components/ScrollableContent.js.map +1 -0
- package/dist/cli/ui/components/index.d.ts +7 -0
- package/dist/cli/ui/components/index.d.ts.map +1 -0
- package/dist/cli/ui/components/index.js +9 -0
- package/dist/cli/ui/components/index.js.map +1 -0
- package/dist/cli/ui/terminal-ui.d.ts +52 -0
- package/dist/cli/ui/terminal-ui.d.ts.map +1 -0
- package/dist/cli/ui/terminal-ui.js +121 -0
- package/dist/cli/ui/terminal-ui.js.map +1 -0
- package/dist/durable-object/object-store.d.ts +401 -23
- package/dist/durable-object/object-store.d.ts.map +1 -1
- package/dist/durable-object/object-store.js +414 -25
- package/dist/durable-object/object-store.js.map +1 -1
- package/dist/durable-object/schema.d.ts +188 -0
- package/dist/durable-object/schema.d.ts.map +1 -1
- package/dist/durable-object/schema.js +160 -0
- package/dist/durable-object/schema.js.map +1 -1
- package/dist/durable-object/wal.d.ts +336 -31
- package/dist/durable-object/wal.d.ts.map +1 -1
- package/dist/durable-object/wal.js +272 -27
- package/dist/durable-object/wal.js.map +1 -1
- package/dist/index.d.ts +379 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +379 -7
- package/dist/index.js.map +1 -1
- package/dist/mcp/adapter.d.ts +579 -38
- package/dist/mcp/adapter.d.ts.map +1 -1
- package/dist/mcp/adapter.js +426 -33
- package/dist/mcp/adapter.js.map +1 -1
- package/dist/mcp/sandbox.d.ts +532 -29
- package/dist/mcp/sandbox.d.ts.map +1 -1
- package/dist/mcp/sandbox.js +389 -22
- package/dist/mcp/sandbox.js.map +1 -1
- package/dist/mcp/sdk-adapter.d.ts +478 -56
- package/dist/mcp/sdk-adapter.d.ts.map +1 -1
- package/dist/mcp/sdk-adapter.js +346 -44
- package/dist/mcp/sdk-adapter.js.map +1 -1
- package/dist/mcp/tools.d.ts +445 -30
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +363 -33
- package/dist/mcp/tools.js.map +1 -1
- package/dist/ops/blame.d.ts +424 -21
- package/dist/ops/blame.d.ts.map +1 -1
- package/dist/ops/blame.js +303 -20
- package/dist/ops/blame.js.map +1 -1
- package/dist/ops/branch.d.ts +583 -32
- package/dist/ops/branch.d.ts.map +1 -1
- package/dist/ops/branch.js +365 -23
- package/dist/ops/branch.js.map +1 -1
- package/dist/ops/commit-traversal.d.ts +164 -24
- package/dist/ops/commit-traversal.d.ts.map +1 -1
- package/dist/ops/commit-traversal.js +68 -2
- package/dist/ops/commit-traversal.js.map +1 -1
- package/dist/ops/commit.d.ts +387 -53
- package/dist/ops/commit.d.ts.map +1 -1
- package/dist/ops/commit.js +249 -29
- package/dist/ops/commit.js.map +1 -1
- package/dist/ops/merge-base.d.ts +195 -21
- package/dist/ops/merge-base.d.ts.map +1 -1
- package/dist/ops/merge-base.js +122 -12
- package/dist/ops/merge-base.js.map +1 -1
- package/dist/ops/merge.d.ts +600 -130
- package/dist/ops/merge.d.ts.map +1 -1
- package/dist/ops/merge.js +408 -60
- package/dist/ops/merge.js.map +1 -1
- package/dist/ops/tag.d.ts +67 -2
- package/dist/ops/tag.d.ts.map +1 -1
- package/dist/ops/tag.js +42 -1
- package/dist/ops/tag.js.map +1 -1
- package/dist/ops/tree-builder.d.ts +102 -6
- package/dist/ops/tree-builder.d.ts.map +1 -1
- package/dist/ops/tree-builder.js +30 -5
- package/dist/ops/tree-builder.js.map +1 -1
- package/dist/ops/tree-diff.d.ts +50 -2
- package/dist/ops/tree-diff.d.ts.map +1 -1
- package/dist/ops/tree-diff.js +50 -2
- package/dist/ops/tree-diff.js.map +1 -1
- package/dist/pack/delta.d.ts +211 -39
- package/dist/pack/delta.d.ts.map +1 -1
- package/dist/pack/delta.js +232 -46
- package/dist/pack/delta.js.map +1 -1
- package/dist/pack/format.d.ts +390 -28
- package/dist/pack/format.d.ts.map +1 -1
- package/dist/pack/format.js +344 -33
- package/dist/pack/format.js.map +1 -1
- package/dist/pack/full-generation.d.ts +313 -28
- package/dist/pack/full-generation.d.ts.map +1 -1
- package/dist/pack/full-generation.js +238 -19
- package/dist/pack/full-generation.js.map +1 -1
- package/dist/pack/generation.d.ts +346 -23
- package/dist/pack/generation.d.ts.map +1 -1
- package/dist/pack/generation.js +269 -21
- package/dist/pack/generation.js.map +1 -1
- package/dist/pack/index.d.ts +407 -86
- package/dist/pack/index.d.ts.map +1 -1
- package/dist/pack/index.js +351 -70
- package/dist/pack/index.js.map +1 -1
- package/dist/refs/branch.d.ts +517 -71
- package/dist/refs/branch.d.ts.map +1 -1
- package/dist/refs/branch.js +410 -26
- package/dist/refs/branch.js.map +1 -1
- package/dist/refs/storage.d.ts +610 -57
- package/dist/refs/storage.d.ts.map +1 -1
- package/dist/refs/storage.js +481 -29
- package/dist/refs/storage.js.map +1 -1
- package/dist/refs/tag.d.ts +677 -67
- package/dist/refs/tag.d.ts.map +1 -1
- package/dist/refs/tag.js +497 -30
- package/dist/refs/tag.js.map +1 -1
- package/dist/storage/lru-cache.d.ts +556 -53
- package/dist/storage/lru-cache.d.ts.map +1 -1
- package/dist/storage/lru-cache.js +439 -36
- package/dist/storage/lru-cache.js.map +1 -1
- package/dist/storage/object-index.d.ts +483 -38
- package/dist/storage/object-index.d.ts.map +1 -1
- package/dist/storage/object-index.js +388 -22
- package/dist/storage/object-index.js.map +1 -1
- package/dist/storage/r2-pack.d.ts +957 -94
- package/dist/storage/r2-pack.d.ts.map +1 -1
- package/dist/storage/r2-pack.js +756 -48
- package/dist/storage/r2-pack.js.map +1 -1
- package/dist/tiered/cdc-pipeline.d.ts +1610 -38
- package/dist/tiered/cdc-pipeline.d.ts.map +1 -1
- package/dist/tiered/cdc-pipeline.js +1131 -22
- package/dist/tiered/cdc-pipeline.js.map +1 -1
- package/dist/tiered/migration.d.ts +903 -41
- package/dist/tiered/migration.d.ts.map +1 -1
- package/dist/tiered/migration.js +646 -24
- package/dist/tiered/migration.js.map +1 -1
- package/dist/tiered/parquet-writer.d.ts +944 -47
- package/dist/tiered/parquet-writer.d.ts.map +1 -1
- package/dist/tiered/parquet-writer.js +667 -39
- package/dist/tiered/parquet-writer.js.map +1 -1
- package/dist/tiered/read-path.d.ts +728 -34
- package/dist/tiered/read-path.d.ts.map +1 -1
- package/dist/tiered/read-path.js +310 -27
- package/dist/tiered/read-path.js.map +1 -1
- package/dist/types/objects.d.ts +457 -0
- package/dist/types/objects.d.ts.map +1 -1
- package/dist/types/objects.js +305 -4
- package/dist/types/objects.js.map +1 -1
- package/dist/types/storage.d.ts +407 -35
- package/dist/types/storage.d.ts.map +1 -1
- package/dist/types/storage.js +27 -3
- package/dist/types/storage.js.map +1 -1
- package/dist/utils/hash.d.ts +133 -12
- package/dist/utils/hash.d.ts.map +1 -1
- package/dist/utils/hash.js +133 -12
- package/dist/utils/hash.js.map +1 -1
- package/dist/utils/sha1.d.ts +102 -9
- package/dist/utils/sha1.d.ts.map +1 -1
- package/dist/utils/sha1.js +114 -11
- package/dist/utils/sha1.js.map +1 -1
- package/dist/wire/capabilities.d.ts +896 -88
- package/dist/wire/capabilities.d.ts.map +1 -1
- package/dist/wire/capabilities.js +566 -62
- package/dist/wire/capabilities.js.map +1 -1
- package/dist/wire/pkt-line.d.ts +293 -15
- package/dist/wire/pkt-line.d.ts.map +1 -1
- package/dist/wire/pkt-line.js +251 -15
- package/dist/wire/pkt-line.js.map +1 -1
- package/dist/wire/receive-pack.d.ts +814 -64
- package/dist/wire/receive-pack.d.ts.map +1 -1
- package/dist/wire/receive-pack.js +542 -41
- package/dist/wire/receive-pack.js.map +1 -1
- package/dist/wire/smart-http.d.ts +575 -97
- package/dist/wire/smart-http.d.ts.map +1 -1
- package/dist/wire/smart-http.js +337 -46
- package/dist/wire/smart-http.js.map +1 -1
- package/dist/wire/upload-pack.d.ts +492 -98
- package/dist/wire/upload-pack.d.ts.map +1 -1
- package/dist/wire/upload-pack.js +347 -59
- package/dist/wire/upload-pack.js.map +1 -1
- package/package.json +10 -2
|
@@ -1,22 +1,97 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* @fileoverview Git Object Store for Durable Objects
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* This module provides a Git object storage implementation backed by SQLite
|
|
5
|
+
* within Cloudflare Durable Objects. It handles CRUD operations for all four
|
|
6
|
+
* Git object types (blob, tree, commit, tag) with proper SHA-1 hash computation.
|
|
7
|
+
*
|
|
8
|
+
* **Key Features**:
|
|
9
|
+
* - Content-addressable storage using SHA-1 hashes
|
|
10
|
+
* - Write-ahead logging (WAL) for durability
|
|
11
|
+
* - Object index for tiered storage support
|
|
12
|
+
* - Batch operations for efficiency
|
|
13
|
+
* - Typed accessors for each Git object type
|
|
14
|
+
*
|
|
15
|
+
* @module durable-object/object-store
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* import { ObjectStore } from './durable-object/object-store'
|
|
20
|
+
*
|
|
21
|
+
* const store = new ObjectStore(durableObjectStorage)
|
|
22
|
+
*
|
|
23
|
+
* // Store a blob
|
|
24
|
+
* const content = new TextEncoder().encode('Hello, World!')
|
|
25
|
+
* const sha = await store.putObject('blob', content)
|
|
26
|
+
*
|
|
27
|
+
* // Retrieve it
|
|
28
|
+
* const obj = await store.getObject(sha)
|
|
29
|
+
* console.log(obj?.type, obj?.size)
|
|
30
|
+
*
|
|
31
|
+
* // Get typed object
|
|
32
|
+
* const blob = await store.getBlobObject(sha)
|
|
33
|
+
* ```
|
|
6
34
|
*/
|
|
7
35
|
import { hashObject } from '../utils/hash';
|
|
8
36
|
const encoder = new TextEncoder();
|
|
9
37
|
const decoder = new TextDecoder();
|
|
38
|
+
// ============================================================================
|
|
39
|
+
// ObjectStore Class
|
|
40
|
+
// ============================================================================
|
|
10
41
|
/**
|
|
11
|
-
* ObjectStore class for managing
|
|
42
|
+
* ObjectStore class for managing Git objects in SQLite storage.
|
|
43
|
+
*
|
|
44
|
+
* @description
|
|
45
|
+
* Provides a complete implementation of Git object storage operations.
|
|
46
|
+
* All objects are stored in the `objects` table and indexed in `object_index`
|
|
47
|
+
* for tiered storage support. Write operations are logged to WAL for durability.
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```typescript
|
|
51
|
+
* const store = new ObjectStore(durableObjectStorage)
|
|
52
|
+
*
|
|
53
|
+
* // Create a commit
|
|
54
|
+
* const commitSha = await store.putCommitObject({
|
|
55
|
+
* tree: treeSha,
|
|
56
|
+
* parents: [parentSha],
|
|
57
|
+
* author: { name: 'Alice', email: 'alice@example.com', timestamp: 1704067200, timezone: '+0000' },
|
|
58
|
+
* committer: { name: 'Alice', email: 'alice@example.com', timestamp: 1704067200, timezone: '+0000' },
|
|
59
|
+
* message: 'Initial commit'
|
|
60
|
+
* })
|
|
61
|
+
*
|
|
62
|
+
* // Read it back
|
|
63
|
+
* const commit = await store.getCommitObject(commitSha)
|
|
64
|
+
* console.log(commit?.message)
|
|
65
|
+
* ```
|
|
12
66
|
*/
|
|
13
67
|
export class ObjectStore {
|
|
14
68
|
storage;
|
|
69
|
+
/**
|
|
70
|
+
* Create a new ObjectStore.
|
|
71
|
+
*
|
|
72
|
+
* @param storage - Durable Object storage interface with SQL support
|
|
73
|
+
*/
|
|
15
74
|
constructor(storage) {
|
|
16
75
|
this.storage = storage;
|
|
17
76
|
}
|
|
18
77
|
/**
|
|
19
|
-
* Store a raw object and return its SHA
|
|
78
|
+
* Store a raw object and return its SHA.
|
|
79
|
+
*
|
|
80
|
+
* @description
|
|
81
|
+
* Computes the SHA-1 hash of the object in Git format (type + size + content),
|
|
82
|
+
* logs the operation to WAL, stores the object, and updates the object index.
|
|
83
|
+
* If an object with the same SHA already exists, it is replaced (idempotent).
|
|
84
|
+
*
|
|
85
|
+
* @param type - Object type ('blob', 'tree', 'commit', 'tag')
|
|
86
|
+
* @param data - Raw object content (without Git header)
|
|
87
|
+
* @returns 40-character SHA-1 hash of the stored object
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```typescript
|
|
91
|
+
* const content = new TextEncoder().encode('file content')
|
|
92
|
+
* const sha = await store.putObject('blob', content)
|
|
93
|
+
* console.log(`Stored blob: ${sha}`)
|
|
94
|
+
* ```
|
|
20
95
|
*/
|
|
21
96
|
async putObject(type, data) {
|
|
22
97
|
// Compute SHA-1 hash using git object format: "type size\0content"
|
|
@@ -30,7 +105,23 @@ export class ObjectStore {
|
|
|
30
105
|
return sha;
|
|
31
106
|
}
|
|
32
107
|
/**
|
|
33
|
-
* Store a tree object with entries
|
|
108
|
+
* Store a tree object with entries.
|
|
109
|
+
*
|
|
110
|
+
* @description
|
|
111
|
+
* Creates a Git tree object from an array of entries. Entries are sorted
|
|
112
|
+
* by name (with directories treated as having trailing slashes for sorting).
|
|
113
|
+
* Each entry is serialized as: "{mode} {name}\0{20-byte-sha}"
|
|
114
|
+
*
|
|
115
|
+
* @param entries - Array of tree entries (files and subdirectories)
|
|
116
|
+
* @returns 40-character SHA-1 hash of the stored tree
|
|
117
|
+
*
|
|
118
|
+
* @example
|
|
119
|
+
* ```typescript
|
|
120
|
+
* const treeSha = await store.putTreeObject([
|
|
121
|
+
* { mode: '100644', name: 'README.md', sha: blobSha },
|
|
122
|
+
* { mode: '040000', name: 'src', sha: subdirSha }
|
|
123
|
+
* ])
|
|
124
|
+
* ```
|
|
34
125
|
*/
|
|
35
126
|
async putTreeObject(entries) {
|
|
36
127
|
// Sort entries by name (directories get trailing / for sorting)
|
|
@@ -60,7 +151,34 @@ export class ObjectStore {
|
|
|
60
151
|
return this.putObject('tree', content);
|
|
61
152
|
}
|
|
62
153
|
/**
|
|
63
|
-
* Store a commit object
|
|
154
|
+
* Store a commit object.
|
|
155
|
+
*
|
|
156
|
+
* @description
|
|
157
|
+
* Creates a Git commit object with the specified tree, parents, author,
|
|
158
|
+
* committer, and message. The commit content is formatted according to
|
|
159
|
+
* the Git commit format specification.
|
|
160
|
+
*
|
|
161
|
+
* @param commit - Commit data
|
|
162
|
+
* @param commit.tree - SHA of the root tree object
|
|
163
|
+
* @param commit.parents - Array of parent commit SHAs (empty for root commit)
|
|
164
|
+
* @param commit.author - Author information
|
|
165
|
+
* @param commit.committer - Committer information
|
|
166
|
+
* @param commit.message - Commit message
|
|
167
|
+
* @returns 40-character SHA-1 hash of the stored commit
|
|
168
|
+
*
|
|
169
|
+
* @example
|
|
170
|
+
* ```typescript
|
|
171
|
+
* const now = Math.floor(Date.now() / 1000)
|
|
172
|
+
* const author = { name: 'Alice', email: 'alice@example.com', timestamp: now, timezone: '+0000' }
|
|
173
|
+
*
|
|
174
|
+
* const sha = await store.putCommitObject({
|
|
175
|
+
* tree: treeSha,
|
|
176
|
+
* parents: [],
|
|
177
|
+
* author,
|
|
178
|
+
* committer: author,
|
|
179
|
+
* message: 'Initial commit\n\nThis is the first commit.'
|
|
180
|
+
* })
|
|
181
|
+
* ```
|
|
64
182
|
*/
|
|
65
183
|
async putCommitObject(commit) {
|
|
66
184
|
// Build commit content (without header)
|
|
@@ -77,7 +195,34 @@ export class ObjectStore {
|
|
|
77
195
|
return this.putObject('commit', content);
|
|
78
196
|
}
|
|
79
197
|
/**
|
|
80
|
-
* Store a tag object
|
|
198
|
+
* Store a tag object (annotated tag).
|
|
199
|
+
*
|
|
200
|
+
* @description
|
|
201
|
+
* Creates a Git tag object pointing to another object with tagger
|
|
202
|
+
* information and a message. The tag content is formatted according
|
|
203
|
+
* to the Git tag format specification.
|
|
204
|
+
*
|
|
205
|
+
* @param tag - Tag data
|
|
206
|
+
* @param tag.object - SHA of the object being tagged
|
|
207
|
+
* @param tag.objectType - Type of the object being tagged
|
|
208
|
+
* @param tag.tagger - Tagger information
|
|
209
|
+
* @param tag.message - Tag message
|
|
210
|
+
* @param tag.name - Tag name
|
|
211
|
+
* @returns 40-character SHA-1 hash of the stored tag object
|
|
212
|
+
*
|
|
213
|
+
* @example
|
|
214
|
+
* ```typescript
|
|
215
|
+
* const now = Math.floor(Date.now() / 1000)
|
|
216
|
+
* const tagger = { name: 'Bob', email: 'bob@example.com', timestamp: now, timezone: '+0000' }
|
|
217
|
+
*
|
|
218
|
+
* const sha = await store.putTagObject({
|
|
219
|
+
* object: commitSha,
|
|
220
|
+
* objectType: 'commit',
|
|
221
|
+
* tagger,
|
|
222
|
+
* message: 'Release v1.0.0',
|
|
223
|
+
* name: 'v1.0.0'
|
|
224
|
+
* })
|
|
225
|
+
* ```
|
|
81
226
|
*/
|
|
82
227
|
async putTagObject(tag) {
|
|
83
228
|
// Build tag content (without header)
|
|
@@ -92,7 +237,22 @@ export class ObjectStore {
|
|
|
92
237
|
return this.putObject('tag', content);
|
|
93
238
|
}
|
|
94
239
|
/**
|
|
95
|
-
* Retrieve an object by SHA
|
|
240
|
+
* Retrieve an object by SHA.
|
|
241
|
+
*
|
|
242
|
+
* @description
|
|
243
|
+
* Fetches an object from the database by its SHA-1 hash.
|
|
244
|
+
* Returns null if the object doesn't exist or if the SHA is invalid.
|
|
245
|
+
*
|
|
246
|
+
* @param sha - 40-character SHA-1 hash
|
|
247
|
+
* @returns The stored object or null if not found
|
|
248
|
+
*
|
|
249
|
+
* @example
|
|
250
|
+
* ```typescript
|
|
251
|
+
* const obj = await store.getObject(sha)
|
|
252
|
+
* if (obj) {
|
|
253
|
+
* console.log(`Found ${obj.type} of ${obj.size} bytes`)
|
|
254
|
+
* }
|
|
255
|
+
* ```
|
|
96
256
|
*/
|
|
97
257
|
async getObject(sha) {
|
|
98
258
|
if (!sha || sha.length < 4) {
|
|
@@ -106,7 +266,25 @@ export class ObjectStore {
|
|
|
106
266
|
return rows[0];
|
|
107
267
|
}
|
|
108
268
|
/**
|
|
109
|
-
* Delete an object by SHA
|
|
269
|
+
* Delete an object by SHA.
|
|
270
|
+
*
|
|
271
|
+
* @description
|
|
272
|
+
* Removes an object from both the objects table and the object index.
|
|
273
|
+
* The operation is logged to WAL. Returns false if the object doesn't exist.
|
|
274
|
+
*
|
|
275
|
+
* **Warning**: Deleting objects that are still referenced by other objects
|
|
276
|
+
* (e.g., blobs referenced by trees) will corrupt the repository.
|
|
277
|
+
*
|
|
278
|
+
* @param sha - 40-character SHA-1 hash
|
|
279
|
+
* @returns True if the object was deleted, false if it didn't exist
|
|
280
|
+
*
|
|
281
|
+
* @example
|
|
282
|
+
* ```typescript
|
|
283
|
+
* const deleted = await store.deleteObject(sha)
|
|
284
|
+
* if (deleted) {
|
|
285
|
+
* console.log('Object removed')
|
|
286
|
+
* }
|
|
287
|
+
* ```
|
|
110
288
|
*/
|
|
111
289
|
async deleteObject(sha) {
|
|
112
290
|
// Check if object exists first
|
|
@@ -123,7 +301,20 @@ export class ObjectStore {
|
|
|
123
301
|
return true;
|
|
124
302
|
}
|
|
125
303
|
/**
|
|
126
|
-
* Check if an object exists
|
|
304
|
+
* Check if an object exists.
|
|
305
|
+
*
|
|
306
|
+
* @description
|
|
307
|
+
* Efficiently checks for object existence without fetching the full content.
|
|
308
|
+
*
|
|
309
|
+
* @param sha - 40-character SHA-1 hash
|
|
310
|
+
* @returns True if the object exists, false otherwise
|
|
311
|
+
*
|
|
312
|
+
* @example
|
|
313
|
+
* ```typescript
|
|
314
|
+
* if (await store.hasObject(sha)) {
|
|
315
|
+
* console.log('Object exists')
|
|
316
|
+
* }
|
|
317
|
+
* ```
|
|
127
318
|
*/
|
|
128
319
|
async hasObject(sha) {
|
|
129
320
|
if (!sha || sha.length < 4) {
|
|
@@ -134,7 +325,24 @@ export class ObjectStore {
|
|
|
134
325
|
return obj !== null;
|
|
135
326
|
}
|
|
136
327
|
/**
|
|
137
|
-
* Verify an object's integrity by recomputing its hash
|
|
328
|
+
* Verify an object's integrity by recomputing its hash.
|
|
329
|
+
*
|
|
330
|
+
* @description
|
|
331
|
+
* Computes the SHA-1 hash of the stored object and compares it
|
|
332
|
+
* to the stored SHA. Returns false if the object is corrupted
|
|
333
|
+
* or doesn't exist.
|
|
334
|
+
*
|
|
335
|
+
* @param sha - 40-character SHA-1 hash to verify
|
|
336
|
+
* @returns True if the computed hash matches, false otherwise
|
|
337
|
+
*
|
|
338
|
+
* @example
|
|
339
|
+
* ```typescript
|
|
340
|
+
* if (await store.verifyObject(sha)) {
|
|
341
|
+
* console.log('Object integrity verified')
|
|
342
|
+
* } else {
|
|
343
|
+
* console.log('Object is corrupted or missing')
|
|
344
|
+
* }
|
|
345
|
+
* ```
|
|
138
346
|
*/
|
|
139
347
|
async verifyObject(sha) {
|
|
140
348
|
const obj = await this.getObject(sha);
|
|
@@ -145,21 +353,63 @@ export class ObjectStore {
|
|
|
145
353
|
return computedSha === sha;
|
|
146
354
|
}
|
|
147
355
|
/**
|
|
148
|
-
* Get object type by SHA
|
|
356
|
+
* Get object type by SHA.
|
|
357
|
+
*
|
|
358
|
+
* @description
|
|
359
|
+
* Returns just the type of an object without fetching its content.
|
|
360
|
+
*
|
|
361
|
+
* @param sha - 40-character SHA-1 hash
|
|
362
|
+
* @returns Object type or null if not found
|
|
363
|
+
*
|
|
364
|
+
* @example
|
|
365
|
+
* ```typescript
|
|
366
|
+
* const type = await store.getObjectType(sha)
|
|
367
|
+
* if (type === 'commit') {
|
|
368
|
+
* // Handle commit
|
|
369
|
+
* }
|
|
370
|
+
* ```
|
|
149
371
|
*/
|
|
150
372
|
async getObjectType(sha) {
|
|
151
373
|
const obj = await this.getObject(sha);
|
|
152
374
|
return obj?.type ?? null;
|
|
153
375
|
}
|
|
154
376
|
/**
|
|
155
|
-
* Get object size by SHA
|
|
377
|
+
* Get object size by SHA.
|
|
378
|
+
*
|
|
379
|
+
* @description
|
|
380
|
+
* Returns just the size of an object without fetching its content.
|
|
381
|
+
*
|
|
382
|
+
* @param sha - 40-character SHA-1 hash
|
|
383
|
+
* @returns Object size in bytes or null if not found
|
|
384
|
+
*
|
|
385
|
+
* @example
|
|
386
|
+
* ```typescript
|
|
387
|
+
* const size = await store.getObjectSize(sha)
|
|
388
|
+
* console.log(`Object is ${size} bytes`)
|
|
389
|
+
* ```
|
|
156
390
|
*/
|
|
157
391
|
async getObjectSize(sha) {
|
|
158
392
|
const obj = await this.getObject(sha);
|
|
159
393
|
return obj?.size ?? null;
|
|
160
394
|
}
|
|
161
395
|
/**
|
|
162
|
-
* Store multiple objects in a batch
|
|
396
|
+
* Store multiple objects in a batch.
|
|
397
|
+
*
|
|
398
|
+
* @description
|
|
399
|
+
* Stores multiple objects sequentially. Each object is stored
|
|
400
|
+
* individually with its own WAL entry. For atomic batch operations,
|
|
401
|
+
* consider wrapping in a transaction.
|
|
402
|
+
*
|
|
403
|
+
* @param objects - Array of objects to store
|
|
404
|
+
* @returns Array of SHA-1 hashes in the same order as input
|
|
405
|
+
*
|
|
406
|
+
* @example
|
|
407
|
+
* ```typescript
|
|
408
|
+
* const shas = await store.putObjects([
|
|
409
|
+
* { type: 'blob', data: content1 },
|
|
410
|
+
* { type: 'blob', data: content2 }
|
|
411
|
+
* ])
|
|
412
|
+
* ```
|
|
163
413
|
*/
|
|
164
414
|
async putObjects(objects) {
|
|
165
415
|
const shas = [];
|
|
@@ -170,7 +420,24 @@ export class ObjectStore {
|
|
|
170
420
|
return shas;
|
|
171
421
|
}
|
|
172
422
|
/**
|
|
173
|
-
* Retrieve multiple objects by SHA
|
|
423
|
+
* Retrieve multiple objects by SHA.
|
|
424
|
+
*
|
|
425
|
+
* @description
|
|
426
|
+
* Fetches multiple objects by their SHAs. Missing objects
|
|
427
|
+
* are returned as null in the result array.
|
|
428
|
+
*
|
|
429
|
+
* @param shas - Array of 40-character SHA-1 hashes
|
|
430
|
+
* @returns Array of objects (or null for missing) in the same order
|
|
431
|
+
*
|
|
432
|
+
* @example
|
|
433
|
+
* ```typescript
|
|
434
|
+
* const objects = await store.getObjects([sha1, sha2, sha3])
|
|
435
|
+
* objects.forEach((obj, i) => {
|
|
436
|
+
* if (obj) {
|
|
437
|
+
* console.log(`${i}: ${obj.type}`)
|
|
438
|
+
* }
|
|
439
|
+
* })
|
|
440
|
+
* ```
|
|
174
441
|
*/
|
|
175
442
|
async getObjects(shas) {
|
|
176
443
|
const results = [];
|
|
@@ -181,7 +448,23 @@ export class ObjectStore {
|
|
|
181
448
|
return results;
|
|
182
449
|
}
|
|
183
450
|
/**
|
|
184
|
-
* Get a blob object with
|
|
451
|
+
* Get a blob object with typed result.
|
|
452
|
+
*
|
|
453
|
+
* @description
|
|
454
|
+
* Fetches an object and returns it as a BlobObject if it's a blob.
|
|
455
|
+
* Returns null if the object doesn't exist or isn't a blob.
|
|
456
|
+
*
|
|
457
|
+
* @param sha - 40-character SHA-1 hash
|
|
458
|
+
* @returns Typed BlobObject or null
|
|
459
|
+
*
|
|
460
|
+
* @example
|
|
461
|
+
* ```typescript
|
|
462
|
+
* const blob = await store.getBlobObject(sha)
|
|
463
|
+
* if (blob) {
|
|
464
|
+
* const content = new TextDecoder().decode(blob.data)
|
|
465
|
+
* console.log(content)
|
|
466
|
+
* }
|
|
467
|
+
* ```
|
|
185
468
|
*/
|
|
186
469
|
async getBlobObject(sha) {
|
|
187
470
|
const obj = await this.getObject(sha);
|
|
@@ -194,7 +477,24 @@ export class ObjectStore {
|
|
|
194
477
|
};
|
|
195
478
|
}
|
|
196
479
|
/**
|
|
197
|
-
* Get a tree object with parsed entries
|
|
480
|
+
* Get a tree object with parsed entries.
|
|
481
|
+
*
|
|
482
|
+
* @description
|
|
483
|
+
* Fetches and parses a tree object, extracting all entries
|
|
484
|
+
* with their modes, names, and SHA references.
|
|
485
|
+
*
|
|
486
|
+
* @param sha - 40-character SHA-1 hash
|
|
487
|
+
* @returns Parsed TreeObject with entries or null
|
|
488
|
+
*
|
|
489
|
+
* @example
|
|
490
|
+
* ```typescript
|
|
491
|
+
* const tree = await store.getTreeObject(sha)
|
|
492
|
+
* if (tree) {
|
|
493
|
+
* for (const entry of tree.entries) {
|
|
494
|
+
* console.log(`${entry.mode} ${entry.name} ${entry.sha}`)
|
|
495
|
+
* }
|
|
496
|
+
* }
|
|
497
|
+
* ```
|
|
198
498
|
*/
|
|
199
499
|
async getTreeObject(sha) {
|
|
200
500
|
const obj = await this.getObject(sha);
|
|
@@ -228,7 +528,24 @@ export class ObjectStore {
|
|
|
228
528
|
};
|
|
229
529
|
}
|
|
230
530
|
/**
|
|
231
|
-
* Get a commit object with parsed fields
|
|
531
|
+
* Get a commit object with parsed fields.
|
|
532
|
+
*
|
|
533
|
+
* @description
|
|
534
|
+
* Fetches and parses a commit object, extracting tree SHA,
|
|
535
|
+
* parent SHAs, author, committer, and message.
|
|
536
|
+
*
|
|
537
|
+
* @param sha - 40-character SHA-1 hash
|
|
538
|
+
* @returns Parsed CommitObject or null
|
|
539
|
+
*
|
|
540
|
+
* @example
|
|
541
|
+
* ```typescript
|
|
542
|
+
* const commit = await store.getCommitObject(sha)
|
|
543
|
+
* if (commit) {
|
|
544
|
+
* console.log(`Author: ${commit.author.name}`)
|
|
545
|
+
* console.log(`Message: ${commit.message}`)
|
|
546
|
+
* console.log(`Parents: ${commit.parents.length}`)
|
|
547
|
+
* }
|
|
548
|
+
* ```
|
|
232
549
|
*/
|
|
233
550
|
async getCommitObject(sha) {
|
|
234
551
|
const obj = await this.getObject(sha);
|
|
@@ -276,7 +593,24 @@ export class ObjectStore {
|
|
|
276
593
|
};
|
|
277
594
|
}
|
|
278
595
|
/**
|
|
279
|
-
* Get a tag object with parsed fields
|
|
596
|
+
* Get a tag object with parsed fields.
|
|
597
|
+
*
|
|
598
|
+
* @description
|
|
599
|
+
* Fetches and parses an annotated tag object, extracting
|
|
600
|
+
* the tagged object SHA, object type, tag name, tagger, and message.
|
|
601
|
+
*
|
|
602
|
+
* @param sha - 40-character SHA-1 hash
|
|
603
|
+
* @returns Parsed TagObject or null
|
|
604
|
+
*
|
|
605
|
+
* @example
|
|
606
|
+
* ```typescript
|
|
607
|
+
* const tag = await store.getTagObject(sha)
|
|
608
|
+
* if (tag) {
|
|
609
|
+
* console.log(`Tag: ${tag.name}`)
|
|
610
|
+
* console.log(`Points to: ${tag.object} (${tag.objectType})`)
|
|
611
|
+
* console.log(`Tagger: ${tag.tagger?.name}`)
|
|
612
|
+
* }
|
|
613
|
+
* ```
|
|
280
614
|
*/
|
|
281
615
|
async getTagObject(sha) {
|
|
282
616
|
const obj = await this.getObject(sha);
|
|
@@ -324,7 +658,24 @@ export class ObjectStore {
|
|
|
324
658
|
};
|
|
325
659
|
}
|
|
326
660
|
/**
|
|
327
|
-
* Get raw serialized object with
|
|
661
|
+
* Get raw serialized object with Git header.
|
|
662
|
+
*
|
|
663
|
+
* @description
|
|
664
|
+
* Returns the complete Git object format including header:
|
|
665
|
+
* "{type} {size}\0{content}"
|
|
666
|
+
*
|
|
667
|
+
* This is the format used for hashing and storage in pack files.
|
|
668
|
+
*
|
|
669
|
+
* @param sha - 40-character SHA-1 hash
|
|
670
|
+
* @returns Complete object with Git header or null
|
|
671
|
+
*
|
|
672
|
+
* @example
|
|
673
|
+
* ```typescript
|
|
674
|
+
* const raw = await store.getRawObject(sha)
|
|
675
|
+
* if (raw) {
|
|
676
|
+
* // Can be written directly to a pack file or loose object
|
|
677
|
+
* }
|
|
678
|
+
* ```
|
|
328
679
|
*/
|
|
329
680
|
async getRawObject(sha) {
|
|
330
681
|
const obj = await this.getObject(sha);
|
|
@@ -339,7 +690,17 @@ export class ObjectStore {
|
|
|
339
690
|
return result;
|
|
340
691
|
}
|
|
341
692
|
/**
|
|
342
|
-
* Log operation to WAL
|
|
693
|
+
* Log operation to WAL.
|
|
694
|
+
*
|
|
695
|
+
* @description
|
|
696
|
+
* Writes an operation entry to the write-ahead log for durability.
|
|
697
|
+
* The WAL ensures operations can be recovered after crashes.
|
|
698
|
+
*
|
|
699
|
+
* @param operation - Operation type ('PUT', 'DELETE', etc.)
|
|
700
|
+
* @param sha - Object SHA being operated on
|
|
701
|
+
* @param type - Object type
|
|
702
|
+
* @param _data - Object data (not stored in WAL, just for signature compatibility)
|
|
703
|
+
* @internal
|
|
343
704
|
*/
|
|
344
705
|
async logToWAL(operation, sha, type, _data) {
|
|
345
706
|
// Create payload with operation details
|
|
@@ -351,8 +712,19 @@ export class ObjectStore {
|
|
|
351
712
|
this.storage.sql.exec('INSERT INTO wal (operation, payload, created_at, flushed) VALUES (?, ?, ?, 0)', operation, payload, Date.now());
|
|
352
713
|
}
|
|
353
714
|
}
|
|
715
|
+
// ============================================================================
|
|
716
|
+
// Helper Functions
|
|
717
|
+
// ============================================================================
|
|
354
718
|
/**
|
|
355
|
-
*
|
|
719
|
+
* Convert hexadecimal string to bytes.
|
|
720
|
+
*
|
|
721
|
+
* @description
|
|
722
|
+
* Parses a hexadecimal string and returns the corresponding bytes.
|
|
723
|
+
* Used for converting SHA strings to 20-byte binary format.
|
|
724
|
+
*
|
|
725
|
+
* @param hex - Hexadecimal string
|
|
726
|
+
* @returns Binary data as Uint8Array
|
|
727
|
+
* @internal
|
|
356
728
|
*/
|
|
357
729
|
function hexToBytes(hex) {
|
|
358
730
|
const bytes = new Uint8Array(hex.length / 2);
|
|
@@ -362,7 +734,15 @@ function hexToBytes(hex) {
|
|
|
362
734
|
return bytes;
|
|
363
735
|
}
|
|
364
736
|
/**
|
|
365
|
-
*
|
|
737
|
+
* Convert bytes to hexadecimal string.
|
|
738
|
+
*
|
|
739
|
+
* @description
|
|
740
|
+
* Converts binary data to a lowercase hexadecimal string.
|
|
741
|
+
* Used for converting 20-byte SHA to 40-character string.
|
|
742
|
+
*
|
|
743
|
+
* @param bytes - Binary data to convert
|
|
744
|
+
* @returns Lowercase hexadecimal string
|
|
745
|
+
* @internal
|
|
366
746
|
*/
|
|
367
747
|
function bytesToHex(bytes) {
|
|
368
748
|
return Array.from(bytes)
|
|
@@ -370,7 +750,16 @@ function bytesToHex(bytes) {
|
|
|
370
750
|
.join('');
|
|
371
751
|
}
|
|
372
752
|
/**
|
|
373
|
-
*
|
|
753
|
+
* Parse author/committer/tagger line.
|
|
754
|
+
*
|
|
755
|
+
* @description
|
|
756
|
+
* Parses a Git author/committer/tagger line in the format:
|
|
757
|
+
* "author Name <email> timestamp timezone"
|
|
758
|
+
*
|
|
759
|
+
* @param line - Full line including prefix
|
|
760
|
+
* @returns Parsed Author object
|
|
761
|
+
* @throws Error if line format is invalid
|
|
762
|
+
* @internal
|
|
374
763
|
*/
|
|
375
764
|
function parseAuthorLine(line) {
|
|
376
765
|
const match = line.match(/^(?:author|committer|tagger) (.+) <(.+)> (\d+) ([+-]\d{4})$/);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object-store.js","sourceRoot":"","sources":["../../src/durable-object/object-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"object-store.js","sourceRoot":"","sources":["../../src/durable-object/object-store.ts"],"names":[],"mappings":"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"}
|