@aigne/afs-git 1.11.0-beta.1 → 1.11.0-beta.11
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/_virtual/_@oxc-project_runtime@0.108.0/helpers/decorate.cjs +11 -0
- package/dist/_virtual/_@oxc-project_runtime@0.108.0/helpers/decorate.mjs +10 -0
- package/dist/_virtual/rolldown_runtime.mjs +7 -0
- package/dist/index.cjs +1216 -291
- package/dist/index.d.cts +361 -216
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +361 -216
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1216 -292
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -4
package/dist/index.d.cts
CHANGED
|
@@ -1,212 +1,132 @@
|
|
|
1
|
-
import { AFSAccessMode,
|
|
1
|
+
import { AFSAccessMode, AFSEntry, AFSExecResult, AFSExplainResult, AFSListResult, AFSModuleLoadParams, AFSSearchOptions, AFSStatResult, AFSWriteEntryPayload, ProviderManifest } from "@aigne/afs";
|
|
2
|
+
import { AFSBaseProvider, RouteContext } from "@aigne/afs/provider";
|
|
2
3
|
import { z } from "zod";
|
|
3
4
|
|
|
4
5
|
//#region src/index.d.ts
|
|
5
6
|
interface AFSGitOptions {
|
|
6
7
|
name?: string;
|
|
7
8
|
/**
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
* Local path to git repository.
|
|
10
|
+
* If remoteUrl is provided and repoPath doesn't exist, will clone to this path.
|
|
11
|
+
* If remoteUrl is provided and repoPath is not specified, clones to temp directory.
|
|
12
|
+
*/
|
|
12
13
|
repoPath?: string;
|
|
13
14
|
/**
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
* Remote repository URL (https or git protocol).
|
|
16
|
+
* If provided, will clone the repository if repoPath doesn't exist.
|
|
17
|
+
* Examples:
|
|
18
|
+
* - https://github.com/user/repo.git
|
|
19
|
+
* - git@github.com:user/repo.git
|
|
20
|
+
*/
|
|
20
21
|
remoteUrl?: string;
|
|
21
22
|
description?: string;
|
|
22
23
|
/**
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
* List of branches to expose/access.
|
|
25
|
+
* Also used for clone optimization when cloning from remoteUrl:
|
|
26
|
+
* - Single branch (e.g., ['main']): Uses --single-branch for faster clone
|
|
27
|
+
* - Multiple branches: Clones all branches, filters access to specified ones
|
|
28
|
+
* - Not specified: All branches are accessible
|
|
29
|
+
*/
|
|
29
30
|
branches?: string[];
|
|
30
31
|
/**
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
* Access mode for this module.
|
|
33
|
+
* - "readonly": Only read operations are allowed, uses git commands (no worktree)
|
|
34
|
+
* - "readwrite": All operations are allowed, creates worktrees as needed
|
|
35
|
+
* @default "readonly"
|
|
36
|
+
*/
|
|
36
37
|
accessMode?: AFSAccessMode;
|
|
37
38
|
/**
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
* Automatically commit changes after write operations
|
|
40
|
+
* @default false
|
|
41
|
+
*/
|
|
41
42
|
autoCommit?: boolean;
|
|
42
43
|
/**
|
|
43
|
-
|
|
44
|
-
|
|
44
|
+
* Author information for commits when autoCommit is enabled
|
|
45
|
+
*/
|
|
45
46
|
commitAuthor?: {
|
|
46
47
|
name: string;
|
|
47
48
|
email: string;
|
|
48
49
|
};
|
|
49
50
|
/**
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
* Clone depth for shallow clone (only used when cloning from remoteUrl)
|
|
52
|
+
* @default 1
|
|
53
|
+
*/
|
|
53
54
|
depth?: number;
|
|
54
55
|
/**
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
56
|
+
* Automatically clean up cloned repository on cleanup()
|
|
57
|
+
* Only applies when repository was auto-cloned to temp directory
|
|
58
|
+
* @default true
|
|
59
|
+
*/
|
|
59
60
|
autoCleanup?: boolean;
|
|
60
61
|
/**
|
|
61
|
-
|
|
62
|
-
|
|
62
|
+
* Git clone options (only used when cloning from remoteUrl)
|
|
63
|
+
*/
|
|
63
64
|
cloneOptions?: {
|
|
64
65
|
/**
|
|
65
|
-
|
|
66
|
-
|
|
66
|
+
* Authentication credentials for private repositories
|
|
67
|
+
*/
|
|
67
68
|
auth?: {
|
|
68
69
|
username?: string;
|
|
69
70
|
password?: string;
|
|
70
71
|
};
|
|
71
72
|
};
|
|
72
73
|
}
|
|
73
|
-
declare class AFSGit
|
|
74
|
+
declare class AFSGit extends AFSBaseProvider {
|
|
74
75
|
options: AFSGitOptions & {
|
|
75
76
|
cwd?: string;
|
|
77
|
+
localPath?: string;
|
|
78
|
+
branch?: string;
|
|
79
|
+
uri?: string;
|
|
76
80
|
};
|
|
77
|
-
static schema(): z.
|
|
78
|
-
name:
|
|
79
|
-
repoPath:
|
|
80
|
-
remoteUrl:
|
|
81
|
-
description:
|
|
82
|
-
branches:
|
|
83
|
-
accessMode:
|
|
84
|
-
autoCommit:
|
|
85
|
-
commitAuthor:
|
|
86
|
-
name: string;
|
|
87
|
-
email: string;
|
|
88
|
-
} | undefined, z.ZodTypeDef, {
|
|
89
|
-
name: string;
|
|
90
|
-
email: string;
|
|
91
|
-
} | undefined>;
|
|
92
|
-
depth: z.ZodType<number | undefined, z.ZodTypeDef, number | undefined>;
|
|
93
|
-
autoCleanup: z.ZodType<boolean | undefined, z.ZodTypeDef, boolean | undefined>;
|
|
94
|
-
cloneOptions: z.ZodType<{
|
|
95
|
-
auth?: {
|
|
96
|
-
username?: string | undefined;
|
|
97
|
-
password?: string | undefined;
|
|
98
|
-
} | undefined;
|
|
99
|
-
} | undefined, z.ZodTypeDef, {
|
|
100
|
-
auth?: {
|
|
101
|
-
username?: string | undefined;
|
|
102
|
-
password?: string | undefined;
|
|
103
|
-
} | undefined;
|
|
104
|
-
} | undefined>;
|
|
105
|
-
}, "strip", z.ZodTypeAny, {
|
|
106
|
-
name?: string | undefined;
|
|
107
|
-
repoPath?: string | undefined;
|
|
108
|
-
remoteUrl?: string | undefined;
|
|
109
|
-
description?: string | undefined;
|
|
110
|
-
branches?: string[] | undefined;
|
|
111
|
-
accessMode?: "readonly" | "readwrite" | undefined;
|
|
112
|
-
autoCommit?: boolean | undefined;
|
|
113
|
-
commitAuthor?: {
|
|
114
|
-
name: string;
|
|
115
|
-
email: string;
|
|
116
|
-
} | undefined;
|
|
117
|
-
depth?: number | undefined;
|
|
118
|
-
autoCleanup?: boolean | undefined;
|
|
119
|
-
cloneOptions?: {
|
|
120
|
-
auth?: {
|
|
121
|
-
username?: string | undefined;
|
|
122
|
-
password?: string | undefined;
|
|
123
|
-
} | undefined;
|
|
124
|
-
} | undefined;
|
|
125
|
-
}, {
|
|
126
|
-
name?: string | undefined;
|
|
127
|
-
repoPath?: string | undefined;
|
|
128
|
-
remoteUrl?: string | undefined;
|
|
129
|
-
description?: string | undefined;
|
|
130
|
-
branches?: string[] | undefined;
|
|
131
|
-
accessMode?: "readonly" | "readwrite" | undefined;
|
|
132
|
-
autoCommit?: boolean | undefined;
|
|
133
|
-
commitAuthor?: {
|
|
134
|
-
name: string;
|
|
135
|
-
email: string;
|
|
136
|
-
} | undefined;
|
|
137
|
-
depth?: number | undefined;
|
|
138
|
-
autoCleanup?: boolean | undefined;
|
|
139
|
-
cloneOptions?: {
|
|
140
|
-
auth?: {
|
|
141
|
-
username?: string | undefined;
|
|
142
|
-
password?: string | undefined;
|
|
143
|
-
} | undefined;
|
|
144
|
-
} | undefined;
|
|
145
|
-
}>, {
|
|
146
|
-
name?: string | undefined;
|
|
147
|
-
repoPath?: string | undefined;
|
|
148
|
-
remoteUrl?: string | undefined;
|
|
149
|
-
description?: string | undefined;
|
|
150
|
-
branches?: string[] | undefined;
|
|
151
|
-
accessMode?: "readonly" | "readwrite" | undefined;
|
|
152
|
-
autoCommit?: boolean | undefined;
|
|
153
|
-
commitAuthor?: {
|
|
154
|
-
name: string;
|
|
155
|
-
email: string;
|
|
156
|
-
} | undefined;
|
|
157
|
-
depth?: number | undefined;
|
|
158
|
-
autoCleanup?: boolean | undefined;
|
|
159
|
-
cloneOptions?: {
|
|
160
|
-
auth?: {
|
|
161
|
-
username?: string | undefined;
|
|
162
|
-
password?: string | undefined;
|
|
163
|
-
} | undefined;
|
|
164
|
-
} | undefined;
|
|
165
|
-
}, {
|
|
166
|
-
name?: string | undefined;
|
|
167
|
-
repoPath?: string | undefined;
|
|
168
|
-
remoteUrl?: string | undefined;
|
|
169
|
-
description?: string | undefined;
|
|
170
|
-
branches?: string[] | undefined;
|
|
171
|
-
accessMode?: "readonly" | "readwrite" | undefined;
|
|
172
|
-
autoCommit?: boolean | undefined;
|
|
173
|
-
commitAuthor?: {
|
|
81
|
+
static schema(): z.ZodType<{
|
|
82
|
+
name: string | undefined;
|
|
83
|
+
repoPath: string | undefined;
|
|
84
|
+
remoteUrl: string | undefined;
|
|
85
|
+
description: string | undefined;
|
|
86
|
+
branches: string[] | undefined;
|
|
87
|
+
accessMode: "readonly" | "readwrite" | undefined;
|
|
88
|
+
autoCommit: boolean | undefined;
|
|
89
|
+
commitAuthor: {
|
|
174
90
|
name: string;
|
|
175
91
|
email: string;
|
|
176
92
|
} | undefined;
|
|
177
|
-
depth
|
|
178
|
-
autoCleanup
|
|
179
|
-
cloneOptions
|
|
180
|
-
auth
|
|
181
|
-
username
|
|
182
|
-
password
|
|
93
|
+
depth: number | undefined;
|
|
94
|
+
autoCleanup: boolean | undefined;
|
|
95
|
+
cloneOptions: {
|
|
96
|
+
auth: {
|
|
97
|
+
username: string | undefined;
|
|
98
|
+
password: string | undefined;
|
|
183
99
|
} | undefined;
|
|
184
100
|
} | undefined;
|
|
185
|
-
}
|
|
186
|
-
name
|
|
187
|
-
repoPath
|
|
188
|
-
remoteUrl
|
|
189
|
-
description
|
|
190
|
-
branches
|
|
191
|
-
accessMode
|
|
192
|
-
autoCommit
|
|
193
|
-
commitAuthor
|
|
101
|
+
}, unknown, z.core.$ZodTypeInternals<{
|
|
102
|
+
name: string | undefined;
|
|
103
|
+
repoPath: string | undefined;
|
|
104
|
+
remoteUrl: string | undefined;
|
|
105
|
+
description: string | undefined;
|
|
106
|
+
branches: string[] | undefined;
|
|
107
|
+
accessMode: "readonly" | "readwrite" | undefined;
|
|
108
|
+
autoCommit: boolean | undefined;
|
|
109
|
+
commitAuthor: {
|
|
194
110
|
name: string;
|
|
195
111
|
email: string;
|
|
196
112
|
} | undefined;
|
|
197
|
-
depth
|
|
198
|
-
autoCleanup
|
|
199
|
-
cloneOptions
|
|
200
|
-
auth
|
|
201
|
-
username
|
|
202
|
-
password
|
|
113
|
+
depth: number | undefined;
|
|
114
|
+
autoCleanup: boolean | undefined;
|
|
115
|
+
cloneOptions: {
|
|
116
|
+
auth: {
|
|
117
|
+
username: string | undefined;
|
|
118
|
+
password: string | undefined;
|
|
203
119
|
} | undefined;
|
|
204
120
|
} | undefined;
|
|
205
|
-
},
|
|
121
|
+
}, unknown>>;
|
|
122
|
+
static manifest(): ProviderManifest;
|
|
206
123
|
static load({
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
}
|
|
124
|
+
basePath,
|
|
125
|
+
config
|
|
126
|
+
}?: AFSModuleLoadParams): Promise<AFSGit>;
|
|
127
|
+
readonly name: string;
|
|
128
|
+
readonly description?: string;
|
|
129
|
+
readonly accessMode: AFSAccessMode;
|
|
210
130
|
private initPromise;
|
|
211
131
|
private git;
|
|
212
132
|
private tempBase;
|
|
@@ -217,85 +137,310 @@ declare class AFSGit implements AFSModule {
|
|
|
217
137
|
private repoPath;
|
|
218
138
|
constructor(options: AFSGitOptions & {
|
|
219
139
|
cwd?: string;
|
|
140
|
+
localPath?: string;
|
|
141
|
+
branch?: string;
|
|
142
|
+
uri?: string;
|
|
220
143
|
});
|
|
221
144
|
/**
|
|
222
|
-
|
|
223
|
-
|
|
145
|
+
* Wait for async initialization to complete
|
|
146
|
+
*/
|
|
224
147
|
ready(): Promise<void>;
|
|
225
148
|
/**
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
149
|
+
* Async initialization logic (runs in constructor)
|
|
150
|
+
* Handles cloning remote repositories if needed
|
|
151
|
+
*/
|
|
229
152
|
private initialize;
|
|
230
153
|
/**
|
|
231
|
-
|
|
232
|
-
|
|
154
|
+
* Clone a remote repository to local path
|
|
155
|
+
*/
|
|
233
156
|
private static cloneRepository;
|
|
234
|
-
name: string;
|
|
235
|
-
description?: string;
|
|
236
|
-
accessMode: AFSAccessMode;
|
|
237
|
-
/**
|
|
238
|
-
* Parse AFS path into branch and file path
|
|
239
|
-
* Branch names may contain slashes and are encoded with ~ in paths
|
|
240
|
-
* Examples:
|
|
241
|
-
* "/" -> { branch: undefined, filePath: "" }
|
|
242
|
-
* "/main" -> { branch: "main", filePath: "" }
|
|
243
|
-
* "/feature~new-feature" -> { branch: "feature/new-feature", filePath: "" }
|
|
244
|
-
* "/main/src/index.ts" -> { branch: "main", filePath: "src/index.ts" }
|
|
245
|
-
*/
|
|
246
|
-
private parsePath;
|
|
247
157
|
/**
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
158
|
+
* List root (branches)
|
|
159
|
+
* Note: list() returns only children (branches), never the path itself (per new semantics)
|
|
160
|
+
*/
|
|
161
|
+
listRootHandler(ctx: RouteContext): Promise<AFSListResult & {
|
|
162
|
+
noExpand?: string[];
|
|
163
|
+
}>;
|
|
251
164
|
/**
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
165
|
+
* List branch root (matches /main, /develop, etc.)
|
|
166
|
+
*/
|
|
167
|
+
listBranchRootHandler(ctx: RouteContext<{
|
|
168
|
+
branch: string;
|
|
169
|
+
}>): Promise<AFSListResult & {
|
|
170
|
+
noExpand?: string[];
|
|
171
|
+
}>;
|
|
172
|
+
/**
|
|
173
|
+
* List files in branch with subpath (matches /main/src, /main/src/foo, etc.)
|
|
174
|
+
*/
|
|
175
|
+
listBranchHandler(ctx: RouteContext<{
|
|
176
|
+
branch: string;
|
|
177
|
+
path: string;
|
|
178
|
+
}>): Promise<AFSListResult & {
|
|
179
|
+
noExpand?: string[];
|
|
180
|
+
}>;
|
|
181
|
+
/**
|
|
182
|
+
* Read root metadata (introspection only, read-only)
|
|
183
|
+
*/
|
|
184
|
+
readRootMetaHandler(_ctx: RouteContext): Promise<AFSEntry | undefined>;
|
|
185
|
+
/**
|
|
186
|
+
* Read branch root metadata (introspection only, read-only)
|
|
187
|
+
*/
|
|
188
|
+
readBranchMetaHandler(ctx: RouteContext<{
|
|
189
|
+
branch: string;
|
|
190
|
+
}>): Promise<AFSEntry | undefined>;
|
|
191
|
+
/**
|
|
192
|
+
* Read file or directory metadata in branch (introspection only, read-only)
|
|
193
|
+
*/
|
|
194
|
+
readPathMetaHandler(ctx: RouteContext<{
|
|
195
|
+
branch: string;
|
|
196
|
+
path: string;
|
|
197
|
+
}>): Promise<AFSEntry | undefined>;
|
|
198
|
+
/**
|
|
199
|
+
* Read root
|
|
200
|
+
*/
|
|
201
|
+
readRootHandler(_ctx: RouteContext): Promise<AFSEntry | undefined>;
|
|
202
|
+
/**
|
|
203
|
+
* Read branch root
|
|
204
|
+
*/
|
|
205
|
+
readBranchRootHandler(ctx: RouteContext<{
|
|
206
|
+
branch: string;
|
|
207
|
+
}>): Promise<AFSEntry | undefined>;
|
|
208
|
+
/**
|
|
209
|
+
* Read file or directory in branch
|
|
210
|
+
*/
|
|
211
|
+
readBranchHandler(ctx: RouteContext<{
|
|
212
|
+
branch: string;
|
|
213
|
+
path: string;
|
|
214
|
+
}>): Promise<AFSEntry | undefined>;
|
|
215
|
+
/**
|
|
216
|
+
* Write to root is not allowed
|
|
217
|
+
*/
|
|
218
|
+
writeRootHandler(): Promise<never>;
|
|
219
|
+
/**
|
|
220
|
+
* Write to branch root is not allowed
|
|
221
|
+
*/
|
|
222
|
+
writeBranchRootHandler(): Promise<never>;
|
|
223
|
+
/**
|
|
224
|
+
* Write file in branch
|
|
225
|
+
*/
|
|
226
|
+
writeHandler(ctx: RouteContext<{
|
|
227
|
+
branch: string;
|
|
228
|
+
path: string;
|
|
229
|
+
}>, payload: AFSWriteEntryPayload): Promise<{
|
|
230
|
+
data: AFSEntry;
|
|
231
|
+
}>;
|
|
232
|
+
/**
|
|
233
|
+
* Delete root is not allowed
|
|
234
|
+
*/
|
|
235
|
+
deleteRootHandler(): Promise<never>;
|
|
236
|
+
/**
|
|
237
|
+
* Delete branch root is not allowed
|
|
238
|
+
*/
|
|
239
|
+
deleteBranchRootHandler(ctx: RouteContext<{
|
|
240
|
+
branch: string;
|
|
241
|
+
}>): Promise<never>;
|
|
255
242
|
/**
|
|
256
|
-
|
|
257
|
-
|
|
243
|
+
* Delete file in branch
|
|
244
|
+
*/
|
|
245
|
+
deleteHandler(ctx: RouteContext<{
|
|
246
|
+
branch: string;
|
|
247
|
+
path: string;
|
|
248
|
+
}>): Promise<{
|
|
249
|
+
message: string;
|
|
250
|
+
}>;
|
|
251
|
+
/**
|
|
252
|
+
* Rename file in branch
|
|
253
|
+
*/
|
|
254
|
+
renameHandler(ctx: RouteContext<{
|
|
255
|
+
branch: string;
|
|
256
|
+
path: string;
|
|
257
|
+
}>, newPath: string): Promise<{
|
|
258
|
+
message: string;
|
|
259
|
+
}>;
|
|
260
|
+
/**
|
|
261
|
+
* Search files in branch root
|
|
262
|
+
*/
|
|
263
|
+
searchBranchRootHandler(ctx: RouteContext<{
|
|
264
|
+
branch: string;
|
|
265
|
+
}>, query: string, options?: AFSSearchOptions): Promise<{
|
|
266
|
+
data: AFSEntry[];
|
|
267
|
+
message?: string;
|
|
268
|
+
}>;
|
|
269
|
+
/**
|
|
270
|
+
* Search files in branch path
|
|
271
|
+
*/
|
|
272
|
+
searchHandler(ctx: RouteContext<{
|
|
273
|
+
branch: string;
|
|
274
|
+
path: string;
|
|
275
|
+
}>, query: string, options?: AFSSearchOptions): Promise<{
|
|
276
|
+
data: AFSEntry[];
|
|
277
|
+
message?: string;
|
|
278
|
+
}>;
|
|
279
|
+
/**
|
|
280
|
+
* Internal search implementation
|
|
281
|
+
*/
|
|
282
|
+
private searchInBranch;
|
|
283
|
+
/**
|
|
284
|
+
* Stat root
|
|
285
|
+
*/
|
|
286
|
+
statRootHandler(_ctx: RouteContext): Promise<AFSStatResult>;
|
|
287
|
+
/**
|
|
288
|
+
* Stat branch root
|
|
289
|
+
*/
|
|
290
|
+
statBranchRootHandler(ctx: RouteContext<{
|
|
291
|
+
branch: string;
|
|
292
|
+
}>): Promise<AFSStatResult>;
|
|
293
|
+
/**
|
|
294
|
+
* Stat file or directory in branch
|
|
295
|
+
*/
|
|
296
|
+
statHandler(ctx: RouteContext<{
|
|
297
|
+
branch: string;
|
|
298
|
+
path: string;
|
|
299
|
+
}>): Promise<AFSStatResult>;
|
|
300
|
+
/**
|
|
301
|
+
* Explain root → repo info, branch list, default branch
|
|
302
|
+
*/
|
|
303
|
+
explainRootHandler(_ctx: RouteContext): Promise<AFSExplainResult>;
|
|
304
|
+
/**
|
|
305
|
+
* Explain branch → branch name, HEAD commit, file count
|
|
306
|
+
*/
|
|
307
|
+
explainBranchHandler(ctx: RouteContext<{
|
|
308
|
+
branch: string;
|
|
309
|
+
}>): Promise<AFSExplainResult>;
|
|
310
|
+
/**
|
|
311
|
+
* Explain file or directory → path, size, last modified commit
|
|
312
|
+
*/
|
|
313
|
+
explainPathHandler(ctx: RouteContext<{
|
|
314
|
+
branch: string;
|
|
315
|
+
path: string;
|
|
316
|
+
}>): Promise<AFSExplainResult>;
|
|
317
|
+
readCapabilitiesHandler(_ctx: RouteContext): Promise<AFSEntry | undefined>;
|
|
318
|
+
/**
|
|
319
|
+
* List available actions for a branch
|
|
320
|
+
*/
|
|
321
|
+
listBranchActions(ctx: RouteContext<{
|
|
322
|
+
branch: string;
|
|
323
|
+
}>): Promise<AFSListResult>;
|
|
324
|
+
/**
|
|
325
|
+
* diff action — compare two branches or refs
|
|
326
|
+
*/
|
|
327
|
+
diffAction(_ctx: RouteContext<{
|
|
328
|
+
branch: string;
|
|
329
|
+
}>, args: Record<string, unknown>): Promise<AFSExecResult>;
|
|
330
|
+
/**
|
|
331
|
+
* create-branch action — create a new branch
|
|
332
|
+
*/
|
|
333
|
+
createBranchAction(_ctx: RouteContext<{
|
|
334
|
+
branch: string;
|
|
335
|
+
}>, args: Record<string, unknown>): Promise<AFSExecResult>;
|
|
336
|
+
/**
|
|
337
|
+
* commit action — commit staged changes
|
|
338
|
+
*/
|
|
339
|
+
commitAction(_ctx: RouteContext<{
|
|
340
|
+
branch: string;
|
|
341
|
+
}>, args: Record<string, unknown>): Promise<AFSExecResult>;
|
|
342
|
+
/**
|
|
343
|
+
* merge action — merge a branch into current branch
|
|
344
|
+
*/
|
|
345
|
+
mergeAction(_ctx: RouteContext<{
|
|
346
|
+
branch: string;
|
|
347
|
+
}>, args: Record<string, unknown>): Promise<AFSExecResult>;
|
|
348
|
+
/**
|
|
349
|
+
* List .log/ → commit list with pagination
|
|
350
|
+
*/
|
|
351
|
+
listLogHandler(ctx: RouteContext<{
|
|
352
|
+
branch: string;
|
|
353
|
+
}>): Promise<AFSListResult>;
|
|
354
|
+
/**
|
|
355
|
+
* Read .log/{index} → commit diff/patch content
|
|
356
|
+
*/
|
|
357
|
+
readLogEntryHandler(ctx: RouteContext<{
|
|
358
|
+
branch: string;
|
|
359
|
+
index: string;
|
|
360
|
+
}>): Promise<AFSEntry | undefined>;
|
|
361
|
+
/**
|
|
362
|
+
* Read .log/{index}/.meta → commit metadata only (no diff)
|
|
363
|
+
*/
|
|
364
|
+
readLogEntryMetaHandler(ctx: RouteContext<{
|
|
365
|
+
branch: string;
|
|
366
|
+
index: string;
|
|
367
|
+
}>): Promise<AFSEntry | undefined>;
|
|
368
|
+
/**
|
|
369
|
+
* Decode branch name (replace ~ with /)
|
|
370
|
+
*/
|
|
371
|
+
private decodeBranchName;
|
|
372
|
+
/**
|
|
373
|
+
* Encode branch name (replace / with ~)
|
|
374
|
+
*/
|
|
375
|
+
private encodeBranchName;
|
|
376
|
+
/**
|
|
377
|
+
* Parse AFS path into branch and file path
|
|
378
|
+
* Branch names may contain slashes and are encoded with ~ in paths
|
|
379
|
+
*/
|
|
380
|
+
private parsePath;
|
|
381
|
+
/**
|
|
382
|
+
* Build AFS path with encoded branch name
|
|
383
|
+
* Branch names with slashes are encoded by replacing / with ~
|
|
384
|
+
*/
|
|
385
|
+
private buildBranchPath;
|
|
386
|
+
/**
|
|
387
|
+
* Get list of available branches
|
|
388
|
+
*/
|
|
258
389
|
private getBranches;
|
|
259
390
|
/**
|
|
260
|
-
|
|
261
|
-
|
|
391
|
+
* Check if a branch exists, throw AFSNotFoundError if not
|
|
392
|
+
*/
|
|
393
|
+
private ensureBranchExists;
|
|
394
|
+
/**
|
|
395
|
+
* Get the number of children for a tree (directory) in git
|
|
396
|
+
*/
|
|
397
|
+
private getChildrenCount;
|
|
398
|
+
/**
|
|
399
|
+
* Get the last commit on a branch
|
|
400
|
+
*/
|
|
401
|
+
private getLastCommit;
|
|
402
|
+
/**
|
|
403
|
+
* Count total files in a tree (recursively)
|
|
404
|
+
*/
|
|
405
|
+
private getTreeFileCount;
|
|
406
|
+
/**
|
|
407
|
+
* Get a list of commits on a branch with limit/offset
|
|
408
|
+
*/
|
|
409
|
+
private getCommitList;
|
|
410
|
+
/**
|
|
411
|
+
* Ensure worktree exists for a branch (lazy creation)
|
|
412
|
+
*/
|
|
262
413
|
private ensureWorktree;
|
|
263
414
|
/**
|
|
264
|
-
|
|
265
|
-
|
|
415
|
+
* List files using git ls-tree (no worktree needed)
|
|
416
|
+
* Note: list() returns only children, never the path itself (per new semantics)
|
|
417
|
+
*/
|
|
266
418
|
private listWithGitLsTree;
|
|
267
419
|
/**
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
read(path: string, _options?: AFSReadOptions): Promise<AFSReadResult>;
|
|
276
|
-
write(path: string, entry: AFSWriteEntryPayload, options?: AFSWriteOptions): Promise<AFSWriteResult>;
|
|
277
|
-
delete(path: string, options?: AFSDeleteOptions): Promise<AFSDeleteResult>;
|
|
278
|
-
rename(oldPath: string, newPath: string, options?: AFSRenameOptions): Promise<{
|
|
279
|
-
message?: string;
|
|
280
|
-
}>;
|
|
281
|
-
search(path: string, query: string, options?: AFSSearchOptions): Promise<AFSSearchResult>;
|
|
420
|
+
* Detect MIME type based on file extension
|
|
421
|
+
*/
|
|
422
|
+
private getMimeType;
|
|
423
|
+
/**
|
|
424
|
+
* Check if file is likely binary based on extension
|
|
425
|
+
*/
|
|
426
|
+
private isBinaryFile;
|
|
282
427
|
/**
|
|
283
|
-
|
|
284
|
-
|
|
428
|
+
* Fetch latest changes from remote
|
|
429
|
+
*/
|
|
285
430
|
fetch(): Promise<void>;
|
|
286
431
|
/**
|
|
287
|
-
|
|
288
|
-
|
|
432
|
+
* Pull latest changes from remote for current branch
|
|
433
|
+
*/
|
|
289
434
|
pull(): Promise<void>;
|
|
290
435
|
/**
|
|
291
|
-
|
|
292
|
-
|
|
436
|
+
* Push local changes to remote
|
|
437
|
+
*/
|
|
293
438
|
push(branch?: string): Promise<void>;
|
|
294
439
|
/**
|
|
295
|
-
|
|
296
|
-
|
|
440
|
+
* Cleanup all worktrees (useful when unmounting)
|
|
441
|
+
*/
|
|
297
442
|
cleanup(): Promise<void>;
|
|
298
443
|
}
|
|
299
444
|
//#endregion
|
|
300
|
-
export { AFSGit, AFSGitOptions };
|
|
445
|
+
export { AFSGit, AFSGit as default, AFSGitOptions };
|
|
301
446
|
//# sourceMappingURL=index.d.cts.map
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/index.ts"],"mappings":"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"}
|