gitx.do 0.0.3 → 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 (231) hide show
  1. package/README.md +319 -92
  2. package/dist/cli/commands/add.d.ts +176 -0
  3. package/dist/cli/commands/add.d.ts.map +1 -0
  4. package/dist/cli/commands/add.js +979 -0
  5. package/dist/cli/commands/add.js.map +1 -0
  6. package/dist/cli/commands/blame.d.ts +1 -1
  7. package/dist/cli/commands/blame.d.ts.map +1 -1
  8. package/dist/cli/commands/blame.js +1 -1
  9. package/dist/cli/commands/blame.js.map +1 -1
  10. package/dist/cli/commands/branch.d.ts +1 -1
  11. package/dist/cli/commands/branch.d.ts.map +1 -1
  12. package/dist/cli/commands/branch.js +2 -2
  13. package/dist/cli/commands/branch.js.map +1 -1
  14. package/dist/cli/commands/checkout.d.ts +73 -0
  15. package/dist/cli/commands/checkout.d.ts.map +1 -0
  16. package/dist/cli/commands/checkout.js +725 -0
  17. package/dist/cli/commands/checkout.js.map +1 -0
  18. package/dist/cli/commands/commit.d.ts.map +1 -1
  19. package/dist/cli/commands/commit.js +22 -2
  20. package/dist/cli/commands/commit.js.map +1 -1
  21. package/dist/cli/commands/diff.d.ts +4 -4
  22. package/dist/cli/commands/diff.d.ts.map +1 -1
  23. package/dist/cli/commands/diff.js +9 -8
  24. package/dist/cli/commands/diff.js.map +1 -1
  25. package/dist/cli/commands/log.d.ts +1 -1
  26. package/dist/cli/commands/log.d.ts.map +1 -1
  27. package/dist/cli/commands/log.js +1 -1
  28. package/dist/cli/commands/log.js.map +1 -1
  29. package/dist/cli/commands/merge.d.ts +106 -0
  30. package/dist/cli/commands/merge.d.ts.map +1 -0
  31. package/dist/cli/commands/merge.js +852 -0
  32. package/dist/cli/commands/merge.js.map +1 -0
  33. package/dist/cli/commands/review.d.ts +1 -1
  34. package/dist/cli/commands/review.d.ts.map +1 -1
  35. package/dist/cli/commands/review.js +26 -1
  36. package/dist/cli/commands/review.js.map +1 -1
  37. package/dist/cli/commands/stash.d.ts +157 -0
  38. package/dist/cli/commands/stash.d.ts.map +1 -0
  39. package/dist/cli/commands/stash.js +655 -0
  40. package/dist/cli/commands/stash.js.map +1 -0
  41. package/dist/cli/commands/status.d.ts.map +1 -1
  42. package/dist/cli/commands/status.js +1 -2
  43. package/dist/cli/commands/status.js.map +1 -1
  44. package/dist/cli/commands/web.d.ts.map +1 -1
  45. package/dist/cli/commands/web.js +3 -2
  46. package/dist/cli/commands/web.js.map +1 -1
  47. package/dist/cli/fs-adapter.d.ts.map +1 -1
  48. package/dist/cli/fs-adapter.js +3 -5
  49. package/dist/cli/fs-adapter.js.map +1 -1
  50. package/dist/cli/fsx-cli-adapter.d.ts +359 -0
  51. package/dist/cli/fsx-cli-adapter.d.ts.map +1 -0
  52. package/dist/cli/fsx-cli-adapter.js +619 -0
  53. package/dist/cli/fsx-cli-adapter.js.map +1 -0
  54. package/dist/cli/index.d.ts.map +1 -1
  55. package/dist/cli/index.js +68 -12
  56. package/dist/cli/index.js.map +1 -1
  57. package/dist/cli/ui/components/DiffView.d.ts +7 -2
  58. package/dist/cli/ui/components/DiffView.d.ts.map +1 -1
  59. package/dist/cli/ui/components/DiffView.js.map +1 -1
  60. package/dist/cli/ui/components/ErrorDisplay.d.ts +6 -2
  61. package/dist/cli/ui/components/ErrorDisplay.d.ts.map +1 -1
  62. package/dist/cli/ui/components/ErrorDisplay.js.map +1 -1
  63. package/dist/cli/ui/components/FuzzySearch.d.ts +8 -2
  64. package/dist/cli/ui/components/FuzzySearch.d.ts.map +1 -1
  65. package/dist/cli/ui/components/FuzzySearch.js.map +1 -1
  66. package/dist/cli/ui/components/LoadingSpinner.d.ts +6 -2
  67. package/dist/cli/ui/components/LoadingSpinner.d.ts.map +1 -1
  68. package/dist/cli/ui/components/LoadingSpinner.js.map +1 -1
  69. package/dist/cli/ui/components/NavigationList.d.ts +7 -2
  70. package/dist/cli/ui/components/NavigationList.d.ts.map +1 -1
  71. package/dist/cli/ui/components/NavigationList.js.map +1 -1
  72. package/dist/cli/ui/components/ScrollableContent.d.ts +7 -2
  73. package/dist/cli/ui/components/ScrollableContent.d.ts.map +1 -1
  74. package/dist/cli/ui/components/ScrollableContent.js.map +1 -1
  75. package/dist/cli/ui/terminal-ui.d.ts +42 -9
  76. package/dist/cli/ui/terminal-ui.d.ts.map +1 -1
  77. package/dist/cli/ui/terminal-ui.js.map +1 -1
  78. package/dist/do/BashModule.d.ts +871 -0
  79. package/dist/do/BashModule.d.ts.map +1 -0
  80. package/dist/do/BashModule.js +1143 -0
  81. package/dist/do/BashModule.js.map +1 -0
  82. package/dist/do/FsModule.d.ts +612 -0
  83. package/dist/do/FsModule.d.ts.map +1 -0
  84. package/dist/do/FsModule.js +1120 -0
  85. package/dist/do/FsModule.js.map +1 -0
  86. package/dist/do/GitModule.d.ts +635 -0
  87. package/dist/do/GitModule.d.ts.map +1 -0
  88. package/dist/do/GitModule.js +784 -0
  89. package/dist/do/GitModule.js.map +1 -0
  90. package/dist/do/GitRepoDO.d.ts +281 -0
  91. package/dist/do/GitRepoDO.d.ts.map +1 -0
  92. package/dist/do/GitRepoDO.js +479 -0
  93. package/dist/do/GitRepoDO.js.map +1 -0
  94. package/dist/do/bash-ast.d.ts +246 -0
  95. package/dist/do/bash-ast.d.ts.map +1 -0
  96. package/dist/do/bash-ast.js +888 -0
  97. package/dist/do/bash-ast.js.map +1 -0
  98. package/dist/do/container-executor.d.ts +491 -0
  99. package/dist/do/container-executor.d.ts.map +1 -0
  100. package/dist/do/container-executor.js +731 -0
  101. package/dist/do/container-executor.js.map +1 -0
  102. package/dist/do/index.d.ts +53 -0
  103. package/dist/do/index.d.ts.map +1 -0
  104. package/dist/do/index.js +91 -0
  105. package/dist/do/index.js.map +1 -0
  106. package/dist/do/tiered-storage.d.ts +403 -0
  107. package/dist/do/tiered-storage.d.ts.map +1 -0
  108. package/dist/do/tiered-storage.js +689 -0
  109. package/dist/do/tiered-storage.js.map +1 -0
  110. package/dist/do/withBash.d.ts +231 -0
  111. package/dist/do/withBash.d.ts.map +1 -0
  112. package/dist/do/withBash.js +244 -0
  113. package/dist/do/withBash.js.map +1 -0
  114. package/dist/do/withFs.d.ts +237 -0
  115. package/dist/do/withFs.d.ts.map +1 -0
  116. package/dist/do/withFs.js +387 -0
  117. package/dist/do/withFs.js.map +1 -0
  118. package/dist/do/withGit.d.ts +180 -0
  119. package/dist/do/withGit.d.ts.map +1 -0
  120. package/dist/do/withGit.js +271 -0
  121. package/dist/do/withGit.js.map +1 -0
  122. package/dist/durable-object/object-store.d.ts +157 -15
  123. package/dist/durable-object/object-store.d.ts.map +1 -1
  124. package/dist/durable-object/object-store.js +435 -47
  125. package/dist/durable-object/object-store.js.map +1 -1
  126. package/dist/durable-object/schema.d.ts +12 -1
  127. package/dist/durable-object/schema.d.ts.map +1 -1
  128. package/dist/durable-object/schema.js +87 -2
  129. package/dist/durable-object/schema.js.map +1 -1
  130. package/dist/index.d.ts +84 -1
  131. package/dist/index.d.ts.map +1 -1
  132. package/dist/index.js +34 -0
  133. package/dist/index.js.map +1 -1
  134. package/dist/mcp/sandbox/miniflare-evaluator.d.ts +22 -0
  135. package/dist/mcp/sandbox/miniflare-evaluator.d.ts.map +1 -0
  136. package/dist/mcp/sandbox/miniflare-evaluator.js +140 -0
  137. package/dist/mcp/sandbox/miniflare-evaluator.js.map +1 -0
  138. package/dist/mcp/sandbox/object-store-proxy.d.ts +32 -0
  139. package/dist/mcp/sandbox/object-store-proxy.d.ts.map +1 -0
  140. package/dist/mcp/sandbox/object-store-proxy.js +30 -0
  141. package/dist/mcp/sandbox/object-store-proxy.js.map +1 -0
  142. package/dist/mcp/sandbox/template.d.ts +17 -0
  143. package/dist/mcp/sandbox/template.d.ts.map +1 -0
  144. package/dist/mcp/sandbox/template.js +71 -0
  145. package/dist/mcp/sandbox/template.js.map +1 -0
  146. package/dist/mcp/sandbox.d.ts.map +1 -1
  147. package/dist/mcp/sandbox.js +16 -4
  148. package/dist/mcp/sandbox.js.map +1 -1
  149. package/dist/mcp/tools/do.d.ts +32 -0
  150. package/dist/mcp/tools/do.d.ts.map +1 -0
  151. package/dist/mcp/tools/do.js +117 -0
  152. package/dist/mcp/tools/do.js.map +1 -0
  153. package/dist/mcp/tools.d.ts.map +1 -1
  154. package/dist/mcp/tools.js +1258 -22
  155. package/dist/mcp/tools.js.map +1 -1
  156. package/dist/pack/delta.d.ts +8 -0
  157. package/dist/pack/delta.d.ts.map +1 -1
  158. package/dist/pack/delta.js +241 -30
  159. package/dist/pack/delta.js.map +1 -1
  160. package/dist/refs/branch.d.ts +38 -25
  161. package/dist/refs/branch.d.ts.map +1 -1
  162. package/dist/refs/branch.js +421 -94
  163. package/dist/refs/branch.js.map +1 -1
  164. package/dist/refs/storage.d.ts +77 -5
  165. package/dist/refs/storage.d.ts.map +1 -1
  166. package/dist/refs/storage.js +193 -43
  167. package/dist/refs/storage.js.map +1 -1
  168. package/dist/refs/tag.d.ts +44 -24
  169. package/dist/refs/tag.d.ts.map +1 -1
  170. package/dist/refs/tag.js +411 -70
  171. package/dist/refs/tag.js.map +1 -1
  172. package/dist/storage/backend.d.ts +425 -0
  173. package/dist/storage/backend.d.ts.map +1 -0
  174. package/dist/storage/backend.js +41 -0
  175. package/dist/storage/backend.js.map +1 -0
  176. package/dist/storage/fsx-adapter.d.ts +204 -0
  177. package/dist/storage/fsx-adapter.d.ts.map +1 -0
  178. package/dist/storage/fsx-adapter.js +518 -0
  179. package/dist/storage/fsx-adapter.js.map +1 -0
  180. package/dist/storage/r2-pack.d.ts.map +1 -1
  181. package/dist/storage/r2-pack.js +4 -1
  182. package/dist/storage/r2-pack.js.map +1 -1
  183. package/dist/tiered/cdc-pipeline.js +3 -3
  184. package/dist/tiered/cdc-pipeline.js.map +1 -1
  185. package/dist/tiered/migration.d.ts.map +1 -1
  186. package/dist/tiered/migration.js +4 -1
  187. package/dist/tiered/migration.js.map +1 -1
  188. package/dist/types/capability.d.ts +1385 -0
  189. package/dist/types/capability.d.ts.map +1 -0
  190. package/dist/types/capability.js +36 -0
  191. package/dist/types/capability.js.map +1 -0
  192. package/dist/types/index.d.ts +13 -0
  193. package/dist/types/index.d.ts.map +1 -0
  194. package/dist/types/index.js +18 -0
  195. package/dist/types/index.js.map +1 -0
  196. package/dist/types/interfaces.d.ts +673 -0
  197. package/dist/types/interfaces.d.ts.map +1 -0
  198. package/dist/types/interfaces.js +26 -0
  199. package/dist/types/interfaces.js.map +1 -0
  200. package/dist/types/objects.d.ts +182 -0
  201. package/dist/types/objects.d.ts.map +1 -1
  202. package/dist/types/objects.js +249 -4
  203. package/dist/types/objects.js.map +1 -1
  204. package/dist/types/storage.d.ts +114 -0
  205. package/dist/types/storage.d.ts.map +1 -1
  206. package/dist/types/storage.js +160 -1
  207. package/dist/types/storage.js.map +1 -1
  208. package/dist/types/worker-loader.d.ts +60 -0
  209. package/dist/types/worker-loader.d.ts.map +1 -0
  210. package/dist/types/worker-loader.js +62 -0
  211. package/dist/types/worker-loader.js.map +1 -0
  212. package/dist/utils/hash.d.ts +126 -80
  213. package/dist/utils/hash.d.ts.map +1 -1
  214. package/dist/utils/hash.js +191 -100
  215. package/dist/utils/hash.js.map +1 -1
  216. package/dist/utils/sha1.d.ts +206 -0
  217. package/dist/utils/sha1.d.ts.map +1 -1
  218. package/dist/utils/sha1.js +405 -0
  219. package/dist/utils/sha1.js.map +1 -1
  220. package/dist/wire/path-security.d.ts +157 -0
  221. package/dist/wire/path-security.d.ts.map +1 -0
  222. package/dist/wire/path-security.js +307 -0
  223. package/dist/wire/path-security.js.map +1 -0
  224. package/dist/wire/receive-pack.d.ts +7 -0
  225. package/dist/wire/receive-pack.d.ts.map +1 -1
  226. package/dist/wire/receive-pack.js +29 -1
  227. package/dist/wire/receive-pack.js.map +1 -1
  228. package/dist/wire/upload-pack.d.ts.map +1 -1
  229. package/dist/wire/upload-pack.js +4 -1
  230. package/dist/wire/upload-pack.js.map +1 -1
  231. package/package.json +10 -1
