spec-cat 0.1.21 → 0.1.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{DqNujSig.js → B6Qdx9x3.js} +1 -1
  3. package/.output/public/_nuxt/BDt4jGdk.js +1 -0
  4. package/.output/public/_nuxt/CXlw6va7.js +1 -0
  5. package/.output/public/_nuxt/{N3ZxlKm3.js → CXuoBUW5.js} +1 -1
  6. package/.output/public/_nuxt/Ce5fR5lE.js +150 -0
  7. package/.output/public/_nuxt/CnyGP5yJ.js +1 -0
  8. package/.output/public/_nuxt/D2jWy6Yv.js +1 -0
  9. package/.output/public/_nuxt/DYq0avGL.js +1 -0
  10. package/.output/public/_nuxt/DuDc88rI.js +1 -0
  11. package/.output/public/_nuxt/{qt0TxNaY.js → NsKpYGKU.js} +1 -1
  12. package/.output/public/_nuxt/builds/latest.json +1 -1
  13. package/.output/public/_nuxt/builds/meta/23707bc3-d223-45cd-b9db-ffcc7aca2680.json +1 -0
  14. package/.output/public/_nuxt/default.eSO6fRPf.css +1 -0
  15. package/.output/public/_nuxt/entry.BtencOYX.css +1 -0
  16. package/.output/public/_nuxt/hWTomhWa.js +1 -0
  17. package/.output/public/_nuxt/useTheme.CYXKgjUm.css +1 -0
  18. package/.output/public/_nuxt/{DUodkQcr.js → xDSloGc6.js} +3 -3
  19. package/.output/public/_nuxt/z5m_gN1E.js +1 -0
  20. package/.output/server/chunks/_/git.mjs +7 -6
  21. package/.output/server/chunks/_/git.mjs.map +1 -1
  22. package/.output/server/chunks/_/git2.mjs.map +1 -1
  23. package/.output/server/chunks/_/gitApiHelpers.mjs +43 -0
  24. package/.output/server/chunks/_/gitApiHelpers.mjs.map +1 -0
  25. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  26. package/.output/server/chunks/build/client.precomputed.mjs.map +1 -1
  27. package/.output/server/chunks/nitro/nitro.mjs +676 -648
  28. package/.output/server/chunks/routes/api/git/branch-rename.post.mjs +5 -18
  29. package/.output/server/chunks/routes/api/git/branch-rename.post.mjs.map +1 -1
  30. package/.output/server/chunks/routes/api/git/branch.delete.mjs +5 -18
  31. package/.output/server/chunks/routes/api/git/branch.delete.mjs.map +1 -1
  32. package/.output/server/chunks/routes/api/git/branches.get.mjs +5 -18
  33. package/.output/server/chunks/routes/api/git/branches.get.mjs.map +1 -1
  34. package/.output/server/chunks/routes/api/git/checkout.post.mjs +5 -19
  35. package/.output/server/chunks/routes/api/git/checkout.post.mjs.map +1 -1
  36. package/.output/server/chunks/routes/api/git/cherry-pick.post.mjs +5 -18
  37. package/.output/server/chunks/routes/api/git/cherry-pick.post.mjs.map +1 -1
  38. package/.output/server/chunks/routes/api/git/clean.post.mjs +5 -19
  39. package/.output/server/chunks/routes/api/git/clean.post.mjs.map +1 -1
  40. package/.output/server/chunks/routes/api/git/commit/_id_.get.mjs +23 -26
  41. package/.output/server/chunks/routes/api/git/commit/_id_.get.mjs.map +1 -1
  42. package/.output/server/chunks/routes/api/git/commit.post.mjs +5 -19
  43. package/.output/server/chunks/routes/api/git/commit.post.mjs.map +1 -1
  44. package/.output/server/chunks/routes/api/git/diff.get.mjs +5 -24
  45. package/.output/server/chunks/routes/api/git/diff.get.mjs.map +1 -1
  46. package/.output/server/chunks/routes/api/git/fetch.post.mjs +5 -18
  47. package/.output/server/chunks/routes/api/git/fetch.post.mjs.map +1 -1
  48. package/.output/server/chunks/routes/api/git/file-diff.get.mjs +5 -24
  49. package/.output/server/chunks/routes/api/git/file-diff.get.mjs.map +1 -1
  50. package/.output/server/chunks/routes/api/git/graph.get.mjs +9 -20
  51. package/.output/server/chunks/routes/api/git/graph.get.mjs.map +1 -1
  52. package/.output/server/chunks/routes/api/git/log.get.mjs +5 -24
  53. package/.output/server/chunks/routes/api/git/log.get.mjs.map +1 -1
  54. package/.output/server/chunks/routes/api/git/merge-base.get.mjs +5 -24
  55. package/.output/server/chunks/routes/api/git/merge-base.get.mjs.map +1 -1
  56. package/.output/server/chunks/routes/api/git/merge.post.mjs +5 -18
  57. package/.output/server/chunks/routes/api/git/merge.post.mjs.map +1 -1
  58. package/.output/server/chunks/routes/api/git/pull.post.mjs +14 -26
  59. package/.output/server/chunks/routes/api/git/pull.post.mjs.map +1 -1
  60. package/.output/server/chunks/routes/api/git/push.post.mjs +15 -27
  61. package/.output/server/chunks/routes/api/git/push.post.mjs.map +1 -1
  62. package/.output/server/chunks/routes/api/git/rebase.post.mjs +10 -22
  63. package/.output/server/chunks/routes/api/git/rebase.post.mjs.map +1 -1
  64. package/.output/server/chunks/routes/api/git/remote.delete.mjs +5 -18
  65. package/.output/server/chunks/routes/api/git/remote.delete.mjs.map +1 -1
  66. package/.output/server/chunks/routes/api/git/remote.post.mjs +10 -22
  67. package/.output/server/chunks/routes/api/git/remote.post.mjs.map +1 -1
  68. package/.output/server/chunks/routes/api/git/remote.put.mjs +5 -18
  69. package/.output/server/chunks/routes/api/git/remote.put.mjs.map +1 -1
  70. package/.output/server/chunks/routes/api/git/remotes.get.mjs +5 -18
  71. package/.output/server/chunks/routes/api/git/remotes.get.mjs.map +1 -1
  72. package/.output/server/chunks/routes/api/git/reset.post.mjs +12 -24
  73. package/.output/server/chunks/routes/api/git/reset.post.mjs.map +1 -1
  74. package/.output/server/chunks/routes/api/git/revert.post.mjs +5 -18
  75. package/.output/server/chunks/routes/api/git/revert.post.mjs.map +1 -1
  76. package/.output/server/chunks/routes/api/git/show.get.mjs +5 -24
  77. package/.output/server/chunks/routes/api/git/show.get.mjs.map +1 -1
  78. package/.output/server/chunks/routes/api/git/stage.post.mjs +9 -22
  79. package/.output/server/chunks/routes/api/git/stage.post.mjs.map +1 -1
  80. package/.output/server/chunks/routes/api/git/stash-apply.post.mjs +5 -19
  81. package/.output/server/chunks/routes/api/git/stash-apply.post.mjs.map +1 -1
  82. package/.output/server/chunks/routes/api/git/stash-branch.post.mjs +5 -19
  83. package/.output/server/chunks/routes/api/git/stash-branch.post.mjs.map +1 -1
  84. package/.output/server/chunks/routes/api/git/stash-drop.post.mjs +5 -19
  85. package/.output/server/chunks/routes/api/git/stash-drop.post.mjs.map +1 -1
  86. package/.output/server/chunks/routes/api/git/stash-pop.post.mjs +5 -19
  87. package/.output/server/chunks/routes/api/git/stash-pop.post.mjs.map +1 -1
  88. package/.output/server/chunks/routes/api/git/stash.get.mjs +5 -25
  89. package/.output/server/chunks/routes/api/git/stash.get.mjs.map +1 -1
  90. package/.output/server/chunks/routes/api/git/stash.post.mjs +5 -19
  91. package/.output/server/chunks/routes/api/git/stash.post.mjs.map +1 -1
  92. package/.output/server/chunks/routes/api/git/state.get.mjs +5 -25
  93. package/.output/server/chunks/routes/api/git/state.get.mjs.map +1 -1
  94. package/.output/server/chunks/routes/api/git/status.get.mjs +5 -25
  95. package/.output/server/chunks/routes/api/git/status.get.mjs.map +1 -1
  96. package/.output/server/chunks/routes/api/git/tag/_name_.get.mjs +5 -18
  97. package/.output/server/chunks/routes/api/git/tag/_name_.get.mjs.map +1 -1
  98. package/.output/server/chunks/routes/api/git/tag-push.post.mjs +10 -22
  99. package/.output/server/chunks/routes/api/git/tag-push.post.mjs.map +1 -1
  100. package/.output/server/chunks/routes/api/git/tag.delete.mjs +5 -18
  101. package/.output/server/chunks/routes/api/git/tag.delete.mjs.map +1 -1
  102. package/.output/server/chunks/routes/api/git/tag.post.mjs +17 -29
  103. package/.output/server/chunks/routes/api/git/tag.post.mjs.map +1 -1
  104. package/.output/server/chunks/routes/api/git/unstage.post.mjs +5 -19
  105. package/.output/server/chunks/routes/api/git/unstage.post.mjs.map +1 -1
  106. package/.output/server/chunks/routes/api/repository/status.get.mjs +1 -1
  107. package/.output/server/package.json +1 -1
  108. package/package.json +1 -1
  109. package/.output/public/_nuxt/BIw1AQHU.js +0 -150
  110. package/.output/public/_nuxt/DBtLi_wJ.js +0 -1
  111. package/.output/public/_nuxt/DSDWvT5-.js +0 -1
  112. package/.output/public/_nuxt/K5rMM4le.js +0 -1
  113. package/.output/public/_nuxt/builds/meta/c0768eef-2dd5-410c-8648-edbd9e6c218c.json +0 -1
  114. package/.output/public/_nuxt/ddKcAgQK.js +0 -1
  115. package/.output/public/_nuxt/default.CZoNL3P_.css +0 -1
  116. package/.output/public/_nuxt/entry.DLBgeD7S.css +0 -1
  117. package/.output/public/_nuxt/sxXWehCn.js +0 -1
