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, b as readBody, e as getProjectDir, c as createError, l as logger } from '../../../nitro/nitro.mjs';
2
- import { a as isGitRepository, r as renameBranch } from '../../../_/git.mjs';
1
+ import { d as defineEventHandler, c as createError, l as logger } from '../../../nitro/nitro.mjs';
2
+ import { r as renameBranch } 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,8 +27,7 @@ import 'util';
26
27
 
27
28
  const branchRename_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.oldName) {
32
32
  throw createError({
33
33
  statusCode: 400,
@@ -40,12 +40,6 @@ const branchRename_post = defineEventHandler(async (event) => {
40
40
  statusMessage: "newName is required"
41
41
  });
42
42
  }
43
- if (!isGitRepository(workingDirectory)) {
44
- throw createError({
45
- statusCode: 400,
46
- statusMessage: "Not a Git repository"
47
- });
48
- }
49
43
  try {
50
44
  renameBranch(workingDirectory, body.oldName, body.newName);
51
45
  } catch (gitError) {
@@ -73,14 +67,7 @@ const branchRename_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 renaming git branch", { error });
80
- throw createError({
81
- statusCode: 500,
82
- statusMessage: "Failed to rename branch"
83
- });
70
+ handleGitApiError(error, "Error renaming git branch", "Failed to rename branch");
84
71
  }
85
72
  });
86
73
 
