gitx.do 0.0.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 (167) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +156 -0
  3. package/dist/durable-object/object-store.d.ts +113 -0
  4. package/dist/durable-object/object-store.d.ts.map +1 -0
  5. package/dist/durable-object/object-store.js +387 -0
  6. package/dist/durable-object/object-store.js.map +1 -0
  7. package/dist/durable-object/schema.d.ts +17 -0
  8. package/dist/durable-object/schema.d.ts.map +1 -0
  9. package/dist/durable-object/schema.js +43 -0
  10. package/dist/durable-object/schema.js.map +1 -0
  11. package/dist/durable-object/wal.d.ts +111 -0
  12. package/dist/durable-object/wal.d.ts.map +1 -0
  13. package/dist/durable-object/wal.js +200 -0
  14. package/dist/durable-object/wal.js.map +1 -0
  15. package/dist/index.d.ts +24 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +101 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/mcp/adapter.d.ts +231 -0
  20. package/dist/mcp/adapter.d.ts.map +1 -0
  21. package/dist/mcp/adapter.js +502 -0
  22. package/dist/mcp/adapter.js.map +1 -0
  23. package/dist/mcp/sandbox.d.ts +261 -0
  24. package/dist/mcp/sandbox.d.ts.map +1 -0
  25. package/dist/mcp/sandbox.js +983 -0
  26. package/dist/mcp/sandbox.js.map +1 -0
  27. package/dist/mcp/sdk-adapter.d.ts +413 -0
  28. package/dist/mcp/sdk-adapter.d.ts.map +1 -0
  29. package/dist/mcp/sdk-adapter.js +672 -0
  30. package/dist/mcp/sdk-adapter.js.map +1 -0
  31. package/dist/mcp/tools.d.ts +133 -0
  32. package/dist/mcp/tools.d.ts.map +1 -0
  33. package/dist/mcp/tools.js +1604 -0
  34. package/dist/mcp/tools.js.map +1 -0
  35. package/dist/ops/blame.d.ts +148 -0
  36. package/dist/ops/blame.d.ts.map +1 -0
  37. package/dist/ops/blame.js +754 -0
  38. package/dist/ops/blame.js.map +1 -0
  39. package/dist/ops/branch.d.ts +215 -0
  40. package/dist/ops/branch.d.ts.map +1 -0
  41. package/dist/ops/branch.js +608 -0
  42. package/dist/ops/branch.js.map +1 -0
  43. package/dist/ops/commit-traversal.d.ts +209 -0
  44. package/dist/ops/commit-traversal.d.ts.map +1 -0
  45. package/dist/ops/commit-traversal.js +755 -0
  46. package/dist/ops/commit-traversal.js.map +1 -0
  47. package/dist/ops/commit.d.ts +221 -0
  48. package/dist/ops/commit.d.ts.map +1 -0
  49. package/dist/ops/commit.js +606 -0
  50. package/dist/ops/commit.js.map +1 -0
  51. package/dist/ops/merge-base.d.ts +223 -0
  52. package/dist/ops/merge-base.d.ts.map +1 -0
  53. package/dist/ops/merge-base.js +581 -0
  54. package/dist/ops/merge-base.js.map +1 -0
  55. package/dist/ops/merge.d.ts +385 -0
  56. package/dist/ops/merge.d.ts.map +1 -0
  57. package/dist/ops/merge.js +1203 -0
  58. package/dist/ops/merge.js.map +1 -0
  59. package/dist/ops/tag.d.ts +182 -0
  60. package/dist/ops/tag.d.ts.map +1 -0
  61. package/dist/ops/tag.js +608 -0
  62. package/dist/ops/tag.js.map +1 -0
  63. package/dist/ops/tree-builder.d.ts +82 -0
  64. package/dist/ops/tree-builder.d.ts.map +1 -0
  65. package/dist/ops/tree-builder.js +246 -0
  66. package/dist/ops/tree-builder.js.map +1 -0
  67. package/dist/ops/tree-diff.d.ts +243 -0
  68. package/dist/ops/tree-diff.d.ts.map +1 -0
  69. package/dist/ops/tree-diff.js +657 -0
  70. package/dist/ops/tree-diff.js.map +1 -0
  71. package/dist/pack/delta.d.ts +68 -0
  72. package/dist/pack/delta.d.ts.map +1 -0
  73. package/dist/pack/delta.js +343 -0
  74. package/dist/pack/delta.js.map +1 -0
  75. package/dist/pack/format.d.ts +84 -0
  76. package/dist/pack/format.d.ts.map +1 -0
  77. package/dist/pack/format.js +261 -0
  78. package/dist/pack/format.js.map +1 -0
  79. package/dist/pack/full-generation.d.ts +327 -0
  80. package/dist/pack/full-generation.d.ts.map +1 -0
  81. package/dist/pack/full-generation.js +1159 -0
  82. package/dist/pack/full-generation.js.map +1 -0
  83. package/dist/pack/generation.d.ts +118 -0
  84. package/dist/pack/generation.d.ts.map +1 -0
  85. package/dist/pack/generation.js +459 -0
  86. package/dist/pack/generation.js.map +1 -0
  87. package/dist/pack/index.d.ts +181 -0
  88. package/dist/pack/index.d.ts.map +1 -0
  89. package/dist/pack/index.js +552 -0
  90. package/dist/pack/index.js.map +1 -0
  91. package/dist/refs/branch.d.ts +224 -0
  92. package/dist/refs/branch.d.ts.map +1 -0
  93. package/dist/refs/branch.js +170 -0
  94. package/dist/refs/branch.js.map +1 -0
  95. package/dist/refs/storage.d.ts +208 -0
  96. package/dist/refs/storage.d.ts.map +1 -0
  97. package/dist/refs/storage.js +421 -0
  98. package/dist/refs/storage.js.map +1 -0
  99. package/dist/refs/tag.d.ts +230 -0
  100. package/dist/refs/tag.d.ts.map +1 -0
  101. package/dist/refs/tag.js +188 -0
  102. package/dist/refs/tag.js.map +1 -0
  103. package/dist/storage/lru-cache.d.ts +188 -0
  104. package/dist/storage/lru-cache.d.ts.map +1 -0
  105. package/dist/storage/lru-cache.js +410 -0
  106. package/dist/storage/lru-cache.js.map +1 -0
  107. package/dist/storage/object-index.d.ts +140 -0
  108. package/dist/storage/object-index.d.ts.map +1 -0
  109. package/dist/storage/object-index.js +166 -0
  110. package/dist/storage/object-index.js.map +1 -0
  111. package/dist/storage/r2-pack.d.ts +394 -0
  112. package/dist/storage/r2-pack.d.ts.map +1 -0
  113. package/dist/storage/r2-pack.js +1062 -0
  114. package/dist/storage/r2-pack.js.map +1 -0
  115. package/dist/tiered/cdc-pipeline.d.ts +316 -0
  116. package/dist/tiered/cdc-pipeline.d.ts.map +1 -0
  117. package/dist/tiered/cdc-pipeline.js +771 -0
  118. package/dist/tiered/cdc-pipeline.js.map +1 -0
  119. package/dist/tiered/migration.d.ts +242 -0
  120. package/dist/tiered/migration.d.ts.map +1 -0
  121. package/dist/tiered/migration.js +592 -0
  122. package/dist/tiered/migration.js.map +1 -0
  123. package/dist/tiered/parquet-writer.d.ts +248 -0
  124. package/dist/tiered/parquet-writer.d.ts.map +1 -0
  125. package/dist/tiered/parquet-writer.js +555 -0
  126. package/dist/tiered/parquet-writer.js.map +1 -0
  127. package/dist/tiered/read-path.d.ts +141 -0
  128. package/dist/tiered/read-path.d.ts.map +1 -0
  129. package/dist/tiered/read-path.js +204 -0
  130. package/dist/tiered/read-path.js.map +1 -0
  131. package/dist/types/objects.d.ts +53 -0
  132. package/dist/types/objects.d.ts.map +1 -0
  133. package/dist/types/objects.js +291 -0
  134. package/dist/types/objects.js.map +1 -0
  135. package/dist/types/storage.d.ts +117 -0
  136. package/dist/types/storage.d.ts.map +1 -0
  137. package/dist/types/storage.js +8 -0
  138. package/dist/types/storage.js.map +1 -0
  139. package/dist/utils/hash.d.ts +31 -0
  140. package/dist/utils/hash.d.ts.map +1 -0
  141. package/dist/utils/hash.js +60 -0
  142. package/dist/utils/hash.js.map +1 -0
  143. package/dist/utils/sha1.d.ts +26 -0
  144. package/dist/utils/sha1.d.ts.map +1 -0
  145. package/dist/utils/sha1.js +127 -0
  146. package/dist/utils/sha1.js.map +1 -0
  147. package/dist/wire/capabilities.d.ts +236 -0
  148. package/dist/wire/capabilities.d.ts.map +1 -0
  149. package/dist/wire/capabilities.js +437 -0
  150. package/dist/wire/capabilities.js.map +1 -0
  151. package/dist/wire/pkt-line.d.ts +67 -0
  152. package/dist/wire/pkt-line.d.ts.map +1 -0
  153. package/dist/wire/pkt-line.js +145 -0
  154. package/dist/wire/pkt-line.js.map +1 -0
  155. package/dist/wire/receive-pack.d.ts +302 -0
  156. package/dist/wire/receive-pack.d.ts.map +1 -0
  157. package/dist/wire/receive-pack.js +885 -0
  158. package/dist/wire/receive-pack.js.map +1 -0
  159. package/dist/wire/smart-http.d.ts +321 -0
  160. package/dist/wire/smart-http.d.ts.map +1 -0
  161. package/dist/wire/smart-http.js +654 -0
  162. package/dist/wire/smart-http.js.map +1 -0
  163. package/dist/wire/upload-pack.d.ts +333 -0
  164. package/dist/wire/upload-pack.d.ts.map +1 -0
  165. package/dist/wire/upload-pack.js +850 -0
  166. package/dist/wire/upload-pack.js.map +1 -0
  167. package/package.json +61 -0