@@ -1,5 +1,6 @@
1
- import { d as defineEventHandler, f as getQuery, c as createError, l as logger } from '../../../nitro/nitro.mjs';
2
- import { i as isGitRepositorySync, m as getFileDiff } from '../../../_/git.mjs';
1
+ import { d as defineEventHandler, f as getQuery, c as createError } from '../../../nitro/nitro.mjs';
2
+ import { l as getFileDiff } from '../../../_/git.mjs';
3
+ import { a as resolveWorkingDirectoryFromQuery, h as handleGitApiError } from '../../../_/gitApiHelpers.mjs';
3
4
  import 'node:http';
4
5
  import 'node:https';
5
6
  import 'node:crypto';
@@ -26,17 +27,11 @@ import 'util';
26
27
 
27
28
  const fileDiff_get = defineEventHandler(async (event) => {
28
29
  try {
30
+ const workingDirectory = resolveWorkingDirectoryFromQuery(event);
29
31
  const query = getQuery(event);
30
- const workingDirectory = query.workingDirectory;
31
32
  const commitHash = query.commitHash;
32
33
  const filePath = query.filePath;
33
34
  const parentHash = query.parentHash;
34
- if (!workingDirectory) {
35
- throw createError({
36
- statusCode: 400,
37
- statusMessage: "workingDirectory query parameter is required"
38
- });
39
- }
40
35
  if (!commitHash) {
41
36
  throw createError({
42
37
  statusCode: 400,
@@ -49,13 +44,6 @@ const fileDiff_get = defineEventHandler(async (event) => {
49
44
  statusMessage: "filePath query parameter is required"
50
45
  });
51
46
  }
52
- if (!isGitRepositorySync(workingDirectory)) {
53
- throw createError({
54
- statusCode: 400,
55
- statusMessage: "Not a Git repository",
56
- data: { code: "NOT_GIT_REPO" }
57
- });
58
- }
59
47
  try {
60
48
  return getFileDiff(workingDirectory, commitHash, filePath, parentHash || void 0);
61
49
  } catch (gitError) {
@@ -66,14 +54,7 @@ const fileDiff_get = defineEventHandler(async (event) => {
66
54
  });
67
55
  }
68
56
  } catch (error) {
69
- if (error && typeof error === "object" && "statusCode" in error) {
70
- throw error;
71
- }
72
- logger.api.error("Error getting file diff", { error });
73
- throw createError({
74
- statusCode: 500,
75
- statusMessage: "Failed to get file diff"
76
- });
57
+ handleGitApiError(error, "Error getting file diff", "Failed to get file diff");
77
58
  }
78
59
  });
79
60
 
@@ -1 +1 @@
1
- {"version":3,"file":"file-diff.get.mjs","sources":["../../../../../../server/api/git/file-diff.get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,qBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,KAAA,GAAA,SAAA,KAAA,CAAA;AACA,IAAA,MAAA,mBAAA,KAAA,CAAA,gBAAA;AACA,IAAA,MAAA,aAAA,KAAA,CAAA,UAAA;AACA,IAAA,MAAA,WAAA,KAAA,CAAA,QAAA;AACA,IAAA,MAAA,aAAA,KAAA,CAAA,UAAA;AAEA,IAAA,IAAA,CAAA,gBAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,IAAA,CAAA,UAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,IAAA,CAAA,QAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,IAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA,sBAAA;AAAA,QACA,IAAA,EAAA,EAAA,IAAA,EAAA,cAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,IAAA;AACA,MAAA,OAAA,WAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,QAAA,EAAA,cAAA,KAAA,CAAA,CAAA;AAAA,IACA,SAAA,QAAA,EAAA;AACA,MAAA,MAAA,YAAA,GAAA,QAAA,YAAA,KAAA,GAAA,QAAA,CAAA,OAAA,GAAA,eAAA;AAEA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA,qBAAA,YAAA,CAAA;AAAA,OACA,CAAA;AAAA,IACA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,IAAA,KAAA,IAAA,OAAA,KAAA,KAAA,QAAA,IAAA,gBAAA,KAAA,EAAA;AACA,MAAA,MAAA,KAAA;AAAA,IACA;AAEA,IAAA,MAAA,CAAA,GAAA,CAAA,KAAA,CAAA,yBAAA,EAAA,EAAA,OAAA,CAAA;AACA,IAAA,MAAA,WAAA,CAAA;AAAA,MACA,UAAA,EAAA,GAAA;AAAA,MACA,aAAA,EAAA;AAAA,KACA,CAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"file-diff.get.mjs","sources":["../../../../../../server/api/git/file-diff.get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,qBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,gBAAA,GAAA,iCAAA,KAAA,CAAA;AACA,IAAA,MAAA,KAAA,GAAA,SAAA,KAAA,CAAA;AACA,IAAA,MAAA,aAAA,KAAA,CAAA,UAAA;AACA,IAAA,MAAA,WAAA,KAAA,CAAA,QAAA;AACA,IAAA,MAAA,aAAA,KAAA,CAAA,UAAA;AAEA,IAAA,IAAA,CAAA,UAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,IAAA,CAAA,QAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,IAAA;AACA,MAAA,OAAA,WAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,QAAA,EAAA,cAAA,KAAA,CAAA,CAAA;AAAA,IACA,SAAA,QAAA,EAAA;AACA,MAAA,MAAA,YAAA,GAAA,QAAA,YAAA,KAAA,GAAA,QAAA,CAAA,OAAA,GAAA,eAAA;AAEA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA,qBAAA,YAAA,CAAA;AAAA,OACA,CAAA;AAAA,IACA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,iBAAA,CAAA,KAAA,EAAA,2BAAA,yBAAA,CAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}
@@ -1,5 +1,6 @@
1
- import { d as defineEventHandler, f as getQuery, e as getProjectDir, c as createError } from '../../../nitro/nitro.mjs';
2
- import { a as isGitRepository, n as getCommitHistory, b as execGitCommand, g as generateBranchColor } from '../../../_/git.mjs';
1
+ import { d as defineEventHandler, f as getQuery, c as createError } from '../../../nitro/nitro.mjs';
2
+ import { m as getCommitHistory, a as execGitCommand, g as generateBranchColor } from '../../../_/git.mjs';
3
+ import { a as resolveWorkingDirectoryFromQuery, h as handleGitApiError } from '../../../_/gitApiHelpers.mjs';
3
4
  import 'node:http';
4
5
  import 'node:https';
5
6
  import 'node:crypto';
@@ -24,18 +25,14 @@ import 'node:url';
24
25
  import 'child_process';
25
26
  import 'util';
26
27
 
28
+ const DEFAULT_COMMIT_LIMIT = 300;
29
+ const MAX_COMMIT_LIMIT = 500;
27
30
  const graph_get = defineEventHandler(async (event) => {
28
31
  const query = getQuery(event);
29
32
  try {
30
- const cwd = getProjectDir();
31
- if (!await isGitRepository(cwd)) {
32
- throw createError({
33
- statusCode: 400,
34
- statusMessage: "Not a valid git repository"
35
- });
36
- }
33
+ const cwd = resolveWorkingDirectoryFromQuery(event);
37
34
  const {
38
- limit = 300,
35
+ limit = DEFAULT_COMMIT_LIMIT,
39
36
  offset = 0,
40
37
  branch,
41
38
  author,
@@ -43,7 +40,7 @@ const graph_get = defineEventHandler(async (event) => {
43
40
  since,
44
41
  until
45
42
  } = query;
46
- if (limit && (limit < 1 || limit > 500)) {
43
+ if (limit && (limit < 1 || limit > MAX_COMMIT_LIMIT)) {
47
44
  throw createError({
48
45
  statusCode: 400,
49
46
  statusMessage: "Limit must be between 1 and 500"
@@ -84,15 +81,7 @@ const graph_get = defineEventHandler(async (event) => {
84
81
  };
85
82
  return response;
86
83
  } catch (error) {
87
- if (error.statusCode) {
88
- throw error;
89
- }
90
- console.error("Git graph API error:", error);
91
- throw createError({
92
- statusCode: 500,
93
- statusMessage: "Failed to retrieve git graph data",
94
- data: { error: error.message }
95
- });
84
+ handleGitApiError(error, "Git graph API error", "Failed to retrieve git graph data");
96
85
  }
97
86
  });
98
87
  async function getBranchesFromRepo(cwd) {
@@ -1 +1 @@
1
- {"version":3,"file":"graph.get.mjs","sources":["../../../../../../server/api/git/graph.get.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph.get.mjs","sources":["../../../../../../server/api/git/graph.get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAA,oBAAA,GAAA,GAAA;AACA,MAAA,gBAAA,GAAA,GAAA;AAEA,kBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,MAAA,KAAA,GAAA,SAAA,KAAA,CAAA;AAEA,EAAA,IAAA;AACA,IAAA,MAAA,GAAA,GAAA,iCAAA,KAAA,CAAA;AAGA,IAAA,MAAA;AAAA,MACA,KAAA,GAAA,oBAAA;AAAA,MACA,MAAA,GAAA,CAAA;AAAA,MACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACA,GAAA,KAAA;AAGA,IAAA,IAAA,KAAA,KAAA,KAAA,GAAA,CAAA,IAAA,KAAA,GAAA,gBAAA,CAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,IAAA,MAAA,IAAA,SAAA,CAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAGA,IAAA,MAAA,CAAA,OAAA,EAAA,QAAA,EAAA,YAAA,CAAA,GAAA,MAAA,QAAA,GAAA,CAAA;AAAA,MACA,gBAAA,CAAA,EAAA,KAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,MAAA,EAAA,KAAA,EAAA,KAAA,EAAA,GAAA,EAAA,CAAA;AAAA,MACA,oBAAA,GAAA,CAAA;AAAA,MACA,oBAAA,GAAA;AAAA,KACA,CAAA;AAGA,IAAA,MAAA,OAAA,GAAA,MAAA,GAAA,OAAA,CAAA,MAAA,GAAA,YAAA;AAGA,IAAA,MAAA,WAAA,GAAA;AAAA,MACA,YAAA;AAAA,MACA,QAAA,EAAA,IAAA,CAAA,GAAA,CAAA,QAAA,CAAA,QAAA,EAAA,CAAA;AAAA;AAAA,MACA,iBAAA,EAAA;AAAA,QACA,QAAA,IAAA,CAAA,GAAA,CAAA,OAAA,CAAA,MAAA,GAAA,IAAA,GAAA,CAAA;AAAA;AAAA,QACA,cAAA,EAAA;AAAA;AACA,KACA;AAEA,IAAA,MAAA,QAAA,GAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,MACA,UAAA,EAAA;AAAA,QACA,MAAA;AAAA,QACA,KAAA;AAAA,QACA,KAAA,EAAA,YAAA;AAAA,QACA;AAAA,OACA;AAAA,MACA,YAAA,EAAA;AAAA,KACA;AAEA,IAAA,OAAA,QAAA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,iBAAA,CAAA,KAAA,EAAA,uBAAA,mCAAA,CAAA;AAAA,EACA;AACA,CAAA,CAAA;AAEA,eAAA,oBAAA,GAAA,EAAA;AACA,EAAA,MAAA,MAAA,GAAA,MAAA,cAAA,CAAA,CAAA,UAAA,KAAA,EAAA,OAAA,GAAA,GAAA,CAAA;AACA,EAAA,MAAA,QAAA,MAAA,CAAA,KAAA,CAAA,IAAA,CAAA,CAAA,OAAA,OAAA,CAAA;AAEA,EAAA,MAAA,WAAA,EAAA;AAEA,EAAA,KAAA,MAAA,QAAA,KAAA,EAAA;AACA,IAAA,MAAA,WAAA,GAAA,KAAA,IAAA,EAAA;AACA,IAAA,MAAA,MAAA,GAAA,WAAA,CAAA,UAAA,CAAA,GAAA,CAAA;AACA,IAAA,MAAA,iBAAA,GAAA,WAAA,CAAA,OAAA,CAAA,SAAA,EAAA,EAAA,CAAA;AAEA,IAAA,MAAA,KAAA,GAAA,iBAAA,CAAA,KAAA,CAAA,KAAA,CAAA;AACA,IAAA,IAAA,KAAA,CAAA,SAAA,CAAA,EAAA;AAEA,IAAA,MAAA,CAAA,IAAA,EAAA,GAAA,CAAA,GAAA,KAAA;AACA,IAAA,MAAA,QAAA,GAAA,IAAA,CAAA,UAAA,CAAA,UAAA,CAAA;AAEA,IAAA,IAAA,SAAA,MAAA,IAAA,CAAA,IAAA,CAAA,QAAA,CAAA,IAAA,CAAA,EAAA;AACA,MAAA,MAAA,YAAA,QAAA,GAAA,IAAA,CAAA,OAAA,CAAA,UAAA,EAAA,EAAA,CAAA,GAAA,IAAA;AAGA,MAAA,IAAA,cAAA,GAAA,iBAAA,IAAA,IAAA,EAAA,EAAA,WAAA,EAAA;AACA,MAAA,IAAA;AACA,QAAA,MAAA,UAAA,GAAA,MAAA,cAAA,CAAA,CAAA,QAAA,IAAA,EAAA,cAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA;AACA,QAAA,cAAA,GAAA,IAAA,IAAA,CAAA,UAAA,CAAA,IAAA,EAAA,EAAA,WAAA,EAAA;AAAA,MACA,CAAA,CAAA,MAAA;AAAA,MAEA;AAEA,MAAA,QAAA,CAAA,IAAA,CAAA;AAAA,QACA,IAAA,EAAA,SAAA;AAAA,QACA,GAAA,EAAA,QAAA,GAAA,IAAA,GAAA,CAAA,WAAA,EAAA,IAAA,CAAA,CAAA;AAAA,QACA,GAAA;AAAA,QACA,KAAA,EAAA,CAAA;AAAA,QACA,MAAA,EAAA,CAAA;AAAA,QACA,KAAA,EAAA,oBAAA,SAAA,CAAA;AAAA,QACA,MAAA,EAAA,UAAA,CAAA,QAAA;AAAA,QACA,QAAA;AAAA,QACA;AAAA,OACA,CAAA;AAAA,IACA;AAAA,EACA;AAEA,EAAA,OAAA,QAAA;AACA;AAEA,eAAA,oBAAA,GAAA,EAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,MAAA,GAAA,MAAA,cAAA,CAAA,CAAA,YAAA,OAAA,EAAA,SAAA,GAAA,GAAA,CAAA;AACA,IAAA,OAAA,QAAA,CAAA,MAAA,CAAA,IAAA,EAAA,EAAA,EAAA,CAAA,IAAA,CAAA;AAAA,EACA,CAAA,CAAA,MAAA;AACA,IAAA,OAAA,CAAA;AAAA,EACA;AACA;;;;"}
@@ -1,6 +1,7 @@
1
- import { d as defineEventHandler, f as getQuery, c as createError, l as logger } from '../../../nitro/nitro.mjs';
1
+ import { d as defineEventHandler, f as getQuery, l as logger } from '../../../nitro/nitro.mjs';
2
2
  import { G as GRAPH_CONSTANTS } from '../../../_/git2.mjs';
3
- import { i as isGitRepositorySync, o as getBranchesSync, p as getTags, q as getCommitCount, d as execGit, s as parseGitLog, g as generateBranchColor } from '../../../_/git.mjs';
3
+ import { n as getBranchesSync, o as getTags, p as getCommitCount, c as execGit, q as parseGitLog, g as generateBranchColor } from '../../../_/git.mjs';
4
+ import { a as resolveWorkingDirectoryFromQuery, h as handleGitApiError } from '../../../_/gitApiHelpers.mjs';
4
5
  import 'node:http';
5
6
  import 'node:https';
6
7
  import 'node:crypto';
@@ -27,23 +28,10 @@ import 'util';
27
28
 
28
29
  const log_get = defineEventHandler(async (event) => {
29
30
  try {
31
+ const workingDirectory = resolveWorkingDirectoryFromQuery(event);
30
32
  const query = getQuery(event);
31
- const workingDirectory = query.workingDirectory;
32
33
  const offset = parseInt(query.offset, 10) || 0;
33
34
  const limit = parseInt(query.limit, 10) || GRAPH_CONSTANTS.COMMITS_PER_PAGE;
34
- if (!workingDirectory) {
35
- throw createError({
36
- statusCode: 400,
37
- statusMessage: "workingDirectory query parameter is required"
38
- });
39
- }
40
- if (!isGitRepositorySync(workingDirectory)) {
41
- throw createError({
42
- statusCode: 400,
43
- statusMessage: "Not a Git repository",
44
- data: { code: "NOT_GIT_REPO" }
45
- });
46
- }
47
35
  const branchNames = getBranchesSync(workingDirectory);
48
36
  const tagNames = getTags(workingDirectory);
49
37
  const totalCount = getCommitCount(workingDirectory);
@@ -107,14 +95,7 @@ const log_get = defineEventHandler(async (event) => {
107
95
  };
108
96
  return response;
109
97
  } catch (error) {
110
- if (error && typeof error === "object" && "statusCode" in error) {
111
- throw error;
112
- }
113
- logger.api.error("Error reading git log", { error });
114
- throw createError({
115
- statusCode: 500,
116
- statusMessage: "Failed to read git log"
117
- });
98
+ handleGitApiError(error, "Error reading git log", "Failed to read git log");
118
99
  }
119
100
  });
120
101
  function getBranchCommitMap(cwd) {
@@ -1 +1 @@
1
- {"version":3,"file":"log.get.mjs","sources":["../../../../../../server/api/git/log.get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,gBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,KAAA,GAAA,SAAA,KAAA,CAAA;AACA,IAAA,MAAA,mBAAA,KAAA,CAAA,gBAAA;AACA,IAAA,MAAA,MAAA,GAAA,QAAA,CAAA,KAAA,CAAA,MAAA,EAAA,EAAA,CAAA,IAAA,CAAA;AACA,IAAA,MAAA,QAAA,QAAA,CAAA,KAAA,CAAA,KAAA,EAAA,EAAA,KAAA,eAAA,CAAA,gBAAA;AAEA,IAAA,IAAA,CAAA,gBAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAGA,IAAA,IAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA,sBAAA;AAAA,QACA,IAAA,EAAA,EAAA,IAAA,EAAA,cAAA;AAAA,OACA,CAAA;AAAA,IACA;AAGA,IAAA,MAAA,WAAA,GAAA,gBAAA,gBAAA,CAAA;AACA,IAAA,MAAA,QAAA,GAAA,QAAA,gBAAA,CAAA;AACA,IAAA,MAAA,UAAA,GAAA,eAAA,gBAAA,CAAA;AAGA,IAAA,MAAA,QAAA,GAAA,OAAA,CAAA,gBAAA,EAAA,gBAAA,EAAA,IAAA,EAAA;AAGA,IAAA,MAAA,EAAA,SAAA,EAAA,cAAA,EAAA,aAAA,EAAA,GAAA,mBAAA,gBAAA,CAAA;AAGA,IAAA,MAAA,WAAA,GAAA,gBAAA,gBAAA,CAAA;AAIA,IAAA,MAAA,SAAA,GAAA,OAAA;AAAA,MACA,gBAAA;AAAA,MACA,CAAA,oDAAA,EAAA,MAAA,CAAA,IAAA,EAAA,KAAA,CAAA;AAAA,KACA;AAEA,IAAA,MAAA,OAAA,GAAA,WAAA,CAAA,SAAA,EAAA,WAAA,EAAA,QAAA,CAAA;AAGA,IAAA,MAAA,gBAAA,uBAAA,GAAA,EAAA;AACA,IAAA,MAAA,YAAA,uBAAA,GAAA,EAAA;AAEA,IAAA,KAAA,MAAA,CAAA,MAAA,EAAA,IAAA,CAAA,IAAA,cAAA,EAAA;AACA,MAAA,IAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,IAAA,CAAA,EAAA;AACA,QAAA,gBAAA,CAAA,GAAA,CAAA,IAAA,EAAA,EAAA,CAAA;AAAA,MACA;AACA,MAAA,gBAAA,CAAA,GAAA,CAAA,IAAA,CAAA,CAAA,IAAA,CAAA,MAAA,CAAA;AAAA,IACA;AAEA,IAAA,KAAA,MAAA,CAAA,GAAA,EAAA,IAAA,CAAA,IAAA,WAAA,EAAA;AACA,MAAA,IAAA,CAAA,YAAA,CAAA,GAAA,CAAA,IAAA,CAAA,EAAA;AACA,QAAA,YAAA,CAAA,GAAA,CAAA,IAAA,EAAA,EAAA,CAAA;AAAA,MACA;AACA,MAAA,YAAA,CAAA,GAAA,CAAA,IAAA,CAAA,CAAA,IAAA,CAAA,GAAA,CAAA;AAAA,IACA;AAGA,IAAA,KAAA,MAAA,UAAA,OAAA,EAAA;AACA,MAAA,MAAA,CAAA,WAAA,gBAAA,CAAA,GAAA,CAAA,MAAA,CAAA,IAAA,KAAA,EAAA;AACA,MAAA,MAAA,CAAA,OAAA,YAAA,CAAA,GAAA,CAAA,MAAA,CAAA,IAAA,KAAA,EAAA;AACA,MAAA,IAAA,MAAA,CAAA,SAAA,QAAA,EAAA;AACA,QAAA,MAAA,CAAA,MAAA,GAAA,IAAA;AAAA,MACA;AAEA,MAAA,IAAA,MAAA,CAAA,OAAA,IAAA,MAAA,CAAA,OAAA,CAAA,SAAA,CAAA,EAAA;AACA,QAAA,MAAA,CAAA,OAAA,GAAA,IAAA;AAAA,MACA;AAAA,IACA;AAEA,IAAA,MAAA,OAAA,GAAA,MAAA,GAAA,OAAA,CAAA,MAAA,GAAA,UAAA;AAEA,IAAA,MAAA,UAAA,GAAA,OAAA,CAAA,gBAAA,EAAA,6BAAA,EAAA,IAAA,EAAA;AACA,IAAA,MAAA,QAAA,GAAA,WAAA,CAAA,GAAA,CAAA,CAAA,IAAA,MAAA;AAAA,MACA,IAAA;AAAA,MACA,GAAA,EAAA,cAAA,GAAA,CAAA,IAAA,IAAA,CAAA,WAAA,EAAA,IAAA,CAAA,CAAA,GAAA,CAAA,aAAA,EAAA,IAAA,CAAA,CAAA;AAAA,MACA,GAAA,EAAA,cAAA,CAAA,GAAA,CAAA,IAAA,CAAA,IAAA,EAAA;AAAA,MACA,KAAA,EAAA,CAAA;AAAA,MACA,MAAA,EAAA,CAAA;AAAA,MACA,KAAA,EAAA,oBAAA,IAAA,CAAA;AAAA,MACA,QAAA,IAAA,KAAA,UAAA;AAAA,MACA,QAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,IAAA,CAAA;AAAA,MACA,cAAA,EAAA,iBAAA,IAAA,IAAA,CAAA,CAAA,GAAA,WAAA;AAAA,KACA,CAAA,CAAA;AAEA,IAAA,MAAA,IAAA,GAAA,QAAA,CAAA,GAAA,CAAA,CAAA,IAAA,MAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA,EAAA,WAAA,CAAA,GAAA,CAAA,IAAA,CAAA,IAAA,EAAA;AAAA,MACA,WAAA,EAAA;AAAA,KACA,CAAA,CAAA;AAEA,IAAA,MAAA,QAAA,GAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,MACA,IAAA;AAAA,MACA,aAAA,EAAA,KAAA,CAAA,IAAA,CAAA,aAAA,CAAA;AAAA,MACA,OAAA;AAAA,MACA;AAAA,KACA;AAEA,IAAA,OAAA,QAAA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,IAAA,KAAA,IAAA,OAAA,KAAA,KAAA,QAAA,IAAA,gBAAA,KAAA,EAAA;AACA,MAAA,MAAA,KAAA;AAAA,IACA;AAEA,IAAA,MAAA,CAAA,GAAA,CAAA,KAAA,CAAA,uBAAA,EAAA,EAAA,OAAA,CAAA;AACA,IAAA,MAAA,WAAA,CAAA;AAAA,MACA,UAAA,EAAA,GAAA;AAAA,MACA,aAAA,EAAA;AAAA,KACA,CAAA;AAAA,EACA;AACA,CAAA,CAAA;AAKA,SAAA,mBAAA,GAAA,EAAA;AACA,EAAA,MAAA,SAAA,uBAAA,GAAA,EAAA;AACA,EAAA,MAAA,aAAA,uBAAA,GAAA,EAAA;AAEA,EAAA,IAAA;AAGA,IAAA,MAAA,MAAA,GAAA,OAAA,CAAA,GAAA,EAAA,2FAAA,CAAA;AAEA,IAAA,KAAA,MAAA,QAAA,MAAA,CAAA,KAAA,CAAA,IAAA,CAAA,CAAA,MAAA,CAAA,OAAA,CAAA,EAAA;AACA,MAAA,MAAA,KAAA,GAAA,IAAA,CAAA,KAAA,CAAA,GAAA,CAAA;AACA,MAAA,IAAA,KAAA,CAAA,UAAA,CAAA,EAAA;AACA,QAAA,MAAA,IAAA,GAAA,MAAA,CAAA,CAAA;AACA,QAAA,MAAA,OAAA,GAAA,MAAA,CAAA,CAAA;AACA,QAAA,MAAA,YAAA,KAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,KAAA,GAAA,CAAA;AAEA,QAAA,IAAA,CAAA,OAAA,CAAA,QAAA,CAAA,OAAA,CAAA,EAAA;AACA,UAAA,SAAA,CAAA,GAAA,CAAA,WAAA,IAAA,CAAA;AAEA,UAAA,IAAA,OAAA,CAAA,UAAA,CAAA,aAAA,CAAA,EAAA;AACA,YAAA,aAAA,CAAA,IAAA,SAAA,CAAA;AAAA,UACA;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA,EACA,SAAA,GAAA,EAAA;AACA,IAAA,MAAA,CAAA,IAAA,KAAA,CAAA,iCAAA,EAAA,EAAA,KAAA,EAAA,KAAA,CAAA;AAAA,EACA;AAEA,EAAA,OAAA,EAAA,WAAA,aAAA,EAAA;AACA;AAKA,SAAA,gBAAA,GAAA,EAAA;AACA,EAAA,MAAA,MAAA,uBAAA,GAAA,EAAA;AAEA,EAAA,IAAA;AAEA,IAAA,MAAA,MAAA,GAAA,OAAA,CAAA,GAAA,EAAA,kEAAA,CAAA;AAEA,IAAA,KAAA,MAAA,QAAA,MAAA,CAAA,KAAA,CAAA,IAAA,CAAA,CAAA,MAAA,CAAA,OAAA,CAAA,EAAA;AACA,MAAA,MAAA,UAAA,GAAA,IAAA,CAAA,OAAA,CAAA,GAAA,CAAA;AACA,MAAA,IAAA,aAAA,CAAA,EAAA;AACA,QAAA,MAAA,IAAA,GAAA,IAAA,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,CAAA;AACA,QAAA,MAAA,GAAA,GAAA,IAAA,CAAA,SAAA,CAAA,UAAA,GAAA,CAAA,CAAA;AACA,QAAA,MAAA,CAAA,GAAA,CAAA,KAAA,IAAA,CAAA;AAAA,MACA;AAAA,IACA;AAAA,EACA,SAAA,GAAA,EAAA;AACA,IAAA,MAAA,CAAA,IAAA,KAAA,CAAA,8BAAA,EAAA,EAAA,KAAA,EAAA,KAAA,CAAA;AAAA,EACA;AAEA,EAAA,OAAA,MAAA;AACA;;;;"}
1
+ {"version":3,"file":"log.get.mjs","sources":["../../../../../../server/api/git/log.get.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import { d as defineEventHandler, f as getQuery, c as createError, l as logger } from '../../../nitro/nitro.mjs';
2
- import { i as isGitRepositorySync, t as getMergeBase, b as execGitCommand } from '../../../_/git.mjs';
1
+ import { d as defineEventHandler, f as getQuery, c as createError } from '../../../nitro/nitro.mjs';
2
+ import { s as getMergeBase, a as execGitCommand } from '../../../_/git.mjs';
3
+ import { a as resolveWorkingDirectoryFromQuery, h as handleGitApiError } from '../../../_/gitApiHelpers.mjs';
3
4
  import 'node:http';
4
5
  import 'node:https';
5
6
  import 'node:crypto';
@@ -26,29 +27,16 @@ import 'util';
26
27
 
27
28
  const mergeBase_get = defineEventHandler(async (event) => {
28
29
  try {
30
+ const workingDirectory = resolveWorkingDirectoryFromQuery(event);
29
31
  const query = getQuery(event);
30
- const workingDirectory = query.workingDirectory;
31
32
  const branch = query.branch;
32
33
  const requestedBaseBranch = query.baseBranch;
33
- if (!workingDirectory) {
34
- throw createError({
35
- statusCode: 400,
36
- statusMessage: "workingDirectory query parameter is required"
37
- });
38
- }
39
34
  if (!branch) {
40
35
  throw createError({
41
36
  statusCode: 400,
42
37
  statusMessage: "branch query parameter is required"
43
38
  });
44
39
  }
45
- if (!isGitRepositorySync(workingDirectory)) {
46
- throw createError({
47
- statusCode: 400,
48
- statusMessage: "Not a Git repository",
49
- data: { code: "NOT_GIT_REPO" }
50
- });
51
- }
52
40
  const defaultBranch = await detectDefaultBranch(workingDirectory);
53
41
  const baseBranch = (requestedBaseBranch == null ? void 0 : requestedBaseBranch.trim()) || defaultBranch;
54
42
  if (!baseBranch || baseBranch === branch) {
@@ -67,14 +55,7 @@ const mergeBase_get = defineEventHandler(async (event) => {
67
55
  const mergeBase = await getMergeBase(branch, baseBranch, workingDirectory);
68
56
  return { mergeBase };
69
57
  } catch (error) {
70
- if (error && typeof error === "object" && "statusCode" in error) {
71
- throw error;
72
- }
73
- logger.api.error("Error getting merge-base", { error });
74
- throw createError({
75
- statusCode: 500,
76
- statusMessage: "Failed to get merge-base"
77
- });
58
+ handleGitApiError(error, "Error getting merge-base", "Failed to get merge-base");
78
59
  }
79
60
  });
80
61
  async function detectDefaultBranch(cwd) {
@@ -1 +1 @@
1
- {"version":3,"file":"merge-base.get.mjs","sources":["../../../../../../server/api/git/merge-base.get.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"merge-base.get.mjs","sources":["../../../../../../server/api/git/merge-base.get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,sBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,gBAAA,GAAA,iCAAA,KAAA,CAAA;AACA,IAAA,MAAA,KAAA,GAAA,SAAA,KAAA,CAAA;AACA,IAAA,MAAA,SAAA,KAAA,CAAA,MAAA;AACA,IAAA,MAAA,sBAAA,KAAA,CAAA,UAAA;AAEA,IAAA,IAAA,CAAA,MAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAGA,IAAA,MAAA,aAAA,GAAA,MAAA,mBAAA,CAAA,gBAAA,CAAA;AACA,IAAA,MAAA,UAAA,GAAA,CAAA,2DAAA,IAAA,EAAA,KAAA,aAAA;AAEA,IAAA,IAAA,CAAA,UAAA,IAAA,UAAA,KAAA,MAAA,EAAA;AAEA,MAAA,OAAA,EAAA,WAAA,IAAA,EAAA;AAAA,IACA;AAIA,IAAA,MAAA,CAAA,UAAA,EAAA,WAAA,CAAA,GAAA,MAAA,QAAA,GAAA,CAAA;AAAA,MACA,cAAA,CAAA,kBAAA,MAAA,CAAA;AAAA,MACA,cAAA,CAAA,kBAAA,UAAA;AAAA,KACA,CAAA;AACA,IAAA,IAAA,CAAA,WAAA,EAAA;AACA,MAAA,OAAA,EAAA,WAAA,IAAA,EAAA;AAAA,IACA;AACA,IAAA,IAAA,UAAA,IAAA,WAAA,IAAA,UAAA,KAAA,WAAA,EAAA;AACA,MAAA,OAAA,EAAA,WAAA,IAAA,EAAA;AAAA,IACA;AAEA,IAAA,MAAA,SAAA,GAAA,MAAA,YAAA,CAAA,MAAA,EAAA,YAAA,gBAAA,CAAA;AACA,IAAA,OAAA,EAAA,SAAA,EAAA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,iBAAA,CAAA,KAAA,EAAA,4BAAA,0BAAA,CAAA;AAAA,EACA;AACA,CAAA,CAAA;AAEA,eAAA,oBAAA,GAAA,EAAA;AAEA,EAAA,IAAA;AACA,IAAA,MAAA,MAAA,MAAA,cAAA,CAAA,CAAA,cAAA,EAAA,0BAAA,GAAA,GAAA,CAAA;AACA,IAAA,IAAA,GAAA,EAAA;AAEA,MAAA,OAAA,GAAA,CAAA,OAAA,CAAA,sBAAA,EAAA,EAAA,CAAA;AAAA,IACA;AAAA,EACA,CAAA,CAAA,MAAA;AAAA,EAEA;AAGA,EAAA,KAAA,MAAA,IAAA,IAAA,CAAA,MAAA,EAAA,QAAA,CAAA,EAAA;AACA,IAAA,IAAA;AACA,MAAA,MAAA,eAAA,CAAA,WAAA,EAAA,UAAA,EAAA,IAAA,GAAA,GAAA,CAAA;AACA,MAAA,OAAA,IAAA;AAAA,IACA,CAAA,CAAA,MAAA;AAAA,IAEA;AAAA,EACA;AAEA,EAAA,OAAA,IAAA;AACA;AAEA,eAAA,cAAA,CAAA,KAAA,GAAA,EAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,IAAA,GAAA,MAAA,cAAA,CAAA,CAAA,aAAA,UAAA,EAAA,GAAA,GAAA,GAAA,CAAA;AACA,IAAA,OAAA,IAAA,IAAA,IAAA;AAAA,EACA,CAAA,CAAA,MAAA;AACA,IAAA,OAAA,IAAA;AAAA,EACA;AACA;;;;"}
@@ -1,5 +1,6 @@
1
- import { d as defineEventHandler, b as readBody, e as getProjectDir, c as createError, l as logger } from '../../../nitro/nitro.mjs';
2
- import { a as isGitRepository, u as mergeBranch } from '../../../_/git.mjs';
1
+ import { d as defineEventHandler, c as createError, l as logger } from '../../../nitro/nitro.mjs';
2
+ import { t as mergeBranch } from '../../../_/git.mjs';
3
+ import { r as resolveWorkingDirectoryFromBody, h as handleGitApiError } from '../../../_/gitApiHelpers.mjs';
3
4
  import 'node:http';
4
5
  import 'node:https';
5
6
  import 'node:crypto';
@@ -26,20 +27,13 @@ import 'util';
26
27
 
27
28
  const merge_post = defineEventHandler(async (event) => {
28
29
  try {
29
- const body = await readBody(event);
30
- const workingDirectory = body.workingDirectory || getProjectDir();
30
+ const { workingDirectory, body } = await resolveWorkingDirectoryFromBody(event);
31
31
  if (!body.branch) {
32
32
  throw createError({
33
33
  statusCode: 400,
34
34
  statusMessage: "branch is required"
35
35
  });
36
36
  }
37
- if (!isGitRepository(workingDirectory)) {
38
- throw createError({
39
- statusCode: 400,
40
- statusMessage: "Not a Git repository"
41
- });
42
- }
43
37
  try {
44
38
  mergeBranch(workingDirectory, body.branch, {
45
39
  noCommit: body.noCommit,
@@ -73,14 +67,7 @@ const merge_post = defineEventHandler(async (event) => {
73
67
  });
74
68
  return { success: true };
75
69
  } catch (error) {
76
- if (error && typeof error === "object" && "statusCode" in error) {
77
- throw error;
78
- }
79
- logger.api.error("Error during git merge", { error });
80
- throw createError({
81
- statusCode: 500,
82
- statusMessage: "Failed to merge branch"
83
- });
70
+ handleGitApiError(error, "Error during git merge", "Failed to merge branch");
84
71
  }
85
72
  });
86
73
 
@@ -1 +1 @@
1
- {"version":3,"file":"merge.post.mjs","sources":["../../../../../../server/api/git/merge.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,mBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,IAAA,GAAA,MAAA,QAAA,CAMA,KAAA,CAAA;AACA,IAAA,MAAA,gBAAA,GAAA,IAAA,CAAA,gBAAA,IAAA,aAAA,EAAA;AAEA,IAAA,IAAA,CAAA,KAAA,MAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,IAAA,CAAA,eAAA,CAAA,gBAAA,CAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,IAAA;AACA,MAAA,WAAA,CAAA,gBAAA,EAAA,KAAA,MAAA,EAAA;AAAA,QACA,UAAA,IAAA,CAAA,QAAA;AAAA,QACA,eAAA,IAAA,CAAA,aAAA;AAAA,QACA,QAAA,IAAA,CAAA;AAAA,OACA,CAAA;AAAA,IACA,SAAA,QAAA,EAAA;AACA,MAAA,MAAA,YAAA,GACA,QAAA,YAAA,KAAA,GAAA,QAAA,CAAA,OAAA,GAAA,eAAA;AAEA,MAAA,IACA,YAAA,CAAA,QAAA,CAAA,UAAA,CAAA,IACA,YAAA,CAAA,QAAA,CAAA,gBAAA,CAAA,IACA,YAAA,CAAA,QAAA,CAAA,wBAAA,CAAA,EACA;AACA,QAAA,MAAA,WAAA,CAAA;AAAA,UACA,UAAA,EAAA,GAAA;AAAA,UACA,aAAA,EAAA,mBAAA,YAAA,CAAA;AAAA,SACA,CAAA;AAAA,MACA;AAEA,MAAA,IAAA,YAAA,CAAA,QAAA,CAAA,4BAAA,CAAA,EAAA;AACA,QAAA,MAAA,WAAA,CAAA;AAAA,UACA,UAAA,EAAA,GAAA;AAAA,UACA,aAAA,EAAA,CAAA,QAAA,EAAA,IAAA,CAAA,MAAA,CAAA,WAAA;AAAA,SACA,CAAA;AAAA,MACA;AAEA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA,qBAAA,YAAA,CAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,CAAA,GAAA,CAAA,KAAA,sBAAA,EAAA;AAAA,MACA,QAAA,IAAA,CAAA,MAAA;AAAA,MACA,UAAA,IAAA,CAAA,QAAA;AAAA,MACA,eAAA,IAAA,CAAA,aAAA;AAAA,MACA,QAAA,IAAA,CAAA;AAAA,KACA,CAAA;AAEA,IAAA,OAAA,EAAA,SAAA,IAAA,EAAA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,IAAA,KAAA,IAAA,OAAA,KAAA,KAAA,QAAA,IAAA,gBAAA,KAAA,EAAA;AACA,MAAA,MAAA,KAAA;AAAA,IACA;AAEA,IAAA,MAAA,CAAA,GAAA,CAAA,KAAA,CAAA,wBAAA,EAAA,EAAA,OAAA,CAAA;AACA,IAAA,MAAA,WAAA,CAAA;AAAA,MACA,UAAA,EAAA,GAAA;AAAA,MACA,aAAA,EAAA;AAAA,KACA,CAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"merge.post.mjs","sources":["../../../../../../server/api/git/merge.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,mBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,GAAA,MAAA,gCAAA,KAAA,CAAA;AAEA,IAAA,IAAA,CAAA,KAAA,MAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,IAAA;AACA,MAAA,WAAA,CAAA,gBAAA,EAAA,KAAA,MAAA,EAAA;AAAA,QACA,UAAA,IAAA,CAAA,QAAA;AAAA,QACA,eAAA,IAAA,CAAA,aAAA;AAAA,QACA,QAAA,IAAA,CAAA;AAAA,OACA,CAAA;AAAA,IACA,SAAA,QAAA,EAAA;AACA,MAAA,MAAA,YAAA,GACA,QAAA,YAAA,KAAA,GAAA,QAAA,CAAA,OAAA,GAAA,eAAA;AAEA,MAAA,IACA,YAAA,CAAA,QAAA,CAAA,UAAA,CAAA,IACA,YAAA,CAAA,QAAA,CAAA,gBAAA,CAAA,IACA,YAAA,CAAA,QAAA,CAAA,wBAAA,CAAA,EACA;AACA,QAAA,MAAA,WAAA,CAAA;AAAA,UACA,UAAA,EAAA,GAAA;AAAA,UACA,aAAA,EAAA,mBAAA,YAAA,CAAA;AAAA,SACA,CAAA;AAAA,MACA;AAEA,MAAA,IAAA,YAAA,CAAA,QAAA,CAAA,4BAAA,CAAA,EAAA;AACA,QAAA,MAAA,WAAA,CAAA;AAAA,UACA,UAAA,EAAA,GAAA;AAAA,UACA,aAAA,EAAA,CAAA,QAAA,EAAA,IAAA,CAAA,MAAA,CAAA,WAAA;AAAA,SACA,CAAA;AAAA,MACA;AAEA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA,qBAAA,YAAA,CAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,CAAA,GAAA,CAAA,KAAA,sBAAA,EAAA;AAAA,MACA,QAAA,IAAA,CAAA,MAAA;AAAA,MACA,UAAA,IAAA,CAAA,QAAA;AAAA,MACA,eAAA,IAAA,CAAA,aAAA;AAAA,MACA,QAAA,IAAA,CAAA;AAAA,KACA,CAAA;AAEA,IAAA,OAAA,EAAA,SAAA,IAAA,EAAA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,iBAAA,CAAA,KAAA,EAAA,0BAAA,wBAAA,CAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}
@@ -1,5 +1,6 @@
1
- import { d as defineEventHandler, b as readBody, e as getProjectDir, c as createError, l as logger } from '../../../nitro/nitro.mjs';
2
- import { a as isGitRepository, v as pullBranch } from '../../../_/git.mjs';
1
+ import { d as defineEventHandler, c as createError, l as logger } from '../../../nitro/nitro.mjs';
2
+ import { u as pullBranch } from '../../../_/git.mjs';
3
+ import { r as resolveWorkingDirectoryFromBody, h as handleGitApiError } from '../../../_/gitApiHelpers.mjs';
3
4
  import 'node:http';
4
5
  import 'node:https';
5
6
  import 'node:crypto';
@@ -26,20 +27,14 @@ import 'util';
26
27
 
27
28
  const pull_post = defineEventHandler(async (event) => {
28
29
  try {
29
- const body = await readBody(event);
30
- const workingDirectory = body.workingDirectory || getProjectDir();
31
- if (!isGitRepository(workingDirectory)) {
32
- throw createError({
33
- statusCode: 400,
34
- statusMessage: "Not a Git repository"
35
- });
36
- }
30
+ const { workingDirectory, body } = await resolveWorkingDirectoryFromBody(event);
31
+ const typedBody = body;
37
32
  try {
38
33
  pullBranch(workingDirectory, {
39
- branch: body.branch,
40
- remote: body.remote,
41
- noFastForward: body.noFastForward,
42
- squash: body.squash
34
+ branch: typedBody.branch,
35
+ remote: typedBody.remote,
36
+ noFastForward: typedBody.noFastForward,
37
+ squash: typedBody.squash
43
38
  });
44
39
  } catch (gitError) {
45
40
  const errorMessage = gitError instanceof Error ? gitError.message : "Unknown error";
@@ -61,21 +56,14 @@ const pull_post = defineEventHandler(async (event) => {
61
56
  });
62
57
  }
63
58
  logger.api.info("Git pull successful", {
64
- branch: body.branch,
65
- remote: body.remote,
66
- noFastForward: body.noFastForward,
67
- squash: body.squash
59
+ branch: typedBody.branch,
60
+ remote: typedBody.remote,
61
+ noFastForward: typedBody.noFastForward,
62
+ squash: typedBody.squash
68
63
  });
69
64
  return { success: true };
70
65
  } catch (error) {
71
- if (error && typeof error === "object" && "statusCode" in error) {
72
- throw error;
73
- }
74
- logger.api.error("Error during git pull", { error });
75
- throw createError({
76
- statusCode: 500,
77
- statusMessage: "Failed to pull branch"
78
- });
66
+ handleGitApiError(error, "Error during git pull", "Failed to pull branch");
79
67
  }
80
68
  });
81
69
 
@@ -1 +1 @@
1
- {"version":3,"file":"pull.post.mjs","sources":["../../../../../../server/api/git/pull.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,kBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,IAAA,GAAA,MAAA,QAAA,CAMA,KAAA,CAAA;AACA,IAAA,MAAA,gBAAA,GAAA,IAAA,CAAA,gBAAA,IAAA,aAAA,EAAA;AAEA,IAAA,IAAA,CAAA,eAAA,CAAA,gBAAA,CAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,IAAA;AACA,MAAA,UAAA,CAAA,gBAAA,EAAA;AAAA,QACA,QAAA,IAAA,CAAA,MAAA;AAAA,QACA,QAAA,IAAA,CAAA,MAAA;AAAA,QACA,eAAA,IAAA,CAAA,aAAA;AAAA,QACA,QAAA,IAAA,CAAA;AAAA,OACA,CAAA;AAAA,IACA,SAAA,QAAA,EAAA;AACA,MAAA,MAAA,YAAA,GACA,QAAA,YAAA,KAAA,GAAA,QAAA,CAAA,OAAA,GAAA,eAAA;AAEA,MAAA,IACA,YAAA,CAAA,QAAA,CAAA,UAAA,CAAA,IACA,YAAA,CAAA,QAAA,CAAA,gBAAA,CAAA,IACA,YAAA,CAAA,QAAA,CAAA,wBAAA,CAAA,EACA;AACA,QAAA,MAAA,WAAA,CAAA;AAAA,UACA,UAAA,EAAA,GAAA;AAAA,UACA,aAAA,EAAA,kBAAA,YAAA,CAAA;AAAA,SACA,CAAA;AAAA,MACA;AAEA,MAAA,IAAA,YAAA,CAAA,QAAA,CAAA,wCAAA,CAAA,EAAA;AACA,QAAA,MAAA,WAAA,CAAA;AAAA,UACA,UAAA,EAAA,GAAA;AAAA,UACA,aAAA,EAAA,CAAA,gBAAA;AAAA,SACA,CAAA;AAAA,MACA;AAEA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA,oBAAA,YAAA,CAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,CAAA,GAAA,CAAA,KAAA,qBAAA,EAAA;AAAA,MACA,QAAA,IAAA,CAAA,MAAA;AAAA,MACA,QAAA,IAAA,CAAA,MAAA;AAAA,MACA,eAAA,IAAA,CAAA,aAAA;AAAA,MACA,QAAA,IAAA,CAAA;AAAA,KACA,CAAA;AAEA,IAAA,OAAA,EAAA,SAAA,IAAA,EAAA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,IAAA,KAAA,IAAA,OAAA,KAAA,KAAA,QAAA,IAAA,gBAAA,KAAA,EAAA;AACA,MAAA,MAAA,KAAA;AAAA,IACA;AAEA,IAAA,MAAA,CAAA,GAAA,CAAA,KAAA,CAAA,uBAAA,EAAA,EAAA,OAAA,CAAA;AACA,IAAA,MAAA,WAAA,CAAA;AAAA,MACA,UAAA,EAAA,GAAA;AAAA,MACA,aAAA,EAAA;AAAA,KACA,CAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"pull.post.mjs","sources":["../../../../../../server/api/git/pull.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,kBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,GAAA,MAAA,gCAAA,KAAA,CAAA;AACA,IAAA,MAAA,SAAA,GAAA,IAAA;AAOA,IAAA,IAAA;AACA,MAAA,UAAA,CAAA,gBAAA,EAAA;AAAA,QACA,QAAA,SAAA,CAAA,MAAA;AAAA,QACA,QAAA,SAAA,CAAA,MAAA;AAAA,QACA,eAAA,SAAA,CAAA,aAAA;AAAA,QACA,QAAA,SAAA,CAAA;AAAA,OACA,CAAA;AAAA,IACA,SAAA,QAAA,EAAA;AACA,MAAA,MAAA,YAAA,GACA,QAAA,YAAA,KAAA,GAAA,QAAA,CAAA,OAAA,GAAA,eAAA;AAEA,MAAA,IACA,YAAA,CAAA,QAAA,CAAA,UAAA,CAAA,IACA,YAAA,CAAA,QAAA,CAAA,gBAAA,CAAA,IACA,YAAA,CAAA,QAAA,CAAA,wBAAA,CAAA,EACA;AACA,QAAA,MAAA,WAAA,CAAA;AAAA,UACA,UAAA,EAAA,GAAA;AAAA,UACA,aAAA,EAAA,kBAAA,YAAA,CAAA;AAAA,SACA,CAAA;AAAA,MACA;AAEA,MAAA,IAAA,YAAA,CAAA,QAAA,CAAA,wCAAA,CAAA,EAAA;AACA,QAAA,MAAA,WAAA,CAAA;AAAA,UACA,UAAA,EAAA,GAAA;AAAA,UACA,aAAA,EAAA,CAAA,gBAAA;AAAA,SACA,CAAA;AAAA,MACA;AAEA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA,oBAAA,YAAA,CAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,CAAA,GAAA,CAAA,KAAA,qBAAA,EAAA;AAAA,MACA,QAAA,SAAA,CAAA,MAAA;AAAA,MACA,QAAA,SAAA,CAAA,MAAA;AAAA,MACA,eAAA,SAAA,CAAA,aAAA;AAAA,MACA,QAAA,SAAA,CAAA;AAAA,KACA,CAAA;AAEA,IAAA,OAAA,EAAA,SAAA,IAAA,EAAA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,iBAAA,CAAA,KAAA,EAAA,yBAAA,uBAAA,CAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}
@@ -1,5 +1,6 @@
1
- import { d as defineEventHandler, b as readBody, e as getProjectDir, c as createError, l as logger } from '../../../nitro/nitro.mjs';
2
- import { a as isGitRepository, w as pushBranch } from '../../../_/git.mjs';
1
+ import { d as defineEventHandler, c as createError, l as logger } from '../../../nitro/nitro.mjs';
2
+ import { v as pushBranch } from '../../../_/git.mjs';
3
+ import { r as resolveWorkingDirectoryFromBody, h as handleGitApiError } from '../../../_/gitApiHelpers.mjs';
3
4
  import 'node:http';
4
5
  import 'node:https';
5
6
  import 'node:crypto';
@@ -26,25 +27,19 @@ import 'util';
26
27
 
27
28
  const push_post = defineEventHandler(async (event) => {
28
29
  try {
29
- const body = await readBody(event);
30
- const workingDirectory = body.workingDirectory || getProjectDir();
31
- if (!body.branch) {
30
+ const { workingDirectory, body } = await resolveWorkingDirectoryFromBody(event);
31
+ const typedBody = body;
32
+ if (!typedBody.branch) {
32
33
  throw createError({
33
34
  statusCode: 400,
34
35
  statusMessage: "branch is required"
35
36
  });
36
37
  }
37
- if (!isGitRepository(workingDirectory)) {
38
- throw createError({
39
- statusCode: 400,
40
- statusMessage: "Not a Git repository"
41
- });
42
- }
43
38
  try {
44
- pushBranch(workingDirectory, body.branch, {
45
- remote: body.remote,
46
- force: body.force,
47
- forceWithLease: body.forceWithLease
39
+ pushBranch(workingDirectory, typedBody.branch, {
40
+ remote: typedBody.remote,
41
+ force: typedBody.force,
42
+ forceWithLease: typedBody.forceWithLease
48
43
  });
49
44
  } catch (gitError) {
50
45
  const errorMessage = gitError instanceof Error ? gitError.message : "Unknown error";
@@ -66,21 +61,14 @@ const push_post = defineEventHandler(async (event) => {
66
61
  });
67
62
  }
68
63
  logger.api.info("Git push successful", {
69
- branch: body.branch,
70
- remote: body.remote || "origin",
71
- force: body.force,
72
- forceWithLease: body.forceWithLease
64
+ branch: typedBody.branch,
65
+ remote: typedBody.remote || "origin",
66
+ force: typedBody.force,
67
+ forceWithLease: typedBody.forceWithLease
73
68
  });
74
69
  return { success: true };
75
70
  } catch (error) {
76
- if (error && typeof error === "object" && "statusCode" in error) {
77
- throw error;
78
- }
79
- logger.api.error("Error during git push", { error });
80
- throw createError({
81
- statusCode: 500,
82
- statusMessage: "Failed to push branch"
83
- });
71
+ handleGitApiError(error, "Error during git push", "Failed to push branch");
84
72
  }
85
73
  });
86
74
 
@@ -1 +1 @@
1
- {"version":3,"file":"push.post.mjs","sources":["../../../../../../server/api/git/push.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,kBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,IAAA,GAAA,MAAA,QAAA,CAMA,KAAA,CAAA;AACA,IAAA,MAAA,gBAAA,GAAA,IAAA,CAAA,gBAAA,IAAA,aAAA,EAAA;AAEA,IAAA,IAAA,CAAA,KAAA,MAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,IAAA,CAAA,eAAA,CAAA,gBAAA,CAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,IAAA;AACA,MAAA,UAAA,CAAA,gBAAA,EAAA,KAAA,MAAA,EAAA;AAAA,QACA,QAAA,IAAA,CAAA,MAAA;AAAA,QACA,OAAA,IAAA,CAAA,KAAA;AAAA,QACA,gBAAA,IAAA,CAAA;AAAA,OACA,CAAA;AAAA,IACA,SAAA,QAAA,EAAA;AACA,MAAA,MAAA,YAAA,GACA,QAAA,YAAA,KAAA,GAAA,QAAA,CAAA,OAAA,GAAA,eAAA;AAEA,MAAA,IACA,aAAA,QAAA,CAAA,UAAA,KACA,YAAA,CAAA,QAAA,CAAA,kBAAA,CAAA,EACA;AACA,QAAA,MAAA,WAAA,CAAA;AAAA,UACA,UAAA,EAAA,GAAA;AAAA,UACA,aAAA,EAAA,kBAAA,YAAA,CAAA;AAAA,SACA,CAAA;AAAA,MACA;AAEA,MAAA,IAAA,YAAA,CAAA,QAAA,CAAA,wCAAA,CAAA,EAAA;AACA,QAAA,MAAA,WAAA,CAAA;AAAA,UACA,UAAA,EAAA,GAAA;AAAA,UACA,aAAA,EAAA,CAAA,gBAAA;AAAA,SACA,CAAA;AAAA,MACA;AAEA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA,oBAAA,YAAA,CAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,CAAA,GAAA,CAAA,KAAA,qBAAA,EAAA;AAAA,MACA,QAAA,IAAA,CAAA,MAAA;AAAA,MACA,MAAA,EAAA,KAAA,MAAA,IAAA,QAAA;AAAA,MACA,OAAA,IAAA,CAAA,KAAA;AAAA,MACA,gBAAA,IAAA,CAAA;AAAA,KACA,CAAA;AAEA,IAAA,OAAA,EAAA,SAAA,IAAA,EAAA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,IAAA,KAAA,IAAA,OAAA,KAAA,KAAA,QAAA,IAAA,gBAAA,KAAA,EAAA;AACA,MAAA,MAAA,KAAA;AAAA,IACA;AAEA,IAAA,MAAA,CAAA,GAAA,CAAA,KAAA,CAAA,uBAAA,EAAA,EAAA,OAAA,CAAA;AACA,IAAA,MAAA,WAAA,CAAA;AAAA,MACA,UAAA,EAAA,GAAA;AAAA,MACA,aAAA,EAAA;AAAA,KACA,CAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"push.post.mjs","sources":["../../../../../../server/api/git/push.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,kBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,GAAA,MAAA,gCAAA,KAAA,CAAA;AACA,IAAA,MAAA,SAAA,GAAA,IAAA;AAOA,IAAA,IAAA,CAAA,UAAA,MAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,IAAA;AACA,MAAA,UAAA,CAAA,gBAAA,EAAA,UAAA,MAAA,EAAA;AAAA,QACA,QAAA,SAAA,CAAA,MAAA;AAAA,QACA,OAAA,SAAA,CAAA,KAAA;AAAA,QACA,gBAAA,SAAA,CAAA;AAAA,OACA,CAAA;AAAA,IACA,SAAA,QAAA,EAAA;AACA,MAAA,MAAA,YAAA,GACA,QAAA,YAAA,KAAA,GAAA,QAAA,CAAA,OAAA,GAAA,eAAA;AAEA,MAAA,IACA,aAAA,QAAA,CAAA,UAAA,KACA,YAAA,CAAA,QAAA,CAAA,kBAAA,CAAA,EACA;AACA,QAAA,MAAA,WAAA,CAAA;AAAA,UACA,UAAA,EAAA,GAAA;AAAA,UACA,aAAA,EAAA,kBAAA,YAAA,CAAA;AAAA,SACA,CAAA;AAAA,MACA;AAEA,MAAA,IAAA,YAAA,CAAA,QAAA,CAAA,wCAAA,CAAA,EAAA;AACA,QAAA,MAAA,WAAA,CAAA;AAAA,UACA,UAAA,EAAA,GAAA;AAAA,UACA,aAAA,EAAA,CAAA,gBAAA;AAAA,SACA,CAAA;AAAA,MACA;AAEA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA,oBAAA,YAAA,CAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,CAAA,GAAA,CAAA,KAAA,qBAAA,EAAA;AAAA,MACA,QAAA,SAAA,CAAA,MAAA;AAAA,MACA,MAAA,EAAA,UAAA,MAAA,IAAA,QAAA;AAAA,MACA,OAAA,SAAA,CAAA,KAAA;AAAA,MACA,gBAAA,SAAA,CAAA;AAAA,KACA,CAAA;AAEA,IAAA,OAAA,EAAA,SAAA,IAAA,EAAA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,iBAAA,CAAA,KAAA,EAAA,yBAAA,uBAAA,CAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}
@@ -1,5 +1,6 @@
1
- import { d as defineEventHandler, b as readBody, e as getProjectDir, c as createError, l as logger } from '../../../nitro/nitro.mjs';
2
- import { a as isGitRepository, x as rebaseBranch } from '../../../_/git.mjs';
1
+ import { d as defineEventHandler, c as createError, l as logger } from '../../../nitro/nitro.mjs';
2
+ import { w as rebaseBranch } from '../../../_/git.mjs';
3
+ import { r as resolveWorkingDirectoryFromBody, h as handleGitApiError } from '../../../_/gitApiHelpers.mjs';
3
4
  import 'node:http';
4
5
  import 'node:https';
5
6
  import 'node:crypto';
@@ -26,22 +27,16 @@ import 'util';
26
27
 
27
28
  const rebase_post = defineEventHandler(async (event) => {
28
29
  try {
29
- const body = await readBody(event);
30
- const workingDirectory = body.workingDirectory || getProjectDir();
31
- if (!body.onto) {
30
+ const { workingDirectory, body } = await resolveWorkingDirectoryFromBody(event);
31
+ const typedBody = body;
32
+ if (!typedBody.onto) {
32
33
  throw createError({
33
34
  statusCode: 400,
34
35
  statusMessage: "onto is required"
35
36
  });
36
37
  }
37
- if (!isGitRepository(workingDirectory)) {
38
- throw createError({
39
- statusCode: 400,
40
- statusMessage: "Not a Git repository"
41
- });
42
- }
43
38
  try {
44
- rebaseBranch(workingDirectory, body.onto);
39
+ rebaseBranch(workingDirectory, typedBody.onto);
45
40
  } catch (gitError) {
46
41
  const errorMessage = gitError instanceof Error ? gitError.message : "Unknown error";
47
42
  if (errorMessage.includes("CONFLICT") || errorMessage.includes("could not apply") || errorMessage.includes("merge conflict")) {
@@ -53,7 +48,7 @@ const rebase_post = defineEventHandler(async (event) => {
53
48
  if (errorMessage.includes("does not point to a valid commit")) {
54
49
  throw createError({
55
50
  statusCode: 404,
56
- statusMessage: `Target '${body.onto}' not found`
51
+ statusMessage: `Target '${typedBody.onto}' not found`
57
52
  });
58
53
  }
59
54
  throw createError({
@@ -61,17 +56,10 @@ const rebase_post = defineEventHandler(async (event) => {
61
56
  statusMessage: `Git rebase failed: ${errorMessage}`
62
57
  });
63
58
  }
64
- logger.api.info("Git rebase successful", { onto: body.onto });
59
+ logger.api.info("Git rebase successful", { onto: typedBody.onto });
65
60
  return { success: true };
66
61
  } catch (error) {
67
- if (error && typeof error === "object" && "statusCode" in error) {
68
- throw error;
69
- }
70
- logger.api.error("Error during git rebase", { error });
71
- throw createError({
72
- statusCode: 500,
73
- statusMessage: "Failed to rebase branch"
74
- });
62
+ handleGitApiError(error, "Error during git rebase", "Failed to rebase branch");
75
63
  }
76
64
  });
77
65
 
@@ -1 +1 @@
1
- {"version":3,"file":"rebase.post.mjs","sources":["../../../../../../server/api/git/rebase.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,oBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,IAAA,GAAA,MAAA,QAAA,CAGA,KAAA,CAAA;AACA,IAAA,MAAA,gBAAA,GAAA,IAAA,CAAA,gBAAA,IAAA,aAAA,EAAA;AAEA,IAAA,IAAA,CAAA,KAAA,IAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,IAAA,CAAA,eAAA,CAAA,gBAAA,CAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,IAAA;AACA,MAAA,YAAA,CAAA,gBAAA,EAAA,KAAA,IAAA,CAAA;AAAA,IACA,SAAA,QAAA,EAAA;AACA,MAAA,MAAA,YAAA,GACA,QAAA,YAAA,KAAA,GAAA,QAAA,CAAA,OAAA,GAAA,eAAA;AAEA,MAAA,IACA,YAAA,CAAA,QAAA,CAAA,UAAA,CAAA,IACA,YAAA,CAAA,QAAA,CAAA,iBAAA,CAAA,IACA,YAAA,CAAA,QAAA,CAAA,gBAAA,CAAA,EACA;AACA,QAAA,MAAA,WAAA,CAAA;AAAA,UACA,UAAA,EAAA,GAAA;AAAA,UACA,aAAA,EAAA,oBAAA,YAAA,CAAA;AAAA,SACA,CAAA;AAAA,MACA;AAEA,MAAA,IAAA,YAAA,CAAA,QAAA,CAAA,kCAAA,CAAA,EAAA;AACA,QAAA,MAAA,WAAA,CAAA;AAAA,UACA,UAAA,EAAA,GAAA;AAAA,UACA,aAAA,EAAA,CAAA,QAAA,EAAA,IAAA,CAAA,IAAA,CAAA,WAAA;AAAA,SACA,CAAA;AAAA,MACA;AAEA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA,sBAAA,YAAA,CAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,CAAA,IAAA,IAAA,CAAA,uBAAA,EAAA,EAAA,IAAA,EAAA,IAAA,CAAA,MAAA,CAAA;AAEA,IAAA,OAAA,EAAA,SAAA,IAAA,EAAA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,IAAA,KAAA,IAAA,OAAA,KAAA,KAAA,QAAA,IAAA,gBAAA,KAAA,EAAA;AACA,MAAA,MAAA,KAAA;AAAA,IACA;AAEA,IAAA,MAAA,CAAA,GAAA,CAAA,KAAA,CAAA,yBAAA,EAAA,EAAA,OAAA,CAAA;AACA,IAAA,MAAA,WAAA,CAAA;AAAA,MACA,UAAA,EAAA,GAAA;AAAA,MACA,aAAA,EAAA;AAAA,KACA,CAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"rebase.post.mjs","sources":["../../../../../../server/api/git/rebase.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,oBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,GAAA,MAAA,gCAAA,KAAA,CAAA;AACA,IAAA,MAAA,SAAA,GAAA,IAAA;AAEA,IAAA,IAAA,CAAA,UAAA,IAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,IAAA;AACA,MAAA,YAAA,CAAA,gBAAA,EAAA,UAAA,IAAA,CAAA;AAAA,IACA,SAAA,QAAA,EAAA;AACA,MAAA,MAAA,YAAA,GACA,QAAA,YAAA,KAAA,GAAA,QAAA,CAAA,OAAA,GAAA,eAAA;AAEA,MAAA,IACA,YAAA,CAAA,QAAA,CAAA,UAAA,CAAA,IACA,YAAA,CAAA,QAAA,CAAA,iBAAA,CAAA,IACA,YAAA,CAAA,QAAA,CAAA,gBAAA,CAAA,EACA;AACA,QAAA,MAAA,WAAA,CAAA;AAAA,UACA,UAAA,EAAA,GAAA;AAAA,UACA,aAAA,EAAA,oBAAA,YAAA,CAAA;AAAA,SACA,CAAA;AAAA,MACA;AAEA,MAAA,IAAA,YAAA,CAAA,QAAA,CAAA,kCAAA,CAAA,EAAA;AACA,QAAA,MAAA,WAAA,CAAA;AAAA,UACA,UAAA,EAAA,GAAA;AAAA,UACA,aAAA,EAAA,CAAA,QAAA,EAAA,SAAA,CAAA,IAAA,CAAA,WAAA;AAAA,SACA,CAAA;AAAA,MACA;AAEA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA,sBAAA,YAAA,CAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,CAAA,IAAA,IAAA,CAAA,uBAAA,EAAA,EAAA,IAAA,EAAA,SAAA,CAAA,MAAA,CAAA;AAEA,IAAA,OAAA,EAAA,SAAA,IAAA,EAAA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,iBAAA,CAAA,KAAA,EAAA,2BAAA,yBAAA,CAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}
@@ -1,5 +1,6 @@
1
- import { d as defineEventHandler, b as readBody, e as getProjectDir, c as createError, l as logger } from '../../../nitro/nitro.mjs';
2
- import { i as isGitRepositorySync, y as deleteRemote } from '../../../_/git.mjs';
1
+ import { d as defineEventHandler, c as createError, l as logger } from '../../../nitro/nitro.mjs';
2
+ import { x as deleteRemote } from '../../../_/git.mjs';
3
+ import { r as resolveWorkingDirectoryFromBody, h as handleGitApiError } from '../../../_/gitApiHelpers.mjs';
3
4
  import 'node:http';
4
5
  import 'node:https';
5
6
  import 'node:crypto';
@@ -26,20 +27,13 @@ import 'util';
26
27
 
27
28
  const remote_delete = defineEventHandler(async (event) => {
28
29
  try {
29
- const body = await readBody(event);
30
- const workingDirectory = body.workingDirectory || getProjectDir();
30
+ const { workingDirectory, body } = await resolveWorkingDirectoryFromBody(event);
31
31
  if (!body.name) {
32
32
  throw createError({
33
33
  statusCode: 400,
34
34
  statusMessage: "name is required"
35
35
  });
36
36
  }
37
- if (!isGitRepositorySync(workingDirectory)) {
38
- throw createError({
39
- statusCode: 400,
40
- statusMessage: "Not a Git repository"
41
- });
42
- }
43
37
  try {
44
38
  deleteRemote(workingDirectory, body.name);
45
39
  } catch (gitError) {
@@ -52,14 +46,7 @@ const remote_delete = defineEventHandler(async (event) => {
52
46
  logger.api.info("Git remote deleted", { name: body.name });
53
47
  return { success: true };
54
48
  } catch (error) {
55
- if (error && typeof error === "object" && "statusCode" in error) {
56
- throw error;
57
- }
58
- logger.api.error("Error deleting git remote", { error });
59
- throw createError({
60
- statusCode: 500,
61
- statusMessage: "Failed to delete remote"
62
- });
49
+ handleGitApiError(error, "deleting git remote", "Failed to delete remote");
63
50
  }
64
51
  });
65
52
 
@@ -1 +1 @@
1
- {"version":3,"file":"remote.delete.mjs","sources":["../../../../../../server/api/git/remote.delete.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,sBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,IAAA,GAAA,MAAA,QAAA,CAGA,KAAA,CAAA;AACA,IAAA,MAAA,gBAAA,GAAA,IAAA,CAAA,gBAAA,IAAA,aAAA,EAAA;AAEA,IAAA,IAAA,CAAA,KAAA,IAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,IAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,IAAA;AACA,MAAA,YAAA,CAAA,gBAAA,EAAA,KAAA,IAAA,CAAA;AAAA,IACA,SAAA,QAAA,EAAA;AACA,MAAA,MAAA,YAAA,GACA,QAAA,YAAA,KAAA,GAAA,QAAA,CAAA,OAAA,GAAA,eAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA,4BAAA,YAAA,CAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,CAAA,IAAA,IAAA,CAAA,oBAAA,EAAA,EAAA,IAAA,EAAA,IAAA,CAAA,MAAA,CAAA;AAEA,IAAA,OAAA,EAAA,SAAA,IAAA,EAAA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,IAAA,KAAA,IAAA,OAAA,KAAA,KAAA,QAAA,IAAA,gBAAA,KAAA,EAAA;AACA,MAAA,MAAA,KAAA;AAAA,IACA;AAEA,IAAA,MAAA,CAAA,GAAA,CAAA,KAAA,CAAA,2BAAA,EAAA,EAAA,OAAA,CAAA;AACA,IAAA,MAAA,WAAA,CAAA;AAAA,MACA,UAAA,EAAA,GAAA;AAAA,MACA,aAAA,EAAA;AAAA,KACA,CAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"remote.delete.mjs","sources":["../../../../../../server/api/git/remote.delete.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,sBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,GAAA,MAAA,gCAAA,KAAA,CAAA;AAEA,IAAA,IAAA,CAAA,KAAA,IAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,IAAA;AACA,MAAA,YAAA,CAAA,gBAAA,EAAA,KAAA,IAAA,CAAA;AAAA,IACA,SAAA,QAAA,EAAA;AACA,MAAA,MAAA,YAAA,GACA,QAAA,YAAA,KAAA,GAAA,QAAA,CAAA,OAAA,GAAA,eAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA,4BAAA,YAAA,CAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,CAAA,IAAA,IAAA,CAAA,oBAAA,EAAA,EAAA,IAAA,EAAA,IAAA,CAAA,MAAA,CAAA;AAEA,IAAA,OAAA,EAAA,SAAA,IAAA,EAAA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,iBAAA,CAAA,KAAA,EAAA,uBAAA,yBAAA,CAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}