@@ -0,0 +1,518 @@
1
+ /**
2
+ * @fileoverview FSx Storage Adapter for gitx
3
+ *
4
+ * This module provides a storage backend implementation that uses fsx.do for
5
+ * both content-addressable storage (CAS) and file system operations. It bridges
6
+ * gitx's StorageBackend interface with fsx's CAS and fs operations.
7
+ *
8
+ * **Features**:
9
+ * - Content-addressable storage using fsx CAS (putObject, getObject, hasObject)
10
+ * - Reference storage using fsx file operations
11
+ * - Full file system operations for index, config, and other Git files
12
+ *
13
+ * @module storage/fsx-adapter
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * import { createFSxAdapter } from './storage/fsx-adapter'
18
+ *
19
+ * const storage = createFSxAdapter('/repos/my-repo/.git')
20
+ *
21
+ * // Store a blob
22
+ * const sha = await storage.putObject('blob', content)
23
+ *
24
+ * // Work with refs
25
+ * await storage.setRef('refs/heads/main', {
26
+ * name: 'refs/heads/main',
27
+ * target: sha,
28
+ * type: 'direct'
29
+ * })
30
+ * ```
31
+ */
32
+ import { parseRefContent, serializeRefContent } from '../refs/storage';
33
+ // Import hash utilities from local utils module
34
+ // Note: sha1 is re-exported from fsx.do and works in Workers environment
35
+ import { sha1 } from '../utils/hash';
36
+ // Import pako for compression (still needed as fsx.do CAS handles this internally)
37
+ import * as pako from 'pako';
38
+ // ============================================================================
39
+ // Git Object Utilities
40
+ // ============================================================================
41
+ /**
42
+ * Create a Git object with header
43
+ */
44
+ function createGitObject(type, content) {
45
+ const header = `${type} ${content.length}\0`;
46
+ const headerBytes = new TextEncoder().encode(header);
47
+ const result = new Uint8Array(headerBytes.length + content.length);
48
+ result.set(headerBytes, 0);
49
+ result.set(content, headerBytes.length);
50
+ return result;
51
+ }
52
+ /**
53
+ * Parse a Git object to extract type and content
54
+ */
55
+ function parseGitObject(data) {
56
+ // Find null byte separator
57
+ let nullIndex = -1;
58
+ for (let i = 0; i < data.length; i++) {
59
+ if (data[i] === 0) {
60
+ nullIndex = i;
61
+ break;
62
+ }
63
+ }
64
+ if (nullIndex === -1) {
65
+ throw new Error('Invalid git object: no null byte found');
66
+ }
67
+ const headerStr = new TextDecoder().decode(data.subarray(0, nullIndex));
68
+ const [type] = headerStr.split(' ');
69
+ const content = data.subarray(nullIndex + 1);
70
+ return { type, content };
71
+ }
72
+ /**
73
+ * Compress data with zlib
74
+ */
75
+ async function compress(data) {
76
+ return pako.deflate(data);
77
+ }
78
+ /**
79
+ * Decompress zlib data
80
+ */
81
+ async function decompress(data) {
82
+ return pako.inflate(data);
83
+ }
84
+ // ============================================================================
85
+ // In-Memory Storage for Development/Testing
86
+ // ============================================================================
87
+ /**
88
+ * Simple in-memory storage for development and testing
89
+ * In production, this would be backed by fsx's R2 or SQLite storage
90
+ */
91
+ class InMemoryStorage {
92
+ files = new Map();
93
+ directories = new Set();
94
+ constructor() {
95
+ // Initialize root directory
96
+ this.directories.add('/');
97
+ }
98
+ async read(path) {
99
+ return this.files.get(path) ?? null;
100
+ }
101
+ async write(path, data) {
102
+ this.files.set(path, data);
103
+ // Ensure parent directories exist
104
+ const parts = path.split('/');
105
+ let current = '';
106
+ for (let i = 0; i < parts.length - 1; i++) {
107
+ current += (i === 0 ? '' : '/') + parts[i];
108
+ if (current) {
109
+ this.directories.add(current);
110
+ }
111
+ }
112
+ }
113
+ async delete(path) {
114
+ this.files.delete(path);
115
+ }
116
+ async exists(path) {
117
+ return this.files.has(path) || this.directories.has(path);
118
+ }
119
+ async readdir(path) {
120
+ const normalizedPath = path.endsWith('/') ? path.slice(0, -1) : path;
121
+ const entries = new Set();
122
+ // Check files
123
+ const fileKeys = Array.from(this.files.keys());
124
+ for (const filePath of fileKeys) {
125
+ if (filePath.startsWith(normalizedPath + '/')) {
126
+ const rest = filePath.slice(normalizedPath.length + 1);
127
+ const firstPart = rest.split('/')[0];
128
+ if (firstPart) {
129
+ entries.add(firstPart);
130
+ }
131
+ }
132
+ }
133
+ // Check directories
134
+ const dirEntries = Array.from(this.directories);
135
+ for (const dirPath of dirEntries) {
136
+ if (dirPath.startsWith(normalizedPath + '/')) {
137
+ const rest = dirPath.slice(normalizedPath.length + 1);
138
+ const firstPart = rest.split('/')[0];
139
+ if (firstPart) {
140
+ entries.add(firstPart);
141
+ }
142
+ }
143
+ }
144
+ return Array.from(entries).sort();
145
+ }
146
+ async mkdir(path, options) {
147
+ if (options?.recursive) {
148
+ const parts = path.split('/').filter(Boolean);
149
+ let current = '';
150
+ for (const part of parts) {
151
+ current += '/' + part;
152
+ this.directories.add(current);
153
+ }
154
+ }
155
+ else {
156
+ this.directories.add(path);
157
+ }
158
+ }
159
+ }
160
+ // ============================================================================
161
+ // FSxStorageAdapter Implementation
162
+ // ============================================================================
163
+ const encoder = new TextEncoder();
164
+ const decoder = new TextDecoder();
165
+ /**
166
+ * FSx storage adapter implementing the StorageBackend interface.
167
+ *
168
+ * @description
169
+ * This adapter uses fsx for all storage operations:
170
+ * - CAS operations use fsx's git-compatible object storage
171
+ * - Refs are stored as files at {rootPath}/refs/{refname}
172
+ * - File operations are relative to the rootPath
173
+ */
174
+ export class FSxStorageAdapter {
175
+ rootPath;
176
+ storage;
177
+ /**
178
+ * Create a new FSxStorageAdapter
179
+ *
180
+ * @param rootPath - The root path for the Git repository (typically .git directory)
181
+ */
182
+ constructor(rootPath) {
183
+ // Normalize root path - remove trailing slash
184
+ this.rootPath = rootPath.endsWith('/') ? rootPath.slice(0, -1) : rootPath;
185
+ // Use in-memory storage for now - in production this would be injected
186
+ this.storage = new InMemoryStorage();
187
+ }
188
+ // ==========================================================================
189
+ // Helper Methods
190
+ // ==========================================================================
191
+ /**
192
+ * Resolve a relative path to an absolute path within the repository
193
+ *
194
+ * @param p - Relative path within the repository
195
+ * @returns Absolute path
196
+ */
197
+ resolvePath(p) {
198
+ // Handle empty path
199
+ if (!p) {
200
+ return this.rootPath;
201
+ }
202
+ // Handle absolute paths - just return as-is if already under rootPath
203
+ if (p.startsWith('/')) {
204
+ if (p.startsWith(this.rootPath)) {
205
+ return p;
206
+ }
207
+ // Join with rootPath
208
+ return this.rootPath + p;
209
+ }
210
+ // Relative path - join with rootPath
211
+ return this.rootPath + '/' + p;
212
+ }
213
+ /**
214
+ * Get the path for an object based on its SHA
215
+ *
216
+ * @param sha - 40-character SHA-1 hash
217
+ * @returns Path in format: objects/xx/yyyy...
218
+ */
219
+ getObjectPath(sha) {
220
+ const normalizedSha = sha.toLowerCase();
221
+ const dir = normalizedSha.slice(0, 2);
222
+ const filename = normalizedSha.slice(2);
223
+ return this.resolvePath(`objects/${dir}/${filename}`);
224
+ }
225
+ /**
226
+ * Get the path for a ref
227
+ *
228
+ * @param name - Ref name (e.g., 'refs/heads/main', 'HEAD')
229
+ * @returns Absolute path to the ref file
230
+ */
231
+ getRefPath(name) {
232
+ return this.resolvePath(name);
233
+ }
234
+ // ==========================================================================
235
+ // Content-Addressable Storage (CAS) Operations
236
+ // ==========================================================================
237
+ /**
238
+ * Store a Git object and return its SHA-1 hash.
239
+ *
240
+ * @description
241
+ * Creates a Git object in the format: "{type} {size}\0{content}",
242
+ * computes its SHA-1 hash, compresses it with zlib, and stores it.
243
+ *
244
+ * @param type - Object type: 'blob', 'tree', 'commit', or 'tag'
245
+ * @param content - Raw object content (without Git header)
246
+ * @returns 40-character lowercase hexadecimal SHA-1 hash
247
+ */
248
+ async putObject(type, content) {
249
+ // Create the git object (header + content)
250
+ const gitObject = createGitObject(type, content);
251
+ // Compute SHA-1 hash of the uncompressed git object
252
+ const hash = await sha1(gitObject);
253
+ // Compress the git object with zlib
254
+ const compressedData = await compress(gitObject);
255
+ // Get the storage path from the hash
256
+ const objectPath = this.getObjectPath(hash);
257
+ // Ensure parent directory exists
258
+ const dirPath = objectPath.substring(0, objectPath.lastIndexOf('/'));
259
+ await this.storage.mkdir(dirPath, { recursive: true });
260
+ // Write the compressed data to storage
261
+ await this.storage.write(objectPath, compressedData);
262
+ // Return the 40-character hex hash
263
+ return hash;
264
+ }
265
+ /**
266
+ * Retrieve a Git object by its SHA-1 hash.
267
+ *
268
+ * @param sha - 40-character SHA-1 hash (case-insensitive)
269
+ * @returns Object with type and content, or null if not found
270
+ */
271
+ async getObject(sha) {
272
+ // Normalize to lowercase
273
+ const normalizedSha = sha.toLowerCase();
274
+ // Get the storage path
275
+ const objectPath = this.getObjectPath(normalizedSha);
276
+ // Read compressed data from storage
277
+ const compressedData = await this.storage.read(objectPath);
278
+ if (!compressedData) {
279
+ return null;
280
+ }
281
+ // Decompress the data
282
+ const decompressed = await decompress(compressedData);
283
+ // Parse git object format
284
+ const { type, content } = parseGitObject(decompressed);
285
+ return {
286
+ type: type,
287
+ content
288
+ };
289
+ }
290
+ /**
291
+ * Check if a Git object exists in storage.
292
+ *
293
+ * @param sha - 40-character SHA-1 hash (case-insensitive)
294
+ * @returns True if the object exists, false otherwise
295
+ */
296
+ async hasObject(sha) {
297
+ // Validate hash format
298
+ if (!sha || (sha.length !== 40 && sha.length !== 64)) {
299
+ return false;
300
+ }
301
+ if (!/^[0-9a-fA-F]+$/.test(sha)) {
302
+ return false;
303
+ }
304
+ const normalizedSha = sha.toLowerCase();
305
+ const objectPath = this.getObjectPath(normalizedSha);
306
+ return this.storage.exists(objectPath);
307
+ }
308
+ /**
309
+ * Delete a Git object from storage.
310
+ *
311
+ * @param sha - 40-character SHA-1 hash (case-insensitive)
312
+ */
313
+ async deleteObject(sha) {
314
+ const normalizedSha = sha.toLowerCase();
315
+ const objectPath = this.getObjectPath(normalizedSha);
316
+ await this.storage.delete(objectPath);
317
+ }
318
+ // ==========================================================================
319
+ // Reference Operations
320
+ // ==========================================================================
321
+ /**
322
+ * Get a reference by name.
323
+ *
324
+ * @param name - Full ref name (e.g., 'HEAD', 'refs/heads/main')
325
+ * @returns The reference or null if not found
326
+ */
327
+ async getRef(name) {
328
+ const refPath = this.getRefPath(name);
329
+ const data = await this.storage.read(refPath);
330
+ if (!data) {
331
+ return null;
332
+ }
333
+ const content = decoder.decode(data);
334
+ const { type, target } = parseRefContent(content);
335
+ return {
336
+ name,
337
+ target,
338
+ type
339
+ };
340
+ }
341
+ /**
342
+ * Create or update a reference.
343
+ *
344
+ * @param name - Full ref name (e.g., 'HEAD', 'refs/heads/main')
345
+ * @param ref - The reference object
346
+ */
347
+ async setRef(name, ref) {
348
+ const refPath = this.getRefPath(name);
349
+ // Ensure parent directory exists
350
+ const dirPath = refPath.substring(0, refPath.lastIndexOf('/'));
351
+ if (dirPath && dirPath !== this.rootPath) {
352
+ await this.storage.mkdir(dirPath, { recursive: true });
353
+ }
354
+ const content = serializeRefContent(ref);
355
+ await this.storage.write(refPath, encoder.encode(content));
356
+ }
357
+ /**
358
+ * Delete a reference.
359
+ *
360
+ * @param name - Full ref name to delete
361
+ */
362
+ async deleteRef(name) {
363
+ const refPath = this.getRefPath(name);
364
+ await this.storage.delete(refPath);
365
+ }
366
+ /**
367
+ * List references matching an optional prefix.
368
+ *
369
+ * @param prefix - Optional prefix to filter refs (e.g., 'refs/heads/')
370
+ * @returns Array of matching references
371
+ */
372
+ async listRefs(prefix) {
373
+ const refs = [];
374
+ // Helper function to recursively read refs from a directory
375
+ const readRefsFromDir = async (dirPath, refPrefix) => {
376
+ const fullDirPath = this.resolvePath(dirPath);
377
+ const exists = await this.storage.exists(fullDirPath);
378
+ if (!exists) {
379
+ return;
380
+ }
381
+ const entries = await this.storage.readdir(fullDirPath);
382
+ for (const entry of entries) {
383
+ const entryPath = `${dirPath}/${entry}`;
384
+ const fullEntryPath = this.resolvePath(entryPath);
385
+ const refName = `${refPrefix}${entry}`;
386
+ // Try to read as a ref file
387
+ const data = await this.storage.read(fullEntryPath);
388
+ if (data) {
389
+ // It's a file - parse as ref
390
+ const content = decoder.decode(data);
391
+ try {
392
+ const { type, target } = parseRefContent(content);
393
+ refs.push({ name: refName, target, type });
394
+ }
395
+ catch {
396
+ // Not a valid ref file, skip
397
+ }
398
+ }
399
+ else {
400
+ // It might be a directory - recurse
401
+ await readRefsFromDir(entryPath, refName + '/');
402
+ }
403
+ }
404
+ };
405
+ // Start from refs directory
406
+ const refsDir = prefix ? prefix.replace(/\/$/, '') : 'refs';
407
+ await readRefsFromDir(refsDir, prefix || 'refs/');
408
+ // Also check HEAD if no prefix or if listing all
409
+ if (!prefix) {
410
+ const headRef = await this.getRef('HEAD');
411
+ if (headRef) {
412
+ refs.unshift(headRef);
413
+ }
414
+ }
415
+ return refs;
416
+ }
417
+ // ==========================================================================
418
+ // Raw File Operations
419
+ // ==========================================================================
420
+ /**
421
+ * Read a raw file from the repository.
422
+ *
423
+ * @param path - Path relative to Git directory
424
+ * @returns File contents as Uint8Array, or null if not found
425
+ */
426
+ async readFile(path) {
427
+ const fullPath = this.resolvePath(path);
428
+ return this.storage.read(fullPath);
429
+ }
430
+ /**
431
+ * Write a raw file to the repository.
432
+ *
433
+ * @param path - Path relative to Git directory
434
+ * @param content - File contents as Uint8Array
435
+ */
436
+ async writeFile(path, content) {
437
+ const fullPath = this.resolvePath(path);
438
+ // Ensure parent directory exists
439
+ const dirPath = fullPath.substring(0, fullPath.lastIndexOf('/'));
440
+ if (dirPath && dirPath !== this.rootPath) {
441
+ await this.storage.mkdir(dirPath, { recursive: true });
442
+ }
443
+ await this.storage.write(fullPath, content);
444
+ }
445
+ /**
446
+ * Delete a raw file from the repository.
447
+ *
448
+ * @param path - Path relative to Git directory
449
+ */
450
+ async deleteFile(path) {
451
+ const fullPath = this.resolvePath(path);
452
+ await this.storage.delete(fullPath);
453
+ }
454
+ /**
455
+ * Check if a file or directory exists.
456
+ *
457
+ * @param path - Path relative to Git directory
458
+ * @returns True if the path exists
459
+ */
460
+ async exists(path) {
461
+ const fullPath = this.resolvePath(path);
462
+ return this.storage.exists(fullPath);
463
+ }
464
+ // ==========================================================================
465
+ // Directory Operations
466
+ // ==========================================================================
467
+ /**
468
+ * List contents of a directory.
469
+ *
470
+ * @param path - Path relative to Git directory
471
+ * @returns Array of file and directory names
472
+ */
473
+ async readdir(path) {
474
+ const fullPath = this.resolvePath(path);
475
+ try {
476
+ return await this.storage.readdir(fullPath);
477
+ }
478
+ catch {
479
+ // Return empty array if directory doesn't exist
480
+ return [];
481
+ }
482
+ }
483
+ /**
484
+ * Create a directory.
485
+ *
486
+ * @param path - Path relative to Git directory
487
+ * @param options - Options for directory creation
488
+ */
489
+ async mkdir(path, options) {
490
+ const fullPath = this.resolvePath(path);
491
+ await this.storage.mkdir(fullPath, options);
492
+ }
493
+ }
494
+ // ============================================================================
495
+ // Factory Function
496
+ // ============================================================================
497
+ /**
498
+ * Create an FSx storage adapter.
499
+ *
500
+ * @description
501
+ * Factory function for creating an FSxStorageAdapter instance.
502
+ *
503
+ * @param rootPath - The root path for the Git repository (typically .git directory)
504
+ * @returns A StorageBackend instance backed by fsx
505
+ *
506
+ * @example
507
+ * ```typescript
508
+ * const storage = createFSxAdapter('/repos/my-project/.git')
509
+ *
510
+ * // Use the storage backend
511
+ * const sha = await storage.putObject('blob', content)
512
+ * const ref = await storage.getRef('HEAD')
513
+ * ```
514
+ */
515
+ export function createFSxAdapter(rootPath) {
516
+ return new FSxStorageAdapter(rootPath);
517
+ }
518
+ //# sourceMappingURL=fsx-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fsx-adapter.js","sourceRoot":"","sources":["../../src/storage/fsx-adapter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"r2-pack.d.ts","sourceRoot":"","sources":["../../src/storage/r2-pack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"r2-pack.d.ts","sourceRoot":"","sources":["../../src/storage/r2-pack.ts"],"names":[],"mappings":"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"}
@@ -158,7 +158,10 @@ function validatePackfile(data) {
158
158
  * @internal
159
159
  */
160
160
  async function computeChecksum(data) {
161
- const hashBuffer = await crypto.subtle.digest('SHA-1', data);
161
+ // Create a copy as ArrayBuffer to satisfy BufferSource type
162
+ const buffer = new ArrayBuffer(data.length);
163
+ new Uint8Array(buffer).set(data);
164
+ const hashBuffer = await crypto.subtle.digest('SHA-1', buffer);
162
165
  const hashArray = new Uint8Array(hashBuffer);
163
166
  return Array.from(hashArray)
164
167
  .map(b => b.toString(16).padStart(2, '0'))