@@ -0,0 +1,224 @@
1
+ /**
2
+ * Git Branch Operations
3
+ *
4
+ * Handles branch creation, deletion, renaming, listing, and tracking.
5
+ * Works with the RefStorage system for underlying ref management.
6
+ */
7
+ import { RefStorage } from './storage';
8
+ /**
9
+ * Branch tracking information
10
+ */
11
+ export interface BranchTrackingInfo {
12
+ /** Remote name (e.g., 'origin') */
13
+ remote: string;
14
+ /** Remote branch name (e.g., 'refs/remotes/origin/main') */
15
+ remoteBranch: string;
16
+ /** Number of commits ahead of upstream */
17
+ ahead: number;
18
+ /** Number of commits behind upstream */
19
+ behind: number;
20
+ /** Whether the branch is gone from remote */
21
+ gone: boolean;
22
+ }
23
+ /**
24
+ * Branch information
25
+ */
26
+ export interface Branch {
27
+ /** Short branch name (e.g., 'main', 'feature/foo') */
28
+ name: string;
29
+ /** Full ref name (e.g., 'refs/heads/main') */
30
+ ref: string;
31
+ /** SHA-1 of the commit this branch points to */
32
+ sha: string;
33
+ /** Whether this is the current branch (HEAD points to it) */
34
+ isCurrent: boolean;
35
+ /** Whether this is a remote tracking branch */
36
+ isRemote: boolean;
37
+ /** Tracking information if the branch tracks an upstream */
38
+ tracking?: BranchTrackingInfo;
39
+ /** Last commit message (optional) */
40
+ lastCommitMessage?: string;
41
+ /** Last commit author (optional) */
42
+ lastCommitAuthor?: string;
43
+ /** Last commit date (optional) */
44
+ lastCommitDate?: Date;
45
+ }
46
+ /**
47
+ * Options for creating a branch
48
+ */
49
+ export interface CreateBranchOptions {
50
+ /** Start point (SHA, branch name, or ref) - defaults to HEAD */
51
+ startPoint?: string;
52
+ /** Force creation even if branch exists (overwrite) */
53
+ force?: boolean;
54
+ /** Set up tracking for the new branch */
55
+ track?: boolean | string;
56
+ /** Don't actually create the branch, just validate */
57
+ dryRun?: boolean;
58
+ }
59
+ /**
60
+ * Options for deleting a branch
61
+ */
62
+ export interface DeleteBranchOptions {
63
+ /** Force delete even if not fully merged */
64
+ force?: boolean;
65
+ /** Remote branch to delete (for remote tracking branches) */
66
+ remote?: string;
67
+ /** Don't actually delete, just validate */
68
+ dryRun?: boolean;
69
+ }
70
+ /**
71
+ * Options for renaming a branch
72
+ */
73
+ export interface RenameBranchOptions {
74
+ /** Force rename even if target exists (overwrite) */
75
+ force?: boolean;
76
+ /** Don't actually rename, just validate */
77
+ dryRun?: boolean;
78
+ }
79
+ /**
80
+ * Options for listing branches
81
+ */
82
+ export interface ListBranchesOptions {
83
+ /** Include remote tracking branches */
84
+ includeRemotes?: boolean;
85
+ /** Only list remote tracking branches */
86
+ remotesOnly?: boolean;
87
+ /** Pattern to filter branches (glob-style) */
88
+ pattern?: string;
89
+ /** Sort by (name, committerdate, authordate, etc.) */
90
+ sortBy?: 'name' | 'committerdate' | 'authordate';
91
+ /** Sort order */
92
+ sortOrder?: 'asc' | 'desc';
93
+ /** Include tracking info (slower) */
94
+ includeTracking?: boolean;
95
+ /** Include commit info (slower) */
96
+ includeCommitInfo?: boolean;
97
+ /** Merged into this ref (filter only merged branches) */
98
+ mergedInto?: string;
99
+ /** Not merged into this ref (filter only unmerged branches) */
100
+ notMergedInto?: string;
101
+ /** Only show branches that contain this commit */
102
+ contains?: string;
103
+ /** Only show branches that don't contain this commit */
104
+ noContains?: string;
105
+ }
106
+ /**
107
+ * Options for setting upstream
108
+ */
109
+ export interface SetUpstreamOptions {
110
+ /** Remote name */
111
+ remote?: string;
112
+ /** Remote branch name */
113
+ remoteBranch?: string;
114
+ /** Unset the upstream (remove tracking) */
115
+ unset?: boolean;
116
+ }
117
+ /**
118
+ * Result of branch validation
119
+ */
120
+ export interface BranchValidationResult {
121
+ /** Whether the name is valid */
122
+ valid: boolean;
123
+ /** Error message if invalid */
124
+ error?: string;
125
+ /** Normalized branch name */
126
+ normalized?: string;
127
+ }
128
+ /**
129
+ * Error thrown when a branch operation fails
130
+ */
131
+ export declare class BranchError extends Error {
132
+ readonly code: BranchErrorCode;
133
+ readonly branchName?: string | undefined;
134
+ constructor(message: string, code: BranchErrorCode, branchName?: string | undefined);
135
+ }
136
+ export type BranchErrorCode = 'NOT_FOUND' | 'ALREADY_EXISTS' | 'INVALID_NAME' | 'NOT_FULLY_MERGED' | 'CANNOT_DELETE_CURRENT' | 'CHECKOUT_CONFLICT' | 'INVALID_START_POINT' | 'NO_UPSTREAM' | 'DETACHED_HEAD';
137
+ /**
138
+ * Branch manager for performing branch operations
139
+ */
140
+ export declare class BranchManager {
141
+ constructor(storage: RefStorage);
142
+ /**
143
+ * Create a new branch
144
+ */
145
+ createBranch(_name: string, _options?: CreateBranchOptions): Promise<Branch>;
146
+ /**
147
+ * Delete a branch
148
+ */
149
+ deleteBranch(_name: string, _options?: DeleteBranchOptions): Promise<void>;
150
+ /**
151
+ * Rename a branch
152
+ */
153
+ renameBranch(_oldName: string, _newName: string, _options?: RenameBranchOptions): Promise<Branch>;
154
+ /**
155
+ * List all branches
156
+ */
157
+ listBranches(_options?: ListBranchesOptions): Promise<Branch[]>;
158
+ /**
159
+ * Get the current branch
160
+ */
161
+ getCurrentBranch(): Promise<Branch | null>;
162
+ /**
163
+ * Get a specific branch by name
164
+ */
165
+ getBranch(_name: string): Promise<Branch | null>;
166
+ /**
167
+ * Check if a branch exists
168
+ */
169
+ branchExists(_name: string): Promise<boolean>;
170
+ /**
171
+ * Set upstream branch for tracking
172
+ */
173
+ setUpstream(_branchName: string, _options: SetUpstreamOptions): Promise<void>;
174
+ /**
175
+ * Get tracking info for a branch
176
+ */
177
+ getTrackingInfo(_branchName: string): Promise<BranchTrackingInfo | null>;
178
+ /**
179
+ * Check if a branch is fully merged into another branch
180
+ */
181
+ isMerged(_branchName: string, _into?: string): Promise<boolean>;
182
+ /**
183
+ * Force delete an unmerged branch
184
+ */
185
+ forceDeleteBranch(_name: string): Promise<void>;
186
+ }
187
+ /**
188
+ * Validate a branch name according to Git rules
189
+ * See: https://git-scm.com/docs/git-check-ref-format
190
+ */
191
+ export declare function validateBranchName(_name: string): BranchValidationResult;
192
+ /**
193
+ * Check if a string is a valid branch name
194
+ */
195
+ export declare function isValidBranchName(_name: string): boolean;
196
+ /**
197
+ * Normalize a branch name (remove refs/heads/ prefix, etc.)
198
+ */
199
+ export declare function normalizeBranchName(_name: string): string;
200
+ /**
201
+ * Get the full ref name for a branch
202
+ */
203
+ export declare function getBranchRefName(_name: string): string;
204
+ /**
205
+ * Create a new branch (convenience function)
206
+ */
207
+ export declare function createBranch(_storage: RefStorage, _name: string, _options?: CreateBranchOptions): Promise<Branch>;
208
+ /**
209
+ * Delete a branch (convenience function)
210
+ */
211
+ export declare function deleteBranch(_storage: RefStorage, _name: string, _options?: DeleteBranchOptions): Promise<void>;
212
+ /**
213
+ * Rename a branch (convenience function)
214
+ */
215
+ export declare function renameBranch(_storage: RefStorage, _oldName: string, _newName: string, _options?: RenameBranchOptions): Promise<Branch>;
216
+ /**
217
+ * List all branches (convenience function)
218
+ */
219
+ export declare function listBranches(_storage: RefStorage, _options?: ListBranchesOptions): Promise<Branch[]>;
220
+ /**
221
+ * Get the current branch (convenience function)
222
+ */
223
+ export declare function getCurrentBranch(_storage: RefStorage): Promise<Branch | null>;
224
+ //# sourceMappingURL=branch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branch.d.ts","sourceRoot":"","sources":["../../src/refs/branch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,170 @@
1
+ /**
2
+ * Git Branch Operations
3
+ *
4
+ * Handles branch creation, deletion, renaming, listing, and tracking.
5
+ * Works with the RefStorage system for underlying ref management.
6
+ */
7
+ /**
8
+ * Error thrown when a branch operation fails
9
+ */
10
+ export class BranchError extends Error {
11
+ code;
12
+ branchName;
13
+ constructor(message, code, branchName) {
14
+ super(message);
15
+ this.code = code;
16
+ this.branchName = branchName;
17
+ this.name = 'BranchError';
18
+ }
19
+ }
20
+ /**
21
+ * Branch manager for performing branch operations
22
+ */
23
+ export class BranchManager {
24
+ constructor(storage) {
25
+ void storage; // Suppress unused variable warning until implementation
26
+ // TODO: Implement in GREEN phase
27
+ }
28
+ /**
29
+ * Create a new branch
30
+ */
31
+ async createBranch(_name, _options) {
32
+ // TODO: Implement in GREEN phase
33
+ throw new Error('Not implemented');
34
+ }
35
+ /**
36
+ * Delete a branch
37
+ */
38
+ async deleteBranch(_name, _options) {
39
+ // TODO: Implement in GREEN phase
40
+ throw new Error('Not implemented');
41
+ }
42
+ /**
43
+ * Rename a branch
44
+ */
45
+ async renameBranch(_oldName, _newName, _options) {
46
+ // TODO: Implement in GREEN phase
47
+ throw new Error('Not implemented');
48
+ }
49
+ /**
50
+ * List all branches
51
+ */
52
+ async listBranches(_options) {
53
+ // TODO: Implement in GREEN phase
54
+ throw new Error('Not implemented');
55
+ }
56
+ /**
57
+ * Get the current branch
58
+ */
59
+ async getCurrentBranch() {
60
+ // TODO: Implement in GREEN phase
61
+ throw new Error('Not implemented');
62
+ }
63
+ /**
64
+ * Get a specific branch by name
65
+ */
66
+ async getBranch(_name) {
67
+ // TODO: Implement in GREEN phase
68
+ throw new Error('Not implemented');
69
+ }
70
+ /**
71
+ * Check if a branch exists
72
+ */
73
+ async branchExists(_name) {
74
+ // TODO: Implement in GREEN phase
75
+ throw new Error('Not implemented');
76
+ }
77
+ /**
78
+ * Set upstream branch for tracking
79
+ */
80
+ async setUpstream(_branchName, _options) {
81
+ // TODO: Implement in GREEN phase
82
+ throw new Error('Not implemented');
83
+ }
84
+ /**
85
+ * Get tracking info for a branch
86
+ */
87
+ async getTrackingInfo(_branchName) {
88
+ // TODO: Implement in GREEN phase
89
+ throw new Error('Not implemented');
90
+ }
91
+ /**
92
+ * Check if a branch is fully merged into another branch
93
+ */
94
+ async isMerged(_branchName, _into) {
95
+ // TODO: Implement in GREEN phase
96
+ throw new Error('Not implemented');
97
+ }
98
+ /**
99
+ * Force delete an unmerged branch
100
+ */
101
+ async forceDeleteBranch(_name) {
102
+ // TODO: Implement in GREEN phase
103
+ throw new Error('Not implemented');
104
+ }
105
+ }
106
+ /**
107
+ * Validate a branch name according to Git rules
108
+ * See: https://git-scm.com/docs/git-check-ref-format
109
+ */
110
+ export function validateBranchName(_name) {
111
+ // TODO: Implement in GREEN phase
112
+ throw new Error('Not implemented');
113
+ }
114
+ /**
115
+ * Check if a string is a valid branch name
116
+ */
117
+ export function isValidBranchName(_name) {
118
+ // TODO: Implement in GREEN phase
119
+ throw new Error('Not implemented');
120
+ }
121
+ /**
122
+ * Normalize a branch name (remove refs/heads/ prefix, etc.)
123
+ */
124
+ export function normalizeBranchName(_name) {
125
+ // TODO: Implement in GREEN phase
126
+ throw new Error('Not implemented');
127
+ }
128
+ /**
129
+ * Get the full ref name for a branch
130
+ */
131
+ export function getBranchRefName(_name) {
132
+ // TODO: Implement in GREEN phase
133
+ throw new Error('Not implemented');
134
+ }
135
+ /**
136
+ * Create a new branch (convenience function)
137
+ */
138
+ export async function createBranch(_storage, _name, _options) {
139
+ // TODO: Implement in GREEN phase
140
+ throw new Error('Not implemented');
141
+ }
142
+ /**
143
+ * Delete a branch (convenience function)
144
+ */
145
+ export async function deleteBranch(_storage, _name, _options) {
146
+ // TODO: Implement in GREEN phase
147
+ throw new Error('Not implemented');
148
+ }
149
+ /**
150
+ * Rename a branch (convenience function)
151
+ */
152
+ export async function renameBranch(_storage, _oldName, _newName, _options) {
153
+ // TODO: Implement in GREEN phase
154
+ throw new Error('Not implemented');
155
+ }
156
+ /**
157
+ * List all branches (convenience function)
158
+ */
159
+ export async function listBranches(_storage, _options) {
160
+ // TODO: Implement in GREEN phase
161
+ throw new Error('Not implemented');
162
+ }
163
+ /**
164
+ * Get the current branch (convenience function)
165
+ */
166
+ export async function getCurrentBranch(_storage) {
167
+ // TODO: Implement in GREEN phase
168
+ throw new Error('Not implemented');
169
+ }
170
+ //# sourceMappingURL=branch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branch.js","sourceRoot":"","sources":["../../src/refs/branch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,208 @@
1
+ /**
2
+ * Git Reference Storage
3
+ *
4
+ * Handles storage and resolution of Git refs (branches, tags, HEAD).
5
+ * Supports both loose refs and packed refs formats.
6
+ */
7
+ export type RefType = 'direct' | 'symbolic';
8
+ /**
9
+ * Represents a Git reference (branch, tag, HEAD, etc.)
10
+ */
11
+ export interface Ref {
12
+ /** Full ref name (e.g., 'refs/heads/main', 'HEAD') */
13
+ name: string;
14
+ /** Target - either a SHA-1 hash (direct) or another ref name (symbolic) */
15
+ target: string;
16
+ /** Type of reference */
17
+ type: RefType;
18
+ }
19
+ /**
20
+ * Options for updating a ref
21
+ */
22
+ export interface UpdateRefOptions {
23
+ /** If true, create the ref if it doesn't exist */
24
+ create?: boolean;
25
+ /** Expected old value for CAS (compare-and-swap) */
26
+ oldValue?: string | null;
27
+ /** Force update even if not a fast-forward */
28
+ force?: boolean;
29
+ /** Reason for the update (for reflog) */
30
+ reason?: string;
31
+ /** If provided, use this lock instead of acquiring a new one */
32
+ lock?: RefLock;
33
+ }
34
+ /**
35
+ * Options for listing refs
36
+ */
37
+ export interface ListRefsOptions {
38
+ /** Pattern to filter refs (e.g., 'refs/heads/*') */
39
+ pattern?: string;
40
+ /** Include HEAD in the listing */
41
+ includeHead?: boolean;
42
+ /** Include symbolic refs */
43
+ includeSymbolic?: boolean;
44
+ }
45
+ /**
46
+ * Options for resolving refs
47
+ */
48
+ export interface ResolveRefOptions {
49
+ /** Maximum depth for following symbolic refs (default: 10) */
50
+ maxDepth?: number;
51
+ }
52
+ /**
53
+ * Result of a ref resolution
54
+ */
55
+ export interface ResolvedRef {
56
+ /** The original ref that was resolved */
57
+ ref: Ref;
58
+ /** The final SHA-1 target after following all symbolic refs */
59
+ sha: string;
60
+ /** Chain of refs followed during resolution */
61
+ chain: Ref[];
62
+ }
63
+ /**
64
+ * Error thrown when a ref operation fails
65
+ */
66
+ export declare class RefError extends Error {
67
+ readonly code: RefErrorCode;
68
+ readonly refName?: string | undefined;
69
+ constructor(message: string, code: RefErrorCode, refName?: string | undefined);
70
+ }
71
+ export type RefErrorCode = 'NOT_FOUND' | 'ALREADY_EXISTS' | 'INVALID_NAME' | 'LOCKED' | 'CONFLICT' | 'CIRCULAR_REF' | 'MAX_DEPTH_EXCEEDED' | 'INVALID_SHA';
72
+ /**
73
+ * Lock handle for ref updates
74
+ */
75
+ export interface RefLock {
76
+ /** The ref being locked */
77
+ refName: string;
78
+ /** Release the lock */
79
+ release(): Promise<void>;
80
+ /** Check if lock is still held */
81
+ isHeld(): boolean;
82
+ }
83
+ /**
84
+ * Storage backend interface for refs
85
+ */
86
+ export interface RefStorageBackend {
87
+ /** Read a single ref */
88
+ readRef(name: string): Promise<Ref | null>;
89
+ /** Write a ref */
90
+ writeRef(ref: Ref): Promise<void>;
91
+ /** Delete a ref */
92
+ deleteRef(name: string): Promise<boolean>;
93
+ /** List all refs matching a pattern */
94
+ listRefs(pattern?: string): Promise<Ref[]>;
95
+ /** Acquire a lock on a ref */
96
+ acquireLock(name: string, timeout?: number): Promise<RefLock>;
97
+ /** Read packed refs */
98
+ readPackedRefs(): Promise<Map<string, string>>;
99
+ /** Write packed refs */
100
+ writePackedRefs(refs: Map<string, string>): Promise<void>;
101
+ }
102
+ /**
103
+ * Validate a ref name according to Git rules
104
+ * See: https://git-scm.com/docs/git-check-ref-format
105
+ */
106
+ export declare function isValidRefName(name: string): boolean;
107
+ /**
108
+ * Validate a SHA-1 hash
109
+ */
110
+ export declare function isValidSha(sha: string): boolean;
111
+ /**
112
+ * Parse a ref file content
113
+ */
114
+ export declare function parseRefContent(content: string): {
115
+ type: RefType;
116
+ target: string;
117
+ };
118
+ /**
119
+ * Serialize a ref to file content
120
+ */
121
+ export declare function serializeRefContent(ref: Ref): string;
122
+ /**
123
+ * Parse packed-refs file content
124
+ */
125
+ export declare function parsePackedRefs(content: string): Map<string, string>;
126
+ /**
127
+ * Serialize refs to packed-refs format
128
+ */
129
+ export declare function serializePackedRefs(refs: Map<string, string>): string;
130
+ /**
131
+ * Ref storage implementation
132
+ */
133
+ export declare class RefStorage {
134
+ private backend;
135
+ constructor(backend: RefStorageBackend);
136
+ /**
137
+ * Get a ref by name
138
+ */
139
+ getRef(name: string): Promise<Ref | null>;
140
+ /**
141
+ * Resolve a ref to its final SHA target
142
+ */
143
+ resolveRef(name: string, options?: ResolveRefOptions): Promise<ResolvedRef>;
144
+ /**
145
+ * Update or create a ref
146
+ *
147
+ * Note: For atomic operations, callers can acquire a lock via acquireLock()
148
+ * and pass it via options.lock to avoid double-locking.
149
+ */
150
+ updateRef(name: string, target: string, options?: UpdateRefOptions): Promise<Ref>;
151
+ /**
152
+ * Delete a ref
153
+ */
154
+ deleteRef(name: string, options?: UpdateRefOptions): Promise<boolean>;
155
+ /**
156
+ * List refs matching a pattern
157
+ */
158
+ listRefs(options?: ListRefsOptions): Promise<Ref[]>;
159
+ /**
160
+ * List all branches
161
+ */
162
+ listBranches(): Promise<Ref[]>;
163
+ /**
164
+ * List all tags
165
+ */
166
+ listTags(): Promise<Ref[]>;
167
+ /**
168
+ * Get HEAD ref
169
+ */
170
+ getHead(): Promise<Ref>;
171
+ /**
172
+ * Update HEAD (can be symbolic or detached)
173
+ */
174
+ updateHead(target: string, symbolic?: boolean): Promise<Ref>;
175
+ /**
176
+ * Check if HEAD is detached
177
+ */
178
+ isHeadDetached(): Promise<boolean>;
179
+ /**
180
+ * Create a symbolic ref
181
+ */
182
+ createSymbolicRef(name: string, target: string): Promise<Ref>;
183
+ /**
184
+ * Acquire a lock for updating a ref
185
+ */
186
+ acquireLock(name: string, timeout?: number): Promise<RefLock>;
187
+ /**
188
+ * Pack loose refs into packed-refs file
189
+ */
190
+ packRefs(): Promise<void>;
191
+ }
192
+ /**
193
+ * Resolve a ref to its final SHA target (convenience function)
194
+ */
195
+ export declare function resolveRef(storage: RefStorage, name: string, options?: ResolveRefOptions): Promise<string>;
196
+ /**
197
+ * Update a ref (convenience function)
198
+ */
199
+ export declare function updateRef(storage: RefStorage, name: string, target: string, options?: UpdateRefOptions): Promise<Ref>;
200
+ /**
201
+ * Delete a ref (convenience function)
202
+ */
203
+ export declare function deleteRef(storage: RefStorage, name: string, options?: UpdateRefOptions): Promise<boolean>;
204
+ /**
205
+ * List refs (convenience function)
206
+ */
207
+ export declare function listRefs(storage: RefStorage, options?: ListRefsOptions): Promise<Ref[]>;
208
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/refs/storage.ts"],"names":[],"mappings":"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"}