@@ -1 +1 @@
1
- {"version":3,"file":"branch-rename.post.mjs","sources":["../../../../../../server/api/git/branch-rename.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,0BAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,IAAA,GAAA,MAAA,QAAA,CAIA,KAAA,CAAA;AACA,IAAA,MAAA,gBAAA,GAAA,IAAA,CAAA,gBAAA,IAAA,aAAA,EAAA;AAEA,IAAA,IAAA,CAAA,KAAA,OAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,IAAA,CAAA,KAAA,OAAA,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,IAAA,CAAA,OAAA,EAAA,IAAA,CAAA,OAAA,CAAA;AAAA,IACA,SAAA,QAAA,EAAA;AACA,MAAA,MAAA,YAAA,GACA,QAAA,YAAA,KAAA,GAAA,QAAA,CAAA,OAAA,GAAA,eAAA;AAEA,MAAA,IAAA,aAAA,QAAA,CAAA,WAAA,KAAA,YAAA,CAAA,QAAA,CAAA,eAAA,CAAA,EAAA;AACA,QAAA,MAAA,WAAA,CAAA;AAAA,UACA,UAAA,EAAA,GAAA;AAAA,UACA,aAAA,EAAA,CAAA,QAAA,EAAA,IAAA,CAAA,OAAA,CAAA,WAAA;AAAA,SACA,CAAA;AAAA,MACA;AAEA,MAAA,IAAA,YAAA,CAAA,QAAA,CAAA,gBAAA,CAAA,EAAA;AACA,QAAA,MAAA,WAAA,CAAA;AAAA,UACA,UAAA,EAAA,GAAA;AAAA,UACA,aAAA,EAAA,CAAA,QAAA,EAAA,IAAA,CAAA,OAAA,CAAA,gBAAA;AAAA,SACA,CAAA;AAAA,MACA;AAEA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA,6BAAA,YAAA,CAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,CAAA,GAAA,CAAA,KAAA,oBAAA,EAAA;AAAA,MACA,SAAA,IAAA,CAAA,OAAA;AAAA,MACA,SAAA,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,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":"branch-rename.post.mjs","sources":["../../../../../../server/api/git/branch-rename.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,0BAAA,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,OAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,IAAA,CAAA,KAAA,OAAA,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,IAAA,CAAA,OAAA,EAAA,IAAA,CAAA,OAAA,CAAA;AAAA,IACA,SAAA,QAAA,EAAA;AACA,MAAA,MAAA,YAAA,GACA,QAAA,YAAA,KAAA,GAAA,QAAA,CAAA,OAAA,GAAA,eAAA;AAEA,MAAA,IAAA,aAAA,QAAA,CAAA,WAAA,KAAA,YAAA,CAAA,QAAA,CAAA,eAAA,CAAA,EAAA;AACA,QAAA,MAAA,WAAA,CAAA;AAAA,UACA,UAAA,EAAA,GAAA;AAAA,UACA,aAAA,EAAA,CAAA,QAAA,EAAA,IAAA,CAAA,OAAA,CAAA,WAAA;AAAA,SACA,CAAA;AAAA,MACA;AAEA,MAAA,IAAA,YAAA,CAAA,QAAA,CAAA,gBAAA,CAAA,EAAA;AACA,QAAA,MAAA,WAAA,CAAA;AAAA,UACA,UAAA,EAAA,GAAA;AAAA,UACA,aAAA,EAAA,CAAA,QAAA,EAAA,IAAA,CAAA,OAAA,CAAA,gBAAA;AAAA,SACA,CAAA;AAAA,MACA;AAEA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA,6BAAA,YAAA,CAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,CAAA,GAAA,CAAA,KAAA,oBAAA,EAAA;AAAA,MACA,SAAA,IAAA,CAAA,OAAA;AAAA,MACA,SAAA,IAAA,CAAA;AAAA,KACA,CAAA;AAEA,IAAA,OAAA,EAAA,SAAA,IAAA,EAAA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,iBAAA,CAAA,KAAA,EAAA,6BAAA,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 { a as isGitRepository, e as execGitArgs } from '../../../_/git.mjs';
1
+ import { d as defineEventHandler, c as createError, l as logger } from '../../../nitro/nitro.mjs';
2
+ import { e as execGitArgs } 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';
@@ -27,8 +28,7 @@ import 'util';
27
28
  const branch_delete = defineEventHandler(async (event) => {
28
29
  var _a, _b;
29
30
  try {
30
- const body = await readBody(event);
31
- const workingDirectory = body.workingDirectory || getProjectDir();
31
+ const { workingDirectory, body } = await resolveWorkingDirectoryFromBody(event);
32
32
  const branchName = body.branchName;
33
33
  const force = (_a = body.force) != null ? _a : false;
34
34
  const remote = (_b = body.remote) != null ? _b : false;
@@ -38,12 +38,6 @@ const branch_delete = defineEventHandler(async (event) => {
38
38
  statusMessage: "branchName is required"
39
39
  });
40
40
  }
41
- if (!await isGitRepository(workingDirectory)) {
42
- throw createError({
43
- statusCode: 400,
44
- statusMessage: "Not a Git repository"
45
- });
46
- }
47
41
  try {
48
42
  if (remote) {
49
43
  const slashIndex = branchName.indexOf("/");
@@ -90,14 +84,7 @@ const branch_delete = defineEventHandler(async (event) => {
90
84
  success: true
91
85
  };
92
86
  } catch (error) {
93
- if (error && typeof error === "object" && "statusCode" in error) {
94
- throw error;
95
- }
96
- logger.api.error("Error deleting git branch", { error });
97
- throw createError({
98
- statusCode: 500,
99
- statusMessage: "Failed to delete branch"
100
- });
87
+ handleGitApiError(error, "deleting git branch", "Failed to delete branch");
101
88
  }
102
89
  });
103
90
 
@@ -1 +1 @@
1
- {"version":3,"file":"branch.delete.mjs","sources":["../../../../../../server/api/git/branch.delete.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"branch.delete.mjs","sources":["../../../../../../server/api/git/branch.delete.ts"],"names":[],"mappings":"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"}
@@ -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, b as execGitCommand, g as generateBranchColor, c as getBranches } from '../../../_/git.mjs';
1
+ import { d as defineEventHandler, f as getQuery } from '../../../nitro/nitro.mjs';
2
+ import { a as execGitCommand, g as generateBranchColor, b as getBranches } 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';
@@ -63,13 +64,7 @@ const branches_get = defineEventHandler(async (event) => {
63
64
  try {
64
65
  const includeRemote = parseBooleanQuery(query.includeRemote);
65
66
  const excludeSc = parseBooleanQuery(query.excludeSc);
66
- const cwd = getProjectDir();
67
- if (!await isGitRepository(cwd)) {
68
- throw createError({
69
- statusCode: 400,
70
- statusMessage: "Not a valid git repository"
71
- });
72
- }
67
+ const cwd = resolveWorkingDirectoryFromQuery(event);
73
68
  let currentBranch = "";
74
69
  try {
75
70
  currentBranch = await execGitCommand(["rev-parse", "--abbrev-ref", "HEAD"], cwd);
@@ -148,15 +143,7 @@ const branches_get = defineEventHandler(async (event) => {
148
143
  };
149
144
  return response;
150
145
  } catch (error) {
151
- if (error.statusCode) {
152
- throw error;
153
- }
154
- console.error("Git branches API error:", error);
155
- throw createError({
156
- statusCode: 500,
157
- statusMessage: "Failed to retrieve git branches",
158
- data: { error: error.message }
159
- });
146
+ handleGitApiError(error, "Git branches API error", "Failed to retrieve git branches");
160
147
  }
161
148
  });
162
149
 
@@ -1 +1 @@
1
- {"version":3,"file":"branches.get.mjs","sources":["../../../../../../server/api/git/branches.get.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"branches.get.mjs","sources":["../../../../../../server/api/git/branches.get.ts"],"names":[],"mappings":"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"}
@@ -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, d as execGit } from '../../../_/git.mjs';
1
+ import { d as defineEventHandler, c as createError, l as logger } from '../../../nitro/nitro.mjs';
2
+ import { c as execGit } 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,21 +27,13 @@ import 'util';
26
27
 
27
28
  const checkout_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.branchName) {
32
32
  throw createError({
33
33
  statusCode: 400,
34
34
  statusMessage: "branchName is required"
35
35
  });
36
36
  }
37
- if (!await isGitRepository(workingDirectory)) {
38
- throw createError({
39
- statusCode: 400,
40
- statusMessage: "Not a Git repository",
41
- data: { code: "NOT_GIT_REPO" }
42
- });
43
- }
44
37
  const currentBranchRaw = execGit(workingDirectory, "rev-parse --abbrev-ref HEAD").trim();
45
38
  const previousBranch = currentBranchRaw && currentBranchRaw !== "HEAD" ? currentBranchRaw : void 0;
46
39
  let gitCommand;
@@ -92,14 +85,7 @@ const checkout_post = defineEventHandler(async (event) => {
92
85
  previousBranch
93
86
  };
94
87
  } catch (error) {
95
- if (error && typeof error === "object" && "statusCode" in error) {
96
- throw error;
97
- }
98
- logger.api.error("Error during git checkout", { error });
99
- throw createError({
100
- statusCode: 500,
101
- statusMessage: "Failed to checkout branch"
102
- });
88
+ handleGitApiError(error, "Error during git checkout", "Failed to checkout branch");
103
89
  }
104
90
  });
105
91
 
@@ -1 +1 @@
1
- {"version":3,"file":"checkout.post.mjs","sources":["../../../../../../server/api/git/checkout.post.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkout.post.mjs","sources":["../../../../../../server/api/git/checkout.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,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,UAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AACA,IAAA,MAAA,gBAAA,GAAA,OAAA,CAAA,gBAAA,EAAA,6BAAA,EAAA,IAAA,EAAA;AACA,IAAA,MAAA,cAAA,GAAA,gBAAA,IAAA,gBAAA,KAAA,MAAA,GAAA,gBAAA,GAAA,KAAA,CAAA;AAGA,IAAA,IAAA,UAAA;AAEA,IAAA,IAAA,KAAA,YAAA,EAAA;AAEA,MAAA,UAAA,GAAA,CAAA,QAAA,EAAA,KAAA,UAAA,CAAA,CAAA,CAAA;AACA,MAAA,IAAA,KAAA,UAAA,EAAA;AACA,QAAA,UAAA,IAAA,CAAA,EAAA,EAAA,KAAA,UAAA,CAAA,CAAA,CAAA;AAAA,MACA;AAAA,IACA,CAAA,MAAA;AAEA,MAAA,UAAA,GAAA,CAAA,UAAA,EAAA,KAAA,UAAA,CAAA,CAAA,CAAA;AAAA,IACA;AAGA,IAAA,IAAA;AACA,MAAA,OAAA,CAAA,kBAAA,UAAA,CAAA;AAAA,IACA,SAAA,QAAA,EAAA;AACA,MAAA,MAAA,YAAA,GAAA,QAAA,YAAA,KAAA,GAAA,QAAA,CAAA,OAAA,GAAA,eAAA;AAGA,MAAA,IAAA,YAAA,CAAA,QAAA,CAAA,gBAAA,CAAA,EAAA;AACA,QAAA,MAAA,WAAA,CAAA;AAAA,UACA,UAAA,EAAA,GAAA;AAAA,UACA,aAAA,EAAA,CAAA,QAAA,EAAA,IAAA,CAAA,UAAA,CAAA,gBAAA;AAAA,SACA,CAAA;AAAA,MACA;AAEA,MAAA,IAAA,YAAA,CAAA,QAAA,CAAA,mBAAA,CAAA,EAAA;AACA,QAAA,MAAA,WAAA,CAAA;AAAA,UACA,UAAA,EAAA,GAAA;AAAA,UACA,aAAA,EAAA,CAAA,QAAA,EAAA,IAAA,CAAA,UAAA,CAAA,WAAA;AAAA,SACA,CAAA;AAAA,MACA;AAEA,MAAA,IAAA,YAAA,CAAA,QAAA,CAAA,eAAA,CAAA,EAAA;AACA,QAAA,MAAA,WAAA,CAAA;AAAA,UACA,UAAA,EAAA,GAAA;AAAA,UACA,aAAA,EAAA;AAAA,SACA,CAAA;AAAA,MACA;AAEA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA,wBAAA,YAAA,CAAA;AAAA,OACA,CAAA;AAAA,IACA;AAGA,IAAA,MAAA,OAAA,GAAA,OAAA,CAAA,gBAAA,EAAA,gBAAA,EAAA,IAAA,EAAA;AAEA,IAAA,MAAA,CAAA,GAAA,CAAA,KAAA,yBAAA,EAAA;AAAA,MACA,QAAA,IAAA,CAAA,UAAA;AAAA,MACA,OAAA;AAAA,MACA,cAAA,IAAA,CAAA;AAAA,KACA,CAAA;AAEA,IAAA,OAAA;AAAA,MACA,OAAA,EAAA,IAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAA,EAAA,IAAA,CAAA,YAAA,GAAA,IAAA,CAAA,UAAA,GAAA,KAAA,CAAA;AAAA,MACA;AAAA,KACA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,iBAAA,CAAA,KAAA,EAAA,6BAAA,2BAAA,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, f as cherryPick } from '../../../_/git.mjs';
1
+ import { d as defineEventHandler, c as createError, l as logger } from '../../../nitro/nitro.mjs';
2
+ import { d as cherryPick } 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 cherryPick_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.hash) {
32
32
  throw createError({
33
33
  statusCode: 400,
34
34
  statusMessage: "hash is required"
35
35
  });
36
36
  }
37
- if (!await isGitRepository(workingDirectory)) {
38
- throw createError({
39
- statusCode: 400,
40
- statusMessage: "Not a Git repository"
41
- });
42
- }
43
37
  try {
44
38
  cherryPick(workingDirectory, body.hash, {
45
39
  recordOrigin: body.recordOrigin,
@@ -61,14 +55,7 @@ const cherryPick_post = defineEventHandler(async (event) => {
61
55
  logger.api.info("Git cherry-pick successful", { hash: body.hash });
62
56
  return { success: true };
63
57
  } catch (error) {
64
- if (error && typeof error === "object" && "statusCode" in error) {
65
- throw error;
66
- }
67
- logger.api.error("Error during git cherry-pick", { error });
68
- throw createError({
69
- statusCode: 500,
70
- statusMessage: "Failed to cherry-pick commit"
71
- });
58
+ handleGitApiError(error, "Error during git cherry-pick", "Failed to cherry-pick commit");
72
59
  }
73
60
  });
74
61
 
@@ -1 +1 @@
1
- {"version":3,"file":"cherry-pick.post.mjs","sources":["../../../../../../server/api/git/cherry-pick.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,wBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,IAAA,GAAA,MAAA,QAAA,CAKA,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,MAAA,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,IAAA,EAAA;AAAA,QACA,cAAA,IAAA,CAAA,YAAA;AAAA,QACA,UAAA,IAAA,CAAA;AAAA,OACA,CAAA;AAAA,IACA,SAAA,QAAA,EAAA;AACA,MAAA,MAAA,YAAA,GAAA,QAAA,YAAA,KAAA,GAAA,QAAA,CAAA,OAAA,GAAA,eAAA;AAEA,MAAA,IAAA,aAAA,QAAA,CAAA,UAAA,KAAA,YAAA,CAAA,QAAA,CAAA,UAAA,CAAA,EAAA;AACA,QAAA,MAAA,WAAA,CAAA;AAAA,UACA,UAAA,EAAA,GAAA;AAAA,UACA,aAAA,EAAA,yBAAA,YAAA,CAAA;AAAA,SACA,CAAA;AAAA,MACA;AAEA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA,uBAAA,YAAA,CAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,CAAA,IAAA,IAAA,CAAA,4BAAA,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,8BAAA,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":"cherry-pick.post.mjs","sources":["../../../../../../server/api/git/cherry-pick.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,wBAAA,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,UAAA,CAAA,gBAAA,EAAA,KAAA,IAAA,EAAA;AAAA,QACA,cAAA,IAAA,CAAA,YAAA;AAAA,QACA,UAAA,IAAA,CAAA;AAAA,OACA,CAAA;AAAA,IACA,SAAA,QAAA,EAAA;AACA,MAAA,MAAA,YAAA,GAAA,QAAA,YAAA,KAAA,GAAA,QAAA,CAAA,OAAA,GAAA,eAAA;AAEA,MAAA,IAAA,aAAA,QAAA,CAAA,UAAA,KAAA,YAAA,CAAA,QAAA,CAAA,UAAA,CAAA,EAAA;AACA,QAAA,MAAA,WAAA,CAAA;AAAA,UACA,UAAA,EAAA,GAAA;AAAA,UACA,aAAA,EAAA,yBAAA,YAAA,CAAA;AAAA,SACA,CAAA;AAAA,MACA;AAEA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA,uBAAA,YAAA,CAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,CAAA,IAAA,IAAA,CAAA,4BAAA,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,gCAAA,8BAAA,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, h as cleanUntrackedFiles } from '../../../_/git.mjs';
1
+ import { d as defineEventHandler, c as createError, l as logger } from '../../../nitro/nitro.mjs';
2
+ import { f as cleanUntrackedFiles } 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,15 +27,7 @@ import 'util';
26
27
 
27
28
  const clean_post = defineEventHandler(async (event) => {
28
29
  try {
29
- const body = await readBody(event);
30
- const workingDirectory = body.workingDirectory || getProjectDir();
31
- if (!await isGitRepository(workingDirectory)) {
32
- throw createError({
33
- statusCode: 400,
34
- statusMessage: "Not a Git repository",
35
- data: { code: "NOT_GIT_REPO" }
36
- });
37
- }
30
+ const { workingDirectory } = await resolveWorkingDirectoryFromBody(event);
38
31
  try {
39
32
  cleanUntrackedFiles(workingDirectory);
40
33
  } catch (gitError) {
@@ -47,14 +40,7 @@ const clean_post = defineEventHandler(async (event) => {
47
40
  logger.api.info("Git clean successful", { workingDirectory });
48
41
  return { success: true };
49
42
  } catch (error) {
50
- if (error && typeof error === "object" && "statusCode" in error) {
51
- throw error;
52
- }
53
- logger.api.error("Error during git clean", { error });
54
- throw createError({
55
- statusCode: 500,
56
- statusMessage: "Failed to clean untracked files"
57
- });
43
+ handleGitApiError(error, "Error during git clean", "Failed to clean untracked files");
58
44
  }
59
45
  });
60
46
 
@@ -1 +1 @@
1
- {"version":3,"file":"clean.post.mjs","sources":["../../../../../../server/api/git/clean.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,mBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,IAAA,GAAA,MAAA,QAAA,CAAA,KAAA,CAAA;AACA,IAAA,MAAA,gBAAA,GAAA,IAAA,CAAA,gBAAA,IAAA,aAAA,EAAA;AAEA,IAAA,IAAA,CAAA,MAAA,eAAA,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,mBAAA,CAAA,gBAAA,CAAA;AAAA,IACA,SAAA,QAAA,EAAA;AACA,MAAA,MAAA,YAAA,GAAA,QAAA,YAAA,KAAA,GAAA,QAAA,CAAA,OAAA,GAAA,eAAA;AACA,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,IAAA,CAAA,sBAAA,EAAA,EAAA,kBAAA,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":"clean.post.mjs","sources":["../../../../../../server/api/git/clean.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,mBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,EAAA,gBAAA,EAAA,GAAA,MAAA,gCAAA,KAAA,CAAA;AAEA,IAAA,IAAA;AACA,MAAA,mBAAA,CAAA,gBAAA,CAAA;AAAA,IACA,SAAA,QAAA,EAAA;AACA,MAAA,MAAA,YAAA,GAAA,QAAA,YAAA,KAAA,GAAA,QAAA,CAAA,OAAA,GAAA,eAAA;AACA,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,IAAA,CAAA,sBAAA,EAAA,EAAA,kBAAA,CAAA;AAEA,IAAA,OAAA,EAAA,SAAA,IAAA,EAAA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,iBAAA,CAAA,KAAA,EAAA,0BAAA,iCAAA,CAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}
@@ -1,5 +1,6 @@
1
- import { d as defineEventHandler, h as getRouterParam, c as createError, e as getProjectDir } from '../../../../nitro/nitro.mjs';
2
- import { a as isGitRepository, j as getCommitDetail } from '../../../../_/git.mjs';
1
+ import { d as defineEventHandler, h as getRouterParam, c as createError } from '../../../../nitro/nitro.mjs';
2
+ import { h as getCommitDetail } 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';
@@ -25,34 +26,30 @@ import 'child_process';
25
26
  import 'util';
26
27
 
27
28
  const _id__get = defineEventHandler(async (event) => {
28
- const commitHash = getRouterParam(event, "id");
29
- if (!commitHash) {
30
- throw createError({
31
- statusCode: 400,
32
- statusMessage: "Commit hash is required"
33
- });
34
- }
35
- const cwd = getProjectDir();
36
- if (!await isGitRepository(cwd)) {
37
- throw createError({
38
- statusCode: 400,
39
- statusMessage: "Not a git repository"
40
- });
41
- }
29
+ var _a;
42
30
  try {
43
- const commitDetail = await getCommitDetail(commitHash, cwd);
44
- return commitDetail;
45
- } catch (error) {
46
- if (error.message.includes("not found")) {
31
+ const commitHash = getRouterParam(event, "id");
32
+ if (!commitHash) {
47
33
  throw createError({
48
- statusCode: 404,
49
- statusMessage: `Commit ${commitHash} not found`
34
+ statusCode: 400,
35
+ statusMessage: "Commit hash is required"
50
36
  });
51
37
  }
52
- throw createError({
53
- statusCode: 500,
54
- statusMessage: `Failed to fetch commit details: ${error.message}`
55
- });
38
+ const cwd = resolveWorkingDirectoryFromQuery(event);
39
+ try {
40
+ const commitDetail = await getCommitDetail(commitHash, cwd);
41
+ return commitDetail;
42
+ } catch (innerError) {
43
+ if ((_a = innerError == null ? void 0 : innerError.message) == null ? void 0 : _a.includes("not found")) {
44
+ throw createError({
45
+ statusCode: 404,
46
+ statusMessage: `Commit ${commitHash} not found`
47
+ });
48
+ }
49
+ throw innerError;
50
+ }
51
+ } catch (error) {
52
+ handleGitApiError(error, "Error fetching commit details", "Failed to fetch commit details");
56
53
  }
57
54
  });
58
55
 
@@ -1 +1 @@
1
- {"version":3,"file":"_id_.get.mjs","sources":["../../../../../../../server/api/git/commit/[id].get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,iBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,MAAA,UAAA,GAAA,cAAA,CAAA,KAAA,EAAA,IAAA,CAAA;AAEA,EAAA,IAAA,CAAA,UAAA,EAAA;AACA,IAAA,MAAA,WAAA,CAAA;AAAA,MACA,UAAA,EAAA,GAAA;AAAA,MACA,aAAA,EAAA;AAAA,KACA,CAAA;AAAA,EACA;AAGA,EAAA,MAAA,MAAA,aAAA,EAAA;AAGA,EAAA,IAAA,CAAA,MAAA,eAAA,CAAA,GAAA,CAAA,EAAA;AACA,IAAA,MAAA,WAAA,CAAA;AAAA,MACA,UAAA,EAAA,GAAA;AAAA,MACA,aAAA,EAAA;AAAA,KACA,CAAA;AAAA,EACA;AAEA,EAAA,IAAA;AAEA,IAAA,MAAA,YAAA,GAAA,MAAA,eAAA,CAAA,UAAA,EAAA,GAAA,CAAA;AAEA,IAAA,OAAA,YAAA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,IAAA,KAAA,CAAA,OAAA,CAAA,QAAA,CAAA,WAAA,CAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,aAAA,EAAA,UAAA,UAAA,CAAA,UAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,WAAA,CAAA;AAAA,MACA,UAAA,EAAA,GAAA;AAAA,MACA,aAAA,EAAA,CAAA,gCAAA,EAAA,KAAA,CAAA,OAAA,CAAA;AAAA,KACA,CAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"_id_.get.mjs","sources":["../../../../../../../server/api/git/commit/[id].get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,iBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;;AACA,EAAA,IAAA;AACA,IAAA,MAAA,UAAA,GAAA,cAAA,CAAA,KAAA,EAAA,IAAA,CAAA;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,MAAA,GAAA,GAAA,iCAAA,KAAA,CAAA;AAEA,IAAA,IAAA;AAEA,MAAA,MAAA,YAAA,GAAA,MAAA,eAAA,CAAA,UAAA,EAAA,GAAA,CAAA;AAEA,MAAA,OAAA,YAAA;AAAA,IACA,SAAA,UAAA,EAAA;AACA,MAAA,IAAA,CAAA,EAAA,GAAA,UAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,UAAA,CAAA,OAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAA,CAAA,WAAA,CAAA,EAAA;AACA,QAAA,MAAA,WAAA,CAAA;AAAA,UACA,UAAA,EAAA,GAAA;AAAA,UACA,aAAA,EAAA,UAAA,UAAA,CAAA,UAAA;AAAA,SACA,CAAA;AAAA,MACA;AACA,MAAA,MAAA,UAAA;AAAA,IACA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,iBAAA,CAAA,KAAA,EAAA,iCAAA,gCAAA,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, e as execGitArgs } from '../../../_/git.mjs';
1
+ import { d as defineEventHandler, c as createError, l as logger } from '../../../nitro/nitro.mjs';
2
+ import { e as execGitArgs } 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,21 +27,13 @@ import 'util';
26
27
 
27
28
  const commit_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.message || !body.message.trim()) {
32
32
  throw createError({
33
33
  statusCode: 400,
34
34
  statusMessage: "Commit message is required"
35
35
  });
36
36
  }
37
- if (!isGitRepository(workingDirectory)) {
38
- throw createError({
39
- statusCode: 400,
40
- statusMessage: "Not a Git repository",
41
- data: { code: "NOT_GIT_REPO" }
42
- });
43
- }
44
37
  const statusOutput = execGitArgs(workingDirectory, ["status", "--porcelain"]);
45
38
  const lines = statusOutput.trim().split("\n").filter(Boolean);
46
39
  const hasStagedChanges = lines.some((line) => {
@@ -77,14 +70,7 @@ const commit_post = defineEventHandler(async (event) => {
77
70
  });
78
71
  return { success: true, hash, shortHash };
79
72
  } catch (error) {
80
- if (error && typeof error === "object" && "statusCode" in error) {
81
- throw error;
82
- }
83
- logger.api.error("Error creating git commit", { error });
84
- throw createError({
85
- statusCode: 500,
86
- statusMessage: "Failed to create commit"
87
- });
73
+ handleGitApiError(error, "Error creating git commit", "Failed to create commit");
88
74
  }
89
75
  });
90
76
 
@@ -1 +1 @@
1
- {"version":3,"file":"commit.post.mjs","sources":["../../../../../../server/api/git/commit.post.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commit.post.mjs","sources":["../../../../../../server/api/git/commit.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,oBAAA,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,IAAA,CAAA,OAAA,IAAA,CAAA,IAAA,CAAA,OAAA,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,eAAA,WAAA,CAAA,gBAAA,EAAA,CAAA,QAAA,EAAA,aAAA,CAAA,CAAA;AACA,IAAA,MAAA,KAAA,GAAA,aAAA,IAAA,EAAA,CAAA,MAAA,IAAA,CAAA,CAAA,OAAA,OAAA,CAAA;AACA,IAAA,MAAA,gBAAA,GAAA,KAAA,CAAA,IAAA,CAAA,CAAA,IAAA,KAAA;AACA,MAAA,MAAA,aAAA,GAAA,IAAA,CAAA,MAAA,CAAA,CAAA,CAAA;AACA,MAAA,OAAA,aAAA,KAAA,OAAA,aAAA,KAAA,GAAA;AAAA,IACA,CAAA,CAAA;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;AACA,MAAA,WAAA,CAAA,gBAAA,EAAA,CAAA,QAAA,EAAA,IAAA,EAAA,KAAA,OAAA,CAAA,IAAA,EAAA,CAAA,CAAA;AAAA,IACA,SAAA,QAAA,EAAA;AACA,MAAA,MAAA,YAAA,GAAA,QAAA,YAAA,KAAA,GAAA,QAAA,CAAA,OAAA,GAAA,eAAA;AAEA,MAAA,IAAA,YAAA,CAAA,QAAA,CAAA,mBAAA,CAAA,EAAA;AACA,QAAA,MAAA,WAAA,CAAA;AAAA,UACA,UAAA,EAAA,GAAA;AAAA,UACA,aAAA,EAAA;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;AAGA,IAAA,MAAA,OAAA,WAAA,CAAA,gBAAA,EAAA,CAAA,WAAA,EAAA,MAAA,CAAA,CAAA;AACA,IAAA,MAAA,YAAA,WAAA,CAAA,gBAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,MAAA,CAAA,CAAA;AAEA,IAAA,MAAA,CAAA,GAAA,CAAA,KAAA,uBAAA,EAAA;AAAA,MACA,IAAA;AAAA,MACA,SAAA;AAAA,MACA,OAAA,EAAA,IAAA,CAAA,OAAA,CAAA,IAAA;AAAA,KACA,CAAA;AAEA,IAAA,OAAA,EAAA,OAAA,EAAA,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,iBAAA,CAAA,KAAA,EAAA,6BAAA,yBAAA,CAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}
@@ -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, k as getDiff } from '../../../_/git.mjs';
1
+ import { d as defineEventHandler, f as getQuery, c as createError } from '../../../nitro/nitro.mjs';
2
+ import { j as getDiff } 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,16 +27,10 @@ import 'util';
26
27
 
27
28
  const diff_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 from = query.from;
32
33
  const to = query.to;
33
- if (!workingDirectory) {
34
- throw createError({
35
- statusCode: 400,
36
- statusMessage: "workingDirectory query parameter is required"
37
- });
38
- }
39
34
  if (!from) {
40
35
  throw createError({
41
36
  statusCode: 400,
@@ -48,13 +43,6 @@ const diff_get = defineEventHandler(async (event) => {
48
43
  statusMessage: "to query parameter is required"
49
44
  });
50
45
  }
51
- if (!isGitRepositorySync(workingDirectory)) {
52
- throw createError({
53
- statusCode: 400,
54
- statusMessage: "Not a Git repository",
55
- data: { code: "NOT_GIT_REPO" }
56
- });
57
- }
58
46
  try {
59
47
  return getDiff(workingDirectory, from, to);
60
48
  } catch (gitError) {
@@ -65,14 +53,7 @@ const diff_get = defineEventHandler(async (event) => {
65
53
  });
66
54
  }
67
55
  } catch (error) {
68
- if (error && typeof error === "object" && "statusCode" in error) {
69
- throw error;
70
- }
71
- logger.api.error("Error getting git diff", { error });
72
- throw createError({
73
- statusCode: 500,
74
- statusMessage: "Failed to get diff"
75
- });
56
+ handleGitApiError(error, "Error getting git diff", "Failed to get diff");
76
57
  }
77
58
  });
78
59
 
@@ -1 +1 @@
1
- {"version":3,"file":"diff.get.mjs","sources":["../../../../../../server/api/git/diff.get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,iBAAA,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,OAAA,KAAA,CAAA,IAAA;AACA,IAAA,MAAA,KAAA,KAAA,CAAA,EAAA;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,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,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,OAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,EAAA,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,gBAAA,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,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":"diff.get.mjs","sources":["../../../../../../server/api/git/diff.get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,iBAAA,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,OAAA,KAAA,CAAA,IAAA;AACA,IAAA,MAAA,KAAA,KAAA,CAAA,EAAA;AAEA,IAAA,IAAA,CAAA,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,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,OAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,EAAA,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,gBAAA,YAAA,CAAA;AAAA,OACA,CAAA;AAAA,IACA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,iBAAA,CAAA,KAAA,EAAA,0BAAA,oBAAA,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, l as fetchBranch } from '../../../_/git.mjs';
1
+ import { d as defineEventHandler, c as createError, l as logger } from '../../../nitro/nitro.mjs';
2
+ import { k as fetchBranch } 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,14 +27,7 @@ import 'util';
26
27
 
27
28
  const fetch_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);
37
31
  try {
38
32
  fetchBranch(workingDirectory, {
39
33
  branch: body.branch,
@@ -64,14 +58,7 @@ const fetch_post = defineEventHandler(async (event) => {
64
58
  });
65
59
  return { success: true };
66
60
  } catch (error) {
67
- if (error && typeof error === "object" && "statusCode" in error) {
68
- throw error;
69
- }
70
- logger.api.error("Error during git fetch", { error });
71
- throw createError({
72
- statusCode: 500,
73
- statusMessage: "Failed to fetch"
74
- });
61
+ handleGitApiError(error, "Error during git fetch", "Failed to fetch");
75
62
  }
76
63
  });
77
64
 
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.post.mjs","sources":["../../../../../../server/api/git/fetch.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,mBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,IAAA,GAAA,MAAA,QAAA,CAQA,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,WAAA,CAAA,gBAAA,EAAA;AAAA,QACA,QAAA,IAAA,CAAA,MAAA;AAAA,QACA,QAAA,IAAA,CAAA,MAAA;AAAA,QACA,OAAA,IAAA,CAAA,KAAA;AAAA,QACA,KAAA,IAAA,CAAA,GAAA;AAAA,QACA,OAAA,IAAA,CAAA,KAAA;AAAA,QACA,WAAA,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,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,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,QAAA,IAAA,CAAA,MAAA;AAAA,MACA,KAAA,IAAA,CAAA,GAAA;AAAA,MACA,OAAA,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":"fetch.post.mjs","sources":["../../../../../../server/api/git/fetch.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,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;AACA,MAAA,WAAA,CAAA,gBAAA,EAAA;AAAA,QACA,QAAA,IAAA,CAAA,MAAA;AAAA,QACA,QAAA,IAAA,CAAA,MAAA;AAAA,QACA,OAAA,IAAA,CAAA,KAAA;AAAA,QACA,KAAA,IAAA,CAAA,GAAA;AAAA,QACA,OAAA,IAAA,CAAA,KAAA;AAAA,QACA,WAAA,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,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,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,QAAA,IAAA,CAAA,MAAA;AAAA,MACA,KAAA,IAAA,CAAA,GAAA;AAAA,MACA,OAAA,IAAA,CAAA;AAAA,KACA,CAAA;AAEA,IAAA,OAAA,EAAA,SAAA,IAAA,EAAA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,iBAAA,CAAA,KAAA,EAAA,0BAAA,iBAAA,CAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}