@thxgg/steward 0.1.16 → 0.1.18
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/.output/nitro.json +1 -1
- package/.output/public/_nuxt/{CxHOXVf6.js → -z_Gr0GN.js} +1 -1
- package/.output/public/_nuxt/5LlyHjkF.js +60 -0
- package/.output/public/_nuxt/BA0u_CRT.js +1 -0
- package/.output/public/_nuxt/{Bibm_IDv.js → BA4e9-N5.js} +2 -2
- package/.output/public/_nuxt/{BSA0RJ-H.js → BO8EM227.js} +1 -1
- package/.output/public/_nuxt/C0XT5P3Q.js +1 -0
- package/.output/public/_nuxt/{BWVTacYj.js → CGzrvVc6.js} +1 -1
- package/.output/public/_nuxt/{Dum5qplW.js → CJlXUkTg.js} +1 -1
- package/.output/public/_nuxt/CZsXZugv.js +1 -0
- package/.output/public/_nuxt/{ynmyrfyT.js → C_HVaH3B.js} +1 -1
- package/.output/public/_nuxt/{wbjFvimm.js → DAnnHVQP.js} +1 -1
- package/.output/public/_nuxt/DEr8q68O.js +141 -0
- package/.output/public/_nuxt/Detail.DSyVQNdr.css +1 -0
- package/.output/public/_nuxt/DrXxYwWw.js +30 -0
- package/.output/public/_nuxt/QAzsKGuP.js +1 -0
- package/.output/public/_nuxt/TSsR_oCL.js +1 -0
- package/.output/public/_nuxt/WUF6Thhn.js +13 -0
- package/.output/public/_nuxt/_prd_.BkpxMFSV.css +1 -0
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/19e0e040-a531-4c25-b46d-a6ca54a1ae3e.json +1 -0
- package/.output/public/_nuxt/i9wn3hS7.js +1 -0
- package/.output/server/chunks/_/git-api.mjs +101 -8
- package/.output/server/chunks/_/git-api.mjs.map +1 -1
- package/.output/server/chunks/_/git.mjs +3 -10
- package/.output/server/chunks/_/git.mjs.map +1 -1
- package/.output/server/chunks/_/prd-service.mjs +366 -0
- package/.output/server/chunks/_/prd-service.mjs.map +1 -0
- package/.output/server/chunks/_/repos.mjs +448 -0
- package/.output/server/chunks/_/repos.mjs.map +1 -0
- package/.output/server/chunks/_/task-graph.mjs +13 -14
- package/.output/server/chunks/_/task-graph.mjs.map +1 -1
- package/.output/server/chunks/_/watcher.mjs +54 -68
- package/.output/server/chunks/_/watcher.mjs.map +1 -1
- package/.output/server/chunks/build/{Detail-CUfU85GY.mjs → Detail-BQSkP9Zm.mjs} +170 -74
- package/.output/server/chunks/build/Detail-BQSkP9Zm.mjs.map +1 -0
- package/.output/server/chunks/build/DiffViewer-styles-1.mjs-BFsE2PCW.mjs +4 -0
- package/.output/server/chunks/build/DiffViewer-styles-1.mjs-BFsE2PCW.mjs.map +1 -0
- package/.output/server/chunks/build/DiffViewer-styles.D2bqX3nK.mjs +8 -0
- package/.output/server/chunks/build/DiffViewer-styles.D2bqX3nK.mjs.map +1 -0
- package/.output/server/chunks/build/DiffViewer-styles.FoV36wuV.mjs +10 -0
- package/.output/server/chunks/build/DiffViewer-styles.FoV36wuV.mjs.map +1 -0
- package/.output/server/chunks/build/Viewer-styles.D6wYWFb1.mjs +8 -0
- package/.output/server/chunks/build/Viewer-styles.D6wYWFb1.mjs.map +1 -0
- package/.output/server/chunks/build/{_prd_-CeVnQzOV.mjs → _prd_-CBR_wm9i.mjs} +73 -33
- package/.output/server/chunks/build/_prd_-CBR_wm9i.mjs.map +1 -0
- package/.output/server/chunks/build/client.precomputed.mjs +1 -1
- package/.output/server/chunks/build/{default-DWCOHHTE.mjs → default-Cao5eO80.mjs} +2 -3
- package/.output/server/chunks/build/default-Cao5eO80.mjs.map +1 -0
- package/.output/server/chunks/build/error-404-Bf6kdO80.mjs +0 -1
- package/.output/server/chunks/build/error-500-D_bcARXN.mjs +0 -1
- package/.output/server/chunks/build/{index-CckL_NBD.mjs → index-ByZO4Bvq.mjs} +2 -2
- package/.output/server/chunks/build/index-ByZO4Bvq.mjs.map +1 -0
- package/.output/server/chunks/build/{index-QVeSHT3L.mjs → index-ljj9uTXI.mjs} +6 -5
- package/.output/server/chunks/build/index-ljj9uTXI.mjs.map +1 -0
- package/.output/server/chunks/build/nuxt-link-SvT1nf8Z.mjs +1 -1
- package/.output/server/chunks/build/{repo-graph-CHNl58mY.mjs → repo-graph-CVnkmn8i.mjs} +23 -10
- package/.output/server/chunks/build/repo-graph-CVnkmn8i.mjs.map +1 -0
- package/.output/server/chunks/build/server.mjs +5 -6
- package/.output/server/chunks/build/styles.mjs +4 -4
- package/.output/server/chunks/build/{usePrd-SqcxGyFU.mjs → usePrd-f7ylhIqs.mjs} +10 -34
- package/.output/server/chunks/build/usePrd-f7ylhIqs.mjs.map +1 -0
- package/.output/server/chunks/nitro/nitro.mjs +614 -1211
- package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
- package/.output/server/chunks/routes/api/browse.get.mjs +34 -10
- package/.output/server/chunks/routes/api/browse.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get.mjs +3 -2
- package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post.mjs +22 -7
- package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/repos/_repoId/git/commits.get.mjs +29 -23
- package/.output/server/chunks/routes/api/repos/_repoId/git/commits.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/repos/_repoId/git/diff.get.mjs +12 -7
- package/.output/server/chunks/routes/api/repos/_repoId/git/diff.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/repos/_repoId/git/file-content.get.mjs +32 -13
- package/.output/server/chunks/routes/api/repos/_repoId/git/file-content.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/repos/_repoId/git/file-diff.get.mjs +14 -14
- package/.output/server/chunks/routes/api/repos/_repoId/git/file-diff.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/repos/_repoId/graph.get.mjs +7 -2
- package/.output/server/chunks/routes/api/repos/_repoId/graph.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/graph.get.mjs +16 -2
- package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/graph.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/progress.get.mjs +21 -9
- package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/progress.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/tasks/_taskId/commits.get.mjs +21 -85
- package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/tasks/_taskId/commits.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/tasks.get.mjs +21 -9
- package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/tasks.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug_.get.mjs +31 -50
- package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/repos/_repoId/prds.get.mjs +20 -49
- package/.output/server/chunks/routes/api/repos/_repoId/prds.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/repos/_repoId/refresh-git-repos.post.mjs +6 -13
- package/.output/server/chunks/routes/api/repos/_repoId/refresh-git-repos.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/repos/_repoId_.delete.mjs +3 -2
- package/.output/server/chunks/routes/api/repos/_repoId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/runtime.get.mjs +1 -2
- package/.output/server/chunks/routes/api/runtime.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/watch.get.mjs +5 -4
- package/.output/server/chunks/routes/api/watch.get.mjs.map +1 -1
- package/.output/server/chunks/routes/renderer.mjs +1 -1
- package/.output/server/index.mjs +1 -2
- package/.output/server/index.mjs.map +1 -1
- package/.output/server/node_modules/zod/index.js +4 -0
- package/.output/server/node_modules/zod/package.json +118 -0
- package/.output/server/node_modules/zod/v3/ZodError.js +133 -0
- package/.output/server/node_modules/zod/v3/errors.js +9 -0
- package/.output/server/node_modules/zod/v3/external.js +6 -0
- package/.output/server/node_modules/zod/v3/helpers/errorUtil.js +6 -0
- package/.output/server/node_modules/zod/v3/helpers/parseUtil.js +109 -0
- package/.output/server/node_modules/zod/v3/helpers/typeAliases.js +1 -0
- package/.output/server/node_modules/zod/v3/helpers/util.js +133 -0
- package/.output/server/node_modules/zod/v3/locales/en.js +109 -0
- package/.output/server/node_modules/zod/v3/types.js +3693 -0
- package/.output/server/package.json +2 -1
- package/README.md +2 -2
- package/dist/host/src/api/prds.js +6 -172
- package/dist/host/src/api/repos.js +3 -18
- package/dist/host/src/api/state.js +8 -9
- package/dist/host/src/executor-runner.js +368 -0
- package/dist/host/src/executor.js +138 -260
- package/dist/host/src/mcp.js +27 -1
- package/dist/host/src/ui.js +14 -4
- package/dist/server/utils/change-events.js +33 -0
- package/dist/server/utils/git.js +11 -16
- package/dist/server/utils/prd-service.js +231 -0
- package/dist/server/utils/prd-state.js +54 -162
- package/dist/server/utils/repos.js +72 -17
- package/dist/server/utils/state-schema.js +61 -0
- package/dist/server/utils/task-graph.js +13 -13
- package/package.json +2 -1
- package/.output/public/_nuxt/CVJh28bx.js +0 -1
- package/.output/public/_nuxt/CyZuidLG.js +0 -60
- package/.output/public/_nuxt/D0op9E2g.js +0 -1
- package/.output/public/_nuxt/DX8awZaa.js +0 -1
- package/.output/public/_nuxt/Detail.z33AHKev.css +0 -1
- package/.output/public/_nuxt/DiTJUZOC.js +0 -1
- package/.output/public/_nuxt/T_3JE9C-.js +0 -1
- package/.output/public/_nuxt/WOI2tLsR.js +0 -42
- package/.output/public/_nuxt/_prd_.KTotLoF_.css +0 -1
- package/.output/public/_nuxt/builds/meta/029070b0-b8e2-4988-84f4-d0c9ff55c998.json +0 -1
- package/.output/public/_nuxt/odRGDGwj.js +0 -1
- package/.output/server/chunks/build/Detail-CUfU85GY.mjs.map +0 -1
- package/.output/server/chunks/build/DiffViewer-styles-1.mjs-CS8FTppg.mjs +0 -4
- package/.output/server/chunks/build/DiffViewer-styles-1.mjs-CS8FTppg.mjs.map +0 -1
- package/.output/server/chunks/build/DiffViewer-styles.AUfwwelI.mjs +0 -10
- package/.output/server/chunks/build/DiffViewer-styles.AUfwwelI.mjs.map +0 -1
- package/.output/server/chunks/build/DiffViewer-styles.D_it8zfk.mjs +0 -8
- package/.output/server/chunks/build/DiffViewer-styles.D_it8zfk.mjs.map +0 -1
- package/.output/server/chunks/build/Viewer-styles.CshnetGw.mjs +0 -8
- package/.output/server/chunks/build/Viewer-styles.CshnetGw.mjs.map +0 -1
- package/.output/server/chunks/build/_prd_-CeVnQzOV.mjs.map +0 -1
- package/.output/server/chunks/build/default-DWCOHHTE.mjs.map +0 -1
- package/.output/server/chunks/build/index-CckL_NBD.mjs.map +0 -1
- package/.output/server/chunks/build/index-QVeSHT3L.mjs.map +0 -1
- package/.output/server/chunks/build/repo-graph-CHNl58mY.mjs.map +0 -1
- package/.output/server/chunks/build/usePrd-SqcxGyFU.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nitro.mjs","sources":["../../../../node_modules/destr/dist/index.mjs","../../../../node_modules/ufo/dist/index.mjs","../../../../node_modules/radix3/dist/index.mjs","../../../../node_modules/defu/dist/defu.mjs","../../../../node_modules/node-mock-http/dist/index.mjs","../../../../node_modules/h3/dist/index.mjs","../../../../node_modules/hookable/dist/index.mjs","../../../../node_modules/node-fetch-native/dist/native.mjs","../../../../node_modules/ofetch/dist/shared/ofetch.CWycOUEr.mjs","../../../../node_modules/ofetch/dist/node.mjs","../../../../node_modules/unstorage/dist/shared/unstorage.zVDD2mZo.mjs","../../../../node_modules/unstorage/dist/index.mjs","../../../../node_modules/unstorage/drivers/utils/index.mjs","../../../../node_modules/unstorage/drivers/utils/node-fs.mjs","../../../../node_modules/unstorage/drivers/fs-lite.mjs","../../../../node_modules/nitropack/dist/runtime/internal/storage.mjs","../../../../node_modules/ohash/dist/shared/ohash.D__AXeF1.mjs","../../../../node_modules/ohash/dist/crypto/node/index.mjs","../../../../node_modules/ohash/dist/index.mjs","../../../../node_modules/nitropack/dist/runtime/internal/hash.mjs","../../../../node_modules/nitropack/dist/runtime/internal/cache.mjs","../../../../node_modules/klona/dist/index.mjs","../../../../node_modules/scule/dist/index.mjs","../../../../node_modules/nitropack/dist/runtime/internal/utils.env.mjs","../../../../node_modules/nitropack/dist/runtime/internal/config.mjs","../../../../node_modules/unctx/dist/index.mjs","../../../../node_modules/nitropack/dist/runtime/internal/context.mjs","../../../../node_modules/nitropack/dist/runtime/internal/route-rules.mjs","../../../../node_modules/nitropack/dist/runtime/internal/utils.mjs","../../../../node_modules/@nuxt/nitro-server/dist/runtime/utils/error.mjs","../../../../node_modules/@nuxt/nitro-server/dist/runtime/handlers/error.mjs","../../../../node_modules/nitropack/dist/runtime/internal/error/utils.mjs","../../../../node_modules/nitropack/dist/runtime/internal/error/prod.mjs","../../../../node_modules/@nuxtjs/color-mode/dist/runtime/nitro-plugin.js","../../../../node_modules/
|
|
1
|
+
{"version":3,"file":"nitro.mjs","sources":["../../../../node_modules/destr/dist/index.mjs","../../../../node_modules/ufo/dist/index.mjs","../../../../node_modules/radix3/dist/index.mjs","../../../../node_modules/defu/dist/defu.mjs","../../../../node_modules/node-mock-http/dist/index.mjs","../../../../node_modules/h3/dist/index.mjs","../../../../node_modules/hookable/dist/index.mjs","../../../../node_modules/node-fetch-native/dist/native.mjs","../../../../node_modules/ofetch/dist/shared/ofetch.CWycOUEr.mjs","../../../../node_modules/ofetch/dist/node.mjs","../../../../node_modules/unstorage/dist/shared/unstorage.zVDD2mZo.mjs","../../../../node_modules/unstorage/dist/index.mjs","../../../../node_modules/unstorage/drivers/utils/index.mjs","../../../../node_modules/unstorage/drivers/utils/node-fs.mjs","../../../../node_modules/unstorage/drivers/fs-lite.mjs","../../../../node_modules/nitropack/dist/runtime/internal/storage.mjs","../../../../node_modules/ohash/dist/shared/ohash.D__AXeF1.mjs","../../../../node_modules/ohash/dist/crypto/node/index.mjs","../../../../node_modules/ohash/dist/index.mjs","../../../../node_modules/nitropack/dist/runtime/internal/hash.mjs","../../../../node_modules/nitropack/dist/runtime/internal/cache.mjs","../../../../node_modules/klona/dist/index.mjs","../../../../node_modules/scule/dist/index.mjs","../../../../node_modules/nitropack/dist/runtime/internal/utils.env.mjs","../../../../node_modules/nitropack/dist/runtime/internal/config.mjs","../../../../node_modules/unctx/dist/index.mjs","../../../../node_modules/nitropack/dist/runtime/internal/context.mjs","../../../../node_modules/nitropack/dist/runtime/internal/route-rules.mjs","../../../../node_modules/nitropack/dist/runtime/internal/utils.mjs","../../../../node_modules/@nuxt/nitro-server/dist/runtime/utils/error.mjs","../../../../node_modules/@nuxt/nitro-server/dist/runtime/handlers/error.mjs","../../../../node_modules/nitropack/dist/runtime/internal/error/utils.mjs","../../../../node_modules/nitropack/dist/runtime/internal/error/prod.mjs","../../../../node_modules/@nuxtjs/color-mode/dist/runtime/nitro-plugin.js","../../../../node_modules/pathe/dist/shared/pathe.M-eThtNZ.mjs","../../../../node_modules/nitropack/dist/runtime/internal/static.mjs","../../../../server/middleware/00-security.ts","../../../../node_modules/nitropack/dist/runtime/internal/app.mjs","../../../../node_modules/nitropack/dist/runtime/internal/renderer.mjs","../../../../node_modules/nitropack/dist/runtime/internal/lib/http-graceful-shutdown.mjs","../../../../node_modules/nitropack/dist/runtime/internal/shutdown.mjs","../../../../node_modules/nitropack/dist/presets/node/runtime/node-server.mjs"],"names":["getQuery","createRouter","f","h","c","i","l","createError","mergeHeaders","s","nodeFetch","Headers","Headers$1","AbortController$1","normalizeKey","defineDriver","DRIVER_NAME","dirname","fsPromises","resolve","fsp","serialize","hash","_inlineAppConfig","createRadixRouter","nitroApp","callNodeRequestHandler","fetchNodeRequestHandler","gracefulShutdown","HttpsServer","HttpServer"],"mappings":"","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,37,38,39,40,41]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { d as defineEventHandler, g as getQuery, c as createError } from '../../nitro/nitro.mjs';
|
|
2
2
|
import { stat, readdir } from 'node:fs/promises';
|
|
3
|
-
import { join } from 'node:path';
|
|
3
|
+
import { resolve, join, dirname } from 'node:path';
|
|
4
4
|
import { homedir } from 'node:os';
|
|
5
|
+
import { z } from 'zod';
|
|
5
6
|
import 'node:http';
|
|
6
7
|
import 'node:https';
|
|
7
8
|
import 'node:events';
|
|
@@ -10,28 +11,51 @@ import 'node:fs';
|
|
|
10
11
|
import 'node:crypto';
|
|
11
12
|
import 'node:url';
|
|
12
13
|
|
|
14
|
+
const browseQuerySchema = z.object({
|
|
15
|
+
path: z.string().max(4096, "Path is too long").optional()
|
|
16
|
+
}).passthrough();
|
|
17
|
+
function validationError(message) {
|
|
18
|
+
throw createError({
|
|
19
|
+
statusCode: 400,
|
|
20
|
+
statusMessage: "Invalid browse query",
|
|
21
|
+
message
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
function toPosixPath(path) {
|
|
25
|
+
return path.replaceAll("\\", "/");
|
|
26
|
+
}
|
|
13
27
|
const browse_get = defineEventHandler(async (event) => {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
if (
|
|
17
|
-
|
|
28
|
+
var _a, _b;
|
|
29
|
+
const parsedQuery = browseQuerySchema.safeParse(getQuery(event));
|
|
30
|
+
if (!parsedQuery.success) {
|
|
31
|
+
validationError(((_a = parsedQuery.error.issues[0]) == null ? void 0 : _a.message) || "Invalid query parameters");
|
|
18
32
|
}
|
|
33
|
+
const requestedPath = ((_b = parsedQuery.data.path) == null ? void 0 : _b.trim()) || homedir();
|
|
34
|
+
if (requestedPath.includes("\0")) {
|
|
35
|
+
validationError("Path contains invalid characters");
|
|
36
|
+
}
|
|
37
|
+
const expandedPath = requestedPath.startsWith("~") ? requestedPath.replace("~", homedir()) : requestedPath;
|
|
38
|
+
if (expandedPath.length > 4096) {
|
|
39
|
+
validationError("Path is too long");
|
|
40
|
+
}
|
|
41
|
+
const resolvedPath = resolve(expandedPath);
|
|
19
42
|
try {
|
|
20
|
-
const stats = await stat(
|
|
43
|
+
const stats = await stat(resolvedPath);
|
|
21
44
|
if (!stats.isDirectory()) {
|
|
22
45
|
throw createError({
|
|
23
46
|
statusCode: 400,
|
|
24
47
|
message: "Path is not a directory"
|
|
25
48
|
});
|
|
26
49
|
}
|
|
27
|
-
const entries = await readdir(
|
|
50
|
+
const entries = await readdir(resolvedPath, { withFileTypes: true });
|
|
28
51
|
const directories = entries.filter((entry) => entry.isDirectory() && !entry.name.startsWith(".")).map((entry) => ({
|
|
29
52
|
name: entry.name,
|
|
30
|
-
path: join(
|
|
53
|
+
path: toPosixPath(join(resolvedPath, entry.name))
|
|
31
54
|
})).sort((a, b) => a.name.localeCompare(b.name));
|
|
55
|
+
const parentPath = dirname(resolvedPath);
|
|
32
56
|
return {
|
|
33
|
-
current:
|
|
34
|
-
parent:
|
|
57
|
+
current: toPosixPath(resolvedPath),
|
|
58
|
+
parent: parentPath === resolvedPath ? null : toPosixPath(parentPath),
|
|
35
59
|
directories
|
|
36
60
|
};
|
|
37
61
|
} catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browse.get.mjs","sources":["../../../../../server/api/browse.get.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"browse.get.mjs","sources":["../../../../../server/api/browse.get.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { d as defineEventHandler
|
|
1
|
+
import { d as defineEventHandler } from '../../nitro/nitro.mjs';
|
|
2
|
+
import { g as getRepos } from '../../_/repos.mjs';
|
|
2
3
|
import 'node:http';
|
|
3
4
|
import 'node:https';
|
|
4
5
|
import 'node:events';
|
|
@@ -6,8 +7,8 @@ import 'node:buffer';
|
|
|
6
7
|
import 'node:fs';
|
|
7
8
|
import 'node:path';
|
|
8
9
|
import 'node:crypto';
|
|
9
|
-
import 'node:os';
|
|
10
10
|
import 'node:url';
|
|
11
|
+
import 'node:os';
|
|
11
12
|
|
|
12
13
|
const index_get = defineEventHandler(async () => {
|
|
13
14
|
return await getRepos();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.get.mjs","sources":["../../../../../server/api/repos/index.get.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.get.mjs","sources":["../../../../../server/api/repos/index.get.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,kBAAA,mBAAA,YAAA;AACA,EAAA,OAAA,MAAA,QAAA,EAAA;AACA,CAAA,CAAA;;;;"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { d as defineEventHandler,
|
|
1
|
+
import { d as defineEventHandler, r as readBody, c as createError } from '../../nitro/nitro.mjs';
|
|
2
|
+
import { v as validateRepoPath, e as addRepo } from '../../_/repos.mjs';
|
|
2
3
|
import { r as refreshWatcher } from '../../_/watcher.mjs';
|
|
4
|
+
import { z } from 'zod';
|
|
3
5
|
import 'node:http';
|
|
4
6
|
import 'node:https';
|
|
5
7
|
import 'node:events';
|
|
@@ -7,19 +9,33 @@ import 'node:buffer';
|
|
|
7
9
|
import 'node:fs';
|
|
8
10
|
import 'node:path';
|
|
9
11
|
import 'node:crypto';
|
|
10
|
-
import 'node:os';
|
|
11
12
|
import 'node:url';
|
|
13
|
+
import 'node:os';
|
|
12
14
|
import 'chokidar';
|
|
13
15
|
|
|
16
|
+
const addRepoBodySchema = z.object({
|
|
17
|
+
path: z.string().trim().min(1, "Path is required").max(4096, "Path is too long"),
|
|
18
|
+
name: z.string().trim().max(256, "Name is too long").optional()
|
|
19
|
+
}).strict();
|
|
20
|
+
function getValidationMessage(error) {
|
|
21
|
+
var _a;
|
|
22
|
+
return ((_a = error.issues[0]) == null ? void 0 : _a.message) || "Invalid request body";
|
|
23
|
+
}
|
|
14
24
|
const index_post = defineEventHandler(async (event) => {
|
|
15
25
|
const body = await readBody(event);
|
|
16
|
-
|
|
26
|
+
const parsedBody = addRepoBodySchema.safeParse(body);
|
|
27
|
+
if (!parsedBody.success) {
|
|
17
28
|
throw createError({
|
|
18
29
|
statusCode: 400,
|
|
19
|
-
statusMessage: "
|
|
30
|
+
statusMessage: "Invalid request body",
|
|
31
|
+
message: getValidationMessage(parsedBody.error)
|
|
20
32
|
});
|
|
21
33
|
}
|
|
22
|
-
const
|
|
34
|
+
const normalizedBody = {
|
|
35
|
+
path: parsedBody.data.path,
|
|
36
|
+
...parsedBody.data.name && parsedBody.data.name.length > 0 && { name: parsedBody.data.name }
|
|
37
|
+
};
|
|
38
|
+
const validation = await validateRepoPath(normalizedBody.path);
|
|
23
39
|
if (!validation.valid) {
|
|
24
40
|
throw createError({
|
|
25
41
|
statusCode: 400,
|
|
@@ -27,8 +43,7 @@ const index_post = defineEventHandler(async (event) => {
|
|
|
27
43
|
});
|
|
28
44
|
}
|
|
29
45
|
try {
|
|
30
|
-
const repo = await addRepo(
|
|
31
|
-
await migrateLegacyStateForRepo(repo);
|
|
46
|
+
const repo = await addRepo(normalizedBody.path, normalizedBody.name);
|
|
32
47
|
await refreshWatcher();
|
|
33
48
|
return repo;
|
|
34
49
|
} catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.post.mjs","sources":["../../../../../server/api/repos/index.post.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.post.mjs","sources":["../../../../../server/api/repos/index.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAKA,MAAA,iBAAA,GAAA,EAAA,MAAA,CAAA;AAAA,EACA,IAAA,EAAA,CAAA,CAAA,MAAA,EAAA,CAAA,IAAA,EAAA,CAAA,GAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,CAAA,GAAA,CAAA,IAAA,EAAA,kBAAA,CAAA;AAAA,EACA,IAAA,EAAA,CAAA,CAAA,MAAA,EAAA,CAAA,IAAA,GAAA,GAAA,CAAA,GAAA,EAAA,kBAAA,CAAA,CAAA,QAAA;AACA,CAAA,EAAA,MAAA,EAAA;AAEA,SAAA,qBAAA,KAAA,EAAA;;AACA,EAAA,OAAA,CAAA,CAAA,EAAA,GAAA,KAAA,CAAA,MAAA,CAAA,CAAA,CAAA,KAAA,mBAAA,OAAA,KAAA,sBAAA;AACA;AAEA,mBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,MAAA,IAAA,GAAA,MAAA,QAAA,CAAA,KAAA,CAAA;AACA,EAAA,MAAA,UAAA,GAAA,iBAAA,CAAA,SAAA,CAAA,IAAA,CAAA;AAEA,EAAA,IAAA,CAAA,WAAA,OAAA,EAAA;AACA,IAAA,MAAA,WAAA,CAAA;AAAA,MACA,UAAA,EAAA,GAAA;AAAA,MACA,aAAA,EAAA,sBAAA;AAAA,MACA,OAAA,EAAA,oBAAA,CAAA,UAAA,CAAA,KAAA;AAAA,KACA,CAAA;AAAA,EACA;AAEA,EAAA,MAAA,cAAA,GAAA;AAAA,IACA,IAAA,EAAA,WAAA,IAAA,CAAA,IAAA;AAAA,IACA,GAAA,UAAA,CAAA,IAAA,CAAA,IAAA,IAAA,UAAA,CAAA,IAAA,CAAA,IAAA,CAAA,MAAA,GAAA,CAAA,IAAA,EAAA,IAAA,EAAA,UAAA,CAAA,KAAA,IAAA;AAAA,GACA;AAEA,EAAA,MAAA,UAAA,GAAA,MAAA,gBAAA,CAAA,cAAA,CAAA,IAAA,CAAA;AACA,EAAA,IAAA,CAAA,WAAA,KAAA,EAAA;AACA,IAAA,MAAA,WAAA,CAAA;AAAA,MACA,UAAA,EAAA,GAAA;AAAA,MACA,aAAA,EAAA,WAAA,KAAA,IAAA;AAAA,KACA,CAAA;AAAA,EACA;AAEA,EAAA,IAAA;AACA,IAAA,MAAA,OAAA,MAAA,OAAA,CAAA,cAAA,CAAA,IAAA,EAAA,eAAA,IAAA,CAAA;AAEA,IAAA,MAAA,cAAA,EAAA;AACA,IAAA,OAAA,IAAA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,IAAA,KAAA,YAAA,KAAA,IAAA,KAAA,CAAA,OAAA,KAAA,0BAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AACA,IAAA,MAAA,KAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { d as defineEventHandler, a as getRouterParam, c as createError,
|
|
1
|
+
import { d as defineEventHandler, a as getRouterParam, c as createError, g as getQuery } from '../../../../../nitro/nitro.mjs';
|
|
2
|
+
import { g as getRepos } from '../../../../../_/repos.mjs';
|
|
2
3
|
import { i as isGitRepo, f as findRepoForCommit, g as getCommitInfo } from '../../../../../_/git.mjs';
|
|
3
|
-
import {
|
|
4
|
+
import { p as parseCommitShaListParam, a as parseOptionalGitRepoPathParam, n as normalizeErrorMessage, b as buildRepoLookup, r as resolveRequestedGitRepoPath, g as getRepoRelativePath } from '../../../../../_/git-api.mjs';
|
|
4
5
|
import 'node:http';
|
|
5
6
|
import 'node:https';
|
|
6
7
|
import 'node:events';
|
|
@@ -8,8 +9,8 @@ import 'node:buffer';
|
|
|
8
9
|
import 'node:fs';
|
|
9
10
|
import 'node:path';
|
|
10
11
|
import 'node:crypto';
|
|
11
|
-
import 'node:os';
|
|
12
12
|
import 'node:url';
|
|
13
|
+
import 'node:os';
|
|
13
14
|
import 'node:child_process';
|
|
14
15
|
|
|
15
16
|
const commits_get = defineEventHandler(async (event) => {
|
|
@@ -29,19 +30,16 @@ const commits_get = defineEventHandler(async (event) => {
|
|
|
29
30
|
});
|
|
30
31
|
}
|
|
31
32
|
const query = getQuery(event);
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
const shas = shasParam.split(",").map((s) => s.trim()).filter(Boolean);
|
|
41
|
-
if (shas.length === 0) {
|
|
33
|
+
let shas;
|
|
34
|
+
let repoPath;
|
|
35
|
+
try {
|
|
36
|
+
shas = parseCommitShaListParam(query.shas);
|
|
37
|
+
repoPath = parseOptionalGitRepoPathParam(query.repo);
|
|
38
|
+
} catch (error) {
|
|
42
39
|
throw createError({
|
|
43
40
|
statusCode: 400,
|
|
44
|
-
statusMessage: "
|
|
41
|
+
statusMessage: "Invalid git query parameters",
|
|
42
|
+
message: normalizeErrorMessage(error.message)
|
|
45
43
|
});
|
|
46
44
|
}
|
|
47
45
|
const repoLookup = await buildRepoLookup(repo);
|
|
@@ -63,9 +61,7 @@ const commits_get = defineEventHandler(async (event) => {
|
|
|
63
61
|
fixedGitRepoPath = repo.path;
|
|
64
62
|
fixedRepoPath = "";
|
|
65
63
|
}
|
|
66
|
-
const
|
|
67
|
-
const errors = [];
|
|
68
|
-
for (const sha of shas) {
|
|
64
|
+
const commitResults = await Promise.all(shas.map(async (sha) => {
|
|
69
65
|
try {
|
|
70
66
|
let gitRepoPathForCommit = fixedGitRepoPath;
|
|
71
67
|
let resolvedRepoPath = fixedRepoPath;
|
|
@@ -89,14 +85,24 @@ const commits_get = defineEventHandler(async (event) => {
|
|
|
89
85
|
resolvedRepoPath = fallback.repoPath;
|
|
90
86
|
gitRepoPathForCommit = fallback.absolutePath;
|
|
91
87
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
88
|
+
return {
|
|
89
|
+
commit: {
|
|
90
|
+
...commit,
|
|
91
|
+
repoPath: resolvedRepoPath || getRepoRelativePath(repo.path, gitRepoPathForCommit)
|
|
92
|
+
},
|
|
93
|
+
error: null
|
|
94
|
+
};
|
|
96
95
|
} catch (error) {
|
|
97
|
-
|
|
96
|
+
return {
|
|
97
|
+
commit: null,
|
|
98
|
+
error: `${sha}: ${normalizeErrorMessage(error.message)}`
|
|
99
|
+
};
|
|
98
100
|
}
|
|
99
|
-
}
|
|
101
|
+
}));
|
|
102
|
+
const commits = commitResults.flatMap((result) => {
|
|
103
|
+
return result.commit ? [result.commit] : [];
|
|
104
|
+
});
|
|
105
|
+
const errors = commitResults.map((result) => result.error).filter((message) => message !== null);
|
|
100
106
|
if (commits.length === 0 && errors.length > 0) {
|
|
101
107
|
throw createError({
|
|
102
108
|
statusCode: 404,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commits.get.mjs","sources":["../../../../../../../../server/api/repos/[repoId]/git/commits.get.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"commits.get.mjs","sources":["../../../../../../../../server/api/repos/[repoId]/git/commits.get.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { d as defineEventHandler, a as getRouterParam, c as createError,
|
|
1
|
+
import { d as defineEventHandler, a as getRouterParam, c as createError, g as getQuery } from '../../../../../nitro/nitro.mjs';
|
|
2
|
+
import { g as getRepos } from '../../../../../_/repos.mjs';
|
|
2
3
|
import { i as isGitRepo, f as findRepoForCommit, a as getCommitDiff } from '../../../../../_/git.mjs';
|
|
3
|
-
import {
|
|
4
|
+
import { c as parseCommitShaParam, a as parseOptionalGitRepoPathParam, n as normalizeErrorMessage, b as buildRepoLookup, r as resolveRequestedGitRepoPath } from '../../../../../_/git-api.mjs';
|
|
4
5
|
import 'node:http';
|
|
5
6
|
import 'node:https';
|
|
6
7
|
import 'node:events';
|
|
@@ -8,8 +9,8 @@ import 'node:buffer';
|
|
|
8
9
|
import 'node:fs';
|
|
9
10
|
import 'node:path';
|
|
10
11
|
import 'node:crypto';
|
|
11
|
-
import 'node:os';
|
|
12
12
|
import 'node:url';
|
|
13
|
+
import 'node:os';
|
|
13
14
|
import 'node:child_process';
|
|
14
15
|
|
|
15
16
|
const diff_get = defineEventHandler(async (event) => {
|
|
@@ -29,12 +30,16 @@ const diff_get = defineEventHandler(async (event) => {
|
|
|
29
30
|
});
|
|
30
31
|
}
|
|
31
32
|
const query = getQuery(event);
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
let commit;
|
|
34
|
+
let repoPath;
|
|
35
|
+
try {
|
|
36
|
+
commit = parseCommitShaParam(query.commit, "commit query parameter");
|
|
37
|
+
repoPath = parseOptionalGitRepoPathParam(query.repo);
|
|
38
|
+
} catch (error) {
|
|
35
39
|
throw createError({
|
|
36
40
|
statusCode: 400,
|
|
37
|
-
statusMessage: "
|
|
41
|
+
statusMessage: "Invalid git query parameters",
|
|
42
|
+
message: normalizeErrorMessage(error.message)
|
|
38
43
|
});
|
|
39
44
|
}
|
|
40
45
|
const repoLookup = await buildRepoLookup(repo);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.get.mjs","sources":["../../../../../../../../server/api/repos/[repoId]/git/diff.get.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"diff.get.mjs","sources":["../../../../../../../../server/api/repos/[repoId]/git/diff.get.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { d as defineEventHandler, a as getRouterParam, g as getQuery, c as createError
|
|
1
|
+
import { d as defineEventHandler, a as getRouterParam, g as getQuery, c as createError } from '../../../../../nitro/nitro.mjs';
|
|
2
|
+
import { g as getRepos } from '../../../../../_/repos.mjs';
|
|
2
3
|
import { i as isGitRepo, f as findRepoForCommit, v as validatePathInRepo, b as getFileContent } from '../../../../../_/git.mjs';
|
|
3
|
-
import {
|
|
4
|
+
import { c as parseCommitShaParam, d as parseGitFilePathParam, a as parseOptionalGitRepoPathParam, n as normalizeErrorMessage, b as buildRepoLookup, r as resolveRequestedGitRepoPath } from '../../../../../_/git-api.mjs';
|
|
4
5
|
import 'node:http';
|
|
5
6
|
import 'node:https';
|
|
6
7
|
import 'node:events';
|
|
@@ -8,24 +9,42 @@ import 'node:buffer';
|
|
|
8
9
|
import 'node:fs';
|
|
9
10
|
import 'node:path';
|
|
10
11
|
import 'node:crypto';
|
|
11
|
-
import 'node:os';
|
|
12
12
|
import 'node:url';
|
|
13
|
+
import 'node:os';
|
|
13
14
|
import 'node:child_process';
|
|
14
15
|
|
|
16
|
+
const MAX_FILE_CONTENT_CHARS = 1e6;
|
|
17
|
+
function formatFileContentResponse(content) {
|
|
18
|
+
if (content.length <= MAX_FILE_CONTENT_CHARS) {
|
|
19
|
+
return { content };
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
content: content.slice(0, MAX_FILE_CONTENT_CHARS),
|
|
23
|
+
truncated: true,
|
|
24
|
+
maxChars: MAX_FILE_CONTENT_CHARS,
|
|
25
|
+
originalChars: content.length,
|
|
26
|
+
message: `File content was truncated to ${MAX_FILE_CONTENT_CHARS.toLocaleString()} characters.`
|
|
27
|
+
};
|
|
28
|
+
}
|
|
15
29
|
const fileContent_get = defineEventHandler(async (event) => {
|
|
16
30
|
const repoId = getRouterParam(event, "repoId");
|
|
17
31
|
const query = getQuery(event);
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
32
|
+
let commit;
|
|
33
|
+
let file;
|
|
34
|
+
let repoPath;
|
|
21
35
|
if (!repoId) {
|
|
22
36
|
throw createError({ statusCode: 400, message: "Repository ID is required" });
|
|
23
37
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
38
|
+
try {
|
|
39
|
+
commit = parseCommitShaParam(query.commit, "commit query parameter");
|
|
40
|
+
file = parseGitFilePathParam(query.file);
|
|
41
|
+
repoPath = parseOptionalGitRepoPathParam(query.repo);
|
|
42
|
+
} catch (error) {
|
|
43
|
+
throw createError({
|
|
44
|
+
statusCode: 400,
|
|
45
|
+
statusMessage: "Invalid git query parameters",
|
|
46
|
+
message: normalizeErrorMessage(error.message)
|
|
47
|
+
});
|
|
29
48
|
}
|
|
30
49
|
const repos = await getRepos();
|
|
31
50
|
const repo = repos.find((r) => r.id === repoId);
|
|
@@ -58,14 +77,14 @@ const fileContent_get = defineEventHandler(async (event) => {
|
|
|
58
77
|
}
|
|
59
78
|
try {
|
|
60
79
|
const content = await getFileContent(gitRepoPath, commit, file);
|
|
61
|
-
return
|
|
80
|
+
return formatFileContentResponse(content);
|
|
62
81
|
} catch (error) {
|
|
63
82
|
const message = normalizeErrorMessage(error instanceof Error ? error.message : String(error));
|
|
64
83
|
const fallback = await findRepoForCommit(repoLookup, commit).catch(() => null);
|
|
65
84
|
if (fallback && fallback.absolutePath !== gitRepoPath && validatePathInRepo(fallback.absolutePath, file)) {
|
|
66
85
|
try {
|
|
67
86
|
const content = await getFileContent(fallback.absolutePath, commit, file);
|
|
68
|
-
return
|
|
87
|
+
return formatFileContentResponse(content);
|
|
69
88
|
} catch {
|
|
70
89
|
}
|
|
71
90
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-content.get.mjs","sources":["../../../../../../../../server/api/repos/[repoId]/git/file-content.get.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"file-content.get.mjs","sources":["../../../../../../../../server/api/repos/[repoId]/git/file-content.get.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { d as defineEventHandler, a as getRouterParam, c as createError,
|
|
1
|
+
import { d as defineEventHandler, a as getRouterParam, c as createError, g as getQuery } from '../../../../../nitro/nitro.mjs';
|
|
2
|
+
import { g as getRepos } from '../../../../../_/repos.mjs';
|
|
2
3
|
import { i as isGitRepo, f as findRepoForCommit, v as validatePathInRepo, c as getFileDiff } from '../../../../../_/git.mjs';
|
|
3
|
-
import {
|
|
4
|
+
import { c as parseCommitShaParam, d as parseGitFilePathParam, a as parseOptionalGitRepoPathParam, n as normalizeErrorMessage, b as buildRepoLookup, r as resolveRequestedGitRepoPath } from '../../../../../_/git-api.mjs';
|
|
4
5
|
import 'node:http';
|
|
5
6
|
import 'node:https';
|
|
6
7
|
import 'node:events';
|
|
@@ -8,8 +9,8 @@ import 'node:buffer';
|
|
|
8
9
|
import 'node:fs';
|
|
9
10
|
import 'node:path';
|
|
10
11
|
import 'node:crypto';
|
|
11
|
-
import 'node:os';
|
|
12
12
|
import 'node:url';
|
|
13
|
+
import 'node:os';
|
|
13
14
|
import 'node:child_process';
|
|
14
15
|
|
|
15
16
|
const fileDiff_get = defineEventHandler(async (event) => {
|
|
@@ -29,19 +30,18 @@ const fileDiff_get = defineEventHandler(async (event) => {
|
|
|
29
30
|
});
|
|
30
31
|
}
|
|
31
32
|
const query = getQuery(event);
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
if (!file) {
|
|
33
|
+
let commit;
|
|
34
|
+
let file;
|
|
35
|
+
let repoPath;
|
|
36
|
+
try {
|
|
37
|
+
commit = parseCommitShaParam(query.commit, "commit query parameter");
|
|
38
|
+
file = parseGitFilePathParam(query.file);
|
|
39
|
+
repoPath = parseOptionalGitRepoPathParam(query.repo);
|
|
40
|
+
} catch (error) {
|
|
42
41
|
throw createError({
|
|
43
42
|
statusCode: 400,
|
|
44
|
-
statusMessage: "
|
|
43
|
+
statusMessage: "Invalid git query parameters",
|
|
44
|
+
message: normalizeErrorMessage(error.message)
|
|
45
45
|
});
|
|
46
46
|
}
|
|
47
47
|
const repoLookup = await buildRepoLookup(repo);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-diff.get.mjs","sources":["../../../../../../../../server/api/repos/[repoId]/git/file-diff.get.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"file-diff.get.mjs","sources":["../../../../../../../../server/api/repos/[repoId]/git/file-diff.get.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { d as defineEventHandler, a as getRouterParam, c as createError
|
|
1
|
+
import { d as defineEventHandler, a as getRouterParam, c as createError } from '../../../../nitro/nitro.mjs';
|
|
2
|
+
import { g as getRepos } from '../../../../_/repos.mjs';
|
|
2
3
|
import { b as buildRepoGraph } from '../../../../_/task-graph.mjs';
|
|
3
4
|
import 'node:http';
|
|
4
5
|
import 'node:https';
|
|
@@ -7,8 +8,12 @@ import 'node:buffer';
|
|
|
7
8
|
import 'node:fs';
|
|
8
9
|
import 'node:path';
|
|
9
10
|
import 'node:crypto';
|
|
10
|
-
import 'node:os';
|
|
11
11
|
import 'node:url';
|
|
12
|
+
import 'node:os';
|
|
13
|
+
import '../../../../_/prd-service.mjs';
|
|
14
|
+
import '../../../../_/git.mjs';
|
|
15
|
+
import 'node:child_process';
|
|
16
|
+
import 'zod';
|
|
12
17
|
|
|
13
18
|
const graph_get = defineEventHandler(async (event) => {
|
|
14
19
|
const repoId = getRouterParam(event, "repoId");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.get.mjs","sources":["../../../../../../../server/api/repos/[repoId]/graph.get.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graph.get.mjs","sources":["../../../../../../../server/api/repos/[repoId]/graph.get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAGA,kBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,MAAA,MAAA,GAAA,cAAA,CAAA,KAAA,EAAA,QAAA,CAAA;AAEA,EAAA,IAAA,CAAA,MAAA,EAAA;AACA,IAAA,MAAA,WAAA,CAAA;AAAA,MACA,UAAA,EAAA,GAAA;AAAA,MACA,aAAA,EAAA;AAAA,KACA,CAAA;AAAA,EACA;AAEA,EAAA,MAAA,KAAA,GAAA,MAAA,QAAA,EAAA;AACA,EAAA,MAAA,OAAA,KAAA,CAAA,IAAA,CAAA,CAAA,KAAA,KAAA,KAAA,CAAA,OAAA,MAAA,CAAA;AAEA,EAAA,IAAA,CAAA,IAAA,EAAA;AACA,IAAA,MAAA,WAAA,CAAA;AAAA,MACA,UAAA,EAAA,GAAA;AAAA,MACA,aAAA,EAAA;AAAA,KACA,CAAA;AAAA,EACA;AAEA,EAAA,IAAA;AACA,IAAA,OAAA,MAAA,eAAA,IAAA,CAAA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,MAAA,WAAA,CAAA;AAAA,MACA,UAAA,EAAA,GAAA;AAAA,MACA,aAAA,EAAA,kCAAA;AAAA,MACA,SAAA,KAAA,CAAA,OAAA,CAAA,QAAA,MAAA,EAAA,GAAA,EAAA,IAAA;AAAA,KACA,CAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { d as defineEventHandler, a as getRouterParam, c as createError
|
|
1
|
+
import { d as defineEventHandler, a as getRouterParam, c as createError } from '../../../../../../nitro/nitro.mjs';
|
|
2
|
+
import { g as getRepos } from '../../../../../../_/repos.mjs';
|
|
3
|
+
import { a as assertValidPrdSlug } from '../../../../../../_/prd-service.mjs';
|
|
2
4
|
import { a as buildPrdGraph } from '../../../../../../_/task-graph.mjs';
|
|
3
5
|
import 'node:http';
|
|
4
6
|
import 'node:https';
|
|
@@ -7,8 +9,11 @@ import 'node:buffer';
|
|
|
7
9
|
import 'node:fs';
|
|
8
10
|
import 'node:path';
|
|
9
11
|
import 'node:crypto';
|
|
10
|
-
import 'node:os';
|
|
11
12
|
import 'node:url';
|
|
13
|
+
import 'node:os';
|
|
14
|
+
import '../../../../../../_/git.mjs';
|
|
15
|
+
import 'node:child_process';
|
|
16
|
+
import 'zod';
|
|
12
17
|
|
|
13
18
|
const graph_get = defineEventHandler(async (event) => {
|
|
14
19
|
const repoId = getRouterParam(event, "repoId");
|
|
@@ -19,6 +24,15 @@ const graph_get = defineEventHandler(async (event) => {
|
|
|
19
24
|
statusMessage: "Repository ID and PRD slug are required"
|
|
20
25
|
});
|
|
21
26
|
}
|
|
27
|
+
try {
|
|
28
|
+
assertValidPrdSlug(prdSlug);
|
|
29
|
+
} catch (error) {
|
|
30
|
+
throw createError({
|
|
31
|
+
statusCode: 400,
|
|
32
|
+
statusMessage: "Invalid PRD slug",
|
|
33
|
+
message: error.message
|
|
34
|
+
});
|
|
35
|
+
}
|
|
22
36
|
const repos = await getRepos();
|
|
23
37
|
const repo = repos.find((entry) => entry.id === repoId);
|
|
24
38
|
if (!repo) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.get.mjs","sources":["../../../../../../../../../server/api/repos/[repoId]/prd/[prdSlug]/graph.get.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graph.get.mjs","sources":["../../../../../../../../../server/api/repos/[repoId]/prd/[prdSlug]/graph.get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAIA,kBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,MAAA,MAAA,GAAA,cAAA,CAAA,KAAA,EAAA,QAAA,CAAA;AACA,EAAA,MAAA,OAAA,GAAA,cAAA,CAAA,KAAA,EAAA,SAAA,CAAA;AAEA,EAAA,IAAA,CAAA,MAAA,IAAA,CAAA,OAAA,EAAA;AACA,IAAA,MAAA,WAAA,CAAA;AAAA,MACA,UAAA,EAAA,GAAA;AAAA,MACA,aAAA,EAAA;AAAA,KACA,CAAA;AAAA,EACA;AAEA,EAAA,IAAA;AACA,IAAA,kBAAA,CAAA,OAAA,CAAA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,MAAA,WAAA,CAAA;AAAA,MACA,UAAA,EAAA,GAAA;AAAA,MACA,aAAA,EAAA,kBAAA;AAAA,MACA,SAAA,KAAA,CAAA;AAAA,KACA,CAAA;AAAA,EACA;AAEA,EAAA,MAAA,KAAA,GAAA,MAAA,QAAA,EAAA;AACA,EAAA,MAAA,OAAA,KAAA,CAAA,IAAA,CAAA,CAAA,KAAA,KAAA,KAAA,CAAA,OAAA,MAAA,CAAA;AAEA,EAAA,IAAA,CAAA,IAAA,EAAA;AACA,IAAA,MAAA,WAAA,CAAA;AAAA,MACA,UAAA,EAAA,GAAA;AAAA,MACA,aAAA,EAAA;AAAA,KACA,CAAA;AAAA,EACA;AAEA,EAAA,IAAA;AACA,IAAA,OAAA,MAAA,aAAA,CAAA,IAAA,EAAA,OAAA,CAAA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,MAAA,WAAA,CAAA;AAAA,MACA,UAAA,EAAA,GAAA;AAAA,MACA,aAAA,EAAA,2BAAA;AAAA,MACA,SAAA,KAAA,CAAA,OAAA,CAAA,QAAA,MAAA,EAAA,GAAA,EAAA,IAAA;AAAA,KACA,CAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}
|