@trebired/git-host 1.3.0 → 1.4.0
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/CHANGELOG.md +8 -0
- package/README.md +12 -6
- package/dist/api/forge/handler.d.ts +6 -0
- package/dist/api/forge/handler.d.ts.map +1 -0
- package/dist/api/forge/handler.js +260 -0
- package/dist/api/forge/handler.js.map +1 -0
- package/dist/api/forge/route.d.ts +34 -0
- package/dist/api/forge/route.d.ts.map +1 -0
- package/dist/api/forge/route.js +94 -0
- package/dist/api/forge/route.js.map +1 -0
- package/dist/api/handler/response.d.ts +6 -2
- package/dist/api/handler/response.d.ts.map +1 -1
- package/dist/api/handler/response.js +5 -0
- package/dist/api/handler/response.js.map +1 -1
- package/dist/browser/index.d.ts +44 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +767 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/styles.css +242 -0
- package/dist/core/create_git_forge.d.ts +4 -0
- package/dist/core/create_git_forge.d.ts.map +1 -0
- package/dist/core/create_git_forge.js +481 -0
- package/dist/core/create_git_forge.js.map +1 -0
- package/dist/core/git_forge/storage_memory.d.ts +4 -0
- package/dist/core/git_forge/storage_memory.d.ts.map +1 -0
- package/dist/core/git_forge/storage_memory.js +140 -0
- package/dist/core/git_forge/storage_memory.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/react/client/types.d.ts +45 -1
- package/dist/react/client/types.d.ts.map +1 -1
- package/dist/react/client.d.ts.map +1 -1
- package/dist/react/client.js +135 -2
- package/dist/react/client.js.map +1 -1
- package/dist/react/hooks/query.d.ts +6 -2
- package/dist/react/hooks/query.d.ts.map +1 -1
- package/dist/react/hooks/query.js +41 -1
- package/dist/react/hooks/query.js.map +1 -1
- package/dist/react/hooks/resources.d.ts +50 -3
- package/dist/react/hooks/resources.d.ts.map +1 -1
- package/dist/react/hooks/resources.js +209 -2
- package/dist/react/hooks/resources.js.map +1 -1
- package/dist/react/hooks/types.d.ts +15 -2
- package/dist/react/hooks/types.d.ts.map +1 -1
- package/dist/react/hooks.d.ts +3 -3
- package/dist/react/hooks.d.ts.map +1 -1
- package/dist/react/hooks.js +2 -2
- package/dist/react/hooks.js.map +1 -1
- package/dist/react/index.d.ts +2 -2
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +1 -1
- package/dist/react/index.js.map +1 -1
- package/dist/types/forge.d.ts +220 -0
- package/dist/types/forge.d.ts.map +1 -0
- package/dist/types/forge.js +2 -0
- package/dist/types/forge.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/transports.d.ts +1 -1
- package/dist/types/transports.d.ts.map +1 -1
- package/package.json +11 -4
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,14 @@ All notable changes to `@trebired/git-host` will be documented here.
|
|
|
4
4
|
|
|
5
5
|
This project follows semantic versioning once published.
|
|
6
6
|
|
|
7
|
+
## 1.4.0
|
|
8
|
+
|
|
9
|
+
- Added a new forge layer through `createGitForge()` with host-owned storage adapters for releases, forks, stars, watching, and repository activity timelines.
|
|
10
|
+
- Added `createGitForgeApiHandler()` plus new repository routes for overview, social state, releases, forks, fork sync, and activity while keeping the existing read-only JSON API stable.
|
|
11
|
+
- Extended the typed React client and hooks with forge reads and mutations, including optimistic star and watch helpers.
|
|
12
|
+
- Added `@trebired/git-host/browser` with reusable SSR-safe repository pages and bundled browser styles for overview, code, commits, releases, forks, and activity views.
|
|
13
|
+
- Added an in-memory forge storage adapter for tests, prototypes, and local embedding.
|
|
14
|
+
|
|
7
15
|
## 1.3.0
|
|
8
16
|
|
|
9
17
|
- Added a first-class repository inspection layer with `resolveInspectionTarget()`, `readTree()`, `readDirectory()`, `readFile()`, and `readRepositoryAnalysis()`.
|
package/README.md
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
# @trebired/git-host
|
|
2
2
|
|
|
3
|
-
Embeddable Git
|
|
3
|
+
Embeddable Git forge for Node.js and Bun apps with real Git CLI execution, smart HTTP and SSH transports, repository inspection APIs, forge features such as releases and forks, and optional React/browser companions.
|
|
4
4
|
|
|
5
|
-
`@trebired/git-host` gives your app real Git repository operations and real Git transports without
|
|
5
|
+
`@trebired/git-host` gives your app real Git repository operations, forge-style repository metadata, and real Git transports without forcing you into a monolithic hosted product. It runs the real Git CLI, helps you resolve repository paths safely, serializes mutations per repository, and exposes reusable APIs for repository initialization, summary reads, content inspection, branch operations, working-tree changes, releases, forks, stars, watching, activity feeds, JSON API handlers, browser-ready pages, and smart HTTP and SSH hosting.
|
|
6
6
|
|
|
7
7
|
It is aimed at platforms and products that already own users, permissions, tokens, repository records, and UI, but want to stop hand-rolling the Git layer underneath all of that.
|
|
8
8
|
|
|
9
|
-
The package keeps auth, permission, and persistence decisions host-owned while giving you reusable Git behavior and
|
|
9
|
+
The package keeps auth, permission, and persistence decisions host-owned while giving you reusable Git behavior, forge adapters, and browser integration.
|
|
10
10
|
|
|
11
|
-
It also exposes an optional React companion at `@trebired/git-host/react` for typed API clients, providers, and headless data hooks
|
|
11
|
+
It also exposes an optional React companion at `@trebired/git-host/react` for typed API clients, providers, and headless data hooks, plus an optional browser UI entry at `@trebired/git-host/browser` for full repository pages.
|
|
12
12
|
|
|
13
13
|
In plain terms:
|
|
14
14
|
|
|
15
|
-
- it is a Git hosting layer you embed into your app
|
|
16
|
-
- it is not a full
|
|
15
|
+
- it is a Git hosting and lightweight forge layer you embed into your app
|
|
16
|
+
- it is not a full hosted SaaS product with built-in accounts, billing, or platform ownership
|
|
17
17
|
- it is not a reimplementation of Git
|
|
18
18
|
- it uses the real `git` binary for the hard parts
|
|
19
19
|
|
|
@@ -35,6 +35,12 @@ Optional React companion:
|
|
|
35
35
|
npm install react
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
+
Optional browser pages:
|
|
39
|
+
|
|
40
|
+
```sh
|
|
41
|
+
npm install react
|
|
42
|
+
```
|
|
43
|
+
|
|
38
44
|
```ts
|
|
39
45
|
import { createGitHost, resolveRepositoryPath } from "@trebired/git-host";
|
|
40
46
|
import { createLog } from "@trebired/logger";
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { IncomingMessage, ServerResponse } from "node:http";
|
|
2
|
+
import type { CreateGitForgeApiHandlerOptions } from "../../types.js";
|
|
3
|
+
import { parseGitForgeApiRoute } from "./route.js";
|
|
4
|
+
declare function createGitForgeApiHandler(options: CreateGitForgeApiHandlerOptions): (req: IncomingMessage, res: ServerResponse) => void;
|
|
5
|
+
export { createGitForgeApiHandler, parseGitForgeApiRoute };
|
|
6
|
+
//# sourceMappingURL=handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/api/forge/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAIjE,OAAO,KAAK,EAAE,+BAA+B,EAAoC,MAAM,gBAAgB,CAAC;AAUxG,OAAO,EAAE,qBAAqB,EAAyB,MAAM,YAAY,CAAC;AA0P1E,iBAAS,wBAAwB,CAAC,OAAO,EAAE,+BAA+B,IAarC,KAAK,eAAe,EAAE,KAAK,cAAc,UAK7E;AAED,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,CAAC"}
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
import { logPackageInitialized } from "@trebired/logger-adapter";
|
|
2
|
+
import { resolveLogger } from "../../logging.js";
|
|
3
|
+
import { text } from "../../utils/text.js";
|
|
4
|
+
import { runGitApiAction } from "../handler/action.js";
|
|
5
|
+
import { applyAuthorizationHeaders, authorizationAllowed, serializeError, statusForError, writeJson, } from "../handler/response.js";
|
|
6
|
+
import { parseGitForgeApiRoute } from "./route.js";
|
|
7
|
+
function routeOperation(route, method) {
|
|
8
|
+
if ("resource" in route && route.resource === "repository" && !("releaseId" in route) && !("forkId" in route))
|
|
9
|
+
return "read";
|
|
10
|
+
switch (route.action) {
|
|
11
|
+
case "stars":
|
|
12
|
+
return method === "DELETE" ? "delete" : "create";
|
|
13
|
+
case "watch":
|
|
14
|
+
return "subscribe";
|
|
15
|
+
case "releases":
|
|
16
|
+
return method === "POST" ? "create" : "read";
|
|
17
|
+
case "release":
|
|
18
|
+
if (method === "PATCH")
|
|
19
|
+
return "update";
|
|
20
|
+
if (method === "DELETE")
|
|
21
|
+
return "delete";
|
|
22
|
+
return "read";
|
|
23
|
+
case "forks":
|
|
24
|
+
return method === "POST" ? "create" : "read";
|
|
25
|
+
case "fork_sync":
|
|
26
|
+
return "sync";
|
|
27
|
+
default:
|
|
28
|
+
return "read";
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function allowedMethodsForRoute(route) {
|
|
32
|
+
switch (route.action) {
|
|
33
|
+
case "stars":
|
|
34
|
+
case "watch":
|
|
35
|
+
return ["DELETE", "POST"];
|
|
36
|
+
case "releases":
|
|
37
|
+
case "forks":
|
|
38
|
+
return ["GET", "HEAD", "POST"];
|
|
39
|
+
case "release":
|
|
40
|
+
return ["DELETE", "GET", "HEAD", "PATCH"];
|
|
41
|
+
case "fork_sync":
|
|
42
|
+
return ["POST"];
|
|
43
|
+
default:
|
|
44
|
+
return ["GET", "HEAD"];
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
async function readJsonBody(req) {
|
|
48
|
+
const chunks = [];
|
|
49
|
+
for await (const chunk of req) {
|
|
50
|
+
chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(String(chunk)));
|
|
51
|
+
}
|
|
52
|
+
const raw = Buffer.concat(chunks).toString("utf8").trim();
|
|
53
|
+
if (!raw)
|
|
54
|
+
return {};
|
|
55
|
+
const parsed = JSON.parse(raw);
|
|
56
|
+
return parsed && typeof parsed === "object" ? parsed : {};
|
|
57
|
+
}
|
|
58
|
+
async function runForgeAction(options, route, repositoryId, actor, body) {
|
|
59
|
+
switch (route.action) {
|
|
60
|
+
case "overview":
|
|
61
|
+
return await options.forge.readOverview(repositoryId, { actorId: actor?.id });
|
|
62
|
+
case "social":
|
|
63
|
+
return await options.forge.readSocialState(repositoryId, { actorId: actor?.id });
|
|
64
|
+
case "stars":
|
|
65
|
+
return body && body._method === "DELETE"
|
|
66
|
+
? await options.forge.unstarRepository(repositoryId, { actor: actor })
|
|
67
|
+
: await options.forge.starRepository(repositoryId, { actor: actor });
|
|
68
|
+
case "watch":
|
|
69
|
+
return body && body._method === "DELETE"
|
|
70
|
+
? await options.forge.unwatchRepository(repositoryId, { actor: actor })
|
|
71
|
+
: await options.forge.watchRepository(repositoryId, { actor: actor });
|
|
72
|
+
case "releases":
|
|
73
|
+
if (body && body._method === "POST") {
|
|
74
|
+
return await options.forge.createRelease(repositoryId, {
|
|
75
|
+
actor: actor,
|
|
76
|
+
assets: Array.isArray(body.assets) ? body.assets : undefined,
|
|
77
|
+
createTag: body.createTag && typeof body.createTag === "object" ? {
|
|
78
|
+
annotatedMessage: text(body.createTag.annotatedMessage),
|
|
79
|
+
name: text(body.createTag.name),
|
|
80
|
+
targetRef: text(body.createTag.targetRef),
|
|
81
|
+
} : undefined,
|
|
82
|
+
draft: body.draft === true,
|
|
83
|
+
existingTagName: text(body.existingTagName),
|
|
84
|
+
notes: text(body.notes),
|
|
85
|
+
prerelease: body.prerelease === true,
|
|
86
|
+
publishedAt: body.publishedAt === null ? null : text(body.publishedAt),
|
|
87
|
+
title: text(body.title),
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
return await options.forge.listReleases(repositoryId);
|
|
91
|
+
case "release":
|
|
92
|
+
if (body && body._method === "PATCH") {
|
|
93
|
+
return await options.forge.updateRelease(repositoryId, route.releaseId, {
|
|
94
|
+
actor: actor,
|
|
95
|
+
assets: Array.isArray(body.assets) ? body.assets : undefined,
|
|
96
|
+
draft: body.draft === true,
|
|
97
|
+
notes: text(body.notes),
|
|
98
|
+
prerelease: body.prerelease === true,
|
|
99
|
+
publishedAt: body.publishedAt === null ? null : (body.publishedAt === undefined ? undefined : text(body.publishedAt)),
|
|
100
|
+
title: body.title === undefined ? undefined : text(body.title),
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
if (body && body._method === "DELETE") {
|
|
104
|
+
await options.forge.deleteRelease(repositoryId, route.releaseId, {
|
|
105
|
+
actor: actor,
|
|
106
|
+
deleteTag: body.deleteTag === true,
|
|
107
|
+
});
|
|
108
|
+
return {
|
|
109
|
+
deleted: true,
|
|
110
|
+
release_id: route.releaseId,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
return await options.forge.readRelease(repositoryId, route.releaseId);
|
|
114
|
+
case "forks":
|
|
115
|
+
if (body && body._method === "POST") {
|
|
116
|
+
return await options.forge.createFork(repositoryId, {
|
|
117
|
+
actor: actor,
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
return await options.forge.listForks(repositoryId);
|
|
121
|
+
case "fork_sync":
|
|
122
|
+
return await options.forge.syncFork(route.forkId, {
|
|
123
|
+
actor: actor,
|
|
124
|
+
strategy: text(body.strategy) === "merge" ? "merge" : undefined,
|
|
125
|
+
});
|
|
126
|
+
case "activity":
|
|
127
|
+
return await options.forge.listActivity(repositoryId);
|
|
128
|
+
default:
|
|
129
|
+
return await runGitApiAction({
|
|
130
|
+
gitHost: options.gitHost,
|
|
131
|
+
}, route, repositoryId, new URLSearchParams());
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
async function handleGitForgeApiRequest(req, res, options) {
|
|
135
|
+
const logger = resolveLogger(options.logger, options.loggerAdapter);
|
|
136
|
+
const verbose = options.verbose === true;
|
|
137
|
+
const logGroup = "git-host.forge.api";
|
|
138
|
+
const method = text(req.method).toUpperCase() || "GET";
|
|
139
|
+
const url = new URL(String(req.url || "/"), "http://127.0.0.1");
|
|
140
|
+
const route = parseGitForgeApiRoute(url.pathname, options.basePath);
|
|
141
|
+
if (!route) {
|
|
142
|
+
writeJson(req, res, 404, {
|
|
143
|
+
ok: false,
|
|
144
|
+
error: {
|
|
145
|
+
code: "route_not_found",
|
|
146
|
+
message: "Git forge API route not found.",
|
|
147
|
+
},
|
|
148
|
+
});
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
const allowedMethods = allowedMethodsForRoute(route);
|
|
152
|
+
if (!allowedMethods.includes(method)) {
|
|
153
|
+
res.setHeader("allow", allowedMethods.join(", "));
|
|
154
|
+
writeJson(req, res, 405, {
|
|
155
|
+
ok: false,
|
|
156
|
+
error: {
|
|
157
|
+
code: "method_not_allowed",
|
|
158
|
+
message: `Supported methods: ${allowedMethods.join(", ")}.`,
|
|
159
|
+
},
|
|
160
|
+
});
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
const repositoryKey = route.repositoryKey;
|
|
164
|
+
const repositoryId = text(options.resolveRepositoryId ? await options.resolveRepositoryId(repositoryKey, req) : repositoryKey);
|
|
165
|
+
if (!repositoryId) {
|
|
166
|
+
writeJson(req, res, 404, {
|
|
167
|
+
ok: false,
|
|
168
|
+
error: {
|
|
169
|
+
code: "repository_not_found",
|
|
170
|
+
message: "Repository not found.",
|
|
171
|
+
},
|
|
172
|
+
});
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
const actor = options.resolveActor ? await options.resolveActor(req) : null;
|
|
176
|
+
const auth = authorizationAllowed(options.authorize
|
|
177
|
+
? await options.authorize({
|
|
178
|
+
action: route.action,
|
|
179
|
+
actor,
|
|
180
|
+
method,
|
|
181
|
+
operation: routeOperation(route, method),
|
|
182
|
+
pathname: url.pathname,
|
|
183
|
+
releaseId: "releaseId" in route ? route.releaseId : undefined,
|
|
184
|
+
remoteAddress: text(req.socket && req.socket.remoteAddress),
|
|
185
|
+
repositoryId,
|
|
186
|
+
repositoryKey,
|
|
187
|
+
request: req,
|
|
188
|
+
resource: route.resource,
|
|
189
|
+
searchParams: url.searchParams,
|
|
190
|
+
})
|
|
191
|
+
: undefined);
|
|
192
|
+
applyAuthorizationHeaders(res, auth.headers);
|
|
193
|
+
if (!auth.allowed) {
|
|
194
|
+
writeJson(req, res, auth.status || 403, {
|
|
195
|
+
ok: false,
|
|
196
|
+
error: {
|
|
197
|
+
code: "permission_denied",
|
|
198
|
+
message: auth.message || "Permission denied.",
|
|
199
|
+
},
|
|
200
|
+
});
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
const body = method === "POST" || method === "PATCH" || method === "DELETE"
|
|
204
|
+
? await readJsonBody(req)
|
|
205
|
+
: {};
|
|
206
|
+
if (method === "POST" || method === "PATCH" || method === "DELETE") {
|
|
207
|
+
body._method = method;
|
|
208
|
+
}
|
|
209
|
+
try {
|
|
210
|
+
const data = route.resource === "repository" && route.action !== "overview" && route.action !== "social" && route.action !== "activity"
|
|
211
|
+
? await runGitApiAction({
|
|
212
|
+
gitHost: options.gitHost,
|
|
213
|
+
}, route, repositoryId, url.searchParams)
|
|
214
|
+
: await runForgeAction(options, route, repositoryId, actor, body);
|
|
215
|
+
if (verbose) {
|
|
216
|
+
logger.info(logGroup, "forge api action completed", {
|
|
217
|
+
action: route.action,
|
|
218
|
+
method,
|
|
219
|
+
pathname: url.pathname,
|
|
220
|
+
repositoryId,
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
writeJson(req, res, 200, {
|
|
224
|
+
action: route.action,
|
|
225
|
+
data,
|
|
226
|
+
ok: true,
|
|
227
|
+
repository_id: repositoryId,
|
|
228
|
+
repository_key: repositoryKey,
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
catch (error) {
|
|
232
|
+
logger.error(logGroup, "forge api action failed", {
|
|
233
|
+
action: route.action,
|
|
234
|
+
error: error instanceof Error ? error.message : String(error),
|
|
235
|
+
method,
|
|
236
|
+
pathname: url.pathname,
|
|
237
|
+
repositoryId,
|
|
238
|
+
});
|
|
239
|
+
writeJson(req, res, statusForError(error), serializeError(error));
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
function createGitForgeApiHandler(options) {
|
|
243
|
+
if (!options || typeof options.forge !== "object") {
|
|
244
|
+
throw new TypeError("createGitForgeApiHandler() requires a forge instance.");
|
|
245
|
+
}
|
|
246
|
+
logPackageInitialized({
|
|
247
|
+
adapter: options.loggerAdapter,
|
|
248
|
+
fallback: "console",
|
|
249
|
+
group: "git-host.forge.api",
|
|
250
|
+
logger: options.logger,
|
|
251
|
+
source: "@trebired/git-host",
|
|
252
|
+
});
|
|
253
|
+
return function gitForgeApiHandler(req, res) {
|
|
254
|
+
void handleGitForgeApiRequest(req, res, options).catch((error) => {
|
|
255
|
+
writeJson(req, res, 500, serializeError(error));
|
|
256
|
+
});
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
export { createGitForgeApiHandler, parseGitForgeApiRoute };
|
|
260
|
+
//# sourceMappingURL=handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/api/forge/handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,SAAS,GACV,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAyB,MAAM,YAAY,CAAC;AAE1E,SAAS,cAAc,CAAC,KAAuB,EAAE,MAAc;IAC7D,IAAI,UAAU,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,YAAY,IAAI,CAAC,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAC7H,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;QACrB,KAAK,OAAO;YACV,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QACnD,KAAK,OAAO;YACV,OAAO,WAAW,CAAC;QACrB,KAAK,UAAU;YACb,OAAO,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QAC/C,KAAK,SAAS;YACZ,IAAI,MAAM,KAAK,OAAO;gBAAE,OAAO,QAAQ,CAAC;YACxC,IAAI,MAAM,KAAK,QAAQ;gBAAE,OAAO,QAAQ,CAAC;YACzC,OAAO,MAAM,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QAC/C,KAAK,WAAW;YACd,OAAO,MAAM,CAAC;QAChB;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAuB;IACrD,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;QACrB,KAAK,OAAO,CAAC;QACb,KAAK,OAAO;YACV,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC5B,KAAK,UAAU,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,KAAK,SAAS;YACZ,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5C,KAAK,WAAW;YACd,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB;YACE,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAoB;IAC9C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1D,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;IAC1D,OAAO,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,OAAwC,EACxC,KAAuB,EACvB,YAAoB,EACpB,KAA2B,EAC3B,IAA6B;IAE7B,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;QACrB,KAAK,UAAU;YACb,OAAO,MAAM,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAChF,KAAK,QAAQ;YACX,OAAO,MAAM,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACnF,KAAK,OAAO;YACV,OAAO,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ;gBACtC,CAAC,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,KAAsB,EAAE,CAAC;gBACvF,CAAC,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,KAAsB,EAAE,CAAC,CAAC;QAC1F,KAAK,OAAO;YACV,OAAO,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ;gBACtC,CAAC,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,KAAsB,EAAE,CAAC;gBACxF,CAAC,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,KAAsB,EAAE,CAAC,CAAC;QAC3F,KAAK,UAAU;YACb,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;gBACpC,OAAO,MAAM,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,EAAE;oBACrD,KAAK,EAAE,KAAsB;oBAC7B,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAe,CAAC,CAAC,CAAC,SAAS;oBACrE,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC;wBAChE,gBAAgB,EAAE,IAAI,CAAE,IAAI,CAAC,SAAqC,CAAC,gBAAgB,CAAC;wBACpF,IAAI,EAAE,IAAI,CAAE,IAAI,CAAC,SAAqC,CAAC,IAAI,CAAC;wBAC5D,SAAS,EAAE,IAAI,CAAE,IAAI,CAAC,SAAqC,CAAC,SAAS,CAAC;qBACvE,CAAC,CAAC,CAAC,SAAS;oBACb,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,IAAI;oBAC1B,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;oBAC3C,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;oBACvB,UAAU,EAAE,IAAI,CAAC,UAAU,KAAK,IAAI;oBACpC,WAAW,EAAE,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;oBACtE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;iBACxB,CAAC,CAAC;YACL,CAAC;YACD,OAAO,MAAM,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QACxD,KAAK,SAAS;YACZ,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;gBACrC,OAAO,MAAM,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,EAAE;oBACtE,KAAK,EAAE,KAAsB;oBAC7B,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAe,CAAC,CAAC,CAAC,SAAS;oBACrE,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,IAAI;oBAC1B,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;oBACvB,UAAU,EAAE,IAAI,CAAC,UAAU,KAAK,IAAI;oBACpC,WAAW,EAAE,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBACrH,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;iBAC/D,CAAC,CAAC;YACL,CAAC;YACD,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACtC,MAAM,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,EAAE;oBAC/D,KAAK,EAAE,KAAsB;oBAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,KAAK,IAAI;iBACnC,CAAC,CAAC;gBACH,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,UAAU,EAAE,KAAK,CAAC,SAAS;iBAC5B,CAAC;YACJ,CAAC;YACD,OAAO,MAAM,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACxE,KAAK,OAAO;YACV,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;gBACpC,OAAO,MAAM,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,EAAE;oBAClD,KAAK,EAAE,KAAsB;iBAC9B,CAAC,CAAC;YACL,CAAC;YACD,OAAO,MAAM,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACrD,KAAK,WAAW;YACd,OAAO,MAAM,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE;gBAChD,KAAK,EAAE,KAAsB;gBAC7B,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;aAChE,CAAC,CAAC;QACL,KAAK,UAAU;YACb,OAAO,MAAM,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QACxD;YACE,OAAO,MAAM,eAAe,CAAC;gBAC3B,OAAO,EAAE,OAAO,CAAC,OAAO;aAClB,EAAE,KAAY,EAAE,YAAY,EAAE,IAAI,eAAe,EAAE,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,GAAoB,EAAE,GAAmB,EAAE,OAAwC;IACzH,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC;IACzC,MAAM,QAAQ,GAAG,oBAAoB,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC;IAEvD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,kBAAkB,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;YACvB,EAAE,EAAE,KAAK;YACT,KAAK,EAAE;gBACL,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,gCAAgC;aAC1C;SACF,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,MAAM,cAAc,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACrD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACrC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAClD,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;YACvB,EAAE,EAAE,KAAK;YACT,KAAK,EAAE;gBACL,IAAI,EAAE,oBAAoB;gBAC1B,OAAO,EAAE,sBAAsB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;aAC5D;SACF,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;IAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,mBAAmB,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IAC/H,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;YACvB,EAAE,EAAE,KAAK;YACT,KAAK,EAAE;gBACL,IAAI,EAAE,sBAAsB;gBAC5B,OAAO,EAAE,uBAAuB;aACjC;SACF,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5E,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,SAAS;QACjD,CAAC,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC;YACxB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,KAAK;YACL,MAAM;YACN,SAAS,EAAE,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC;YACxC,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,SAAS,EAAE,WAAW,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YAC7D,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC;YAC3D,YAAY;YACZ,aAAa;YACb,OAAO,EAAE,GAAG;YACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,YAAY,EAAE,GAAG,CAAC,YAAY;SAC/B,CAAC;QACF,CAAC,CAAC,SAAS,CAAC,CAAC;IAEf,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAClB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE;YACtC,EAAE,EAAE,KAAK;YACT,KAAK,EAAE;gBACL,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,oBAAoB;aAC9C;SACF,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,QAAQ;QACzE,CAAC,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC;QACzB,CAAC,CAAC,EAAE,CAAC;IACP,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACnE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,KAAK,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU;YACrI,CAAC,CAAC,MAAM,eAAe,CAAC;gBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;aAClB,EAAE,KAAY,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,CAAC;YACvD,CAAC,CAAC,MAAM,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACpE,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,4BAA4B,EAAE;gBAClD,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,MAAM;gBACN,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,YAAY;aACb,CAAC,CAAC;QACL,CAAC;QACD,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;YACvB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,IAAI;YACJ,EAAE,EAAE,IAAI;YACR,aAAa,EAAE,YAAY;YAC3B,cAAc,EAAE,aAAa;SAC9B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,yBAAyB,EAAE;YAChD,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAC7D,MAAM;YACN,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,YAAY;SACb,CAAC,CAAC;QACH,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,OAAwC;IACxE,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAClD,MAAM,IAAI,SAAS,CAAC,uDAAuD,CAAC,CAAC;IAC/E,CAAC;IAED,qBAAqB,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC,aAAa;QAC9B,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,oBAAoB;QAC3B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,oBAAoB;KAC7B,CAAC,CAAC;IAEH,OAAO,SAAS,kBAAkB,CAAC,GAAoB,EAAE,GAAmB;QAC1E,KAAK,wBAAwB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YAC/D,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { parseGitApiRoute } from "../handler.js";
|
|
2
|
+
type GitForgeApiRoute = {
|
|
3
|
+
action: "activity" | "overview" | "social";
|
|
4
|
+
repositoryKey: string;
|
|
5
|
+
resource: "activity" | "repository" | "social";
|
|
6
|
+
} | {
|
|
7
|
+
action: "fork_sync";
|
|
8
|
+
forkId: string;
|
|
9
|
+
repositoryKey: string;
|
|
10
|
+
resource: "fork";
|
|
11
|
+
} | {
|
|
12
|
+
action: "forks";
|
|
13
|
+
repositoryKey: string;
|
|
14
|
+
resource: "fork";
|
|
15
|
+
} | {
|
|
16
|
+
action: "release";
|
|
17
|
+
releaseId: string;
|
|
18
|
+
repositoryKey: string;
|
|
19
|
+
resource: "release";
|
|
20
|
+
} | {
|
|
21
|
+
action: "releases";
|
|
22
|
+
repositoryKey: string;
|
|
23
|
+
resource: "release";
|
|
24
|
+
} | {
|
|
25
|
+
action: "stars" | "watch";
|
|
26
|
+
repositoryKey: string;
|
|
27
|
+
resource: "social";
|
|
28
|
+
} | (ReturnType<typeof parseGitApiRoute> & {
|
|
29
|
+
resource: "repository";
|
|
30
|
+
});
|
|
31
|
+
declare function parseGitForgeApiRoute(pathnameInput: unknown, basePathInput: unknown): GitForgeApiRoute | null;
|
|
32
|
+
export { parseGitForgeApiRoute };
|
|
33
|
+
export type { GitForgeApiRoute };
|
|
34
|
+
//# sourceMappingURL=route.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/api/forge/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAiBjD,KAAK,gBAAgB,GACjB;IACE,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,UAAU,GAAG,YAAY,GAAG,QAAQ,CAAC;CAChD,GACD;IACE,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB,GACD;IACE,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB,GACD;IACE,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC;CACrB,GACD;IACE,MAAM,EAAE,UAAU,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC;CACrB,GACD;IACE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,QAAQ,CAAC;CACpB,GACD,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,GAAG;IACrC,QAAQ,EAAE,YAAY,CAAC;CACxB,CAAC,CAAC;AAEP,iBAAS,qBAAqB,CAAC,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,GAAG,gBAAgB,GAAG,IAAI,CA8EtG;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAC;AACjC,YAAY,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { parseGitApiRoute } from "../handler.js";
|
|
2
|
+
import { text } from "../../utils/text.js";
|
|
3
|
+
function normalizeBasePath(value) {
|
|
4
|
+
const next = text(value).replace(/\/+$/g, "");
|
|
5
|
+
if (!next || next === "/")
|
|
6
|
+
return "";
|
|
7
|
+
return next.startsWith("/") ? next : `/${next}`;
|
|
8
|
+
}
|
|
9
|
+
function decodeRouteSegment(value) {
|
|
10
|
+
try {
|
|
11
|
+
return decodeURIComponent(value);
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function parseGitForgeApiRoute(pathnameInput, basePathInput) {
|
|
18
|
+
const legacy = parseGitApiRoute(pathnameInput, basePathInput);
|
|
19
|
+
if (legacy) {
|
|
20
|
+
return {
|
|
21
|
+
...legacy,
|
|
22
|
+
resource: "repository",
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
const pathname = text(pathnameInput, "/");
|
|
26
|
+
const basePath = normalizeBasePath(basePathInput);
|
|
27
|
+
if (basePath && !pathname.startsWith(`${basePath}/`) && pathname !== basePath)
|
|
28
|
+
return null;
|
|
29
|
+
const remainder = basePath
|
|
30
|
+
? pathname.slice(basePath.length).replace(/^\/+/, "")
|
|
31
|
+
: pathname.replace(/^\/+/, "");
|
|
32
|
+
if (!remainder)
|
|
33
|
+
return null;
|
|
34
|
+
const segments = remainder.split("/").filter(Boolean);
|
|
35
|
+
if (segments[0] !== "repositories" || segments.length < 3)
|
|
36
|
+
return null;
|
|
37
|
+
const repositoryKey = decodeRouteSegment(segments[1] || "");
|
|
38
|
+
if (!repositoryKey)
|
|
39
|
+
return null;
|
|
40
|
+
const action = text(segments[2]);
|
|
41
|
+
if ((action === "overview" || action === "social" || action === "activity") && segments.length === 3) {
|
|
42
|
+
return {
|
|
43
|
+
action: action,
|
|
44
|
+
repositoryKey,
|
|
45
|
+
resource: action === "activity" ? "activity" : (action === "social" ? "social" : "repository"),
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
if ((action === "stars" || action === "watch" || action === "releases" || action === "forks") && segments.length === 3) {
|
|
49
|
+
if (action === "forks") {
|
|
50
|
+
return {
|
|
51
|
+
action: "forks",
|
|
52
|
+
repositoryKey,
|
|
53
|
+
resource: "fork",
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
if (action === "releases") {
|
|
57
|
+
return {
|
|
58
|
+
action: "releases",
|
|
59
|
+
repositoryKey,
|
|
60
|
+
resource: "release",
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
action: action,
|
|
65
|
+
repositoryKey,
|
|
66
|
+
resource: "social",
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
if (action === "releases" && segments.length === 4) {
|
|
70
|
+
const releaseId = decodeRouteSegment(segments[3] || "");
|
|
71
|
+
if (!releaseId)
|
|
72
|
+
return null;
|
|
73
|
+
return {
|
|
74
|
+
action: "release",
|
|
75
|
+
releaseId,
|
|
76
|
+
repositoryKey,
|
|
77
|
+
resource: "release",
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
if (action === "forks" && segments.length === 5 && segments[4] === "sync") {
|
|
81
|
+
const forkId = decodeRouteSegment(segments[3] || "");
|
|
82
|
+
if (!forkId)
|
|
83
|
+
return null;
|
|
84
|
+
return {
|
|
85
|
+
action: "fork_sync",
|
|
86
|
+
forkId,
|
|
87
|
+
repositoryKey,
|
|
88
|
+
resource: "fork",
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
export { parseGitForgeApiRoute };
|
|
94
|
+
//# sourceMappingURL=route.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../../src/api/forge/route.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import type { IncomingMessage, ServerResponse } from "node:http";
|
|
2
|
-
import type { GitApiAuthorizationResult } from "../../types.js";
|
|
3
2
|
declare function applyAuthorizationHeaders(res: ServerResponse, headers: Record<string, string> | undefined): void;
|
|
4
|
-
declare function authorizationAllowed(value:
|
|
3
|
+
declare function authorizationAllowed(value: boolean | {
|
|
4
|
+
allowed: boolean;
|
|
5
|
+
headers?: Record<string, string>;
|
|
6
|
+
message?: string;
|
|
7
|
+
status?: number;
|
|
8
|
+
} | undefined): {
|
|
5
9
|
allowed: boolean;
|
|
6
10
|
status: number;
|
|
7
11
|
message: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../src/api/handler/response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../src/api/handler/response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAKjE,iBAAS,yBAAyB,CAAC,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,QAMlG;AAED,iBAAS,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,SAAS;;;;;;;;;;EAUZ;AAED,iBAAS,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOhF;AAED,iBAAS,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAsB9C;AAED,iBAAS,cAAc,CAAC,KAAK,EAAE,OAAO;;;;;;;;;;;;;;EA6BrC;AAED,iBAAS,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,QAQ7F;AAED,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -36,10 +36,15 @@ function statusForError(error) {
|
|
|
36
36
|
case "invalid_repository_path":
|
|
37
37
|
return 400;
|
|
38
38
|
case "repository_not_found":
|
|
39
|
+
case "forge_resource_not_found":
|
|
39
40
|
return 404;
|
|
40
41
|
case "repository_not_initialized":
|
|
41
42
|
case "repository_clone_target_not_empty":
|
|
43
|
+
case "forge_sync_conflict":
|
|
42
44
|
return 409;
|
|
45
|
+
case "forge_invalid_actor":
|
|
46
|
+
case "forge_invalid_input":
|
|
47
|
+
return 400;
|
|
43
48
|
default:
|
|
44
49
|
return 400;
|
|
45
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/api/handler/response.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/api/handler/response.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import type { GitApiClient, GitApiClientHeaders } from "../react/client.js";
|
|
3
|
+
import type { GitForgeRepositoryOverview } from "../types.js";
|
|
4
|
+
type GitBrowserProviderProps = {
|
|
5
|
+
baseUrl?: string;
|
|
6
|
+
children?: ReactNode;
|
|
7
|
+
client?: GitApiClient;
|
|
8
|
+
headers?: GitApiClientHeaders;
|
|
9
|
+
};
|
|
10
|
+
type GitBrowserPageProps<TData = unknown> = {
|
|
11
|
+
baseUrl?: string;
|
|
12
|
+
className?: string;
|
|
13
|
+
client?: GitApiClient;
|
|
14
|
+
headers?: GitApiClientHeaders;
|
|
15
|
+
initialData?: TData | null;
|
|
16
|
+
navigate?: (to: string) => void;
|
|
17
|
+
repositoryKey: string;
|
|
18
|
+
};
|
|
19
|
+
type GitRepositoryCodePageProps = GitBrowserPageProps<GitForgeRepositoryOverview> & {
|
|
20
|
+
path?: string;
|
|
21
|
+
refName?: string;
|
|
22
|
+
};
|
|
23
|
+
type GitRepositoryCommitsPageProps = GitBrowserPageProps<GitForgeRepositoryOverview> & {
|
|
24
|
+
path?: string;
|
|
25
|
+
refName?: string;
|
|
26
|
+
};
|
|
27
|
+
type GitRepositoryCommitPageProps = GitBrowserPageProps<GitForgeRepositoryOverview> & {
|
|
28
|
+
commitRef: string;
|
|
29
|
+
};
|
|
30
|
+
type GitRepositoryReleasePageProps = GitBrowserPageProps<GitForgeRepositoryOverview> & {
|
|
31
|
+
releaseId: string;
|
|
32
|
+
};
|
|
33
|
+
declare function GitBrowserProvider(props: GitBrowserProviderProps): import("react").FunctionComponentElement<import("../react/hooks.js").GitApiClientProviderProps>;
|
|
34
|
+
declare function GitRepositoryOverviewPage(props: GitBrowserPageProps<GitForgeRepositoryOverview>): ReactNode;
|
|
35
|
+
declare function GitRepositoryCodePage(props: GitRepositoryCodePageProps): ReactNode;
|
|
36
|
+
declare function GitRepositoryCommitsPage(props: GitRepositoryCommitsPageProps): ReactNode;
|
|
37
|
+
declare function GitRepositoryCommitPage(props: GitRepositoryCommitPageProps): ReactNode;
|
|
38
|
+
declare function GitRepositoryReleasesPage(props: GitBrowserPageProps<GitForgeRepositoryOverview>): ReactNode;
|
|
39
|
+
declare function GitRepositoryReleasePage(props: GitRepositoryReleasePageProps): ReactNode;
|
|
40
|
+
declare function GitRepositoryForksPage(props: GitBrowserPageProps<GitForgeRepositoryOverview>): ReactNode;
|
|
41
|
+
declare function GitRepositoryActivityPage(props: GitBrowserPageProps<GitForgeRepositoryOverview>): ReactNode;
|
|
42
|
+
export { GitBrowserProvider, GitRepositoryActivityPage, GitRepositoryCodePage, GitRepositoryCommitPage, GitRepositoryCommitsPage, GitRepositoryForksPage, GitRepositoryOverviewPage, GitRepositoryReleasePage, GitRepositoryReleasesPage, };
|
|
43
|
+
export type { GitBrowserPageProps, GitBrowserProviderProps, GitRepositoryCodePageProps, GitRepositoryCommitPageProps, GitRepositoryCommitsPageProps, GitRepositoryReleasePageProps, };
|
|
44
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAuB5E,OAAO,KAAK,EAGV,0BAA0B,EAG3B,MAAM,aAAa,CAAC;AAKrB,KAAK,uBAAuB,GAAG;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B,CAAC;AAEF,KAAK,mBAAmB,CAAC,KAAK,GAAG,OAAO,IAAI;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,WAAW,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,KAAK,0BAA0B,GAAG,mBAAmB,CAAC,0BAA0B,CAAC,GAAG;IAClF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,6BAA6B,GAAG,mBAAmB,CAAC,0BAA0B,CAAC,GAAG;IACrF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,4BAA4B,GAAG,mBAAmB,CAAC,0BAA0B,CAAC,GAAG;IACpF,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,6BAA6B,GAAG,mBAAmB,CAAC,0BAA0B,CAAC,GAAG;IACrF,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAMF,iBAAS,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,mGASzD;AA6wBD,iBAAS,yBAAyB,CAAC,KAAK,EAAE,mBAAmB,CAAC,0BAA0B,CAAC,aAExF;AAED,iBAAS,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,aAE/D;AAED,iBAAS,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,aAErE;AAED,iBAAS,uBAAuB,CAAC,KAAK,EAAE,4BAA4B,aAEnE;AAED,iBAAS,yBAAyB,CAAC,KAAK,EAAE,mBAAmB,CAAC,0BAA0B,CAAC,aAExF;AAED,iBAAS,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,aAErE;AAED,iBAAS,sBAAsB,CAAC,KAAK,EAAE,mBAAmB,CAAC,0BAA0B,CAAC,aAErF;AAED,iBAAS,yBAAyB,CAAC,KAAK,EAAE,mBAAmB,CAAC,0BAA0B,CAAC,aAExF;AAED,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,GAC1B,CAAC;AAEF,YAAY,EACV,mBAAmB,EACnB,uBAAuB,EACvB,0BAA0B,EAC1B,4BAA4B,EAC5B,6BAA6B,EAC7B,6BAA6B,GAC9B,CAAC"}
|